JacKeTUs / linux-steering-wheels

Project to track Linux steering wheels support
11 stars 1 forks source link

Simagic wheelbases #3

Open JacKeTUs opened 1 month ago

JacKeTUs commented 1 month ago

Simagic followed USB HID spec up until v159 firmware. After that, with version 171, in around august 2023, they moved to something proprietary. Now from firmware 171 (SimPro 2) there is two .dll files: simpro_1.dll and simpro_2.dll, which appears to be the userspace FFB kernel driver^1. They are registered in a system with CLSID = 148CC31A-2476-4F1A-84AC-8A51B275DAA7.

At first glance protocol between the wheel and these drivers is the same as PID protocol, but reports are shifted to the right for 1 byte, and that first byte is set to 0x01. Also, now USB descriptor does not contain any effect identifiers, as well as report id's, etc, all of that seems to be hardcoded in simpro_1.dll and simpro_2.dll.

Sigma Cortex, a converter for Simagic wheelbases, which allows it to work with PlayStation, released a firmware update^2 at that time, which enabled FFB on new and old firmware.

Another thing to considerate - there is 4 (four!) devices with the same VID/PID: M10, Alpha Mini, Alpha, Alpha U. M10 software support is ended on fw159, So driver for Linux should be able to tell them apart and enable/disable protocol adaptations for <=159 and >=171 firmwares.

Further testing / reverse-engineering required.

scernst13 commented 1 week ago

Not sure if this is allowed but I'll make the question here and a statement as a user curious about switching from Fanatec to Simagic on EndeavourOS. Assuming that the product is shipped with base level firmware (I'd assume its probably V159 or lower) does this mean that your current project will work with the base once everything is downloaded and installed? (Sorry I was having some trouble understanding/following your table).

And then in relation to the device having the Same VID/PID, I wonder if it has something to do with the observations that Boosted Media had made in his review/comparison of all three Alpha Units. He had mentioned outside of strength of FFB (and by extension the dynamic range) pretty much all felt the same (possibly implying that really the only differentiation is the motor powering the unit). I've probably summed that up misrepresenting something, so I'm not sure how much this will help (unfortunately I don't have the time to really help test/develop things due to my day job otherwise I'd probably jump in and aid with the development & testing).

JacKeTUs commented 1 week ago

Hey, i think newer units will ship with newer firmware Can't tell much about different revisions of Alpha units, besides that all three of these will use exact same VID/PID