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 [![CI](https://github.com/jkdansereau/goldeneye-pc-port/actions/workflows/ci.yml/badge.svg)](https://github.com/jkdansereau/goldeneye-pc-port/actions/workflows/ci.yml) -![status](https://img.shields.io/badge/status-alpha_v0.1.0_(Phase_2_of_4)-orange) -![tested on](https://img.shields.io/badge/tested_on-Windows_%2B_Linux_x86--64-blue) ![license](https://img.shields.io/badge/license-MIT-green) -![built with](https://img.shields.io/badge/built_with-coding_agents-8A2BE2) -**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. ~15 s of the port running: mission dossier, Facility, Silo, Jungle, Archives Dam intro camera
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