Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 2c4e2344da fix(phase-28 T5): progress.py — #if 0 blindness + the len()-sum; resident 123/146 -> 122/145
R35: fix the instrument before planting a flag on its denominator.

- #if 0 BLINDNESS: classify() knew `#ifdef NON_MATCHING` (:425) but not `#if 0`, so a dead
  analysis body was read as a live definition AND its real INCLUDE_ASM stub counted separately —
  the SAME function in BOTH `real` and `stubs`. Live case: resident.c:868-925 wraps a full
  void func_800D00E4(s32){...} in #if 0 (its jtbl dossier) and re-declares the stub at :926.
  Now the block is skipped entirely: dead code is neither matched nor stubbed.

- THE len()-SUM (the dual defect): `placed` was a set union, so it caught a function in NO bucket
  — but `matchable` SUMMED len()s, so a function in TWO buckets counted twice and nothing
  complained. matchable/byteident are now SET unions, plus a new OVER-coverage assertion that
  fails loudly if any fn lands in multiple buckets. R32 means both directions: nothing missing,
  nothing double-counted.

- NEGATIVE CONTROL (the fix must change an answer the old tool gave):
    resident REAL 123 -> 122 | matchable 146 -> 145 | 85.62% -> 85.52% | func_800D00E4 no longer
    double-counted. FLEET instr 68.9% UNCHANGED (no #if 0 in the overlays) — the fix is scoped.

- FINDING (logged for T7's audit-binaries, does NOT block the flag-plant): the two INDEPENDENT
  oracles now agree exactly at 144 — corpus (21 stubs + 123 matched, derived from the tree) and
  sig_image (the 2nd oracle) — with EMPTY set difference both ways. progress.py still reports 145
  because it counts func_800CEDFC and func_800D33E0, which are DEFINED in resident.c but absent
  from sig_image. 0x800CEDFC is the resident's vram base +4 (the first function, code starts at
  file offset 0x4 after the leading data word), yet make audit-corpus reports 0 PHANTOM +
  0 TRUNCATED. Either sig_image has a boundary blind spot or those defs are not image functions.
  progress.py's text-scanning classify() is exactly the re-parsing R33 says should be DERIVED from
  corpus instead — a real refactor, logged not rushed.
  The flag-plant claim is unaffected: it rests on corpus.stubs('resident') == 21 (tree-derived,
  verified 5 ways), not on the contested denominator.
2026-07-16 00:17:57 -06:00

160 lines
9.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BFM FLEET matching progress (generated by tools/progress.py --fleet — authoritative)
# 140 binaries: main + resident + 138 location overlays. DETERMINISTIC,
# source-derived (committed src/*.c + config/dedup.us.yaml). Live byte gate: `make check-all`;
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
# THREE progress metrics (all matter — see the labels):
FLEET fn-count byte-ident: 296905 / 353722 = 83.94% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 9017152 / 13081451 = 68.9% (shipped .text across resident+138 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 2757078 / 5574674 = 49.5% (53528/87459 unique fns; the DISTINCT-RE number)
MAIN game-code weighted : 436 / 60201 = 0.7% (Phase-27 T10; SEPARATE — LINKED-excluding Ghidra sig dated 2026-06-14, PROVISIONAL until a fresh/complete main sig; NOT folded into the fleet number)
FLEET REAL substantive : 295050 (of which dedup-shared 233341 via 1840 groups / 233385 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 7 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 56810
FLEET matchable : 353722
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
|---|---:|---:|---:|---:|---:|---:|
| main | 54 | 2 | 959 | 1055 | 2096 | 50.3% |
| resident | 122 | 0 | 0 | 124 | 145 | 85.5% |
| ov_SC01_000 | 2123 | 1698 | 0 | 2123 | 2403 | 88.3% |
| ov_SC01_001 | 2128 | 1698 | 0 | 2130 | 2466 | 86.4% |
| ov_SC01_004 | 2120 | 1689 | 0 | 2121 | 2414 | 87.9% |
| ov_SC01_005 | 2150 | 1711 | 0 | 2150 | 2503 | 85.9% |
| ov_SC01_006 | 2150 | 1711 | 0 | 2150 | 2503 | 85.9% |
| ov_SC01_008 | 2120 | 1689 | 0 | 2122 | 2426 | 87.5% |
| ov_SC01_009 | 2144 | 1690 | 0 | 2145 | 2507 | 85.6% |
| ov_SC01_074 | 2124 | 1690 | 0 | 2126 | 2425 | 87.7% |
| ov_SC01_077 | 2360 | 1658 | 0 | 2362 | 2585 | 91.4% |
| ov_SC01_080 | 2160 | 1693 | 0 | 2160 | 2512 | 86.0% |
| ov_SC01_084 | 2169 | 1693 | 0 | 2174 | 2579 | 84.3% |
| ov_SC02_000 | 2215 | 1728 | 0 | 2215 | 2683 | 82.6% |
| ov_SC02_003 | 2215 | 1728 | 0 | 2215 | 2683 | 82.6% |
| ov_SC02_004 | 2128 | 1693 | 0 | 2128 | 2401 | 88.6% |
| ov_SC02_005 | 2235 | 1689 | 0 | 2245 | 2927 | 76.7% |
| ov_SC02_011 | 2242 | 1696 | 0 | 2253 | 2893 | 77.9% |
| ov_SC02_015 | 2130 | 1695 | 0 | 2130 | 2414 | 88.2% |
| ov_SC02_016 | 2159 | 1695 | 0 | 2162 | 2545 | 85.0% |
| ov_SC02_017 | 2203 | 1695 | 0 | 2211 | 2732 | 80.9% |
| ov_SC02_021 | 2136 | 1695 | 0 | 2136 | 2437 | 87.6% |
| ov_SC02_026 | 2149 | 1693 | 0 | 2155 | 2572 | 83.8% |
| ov_SC02_027 | 2173 | 1693 | 0 | 2182 | 2692 | 81.1% |
| ov_SC02_028 | 2174 | 1693 | 0 | 2184 | 2701 | 80.9% |
| ov_SC02_031 | 2161 | 1694 | 0 | 2166 | 2562 | 84.5% |
| ov_SC02_035 | 2136 | 1693 | 0 | 2139 | 2520 | 84.9% |
| ov_SC02_039 | 2122 | 1693 | 0 | 2122 | 2416 | 87.8% |
| ov_SC02_041 | 2156 | 1693 | 0 | 2159 | 2561 | 84.3% |
| ov_SC03_001 | 2255 | 1694 | 0 | 2272 | 2869 | 79.2% |
| ov_SC03_002 | 2183 | 1698 | 0 | 2198 | 2631 | 83.5% |
| ov_SC03_003 | 2131 | 1693 | 0 | 2132 | 2423 | 88.0% |
| ov_SC03_006 | 2194 | 1699 | 0 | 2203 | 2767 | 79.6% |
| ov_SC03_007 | 2175 | 1693 | 0 | 2179 | 2623 | 83.1% |
| ov_SC03_010 | 2138 | 1693 | 0 | 2138 | 2470 | 86.6% |
| ov_SC03_011 | 2146 | 1693 | 0 | 2152 | 2527 | 85.2% |
| ov_SC03_012 | 2123 | 1693 | 0 | 2124 | 2406 | 88.3% |
| ov_SC03_013 | 2143 | 1693 | 0 | 2143 | 2492 | 86.0% |
| ov_SC03_014 | 2199 | 1718 | 0 | 2199 | 2685 | 81.9% |
| ov_SC03_015 | 2200 | 1718 | 0 | 2200 | 2685 | 81.9% |
| ov_SC03_023 | 2129 | 1693 | 0 | 2130 | 2435 | 87.5% |
| ov_SC03_024 | 2187 | 1698 | 0 | 2194 | 2641 | 83.1% |
| ov_SC03_028 | 2169 | 1693 | 0 | 2173 | 2664 | 81.6% |
| ov_SC03_029 | 2170 | 1695 | 0 | 2180 | 2644 | 82.5% |
| ov_SC03_030 | 2144 | 1698 | 0 | 2146 | 2495 | 86.0% |
| ov_SC03_031 | 2141 | 1693 | 0 | 2144 | 2514 | 85.3% |
| ov_SC03_089 | 2155 | 1693 | 0 | 2162 | 2581 | 83.8% |
| ov_SC03_090 | 2157 | 1693 | 0 | 2165 | 2625 | 82.5% |
| ov_SC03_091 | 2160 | 1693 | 0 | 2168 | 2640 | 82.1% |
| ov_SC03_092 | 2171 | 1693 | 0 | 2183 | 2587 | 84.4% |
| ov_SC03_093 | 2147 | 1693 | 0 | 2151 | 2563 | 83.9% |
| ov_SC03_094 | 2141 | 1693 | 0 | 2147 | 2577 | 83.3% |
| ov_SC03_095 | 2132 | 1693 | 0 | 2135 | 2474 | 86.3% |
| ov_SC03_096 | 2132 | 1693 | 0 | 2135 | 2465 | 86.6% |
| ov_SC03_097 | 2160 | 1693 | 0 | 2167 | 2603 | 83.3% |
| ov_SC03_098 | 2139 | 1693 | 0 | 2142 | 2541 | 84.3% |
| ov_SC03_099 | 2133 | 1693 | 0 | 2136 | 2504 | 85.3% |
| ov_SC03_100 | 2142 | 1693 | 0 | 2146 | 2539 | 84.5% |
| ov_SC03_101 | 2143 | 1693 | 0 | 2147 | 2528 | 84.9% |
| ov_SC03_102 | 2135 | 1693 | 0 | 2138 | 2492 | 85.8% |
| ov_SC03_103 | 2138 | 1695 | 0 | 2141 | 2510 | 85.3% |
| ov_SC03_104 | 2163 | 1693 | 0 | 2170 | 2616 | 83.0% |
| ov_SC03_105 | 2157 | 1693 | 0 | 2164 | 2597 | 83.3% |
| ov_SC03_108 | 2126 | 1693 | 0 | 2126 | 2443 | 87.0% |
| ov_SC03_109 | 2127 | 1693 | 0 | 2129 | 2424 | 87.8% |
| ov_SC03_110 | 2132 | 1693 | 0 | 2132 | 2468 | 86.4% |
| ov_SC03_111 | 2142 | 1693 | 0 | 2145 | 2510 | 85.5% |
| ov_SC03_112 | 2137 | 1695 | 0 | 2139 | 2526 | 84.7% |
| ov_SC03_113 | 2130 | 1695 | 0 | 2133 | 2468 | 86.4% |
| ov_SC03_114 | 2120 | 1693 | 0 | 2122 | 2415 | 87.9% |
| ov_SC03_115 | 2137 | 1693 | 0 | 2139 | 2472 | 86.5% |
| ov_SC03_116 | 2127 | 1693 | 0 | 2130 | 2438 | 87.4% |
| ov_SC03_117 | 2153 | 1693 | 0 | 2159 | 2557 | 84.4% |
| ov_SC03_118 | 2201 | 1717 | 0 | 2202 | 2685 | 82.0% |
| ov_SC03_119 | 2198 | 1717 | 0 | 2199 | 2685 | 81.9% |
| ov_SC03_121 | 2133 | 1693 | 0 | 2136 | 2459 | 86.9% |
| ov_SC03_124 | 2212 | 1689 | 0 | 2232 | 2741 | 81.4% |
| ov_SC03_125 | 2170 | 1693 | 0 | 2182 | 2588 | 84.3% |
| ov_SC03_126 | 2132 | 1695 | 0 | 2132 | 2423 | 88.0% |
| ov_SC04_000 | 2149 | 1697 | 0 | 2158 | 2546 | 84.8% |
| ov_SC04_002 | 2164 | 1693 | 0 | 2168 | 2636 | 82.2% |
| ov_SC04_003 | 2142 | 1693 | 0 | 2146 | 2502 | 85.8% |
| ov_SC04_004 | 2151 | 1693 | 0 | 2153 | 2558 | 84.2% |
| ov_SC04_005 | 2159 | 1693 | 0 | 2165 | 2612 | 82.9% |
| ov_SC04_006 | 2132 | 1693 | 0 | 2134 | 2454 | 87.0% |
| ov_SC04_007 | 2152 | 1693 | 0 | 2156 | 2569 | 83.9% |
| ov_SC04_008 | 2122 | 1693 | 0 | 2122 | 2415 | 87.9% |
| ov_SC04_009 | 2138 | 1693 | 0 | 2141 | 2441 | 87.7% |
| ov_SC04_010 | 2129 | 1693 | 0 | 2130 | 2419 | 88.1% |
| ov_SC04_011 | 2186 | 1693 | 0 | 2192 | 2803 | 78.2% |
| ov_SC04_012 | 2126 | 1693 | 0 | 2127 | 2420 | 87.9% |
| ov_SC04_015 | 2188 | 1694 | 0 | 2199 | 2611 | 84.2% |
| ov_SC04_016 | 2129 | 1693 | 0 | 2131 | 2440 | 87.3% |
| ov_SC04_018 | 2239 | 1728 | 0 | 2239 | 2857 | 78.4% |
| ov_SC04_019 | 2244 | 1728 | 0 | 2244 | 2857 | 78.5% |
| ov_SC04_020 | 2157 | 1693 | 0 | 2169 | 2567 | 84.5% |
| ov_SC04_021 | 2133 | 1695 | 0 | 2133 | 2423 | 88.0% |
| ov_SC05_000 | 2130 | 1697 | 0 | 2133 | 2422 | 88.1% |
| ov_SC05_001 | 2153 | 1693 | 0 | 2158 | 2574 | 83.8% |
| ov_SC05_002 | 2134 | 1693 | 0 | 2137 | 2442 | 87.5% |
| ov_SC05_003 | 2131 | 1693 | 0 | 2132 | 2481 | 85.9% |
| ov_SC05_004 | 2127 | 1693 | 0 | 2129 | 2464 | 86.4% |
| ov_SC05_005 | 2134 | 1693 | 0 | 2135 | 2491 | 85.7% |
| ov_SC05_006 | 2126 | 1693 | 0 | 2126 | 2430 | 87.5% |
| ov_SC05_007 | 2136 | 1693 | 0 | 2141 | 2482 | 86.3% |
| ov_SC05_008 | 2153 | 1693 | 0 | 2155 | 2543 | 84.7% |
| ov_SC05_009 | 2131 | 1693 | 0 | 2135 | 2438 | 87.6% |
| ov_SC05_010 | 2156 | 1693 | 0 | 2160 | 2588 | 83.5% |
| ov_SC05_011 | 2129 | 1693 | 0 | 2130 | 2409 | 88.4% |
| ov_SC05_017 | 2235 | 1690 | 0 | 2246 | 2842 | 79.0% |
| ov_SC05_018 | 2183 | 1693 | 0 | 2196 | 2673 | 82.2% |
| ov_SC05_019 | 2133 | 1695 | 0 | 2133 | 2423 | 88.0% |
| ov_SC06_000 | 2193 | 1702 | 0 | 2196 | 2691 | 81.6% |
| ov_SC06_006 | 2149 | 1693 | 0 | 2150 | 2511 | 85.6% |
| ov_SC06_008 | 2157 | 1695 | 0 | 2163 | 2542 | 85.1% |
| ov_SC06_010 | 2141 | 1693 | 0 | 2146 | 2517 | 85.3% |
| ov_SC06_011 | 2136 | 1693 | 0 | 2140 | 2468 | 86.7% |
| ov_SC06_013 | 2130 | 1693 | 0 | 2131 | 2425 | 87.9% |
| ov_SC06_014 | 2135 | 1693 | 0 | 2137 | 2453 | 87.1% |
| ov_SC06_015 | 2132 | 1693 | 0 | 2132 | 2421 | 88.1% |
| ov_SC06_016 | 2151 | 1693 | 0 | 2153 | 2549 | 84.5% |
| ov_SC06_018 | 2146 | 1696 | 0 | 2153 | 2665 | 80.8% |
| ov_SC06_020 | 2139 | 1695 | 0 | 2140 | 2518 | 85.0% |
| ov_SC06_022 | 2152 | 1693 | 0 | 2160 | 2642 | 81.8% |
| ov_SC06_024 | 2159 | 1693 | 0 | 2165 | 2667 | 81.2% |
| ov_SC06_025 | 2151 | 1693 | 0 | 2156 | 2572 | 83.8% |
| ov_SC06_027 | 2120 | 1693 | 0 | 2121 | 2408 | 88.1% |
| ov_SC06_029 | 2175 | 1693 | 0 | 2187 | 2662 | 82.2% |
| ov_SC06_030 | 2132 | 1693 | 0 | 2132 | 2456 | 86.8% |
| ov_SC06_032 | 2143 | 1694 | 0 | 2150 | 2658 | 80.9% |
| ov_SC06_033 | 2146 | 1694 | 0 | 2153 | 2631 | 81.8% |
| ov_SC07_000 | 2147 | 1697 | 0 | 2149 | 2521 | 85.2% |
| ov_SC07_001 | 2133 | 1693 | 0 | 2135 | 2454 | 87.0% |
| ov_SC07_002 | 2160 | 1693 | 0 | 2164 | 2579 | 83.9% |
| ov_SC07_006 | 1545 | 1543 | 0 | 1625 | 2456 | 66.2% |
| ov_SC07_007 | 1546 | 1544 | 0 | 1630 | 2614 | 62.4% |
| ov_SC07_008 | 2117 | 1693 | 0 | 2117 | 2386 | 88.7% |
| ov_SC07_009 | 2127 | 1693 | 0 | 2129 | 2430 | 87.6% |
| ov_SC07_010 | 1545 | 1544 | 0 | 1628 | 2526 | 64.4% |
| ov_SC07_011 | 1545 | 1543 | 0 | 1625 | 2450 | 66.3% |