This project is a CHIP-8 interpretor written in Python 3. The goal is to learn about the process of writing an interpreter/emulator while simultaneously learning about the Python programming language.
The license is MIT
The code was developed against Python 3.7.1 and was tested on Windows 10 and Manjaro Linux. Assuming Python 3.7 is installed and configured for your OS, clone the repository to a Python virtualenv or to another location of your choosing. Open a terminal and cd into the CHIP-8 directory, from here run "pip install -r requirements.txt". This will install glfw and PyOpenGL. To launch the interpreter, from the CHIP-8 directory, run "python .\src\main.py" which will open a file explorer using tkinter, navigate to a Chip-8 rom and open it to begin (make sure the rom has a .ch8 extension). No roms are currently provided, they are available on the internet.
Sound should work by default on Windows. For Linux and Mac you will need to install the sox package, refer to the documentation for that platform for installing sox.
The computers using the Chip-8 language had a 16-key hexadecimal keypad. The original keypad and the mappings which my Chip-8 interpreter uses is shown below:
Chip-8 Interpreter
|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|
Matthew Mikolay: Mastering Chip-8
Laurence Muller: How to Write an Emulator (CHIP-8 Interpreter)
Craig Thomas: Writing a Chip 8 Emulator
Cowgod's Chip-8 Technical Reference v 1.0