Pairing Multiple 8BitDo SN30 Pro Controllers to Batocera


I recently set up Batocera on an old Dell SFF desktop that I wasn’t using for anything else. I figured it would make a decent gaming rig for not only classic 8-bit and 16-bit emulators but also more advanced 3D consoles like Nintendo 64 and GameCube. Initially I used two Xbox 360 controllers with a USB wireless receiver for them. However they don’t provide a very authentic experience for retro consoles like SNES, so I decided to use 8BitDo SN30 Pro controllers that I had set up with a RetroPie build. I was never able to pair both of them at the same time to that build anyway.

To set up the 8BitDo controllers, I booted up Batocera and then plugged in a TP-Link USB Bluetooth adapter. I opened the Batocera Main Menu and then Controller Settings to pair a bluetooth device (using my already working Xbox 360 controller; a keyboard would also work fine) and started the pairing process on the first 8BitDo controller in X-input mode, but nothing was detected. It turns out that I had to restart the computer before I could pair any devices. After a restart Batocera was able to detect bluetooth devices.

Other than my Sony TV wanting to pair first (I had to cancel pairing on the TV a few times), I was able to pair the first controller no problem. Once paired, the controller did not do anything; up/down/etc. would not work. I set up the controller mappings, which is a quick and easy process via the Controller Settings menu. Once mapped, the controller worked great!

I then started the pairing process again for my second 8BitDo SN30 Pro controller (and once again my Sony TV prompted to pair right away and had to be cancelled). Once paired, the second controller started working right away with no controller mapping. However, I was also unable to select it as a distinct controller in the Controller Settings menu for Batocera (e.g. Player 1 (P1) gets the first controller, Player 2 (P2) gets the second controller).

It turns out that I had to map the controls for the second controller before it would appear as a distinct controller, even though it was already “working” when I pressed the buttons on it. I don’t necessarily want/need to specify a controller for P1 or P2, but I figured that I might run into issues if Batocera is not seeing them as two distinct controllers.

After that I was able to use both controllers in Batocera. The first controller to connect when Batocera starts up becomes P1 automatically; the second becomes P2.


  1. Does this kind of routine happen every time you turn on the computer? I am trying to find a way to have my controllers auto-connect over bluetooth when the computer boots.
    1. No, once I let Batocera fully load, I turn on the controllers and they connect after several seconds. It was just after the first time I plugged in the Bluetooth USB adapter.

Comments are closed