Classic Arcade Games
As some of you might remember: back in the day (1970’s – 1990’s) every self-respecting bar or fastfood place had at least one of those big Arcade Cabinets with games like Pac-Man and Donkey Kong. Every town of importance had at least one, if not more, Arcade places where you’d find quite a few of those as well.
Classic Arcade Game Cabinets
For those who didn’t grow up with these: A cabinet, like the Pac-Man one on the left would be not much shorter than a person! Or the one on the right, Out-Run, allowed you to actually sit in the cabinet. A very few Arcade places might still exist of course, but it’s not as popular as back in the days.
With MAME, you can relive those days … well, at least when it comes to game play, and here is how …
Running MAME under MacOS X
Before we can enjoy one or the other Arcade Game we will need to install MAME and unfortunately this is not as easy as you’d normally expect from a MacOS X application. Windows users have a much easier start when it comes to MAME.
Download the full MAME for MacOS X package from Tweaking4All if you’d like – the instructions are mostly based on this package.
Just for convenience I packed all needed files to run MAME into one archive (Zip).
I do, as usual, strongly recommend to get the latest version from the developers websites (see also the details with each step).
I have made 2 versions available.
The older 64 bit version, with SDL 1.2, and the newer 32 bit version with SDL 2.x. The latter seems more compatible with the different OS X versions, so the 32 bit version is the recommended version for OLD Mac’s. In the 32 bit version “mame64.command’ is called “mame.command”.
Most current Mac’s will be needing the 64 bit version though …
Since this article was originally written in 2014, MAME has made great progress and I’ve updated the 64 bit bundle to reflect this. The new 64 bit version includes SDL 2.0.9. Don’t forget to copy the SDL2.framework file from the SDL2-2.0.9.dmg to /Library/Frameworks.
The first time you start mame64 you may have to set the directory for the ROMs in the configuration screen of MAME.
Note: I have not updated the 32bit version, since I’d rather preserve that one in its current state, as it will be used for old Mac’s only.
Download - MacOS X MAME Package (64 bits)
Download - MacOS X MAME Package (32 bits)
Short Version …
For the impatient, like myself at times, here the very short version:
- Download and Extract the Package from Tweaking4All (above)
- Install the SDL Framework (copy SDL.framework to /Library/Frameworks)
- Double click mame64.command in the MAME folder (or mame.command for 32 bit)
The following steps will do all this just in more detail …
Step 1 – Download and Install the SDL framework
SDL, Simple Directmedia Layer, is a framework or library that allows cross-platform development of applications that need low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL or Direct3D. For games and emulators we do need this, so we need to install SDL.
At the time that I’m writing this article, SDL 2.0 is already available, but MAME isn’t compatible with that just yet.
To install the SDL library (framework) we will need to copy the “SDL.framework” file of the mounted DMG into the “/Library/Frameworks” directory.
First, double click the DMG file, so it gets mounted.
Next open the Finder and go to “/Library/Frameworks” (from the Finder menu: “Go” “Go to folder“, enter “/Library/Frameworks” and click “Go“).
Now drag the file “SDL.framework” from the DMG to the “/Library/Frameworks” directory you just opened.
Your Mac will ask for authentication, and you will need to enter your password.
El Capitan (10.11) – Or how to use Terminal to install SDL
I’ve been using El Capitan (Mac OS X 10.11) beta for a few days now and noticed that installing the SDL framework does not work with simple drag and drop, however, through Terminal (“Applications” “Terminal“) it does work.
First mount the DMG (double click) and then open Terminal and type:
sudo cp -r /Volumes/SDL/SDL.framework /Library/Frameworks/
It will ask you password (admin) and it will then install the SDL framework correctly.
Step 2 – Download and Install the SDL version of MAME
Download SDLMAME – SDLMAME is a cross-platform version of MAME and a precompiled Mac version can be found on the “MAME/MESS for Mac OS X” page where you will find precompiled 32- and 64-bit versions. I believe there is even een PowerPC version to be found there (older version though).
SDLMAME Version 0.152 (64 bit Intel) is included in the 64 bitTweaking4All package. Version 0.163 is included in the 32 bit package.
SDLMAME does not come with an install script, and the files most certainly cannot be dropped in your “Applications” folder as seen with normal Mac applications.
First, you’ll need to find a good location to work from, which can be for example the Desktop (which is what I will assume from this point forward – if you choose a different location, then please substitute occurrences of the Desktop path with the path you choose).
If you downloaded the package, then simply drag the “MAME” folder to your desired location (not to the “Applications”).
If you downloaded MAME manually, then you’ll need to unzip the downloaded file (I used mame0152-64bit.zip, your version might have a different filename) into a directory, so the files do not get scattered all over the place. I believe the build-in unzipper of MacOS X will create a directory with the files in it automatically when double clicking the file, which results in a directory named the same as the zip file, just without the zip extension. Rename this directory to for example “MAME” if needed.
MAME can be started by double clicking the “mame64” file in the folder.
You can also start MAME in the terminal by using
./mame64 (for the 64-bit version).
You will see a screen like this, which indicates that everything went well (press ENTER once or twice to exit this screen) – MAME just couldn’t find any ROMs:
MAME under MacOS X – First start …
Step 3 – Get some Arcade ROMs (games)
Arcade ROMs, the actual software for the game, is typically extracted from the ROMs or EPROMs from the original Arcade machines.
We need these “images” of these original ROMs or EPROMs to be able to run the game.
Please note that ROMs (the game software) of Arcade Machines are subject to Copyright!
Not all ROMs that you might find are legal, as permission from the original author is needed to use them. Some of these developers have graciously made their ROMs available to the public, and some of those can be found on the MAME website.
Some ROMs are also considered “Abandonware” which does not mean that Copyright may be ignored, but it’s less likely to get into trouble when using these ROMs.
Some good and some “interesting” sources for ROMs (Google is your friend) and I definitely recommend snooping around on the Internet Archive (and donate if you can):
These are just a few examples of what I found through Google.
The first two (MAMEDev and Archive.org) can be considered very reliable.
The other pages however, are typically filled with advertisements and some of these advertisements are not suitable for children!
Be aware of this when visiting these pages!
Try one or the other ROM from MAMEDev or any of the other sources (which ever you’re more comfortable with).
I’ve already included a few ROMs in the Tweaking4All package, so you will not need to go hunt for ROMs for the first few tests.
After downloading individual ROMs, you’ll find that these are typically zipped. Leave them zipped!
MAME by default looks for a directory called “roms” (all lowercase) in the directory where MAME is started.
If needed, create the folder “roms” in the MAME directory.
Next step is to drag the zip files of the ROMs you’ve downloaded, or the ones your found in the package, into the “roms” folder.
As mentioned before DO NOT UNZIP the ROM FILES!
Step 4 – Playing your first ROM game with MAME
There are two ways to start MAME, as we said before.
Starting from the Command Line – Not exactly practical for daily use …
If you start MAME from the command line, then you’re golden, type
./mame64 -skip_gameinfo in the MAME directory and you’re good to go. The latter option is so the copyright warning and the technical info won’t hold you up …
Double Click Script – More user friendly …
If you however start MAME by double clicking the “mame64” file, then you’ll get an error message like the one we have just seen when we started MAME for the first time. MAME cannot find the ROMs, since it’s not in the “current” directory. (To exit the error message press ENTER once or twice.)
To fix this I created a little script, which for example purpose will be called “mame64.command”. The idea is to double click that script to start MAME.
If you downloaded the Tweaking4All package, then you’ll find the script “mame64.command” in the “MAME” directory.
To create this script yourself, you will need to enter the following and save it as a plain file (in “TextEdit” save it with the “.txt” extension), and after that rename the filename by adding the extension “.command”, for example “mame64.command”:
cd "$(dirname "$0")"
What this does: change to current directory to the directory where you’ve saved the script, and execute mame64.
You’ll notice that I’ve added “-skip_gameinfo” as a parameter for the “./mame64” statement, which will hide a copyright notifications and the technical specs of the ROM you’re about to start.
After saving the file, you will need to make the script executable from the command line by using
chmod +x mame64.command – this might not be necessary for the script included in the Tweaking4All package (double click to try it out).
Nice Icon for your Script?
If you’d like to give your “mame64.command” a nice icon (included in the Tweaking4All package as well), and here is how:
- Open your own icon image (PNG), or the included “MAME Icon.png“, with “Applications” “Preview“.
- Press the keys COMMAND+A (select All) and after that COMMAND+C (Copy).
- Close “Preview“, right click the “mam64.command” file and select “Get info“.
- Click the icon in the upper left corner with the left mouse button and press the keys COMMAND+V (paste) – you’ll see the icon change.
- Close the info window when done.
MAME for MacOSX – Set script icon
Playing an old Retro Arcade Game with MAME
Now to the fun part, assuming you did get MAME to start properly. The first thing you will see after starting MAME will be the screen to select a ROM.
MAME under MacOS X – ROM Selection Menu
For each game you start, MAME will ask for confirmation that you are not doing anything illegal here (Copyright notice), for which you must type “OK” to be able to continue. Right after that some basic technical info will be displayed which you can close by pressing ENTER. Annoying right?
As you might have seen in earlier command-line and script examples: adding the “-skip_gameinfo” parameter to the MAME statement disables this.
Select the game you’d like to play with the arrow keys and press ENTER to start the selected game.
MAME has a pretty extensive support for keyboards, mice, joysticks and what-not (read up on the options in the “docs” directory).
For some games that used to use analog controllers, the mouse can be used (or trackball).
The basic keyboard controls are:
MAME Standard Controls
||Set to ONE PLAYER or START
||Set to TWO PLAYERS
| Arrow Keys
||Move Left, Right, Up, Down
||Action button 1
||Action button 2
||Action button 3
Some example screenshots – during game play press F12 for a screenshot, which will be saved as a PNG file, found in the “snap” directory in your MAME directory.
MAME under MacOS X – Screenshots