Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 28dc3785f5 feat(phase-29): T82 — symbol-KIND fix in symbol_map: func_80174784 2/255 -> 251/251 (§117)
- CAUSE: family_remap.symbol_map zips exemplar/sibling reloc slots positionally and spelled the
  SIBLING's symbol from the EXEMPLAR's kind. Same-address families always agree, so it was
  invisible for 20+ phases; cross-address families need not agree — func_80174784's callback slot
  is the FUNCTION func_801747CC while member func_8017CFD4's same slot is the DATA symbol
  D_80182688. The map emitted func_80182688, the body materialized a name for an address that is
  not a function, and the fleet gate refused all 251 members.
- FIX: spell the target by what the target address IS in the SIBLING's overlay (func_ iff in that
  overlay's sig set — the same boundary oracle nins_of trusts, R33; memoized). Phase 26-A had
  already established this rule and applied it only to the exemplar side.
- WHY IT HID: rtu_match/match_one MASK HI16/LO16, so a wrong %hi/%lo symbol still reports a clean
  MATCH (measured: "MATCH (10 ins)" on a member the fleet gate rejected). masked-MATCH +
  whole-binary DIFF is the exact signature of a compiler wall. Cookbook §117 carries the law.
- Also refuted en route (cheaply): --normalize-self-decls was NOT the cause — re-swept without it,
  still 0/251.
- GATES: R22 clean-fleet 140/140; dedup 1886/0; 0 NON_MATCHING (G4).
- METRICS: fn-count 91.41 -> 91.48% (+251, exact) · distinct-code 68,782 -> 69,024 unique fns
  (+242, projected 246) · instr +2,510.
- BLAST RADIUS UNMEASURED: symbol_map serves every family sweep; 229 eligible non-jr families /
  2,575 members have never been swept with a correct target spelling, incl. the byte-identical
  families T76 measured at 0/682 (same failure shape).
2026-07-29 23:08:03 -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: 323596 / 353720 = 91.48% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 11423192 / 13141652 = 86.9% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 4363317 / 5634875 = 77.4% (69024/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: 11422756 / 13081451 = 87.3%)

FLEET REAL substantive : 321741 (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 : 30117 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 2303 1742 0 2303 2403 95.8%
ov_SC01_001 2310 1743 0 2312 2466 93.8%
ov_SC01_004 2301 1734 0 2302 2414 95.4%
ov_SC01_005 2330 1757 0 2330 2503 93.1%
ov_SC01_006 2330 1757 0 2330 2503 93.1%
ov_SC01_008 2301 1734 0 2303 2426 94.9%
ov_SC01_009 2326 1735 0 2327 2507 92.8%
ov_SC01_074 2307 1735 0 2309 2425 95.2%
ov_SC01_077 2475 1702 0 2477 2585 95.8%
ov_SC01_080 2341 1738 0 2341 2512 93.2%
ov_SC01_084 2347 1738 0 2352 2579 91.2%
ov_SC02_000 2400 1773 0 2400 2683 89.5%
ov_SC02_003 2400 1773 0 2400 2683 89.5%
ov_SC02_004 2306 1738 0 2306 2401 96.0%
ov_SC02_005 2416 1734 0 2426 2927 82.9%
ov_SC02_011 2431 1741 0 2442 2893 84.4%
ov_SC02_015 2311 1740 0 2311 2414 95.7%
ov_SC02_016 2344 1740 0 2347 2545 92.2%
ov_SC02_017 2394 1740 0 2402 2732 87.9%
ov_SC02_021 2316 1740 0 2316 2437 95.0%
ov_SC02_026 2331 1738 0 2337 2572 90.9%
ov_SC02_027 2354 1738 0 2363 2692 87.8%
ov_SC02_028 2356 1738 0 2366 2701 87.6%
ov_SC02_031 2343 1739 0 2348 2562 91.6%
ov_SC02_035 2317 1738 0 2320 2520 92.1%
ov_SC02_039 2301 1738 0 2301 2416 95.2%
ov_SC02_041 2340 1738 0 2343 2561 91.5%
ov_SC03_001 2440 1739 0 2457 2869 85.6%
ov_SC03_002 2360 1743 0 2375 2631 90.3%
ov_SC03_003 2311 1738 0 2312 2423 95.4%
ov_SC03_006 2378 1744 0 2387 2767 86.3%
ov_SC03_007 2357 1738 0 2361 2623 90.0%
ov_SC03_010 2321 1738 0 2321 2471 93.9%
ov_SC03_011 2325 1738 0 2331 2527 92.2%
ov_SC03_012 2303 1738 0 2304 2406 95.8%
ov_SC03_013 2326 1738 0 2326 2493 93.3%
ov_SC03_014 2380 1763 0 2380 2685 88.6%
ov_SC03_015 2380 1763 0 2380 2685 88.6%
ov_SC03_023 2312 1738 0 2313 2435 95.0%
ov_SC03_024 2370 1743 0 2377 2641 90.0%
ov_SC03_028 2348 1738 0 2352 2664 88.3%
ov_SC03_029 2356 1740 0 2366 2644 89.5%
ov_SC03_030 2324 1743 0 2326 2495 93.2%
ov_SC03_031 2321 1738 0 2324 2514 92.4%
ov_SC03_089 2336 1738 0 2343 2581 90.8%
ov_SC03_090 2338 1738 0 2346 2625 89.4%
ov_SC03_091 2340 1738 0 2348 2640 88.9%
ov_SC03_092 2354 1738 0 2366 2587 91.5%
ov_SC03_093 2328 1738 0 2332 2563 91.0%
ov_SC03_094 2323 1738 0 2329 2577 90.4%
ov_SC03_095 2313 1738 0 2316 2474 93.6%
ov_SC03_096 2313 1738 0 2316 2465 94.0%
ov_SC03_097 2346 1738 0 2353 2603 90.4%
ov_SC03_098 2321 1738 0 2324 2541 91.5%
ov_SC03_099 2314 1738 0 2317 2504 92.5%
ov_SC03_100 2324 1738 0 2328 2539 91.7%
ov_SC03_101 2325 1738 0 2329 2528 92.1%
ov_SC03_102 2315 1738 0 2318 2492 93.0%
ov_SC03_103 2320 1740 0 2323 2510 92.5%
ov_SC03_104 2344 1738 0 2351 2616 89.9%
ov_SC03_105 2337 1738 0 2344 2597 90.3%
ov_SC03_108 2304 1738 0 2304 2443 94.3%
ov_SC03_109 2308 1738 0 2310 2424 95.3%
ov_SC03_110 2312 1738 0 2312 2468 93.7%
ov_SC03_111 2321 1738 0 2324 2510 92.6%
ov_SC03_112 2319 1740 0 2321 2526 91.9%
ov_SC03_113 2312 1740 0 2315 2468 93.8%
ov_SC03_114 2301 1738 0 2303 2415 95.4%
ov_SC03_115 2318 1738 0 2320 2472 93.9%
ov_SC03_116 2309 1738 0 2312 2438 94.8%
ov_SC03_117 2339 1738 0 2345 2557 91.7%
ov_SC03_118 2381 1762 0 2382 2685 88.7%
ov_SC03_119 2379 1762 0 2380 2685 88.6%
ov_SC03_121 2316 1738 0 2319 2459 94.3%
ov_SC03_124 2397 1734 0 2417 2741 88.2%
ov_SC03_125 2348 1738 0 2360 2588 91.2%
ov_SC03_126 2313 1740 0 2313 2423 95.5%
ov_SC04_000 2330 1742 0 2339 2546 91.9%
ov_SC04_002 2349 1738 0 2353 2636 89.3%
ov_SC04_003 2324 1738 0 2328 2502 93.0%
ov_SC04_004 2333 1738 0 2335 2558 91.3%
ov_SC04_005 2343 1738 0 2349 2612 89.9%
ov_SC04_006 2313 1738 0 2315 2454 94.3%
ov_SC04_007 2337 1738 0 2341 2569 91.1%
ov_SC04_008 2305 1738 0 2305 2415 95.4%
ov_SC04_009 2320 1738 0 2323 2441 95.2%
ov_SC04_010 2310 1738 0 2311 2419 95.5%
ov_SC04_011 2367 1738 0 2373 2803 84.7%
ov_SC04_012 2307 1738 0 2308 2420 95.4%
ov_SC04_015 2372 1739 0 2383 2611 91.3%
ov_SC04_016 2310 1738 0 2312 2440 94.8%
ov_SC04_018 2438 1773 0 2438 2857 85.3%
ov_SC04_019 2434 1773 0 2434 2857 85.2%
ov_SC04_020 2335 1738 0 2347 2567 91.4%
ov_SC04_021 2314 1740 0 2314 2423 95.5%
ov_SC05_000 2312 1742 0 2315 2422 95.6%
ov_SC05_001 2333 1738 0 2338 2574 90.8%
ov_SC05_002 2317 1738 0 2320 2442 95.0%
ov_SC05_003 2313 1738 0 2314 2481 93.3%
ov_SC05_004 2309 1738 0 2311 2464 93.8%
ov_SC05_005 2314 1738 0 2315 2491 92.9%
ov_SC05_006 2308 1738 0 2308 2430 95.0%
ov_SC05_007 2317 1738 0 2322 2482 93.6%
ov_SC05_008 2334 1738 0 2336 2543 91.9%
ov_SC05_009 2313 1738 0 2317 2438 95.0%
ov_SC05_010 2340 1738 0 2344 2588 90.6%
ov_SC05_011 2309 1738 0 2310 2409 95.9%
ov_SC05_017 2421 1735 0 2432 2842 85.6%
ov_SC05_018 2362 1738 0 2375 2673 88.9%
ov_SC05_019 2314 1740 0 2314 2423 95.5%
ov_SC06_000 2378 1747 0 2381 2691 88.5%
ov_SC06_006 2330 1738 0 2331 2511 92.8%
ov_SC06_008 2350 1740 0 2356 2542 92.7%
ov_SC06_010 2329 1738 0 2334 2517 92.7%
ov_SC06_011 2318 1738 0 2322 2468 94.1%
ov_SC06_013 2312 1738 0 2313 2425 95.4%
ov_SC06_014 2318 1738 0 2320 2453 94.6%
ov_SC06_015 2316 1738 0 2316 2421 95.7%
ov_SC06_016 2333 1738 0 2335 2549 91.6%
ov_SC06_018 2341 1740 0 2348 2665 88.1%
ov_SC06_020 2321 1740 0 2322 2518 92.2%
ov_SC06_022 2342 1738 0 2350 2642 88.9%
ov_SC06_024 2350 1738 0 2356 2667 88.3%
ov_SC06_025 2337 1738 0 2342 2572 91.1%
ov_SC06_027 2300 1738 0 2301 2408 95.6%
ov_SC06_029 2359 1738 0 2371 2662 89.1%
ov_SC06_030 2315 1738 0 2315 2456 94.3%
ov_SC06_032 2336 1739 0 2343 2658 88.1%
ov_SC06_033 2338 1739 0 2345 2631 89.1%
ov_SC07_000 2329 1742 0 2331 2521 92.5%
ov_SC07_001 2313 1738 0 2315 2454 94.3%
ov_SC07_002 2339 1738 0 2343 2579 90.8%
ov_SC07_006 2108 1555 0 2188 2456 89.1%
ov_SC07_007 2114 1586 0 2198 2613 84.1%
ov_SC07_008 2298 1738 0 2298 2386 96.3%
ov_SC07_009 2307 1738 0 2309 2430 95.0%
ov_SC07_010 2144 1608 0 2227 2524 88.2%
ov_SC07_011 2115 1585 0 2195 2449 89.6%