diff --git a/docs/re/INDEX.md b/docs/re/INDEX.md index 22d7ae90..3741f379 100644 --- a/docs/re/INDEX.md +++ b/docs/re/INDEX.md @@ -5,7 +5,8 @@ Confidence: โœ… `CONFIRMED` ยท ๐ŸŸก `PROBABLE` ยท โ” `HYPOTHESIS`. See [README] Also durable, and worth reading before proposing anything: [`REFUTED.md`](REFUTED.md) โ€” what has already been tested and died ยท [`METHOD.md`](METHOD.md) โ€” the traps this corpus has already paid for ยท -[`BACKLOG.md`](BACKLOG.md) โ€” what is still open. +[`BACKLOG.md`](BACKLOG.md) โ€” what is still open ยท +[`disc-contents.md`](disc-contents.md) โ€” what files the disc actually holds, and where. Formats we've already reversed are, for now, **documented by their parser + disc round-trip tests** (the executable spec) rather than a prose file โ€” the "Spec" column points there. @@ -72,6 +73,7 @@ files, which is how the same ground got covered twice. | [`autopilot-memory-driven.md`](autopilot-memory-driven.md) | Memory-driven autopilot โ€” build log and current state | ๐ŸŸข IT FLIES, KILLS AND SURVIVES โ€” but it loses the mission anyway. | | [`canary-scripted-input-traps.md`](canary-scripted-input-traps.md) | Getting past the title screen in the container โ€” three traps and one blocker | โœ… CONFIRMED for the three traps (each reproduced, and two of them | | [`challenge-mission-gate.md`](challenge-mission-gate.md) | Challenge / EX missions โ€” the stage set, the GamePart graph, and the kind field | โœ… for the static structure (stage set, GamePart ids, the config-section | +| [`disc-contents.md`](disc-contents.md) | What is actually on the disc, and where | โœ… CONFIRMED โ€” layout, counts and `media_id` re-measured against the retail extract 2026-09-18; `resource3d/` is in `hidden/`, not `dat/` | | [`dynamic-re-state-restore.md`](dynamic-re-state-restore.md) | The container's dynamic-RE state is not durable โ€” how to rebuild it | โœ… CONFIRMED by rebuilding it (2026-08-23). Everything the dynamic | | [`flight-controls-runtime.md`](flight-controls-runtime.md) | In-flight control mapping โ€” measured, not assumed | โœ… for the weapon bindings (ammo counters move), ๐ŸŸก for the rest (HUD | | [`flight-speed-law.md`](flight-speed-law.md) | The throttle is a TARGET-SPEED selector โ€” measured against the definition (2026-08-13) | โœ… for the shape of the law, ๐ŸŸก for the unit scale. | diff --git a/docs/re/disc-contents.md b/docs/re/disc-contents.md new file mode 100644 index 00000000..563a2d80 --- /dev/null +++ b/docs/re/disc-contents.md @@ -0,0 +1,104 @@ +# What is actually on the disc, and where + +**Status:** โœ… `CONFIRMED` for the layout and the counts โ€” every figure below was +re-measured against the retail extract on 2026-09-18, not copied from the source +document. โœ… `CONFIRMED` for `media_id`, read from the XEX header. + +This page exists because the corpus never had one: it documents formats in depth +(see [INDEX](INDEX.md)) but nowhere said **what files the disc holds and where they sit**. +It is adopted from a pre-RE-era `GAME_CONTENTS.md` that lived homeless in the workspace +root through the repository consolidation. **Only the measured parts were carried over** โ€” +see [What was dropped](#what-was-dropped-and-why) at the end, which matters more than the +rest of the page. + +Extracted from the XISO image with [extract-xiso](https://github.com/XboxDev/extract-xiso). + +--- + +## Identity + +| Field | Value | Source | +|---|---|---| +| `media_id` | `0x2D2E2EEB` | XEX `execution_info`, via `.xex.json` | +| `title_id` | `0x53512D14` (`"SQ"` + `0x2D14`) | XEX `execution_info` | +| `disc_number` / `disc_count` | 1 / 1 | XEX `execution_info` | + +--- + +## Top-level layout + +``` +/ +โ”œโ”€โ”€ default.xex โ† the game executable (XEX2, PowerPC BE) +โ”œโ”€โ”€ config.ini โ† language table (Shift-JIS comments) +โ”œโ”€โ”€ $SystemUpdate/ โ† su20076000_00000000 (dashboard update, not game data) +โ”œโ”€โ”€ dat/ โ† 71 entries +โ””โ”€โ”€ hidden/ โ† 5 entries +``` + +โš ๏ธ **`resource3d/` is in `hidden/`, not in `dat/`.** So are `DefTables` and `MiscBin`. +The source document placed all three under `dat/`; that is wrong, and it is the reason +this page re-measured rather than transcribed. `SYLPHEED_RES3D` points at +`hidden/resource3d` for exactly this reason. + +### `dat/` โ€” 71 entries + +| Group | Count | Note | +|---|---|---| +| `*.pak` + `*.p00` pairs | 33 + 33 | the IPFB archives โ€” format โœ… decoded, see [INDEX](INDEX.md) | +| `sound.pak` + `sound.p00`โ€“`.p04` | 6 | one archive whose payload is split across five chunks | +| `movie/` | 109 entries | | + +`dat/movie/` holds **97 `.wmv`** files plus **six language packs** as `.pak`/`.p00` +pairs (`deu eng esp fra ita jpn`). โš ๏ธ Those packs carry **subtitles and fonts, not voice** โ€” +all voice and SFX live in `sound.pak`. That trap is recorded separately; do not go looking +for dialogue audio in the movie directory. + +### `hidden/` โ€” 5 entries + +| Entry | Size | Note | +|---|---|---| +| `resource3d/` | 166 files | `.xpr` texture/model containers (`Base.xpr`, `BG_*.xpr`, stage and ship sets) | +| `DefTables.pak` / `.p00` | 17 596 B / 3 058 037 B | balance and definition tables | +| `MiscBin.pak` / `.p00` | 496 B / 22 553 238 B | | + +--- + +## `config.ini` + +Plain-text INI, **Shift-JIS** comments (they render as mojibake in a UTF-8 reader โ€” the +file is not corrupt). `[SYSTEM]` is present but empty; `[LANGUAGE]` maps the Xbox 360 +locale constants onto the disc's three-letter directory names, with `eng` as the default: + +```ini +[LANGUAGE] + = eng ; default +#0x01 = eng ; XC_LANGUAGE_ENGLISH +#0x02 = jpn ; XC_LANGUAGE_JAPANESE +#0x03 = deu ; XC_LANGUAGE_GERMAN +``` + +Those keys are why the six-language pack naming above is what it is. + +--- + +## What was dropped, and why + +The source document was written **before** the formats were reversed, and roughly half of +it was speculation phrased as status. Carrying that forward would have put claims into the +corpus that the corpus itself has already refuted โ€” the precise failure mode +[README](README.md) warns about ("a wrong-but-confident note is worse than no note"). +Dropped: + +- **A "Known File Formats" status table** marking `dat/*.pak` as *"โณ Unknown โ€” magic bytes + TBD"*, and `.XWB`/`.XSB` as *"โณ TODO"*. The `.pak` container is โœ… decoded disc-wide. + [INDEX](INDEX.md) is the authority on format status; a second table would only drift. +- **A "PAK Archive Structure (TBD)" section** guessing each archive's contents from its + name ("`GP_BUNK.pak` โ€” likely barracks/crew quarters UI"). Those are guesses, and the + real contents are known. +- **An "RE Entry Points" section** recommending loading `default.xex` into Ghidra to find + the loaders. Static analysis now goes through `sylpheed.db` (see the workspace + `CLAUDE.md` and `/sylph-dis`). + +Nothing measured was dropped. The layout, the counts, the identity fields and the language +table are all re-verified above.