Freedom251 › Nintendo 64 Emulators
n64js

What n64js is
n64js is a free Nintendo 64 emulator written mostly in pure ES6 JavaScript. A hosted version is available on GitHub Pages, and the maker presents the project as a JavaScript emulator showcase and a way to explore modern browser capabilities. It runs in a web browser and requires WebGL. The project says many ROMs run near full speed or full framerate, though graphical issues remain common among playable titles.
The site provides keyboard controls for N64 buttons and an interface for configuring a controller. Save data can persist through localStorage, and save import and export are listed as implemented features. 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. Low-level audio emulation is implemented, while high-level audio remains in progress. The repository identifies the license as MIT and documents Bun scripts for headless emulation and programmatic controller input. It lists imprecise cycle counting and graphics as compatibility issues, and savestates as a TODO.
Who it suits
n64js suits people who want to explore N64 emulation in a browser or examine a JavaScript emulator project. It is a better fit for users with WebGL-capable graphics hardware and a supported browser version for saving and loading, who can accept graphical issues across playable ROMs.
What it does well
- Free to use, with a hosted version on GitHub Pages.
- Written mostly in pure ES6 JavaScript.
- Includes keyboard controls and a controller configuration interface.
- Save data can persist through localStorage, with save import and export listed.
- Licensed under MIT.
- Provides Off, Simple, and Mattias CRT display effects.
What to know first
- Requires WebGL and compatible graphics hardware.
- Many playable ROMs have graphical issues, and cycle counting is imprecise.
- Saving and loading require newer browser support for native Uint8Array base64 methods.
- High-level audio emulation is still in progress.
Limits
The free plan is listed as free, with no paid plans or usage limits stated. Saving and loading require native Uint8Array base64 methods supported in Chrome or Edge 140+, Firefox 133+, or Safari 18.2+ including iOS; savestates are listed as a TODO.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| n64js | No paid plans or usage limits stated | Free |
As github.com lists them, read 4 Oct 2026. The maker's own page has the final word.
Getting started
- Open the n64js hosted version on GitHub Pages.
- Use a WebGL-capable browser.
- Use the provided keyboard controls or configure a controller through the site.
- For save and load support, use Chrome or Edge 140+, Firefox 133+, or Safari 18.2+ including iOS.
Verdict
Pick n64js if you want a free browser based N64 emulator or a JavaScript emulation showcase, and your browser supports its WebGL and save requirements. Look elsewhere if you need consistent graphics compatibility, completed high-level audio emulation, or savestates.
Questions
How much does n64js cost?
The n64js plan is free. No paid plans or usage limits are stated.
Where can I use n64js?
A hosted version is available on GitHub Pages. The supported platforms are web browsers; the live site reports Chrome, Firefox, and Safari tested on macOS 13.5, with Edge untested.
What browser does n64js require?
The emulator requires WebGL. Saving and loading also require native Uint8Array base64 methods supported in Chrome or Edge 140+, Firefox 133+, or Safari 18.2+ including iOS.
Can I configure a controller?
Yes. The site provides keyboard controls for N64 buttons and a controller configuration interface.
Can n64js save game data?
Save persistence through localStorage and save import and export are listed as implemented. Savestates are listed as a TODO.
What license does n64js use?
The repository identifies the license as MIT.
Facts from n64js's own pages
- Audio
- The repository says low-level audio emulation is implemented and high-level audio emulation is a work in progress. · github.com, 4 Oct 2026
- Availability
- A hosted version is available on GitHub Pages. · github.com, 4 Oct 2026
- Browser compatibility
- The live site reports Chrome, Firefox, and Safari tested on macOS 13.5, with Edge untested. · hulkholden.github.io, 4 Oct 2026
- Browser requirement
- The emulator requires WebGL, which limits the GPUs it can run on. · hulkholden.github.io, 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, 4 Oct 2026
- Compatibility
- The project says many ROMs run at full framerate, though most playable ROMs have some graphical issues. · github.com, 4 Oct 2026
- Controls
- The emulator supports static and configurable key bindings, and lists the Gamepad API as an implementation feature. · github.com, 4 Oct 2026
- Debug features
- The emulator offers Off, Simple, and Mattias CRT display effects under Debug → Graphics → CRT. · github.com, 4 Oct 2026
- Graphics
- The repository says graphics use high-level emulation and that many ROMs have graphical issues. · github.com, 4 Oct 2026
- Headless use
- The repository documents Bun scripts for creating a headless emulator and setting controller input programmatically. · github.com, 4 Oct 2026
- Hosted version
- A hosted version is available on GitHub Pages. · github.com, 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, 4 Oct 2026
- Known limitations
- The README identifies imprecise cycle counting and graphics as compatibility issues and lists savestates as a TODO. · github.com, 4 Oct 2026
- License
- The repository identifies its license as MIT. · github.com, 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, 4 Oct 2026
- Performance
- The project says many ROMs run at close to full speed, though graphical issues remain. · hulkholden.github.io, 4 Oct 2026
- Product
- n64js is an N64 emulator written mostly in pure ES6 JavaScript. · github.com, 4 Oct 2026
- Purpose
- n64js is an N64 emulator written mostly in pure ES6 JavaScript. · github.com, 4 Oct 2026
- Save data
- The repository lists save persistence through localStorage and save import/export among its implementation features. · github.com, 4 Oct 2026
- Support
- The hosted site invites users to get in touch via the maker’s Twitter account. · hulkholden.github.io, 4 Oct 2026
Where n64js stands on Freedom251
- Nintendo 64 Emulators#17 of 24