Files
goldeneye-pc-port/.github/release-notes.md
T
James Dansereau cdf43d0140 v0.6.0: license texts in every download; README/NOTICE wording pass
- The Windows and Linux bundles shipped without the GCC runtime and SDL2
  license texts when the build machine lacked them (CI's MSYS2 has no
  share/licenses/gcc-libs; CI's Linux image has no dpkg). bundle-win.sh,
  bundle-linux.sh and package-macos.sh now fall back to in-tree copies:
  tools_pc/dist/GPL-3.0.txt, GCC-RUNTIME-EXCEPTION.txt, SDL2-LICENSE.txt.
- NOTICE / README: say the repository and downloads carry no ROM data or
  original assets and that the C source is a reconstruction (not "no
  Nintendo code"); describe the license-text sources.
- README: "What this port offers"; split-screen for up to 4 players; the
  few game-code changes keep N64 behavior or are opt-in; neutral wording
  for the comparison with the XBLA recompilation projects (rows about their
  status and motives removed); verification approach stated; release notes
  drop the 165/240 testing caveat.
2026-10-13 09:58:48 -04:00

13 KiB

GoldenEye 007 PC Port — v

2-player split-screen multiplayer in the port The PC options menu: custom crosshair colour sliders

Platforms: Windows x86-64 and Linux x86-64 (including Steam Deck), plus an experimental macOS Apple Silicon download (not notarized; see Running it). Region: NTSC-U (US) only. See Known issues.

Highlights

This release is v0.5.0 plus frame rates above 60, an experimental macOS port and a batch of fixes.

  • Frame rates above 60. The Frame rate cap (Video.FpsCap) now offers 90, 120, 144, 165 and 240, and an Auto setting that matches your display's refresh rate (up to 240). Auto is the default on fresh installs; an existing ge007.ini keeps its value. Extra frames are blended between game ticks, so the game still simulates at its original rate. It costs one game tick of extra latency, does nothing on a 60 Hz display, and the Original N64 display mode caps at 60. This is my rework of f1zz1ec0ke's #137.
  • macOS on Apple Silicon (experimental). There is now a macos-arm64 download (or build from source; see docs/building.md). Based on danturn's #95. A 21-level campaign sweep and live sessions ran without crashes on one M3 Mac, but it has not had the wider testing the Windows and Linux builds have, and the download is not notarized. Test reports are very welcome.
  • Fixes you can see: geometry vanishing when you stand against a wall (#150), the Cradle catwalk shadow flicker, stale pixels beside the native-widescreen picture on front-end screens, and the first launch opening on the wrong monitor (#151).
  • Crash fixes: the Linux end-credits crash (#152) and a crash when a guard spawned wearing a hat (#153, #156).
  • Original controls are now original (#145, #149). With Control style set to Original, a gamepad behaves as an N64 controller: South is A, West is B, and the game decides what each button does, so B opens a door or reloads (not both), A changes weapon, and B goes back in menus. Invert look works in every original style and stays in sync with the watch's Look up/down.
  • Mission timer (#144), the file-select crest drawing on a dark square (#146), and a fix for a Windows exit crash.

Checked on PC at 120 Hz with VSync on a G-Sync display, and on the Steam Deck at 90 fps.


What's new

Frame rate

  • Auto, 90, 120, 144, 165 and 240 join 30 and 60 in the F10 Frame rate cap row. Above 60 the port draws extra frames between game ticks by blending the previous and current frame. It only applies when the display is faster than 60 Hz; on a 60 Hz display nothing changes.
  • A fresh install uses Auto, so a 90 Hz screen runs at 90, a 144 Hz monitor at 144 and a 240 Hz monitor at 240 (faster displays hold at 240). The Original N64 display mode sets the cap to 60.
  • A fast camera turn, or a large change in what is on screen, falls back to a full frame instead of a blend.
  • The Steam Deck at 90 is good on most levels (see the known issues).

macOS (Apple Silicon, experimental)

  • On arm64 macOS the N64 address window sits at a high host base (set automatically by CMake). The 64-bit address fixes this needed (textures, input, animation and multiplayer crashes) are in the shared code and have no effect at base 0 on Windows and Linux.
  • There is a macos-arm64 download, or build from source with Homebrew's GNU gcc. The x86_64 macOS code (Julio C. Rocha's #88) is in the tree but was never verified on Intel hardware.

Controls

  • Original control style = an N64 controller (D643). Every press sends the real N64 button in levels, menus, the watch and the tank; no port-only actions are added. Default layout: South = A, West = B, right trigger = Z, left trigger / RB = R, LB = L, right stick = C-buttons, D-pad and Start as is. Each N64 button can be moved per player in ge007.ini (Input.N64Pad.A = a, Input.N64Pad2.B = x, ...). Input.N64StickFeel = 1 (default in Original) gives the N64's linear stick range; 0 keeps the previous feel. The Modern style and keyboard/mouse are unchanged.
  • Invert look reaches every original style (D605) and, in Original, is the same setting as the watch's Look up/down (D645).

Settings and diagnostics

  • Mission timer (D606, #144): an optional always-visible timer, off by default (F10).

  • F10 dropdowns stay inside the settings box instead of covering the help text (D646).

  • Windows: per-monitor DPI awareness, so fullscreen on a scaled 4K display is native resolution (D626); exclusive fullscreen uses the desktop mode (D639).

  • The old front-end Velocity pointer mode is removed; the retired ini keys are ignored quietly (D574).

  • The Linux/macOS update check no longer fails on a response over 64 KB (D575).

  • Every log line is also written to ge007.log next to the ini; the previous run is kept as ge007.prev.log (D576).

  • F10 slider labels no longer end in ".." at HUD scale 150 (D577).

  • The crosshair look (colour, size, style, alpha, health colour) is your preference and is no longer reset by the Display mode presets (D440).

  • The sound-effect and text-bank pointer guards check the real address range, so they work at any address base (D573, #108 with italoarruda).


Install and upgrade

Downloads

File Platform
goldeneye-pc-port-<version>-win64.zip Windows x86-64
goldeneye-pc-port-<version>-linux-x86_64.tar.gz Linux x86-64 (incl. Steam Deck)
goldeneye-pc-port-<version>-macos-arm64.tar.gz macOS Apple Silicon, experimental

Each contains the engine executable, a README, license texts, and the one-time asset tool. No ROM, no game assets. The Windows bundle carries its runtime DLLs and the Linux bundle carries SDL2, so nothing needs to be installed first. The Linux bundle runs on glibc 2.31 or newer (Ubuntu 20.04+, Debian 11+, SteamOS). The macOS bundle carries SDL2 and the C++ runtime and needs an M1 or later Mac on macOS 14 or newer.

Running it

You need your own GoldenEye 007 N64 ROM (US version, .z64).

  1. Unpack the archive.
  2. Make a data/ folder next to the executable and put the ROM in it, named ge007.ntsc-final.z64.
  3. Run the executable from that folder. The first start takes a few extra seconds while it generates its asset files from your ROM.

Updating from an earlier version: unpack into a new folder and copy your ROM, ge007.eep (your progress) and ge007.ini (your settings) into its data/ folder. Don't copy the old pcmodels-* / pccg-* folders: the new version makes its own.

macOS (experimental): the app is not signed with a Developer ID or notarized, so Gatekeeper blocks a downloaded copy. After unpacking and before the first launch, run this once in Terminal, then start ./ge007.aarch64 from the folder:

xattr -dr com.apple.quarantine goldeneye-pc-port-<version>-macos-arm64

Or download it in Terminal, which skips the block entirely (curl does not mark the file for Gatekeeper):

curl -L https://github.com/jkdansereau/goldeneye-pc-port/releases/download/v<version>/goldeneye-pc-port-<version>-macos-arm64.tar.gz | tar xz

Without Terminal: after the first launch is blocked, open System Settings → Privacy & Security and click Open Anyway next to the ge007.aarch64 message.

I have only run it on one M3 Mac, so please report what Mac and macOS you tried and what happened.

Steam Deck: do the steps above on the Deck, then add the executable as a non-Steam game. The options overlay opens with Select and is fully controller-driven.

Full steps, controls and troubleshooting are in the bundled README.md.


Known issues

Issue Impact Workaround
On the Steam Deck at 90 fps, firefights in the centre of Bunker 1 and 2 can drop several fps Performance, Deck only Set the frame cap to 60 for those levels
Jungle can feel slightly less smooth at 90 fps than other levels Feel Frame cap 60
Cradle's turret explosions may draw wrongly Cosmetic; reported, not yet investigated None
After alt-tabbing away, the picture can look hazy until it settles; fast repeated alt-tab is wonkier and takes longer Cosmetic, Windows It recovers on its own; alt-tab again or give it a couple of seconds
macOS: the end credits may crash Ending only, macOS only Your progress is already saved by then
macOS (Apple Silicon) is experimental, tested on one Mac, and not notarized Platform Run xattr -dr com.apple.quarantine <folder> before the first launch; reports welcome
PAL and JP ROMs aren't supported in release packages NTSC-U only Use an NTSC-U ROM. Both regions convert, build and boot from source; packaging is still open
Changing aspect ratio inside a level can briefly glitch the gun/hand model, rarely Cosmetic, one-off Change the ratio from the front-end PC Options, or accept it
Saves from v0.4.0 and earlier can hold fake unlocks from All unlocked Save data Not repaired automatically. Since v0.5.0 the option never writes the save; keep a backup of data/ge007.eep from before you used it
The first frame of a level takes a little longer while its textures upload Brief FPS-counter dip None needed
Far objects almost fully in fog are now hidden as on the N64, except in widescreen where a faint distant building edge can still show (e.g. Surface's dish from the start area); 4:3 matches the N64 Cosmetic Higher Draw/LOD distance shows more

Faithful original-game quirks are not port bugs. The full list, with workarounds, is the known-issues table.


Fixes and changes, with finding labels

  • Frame interpolation above 60 fps (D578, rework of #137). 120 fps with VSync on G-Sync/VRR: black frames and OLED flicker fixed (D583). Steam Deck 90 Hz pacing (D583).
  • #150 geometry disappearing when too close to a wall: the near-plane clip now cuts at the camera plane (D579).
  • Cradle catwalk shadow flicker: a D579 regression, fixed (D584).
  • Native-widescreen stale pixels on front-end screens: the canvas sides are cleared (D579 follow-up).
  • #151 the first launch opens on the primary monitor (D581).
  • #152 Linux end-credits crash: a garbage text pointer is rejected (D582).
  • #153, #156 hat-spawn crash: the object record type and the end-of-list marker were read from the wrong byte on a little-endian machine, so the search could run past the end of the list (D580).
  • #108 SFX / text-bank pointer guards (D573).
  • #145 / #149 Original control style as an N64 controller (D643); Invert look in the original styles (D605, D645).
  • #144 mission timer (D606).
  • #146 file-select crest on a dark square: 4-bit IA textures now decode as the N64 does (D644).
  • Exit crash (BSOD 0x119) on some Windows GPUs: the GL context and window are released before the process exits (D632).
  • Windows DPI awareness (D626), exclusive fullscreen mode (D639), F10 dropdown placement (D646).
  • Velocity removal, update-check fix, ge007.log, HUD-150 sliders, preset scope (D574-D577, D440).
  • macOS arm64: one address-model header, the 64-bit pointer fixes and a display-locked tick (D586, D591, D594, D595, D599-D604, D607-D613).

Verification

Windows: the 21-level reference-frame sweep passes (Streets sits at the edge of its tolerance and flips run to run with or without this release's changes). Steam Deck and macOS: all 21 levels load, play and quit without a crash (their reference frames are not yet comparable, so no pixel check). The fixes above were also checked by playing on Windows, with the original controls compared against the issue reports rather than an N64 pad.

Thanks

f1zz1ec0ke (#137, the frame-interpolation design this release reworks), danturn (#95, macOS), Julio C. Rocha (#88, the first macOS groundwork), italoarruda (#108), dolent (#120-#123, already in v0.5.0), plus reporter credits on the issue numbers named above.

Verify the download

sha256sum -c goldeneye-pc-port-<version>-win64.zip.sha256
sha256sum -c goldeneye-pc-port-<version>-linux-x86_64.tar.gz.sha256
shasum -a 256 -c goldeneye-pc-port-<version>-macos-arm64.tar.gz.sha256   # macOS

Source & docs

https://github.com/jkdansereau/goldeneye-pc-port, built on the GoldenEye 007 decompilation, with its architecture modelled on the Perfect Dark PC port. Non-commercial fan preservation/research project; not affiliated with any rights holder. AI disclosure: built through agentic AI coding (Claude Code + a local open-weight model), directed by one person in their spare time. See the README's How it was made section for the full account.