Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 39127535da feat(phase-29): func_8014F3E8 ×4 -> ×138 via dedup_extend; §75a enumerates the exclusion classes
- THE NORMALIZATION PAID: one `dedup_extend --binaries <the 134 excluded>` banked 134/400
  planned -- func_8014F3E8 VERIFIED in ALL 134 -> ×138 total (+4,288 ins), no drafting at all.
  A 4-overlay island became full fleet reach because the carried extern finally agreed.
- FLEET: instr-weighted 80.0% -> 80.1% (10,509,526 -> 10,525,534 = +16,008 ins, exactly the
  projected 84×138 + 32×138); fn-count 89.02% -> 89.09%; distinct-code 67.7% (unchanged, as
  expected -- propagation moves coverage, not distinct-RE). dedup 1884 -> 1886 validated / 0
  failed, C1 coverage 239,315/239,315. 0 NON_MATCHING (G4).
- R22 clean-fleet: make clean && extract-all && check-all -> 140 passed, 0 failed of 140.
- §75a — "PROPAGATION-CAPPED" IS AT LEAST THREE CLASSES, and the classifier names which:
    A minority spelling   `conflicting types` + a lopsided census (1710 vs 4) -> normalize, cheap
    B genuine arity split same message, TWO real populations (func_8012F14C: 1944 `(s32)` vs
                          968 `(s32,s32,s32)`) -> the §29 loose-typing wall; a K&R `()` MAY satisfy
                          both but is order-dependent -> PROBE, do not normalize on a guess
    C missing extern      `undefined reference to 'SHB'` -- a LINK error, unrelated to types
  The discriminator is one grep (census the symbol cc1 named) and it decides the remedy.
- R14 self-correction recorded: I predicted func_80174CB0 was "the identical class". It is class
  A in KIND but on DIFFERENT symbols, and different ones per overlay (func_80012ABC at
  ov_SC01_000 where the minority is on the TARGET side; func_8012F14C at ov_SC01_001 = class B).
  One member's error names one blocker, not the blocker set -- collect the classifier's line
  across the whole sweep before scoping a fix.
- func_80174CB0 (×3) and func_80165CA0 stay capped, each now with a named cause and a named next
  probe -- not a wall verdict.
2026-07-25 13:00:00 -06:00

9.1 KiB
Raw Blame History

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: 315142 / 353717 = 89.09% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 10525534 / 13141652 = 80.1% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 3813512 / 5634875 = 67.7% (64879/87459 unique fns; the DISTINCT-RE number) MAIN game-code weighted : 436 / 60201 = 0.7% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-06-14; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift) (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 10525098 / 13081451 = 80.5%)

FLEET REAL substantive : 313287 (of which dedup-shared 239241 via 1886 groups / 239315 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 38568 FLEET matchable : 353717

binary REAL shared LINKED byte-ident matchable byte-ident %
main 54 2 959 1055 2096 50.3%
resident 129 0 0 131 145 90.3%
ov_SC01_000 2248 1742 0 2248 2403 93.5%
ov_SC01_001 2249 1741 0 2251 2466 91.3%
ov_SC01_004 2240 1732 0 2241 2414 92.8%
ov_SC01_005 2270 1755 0 2270 2503 90.7%
ov_SC01_006 2270 1755 0 2270 2503 90.7%
ov_SC01_008 2240 1732 0 2242 2426 92.4%
ov_SC01_009 2266 1733 0 2267 2507 90.4%
ov_SC01_074 2244 1733 0 2246 2425 92.6%
ov_SC01_077 2428 1702 0 2430 2585 94.0%
ov_SC01_080 2282 1736 0 2282 2512 90.8%
ov_SC01_084 2289 1736 0 2294 2579 88.9%
ov_SC02_000 2342 1771 0 2342 2683 87.3%
ov_SC02_003 2342 1771 0 2342 2683 87.3%
ov_SC02_004 2248 1736 0 2248 2401 93.6%
ov_SC02_005 2356 1732 0 2366 2927 80.8%
ov_SC02_011 2368 1739 0 2379 2893 82.2%
ov_SC02_015 2249 1738 0 2249 2414 93.2%
ov_SC02_016 2282 1738 0 2285 2545 89.8%
ov_SC02_017 2326 1738 0 2334 2732 85.4%
ov_SC02_021 2255 1738 0 2255 2437 92.5%
ov_SC02_026 2271 1736 0 2277 2572 88.5%
ov_SC02_027 2294 1736 0 2303 2692 85.5%
ov_SC02_028 2296 1736 0 2306 2701 85.4%
ov_SC02_031 2281 1737 0 2286 2562 89.2%
ov_SC02_035 2257 1736 0 2260 2520 89.7%
ov_SC02_039 2241 1736 0 2241 2416 92.8%
ov_SC02_041 2278 1736 0 2281 2561 89.1%
ov_SC03_001 2377 1737 0 2394 2869 83.4%
ov_SC03_002 2303 1741 0 2318 2631 88.1%
ov_SC03_003 2251 1736 0 2252 2423 92.9%
ov_SC03_006 2316 1742 0 2325 2767 84.0%
ov_SC03_007 2296 1736 0 2300 2623 87.7%
ov_SC03_010 2257 1736 0 2257 2470 91.4%
ov_SC03_011 2265 1736 0 2271 2527 89.9%
ov_SC03_012 2243 1736 0 2244 2406 93.3%
ov_SC03_013 2262 1736 0 2262 2492 90.8%
ov_SC03_014 2322 1761 0 2322 2685 86.5%
ov_SC03_015 2322 1761 0 2322 2685 86.5%
ov_SC03_023 2250 1736 0 2251 2435 92.4%
ov_SC03_024 2310 1741 0 2317 2641 87.7%
ov_SC03_028 2290 1736 0 2294 2664 86.1%
ov_SC03_029 2291 1738 0 2301 2644 87.0%
ov_SC03_030 2264 1741 0 2266 2495 90.8%
ov_SC03_031 2261 1736 0 2264 2514 90.1%
ov_SC03_089 2277 1736 0 2284 2581 88.5%
ov_SC03_090 2278 1736 0 2286 2625 87.1%
ov_SC03_091 2281 1736 0 2289 2640 86.7%
ov_SC03_092 2292 1736 0 2304 2587 89.1%
ov_SC03_093 2268 1736 0 2272 2563 88.6%
ov_SC03_094 2263 1736 0 2269 2577 88.0%
ov_SC03_095 2253 1736 0 2256 2474 91.2%
ov_SC03_096 2253 1736 0 2256 2465 91.5%
ov_SC03_097 2283 1736 0 2290 2603 88.0%
ov_SC03_098 2261 1736 0 2264 2541 89.1%
ov_SC03_099 2254 1736 0 2257 2504 90.1%
ov_SC03_100 2264 1736 0 2268 2539 89.3%
ov_SC03_101 2264 1736 0 2268 2528 89.7%
ov_SC03_102 2256 1736 0 2259 2492 90.7%
ov_SC03_103 2259 1738 0 2262 2510 90.1%
ov_SC03_104 2285 1736 0 2292 2616 87.6%
ov_SC03_105 2278 1736 0 2285 2597 88.0%
ov_SC03_108 2245 1736 0 2245 2443 91.9%
ov_SC03_109 2248 1736 0 2250 2424 92.8%
ov_SC03_110 2252 1736 0 2252 2468 91.2%
ov_SC03_111 2263 1736 0 2266 2510 90.3%
ov_SC03_112 2257 1738 0 2259 2526 89.4%
ov_SC03_113 2250 1738 0 2253 2468 91.3%
ov_SC03_114 2240 1736 0 2242 2415 92.8%
ov_SC03_115 2257 1736 0 2259 2472 91.4%
ov_SC03_116 2247 1736 0 2250 2438 92.3%
ov_SC03_117 2275 1736 0 2281 2557 89.2%
ov_SC03_118 2321 1760 0 2322 2685 86.5%
ov_SC03_119 2320 1760 0 2321 2685 86.4%
ov_SC03_121 2255 1736 0 2258 2459 91.8%
ov_SC03_124 2334 1732 0 2354 2741 85.9%
ov_SC03_125 2290 1736 0 2302 2588 88.9%
ov_SC03_126 2252 1738 0 2252 2423 92.9%
ov_SC04_000 2268 1740 0 2277 2546 89.4%
ov_SC04_002 2286 1736 0 2290 2636 86.9%
ov_SC04_003 2263 1736 0 2267 2502 90.6%
ov_SC04_004 2272 1736 0 2274 2558 88.9%
ov_SC04_005 2281 1736 0 2287 2612 87.6%
ov_SC04_006 2252 1736 0 2254 2454 91.9%
ov_SC04_007 2275 1736 0 2279 2569 88.7%
ov_SC04_008 2244 1736 0 2244 2415 92.9%
ov_SC04_009 2259 1736 0 2262 2441 92.7%
ov_SC04_010 2249 1736 0 2250 2419 93.0%
ov_SC04_011 2307 1736 0 2313 2803 82.5%
ov_SC04_012 2246 1736 0 2247 2420 92.9%
ov_SC04_015 2312 1737 0 2323 2611 89.0%
ov_SC04_016 2249 1736 0 2251 2440 92.3%
ov_SC04_018 2360 1771 0 2360 2857 82.6%
ov_SC04_019 2366 1771 0 2366 2857 82.8%
ov_SC04_020 2277 1736 0 2289 2567 89.2%
ov_SC04_021 2253 1738 0 2253 2423 93.0%
ov_SC05_000 2250 1740 0 2253 2422 93.0%
ov_SC05_001 2272 1736 0 2277 2574 88.5%
ov_SC05_002 2255 1736 0 2258 2442 92.5%
ov_SC05_003 2252 1736 0 2253 2481 90.8%
ov_SC05_004 2248 1736 0 2250 2464 91.3%
ov_SC05_005 2253 1736 0 2254 2491 90.5%
ov_SC05_006 2246 1736 0 2246 2430 92.4%
ov_SC05_007 2256 1736 0 2261 2482 91.1%
ov_SC05_008 2273 1736 0 2275 2543 89.5%
ov_SC05_009 2252 1736 0 2256 2438 92.5%
ov_SC05_010 2279 1736 0 2283 2588 88.2%
ov_SC05_011 2248 1736 0 2249 2409 93.4%
ov_SC05_017 2356 1733 0 2367 2842 83.3%
ov_SC05_018 2303 1736 0 2316 2673 86.6%
ov_SC05_019 2253 1738 0 2253 2423 93.0%
ov_SC06_000 2317 1745 0 2320 2691 86.2%
ov_SC06_006 2269 1736 0 2270 2511 90.4%
ov_SC06_008 2286 1738 0 2292 2542 90.2%
ov_SC06_010 2268 1736 0 2273 2517 90.3%
ov_SC06_011 2258 1736 0 2262 2468 91.7%
ov_SC06_013 2251 1736 0 2252 2425 92.9%
ov_SC06_014 2257 1736 0 2259 2453 92.1%
ov_SC06_015 2254 1736 0 2254 2421 93.1%
ov_SC06_016 2272 1736 0 2274 2549 89.2%
ov_SC06_018 2285 1739 0 2292 2665 86.0%
ov_SC06_020 2261 1738 0 2262 2518 89.8%
ov_SC06_022 2280 1736 0 2288 2642 86.6%
ov_SC06_024 2289 1736 0 2295 2667 86.1%
ov_SC06_025 2273 1736 0 2278 2572 88.6%
ov_SC06_027 2239 1736 0 2240 2408 93.0%
ov_SC06_029 2298 1736 0 2310 2662 86.8%
ov_SC06_030 2253 1736 0 2253 2456 91.7%
ov_SC06_032 2273 1737 0 2280 2658 85.8%
ov_SC06_033 2275 1737 0 2282 2631 86.7%
ov_SC07_000 2269 1740 0 2271 2521 90.1%
ov_SC07_001 2252 1736 0 2254 2454 91.9%
ov_SC07_002 2280 1736 0 2284 2579 88.6%
ov_SC07_006 2050 1555 0 2130 2455 86.8%
ov_SC07_007 2041 1585 0 2125 2613 81.3%
ov_SC07_008 2237 1736 0 2237 2386 93.8%
ov_SC07_009 2246 1736 0 2248 2430 92.5%
ov_SC07_010 2049 1584 0 2132 2524 84.5%
ov_SC07_011 2040 1584 0 2120 2449 86.6%