Back

project

AteChips

A CHIP-8 emulator with CRT shaders, a custom audio engine, and a real-time ImGui debug interface.

Runs on Windows macOS Linux
C# GLSL OpenTK ImGui

AteChips is a CHIP-8 emulator built for people who care about how things sound and look as much as whether they run correctly. It implements the full CHIP-8 instruction set with configurable timing, but the interesting parts are everything around the emulation core.

The visual layer uses CRT-style GLSL shaders to replicate the phosphor glow, scanlines, and bloom of a period-appropriate display. It's not a filter slapped on top — the shader runs per-frame and responds to what's actually being drawn, making the flicker and persistence feel authentic rather than decorative.

The audio side goes considerably further than the single-tone beeper most CHIP-8 implementations offer. AteChips has a component-driven audio engine with dynamic waveform synthesis, pulse width modulation, ring modulation, detuning, and noise variants — all configurable in real time. A live waveform preview shows you exactly what the chip is producing.

On top of that sits an ImGui-based debug and configuration interface that exposes everything from CPU registers and memory to shader parameters and audio patch settings — without leaving the emulator window.

CHIP-8 game running with green phosphor CRT shader
Green phosphor — classic P1 monitor
CHIP-8 game running with amber phosphor CRT shader
Amber phosphor — P3 monitor variant
ImGui debug interface showing CPU registers and memory
ImGui debug interface — registers and memory
Real-time waveform preview and audio engine controls
Real-time waveform preview and audio engine

CRT shaders

Per-frame GLSL shaders render phosphor glow, scanlines, and bloom. Responds to live output — flicker and persistence feel authentic, not just decorative.

Custom audio engine

Dynamic waveform synthesis with PWM, ring modulation, detuning, and noise variants — all configurable live. Far beyond the single beep most CHIP-8 implementations produce.

Live waveform preview

A real-time waveform display shows exactly what the audio engine is synthesising, updated every frame alongside the emulator output.

Full CHIP-8 instruction set

Complete implementation of all 35 opcodes with configurable timing. Runs the full back-catalogue of classic CHIP-8 ROMs.

ImGui debug interface

Live access to CPU registers, memory, shader parameters, and audio patch settings — all within the emulator window, no external tools needed.

Saveable presets

Audio settings and waveform patches serialise to JSON, so you can save a favourite sound and reload it next session or share it with others.

Requires the .NET SDK and a machine with OpenGL support. Clone and build — OpenTK handles the graphics context across Windows, macOS, and Linux.

Build
git clone https://github.com/KiwiGeek/AteChips
cd AteChips
dotnet run