Skip to content

tomatoCoderq/chip8-emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages