This repository contains an implementation of a Chip-8 interpreter written in C. It supports the complete set of the standard Chip-8 instructions however doesn't include support for Super Chip-48.
CHIP-8 is an interpreter programming language developed by Joseph Weisbecker in the mid-70s and was initially used on the COSMAC VIP and Telmac 1800 8-bit microcomputers to make game programming easier. CHIP-8 programs are run using a CHIP-8 virtual machine.
This reference explains the virtual machine (instruction, registers, stack, memory, display, and keypad) and the opcodes supported.
The computers which originally used the Chip-8 Language had a 16-key hexadecimal keypad with the following layout:
1 | 2 | 3 | C |
4 | 5 | 6 | D |
7 | 8 | 9 | E |
A | 0 | B | F |
Verified compatible with Windows (64-bit).
To build the project run:
git clone https://github.com/CheesyFrappe/chip8-emulator.git
cd chip8-emulator
mingw32-make
Running from the command line:
- You need to provide the path to a ROM file as an argument. Check dependencies for the ROM file.
- So you can start the INVADERS game available in the
bin
directory by:
cd bin
.\main.exe ./INVADERS
This project is open source and available under the MIT License.