JSNES vs Nintengo
JSNES
github.comNintengo
github.comSide by side
| Figure | JSNES | Nintengo |
|---|---|---|
| Price from | Free | — |
| Free plan | Yes | — |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | Yes |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Plans published | 1 | 0 |
| Spec score · NES Emulators | 8.3 (#3) | 6.9 (#21) |
| Audio | The API supports an audio callback and has sound emulation enabled by default with a default sample rate of 48000 Hz. | The README says audio support is a work in progress and that all audio channels work in some capacity. |
| License | The repository identifies its license as Apache-2.0. | The repository identifies its license as GPL-2.0. |
| Purpose | JSNES is a JavaScript NES emulator library that works in browsers and Node.js. | Nintengo is an NES emulator written in Go. |
Plans
In their own words
JSNES
JSNES is a free JavaScript library for emulating NES games in browsers and Node.js. Its Browser helper handles canvas rendering, audio, keyboard and gamepad input, and frame timing; the lower-level NES class allows custom rendering and audio handling in Node.js. ROM data can be loaded from a URL or from a string, Uint8Array, or ArrayBuffer. The API runs frames, accepts controller input for either player, resets, adjusts frame rate, and includes methods for moving and triggering the Zapper. Applications can serialize and restore emulator state with `toJSON()` and `fromJSON()`. The `onBatteryRamWrite` callback lets an application capture battery-backed SRAM writes for persistent game saves. Sound emulation is enabled by default, with a default sample rate of 48000 Hz, and an audio callback is available. The README provides npm installation for Node.js or Webpack and an unpkg script for browser use, as well as a React embedding example. JSNES is licensed under Apache-2.0; its GitHub Issues tracker accepts bug reports and feature requests.
Nintengo
Nintengo is a free NES emulator written in Go. It runs .nes files directly or inside ZIP archives and supports NTSC and PAL regions. Desktop build instructions cover Mac OS X, Linux, and Windows; a WebAssembly build can run in a browser using a local web server, with Go 1.11 or higher required for WebAssembly support. Battery-backed saves use .sav files, while save states use .nst files. Two-player netplay is available through listen and connect options. The emulator can capture JPEG screenshots, record GIF video, and record WAV audio. Its controls include keyboard input, pause and stepping, reset, save and load state, and fast-forward options. Debugging features include CPU instruction decoding, CPU and memory profiling, and an HTTP service address. Listed mapper support includes NROM, MMC1, UNROM, CNROM, MMC3, ANROM, and MMC2. Audio is a work in progress, with all channels working in some capacity. The project is published under the GPL-2.0 license.