From 52228c14edea22ddae682aa55fbbb97d0881e936 Mon Sep 17 00:00:00 2001 From: ReaperOfVeriod Date: Sun, 11 Oct 2026 02:53:04 +0200 Subject: [PATCH] Retract the VIF reading of the shrub body The previous commit concluded the shrub body's 6-byte payload was VIF-packed, on the strength of recurring patterns like 7ea5 and 1ab6. That was pattern matching dressed up as a conclusion, and a control kills it. Decoding every 32-bit word of every shrub body as a VifCode: shrub bodies 24.9% unpack, 128 distinct cmds uniform random 25.1% unpack, 128 distinct cmds sound_bank (definitely not VIF) 19.0% unpack, 122 distinct cmds gs_ram (mixed) 13.6% unpack, 128 distinct cmds moby class 0 span (known VIF) 40.1% unpack, 105 distinct cmds Shrub sits on the random baseline and exercises all 128 possible command bytes, which is what unstructured data looks like. Worth being precise about what this does and does not show. The test is weak -- even the known-VIF region only reaches 40.1%, well short of a clean signal -- so this does not prove shrub is not VIF. It proves the claim was never established, which is the part that was wrong. Spotting three recurring byte values and naming them a format is the same mistake as the three stride guesses it was meant to replace, one level down. A hypothesis needs a discriminating test before it goes in a commit message, and I skipped that step because the finding was welcome. What still stands is the part that rests on differential analysis rather than recognition: 8-byte records, 6 varying and 2 constant, 144 varying bytes per group regardless of count. The payload's encoding is unknown. --- docs/plan/level-assets.md | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/docs/plan/level-assets.md b/docs/plan/level-assets.md index f0d0f65..908ac76 100644 --- a/docs/plan/level-assets.md +++ b/docs/plan/level-assets.md @@ -901,14 +901,31 @@ Those 144 bytes sit in runs of 6, every 8 bytes: `(0..5), (8..13), (16..21), ...`. The body is an array of **8-byte records, 6 varying and 2 constant**. The payload is not half-floats. Decoding the 6 bytes as a `half3` gives 245.25 -and -168.375, which no shrub has. The bit patterns (`7ea5`, `1ab6`, `43d9`, -`af80`) and their repetition are VIF-packed data -- the same quadruple-word -packing moby and tfrag use, which is what the first three stride attempts were -really circling. +and -168.375, which no shrub has. -Filler around it is the PS2 NaN `0x7fff0000` rather than zeros, which is why -the body looked like noise in the earlier dumps. +**Correction, later the same day.** This section originally concluded the +payload was VIF-packed, on the strength of recurring patterns like `7ea5` and +`1ab6`. That conclusion does not survive a control. Decoding every 32-bit word +of every shrub body as a `VifCode`: -So the shrub body is a VIF packet stream in 8-byte units, and the real -question is the code assignment, not the stride. Reusing the VIF decoder -already written for tfrag is the next step. +| region | words decoding as UNPACK | distinct cmd bytes | +|---|---|---| +| shrub bodies | 24.9% | 128 (all of them) | +| uniform random | 25.1% | 128 (all of them) | +| sound_bank (definitely not VIF) | 19.0% | 122 | +| gs_ram (mixed) | 13.6% | 128 | +| moby class 0 span (known VIF) | 40.1% | 105 | + +Shrub sits on the random baseline, and all 128 possible command bytes occur, +which is what unstructured data looks like. The VIF reading was pattern +matching on a handful of recurring byte values, and it was wrong. + +Note the test is weak in general: even the known-VIF region only reads 40.1%. +So this does not prove shrub is *not* VIF -- it proves the claim was never +established. Treating three recurring bytes as a format is the same mistake as +the three stride guesses, just at a different level. + +What survives from this section is the differential finding, which rests on +grouping and diffing rather than on recognising byte patterns: 8-byte records, +6 varying and 2 constant, 144 varying bytes per group regardless of `count`. +The payload's encoding is still unknown.