How do I get a 8BitDo SN30 Pro+ controller to work?
-
Hi,
I just bought a 8BitDo SN30 Pro+ controller and can't get it to work, has anyone else had any luck to get these working with Retropie? My issue seems to be two things:- I can get it to pair via Bluetooth, the controller works and I get it to connect after reboots, however it constantly needs to be configured each time I turn on the Raspberry, it's like the settings aren't saved.
- It only works for menus and not within any games. It pops up saying it's not configured.
I did the udev thing and rebooted afterwards, however each time I turn on the Raspberry it needs to be configured and when I do that I see that it says "Gamepad 2" but there are no other devices connected to my Raspberry (not even a keyboard).
I've used a PS4 controller in the past and that worked great, but since I didn't find an easy way to turn off the controller I grew rather tired of the battery running out between each play session and having to pair it with the PS4 each time I wanted to use it for that system. Just to be sure I cleared all previous Bluetooth entries before pairing the SN30 Pro+.
It's probably something easy and something I'm completely overlooking but I'm pretty lost at the moment, any help is greatly appreciated!
-
@Pundan Please add more info about your system, as detailed in https://retropie.org.uk/forum/topic/3/read-this-first.
You're not running any additional drivers (
sixaxis
,xboxdrv
) ? Did you update the firmware on the controller - theudev
hack shouldn't be needed with recent 8Bitdo controllers, so remove it.Seems strange that the device is appearing as
Gamepad 2
instead of the SNES30 label. Can you run - from the terminalcat /proc/bus/input/devices
and post the output ?
-
@mitu Hi, thanks for taking your time and answering my question, and sorry for missing out to post some of the information needed, here it is:
Pi Model or other hardware: Pi 3B
Power Supply used: Official Raspberry Pi PSU
RetroPie Version Used: 4.1
Built From: SD image on homepage
USB Devices connected: None
Controller used: 8BitDo SN30 Pro+
Error messages received: None
Guide used: (Mention if you followed a guide): Was following this guide: https://github.com/RetroPie/RetroPie-Setup/wiki/8Bitdo-Controller but since @mitu mentioned that the udev hack wasn't needed this isn't really applicable.I have removed the udev hack but problem still persists, however, it said "Gamepad 1" this time around when I configured the controller. Maybe I'm confusing this, but I'm refering to what EmulationStation calls the controller when I configure it. The controller's name (as far as I can see when I pair it through Bluetooth is "Pro Controller").
I updated the controller firmware from 3.00 to 3.01 but it didn't solve the problem.
I do believe I have the sixaxis driver for the PS4 controller, yes.
Output of cat /proc/bus/input/devices:
I: Bus=0005 Vendor=057e Product=2009 Version=0001 N: Name="Pro Controller" P: Phys=b8:27:eb:7a:c0:37 S: Sysfs=/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/hci0:11/0005:057E:2009.0003/input/input2 U: Uniq=e4:17:d8:93:97:01 H: Handlers=js1 event1 B: PROP=0 B: EV=10001b B: KEY=ffff0000 0 0 0 0 0 0 0 0 0 B: ABS=3001b B: MSC=10
A thing to note is that when I start a game (doesn't matter which system) it says that the controller isn't configured. So it pops up saying: Pro Controller (not configured) in yellow text. And if I check the following directory I can't see that it's written a config for the specific controller: /opt/retropie/configs/all/retroarch-joypads/ however all the previous controllers I've used each have a specific config-file in there.
-
@Pundan
I've had troubles in the past with the 8Bitdo SF30 Pro and I assume the SN30 Pro+ is similar.The 8Bitdo controller has 4 different pair modes:
Windows: X = 8Bitdo SF30 Pro
Switch: Y = Pro Controller
Android: B = 8Bitdo SF30 Pro
macOS: A = Wireless controllerWhen first pairing the 8Bitdo controller with RetroPie, hold the the X button down and press the Start button to turn it on in the "Windows" pair mode. Then press the pair button for 3 seconds to enter pairing mode to pair with RetroPie. The B button (or "Android" mode) works as well but the X button seams to work the best for me.
You must have turned the controller on with the Y button & Start button which puts it into the "Switch" pair mode when you first paired with RetroPie. I didn't have much luck using this Switch version.
https://download.8bitdo.com/Manual/Controller/SN30-Pro+/SN30_Pro+_Manual.pdf
-
@backstander said in How do I get a 8BitDo SN30 Pro+ controller to work?:
@Pundan
I've had troubles in the past with the 8Bitdo SF30 Pro and I assume the SN30 Pro+ is similar.The 8Bitdo controller has 4 different pair modes:
Windows: X = 8Bitdo SF30 Pro
Switch: Y = Pro Controller
Android: B = 8Bitdo SF30 Pro
macOS: A = Wireless controllerWhen first pairing the 8Bitdo controller with RetroPie, hold the the X button down and press the Start button to turn it on in the "Windows" pair mode. Then press the pair button for 3 seconds to enter pairing mode to pair with RetroPie. The B button (or "Android" mode) works as well but the X button seams to work the best for me.
You must have turned the controller on with the Y button & Start button which puts it into the "Switch" pair mode when you first paired with RetroPie. I didn't have much luck using this Switch version.
https://download.8bitdo.com/Manual/Controller/SN30-Pro+/SN30_Pro+_Manual.pdf
Ok, you're on to something here! From the get go I had only started the controller by just pressing start, so it was in Switch-mode by default. I tried out the Windows-mode that you are using and then it showed up as "8bitdo SN30 Pro+" but I couldn't get the Right trigger button to work, the configuration just skipped it.
I set it to Android-mode and re-paired it and then I could configure all the buttons. The controller now works for games so that was absolutely part of the problem.
The only problem I now have is that the hotkey button brings up the RetroArch menu and if I exit the game from there the controller doesn't work again in EmulationStation and I have to reconfigure it. I also tried to not configure the hotkey button (so SELECT + START should close down the game) but it still doesn't work and the previously configured hotkey button seems so still be assigned to that function so I may need to manually remove it from the configuration.
UPDATE: Have been playing around with the settings and for some reason EmulationStation doesn't want to keep track of the controller config. It's like it forgets it with each game I turn on.
UPDATE 2: Some further investigation, so I read about how it all works here: https://retropie.org.uk/docs/RetroArch-Configuration/#autoconfigurations and supposedly the config I make from within EmulationStation should automatically configure RetroArch controls for me. However when I press F4 and check: /opt/retropie/configs/all/retroarch/autoconfig it's always empty. It's like the config I make is never saved.
I also downloaded a config for the SN30 Pro+ controller from here: https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/8BitDo_SN30_Pro%2B_BT_B.cfg, renamed it to 8bitdo SN30 Pro+.cfg to match the controller name and put it here: /opt/retropie/configs/all/retroarch-joypads/ but that doesn't solve anything I'm afraid.
So I'm still at the point now where I manually need to configure the controller within EmulationStation each time I exit a game. If anyone has any ideas I'll gladly try them out as I'm lost for ideas yet again :(
-
You should use a fresh image. 4.1 is old and the Bluetooth stack changed with the stretch based image. The power on mode is important, but it's better to debug from a recent version.
-
@BuZz said in How do I get a 8BitDo SN30 Pro+ controller to work?:
You should use a fresh image. 4.1 is old and the Bluetooth stack changed with the stretch based image. The power on mode is important, but it's better to debug from a recent version.
Sorry, miswrote earlier, I'm using 4.5.1.
-
However when I press F4 and check: /opt/retropie/configs/all/retroarch/autoconfig it's always empty. It's like the config I make is never saved.
Oh no! I had that issue once and it had to do with a corrupted image. I re-flashed and everything worked again! One thing I should note that it could also be a failing microSD card, if that's the case then it would be best to just get a new SanDisk or Samsung one.
-
Before you re-flash, maybe try this (Clear/Reset Emulation Station input configuration):
https://retropie.org.uk/forum/post/33820 -
@backstander Yeah, something's not right with the one build I'm using because after I did that none of my controllers work anymore and I need to constantly reconfigure all of them. I did not really look forward to rebuild the entire Retropie installation with thousands of ROMs (pretty much had every system there is scraped and sorted) just for this, but seeing that there's no other option now I'm just going to do that and fill in the information of what steps need to be done for future users with 8bitdo SN30 Pro+ controllers and how to solve it.
Thanks for your help @backstander, I think you pointed me in the right direction all along.
-
Ok, so this is just to confirm for future users who has the same problem I was experiencing to get the 8bitdo SN30 Pro+ to work with RetroPie: Holding B+Start to set the controller in pairing mode works flawlessly.
All my issues with EmulationStation and so on not saving the configuration must either be due to a corrupt microSD card or related to the fact that my old installation was upgraded from a much older version of RetroPie.
Case closed this thread can now be closed. Thanks to everyone who came with suggestions, and special thanks to @backstander who pointed me in the right direction all along!
-
I did not really look forward to rebuild the entire Retropie installation with thousands of ROMs (pretty much had every system there is scraped and sorted) just for this
I feel your pain. After having to go through that I started storing a big chunk of ROMs on an USB flash drive. It makes rebuilding so much easier! I've also tried storing them on an external USB hard drive (non solid state) and they usually work great with smaller ROMs but with like the larger PSX games, if you're playing a game and the hard drive spins down and then the emulator needs to read the game disc image again, most times it will crash because it times out before the hard drive can spin back up, so in other words, use a solid state drive!
Running ROMs from a USB drive:
https://retropie.org.uk/docs/Running-ROMs-from-a-USB-drive/Loading roms from USB harddrive:
https://retropie.org.uk/forum/topic/7780/loading-roms-from-usb-harddrive -
Hey guys. I'm having this same issue, and for whatever reason I can't get my SN30 Pro to work in games. I'm running a Raspberry Pi 4 with the latest version of Retropie (just set it up last week, upgraded from a RP3).
I've paired with the Holding B + Start method, and the controller pairs and works perfectly in menus, but nothing in games. Well, it does work inside the MegaDrive/Genesis Emulator, but I can't get it to work in any other Emulator. Playstation is where I really hoped this controller would work. I have a iNNEXT Wireless controller that works fine in everything else, but it doesn't have the thumb sticks.
Any thoughts on what might be the issue?
@Pundan did you do anything else to get yours working?
-
@retrogamer21 I am having this same issue on a RPI4.
-
@backstander This fixed a similar problem like the one on this thread. Funny thing though is that for me, my SN30 Pro (1.35) works under windows and android modes but on neither mode the trigger buttons work so I can't map them... Everything else works fine....
-
on neither mode the trigger buttons work so I can't map them
Seamed like I had that issue but finally got it working after I paired with Android mode and "Set up udev rule for Joypad".
Just make sure the 8bitdo mapping hack is off.
-
Did you ever resolve this at all? I’m running a pi 4 and finding the same thing
-
I necroed this to update/clarify things...
I have some 8bitdo SN30 pro (also the plus versions) controllers working 100% in ES, with pi4 running the latest retropie release. First I downloaded the 8bitdo firmware updater, and updated my new controllers to the latest firmware version (they came with 1.35, I updated to 1.37). I binded to my pi4 using Andoid mode (start+B), and clicked "Set up udev rule for Joypad" (8bitdo hack disabled!). Everything works as expected, both triggers function and it all survives a reboot. Note if your sn30 pro falls asleep (15min no activity while turned on), hit "start" and the SN30 pro will rebind and start working again after a few seconds.
On a side note, they're new but so far I am really liking the feel of the sn30 pros. They are definitely higher quality than one-off retro controllers... the buttons feel OEM! I did some skim reading on the gyro built-in to the sn30 pro... seems the feature just cost me extra but I won't get anything out of it for now (except when my daughter uses it with her switch). At least it is there... and maybe someday I can use it for like wii emu or something.
-
I noticed the same thing, in the switch mode I had ghost movements and it all went away when I put the gamepad in windows mode.
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.