RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    More 8BitDo Pro 2 Controller Weirdness

    Scheduled Pinned Locked Moved Help and Support
    xpadneo8bitdojoystick
    4 Posts 2 Posters 2.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jernserval
      last edited by jernserval

      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?
      mituM 1 Reply Last reply Reply Quote 0
      • J
        jernserval
        last edited by

        PS 8BitDo Pro 2 Firmware is at latest, v3.02

        1 Reply Last reply Reply Quote 0
        • J
          jernserval
          last edited by

          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"
          

          Found here.

          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?

          1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator @jernserval
            last edited by

            @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.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            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.