KovaaK / SensitivityMatcher

Script that can be used to convert your mouse sensitivity between different 3D games.
GNU General Public License v3.0
449 stars 29 forks source link

Not Working In Certain Games. #16

Open Troy2424 opened 5 years ago

Troy2424 commented 5 years ago

I have tried this program in The Outer Worlds and Skyrim and it doesn't do a 360 spin in either game when I press the hotkey, but it works fine in Overwatch and CS:GO. Is there anyway for me to fix this? Why would it not work in some games.

ericrisler commented 4 years ago

I also have the same experience. For example it works great in Apex but in Wolfenstein New Order and older The Witcher Enhanced Edition no dice.

I have tried to run-as administrator and still no luck.

Great tool other wise. Thanks so much.

sandros94 commented 4 years ago

We can add Red Dead Redemption 2 to the list. I would like to know how or where to look in order to understand if it is a limitation of the game or the tool.

VALERALTD commented 4 years ago

The rotation does not work in Rainbow Six 6. Anybody can explain why ? How fix it ?

john6672 commented 4 years ago

I have same problem. In Call of Duty WaW it works nice but with games such as Crysis or Far Cry 1 it doesn't. I had changed hotkeys before i launch games but spinning doesn't work.

hemlotheregamerfrens commented 4 years ago

doesnt work in doom eternal

shackra commented 4 years ago

this is true for PUBG except that the character spins a bit and then begin to spin, the first incomplete spin adds noise to any correction you may want to do.

KurenaiShizune commented 4 years ago

Hello, i have tried it on apex it works fine but when i try to transfer it to doom eternal, prey , pubg emulator, resident evil 2 remake ...the hotkeys doesnt work and nothing happens. the idea for the program is pretty great and much better than other paid websites which also doesnt work. anyways i sincerely hope that kovvak or the developers will update the fix in their future version. <3

Sidiouth commented 4 years ago

I've encountered the same problem and I can at least clear up Doom Eternal. Using the in-game console (` or ~) you can find it's yaw, pitch, and mouse sensitivity with the commands 'm_yaw', 'm_pitch', and 'm_sensitivity'. They can be set like 'm_yaw 0.022'. Doom Eternal should actually have the same default pitch as Quake in the tool, 0.022.

KurenaiShizune commented 4 years ago

I've encountered the same problem and I can at least clear up Doom Eternal. Using the in-game console (` or ~) you can find it's yaw, pitch, and mouse sensitivity with the commands 'm_yaw', 'm_pitch', and 'm_sensitivity'. They can be set like 'm_yaw 0.022'. Doom Eternal should actually have the same default pitch as Quake in the tool, 0.022.

that actually helped a lot. i did some research and i was able to match my sensivity using the conole cmd . thanks

shackra commented 4 years ago

this is true for PUBG except that the character spins a bit and then begin to spin, the first incomplete spin adds noise to any correction you may want to do.

Answering to myself: L ALT key is bound to free look, which interferes with the rotation, unbinding the key temporary makes the spinning work as intended in-game.

CodeOhms commented 4 years ago

I have found the function at fault. It is _MouseMovePlus which is located in ReleaseAssets/bin/HotkeyFunctions.au3:

Func _MouseMovePlus($X = "", $Y = "")
     Local $MOUSEEVENTF_MOVE = 0x1
     DllCall("user32.dll", "none",     "mouse_event", _
                           "long", $MOUSEEVENTF_MOVE, _
                           "long",                $X, _
                           "long",                $Y, _
                           "long",                 0, _
                           "long",                 0)
EndFunc

It fails silently which explains why we get no feedback if it did not work.

I have done a bit of research and most programmers use the built-in MouseMove, but I'm guessing this custom one does the same as the built-in one under the hood with some added features. This assumption explains why people using AutoIt complain that MouseMove doesn't work with certain programs like Skyrim Oblivion, which this app also does not.

Maybe as a temporary fix we could use an external call to a powershell function or something (not sure if this is possible :mag:, but if it is it likely would be a security risk :confounded:).

EDIT: For those who need more information on the DllCall part see here.

CodeOhms commented 4 years ago

I will attempt a temporary fix for this soon, ~using code similar to this via an external powershell script (video explaination)~.

EDIT: I tested the example script and it too does not work in Fallout NV, but it works in MCC. Back to the drawing board...

EDIT 2: The api SendInput works in Fallout NV, unlike mouse_event 🥳! Also note that SendInput has superseded mouse_event many years ago, but I'm guessing Kovaak didn't use it because mouse_event is much easier to use. Here is the script that I used to test in Python. At the moment I'm trying to get the same thing working with AutoIt but the way it handles C structures is a nightmare! I might see if I can get external C code compiled just to make my life easier 😄.