This article addresses input issues exclusively. Please see the Troubleshooting Gameplay and Performance article if you are encountering poor game performance (for example, choppy video display and occasional stalling).
Common symptoms of mouse and keyboard lag include delayed response time on movement and firing controls (for example, one's player keeps moving or firing for several moments after one has released the key or mouse button to move or fire).
You may set this filter in the game console by entering m_filter 1
This is an HL option that forces a software mouse cursor emulation (this may be useful for older graphics cards which display a flickering mouse cursor). Enter vgui_emulatemouse 1 in the console to enable this feature.
The ATI Catalyst drivers include an ATI HotKey Poller service that has been reported to cause input lag on certain system configurations. If you do not overclock your video card or otherwise use the ATI hotkeys, it is recommend that you disable this service if you are experiencing input lag in games. To disable the service, please follow these directions:
Uninstall any specialty mouse drivers and allow Windows to detect and install the default mouse drivers.
If you have other USB peripherals plugged in (for example, a digital camera, USB disk drive, or USB sound or video capture device), please try unplugging the non-essential USB devices when playing.
Avoid using USB hubs to connect your mouse and keyboard - plug directly into the back of the computer to ensure the best performance.
If you're experiencing mouse lockups or failures, it may be because your computer is automatically turning off the power to a USB Root Hub.
If you continue to encounter issues with USB mouse performance, please try using an adapter (many USB mice come with a PS2 adapter) to plug into the PS/2 port. (You may also try using a generic two-button PS/2 mouse to help determine if the issue is specific to USB input.)
Please ensure you have fresh batteries installed in any wireless peripherals as a preliminary troubleshooting step.
Ensure that you have the latest drivers from your wireless peripheral manufacturer.
Try using a generic two-button PS/2 mouse to help determine if the issue is specific to wireless input.
When configuring your mouse for use in games it is important to note that there are four different programs or components involved in interpreting and controlling how your mouse moves and what it does:
Your motherboard BIOS has a set of unique routines that make the mouse operate, one set in PS2, the other set in USB.
The operating system has a core set of drivers that own your mouse, how it moves, how it clicks, how fast it moves, what the cursors look like, how to interpret buttons.
On the surface there appears to be only one driver set, but in reality there are three unique driver sets, one for PS2 and one for USB (which has many things going on), and then there is the API or Application Interface on top of those that takes a generic set of commands and translates them back and forth to fit the specific language that your mouse hardware speaks.
OK, so now we've arrived at the desktop and the mouse has a number of attributes that you set in the control panel.
Mouse manufacturers create drivers that let the mouse do a lot more then just point and click, they want the mouse to be a highly integrated control device and a unique part of the program you are running.
Unfortunately, many of these programmatic extensions (and the drivers themselves) just add wierd delays and unnecessary processing when you are in the game.
Half-Life has it's own set of drivers for the mouse and keyboard which talk directly to the Mouse API within the Operating System ... unless the mouse drivers and extensions are hijacking the mouse first. It is there that weird things can happen.
Ideally, the very best setup is the O/S and mouse drivers get the heck out of the way and let HL totally control the mouse and keyboard.
Unfortunately, HL can't possibly understand all the hundreds (or thousands) of mouse designs so the unique drivers for the mouse hardware have to have an interpretive layer above it (again the API).
One additional thing to remember is that motherboards and the operating system have several levels of power savings available. Especially on notebook computers, you may find that your USB power might be getting disabled to save power while you are playing!
Wireless Keyboards and Mice have batteries which can run out or get low so they can start acting odd too.
Here are the three commandline (launch option) switches you can add to change how HL manages your mouse behavior and properties:
-noforcemparms (use desktop mouse buttons settings)
This setting tells HL to use whatever button assignments you have set in the mouse properties. You have to make sure each button has a letter or function-key assignment appropriate for the game.
Normally HL forces it's own set of button definitions onto the mouse and when you return to the O/S all the buttons return to your operating system setup. This switch turns that off.
-noforcemaccel (use desktop mouse acceleration settings)
Normally in HL the last thing you want is acceleration. Sometimes the HL no-acceleration control won't work because the mouse or its drivers are too different.
This switch tells HL to bugger off trying to manage the acceleration and whatever you have set in the mouse properties for the desktop is what will happen in the game.
-noforcemspd (use desktop mouse speed settings)
This tells HL to use the speed settings you have set on your desktop. Whatever you set in your mouse properties is how it will behave in HL.
This is separate from the "sensitivity" setting in your mouse properties, think of the sensitivity as an amplifier, it can attenuate the movement, leave it exactly the same or amplify it.