willmmiles / x36usb

Windows driver for Saitek X36/X45 USB HOTAS systems
Other
4 stars 1 forks source link

X36 and PCDash2 in Windows 10 #1

Open JabberwockPL opened 3 years ago

JabberwockPL commented 3 years ago

Hello, this is Jabberwock, the author of Biped....

I am STILL using X36 + PCDash2 (you might say I am... frugal), although now I do not program them externally, as most games allow good configuration (and for those that do not I use FreePIE and vJoy). However, there are two issues with the generic drivers: PCDash2 has only 32 buttons working (even though it is correctly configured in the registry to have 38) and X36 reports two mode buttons as always pushed, which is troublesome for in-game assigning.

I remember that the biggest issue with your drivers was that they required turning off signing, which could be troublesome. I wonder if it is still an issue in Windows 10...

willmmiles commented 3 years ago

Alas, I never did buy a certificate to create signed binaries; so no, there's still no way to build or install without turning off signing or buying your own certificate. Beyond that I think there's a locking bug somewhere that causes bluescreens on machines with more than 2 logical CPUs.

For the X36, the very earliest driver hack I wrote (before even the 1.0 release!) actually just disabled the middle positions of the switches so I could use application level configuration. I don't know if I've still got that source code anywhere, but it was so simple that it definitely wouldn't have locking problems. Maybe I should recreate this repository with all the various source images I can find kicking around; back when I wrote this project I was using the 'copy the folder' method of version control, and there's 35 or so of them in my archives.

Alternately, you could open the bottom of the throttle unit and cut the middle switch position wires -- lame but effective, and straightforward enough to splice back together later if you find a software solution.

RE PCDash2, as far as I'm aware, the "more than 32 buttons" is (today) an application issue, not a driver issue. For example, the "joystick test" control panel is limited to 32 buttons, even if the device supports more. Pointy's Joystick Test should show everything. Unfortnately my PCDash2 died some years ago (many of the buttons stopped working, and I didn't use it enough to bother repairing it) so I can't validate this personally.

JabberwockPL commented 3 years ago

Thanks for the answer!

For now for the X36 workaround I am using vJoy with fake inputs to program the game and then with real inputs to play... I thought of physical intervention, too, but I am not sure my unit will survive the disassembly/assembly... Are the wires marked in the throttle unit?

As for the PCDash2, it is a mystery: the unit is properly described in OEMData, but it still responds as if it had 32 buttons. Pointy's test shows 32 buttons as well. Maybe it is a limit of generic drivers?

willmmiles commented 3 years ago

Re wires, they'd be straightforward to locate with a multimeter. I've had my unit open a couple of times to try to address a noise issue with the throttle axis. I have a vague recollection they're color coded but it's been a long time and I don't have any notes. There's probably teardown pics somewhere if you google about.

Re PCDash2, I reviewed my notes and technically the device actually only claims to have 32 buttons to the host operating system; the report descriptor calls for a null byte before the hat, but actually reports the last few buttons in it. I'm sure the generic drivers can handle more than 32 buttons now (the folks at https://github.com/MHeironimus/ArduinoJoystickLibrary seem to think so, at any rate), but there's not much that can be done without a software filter I think. :(

JabberwockPL commented 3 years ago

Maybe I will take a look inside...

As for the Dash, I use it for singular games every couple of years (last time when Elite Dangerous was out, now with Mechwarrior 5 and SW: Squadron), so practically nothing is worth the trouble... Just thought you might have an idea, given that you were pretty deep into its inner workings.

Thanks again, it was nice getting in touch!