jimf / chip8-js

Chip-8 interpreter in JavaScript

Home Page:https://jimf.github.io/joy-js/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

chip8-js

CHIP-8 interpreter in JavaScript.

Work in progress

Motivation

Off the heels of working on my Joy interpreter, I started down the path of looking into how VMs (as in the JVM, etc.; not hardware virtualization) and emulators work, since I knew conceptually that they are stack-based, much like Joy. The search very quickly led me to CHIP-8, which seems to be the canonical "beginner's project" when it comes to emulation, as the specs are well documented, and the number of opcodes to implement is relatively small. Once I settled on CHIP-8 emulation, I discovered Jeffrey Massung's awesome GO implementation and thought I'd take a stab at recreating the UI for the web.

Roadmap

  • ROM interpreter
  • Assembler
  • Web-based front end
    • ROM selection interface
    • Dynamic canvas size
    • Better handling of portrait/landscape orientations
    • Sound
    • Pause / breakpointing / stepping
    • Ability to restart game
    • Ability to customize key bindings
    • Speed control
    • Ability to run direct assembly source
  • Publish front end to GitHub pages
  • Bonus: Implement extra instructions for the SUPER CHIP-8 (SCHIP-8/CHIP-48)

How to run

$ npm install
$ npm start

Resources

License

MIT

About

Chip-8 interpreter in JavaScript

https://jimf.github.io/joy-js/

License:MIT License


Languages

Language:JavaScript 96.9%Language:HTML 1.5%Language:CSS 1.5%