https://bugs.winehq.org/show_bug.cgi?id=57085
Bug ID: 57085 Summary: winebus SDL backend seems to always report force feedback effects as playing on linux, confuses BeamNG.drive 0.32.5.0 Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: hid Assignee: wine-bugs@winehq.org Reporter: katharine.chui@gmail.com Distribution: ---
Wine/Proton users have not been able to use "Fast" update type on BeamNG.drive.
https://www.beamng.com/threads/workaround-to-get-ffb-to-work-on-linux-proton...
After reporting the lack of IDirectInputEffect::Start calls on Wine to BeamNG.drive, it seems that they will be force issuing ::Start once after ::CreateEffect in a future update, regardless of the output of ::GetEffectStatus, if the change does not break other wheels on windows.
Discussing the issue further with BeamNG.drive developer stenyak on discord, with "Fast" update type for force feedback, current release of BeamNG.drive seems to always query effect status using ::GetEffectStatus, and would only issue ::Start if the effect is not playing.
If my tracing is correct, https://gitlab.winehq.org/wine/wine/-/blob/6e15604c48acd63dd8095a4ce2fd011cb... always emits effect playing report on hid because on Linux, SDL does not support SDL_HAPTIC_STATUS.
Due to ::GetEffectStatus flagging effect playing falsely, ::Start is never issued on Wine, causing effects to never play on the SDL hid backend.
While BeamNG.drive seems to be quite open to doing small fixes to help players on Wine/Proton as long as it does not break on windows, is there anything that could be change on this end to make it less confusing for applications that relies on ::GetEffectStatus going forward?