Created attachment 307534 [details] 8BitDo product packaging Hi, I have two dongles from 8BitDo: one of them is the USB Wireless Adapter 2 and the other is the one that comes with Ultimate 2.4G Wireless Controller. The games that run through Proton/Wine and the Flatpak versions of RetroArch and Yamagi Quake 2 (the second by setting previously the permission for input devices through Flatseal) work perfectly with the 8BitDo Pro 2 connected to the USB Wireless Adapter 2 and 8BitDo Ultimate 2.4G Wireless Controller, but the controllers aren't detected with some native games for Linux made with Unity. The 8Bitdo Pro 2 is detected through Bluetooth because is identified as an Xbox 360 controller and not as an 8BitDo controller. Some of the games affected are BallsticNG, Huntdown, Art of Rally and Death Trash, but Hollow Knight works correctly. The failure is different depending of the game. I some of them the left stick, the start button and the A button work, but in others nothing works. Although the failure can be different, I think that the root is the same. You can try the demo from GOG using Heroic Games Launcher. https://www.gog.com/en/game/death_trash_demo https://www.gog.com/en/game/huntdown https://www.gog.com/en/game/ballisticng https://www.gog.com/en/game/art_of_rally If you try the games through Steam, you probably don't see the bug because of you are using Steam Input, but with Heroic Games Launcher you use the native support for controllers provided by the games. You can also try disabling Steam Input. If I run 'lsusb' I get the next results: -The vendor ID is 2dc8 -The ID of the 8BitDo Ultimate 2.4G Wireless Controller dongle without the controller connected is 3109 -The ID of the 8BitDo Ultimate 2.4G Wireless Controller dongle with the controller connected is 3106 -The ID of the USB Wireless Adapter 2 dongle with nothing connected is 3107 I don't know if something can be faked from the kernel to say to that Unity games that the controller is a generic Xbox controller and not an 8BitDo Controller. Thanks for reading and sorry if my English is not fully correct.
I'm just a random user and frankly I'm a bit sick with flu or the latest CN virus right now, so I can't think straight, but to me this seems like a userspace bug. I'd probably try filing a bug with libinput project and see if they maybe can act as some intermediary interface between the various controllers and the actual games via the overall Wayland input stack. Although I can imagine they might not want to, since stuff like Sony DualSense [to name just the most prominent one] might be very tricky to support at that level of the desktop stack. Best of luck on this, Linux game controller support is a real papercut.
I ran the usb-devices twice, once with controller connected to the dongle and once with the dongle without the controller connected. These are the results I get: Without controller: T: Bus=01 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 9 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=2dc8 ProdID=3109 Rev=02.00 S: Manufacturer=8BitDo S: Product=IDLE S: SerialNumber=E417D884DFA3 C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid E: Ad=02(O) Atr=03(Int.) MxPS= 64 Ivl=8ms E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=8ms With controller: T: Bus=01 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 8 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1 P: Vendor=2dc8 ProdID=3106 Rev=01.14 S: Manufacturer=8BitDo S: Product=8BitDo Ultimate wireless Controller for PC S: SerialNumber=E417D884DFA3 C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=5d Prot=01 Driver=xpad E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl=2ms E: Ad=81(I) Atr=03(Int.) MxPS= 32 Ivl=2ms I don't know if the XPAD controller can be modified to fake a standard Xbox 360 or Xbox Series X|S controller.
The USB Wireless Adapter 2 also uses de XPAD controller: T: Bus=01 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 13 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1 P: Vendor=2dc8 ProdID=3106 Rev=01.00 S: Manufacturer=8BitDo S: Product=8BitDo Receiver S: SerialNumber=E417D83F20E9 C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=5d Prot=01 Driver=xpad E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl=8ms E: Ad=81(I) Atr=03(Int.) MxPS= 32 Ivl=4ms