Quake II

Quake II

Quake II > General Discussions > Topic Details
Davicorn 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-12 of 12 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, 2014 @ 9:43pm 
EDIT: answered my own question on subsequent posts.
Last edited by 3DMightyMouse; Mar 26, 2014 @ 9:31pm
3DMightyMouse Mar 26, 2014 @ 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, 2014 @ 11:24pm
3DMightyMouse Mar 26, 2014 @ 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, 2014 @ 9:32pm
3DMightyMouse Mar 26, 2014 @ 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, 2014 @ 9:33pm
Davicorn Mar 29, 2014 @ 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!
3DMightyMouse Dec 10, 2014 @ 8:35pm 
I'm glad I could help. This fix also fixes any other games that try to force mouse acceleration onto it's users. I've added this to my guide on playing the 3.20 shipping version: http://steamcommunity.com/sharedfiles/filedetails/?id=248035586
Timmy Turner Jun 9, 2015 @ 5:24am 
i have the solution ... it's very simple ... just open the game console and type "m_filter 0", thst's it
iiekka Jul 27, 2015 @ 1:23pm 
doesnt work for me izzo
Lesbillionaire Jul 19, 2016 @ 4:50am 
This is stupid. Why would id intentionally break their game by forcing a pointless funtion on the player?? Quake 1 had an easy fix for the problem: simply writing "-dinput" in the launch options. THATS IT. Unfortunately id is was looking for ways to complicate the whole experience for new players in an attempt to scare them off. Stupid! I don't want no super fancy mods, I want vanilla quake, is that too much to ask..
3DMightyMouse Aug 11, 2016 @ 9:37pm 
Quake 2 came out in 1997, Windows 95 era, back when serial roller mice were all the rage! Perhaps with Windows 95 you could force accel off even if the app trys to set it to on, I'm not sure. Also perhaps with those low dpi roller mice and mediocre fps people didn't notice so much.

I haven't tried Quake2 on Windows 10 yet, perhaps it'll ignore the apps request to turn accel on.
< >
Showing 1-12 of 12 comments
Per page: 15 30 50

Quake II > General Discussions > Topic Details