Guards, doors and props moved at the 60 Hz tick inside a 90 Hz picture. Each object's joint matrices are now blended, keyed by (Model*, joint) from a game-thread snapshot and rebased onto the new camera; a chr blends together with its held weapons and hat; room-origin changes, failed gates and split-screen stay exact. The CPU-projected sky is re-projected to the in-between camera. Destroyed objects (world-space matrices) stay exact. Port layer only; porting-notes D46.
GoldenEye 007 PC Port
The original Nintendo 64 GoldenEye 007 (1997) as a native game for Windows, Linux, Steam Deck and macOS (Apple Silicon).
The GoldenEye 007 PC Port is a native port built from the game's own reconstructed source code (the GoldenEye 007 decompilation), in the same family as the Perfect Dark PC port. It is not an emulator: the game is compiled for your PC and runs from your own ROM, with native widescreen, 60 fps or more (up to 240 on fast displays), mouse and keyboard or a modern controller, split-screen for up to 4 players, and an in-game options menu.
Download the latest release
This repository and its downloads contain no ROM data and none of the original game assets. You need your own GoldenEye 007 ROM (US version) to play.
Recorded in the port: the Facility intro, the Archives, the Dam
sniper rifle, Silo, a 2-player match and the Dam ending.
Table of contents
- Requirements
- Quick start
- Controls
- What this port offers
- FAQ
- Status
- Roadmap
- Building from source
- Documentation
- Contributing and forking
- Credits
- Legal
Requirements
- Windows: Windows 10 or 11, 64-bit. Nothing to install: the download carries its own runtime libraries and the one-time asset tool.
- Linux and Steam Deck: 64-bit x86 Linux with glibc 2.31 or newer (Ubuntu 20.04+, Debian 11+, Fedora 32+, SteamOS). SDL2 is bundled.
- macOS (experimental): an Apple Silicon Mac (M1 or later) on macOS 14 or newer.
- Graphics: OpenGL 3.0 (practically any PC GPU from the last fifteen years). A 2011 laptop with Intel HD 3000 graphics holds 60 fps.
- Input: keyboard and mouse, or an Xbox, PlayStation, Switch or other SDL-supported controller; split-screen needs one controller per extra player.
Quick start
- Download the build for your system from Releases and extract it. On Windows, don't run the exe from inside the zip.
- Make a
data/folder next to the executable and put your ROM in it asge007.ntsc-final.z64(US version; check your ROM). - Launch the game. The first start takes a few extra seconds while it
prepares the game files from your ROM.
- Windows: if SmartScreen appears (the exe isn't code-signed), click More info, then Run anyway.
- Steam Deck: add the executable as a non-Steam game. It starts in native 1280x800 fullscreen.
- macOS: run
xattr -dr com.apple.quarantine <folder>once in Terminal, then start./ge007.aarch64(see the macOS setup details).
- Play. F10 (controller: Select) opens the options menu.
Controls
| Action | Keyboard / mouse | Controller |
|---|---|---|
| Move / strafe | W A S D |
Left stick (or D-pad) |
| Move / turn | Arrow keys | - |
| Aim / look | Mouse | Right stick |
| Fire | Left mouse | Right trigger |
| Aim mode | Right mouse / LShift |
Left trigger / LB |
| Use / interact | E |
A |
| Reload | R |
X |
| Crouch (toggles) | LCtrl |
Left or right stick click |
| Cycle owned gadgets | Watch inventory | B |
| Next weapon | Mouse wheel down / Q |
Y |
| Previous weapon | Mouse wheel up | - |
| Start | Enter / Tab |
Start |
| Options menu | F10 |
Select |
Everything is rebindable in the options menu. Rare's Xbox control styles are presets, and the Original control style turns your pad into an N64 controller. The user guide covers control styles, rebinding and split-screen.
What this port offers
- Real 60 fps, not a speed hack. The game's logic counts time in 60 Hz ticks. On the N64 it only drew a frame every 2–3 ticks (20–30 fps); here it draws every tick, so you get 60 fps with the game, physics and AI running at the N64's own speed. There is no CPU overclock or frame-skip patch involved, and the few spots in the game that behaved differently at one tick per frame are fixed to match the N64. Above 60 (90 to 240, or Auto), extra frames are blended between ticks for smoothness, at the cost of one tick of latency.
- Aiming that doesn't feel floaty. Aim style picks the behavior. Centered pins the crosshair in the middle, and the mouse or the right stick turns the camera directly, like a modern shooter. Original keeps the N64's crosshair that moves a little before the camera follows. The stick has separate horizontal and vertical sensitivity, separate deadzones for each stick, look smoothing and a trigger threshold. The mouse has raw input, an aim curve, smoothing, and separate turn and aim-mode sensitivities.
- Dual analog and mouse and keyboard, built in. No emulator remapping. The right stick looks, the triggers fire and aim, and every button is rebindable, for the keyboard, the mouse and each controller. Rare's Xbox control styles are presets. If you want the N64 exactly, the Original control style turns the pad into a strict virtual N64 controller.
- The whole game. All 20 solo missions and the credits, with every difficulty, 007 mode and the cheats, plus split-screen multiplayer for up to 4 players. Your emulator saves (1964, Project64) load directly.
- Faithful by construction. It is the game's own reconstructed source compiled natively, not an emulator and not a remake, so levels, guards and weapons behave the way the N64 cartridge does. The few changes to game code either keep that N64 behavior where the PC would otherwise differ (frame rate, widescreen, compiler) or are opt-in extras, and the Original N64 display preset switches every visual improvement off at once.
- Modern display options: native widescreen and ultrawide at any aspect ratio, high resolutions, MSAA, adjustable FOV and draw distance, and HUD scaling.
- Windows, Linux, Steam Deck and (experimental) macOS from one download page, with an in-game options menu on F10 or the pad's Select button.
Bots, online play, mod support and PAL/JP ROMs are on the Roadmap.
The user guide has the full feature list.
FAQ
Is this an emulator? No. The game's code is compiled natively for your PC, the same way the Perfect Dark PC port works. Graphics go through OpenGL, and the N64 hardware is replaced by a small port layer.
Do I need the game? Yes. You need a ROM of the US (NTSC-U) version, dumped from a cartridge you own. PAL and Japanese ROMs are planned.
Does it play like the original? Yes. Levels, guards and weapons run on the game's own logic at its original speed. The Original N64 display preset and the Original control style give you the N64 look and controls whenever you want them.
Does it run on the Steam Deck? Yes. The Linux download is the Deck build: add it as a non-Steam game and it starts in native 1280x800 fullscreen at up to 90 fps, with the options menu fully usable on the controller.
Does it support ultrawide and high refresh rates? Yes. Native widescreen works at any aspect ratio, including ultrawide, and the frame rate goes up to 240 fps on fast displays (Auto matches your monitor).
Is there online play, bots or mod support? Not today. LAN play, bots and mod support are on the roadmap as opt-in extras.
Can I use HD textures? Not in this release. A texture-pack loader is planned for 1.0.
How is this different from the XBLA recompilation projects? Those projects statically recompile the unreleased Xbox 360 remaster, a separate version of the game. This project ports the original N64 game from its source code. See About the project.
Can I keep my saves?
Yes. Your progress is a plain file, data/ge007.eep. Saves from 1964 or
Project64 load directly (see using an emulator save),
and updating keeps your save and settings (see updating).
Was AI used to build it? Yes. The port was developed with AI coding agents directed by one maintainer. Releases are checked by comparing captured frames from all 21 solo levels on Windows, crash sweeps on four platforms, and play-testing. How it was made has the full story.
Something went wrong.
See Troubleshooting, or
open an issue
with ge007.crash.log, your OS and GPU. Never attach the ROM.
Status
v0.6.0 is the current release. The whole campaign, the end credits and split-screen multiplayer are playable on Windows, Linux, Steam Deck and macOS. The project is pre-1.0, so expect new features and the occasional change between versions. Known issues and workarounds are in the known-issues table; About the project has the testing details and the release history.
Roadmap
The goal is a feature-complete, faithful port: every mode and region the N64 cartridge ships, with modern options on top that can always be switched back to the original look and feel. Next up:
- PAL and JP ROM support in the release packages (#85).
- A notarized macOS build, Intel Macs and ARM Linux.
- A texture-pack loader for HD texture packs.
- The 1.0 sign-off: a full campaign playthrough and a split-screen session on every platform that ships.
After 1.0, opt-in extras that are always off by default: LAN play, bots,
co-op and enhanced visuals. The full tracker is
docs/ROADMAP.md. If something matters to you, open an
issue; it helps prioritize.
Building from source
You need CMake 3.16+, a C/C++ toolchain, SDL2, zlib, OpenGL and Python 3, plus
a one-time asset extraction from your ROM. On Windows, build in the MSYS2
MINGW64 shell; on macOS, use Homebrew's GNU gcc.
git clone https://github.com/jkdansereau/goldeneye-pc-port.git
cd goldeneye-pc-port
# extract assets from your ROM first (see docs/building.md), then:
./build-pc.sh ntsc-final
docs/building.md has the full walkthrough for Windows,
Linux and macOS.
Documentation
The docs are also published as a site: https://jkdansereau.github.io/goldeneye-pc-port/.
| Doc | What's in it |
|---|---|
| User guide | Controls, settings and files, ROM check, macOS setup, updating, emulator saves, troubleshooting. |
| About the project | Release history, testing status, how it was made, how it works. |
| Roadmap | Open work and the known-issues table. |
| Building | Full build and asset-extraction guide. |
| Internals | Architecture and the software RSP. |
| Porting notes | The recurring N64-to-PC bug classes, with fixes. |
| Security and Fidelity | What a release installs, and how closely it tracks the original game's logic. |
docs/dev/ |
The engineering record: the finding log and development process. |
Contributing and forking
Issues and pull requests are welcome, and so are forks: the port layer, build
system and tools_pc/ are MIT-licensed and exist to be extended. Read
CONTRIBUTING.md first: it has the ground rules that keep
the port faithful, what to check before a pull request, and what a fork is
asked to keep.
Credits
This port is a thin layer on a large amount of other people's work.
Prior work it is built on
- The GoldenEye 007 decompilation, years of effort by Larry Ficken ("kholdfuzion") and the project's contributors; plus zoinkity's GoldenEye documentation, which the decomp started from. This port is a fork of that repository.
- The Perfect Dark PC port
(Ryan Dwyer and contributors), the reference architecture for this port and
the source of the
fast3dsoftware RSP. - The Perfect Dark decompilation, the sibling decomp the PD port is built on.
- Carnivorous: author of the Mouse Injector input plugin for 1964 (the "GEPD Edition" bundle). Its mouse-aim behaviour for GoldenEye/Perfect Dark is what the in-game GEPD-style aim mode is modelled on; the implementation here is an independent reimplementation of that behaviour, not derived code. Thanks also to Rice and schibo of the 1964 team for the emulator it shipped with.
Vendored / adapted code
port/fast3d/: the software RSP, adapted from the PD port. It originates with the Ship of Harkinian / libultraship fast3d (© Emill, MaikelChan; MIT, seeport/fast3d/LICENSE.txt), which itself descends from sm64-port's fast3d and audio mixer.port/fast3d/glad/: OpenGL loader generated by glad (David Herberth, MIT).- The decompilation toolchain:
ido-static-recomp(Emill / decompals),qemu-irixandrabbitizer(n64decomp). - SDL2 and zlib.
Methodology
- Chris Lewis, "Decompiling a Nintendo 64 Game in 84 Days" (the Snowboard
Kids decompilation write-up), the agent-workflow practices in
docs/dev-process.mdare adapted from it.
Contributors
- dolent (#120, #121, #122, #123), italoarruda (#106, #107, #108, #109), danturn (#95 macOS, #96), Julio C. Rocha (#88 macOS Intel groundwork), f1zz1ec0ke (#137 frame interpolation), JosephAHK (#133), and MST246 (the #125 investigation), plus everyone who filed issues.
Consultation
- f1zz1ec0ke (GitHub): LLM consultation on model tuning, agent harnesses, and agentic strategy throughout the port's development (and the author of the #137 frame-interpolation design noted above).
The models and tools used to develop the port are listed in About the project.
Legal
This is a non-commercial fan preservation/research project, in the same category as the many other N64 decompilation and native-port repositories on GitHub. It is not affiliated with, endorsed by, or sponsored by Nintendo, Rare, Microsoft, Valve, Apple, MGM, Danjaq, EON Productions, or any rights holder in GoldenEye or James Bond. "GoldenEye 007", "007", "James Bond" and related marks belong to their respective owners; they are used here only to say which game this port runs. No official logos, box art, or marketing assets are used.
What the download contains
- The engine: the
port/layer plus the compiled decompilation. - Runtime libraries: SDL2 (and SDL3 on macOS) and zlib under the zlib license, the MinGW runtime on Windows, and the GCC C++ runtime on macOS (GPL-3.0 with the GCC Runtime Library Exception); their licenses travel in the download.
- The one-time asset tool, which reads your ROM on your machine.
It contains no ROM and no game assets of any kind. Any build, yours or a release, is useless without a ROM you supply.
What happens on your computer
Textures, audio, models, level data and in-game text are extracted from a ROM
you already own, on your machine, the first time you start the game. The
port has no network access unless you turn on the opt-in Check for updates option (Game.CheckUpdates, off by default). When on, it makes one HTTPS request per launch to GitHub's releases API to look for a newer release (GitHub sees the request and your IP, as with any web request), never downloads or installs anything, and never uploads anything.
This repository
The repository is a fork of the public
GoldenEye 007 decompilation and inherits
its contents (see NOTICE for what that includes). The few
port-specific edits inside the decompiled code are marked #ifdef PORT.
The project mark / favicon is original generated art -- a generic version of the game's default aim cross (a circle with N/S/E/W lines crossing its edge), no game screenshots or logos in it.
Your part
- Only use a ROM that you dumped from a cartridge you own.
- Never ask for, link to or share ROMs or extracted game files in issues, discussions or pull requests.
If you are a rights holder with a concern, open an issue and it will be addressed.
License
The original work in this repository, the port layer (port/), the PC build
system, tools_pc/, and the documentation, is released under the MIT License;
see LICENSE. Everything inherited from the upstream decompilation
is covered by NOTICE, not by that license.
v0.6.0 · 2026-10-13 · Releases