diff --git a/docs/re/BACKLOG.md b/docs/re/BACKLOG.md index 13a0a0d8..c262f4c9 100644 --- a/docs/re/BACKLOG.md +++ b/docs/re/BACKLOG.md @@ -6,6 +6,29 @@ unknown, what evidence exists, and what the first step would be. Move an item in --- +## ⚠️ OPEN (2026-08-26) — the Japanese voice banks are not decoded + +The `sound.pak` census (see +[`structures/sound-pak-contents.md`](structures/sound-pak-contents.md)) shows +the archive is 5 100 `jpn\` banks + 4 382 `eng\` banks + 35 music banks, and +that **the leading-region rule holds for 0 of the 5 100 Japanese banks** — 4 301 +have a first `RIFF` at an offset that is not `1392 + n·2048`, and 799 have no +`RIFF` at all. The rule was derived on English banks and reproduces those +exactly, so this is a limit of the finding, not a defect in the reader. + +Since `FILES` names the **Japanese** set and the game substitutes the language +directory, the undecoded half is the one the table actually points at. + +**First step**: take one misaligned `jpn\` bank and one `RIFF`-less one, and +locate the audio by scanning for XMA1 packet structure rather than assuming a +fixed data offset. The English aligned banks are the control — the same scan +must find their known leading region. + +**Also open**: 2 of the 9 519 TOC entries are unaccounted for, and 55 English +banks have their first `RIFF` at or before offset 1392. + +--- + ## ✅ SOLVED (2026-08-26) — the mission scripts are readable as dialogue Built-in **64** (`request_script_message`) stages a symbol-table-1 reference in diff --git a/docs/re/INDEX.md b/docs/re/INDEX.md index 2a0a7846..2c3356d1 100644 --- a/docs/re/INDEX.md +++ b/docs/re/INDEX.md @@ -94,6 +94,7 @@ 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-pak-contents.md`](structures/sound-pak-contents.md) | Census of `sound.pak`, and the limit of the leading-region rule | ✅ CONFIRMED, 5 135/5 135 names hash into the TOC and 9 517/9 519 entries accounted for; ⚠️ leading-region rule holds for 1 571/4 382 eng and 0/5 100 jpn | | [`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 |