From 27891ce5b44b6c2392e79f2de13762d09fe1c803 Mon Sep 17 00:00:00 2001 From: ReaperOfVeriod Date: Wed, 14 Oct 2026 05:15:07 +0200 Subject: [PATCH] Cross-reference scan by raw immediate: the method cannot tell Sought the moby class loader by counting raw u16 occurrences of each chunk offset in .text. moby_classes 0xc0 hits 49,230 times, tie_classes 0x1e80 hits 111 -- and that contrast means nothing. Small u16 values are simply common: the most frequent value in .text occurs 1,834,535 times. A two-byte value that is frequent by construction beats a rarer one regardless of what either references, so the comparison has no shared denominator. Rule 3a again, one level below where it has bitten before -- not the measurement being wrong but the comparison being uninterpretable. Recorded as a methodological negative rather than a finding. Doing it properly means counting immediates only where the instruction decoder says they are immediates, which is what tools/overlay-anchors exists for. No test added: a test asserting a meaningless comparison would make the next reader trust it. --- docs/plan/level-assets.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/plan/level-assets.md b/docs/plan/level-assets.md index 2d78445..06314f3 100644 --- a/docs/plan/level-assets.md +++ b/docs/plan/level-assets.md @@ -1939,3 +1939,24 @@ recorded for `moby_anim`. Not concluded: what the 238 entries *are*. The float reading is suggestive, not established -- it was read at one stride, on one level, and rule 3a applies. + +### Cross-reference scan by raw immediate: does not discriminate + +The natural next probe is to search `.text` for immediates matching each chunk's +offset. Run over all 27 levels (0x2d70260 bytes, 23.8M u16 values): + + moby_classes 0x00c0 49,230 occurrences + tie_classes 0x1e80 111 occurrences + +**This comparison is meaningless and must not be quoted as evidence.** The two +offsets differ in magnitude, and small values are simply common: the single most +frequent u16 in `.text` occurs 1,834,535 times, so a two-byte value that is +common by construction will beat a rarer one no matter what it references. The +whole scan is confounded by value frequency, which is rule 3a again, one level +below where it has bitten before -- not the measurement being wrong but the +*comparison* having no shared denominator. + +Doing it properly means decoding instructions and counting immediates only where +they are immediates, which is what `tools/overlay-anchors` is for. Until that +exists the answer is not "moby_classes is referenced more" or "less", it is +"this method cannot tell".