Raylib · WebAssembly · runs entirely on your machine
GOLDENWEB64
A native port of a classic 1997 N64 first-person shooter, compiled to WebAssembly with Raylib and running in this tab. Bring your own ROM — the site ships the engine only.
Checking your browser…
Load your ROM
Select your US GoldenEye ROM in .z64, .v64,
or .n64 format (exactly 12 MB). It is stored
only in this browser session/storage and is never
uploaded. When opened directly as a file, select it again next time.
Controls
Movement
- Move
- WASD
- Look
- Mouse
- Crouch
- C
- Lean (while aiming)
- Q / F
Combat
- Fire
- Left-click / L Shift
- Aim (hold)
- Right-click / R Shift
- Reload
- R
- Use / interact
- E
- Switch weapon
- Mouse wheel
System
- Watch / pause
- Esc / Tab
- Mute audio
- M
- Help (to console)
- H
- FPS overlay
- Off by default on web
Gamepad
Plug in a browser-compatible controller — the browser exposes it and the engine maps it automatically. Defaults:
- Fire / Aim
- RT / LT
- Jump
- A
- Reload / Use
- B
- Next weapon
- Y
- Prev weapon
- R3 (right-stick click)
- Crouch
- L3 (left-stick click)
- Watch / pause
- Start
About this demo
This C port uses the completed decompilation and Raylib, compiled to a single WebAssembly binary. It runs the full solo campaign — pick a ROM and play from the first mission.
What's different from the N64 original
- Mouse-and-keyboard aiming — free-look with the mouse, instead of the original's single analog stick.
- Auto-aim assist is on by default (toggleable in the desktop launcher).
- Lights shoot out consistently — the shoot-out-lights hatch is on by default.
- The diagnostic FPS overlay is disabled by default on web to preserve the original HUD and reduce work.
- Faithful HUD — the aim reticle appears only while aiming, exactly like the N64; there is no persistent crosshair and no minimap.
Browser & privacy
- Needs WebGL 2, WebAssembly, and browser file storage. A current desktop Chrome, Edge, Firefox, or Safari is recommended.
- When served over HTTP(S), your ROM can stay in the browser's Origin-Private File System; it is never uploaded. Direct-file mode keeps it in memory and asks again next time.
- Saves use IndexedDB when the browser permits it. If local-file storage is unavailable, the page clearly switches to session-only saves instead of blocking the game.