A Rust implementation of the Chip-8 emulator.
Requirements
Instructions
- Clone this repository.
- Build the executable by running
$ cargo build --release --features "sdl2-ui"
in the project root directory. - Find some game ROMs, I recommend Zophar Domain's Chip-8 Games Pack
- In the project root directory, run
$ ./target/release/chipeyte path/to/the/game
Using Nix
If you use Nix with Flakes support you can run Chipeyte like so without the need to install any of the required software listed above.
$ nix run .# ./programs/drawing01.c8
Original Chip-8 keyboard had 16 buttons with the following layout:
,---------------.
| 1 | 2 | 3 | C |
|---|---|---|---|
| 4 | 5 | 6 | D |
|---|---|---|---|
| 7 | 8 | 9 | E |
|---|---|---|---|
| A | 0 | B | F |
`---------------´
In Chipeyte, this has been keyboard layout translated into:
,---------------.
| 6 | 7 | 8 | 9 |
|---|---|---|---|
| Y | U | I | O |
|---|---|---|---|
| H | J | K | L |
|---|---|---|---|
| N | M | , | . |
`---------------´
The purpose of this project is to learn the lower-level workings of a simple computer as well as basic systems programming in Rust.
The goal is to implement a working Chip-8 simulation not looking at any implementation examples, but solely through reading documentation about the workings of the Chip-8 language.