Skip to content

AntarticCoder/ch8-emulator

Repository files navigation

Ch8 Emulator

Overview

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.

How to Build?

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

How to Run?

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

To-Do

  • 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

Bugs

  • Display and Debugger cannot poll events at the same time, because one or the other processes all the events before the other

Screenshots

Alt text

Credits

ROMS

Articles

Documentation

About

A Chip 8 emulator made to learn the basics of emulation development

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published