Good Boy
Good Boy is a Game Boy (DMG) emulator written in Go.
Mostly a work in progress, but good enough to play some popular games (Tetris, Super Mario Land, Donkey Kong, ...).

Usage
From source:
go run . [rom file]
Using a pre-built binary:
goodboy [rom file]
Play with ←, ↑, ↓, →, A, S, Enter, R Shift.
The emulator has a built-in textual debugger and tracer (use -debug
and -trace
).
Features & TODOs
- CPU, timer, interrupt, graphics, joypad, sound
- Cartridge types: ROM-only, MBC1
- Built-in debugger
- Pass Blargg's cpu_instrs, instr_timing, mem_timing, mem_timing-2
- Pass dmg-acid2 test
- Serial
- PPU timing (currently rendering any line takes 172 dots)
- Support more cartridge types (MBC2, MBC3, MBC5, ...)
- Pass more Blargg tests, Mooneye, etc
- Game save/restore