Skip to content
N64Wasm

N64Wasm

NINTENDO 64 EMULATOR

N64Wasm

N64Wasm is an open-source Nintendo 64 emulator port that runs in modern web browsers by compiling a RetroArch ParaLLeL N64 core to WebAssembly (WASM). It provides a browser-hosted UI, save states, controller support, and options for hosting a local ROM list or using a self-hosted cloud save server.

nintendo 64PRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

WHY IT MATTERS

What this project is

N64Wasm is a web-focused build of an N64 core intended to let people run N64 games in a browser without external CDNs. The author ported a RetroArch ParaLLeL N64 core to WebAssembly so the emulator can run in modern browsers and on mobile browsers that support WASM and WebGL.

BEST FOR

Notable strengths

Runs in-browser (WebAssembly) with gamepad support, save states stored in the browser, keyboard/button remapping, mobile controls, optional software renderer, and a documented self-hosting workflow to serve ROMs and cloud save states. The project reuses the ParaLLEl N64 core as its emulation backend, which gives it relatively good compatibility for a browser-targeted project.

The people behind N64Wasm

History and upstream

The repository describes N64Wasm as a port of the RetroArch ParaLLEl N64 core to WebAssembly. The project was developed as a web-first N64 emulator and includes both a browser-distributed build (dist/) and a Windows/native build in the source tree. The README documents build steps that use Emscripten (the README specifies Emscripten 2.0.7) and links to the ParaLLEl N64 core as the reference backend. The repo includes build instructions, an option to use GitHub Codespaces (devcontainer) for building, and notes about OpenGL support for native debugging builds. Exact origin dates and individual author timeline are not stated in the repository documentation I consulted.

What N64Wasm supports

  • Web browsers supporting WebAssembly and WebGL (desktop and many modern mobile browsers)
  • Native Windows build (Visual Studio project included; requires OpenGL and listed libraries)
  • Gamepad controllers (tested with Xbox and PS4 controllers according to the README)
  • Self-hosting: can serve the dist/ folder from any static webserver and host ROMs locally or via a server component described in the repo

Download and availability

OFFICIAL DOWNLOADS

Get N64Wasm

Official downloads and release artifacts are provided from the project's GitHub repository Releases page. Prebuilt files for browser deployment also appear in the repository's dist/ folder and the author hosts a live demo page for testing.

Get N64Wasm ↗

DOCUMENTATION

Official documentation

Read the official configuration, compatibility, and troubleshooting material before changing advanced options.

Read official documentation ↗
Broken or missing download? Emulator projects move and official links sometimes change. Please contact Retro Replay so the source can be verified and updated.

N64Wasm setup guide

Setup note: The README and project documentation provide specific build and hosting steps. Below is a practical, emulator-focused setup guide assembled from the project's build notes and hosted demo documentation. Follow the build steps exactly (Emscripten version and DevContainer/Codespaces are referenced by the project).

  1. 1) Try the hosted demo (quick test): Open the author's hosted demo to verify behaviour in your browser (the repository and README point to a live demo hosted by the author). This is the fastest way to confirm the emulator works in your environment before building or self-hosting.
  2. 2) Get the source: Clone the official GitHub repository (nbarkhina/N64Wasm) so you have the full source, dist/ assets and build scripts. Use git clone to fetch the repo to your build machine.
  3. 3) Build the web (WASM) version using Emscripten: Install Emscripten and activate the version the project references (the README specifies Emscripten 2.0.7). In a Linux/WSL environment: clone emsdk, run ./emsdk install 2.0.7 and ./emsdk activate 2.0.7, then source ./emsdk_env.sh. From the N64Wasm repo, run make (the project Makefile will produce n64wasm.js and n64wasm.wasm into the dist/ folder). If you prefer, use the provided devcontainer/Codespace which already contains required build tools and simply run make there.
  4. 4) Serve the dist/ folder from a static web server: After building, the dist/ folder contains the web frontend and the generated WASM/JS files. Host that folder with any static web server (nginx, Apache, http-server, or similar). Many browsers restrict filesystem access for local file:// pages; serving over HTTP(S) avoids those restrictions and ensures WASM and fetch operations work reliably.
  5. 5) Add ROMs and configure a local ROM list: To host your own ROMs, create a roms/ directory inside dist/ and copy legal ROM files you own (the README shows .z64 and .v64 examples). Edit romlist.js in the dist/ folder and populate the ROMLIST array with {url: 'roms/game.z64', title: 'Game Title'} entries to make games available through the UI. The emulator does not include ROMs or firmware — you must supply them yourself.
  6. 6) Optional: Cloud save states / server component: The project documents an optional cloud save states feature and includes a server folder. If you want cross-device save syncing you need to host the project's server component and configure client-side settings as described in the README. Review the repo’s server/ documentation for details on setup, authentication, and storage.
  7. 7) Native Windows/debug build (optional): The source tree contains a Visual Studio project (N64_Wasm.vcxproj) and the README documents native build prerequisites (SDL2, SDL2_image, SDL2_ttf, GLEW and an OpenGL-capable GPU). For debugging you can build the native Windows project in Visual Studio 2019; the README notes Release mode runs much faster than Debug for performance testing.
  8. 8) Controller, input and performance tips: The README states gamepad support (Xbox/PS4 tested). Use wired or native OS-supported controllers for best compatibility. For browser builds, ensure your browser supports WebAssembly, WebGL, and that site permissions allow Gamepad API and audio playback. Performance may vary by device—use the software renderer option if hardware rendering causes issues, and prefer Release builds for native builds.

Software reminder: The project does not include commercial game ROMs, BIOS, or firmware. You must supply any ROMs you wish to run and comply with copyright and jurisdictional rules. The build steps require Emscripten (specific version referenced by the repo), and native builds require SDL2, GLEW and other libraries as documented in the repository.

Sources and further reading

Detailed guides and tutorials

Explore step-by-step guides for N64Wasm as they are published.