Can't customize NES controls on V3b4

Home Forums RetroPie Project Controller Configuration in RetroPie Can't customize NES controls on V3b4

RetroPie has a new website and forum. Please visit for the new site. The new forum is located at This forum is left here as a read-only archive.

This topic contains 3 replies, has 2 voices, and was last updated by Profile photo of iaaberg iaaberg 1 year, 10 months ago.

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
  • #100743
    Profile photo of iaaberg

    Hey guys,

    So with the new Retropie 3 beta 4 All my emulators (that i’ve tested) seem to be working fairly well with the button layout, Genesis works as expected, SNES as well without having to do anything, which is awesome. However, the NES is backwards. How do I change the A and B button functions on just this console?

    I put the info from the controller and reversed the buttons from the new retroarch-joypads folder into /opt/retropie/configs/nes/retroarch.cfg but it’s not responding any different. what am I doing wrong?

    • This topic was modified 1 year, 10 months ago by Profile photo of iaaberg iaaberg.
    • This topic was modified 1 year, 10 months ago by Profile photo of iaaberg iaaberg.

    Profile photo of iaaberg

    As an update, I have been fooling around with this more, and I’ve been able to get the hotkey buttons to change, so I know that it’s reading the retroarch.cfg custom file I’ve created. I’t just not allowing me to change core features. Example. I’ve changed the reset hotkey button to be several different ones, each working. Yet, the A and B buttons remain backwards. There has to be another core file that it’s finding somewhere.

    Profile photo of cafarellidigital

    I’m having almost this exact problem. I’m on Retropie 3 – Beta 2. The Auto Remapping feature is fantastic, yet it is not perfect. I’d like some more control.

    I’m using a PS3 Bluetooth controller as my main controller for the system. For the NES console, Button A (NES) is “Circle” on the PS3 Controller and Button B (NES) is “X” on the PS3 Controller. To me this feels awkward, and I’d rather have the buttons shifted one button over to this: Button A (NES) is “X” (PS3), and Button B (NES) is “Square” (PS3).

    To simplify… This is what I currently have:
    NES A = PS3 Circle
    NES B = PS3 X

    And this is what I want to have:
    NES A = PS3 X
    NES B = PS3 Square

    I know that I can do this fairly simply by adding a few lines into the NES config file (iaaberg, this may help you), found at “\opt\retropie\configs\nes\retroarch.cfg”. I can just add the following:

    input_player1_a_btn = "14"
    input_player1_b_btn = "15"
    input_player2_a_btn = "14"
    input_player2_b_btn = "15"

    However, this breaks the remapping feature, because now any different controllers I connect to the RetroPie will take those button mappings, overriding the Auto Config. This makes the fix above kind of useless.

    I wish instead I could modify how the NES emulator takes the inputs. I wish I could do something like:

    NES_input_a_btn = input_b_btn
    NES_input_b_btn = input_y_btn

    That might get a little complicated, but the principle is simple. There’s a variable for the specific controller input, there’s a variable for the input of the emulator, so there should be a bridge of some sort in between where you can dynamically mix and match the variables to your liking. This way, the dynamic remapping feature stays intact, but the user still has freedom to make changes like I just stated.

    For a little more info, here’s the full story. I have a PS3 Bluetooth controller, and a PS2 controller connected via PSX-to-USB adapter. If my Bluetooth controller runs out of battery, I use the PS2 controller. But if I want to play a NES game, I can’t, because the two controllers have different internal button mappings, like so:

    PS3 Face Button ID’s:
    Triangle = 12
    Circle = 13
    X = 14
    Square = 15

    PS2 (via Adapter) Face Button ID’s:
    Triangle = 0
    Circle = 1
    X = 2
    Square = 3

    If I hardcode a change to the NES configs, it won’t be usable for both controllers. Does anyone know of a way to get the correct result as I described?

    Profile photo of iaaberg

    good call on the adding “player1” to the cfg file. That was my problem with the NES. As for yours, have you tried adding input_device = “PS3” or whatever your controller is named in the configs section? That should then tell it that you only apply these overrides to that controller specifically. Though, that’s just what I would naturally think would be the solution.

Viewing 4 posts - 1 through 4 (of 4 total)

Forums are currently read only - please visit the new RetroPie forums at

Skip to toolbar