Files
BFM-decomp/docs/progress.fleet.md
T
Drew T e7d61e823d feat(phase-30 S50): bank the top-reach families 0x801F1CD8 (41/41) and 0x8017D290 (9/9)
Three carries a mechanical seed-body draft needs beyond the symbol rebase (cookbook §171b),
each found from one compiler verdict:

- DATA DEFINED INSIDE THE MEMBER'S OWN .s must be DEFINED, not externed — it vanishes with
  the stub it lives in. Re-initialised with THIS member's bytes (the 0x801F1CD8 family carries
  4 distinct 8-byte patterns across 42 members). Flat-byte-list initializers only; refuse the
  rest rather than mis-initialise something the gate would reject unexplainably.
- SHARED TYPES the destination cannot see: MATRIX/SVECTOR live in engine_types.h, which md_*
  TUs never include. `parse error before 'm1'` was the only thing between 4 of 9 members and a
  bank. Carried brace-matched, vetoed by the destination.
- A POSITIONAL LITERAL MAP where imm_map_tier1 gives up: it refuses a value that also appears
  at a non-differing slot (0x10 collides with the struct offsets), but the 8 differing slots
  map 1:1 onto the C's call sites in order. Asserted ([C literals] == [seed slot values])
  before substituting — that assert is the whole safety argument. 10/10 refused -> 9/9 banked.

- ROOT-CAUSE FIX: body_text matched `extern void func_X(...);` at column 0 and returned the
  NEXT function's body — silently shipping wrong seed bodies, visible only as "no definition
  after rename" skips. A definition is now confirmed by a `{` with no `;` before it.

R22 clean rebuild: check-all 213 passed, 0 failed of 213. Stubs 12,161 -> 12,111.
Fleet 95.3% instr / 90.0% distinct / 96.66% fn-count.
2026-08-14 11:23:26 -06:00

12 KiB
Raw Blame History

BFM FLEET matching progress (generated by tools/progress.py --fleet — authoritative)

213 binaries: main + resident + 211 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: 351045 / 363163 = 96.66% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 12884861 / 13523856 = 95.3% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 5268274 / 5851963 = 90.0% (81321/90928 unique fns; the DISTINCT-RE number) MAIN game-code weighted : 436 / 79510 = 0.5% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-08-05; 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: 12884425 / 13444346 = 95.8%)

FLEET REAL substantive : 348875 (of which dedup-shared 254445 via 2062 groups / 254519 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 12111 FLEET matchable : 363163

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%
md_MAIN_001 1 0 0 1 11 9.1%
md_MAIN_003 3 0 0 3 60 5.0%
md_MAIN_008 0 0 0 0 6 0.0%
md_MAIN_011 0 0 0 0 21 0.0%
md_MAIN_013 5 0 0 5 16 31.2%
md_MAIN_014 4 0 0 5 13 38.5%
md_MAIN_015 8 0 0 8 20 40.0%
md_MAIN_016 4 0 0 5 13 38.5%
md_MAIN_017 4 0 0 4 10 40.0%
md_MAIN_018 3 0 0 4 11 36.4%
md_MAIN_019 8 0 0 8 22 36.4%
md_MAIN_020 9 0 0 10 14 71.4%
md_MAIN_021 4 0 0 5 11 45.5%
md_MAIN_022 19 0 0 21 33 63.6%
md_MAIN_023 3 0 0 4 6 66.7%
md_MAIN_024 3 0 0 5 6 83.3%
md_MAIN_025 6 0 0 6 30 20.0%
md_MAIN_026 7 0 0 7 24 29.2%
md_MAIN_027 9 0 0 11 29 37.9%
md_MAIN_028 5 0 0 5 22 22.7%
md_MAIN_029 3 0 0 4 11 36.4%
md_MAIN_030 4 0 0 4 10 40.0%
md_MAIN_031 4 0 0 4 18 22.2%
md_MAIN_032 5 0 0 5 10 50.0%
md_MAIN_033 4 0 0 4 19 21.1%
md_MAIN_034 5 0 0 6 28 21.4%
md_MAIN_035 11 0 0 12 16 75.0%
md_MAIN_036 9 0 0 10 28 35.7%
md_MAIN_037 4 0 0 4 17 23.5%
md_MAIN_038 7 0 0 7 20 35.0%
md_MAIN_039 5 0 0 5 26 19.2%
md_MAIN_040 4 0 0 4 19 21.1%
md_MAIN_041 5 0 0 5 15 33.3%
md_MAIN_042 0 0 0 0 4 0.0%
md_MAIN_043 4 0 0 5 23 21.7%
md_MAIN_044 12 0 0 13 44 29.5%
md_MAIN_045 5 0 0 6 21 28.6%
md_MAIN_046 10 0 0 11 39 28.2%
md_MAIN_047 3 0 0 4 12 33.3%
md_SC02_009 5 0 0 5 40 12.5%
md_SC03_073 27 10 0 27 28 96.4%
md_SC03_074 25 10 0 25 29 86.2%
md_SC03_075 29 10 0 29 41 70.7%
md_SC03_076 34 0 0 36 66 54.5%
md_SC03_077 24 0 0 26 35 74.3%
md_SC03_078 25 9 0 25 27 92.6%
md_SC03_079 24 0 0 26 29 89.7%
md_SC03_132 25 0 0 27 28 96.4%
md_SC03_133 23 1 0 25 29 86.2%
md_SC03_134 27 1 0 29 41 70.7%
md_SC03_135 34 0 0 36 66 54.5%
md_SC03_136 24 0 0 26 35 74.3%
md_SC03_137 23 1 0 25 27 92.6%
md_SC03_138 26 1 0 30 37 81.1%
md_SC04_024 24 0 0 26 28 92.9%
md_SC04_025 22 0 0 24 29 82.8%
md_SC04_026 26 0 0 28 41 68.3%
md_SC04_027 33 0 0 35 66 53.0%
md_SC04_028 24 0 0 26 35 74.3%
md_SC04_029 22 0 0 24 27 88.9%
md_SC04_030 24 0 0 28 31 90.3%
md_SC05_023 23 0 0 25 28 89.3%
md_SC05_024 21 0 0 23 29 79.3%
md_SC05_025 25 0 0 27 41 65.9%
md_SC05_026 32 0 0 34 66 51.5%
md_SC05_027 23 0 0 25 35 71.4%
md_SC05_028 21 0 0 23 27 85.2%
md_SC05_029 23 0 0 27 31 87.1%
md_SC07_003 18 0 0 18 100 18.0%
md_SC07_004 43 0 0 43 315 13.7%
ov_MAIN_012 2225 1690 0 2304 2403 95.9%
ov_SC01_000 2390 1809 0 2390 2403 99.5%
ov_SC01_001 2399 1811 0 2401 2466 97.4%
ov_SC01_004 2399 1802 0 2400 2414 99.4%
ov_SC01_005 2434 1826 0 2434 2503 97.2%
ov_SC01_006 2434 1826 0 2434 2503 97.2%
ov_SC01_008 2400 1803 0 2402 2426 99.0%
ov_SC01_009 2427 1803 0 2428 2507 96.8%
ov_SC01_074 2400 1803 0 2402 2426 99.0%
ov_SC01_077 2568 1764 0 2570 2586 99.4%
ov_SC01_080 2426 1806 0 2426 2512 96.6%
ov_SC01_084 2450 1811 0 2455 2579 95.2%
ov_SC02_000 2533 1852 0 2533 2683 94.4%
ov_SC02_003 2532 1852 0 2532 2683 94.4%
ov_SC02_004 2391 1806 0 2391 2401 99.6%
ov_SC02_005 2542 1802 0 2552 2927 87.2%
ov_SC02_011 2643 1810 0 2653 2893 91.7%
ov_SC02_015 2402 1808 0 2402 2414 99.5%
ov_SC02_016 2484 1810 0 2487 2545 97.7%
ov_SC02_017 2556 1810 0 2564 2732 93.9%
ov_SC02_021 2407 1808 0 2407 2437 98.8%
ov_SC02_026 2513 1807 0 2519 2572 97.9%
ov_SC02_027 2567 1828 0 2576 2692 95.7%
ov_SC02_028 2577 1827 0 2587 2701 95.8%
ov_SC02_031 2501 1809 0 2506 2562 97.8%
ov_SC02_035 2497 1806 0 2500 2520 99.2%
ov_SC02_037 2339 1704 0 2421 2516 96.2%
ov_SC02_039 2397 1806 0 2397 2416 99.2%
ov_SC02_041 2489 1806 0 2492 2561 97.3%
ov_SC03_001 2698 1807 0 2715 2869 94.6%
ov_SC03_002 2549 1815 0 2564 2631 97.5%
ov_SC03_003 2401 1806 0 2402 2423 99.1%
ov_SC03_006 2568 1814 0 2577 2767 93.1%
ov_SC03_007 2469 1806 0 2473 2623 94.3%
ov_SC03_010 2419 1806 0 2419 2471 97.9%
ov_SC03_011 2421 1806 0 2427 2527 96.0%
ov_SC03_012 2391 1806 0 2392 2406 99.4%
ov_SC03_013 2425 1806 0 2425 2493 97.3%
ov_SC03_014 2593 1841 0 2593 2685 96.6%
ov_SC03_015 2375 1841 0 2375 2468 96.2%
ov_SC03_023 2404 1806 0 2405 2435 98.8%
ov_SC03_024 2530 1813 0 2537 2641 96.1%
ov_SC03_028 2466 1807 0 2470 2664 92.7%
ov_SC03_029 2504 1810 0 2514 2644 95.1%
ov_SC03_030 2424 1811 0 2426 2495 97.2%
ov_SC03_031 2449 1808 0 2452 2514 97.5%
ov_SC03_089 2524 1811 0 2531 2581 98.1%
ov_SC03_090 2542 1811 0 2550 2625 97.1%
ov_SC03_091 2556 1828 0 2564 2640 97.1%
ov_SC03_092 2515 1811 0 2527 2588 97.6%
ov_SC03_093 2528 1828 0 2532 2563 98.8%
ov_SC03_094 2519 1806 0 2525 2577 98.0%
ov_SC03_095 2440 1806 0 2443 2474 98.7%
ov_SC03_096 2437 1806 0 2440 2465 99.0%
ov_SC03_097 2540 1827 0 2547 2603 97.8%
ov_SC03_098 2517 1828 0 2520 2541 99.2%
ov_SC03_099 2489 1806 0 2492 2504 99.5%
ov_SC03_100 2524 1828 0 2528 2539 99.6%
ov_SC03_101 2490 1811 0 2494 2528 98.7%
ov_SC03_102 2473 1806 0 2476 2492 99.4%
ov_SC03_103 2497 1808 0 2500 2510 99.6%
ov_SC03_104 2551 1811 0 2558 2616 97.8%
ov_SC03_105 2452 1807 0 2459 2597 94.7%
ov_SC03_107 2298 1690 0 2381 2497 95.4%
ov_SC03_108 2404 1806 0 2404 2443 98.4%
ov_SC03_109 2409 1807 0 2411 2424 99.5%
ov_SC03_110 2444 1830 0 2444 2468 99.0%
ov_SC03_111 2482 1806 0 2485 2510 99.0%
ov_SC03_112 2452 1808 0 2454 2526 97.1%
ov_SC03_113 2445 1808 0 2448 2468 99.2%
ov_SC03_114 2391 1806 0 2393 2415 99.1%
ov_SC03_115 2436 1806 0 2438 2472 98.6%
ov_SC03_116 2402 1806 0 2405 2438 98.6%
ov_SC03_117 2483 1806 0 2489 2557 97.3%
ov_SC03_118 2570 1839 0 2571 2684 95.8%
ov_SC03_119 2569 1839 0 2570 2685 95.7%
ov_SC03_121 2406 1807 0 2408 2459 97.9%
ov_SC03_124 2597 1802 0 2617 2741 95.5%
ov_SC03_125 2534 1815 0 2546 2588 98.4%
ov_SC03_126 2403 1808 0 2403 2423 99.2%
ov_SC04_000 2477 1811 0 2486 2546 97.6%
ov_SC04_002 2517 1806 0 2521 2636 95.6%
ov_SC04_003 2443 1813 0 2446 2502 97.8%
ov_SC04_004 2475 1807 0 2477 2558 96.8%
ov_SC04_005 2511 1806 0 2517 2612 96.4%
ov_SC04_006 2432 1812 0 2434 2454 99.2%
ov_SC04_007 2503 1807 0 2507 2569 97.6%
ov_SC04_008 2402 1806 0 2402 2415 99.5%
ov_SC04_009 2428 1806 0 2431 2441 99.6%
ov_SC04_010 2405 1806 0 2406 2419 99.5%
ov_SC04_011 2520 1811 0 2526 2803 90.1%
ov_SC04_012 2402 1806 0 2403 2420 99.3%
ov_SC04_015 2545 1807 0 2556 2611 97.9%
ov_SC04_016 2402 1806 0 2404 2440 98.5%
ov_SC04_018 2707 1858 0 2707 2857 94.7%
ov_SC04_019 2703 1858 0 2703 2857 94.6%
ov_SC04_020 2520 1815 0 2532 2567 98.6%
ov_SC04_021 2403 1808 0 2403 2423 99.2%
ov_SC05_000 2407 1810 0 2410 2422 99.5%
ov_SC05_001 2485 1807 0 2490 2574 96.7%
ov_SC05_002 2431 1806 0 2434 2442 99.7%
ov_SC05_003 2419 1806 0 2420 2481 97.5%
ov_SC05_004 2433 1806 0 2435 2464 98.8%
ov_SC05_005 2439 1812 0 2440 2491 98.0%
ov_SC05_006 2424 1807 0 2424 2430 99.8%
ov_SC05_007 2436 1806 0 2441 2482 98.3%
ov_SC05_008 2443 1806 0 2445 2543 96.1%
ov_SC05_009 2410 1806 0 2414 2438 99.0%
ov_SC05_010 2454 1807 0 2458 2588 95.0%
ov_SC05_011 2397 1806 0 2398 2409 99.5%
ov_SC05_017 2672 1803 0 2683 2842 94.4%
ov_SC05_018 2553 1814 0 2566 2673 96.0%
ov_SC05_019 2403 1808 0 2403 2423 99.2%
ov_SC06_000 2543 1817 0 2546 2691 94.6%
ov_SC06_006 2425 1807 0 2426 2511 96.6%
ov_SC06_008 2501 1808 0 2507 2542 98.6%
ov_SC06_010 2473 1806 0 2478 2517 98.5%
ov_SC06_011 2417 1806 0 2421 2468 98.1%
ov_SC06_013 2407 1806 0 2408 2425 99.3%
ov_SC06_014 2418 1806 0 2420 2453 98.7%
ov_SC06_015 2412 1806 0 2412 2421 99.6%
ov_SC06_016 2455 1807 0 2457 2549 96.4%
ov_SC06_018 2547 1807 0 2554 2665 95.8%
ov_SC06_020 2472 1808 0 2473 2518 98.2%
ov_SC06_022 2523 1806 0 2531 2642 95.8%
ov_SC06_024 2541 1806 0 2547 2667 95.5%
ov_SC06_025 2453 1806 0 2458 2572 95.6%
ov_SC06_027 2392 1806 0 2393 2408 99.4%
ov_SC06_029 2479 1807 0 2491 2662 93.6%
ov_SC06_030 2415 1807 0 2415 2456 98.3%
ov_SC06_032 2534 1807 0 2541 2658 95.6%
ov_SC06_033 2531 1807 0 2538 2631 96.5%
ov_SC07_000 2438 1811 0 2440 2521 96.8%
ov_SC07_001 2406 1807 0 2408 2454 98.1%
ov_SC07_002 2465 1807 0 2469 2579 95.7%
ov_SC07_006 2330 1625 0 2410 2456 98.1%
ov_SC07_007 2351 1660 0 2435 2612 93.2%
ov_SC07_008 2386 1806 0 2386 2386 100.0%
ov_SC07_009 2398 1806 0 2400 2430 98.8%
ov_SC07_010 2323 1682 0 2405 2523 95.3%
ov_SC07_011 2341 1659 0 2421 2448 98.9%