Files
BFM-decomp/docs/progress.fleet.md
T
Drew T ad57c16e61 feat(phase-29): func_8014CF04 + func_8015D1B8 banked; conform_decls had 3 defects R22 caught (§98)
THE BANK: the T14 PLUMBING census showed func_8014CF04 blocking THREE drafts at once. Conforming its
decl axis banked func_8014CF04 + func_8015D1B8 (func_80135260 is a genuine DIFF, agreeing with its
independent SESSION-21 diagnosis). R22 clean-fleet 140/140; report fail-closed green (dedup 1886/0,
0 NON_MATCHING). fn-count 317,896 -> 317,898; distinct 66,110 -> 66,111.

BUT THE AXIS WAS A 1,748-FILE T2 WRITE SET (the --check per-form counts read "1"), and R22 came back
139/140 -- TWICE -- on a change the per-binary gate called BYTE-IDENTICAL. Three defects (§98):

1. THE REGEX CROSSED NEWLINES. `[^;]*` matches '\n', so a match starting at a DEFINITION line ran
   past the `{` to the first `;`, swallowing `s32 func_8014CF04(...) {` PLUS the register pin on the
   next line and replacing both with a prototype -> undefined reference. Fixed to `[^;{\n]*`: a
   definition is now unmatchable by construction.
2. IT REWROTE INSIDE COMMENTS (H5, 3 lines). Now scans cdecl._mask() and rewrites by SPAN (R33 --
   that length-preserving primitive already existed for exactly this).
3. THE REAL CAUSE -- IT ASSUMED ONE SIGNATURE FITS THE FLEET. ov_SC07_006 carries its own banked
   definition with a DIFFERENT byte-true signature ((s32,s32,void*) vs (s32,void*,void*)), under a
   decl marked "per-overlay-local decl (byte-true sig); do NOT re-macroize". That is the Phase-16
   loose-typing wall inside a tool that structurally assumes it away. NEW RULE: a TU that DEFINES the
   function owns its own declarations; a fleet axis is meaningful only for CONSUMING TUs. This grows
   more common as banking proceeds -- every overlay that banks a function becomes an exception.

Then the R32 completion assertion cried wolf on its own by-design skip ("HALF-AXIS -- DO NOT BUILD"
for a complete rewrite): an assertion must be exact about its DOMAIN, not just its condition. Scoped
to consuming TUs -> 1,747 sites, 1 excluded by design. Also hardened to PLAN -> VALIDATE -> WRITE;
the refusal path had aborted mid-write while claiming nothing was modified, creating the very
half-axis §85 calls a guaranteed break.

META (R22's premise, re-earned): after fixing defect 1 I EXPECTED R22 to pass; it failed again for an
unrelated reason, and an individual `make build` of the failing binary SUCCEEDED by reusing objects
the clean run rebuilds. An incremental pass does not refute a clean-tree failure.
2026-07-27 17:47:57 -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: 317898 / 353720 = 89.87% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 10939883 / 13141652 = 83.2% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 4072956 / 5634875 = 72.3% (66111/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: 10939447 / 13081451 = 83.6%)

FLEET REAL substantive : 316043 (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 : 35815 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 2264 1742 0 2264 2403 94.2%
ov_SC01_001 2269 1743 0 2271 2466 92.1%
ov_SC01_004 2259 1734 0 2260 2414 93.6%
ov_SC01_005 2289 1757 0 2289 2503 91.5%
ov_SC01_006 2289 1757 0 2289 2503 91.5%
ov_SC01_008 2259 1734 0 2261 2426 93.2%
ov_SC01_009 2285 1735 0 2286 2507 91.2%
ov_SC01_074 2263 1735 0 2265 2425 93.4%
ov_SC01_077 2444 1702 0 2446 2585 94.6%
ov_SC01_080 2301 1738 0 2301 2512 91.6%
ov_SC01_084 2308 1738 0 2313 2579 89.7%
ov_SC02_000 2361 1773 0 2361 2683 88.0%
ov_SC02_003 2361 1773 0 2361 2683 88.0%
ov_SC02_004 2267 1738 0 2267 2401 94.4%
ov_SC02_005 2375 1734 0 2385 2927 81.5%
ov_SC02_011 2388 1741 0 2399 2893 82.9%
ov_SC02_015 2269 1740 0 2269 2414 94.0%
ov_SC02_016 2303 1740 0 2306 2545 90.6%
ov_SC02_017 2346 1740 0 2354 2732 86.2%
ov_SC02_021 2275 1740 0 2275 2437 93.4%
ov_SC02_026 2290 1738 0 2296 2572 89.3%
ov_SC02_027 2313 1738 0 2322 2692 86.3%
ov_SC02_028 2315 1738 0 2325 2701 86.1%
ov_SC02_031 2301 1739 0 2306 2562 90.0%
ov_SC02_035 2276 1738 0 2279 2520 90.4%
ov_SC02_039 2260 1738 0 2260 2416 93.5%
ov_SC02_041 2298 1738 0 2301 2561 89.8%
ov_SC03_001 2395 1739 0 2412 2869 84.1%
ov_SC03_002 2321 1743 0 2336 2631 88.8%
ov_SC03_003 2270 1738 0 2271 2423 93.7%
ov_SC03_006 2337 1744 0 2346 2767 84.8%
ov_SC03_007 2315 1738 0 2319 2623 88.4%
ov_SC03_010 2278 1738 0 2278 2471 92.2%
ov_SC03_011 2284 1738 0 2290 2527 90.6%
ov_SC03_012 2262 1738 0 2263 2406 94.1%
ov_SC03_013 2283 1738 0 2283 2493 91.6%
ov_SC03_014 2341 1763 0 2341 2685 87.2%
ov_SC03_015 2341 1763 0 2341 2685 87.2%
ov_SC03_023 2269 1738 0 2270 2435 93.2%
ov_SC03_024 2329 1743 0 2336 2641 88.5%
ov_SC03_028 2309 1738 0 2313 2664 86.8%
ov_SC03_029 2311 1740 0 2321 2644 87.8%
ov_SC03_030 2284 1743 0 2286 2495 91.6%
ov_SC03_031 2280 1738 0 2283 2514 90.8%
ov_SC03_089 2297 1738 0 2304 2581 89.3%
ov_SC03_090 2298 1738 0 2306 2625 87.8%
ov_SC03_091 2301 1738 0 2309 2640 87.5%
ov_SC03_092 2311 1738 0 2323 2587 89.8%
ov_SC03_093 2287 1738 0 2291 2563 89.4%
ov_SC03_094 2282 1738 0 2288 2577 88.8%
ov_SC03_095 2272 1738 0 2275 2474 92.0%
ov_SC03_096 2272 1738 0 2275 2465 92.3%
ov_SC03_097 2302 1738 0 2309 2603 88.7%
ov_SC03_098 2280 1738 0 2283 2541 89.8%
ov_SC03_099 2273 1738 0 2276 2504 90.9%
ov_SC03_100 2283 1738 0 2287 2539 90.1%
ov_SC03_101 2283 1738 0 2287 2528 90.5%
ov_SC03_102 2276 1738 0 2279 2492 91.5%
ov_SC03_103 2279 1740 0 2282 2510 90.9%
ov_SC03_104 2305 1738 0 2312 2616 88.4%
ov_SC03_105 2296 1738 0 2303 2597 88.7%
ov_SC03_108 2263 1738 0 2263 2443 92.6%
ov_SC03_109 2267 1738 0 2269 2424 93.6%
ov_SC03_110 2271 1738 0 2271 2468 92.0%
ov_SC03_111 2282 1738 0 2285 2510 91.0%
ov_SC03_112 2278 1740 0 2280 2526 90.3%
ov_SC03_113 2271 1740 0 2274 2468 92.1%
ov_SC03_114 2260 1738 0 2262 2415 93.7%
ov_SC03_115 2277 1738 0 2279 2472 92.2%
ov_SC03_116 2268 1738 0 2271 2438 93.2%
ov_SC03_117 2295 1738 0 2301 2557 90.0%
ov_SC03_118 2341 1762 0 2342 2685 87.2%
ov_SC03_119 2340 1762 0 2341 2685 87.2%
ov_SC03_121 2275 1738 0 2278 2459 92.6%
ov_SC03_124 2353 1734 0 2373 2741 86.6%
ov_SC03_125 2309 1738 0 2321 2588 89.7%
ov_SC03_126 2272 1740 0 2272 2423 93.8%
ov_SC04_000 2288 1742 0 2297 2546 90.2%
ov_SC04_002 2307 1738 0 2311 2636 87.7%
ov_SC04_003 2283 1738 0 2287 2502 91.4%
ov_SC04_004 2292 1738 0 2294 2558 89.7%
ov_SC04_005 2302 1738 0 2308 2612 88.4%
ov_SC04_006 2272 1738 0 2274 2454 92.7%
ov_SC04_007 2296 1738 0 2300 2569 89.5%
ov_SC04_008 2264 1738 0 2264 2415 93.7%
ov_SC04_009 2279 1738 0 2282 2441 93.5%
ov_SC04_010 2269 1738 0 2270 2419 93.8%
ov_SC04_011 2327 1738 0 2333 2803 83.2%
ov_SC04_012 2266 1738 0 2267 2420 93.7%
ov_SC04_015 2331 1739 0 2342 2611 89.7%
ov_SC04_016 2269 1738 0 2271 2440 93.1%
ov_SC04_018 2379 1773 0 2379 2857 83.3%
ov_SC04_019 2385 1773 0 2385 2857 83.5%
ov_SC04_020 2296 1738 0 2308 2567 89.9%
ov_SC04_021 2273 1740 0 2273 2423 93.8%
ov_SC05_000 2270 1742 0 2273 2422 93.8%
ov_SC05_001 2292 1738 0 2297 2574 89.2%
ov_SC05_002 2275 1738 0 2278 2442 93.3%
ov_SC05_003 2272 1738 0 2273 2481 91.6%
ov_SC05_004 2268 1738 0 2270 2464 92.1%
ov_SC05_005 2273 1738 0 2274 2491 91.3%
ov_SC05_006 2266 1738 0 2266 2430 93.3%
ov_SC05_007 2276 1738 0 2281 2482 91.9%
ov_SC05_008 2293 1738 0 2295 2543 90.2%
ov_SC05_009 2272 1738 0 2276 2438 93.4%
ov_SC05_010 2299 1738 0 2303 2588 89.0%
ov_SC05_011 2268 1738 0 2269 2409 94.2%
ov_SC05_017 2375 1735 0 2386 2842 84.0%
ov_SC05_018 2322 1738 0 2335 2673 87.4%
ov_SC05_019 2273 1740 0 2273 2423 93.8%
ov_SC06_000 2337 1747 0 2340 2691 87.0%
ov_SC06_006 2289 1738 0 2290 2511 91.2%
ov_SC06_008 2309 1740 0 2315 2542 91.1%
ov_SC06_010 2289 1738 0 2294 2517 91.1%
ov_SC06_011 2277 1738 0 2281 2468 92.4%
ov_SC06_013 2271 1738 0 2272 2425 93.7%
ov_SC06_014 2277 1738 0 2279 2453 92.9%
ov_SC06_015 2274 1738 0 2274 2421 93.9%
ov_SC06_016 2292 1738 0 2294 2549 90.0%
ov_SC06_018 2303 1740 0 2310 2665 86.7%
ov_SC06_020 2281 1740 0 2282 2518 90.6%
ov_SC06_022 2300 1738 0 2308 2642 87.4%
ov_SC06_024 2310 1738 0 2316 2667 86.8%
ov_SC06_025 2294 1738 0 2299 2572 89.4%
ov_SC06_027 2259 1738 0 2260 2408 93.9%
ov_SC06_029 2320 1738 0 2332 2662 87.6%
ov_SC06_030 2273 1738 0 2273 2456 92.5%
ov_SC06_032 2295 1739 0 2302 2658 86.6%
ov_SC06_033 2297 1739 0 2304 2631 87.6%
ov_SC07_000 2288 1742 0 2290 2521 90.8%
ov_SC07_001 2272 1738 0 2274 2454 92.7%
ov_SC07_002 2300 1738 0 2304 2579 89.3%
ov_SC07_006 2072 1555 0 2152 2456 87.6%
ov_SC07_007 2066 1586 0 2150 2613 82.3%
ov_SC07_008 2257 1738 0 2257 2386 94.6%
ov_SC07_009 2266 1738 0 2268 2430 93.3%
ov_SC07_010 2098 1608 0 2181 2524 86.4%
ov_SC07_011 2066 1585 0 2146 2449 87.6%