Fixing Galaga

By Rob Zwetsloot. Posted

When you get to your early 40s like 1981’s Galaga, you may find that everything doesn’t quite work as well as it used to. Maker Nick Bild’s mini Galaga arcade machine is significantly younger than the original cabinets, but still found itself in a position for repairs. They wouldn’t be easy, so Nick came up with a very creative solution.

“I came up with an elaborate way to ‘fix’ it involving robots, Raspberry Pis, computer vision, and more,” Nick tells us. “I first created a first-person view robot that streams data to a Raspberry Pi 4 that I put in the arcade cabinet. Using the Galaga machine’s joystick, I can drive that robot around and see what it sees on the arcade cabinet’s display. I have an installation of RetroPie on a Raspberry Pi 3 in another room that includes Galaga for the Atari 7800. I drive the robot into that room and point its camera at the TV playing Galaga. I then press a button to switch the arcade into ‘game’ mode, and I can control the action in the game using the mini arcade controls.”

It’s like a Rube Goldberg machine from Looney Tunes or Wallace and Gromit, and we think it also crosses the boundary into modern art too. Nick says he hates to throw away electronics, and likes to repurpose them if he can’t fix them, which has resulted in this interesting fix.

What a fix

“After gutting the arcade cabinet, I installed a new 320×240 LCD display of the same size as the original,” Nick reveals. “The display, along with the joystick and buttons, are wired to a Raspberry Pi 4 computer that fits inside the casing. Raspberry Pi runs fbcp-ili9341 to use the LCD as its main display. It also runs a custom Python script which handles input from the joystick and buttons.

This robot plays Galaga for you – with your guidance

“The arcade operates in two modes – ‘drive’ and ‘game’, which are toggled by the ‘Start’ button. In drive mode, the script sends HTTP requests to a laptop that issues ROS 2 commands over Wi-Fi that control the movements of the robot. In game mode, HTTP requests are sent to an Arduino Nano 33 IoT attached to a Raspberry Pi 3, running RetroPie and emulating Galaga, that acts as a keyboard emulator. This allows remote key-strokes to be sent to control the action in the game.”

The robot has an Espressif ESP-EYE camera board connected to ESP32 MJPEG streaming server which allows for sub-second video streaming delays – very impressive and also fairly necessary for the experience to feel as organic as possible.

Remote control

With all this tech, was Nick able to fix his Galaga machine? Yes, as he explains.

The special camera here allows for very quick relaying of video

“It works surprisingly well in some respects. The game is clearly visible on the display screen, and the lag is only about 200 milliseconds, which is acceptable for most retro games — nothing happens much faster than that in games of that era,” Nick says. “As for the robot, the controls are smooth and it is easy to get around without bumping into obstacles.”

We look forward to the explosion of arcade cabinet repair kits with streaming robot cameras at their core.

From The MagPi store


Subscribe to the newsletter

Get every issue delivered directly to your inbox and keep up to date with the latest news, offers, events, and more.