LR-MAME. How to set custom controls?

Welcome Page Forums RetroPie Project Controller Configuration in RetroPie LR-MAME. How to set custom controls?

This topic contains 21 replies, has 4 voices, and was last updated by  helpman 2 years, 9 months ago.

Viewing 22 posts - 1 through 22 (of 22 total)
  • Author
  • #114102


    Just due to the feature of rotating through different shaders (which will make my setup a better system when used to small crt tvs or big led ones), I decided to try lr-mame and not mame4all…

    beisdes the hotkey to cycle through shaders which I already have correctly setup, I miss the mame menu (TAB) to remap keys for all games or specific games.
    I couldn’t find anything about which ones are the retroarch hotkeys for menus, and I must admit I don’t know most of its features.

    Is there any way to setup buttons only for lr-mame close to the mame ones? I.E. map keys for all games and map buttons for specific roms, without having to mess with cfg files?



    Config files are what define the controls so no.



    I already visited that wiki, but how can I know what button uses lrmame for what?
    a, b, x, y, start, select, l, l2,l3,r,r1,r2,r3…
    if I just want to set buttons 1 to 7, 1p, 2p and coin?
    is 1p start and select coins?
    a, b, x, y, l, r will be the 6 first ones, what’s 7th? l2?
    how do I set a different keymap for a rom? (i. e. 6 games buttons wont use button 1)



    Depends on your controller and depends on the game. There is too much variability to have one answer work for everything.

    Accessing the runcommand menu you can make custom edits on a per rom basis:

    You’ll essentially type in the joystick values you want to override the default retroarch.cfg in the format

    input_player1_a_btn = "1"
    input_player1_b_btn = "2"


    You can find out your joypad values with jstest or whatever the values show up as when you configure your controller with emulationstation.



    I already remapped it for neogeo, but it’s easy as it only uses a, b, x, y start and select as coins.

    what I’m trying to guess is what are the next buttons to map them to my 5-7 buttons. l, r, l2 maybe?

    for custom keymaps per rom, there’s an option on the M menu before the game starts right?
    maybe I can create a custom remap file for 6 button games and load them as needed using that option




    did you had any luck with the mapping?

    I notice that you can have the TAB in Mamelibretro. You need map one of the RTop or RBotton triggers.

    In Mame4All I don’t know how to map the tab!



    finally the only way I found was creating a standard layout for 6 button games, use romlister to create a list of all 6 buttons games and then export as a batch file copying that profile with each game rom name…



    hello …
    Can you explain how you did please?
    I cannot understand this tool!!

    Paulo Aboim Pinto



    this is a good idea! right now lr-mame2003 has a few issues:
    – the hotkey (typically ‘select’ button) conflicts with insert coin (typically ‘select’ button) meaning the latter often doesn’t work (see
    – it is impossible to rebind buttons without also rebinding the core retroarch gui buttons. eg, if you change the A button to do something else than the default, then it will no longer be the ‘confirm’ button in retroarch (see, which makes using the RGUI difficult.

    in theory you could use per-game .cfg files to correct the key mapping for those games, and also disable the hotkey, and just do without save states/the RGUI (neither or which i need), solving both problems.

    but then i’ve thought of a problem – you’d not be able to exit the game without a hotkey 🙁 i think you can bind exit to a single button, but i don’t like that either (easy to do it by accident). dang…



    I use a custom map on the opt/configs/emulators folder (inside each system there’s a retroarch.cfg file) there I set the standard buttons for that emulator.
    select+start hotkey still works!
    then for each game that needs a different map you create a cfg file with the same name as the rom on the roms folder, and only set the buttons you need to change there.




    I’m glad to know that is possible but can you give an example of this file and how do you map the TAB key with a combo?

    What should be the structure of the configuration file for each game that we have to add to the rom folder?

    best regards



    In my case I just needed to remap joystick buttons, so just as example… may give you a hint about what you need…

    in home/opt/retropie/configs/neogeo (as example) I have to swap button 0 and button 1, but just in case I set all buttons needed. You must edit the file retroarch.cfg

    # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line

    input_player1_joypad_index = 0
    input_player1_b_btn = 0
    input_player1_a_btn = 1
    input_player1_y_btn = 2
    input_player1_x_btn = 3
    input_player1_start_btn = 7
    input_player1_select_btn = 13
    input_player2_joypad_index = 1
    input_player2_b_btn = 0
    input_player2_a_btn = 1
    input_player2_y_btn = 2
    input_player2_x_btn = 3
    input_player2_start_btn = 7
    input_player2_select_btn = 13
    input_enable_hotkey_btn = 9
    input_shader_next_btn = 6
    input_shader_prev_btn = 5

    input_remapping_directory = /opt/retropie/configs/neogeo/

    #include “/opt/retropie/configs/all/retroarch.cfg”

    as you can see if you compare it to yours, I added the input_blabhlahblah

    apart from remapping the buttons to others (in neogeo select insert coins so I set it to my button 13, which emulates the coin slot. even with the button changed, as the base retroarch hotkeys are still by default select+start, which are defined as button 9 and button 8, the hotkey still works and pressing both will exit the game back to emulation station.

    you can do this for every libretro based emulator.

    if you need to change buttons for a specific game, just make a copy of the retroarch.cfg file for that emulator, and place it on home/pi/retropie/roms/mame-mame4all (or the rom folder you need) and edit away.

    # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
    # configuracion mame juegos 6 botones
    input_player1_start_btn = “7”
    input_player1_select_btn = “13”
    input_player1_b_btn = “1”
    input_player1_a_btn = “2”
    input_player1_y_btn = “3”
    input_player1_x_btn = “4”
    input_player1_l_btn = “5”
    input_player1_r_btn = “6”
    input_player1_l2_btn = “nul”
    input_player1_r2_btn = “nul”
    input_player1_l3_btn = “nul”
    input_player1_r3_btn = “nul”
    input_player2_start_btn = “7”
    input_player2_select_btn = “13”
    input_player2_b_btn = “1”
    input_player2_a_btn = “2”
    input_player2_y_btn = “3”
    input_player2_x_btn = “4”
    input_player2_l_btn = “5”
    input_player2_r_btn = “6”
    input_player2_l2_btn = “nul”
    input_player2_r2_btn = “nul”
    input_player2_l3_btn = “nul”
    input_player2_r3_btn = “nul”
    input_enable_hotkey_btn = “9”
    input_shader_next_btn = “6”
    input_shader_prev_btn = “5”

    input_remapping_directory = /opt/retropie/configs/mame-mame4all/

    #include “/opt/retropie/configs/all/retroarch.cfg”

    this is a mapping for street fighter 2 championship edition.
    (I just moved all the buttons, as the button 0 is not used, but 1,2,3,4,5,6 instead.)
    so as the rom zip file is named, you must name this file “” and it will be loaded when this game runs.

    not sure if this helped you 😀



    tkx for the examples .. and witch line is the responsible for remapping the TAB key !??!



    there’s no point mapping the tab key. it won’t save any rebindings. see

    use the given retroarch cfg mappings to remap your controls.



    maybe you though on a mame menu, but with libretro chores there’s no such menu, you must remap buttons on retroarch cfg files



    Maybe I’m very stupid for not seeing what is going on … nothing of this works for me.

    I add on my Mame-Mame4All folder, the same folder my game is the file .cgf with this information

    input_player1_start_btn = 5
    input_player1_select_btn = 4
    input_player1_b_btn = 2
    input_player1_a_btn = 0
    input_player1_y_btn = 1
    input_player1_x_btn = 3
    input_player1_l_btn = 7
    input_player1_r_btn = 6
    input_player1_l2_btn = nul
    input_player1_r2_btn = nul
    input_player1_l3_btn = nul
    input_player1_r3_btn = nul
    input_enable_hotkey_btn = 4
    input_remapping_directory = /opt/retropie/configs/mame-mame4all/
    #include /opt/retropie/configs/all/retroarch.cfg

    and looks like what in the attach and my INSERT COIN still not working … even when I remap to another button.

    where can I check the log of the MAME … witch files the emulator is loading, etc, etc??

    best regards
    Paulo Aboim Pinto
    Odivelas – Portugal



    your file is named wrong – should be .cfg not .cgf 🙂



    and the retroarch cfg files work with lr-imame4all, if you use mame4all you’ll be able to set custom controls just opening the standard mame menu with tab. connect a keyboard to open it, then change each general option (including tab) to what you need.



    dammm ..
    I don’t have a keyboard to connect there … there should be a way, a file that I can update!



    so use lr-imame4all instead?



    dammm .. I made it … first game that I could map buttons like I want!!!

    tkx you all …

    hugs and kisses
    Paulo Aboim Pinto
    Odivelas – Portugal



    I’m glad you made it work, aboimpinto 😀

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

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

We use Cookies and similar technology to collect and analyse information about the users of this website. We use this information to enhance the content, advertising and other services available on the site. Please click ‘Accept cookies’ to consent to the use of this technology by petrockblock. You can manage your preferences at any time by visiting our Cookies Policy page.