Skip to content

guigzzz/GoGB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoGB Go

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.

Build Instructions

git clone https://github.com/guigzzz/GoGB
cd GoGB && go build
./GoGB <path to rom>

Controls

  • up, left, down, right = w, a, s, d
  • A, B = j, k
  • start, select = u, i

Todo

  • 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

About

Gameboy emulator written in Go

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages