Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 4f6b0e8de1 feat(phase-30 S33b): PROPAGATE head 82% banked — 15,257 of 18,545 ins, four levers
Fleet 96.10 -> 96.17% fn-count / 93.7 -> 93.8% instr / 88.0% distinct.
dedup 1908 -> 1909 groups, 0 failed, C1 241078/241078.
R22 clean-fleet: 140 passed, 0 failed of 140.

  func_80147364  4,110  x137  definition-side asm-label alias
  func_8016BA68  3,886  x134  dedup_extend + the MIRROR decl relax
  func_8012F274  3,973  x136  hand-authored macro, source overlay excluded
  func_8012A598  3,288  x138  cdecl._mask backscan fix + shared-type switch
  func_801466F0  3,288  OPEN  the wrapped-alias regex — measured as ONE function

THREE DISTINCT CARRY VARIANTS were hiding in one "CARRY-FIXABLE" bucket, and
only one is a tool bug (-> cookbook §138):
  - a MULTI-LINE comment halts the preamble backscan -> fix the tool (cdecl._mask)
  - a draft-local `struct Tag {…}` -> switch the exemplar to the SHARED type
  - a file-scope `static inline` helper -> hand-author, EXCLUDE the source overlay
The third is the sneakiest: gcc-2.7.2 accepts implicit function declarations, so
the extracted body PASSED compiles_standalone with the helper undeclared and the
miss surfaced only as a whole-binary byte DIFF 137 gates later. Instantiating
that macro in the SOURCE overlay is a duplicate definition (its file-scope helper
is still there), so the shape is `--source-overlay X --binaries <all-but-X>`;
`--binaries` alone removes the source from the scan pool and errors.

TOOL BOUNDARY: once a group's members are DEFINE_func_*() sites, dedup_propagate
cannot extend it (find_site never returns a `def`). dedup_extend is the tool for
an already-macro-ized group — and `dedup_extend --check-only` across ordinary
overlays is a cheap fleet-wide wiring census (measured: exactly 1 group per
overlay, so no hidden backlog).

MEASURED, NOT INHERITED (R37): the S6b note frames _alias_decl_for's single-line
regex as a CLASS of missed work. It is not — 91 asm-label alias decls exist
fleet-wide, the regex matches 90, and the single miss is func_801466F0. Worth
3,288 ins, but a one-function fix. Correcting the expectation so a future session
does not scope against it.
2026-08-04 00:30:56 -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: 340185 / 353721 = 96.17% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 12322427 / 13141652 = 93.8% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 4961017 / 5634875 = 88.0% (77550/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: 12321991 / 13081451 = 94.2%)

FLEET REAL substantive : 338330 (of which dedup-shared 241004 via 1909 groups / 241078 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 13529 FLEET matchable : 353721

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 2381 1752 0 2381 2403 99.1%
ov_SC01_001 2389 1753 0 2391 2466 97.0%
ov_SC01_004 2383 1744 0 2384 2414 98.8%
ov_SC01_005 2413 1767 0 2413 2503 96.4%
ov_SC01_006 2413 1767 0 2413 2503 96.4%
ov_SC01_008 2383 1744 0 2385 2426 98.3%
ov_SC01_009 2409 1745 0 2410 2507 96.1%
ov_SC01_074 2388 1745 0 2390 2425 98.6%
ov_SC01_077 2538 1710 0 2540 2586 98.2%
ov_SC01_080 2416 1748 0 2416 2512 96.2%
ov_SC01_084 2441 1753 0 2446 2579 94.8%
ov_SC02_000 2506 1792 0 2506 2683 93.4%
ov_SC02_003 2506 1792 0 2506 2683 93.4%
ov_SC02_004 2381 1748 0 2381 2401 99.2%
ov_SC02_005 2528 1744 0 2538 2927 86.7%
ov_SC02_011 2611 1751 0 2622 2893 90.6%
ov_SC02_015 2392 1750 0 2392 2414 99.1%
ov_SC02_016 2473 1750 0 2476 2545 97.3%
ov_SC02_017 2541 1750 0 2549 2732 93.3%
ov_SC02_021 2397 1750 0 2397 2437 98.4%
ov_SC02_026 2488 1748 0 2494 2572 97.0%
ov_SC02_027 2545 1748 0 2554 2692 94.9%
ov_SC02_028 2550 1748 0 2560 2701 94.8%
ov_SC02_031 2484 1749 0 2489 2562 97.2%
ov_SC02_035 2472 1748 0 2475 2520 98.2%
ov_SC02_039 2386 1748 0 2386 2416 98.8%
ov_SC02_041 2463 1748 0 2466 2561 96.3%
ov_SC03_001 2649 1749 0 2666 2869 92.9%
ov_SC03_002 2525 1753 0 2540 2631 96.5%
ov_SC03_003 2390 1748 0 2391 2423 98.7%
ov_SC03_006 2539 1754 0 2548 2767 92.1%
ov_SC03_007 2453 1748 0 2457 2623 93.7%
ov_SC03_010 2406 1748 0 2406 2471 97.4%
ov_SC03_011 2408 1748 0 2414 2527 95.5%
ov_SC03_012 2380 1748 0 2381 2406 99.0%
ov_SC03_013 2412 1748 0 2412 2493 96.8%
ov_SC03_014 2559 1776 0 2559 2685 95.3%
ov_SC03_015 2559 1776 0 2559 2685 95.3%
ov_SC03_023 2392 1748 0 2393 2435 98.3%
ov_SC03_024 2501 1753 0 2508 2641 95.0%
ov_SC03_028 2449 1748 0 2453 2664 92.1%
ov_SC03_029 2492 1750 0 2502 2644 94.6%
ov_SC03_030 2410 1753 0 2412 2495 96.7%
ov_SC03_031 2439 1748 0 2442 2514 97.1%
ov_SC03_089 2497 1753 0 2504 2581 97.0%
ov_SC03_090 2507 1753 0 2515 2625 95.8%
ov_SC03_091 2521 1748 0 2529 2640 95.8%
ov_SC03_092 2490 1753 0 2502 2587 96.7%
ov_SC03_093 2504 1748 0 2508 2563 97.9%
ov_SC03_094 2488 1748 0 2494 2577 96.8%
ov_SC03_095 2420 1748 0 2423 2474 97.9%
ov_SC03_096 2417 1748 0 2420 2465 98.2%
ov_SC03_097 2511 1748 0 2518 2603 96.7%
ov_SC03_098 2493 1748 0 2496 2541 98.2%
ov_SC03_099 2474 1748 0 2477 2504 98.9%
ov_SC03_100 2509 1748 0 2513 2539 99.0%
ov_SC03_101 2469 1753 0 2473 2528 97.8%
ov_SC03_102 2458 1748 0 2461 2492 98.8%
ov_SC03_103 2481 1750 0 2484 2510 99.0%
ov_SC03_104 2526 1753 0 2533 2616 96.8%
ov_SC03_105 2434 1748 0 2441 2597 94.0%
ov_SC03_108 2389 1748 0 2389 2443 97.8%
ov_SC03_109 2399 1748 0 2401 2424 99.1%
ov_SC03_110 2431 1748 0 2431 2468 98.5%
ov_SC03_111 2461 1748 0 2464 2510 98.2%
ov_SC03_112 2422 1750 0 2424 2526 96.0%
ov_SC03_113 2423 1750 0 2426 2468 98.3%
ov_SC03_114 2381 1748 0 2383 2415 98.7%
ov_SC03_115 2422 1748 0 2424 2472 98.1%
ov_SC03_116 2389 1748 0 2392 2438 98.1%
ov_SC03_117 2457 1748 0 2463 2557 96.3%
ov_SC03_118 2527 1772 0 2528 2685 94.2%
ov_SC03_119 2523 1772 0 2524 2685 94.0%
ov_SC03_121 2395 1748 0 2398 2459 97.5%
ov_SC03_124 2559 1744 0 2579 2741 94.1%
ov_SC03_125 2512 1748 0 2524 2588 97.5%
ov_SC03_126 2391 1750 0 2391 2423 98.7%
ov_SC04_000 2464 1752 0 2473 2546 97.1%
ov_SC04_002 2491 1748 0 2495 2636 94.7%
ov_SC04_003 2428 1748 0 2432 2502 97.2%
ov_SC04_004 2461 1748 0 2463 2558 96.3%
ov_SC04_005 2485 1748 0 2491 2612 95.4%
ov_SC04_006 2421 1748 0 2423 2454 98.7%
ov_SC04_007 2479 1748 0 2483 2569 96.7%
ov_SC04_008 2392 1748 0 2392 2415 99.0%
ov_SC04_009 2418 1748 0 2421 2441 99.2%
ov_SC04_010 2394 1748 0 2395 2419 99.0%
ov_SC04_011 2505 1753 0 2511 2803 89.6%
ov_SC04_012 2389 1748 0 2390 2420 98.8%
ov_SC04_015 2517 1749 0 2528 2611 96.8%
ov_SC04_016 2392 1748 0 2394 2440 98.1%
ov_SC04_018 2661 1784 0 2661 2857 93.1%
ov_SC04_019 2653 1784 0 2653 2857 92.9%
ov_SC04_020 2499 1748 0 2511 2567 97.8%
ov_SC04_021 2391 1750 0 2391 2423 98.7%
ov_SC05_000 2398 1752 0 2401 2422 99.1%
ov_SC05_001 2466 1748 0 2471 2574 96.0%
ov_SC05_002 2421 1748 0 2424 2442 99.3%
ov_SC05_003 2402 1748 0 2403 2481 96.9%
ov_SC05_004 2412 1748 0 2414 2464 98.0%
ov_SC05_005 2428 1753 0 2429 2491 97.5%
ov_SC05_006 2414 1748 0 2414 2430 99.3%
ov_SC05_007 2421 1748 0 2426 2482 97.7%
ov_SC05_008 2434 1748 0 2436 2543 95.8%
ov_SC05_009 2399 1748 0 2403 2438 98.6%
ov_SC05_010 2437 1748 0 2441 2588 94.3%
ov_SC05_011 2388 1748 0 2389 2409 99.2%
ov_SC05_017 2632 1745 0 2643 2842 93.0%
ov_SC05_018 2528 1748 0 2541 2673 95.1%
ov_SC05_019 2391 1750 0 2391 2423 98.7%
ov_SC06_000 2515 1757 0 2518 2691 93.6%
ov_SC06_006 2413 1748 0 2414 2511 96.1%
ov_SC06_008 2467 1750 0 2473 2542 97.3%
ov_SC06_010 2441 1748 0 2446 2517 97.2%
ov_SC06_011 2405 1748 0 2409 2468 97.6%
ov_SC06_013 2395 1748 0 2396 2425 98.8%
ov_SC06_014 2406 1748 0 2408 2453 98.2%
ov_SC06_015 2400 1748 0 2400 2421 99.1%
ov_SC06_016 2442 1748 0 2444 2549 95.9%
ov_SC06_018 2468 1750 0 2475 2665 92.9%
ov_SC06_020 2429 1750 0 2430 2518 96.5%
ov_SC06_022 2455 1748 0 2463 2642 93.2%
ov_SC06_024 2474 1748 0 2480 2667 93.0%
ov_SC06_025 2443 1748 0 2448 2572 95.2%
ov_SC06_027 2383 1748 0 2384 2408 99.0%
ov_SC06_029 2464 1748 0 2476 2662 93.0%
ov_SC06_030 2403 1748 0 2403 2456 97.8%
ov_SC06_032 2461 1749 0 2468 2658 92.9%
ov_SC06_033 2460 1749 0 2467 2631 93.8%
ov_SC07_000 2423 1752 0 2425 2521 96.2%
ov_SC07_001 2395 1748 0 2397 2454 97.7%
ov_SC07_002 2448 1748 0 2452 2579 95.1%
ov_SC07_006 2306 1572 0 2386 2456 97.1%
ov_SC07_007 2324 1604 0 2408 2613 92.2%
ov_SC07_008 2377 1748 0 2377 2386 99.6%
ov_SC07_009 2389 1748 0 2391 2430 98.4%
ov_SC07_010 2305 1625 0 2388 2524 94.6%
ov_SC07_011 2325 1603 0 2405 2449 98.2%