CHIP8 Emulator for PC and Embedded Systems

This is a personal project I worked on to create a CHIP8 emulator using C++ and SDL2, which is based off of an adapted version of an early prototype I previously built in C.

The project required learning skills and technologies new to me at the time, such as:

  • Reading technical documentation and references, and extracting necessary information
  • Understanding low-level computer architecture (e.g. Memory maps, Registers, Clock Cycles/Timers etc)
  • Simulating a CPU in software (software emulation)
  • C++ modular project structure
  • Creating a GUI
  • Working with Binary and Hexadecimal information (e.g. File I/O, Assemblers, etc).

The code can be found at: https://github.com/aaxbas/CHIP8

I have also made a port to the system intended for embedded systems such as an Arduino. This helped me improve the design of my modular structure, and verified my initial ideas.

The code can be found at: https://github.com/aaxbas/EmbeddedCHIP8