Files
BFM-decomp/docs/duplicates.ov_SC01_077.md
T
Drew T 85afa0dc81 feat(phase-19): T2 recovery tooling — canon_resident_calls + no-proto caller fix (3 matches)
- R14 finding: the 3 Phase-18 "implicit-int / propagate-first" near-misses are NOT
  implicit-int (reproduced each through the byte-gate). Real classes:
  (a) resident-callee LINK-miss: draft calls func_<ADDR> but the addr has a curated
      name (0x8004CFEC = ratan2) -> "undefined reference to func_8004CFEC". NEW
      tools/canon_resident_calls.py rewrites func_<ADDR> -> curated name (pure draft
      text, body bytes unchanged) -> run FIRST in the recovery pipeline.
  (b) shared-caller ARITY conflict: an engine_core.h caller macro declares the callee
      file-scope `extern void func_X(void)` then calls func_X(); the real def takes an
      arg -> "conflicting types". FIX = caller extern -> no-proto `extern void func_X();`
      (byte-neutral for the caller; compatible with promotion-safe params int/long/ptr).
- 3 matches banked in ov_SC01_077: func_8017209C (ratan2 rewrite), func_80147514 (s32),
  func_80168F40 (void*); 2 no-proto lines in src/shared/engine_core.h
- recovery pipeline: draft -> canon_resident_calls -> sig_unify -> harvest_verify --chunk 1
- make check-all 136/136 BYTE-IDENTICAL (full extract, R22); dedup 1450 validated/0 failed;
  0 NON_MATCHING in any default build (G4); fleet 56.64% (the 3 are ov_SC01_077-local,
  x134 propagation rides T3/Phase-20)
- cookbook §17a-3 corrected (R14/R16); SETUP tool inventory (R21); CURRENT_PHASE T2 done
2026-06-20 17:12:00 -06:00

11 KiB

EXE-wide duplicate function groups (generated by tools/dup_report.py)

sig: .run/sig.ov_SC01_077.jsonl sha1=7a50e451e5a100d77579cb3c1979f9ec1782612f (2585 funcs, 2274 with nins>=8)

Match the representative once -> share the body to the duplicates (h_exact = guaranteed

byte-match; h_norm = same source, re-point any single address constant).

h_exact (byte-identical) — nins>=8: 24 groups, 36 redundant (collapsible)

score nins count representative duplicates
328 41 8 func_80151fb4 (0x80151fb4) 0x801522cc 0x801525f4 0x80152ac8 0x80152c80 0x80152fbc 0x8015327c 0x80153550
186 93 2 func_8014ffdc (0x8014ffdc) 0x801502ec
94 47 2 func_8015dcb8 (0x8015dcb8) 0x8015e018
90 18 5 func_8015220c (0x8015220c) 0x80152a08 0x80152efc 0x801531bc 0x80153490
57 19 3 func_80134310 (0x80134310) 0x80134a28 0x80134fb8
54 27 2 func_801530e4 (0x801530e4) 0x801533a4
42 21 2 func_8017e668 (0x8017e668) 0x8017e7dc
40 20 2 func_80170068 (0x80170068) 0x80170100
39 13 3 func_8015a1c8 (0x8015a1c8) 0x8015ac90 0x8015cf24
38 19 2 func_8015773c (0x8015773c) 0x801585ec
34 17 2 func_8015bd8c (0x8015bd8c) 0x8015bf04
32 16 2 func_80169fe0 (0x80169fe0) 0x8016dee0
28 14 2 func_8012a828 (0x8012a828) 0x8012a8b0
28 14 2 func_8017e6bc (0x8017e6bc) 0x8017e830
26 13 2 func_8012931c (0x8012931c) 0x80162fc0
26 13 2 func_8015da5c (0x8015da5c) 0x8015dfe4
24 8 3 func_8015d524 (0x8015d524) 0x8015fa24 0x80165c58
24 12 2 func_8016f4c4 (0x8016f4c4) 0x8017ea2c
24 12 2 func_8016f5e0 (0x8016f5e0) 0x80170c44
22 11 2 func_8016fb50 (0x8016fb50) 0x8016fc64
20 10 2 func_801732f4 (0x801732f4) 0x801733a4
18 9 2 func_801598bc (0x801598bc) 0x80162414
16 8 2 func_80150150 (0x80150150) 0x80150460
16 8 2 func_80168a88 (0x80168a88) 0x8016ed6c

h_norm (structural) — nins>=8: 115 groups, 333 redundant (collapsible)

score nins count representative duplicates
384 8 48 func_80128158 (0x80128158) 0x80128178 0x80128198 0x801281b8 0x801281d8 0x801281f8 0x80128228 0x80128248 0x80128268 0x8012a8e8 0x80136c1c 0x80149704 0x80149724 0x80149788 0x80149864 0x801498c0 0x80149c94 0x80149cb4 0x8014a218 0x8014a4fc 0x8014a830 0x8014ab5c 0x8014abf0 0x80151110 0x80151924 0x80155f60 0x8015be74 0x8015bec4 0x8015bee4 0x8015ccb0 0x8015cffc 0x8015f360 0x80160ee0 0x80164db0 0x80168a88 0x8016ed6c 0x8016efa8 0x80172760 0x801747ac 0x801749a8 0x8017ade8 0x8017dacc 0x8017de64 0x8017e1b4 0x80180910 0x80182968 0x80183a50 0x8018448c
384 12 32 func_8014b160 (0x8014b160) 0x80158ab4 0x8015be94 0x80161d58 0x80165a20 0x8016f494 0x8016f4c4 0x8016f5b0 0x8016f5e0 0x8016f680 0x8016f6b0 0x8016f7d4 0x8017041c 0x801704ec 0x801706e8 0x80170718 0x80170c14 0x80170c44 0x8017115c 0x801717f4 0x80171824 0x80171854 0x801732c4 0x8017331c 0x80173374 0x801733cc 0x80174158 0x801743c0 0x801744b0 0x80174554 0x801745ac 0x8017ea2c
336 14 24 func_80142740 (0x80142740) 0x801555bc 0x80157e00 0x80158000 0x80158288 0x80159bac 0x8015a2a0 0x8015ad78 0x8015c08c 0x8015c750 0x8015d544 0x8015db34 0x8015de94 0x8015e1f4 0x8015e924 0x8015ee44 0x8015f048 0x8015f810 0x80160174 0x801603d8 0x80160888 0x8016fd7c 0x80183a70 0x80184aec
330 22 15 func_8014ccb4 (0x8014ccb4) 0x8014d04c 0x8014d3e0 0x8014d738 0x8014df3c 0x8014e434 0x8014e6a0 0x8014e934 0x8014ed28 0x8014f1f4 0x8014f468 0x8014f6f4 0x8014fbc0 0x8014fcfc 0x80150480
328 41 8 func_80151fb4 (0x80151fb4) 0x801522cc 0x801525f4 0x80152ac8 0x80152c80 0x80152fbc 0x8015327c 0x80153550
224 14 16 func_8016f540 (0x8016f540) 0x8016f578 0x8016f610 0x8016f648 0x8017280c 0x80172920 0x80172cdc 0x80172de8 0x80173580 0x80173738 0x80173824 0x80173948 0x80173b88 0x801742e0 0x8017e6bc 0x8017e830
216 108 2 func_8014dd8c (0x8014dd8c) 0x8014e284
190 10 19 func_8014b12c (0x8014b12c) 0x8014b2a8 0x8014b2d0 0x8015e588 0x80171884 0x80172738 0x80172ed4 0x80172efc 0x80172f24 0x80173174 0x8017329c 0x801732f4 0x8017334c 0x801733a4 0x8017427c 0x8017435c 0x8017452c 0x80174584 0x801745dc
190 95 2 func_8014fe60 (0x8014fe60) 0x80150170
186 93 2 func_8014ffdc (0x8014ffdc) 0x801502ec
162 18 9 func_80151980 (0x80151980) 0x80152094 0x801523ac 0x80152868 0x80152ba8 0x80152d60 0x8015309c 0x8015335c 0x80153d34
150 75 2 func_8012b8e4 (0x8012b8e4) 0x8012ba10
150 30 5 func_80152254 (0x80152254) 0x80152a50 0x80152f44 0x80153204 0x801534d8
148 37 4 func_80142838 (0x80142838) 0x80142f68 0x801430f4 0x801432fc
135 15 9 func_8016fccc (0x8016fccc) 0x8017018c 0x80170338 0x80170584 0x80170634 0x80170f38 0x80170fec 0x801710a0 0x801711fc
124 62 2 func_80145934 (0x80145934) 0x80145a2c
123 41 3 func_8012b2cc (0x8012b2cc) 0x8012b370 0x8012b414
118 59 2 func_80176ff4 (0x80176ff4) 0x80177340
114 57 2 func_8012c354 (0x8012c354) 0x8012c438
110 22 5 func_80166244 (0x80166244) 0x8016629c 0x801662f4 0x8016634c 0x801663a4
108 27 4 func_801320d8 (0x801320d8) 0x80132144 0x801321b0 0x8013221c
108 18 6 func_80170928 (0x80170928) 0x80170970 0x801709b8 0x80170a00 0x80170a48 0x80170a90
96 24 4 func_801428cc (0x801428cc) 0x80142ffc 0x80143188 0x80143390
94 47 2 func_8015dcb8 (0x8015dcb8) 0x8015e018
90 18 5 func_8015220c (0x8015220c) 0x80152a08 0x80152efc 0x801531bc 0x80153490
88 44 2 func_8015dbd4 (0x8015dbd4) 0x8015df34
78 13 6 func_8015da5c (0x8015da5c) 0x8015dc84 0x8015dfe4 0x8015e84c 0x8015e880 0x8015e8b4
75 15 5 func_8016f870 (0x8016f870) 0x8016f920 0x8016fdf0 0x8016ff6c 0x8017027c
74 37 2 func_8014ed80 (0x8014ed80) 0x8014f24c
72 36 2 func_8017eec0 (0x8017eec0) 0x8017f024
70 14 5 func_80161208 (0x80161208) 0x80161418 0x80161450 0x801614e4 0x8016151c
68 34 2 func_801495c4 (0x801495c4) 0x8014964c
68 34 2 func_8014d0a4 (0x8014d0a4) 0x8014d438
60 20 3 func_80172780 (0x80172780) 0x80172894 0x80172c50
58 29 2 func_80155e30 (0x80155e30) 0x801576a8
57 19 3 func_80134310 (0x80134310) 0x80134a28 0x80134fb8
54 27 2 func_801530e4 (0x801530e4) 0x801533a4
54 27 2 func_80157158 (0x80157158) 0x80163664
52 13 4 func_8015a1c8 (0x8015a1c8) 0x8015ac90 0x8015cf24 0x8015f738
52 13 4 func_8015a1fc (0x8015a1fc) 0x8015a230 0x8016b3f4 0x80170b14
52 26 2 func_8015db6c (0x8015db6c) 0x8015decc
52 26 2 func_801657d8 (0x801657d8) 0x80165874
50 10 5 func_80146d90 (0x80146d90) 0x80147a84 0x80147aac 0x80147f50 0x80163234
48 8 6 func_8012d38c (0x8012d38c) 0x801376c8 0x80150cc4 0x8016b428 0x8016ba48 0x80174c60
48 8 6 func_80147928 (0x80147928) 0x8014799c 0x80147a10 0x80162f60 0x80162f80 0x80162fa0
48 16 3 func_801526d4 (0x801526d4) 0x80152c40 0x80157880
46 23 2 func_8014ca14 (0x8014ca14) 0x8014ca88
44 22 2 func_80147860 (0x80147860) 0x80162f08
42 14 3 func_80161240 (0x80161240) 0x80161554 0x8016158c
42 21 2 func_8016edec (0x8016edec) 0x8016ee40
42 21 2 func_8017e668 (0x8017e668) 0x8017e7dc
40 20 2 func_80170068 (0x80170068) 0x80170100
40 20 2 func_80172f9c (0x80172f9c) 0x80172fec
38 19 2 func_8015773c (0x8015773c) 0x801585ec
36 18 2 func_80146a6c (0x80146a6c) 0x80146ab4
36 9 4 func_8016f264 (0x8016f264) 0x8016f2c8 0x8016f30c 0x8016f350
36 18 2 func_80170b48 (0x80170b48) 0x801730b4
36 12 3 func_80172b14 (0x80172b14) 0x801737b8 0x801738dc
34 17 2 func_8012a68c (0x8012a68c) 0x8012a758
34 17 2 func_80147ad4 (0x80147ad4) 0x80147b18
34 17 2 func_8015bd8c (0x8015bd8c) 0x8015bf04
32 16 2 func_8012b864 (0x8012b864) 0x8012b8a4
32 16 2 func_80149544 (0x80149544) 0x80149584
32 16 2 func_80154150 (0x80154150) 0x801541d8
32 16 2 func_80154a74 (0x80154a74) 0x80154ae0
32 16 2 func_80157788 (0x80157788) 0x801577c8
32 16 2 func_80169fe0 (0x80169fe0) 0x8016dee0
32 8 4 func_8016f288 (0x8016f288) 0x8016f2a8 0x8016f2ec 0x8016f330
32 16 2 func_8016fa44 (0x8016fa44) 0x8016fc24
32 16 2 func_8016fb10 (0x8016fb10) 0x80172a8c
32 16 2 func_801743f0 (0x801743f0) 0x801751d8
32 16 2 func_801757a0 (0x801757a0) 0x801757e0
30 15 2 func_80170da4 (0x80170da4) 0x80170e70
28 14 2 func_801288b0 (0x801288b0) 0x801289f0
28 14 2 func_8012a828 (0x8012a828) 0x8012a8b0
28 14 2 func_8012e32c (0x8012e32c) 0x8016f0ac
28 14 2 func_801746a4 (0x801746a4) 0x801746dc
26 13 2 func_8012931c (0x8012931c) 0x80162fc0
26 13 2 func_80155518 (0x80155518) 0x8015554c
26 13 2 func_801574dc (0x801574dc) 0x80157510
26 13 2 func_80159b08 (0x80159b08) 0x80159b3c
26 13 2 func_8015bdd0 (0x8015bdd0) 0x8015be04
26 13 2 func_8015bf48 (0x8015bf48) 0x8015bf7c
26 13 2 func_8015c6ac (0x8015c6ac) 0x8015c6e0
26 13 2 func_8015cc0c (0x8015cc0c) 0x8015cc40
26 13 2 func_8015cf58 (0x8015cf58) 0x8015cf8c
26 13 2 func_8015d480 (0x8015d480) 0x8015d4b4
26 13 2 func_8015da90 (0x8015da90) 0x8015dac4
26 13 2 func_8015ddf0 (0x8015ddf0) 0x8015de24
26 13 2 func_8015e150 (0x8015e150) 0x8015e184
26 13 2 func_8015eda0 (0x8015eda0) 0x8015edd4
26 13 2 func_8015efa4 (0x8015efa4) 0x8015efd8
26 13 2 func_8015f2bc (0x8015f2bc) 0x8015f2f0
26 13 2 func_8015f76c (0x8015f76c) 0x8015f7a0
26 13 2 func_8015fa44 (0x8015fa44) 0x8015fa78
26 13 2 func_801600d0 (0x801600d0) 0x80160104
26 13 2 func_80160334 (0x80160334) 0x80160368
26 13 2 func_801607e4 (0x801607e4) 0x80160818
26 13 2 func_80160acc (0x80160acc) 0x80160b00
26 13 2 func_80160e3c (0x80160e3c) 0x80160e70
26 13 2 func_8016ffa8 (0x8016ffa8) 0x801735b8
24 8 3 func_80153c9c (0x80153c9c) 0x80165958 0x80165988
24 12 2 func_80154274 (0x80154274) 0x801542dc
24 12 2 func_80154b4c (0x80154b4c) 0x80154b98
24 8 3 func_8015d524 (0x8015d524) 0x8015fa24 0x80165c58
24 12 2 func_8016ed8c (0x8016ed8c) 0x8016edbc
22 11 2 func_8016fb50 (0x8016fb50) 0x8016fc64
20 10 2 func_8012bee8 (0x8012bee8) 0x80146e98
20 10 2 func_80174784 (0x80174784) 0x80174824
18 9 2 func_80146578 (0x80146578) 0x8014659c
18 9 2 func_80149350 (0x80149350) 0x8014942c
18 9 2 func_80155fb0 (0x80155fb0) 0x80155fd4
18 9 2 func_801598bc (0x801598bc) 0x80162414
16 8 2 func_80146534 (0x80146534) 0x80165938
16 8 2 func_80150150 (0x80150150) 0x80150460