`GAME_CONTENTS.md` sat in the workspace root through the whole consolidation, adopted by neither repo -- the corpus documents formats in depth but never said what files the disc holds or where they sit. Re-measured rather than transcribed, and that caught a real error: the source placed `resource3d/`, `DefTables` and `MiscBin` under `dat/`. All three are in `hidden/` -- which is why `SYLPHEED_RES3D` points at `hidden/resource3d`. Counts, the language table and `media_id` (0x2D2E2EEB, from the XEX header) re-verified against the retail extract. Half the source was pre-RE speculation phrased as status -- `dat/*.pak` marked "Unknown, magic bytes TBD" when the container is decoded disc-wide, plus a table guessing each archive's contents from its name. Carrying that forward would put claims into the corpus the corpus has already refuted, so it is dropped and the page says what was dropped and why. INDEX.md stays the single authority on format status. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
105 lines
4.3 KiB
Markdown
105 lines
4.3 KiB
Markdown
# 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
|
||
|
||
```
|
||
<extract root>/
|
||
├── 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.
|