View on GitHub

CHIP-8-Emulator

An interpretative emulator for CHIP-8 written in C++ and SDL2

CHIP-8-Emulator

An interpretative emulator for CHIP-8 written in C++ and SDL2

As of now, the emulator is able to completely run a good number of CHIP-8 programs. There’s still a bug somewhere in the opcode execution (apparently) which is causing some programs to not run properly. The implementation of display, keyboard and timers are complete and there are no issues with them as far as I know. Sound hasn’t been implemented yet.

Installation

To be able to use SDL2

$ sudo apt install libsdl2-dev

Clone this repo

$ git clone https://github.com/aayushsrivastava/CHIP-8-Emulator.git
$ cd CHIP-8-Emulator

Compile

$ make all

I haven’t tried compiling it on Windows. But there isn’t any platform-dependent code in there so it shouldn’t be causing any problems afaik. You’ll probably want to look up how to setup SDL2’s development libraries on Visual Studio or Mingw32.

Run the program

$ ./chip8-emulator [path to rom file]

Controls

The CHIP-8 consists of a hex keyboard (read the References for more info). They have been mapped to the following keys:

     1 2 3 C             1 2 3 4
     4 5 6 D     --->     Q W E R
     7 8 9 E     --->      A S D F
     A 0 B F                Z X C V
(CHIP-8 Keyboard)     (Mapped Keyboard)

ROMs

You can easily find a lot of public domain CHIP-8 programs/games on the internet.

Reading the source code

References