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.
INSTRUCTIONS
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.
very nice post thanks. Does anyone know in order for this to work do you have to remove the mousefix or add the acceleration then run this reg file or is it fine to overwrite whatever you have?
Cheese Mouse Fix is just like the CPL Mouse Fix, but DONE PROPERLY.
Edit: The Cheese Mouse Fix needs the mouse pointer speed slider set to the middle (6th) position to get rid of the CPL Mouse Fix problems listed below...
The CPL Mouse Fix has problems, WHEN the 'Enhance pointer precision' checkbox is ON (or your game forces it on), which include: - Not an exact 1:1 mapping of mouse movement to pointer movement. - At refresh rates < 80 Hz, it moves the mouse pointer < 1 pixel for each mouse count sent, which causes bizzare wobbling and slowdown if moving the mouse slowly right and down. - At refresh rates > 80 Hz, it moves the mouse pointer > 1 pixel for each mouse count sent, which causes bizzare wobbling and speedup if moving the mouse slowly left and up. - At any refresh rate, moving the mouse slowly in small circles causes the pointer to move up and left slowly.
Cheese's Mouse Fix does not have those problems and works on any system that the CPL Mouse Fix works on.
(There is a wee problem with the 70 Hz .reg file: To fix that problem, edit the "01 50 01" so that it reads "02 50 01" instead.)
If the screen refresh rate you use is not one of the ones that Cheese has pre-built, you can create your own. The numbers to use depend upon the Screen Refresh Rate you use (in-game I think, rather than the desktop refresh rate(1)). (If you use "Large Fonts" on your desktop, that will affect the numbers to use also (even in-game).)
If your Control Panel>Display>Settings>Advanc... setting is "Normal size (96 DPI)" (which is the default value), then use these rules to build your own 1:1 curve
- Convert your screen refresh rate into hexadecimal (Google can convert it for you: http://www.google.com/search?q=60+in+hex and remove the "0x" from the front) - UnZIP or extract Cheese's 60.reg file and rename it according to your actual refresh rate - Edit it (Right+Click>Edit) - Replace "3C" on the second line of the SmoothMouseXCurve setting with the hexadecimal of your refresh rate - IS your refresh rate less than 100 AND also exactly equal to 1 more than a multiple of 3? (ie is it equal to 61, 64, 67, 70, 73, 76, 79, 82...?) If YES, then edit the second line of the SmoothMouseYCurve setting to 02 50 01 Otherwise leave it set at 01 50 01 - Save - Run/Open (Double+Click) the .reg file you have created Answer "Yes" to the "Are you sure you want to..." question - Logout or reboot - Enjoy 1:1 mouse:display mapping!
Mark
Notes: 1: If your in-game screen refresh rate is different than your desktop refresh rate, you will likely need separate .reg files for each situation.
If you use "Large Fonts", you will need different numbers in the .reg files. (It's the desktop DPI setting that matters here, NOT any in-game DPI or screen resolution.)
If your Control Panel>Display>Settings>Advanc... setting is "Large size (120 DPI)", then use these rules to build your own 1:1 curve
- ... as above ... - Calculate R1 = DisplayRefreshRate MOD 15 (divide by 15 leaving a whole number remainder between 0 and 14) - Take the remainder result above, and calculate R2 = R1 MOD 8 (divide the remainder from before by 8 leaving a whole number remainder between 0 and 7).
- Replace "00 01 50 01" in the second line of the SmoothMouseYCurve setting according to this table:
alternative to the mouse fix
give another link!
http://files.filefront.com/cheesemfixzip/..
Cheese's Mouse Fixes (05/05/2008)
BACKGROUND
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.
INSTRUCTIONS
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.
LINKS
Explanation of Windows' pointer ballistics: http://www.microsoft.com/whdc/archive/po..
Anir's fix: http://files.filefront.com/accelfixe..
Email Cheese at cucook[at]gmail.com
Sorry for the terrible formating.
#7 u can over write, just restart your pc afterwards.
100hz from monitor or what?:|
mousehz? 150 ?
only program to change mouse hz is MOUSE_USB_HZ_CHANGER.exe and only values are: 125 , 250 , 500 and 1000 ! ?!
Extra details for the Cheese Mouse Fix.
Cheese Mouse Fix is just like the CPL Mouse Fix, but DONE PROPERLY.
Edit: The Cheese Mouse Fix needs the mouse pointer speed slider set to the middle (6th) position to get rid of the CPL Mouse Fix problems listed below...
The CPL Mouse Fix has problems, WHEN the 'Enhance pointer precision' checkbox is ON (or your game forces it on), which include:
- Not an exact 1:1 mapping of mouse movement to pointer movement.
- At refresh rates < 80 Hz, it moves the mouse pointer < 1 pixel for each mouse count sent, which causes bizzare wobbling and slowdown if moving the mouse slowly right and down.
- At refresh rates > 80 Hz, it moves the mouse pointer > 1 pixel for each mouse count sent, which causes bizzare wobbling and speedup if moving the mouse slowly left and up.
- At any refresh rate, moving the mouse slowly in small circles causes the pointer to move up and left slowly.
Cheese's Mouse Fix does not have those problems and works on any system that the CPL Mouse Fix works on.
(There is a wee problem with the 70 Hz .reg file: To fix that problem, edit the "01 50 01" so that it reads "02 50 01" instead.)
If the screen refresh rate you use is not one of the ones that Cheese has pre-built, you can create your own.
The numbers to use depend upon the Screen Refresh Rate you use (in-game I think, rather than the desktop refresh rate(1)).
(If you use "Large Fonts" on your desktop, that will affect the numbers to use also (even in-game).)
If your Control Panel>Display>Settings>Advanc... setting is "Normal size (96 DPI)" (which is the default value), then use these rules to build your own 1:1 curve
- Convert your screen refresh rate into hexadecimal (Google can convert it for you: http://www.google.com/search?q=60+in+hex and remove the "0x" from the front)
- UnZIP or extract Cheese's 60.reg file and rename it according to your actual refresh rate
- Edit it (Right+Click>Edit)
- Replace "3C" on the second line of the SmoothMouseXCurve setting with the hexadecimal of your refresh rate
- IS your refresh rate less than 100 AND also exactly equal to 1 more than a multiple of 3?
(ie is it equal to 61, 64, 67, 70, 73, 76, 79, 82...?)
If YES, then edit the second line of the SmoothMouseYCurve setting to 02 50 01
Otherwise leave it set at 01 50 01
- Save
- Run/Open (Double+Click) the .reg file you have created
Answer "Yes" to the "Are you sure you want to..." question
- Logout or reboot
- Enjoy 1:1 mouse:display mapping!
Mark
Notes:
1: If your in-game screen refresh rate is different than your desktop refresh rate, you will likely need separate .reg files for each situation.
If you use "Large Fonts", you will need different numbers in the .reg files.
(It's the desktop DPI setting that matters here, NOT any in-game DPI or screen resolution.)
If your Control Panel>Display>Settings>Advanc... setting is "Large size (120 DPI)", then use these rules to build your own 1:1 curve
- ... as above ...
- Calculate R1 = DisplayRefreshRate MOD 15 (divide by 15 leaving a whole number remainder between 0 and 14)
- Take the remainder result above, and calculate R2 = R1 MOD 8 (divide the remainder from before by 8 leaving a whole number remainder between 0 and 7).
- Replace "00 01 50 01" in the second line of the SmoothMouseYCurve setting according to this table:
R2: SmoothMouseYCurve value
0: 00 01 A4 01
1: 40 01 A4 01
2: 80 01 A4 01
3: C0 01 A4 01
4: 00 02 A4 01
5: 40 02 A4 01
6: 80 02 A4 01
7: C0 02 A4 01
(Note: the "A4" goes where the "50" was)
- Save and then continue as above
http://www.virustotal.com/analisis/285dfe..
Use the MarkC Windows 7 Mouse Acceleration Fix for Windows 7:
http://www.esreality.com/?a=post&id=1846538
Like CPL and Cheese, but for Windows 7 and exact 1-to-1 mouse response.
Submit Comments
Registered Users Only
In order to post comments, you must be a registered member. If you have not registered, it's free and easy!