A CHIP-8 interpreter written in Rust.
Failed to load latest commit information.
src Added proper argument parsing May 22, 2016
.gitignore Added dll files to the .gitignore May 22, 2016
.travis.yml Added .travis.yml May 22, 2016
Cargo.lock Fixed timer bug May 21, 2016
Cargo.toml Fixed timer bug May 21, 2016
README.md Added travis button to README.md May 22, 2016


Notch Build Status

Notch is a CHIP-8 virtual machine written in Rust.


Notch requires Rust and SDL2 development headers. Rust has only been tested on Linux and Mac OS X, but should work on Windows as it does not use any platform specific code.


Installing SDL headers under most linux distributions is fairly simple and available as a single package.

Ubuntu example:

sudo apt-get install libsdl2-dev

Fedora example:

sudo dnf install SDL2-devel

Arch Linux example:

sudo pacman -S sdl2

Mac OS X

Installing under Mac OS X is a little more involved as the headers won't be installed under the default path. To install with homebrew run the following:

brew install sdl2

Put this in your .bashrc or other file depending on your shell.

export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/lib"

Windows (MinGW)

On Windows, make certain you are using the MinGW version of SDL; the native version will crash on sdl2::init.

  1. Download mingw development libraries from http://www.libsdl.org/ (SDL2-devel-2.0.x-mingw.tar.gz).
  2. Unpack to a folder of your choosing (You can delete it afterwards).
  3. Copy all lib files from




    For Multirust Users, this folder will be in

    C:\Users{Your Username}\AppData\Local.multirust\toolchains{current toolchain}\lib\rustlib\x86_64-pc-windows-gnu\lib

  4. Copy SDL2.dll from


    into your cargo project, right next to your Cargo.toml.


Once SDL is setup, building as simple as invoking cargo:

cargo build

The final binary should be under target/debug/notch. To use notch, pass it the path to a rom as the argument.




Notch is licensed under the permissive BSD 2 Clause Licesne.