Sunday, April 4, 2010

The MarkC Windows 8.1 + 8 + 7 + Vista + XP Mouse Acceleration Fix Builder

The 'MarkC Windows 8.1 + 8 + 7 + Vista + XP Mouse Acceleration Fix Builder' is available for download from this link:
MarkC_Windows_8.x+7+Vista+XP_MouseFix_Builder_2.3.zip @ google docs
(If the above does not work then try this alternative download link)

What is it?

It is a VBS script program that creates a registry .REG file that removes Windows' mouse acceleration for Windows 8.1 or 8 or 7 or Vista or XP, or emulates Windows 2000 or Windows 98/95 acceleration.

Fix Builder can build .REG files for Windows 8.1 or 8 or 7 or Vista or XP.

The registry fix created works like the CPL and Cheese and MarkC fixes, but is customized for your specific desktop display text size (DPI), your specific mouse pointer speed slider setting, your specific refresh rate and has any in-game pointer scaling/sensitivity factor you want (see note).

Fix Builder can create a fix that emulates Windows 2000 or Windows 98/95 acceleration.

For older games that turn acceleration on, it gives the same response as position 6/11 does (1-to-1), without having to move the pointer speed slider to 6/11.
(Yeah, I know : "Whoop-de-do...")

Exactly 1-to-1 means no discarded or delayed mouse input while game playing.

Other Registry fixes need the pointer speed slider set to 6/11 (middle) to get exactly 1-to-1 in-game mouse to pointer response, but this script can create a registry fix that gives exact 1-to-1 in-game response for non-6/11 settings.

Other registry fixes only provide files for some pre-defined display DPI values: 100%, 125%..., but this script can create a fix for any DPI setting.

The Cheese registry fixes only provides files for some pre-defined monitor refresh rate values: 60Hz, 70Hz, but this script can create a fix for any refresh rate setting.

Fix Builder can create a fix with any in-game mouse-to-pointer scaling factor you want (see note).

NOTE: ALL registry based mouse fixes, INCLUDING this one, ONLY work when the
Control Panel > Mouse > 'Enhance pointer precision' option is ON (OR when an older game forces 'Enhance pointer precision' to ON), AND your game does not use DirectInput and does not use Raw Input for mouse input.

Eh? What is it again?

A mostly pointless sledgehammer solution to the problem of having to change your Control Panel > Mouse > pointer speed slider to 6/11 before you play an older game that needs a registry fix so you can avoid at most a single pixel of discarded or delayed mouse input while game playing...

A way to emulate Windows 2000 or Windows 98/95 acceleration.

An interesting programming exercise!

How do you use it?

  • In Windows Explorer, double-click MarkC_Windows_8+7+Vista+XP_MouseFix_Builder.vbs,
    or double-click MarkC_Windows_8+7+Vista+XP_MouseFix_Builder.CMD.

  • Verify or edit the suggested settings, clicking OK as you go.

  • Add/Merge the created fix to the registry.
    (See below for non-Administrator account use.)

  • Reboot or Log off to apply the fix (you have to reboot or Log off).

  • If you don't use the mouse pointer speed slider set to 6/11, and you do want exact 1-to-1 in-game, then configure your game so that it enables control panel 'Enhance pointer precision'.
    If you want Windows 2000+98+95 acceleration in-game, then configure your game so that it enables control panel 'Enhance pointer precision'.
    (For example, in Counter-Strike: Source and other Source games, do use -useforcedmparms and don't use -noforcemspd. In Half-Life, CounterStrike 1.6, don't use -noforcemspd or -noforcemparms.)

  • Enjoy exactly 1-to-1 mouse to pointer response for your custom desktop settings!
    (Or enjoy Windows 2000-like or Windows 98/95-like acceleration!)
    (If you applied one of the Windows 2000 or Windows 98/95 Acceleration fixes, then 'Enhance pointer precision' must be checked ON to enable it.)

Why do you need a fix?

Some older games turn Windows mouse acceleration on when you don't want them to. See here for more details.

You prefer the mouse acceleration that Windows 2000 or Windows 98/95 had.

How does the fix work?

The current system is queried, and you can change the values and tune the registry fix file created.
The result is saved to a file and can optionally be imported into the registry.

The script asks for:

  • Operating system that the fix will be used for.
  • The desktop Control Panel, Display, text size (DPI) that will be used.
  • The in-game monitor refresh rate that will be used (XP and Vista only).
  • The Control Panel, Mouse, pointer speed slider position that will be used.
  • Windows-2000+98+95-style acceleration thresholds (optional).
  • The pointer speed scaling (sensitivity) factor for that pointer speed setting.
  • Where you want to save the fix to and what name.

It creates a registry .reg file with the settings entered, and optionally lets you merge / apply it into the registry.

How do you know the fix is working?

You can test if it is working by temporarily turning on the 'Enhance pointer precision' feature and see how the mouse responds.
(NOTE: Unless you applied one of the Windows 2000 or Windows 98/95 Acceleration fixes, only turn 'Enhance pointer precision' on for testing: it should normally be set OFF.)

If you have 'Enhance pointer precision' OFF, then the fix will not be active (but it will be waiting to be activated when needed).
Just as some games turn it on when you don't want them to, we can turn it on manually to test that the fix is working properly.

  • Go to Control Panel, and select Hardware and Sound, then click Mouse. Select 'Pointer options' and check-ON/enable the 'Enhance pointer precision' option.

  • See how the mouse responds.

  • If you want, you can run the MouseMovementRecorder.exe program that is included in the ZIP file to see that the mouse and pointer movements are 1-to-1 and always the same (or are whatever custom scaling you entered).
    (The numbers in the MOUSE MOVEMENT column should be the same as the numbers in the POINTER MOVEMENT column. Any differences will appear in green or red.
    If you do see differences, also test with 'Enhance pointer precision' OFF, in case the problem is with Windows or MouseMovementRecorder.exe rather than a problem with the fix:
    - Press the A key on the keyboard while MouseMovementRecorder is running until EnPtPr Accel is Off.
    - When EnPtPr Accel is OFF, if there is a lot of red and green, press the '+' key on the keyboard and move the mouse.
    - Repeat '+' and move the mouse until most of the red and green disappears.
    - Press the A key on the keyboard to toggle EnPtPr Accel and move the mouse.
    - If the amount of red and green is roughly the same when EnPtPr Accel is ON as when EnPtPr Accel is Off, then the fix is working.)

    (NOTE: If you use Windows 8.1 and have too much green and red, see more information below.)
    (NOTE: While running a game, you may see many red and green lines.
    Games that need a fix usually frequently re-position the pointer and this confuses MouseMovementRecorder.exe but DOES NOT mean acceleration.

    See http://www.esreality.com/?a=post&id=1846538#pid1927879 - scroll to 'Comment #271'.)

  • If you have built a Windows 2000 or Windows 9X fix, you should see that acceleration varies depending upon how fast the mouse is, compared to the thresholds, but is linear (a constant sensitivity) between thresholds.
    (NOTE: See file !Threshold_Acceleration_ReadMe.txt in the ZIP file for more info.)

  • Turn the 'Enhance pointer precision' option OFF when you have finished testing.
    (If you applied one of the Windows 2000 or Windows 98/95 Acceleration fixes, then leave 'Enhance pointer precision' checked ON to enable it.)

How do you know the fix is giving exact 1-to-1 when playing your game?

If you don't use the mouse pointer speed slider set to 6/11, and you do want exact 1-to-1 in-game, then you must configure your game so that it enables control panel 'Enhance pointer precision'.

You can test your game to see if it turns 'Enhance pointer precision' ON, and gets exact 1-to-1.

  • Turn the 'Enhance pointer precision' option OFF,
  • Run Mouse Movement Recorder (included in the ZIP file),
  • Run your game (aim at something!) and look at the 'EnPtPr' column footer at the bottom of the Mouse Movement Recorder window.
    If it is displayed with a red background then the game has turned acceleration ON and will have exact 1-to-1.

How do you remove it?

  • Open the ZIP file at the link above.
  • If you use Windows 7 or Vista or XP:
    Select 'Windows_7+Vista+XP_Default.reg' and Double-click it.
  • If you use Windows 8 or Windows 8.1:
    Select 'Windows_8.x_Default.reg' and Double-click it.
  • Answer Yes, OK to the prompts that appear.
  • Reboot or Log off.

I use Windows 8.1 and see too much green and/or red in MouseMovementRecorder

Windows 8.1 introduced changes to mouse input processing to reduce power used and improve battery life:
Windows 8.1 delays and coalesces (merges) mouse input for programs, causing the effective mouse polling rate to be as low as 62 Hz in some cases (even for gaming mice with a higher polling rate).

This new processing can affect some games (games that don't use Raw Input and don't use DirectInput). Microsoft have a December 2013 Windows Update Rollup that includes a fix for those games, which will be automatically installed when you have Windows Update set to install updates automatically.
(See here: KB2908279 Mouse pointer stutters or freezes when you play certain games in Windows 8.1.)

The new processing can also affect MouseMovementRecorder and cause it to show red and green (with the mouse delays, MouseMovementRecorder sees a mouse movement from DirectInput, but doesn't see the pointer move until MUCH MUCH later and can't figure out what's going on and displays red and green).

If the KB2908279 update fix is installed, MouseMovementRecorder will activate it
to give more responsive mouse pointer movement and stop the red and green.

Otherwise, while running MouseMovementRecorder, select it and press the '+' key
on the keyboard a until the red and green stops.

If Control Panel, Appearance and Personalization, Display shows a 'Smaller...Larger' slider, high DPI monitors might need a custom size and/or a fix-builder fix to get exact 1-to-1.
See this blog article:
Windows 8.1 DPI Scaling Enhancements @ Extreme Windows Blog
The new multi-monitor DPI scaling in Windows 8.1 is a good thing if you have multiple monitors with different pixels-per-inch values, BUT it might make it harder to find the correct Item Size percentage when choosing which MarkC fix to use to get exact 1-to-1.
Try clicking the 'Let me choose one scaling level for all my displays' checkbox and then find the percentage needed so that your main (gaming) monitor looks the same as it did when using the 'Smaller...Larger' slider (this may require some reboots).
When you have the right percentage value, click '...one scaling level...' OFF (so that you get the benefit of the new Multi-monitor DPI scaling - if you need it) and use the percentage value to choose which fix you need, or to create a Fix-Builder fix.

Loading the fix on windows 7 or 8.x with a non-administrator account

On Windows 7 or 8.x, when adding the mouse acceleration fix to the registry, you may get one of these error messages:

"Cannot import (filename).reg: Not all data was successfully written to the registry."

"Part of the mouse acceleration fix can't be applied, because you are not logged in as an Administrator."

This error happens because part of the fix turns off acceleration for the Welcome screen (the log on screen).
If you use the Welcome screen (or the Windows Log in dialog) and acceleration is NOT turned off for the Welcome screen, then the MarkC fixes have a 1 pixel /1 mouse count error when the mouse changes direction left/right or up/down.

You can remove this 1 mouse count error by any of these methods:

  • Run Disable_WelcomeScreen+Login_Accel.CMD as Administrator (Right-click > Run as administrator).
  • Run MarkC_Windows_8+7+Vista+XP_MouseFix_Builder.CMD as Administrator.
  • Add/Merge Disable_WelcomeScreen+Login_Accel.reg to the registry while logged in as an administrator.
  • Run RegEdit.exe and edit 'HKEY_USERS\.DEFAULT\Control Panel\Mouse\MouseSpeed' to 0 (zero), while logged in as an administrator.
  • Not moving or touching the mouse while using the Welcome screen (use arrow keys to select the user and Enter key to log in).
  • Ignoring the 1 mouse count error! It's only a single count: You won't notice it.

149 comments:

Anonymous said...

hey mark, the 1-to-1 thing doesn't feel smooth to me as it should. I saw you made this which is better, but still has some mouse accel but not much. just curious if you could work on that a little more?

[HKEY_CURRENT_USER\Control Panel\Mouse]
"SmoothMouseXCurve"=hex:\
00,00,00,00,00,00,00,00,\
cc,4c,00,00,00,00,00,00,\
00,c0,00,00,00,00,00,00,\
00,80,01,00,00,00,00,00,\
00,00,08,00,00,00,00,00
"SmoothMouseYCurve"=hex:\
00,00,00,00,00,00,00,00,\
33,73,00,00,00,00,00,00,\
00,80,04,00,00,00,00,00,\
00,00,28,00,00,00,00,00,\
00,00,6a,02,00,00,00,00

Mark Cranness said...

The 'cc,4c' curve has a HUGE amount of acceleration. I built that for a user who used a trackball and needed extreme acceleration to allow the trackball to move the pointer across the screen with a single trackball movement.

Since you didn't feel a lot of accel with that curve, then likely none of the curves you have tried are having any affect at all, and any differences you feel are in your mind, or in the game, or in SetPoint (if you use Logitech SetPoint drivers).

When testing curves, make sure you turn the control panel 'Enhance pointer precision' option ON, and set the Logitech SetPoint Speed and Acceleration > Game Mode > OS Implementation ON (if using SetPoint).

Anonymous said...

doesn't work 1:1 in COD MW2.. idk why..
Can you PLEASE help?

Anonymous said...

I have an ikari optical. when i used the 1-to-1 thing i still experienced acceleration. I lined it up at a certain point and moved it from one side to another and ended up at a different spot every time. I still experience mouse accel and not sure how to get rid of it.

Mark Cranness said...

> doesn't work 1:1 in COD MW2.. idk why..

For detailed support questions, please visit the ESReality MarkC Windows 7 Mouse Acceleration Fix page:
http://www.esreality.com/?a=post&id=1846538
... and say whether you are using the Fix Builder or are using one of the pre-built REG files.

If you are using MouseMovementRecorder.exe while COD MW2 is running, then note that COD confuses MMR because COD continually re-centres the invisible mouse pointer. This causes a lot of red and green in MMR. See this link for an explanation why: Comment #43 - COD

Mark Cranness said...

> I have an ikari optical.

What does MouseMovementRecorder.exe show when the Control Panel > Mouse > Enhance pointer precision option is ON?

For detailed support questions, please visit the ESReality MarkC Windows 7 Mouse Acceleration Fix page.

Roswell said...

Hey Mark,
This is really awesome! I've tried the testing sample example and working superbly!. I have been the victim of mouse acceleration which starts in half an hour of playing CS 1.6. I use 5/11, enhanced pointer option off, and SetPoint 5/11 with no Pointer Acceleration along with Retain OS Settings. I just want to know about SetPoint settings that will prevent any mouse lag.
Thanks :D

Mark Cranness said...

Hi Roswell. I just left this reply on esreality, but it suddenly corrupted that thread, removing half of the replies!

I don't have a Logitech mouse myself, but based on an experiments I did on a friend's PC, I believe this to be true:

There are two ways input from a Logitech mouse gets accelerated: (1) In the SetPoint driver, or (2) in Windows (only one is enabled at a time).

When "SetPoint Implementation" is ON, SetPoint bypasses or disabled Windows acceleration.
I AM NOT SURE if SetPoint disables it strongly enough so that an acceleration fix is not needed anymore. (If you would like to test that, I can suggest how to do so.)

Note: MouseMovementRecorder CAN'T SEE or record any acceleration added by the SetPoint driver, even though that acceleration is there; MMR will show black, 1:1 even though there IS SetPoint acceleration.

For a non-G-series Logitech mouse, you should be able to remove all acceleration using SetPoint by (as you have done):
- Let SetPoint do the acceleration: Enable Mouse Game Settings > Speed and Acceleration > SetPoint Implementation
- Set SetPoint acceleration off: Pointer Settings > Pointer acceleration: None

I can't say anything about SetPoint lag. I don't know if having SetPoint Pointer speed to 5/11 still gives exact 1-to-1, but I would think it wouldn't.

Anonymous said...

hey there marc, good job!
i m on winXp32 and i was using anirs old accelfix, i was wondering if yours is doing a better job than that old fix because of the implementation of the dpi-scaling n refreshrate.
which fix shud i use?

thx in advance
chris

Mark Cranness said...

On windows XP, if you are using accelfix now, and you have the Control Panel pointer speed slider in the middle 6/11 position, then keep using accelfix.

Anir's accelfix (and his wcafix) disables Windows acceleration AND BYPASSES the dpi-scaling & refresh rate calculation to give 1-to-1 (for ANY dpi or refresh rate, BUT the pointer speed slider must be in the middle 6/11 position).
With accelfix and wcafix, if you don't have the pointer speed slider at the middle 6/11 position, you won't get 1-to-1.

The MarkC Mouse Fix Builder disables Windows acceleration and ADJUSTS the dpi-scaling & refresh rate calculation to give 1-to-1 (but ONLY for a single dpi and refresh rate and pointer speed slider setting you choose).
With the Fix Builder, if your game uses a different refresh rate than the fix was built for, you won't get 1-to-1.

Accelfix is better at disabling dpi and refresh rate scaling, but Fix Builder is better at disabling pointer speed slider scaling.

Anonymous said...

Hi Mark.

First of all, thank you for your efforts, you are doing a geat job!

2., I still didn't figure out, if I have to use your Win7 fix also for CS 1.6 or if I might just use the "-noforcemaccel -noforcemparms -noforcemspd" launch options.


3. Do I still get 1-to-1 with the following configuration?:

Hardware

TFT
60 Hz, 1280x1024 (ingame 800x600)

Razer Lachesis
1000 Hz, 4000 DPI


Software

Win7
MouseSensitivity "4"
MouseSpeed "0"
Threshold 1 & 2 "0"

CS 1.6
-noforcemaccel -noforcemparms -noforcemspd


Thank you.

greetings,
Lee

Mark Cranness said...

> CS 1.6

Hi Lee,

If you use my fix builder, AND REMOVE the -noforcem* options, you will get exact 1-to-1.
NOT using the -noforcem* options allows CS 1.6 to attempt to muck up the acceleration, but with the custom fix builder fix in place, the result is no acceleration AND ALSO exact 1-to-1.

If instead you use either -noforcemparms or -noforcemspd, then CS 1.6 will keep MouseSpeed=0, and the fix builder fix will NOT be activated and you won't get exact 1-to-1, because you have MouseSensitivity=4.

To get exact 1-to-1 when using either -noforcemparms or -noforcemspd, you also have to use MouseSensitivity="10" (which corresponds to the middle 6/11 position of the mouse speed slider).

NOTE: You have a high DPI mouse! If you do enable exact 1-to-1 with a high DPI mouse, you are more likely to get negative acceleration when you move the mouse quickly, because the hidden desktop mouse-pointer is more likely to hit the edge of the screen with a high DPI mouse.

Jermin said...

Hi Mark,

Could you please tell me the difference between windows mouse sensitivity (the 6/11 thingy) and the in-game (take cod4 for example) mouse sensitivity (set in the control settings)?

For example what's the diffrence between 1.0 in-game sensitivity and 2.0 in-game sensitivity?

Thanks!

Mark Cranness said...

> ... difference between windows mouse sensitivity ...

One difference is where and when the sensitivity is applied. (The sensitivity is just a scaling (multiplier) factor used to make the mouse movement slower or faster.)

Scaling factors are used / can be used at many places: The mouse firmware can scale the data from the sensor before sending it to the PC.

A mouse driver (Logitech/Razer...) can scale the data before sending it to Windows.

Windows can send the data directly to a game (DirectInput or Raw Input), or can send it via the Control Panel scaling.

The Control Panel scaling works one way when 'Enhance pointer precision' is ON, and scales another way when it is OFF (the 6/11 thingy).

A game can read the data directly (DirectInput or Raw Input) or read the Control Panel scaled data and then apply its own scaling. Sometimes games also add acceleration, sometimes they don't, it depends on the game.

So 6/11 is not different from in-game scaling, but separate from it and often both happen one after the other.

Anonymous said...

Hi Mark,

first I just want to say THANK YOU, for what are you doing. I was waiting for some functionable Vista mousefix since I've bought new computer with Vista a year ago (I used XP before that). All of sudden I had mouse acceleration while playing Counter-Strike 1.6 and I couldn´t get rid of it no matter what I did. And believe me I tried everything - disabling accel in Win, mouse drivers or even launch the game with "-noforcemaccel -noforcemparms -noforcemspd" launch options.

I was forced to play with acceleration and now it looks like I finally found a solution. I just have few questions for you, because I didn't understand everything clearly.

1) When I "install" this fix, do I achieve the same situation (nonacceleration) as if I play on computer where is no mousefix used and acceleration is disabled just by mouse drivers/win options/-noforcemaccel launch options (as it is on most lan tournaments) ?

2) When the script asks for DPI what does that exactly mean a where do I find the proper value? When I tried it has prefilled num. 96 so I guess it's not Mouse-DPI. Here you decribe the second step as "The desktop Control Panel, Display, text size (DPI) that will be used." I donť really understand any of that, especially where do I find right values for me.

So if you could answer me those questions I will be really grateful. Sorry for my english - I'm not from english speaking country.

PS: I use SteelSeries Ikari Optical Mouse.

Mark Cranness said...

> I use SteelSeries Ikari Optical Mouse.

Make sure you have the SteelSeries setup Hardware settings > 'Enable hardware cursor acceleration' option OFF.

> 1) ...

For CS 1.6, this fix is the same as using the Control Panel to turn 'Enhance pointer precision' OFF and then using -noforcemspd or -noforcemparms. If doing that does not remove acceleration, then this fix WILL NOT remove acceleration either, because the 'accel' must be caused by something else than Windows.

> When the script asks for DPI what does that exactly mean...?

96 is the right number. See your current DPI using this:
Show or change Vista font dize (DPI).

Anonymous said...

Hi again.

You are right, I tried it and it didn't work. I'm really confused, because I'd never suspected anything else than Windows of causing the acceleration and even now I don't really have any clue where could be the root of the trouble.
I'm pretty much used to the accel now, sou it's not that much of a problem. I was just curious how is that "non-cancellable accel" phenomenon possible. I guess it is supposed to remain a mystery to me. Anyway, thank you for your answers.

Korea said...

in the windows vista dont need regfix, only must set launch -noforcemparms -noforcemaccel and windows 6/11 inches. its work perfectly. i tested! test you too

:)

Mark Cranness said...

> ... dont need regfix, only must set launch -noforcemparms -noforcemaccel and windows 6/11 inches

Yes, you are right:

- For Half-Life and Counter-Strike 1.6, you don't need a mouse fix.
If you use -noforcmparms or -noforcemspd, clear the 'Enhance pointer precision' option and set the pointer speed slider to 6/11, you get exact 1-to-1 and no accel.

- For Counter-Strike:Source, Half-Life 2 and TF2, use NO launch options (or use -noforcemspd), clear the 'Enhance pointer precision' option and set the pointer speed slider to 6/11, you get exact 1-to-1 and no accel.

Seth said...

Hey Mark C, I've used your fix but I still can't get rid of the Red/Green boxes in mousemovementrecorder.exe

They only show up in game cs 1.6
It is like this with our without the fix.
The fix has taken effect too, as test with EPP on.

Mark Cranness said...

Seth said...
> ...Red/Green boxes in mousemovementrecorder.exe. They only show up in game cs 1.6

MMR does show a lot of red and green IN-GAME. That is because the game is mucking about with the pointer position and that confuses MMR. If you get black when the game is not running (or when in the ~ key game console), then you are getting 1-to-1.

See http://www.esreality.com/?a=post&id=1846538#pid1927879 - scroll to 'Comment #271' for more detail.

Seth said...

Ah okay thank you Mark.

Anonymous said...

Hi Mark!
After installing your fix, should i remove "-noforcemparams -noforcemspd - noforcemaccel"? Playing cs1.6, USB rate 500, mouse dpi 400, windows resolution 1680*1050 (16:10), ingame resolution 800*600 (4:3). I also often play new games, can it reset the acceleration setting after running them?
Thanks in advance!

Mark Cranness said...

If you have your Control Panel mouse pointer speed slider set to anything OTHER THAN the middle 6/11 position (i.e. you use 5/11 or 4/11 etc.), then: Keep -noforcemspd (and the others). (If you remove them, your mouse sensitivity will change.)

If you have your Control Panel mouse pointer speed slider set to the middle 6/11 position, then it doesn't matter: I suggest keeping -noforcemspd, and I would keep it myself, but it doesn't matter.

emzero said...
This comment has been removed by the author.
emzero said...

Hi, first of all thanks for your hard work!
I've been playing CS since 1.1 version under Win98. We had this problem when XP came out, and now we have it again with 7.

My specs are:
-Windows 7 x64
-Logitech G3 without SetPointer (just Win7 drivers)
-LCD 24" 1920x1080 at 60hz
-Counter Strike 1.6 (I play at 1600x900)
-DPI 100%
-Win sens: 4/11

So I have a couple of questions:
1)I used a .reg from you (from esreality) before I find this. It's fine to use this new on top of the old one or do I need to reset it to defaults first?

2) I'm still having 1 green between 10 movements. Is that acceptable?

2)I'm still having red/green while in CS game. I understand that this is caused by CS resetting the cursor. But the mouse behaviour is really different if I add the -noforcemspd or if I don't. In your post you said not to use this so CS can enable EPP and so the fix. But in your last comment you told the guy to keep the -noforcespd to get 1-1. So what's your final word on this?

Again, thank you for your hard work!

Anonymous said...

I want to use the program to make:

Pointer Scale = 0,1X

and extreme mouseacceleration.

How can I do this?

Mark Cranness said...

Hi emzero,

Sorry, but the Blogspot auto-spam filter for some reason caught some of your posts as spam.

1) You can safely apply a new fix over the last one. There is not reason to go back to the WindowsDefault between. The most you might have to do is re-check your Pointer speed slider is correct, because the standard MarkC fixes reset that to 6/11 (once-only, first time after a reboot having applied them).

2) The occasional green or red is OK and just means that MouseMovementRecorder.exe is getting confused. Try it with EPP OFF (which temporarily turns the fix off) and if you still get some green or red that is proof the problem is with MMR, and no the fix.

3) Ah yes, I was not clear there, or may have even made a mistake... thank you for asking for clarification!

What I should have said was:

If:
a) You have your Control Panel mouse pointer speed slider set to anything OTHER THAN the middle 6/11 position (i.e. you use 5/11 or 4/11 etc.),
AND,
b) You already play with -noforcemspd or -noforcemparms,
AND,
c) You want to KEEP the SAME sensitivity for CS 1.6 (because you only need the fix to fix OTHER games),
THEN: Keep -noforcemspd (and the others). (If you remove them, your mouse sensitivity will change.)

If:
a) You have your Control Panel mouse pointer speed slider set to anything OTHER THAN the middle 6/11 position (i.e. you use 5/11 or 4/11 etc.),
AND,
b) You already play with -noforcemspd or -noforcemparms,
BUT,
c) You want to CHANGE your sensitivity for CS 1.6 to exact 1-to-1,
THEN: REMOVE -noforcemspd (and the others).

If you have your Control Panel mouse pointer speed slider set to the middle 6/11 position, then it doesn't matter: I suggest keeping -noforcemspd, and I would keep it myself, but it doesn't matter.

Note: Using my fix builder for 5/11 or below MAY make Negative Accel more likely or more severe in CS 1.6...

Mark Cranness said...

> Pointer Scale = 0,1X and extreme mouseacceleration.

Sorry, my VBS file only creates accel curves that have no accel at all.

You could try this:
hoppan has a post that describes how to make a custom mouse accel curve:
Tutorial: how to customize Windows accel.

There is a collection of different curves here: How to adjust the mouse acceleration in Windows XP (applies to Vista an 7 also), you might try experimenting with some of those.

Anonymous said...

Hi Mark I would like to know what it means, having never been clear to me and say different things on other sites: noforcemparms, noforcemaccel and noforcemspd

Sorry for my bad english

Atte

Sebastian

AnthonyE said...

Isn't there any way at all to have no mouse acceleration and 1 to 1 at 120hz and windows pointer 3/11? Do I ask for too much?

Anonymous said...

Hi, Mark. Do I need this fix for Source engine games? And what mouse settings optimal for these games (For example Team fortress 2)?

Roger.Pou said...

Hey mark in this afternoon I upload a screen shot of mousemovementrecorder. I have a Madcatz cyborg stealth mouse ( remember?) windows 7 ultimate 64 bits. In mouse movement recorder, sometimes i have red/green lines when i aplied windows marck mouse fix. I tried disable welcome screen and this was a problem. But im a administrator in my sistem. What's happening ? And its normal have a sometimes red/green lines?
Thanks

Roger.Pou said...

http://imageshack.us/photo/my-images/508/failoj.png/ sometimes i have this error

xPress said...

im roger.pou . I have the problem of second picture in this post of you http://donewmouseaccel.blogspot.com/2010/02/windows-mouse-pointer-acceleration_28.html in windows 7 64 bits

Mark Cranness said...

> noforcemparms, noforcemaccel and noforcemspd

In CS 1.6 (and original Half-Life 1 engine based games?):

-noforcemparms is a shortcut to specify both -noforcemaccel and -noforcemspd with one switch

-noforcemspd means: do NOT force Control Panel > Mouse > Pointer Options > Enhance Pointer Precision to ON.
If you have it set OFF in the Control Panel, then CS 1.6 with -noforcemspd will leave it OFF.

-noforcemaccel means do NOT clear the Windows 2000 mouse accel thresholds and has NO use in Windows XP/Vista/7.

I recommend using -noforcemspd with CS 1.6 (and setting Control Panel > EPP to OFF) as the easiest way to remove control panel accel when in-game.

Mark Cranness said...

> no mouse acceleration and 1 to 1 at 120hz and windows pointer 3/11

You can use my fix builder to get exact 1-to-1 at 120Hz and 3/11, BUT if you have a high CPI mouse, you are more likely to get in-game negative acceleration compared to the standard MarkC Fix.

Try it and see, How to test for Negative acceleration [link]

Mark Cranness said...

> Do I need this fix for Source engine games?

For "Gold source" engine (Half-Life 1) games, use the -norforcemspd launch option and turn off EPP in the control panel.

For Source engine games (TF2), use the new Raw Input mode (available for CS:Source, and maybe also available for TF2?)
If Raw Input is not available for TF2, then turn off EPP in the control panel and DO NOT use the -useforcedmparms launch option.

Mark Cranness said...

Roger.Pou said...
> In mouse movement recorder, sometimes i have red/green lines when i aplied windows markc mouse fix.

That is only a MouseMovementRecorder bug: The fix is still working correctly.

> I have the problem of second picture in this post (windows-mouse-pointer-acceleration_28.html)

If you mean the drift to the left and up, I have not seen that in Windows 7 32 or 64.
If you are sure you see it, I do have a test you can run to test for it, please let me know if you want to try it.

xPress said...

i can do the test marck. When will you like...

Mark Cranness said...

> do the test

Email sent with test details. Please check your email spam folder!

qao said...

Hey Mark,

I get an error with your script:

---------------------------
Windows Script Host
---------------------------
Script: C:\mark\MarkC_Windows7+Vista+XP_MouseFix_Builder.vbs
Line: 47
Char: 1
Error: Invalid syntax
Code: 800401E4
Source: (null)

---------------------------
OK
---------------------------

And found a site detailing in modifying a script to get it running past this error but im no programmer so can you do this and let me help test it out?

http://www.computerperformance.co.uk/Logon/code/code_800401E4.htm

Mark Cranness said...

> Error: Invalid syntax, Code: 800401E4

My script uses a part of Windows called "WMI - Windows Management Instrumentation", it is that line of code that is failing.

Try these:
1) Make sure you have WMI running: at a command line run this:
net start winmgmt
... or go into Control Panel > Adminstrative Tools > Services > and make sure the Windows Management Instrumentation service is running.

2) Is your anti-virus blocking WMI?
Some older VBS viruses used WMI, and anti-virus can block VBS programs from using WMI.
"Whitelist" or unblock my script in your anti-virus program if possible.

3) If WMI won't run (step 1), then try this to repair it:
http://social.msdn.microsoft.com/forums/en-US/embeddedwindowscomponents/thread/5dc8d4b6-1005-4b17-8528-c0d38aca1adc/
(scroll down to the post by 'tharty'.)

qao said...

Ok, I got the WMI installed and running but it still won't work. Running the .vbs file just flashes a command prompt screens and .cmd file gives almost the same error; no "invalid syntax"..

---------------------------
Windows Script Host
---------------------------
Script: C:\mark\MarkC_Windows7+Vista+XP_MouseFix_Builder.vbs
Line: 47
Char: 1
Error: 0x8004100A
Code: 8004100A
Source: (null)

WMI Diagnosis Utility produces a lengthy error report, I downloaded 1 missing dll file with no effect and don't know how to fix the registry errors it complains about. Would it help at all if I emailed the log file to you?

Billbo333 said...

Hi, I have been using your fix to give me a four times mouse speed, but the annoying thing is that it always moves four piwels(like it should) which kills any precision. What I need is an extremely aggressive acceleration curve. I tried the the cc, 4c one but there were two problems with it. It didn't reach the higher speeds soon enough and the low speed was actually less that 1-1 So I guess I need the low end to be 1-1 and reach the higher speed of at least 4: 1 sooner than the curve I tried. I appreciate any help.

Mark Cranness said...

> What I need is an extremely aggressive acceleration curve.

You could try this:
hoppan has a post that describes how to make a custom mouse accel curve:
Tutorial: how to customize Windows accel.

There is a collection of different curves here: How to adjust the mouse acceleration in Windows XP (applies to Vista an 7 also), you might try experimenting with some of those.

> I tried the the cc, 4c one...

The cc,4c curve is a slightly smoothed version of "Inclination_60-2.reg" from the website above.
Perhaps "Inclination_90.reg" or higher might be better (but still not 1-to-1 at low speed).

Once you have any accel at all (a non-straight curve), then by definition there will be parts of the curve that don't have 1-to-1, so perhaps don't worry too much about the lack of 1-to-1 at the bottom of the curve...

If you ignore 1-to-1 for the moment, and can find a curve at the website above that has the overall response you like, I can likely later create a tweaked version that has 1-to-1 at low speed (with an adjusted in-game sensitivity).

Anonymous said...

Hey Mark, I need the opposite of what you have created. As you probably know the Windows XP accel takes into account mouse hz and monitor hz so it changes based on that. Now a lot of people are using Windows 7 at tournaments instead of XP which has a different accel. How would I go about making reg files for Windows 7 accel to behave exactly the same as Windows XP. And if you don't mind answering is it possible to also make Windows XP use the same new accel that windows 7 uses ( my team mate used w7 accel I used xp ).

Mark Cranness said...

> I need the opposite of what you have created...

It is possible to make a reg file so that Windows 7 accel behaves exactly like XP/Vista.
... but like XP/Vista and WHAT accel curve?
CPL? Cheese? The standard Windows curve?

To build a fix so that Windows 7 behaves like Windows XP/Vista with CPL: follow instructions here [link].

To build a fix so that Windows 7 behaves like Windows XP/Vista with a Cheese fix: Just use the correct MarkC fix.
Cheese on XP/Vista has exactly the same behaviour as MarkC on Windows 7, that is exactly 1-to-1.

The build a fix so that Windows 7 behaves like Windows XP/Vista with the normal Windows accel curve (no fix applied), then you will need to build a curve yourself. The numbers depend on what monitor refresh rate and control panel Text size you use on Windows 7 and used on XP...

Anonymous said...

Essentially what I use at home is Windows XP on 100 hz monitor and 125 mouse hz. I don't need to have the 1-1 correction or anything like that because I use 6/11 ( and even if I didn't I would just want it the same anyways ).

All I really want is the accel curve to be the same on windows 7 as it is on windows xp with default text and 100 monitor hz which is considerably faster than the windows 7 accel. I don't use any cpl mouse fix or markc or cheese mouse fix because I need the accel windows xp gives.

raumschiffkomandant said...
This comment has been removed by the author.
raumschiffkomandant said...
This comment has been removed by the author.
raumschiffkomandant said...

hi, thanks for the fix and all the support. great job

im having a weird problem with a hl1 mod (tfc). using your fix and no -noforce cmds but my pointer moves faster randomly, its not actually accel tho. it happens once or twice in 30 seconds, or completely random. lets say, i move my mouse x counts, but my pointer moves at 2x for just an instance, then it gets back normal. i dont know whats causing this prob. having noforce commands doesnt prevent this as this is not the usual accel

it happens on whichever mouse that i have (razer abyssus 450dpi 1000hz no razer drivers installed, WMO 1.1a 500hz). when i use rinput.exe, this stops. but im somehow dont not happy with rinput mouse movement. so im looking for a way not to use rinput. and not having this weird accel.

i think it might be a driver problem but clicking on "uninstall" button over device manager for either mouse doesnt seem to be enough. not sure if theres any other way to remove drivers.

i have tried to remove your fix by applying windowsdefault.reg but somehow im still having 1 to 1 when EPP is off or on.

raumschiffkomandant said...

mistyped there: im not happy with rinput*

aight it seems ive been looking to fix this too hard and installed smth called wcafix while having yours. removing it allowed me to remove your fix as well. but still, that weird glitch remains and driving me nuts unless i use rinput :(

Mark Cranness said...

> All I really want is the accel curve to be the same on windows 7 as it is on windows xp with default text and 100 monitor hz which is considerably faster than the windows 7 accel.

Yes, XP @100Hz mouse response with EPP=ON is faster than Windows 7.

The internal calculations are very similar, except XP/Vista include a scaling factor:
RefreshRate / ControlPanelDPI
... and Windows 7 scales:
ControlPanelDPI / 150

Putting some numbers in, XP @100Hz is 1.63 times as fast as Windows 7 (100×150/96/96).
You could manually build a custom curve with the SmoothMouseYCurve values × 1.63 of the standard curve, OR you could more easily try using the Pointer speed slider set to 9/11.

9/11 when EPP is ON has scales by × 1.6, which is probably close enough.

Mark Cranness said...

> that weird glitch remains and driving me nuts unless i use rinput :(

Sorry, I'm not sure what might be happening.
RInput will fix negative accel, but what you describe (sometimes 2x) is not negative accel.

prom6 said...

Hi Mark,

do you know of any tool that lets you customize the windows curve in a gui?
or even better something like a universal mouse driver/program that lets you adjust sensitivity and acceleration besides the available options in windows (registry/mouse settings in control panel)
should work on windows7 x64

and if you know this by chance: was the mouse acceleration in windows 98se different to the mouse curve in win2k? and if so is there a reg file to emulate w98se acceleration with the mousecurve in windows 7?

Mark Cranness said...

> do you know of any tool that lets you customize the windows curve in a gui?

Sorry, I don't, although I have been thinking of building such a gui tool for a while.

> or even better something like a universal mouse driver/program...

This may need Driver Signature Enforcement Overriderto make it work on Windows 7, but moudrv should work:
moudrv_20080201.7z
Instructions.

It is a generic mouse driver that has configurable accel, based on Quake 3's accel.

Here is a GUI for moudrv.

> was the mouse acceleration in windows 98se different to the mouse curve in win2k? and if so is there a reg file to emulate w98se acceleration with the mousecurve in windows 7?

Windows 98se was mostly the same as in W2K, even if the Control Panel UI looked different (the underlying accel calc was the same).
This link describes how it worked, with two threshholds:
MouseSpeed, MouseThreshold1, and MouseThreshold2 determine when and to what extent cursor speed accelerates when the mouse moves rapidly.

Windows 95/98 had a seven position "Pointer speed" slider which actually set various values of MouseSpeed, MouseThreshold1, and MouseThreshold2.
Windows 2000 had 4 radio buttons that also set various values for MouseSpeed, MouseThreshold1, and MouseThreshold2.
Screen dumps here: Mouse accel settings for various OS.

You can build SmoothMouse*Curves that closely or somewhat closely emulate Windows 95 thru 2000 accel.
You might look at these XP and VIsta curves to see that might work, or if you have a specific Windows98 or W2K accel setting you want, I might be able to help out.

prom6 said...

Thx for the answers so far. Aprreciate your help.
I knew of the moudrv from aion/anir, followed him on the blueprints forum.

i wasnt able to run moudrv on w7 x64 even with driver signature enforcement override, besides i dont wanna work and play in a test environment so i gave up early. additionally there are some other issues with moudrv e.g. button assignment, its a shame aion stopped improving it

started my old pc (wxp and 98se dual boot)
w98se mouse settings:
"DoubleClickSpeed"="0"
"MouseSensitivity"="10"
"MouseSpeed"="1"
"MouseThreshold1"="8"
"MouseThreshold2"="0"

would be nice if you could build a curve from these values for me

as for windows xp, am i able to just copy and paste the mousecurve into windows 7 and it behaves the same or mostly the same?

is there a way to enforce windows to use the new registry values for mouse without restarting?

mouse configuration in windows is a pain in the ass for me for years, i started playing shooters more or less professional on a 98se system first with a wireless noname mouse and then with a razer boomslang and was never able to get the same feeling of the mouse like back then

i would pay for a tool (dont know how much a programmer would take for sth like that but i'm sure other people would like to have sth like that too) that just gives me the ability to adjust sensitivity and acceleration besides the possibilities windows itself is giving
just like the razer drivers that were not bound to windows mouse sensitivity where you could adjust speed and acceleration

atm i'm playing with a logitech mx700 (not supported in setpoint and mouseware doesnt work in w7, but i can use the additional buttons through the default hid mouse drivers) with pointer precision enabled and the mouse speed at middle, gives me by far the most similar feel to what i was used to but is not what i would call good at all

but if you or s.o. else in here would be able to build a good and user friendly tool like that that works with every mouse on w7 x64 I would pay 100 euros for that, maybe even more
i know thats not that much, but i'm sure others would buy sth like that too

Mark Cranness said...

> w98se mouse settings:
> "DoubleClickSpeed"="0"
> "MouseSensitivity"="10"
> "MouseSpeed"="1"
> "MouseThreshold1"="8"
> "MouseThreshold2"="0"
> Would be nice if you could build a curve from these values for me

Try this: Windows7_MouseFix_TextSize(DPI)=100%_Scale=1-to-1(2-to-1@9)_@6-of-11.zip.
That is for Windows 7 @TextSize(DPI)=100%, and might make Win7 like the Windows 98se accel.

Reasons it might not be the same:
- Windows Control Panel accel depends a lot on the mouse polling rate: If you had (Windows 98se) a 125Hz (normal) mouse, but now use a 500Hz or 1000Hz mouse polling rate, the accel is utterly changed.
- Diagonal movement on Windows 7 hits the accel threshholds sooner than Win98se does (7,7 diagonal 45 degrees on Windows 98se counts as 7, less than MouseThreshold1 and gets no accel, 7,7 on Win7 counts as 10.5 and gets accel with the curve above (which starts doubling at 9 and above).
- Despite what the MS technet doc says, Windows 2000 only starts doubling accel when MouseThreshold1 is EXCEEDED, so 8 has no accel, and 9+ is doubled. I've assumed that Win98se is like W2K in this regard, but it might not be.
- Win95/98/2K accel is bad and jerky! It is not smooth and suddenly bumps the sensitivity by ×2 when the threshhold is exceeded, then dumps it back down to ×1 when coming under the threshhold.

> as for windows xp, am i able to just copy and paste the mousecurve into windows 7 and it behaves the same or mostly the same?

I'm not sure exactly what you mean here, but in general XP+Vista smooth mouse curves for DPI=96,RefreshRate=60Hz function within a few percent when used on Windows 7 for TextSize(DPI)=100%.

> is there a way to enforce windows to use the new registry values for mouse without restarting?

You can Start>Log off then log on again instead of restarting. (I experimented with some code ways to use the new smooth curve registry values, but couldn't figure out if it is possible.)

> i would pay for a [mouse] tool ... I would pay 100 euros for that

I have thought of building such a tool, and may do so sometime (not likely soon).

> just like the razer drivers that were not bound to windows mouse sensitivity where you could adjust speed and acceleration

The Razer drivers for my Diamondback 3G lie about accel. They have a slider to set accel, BUT it is all fake: They do not have their own accel calculation, they only tweak the Windows 95/98/2K MouseThresholdx values, which has no effect on Windows XP+

prom6 said...

thx for the curve file i'll have a try with that :)
and thx for further explanation

i noticed razer changed their method of creating acceleration between some driver versions of the original diamondback, therefore i used the older ones for a long time
after the diamondback i never bought a new razer so dunno how it is today

the first method felt way better
acceleration with boomslang 2k and earlier driver versions from the original diamondback felt nearly the same
back then you were able to change the speed in windows + check pointer precision and the razer drivers let you adjust everything on top of that imo
so the same razer setting felt different with different windows settings
that was awesome, you had way more possibilities to adjust your mouse settings for your needs

micronn said...

Hi, I installed your mousefix and I have problem with random positive acceleration, it's randomly active every 30 seconds and back to normal in 1 second.

Game: Counter-Strike 1.6
Windows 7 x64
Sensitivity: 6/11
EPP: OFF
Mousefix: Windows7_MouseFix_TextSize(DPI)=100%_Scale=1-to-1_@6-of-11
No -noforcem commands

Thanks in advance for help.

Mark Cranness said...

> Game: Counter-Strike 1.6
> EPP: OFF
> No -noforcem commands

With EPP Off and -noforcemspd or -noforcemparms, all Windows Control Panel accel is disabled and no fix is needed (and no fix is active).

My fix adjusts the Windows accel and has an effect only when EPP is ENABLED, so what you are describing must be a problem with CS 1.6.

I'm sorry, but I don't know what might be causing positive accel when EPP is off.

micronn said...

Ok, I reainstalled mousefix and rebooted my pc and right now I think it's working, I don't get this every 30 second randomly positive acceleration.

EPP is disabled in desktop and enabled in-game so mousefix right now is working fine, I don't know why earlier I get this randomly positive acceleration, maybe some program was turning on something, or when I was playing it turns on HKEY_USERS registry for mouse (with oryginal values with acceleration) but not this one what should HKEY_CURRENT_USER.

Only program what I was using then was ESL Wire and TeamSpeak 3.

noji said...

Hi i have the same problem with windows 7 64 ultimate as mentioned above. Ingame Call of duty 2 (only game i have currently) random positive acceleration appear for bit then dissapear. I have tried your mousefix with epp off/on (exact instructions) or every other solution mentioned here http://www.hltv.org/forum/101682-windows-7-random-acceleration-need-fix or here http://www.tek-9.org/forum/call_of_duty_series-46/call_of_duty_4-13/windows_7_accel_problem-79331.html and the problem still persist. Ihad no problem with win xp, even with anir mouse driver. I dont know where esle to turn for advice. Is there something i may have missed ?(i ll provide more info if needed) Thanks in advance.

Mark Cranness said...

> Ingame Call of duty 2 (only game i have currently) random positive acceleration appear for bit then dissapear.

Sorry, I don't know what could be causing random accel in CoD2.

micronn said...

I've again this problem with random positive acceleration: http://donewmouseaccel.blogspot.com/2010/04/markc-mouse-acceleration-fix-builder.html?showComment=1328177235559#c2331821461140376478

Can you do some research?

When it occurred I have opened only ESL Wire and Teamspeak 3.

micronn said...

I get random accel when I set the EPP on with installed mousefix and without -noforcem commands.

So it's strange because I shouldn't get this random positive accel because mousefix is working all the time.

bf3 sniper said...

hey when you run the test should it always display 1-to-1. sometimes it display 3-3 2-2 but most of time the time its 1-to-1. but i stil feel there is acc

im using razer deathadder 1800 dpi 1000hz
monitor syncmaster 997mb crt 19 150

im playing in 640 480

in cs i used -noforcemspeed -noforcemaccel -noforcemparms -freq 150 sens 3.5

im having alot of problems with bf3 i dont feel like i have the control i want when im sniping where i need best mouse settings.

please help me getting my mouse setup right. sorry for bad english

raumschiffkomandant said...

to any1 whos still having accel problems: google "rinput 1.31" and see if it helps

Mark Cranness said...

Here is an example of exact 1-to-1:
Exact 1-to-1 [link].

(If that does not display when clicked, go here: link and click where it days : "Windows 7 with the MarkC Mouse Fix - Fixed!:")

1-to-1 does not mean it always displays "1", it means that a 1 in the Mouse Movement column always has a 1 in the Pointer Movement column, 2 always has a 3, 3 a 3 and so on.

Mark Cranness said...

If rinput 1.31 works with a game, then it is a better solution than my registry fix.

Nuite said...

Hey Mark! When i use this fix my mouse seems to freeze for a second every 5 seconds. This happens when i move it quickly. I use a razer deathadder. Little help please:)

Mark Cranness said...

> When i use this fix my mouse seems to freeze for a second every 5 seconds.

It won't be my fix that causes that.
I have had the same with my Razer Diamondback 3G sometimes, every 3 or so seconds in my case, so I think it may be a problem with Razer drivers.
Hibernating then waking seems to fix it, or a reboot.

badsykes said...

hello mark
I am Badsykes
Regarding windows 2000 accel it was the one after you install an windows 2000 freshly..
I will try small accel setting first..

Also there are other guys that have the same problems..Hope it helps.

http://www.msfn.org/board/topic/155923-any-way-to-cannibalize-the-windows-2000-mouse-driver/

badsykes said...

I have also a Diamondback 3g around..Which one is better for acceleration enable..

Mark Cranness said...

> http://www.msfn.org/board/topic/155923-any-way-to-cannibalize-the-windows-2000-mouse-driver/

I've added a comment to that thread.

> I have also a Diamondback 3g around..Which one is better for acceleration enable.

The Diamondback 3G has no custom accel options, and is limited to whatever Windows can provide.
Logitech have their own accel options, and might be a better idea.

badsykes said...

Thx for the response...
I had 2 Logitech MX518 (the 1600 dpi version and 1800Dpi) and now Zowie EC2 that's based on the MX518 sensor with some additions..I feel that if i apply the windows 2k style of accel it will be way too fast..


I want this "With 1 threshhold accel (MouseSpeed=1), mouse-to-pointer movement was 1-to-1 below (or at) the threshhold, and doubled when the mouse moved faster than MouseThreshold1. No smoothing, just a sudden jump, doubling of pointer speed."

Especially 1:1 mouse to pointer movement ... This is what i mean by 1:1 in my brain..

i feel that new mices (like Zowie EC2, Diamondback 3g etc) have an aditional accel at hardware level that cannot be disable so if another acceleration is enabled will conflict? ...This what i am worried and say native 400dpi or 800dpi sensors are better than today mices..They offer 1:1 hand to pointer movement and even moved faster they still keep this..
This is why Microsoft 1.1 and 3.0 are still wanted on the gaming market...

micronn said...

Hi MarkC,

I know what was causing the random positive acceleration in CS 1.6.

Some programs have not good processes for game CS 1.6, like flux or java update, because when I had active these programs sometimes in MMR I got red and green lines, but without it no red and green lines.

So for all who have this random positive acceleration they should investigate which processes is causing it, really good program where we can check the problem is Mouse Movement Recorder and you need to do about 10cm circle with mouse while testing.

You're welcome.

Thanks again MarkC for great MouseFix.

badsykes said...

Hello mark
i sold my Zowie ec2 and i got a inteli 1.1 and after changing the registry to add mouse threashold i got the windows 2000 accel more or less..Still the subpixelation when i move slow is very anoying..I need to move a little than i am naturally inclined to because is way to slow otherwise...Also the inteli 1.1 still feel like is lagging behind my hand but is better than before..
the 1.1 moves very naturally ...

qao said...

Forgot to do a follow up.. :| Getting this to install on my screwed up XP was a lost cause. I've since upgraded some hardware and on to Win7 X64 where it installed without any problems. Many thanks for putting in the hours to creating this magnificent piece of engineering and righting just one of Microsofts many wrongs. And big ups for your continued user support over here! :)

Mr. E said...

Hi Mark,
What settings did you give badsykes?

I am also trying to replicate win2000 "low" accell which was a simple doubling once passing a threshold with no other accell.

I use win7x64 with a 500hz polling rate now.

When I used win2000 I'm pretty sure I had 125hz. I'm willing to figure this out myself just wondering if you could point me in the right direction. Thank you!

Mark Cranness said...

I'm sorry to say I've been busy and have not given badsykes any settings.
He may have tried this: Windows7_MouseFix_TextSize(DPI)=100%_Scale=1-to-1(2-to-1@9)_@6-of-11.zip @ gamefront.com... but I think he has tried changing MouseThreshold1, which has no effect at all.
NOTE: The registry fix above sort -of approximates W2K Low, except that the doubling kicks in a LITTLE later, and assumes a 125Hz mouse.

See the msfn board where I have added a registry fix that might work for you @ 500Hz.

Mr. E said...

Thank you so much! I feel bad for not doing a deeper dive and figuring out the simple change from 125 to 500 hz myself from what you had posted earlier. Thank you for taking the time to do that for some stranger on the internet.

Funny thing is that now I am probably so used to no accell over the years that it could be harder to go back. At least I will be able to test the theory out that win2k low accell offered the best of both worlds for fast paced fps games...

Mark Cranness said...

I'm glad I could help!

For future reference of anybody else reading this, an attempt at a W2K Low accel curve for a 500Hz mouse is at this MSFN Forum post [link].

badsykes said...

Hello
@Mark: The accel is the same like in Windows 2k by changing the mousethreshold1 to 8 and set MouseThreshold2 to 0..
The only problem remains when i move the mouse the cursor is slowly down two times more unnaturally.I must the mouse a little faster than naturally to pass the Windows 7 threshold of subpixalation...
So the ideal thing is a setting to remove subpixelation crap that make the mouse 2 times slower than my hand movement ....

Hope is clear what i've done for Mr. E too..Also is imperative that the mouse hardware DON't have special accels in hardware because you will end completly with different perspective when setting threashold..Imo the new high dpi latest modern mices have some sort of accel in hardware imo..Maybe mark will make some light if i am right or not..

Mark Cranness said...

Hi badsykes,
mousethreshold1 & mousethreshold2 were what Windows2K and previous used to control accel, but those settings are ignored in Windows XP+Vista+7: they have no effect.

Please try this REG fix (and reboot) and let me know how feels (this is for a 125Hz mouse with the pointer speed slider at 6/11):
Windows7_MouseFix_TextSize(DPI)=100%_Scale=1-to-1(2-to-1@9)_@6-of-11.zip @ gamefront.com [link].

Unknown said...

Mark
Windows 7 doesn't not ignore Mousethreashold if you edit it mannually...I play my games with it already..
Here is how you do it..
Set the mouse cursor speed slider to whatever you want and then go to registry and edit only Mousethreshold 1 to 8 and then restart pc..
If you move the mouse cursor slider to other value the threashold values will reset to windows defaults (two threasholds are used)
and you need to edit them again..

badsykes said...

Hello mark
(I wrote the previous message too under name Unknown)
After i aplied your settings now the windows ignores the mousethreashold but the curve that you created seems apropiate to what i want..It still feels like the cursor trails behind my hand...
I will go back to windows defaults to get the mousethreshold back

Thank you for your time :)

Colin said...

Im having a problem with acceleration...im using the mousemovementrecorder that came with the mousefix download. I applied the mousefix, and turned off enhancer pointer precision...but when i shake my mouse left to right sometimes i get 5x1 sometimes even up to 8x1 on the mousemovement recorder. Plz help

Mark Cranness said...

> I get 5x1 sometimes even up to 8x1 on the mousemovement recorder.

This is normal. It does not mean you have acceleration.
Understand that 1-to-1 DOES NOT mean that you only see 1x1 in MouseMovementRecorder.
1-to-1 means that a 1 in the Mouse Movement column has a 1 in the Pointer Movement column, a 2 has a 2 and 3 has a 3 and so on.
If you see 8x1 in the Mouse Movement column and also 8x1 in the Pointer Movement column, that means you are getting 1-to-1.

fLuid said...

Hey Mark,

first just wanted to thank you for all the hard work and the fact that you still respond to every post.

I'm currently using the fix but was concerned that my 120hz monitor may be affecting it negatively.

Should I be concerned?

Mark Cranness said...

> ...120hz monitor...

If you are using Windows 7 or 8, then your monitor refresh rate has no effect, and you should not worry.

If you are using XP or Vista, then monitor refresh rate does matter (a Microsoft bug!) and you might test that you are getting exact 1-to-1 in-game, particularly if your ingame monitor refresh rate is different from your desktop refresh rate.

When using the fix builder, enter the in-game monitor refresh rate, rather than the desktop refresh rate (if they are different).

Try running MouseMovementRecorder while you are in-game, and aiming and moving.
Exit the game or Alt+Tab back to MouseMovementRecorder and see what you see. It is usually stuffed up because games needing fixes re-position the pointer position to the centre of the screen, which confuses MMR, BUT at least some of the time you should see exact 1-to-1 (no red or green) lines.
Try increasing your mouse polling rate, or (for testing only) decreasing the in-game max frame rate (to 20Hz maybe?) will make the exact 1-to-1 lines more common.

See the images attached to this post:
MarkC Windows 7 Mouse Acceleration Fix @ esreality.com - Comment #48 [link] (scroll down to comment #48).
[Edit: tweaked link a bit]
The "In game @ 125 fps" image shows a mouse with 1000Hz polling, and in-game fps approx 125Hz: A lot of exact 1-to-1, but every 4th is a red "confusion" as the game re-centres the pointer.

As I say, you should only need to check that if you use XP or Vista.

sonivex said...

Hey Mark, awesome job with the fix. I just wanted to let you know that I tried to download the fix today and I got a "file not found" error. Is there anywhere else I can download it from? Thanks!

Mark Cranness said...

> "file not found"

Please try again with the current link, and if the error happens again I will upload it to a mirror and add the mirror link to the main page.

Anonymous said...

hello,
thank you so much for this fix. but as others have said the download link leads to a "file not found" error.
is the Mediafire link on your other post the same as this link?
Thanks.

Mark Cranness said...

> The download link leads to a "file not found" error.

I have added an alternative (mediafire) link (just below the main link).

The main fix ZIP file on my other link also contains the same fix builder.

Apparently gamefront (my the main link) doesn't work in all countries, and maybe their country identification doesn't work properly?
Game Front File Hosting FAQs says: "Game Front file downloads are not supported in all territories. Below is the list of all of the countries that can download from Game Front...", see the link for a list of countries.
Is your country on that list?

Anonymous said...

Thank you very much Mark for the fast reply and new link.

Regarding GameFront, I'm in Canada so it's on the list. But I have to say GameFront links have pretty much always given me problems.

badsykes said...

Hello Mark

I bugged you a couple of months with an Windows 2000 acceleration curve..

"
Mark
Windows 7 doesn't not ignore Mousethreashold if you edit it mannually...I play my games with it already..
Here is how you do it..
Set the mouse cursor speed slider to whatever you want and then go to registry and edit only Mousethreshold 1 to 8 and then restart pc..
If you move the mouse cursor slider to other value the threashold values will reset to windows defaults (two threasholds are used)
and you need to edit them again..

June 2, 2012 9:43 PM
badsykes said...
Hello mark
(I wrote the previous message too under name Unknown)
After i aplied your settings now the windows ignores the mousethreashold but the curve that you created seems apropiate to what i want..It still feels like the cursor trails behind my hand...
I will go back to windows defaults to get the mousethreshold back

Thank you for your time :)"

Here is some old conversation :)

You gave me a file with a curve but i can't enable acceleration on it .. It ignores the thresholds values in registry..

Mark Cranness said...

Hi badsykes,

Since our last messages I have enhanced my fix by adding some Windows 2K threshold-emulation acceleration fixes to to the ZIP file, and also a new version of the fix builder that can build W2K/98/95 old-style threshold-emulation acceleration curves.
(Things do get complicated if your mouse is set to 250Hz or 500Hz or 1000Hz...)

Getting a threshold-emulation curve to work needs a few things to happen:

- You must set 'Enhanced pointer precision' to ON in the control panel,
- Your game must leave it ON (and not set it off),
- The game must NOT use Raw Input or DirectInput to read the mouse (For a Valve Source game, DO NOT set the Raw Input option on; for some Quake games, use in_mouse -1)

If your mouse is not set to 125Hz, then let me know what it is set to to, what mouse CPIs you have available and I'll advise.

NOTE: Windows XP/Vista/7/8 ignore the registry MouseThreshold1 and MouseThreshold2 values; changing those will have no effect.

badsykes said...

Hi Mark
I am on Microsoft InteliMouse Optical 1.1 or IE1.1A..It is 125hz..
I am using your Windows 2000 emulation..

I tried again modifying in registry the threshold and it works.

MouseThreshold 1 value 3
MouseThreshold 2 value 0



the value in registry is in this "registry" directory..

Hkey_Users/HKEY_USERS\S-1-5-21-3943542307-4185853190-3203868054-1001/Control Panel/Mouse

Also there is something weird that i never saw until now..There are
many "registry" directories:
HKEY_USERS\S-1-5-18
HKEY_USERS\S-1-5-19
HKEY_USERS\S-1-5-20
HKEY_USERS\S-1-5-21-3943542307-4185853190-3203868054-1001

The content of the above directories is the same but on the last one is the real configuration..Tell me how can i explain to ya so i can prove that windows DON'T ignore the Threshold value..

Here is a printScreen with my registry config after manually editing

http://i163.photobucket.com/albums/t296/badsykes/mouse_zps308974ed.jpg

Best Regards





Mark Cranness said...

See these links for what HKEY_USERS is about:
HKEY_USERS @ about.com [link]
Well-known security identifiers @ microsoft.com [link]
... short version : Use "HKEY_CURRENT_USER\Control Panel\Mouse" rather than HKEY_USERS\whatever.

> Tell me how can i explain to ya...

1) Load up the standard Windows accel curve from file 'Windows_7+Vista+XP_Default.reg', then reboot or logout to apply it.
2) Set whatever MouseThreshold1 value you desire.
3) Run MouseMovementRecorder.exe and show me where mouse movement slower than the threshold is 1-to-1, and where mouse movement faster than the threshold is multiplied by 2.
4) Change the MouseThreshold1 value and re-do step (3) so that it shows the new threshold being used.

As an example, here is my "Emulate Windows 2000 Acceleration" 'XP+Vista_MouseFix_Scale=W2K_Low_x1_x2@7+_@60Hz_DPI=96_@6-of-11.reg' file in use on an XP system:
(MMR output @ gamefront.com [link]

badsykes said...

Hey Mark

The last link with the windows 2000 example gives me "file not found"

Take a look at this three files:

1. MouseThreshold1 = 1
http://s163.beta.photobucket.com/user/badsykes/media/Threshold1equals1_zps9677fa55.jpg.html

2. Default Reg Windows 7
http://s163.beta.photobucket.com/user/badsykes/media/Defaultwindows_zpsc975feb2.jpg.html

3. Mouse Threshold1 = 7
http://s163.beta.photobucket.com/user/badsykes/media/Threshold1equals7_zps8a69aa51.jpg.html

Mark Cranness said...

Sorry, I should have been clearer:
...
3) Run MouseMovementRecorder.exe and show me where mouse movement slower than the threshold is ALMOST ALWAYS 1-to-1, and where mouse movement faster than the threshold is ALMOST ALWAYS multiplied by 2.
...

ALL of your MMR pics look just like normal SmoothMouse accel to me, I can't see any evidence of threshold acceleration.

> 1. MouseThreshold1 = 1

With MouseThreshold1 = 1, movement greater than 1 should be doubled. Instead there is plenty of 1-to-1 (black), plenty of less than 1-to-1 (green), and the highest scaling is where 13x0 gets scaled to 15x0 (× 1.15).
Where is the doubling that should happen when the theshhold is exceeded?
(That means 8x0 goes to 16x0, for example.)

> 2. Default Reg Windows 7

There is hardly any 1-to-1 and where is the doubling?

> 3. Mouse Threshold1 = 7

There is too much green and where is the doubling?

All 3 are just normal SmoothMouse accel.

Here is Threshold=1 on Windows 2000 (actual Windows 2000).

Here is Threshold=7 on Windows 2000 (actual Windows 2000).

Note: NO green anwhere, always exact 1-to-1 (black) when less than threshold, and exactly doubled when faster than the threshold.

badsykes said...

I give up...Sorry if it was anoying from my side.

Mark Cranness said...

Never annoying, sorry if I sounded impatient.

Anonymous said...

hi mark,

can you please help me achieving windows 2k 125hz medium speed on my new system running windows 7 500 hz?

mouse remainde the same as is bought it 5 times to ensure it'll last for some decades :)

thank you in advance,

alex

Mark Cranness said...

> windows 2k 125hz medium speed on my new system running windows 7 500 hz?

Does your current mouse allow adjustment of the mouse CPI? (CPI=DPI)
If so:
1) what are the possible CPI values it can do?
2) What mouse CPI do you currently have it set to?
3) What mouse CPI did you use on Windows 2000?

The idea is to adjust for the difference in polling rate by adjusting the mouse CPI UP by a factor of 4 (500Hz/125Hz), and also adjusting the SmoothMouse curve sensitivity DOWN by a factor of 4 (Create a 3/11 fix and enter 0.25 and 0.5 as scaling factors on the fix builder and run Windows on 3/11).

But that needs a mouse where you can change the CPI.

Anonymous said...

i am using 900 CPI, and i'm fairly sure that is also what it was set on running win 2k.

thank you for the explanation so far.

alex

Mark Cranness said...

I forgot to ask: What is your pointer speed slider setting in Control Panel?
(Control Panel > Mouse > Pointer options > 'Select a pointer speed')

Can you change the CPI of your mouse to 3600 or 3500 or what it the closest you can get to 3600?

If you are currently using 6/11, and your mouse can be changed to 3600 DPI, then do this:
- Use the mouse fix builder to create a fix with:
: Pointer Speed Slider = 3
: Pointer Speed Acceleration = Medium
: 1st Pointer Speed Scaling = 0.25
: 1st Threshold = 4
: 2nd Pointer Speed Scaling = 0.5
: 2nd Threshold = 12
: 3rd Pointer Speed Scaling = 1

If you don't currently use 6/11, or your mouse can't have its CPI set to near 3600, then ask again.

Anonymous said...

hi mark,

thanks for the input, i set my mouse to 3600 cpi but the result was feeling way too fast compared to the setting we were trying to achieve.

so i turned it down to 1800 dpi and it felt pretty good - the acceleration steps seem pretty similar to my old setup.

do you have any furtehr suggestions? does it even make sense (mathematically) to use this setup with 1800 dpi? or should i install razer drivers and manipulate sensitivity there to achieve a fitting setting at 3/11 windows speed and 3600 dpi?

thanks in advance,

alex

Mark Cranness said...

> does it even make sense (mathematically) to use this setup with 1800 dpi?

It does make sense, in that it should be the same as using a 450 dpi mouse on Windows 2000, and it makes sense in that if it feels good it is good!

I don't think the Razer drivers can help here. Changing the Razer driver sensitivity will effectively change the mouse DPI, and you need the high mouse DPI to get the thresholds hit when using a high polling rate.

Anonymous said...

Hello Mr. Cranness, thank you very much for your hard work on Windows mouse acceleration and all the projects you have, and are, working on. You no doubt have helped many people and your expertise is invaluable! :)

If you would be so kind as to answer some questions I have, I would be grateful:

I recently installed Windows XP Professional 32-bit edition Service Pack 3 on my imac. The main reason I did this was to be able to play more games, but also to get Windows' mouse curve. Upon doing some research, I discovered that unchecking "Enhance Pointer Precision" wasn't enough, and eventually was recommended your fix.

Before I get to my question(s), I think I should set up a few things first:

I have an imac 24-inch OS X Snow Leopard (which made my computer 64-bit capable) 2.66GHz Intel (which allowes me to install other OS's now) Core 2 Duo with 4 GB of RAM and an Nvidia GeForce 9400 (I think 9400M, but I am not certain) graphics card. My native resolution is 1920 x 1200, but for gaming, I use an external CRT monitor (an HP P1230) running at 1024 x 768 at 120Hz. On the Windows side, everything runs fine except it only says I have 2.xx RAM (though maybe that doesn't effect anything pertaining to the mouse).

Alright, now that I have that established just in case it may be helpful, here are my questions:

Should I keep everything default (eg. mouse sensitivity 6/11, any drivers as their defaults) before I apply the fix?

I just ordered a Razer Deathadder 2013 edition, will Razer's drivers get in the way and if I change anything will that change how the mouse fix works?

If resolution plays a factor, I game on my external monitor (1024 x 768 @ 120Hz) but use my LCD (main monitor at 1920 x 1200 @ 60Hz) monitor for everything else...will this be an issue?

Things may change, but with my current Razer Deathadder (3500 cpi or dpi edition), I play at 1800 cpi (dpi) with 1000Hz and no accel in the driver. Will I have to reinstall every time I want to change something?

I mainly play Quake Live, but I would like to play other games as well (CS 1.6, UT's, Minecraft, and a few others), should I worry about each game and the different sensitivities?

I think that is all my questions. Sorry for having so many and for the lengthy post - I just want to do this properly the first time.

Thank you very much, and keep up the great work! :)

Quass said...

Hi Mark, I don't know if you have the time to help out a random noob, but here goes: I use a q-pad 5k mouse and my windows mouse speed is set to 4. I just created a fix using your fix builder and installed it, but I'm a little bit confused. In your description of the mouse fix, you said:
"NOTE: ALL registry based mouse fixes, INCLUDING this one, ONLY work when the
Control Panel > Mouse > 'Enhance pointer precision' option is ON (OR when an older game forces 'Enhance pointer precision' to ON)"
This confuses me because I thought the point of this fix was to remove the pointer precision entirely. My question: Should I leave the Windows "Enhance Pointer precision" on of off to enable the fix?

Also, if i change the pointer speed either in Windows or in the mouse driver, will it negate the effects made by the fix? Do I have to make a new registry file if i decide that I want to make changes to the cursor speed? Thanks :)

a human said...

I'm trying to completely disable all acceleration at all times in Windows 7. I want zero acceleration at any refresh rate, desktop, full screen, or windowed games. Is there no way to do this?

What happens if you set the values of SmoothMouseXCurve and SmoothMouseYCurve to all zeros? Or even delete all value data and / or just delete the actual dwords?

Iyr said...

Hello Mark.

So I have following things set:

Mouse set to 1800 DPI (100-3500 Range) and 125 Hz (125-1000 Range). Pointer speed is 6/11. EPP is ON. Raw input in games is off. Fix is set to 1-to-1, Win 7, No Accel, 100% DPI.

Is everything covered or should I change anything else to get exact 1-to-1 w/o any problems/conflicts?

Anonymous said...

Hi
Is Windows 8.1 Pro Preview same as Windows 8 or they changed? MouseMovementRecorder shows red and greens

Anonymous said...

Same with me (8.1 Preview) any fixes for this?

Mark Cranness said...

> I have an imac 24-inch OS X Snow Leopard
> Should I keep everything default (eg. mouse sensitivity 6/11, any drivers as their defaults)

Default 6/11 is best, but what settings you use depends on what you want. 6/11 gives exact 1-to-1 when EPP is OFF, which is good.

> will Razer's drivers get in the way?

They should be OK (I use Razer drivers, and they do not interfere with my fixes).
They sometimes (mine did) have a problem where they force turn-off "Enhance Pointer Precision" after every reboot, even if you want "Enhance Pointer Precision" ON...

Resolution is not an issue, but (for XP) monitor refresh rate might be an issue.
Because your main monitor is 60Hz, probably you will want a 60Hz fix-builder fix, but because your gaming monitor is 120Hz, it might be the case that you need a 120Hz fix-builder fix.

> Will I have to reinstall every time I want to change something?

Once a fix is installed, it doesn't usually need to be re-installed.
(If you were to change the monitor refresh rates, you might need a new fix.)

To check which refresh rate you need to create a fix for, try 60Hz first, and:
- Set the in-game max FPS to a low number, like 10fps,
- have MouseMovementRecorder.exe running in the background while the game is running,
- Move the mouse quickly, and Alt+Tab from the game to MMR and see what is displayed.
If 60 Hz is correct, you should see mostly black lines. If you see a lot green, try a 120Hz and repeat.

Don't worry about each game's sensitivities unless you can feel a problem.

If a game supports it (may have to look online or look in the game setup options), choose Raw Input first, DirectInput next and normal mouse last.
I think that command : "in_mouse 2" in Quake Live selects Raw Input.

Mark Cranness said...

Quass said...
> Should I leave the Windows "Enhance Pointer precision" on of off to enable the fix?

Leave it OFF probably.

With EPP OFF, there is no accel anyway, and so the fix is not needed, and it is not active when EPP is off, so that is OK : No accel. You get scaling for 4/11.

With EPP ON, there would normally be accel, but now the fix is active and it removes accel, so that is OK : No accel. You get scaling according to whatever the fix was built for, usually exact 1-to-1 which is the same as 6/11.

Note the different scaling with EPP ON compared to EPP OFF.
Unless you entered an N (letter N) in the fix builder so that the fix has the same scaling as 4/11-EPP=OFF, then likely you get 6/11 scaling when EPP is ON, which is different.

Some people want 4/11 on the desktop, but want 6/11 exact 1-to-1in-game when their game turns EPP on. What scaling do you want in-game?

> If i change the pointer speed either in Windows or in the mouse driver, will it negate the effects made by the fix?

The fix will still remove accel, but now the scaling will be confused, because the pointer speed is not the same as when the fix was built.

> Do I have to make a new registry file if i decide that I want to make changes to the cursor speed?

Yes, you have to make a new fix when you change the pointer speed.

Mark Cranness said...

> I want zero acceleration at any refresh rate, desktop, full screen, or windowed games.

My fix removes acceleration caused by the Control Panel 'Enhance pointer precision' checkbox.
It does not remove any accel that mouse drivers might add.
It does not remove any in-game accel that games might have.
It does not remove 'negative' accel that sometimes happens when the mouse is moved quickly.

On Windows 7, one MarkC fix will work for all refresh rates (it does not depend on refresh rate).

If you set the SmoothMouse values to all zero, then probably the mouse would not move AT ALL when EPP was on (I haven't tried it).
If you delete the SmoothMouse registry entries, then Windows uses internal copies instead, which have the same values as the default values (normal accel).

The only way to remove SmoothMouse accel is to use a registry fix like mine.

Mark Cranness said...

Iyr said...
> Mouse set to 1800 DPI (100-3500 Range) and 125 Hz (125-1000 Range). Pointer speed is 6/11. EPP is ON. Raw input in games is off. Fix is set to 1-to-1, Win 7, No Accel, 100% DPI.

I would:
- Set EPP to OFF (see above, although with 6/11 it doesn't matter either way), AND
- If a game supports it, use Raw Input.

Mark Cranness said...

> Is Windows 8.1 Pro Preview same as Windows 8 or they changed?

8.1 Preview is the same as 8.
The same fixes work.

> MouseMovementRecorder shows red and greens

I noticed that also.

Windows 8.1 seems to have a big delay between DirectInput getting sent mouse movement and Windows programs getting sent mouse movement with GetCursorPos.

So MouseMovementRecorder sees a mouse movement from DirectInput, but doesn't see the pointer move until MUCH MUCH later and can't figure out what's going on and displays red and green.

Notice that it will do the same even with EPP OFF, which means it's not a problem with the fix.

I've improved MMR a little in the latest ZIP file (just uploaded August-14) and it can be made to try harder to match up the mouse and pointer movement.

See extra instructions added to the blog entry:
- Run MMR
- Press 'A' until EnPtPr is OFF. (Press A TWICE if EnPtPr is already Off!)
- Press '+' key to make MMR wait longer to match up movement and try moving the mouse.
- Repeat: keep pressing '+' (once) and moving the mouse until you get a lot of black and not so much red and green.
- Press A and move mouse, press A again and move mouse.
If Accel ON looks mostly like Accel OFF, then the fix is working, it is just that Windows 8.1 (Preview) has this delay problem moving the on-screen pointer, and MMR doesn't like it.

eduedp said...

I use Windows 7 at 8/11 and enhance enabled. Playing CS:GO won't mess my enhance option. (Won't turn it ON if its OFF)

So what should I do to get 1-to-1?

Mark Cranness said...

> CS:GO ... So what should I do to get 1-to-1?

For CS:GO I recommend using its Raw Input option ("m_rawinput 1" in the console?)

Also make sure CS:GO Accel is set as you would like, "m_customaccel 0" ?

That way you will get 1-to-1, without having to turn 'Enhance pointer precision' to OFF before playing CS:GO

Leroy Tan said...

Hi, i am using windows 8.1, 64bit. i used to use markc for windows 8, it was perfect till i changed to windows 8.1. i tested with mouse movement recorder and i got green bars most of the time, i run the correct reg file, and windows sens at 6/11 with enhance prec off. Can i know how to make it perfect again?:(

Mark Cranness said...

> windows 8.1, 64bit ... green bars most of the time

Please read my post, the first paragraph with heading "I use Windows 8.1 and see too much green and/or red in MouseMovementRecorder"

The fix is still working.
Try setting EPP OFF and you will see that the strange MouseMovementRecorder / Windows 8.1 red and green happens even when the fix is not activated.

Windows 8.1 seems to have a big delay between DirectInput getting sent mouse movement and Windows programs getting sent mouse movement with GetCursorPos.

So MouseMovementRecorder sees a mouse movement from DirectInput, but doesn't see the pointer move until MUCH MUCH later and can't figure out what's going on and displays red and green.

Notice that it will do the same even with EPP OFF, which means it's not a problem with the fix.

I've improved MMR a little in the latest ZIP file (just uploaded August-14) and it can be made to try harder to match up the mouse and pointer movement.

See extra instructions added to the blog entry:
- Run MMR
- Press 'A' until EnPtPr is OFF. (Press A TWICE if EnPtPr is already Off!)
- Press '+' key to make MMR wait longer to match up movement and try moving the mouse.
- Repeat: keep pressing '+' (once) and moving the mouse until you get a lot of black and not so much red and green.
- Press A and move mouse, press A again and move mouse.
If Accel ON looks mostly like Accel OFF, then the fix is working, it is just that Windows 8.1 (Preview) has this delay problem moving the on-screen pointer, and MMR doesn't like it.

Protec said...

I did some testing. In windows 8.1 when i ran mouse movement recorder it was all red/green. Like a lot. No black lines at all expect you moved mouse reeeaally slowly. Then i ran mouse rate checker. It showed only 200hz max (my mouse is set 1000hz on drivers). Well, nothing helped on the mouse problem so i rolled back to windows 8 where everything is fine.
I did the same test.
First ran MMR. No Red or Green lines at ALL! Nothing. Perfect function. Then i ran mouse rate checker and it showed 1000hz as it is supposed to. So windows 8.1 definitely messes up polling rate at least.

Bruno said...

Getting mostly red and some green in MMR.
I use Win 7 64 bit with Microsoft Intellimouse 3.0 at 500 Hz.
Is the 1-1 fix applied or not?
I'm not in-game when I'm testing it.
I do remember that the red and green didn't happen a few months back.
I did change to an other another mouse and back to the first one.
May this have affected the fix?
I've tried on two different usb ports but the same problem occurs.

Mark Cranness said...

> Getting mostly red and some green in MMR.

If in the fix builder you chose "1-to-1", and are testing with "Enhance pointer precision" ON, you shouldn't see much red or green.

What is the name of the fix file created (what input parameters went into it to build it)?
What pointer speed slider setting do you use?

If you used the MouseMovementRecorder 'A' key to turn accel on, it also sets pointer speed slider temporarily to 6/11, which will mess up your testing.
In that case, ALSO press '0' (zero) key to reset back to your custom n/11 setting, so that MMR testing will work properly.

If you have made sure you rebooted after applying the fix, and it still shows colours, then please upload and post a picture of the MMR output (along with answers to the questions above).

Anonymous said...

@Mark Cranness

How's this...? http://i.imgur.com/tXkc13I.png

Logitech G400 (1st gen)
Windows 8.1 Fix applied

Mark Cranness said...

> How's this...? http://i.imgur.com/tXkc13I.png

Thanks for the pic.

That shows in one picture the mouse lag problems with Windows 8.1, and is (unfortunately) expected and "normal" for Windows 8.1

My mouse fixes are active when 'Enhance pointer precision' is ON, so in your picture the red and green is not a problem with the fix (it's not active yet), they show the Windows 8.1 lag problem that people are talking about here:

Games that don't use DirectInput/Raw Input will have lag.
WINDOWS 8.1 WARNING FOR GAMERS: ISSUES WITH UNPLAYABLE MOUSE LAG IN MANY GAMES @ reddit.com.

mouse lag in video games since updating to win 8.1 @ Microsoft Community.

MouseMovementRecorder can be made to match-up the laggy pointer movement and stop showing red and green : Press the "+" key on the keyboard.
- Press '+' key to make MMR wait longer to match up movement and try moving the mouse.
- Repeat: keep pressing '+' (once) and moving the mouse until you get a lot of black and not so much red and green.

Note: Using "+" will make the Frequency display wrong : don't worry your polling rate is still good.

AOTP said...

Hi i have one question, when i use mouse mouvement recorder on my desktop nothing to report.

But when i lauch bf4, i have some green and red line is that normal ?

fix is set no accel, i'm on windows 7 x64.

Any idea ?

appel said...

I applied the fix. And the mouserecorder shows good results except for an occasional red result.

Do you know what could be the problem here?
Whenever i turn on mouse acceleration, or change my sensitvity to 5/11 7/11 the recorder has a lot more green/red results. So it does appear do be working correctly except for an oocasional single red result.

Best regards

Mark Cranness said...

When set to 5/11 you should see black and green when moving the mouse slow, and all or mostly green when moving the mouse fast.
When set to 7/11 you should see black and red when moving the mouse slow, and all or mostly red when moving the mouse fast.

When you set Enhance pointer precision to ON, you should not get any more red or green than with EPP OFF.

EPP ON looking about the same as EPP OFF is the main test that the fix is working.

The occasional red or green can happen, and just means that either Windows is slow updating the pointer position, or that MMR is slow.

The key test is : If MMR shows the same with EPP ON as it does with EPP OFF, then the fix is working.

You say : "Whenever i turn on mouse acceleration, or [...] the recorder has a lot more green/red results"

If turning EPP ON does look different than EPP OFF, please upload a picture of MMR somewhere and post the link here.

James said...

Hey Mark, to get 144hz xp feel to windows 7 is this number 1.817 correct? assuming everything is default 6/11 normal size fonts

Mark Cranness said...

> to get 144hz xp feel to windows 7 is this number 1.817 correct?

Yes, if you used CPL mouse fix on XP, at 144Hz in-game, then build a fix and set the "Pointer Speed Scaling" to 1.817 will give the same sensitivity on Windows 7.

Note: Your game will have to set EPP to ON while in-game for that sensitivity to apply

James said...

Thanks you. I'm really liking the cpl feel.

Iur said...

Hello Mark.
I have an issue...

I just switched from Win XP to 7, when i try to play in game with the exact same settings, the sensitivity feels much higher and i suck now.
Can you help me please, because i'm frustrated with it, every game now makes me need to adjust my sens and i want it just like XP.

(i never used any .reg on xp, its all default, and EPP always OFF)

Mark Cranness said...

> I just switched from Win XP to 7

There are things different between XP and 7 that can affect in-game sensitivity. But most often these result in lower sensitivity in 7.

What details do you have for both systems?

- In-game monitor refresh rate?

- Windows Control Panel Text Size?
(In XP, use these instructions :
Show the size of objects and text on your screen (DPI).
The options are Normal size (96 DPI) and Large size (120Hz).

In Windows 7:
To make the text on your screen larger or smaller.

- Which game?

- Does the game turn EPP ON when running?
Use MouseMovementRecorder.exe and follow instructions in my main blog post starting at "Does my game need a mouse fix?"

- What mouse and what drivers installed (Logitech? Setpoint?)

- Have you used any program to change the polling rate, such as HIDUSBF?

- Do you still have your old XP system available to test on?

Iur said...


- In-game monitor refresh rate?
* 60 hz (r_displayrefresh 60 )
*********************************
- Windows Control Panel Text Size?
* All default (96-> XP / 100% -> Win7 )
*********************************
- Which game?
Many, but mainly Wolfenstein - Enemy Territory
*********************************
- Does the game turn EPP ON when running?
-> Nope, it has always been off... but i want to say that i've always used acceleration INGAME because i played better that way (cl_mouseaccel 0.04)
**********************************
- What mouse and what drivers installed (Logitech? Setpoint?)
* Normal Logitech Setpoint drivers that come with the mouse on purchase (G400s), with all settings as default (accel off, 500hz, and i use 400dpi in game)
**********************************
- Have you used any program to change the polling rate, such as HIDUSBF?
* No, G400s came with 500hz by default
**********************************
- Do you still have your old XP system available to test on?
*Unfortunately not :(
**********************************
PS: before upgrading to windows 7 i took a screenshot of my XP's registry:
its exactly like windowsdefault.reg of Windows XP on your accelfix folder, but Mouse Sensitivity is at 8, which is i think 5/11 Windows Sensitivity.

Thanks for the reply :)

Mark Cranness said...

If you did have (on Windows XP) Logitech Setpoint drivers set to "Use OS Implementation", but you NOW (on Windows 7) have it set to "Use SetPoint implementation" (under Speed & Acceleration, or perhaps under "Gaming"), then that would explain a speedup on Windows 7.

(This is assuming that SetPoint still works the same way it worked last time I experimented with it.)

Try setting it to "Use OS Implementation" and see if that helps.

Iur said...

Hi again. The G400's Setpoint doesn't have such options. It had back in the days with MX518 drivers :p

Now the only mouse options look like this (also i have exactly like this now and before)

http://www.logitech.com/assets/47937/3/g400s-optical-gaming-mouse.jpg

Mark Cranness said...

(I'm running out of ideas...)

Do you now have 5/11 on Windows 7 as well?

If you do, then I have run out of ideas, sorry.

Anonymous said...

Plz mr mark help me I have a horrible stuttering when moving mouse in games and I did every thing and till now no fix ,
Plz watch this videohttp://m.youtube.com/watch?v=4NxecZxquFc

And this one toohttp://m.youtube.com/watch?v=omzombbc2K4

Mark Cranness said...

> stuttering

I'll try, but I'm not hopeful.

What does MouseMovementRecorder show when on the desktop?

What does it show when in-game (go in-game, aim, shoot, then use keyboard Alt+Tab to get back to MouseMovementRecorder WITHOUT using or moving the mouse).

Rosenquist said...

Hey Mark.

You are awesome by the way. You've helped me a lot with all your posts throughout the years.
I would be very happy if you could recreate a scenario/curve from when I was using Windows XP. Ever since I stopped using XP like 4years ago my aiming never seem to have been the same.

My settings were:
-Win 6/11
-Enhance pointer precision unchecked
-Microsoft Intellimouse Explorer 3.0 (Guess you know what dpi that mouse was running at)
-Pollingrate at 500hz

Today im on this:
X-curve
00 00 00 00 00 00 00 00
c0 cc 0c 00 00 00 00 00
80 99 19 00 00 00 00 00
40 66 26 00 00 00 00 00
00 33 33 00 00 00 00 00
Y-curve
00 00 00 00 00 00 00 00
00 00 38 00 00 00 00 00
00 00 70 00 00 00 00 00
00 00 a8 00 00 00 00 00
00 00 e0 00 00 00 00 00

-Zowie ec1 eVo
-400dpi (red)
-Used your Win 8.1 fix
-1000hertz (mouse setting, not software setting)
-mousesspeed 0
-mousetreshold1 0
-mousetreshold2 0
-csgo launch options: -high -threads 4 -nod3d9ex -processheap -console -freq 120 -novid -noforcemaccel -noforcemparms -noforcemspd +exec autoexec

I hate that there isnt any way to lock the hertz at 1000hz or 500hz in Win 8. When using mousemovementrecorder and having the mouse set at 1000 via mouse settings it constantly goes between 300 and 1000. Is there still no way to do it so it stays closer to 1000 or 500 without dropping as much?

Another mouse related question..
When I'm playing and getting fps-drops I can feel it in my mouse. As if it's not as responsive. Is that CPU related?

Thanks again Mark.
-Per, Sweden

Mark Cranness said...

People get overly concerned with so called "stability" when using a mouse at 1000Hz.
Windows polls mice, and if it is busy, it may miss the next polling time by a little.

If it is 1ms late polling at 125Hz (8ms between polls, so the late poll would be 9ms), then the reported Hz for that late poll would be 1000/9 = 111 Hz. People compare 125 and 111, and think : "close enough, at least its stable."

If it is 1ms late at 1000Hz (1ms between polls, so the late poll would be 2ms), reported Hz is 1000/2 = 500Hz. People compare 1000 and 500 and think : "Oh nos!!11! my mouse is malfunctioning!"

It's still the same 1ms late.

Normally, MouseMovementRecorder tries to match up mouse movements with pointer movements, so as to display 1-to-1 if possible. If the pointer movement is delayed a little (it happens that Windows is sometimes a little slow updating the pointer position), then MMR will wait a little while for the pointer movement.
When it does this, the Frequency column Hz it shows will not be accurate. These delays seem more frequent on Windows 8 and 8.1, so the displayed Hz will be less accurate.

SO : If using MMR to check mouse frequency, press 'C' key on keyboard until 'Catchup mode = NoCatchup' is displayed.

With your current settings, the -noforcemspd launch option means 2 things:
1) You don't need a fix for csgo
2) The SmoothMouse curve is being ignored (it is only used when EPP is ON, either because you have it on in Control Panel -you don't- or it is on because the game has the "EPP bug" and turns it on -the noforcemspd options stops that-)

Intellimouse Explorer 3.0 ran at either 400 DPI or 450 DPI, my Google-foo tells me.

Did you also use -noforcemspd options on Windows XP, or did you instead use a mousefix, perhaps the CPL mousefix?

If you did NOT use -noforcemspd on XP and used CPL, then that *might* explain a difference between XP and 8.1 mouse response in-game.

CPL on XP @ 60Hz in-game refresh rate has a sensitivity of about × 0.75, so Win8.1 @ × 1.0 would seem a little faster with your Zowie @ 400dpi.

CPL on XP @ 120Hz in-game refresh rate has a sensitivity of about × 1.5, so Win8.1 @ × 1.0 would seem a little slower with your Zowie @ 400dpi.

Otherwise, I'm not sure how to match XP for you : With -noforcemspd, EPP is off and any curve is ignored.

Rosenquist said...

25Thing is this Mark. I think I might have had some accel when using XP back then. Back then I wasent as much a settings-geek as I am now. I probably thought I wasent having any accel but I've learned that just by unchecking "Enhance pointer precision" the accel dont go away 100%, or am I wrong?

When I play now with 1-to-1 movement i feel that the sensitivity is fine for like long distance aiming, but it takes forever to turn around. I remember it differently back then. But I cant remember I had acceleration that made my reflexshots go crazy.

My initial thoughts was that the SmoothMouseX and Y Curve is still active even though my accel was off. I thought that the curve represented, how can I put this, different speed of movement. As if there were 4 different speeds. Not acceling speeds. Like the gears on a car. You got 5 different speeds. But I guess that wouldnt make sense either.

So if I got this right now. The curves in regedit dont matter aslong as my accel is completely turned off?

To answer your question I'm pretty sure I had all the accel commands in launch options back then aswell. Or used, like you said, one of the fixes. I would love to just sit down at a brand new installation of win xp, uncheck pointer prec, and start cs and feel if there's any difference.

Could you give me the curves for Win XP and ill try playing with accel on? Does the Win XP curve have a lot of accel if you compare it to other OS's?

Best Regards

Mark Cranness said...

You might have had accel on XP, for those games that turn "Enhance pointer precision" (EPP) ON by themselves, and if you didn't use options to disable that.

CS 1.5, HL 1, Quake and quite a few others turned "Enhance pointer precision" ON.
CS 1.5 and HL and other GoldSource games did have the -noforcemspd option to NOT have them turn accel on.

HL2, CSGO and other Source games did NOT turn accel on, unless you set the -useforcedmparms launch option, which reverted them to the older setting.

You could try some things, and experiment to see if any of those experiments match up with what you remember for XP.

Thing 1) Maybe you had normal XP accel from a game that turned EPP ON, and didn't use a reg file fix or launch option?

You can build a REG file that emulates Windows XP accel on Windows 8.x.
You just need to calculate a sensitivity adjustment factor :
(XP_Monitor_Freq × 120) / (XP_TextSize × Win7_TextSize)

Unless you used or use "Large Fonts" on XP, or a text size > 100% on XP, both XP_TextSize & Win7_TextSize will be 96, so the factor is :
(XP_Monitor_Freq × 120) / (96×96)

Build your own "XP" curve using the adjustment factor above, using bologna's Custom mouse accel program for Windows [link], and run CustomCurve.exe, click menu File > Presets > Xp/Vista/7
Then click Options > Scaling/Exponent Tool
Enter your factor into the "Scale Y *" box, and click "Scale Y *" ONCE ONLY then click the Close button top right then Save to File or Write to Registry.

(CustomCurve.exe has a Windows 8 preset, but you want the XP/Vista/7 preset when trying to emulate XP.
BTW, If using Windows 7, the "120" in the formula above would be "150" instead.)

Turn EPP ON, and check that it stays on when running CSGO by looking at the EnPtPr column in MouseMovementRecorder, which should stay ON. Make sure you turn Raw Input OFF in CSGO (if it has that option).

Give it a try, maybe with different values for XP_Monitor_Freq if you are not sure what your in-game frequency was on XP.

VERY important for accel curves is what mouse polling rate you had and now have.
To get the same accel from a curve, you will need to have the same mouse polling rate that you had on XP.
(Since you did have 500Hz and now have 1000Hz, then a matching curve can be still be built, but it needs special construction... For now just try with 500Hz to see if the curve matches or not.)

Thing 2) Maybe you used CPL on XP with a game that turned EPP ON, and didn't a launch option?

Calculate this XP-CPL sensitivity factor:
4.24 × XP_Monitor_Freq / (XP_TextSize × 3.5)

If you gamed with your monitor at 120Hz on XP, this will be 4.24×120/(96×3.5) = 1.51

Use my fix builder to build a fix, and when it asks "Enter the pointer speed scaling (sensitivity) factor that you want...", enter the factor calculated above. Apply that REG fix.

Turn EPP ON, and check that it stays on ... same as above for the XP curve and give it a try.

Thing 3) Maybe your IE 3.0 was a 450DPI mouse,, and you should set your Zowie to 450, rather than 400?