mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
docs: v0.6.0 README, release notes, site pages, social card, version 0.6.0
Co-authored-by: f1zz1ec0ke <220638765+f1zz1ec0ke@users.noreply.github.com> Co-authored-by: danturn <7792186+danturn@users.noreply.github.com> Co-authored-by: JunielKatarn <4507319+JunielKatarn@users.noreply.github.com> Co-authored-by: italoarruda <3868006+italoarruda@users.noreply.github.com> Co-authored-by: dolent <16023813+dolent@users.noreply.github.com>
This commit is contained in:
1 parent
218cb90231
commit
3f73a18db1
9 files changed
+285
-236
No files matched your search
+2
-2
@@ -51,12 +51,12 @@ by this repo's CI from the release tag, and nothing else. Verify any
|
||||
downloaded artifact with:
|
||||
|
||||
```sh
|
||||
gh attestation verify goldeneye-pc-port-0.5.0-win64.zip \
|
||||
gh attestation verify goldeneye-pc-port-0.6.0-win64.zip \
|
||||
--repo jkdansereau/goldeneye-pc-port
|
||||
```
|
||||
|
||||
(use the name of the file you downloaded, e.g.
|
||||
`goldeneye-pc-port-0.5.0-linux-x86_64.tar.gz` on Linux). A passing check confirms both
|
||||
`goldeneye-pc-port-0.6.0-linux-x86_64.tar.gz` on Linux). A passing check confirms both
|
||||
the file's digest and its provenance; a tampered or foreign file fails.
|
||||
Releases before v0.5.0 have no attestations — for those, the per-file
|
||||
`.sha256` sidecars and a from-source build are the available checks.
|
||||
|
||||
+103
-191
@@ -5,109 +5,77 @@
|
||||
<img src="https://github.com/jkdansereau/goldeneye-pc-port/raw/v<version>/docs/img/shots/feature-options.jpg" width="340" alt="The PC options menu: custom crosshair colour sliders">
|
||||
</p>
|
||||
|
||||
Platforms: **Windows x86-64** and **Linux x86-64 (including Steam Deck)**.
|
||||
Region: **NTSC-U (US) only**. See [Known issues](#known-issues).
|
||||
Platforms: **Windows x86-64** and **Linux x86-64 (including Steam Deck)**, plus
|
||||
an **experimental macOS Apple Silicon** download (not notarized; see
|
||||
[Running it](#running-it)). Region: **NTSC-U (US) only**. See [Known issues](#known-issues).
|
||||
|
||||
## Highlights
|
||||
|
||||
This is the first release since v0.4.0. It includes everything that was
|
||||
staged as v0.4.1, which was never published on its own.
|
||||
This release is v0.5.0 plus frame rates above 60, an experimental macOS port
|
||||
and a batch of fixes.
|
||||
|
||||
- **2-4 player split-screen.** The game's multiplayer runs with a pad per
|
||||
player, on every map, with each seat keeping its own controls.
|
||||
- **One options menu.** The file-select **PC Options** entry and the F10 overlay
|
||||
are now the same menu, laid out like the Perfect Dark PC port's, with
|
||||
checkboxes, sliders and dropdowns. The game's own crosshair is the mouse
|
||||
pointer, long pages scroll, and a tip explains the selected option.
|
||||
- **The game's N64 control styles, per player.** Pick **Original** to use the
|
||||
game's own styles 1.1-2.4; each seat keeps its own, 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 sky fades into fog at the horizon, and the haze around Bond stays
|
||||
steady as he moves. A new **Fog distance** setting (100-800%, 100% = N64) is separate
|
||||
from Draw distance, and both apply live.
|
||||
- **Fixes you can see:** the Dam ending camera swivels onto Bond as on the N64,
|
||||
and rockets no longer pass
|
||||
through the ground.
|
||||
- **New settings:** an optional always-on crosshair, a custom
|
||||
crosshair colour (0-255 RGB, like the Perfect Dark port), fullscreen mode,
|
||||
center window, crosshair opacity and crosshair colour by health, a scalable
|
||||
HUD overlay, and an optional update check (off by default).
|
||||
- **Frame rates above 60.** The *Frame rate cap* (`Video.FpsCap`) now offers
|
||||
**90, 120 and 144**, and an **Auto** setting that matches your display's
|
||||
refresh rate (up to 144). 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).
|
||||
|
||||
Played on Windows and Steam Deck: campaign spot-checks, 2-4 player split-screen
|
||||
and controller-only sessions.
|
||||
Checked on PC at 120 Hz with VSync on a G-Sync display, and on the Steam Deck
|
||||
at 90 fps.
|
||||
|
||||
---
|
||||
|
||||
## What's new
|
||||
|
||||
### Options menu
|
||||
### Frame rate
|
||||
|
||||
- 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.
|
||||
- **Auto, 90, 120 and 144** 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 and a 144 Hz
|
||||
monitor at 144. 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).
|
||||
|
||||
### Controls
|
||||
### macOS (Apple Silicon, experimental)
|
||||
|
||||
- **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.
|
||||
- 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.
|
||||
- Build from source with Homebrew's GNU `gcc`; there is no download. The
|
||||
x86_64 macOS code (Julio C. Rocha's #88) is in the tree but was never
|
||||
verified on Intel hardware.
|
||||
|
||||
### Saves
|
||||
### Settings and diagnostics
|
||||
|
||||
- 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.
|
||||
(Live playtest owed.)
|
||||
|
||||
### 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).
|
||||
- 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).
|
||||
|
||||
---
|
||||
|
||||
@@ -119,12 +87,14 @@ and controller-only sessions.
|
||||
|---|---|
|
||||
| `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).
|
||||
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
|
||||
|
||||
@@ -141,6 +111,18 @@ 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
|
||||
```
|
||||
|
||||
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.
|
||||
@@ -153,132 +135,62 @@ Full steps, controls and troubleshooting are in the bundled `README.md`.
|
||||
|
||||
| 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 |
|
||||
| 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 |
|
||||
| No macOS or ARM builds | Platform | — |
|
||||
| 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 |
|
||||
|
||||
The full list, with workarounds, is the
|
||||
Faithful original-game quirks are not port bugs. The full list, with
|
||||
workarounds, is the
|
||||
[known-issues table](https://github.com/jkdansereau/goldeneye-pc-port/blob/main/docs/ROADMAP.md#known-issues).
|
||||
|
||||
---
|
||||
|
||||
## 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).
|
||||
- **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** hat-spawn crash: the object record type was read from the wrong byte
|
||||
on a little-endian machine (D580).
|
||||
- **#108** SFX / text-bank pointer guards (D573).
|
||||
- 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
|
||||
|
||||
**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.
|
||||
I did not re-run the three-platform reference-frame gate for this release; the
|
||||
last full run was for v0.5.0. For v0.6.0 I checked the frame-rate path and the
|
||||
fixes above by playing on Windows and the Steam Deck, and the macOS build with
|
||||
a 21-level sweep and live sessions.
|
||||
|
||||
## 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), plus reporter credits on
|
||||
the issue numbers named above.
|
||||
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
|
||||
|
||||
@@ -122,12 +122,12 @@
|
||||
<div class="rep">REPORT:</div>
|
||||
|
||||
<div class="rows">
|
||||
<div class="statusline">Status: <span class="status">RELEASED v0.5.0 — WINDOWS · LINUX · STEAM DECK</span></div>
|
||||
<div class="statusline">Status: <span class="status">RELEASED v0.6.0 — WINDOWS · LINUX · STEAM DECK</span></div>
|
||||
<div class="stats">
|
||||
<span class="k">Statistics:</span><span>All 20 solo missions — full campaign completed in playtesting</span>
|
||||
<span class="k">Statistics:</span><span>All 20 solo missions — 60 to 144 fps · macOS (experimental)</span>
|
||||
<span></span><span>~210 game-code units, compiled unmodified</span>
|
||||
<span></span><span>~34k lines C/C++ · ~10k Python (port layer + tools)</span>
|
||||
<span></span><span>430 findings logged · AI coding agents + a handful of contributors</span>
|
||||
<span></span><span>465 findings logged · AI coding agents + a handful of contributors</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 597 KiB After Width: | Height: | Size: 597 KiB |
@@ -6,8 +6,8 @@
|
||||

|
||||
|
||||
**GoldenEye 007 (Nintendo 64, 1997) as a native PC game for Windows, Linux
|
||||
and Steam Deck.** Native widescreen, a steady 60 fps, 2–4 player
|
||||
split-screen, mouse and keyboard or a modern controller, rebindable controls
|
||||
and Steam Deck.** Native widescreen, 60 fps or higher (90/120/144 on fast
|
||||
displays), 2–4 player split-screen, mouse and keyboard or a modern controller, rebindable controls
|
||||
and an in-game options menu. No
|
||||
emulator, and not a binary recompilation: the game's own
|
||||
reconstructed C, rebuilt from the
|
||||
@@ -24,9 +24,9 @@ then follow the [Quick start](#quick-start).
|
||||
> downloads contain no Nintendo code or assets, and no ROM. See
|
||||
> [What's a ROM?](#whats-a-rom) and [Legal](#legal).
|
||||
|
||||
**v0.5.0** is the current release. It is a **pre-1.0 release, not a
|
||||
**v0.6.0** is the current release. It is a **pre-1.0 release, not a
|
||||
finished product**: the campaign and split-screen multiplayer play end to
|
||||
end, but expect missing pieces (PAL/JP ROMs, macOS) and the occasional
|
||||
end, but expect missing pieces (PAL/JP ROMs, a notarized macOS build) and the occasional
|
||||
breaking change between versions. v1.0 is the target for a feature-complete
|
||||
build.
|
||||
|
||||
@@ -49,6 +49,31 @@ project is as much a study of that process as it is a port. See
|
||||
|
||||
## News
|
||||
|
||||
- **RELEASE-DATE** — **v0.6.0** ([release notes](https://github.com/jkdansereau/goldeneye-pc-port/releases/tag/v0.6.0)):
|
||||
- **Frame rates above 60.** `Video.FpsCap` now offers 90, 120 and 144, and
|
||||
an **Auto** setting (the new default on fresh installs) that matches your
|
||||
display's refresh rate. Frames between game ticks are blended from the
|
||||
previous and current frame; 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* preset caps at 60. This is a rework of
|
||||
f1zz1ec0ke's #137. I checked 120 Hz with VSync on a G-Sync display
|
||||
on PC and 90 fps on the Steam Deck.
|
||||
- **macOS on Apple Silicon, experimental, build from source.** Based on
|
||||
danturn's #95 (with Julio C. Rocha's earlier Intel groundwork in
|
||||
#88). There is no macOS download. See [Building](docs/building.md).
|
||||
- **Fixes:** geometry vanishing when you press against a wall (#150),
|
||||
the first launch opening on the wrong monitor (#151), a Linux crash in the
|
||||
end credits (#152), a crash when a guard spawns with a hat (#153), a
|
||||
sound/text pointer check that rejected valid pointers (#108), a Cradle
|
||||
catwalk shadow flicker, and stale watch pixels in native widescreen.
|
||||
- **Smaller changes:** the legacy front-end Velocity pointer mode is gone,
|
||||
the Linux/macOS update check no longer fails on a large response, every
|
||||
run is also logged to `ge007.log` next to the ini, and F10 slider labels
|
||||
fit at HUD 150.
|
||||
- **Known issues on the Steam Deck at 90 fps:** firefights in the centre of
|
||||
Bunker 1 and 2 can drop several fps, and Jungle can feel slightly less
|
||||
smooth than other levels. Cradle's turret explosions may draw wrongly
|
||||
(reported, not yet investigated).
|
||||
- **2026-10-07** — **v0.5.0** ([release notes](https://github.com/jkdansereau/goldeneye-pc-port/releases/tag/v0.5.0)), the first release
|
||||
since v0.4.0; it includes the v0.4.1 work, which was never published on
|
||||
its own:
|
||||
@@ -104,7 +129,7 @@ the first launch lowers draw distance and anti-aliasing to keep up. A
|
||||
keyboard and mouse, or a controller (Xbox, PlayStation, Switch and most
|
||||
SDL-supported pads); split-screen needs one controller per extra player.
|
||||
|
||||
**Not yet:** macOS, ARM Linux and Windows 7 are on the [roadmap](#roadmap).
|
||||
**macOS (Apple Silicon, experimental):** an M1 or later Mac on macOS 14 or newer, using the `macos-arm64` download (nothing to install; it is not notarized, so see [macOS](#macos-apple-silicon-experimental) for the one-line unblock) or a [source build](#building-from-source). **Not yet:** ARM Linux and Windows 7 are on the [roadmap](#roadmap).
|
||||
|
||||
## Quick start
|
||||
|
||||
@@ -210,6 +235,14 @@ Backspace.
|
||||
and *Aspect ratio → Original* shows the exact 4:3 frame.
|
||||
- **A steady 60 fps**, with VSync and a frame cap (30 or 60), including on
|
||||
low-end GPUs.
|
||||
- **Frame rates above 60:** 90, 120 or 144 fps, or **Auto** to match your
|
||||
display. Extra frames are blended between game ticks (the game still runs at
|
||||
its original rate), at the cost of one tick of latency. It has no effect on
|
||||
a 60 Hz display, and the *Original N64* preset keeps 60. See
|
||||
[framerate and pacing](docs/framerate-and-pacing.md).
|
||||
- **macOS (Apple Silicon), experimental:** a `macos-arm64` download, not
|
||||
notarized (one Terminal command to unblock it, see [macOS](#macos-apple-silicon-experimental)),
|
||||
or build from source. I'd like test reports.
|
||||
- **Graphics options:** resolution, borderless or exclusive fullscreen,
|
||||
a Center window action while windowed, MSAA (up to 16×), anisotropic
|
||||
filtering, and nearest, bilinear, trilinear or the N64's own 3-point
|
||||
@@ -238,17 +271,22 @@ Backspace.
|
||||
## Status
|
||||
|
||||
**Fully playable, with a small set of known caveats.** All 20 solo missions
|
||||
and the end-of-campaign credits load, render and run crash-free. v0.5.0 was
|
||||
played on Windows and Steam Deck (campaign spot-checks, 2–4 player
|
||||
split-screen and controller-only sessions), and every level's reference
|
||||
frames were compared pixel by pixel on Windows, Linux and Steam Deck. The
|
||||
and the end-of-campaign credits load, render and run crash-free. v0.6.0 adds
|
||||
frame rates above 60 and experimental macOS support; I checked the new
|
||||
frame-rate path and the listed fixes by playing on Windows and Steam Deck (120 Hz
|
||||
with VSync on a G-Sync display on PC, 90 fps on the Deck), and a macOS
|
||||
Apple Silicon build ran the 21-level campaign sweep and live sessions without crashes. The 21-level pixel comparison of reference
|
||||
frames against goldens (Windows, Linux, Steam Deck) was last done for v0.5.0. The
|
||||
full campaign was last played end to end, at Agent difficulty on all three
|
||||
platforms, for v0.4.0. Split-screen was played live in 2P on every
|
||||
multiplayer map and in 4P on Temple.
|
||||
|
||||
**Known issues:** see the **[known-issues table](docs/ROADMAP.md#known-issues)**
|
||||
(what you'll notice, impact, workarounds). The short version: NTSC-U ROMs
|
||||
only in the release packages, and no macOS/ARM builds yet.
|
||||
only in the release packages, and the Apple Silicon macOS download is
|
||||
experimental and not notarized. On the Steam Deck at 90 fps, Bunker 1/2
|
||||
centre firefights can drop several fps and Jungle can feel slightly less smooth
|
||||
than other levels.
|
||||
|
||||
> ***All unlocked* never changes your save** since v0.5.0: it unlocks every
|
||||
> level and cheat in memory only, and switching it off shows your real
|
||||
@@ -302,7 +340,7 @@ common keys and their defaults:
|
||||
[Video]
|
||||
Fullscreen = 0
|
||||
VSync = 1
|
||||
FpsCap = 60
|
||||
FpsCap = -1
|
||||
MSAA = 2
|
||||
TextureFilter = 1
|
||||
NativeWidescreen = 1
|
||||
@@ -313,7 +351,9 @@ DrawDistance = 200
|
||||
MasterVolume = 100
|
||||
```
|
||||
|
||||
`Fullscreen` 1 is borderless fullscreen; `TextureFilter` is 0 nearest,
|
||||
`Fullscreen` 1 is borderless fullscreen; `FpsCap` -1 is Auto (match the display,
|
||||
up to 144), 0 is uncapped, otherwise a fps cap (30, 60, or 90/120/144 for frame
|
||||
interpolation on a faster display; an existing ini keeps its value); `TextureFilter` is 0 nearest,
|
||||
1 bilinear, 2 the N64 3-point filter, 3 trilinear; `FovScale` and `DrawDistance` are
|
||||
percentages of the original (the options overlay shows the field of view in
|
||||
degrees). On Atom/Celeron-class GPUs the first launch writes lighter values
|
||||
@@ -406,15 +446,15 @@ place: [`docs/ROADMAP.md`](docs/ROADMAP.md). In brief:
|
||||
- **PAL and JP ROM support** in the release packages
|
||||
([#85](https://github.com/jkdansereau/goldeneye-pc-port/issues/85)). Both
|
||||
regions already convert, build and boot from source.
|
||||
- **macOS and ARM builds**.
|
||||
- **A notarized macOS build, Intel Macs and ARM Linux.** Apple Silicon macOS is
|
||||
an experimental, unsigned download in v0.6.0.
|
||||
- The remaining small accuracy differences, each checked against the N64
|
||||
game in an emulator.
|
||||
- **1.0 sign-off**: a full campaign playthrough at more than one difficulty
|
||||
plus a split-screen session, on every platform that ships.
|
||||
|
||||
This is spare-time work, so there's no timeline. Opt-in extras beyond the N64
|
||||
game (LAN play, bots, co-op, HD textures, enhanced visuals, frame rates above
|
||||
60) come after 1.0, and always off by default. Not planned: online
|
||||
game (LAN play, bots, co-op, HD textures, enhanced visuals) come after 1.0, and always off by default. Not planned: online
|
||||
multiplayer over the internet, achievements or cloud saves, remake-scope
|
||||
assets (new models, music or voice), and new movement mechanics. If any of
|
||||
these matter to you, open an issue — it helps prioritize.
|
||||
@@ -454,7 +494,7 @@ code with this one.
|
||||
| **How** | Decompilation-based source port: human-reconstructed C, compiled for the host; game logic runs as written | Static binary recompilation: the shipped machine code is auto-translated to C; the source is machine-generated |
|
||||
| **Lineage** | [GoldenEye 007 decompilation](https://github.com/n64decomp/007) + [Perfect Dark PC port](https://github.com/fgsfdsfgs/perfect_dark) engine family | Xbox 360 "…Recompiled" static-recompilation family |
|
||||
| **Renderer** | Software RSP → OpenGL | Hardware (Vulkan) |
|
||||
| **Status** | Pre-1.0 releases; full campaign and split-screen playable at 60 fps (see [Status](#status)) | Playable full game |
|
||||
| **Status** | Pre-1.0 releases; full campaign and split-screen playable at 60 fps or higher (see [Status](#status)) | Playable full game |
|
||||
| **Why it exists** | To run the *original* N64 game from source, and as a [case study in AI-agent collaboration](#how-it-was-made) on a hard low-level codebase | To get a playable PC release of the remaster |
|
||||
|
||||
---
|
||||
@@ -500,6 +540,37 @@ The executable is written to `build-pc/ge007.x86_64` (on Windows,
|
||||
repo root, put your ROM in it as in [What's a ROM?](#whats-a-rom), and run
|
||||
`./build-pc/ge007.x86_64` from the repo root.
|
||||
|
||||
### macOS (Apple Silicon, experimental)
|
||||
|
||||
**Download:** `goldeneye-pc-port-<version>-macos-arm64.tar.gz` from the release
|
||||
page, for Apple Silicon (M1 or later), macOS 14 or newer. It bundles SDL2 and the
|
||||
C++ runtime, so Homebrew is not needed. The app is experimental and **not
|
||||
signed with an Apple Developer ID or notarized**, so Gatekeeper blocks it when
|
||||
it comes from a download. Unpack it, then run `xattr -dr com.apple.quarantine <folder>` in Terminal once, before the first launch:
|
||||
|
||||
```sh
|
||||
xattr -dr com.apple.quarantine goldeneye-pc-port-<version>-macos-arm64
|
||||
```
|
||||
|
||||
Then set up `data/` with your ROM as in the package README and run
|
||||
`./ge007.aarch64` from that folder in Terminal. If you launch it first, the process
|
||||
stalls before the window appears (it never reached `main` in my test; that is
|
||||
most likely Gatekeeper, and clearing the flag afterwards did not unstick that
|
||||
copy), so re-extract the archive and clear the flag before launching. I have run
|
||||
the package on one M3 Mac only, so test reports (what Mac, what macOS, what
|
||||
happened) are very welcome.
|
||||
|
||||
**Build from source:** use Homebrew's
|
||||
GNU `gcc` (Apple's Clang can't compile the decomp), then the same
|
||||
asset-extraction and `./build-pc.sh ntsc-final` steps as above. Details are in
|
||||
[`docs/building.md`](docs/building.md).
|
||||
|
||||
```sh
|
||||
brew install cmake gcc sdl2 zlib python3
|
||||
```
|
||||
|
||||
On Apple Silicon the executable is tagged `aarch64` instead of `x86_64`.
|
||||
|
||||
## How it works
|
||||
|
||||
The game code in `src/` is the decompilation's, and its control flow is the
|
||||
@@ -607,14 +678,16 @@ This port is a thin layer on a large amount of other people's work.
|
||||
|
||||
**Contributors**
|
||||
|
||||
- **dolent** (#120, #121, #122, #123), **italoarruda** (#107, #109),
|
||||
**JosephAHK** (#133), and **MST246** (the #125 investigation), plus
|
||||
everyone who filed issues.
|
||||
- **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](https://github.com/f1zz1ec0ke)): LLM consultation on model
|
||||
tuning, agent harnesses, and agentic strategy throughout the port's development.
|
||||
tuning, agent harnesses, and agentic strategy throughout the port's development
|
||||
(and the author of the #137 frame-interpolation design noted above).
|
||||
|
||||
**Tools and models used to develop the port**
|
||||
|
||||
@@ -700,4 +773,4 @@ is covered by [`NOTICE`](NOTICE), not by that license.
|
||||
|
||||
---
|
||||
|
||||
*Last updated 2026-10-07 — v0.5.0 · <a href="https://github.com/jkdansereau/goldeneye-pc-port">GitHub</a> · <a href="https://github.com/jkdansereau/goldeneye-pc-port/releases">Releases</a>*
|
||||
*Last updated 2026-10-10 — v0.6.0 · <a href="https://github.com/jkdansereau/goldeneye-pc-port">GitHub</a> · <a href="https://github.com/jkdansereau/goldeneye-pc-port/releases">Releases</a>*
|
||||
@@ -55,7 +55,7 @@
|
||||
<footer class="site-footer">
|
||||
<div class="footer-stamp">
|
||||
<a href="https://github.com/jkdansereau">maintained by jkdansereau</a>
|
||||
· last updated: 2026-10-07 · v0.5.0
|
||||
· last updated: 2026-10-10 · v0.6.0
|
||||
· <a href="https://github.com/jkdansereau/goldeneye-pc-port">GitHub</a>
|
||||
· <a href="https://github.com/jkdansereau/goldeneye-pc-port/releases">releases</a>
|
||||
</div>
|
||||
|
||||
+22
-7
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: Building
|
||||
description: Full build and asset-extraction guide for the GoldenEye 007 PC port, covering Windows (MSYS2) and Linux.
|
||||
description: Full build and asset-extraction guide for the GoldenEye 007 PC port on Windows, Linux, and macOS.
|
||||
---
|
||||
|
||||
## Building the PC port
|
||||
@@ -27,21 +27,36 @@ for accepted versions and hashes.
|
||||
|
||||
### Port build
|
||||
|
||||
> **The Windows (MSYS2 MINGW64) path is the primary one.** The Linux build is
|
||||
> compiled by CI on every push and ships in the release bundle (also
|
||||
> playtested on Steam Deck hardware); the macOS column is best-effort
|
||||
> guidance and has never been built or run there. Expect to fix build breaks
|
||||
> yourself on untested platforms.
|
||||
> **The Windows (MSYS2 MINGW64) path is the primary one.** Linux is compiled
|
||||
> by CI and ships in the release bundle. **macOS on Apple Silicon is
|
||||
> experimental as of v0.6.0**: the release has a `macos-arm64` download
|
||||
> (`scripts/package-macos.sh` makes it on a Mac; CI runs it) that is not
|
||||
> notarized, so clear the quarantine flag once before the first launch with
|
||||
> `xattr -dr com.apple.quarantine <folder>`. This guide covers building it from
|
||||
> source. On an arm64 Mac the build moves the N64 address window to a
|
||||
> high host base (`PORT_ADDR_BASE`, set automatically); Windows and Linux builds
|
||||
> are unaffected. The x86_64 macOS path (Julio C. Rocha, #88) is still in the
|
||||
> tree but was never verified on Intel hardware.
|
||||
|
||||
| Need | Windows (MSYS2 MINGW64) | Debian/Ubuntu | macOS (Homebrew) |
|
||||
|------|------------------------|---------------|------------------|
|
||||
| toolchain | `mingw-w64-x86_64-toolchain` | `build-essential` | Xcode CLT / `gcc` |
|
||||
| toolchain | `mingw-w64-x86_64-toolchain` | `build-essential` | Xcode CLT + Homebrew `gcc` |
|
||||
| CMake | `mingw-w64-x86_64-cmake` | `cmake` | `cmake` |
|
||||
| SDL2 | `mingw-w64-x86_64-SDL2` | `libsdl2-dev` | `sdl2` |
|
||||
| zlib | `mingw-w64-x86_64-zlib` | `zlib1g-dev` | `zlib` |
|
||||
| OpenGL | (in the toolchain) | `libgl1-mesa-dev` | (system) |
|
||||
| Python 3 | `mingw-w64-x86_64-python` | `python3` | `python3` |
|
||||
|
||||
On macOS, install the build dependencies with:
|
||||
|
||||
```sh
|
||||
brew install cmake gcc sdl2 zlib python3
|
||||
```
|
||||
|
||||
The project requires real GNU GCC for the decomp's Plan 9 struct extensions.
|
||||
Apple's `/usr/bin/gcc` is Clang and is not compatible. CMake automatically
|
||||
selects Homebrew's versioned `gcc-N`/`g++-N` executables.
|
||||
|
||||
### Asset extraction (decompilation toolchain)
|
||||
|
||||
The extraction scripts need `binutils-mips-linux-gnu` (or an equivalent MIPS
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
---
|
||||
title: Framerate and pacing
|
||||
description: How the GoldenEye 007 PC port holds a steady 60 fps and keeps per-frame game timing correct on a fast CPU.
|
||||
description: How the GoldenEye 007 PC port holds a steady 60 fps, draws frames above 60 on fast displays, and keeps per-frame game timing correct on a fast CPU.
|
||||
date: '2026-10-05'
|
||||
modified_time: '2026-10-05'
|
||||
modified_time: '2026-10-10'
|
||||
---
|
||||
|
||||
## Framerate and pacing
|
||||
|
||||
The port targets a **steady 60 fps** with VSync and an optional 30/60 frame
|
||||
cap, including on low-end GPUs.
|
||||
The port targets a **steady 60 fps** with VSync and a frame cap, including on
|
||||
low-end GPUs. Since v0.6.0 the cap can also go above 60 on a faster display
|
||||
(see [Above 60 fps](#above-60-fps)).
|
||||
|
||||
The N64's game code assumed a **60 Hz vertical-interrupt tick** — it ran a
|
||||
few ticks per displayed frame. On a PC the CPU is far faster, so left alone
|
||||
@@ -27,5 +28,28 @@ On very weak integrated GPUs (Atom/Celeron class) the first launch writes
|
||||
lighter values for draw distance, LOD distance and anti-aliasing into
|
||||
`ge007.ini` so the game still holds 60 fps.
|
||||
|
||||
### Above 60 fps
|
||||
|
||||
`Video.FpsCap` (F10, *Frame rate cap*) accepts Auto, 30, 60, 90, 120 and 144.
|
||||
**Auto** is the default on fresh installs (an existing `ge007.ini` keeps its
|
||||
value) and matches the display's refresh rate, up to 144; on a 60 Hz display it
|
||||
is plain 60.
|
||||
|
||||
- **The game still simulates at its original 60 Hz (NTSC) tick.** The extra
|
||||
frames are drawn between two game ticks by blending the previous and current
|
||||
frame's matrices (camera and objects), so no game state changes.
|
||||
- **Cost:** one game tick of extra latency.
|
||||
- **Inert on 60 Hz displays.** The present rate is the lower of the cap and the
|
||||
display's refresh rate. The *Original N64* display mode caps at 60.
|
||||
- **Fallbacks:** a fast camera turn or a large change in the visible room set
|
||||
draws a full (non-blended) frame instead.
|
||||
- The design comes from f1zz1ec0ke's PR #137; the port reworked it onto the
|
||||
render worker thread and from a fixed 2x to any present rate, so a 90 Hz
|
||||
Steam Deck OLED works (D578, D583, D584).
|
||||
|
||||
Checked by the maintainer: 120 Hz with VSync on a G-Sync display on PC, and 90
|
||||
fps on the Steam Deck. Known issue: on the Deck at 90, centre firefights in
|
||||
Bunker 1/2 can drop several fps, and Jungle can feel slightly less smooth.
|
||||
|
||||
*More: [porting notes](porting-notes.md) — the timing-related findings (D13,
|
||||
D22, D486).*
|
||||
+32
-7
@@ -1,15 +1,15 @@
|
||||
---
|
||||
title: GoldenEye 007 PC Port
|
||||
# v0.5.0: status bumped from v0.4.0. Description kept short (Bing's 160 limit).
|
||||
# v0.6.0: status bumped from v0.5.0. Description kept short (Bing's 160 limit).
|
||||
description: >-
|
||||
A native PC port of GoldenEye 007 (Nintendo 64, 1997), built from
|
||||
decompiled source with a software RSP. v0.5.0 for Windows, Linux and
|
||||
decompiled source with a software RSP. v0.6.0 for Windows, Linux and
|
||||
Steam Deck.
|
||||
# Freshness signals for jekyll-seo-tag (article:published_time / modified_time
|
||||
# and the WebPage JSON-LD dates). Keep these equal to the last real content
|
||||
# change of THIS page, not to the last release.
|
||||
date: '2026-10-05'
|
||||
modified_time: '2026-10-07'
|
||||
modified_time: '2026-10-10'
|
||||
locale: en_US
|
||||
# The masthead is this page's title, so its first content h2 must NOT get the
|
||||
# amber page-title look (double header). See the .flat-title rule in
|
||||
@@ -32,7 +32,30 @@ Rare "Indy" engine family, one hardware generation apart.
|
||||
|
||||
<div class="cblock" markdown="1">
|
||||
|
||||
### v0.5.0 (2026-10-07) — split-screen multiplayer, one options menu, closer to the N64.
|
||||
### v0.6.0 (RELEASE-DATE) — frame rates above 60, experimental macOS, fixes.
|
||||
|
||||
- **Frame rates above 60:** the frame cap offers 90, 120 and 144, and **Auto**
|
||||
(the default on fresh installs) matches your display. Frames between game
|
||||
ticks are blended; the game still simulates at its original rate. It costs
|
||||
one game tick of latency and does nothing on a 60 Hz display. A rework of
|
||||
f1zz1ec0ke's #137. See [framerate and pacing](framerate-and-pacing.md).
|
||||
- **macOS on Apple Silicon, experimental:** a `macos-arm64` download (not
|
||||
notarized; run `xattr -dr com.apple.quarantine <folder>` once before the
|
||||
first launch) or build from source. Based on danturn's #95.
|
||||
- **Fixes:** geometry vanishing against a wall (#150), the first launch opening
|
||||
on the wrong monitor (#151), a Linux end-credits crash (#152), a hat-spawn
|
||||
crash (#153), the Cradle catwalk shadow flicker, and stale pixels beside the
|
||||
native-widescreen picture.
|
||||
- **Known issues:** on the Steam Deck at 90 fps, Bunker 1/2 centre firefights
|
||||
can drop several fps and Jungle can feel slightly less smooth; Cradle's
|
||||
turret explosions may draw wrongly (not yet investigated).
|
||||
|
||||
</div>
|
||||
|
||||
<details>
|
||||
<summary>v0.5.0 (2026-10-07) — split-screen multiplayer, one options menu, closer to the N64</summary>
|
||||
|
||||
<div class="cblock" markdown="1">
|
||||
|
||||
- **2–4 player split-screen multiplayer** on every multiplayer map, each
|
||||
player with their own pad, controls and aim settings.
|
||||
@@ -57,6 +80,7 @@ Rare "Indy" engine family, one hardware generation apart.
|
||||
look-ahead defaults), and controllers are picked up again when replugged.
|
||||
|
||||
</div>
|
||||
</details>
|
||||
|
||||
What remains is a short list, under [Known issues](#known-issues).
|
||||
|
||||
@@ -74,7 +98,7 @@ single tracker for what comes next.
|
||||
<ul>
|
||||
<li><strong>NTSC-U ROMs only in the release packages.</strong> PAL and JP ROMs convert, build and run from source, but release packages ship the US (NTSC-U) ROM. On the roadmap.</li>
|
||||
<li><strong>Changing the aspect ratio in a level can briefly glitch the gun/hand model</strong> (cosmetic, one-off). Change the ratio from the front-end PC Options, or accept it (D509).</li>
|
||||
<li><strong>No macOS or ARM builds yet.</strong> Today the release ships Windows, Linux and Steam Deck (keyboard, mouse and controller-button rebinding are all supported, defaults in the <a href="https://github.com/jkdansereau/goldeneye-pc-port#controls">README's Controls section</a>); macOS and ARM are on the roadmap.</li>
|
||||
<li><strong>No ARM Linux build; macOS is experimental.</strong> The release ships Windows, Linux and Steam Deck (keyboard, mouse and controller-button rebinding are all supported, defaults in the <a href="https://github.com/jkdansereau/goldeneye-pc-port#controls">README's Controls section</a>). macOS on Apple Silicon is an experimental, not-notarized download (run <code>xattr -dr com.apple.quarantine <folder></code> before the first launch) or a source build; ARM Linux is on the roadmap.</li>
|
||||
<li><strong>Saves from v0.4.0 and earlier can hold fake unlocks from <code>All unlocked</code></strong> — <code>All unlocked</code> has not written your save since v0.5.0, but saves made while it was on in v0.4.0 and earlier can hold fake unlocks and are not repaired; back up <code>data/ge007.eep</code> if you used it on an older build (D442, D387).</li>
|
||||
<li><strong>The first frame of a level takes a little longer</strong> while its textures upload — a brief FPS-counter dip; nothing to fix (D475, D480).</li>
|
||||
<li><strong>In widescreen, far objects almost fully in fog can still show a faint distant building edge</strong> (4:3 matches the N64). Cosmetic (D503).</li>
|
||||
@@ -88,7 +112,7 @@ single tracker for what comes next.
|
||||
<p class="warn"><strong>Warning:</strong> always use the latest release — earlier builds are kept in the release history for reference only; they lack the features and fixes of newer versions, so don't install an older release.</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>2026-10-07 — v0.5.0</strong>: what it adds is the Status list above. <a href="https://github.com/jkdansereau/goldeneye-pc-port/releases/tag/v0.5.0">Release notes</a>.</li>
|
||||
<li><strong>2026-10-07 — v0.5.0</strong>: split-screen multiplayer, one options menu, closer-to-N64 fog and fidelity fixes, emulator save import. <a href="https://github.com/jkdansereau/goldeneye-pc-port/releases/tag/v0.5.0">Release notes</a>.</li>
|
||||
<li><strong>2026-09-28 — v0.4.0</strong>: native widescreen, a complete aim system for mouse and controller, in-game key rebinding, crosshair customization, rumble-pak haptics, a rebuilt options overlay, and a broad fidelity-fix pass. <a href="https://github.com/jkdansereau/goldeneye-pc-port/releases/tag/v0.4.0">Release notes</a>.</li>
|
||||
<li><strong>2026-09-20 — v0.3.0</strong>: the first release with the complete campaign playable end to end at 60 fps on Windows, Linux, and Steam Deck. <a href="https://github.com/jkdansereau/goldeneye-pc-port/releases/tag/v0.3.0">Release notes</a>.</li>
|
||||
<li><strong>2026-09-04 → 2026-09-16 — v0.1.0 – v0.2.2</strong>: the alpha and beta cycle — build chain, software RSP, first rendered frames, front end, and per-level stabilization across the campaign.</li>
|
||||
@@ -104,7 +128,8 @@ single tracker for what comes next.
|
||||
|---|---|---|
|
||||
| **Windows** (x86_64) | [win64.zip](https://github.com/jkdansereau/goldeneye-pc-port/releases) | Engine + runtime DLLs + the one-time asset tool. |
|
||||
| **Linux** (x86_64) / **Steam Deck** | [linux tarball](https://github.com/jkdansereau/goldeneye-pc-port/releases) | SDL2 is bundled, so it runs as-is on any distro, and sideloads onto a Deck with nothing installed. |
|
||||
| macOS / ARM Linux | — | Roadmap: not shipped yet. |
|
||||
| **macOS** (Apple Silicon, experimental) | macos-arm64 tarball | SDL2 and the C++ runtime are bundled. Not notarized: run `xattr -dr com.apple.quarantine <folder>` once before the first launch. Tested on one Mac; reports welcome. |
|
||||
| ARM Linux | — | No download; on the roadmap. |
|
||||
|
||||
**Bring your own ROM.** Both bundles contain no ROM and no game assets: you
|
||||
supply your own GoldenEye 007 N64 ROM (the
|
||||
|
||||
Reference in new issue
Block a user