https://bugs.winehq.org/show_bug.cgi?id=46361
--- Comment #13 from Zebediah Figura z.figura12@gmail.com --- (In reply to imbert.jacquesolivier from comment #9)
3.12 doesn't rawinput.c and other new codes about gamepads. So before the news codes, gamepads worked like a charm.
In some forums, I see that the following flag could be the culprit : DIGCF_PRESENT usage.
If the device is present in the system, it should be reported as present by winebus, so removing DIGCF_PRESENT cannot be the solution.
The varying symptoms of the crash, plus the presence of a crash in wine_dbg_printf(), might suggest heap corruption. It may be difficult to narrow that down, however.
Performing a bisect between these versions would be the most helpful thing. If that's not possible, it will have to come down to a matter of searching the code for heap corruption. Adding +rawinput,+heap may help, though I make no guarantees.
(In reply to imbert.jacquesolivier from comment #5)
I can confirm that the issue / culprit of the regression comes from hid dll code.
Using the command "wintricks hid" permits to launch the game with a gamepad connected on my computer but the gamepad IS NOT detected by Sonic Mania : I have this message on the console "Total HID GamePad Count: 0"
There can't be a regression in hid between 3.12 and 4.0-rc2, since the only change to hid during that period (a2ab55381) involves a function that is not called. Rather, I suspect that native hid simply does not report any devices, and so the offending code path is never taken.