The purpose of these fixes is to completely abolish any mouse acceleration imposed by *certain* application and games' utilization of the Windows cursor acceleration curve, regardless of whether "Enhance pointer precision" is disabled. It was previously believed that Windows itself forced the unwanted acceleration, but some newer games, not written with DirectInput (an API not prone to the problem in the first place), do not experience this problem; in games such as Call of Duty 4 and Challenge Q3 unchecking "Enhance pointer precision" results in *zero* forced acceleration. However, many popular games are still plagued by this problem and mouse fixes like these are still relevant today.
Windows' cursor acceleration curve dictates how much mouse scaling is applied to the output cursor movement based on how large, or fast, the inputs from the mouse are. This relationship, under ideal (and obtainable) circumstances would be 1-to-1--one count of the mouse (a mouse typically outputs anywhere from 400 to 2000 counts per inch, or DPI) sent to Windows is registered as the cursor moving one unit. A unit is represented on the Windows desktop by a pixel, but games represent a unit as an arbitrary number, defined by your sensitivity, that is added to a vector made up of large, high-precision, floating-point numbers, representing the direction your player is facing in-game.
The Windows acceleration curve is defined by five points on an X/Y graph rather than a continuous equation. The coordinates of these points are stored in two registry keys: SmoothMouseXCurve and SmoothMouseYCurve. The first point is always (0, 0) and if any mouse movement goes beyond the finite definition of the curve, the curve is simply extrapolated using the last two points. The default curve roughly takes the shape of an exponential function, but if one were to change the curve to abolish mouse acceleration it would have to take the shape of a straight line. Also note that Windows scales the Y coordinates by the computer screen's refresh rate, typically 60Hz to 120Hz.
There have been two previous attempts by third-parties to fix this problem, both of which were succsessful but each had their own disadvantages. The first popular fix to come about was the "CPL mousefix", a .reg file that changed the acceleration curve to a mostly straight line. Aside from the *minute* imperfections in the acceleration curve, the Hz scaling effect, explained in the previous paragraph, causes the users sensitivity to scale in accordance with the screen's refresh rate. This means that cursor outputs using the CPL Mousfix are rarely, if ever, perfect 1-to-1 representations of the actual mouse's outputs. The imperfections in the line, in theory, cause inconsistant mouse movement, but they are so small they aren't noticable by anyone--thus the CPL mousefix does a perfectly decent job of eliminating all mouse acceleration.
The second fix is much more robust than the CPL Mousefix, or even my own. Anir's accelfix.exe works by removing mouse acceleration from the drivers that cause it in the first place. It's invasive, potentially unsafe in clumsy hands (absolute retards), and generally isn't allowed at non-BYOC LANs and Tournaments because of this. Otherwise, Anir's fix yeilds perfect 1-to-1 mouse movements under every circumstance.
My fix aims to fill the gap between the two. When used correctly, it will provide the 1-to-1 mouse movements of Anir's fix while operating on the widely accepted principles of the CPL mousefix. It works by having many different acceleration "curves" which, in this case, are *perfectly* straight lines that account for most screen refresh rates users game with and can be easily modified for the refresh rates I didn't include. I've included many other .reg files for other feels and testing purposes--read INSTRUCTIONS for explanations. Ideally, someone will come around, analyze my work, and code a program that can sit in the system tray and automatically change the acceleration graph when the screen's refresh rate changes on-the-fly. I see something like that as being a very strong fix that is acceptable by LANs and Tournaments.
Double-click on the .reg file that applies to you, click "Yes", then "OK", then log off or reboot.
#.reg The 1-to-1, perfect line fixes, use whichever one is the refresh rate you game at.
cplModified.reg Use this if you are comfortable with the CPL mousefix. This corrects the small imperfections in the line which is now perfectly straight.
CPL.reg The original CPL mousefix.
windowsDefault.reg The default Windows acceleration curve.
flatLine.reg Use this to test if a game forces acceleration or not. Try this fix and turn Enhance pointer precision on--you'll see what I mean.