System configs are overriding global configs, but why?

I am using Launchbox as my frontend for my arcade machine with Retroarch handling MAME. I only have MAME games on the arcade but I am using Retroarch because it allows me to break up my games by their system and have custom configs for each system while running the same emulator.

My issue though is that when I fire up a game through Launchbox, enter the MAME quick menu, and configure the buttons under the “GENERAL” input menu the buttons are being overwritten by the “machine” input buttons. I have my MAME library in Launchbox broken down into catergories of their systems. I can I set the buttons up for one game under the GENERAL input menu in mame so that those settings apply to all games?

I’ve been trying to figure this out for some time. Nobody I’ve talked to really seems to know WHY this is happening, but someone should, so I keep popping up on these topics when I can. I know @faked_potato has been dealing with this as well. I’m hoping we can keep this issue relevant enough that eventually someone who knows what’s going on, or has set it up right, can give us some info.

The best information I’ve gotten is that you should have a \system\mame\mame.cfg file for RetroArch to save “general” controls to…

But if you’ve gotten this far I’m sure you’ve got that and the \system\mame\config folder with all the “This Machine” inputs being saved as well.

While the “this machine” method certainly works, how many users have a whole MAME library? Obviously setting it up for each game in that instance is ludicrous lol

Thanks for chiming in. The weird thing is that months ago when I was setting up everything this was never an issue. I had cores and custom configs setup for various arcade systems. I did this so that each system within Launchbox would display it’s respected bezel. I was also able to make specific configurations to certain games if I wanted to. For example, all of my Mortal Kombat games needed their own specific button configs so that the high kick was above the low kick button and high punch was configured to be above the low punch button. In addition, I even had custom bezels for my Mortal Kombat games as opposed to a standard Midway bezel. But at that time something else was a problem and I couldn’t figure out what it was. The problem was that I hit two of player ones buttons together it would exit my game. Eventually I figured out why that issue was occuring but now I’m dealing with this problem. Like I said, this was never an issue before but now it is. Each game that I load up has to be configured in MAME quick menu (hitting the tab key while in game) under “this machine” because the general or global settings are not the config that mame is utilizing. Obviously configuring each game individually is bizarre. There has to be an answer to this.

That’s good to know it’s a newer issue, I’ve had this issue ever since I started trying to use MAME in RA. Perhaps that means it’s simply an error that needs to have a fix pushed on github? I don’t know much about that process though, I just see people more ‘in the know’ than myself doing so occasionally on here.

I wish we could just use the normal RA menu like for every other core. Even opening the menu is a headache for me 'cause TAB has been my universal reset button since 2001 hahaha.

Im not sure if you are using Launchbox with your system, but I am with mine. One of the great things about Launchbox and RA was that I was able to use the -c argument to load custom configs for each core. It was a bit time consuming considering the amount of arcade systems that I had but solved all the issues I was having and allowed for the customization I was looking for. Everything was working great.

I am wondering if the “per core config” option within RA has anything to do with this issue at all. I have seen a lot of topics started regarding it and maybe it has something to do with all of this, but i am not sure because a lot of the discussion I have seen is it bar far over my head. Its hard enough trying to word a question properly when you have an issue with this kind of stuff.

I also tried reinstalling retroarch to see if that would correct the issue I am having but the problem still continued to persist.

I don’t have this issue with current MAME (I’m on 0.188, but I don’t think anything changed on the libretro end for 0.189). I can configure general inputs and other options and they are saved to RetroArch\Saves\MAME\mame\cfg\default.cfg. Just like stand alone. I have Sort Saves in Folders on in RA’s Saving settings, which is why it gets sorted into the MAME folder in Saves. One of the things I changed there was remapping the MAME menu key to Q…

Does changing general settings work if you launch through RA’s interface instead of LaunchBox? Their script has been known to do their own weird config loading stuff.

If I load a config, then the mame core, I have the same issue even if I just load it through RA. If I want the coin button to work, or any other button, I have to config buttons through “this Machine” because setting inputs under the “general” yields nothing.

The other thing I notice is that the input settings within the RA menu take precident over the MAME menu settings as well.

Here is a screenshot of game config files that are being saved in the roms folder. I am assuming that these should only be saving if I want specific game configs? Im wondering if this is where my issue begins. Hopefully someone has some information on this.

No, it creates .cfg files for each game at first launch even if you don’t make any machine specific settings changes. So, weird, you can’t just go into the MAME menu, Input (general), Other Controls and change Coin 1 and have that work for all games? For controller inputs you do have to have everything mapped in RetroArch that you want to map in the MAME core. Then when you map them in the MAME menu they show up like “Joy 1 SELECT” which I use for Coin 1. Keyboard inputs can be mapped without having them mapped in RA first though, since the core can directly see keys through the RetroKeyboard abstraction. I have that set to Backslash, so the Coin 1 entry looks like “Joy 1 SELECT or BCKSLASH”.

As long as you aren’t changing your content directory with your different configs loaded with -c, I don’t see why it wouldn’t use the general settings from default.cfg for all games.

I haven’t made any changes in the content directory of RA that I’m aware of. It seems I’m really only using RA for its ability to load custom configs through Launchbox so that I can have more customization per system.

The weird thing still, is that this all worked fine at one point.

Because I’m using an ipac4 I can’t see a reason to reconfigure the inputs within RA.

I feel like my last resort is to wipe the entire hdd, reinstall Windows, Launchox, RA, etc. I have tried various versions of RA but that didn’t fix my issue either.

Have you thought about using the override config system instead of loading configs manually with -c? You can override settings per core or per game that way (though cores that handle multiple systems can be a problem if you need separate settings for their systems).

Well I ended up using the -c command due to the customization of the various arcade systems. I’m not sure if you use Launchbox at all but I had to change each system into a playlist in order for each system to have it’s own core. Since my goal is to have various systems like cps1, cps2, cps3, namco, Atari, etc do you think that command you’re referring to would work for me? I have this into various systems so that each system uses it’s respected bezel.

Ahh, that wouldn’t work then since you need separate settings for different systems that all launch in the MAME core. You could use the --appendconfig command line option instead of -c to append only the options you want to override in a config for each system instead of swapping the full config. At least I think so, someone was having issues with that a bit ago and I don’t use it anymore since the override system works for my uses.

@buttonmasher

I would suggest removing all of the files in the saves/MAME path that awakened pointed out above.

Also remove any trace of mame ini files you may have in system directory.

Now you can start fresh testing with retroarch.

There are a couple of core options to look at while testing. The read and write config options those tell RA mame what to do with specific mame created config files.

Do your testing directly in retroarch before mixing LB in.

You should not need to format everything!