Homemade Video Arcade Machine - Computerphile

Building a Cabinet for Retro Gaming: A Hack Space Project

As I walk into my main cabinet, which has been permanently stationed at the hack space, I am reminded of the hours spent building it. It was some years ago, and it's amazing how much time and effort goes into creating something as simple as this custom carpentry cabinet. The reason for its unique shape is to play the game Defender in the most realistic manner possible.

The cabinet has an old Pentium 4 processor inside, which was the latest free PC I had acquired at the time. MAME (Multiple Arcade Machine Emulator) emulates different arcade machine hardware, essentially turning a PC into an arcade machine. The joysticks and buttons are just microswitches that join up to form a keyboard matrix. A small PIC Programmable Interrupt Controller interprets these signals and sends out a keyboard scan code to the PC.

The various keypresses from joystick movements come into play through the external keyboard for convenient typing of commands and what-have-you. These joysticks are either 8-way or 4-way, depending on the type of game being played. For example, in maze-type games like Pac-Man, diagonals aren't allowed as they register as both up and left at the same time.

One reason why I spent 50 pounds on these joysticks is that they have a built-in template that's selectable from above, limiting the angles at which the joystick can go. It basically cuts out the corners so that you can only move up, down, left, or right by lifting the joystick and giving it a twist.

Currently running a version of Ubuntu, specifically Xubuntu, this system is lightweight and free. Each upgrade requires less computing power, but I'm sticking with what I've got for now since I enjoy tweaking it to suit my needs. The XFCE desktop is used here, along with a frontend called wahcade which provides a nice keyboard-based interface through which we can select games, launch them, and start the MAME application.

The cabinet design is based on the genuine Defender arcade machine developed by Williams in 1980. This code was written over a weekend for a trade fair event, turning out to be one of the most popular games of the early 1980s. The game has an up-and-down joystick and seven additional buttons, which I use to play both player 1 and player 2 controls.

In my personal projects, I work with things that would otherwise be thrown away. This cabinet is made from an old railway destination indicator monitor, which I picked up due to my job when we refurbish stations. It now displays departures, how late your train is, that sort of thing. There's a certain amount of screen burn on it that makes it hard to see right now.

Retro gaming has always been a source of fascination for me. To set up the system I have here requires patience and dedication, as every update demands more computing power. But with an intention to improve over time, becoming good enough at Defender like my teenage idols who played all day in arcades, is what drives this project forward.

Building such a cabinet shows that one can take something discarded and turn it into something unique and enjoyable.

"WEBVTTKind: captionsLanguage: enThis is my main cabinet,which I, uh, I built some years agoand it now lives permanently hereat the hack space.We don't accept money, everything is free*laughs*Um, so in order to insert coins, I just provide a buttonYou can have as many credits as you like.When people see it for the first timeThey, they're always looking for the game that they played when they were kids.It's a custom carpentry cabinet that was built around a 17 inch monitor at the timeThe reason why it has the, uh, all of the shape that it has was so that I could play the game Defenderin as realistic a manner as possible.*game noises*Inside we have an old Pentium 4. It just happens to be the most recent free PC I got hold ofMAME is an acronym for Multiple Arcade Machine Emulatorjust emulates different, um, arcade machine hardware.They were just computersThere were quite a lot of popular processorsUh, Z80s, 6800s, 68000sIt's basically just a PC and the only fancy stuff is the controlsCan we have a look?Well, the joysticks and buttons are just microswitches.All of the microswitches come out and come into a keyboard matrix.Whilst this one is based on a keyboard matrix breakout that I managed to get as part of my job,previous incarnations I've had, I've just ripped out the keyboard matrix from a keyboardbut when you press a button on a keyboard, there's a two-dimensional matrix of contactsYou join up, uh, a row and a column, uh, that sends a signal to a small, very small PICProgrammable Interrupt Controller, PICWhich interprets that and sends out a keyboard scan code to the PC.You get a means of inputting 150 different buttons or something like that.In practice you can't really use all of those button presses because keyboard controllers tend to think that if you press more than four buttons at oncethat the cat's sat on the keyboard or something like that, and it disables those keys.The various keypresses that result from joystick movements come into what is broken out as a keyboard matrix hereand just goes down into the PCI've also got an external keyboardfor convenient typing of commands and what-have-you.These joysticks are either 8-way or 4-wayIf you were playing a maze-type game, say pacman,you definitely don't want diagonals because they register, say, up and left at the same timeand it's entirely up to the game whether you're gonna go left or up when you get to a junction.These joysticks have a built-in template that's selectable from abovewhich is one of the reasons why I spent the massive 50 pounds on these joystickswhich limits the angles at which the joystick can go, it basically cuts out the cornersso that you can only go up, down, left, or rightand that's selected by lifting the joystick, and giving it a twistCurrently runs a version of Ubuntu, a very lightweight Ubuntu called Xubuntu, spelled with an XLinux is free, you're free to make it do just what you want, so that you retain control of your computing experience.It's not the most recent Ubuntu release. Each upgrade require a bit more, uh, computing power.So I'm going for the low-end Ubuntu, lightweight distribution.And every time I change it, there are things to fix, so I'm sticking with what I've got right now.Okay, right soso this comes out in a drawer, very handyYes, please excuse the mess. It's basically running the XFCE desktopThe Cholesterol Free Computing EnvironmentI'm using a frontend called wahcade, which is basically a python frontend that will give us a nice keyboard-based user interfacethrough which we can select which game we want to play, launch the gameand it starts the MAME application for us,hiding all the computing business.We're free to select from the different games that I happen to haveThe cabinet design is based on the genuine Defender arcade machinedeveloped by Williams in 1980.*game noise*In fact, the code for this was written over a weekendin time for a trade fair. And it turned out to be one of the most popular games of the early 1980sDefender is a strange game in that it has an up and down joystick and seven additional buttonsIt does mean that I use both player 1 and player 2 controlsAnd so, although I'm not playing very well at the moment, because I'm trying to multitask - *laughs*My intention is to - *screams* - become as good as the heroes I had when I was a teenagerWho would play Defender all day in the arcadefor just 10pI only really work with stuff that I get for nothingStuff that would otherwise be thrown awayThis is an old monitor from a railway destination indicator. I get to pick up things like this due to my jobwhen we do refurbishments of railway stations.It will have displayed departures, how late your train is, that sort of thing.There's a certain amount of screen burn which is hard to see right nowbut, there's a, yeah\n"