Wednesday, March 3, 2010

The MarkC Windows 10 + 8.1 + 8 + 7 Mouse Acceleration Fix

The 'MarkC Windows 10 + 8.1 + 8 + 7 Mouse Acceleration Fix' is available for download from this link:
DO NOT USE THIS: MarkC_Windows_10+8.x+7_MouseFix.zip @ google drive (version 2.9).
Use this: MarkC_Windows_10+8.x+7_MouseFix.zip @ onedrive.com (version 2.9).

For help for the fix, visit the ESReality MarkC Windows 7 Mouse Acceleration Fix page:
http://www.esreality.com/?a=post&id=1846538

What is it?

It is a registry file that removes Windows 7 or 8 or 8.1 or 10 mouse pointer acceleration.

It is like the CPL Mouse Fix and Cheese Mouse Fix, but gives exactly 1-to-1 mouse to pointer response for Windows 7 or Windows 8.x or Windows 10.

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

How do you use it?

  • Find the display DPI that you currently use:
    Click Start, click Control Panel, select Appearance and Personalization, select Display.
    See if you have 100% or 125% or 150% selected.
    (On Windows 8.1 or 10, if you see a 'Smaller...Larger' slider, then:
    - the 1st slider position will be 100%,
    - the 2nd slider position will be 125%,
    - the 3rd slider position (might not be shown) will be 150%.)


  • Open the ZIP file at the link above.

  • Select the folder that matches the Windows version you use and Double-click it.

  • Select the REG file that matches the DPI% you use and Double-click it.

  • Answer Yes, OK to the prompts that appear.
    (See below for non-Administrator account use.)

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

  • Enjoy exactly 1-to-1 mouse to pointer response!
    (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 the fix?

If you don't know you need it, then you don't need it!

Some older games, such as Half-Life 1, Counter-Strike 1.x, Quake, Quake 2, Unreal and others, while they are active and running, call a Windows function intending to disable variable mouse acceleration by forcing ALL movement to be accelerated by the same amount (doubled).
On Windows 2000 and earlier, that removed all variable acceleration.
Pointing and aiming in those games was OK, because the mouse response was then linear (all movement was accelerated by the same amount; it was doubled).

In XP, and later Windows versions, Microsoft changed how mouse pointer acceleration worked.
Now when those games call the function (asking that all movement be accelerated), Windows enables the mouse 'Enhance pointer precision' feature, which adds mouse acceleration using a varying curve to control the mouse response. (It enables it even if you have it turned off in the Control Panel Mouse settings.)

With 'Enhance pointer precision' enabled, slower mouse movements make the pointer go extra slow and faster mouse movements make the pointer go extra fast. It is not linear and not straightline.

This is annoying, because where you are aiming at depends on how far you move your mouse, and also on how fast you moved the mouse to aim.

How does the fix work?

It redefines the curve used by the 'Enhance pointer precision' feature to be a completely straight line. The slope of the line is tuned so that every on-mouse-pad mouse movement is turned into exactly the same amount of on-screen pointer movement.

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 set the Control Panel 'pointer speed' slider set to the 6th, middle position and 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.
    (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. Press A TWICE if EnPtPr is already 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 10, & scaling of items is not 100%, see below.)
    (NOTE: If you use Windows 8.1 and have too much green and red, see 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'.)

  • 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.)

Does my game need a mouse fix?

You can test your game to see if it turns 'Enhance pointer precision' ON, and needs a mouse fix.

  • 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 needs a mouse fix.

Is this fix different from the Cheese Mouse Fix?

The 'Enhance pointer precision' option works slightly differently in Windows 7 than it does in XP and Vista, and slightly differently again in Windows 8.x and 10.

The Cheese Mouse Fix gives exactly 1-to-1 mouse response for Windows XP and Windows Vista.

The MarkC Mouse Fixes give exactly 1-to-1 mouse response for Windows 7 & 8.x & 10.

(Note: Both fixes need the Control Panel 'pointer speed' slider set to the 6th, middle position to give exact 1-to-1.)

But I don't use the middle 6/11 pointer speed setting?

If you want exact 1-to-1 in-game response when the pointer speed slider is not in the 6/11 position, or you have a custom display DPI, see the MarkC Mouse Fix Builder, which works for Windows 10, 8.x, 7, Vista and XP.
For those 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.
The MarkC Windows 10 + 8.1 + 8 + 7 + Vista + XP Mouse Acceleration Fix Builder

The MarkC Mouse Fix Builder can also create a fix that emulates Windows 2000 or Windows 98 or Windows 95 acceleration.

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 or Windows 10:
    Select 'Windows_10+8.x_Default.reg' and Double-click it.
  • Answer Yes, OK to the prompts that appear.
  • Reboot or Log off.

I use Windows 10 and scaling of text, apps and other items is not 100%

In later versions of Windows 10, Microsoft changed how the mouse pointer is moved in response to mouse input, when scaling of text, apps and other items is not 100%, and Enhance pointer precision is OFF.

Mouse pointer movements when Enhance pointer precision is OFF, are now scaled according to the per-monitor scaling of items setting.

When Enhance pointer precision is OFF, and the Control Panel pointer speed slider is set to 6/11, MouseMovementRecorder will not show all-black, exact 1-to-1, but instead Pointer Movement will be multiplied by the same scaling factor applied to text, apps and other items.

Games may also see this difference, or not, depending on their "DPI Awareness".

I use Windows 8.1 and see too much green and 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 with a non-Administrator account

When adding the mouse acceleration fix to the registry, you may get this error message:

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

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).
  • 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.

731 comments:

«Oldest   ‹Older   601 – 731 of 731
Anonymous said...

"With Enhance Pointer Precision OFF and 11/11, Windows has no acceleration, and sensitivity = ×3.5"


Pre- applying your fix this' correct if MouseSpeed= 0 in regedit's HKEY_CURRENT_USER\Control Panel\Mouse or HKEY_USERS\.DEFAULT\Control Panel\Mouse right?



- Scott

Anonymous said...

Why is the max sensitivity 15?

If you can, could you pls make one that can go up to 50?



- Scott

Mark Cranness said...

> Pre- applying your fix this' correct if MouseSpeed= 0 in regedit's HKEY_CURRENT_USER\Control Panel\Mouse or HKEY_USERS\.DEFAULT\Control Panel\Mouse right?

Sorry, I'm not sure what you are asking?

MouseSpeed=0 is the same as Enhance Pointer Precision=OFF.
MouseSpeed=1 is the same as Enhance Pointer Precision=ON.

> Why is the max sensitivity 15?

A sensible max sensitivity is about 4, IMO, but just in case, I let my fix builder go as high as 15. The main reason there is a limit at 15 is because ×15 is just too much. The smallest possible mouse movement is 1 count, so sensitivity ×15 would move the pointer 15 pixels which is far too much.
(A minor reason is that the internal calculations don't exactly work out for higher sensitivities and you might get overflow or very small rounding problems.)

If you need higher sensitivity in-game, then set the fix sensitivity @ 1.0 and change the in-game sensitivity.

Anonymous said...

I'd like to ask, if I use your fix to increase sensitivity only, is it same as upgrading to a higher DPI mouse + turning off enhance pointer precision always?

Anonymous said...

i) You said on your April version of this fix's post


"@alecks: Yes there is a small difference between Windows 7 and Windows 8/8.1/10 when 'Enhance pointer precision' is ON.

Mouse movement on Windows 8/8.1/10 is 2.3% less than on Windows 7, which I is likely too small a difference to notice.

(150/120)×(100/128) ",


what're those numbers?






ii) On the same thread as above, you said

"The CS 1.6 engine suffered from the 'Enhance pointer precision' accel problem that my fixes fix, UNLESS you used the -noforcemspd or -noforcemparms launch options.
(Did you use either of those options?)

Now-adays CS 1.6 (AFAIK) also has Raw Input, which is the best way to fix 'Enhance pointer precision' accel and also fix negative accel.

CS 1.6 could have negative accel when not using Raw Input."


I) Why's it the best way to fix mouse acceleration & deceleration, isn't your fix perfect?


II) Do you know if CS 1.5's Raw Input to fix mouse acceleration/ deceleration?











ii) Just to make sure, right after a fresh install of win7, without using your fix, if I're to turn off the mouse's enhance pointer precision in control panel there's 100% no acceleration?





- Scott

Anonymous said...

If I'm correct, I've tested 11/11 win7 control panel mouse pointer speed using 3.5x sensitivity w/ your fix w/ enhance pointer precision on & w/o enhance pointer precision & w/o enhance pointer precision, it seems it's more accurate, is there any inaccuracies in your fix?







- Scott

Mark Cranness said...

> I'd like to ask, if I use your fix to increase sensitivity only, is it same as upgrading to a higher DPI mouse + turning off enhance pointer precision always?

No, it is not.

A higher DPI mouse will allow faster pointer movement across the desktop, with no "pixel-skipping". That means that the on-screen pointer (or in-game aim) can still finely controlled, and the pointer can be pointed at every possible pixel.

With mouse sensitivities above 1.0, pixel skipping happens.
The mouse can only send whole number mouse movements (with no fractional part).
The smallest possible mouse movement that will be sent from the mouse to the PC is 1 count.
With sensitivity = 4.0 (for example), every 1 count from the mouse will cause 4 pixels of pointer movement. If you were trying to accurately position the pointer (or aim in-game), then there are some pixels you won't be able to point at and some things you won't be able to aim at.
NOW most things you need to click on are 8 or more pixels wide or high, and most targets in-game are far wider than 1 pixel, so the practical effect is negligible.

I would guess up to 2.0 people would likely not notice any skipping or pointing problem. But definitely over 8 you would notice the skipping.

Mark Cranness said...

@scott
> "(150/120)×(100/128)", what're those numbers?

Those numbers are hard-coded constants used by Windows for calculations when 'Enhance pointer precision' is ON (the first 2), and a scaling adjustment made to the standard Windows 'Enhance pointer precision' accel curve (the last 2).

It's a long story.

When Microsoft designed the 'Enhance pointer precision' mouse calculations, they wanted to remove the effect of different mouse CPI and different mouse polling rates and different screen DPIs. They did this by designing the "Control-Pointer (CP) Gain" "transfer function" in units of inches/second, and storing the "CP gain" function in a "curve", or lookup.
They talk about that here:
https://web.archive.org/web/20110421045930/http://msdn.microsoft.com/en-us/windows/hardware/gg463319.aspx

And I talk about how they stuffed that up here:
https://donewmouseaccel.blogspot.com/2009/06/out-of-sync-and-upside-down-windows.html

To do that calculation properly, they need to know the actual mouse DPI, and the actual mouse polling rate and the actual screen DPI.
They didn't know some of these numbers, so in Windows XP, they set them to hard-coded numbers.

For mouse DPI and polling rate, they wanted to calculate
Vmouse = counts × UpdateRate/MouseDPI,
and they used (apparently) hard-coded values for one of their mice: DPI=440, Polling rate=125Hz, and 125/440 is quite close to 1/3.5
So they used a hard-coded 1/3.5 when using mouse counts to calculate
Vmouse = counts / 3.5

For screen DPI, Windows does not know the actual screen DPI, but it does know the "Click Start, "Control Panel, Appearance and Personalization, Display" DPI, which is usually 96 (=100%), aka "Normal on XP".

The calculation should be:
Vpointer = pixels × UpdateRate/ScreenResolution
Microsoft stuffed up, and decided they need to calculate
Vpointer = pixels × ScreenRefreshRate/ScreenResolution
They stuffed up again, and actually calculated
Vpointer = pixels × ScreenResolution/ScreenRefreshRate

Now actually, you don't want to calculate Vpointer. You have Vpointer by calculating Vmouse and looking up Vpointer in the transfer function / curve lookup.

So the calculation should be:
pixels = Vpointer × ScreenResolution/UpdateRate
Microsoft stuffed up, and decided they need to calculate
pixels = Vpointer × ScreenResolution/ScreenRefreshRate
They stuffed up again, and actually calculated
pixels = Vpointer × ScreenRefreshRate/ScreenResolution

It is this last calculation that happens in Windows XP and Vista.

In Windows 7, they found their mistake and partially fixed it.
In Windows XP and Vista, for most people, the screen refresh rate is 60Hz, and their Display DPI is 96 (=100%). So most people with XP and Vista had a calculation of ×60/96 (×0.625) happening when they move the mouse.

Microsoft need to fix the calculation to use
pixels = Vpointer × ScreenResolution/UpdateRate
(Where UpdateRate should be the mouse polling rate, because it is at each mouse polling that the pointer gets moved.)
BUT if they had set the update rate to 125Hz, then for most people on Windows 7 they would have a calculation of ×96/125 = ×0.768, which is 23% higher, and mouse movement would be 23% faster. People would notice that.

So instead they used this calculation:
pixels = Vpointer × ScreenResolution/150

For most people on Windows 7, this is ×96/150 = ×0.64, within 3% of 0.625, so that's what they did.

I guess they weren't happy with the UpdateRate=150 constant, so in Windows 8, they did two things:

1) Changed it to × ScreenResolution/120

2) Adjusted the standard curve Y (pointer) values by ×100/128.
Each SmoothMouseYCurve number in the old XP/Vista/7 curve is multiplied by ×100/128 to give a new Windows 8+ Y value.

The combination of changing 150 to 120, and adjusting the standard curve by 100/128 is why Windows 8/8.1/10 is a little slower than Windows 7, by (150/120)×(100/128).

Mark Cranness said...

@Scott:
> I) Why's it the best way to fix mouse acceleration & deceleration, isn't your fix perfect?

I should have said: "CS 1.6 (AFAIK) also has Raw Input, which is the best way to fix 'Enhance pointer precision' accel *BECAUSE IT ALSO FIXES* negative accel"

My fix and Raw input both perfectly fix, or remove 'Enhance pointer precision' accel.
BUT my fix can't stop 'negative acceleration'.
Negative accel can happen with games that don't use Raw Input or DirectInput, and causes fast movements to go very much slower than they should, if the movement is fast enough (I'll explain why if you ask).
Raw Input does not suffer from negative accel.

> II) Do you know if CS 1.5's Raw Input to fix mouse acceleration/ deceleration?

I'm pretty much 100% sure it does fix both 'Enhance pointer precision' accel and also negative accel.

> ii) Just to make sure, right after a fresh install of win7, without using your fix, if I're to turn off the mouse's enhance pointer precision in control panel there's 100% no acceleration?

Yes, on the desktop. With 'Enhance pointer precision' OFF, there is no accel, even without using my fix.
The problem is that some games have a bug where they turn 'Enhance pointer precision' ON when they are running, and that gives you accel.
Fixes for that bug include:
- Use Raw Input or DirectInput if the game supports it, OR
- Use -noforcemspd or -noforcemparms launch option for Valve "GoldSource" engine games (HL, CS1.6), OR
- Use my fix.

Mark Cranness said...

> I've tested 11/11 win7 control panel mouse pointer speed using 3.5x sensitivity...

With a fix builder ×3.5 fix @11/11 applied, there will be no difference between 'Enhance pointer precision' ON or OFF. Both settings will have the exact same mouse response.

Anonymous said...

"

> I'd like to ask, if I use your fix to increase sensitivity only, is it same as upgrading to a higher DPI mouse + turning off enhance pointer precision always?

No, it is not.

A higher DPI mouse will allow faster pointer movement across the desktop, with no "pixel-skipping". That means that the on-screen pointer (or in-game aim) can still finely controlled, and the pointer can be pointed at every possible pixel.

With mouse sensitivities above 1.0, pixel skipping happens.
The mouse can only send whole number mouse movements (with no fractional part).
The smallest possible mouse movement that will be sent from the mouse to the PC is 1 count.
With sensitivity = 4.0 (for example), every 1 count from the mouse will cause 4 pixels of pointer movement. If you were trying to accurately position the pointer (or aim in-game), then there are some pixels you won't be able to point at and some things you won't be able to aim at.
NOW most things you need to click on are 8 or more pixels wide or high, and most targets in-game are far wider than 1 pixel, so the practical effect is negligible.

I would guess up to 2.0 people would likely not notice any skipping or pointing problem. But definitely over 8 you would notice the skipping."



*****"June 19, 2016 at 11:09 AM "


Do you've Skype? Maybe we can type there for clearer conversation, if you agree, pls send your Skype to my email claritia@yahoo.com.








- Anon from above, AKA the "Scott".

Unknown said...

Hey, just got a new mouse, Zowie EC1-A and a friend with same mouse told me to test "MouseMovementRecorder". I did this is the result: http://imgur.com/8KvwNgN
Basically I get that green and red thing about every 30-60 lines, always green on top and red right below. This happens 80% of the time, sometimes it has only a red line, and sometimes green above, normal (black) between and red under. Two of my friends have the same mouse and they don't get this, it's all normal for them. Should I be worried and how should I fix this? Thanks

Anonymous said...

Mark I'd like to ask you a few questions in Skype as 2 posts above, do you agree?



- Scott

Mark Cranness said...

> Zowie EC1-A ... "MouseMovementRecorder".

Occasional green followed by red is nothing to worry about: I get the same.
It happens when Windows is a little slow updating the pointer position.

MouseMovementRecorder sees the mouse movement, and then starts waiting to catch the corresponding pointer movement, but if that doesn't happen within 500 us (0.5ms) it gives up and displays a green 0 x 0.

IF you play any games that use the old "Quake" style (pre Raw Input and pre-DirectInput) way of handling mouse movement, then they might occasionally see very slightly delayed pointer movement also.

Press 'E' key in MMR to see extra detail about the timings of the mouse and pointer movement, and maybe '+' key a few times to match make MMR try harder to match mouse movements with the pointer movement.

Mark Cranness said...

> Skype

I can't Skype sorry.
If you use MouseMovementRecorder, and higher sensitivity values (use the numeric keypad to temporarily change sensitivity while in MMR), you will be able to see what happens to the pointer with larger sensitivities.

Anonymous said...

1) "Negative accel can happen with games that don't use Raw Input or DirectInput, and causes fast movements to go very much slower than they should, if the movement is fast enough "


If I've a mouse w/ 15,000 DPI, and I use 15,000 DPI, will I've negative acceleration?





2) "With a fix builder ×3.5 fix @11/11 applied, there will be no difference between 'Enhance pointer precision' ON or OFF. Both settings will have the exact same mouse response."


Ok, I'd a typo when asking the question, just to make sure, I was comparing the no acceleration mouse accuracy just by sight between using & not using your fix for


3.5x( supposedly the 11/11 mouse slider in control panel w/o using your fix), I used these settings to test in win7,



A) non- your fix,

control panel,
a) 11/11 mouse slider
b) enhance pointer precision off


B) & using your fix,


a) applied registry using your fix for 3.5x w/ no acceleration option
b) enhance pointer precision on( ie enable your fix)



, if I'm correct what I noticed is non- your fix seems more accurate, so I'd like to ask is there any inaccuracies in your fix?







3) Control Panel 6/11 mouse slider= 1x sensitivity?





4) Why not Skype?






- Scott

Mark Cranness said...

> If I've a mouse w/ 15,000 DPI, and I use 15,000 DPI, will I've negative acceleration?

YES you will likely get negative acceleration, unless using Raw Input or DirectInput.
High mouse DPI and/or low in-game frame rate and/or small monitor resolutions can all cause negative accel with games that don't use Raw Input or DirectInput to read the mouse.

Games that don't use Raw Input or DirectInput instead hide the on-screen pointer, but still read that on-screen pointer's location to read mouse movement.
They put the (hidden) pointer at the middle of the screen, then mouse movement causes the pointer to be moved, the game notices how far away the pointer has moved from the middle, uses that distance to compute in-game movement, and re-positions the pointer back in the middle.
It typically does this read and re-centre every frame displayed.

If you have a very high DPI mouse, the pointer can move right to the edge of the screen, but Windows won't let it move any further than the edge. Any further movement past the edge is ignored.

> ... just by sight ... if I'm correct what I noticed is non- your fix seems more accurate, so I'd like to ask is there any inaccuracies in your fix?

No, there are no inaccuracies in my fix. The calculations and formula used have been very carefully tested and checked.
The best test is to use MouseMovementRecorder.exe, and press '0' (digit zero) key then toggle 'A' key to see how the Mouse Movement column numbers compare to the Pointer Movement column numbers.
Each time you press 'A' key, it will toggle between 11/11 with Enhance Pointer Precision OFF and 11/11 with Enhance Pointer Precision ON, and you can see and compare the numbers.

There are even programs that can re-play mouse movements, rather than relying on moving the mouse by hand for testing.

> Control Panel 6/11 mouse slider= 1x sensitivity?

Yes, 6/11 has sensitivity ×1 when Enhance pointer precision is OFF, and also ×1 when using my 6/11 fix.

BUT 6/11 with Enhance pointer precision ON and using a 11/11 fix is not ×1 !

Windows treats the mouse speed slider differently depending on Enhance pointer precision ON or OFF, and mouse sensitivity will only match at the slider position that the fix was built for.

Anonymous said...

When I put the mousemovementrecorder right next to bf3 in windows mode, The mousemovementrecords shows some green bars and somethings in red, I made the applies exactly as the guide says

Anonymous said...

This happens when I put the game in windows mode and mousemovement recorder right next to it, when I play in the game appears that but when i'm on the menus notthings appear all 1to1

Anonymous said...

https://gyazo.com/f9a3f133aca22b123effe67b88d14b7f that

Anonymous said...

this explain better https://www.youtube.com/watch?v=95aysV_lw_c&feature=youtu.be

Mark Cranness said...

> When I put the mousemovementrecorder right next to bf3 in windows mode, The mousemovementrecords shows some green bars and somethings in red

That is expected and normal.
Please read the part of my blog that starts: "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."

> https://gyazo.com/f9a3f133aca22b123effe67b88d14b7f

Note that often there is a green 0x0 in the pointer movement column.
This is because the game keeps moving the pointer back to the centre of the screen, and MouseMovementRecorder sees no movement, and is normal when in-game.

If it usually shows all black and matching mouse and pointer numbers when on the desktop, then the fix is working.

Unknown said...

Hi, I'm having a lot of reds and greens while using a Deathadder Chroma but when I swicth to non software mouse it doesn't show any reds and greens. Does this have something to do with the Razer Synapse Sofrware or software mouses in general? Does this mean its the mouse itself that is the problem?

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

I ran the program for windows 10 but now my mouse acceleration is insane, any sudden movement left or right and ill spin numerous times around. I ran the default program to remove it and it worked, however when I come back the next day to play its fucked up again, and I have to re run the program and reboot. any fix so I dont have to rerun the default program everyday?

Mark Cranness said...

> I'm having a lot of reds and greens while using a Deathadder Chroma

Is that while in-game or on the desktop?

What is a software mouse? Do you mean that the problem only shows when the Razer drivers are installed but goes away when using the mouse without he drivers installed?

Mark Cranness said...

> I ran the program for windows 10 but now my mouse acceleration is insane

Other people have reported MouseMovementRecorder showing buggy results on Windows 10, I think I have a bug to fix.

Applying Windows 10+8.x default.reg once only will set you back to normal. Please upload picture of what MouseMovementRecorder shows when the acceleration is bad.

Unknown said...

It happens on desktop. While in game it's even worst.

What I mean by a software mouse is that you you need to install a softaware in order to use it properly. In this case the Deathather Chroma requires Razer Synapse in order to work. In that software I have the option to change DPI, acceleration and the polling rate. I use 800 DPI, 0 accelaration and 1000hz(polling rate).

What I was trying to say is that those reds and greens only happen when i use that mouse. I have another mouse that is a E-Blue Cobra (I dont know the exact model) that does not rquire a software to work and when I test with it there is no reds and greens.
Both tests I did on dektot.

Sorry for not explaining very well, my English sucks.

Unknown said...

Its not the MouseMovementRecorder showing the insane acceleration, it's easily noticable when I play CSGO or h1z1. without acceraltion when I swipe my mouse left/right I'll spin a little more than once around, after I applied the program I cant even register how many times I spin
around.
And I have applied the Windows 10+8.x default.reg, but after I get online the next day the acceleration is back and I have to rerun the program and reboot so its annoying

japespszx said...

Hello. I'm kind of confused on how this works. If I understand correctly, the fix only applies when in-game. If I'm not in-game (just in Windows), does that mean I don't get 1-to-1 cursor movement, considering EnPtr is off? Also, if I enable EnPtr off-game, will I get the same movement as EnPtr disabled, considering that I'm using 6/11 Windows sens?

Dr. Bob Wartell said...

Hi, Mark. I have a problem not related to gaming, but related to mouse. Maybe you know the answer. Windows 10 ver 1607. As the mouse pointer moves across the screen, windows under the pointer keep moving to the front and I lose sight of other windows. I have not been able to stop this behavior by changing Mouse settings in Control Panel.
Do you have any ideas on how to change this?

Dr. Bob Wartell said...

I found a solution to this problem. It's a setting in the Ease of Access Center.
"Control Panel\Ease of Access\Ease of Access Center\Make the mouse easier to use"
There is a check box to "Activate a window by hovering iver it with the mouse." I unchecked it.

kurtv said...

Hello markc could make it possible to use windows mouse acceleration in programs that only supports Raw input, I cant play games without acceleration, and today many devs only make rawinput in their games :(

Unknown said...

Hey. I'm on the latest version of Windows 10. My screen resolution is 1280 x 1024. I use 6/11 and accel is off of course. I used the 100% version and after a few minutes of testing I discovered that the fix gave me deceleration. When I ran the movement recorder it showed no red or green.

I decided I want to get rid of the fix so I ran the default reg for Windows 10 and restarted my PC. I did it a few times and it didn't work. Now I'm stuck with deceleration. Please help me fix either one problem or the other.

Anonymous said...

Just wanted to say thanks . Speed set at 6/11 and EPP enabled and there is a noticeable difference . The cursor now acts predictably . No more overshooting target repeatedly .

Anonymous said...

Bom

Marius said...

Hi Mark

Could you confirm, i have 4k monitor my DPI is 200%, but i use game in 1080p and in game properties i have checked not to use Windows Scaling.

So should i use 200% or 100% Mouse Fix?

Anonymous said...

is there a way to get windows 7 acceleration on windows 10?

Unknown said...

my computer scaling normally should be 250%
your thingy only goes up to 200%
now every thing is titchy because i need to play my games with this mouse accel fix
please add a 250% option please
ty in advance?

deagletime said...

Hey Mark

How do i use mousefix without restarting computer? I'm planning to use it for a lan event. At the lan event if you were to reset the computer it would default mouse reg back to default which doesn't actually change mousefix when you install the markc mousefix. How do i go about installing mousefix without resetting computer to install it?

Thanks in advance

Anonymous said...

Hey Mark, i have a problem.
On desktop the mouse movement recorder (MMR) it shows ok, but when i started the game (cs 1.6 window mode) it shows a lot of green and red. With this 2 open i went to start-mouse settings-pointer option and the enhance poiner precision (EPP) was on, so i put it off, alt+tab in to the game and the EPP was on again. it allways puts it on.

Anonymous said...

Hi Mark!

I have a problem, i recently did everything, i watched like 5 videos on youtube and there is no fix, i rebooted pc, i disabled enhanced pointer precision, and nothing, i selected the correctly .reg file

This problem started when i started playing Counter strike 1.6 and Half life 1. The games changed my configuration of my mouse.
I need heelp :(

Mouse: Razer Deathadder (Updated Drivers)

OS: Windows 10

Anonymous said...

Just wanted to say thanks for the fix. It works beautifully to fix mouse acceleration in Halo SPV3.

Anonymous said...

The Google Drive link is down, just letting you know.

Anonymous said...

The Link is down please fix this i really need your help! ):

Mark Cranness said...

> The Google Drive link is down
> The Link is down please fix

Google has disabled this first link (as they must) because they have received a bogus (imo) DMCA takedown notice. I have made a counter notification, and am waiting on the result.

Please use the mirror onedrive.com link just below the main link.

Unknown said...

Not Found

Error 404

could u make a new link please?

Mark Cranness said...

> Error 404

Please use the mirror onedrive.com link just below the main link.

Dan said...

I need serious help. I've been pulling my hair out trying to fix my mouse accel with this reg file first and then a few others to no avail.

The program to check says there is no accel (no red or green) but when I move my mouse fast it moves further than when I move it slow.

Is there anything else I can check?

Mark Cranness said...

> but when I move my mouse fast it moves further than when I move it slow.

If you have mouse drivers installed from my manufacturer of your mouse, such as Razer drivers or Logitech Gaming Software drivers or so on, then sometimes those drivers have options for their own acceleration, which can't be seen by MouseMovementRecorder.
If you do have drivers installed, have a look around the options or user manual to see if accel is enabled.

Games also have accel options, for example Source games have cl_mouseaccel cvar (Console Variable) and a UI option to set the same.

Unknown said...

Hi
Update to Windows 10 1709 had a new mouse scale problem.
Mouse speed will scale with screen DPI scale setting.
e.g. If I set the scale to 150%,my mouse speed will increase to 1.5x(compare to 100%'s mouse speed)
this behavior apply with each Monitor even they have different DPI scale
(Monitor 1: 125% for 1.25x,Monitor 2: 200% for 2x)
This fix dosen't fix the problem
Is there any fix for this?
Thanks for the help.

X Ray said...

Came here just to say thank you for sharing the knowledge, Mark Cranness! I don't play old games but still good to know how Windows mouse works.

Fraser Munro said...

I've been using the mouse fix for ages and always still felt like my mouse movement felt "off" in CS:GO. The fix seems to work when on the desktop as all movements in mouse movement recorder match up. Today, though, I read that you should check mouse movement recorder while the game is open to check the results and lo and behold this is the result when moving the mouse in CS:GO - https://s17.postimg.org/b6nferx33/mouse.png

So this is why my mouse movement feels off in CS:GO? Any idea how to fix it? I've tried with raw input on and off, and I've even tried rinput.exe. I have also tried running full screen windowed and get the same results. Results are fine in CS:GO's main menu, but i get the results as seen in the screenshot above when in game.

Anonymous said...

"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."

firstable thank you for sharing your knowledge.
i am alittle bit confused.. in order to apply the windows 10
fix should the enhanced pointer precision be ticket or not?

Visen said...

Hello,

Having 'Enhance pointer precision' off and Windows sensitivity slide in 6/11
When I run MMR the motion relationship is not 1 to 1.

That shouldn't be the case right?

I'm forced to use 'Enhance pointer precision' on (with your registry fix applied) to get that 1 to 1.

Mouse is Logitech GPro (PWM3366 with Zero built-in accel as far as I know)

Any ideas on how to get 1 to 1 without using EnPtPr?

Thanks in advance



John Boyd said...

Genious! Thank you so much! I'm a Win 10 user and the windows were double clicking causing programs to open 2nd time when switching tabs and click and drag to not work. This seems to have fixed it!

Mark Cranness said...

> Update to Windows 10 1709 had a new mouse scale problem.
> Mouse speed will scale with screen DPI scale setting.
> This fix dosen't fix the problem
> Is there any fix for this?

Thanks for the info above, and sorry that I've only just now had a look at it.

If all of your monitors have the same DPI scaling, then you can use my fix to remove the new Windows 10 1709 mouse scaling:
Create a fix for the DPI scaling you use, apply it, reboot, and then set Enhance pointer precision to checked ON.
As long as Enhance pointer precision is checked ON, mouse input will be 1-to-1.

NOTE: If you have games that can be set to use Raw Input or DirectInput, then they don't need a fix.
BUT this fix would be useful for the desktop and all other programs, because with the new Windows behaviour, you have pixel skipping. While you probably wouldn't notice a single skipped pixel, if you are doing tasks that need fine precision (art, drawing, graphics) skipped pixels are going to be a big pain!

If your monitors have different DPI settings, you are going to have to choose which monitor the fix works best for.

Depending on the DPI scaling, you might also be able to set a different pointer speed slider setting, and not need to use my fix.
For DPI scaling = 125%, position 5/11 gives × 0.75, with total scaling = × 0.9375
That's not exact 1-to-1, but at least it does not skip pixels. Occasionally (once every 16) a mouse movement will be ignored).

For DPI scaling = 150%, position 4/11 gives × 0.5, with total scaling = × 0.75
That's not exact 1-to-1, but at least it does not skip pixels.

For DPI scaling = 150%, position '4.5'/11 gives × 0.625, with total scaling = × 0.9375
That's not exact 1-to-1, but at least it does not skip pixels.
(To get '4.5'/11, you have to edit the registry and set MouseSensitivity="7")

Mark Cranness said...

> ... check mouse movement recorder while the game is open ... https://s17.postimg.org/b6nferx33/mouse.png

That is expected and normal if you run MouseMovementRecorder while a game is running.
See the info after "NOTE: While running a game, you may see many red and green lines." in my blog:
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'.

Use Raw Input is the best thing to do.

Mark Cranness said...

> ...in order to apply the windows 10 fix should the enhanced pointer precision be ticket or not?

In most cases it doesn't matter.
I recommend leaving Enhance pointer precision OFF.

Think of like this:
I have a fix that means if you drive your car through potholes, you won't get a puncture and you won't get a bump through your seat. The fix works when you drive over a pothole.
Should you drive around potholes (But the fix won't be working!), or drive through them?
In both cases you won't get a puncture and you won't get a bump through your seat, but you may as well not drive through the potholes anyway.

Mark Cranness said...

> Having 'Enhance pointer precision' off and Windows sensitivity slide in 6/11
> When I run MMR the motion relationship is not 1 to 1.

Do you use Windows 10 Version 1709 (the latest) and also have your monitor DPI scaling set to something other than 100% ?

In later versions of Windows 10 (Version 1709 and later?), Microsoft changed how the mouse pointer is moved in response to mouse input, when scaling of text, apps and other items is not 100%, and Enhance pointer precision is OFF.

Mouse pointer movements when Enhance pointer precision is OFF, are now scaled according to the per-monitor scaling of items setting.

When Enhance pointer precision is OFF, and the Control Panel pointer speed slider is set to 6/11, MouseMovementRecorder will NOW (as of the latest version) not show all-black, exact 1-to-1, but instead Pointer Movement will be multiplied by the same scaling factor applied to text, apps and other items. (It will display much red.)

If you are not using DPI = 100%, that will be what is happening to you.

At the moment, the only fix I know of is to use my Fix and Enhance pointer precision set to ON.
I wouldn't worry about having to have Enhance pointer precision ON, because with my fix applied, mouse behaviour is exactly exactly the same as the old Enhance pointer precision OFF.

Microsoft may have a registry setting to turn the new scaling off, but I haven't looked yet.

To be sure you are experiencing what I suggest, can you upload a picture of MouseMovementRecorder somewhere?

Anonymous said...

Hi Mark,

i hope u can help me up with this.

I played a game called Battlefield 2142 on Windows Xp. With 75hz Monitor refresh rate and 125hz on my mouse. I believe this games turns Windows acceleration automatically on.

Now iam trying to copy my old settings to Windows 10. So my main question is can i get the same Windows xp acceleration to Windows 10?

I also tried back in those days your mousefix on Win7 with this game without changes so maybe this game just has inbuild acceleration.?.?.

Thanks for answer

Anonymous said...

sorry for double post Mark but here are some more informations:

in xp i used 125hz and 1360dpi on my mouse and 75hz on monitor

on win10 i use 500hz and 800dpi and 240hz on monitor

Rogério said...

First of all, hello to everybody!

Second thing, hey Mark i just want to thank you for all your help to the community for free!

Third, please help me man! hehehehe

I've used to play CS 1.6 for a long time, and those are were my settings:

CS 1.6
Windows: 6/11 - Default
Enhance pointer precision: OFF
With CPL MOUSE FIX
Launch Options: -noforcemparms -noforcemaccel -freq 100
Monitor Refresh Rate: 100hz (OLD CRT MONITORS)
Mouse Rate: 500hz (with HIDUSBF)
Sensitivity in game: 3.6
Mouse: Intellimouse Explorer 3.0
Res: 640x480

With this configuration i've had a great experience playing cs 1.6, absolutely perfect control.

So, recently i've started to play CS:GO, and i just love the game, but it seens to be unplayable how it is.

I've tryied a lot of things, to set up like the CS 1.6 but i've fail, and i just can't get the same mouse movement feeling, even on the desktop!!! Loosing all the control of the crosshair.

Is there anything that you would recommend me to try to set the mouse feeling like the settings i've used to play on CS 1.6?

Anyway, just want to thank you already. Regards!

By the way, those are my settings right now:

Windows: 6/11 - Default
Enhance pointer precision: OFF
With your fix!
Launch Options: -novid -refresh 144 -tickrate 128
m_rawinput 0! (with 1 i've got a weird mouse feeling like the moovement on the horizontal its a little bit faster than the vertical moovement). PS: Even with the last Windows10 update (1709 - 106299.248) my raw 0 input still not fix, the crosshair still moves alone.
Monitor Refresh Rate: 144hz
Res: 1280x960
Mouse: Zowie EC1-A with 500hz
Monitor: Benq XL2411 playing on 144hz
Still using the same sensitivity in game: 3.6

Thanks already!

Unknown said...

Hi Mark, I have a bit of an Issue.
I have downloaded this fix and it doesn't seem to be working at all. I have the mouse slider at 6/11 and the Highest polling rates I can but I can't get 1-1 mouse movement at all. Nothing I do seems to be working. It would be greatly appreciated if you have any suggestions. Thanks in advance!

Unknown said...

I know its rare, but I was used to play cs 1.6 in with mouse unfix in the windows xp/windows 7.
Recently I’ve installed csgo on windows 10, and im having problems to play with this new mouse standard configuration.
Is there any way to emulate the conditions that I was used to play cs 1.6 (mouse unfix winxp/win 7) but in csgo on windows 10?

Anonymous said...

https://github.com/TemporaryName/PointerSpeedSetter/releases

Unknown said...

But I don't know which parameters to use.

Vigabrand said...

WARNING!

THIS PROGRAM DESTROYED MY WINDOWS INSTALLATION! BLUESCREEN ON ANY INPUT, EVEN IN SAFE MODE!!!!

USE AT YOUR OWN RISK!

Unknown said...


Hello,

I use for many years the mouse fix. I've been using the DPI AWARENESS enabler software for a while and it looks like this one is creating a conflict. When I use MouseMovement, I am no longer in 1-1 despite using the fix. Can you help me ?

Anonymous said...

Love you man..
its working perfectly. i can feel the difference now. windows 10 had some default acceleration which cannot be turned off by turning "Enhance pointer precision" off. After your fix its completely off.
God bless you!

Anonymous said...

thats what i get for tryin to play a 20 year old game*mohaa* xD .Was trying to turn the player and it was doing 180ish degrees fast and the rest were super slow-mo.
Ty you very much my friend!

Anonymous said...

^ In short ===> Works nicely for mohaa

Anonymous said...

Thank you so much! I have had this issue on mw1, mw2 and mw3. I didn't know it had to do with acceleration at first so I didn't find this fix for years.

Unknown said...

Can i use CPL fix on w7 or is it only xp? Wanted to try this fix, but xp no longer supported. :(

Rodney Stanger said...

It definitely works on the welcome screen where the acceleration is completely off.
But can you explain more on what exactly happens?
If a game turns the acceleration in windows on by itself THEN will this fix kick in?
Because i still feel the acceleration if i tick the box "enhance pointer precision" with this fix applied. (I'm on Windows 10)

Mark Cranness said...

Hi Rodney,

Windows uses separate mouse settings when on the welcome screen. The REG fix turns 'Enhance pointer precision' OFF when on the welcome screen, so there is no accel.
(The turns it off on the Welcome screen to avoid a very small problem caused by rounding.)

My fix works by changing how Windows mouse response works when 'Enhance pointer precision' is ON, so that it works the same as when 'Enhance pointer precision' is OFF.

To check that accel is still turned off when 'Enhance pointer precision' is turned ON, use the MouseMovementRecorder program, see instructions in my main blog, search for "If you want, you can set the Control Panel 'pointer speed' slider set to the 6th, middle position and run the MouseMovementRecorder.exe program..."

Mark Cranness said...

> Can i use CPL fix on w7 or is it only xp? Wanted to try this fix, but xp no longer supported. :(

You can use the CPL fix, and it will remove all accel, but it doesn't give you exact 1-to-1 response. Not having exact 1-to-1 is a very small effect, and you probably would not ever notice, but why not have exact 1-to-1?

Mark Cranness said...

> THIS PROGRAM DESTROYED MY WINDOWS INSTALLATION! BLUESCREEN ON ANY INPUT

I am very, very sorry that this happened to you.

This is true: Some of the 'Emulate Windows 2000 Acceleration' and 'Emulate Windows 95+98 Acceleration' fixes did cause Windows 10 (recent version, 64-bit) to 'bluescreen' / bugcheck.

I was told about this problem earlier, and confirmed it myself, but did not immediately fix it. I'm sorry.

I have since removed the bad 'Emulate Windows ...' fixes.

Ideally, I'd like to talk to someone at Microsoft about this, so the Emulate fixes do not cause Windows 10 to bugcheck, but I don't know how to contact the right people at MS.

Willl said...

Hi.


In control panel/ mouse win7, solely all slider positions apart from 6th just multiplies/ divides input & no acceleration?

Mark Cranness said...

> all slider positions apart from 6th just multiplies/ divides input & no acceleration?

Yes, that's right, none of the slider positions have Acceleration.

Willl said...

Thx very much.

mbb said...

Hi im wondering about weather cod2 needs this fix. having used mousefix.exe for xp and markc for allong time now after thinking cod2 has no direct input. i completley forgot about the in_mouse command from cod / quake thats exists in cod2. with the variables being 0 and 1 with it set to 1 as default. im not sure what the variables are as it seems to be different in differnt quakes/cod's.

Mark Cranness said...

Hi mbb,
I'm also not sure what the no_mouse values are. In one version of Quake 3 I just looked at, 1 was DirectInput, -1 was old style mouse position scraping (with the the invisible mouse pointer re-centred), and 0 was no mouse at all (?)
A forum post said 2 was Raw Input for some later game engines.

It appears that the Quake 3 Arena engine, which DoD2 is evolved from, does NOT need a mouse fix.

It will only have Windows Control Panel Accel if you yourself set Enhance pointer precision to ON AND ALSO use in_mouse -1.

s1nkzera said...

I wanted to know how I can by the vbs script make a custom sens with my 1000 dpi pointer as 1000 pointer as if it were with 1-1 pixels and jumping from 50 in 50 dpi - example 11/11 1.0 10/11 950 9/11 900 8/11 850 etc .... up to 400 dpi or it can be if not 1000 to 400 can be 800-11 \ 11 to 400-1 \ 1 I want to have 400 dpi 450 500 550 600 and 800 preferably so I want to jump in 50 in 50 pixels but I can not do already tried several numbers I do not know the calculation as does my mouse and 1000 dpi!
If you do not understand, ask him!

Mark Cranness said...

> s1nkzera … custom sens

Hi, My script can't change the sensitivity based on what 1/11 thru 11/11 setting you use.

The REG files my script creates mostly have a single constant sensitivity, except you can have a single step up to another higher sensitivity if you move the mouse fast enough.

I am not sure I have understood what you would like to do.

s1nkzera said...

I get boot 0.4 scale sensisitivy factor what it is like 400 dpi in scipt vbs on any windows mouse pointer 8.1 with my mouse 1000 dpi 1 \ 20 (EPP ON) yes! Yes but wanted to build a REG with 20 \ 20 different from the EPP multiplier on windows that is 2.0 (20 \ 20) correct and different from the 10 \ 20 multiplier that is 1.0 ok? As if it were the mouse fix its to windows 8.1 linear so that with 0.400 scale sensitivy for any pointer (as if it were 400 dpi) and in the 20 \ 20 the limit where it ends with 0.800 scale sensitivy factor (as if it were 800dpi) and that each pointer skips from 0.025 scale sensitivy (25 dpi): example 800 775 750 725 700 to 400! Understand Thank you! for the attention
(I have the Point Speed Setter to set Odd Pointers as 1.3 that is not possible on Windows!)

s1nkzera said...

If it is not possible to modify windows 8.1 EPP multiplier ON it wanted to be even modified over Windows which is max 2.0 EPP on changing the sensitivy scale as it said 20 \ 20 to 0.800 scale factor sensitivy (800 dpi) and that was any other pointer with 0.400 scale senstivity (400) dpi !!
I've tried several but I do not know the formula to boot as I want! I read the theresold acceleration readme and nothing!
my mouse is 1000 dpi!

Anonymous said...

can i enabel mouse raw input in windows?


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

Mark.Please
M_rawinput 1 without noforce commands OR m_rawinput 1 with -noforcemspd -noforcemaccel(cs 1.6)

Unknown said...

hello, i already used this fix. but i still feel that my mouse is blow away when im playing cs 1.6. but other game doesnt. example pubg,csgo (even m_Rawinput 0). im using windows 10 btw. i already try to install other cs 1.6 , still no effect at all (no steam users). what should i do ? whats the problem btw ? try to input -noforcemparms -noforcemaccel -noforcemspd still doesnt matter. thx btw

Anonymous said...

is posibble to activate raw mouse input in windows?

artins90 said...

Hi Mark,

I am trying to get 1 to 1 mouse movement on a 4K screen with 150% scaling.
I used the reg fix builder with proper settings (Win10, 6/11, 150%, 1 to 1).
Sadly the mouse recorder tool is not reporting 1 to 1 movement after applying the reg fix.
What's strange is that 4/11 and any slider setting lower than 4/11 is reporting 1 to 1 tracking.
I took a short clip: https://youtu.be/txUdDhv9BaA

Is this behavious expected?
The mouse feels a bit faster, or floaty if you will, than what it felt like on my old 1080p screen.
It's a G Pro set to 800 dpi, the screen is 60Hz.

Bon said...

Hello Mark,

Thank you for this software. I am currently using it on a 3200x1800 pixel display with 250 percent scaling. The registry edits work fine so far, but I have issues with the included precision trackpad. Acceleration for the trackpad is now disabled, and even at the fastest setting, it's still very slow. Is there any way to change the acceleration to not apply to precision touchpads?

alecks said...

Hi Mark!

Are there differences between windows 10 acceleration and windows 7 acceleration?

If I am on a windows 10 machine and i want windows 7 acceleration, could i just apply windows 7 default acceleration to achieve this result?

I've tried it but it feels different for different computers, so I'm not sure if i have some settings error or it's just in my head.

Anonymous said...

does cheese mouse fix can remove mouse accel from windows 10?


wKS said...

When you apply the fix through signing out it feels different in game to when you restart. Why is this.

Anonymous said...

Hi, Mark.
My system win7.

I have a quastion: why for SmoothX, you choose K*41943/65536, where K = 16, but not K=15 for example?

Anonymous said...

hello i see your link to the download on google has stopped working please fix :) ty

Mark Cranness said...

> ...link to the download on google has stopped

Yes, as the post said, someone had claimed a DMCA against the google link, and you had to use the mirror @ onedrive.
I've removed the old link and pointed it to onedrive.

Anonymous said...

@mark im getting a timeout straight away from googledrive site ;( any ideas mate

Mark Cranness said...

> getting a timeout straight away from googledrive site

Do you mean you are getting a timeout from the onedrive.com link?

DLCI said...

Hey Mark, I'm trying to come up with a fix for windows 10 that will disable system-DPI scaling on input device movement.

I've identified several registry keys that seem to correspond to the functions of DWM that scale mouse input by desktop/system dpi settings, and by making some edits, it seems to maintain the same 96 dpi input response regardless of the desktop settings.

However, I've run into a couple of problems that I was hoping you could help explain.

First, changing system-DPI scaling seems to alter mouse movement within programs that are supposed to be using raw input. My understanding was that the application that registers the raw-input device is supposed to receive the data directly from WM_input, bypassing the OS window manager. The Microsoft documentation is a little vague on this.

As I was trying to figure this out, it occurred to me that different application-DPI awareness levels do indeed seem to change mouse-input even for raw input applications, i.e. "per-monitor" can have a different response than "unaware" or "system". This is something I think most of us take for granted, despite that fact that it doesn't make much sense.

Does this mean that the windows 10 DWM is altering the raw I/O buffered arrays before they are read by the application? Wouldn't that mean that there is no real "raw input" using this OS?

Second, setting aside that question for now, I was trying to find some way to test and verify that the edits do indeed have the desired effect, but the only program I know that reads this data directly from the mouse, your mouse-movementrecorder, seems to give me the same red/green mismatch sequences regardless of how I have the system/desktop-DPI configured.

What does this mean? I had thought that program's catchup system was masking the DWM dpi-based adjustments that are made as it gets passed through, is this not the case?

Mark Cranness said...

Hi DLCI,

> ...changing system-DPI scaling seems to alter mouse movement within programs that are supposed to be using raw input.

I don't know for sure if programs using Raw Input are supposed to get actual unscaled raw input or not, but would expect the program's DPI awareness setting to affect it, as you noted:
Programs that are not DPI Aware likely get scaled mouse input, even when using Raw Input.

Yes, I think that means there is no real Raw Input, unless the program (game) is DPI Aware.

MouseMovementRecorder.exe is per-monitor-v1 DPI Aware, but is not per-monitor-v2 DPI Aware.
I think I may have tested this and decided that v2 gave no benefit, but that might not be correct.

Perhaps can you also try this version:
https://1drv.ms/u/s!AhJXs873opYDmWaubWJK6CQW55g4?e=LQcYt5
... which should be per-monitor-v2 aware, in case that has any difference?
(It might not have any difference)

The catchup system will not mask any scaling that Windows would apply.

Catchup only tries to fix problems caused by the timing of the mouse movement: It can happen that MMR see mouse movement via Direct Input, but the on-screen pointer position has not yet been updated. So rather than report a mis-match, MMR waits a short while to see if the pointer position does change, so it can show a match if possible.

DLCI said...

Hey, thanks a lot Mark, I appreciate the prompt response!

That actually helps to explain a lot of what I have been seeing. If raw-input does indeed get DPI scaling applied to it, which it seems like it does, this is a bigger problem than I realized.

Regarding the catchup system, I know it has to do with the timing, but I read several pages back when you mentioned the desktop DPI scaling and how it relates to an inconsistency with the MMR measurements. When I set MMR to no-catchup, I get a lot of red/green mismatch like I mentioned, but when I then switch it to dpi-unaware mode, the mismatches stop. This may have been the source of my confusion. Can you think of any reason why this would be happening?

In case you are interested, maybe I should explain the reason why I am working on this. There is a bug in the windows 10 DPI scaling only seen in fullscreen-exclusive games when you have a multi-monitor setup that uses different resolution/dpi monitors. The bug produces an intermittent shift in input response most noticable when moving your mouse in the direction of the secondary monitor's position on the combined virtual desktop. The result is the mouse will abruptly begin to move faster/farther than expected. It seems to be present with any asymmetric dpi or resolution setup, but is worst when a 1920x1080 96 dpi primary monitor is combined with a 4k or larger monitor using >96 dpi as the secondary.

My suspicion is that DWM renders your cursor invisibly over the virtual desktop while you are in a game; it simply disables any click events that occur to keep you from minimizing to windows. Since many FPS games typically re-center your invisible cursor after every input update, my functional hypothesis is that the shift occurs with a rapid motion that moves far enough to cross the border between "monitor-spaces" on the virtual desktop before it can be re-centered. So when you cross that border, DWM will immediately apply the other monitor's dpi scaling to the rest of the input motion.

Unfortunately, since windows/DWM has it's own internal scaling that references the detected physical monitor DPI in addition to system DPI settings, a 4k resolution monitor at 100% or 96 dpi will still have slightly different scaling than a 1080 monitor at 96dpi, and there doesn't seem to be any way to disable this discrepancy through regular desktop or control panel settings. Worse, unplugging the secondary monitor also doesn't seem to fix it, since windows 10 maintains past monitor information in the registry and apparently uses the maximum virtual desktop setup that has ever been configured on a user's account.

You might be skeptical, but honestly this took me a very long time to determine the exact cause of this intermittent behavior, and I am fairly confident that it is not a unique problem; many people with similar setups may simply not be aware of it since it only happens under specific circumstances.

As it stands now I believe I have developed a working fix through a combination of added/modified registry keys that disable both DPI scaling and DWM-input processing, I've simply run into the problem of testing and verification. All I have right now are my own results I can subjectively interpret from performance data in a program like aim-lab. They show a consistent improvement in overall scores that is significant enough for me to rule out any kind of normal random variations in performance.

While convincing, it is still open to interpretation, so I was hoping for more objective verification: hence my interest in MMR as a tool. If you have any ideas, any help you can provide would be greatly appreciated.

Mark Cranness said...

Hi DLCI,

> When I set MMR to no-catchup, I get a lot of red/green mismatch like I mentioned, but when I then switch it to dpi-unaware mode, the mismatches stop

... Hmm, if you set it to catchup, and the red-green goes away, then my guess is this:
No catch-up and DPI-aware: Windows assumes MMR knows what it is doing with raw mouse, and quickly sends raw mouse input, which sometimes has a timing difference: MMR show red and green unless in catchup.
No catch-up and DPI-Unaware: Windows assumes MMR needs scaling, and takes more care to ensure that scaling of mouse input and moving the mouse pointer is more coordinated, which happens to make the timing tighter, and no red-green?

It's been a while since I last ran MMR myself to see what it looks like on recent Windows 10, and I'm surprised at what a bad job Windows does in coordinating the mouse input and the pointer position when catchup is off (at least on my PC).
So catchup off on my PC is mostly red and green.
With catchup ON, I do see that DPI-Unaware has no red or green, but Per Monitor DPI aware does show some red and green, just as you note.

Perhaps try + command until the delay is 8000us, and the and S command to show the waiting.
With Per Monitor DPI aware I see occasional catchup delays of 2000us at times.

I suppose you are tweaking the AppCompatFlags\Layers settings in the registry for the game exe files?

https://superuser.com/questions/1230346/overriding-high-dpi-scaling-from-the-command-line

Previously, I discovered that you can do this temporarily with a CMD file (for testing) rather than registry settings:
Create a batch file "Run game.cmd", containing this:

set __COMPAT_LAYER=HighDpiAware
{Program exe here}

The __COMPAT_LAYER environment variable applies the "HighDpiAware" Application Compatibility shim to whatever is run next.

Your theory that a large movement has the mouse pointer off the edge of the main high DPI screen and into the neighbouring low DPI display, that sounds very likely.

I have a utility: PointerPositionRecorder.exe: https://1drv.ms/u/s!AhJXs873opYDmWcpeAChRTPBvA0v?e=eyGVFD

Try that while the game is running.
Every 1 second, it crudely dumps out a page of pointer position bucket counts, that show how many times the mouse moved and the pointer position was in a particular position.
It also shows the min and max X and Y pointer positions seen.
Of course the game re-centreing may prevent PointerPositionRecorder.exe seeing where the pointer gets to, depending on whether the game sees the movement and re-centres the pointer first, or if PointerPositionRecorder.exe sees it first.
If PointerPositionRecorder.exe shows that the pointer has (with a quick mouse movement) appeared off the edge of the main screen, that would be confirmation of your theory.

ERYC said...

Hi Mark, I recently bought the T-dagger detective mouse, when I use a movement recorder the answer is 1/1, but it doesn't turn green, when I put the mouse fix, it turns green.
can you tell me if this acceleration "error" still continues even today?

ERYC said...

One of the things I realized is that when you move the mouse to the ends of the screen, they are completely green, and one of the things that I realized is that the mouse movement is never 0/0

https://imgur.com/a/eUOcfaS

Mark Cranness said...

Hi ERYC,

Exact 1-to-1 shows as white numbers on a black background.

Green doesn't mean "good"/OK/working:
Green means NOT exact 1-to-1 and the pointer number is smaller than the mouse number.
Red means NOT exact 1-to-1 and the pointer number is larger than the mouse number.

Even when you do have 1-to-1, there can be occasional green or red; the mostly black with the occasional green or red means still means 1-to-1.

Yes, as you note, with the pointer at the edge of the screen, the pointer can't move past the edge, and the pointer movement numbers are always smaller than the mouse movement number and it always show green.

DLCI said...

Hey Mark,

About the compatability flags: believe me, if it was as easy as simply setting the dpiawareness or perprocess appcompatlayers flags, I wouldn't have needed to go to all the trouble of trying to forcibly disable DPI scaling. The problem I have found is that it seems to work great, exactly as expected for some games, somewhat as expected for others, and for some, it doesn't seem to work at all. I was a bit puzzled by this behavior at first until I checked what the task manager was reporting for dpi awareness and discovered that the exact same combination of flags can result in different awareness states. For example, [PERPROCESSSYSTEMDPIFORCEON HIGHDPIAWARE] can set "per monitor" or "system" depending on the game. In addition to that, some games with the same awareness can have a different feel to the input for some unknown reason.

I think it comes down to how the app is written to respond to non-standard DPI values. I suspect in some cases where the code does not account for DPI scaling, or where it only goes off the basic 96/125/144 scaling (rather than physical monitor PPI), it simply hands it back to DWM and lets windows take care of it. I don't have any proof of this outside of my own observations that two games with no flags enabled can feel the same inputwise and then feel moderately different when using the same set of flags, so this is mostly conjecture on my part.

Unfortunately I have come across another problem that has me stumped. While the registry edits to disable DPI scaling I have made do seem to totally resolve the issue and significantly improve the way the mouse feels in a multi-monitor environment, it ALSO seems to improve the responsiveness significantly in a single monitor 96 dpi environment. Which makes absolutely no sense, and I cannot even begin to explain.

Either there are even more hidden registry entries for the virtual desktop settings than the ones I know about, or there is actually some deep and fundamental flaw in how the windows 10 DWM handles supposedly standard 96 dpi input. Could it actually be applying scaling to the BASE input, in ALL situations? That's a disturbing thought. It would certainly explain the inconsistency of the MMR output, though.

Maybe I could post the fix as I currently have it? If you can spare the time to give me your impressions, your feedback would help me a lot. Either way, I do appreciate the help you have already given me.

João said...

Hello Mark, whenever I use the mouse movement recorder he shows me that with EnPtPr on there is no green line but when I turn it off, as recommended, several green and red lines appear, I tried everything, if you could help me ...

By the way my mouse is a razer deatheader elite and my windows is 10

João said...

Hello Mark, whenever I use the mouse movement recorder he shows me that with EnPtPr on there is no green line but when I turn it off, as recommended, several green and red lines appear, I tried everything, if you could help me ...

By the way my mouse is a razer deatheader elite and my windows is 10

DLCI said...

I still haven't managed to deduce why disabling DPI scaling seems to result in an improvement in mouse function on a stock standard single monitor 1080 96 dpi setup, but I think I have isolated the specific setting responsible for the change in performance in both setups.

under
HKEY_CURRENT_USER\Control Panel\Desktop
there is by default
"DpiScalingVer"=dword:00001000

as part of the fix to disable dpi scaling and using a reference I found which suggested some multi-monitor issues can be resolved by duplicating the setting to the system profile
I tried adding this to
HKEY_USERS\.DEFAULT\Control Panel\Desktop
using the same decimal value of 4096

This didn't seem to help much. I found another reference that suggested this actually controls the base setting when win8dpiscaling, the global dpi setting is enabled, for scaling purposes I imagine. So I experimented with it and set it to 0 under both current user and .default. This required the addition of a cmd to shell:startup since it resets to 4096 every time you reboot. Not long after I made this change was when I noticed the significant performance improvement in both mouse function and precision.

After doing some testing of all the registry changes, I have isolated this single change as the one that seems to improve functionality in both single monitor and multi-monitor setups.

Disabling "DWMinputprocessing" (defaults to 7) under
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
and
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Windows
actually seems to have a detrimental effect when
DPIscaling is also disabled under
HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM
for unknown reasons.

Disabling either DPIscaling or DWMinputprocessing individually seems to resolve the multi-monitor issue, so long as both are not disabled at the same time.

So while I have resolved one issue, the question now becomes what exactly the DPIScalingVer setting is doing, why does it default to a value that seems to function considerably worse, and why does changing it from 4096 to 0 under both current user and .default user result in such a noticable improvement?

I attempted to make the same registry changes to "DpiScalingVer" on another device running windows 10 and immediately noticed an identical and drastic improvement in mouse performance, and since the device is a laptop that has never had a secondary monitor attached, it is apparently unrelated to the original issue I intended to fix. It feels a great deal more like windows 7 did.

I am at a total loss to explain this, and cannot find any documentation anywhere. I do know that changing the bits corresponding to (4)096 to a value like (4)144 produces a change equivalent to what you would expect changing from 100% dpi to 150% dpi. But why does setting it to 0 improve input performance? Why does it need to be present in both current_user and .default? The only conclusion I can draw that makes any sense is that windows 10 really is scaling all input at the base level to some artificial value that presumably introduces rounding errors. And by disabling this, you are actually achieving legitimately "raw input". That's the best I can come up with, I am a bit out of my depth at this point.

I seem to have discovered, completely by accident, something that might be very big. I know you are probably very busy and only check this blog once in a while, but if you have the time, I could really use your expertise on this Mark.

João said...


OK I'm just a 15 year old guy who wanted to solve this acceleration problem and I am very confused by all of this.
If we could both go on a discord call to help me and make things easier it would be great.

Here is my discord

JBgamerPT # 5510

João said...

I really need your help im so confuse.

João said...

I'm so confused yet that I couldn't solve the acceleration error when it is disabled and I'm tired of searching and testing and can't solve it.
The way you suggested changing the value of DpiScalingVer to 0, I still haven't managed it since every time I restart the PC it returns to the initial value and I don't know anything about cmd codes.
I'm so tired of looking, I really need help.

DLCI said...

What I am trying to discuss with Mark is something that is still very much in the experimental phase and is really not something you want to mess around with if you don't know what you are doing.

At this point I still don't have proof it actually works better when configured like I have described and I think it is a very bad idea to experiment with it if you aren't experienced at manipulating the registry or core operating system settings.

If and when I manage to prove it is safe and works better when configured this way I will include the autorun startup cmd that would set it to the correct value on reboot in any kind of fix that would be posted, but we're a long way away from getting to that stage.

Seriously, please don't try to copy these tweaks if you aren't familiar with it, you could very easily mess up your system and there's a reason it is all still a theory. I don't actually know that it works the way I think it does yet.

João said...

OK so I'll be waiting.
I just wonder how long it would take to get ready.
Just for curiosity...

DLCI said...

Hey Mark,

I found something on the microsoft dev center that may provide a few clues about my observations.

https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-improvements-for-desktop-applications?redirectedfrom=MSDN

Starting with windows 10 version 1607, applications can actually change the DPI reference dynamically using mixed-mode dpi scaling. There is a default process DPI value, but then individual process threads can create separate sub-thread dpi values, and the frame of reference can essentially be different for multiple threads running on the same process. This definitely confirms my suspicion that the "DPI awareness" setting listed by task manager may not have anything to do with the DPI scaling used by the process or thread specific input handler.

In theory, a developer could set a per-monitor dpi scaling level that relates to the game's main menu or splash screen, but then hook a totally different dpi context when calling WM_input. Since according to this, the app-compatability flags can only change the process default DPI awareness/scaling, it would be entirely plausible that for some games it would actually have no effect on the mouse input itself.

It sounds like the only way to achieve any kind of stability/consistency between different games is to force 96 dpi, set dpi to unaware, and disable mixed-mode dpi scaling. This last part may actually be what forcing the DPIScalingVer value to 0 does! Since it has to be done at both the system level and the user level, it would explain why it seems to require setting this is users\.Default as well.

Some of the implications of the architecture microsoft has developed seem a little frightening, too, since it all happens behind the scenes, none of it seems to share any of the mixed-mode information with the user, and it can radically alter the way that dpi-dependent input is processed. For example, I found one function that describes "non-client dpi scaling" that scales the non-client portions of the top level window. Given the way that windows 10 renders the virtual desktop and maintains this virtual space as a reference point for thread specific absolute-input calls, it almost seems impossible to get any kind of consistency for mouse input using this model.

Worse, per-monitor DPI scaling is subject to not only physical (raw) DPI calculations called by windows, it looks like it defaults to "effective DPI" which scales the raw dpi value of the monitor's PPI by a system scale factor. Per-monitor DPI was SUPPOSED to be something that prevents the system from scaling anything behind the scenes, which it did up to windows 8.1, but it doesn't look like that's how it works anymore.

Honestly, what were they thinking with any of this? The more of these MSDN docs I sift through, the more certain I am that any serious gamer should just hard-disable this nonsense because there is absolutely no way to get any kind of input consistency otherwise.

João said...

So what I realized the solution is to change the value of DpiScalingVer to 0.
But how to do that?

João said...

hello, any news about the correction?

João said...

hello, any news about the correction?

DLCI said...

Well, after doing some more reading and measuring my own performance in several games over the last month, I think I can safely say at this point that it is indeed an improvement. I still don't know exactly WHY it works, but I have a decent theory and enough data suggesting a general increase
in performance consistent that I can rule out placebo or the normal short term variations in performance that happen week to week.

If I don't hear back from Mark I think I will probably try to throw together a DPI-scaling-fix patch to upload on ESreality in the next couple weeks to get some feedback from people willing to help me test it. It will take me a little time to compile all the various registry edits I have tested into a form that doesn't include anything unnecessary and backs up your existing settings.

João said...

ok, thanks

João said...

hello, any news about the correction?

João said...

hello, any news about the correction?

João said...

hello, any news about the correction

João said...

hello, any news about the correction

João said...

hello, any news about the correction

΅¬Fivk¬΅ said...

Hi.




i.

"

Some older games, such as Half-Life 1, Counter-Strike 1.x, Quake, Quake 2, Unreal and others, while they are active and running, call a Windows function intending to disable variable mouse acceleration by forcing ALL movement to be accelerated by the same amount (doubled).

"


Do you know " ( doubled) " what?




ii. Do you know the exact configuration to replicate i. ( their specific linear acceleration) ?



iii. If yes, could you pls pls make a win10 exact replica setting for i. , as I may aim better?

΅¬Fivk¬΅ said...

iii. * in CS: GO?

«Oldest ‹Older   601 – 731 of 731   Newer› Newest»