GoGB is a work-in-progress of a Gameboy emulator written in Go. The main objectives for this project are:
- build a medium-large sized project in Go to become familiar with the language and the design patterns associated with it.
- write an emulator that is performant enough to run Super Mario Land at a playable frame-rate.
- I am not planning on implementing sound for now.
git clone https://github.com/guigzzz/GoGB
cd GoGB && go build
./GoGB <path to rom>
up, left, down, right = w, a, s, d
A, B = j, k
start, select = u, i
- create unit test suite for backend
- instructions: arithmetic
- instructions: memory
- instructions: rotates
- instructions: shifts
- instructions: miscellaneous
- CPU base
- implement basic graphics to be able to run test suite
- learn how to draw graphics in Go + basic implementation
- implement draw background
- implement draw sprites
- implement draw Window
- Advanced tests: get the backend to pass correctness and timing tests
- Run blargg tests as a standard go test
- Automatically run blargg tests on commit
- Robust graphics implementation
- Tetris playable
- Super Mario Land playable