A chip-8 emulator written in C.

Corey Prophitt 6f0729e66a Added stack overflow detection and handling 5 years ago
bin d05dbd1943 Took first stab at a generic make file. 5 years ago
data 6f0254caf5 Added beep.wav 5 years ago
screenshots 0855c3eb95 Updated brix screenshot 5 years ago
src 6f0729e66a Added stack overflow detection and handling 5 years ago
.gitignore e97dd4a18f Cleaned up the .gitignore 5 years ago
Makefile def1218b2e Fixed make on Linux 5 years ago
README.md 509f2964d7 Renamed readme.md to README.md 5 years ago

README.md

iC8: An interpreted Chip-8 emulator written in C

The emulator is complete and is able to run all Chip-8 games and demos. The data folder contains a collection of common Chip-8 games that are freely available. See data/roms/readme.md for the game credits.

alt text

alt text

alt text

Requirements

This readme assumes you have the following installed:

  1. make
  2. gcc or clang

iC8 was developed on OSX and tested on Linux. The make file does not consider Windows environments and compilation on Windows would have to be done manually. The make file can be modified to specify your system's compiler preference as well as SDL2 library and include paths.

Installation

The Makefile has an init task that installs all required libraries. You can run the task via:

$ make init

You can globally install and uninstall via the Makefile as well:

$ sudo make install
$ sudo make uninstall

Usage

The emulator is meant to be used via the command line. You can run a game via the command line by executing ic8 with a single argument (a path to a Chip-8 game).

Example Usage:

$ ic8 ./data/roms/PONG

Keys

The Chip-8 system uses an odd keypad. The layout is as follows:

1234
qwer
asdf
zxcv

Each game uses some of the keys and there is no real pattern to the key layouts so each game usually requires some fiddling around to figure out the keys.

License

An interpreted Chip-8 emulator.
Copyright (C) 2015, Corey Prophitt.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.