CHIP-8

Virtual Machine Emulator
11
CHIP-8 PC: 0x200 I: 0x000 DT: 0 ST: 0 OP: 0000
S-CHIP Flag Registers (RPL)
R0: 00 R1: 00 R2: 00 R3: 00 R4: 00 R5: 00 R6: 00 R7: 00
About CHIP-8 & SuperChip

CHIP-8 is an interpreted programming language developed in the mid-1970s by Joseph Weisbecker for the COSMAC VIP and Telmac 1800 microcomputers. It was designed to make game programming easier. Programs are run on a virtual machine with a 64×32 pixel monochrome display, 16 input keys, and a simple sound timer.

SuperChip (S-CHIP) extends CHIP-8 with a 128×64 high-resolution mode, 16×16 sprites, scrolling, persistent flag registers, and a larger font. The SCHIP 1.1 interpreter by Erik Bryntse introduced several behavioral differences from the original CHIP-8. Select "SuperChip (Legacy)" for original HP-48 behavior or "SuperChip (Modern)" for updated quirks.

SCHIP Quirks & Compatibility: The SCHIP 1.1 interpreter introduced subtle bugs that became de facto standards due to its popularity:

This emulator follows original CHIP-8 behavior by default and provides "quirks modes" (Legacy/Modern) which selectively enable SCHIP-style behaviors, matching the approach used by the Octo toolchain.

SuperChip Instructions:

S-CHIP Flag Registers (RPL User Flags): These are 8 persistent 8-bit registers (R0-R7) separate from the V-registers. On the HP-48 calculator, these corresponded to 64 one-bit user flags (8×8-bit registers, so X must be 0–7). They survived power cycles and could even be shared between different programs. In this emulator, they are saved to localStorage for the same cross-session persistence. The opcodes FX75 (store) and FX85 (load) access these registers.

Keyboard mapping: 1234 / QWER / ASDF / ZXCV → CHIP-8 keys 123C / 456D / 789E / A0BF

Quirks by mode: