mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
5a08180617
- the jr-function ×134 harvest pipeline, proven end-to-end: per family sibling,
jtbl_carve (per-sibling jtbl-rodata carve, computed from THAT sibling's own jtbl
address — the fn is at the same vram across overlays but its jtbl floats) -> make
extract (auto ld_interleave) -> remap_hseq + canon_sig_reconcile -> whole-binary gate
- tools/jtbl_carve.py: per-overlay §8 carve generator (config data-tail split +
<ov>_JTBL_INTERLEAVE var)
- tools/jtbl_family_bank.py: the sibling sweep driver (idempotent, revert-on-fail, byte-gated)
- tools/family_remap.py: extract_unit now carries single-line typedefs (jr-function bodies
define local `typedef struct{} Foo_<addr>;` that must template with the body — the
propagation cap for these; additive, byte-gate-protected)
- func_8012ACE0 family: 133/133 siblings BANKED, 0 failures; R22 clean-fleet 136/136
byte-identical; 0 NON_MATCHING (G4)
- metrics: distinct-code 39.1% (50,698 unique fns), instr-weighted 63.0%
- opportunity (has_mid_jr families): 237 total (5,805 members) = 46 small mid/tiny
(771 members, same mechanical pipeline) + 191 substantial (the Fable5 cores, Task 7 paused)
- NEXT: R22 profiling/parallelization; then the other 45 small jr families
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: 282925 / 344038 = 82.24% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 7999443 / 12707182 = 63.0% (shipped .text across resident+134 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 2116150 / 5410077 = 39.1% (50698/84996 unique fns; the DISTINCT-RE number; main EXE not sig'd)
FLEET REAL substantive : 281396 (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 : 61106 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 | 2072 | 1669 | 0 | 2072 | 2405 | 86.2% |
| ov_SC01_001 | 2077 | 1669 | 0 | 2079 | 2469 | 84.2% |
| ov_SC01_004 | 2069 | 1660 | 0 | 2070 | 2416 | 85.7% |
| ov_SC01_005 | 2095 | 1682 | 0 | 2095 | 2506 | 83.6% |
| ov_SC01_006 | 2095 | 1682 | 0 | 2095 | 2506 | 83.6% |
| ov_SC01_008 | 2068 | 1660 | 0 | 2070 | 2428 | 85.3% |
| ov_SC01_009 | 2089 | 1661 | 0 | 2090 | 2510 | 83.3% |
| ov_SC01_074 | 2073 | 1661 | 0 | 2075 | 2427 | 85.5% |
| ov_SC01_077 | 2309 | 1624 | 0 | 2311 | 2584 | 89.4% |
| ov_SC01_080 | 2105 | 1664 | 0 | 2105 | 2515 | 83.7% |
| ov_SC01_084 | 2112 | 1664 | 0 | 2117 | 2581 | 82.0% |
| ov_SC02_000 | 2157 | 1699 | 0 | 2157 | 2686 | 80.3% |
| ov_SC02_003 | 2157 | 1699 | 0 | 2157 | 2686 | 80.3% |
| ov_SC02_004 | 2074 | 1664 | 0 | 2074 | 2403 | 86.3% |
| ov_SC02_005 | 2175 | 1660 | 0 | 2185 | 2930 | 74.6% |
| ov_SC02_011 | 2180 | 1667 | 0 | 2191 | 2896 | 75.7% |
| ov_SC02_015 | 2079 | 1666 | 0 | 2079 | 2416 | 86.1% |
| ov_SC02_016 | 2104 | 1666 | 0 | 2107 | 2548 | 82.7% |
| ov_SC02_017 | 2147 | 1666 | 0 | 2155 | 2735 | 78.8% |
| ov_SC02_021 | 2085 | 1666 | 0 | 2085 | 2439 | 85.5% |
| ov_SC02_026 | 2094 | 1664 | 0 | 2100 | 2575 | 81.6% |
| ov_SC02_027 | 2119 | 1664 | 0 | 2128 | 2695 | 79.0% |
| ov_SC02_028 | 2120 | 1664 | 0 | 2130 | 2704 | 78.8% |
| ov_SC02_031 | 2108 | 1665 | 0 | 2113 | 2565 | 82.4% |
| ov_SC02_035 | 2085 | 1664 | 0 | 2088 | 2523 | 82.8% |
| ov_SC02_039 | 2069 | 1664 | 0 | 2069 | 2418 | 85.6% |
| ov_SC02_041 | 2096 | 1664 | 0 | 2099 | 2563 | 81.9% |
| ov_SC03_001 | 2201 | 1665 | 0 | 2218 | 2872 | 77.2% |
| ov_SC03_002 | 2131 | 1669 | 0 | 2146 | 2634 | 81.5% |
| ov_SC03_003 | 2074 | 1664 | 0 | 2075 | 2425 | 85.6% |
| ov_SC03_006 | 2141 | 1670 | 0 | 2150 | 2770 | 77.6% |
| ov_SC03_007 | 2121 | 1664 | 0 | 2125 | 2626 | 80.9% |
| ov_SC03_010 | 2084 | 1664 | 0 | 2084 | 2472 | 84.3% |
| ov_SC03_011 | 2089 | 1664 | 0 | 2095 | 2530 | 82.8% |
| ov_SC03_012 | 2068 | 1664 | 0 | 2069 | 2408 | 85.9% |
| ov_SC03_013 | 2085 | 1664 | 0 | 2085 | 2495 | 83.6% |
| ov_SC03_014 | 2133 | 1689 | 0 | 2133 | 2688 | 79.4% |
| ov_SC03_015 | 2136 | 1689 | 0 | 2136 | 2688 | 79.5% |
| ov_SC03_023 | 2074 | 1664 | 0 | 2075 | 2437 | 85.1% |
| ov_SC03_024 | 2128 | 1669 | 0 | 2135 | 2644 | 80.7% |
| ov_SC03_028 | 2111 | 1664 | 0 | 2115 | 2667 | 79.3% |
| ov_SC03_029 | 2112 | 1666 | 0 | 2122 | 2647 | 80.2% |
| ov_SC03_030 | 2091 | 1668 | 0 | 2093 | 2498 | 83.8% |
| ov_SC03_031 | 2085 | 1664 | 0 | 2089 | 2517 | 83.0% |
| ov_SC03_089 | 2102 | 1664 | 0 | 2109 | 2584 | 81.6% |
| ov_SC03_090 | 2104 | 1664 | 0 | 2112 | 2628 | 80.4% |
| ov_SC03_091 | 2105 | 1664 | 0 | 2113 | 2643 | 79.9% |
| ov_SC03_092 | 2111 | 1664 | 0 | 2123 | 2590 | 82.0% |
| ov_SC03_093 | 2092 | 1664 | 0 | 2096 | 2566 | 81.7% |
| ov_SC03_094 | 2087 | 1664 | 0 | 2093 | 2579 | 81.2% |
| ov_SC03_095 | 2078 | 1664 | 0 | 2081 | 2477 | 84.0% |
| ov_SC03_096 | 2078 | 1664 | 0 | 2081 | 2468 | 84.3% |
| ov_SC03_097 | 2101 | 1664 | 0 | 2108 | 2606 | 80.9% |
| ov_SC03_098 | 2085 | 1664 | 0 | 2088 | 2544 | 82.1% |
| ov_SC03_099 | 2079 | 1664 | 0 | 2082 | 2507 | 83.0% |
| ov_SC03_100 | 2086 | 1664 | 0 | 2090 | 2542 | 82.2% |
| ov_SC03_101 | 2087 | 1664 | 0 | 2091 | 2531 | 82.6% |
| ov_SC03_102 | 2082 | 1664 | 0 | 2085 | 2495 | 83.6% |
| ov_SC03_103 | 2086 | 1666 | 0 | 2089 | 2513 | 83.1% |
| ov_SC03_104 | 2105 | 1664 | 0 | 2112 | 2619 | 80.6% |
| ov_SC03_105 | 2099 | 1664 | 0 | 2106 | 2600 | 81.0% |
| ov_SC03_108 | 2071 | 1664 | 0 | 2071 | 2446 | 84.7% |
| ov_SC03_109 | 2072 | 1664 | 0 | 2074 | 2426 | 85.5% |
| ov_SC03_110 | 2077 | 1664 | 0 | 2077 | 2471 | 84.1% |
| ov_SC03_111 | 2085 | 1664 | 0 | 2088 | 2513 | 83.1% |
| ov_SC03_112 | 2083 | 1666 | 0 | 2085 | 2529 | 82.4% |
| ov_SC03_113 | 2077 | 1666 | 0 | 2080 | 2471 | 84.2% |
| ov_SC03_114 | 2067 | 1664 | 0 | 2069 | 2417 | 85.6% |
| ov_SC03_115 | 2081 | 1664 | 0 | 2083 | 2475 | 84.2% |
| ov_SC03_116 | 2075 | 1664 | 0 | 2078 | 2441 | 85.1% |
| ov_SC03_117 | 2093 | 1664 | 0 | 2099 | 2560 | 82.0% |
| ov_SC03_118 | 2136 | 1688 | 0 | 2137 | 2688 | 79.5% |
| ov_SC03_119 | 2133 | 1688 | 0 | 2134 | 2688 | 79.4% |
| ov_SC03_121 | 2078 | 1664 | 0 | 2081 | 2462 | 84.5% |
| ov_SC03_124 | 2150 | 1660 | 0 | 2170 | 2744 | 79.1% |
| ov_SC03_125 | 2113 | 1664 | 0 | 2125 | 2591 | 82.0% |
| ov_SC03_126 | 2075 | 1666 | 0 | 2075 | 2425 | 85.6% |
| ov_SC04_000 | 2092 | 1668 | 0 | 2101 | 2549 | 82.4% |
| ov_SC04_002 | 2106 | 1664 | 0 | 2110 | 2639 | 80.0% |
| ov_SC04_003 | 2084 | 1664 | 0 | 2088 | 2505 | 83.4% |
| ov_SC04_004 | 2098 | 1664 | 0 | 2100 | 2561 | 82.0% |
| ov_SC04_005 | 2099 | 1664 | 0 | 2105 | 2615 | 80.5% |
| ov_SC04_006 | 2075 | 1664 | 0 | 2077 | 2456 | 84.6% |
| ov_SC04_007 | 2094 | 1664 | 0 | 2098 | 2572 | 81.6% |
| ov_SC04_008 | 2071 | 1664 | 0 | 2071 | 2417 | 85.7% |
| ov_SC04_009 | 2079 | 1664 | 0 | 2082 | 2443 | 85.2% |
| ov_SC04_010 | 2075 | 1664 | 0 | 2076 | 2421 | 85.7% |
| ov_SC04_011 | 2125 | 1664 | 0 | 2131 | 2806 | 75.9% |
| ov_SC04_012 | 2073 | 1664 | 0 | 2074 | 2422 | 85.6% |
| ov_SC04_015 | 2133 | 1665 | 0 | 2144 | 2614 | 82.0% |
| ov_SC04_016 | 2072 | 1664 | 0 | 2074 | 2442 | 84.9% |
| ov_SC04_018 | 2179 | 1699 | 0 | 2179 | 2860 | 76.2% |
| ov_SC04_019 | 2185 | 1699 | 0 | 2185 | 2860 | 76.4% |
| ov_SC04_020 | 2102 | 1664 | 0 | 2114 | 2570 | 82.3% |
| ov_SC04_021 | 2074 | 1666 | 0 | 2074 | 2425 | 85.5% |
| ov_SC05_000 | 2078 | 1668 | 0 | 2081 | 2424 | 85.8% |
| ov_SC05_001 | 2094 | 1664 | 0 | 2099 | 2577 | 81.5% |
| ov_SC05_002 | 2077 | 1664 | 0 | 2080 | 2445 | 85.1% |
| ov_SC05_003 | 2077 | 1664 | 0 | 2078 | 2484 | 83.7% |
| ov_SC05_004 | 2075 | 1664 | 0 | 2077 | 2467 | 84.2% |
| ov_SC05_005 | 2079 | 1664 | 0 | 2080 | 2494 | 83.4% |
| ov_SC05_006 | 2073 | 1664 | 0 | 2073 | 2432 | 85.2% |
| ov_SC05_007 | 2080 | 1664 | 0 | 2085 | 2485 | 83.9% |
| ov_SC05_008 | 2099 | 1664 | 0 | 2101 | 2546 | 82.5% |
| ov_SC05_009 | 2075 | 1664 | 0 | 2079 | 2440 | 85.2% |
| ov_SC05_010 | 2099 | 1664 | 0 | 2103 | 2591 | 81.2% |
| ov_SC05_011 | 2076 | 1664 | 0 | 2077 | 2411 | 86.1% |
| ov_SC05_017 | 2175 | 1661 | 0 | 2186 | 2845 | 76.8% |
| ov_SC05_018 | 2125 | 1664 | 0 | 2138 | 2676 | 79.9% |
| ov_SC05_019 | 2074 | 1666 | 0 | 2074 | 2425 | 85.5% |
| ov_SC06_000 | 2135 | 1673 | 0 | 2138 | 2694 | 79.4% |
| ov_SC06_006 | 2083 | 1664 | 0 | 2084 | 2514 | 82.9% |
| ov_SC06_008 | 2099 | 1666 | 0 | 2105 | 2544 | 82.7% |
| ov_SC06_010 | 2086 | 1664 | 0 | 2091 | 2520 | 83.0% |
| ov_SC06_011 | 2083 | 1664 | 0 | 2087 | 2471 | 84.5% |
| ov_SC06_013 | 2076 | 1664 | 0 | 2077 | 2427 | 85.6% |
| ov_SC06_014 | 2080 | 1664 | 0 | 2082 | 2455 | 84.8% |
| ov_SC06_015 | 2077 | 1664 | 0 | 2077 | 2423 | 85.7% |
| ov_SC06_016 | 2095 | 1664 | 0 | 2097 | 2552 | 82.2% |
| ov_SC06_018 | 2093 | 1667 | 0 | 2100 | 2668 | 78.7% |
| ov_SC06_020 | 2083 | 1666 | 0 | 2084 | 2521 | 82.7% |
| ov_SC06_022 | 2099 | 1664 | 0 | 2107 | 2645 | 79.7% |
| ov_SC06_024 | 2105 | 1664 | 0 | 2111 | 2670 | 79.1% |
| ov_SC06_025 | 2092 | 1664 | 0 | 2097 | 2575 | 81.4% |
| ov_SC06_027 | 2067 | 1664 | 0 | 2068 | 2410 | 85.8% |
| ov_SC06_029 | 2120 | 1664 | 0 | 2132 | 2665 | 80.0% |
| ov_SC06_030 | 2078 | 1664 | 0 | 2078 | 2459 | 84.5% |
| ov_SC06_032 | 2089 | 1665 | 0 | 2096 | 2661 | 78.8% |
| ov_SC06_033 | 2093 | 1665 | 0 | 2100 | 2634 | 79.7% |
| ov_SC07_000 | 2092 | 1668 | 0 | 2094 | 2524 | 83.0% |
| ov_SC07_001 | 2079 | 1664 | 0 | 2081 | 2457 | 84.7% |
| ov_SC07_002 | 2096 | 1664 | 0 | 2100 | 2582 | 81.3% |
| ov_SC07_008 | 2063 | 1664 | 0 | 2063 | 2388 | 86.4% |
| ov_SC07_009 | 2074 | 1664 | 0 | 2076 | 2432 | 85.4% |