MAME Turns 25
mameworld.info
mameworld.info
I was working on code for a pinball machine for Stern back in 2005. I had a memory corruption issue and Stern's crusty old 6809 hardware didn't have anything resembling a real-time debugger that I could use. There was no time or budget to get a 6809 ICE procured and running.
So I loaded up my code in PinMAME and let it run. I was able to watch memory in real time and caught the bug in an afternoon. It would have taken me a week or so doing it by hand.
So thank you, MAME.
https://www.ipdb.org/machine.cgi?id=5093
Sopranos was around the same time, but there were actually two versions of the code. One was in the old 6809 and the other was a test version of their new ARM-based hardware.
I was very sad to learn about his recent passing.
It's extremely sad. It's a huge loss.
For a while they tried to keep the manufacturers happy by not allowing modified ROMs to run, I got a special build from the developers to let me run anything I wanted. I think those restrictions do not exist anymore.
For me, I finally got to enjoy games like "Robotron" that I sucked so bad at I couldn't, at the time, justify spending a quarter on about a minute of game-play.
MAME allowed me to discover games (I guess mainly Japanese ones?, "Guwange" is an example) I had never experienced in the arcade. I had also missed "Metal Slug" series, happy to discover these games in MAME.
With MAME I rediscovered games I had only briefly seen in the arcades before they were gone: "Tail Gunner", "Omega Race".
I also tried games with MAME I would have passed over in the arcade like "Golden Tee Golf". Really enjoy that one (you need a track ball though!).
MAME did sort of ruin "pay-to-continue" games like "1941". But I sort of hate those games now anyway for having a "pay-to-continue" model.
I "rescued" a few pieces of hardware that were bound for the trash heap. Some were laptops, some were desktops....
I tossed some old photos up here:
I tried to show some of the cardboard prototypes too. (A good way to start!). They're roughly in order — my woodworking skills improved as well over the 17 or so years the photos span. I can think of at least two more MAME machines I build that I did not (quickly) find photos for....
I'll add, start simple. Don't let the perfect be the enemy of the good. You can go CRT later (on MAME machine #10, ha ha).
It's hard to describe the sense of wonder I felt when when the ROM check sequence flashed to the title / insert credits screen and I knew it worked. It might sound silly, but few moments in my life have been so eye opening. It was definitely a key factor in me starting my path to becoming a developer.
So impressive what the team has done over these years to preserve retro arcade games, consoles, and computers (now that MESS is part of MAME).
Build you own SGI Indy workstation with MAME - https://news.ycombinator.com/item?id=28127607 - Aug 2021 (21 comments)
A guide to running IRIX 6.5.22 in MAME - https://news.ycombinator.com/item?id=25716625 - Jan 2021 (8 comments)
Real VT102 Emulation with MAME - https://news.ycombinator.com/item?id=23662907 - June 2020 (30 comments)
MAME devs are cracking open arcade chips to get around DRM - https://news.ycombinator.com/item?id=14854013 - July 2017 (4 comments)
MAME is now Free and Open Source Software - https://news.ycombinator.com/item?id=11226131 - March 2016 (91 comments)
MAME and the New Emulation Reality - https://news.ycombinator.com/item?id=9608945 - May 2015 (46 comments)
MAME is going completely open-source to be a 'learning tool for developers' - https://news.ycombinator.com/item?id=9553940 - May 2015 (65 comments)
MAME 0.151 ROMs - https://news.ycombinator.com/item?id=6974938 - Dec 2013 (46 comments)
Full MAME emulator for non-jailbroken iOS - https://news.ycombinator.com/item?id=5198002 - Feb 2013 (28 comments)
The Day MAME Saved My Ass - https://news.ycombinator.com/item?id=1996885 - Dec 2010 (44 comments)
Anyway, here's to 25 more! (and hopefully, there will be new arcade machines to emulate in 25 years).
(OpenEmu and Retro Virtual Machine are also worth the time; the latter particularly if you have fond memories of the very underrated Amstrad CPC)
I miss those early internet days, when finding new things online seemed magical.
A couple of anecdotes....
There's been some episode where the development team has made some unpopular choices. Sometimes moving the ball forward on full emulation is at odds with end-users' game-playing enjoyment.
Asteroids was my game as a kid. I dreamed and obsessed about it when I was eight, nine, and ten years old. Asteroids was quite playable on MAME even in its early stages, but only the video was emulated. Asteroids' sound is generated by analog circuitry and emulating it took many years to tackle. In the interim, MAME used samples to play its audio. Enter Derrick Renaud! He fully emulated Asteroids' audio. At first, it wasn't perfect and a lot of people (who have no idea what goes into making MAME possible) were angry that their game didn't sound right anymore. It slowly got better, but there was one thing that kept bothering me. The interval between the "thumps" was a major third instead of a minor second as it was supposed to be. Rather than creating tension, the thumps sounded strangely cheerful. I managed to find the forum where the MAME developers hung out and left a very polite and detailed message about the thumps. I included recordings from an Asteroids cabinet to show how the pitch of the thumps wasn't accurate. Derrick never responded to my message, but it was fixed on the next MAME release. So, THANK YOU Derrick. Asteroids sounds amazing. Now, if only someone made a monitor that even came close to simulating the incredibly bright CRT used in the cabinet, I would be on cloud nine. Maybe some future iteration of HDR will get us there. :-)
https://www.retroblast.com/articles/Renaud_interview_AR-IN-0...
A more recent episode was similar... The Votrax SC-01 voice synthesizer chip used in several classic games had never been emulated. Consequently, games like Qbert, Gorf, and Wizard of Wor used samples as well. Someone managed to put a Votrax under a powerful microscope and document its exact functionality. (I just went looking for the photo of it, but couldn't find it.) Again, starting at some MAME revision, any game that used the Votrax chip no longer triggered samples, but used Votrax emulation instead. At first, it really sounded bad. Gorf sounded like it had sucked off of a helium balloon. It was a long time before things improved. I posted a question on reddit's mame subreddit and received an interesting reply from a MAME developer:
https://www.reddit.com/r/MAME/comments/e2cdr4/mame_0216/f8xa...
A few months later, a new MAME release made some huge improvements to Votrax emulation. And, while not perfect, it sounds really really great. It's particularly important on Qbert, because so many of the strange sounds that the characters make are generated when random phonemes get sent to the Votrax. When Q*bert dies, his expletives are different each time. When you're using samples, it's not really possible to achieve that.
Anyway... enough of my musings. THANK YOU THANK YOU THANK YOU to the whole MAME team. You've put a million smiles on my face and the faces of my friends, co-workers, and my kid. And for that I'm so very grateful.
However, some games are freeware [0], I guess you don't technically buy those, but they certainly are legal. Some homebrew devs might be selling ROMs this way, too, but you'd have to reach out to the devs. If you want to license individual games, you'll have to figure out who owns them & ask. They likely won't part with it, as these deals aren't really B2C. Plus, you might be competing with Arcade 1 up, whatever they think they can get from selling on services like PSN, etc.
0 - https://en.wikipedia.org/wiki/The_Adventures_of_Robby_Roto!
You can find a handful of ROMs that are actually free on MAME's website:
There aren't many and none of the really famous titles is free.
I would imagine that posting links in HN to such content would be verboten. Perhaps it would be acceptable to offer a hint. There used to be a site called Pleasuredome that shut down recently. They were the place to go to obtain any and all ROM / CHD files. I would suspect that if one were to search using the word "Pleasuredome" along with other obvious related key words, one could quite easily find what one was looking for.
https://archive.org/details/arcade_wrally
Proof: https://web.archive.org/web/20090218020517/http://gaelco.com...
GoG has a slew of arcade games for sale, that are essentially emulator+rom combinations. Double Dragon, Metal Slug, Neo Turf Masters, etc are all available for purchase with a good ROM.
There are also licensed miniconsoles and cabinets (Arcade 1Up and others) that are likewise just hardware+emulator+rom combinations, and you can legally extract the roms for your own purposes.
And there's more. I have a sizeable legally-acquired ROM collection, now. Even console games - Genesis games on Steam, PSX games on PSN, etc.
But who cares? You purchased the software, you can do whatever you want with it, and going this route is already going above and beyond what most normal people do, which is pirating the ROMs.
One of the bonus joys of emulation is achieving something so cool and crazy fun out of free (or dirt cheap) recycled and thrift-store grade parts. The PC I got on Ebay will emulate virtually any arcade machine of the 80s or 90s. It can also emulate 8 and 16 bit home consoles and even quite a bit of the PS1 and Gamecube libraries.
Our family and friends have so much fun with that MAME cabinet that, frankly, we'd pay for a new top-shelf PC for it but for the games we enjoy, there's no reason to pay for more expensive hardware. Also, be sure to hit the tip jar of whatever open source projects you use.
MAME's TI-99/4A emulation is also damn near spot on.
Mame 1.0 should have been the first public release to the world.
The perf is fine for a lot of things. The code on the other hand is kind of 'odd' to follow. It was a C project. #define everywhere to basically create an object like system. They now are moving to C++ in some places they use it to good effect and stripping out that #define system. Other spots are still the same C code from 15 years ago. So now you have a project that is both. So it makes it sort of strange in a few places. They have over the years made decent progress to strip out some of the foot guns that C lets you do. Then on top of that 6 different project leads with differing opinions on how to run the project over the years. They have also smashed together two different 'ROM' systems. One is a static system where everything is burned into the code and the other is a dynamic system using XML. So context burden is higher when trying to change anything. Add to that unless you know their system building a new emu is kind of interesting.
But it is still sort of funny seeing people rocking a .34 version. 'because of performance'. When anything within the last year is probably just as performant and wildly more capable and accurate. If the chart I saw last week is any indicator 241 should have at least a 2-5% speed bump because they removed a C'ism and flipped it over to use a C++ style parameter in some core calls. Most of this goes back to around 110 or so when they flipped over to use C++. Well they also added in a decent regression in speed at that time too. So those two things became conflated in peoples mind that C++ bad. When there was a design issue.
Good place to follow the code and see what is going on. https://github.com/mamedev/mame I would estimate they bash out about a dozen pull requests a day.