Reconcile the docs after the last three corrections

The last three commits changed things the documentation still asserted in the
old direction. Fixed:

roadmap
  * 227 tests -> 238.
  * The level_overlay bullet contradicted itself: it said "the header words are
    not named" in the same breath as "+0x00 load base is 0x1A7C80". Now says
    +0x00 IS the load base and is named, +0x0c is excluded as the .lit size by
    sign (below file length on 16/27, by up to 8.9%) and remains unnamed, and the
    unnamed remainder is stated as such.
  * Section names aligned with the Phase 3 list (lvl.vtbl, lvl.camvtbl,
    lvl.sndvtbl).

core-data-regions.md
  * The claim-assertion audit still said the two PCSX2 claims were "NOT
    assertable here -- needs a savestate". They are asserted now, gated on
    GC_SSTATE, in the same file. Updated, with the two corrections that fell out
    of writing them recorded right there.
  * "that string is inside the collision routine" was never established. It is
    in the string pool, yes; the reference to it is not found. Reworded to say
    so, including the zero-hit result.

research log
  * field_00 now carries its name and the .lit/$gp/program context.
  * The field_0c falsification and the byte-order retraction are both recorded
    here as well, so the log and the format file agree.

Nothing left asserting the withdrawn anchor, and no stale test counts.
This commit is contained in:
2026-10-13 07:13:45 +02:00
parent 282e633a7c
commit 1fa1913e38
3 changed files with 54 additions and 21 deletions
+9 -6
View File
@@ -25,7 +25,7 @@ early, while they are still cheap to retire.
`core_index` class tables, `tfrag` (format, topology, textures, LOD,
normals, colour), `occlusion`, `sky`, `moby`, `collision` framing and
header, `shrub` (blob, packets, palette, billboard), the post-shrub
`chunks` container, `sound_bank` framing and `level_overlay`. 227 tests
`chunks` container, `sound_bank` framing and `level_overlay`. 238 tests
green against the real disc. **What is open is naming, not locating** --
see the Phase 2 list for the four types that still have no decoded
fields: `tie` vertices, collision cells, `SBlk` records, `volumes` and
@@ -399,11 +399,14 @@ Phase 1 hands over the extents; this phase works out what each one contains.
length, falling below it on 17 levels and above on 10. The debug string
pool it opens with carries `Camera_CollPrimTest WARNING! - grid out of
bounds! (RAR)`, independent support for reading the collision payload's
two leading `u16`s as grid dimensions. **The header words are not named
and the level-specific tail is not structured yet**; the Phase 3
seven-section parser and relocation are untouched. The seven sections are
now named (`.lit .bss .data vtbl camvtbl sndvtbl .text`) and `overlay.bin`
is the `.lit` section, whose `+0x00` load base is `0x1A7C80`.
two leading `u16`s as grid dimensions. `+0x00` **is** the load base of
the section this file is, `0x1A7C80`, constant on all 27 levels because
every level's `.lit` loads there. `+0x0c` is **not** the `.lit` size -- it
falls *below* the file length on 16 of 27 levels, by up to 8.9%, so it is
excluded by sign -- and it is still unnamed. **The remaining header words
are unnamed and the level-specific tail is not structured yet**; the
Phase 3 seven-section parser and relocation are untouched, though the
seven sections are now named (`lvl.vtbl`, `lvl.camvtbl`, `lvl.sndvtbl`).
- [x] **The post-shrub chunk container.** A 16-byte header, a 10-byte zero gap,
then offsets tagged `0xF0000000 | low24` resolving to `chunk_start + low`;
header byte 14 is the record count, equal to `offsets.len()` on 1,123 of