https://bugs.winehq.org/show_bug.cgi?id=52062
--- Comment #3 from Ivo Ivanov logos128@gmail.com --- Created attachment 71166 --> https://bugs.winehq.org/attachment.cgi?id=71166 dinput-some-fixes-and-tests.patch
Attached a patch with more tests for the effect status and the FFB state. As you said, on the driver side they seem to implement very simple logic. Mark an effect as playing on Start, and as non playing on Stop. No other FFB commands as stop-all, or any parameters as duration / start delay have any influence on the effect playing status. Then they change the status according to the PID State Reports received from the device.
Similar is the situation on the FFB state. On the driver side MS seems to update only the empty and stopped states. Interesting is that commands send through SendForceFeedbackCommand, as set actuators on/off or pause/continue doesn't influence the FFB state on the driver side. Those states and all others are updated only from the received PID State Reports.
Added also a patch to fix the SendForceFeedbackCommand sending Device Gain Reports on every command. While it is visible from the tests only DISFFC_RESET sends such reports.