CHIP-8 EMULATOR

Built by Kevin Mathew · C++17 + SDL2 → WebAssembly

TIME-TRAVEL DEBUGGERAUTO CONTROLS SUPER-CHIP13/13 TESTS ↓

01Now playing

-

Loading...
-
used by this gamepressed

02Library

CHIP·8 VMBY KEVIN MATHEW Loading SOUND
Speed- IPS
Quirks-
Palette-
Display-
Waveform-
Last actionClick the screen to play
Controls for this game-H shows every key · F1 opens the debugger · hold Backspace to rewind

04Emulation

05Save states

06Debugger

07Display & sound

08Keyboard

Rewind (hold)Backspace
Step one frameN
Breakpoint at PCF7
Reset speed0
Sound testB
Save slot[ ]
All controlsH
CHIP-8 keypad1-4 Q-R A-F Z-V

03Proof of our fixes

DEBUGGING PHASE
Test ROMs on the original code (upside-down IBM logo, crashed opcode test, blank flags test) next to the fixed code, where every check passes

The same test ROMs, before and after

  • Upside-down screen: rows were drawn at 31-y.
  • Crash on every subroutine return: 00EE read the stack before moving the pointer.
  • 10x speed timers, crawling CPU: timers ticked per instruction and the loop slept after every instruction.
  • Wrong flags, BCD and register loads: 8XY5/7, FX33, FX55/65.

Run them yourself: the fixed emulator shows a tick for every check.

Built by Kevin Mathew for TatHack '26, PS1 · build KM-CHIP8-9532C2F87939 · Test ROMs by Timendus (GPL-3.0) · SUPER-CHIP games from the chip8Archive (CC0)