mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
5c5e9fb973
- 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.
8.2 KiB
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% |