Skip to content

A CHIP-8 emulator (interpreter) written in Rust, designed to run CHIP-8 ROMs. Features a QWERTY-mapped hexadecimal keypad, debug controls for pausing, stepping, and resetting, and adjustable clock frequency

Notifications You must be signed in to change notification settings

JuantAldea/Rust-Chip-8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CHIP-8 Emulator (Interpreter)

Just another CHIP-8 interpreter written in Rust.

Compile & Run

$ cargo run --release path/to/rom

Controls

CHIP-8 Machines have an hexadecimal pad, which is mapped into standard QWERTY like so:

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

Debug controls

  • p -> Pause CPU
  • n -> Next cycle
  • o -> Reset program
  • Numkey+ -> Duplicate clock freq
  • Numkey+ -> Halve clock freq
  • Numkey0 -> Reset freq (600hz)

Modifying the Clock frequency will alter the counting speed of the sound (st) and the delay (dt) registries, as they tick at a tenth of the clock speed (60hz).

Resources

Screenshots

image image

About

A CHIP-8 emulator (interpreter) written in Rust, designed to run CHIP-8 ROMs. Features a QWERTY-mapped hexadecimal keypad, debug controls for pausing, stepping, and resetting, and adjustable clock frequency

Topics

Resources

Stars

Watchers

Forks

Languages