A terminal-based CHIP-8 emulator with ROM game files from Zophar's Domain.
- Adjustable CPU frequency
- Address and opcode types
- Bit-based pixel buffer
- Basic stepping debugger with CPU and assembly view
- Pause and reset functionality
- Install Rust.
- Run
cargo run --release --hz 500 rom/<FILE>
from the project directory. - Input keys are mapped as follows (diagram from here)
Keyboard CHIP-8 Input
╔═══╦═══╦═══╦═══╗ ╔═══╦═══╦═══╦═══╗
║ 1 ║ 2 ║ 3 ║ 4 ║ ║ 1 ║ 2 ║ 3 ║ C ║
╠═══╬═══╬═══╬═══╣ ╠═══╬═══╬═══╬═══╣
║ Q ║ W ║ E ║ R ║ ║ 4 ║ 5 ║ 6 ║ D ║
╠═══╬═══╬═══╬═══╣ ===> ╠═══╬═══╬═══╬═══╣
║ A ║ S ║ D ║ F ║ ║ 7 ║ 8 ║ 9 ║ E ║
╠═══╬═══╬═══╬═══╣ ╠═══╬═══╬═══╬═══╣
║ Z ║ X ║ C ║ V ║ ║ A ║ 0 ║ B ║ F ║
╚═══╩═══╩═══╩═══╝ ╚═══╩═══╩═══╩═══╝
<ESC> ===> QUIT
+ ===> HZ += 10
- ===> HZ -= 10
n ===> STEP
r ===> RESET
<SPACE> ===> PAUSE