Skip to content

remixer-dec/chip8emu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

95c1091 · Jul 19, 2019

History

24 Commits
Jul 13, 2019
Jan 16, 2019
Jan 16, 2019
Jul 19, 2019
Jul 19, 2019
Jul 19, 2019
Jul 19, 2019
Jul 19, 2019
Jul 19, 2019
Jul 19, 2019
Jul 19, 2019
Jul 12, 2019
Jul 19, 2019
Jul 19, 2019
Jan 16, 2019
Jul 19, 2019
Jul 19, 2019
Jul 19, 2019
Jul 19, 2019
Jul 19, 2019

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.