Files
BFM-decomp/docs/progress.fleet.md
T
Drew T b9efe66f91 fix(phase-30): the JR-PAIR "wall" was TWO instrument defects — pair banked, class retired
S28 ledgered `JR-PAIR-IN-ONE-O0-OBJECT` (two jr fns matched in one -O0 object => a clean
build that cannot link: `undefined reference to $L105` + `func_8013C938`) with §81 step 1
(isolate one into its own code subseg) as the untested escape. BOTH the class and the escape
are REFUTED — no isolation, no compiler wall, both fns banked from a genuinely clean fleet.
The 4th consecutive "structural wall" to resolve to our own tooling (§124/§125/§126/§131).

- DEFECT 1 (tools/jtbl_carve.py): ov_SC01_077_o0's carve at 0xb01a4 predates the §8e
  `tables=` persistence and is a MERGED DOUBLE (func_8013C0F8 $L75 + func_8013C414 $L105);
  the 2nd owner is MATCHED so extract pruned the stub .s naming its table. The single-table-
  predecessor inference derived 3 starts where the object emits 4 tables -> JTBL_PADS 0,4,4
  -> jtbl_rodata_pads refused mid-stream, correctly. FIX: R32 coverage assertion + payload
  recovery at the single choke point (spec_from_starts) — every zero word inside a span is an
  original `.align 3` pad (the tool's own axiom), so the word after it STARTS a table;
  recovered starts are logged. No-op where structure is known (the 134 sibling _o0c spans
  carry tables=+0x0,+0x70). Honest limit: tight (0-pad) boundaries stay unrecoverable but
  fail LOUD via the filter's count guard — never silent.
- DEFECT 2 (Makefile): no .DELETE_ON_ERROR, so `as` (a pipeline consumer) left a TRUNCATED .o
  on disk — 12 of 16 T func_, undefined $L57/$L59/$L63/$L75/$L76 — newer than its .c, and the
  NEXT build linked the corpse. That IS the S28 link error, one build downstream of a loud,
  correct compile error. Negative-control-proven on a scratch invocation.
- BANKED: func_8013B83C (272 ins) + func_8013BD74 (198 ins) in ov_SC01_077 (d19c9580).
  Byte proof: 4 tables 0x801D8254/828C/82FC/836C (13/27/27/27 entries, each zero-pad
  separated); span 0xb00fc..0xb0280 = 388 B = 52+4+108+4+108+4+108 exactly; spec 0,4,4,4.
- R22 clean-fleet (make clean + extract-all + check-all): 140 passed, 0 failed of 140.
  The incremental result was NOT trusted (§130). Fleet 93.25% fn-count / 89.2% instr /
  80.5% distinct; dedup 1905/0; 0 NON_MATCHING (G4).
- cookbook §132 + index (356 sections): the mechanism, the fingerprint (an undefined $L<n> in
  a LINK error is a truncated object, never codegen), the 30-second standalone-TU ladder that
  named the 4th table owner before any build, and the transferable rule — a fail-loud guard is
  only as trustworthy as the artifact hygiene around it.
2026-07-31 23:35:14 -06:00

161 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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: 329841 / 353720 = 93.25% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 11716990 / 13141652 = 89.2% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 4535048 / 5634875 = 80.5% (72156/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: 11716554 / 13081451 = 89.6%)
FLEET REAL substantive : 327986 (of which dedup-shared 240422 via 1905 groups / 240496 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 7 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 23872
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 | 2338 | 1748 | 0 | 2338 | 2403 | 97.3% |
| ov_SC01_001 | 2345 | 1749 | 0 | 2347 | 2466 | 95.2% |
| ov_SC01_004 | 2336 | 1740 | 0 | 2337 | 2414 | 96.8% |
| ov_SC01_005 | 2367 | 1763 | 0 | 2367 | 2503 | 94.6% |
| ov_SC01_006 | 2367 | 1763 | 0 | 2367 | 2503 | 94.6% |
| ov_SC01_008 | 2336 | 1740 | 0 | 2338 | 2426 | 96.4% |
| ov_SC01_009 | 2361 | 1741 | 0 | 2362 | 2507 | 94.2% |
| ov_SC01_074 | 2342 | 1741 | 0 | 2344 | 2425 | 96.7% |
| ov_SC01_077 | 2504 | 1707 | 0 | 2506 | 2585 | 96.9% |
| ov_SC01_080 | 2376 | 1744 | 0 | 2376 | 2512 | 94.6% |
| ov_SC01_084 | 2397 | 1749 | 0 | 2402 | 2579 | 93.1% |
| ov_SC02_000 | 2453 | 1788 | 0 | 2453 | 2683 | 91.4% |
| ov_SC02_003 | 2452 | 1788 | 0 | 2452 | 2683 | 91.4% |
| ov_SC02_004 | 2341 | 1744 | 0 | 2341 | 2401 | 97.5% |
| ov_SC02_005 | 2478 | 1740 | 0 | 2488 | 2927 | 85.0% |
| ov_SC02_011 | 2489 | 1747 | 0 | 2500 | 2893 | 86.4% |
| ov_SC02_015 | 2346 | 1746 | 0 | 2346 | 2414 | 97.2% |
| ov_SC02_016 | 2390 | 1746 | 0 | 2393 | 2545 | 94.0% |
| ov_SC02_017 | 2449 | 1746 | 0 | 2457 | 2732 | 89.9% |
| ov_SC02_021 | 2351 | 1746 | 0 | 2351 | 2437 | 96.5% |
| ov_SC02_026 | 2378 | 1744 | 0 | 2384 | 2572 | 92.7% |
| ov_SC02_027 | 2405 | 1744 | 0 | 2414 | 2692 | 89.7% |
| ov_SC02_028 | 2402 | 1744 | 0 | 2412 | 2701 | 89.3% |
| ov_SC02_031 | 2389 | 1745 | 0 | 2394 | 2562 | 93.4% |
| ov_SC02_035 | 2363 | 1744 | 0 | 2366 | 2520 | 93.9% |
| ov_SC02_039 | 2340 | 1744 | 0 | 2340 | 2416 | 96.9% |
| ov_SC02_041 | 2390 | 1744 | 0 | 2393 | 2561 | 93.4% |
| ov_SC03_001 | 2491 | 1745 | 0 | 2508 | 2869 | 87.4% |
| ov_SC03_002 | 2403 | 1749 | 0 | 2418 | 2631 | 91.9% |
| ov_SC03_003 | 2347 | 1744 | 0 | 2348 | 2423 | 96.9% |
| ov_SC03_006 | 2433 | 1750 | 0 | 2442 | 2767 | 88.3% |
| ov_SC03_007 | 2401 | 1744 | 0 | 2405 | 2623 | 91.7% |
| ov_SC03_010 | 2359 | 1744 | 0 | 2359 | 2471 | 95.5% |
| ov_SC03_011 | 2363 | 1744 | 0 | 2369 | 2527 | 93.7% |
| ov_SC03_012 | 2338 | 1744 | 0 | 2339 | 2406 | 97.2% |
| ov_SC03_013 | 2365 | 1744 | 0 | 2365 | 2493 | 94.9% |
| ov_SC03_014 | 2453 | 1772 | 0 | 2453 | 2685 | 91.4% |
| ov_SC03_015 | 2441 | 1772 | 0 | 2441 | 2685 | 90.9% |
| ov_SC03_023 | 2349 | 1744 | 0 | 2350 | 2435 | 96.5% |
| ov_SC03_024 | 2415 | 1749 | 0 | 2422 | 2641 | 91.7% |
| ov_SC03_028 | 2385 | 1744 | 0 | 2389 | 2664 | 89.7% |
| ov_SC03_029 | 2402 | 1746 | 0 | 2412 | 2644 | 91.2% |
| ov_SC03_030 | 2360 | 1749 | 0 | 2362 | 2495 | 94.7% |
| ov_SC03_031 | 2361 | 1744 | 0 | 2364 | 2514 | 94.0% |
| ov_SC03_089 | 2386 | 1749 | 0 | 2393 | 2581 | 92.7% |
| ov_SC03_090 | 2389 | 1749 | 0 | 2397 | 2625 | 91.3% |
| ov_SC03_091 | 2386 | 1744 | 0 | 2394 | 2640 | 90.7% |
| ov_SC03_092 | 2409 | 1749 | 0 | 2421 | 2587 | 93.6% |
| ov_SC03_093 | 2374 | 1744 | 0 | 2378 | 2563 | 92.8% |
| ov_SC03_094 | 2365 | 1744 | 0 | 2371 | 2577 | 92.0% |
| ov_SC03_095 | 2353 | 1744 | 0 | 2356 | 2474 | 95.2% |
| ov_SC03_096 | 2354 | 1744 | 0 | 2357 | 2465 | 95.6% |
| ov_SC03_097 | 2396 | 1744 | 0 | 2403 | 2603 | 92.3% |
| ov_SC03_098 | 2365 | 1744 | 0 | 2368 | 2541 | 93.2% |
| ov_SC03_099 | 2355 | 1744 | 0 | 2358 | 2504 | 94.2% |
| ov_SC03_100 | 2369 | 1744 | 0 | 2373 | 2539 | 93.5% |
| ov_SC03_101 | 2377 | 1749 | 0 | 2381 | 2528 | 94.2% |
| ov_SC03_102 | 2355 | 1744 | 0 | 2358 | 2492 | 94.6% |
| ov_SC03_103 | 2360 | 1746 | 0 | 2363 | 2510 | 94.1% |
| ov_SC03_104 | 2395 | 1749 | 0 | 2402 | 2616 | 91.8% |
| ov_SC03_105 | 2375 | 1744 | 0 | 2382 | 2597 | 91.7% |
| ov_SC03_108 | 2343 | 1744 | 0 | 2343 | 2443 | 95.9% |
| ov_SC03_109 | 2346 | 1744 | 0 | 2348 | 2424 | 96.9% |
| ov_SC03_110 | 2351 | 1744 | 0 | 2351 | 2468 | 95.3% |
| ov_SC03_111 | 2367 | 1744 | 0 | 2370 | 2510 | 94.4% |
| ov_SC03_112 | 2361 | 1746 | 0 | 2363 | 2526 | 93.5% |
| ov_SC03_113 | 2350 | 1746 | 0 | 2353 | 2468 | 95.3% |
| ov_SC03_114 | 2336 | 1744 | 0 | 2338 | 2415 | 96.8% |
| ov_SC03_115 | 2358 | 1744 | 0 | 2360 | 2472 | 95.5% |
| ov_SC03_116 | 2344 | 1744 | 0 | 2347 | 2438 | 96.3% |
| ov_SC03_117 | 2382 | 1744 | 0 | 2388 | 2557 | 93.4% |
| ov_SC03_118 | 2432 | 1768 | 0 | 2433 | 2685 | 90.6% |
| ov_SC03_119 | 2428 | 1768 | 0 | 2429 | 2685 | 90.5% |
| ov_SC03_121 | 2352 | 1744 | 0 | 2355 | 2459 | 95.8% |
| ov_SC03_124 | 2446 | 1740 | 0 | 2466 | 2741 | 90.0% |
| ov_SC03_125 | 2390 | 1744 | 0 | 2402 | 2588 | 92.8% |
| ov_SC03_126 | 2349 | 1746 | 0 | 2349 | 2423 | 96.9% |
| ov_SC04_000 | 2376 | 1748 | 0 | 2385 | 2546 | 93.7% |
| ov_SC04_002 | 2400 | 1744 | 0 | 2404 | 2636 | 91.2% |
| ov_SC04_003 | 2364 | 1744 | 0 | 2368 | 2502 | 94.6% |
| ov_SC04_004 | 2377 | 1744 | 0 | 2379 | 2558 | 93.0% |
| ov_SC04_005 | 2389 | 1744 | 0 | 2395 | 2612 | 91.7% |
| ov_SC04_006 | 2353 | 1744 | 0 | 2355 | 2454 | 96.0% |
| ov_SC04_007 | 2383 | 1744 | 0 | 2387 | 2569 | 92.9% |
| ov_SC04_008 | 2341 | 1744 | 0 | 2341 | 2415 | 96.9% |
| ov_SC04_009 | 2357 | 1744 | 0 | 2360 | 2441 | 96.7% |
| ov_SC04_010 | 2345 | 1744 | 0 | 2346 | 2419 | 97.0% |
| ov_SC04_011 | 2420 | 1749 | 0 | 2426 | 2803 | 86.6% |
| ov_SC04_012 | 2343 | 1744 | 0 | 2344 | 2420 | 96.9% |
| ov_SC04_015 | 2415 | 1745 | 0 | 2426 | 2611 | 92.9% |
| ov_SC04_016 | 2345 | 1744 | 0 | 2347 | 2440 | 96.2% |
| ov_SC04_018 | 2497 | 1780 | 0 | 2497 | 2857 | 87.4% |
| ov_SC04_019 | 2493 | 1780 | 0 | 2493 | 2857 | 87.3% |
| ov_SC04_020 | 2378 | 1744 | 0 | 2390 | 2567 | 93.1% |
| ov_SC04_021 | 2349 | 1746 | 0 | 2349 | 2423 | 96.9% |
| ov_SC05_000 | 2347 | 1748 | 0 | 2350 | 2422 | 97.0% |
| ov_SC05_001 | 2379 | 1744 | 0 | 2384 | 2574 | 92.6% |
| ov_SC05_002 | 2355 | 1744 | 0 | 2358 | 2442 | 96.6% |
| ov_SC05_003 | 2351 | 1744 | 0 | 2352 | 2481 | 94.8% |
| ov_SC05_004 | 2346 | 1744 | 0 | 2348 | 2464 | 95.3% |
| ov_SC05_005 | 2362 | 1749 | 0 | 2363 | 2491 | 94.9% |
| ov_SC05_006 | 2347 | 1744 | 0 | 2347 | 2430 | 96.6% |
| ov_SC05_007 | 2356 | 1744 | 0 | 2361 | 2482 | 95.1% |
| ov_SC05_008 | 2374 | 1744 | 0 | 2376 | 2543 | 93.4% |
| ov_SC05_009 | 2349 | 1744 | 0 | 2353 | 2438 | 96.5% |
| ov_SC05_010 | 2381 | 1744 | 0 | 2385 | 2588 | 92.2% |
| ov_SC05_011 | 2344 | 1744 | 0 | 2345 | 2409 | 97.3% |
| ov_SC05_017 | 2475 | 1741 | 0 | 2486 | 2842 | 87.5% |
| ov_SC05_018 | 2409 | 1744 | 0 | 2422 | 2673 | 90.6% |
| ov_SC05_019 | 2349 | 1746 | 0 | 2349 | 2423 | 96.9% |
| ov_SC06_000 | 2434 | 1753 | 0 | 2437 | 2691 | 90.6% |
| ov_SC06_006 | 2368 | 1744 | 0 | 2369 | 2511 | 94.3% |
| ov_SC06_008 | 2393 | 1746 | 0 | 2399 | 2542 | 94.4% |
| ov_SC06_010 | 2372 | 1744 | 0 | 2377 | 2517 | 94.4% |
| ov_SC06_011 | 2353 | 1744 | 0 | 2357 | 2468 | 95.5% |
| ov_SC06_013 | 2347 | 1744 | 0 | 2348 | 2425 | 96.8% |
| ov_SC06_014 | 2354 | 1744 | 0 | 2356 | 2453 | 96.0% |
| ov_SC06_015 | 2352 | 1744 | 0 | 2352 | 2421 | 97.1% |
| ov_SC06_016 | 2369 | 1744 | 0 | 2371 | 2549 | 93.0% |
| ov_SC06_018 | 2397 | 1746 | 0 | 2404 | 2665 | 90.2% |
| ov_SC06_020 | 2364 | 1746 | 0 | 2365 | 2518 | 93.9% |
| ov_SC06_022 | 2389 | 1744 | 0 | 2397 | 2642 | 90.7% |
| ov_SC06_024 | 2400 | 1744 | 0 | 2406 | 2667 | 90.2% |
| ov_SC06_025 | 2379 | 1744 | 0 | 2384 | 2572 | 92.7% |
| ov_SC06_027 | 2339 | 1744 | 0 | 2340 | 2408 | 97.2% |
| ov_SC06_029 | 2404 | 1744 | 0 | 2416 | 2662 | 90.8% |
| ov_SC06_030 | 2352 | 1744 | 0 | 2352 | 2456 | 95.8% |
| ov_SC06_032 | 2386 | 1745 | 0 | 2393 | 2658 | 90.0% |
| ov_SC06_033 | 2386 | 1745 | 0 | 2393 | 2631 | 91.0% |
| ov_SC07_000 | 2365 | 1748 | 0 | 2367 | 2521 | 93.9% |
| ov_SC07_001 | 2351 | 1744 | 0 | 2353 | 2454 | 95.9% |
| ov_SC07_002 | 2379 | 1744 | 0 | 2383 | 2579 | 92.4% |
| ov_SC07_006 | 2236 | 1560 | 0 | 2316 | 2456 | 94.3% |
| ov_SC07_007 | 2256 | 1592 | 0 | 2340 | 2613 | 89.6% |
| ov_SC07_008 | 2333 | 1744 | 0 | 2333 | 2386 | 97.8% |
| ov_SC07_009 | 2343 | 1744 | 0 | 2345 | 2430 | 96.5% |
| ov_SC07_010 | 2248 | 1614 | 0 | 2331 | 2524 | 92.4% |
| ov_SC07_011 | 2256 | 1591 | 0 | 2336 | 2449 | 95.4% |