mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 13:33:34 -04:00
03978ec4ba
- tools/ghidra_import_raw.sh (NEW): raw-blob importer (BinaryLoader + --loader-baseAddr + PSX:LE:32:default) — the Gen2 counterpart to ghidra_import.sh (PS-X-EXE only); reusable for Phase-13 location overlays. Imports the resident blob as program 'resident' @0x800CEDF8. - tools/ghidra_scripts/DefineFunctions.java (NEW): seed splat's validated entry points (.run/<prog>_funcs.txt) — raw-binary auto-analysis finds only the reachable subset (23/143); this defines all 143 (created=120/existed=23/failed=0). R9-verified 143 funcs persisted. - FINDING: DetectPsyQ reports the resident is PsyQ 4.7.0 (the EXE is 4.0.0); the lone in-range PsyQ-signature hit is DsMix (libsnd -> resident holds the sound driver). 4.7 .LIBs DEFERRED to Phase 11 start (Drew); carried to PhaseEnd Notes. Phase 10 needs nothing from 4.7. - config/symbols.resident.txt: seed DsMix (R13 candidate, 4.0-sig vs 4.7 blob — confirm in Phase 11); stacked under symbols.us.txt, applied on re-extract -> resident still 8e17e02f BYTE-IDENTICAL (R22), main still 143dbb89 (no regression) - Makefile: per-binary GHIDRA_PROG -> 'make sig-refresh BINARY=resident' (.run/sig.resident.jsonl) - dup_report.resident now real (6 byte-identical intra-resident groups — Phase-11 dedup fodder) - ghidra DB committed (R23, MCP stopped): new resident program 00000003.* (+ main db.15->16 no-op)
1.5 KiB
1.5 KiB
EXE-wide duplicate function groups (generated by tools/dup_report.py)
sig: .run/sig.resident.jsonl sha1=6218cf30f9722fa4784733a73945a370ea10810c (296 funcs, 122 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: 6 groups, 6 redundant (collapsible)
| score | nins | count | representative | duplicates |
|---|---|---|---|---|
| 62 | 31 | 2 | FUN_800d2e6c (0x800d2e6c) | 0x800d3120 |
| 28 | 14 | 2 | FUN_800d065c (0x800d065c) | 0x800d0694 |
| 18 | 9 | 2 | FUN_800d2dfc (0x800d2dfc) | 0x800d2f8c |
| 18 | 9 | 2 | FUN_800d2ee8 (0x800d2ee8) | 0x800d319c |
| 16 | 8 | 2 | FUN_800cefb0 (0x800cefb0) | 0x800cf398 |
| 16 | 8 | 2 | FUN_800d3328 (0x800d3328) | 0x800d3398 |
h_norm (structural) — nins>=8: 9 groups, 15 redundant (collapsible)
| score | nins | count | representative | duplicates |
|---|---|---|---|---|
| 75 | 15 | 5 | FUN_800d2f0c (0x800d2f0c) | 0x800d2fb0 0x800d30c8 0x800d31c0 0x800d31fc |
| 62 | 31 | 2 | FUN_800d2e6c (0x800d2e6c) | 0x800d3120 |
| 52 | 26 | 2 | FUN_800d21c4 (0x800d21c4) | 0x800d222c |
| 40 | 8 | 5 | FUN_800cefb0 (0x800cefb0) | 0x800cf398 0x800d30a8 0x800d3328 0x800d3398 |
| 30 | 15 | 2 | FUN_800d3238 (0x800d3238) | 0x800d3348 |
| 28 | 14 | 2 | FUN_800d065c (0x800d065c) | 0x800d0694 |
| 22 | 11 | 2 | FUN_800d1028 (0x800d1028) | 0x800d109c |
| 18 | 9 | 2 | FUN_800d2dfc (0x800d2dfc) | 0x800d2f8c |
| 18 | 9 | 2 | FUN_800d2ee8 (0x800d2ee8) | 0x800d319c |