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.
This commit is contained in:
James Dansereau committed 2026-10-13 09:58:48 -04:00
1 parent 162691a3f5
commit cdf43d0140
9 files changed
+151 -46

No files matched your search

+1 -2
View File
@@ -16,8 +16,7 @@ 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; 165 and 240 have had less testing than
90 to 144). Auto is the default on fresh installs; an existing
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*
+11 -6
View File
@@ -29,8 +29,11 @@ their own licenses; each license text ships in the download's licenses/ folder:
* Windows: the MinGW-w64 runtime (libwinpthread, libgcc, libstdc++).
* macOS: the GCC runtime (libgcc_s, libstdc++) - GPL-3.0 with the GCC
Runtime Library Exception 3.1. The GPL-3.0 text the macOS package ships
is tools_pc/dist/GPL-3.0.txt (the Homebrew gcc keg carries only the
exception text and GPL-2.0).
is tools_pc/dist/GPL-3.0.txt.
The license texts the downloads carry come from the build environment where
it provides them, otherwise from tools_pc/dist/ (GPL-3.0.txt,
GCC-RUNTIME-EXCEPTION.txt, SDL2-LICENSE.txt).
Vendored build tooling keeps its own license (none of it is compiled or linked
into the PC port; it belongs to the N64 decompilation build):
@@ -61,11 +64,13 @@ It does NOT cover:
assets -- textures, audio, models, level geometry, in-game text -- are
NOT included and are extracted from your own ROM at build time.
NO NINTENDO / RARE CONTENT IS DISTRIBUTED HERE
---------------------------------------------
NO ROM DATA OR ORIGINAL ASSETS ARE DISTRIBUTED HERE
--------------------------------------------------
This repository contains NO copyrighted ROM data, game assets (textures,
models, levels, audio, text), or Nintendo/Rare code. Building a playable
This repository contains NO ROM data and none of the original game assets
(textures, models, levels, audio, text), and no original Nintendo/Rare
binaries. The C source under src/ is the decompilation community's
reconstruction of the game's code (see above). Building a playable
executable requires a GoldenEye 007 Nintendo 64 ROM that you legally own;
the build extracts the required assets from that ROM on your own machine.
+29 -31
View File
@@ -7,7 +7,7 @@
**GoldenEye 007 (Nintendo 64, 1997) as a native PC game for Windows, Linux
and Steam Deck.** Native widescreen, 60 fps or higher (up to 240 on fast
displays), 2–4 player split-screen, mouse and keyboard or a modern controller, rebindable controls
displays), split-screen for up to 4 players, 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
@@ -17,11 +17,12 @@ for your PC and running from your own ROM.
**[Download the latest release](https://github.com/jkdansereau/goldeneye-pc-port/releases)**,
then follow the [Quick start](#quick-start).
[Quick start](#quick-start) · [Why this port](#why-play-this-port) · [Controls](#controls) · [Features](#features) · [Settings and files](#settings-and-files) · [Troubleshooting](#troubleshooting) · [Roadmap](#roadmap) · [Building](#building-from-source) · [Legal](#legal)
[Quick start](#quick-start) · [What it offers](#what-this-port-offers) · [Controls](#controls) · [Features](#features) · [Settings and files](#settings-and-files) · [Troubleshooting](#troubleshooting) · [Roadmap](#roadmap) · [Building](#building-from-source) · [Legal](#legal)
> [!IMPORTANT]
> **You must supply your own GoldenEye 007 ROM.** This repository and its
> downloads contain no Nintendo code or assets, and no ROM. See
> downloads contain no ROM data and none of the original assets; the C source
> is the community's reconstruction of the game's code (see `NOTICE`). See
> [What's a ROM?](#whats-a-rom) and [Legal](#legal).
**v0.6.0** is the current release. It is a **pre-1.0 release, not a
@@ -85,8 +86,8 @@ project is as much a study of that process as it is a port. See
- **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:
- **2–4 player split-screen multiplayer** on every multiplayer map, each
player with their own pad, controls and aim settings.
- **Split-screen multiplayer for up to 4 players**, each player with their
own pad, controls and aim settings.
- **One options menu** for every setting, laid out like the Perfect Dark
port's, with the game's own crosshair as the mouse pointer. Pick the
game's own N64 control styles (1.1–2.4) per player, or the Xbox release's
@@ -246,10 +247,7 @@ left/right adjusts the selected value, **A** opens a page or toggles a row,
again) closes. With a keyboard, use `F10`, the arrow keys, Enter and
Backspace.
## Why play this port
The questions people ask most about playing GoldenEye today, and how this
port answers them:
## 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
@@ -272,25 +270,26 @@ port answers them:
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 2–4 player split-screen on every
multiplayer map. Your emulator saves (1964, Project64) load directly.
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 **Original N64** display
preset switches every visual improvement off at once.
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 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.
What it doesn't do (yet): bots, online play, new or enlarged multiplayer maps,
mod support, and PAL/JP ROMs are not part of this release. See the
Bots, online play, mod support and PAL/JP ROMs are on the
[Roadmap](#roadmap).
## Features
- **2–4 player split-screen multiplayer** on every MP map, with the N64's own
setup flow and per-player HUD.
- **Split-screen multiplayer for up to 4 players**, with the N64's own setup
flow and per-player HUD.
- **Native widescreen** at any aspect ratio: the world is undistorted, the HUD
sits at the screen edges, and 4:3 menus are pillarboxed. FOV and draw/LOD
distance are adjustable, and AI behaviour stays as on the N64 whatever you
@@ -299,7 +298,7 @@ mod support, and PAL/JP ROMs are not part of this release. See the
between *Modern* and *Original N64* (it reads *Custom* once you edit a setting it covers),
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.
the low-end GPUs I test on.
- **Frame rates above 60:** 90, 120, 144, 165 or 240 fps, or **Auto** to match
your display (up to 240). 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
@@ -536,7 +535,9 @@ the 21-level sweep, the ABI finding catalog, SDL input, front end. The two
handed work back and forth through shared written notes. Up to v0.5.0: 51
days (16 Aug – 6 Oct), 1,537 commits (the public history squashes the
v0.4.1–v0.5.0 work into 17), and 419 findings root-caused and logged
(`D1`–`D564`).
(`D1`–`D564`). Every change is checked by comparing captured frames from all
21 solo levels against reference images, crash sweeps on Windows, Linux,
Steam Deck and macOS, and play-testing; there is no unit-test suite.
The full write-up (timeline, handoff mechanism, effort breakdown, an honest
"what worked / what didn't"): [`docs/dev/agentic-development.md`](docs/dev/agentic-development.md).
@@ -547,20 +548,17 @@ repository" menu).
## How this differs from the other GoldenEye PC projects
This is a native port of the original 1997 Nintendo 64 game, built from its
actual reconstructed source code, the same lineage as the Perfect Dark PC
port. The other well-known "GoldenEye on PC" projects are something
different: they machine-translate the shipped binary of the *unreleased Xbox
360 XBLA remaster*, a different game on a different codebase with no shared
code with this one.
reconstructed source code, the same lineage as the Perfect Dark PC port.
Other GoldenEye PC projects take a different approach: they statically
recompile the Xbox 360 XBLA remaster, a separate version of the game with its
own codebase. The two don't share code, and they target different versions
of the game.
| | This project | The other well-known "GoldenEye on PC" recompilation projects (and their Steam Deck builds) |
| | This project | The XBLA recompilation projects |
|---|---|---|
| **What it ports** | The original **Nintendo 64** game (1997) | The **Xbox 360 XBLA** HD remaster (built ~2007, never released) |
| **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 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 |
| **What it ports** | The original **Nintendo 64** game (1997) | The **Xbox 360 XBLA** remaster |
| **How** | Decompilation-based source port: reconstructed C, compiled for the host | Static recompilation of the Xbox 360 executable |
| **Lineage** | [GoldenEye 007 decompilation](https://github.com/n64decomp/007) + [Perfect Dark PC port](https://github.com/fgsfdsfgs/perfect_dark) engine family | The Xbox 360 static-recompilation family |
---
+2 -2
View File
@@ -57,8 +57,8 @@ Rare "Indy" engine family, one hardware generation apart.
<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.
- **Split-screen multiplayer for up to 4 players**, each player with their
own pad, controls and aim settings.
- **One options menu** for every setting, laid out like the Perfect Dark
port's, with the game's own crosshair as the mouse pointer. Pick the game's
own N64 control styles (1.1–2.4) per player, or the Xbox release's presets
+3 -5
View File
@@ -177,12 +177,10 @@ for d in /opt/homebrew/opt/sdl3/LICENSE.txt /opt/homebrew/opt/sdl3/share/license
if [ -f "$d" ]; then cp "$d" "$OUT/licenses/SDL3.txt"; break; fi
done
# The bundled libgcc_s / libstdc++ are GPL-3.0 with the GCC Runtime Library
# Exception. The Homebrew gcc keg carries COPYING.RUNTIME but only GPL-2.0 as
# COPYING, so the GPL-3.0 text ships from the tree.
# Exception. The Homebrew gcc keg carries only GPL-2.0 as COPYING, so both
# texts ship from the tree.
cp tools_pc/dist/GPL-3.0.txt "$OUT/licenses/gcc-COPYING3.txt"
if [ -f /opt/homebrew/opt/gcc/COPYING.RUNTIME ]; then
cp /opt/homebrew/opt/gcc/COPYING.RUNTIME "$OUT/licenses/gcc-COPYING.RUNTIME.txt"
fi
cp tools_pc/dist/GCC-RUNTIME-EXCEPTION.txt "$OUT/licenses/gcc-COPYING.RUNTIME.txt"
ls "$OUT/licenses"
# --- save converter + asset-prep tool (same assembly as bundle-linux.sh) ---
+2
View File
@@ -95,6 +95,8 @@ cp LICENSE "$OUT/licenses/LICENSE-port-MIT.txt"
# it exists (Debian/Ubuntu), skip silently elsewhere.
SDL2_LIC="$(dpkg -L libsdl2-2.0-0 2>/dev/null | grep -m1 '/copyright$' || true)"
[ -n "$SDL2_LIC" ] && [ -f "$SDL2_LIC" ] && cp "$SDL2_LIC" "$OUT/licenses/SDL2.txt"
# No dpkg (CI's build image): ship the zlib text from the tree.
if [ ! -f "$OUT/licenses/SDL2.txt" ]; then cp tools_pc/dist/SDL2-LICENSE.txt "$OUT/licenses/SDL2.txt"; fi
# --- save converter (D492): emulator .eep <-> port .eep, stdlib-only -----
mkdir -p "$OUT/tools"
+12
View File
@@ -89,6 +89,18 @@ cp LICENSE "$OUT/licenses/LICENSE-port-MIT.txt"
for l in SDL2 zlib gcc-libs libwinpthread mingw-w64; do
[ -d "$MINGW/share/licenses/$l" ] && cp -r "$MINGW/share/licenses/$l" "$OUT/licenses/$l"
done
# Some MSYS2 installs (CI's) have no share/licenses dir for gcc-libs or SDL2;
# the bundled libstdc++/libgcc_s (GPL-3.0 + GCC Runtime Library Exception) and
# SDL2 (zlib) still carry their texts, from the tree.
if [ ! -d "$OUT/licenses/gcc-libs" ]; then
mkdir -p "$OUT/licenses/gcc-libs"
cp tools_pc/dist/GPL-3.0.txt "$OUT/licenses/gcc-libs/COPYING3"
cp tools_pc/dist/GCC-RUNTIME-EXCEPTION.txt "$OUT/licenses/gcc-libs/COPYING.RUNTIME"
fi
if [ ! -d "$OUT/licenses/SDL2" ]; then
mkdir -p "$OUT/licenses/SDL2"
cp tools_pc/dist/SDL2-LICENSE.txt "$OUT/licenses/SDL2/LICENSE.txt"
fi
# --- save converter (D492): emulator .eep <-> port .eep, stdlib-only -----
mkdir -p "$OUT/tools"
+73
View File
@@ -0,0 +1,73 @@
GCC RUNTIME LIBRARY EXCEPTION
Version 3.1, 31 March 2009
Copyright (C) 2009 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
This GCC Runtime Library Exception ("Exception") is an additional
permission under section 7 of the GNU General Public License, version
3 ("GPLv3"). It applies to a given file (the "Runtime Library") that
bears a notice placed by the copyright holder of the file stating that
the file is governed by GPLv3 along with this Exception.
When you use GCC to compile a program, GCC may combine portions of
certain GCC header files and runtime libraries with the compiled
program. The purpose of this Exception is to allow compilation of
non-GPL (including proprietary) programs to use, in this way, the
header files and runtime libraries covered by this Exception.
0. Definitions.
A file is an "Independent Module" if it either requires the Runtime
Library for execution after a Compilation Process, or makes use of an
interface provided by the Runtime Library, but is not otherwise based
on the Runtime Library.
"GCC" means a version of the GNU Compiler Collection, with or without
modifications, governed by version 3 (or a specified later version) of
the GNU General Public License (GPL) with the option of using any
subsequent versions published by the FSF.
"GPL-compatible Software" is software whose conditions of propagation,
modification and use would permit combination with GCC in accord with
the license of GCC.
"Target Code" refers to output from any compiler for a real or virtual
target processor architecture, in executable form or suitable for
input to an assembler, loader, linker and/or execution
phase. Notwithstanding that, Target Code does not include data in any
format that is used as a compiler intermediate representation, or used
for producing a compiler intermediate representation.
The "Compilation Process" transforms code entirely represented in
non-intermediate languages designed for human-written code, and/or in
Java Virtual Machine byte code, into Target Code. Thus, for example,
use of source code generators and preprocessors need not be considered
part of the Compilation Process, since the Compilation Process can be
understood as starting with the output of the generators or
preprocessors.
A Compilation Process is "Eligible" if it is done using GCC, alone or
with other GPL-compatible software, or if it is done without using any
work based on GCC. For example, using non-GPL-compatible Software to
optimize any GCC intermediate representations would not qualify as an
Eligible Compilation Process.
1. Grant of Additional Permission.
You have permission to propagate a work of Target Code formed by
combining the Runtime Library with Independent Modules, even if such
propagation would otherwise violate the terms of GPLv3, provided that
all Target Code was generated by Eligible Compilation Processes. You
may then convey such a combination under terms of your choice,
consistent with the licensing of the Independent Modules.
2. No Weakening of GCC Copyleft.
The availability of this Exception does not imply any general
presumption that third-party software is unaffected by the copyleft
requirements of the license of GCC.
+18
View File
@@ -0,0 +1,18 @@
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.