Parse the per-level overlay: header, constant block, level data
level_overlay was the least-characterised file in the level set -- no parser, no located structure. It now has gc_formats::overlay and a real-disc test over all 27 levels: overlay: 27 levels; field_00 1735808, field_08 1; field_04 37540..=45308, field_0c 2763912..=3027336 (17 below the file length, 10 above); +0x10..0x1220 identical on all The header is four words. +0x0c is not the file length: it was recorded as one on the strength of the first levels measured, where it sat near the file end, but across all 27 it falls on both sides -- below on 17, above on 10 -- so it is an ordinary level-specific word. The test asserts this, being the claim most worth pinning. The common prefix is 4 bytes, not the whole header: +0x00 is constant at 1735808 while +0x04 and +0x0c vary. Everything from +0x10 to +0x1220 -- 4624 bytes -- is byte-identical on all 27 levels. Still not named: what any of the four header words means, and how the level-specific tail is structured. The module reports them as fields. Also records in docs/plan/pcsx2-verification.md that the 64-byte RAM stride from the previous commit is disproved. A 415 KB dump of level 1 finds the longest such run at 27 records, not 384, and those are identity matrices -- 27 of them, one per level. It is a per-level transform table, not the collision grid, and the 20.0 reported there was a coincidence.
This commit is contained in:
@@ -709,3 +709,20 @@ has been shown to count to 384.
|
||||
finds nothing. All RAM search must go through `gc-trace find --state`, which
|
||||
decompresses first -- scanning the file directly reports zero hits for a
|
||||
sequence that demonstrably exists in memory.
|
||||
|
||||
### The 64-byte stride was not the collision grid
|
||||
|
||||
A 415 KB RAM dump of level 1 around the tag above, scanned locally for 64-byte
|
||||
strides sharing a header, finds the longest run at **27 records, not 384** --
|
||||
and those records are:
|
||||
|
||||
u32 [1065353216, 0, 0, 0, 0, 1065353216, 0, 0]
|
||||
f32 [1.0, 0, 0, 0, 0, 1.0, 0, 0]
|
||||
|
||||
Identity matrices, **exactly 27 of them** -- one per level. So it is a per-level
|
||||
transform table, not the collision grid, and the `20.0` reported above was a
|
||||
coincidence inside a short run.
|
||||
|
||||
**The collision lead in this file is disproved, not merely unproven.** Recorded
|
||||
here so it is not picked up again. Level 1's grid is 384 cells and nothing found
|
||||
so far counts to it.
|
||||
|
||||
Reference in New Issue
Block a user