Chip 8 was a virtual interpreter that was developed in the mid 1970's by Joseph Weisbecker and was used to be able to run games on all different types of computers. Chip 8 can run a variety of games like 'Pong', 'Space Invaders', and many more. Today, Chip 8 is used as a learning exercize to begin the journey of emulation development, and is a great way to start with low level programming.
To build this project, you will need the following
- The CMake build system
- A C++ compiler of your choice
- An open terminal
To compile, simply run the included shell script
sh build.sh
Note: Make sure that you have pulled the git submodules with:
git submodule init
git submodule update
To run, simply run:
./bin/ch8-emulator {ROM_PATH}
Replace rom path with the path to your rom, which can be relative or a fixed path
- Implement all 34 opcodes
- Draw graphics to an SDL window
- Implement Sound
- Implement keyboard inputs
- Add CLI interface to load roms and customize the settings
- Add visual debugger to view registers, memory, and debug both the emulator and rom
- Display and Debugger cannot poll events at the same time, because one or the other processes all the events before the other
- Chiptest - A small rom that provides easy test for early development of a Chip 8 emulator.
- IBM - A rom that draws the IBM logo
- Chip 8 Test Rom - A small rom that checks if all the opcodes are working as expected