feat(phase-30 S44 I.2a): the big 3 onboarded BYTE-IDENTICAL — ov_MAIN_012, ov_SC02_037, ov_SC03_107

- Three uncompressed (PAC type-1) overlays at the standard 0x80128158 slot, onboarded via the new
  tools/new_binary.sh, each byte-identical at 100% INCLUDE_ASM on the FIRST build:
    ov_MAIN_012  d6b3e8b9  (383,783 B, 2,324 fns)
    ov_SC02_037  b0c5394a  (661,903 B, 2,434 fns)
    ov_SC03_107  87d02b57  (474,087 B, 2,414 fns)
  This also BYTE-PROVES the statically derived base (the §S44 loader table + the 500:1 h_exact
  vote): a wrong vram could not have produced byte-identical images once symbols resolve.
- Fleet: 140 -> 143 binaries. audit-binaries currently FAILS on all three by design (no
  engine_core.h include yet — the SC07-blindness check working as built); dedup_extend is the fix
  and the next commit.
- Registered by the script: overlays.mk blocks, check.sha, symbols seeds, the 3 BINARIES dicts.
  family map regenerated (3,577 target families / 279 with a matched sib — the new binaries'
  members now visible).
This commit is contained in:
Drew T
2026-08-06 11:12:19 -06:00
parent f5ea0fdd49
commit f6bbe7272a
17 changed files with 15534 additions and 53 deletions
+1
View File
@@ -0,0 +1 @@
d6b3e8b971cdd6c53aea8c4f265afb82b363283c ov_MAIN_012
+1
View File
@@ -0,0 +1 @@
b0c5394ae23cd5f0cbb32687f61bca669151bf5f ov_SC02_037
+1
View File
@@ -0,0 +1 @@
87d02b578a27a947f1da381255a1faa3f05cedfd ov_SC03_107
+64 -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 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_004 ov_SC01_008 ov_SC01_009 ov_SC01_074 ov_SC01_080 ov_SC01_084 ov_SC02_004 ov_SC02_005 ov_SC02_011 ov_SC02_015 ov_SC02_016 ov_SC02_017 ov_SC02_021 ov_SC02_026 ov_SC02_027 ov_SC02_028 ov_SC02_031 ov_SC02_035 ov_SC02_039 ov_SC02_041 ov_SC03_003 ov_SC03_007 ov_SC03_010 ov_SC03_011 ov_SC03_012 ov_SC03_013 ov_SC03_014 ov_SC03_015 ov_SC03_023 ov_SC03_024 ov_SC03_028 ov_SC03_029 ov_SC03_030 ov_SC03_031 ov_SC03_089 ov_SC03_090 ov_SC03_091 ov_SC03_092 ov_SC03_093 ov_SC03_094 ov_SC03_095 ov_SC03_096 ov_SC03_097 ov_SC03_098 ov_SC03_099 ov_SC03_100 ov_SC03_101 ov_SC03_102 ov_SC03_103 ov_SC03_104 ov_SC03_105 ov_SC03_108 ov_SC03_109 ov_SC03_110 ov_SC03_111 ov_SC03_112 ov_SC03_113 ov_SC03_114 ov_SC03_115 ov_SC03_116 ov_SC03_117 ov_SC03_118 ov_SC03_119 ov_SC03_121 ov_SC03_124 ov_SC03_125 ov_SC03_126 ov_SC04_002 ov_SC04_003 ov_SC04_004 ov_SC04_005 ov_SC04_006 ov_SC04_007 ov_SC04_008 ov_SC04_009 ov_SC04_010 ov_SC04_011 ov_SC04_012 ov_SC04_015 ov_SC04_016 ov_SC04_020 ov_SC04_021 ov_SC05_001 ov_SC05_002 ov_SC05_003 ov_SC05_004 ov_SC05_005 ov_SC05_006 ov_SC05_007 ov_SC05_008 ov_SC05_009 ov_SC05_010 ov_SC05_011 ov_SC05_017 ov_SC05_018 ov_SC05_019 ov_SC06_006 ov_SC06_008 ov_SC06_010 ov_SC06_011 ov_SC06_013 ov_SC06_014 ov_SC06_015 ov_SC06_016 ov_SC06_018 ov_SC06_020 ov_SC06_022 ov_SC06_024 ov_SC06_025 ov_SC06_027 ov_SC06_029 ov_SC06_030 ov_SC06_032 ov_SC06_033 ov_SC07_001 ov_SC07_002 ov_SC07_008 ov_SC07_009 ov_SC07_006 ov_SC07_007 ov_SC07_010 ov_SC07_011
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_004 ov_SC01_008 ov_SC01_009 ov_SC01_074 ov_SC01_080 ov_SC01_084 ov_SC02_004 ov_SC02_005 ov_SC02_011 ov_SC02_015 ov_SC02_016 ov_SC02_017 ov_SC02_021 ov_SC02_026 ov_SC02_027 ov_SC02_028 ov_SC02_031 ov_SC02_035 ov_SC02_039 ov_SC02_041 ov_SC03_003 ov_SC03_007 ov_SC03_010 ov_SC03_011 ov_SC03_012 ov_SC03_013 ov_SC03_014 ov_SC03_015 ov_SC03_023 ov_SC03_024 ov_SC03_028 ov_SC03_029 ov_SC03_030 ov_SC03_031 ov_SC03_089 ov_SC03_090 ov_SC03_091 ov_SC03_092 ov_SC03_093 ov_SC03_094 ov_SC03_095 ov_SC03_096 ov_SC03_097 ov_SC03_098 ov_SC03_099 ov_SC03_100 ov_SC03_101 ov_SC03_102 ov_SC03_103 ov_SC03_104 ov_SC03_105 ov_SC03_108 ov_SC03_109 ov_SC03_110 ov_SC03_111 ov_SC03_112 ov_SC03_113 ov_SC03_114 ov_SC03_115 ov_SC03_116 ov_SC03_117 ov_SC03_118 ov_SC03_119 ov_SC03_121 ov_SC03_124 ov_SC03_125 ov_SC03_126 ov_SC04_002 ov_SC04_003 ov_SC04_004 ov_SC04_005 ov_SC04_006 ov_SC04_007 ov_SC04_008 ov_SC04_009 ov_SC04_010 ov_SC04_011 ov_SC04_012 ov_SC04_015 ov_SC04_016 ov_SC04_020 ov_SC04_021 ov_SC05_001 ov_SC05_002 ov_SC05_003 ov_SC05_004 ov_SC05_005 ov_SC05_006 ov_SC05_007 ov_SC05_008 ov_SC05_009 ov_SC05_010 ov_SC05_011 ov_SC05_017 ov_SC05_018 ov_SC05_019 ov_SC06_006 ov_SC06_008 ov_SC06_010 ov_SC06_011 ov_SC06_013 ov_SC06_014 ov_SC06_015 ov_SC06_016 ov_SC06_018 ov_SC06_020 ov_SC06_022 ov_SC06_024 ov_SC06_025 ov_SC06_027 ov_SC06_029 ov_SC06_030 ov_SC06_032 ov_SC06_033 ov_SC07_001 ov_SC07_002 ov_SC07_008 ov_SC07_009 ov_SC07_006 ov_SC07_007 ov_SC07_010 ov_SC07_011 ov_MAIN_012 ov_SC02_037 ov_SC03_107
# --- 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
@@ -4900,3 +4900,66 @@ ov_SC07_011_ASM_DIR := asm/ov_SC07_011
ov_SC07_011_SRC_DIR := src/ov_SC07_011
ov_SC07_011_UNDEF_SYMS := build/ov_SC07_011/undefined_syms_auto.txt
ov_SC07_011_UNDEF_FUNCS := build/ov_SC07_011/undefined_funcs_auto.txt
# --- ov_MAIN_012 (location overlay, vram 0x80128158 — onboarded by new_binary.sh) ---
ov_MAIN_012_EXE := extracted/retail/MAIN.CD.dir/FILE_012.dir/1.1
ov_MAIN_012_NAME := ov_MAIN_012
ov_MAIN_012_OUT_DIR := build/ov_MAIN_012
ov_MAIN_012_OUT := $(ov_MAIN_012_OUT_DIR)/$(ov_MAIN_012_NAME)
ov_MAIN_012_ELF := $(ov_MAIN_012_OUT).elf
ov_MAIN_012_MAPFILE := $(ov_MAIN_012_OUT).map
ov_MAIN_012_LD_SCRIPT := $(ov_MAIN_012_OUT).ld
ov_MAIN_012_SPLAT_YAML := config/splat.ov_MAIN_012.yaml
ov_MAIN_012_CHECK_SHA := config/check.ov_MAIN_012.sha
ov_MAIN_012_SYMBOLS := config/symbols.ov_MAIN_012.txt
ov_MAIN_012_SIG := .run/sig.ov_MAIN_012.jsonl
ov_MAIN_012_GHIDRA_PROG := ov_MAIN_012
ov_MAIN_012_VRAM_BASE := 0x80128158
ov_MAIN_012_TEXT_LO := 0x80128158
ov_MAIN_012_TEXT_HI := 0x80185C7F
ov_MAIN_012_ASM_DIR := asm/ov_MAIN_012
ov_MAIN_012_SRC_DIR := src/ov_MAIN_012
ov_MAIN_012_UNDEF_SYMS := build/ov_MAIN_012/undefined_syms_auto.txt
ov_MAIN_012_UNDEF_FUNCS := build/ov_MAIN_012/undefined_funcs_auto.txt
# --- ov_SC02_037 (location overlay, vram 0x80128158 — onboarded by new_binary.sh) ---
ov_SC02_037_EXE := extracted/retail/SC02.CD.dir/FILE_037.dir/0.1
ov_SC02_037_NAME := ov_SC02_037
ov_SC02_037_OUT_DIR := build/ov_SC02_037
ov_SC02_037_OUT := $(ov_SC02_037_OUT_DIR)/$(ov_SC02_037_NAME)
ov_SC02_037_ELF := $(ov_SC02_037_OUT).elf
ov_SC02_037_MAPFILE := $(ov_SC02_037_OUT).map
ov_SC02_037_LD_SCRIPT := $(ov_SC02_037_OUT).ld
ov_SC02_037_SPLAT_YAML := config/splat.ov_SC02_037.yaml
ov_SC02_037_CHECK_SHA := config/check.ov_SC02_037.sha
ov_SC02_037_SYMBOLS := config/symbols.ov_SC02_037.txt
ov_SC02_037_SIG := .run/sig.ov_SC02_037.jsonl
ov_SC02_037_GHIDRA_PROG := ov_SC02_037
ov_SC02_037_VRAM_BASE := 0x80128158
ov_SC02_037_TEXT_LO := 0x80128158
ov_SC02_037_TEXT_HI := 0x801C9AE7
ov_SC02_037_ASM_DIR := asm/ov_SC02_037
ov_SC02_037_SRC_DIR := src/ov_SC02_037
ov_SC02_037_UNDEF_SYMS := build/ov_SC02_037/undefined_syms_auto.txt
ov_SC02_037_UNDEF_FUNCS := build/ov_SC02_037/undefined_funcs_auto.txt
# --- ov_SC03_107 (location overlay, vram 0x80128158 — onboarded by new_binary.sh) ---
ov_SC03_107_EXE := extracted/retail/SC03.CD.dir/FILE_107.dir/0.1
ov_SC03_107_NAME := ov_SC03_107
ov_SC03_107_OUT_DIR := build/ov_SC03_107
ov_SC03_107_OUT := $(ov_SC03_107_OUT_DIR)/$(ov_SC03_107_NAME)
ov_SC03_107_ELF := $(ov_SC03_107_OUT).elf
ov_SC03_107_MAPFILE := $(ov_SC03_107_OUT).map
ov_SC03_107_LD_SCRIPT := $(ov_SC03_107_OUT).ld
ov_SC03_107_SPLAT_YAML := config/splat.ov_SC03_107.yaml
ov_SC03_107_CHECK_SHA := config/check.ov_SC03_107.sha
ov_SC03_107_SYMBOLS := config/symbols.ov_SC03_107.txt
ov_SC03_107_SIG := .run/sig.ov_SC03_107.jsonl
ov_SC03_107_GHIDRA_PROG := ov_SC03_107
ov_SC03_107_VRAM_BASE := 0x80128158
ov_SC03_107_TEXT_LO := 0x80128158
ov_SC03_107_TEXT_HI := 0x8019BD3F
ov_SC03_107_ASM_DIR := asm/ov_SC03_107
ov_SC03_107_SRC_DIR := src/ov_SC03_107
ov_SC03_107_UNDEF_SYMS := build/ov_SC03_107/undefined_syms_auto.txt
ov_SC03_107_UNDEF_FUNCS := build/ov_SC03_107/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_MAIN_012 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
# extracted/retail/MAIN.CD.dir/FILE_012.dir/1.1 extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
# d6b3e8b971cdd6c53aea8c4f265afb82b363283c 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)
# 0x561E0 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
# 0x5DB27 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 0x561E0 against `make check BINARY=ov_MAIN_012` (Phase-5/10
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
name: ov_MAIN_012
sha1: d6b3e8b971cdd6c53aea8c4f265afb82b363283c
options:
basename: ov_MAIN_012
target_path: extracted/retail/MAIN.CD.dir/FILE_012.dir/1.1
elf_path: build/ov_MAIN_012/ov_MAIN_012.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_MAIN_012
src_path: src/ov_MAIN_012
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
# assets/ov_MAIN_012/*.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_MAIN_012
# 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_MAIN_012/ov_MAIN_012.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_MAIN_012/undefined_syms_auto.txt
undefined_funcs_auto_path: build/ov_MAIN_012/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_MAIN_012.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_MAIN_012
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_MAIN_012] # code: starts at file 0x0 (overlays open with a prologue)
- [0x561E0, data, tail] # data tail: pointer tables + packed data (split iterated)
- [0x5DB24, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
- [0x5DB27] # 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_037 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
# extracted/retail/SC02.CD.dir/FILE_037.dir/0.1 extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
# b0c5394ae23cd5f0cbb32687f61bca669151bf5f 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)
# 0x5BA68 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
# 0xA198F 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 0x5BA68 against `make check BINARY=ov_SC02_037` (Phase-5/10
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
name: ov_SC02_037
sha1: b0c5394ae23cd5f0cbb32687f61bca669151bf5f
options:
basename: ov_SC02_037
target_path: extracted/retail/SC02.CD.dir/FILE_037.dir/0.1
elf_path: build/ov_SC02_037/ov_SC02_037.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_037
src_path: src/ov_SC02_037
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
# assets/ov_SC02_037/*.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_037
# 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_037/ov_SC02_037.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_037/undefined_syms_auto.txt
undefined_funcs_auto_path: build/ov_SC02_037/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_037.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_037
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_037] # code: starts at file 0x0 (overlays open with a prologue)
- [0x5BA68, data, tail] # data tail: pointer tables + packed data (split iterated)
- [0xA198C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
- [0xA198F] # 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_107 binary alias, ov_<SCxx>_<nnn> e.g. ov_SC01_077
# extracted/retail/SC03.CD.dir/FILE_107.dir/0.1 extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec
# 87d02b578a27a947f1da381255a1faa3f05cedfd 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)
# 0x5A304 file offset where code ends -> data tail begins (iterated vs the byte check, T1b)
# 0x73BE7 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 0x5A304 against `make check BINARY=ov_SC03_107` (Phase-5/10
# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3).
name: ov_SC03_107
sha1: 87d02b578a27a947f1da381255a1faa3f05cedfd
options:
basename: ov_SC03_107
target_path: extracted/retail/SC03.CD.dir/FILE_107.dir/0.1
elf_path: build/ov_SC03_107/ov_SC03_107.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_107
src_path: src/ov_SC03_107
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
# assets/ov_SC03_107/*.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_107
# 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_107/ov_SC03_107.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_107/undefined_syms_auto.txt
undefined_funcs_auto_path: build/ov_SC03_107/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_107.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_107
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_107] # code: starts at file 0x0 (overlays open with a prologue)
- [0x5A304, data, tail] # data tail: pointer tables + packed data (split iterated)
- [0x73BE4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
- [0x73BE7] # 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_MAIN_012.txt — location overlay ov_MAIN_012 local symbols
// R13/R15: this binary's REGION ONLY (vram 0x80128158..0x80185C7F); NEVER merged into config/symbols.us.txt.
// count=0
+3
View File
@@ -0,0 +1,3 @@
// config/symbols.ov_SC02_037.txt — location overlay ov_SC02_037 local symbols
// R13/R15: this binary's REGION ONLY (vram 0x80128158..0x801C9AE7); NEVER merged into config/symbols.us.txt.
// count=0
+3
View File
@@ -0,0 +1,3 @@
// config/symbols.ov_SC03_107.txt — location overlay ov_SC03_107 local symbols
// R13/R15: this binary's REGION ONLY (vram 0x80128158..0x8019BD3F); NEVER merged into config/symbols.us.txt.
// count=0
+9
View File
@@ -434,6 +434,15 @@ BINARIES = {
"ov_SC07_011": dict(baseimg="expected/build/ov_SC07_011/ov_SC07_011.elf",
myimg="build/ov_SC07_011/ov_SC07_011.elf",
mapfile="build/ov_SC07_011/ov_SC07_011.map"),
"ov_MAIN_012": dict(baseimg="expected/build/ov_MAIN_012/ov_MAIN_012.elf",
myimg="build/ov_MAIN_012/ov_MAIN_012.elf",
mapfile="build/ov_MAIN_012/ov_MAIN_012.map"),
"ov_SC02_037": dict(baseimg="expected/build/ov_SC02_037/ov_SC02_037.elf",
myimg="build/ov_SC02_037/ov_SC02_037.elf",
mapfile="build/ov_SC02_037/ov_SC02_037.map"),
"ov_SC03_107": dict(baseimg="expected/build/ov_SC03_107/ov_SC03_107.elf",
myimg="build/ov_SC03_107/ov_SC03_107.elf",
mapfile="build/ov_SC03_107/ov_SC03_107.map"),
# <<< overlays: tools/new_overlay.sh inserts ov_* entries above this line (Phase 13) >>>
}
+52 -52
View File
@@ -1,14 +1,14 @@
# Phase 26 — h_seq family survey (T1)
> Generated by `tools/family_hseq.py` from the 139 overlay sigs + per-overlay src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.
> Generated by `tools/family_hseq.py` from the 142 overlay sigs + per-overlay src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.
>
> **Scope: the 139 OVERLAYS only** (no main, no resident) · generated at HEAD `commit:1497` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
> **Scope: the 142 OVERLAYS only** (no main, no resident) · generated at HEAD `commit:1499` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
**Fleet (overlays):** 96.9% fn / 95.6% instr / 90.7% distinct-code matched. Unmatched: 10,878 instances / 579,368 ins (9,358 distinct classes).
**Fleet (overlays):** 95.0% fn / 93.6% instr / 88.9% distinct-code matched. Unmatched: 18,050 instances / 853,267 ins (11,039 distinct classes).
**Tail cross-check (Phase-25 close):** 7,059 tail fns / 356,882 ins → 414 h_seq families ≥2, **97 substantial (nins≥80) / 54,055 ins**.
**Tail cross-check (Phase-25 close):** 7,943 tail fns / 420,760 ins → 557 h_seq families ≥2, **154 substantial (nins≥80) / 93,378 ins**.
**Full frontier (all unmatched by h_seq):** 1962 target families (≥2 members or a matched sibling) + 3772 singletons (Step-D residue). Substantial: **326 families / 139,821 templatable ins**, 32 with a matched sibling (zero-crack). Substantial member classes: 982 PURE · 23 IMM · 6 STRUCT-excluded.
**Full frontier (all unmatched by h_seq):** 3577 target families (≥2 members or a matched sibling) + 3801 singletons (Step-D residue). Substantial: **575 families / 258,425 templatable ins**, 279 with a matched sibling (zero-crack). Substantial member classes: 1,705 PURE · 30 IMM · 9 STRUCT-excluded.
## Top substantial families (by templatable byte-weight)
@@ -18,50 +18,50 @@
| 1 | 246 | 16 (16/0/0) | 6/16 | cross-address | PURE | 0 | · | 0x8017c294 draft-ov077 | 3,936 |
| 2 | 611 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | · | 0x80186e24 modal | 3,055 |
| 3 | 551 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80189540 modal | 2,755 |
| 4 | 125 | 21 (21/0/0) | 21/21 | scattered | PURE | 1 | Y | 0x8018a564 matched | 2,625 |
| 5 | 557 | 4 (4/0/0) | 3/4 | cross-address | PURE | 1 | Y | 0x80189030 matched | 2,228 |
| 6 | 137 | 14 (14/0/0) | 14/14 | scattered | PURE | 1 | Y | 0x801884d8 matched | 1,918 |
| 7 | 281 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80186270 modal | 1,686 |
| 8 | 470 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | Y | 0x80191320 modal | 1,410 |
| 9 | 279 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x8017f2d4 modal | 1,395 |
| 10 | 673 | 2 (2/0/0) | 2/2 | cross-address | PURE | 1 | Y | 0x8019059c matched | 1,346 |
| 11 | 254 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188e1c modal | 1,270 |
| 12 | 251 | 5 (5/0/0) | 5/5 | cross-address | PURE | 1 | Y | 0x80180b04 matched | 1,255 |
| 13 | 198 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80185f58 modal | 1,188 |
| 14 | 385 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | Y | 0x8018ff98 modal | 1,155 |
| 15 | 185 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80187aec modal | 1,110 |
| 16 | 324 | 3 (3/0/0) | 2/3 | cross-address | PURE | 0 | Y | 0x80183324 draft-ov077 | 972 |
| 17 | 95 | 10 (10/0/0) | 9/10 | scattered | PURE | 0 | Y | 0x80185d70 modal | 950 |
| 18 | 231 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017f83c modal | 924 |
| 19 | 288 | 3 (3/0/0) | 3/3 | cross-address | PURE | 3 | Y | 0x80184c74 matched | 864 |
| 20 | 166 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188b84 modal | 830 |
| 21 | 165 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x801818f0 modal | 825 |
| 22 | 406 | 2 (2/0/0) | 2/2 | cross-address | PURE | 0 | Y | 0x80184938 modal | 812 |
| 23 | 196 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017ffd0 modal | 784 |
| 24 | 257 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | · | 0x80192b60 modal | 771 |
| 25 | 255 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | · | 0x8018e9bc modal | 765 |
| 26 | 254 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | · | 0x80192768 modal | 762 |
| 27 | 188 | 4 (4/0/0) | 1/4 | per-location | PURE | 134 | Y | 0x8016ab6c matched-ov077 | 752 |
| 28 | 187 | 4 (4/0/0) | 1/4 | per-location | PURE | 134 | · | 0x8013dd68 matched-ov077 | 748 |
| 29 | 147 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x8017ed5c modal | 735 |
| 30 | 181 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | · | 0x8017d7c0 modal | 724 |
| 31 | 341 | 2 (2/0/0) | 1/2 | per-location | PURE | 0 | · | 0x80184bd8 modal | 682 |
| 32 | 134 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x8017eb44 modal | 670 |
| 33 | 93 | 7 (7/0/0) | 2/7 | cross-address | PURE | 0 | · | 0x8017c6a0 modal | 651 |
| 34 | 108 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x8017eeec modal | 648 |
| 35 | 320 | 2 (2/0/0) | 1/2 | per-location | PURE | 0 | · | 0x80181b00 modal | 640 |
| 36 | 317 | 2 (2/0/0) | 2/1 | cross-address | PURE | 0 | · | 0x8017fdf8 modal | 634 |
| 37 | 211 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | · | 0x8018e8a0 modal | 633 |
| 38 | 207 | 3 (3/0/0) | 3/3 | cross-address | PURE | 2 | · | 0x801880ec matched | 621 |
| 39 | 124 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | · | 0x8017defc modal | 620 |
| 40 | 154 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x801844c8 modal | 616 |
| 41 | 203 | 3 (0/3/0) | 2/3 | cross-address | IMM | 7 | · | 0x8017e804 matched | 609 |
| 42 | 304 | 2 (2/0/0) | 1/2 | per-location | PURE | 0 | · | 0x80185ef8 modal | 608 |
| 43 | 101 | 6 (3/3/0) | 6/3 | cross-address | IMM | 0 | · | 0x8018de60 modal | 606 |
| 44 | 201 | 3 (3/0/0) | 2/3 | cross-address | PURE | 0 | Y | 0x80181be4 draft-ov077 | 603 |
| 45 | 99 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | · | 0x80187960 modal | 594 |
| 46 | 148 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | · | 0x80181a30 modal | 592 |
| 47 | 98 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | · | 0x80183f50 modal | 588 |
| 48 | 117 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8018171c modal | 585 |
| 49 | 144 | 4 (4/0/0) | 3/4 | cross-address | PURE | 1 | · | 0x8018b238 matched | 576 |
| 50 | 96 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | · | 0x80185dd8 modal | 576 |
| 4 | 125 | 22 (22/0/0) | 22/22 | scattered | PURE | 1 | Y | 0x8018a564 matched | 2,750 |
| 5 | 890 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80178d40 matched-ov077 | 2,670 |
| 6 | 770 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80144b9c matched-ov077 | 2,310 |
| 7 | 557 | 4 (4/0/0) | 3/4 | cross-address | PURE | 1 | Y | 0x80189030 matched | 2,228 |
| 8 | 137 | 15 (15/0/0) | 15/15 | scattered | PURE | 1 | Y | 0x801884d8 matched | 2,055 |
| 9 | 562 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015ae2c matched-ov077 | 1,686 |
| 10 | 281 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80186270 modal | 1,686 |
| 11 | 536 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8017a4ac matched-ov077 | 1,608 |
| 12 | 493 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015a3c8 matched-ov077 | 1,479 |
| 13 | 490 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013f350 matched-ov077 | 1,470 |
| 14 | 476 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80141ca4 matched-ov077 | 1,428 |
| 15 | 470 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | Y | 0x80191320 modal | 1,410 |
| 16 | 279 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x8017f2d4 modal | 1,395 |
| 17 | 673 | 2 (2/0/0) | 2/2 | cross-address | PURE | 1 | Y | 0x8019059c matched | 1,346 |
| 18 | 188 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | Y | 0x8016ab6c matched-ov077 | 1,316 |
| 19 | 438 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x801380e0 matched-ov077 | 1,314 |
| 20 | 187 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | · | 0x8013dd68 matched-ov077 | 1,309 |
| 21 | 424 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80131340 matched-ov077 | 1,272 |
| 22 | 254 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188e1c modal | 1,270 |
| 23 | 251 | 5 (5/0/0) | 5/5 | cross-address | PURE | 1 | Y | 0x80180b04 matched | 1,255 |
| 24 | 400 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80132784 matched-ov077 | 1,200 |
| 25 | 399 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80133cd4 matched-ov077 | 1,197 |
| 26 | 198 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80185f58 modal | 1,188 |
| 27 | 385 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | Y | 0x8018ff98 modal | 1,155 |
| 28 | 371 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80176734 matched-ov077 | 1,113 |
| 29 | 185 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80187aec modal | 1,110 |
| 30 | 369 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80166994 matched-ov077 | 1,107 |
| 31 | 363 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015444c matched-ov077 | 1,089 |
| 32 | 337 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80159c84 matched-ov077 | 1,011 |
| 33 | 329 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013c414 matched-ov077 | 987 |
| 34 | 327 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80176218 matched-ov077 | 981 |
| 35 | 324 | 3 (3/0/0) | 2/3 | cross-address | PURE | 0 | Y | 0x80183324 draft-ov077 | 972 |
| 36 | 952 | 1 (1/0/0) | 1/1 | per-location | PURE | 116 | Y | 0x8017bebc matched | 952 |
| 37 | 95 | 10 (10/0/0) | 9/10 | scattered | PURE | 0 | Y | 0x80185d70 modal | 950 |
| 38 | 312 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8013faf8 matched-ov077 | 936 |
| 39 | 231 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017f83c modal | 924 |
| 40 | 304 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8014d820 matched-ov077 | 912 |
| 41 | 152 | 6 (3/3/0) | 2/3 | cross-address | IMM | 276 | · | 0x80176d94 matched-ov077 | 912 |
| 42 | 127 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | · | 0x80145cec matched-ov077 | 889 |
| 43 | 289 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80135eb0 matched-ov077 | 867 |
| 44 | 288 | 3 (3/0/0) | 3/3 | cross-address | PURE | 3 | Y | 0x80184c74 matched | 864 |
| 45 | 284 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8012d714 matched-ov077 | 852 |
| 46 | 213 | 4 (4/0/0) | 1/4 | per-location | PURE | 137 | Y | 0x8013ffd8 matched-ov077 | 852 |
| 47 | 284 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8016a290 matched-ov077 | 852 |
| 48 | 279 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x801670e4 matched-ov077 | 837 |
| 49 | 166 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188b84 modal | 830 |
| 50 | 165 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x801818f0 modal | 825 |
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
+3
View File
@@ -164,6 +164,9 @@ BINARIES = {
"ov_SC07_007": dict(sig=".run/sig.ov_SC07_007.jsonl", md="docs/duplicates.ov_SC07_007.md"),
"ov_SC07_010": dict(sig=".run/sig.ov_SC07_010.jsonl", md="docs/duplicates.ov_SC07_010.md"),
"ov_SC07_011": dict(sig=".run/sig.ov_SC07_011.jsonl", md="docs/duplicates.ov_SC07_011.md"),
"ov_MAIN_012": dict(sig=".run/sig.ov_MAIN_012.jsonl", md="docs/duplicates.ov_MAIN_012.md"),
"ov_SC02_037": dict(sig=".run/sig.ov_SC02_037.jsonl", md="docs/duplicates.ov_SC02_037.md"),
"ov_SC03_107": dict(sig=".run/sig.ov_SC03_107.jsonl", md="docs/duplicates.ov_SC03_107.md"),
# <<< overlays: tools/new_overlay.sh inserts ov_* entries above this line (Phase 13) >>>
}
CROSS_MD = "docs/duplicates.cross.md"
+6
View File
@@ -301,6 +301,12 @@ BINARIES = {
src="src/ov_SC07_010", asm="asm/ov_SC07_010/nonmatchings", out="docs/progress.ov_SC07_010.md"),
"ov_SC07_011": dict(build="build/ov_SC07_011/ov_SC07_011", check="config/check.ov_SC07_011.sha",
src="src/ov_SC07_011", asm="asm/ov_SC07_011/nonmatchings", out="docs/progress.ov_SC07_011.md"),
"ov_MAIN_012": dict(build="build/ov_MAIN_012/ov_MAIN_012", check="config/check.ov_MAIN_012.sha",
src="src/ov_MAIN_012", asm="asm/ov_MAIN_012/nonmatchings", out="docs/progress.ov_MAIN_012.md"),
"ov_SC02_037": dict(build="build/ov_SC02_037/ov_SC02_037", check="config/check.ov_SC02_037.sha",
src="src/ov_SC02_037", asm="asm/ov_SC02_037/nonmatchings", out="docs/progress.ov_SC02_037.md"),
"ov_SC03_107": dict(build="build/ov_SC03_107/ov_SC03_107", check="config/check.ov_SC03_107.sha",
src="src/ov_SC03_107", asm="asm/ov_SC03_107/nonmatchings", out="docs/progress.ov_SC03_107.md"),
# <<< overlays: tools/new_overlay.sh inserts ov_* entries above this line (Phase 13) >>>
}
MAKEFILE = ROOT / "Makefile"