Setting up an 8bitdo Bluetooth controller

8bitdo Logo

FC30 FC30 Pro NES30

NES30 Pro SFC30 SNES30

This guide will show how to use an 8bitdo controller with RetroPie. Please make sure you are using at least RetroPie v4.0, and the controller firmware versions listed below (newer versions shouldn't cause an issue). It is not recommended to use beta firmware versions.

Please see the 8bitdo support page for details on how to upgrade the firmware. Before you upgrade your firmware or attempt to register your controller, please make sure your controller is fully charged.

A quick note about the 8bitdo Zero controller.

PLEASE MAKE SURE IF YOU ARE USING AN 8BITDO ZERO YOU START THE CONTROLLER WITH R1+START WHEN YOU ARE COMPLETING THESE STEPS FOR AT LEAST THE FIRST TIME.

It also may help to reset the controller by holding down the select button for 8 seconds if this does not work. Please note that using the R+START mode does result in different values for the buttons themselves so it may or may not function properly if started under any different mode in the future aside from R1+START. Also, ignore step 4 and turn the hack option on.


Guide to add your controller

1) Run the RetroPie setup script, either through the Emulation Station menu option or via the command line.
If you want to run this via the command line, quit Emulation Station by pressing F4 on the keyboard and type this at the command line: sudo /home/pi/RetroPie-Setup/retropie_setup.sh

2) Choose the "Configuration / Tools" menu choice Config / Tools Menu

3) Choose the "bluetooth - Configure Bluetooth Devices" menu choice Bluetooth Menu

4) Make sure the hack option is turned "off"
You need to make sure your controller is running the relevant firmware for this to work correctly, the versions are shown in this wiki article. Hack Off

5) Make sure your controller is powered on and searching for a connection. With the FC30 Pro, this is done by holding the power button (left-hand side of the base of the controller) on until the side blue lights illuminate. With the SFC30 this is done by holding the R+Start buttons until the blue LED lights up. Holding down the R shoulder button and then pressing start button ensures the controller is in the correct mode.

6) Choose the "Register and Connect to Bluetooth Device" Main Bluetooth Menu

7) You will then see the "Searching" screen. If you have issues with the detection of the controller, you may find it helps to press some buttons on the controller when this screen is showing. Searching

8) It may be the case that the first time the results are returned, the name of the controller doesn't show, or that the MAC address doesn't show at all. If that's the case, you can either select the device if you know the MAC or simply search again. No Name

9) Here it has successfully detected the name of the controller, select OK here. Name

10) Choose the "DisplayYesNo" optin to complete the registration process. Pairing

11) Registration of the 8bitdo controller is complete and your blue LED lights should now be solid on (the FC30 Pro will glow). Connection Success

12) You must now setup the udev rule in order for Emulation Station to "see" the controller when you restart your Raspberry Pi. udev rule

13) Select your controller from the list. Select controller

14) This then adds the rule to the file specified, you don't need to manually take any extra steps here. As indicated, you will need to reboot after completing these steps to make sure all the changes have taken effect. udev added

15) The menu "Configure bluetooth connect mode" is optional, but using this can be very useful. Optional Settings

16) If your controller won't connect (LED change from flashing to solid) when restarting, change the mode to "boot". In most cases this should also enable the "background" option automatically, so you don't have to select this. If you have issues with the controller not auto connecting after waking from sleep/off mode, then try "background". Bluetooth connect modes

17) When this has been set, please reboot the Raspberry Pi. Either during boot up or once in Emulation Station, when you turn the controller on it should connect without issue.

18) Configure the controller for Emulation Station and the emulators. Press Start in Emulation Station using your non-8bitdo controller and choose the "Configure Input" option. Configure Input

19) You should see that Emulation Station can now see your 8bitdo controller ES see controller

20) When you hold a button on your controller you should see its name appear at the bottom of the screen. ES shows name

21) Follow the instructions as given here. If you make a mistake, just run the "Configure Input" process again. Add buttons to controller

22) 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/

Here are some examples of the file that should be written.

FC30

FC30 Pro RetroArch config file (Firmware 1.69 - 8BitdoFC30Pro.cfg)

SFC30

SFC30 RetroArch config file (Firmware 2.68 - 8BitdoSFC30GamePad.cfg)

SNES30

SNES30 RetroArch config file (Firmware 3.00 - 8Bitdo SNES30 GamePad.cfg)

Video Guide:

8bitdo controller with RetroPie

Firmware Versions for 8bitdo controllers (June 2017)

8bitdo controllers firmware

You can download new firmware here.

Troubleshooting

Please confirm your firmware version before raising a support ticket

http://support.8bitdo.com
https://github.com/libretro/retroarch-joypad-autoconfig/tree/master/udev