[Feature Request]: More accurate mouse detection #12249
Labels
Enhancement / Feature Request
FR: Medium Complexity
Requires some codebase knowledge. A proficient developer should be able to manage.
FR: Medium Priority
The request can bring some quality of life to the average emulator user.
Description
Hello! As the title indicates, I would like to suggest if it were possible to improve the mouse precision in the emulator because I have noticed that if it is left in the "dead zone" at 40 to 60 the mouse responds well for small or short movements, if it is raised more for example to 70 or 99 (so that you notice what I mean) the precision is broken and even if you make tiny movements of the mouse, this configuration causes the aiming to "skip", if it is left at 100 the mouse does not respond, now if it is left at "zero" it no longer detects these "micro movements" and needs much longer movements to detect movement in the game.
Now as I mentioned before, leaving it in the range 40 to 60 seems to be the most appropriate (although I consider that it can still be improved) for small and precise movements.
The problem is when you need to move the mouse quickly, the emulator detects the mouse movement but not the speed so it moves slowly in the game, increasing the sensitivity does not work much, if you increase it too much, it damages the precision even if you move the mouse little and even then I cannot "detect" those moments when the mouse moves "fast" to this we must add the fact that although that previous configuration feels "good" for precise movements, it only works on the "x axis" for the "Y axis" it is much slower, so looking up or down is very different, even if you try to raise the axis to 99 and it continues to move slowly in addition to suffering from the "jumps" mentioned above.
I think that all emulators suffer from this nowadays, they can't detect the "speed" with which the mouse moves, only the "position" (although I really don't know if these variables are the ones affected).
Finally, I hope that all the mouse settings are unified into just "mouse sensitivity" or something like that, because there are really many variables at play at the same time and that's without taking into account that you also have to play with the sensitivity and "dead zone" (because the mouse really doesn't have a dead zone) of the controller options themselves.
I have tried several games and the same thing happens in all of them. The last one was "Black" and you have to activate "show input" in the "configuration>graphics>OSD" window and perform the tests in which you can see if the game reacts as such when you move the mouse.
Reason
Solving this problem will provide a very rewarding experience for all those who have ever played on PC with a keyboard and mouse, because as many of you know the implementation of the retroarchivements achievements in all these classic games have made us pick them up and play them again even if we have them on PC but having this inconvenience completely ruins the emulation and enjoyment of the game, some purists might say "use a controller" I have several controllers but the experience doesn't match the precision you can have with the keyboard and mouse, I would really appreciate if you could improve this function.
Examples
The program that comes closest to native mouse configuration on PC is one called "MouseInjectorDolphinDuck" but the problem is that it is only available for a few games and even then it still has a major restriction because the games that are compatible are only for the NTSC version so all PAL or -J games are ruled out, I mention the application in case you didn't know it and if so, you can study its operation a bit to see if it can be implemented in the emulator, unfortunately my knowledge in this is very low so I can't contribute to solving this problem: C You can also take as a reference any game on PC or for more precision competitive FPS games like CSGO
From now on, I thank you for the attention and help provided, thank you very much :D
The text was updated successfully, but these errors were encountered: