When studying at the university of Oldenburg, i did a student project regarding the Nintendo Game Boy from 1989. We tried to develop a homebrew cartridge and write come code using C. The project was finished and slept on my hard drive for several years. Back in 2010, i wanted to give a presentation at the PH-Neutral conference in Berlin. I documented my Game Boy project, wrote some slides and finished the code. Now it is 2015. I decided to rewrite my previous presentation and create a beginner tutorial for Game Boy development.
The tutorial was released at the Nullsecurity plattform and you can download the PDF here. It consists of three sections:
The tutorial itself is no rocket science. Nevertheless, many grew up with the Game Boy and it is still fun writing code for this platform. The Z80-like CPU is easy to master and the hardware well documented. Furthermore, the Game Boy Development Kit provides a C compiler which allows you to work at a higher abstraction level.
There exist several cartridges which allow developers to upload custom code. I was interested in building something from scratch. Therefore, my first prototype was a modified existing cartridge.
This proof of concept worked and I created an Eagle layout for a custom cartridge with a 27C256 EPROM. You can download it here. Afterwards, I began to write a simple Pong clone using C. Luckily, the Game Boy Developers Kit (and the Internet;) provide good documentation which describes the graphics format and display hardware in great detail. The results running on real hardware look like this:
The first picture shows the first prototype which is a modified nintendo cartridge. The second one contains a Game Boy running the previously developed Pong game on a custom cartridge. If you are interested in more details, take a look at the tutorial itself or drop me a line for comments and suggestions. The Pong source code is available too.