This Raspberry Pi Pico Acts as a Flash Cart for a Game Boy Color
We’re starting to see Raspberry Pi Pico projects roll in, and LyneByLyne’s Game Boy Color flash cart is one of the coolest.
The new Raspberry Pi Pico is incredibly exciting, and not just because it’s the first microcontroller development board that Raspberry Pi has released. Unlike most other development boards which utilize off-the-shelf microcontrollers, the Pico has a brand-new microcontroller, the RP2040, which Raspberry Pi designed themselves. It is quite powerful with a dual-core Arm Cortex-M0 processor and 264KB of RAM. It is also has interesting new features like programmable I/O and is very affordable at just $4 for the Pico. Even though it was just released, we’ve already seen a number of projects that utilize the Pico. That’s includes LyneByLyne’s Raspberry Pi Pico flash cart for the Game Boy Color.
Flash cartridges are popular devices that gamers use to load ROMs onto cartridge-based video game consoles. Because those consoles don’t accept optical media and rarely have a hard drive or other means of storage, it can be difficult to run games downloaded from the internet, whether that is an official ROM or a homebrew. Flash carts have their own storage and emulate a standard game cartridge when the console boots up, allowing you to play downloaded ROMs. The game itself isn’t being emulated, because it is running on the real console hardware. The flash cart just tricks the system into thinking an official cartridge has been inserted and serves it with the ROM. That are plenty of flash carts on the market already for Game Boy consoles, but LyneByLyne wanted to try their hand at using a Raspberry Pi Pico for the job.
It took quite a lot of trial and error, but LyneByLyne was able to get a Game Boy Color to boot Tetris from the Raspberry Pi Pico. MicroPython is being pushed by Raspberry Pi for programming the Pico, but LyneByLyne chose to program in C/C++ for performance reasons. That was important, because the communication timing has to be very precise in order to load a game correctly. The Pico’s RP2040 normally runs at 133MHz, but it can be overclocked (caution: this could damage the device and void the warranty). That was necessary in order to reach the 200MHz speed that is required for communication with the Game Boy Color. This is just the beginning of the project, and LyneByLyne is planning on developing a front-end interface that will let users select between multiple ROM images stored on an SD card. Leaving the Pico’s USB port available will also open up some interesting possibilities, such as communication between the GBC and a connected PC.