Skip to content

valerio/go-jeebie

Repository files navigation

go-jeebie

CI

A Game Boy emulator written in Go.

Requirements

  • Go 1.23 or later

Building and Running

# Build the emulator
make build

# Run a Game Boy ROM with SDL2 (must have SDL2 installed)
make run-sdl2 path/to/rom.gb

# Run tests
make test

# Run all tests, including snapshot tests for Blargg's test suite
make test-all

Status

Still a work in progress. Can currently run some simple games, and passes basic test roms for rendering/CPU behavior, see the Test ROMs section below.

Games

Simple games running in the emulator:

Tetris Super Mario Land

Test ROMs

ROMs are collected from the excellent c-sp’s gameboy-test-roms collection. Huge thanks to the original authors (Blargg, Matt Currie and more) and maintainers of these suites.

These test ROMs are run as part of

make test-integration

A snapshot of the screen is taken at the end of each test, and compared to a reference snapshot stored in test/integration/testdata/snapshots.

Passing Tests (with generated snapshots)

01-special ✅

02-interrupts ✅

03-op sp,hl ✅

04-op r,imm ✅

05-op rp ✅

06-ld r,r ✅

07-jr,jp,call,ret,rst ✅

08-misc instrs ✅

09-op r,r ✅

10-bit ops ✅

11-op a,(hl) ✅

dmg-acid2 ✅

halt_bug ✅

instr_timing ✅

mem_timing_01-read ✅

mem_timing_02-write ✅

mem_timing_03-modify ✅

License

See the license file for license rights and limitations (MIT).

About

A gameboy emulator in Go

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published