mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
685e35fdc6
- tools/sig_image.py: linear rabbitizer disassembler that signs a flat image (overlay 0.4.dec / resident 1.1) at a vram base, JSONL field-identical to DumpFunctionSignatures.java. h_exact = SHA1 of raw bytes (format-independent — the cross-binary workhorse; overlays share the same vram so same-offset dups are byte-identical). Seeded + jal-closure bootstrap entry discovery. - boundary rule: a function ends at the first 'jr $ra'(+delay) at/after every forward branch/jump target — handles early-return jr AND ignores the trailing orphan jr;nop (double-epilogue) - VALIDATED vs the resident Ghidra oracle: 100% h_exact on the contiguous/non-GTE subset (140/140), ZERO UNEXPLAINED (whenever nbytes agrees, h_exact agrees) — the byte pipeline is exact; 98.6% overall. The 2 misses are non-contiguous Ghidra bodies (D5, inherent to a linear sweep) - h_norm/h_seq emitted as conservative placeholders (= h_exact -> zero false structural matches) until T5 calibrates the normToken/mnemonic replica; overlays aren't signed until T6 (post-T5)