mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-03 16:16:50 -04:00
095a611e75
- overlay jr-functions can now bank as C: gcc switch jump tables form a .rodata island at the overlay TAIL; carve a matched fn's jtbl into a dotted [.rodata, <code-subseg>] subseg + ld_interleave (data->rodata->data sandwich) places it byte-exact. cookbook §8a + SETUP. - tools/ld_interleave.py: --section .<binary> param (derives the <binary>_TEXT/DATA/RODATA/ DATA2/BSS symbol prefix); default .main = the EXE, byte-identical (backward-compat proven) - Makefile + config/overlays.mk: <bin>_JTBL_INTERLEAVE hook + a $(strip)-guarded extract branch (gotcha caught: a trailing #comment on the := left whitespace -> non-empty -> the branch misfired on resident with the EXE defaults) - PoC: func_8012ACE0 (25-ins jr-fn in ov_SC01_077) reconciled (canon_sig_reconcile) + banked BYTE-IDENTICAL d19c9580 -- the first overlay jr-function matched through the C pipeline - R22 FULL-FLEET clean rebuild: 136 passed, 0 failed (main 143dbb89 unaffected by the ld_interleave change); 0 NON_MATCHING in any default build (G4) - P9 findings: func_80159C84/func_8015444C (the 2 carried Fable5 jr bodies) are rtu_match FALSE-matches (incomplete jtbls: 52B vs 56B -> never bank); the maspsx "hang" scare was a truncated experimental-file artifact (real pipeline builds in ~1s) - metrics: distinct-code 39.1% (50,572 unique fns), instr-weighted 62.9% - NEXT: the ×134 automation (generate the per-overlay carve + template the reconciled body)
8.6 KiB
8.6 KiB
BFM FLEET matching progress (generated by tools/progress.py --fleet — authoritative)
136 binaries: main + resident + 134 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: 282792 / 344038 = 82.20% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 7996118 / 12707182 = 62.9% (shipped .text across resident+134 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 2113000 / 5410077 = 39.1% (50572/84996 unique fns; the DISTINCT-RE number; main EXE not sig'd)
FLEET REAL substantive : 281263 (of which dedup-shared 223275 via 1813 groups / 223725 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 61239 FLEET matchable : 344038
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
|---|---|---|---|---|---|---|
| main | 54 | 2 | 959 | 1055 | 2096 | 50.3% |
| resident | 123 | 0 | 0 | 125 | 146 | 85.6% |
| ov_SC01_000 | 2071 | 1669 | 0 | 2071 | 2405 | 86.1% |
| ov_SC01_001 | 2076 | 1669 | 0 | 2078 | 2469 | 84.2% |
| ov_SC01_004 | 2068 | 1660 | 0 | 2069 | 2416 | 85.6% |
| ov_SC01_005 | 2094 | 1682 | 0 | 2094 | 2506 | 83.6% |
| ov_SC01_006 | 2094 | 1682 | 0 | 2094 | 2506 | 83.6% |
| ov_SC01_008 | 2067 | 1660 | 0 | 2069 | 2428 | 85.2% |
| ov_SC01_009 | 2088 | 1661 | 0 | 2089 | 2510 | 83.2% |
| ov_SC01_074 | 2072 | 1661 | 0 | 2074 | 2427 | 85.5% |
| ov_SC01_077 | 2309 | 1624 | 0 | 2311 | 2584 | 89.4% |
| ov_SC01_080 | 2104 | 1664 | 0 | 2104 | 2515 | 83.7% |
| ov_SC01_084 | 2111 | 1664 | 0 | 2116 | 2581 | 82.0% |
| ov_SC02_000 | 2156 | 1699 | 0 | 2156 | 2686 | 80.3% |
| ov_SC02_003 | 2156 | 1699 | 0 | 2156 | 2686 | 80.3% |
| ov_SC02_004 | 2073 | 1664 | 0 | 2073 | 2403 | 86.3% |
| ov_SC02_005 | 2174 | 1660 | 0 | 2184 | 2930 | 74.5% |
| ov_SC02_011 | 2179 | 1667 | 0 | 2190 | 2896 | 75.6% |
| ov_SC02_015 | 2078 | 1666 | 0 | 2078 | 2416 | 86.0% |
| ov_SC02_016 | 2103 | 1666 | 0 | 2106 | 2548 | 82.7% |
| ov_SC02_017 | 2146 | 1666 | 0 | 2154 | 2735 | 78.8% |
| ov_SC02_021 | 2084 | 1666 | 0 | 2084 | 2439 | 85.4% |
| ov_SC02_026 | 2093 | 1664 | 0 | 2099 | 2575 | 81.5% |
| ov_SC02_027 | 2118 | 1664 | 0 | 2127 | 2695 | 78.9% |
| ov_SC02_028 | 2119 | 1664 | 0 | 2129 | 2704 | 78.7% |
| ov_SC02_031 | 2107 | 1665 | 0 | 2112 | 2565 | 82.3% |
| ov_SC02_035 | 2084 | 1664 | 0 | 2087 | 2523 | 82.7% |
| ov_SC02_039 | 2068 | 1664 | 0 | 2068 | 2418 | 85.5% |
| ov_SC02_041 | 2095 | 1664 | 0 | 2098 | 2563 | 81.9% |
| ov_SC03_001 | 2200 | 1665 | 0 | 2217 | 2872 | 77.2% |
| ov_SC03_002 | 2130 | 1669 | 0 | 2145 | 2634 | 81.4% |
| ov_SC03_003 | 2073 | 1664 | 0 | 2074 | 2425 | 85.5% |
| ov_SC03_006 | 2140 | 1670 | 0 | 2149 | 2770 | 77.6% |
| ov_SC03_007 | 2120 | 1664 | 0 | 2124 | 2626 | 80.9% |
| ov_SC03_010 | 2083 | 1664 | 0 | 2083 | 2472 | 84.3% |
| ov_SC03_011 | 2088 | 1664 | 0 | 2094 | 2530 | 82.8% |
| ov_SC03_012 | 2067 | 1664 | 0 | 2068 | 2408 | 85.9% |
| ov_SC03_013 | 2084 | 1664 | 0 | 2084 | 2495 | 83.5% |
| ov_SC03_014 | 2132 | 1689 | 0 | 2132 | 2688 | 79.3% |
| ov_SC03_015 | 2135 | 1689 | 0 | 2135 | 2688 | 79.4% |
| ov_SC03_023 | 2073 | 1664 | 0 | 2074 | 2437 | 85.1% |
| ov_SC03_024 | 2127 | 1669 | 0 | 2134 | 2644 | 80.7% |
| ov_SC03_028 | 2110 | 1664 | 0 | 2114 | 2667 | 79.3% |
| ov_SC03_029 | 2111 | 1666 | 0 | 2121 | 2647 | 80.1% |
| ov_SC03_030 | 2090 | 1668 | 0 | 2092 | 2498 | 83.7% |
| ov_SC03_031 | 2084 | 1664 | 0 | 2088 | 2517 | 83.0% |
| ov_SC03_089 | 2101 | 1664 | 0 | 2108 | 2584 | 81.6% |
| ov_SC03_090 | 2103 | 1664 | 0 | 2111 | 2628 | 80.3% |
| ov_SC03_091 | 2104 | 1664 | 0 | 2112 | 2643 | 79.9% |
| ov_SC03_092 | 2110 | 1664 | 0 | 2122 | 2590 | 81.9% |
| ov_SC03_093 | 2091 | 1664 | 0 | 2095 | 2566 | 81.6% |
| ov_SC03_094 | 2086 | 1664 | 0 | 2092 | 2579 | 81.1% |
| ov_SC03_095 | 2077 | 1664 | 0 | 2080 | 2477 | 84.0% |
| ov_SC03_096 | 2077 | 1664 | 0 | 2080 | 2468 | 84.3% |
| ov_SC03_097 | 2100 | 1664 | 0 | 2107 | 2606 | 80.9% |
| ov_SC03_098 | 2084 | 1664 | 0 | 2087 | 2544 | 82.0% |
| ov_SC03_099 | 2078 | 1664 | 0 | 2081 | 2507 | 83.0% |
| ov_SC03_100 | 2085 | 1664 | 0 | 2089 | 2542 | 82.2% |
| ov_SC03_101 | 2086 | 1664 | 0 | 2090 | 2531 | 82.6% |
| ov_SC03_102 | 2081 | 1664 | 0 | 2084 | 2495 | 83.5% |
| ov_SC03_103 | 2085 | 1666 | 0 | 2088 | 2513 | 83.1% |
| ov_SC03_104 | 2104 | 1664 | 0 | 2111 | 2619 | 80.6% |
| ov_SC03_105 | 2098 | 1664 | 0 | 2105 | 2600 | 81.0% |
| ov_SC03_108 | 2070 | 1664 | 0 | 2070 | 2446 | 84.6% |
| ov_SC03_109 | 2071 | 1664 | 0 | 2073 | 2426 | 85.4% |
| ov_SC03_110 | 2076 | 1664 | 0 | 2076 | 2471 | 84.0% |
| ov_SC03_111 | 2084 | 1664 | 0 | 2087 | 2513 | 83.0% |
| ov_SC03_112 | 2082 | 1666 | 0 | 2084 | 2529 | 82.4% |
| ov_SC03_113 | 2076 | 1666 | 0 | 2079 | 2471 | 84.1% |
| ov_SC03_114 | 2066 | 1664 | 0 | 2068 | 2417 | 85.6% |
| ov_SC03_115 | 2080 | 1664 | 0 | 2082 | 2475 | 84.1% |
| ov_SC03_116 | 2074 | 1664 | 0 | 2077 | 2441 | 85.1% |
| ov_SC03_117 | 2092 | 1664 | 0 | 2098 | 2560 | 82.0% |
| ov_SC03_118 | 2135 | 1688 | 0 | 2136 | 2688 | 79.5% |
| ov_SC03_119 | 2132 | 1688 | 0 | 2133 | 2688 | 79.4% |
| ov_SC03_121 | 2077 | 1664 | 0 | 2080 | 2462 | 84.5% |
| ov_SC03_124 | 2149 | 1660 | 0 | 2169 | 2744 | 79.0% |
| ov_SC03_125 | 2112 | 1664 | 0 | 2124 | 2591 | 82.0% |
| ov_SC03_126 | 2074 | 1666 | 0 | 2074 | 2425 | 85.5% |
| ov_SC04_000 | 2091 | 1668 | 0 | 2100 | 2549 | 82.4% |
| ov_SC04_002 | 2105 | 1664 | 0 | 2109 | 2639 | 79.9% |
| ov_SC04_003 | 2083 | 1664 | 0 | 2087 | 2505 | 83.3% |
| ov_SC04_004 | 2097 | 1664 | 0 | 2099 | 2561 | 82.0% |
| ov_SC04_005 | 2098 | 1664 | 0 | 2104 | 2615 | 80.5% |
| ov_SC04_006 | 2074 | 1664 | 0 | 2076 | 2456 | 84.5% |
| ov_SC04_007 | 2093 | 1664 | 0 | 2097 | 2572 | 81.5% |
| ov_SC04_008 | 2070 | 1664 | 0 | 2070 | 2417 | 85.6% |
| ov_SC04_009 | 2078 | 1664 | 0 | 2081 | 2443 | 85.2% |
| ov_SC04_010 | 2074 | 1664 | 0 | 2075 | 2421 | 85.7% |
| ov_SC04_011 | 2124 | 1664 | 0 | 2130 | 2806 | 75.9% |
| ov_SC04_012 | 2072 | 1664 | 0 | 2073 | 2422 | 85.6% |
| ov_SC04_015 | 2132 | 1665 | 0 | 2143 | 2614 | 82.0% |
| ov_SC04_016 | 2071 | 1664 | 0 | 2073 | 2442 | 84.9% |
| ov_SC04_018 | 2178 | 1699 | 0 | 2178 | 2860 | 76.2% |
| ov_SC04_019 | 2184 | 1699 | 0 | 2184 | 2860 | 76.4% |
| ov_SC04_020 | 2101 | 1664 | 0 | 2113 | 2570 | 82.2% |
| ov_SC04_021 | 2073 | 1666 | 0 | 2073 | 2425 | 85.5% |
| ov_SC05_000 | 2077 | 1668 | 0 | 2080 | 2424 | 85.8% |
| ov_SC05_001 | 2093 | 1664 | 0 | 2098 | 2577 | 81.4% |
| ov_SC05_002 | 2076 | 1664 | 0 | 2079 | 2445 | 85.0% |
| ov_SC05_003 | 2076 | 1664 | 0 | 2077 | 2484 | 83.6% |
| ov_SC05_004 | 2074 | 1664 | 0 | 2076 | 2467 | 84.2% |
| ov_SC05_005 | 2078 | 1664 | 0 | 2079 | 2494 | 83.4% |
| ov_SC05_006 | 2072 | 1664 | 0 | 2072 | 2432 | 85.2% |
| ov_SC05_007 | 2079 | 1664 | 0 | 2084 | 2485 | 83.9% |
| ov_SC05_008 | 2098 | 1664 | 0 | 2100 | 2546 | 82.5% |
| ov_SC05_009 | 2074 | 1664 | 0 | 2078 | 2440 | 85.2% |
| ov_SC05_010 | 2098 | 1664 | 0 | 2102 | 2591 | 81.1% |
| ov_SC05_011 | 2075 | 1664 | 0 | 2076 | 2411 | 86.1% |
| ov_SC05_017 | 2174 | 1661 | 0 | 2185 | 2845 | 76.8% |
| ov_SC05_018 | 2124 | 1664 | 0 | 2137 | 2676 | 79.9% |
| ov_SC05_019 | 2073 | 1666 | 0 | 2073 | 2425 | 85.5% |
| ov_SC06_000 | 2134 | 1673 | 0 | 2137 | 2694 | 79.3% |
| ov_SC06_006 | 2082 | 1664 | 0 | 2083 | 2514 | 82.9% |
| ov_SC06_008 | 2098 | 1666 | 0 | 2104 | 2544 | 82.7% |
| ov_SC06_010 | 2085 | 1664 | 0 | 2090 | 2520 | 82.9% |
| ov_SC06_011 | 2082 | 1664 | 0 | 2086 | 2471 | 84.4% |
| ov_SC06_013 | 2075 | 1664 | 0 | 2076 | 2427 | 85.5% |
| ov_SC06_014 | 2079 | 1664 | 0 | 2081 | 2455 | 84.8% |
| ov_SC06_015 | 2076 | 1664 | 0 | 2076 | 2423 | 85.7% |
| ov_SC06_016 | 2094 | 1664 | 0 | 2096 | 2552 | 82.1% |
| ov_SC06_018 | 2092 | 1667 | 0 | 2099 | 2668 | 78.7% |
| ov_SC06_020 | 2082 | 1666 | 0 | 2083 | 2521 | 82.6% |
| ov_SC06_022 | 2098 | 1664 | 0 | 2106 | 2645 | 79.6% |
| ov_SC06_024 | 2104 | 1664 | 0 | 2110 | 2670 | 79.0% |
| ov_SC06_025 | 2091 | 1664 | 0 | 2096 | 2575 | 81.4% |
| ov_SC06_027 | 2066 | 1664 | 0 | 2067 | 2410 | 85.8% |
| ov_SC06_029 | 2119 | 1664 | 0 | 2131 | 2665 | 80.0% |
| ov_SC06_030 | 2077 | 1664 | 0 | 2077 | 2459 | 84.5% |
| ov_SC06_032 | 2088 | 1665 | 0 | 2095 | 2661 | 78.7% |
| ov_SC06_033 | 2092 | 1665 | 0 | 2099 | 2634 | 79.7% |
| ov_SC07_000 | 2091 | 1668 | 0 | 2093 | 2524 | 82.9% |
| ov_SC07_001 | 2078 | 1664 | 0 | 2080 | 2457 | 84.7% |
| ov_SC07_002 | 2095 | 1664 | 0 | 2099 | 2582 | 81.3% |
| ov_SC07_008 | 2062 | 1664 | 0 | 2062 | 2388 | 86.3% |
| ov_SC07_009 | 2073 | 1664 | 0 | 2075 | 2432 | 85.3% |