Jump to content

PCGamingWiki will use a Single Sign On (SSO) system to bridge wiki and forum accounts which is ready for testing. You may login using the 'Login with PCGamingWiki' button on both the wiki and the forum, which will soon be the only option. If you have any issues please message Andytizer on Discord.

DirectInput/XInput games test tools

Sign in to follow this  




User Feedback

Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By Methanhydrat
      IMPORTANT
       
      Since game version v1.09 this fix is no longer needed, because the game received an official option to enable XInput support.
       
      If you are interested in using PS4 button prompts, you can find a corresponding option in the most recent version of the PRIC mod.
       
      ---
       

      TL;DR
      This fix resolves controller issues in Prey that were introduced with patch v1.05, by forcing the game to use XInput instead of the Steam Controller API by Valve.
       
      Quick start guide:
      Open the archive and choose the button prompts you want to use by opening the corresponding folder
      Extract the file dinput8.dll to the release sub-folder of Prey. For example: "C:\Program Files (x86)\Steam\steamapps\common\Prey\Binaries\Danielle\x64\Release\"
      Start the game like you would normally, for example directly through Steam or Big Picture mode
      Important: If the fix does not work, make sure that you have turned off the usage of the Steam Controller API (see below)


      Features
      While Prey originally offered good controller support, patch v1.05 introduced various issues. Instead of choosing either XInput or the Steam Controller API based on the user settings, the game always uses the latter. This results in problems with the movement as well as certain controller settings or the controller not working at all if the user has disabled the usage of the Steam Controller API in game's properties in Steam.
       
      This fix re-enables XInput support and forces the game to use it, regardless of the settings.
       

      Instructions

      Supported Versions
      This fix is designed for the latest, fully patched version of Prey and the Mooncrash DLC and might not work when used with older or otherwise modified executables.
      Steam v1.08

      Note that the fix currently does not work with the demo version of the game.
       

      Install
      The fix does not make any permanent changes to the game or to Windows and can easily be removed.
       
      Important: When using a non-XInput controller such as the DS4, you will need a XInput emulator like DS4Windows for this fix to work
      Open the archive and choose the button prompts you want to use by opening the corresponding folder
      Extract the file dinput8.dll to the release sub-folder of Prey. For example: "C:\Program Files (x86)\Steam\steamapps\common\Prey\Binaries\Danielle\x64\Release\"
      Start the game like you would normally, for example directly through Steam or Big Picture mode
      Important: If the fix does not work, make sure that you have turned off the usage of the Steam Controller API (see below)

      Although the fix forces the game to use XInput, it is necessary to disable the usage of the Steam Controller API in the game's settings.
       
      The safest way to do this is the following:
      In the Steam client go to the menu Steam -> Settings -> Controller -> General Controller Settings
      Make sure PS4/XBox Configuration Support is checked
      Go to Big Picture mode and find Prey in you library
      Click Mange Game -> Controller Options and uncheck Use Steam Configuration for Non-Steam Controllers
      Uncheck the setting from step 1 again, depending on whether it was checked in the first place


      Uninstall
      Remove or rename the dinput8.dll from the folder of the game.


      Known Issues
      There are currently no known issues with using the fix.
       

      Additional Information

      Antivirus Software
      Since this fix consists of an executable DLL file that uses "hacking techniques" such as injection and hooking, it could be classified as malicious by antivirus software. In that case, it might be necessary to add an exception rule to the scanner.
       
      If you lack the trust in random people on the internet -- and I would not blame you -- feel free to use a meta online virus scanner like VirusTotal to verify the file.
       

      Loading Other Fixes/Mods/Injectors
      To increase the compatibility with other mods or injectors that are using a wrapper DLL, this fix offers two methods for remote loading of additional files. Note that there might still be compatibility issues between the different fixes, mods or injectors that have nothing to do with the loading process.
       
      File method:
       
      The fix will load another dinput8.dll automatically if it has the name dinput8_Remote.dll. Just rename the DLL you want to load accordingly. Using this method will lead to an error if the renamed DLL is not itself a dinput8.dll.
       
      Folder method:
       
      The fix will also automatically load all DLLs regardless of their names in a dinput8_Remote sub-directory. Just create a corresponding folder in the install directory of the fix. This is the only way to load multiple (conflicting) files.
       

      Contact And Support
      If you like this fix and want to support the development or show your appreciation with a donation, you can find more information on my website. There you can also find out more about other mods that I have done and means to contact me if you have a question, want to provide feedback, bug reports and suggestions.
       

      Version History

      v1.1:
      Fixed launch issues for users that do not own the Mooncrash DLC


      v1.0:
      Upgraded the fix to game version v1.08


      v0.6:
      Added support for Mooncrash DLC


      v0.5:
      Upgraded the fix to game version v1.06


      v0.4:
      Controller movement no longer gets stuck on interactive items when using PS4 prompts


      v0.3:
      Added a separate version that shows button prompts of the PS4 instead of the XBox controller
      Added more detailed instructions to the readme file


      v0.2:
      Added support for demo version of Prey
      Added measures to make the fix more robust to updates of the game


      v0.1:
      Initial release

    • By Methanhydrat
      TL;DR
      The DirectInputFpxFix fixes an input related FPS drop/slowdown problem that occurs in FEAR, its expansions, Condemned: Criminal Origins and other games. It is easy to install and does not require manual disabling of HID devices.
       
      Quick start guide:
      Extract the file dinput8.dll to the folder containing the executable of the game. For example: "C:\Program Files (x86)\Steam\steamapps\common\FEAR Ultimate Shooter Edition"
      Start the game like you would normally, for example directly through Steam or GOG Galaxy.


      Features
      The DirectInputFpsFix fixes a bug that causes the FPS to severely drop after a few minutes of play. This problem is probably most widely known in regards to the game FEAR and often occurs in conjunction with the usage of Logitech devices.
       
      However, the problem also crops up in other games using the same engine, such as the FEAR expansions or Condemned: Criminal Origins and with non-Logitech hardware configurations. A similar problem has also been reported to occur in other titles, like Prototype.
       
      Although this issue can often be fixed by disabling most/all HID-Devices in the device manager, it is bothersome to do so and lately some people reported that that solution does not even work at all anymore, especially on machines running Windows 10.
       

      Instructions

      Supported Games
      The fix is agnostic towards the game that uses it and should therefore work with all versions of a supported game, including the Steam, GOG and retail versions.
      Confirmed: FEAR and its expansions
      Condemned: Criminal Origins

      [*]Supposedly:
      Prototype
      Kane & Lynch: Dead Men



      Feel free to provide feedback if the DLL works on other games as well.
       

      Install
      The fix does not make any permanent changes to the game or to Windows and can easily be removed.
      Extract the file dinput8.dll to the folder containing the executable of the game. For example: "C:\Program Files (x86)\Steam\steamapps\common\FEAR Ultimate Shooter Edition"*
      Start the game like you would normally, for example directly through Steam or GOG Galaxy.

      *Note that for the FEAR expansions the fix also has to be installed into the corresponding sub-folder of the game
       

      Uninstall
      Rename or remove the dinput8.dll from the folder of the game.


      Known Issues
      There are currently no known issues with the fix.
       

      Additional Information

      Antivirus Software
      Since this mod consists of an executable DLL file that uses "hacking techniques" such as injection and hooking, it could be classified as malicious by antivirus software. In that case, it might be necessary to add an exception rule to the scanner.
       
      If you lack the trust in random people on the internet -- and I would not blame you -- feel free to use a meta online virus scanner like VirusTotal to verify the file.
       

      Loading Other Fixes/Mods/Injectors
      To increase the compatibility with other mods or injectors that are using a wrapper DLL, this fix offers two methods for remote loading of additional files. Note that there might still be compatibility issues between the different fixes, mods or injectors that have nothing to do with the loading process.
       
      File method:
       
      The mod will load another dinput8.dll automatically if it has the name dinput8.dll. Just rename the DLL you want to load accordingly. Using this method will lead to an error if the renamed DLL is not itself a dinput8.dll.
       
      Folder method:
       
      The mod will also automatically load all DLLs regardless of their names in a dinput8 sub-directory. Just create a corresponding folder in the install directory of the mod. This is the only way to load multiple (conflicting) files.
       

      How This Works
      The fix is implemented using a common technique known as DLL hooking.
       
      User input in games like FEAR can be realized via DirectInput, an API by Microsoft for interacting with HID-Devices. The library is ancient and should no longer be used today, because there are other ways to get mouse and keyboard input, especially for games.
       
      The FPS drops happen because the thread that runs DirectInput massively slows down after a while (as can be seen in tools like ProcessExplorer).
       
      If an application uses a library like DirectInput, it needs a so-called DLL (dynamic-link library) where the functionality of the library is stored. In many cases, especially for libraries provided by Microsoft, these DLLs usually reside in the Windows folder.
       
      However, there is an order of how an application searches for the DLLs it needs. Since the DLL of the fix gets copied into the main folder of the application and has the same name of a DLL needed by the game (the one of DirectInput), it gets loaded instead of the one in the Windows folder.
       
      This means that all calls to DirectInput go through the Hook-DLL and can either be directed to the original DLL in the Windows folder or changed as necessary. This also allows some insight in how exactly the library is used by the game.
       
      It turned out that some games not only unnecessarily register all HID-devices, they also call several functions every frame that usually only should be called once during initialization. The latter seems to apply only to devices that are not keyboards or mice. This eventually leads to circumstances where a lot of time is spent opening and closing device connections.
       
      The fix changes the DirectInput initialization in such a way that only keyboard and pointer devices get registered.
       

      Contact And Support
      If you like this mod and want to support the development or show your appreciation with a donation, you can find more information on my website. There you can also find out more about other mods that I have done and means to contact me if you have a question, want to provide feedback, bug reports and suggestions.
  • Who's Online   1 Member, 0 Anonymous, 55 Guests (See full list)

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Member Statistics

    4,345
    Total Members
    3,870
    Most Online
    forealdo
    Newest Member
    forealdo
    Joined
×