Game Boy Recreated in Verilog

With the wide availability of Raspberry Pi hardware and pre-baked Linux distros with emulators ready to go, making a retro handheld is easier than ever. Emulation isn’t the only way to go about playing old games however. [Wenting Zhang] decided to instead recreate the Nintendo Game Boy in Verilog, and has documented the effort.

The project runs on a Spartan 6 FPGA. [Wenting] first developed the hardware to use a DualShock controller for input, and output video to a regular LCD monitor. However, work is now underway to produce a handheld VerilogBoy. This will feature a 320×320 LCD screen, with pixels being quadrupled from the original Game Boy 160×144 resolution, with some pixels to spare. [Wenting] is also looking at porting the code to some Pano Logic units, which we’ve discussed before. The thin clients pack FPGA hardware and lots of IO ports that make them perfect for such a project.

Code is available on Github for the curious tinkerers out there. While there are easier ways to play old handheld games, the amount of learning value of such a project should not be underestimated. We’ve seen FPGAs used for other Nintendo hijinx, too – like this NES cart that packs some serious muscle. Video after the break.

8 thoughts on “Game Boy Recreated in Verilog

  1. I’m wondering if there is something a Gameboy in an fpga can do that other approaches cannot do?
    Like for example running games at a ridiculous clock rate, but more useful.

      1. This is neat!

        So basically you mean using the ability to run games superfast to feed a reinforcement learning system.
        I can see this definitely being useful. And for instance since you have complete control over the hardware you could add extra checks to the reward function. Like for instance monitor if the algorithm exploits software and/or “hardware” bugs.
        And of course the ability to run a whole bunch of virtual game consoles simultaneous.

  2. I was just thinking about a similar type of thing for a long time, ever since I first saw the Pocket Pikachu devices for the first time. It was just the other day when I noticed my ZenWatch 2 could emulate Game Boy games with sharp text. However, without a proper way to control the thing and the emulator not having audio, it wasn’t any fun. The FPGA approach seems like it would be the best way to proceed and I wish him success.

  3. Note that after 30 years and all the emulators, there are still some unknowns about the original gameboy CPU. See this talk for more info:
    https://www.youtube.com/watch?v=GBYwjch6oEE

    If you have a gameboy main PCB with a “DMG-CPU B” or “DMG-CPU A”, please consider sending the CPU to [John McMaster]:
    https://twitter.com/johndmcmaster/status/1108138735562940416

    so he can decap it, capture an image with the microscope and publish the image on siliconpr0n.org. Check this one:
    http://siliconpr0n.org/map/nintendo/dmg-cpu-b/mz_mit20x.1/

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.