n64js
What it is
n64js is a web-based Nintendo 64 emulator written mostly in ES6 JavaScript, with a hosted version on GitHub Pages. It uses WebGL and offers keyboard controls for N64 buttons plus a controller configuration interface. The project says many ROMs run at close to full speed, but graphical problems affect many playable titles; imprecise cycle counting is another compatibility issue. Low-level audio emulation is implemented, while high-level audio is still in progress. Save data can persist through localStorage, and users can import and export saves. Saving and loading require native Uint8Array base64 methods available in Chrome or Edge 140+, Firefox 133+, or Safari 18.2+, including iOS. The live site reports Chrome, Firefox, and Safari tested on macOS 13.5; Edge is untested. The project also offers Off, Simple, and Mattias CRT display effects. It is free under the MIT license, and its maker presents it as a JavaScript emulator showcase and a way to explore modern browsers.
For and against
For
- Hosted version available on GitHub Pages
- Keyboard controls and controller configuration
- Save persistence and import/export
- CRT display effects are available
- Free under the MIT license
Against
- Requires WebGL-compatible graphics hardware
- Many playable ROMs have graphical issues
- High-level audio emulation is still in progress
- Savestates are listed as a TODO
The verdict
n64js provides browser-based N64 emulation with controller configuration and save import and export. Graphics compatibility issues and the WebGL requirement are important constraints.
Who it suits
It suits people interested in browser-based N64 emulation and exploring JavaScript emulation. Users need WebGL-compatible graphics hardware and a supported browser for saving and loading.
Plans and prices
n64js
No paid plans or usage limits stated
Read 4 Oct 2026 · github.com
On the record
- Audio
- The repository says low-level audio emulation is implemented and high-level audio emulation is a work in progress.github.com · read 4 Oct 2026
- Availability
- A hosted version is available on GitHub Pages.github.com · read 4 Oct 2026
- Browser compatibility
- The live site reports Chrome, Firefox, and Safari tested on macOS 13.5, with Edge untested.hulkholden.github.io · read 4 Oct 2026
- Browser requirement
- The emulator requires WebGL, which limits the GPUs it can run on.hulkholden.github.io · read 4 Oct 2026
- Browser requirements
- The hosted emulator requires WebGL, and saving and loading require native Uint8Array base64 methods supported in Chrome/Edge 140+, Firefox 133+, or Safari 18.2+ including iOS.github.com · read 4 Oct 2026
- Compatibility
- The project says many ROMs run at full framerate, though most playable ROMs have some graphical issues.github.com · read 4 Oct 2026
- Controls
- The emulator supports static and configurable key bindings, and lists the Gamepad API as an implementation feature.github.com · read 4 Oct 2026
- Debug features
- The emulator offers Off, Simple, and Mattias CRT display effects under Debug → Graphics → CRT.github.com · read 4 Oct 2026
- Graphics
- The repository says graphics use high-level emulation and that many ROMs have graphical issues.github.com · read 4 Oct 2026
- Headless use
- The repository documents Bun scripts for creating a headless emulator and setting controller input programmatically.github.com · read 4 Oct 2026
- Hosted version
- A hosted version is available on GitHub Pages.github.com · read 4 Oct 2026
- Intended audience
- The maker describes the project as a JavaScript emulator showcase and a way to explore what modern browsers can do.github.com · read 4 Oct 2026
- Known limitations
- The README identifies imprecise cycle counting and graphics as compatibility issues and lists savestates as a TODO.github.com · read 4 Oct 2026
- License
- The repository includes an MIT license that permits use, modification, distribution, and sale subject to its notice conditions.github.com · read 4 Oct 2026
- Origin
- The hosted page says n64js is based on Daedalus, an emulator its maker began writing while at university.hulkholden.github.io · read 4 Oct 2026
- Performance
- The project says many ROMs run at close to full speed, though graphical issues remain.hulkholden.github.io · read 4 Oct 2026
- Product
- n64js is an N64 emulator written mostly in pure ES6 JavaScript.github.com · read 4 Oct 2026
- Purpose
- n64js is an N64 emulator written mostly in pure ES6 JavaScript.github.com · read 4 Oct 2026