Counter-Strike 2

Counter-Strike 2

Not enough ratings
1:1 Windows to in-game sensitivity
By fanthomas
How to set up windows mouse sensitivity so it can roughly match your in-game values.
   
Award
Favorite
Favorited
Unfavorite
⚠ Warning ⚠
This method works only if your ingame resolution's aspect ratio matches your windows desktop settings (won't work if you're gaming on 4:3 and desktop is set to 16:9). Also be aware that it will substantially lower your desktop sensitivity if you're playing on low eDPI. If you want to come as close as possible when mimicking the ingame sensitivity, you might also end up with a lower raw DPI. So if you like the high responsiveness of your mouse, you might lose a bit of it.
What's it all about
The goal is to synchronize your windows and in-game sensitivity. I've tried this only for CSGO, however theoretically this can be applied to other games as well, but you have to know some specific values.

I'll repost a pretty neat text i've found on hltv about the thery behind it in it's full length since i'ts basically the only reasonable text i've found on this topic.Source, credits to nm:E.[www.hltv.org]
The theory and what you need
At the end of this we can only roughly match our desired desktop sensitivity with our fixed in-game sensitivity. We'll travel approximately the same amount of pixels in both enviroments. We need the same aspect ratio of the resolution both in-game and on the desktop, and a mouse with changeable dpi in increments of 100 is also useful. At the end, you'll end up with a lower desktop sensitivity.

The constants are the field of view (FOV) for different aspect ratios: 16:9 - 106, 16:10 - 100, 4:3 - 90 and the m_yaw 0.022.


Originally posted by nm:E:
The game is 3D, your desktop is not. I . e. your sensitivity in-game correlates to turning by angles/radians, whereas on your desktop you travel by pixels. You can however calculate an in-game sensitivity that let's you travel by the same amount of pixels in-game as you would on your desktop. 400cpi at 6/11 equals 400 pixels travelled per 2.54cm of mouse movement. Take your in-game resolution, for example 1024x768. That's 1024 pixels in a 90° FOV. That's 11.37777777777778 pixels travelled per degree turned, meaning 1 pixel occupies 0.087890625° of radial space. Since you move by sensitivity * m_yaw degrees for every mouse count, and since m_yaw is 0.022 you need a sensitivity of 3.995028409090909 to theoretically travel exactly 1 pixel for 1 mouse count, which is the same behaviour as on your desktop.

Now, that doesn't mean the sensitivity will actually feel the same, because again, it is not really comparable. Just imagine changing your in-game resolution. Now a pixel will occupy less angular space, requiring you to change your in-game sensitivity, even though the sensitivity on a 2D plane will stay the same throughout all resolutions. Pixels in-game really don't correlate with your actual sensitivity. But you could set your desktop and game to be rendered at the same resolution, then everything would essentially be the same in the sense that a distance on your screen can be crossed with the same mouse movement, no matter whether in-game or on your desktop. I. e. when you want to press an icon X amount of pixels away from your cursor, you will have to move your mouse the same distance in-game when you want to place your crosshair on something the same amount of pixels away.

Applying this to a common native desktop resolution (1920x1080p; 16:9r): 1920 pixels in a 106° FOV means 1 pixels occupies 0.0552083333333333° of angular space. 0.0552083333333333 / 0.022 = 2.509469696969697. 2.5... is the sensitivity you'd need to have your in-game sensitivity resemble your windows sensitivity in terms of pixel-travelling behaviour, assuming 6/11 windows sensitivity.
Calculate your own sensitivity
Now you can calculate your own windows sensitivity based on your screen resolution and aspect ratio. Again, this will only work if you have the same resolutions in windows and in-game.

I'll give an example of my own calculation:

for 1680x1050 (16:10, FOV=100) and 800 cpi:
1680 / 100 FOV = 16.8 pixels/degree
1 / 16.8 = 0.0595238095238095 radial space per 1 pixel
0.0595238095238095 / 0.022 (m_yaw) = 2.71 sens on tick 6/11
1 / 2.7056 = 0.3696 = needed default win sensitivity to match the in-game 2.71

Now i could either play with the ticks in windows settings (click here for values)[liquipedia.net], or i could lower the dpi of my mouse. The goal is to get via one or the other method (or combined) to your standard in-game sensitivity that you obviously don't want to change. For my sensitivity (800 cpi x 0.9 in-game = 720) the options were:

3 / 8 = 0.375 (2.5tick) = 300 cpi * 2.71 = 811
2 / 8 = 0.25 (2nd tick) = 200 cpi * 2.71 = 542

So i lowered the mouse sensitivity to 300 cpi. 720 cpi / 300 cpi = 2.4 in-game. That's close enough for me (the ratio between win to in-game should be 1:2.71). If you opt to alter the ticks in windows mouse settings, you have to turn off the raw input in-game.

For testing, i did set the video settings to fullscreen windowed and swithced via alt+tab back and forth between while aiming at two targets in-game and on the desktop. Looks fluid enough.
Update
I wasn't able to bring it up 1:1 without altering the basic DPI of my mouse precisely. On most models, it can be done only by an increment of 100.

Doing so, i got to install a piece of software called Raw Accel[github.com].

"Raw Accel is a Windows 10 64-bit driver which allows for the acceleration of mouse input in the raw input stream. It started as a replacement for InterAccel and has been extended with more acceleration types, charts, and other features."

As of now [18, May, 2021] it's safe to play with in multiple fps titles.

You just have to alter the sens multiplier without turning the acceleration on. Actually, try it sometimes. It's hilarious.

Now the math with an example of some settings (valid for CSGO). Note, that your in-game aspect ratio has to match your desktop's aspect ration. So if you're running at 1280x960, you're probably done here.

At the end you'll end up with a sens multiplier that you put into Raw Accel and that's gonna alter your raw DPI. Notice, that if you're playing on low sensitivity, it doesn't matter if your mouse is set to 400 or 800 DPI. At the end, RawAccel is gonna clock it probably below 400 DPI.

⠀⠀⠀⠀⠀⠀⠀⠀⠀aspect ratio
FOV
win count multiplier
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀16:9
106
⠀⠀⠀⠀⠀⠀⠀2.51
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀16:10
100
⠀⠀⠀⠀⠀⠀⠀2.71
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀4:3
90
⠀⠀⠀⠀⠀⠀⠀3.99

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀1


mouse dpi ÷ (in-game edpi ÷ multiplier)

Now you need to update your in-game sensitivity multiplier based on the altered raw DPI.
For example i want an eDPI of 640. Mouse was set to 800 DPI. Now it's altered to 255. 640/255=2.51. That's what you put into the multiplier.

Note, that it's also the value of the multiplier we used in our calculation. What we eneded up with is basically an altered raw DPI based on our eDPI that's roughly scalable between the 2D enviroment of the desktop and the 3D in-game FOV.
6 Comments
fanthomas  [author] 3 Apr @ 10:27am 
Raw Accel works flawlessly to this day. VAC has no trouble with it whatsoever.
fanthomas  [author] 3 Apr @ 10:23am 
@I HATE BETHESDA hsxcix
I'm not sure what you're trying to accomplish. It's not that simple. In 3D, you actually move by degrees, not pixels or screens. The m_yaw value is critical here, which is basically another sensitivity multiplier for the x axis.
hsxcix 26 Mar @ 6:38am 
Wouldn't you calculate:
360° / 100° (16:10 FOV) = 3.6 (Screens per 360° rotation)
2304 pixels (desktop horizontal pixels) / 1600 (mouse dpi) = 1.44 (Mouse Inches per Screen)
3.6 * 1.44 = 5.184 (Mouse Inches per 360°)
then fit that to in-game sensitivity: 1.97
theres no different between cs and csgo calculation stay same
tav 21 Feb @ 1:28pm 
any uptdates on cs2?
Kung Fu Panda 31 Dec, 2018 @ 8:45am 
I understand nothing