8Bitdo NES30 Pro Bluetooth controllers not registering right analog left and right positions properly
GeekOB last edited by GeekOB
Raspberry Pi 3 Model B
2.5A Power Supply with USB 3 cable)
RetroPie Version 4.4.8 (5dff90ef)
Built From: 4.4 SD Image from retropie.org.uk
USB Devices connected: flash drive for movie file watching on Kodi
Controller used: 2 x 8Bitdo NES30 Pro Bluetooth controller
Emulationstation version 2.8.1RP
Error messages received: None (see below)
I noticed this issue after the last two updates.
I have two 8Bitdo NES30 Pro Bluetooth controllers, both are detected properly through the Bluetooth RetroPie-Setup Script and input configuration goes well in ES until the right analog stick left and right positions, I'm able to map right to +2 but left will not detect movement at all, same behavior for both controllers.
Editing the mapping files for both Retroarch and ES has no effect.
Happy to provide more details if this helps.
@GeekOB Thanks for opening a new topic. Can you try to see if the Left/Right joystick movements are registered by RetroPie ? Exit Emulationstation (leave just one Joystick connected), then type on the command line
It should print a map of your gamepad (buttons/joysticks) and you can press buttons/toggle joysticks to see if the action is registered.
These controllers have multiple 'connect' modes (Android/PC/Switch, etc.) - did you choose a specific 'mode' to connect ?
GeekOB last edited by GeekOB
@mitu Thanks for the quick reply:
I obtained same results for both controllers:
0: action registered (left stick, x axis)
1: action registered (left stick, y axis)
2: action registered (right stick, x axis)
3: action registered (right stick, y axis)
4: stuck at -32767, action registered and changed to 32767 when R2 button, identified as button 9 below, is pressed
5: stuck at -32767, action registered and changed to 32767 when L2 button, identified as button 8 below, is pressed
6: action registered (D-Pad)
7: action registered (D-Pad)
0: action registered (A)
1: action registered (B)
2: action registered (on/off button)
3: action registered (X)
4: action registered (Y)
6: action registered (L1)
7: action registered (R1)
8: action registered (L2)
9: action registered (R2)
10: action registered (Select)
11: action registered (Start)
13: action registered (Left Analog stick thumb push)
14: action registered (Right Analog stick thumb push)
I didn't have to select any mode to connect.
There were no buttons pressed for the tagged as none. So I guess the controllers are fully working :)
@GeekOB Seems that L2/R2 are registered as axis and not buttons ? That sounds like an Xbox compatible adapter. I'd try one of the following
- install the
xpaddriver and see if you get anything different.
- start the controller in Switch mode (Start + Y) and re-pair it via BT, then configure it in ES.
- install the
GeekOB last edited by
@mitu It is possible that they're being detected as "triggers"?
would your suggestions work to fix the right analog stick issue? I'm actually interested in that, not the L2/R2 buttons :)
@GeekOB Try the Switch mode for the connection.
GeekOB last edited by
@mitu Thanks for your guidance, I now realize what you meant by the modes. I had been using the Android mode since the beginning (press and hold the Power button). The Switch mode works perfectly fine, I was able to configure and map all buttons and axes, the controllers are now detected as "Pro Controller" instead of "8Bitdo NES30 Pro"
My question is, Android mode used to work before, is it possible to make it work again? It's definitely better to not press a combination of keys every single time you want to turn on a controller.
Thank you once again!
@GeekOB I think that depends on the firmware - the button mapping. AFAIK once you start the controller with one 'mode', subsequent starts will start in the same 'mode' as it was paired - so you don't have to start it with 'Start + Y' every time - give it a try.
I have the same problem at the OP, and switching the mode did fix it, but you have to start the controller each time in that mode.
so to get it in pro controller mode you have to hold the power and y each time. just pushing the power will just power on the controller on android mode.
i have both a FC30 PRO and a NES30 PRO and i have to do it to both. and i have firmware 4.10 on both
stinks that something changed where android mode does not work now :(
I just wanted to chime in that I had the same problem with my N30 Pro 2 controller not registering the right analog stick pressing left in bluetooth mode, and that uninstalling and reinstalling the xpad driver fixed it. This was running it in D-Input mode.
@G30FF is your controller in android mode. i have tryed the reinstall xpad install and it did nothing. the only way i got my right stick to be seen was to have the controller boot into switch mode
Rion last edited by
@GeekOB Have you tried older versions of the firmware for the NES30 Pro?
Here you can find all the releases for every 8bitdo controller that's been made from the official website. Not easy to find but it's there.
well after testing i cant my N30 Pro or FC30 pro to work once i update my Pi to version 4.4.9 and yes i have also gone up to version 4.4.11
i have downloaded all the firmwares from what @Rion posted and nothing seems to work, and yes i have uninstalled and reinstalled xpad drivers
so far nothing seems to work.
posted issue on github
@ExarKunIv Can you try updating your Emulationstation package ? There was a recent update for the SDL libraries and since Emulationstation is technically at fault here, it might help to test with the new updated SDL2.
EDIT: just to confirm, is your controller started in Dinput mode - otherwise I don't think the
xpaddriver would have any effect ?
@mitu I did update the Emulationstation package. No luck.
I'm not sure I get what mode you are talking about. As far as I know it is just a default one. The one that is just with the power button. I'm not pressing any other buttons when I'm powering on the controller
@ExarKunIv OK, then let's debug this further.
Exit Emulationstation, then from the terminal run
Emulationstation should start in debug mode, and more messages are logged in it's log file. Run the input configuration again and map the buttons, then exit emulationstation.
Save the following files:
Paste their output to pastebin.com so we can take a look and see how the input is managed by ES and the configuration file is generated.
@mitu thanks for getting back to me
heres what you asked me to do
Looking at your controller mapping session, I see that
RightAnalogLeftbutton is not mapped in Emulationstation
Mapping [Axis 1-] -> LeftAnalogUp Mapping [Axis 1+] -> LeftAnalogDown Mapping [Axis 0-] -> LeftAnalogLeft Mapping [Axis 0+] -> LeftAnalogRight Mapping [Axis 3-] -> RightAnalogUp Mapping [Axis 3+] -> RightAnalogDown Mapping [Axis 2+] -> RightAnalogRight
8Bitdo FC30 Pro.cfgfile for RetroArch (that you posted) is obviously also missing that part:
# Entries re-arranged for readability # Left joystick input_l_x_minus_axis = "-0" input_l_x_plus_axis = "+0" input_l_y_minus_axis = "-1" input_l_y_plus_axis = "+1" # Right Joystick input_r_x_plus_axis = "+2" input_r_y_minus_axis = "-3" input_r_y_plus_axis = "+3"
Looking into a RetroArch auto-configuration file for a similar gamepad - see https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/8Bitdo_Pro_F30_BT.cfg -, I see that the joystick controls are similarly mapped, the only difference is the added
input_r_x_minus_axis(i.e. the RightAnalogLeft missing from your mapping session in Emulationstation).
So, are you sure you actually mapped the Right Joystick Left trigger in Emulationstation and you didn't accidentally skip it ? Does it not register at all in Emulationstation in the input configuration dialog ?
@mitu nope i have done it more times then i would like to say. each time it just will not see it. i have skipped it and gone back to it. it just does not see it
but if i map it on a clean 4.4 load with out updating anything it will work like a champ.
but if i put the controller into switch mode. which Emulationstation will see it as a pro controller. then it will work. but i will have to remember that i need to boot the controller in switch mode each time
and i did use
jstestand the 2 axes which it the right stick, left and right. it does show a number code as i move it about, both positive and negative