Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 69dee1d429 docs(phase-29): T50 + SESSION-23 REVISED final checkpoint
T50 func_80135260 family: the §53 carve path banked 4/137 (all SC07), 133 gate-fail, tree clean
after every revert. The 3,744-site conform_decls between runs changed NOTHING for this family (99
attempts observed mid-run, 0 banks) — it is byte-neutral and axis-complete so not harmful, but my
inference that this family shared func_80177DA8's blocker was WRONG: same SC07-only signature,
different cause.

THE REAL BLOCKER, LOCATED: staged siblings are correctly remapped (family_remap works). The draft
requires 4-byte POINTER decls for the contested data symbols — the canonical extern u8 +
(*(u16**)&sym) form makes gcc CSE &sym into two callee-saved regs, costing a 7th saved register and
3 extra instructions (the identical +3 measured on the exemplar). And every sibling host TU carries
the same FILE-SCOPE blocker the exemplar did: verified on ov_SC01_000, whose host TU declares the
contested symbols at file scope (lines 3053-3056) alongside 18 block-scope occurrences. A file-scope
decl constrains every later function in that TU — the T48 finding.

So the fix is the T48 lever replicated x137: scope those decls into their consumers per sibling TU.
Byte-neutral on the exemplar (proven in two steps). That is a TOOL, and it is worth ~18,000 ins.

Also: gather_externs' warning naming func_80135D20 is a COMMENT-SCANNING FALSE POSITIVE (the symbol
appears only in header prose and is defined in another split file). Fires on all 137, masks real
causes. Same class as the Phase-19 garbled-hint bug.

CHECKPOINT REVISED (supersedes the earlier SESSION-23 block): 975 functions banked, reconciled
against the metric (fn-count 319,549 -> 320,524) with the per-task recount agreeing exactly. Fleet
85.5% instr / 76.1% distinct / 90.62% fn-count. R22 140/140 run 11x, dedup 1886/0, 0 NON_MATCHING.
Ranked START-HERE (decl-scoping tool first), the four strategic changes, my five recorded errors —
whose common thread is inference from partial output instead of measuring — and the carried defects.
2026-07-28 16:16:42 -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: 320524 / 353720 = 90.62% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 11240111 / 13141652 = 85.5% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 4288392 / 5634875 = 76.1% (67687/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: 11239675 / 13081451 = 85.9%)

FLEET REAL substantive : 318669 (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 : 33189 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 2283 1742 0 2283 2403 95.0%
ov_SC01_001 2288 1743 0 2290 2466 92.9%
ov_SC01_004 2278 1734 0 2279 2414 94.4%
ov_SC01_005 2308 1757 0 2308 2503 92.2%
ov_SC01_006 2308 1757 0 2308 2503 92.2%
ov_SC01_008 2278 1734 0 2280 2426 94.0%
ov_SC01_009 2304 1735 0 2305 2507 91.9%
ov_SC01_074 2282 1735 0 2284 2425 94.2%
ov_SC01_077 2464 1702 0 2466 2585 95.4%
ov_SC01_080 2320 1738 0 2320 2512 92.4%
ov_SC01_084 2327 1738 0 2332 2579 90.4%
ov_SC02_000 2380 1773 0 2380 2683 88.7%
ov_SC02_003 2380 1773 0 2380 2683 88.7%
ov_SC02_004 2286 1738 0 2286 2401 95.2%
ov_SC02_005 2394 1734 0 2404 2927 82.1%
ov_SC02_011 2407 1741 0 2418 2893 83.6%
ov_SC02_015 2288 1740 0 2288 2414 94.8%
ov_SC02_016 2322 1740 0 2325 2545 91.4%
ov_SC02_017 2366 1740 0 2374 2732 86.9%
ov_SC02_021 2294 1740 0 2294 2437 94.1%
ov_SC02_026 2309 1738 0 2315 2572 90.0%
ov_SC02_027 2332 1738 0 2341 2692 87.0%
ov_SC02_028 2334 1738 0 2344 2701 86.8%
ov_SC02_031 2320 1739 0 2325 2562 90.7%
ov_SC02_035 2295 1738 0 2298 2520 91.2%
ov_SC02_039 2279 1738 0 2279 2416 94.3%
ov_SC02_041 2317 1738 0 2320 2561 90.6%
ov_SC03_001 2414 1739 0 2431 2869 84.7%
ov_SC03_002 2340 1743 0 2355 2631 89.5%
ov_SC03_003 2289 1738 0 2290 2423 94.5%
ov_SC03_006 2357 1744 0 2366 2767 85.5%
ov_SC03_007 2334 1738 0 2338 2623 89.1%
ov_SC03_010 2297 1738 0 2297 2471 93.0%
ov_SC03_011 2303 1738 0 2309 2527 91.4%
ov_SC03_012 2281 1738 0 2282 2406 94.8%
ov_SC03_013 2302 1738 0 2302 2493 92.3%
ov_SC03_014 2360 1763 0 2360 2685 87.9%
ov_SC03_015 2360 1763 0 2360 2685 87.9%
ov_SC03_023 2288 1738 0 2289 2435 94.0%
ov_SC03_024 2348 1743 0 2355 2641 89.2%
ov_SC03_028 2328 1738 0 2332 2664 87.5%
ov_SC03_029 2330 1740 0 2340 2644 88.5%
ov_SC03_030 2303 1743 0 2305 2495 92.4%
ov_SC03_031 2299 1738 0 2302 2514 91.6%
ov_SC03_089 2316 1738 0 2323 2581 90.0%
ov_SC03_090 2317 1738 0 2325 2625 88.6%
ov_SC03_091 2320 1738 0 2328 2640 88.2%
ov_SC03_092 2330 1738 0 2342 2587 90.5%
ov_SC03_093 2306 1738 0 2310 2563 90.1%
ov_SC03_094 2301 1738 0 2307 2577 89.5%
ov_SC03_095 2291 1738 0 2294 2474 92.7%
ov_SC03_096 2291 1738 0 2294 2465 93.1%
ov_SC03_097 2321 1738 0 2328 2603 89.4%
ov_SC03_098 2299 1738 0 2302 2541 90.6%
ov_SC03_099 2292 1738 0 2295 2504 91.7%
ov_SC03_100 2302 1738 0 2306 2539 90.8%
ov_SC03_101 2302 1738 0 2306 2528 91.2%
ov_SC03_102 2295 1738 0 2298 2492 92.2%
ov_SC03_103 2298 1740 0 2301 2510 91.7%
ov_SC03_104 2324 1738 0 2331 2616 89.1%
ov_SC03_105 2315 1738 0 2322 2597 89.4%
ov_SC03_108 2282 1738 0 2282 2443 93.4%
ov_SC03_109 2286 1738 0 2288 2424 94.4%
ov_SC03_110 2290 1738 0 2290 2468 92.8%
ov_SC03_111 2301 1738 0 2304 2510 91.8%
ov_SC03_112 2297 1740 0 2299 2526 91.0%
ov_SC03_113 2290 1740 0 2293 2468 92.9%
ov_SC03_114 2279 1738 0 2281 2415 94.5%
ov_SC03_115 2296 1738 0 2298 2472 93.0%
ov_SC03_116 2287 1738 0 2290 2438 93.9%
ov_SC03_117 2314 1738 0 2320 2557 90.7%
ov_SC03_118 2360 1762 0 2361 2685 87.9%
ov_SC03_119 2359 1762 0 2360 2685 87.9%
ov_SC03_121 2294 1738 0 2297 2459 93.4%
ov_SC03_124 2372 1734 0 2392 2741 87.3%
ov_SC03_125 2328 1738 0 2340 2588 90.4%
ov_SC03_126 2291 1740 0 2291 2423 94.6%
ov_SC04_000 2307 1742 0 2316 2546 91.0%
ov_SC04_002 2326 1738 0 2330 2636 88.4%
ov_SC04_003 2302 1738 0 2306 2502 92.2%
ov_SC04_004 2311 1738 0 2313 2558 90.4%
ov_SC04_005 2321 1738 0 2327 2612 89.1%
ov_SC04_006 2291 1738 0 2293 2454 93.4%
ov_SC04_007 2315 1738 0 2319 2569 90.3%
ov_SC04_008 2283 1738 0 2283 2415 94.5%
ov_SC04_009 2298 1738 0 2301 2441 94.3%
ov_SC04_010 2288 1738 0 2289 2419 94.6%
ov_SC04_011 2346 1738 0 2352 2803 83.9%
ov_SC04_012 2285 1738 0 2286 2420 94.5%
ov_SC04_015 2350 1739 0 2361 2611 90.4%
ov_SC04_016 2288 1738 0 2290 2440 93.9%
ov_SC04_018 2398 1773 0 2398 2857 83.9%
ov_SC04_019 2404 1773 0 2404 2857 84.1%
ov_SC04_020 2315 1738 0 2327 2567 90.7%
ov_SC04_021 2292 1740 0 2292 2423 94.6%
ov_SC05_000 2289 1742 0 2292 2422 94.6%
ov_SC05_001 2311 1738 0 2316 2574 90.0%
ov_SC05_002 2294 1738 0 2297 2442 94.1%
ov_SC05_003 2291 1738 0 2292 2481 92.4%
ov_SC05_004 2287 1738 0 2289 2464 92.9%
ov_SC05_005 2292 1738 0 2293 2491 92.1%
ov_SC05_006 2285 1738 0 2285 2430 94.0%
ov_SC05_007 2295 1738 0 2300 2482 92.7%
ov_SC05_008 2312 1738 0 2314 2543 91.0%
ov_SC05_009 2291 1738 0 2295 2438 94.1%
ov_SC05_010 2318 1738 0 2322 2588 89.7%
ov_SC05_011 2287 1738 0 2288 2409 95.0%
ov_SC05_017 2394 1735 0 2405 2842 84.6%
ov_SC05_018 2341 1738 0 2354 2673 88.1%
ov_SC05_019 2292 1740 0 2292 2423 94.6%
ov_SC06_000 2356 1747 0 2359 2691 87.7%
ov_SC06_006 2308 1738 0 2309 2511 92.0%
ov_SC06_008 2328 1740 0 2334 2542 91.8%
ov_SC06_010 2308 1738 0 2313 2517 91.9%
ov_SC06_011 2296 1738 0 2300 2468 93.2%
ov_SC06_013 2290 1738 0 2291 2425 94.5%
ov_SC06_014 2296 1738 0 2298 2453 93.7%
ov_SC06_015 2293 1738 0 2293 2421 94.7%
ov_SC06_016 2311 1738 0 2313 2549 90.7%
ov_SC06_018 2322 1740 0 2329 2665 87.4%
ov_SC06_020 2300 1740 0 2301 2518 91.4%
ov_SC06_022 2319 1738 0 2327 2642 88.1%
ov_SC06_024 2329 1738 0 2335 2667 87.6%
ov_SC06_025 2313 1738 0 2318 2572 90.1%
ov_SC06_027 2278 1738 0 2279 2408 94.6%
ov_SC06_029 2339 1738 0 2351 2662 88.3%
ov_SC06_030 2292 1738 0 2292 2456 93.3%
ov_SC06_032 2314 1739 0 2321 2658 87.3%
ov_SC06_033 2316 1739 0 2323 2631 88.3%
ov_SC07_000 2307 1742 0 2309 2521 91.6%
ov_SC07_001 2291 1738 0 2293 2454 93.4%
ov_SC07_002 2319 1738 0 2323 2579 90.1%
ov_SC07_006 2090 1555 0 2170 2456 88.4%
ov_SC07_007 2085 1586 0 2169 2613 83.0%
ov_SC07_008 2276 1738 0 2276 2386 95.4%
ov_SC07_009 2285 1738 0 2287 2430 94.1%
ov_SC07_010 2119 1608 0 2202 2524 87.2%
ov_SC07_011 2085 1585 0 2165 2449 88.4%