This project is a Chip-8 interpreter and virtual machine written in Python. You may be asking "What is Chip-8?" Well... defined by Wikipedia, Chip-8 "is an interpreted programming language, developed by Joseph Weisbecker made on his 1802 Microprocessor." So to clarify Chip-8 is not an emulator, but an interpreted programming language. Nevertheless, We can use our interpreter to run basic Chip-8 programs and video games!
There are a lot of reasons that I wanted to work on a project like this. Not only can I gain hands-on experience with a larger project environment, but I can explore new programming languages, and understand hardware principles. Most importantly I get to collaborate with friends!
This software draws inspiration and adapts works created by Prof. Brian Gormanly and Prof. Alan Labouseur at Marist College. Although their projects are designed for a 6502 architecture, they provided me with insight into how this project can be organized and developed. Furthermore, I also want to note my use of different resources including articles, GitHub repos, and Reddit posts, which have helped strengthen my understanding of Chip-8 and the different ways it can be implemented.
- Alan Labouseur OS: AlanClasses on GitHub
- Tania Rascia Walkthrough: taniaRascia.com
- Cowgod's Chip-8 reference: Cowgod
- Austin Morlans building a Chip-8 emulator: Austin Morlan
For testing https://github.com/Timendus/chip8-test-suite?tab=readme-ov-file#chip-8-splash-screen
For Viewing ROM Machine Code https://hexed.it/
Installation of pygame is required to run the interpreter. For more information follow the guide here