A Game Boy emulator written in Go.
- Cartridges (ROM only, MBC1, MBC3 with no timer)
- CPU (passes Blargg's CPU instruction test)
- Interrupt Controller
- Joypad
- PPU (background, window and sprites rendering, scrolling)
- Go 1.9 or newer
- dep
- SDL2 (
libsdl2-dev
on Debian-based distributions)
- Copy the DMG bootrom to
roms/bootrom.gb
(or specify its path with the-bootrom
flag) - Compile and run the emulator:
$ dep ensure
$ go build
$ ./bmo -rom <path to the ROM file>
- Gameboy CPU (LR35902) instruction set
- Game Boy Programming Manual
- Pan Docs
- The Ultimate Game Boy Talk
This project is licensed under the terms of the MIT license.