https://bugs.winehq.org/show_bug.cgi?id=52177
--- Comment #5 from Jan "Yenya" Kasprzak kas@yenya.net --- I have captured using jstest and evtest, how the dancepad on /dev/input/js1 and /dev/input/event18 communicates. Both kernel interfaces seem to report the button events well, including simultaneous button press events. See the attachments.
I also tried to disable axis movements by setting both max and min value for each axis to the middle value using
evdev-joystick -e /dev/input/event18 -m 128 -M 128
but then the ITG/StepMania game inside WINE did not see any joystick events.
I have verified that WINE uses the evdev interface - in /proc/<pid>/fd of one of the wine processes there is /dev/input/event18 as open.
When I select "Configure input" from the ITG/StepMania menu, the following gets reported to STDERR:
00b4:err:rawinput:add_device Failed to open device file L"\??\HID#VID_0000&PID_0000#0&WINEMOUSE&0&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}", status 0xc0000034. 00b4:err:rawinput:add_device Failed to open device file L"\??\HID#VID_0000&PID_0000#0&WINEKEYBOARD&0&1#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}", status 0xc0000034. 00b4:err:rawinput:add_device Failed to open device file L"\??\HID#VID_0000&PID_0000#0&WINEKEYBOARD&0&1#{4d1e55b2-f16f-11cf-88cb-001111000030}", status 0xc0000034. 00b4:err:rawinput:add_device Failed to open device file L"\??\HID#VID_0000&PID_0000#0&WINEMOUSE&0&0#{4d1e55b2-f16f-11cf-88cb-001111000030}", status 0xc0000034. 00b4:err:rawinput:add_device Failed to open device file L"\??\HID#VID_6677&PID_8811#256&03000000776600001188000000010000&0&0#{4d1e55b2-f16f-11cf-88cb-001111000030}", status 0xc0000034.
These are all my input devices, with the latest one (VID 6677, PID 8811) being the dancepad. According to strace, jjust before reporting the above error, WINE does the following:
77493 newfstatat(AT_FDCWD, "/home/kas/.wine/dosdevices/hid#vid_6677&pid_8811#256&030061ea776600001188000000010000&0&0#{4d1e55b2-f16f-11cf-88cb-001111000030}", <unfinished ...>
But this is probably not the root cause of the problem, as at that time, the game (WINE) has already /dev/input/event18 open and reports correctly the dancepad vendor and product string.
So it seems that WINE mishandles the button events from the evdev interface.
FWIW, my dancepad is described by kernel in dmesg(8) output as follows:
[160087.156324] usb 2-3.4: Product: X-PAD, Extreme Dance Pad (http://www.ddr.cz) [160087.160390] input: WiseGroup.,Ltd X-PAD, Extreme Dance Pad (http://www.ddr.cz) as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.4/2-3.4:1.0/0003:6677:8811.0008/input/input137 [160087.160609] hid-generic 0003:6677:8811.0008: input,hidraw0: USB HID v1.00 Joystick [WiseGroup.,Ltd X-PAD, Extreme Dance Pad (http://www.ddr.cz)] on usb-0000:00:14.0-3.4/input0