citizen428/rust-chip-8

A Chip-8 emulator in Rust. Mirror of https://git.sr.ht/~citizen428/rust-chip-8.

★ 0Forks 0RustGitHub ↗Compare
chip-8emulationrust

README

rust-chip-8

A CHIP-8 emulator written in Rust

Keyboard mapping

CHIP-8 systems used a hexadecimal keyboard with the layout shown on the left. This is mapped to the physical keyboard as shown on the right.

Note

While the diagram uses a QWERTY layout, the implementation is based on scancodes, so this should work with any keyboard layout.

|---|---|---|---|               |---|---|---|---|
| 1 | 2 | 3 | C |               | 1 | 2 | 3 | 4 |
|---|---|---|---|               |---|---|---|---|
| 4 | 5 | 6 | D |               | Q | W | E | R |
|---|---|---|---|               |---|---|---|---|
| 7 | 8 | 0 | E |               | A | S | D | F |
|---|---|---|---|               |---|---|---|---|
| A | 0 | B | F |               | Z | X | C | V |
|---|---|---|---|               |---|---|---|---|

So to get "deadbeef" inside the emulator you'd have to type "rfzrcffv".

Resources

TODO and ideas

  • Build an alternative frontend, e.g. WASM.

License

MIT License Copyright (c) 2021 Michael Kohl

For the full license text see LICENSE.

Test ROM licenses

Contributors

citizen428dependabot[bot]

Issues