Files
BFM-decomp/docs/duplicates.cross.md
T
Drew T 7cc2911456 feat(phase-11): T1 — cross-binary dup_report --cross → duplicates.cross.md
- dup_report.py: additive --cross mode ingests all BINARIES sigs, tags each row
  with its binary, buckets by h_exact then h_norm across binaries, splits
  cross-binary (binaries>1, the Phase-12/13 work queue) vs intra-binary, ranks by
  collapsible bytes (count-1)*nins*4, one row per member -> docs/duplicates.cross.md
- Makefile: make report emits the cross report once (gated BINARY=main)
- per-binary duplicates.md/.resident.md stay byte-stable (per-binary path unchanged)
- EXE<->resident cross-binary groups = 0 (4.0 vs 4.7 + different roles, as the
  byte-finding predicted); real cross groups arrive with overlays (T6)
- phase-ends/CURRENT_PHASE.md: Phase 11 plan + per-task log
2026-06-16 00:37:18 -06:00

7.2 KiB

Cross-binary duplicate function groups (generated by tools/dup_report.py --cross)

sources:

main .run/sig.SLUS_007.26.jsonl sha1=fb76354f3443387f31501a6b2986abc0fae770d6 (1729 funcs)

resident .run/sig.resident.jsonl sha1=6218cf30f9722fa4784733a73945a370ea10810c (296 funcs)

Collapsible bytes = (count-1)nins4 (bytes saved; one member stays the source).

A cross-binary group (binaries>1) is the Phase-12/13 work queue; lead with h_exact

(guaranteed byte-match), h_norm is candidate-only (byte-confirm via dedup_integrate).

h_exact (byte-identical)

cross-binary (binaries > 1) — 0 groups, 0 collapsible bytes

gid bytes nins count binaries members (binary:addr name)

intra-binary — 13 groups, 624 collapsible bytes

gid bytes nins count binaries members (binary:addr name)
ei0 124 31 2 resident resident:0x800d2e6c (FUN_800d2e6c); resident:0x800d3120 (FUN_800d3120)
ei1 88 11 3 main main:0x80043948 (SYS_OBJ_538); main:0x80060904 (LIBMCRD_OBJ_C9C); main:0x80060bc0 (LIBMCRD_OBJ_F58)
ei2 56 14 2 resident resident:0x800d065c (FUN_800d065c); resident:0x800d0694 (FUN_800d0694)
ei3 40 10 2 main main:0x800432d8 (TOC_OBJ_220); main:0x80045918 (ISO9660_OBJ_5A4)
ei4 40 10 2 main main:0x800433c0 (def_cbready); main:0x800433e8 (def_cbread)
ei5 36 9 2 main main:0x80037004 (FUN_80037004); main:0x80037334 (FUN_80037334)
ei6 36 9 2 main main:0x80042290 (VS_VTBP_OBJ_13C); main:0x800459c4 (ISO9660_OBJ_650)
ei7 36 9 2 main main:0x8004561c (ISO9660_OBJ_2A8); main:0x8005b660 (SYS_OBJ_242C)
ei8 36 9 2 resident resident:0x800d2dfc (FUN_800d2dfc); resident:0x800d2f8c (FUN_800d2f8c)
ei9 36 9 2 resident resident:0x800d2ee8 (FUN_800d2ee8); resident:0x800d319c (FUN_800d319c)
ei10 32 8 2 main main:0x80042134 (S_M_M_OBJ_2A8); main:0x8005ba70 (SYS_OBJ_283C)
ei11 32 8 2 resident resident:0x800cefb0 (FUN_800cefb0); resident:0x800cf398 (FUN_800cf398)
ei12 32 8 2 resident resident:0x800d3328 (FUN_800d3328); resident:0x800d3398 (FUN_800d3398)

h_norm (structural)

cross-binary (binaries > 1) — 0 groups, 0 collapsible bytes

gid bytes nins count binaries members (binary:addr name)

intra-binary — 43 groups, 4440 collapsible bytes

gid bytes nins count binaries members (binary:addr name)
ni0 1000 125 3 main main:0x80054544 (GS_133_OBJ_30); main:0x80054808 (GS_134_OBJ_30); main:0x80054ae4 (GS_135_OBJ_38)
ni1 308 77 2 main main:0x800604c4 (_card_read_data); main:0x800606d4 (_card_write_data)
ni2 240 15 5 resident resident:0x800d2f0c (FUN_800d2f0c); resident:0x800d2fb0 (FUN_800d2fb0); resident:0x800d30c8 (FUN_800d30c8); resident:0x800d31c0 (FUN_800d31c0); resident:0x800d31fc (FUN_800d31fc)
ni3 224 8 8 main main:0x80027bf0 (FUN_80027bf0); main:0x8002eeb8 (FUN_8002eeb8); main:0x8002fdc8 (FUN_8002fdc8); main:0x80046610 (StCdInterrupt2); main:0x80053308 (FUN_80053308); main:0x8005d0f8 (FUN_8005d0f8); main:0x8005fc98 (MemCardEnd); main:0x80061a80 (_card_close)
ni4 148 37 2 main main:0x80011818 (FUN_80011818); main:0x80011b7c (FUN_80011b7c)
ni5 140 35 2 main main:0x80060a38 (LIBMCRD_OBJ_DD0); main:0x80060cf4 (LIBMCRD_OBJ_108C)
ni6 128 32 2 main main:0x80031e94 (FUN_80031e94); main:0x80031fc8 (FUN_80031fc8)
ni7 128 8 5 resident resident:0x800cefb0 (FUN_800cefb0); resident:0x800cf398 (FUN_800cf398); resident:0x800d30a8 (FUN_800d30a8); resident:0x800d3328 (FUN_800d3328); resident:0x800d3398 (FUN_800d3398)
ni8 124 31 2 resident resident:0x800d2e6c (FUN_800d2e6c); resident:0x800d3120 (FUN_800d3120)
ni9 112 28 2 main main:0x80040af8 (VM_NOWON_OBJ_1C0); main:0x80040b68 (VM_NOWON_OBJ_230)
ni10 108 27 2 main main:0x8002eff8 (FUN_8002eff8); main:0x8002f064 (FUN_8002f064)
ni11 104 26 2 resident resident:0x800d21c4 (FUN_800d21c4); resident:0x800d222c (FUN_800d222c)
ni12 100 25 2 main main:0x80049f3c (RotMatrixX); main:0x8004a27c (RotMatrixZ)
ni13 88 11 3 main main:0x80043948 (SYS_OBJ_538); main:0x80060904 (LIBMCRD_OBJ_C9C); main:0x80060bc0 (LIBMCRD_OBJ_F58)
ni14 80 10 3 main main:0x8002ee90 (FUN_8002ee90); main:0x8002efd0 (FUN_8002efd0); main:0x80062360 (FUN_80062360)
ni15 80 20 2 main main:0x80057730 (OBJT2_OBJ_69C); main:0x800577d4 (OBJT2_OBJ_740)
ni16 76 19 2 main main:0x8003b37c (S_M_UTIL_OBJ_2C); main:0x8003b408 (S_M_UTIL_OBJ_B8)
ni17 72 18 2 main main:0x80056290 (PRESET2_OBJ_550); main:0x80056324 (PRESET2_OBJ_5E4)
ni18 64 8 3 main main:0x800285ac (SsUtReverbOff); main:0x8003a424 (FUN_8003a424); main:0x8003d96c (SsStart2)
ni19 64 16 2 main main:0x8005ab98 (SYS_OBJ_1964); main:0x8005ac64 (SYS_OBJ_1A30)
ni20 64 16 2 main main:0x80060930 (_card_read_file); main:0x80060bec (_card_write_file)
ni21 64 16 2 main main:0x80060994 (LIBMCRD_OBJ_D2C); main:0x80060c50 (LIBMCRD_OBJ_FE8)
ni22 60 15 2 resident resident:0x800d3238 (FUN_800d3238); resident:0x800d3348 (FUN_800d3348)
ni23 56 14 2 main main:0x80056830 (PRESET2_OBJ_AF0); main:0x800568a8 (PRESET2_OBJ_B68)
ni24 56 14 2 main main:0x8005b228 (SYS_OBJ_1FF4); main:0x8005b460 (SYS_OBJ_222C)
ni25 56 14 2 resident resident:0x800d065c (FUN_800d065c); resident:0x800d0694 (FUN_800d0694)
ni26 52 13 2 main main:0x8005abd8 (SYS_OBJ_19A4); main:0x8005aca4 (SYS_OBJ_1A70)
ni27 52 13 2 main main:0x80060a04 (LIBMCRD_OBJ_D9C); main:0x80060cc0 (LIBMCRD_OBJ_1058)
ni28 48 12 2 main main:0x800609d4 (LIBMCRD_OBJ_D6C); main:0x80060c90 (LIBMCRD_OBJ_1028)
ni29 44 11 2 main main:0x8005623c (PRESET2_OBJ_4FC); main:0x8005636c (PRESET2_OBJ_62C)
ni30 44 11 2 main main:0x800567e8 (PRESET2_OBJ_AA8); main:0x800568e0 (PRESET2_OBJ_BA0)
ni31 44 11 2 main main:0x800576d4 (OBJT2_OBJ_640); main:0x80057824 (OBJT2_OBJ_790)
ni32 44 11 2 resident resident:0x800d1028 (FUN_800d1028); resident:0x800d109c (FUN_800d109c)
ni33 40 10 2 main main:0x80040608 (VM_NO1_OBJ_264); main:0x80040bd8 (VM_NOWON_OBJ_2A0)
ni34 40 10 2 main main:0x800432d8 (TOC_OBJ_220); main:0x80045918 (ISO9660_OBJ_5A4)
ni35 40 10 2 main main:0x800433c0 (def_cbready); main:0x800433e8 (def_cbread)
ni36 36 9 2 main main:0x80037004 (FUN_80037004); main:0x80037334 (FUN_80037334)
ni37 36 9 2 main main:0x80042290 (VS_VTBP_OBJ_13C); main:0x800459c4 (ISO9660_OBJ_650)
ni38 36 9 2 main main:0x8004561c (ISO9660_OBJ_2A8); main:0x8005b660 (SYS_OBJ_242C)
ni39 36 9 2 main main:0x80060970 (LIBMCRD_OBJ_D08); main:0x80060c2c (LIBMCRD_OBJ_FC4)
ni40 36 9 2 resident resident:0x800d2dfc (FUN_800d2dfc); resident:0x800d2f8c (FUN_800d2f8c)
ni41 36 9 2 resident resident:0x800d2ee8 (FUN_800d2ee8); resident:0x800d319c (FUN_800d319c)
ni42 32 8 2 main main:0x80042134 (S_M_M_OBJ_2A8); main:0x8005ba70 (SYS_OBJ_283C)