Bug #11283
Discontinuity in joystick control
0%
Description
Yesterday I decided to try setting up my joystick with KSP. It's a relatively old Microsoft Sidewinder 4-axis joystick, but it works fine in MS FS X. I assigned the pitch, roll, yaw, and throttle axes as the joystick is designed to control them (which was a bit tricky, but that's another issue), and went into the game to test it out. I discovered a serious issue affecting all four axes, but which will be easiest to describe talking about the throttle axis. The whole top half of the range of motion of the throttle wheel maps to 100% in-game throttle; as the wheel crosses the middle of its range of motion, the in-game throttle JUMPS to 0%, then smoothly climbs back to 100% as the wheel is physically turned towards what should be the zero throttle position. If I set that joystick axis's "invert" checkbox, the top half of the range maps to 0% in-game throttle, and the bottom half ramps from 0% at the bottom to 100% in the middle.
I don't have tools to check what real numerical values are being passed around, but this looks to me a lot like the joystick driver is reporting the positions as signed int values -32768â32767, while the game is interpreting them as unsigned int values 0â65535 and then clamping those to 0â32767 by changing everything 32768 and over (values which are supposed to be negative) to 32767.
I could probably fly like this if only the throttle axis were affected, but it's really super awkward trying to maintain attitude while holding the stick off-center in all three of pitch, roll, and yaw, and trying not to ever cross the midpoint of any axis.
Windows 7 Pro SP1
Microsoft Sidewinder Precision Pro USB