#emulator #chip-8

yanked bin+lib ship8

A CHIP-8 emulator

6 releases

0.2.0 Nov 18, 2018
0.1.5 Nov 4, 2018

#93 in Emulators

Download history 6/week @ 2018-12-31 8/week @ 2019-01-07 8/week @ 2019-01-14 2/week @ 2019-01-28 1/week @ 2019-02-18 12/week @ 2019-03-04 1/week @ 2019-03-11 2/week @ 2019-03-18 61/week @ 2019-03-25 7/week @ 2019-04-01 2/week @ 2019-04-08

81 downloads per month

MIT license

786 lines

Crates.io Build success


This is a working emulator for the CHIP-8 machine built in Rust. This probably should not be used in production and I am a beginner in Rust so there are probably better ways to write the code I wrote.

It handles sound, graphics and keyboard input using the SDL2 library.


Clone the repository and make sure Rust and Cargo are installed, then run:

$ cargo run

This will start the Pong game bundled with the emulator. The bundled Pong game was not made by me but it is in public domain. You can find a lot of games for the CHIP-8 if you type CHIP-8 free games on your favorite search engine.

If you have a CHIP-8 ROM file, you can run in the emulator with the following command:

$ cargo run your-rom-file.ch8

To get a list of options, run:

$ cargo run -- -h

This will list the options and explain them. For example, you can change the emulator speed and mute the audio.


If you find a better way to write the code, or if there is a mistake, feel free to send a pull request or to create an issue.


~60K SLoC