Jump to content

PCGamingWiki will soon migrate to a Single Sign On (SSO) system to bridge Wiki and Forum accounts, please read our FAQ.

About This File

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:

  1. 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"
  2. 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.

  1. 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"*
  2. 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

  1. 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.


What's New in Version v1.0   See changelog

Released

  • Fixed a compatibility problem that prevented games to start on some systems
  • Added support for additional games
  • Updated the loading system to add support for remote loading of additional DLLs for increased compatibility with other mods and fixes (see Loading Other Fixes/Mods/Injectors)



User Feedback

Recommended Comments

There are no comments to display.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Found PCGamingWiki useful? Please consider making a Donation or visiting our Patreon.
  • Similar Content

    • By istvanszabo890629
      On Windows 8 or newer systems, the game's menu turns upside down or just black and white; because, the codecs of the the original video files don't working very well on these newer system. You can see the problem on the 'before.jpg' image, and the fixed menu 'after.jpg' the applied fix.
      To fix this unpleasant thing, just download and extract the content of the archive into the game's folder. The password for the archive is pcgw.
    • By alrayes_brn
      From about 1995 to 1998 it was common practice for setup programs to launch using a Windows 3.1 16-bit loader stub. This gave installers the ability to package multiple binaries for Win16, Win32s, Win32, and Windows NT for Alpha CPUs. At the time it was a reasonable thing to do since all of these platforms could execute 16-Bit Windows 3.1 applications.

      Today, neither ReactOS nor 64-bit Microsoft Windows implement the ability to run 16-bit Windows 3.1 applications. The result is that there are many, many 32-bit programs that would run fine on these OSes, but are prevented from installing.
      Download the InstallShield 3 Engine without Windows/Wine:

      View the version properties of the Setup Launcher, usually called SETUP.EXE. (under Windows, right click, select Properties, and click the "Version" tab).

      If the setup version is 3.xx.xxx, then as a convenience, you may download the Setup Engine executable directly from here rather than manually extracting it.

      Place this file in a WRITABLE folder with the rest of your application install files and run it instead of setup.
      Credit: https://reactos.org/forum/viewtopic.php?p=90280
    • By stepdaddy
      Configuration files for x360ce to enable support for Xbox One controllers in Assassin's Creed Director's Cut and Assassin's Creed II, including vibration.
      This is a more up-to-date version of the AC1 and 2 fix that improves compatibility with the latest build of x360ce (3.2.10.82) and Xbox One controllers.
      To install simply download and extract the contents of the zip file into the game's installation folder.
      x360ce is not required for the fix to function but is useful should you wish to make any configuration changes. Download the 32-bit (x86) version here and extract it to the same location as the other two files.
      AC1-2-Xbox-One-Controller-Fix.zip
    • By LDK
      The problem
      Double-clicking in single click, inability to create continuous line in paint application, difficulty to move camera in RTS, iron sights not sticking in FPS - these are all symptoms of a broken mouse button. Culprit in majority of cases is a component called miniature snap-action switch, or micro switch. This switch contains three leads and a metal with little spring. This metal is jumping between two contacts thanks to the spring and bridging connection between contacts.
       
      This spring can become tired so it isn't providing pressure necessary to maintain connection. With combination of dirt (dust) and oxidation on the contact areas, it is a perfect recipe for unstable connection and unwanted double clicks.
      Fig. 1 - types of micro switches  
      Tools and tips
      You will need:
      screw driver (type depends on your mouse model, Phillips and flat head should be enough tweezers safety pin, nail scissors or something pointy contacts cleaner or rubbing alcohol any type of glue camera (cellphone will suffice) little bit of time Tips:
      Make several photos of each step, it will help you tremendously in reassembly. Don't use much force, there can be hidden screws or latches and you will break something if you are not careful. Disconnect your mouse from computer and pull out batteries first. Take your time, you do not have be finished in ten minutes. Every photo in this guide is in high resolution, visit gallery for additional details. And as usual, PCGamingWiki is not responsible for any damages caused by following this guide. 1. Mouse disassemble
      This step is unfortunately rather vague, because of each mouse having vastly different design. Be extra careful and look for hidden latches and screws when pulling parts apart.
       
      First of all you have to find screws on your mouse. Usual places are under rubber feet, in battery compartment and under stickers. Consult Google with a name of your mouse and word "disassemble".
       

      Fig. 2 - possible screw locations  
      After getting rid of all the screws, upper part of the mouse should come apart. Now it is a good time to clean any oil and dirt from many crevices in the upper cover with rubbing alcohol or soap water (in case upper cover does not contain any electronics). Let it dry thoroughly. Example of mouse insides are displayed on figure 3.
       

      Fig. 3 - Logitech MX700 without cover  
      Now look for micro switches that needs fixing. You have to have clear access to them in order to properly fix them so additional disassemble could be required. Usually there are few screws, that holds everything to the plastic base, internal connectors, scroll wheel, that can be easily put away etc. In some cases there can be hard connection between boards that cannot be non destructively disassembled. Again take a lot of photos during your work for future reference.
       
      For example in figure 3, Logitech MX700 is very complicated mouse with three layers of PCB's, two of which has soldered hard connection (4 pins directly above scroll wheel and on the left of D-3 component) and soldered flat cable between two other (upper right corner, white cable). There are five fixable switches on this mouse and three unfixable.
       
      Vast majority of manufacturers are using Omron type switches for main buttons (see figure 1 and 4). There is a possibility of finding smaller, four pin surface mounted switches, that cannot be opened and repaired without soldering. These can be also found in Xbox 360 controller.
       

      Fig. 4 - Omron type micro switch  
      3. Opening the micro switch
      So you have located faulty switch and ensured enough access to it. Opening it is fairly straight forward. There are usually two latches, that has to be lifted separately (figure 5). Some manufacturers has these latches on the long sides of the switch (figure 1).
       

      Fig. 5 - location of latches on the Omron micro switch  
      Insert your open safety pin or point of scissors under the latch to unlock it and lift one side of the switch cover slightly (figure 6). Do not try to lift whole cover up just yet, you'll break the second latch.

      Fig. 6 - one latch unlocked and cover slightly lifted  
      Do the same on the other side of the switch so you'll get situation displayed on figure 7. Rotate the mouse (or part with the switch) so the white pin on the top of the switch is pointing down.
       

      Fig. 7 - both latches unlocked and both sides of cover slightly lifted  
       
      Now you can pull cover away from the base. The white pin is loose in the cover and can be easily lost if not handled upside down. At the end, you'll end up with situation displayed in figure 8.
       

      Fig. 8 - uncovered switch and detail of the white pin  
      4. Metal spring fun
      You can see insides of the switch. The part, that needs fixing, is the long metal with spring in the middle and It needs to come of the rest of the switch. This is another not very difficult task, lay the switch flat, as shown on figure 8, hold the part without the spring with two fingers and twist the metal to the side. It should go fairly easily and you'll end up with bare metal with spring (upper left side of figure 9).
       

      Fig. 9 - Metal with spring and prying spring  
      As the fix itself you'll need to pry the spring little bit. Lay the metal piece flat, hold it as flat possible with tweezers and pry the spring up just a little bit. There is very little strength required, just fraction of a millimeter should be enough. Clean the contacts on the metal with alcohol, do the same with pins on the base of the switch.
       
      Now for the tricky part: you have to put it back together. See figure 10 in full resolution for more details. There are two grooves on the two metal pins on the base of the switch (numbered 1 and 2 on the figure 10). These grooves are corresponding with cutouts on the metal, also numbered 1 and 2. The hammer needs to go between two most right pins.
       

      Fig. 10 - grooves on contacts and metal spring detail  
      The easiest way I've found is to place the hammer first, then place the metal into the groove 1. Spring is resting on the middle pin, just above groove number 2. Situation on the top left, top right and bottom right part of figure 11.
       

      Fig. 11 - reassembling metal with spring on the switch base  
      Now for seating the spring into its groove. Take the tweezers or small screw driver and push the spring down into its place (rest of figure 11). This is especially tricky move, as you have to push with enough force to push it down, but not enough to over push. If you over do it, you'll have to start over. When you manage to seat the metal properly, try to click it few times so you know, it is working OK. Seated metal is displayed on figure 12.
       

      Fig. 12 - properly seated metal spring on the switch base  
      Whole process of opening and fixing the switch is captured on a video. Be sure to turn on HD for best details.
       
         
      4. Testing and reassembly
      Close the switch and make sure, you are putting the cover the right way. White pin should not be directly above the spring. Consult your photos for proper orientation. Unfortunately you have to fully reassemble your mouse to do proper testing. Screws are putting the right amount of pressure on the micro switches and without them you could get another faulty clicks.
       
      Sometimes sound of the click and force needed to achieve button press can change slightly depending of force used on prying the spring. Try to open it again if you are not satisfied with results.
       
      The best way to test success of the fix is in any paint application. Create a blank document, pick any color and create any random shape with the button, you've just fixed. You should get continuous line if the fix is successful. Glue back the rubber feet and enjoy your fixed mouse.
    • By LDK
      If you are experienced PC player, you have probably came across a broken or malfunctioning mouse. We are going to look at the unwanted double-click problem and provide detailed guide with many macro photos and video how to fix it regardless of mouse model. Without any soldering and with just basic tools you can bring back to life your older or aging, but once expensive, gaming mouse.
      The problem
      Double-clicking in single click, inability to create continuous line in paint application, difficulty to move camera in RTS, iron sights not sticking in FPS - these are all symptoms of a broken mouse button. Culprit in majority of cases is a component called miniature snap-action switch, or micro switch. This switch contains three leads and a metal with little spring. This metal is jumping between two contacts thanks to the spring and bridging connection between contacts.
       
      This spring can become tired so it isn't providing pressure necessary to maintain connection. With combination of dirt (dust) and oxidation on the contact areas, it is a perfect recipe for unstable connection and unwanted double clicks.
      Fig. 1 - types of micro switches  
      Tools and tips
      You will need:
      screw driver (type depends on your mouse model, Phillips and flat head should be enough tweezers safety pin, nail scissors or something pointy contacts cleaner or rubbing alcohol any type of glue camera (cellphone will suffice) little bit of time Tips:
      Make several photos of each step, it will help you tremendously in reassembly. Don't use much force, there can be hidden screws or latches and you will break something if you are not careful. Disconnect your mouse from computer and pull out batteries first. Take your time, you do not have be finished in ten minutes. Every photo in this guide is in high resolution, visit gallery for additional details. And as usual, PCGamingWiki is not responsible for any damages caused by following this guide. 1. Mouse disassemble
      This step is unfortunately rather vague, because of each mouse having vastly different design. Be extra careful and look for hidden latches and screws when pulling parts apart.
       
      First of all you have to find screws on your mouse. Usual places are under rubber feet, in battery compartment and under stickers. Consult Google with a name of your mouse and word "disassemble".
       

      Fig. 2 - possible screw locations  
      After getting rid of all the screws, upper part of the mouse should come apart. Now it is a good time to clean any oil and dirt from many crevices in the upper cover with rubbing alcohol or soap water (in case upper cover does not contain any electronics). Let it dry thoroughly. Example of mouse insides are displayed on figure 3.
       

      Fig. 3 - Logitech MX700 without cover  
      Now look for micro switches that needs fixing. You have to have clear access to them in order to properly fix them so additional disassemble could be required. Usually there are few screws, that holds everything to the plastic base, internal connectors, scroll wheel, that can be easily put away etc. In some cases there can be hard connection between boards that cannot be non destructively disassembled. Again take a lot of photos during your work for future reference.
       
      For example in figure 3, Logitech MX700 is very complicated mouse with three layers of PCB's, two of which has soldered hard connection (4 pins directly above scroll wheel and on the left of D-3 component) and soldered flat cable between two other (upper right corner, white cable). There are five fixable switches on this mouse and three unfixable.
       
      Vast majority of manufacturers are using Omron type switches for main buttons (see figure 1 and 4). There is a possibility of finding smaller, four pin surface mounted switches, that cannot be opened and repaired without soldering. These can be also found in Xbox 360 controller.
       

      Fig. 4 - Omron type micro switch  
      3. Opening the micro switch
      So you have located faulty switch and ensured enough access to it. Opening it is fairly straight forward. There are usually two latches, that has to be lifted separately (figure 5). Some manufacturers has these latches on the long sides of the switch (figure 1).
       

      Fig. 5 - location of latches on the Omron micro switch  
      Insert your open safety pin or point of scissors under the latch to unlock it and lift one side of the switch cover slightly (figure 6). Do not try to lift whole cover up just yet, you'll break the second latch.

      Fig. 6 - one latch unlocked and cover slightly lifted  
      Do the same on the other side of the switch so you'll get situation displayed on figure 7. Rotate the mouse (or part with the switch) so the white pin on the top of the switch is pointing down.
       

      Fig. 7 - both latches unlocked and both sides of cover slightly lifted  
       
      Now you can pull cover away from the base. The white pin is loose in the cover and can be easily lost if not handled upside down. At the end, you'll end up with situation displayed in figure 8.
       

      Fig. 8 - uncovered switch and detail of the white pin  
      4. Metal spring fun
      You can see insides of the switch. The part, that needs fixing, is the long metal with spring in the middle and It needs to come of the rest of the switch. This is another not very difficult task, lay the switch flat, as shown on figure 8, hold the part without the spring with two fingers and twist the metal to the side. It should go fairly easily and you'll end up with bare metal with spring (upper left side of figure 9).
       

      Fig. 9 - Metal with spring and prying spring  
      As the fix itself you'll need to pry the spring little bit. Lay the metal piece flat, hold it as flat possible with tweezers and pry the spring up just a little bit. There is very little strength required, just fraction of a millimeter should be enough. Clean the contacts on the metal with alcohol, do the same with pins on the base of the switch.
       
      Now for the tricky part: you have to put it back together. See figure 10 in full resolution for more details. There are two grooves on the two metal pins on the base of the switch (numbered 1 and 2 on the figure 10). These grooves are corresponding with cutouts on the metal, also numbered 1 and 2. The hammer needs to go between two most right pins.
       

      Fig. 10 - grooves on contacts and metal spring detail  
      The easiest way I've found is to place the hammer first, then place the metal into the groove 1. Spring is resting on the middle pin, just above groove number 2. Situation on the top left, top right and bottom right part of figure 11.
       

      Fig. 11 - reassembling metal with spring on the switch base  
      Now for seating the spring into its groove. Take the tweezers or small screw driver and push the spring down into its place (rest of figure 11). This is especially tricky move, as you have to push with enough force to push it down, but not enough to over push. If you over do it, you'll have to start over. When you manage to seat the metal properly, try to click it few times so you know, it is working OK. Seated metal is displayed on figure 12.
       

      Fig. 12 - properly seated metal spring on the switch base  
      Whole process of opening and fixing the switch is captured on a video. Be sure to turn on HD for best details.
       
         
      4. Testing and reassembly
      Close the switch and make sure, you are putting the cover the right way. White pin should not be directly above the spring. Consult your photos for proper orientation. Unfortunately you have to fully reassemble your mouse to do proper testing. Screws are putting the right amount of pressure on the micro switches and without them you could get another faulty clicks.
       
      Sometimes sound of the click and force needed to achieve button press can change slightly depending of force used on prying the spring. Try to open it again if you are not satisfied with results.
       
      The best way to test success of the fix is in any paint application. Create a blank document, pick any color and create any random shape with the button, you've just fixed. You should get continuous line if the fix is successful. Glue back the rubber feet and enjoy your fixed mouse.

      View full article
  • Who's Online   0 Members, 0 Anonymous, 233 Guests (See full list)

    There are no registered users currently online

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Member Statistics

    4,994
    Total Members
    3,870
    Most Online
    debay
    Newest Member
    debay
    Joined
×
×
  • Create New...