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:
Drew T
2026-06-16 19:02:14 -06:00
parent 324ad1c3a6
commit e5a2bd4083
54 changed files with 65753 additions and 4 deletions
+1
View File
@@ -0,0 +1 @@
9052dc0e4540db6d9c258c5e063e558c31867492 ov_SC01_000
+1
View File
@@ -0,0 +1 @@
a8e49bc0df30ee5f25cb97d3a68a2524ae5a88bb ov_SC01_001
+1
View File
@@ -0,0 +1 @@
5ece4bcaca7f8a9119a561d37daa956f576eac52 ov_SC02_000
+1
View File
@@ -0,0 +1 @@
5ece4bcaca7f8a9119a561d37daa956f576eac52 ov_SC02_003
+1
View File
@@ -0,0 +1 @@
0000b179c92f1f57856c6f98601ae7a9b8f47570 ov_SC03_002
+1
View File
@@ -0,0 +1 @@
e0e316af3e34670d6903ef8b2c4676e883ccefc6 ov_SC03_006
+1
View File
@@ -0,0 +1 @@
ee4ee583849479ac78447ebf2eb4cd279866aa2a ov_SC04_000
+1
View File
@@ -0,0 +1 @@
fe9b413fc48ba615ccf81cde49d7a1efad481bc9 ov_SC04_018
+1
View File
@@ -0,0 +1 @@
fe9b413fc48ba615ccf81cde49d7a1efad481bc9 ov_SC04_019
+1
View File
@@ -0,0 +1 @@
93acb876a4689070be436c47b3ab7f19c9c22c3a ov_SC05_000
+1
View File
@@ -0,0 +1 @@
da4a26ffffe8759929aa078aac7285738089a1f2 ov_SC06_000
+1
View File
@@ -0,0 +1 @@
9dbe4241b8e39d8bd262ad742155fa09b864973a ov_SC07_000
+253 -1
View File
@@ -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
+103
View File
@@ -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.
+103
View File
@@ -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.
+103
View File
@@ -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.
+103
View File
@@ -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.
+103
View File
@@ -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.
+103
View File
@@ -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.
+103
View File
@@ -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.
+103
View File
@@ -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.
+103
View File
@@ -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.
+103
View File
@@ -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.
+103
View File
@@ -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.
+103
View File
@@ -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.
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+36
View File
@@ -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) >>>
}
+5 -3
View File
@@ -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
+24
View File
@@ -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
+12
View File
@@ -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"
+24
View File
@@ -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)