FCEUX vs JSNES
FCEUX
fceux.comJSNES
github.comSide by side
| Figure | FCEUX | JSNES |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · NES Emulators | 8.1 (#4) | 8.3 (#3) |
| Purpose | FCEUX emulates NES, Famicom, Famicom Disk System and Dendy systems. | JSNES is a JavaScript NES emulator library that works in browsers and Node.js. |
Plans
In their own words
FCEUX
FCEUX is a free, open-source emulator for NES, Famicom, Famicom Disk System, and Dendy systems. It supports NTSC, PAL, and NTSC-PAL Hybrid video modes and offers tools for casual play as well as advanced work such as debugging, ROM hacking, map making, tool-assisted movies, and Lua scripting. The project maintains Win32 and Qt/SDL ports. The Qt/SDL version runs across Windows and UNIX-like systems, including Linux, Solaris, BSD, and OSX. Its tools include debug utilities, movie recording, a TAS Editor, sprite viewer, NES Palette Editor, AVI RIFF Tree viewer, and frame timing tool. Network play in both Win32 and SDL ports is not functional, and the project says it has no plans to fix it. Building Qt/SDL requires Qt5, SDL2, minizip, zlib, and OpenGL; CMake is needed to build from source. FFmpeg libraries are optional for AVI recording, and libx264 is optional for H.264 AVI encoding. The project dates to 2006, and its home page lists version 2.6.6, released on 26 August 2023, as the latest release.
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.