Files
BFM-decomp/docs/difficulty.resident.md
T
Drew T 4c7cf48ebf feat(phase-12): T3 — +2 (typedef-strip recovery) + per-function match tool (REAL 87->89)
- tools/match_one.py (new): compile ONE function's C standalone (pinned triple), mask
  relocations (jal/HI16/LO16 like psyq_identify), compare to the target bytes in its .s.
  Isolated temp dir -> parallelizable; a real per-function asm-differ loop for agents to
  iterate against without a shared build. Validated: a matched fn -> MATCH, residuals ->
  informative diffs.
- harvest_verify.py + match_one.py: strip inline scalar-typedef redefinitions (some drafts
  inlined `typedef unsigned char u8;` -> C89 redefinition error vs common.h = a COMPILE
  fail, not a byte mismatch). Re-gate recovered func_800CFBCC + func_800D1938.
- REAL 89 (62.76% byte-identical); resident 8e17e02f, main 143dbb89 (R22 clean).
- 54 stubs remain (scheduling/regalloc residuals + big GPU/dispatch fns) -> match_one-driven
  iteration pass next.
2026-06-16 12:43:59 -06:00

2.8 KiB

Unmatched difficulty inventory (generated by tools/difficulty.py — harvest queue)

unmatched functions : 54 trivial (<=5 ins) : 1 non-jtbl leaves : 11 (best harvest targets) jump-table funcs : 5 (deferred — need the rodata-island workflow, Task 2')

Easiest 54 unmatched (score asc) — the work queue

score name nins br calls jtbl leaf
4 func_800CFBE8 4 0 0 - Y
15 func_800D1028 11 0 2 - -
21 func_800D2E20 19 0 1 - -
23 func_800D05E8 18 1 1 - -
26 func_800D0EC4 18 2 1 - -
27 func_800CEF5C 21 0 3 - -
29 func_800D0F8C 21 2 1 - -
30 func_800D1984 22 2 1 - -
30 func_800D1B80 22 2 1 - -
30 func_800D2294 20 2 2 - -
32 func_800D2CA8 26 2 0 - Y
33 func_800CF584 20 3 2 - -
35 func_800D1754 25 2 2 - -
35 func_800D185C 32 1 0 - Y
36 func_800D21C4 26 2 2 - -
37 func_800D0588 24 3 2 - -
42 func_800D23D0 36 0 3 - -
43 func_800D0E30 37 2 0 - Y
44 func_800D2E6C 31 1 5 - -
44 func_800D302C 31 1 5 - -
45 func_800CF8E4 26 3 5 - -
46 func_800D1DB0 28 4 3 - -
52 func_800D0CE0 39 3 2 - -
54 func_800D0214 43 3 1 - -
56 func_800D11F0 39 3 4 - -
57 func_800D0D7C 45 4 0 - Y
57 func_800D17B8 41 4 2 - -
57 func_800D2D10 39 6 0 - Y
59 func_800CFAD0 59 0 0 - Y
68 func_800CF3B8 49 3 5 - -
68 func_800D1E28 37 7 5 - -
70 func_800D1EBC 39 7 5 - -
73 func_800D1658 47 6 4 - -
73 func_800D1FC8 62 3 1 - -
76 func_800D20C0 65 3 1 - -
85 func_800D10EC 65 4 4 - -
94 func_800CF628 59 7 7 - -
99 func_800D24A0 87 2 3 - -
102 func_800D19F0 72 8 3 - -
109 func_800CEFD0 77 6 7 - -
109 func_800CF104 77 6 7 - -
114 func_800CF238 78 6 9 - -
123 func_800D0488 64 10 2 Y -
136 func_800CF990 80 12 10 - -
136 func_800D1BF8 75 13 11 - -
141 func_800D2650 99 14 0 - Y
148 func_800D00E4 76 15 1 Y -
160 func_800CFC5C 67 31 0 - Y
162 func_800D27DC 135 9 0 - Y
193 func_800D29F8 172 7 0 - Y
234 func_800CFE60 161 19 8 - -
238 func_800D02D0 110 33 2 Y -
446 func_800D128C 243 40 29 Y -
637 func_800D06E8 344 82 11 Y -