Jump to content

Any way to cannibalize the Windows 2000 mouse driver?


WinWin

Recommended Posts

I wonder if it's possible to recreate this curve.

Yes it is possible.

More or less exactly if you used to use Windows 2000 "Low" accel, but only somewhat approximately if you used to use Medium or High.

Do you remember what W2K setting you had?

And what settings do you have now (OS/Refresh rate/Mouse polling rate/Text Size)?

(If you run the MarkC Windows 7 + Vista + XP Mouse Acceleration Fix Builder, and accept the default values, your current setup will be in the .REG filename created, just also tell me your polling rate.)

Hi Mark,

I used "low" setting in windows 2000. As described in this thread I have just been trying to achieve the simple doubling of mouse movement once passing a threshold (I think the threshold for 'low' setting was 6?) with no variable acceleration. Just a straight linear doubling. Unfortunately this has been impossible since XP.

Currently I have win7x64, 60hz refresh rate, 500hz mouse polling rate...um text size? whatever default is..not sure what that means. Resolution 1680x1050 but I do run dual monitors. I'm pretty sure back on windows 2000 I used a 125 hz polling rate. I'm willing to learn how to do this myself as I've read some of your other threads..just not sure how to do a simple doubling.

Link to comment
Share on other sites


OK, FWIW, the only entries in "HKCU\Control Panel\Mouse" in my Win2k3 is "ActiveWindowTracking" (dword=x0)

Slider is centered and Enhanced Pointer Precision is ticked. (USB Wireless Logitech)

One might wonder... why the "Smooth..." entries don't exist?

Side note: My XP, however DOES have these entries and more (as per articles).

Significant or not?

Link to comment
Share on other sites

Hi Mark,

I used "low" setting in windows 2000. As described in this thread I have just been trying to achieve the simple doubling of mouse movement once passing a threshold (I think the threshold for 'low' setting was 6?) with no variable acceleration. Just a straight linear doubling. Unfortunately this has been impossible since XP.

Currently I have win7x64, 60hz refresh rate, 500hz mouse polling rate...um text size? whatever default is..not sure what that means. Resolution 1680x1050 but I do run dual monitors. I'm pretty sure back on windows 2000 I used a 125 hz polling rate. I'm willing to learn how to do this myself as I've read some of your other threads..just not sure how to do a simple doubling.

Try this:

Windows7_MouseFix_TextSize(DPI)=100%_Scale=1-to-1(2-to-1@2.7)_@6-of-11.reg

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Mouse]

"MouseSpeed"="1"
"MouseSensitivity"="10"
"SmoothMouseXCurve"=hex:\
00,00,00,00,00,00,00,00,\
00,c9,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,90,0c,00,00,00,00,00,\
00,00,00,00,00,00,00,00
"SmoothMouseYCurve"=hex:\
00,00,00,00,00,00,00,00,\
3c,4b,04,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
0b,67,89,00,00,00,00,00,\
00,00,00,00,00,00,00,00

NOTE TO OTHER PEOPLE: This approximates W2K Low accel ONLY FOR A 500Hz mouse. If anybody tries this but doesn't have a 500Hz mouse, it won't feel the same as W2K Low accel.

On Windows 2000 Server, Low was a threshold1 of 7, and I'm assuming that W2K Pro would be the same. mouse movements 1 thru 7 were 1-to-1, 8 and over were doubled.

Since you have a 500Hz mouse, the counts that Windows sees are divided by 4 (only 1/4 of the time to accumulate counts when polling at 4 times the rate.

So a stream of movements of 8 will now be a stream of movements of 2.

The above curve applies 1-to-1 up to 2.75 counts per movement, then doubled after that. Because of the smooth curve, the transition between 2 counts and 3 counts will not be exactly abrupt like in W2K: 2 counts might sometimes map to × 1.5 if the previous movement was 3.

It might feel like your old W2K, or it might not, because you might have gotten used to Windows 7 now. If your new mouse has a different DPI than the old, you may now move the mouse slower than you used to, or faster etc.

Let me know how it feels. Give it a try for a while. It needs EPP ON to work.

The magic numbers are:

The SmoothX and Y numbers are nominally speeds in inches/sec, multiplied by 65536 (to give a whole number).

Curve segment 1 has SmoothX = C900 (=51456), divided by 65536 = 0.785 inches/sec = 2.748 mouse counts per poll.

The conversion between SmoothX and mouse counts is buried deep within Windows, and uses this formula: SmoothX = mouse counts / 3.5

So to make a curve segment kick in at 5 counts per poll, SmoothX = 5/3.5 = 1.428, converted to fixed point hex = 1.428 * 65536 = 0x16DB6, which is stored as B6,6D,01

Smooth Y is set so that SmoothY / SmoothX × 96/150 / 3.5 = [required sensitivity], with some funky rounding going on.

For the first part of the curve, SmoothY = 0x044B3C (= 281404)

And then [required sensitivity] = 281404 / 51456 * 96/150 / 3.5 = 1.0

96 is not a constant, it is the Control Panel Text Size, 96 corresponds to Text Size = 100%. 150 and 3.5 are hard-coded constants.

I hope that's not too much info!

Link to comment
Share on other sites

OK, FWIW, the only entries in "HKCU\Control Panel\Mouse" in my Win2k3 is "ActiveWindowTracking" (dword=x0)

Slider is centered and Enhanced Pointer Precision is ticked. (USB Wireless Logitech)

One might wonder... why the "Smooth..." entries don't exist?

Side note: My XP, however DOES have these entries and more (as per articles).

Significant or not?

If the normal MouseSpeed, SmoothMouseXCurve, etc are missing, default values are used. The defaults are the same as the values normally present for XP.

If you go into control Panel and change the 'Enhance pointer precision', it should create a MouseSpeed option.

Link to comment
Share on other sites

  • 3 weeks later...

Tried that already, Just not the same.

I am not following you :unsure:.

The given article explains exactly HOW to do something.

You have to experiment.

Then you post the actual table that you generated (and does not feel "right" to you).

Then someone may (hopefully) find what is the problem with your data.

You will need to post also the various settings you have (like refresh rate, dpi, etc.)

OF COURSE you cannot use a 2K or XP driver on 7! :w00t:

jaclaz

Link to comment
Share on other sites

Well I wasted enough times on that, any accel curves combo I tried so far make it just not the same feels of the old Windows 2000,

The speed might be the same, but overall the feels is just a big different and not anyclose.

Hmmm, really cannot say, but set aside the specific issue, from a "mathematical standpoint" 5 x/y points should be enough to approximate *any* curve of this type :unsure: (or at least approximate them accurately enough).

Maybe you tested "wrong" curves (or you had not the "right tool" to create some). :whistle:

If I can find something to criticize :w00t: about the mentioned tutorial is that - while it explains very well the theory :thumbup , it completely lacks a "practical way" to test curves :ph34r: , and provides a "conversion/curve building" method that is needlessly complex.

I try (with the attached spreadsheet) to fill this gap ;) (you will need Excel).

No instructions, but once chosen your DPI in cell R20, besides changing values in cells P22:Q26 you can grab points in the graphic (the Magenta coloured line) and drag 'em around.

Then copy cells B18:B33 to a new. reg file and test the settings.

jaclaz

mouseaccel.zip

Edited by jaclaz
Link to comment
Share on other sites

Thank you jaclaz, I'm looking on it right now.

if I used to play with MouseThresHold1&2 where exactly I need to change if I want to get the same effect?

No idea, try re.reading this thread starting from:

and see if you can find a suitable setting.

The referenced MS article:

http://technet.microsoft.com/en-us/library/cc978664.aspx

seems to me clear enough, though I'll have to to re-read it and MarkTheC posts several time to be able to add a tentative to the spreadsheet. :unsure:

jaclaz

Link to comment
Share on other sites

I had a look at the issues, and found quite a bit of info :w00t:

There are a couple nice articles here:

http://www.codinghorror.com/blog/2007/04/mouse-dpi-and-usb-polling-rate.html

http://www.codinghorror.com/blog/2007/06/where-are-the-high-resolution-displays.html

http://www.codinghorror.com/blog/2007/10/mouse-ballistics.html

latter one misses some "key" images, taken from a MS article that was - obviously - lost somewhere in the cloud :( (but that is linked to by MarkTheC) the official MS term is "archived" ;)

http://donewmouseaccel.blogspot.it/2010/03/markc-windows-7-mouse-acceleration-fix.html

http://msdn.microsoft.com/en-us/windows/hardware/gg463319.aspx

The original MS article is however available through the Wayback Machine, even if some images are present in one version of the page and not in another, by "adding up these two":

http://web.archive.org/web/20041104014442/http://www.microsoft.com/whdc/device/input/pointer-bal.mspx?pf=true

http://web.archive.org/web/20071023210409/http://www.microsoft.com/whdc/device/input/pointer-bal.mspx?pf=true

The whole concept of "mickeys" is fascinating :unsure:

The codinghorror article links to a (lost ) mouse rate measurement tool that I anyway found ;) and that is attached (just in case).

And another interesting source:

http://www.cybergamer.org/forums/thread/260663/Mouse-Optimization-Guide:-Acceleration-Fix-and-Polling-Rate/

So, it seems that the matter is even more complex than what MarkTheC posted (a tip of the iceberg? :ph34r:) and it also seems that most of the 125 Hz vs 500 Hz poll rate is - to say the least - UNnonoticeable by any "normal" human being :unsure:.

It will take me some time to digest the infos (and hopefully understand them), in order to provide a "bettered" spreadsheet.

jaclaz

dx_mouse_timer_dialog.zip

Link to comment
Share on other sites

Thanks for everything jaclaz. Everything is alright using MarkC builder and finally got work well. :)

Thanks my sock! :realmad:

NOT only you are not going to post EXACTLY WHAT you did so that it could be useful to other people, but you also edited each and every of your posts :w00t: in such a way that most of the thread posts would lose significance :(.

Thank goodness I have the habit of quoting at least relevant parts :whistle: .

jaclaz

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...