Files
BFM-decomp/docs/progress.fleet.md
T
Drew T ed95cad428 feat(phase-29): T72 — ARITY probe banks 137/137; most of the class was never an arity problem (§113)
Probe target switched from func_8013BD34 on measured evidence (its def is in ov_SC07_010_o0.c and
_o0 families sweep ~1/137 — a poor test of an unproven technique). func_80144B14: same class, 137
stubs, not -O0, real 34x137 family, tests both axes (void(void) -> int(int)).

THE PROBE FOUND THE PRECONDITION OVER-FIRING. The ARITY blocker exists because the macro's own CALL
SITE passes the header's arity. But DEFINE_func_* does not call func_80144B14 — it takes its ADDRESS:
    *(s32 *)((s32)a0 + 0xDC) = (s32)&func_80144B14;
No call site => no arity constraint => the FULL correction is available, not the §99 no-prototype
workaround. Applied `extern int func_80144B14(int param_1);`.

RESULT: header change ALONE -> R22 clean-fleet 140 passed, 0 failed of 140 (byte-neutral); family
sweep -> 137/137, 0 failed.

METRICS: instr 86.6% (+4,658 ins); fn-count 91.12% -> 91.15% (+137); distinct-code +0 (byte-identical
family — §111 predicted it).

THE REFINEMENT (cookbook §113): the precondition must ask what the macro DOES with the symbol — a
call constrains arity, an address-taken or unused decl does not. Blocking on "both names appear"
over-fires, and it had 137 members behind it. The remaining ARITY findings should each be re-checked
for call-vs-address before assuming §99 is needed.

GATES: R22 140/140 twice; tools-health OK; dedup 1886/0; 0 NON_MATCHING (G4).
2026-07-29 00:34:12 -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: 322432 / 353720 = 91.15% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 11379580 / 13141652 = 86.6% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 4334529 / 5634875 = 76.9% (68196/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: 11379144 / 13081451 = 87.0%)

FLEET REAL substantive : 320577 (of which dedup-shared 239530 via 1886 groups / 239604 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 31281 FLEET matchable : 353720

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 2297 1742 0 2297 2403 95.6%
ov_SC01_001 2302 1743 0 2304 2466 93.4%
ov_SC01_004 2292 1734 0 2293 2414 95.0%
ov_SC01_005 2322 1757 0 2322 2503 92.8%
ov_SC01_006 2322 1757 0 2322 2503 92.8%
ov_SC01_008 2292 1734 0 2294 2426 94.6%
ov_SC01_009 2318 1735 0 2319 2507 92.5%
ov_SC01_074 2296 1735 0 2298 2425 94.8%
ov_SC01_077 2473 1702 0 2475 2585 95.7%
ov_SC01_080 2334 1738 0 2334 2512 92.9%
ov_SC01_084 2341 1738 0 2346 2579 91.0%
ov_SC02_000 2394 1773 0 2394 2683 89.2%
ov_SC02_003 2394 1773 0 2394 2683 89.2%
ov_SC02_004 2300 1738 0 2300 2401 95.8%
ov_SC02_005 2408 1734 0 2418 2927 82.6%
ov_SC02_011 2421 1741 0 2432 2893 84.1%
ov_SC02_015 2302 1740 0 2302 2414 95.4%
ov_SC02_016 2336 1740 0 2339 2545 91.9%
ov_SC02_017 2380 1740 0 2388 2732 87.4%
ov_SC02_021 2308 1740 0 2308 2437 94.7%
ov_SC02_026 2323 1738 0 2329 2572 90.6%
ov_SC02_027 2346 1738 0 2355 2692 87.5%
ov_SC02_028 2348 1738 0 2358 2701 87.3%
ov_SC02_031 2334 1739 0 2339 2562 91.3%
ov_SC02_035 2309 1738 0 2312 2520 91.7%
ov_SC02_039 2293 1738 0 2293 2416 94.9%
ov_SC02_041 2331 1738 0 2334 2561 91.1%
ov_SC03_001 2428 1739 0 2445 2869 85.2%
ov_SC03_002 2354 1743 0 2369 2631 90.0%
ov_SC03_003 2303 1738 0 2304 2423 95.1%
ov_SC03_006 2371 1744 0 2380 2767 86.0%
ov_SC03_007 2348 1738 0 2352 2623 89.7%
ov_SC03_010 2311 1738 0 2311 2471 93.5%
ov_SC03_011 2317 1738 0 2323 2527 91.9%
ov_SC03_012 2295 1738 0 2296 2406 95.4%
ov_SC03_013 2316 1738 0 2316 2493 92.9%
ov_SC03_014 2374 1763 0 2374 2685 88.4%
ov_SC03_015 2374 1763 0 2374 2685 88.4%
ov_SC03_023 2302 1738 0 2303 2435 94.6%
ov_SC03_024 2362 1743 0 2369 2641 89.7%
ov_SC03_028 2342 1738 0 2346 2664 88.1%
ov_SC03_029 2344 1740 0 2354 2644 89.0%
ov_SC03_030 2317 1743 0 2319 2495 92.9%
ov_SC03_031 2313 1738 0 2316 2514 92.1%
ov_SC03_089 2330 1738 0 2337 2581 90.5%
ov_SC03_090 2331 1738 0 2339 2625 89.1%
ov_SC03_091 2334 1738 0 2342 2640 88.7%
ov_SC03_092 2344 1738 0 2356 2587 91.1%
ov_SC03_093 2320 1738 0 2324 2563 90.7%
ov_SC03_094 2315 1738 0 2321 2577 90.1%
ov_SC03_095 2305 1738 0 2308 2474 93.3%
ov_SC03_096 2305 1738 0 2308 2465 93.6%
ov_SC03_097 2335 1738 0 2342 2603 90.0%
ov_SC03_098 2313 1738 0 2316 2541 91.1%
ov_SC03_099 2306 1738 0 2309 2504 92.2%
ov_SC03_100 2316 1738 0 2320 2539 91.4%
ov_SC03_101 2316 1738 0 2320 2528 91.8%
ov_SC03_102 2309 1738 0 2312 2492 92.8%
ov_SC03_103 2312 1740 0 2315 2510 92.2%
ov_SC03_104 2338 1738 0 2345 2616 89.6%
ov_SC03_105 2329 1738 0 2336 2597 89.9%
ov_SC03_108 2296 1738 0 2296 2443 94.0%
ov_SC03_109 2300 1738 0 2302 2424 95.0%
ov_SC03_110 2304 1738 0 2304 2468 93.4%
ov_SC03_111 2315 1738 0 2318 2510 92.4%
ov_SC03_112 2311 1740 0 2313 2526 91.6%
ov_SC03_113 2304 1740 0 2307 2468 93.5%
ov_SC03_114 2293 1738 0 2295 2415 95.0%
ov_SC03_115 2310 1738 0 2312 2472 93.5%
ov_SC03_116 2301 1738 0 2304 2438 94.5%
ov_SC03_117 2328 1738 0 2334 2557 91.3%
ov_SC03_118 2374 1762 0 2375 2685 88.5%
ov_SC03_119 2373 1762 0 2374 2685 88.4%
ov_SC03_121 2308 1738 0 2311 2459 94.0%
ov_SC03_124 2386 1734 0 2406 2741 87.8%
ov_SC03_125 2342 1738 0 2354 2588 91.0%
ov_SC03_126 2305 1740 0 2305 2423 95.1%
ov_SC04_000 2321 1742 0 2330 2546 91.5%
ov_SC04_002 2340 1738 0 2344 2636 88.9%
ov_SC04_003 2316 1738 0 2320 2502 92.7%
ov_SC04_004 2325 1738 0 2327 2558 91.0%
ov_SC04_005 2335 1738 0 2341 2612 89.6%
ov_SC04_006 2305 1738 0 2307 2454 94.0%
ov_SC04_007 2329 1738 0 2333 2569 90.8%
ov_SC04_008 2297 1738 0 2297 2415 95.1%
ov_SC04_009 2312 1738 0 2315 2441 94.8%
ov_SC04_010 2302 1738 0 2303 2419 95.2%
ov_SC04_011 2360 1738 0 2366 2803 84.4%
ov_SC04_012 2299 1738 0 2300 2420 95.0%
ov_SC04_015 2364 1739 0 2375 2611 91.0%
ov_SC04_016 2302 1738 0 2304 2440 94.4%
ov_SC04_018 2412 1773 0 2412 2857 84.4%
ov_SC04_019 2418 1773 0 2418 2857 84.6%
ov_SC04_020 2329 1738 0 2341 2567 91.2%
ov_SC04_021 2306 1740 0 2306 2423 95.2%
ov_SC05_000 2303 1742 0 2306 2422 95.2%
ov_SC05_001 2325 1738 0 2330 2574 90.5%
ov_SC05_002 2308 1738 0 2311 2442 94.6%
ov_SC05_003 2305 1738 0 2306 2481 92.9%
ov_SC05_004 2301 1738 0 2303 2464 93.5%
ov_SC05_005 2306 1738 0 2307 2491 92.6%
ov_SC05_006 2299 1738 0 2299 2430 94.6%
ov_SC05_007 2309 1738 0 2314 2482 93.2%
ov_SC05_008 2326 1738 0 2328 2543 91.5%
ov_SC05_009 2305 1738 0 2309 2438 94.7%
ov_SC05_010 2332 1738 0 2336 2588 90.3%
ov_SC05_011 2301 1738 0 2302 2409 95.6%
ov_SC05_017 2408 1735 0 2419 2842 85.1%
ov_SC05_018 2356 1738 0 2369 2673 88.6%
ov_SC05_019 2306 1740 0 2306 2423 95.2%
ov_SC06_000 2370 1747 0 2373 2691 88.2%
ov_SC06_006 2322 1738 0 2323 2511 92.5%
ov_SC06_008 2342 1740 0 2348 2542 92.4%
ov_SC06_010 2322 1738 0 2327 2517 92.5%
ov_SC06_011 2310 1738 0 2314 2468 93.8%
ov_SC06_013 2304 1738 0 2305 2425 95.1%
ov_SC06_014 2310 1738 0 2312 2453 94.3%
ov_SC06_015 2307 1738 0 2307 2421 95.3%
ov_SC06_016 2325 1738 0 2327 2549 91.3%
ov_SC06_018 2334 1740 0 2341 2665 87.8%
ov_SC06_020 2314 1740 0 2315 2518 91.9%
ov_SC06_022 2333 1738 0 2341 2642 88.6%
ov_SC06_024 2343 1738 0 2349 2667 88.1%
ov_SC06_025 2327 1738 0 2332 2572 90.7%
ov_SC06_027 2292 1738 0 2293 2408 95.2%
ov_SC06_029 2353 1738 0 2365 2662 88.8%
ov_SC06_030 2306 1738 0 2306 2456 93.9%
ov_SC06_032 2328 1739 0 2335 2658 87.8%
ov_SC06_033 2330 1739 0 2337 2631 88.8%
ov_SC07_000 2321 1742 0 2323 2521 92.1%
ov_SC07_001 2305 1738 0 2307 2454 94.0%
ov_SC07_002 2333 1738 0 2337 2579 90.6%
ov_SC07_006 2093 1555 0 2173 2456 88.5%
ov_SC07_007 2097 1586 0 2181 2613 83.5%
ov_SC07_008 2290 1738 0 2290 2386 96.0%
ov_SC07_009 2299 1738 0 2301 2430 94.7%
ov_SC07_010 2130 1608 0 2213 2524 87.7%
ov_SC07_011 2097 1585 0 2177 2449 88.9%