Skip to content
/ Chipy38 Public

A simple CHIP-8 emulator coded as a learning project.

License

Notifications You must be signed in to change notification settings

MeArio/Chipy38

Repository files navigation

ChiPy38 - CHIP-8 emulator(interpreter)

I wasn't actually expecting to finish this project, but I did it. As you can see this isn't that different from the many other CHIP-8 interpreters.

Installation

I suggest you make a new virtual enviorment and install the dependencies using pip and the requirments.txt file.

Linux

$ virtualenv -p python3 Chipy38
$ git clone https://github.com/MeArio/Chipy38.git
$ cd Chipy38
$ source bin/activate
(Chipy38) pip install -r requirments.txt

I didn't test it on any other operating systems, but it should work and the installation should be similar.

Usage

Basic Usage:

python main.py rom_file

Optional arguments:

-t int (adds a delay between each instruction default is 1)
-d (opens the rudimentary debugger "p" to unpause and "f" to step)
-s int (sets the scale of the window default is 10)

Config

The config.py file is scarce and only has 4 properties:

keys (Dict) is the key map

timers_delay (Int) is the delay at which the timers get decremented

shift_quirk (Bool) makes the interpreter use the bitwise shift definition from Mastering CHIP-8 by Matthew Mikolay

load_quirk (Bool) makes the interpreter use the Fx55 and Fx65 definition from Mastering CHIP-8 by Matthew Mikolay

References

Wikipedia page for the Chip-8

Cowgod's Chip-8 Tehnical Reference (The docstrings for the opcodes are copy and pasted from there)

Mastering the CHIP-8

Notes

This was an intereseting project, but I recommand to anyone that wants to undertake it to prioritise Mastering the CHIP-8 as documentation over Cowgod's reference.

License

This repository uses the MIT License.

Copyright (c) 2017 Dovleac Dorin

About

A simple CHIP-8 emulator coded as a learning project.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages