http://bugs.winehq.org/show_bug.cgi?id=29712
Bug #: 29712 Summary: DInput doesn't support INFINITE effect iterations Product: Wine Version: 1.3.37 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: minor Priority: P2 Component: directx-dinput AssignedTo: wine-bugs@winehq.org ReportedBy: mahasler@gmail.com Classification: Unclassified
Created attachment 38559 --> http://bugs.winehq.org/attachment.cgi?id=38559 Patch to make dinput effects support INFINITE.
According to the DirectX reference, IDirectInputEffect::Start accepts INFINITE (aka -1) for the number of iterations. Some games actually use this. However, passing -1 to Linux via input_event results in no effect being played at all (at least for me).
I've made a simple patch that sets the number of iterations to the maximum signed value allowed when INFINITE is passed. I think this should work in practically every case.
Tested to work with Metal Gear Solid 2.