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

    8BitDo SF30 not working in retroarch, "not configured"

    Scheduled Pinned Locked Moved Help and Support
    8bitdobluetoothretroarch
    11 Posts 4 Posters 10.1k 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.
    • X
      xwons
      last edited by xwons

      To sum up, the bluetooth controller works in EmulationStation and Kodi, but not in the games (retroarch).

      I have spent many hours today trying to configure a 8BitDo SF30 Pro bluetooth gamepad without success. I followed the instructions in https://retropie.org.uk/docs/8Bitdo-Controller/, but there must be something wrong with either my controller or my retropie installation, which is basically a fresh install from two months ago, and updated using the retropie_setup script today.

      The controller has four different modes (Windows, Macos, Switch, Android). So, I first paired it (unknowingly) in switch mode (Start+Y). It appeared as "Pro controller" or something similar, but seemed to work nevertheless in Emulationstation and Kodi, but not in Retroarch (Pro controller not configured, it showed). Using the jstest /dev/input/js0 command I could see the keypressed and everything.

      Then I realized I had to configure it in Windows Mode (Start+X). I removed the previous pairing from the configuration, resetted the controller, restarting, and repairing it again. This time it appeared as "8bitdo SF30 pro" like in the tutorial. It seemed to pair correctly, and the device /dev/input/js0 was created, but it didn't respond. Using the jstest command, it looked like it was frozen, none of the buttons responded. I tried this step multiple times, with the exact result every time.

      I also tried it in android mode (Start+B), and the result was exactly the same as in Switch mode: works in menus, but not in games.

      At this point, I am at loss. Does anyone has any ideas? Is my controller faulty?

      PD: Other things I have tried:

      • Upgraded the gamepad firmware to the last version.
      • Downloading a keymap file for my controller (https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/8BitDo_SN30_Pro%2B_BT_B.cfg) changing the input device name to the actual input device and indicating retroarch.cfg the input_remapping_path where I placed the file.
      • Also disconnecting and reconnecting the gamepad while in a game.
      UberLumbyU mituM 2 Replies Last reply Reply Quote 0
      • UberLumbyU
        UberLumby @xwons
        last edited by

        @xwons I got the 8bitdo bluetooth adapter.
        I know that doesn't help your current situation, but I was never really fond of the on board bluetooth. It was always temperamental when I used it. It's strange though how retroarch isn't picking it up. I'm assuming you configured it in the start menu in emulation station right?

        [Linux 5.10.103-v7+ armv7l GNU/Linux
        Retropie 4.8
        Raspberry Pi 3B+]

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

          @xwons said in 8BitDo SF30 not working in retroarch, "not configured":

          To sum up, the bluetooth controller works in EmulationStation and Kodi, but not in the games (retroarch).

          This means the Input Configuration in EmulationStation didn't generate the RetroArch gamepad auto-configuration file. It does this by default, did you disable the gamepad auto-configuration from Configuration/Tools in RetroPie-Setup ?

          1 Reply Last reply Reply Quote 0
          • X
            xwons @UberLumby
            last edited by

            @UberLumby Thanks for your answer. Yes, I configured it in EmulationStation. Actually, it detected that there was a new device on boot (I restarted after pairing it) and asked to configure it, without any issues. Except if it was paired in Windows mode (Start+X), where it detected there was a gamepad but the controls did not respond.

            @mitu I don't think I have disabled anything manually, everything is pretty much by default, except making Kodi run on startup instead of EmulationStation. I checked the retroarch option, but there isn't anything related to auto-configuration there. In bluetooth devices, I paired the controller, I set up the udev rule and set the bluetooth connect mode to boot, leaving the 8Bitdo mapping hack OFF (because I use the last firmware), which seems to work because the controller is paired as soon as I turn it on and I can see it in jtest. I believe retroarch is actually able to "see" the controller, as it states that it is "not configured" when it starts.

            This problem seems to be quite common with this controller, as a quick search on this forum demonstrates:
            https://www.google.com/search?q=retropie+8bitdo+bluetooth+retroarch+site:retropie.org.uk

            Is there any way to force retroarch to re-generate its controller mapping? Or to trigger a remapping dialog from command line? (similar to the one in ES, where it asks you to press each key).

            Also, why does it not respond in Windows mode, the one that supposedly is recommended by the retropie documentation? How can I troubleshoot that?

            At the end of the day, I don't mind which mode I use as long as it works.

            (Oh, by the way, I am configuring this retropie machine remotely via ssh, so I don't have a local keyboard to enter the retroarch menu once a game has started)

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

              @mitu I don't think I have disabled anything manually, everything is pretty much by default, except making Kodi run on startup instead of EmulationStation. I checked the retroarch option, but there isn't anything related to auto-configuration there.

              It's in emulationstation's options.

              In bluetooth devices, I paired the controller, I set up the udev rule and set the bluetooth connect mode to boot, leaving the 8Bitdo mapping hack OFF (because I use the last firmware),

              None of the above should be necessary.

              This problem seems to be quite common with this controller, as a quick search on this forum demonstrates:
              https://www.google.com/search?q=retropie+8bitdo+bluetooth+retroarch+site:retropie.org.uk

              Not quite - there are a lot of posts about 8Bitdo controllers because they are used extensively. With your similar issue ? Not so many.

              Is there any way to force retroarch to re-generate its controller mapping? Or to trigger a remapping dialog from command line? (similar to the one in ES, where it asks you to press each key).

              Re-generation is done by re-configuring the device in EmulationStation.

              Also, why does it not respond in Windows mode, the one that supposedly is recommended by the retropie documentation?

              Where exactly is that recommended ?
              Once you get to pair the controller, use jstest to test the gamepad and see if it accepts inputs. Note that Xinput mode has a timeout issue when used in RetroArch - see here.

              How can I troubleshoot that?

              Pair manually via bluetoothctl.

              X 1 Reply Last reply Reply Quote 0
              • X
                xwons @mitu
                last edited by xwons

                @mitu said in 8BitDo SF30 not working in retroarch, "not configured":

                @mitu I don't think I have disabled anything manually, everything is pretty much by default, except making Kodi run on startup instead of EmulationStation. I checked the retroarch option, but there isn't anything related to auto-configuration there.

                It's in emulationstation's options.

                Ok, I will check that out this afternoon when I have the chance.

                In bluetooth devices, I paired the controller, I set up the udev rule and set the bluetooth connect mode to boot, leaving the 8Bitdo mapping hack OFF (because I use the last firmware),

                None of the above should be necessary.

                It is the recommended procedure as explained in https://retropie.org.uk/docs/8Bitdo-Controller/ but anyway, I think that part already works.

                This problem seems to be quite common with this controller, as a quick search on this forum demonstrates:
                https://www.google.com/search?q=retropie+8bitdo+bluetooth+retroarch+site:retropie.org.uk

                Not quite - there are a lot of posts about 8Bitdo controllers because they are used extensively. With your similar issue ? Not so many.

                Is there any way to force retroarch to re-generate its controller mapping? Or to trigger a remapping dialog from command line? (similar to the one in ES, where it asks you to press each key).

                Re-generation is done by re-configuring the device in EmulationStation.

                Also, why does it not respond in Windows mode, the one that supposedly is recommended by the retropie documentation?

                Where exactly is that recommended ?

                Ok, that's fair, I read a number of posts with people with the exact same problem using the same gamepad, and some reported that once the gamepad was configured in Windows mode, the problem disappeared. That is why I wanted to try it.

                Once you get to pair the controller, use jstest to test the gamepad and see if it accepts inputs. Note that Xinput mode has a timeout issue when used in RetroArch - see here.

                How can I troubleshoot that?

                Pair manually via bluetoothctl.

                The thing is that it pairs, I can see the button presses in jstest (except in windows mode), and it works in EmulationStation and Kodi. I meant how to troubleshoot why windows mode is not registering keypresses in jstest.

                Also, according to the manual, after mapping it in EmulationStation:

                1. When that is complete your 8bitdo controller is ready to use!

                The process will have written various controller configuration files for you. The main RetroArch controller file will now be in: /opt/retropie/configs/all/retroarch-joypads/

                But that folder is empty in my Raspberry Pi. I tried downloading the keymap file from https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/8BitDo_SN30_Pro%2B_BT_B.cfg and changing the input device to my controller's actual input device name "8Bitdo SF30 Pro" (obtained from cat /proc/bus/input/devices), but that did not work either.

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

                  The thing is that it pairs, I can see the button presses in jstest (except in windows mode), and it works in EmulationStation and Kodi. I meant how to troubleshoot why windows mode is not registering keypresses in jstest.

                  Run cat /proc/bus/input/devices and udevadm info -q all /dev/input/js0 to see if it's registered as a gamepad.

                  But that folder is empty in my Raspberry Pi. I tried downloading the keymap file from https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/8BitDo_SN30_Pro%2B_BT_B.cfg and changing the input device to my controller's actual input device name "8Bitdo SF30 Pro" (obtained from cat /proc/bus/input/devices), but that did not work either.

                  If it's empty, check your gamepad auto-configuration option in EmulationStation or the EmulationStation's log file ($HOME/.emulationstation/es_log.txt).

                  X 1 Reply Last reply Reply Quote 0
                  • X
                    xwons @mitu
                    last edited by

                    @mitu Ok, I will try both things this afternoon, when the person to whom I am configuring the raspberry and has access to the controller comes home, and report back. Thanks so much for your time so far!

                    1 Reply Last reply Reply Quote 0
                    • X
                      xwons
                      last edited by

                      Ok, so I noticed that the controller was not the SN30 Pro, but the SF30 Pro. I manually copied the gamepad autoconfig file and placed it in 8Bitdo_Pro_SF30_BT_B.cfg (from the link above), and now it seems to work in raspbian! However, the hotkey does not work, so I can't exit any games. But progress is progress. And that still does not explain why emulationstation did not generate the config file by itself...

                      1 Reply Last reply Reply Quote 0
                      • X
                        xwons
                        last edited by

                        Ok, I finally managed to make the hotkeys work.

                        I needed to add the following section in /opt/retropie/configs/all/retroarch-joypads/8Bitdo_Pro_SF30_BT_B.cfg

                        #Hotkeys
                        input_enable_hotkey_btn = "10"
                        input_load_state_btn = "7"
                        input_exit_emulator_btn = "11"
                        input_reset_btn = ""
                        input_save_state_btn = "6"
                        input_menu_toggle_btn = "3"
                        input_state_slot_increase_axis = "+0"
                        input_state_slot_decrease_axis = "-0"
                        

                        Problem solved!

                        1 Reply Last reply Reply Quote 0
                        • L
                          lucianthorr
                          last edited by

                          Just wanted to say Thanks for this question and answer. I had been struggling to get my 8bitdo Ultimate Wireless controller working in the games also and it turned out to be the same issue.
                          Adding /opt/retropie/configs/all/retroarch-joypads/8BitDo_Ultimate_wireless_Controller.cfg from https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/8BitDo_SN30_Pro%2B_BT_B.cfg worked.

                          As a total RetroPie/EmulationStation/RetroArch newbie, how is anyone supposed to know that they needed to manually add these controller configs? Is it supposed to be an automated system that's just not working correctly because I never saw any documentation anywhere that pointed users to the libretro GitHub.

                          1 Reply Last reply Reply Quote 1
                          • 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.