Skip to content

Latest commit

 

History

History
39 lines (30 loc) · 1.22 KB

File metadata and controls

39 lines (30 loc) · 1.22 KB

CHIP-8 Emulator

A CHIP-8 interpreter/emulator written in Rust as a hobby/study project. This implementation follows the official CHIP-8 technical reference

About CHIP-8

CHIP-8 is an interpreted programming language developed in the mid-1970s for early microcomputers. This emulator interprets and executes CHIP-8 programs (ROMs). You can find some games here

Emulator Specifications

  • Display: 64x32 monochrome pixels
  • Memory: 4KB RAM
  • Registers: 16 general-purpose 8-bit registers (V0-VF)
  • Special Registers:
    • I: 16-bit index register
    • PC: Program counter
    • SP: Stack pointer
  • Stack: 16 levels for subroutine calls
  • Input: 16-key hexadecimal keypad
  • Font: Built-in 4x5 pixel hexadecimal font sprites (0-F)

Simple Desktop frontend was implemented with sdl2 library

Startig

  • You need an audio file: desktop/sounds/sound.mp3 (for beep sound)
cd desktop
cargo run <path-to-rom-file>

Example:

cargo run ../games/PONG

ToDo

Potential enhancements:

  • Improved frontend (maybe browser based)
  • Enhanced CLI (ability to choose different parameters)