/emu8

Chip-8 emulator written in Rust

Primary LanguageRust

Emu8

A Chip-8 interpreter written in Rust.

demo gif

System

The Chip-8 is a virtual machine developed in the 1970's. It supports 35 opcodes, has a 64x32 pixel display, and is capable of producing a single beep tone. The use of two different opcodes to clear (00E0) the screen and draw (Dxyn) it means that games are inherently flickery.

See the chip8 struct's docstring for more system details.

Aspirations

  • decoupled input, logic, and rendering
  • fully tested opcodes
  • fast forward
  • rewind

Running

cargo run -- run --file ~/path/to/file.ch8

The Chip-8 supports ROMS up to 3584 bytes in length (4K memory - 512 bytes for internal use).

Dmatlack has a repository of games that this emulator has been validated against.

References