jacketus / linux-steering-wheels Goto Github PK
View Code? Open in Web Editor NEWProject to track Linux steering wheels support
Project to track Linux steering wheels support
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 driver1. 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 update2 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.
MOZA_vid_pid_button_number.docx
Info.txt
We have some files from MOZA with descriptor and VID/PID numbers.
Seems to me native PIDFF driver should do the trick, with duration fix.
https://github.com/JacKeTUs/moza-ff
Wheel and FFB works perfectly fine on native games like truck sims (ETS/ATS)
We got it working with BeamNG when I launch the game installed using steam but launched using lutris using wine instead of proton
FFB also works on Assetto Corsa Competizione when I launch it with lutris/wine but not when I launch it using steam/proton or proton/ge
One post on Reddit is telling that, besides VRS DirectForce Pro follows with USB HID spec, wheelbase is not working. May be a7 descriptor issue, may be duration issue.
Rotation is detected on a gamepad tester and seems to show 99% range as intended from -1 to +1 (I have a bump stop enabled in the firmware).
iRacing calibration tool detected it as going from 50%-100% rotation which is odd. Gives error that the wheel does not support force feedback.
Windows raw values go from 0 to 65535
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.