An Explanation for the Usage of -noforce Commands (explained by dwhy83)

 

There seems to be no accurate source of information regarding the noforce commands. It has been long thought that a combination of these commands will reduce mouse acceleration in-game, but there seems to be no official or accurate source of information regarding why or how or even what.

noforce

In my research, this appears to be the authoritative source on the noforce commands, but I find it appears to be highly inaccurate:

Gotfrag link.

So how do the noforce commands truly work? I started by trying each command out individually — some of the commands seemingly did nothing, while other commands seemed to do unexpected things.

So I went to the half-life sdk. Specifically, I examined the hlsdk-2.3-p3, the patched version of the half-life sdk that Valve no longer maintains. While it’s possible that Counter-Strike differs in its handling of these noforce commands, it is highly unlikely.

What did I find?

The code makes a call to the Win32 API to retrieve values via SystemParametersInfo and SPI_GETMOUSE. MSDN explains what is returned from this via the following link:

Click

SPI_GETMOUSE
Retrieves the two mouse threshold values and the mouse acceleration.

So basically three values are returned via this Win32 API call. The first value is a MouseTheshold1, then a MouseThreshold2, then an acceleration value. These require some explanation:

During acceleration, if the delta is larger than MouseThreshold1, it is doubled.

During acceleration, if the delta is larger than MouseThreshold1 and MouseThreshold2, and if MouseSpeed is 2, it is doubled again.

Depending on the size of the mouse movement and the settings of MouseThreshold1, MouseThreshold2, and MouseSpeed, the actual position delta will be unchanged, doubled, or quadrupled. This calculation is carried out independently for the X and Y coordinates.

The acceleration value is actually the “Enhance Pointer Precision” setting in Windows. In a lot of places it’s referred to as a “speed” value (such as being toggled by the command noforcemspd), and that’s kind of confusing.

So how does this translate to the noforce commands?

-noforcemspd
This makes Counter-Strike use the “Enhance Pointer Precision” setting you have in Windows. If you don’t use this or noforcemparms, the game will have “Enhance Pointer Precision” on by default.

-noforcemaccel
This makes Counter-Strike use the MouseThresholds that are defined in Windows. This should be irrelevant if you use either noforcemspd or noforcemparms.

-noforcemparms
This is noforcemaccel and noforcemspd combined.

In summary, you should use -noforcemparms, and turn off “Enhance Pointer Precision” in your Windows Control Panel. If you don’t use -noforcemparms (or -noforcemspd) and turn off “Enhance Pointer Precision” in your Windows mouse settings, the game will launch with “Enhance Pointer Precision” on, which will lead to acceleration.

The above context is taken from an external source.
Here is the original link to it. Click To View

The following two tabs change content below.
Pramit
Co-Founder of www.deadmango.com. Metal Head, Open Source Enthusiast. Currently pursuing Ms in Computer Science in Texas, USA.