https://bugs.winehq.org/show_bug.cgi?id=48802
Bug ID: 48802 Summary: Logitech Extreme 3D Pro joystick works fine in joy.cpl but buttons wrongly mapped in Battlefield 4 Product: Wine Version: 5.4 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: luca.boccassi@gmail.com Distribution: ---
I have a Logitech Extreme 3D Pro joystick which works perfectly fine when calibrating via wine control joy.cpl (js mode). In Battlefield 4 however the buttons are all scrambled, and the throttle and the Z axis cannot be configured at all.
I can provide any extra logs if required, please specify which and how to retrieve them.
Running wine from OBS-built packages on Debian 10.
https://bugs.winehq.org/show_bug.cgi?id=48802
Luca Boccassi luca.boccassi@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |luca.boccassi@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=48802
Luca Boccassi luca.boccassi@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Debian
https://bugs.winehq.org/show_bug.cgi?id=48802
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |leslie_alistair@hotmail.com
--- Comment #1 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- https://wiki.winehq.org/FAQ#How_can_I_get_a_debugging_log_.28a.k.a._terminal...
WINEDEBUG=+dinput,+xinput wine <program>
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #2 from Luca Boccassi luca.boccassi@gmail.com --- Created attachment 66743 --> https://bugs.winehq.org/attachment.cgi?id=66743 wine control joy.cpl logs
Logs of wine control joy.cpl moving joystick Z axis and throttle and pressing buttons
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #3 from Luca Boccassi luca.boccassi@gmail.com --- Created attachment 66744 --> https://bugs.winehq.org/attachment.cgi?id=66744 BF4 logs
Logs of BF4 going into the settings and trying to keybind throttle and Z axis (which in the game is done by using the desired key/button/lever)
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #4 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Alistair Leslie-Hughes from comment #1)
https://wiki.winehq.org/FAQ#How_can_I_get_a_debugging_log_.28a.k.a. _terminal_output.29.3F
WINEDEBUG=+dinput,+xinput wine <program>
Done, thank you.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #5 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- There as a patch in wine 5.5 in regards to this controller. Can you please try again?
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #6 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Alistair Leslie-Hughes from comment #5)
There as a patch in wine 5.5 in regards to this controller. Can you please try again?
No change, unfortunately.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #7 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Luca Boccassi from comment #6)
(In reply to Alistair Leslie-Hughes from comment #5)
There as a patch in wine 5.5 in regards to this controller. Can you please try again?
No change, unfortunately.
This is interesting and probably relevant though: unlike wine control joy.cpl, if I use hid.exe (from https://wiki.winehq.org/Hid ) I can reproduce the exact same problems I see in game - Z axis (yaw) is ignored, throttle is ignored, only half the buttons work and don't have the expected mapping.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #8 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Luca Boccassi from comment #7)
(In reply to Luca Boccassi from comment #6)
(In reply to Alistair Leslie-Hughes from comment #5)
There as a patch in wine 5.5 in regards to this controller. Can you please try again?
No change, unfortunately.
This is interesting and probably relevant though: unlike wine control joy.cpl, if I use hid.exe (from https://wiki.winehq.org/Hid ) I can reproduce the exact same problems I see in game - Z axis (yaw) is ignored, throttle is ignored, only half the buttons work and don't have the expected mapping.
Running hid.exe with +hid_report I get the following.
Moving X axis (which works:
0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Got Packet 00000000005B47D0 16 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Got Packet 00000000005B47D0 16 0030:trace:hid_report:HID_Device_read Got Packet 00000000005B47D0 16 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp
Moving Z axis (yaw) which doesn't work:
0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 600 (repeated a dozen times)
Moving throttle which doesn't work:
0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 600 (repeated a dozen times)
Pressing a button that works:
0032:trace:hid_report:process_device_event Received action 651 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 603 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 652 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 604 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp
Pressing a button that doesn't work:
0032:trace:hid_report:process_device_event Received action 603 0032:trace:hid_report:process_device_event Received action 604
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #9 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Luca Boccassi from comment #8)
(In reply to Luca Boccassi from comment #7)
(In reply to Luca Boccassi from comment #6)
(In reply to Alistair Leslie-Hughes from comment #5)
There as a patch in wine 5.5 in regards to this controller. Can you please try again?
No change, unfortunately.
This is interesting and probably relevant though: unlike wine control joy.cpl, if I use hid.exe (from https://wiki.winehq.org/Hid ) I can reproduce the exact same problems I see in game - Z axis (yaw) is ignored, throttle is ignored, only half the buttons work and don't have the expected mapping.
Running hid.exe with +hid_report I get the following.
Moving X axis (which works:
0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Got Packet 00000000005B47D0 16 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Got Packet 00000000005B47D0 16 0030:trace:hid_report:HID_Device_read Got Packet 00000000005B47D0 16 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 650 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 600 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp
Moving Z axis (yaw) which doesn't work:
0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 600 (repeated a dozen times)
Moving throttle which doesn't work:
0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 600 0032:trace:hid_report:process_device_event Received action 600 (repeated a dozen times)
Pressing a button that works:
0032:trace:hid_report:process_device_event Received action 651 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 603 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp 0032:trace:hid_report:process_device_event Received action 652 0032:trace:hid_report:process_hid_report Processing Request 0032:trace:hid_report:process_device_event Received action 604 0039:trace:hid_report:HID_Device_processQueue Processing Request (0) 0039:trace:hid_report:hid_internal_dispatch IOCTL_HID_READ_REPORT 0030:trace:hid_report:HID_Device_read Queue irp
Pressing a button that doesn't work:
0032:trace:hid_report:process_device_event Received action 603 0032:trace:hid_report:process_device_event Received action 604
Output of +hid:
002f:trace:hid:DriverEntry (00000000005B4FB0, L"\Registry\Machine\System\CurrentControlSet\Services\winehid") 002f:trace:hid:PNP_AddDevice Adding device to PDO 00000000005B4510, id L"WINEMOUSE\vid_0000&pid_0000"\L"0&WINEMOUSE&0&0". 002f:trace:hid:HID_CreateDevice Create base hid device L"\Device\HID#00000000005B4FB0&00000000005B4510" 002f:trace:hid:PNP_AddDevice Created device 00000000005B5620 002f:trace:hid:add_device (00000000005B4FB0, 00000000005B5620) 002f:trace:hid:ParseDescriptor Descriptor[12]: 5 1 9 2 a1 1 9 1 a1 0 c0 c0 002f:trace:hid:parse_descriptor 0x5[0], type 1 , tag 0, size 1, val 1 002f:trace:hid:parse_descriptor 0x9[2], type 2 , tag 0, size 1, val 2 002f:trace:hid:parse_descriptor 0xa1[4], type 0 , tag 10, size 1, val 1 002f:trace:hid:parse_descriptor 0x9[6], type 2 , tag 0, size 1, val 1 002f:trace:hid:parse_descriptor 0xa1[8], type 0 , tag 10, size 1, val 0 002f:trace:hid:parse_descriptor 0xc0[10], type 0 , tag 12, size 0, val 0 002f:trace:hid:parse_descriptor 0xc0[11], type 0 , tag 12, size 0, val 0 002f:trace:hid:debug_collection START Collection 1 <<< Physical, parent: 0000000000000000, 0 features, 1 collections 002f:trace:hid:debugstr_caps (Collection Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 0; PhysicalMin 0; PhysicalMax 0; UnitsExp 0; Units 0; BitSize 0; ReportID 0; ReportCount 0; Usage [0x2]; StringIndex 0; DesignatorIndex 0; Delim 0;) 002f:trace:hid:debug_collection START Collection 0 <<< Application, parent: 00000000005B5160, 0 features, 1 collections 002f:trace:hid:debugstr_caps (Collection Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 0; PhysicalMin 0; PhysicalMax 0; UnitsExp 0; Units 0; BitSize 0; ReportID 0; ReportCount 0; Usage [0x2]; StringIndex 0; DesignatorIndex 0; Delim 0;) 002f:trace:hid:debug_collection START Collection 1 <<< Physical, parent: 00000000005B5B60, 0 features, 0 collections 002f:trace:hid:debugstr_caps (Collection Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 0; PhysicalMin 0; PhysicalMax 0; UnitsExp 0; Units 0; BitSize 0; ReportID 0; ReportCount 0; Usage [0x1]; StringIndex 0; DesignatorIndex 0; Delim 0;) 002f:trace:hid:debug_collection >>> END Collection 1 002f:trace:hid:debug_collection >>> END Collection 0 002f:trace:hid:debug_collection >>> END Collection 1 002f:trace:hid:debug_print_preparsed START PREPARSED Data <<< dwSize: 888 Usage: 2, UsagePage: 1, InputReportByteLength: 0, tOutputReportByteLength: 0, FeatureReportByteLength: 0, NumberLinkCollectionNodes: 2, NumberInputButtonCaps: 0, NumberInputValueCaps: 0, NumberInputDataIndices: 0, NumberOutputButtonCaps: 0, NumberOutputValueCaps: 0, NumberOutputDataIndices: 0, NumberFeatureButtonCaps: 0, NumberFeatureValueCaps: 0, NumberFeatureDataIndices: 0, reportCount[HidP_Input]: 0, reportCount[HidP_Output]: 0, reportCount[HidP_Feature]: 0, elementOffset: 860 002f:trace:hid:debug_print_preparsed >>> END Preparsed Data 002f:trace:hid:HidD_GetHidGuid (0000000000A5E030) 002f:trace:hid:HID_PNP_Dispatch 00000000005B5620, 0000000000640C30 002f:trace:hid:HID_PNP_Dispatch IRP_MN_QUERY_ID[0] 002f:trace:hid:HID_PNP_Dispatch 00000000005B5620, 0000000000640C30 002f:trace:hid:HID_PNP_Dispatch IRP_MN_QUERY_ID[3] 002f:trace:hid:HID_PNP_Dispatch 00000000005B5620, 0000000000640C30 002f:trace:hid:HID_PNP_Dispatch IRP_MN_QUERY_ID[0] 002f:trace:hid:HID_PNP_Dispatch 00000000005B5620, 0000000000640C30 002f:trace:hid:HID_PNP_Dispatch IRP_MN_QUERY_ID[3] 002f:trace:hid:RingBuffer_Create Create Ring Buffer with buffer size 16 002f:trace:hid:HID_PNP_Dispatch 00000000005B5620, 0000000000640C30 002f:trace:hid:HID_PNP_Dispatch Opened link handle: 00000000544A4DEB for L"\??\HID#VID_0000&PID_0000#0&WINEMOUSE&0&0#{4D1E55B2-F16F-11CF-88CB-001111000030}" 0032:trace:hid:PNP_AddDevice Adding device to PDO 00000000005B3550, id L"SDLJOY\vid_046d&pid_c215&IG_00"\L"272&030000006d04000015c2000010010000&0&0". 0032:trace:hid:HID_CreateDevice Create base hid device L"\Device\HID#00000000005B4FB0&00000000005B3550" 0032:trace:hid:PNP_AddDevice Created device 00000000005BC6E0 0032:trace:hid:add_device (00000000005B4FB0, 00000000005BC6E0) 0032:trace:hid:ParseDescriptor Descriptor[122]: 5 1 9 5 a1 1 9 1 a1 0 5 1 9 30 9 31 9 33 9 34 17 0 0 0 0 27 ff ff 0 0 37 0 0 0 0 47 ff ff 0 0 75 10 95 4 81 2 5 1 9 32 9 35 16 0 0 26 ff 7f 36 0 0 46 ff 7f 75 10 95 2 81 2 5 9 19 1 29 b 15 0 25 1 0032:trace:hid:ParseDescriptor 35 0 45 1 95 b 75 1 81 2 5 1 9 39 15 1 25 8 35 0 45 8 75 4 95 1 81 2 95 1 75 1 81 3 95 10 75 1 81 3 c0 c0 0032:trace:hid:parse_descriptor 0x5[0], type 1 , tag 0, size 1, val 1 0032:trace:hid:parse_descriptor 0x9[2], type 2 , tag 0, size 1, val 5 0032:trace:hid:parse_descriptor 0xa1[4], type 0 , tag 10, size 1, val 1 0032:trace:hid:parse_descriptor 0x9[6], type 2 , tag 0, size 1, val 1 0032:trace:hid:parse_descriptor 0xa1[8], type 0 , tag 10, size 1, val 0 0032:trace:hid:parse_descriptor 0x5[10], type 1 , tag 0, size 1, val 1 0032:trace:hid:parse_descriptor 0x9[12], type 2 , tag 0, size 1, val 48 0032:trace:hid:parse_descriptor 0x9[14], type 2 , tag 0, size 1, val 49 0032:trace:hid:parse_descriptor 0x9[16], type 2 , tag 0, size 1, val 51 0032:trace:hid:parse_descriptor 0x9[18], type 2 , tag 0, size 1, val 52 0032:trace:hid:parse_descriptor 0x17[20], type 1 , tag 1, size 4, val 0 0032:trace:hid:parse_descriptor 0x27[25], type 1 , tag 2, size 4, val 65535 0032:trace:hid:parse_descriptor 0x37[30], type 1 , tag 3, size 4, val 0 0032:trace:hid:parse_descriptor 0x47[35], type 1 , tag 4, size 4, val 65535 0032:trace:hid:parse_descriptor 0x75[40], type 1 , tag 7, size 1, val 16 0032:trace:hid:parse_descriptor 0x95[42], type 1 , tag 9, size 1, val 4 0032:trace:hid:parse_descriptor 0x81[44], type 0 , tag 8, size 1, val 2 0032:trace:hid:parse_descriptor 0x5[46], type 1 , tag 0, size 1, val 1 0032:trace:hid:parse_descriptor 0x9[48], type 2 , tag 0, size 1, val 50 0032:trace:hid:parse_descriptor 0x9[50], type 2 , tag 0, size 1, val 53 0032:trace:hid:parse_descriptor 0x16[52], type 1 , tag 1, size 2, val 0 0032:trace:hid:parse_descriptor 0x26[55], type 1 , tag 2, size 2, val 32767 0032:trace:hid:parse_descriptor 0x36[58], type 1 , tag 3, size 2, val 0 0032:trace:hid:parse_descriptor 0x46[61], type 1 , tag 4, size 2, val 32767 0032:trace:hid:parse_descriptor 0x75[64], type 1 , tag 7, size 1, val 16 0032:trace:hid:parse_descriptor 0x95[66], type 1 , tag 9, size 1, val 2 0032:trace:hid:parse_descriptor 0x81[68], type 0 , tag 8, size 1, val 2 0032:trace:hid:parse_descriptor 0x5[70], type 1 , tag 0, size 1, val 9 0032:trace:hid:parse_descriptor 0x19[72], type 2 , tag 1, size 1, val 1 0032:trace:hid:parse_descriptor 0x29[74], type 2 , tag 2, size 1, val 11 0032:trace:hid:parse_descriptor 0x15[76], type 1 , tag 1, size 1, val 0 0032:trace:hid:parse_descriptor 0x25[78], type 1 , tag 2, size 1, val 1 0032:trace:hid:parse_descriptor 0x35[80], type 1 , tag 3, size 1, val 0 0032:trace:hid:parse_descriptor 0x45[82], type 1 , tag 4, size 1, val 1 0032:trace:hid:parse_descriptor 0x95[84], type 1 , tag 9, size 1, val 11 0032:trace:hid:parse_descriptor 0x75[86], type 1 , tag 7, size 1, val 1 0032:trace:hid:parse_descriptor 0x81[88], type 0 , tag 8, size 1, val 2 0032:trace:hid:parse_descriptor 0x5[90], type 1 , tag 0, size 1, val 1 0032:trace:hid:parse_descriptor 0x9[92], type 2 , tag 0, size 1, val 57 0032:trace:hid:parse_descriptor 0x15[94], type 1 , tag 1, size 1, val 1 0032:trace:hid:parse_descriptor 0x25[96], type 1 , tag 2, size 1, val 8 0032:trace:hid:parse_descriptor 0x35[98], type 1 , tag 3, size 1, val 0 0032:trace:hid:parse_descriptor 0x45[100], type 1 , tag 4, size 1, val 8 0032:trace:hid:parse_descriptor 0x75[102], type 1 , tag 7, size 1, val 4 0032:trace:hid:parse_descriptor 0x95[104], type 1 , tag 9, size 1, val 1 0032:trace:hid:parse_descriptor 0x81[106], type 0 , tag 8, size 1, val 2 0032:trace:hid:parse_descriptor 0x95[108], type 1 , tag 9, size 1, val 1 0032:trace:hid:parse_descriptor 0x75[110], type 1 , tag 7, size 1, val 1 0032:trace:hid:parse_descriptor 0x81[112], type 0 , tag 8, size 1, val 3 0032:trace:hid:parse_descriptor 0x95[114], type 1 , tag 9, size 1, val 16 0032:trace:hid:parse_descriptor 0x75[116], type 1 , tag 7, size 1, val 1 0032:trace:hid:parse_descriptor 0x81[118], type 0 , tag 8, size 1, val 3 0032:trace:hid:parse_descriptor 0xc0[120], type 0 , tag 12, size 0, val 0 0032:trace:hid:parse_descriptor 0xc0[121], type 0 , tag 12, size 0, val 0 0032:trace:hid:debug_collection START Collection 1 <<< Physical, parent: 0000000000000000, 0 features, 1 collections 0032:trace:hid:debugstr_caps (Collection Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 0; PhysicalMin 0; PhysicalMax 0; UnitsExp 0; Units 0; BitSize 0; ReportID 0; ReportCount 0; Usage [0x5]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_collection START Collection 0 <<< Application, parent: 00000000005BCCB0, 0 features, 1 collections 0032:trace:hid:debugstr_caps (Collection Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 0; PhysicalMin 0; PhysicalMax 0; UnitsExp 0; Units 0; BitSize 0; ReportID 0; ReportCount 0; Usage [0x5]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_collection START Collection 1 <<< Physical, parent: 00000000005BCD40, 10 features, 0 collections 0032:trace:hid:debugstr_caps (Collection Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 0; PhysicalMin 0; PhysicalMax 0; UnitsExp 0; Units 0; BitSize 0; ReportID 0; ReportCount 0; Usage [0x1]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_feature [Feature type Input [0]; Data; Var; Abs; NoWrap; Linear; PrefStat; NoNull; NonVolatile; Buffered] 0032:trace:hid:debugstr_caps (Feature Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 65535; PhysicalMin 0; PhysicalMax 65535; UnitsExp 0; Units 0; BitSize 16; ReportID 0; ReportCount 1; Usage [0x30]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_feature [Feature type Input [1]; Data; Var; Abs; NoWrap; Linear; PrefStat; NoNull; NonVolatile; Buffered] 0032:trace:hid:debugstr_caps (Feature Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 65535; PhysicalMin 0; PhysicalMax 65535; UnitsExp 0; Units 0; BitSize 16; ReportID 0; ReportCount 1; Usage [0x31]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_feature [Feature type Input [2]; Data; Var; Abs; NoWrap; Linear; PrefStat; NoNull; NonVolatile; Buffered] 0032:trace:hid:debugstr_caps (Feature Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 65535; PhysicalMin 0; PhysicalMax 65535; UnitsExp 0; Units 0; BitSize 16; ReportID 0; ReportCount 1; Usage [0x33]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_feature [Feature type Input [3]; Data; Var; Abs; NoWrap; Linear; PrefStat; NoNull; NonVolatile; Buffered] 0032:trace:hid:debugstr_caps (Feature Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 65535; PhysicalMin 0; PhysicalMax 65535; UnitsExp 0; Units 0; BitSize 16; ReportID 0; ReportCount 1; Usage [0x34]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_feature [Feature type Input [4]; Data; Var; Abs; NoWrap; Linear; PrefStat; NoNull; NonVolatile; Buffered] 0032:trace:hid:debugstr_caps (Feature Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 32767; PhysicalMin 0; PhysicalMax 32767; UnitsExp 0; Units 0; BitSize 16; ReportID 0; ReportCount 1; Usage [0x32]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_feature [Feature type Input [5]; Data; Var; Abs; NoWrap; Linear; PrefStat; NoNull; NonVolatile; Buffered] 0032:trace:hid:debugstr_caps (Feature Caps: UsagePage 0x1; LogicalMin 0; LogicalMax 32767; PhysicalMin 0; PhysicalMax 32767; UnitsExp 0; Units 0; BitSize 16; ReportID 0; ReportCount 1; Usage [0x35]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_feature [Feature type Input [6]; Data; Var; Abs; NoWrap; Linear; PrefStat; NoNull; NonVolatile; Buffered] 0032:trace:hid:debugstr_caps (Feature Caps: UsagePage 0x9; LogicalMin 0; LogicalMax 1; PhysicalMin 0; PhysicalMax 1; UnitsExp 0; Units 0; BitSize 1; ReportID 0; ReportCount 11; Usage [0x1 - 0xb]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_feature [Feature type Input [7]; Data; Var; Abs; NoWrap; Linear; PrefStat; NoNull; NonVolatile; Buffered] 0032:trace:hid:debugstr_caps (Feature Caps: UsagePage 0x1; LogicalMin 1; LogicalMax 8; PhysicalMin 0; PhysicalMax 8; UnitsExp 0; Units 0; BitSize 4; ReportID 0; ReportCount 1; Usage [0x39]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_feature [Feature type Input [8]; Const; Var; Abs; NoWrap; Linear; PrefStat; NoNull; NonVolatile; Buffered] 0032:trace:hid:debugstr_caps (Feature Caps: UsagePage 0x1; LogicalMin 1; LogicalMax 8; PhysicalMin 0; PhysicalMax 8; UnitsExp 0; Units 0; BitSize 1; ReportID 0; ReportCount 1; Usage [0x0]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_feature [Feature type Input [9]; Const; Var; Abs; NoWrap; Linear; PrefStat; NoNull; NonVolatile; Buffered] 0032:trace:hid:debugstr_caps (Feature Caps: UsagePage 0x1; LogicalMin 1; LogicalMax 8; PhysicalMin 0; PhysicalMax 8; UnitsExp 0; Units 0; BitSize 1; ReportID 0; ReportCount 16; Usage [0x0]; StringIndex 0; DesignatorIndex 0; Delim 0;) 0032:trace:hid:debug_collection >>> END Collection 1 0032:trace:hid:debug_collection >>> END Collection 0 0032:trace:hid:debug_collection >>> END Collection 1 0032:trace:hid:debug_print_preparsed START PREPARSED Data <<< dwSize: 1744 Usage: 5, UsagePage: 1, InputReportByteLength: 17, tOutputReportByteLength: 0, FeatureReportByteLength: 0, NumberLinkCollectionNodes: 2, NumberInputButtonCaps: 1, NumberInputValueCaps: 7, NumberInputDataIndices: 18, NumberOutputButtonCaps: 0, NumberOutputValueCaps: 0, NumberOutputDataIndices: 0, NumberFeatureButtonCaps: 0, NumberFeatureValueCaps: 0, NumberFeatureDataIndices: 0, reportCount[HidP_Input]: 1, reportCount[HidP_Output]: 0, reportCount[HidP_Feature]: 0, elementOffset: 876 0032:trace:hid:debug_print_report START Report 0 <<< INPUT report : bitSize: 136 elementCount: 8 0032:trace:hid:debug_print_value_cap INPUT Value: 0x1/0x30: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 65535, PhysicalMin 0, PhysicalMax 65535 -- StartBit 8/16 0032:trace:hid:debug_print_value_cap INPUT Value: 0x1/0x31: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 65535, PhysicalMin 0, PhysicalMax 65535 -- StartBit 24/16 0032:trace:hid:debug_print_value_cap INPUT Value: 0x1/0x33: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 65535, PhysicalMin 0, PhysicalMax 65535 -- StartBit 40/16 0032:trace:hid:debug_print_value_cap INPUT Value: 0x1/0x34: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 65535, PhysicalMin 0, PhysicalMax 65535 -- StartBit 56/16 0032:trace:hid:debug_print_value_cap INPUT Value: 0x1/0x32: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 32767, PhysicalMin 0, PhysicalMax 32767 -- StartBit 72/16 0032:trace:hid:debug_print_value_cap INPUT Value: 0x1/0x35: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 32767, PhysicalMin 0, PhysicalMax 32767 -- StartBit 88/16 0032:trace:hid:debug_print_button_cap INPUT Button: 0x9/[0x0001-0x000b]: ReportId 0, startBit 104/11 0032:trace:hid:debug_print_value_cap INPUT Value: 0x1/0x39: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 4, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 1, Logical Max 8, PhysicalMin 0, PhysicalMax 8 -- StartBit 115/4 0032:trace:hid:debug_print_report >>> END Report 0 0032:trace:hid:debug_print_report START Report 0 <<< FEATURE report : bitSize: 136 elementCount: 8 0032:trace:hid:debug_print_value_cap FEATURE Value: 0x1/0x30: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 65535, PhysicalMin 0, PhysicalMax 65535 -- StartBit 8/16 0032:trace:hid:debug_print_value_cap FEATURE Value: 0x1/0x31: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 65535, PhysicalMin 0, PhysicalMax 65535 -- StartBit 24/16 0032:trace:hid:debug_print_value_cap FEATURE Value: 0x1/0x33: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 65535, PhysicalMin 0, PhysicalMax 65535 -- StartBit 40/16 0032:trace:hid:debug_print_value_cap FEATURE Value: 0x1/0x34: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 65535, PhysicalMin 0, PhysicalMax 65535 -- StartBit 56/16 0032:trace:hid:debug_print_value_cap FEATURE Value: 0x1/0x32: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 32767, PhysicalMin 0, PhysicalMax 32767 -- StartBit 72/16 0032:trace:hid:debug_print_value_cap FEATURE Value: 0x1/0x35: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 16, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 0, Logical Max 32767, PhysicalMin 0, PhysicalMax 32767 -- StartBit 88/16 0032:trace:hid:debug_print_button_cap FEATURE Button: 0x9/[0x0001-0x000b]: ReportId 0, startBit 104/11 0032:trace:hid:debug_print_value_cap FEATURE Value: 0x1/0x39: ReportId 0, IsAbsolute 1, HasNull 0, Bit Size 4, ReportCount 1, UnitsExp 0, Units 0, LogicalMin 1, Logical Max 8, PhysicalMin 0, PhysicalMax 8 -- StartBit 115/4 0032:trace:hid:debug_print_report >>> END Report 0 0032:trace:hid:debug_print_preparsed >>> END Preparsed Data 0032:trace:hid:HidD_GetHidGuid (000000000108E800) 0032:trace:hid:HID_PNP_Dispatch 00000000005BC6E0, 0000000000640910 0032:trace:hid:HID_PNP_Dispatch IRP_MN_QUERY_ID[0] 0032:trace:hid:HID_PNP_Dispatch 00000000005BC6E0, 0000000000640910 0032:trace:hid:HID_PNP_Dispatch IRP_MN_QUERY_ID[3] 0032:trace:hid:RingBuffer_Create Create Ring Buffer with buffer size 33 0032:trace:hid:HID_PNP_Dispatch 00000000005BC6E0, 0000000000640910 0032:trace:hid:HID_PNP_Dispatch Opened link handle: 00000000544A4DE7 for L"\??\HID#VID_046D&PID_C215&IG_00#272&030000006D04000015C2000010010000&0&0#{4D1E55B2-F16F-11CF-88CB-001111000030}" 0009:trace:hid:HidD_GetHidGuid (0062F710) 0009:trace:hid:HidD_GetPreparsedData (00000098 0062F6F0) 0030:trace:hid:HID_Device_create Open handle on device 00000000005B5620 0030:trace:hid:HID_Device_ioctl device 00000000005B5620 ioctl(b01a8) 0030:trace:hid:HID_Device_ioctl device 00000000005B5620 ioctl(b0193) 0009:trace:hid:HidD_FreePreparsedData (007140B0) 0030:trace:hid:HID_Device_close Close handle on device 00000000005B5620 0009:trace:hid:HidD_GetPreparsedData (00000098 0062F6F0) 0030:trace:hid:HID_Device_create Open handle on device 00000000005BC6E0 0030:trace:hid:HID_Device_ioctl device 00000000005BC6E0 ioctl(b01a8) 0030:trace:hid:HID_Device_ioctl device 00000000005BC6E0 ioctl(b0193) 0009:trace:hid:HidD_GetProductString (00000098 0062F5F0 256) 0030:trace:hid:HID_Device_ioctl device 00000000005BC6E0 ioctl(b01be) 0030:trace:hid:handle_minidriver_string got string L"Logitech Logitech Extreme 3D" from minidriver
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #10 from Luca Boccassi luca.boccassi@gmail.com --- When running wine control joy.cpl, the exact same debug messages are shown - but everything works as expected
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #11 from Luca Boccassi luca.boccassi@gmail.com --- With +plugplay, for the non working keys/axis I only see when pressing:
0032:trace:plugplay:bus_enumerate_hid_devices (0x7fc31a92fb00)
For the working keys/axis, I see:
0032:trace:plugplay:bus_enumerate_hid_devices (0x7fc31a92fb00) 0032:trace:plugplay:bus_enumerate_hid_devices (0x7fc31a92fb00) 0032:trace:plugplay:bus_enumerate_hid_devices (0x7fc31a92fb00) 0032:trace:plugplay:bus_enumerate_hid_devices (0x7fc31a92fb00) 0039:trace:plugplay:hid_internal_dispatch (0x5b3530, 0x640c70) 0039:trace:plugplay:hid_internal_dispatch (0x5b3530, 0x640910)
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #12 from Luca Boccassi luca.boccassi@gmail.com --- I tried editing the registry to disable hidraw. The throttle and Z axis are now recognised in hid.exe, but unfortunately still no change in BF4.
HKEY_LOCAL_MACHINE->System->CurrentControlSet->Services->WineBus
DisableHidraw 1 Enable SDL 0 DisableInput 0
https://bugs.winehq.org/show_bug.cgi?id=48802
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #13 from Zebediah Figura z.figura12@gmail.com --- Please don't paste logs in comments, but attach them instead.
Probably the most interesting case here is hidraw, since that should in theory match Windows exactly, without losing any information after passing through SDL or evdev. I own a Logitech Extreme 3D Pro, and according to my testing we're reporting all of the same data from the HID layer (at least since 5.5). Despite comment 12, the log pasted in comment 9 implies that the SDL backend was used. Can you please try disabling SDL and evdev, and enabling the hidraw backend instead?
I do see some apparent misbehaviour with hid.exe: only buttons 1 through 8 are reported; the throttle is not reported anywhere (though the yaw does work), and the hat switch only seems to be reported when pressed upwards. However, this seems to be a reflection of bugs in hid.exe itself; I see the same behaviour on Windows. (Actually, Windows seems worse for some reason: it doesn't acknowledge yaw, the X axis doesn't seem to work right, and the hat switch only registers as "up" inconsistently.)
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #14 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Zebediah Figura from comment #13)
Please don't paste logs in comments, but attach them instead.
Probably the most interesting case here is hidraw, since that should in theory match Windows exactly, without losing any information after passing through SDL or evdev. I own a Logitech Extreme 3D Pro, and according to my testing we're reporting all of the same data from the HID layer (at least since 5.5). Despite comment 12, the log pasted in comment 9 implies that the SDL backend was used. Can you please try disabling SDL and evdev, and enabling the hidraw backend instead?
I do see some apparent misbehaviour with hid.exe: only buttons 1 through 8 are reported; the throttle is not reported anywhere (though the yaw does work), and the hat switch only seems to be reported when pressed upwards. However, this seems to be a reflection of bugs in hid.exe itself; I see the same behaviour on Windows. (Actually, Windows seems worse for some reason: it doesn't acknowledge yaw, the X axis doesn't seem to work right, and the hat switch only registers as "up" inconsistently.)
Sorry for not being more specific: the comments were reflecting incremental testing, so the logs pasted in comment 9 were with the default settings in the registry.
I have now disabled SDL and evdev in the registry, and I now see the exact same behaviour you see in hid.exe. However the situation in BF4 is now worse - while before X/Y axis and some keys worked, now nothing does. No button, no axis - it's completely dead in the water. joy.cpl continues to work perfectly, it recognises everything correctly.
I'll attach the logs of bf4.exe ran with +hid,+hid_report,+plugplay - games starts, went into settings, tried to bind a key to any joystick action.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #15 from Luca Boccassi luca.boccassi@gmail.com --- Created attachment 66765 --> https://bugs.winehq.org/attachment.cgi?id=66765 BF4 logs evdev disabled, SDL disabled, +hid,+hid_report,+plugplay
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #16 from Zebediah Figura z.figura12@gmail.com --- Can you please add the debug channels WINEDEBUG=+hid,+hid_report,+plugplay,+hidp,+xinput,+rawinput,+pid,+timestamp?
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #17 from Luca Boccassi luca.boccassi@gmail.com --- Created attachment 66768 --> https://bugs.winehq.org/attachment.cgi?id=66768 BF4 logs evdev disabled, SDL disabled, +hid,+hid_report,+plugplay,+hidp,+xinput,+rawinput,+pid,+timestamp
(In reply to Zebediah Figura from comment #16)
Can you please add the debug channels WINEDEBUG=+hid,+hid_report,+plugplay,+hidp,+xinput,+rawinput,+pid,+timestamp?
Done, same as before - started game, went in settings to bind key, moved/pressed all buttons on joystick
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #18 from Zebediah Figura z.figura12@gmail.com --- Okay, the initial symptoms you report seem to be because the game uses xinput. xinput isn't meant for things that aren't gamepads, but the SDL backend maps things to gamepads by default. That can be disabled by setting the "Map Controllers" registry value to 0. Personally I think we should disable it by default, but anyway...
The game must be falling back to dinput in the case that xinput isn't available, but unfortunately I forgot to ask for +dinput to figure out why that's failing. Can you add that, please?
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #19 from Luca Boccassi luca.boccassi@gmail.com --- Created attachment 66774 --> https://bugs.winehq.org/attachment.cgi?id=66774 BF4 logs evdev disabled, SDL enabled, hidraw enabled, map controllers disabled , +dinput,+hid,+hid_report,+plugplay,+hidp,+xinput,+rawinput,+pid,+timestamp
(In reply to Zebediah Figura from comment #18)
Okay, the initial symptoms you report seem to be because the game uses xinput. xinput isn't meant for things that aren't gamepads, but the SDL backend maps things to gamepads by default. That can be disabled by setting the "Map Controllers" registry value to 0. Personally I think we should disable it by default, but anyway...
The game must be falling back to dinput in the case that xinput isn't available, but unfortunately I forgot to ask for +dinput to figure out why that's failing. Can you add that, please?
Done. Set Map Controllers to 0, but it didn't make a difference - tried with SDL enabled, evedv disabled, hidraw enabled, map controllers disabled. Log attached.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #20 from Zebediah Figura z.figura12@gmail.com --- I'm kind of curious if this joystick actually works on Windows...
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #21 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Zebediah Figura from comment #20)
I'm kind of curious if this joystick actually works on Windows...
Yes, it does - when BF4 first came out years ago I used it just fine on Windows 7.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #22 from Zebediah Figura z.figura12@gmail.com --- Ugh. Unfortunately the game asks dinput to enumerate joysticks, but doesn't seem to do anything with the information returned (it doesn't even ask what axes and buttons the device has). I'd guess it's incorrect somehow, but I checked with Windows 10 and it's not clear that it is.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #23 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Zebediah Figura from comment #22)
Ugh. Unfortunately the game asks dinput to enumerate joysticks, but doesn't seem to do anything with the information returned (it doesn't even ask what axes and buttons the device has). I'd guess it's incorrect somehow, but I checked with Windows 10 and it's not clear that it is.
I see - that's unfortunate, thanks for checking. So is there anything at all we can do?
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #24 from Zebediah Figura z.figura12@gmail.com --- Sure, presumably we're doing *something* wrong. I'm just not sure how to debug it any further, at least not without the game in front of me.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #25 from Zebediah Figura z.figura12@gmail.com --- Actually, installing native dinput8 might be interesting.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #26 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Zebediah Figura from comment #25)
Actually, installing native dinput8 might be interesting.
Do you have a pointer handy on how to do that? Thanks!
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #27 from Zebediah Figura z.figura12@gmail.com --- Yes, you can run `winetricks dinput8`.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #28 from Luca Boccassi luca.boccassi@gmail.com --- Created attachment 66783 --> https://bugs.winehq.org/attachment.cgi?id=66783 BF4 logs native dinput8.dll, input enabled, hidraw disabled, SDL disabled, +dinput,+hid,+hid_report,+plugplay,+hidp,+xinput,+rawinput,+pid,+timestamp
(In reply to Zebediah Figura from comment #27)
Yes, you can run `winetricks dinput8`.
No luck unfortunately. Works great in hid.exe, but completely dead in BF4.
Here's what I've done - winetricks does not support 64bit dinput8 (BF4 is 64bit).
Following indications on https://github.com/Winetricks/winetricks/issues/1287
wget https://download.microsoft.com/download/8/3/b/83b8c814-b000-44a4-b667-8c1f58... cabextract -F x86_microsoft-windows-directx-directinput_31bf3856ad364e35_6.0.6001.18000_none_1d981a3c0baebdc7/dinput8.dll ./Windows6.0-KB936330-X64-wave0.exe cabextract -F amd64_microsoft-windows-directx-directinput_31bf3856ad364e35_6.0.6001.18000_none_79b6b5bfc40c2efd/dinput8.dll ./Windows6.0-KB936330-X64-wave0.exe mv /home/luca/.wine/drive_c/windows/system32/dinput8.dll /home/luca/.wine/drive_c/windows/system32/dinput8.dll.old mv /home/luca/.wine/drive_c/windows/syswow64/dinput8.dll /home/luca/.wine/drive_c/windows/syswow64/dinput8.dll.old cp ./amd64_microsoft-windows-directx-directinput_31bf3856ad364e35_6.0.6001.18000_none_79b6b5bfc40c2efd/dinput8.dll /home/luca/.wine/drive_c/windows/system32/dinput8.dll cp ./x86_microsoft-windows-directx-directinput_31bf3856ad364e35_6.0.6001.18000_none_1d981a3c0baebdc7/dinput8.dll /home/luca/.wine/drive_c/windows/syswow64/dinput8.dll wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v dinput8 /d native /f
At this point hid.exe worked fine, BF4 still didn't. Tried various combinations of DisableInput, DisableHidraw, Enable SDL, Map Controllers with no luck.
The attached log is with DisableHidraw 1, DisableInput 0, Enable SDL 0, Map Controllers 0, running BF4 and trying to map all joystick buttons/axis as usual.
Anything else to try? What's the difference between dinput.dll and dinput8.dll?
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #29 from Zebediah Figura z.figura12@gmail.com --- (In reply to Luca Boccassi from comment #28)
At this point hid.exe worked fine, BF4 still didn't. Tried various combinations of DisableInput, DisableHidraw, Enable SDL, Map Controllers with no luck.
I wouldn't expect hid.exe to change behaviour, but joy.cpl might.
Anything else to try? What's the difference between dinput.dll and dinput8.dll?
I'm not sure I have any other ideas at the moment, sorry.
dinput and dinput8 are essentially just two different versions of the API. Battlefield 4 uses the latter.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #30 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Zebediah Figura from comment #29)
(In reply to Luca Boccassi from comment #28)
At this point hid.exe worked fine, BF4 still didn't. Tried various combinations of DisableInput, DisableHidraw, Enable SDL, Map Controllers with no luck.
I wouldn't expect hid.exe to change behaviour, but joy.cpl might.
Yeah, joy.cpl stops seeing the joystick.
Anything else to try? What's the difference between dinput.dll and dinput8.dll?
I'm not sure I have any other ideas at the moment, sorry.
dinput and dinput8 are essentially just two different versions of the API. Battlefield 4 uses the latter.
I see. Were you able to at least reproduce the issue? Do you have access to BF4?
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #31 from Zebediah Figura z.figura12@gmail.com --- I do not have access to Battlefield 4, no.
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #32 from Luca Boccassi luca.boccassi@gmail.com --- (In reply to Zebediah Figura from comment #31)
I do not have access to Battlefield 4, no.
If you are up for more debugging I'd be happy to donate a copy, if it can help?
https://bugs.winehq.org/show_bug.cgi?id=48802
--- Comment #33 from Zebediah Figura z.figura12@gmail.com --- I appreciate the offer, but I'm not sure I want to make that commitment without knowing if I'll be able to fix the bug.
(Sorry for the late reply; this kind of got lost.)
https://bugs.winehq.org/show_bug.cgi?id=48802
Anya animegirl@stronzi.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |animegirl@stronzi.org
https://bugs.winehq.org/show_bug.cgi?id=48802
soredake broaden_acid002@simplelogin.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|broaden_acid002@simplelogin | |.com |