Skip to content

jimf/chip8-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published