SpiffMAME is my MAME-cabinet, which I have spent countless hours building/rebuilding. In this article I will try to write a little about the background for building SpiffMAME, and some of the choices in the early stages of the project.
Since I was young I have been very fond of computer games. In particular the older games where graphics and sound are limited by the hardware, and where the game developers have had to be really creative to get good gameplay. But I really think the gameplay of those games is so much better than most of the games developed today on multi-million dollar budgets.
Where I grew up there was no easy access to arcade games, so I cannot say that I spent a lot of time (and money) on this in my youth. I spent a lot of time on my Commodore 64, but only played arcade games when I ocationally found a machine somewhere. Still I have always been intrigued by these machines.
I first got the idea to build my own arcade machine after reading an article in a Danish computer magazine about a guy who built his own cabinet running an early version of MAME. At this time I had been playing a lot with various emulators (mainly C64), and I quickly got hooked on the idea to have my own coin-op machine. Having a machine with a single game was not an option, both in terms of the size, and in terms of the investment (being a student with limited financial freedom), but a machine running MAME could run a wealth of games.
Some people build their cabinets from scratch, while others buy an old arcade machine and refurbish it, putting a PC with MAME inside. I decided to go with the latter approach, since I did not think a newly built cabinet would be able to capture the spirit and nostalgia of an old arcade machine.
Still, finding a suitable machine proved to be a little difficult. First of all, there was the limited amount of money that I was able to spend on this project. Secondly Denmark is a small country, so there are not too many sources of such machines (unless you are willing to import them yourself), and in my case I was even further constrained in terms of transportation, since I would need to borrow my parents car to pick it up (and I had to argue with them if it was resonable to drive that far to pick it up). Finally, although there are a few companies that work in this area, most of them do not want to trade with private individuals due to the mess of sales tax etc.
After a couple of years, in the summer of 2001, I started thinking about the project again. I decided to check out some webpages and found a guy in Denmark that was selling an old machine. For DKK 1000 (about $150), the price was right, even if the cabinet was not in the greatest condition. He sent me a couple of pictures, and we agreed that I should pay him a visit and take a look at the machine. So I borrowed my parents car and drove the 80 km (about 50 miles). A friend of mine came along for the company, and to help with the lifting.
The cabinet had a lot of cigarette burns, and one of the back panels were missing, but apart from that, the machine worked, including the coin units, control panel, ROM board and the monitor. It was an old Space Panic cabinet, that had been refurbished with a Gyruss ROM board. I decided to go ahead and buy it.
When we came back to the dormatory where I lived, a lot of people seemed curious about what it was I had bought. I spent the next couple of days gathering information and finding the service manuals for the Gyruss-game, as well as the monitor, which turned out to be a Hantarex MTC900.
The wiring in the cabinet had been soldered directly to the Gyruss-board's edge connector. I found a suitable edge-connector and re-wired the cabinet. Then I started doing various fixes to the cabinet itself. This included sanding down and painting the coin door, adding the missing back panel and installing a lock in it.
Then I decided that I wanted to build my own control panel. The original one was made of a metal plate with hinges on the front, and had already been re-worked once (presumably in the conversion from Space Panic to Gyruss). It only had one joystick and two buttons (apart from the one and two player start buttons). Also, the joystick handle was melted, and looked like it had been burned with a lighter. I decided to order a bunch of buttons and a few joysticks from happcontrols.com. When I got these I played arround with a suitable control panel layout that would allow me to have enough controls (two players, each with an 8-way joystick and 6 buttons, as well as buttons for one and two player start). With the limited size of the control panel there was not much choice in regards to the placement of buttons, but I managed to get it all crammed in. The control panel was constructed from 12mm plywood, and a piece of plexiglass. This allowed me to have the control panel overlay between the control panel and the plexiglass, and it looks very nice. It was difficult to get the plexiglass bent, though, but the result was very nice. The control panel is wired to an old keyboard controller (keyboard hack), as is the coin acceptors and service buttons inside the coin door.
Originally I had planned on using an old 17" monitor I had laying arround, but I discovered that it was possible to reprogram the video card to output a signal that was suitable for the arcade monitor. I immediately decided that this was how I would do it. Arcade games just look so much more "right" on an arcade monitor. Such a monitor has built-in hardware antialiasing. Later I also figured out how to get vsync enabled (with AdvanceMAME), which means the games can run on not only the right resolution, but also the correct framerate, which is essential to get the best emulation (otherwise you will notice tearing of the screen in many games with a scrolling background). I noticed that the monitor had slight burn-in with the text "ENEMY PLANE". I later discovered that this is probably from the game Zaxxon. The seller told me he had replaced the monitor, so I already knew it was not the original one that had been in the cabinet.
I also installed a cap-kit in the monitor. Before doing so, the monitor needs to be discharged. This can be dangerous, since the flyback voltage is arround 20-30 kV (yes, kilovolts), and the tube can store a lethal dose of this voltage, even long after the monitor has been disconnected. DO NOT attempt to do this yourslf, unless you know what you are doing. If you decide to do so anyway and hurt yourself, I cannot be held responsible in any way. That said, once the monitor has been discharged and the boards unmounted, the task of installing the cap-kit (replacing all the electrolytic capacitors) is fairly easy, and can give a lot of new life to a monitor. I must say that the image on my monitor got so much sharper after installing the cap-kit. I can highly recommend getting this done, especially if the picture on your monitor is a little blurred. But if you have no knowledge of electronics, you should probably leave this to a professional. I guess most TV repair shops could do this, since the electronics in an arcade monitor is very similar to a TV (except it dosn't have a tuner).
The computer I originally used for the cabinet was a 333MHz (half-brother of the beast) PII celeron. The motherboard, harddrive and power supply were mounted on a piece of particle board, which sits inside the cabinet with appropriate mounting brackets. The graphics card was a Riva TNT2, and for sound I used an old soundblaster AWE32.
On the software side, the machine was running DOS6.22, and later Windows98 in DOS-mode. I used the official MAME with ArcadeOS as the frontend. ArcadeOS is able to run the monitor at 15kHz, so it can be used with an arcade monitor, and can even hook mode 13 (320x200) so any emulator that can run this mode will also work on the arcade monitor. Later I found AdvanceMAME, which is a port of MAME with the main focus on being able to set the graphics mode to work with arcade monitors. This allows the games to run their native mode and even the correct refresh-rate. I also switched to AdvanceMENU instead of ArcadeOS. While AdvanceMENU is a little more difficult to configure, it is also much more configurable and can run all the video-modes that AdvanceMAME does. It now has support for MNG animations of the games (instead of static screenshots). The machine ran with this setup for quite some time, and was a great success in the dorm.
Then at one time I decided to upgrade the hardware. I bought a 1.7GHz duron. Since the new motherboard did not have any ISA-slots I was forced to abandon the trusty SoundBlaster. The new motherboard had onboard AC97-sound, but no DOS support. So I decided to make the switch to Linux (I had used Linux as my primary OS on my workstation and several other machines for several years, so it was about time I converted my arcade machine as well). Since AdvanceMAME and AdvanceMENU are actually developed under Linux (and then cross-compiled for DOS), there were no big surprises on the software side. I did have some problems with the TNT2 graphics card, but I had a Matrox G400 that has very good Linux-support (the kernel framebuffer is superb), so this was put in the machine.
That was the background story of SpiffMAME. Hopefully I find the time to expand the documentation of my cabinet here, and as soon as I get done with the boring introduction, I will try to give detailed information about the technical issues in regards to hardware and software (should be some good stuff if you want to make a cabinet running Linux).