A chip-8 disassembler written in Python.

Corey Prophitt d87df64362 Fixed URL reference 4 years ago
chip8 b2fc34f640 Fixed an issue with setup.py distribution version 5 years ago
docs d87df64362 Fixed URL reference 4 years ago
screenshots 27a615766e Added a screenshot of c8d in action 5 years ago
tests 535065707e Removed unneeded __init__.py file 5 years ago
.gitignore a3fd1ae035 Added *.python-version to .gitignore 5 years ago
.travis.yml 801d6ac3d0 Added Python 3 to the list of Travis Pythons 5 years ago
Makefile 6fae26113e Added install make task 5 years ago
README.md 4cbd999117 Added development section to the readme 5 years ago
c8d 2e8000a6e7 Refactored author/email settings 5 years ago
pylintrc 0cfd5a3660 Added the default pylintrc 5 years ago
setup.cfg ebae1aaa45 Added PyPi setup files 5 years ago
setup.py b2fc34f640 Fixed an issue with setup.py distribution version 5 years ago



Build Status PyPI version

A Chip-8 disassembler in Python

The disassembly is based on Cowgod's Chip-8 technical reference document. The document can be found here. If the document is unavailable you can find a saved copy within the docs folder docs/chip-8.pdf.

alt text


  1. Python 2.7 or Python 3.0+


The easiest way to install c8d is via PyPi, this can be done with the following command:

$ pip install c8d

Note, sudo may or may not be required depending on your environment.

The second way to install is by cloning the repository and installing the development version of the pip package:

$ git clone https://github.com/prophittcorey/c8d.git
$ cd c8d
$ make install

The pip package installs the c8d executable as well as the chip8 package which can be used to write your own scripts.

Note, you may have to source your shell for the c8d executable to be picked up.


The c8d executable currently supports two command line arguments:

  1. -h, prints the program usage
  2. -f FILE, input file to be processed and disassembled

Example Usage:

$ c8d -f WIPEOFF

Note, if you wish to store the disassembly to a file you can redirect the output to a file:

$ c8d -f WIPEOFF > wipeoff.c8


A make task has been included that installs all linters and testing packages that are required for development. The command is make init. Once run, development can ensue.

Once all dependencies have been installed the linters and tests can be run. The following commands are useful:

  1. make lint runs all linters on all Python code
  2. make test runs all unit tests


A Chip-8 disassembler in Python
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
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/>.