Skip to content
SPECIFICTION
Get listed

binjnes vs JSNES

binjnes

binji.github.io

JSNES

github.com

Side by side

FigurebinjnesJSNES
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WebYesYes
macOSYes—
LinuxYesYes
Plans published11
Spec score · NES Emulators8.0 (#5)8.3 (#3)
AudioAdditional audio channels are supported for mappers 19, 24, and 26.The API supports an audio callback and has sound emulation enabled by default with a default sample rate of 48000 Hz.
LicenseThe source code is distributed under the MIT License.The repository identifies its license as Apache-2.0.
Purposebinjnes is a simple NES emulator implemented in C that also runs in a browser.JSNES is a JavaScript NES emulator library that works in browsers and Node.js.

Plans

binjnes

  • FreeFree

binjnes pricing →

JSNES

  • JSNESFree

JSNES pricing →

In their own words

binjnes

binjnes is a free NES emulator written in C, available in a browser or through source builds for Linux and macOS. Its cycle-accurate emulation passes many timing tests and supports numerous cartridge mappers using a built-in cartridge database. Mappers 19, 24, and 26 receive additional audio channels. Playback controls include pausing, advancing one frame, rewinding, and seeking to a specific cycle. Users can save and load battery backup data and emulator state files. The browser version is built as WebAssembly and lets users upload a file to play. Desktop build instructions use make or CMake; building requires CMake and sokol, and the WebAssembly instructions also require Emscripten. The project includes a Python test harness that validates tests with hashes, and the source code is distributed under the MIT License. The GitHub releases page lists no packaged downloads, so desktop users need to build from source.

Visit binji.github.io

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