Homepage Forums RetroPie Project Controller Configuration in RetroPie Emulator Specific button config

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #99039
    cougar281
    Participant

    I just ‘came back’ to RetroPie and let me first say this latest version is a **HUGE** improvement over the last time I used it probably more than a year ago. Especially when running on a Raspberry Pi2 @ 1Ghz.

    I ran into a few issues that I had to re-learn how to fix related to the XBox 360 controllers, such as the constant blinking lights and initial button configs, but I got that all resolved, and it was easier to fix than before – the second controller even works in the NES emulator for player 2! That never worked right before.

    The last thing that I can’t seem to figure out is setting a custom button config specific to the NES emulator. Basically, I want to swap the ‘B’ and ‘X’ buttons as that would be ‘more natural’ relative to the original NES controllers than the way it is now. I think I’ve got the location in the NES figured out – I’d need to put what I want to do in the ‘/opt/retropie/configs/nes/retroarch.cfg’ file – whatever is in there should override the global config. I found the file that was created after installing the XBox driver and running the config from within RetroPie (/opt/retropie/emulators/retroarch/configs/XboxGamepad(userspacedriver).cfg), coped everything in the file and pasted it into to the ‘nes/retroarch.cfg’ file then swapped the buttons I wanted to swap, but it seems to not be taking effect, even though it’s supposed to override the global config.

    For reference, what is in the ‘XboxGamePad’ file is:

    input_device = "Xbox Gamepad (userspace driver)"
    input_driver = "udev"
    input_b_btn = "5"
    input_y_btn = "7"
    input_select_btn = "14"
    input_start_btn = "13"
    input_up_btn = "0"
    input_down_btn = "1"
    input_left_btn = "2"
    input_right_btn = "3"
    input_a_btn = "4"
    input_x_btn = "6"
    input_l_btn = "8"
    input_r_btn = "9"
    input_l2_btn = "10"
    input_r2_btn = "11"
    input_l3_btn = "15"
    input_r3_btn = "16"
    input_l_x_plus_axis = "+0"
    input_l_x_minus_axis = "-0"
    input_l_y_plus_axis = "+1"
    input_l_y_minus_axis = "-1"
    input_r_x_plus_axis = "+2"
    input_r_x_minus_axis = "-2"
    input_r_y_plus_axis = "+3"
    input_r_y_minus_axis = "-3"
    input_enable_hotkey_btn = "14"
    input_exit_emulator_btn = "13"
    input_menu_toggle_btn = "6"
    input_load_state_btn = "8"
    input_save_state_btn = "9"
    input_reset_btn = "5"
    input_state_slot_increase_btn = "3"
    input_state_slot_decrease_btn = "2"

    Edit: as I imagine you’re aware, the ‘"’ is actually ” in the config file.
    Edit3: *Sigh* – the board loves changing things on it’s own. The ampersand quot semicolon are ‘double quotes’ in the config.
    Any ideas what I’m missing?

    Thanks

    #99072
    Floob
    Member

    Just put the override lines that you need in your system specific retroarch.cfg, then post the contents of that file here.

    #99076
    cougar281
    Participant

    I have the entire blob in the code window above in the config below ‘video_smooth = false’ with the two buttons I want changed. If I were to only include the two buttons I want swapped along with what was originally there, then it would look like this:

    #include “/opt/retropie/configs/all/retroarch.cfg”
    # All settings made here will override the global settings for the current emul$
    input_remapping_directory = /opt/retropie/configs/nes/
    video_shader = /opt/retropie/emulators/retroarch/shader/phosphor.glslp
    video_shader_enable = false
    video_smooth = false
    input_b_btn = “6”
    input_x_btn = “5”

    #99082
    Floob
    Member

    That looks right – what happens if you just have what you just posted?
    Any settings not overwritten should just carry over.

    #99463
    cougar281
    Participant

    It does the same thing (The A & B buttons are the same as they were before) – it’s as if the retroarch.cfg in the /nes doesn’t even exist.

    #99681
    fr4j0
    Participant

    Just to add to this, I’ve also tried this, changing the button keys for the nes emulator for a better gaming experience. (I’ve no issue getting any of the emu working on any other system – even the C64! but just never changed the keys to something other than default.)

    Tried changing the the keys in “/opt/retropie/configs/all/retroarch.cfg”
    and also “/opt/retropie/configs/nes/retroarch.cfg”

    I also noted from a comment on Floob video regarding having the key input lines before the #include line (originally on line 1) and inserting them before this #include. Still no joy in getting the buttons as I like them.

    I’ll be trying out beta 3, to see if this sorts this issue.

    p.s – Floob? thank you for all you excellent videos btw really great help on all things retropie :)

    #99700
    Floob
    Member

    Can I confirm the input device you are trying to remap? Which keyboard/joypad is it?

    Maybe attach, or post on pastbin your auto controller file, system specific and main retroarch file and I could see if there is anything obvious there?

    #99736
    djspade
    Participant

    Man… I wanted the same thing, the NES to use the X Button on my Xbox controller to be the B button and the A button to be the A Button… after much hassle, I figured it out:

    Edit “/opt/retropie/configs/nes/retroarch.cfg”

    Add these two lines to the bottom:

    input_player1_b_btn = (button number of your controller, not in brackets or quotation marks)
    input_player1_a_btn = (same, pick the correct button number)

    For example mine looks like:

    input_player1_b_btn = 2
    input_player1_a_btn = 0

    Then I saved, restarted and it worked! I was so happy because like you I tried a bunch of crap. It seemed like it was just the “player1” portion of the command that solved my problem. Also, for mapping you are mapping the actual system button you want, not the actual button that shows on the controller. If your controller shows the “X” button and you want that to be the emulator’s “B” button you use “b” on the line. A just happens to be the button I wanted to use for A anyways. You wouldn’t use X because there is no X button on a Nintendo controller.

    Thought I would share this as it was a bitch to figure out! Like you said it is more natural having your thumb use those two buttons than angling it the other way!

    I am using the newest Retropie 3.0 BETA 3 that just released the other day.

    Cheers, hope I helped!
    =)

    #99796
    charco
    Participant

    In the RGUI menu in FCEUMM I just edited my buttons to have Y on my SNES pad act as B and B on my SNES pad to act as A. Then I turned Configuration per core to ON and Configuration save on exit to ON and then chose Quit RetroArch to save these settings. When I exited and booted up a NES game my buttons were saved to this new configuration.

    I had experience with this previously on the Wii port of RetroArch and it worked so I figured I would try it on my RetroPie.

    I also just tried this on lr-fba and changed my buttons for Street Fighter III 3rd Strike, now I can have my weak punches and kicks on the shoulder buttons and my mediums and strongs on the face buttons. Saves me changing them each time I boot up that game.

    #99871
    cougar281
    Participant

    [quote=99736]Man… I wanted the same thing, the NES to use the X Button on my Xbox controller to be the B button and the A button to be the A Button… after much hassle, I figured it out:

    Edit “/opt/retropie/configs/nes/retroarch.cfg”

    Add these two lines to the bottom:

    input_player1_b_btn = (button number of your controller, not in brackets or quotation marks)
    input_player1_a_btn = (same, pick the correct button number)

    For example mine looks like:

    input_player1_b_btn = 2
    input_player1_a_btn = 0

    Then I saved, restarted and it worked! I was so happy because like you I tried a bunch of crap. It seemed like it was just the “player1″ portion of the command that solved my problem. Also, for mapping you are mapping the actual system button you want, not the actual button that shows on the controller. If your controller shows the “X” button and you want that to be the emulator’s “B” button you use “b” on the line. A just happens to be the button I wanted to use for A anyways. You wouldn’t use X because there is no X button on a Nintendo controller.

    Thought I would share this as it was a bitch to figure out! Like you said it is more natural having your thumb use those two buttons than angling it the other way!

    I am using the newest Retropie 3.0 BETA 3 that just released the other day.

    Cheers, hope I helped!
    =)

    [/quote]

    Thanks! This was the solution. As you pointed out, it seems the ‘_player1_’ portion of the config file was the key.

    For reference, it’s a XBox360 Wireless controller, and I’ve installed the actual XBox driver and disabled the xpad driver, so it’s using the ‘XboxGamepad(userspacedriver).cfg’ config file as it’s root config file.

    #100401
    djspade
    Participant

    I’m using an Xbox ONE controller for Windows, plugged in with USB. The ocnfig also works if you are adding a second controller and use the _player2_ portion of the config. My second controller is a hard wired PS3 controller. I just used wired as I don’t feel like playing with all the Bluetooth configurations.

Viewing 11 posts - 1 through 11 (of 11 total)
  • The forum ‘Controller Configuration in RetroPie’ is closed to new topics and replies.