The docs seem to say that there are 12 (twelve!!) different builds of MAME included in this thing? And I'm supposed to mix-and-match ROM sets with emulators somehow? Or it magically figures it out? Or something?
Let me ask a simpler question. Say I want to start with just a small set of early 80s games, let's say, Star Wars, Tempest, Millipede, Pac-Man, TRON, Joust. Can someone point me at the proper archive.org URL to download that works with "RetroPie 4.1.1, RPI 4/400"?
And also what folder do they go in, and do I have to edit config files or some shit?
Do things work completely differently for the vector and raster games, he asked with great trepidation?
With my RetroPie, it has an SFTP server running. When connecting to it, there is a "roms" folder, and inside ROM files go into subfolders matching the emulator (I can't remember if there were already created or if I had to do it). For example, I created a subfolder called "nes", and placed all of my NES ROMs inside. The menu system then will show an NES icon where all of those are found. There do seem to be other means as well.
This does not even approach being an answer to the very specific questions I asked. You can't even see it from there.
I've done what you're trying to do.
After a fair amount of screwing around, I ended up using the MAME 2003 Plus version of MAME (lr-mame2003-plus) in conjunction with https://archive.org/details/MAME_2003-Plus_Reference_Set_2018.
For the games I cared about -- essentially identical to your list -- it worked. Happy to answer additional questions if it's helpful.
The reason it has different directories is because of MAME development itself: different versions of MAME require different forms of the ROM sets - eg for Star Wars, 0.37b5 requires its archive have in it "136021-112", but 0.224 requires "136021-112.7k". (Sometimes the files are just renamed, sometimes they have different contents; in this particular case, they're different.) I know of no way of immediately identifying which version of MAME a given "starwars.zip" archive is for.
So, yes, mix-and-match MAMEs and their particular versions' ROM sets for your favored amount of compatibility. Vector/raster seem to work mostly the same, although Tempest seems kinda flickery.
Advance warning: All the versions of MAME are terrible.
You have two categories of choice, the current version (called "mame" (or lr-mame if you want libretro control support) with no suffix) which works well but for most/all games requires more CPU power than the Pi can provide.
Or you can install an old version, which runs faster, but the reason it runs faster is because it is less accurate and buggy.
For either version, you'll need a matching ROM set, the corresponding ROM set version can be found here: https://retropie.org.uk/docs/MAME/
lr-mame2003-plus is probably your best choice? It's a hacked up version of MAME 0.78 with later games backported into it. The specifics of this particular version can be found here: https://docs.libretro.com/library/mame2003_plus/
Because it's unique, it doesn't use a standard ROM set, the core can generate a DAT file from its main menu which you can use with ClrMamePro or similar to build an appropriate set.
But in general, MAME on the Pi is a poor combination, none of the options work very well.
I Agree. Any "cost savings" from using a Pi were swamped by the performance problems. I bought an inexpensive Intel NUC to drive my MAME and ended up far, far happier. I still have all the game compatibility problems and all the ROM sites are sketchy, I don't think there are any immediate solutions to that.
I have a working setup on the pi3, grab the mame 0.78 set via these torrent links (sorry, no idea if these are on archive.org, but this method 100% works for me without issue)
Part 1: magnet:?xt=urn:btih:DF15B8A03CBC5571C554A41822A563A657D8E836
Part 2: magnet:?xt=urn:btih:7F4C832B3FCDDC25C58127A7F4665BB8476963A3
extract to
home/pi/RetroPie/roms/arcade/mame2003
Now the optional step of metadata scraping, which is needlessly slow and awful in just about every way.
IIRC I've tested all the games you mentioned at they work without issue, as does any other game I've played.
It's good to see that MAME is really capturing the full retro-gaming experience --
They've managed to make the process of downloading a ROM and getting it to run in the emulator approximate the level of difficulty and arcane knowledge required to diagnose and refurbish an actual arcade game...
Be sure to bake your pi’s SD card under a shortwave UV light while formatting to get the genuine retrocomputing UVEPROM experience.
I kind of thought this post would get a lot more traction given your audience. But I've found that for the games I care about, the Raspberry Pi3 is much more stable and better supported by RetroPie (as of 6 months ago) than the Pi4. Your list of games is pretty much the same generation as what I care about. Mainly I'm playing Donkey Kong, Centipede/Millipede, Ms. PacMan and Joust, 1942, Outrun, that kind of thing.
For my use case, I've found "advmame" (not 0.94 or 1.4) gives the best combination of ease of configurability, screen size/ratio and stability. You have to use samples for DK but it's worth the trade-off for the ease of setup. For the record I use an X-Arcade TankStick as my controller, so I need to configure that with whatever emulator. LibRetro based emulators can occasionally work better, but are too much pain to set up initially.
Anything that requires a Pi4 for me is generally consoles, which work better with analog handheld controllers anyway, so I reserve the Pi4 for playing on the TV and running Kodi. I wrote a script for that machine to switch between Kodi (boot-time default), EmulationStation and a desktop.
I didn't address Tempest. I've had arcade Tempest working, though I haven't bothered to get it working in my current build. I tend to favor Tempest X3 for the Playstation, which works great on a Pi3 (As does Wipeout XL). I have a historical affinity for colorful and explody Jeff Minter games, but mainly it's because it's built with digital controls in mind rather than a spinner, which I don't have.
I haven't actually played too many games on this thing yet, but one thing that I've been finding super frustrating is figuring out how the controls work on any of the MAME games. I suppose that's just one of the many things that's awful about MAME no matter the platform it's running on.
I was excited to discover that you can use overlays with Vectrex, though! I haven't ever seen most of those games that way.
I have an X-Arcade table just like that but minus the trackball, that I bought years ago for the PS2 and never really used. Maybe I'll dig that out and give it a try.
With Advmame it's fairly easy to set up reasonable defaults for controls as well as ones specific to each game, as well as resolution/aspect ratios that match or are close enough to arcade. I mean, I've seen the state of the Centipede and Millipede games at Funspot recently. Good enough is good enough for me :-)
I'm happy to share advmame/EmulationStation/Tankstick configs if you'd like a jumping off point. When you do the controller config in ES, I think that sets the defaults for LibRetro Mame. When it works, LR-MAME is great, but it's more painful for me to set up right.
With the Tankstick there's also an "xarcade2jstick" service in retropie_setup since the stick by default is set to appear as a keyboard. I actually have left mine in Keyboard mode. Left and right flippers are "add quarters" and "quit game" respectively.
Important Safety Tip: I just had to figure this out for probably the third time. Since many games are vertically oriented, their listed arcade resolutions are 3x4 and not 4x3.
I've been fighting slightly stretched looking graphics for games like Centipede and Donkey Kong, and realized that the listed mode of 240x256 is really 3x4 aspect ratio. AdvanceMame seems to assume the original aspect ratio was 4x3, so in the GUI it gives you a pre-defined list of resolution options like 512x480, when really it needs to be 480x512. So I need to scale to 960x1024 instead of the other way around which you have to set in advmame.rc.
That will make a big difference in how "correct" your games feel.
Just wanted to chime in and mention that I left a pan on a hot stove due to being distracted by this discussion. Carry on.