NES Emulator Written in ES6
Existing NES emulators (for the web) attempt to be an all-in-one solution. As a result, UI and emulator code is tightly coupled together, and you can’t do much with the package outside of using it on its own as a standalone emulator.
nES6 was created to allow programmatic control of each piece of the emulator. For example, if you drop an nES6 instance into a page, you’ll get a blank canvas and that’s it. It’s then up to you how the emulator is fed ROMs, controller input, etc, using the exposed API from nES6.
A real-world use case is MultiNES - instead of accepting keyboard input from the local user, the emulator is fed inputs from remote players over WebSockets.
In the future…