A CHIP-8 emulator built from scratch in C++ with SDL2 for graphics and input handling. CHIP-8 is an interpreted programming language originally used on 8-bit microcomputers in the 1970s.

View on GitHub

Features

  • Complete instruction set: All 35 CHIP-8 opcodes implemented
  • SDL2 graphics: 64x32 monochrome display rendering
  • Keyboard input: Mapped hexadecimal keypad to modern keyboard
  • Sound support: Timer-based beep functionality
  • ROM loading: Play classic CHIP-8 games (Pong, Space Invaders, etc.)

Technologies

  • C++ - Core emulator implementation
  • SDL2 - Graphics, input, and audio
  • CMake - Build system

Technical Highlights

  • Accurate CPU cycle timing and fetch-decode-execute loop
  • Memory management with proper address space separation
  • Display buffer with configurable scale factor
  • Delay and sound timer implementation