Chip-8 emulator
Mar 23, 2008
1 minute read

Chip-8 is an interpreted programming language with many characteristics of a simple CPU architecture. The language was built for early games consoles of the 1970’s such as the COSMAC VIP and TELEMAC 1800.Chip-8 includes a set of just under 40 opcodes, 4095 bytes of program memory, 16 registers (8-bit), an address register (16-bit), a stack for subroutine jumps and two timers. Chip-8 outputs a 64x32 pixel display with one bit depth. There is also a monotone beeper. Chip-8 was designed to receive input from a hexadecimal keypad.

There is also a modern implementation of Chip-8 (known as SChip) which introduces some extra display-related opcodes and increases the standard display size to a breathtaking 128x64 resolution.

This emulator, “X-Chipulator” supports both Chip-8 and SChip and is written in Python. I used wxPython to create a desktop interface similar to other popular emulators. The graphics are implemented in OpenGL.

ANT, a side scrolling Chip-8 game:

X-Chipulator ANT

A simple ROM I wrote to test out some of the SChip opcodes:

X-Chipulator Python

Back to posts