Skip to content

remixer-dec/chip8emu

Repository files navigation

Interactive chip8 emulator

This is an experimental project, created to learn how emulation works from inside.
It includes the emulator and some debugging tools like console and register view.
You can check the demo here. To run this project, you have to use a modern browser.

Screenshot

Mobile-friendly progressive web app with dark theme

ScreenshotMobile

Features:

  • blinking reduction (configurable)
  • key binding
  • offline-mode & cache management
  • loadable screen & register states
  • instructions are translated into human-readable language (in debug mode)

Emulator object
Emulator and all it's components are available from window.emu object

Technologies used in this project:
JS ES6+ syntax:

  • arrow functions + let variables
  • imports / exports
  • promises
  • generators / iterators
  • Sets
  • Methods

HTML/CSS syntax:

  • Web Components
  • CSS Grid

TODO:

  • WebGL renderer
  • make different UI's with frameworks
  • game specific keyboards / configs
  • Gamepad support

Special thanks to:
mir3z/chip8-emu for extra ROMs & ROM description,
Wikipedia article about CHIP-8
Chip-8 manual
The article about writing an emulator
for the information and /r/emulation & /r/emudev for inspiring me to do this project.