The PS1 branch changed shape several times between October 2025 and April 2026. Each era had its own standards, its own tooling, and its own definition of verified. This page walks them in order. The raw source for the dates and dispositions is timeline.yaml.

The five eras overlap at their edges. That’s accurate to the work — the harness era didn’t end at midnight on April 11, it tapered off as the foreground pilot started looking like the answer.

2025-10-18 → 2026-03-16

On this page

Embedded port bootstrap and runtime survival

This is the era of “make the console boot.” Cross-compilation through PSn00bSDK 0.24 inside a Docker image, the CD layout XML, a CMake configuration that targets MIPS, and the slow grind of CD-ROM I/O. The graphics layer started at 700 lines and grew past 3,000 as primitive ordering bugs, sprite alignment quirks, and heap stability problems were tracked down one at a time. The acceptance bar was modest: the game runs at native 640x480, scenes load from disc, nothing crashes on long playback. Most of the foundational decisions that the rest of the project still rests on — the resource hash table, the LRU sprite cache, the dirty-rect bookkeeping — were made during this stretch. It’s preserved in the cleanup plan as foundational origin story.

2026-03-17 → 2026-03-28

Restore packs and the rollout surface

By March, the runtime worked but scene continuity didn’t. Sierra’s original engine relies on replay continuity — playing prior scenes to establish state for the current one. On the PS1, with CD seek latency and 2 MB of main RAM, that wasn’t viable. The response was an offline pipeline: analyze every scene, write a restore spec that declared which resources and dirty regions the scene needed, cluster shared specs into 34 contracts, emit a 1000-line auto-generated header (ps1_restore_pilots.h). The pipeline was real engineering and it produced 25 of 63 scenes claimed verified by March 21. Read carefully later, “verified” here meant “rendered without crashing in a headless harness.” That’s not the same as “looks right to a human.” This era is preserved as historical research; the authoring scripts still exist, the contracts file is still in the tree, but it’s no longer the active path.

2026-03-29 → 2026-04-11

Validation and instrumentation maximalism

This is the period when the project tried to solve correctness with tooling. HTML review surfaces, semantic-truth manifests, classifier packs, OpenVINO-backed VLM review, headless regtest sweeps, agent prompts written explicitly to distrust what the harness reported. The validation log on 2026-03-29 claimed 63 of 63 scenes verified. That number is now flagged in the project’s own status docs as a false summit — the harness was counting black frames and ocean-only frames as valid. The skepticism was right; the infrastructure built to express that skepticism is what survived. The takeaway, hard-won: automation supports archaeology, not certification. A scene is validated when a human watches it run and listens to the SFX. Everything else is a hint.

2026-04-04 → 2026-04-11

Binary library and regression archaeology

Overlapping with the late maximalism era, this stretch built a large historical binary corpus and the bisection tooling to query it. The question was: when did FISHING 1 start working, and when did it stop? The branch had broken and recovered multiple times in the weeks before, and the binary library — every PS-EXE and CD image worth keeping, indexed by commit and date — was the way to find the exact onset commit for any given visual symptom. It was effective debugging. It is also why the repo accumulated several gigabytes of binaries that have since been pruned to manifests-only. The corpus is preserved as searchable history, archived out of the primary branch surface.

2026-04-12 → 2026-04-22

Foreground playback pivot to validated baseline

The decisive era. On 2026-04-12, two commits — 1c7481ca (“Add host foreground scene export pilot”) and 77276e50 (“Add PS1 foreground playback pilot scaffold”) — started the work that became the project’s primary methodology. The host runs the original bytecode; the PS1 plays back the captured pixels and audio events. Over the next ten days the pilot graduated from a single-scene experiment to a working pipeline: full-frame FISHING 1 capture (e24c2c23, 04-13), generic foreground runtime proven on FISHING 2 (de1e0b89, 04-14), ocean base restored under the foreground runtime (44cec0a6, 04-18), scene-relative packs (5ea67b35, 04-19), animated shore waves (74bb0c24, 04-21), captured DRAW_LINE and DRAW_PIXEL events (8670d2a5, 04-22), holiday overlays wired through (67822af1), night-mode and host CLI overrides (33263ced). v0.3.5-ps1 (9448d49f, 04-22) declared FISHING 1 pixel-perfect across all variants. v0.3.6-ps1 (f2737253, later that same day) added the full SFX pipeline — host capture, VAG encoding, PS1 playback, key-on alignment. That release is the first real validated scene under the current bar. The methodology is preserved as authoritative current and is what every subsequent scene gets brought up under.

2026-04-23 → 2026-05-06

Feature build-out, validation grind, performance baseline

After v0.3.6-ps1 the work split into three overlapping arcs. The first was feature build-out: the holidays codegen pipeline expanding 4 to 36, the pause menu reachable with Start, the SPI pad-poll fix, story-loop walking that ended Johnny’s between-scene teleport in v0.4.20-ps1, freeplay and the debug catalogs in v0.5.0-ps1, and the ocean-ambience SPU loop in v0.6.0-ps1. The second was the 63-scene grind through the v0.6.x bring-up cluster: v0.7.0-ps1 (2026-05-05) declared the scene ledger complete — 63 of 63 scenes pixel-perfect under the FISHING 1 bar across every applicable variant. The third was the post-validation performance loop that closed the headless matrix gap from +17.4% over target / 87.1% target speed at the v0.7.0 baseline to +0.9% over target / 99.5% target speed at v0.8.0-ps1, plus the stability follow-on in v0.8.1-ps1 that fixed a clean-rect pressure freeze the per-commit matrix never reached. v0.8.2-ps1 and v0.8.3-ps1 (2026-05-07 / 2026-05-08) closed the VISITOR3 and WALKSTUF1 outliers — the public-capped matrix mean now sits at 99.7% target speed across the 120 timing-bearing rows. v0.8.4-ps1 (2026-05-08) is the chapter-select grind: no perf code or pack content changed, but every one of the 63 packs got walked on hardware and the per-scene website metadata got reconciled against what the discs actually play. The loop also caught a manifest gap that had silently dropped 21 of the 63 chapter- select thumbnails from the CD. The lab essays on each arc are the deep dives; this entry is the chronological anchor.


The dated worklogs for every commit between these eras live at /devlog/. The full narrative walkthrough is at /archaeology/.