re: the cue-less cutscene pages ARE the resupply lines, and they cross-check the movie work
16 of the 17 pages with an empty slot 4 belong to MSG_DEMO_600..604, whose caption text matches, word for word, the five resupply lines documented from the movie side as VOICE_D_450..454. Slot 4 is empty on purpose: that audio binds through the movie path, not through a DEMO_nnn cue. That also disposes of the '5 ids with more than one record' item -- each appears once per stage that uses it, and the repeat counts equal the movie-slot counts recorded independently for the matching banks: 3/3/4/4/2 both ways, 5 of 5. The 11 extra records over 138 ids are these repeats. Worth more than closing two items: the cutscene message table and the movie subtitle chain were decoded from different containers by different routes and agree on the same five lines with the same multiplicities. MSG_DEMO_500 remains: one page, KATANA, 2s, no text and no cue.
This commit is contained in:
@@ -62,6 +62,12 @@ 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
|
[`structures/sound-cue-table.md`](structures/sound-cue-table.md); 1 326 of 1 338
|
||||||
script message ids resolve to a `.slb`).
|
script message ids resolve to a `.slb`).
|
||||||
|
|
||||||
|
**Also closed (2026-08-26)**: the 17 cue-less cutscene pages and the 5
|
||||||
|
duplicated `MSG_DEMO` records are one and the same thing — the resupply lines,
|
||||||
|
whose audio binds through the movie path rather than a `DEMO_nnn` cue. Their
|
||||||
|
repeat counts match the movie-slot counts recorded for `VOICE_D_450`–`454`, 5 of
|
||||||
|
5, from a separately decoded container.
|
||||||
|
|
||||||
**Still open from this**: nothing about the wrong-recording case — that was
|
**Still open from this**: nothing about the wrong-recording case — that was
|
||||||
already settled in `voice-bank-leading-region.md` (generic line, correct
|
already settled in `voice-bank-leading-region.md` (generic line, correct
|
||||||
binding) and my first write-up wrongly reopened it; the other five languages; and play order, since the tool prints
|
binding) and my first write-up wrongly reopened it; the other five languages; and play order, since the tool prints
|
||||||
|
|||||||
@@ -71,13 +71,11 @@ reference would be.
|
|||||||
|
|
||||||
## What this does not settle
|
## What this does not settle
|
||||||
|
|
||||||
* **17 pages have no cue** (slot 4 empty). Silent, or voiced by another route,
|
* **`MSG_DEMO_500`** — one page, KATANA, 2 s, **no text and no cue**. A
|
||||||
is unmeasured.
|
placeholder, apparently.
|
||||||
* **Slot 2 is `None` at all 149 records**, so what it would hold otherwise is
|
* **Slot 2 is `None` at all 149 records**, so what it would hold otherwise is
|
||||||
unknown — a constant with no observed variation carries no information.
|
unknown — a constant with no observed variation carries no information.
|
||||||
* **5 ids have more than one record** (`MSG_DEMO_600`–`604`), accounting for
|
|
||||||
the 11 extra records over 138 ids. Whether these are context variants or
|
|
||||||
duplicates was not investigated.
|
|
||||||
* **Nothing here was run.** This is a static read of the tables; the playback
|
* **Nothing here was run.** This is a static read of the tables; the playback
|
||||||
order, and whether slot 3 is really the on-screen duration rather than an
|
order, and whether slot 3 is really the on-screen duration rather than an
|
||||||
audio length or a delay, has not been checked against the running game.
|
audio length or a delay, has not been checked against the running game.
|
||||||
@@ -87,3 +85,37 @@ reference would be.
|
|||||||
[`../data/cutscene-message-table.txt`](../data/cutscene-message-table.txt) —
|
[`../data/cutscene-message-table.txt`](../data/cutscene-message-table.txt) —
|
||||||
all 313 pages with speaker, portrait, seconds, cue and text.
|
all 313 pages with speaker, portrait, seconds, cue and text.
|
||||||
Regenerate with `tools/re-capture/sound_cues.py demo`.
|
Regenerate with `tools/re-capture/sound_cues.py demo`.
|
||||||
|
|
||||||
|
|
||||||
|
## ✅ The cue-less pages are the resupply lines — and they corroborate the movie work
|
||||||
|
|
||||||
|
**Settled 2026-08-26.** 16 of the 17 pages with an empty slot 4 belong to five
|
||||||
|
ids, and those five are exactly the resupply lines already documented from the
|
||||||
|
*movie* side in [voice-bank-leading-region.md](../voice-bank-leading-region.md).
|
||||||
|
The caption text matches word for word:
|
||||||
|
|
||||||
|
| id | speaker | line | bank |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `MSG_DEMO_600` | NATALIE | "Rhino 3 has landed. Commencing resupply." | `VOICE_D_450` |
|
||||||
|
| `MSG_DEMO_601` | NATALIE | "Rhino Leader has landed. Commencing resupply." | `VOICE_D_451` |
|
||||||
|
| `MSG_DEMO_602` | NATALIE | "Resupply complete. You are cleared for take-off!" | `VOICE_D_452` |
|
||||||
|
| `MSG_DEMO_603` | TCAFSUPPLY | "All right, beginning resupply." | `VOICE_D_453` |
|
||||||
|
| `MSG_DEMO_604` | TCAFSUPPLY | "Resupply complete. Switching to take-off sequence." | `VOICE_D_454` |
|
||||||
|
|
||||||
|
This also explains the duplicate records. Each of these ids appears **once per
|
||||||
|
stage that uses it**, and the repeat counts equal the movie-slot counts recorded
|
||||||
|
independently for the corresponding banks — **5 of 5**:
|
||||||
|
|
||||||
|
DEMO_600 x3 DEMO_601 x3 DEMO_602 x4 DEMO_603 x4 DEMO_604 x2
|
||||||
|
D_450 x3 D_451 x3 D_452 x4 D_453 x4 D_454 x2
|
||||||
|
|
||||||
|
Two facts fall out:
|
||||||
|
|
||||||
|
* the **11 extra records over 138 ids** are these repeats, not an anomaly; and
|
||||||
|
* slot 4 is empty on purpose — a resupply line's audio is bound through the
|
||||||
|
**movie** path (`VOICE_D_45x`), not through the `DEMO_nnn` cue path, so there
|
||||||
|
is no cue to name.
|
||||||
|
|
||||||
|
The agreement is worth something beyond closing two items: the cutscene message
|
||||||
|
table and the movie subtitle chain were decoded separately, from different
|
||||||
|
containers, and they land on the same five lines with the same multiplicities.
|
||||||
|
|||||||
Reference in New Issue
Block a user