diff --git a/docs/re/BACKLOG.md b/docs/re/BACKLOG.md index 0dd1210..a0db97e 100644 --- a/docs/re/BACKLOG.md +++ b/docs/re/BACKLOG.md @@ -21,9 +21,15 @@ had nothing to resolve to, which is why the item sat open. Write-up + tool: [`structures/isl-message-dialogue-link.md`](structures/isl-message-dialogue-link.md), `tools/re-capture/isl_dialogue.py`. -**Still open from this**: which *recording* plays for a line (the voice-bank -binding is unresolved and a generic take is known to play against a specific -subtitle); the other five languages; and play order, since the tool prints +**Answered the same day**: what drives `MSG_DEMO_*` (its own IDXD tables in the +language packs — see [`structures/cutscene-message-table.md`](structures/cutscene-message-table.md)), +and which bank voices a line (`tables.pak`'s cue index — see +[`structures/sound-cue-table.md`](structures/sound-cue-table.md); 1 326 of 1 338 +script message ids resolve to a `.slb`). + +**Still open from this**: the known wrong-recording case, which the cue table +does *not* explain — every cue id is distinct, so bank sharing must happen +inside the bank layer; the other five languages; and play order, since the tool prints script order without resolving phases or branches. Multi-page captions were settled the same day — and in doing so refuted the first version of the tool, which truncated 356 of the 1338 names to their opening utterance. diff --git a/docs/re/INDEX.md b/docs/re/INDEX.md index 11f1b62..2a0a784 100644 --- a/docs/re/INDEX.md +++ b/docs/re/INDEX.md @@ -94,6 +94,8 @@ files, which is how the same ground got covered twice. | [`idxd-legacy-reader-audit.md`](idxd-legacy-reader-audit.md) | The legacy IDXD string-pool reader vs the real field table — what the old numbers got wrong | 🟡 shape CONFIRMED by hand (`FCSRange`, `ShieldRatio`, hangar `Model`); disc-wide rates are single-source | | [`structures/idxd-container.md`](structures/idxd-container.md) | The IDXD/IXUD container — record/field table, and the two beliefs it withdraws | ✅ CONFIRMED disc-wide, 7 750/7 750 objects and 1 271 462/1 271 462 named fields, zero failures | | [`structures/hud-glyph-quad.md`](structures/hud-glyph-quad.md) | The HUD's glyph quad — vtable `0x820B2A64` | ✅ CONFIRMED for the object layout and the atlas size, read live off | +| [`structures/sound-cue-table.md`](structures/sound-cue-table.md) | The cue index in `tables.pak` — message id -> cue -> sound id -> `.slb` bank | ✅ CONFIRMED, 1 326/1 338 script message ids bind to a bank; SOUNDS and FILES agree on the same 12 absentees, 0 orphan files | +| [`structures/cutscene-message-table.md`](structures/cutscene-message-table.md) | Cutscene dialogue — speaker, portrait, on-screen seconds, audio cue per page | ✅ CONFIRMED, field count = 9·PageCount+2 for all 7 PageCounts, 1 252/1 252 caption keys match, 138 ids close both ways | | [`structures/isl-message-dialogue-link.md`](structures/isl-message-dialogue-link.md) | Mission scripts as dialogue — built-in 64 -> message id -> caption text | ✅ CONFIRMED total, 2 683/2 683 call sites across all 28 stages resolve, no residue | | [`structures/mission-objective-counter.md`](structures/mission-objective-counter.md) | `REMAINING OB` — the mission's own objective counter, in RAM | ✅ CONFIRMED for one Stage 02 run: a big-endian u32 whose value | | [`structures/movie-subtitles.md`](structures/movie-subtitles.md) | Movie subtitles & the movie ↔ mission ↔ text chain | — |