Interested in learning more about the the original Game Boy or Game Boy Color? Excellent! This section will guide you through the basics, starting from basic assembly language all the way to reverse engineering your first game!
Main specs of the original GameBoy:
When it comes to finding a game to reverse engineer, it can be helpful to look at games that are cross-platform to compare builds. But the most valuable reverse engineering projects tend to be the platform exclusives, as these are the games people can no longer play on modern consoles.
The 8-bit Game Boy was sold between 1989 and 2003, but its architecture more closely resembles machines from the early 1980s, like the Commodore 64 or the NES.
This talk attempts to communicate “everything about the Game Boy” to the listener, including its internals and quirks, as well as the tricks that have been used by games and modern demos, reviving once more the spirit of times when programmers counted clock cycles and hardware limitations were seen as a challenge.
The Game Boy has a variant of the Zilog Z80 processor, well technically it is a CPU between the
i8080 and the Z80, it is not binary compatible with either but there are similarities. You need a assembler that can handle the Game Boy specific opcodes in order to write functional code for the Game Boy in assembly language.
Every game produced for the Game Boy required a little piece of code known as the “bootloader” or boot code to initialise the state of the console. You don’t have to know anything about this, but it can be fascinating to find out what the Game Boy does as soon as you hit that power button.
There have been a few very successful reverse engineering projects for the Game Boy, one of the most successful is the Pokemon dissassembly which managed to reverse engineer the entire game into a rebuildable ROM!
The Pokemon Reverse Engineering Team (PRET) have managed to pull off a marvellous achievement, they have fully reverse engineered Pokemon Red and Blue back into retail-matching assembly code.
In August 2016 the website KZone started a full disassembly of the classic Game Boy game Link’s Awakening, along the way they have written some excellent in-depth articles about how the game works. Check it out!
Special hardware was sold directly from Nintendo in order to make it easy for third party developers to get started making their own games for the new handheld.
Along with the hardware, Nintendo also provided a fairly limited software development kit, which contained tools such as z80 assemblers and linkers.
We used to have a post on the hardware architecture of the Game Boy, but now we have replaced it for a link to the far superior page on copetti.org, it is a must read for any reverse engineer or beginner emulator developer.
If you want to go really low level into the Game Boy hardware, you can view a re-creation of the Gameboy Circuit Schematics over on Github: gb-schematics/MGB-xCPU.pdf at master · Gekkio/gb-schematics · GitHub
In Japan an adapter was released that allowed you to connect your GameBoy Color to a mobile phone called The Mobile Adapter GB. Only a few Japanese games supported this adapter, one of which was Pokemon Crystal.
TheXcellerator has written an excellent article on not only how the adapter works but also how he managed to create an exploit to run custom code through the adapter!
Similar to the Super GameBoy but this is for the Nintendo 64 and not licenced by Nintendo, I first saw this for sale in issue X of the UK Nintendo Official Magazine.
For more information:
Official device to play gameboy (including gba) games on the N64, but was not sold to the general public. You had to be a game developer or press in order to buy one from Intelligent Systems.
Similar to the Super GameBoy but this is for the Sony Playstation!
The source code for the Game Boy classic
Mr Do! has been kindly released by two of the original game developers and can provide an excellent reference for how retail Game Boy games were developed in 1990!
This is a very interesting project that played a large set of gameboy games in a custom headless emulator and tracked the audio registers into a text format. They then trained a Machine Learning algorithm on that audio data and used it to generate completely new Gameboy Music! Check it out here: jawline/Synthic: Automatically generate gameboy music using machine learning
Read all about Game Boy (DMG/GBC) Reversing Emulator in this s...
Read all about Gameboy (DMG & GBC) Development Kit Hardware in this s...
Read all about Reversing Pokemon Red and Blue (Game Boy) in this s...
Read all about How Pokemon Gold/Silver Worked (Game Boy) in this s...