Things
CHIP-8 Emulator
2/26/2018
CHIP-8 emulator written in Rust.

Summary

A simple emulator for the CHIP-8 virtual console, written in Rust.
That’s my first serious project in Rust, where I try to experiment graphics features.

The rendering and windowing is made using the macroquad game library.

Origin

Since I discovered emulators when I was younger, I wanted to do one, to learn how it was made.
Before emulating a known console like the Gameboy or the NES, I had to find a lower target, and searching “how to write an emulator” on your favorite search engine, I heard of CHIP-8 as a de-facto first emulator target.

Technically, I wanted to use a “low-level” language, and I wanted to try Rust.
So there you go, a CHIP-8 emulator made in Rust.

During the development, I wanted to use more graphics features, and write a step-by-step debugger, so I made a graphical debugger for the CHIP-8 embedded in the emulator.

Features

  • Supports most CHIP-8 (with early SUPERCHIP-8 support)
  • Command-line driven emulator (chip8-cli), with a CLI debugger
  • GUI emulator (chip8-gui), with an embedded graphical debugger (TUI-like experience)
  • Cartridge assembler/disassembler
    • Make your own CHIP-8 game!
  • Save-state system
Made with 💜 thanks to SvelteKit
Denis Bourge GitHub LinkedIn