mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-27 18:52:11 -04:00
7c40d33db3
Phase 1a (boot slice): 30 instructions at 0xBFC00000, compiles clean. Phase 1b (instruction coverage): 54 opcodes implemented in strict_translator, 44,629 walker-reachable instructions covered, 0 missing. Phase 1c (function discovery): 76 functions from 2 seeds, 2,988 instructions, 199 call edges, 27 indirect jumps. All validated through StrictTranslator. Phase 1d (indirect control flow): 27 sites classified — 21 A0/B0/C0 dispatch stubs, 4 computed calls, 2 computed tail calls. Ghidra cross-referenced with 0 disagreements. Phase 1e (relocation): ROM-to-RAM copy at FUN_bfc00420 proven with both Ghidra (static) and DuckStation (runtime). 69 address aliases, 68/69 function entries match byte-for-byte in RAM. Normalization rule documented. Includes PRINCIPLES.md and DEBUG.md adapted from recomp-template. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
82 lines
2.8 KiB
JSON
82 lines
2.8 KiB
JSON
{
|
|
"schema": "psxrecomp-v4 phase1e address_aliases v1",
|
|
"normalization_rule": "Two-step: (1) KSEG strip: phys = addr & 0x1FFFFFFF. (2) ROM-to-RAM mapping: if phys in [0x1FC10000, 0x1FC18BEF], map to phys - 0x1FC10000 + 0x00000500. Result is the canonical physical address.",
|
|
"source_proof": "generated/relocation_proofs/primary_copy/proof.json",
|
|
"copy_mapping": {
|
|
"rom_range": "0xBFC10000..0xBFC18BEF",
|
|
"ram_range": "0x80000500..0x800090EF",
|
|
"formula": "ram_addr = rom_addr - 0xBFC10000 + 0x80000500"
|
|
},
|
|
"total_aliases": 69,
|
|
"aliases": {
|
|
"0xBFC10C74": "0x80001174",
|
|
"0xBFC11008": "0x80001508",
|
|
"0xBFC11294": "0x80001794",
|
|
"0xBFC112F4": "0x800017F4",
|
|
"0xBFC11358": "0x80001858",
|
|
"0xBFC113BC": "0x800018BC",
|
|
"0xBFC11420": "0x80001920",
|
|
"0xBFC11458": "0x80001958",
|
|
"0xBFC11490": "0x80001990",
|
|
"0xBFC114C8": "0x800019C8",
|
|
"0xBFC11500": "0x80001A00",
|
|
"0xBFC11620": "0x80001B20",
|
|
"0xBFC1188C": "0x80001D8C",
|
|
"0xBFC11B18": "0x80002018",
|
|
"0xBFC11C8C": "0x8000218C",
|
|
"0xBFC11F58": "0x80002458",
|
|
"0xBFC122C0": "0x800027C0",
|
|
"0xBFC12370": "0x80002870",
|
|
"0xBFC12408": "0x80002908",
|
|
"0xBFC12458": "0x80002958",
|
|
"0xBFC12564": "0x80002A64",
|
|
"0xBFC12628": "0x80002B28",
|
|
"0xBFC12794": "0x80002C94",
|
|
"0xBFC12900": "0x80002E00",
|
|
"0xBFC12998": "0x80002E98",
|
|
"0xBFC129FC": "0x80002EFC",
|
|
"0xBFC12AC8": "0x80002FC8",
|
|
"0xBFC12B00": "0x80003000",
|
|
"0xBFC12B60": "0x80003060",
|
|
"0xBFC12C08": "0x80003108",
|
|
"0xBFC12CE8": "0x800031E8",
|
|
"0xBFC12F6C": "0x8000346C",
|
|
"0xBFC12FB4": "0x800034B4",
|
|
"0xBFC13070": "0x80003570",
|
|
"0xBFC130AC": "0x800035AC",
|
|
"0xBFC13178": "0x80003678",
|
|
"0xBFC13244": "0x80003744",
|
|
"0xBFC13310": "0x80003810",
|
|
"0xBFC133D8": "0x800038D8",
|
|
"0xBFC134A4": "0x800039A4",
|
|
"0xBFC135AC": "0x80003AAC",
|
|
"0xBFC137E0": "0x80003CE0",
|
|
"0xBFC13980": "0x80003E80",
|
|
"0xBFC13AF0": "0x80003FF0",
|
|
"0xBFC13B24": "0x80004024",
|
|
"0xBFC13B6C": "0x8000406C",
|
|
"0xBFC13C34": "0x80004134",
|
|
"0xBFC13C64": "0x80004164",
|
|
"0xBFC13E04": "0x80004304",
|
|
"0xBFC13E60": "0x80004360",
|
|
"0xBFC13EE8": "0x800043E8",
|
|
"0xBFC13F98": "0x80004498",
|
|
"0xBFC144BC": "0x800049BC",
|
|
"0xBFC145C8": "0x80004AC8",
|
|
"0xBFC14690": "0x80004B90",
|
|
"0xBFC14710": "0x80004C10",
|
|
"0xBFC14770": "0x80004C70",
|
|
"0xBFC147F4": "0x80004CF4",
|
|
"0xBFC14A90": "0x80004F90",
|
|
"0xBFC14B00": "0x80005000",
|
|
"0xBFC14CF4": "0x800051F4",
|
|
"0xBFC158A8": "0x80005DA8",
|
|
"0xBFC15B9C": "0x8000609C",
|
|
"0xBFC16170": "0x80006670",
|
|
"0xBFC18254": "0x80008754",
|
|
"0xBFC18684": "0x80008B84",
|
|
"0xBFC18798": "0x80008C98",
|
|
"0xBFC188F0": "0x80008DF0",
|
|
"0xBFC18990": "0x80008E90"
|
|
}
|
|
} |