Quake II > General Discussions > Topic Details
Virtual Graveyard Feb 13, 2013 @ 3:36am
Request : Mouse Acceleration Fix
I was hoping some of the old-school quake 2 pro's could possibly throw out some mouse acceleration fixes?


I was 8 or so when this game came out and never played it all the way through, however I really want to now. But seeing as the mouse acceleration is driving me nuts I want to wait until I can get rid of it to play Quake II with raw input.

So any fixes or console commands would be appreciated!
Showing 1-7 of 7 comments
< >
Spycrab0.bin Feb 19, 2013 @ 12:03pm 
Elysium Mar 7, 2013 @ 7:29pm 
The best way to remove mouse acceleration is to use a source port that supports raw mouse input.

If you're looking for a compatible and unchanged single player experience then I'd recommend the Yamagi Quake II[www.yamagi.org] client. If you are mostly concerned with multiplayer use then I'd suggest using Q2PRO[skuller.net].
3DMightyMouse Mar 16 @ 9:43pm 
EDIT: answered my own question on subsequent posts.
Last edited by 3DMightyMouse; Mar 26 @ 9:31pm
3DMightyMouse Mar 26 @ 7:50pm 
Examining the source code for 3.21 At first I didn't see any code for mouse acceleration.

function: IN_MouseMove in file: in_win.c

SetCursorPos (window_center_x, window_center_y);
http://msdn.microsoft.com/en-us/library/windows/desktop/ms648394(v=vs.85).aspx

GetCursorPos
http://msdn.microsoft.com/en-us/library/windows/desktop/ms648390(v=vs.85).aspx

It simply sets the pointer to the middle then measures how far from center it travels each frame. I don't see any acceleration set in the Windows control panel nor in my mouse software.

IN_ActivateMouse invokes SystemParametersInfo (SPI_SETMOUSE, 0, newmouseparms, 0)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724947(v=vs.85).aspx

Bingo! "Sets the two mouse threshold values and the mouse acceleration. The pvParam parameter must point to an array of three integers that specifies these values" Guess what newmouseparms is: {0, 0, 1} which means 0 threshold, 0 threshold, 1 acceleration! Now if there was only a way to tell the operating system to ignore an application's request to set mouse acceleration.

Maybe compile with it set to 0, then compile with it set to 1, compare the exe files to find where to hex edit it to remove mouse acceleration.

UPDATE: GLQuake1 has the same problem, just checked the code and verified it in game (been playing source ports so long I didn't check it.)

UPDATE: Microsoft's fancy term for mouse acceleration is 'enchanced pointer precision'. It might work OK for many windows apps, but is no good for FPS games
http://stackoverflow.com/questions/3902477/how-to-configure-mouse-enhance-pointer-precision-programatically
Last edited by 3DMightyMouse; Mar 26 @ 11:24pm
3DMightyMouse Mar 26 @ 8:17pm 
Why Quake3 doesn't have mouse accel? Well it's equivalent to IN_ActivateMouse is IN_ActivateWin32Mouse, and it simply doesn't invoke SystemParametersInfo, hence the operating system simply assumes 0 threshold, 0 threshold, 0 mouse acceleration when not specified. (well assuming you disabled 'enchanced pointer precision' in ctrl panel.)

Quake3 can also use Direct Input to get mouse movements. You can disable DI and use Win32 mouse with in_mouse -1.
Last edited by 3DMightyMouse; Mar 26 @ 9:32pm
3DMightyMouse Mar 26 @ 9:31pm 
Alright, there is a registry fix that works for Win7 that I verified to work (and Win8 also it seems.) What it does is change the accel curve to linear, so even if the app turns on accel, it will still be linear. Some links to the registry fix, and how it works:

how it works: http://www.esreality.com/index.php?a=post&id=1945096
downloads to fix: http://www.esreality.com/?a=post&id=1846538
Last edited by 3DMightyMouse; Mar 26 @ 9:33pm
Virtual Graveyard Mar 29 @ 10:28am 
Originally posted by 3DMightyMouse:
Alright, there is a registry fix that works for Win7 that I verified to work (and Win8 also it seems.) What it does is change the accel curve to linear, so even if the app turns on accel, it will still be linear. Some links to the registry fix, and how it works:

how it works: http://www.esreality.com/index.php?a=post&id=1945096
downloads to fix: http://www.esreality.com/?a=post&id=1846538

Wow what a good find!
It only took 13 months, but we have an answer!

Thanks!
Showing 1-7 of 7 comments
< >
Per page: 15 30 50