It’s one thing to shell out the internals of retro consoles with something more modern. It’s another thing entirely to retrofit a Game Boy so that modern games look like Game Boy originals — while still completely supporting original cartridges at the same time.
Youtuber Sprite_tm, who is the same crazy genius that got DOOM running on an oscilloscope, has put together what might be one of the coolest combinations of a Raspberry Pi and a Game Boy. Rather than just replacing the internals to play games with the original Nintendo controls, Sprite_tm has replaced the Game Boy’s original motherboard with a Raspberry Pi Zero and a ICE40 FPGA, according to Hackaday.
Why go to all the effort? It depends on what you want to play. If you pop in an original Game Boy cartridge, Sprite’s modded Game Boy will emulate the original experience wholeheartedly, as seen with Tetris. But if you pop in a cartridge that’s not a Game Boy original, as done with Sonic, Super Mario World — which was later released on the Game Boy Advance, but never the original Game Boy — and DOOM, the software will run natively on the Raspberry Pi Zero hardware instead.
The real skill here isn’t just, hey, someone got DOOM or Sonic running on a Game Boy. What’s crazy is the effort and time taken to convert those experiences into something authentic for the Game Boy’s colour palette and hardware. The compatibility with original Game Boy cartridges is a whole other level too, making this easily one of the coolest retro mods for a Game Boy in ages.
There’s a full technical breakdown of the hardware on the Sprites Mods website. There, you can see how Sprite_tm has basically welded the Pi Zero and the FPGA modules onto either sides of a new PCB, going as far as to cut off one side of the Pi Zero to stop it from interfering with the power connector.
The work done in getting the cartridge compatibility to work properly is pretty involved, too:
As stated before, the DMGPlus will start Linux and then immediately look at the cartridge to figure out what type it is. If it’s a GameBoy cartridge, GNUBoy is responsible for running it. The thing is that I wanted this to work with any GameBoy cartridge, existing or new, that you stick into the DMGPlus, so having a stack of ROM files and selecting the correct ROM file for the cartridge that is inserted wouldn’t work. Also, dumping the inserted cartridge to a file before runnning it would be too slow. No, Gnuboy would have to be modified to read the cartridge as it executes.
Sure, it’s not the easiest way to play Sonic or DOOM. Sonic in particular loses a lot of verve without its iconic vibrant colours, but DOOM and Super Mario World look fine. I’d love to see this done with a Game Boy Advance though, especially if it’s combined with other mods that add rechargeable batteries and vastly improved screens. (This Game Boy Color mod looks astonishing too.)
But the work involved is nothing short of outstanding. Have a full read of the technical breakdown here, and just appreciate how much work people are still doing in 2021 to cherish and honour these classic consoles.