Please do not post a support request without first reading and following the advice in

  • I've noticed that when navigating through EmulationStation to "do" a thing I will press "A" on my controller, but if I need to navigate a terminal menu (RetroPie Setup, Raspiconfig, selecting a default emulator) the button you have to press to "do" a thing is "B". Is this something that was done intentionally? Having it be the same button for committing an action would be helpful.

    For what it's worth I'm on a Pi 3 running RetroPie 4.0.3 and am using Super Famicom controllers via a Raphnet USB adapter.

  • I'm using a PS4 controller and I noticed this too. I would also like it if it was the same button for both Emulation Station and the Terminal Menus, Run Command, etc.. Also, in my case Raspi-config behaves differently from the other menus as in pressing any of the face buttons doesn't cancel or select a menu option. I have to use the shoulder buttons to toggle between menu scrolling and menu select.

  • Global Moderator

    @obsidianspider, @CourierSS

    The terminal menus automatically grab the first button of the first controller it finds (js0). There might be a better way, but I do know how to make this work using xboxdrv. First of all, when creating your map, you would instruct that your button 'A' be read as js_0. To do this, you would add the line:

    --ui-buttonmap a=JS_0

    However, the virtual joystick event that xboxdrv creates will reside at js1, assuming that your physical controller was able to be read by the system as js0 first. In the past, I have successfully launched xboxdrv from a shell script, followed by a command to either rename or delete js0 and then renaming js1 to js0. At the time, I had this script executing when software was launched, so I also had a script that reversed the naming when the software shut down, putting everything back the way it was. I run my setup a little differently now, but I had no issues when using this method. Again, there might be a better way out there and your mileage may vary, but it's at least one possible way to make this happen.

  • Another way to fix: I learned yesterday that you can swap A and B in emulationstation which brings it in line also:

    Tldr: its an option you can find in the settings.

    Maybe someone know how to also do this with retroarch's Rgui? Libretro cores are fine, its just Rgui where A and B are still inverted for me.

  • Global Moderator

    @vbs said in Inconsistent Menu Navigation - EmulationStation vs Terminal Menus:

    Another way to fix: I learned yesterday that you can swap A and B

    Of course that's assuming that button 'B' is is seen as the first button (0) on your joystick. There are many controllers where this is the case. However, on many others, it's common for the 'B' button to identify as the second button (1), with the 'A' button identifying as the third (2). Sometimes there doesn't even seem to be a rhyme or reason as to how the buttons identify. It's entirely at the discretion of the manufacturer.

  • @vbs said in Inconsistent Menu Navigation - EmulationStation vs Terminal Menus:

    Maybe someone know how to also do this with retroarch's Rgui?

    AFAIK in RGUI the Retropad B is allways the "back" and the Retropad A is allways the "OK".

    Retropad is the RetroArch abstraction for its gamepad. The actual button on your physical gamepad is customisable through settings -> input -> input user N binds.

    If after these changings the ingame configs don't fit your taste you can remap as shown in the wiki:

  • Sorry I did not mean to hijack this thread. I made my own thread here for the RGUI concern:

  • The behavior I'm seeing now a days is consistent between EmulationStation and the RetroPie-Setup Script. The big outlier for me is the Raspi-Config menu being the opposite of everything else. Has anyone discovered a way to swap the confirm/cancel button behavior for Raspi-Config?

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.