MSFN Forum: Any way to cannibalize the Windows 2000 mouse driver? - MSFN Forum

Jump to content


  • 3 Pages +
  • 1
  • 2
  • 3
  • You cannot start a new topic
  • You cannot reply to this topic

Any way to cannibalize the Windows 2000 mouse driver? Rate Topic: -----

#1 User is offline   WinWin 

  • Group: Members
  • Posts: 9
  • Joined: 18-March 12
  • OS:Windows 2000 Professional
  • Country: Country Flag

Posted 18 March 2012 - 12:54 AM

I've been using Windows 2000 for over 10 years now and I've grown pretty accustomed to how the mouse behaves. There are gamers out there who have posted fixes all over the place for "mouse acceleration" removal from Windows XP, however the absence of all acceleration makes fine selection difficult or large sweeping motions to get the mouse across the screen. MS has had mouse acceleration built into all of their OSs and with each new one they changed it just a little. Just a little means using Windows XP to play games how I want is impossible. I either have to remove it all with a "fix" or live with how it is. Windows 2000 has it's own style and it's the one I've grown accustomed to and prefer. The problem is I can't replicate it on any other OS so I'm stuck using Windows 2000 if I want to play games how I wish.

So, I'm wondering, is there any way to copy over or replicate this portion of the OS so I can keep this behavior? I've tried doing things like copying over mouse.drv and msmouse.inf from the system folders but it seems to have no effect. Adusting SmoothMouseXYCurve values as shown here: http://www.sevenforu...ation-help.html could possible do it if you knew what each value on the graph did and the values it would take to make it like Windows 2000. There's a GUI interface for MAC http://www.orderedby...show=example017 that does this, but not for Windows.

Hopefully somebody reads this and can help find a solution for this years old problem.


#2 User is offline   blackwingcat 

  • Senior Member
  • PipPipPipPip
  • Group: Members
  • Posts: 584
  • Joined: 31-May 08
  • OS:Windows 2000 Professional
  • Country: Country Flag

Posted 18 March 2012 - 03:19 AM

I think the registry is referenced by win32k.sys.
There is no value in windows 2000, so you can't apply it with copy XP's binaries
(Don't copy XP's win32k.sys. It is different from XP's on with structure level)

View PostWinWin, on 18 March 2012 - 12:54 AM, said:

I've been using Windows 2000 for over 10 years now and I've grown pretty accustomed to how the mouse behaves. There are gamers out there who have posted fixes all over the place for "mouse acceleration" removal from Windows XP, however the absence of all acceleration makes fine selection difficult or large sweeping motions to get the mouse across the screen. MS has had mouse acceleration built into all of their OSs and with each new one they changed it just a little. Just a little means using Windows XP to play games how I want is impossible. I either have to remove it all with a "fix" or live with how it is. Windows 2000 has it's own style and it's the one I've grown accustomed to and prefer. The problem is I can't replicate it on any other OS so I'm stuck using Windows 2000 if I want to play games how I wish.

So, I'm wondering, is there any way to copy over or replicate this portion of the OS so I can keep this behavior? I've tried doing things like copying over mouse.drv and msmouse.inf from the system folders but it seems to have no effect. Adusting SmoothMouseXYCurve values as shown here: http://www.sevenforu...ation-help.html could possible do it if you knew what each value on the graph did and the values it would take to make it like Windows 2000. There's a GUI interface for MAC http://www.orderedby...show=example017 that does this, but not for Windows.

Hopefully somebody reads this and can help find a solution for this years old problem.


#3 User is offline   jaclaz 

  • The Finder
  • Group: Developers
  • Posts: 11,574
  • Joined: 23-July 04
  • OS:none specified
  • Country: Country Flag

Posted 18 March 2012 - 06:47 AM

View PostWinWin, on 18 March 2012 - 12:54 AM, said:

Adusting SmoothMouseXYCurve values as shown here: http://www.sevenforu...ation-help.html could possible do it if you knew what each value on the graph did and the values it would take to make it like Windows 2000.

Here is how it woks:
http://web.archive.o...inter-bal.mspx?
http://www.esreality...post&id=1945096
http://www.kotiposti...36961/WinAccel/
up to you to find the right settings (now that you know what each value mean)

jaclaz

#4 User is offline   WinWin 

  • Group: Members
  • Posts: 9
  • Joined: 18-March 12
  • OS:Windows 2000 Professional
  • Country: Country Flag

Posted 18 March 2012 - 07:19 AM

I remember trying a win32k.sys swap in an act of desperation and it didn't work out. By the way, I've read your blog and you have some great information there. Too bad I don't know Japanese that well and google translate only goes so far.

#5 User is offline   WinWin 

  • Group: Members
  • Posts: 9
  • Joined: 18-March 12
  • OS:Windows 2000 Professional
  • Country: Country Flag

Posted 18 March 2012 - 10:03 AM

thanks jaclaz. In one of those links, I found this: http://translate.goo...%2F&sl=ja&tl=en

Now to find a way to figure out about what the curves are in Windows 2000...

#6 User is offline   jaclaz 

  • The Finder
  • Group: Developers
  • Posts: 11,574
  • Joined: 23-July 04
  • OS:none specified
  • Country: Country Flag

Posted 18 March 2012 - 10:38 AM

View PostWinWin, on 18 March 2012 - 10:03 AM, said:

Now to find a way to figure out about what the curves are in Windows 2000...

NO idea. :no:
Unless this "Mouse Movement Recorder" thingy also works in 2K :unsure::
http://donewmouseaccel.blogspot.it/
http://donewmouseacc...ix-builder.html
http://donewmouseacc...ration-fix.html

jaclaz

This post has been edited by jaclaz: 18 March 2012 - 10:39 AM


#7 User is offline   Phenomic 

  • Member
  • PipPip
  • Group: Members
  • Posts: 231
  • Joined: 31-July 09
  • OS:none specified
  • Country: Country Flag

Posted 19 March 2012 - 02:31 PM

I too prefer win2k response/acceleration. You could try the Logitech or Microsoft drivers. Most intuitive of all pointing devices is the Wii Remote under Linux, but you can use the GlovePie driver in Win2000

This post has been edited by Phenomic: 19 March 2012 - 02:35 PM


#8 User is offline   MarktheC 

  • Newbie
  • Group: Members
  • Posts: 16
  • Joined: 04-April 12
  • OS:none specified
  • Country: Country Flag

Posted 04 April 2012 - 08:24 PM

Windows 2000 mouse accel is described here:
http://technet.micro...y/cc978664.aspx

... and here (excuse the translated Japanese and missing images):
http://translate.goo..._Mouse_Driv.htm

W2K (and prior) accel was a crude mechanism using 1 or two threshholds.

With no accel (MouseSpeed=0), mouse-to-pointer movement was 1-to-1.
With 1 threshhold accel (MouseSpeed=1), mouse-to-pointer movement was 1-to-1 below (or at) the threshhold, and doubled when the mouse moved faster than MouseThreshold1. No smoothing, just a sudden jump, doubling of pointer speed.
With 2 threshhold accel (MouseSpeed=2), mouse-to-pointer movement was 1-to-1 below (or at) the threshhold, and doubled when the mouse moved faster than MouseThreshold1 and quadrupled (×4) when faster than MouseThreshold2.

The values for the 3 settings (MouseSpeed, MouseThreshold1, MouseThreshold2) depended on which W2K pointer accel radio button was chosen (None, Low, Medium, High): http://ltxfaq.custhe...ues#Windows2000

If you still use a mouse polling rate of 125Hz (or use the same polling rate as you had on W2K), it is possible to quite closely emulate the W2K "Low" setting using a XP/Vista/7 SmoothMouse*Curve curve.
Ditto, it is possible to somewhat approximate the W2K Medium and High settings with an XP/Vista/7 curve.

Here is some XP/Vista curves that approximate the Windows 2000 "Low" accell curve:
http://www.gamefront...9___6_of_11_zip

When I have some free time, I may build some "Windows 2000"-like curves for Windows 7 also.

#9 User is offline   TheWalrus 

  • N.W.O.
  • PipPipPipPipPip
  • Group: Members
  • Posts: 911
  • Joined: 11-August 08
  • OS:Windows 7 x64
  • Country: Country Flag

Posted 05 April 2012 - 12:36 AM

Just out of curiosity, what is it that behaves SO differently that you can't switch from 2k to XP, which is almost obsolete already? I just kind of remembered how 2k was the first real OS I saw. Man I was so happy when I got used to it and realized how solid and great it was compared to the junk from before.




Anyway, I never noticed any differences in mouse behaviour in any Windows version, so I am kinda curious here.



#10 User is offline   jaclaz 

  • The Finder
  • Group: Developers
  • Posts: 11,574
  • Joined: 23-July 04
  • OS:none specified
  • Country: Country Flag

Posted 05 April 2012 - 04:33 AM

Forgot to say how in a completely unrelated experiment:
http://reboot.pro/3717/
I actually used the mouclass.sys from Win2K on a XP build:
http://reboot.pro/3717/page__st__49

jaclaz

This post has been edited by jaclaz: 05 April 2012 - 04:47 AM


#11 User is offline   WinWin 

  • Group: Members
  • Posts: 9
  • Joined: 18-March 12
  • OS:Windows 2000 Professional
  • Country: Country Flag

Posted 16 April 2012 - 06:05 PM

Quote

Just out of curiosity, what is it that behaves SO differently that you can't switch from 2k to XP, which is almost obsolete already?


TheWalrus: To answer your question to the best of my ability... I've been gaming on Win2k OS for many years and I have a perfect twitch reflex to the way the mouse behaves. I can turn exactly 180/360/up/down with perfect aim. See something in my field of view and twitch and hit it spot on every time. I have been using it so long that I can make twitch shots without even thinking and faster than I can consciously interpret similar to how you jerk your arm away from something hot before you realize what happened. With the acceleration feature I get very little fatigue because I never have to move the mouse large distances, just speed control. Trying to relearn on another OS's revamped acceleration style is like somebody amputated my hand and gave me somebody elses. There's constant over/under shooting my aim and twitch reflexes are always hit or miss and can never introspectively figure out exactly what is different or wrong, only that it's just not right. With Win2k's scheme, I'm usually the best if not very close to it and also get accused of cheating often because fast twitches look like aimbots. I can still play very well other schemes, but it's never 100%. I never truly shine no matter how many hours, days, weeks I put into it to relearn. That original twitch reflex is always there and spot on with Win2k. I hope that answers it.

This post has been edited by WinWin: 16 April 2012 - 06:06 PM


#12 User is offline   dencorso 

  • Adiuvat plus qui nihil obstat
  • Group: Super Moderator
  • Posts: 4,983
  • Joined: 07-April 07
  • OS:98SE
  • Country: Country Flag

Posted 16 April 2012 - 06:35 PM

Do you use a USB or PS/2 mouse, and which mouse is it?

#13 User is offline   WinWin 

  • Group: Members
  • Posts: 9
  • Joined: 18-March 12
  • OS:Windows 2000 Professional
  • Country: Country Flag

Posted 17 April 2012 - 05:54 PM

View Postjaclaz, on 05 April 2012 - 04:33 AM, said:

Forgot to say how in a completely unrelated experiment:
http://reboot.pro/3717/
I actually used the mouclass.sys from Win2K on a XP build:
http://reboot.pro/3717/page__st__49

jaclaz



I just tried swapping it with the mouclass.sys from win2k and unfortunately it has no effect on the acceleration part. It was worth a shot though. (And also bypassed Windows file protection that replaces the file.)

Dencorso: I've used both USB and PS/2 without any notable difference between the two as long as I can adjust the polling rate to the max.

This post has been edited by WinWin: 17 April 2012 - 05:56 PM


#14 User is offline   WinWin 

  • Group: Members
  • Posts: 9
  • Joined: 18-March 12
  • OS:Windows 2000 Professional
  • Country: Country Flag

Posted 17 April 2012 - 07:01 PM

View PostMarktheC, on 04 April 2012 - 08:24 PM, said:

Windows 2000 mouse accel is described here:
http://technet.micro...y/cc978664.aspx

... and here (excuse the translated Japanese and missing images):
http://translate.goo..._Mouse_Driv.htm

W2K (and prior) accel was a crude mechanism using 1 or two threshholds.

With no accel (MouseSpeed=0), mouse-to-pointer movement was 1-to-1.
With 1 threshhold accel (MouseSpeed=1), mouse-to-pointer movement was 1-to-1 below (or at) the threshhold, and doubled when the mouse moved faster than MouseThreshold1. No smoothing, just a sudden jump, doubling of pointer speed.
With 2 threshhold accel (MouseSpeed=2), mouse-to-pointer movement was 1-to-1 below (or at) the threshhold, and doubled when the mouse moved faster than MouseThreshold1 and quadrupled (×4) when faster than MouseThreshold2.

The values for the 3 settings (MouseSpeed, MouseThreshold1, MouseThreshold2) depended on which W2K pointer accel radio button was chosen (None, Low, Medium, High): http://ltxfaq.custhe...ues#Windows2000

If you still use a mouse polling rate of 125Hz (or use the same polling rate as you had on W2K), it is possible to quite closely emulate the W2K "Low" setting using a XP/Vista/7 SmoothMouse*Curve curve.
Ditto, it is possible to somewhat approximate the W2K Medium and High settings with an XP/Vista/7 curve.

Here is some XP/Vista curves that approximate the Windows 2000 "Low" accell curve:
http://www.gamefront...9___6_of_11_zip

When I have some free time, I may build some "Windows 2000"-like curves for Windows 7 also.


This sudden jump and no smoothing probably explains why the later "Curves" bother me so much as I can't seem to get a reliable distance for different speeds. In games I usually do fine slow movements (Win2k) or fast twitchy ones and know exactly where it will end up and acceleration appears to be non-existant because of avoiding being close to that threshold. You get the best of both worlds there because you can do quick 180/360 without large movements/fatigue and still do small fine movements. I wonder if it's possible to recreate this curve. I'm not sure what the registry values mean exactly and I haven't seen documentation on it. There's a utility for mac that allows making your own curve, unfortunately nothing for Windows or linux (I think).

#15 User is offline   MarktheC 

  • Newbie
  • Group: Members
  • Posts: 16
  • Joined: 04-April 12
  • OS:none specified
  • Country: Country Flag

Posted 18 April 2012 - 07:07 AM

View PostWinWin, on 17 April 2012 - 07:01 PM, said:

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

This post has been edited by MarktheC: 18 April 2012 - 07:12 AM


#16 User is offline   Pheesh 

  • Group: Members
  • Posts: 1
  • Joined: 08-May 12
  • OS:none specified
  • Country: Country Flag

Posted 08 May 2012 - 12:40 PM

View PostMarktheC, on 18 April 2012 - 07:07 AM, said:

View PostWinWin, on 17 April 2012 - 07:01 PM, said:

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.

#17 User is offline   submix8c 

  • Inconceivable!
  • Group: Patrons
  • Posts: 3,271
  • Joined: 14-September 05
  • OS:none specified
  • Country: Country Flag

Posted 08 May 2012 - 02:09 PM

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?

#18 User is offline   MarktheC 

  • Newbie
  • Group: Members
  • Posts: 16
  • Joined: 04-April 12
  • OS:none specified
  • Country: Country Flag

Posted 12 May 2012 - 07:22 AM

View PostPheesh, on 08 May 2012 - 12:40 PM, said:

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!

#19 User is offline   MarktheC 

  • Newbie
  • Group: Members
  • Posts: 16
  • Joined: 04-April 12
  • OS:none specified
  • Country: Country Flag

Posted 12 May 2012 - 07:25 AM

View Postsubmix8c, on 08 May 2012 - 02:09 PM, said:

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.

#20 User is offline   ownage11 

  • Newbie
  • Group: Members
  • Posts: 13
  • Joined: 02-December 11
  • OS:Windows 7 x64
  • Country: Country Flag

Posted 01 June 2012 - 05:27 AM

Thanks for the info

This post has been edited by ownage11: 04 June 2012 - 11:04 AM


Share this topic:


  • 3 Pages +
  • 1
  • 2
  • 3
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users



All trademarks mentioned on this page are the property of their respective owners
Copyright © 2001 - 2013 msfn.org
Privacy Policy