" /> MAMEblog: June 2003 Archives

Main | August 2003 »

June 5, 2003

Bio / Profile

My name is Aaron Mahler and I live in Sweet Briar, Virginia with my wife Elisabeth. I am the Director of Network Services for Sweet Briar College where I build and maintain the network infrastructure and most of the systems that make the place tick. My job involves the usual network administrator duties, lots of programming and tons of other projects that range from the somewhat related to the completely off the wall. Sweet Briar is a geek's dream come true since it is large enough to have exciting technical demands but small enough to have a true sense of community. It's something of a digital ecosystem unto itself...

I'm tapped into that ecosystem nearly 24 hours per day due to a dedicated 11 Mbit wireless link I put in place in 2002 (updated to 54mbit in 2005) atop a 130 foot tower I erected in my back yard. I often describe my office as being just over a mile wide since my house is ethernet bridged into the campus enabling me to do virtually anything from home that I can do in the office. I drift back and forth between my campus office and my home office constantly, mostly based on how much contact or peace and quiet I need for a given task (programming is best done at home with louder music and less human traffic). I keep my Marble Madness arcade in my campus office to set the proper mood. :)

I live a very Linux-centric life with a strong dose of OS X and a minimum of Microsoft products whenever possible. My primary desktop machines are all Linux systems running X11 with my current Macintosh (a Titanium Powerbook) nearby for the more creative outlets. My office system hasn't had Windows on it for two years, though my home system dual-boots into XP for gaming. At work I am surrounded by Linux systems that run much of the campus infrastructure (e-mail, web services, file servers, DNS, BGP, bandwidth management, etc) with the occasional NT server lurking in a corner somewhere. The Linux boxes are like a digital family and have names like Lazlo, Ripley, Cartman, Indy, Grendel, Gryffindor, and Farquaad (to name just a few).

Elisabeth and I live in a 80+ year old hunting lodge named Merrywood I bought from the college a few years ago. It has high ceilings, two gigantic stone fireplaces and a porch built for having outdoor parties. We rattle around in here all the time starting (but rarely finishing) renovation projects and being entertained by our bizarre white (and not deaf) cat Squinky. Our wedding was scheduled for May of 2003 in France, but due to a war, SARS, and a hideously inefficient government agency formerly known as the INS we had to postpone to September 2003.

In addition to gaming, I'm quite fond of cooking and baking (artisan breads are my preference), digital photography, watching movies, reading good novels and travel (when you can get me out of the house).

Arcade Collection

At the moment my collection is somewhat thin after having owned in excess of 30 machines at the peak of my collecting craze. I sold the vast majority of my collection recently including many of the spare parts I had in the attic.

I do have a tremendous number of original ROMS and EEPROMS I have collected over the years that are all readable on my ancient 80's era EPROM burner. I've even read semi-damaged EEPROMS and dumped them into MAME to watch it reproduce the real machine's flaws in the emulator. Now that's accuracy. :)

At the moment I own these remaining classics:

As well as two pinball machines:

At one point in time I owned these machines:

I had the machines that I sold most recently listed on a website that is still online. It has some nice pictures of a few of my favorite machines before they were sold.

Introduction

A few years ago I had this sudden desire to start collecting the arcade games I remember from my childhood in the 80's. I'm not completely certain why this notion suddenly took hold of me seemingly out of the blue. Maybe it was the nearly mint Pac-Man machine I kept walking by at the Bistro at Sweet Briar College where I work. It wasn't getting a lot of play there in the late nineties where it had lived a fairly sheltered existance for nearly 20 years.

Continue reading "Introduction" »

MAME vs. Real

Back when I was collecting classic arcades I spent quite a bit of time playing with MAME. For the arcade collector MAME makes a superb reference tool. It can help check the behavior of a game you might be repairing. In more than one case it became the source for ROMS to use on my EPROM burner while repairing various games (BurgerTime springs to mind). It was also a great way to preview a game you were unsure about when the opportunity presented itself to purchase said mystery game.

Continue reading "MAME vs. Real" »

Skills Needed

Building a MAME cabinet can cover a pretty wide array of necessary skills. Granted, the more pre-made components you have available the easier it can be.

Continue reading "Skills Needed" »

Design

The control panel is fashioned almost entirely out of 1/2" plywood. It is basically a shaped box that attaches to the machine in a modular fashion. As stated before, I had no intention of modifying the Millipede cabinet itself, so fitting the new CP to the existing cabinet was the goal. This presented the challenge of determining how to make it fit, not look utterly stupid (that's for you to decide, but I'm happy with it), and attach in a sturdy enough manner that it doesn't bounce up and down when you are hammering your brains out on the fire button.

We started the design of the control panel by (obviously) removing the original one from the machine. We then notched a sheet of foamcore so that it fit around the side panels and rested where we wanted the new control panel to sit.


The attached foamcore prior to being used to sketch a template.
(click to enlarge)

Continue reading "Design" »

Mounting

As I've stated many times in previous pages, the primary goal was to mate the new control panel to the cabinet in a manner that did not alter the Millipede cabinet itself. The original metal control panel fastened to the body using three large 1/4" diameter bolts along the bottom edge below the hinge. The top, like many arcade control panels, was locked in place by two latches mounted on the inside wall of the cabinet in the control panel opening. You opened the system by reaching in through the coin door and unlatching the control panel. It then hinged open to reveal the backside of the controls.

Continue reading "Mounting" »

Layout

The joystick and trackball layout was determined back at the beginning of the process and played a role in deciding the overall shape of the control panel design. At this point the primary task was determining how many buttons and where to place them.

My overall design is based around three sticks, two of which are player one and therefore functionally identical. The reasoning here was that most games I will play are single player (or alternating multi-player) and should therefore be centered on the monitor much like any classic arcade game. For two player simultaneous games, though, you need to stand side by side necessitating more room. This is the purpose of the two outer sticks with player one on the left and player two on the right.

Continue reading "Layout" »

Surfacing

I didn't think to take any pictures of the actual process of surfacing the control panel with formica. You could likely attribute this to the fact that it was both late at night and I was probably killing tens of millions braincells with the formica adhesive. The lovely burnt smell of formica that hangs in the air after routing off the edges is not high on my list of favorite odors, either. It is, for the most part, a tremendously fun-filled process that you're sure to want to repeat over and over...

Yeah. Right.

Continue reading "Surfacing" »

Wiring

While the wiring is not a difficult process, it is most definitely a long one. I spent about three solid evenings putting together the harnesses. I did most of it sitting on the living room floor while watching, though, since it doesn't completely absorb your concentration once you decide how you want things configured.

I initially started with the wiring before the cabinet was underway. This allowed me to sample the functionality of some of the controls and get a feel for where things were heading. To do this I cobbled together what I called the "ghetto CP". It was a scrap piece of that horrifying composite board that I found out in the garage. I drilled a few appropriately sized holes in it, screwed it to some blocks for height and mounted a few of the controls.


The "ghetto CP" used for my initial wiring tests. This is not a thing of beauty.
(click to enlarge)

Continue reading "Wiring" »

Final Touches

By this point the control panel was designed, surfaced on the top, wired and sitting in place on the cabinet. There were still a few key things, though, that needed attention.


The functional control panel in place but with a few remaining details to be addressed.
(click to enlarge)

The previous section on surfacing discussed the facing pieces of the control panel for the sake of covering the entire topic of formica installation. The actual timeline, though, was such that the face pieces were not surfaced with formica until after the wiring had been done. I had the system functional for about a week before this could be addressed.

Continue reading "Final Touches" »

The Computer

The computer I ended up using for this project was a several year old Dell OptiPlex I have had around for projects.

Here are the basic specifications:

Processor: 500 Mhz Pentium III
Memory: 256 MB
Storage: Western Digital WD400 - 40 GB
Graphics: ATI Technologies 3D Rage Pro AGP (rev 92)
Audio: Creative Sound Blaster 32 PnP
Network: 3Com 3c905B 100 Mbit Ethernet

Continue reading "The Computer" »

Video - 15 kHz

This particular issue is basically the heart of the project for me. As I mentioned in Mame vs. Real, I had not really been interested in building a system like this in the past because the output to a PC monitor never looked anywhere near authentic. Arcade monitors in the 80's and much of the 90's ran at much lower resolutions and generally around 15.75 kHz. By comparison, modern PC's begin at 31.5 kHz and resolutions of 1280x1024 and higher are not uncommon. Because of these changes in the technology many cards do not generate scan rates and resolutions this low without some coaxing (or even at all in many cases).

Continue reading "Video - 15 kHz" »

Interfacing

Beyond the issue of getting authentic video on a real arcade monitor comes the process of playing your games on real arcade controls. The bulk of the work on this aspect was, of course, the building and wiring of the control panel itself (detailed in previous sections). Once you have all of the controls mounted and wired, though, you need to attach them to something that will interface them with the computer running MAME.

Continue reading "Interfacing" »

Integration

I've reserved this page for covering anything involving the integration of the emulation system with electronics of the original Millipede system.

At this point there are only a few items to mention. The cabinet is, for the most part, just a shell for holding the emulation system. The control panel is attached to the front but is wired entirely to the interface boards and the computer. The monitor is in the cabinet, of course, but is taking its signal entirely from the computer.

Continue reading "Integration" »

Linux OS

My system is based on the Linux OS, an open-source UNIX-like operating system that is freely available.

Linux is pretty fantastic to put it lightly. It's tremendously powerful, quite efficient and runs on more hardware than you can imagine. It's also the operating system I use more than any other in my work as a network administrator and programmer for Sweet Briar College. I have a tremendous dedication to this OS, so it's a matter of both practicality and pride for me to use it in this project.

Continue reading "Linux OS" »

AdvanceMAME

AdvanceMAME is the key to functionality of my system. It is a MAME-based project meaning it uses the core MAME source, adds a few patches and hooks on its various extensions. The primary focus is to gain low-level control over the video hardware in your system in an attempt to produce authentic classic arcade resolutions. These mostly exist in the neighborhood of a 15.75 kHz horizontal scan rate. By comparison, most PCs run at much higher resolutions and start around 31.5 kHz which is double the rate needed to drive an arcade monitor.

The AdvanceMAME project is open-source and entirely maintained by volunteers. It is constantly changing as new features are added, bugs are stomped and sometimes new bugs are introduced. I started with the 0.67 version, moved to 0.68 during the course of the project and have not yet moved to 0.69 (which also arrived during the few weeks I've been working on this system).

Continue reading "AdvanceMAME" »

AdvanceMENU

AdvanceMenu provides the interface for the player to choose games, see previews and a host of other functions. It is designed as a companion to AdvanceMAME and is incredibly flexible.

Continue reading "AdvanceMENU" »

Video Config

I have discussed video issues in previous Electronics and Software sections of this website. For the sake of completeness, though, I thought it made sense to cover the overall procedure in one place under its own heading.

Continue reading "Video Config" »

Daphne

I stumbled upon Daphne after I had already gotten my MAME system functional. One thing I never accomplished when I was collecting classic machines was to obtain a Dragon's Lair. I came fairly close in a number of circumstances including a near perfect marquee and control panel... but never a complete system.

Continue reading "Daphne" »

Controls

I used the following controls and control accessories on this project:

Continue reading "Controls" »

Video

I made my own VGA to arcade monitor cable, so the only part I had to obtain for the video portion of the project was a new monitor:

Continue reading "Video" »

Interfacing

My interfacing needs were met by two very well designed products:

Continue reading "Interfacing" »

Cabinet Parts

Much of the cabinet stuff is fairly straightforward and not worth detailing (plywood, wire, screws, bolts, etc). The parts, though, might be of some interest to some:

Continue reading "Cabinet Parts" »