8BitDo SN/SF30 Pro functionality over bluetooth (Rumble/Triggers/more)
-
Hello there, long time RetroPie user, first time poster here. Due to a lot of time on my hands in quarantine, I decided to build a new RetroPie and take up PSX emulation, so far only 16 bit machines.
I’m having difficulty getting my 8BitDo controllers to work properly though. In the past I always used the „Switch mode“ and after initially figuring out bluetooth a couple of years ago they always worked fine in mentioned application. Now I want to use the rumble feature for PSX games and I’m struggling.
tl;dr at the end.
After a lot of unsuccessful tweaking I set up a new system for troubleshooting using the latest available RetroPie image for Pi4 and updating it (System + RetroPie packages).
RPi 4, 8GB, Retroflag NESPI4 case
Official USB-C PSU
16 GB SD (boot)
500 GB SSD for ROMs
Retropie 4.7.19 (c167b3c5)
Emulationstation V2.10.0RP
RetroArch 1.9.7 (Sep 8 2021, 8373ac6)
crcerror shutdown script (for NESPI4 case)
2x SF30 Pro (Firmware v1.38)Connecting the controllers as usual:
Bluetooth settings:
- pair both controllers
- Create udev rule for controller
Check RetroArch base settings:
- controllers recognized as „RetroPad“, changed to „RetroPad with Analog“
PSX (lr-pcsx-rearmed r22 36f3ea6):
-
initially no buttons responsive
-
in RetroArch RGUI
- Quick Menu
- Controls
Port 1/2
- Device Type changed from „RetroPad with Analog“ to „dualshock“ - Options
- Enable Vibration set to „on“
- Controls
- Quick Menu
Results with xpad driver:
Switch Mode (Y + Start):
Controller name: Pro Controller
Controller status light: only first LED lit on both controllers
all buttons/analog working
no rumble (neither on connect nor in game)DInput Mode (B + Start):
Controller name: 8bitdo SF30 Pro
Controller status light: only first LED lit on both controllers
all buttons/analog working
rumble upon connect, no rumble in gameXInput Mode (X + Start):
Controller name: 8bitdo SF30 Pro
Controller status light: only first LED lit on both controllers
Emulationstation input config: L2/R2 do not register
RetroArch base settings: L2/R2 able to register
rumble upon connect, rumble in gamemacOS (Start +A): didn’t bother to test
The xpadneo driver did not change anything for the better (L2/R2 still not recognized in ES), had very sluggish control, lots of lag, basically unplayable.
After every configuration change, ES Input Configurations were cleared (Retropie Setup - emulationstation) and previous udev rules were deleted (/etc/udev/rules.d/99-bluetooth.rules).
It seemed to me that changing the controller mode to anything other than „Switch Mode“ creates absurdly long loading times (launching the libretro cores, about 20-30 s).;tldr
I found the „best“ way to set up the SF/SN30 Pro (meaning complete button/trigger, analog and rumble support) is this:
- make sure xpadneo is not installed
- clear ES input configs
- delete existing udev rules
- pair both controllers in XInput Mode (X + Start)
- set up udev rule
- ignore missing L2/R2 in ES input config
- Open RetroArch base config and
- add missing L2/R2 for both controllers separately
- set Device Type to „RetroPad with Analog“ for both controllers
- additional system/game specific mappings using RetroArch RGUI
- for PSX set both controllers to „dualshock“
- make sure vibration is enabled in RetroArch
This lacks proper use of the indicator LEDs on the controllers though, both show a single LED on the left.
Also the long loading times for the cores are a bit annoying.So:
Has anyone ever been successful using the 8BitDo SF/SN30 Pro over Bluetooth on a RetroPie system with L2/R2 (analog) triggers AND rumble working correctly AND meaningful use of the status LEDs (1 LED: Player 1, 2 LEDs: Player 2, etc.)?
Any explanation for the long loading times?Please tell me I’m missing something obvious here…
Thanks a lot,
SebastianEDIT: The different modes of the 8BitDo controllers and their implications as well as the cause of the missing L2/R2 triggers have been well described in this post, I was not able to find a solution in there though.
EDIT2: I ruled out UAS issues (SSD over USB3 SATA adapter) in regards to the loading times. UAS is disabled in the JMicro firmware, hdparm clocks read speed @ ~300 MB/s. Never mind the loading time question though, I tracked it down to a couple of duplicate ROMs (SD/SSD) that apparently caused that issue even on unrelated systems. After clearing every ROM and gamelist from the SD loading times are back to normal. The original text was therefore corrected.
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.