P5's gate is 'a human clicks through it' and no document told a human how. The commands existed in boot.gd's header and scattered through a twelve-thousand-line DECISIONS.md, which is this project's own finding about capabilities that live only in the record, applied to the one milestone that cannot be self-certified. docs/port/RUNNING.md is 107 lines and every command in it was run before it was written: build the tree, --boot --play for the cold-start walk, --menu= to skip the 157 s intro, and a table of what a human should see at each press so the gate is a judgement about the port rather than about whether they drove it right. It does not claim P5 is met; it removes the excuse that the gate was hard to attempt. Three sections exist because a reader would otherwise report the container as a defect: what is knowingly missing (four of five destinations measured but in other archives, each printing what it would have opened; NEW GAME's skipped chain as a stated gap), what this container distorts (720p decodes +6.7-6.9% slow, the dummy audio driver means you hear nothing, the exit leak line is engine-side at 8 to 8), and how mod overrides report themselves. The Decoder reported BLOCKED.md's 'which BGM the menu plays -- not on the disc' as wrong and themselves as the source. The row has been struck and corrected for days, and I am telling them rather than silently fixing a live row -- their own asymmetry, that a wrongly-superseded row removes a live question from both views. The correction already contains the diagnosis they have just made. It says the negative is bounded -- the TABLES name no screen -- cites li r5 1103 and the byte-for-byte wave match, and ends: a row here must quote the reach of a negative, because a negative summarised without its bound reads as a bigger negative than it is. Their message reports arriving at the same thing independently. Fourth instance of the connection failure and the sharpest yet: the three before were an answer sitting unread, this one was an answer sitting ADDRESSED. Their method note inverts my own v1-to-v3 story and is the transferable part: my 'a report with a standing false positive is one nobody reads' nearly made them filter a 40-candidate sweep. Instead they measured what the false positives were -- guessed infrastructural nouns, 5 of 40; the real category was 'not on the disc' used as a classification legend -- and reading those found the one that was not. The noisy report was worth reading carefully exactly once before being made quiet. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
68 lines
3.0 KiB
Markdown
68 lines
3.0 KiB
Markdown
# Sylpheed
|
|
|
|
A clean-room reverse engineering and port project for **Project Sylpheed: Arc of
|
|
Deception** (Xbox 360, 2007).
|
|
|
|
Three things live here, in one repository so that a change spanning them lands as
|
|
one commit:
|
|
|
|
| | |
|
|
|---|---|
|
|
| **The decoders** | `crates/sylpheed-formats` — the disc's formats, read and verified disc-wide |
|
|
| **The port** | `port/` — a Godot 4 project, plus `crates/sylpheed-export` which converts a disc into the open asset tree it reads |
|
|
| **The corpus** | `docs/re/` — what has been reverse engineered, with its evidence, its retractions and its dead ends |
|
|
|
|
**You need your own copy of the game.** No game content is in this repository and
|
|
none ever will be. The exporter reads the disc you supply.
|
|
|
|
## The oracle is the real game
|
|
|
|
> `sylpheed-cli` and the Explorer are **tools for verifying our decoding**. They
|
|
> are hypotheses under test and they have been wrong. When something must be
|
|
> checked against the truth, the truth is **the game running in Xenia Canary**,
|
|
> captured — not any renderer of ours.
|
|
|
|
This is stated first because getting it backwards is the most expensive mistake
|
|
this project has made.
|
|
|
|
## Layout
|
|
|
|
```
|
|
crates/
|
|
sylpheed-formats/ the decoders. Disc-wide verified; the corpus is its spec
|
|
sylpheed-cli/ headless tools -- render a screen, dump a table, probe audio
|
|
sylpheed-viewer/ the Explorer: a human's window onto the disc. STATIC data only
|
|
sylpheed-export/ disc -> the open, moddable asset tree
|
|
port/ the Godot 4 project. Reads open formats ONLY
|
|
authored/ decisions that are NOT on the disc, each with its reason
|
|
data/
|
|
base/ generated by the exporter. Gitignored, never hand-edited
|
|
mods/ drop-in overrides. Yours
|
|
docs/
|
|
re/ the corpus: findings, refutations, method traps
|
|
game/ how the game is navigated -- menus, modals, flight
|
|
port/ the port's mission, its handoff contract, modding rules
|
|
-- and RUNNING.md, which is how you actually start it
|
|
agents/ how the agent team works together
|
|
tools/ capture harnesses, probes, the share tool
|
|
exchange/ transient inter-agent files. NOT in git
|
|
docker/ the agent containers
|
|
```
|
|
|
|
## Where to start
|
|
|
|
* [`docs/re/INDEX.md`](docs/re/INDEX.md) — what is decoded
|
|
* [`docs/re/REFUTED.md`](docs/re/REFUTED.md) — what has been tested and died
|
|
* [`docs/re/METHOD.md`](docs/re/METHOD.md) — traps this project has already paid for
|
|
* [`docs/game/navigation.md`](docs/game/navigation.md) — how the game is navigated
|
|
* [`docs/port/MODDING.md`](docs/port/MODDING.md) — why the asset tree looks the way it does
|
|
|
|
Xenia Canary is a **separate** repository: it is a fork tracking upstream, and it
|
|
carries our instrumentation.
|
|
|
|
## Conventions
|
|
|
|
Confidence is per claim, never per document: ✅ `CONFIRMED` · 🟡 `PROBABLE` ·
|
|
❔ `HYPOTHESIS` · ❌ `REFUTED`. A withdrawn result is kept with its reasoning
|
|
rather than deleted — that is why the numbers here can be trusted.
|