Arcade Controller Walkthrough

Project Scope and Requirements

Any project needs a well defined scope, and well defined and objective requirements.

Project planing is probably the most important phase before you start spending your money and buying material, tools and hardware parts.

Define your budget, time available, main goals and end date. Like any project, It might cost a little bit more, take a little more time, or do less of what was initially planned.

If you plan the project well you’ll be more aware of the possible problems, additional costs, how far you can go to finish it, and estimate when you finish it.

Define project milestones, one of the end of each project phase, so that you can do some sprints, and an end date to finish the project (mine was Christmas Eve).

This project had the following main phases:

  1. Define Project Scope and Requirements: the scope is limited to MAME only, and 1 Player (at a time);
  2. Planning: I did some sketches on paper, planned the wood parts dimensions, researched on the net for similar projects, researched for Operating Systems and MAME ports for the Raspberry PI. Researched for systems examples, compatibility problems, hardware and software limitations – this will help you earning time in the next phase. At the end of this phase I produced a list of what I needed to purchase (hardware, materials, tools), and adapt it to my budget limit;
  3. Hardware and Software Implementation, Integration and Testing: before start cutting and drilling the wood, finish the technical part first. The main objetive is to have something working. Test the Hardware, Operating system, Emulator, Interface to browse the games, and test every single control. At the end of this phase you’ll have a fully working Arcade System, without a fancy housing, but it is working;
  4. Wood (or other materials) Work: this will be less or more difficult depending on your handcraft experience and skills. Evaluate if you have all the tools you need. Evaluate if it is more cheap to outsource this phase to a Carpenter (that will have all the needed tools and more experience than you), and what materials you want. If you planned the project well, you have all the dimensions of the wood pieces, and it will be more easy for the professional to cut them and assemble them.

For this project I had the following requirements (1 player only Arcade Controller):

  • 1 8-way Joystick;
  • 6 player buttons;
  • Player 1 start button;
  • Player 1 coin button;
  • 2 pinball buttons (left and right);
  • Small size Arcade Controller;
  • Run MAME Games;
  • Connect to HDMI TV;
  • Use a Raspberry PI: besides the main objective of the Project – an Arcade Christmas present – I really wanted to test the PI with a MAME port.

During the implementation phase, I removed one of the initial requirements – hide the Raspberry PI inside the Arcade Controller. After a few wood working I realised that the box would fit inside a Raspberry PI ZERO (my first option), but couldn’t fit the Raspberry PI 2 / 3. If I had gone through this path, I would need to get at least two cables from the box: USB Power and HDMI. But it would be more difficult to access the PI, I would need at least another USB port, and if a RaspPI 2 was chosen, a RJ45 conector to access the small computer through the network (version 3 fortunately has Wi-Fi).

After the project is finished, you’ll have always a few improvements to do. Add more ROMs, update the emulator or the Operating System, do some other tweaks inside the PI – don’t fit the computer inside without having the ports and the SD Card accessible from the outside, because you will sure need to access it in the future.

Having the PI outside of the Controller housing easies the access to the system (connect more USB devices, Ethernet, HDMI, access the SD card), and you only need an USB cable for the Arcade Controller. If you prefer hiding the raspberry pi, plan a raspberry pi bezel that ables you to connect every port and remove the SD Card without having to open the controller. At the end, I also connected a Logitech Wheel for Car Racing Games (a new requirement), and with the raspberry pi outside it was more easy to accomplish.


Arcade Controller Measurements

My first Arcade Cabinet was designed using SketchUp, for this tiny controller I decided to draw it first on paper, and then cut the pieces in cardboard.

The dimensions were defined around the Japanese Layout from Slagcoin’s joystick templates:

  • Base: 24,5cm x 16,8cm
  • Top: 24,5cm x 17cm
  • Front: 24,5cm x 4,4cm
  • Back: 24,5cm x 7cm
  • Left and Right: 17 cm x 7 cm x 16,8cm x 4,4cm

Cardboard Housing Parts Prototype

Figure 1. Cardboard Housing Parts Prototype

Cardboard Parts Assembled with Slagcoin's Japanese Layout

Figure 2. Cardboard Parts Assembled with Slagcoin’s Japanese Layout

Shopping List

You defined your scope and requirements, planned everything, now start seeing what additional things you need to buy to proceed. You’ll need for sure a CPU (Raspberry PI or other), Arcade Controls, Keyboard Encoder, Cables and Connectors to build the system.

Hardware Parts:
  • Raspberry PI – I found that version 3 will work perfectly with AdvanceMAME latest version, version 2 didn’t work good for all games (Out-Run runs very slow). Rasperry PI 3 is more powerful Raspberry PI, choose this one;
  • Joystick – you’re a Pac-Man maniac and only need a 4-way? I would go to a standard 8-way, that will serve almost all games. There are a few joystick options from Ultimarc that ables you to have a better 4-way experience, check their website. Of course, if you want it perfect it will cost a little bit more;
  • Buttons – 6 buttons will do for the majority of the Arcade Games, additionally you will need a “Insert Coin Button” and “Start Player 1 Button”. I added two pinball buttons for two reasons: 1) Play Pinball Games (dah); 2) Have buttons that, combined with the others, Exit from the game and Pause the game – total of 10 buttons. If you want to improve quality, you can go with gold leaf buttons (the original ones used on the old arcade cabinets), but microswitch buttons will do the same thing, only if the switching sound is really annoying to you and the price is not a problem, try the gold leaf.
  • Keyboard Encoder – the input interface of the controls to the PI;
  • Cable connectors for the Joystick and the buttons to the keyboard encoder.

The best option for me was buying an Arcade Kit from ModMyPI. This decision was made taking in account three reasons:

1) I wanted to use a Raspberry PI on the project and I needed to order one, so I ordered all the hardware set from the same shop to avoid additional shipping costs;

2) The Arcade kit comes already with a keyboard encoder and cables that easily connects the controls to the Raspberry PI through USB;

3) Less time receiving the hardware parts – you can save money ordering the same stuff from eBay from different sellers, from China, but it might take more time, and I had a well defined end-date (the 24th of December), I needed to get the parts quickly. If you do not mind waiting a little more, check eBay for this parts at a cheaper price – I highly recommend ModMyPI since they have good quality products with good prices and a great customer service.

  • MDF board with 10mm thickness (I bought a 61cmx122cm panel from a local retailer);
  • Synthetic Glass or Acrylic board – for finishing the top of the controller: I chose synthetic glass because it is more easy to drill and cut;
  • Wood glue or  T-slot L Shape profiles + screws for wood: I chose the second option because I had less than one day to finish the wood parts assembly, glue is the most used option on arcade cabinets, but I’m very happy with the result;
  • Wood paint or Vinyl paper roll: I chose the second one because of lack of time, If I had time I would go with painting the wood, looks nicer.
  • Corded Drill, Wood drill bit set, slot cutter (for drilling the buttons and joystick holes);
  • Jig saw with blades for wood cutting;
  • Screw drivers.

Hardware and Software Installing, Integration and Testing

The phase that I’m more found of is the “techy” part – put something working! A kind of Computer Scientists Lego.

I know that for someone not so found of this part might be the more difficult one, and for those I’ll try to give some help with the following text, so that it will be as simple as possible to accomplish. For more technical people, I hope to help with some clues and ideas.

The Hardware you’ll need:

  • Internet Connection and RJ45 available ports (on your Home Router or Home switch) to connect your Raspberry PI to your Local Network and the Internet;
  • RJ45 LAN cable;
  • A PC or Mac connected to your Home Network / LAN;
  • A RaspBerry PI 3 – version 3 is the only version I saw running well Outrun;
  • A microSD Card, 8GB minimum – I chose a 64GB so that I could have a high number of MAME roms;
  • RaspBerry PI Power Supply;
  • HDMI cable;
  • Computer Monitor or TV with HDMI connector, or Computer Monitor or TV with VGA connector, and a HDMI -> VGA converter;
  • USB or Bluetooth keyboard;
  • ModMyPI Arcade Bundle: