Scratch Built MAME Arcade Cabinet

MAME is the 'Multi-Arcade Machine Emulator. It is a single program that can emulate most arcade cabinets from the dawn of video games up to the machines of today. To get the arcade feel I built a full-sized arcade cabinet with arcade sticks and buttons and an old CRT monitor for that '80s feel.


Update 1

I picked up the MDF a couple days ago and I’ve had the side-dimensions down for a couple weeks. Today I actually cut something. Two sides, done.

Here are the plans created in InkScape and the resulting tracing on 3/4″ MDF. The cabinet design is (very) roughly based on the ‘Global Arcade Classics’ machine. I liked that cabinets curves (without having to bend any boards) as well as it’s relative compactness:

and the original it was based off of:

Dimensions grew slightly after placing the monitor hence the double lines on the front:

Circular saw guide clamped, taking off the back. Using a very fine plywood blade:

First rough trimming. Getting it close enough to jigsaw the rest:

One side done:


Funnest part of the project… Trim the second piece close, within 1/4″ or so, then use a template bit to perfectly match the sides. It’s pretty easy as long as the router stays flush and you don’t go too fast:

And here are the twins:


Update 2

Only had a little time today. Assembled the base and casters. The base piece is 3/4″ plywood with 2×4 supports underneath. The casters support 175lbs each; I think it’s unlikely the finished cab will exceed 700lbs. I had originally wanted to use only 2 rear fixed casters and cut a 2″ 45 degree slice out the back so the casters never touched the ground unless the cab was leaned back but I got worried about the weight on the frame at an angle. I’m going to break with tradition a little and put the swivel casters on the back since I’m pretty sure there will be more angular pressure on the front and I can leave enough clearance in back to access the wheel locks.

The sides will be mounted to the base so that the cab only sits about 3/4″ off the ground. That puts the ‘floor’ almost 4″ up. The face of the cab starts at the bottom of the sides. The back will stop at the floor:

And the assembled base:


Update 3

I switched from counting days to just plain ‘updates’. I’ve been stymied by real life the last couple days and only been working on this project a couple hours late at night (often until the wee hours of the morning). Oh yeah, and it got cold as heck here in STL… and my cordless driver died so I’ve been hand-cranking these screws. I’ve been working on the interior structure and panel supports.

First I measured out where I wanted the panel boards to hang, that let me know where to install the supports:

Each support was measured, glued, clamped, drilled, and then screwed:

Note: when attaching longer supports make sure you have a clamp near the drill/screw hole you’re working on otherwise the board may lift a little:

All screws were counter-sunk and will need to be filled before priming and painting:

And here the main supports are attached. The piece in the middle is the front kick panel and horizontal support. Before any gluing, all of the supports and the panel was attached to the base to ensure a reasonable fit and that the panels would hang against the base as I imagined. Should’ve taken a pictures of the test-fit. Oh well:

I’ll use more 2×2s for horizontal supports and the monitor shelf but the rest of the panel supports will be smaller since none of those will be bearing load and I’m going to use thinner MDF around the top and marquee to reduce weight and because it should be easier to work with.


Update 4

Made a lot of good progress today. Got the horizontal supports installed, the monitor shelf built, and the whole thing mounted to the wheeled base.

First the monitor shelf... the base of the shelf is 3/4″ plywood. Chosen b/c it’s more rigid than MDF and I had a nice 2′ wide drop after cutting the ‘floor’ of the cab. I put a front ‘lip on it to theoretically prevent the monitor from sliding forward however that’s probably not going to be an issue since it’s going to be placed at a angle. That is also where the MDF and plexi will rest when installed with a piece of MDF in the front hiding the ridge:

This monitor had a 3/4″ inch gap in the chassis that went all of the way through without obstruction so I took a 1/2″ bar from a piece of those wire shelving systems we had laying around that was bound for the trash man and ran it through, then placed a block on each side of the monitor to secure the bar in place. The monitor is quite secure on the shelf:

Also added an additional backstop to support the angle. Here’s the completed shelf sans monitor:

The interior supports for the shelf are 2×2s. The front is a horizontal 2×2, 2x 2×2s are glued and screwed into the cabinet sides as shelf ’slides’. Then an additional horizontal 2×2 in the back to stop the shelf in the appropriate place. That backstop 2×2 is screwed into the cabinet sides as well as the glued ’slides’:

Finally, here’s a test fitting on the monitor shelf. I actually moved it back another inch or so after the fitting but this gives a pretty good idea:


Update 5

Again this is really a couple days’ updates in one… a couple hours last night and a couple tonight.

Last night I got the marquee pieces attached. Note, if you’re screwing directly into the sides of MDF make sure you pre-drill adequately as MDF splits very easily. As even the drill bits can split, I drilled three times; a very small pilot hole, a screw-shaft-size hole, and the head sink hole:

Also put on the top back panel and a horizontal 2×4 between the 2×2 uprights both for additional support and to give both back panels something to attach to:

Tonight I completed the two pieces I was most dreading as they’re the only ones that needed to be mitered. First was the cp ledge face. I got the bottom angle very close and left a little extra on the top then sanded it down until it was nice and flat:

The second angle cut is at the top behind the marquee. Since it’s in the back it’s not real noticeable so I didn’t spend a lot of time getting the angle just right. I’ll fill it and sand it when I fill all of the screw holes:

And here’s where I’m at so far:


Update 6

After a long weekend off I’m back at it again. Bought aluminum L-channel in the ceiling tile section of Home Depot for a marquee retainer and to put a nicer edge on the plexi and monitor matte. Also picked up an LED-bar case lighting kit from Microcenter to use as a marquee light. One great thing about these LED bars is they put off a lot of light without a lot of heat. They also connect to a standard PSU molex connector.

Since the piece below my marquee is angled I had to bend the retainer a bit. The best way I found to do that was to clamp it in one of those trigger-style clamps and just keep pulling until it’s at the desired spread, then just keep working your way down the piece. The L-channel is a bit wide for the retainer but I’m not going to deal with that at this time:

I also have the speakers mounted. There’s a 2×2 hiding behind that panel with a single screw into the back of the speaker’s plastic case. They have a little wiggle room in there but not enough to worry about and they definitely can’t fall out or anything:

I also used a piece of the L channel as the base, where the plexi and monitor matte will sit. Near the top of the cab I have shelf-plugs that keep the plexi/matte near the speaker board. To remove it, all you have to do is slide both pieces up high enough to clear the L channel and angle out:

Here’s the monitor set up with the plexi/matte:

To finish off the night I started filling holes with wood filler:

Both my slot cutter and forstner bit came in so in the next few days I should have the slot and CP done. After that it’s a matter of painting and sanding and then dealing with the PC and electronics side.


Update 7

Had some free time the past couple days and got a lot done. Pretty much the entire enclosure including the CP is finished.

First stop was the T-Molding slot. Actually, the CP was cut before the slot as it had to be slotted as well. A good respirator and a well ventilated work location are key… I had neither. In fact, I think the dust from the routing combined with the space heater I’m using in the garage is actually quite a fire hazard. You can see burnt dust on top of lightbulbs out there:

Here’s how the CP will fit onto the body:

There’s ~ 3/4″ overhang on the front, 1/4 on the sides:

Layed out and poster-printed the layout in illustrator. That worked well although the forstner torn the heck out of the paper so I ended up just marking the centers with a screw:

I tossed some buttons in to show the wife. I don’t think she was too awful impressed. The two reds are for old 8-bit Nintendo. There will likely be a lot of Nintendo played on this cab. The joystick mounts (Happ Competitions) will be bottom mounted, about 1/4″ is routed out:

Got the first few layers of primer on as well. Two layers all-around, three on the sides. Applied it with a foam roller mainly because I couldn’t find a usable brush. The foam rollers from Harbor Freight are real junk. They shed easily and hold their shape poorly. I’ll be getting a decent roller before the ‘real’ painting starts:

And here’s the bolt-on back panel, monitor matte, and cp all primed as well.

Should have some time tomorrow. Would like to get a coat of the shiny stuff on.


Update 8

Well, the cab is effectively ‘finished for now’ - apart from software tinkering. It’s been a real headache since the last update. It’s been freezing here in STL and my first coat of enamel dried very poorly. It appears that it doesn’t flatten as well in the cold. The latex just plain froze solid and was unusable. I ended up pulling the cab into the basement for painting but the ventilation there isn’t great and it stunk up the house something fierce. As such, I’m 2 or 3 coats shy of where I’d like to be. Maybe in the spring I’ll haul it out and ‘finish’ it proper but until then it’s not too bad. The last 10 days were also holiday season, I landed a new job, and I’m sick.

I also cut a corner with the electronics for now. I intend to using DB-25s and DB-9s to connect the panel controls to the IPac to make panel swapping easier but my soldering iron is AWOL and with my being sick I didn’t really feel like taking the time to solder all those connections anyway so I wired the disconnects straight to the IPac. They just screw in so it won’t be any more work to attach the DB-25s later than it would be to do it now and it’ll probably be months before I make another panel.

Last, but not least, I still don’t know what I want to shove up in the marquee or on the sides so I just left the retainer off for now.

Here are the pics:


Update 9

The Cab’s been running great for the last few weeks. I’m still working on the software side. Most of the emulators are working fine but I’m still working through the plethora of frontends. I’m down to MaLa, Atomic FE or Maximus Arcade leaning towards MaLa.

I did come up with a very cheap, very temporary side art solution. I bought static-cling inkjet printable paper, printed some graphics, cut them out with an exacto, and stuck ‘em right on. It looks decent, stays on alright, and peels off with no adhesive or other markings on the cab. It’ll certainly do until spring when I can finish the paint and come up with something more permanent.

Here are the sides:

I also took the time to improve on the wiring. I put the iPac in an enclosure, adding a couple DB-25s and ran the USB cable into the box. So now I have the iPac, controls, PS2 adapter, and DDR dance pad all compatible and connectable using DB25s:

On a side note, I took my marquee art in to Kinkos to be printed (I’m going with a ‘1up’ theme like the first side-art image). They proofed it for me but what they handed me had washed out printing on the matte side of the paper with the gloss on the back. I’m quite certain they printed it on the wrong side and when I questioned them they said nope, can only print on the matte side. Their own sample was glossy… whatever, I’m going with someone who knows what they’re doing.