CHIP-8 Emulator

A CHIP-8 interpreter written in C, capable of running classic CHIP-8 ROMs.

A low-level CHIP-8 interpreter built from scratch in C. CHIP-8 is an interpreted programming language from the 1970s, commonly used as an entry point into emulator development.

What it does:

  • Implements the full CHIP-8 instruction set (35 opcodes)
  • 64x32 monochrome display with configurable scaling (default 640x320 window)
  • 16-key hexadecimal keypad input mapped to keyboard
  • Sound and delay timers running at 60Hz
  • Configurable CPU cycle speed
  • Includes a collection of classic ROMs — Pong, Space Invaders, Tetris, Breakout, and more

Architecture:

  • Emulation logic (chip8.c/h) is fully decoupled from graphics
  • 4KB memory, 16 general-purpose 8-bit registers, 16-level stack
  • Main loop handles Raylib rendering and input at 60 FPS

Tech: C, Raylib, Make