Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 5c5e9fb973 feat(phase-15): T6 struct follow-up — shared engine_types.h unblocks 37 struct-using fns; fleet 46.27% -> 47.70%
- tools/build_engine_types.py -> src/shared/engine_types.h: extract the 34 named struct/union
  types from ov_SC01_077.c (forward decls + defs in source order; consumes trailing
  __attribute__((packed)) + aliases through the ';'). 0 same-name-different-layout collisions.
- engine_core.h includes engine_types.h; the 34 inline defs stripped from ov_SC01_077.c
  (byte-neutral — type defs emit no code; verified byte-identical).
- dedup_propagate.py: relax the struct guard to skip only inline named-struct/typedef
  DEFINITIONS (header-type USAGES + anonymous local structs now propagate); add engine_types.h
  to the compile pre-filter so struct-using bodies resolve.
- 37 struct-using shared fns propagated fleet-wide (skip 41 -> 4 overlay-local typedef'd types),
  134 overlays byte-identical; dedup 1183 -> 1220 groups, 1220 validated / 0 failed.
- fleet REAL substantive 157,541 -> 162,462; byte-identical 46.27% -> 47.70%.
- R22 clean rebuild: 136/136 byte-identical, 0 extract failures.
2026-06-17 15:25:44 -06:00

8.2 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.

FLEET REAL substantive : 162462 (of which dedup-shared 162003 via 1220 groups / 162047 instances) FLEET LINKED PsyQ objs : 959 FLEET byte-identical : 164109 / 344010 = 47.70% (REAL+LINKED+empties) FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 179894 FLEET matchable : 344010

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 1213 1213 0 1213 2403 50.5%
ov_SC01_001 1213 1213 0 1215 2467 49.3%
ov_SC01_004 1205 1205 0 1206 2416 49.9%
ov_SC01_005 1212 1212 0 1219 2504 48.7%
ov_SC01_006 1212 1212 0 1219 2504 48.7%
ov_SC01_008 1205 1205 0 1207 2428 49.7%
ov_SC01_009 1205 1205 0 1206 2510 48.0%
ov_SC01_074 1205 1205 0 1207 2427 49.7%
ov_SC01_077 1456 1172 0 1458 2586 56.4%
ov_SC01_080 1209 1209 0 1209 2515 48.1%
ov_SC01_084 1209 1209 0 1214 2581 47.0%
ov_SC02_000 1213 1213 0 1220 2684 45.5%
ov_SC02_003 1213 1213 0 1220 2684 45.5%
ov_SC02_004 1209 1209 0 1209 2403 50.3%
ov_SC02_005 1205 1205 0 1215 2930 41.5%
ov_SC02_011 1210 1210 0 1222 2896 42.2%
ov_SC02_015 1210 1210 0 1210 2416 50.1%
ov_SC02_016 1210 1210 0 1213 2548 47.6%
ov_SC02_017 1210 1210 0 1218 2735 44.5%
ov_SC02_021 1210 1210 0 1210 2439 49.6%
ov_SC02_026 1209 1209 0 1215 2575 47.2%
ov_SC02_027 1209 1209 0 1218 2695 45.2%
ov_SC02_028 1209 1209 0 1219 2704 45.1%
ov_SC02_031 1209 1209 0 1215 2565 47.4%
ov_SC02_035 1209 1209 0 1212 2523 48.0%
ov_SC02_039 1209 1209 0 1209 2418 50.0%
ov_SC02_041 1209 1209 0 1212 2563 47.3%
ov_SC03_001 1209 1209 0 1227 2870 42.8%
ov_SC03_002 1213 1213 0 1229 2632 46.7%
ov_SC03_003 1209 1209 0 1210 2425 49.9%
ov_SC03_006 1214 1214 0 1223 2768 44.2%
ov_SC03_007 1209 1209 0 1213 2626 46.2%
ov_SC03_010 1209 1209 0 1209 2472 48.9%
ov_SC03_011 1209 1209 0 1215 2530 48.0%
ov_SC03_012 1209 1209 0 1210 2408 50.2%
ov_SC03_013 1209 1209 0 1209 2495 48.5%
ov_SC03_014 1209 1209 0 1219 2688 45.3%
ov_SC03_015 1209 1209 0 1219 2688 45.3%
ov_SC03_023 1209 1209 0 1210 2437 49.7%
ov_SC03_024 1209 1209 0 1221 2644 46.2%
ov_SC03_028 1209 1209 0 1213 2667 45.5%
ov_SC03_029 1210 1210 0 1220 2647 46.1%
ov_SC03_030 1212 1212 0 1214 2498 48.6%
ov_SC03_031 1209 1209 0 1213 2517 48.2%
ov_SC03_089 1209 1209 0 1216 2584 47.1%
ov_SC03_090 1209 1209 0 1217 2628 46.3%
ov_SC03_091 1209 1209 0 1217 2643 46.0%
ov_SC03_092 1209 1209 0 1221 2590 47.1%
ov_SC03_093 1209 1209 0 1213 2566 47.3%
ov_SC03_094 1209 1209 0 1215 2579 47.1%
ov_SC03_095 1209 1209 0 1212 2477 48.9%
ov_SC03_096 1209 1209 0 1212 2468 49.1%
ov_SC03_097 1209 1209 0 1216 2606 46.7%
ov_SC03_098 1209 1209 0 1212 2544 47.6%
ov_SC03_099 1209 1209 0 1212 2507 48.3%
ov_SC03_100 1209 1209 0 1213 2542 47.7%
ov_SC03_101 1209 1209 0 1213 2531 47.9%
ov_SC03_102 1209 1209 0 1212 2495 48.6%
ov_SC03_103 1210 1210 0 1213 2513 48.3%
ov_SC03_104 1209 1209 0 1216 2619 46.4%
ov_SC03_105 1209 1209 0 1216 2600 46.8%
ov_SC03_108 1209 1209 0 1209 2446 49.4%
ov_SC03_109 1209 1209 0 1211 2426 49.9%
ov_SC03_110 1209 1209 0 1209 2471 48.9%
ov_SC03_111 1209 1209 0 1212 2513 48.2%
ov_SC03_112 1210 1210 0 1212 2529 47.9%
ov_SC03_113 1210 1210 0 1213 2471 49.1%
ov_SC03_114 1209 1209 0 1211 2417 50.1%
ov_SC03_115 1209 1209 0 1211 2475 48.9%
ov_SC03_116 1209 1209 0 1212 2441 49.7%
ov_SC03_117 1209 1209 0 1215 2560 47.5%
ov_SC03_118 1209 1209 0 1222 2688 45.5%
ov_SC03_119 1209 1209 0 1222 2688 45.5%
ov_SC03_121 1209 1209 0 1212 2462 49.2%
ov_SC03_124 1205 1205 0 1225 2744 44.6%
ov_SC03_125 1209 1209 0 1221 2591 47.1%
ov_SC03_126 1209 1209 0 1210 2425 49.9%
ov_SC04_000 1213 1213 0 1222 2547 48.0%
ov_SC04_002 1209 1209 0 1213 2639 46.0%
ov_SC04_003 1209 1209 0 1213 2505 48.4%
ov_SC04_004 1209 1209 0 1211 2561 47.3%
ov_SC04_005 1209 1209 0 1215 2615 46.5%
ov_SC04_006 1209 1209 0 1211 2456 49.3%
ov_SC04_007 1209 1209 0 1213 2572 47.2%
ov_SC04_008 1209 1209 0 1209 2417 50.0%
ov_SC04_009 1209 1209 0 1212 2443 49.6%
ov_SC04_010 1209 1209 0 1210 2421 50.0%
ov_SC04_011 1209 1209 0 1215 2806 43.3%
ov_SC04_012 1209 1209 0 1210 2422 50.0%
ov_SC04_015 1209 1209 0 1221 2614 46.7%
ov_SC04_016 1209 1209 0 1211 2442 49.6%
ov_SC04_018 1209 1209 0 1222 2858 42.8%
ov_SC04_019 1209 1209 0 1222 2858 42.8%
ov_SC04_020 1209 1209 0 1221 2570 47.5%
ov_SC04_021 1209 1209 0 1210 2425 49.9%
ov_SC05_000 1213 1213 0 1216 2422 50.2%
ov_SC05_001 1209 1209 0 1214 2577 47.1%
ov_SC05_002 1209 1209 0 1212 2445 49.6%
ov_SC05_003 1209 1209 0 1210 2484 48.7%
ov_SC05_004 1209 1209 0 1211 2467 49.1%
ov_SC05_005 1209 1209 0 1210 2494 48.5%
ov_SC05_006 1209 1209 0 1209 2432 49.7%
ov_SC05_007 1209 1209 0 1214 2485 48.9%
ov_SC05_008 1209 1209 0 1211 2546 47.6%
ov_SC05_009 1209 1209 0 1213 2440 49.7%
ov_SC05_010 1209 1209 0 1213 2591 46.8%
ov_SC05_011 1209 1209 0 1210 2411 50.2%
ov_SC05_017 1205 1205 0 1217 2845 42.8%
ov_SC05_018 1209 1209 0 1222 2676 45.7%
ov_SC05_019 1209 1209 0 1210 2425 49.9%
ov_SC06_000 1213 1213 0 1221 2692 45.4%
ov_SC06_006 1209 1209 0 1210 2514 48.1%
ov_SC06_008 1210 1210 0 1216 2544 47.8%
ov_SC06_010 1209 1209 0 1214 2520 48.2%
ov_SC06_011 1209 1209 0 1213 2471 49.1%
ov_SC06_013 1209 1209 0 1210 2427 49.9%
ov_SC06_014 1209 1209 0 1211 2455 49.3%
ov_SC06_015 1209 1209 0 1209 2423 49.9%
ov_SC06_016 1209 1209 0 1211 2552 47.5%
ov_SC06_018 1209 1209 0 1217 2668 45.6%
ov_SC06_020 1209 1209 0 1210 2521 48.0%
ov_SC06_022 1209 1209 0 1217 2645 46.0%
ov_SC06_024 1209 1209 0 1215 2670 45.5%
ov_SC06_025 1209 1209 0 1214 2575 47.1%
ov_SC06_027 1209 1209 0 1210 2410 50.2%
ov_SC06_029 1209 1209 0 1221 2665 45.8%
ov_SC06_030 1209 1209 0 1209 2459 49.2%
ov_SC06_032 1209 1209 0 1216 2661 45.7%
ov_SC06_033 1209 1209 0 1216 2634 46.2%
ov_SC07_000 1213 1213 0 1215 2522 48.2%
ov_SC07_001 1209 1209 0 1211 2457 49.3%
ov_SC07_002 1209 1209 0 1213 2582 47.0%
ov_SC07_008 1209 1209 0 1209 2388 50.6%
ov_SC07_009 1209 1209 0 1211 2432 49.8%