8Bitdo FC30 Pro works in ES but not Retroarch
-
Well i have made some discoveries that i wanted to share.
After many hours of reflashing and testing different configs i think i have finally got it right .
First i tried to setup my controllers with changing (and only those lines, nothing else) in retroarch.cfg
# Input driver. Depending on video driver, it might force a different input driver. # input_driver = sdl # Input device driver. (Valid: linuxraw, sdl, dinput) input_joypad_driver = "udev"
to
# Input driver. Depending on video driver, it might force a different input driver. # input_driver = udev # Input device driver. (Valid: linuxraw, sdl, dinput) input_joypad_driver = "udev"
Same problem that i had before. NES30 start button don't work in the nes/snes emulators when SFC30 is connected at the same time. So i have to press the start button on the SFC30 to start Super Mario.
So even if i configured the NES30 first and then the SFC30, SFC30 still is Joypad 1 (or 0 in Retroarch)
Still sdl errors after i exit EmulationStation to command lineThen i tried again with a clean image and change from
# input_driver = udev input_joypad_driver = "udev"
to
# input_driver = sdl input_joypad_driver = "sdl"
It configures in es but no button is working in the emulators.
So now i had tried both sdl and udev and went to look in the retroarch.cfg file and started looking at this line
# Input device driver. (Valid: linuxraw, sdl, dinput)
So i changed
input_joypad_driver = "udev" to input_joypad_driver = "linuxraw"
Well now apparently the keys work and i can also use NES30 Start button to start Mario even if the SFC30 is connected at the same time. But retroarch still reports SFC30 as Player 0 when i start a game.
SDl errors still present but its a start.So every time they are both connected SFC30 always become player one no mater what.
If i pair it last or first no change.
If i start a game with NES30 and then connect SFC30 its always player one. And so on. -
I came looking for a solution, but it's not clear what works. Can anyone who made this work, post a definite solution?
-
@harrymfa downgrading the firmware on the controllers worked for me.
-
You shouldn't need to switch the input driver to sdl - just update retropie-setup and go to bluetooth configuration and set the new mapping option to disabled for controllers with new firmware (or enabled for old. You will need to remove/re-add your controller and reconfigure in ES.
-
Hey there,
I just happened to have the same Problem. Raspberry 3, RetroPie 4.1, 8Bitdo NES30 PRO, Firmware 1.71. So I decided to delete the whole image and set everything up from scratch.
Now I switched off the Key Assign Hack Option for 8Bitdo older Firmware in the Bluetooth Menu BEFORE Pairing the controler. Now everything works fine. Don't know if this is the solution but it worked for me.
-
@BuZz wouldn't it be a better solution to completely remove the option 8bitdo mapping hack and always have it to off.
Every 8bitdo controller now has the latest fw update on the support site.
It would be better to advice everone to have the latest fw installed.
Or just live it to off be default.
Or I'm i missing something? Do the 8bitdo zero need the hack to be on? In that case may be add to on for 8bitdo zero only?
What are your thoughts?
-
I must agree that it would make more sense to have it set to OFF by default by now.
-
This post is deleted! -
@BuZz said in 8Bitdo FC30 Pro works in ES but not Retroarch:
You shouldn't need to switch the input driver to sdl - just update retropie-setup and go to bluetooth configuration and set the new mapping option to disabled for controllers with new firmware (or enabled for old. You will need to remove/re-add your controller and reconfigure in ES.
i tried it but this didn't work in my case...
-
@Rion said in 8Bitdo FC30 Pro works in ES but not Retroarch:
@BuZz wouldn't it be a better solution to completely remove the option 8bitdo mapping hack and always have it to off.
Every 8bitdo controller now has the latest fw update on the support site.
It would be better to advice everone to have the latest fw installed.
Or just live it to off be default.
Or I'm i missing something? Do the 8bitdo zero need the hack to be on? In that case may be add to on for 8bitdo zero only?
What are your thoughts?
I will change the default - when I added the support for this, there were more joypads with the old firmware than new and some new ones still had the old firmware. I agree that now it makes more sense to have it off. I don't want to remove the option as some people who haven't upgraded their device may use it.
-
Is there anything in this thread that will help solve my problem here...
-
I was having this same issue with my 8bitdo SFC30 and resolved it after I discovered that the button mappings created by the EmulationStation configuration are different from what Retroarch actually needs. I'm not sure why they would be different as most joysticks map the same for both EmulationStation and Retroarch. However, EmulationStation mapped as follows A=11, B=12, Y=15, X=14... and so forth, but the actual mappings used in Retroarch were A=0, B=1, X=3, Y=4, Select=10, Start=11, Left=6, right =7. Your specific joystick mappings may be different, so use jstest to figure out what mappings you really need.
Floob has a great video showing how to use jstest:
After you figure out what mappings you really need, you have to use emulator specific joystick overrides to differ from what EmulationStation uses.
Here is what I did to make this work for SNES. It should work for other systems by replacing snes with nes etc.:
EmulationStation creates system-wide joystick config files under this directory:
/opt/retropie/configs/all/retroarch-joypads/I created a new retroarch-joypads directory to hold all my snes system specific configuration files:
/opt/retropie/configs/snes/retroarch-joypads/I copied my 8BitdoSFC30GamePad.cfg file from the system-wide configuration folder into the new retroarch-joypads folder. I then updated the copied file with the new button mappings found from jstest.
To tell Retroarch to use my custom joystick override I edited
/opt/retropie/configs/snes/retroarch.cfg
to include this line:
joypad_autoconfig_dir = /opt/retropie/configs/snes/retroarch-joypads/My joystick now works perfectly in both emulation station and retroarch for snes games.
It's important to note that this new joystick configuration override causes complications to other existing joysticks that exist, or any new that you add. You now have to manually copy all joystick configuration files into the "/opt/retropie/configs/snes/retroarch-joypads/" folder before you can use that joystick for snes.
-
@th3dll shouldn't be any need to manually do a config - 8bitdo SFC30 works without any manual configuration (i have one). Just need to make sure you are on the latest firmware and have the "8bitdo hack" set to off (in bluetooth configuration).
https://github.com/retropie/retropie-setup/wiki/Setting-up-an-8bitdo-Bluetooth-controller
for older firmware the hack has to be on (controller needs to be reconfigured after changing the setting).
There is also a settings to swap A/B on ES should you want to do that.
-
@th3dll
Thanks! This was the only thing that helped for using my nes30 pro.
Only issue left is that I can't get out of a game with the select+start combo.
Do you have the same issue or how have you fixed this?Edit: Nevermind, found the solution in the retroarch wiki. Was confused with the high numbers in the original config for the hotkeys but they need to be the same as the combo-key you want to use. Easy peasy :)
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.