slb: the seek chunk gives the data offset structurally, and breaks the 28 ties
The ties needed a different signal, not a longer scan. Banks carry one: a seek chunk sitting on a packet boundary, so seek_pos % 2048 IS the data offset. On the 6033 labelled banks with a seek before their first RIFF, 6031 agree (99.97%) -- better than the packet scan and structural rather than statistical, so scan_data_offset now tries it first. On the scan's 28 ties it resolves 26 correctly and 0 wrongly (2 have no usable seek). Combined rule scores 7354/7358 = 99.95%, up from 99.62%. 762 of the 1495 RIFF-less banks carry a seek, so the signal exists where it is needed. Also ruled out, since a wrong offset was this page's whole subject: the header is not audio being discarded. Adding 0 to the candidate set, it wins 6 of 7358. 7 disc tests pass.
This commit is contained in:
@@ -35,8 +35,13 @@ mistaken a constant derived from `eng\etc\` for a property of the format. See
|
||||
at *exactly* 1392 behind a zero-filled header, i.e. a zero-length leading
|
||||
region, which both the old code and the new derivation already handle.
|
||||
|
||||
**Still open**: the 28 offset-scan ties, and ❔ why 69.8 % of banks declare more
|
||||
`data` than they store (see
|
||||
**Closed 2026-08-26**: the 28 offset-scan ties. A bank's `seek` chunk sits on a
|
||||
packet boundary, so `seek_pos % 2048` is a second and structural derivation of
|
||||
the offset (99.97 % on the labelled set). It resolves 26 of the 28 correctly and
|
||||
none wrongly; the combined rule is 99.95 %.
|
||||
|
||||
**Still open**: ❔ why 69.8 % of banks declare more `data` than they store, and
|
||||
❔ why the offset takes exactly four values by directory (see
|
||||
[`structures/slb-data-offset.md`](structures/slb-data-offset.md)).
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user