Use:
Anyway Mouse Sensitivity Exporter is licensed under GPL (Gnu Public License), so you can do whatever you want with the sourcecode :-)
Simple: it moves the mouse for you horizontally and vertically, with two different speed (one slow to test normal mouse sensitivity, and fast to test mouse acceleration - if you don't have any mouse acceleration, these tests will give the same result).
All you have to do is report in the window the results of the tests, which is the number of degrees or turns your view moves after each test. Then you can enter a comment and finally save your configuration.
Later, you can load your sensitivity configuration and do again the tests, but this time you will modify the configuration of your game/software from the info you saved before until it corresponds exactly.
The best thing about it is that it doesn't depend of anything other than the configuration of your game/software, any external variable like hardware mouse sensitivity, OS and mouse frequency can't modify the results at all.
To make easy the process of testing and calibrating your sensitivity, the interface was divided into 3 clear steps:
This interface will let you save and load your sensitivity configuration. In this tutorial, I'll sometimes use the game Quake 3 Arena as an example, but it should work for any other environment.
Let's begin with the saving process:
First we have to test our sensitivity. If you don't know what to do, you can just take a paper to write down your future results and click on the button "Launch test" without modifying any parameter (you can stop the test by pressing the corresponding button). Then, go back to your game before 20 seconds, and it will run the test.
The test consist of moving your mouse in a quantitative way (the software will always move the mouse the same way). All you have to do is write down the number of degrees or turn your character does on itself, for each test (slow horizontal, fast horizontal, slow vertical, fast vertical - from left to the right for horizontal tests, and from up to down for vertical ones).
Try to focus on a precise point, and refocus on it at the end of each test (by default you'll have a pause of 10 seconds). Before each vertical test, you should look at the uppest point you can to get the most amplitude for the tests. DON'T MOVE YOUR MOUSE while a test is running ! Wait that the current test finishes, write down the values, and refocus before the next test.
If you want to configure the parameters, here are some guidelines:
Now we tested our current sensitivity, you just have to write in the GUI the values you got. You can choose if they are degrees or number of turns, and you can put a comment (ie: the focus point you used, map used, FPS of the game, etc...)
Finally we can save the results. Simply click on the Save button and choose where you want to save your configuration.
That's it for the saving process !
Now that you saved your sensitivity, we can load it on the new environment (be it a different OS, mouse, game, etc...). This time, we will use the GUI in the reverse order, from down to up:
First, we load our sensitivity configuration. Click on the Load button at the bottom, and choose the config file.
It's not really needed but you should verify the software imported the good configuration, and that every values are valid.
Now we come back to the first part of the GUI: the test battery. But this time, instead of using it to test and save, we'll be using it to calibrate our new sensitivity to the old one.
The process is pretty simple: normally the software should have loaded every parameters you used to save your old sensitivity. Now we will simply launch the tests, and see if the view turns to the same angle. If not, we change the sensitivity in-game, and redo the test until it's right. So if the view now turns more than before, we will reduce our sensitivity. Inversely if it doesn't turn enough, we will raise it. And since the test is very precise, you can fine tune to have the exact same angle of turn, giving you the same sensitivity.
To make the process easier, you should click on LoopMode to let the program repeat the tests until you tell it to stop, and check one test by one and uncheck all the others. Like this, you will first test your slow horizontal speed until it corresponds with your old settings, then your fast horizontal speed, then slow vertical and so on...
Notes: In games like Quake 3, you should change your horizontal sensitivity independently from vertical, so don't use "sensitivity", but rather "m_yaw" for horizontal, and "m_pitch" for vertical. And to switch windows, instead of pressing Alt + Tab, you can bring down the console and you will get back the hand.
You see that's not very complicated :-) It takes a little learning curve to know how to handle it, but after it's really a piece of cake to use it ;-)
You can think there is a much more automated way to do the same thing, like directly recording the user mouse movement, and repeat it in the new environment.
The problem is that there isn't any way to do that with programs hooking the mouse (such as games), because the mouse cursor isn't moving, the game hooks directly the mouse input and so the cursor's coordinates don't change at all.
This method is maybe only semi-automated, but it works and should theoretically always give the same results with the same variables. Now if you think you can do better, this is opensource software, go on ;-)
Here are some advices to get a better result:
- FPS (Frames per second)
- Screen Resolution
- Field Of View (degrees your view covers, usually set to 90°)
- Mouse sensitivity in-game (of course !)
- Mouse acceleration (in-game and maybe OS, but hardware acceleration should not count)
- Mouse smoothing
Ie: In Quake3/OpenArena, set variable "in_mouse" to -1
Ie: in Quake 3/OpenArena, you can change "m_yaw" for horizontal, and "m_pitch" for vertical.
I (GrosBedo) would not be able to create this software without the help of many people:
Windows
Everything should be bundled, but you could need Tkinter + Ctypes, optionally PortAudio for sound.Linux or other posix
You need Tkinter + Xorg + python-xlib, optionally PortAudio for sound.