MAME Cab: The PC software build

DOSsing about with computers

Now we have a 10 year old beater up and running, what finer way to bring it to life than install a 25 year old Operating System on it?


Think about an arcade game you played as a youngster, you stood in front of it, you turned it on and it presented you with the game. You put a coin in, pressed Player 1 Start and you played the game.

This process could be repeated almost without fail. Switch on, coin in, press button, play game, switch on, coin in, press button, play game, switch on, coin in, press button, play game.

Now compare that to your experience with computers. Switch on, wait a bit, press some buttons, switch it off and on again, wait a bit more, press some more buttons, kick it, maybe switch it off and on again, finally begin to play your game ……… Aaah, it froze. Switch it off and back on again ….

You get the picture.

Our end goal here is to build a software environment that is stable, that will turn on when we want it to and let us play a game when we want it to, and turn off when we want it to.

As you know, we will be running the emulator MAME on our cabinet, and MAME comes in 3 flavours, DOS, Windows and Linux, so we need to decide which version we will run.

As we know, Windows has a tendency to be a tad unreliable when we need it the most, and over time, it creates lots of system files and lots of little errors, and given long enough will steadily commit suicide. Not only that, but there are services and background processes running all the time, not necessarily doing anything helpful to us, but just trying to keep the system alive and all of these have a performance impact especially on an older PC like the one we are using.

Linux can be hit and miss at the best of times but a good distribution will be perfectly happy running on our old PC, and driver support for old equipment in Linux shouldn’t be a problem. In fact the only real concern when running a Linux box of any description is how well supported we will be should anything go wrong.

I know my way around a Linux system and run one as a workstation at home. It is stable, reliable and easy on resources, but how many people run MAME on Linux? Some obviously, perhaps even a lot, but not as many as run it on Windows or DOS so should it go wrong at some point help may be more difficult to come by.

It also comes down to confidence too, for example, do you know every major file on your Windows system? No way. How could you? Do you know every major file on your Linux system? No way. How could you?

Could you know every major file on a DOS system? Yes, probably, and you’ll have to configure some of them, but as the title for this entry would suggest, I have chosen to go the DOS route and for several reasons.

DOS can be had for free. Legally.
DOS is very stable.
DOS boots up very quickly. Very quickly.
DOS has no hidden background services and processes.
DOS consumes a tiny amount of disk space.
DOS consumes a tiny amount of RAM.
DOS does not slowly commit suicide over time.
DOS does not need to be gracefully shutdown so it can be just powered off.

Why would you want to run anything else?

Now we come to the question that has been nagging you all along. It has, even if you don’t know it. Picture the scene, you stand in front of your arcade cabinet and switch it on, then it presents you with a Windows logon screen, so you get out a keyboard and mouse, dig in your pocket for a 10p coin, and ……


Fear not, we will NOT be attaching a keyboard and mouse to our game of Space Invaders and we certainly do not want to have to type anything in to get our game to launch, so how do we run games in DOS from a DOS Command Prompt without using DOS Commands?

With a Frontend that’s how.

Normally, to run a game using the DOS version of MAME we would cd (change directory) to the MAME directory and to run the game 1943 with no sound we would enter the command

mame 1943 -nosound

To play the same game with a Creative Sound Blaster sound card, we would enter the command

mame 1943 -soundcard 1

A Frontend is just a GUI (Graphical User Interface) that we can control using simple arcade controls such as directional joysticks and action buttons. The Frontend will browse our game folder for us and list the games it finds on screen, then we can scroll up and down this list with our joystick and it will convert these joystick movements into the relavant commands for us. Then when we want to run a game we press the relevant button and the Frontend will convert that button press into the DOS Command and the game will run.

The Frontend I have chosen to use is a very simple, basic and low resource one called ArcadeOS and it will suit our needs very well.

So we now have the PC hardware and software in place, and a little background knowledge to help us along the way, how difficult can it now be? It’ll be a breeze right?

Hmmm. Next time we will take a quick look at how we go about getting our joystick movements and button presses into our PC in a way that it will understand them, and then we will get down to the nitty gritty and begin configuring things. Sound like your idea of fun?

Nerd! 🙂

Leave a Reply

You must be logged in to post a comment.