mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-28 14:59:48 -04:00
feat(phase-15): T1 — onboard diverse wave-1 (12 overlays); fleet 18/18 byte-identical
- onboarded ov_{SC01_000,SC01_001,SC02_000,SC02_003,SC03_002,SC03_006,
SC04_000,SC04_018,SC04_019,SC05_000,SC06_000,SC07_000} via tools/new_overlay.sh
— spans all 7 SC areas + 2 full duplicate pairs (SC02_000≡003, SC04_018≡019)
- each byte-identical at 100% INCLUDE_ASM (non-4-aligned auto-handled); no
position-lock anomalies — the cross-shape risk is retired before the full onboard
- make check-all = 18/18 passed (main + resident + 4 prior + 12 new)
- config/overlays.mk + 4 report dicts auto-registered (sentinel, idempotent)
- ghidra/ DB churn NOT staged (R23); asm/build/assets/.run gitignored
This commit is contained in:
@@ -0,0 +1 @@
|
||||
9052dc0e4540db6d9c258c5e063e558c31867492 ov_SC01_000
|
||||
@@ -0,0 +1 @@
|
||||
a8e49bc0df30ee5f25cb97d3a68a2524ae5a88bb ov_SC01_001
|
||||
@@ -0,0 +1 @@
|
||||
5ece4bcaca7f8a9119a561d37daa956f576eac52 ov_SC02_000
|
||||
@@ -0,0 +1 @@
|
||||
5ece4bcaca7f8a9119a561d37daa956f576eac52 ov_SC02_003
|
||||
@@ -0,0 +1 @@
|
||||
0000b179c92f1f57856c6f98601ae7a9b8f47570 ov_SC03_002
|
||||
@@ -0,0 +1 @@
|
||||
e0e316af3e34670d6903ef8b2c4676e883ccefc6 ov_SC03_006
|
||||
@@ -0,0 +1 @@
|
||||
ee4ee583849479ac78447ebf2eb4cd279866aa2a ov_SC04_000
|
||||
@@ -0,0 +1 @@
|
||||
fe9b413fc48ba615ccf81cde49d7a1efad481bc9 ov_SC04_018
|
||||
@@ -0,0 +1 @@
|
||||
fe9b413fc48ba615ccf81cde49d7a1efad481bc9 ov_SC04_019
|
||||
@@ -0,0 +1 @@
|
||||
93acb876a4689070be436c47b3ab7f19c9c22c3a ov_SC05_000
|
||||
@@ -0,0 +1 @@
|
||||
da4a26ffffe8759929aa078aac7285738089a1f2 ov_SC06_000
|
||||
@@ -0,0 +1 @@
|
||||
9dbe4241b8e39d8bd262ad742155fa09b864973a ov_SC07_000
|
||||
+253
-1
@@ -8,7 +8,7 @@
|
||||
# recipe): EXE -> the extracted 0.4.dec, VRAM_BASE/TEXT_LO = the shared slot 0x80128158,
|
||||
# nested asm/<ov> + src/<ov> + build/<ov>, per-binary undefined_*_auto + GHIDRA_PROG.
|
||||
# =============================================================================
|
||||
OVERLAY_BINARIES := ov_SC01_077 ov_SC01_005 ov_SC01_006 ov_SC03_001
|
||||
OVERLAY_BINARIES := ov_SC01_077 ov_SC01_005 ov_SC01_006 ov_SC03_001 ov_SC01_000 ov_SC01_001 ov_SC02_000 ov_SC02_003 ov_SC03_002 ov_SC03_006 ov_SC04_000 ov_SC04_018 ov_SC04_019 ov_SC05_000 ov_SC06_000 ov_SC07_000
|
||||
|
||||
# --- ov_SC01_077 (location overlay SC01/FILE_077, vram 0x80128158 — Phase 13 T1) ---
|
||||
# The milestone overlay (load byte-proven, Phase 3 T6b). 731,607 B (0xB29D7) -> end vram
|
||||
@@ -95,3 +95,255 @@ ov_SC03_001_ASM_DIR := asm/ov_SC03_001
|
||||
ov_SC03_001_SRC_DIR := src/ov_SC03_001
|
||||
ov_SC03_001_UNDEF_SYMS := build/ov_SC03_001/undefined_syms_auto.txt
|
||||
ov_SC03_001_UNDEF_FUNCS := build/ov_SC03_001/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC01_000 (location overlay SC01/FILE_000, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC01_000_EXE := extracted/retail/SC01.CD.dir/FILE_000.dir/0.4.dec
|
||||
ov_SC01_000_NAME := ov_SC01_000
|
||||
ov_SC01_000_OUT_DIR := build/ov_SC01_000
|
||||
ov_SC01_000_OUT := $(ov_SC01_000_OUT_DIR)/$(ov_SC01_000_NAME)
|
||||
ov_SC01_000_ELF := $(ov_SC01_000_OUT).elf
|
||||
ov_SC01_000_MAPFILE := $(ov_SC01_000_OUT).map
|
||||
ov_SC01_000_LD_SCRIPT := $(ov_SC01_000_OUT).ld
|
||||
ov_SC01_000_SPLAT_YAML := config/splat.ov_SC01_000.yaml
|
||||
ov_SC01_000_CHECK_SHA := config/check.ov_SC01_000.sha
|
||||
ov_SC01_000_SYMBOLS := config/symbols.ov_SC01_000.txt
|
||||
ov_SC01_000_SIG := .run/sig.ov_SC01_000.jsonl
|
||||
ov_SC01_000_GHIDRA_PROG := ov_SC01_000
|
||||
ov_SC01_000_VRAM_BASE := 0x80128158
|
||||
ov_SC01_000_TEXT_LO := 0x80128158
|
||||
ov_SC01_000_TEXT_HI := 0x801A58E7
|
||||
ov_SC01_000_ASM_DIR := asm/ov_SC01_000
|
||||
ov_SC01_000_SRC_DIR := src/ov_SC01_000
|
||||
ov_SC01_000_UNDEF_SYMS := build/ov_SC01_000/undefined_syms_auto.txt
|
||||
ov_SC01_000_UNDEF_FUNCS := build/ov_SC01_000/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC01_001 (location overlay SC01/FILE_001, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC01_001_EXE := extracted/retail/SC01.CD.dir/FILE_001.dir/0.4.dec
|
||||
ov_SC01_001_NAME := ov_SC01_001
|
||||
ov_SC01_001_OUT_DIR := build/ov_SC01_001
|
||||
ov_SC01_001_OUT := $(ov_SC01_001_OUT_DIR)/$(ov_SC01_001_NAME)
|
||||
ov_SC01_001_ELF := $(ov_SC01_001_OUT).elf
|
||||
ov_SC01_001_MAPFILE := $(ov_SC01_001_OUT).map
|
||||
ov_SC01_001_LD_SCRIPT := $(ov_SC01_001_OUT).ld
|
||||
ov_SC01_001_SPLAT_YAML := config/splat.ov_SC01_001.yaml
|
||||
ov_SC01_001_CHECK_SHA := config/check.ov_SC01_001.sha
|
||||
ov_SC01_001_SYMBOLS := config/symbols.ov_SC01_001.txt
|
||||
ov_SC01_001_SIG := .run/sig.ov_SC01_001.jsonl
|
||||
ov_SC01_001_GHIDRA_PROG := ov_SC01_001
|
||||
ov_SC01_001_VRAM_BASE := 0x80128158
|
||||
ov_SC01_001_TEXT_LO := 0x80128158
|
||||
ov_SC01_001_TEXT_HI := 0x801F31C7
|
||||
ov_SC01_001_ASM_DIR := asm/ov_SC01_001
|
||||
ov_SC01_001_SRC_DIR := src/ov_SC01_001
|
||||
ov_SC01_001_UNDEF_SYMS := build/ov_SC01_001/undefined_syms_auto.txt
|
||||
ov_SC01_001_UNDEF_FUNCS := build/ov_SC01_001/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC02_000 (location overlay SC02/FILE_000, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC02_000_EXE := extracted/retail/SC02.CD.dir/FILE_000.dir/0.4.dec
|
||||
ov_SC02_000_NAME := ov_SC02_000
|
||||
ov_SC02_000_OUT_DIR := build/ov_SC02_000
|
||||
ov_SC02_000_OUT := $(ov_SC02_000_OUT_DIR)/$(ov_SC02_000_NAME)
|
||||
ov_SC02_000_ELF := $(ov_SC02_000_OUT).elf
|
||||
ov_SC02_000_MAPFILE := $(ov_SC02_000_OUT).map
|
||||
ov_SC02_000_LD_SCRIPT := $(ov_SC02_000_OUT).ld
|
||||
ov_SC02_000_SPLAT_YAML := config/splat.ov_SC02_000.yaml
|
||||
ov_SC02_000_CHECK_SHA := config/check.ov_SC02_000.sha
|
||||
ov_SC02_000_SYMBOLS := config/symbols.ov_SC02_000.txt
|
||||
ov_SC02_000_SIG := .run/sig.ov_SC02_000.jsonl
|
||||
ov_SC02_000_GHIDRA_PROG := ov_SC02_000
|
||||
ov_SC02_000_VRAM_BASE := 0x80128158
|
||||
ov_SC02_000_TEXT_LO := 0x80128158
|
||||
ov_SC02_000_TEXT_HI := 0x801E8867
|
||||
ov_SC02_000_ASM_DIR := asm/ov_SC02_000
|
||||
ov_SC02_000_SRC_DIR := src/ov_SC02_000
|
||||
ov_SC02_000_UNDEF_SYMS := build/ov_SC02_000/undefined_syms_auto.txt
|
||||
ov_SC02_000_UNDEF_FUNCS := build/ov_SC02_000/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC02_003 (location overlay SC02/FILE_003, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC02_003_EXE := extracted/retail/SC02.CD.dir/FILE_003.dir/0.4.dec
|
||||
ov_SC02_003_NAME := ov_SC02_003
|
||||
ov_SC02_003_OUT_DIR := build/ov_SC02_003
|
||||
ov_SC02_003_OUT := $(ov_SC02_003_OUT_DIR)/$(ov_SC02_003_NAME)
|
||||
ov_SC02_003_ELF := $(ov_SC02_003_OUT).elf
|
||||
ov_SC02_003_MAPFILE := $(ov_SC02_003_OUT).map
|
||||
ov_SC02_003_LD_SCRIPT := $(ov_SC02_003_OUT).ld
|
||||
ov_SC02_003_SPLAT_YAML := config/splat.ov_SC02_003.yaml
|
||||
ov_SC02_003_CHECK_SHA := config/check.ov_SC02_003.sha
|
||||
ov_SC02_003_SYMBOLS := config/symbols.ov_SC02_003.txt
|
||||
ov_SC02_003_SIG := .run/sig.ov_SC02_003.jsonl
|
||||
ov_SC02_003_GHIDRA_PROG := ov_SC02_003
|
||||
ov_SC02_003_VRAM_BASE := 0x80128158
|
||||
ov_SC02_003_TEXT_LO := 0x80128158
|
||||
ov_SC02_003_TEXT_HI := 0x801E8867
|
||||
ov_SC02_003_ASM_DIR := asm/ov_SC02_003
|
||||
ov_SC02_003_SRC_DIR := src/ov_SC02_003
|
||||
ov_SC02_003_UNDEF_SYMS := build/ov_SC02_003/undefined_syms_auto.txt
|
||||
ov_SC02_003_UNDEF_FUNCS := build/ov_SC02_003/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC03_002 (location overlay SC03/FILE_002, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC03_002_EXE := extracted/retail/SC03.CD.dir/FILE_002.dir/0.4.dec
|
||||
ov_SC03_002_NAME := ov_SC03_002
|
||||
ov_SC03_002_OUT_DIR := build/ov_SC03_002
|
||||
ov_SC03_002_OUT := $(ov_SC03_002_OUT_DIR)/$(ov_SC03_002_NAME)
|
||||
ov_SC03_002_ELF := $(ov_SC03_002_OUT).elf
|
||||
ov_SC03_002_MAPFILE := $(ov_SC03_002_OUT).map
|
||||
ov_SC03_002_LD_SCRIPT := $(ov_SC03_002_OUT).ld
|
||||
ov_SC03_002_SPLAT_YAML := config/splat.ov_SC03_002.yaml
|
||||
ov_SC03_002_CHECK_SHA := config/check.ov_SC03_002.sha
|
||||
ov_SC03_002_SYMBOLS := config/symbols.ov_SC03_002.txt
|
||||
ov_SC03_002_SIG := .run/sig.ov_SC03_002.jsonl
|
||||
ov_SC03_002_GHIDRA_PROG := ov_SC03_002
|
||||
ov_SC03_002_VRAM_BASE := 0x80128158
|
||||
ov_SC03_002_TEXT_LO := 0x80128158
|
||||
ov_SC03_002_TEXT_HI := 0x801CBB4F
|
||||
ov_SC03_002_ASM_DIR := asm/ov_SC03_002
|
||||
ov_SC03_002_SRC_DIR := src/ov_SC03_002
|
||||
ov_SC03_002_UNDEF_SYMS := build/ov_SC03_002/undefined_syms_auto.txt
|
||||
ov_SC03_002_UNDEF_FUNCS := build/ov_SC03_002/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC03_006 (location overlay SC03/FILE_006, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC03_006_EXE := extracted/retail/SC03.CD.dir/FILE_006.dir/0.4.dec
|
||||
ov_SC03_006_NAME := ov_SC03_006
|
||||
ov_SC03_006_OUT_DIR := build/ov_SC03_006
|
||||
ov_SC03_006_OUT := $(ov_SC03_006_OUT_DIR)/$(ov_SC03_006_NAME)
|
||||
ov_SC03_006_ELF := $(ov_SC03_006_OUT).elf
|
||||
ov_SC03_006_MAPFILE := $(ov_SC03_006_OUT).map
|
||||
ov_SC03_006_LD_SCRIPT := $(ov_SC03_006_OUT).ld
|
||||
ov_SC03_006_SPLAT_YAML := config/splat.ov_SC03_006.yaml
|
||||
ov_SC03_006_CHECK_SHA := config/check.ov_SC03_006.sha
|
||||
ov_SC03_006_SYMBOLS := config/symbols.ov_SC03_006.txt
|
||||
ov_SC03_006_SIG := .run/sig.ov_SC03_006.jsonl
|
||||
ov_SC03_006_GHIDRA_PROG := ov_SC03_006
|
||||
ov_SC03_006_VRAM_BASE := 0x80128158
|
||||
ov_SC03_006_TEXT_LO := 0x80128158
|
||||
ov_SC03_006_TEXT_HI := 0x801F78B7
|
||||
ov_SC03_006_ASM_DIR := asm/ov_SC03_006
|
||||
ov_SC03_006_SRC_DIR := src/ov_SC03_006
|
||||
ov_SC03_006_UNDEF_SYMS := build/ov_SC03_006/undefined_syms_auto.txt
|
||||
ov_SC03_006_UNDEF_FUNCS := build/ov_SC03_006/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC04_000 (location overlay SC04/FILE_000, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC04_000_EXE := extracted/retail/SC04.CD.dir/FILE_000.dir/0.4.dec
|
||||
ov_SC04_000_NAME := ov_SC04_000
|
||||
ov_SC04_000_OUT_DIR := build/ov_SC04_000
|
||||
ov_SC04_000_OUT := $(ov_SC04_000_OUT_DIR)/$(ov_SC04_000_NAME)
|
||||
ov_SC04_000_ELF := $(ov_SC04_000_OUT).elf
|
||||
ov_SC04_000_MAPFILE := $(ov_SC04_000_OUT).map
|
||||
ov_SC04_000_LD_SCRIPT := $(ov_SC04_000_OUT).ld
|
||||
ov_SC04_000_SPLAT_YAML := config/splat.ov_SC04_000.yaml
|
||||
ov_SC04_000_CHECK_SHA := config/check.ov_SC04_000.sha
|
||||
ov_SC04_000_SYMBOLS := config/symbols.ov_SC04_000.txt
|
||||
ov_SC04_000_SIG := .run/sig.ov_SC04_000.jsonl
|
||||
ov_SC04_000_GHIDRA_PROG := ov_SC04_000
|
||||
ov_SC04_000_VRAM_BASE := 0x80128158
|
||||
ov_SC04_000_TEXT_LO := 0x80128158
|
||||
ov_SC04_000_TEXT_HI := 0x801AB057
|
||||
ov_SC04_000_ASM_DIR := asm/ov_SC04_000
|
||||
ov_SC04_000_SRC_DIR := src/ov_SC04_000
|
||||
ov_SC04_000_UNDEF_SYMS := build/ov_SC04_000/undefined_syms_auto.txt
|
||||
ov_SC04_000_UNDEF_FUNCS := build/ov_SC04_000/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC04_018 (location overlay SC04/FILE_018, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC04_018_EXE := extracted/retail/SC04.CD.dir/FILE_018.dir/0.4.dec
|
||||
ov_SC04_018_NAME := ov_SC04_018
|
||||
ov_SC04_018_OUT_DIR := build/ov_SC04_018
|
||||
ov_SC04_018_OUT := $(ov_SC04_018_OUT_DIR)/$(ov_SC04_018_NAME)
|
||||
ov_SC04_018_ELF := $(ov_SC04_018_OUT).elf
|
||||
ov_SC04_018_MAPFILE := $(ov_SC04_018_OUT).map
|
||||
ov_SC04_018_LD_SCRIPT := $(ov_SC04_018_OUT).ld
|
||||
ov_SC04_018_SPLAT_YAML := config/splat.ov_SC04_018.yaml
|
||||
ov_SC04_018_CHECK_SHA := config/check.ov_SC04_018.sha
|
||||
ov_SC04_018_SYMBOLS := config/symbols.ov_SC04_018.txt
|
||||
ov_SC04_018_SIG := .run/sig.ov_SC04_018.jsonl
|
||||
ov_SC04_018_GHIDRA_PROG := ov_SC04_018
|
||||
ov_SC04_018_VRAM_BASE := 0x80128158
|
||||
ov_SC04_018_TEXT_LO := 0x80128158
|
||||
ov_SC04_018_TEXT_HI := 0x801E7B27
|
||||
ov_SC04_018_ASM_DIR := asm/ov_SC04_018
|
||||
ov_SC04_018_SRC_DIR := src/ov_SC04_018
|
||||
ov_SC04_018_UNDEF_SYMS := build/ov_SC04_018/undefined_syms_auto.txt
|
||||
ov_SC04_018_UNDEF_FUNCS := build/ov_SC04_018/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC04_019 (location overlay SC04/FILE_019, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC04_019_EXE := extracted/retail/SC04.CD.dir/FILE_019.dir/0.4.dec
|
||||
ov_SC04_019_NAME := ov_SC04_019
|
||||
ov_SC04_019_OUT_DIR := build/ov_SC04_019
|
||||
ov_SC04_019_OUT := $(ov_SC04_019_OUT_DIR)/$(ov_SC04_019_NAME)
|
||||
ov_SC04_019_ELF := $(ov_SC04_019_OUT).elf
|
||||
ov_SC04_019_MAPFILE := $(ov_SC04_019_OUT).map
|
||||
ov_SC04_019_LD_SCRIPT := $(ov_SC04_019_OUT).ld
|
||||
ov_SC04_019_SPLAT_YAML := config/splat.ov_SC04_019.yaml
|
||||
ov_SC04_019_CHECK_SHA := config/check.ov_SC04_019.sha
|
||||
ov_SC04_019_SYMBOLS := config/symbols.ov_SC04_019.txt
|
||||
ov_SC04_019_SIG := .run/sig.ov_SC04_019.jsonl
|
||||
ov_SC04_019_GHIDRA_PROG := ov_SC04_019
|
||||
ov_SC04_019_VRAM_BASE := 0x80128158
|
||||
ov_SC04_019_TEXT_LO := 0x80128158
|
||||
ov_SC04_019_TEXT_HI := 0x801E7B27
|
||||
ov_SC04_019_ASM_DIR := asm/ov_SC04_019
|
||||
ov_SC04_019_SRC_DIR := src/ov_SC04_019
|
||||
ov_SC04_019_UNDEF_SYMS := build/ov_SC04_019/undefined_syms_auto.txt
|
||||
ov_SC04_019_UNDEF_FUNCS := build/ov_SC04_019/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC05_000 (location overlay SC05/FILE_000, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC05_000_EXE := extracted/retail/SC05.CD.dir/FILE_000.dir/0.4.dec
|
||||
ov_SC05_000_NAME := ov_SC05_000
|
||||
ov_SC05_000_OUT_DIR := build/ov_SC05_000
|
||||
ov_SC05_000_OUT := $(ov_SC05_000_OUT_DIR)/$(ov_SC05_000_NAME)
|
||||
ov_SC05_000_ELF := $(ov_SC05_000_OUT).elf
|
||||
ov_SC05_000_MAPFILE := $(ov_SC05_000_OUT).map
|
||||
ov_SC05_000_LD_SCRIPT := $(ov_SC05_000_OUT).ld
|
||||
ov_SC05_000_SPLAT_YAML := config/splat.ov_SC05_000.yaml
|
||||
ov_SC05_000_CHECK_SHA := config/check.ov_SC05_000.sha
|
||||
ov_SC05_000_SYMBOLS := config/symbols.ov_SC05_000.txt
|
||||
ov_SC05_000_SIG := .run/sig.ov_SC05_000.jsonl
|
||||
ov_SC05_000_GHIDRA_PROG := ov_SC05_000
|
||||
ov_SC05_000_VRAM_BASE := 0x80128158
|
||||
ov_SC05_000_TEXT_LO := 0x80128158
|
||||
ov_SC05_000_TEXT_HI := 0x8019AC57
|
||||
ov_SC05_000_ASM_DIR := asm/ov_SC05_000
|
||||
ov_SC05_000_SRC_DIR := src/ov_SC05_000
|
||||
ov_SC05_000_UNDEF_SYMS := build/ov_SC05_000/undefined_syms_auto.txt
|
||||
ov_SC05_000_UNDEF_FUNCS := build/ov_SC05_000/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC06_000 (location overlay SC06/FILE_000, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC06_000_EXE := extracted/retail/SC06.CD.dir/FILE_000.dir/0.4.dec
|
||||
ov_SC06_000_NAME := ov_SC06_000
|
||||
ov_SC06_000_OUT_DIR := build/ov_SC06_000
|
||||
ov_SC06_000_OUT := $(ov_SC06_000_OUT_DIR)/$(ov_SC06_000_NAME)
|
||||
ov_SC06_000_ELF := $(ov_SC06_000_OUT).elf
|
||||
ov_SC06_000_MAPFILE := $(ov_SC06_000_OUT).map
|
||||
ov_SC06_000_LD_SCRIPT := $(ov_SC06_000_OUT).ld
|
||||
ov_SC06_000_SPLAT_YAML := config/splat.ov_SC06_000.yaml
|
||||
ov_SC06_000_CHECK_SHA := config/check.ov_SC06_000.sha
|
||||
ov_SC06_000_SYMBOLS := config/symbols.ov_SC06_000.txt
|
||||
ov_SC06_000_SIG := .run/sig.ov_SC06_000.jsonl
|
||||
ov_SC06_000_GHIDRA_PROG := ov_SC06_000
|
||||
ov_SC06_000_VRAM_BASE := 0x80128158
|
||||
ov_SC06_000_TEXT_LO := 0x80128158
|
||||
ov_SC06_000_TEXT_HI := 0x801B2187
|
||||
ov_SC06_000_ASM_DIR := asm/ov_SC06_000
|
||||
ov_SC06_000_SRC_DIR := src/ov_SC06_000
|
||||
ov_SC06_000_UNDEF_SYMS := build/ov_SC06_000/undefined_syms_auto.txt
|
||||
ov_SC06_000_UNDEF_FUNCS := build/ov_SC06_000/undefined_funcs_auto.txt
|
||||
|
||||
# --- ov_SC07_000 (location overlay SC07/FILE_000, vram 0x80128158 — onboarded by new_overlay.sh) ---
|
||||
ov_SC07_000_EXE := extracted/retail/SC07.CD.dir/FILE_000.dir/0.4.dec
|
||||
ov_SC07_000_NAME := ov_SC07_000
|
||||
ov_SC07_000_OUT_DIR := build/ov_SC07_000
|
||||
ov_SC07_000_OUT := $(ov_SC07_000_OUT_DIR)/$(ov_SC07_000_NAME)
|
||||
ov_SC07_000_ELF := $(ov_SC07_000_OUT).elf
|
||||
ov_SC07_000_MAPFILE := $(ov_SC07_000_OUT).map
|
||||
ov_SC07_000_LD_SCRIPT := $(ov_SC07_000_OUT).ld
|
||||
ov_SC07_000_SPLAT_YAML := config/splat.ov_SC07_000.yaml
|
||||
ov_SC07_000_CHECK_SHA := config/check.ov_SC07_000.sha
|
||||
ov_SC07_000_SYMBOLS := config/symbols.ov_SC07_000.txt
|
||||
ov_SC07_000_SIG := .run/sig.ov_SC07_000.jsonl
|
||||
ov_SC07_000_GHIDRA_PROG := ov_SC07_000
|
||||
ov_SC07_000_VRAM_BASE := 0x80128158
|
||||
ov_SC07_000_TEXT_LO := 0x80128158
|
||||
ov_SC07_000_TEXT_HI := 0x801D0CE7
|
||||
ov_SC07_000_ASM_DIR := asm/ov_SC07_000
|
||||
ov_SC07_000_SRC_DIR := src/ov_SC07_000
|
||||
ov_SC07_000_UNDEF_SYMS := build/ov_SC07_000/undefined_syms_auto.txt
|
||||
ov_SC07_000_UNDEF_FUNCS := build/ov_SC07_000/undefined_funcs_auto.txt
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC01_000 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC01.CD.dir/FILE_000.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# 9052dc0e4540db6d9c258c5e063e558c31867492 sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x56A64 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0x7D78F file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x56A64 against `make check BINARY=ov_SC01_000` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC01_000
|
||||
sha1: 9052dc0e4540db6d9c258c5e063e558c31867492
|
||||
options:
|
||||
basename: ov_SC01_000
|
||||
target_path: extracted/retail/SC01.CD.dir/FILE_000.dir/0.4.dec
|
||||
elf_path: build/ov_SC01_000/ov_SC01_000.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC01_000
|
||||
src_path: src/ov_SC01_000
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC01_000/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC01_000
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC01_000/ov_SC01_000.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC01_000/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC01_000/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC01_000.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC01_000
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC01_000] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x56A64, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0x7D78C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0x7D78F] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC01_001 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC01.CD.dir/FILE_001.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# a8e49bc0df30ee5f25cb97d3a68a2524ae5a88bb sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x5B6B4 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0xCB06F file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x5B6B4 against `make check BINARY=ov_SC01_001` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC01_001
|
||||
sha1: a8e49bc0df30ee5f25cb97d3a68a2524ae5a88bb
|
||||
options:
|
||||
basename: ov_SC01_001
|
||||
target_path: extracted/retail/SC01.CD.dir/FILE_001.dir/0.4.dec
|
||||
elf_path: build/ov_SC01_001/ov_SC01_001.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC01_001
|
||||
src_path: src/ov_SC01_001
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC01_001/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC01_001
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC01_001/ov_SC01_001.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC01_001/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC01_001/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC01_001.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC01_001
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC01_001] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x5B6B4, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0xCB06C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0xCB06F] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC02_000 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC02.CD.dir/FILE_000.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# 5ece4bcaca7f8a9119a561d37daa956f576eac52 sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x62A58 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0xC070F file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x62A58 against `make check BINARY=ov_SC02_000` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC02_000
|
||||
sha1: 5ece4bcaca7f8a9119a561d37daa956f576eac52
|
||||
options:
|
||||
basename: ov_SC02_000
|
||||
target_path: extracted/retail/SC02.CD.dir/FILE_000.dir/0.4.dec
|
||||
elf_path: build/ov_SC02_000/ov_SC02_000.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC02_000
|
||||
src_path: src/ov_SC02_000
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC02_000/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC02_000
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC02_000/ov_SC02_000.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC02_000/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC02_000/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC02_000.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC02_000
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC02_000] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x62A58, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0xC070C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0xC070F] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC02_003 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC02.CD.dir/FILE_003.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# 5ece4bcaca7f8a9119a561d37daa956f576eac52 sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x62A58 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0xC070F file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x62A58 against `make check BINARY=ov_SC02_003` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC02_003
|
||||
sha1: 5ece4bcaca7f8a9119a561d37daa956f576eac52
|
||||
options:
|
||||
basename: ov_SC02_003
|
||||
target_path: extracted/retail/SC02.CD.dir/FILE_003.dir/0.4.dec
|
||||
elf_path: build/ov_SC02_003/ov_SC02_003.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC02_003
|
||||
src_path: src/ov_SC02_003
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC02_003/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC02_003
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC02_003/ov_SC02_003.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC02_003/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC02_003/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC02_003.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC02_003
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC02_003] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x62A58, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0xC070C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0xC070F] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC03_002 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC03.CD.dir/FILE_002.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# 0000b179c92f1f57856c6f98601ae7a9b8f47570 sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x5D358 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0xA39F7 file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x5D358 against `make check BINARY=ov_SC03_002` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC03_002
|
||||
sha1: 0000b179c92f1f57856c6f98601ae7a9b8f47570
|
||||
options:
|
||||
basename: ov_SC03_002
|
||||
target_path: extracted/retail/SC03.CD.dir/FILE_002.dir/0.4.dec
|
||||
elf_path: build/ov_SC03_002/ov_SC03_002.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC03_002
|
||||
src_path: src/ov_SC03_002
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC03_002/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC03_002
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC03_002/ov_SC03_002.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC03_002/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC03_002/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC03_002.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC03_002
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC03_002] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x5D358, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0xA39F4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0xA39F7] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC03_006 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC03.CD.dir/FILE_006.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# e0e316af3e34670d6903ef8b2c4676e883ccefc6 sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x6443C file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0xCF75F file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x6443C against `make check BINARY=ov_SC03_006` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC03_006
|
||||
sha1: e0e316af3e34670d6903ef8b2c4676e883ccefc6
|
||||
options:
|
||||
basename: ov_SC03_006
|
||||
target_path: extracted/retail/SC03.CD.dir/FILE_006.dir/0.4.dec
|
||||
elf_path: build/ov_SC03_006/ov_SC03_006.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC03_006
|
||||
src_path: src/ov_SC03_006
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC03_006/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC03_006
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC03_006/ov_SC03_006.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC03_006/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC03_006/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC03_006.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC03_006
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC03_006] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x6443C, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0xCF75C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0xCF75F] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC04_000 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC04.CD.dir/FILE_000.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# ee4ee583849479ac78447ebf2eb4cd279866aa2a sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x5B0E0 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0x82EFF file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x5B0E0 against `make check BINARY=ov_SC04_000` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC04_000
|
||||
sha1: ee4ee583849479ac78447ebf2eb4cd279866aa2a
|
||||
options:
|
||||
basename: ov_SC04_000
|
||||
target_path: extracted/retail/SC04.CD.dir/FILE_000.dir/0.4.dec
|
||||
elf_path: build/ov_SC04_000/ov_SC04_000.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC04_000
|
||||
src_path: src/ov_SC04_000
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC04_000/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC04_000
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC04_000/ov_SC04_000.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC04_000/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC04_000/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC04_000.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC04_000
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC04_000] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x5B0E0, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0x82EFC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0x82EFF] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC04_018 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC04.CD.dir/FILE_018.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# fe9b413fc48ba615ccf81cde49d7a1efad481bc9 sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x64DD0 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0xBF9CF file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x64DD0 against `make check BINARY=ov_SC04_018` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC04_018
|
||||
sha1: fe9b413fc48ba615ccf81cde49d7a1efad481bc9
|
||||
options:
|
||||
basename: ov_SC04_018
|
||||
target_path: extracted/retail/SC04.CD.dir/FILE_018.dir/0.4.dec
|
||||
elf_path: build/ov_SC04_018/ov_SC04_018.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC04_018
|
||||
src_path: src/ov_SC04_018
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC04_018/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC04_018
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC04_018/ov_SC04_018.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC04_018/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC04_018/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC04_018.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC04_018
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC04_018] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x64DD0, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0xBF9CC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0xBF9CF] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC04_019 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC04.CD.dir/FILE_019.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# fe9b413fc48ba615ccf81cde49d7a1efad481bc9 sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x64DD0 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0xBF9CF file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x64DD0 against `make check BINARY=ov_SC04_019` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC04_019
|
||||
sha1: fe9b413fc48ba615ccf81cde49d7a1efad481bc9
|
||||
options:
|
||||
basename: ov_SC04_019
|
||||
target_path: extracted/retail/SC04.CD.dir/FILE_019.dir/0.4.dec
|
||||
elf_path: build/ov_SC04_019/ov_SC04_019.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC04_019
|
||||
src_path: src/ov_SC04_019
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC04_019/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC04_019
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC04_019/ov_SC04_019.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC04_019/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC04_019/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC04_019.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC04_019
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC04_019] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x64DD0, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0xBF9CC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0xBF9CF] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC05_000 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC05.CD.dir/FILE_000.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# 93acb876a4689070be436c47b3ab7f19c9c22c3a sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x560E8 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0x72AFF file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x560E8 against `make check BINARY=ov_SC05_000` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC05_000
|
||||
sha1: 93acb876a4689070be436c47b3ab7f19c9c22c3a
|
||||
options:
|
||||
basename: ov_SC05_000
|
||||
target_path: extracted/retail/SC05.CD.dir/FILE_000.dir/0.4.dec
|
||||
elf_path: build/ov_SC05_000/ov_SC05_000.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC05_000
|
||||
src_path: src/ov_SC05_000
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC05_000/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC05_000
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC05_000/ov_SC05_000.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC05_000/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC05_000/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC05_000.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC05_000
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC05_000] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x560E8, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0x72AFC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0x72AFF] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC06_000 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC06.CD.dir/FILE_000.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# da4a26ffffe8759929aa078aac7285738089a1f2 sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x600E4 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0x8A02F file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x600E4 against `make check BINARY=ov_SC06_000` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC06_000
|
||||
sha1: da4a26ffffe8759929aa078aac7285738089a1f2
|
||||
options:
|
||||
basename: ov_SC06_000
|
||||
target_path: extracted/retail/SC06.CD.dir/FILE_000.dir/0.4.dec
|
||||
elf_path: build/ov_SC06_000/ov_SC06_000.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC06_000
|
||||
src_path: src/ov_SC06_000
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC06_000/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC06_000
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC06_000/ov_SC06_000.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC06_000/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC06_000/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC06_000.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC06_000
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC06_000] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x600E4, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0x8A02C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0x8A02F] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,103 @@
|
||||
# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec)
|
||||
# =============================================================================
|
||||
# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays
|
||||
# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine
|
||||
# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to
|
||||
# produce config/splat.<alias>.yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand
|
||||
# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated.
|
||||
#
|
||||
# Placeholders:
|
||||
# ov_SC07_000 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
|
||||
# extracted/retail/SC07.CD.dir/FILE_000.dir/0.4.dec extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
|
||||
# 9dbe4241b8e39d8bd262ad742155fa09b864973a sha1 of the 0.4.dec (the build-identity target; also -> config/check.<alias>.sha)
|
||||
# 0x80128158 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today;
|
||||
# parameterized so a future non-0x80128158 overlay needs no template edit)
|
||||
# 0x5A4D8 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
|
||||
# 0xA8B8F file size in bytes (the EOF marker; = the 0.4.dec length)
|
||||
#
|
||||
# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays'
|
||||
# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a
|
||||
# leading data word like the resident — so NO leading-rodata trick by default; see the
|
||||
# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO
|
||||
# stacks config/symbols.resident.txt because overlays reference resident engine globals;
|
||||
# (3) vram is the overlay slot. Everything else matches the resident options verbatim.
|
||||
#
|
||||
# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the
|
||||
# resident precedent); iterate 0x5A4D8 against `make check BINARY=ov_SC07_000` (Phase-5/10
|
||||
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
|
||||
name: ov_SC07_000
|
||||
sha1: 9dbe4241b8e39d8bd262ad742155fa09b864973a
|
||||
options:
|
||||
basename: ov_SC07_000
|
||||
target_path: extracted/retail/SC07.CD.dir/FILE_000.dir/0.4.dec
|
||||
elf_path: build/ov_SC07_000/ov_SC07_000.elf
|
||||
# base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root
|
||||
base_path: ..
|
||||
platform: psx
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC07_000
|
||||
src_path: src/ov_SC07_000
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC07_000/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
asset_path: assets/ov_SC07_000
|
||||
# build_path = build (NOT build/<alias>): splat writes the .ld's object paths under
|
||||
# $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**.
|
||||
# Only the elf/ld/output live in build/<alias>/.
|
||||
build_path: build
|
||||
ld_script_path: build/ov_SC07_000/ov_SC07_000.ld
|
||||
ld_dependencies: True
|
||||
|
||||
# Per-binary undefined-symbol outputs (under build/<alias>/), so `make clean`'s `rm -rf build`
|
||||
# covers them and binaries never share a stale file.
|
||||
undefined_syms_auto_path: build/ov_SC07_000/undefined_syms_auto.txt
|
||||
undefined_funcs_auto_path: build/ov_SC07_000/undefined_funcs_auto.txt
|
||||
|
||||
find_file_boundaries: False
|
||||
# NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp.
|
||||
|
||||
o_as_suffix: True
|
||||
use_legacy_include_asm: False
|
||||
|
||||
section_order: [".rodata", ".text", ".data", ".bss"]
|
||||
|
||||
# Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay
|
||||
# calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols.<alias>.txt, seeded
|
||||
# T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only).
|
||||
symbol_addrs_path:
|
||||
- config/symbols.us.txt
|
||||
- config/symbols.resident.txt
|
||||
- config/symbols.ov_SC07_000.txt
|
||||
|
||||
subalign: 2
|
||||
|
||||
string_encoding: ASCII
|
||||
data_string_encoding: ASCII
|
||||
rodata_string_guesser_level: 2
|
||||
data_string_guesser_level: 2
|
||||
|
||||
# Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident):
|
||||
# include_asm_macro_style: maspsx_hack
|
||||
|
||||
segments:
|
||||
- name: ov_SC07_000
|
||||
type: code
|
||||
start: 0x0
|
||||
vram: 0x80128158
|
||||
# align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice.
|
||||
align: 4
|
||||
subsegments:
|
||||
# OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data
|
||||
# word BEFORE its first function (the resident's case), uncomment a `head` subseg here and
|
||||
# shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at
|
||||
# 0x80128158 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave).
|
||||
# - [0x0, rodata, head]
|
||||
- [0x0, c, ov_SC07_000] # code: starts at file 0x0 (overlays open with a prologue)
|
||||
- [0x5A4D8, data, tail] # data tail: pointer tables + packed data (split iterated)
|
||||
- [0xA8B8C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0xA8B8F] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
# ` - [0x<word_floor>, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops);
|
||||
# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the
|
||||
# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve.
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC01_000.txt — overlay SC01/FILE_000 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801A58E7); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC01_001.txt — overlay SC01/FILE_001 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801F31C7); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC02_000.txt — overlay SC02/FILE_000 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801E8867); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC02_003.txt — overlay SC02/FILE_003 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801E8867); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC03_002.txt — overlay SC03/FILE_002 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801CBB4F); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC03_006.txt — overlay SC03/FILE_006 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801F78B7); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC04_000.txt — overlay SC04/FILE_000 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801AB057); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC04_018.txt — overlay SC04/FILE_018 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801E7B27); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC04_019.txt — overlay SC04/FILE_019 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801E7B27); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC05_000.txt — overlay SC05/FILE_000 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x8019AC57); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC06_000.txt — overlay SC06/FILE_000 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801B2187); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -0,0 +1,3 @@
|
||||
// config/symbols.ov_SC07_000.txt — overlay SC07/FILE_000 local symbols (Phase 13+)
|
||||
// R13/R15: overlay-REGION ONLY (vram 0x80128158..0x801D0CE7); NEVER merged into config/symbols.us.txt.
|
||||
// count=0
|
||||
@@ -32,6 +32,42 @@ BINARIES = {
|
||||
"ov_SC03_001": dict(baseimg="expected/build/ov_SC03_001/ov_SC03_001.elf",
|
||||
myimg="build/ov_SC03_001/ov_SC03_001.elf",
|
||||
mapfile="build/ov_SC03_001/ov_SC03_001.map"),
|
||||
"ov_SC01_000": dict(baseimg="expected/build/ov_SC01_000/ov_SC01_000.elf",
|
||||
myimg="build/ov_SC01_000/ov_SC01_000.elf",
|
||||
mapfile="build/ov_SC01_000/ov_SC01_000.map"),
|
||||
"ov_SC01_001": dict(baseimg="expected/build/ov_SC01_001/ov_SC01_001.elf",
|
||||
myimg="build/ov_SC01_001/ov_SC01_001.elf",
|
||||
mapfile="build/ov_SC01_001/ov_SC01_001.map"),
|
||||
"ov_SC02_000": dict(baseimg="expected/build/ov_SC02_000/ov_SC02_000.elf",
|
||||
myimg="build/ov_SC02_000/ov_SC02_000.elf",
|
||||
mapfile="build/ov_SC02_000/ov_SC02_000.map"),
|
||||
"ov_SC02_003": dict(baseimg="expected/build/ov_SC02_003/ov_SC02_003.elf",
|
||||
myimg="build/ov_SC02_003/ov_SC02_003.elf",
|
||||
mapfile="build/ov_SC02_003/ov_SC02_003.map"),
|
||||
"ov_SC03_002": dict(baseimg="expected/build/ov_SC03_002/ov_SC03_002.elf",
|
||||
myimg="build/ov_SC03_002/ov_SC03_002.elf",
|
||||
mapfile="build/ov_SC03_002/ov_SC03_002.map"),
|
||||
"ov_SC03_006": dict(baseimg="expected/build/ov_SC03_006/ov_SC03_006.elf",
|
||||
myimg="build/ov_SC03_006/ov_SC03_006.elf",
|
||||
mapfile="build/ov_SC03_006/ov_SC03_006.map"),
|
||||
"ov_SC04_000": dict(baseimg="expected/build/ov_SC04_000/ov_SC04_000.elf",
|
||||
myimg="build/ov_SC04_000/ov_SC04_000.elf",
|
||||
mapfile="build/ov_SC04_000/ov_SC04_000.map"),
|
||||
"ov_SC04_018": dict(baseimg="expected/build/ov_SC04_018/ov_SC04_018.elf",
|
||||
myimg="build/ov_SC04_018/ov_SC04_018.elf",
|
||||
mapfile="build/ov_SC04_018/ov_SC04_018.map"),
|
||||
"ov_SC04_019": dict(baseimg="expected/build/ov_SC04_019/ov_SC04_019.elf",
|
||||
myimg="build/ov_SC04_019/ov_SC04_019.elf",
|
||||
mapfile="build/ov_SC04_019/ov_SC04_019.map"),
|
||||
"ov_SC05_000": dict(baseimg="expected/build/ov_SC05_000/ov_SC05_000.elf",
|
||||
myimg="build/ov_SC05_000/ov_SC05_000.elf",
|
||||
mapfile="build/ov_SC05_000/ov_SC05_000.map"),
|
||||
"ov_SC06_000": dict(baseimg="expected/build/ov_SC06_000/ov_SC06_000.elf",
|
||||
myimg="build/ov_SC06_000/ov_SC06_000.elf",
|
||||
mapfile="build/ov_SC06_000/ov_SC06_000.map"),
|
||||
"ov_SC07_000": dict(baseimg="expected/build/ov_SC07_000/ov_SC07_000.elf",
|
||||
myimg="build/ov_SC07_000/ov_SC07_000.elf",
|
||||
mapfile="build/ov_SC07_000/ov_SC07_000.map"),
|
||||
# <<< overlays: tools/new_overlay.sh inserts ov_* entries above this line (Phase 13) >>>
|
||||
}
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ Overlays are position-locked at vram 0x80128158 and share an enormous engine cor
|
||||
- Top cross groups: ex0=770 ins @0x80144b9c ×134; ex1=476 @0x80141ca4; ex3=41 ins ×1104 — mostly unmatched even in 077.
|
||||
|
||||
## Tasks (harness IDs in brackets; one at a time, P4)
|
||||
- [ ] **T0 [#1] — IN PROGRESS** — record Phase-14 deferral in `docs/gen2-roadmap.md`.
|
||||
- [ ] T1 [#2] — onboard diverse wave-1 (~12 overlays); `check-all` green.
|
||||
- [ ] T2 [#3] — build `tools/dedup_propagate.py` + `src/shared/engine_core.h`; prove on the wave (Tier 1 / Max).
|
||||
- [x] **T0 [#1] — DONE** (commit commit:0101) — Phase-14 deferral recorded in `docs/gen2-roadmap.md`.
|
||||
- [x] **T1 [#2] — DONE** — onboarded diverse wave-1 (12 overlays, all 7 SC areas + 2 dup pairs); `check-all` **18/18 byte-identical**, 0 anomalies.
|
||||
- [ ] **T2 [#3] — IN PROGRESS** — build `tools/dedup_propagate.py` + `src/shared/engine_core.h`; prove on the wave (Tier 1 / Max).
|
||||
- [ ] T3 [#4] — onboard remaining ~118 overlays (full fleet); 136/136 `check-all` from clean (R22).
|
||||
- [ ] T4 [#5] — `progress.py --fleet` → `docs/progress.fleet.md`; wire into `make report`. **(P6 rules check after T4.)**
|
||||
- [ ] T5 [#6] — Ultracode shared-core harvest Tier-1 (small/high-count) + propagate fleet-wide. **(R27 toggle prompt.)**
|
||||
@@ -35,3 +35,5 @@ Overlays are position-locked at vram 0x80128158 and share an enormous engine cor
|
||||
|
||||
## Log
|
||||
- 2026-06-16 — Session start: read load order (PROJECT_CONTEXT + all 14 PhaseEnds, no prior CURRENT_PHASE). Drew: skip Phase 14, do Phase 15, Max effort, plan mode. Verified ground truth (overlay count, dup pairs, cross-report, per-overlay counts) directly, correcting several sub-agent overclaims (R14). Plan approved (gate 1). Task list created (R28). Starting T0.
|
||||
- 2026-06-16 — **T0 done** (commit:0101): Phase-14 deferral propagated through gen2-roadmap (additive, H5).
|
||||
- 2026-06-16 — **T1 done**: onboarded wave-1 = ov_{SC01_000, SC01_001, SC02_000, SC02_003, SC03_002, SC03_006, SC04_000, SC04_018, SC04_019, SC05_000, SC06_000, SC07_000} (all byte-identical at 100% INCLUDE_ASM in ~50s; dup pairs SC02_000≡003=5ece4bca, SC04_018≡019=fe9b413f). Fleet `make check-all` = **18/18 passed**. Position-lock risk retired across all 7 areas — no anomalies. Next: T2 (dedup_propagate.py).
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -26,6 +26,30 @@ BINARIES = {
|
||||
md="docs/difficulty.ov_SC01_006.md", csv=".run/difficulty.ov_SC01_006.csv"),
|
||||
"ov_SC03_001": dict(src="src/ov_SC03_001", asm="asm/ov_SC03_001/nonmatchings",
|
||||
md="docs/difficulty.ov_SC03_001.md", csv=".run/difficulty.ov_SC03_001.csv"),
|
||||
"ov_SC01_000": dict(src="src/ov_SC01_000", asm="asm/ov_SC01_000/nonmatchings",
|
||||
md="docs/difficulty.ov_SC01_000.md", csv=".run/difficulty.ov_SC01_000.csv"),
|
||||
"ov_SC01_001": dict(src="src/ov_SC01_001", asm="asm/ov_SC01_001/nonmatchings",
|
||||
md="docs/difficulty.ov_SC01_001.md", csv=".run/difficulty.ov_SC01_001.csv"),
|
||||
"ov_SC02_000": dict(src="src/ov_SC02_000", asm="asm/ov_SC02_000/nonmatchings",
|
||||
md="docs/difficulty.ov_SC02_000.md", csv=".run/difficulty.ov_SC02_000.csv"),
|
||||
"ov_SC02_003": dict(src="src/ov_SC02_003", asm="asm/ov_SC02_003/nonmatchings",
|
||||
md="docs/difficulty.ov_SC02_003.md", csv=".run/difficulty.ov_SC02_003.csv"),
|
||||
"ov_SC03_002": dict(src="src/ov_SC03_002", asm="asm/ov_SC03_002/nonmatchings",
|
||||
md="docs/difficulty.ov_SC03_002.md", csv=".run/difficulty.ov_SC03_002.csv"),
|
||||
"ov_SC03_006": dict(src="src/ov_SC03_006", asm="asm/ov_SC03_006/nonmatchings",
|
||||
md="docs/difficulty.ov_SC03_006.md", csv=".run/difficulty.ov_SC03_006.csv"),
|
||||
"ov_SC04_000": dict(src="src/ov_SC04_000", asm="asm/ov_SC04_000/nonmatchings",
|
||||
md="docs/difficulty.ov_SC04_000.md", csv=".run/difficulty.ov_SC04_000.csv"),
|
||||
"ov_SC04_018": dict(src="src/ov_SC04_018", asm="asm/ov_SC04_018/nonmatchings",
|
||||
md="docs/difficulty.ov_SC04_018.md", csv=".run/difficulty.ov_SC04_018.csv"),
|
||||
"ov_SC04_019": dict(src="src/ov_SC04_019", asm="asm/ov_SC04_019/nonmatchings",
|
||||
md="docs/difficulty.ov_SC04_019.md", csv=".run/difficulty.ov_SC04_019.csv"),
|
||||
"ov_SC05_000": dict(src="src/ov_SC05_000", asm="asm/ov_SC05_000/nonmatchings",
|
||||
md="docs/difficulty.ov_SC05_000.md", csv=".run/difficulty.ov_SC05_000.csv"),
|
||||
"ov_SC06_000": dict(src="src/ov_SC06_000", asm="asm/ov_SC06_000/nonmatchings",
|
||||
md="docs/difficulty.ov_SC06_000.md", csv=".run/difficulty.ov_SC06_000.csv"),
|
||||
"ov_SC07_000": dict(src="src/ov_SC07_000", asm="asm/ov_SC07_000/nonmatchings",
|
||||
md="docs/difficulty.ov_SC07_000.md", csv=".run/difficulty.ov_SC07_000.csv"),
|
||||
# <<< overlays: tools/new_overlay.sh inserts ov_* entries above this line (Phase 13) >>>
|
||||
}
|
||||
SRCS = ASM_ROOT = MD = CSV = None # set by main() from --binary
|
||||
|
||||
@@ -30,6 +30,18 @@ BINARIES = {
|
||||
"ov_SC01_005": dict(sig=".run/sig.ov_SC01_005.jsonl", md="docs/duplicates.ov_SC01_005.md"),
|
||||
"ov_SC01_006": dict(sig=".run/sig.ov_SC01_006.jsonl", md="docs/duplicates.ov_SC01_006.md"),
|
||||
"ov_SC03_001": dict(sig=".run/sig.ov_SC03_001.jsonl", md="docs/duplicates.ov_SC03_001.md"),
|
||||
"ov_SC01_000": dict(sig=".run/sig.ov_SC01_000.jsonl", md="docs/duplicates.ov_SC01_000.md"),
|
||||
"ov_SC01_001": dict(sig=".run/sig.ov_SC01_001.jsonl", md="docs/duplicates.ov_SC01_001.md"),
|
||||
"ov_SC02_000": dict(sig=".run/sig.ov_SC02_000.jsonl", md="docs/duplicates.ov_SC02_000.md"),
|
||||
"ov_SC02_003": dict(sig=".run/sig.ov_SC02_003.jsonl", md="docs/duplicates.ov_SC02_003.md"),
|
||||
"ov_SC03_002": dict(sig=".run/sig.ov_SC03_002.jsonl", md="docs/duplicates.ov_SC03_002.md"),
|
||||
"ov_SC03_006": dict(sig=".run/sig.ov_SC03_006.jsonl", md="docs/duplicates.ov_SC03_006.md"),
|
||||
"ov_SC04_000": dict(sig=".run/sig.ov_SC04_000.jsonl", md="docs/duplicates.ov_SC04_000.md"),
|
||||
"ov_SC04_018": dict(sig=".run/sig.ov_SC04_018.jsonl", md="docs/duplicates.ov_SC04_018.md"),
|
||||
"ov_SC04_019": dict(sig=".run/sig.ov_SC04_019.jsonl", md="docs/duplicates.ov_SC04_019.md"),
|
||||
"ov_SC05_000": dict(sig=".run/sig.ov_SC05_000.jsonl", md="docs/duplicates.ov_SC05_000.md"),
|
||||
"ov_SC06_000": dict(sig=".run/sig.ov_SC06_000.jsonl", md="docs/duplicates.ov_SC06_000.md"),
|
||||
"ov_SC07_000": dict(sig=".run/sig.ov_SC07_000.jsonl", md="docs/duplicates.ov_SC07_000.md"),
|
||||
# <<< overlays: tools/new_overlay.sh inserts ov_* entries above this line (Phase 13) >>>
|
||||
}
|
||||
CROSS_MD = "docs/duplicates.cross.md"
|
||||
|
||||
@@ -31,6 +31,30 @@ BINARIES = {
|
||||
src="src/ov_SC01_006", asm="asm/ov_SC01_006/nonmatchings", out="docs/progress.ov_SC01_006.md"),
|
||||
"ov_SC03_001": dict(build="build/ov_SC03_001/ov_SC03_001", check="config/check.ov_SC03_001.sha",
|
||||
src="src/ov_SC03_001", asm="asm/ov_SC03_001/nonmatchings", out="docs/progress.ov_SC03_001.md"),
|
||||
"ov_SC01_000": dict(build="build/ov_SC01_000/ov_SC01_000", check="config/check.ov_SC01_000.sha",
|
||||
src="src/ov_SC01_000", asm="asm/ov_SC01_000/nonmatchings", out="docs/progress.ov_SC01_000.md"),
|
||||
"ov_SC01_001": dict(build="build/ov_SC01_001/ov_SC01_001", check="config/check.ov_SC01_001.sha",
|
||||
src="src/ov_SC01_001", asm="asm/ov_SC01_001/nonmatchings", out="docs/progress.ov_SC01_001.md"),
|
||||
"ov_SC02_000": dict(build="build/ov_SC02_000/ov_SC02_000", check="config/check.ov_SC02_000.sha",
|
||||
src="src/ov_SC02_000", asm="asm/ov_SC02_000/nonmatchings", out="docs/progress.ov_SC02_000.md"),
|
||||
"ov_SC02_003": dict(build="build/ov_SC02_003/ov_SC02_003", check="config/check.ov_SC02_003.sha",
|
||||
src="src/ov_SC02_003", asm="asm/ov_SC02_003/nonmatchings", out="docs/progress.ov_SC02_003.md"),
|
||||
"ov_SC03_002": dict(build="build/ov_SC03_002/ov_SC03_002", check="config/check.ov_SC03_002.sha",
|
||||
src="src/ov_SC03_002", asm="asm/ov_SC03_002/nonmatchings", out="docs/progress.ov_SC03_002.md"),
|
||||
"ov_SC03_006": dict(build="build/ov_SC03_006/ov_SC03_006", check="config/check.ov_SC03_006.sha",
|
||||
src="src/ov_SC03_006", asm="asm/ov_SC03_006/nonmatchings", out="docs/progress.ov_SC03_006.md"),
|
||||
"ov_SC04_000": dict(build="build/ov_SC04_000/ov_SC04_000", check="config/check.ov_SC04_000.sha",
|
||||
src="src/ov_SC04_000", asm="asm/ov_SC04_000/nonmatchings", out="docs/progress.ov_SC04_000.md"),
|
||||
"ov_SC04_018": dict(build="build/ov_SC04_018/ov_SC04_018", check="config/check.ov_SC04_018.sha",
|
||||
src="src/ov_SC04_018", asm="asm/ov_SC04_018/nonmatchings", out="docs/progress.ov_SC04_018.md"),
|
||||
"ov_SC04_019": dict(build="build/ov_SC04_019/ov_SC04_019", check="config/check.ov_SC04_019.sha",
|
||||
src="src/ov_SC04_019", asm="asm/ov_SC04_019/nonmatchings", out="docs/progress.ov_SC04_019.md"),
|
||||
"ov_SC05_000": dict(build="build/ov_SC05_000/ov_SC05_000", check="config/check.ov_SC05_000.sha",
|
||||
src="src/ov_SC05_000", asm="asm/ov_SC05_000/nonmatchings", out="docs/progress.ov_SC05_000.md"),
|
||||
"ov_SC06_000": dict(build="build/ov_SC06_000/ov_SC06_000", check="config/check.ov_SC06_000.sha",
|
||||
src="src/ov_SC06_000", asm="asm/ov_SC06_000/nonmatchings", out="docs/progress.ov_SC06_000.md"),
|
||||
"ov_SC07_000": dict(build="build/ov_SC07_000/ov_SC07_000", check="config/check.ov_SC07_000.sha",
|
||||
src="src/ov_SC07_000", asm="asm/ov_SC07_000/nonmatchings", out="docs/progress.ov_SC07_000.md"),
|
||||
# <<< overlays: tools/new_overlay.sh inserts ov_* entries above this line (Phase 13) >>>
|
||||
}
|
||||
BINARY = next((sys.argv[i + 1] for i, x in enumerate(sys.argv)
|
||||
|
||||
Reference in New Issue
Block a user