Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 7e32da8f64 feat(phase-29): T95/T96 — func_80142B2C 136/136 (§121); all 3 byte-identical stragglers closed
- The draft calls ((void(*)(void))func_80142C84)() but nothing declares that symbol above the
  splice: it is DEFINED by DEFINE_func_80142C84() in engine_core.h, so gather_externs has no
  extern line to harvest, and the member TU instantiates the macro BELOW our function.
- The wrong guess was the useful step: a no-prototype `extern s32 func_80142C84();` turned
  `undeclared` into `conflicting types` — a DIFFERENT error, proving the diagnosis right and the
  type wrong. Synthesised from the macro's own definition head -> MATCH (34 ins) -> 136/136.
- NEW macro_def_sig_map() (1,878 signatures): the complement of header_sig_map(), which reads the
  externs a macro emits FOR ITS CALLEES; this reads the signature a macro DEFINES. Cookbook §121.
- ALL THREE byte-identical stragglers carried since SESSION-24 are now closed: func_80146750
  137/137 (T84), func_801759D8 137/137 (T93), func_80142B2C 136/136 (T95) = 410 members, and not
  one was a compiler wall (a signedness-wrong header decl, a type-name collision, a missing extern).
- Blast radius 0 (74 further families re-swept). FOUR data points now: only §117 (wrong LOGIC)
  generalised at 1,209 members; §118/§120/§121 are path-reachability gaps worth ~one family each.
- GATES: R22 clean-fleet 140/140; dedup 1886/0; 0 NON_MATCHING (G4).
- METRICS: fn-count 91.88 -> 91.96% (+273, exact) · instr 87.3 -> 87.4% (+12,296) · distinct +0
  (both byte-identical families — §111 predicted exactly that).
2026-07-30 13:13:06 -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: 325279 / 353720 = 91.96% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 11490979 / 13141652 = 87.4% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 4395820 / 5634875 = 78.0% (69744/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: 11490543 / 13081451 = 87.8%)

FLEET REAL substantive : 323424 (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 : 28434 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 2310 1742 0 2310 2403 96.1%
ov_SC01_001 2317 1743 0 2319 2466 94.0%
ov_SC01_004 2308 1734 0 2309 2414 95.7%
ov_SC01_005 2339 1757 0 2339 2503 93.4%
ov_SC01_006 2339 1757 0 2339 2503 93.4%
ov_SC01_008 2308 1734 0 2310 2426 95.2%
ov_SC01_009 2333 1735 0 2334 2507 93.1%
ov_SC01_074 2314 1735 0 2316 2425 95.5%
ov_SC01_077 2481 1702 0 2483 2585 96.1%
ov_SC01_080 2348 1738 0 2348 2512 93.5%
ov_SC01_084 2357 1738 0 2362 2579 91.6%
ov_SC02_000 2411 1773 0 2411 2683 89.9%
ov_SC02_003 2411 1773 0 2411 2683 89.9%
ov_SC02_004 2313 1738 0 2313 2401 96.3%
ov_SC02_005 2436 1734 0 2446 2927 83.6%
ov_SC02_011 2444 1741 0 2455 2893 84.9%
ov_SC02_015 2318 1740 0 2318 2414 96.0%
ov_SC02_016 2356 1740 0 2359 2545 92.7%
ov_SC02_017 2405 1740 0 2413 2732 88.3%
ov_SC02_021 2323 1740 0 2323 2437 95.3%
ov_SC02_026 2338 1738 0 2344 2572 91.1%
ov_SC02_027 2362 1738 0 2371 2692 88.1%
ov_SC02_028 2364 1738 0 2374 2701 87.9%
ov_SC02_031 2351 1739 0 2356 2562 92.0%
ov_SC02_035 2324 1738 0 2327 2520 92.3%
ov_SC02_039 2309 1738 0 2309 2416 95.6%
ov_SC02_041 2352 1738 0 2355 2561 92.0%
ov_SC03_001 2453 1739 0 2470 2869 86.1%
ov_SC03_002 2371 1743 0 2386 2631 90.7%
ov_SC03_003 2319 1738 0 2320 2423 95.7%
ov_SC03_006 2393 1744 0 2402 2767 86.8%
ov_SC03_007 2370 1738 0 2374 2623 90.5%
ov_SC03_010 2328 1738 0 2328 2471 94.2%
ov_SC03_011 2335 1738 0 2341 2527 92.6%
ov_SC03_012 2310 1738 0 2311 2406 96.1%
ov_SC03_013 2334 1738 0 2334 2493 93.6%
ov_SC03_014 2395 1763 0 2395 2685 89.2%
ov_SC03_015 2397 1763 0 2397 2685 89.3%
ov_SC03_023 2321 1738 0 2322 2435 95.4%
ov_SC03_024 2386 1743 0 2393 2641 90.6%
ov_SC03_028 2355 1738 0 2359 2664 88.6%
ov_SC03_029 2366 1740 0 2376 2644 89.9%
ov_SC03_030 2332 1743 0 2334 2495 93.5%
ov_SC03_031 2328 1738 0 2331 2514 92.7%
ov_SC03_089 2344 1738 0 2351 2581 91.1%
ov_SC03_090 2347 1738 0 2355 2625 89.7%
ov_SC03_091 2349 1738 0 2357 2640 89.3%
ov_SC03_092 2365 1738 0 2377 2587 91.9%
ov_SC03_093 2336 1738 0 2340 2563 91.3%
ov_SC03_094 2331 1738 0 2337 2577 90.7%
ov_SC03_095 2320 1738 0 2323 2474 93.9%
ov_SC03_096 2321 1738 0 2324 2465 94.3%
ov_SC03_097 2357 1738 0 2364 2603 90.8%
ov_SC03_098 2328 1738 0 2331 2541 91.7%
ov_SC03_099 2321 1738 0 2324 2504 92.8%
ov_SC03_100 2331 1738 0 2335 2539 92.0%
ov_SC03_101 2334 1738 0 2338 2528 92.5%
ov_SC03_102 2322 1738 0 2325 2492 93.3%
ov_SC03_103 2327 1740 0 2330 2510 92.8%
ov_SC03_104 2351 1738 0 2358 2616 90.1%
ov_SC03_105 2346 1738 0 2353 2597 90.6%
ov_SC03_108 2312 1738 0 2312 2443 94.6%
ov_SC03_109 2317 1738 0 2319 2424 95.7%
ov_SC03_110 2319 1738 0 2319 2468 94.0%
ov_SC03_111 2330 1738 0 2333 2510 92.9%
ov_SC03_112 2327 1740 0 2329 2526 92.2%
ov_SC03_113 2320 1740 0 2323 2468 94.1%
ov_SC03_114 2308 1738 0 2310 2415 95.7%
ov_SC03_115 2327 1738 0 2329 2472 94.2%
ov_SC03_116 2316 1738 0 2319 2438 95.1%
ov_SC03_117 2350 1738 0 2356 2557 92.1%
ov_SC03_118 2398 1762 0 2399 2685 89.3%
ov_SC03_119 2394 1762 0 2395 2685 89.2%
ov_SC03_121 2324 1738 0 2327 2459 94.6%
ov_SC03_124 2415 1734 0 2435 2741 88.8%
ov_SC03_125 2358 1738 0 2370 2588 91.6%
ov_SC03_126 2321 1740 0 2321 2423 95.8%
ov_SC04_000 2341 1742 0 2350 2546 92.3%
ov_SC04_002 2363 1738 0 2367 2636 89.8%
ov_SC04_003 2334 1738 0 2338 2502 93.4%
ov_SC04_004 2343 1738 0 2345 2558 91.7%
ov_SC04_005 2353 1738 0 2359 2612 90.3%
ov_SC04_006 2320 1738 0 2322 2454 94.6%
ov_SC04_007 2347 1738 0 2351 2569 91.5%
ov_SC04_008 2313 1738 0 2313 2415 95.8%
ov_SC04_009 2327 1738 0 2330 2441 95.5%
ov_SC04_010 2317 1738 0 2318 2419 95.8%
ov_SC04_011 2376 1738 0 2382 2803 85.0%
ov_SC04_012 2315 1738 0 2316 2420 95.7%
ov_SC04_015 2385 1739 0 2396 2611 91.8%
ov_SC04_016 2317 1738 0 2319 2440 95.0%
ov_SC04_018 2451 1773 0 2451 2857 85.8%
ov_SC04_019 2451 1773 0 2451 2857 85.8%
ov_SC04_020 2346 1738 0 2358 2567 91.9%
ov_SC04_021 2321 1740 0 2321 2423 95.8%
ov_SC05_000 2319 1742 0 2322 2422 95.9%
ov_SC05_001 2341 1738 0 2346 2574 91.1%
ov_SC05_002 2325 1738 0 2328 2442 95.3%
ov_SC05_003 2321 1738 0 2322 2481 93.6%
ov_SC05_004 2317 1738 0 2319 2464 94.1%
ov_SC05_005 2321 1738 0 2322 2491 93.2%
ov_SC05_006 2315 1738 0 2315 2430 95.3%
ov_SC05_007 2325 1738 0 2330 2482 93.9%
ov_SC05_008 2346 1738 0 2348 2543 92.3%
ov_SC05_009 2320 1738 0 2324 2438 95.3%
ov_SC05_010 2348 1738 0 2352 2588 90.9%
ov_SC05_011 2316 1738 0 2317 2409 96.2%
ov_SC05_017 2438 1735 0 2449 2842 86.2%
ov_SC05_018 2377 1738 0 2390 2673 89.4%
ov_SC05_019 2321 1740 0 2321 2423 95.8%
ov_SC06_000 2397 1747 0 2400 2691 89.2%
ov_SC06_006 2340 1738 0 2341 2511 93.2%
ov_SC06_008 2361 1740 0 2367 2542 93.1%
ov_SC06_010 2340 1738 0 2345 2517 93.2%
ov_SC06_011 2325 1738 0 2329 2468 94.4%
ov_SC06_013 2319 1738 0 2320 2425 95.7%
ov_SC06_014 2326 1738 0 2328 2453 94.9%
ov_SC06_015 2324 1738 0 2324 2421 96.0%
ov_SC06_016 2340 1738 0 2342 2549 91.9%
ov_SC06_018 2354 1740 0 2361 2665 88.6%
ov_SC06_020 2329 1740 0 2330 2518 92.5%
ov_SC06_022 2354 1738 0 2362 2642 89.4%
ov_SC06_024 2362 1738 0 2368 2667 88.8%
ov_SC06_025 2348 1738 0 2353 2572 91.5%
ov_SC06_027 2308 1738 0 2309 2408 95.9%
ov_SC06_029 2369 1738 0 2381 2662 89.4%
ov_SC06_030 2323 1738 0 2323 2456 94.6%
ov_SC06_032 2349 1739 0 2356 2658 88.6%
ov_SC06_033 2350 1739 0 2357 2631 89.6%
ov_SC07_000 2336 1742 0 2338 2521 92.7%
ov_SC07_001 2320 1738 0 2322 2454 94.6%
ov_SC07_002 2347 1738 0 2351 2579 91.2%
ov_SC07_006 2210 1555 0 2290 2456 93.2%
ov_SC07_007 2229 1586 0 2313 2613 88.5%
ov_SC07_008 2305 1738 0 2305 2386 96.6%
ov_SC07_009 2315 1738 0 2317 2430 95.3%
ov_SC07_010 2232 1608 0 2315 2524 91.7%
ov_SC07_011 2229 1585 0 2309 2449 94.3%