re: the voice decoder discards up to 87% of a bank — "multi-subwave" refuted
The record table gives a DIRECT binding hokyu_DS_s13A -> VOICE_D_452, where the corpus records the movie as unbound and movie_manifest_disc.rs asserts None, citing an in-game verdict that this exact value was "the wrong recording". That is the only place on the disc where a runtime observation disagrees with the record table, so it was worth settling. First, shape: these banks are SHARED. Five slots bind VOICE_D_452, five bind 451, four 450, four 453, three 454 -- 21 hokyu slots over five banks, and the movies repeat too. Generic resupply cutscenes, not per-stage recordings. The recorded explanation for 453 decoding to 0.14 s and 454 to 0.43 s was that the banks are "likely multi-subwave / not cleanly sliced". Refuted: the count of RIFF magics EQUALS the number of sub-waves recovered in all five banks, and the last data chunk ends exactly at EOF in four of them. Nothing between or after sub-waves is being missed. The real defect: slb::to_xma_riffs finds audio by searching for the RIFF magic, and a large region PRECEDES it. 87% of VOICE_D_453 and 85% of VOICE_D_454 sit in front of the first RIFF -- 21-27% zero over 256 distinct byte values, i.e. content, not padding. VOICE_D_451 is the control: its leading region is 100% zero, 1 distinct value, real padding. So the in-game verdict listened to a decode that had discarded most of the bank, for exactly this bank class. It is evidence about the decoder, not about the mapping. Note also that what was rejected was a value INFERRED from a shared demo id; the record table supplies the same value as a stored field, and only the inference was ever tested. This does NOT establish the binding is right -- it removes the only recorded evidence against it. What the leading region actually holds is undecoded, and confirming the binding needs a human listening. Artifact: examples/voice_bank_shape.rs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
@@ -98,9 +98,13 @@ the **correct join key is not yet known**:
|
||||
was tried and is **WRONG** — it plays the wrong recording in-game. Do not use.
|
||||
- Only `VOICE_D_450..454` exist (no 44x/45x neighbours). Decoded durations are
|
||||
suspicious — `450`=2.8s, `451`=1.6s, `452`=2.2s, but `453`=**0.14s**,
|
||||
`454`=**0.43s** — far too short for the spoken line, so these `.slb` banks are
|
||||
likely **multi-subwave / not cleanly sliced** by the current extractor (same
|
||||
class as the deferred B/C banks).
|
||||
`454`=**0.43s** — far too short for the spoken line. ❌ The guess that follows
|
||||
was **REFUTED 2026-08-25**: these banks are *not* multi-subwave-and-missed. The
|
||||
RIFF-magic count equals the number of sub-waves recovered in all five banks, so
|
||||
nothing between or after them is lost. The audio is missing because a large
|
||||
region **precedes the first RIFF** and the decoder searches for that magic —
|
||||
87 % of `453` and 85 % of `454` sit in front of it, high-entropy and not
|
||||
padding. See [voice-bank-leading-region](../voice-bank-leading-region.md).
|
||||
|
||||
⇒ The unbound-hokyu voice mapping is **open** (needs either the real join key
|
||||
from mission data, or a proper multi-subwave `.slb` decode + audio verification).
|
||||
|
||||
Reference in New Issue
Block a user