Skip to content
SPECIFICTION
Get listed

JSNES vs KuroganeNES

JSNES

github.com

KuroganeNES

github.com

Side by side

FigureJSNESKuroganeNES
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WebYesYes
LinuxYes—
Plans published11
Spec score · NES Emulators8.3 (#3)7.7 (#11)
LicenseThe repository identifies its license as Apache-2.0.KuroganeNES is released under the MIT License, while bundled components retain their own licenses.

Plans

JSNES

  • JSNESFree

JSNES pricing →

KuroganeNES

  • KuroganeNESFree

KuroganeNES pricing →

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.

Visit github.com

KuroganeNES

KuroganeNES is a free NES and Famicom Disk System emulator that runs from a self-contained HTML file in modern web browsers. Single-player setup involves opening nes.html and loading a ROM, with no installer, plugin, build step, or server. The project describes cycle-accurate emulation modeled on the NES-001 and verified against named test suites across four CPU/PPU clock alignments. It supports 561 mappers and uses CRC32 ROM fingerprints to choose mapper, mirroring, timing, and peripheral settings for thousands of known games. Video and audio include NTSC and PAL timing, composite-video modeling, and expansion audio for listed chips. Features include save states, rewind, fast-forward, local multiplayer, and online multiplayer for two or four players. Supported peripherals include the Zapper, Power Pad, keyboards, tablet, and microphone. Tools include cheats, ROM patching, an NSF player, TAS studio, and CPU/PPU debugging. Remote multiplayer needs Node.js, a TLS certificate, and port 8888 reachable by default.

Visit github.com