From 8bfacb3a0aeef13d58569259576ba2b2272b9fb3 Mon Sep 17 00:00:00 2001 From: "B. Ciel M." Date: Sat, 18 Apr 2026 20:03:32 -0700 Subject: [PATCH] Tested fix to Issue 125: MOTION_DEADZONE_OUTER has no effect... - Deadzone calcuation was performed in a mix of degress (0-180) and stick value (0f-1f) domains. --- JoyShockMapper/src/main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/JoyShockMapper/src/main.cpp b/JoyShockMapper/src/main.cpp index a82fd561..fdf2c685 100644 --- a/JoyShockMapper/src/main.cpp +++ b/JoyShockMapper/src/main.cpp @@ -948,8 +948,10 @@ void joyShockPollCallback(int jcHandle, JOY_SHOCK_STATE state, JOY_SHOCK_STATE l } float motionDZInner = jc->getSetting(SettingID::MOTION_DEADZONE_INNER); float motionDZOuter = jc->getSetting(SettingID::MOTION_DEADZONE_OUTER); - float remappedLeanAngle = pow(clamp((absLeanAngle - motionDZInner) / (180.f - motionDZOuter - motionDZInner), 0.f, 1.f), jc->getSetting(SettingID::STICK_POWER)); + float remappedLeanAngle = pow(clamp( + (absLeanAngle / 180.f - motionDZInner) / (1.f - motionDZOuter - motionDZInner) // motion deadzones are in 0.f to 1.f domain + , 0.f, 1.f), jc->getSetting(SettingID::STICK_POWER)); // now actually convert to output stick value, taking deadzones and power curve into account float undeadzoneInner, undeadzoneOuter, unpower; if (isLeft)