Closed Raptor007 closed 3 months ago
It seems off-center deadzones are a big problem with the way Windows currently auto-calibrates. Setting my deadzone too high makes one direction feel less responsive, but setting it too low can cause stuck input in the other direction.
To solve this, I'm working on fine-tuned calibration of axis input ranges. It's currently just variables:
set joy_cal_axis1 -0.99,-0.04,0.07,0.98
This sets the maximum input range of the X axis to -0.99 to 0.98 with deadzone -0.04 to 0.07. Being able to fix the off-center deadzones has improved the feel of my cheapo Cyborg Evo significantly!
Next step is to make the calibration tool UI. Should just need 2 steps:
All done and ready for the next release!
In the olden days, we calibrated joystick axis range and deadzone in the control panel. While those options still technically exist, Windows now replaces the deadzone center with current position whenever reconnecting a joystick or rebooting, which can cause issues like constant roll/pitch/yaw if the joystick was not perfectly centered in its deadzone when detected.
The game engine should have its own calibration window to determine valid axis ranges, and the input code should no longer assume deadzones must be centered at 0 (or even necessarily include 0).