8bitdo SF30 Pro and SN30 Pro
-
@mitu what do you use for Select key mapping like in classic NES games?
-
@meats I'm using the Selecy key, obviously.
-
@rion Thanks fort the information.
RetroPie 4.3 has an option in the bluetooth menu to auto add a udev line. It put a udev line in my rules.d as:
SUBSYSTEM=="input", ATTRS{name}=="Pro Controller", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
The forum link you posted gave a bunch of udev lines. But I didn't see anything for the new SN30 Pro controller.
So my questions are these:-
Is my line insufficient for the controller I have? (SN30 Pro)
-
Is only the one line needed even though I have 2 controllers. I'm assuming so as it's just binding the name to a mode so both controllers named "Pro Controller" will be mapped to the mode and env settings.
I'm able to connect each time correctly when I boot up the pi.
[65695.269620] input: Pro Controller as /devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/hci0:12/0005:057E:2009.0006/input/input2
[65695.270511] hid-generic 0005:057E:2009.0006: input,hidraw2: BLUETOOTH HID v0.01 Gamepad [Pro Controller] on b8:27:eb:XX:XX:XX -
-
@robertclemens I think the name in udev is wrong. It's probably better if you post on libretro forums and then come back with an update here.
-
@rion I really appreciate your quick responses to my problem. I will definitely check out libretro and update here if I find anything out. Since the model is brand new its a bit tricky to find specifics for the model.
-
@robertclemens said in 8bitdo SF30 Pro and SN30 Pro:
I just purchased 2 SN30 Pro controllers. I am able to pair the bluetooth connections. I used the 98:b6 mac address (Pro Wireless) for both. I have also upgraded both controllers to firmware 1.20 (latest)
I'm having a few issues.
-
I don't seem to be able to properly use both controllers in roms. Both controllers show LED 1 lit (first position). Both controllers are able to navigate emulation station menus. Once I load a rom I can't do anything. Controllers both show connected as far as they are concerned.
-
When playing a rom and I leave the controller for a short bit, I come back to find that the controller likely went to sleep and I cannot reconnect.
Any help will be appreciated. Otherwise I have over $100 worth of useless controllers.
I just wanted to echo that I also experience the same. Both controllers can control the menu in emulation station, but I've also been able to do that with multiple wired controllers, so not sure if that is an issue.
Regarding the controller going into sleep mode, yes I often have to restart the entire system to reconnect the controllers. I thought setting the BT mode in raspi-config to 'background' would eliminate that problem, but I guess not. Let's hope there is a fix soon, like I initially stated I dont think 8Bitdo is supporting Raspberry Pi like they are the other 4 systems.
-
-
I'm not real into the scene and the libretro forums seemed like a complete mess to me. It's a bit disappointing that support for this wasn't worked out for the release. It's hard to tell from my perspective if this will improve or remain a sticking point for the controllers. I'm very tempted at this point to return them as they do not work for the intended purpose.
I'm still interested if anyone has worked through the issues with any luck.
-
@meats For RetroPie, you should actually use the "macOS" instructions and not the "Switch". Even though all buttons & analog sticks work for both, the "Switch" profile incorrectly calibrates the analog sticks from -27391 to 26966 (about 83% of the full motion range). The "macOS" profile correctly calibrates the analog stick from -32767 to 32767 (the full motion range).. which is necessary for performing joystick combinations in N64 games like Waverace. I confirmed this on RetroPie 4.3 (with the latest updates) using the jstest utility. My SF30/SN30 Pro firmware is v1.20.
EDIT:
I discovered that with the "macOS" profile, the controller will work immediately after registering with bluetooth. If, however, you lose connection & try reconnecting, it will never work (even after rebooting the RetroPie) though it strangely still displays as connected with bluetooth. This was the behavior while the connect mode was set to 'default'.
Once I set the connect mode to 'boot' or 'background', I was able to get the controller working only during boot of the RetroPie. If the controller isn't turned on during the boot and/or missed connection, you can only try rebooting RetroPie for another chance. If you turn the controller off, or it goes to sleep or loses connection somehow, again you'll need to reboot RetroPie for another chance to reconnect.
I understand this problem should've been alleviated with the following udev line:
SUBSYSTEM=="input", ATTRS{name}=="Wireless Controller", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
However, my tests were conducted with it active the whole time (thanks to the built-in menu option).. so I doubt it had any effect. Hopefully someone with more experience finds a solution... or helps me push 8bitdo to fix their "Switch" profile's joystick calibration (I recently sent an email to their support contact).
In hindsight, the "Switch" profile had no issue working after reconnecting my controller any time while RetroPie was running. If it weren't for its bad joystick calibration, I'd use that profile. There may be a (complex) way to build a recalibration script that runs whenever the controller connects, not to mention much reconfiguring of RetroArch... but this is too big a task for me at the moment. For now, I'd rather use the "macOS" profile for proper calibration & risk rebooting the RetroPie mid-game if the controller disconnects.
-
Have you tried it in Android mode ? I had a GameSir G3s which could connect as D-Input/X-Input etc. but it would only connect correctly in Android mode. It also correctly awakes from sleep mode in RetroArch emulators.
-
@maxbeanz As meats indicated, the left/right controller triggers are not recognized in the "Android" & "Windows" profiles. This I've confirmed.
-
This post is deleted! -
I saw this post and many others on Reddit and elsewhere prior to receiving my SN30 Pro and was like "Shit. This is a mess. I should never have bought this thing."
I'm happy to say that I received my SN30 pro today and got it working on the very first try - flawlessly - using the following instructions:
- Right out of the box, update to the latest 8bitdo firmware first. v1.20 as of this post.
- Turn on the controller by holding down Start. Don't screw around with any "modes" or holding down any other buttons. Just hold down Start until the four lights start to cycle.
- Pair the controller with Retropie.
- Have it add the udev rule.
- Save changes and restart Retropie.
- Setup the buttons within Emulation Station
Hey, look at that. You're all done. It works in all emulators.
The analog sticks' range of motion works great in everything. If your controller gets disconnected for lack of activity or whatever, just hold down Start (and no other buttons) to turn it on again and you'll reconnect with 10 seconds or so. No need to reboot or re-pair.
There's never any need to select an alternate mode. Just power it on by holding down Start. Done.
I've been using this for a few hours now and have tried many different disconnection scenarios, but this seems pretty solid to me so far!
-
FYI to all... a new Firmware update to 1.22 is out:
Firmware v1.22
- Enhanced the stability of the Bluetooth pairing.
- Fixed the crashing issue of the controller when charging.
- It will disconnect from bluetooth connection when using USB connection.
-
So I removed my controllers from my Retro Pi setup.
I upgraded to firmware 1.22. I started the remotes with only the "Start button mode" only as described above. I paired the remotes using the 98:XX MAC Address. I added the udev from the bluetooth menu. I restarted the device and so far everything seems normal. I haven't given this a ton of testing but so far this seems like it may work.I was able to load a single player game and two-player game.
Hope everyone has a similar experience and with further testing declares these controllers good-to-go.
-
@robertclemens said in 8bitdo SF30 Pro and SN30 Pro:
So I removed my controllers from my Retro Pi setup.
I upgraded to firmware 1.22. I started the remotes with only the "Start button mode" only as described above. I paired the remotes using the 98:XX MAC Address. I added the udev from the bluetooth menu. I restarted the device and so far everything seems normal. I haven't given this a ton of testing but so far this seems like it may work.I was able to load a single player game and two-player game.
Hope everyone has a similar experience and with further testing declares these controllers good-to-go.
As I'm home sick with the Flu (yay), I've had some time to test this. So far this is working great.
-
@bmn001 Great!
-
I hate to break it to everyone, but we're still back where we started. First allow me to clear up this "miracle" of holding down just Start (not screwing around with any modes):
Every mode (profile) changes the way the LEDs light up:
-- "Switch" profile makes all 4 LEDs cycle back-n-forth
-- "Mac" profile makes the first 3 LEDs blink repeatedly
-- "Windows" profile makes the first 2 LEDs blink repeatedly
-- "Android" profile makes the first LED blink repeatedlyWhen you hit just Start, you are activating the last chosen profile. By default (particularly after a firmware upgrade) it's the "Switch" profile, aka 4 LEDs cycle back-n-forth.
I don't know what bmn001 did to confirm the analog sticks true range of motion, but I can attest that my previous findings (and meats's) remain after upgrading to the 1.22 firmware. The "Switch" profile still produces 85% of the full analog range (-27391 to 26966 instead of -32767 to 32767; thus can perform ample gameplay movement but certainly not specific joystick combinations), the "Mac" profile still has weird reconnection issues, and the "Windows" and "Android" profiles still don't recognize the left & right triggers.
FYI, I did receive an email from 8bitdo on 12/20 thanking me for my feedback and that they'll "submit this problem & test it soon." I'll keep everyone posted as things progress.
-
@louiehummv said in 8bitdo SF30 Pro and SN30 Pro:
I hate to break it to everyone, but we're still back where we started. First allow me to clear up this "miracle" of holding down just Start (not screwing around with any modes):
Every mode (profile) changes the way the LEDs light up:
-- "Switch" profile makes all 4 LEDs cycle back-n-forth
-- "Mac" profile makes the first 3 LEDs blink repeatedly
-- "Windows" profile makes the first 2 LEDs blink repeatedly
-- "Android" profile makes the first LED blink repeatedlyWhen you hit just Start, you are activating the last chosen profile. By default (particularly after a firmware upgrade) it's the "Switch" profile, aka 4 LEDs cycle back-n-forth.
I don't know what bmn001 did to confirm the analog sticks true range of motion, but I can attest that my previous findings (and meats's) remain after upgrading to the 1.22 firmware. The "Switch" profile still produces 85% of the full analog range (-27391 to 26966 instead of -32767 to 32767; thus can perform ample gameplay movement but certainly not specific joystick combinations), the "Mac" profile still has weird reconnection issues, and the "Windows" and "Android" profiles still don't recognize the left & right triggers.
FYI, I did receive an email from 8bitdo on 12/20 thanking me for my feedback and that they'll "submit this problem & test it soon." I'll keep everyone posted as things progress.
This is good information to have. I wouldn't quite say we are back at where we started. I'm now able to successfully connect/reconnect without a reboot. So progress has been made, at least with bluetooth connectivity. I've played several hours since I'm sick with the Flu and the connectivity is amazingly better.
Hopefully an update will be made to adjust the range of motion on the joysticks.
Thanks for the update and hopefully we will get a new firmware soon to address that. Please update this thread if you see any positive or negative changes.
-
@louiehummv said in 8bitdo SF30 Pro and SN30 Pro:
When you hit just Start, you are activating the last chosen profile. By default (particularly after a firmware upgrade) it's the "Switch" profile, aka 4 LEDs cycle back-n-forth.
Ahh okay, that makes sense. 8bitdo doesn't have the best documentation. Thanks for clearing that up.
I don't know what bmn001 did to confirm the analog sticks true range of motion, but I can attest that my previous findings (and meats's) remain after upgrading to the 1.22 firmware.
I just played a few games and things seemed to work. I didn't experience any game-breaking limits on joystick range, but don't doubt that they're still not giving the full values. Thanks for reporting that to them!
I think the moral of the story is that, as it stands today, the Switch profile is probably the best bet for Retropie, and it'll be perfect once they address the limited range of the analog sticks in a future firmware update.
-
@robertclemens I didn't realize connection without a reboot was an old issue, as I never had that problem even since the stock firmware v1.0somenumber. Only the "Mac" profile had, and still has, that problem.. at least for me. Glad people have found the profile most tolerable for them.
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.