More 8BitDo Pro 2 Controller Weirdness
-
System: RPI4, 4.8, Fresh install, 8BitDo Pro 2 Controllers, configured through Emulation Station, XPadNeo installed
It seems the problem stems from the compatibility switch, SADX, X-Input (XBox Controller mode) and D-Input (what they call "Android" mode). The bummer is that I got the Pro 2 for rumble, and the brake buttons, both of which are non-functional in the D-Input setting, however that's the only reliable setting I can get working atm.
Again, D-Input works ok.... but lacks force feedback, menu toggle doesn't work, and neither do the brakes. Also, the analog controls are a bit sensitive and finnicky.. would be nice to map to digital.
So, here's what I've found:
8BitDo Pro 2, Switch on D
- input_vendor_id = "11720" (8BitDo)
- input_product_id = "24835" (Pro 2)
- Retroarch pulls this config: https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/dinput/8BitDo_Pro2_BT.cfg
8BitDo Pro 2, switch on "X"
- Hex vid:pid = 045E:02E0 -> Decimal vid:pid = 1118:736
- input_vendor_id = "1118" (Microsoft)
- input_product_id = "736" (X Box One Wireless Controller)
- These incorrect VID/ PID (And thus, GUID?) .... presumably, this is to make things more compatible in some respects, for some use cases.
- Retroarch pulls this configuration I believe: https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/8BitDo_Pro2_BT_X.cfg
- same as: https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/sdl2/Xbox%20One%20Wireless%20Controller.cfg
Also says "xinput" .... should I have input driver as udev or xinput in retroarch?
When going to X-Input I got rid of the autoconfigs, es_input, and any other info configs that could trip me up.
xpadneo log entries on X-Input mode. Note: Hex PID 02E0 = X Box One Wireless Controller 028E is the Pro 2 PID.
- Aug 26 19:31:50 rpi4 kernel: [ 14.238038] hid_xpadneo: loading out-of-tree module taints kernel.
- Aug 26 19:31:50 rpi4 kernel: [ 14.238469] loaded hid-xpadneo v0.9.5
- Aug 26 19:31:50 rpi4 kernel: [ 14.238528] xpadneo 0005:045E:02E0.0003: buggy firmware detected, please upgrade to the latest version
- Aug 26 19:31:50 rpi4 kernel: [ 14.238535] xpadneo 0005:045E:02E0.0003: pretending XB1S Windows wireless mode (changed PID from 0x02E0 to 0x028E)
- Aug 26 19:31:50 rpi4 kernel: [ 14.238541] xpadneo 0005:045E:02E0.0003: working around wrong SDL2 mappings (changed version from 0x00000903 to 0x00001130)
- Aug 26 19:31:50 rpi4 kernel: [ 14.238547] xpadneo 0005:045E:02E0.0003: report descriptor size: 307 bytes
- Aug 26 19:31:50 rpi4 kernel: [ 14.238552] xpadneo 0005:045E:02E0.0003: fixing up report descriptor size
- Aug 26 19:31:50 rpi4 kernel: [ 14.239151] xpadneo 0005:045E:02E0.0003: battery detected
- Aug 26 19:31:50 rpi4 kernel: [ 14.239157] xpadneo 0005:045E:02E0.0003: enabling compliance with Linux Gamepad Specification
- Aug 26 19:31:50 rpi4 kernel: [ 14.239408] xpadneo 0005:045E:02E0.0003: input,hidraw2: BLUETOOTH HID v11.30 Gamepad [8BitDo Pro 2] on 8c:88:2b:45:fd:ff
- Aug 26 19:31:50 rpi4 kernel: [ 14.239416] xpadneo 0005:045E:02E0.0003: controller quirks: 0x00000027
- Aug 26 19:31:51 rpi4 kernel: [ 14.899524] xpadneo 0005:045E:02E0.0003: 8BitDo Pro 2 [e4:17:d8:ae:8a:57] connected
- Aug 26 19:56:31 rpi4 kernel: [ 524.208614] xpadneo 0005:045E:02E0.0003: reverting to original version (changed version from 0x00001130 to 0x00000903)
- Aug 26 19:56:31 rpi4 kernel: [ 524.208622] xpadneo 0005:045E:02E0.0003: reverting to original product (changed PID from 0x028E to 0x02E0)
- Aug 26 21:23:40 rpi4 kernel: [ 3483.611422] hid_xpadneo: loading out-of-tree module taints kernel.
- Aug 26 21:23:40 rpi4 kernel: [ 3483.611857] loaded hid-xpadneo v0.9.5
- Aug 26 21:41:04 rpi4 systemd-udevd[4349]: 0005:045E:02E0.0003: Failed to open ATTR{/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:1/0005:045E:02E0.0003/[drivers/hid:xpadneo]bind} for writing: No such file or directory
- Aug 26 21:41:04 rpi4 kernel: [ 294.701362] hid_xpadneo: loading out-of-tree module taints kernel.
I've had nothing but pain with 8BitDo stuff... sure they look nice, well built, but to get working reliably with RetroPie to one's liking........ it's just nuts. I've spent an insane amount of time just trying to get a single controller to be reliable across libretro / scummvm / ppsspp / dreamcast.... Kind of at my wits end.
Would really appreciate any help.
Questions:
- It appears there's some kind of naming conflict or problem when the 8BitDo tries to "spoof" as an XBox One controller?
- Xpadneo refers to configuration in it's docs, but there was no configuration after RetroPie-Setup install?
- hid_xpadneo: loading out-of-tree module taints kernel. - Does this mean I need to install the headers referenced in the xpadneo documentation? Was it not autoinstalled by RetroPie-Setup?
- Now in retroarch its saying "8BitDo Controller not configured" why would it say explicitly "not configured"?
- What is the way forward to get the most reliable experience with X-Input across retroarch and other emulators?
-
PS 8BitDo Pro 2 Firmware is at latest, v3.02
-
Here is a complete dump of the relevant info on Pastebin. This link includes:
Output from XPadneo
Retroarch.cfg
8BitDo Pro 2.cfg
es_input.cfg
gamecontrollerdb.txt
etc.Idea 1:
Note: udev rules have been cleared, however it's been suggested I add these to my udev rules:
# 8BitDo Pro 2; Bluetooth; USB SUBSYSTEM=="input", ATTRS{name}=="8BitDo Pro 2", ENV{ID_INPUT_JOYSTICK}="1", TAG+="uaccess" SUBSYSTEM=="input", ATTR{id/vendor}=="2dc8", ATTR{id/product}=="6003", ENV{ID_INPUT_JOYSTICK}="1", TAG+="uaccess"
Idea 2: Maybe fix the kernel issue xpadneo is going on about?
See install instructions here: https://atar-axis.github.io/xpadneo/
They reference running :
sudo apt-get install dkms linux-headers-`uname -r`
was this run on initial install from RetroPie-Setup script?
-
@jernserval said in More 8BitDo Pro 2 Controller Weirdness:
It appears there's some kind of naming conflict or problem when the 8BitDo tries to "spoof" as an XBox One controller?
No, I don't think so - conflicting with what ?
Xpadneo refers to configuration in it's docs, but there was no configuration after RetroPie-Setup install?
Configuration is optional, RetroPie doesn't add any, but you can add it if you'd like.
hid_xpadneo: loading out-of-tree module taints kernel. - Does this mean I need to install the headers referenced in the xpadneo documentation? Was it not autoinstalled by RetroPie-Setup?
No, that means what it says - it's an out-of-tree module, external to the Linux kernel. Kernel headers are already installed, otherwise the module wouldn't have compiled.
Now in retroarch its saying "8BitDo Controller not configured" why would it say explicitly "not configured"?
Because it's not configured ? This means there was not configuration profile found for the controller.
What is the way forward to get the most reliable experience with X-Input across retroarch and other emulators?
You haven't mentioned the issues you have with other emulators, but for RetroArch it's enough to configure the controller in EmulationStation in order to generate the configuration for it.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.