gammpei's blog

RSS feed My GitHub

How to write a Game Boy emulator

Writing an emulator may seem like an impossible task, but I can assure you that it's very possible. I'll go further and say that it's fun and rewarding. The difficult part is not writing the emulator, it's understanding how the emulated machine works. As always, code is cheap, but documentation is priceless.

This tutorial will be divided into a series of blog posts. Each post will come with all needed code, and will be associated to a single commit in the gammaboy GitHub repository . The goal is to write the emulator incrementally, so that people can follow along if they want and create their own emulator.

Table of contents

Credits & references

This tutorial is only possible because people before me have documented how the Game Boy works, and made it available for free on the internet. Here is a non-exhaustive list of references I've used to write this blog post series: