Skip to content

Chip8 emulator and debugger written in Go, using SDL2 bindings for sound and graphics

Notifications You must be signed in to change notification settings

Monkeyanator/chipm8

Repository files navigation

chipm8

Because I wanted to emulate a Gameboy but didn't know how

Go Report Card Go Report Card

Standard render (Space Invaders) chipm8 INVADERS

Tiled render (Tetris) chipm8 Tetris

Yet another chip8 emulator, written to learn more about emulator design before tackling a more complicated system. It comes with a stripped-down command-line debugger (think GDB with 3-4 commands).

Installation

chipm8 should compile down to any target, but SDL is required on the system the emulator is being built from (if statically linked, SDL not needed on system being run on). The instructions for configuring SDL can be found here.

OS X & Linux:

go get -u github.com/Monkeyanator/chipm8

In addition, this project uses dep for dependency management, so to fetch the needed dependencies, run:

dep ensure

Usage example

To run a ROM, pass the path into chipm8 through the --prog flag:

chipm8 --prog=roms/tetris.ch8

or, to run the Tetris ROM in debug mode:

chipm8 --prog=roms/tetris.ch8 --debug

Full list of command-line flags can be found with:

chipm8 --help

Contributing

  1. Fork it (https://github.com/yourname/yourproject/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

About

Chip8 emulator and debugger written in Go, using SDL2 bindings for sound and graphics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published