Skip to content

A Chip-8 emulator, debugger, and disassembler made in C++ with SDL.

License

Notifications You must be signed in to change notification settings

omrawaley/chip-8-emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chip-8 Emulator

This project was my first foray into interpreters, emulators, and virtual machines. It's a fairly basic Chip-8 emulator with debugging tools that focuses on customizability.

Authors

Demo

demo

Features

  • Load ROMs from CLI or GUI
  • Reset ROMs
  • Adjust ROM speed
  • Pause ROMs
  • Customize display colors
  • Take screenshots
  • Edit and view memory
  • View registers, stack, and timers at runtime
  • Adjust program counter while paused

A Chip-8 assembler that I've written can be found at https://github.com/omrawaley/chip-8-assembler.

Installation

Use the provided CMakeLists.txt and compile with make.

  cmake CMakeLists.txt
  make

Usage

./bin/chip8 <path-to-rom>

Keys

P - Pause ROM.

M - Open settings menu.

N - Open debug panes.

Todo

  • Migrate from C-style arrays to std::array
  • Allow the user to modify IPS rather than frame time
  • Add more CLI arguments
  • Allow the user to step through the program
  • Migrate away from using tellg() and instead use file_size()

License

Chip-8 emulator - GPLv3

Dear ImGui - MIT

stb_image_write.h - Public Domain

About

A Chip-8 emulator, debugger, and disassembler made in C++ with SDL.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published