From d56b43950225fb32e1f01948c407b56600551d12 Mon Sep 17 00:00:00 2001 From: ReaperOfVeriod Date: Tue, 13 Oct 2026 04:46:10 +0200 Subject: [PATCH] Exclude the collision segmentation theories on the full population, and name the unblock Continuing on the verbatim payload with the grid known. Cells are not zero-separated. Counting maximal runs of non-zero u16 across the whole payload: level 0 363 cells 15,115 runs mean run 25.3 u16 level 1 384 cells 24,647 runs mean run 51.5 u16 level 2 53 cells 31,512 runs mean run 30.3 u16 Two to three orders of magnitude apart, so a zero run is not a cell boundary. Cells are not uniform blocks either: level 0 averages 2,488 bytes per cell and level 2 averages 43,684, which cannot both be one fixed-size record. The run lengths are not records. Their histogram has a long tail of near-power-of-two values -- 2,140, 1,184, 840, 816, 628, 604, 562 -- which is what you get when a run is bounded by a single zero byte inside otherwise dense data, not by a delimiter. With the 18%-zeros finding, the payload reads as dense data with sparse holes rather than a delimited sequence. So all three segmentation theories are now excluded on the full population rather than on a sample: not ascending u32 tables, not zero-run delimiters, not fixed stride. What would actually unblock this: overlay.bin IS the game's own code, and the collision parser is in it. Camera_CollPrimTest WARNING! - grid out of bounds! (RAR) was located in the debug string pool earlier, and that string is inside the collision routine. So the format is recoverable -- but not by measuring bytes. It needs disassembly of that routine, or an R&C2 reference for the collision cell record. Stating that plainly is worth more than another scan. The disc-side measurement space for collision is exhausted: the bytes are available, verbatim, the grid is known, and three independent segmentation theories have failed on the whole population. Further probing without the loader's own logic will not converge. --- docs/formats/core-data-regions.md | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/docs/formats/core-data-regions.md b/docs/formats/core-data-regions.md index e115181..25ada38 100644 --- a/docs/formats/core-data-regions.md +++ b/docs/formats/core-data-regions.md @@ -1679,3 +1679,42 @@ alignment preference but a weak one. can be read as they are, and that they are sparse and variable-length rather than fixed-stride -- so the next attempt should look for a terminator-delimited walk through the sparse region, not for a record size. + +## Collision: the segmentation is not recoverable from zero structure + +Continuing on the verbatim payload, with the grid known. + +**Cells are not zero-separated.** Counting maximal runs of non-zero `u16` across +the whole payload: + + level 0 363 cells 15,115 runs mean run 25.3 u16 + level 1 384 cells 24,647 runs mean run 51.5 u16 + level 2 53 cells 31,512 runs mean run 30.3 u16 + +Two to three orders of magnitude apart, so a zero run is not a cell boundary. +Cells are not uniform blocks either: level 0 averages 2,488 bytes per cell and +level 2 averages 43,684, which cannot both be one fixed-size record. + +**The run lengths are not records.** Their histogram has a long tail of +near-power-of-two values -- 2,140, 1,184, 840, 816, 628, 604, 562 -- which is +what you get when a run is bounded by a single zero *byte* inside otherwise dense +data, not by a delimiter. Combined with the 18%-zeros finding, the payload reads +as dense data with sparse holes rather than as a delimited sequence. + +**So: not ascending `u32` tables, not zero-run delimiters, not fixed stride.** +All three segmentation theories are now excluded on the full population rather +than on a sample. + +### What would actually unblock this + +`overlay.bin` **is the game's own code**, and the collision parser is in it -- +`Camera_CollPrimTest WARNING! - grid out of bounds! (RAR)` was located in the +debug string pool earlier, and that string is inside the collision routine. The +format is therefore recoverable, but not by measuring bytes: it needs either +disassembly of that routine or a reference for R&C2's collision cell record. + +Stating this plainly is worth more than another scan. The disc-side measurement +space for collision is now genuinely exhausted -- the bytes are available, they +are verbatim, the grid is known, and three independent segmentation theories have +failed on the whole population. Further probing without the loader's own logic is +not going to converge.