Today we're building our own 4-player MAME console using the Modular Mame Arcade Console Enclosure (or MMACE). This is a wooden kit that can be expanded from 2 to 3, 4, 5 or more players using interlocking sections. We'll be focusing on the 4-player version, but the build is pretty much the same for any number of player positions.
Step 1: Things You Will Need
- A large flat area to work in.
- A floor works great for this, put some plastic down to catch errant glue!
- The wooden enclosure.
- Here is a link to the parts kit on etsy: https://www.etsy.com/listing/490009769
- Raspberry Pi 3 + an 8GB or larger SD card. I used 32GB
- Here is a link to an Rpi 3 Model B: http://amzn.to/2zSh965
- Hardware kit - Joystick, buttons, and USB Encoder. These can be purchased in sets of 1 or two player. For larger builds, I just get a couple of two-player kits. I've never seen a 4-player kit.
A few packs of #4-40 machine screws for mounting the Pi and Encoder PCBs
A few packs of #6-32 machine screws for mounting the joysticks.
Step 2: Get Familiar With the Enclosure Parts, and Build Up the PCB Holders
Depending on whether you are building a 2, 3 or 4 player console, your kit will have different numbers of pieces. Everyone gets the end pieces, and consoles for 3 or more players get extra copies of the middle pieces. So just by adding more middle sections you can build a console as big as you want!
A short description of the pieces is as follows.
- Top Panels- These are the large pieces with the joystick/button cutouts. You'll get at least two of these for the left and right sides - those have rounded edges on the outside, and jigsaw edges on the insides. For 3 or more players, you'll also get expansion panels with jigsaw edges on both sides. Those fit in the middle
- Front Walls- The shorter pieces with tabs on top. You'll get two short ones for either end, one longer middle piece, and expansion pieces for more than 2 players.
- Back Walls - The taller pieces with tabs on top. You'll also get two short ones of these for either end, one longer one for the middle sections, and expansion pieces for more than 2 players.
- Sides - The angled guys with tabs on top and hand-hold cutouts
- Center Spars and the Pi Plate (Raspberry Pi Holder) - These guys are the rectangles with a few tabs and holes in the middle. You'll get one with a large cutout that fits the RPi, and 4 or more regular spars depending on the number of players.
- Bottom panels (optional) - You may or may not want these, they are large pieces with flat edges that are used to close up the bottom of the box.
Start The Build
We'll start the build with the easiest part - the PiPlate. Get the two small rectangular pieces and identify the one with hexagonal holes and the one with the round holes. Put some glue on one, and stick the other on top. Make sure to match up the sides to they are nice and even - you don't want the two pieces to be glued crooked.
You'll do the same for the long, thin encoder holders. Again, there are some with hex holes and some with round holes. Glue together one of each, so each has one round hole plate stuck to one hex hole plate.
At this point, you can populate all the hex holes with 4-40 nuts. Push them all the way down in, and put a tiny drop of glue on the side of each to keep it in it's spot. DON'T get glue in the thread holes, it will prevent you from screwing in the screw later.
Set them all aside to dry, and move on to the front and back walls.
Step 3: Build the Front/Back Panels
For the front and back walls, we will start with the shorter front pieces. The short ones go on either end, and the long ones go in the middle. All of the middle pieces are interchangeable, so don't worry about which is which.
The best way to do it is to put all the front panel pieces face down with the tabs facing up, and then glue each one in series working from one end to the other.
- First, place a short end piece down. Then, take the a long middle piece and put glue on the sides of one of the jigsaw edges. Next, attach this piece to the previous piece and keep going. By only putting glue on one side and then mating it up to the previous piece, you get a nice assembly line going AND you prevent glue from squeezing out the front and gluing your rig to the floor. :)
Once you've added all your long middle pieces, add the other end and you're done!
Do the same with the taller back panels. Start with one short end piece and add each long middle piece one by one, gluing each seam as you go.
You want the whole panel to be relatively flat, so it's a good idea to weight down the panels as they dry. Here, I threw some bottled waters on top. :)
Step 4: Build the Top Panels
The top panels are constructed just like the front and back. Put some glue on the tabs of a panel and press it into place on the previous panel.
Again, it's best to start from one side and only put glue on the new panel you're adding. If you've taken my advice and put all the panels face-down, this means glue only squeezes out the BACK and doesn't blob out on the front. This will make your sanding and finishing easier later.
Once you've got the front panels assembled, you can butt them up to the front and back to make sure everything is nice and straight. You'll also want to weight these down while they dry - here I'm using diving weights, but pretty much anything with mass will do fine. :)
If you want to get fancy, you can stack the top panels on top of the front and backs and weight the whole stack down like I did in the last picture here. Otherwise, keeping them separate is also fine.
Let the glue dry for an hour or so, and we can move on to building up the box!
Step 5: Assemble the Frame
To assemble the frame, we simply need to add the lateral spars to the front/back walls. Two of your spars will have a big cutout - make sure this hole lines up near the Pi-hole (hehe) in the back of the rear wall, as seen in the picture. This allows space to plug in the USB cables - some types of dongles can be really long!
The other spars are interchangeable, so they can go in any order you like. Just remember to keep the TABS at the top of the spars pointing the same direction as the tabs on the front and back walls.
The last picture here shows how much glue I'm using on my spars - not much, but enough to make a good bond.
Step 6: Assemble the Box
With the spars in place, we're ready to mate up the front and back walls, and add the sides. This is a pretty easy operation, except things can get a bit floppy before all the parts are actually mated together. I suggest flipping the frame so it's sitting normally, then mate up the front wall and add the sides.
In the pictures above, you'll see that I actually built this one upside down (tabs at the top are down). That's kind of a pain, it is better to build the frame in it's normal orientation with tabs up.
Once the front and back walls are mated to the spars, glue and add the side panels on either end. I suggest a bit of blue tape to keep them in place for the moment - scotch or masking tape would be fine, just nothing that will mar the finish or leave glue behind like duct tape.
Once your frame is assembled, we'll want to add the top panel before things dry. This is because the top panel will square everything up, so if your frame is not quite square we wouldn't want it to dry that way!
Dab some glue in the spaces between the tabs on the front/back walls and spars. Then take your top panel and begin inserting the tabs from one corner. If everything lines up, it will drop right on! Otherwise work your way down the row of tabs, adjusting the walls and spars to get things lined up. This version is much more tolerant of a bit of misalignment, so this job should be pretty easy.
Congrats! You've officially got a box!
At this point, I usually add some glue to the seams inside to bond everything up nice and strong, you can see this in the last few pics of this step. Set it aside to dry for a few hours, and ready your big pile o' hardware for the next step!
Step 7: Add the Hardware
My preference is to screw in the buttons first, the joystick second, and install the encoders and pi third.
Screwing in the buttons is pretty straightforward, but I suggest that you work from the back and make sure all the buttons are facing the same direction. My buttons had a grey box on one side (the microswitch) so I put the grey box facing down on all buttons. This makes wiring easier, and prevents mistakes later.
For the joystick you'll want to look at picture 3 where I've marked one up. Looking at the front of the stick with the ribbon cable on the lower right, up is up. When installed in the case (and looking from the back) the ribbon cable will exit out the lower left side of the stick. This can be changed in software, but it's easier to just get it right from the get go.
Once your buttons and joysticks are installed, you'll want to grab the mounting plates for the encoders and pi. The nuts are already installed, so all we need to do is screw in our PCB's. Here, I'm using little perler (melty) beads as standoffs - which work awesome for 4-40 screws! But if you'd like to use hex standoffs, or none at all - that's totally fine. Just don't torque your screws down so hard you break a PCB corner. :)
Install the encoders and pi to their mounting plates, and bloop some glue on the back of the mounting plates. The encoder plates mount down near the front wall, pretty much centered on the joystick/buttons. The pi mounts near the cutout in the back, with the HDMI and USB ports facing out.
Which brings us to - wiring time!
Step 8: Wiring
The wiring is straightforward, but there's a lot of it. We need to connect each of the buttons to the encoder using the set of cables included in your joystick kit. These cables have a plug on one side to connect to the encoder, and some wires with locking spade connectors on the other side - these are really nice! If you need to disconnect one of the spade connectors, just depress the little button at the top middle before pulling, or it ain't coming off! Don't force it, you may break the wire.
The first picture shows the order that I used for the buttons and the encoder. It's configurable later, so this part is not that critical - but if you're wondering what a good starting point is, here you go.
I used illuminated buttons, which have 4 wires each. Take a look at my button pic - there are two spade lugs on a grey box (the button switch) and two that just go into the plastic of the button. Yellow and black go to the grey box's spades, and red and black go to the others. The blacks are interchangeable, so it doesn't matter which black wire goes to which part of the button.
The joystick has it's own connector on the end opposite the USB port, so that one's really simple. To attach the encoders to the pi, just thread the USB cables through the holes in the center spars, and zip tie up any extra cable into neat bundles in between the spars. You may want to check out the final picture - this shows you which USB port on the pi corresponds to which player. This can be changed later, but is kind of a pain -I strongly suggest to connect each player's encoder to the port designated for that player, you'll thank me later!
Step 9: Install and Configure Retropie
Get the latest Retropie SD card image from here, unzip it and use W32DiskImager to write the .img file to the SD card. Full instructions on setting up Retropie are found here. For the arcade console we're building, the important steps are.
- Write the SD card image to the SD card
- Pop the SD card into the Pi and boot up
- Configure the controllers
- Set up Wifi
- Dump some games to the device
- Restart Emulationstation to update game list
Next Step: PLAY!
Congratulations! You are now the proud owner of a retro arcade console you have built yourself! It's an awesome feeling to play all those classics with the real arcade feel, and I hope you have had as much fun building it as you will gaming on it for years to come.
Any questions, just message me here - I'll be glad to help!