Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
remove retropi key bindings by system
I have a controller designed to work with mame which just maps certain keys to buttons and joysticks.

The retropi mappings in mame really screw this up.  How can I remove those bindings in mame?

I don't see where the controller config is for mame.  There should be a file to change to set up the default config to match the layout of my hardware.  This used to be a simple text file, but I don't know how to edit ~/RetroPi/roms/mame-libretro/mame2003/default.cfg (assuming this is even the correct file, which I'm not sure)

I assume the retropi mappings are just some text file fed to mame somehow.  mostly I want to create my own mappings (or use a prebuilt one for my hardware) and feed that instead.  I'm not too clear on how all this works... should be easy, but you have to know what to do.

BTW, my hardware is an xarcade 2 player joystick. but the system doesn't detect it as anything special, which it isn't. just a keyboard from the perspective of the pi.
Yes. Those configs are really a P.I.T.A!  
That's how it goes, i think Smile

When you map a controller in EmulationStation, a Controller_Name.cfg is generated in /opt/retropie/configs/all/retroarch-joypads . Bindings set there seems to override any other setting made inside Retroarch menu. So, editing them might be a good starting point (option 1).

Current logic is, whenever you run a game, EmulationStation reads its config file (es_systems.cfg), containing all platform names, paths, extensions, roms folders, themes, and commands to open games. The command is usually a Retropie script ( that basically reads emulators.cfg for default emulators definition. Actual executable line is generally: retroarch binary, core to be loaded, config file to be loaded and rom name. Config files are all named retroarch.cfg. There is a default one in /opt/retropie/configs/all and core specific ones in /opt/retropie/configs/PLATFORM . AFAIK, none of these files will override input bindings when joypad autoconfig option is set as default.

So, option 2: edit mame-libretro's retroarch.cfg making sure it won't conflict with retroarch-joypads (you need to test).

option 3: a few cores have Controls option in Retroarch quick menu

option 4: like every MAME, TAB should work to open internal menu

more info here:
and here:
(11-18-2016, 08:59 PM)alexkidd Wrote: Yes. Those configs are really a P.I.T.A!  
option 4: like every MAME, TAB should work to open internal menu

This turned out to be the only solution I had success with.  I set up the controller (even programming it) according to a series of youtube videos, and really was no better off afterwords.  In the comments, someone suggested not mapping 'p' as that is pause in MAME, only after which the author mentioned he didn't use MAME..

Long story short, the solution is to:

1) configure the xarcade controller P1 and P2 however you want.
2) adjust both /opt/retropie/configs/all/retroarch.cfg and /opt/retropie/configs/mame-libretro/retroarch.cfg to match whatever you set in step one, you also want to take care here to unmap duplicates. such as in my case, 'p' which was P2 down and pause. I set pause to be '.' Note: you'll have to adjust pause again in step 4. I don't know if this matters, but it would suck if it did and I left this part out.
3) go into ~pi/RetroPie/roms/mame-libretro/mame2003/cfg, and remove all .cfg files there.  neglecting this step, you will be pulling your hair out wondering why nothing you do seems to help
4) start any game, and hit TAB | Input (general) and adjust all P1 and P2 settings so that you only have the single desired keypress.  I couldn't figure out how to completely unmap a setting, so for things I didn't care about which matched my actual P1 and P2 commands, I assigned them to something I won't use.  EQUALS, in my case.  I couldn't REMOVE any settings, only add to the list.  Thus the way to get JUST ONE setting is to set what you want multiple times.  Eventually, it will replace all of them with your choice.

In my case in step four, the main thing was to unmap everything that I had mappings to for P1 and P2.  most notably, pause because the author of that youtube video mapped 'p' to P2 DOWN.  Hope someone else finds this useful.

Possibly Related Threads...
Thread Author Replies Views Last Post
  RetrOPI guidance tl5k5 1 2,303 01-12-2017, 05:08 PM
Last Post: alexkidd

Forum Jump:

Users browsing this thread: 1 Guest(s)