CHIP-8

Virtual Machine Emulator
11
CHIP-8 PC: 0x200 I: 0x000 DT: 0 ST: 0 OP: 0000 Pitch: 0 Hz 0 FPS
🎵 PITCH RECORDER
0 samples
// Click REC to start recording pitch values as a JS array (sampled every 0ms)\nconst pitches = [];
1234123C
About CHIP-8, SuperChip & XO-Chip

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 extends CHIP-8 with a 128×64 high-resolution mode, 16×16 sprites, scrolling, persistent flag registers, and a larger font. Select "SuperChip (Legacy)" for original HP-48 behavior or "SuperChip (Modern)" for updated quirks.

XO-Chip (Octo Extensions) further extends SuperChip with: 64KB address space, 16-bit i := long NNNN, two drawing bitplanes (4 colors), save/load vx - vy register ranges, scroll-up, 16-byte audio pattern buffer with configurable pitch, and 16 flag registers for persistence.

Recording-friendly audio: This build uses a pitch-of-0 approach when ST=0. Instead of starting/stopping oscillators (which creates pops/clicks in recordings), a persistent oscillator runs continuously with its frequency set to 0 Hz during silence. This ensures clean audio capture for screen recordings and streams.

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

Quirks by mode:

XO-Chip instructions: