github jkdansereau/goldeneye-pc-port v0.5.0
GoldenEye 007 PC Port v0.5.0

5 hours ago

GoldenEye 007 PC Port — v0.5.0

Platforms: Windows x86-64 and Linux x86-64 (including Steam Deck); no macOS or ARM builds yet.
Region: NTSC-U (US) only. First release since v0.4.0 — it includes
everything staged as v0.4.1, which was never published on its own.

What's new

  • 2-4 player split-screen. Pads per player, on every map, each seat keeping its own controls.
  • One options menu. The F10 overlay and the file-select PC Options entry are now the same menu — checkboxes, sliders and dropdowns, laid out like the Perfect Dark PC port's — and the game's own crosshair doubles as the mouse pointer.
  • The game's N64 control styles, per player. Original (the game's own styles 1.1-2.4) or the port's Ext, chosen per seat and saved with the Bond file.
  • Emulator saves load directly. Copy a Project64, mupen or 1964 save in as data/ge007.eep and it is converted on first launch.
  • Fog and haze closer to the N64. Ground fog no longer chunks away tile by tile, the haze around Bond stays steady, and a new Fog distance setting (100% = N64) applies live alongside Draw distance.
  • Fixes you can see. The Dam ending camera swivels onto Bond as on the N64, and rockets no longer pass through the ground.
  • Also since v0.4.0: controller presets and rebinding, PlayStation/Nintendo button names, master volume and audio-device selection, a steady 60 fps on low-end GPUs, and fixes for reported issues: fire rate (#114), tank-crush sound loop (#115), tank movement (#116), weapon sway (#117), recoil on some GPUs (#118) and light fixtures that didn't react to shots (#119).
  • More settings. Always-on and custom-colour crosshair, crosshair opacity and colour-by-health, fullscreen, center window, scalable HUD, and an optional update check (off by default).

Played live on Windows and Steam Deck: campaign spot-checks, 2-4 player
split-screen and controller-only sessions.

Install

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

No ROM or game assets are included. The bundles carry everything else they
need (Windows runtime DLLs; SDL2 on Linux, glibc 2.31 or newer — Ubuntu 20.04+,
Debian 11+, SteamOS), so nothing has to be installed first.
Steam Deck: same steps on the Deck, then add the executable as a
non-Steam game; the options overlay opens with Select and is fully
controller-driven.
Upgrading from an earlier version: unpack into a new folder and copy your
ROM, ge007.eep (progress) and ge007.ini (settings) into its data/ — don't
copy old pcmodels-* / pccg-* folders. Full steps, controls and
troubleshooting are in the bundled README.md.

Known issues (the two that matter)

  • NTSC-U ROMs only. PAL and JP regions convert, build and boot from source, but aren't in the release packages yet.
  • Saves from v0.4.0 and earlier that used All unlocked can hold fake unlocks. Not repaired automatically; keep a backup of data/ge007.eep from before you used it. The full table, with workarounds, is the known-issues table in ROADMAP.md.

Thanks

Outside contributions merged for this release:

  • dolent (PRs #120–#123),
  • MST246 (#125 draw-distance investigation),
  • italoarruda (#109 gamepad-preset ideas),
  • TenebrusoM (DexDrive / the D514 save-format sample)

Verify the download

sha256sum -c goldeneye-pc-port-0.5.0-win64.zip.sha256
sha256sum -c goldeneye-pc-port-0.5.0-linux-x86_64.tar.gz.sha256

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.

Full notes: every change with finding labels (Dxxx), detail per area, and verification

What's new (detail)

Options menu

  • Six sections in the Perfect Dark port's order: Video, Audio, Mouse,
    Controller, Key Bindings and Game. Display mode is a dropdown; Backspace goes back.
  • The F10 overlay and FPS counter are the same on-screen size in the front end
    and in a level, and Game.HudScale scales them with the in-game HUD.
    Sliders and arrows are drawn smooth at any window size.
  • The OS cursor stays visible over the overlay (no main-menu flicker),
    right-click goes back, and the tip follows the hovered row.
  • Clearer wording: 27 menu-wording edits, sliders with real units (percent,
    frames, seconds, pixels), wrapped tips, one Key: Action hint style and
    consistent names (Original / Extended, "Original layout"). Skip intro and
    All unlocked are no longer marked experimental, and All unlocked applies
    live. The game's own Look up/down row is gone; use Invert look on the
    Mouse and Controller pages.

Controls

  • Control style: Ext (this port's scheme, unchanged) or Original
    (the game's N64 styles 1.1-2.4), chosen per seat.
  • The Xbox-release presets (1.1 Jinx, 1.2 Christmas, 1.3 Frost, 1.4 Elektra)
    and Custom rebinding carry over. Preset names refer to the Xbox
    release's control styles; this project is not affiliated with Microsoft or Rare.
  • The right stick aims and the D-pad strafes, as on the N64; the Xbox
    release's "left stick aims the crosshair" and "D-pad copies the left stick"
    behaviours are not reproduced.
  • New profiles default to Crouch Toggle and Look ahead off (it fights mouse look
    on PC). Existing untouched empty save folders get the same on first play;
    played or customised profiles are not changed.

Saves

  • An emulator-format data/ge007.eep is converted on first launch (the
    original is kept as ge007.eep.emulator.bak). The converter eep_convert.py still does explicit two-way conversion.

Picture and settings

  • Fog and near-plane clipping closer to the N64 (details under the technical
    section below). Forced aspect ratios letterbox/pillarbox without re-cropping
    the play area.
  • Draw and LOD distance default to 2.0x (N64 = 1.0x), stick deadzone to 25%,
    mouse sensitivity maximum is 4x. FOV is vertical degrees, 30-90, with
    60 = the N64 view. "Guard AI uses full wide view" is now Gameplay view
    area
    (Original / Extended). Old values migrate once; existing ge007.ini
    files still load.

Window and updates

  • The title bar is static (the FPS readout is still in the F10 overlay) and
    the window/taskbar icon is a new project mark.
  • Check for updates (Game, off by default): when on, one HTTPS request
    to GitHub per launch and an "Update available" row linking to the releases page.

Also new since v0.4.0

  • Split-screen multiplayer for 2-4 players, played live in 2P on every
    multiplayer map and in 4P on Temple.
  • Controller presets and rebinding, PlayStation and Nintendo button names,
    master volume and audio-device selection.
  • A steady 60 fps on low-end GPUs (tested on an Intel HD 3000 laptop).
  • Fidelity fixes checked against the N64 game: AI visibility at long draw
    distances, sniper zoom, turret pacing, Dam/Caverns water, weapons.
  • Fixes for reported issues: fire rate (#114), the tank-crush sound loop
    (#115), tank movement (#116), weapon sway (#117), recoil on some GPUs (#118)
    and light fixtures that didn't react to shots (#119).

Fixes and changes, with finding labels

Menu and settings work:

  • One options UI: the file-select entry opens the F10 menu (D519). Six
    PD-ordered sections with checkboxes, sliders and dropdowns (D504); display
    mode dropdown and Backspace-back (D504 follow-up).
  • Control styles: Ext / Original with the N64 styles 1.1-2.4 (D513, D516),
    chosen per seat and saved with the Bond file (D518, D516).
  • Emulator ge007.eep import (D514).
  • F10 overlay and FPS counter match in size front-end vs level (D510); HudScale
    covers them (D512).
  • Fullscreen mode, Center window, crosshair opacity and crosshair colour by
    health: the four settings the Perfect Dark port had that this port lacked (D511).
  • Wording, units, tips and spelling: D505, D506, D507; settings wording pass
    and tip wrapping (D554); Look up/down row removed (D564).
  • Settings standardised: defaults, FOV in vertical degrees, Gameplay view area (D546).
  • Optional update check (D551). All unlocked applies live (D547).
  • Crosshair mouse pointer and scrollbar (D555, D556); long tips no longer cut
    off inside a level (D558). New defaults: Crouch Toggle, Look ahead off (D556,
    D557); same for untouched empty save folders (D559).
  • Crosshair always on, opt-in, off by default (D436, #123 by dolent). Crosshair colour is
    Original or Custom RGB with 0-255 sliders, as in the Perfect Dark port; a
    saved named preset carries over as Custom (D569). Long dropdowns stay on
    screen (D568).
  • F10 overlay mouse behaviour (D544). Static title bar and new icon (D550).
  • Overlay slider wedges, markers and dropdown arrows used to step in whole
    canvas pixels and grew visibly at large window sizes; now smooth (D520).
    Holding left/right on a Bond settings row no longer drops the FPS counter (D517).
  • Watch menu: closing the in-level Watch menu saves the watch's own screen
    size and ratio, which no longer fight the front-end Aspect ratio setting;
    the earlier findings-log note was corrected (D349).

Rendering and gameplay fidelity:

  • Dam ending camera: the first shot of the ending cutscene swivels up onto
    Bond again, as on the N64; an old port workaround snapped it straight onto
    him (D552).
  • Fog rework (Surface 2, from Deck playtest): ground fog no longer "chunks"
    away tile by tile, and the sky fades into fog toward the horizon as on the
    N64 (D540). Large near-camera triangles are now clipped against the near
    plane the way the N64's RSP does, with per-vertex fog recomputed on the
    clipped edge, so the haze around Bond stays steady as he moves instead of
    brightening and darkening (D543, D553; compared against hardware-level
    emulation). A new Fog distance setting (100% = N64) is independent of
    Draw distance, and Draw and Fog distance now apply live instead of on the
    next level load.
  • Banded walls near explosions: in Aztec's dark corridor, walls near rocket
    fire turned into black/white/yellow/blue bands (also seen on the Deck); fixed
    by clamping colour-combiner inputs to the range the N64 can produce (D548).
  • Rocket and thrown-item crashes/clipping: a player-fired rocket could pass
    through the ground when fired near Bond's feet (a stack-layout difference
    from the N64, D545), and the same class of bug is fixed in thrown grenades,
    knives and objects (D549).
  • Menu double-trigger (Steam Deck): one A press could advance two menu
    screens, and one B could back out two overlay pages. A short release
    hold-off on menu A/B/Start and a single back action per press are now in
    place. This is a mitigation: the exact cause is unconfirmed (the Deck
    re-check passed) (D541).
  • Fog snap: objects far in fog are hidden as on the N64; in widescreen
    the wider view can still show a faint distant building edge (e.g. Surface's
    dish from the start area); 4:3 matches the N64 (D503).
  • Aspect ratio: forced ratios letterbox/pillarbox without re-cropping the
    play area (D508); the rare gun/hand model glitch after changing ratio
    mid-level is largely fixed, a rare remainder is logged (D509).

Build, tooling and harness:

  • A fresh build directory no longer produces an untagged executable name (D515).
  • The asset converter's argument quoting and sidecar size check are
    tightened; the CI cache actions no longer carry stale ROM paths.
  • The reference-frame tooling is non-destructive and drift-free: a verification
    sweep used to overwrite your own data/ge007.ini and leave the previous
    level's save file behind, and now pins both idempotently (your ini and save
    are restored whatever the run does); the capture helper reads its frame
    windows out of the gate instead of a stale hardcoded copy (D524). The gate's
    recipe was re-based: per-level windows in settled gameplay rather than the
    intro flyby, and the save file pinned present (D522, D523).
  • Debug env vars are documented: GE_PCDUMP must be first-last:step (a colon
    where the dash belongs silently dumps every frame, D527), and a
    GE_STARTMENU boot skips the EEPROM import, so the imported-save test must
    run from a normal boot (D528). A per-triangle draw-state census probe
    (GE_D526/GE_D526BOX/GE_D526MAX) is available for transparency/texture
    triage (D526; the P13 Dam-ending grate show-through it targeted was confirmed
    faithful N64 behaviour on 1964/GEPD, so no change shipped).

Verification

Reference-frame gate for this release: Windows, Linux and Steam Deck each
carry the full 21-level reference-frame set (63 frames each) at the same stems,
re-captured for this release's fog and near-plane changes and confirmed by two
independent capture passes per platform. The full pixel gate is green on all
three against their own goldens on the final build: Windows 21/21, Linux
(Intel HD 3000) 21/21 and Steam Deck 21/21. The recipe pins the run for you: the
save file's CONTENT is pinned (the gate installs its own canonical save per
level, the same way it pins the display ini — D529) and the PRNG seed is
hard-pinned (a stray GE_RSEED in your environment warns and is ignored rather
than re-seeding the gate — D532), so a gate run and a capture run see the same
starting state. The cross-platform spread on the shipped sets (0.188-4.553% of
pixels over tol 2 on the 20 non-Cuba levels) is informational only — it is not
a cross-platform pixel-parity claim.

Don't miss a new goldeneye-pc-port release

NewReleases is sending notifications on new releases.