

This works when I set both clamping values to 360, however when the player is flying upside down the left and right mouse looks are inverted so left looks right, etc. The thing I am trying to add to it is to allow the player to do 'loop the loops' in the air and make 360 degree turns in all axes. This may be a little wacky but I've added this script to a 3rd person game in which the camera follows the player who is flying around in 3d space.
#SMOOTHMOUSE MAKING MOUSE NOT WORK IN LEAGUE WINDOWS#
which produces 001fffe0, which would be E0,FF,1F,00 as a sequence of bytes in little-endian.įor example, this produces 80% speed at the default sixth tick mark with EPP enabled: Windows Registry Editor Version 5.Just wanted to say, what a great script! Really added a lot to a project I'm working on so just wanted to say a big THANK YOU! You may find it helpful to use PowerShell to do math with a mix of hexadecimal and decimal numbers and get the results as a hexadecimal string. When Y/X is ≈4.375 you get the standard 100% scaling to get different scaling, multiply all the Y coordinates or divide all the X coordinates by your desired scale factor. In each row of hexadecimal numbers above, the first four comma-separated numbers are the coordinate in little-endian, so the third row of the X value is the coordinate 0x00199980. If your desired multiplier is not one of the EPP-on defaults, you can change the slope of the curve. You may need to log off and back on for the curve Registry change to take effect. reg file and double-click it) and adjusting the slider, in this case to the fifth tick. Since your desired speed of 0.8 is one of the EPP-on multipliers, you can get it by installing that tweak (save it as a.

This provides it at the sixth tick mark on Windows 10: Windows Registry Editor Version 5.00 This page offers a set of Registry tweaks to give various environments a 1:1 mouse:pointer response even when enhanced pointer precision is on. By default it makes the pointer go extra slow when you move the mouse slowly, but the curve can be changed to a straight line to disable acceleration yet allow fine tuning. When "enhance pointer precision" is on, Windows uses the SmoothMouseXCurve and SmoothMouseYCurve values-along with the other row of sensitivity multipliers from your linked page-to determine the speed multiplier as a function of how fast you're moving the mouse. However, there is an alternative way to set the mouse sensitivity. which generates the values listed in your question. Return // thereby making it available to the caller *(uint *)(this + 4) = uVar1 // Store Speed in the MOUSE_SENSITIVITY_INFO structure, If (param_1 > 3 // Speed = (MouseSensitivity - 2) / 8 If (0x13 > 5 // Speed = MouseSensitivity / 32 Uint uVar1 // Temporary variable to store the Speed multiplier void _thiscall UpdateMouseSensitivity(MOUSE_SENSITIVITY_INFO *this,uint param_1) Ghidra decompiles that function to (comments mine). The most relevant function is UpdateMouseSensitivity, which converts a MouseSensitvity-style integer to a 24.8 fixed-point speed multiplier. win32kbase.sys always passes the sensitivity setting around as an integer and numerous functions include range checks. The slider controls the MouseSensitivity value in the Registry, which is always an integer between 1 and 20. When "enhance pointer precision" is off, there is no way to set an arbitrary speed multiplier. Is there a way to set the speed through SystemParameterInfo, or the Registry, using a floating-point number, allowing for a more precise multiplier value like x0.8 (looking at the list, it's not reachable)? If so, how do I do that? The mouse speed Windows multiplier can either be controlled through Pointer Options in Control Panel or through a more advanced way by calling and changing SystemParametersInfo or Registry values.

(I know this question has been posted before I reposted a more detailed explanation on the situation because the previous question isn't answered and has over 6k views.)
