https://bugs.winehq.org/show_bug.cgi?id=51878
Bug ID: 51878 Summary: Gamepad / adapter not detected without legacy joystick backends. Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: escomk3@hotmail.com Distribution: ---
Created attachment 70806 --> https://bugs.winehq.org/attachment.cgi?id=70806 Output from 'joy.cpl' and 'evtest' (+plugplay,+hid,+hidp,+hid_report,+dinput).
After adfee25b45a [1], a DualShock 2 PlayStation gamepad via a USB adapter no longer works in FINAL FANTASY XI Online, or in the Wine 'joy.cpl' test program.
A little bit of background: this gamepad previously didn't work in things like Steam, which was most likely due to permissions (user not part of the input group for example), but I never did anything about that since I only use the gamepad via Wine, and it worked. With this change in Wine, it looks like it might no longer be possible to avoid additional configuration and/or dependencies, and I've tested various methods of making it work.
While it now works in the native Linux build of Steam, it still doesn't work with the game, or with 'joy.cpl'.
The output is more or less the same for the game and 'joy.cpl': when I press the ANALOG button to enable the analog mode, I can see
0074:trace:hid_report:process_device_event Received action 650 wine: Unhandled page fault on read access to 0000000000000000 at address 00000001C9232342 (thread 0074), starting debugger... 0070:err:wineusb:event_thread_proc Error handling events: System call interrupted (perhaps due to signal) 0070:err:wineusb:event_thread_proc Error handling events: System call interrupted (perhaps due to signal)
but the application itself does not actually crash (looks like it's 'winedevice.exe' in the background).
If I press a different button, there's
0074:trace:hid_report:process_device_event Received action 651 0074:warn:plugplay:bus_main_thread L"SDL" bus wait returned status 0xc0000005
and nothing else after that no matter what I press until I restart the process.
The gamepad/adapter is detected as follows:
usb 3-2: new low-speed USB device number 7 using xhci_hcd usb 3-2: New USB device found, idVendor=0810, idProduct=0001, bcdDevice= 1.06 usb 3-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0 usb 3-2: Product: Twin USB Joystick input: Twin USB Joystick as /devices/pci0000:00/0000:00:07.1/0000:0c:00.3/usb3/3-2/3-2:1.0/0003:0810:0001.0009/input/input24 input: Twin USB Joystick as /devices/pci0000:00/0000:00:07.1/0000:0c:00.3/usb3/3-2/3-2:1.0/0003:0810:0001.0009/input/input25 pantherlord 0003:0810:0001.0009: input,hidraw4: USB HID v1.10 Joystick [Twin USB Joystick] on usb-0000:0c:00.3-2/input0
It's possible I'm still missing something I did not need with the legacy backend(s).
Some things that I've tried:
- Add the user to the input group. - Added sdl, udev, and usb support to the Wine build.
1. https://source.winehq.org/git/wine.git/commit/adfee25b45af8160848f94fdb24279...