|You won't let Alma run away from you at 15 frames per second, will you?|
If the user has Logitech hardware peripherals, then the source of the problem is already known among the community of players. However, the workarounds presented in every place I visited are far from being confortable to the user.
In this post I present you a simple workaround for the problem that almost feels like a fix.
According to this link, the problem lies in the fact that the game engine overpolls the USB I/O in Windows 7 when Logitech Human Interface Devices (HIDs) are connected to the computer. Some users have reported that disabling the Human Interface Device Access service is enough to fix this issue, but I could not reproduce it.
The usual workaround is to disable all HIDs that belong to Logitech devices from the Windows Device Manager. When they are disabled, special controls like keyboards' volume up/down keys will not work anymore. So, if users make use of these controls they will need to keep enabling the HIDs after playing F.E.A.R.
The transparent workaround
I have created a simple batch script that automatically disables the HIDs and runs the game. Then, when the game quits, the script automatically enables the HIDs.
There is only one requirement besides the actual script: the
devconcommand-line utility, though it can also be downloaded from this page.
Make it work
Download the following files:
- Extract the
devconexecutable to the game directory (where the game executable is);
- Copy the script also to the game directory;
- The script is only ready for the multiplayer version of F.E.A.R., or F.E.A.R. Combat. Edit the script with a text editor and change
FEARMP.EXEto the desired game executable;
- Create a shortcut to the desktop and change its icon if you want... you will be playing the game using the script from now on;
- Make sure you run it as an administrador and let UAC (User Account Control) proceed. Right-click the script, select Compatibility and check "Run this program as an administrator";
- You can mess with the script until it fits your system properly, in case your hardware isn't compatible with the script, though I am using the vendor ID
0x046D, which is Logitech's;
- You can lose all keyboard and mouse input to your computer in case the script doesn't fit your hardware properly. If that happens, grab another mouse or keyboard, go to the Device Manager and enable all Human Interface Devices;
- The mouse may stop working for one or two seconds when the script is being executed, but that's normal.