Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 7f18dbad2f feat(phase-29): func_8014CD80 x138 — the fresh-138 def-side blocker is RECOVERABLE (R35 reversal)
Bounded probe (SESSION-13, token-free) that REVERSED the same-session "fresh
reach-138 well is spent" verdict. Target func_8014CD80: 138 live, 0 matched, NO
DEFINE macro, a universal body (only universal callees + param offsets, zero
overlay-local D_* refs), clean MATCH draft from batch-1.

- Blocker was a def-side header decl: engine_core.h DEFINE_func_8014CD0C()
  forward-declares it `void func_8014CD80(s32,void*,void*)` while the byte-true
  def is `int func_8014CD80(s32,u16*,u16*)`. gate_stage's arity pre-pass is
  param-COUNT-only (misses return/ptr-type); §54 reconcile_def_sig fixes the
  wrong direction.
- One byte-neutral header edit (void->int, void*->u16*; call site passes u16[3]
  arrays + ignores the return -> codegen unchanged) -> harvest_verify banked x1
  BYTE-IDENTICAL -> dedup_propagate --addr propagated 138/138 overlays
  byte-identical (live 138->0) -> R22 clean-fleet 140/140.
- Fleet 78.7->78.8% instr, 88.22->88.26% fn-count from this one family;
  tools-health green (dedup 1851/0).

Quantified market (decision-log 2026-07-23): of the 75 fresh (>=100-live)
families, 46 carry an engine_core.h caller forward-decl, 38 SIMPLIFIED = the
func_8014CD80 pattern -> each a candidate x138 (~+1.5-2.8pp instr). NEXT: build
tools/fix_header_decl.py + a fresh-family wave. func_80165CA0's 0/135 was a
non-universal BODY (different failure mode), not this blocker.
2026-07-23 12:06:26 -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: 312180 / 353717 = 88.26% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 10350016 / 13141652 = 78.8% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 3810884 / 5634875 = 67.6% (64825/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: 10349580 / 13081451 = 79.1%)

FLEET REAL substantive : 310325 (of which dedup-shared 234712 via 1851 groups / 234756 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 41530 FLEET matchable : 353717

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 2228 1709 0 2228 2403 92.7%
ov_SC01_001 2228 1708 0 2230 2466 90.4%
ov_SC01_004 2219 1699 0 2220 2414 92.0%
ov_SC01_005 2248 1721 0 2248 2503 89.8%
ov_SC01_006 2248 1721 0 2248 2503 89.8%
ov_SC01_008 2219 1699 0 2221 2426 91.5%
ov_SC01_009 2244 1700 0 2245 2507 89.5%
ov_SC01_074 2223 1700 0 2225 2425 91.8%
ov_SC01_077 2412 1669 0 2414 2585 93.4%
ov_SC01_080 2261 1703 0 2261 2512 90.0%
ov_SC01_084 2268 1703 0 2273 2579 88.1%
ov_SC02_000 2321 1738 0 2321 2683 86.5%
ov_SC02_003 2321 1738 0 2321 2683 86.5%
ov_SC02_004 2227 1703 0 2227 2401 92.8%
ov_SC02_005 2334 1699 0 2344 2927 80.1%
ov_SC02_011 2345 1706 0 2356 2893 81.4%
ov_SC02_015 2228 1705 0 2228 2414 92.3%
ov_SC02_016 2261 1705 0 2264 2545 89.0%
ov_SC02_017 2305 1705 0 2313 2732 84.7%
ov_SC02_021 2234 1705 0 2234 2437 91.7%
ov_SC02_026 2250 1703 0 2256 2572 87.7%
ov_SC02_027 2273 1703 0 2282 2692 84.8%
ov_SC02_028 2274 1703 0 2284 2701 84.6%
ov_SC02_031 2259 1704 0 2264 2562 88.4%
ov_SC02_035 2236 1703 0 2239 2520 88.8%
ov_SC02_039 2220 1703 0 2220 2416 91.9%
ov_SC02_041 2257 1703 0 2260 2561 88.2%
ov_SC03_001 2356 1704 0 2373 2869 82.7%
ov_SC03_002 2282 1708 0 2297 2631 87.3%
ov_SC03_003 2230 1703 0 2231 2423 92.1%
ov_SC03_006 2295 1709 0 2304 2767 83.3%
ov_SC03_007 2275 1703 0 2279 2623 86.9%
ov_SC03_010 2236 1703 0 2236 2470 90.5%
ov_SC03_011 2244 1703 0 2250 2527 89.0%
ov_SC03_012 2222 1703 0 2223 2406 92.4%
ov_SC03_013 2241 1703 0 2241 2492 89.9%
ov_SC03_014 2301 1728 0 2301 2685 85.7%
ov_SC03_015 2301 1728 0 2301 2685 85.7%
ov_SC03_023 2228 1703 0 2229 2435 91.5%
ov_SC03_024 2288 1708 0 2295 2641 86.9%
ov_SC03_028 2269 1703 0 2273 2664 85.3%
ov_SC03_029 2270 1705 0 2280 2644 86.2%
ov_SC03_030 2243 1708 0 2245 2495 90.0%
ov_SC03_031 2240 1703 0 2243 2514 89.2%
ov_SC03_089 2255 1703 0 2262 2581 87.6%
ov_SC03_090 2257 1703 0 2265 2625 86.3%
ov_SC03_091 2260 1703 0 2268 2640 85.9%
ov_SC03_092 2270 1703 0 2282 2587 88.2%
ov_SC03_093 2247 1703 0 2251 2563 87.8%
ov_SC03_094 2242 1703 0 2248 2577 87.2%
ov_SC03_095 2232 1703 0 2235 2474 90.3%
ov_SC03_096 2232 1703 0 2235 2465 90.7%
ov_SC03_097 2261 1703 0 2268 2603 87.1%
ov_SC03_098 2240 1703 0 2243 2541 88.3%
ov_SC03_099 2233 1703 0 2236 2504 89.3%
ov_SC03_100 2243 1703 0 2247 2539 88.5%
ov_SC03_101 2243 1703 0 2247 2528 88.9%
ov_SC03_102 2235 1703 0 2238 2492 89.8%
ov_SC03_103 2238 1705 0 2241 2510 89.3%
ov_SC03_104 2263 1703 0 2270 2616 86.8%
ov_SC03_105 2257 1703 0 2264 2597 87.2%
ov_SC03_108 2224 1703 0 2224 2443 91.0%
ov_SC03_109 2226 1703 0 2228 2424 91.9%
ov_SC03_110 2231 1703 0 2231 2468 90.4%
ov_SC03_111 2242 1703 0 2245 2510 89.4%
ov_SC03_112 2235 1705 0 2237 2526 88.6%
ov_SC03_113 2229 1705 0 2232 2468 90.4%
ov_SC03_114 2219 1703 0 2221 2415 92.0%
ov_SC03_115 2236 1703 0 2238 2472 90.5%
ov_SC03_116 2226 1703 0 2229 2438 91.4%
ov_SC03_117 2254 1703 0 2260 2557 88.4%
ov_SC03_118 2300 1727 0 2301 2685 85.7%
ov_SC03_119 2299 1727 0 2300 2685 85.7%
ov_SC03_121 2233 1703 0 2236 2459 90.9%
ov_SC03_124 2312 1699 0 2332 2741 85.1%
ov_SC03_125 2269 1703 0 2281 2588 88.1%
ov_SC03_126 2231 1705 0 2231 2423 92.1%
ov_SC04_000 2247 1707 0 2256 2546 88.6%
ov_SC04_002 2265 1703 0 2269 2636 86.1%
ov_SC04_003 2242 1703 0 2246 2502 89.8%
ov_SC04_004 2251 1703 0 2253 2558 88.1%
ov_SC04_005 2260 1703 0 2266 2612 86.8%
ov_SC04_006 2231 1703 0 2233 2454 91.0%
ov_SC04_007 2253 1703 0 2257 2569 87.9%
ov_SC04_008 2222 1703 0 2222 2415 92.0%
ov_SC04_009 2238 1703 0 2241 2441 91.8%
ov_SC04_010 2228 1703 0 2229 2419 92.1%
ov_SC04_011 2285 1703 0 2291 2803 81.7%
ov_SC04_012 2225 1703 0 2226 2420 92.0%
ov_SC04_015 2289 1704 0 2300 2611 88.1%
ov_SC04_016 2228 1703 0 2230 2440 91.4%
ov_SC04_018 2339 1738 0 2339 2857 81.9%
ov_SC04_019 2345 1738 0 2345 2857 82.1%
ov_SC04_020 2256 1703 0 2268 2567 88.4%
ov_SC04_021 2232 1705 0 2232 2423 92.1%
ov_SC05_000 2229 1707 0 2232 2422 92.2%
ov_SC05_001 2251 1703 0 2256 2574 87.6%
ov_SC05_002 2234 1703 0 2237 2442 91.6%
ov_SC05_003 2231 1703 0 2232 2481 90.0%
ov_SC05_004 2226 1703 0 2228 2464 90.4%
ov_SC05_005 2232 1703 0 2233 2491 89.6%
ov_SC05_006 2225 1703 0 2225 2430 91.6%
ov_SC05_007 2235 1703 0 2240 2482 90.2%
ov_SC05_008 2252 1703 0 2254 2543 88.6%
ov_SC05_009 2230 1703 0 2234 2438 91.6%
ov_SC05_010 2256 1703 0 2260 2588 87.3%
ov_SC05_011 2227 1703 0 2228 2409 92.5%
ov_SC05_017 2335 1700 0 2346 2842 82.5%
ov_SC05_018 2282 1703 0 2295 2673 85.9%
ov_SC05_019 2232 1705 0 2232 2423 92.1%
ov_SC06_000 2295 1712 0 2298 2691 85.4%
ov_SC06_006 2248 1703 0 2249 2511 89.6%
ov_SC06_008 2264 1705 0 2270 2542 89.3%
ov_SC06_010 2247 1703 0 2252 2517 89.5%
ov_SC06_011 2237 1703 0 2241 2468 90.8%
ov_SC06_013 2230 1703 0 2231 2425 92.0%
ov_SC06_014 2236 1703 0 2238 2453 91.2%
ov_SC06_015 2233 1703 0 2233 2421 92.2%
ov_SC06_016 2251 1703 0 2253 2549 88.4%
ov_SC06_018 2264 1706 0 2271 2665 85.2%
ov_SC06_020 2240 1705 0 2241 2518 89.0%
ov_SC06_022 2259 1703 0 2267 2642 85.8%
ov_SC06_024 2267 1703 0 2273 2667 85.2%
ov_SC06_025 2252 1703 0 2257 2572 87.8%
ov_SC06_027 2218 1703 0 2219 2408 92.2%
ov_SC06_029 2277 1703 0 2289 2662 86.0%
ov_SC06_030 2232 1703 0 2232 2456 90.9%
ov_SC06_032 2252 1704 0 2259 2658 85.0%
ov_SC06_033 2254 1704 0 2261 2631 85.9%
ov_SC07_000 2247 1707 0 2249 2521 89.2%
ov_SC07_001 2231 1703 0 2233 2454 91.0%
ov_SC07_002 2258 1703 0 2262 2579 87.7%
ov_SC07_006 2003 1551 0 2083 2455 84.8%
ov_SC07_007 2015 1551 0 2099 2613 80.3%
ov_SC07_008 2216 1703 0 2216 2386 92.9%
ov_SC07_009 2225 1703 0 2227 2430 91.6%
ov_SC07_010 2026 1551 0 2109 2524 83.6%
ov_SC07_011 2014 1550 0 2094 2449 85.5%