On Thu Jul 31 17:10:47 2025 +0000, Rémi Bernon wrote:
Shouldn't this just work OOTB through hidraw?
@rbernon I implemented this for the Microsoft Sidewinder Force Feedback 2 Joystick (ID 045e:001b). My initial use case was just my OS's (NixOS) default wine install. I have since switched to using my OS's default Valve (Proton) install in order to use OpenVR too.
The problem that I first ran into was that autocenter was permanently enabled on my device and overlaid on all effects as `DIPROPAUTOCENTER_OFF` was just ignored. So I implemented support for it based on testing with fedit.exe (the MS Force Edit program included in DirectX SDK 8.1) under Windows (using Wireshark to sniff the USB bus) and under Wine in Linux.
I can't recall what bus it was. But I did mess around with them all. Wound up submitting a few patches upstream to SDL too to improve the state of things there too. As an example, I noticed the square wave effect didn't work under the SDL bus. Turned out this was due to a [lack of bits](https://github.com/libsdl-org/SDL/issues/8753) for some of the newer rumble effects.
I am actually still not using it for the flight simulation software though as it uses [`EnumEffectsInFile` too](https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ee418645...)), and that isn't currently implemented in wine. Some [initial work was done on this back in the day](https://list.winehq.org/pipermail/wine-devel/2014-February/103057.html) in python though, so I hope to get some time at some point and get that cleaned up and ported over and included in wine too.