https://bugs.winehq.org/show_bug.cgi?id=58046
Bug ID: 58046 Summary: Horizon Chase Turbo: gamepad hotplugging doesn't work Product: Wine Version: 10.4 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: dinput Assignee: wine-bugs@winehq.org Reporter: tinozzo123@gmail.com Distribution: ---
Created attachment 78302 --> https://bugs.winehq.org/attachment.cgi?id=78302 `WINEDEBUG=+dinput`, launch game with one gamepad, disonnected, reconnected.
In Horizon Chase Turbo (tested Epic Games Store version), gamepads are only usable if they have always been connected since the game has been launched. Otherwise, their inputs are completely ignored, and these gamepads will not be listed in the player mapping screen (Multiplayer). This is not the case on Windows.
The only exception is in the title screen: "Press Any Button" does work with hotplugged gamepads.
Logs are taken on a fresh prefix with `WINEDEBUG=+dinput`. Without this, the only dinput-related log is: ``` 0208:fixme:dinput:hid_joystick_device_try_open device usage ff72:00a1 not implemented! ```
http://bugs.winehq.org/show_bug.cgi?id=58046
tinozzo123@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|dinput |-unknown
--- Comment #1 from tinozzo123@gmail.com --- Still an issue on Wine 10.11.
Also, I tested that the issue isn't due to dinput (I tried replacing it with the dll from Windows, and the issue persists). Same with xinput.
Investigating further, I found that the game for input uses a Unity plugin named InControl. Other games use it: https://www.gallantgames.com/pages/incontrol-wall-of-games
For anyone wanting to reproduce the issue, one of these games is small and free, and the gamepad doesn't work even without disconnecting it first (inputs don't do anything, though the game always detects whether the gamepad is connected). https://mattrix.itch.io/bewarewolf
http://bugs.winehq.org/show_bug.cgi?id=58046
1263972314@qq.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |1263972314@qq.com
--- Comment #2 from 1263972314@qq.com --- Many Games uses InControl Plugin.
I met the same issue on Overcooked All You Can Eat / Overcooked 2, Game just not accept the input on AYCE, and hot plugging not working on 2. maybe they're different version on InControl Plugin.
enable the +xinput, and on AYCE, Game has a loop to call GetStateEx to check if device connected, and update status when call GetState.
Even Wine passed Success when calling GetStateEx, Overcooked 2 still don't call GetState.
And the Overcooked AYCE version, all logs seems ok, just ignored my input.
http://bugs.winehq.org/show_bug.cgi?id=58046
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |hardware