Step #1: Assemble the enclosure.PrevNext
- There’s no set size for the console — go with whatever seems right and suits your needs. We started by making a rectangular MicroRAX frame 900mm long (the default length of the MicroRAX beams, or around 35½") by 280mm (11"), and with eight 50mm (2") legs.
- For the base underneath, we painted a sheet of plywood black, then attached our MicroRAX framework onto it with #8 wood screws. Cut the acrylic to the same size as the plywood, but don’t attach it yet. Install 4 rubber feet (one for each corner) under the base; these will prevent the console from slipping during heated gameplay.
- We designed our console to rest on a coffee table, but you can make yours however you want — it doesn’t even have to look like a console. For instance, you could wire a joystick and buttons into the arm of a recliner.
Step #3: Connect the Arduino and arcade controller.PrevNext
- The Bluetooth Arcade Controller Shield works as an interface between the PC on one side and the Arduino and controls on the other.
- There are numerous good MAME controllers, but we chose a Bluetooth solution because it lets the console work wirelessly, untethered from computer or TV. To the PC, the controller looks like a Bluetooth keyboard. To the Arduino, it’s just another serial device.
- The Bluetooth shield plugs onto the Arduino. We attached our Arduino and shield upside down near the center of the base, with the shield screwed to the wood through its 4 mounting holes and the Arduino plugged in on top. With so many wires connected to the shield, this prevented solder joints from wiggling and breaking.
- If you don’t want to buy this controller, go ahead and build your own! You just need a WT12 Bluetooth breakout board, an LM1117 3.3V voltage regulator, some jumpers, and a bit of perf board. The schematic shows how to wire these components together to the Arduino Mega’s transmit and receive pins (pins 18 and 19). With this arrangement you can install the WT12 board and Arduino side by side in your cabinet. This will work just like the Bluetooth shield; it’s just not as slick.
Step #4: Wire up the LEDs and organize the wires.PrevNext
- For each LED, solder a resistor to the positive lead, add the 2 leads, cover with heat-shrink, and connect the resistor’s (+) side to a free I/O pin on your Arduino or Bluetooth Arcade Controller Shield.
- You can wire up as many LEDs as you have extra Arduino ports; we went with 8, on ports A0–A7. For the common ground, we connected all the ground wires to a screw installed in the plywood base
- To make the wires look nice through the clear acrylic top, we bundled them together with zip ties and secured the bundles to eyelets screwed into the base.
Step #5: Add the power.PrevNext
- Position and mount the battery pack so that you can reach in and change batteries without having to remove the acrylic top. Connect the lead wire to the Vin port on the Arduino and the ground to the common ground. Note that you could also power the console with a standard Arduino-compatible wall wart.
- Finally, drill and mount the acrylic top onto the MicroRAX frame.
Step #6: PrevNext
- Configure the Arduino and computer.
- The Arduino software for the Coffee Table MAME Console (here or at http://makeprojects.com/v/28) defines which buttons and joystick positions on the console correspond to which keyboard presses. Upload it to the Arduino like any other sketch, via the programming cable.
- Link the console to the computer by powering up the console and searching for discoverable devices through the computer’s Bluetooth setup. The computer will see the console as a wireless keyboard. Meanwhile, also connect the computer to the TV via VGA or HDMI. (If your PC doesn’t use those natively you can buy an adapter.)
- Now you need to download and install one or more emulators onto your PC. You run these emulators as applications, and each one has a configuration section where you associate keyboard letters to the physical controls on the console panel, like Up, Down, and Start. We grew up in Nintendo households, so the two we always set up are FCEUX, an NES emulator, and ZSNES or SNES9x, which simulate Super Nintendo. On Macs, we’ve used Nestopia.
- If you’re using a computer that’s more than 4–5 years old, you’ll want to download a legacy version of the emulator. Typically, the emulation software is updated to keep up with computer technology, so the latest edition of MAME won’t be happy on a slow machine.
- Each emulator plays ROMs, which are memory dumps of the individual games. After downloading a ROM, you play the game by opening it from within the emulator. There are many illegal ROMs floating around. Legitimate sites will show proof that their ROMs are licensed by the rights-holders. Alternatively, if you own a physical copy of the game (e.g. a cartridge), our understanding is that it’s OK to use a ROM for the same title, since keeping a copy for your own purposes is Fair Use.
- The last software component is the front-end, a graphical program that knows about the emulators and ROMs you’ve installed and organizes and presents them nicely. This is optional, but it’s a nice touch. Some even have screenshots and short videos for each game! My personal favorite front-end is Game Launcher, which runs on Linux and Windows.