Sunday, 25 February 2024

Saitek X36 and Windows 10

The Saitek X36 USB HOTAS system, comprised of the X36F Flight Stick and the X35T Throttle work out of the box on Windows 10, with a generic HID game device driver provided by Microsoft. However…

The driver provided by Microsoft has a fatal flaw which caused me sudden and frequent stutters/freezes/hangs in games which otherwise ran flawlessly, it gave me no end of headaches trying to track down what seemed to be a GPU issue and then when I did isolate the problem it was a pickle to solve.

Symptom: Some but not all games suffer from a 1~2 second lag spike/hang/freeze/stutter ever few minutes.

Cause: The Saitek X35T Throttle has two toggle switches with 3 positions, but the Generic HID driver assigns each position of the toggles as a button input and continuously presses that button while its in that position. As a result there is always two buttons being constantly pressed at any time, all the time. This is causing some kind of interrupt overflow and hanging the system periodically, but only in games that support DInput devices.

Solution: Using the programs HID Hide, vJoy and Joystick Gremlin I was able to fix this issue by Hiding the Saitek X36 from all programs, creating a virtual device with vJoy and then re-mapping all the buttons, axis’ and hats on the Saitek X36 onto the virtual stick minus the toggle buttons. Joystick Gremlin also allows conditional remaps like Smart toggle and Mode Switch so with some more time getting to know the software I think the toggle switches could be also remapped with conditions to only trigger a buttons press when the toggle is changed instead of spamming a button.