From 972b7e69bf808deb2582473d4af0abad0bd5e602 Mon Sep 17 00:00:00 2001
From: James Dansereau <106631954+jkdansereau@users.noreply.github.com>
Date: Fri, 11 Sep 2026 17:37:52 -0400
Subject: [PATCH] docs: README update - trim repeated framing, fix stale status
claims, drop going-stale badges (#52)
* docs: step 2 of the docs/site cleanup - README rewrite + agentic-development.md numbers refresh
README: trim the repeated AI-collaboration pitch to one mention with a
link (was stated near-verbatim 3x in this file alone); drop the status/
tested_on/built_with badges (CI + license only - the others just go
stale); cut the duplicate 'by the numbers' table and mermaid diagram
(both live, and are current, in docs/dev/agentic-development.md); tighten
the comparison-table Why-it-exists/Status cells; update the Documentation
table for the site-config change in the prior PR. Fixes the contradictory
status claims: audio (in-level music does not play yet, D77 -- was
claimed both silent and working in different sections) and Linux (not
actively tested since v0.1.0 -- was claimed both untested and level-swept
in different sections).
docs/dev/agentic-development.md: refreshed the 'By the numbers' table
with git-verified figures (calendar range, commit count, bug count,
ABI-edit file/line counts) -- the old numbers were from an earlier
session and had drifted well behind main. Trimmed the italic pitch
block under the H1 to one plain paragraph; left the timeline, milestone
table, and effort-split estimate untouched (maintainer's own record, not
independently re-derivable from git).
Claude-Session: https://claude.ai/code/session_016TaKy6AAsVUTfjkhrX6CjG
* docs: README fixup pass - trim bold/em-dash density, drop redundant WARNING callout
Benchmarked against comparable projects (Perfect Dark PC port, the
GoldenEye-Recomp competitor, ripgrep as a general engineering-README
gold standard): this file was still running ~42 bold spans and 48 em
dashes across ~2,600 words, well above what any of those use, and the
alpha-status callout box duplicated the Status section's own opening
paragraph.
- Bold audit for real this time: kept proper nouns on first mention,
table row labels, and one bullet-lead-phrase convention used
consistently in three lists; cut everything that was just mid-sentence
emphasis or a second bold of something already established (the ROM
phrase, Windows/Linux, v0.1.0, a bolded URL). 42 spans -> 33.
- Un-bolded and merged the duplicate audio/music caveat (was bolded once
in Working and again in Not-yet-working for the same fact).
- Dropped the alpha WARNING callout; folded its one load-bearing
sentence into the Status section's existing opening paragraph instead
of stating it twice in two different box styles. Kept the ROM-supply
IMPORTANT callout - that one's legally load-bearing and not
duplicated elsewhere.
- Varied em-dash-as-everything-connector into periods/colons/semicolons/
parens where a flowing sentence called for it (not touched: the
term-dash-description bulleted lists in Credits/How-it-works/Not-yet-
working, which are a legitimate, consistent convention, not filler).
48 -> 33, and the worst offender (a double-em-dash-wrapped parenthetical
in Background) is gone.
- Reworded the intro's research-angle sentence away from "doubles as a
research project" to plain prose.
Claude-Session: https://claude.ai/code/session_016TaKy6AAsVUTfjkhrX6CjG
---
README.md | 227 ++++++++++++--------------------
docs/dev/LEVEL-STATUS.md | 12 ++
docs/dev/agentic-development.md | 30 ++---
3 files changed, 110 insertions(+), 159 deletions(-)
diff --git a/README.md b/README.md
index 22b5e91f..6fcd8f1b 100644
--- a/README.md
+++ b/README.md
@@ -1,32 +1,24 @@
# GoldenEye 007 PC Port
[](https://github.com/jkdansereau/goldeneye-pc-port/actions/workflows/ci.yml)
--orange)
-

-
-**A native PC port of _GoldenEye 007_ (Rare, 1997, Nintendo 64), compiled from
-the [GoldenEye 007 decompilation](https://github.com/n64decomp/007) — the
-original N64 game running from reconstructed source, not the Xbox 360 remaster.**
-The first alpha, **[v0.1.0](../../releases)**, is out for Windows and Linux: it
-boots, renders the full intro and front end, and runs all 21 solo missions — in
-a full-campaign playtest 19 of the 21 were completable start to finish (two
-levels still crash). **It shipped without audio** — a working software mixer
-landed in the tree afterwards (Phase 3, in progress) and will ship in the next
-release. Rough edges remain. See [Status](#status) and [Background](#background).
+A native PC port of _GoldenEye 007_ (Rare, 1997, Nintendo 64), compiled from
+the [GoldenEye 007 decompilation](https://github.com/n64decomp/007): the
+original N64 game running from reconstructed source, not the Xbox 360
+remaster. The first alpha, [v0.1.0](../../releases), is out for Windows and
+Linux and runs the full campaign with rough edges (see [Status](#status)).
-It is also a **research project on AI-agent collaboration in a large,
-unfamiliar, low-level codebase** — how far two coding agents (a local
-open-weight model and Claude), driven by one person part-time, can be pushed
-through ~230 translation units of unmodified big-endian MIPS game code and made
-to run on a 64-bit desktop. See [Background](#background).
+It's also a case study in AI-agent collaboration on a large, low-level
+codebase: two coding agents, driven by one person part-time, porting ~230
+translation units of unmodified big-endian MIPS game code to a 64-bit
+desktop. See [Background](#background).
Technically, 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. The unmodified game C
-sources are compiled for the host; the N64's Reality Signal Processor (RSP) is
-emulated in software; every other hardware surface (video, audio, input,
+[Perfect Dark PC port](https://github.com/fgsfdsfgs/perfect_dark), the same
+Rare "Indy" engine family, one hardware generation apart. The unmodified game
+C sources are compiled for the host; the N64's Reality Signal Processor (RSP)
+is emulated in software; every other hardware surface (video, audio, input,
timers, save storage) is shimmed in a dedicated `port/` layer.
> [!IMPORTANT]
@@ -39,8 +31,8 @@ timers, save storage) is shimmed in a dedicated `port/` layer.
In-engine, running in the port — Bunker 1 and Dam attract views, and a
- ~15 s clip (no audio yet, Phase 3): mission dossier → Facility → Silo →
- Jungle → Archives.
+ ~15 s clip (the clip itself has no audio track): mission dossier →
+ Facility → Silo → Jungle → Archives.
## Quick start
@@ -75,67 +67,22 @@ Building from source instead: see [Building](#building). Read the
## Background
-Beyond the port itself, this is primarily a **research project on agentic
-software development** — specifically, on AI-agent collaboration in a large,
-unfamiliar, low-level codebase: how far coding agents can be driven, by one
-person working part-time, through ~230 translation units of unmodified
-big-endian MIPS game code, made to run on a 64-bit desktop.
-
-It used two agents:
+The port used two agents handing work back and forth through shared written
+notes (a running handoff doc), directed by one person part-time:
- 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 (Unsloth Desktop was also
- trialed) — which did the groundwork: the CMake build, the boot chain, the
- software-RSP integration, the offline asset-conversion pipeline, and the
- first rendered frames;
+ 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 on 27 Aug 2026 for a
- collaborative phase: the 21-level load/render/no-crash sweep, the ABI/layout
+ 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.
-The two **handed work back and forth** through shared written artifacts:
-
-```mermaid
-flowchart TD
- H["human
direction · integration · playtest"]
- C["Claude
(Claude Code)"]
- Q["Qwen 3.8
(pi, local RTX 5090)"]
- D[("shared artifacts
findings · notes · handoff doc")]
- H -->|"scoped task + budget"| C
- H -->|"scoped task + budget"| Q
- C -->|"patch + write-up"| D
- Q -->|"patch + write-up"| D
- C <-.->|handoff| Q
- D --> H
-```
-
-The handoff document was originally a session-to-session note; it became the
-**interface between the two models** — when Claude hit a usage limit
-mid-problem, the local model picked the task up from that state and continued.
-
-**By the numbers:**
-
-| Metric | Value |
-|---|---|
-| Timeline | ~3 weeks, one person part-time |
-| Commits | ~320 |
-| Root-caused bugs logged | ~190 (`D1`–`D196`; some later merged or withdrawn) |
-| Handoff sessions | ~49 |
-| ABI edits to game code | 69 files, all `#ifdef PORT` |
-| Port layer / tooling | ~17k lines C/C++ · ~6k lines Python |
-| Effort split (milestone-weighted) | ~60% Claude · ~40% local model |
-
-The local model built the entire foundation — build, boot chain, RSP wiring,
-asset converters — then both agents ran the debugging phase together:
-
-- **Day 4** — the full ~230-unit codebase compiles and links
-- **Day 8** — the whole intro renders
-- **Day 13** — all 21 solo missions run crash-free
-- **Day 14** — front end playable end to end
-- **Week 3** — v0.1.0 alpha; a full-campaign playtest completes 19 of 21 missions
-
-Full write-up, timeline chart, and an honest "what worked / what didn't":
+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
@@ -143,89 +90,84 @@ this 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, a different codebase, no shared code with this.
+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.
| | This project | [GoldenEye-Recomp](https://github.com/SunJaycy/GoldenEye-Recomp) / [Steam Deck build](https://github.com/couchk1ng/GoldenEye-Recomp-SteamDeck) |
|---|---|---|
| **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; no source-level understanding |
+| **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; no source-level understanding |
| **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** | WIP, Phase 2, alpha v0.1.0 — runs all 21 levels, 19/21 completable in a full playthrough; no audio; rough edges | Playable full game, higher frame rates, online multiplayer |
-| **Why it exists** | A [case study in AI-agent collaboration](#background) on a hard low-level codebase; the port is the target, not a product | A polished, playable PC release of the remaster |
+| **Status** | WIP alpha; see [Status](#status) | Playable full game, higher frame rates, online multiplayer |
+| **Why it exists** | A [case study in AI-agent collaboration](#background) on a hard low-level codebase | A polished, playable PC release of the remaster |
-**If you just want to play GoldenEye on PC today, use one of the recompilation
-projects — they are finished and this is not.** What is interesting here is the
-other half: getting the *original* game running from source, and how much of
-that work was driven by AI agents.
+If you just want to play GoldenEye on PC today, use one of the recompilation
+projects: they are finished and this is not. What's here is the other half,
+getting the *original* game running from source.
## Status
-> [!WARNING]
-> **Alpha — playable, not polished.** This is a work-in-progress research port.
-> It runs the full single-player campaign and has **working audio** (SFX +
-> music, Phase 3 in progress), but some front-end 3D models and cutscenes are
-> broken, AI characters move too slowly, input has known rough edges, and two
-> levels (Bunker ii, Statue) still crash. Treat it as an early alpha of the
-> porting work, not a finished way to play GoldenEye.
+**Alpha — playable, not polished.** It runs the full single-player campaign
+with no known crashes, but some front-end 3D models and cutscenes are broken,
+in-level music doesn't play yet, and input has known rough edges. A full
+end-to-end re-confirmation that all 21 missions are completable start to
+finish is still owed (see below). Treat it as an early alpha of the porting
+work, not a finished way to play GoldenEye.
-**Phase 3 of 4 (audio + input) in progress; Phase 2 (rendering) essentially
-done. First alpha: [v0.1.0](../../releases) (shipped before audio landed).** The port
-boots, renders, and plays through the front end and the campaign. It is not
-finished and it is not fully stable.
+Phase 3 of 4 (audio + input) is in progress; Phase 2 (rendering) is
+essentially done. First alpha: [v0.1.0](../../releases). The port boots,
+renders, and plays through the front end and the campaign, but is not
+finished or fully stable.
**Working**
- Boot → Rare/Nintendo logos → gun-barrel → cast intro, fully rendered.
- Front end: main menu → mission select → difficulty → briefing → mission start.
-- **All 21 solo missions load and render.** In a full-campaign playtest on the
- packaged Windows build, **19 of 21 were completable start to finish**; Bunker
- ii and Statue crash mid-level (one root cause, tracked as D191). See
+- All 21 solo missions load, render, and are crash-free. A v0.1.0-era
+ full-campaign playtest found two crashing levels (Bunker ii, Statue, one
+ root cause) and an AI-pacing bug that blocked the final level (Cradle) from
+ finishing; both were subsequently root-caused, fixed, and playtest-verified
+ (D191, D193) — a full re-playthrough confirming all 21 missions completable
+ start to finish on the current build is still owed. See
[`docs/dev/LEVEL-STATUS.md`](docs/dev/LEVEL-STATUS.md).
- Software RSP (fast3d): textured world geometry, skeletal characters, HUD,
the GE-specific color-combiner / render modes and `G_TRI4`.
- Input: keyboard + mouse (with mode-aware mouse-look) and SDL game
controllers, mapped onto the N64 pad. Tunable via `ge007.ini`.
- File-backed EEPROM saves.
-- **Audio** — software mixer (libultra audio layer → SDL, adapted from the PD
- port): SFX and music play in-level. Recent fixes: a permanent ~2 % tempo
- drift (D204) and a stuck infinite door loop (D202).
-- **Windows and Linux** (`x86_64`). Windows is the primary development and
- playtest path; the Linux build boots, renders, and passes the level sweep,
- with far less human playtime.
+- Audio — software mixer (libultra audio layer → SDL, adapted from the PD
+ port). In-level sound effects play; in-level music does not play yet
+ (tracked as D77). Front-end/menu audio is unaffected.
+- Windows and Linux (`x86_64`). Windows is the primary development and
+ playtest path. The Linux build was built and smoke-tested (boots, renders,
+ passes the level sweep) at v0.1.0; it has not been actively maintained or
+ retested since.
**Not yet working**
-- **Audio polish** — the mixer works, but Phase 3 is not done: by-ear
- verification of the recent D202/D204 fixes is still owed, and reverb / mix
- balance have not been playtest-tuned.
-- **AI pacing** — scripted and combat AI characters travel to their
- destinations noticeably slower than on N64. This breaks Cradle (the final
- level) via Trevelyan's scripted progression. Top post-alpha fix (D193).
+- **In-level music** — silent; see above (D77).
- **Cutscenes** — frequently glitch: skipped, wrong camera, misplaced or
hovering actors, wrong timing (D148/D160).
- Some front-end 3D models — the spinning Nintendo logo, and the MISSION
COMPLETE / mode-select models — are mispositioned or absent. (The
gun-barrel Bond intro renders correctly.)
-- Outdoor levels render with a **black sky**; assorted other cosmetic defects
- are tracked in
+- Outdoor levels' sky rendering is still being fixed (was solid black; now
+ partially fixed with residual defects); assorted other cosmetic defects are
+ tracked in
[`docs/dev/GRAPHICS-BACKLOG.md`](docs/dev/GRAPHICS-BACKLOG.md).
- No macOS or ARM support; no controller rebinding UI; no widescreen.
-Next up: audio polish (Phase 3), the AI-pacing fix, and the two remaining
-level crashes. Cosmetic defects are tracked in
-[`docs/dev/GRAPHICS-BACKLOG.md`](docs/dev/GRAPHICS-BACKLOG.md).
-
## Download
-Pre-built **Windows** and **Linux** `x86_64` bundles are published under
-[Releases](../../releases), starting with **v0.1.0**. Each contains the engine
+Pre-built Windows and Linux `x86_64` bundles are published under
+[Releases](../../releases), starting with v0.1.0. Each contains the engine
executable, its runtime libraries, and the one-time `prepare-assets` tool —
-**no ROM and no game assets**. See [Quick start](#quick-start) for the four
+no ROM and no game assets. See [Quick start](#quick-start) for the four
steps to get it running, [Requirements](#requirements) for accepted ROMs, and
[Status](#status) for the alpha caveats.
@@ -233,7 +175,7 @@ You can also build it yourself; see [Building](#building).
## Requirements
-You need a **GoldenEye 007 (Nintendo 64) ROM** that you legally own, in
+You need a GoldenEye 007 (Nintendo 64) ROM that you legally own, in
big-endian (`.z64`) format, matching one of:
| Region | ROMID | ROM filename (in `data/`) | SHA-1 |
@@ -273,8 +215,8 @@ cd goldeneye-pc-port
### Linux
-> **Untested.** No one has built or run the port on Linux. The steps below are
-> the intended path, not a verified one — expect to fix build issues yourself.
+Built and smoke-tested at v0.1.0; not actively maintained or retested since —
+the steps below are the intended path, not a continuously verified one.
```sh
sudo apt install build-essential cmake python3 libsdl2-dev zlib1g-dev libgl1-mesa-dev
@@ -292,7 +234,7 @@ The executable is written to `build-pc/ge007.x86_64` (on Windows,
1. Create a `data/` directory in the repo root.
2. Put your ROM in it, named as in the table above
(e.g. `data/ge007.ntsc-final.z64`).
-3. Run the executable **from the repo root**:
+3. Run the executable from the repo root:
`./build-pc/ge007.x86_64`.
Configuration is written to `ge007.ini` on first run.
@@ -315,9 +257,9 @@ Mouse sensitivity, Y-inversion and the aim/turn split are tunable in the
## How it works
-The R4300 game code in `src/` is compiled **completely unmodified** — the
-decompilation's control flow is treated as ground truth. Everything that would
-touch N64 hardware is redirected into `port/`:
+The R4300 game code in `src/` is compiled completely unmodified; the
+decompilation's control flow is treated as ground truth. Everything that
+would touch N64 hardware is redirected into `port/`:
- **`port/fast3d/`** — a software RSP. It interprets the GBI display list the
game builds each frame and emits OpenGL, bypassing the RDP. Adapted from the
@@ -334,7 +276,7 @@ ABI-only edits to ROM-serialized structs (pointer-width reconciliation); these
change no behavior and are documented individually.
Where it diverges from the Perfect Dark port: GoldenEye's N64 serialized asset
-formats (level setup, models, backgrounds) are converted **offline** by a set
+formats (level setup, models, backgrounds) are converted offline by a set
of Python "sidecar" converters in `tools_pc/`, rather than fixed up at load
time. See [`docs/internals.md`](docs/internals.md) and
[`docs/porting-notes.md`](docs/porting-notes.md).
@@ -357,18 +299,17 @@ docs/ see below
## Documentation
Key docs are also published as a site:
-****.
+.
| Doc | What's in it |
|---|---|
| [`docs/building.md`](docs/building.md) | Full build + asset-extraction guide. |
| [`docs/internals.md`](docs/internals.md) | Architecture, the RSP-emulation approach, GE-vs-PD engine differences, the phased plan. |
| [`docs/porting-notes.md`](docs/porting-notes.md) | The recurring N64→PC bug classes hit during the port, with fixes. |
-| [`docs/dev/game-behavior-reference.md`](docs/dev/game-behavior-reference.md) | How the retail N64 game is meant to behave — combat/AI model, difficulty scaling, per-level objectives, timers, weapon data, original-game quirks. Playtest reference. |
| [`docs/dev/agentic-development.md`](docs/dev/agentic-development.md) | The research angle: the two-agent setup, timeline, handoff workflow, and an assessment of what did and didn't work. |
| [`docs/dev-process.md`](docs/dev-process.md) | The investigation workflow in detail — budgets, file partitioning, the finding-log discipline. |
-| [`docs/dev/`](docs/dev/) | The raw engineering record: the full finding log, per-level status, graphics backlog, playtest matrices. |
-| [`docs/SetupGuide.md`](docs/SetupGuide.md), [`docs/StructureGuide.md`](docs/StructureGuide.md), [`docs/StyleGuide.md`](docs/StyleGuide.md) | Inherited from the decompilation. |
+| [`docs/dev/`](docs/dev/) | The raw engineering record: the full finding log, per-level status, graphics backlog, playtest matrices, and [`docs/dev/game-behavior-reference.md`](docs/dev/game-behavior-reference.md) (a secondary-sourced playtest reference for how the retail game is meant to behave — repo-only, code is ground truth). |
+| [`docs/SetupGuide.md`](docs/SetupGuide.md), [`docs/StyleGuide.md`](docs/StyleGuide.md) | Inherited from the decompilation this repo forks. |
## Credits
@@ -431,11 +372,11 @@ GitHub. It follows the same conventions they do:
- No official logos, box art, or marketing assets are used. "GoldenEye 007",
"007", "James Bond" and related marks belong to their respective owners
(Nintendo, Microsoft/Rare, MGM, Danjaq, EON Productions).
-- **Pre-built binaries** published under [Releases](../../releases) contain
- only the engine — the `port/` layer plus the compiled decompilation, with no
- game data of any kind — bundled with permissively-licensed runtime libraries
+- Pre-built binaries published under [Releases](../../releases) contain
+ only the engine (the `port/` layer plus the compiled decompilation, with no
+ game data of any kind), bundled with permissively-licensed runtime libraries
(SDL2, zlib, the MinGW runtime; their licenses travel in the download). Any
- build — yours or ours — is useless without a ROM you supply.
+ build, yours or ours, is useless without a ROM you supply.
This project is **not affiliated with, endorsed by, or sponsored by** Nintendo,
Rare, Microsoft, MGM, Danjaq, EON Productions, or any rights holder in
@@ -444,7 +385,7 @@ issue and it will be addressed.
## License
-The original work in this repository — the port layer (`port/`), the PC build
-system, `tools_pc/`, and the documentation — is released under the MIT License,
+The original work in this repository, the port layer (`port/`), the PC build
+system, `tools_pc/`, and the documentation, is released under the MIT License;
see [`LICENSE`](LICENSE). Everything inherited from the upstream decompilation
is covered by [`NOTICE`](NOTICE), not by that license.
diff --git a/docs/dev/LEVEL-STATUS.md b/docs/dev/LEVEL-STATUS.md
index 2b0345ed..1df06f67 100644
--- a/docs/dev/LEVEL-STATUS.md
+++ b/docs/dev/LEVEL-STATUS.md
@@ -7,6 +7,18 @@ auto-injected, D121), `GE_PCDUMP="80-260:40"`, ~24 s watchdog then
0x140000000). "render %" = `tools_pc/pixcount.py` non-clear on the last
captured frame. Binary at `f2beae4b` + this session's build.
+**M-79/M-81 catch-up note (added M-91, since these fixes were never given a
+LEVEL-STATUS entry of their own).** Both crashers below (D191) and the
+AI-pacing bug (D193) that blocked Cradle were subsequently root-caused,
+fixed, and playtest-verified: D191 in M-79 (user replayed both trigger
+scenes — Bunker ii first-guard kill, Statue post-Trevelyan cutscene — neither
+crashes; **21/21 solo levels crash-free**), D193 in M-81 (user-verified on
+Cradle itself — Trevelyan and the guards run at correct pace; root cause was
+D209). **No known crashing levels as of M-91.** What's still open is a full
+21-mission end-to-end re-playthrough confirming completability on the
+current build (the "v0.2.0 gate" in `docs/HANDOFF.md`) — the M-49 playtest
+below predates both fixes and should not be read as current.
+
**M-49 (2026-09-04) — full-campaign playtest, v0.1.0 win64 bundle.**
User played every solo mission on the packaged build (fresh save). **19 / 21
completable start to finish.** Only two crashes in the whole game — **Bunker ii
diff --git a/docs/dev/agentic-development.md b/docs/dev/agentic-development.md
index 29155a70..0de953bc 100644
--- a/docs/dev/agentic-development.md
+++ b/docs/dev/agentic-development.md
@@ -1,12 +1,10 @@
# Agentic development: two AI coding agents porting GoldenEye 007
-*A case study in AI-agent collaboration on a large, low-level codebase. A
-GoldenEye 007 Nintendo 64 → desktop port, taken from "builds a ROM" to
-"playable front end" in about two weeks — driven mostly by two coding agents (a
-local open-weight model, Qwen 3.8, on a single RTX 5090, and a hosted frontier
-model, Claude / Claude Code), handing work back and forth through shared
-written notes under one person's part-time direction. This is the goal, the
-method, the timeline, and an honest read on what did and didn't work.*
+*How this port was actually built: a local open-weight model (Qwen 3.8 on a
+single RTX 5090) and a hosted frontier model (Claude / Claude Code) handing
+work back and forth through shared written notes, under one person's
+part-time direction. The goal, the setup, the timeline, and an honest read on
+what did and didn't work.*
## Contents
@@ -104,15 +102,15 @@ issues still outstanding.
| | |
|---|---|
-| Calendar time | 16 days (16 Aug – 1 Sep 2026), one person part-time |
-| Commits on the port | ~223 |
-| Root-caused bugs logged | 162 (`D1`–`D169` in [`findings.md`](https://github.com/jkdansereau/goldeneye-pc-port/blob/main/docs/dev/findings.md); some later merged or withdrawn) |
-| Handoff sessions | ~33 (`M-2` … `M-33`) |
-| Game-source files given `#ifdef PORT` ABI edits | 63 files, 241 blocks |
-| New port-layer / tooling files | 128 |
-| Port layer | ~17,000 lines C/C++ (`port/`) |
-| PC asset-conversion tooling | ~6,300 lines Python (`tools_pc/`) |
-| Outcome | intro + all 21 solo missions render, front end playable; audio not yet done |
+| Calendar time | 26 days (17 Aug – 11 Sep 2026), one person part-time |
+| Commits on the port | ~430 |
+| Root-caused bugs logged | `D1`–`D226` in [`findings.md`](https://github.com/jkdansereau/goldeneye-pc-port/blob/main/docs/dev/findings.md), 116 still-listed entries (some labels later merged or withdrawn) |
+| Handoff sessions | 89+ (`M-2` … `M-89`, and counting) |
+| Game-source files given `#ifdef PORT` ABI edits | 67 files, ~305 blocks |
+| New port-layer / tooling files | ~114 |
+| Port layer | ~21,900 lines C/C++ (`port/`) |
+| PC asset-conversion tooling | ~7,050 lines Python (`tools_pc/`) |
+| Outcome | intro + all 21 solo missions render and are crash-free, front end playable, in-level SFX + menu/intro music play; in-level music and full-campaign completion re-confirmation still owed |
### Commit velocity