mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-29 15:18:24 -04:00
e6e05d727a
main's sig was dated 2026-06-14 and covered only 1,525 of its 2,002 INCLUDE_ASM stubs: 477 stubs were INVISIBLE to the weighted metrics, so main was being graded against two-thirds of itself and the fleet denominator was understated. tools/ghidra_mcp_stop.sh (R23 - clean stop, "Save succeeded", releases the .rep lock) make sig-refresh BINARY=main -> DumpFunctionSignatures.java, read-only, -noanalysis signatures 1,729 -> 2,205 (+476) stubs covered 1,525 -> 2,001 of 2,002 (1 still uncovered, named below) main .text ins 60,201 -> 79,510 (+19,309) METRICS RE-BASELINED (a DENOMINATOR CORRECTION, not a regression -- the Phase-27 precedent, where onboarding 4 hidden overlays honestly moved 68.9% -> 67.0%): instr-weighted 94.5% -> 94.4% (12,419,169 / 13,160,961; numerator UNCHANGED) distinct-code 89.3% -> 89.0% (5,029,454 / 5,654,184; numerator UNCHANGED) fn-count 96.51% (unchanged -- it never read the sig) MAIN game-code 0.72% -> 0.55% (436 / 79,510) Both numerators are identical across the change; only the denominator grew. audit-digest OK. CAVEAT UNCHANGED (R34): main still has no INDEPENDENT boundary oracle -- sig_image cannot sign a PS-X EXE (header offset, interleaved islands), so main's function list rests on Ghidra alone and audit-corpus cannot cross-check it. That is the open item in docs/second-oracle.md and part of task #9's denominator work. NOTE the sig itself is gitignored/regenerable, so this commit lands only the digests; a fresh clone reproduces it with `make sig-refresh BINARY=main` (Ghidra required, MCP stopped). MCP IS NOW DOWN (I stopped it for the project lock). The SessionStart hook restarts it next session; run /mcp before any Ghidra work (R29).