Raspberry Pi Pico Game Boy Interceptor | The MagPi #128

A challenge by fellow Game Boy Tetris fans led to this Pico-based recording device, discovers Rosie Hattersley in the brand new issue of The MagPi, out now.

The addictive qualities of the computer game Tetris are well-known, so it’s perhaps no surprise to learn that there is a whole community of Game Boy Tetris fans who meet online for tournaments. 

game boy interceptor pico magpi 128
The GB Interceptor acts as a video-capture device for older Game Boys, streaming moves during online Tetris tournaments

The RP2040 microcontroller-based Game Boy Interceptor came about when just such a tournament was being planned, “and, of course, they wanted to stream the contestants’ gameplay,” relates fellow Tetris fan Sebastian Staacks. “Streaming would not be a problem with a modified Game Boy or a modern Game Boy clone such as the Analogue Pocket,” says Sebastian, “but it would mean contestants would be forced to use the same platform in order to compete.” This change just wouldn’t fly: “the contestants always played their favourite Game Boy model and, in a contest, would want to use the model on which they trained their muscle memory.” 

sebastian staacks
The GB Interceptor can even be used as a webcam, as Sebastian demonstrates

Getting everyone to modify their beloved handheld console was out of the question. Sensing a challenge he could relish, Sebastian agreed to work out a way of streaming the tournament that would satisfy everyone. His idea was to insert a device between the game cartridge and the Game Boy that checks what the handheld console is doing and reconstructs the gameplay from the data. 

Game on! 

Physicist Sebastian holds a PhD in solid-state physics, “which means that I know the basics of almost everything technical, but nothing that is required to apply it,” he announces modestly. A self-taught programmer and electronics enthusiast since childhood, Sebastian follows his own advice that the best way to learn new skills is “to become obsessed with a project that is just a little bit above your current abilities.” 

game boy interceptor pico magpi 128
Sebastian’s GB Interceptor board is based on Raspberry Pi’s minimal hardware spec for the Pico, with added USB-C

When he got his first Raspberry Pi a decade ago, he wasn’t quite sure what he would do with it. Sebastian has been running a Raspberry Pi-based home automation setup ever since, and also keeps a Raspberry Pi handy for the constant stream of projects that invariably need a simple server for IoT purposes. When Raspberry Pi Pico launched, he was curious about Raspberry Pi microcontrollers, especially after working with Arduinos for a while. Happily, “the RP2040 turned out to be a perfect match for GB Interceptor!” Unlike modern devices, the Game Boy reads data from the cartridge as fast as from its RAM, so there is no reason for it to load its code into RAM first. Instead, the code is executed directly from the cartridge (with few exceptions) and a device in between would know exactly what the Game Boy was doing.

Unexpected benefits

At first, Sebastian simply hoped to use RP2040 to capture information from Tetris, but the microcontroller was powerful enough to render the graphics, emulate the code from whichever game was being played, and act as a general-purpose video capture device. The power and sophistication of the RP2040 meant the Game Boy Interceptor was a much more useful and flexible device than Sebastian had anticipated. “You can simply plug it between the cartridge and your Game Boy and connect it to a host device via USB.” There, it shows up like a webcam and, as a USB Video Class device, it does not need a driver and just works on Linux, Windows, and Android. It works with macOS too, though Sebastian says he still experiences some issues with M1- and M2-based Macs. It can even make use of the Game Boy’s camera and function as a webcam. 

game boy interceptor pico magpi 128

Sebastian had previously worked on a cartridge using the ESP8266 microcontroller, which had the benefit of Wi-Fi, but was far too underpowered to deal with the Game Boy’s 1MHz bus speed. He had also undertaken a Raspberry Pi Pico project using its programmable IOs. Using RP2040 made sense since he didn’t need wireless connectivity for the Game Boy Interceptor, whereas the PIOs were adept at reading bus data leaving the CPU free to pick up bus events at its own pace. This, plus the fact he uses Raspberry Pi “a lot”, meant the design and implementation came together quickly. The sole changes from his first version were to correct the orientation of some of the LEDs and a switch to USB-C which is useful for indicating whether the Game Boy is on or off

The MagPi #128 out NOW!

You can grab the brand-new issue right now from Tesco, Sainsbury’s, Asda, WHSmith, and other newsagents, including the Raspberry Pi Store in Cambridge. You can also get it via our app on Android or iOS.

magpi 128 cover

You can also subscribe to the print version of The MagPi. Not only do we deliver it globally, but people who sign up to the twelve-month print subscription get a FREE Raspberry Pi Zero Pico W!

3 comments

Fred avatar

I love this article, great work shown here combined with wise words! I agree – pushing yourself beyond current abilities certainly helps gain further skills and knowledge in new areas!

Johnny avatar

That’s a cool hack 🥰 Nice job !

Iptvsmarters avatar

Which type of module was used to make this?

Comments are closed