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 is an adaptation of 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
- Brian Gormanly Computer Organization and Architecture: 422-tsiraM (440 bad link)
- 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 may be required to run the interpreter. For more information follow the guide here