cafarellidigital
Participant
Post count: 10

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?