Files
BFM-decomp/docs/progress.fleet.md
T
Drew T d2a79deff2 feat(phase-29): ALL THREE BEHEMOTHS BANKED — func_80183814 (5,122), func_8017DC1C (1,518), func_8017D2DC (1,586)
Zero functions >1000 ins remain unmatched anywhere in the fleet.

func_80183814 (5,122 ins — the LARGEST function in the game) — round 2 closed it: length 5127->5122
exact, structural residual 36->0, register-sensitive 1201->0, frame -256 -> -0xF8 exact, saves
10 -> .mask 0x807f0000 exact. Verified independently (R14): match_one MATCH (5122 ins).
  ROUND 1's DIAGNOSIS WAS WRONG and the agent refuted it properly: the +5 length was a SYMPTOM, not
  the lever, and the §83d max_reg/cse.c:8340 story does not hold — a 15-line reproducer reproduced the
  case-0/3 CSE exactly (so it cannot be max_reg-gated), max_qty only gates extension ACROSS blocks,
  and the target leaves $s7/$fp unused (no pressure story). Confirmed from a second direction: C01 has
  the identical two groups over the identical symbols with ZERO residual, because a `break` puts a
  CODE_LABEL between them. The two biggest levers were pure DECLARATION SCOPE (§45/§76), not pins.
func_8017DC1C (1,518) — MATCH first round, pin-free, zero __asm__ dials. NOT a jr fn (0 mid-fn jr).
func_8017D2DC (1,586) — MATCH first round (banked in the previous commit).

BANKING ORDER MATTERS — a new failure mode found and worked around: banking func_8017DC1C BEFORE the
carve chain broke the build. Its draft establishes the canon for 39 previously-undeclared externs;
jr_isolate_all's re-partition (overlay_src_split) then DROPPED ALL 39 across the new split boundary
(`D_801C1EB0 undeclared`), leaving them in NEITHER file. The §77 preamble-drop class, in a third tool.
FIX = ordering, not patching: run the §81 carve chain FIRST on a clean tree (gated BYTE-IDENTICAL),
then bank. Reverted, re-sequenced, both banked clean.

R22 clean-fleet 140/140 BYTE-IDENTICAL; tools-health OK; dedup 1886/0; 0 NON_MATCHING (G4).
Fleet: instr 81.6 -> 81.7% · distinct-code 69.1 -> 69.3% · fn-count 89.52%.
2026-07-26 22:16:48 -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: 316659 / 353720 = 89.52% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 10736288 / 13141652 = 81.7% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 3902266 / 5634875 = 69.3% (65199/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: 10735852 / 13081451 = 82.1%)

FLEET REAL substantive : 314804 (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 : 37054 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 2255 1742 0 2255 2403 93.8%
ov_SC01_001 2260 1743 0 2262 2466 91.7%
ov_SC01_004 2250 1734 0 2251 2414 93.2%
ov_SC01_005 2280 1757 0 2280 2503 91.1%
ov_SC01_006 2280 1757 0 2280 2503 91.1%
ov_SC01_008 2250 1734 0 2252 2426 92.8%
ov_SC01_009 2276 1735 0 2277 2507 90.8%
ov_SC01_074 2254 1735 0 2256 2425 93.0%
ov_SC01_077 2433 1702 0 2435 2585 94.2%
ov_SC01_080 2292 1738 0 2292 2512 91.2%
ov_SC01_084 2299 1738 0 2304 2579 89.3%
ov_SC02_000 2352 1773 0 2352 2683 87.7%
ov_SC02_003 2352 1773 0 2352 2683 87.7%
ov_SC02_004 2258 1738 0 2258 2401 94.0%
ov_SC02_005 2366 1734 0 2376 2927 81.2%
ov_SC02_011 2379 1741 0 2390 2893 82.6%
ov_SC02_015 2260 1740 0 2260 2414 93.6%
ov_SC02_016 2294 1740 0 2297 2545 90.3%
ov_SC02_017 2337 1740 0 2345 2732 85.8%
ov_SC02_021 2266 1740 0 2266 2437 93.0%
ov_SC02_026 2281 1738 0 2287 2572 88.9%
ov_SC02_027 2304 1738 0 2313 2692 85.9%
ov_SC02_028 2306 1738 0 2316 2701 85.7%
ov_SC02_031 2292 1739 0 2297 2562 89.7%
ov_SC02_035 2267 1738 0 2270 2520 90.1%
ov_SC02_039 2251 1738 0 2251 2416 93.2%
ov_SC02_041 2289 1738 0 2292 2561 89.5%
ov_SC03_001 2386 1739 0 2403 2869 83.8%
ov_SC03_002 2312 1743 0 2327 2631 88.4%
ov_SC03_003 2261 1738 0 2262 2423 93.4%
ov_SC03_006 2328 1744 0 2337 2767 84.5%
ov_SC03_007 2306 1738 0 2310 2623 88.1%
ov_SC03_010 2269 1738 0 2269 2471 91.8%
ov_SC03_011 2275 1738 0 2281 2527 90.3%
ov_SC03_012 2253 1738 0 2254 2406 93.7%
ov_SC03_013 2274 1738 0 2274 2493 91.2%
ov_SC03_014 2332 1763 0 2332 2685 86.9%
ov_SC03_015 2332 1763 0 2332 2685 86.9%
ov_SC03_023 2260 1738 0 2261 2435 92.9%
ov_SC03_024 2320 1743 0 2327 2641 88.1%
ov_SC03_028 2300 1738 0 2304 2664 86.5%
ov_SC03_029 2302 1740 0 2312 2644 87.4%
ov_SC03_030 2275 1743 0 2277 2495 91.3%
ov_SC03_031 2271 1738 0 2274 2514 90.5%
ov_SC03_089 2288 1738 0 2295 2581 88.9%
ov_SC03_090 2289 1738 0 2297 2625 87.5%
ov_SC03_091 2292 1738 0 2300 2640 87.1%
ov_SC03_092 2302 1738 0 2314 2587 89.4%
ov_SC03_093 2278 1738 0 2282 2563 89.0%
ov_SC03_094 2273 1738 0 2279 2577 88.4%
ov_SC03_095 2263 1738 0 2266 2474 91.6%
ov_SC03_096 2263 1738 0 2266 2465 91.9%
ov_SC03_097 2293 1738 0 2300 2603 88.4%
ov_SC03_098 2271 1738 0 2274 2541 89.5%
ov_SC03_099 2264 1738 0 2267 2504 90.5%
ov_SC03_100 2274 1738 0 2278 2539 89.7%
ov_SC03_101 2274 1738 0 2278 2528 90.1%
ov_SC03_102 2267 1738 0 2270 2492 91.1%
ov_SC03_103 2270 1740 0 2273 2510 90.6%
ov_SC03_104 2296 1738 0 2303 2616 88.0%
ov_SC03_105 2287 1738 0 2294 2597 88.3%
ov_SC03_108 2255 1738 0 2255 2443 92.3%
ov_SC03_109 2258 1738 0 2260 2424 93.2%
ov_SC03_110 2262 1738 0 2262 2468 91.7%
ov_SC03_111 2273 1738 0 2276 2510 90.7%
ov_SC03_112 2269 1740 0 2271 2526 89.9%
ov_SC03_113 2262 1740 0 2265 2468 91.8%
ov_SC03_114 2251 1738 0 2253 2415 93.3%
ov_SC03_115 2268 1738 0 2270 2472 91.8%
ov_SC03_116 2259 1738 0 2262 2438 92.8%
ov_SC03_117 2286 1738 0 2292 2557 89.6%
ov_SC03_118 2332 1762 0 2333 2685 86.9%
ov_SC03_119 2331 1762 0 2332 2685 86.9%
ov_SC03_121 2266 1738 0 2269 2459 92.3%
ov_SC03_124 2344 1734 0 2364 2741 86.2%
ov_SC03_125 2300 1738 0 2312 2588 89.3%
ov_SC03_126 2263 1740 0 2263 2423 93.4%
ov_SC04_000 2279 1742 0 2288 2546 89.9%
ov_SC04_002 2298 1738 0 2302 2636 87.3%
ov_SC04_003 2274 1738 0 2278 2502 91.0%
ov_SC04_004 2283 1738 0 2285 2558 89.3%
ov_SC04_005 2293 1738 0 2299 2612 88.0%
ov_SC04_006 2263 1738 0 2265 2454 92.3%
ov_SC04_007 2287 1738 0 2291 2569 89.2%
ov_SC04_008 2255 1738 0 2255 2415 93.4%
ov_SC04_009 2270 1738 0 2273 2441 93.1%
ov_SC04_010 2260 1738 0 2261 2419 93.5%
ov_SC04_011 2318 1738 0 2324 2803 82.9%
ov_SC04_012 2257 1738 0 2258 2420 93.3%
ov_SC04_015 2322 1739 0 2333 2611 89.4%
ov_SC04_016 2260 1738 0 2262 2440 92.7%
ov_SC04_018 2370 1773 0 2370 2857 83.0%
ov_SC04_019 2376 1773 0 2376 2857 83.2%
ov_SC04_020 2287 1738 0 2299 2567 89.6%
ov_SC04_021 2264 1740 0 2264 2423 93.4%
ov_SC05_000 2261 1742 0 2264 2422 93.5%
ov_SC05_001 2283 1738 0 2288 2574 88.9%
ov_SC05_002 2266 1738 0 2269 2442 92.9%
ov_SC05_003 2263 1738 0 2264 2481 91.3%
ov_SC05_004 2259 1738 0 2261 2464 91.8%
ov_SC05_005 2264 1738 0 2265 2491 90.9%
ov_SC05_006 2257 1738 0 2257 2430 92.9%
ov_SC05_007 2267 1738 0 2272 2482 91.5%
ov_SC05_008 2284 1738 0 2286 2543 89.9%
ov_SC05_009 2263 1738 0 2267 2438 93.0%
ov_SC05_010 2290 1738 0 2294 2588 88.6%
ov_SC05_011 2259 1738 0 2260 2409 93.8%
ov_SC05_017 2366 1735 0 2377 2842 83.6%
ov_SC05_018 2313 1738 0 2326 2673 87.0%
ov_SC05_019 2264 1740 0 2264 2423 93.4%
ov_SC06_000 2328 1747 0 2331 2691 86.6%
ov_SC06_006 2280 1738 0 2281 2511 90.8%
ov_SC06_008 2300 1740 0 2306 2542 90.7%
ov_SC06_010 2280 1738 0 2285 2517 90.8%
ov_SC06_011 2268 1738 0 2272 2468 92.1%
ov_SC06_013 2262 1738 0 2263 2425 93.3%
ov_SC06_014 2268 1738 0 2270 2453 92.5%
ov_SC06_015 2265 1738 0 2265 2421 93.6%
ov_SC06_016 2283 1738 0 2285 2549 89.6%
ov_SC06_018 2294 1740 0 2301 2665 86.3%
ov_SC06_020 2272 1740 0 2273 2518 90.3%
ov_SC06_022 2291 1738 0 2299 2642 87.0%
ov_SC06_024 2301 1738 0 2307 2667 86.5%
ov_SC06_025 2285 1738 0 2290 2572 89.0%
ov_SC06_027 2250 1738 0 2251 2408 93.5%
ov_SC06_029 2311 1738 0 2323 2662 87.3%
ov_SC06_030 2264 1738 0 2264 2456 92.2%
ov_SC06_032 2286 1739 0 2293 2658 86.3%
ov_SC06_033 2288 1739 0 2295 2631 87.2%
ov_SC07_000 2279 1742 0 2281 2521 90.5%
ov_SC07_001 2263 1738 0 2265 2454 92.3%
ov_SC07_002 2291 1738 0 2295 2579 89.0%
ov_SC07_006 2064 1555 0 2144 2456 87.3%
ov_SC07_007 2058 1586 0 2142 2613 82.0%
ov_SC07_008 2248 1738 0 2248 2386 94.2%
ov_SC07_009 2257 1738 0 2259 2430 93.0%
ov_SC07_010 2090 1608 0 2173 2524 86.1%
ov_SC07_011 2058 1585 0 2138 2449 87.3%