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 FC30 Pro works in ES but not Retroarch

    Scheduled Pinned Locked Moved Help and Support
    40 Posts 11 Posters 27.7k 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.
    • BuZzB
      BuZz administrators
      last edited by BuZz

      @Floob does udev work for you when generating config with latest retropie-setup ? I did change the strings we check for have for "renumbering" for udev, but perhaps I broken something (I simplified it by using wildcards).

      Please can you all post me your ~/.emulationstation/es_input.cfg files

      To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

      FloobF 1 Reply Last reply Reply Quote 0
      • FloobF
        Floob @BuZz
        last edited by

        @BuZz I'll get a clean 3.7 and find my FC30 Pro tonight.
        I'll post up the resulting files.

        Please read the Docs before asking a new question.
        RetroPie Help Guides: https://goo.gl/3gcNsT

        1 Reply Last reply Reply Quote 0
        • FloobF
          Floob
          last edited by Floob

          Ok, just ran through it. Seems fine to me?
          My resulting button codes seem to match these:
          https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/8Bitdo-FC30-Pro-GamePad-Bluetooth-Mode(POWER)-Mode(POWER%2BR1).cfg

          • Clean 3.7
          • Used FC30 Pro (Firmware 1.68)
          • Auto restarted to resize
          • F4 to CLI from ES
          • Followed manual bluetooth steps #1 and #2 here:
            https://github.com/retropie/retropie-setup/wiki/Setting-up-a-Bluetooth-controller
          • Didnt update RetroPie script, just used 3.7
          • Paired and connected to the FC30Pro without issue (although name didnt appear during the setup just the MAC)
          • went back to ES from the CLI (as opposed to rebooting as I can never get ES to reconnect to BT without forcing it)
          • Configured joypad in ES
            For some reason it doesnt detect the R2/L2 buttons although I'm sure it used to.

          As an aside it is logging that there is no .srm when I start a game
          retro_read_file: Failed to open /home/pi/RetroPie/roms/megadrive/Sonic The Hedgehog (W) (REV01) [!].srm: No such file or directory

          Ran about 4 MegaDrive games with picodrive and all seemed to detect my buttons and hotkeys without issue.

          /opt/retropie/configs/all/retroarch-joypads/8BitdoFC30Pro.cfg
          http://pastebin.com/raw/u69cDDJ4

          es_input.cfg
          http://pastebin.com/raw/jDPPkCsA

          es_temporaryinput.cfg
          http://pastebin.com/raw/QSk48vyA

          es_log.txt
          http://pastebin.com/raw/hB3qhiQ6

          Please read the Docs before asking a new question.
          RetroPie Help Guides: https://goo.gl/3gcNsT

          1 Reply Last reply Reply Quote 0
          • D
            DavidIQ
            last edited by

            Have you tried SNES or Game Boy Color games?

            FloobF 1 Reply Last reply Reply Quote 0
            • RionR
              Rion @Floob
              last edited by Rion

              @Floob said in 8Bitdo FC30 Pro works in ES but not Retroarch:

              What happens if you set these values in /opt/retropie/configs/all/retroarch.cfg

              # Input driver. Depending on video driver, it might force a different input driver.
              # input_driver = sdl
              
              # Input device driver. (Valid: linuxraw, sdl, dinput)
              input_joypad_driver = "udev"
              

              to

              # Input driver. Depending on video driver, it might force a different input driver.
              # input_driver = udev
              
              # Input device driver. (Valid: linuxraw, sdl, dinput)
              input_joypad_driver = "udev"
              

              Does the file I posted work then?
              http://pastebin.com/raw/i3atsUbc

              I'm not suggesting this is an ideal fix, but I'm just trying to see where the problem is occurring.
              I really need to find mine to test it out in 3.7 now.

              This fixes the SDL messages and button configuration in RetroArch. I still see the errors about SDL keys not recognized in Emulation Station but once a start an RetroArch core and then quit to command line there are no errors . Or i think there are none because a cant see the console.

              I tried editing the files in

              "/opt/retropie/configs/all/retroarch-joypads/"
              8BitdoNES30GamePadJoystick.cfg
              8BitdoSFC30GamePadJoystick.cfg
              

              adding the lines

              # Input driver. Depending on video driver, it might force a different input driver.
              # input_driver = udev
              
              # Input device driver. (Valid: linuxraw, sdl, dinput)
              input_joypad_driver = "udev"
              

              but RetroPie reverts back to the original files and creates two backup files

              8BitdoNES30GamePadJoystick.cfg.bak
              8BitdoSFC30GamePadJoystick.cfg.bak
              

              Tried to

              "sudo chown root:root 8BitdoNES30GamePadJoystick.cfg" 
              "sudo chown root:root8BitdoSFC30GamePadJoystick.cfg" 
              

              Makes no difference it reverts back anyway. So the SDL errors are still there in EmulationStation but not in RetroArch.

              Edit:

              I also wanted to add these lines instead of editing Retroarch.cfg to get my NES30 as player 1 and SFC30 Player 1-

              input_player1_joypad_index = “0"
              input_device = "8Bitdo NES30 GamePad Joystick"
              input_driver = "udev"
              input_r_btn = "18"
              input_save_state_btn = "18"
              input_start_btn = "22"
              input_exit_emulator_btn = "22"
              input_l_btn = "17"
              input_load_state_btn = "17"
              input_up_axis = "-1"
              input_a_btn = "11"
              input_b_btn = "12"
              input_reset_btn = "12"
              input_down_axis = "+1"
              input_right_axis = "+0"
              input_state_slot_increase_axis = "+0"
              input_x_btn = "14"
              input_menu_toggle_btn = "14"
              input_select_btn = "21"
              input_enable_hotkey_btn = "21"
              input_y_btn = "15"
              input_left_axis = "-0"
              input_state_slot_decrease_axis = "-0"
              input_player2_joypad_index = “1"
              input_device = "8Bitdo SFC30 GamePad Joystick"
              input_driver = "udev"
              input_r_btn = "18"
              input_save_state_btn = "18"
              input_start_btn = "22"
              input_exit_emulator_btn = "22"
              input_l_btn = "17"
              input_load_state_btn = "17"
              input_up_axis = "-1"
              input_a_btn = "11"
              input_b_btn = "12"
              input_reset_btn = "12"
              input_down_axis = "+1"
              input_right_axis = "+0"
              input_state_slot_increase_axis = "+0"
              input_x_btn = "14"
              input_menu_toggle_btn = "14"
              input_select_btn = "21"
              input_enable_hotkey_btn = "21"
              input_y_btn = "15"
              input_left_axis = "-0"
              input_state_slot_decrease_axis = "-0"
              

              FBNeo rom filtering
              Mame2003 Arcade Bezels
              Fba Arcade Bezels
              Fba NeoGeo Bezels

              FloobF 1 Reply Last reply Reply Quote 0
              • BuZzB
                BuZz administrators
                last edited by BuZz

                @Rion Please use http://commonmark.org/help/ to format your replies.

                When the controller configs are generated, the value of input_joypad_driver will be based on the input driver set in configs/all/retroarch.cfg

                To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                1 Reply Last reply Reply Quote 0
                • FloobF
                  Floob @DavidIQ
                  last edited by

                  @DavidIQ
                  Yes, just tried both of those and they worked fine.
                  This was with the default emulator chosen of lr-gambatte and lr-snes9x-next

                  Please read the Docs before asking a new question.
                  RetroPie Help Guides: https://goo.gl/3gcNsT

                  1 Reply Last reply Reply Quote 0
                  • FloobF
                    Floob @Rion
                    last edited by

                    @Rion Please see this post where I have listed the steps I followed to get mine working
                    https://retropie.org.uk/forum/topic/192/8bitdo-fc30-pro-works-in-es-but-not-retroarch/20

                    I'd suggest trying a clean image and following those steps. I havent altered the /opt/retropie/configs/all/retroarch.cfg at all.
                    Maybe check the firmware version of your controller.

                    Please read the Docs before asking a new question.
                    RetroPie Help Guides: https://goo.gl/3gcNsT

                    RionR 1 Reply Last reply Reply Quote 0
                    • RionR
                      Rion @Floob
                      last edited by

                      @BuZz said in 8Bitdo FC30 Pro works in ES but not Retroarch:

                      @Rion Please use http://commonmark.org/help/ to format your replies.

                      When the controller configs are generated, the value of input_joypad_driver will be based on the input driver set in configs/all/retroarch.cfg

                      Sorry about that. Went thru the guide for http://commonmark.org/help/. You learn something new every day.

                      So its bases its configuration on retroarch.cgf and what settings there are under the line.

                      #### Input
                      
                      # Input driver. Depending on video driver, it might force a different input driver.
                      # input_driver = sdl
                      
                      # Input device driver. (Valid: linuxraw, sdl, dinput)
                      input_joypad_driver = "udev"
                      

                      I am wondering if changing the lines

                      # input_driver = sdl
                      input_joypad_driver = "udev"
                      to
                      # input_driver = udev
                      input_joypad_driver = "udev"
                      

                      with a clean image and before i configure my controllers for the first time, will solve the sdl errors i am and others have in the terminal?

                      For example here 2 8bitdo bluetooth controller problem

                      Followed that to this reddit link How To Setup 8bitdo NES30 & FC30 Pro Controllers On a Pi3 with 3.6

                      where chavatar mentions

                      1. Go to /opt/retropie/configs/all/retroarch.cfg
                      2. Go to the line with input_joypad_driver = on it, and change it to input_joypad_driver = sdl
                      3. Go to /opt/retropie/configs/all/retroarch-joypads/8BitdoFC30Pro.cfg
                      4. Change input_driver = to input_driver = sdl
                      

                      @Floob said in 8Bitdo FC30 Pro works in ES but not Retroarch:

                      @Rion Please see this post where I have listed the steps I followed to get mine working
                      https://retropie.org.uk/forum/topic/192/8bitdo-fc30-pro-works-in-es-but-not-retroarch/20

                      I'd suggest trying a clean image and following those steps. I havent altered the /opt/retropie/configs/all/retroarch.cfg at all.
                      Maybe check the firmware version of your controller.

                      The only reason i wanted to change the settings in

                      /opt/retropie/configs/all/retroarch.cfg
                      

                      was because of the SDL errors and also that i wanted my NES30 to be configured as player 1 and my SFC30 as player 2.

                      I know i configured my NES30 first because my son uses it and it fits his hands better.
                      After that i connected and configured my SFC30. But even if a did it like that, every-time i connected my controllers even if i connected the NES30 first i had to press start on the SFC30 to start a game in NES for example.

                      So i edited the retroarch.cfg and made these changes to make them appear as player 1 and player 2.

                      # If desired, it is possible to override which joypads are being used for user 1 through 8.
                      # First joypad available is 0.
                      input_player1_joypad_index = “0"
                      input_device = "8Bitdo NES30 GamePad Joystick"
                      input_driver = "udev"
                      input_r_btn = "18"
                      input_save_state_btn = "18"
                      input_start_btn = "22"
                      input_exit_emulator_btn = "22"
                      input_l_btn = "17"
                      input_load_state_btn = "17"
                      input_up_axis = "-1"
                      input_a_btn = "11"
                      input_b_btn = "12"
                      input_reset_btn = "12"
                      input_down_axis = "+1"
                      input_right_axis = "+0"
                      input_state_slot_increase_axis = "+0"
                      input_x_btn = "14"
                      input_menu_toggle_btn = "14"
                      input_select_btn = "21"
                      input_enable_hotkey_btn = "21"
                      input_y_btn = "15"
                      input_left_axis = "-0"
                      input_state_slot_decrease_axis = "-0"
                      input_player2_joypad_index = “1"
                      input_device = "8Bitdo SFC30 GamePad Joystick"
                      input_driver = "udev"
                      input_r_btn = "18"
                      input_save_state_btn = "18"
                      input_start_btn = "22"
                      input_exit_emulator_btn = "22"
                      input_l_btn = "17"
                      input_load_state_btn = "17"
                      input_up_axis = "-1"
                      input_a_btn = "11"
                      input_b_btn = "12"
                      input_reset_btn = "12"
                      input_down_axis = "+1"
                      input_right_axis = "+0"
                      input_state_slot_increase_axis = "+0"
                      input_x_btn = "14"
                      input_menu_toggle_btn = "14"
                      input_select_btn = "21"
                      input_enable_hotkey_btn = "21"
                      input_y_btn = "15"
                      input_left_axis = "-0"
                      input_state_slot_decrease_axis = "-0"
                      

                      This is based upon @auswear findings in this thread here 8bitdo SFC30 shoulder buttons not working

                      About my firmware version. I am using the latest for NES3 0& SFC30
                      Firmware v2.67 - 2016-03-21

                      Before i start to pair and connect my controllers i always start bluetoothctl so it will recognize my controllers.
                      I start them both with start+r

                      sudo bluetoothctl 
                      power on
                      agent on
                      scan on
                      devices
                      

                      then i start pressing the buttons on both controllers until they show up. If i don't do this it wont show up in the retropie_setup.sh > Register and Connect Bluetooth Device only the mac adress is shown. So thats why i start bluetoothctl first.

                      Next i pair and connect them and also add them in "sudo nano /etc/udev/rules.d/10-local.rules"

                      SUBSYSTEM=="input", ATTRS{name}=="8Bitdo NES30 GamePad Joystick", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
                      
                      SUBSYSTEM=="input", ATTRS{name}=="8Bitdo SFC30 GamePad Joystick", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
                      

                      Sorry about the long post..

                      FBNeo rom filtering
                      Mame2003 Arcade Bezels
                      Fba Arcade Bezels
                      Fba NeoGeo Bezels

                      1 Reply Last reply Reply Quote 1
                      • RionR
                        Rion
                        last edited by Rion

                        Well i have made some discoveries that i wanted to share.

                        After many hours of reflashing and testing different configs i think i have finally got it right .

                        First i tried to setup my controllers with changing (and only those lines, nothing else) in retroarch.cfg

                        # Input driver. Depending on video driver, it might force a different input driver.
                        # input_driver = sdl
                        
                        # Input device driver. (Valid: linuxraw, sdl, dinput)
                        input_joypad_driver = "udev"
                        

                        to

                        # Input driver. Depending on video driver, it might force a different input driver.
                        # input_driver = udev
                        
                        # Input device driver. (Valid: linuxraw, sdl, dinput)
                        input_joypad_driver = "udev"
                        

                        Same problem that i had before. NES30 start button don't work in the nes/snes emulators when SFC30 is connected at the same time. So i have to press the start button on the SFC30 to start Super Mario.
                        So even if i configured the NES30 first and then the SFC30, SFC30 still is Joypad 1 (or 0 in Retroarch)
                        Still sdl errors after i exit EmulationStation to command line

                        Then i tried again with a clean image and change from

                        # input_driver = udev
                        input_joypad_driver = "udev"
                        

                        to

                        # input_driver = sdl
                        input_joypad_driver = "sdl"
                        

                        It configures in es but no button is working in the emulators.

                        So now i had tried both sdl and udev and went to look in the retroarch.cfg file and started looking at this line

                        # Input device driver. (Valid: linuxraw, sdl, dinput)
                        

                        So i changed

                        input_joypad_driver = "udev"  
                        to
                        input_joypad_driver = "linuxraw"
                        

                        Well now apparently the keys work and i can also use NES30 Start button to start Mario even if the SFC30 is connected at the same time. But retroarch still reports SFC30 as Player 0 when i start a game.
                        SDl errors still present but its a start.

                        So every time they are both connected SFC30 always become player one no mater what.
                        If i pair it last or first no change.
                        If i start a game with NES30 and then connect SFC30 its always player one. And so on.

                        FBNeo rom filtering
                        Mame2003 Arcade Bezels
                        Fba Arcade Bezels
                        Fba NeoGeo Bezels

                        1 Reply Last reply Reply Quote 0
                        • H
                          harrymfa
                          last edited by harrymfa

                          I came looking for a solution, but it's not clear what works. Can anyone who made this work, post a definite solution?

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            DavidIQ @harrymfa
                            last edited by

                            @harrymfa downgrading the firmware on the controllers worked for me.

                            1 Reply Last reply Reply Quote 0
                            • BuZzB
                              BuZz administrators
                              last edited by

                              You shouldn't need to switch the input driver to sdl - just update retropie-setup and go to bluetooth configuration and set the new mapping option to disabled for controllers with new firmware (or enabled for old. You will need to remove/re-add your controller and reconfigure in ES.

                              To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                              K 2 Replies Last reply Reply Quote 0
                              • K
                                konzentrat
                                last edited by

                                Hey there,

                                I just happened to have the same Problem. Raspberry 3, RetroPie 4.1, 8Bitdo NES30 PRO, Firmware 1.71. So I decided to delete the whole image and set everything up from scratch.

                                Now I switched off the Key Assign Hack Option for 8Bitdo older Firmware in the Bluetooth Menu BEFORE Pairing the controler. Now everything works fine. Don't know if this is the solution but it worked for me.

                                1 Reply Last reply Reply Quote 0
                                • RionR
                                  Rion
                                  last edited by

                                  @BuZz wouldn't it be a better solution to completely remove the option 8bitdo mapping hack and always have it to off.

                                  Every 8bitdo controller now has the latest fw update on the support site.

                                  It would be better to advice everone to have the latest fw installed.

                                  Or just live it to off be default.

                                  Or I'm i missing something? Do the 8bitdo zero need the hack to be on? In that case may be add to on for 8bitdo zero only?

                                  What are your thoughts?

                                  FBNeo rom filtering
                                  Mame2003 Arcade Bezels
                                  Fba Arcade Bezels
                                  Fba NeoGeo Bezels

                                  BuZzB 1 Reply Last reply Reply Quote 0
                                  • K
                                    konzentrat
                                    last edited by

                                    I must agree that it would make more sense to have it set to OFF by default by now.

                                    1 Reply Last reply Reply Quote 0
                                    • K
                                      konzentrat @BuZz
                                      last edited by

                                      This post is deleted!
                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        konzentrat @BuZz
                                        last edited by

                                        @BuZz said in 8Bitdo FC30 Pro works in ES but not Retroarch:

                                        You shouldn't need to switch the input driver to sdl - just update retropie-setup and go to bluetooth configuration and set the new mapping option to disabled for controllers with new firmware (or enabled for old. You will need to remove/re-add your controller and reconfigure in ES.

                                        i tried it but this didn't work in my case...

                                        1 Reply Last reply Reply Quote 0
                                        • BuZzB
                                          BuZz administrators @Rion
                                          last edited by

                                          @Rion said in 8Bitdo FC30 Pro works in ES but not Retroarch:

                                          @BuZz wouldn't it be a better solution to completely remove the option 8bitdo mapping hack and always have it to off.

                                          Every 8bitdo controller now has the latest fw update on the support site.

                                          It would be better to advice everone to have the latest fw installed.

                                          Or just live it to off be default.

                                          Or I'm i missing something? Do the 8bitdo zero need the hack to be on? In that case may be add to on for 8bitdo zero only?

                                          What are your thoughts?

                                          I will change the default - when I added the support for this, there were more joypads with the old firmware than new and some new ones still had the old firmware. I agree that now it makes more sense to have it off. I don't want to remove the option as some people who haven't upgraded their device may use it.

                                          To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                          1 Reply Last reply Reply Quote 1
                                          • G
                                            gnome73
                                            last edited by

                                            Is there anything in this thread that will help solve my problem here...

                                            https://retropie.org.uk/forum/topic/5508/unresolved-dragon-rise-zero-delay-usb-controller-cards-conflicting-on-joy-pad-directions-please-help-my-children-are-killing-me

                                            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.