diff --git a/README.md b/README.md index 4d985a84..7d356f48 100644 --- a/README.md +++ b/README.md @@ -39,8 +39,9 @@ timers, save storage) is shimmed in a dedicated `port/` layer. ## Quick start -You supply your own **NTSC-U GoldenEye 007 N64 ROM** (`.z64`, big-endian) — no -ROM or game asset is included or distributed. Then: +You supply your own **GoldenEye 007 N64 ROM** (`.z64`, big-endian; NTSC-U +recommended — all three regions are supported, see [Requirements](#requirements)). +No ROM or game asset is included or distributed. Then: 1. Download the Windows or Linux bundle from [Releases](../../releases) and unpack it. The Linux bundle ships its own SDL2, so it runs on any distro — and on a Steam Deck — with nothing installed. 2. Make a `data/` folder next to the executable and drop the ROM in as `ge007.ntsc-final.z64`. @@ -50,9 +51,25 @@ ROM or game asset is included or distributed. Then: Building from source instead: see [Building](#building). Read the [Status](#status) caveats first — this is a pre-release. +## Beyond playing + +- **Tweak it** — `ge007.ini` and the F10 in-game overlay expose resolution, + frame cap, MSAA, texture filtering, FOV/draw distance and mouse feel; + launch with `-fresh` for a clean-slate run. +- **Read it** — [`docs/internals.md`](docs/internals.md) maps the + architecture and the software RSP; [`docs/porting-notes.md`](docs/porting-notes.md) + is the catalogue of N64→PC bug classes hit along the way. Game logic in + `src/` is unmodified decompilation; every hardware surface lives in the + MIT-licensed `port/` layer. +- **Mod it** — the port layer, build system and `tools_pc/` are yours to + extend (see [License](#license)); [`CONTRIBUTING.md`](CONTRIBUTING.md) has + the ground rules for getting changes in, and [`docs/dev/`](docs/dev/) is + the raw engineering record behind every fix. + ## Contents - [Quick start](#quick-start) +- [Beyond playing](#beyond-playing) - [Background](#background) - [How this differs from the other GoldenEye PC projects](#how-this-differs-from-the-other-goldeneye-pc-projects) - [Status](#status) @@ -69,26 +86,20 @@ Building from source instead: see [Building](#building). Read the ## Background -The port used two agents handing work back and forth through shared written -notes (a running handoff doc), directed by one person part-time: +The port was built by two coding agents — a local open-weight model +(`unsloth/Qwen3.8-27B-GGUF` on one RTX 5090, via the [pi](https://pi.dev/) +agent) doing the groundwork (build, boot chain, software-RSP integration, +asset pipeline, first frames), and **Claude Code** (Sonnet 5, Opus 5 for the +hardest bugs) joining for the collaborative phase (the 21-level sweep, the +ABI finding catalog, SDL input, front end) — handing work back and forth +through shared written notes, directed by one person part-time. In short: +~3.5 weeks, ~430 commits, 200+ root-caused bugs logged. -- a **local open-weight model** — - `unsloth/Qwen3.8-27B-GGUF:UD-Q4_K_XL` on a single **RTX 5090**, driven mainly - through the **[pi](https://pi.dev/)** coding agent — which did the - groundwork: the CMake build, the boot chain, the software-RSP integration, - the offline asset-conversion pipeline, and the first rendered frames; -- **Claude** (via **Claude Code** — mostly **Sonnet 5**, with **Opus 5** as an - escalation tier for the hardest bugs), which joined for a collaborative - phase covering the 21-level load/render/no-crash sweep, the ABI/layout - finding catalog, the SDL input layer, and the front-end flow. - -In short: ~3.5 weeks, one person part-time, two agents, ~430 commits, 200+ -root-caused bugs logged. The full write-up (timeline, the handoff mechanism, -commit/effort breakdown, and an honest "what worked / what didn't") lives in -[`docs/dev/agentic-development.md`](docs/dev/agentic-development.md). The -workflow itself: [`docs/dev-process.md`](docs/dev-process.md). To cite this -project or its findings, use [`CITATION.cff`](CITATION.cff) (GitHub's "Cite -this repository" menu). +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). +The workflow itself: [`docs/dev-process.md`](docs/dev-process.md). To cite the +project or its findings: [`CITATION.cff`](CITATION.cff) (GitHub's "Cite this +repository" menu). ## How this differs from the other GoldenEye PC projects diff --git a/docs/index.md b/docs/index.md index 36a7b4af..d6c1ecc8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,30 +1,83 @@ --- title: GoldenEye 007 PC Port -description: Landing page for the GoldenEye 007 PC port — what it is, current status, and links to the build guide and engineering documentation. +description: >- + A native PC port of the original Nintendo 64 GoldenEye 007, built from its + decompiled source with a software RSP. v0.2.0 pre-release is out for Windows + and Linux (including Steam Deck) — download it, drop in your own ROM, and + play; or dig into the code and the engineering record behind it. --- # GoldenEye 007 PC Port -A work-in-progress native PC port of the original 1997 Nintendo 64 -_GoldenEye 007_, compiled from the game's -[decompiled source](https://github.com/n64decomp/007) and running the N64's -graphics coprocessor in software. It follows the architecture of the -[Perfect Dark PC port](https://github.com/fgsfdsfgs/perfect_dark). +A native PC port of the original 1997 Nintendo 64 _GoldenEye 007_, compiled +from the game's [decompiled source](https://github.com/n64decomp/007) with +the N64's graphics coprocessor (RSP) running in software. It follows the +architecture of the +[Perfect Dark PC port](https://github.com/fgsfdsfgs/perfect_dark), the same +Rare "Indy" engine family, one hardware generation apart. It's also a case study in AI-agent collaboration on a large, low-level -codebase: two coding agents (a local open-weight model, Qwen 3.8, on a single -RTX 5090, and Claude / Claude Code), driven by one person part-time through -~230 translation units of unmodified big-endian MIPS game code, handing work -back and forth through shared written notes. +codebase: two coding agents (a local open-weight model on a single RTX 5090, +and Claude / Claude Code), driven by one person part-time through ~230 +translation units of unmodified big-endian MIPS game code, handing work back +and forth through shared written notes. -**Status:** alpha, [v0.1.0](https://github.com/jkdansereau/goldeneye-pc-port/releases) -released. Runs the full single-player campaign — all 21 missions load, render, -and are crash-free; a full re-playthrough confirming all 21 completable start -to finish is still owed. In-level sound effects and in-level music both play; -a handful of tracks have wrong-sounding instruments or occasional garbling. -AI pacing and cutscenes are rough. +**Status: v0.2.0 pre-release.** The full single-player campaign runs at a +steady 60 fps with no known crashes, and audio (music + SFX) plays +throughout. Known rough edges: cutscenes still glitch, a few music tracks +sound wrong, and a handful of cosmetic rendering defects remain — the +[README's Status section](https://github.com/jkdansereau/goldeneye-pc-port#status) +is the honest list. -- [Project repository and README](https://github.com/jkdansereau/goldeneye-pc-port) — build instructions, requirements, status, how it compares to the Xbox 360 recompilation projects. +## Download + +| Platform | Bundle | Notes | +|---|---|---| +| **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 — it runs as-is on any distro, and sideloads onto a Deck with nothing installed. | + +Both bundles contain **no ROM and no game assets** — you supply your own +GoldenEye 007 N64 ROM (the +[Requirements table](https://github.com/jkdansereau/goldeneye-pc-port#requirements) +has the three region filenames and SHA-1s). Then: unpack, drop the ROM in +`data/`, run `prepare-assets` once, launch. The full four steps are in the +[Quick start](https://github.com/jkdansereau/goldeneye-pc-port#quick-start); +pre-built releases are legal to distribute precisely because they're useless +without a ROM you already own. + +## Play it — or take it apart + +- **Try it yourself** — grab a bundle above, bring your own ROM, and play the + campaign. It's a pre-release cut for exactly this: if something breaks, an + [issue](https://github.com/jkdansereau/goldeneye-pc-port/issues) with what + you were doing is genuinely useful. +- **Read the code** — the game logic in `src/` is unmodified decompilation; + every hardware surface (video, audio, input, save storage, and the + software-RSP renderer) is shimmed in the MIT-licensed `port/` layer. + [Internals](internals.md) is the map; [Porting notes](porting-notes.md) is + the catalogue of N64→PC bug classes hit along the way — a good read even if + you never touch the code. +- **Mod it** — the port layer, build system and `tools_pc/` helpers are MIT + licensed and yours to extend: new video options, input tweaks, your own + asset sidecar. [CONTRIBUTING](https://github.com/jkdansereau/goldeneye-pc-port/blob/main/CONTRIBUTING.md) + has the ground rules that keep it faithful to the original game. +- **The research angle** — [the two-agent development case study](dev/agentic-development.md): + goal, setup, timeline, the handoff workflow, and an honest assessment of + what did and didn't work. + +## In-engine + +
+
+
+
+
+
~15 s of the port running: mission dossier → Facility → Silo → Jungle → Archives (the clip has no audio track).
+