Could a "mame2019" be compiled?

I admit this is more like a request because i can’t do it myself. But let me explain.

We have mame2016 and there isn’t another between that and the current one. I think it’s useful to have a different version every few years. One may want to keep his MAME rom set as is and not update it every month, but at the same time he may want to also have an updated version for other devices, since MAME and MESS are the same core.

I’m currently happy with my MAME 0.214 romset and i don’t want to update it for at least a year, it’s not like it’s an easy thing to update anyway, these sets are huge and require many different files. But at the same time i do need an up-to-date MAME core for other devices that have nothing to do with the arcade rom-set.

If there was a MESS core that wouldn’t be an issue but now that they did merge it you have to choose between updating your rom-set every month (which is not great) or keep your current mame core but be out of date with the MESS side of things.

I know you can rename the cores if you want but they will still use the same cfg folders this way, which isn’t ideal.

Have you tried to compile it by yourself?

[NB: the following is not tested by me and therefore only theory]

The latest 0.214 commit should be 3ec4cbb, then after setting up your environment you have to do so:

1 git clone
2 cd mame
3 git checkout 3ec4cbb

After finishing you can edit mame/src/osd/libretro/libretro-internal/libretro.cpp
On line 479 you can change to the desired name

479 info->library_name     = "MAME";

Now it should compile with

make -f  Makefile.libretro

This can take some time. After that you need to change your mame_libretro.dll and your file to the names you want.

ATM i don’t have time, but maybe in a few days i will check if this works.


There’s also a script around the forum for making “split” cores, but all it’s really doing is changing that internal library name, so it might work here, as well.

1 Like

I appreciate the information but this stuff is over my head atm. I don’t know the steps or how to compile, etc. Does it need any programming knowledge?

Not really. But it helps to be familiar with the command prompt.

If you have patience i can help you through the whole process, but first i want to test it, so i can spare you troubles if something not works :slight_smile:

1 Like

Thanks. Can’t say i’m familiar with CMD, i only use it when i see it in tutorials :stuck_out_tongue:

@hunterk it is really hard to find the right commits for checkout. Even the ones on the doc page (e.g. mame0205 b691c38) are the wrong ones.
They are lacking the Makefile.libretro and the mame/src/osd/libretro/ folder as well.

I had to search for commits from twinaphex, tcamargo, r-type and others, but since i don’t know who is in the mamedev team and who in the libretro team it is really a hustle

Not sure who maintains the MAME cores. But if they’re reading this, I think it would be a good idea to delete either MAME 2015 or 2016 and add 2019 in its place.


I would also like to have mame0.214.libretro.dll, mame0.215.libretro.dll, mame0.216.libretro.dll as filename.

Same with FBNeo and all the other cores with changing romsets :slight_smile:

The problem is that everyone wants a MAME core that matches the ROMset that they currently have, which means we obviously can’t satisfy everyone.

IMO, we should only have 2003 and up-to-date.

1 Like

Fine for me, but a small hint in the online updater, which version is current, would be nice. :smiley:


Yeah, now that the manual scanner is in, the next 2 biggest pain points for new users (based on user reports I field here, on reddit and on discord) are: online updater and input re/mapping.

1 Like

That’s not good. We need 2003 for old machines, and at least one modern stable version. That means minimum of three total.

Keeping older Mame cores around has quite more than advantages then Romset issues. I’ve been keeping especially standalone older versions around because you’ll never know when something breaks, is rewritten etc, plus it’s useful for low-spec platforms. With standalone you can always go back because those versions are provided ready on the web. With RA this isn’t possible, the 2016 core is still useful because of that. In fact yearly snapshots could be useful too for the listed reasons, maybe outside of the online updater.

IMO, other than the older versions that are needed for weaker systems, you need at least two seperated recent versions. One for the arcade romsets and one for the MESS side.

Everyone knows how MAME roms change in every version which means if you keep the same romset it becomes less compatible over time. And it’s not easy for most people to update it because of how big it is. On the other hand, MESS doesn’t care about how old your roms are. You can have the latest version and still use the roms you have.

So basically it makes sense to stop updating MAME for a while until you decide to update your roms and keep your “MESS” version updated at all times since the roms don’t change. You can achieve that if you have two versions of MAME being updated and people can just decide when to stop updating the Arcade side.

You can do the same thing by simply renaming the cores but the issue with that is they will share the same core options. In my case, these options need to be different between MAME and MESS roms. But you can’t save different core options per directory (that would solve the problem entirely). The other solution is to have hundrends or thousands of game core option overrides or keep a second RetroArch setup. Both not very graceful solutions.

Meh, i never liked how they merged MAME with MESS and now it shows.

Ok, this will take more work and time that i have expected… :thinking:

Yesterday i compiled a mame core with changed library_name and at first it looked fine.
The name displayed in RetroArch was the one i modified.

But after a short moment of joy i noticed, that my core is still using the /system/mame/ path and the /saves/mame/ as well.

Eventually i have to edit other files as well.

1 Like

I find that the mame2016 core is an excellent “modern” alternative to mame2003. It runs great (even on the XU4) and I am using it successfully with mame0188 romset. I recommend stripping away crap from romsets with an “all killer no filler” list, reducing the number of games to under 1000.

MESS roms can and have changed just as MAME roms do. Maybe they don’t in your experience as much as MAME, but there is no way you can just take a 0.174 MESS rom set and expect it work with the latest.

You are talking about the bios/device roms obviously. I’m talking about the games. Like, you can still play your ancient NES roms you downloaded in 1999 with the latest MAME. You don’t really need a new NES romset.

It’s not entirely true once softlists come into play, but I think mostly true for the majority of platforms. I think for some obscure drivers (computers) it may be the case that earlier file formats aren’t supported anymore.

I don’t quite understand why you don’t think of the MESS Bios as MAME games equivalent in the context of updating though, is this because of the supposed size difference? I always thought that’s why people are supposed to constantly only get MAME update Roms sets (I don’t usually get any MAME sets, I pick games manually…).