Chip-8 Emulator

Overview

Emulator that emulates Chip-8 and SuperChip completely. It can emulate all of the games, official and unofficial. MegaChip support has been left out due to lack of documentation on the subject.

Motivation

I have always been very interested in emulators and it was announced that Chip-8 is a great platform to learn the inner workings behind it. After creating this emulator I definitely learned a lot about how the CPU (registers, op-codes, state-flags, stack and program execution), RAM (overflowing, operations between CPU/RAM, dynamic ASM generation) and GPU (pixel plotting, collision feedback, sprites) work.

The emulator ships with a large game package. Our favorite game is: “Ant – In Search of Coke [Erin S. Catto]“, an amazing sidescroller.

Henry de Jongh

Controls

The emulator supports the following keyboard inputs:

3Input: 0x1 [Decimal: 01]
4Input: 0x2 [Decimal: 02]
5Input: 0x3 [Decimal: 03]
6Input: 0xC [Decimal: 12]
EInput: 0x4 [Decimal: 04]
RInput: 0x5 [Decimal: 05]
TInput: 0x6 [Decimal: 06]
YInput: 0xD [Decimal: 13]
DInput: 0x7 [Decimal: 07]
FInput: 0x8 [Decimal: 08]
GInput: 0x9 [Decimal: 09]
HInput: 0xE [Decimal: 14]
CInput: 0xA [Decimal: 10]
VInput: 0x0 [Decimal: 00]
BInput: 0xB [Decimal: 11]
NInput: 0xF [Decimal: 15]

Version 2016

  • Faster execution and no longer requires Ogre Engine.
  • No more external resource files, everything is embedded into the final executable.
  • Added a start-up “BIOS” game.
  • Now supports scaling the window to any size.

Version 2011 – 2015

  • Now utilizes various inline x86 assembly instead of manual carry flag detection and various speed improvements.
  • No longer resets game speed when the game is reset.
  • Fixed rendering artifacts and inaccurate collision detection.
  • Fixed SHL,1 (shift register left by 1) that set Register F to the least significant bit instead of the most significant bit.
  • Small GUI changes.

Leave a Reply

Close Menu