From ca50ee6978043c59f97b71d07857c019011d42a3 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Sun, 12 Jul 2026 21:51:27 -0600 Subject: [PATCH] =?UTF-8?q?feat(phase-26):=20=C2=A78=20multi-jtbl=20--orde?= =?UTF-8?q?r=20carve=20+=20family-1=20(func=5F801734BC=20=C3=97134)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ld_interleave.py --order: address-ordered N-piece data->rodata->data sandwich for overlays with 2+ matched jr-functions; legacy --front/--tail path is byte- untouched (main EXE + the 133 single-carve func_8012ACE0 siblings unaffected) - jtbl_carve.py rewritten additive/regenerate-from-config: parse the tail data region + existing .rodata carves, split the containing data piece for the new jtbl, re-emit the address-ordered pieces + the --order arg; same-subseg carve collision fails loud (-> jr isolation); idempotent - jtbl_family_bank.py: `make extract` BEFORE the carve (asm must match the reverted committed config; the old error-string retry was fragile) + revert-on-carve-fail - family-1: func_801734BC (34-ins PURE jr, ov_SC01_077_after) matched in ov077 (shared-tail switch idiom) + banked 133/133 siblings = x134 — CROSS-subseg multi-jtbl (func_8012ACE0 in _a + func_801734BC in _after) - R22 clean-fleet 136/136 byte-identical (~52s); 0 NON_MATCHING (G4) --- config/overlays.mk | 268 ++++++++++++++-------------- config/splat.ov_SC01_000.yaml | 2 + config/splat.ov_SC01_001.yaml | 2 + config/splat.ov_SC01_004.yaml | 2 + config/splat.ov_SC01_005.yaml | 2 + config/splat.ov_SC01_006.yaml | 2 + config/splat.ov_SC01_008.yaml | 2 + config/splat.ov_SC01_009.yaml | 2 + config/splat.ov_SC01_074.yaml | 2 + config/splat.ov_SC01_077.yaml | 8 +- config/splat.ov_SC01_080.yaml | 2 + config/splat.ov_SC01_084.yaml | 2 + config/splat.ov_SC02_000.yaml | 2 + config/splat.ov_SC02_003.yaml | 2 + config/splat.ov_SC02_004.yaml | 2 + config/splat.ov_SC02_005.yaml | 2 + config/splat.ov_SC02_011.yaml | 2 + config/splat.ov_SC02_015.yaml | 2 + config/splat.ov_SC02_016.yaml | 2 + config/splat.ov_SC02_017.yaml | 2 + config/splat.ov_SC02_021.yaml | 2 + config/splat.ov_SC02_026.yaml | 2 + config/splat.ov_SC02_027.yaml | 2 + config/splat.ov_SC02_028.yaml | 2 + config/splat.ov_SC02_031.yaml | 2 + config/splat.ov_SC02_035.yaml | 2 + config/splat.ov_SC02_039.yaml | 2 + config/splat.ov_SC02_041.yaml | 2 + config/splat.ov_SC03_001.yaml | 2 + config/splat.ov_SC03_002.yaml | 2 + config/splat.ov_SC03_003.yaml | 2 + config/splat.ov_SC03_006.yaml | 2 + config/splat.ov_SC03_007.yaml | 2 + config/splat.ov_SC03_010.yaml | 2 + config/splat.ov_SC03_011.yaml | 2 + config/splat.ov_SC03_012.yaml | 2 + config/splat.ov_SC03_013.yaml | 2 + config/splat.ov_SC03_014.yaml | 2 + config/splat.ov_SC03_015.yaml | 2 + config/splat.ov_SC03_023.yaml | 2 + config/splat.ov_SC03_024.yaml | 2 + config/splat.ov_SC03_028.yaml | 2 + config/splat.ov_SC03_029.yaml | 2 + config/splat.ov_SC03_030.yaml | 2 + config/splat.ov_SC03_031.yaml | 2 + config/splat.ov_SC03_089.yaml | 2 + config/splat.ov_SC03_090.yaml | 2 + config/splat.ov_SC03_091.yaml | 2 + config/splat.ov_SC03_092.yaml | 2 + config/splat.ov_SC03_093.yaml | 2 + config/splat.ov_SC03_094.yaml | 2 + config/splat.ov_SC03_095.yaml | 2 + config/splat.ov_SC03_096.yaml | 2 + config/splat.ov_SC03_097.yaml | 2 + config/splat.ov_SC03_098.yaml | 2 + config/splat.ov_SC03_099.yaml | 2 + config/splat.ov_SC03_100.yaml | 2 + config/splat.ov_SC03_101.yaml | 2 + config/splat.ov_SC03_102.yaml | 2 + config/splat.ov_SC03_103.yaml | 2 + config/splat.ov_SC03_104.yaml | 2 + config/splat.ov_SC03_105.yaml | 2 + config/splat.ov_SC03_108.yaml | 2 + config/splat.ov_SC03_109.yaml | 2 + config/splat.ov_SC03_110.yaml | 2 + config/splat.ov_SC03_111.yaml | 2 + config/splat.ov_SC03_112.yaml | 2 + config/splat.ov_SC03_113.yaml | 2 + config/splat.ov_SC03_114.yaml | 2 + config/splat.ov_SC03_115.yaml | 2 + config/splat.ov_SC03_116.yaml | 2 + config/splat.ov_SC03_117.yaml | 2 + config/splat.ov_SC03_118.yaml | 2 + config/splat.ov_SC03_119.yaml | 2 + config/splat.ov_SC03_121.yaml | 2 + config/splat.ov_SC03_124.yaml | 2 + config/splat.ov_SC03_125.yaml | 2 + config/splat.ov_SC03_126.yaml | 2 + config/splat.ov_SC04_000.yaml | 2 + config/splat.ov_SC04_002.yaml | 2 + config/splat.ov_SC04_003.yaml | 2 + config/splat.ov_SC04_004.yaml | 2 + config/splat.ov_SC04_005.yaml | 2 + config/splat.ov_SC04_006.yaml | 2 + config/splat.ov_SC04_007.yaml | 2 + config/splat.ov_SC04_008.yaml | 2 + config/splat.ov_SC04_009.yaml | 2 + config/splat.ov_SC04_010.yaml | 2 + config/splat.ov_SC04_011.yaml | 2 + config/splat.ov_SC04_012.yaml | 2 + config/splat.ov_SC04_015.yaml | 2 + config/splat.ov_SC04_016.yaml | 2 + config/splat.ov_SC04_018.yaml | 2 + config/splat.ov_SC04_019.yaml | 2 + config/splat.ov_SC04_020.yaml | 2 + config/splat.ov_SC04_021.yaml | 2 + config/splat.ov_SC05_000.yaml | 2 + config/splat.ov_SC05_001.yaml | 2 + config/splat.ov_SC05_002.yaml | 2 + config/splat.ov_SC05_003.yaml | 2 + config/splat.ov_SC05_004.yaml | 2 + config/splat.ov_SC05_005.yaml | 2 + config/splat.ov_SC05_006.yaml | 2 + config/splat.ov_SC05_007.yaml | 2 + config/splat.ov_SC05_008.yaml | 2 + config/splat.ov_SC05_009.yaml | 2 + config/splat.ov_SC05_010.yaml | 2 + config/splat.ov_SC05_011.yaml | 2 + config/splat.ov_SC05_017.yaml | 2 + config/splat.ov_SC05_018.yaml | 2 + config/splat.ov_SC05_019.yaml | 2 + config/splat.ov_SC06_000.yaml | 2 + config/splat.ov_SC06_006.yaml | 2 + config/splat.ov_SC06_008.yaml | 2 + config/splat.ov_SC06_010.yaml | 2 + config/splat.ov_SC06_011.yaml | 2 + config/splat.ov_SC06_013.yaml | 2 + config/splat.ov_SC06_014.yaml | 2 + config/splat.ov_SC06_015.yaml | 2 + config/splat.ov_SC06_016.yaml | 2 + config/splat.ov_SC06_018.yaml | 2 + config/splat.ov_SC06_020.yaml | 2 + config/splat.ov_SC06_022.yaml | 2 + config/splat.ov_SC06_024.yaml | 2 + config/splat.ov_SC06_025.yaml | 2 + config/splat.ov_SC06_027.yaml | 2 + config/splat.ov_SC06_029.yaml | 2 + config/splat.ov_SC06_030.yaml | 2 + config/splat.ov_SC06_032.yaml | 2 + config/splat.ov_SC06_033.yaml | 2 + config/splat.ov_SC07_000.yaml | 2 + config/splat.ov_SC07_001.yaml | 2 + config/splat.ov_SC07_002.yaml | 2 + config/splat.ov_SC07_008.yaml | 2 + config/splat.ov_SC07_009.yaml | 2 + phase-ends/CURRENT_PHASE.md | 22 ++- src/ov_SC01_000/ov_SC01_000_after.c | 22 ++- src/ov_SC01_001/ov_SC01_001_after.c | 22 ++- src/ov_SC01_004/ov_SC01_004_after.c | 22 ++- src/ov_SC01_005/ov_SC01_005_after.c | 22 ++- src/ov_SC01_006/ov_SC01_006_after.c | 22 ++- src/ov_SC01_008/ov_SC01_008_after.c | 22 ++- src/ov_SC01_009/ov_SC01_009_after.c | 22 ++- src/ov_SC01_074/ov_SC01_074_after.c | 22 ++- src/ov_SC01_077/ov_SC01_077_after.c | 23 ++- src/ov_SC01_080/ov_SC01_080_after.c | 22 ++- src/ov_SC01_084/ov_SC01_084_after.c | 22 ++- src/ov_SC02_000/ov_SC02_000_after.c | 22 ++- src/ov_SC02_003/ov_SC02_003_after.c | 22 ++- src/ov_SC02_004/ov_SC02_004_after.c | 22 ++- src/ov_SC02_005/ov_SC02_005_after.c | 22 ++- src/ov_SC02_011/ov_SC02_011_after.c | 22 ++- src/ov_SC02_015/ov_SC02_015_after.c | 22 ++- src/ov_SC02_016/ov_SC02_016_after.c | 22 ++- src/ov_SC02_017/ov_SC02_017_after.c | 22 ++- src/ov_SC02_021/ov_SC02_021_after.c | 22 ++- src/ov_SC02_026/ov_SC02_026_after.c | 22 ++- src/ov_SC02_027/ov_SC02_027_after.c | 22 ++- src/ov_SC02_028/ov_SC02_028_after.c | 22 ++- src/ov_SC02_031/ov_SC02_031_after.c | 22 ++- src/ov_SC02_035/ov_SC02_035_after.c | 22 ++- src/ov_SC02_039/ov_SC02_039_after.c | 22 ++- src/ov_SC02_041/ov_SC02_041_after.c | 22 ++- src/ov_SC03_001/ov_SC03_001_after.c | 22 ++- src/ov_SC03_002/ov_SC03_002_after.c | 22 ++- src/ov_SC03_003/ov_SC03_003_after.c | 22 ++- src/ov_SC03_006/ov_SC03_006_after.c | 22 ++- src/ov_SC03_007/ov_SC03_007_after.c | 22 ++- src/ov_SC03_010/ov_SC03_010_after.c | 22 ++- src/ov_SC03_011/ov_SC03_011_after.c | 22 ++- src/ov_SC03_012/ov_SC03_012_after.c | 22 ++- src/ov_SC03_013/ov_SC03_013_after.c | 22 ++- src/ov_SC03_014/ov_SC03_014_after.c | 22 ++- src/ov_SC03_015/ov_SC03_015_after.c | 22 ++- src/ov_SC03_023/ov_SC03_023_after.c | 22 ++- src/ov_SC03_024/ov_SC03_024_after.c | 22 ++- src/ov_SC03_028/ov_SC03_028_after.c | 22 ++- src/ov_SC03_029/ov_SC03_029_after.c | 22 ++- src/ov_SC03_030/ov_SC03_030_after.c | 22 ++- src/ov_SC03_031/ov_SC03_031_after.c | 22 ++- src/ov_SC03_089/ov_SC03_089_after.c | 22 ++- src/ov_SC03_090/ov_SC03_090_after.c | 22 ++- src/ov_SC03_091/ov_SC03_091_after.c | 22 ++- src/ov_SC03_092/ov_SC03_092_after.c | 22 ++- src/ov_SC03_093/ov_SC03_093_after.c | 22 ++- src/ov_SC03_094/ov_SC03_094_after.c | 22 ++- src/ov_SC03_095/ov_SC03_095_after.c | 22 ++- src/ov_SC03_096/ov_SC03_096_after.c | 22 ++- src/ov_SC03_097/ov_SC03_097_after.c | 22 ++- src/ov_SC03_098/ov_SC03_098_after.c | 22 ++- src/ov_SC03_099/ov_SC03_099_after.c | 22 ++- src/ov_SC03_100/ov_SC03_100_after.c | 22 ++- src/ov_SC03_101/ov_SC03_101_after.c | 22 ++- src/ov_SC03_102/ov_SC03_102_after.c | 22 ++- src/ov_SC03_103/ov_SC03_103_after.c | 22 ++- src/ov_SC03_104/ov_SC03_104_after.c | 22 ++- src/ov_SC03_105/ov_SC03_105_after.c | 22 ++- src/ov_SC03_108/ov_SC03_108_after.c | 22 ++- src/ov_SC03_109/ov_SC03_109_after.c | 22 ++- src/ov_SC03_110/ov_SC03_110_after.c | 22 ++- src/ov_SC03_111/ov_SC03_111_after.c | 22 ++- src/ov_SC03_112/ov_SC03_112_after.c | 22 ++- src/ov_SC03_113/ov_SC03_113_after.c | 22 ++- src/ov_SC03_114/ov_SC03_114_after.c | 22 ++- src/ov_SC03_115/ov_SC03_115_after.c | 22 ++- src/ov_SC03_116/ov_SC03_116_after.c | 22 ++- src/ov_SC03_117/ov_SC03_117_after.c | 22 ++- src/ov_SC03_118/ov_SC03_118_after.c | 22 ++- src/ov_SC03_119/ov_SC03_119_after.c | 22 ++- src/ov_SC03_121/ov_SC03_121_after.c | 22 ++- src/ov_SC03_124/ov_SC03_124_after.c | 22 ++- src/ov_SC03_125/ov_SC03_125_after.c | 22 ++- src/ov_SC03_126/ov_SC03_126_after.c | 22 ++- src/ov_SC04_000/ov_SC04_000_after.c | 22 ++- src/ov_SC04_002/ov_SC04_002_after.c | 22 ++- src/ov_SC04_003/ov_SC04_003_after.c | 22 ++- src/ov_SC04_004/ov_SC04_004_after.c | 22 ++- src/ov_SC04_005/ov_SC04_005_after.c | 22 ++- src/ov_SC04_006/ov_SC04_006_after.c | 22 ++- src/ov_SC04_007/ov_SC04_007_after.c | 22 ++- src/ov_SC04_008/ov_SC04_008_after.c | 22 ++- src/ov_SC04_009/ov_SC04_009_after.c | 22 ++- src/ov_SC04_010/ov_SC04_010_after.c | 22 ++- src/ov_SC04_011/ov_SC04_011_after.c | 22 ++- src/ov_SC04_012/ov_SC04_012_after.c | 22 ++- src/ov_SC04_015/ov_SC04_015_after.c | 22 ++- src/ov_SC04_016/ov_SC04_016_after.c | 22 ++- src/ov_SC04_018/ov_SC04_018_after.c | 22 ++- src/ov_SC04_019/ov_SC04_019_after.c | 22 ++- src/ov_SC04_020/ov_SC04_020_after.c | 22 ++- src/ov_SC04_021/ov_SC04_021_after.c | 22 ++- src/ov_SC05_000/ov_SC05_000_after.c | 22 ++- src/ov_SC05_001/ov_SC05_001_after.c | 22 ++- src/ov_SC05_002/ov_SC05_002_after.c | 22 ++- src/ov_SC05_003/ov_SC05_003_after.c | 22 ++- src/ov_SC05_004/ov_SC05_004_after.c | 22 ++- src/ov_SC05_005/ov_SC05_005_after.c | 22 ++- src/ov_SC05_006/ov_SC05_006_after.c | 22 ++- src/ov_SC05_007/ov_SC05_007_after.c | 22 ++- src/ov_SC05_008/ov_SC05_008_after.c | 22 ++- src/ov_SC05_009/ov_SC05_009_after.c | 22 ++- src/ov_SC05_010/ov_SC05_010_after.c | 22 ++- src/ov_SC05_011/ov_SC05_011_after.c | 22 ++- src/ov_SC05_017/ov_SC05_017_after.c | 22 ++- src/ov_SC05_018/ov_SC05_018_after.c | 22 ++- src/ov_SC05_019/ov_SC05_019_after.c | 22 ++- src/ov_SC06_000/ov_SC06_000_after.c | 22 ++- src/ov_SC06_006/ov_SC06_006_after.c | 22 ++- src/ov_SC06_008/ov_SC06_008_after.c | 22 ++- src/ov_SC06_010/ov_SC06_010_after.c | 22 ++- src/ov_SC06_011/ov_SC06_011_after.c | 22 ++- src/ov_SC06_013/ov_SC06_013_after.c | 22 ++- src/ov_SC06_014/ov_SC06_014_after.c | 22 ++- src/ov_SC06_015/ov_SC06_015_after.c | 22 ++- src/ov_SC06_016/ov_SC06_016_after.c | 22 ++- src/ov_SC06_018/ov_SC06_018_after.c | 22 ++- src/ov_SC06_020/ov_SC06_020_after.c | 22 ++- src/ov_SC06_022/ov_SC06_022_after.c | 22 ++- src/ov_SC06_024/ov_SC06_024_after.c | 22 ++- src/ov_SC06_025/ov_SC06_025_after.c | 22 ++- src/ov_SC06_027/ov_SC06_027_after.c | 22 ++- src/ov_SC06_029/ov_SC06_029_after.c | 22 ++- src/ov_SC06_030/ov_SC06_030_after.c | 22 ++- src/ov_SC06_032/ov_SC06_032_after.c | 22 ++- src/ov_SC06_033/ov_SC06_033_after.c | 22 ++- src/ov_SC07_000/ov_SC07_000_after.c | 22 ++- src/ov_SC07_001/ov_SC07_001_after.c | 22 ++- src/ov_SC07_002/ov_SC07_002_after.c | 22 ++- src/ov_SC07_008/ov_SC07_008_after.c | 22 ++- src/ov_SC07_009/ov_SC07_009_after.c | 22 ++- tools/jtbl_carve.py | 220 +++++++++++++++-------- tools/jtbl_family_bank.py | 9 +- tools/ld_interleave.py | 57 ++++++ 273 files changed, 3452 insertions(+), 347 deletions(-) diff --git a/config/overlays.mk b/config/overlays.mk index 94332d29c..07a466199 100644 --- a/config/overlays.mk +++ b/config/overlays.mk @@ -21,7 +21,7 @@ ov_SC01_077_ELF := $(ov_SC01_077_OUT).elf ov_SC01_077_MAPFILE := $(ov_SC01_077_OUT).map ov_SC01_077_LD_SCRIPT := $(ov_SC01_077_OUT).ld ov_SC01_077_SPLAT_YAML := config/splat.ov_SC01_077.yaml -ov_SC01_077_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8: func_8012ACE0 jtbl-rodata carve +ov_SC01_077_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_077_a.o,tail2.data.o,ov_SC01_077_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC01_077_CHECK_SHA := config/check.ov_SC01_077.sha ov_SC01_077_SYMBOLS := config/symbols.ov_SC01_077.txt ov_SC01_077_SIG := .run/sig.ov_SC01_077.jsonl @@ -43,7 +43,7 @@ ov_SC01_005_ELF := $(ov_SC01_005_OUT).elf ov_SC01_005_MAPFILE := $(ov_SC01_005_OUT).map ov_SC01_005_LD_SCRIPT := $(ov_SC01_005_OUT).ld ov_SC01_005_SPLAT_YAML := config/splat.ov_SC01_005.yaml -ov_SC01_005_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC01_005_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_005.o,tail2.data.o,ov_SC01_005_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC01_005_CHECK_SHA := config/check.ov_SC01_005.sha ov_SC01_005_SYMBOLS := config/symbols.ov_SC01_005.txt ov_SC01_005_SIG := .run/sig.ov_SC01_005.jsonl @@ -65,7 +65,7 @@ ov_SC01_006_ELF := $(ov_SC01_006_OUT).elf ov_SC01_006_MAPFILE := $(ov_SC01_006_OUT).map ov_SC01_006_LD_SCRIPT := $(ov_SC01_006_OUT).ld ov_SC01_006_SPLAT_YAML := config/splat.ov_SC01_006.yaml -ov_SC01_006_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC01_006_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_006.o,tail2.data.o,ov_SC01_006_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC01_006_CHECK_SHA := config/check.ov_SC01_006.sha ov_SC01_006_SYMBOLS := config/symbols.ov_SC01_006.txt ov_SC01_006_SIG := .run/sig.ov_SC01_006.jsonl @@ -87,7 +87,7 @@ ov_SC03_001_ELF := $(ov_SC03_001_OUT).elf ov_SC03_001_MAPFILE := $(ov_SC03_001_OUT).map ov_SC03_001_LD_SCRIPT := $(ov_SC03_001_OUT).ld ov_SC03_001_SPLAT_YAML := config/splat.ov_SC03_001.yaml -ov_SC03_001_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_001_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_001.o,tail2.data.o,ov_SC03_001_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_001_CHECK_SHA := config/check.ov_SC03_001.sha ov_SC03_001_SYMBOLS := config/symbols.ov_SC03_001.txt ov_SC03_001_SIG := .run/sig.ov_SC03_001.jsonl @@ -109,7 +109,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC01_000_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_000.o,tail2.data.o,ov_SC01_000_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -131,7 +131,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC01_001_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_001.o,tail2.data.o,ov_SC01_001_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -153,7 +153,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_000_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_000.o,tail2.data.o,ov_SC02_000_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -175,7 +175,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_003_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_003.o,tail2.data.o,ov_SC02_003_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -197,7 +197,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_002_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_002.o,tail2.data.o,ov_SC03_002_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -219,7 +219,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_006_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_006.o,tail2.data.o,ov_SC03_006_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -241,7 +241,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_000_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_000.o,tail2.data.o,ov_SC04_000_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -263,7 +263,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_018_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_018.o,tail2.data.o,ov_SC04_018_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -285,7 +285,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_019_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_019.o,tail2.data.o,ov_SC04_019_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -307,7 +307,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_000_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_000.o,tail2.data.o,ov_SC05_000_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -329,7 +329,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_000_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_000.o,tail2.data.o,ov_SC06_000_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -351,7 +351,7 @@ 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_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC07_000_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_000.o,tail2.data.o,ov_SC07_000_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve 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 @@ -373,7 +373,7 @@ ov_SC01_004_ELF := $(ov_SC01_004_OUT).elf ov_SC01_004_MAPFILE := $(ov_SC01_004_OUT).map ov_SC01_004_LD_SCRIPT := $(ov_SC01_004_OUT).ld ov_SC01_004_SPLAT_YAML := config/splat.ov_SC01_004.yaml -ov_SC01_004_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC01_004_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_004.o,tail2.data.o,ov_SC01_004_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC01_004_CHECK_SHA := config/check.ov_SC01_004.sha ov_SC01_004_SYMBOLS := config/symbols.ov_SC01_004.txt ov_SC01_004_SIG := .run/sig.ov_SC01_004.jsonl @@ -395,7 +395,7 @@ ov_SC01_008_ELF := $(ov_SC01_008_OUT).elf ov_SC01_008_MAPFILE := $(ov_SC01_008_OUT).map ov_SC01_008_LD_SCRIPT := $(ov_SC01_008_OUT).ld ov_SC01_008_SPLAT_YAML := config/splat.ov_SC01_008.yaml -ov_SC01_008_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC01_008_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_008.o,tail2.data.o,ov_SC01_008_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC01_008_CHECK_SHA := config/check.ov_SC01_008.sha ov_SC01_008_SYMBOLS := config/symbols.ov_SC01_008.txt ov_SC01_008_SIG := .run/sig.ov_SC01_008.jsonl @@ -417,7 +417,7 @@ ov_SC01_009_ELF := $(ov_SC01_009_OUT).elf ov_SC01_009_MAPFILE := $(ov_SC01_009_OUT).map ov_SC01_009_LD_SCRIPT := $(ov_SC01_009_OUT).ld ov_SC01_009_SPLAT_YAML := config/splat.ov_SC01_009.yaml -ov_SC01_009_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC01_009_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_009.o,tail2.data.o,ov_SC01_009_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC01_009_CHECK_SHA := config/check.ov_SC01_009.sha ov_SC01_009_SYMBOLS := config/symbols.ov_SC01_009.txt ov_SC01_009_SIG := .run/sig.ov_SC01_009.jsonl @@ -439,7 +439,7 @@ ov_SC01_074_ELF := $(ov_SC01_074_OUT).elf ov_SC01_074_MAPFILE := $(ov_SC01_074_OUT).map ov_SC01_074_LD_SCRIPT := $(ov_SC01_074_OUT).ld ov_SC01_074_SPLAT_YAML := config/splat.ov_SC01_074.yaml -ov_SC01_074_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC01_074_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_074.o,tail2.data.o,ov_SC01_074_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC01_074_CHECK_SHA := config/check.ov_SC01_074.sha ov_SC01_074_SYMBOLS := config/symbols.ov_SC01_074.txt ov_SC01_074_SIG := .run/sig.ov_SC01_074.jsonl @@ -461,7 +461,7 @@ ov_SC01_080_ELF := $(ov_SC01_080_OUT).elf ov_SC01_080_MAPFILE := $(ov_SC01_080_OUT).map ov_SC01_080_LD_SCRIPT := $(ov_SC01_080_OUT).ld ov_SC01_080_SPLAT_YAML := config/splat.ov_SC01_080.yaml -ov_SC01_080_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC01_080_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_080.o,tail2.data.o,ov_SC01_080_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC01_080_CHECK_SHA := config/check.ov_SC01_080.sha ov_SC01_080_SYMBOLS := config/symbols.ov_SC01_080.txt ov_SC01_080_SIG := .run/sig.ov_SC01_080.jsonl @@ -483,7 +483,7 @@ ov_SC01_084_ELF := $(ov_SC01_084_OUT).elf ov_SC01_084_MAPFILE := $(ov_SC01_084_OUT).map ov_SC01_084_LD_SCRIPT := $(ov_SC01_084_OUT).ld ov_SC01_084_SPLAT_YAML := config/splat.ov_SC01_084.yaml -ov_SC01_084_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC01_084_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_084.o,tail2.data.o,ov_SC01_084_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC01_084_CHECK_SHA := config/check.ov_SC01_084.sha ov_SC01_084_SYMBOLS := config/symbols.ov_SC01_084.txt ov_SC01_084_SIG := .run/sig.ov_SC01_084.jsonl @@ -505,7 +505,7 @@ ov_SC02_004_ELF := $(ov_SC02_004_OUT).elf ov_SC02_004_MAPFILE := $(ov_SC02_004_OUT).map ov_SC02_004_LD_SCRIPT := $(ov_SC02_004_OUT).ld ov_SC02_004_SPLAT_YAML := config/splat.ov_SC02_004.yaml -ov_SC02_004_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_004_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_004.o,tail2.data.o,ov_SC02_004_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_004_CHECK_SHA := config/check.ov_SC02_004.sha ov_SC02_004_SYMBOLS := config/symbols.ov_SC02_004.txt ov_SC02_004_SIG := .run/sig.ov_SC02_004.jsonl @@ -527,7 +527,7 @@ ov_SC02_005_ELF := $(ov_SC02_005_OUT).elf ov_SC02_005_MAPFILE := $(ov_SC02_005_OUT).map ov_SC02_005_LD_SCRIPT := $(ov_SC02_005_OUT).ld ov_SC02_005_SPLAT_YAML := config/splat.ov_SC02_005.yaml -ov_SC02_005_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_005_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_005.o,tail2.data.o,ov_SC02_005_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_005_CHECK_SHA := config/check.ov_SC02_005.sha ov_SC02_005_SYMBOLS := config/symbols.ov_SC02_005.txt ov_SC02_005_SIG := .run/sig.ov_SC02_005.jsonl @@ -549,7 +549,7 @@ ov_SC02_011_ELF := $(ov_SC02_011_OUT).elf ov_SC02_011_MAPFILE := $(ov_SC02_011_OUT).map ov_SC02_011_LD_SCRIPT := $(ov_SC02_011_OUT).ld ov_SC02_011_SPLAT_YAML := config/splat.ov_SC02_011.yaml -ov_SC02_011_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_011_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_011.o,tail2.data.o,ov_SC02_011_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_011_CHECK_SHA := config/check.ov_SC02_011.sha ov_SC02_011_SYMBOLS := config/symbols.ov_SC02_011.txt ov_SC02_011_SIG := .run/sig.ov_SC02_011.jsonl @@ -571,7 +571,7 @@ ov_SC02_015_ELF := $(ov_SC02_015_OUT).elf ov_SC02_015_MAPFILE := $(ov_SC02_015_OUT).map ov_SC02_015_LD_SCRIPT := $(ov_SC02_015_OUT).ld ov_SC02_015_SPLAT_YAML := config/splat.ov_SC02_015.yaml -ov_SC02_015_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_015_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_015.o,tail2.data.o,ov_SC02_015_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_015_CHECK_SHA := config/check.ov_SC02_015.sha ov_SC02_015_SYMBOLS := config/symbols.ov_SC02_015.txt ov_SC02_015_SIG := .run/sig.ov_SC02_015.jsonl @@ -593,7 +593,7 @@ ov_SC02_016_ELF := $(ov_SC02_016_OUT).elf ov_SC02_016_MAPFILE := $(ov_SC02_016_OUT).map ov_SC02_016_LD_SCRIPT := $(ov_SC02_016_OUT).ld ov_SC02_016_SPLAT_YAML := config/splat.ov_SC02_016.yaml -ov_SC02_016_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_016_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_016.o,tail2.data.o,ov_SC02_016_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_016_CHECK_SHA := config/check.ov_SC02_016.sha ov_SC02_016_SYMBOLS := config/symbols.ov_SC02_016.txt ov_SC02_016_SIG := .run/sig.ov_SC02_016.jsonl @@ -615,7 +615,7 @@ ov_SC02_017_ELF := $(ov_SC02_017_OUT).elf ov_SC02_017_MAPFILE := $(ov_SC02_017_OUT).map ov_SC02_017_LD_SCRIPT := $(ov_SC02_017_OUT).ld ov_SC02_017_SPLAT_YAML := config/splat.ov_SC02_017.yaml -ov_SC02_017_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_017_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_017.o,tail2.data.o,ov_SC02_017_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_017_CHECK_SHA := config/check.ov_SC02_017.sha ov_SC02_017_SYMBOLS := config/symbols.ov_SC02_017.txt ov_SC02_017_SIG := .run/sig.ov_SC02_017.jsonl @@ -637,7 +637,7 @@ ov_SC02_021_ELF := $(ov_SC02_021_OUT).elf ov_SC02_021_MAPFILE := $(ov_SC02_021_OUT).map ov_SC02_021_LD_SCRIPT := $(ov_SC02_021_OUT).ld ov_SC02_021_SPLAT_YAML := config/splat.ov_SC02_021.yaml -ov_SC02_021_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_021_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_021.o,tail2.data.o,ov_SC02_021_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_021_CHECK_SHA := config/check.ov_SC02_021.sha ov_SC02_021_SYMBOLS := config/symbols.ov_SC02_021.txt ov_SC02_021_SIG := .run/sig.ov_SC02_021.jsonl @@ -659,7 +659,7 @@ ov_SC02_026_ELF := $(ov_SC02_026_OUT).elf ov_SC02_026_MAPFILE := $(ov_SC02_026_OUT).map ov_SC02_026_LD_SCRIPT := $(ov_SC02_026_OUT).ld ov_SC02_026_SPLAT_YAML := config/splat.ov_SC02_026.yaml -ov_SC02_026_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_026_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_026.o,tail2.data.o,ov_SC02_026_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_026_CHECK_SHA := config/check.ov_SC02_026.sha ov_SC02_026_SYMBOLS := config/symbols.ov_SC02_026.txt ov_SC02_026_SIG := .run/sig.ov_SC02_026.jsonl @@ -681,7 +681,7 @@ ov_SC02_027_ELF := $(ov_SC02_027_OUT).elf ov_SC02_027_MAPFILE := $(ov_SC02_027_OUT).map ov_SC02_027_LD_SCRIPT := $(ov_SC02_027_OUT).ld ov_SC02_027_SPLAT_YAML := config/splat.ov_SC02_027.yaml -ov_SC02_027_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_027_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_027.o,tail2.data.o,ov_SC02_027_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_027_CHECK_SHA := config/check.ov_SC02_027.sha ov_SC02_027_SYMBOLS := config/symbols.ov_SC02_027.txt ov_SC02_027_SIG := .run/sig.ov_SC02_027.jsonl @@ -703,7 +703,7 @@ ov_SC02_028_ELF := $(ov_SC02_028_OUT).elf ov_SC02_028_MAPFILE := $(ov_SC02_028_OUT).map ov_SC02_028_LD_SCRIPT := $(ov_SC02_028_OUT).ld ov_SC02_028_SPLAT_YAML := config/splat.ov_SC02_028.yaml -ov_SC02_028_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_028_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_028.o,tail2.data.o,ov_SC02_028_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_028_CHECK_SHA := config/check.ov_SC02_028.sha ov_SC02_028_SYMBOLS := config/symbols.ov_SC02_028.txt ov_SC02_028_SIG := .run/sig.ov_SC02_028.jsonl @@ -725,7 +725,7 @@ ov_SC02_031_ELF := $(ov_SC02_031_OUT).elf ov_SC02_031_MAPFILE := $(ov_SC02_031_OUT).map ov_SC02_031_LD_SCRIPT := $(ov_SC02_031_OUT).ld ov_SC02_031_SPLAT_YAML := config/splat.ov_SC02_031.yaml -ov_SC02_031_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_031_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_031.o,tail2.data.o,ov_SC02_031_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_031_CHECK_SHA := config/check.ov_SC02_031.sha ov_SC02_031_SYMBOLS := config/symbols.ov_SC02_031.txt ov_SC02_031_SIG := .run/sig.ov_SC02_031.jsonl @@ -747,7 +747,7 @@ ov_SC02_035_ELF := $(ov_SC02_035_OUT).elf ov_SC02_035_MAPFILE := $(ov_SC02_035_OUT).map ov_SC02_035_LD_SCRIPT := $(ov_SC02_035_OUT).ld ov_SC02_035_SPLAT_YAML := config/splat.ov_SC02_035.yaml -ov_SC02_035_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_035_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_035.o,tail2.data.o,ov_SC02_035_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_035_CHECK_SHA := config/check.ov_SC02_035.sha ov_SC02_035_SYMBOLS := config/symbols.ov_SC02_035.txt ov_SC02_035_SIG := .run/sig.ov_SC02_035.jsonl @@ -769,7 +769,7 @@ ov_SC02_039_ELF := $(ov_SC02_039_OUT).elf ov_SC02_039_MAPFILE := $(ov_SC02_039_OUT).map ov_SC02_039_LD_SCRIPT := $(ov_SC02_039_OUT).ld ov_SC02_039_SPLAT_YAML := config/splat.ov_SC02_039.yaml -ov_SC02_039_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_039_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_039.o,tail2.data.o,ov_SC02_039_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_039_CHECK_SHA := config/check.ov_SC02_039.sha ov_SC02_039_SYMBOLS := config/symbols.ov_SC02_039.txt ov_SC02_039_SIG := .run/sig.ov_SC02_039.jsonl @@ -791,7 +791,7 @@ ov_SC02_041_ELF := $(ov_SC02_041_OUT).elf ov_SC02_041_MAPFILE := $(ov_SC02_041_OUT).map ov_SC02_041_LD_SCRIPT := $(ov_SC02_041_OUT).ld ov_SC02_041_SPLAT_YAML := config/splat.ov_SC02_041.yaml -ov_SC02_041_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_041_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_041.o,tail2.data.o,ov_SC02_041_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC02_041_CHECK_SHA := config/check.ov_SC02_041.sha ov_SC02_041_SYMBOLS := config/symbols.ov_SC02_041.txt ov_SC02_041_SIG := .run/sig.ov_SC02_041.jsonl @@ -813,7 +813,7 @@ ov_SC03_003_ELF := $(ov_SC03_003_OUT).elf ov_SC03_003_MAPFILE := $(ov_SC03_003_OUT).map ov_SC03_003_LD_SCRIPT := $(ov_SC03_003_OUT).ld ov_SC03_003_SPLAT_YAML := config/splat.ov_SC03_003.yaml -ov_SC03_003_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_003_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_003.o,tail2.data.o,ov_SC03_003_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_003_CHECK_SHA := config/check.ov_SC03_003.sha ov_SC03_003_SYMBOLS := config/symbols.ov_SC03_003.txt ov_SC03_003_SIG := .run/sig.ov_SC03_003.jsonl @@ -835,7 +835,7 @@ ov_SC03_007_ELF := $(ov_SC03_007_OUT).elf ov_SC03_007_MAPFILE := $(ov_SC03_007_OUT).map ov_SC03_007_LD_SCRIPT := $(ov_SC03_007_OUT).ld ov_SC03_007_SPLAT_YAML := config/splat.ov_SC03_007.yaml -ov_SC03_007_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_007_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_007.o,tail2.data.o,ov_SC03_007_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_007_CHECK_SHA := config/check.ov_SC03_007.sha ov_SC03_007_SYMBOLS := config/symbols.ov_SC03_007.txt ov_SC03_007_SIG := .run/sig.ov_SC03_007.jsonl @@ -857,7 +857,7 @@ ov_SC03_010_ELF := $(ov_SC03_010_OUT).elf ov_SC03_010_MAPFILE := $(ov_SC03_010_OUT).map ov_SC03_010_LD_SCRIPT := $(ov_SC03_010_OUT).ld ov_SC03_010_SPLAT_YAML := config/splat.ov_SC03_010.yaml -ov_SC03_010_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_010_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_010.o,tail2.data.o,ov_SC03_010_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_010_CHECK_SHA := config/check.ov_SC03_010.sha ov_SC03_010_SYMBOLS := config/symbols.ov_SC03_010.txt ov_SC03_010_SIG := .run/sig.ov_SC03_010.jsonl @@ -879,7 +879,7 @@ ov_SC03_011_ELF := $(ov_SC03_011_OUT).elf ov_SC03_011_MAPFILE := $(ov_SC03_011_OUT).map ov_SC03_011_LD_SCRIPT := $(ov_SC03_011_OUT).ld ov_SC03_011_SPLAT_YAML := config/splat.ov_SC03_011.yaml -ov_SC03_011_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_011_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_011.o,tail2.data.o,ov_SC03_011_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_011_CHECK_SHA := config/check.ov_SC03_011.sha ov_SC03_011_SYMBOLS := config/symbols.ov_SC03_011.txt ov_SC03_011_SIG := .run/sig.ov_SC03_011.jsonl @@ -901,7 +901,7 @@ ov_SC03_012_ELF := $(ov_SC03_012_OUT).elf ov_SC03_012_MAPFILE := $(ov_SC03_012_OUT).map ov_SC03_012_LD_SCRIPT := $(ov_SC03_012_OUT).ld ov_SC03_012_SPLAT_YAML := config/splat.ov_SC03_012.yaml -ov_SC03_012_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_012_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_012.o,tail2.data.o,ov_SC03_012_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_012_CHECK_SHA := config/check.ov_SC03_012.sha ov_SC03_012_SYMBOLS := config/symbols.ov_SC03_012.txt ov_SC03_012_SIG := .run/sig.ov_SC03_012.jsonl @@ -923,7 +923,7 @@ ov_SC03_013_ELF := $(ov_SC03_013_OUT).elf ov_SC03_013_MAPFILE := $(ov_SC03_013_OUT).map ov_SC03_013_LD_SCRIPT := $(ov_SC03_013_OUT).ld ov_SC03_013_SPLAT_YAML := config/splat.ov_SC03_013.yaml -ov_SC03_013_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_013_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_013.o,tail2.data.o,ov_SC03_013_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_013_CHECK_SHA := config/check.ov_SC03_013.sha ov_SC03_013_SYMBOLS := config/symbols.ov_SC03_013.txt ov_SC03_013_SIG := .run/sig.ov_SC03_013.jsonl @@ -945,7 +945,7 @@ ov_SC03_014_ELF := $(ov_SC03_014_OUT).elf ov_SC03_014_MAPFILE := $(ov_SC03_014_OUT).map ov_SC03_014_LD_SCRIPT := $(ov_SC03_014_OUT).ld ov_SC03_014_SPLAT_YAML := config/splat.ov_SC03_014.yaml -ov_SC03_014_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_014_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_014.o,tail2.data.o,ov_SC03_014_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_014_CHECK_SHA := config/check.ov_SC03_014.sha ov_SC03_014_SYMBOLS := config/symbols.ov_SC03_014.txt ov_SC03_014_SIG := .run/sig.ov_SC03_014.jsonl @@ -967,7 +967,7 @@ ov_SC03_015_ELF := $(ov_SC03_015_OUT).elf ov_SC03_015_MAPFILE := $(ov_SC03_015_OUT).map ov_SC03_015_LD_SCRIPT := $(ov_SC03_015_OUT).ld ov_SC03_015_SPLAT_YAML := config/splat.ov_SC03_015.yaml -ov_SC03_015_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_015_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_015.o,tail2.data.o,ov_SC03_015_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_015_CHECK_SHA := config/check.ov_SC03_015.sha ov_SC03_015_SYMBOLS := config/symbols.ov_SC03_015.txt ov_SC03_015_SIG := .run/sig.ov_SC03_015.jsonl @@ -989,7 +989,7 @@ ov_SC03_023_ELF := $(ov_SC03_023_OUT).elf ov_SC03_023_MAPFILE := $(ov_SC03_023_OUT).map ov_SC03_023_LD_SCRIPT := $(ov_SC03_023_OUT).ld ov_SC03_023_SPLAT_YAML := config/splat.ov_SC03_023.yaml -ov_SC03_023_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_023_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_023.o,tail2.data.o,ov_SC03_023_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_023_CHECK_SHA := config/check.ov_SC03_023.sha ov_SC03_023_SYMBOLS := config/symbols.ov_SC03_023.txt ov_SC03_023_SIG := .run/sig.ov_SC03_023.jsonl @@ -1011,7 +1011,7 @@ ov_SC03_024_ELF := $(ov_SC03_024_OUT).elf ov_SC03_024_MAPFILE := $(ov_SC03_024_OUT).map ov_SC03_024_LD_SCRIPT := $(ov_SC03_024_OUT).ld ov_SC03_024_SPLAT_YAML := config/splat.ov_SC03_024.yaml -ov_SC03_024_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_024_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_024.o,tail2.data.o,ov_SC03_024_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_024_CHECK_SHA := config/check.ov_SC03_024.sha ov_SC03_024_SYMBOLS := config/symbols.ov_SC03_024.txt ov_SC03_024_SIG := .run/sig.ov_SC03_024.jsonl @@ -1033,7 +1033,7 @@ ov_SC03_028_ELF := $(ov_SC03_028_OUT).elf ov_SC03_028_MAPFILE := $(ov_SC03_028_OUT).map ov_SC03_028_LD_SCRIPT := $(ov_SC03_028_OUT).ld ov_SC03_028_SPLAT_YAML := config/splat.ov_SC03_028.yaml -ov_SC03_028_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_028_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_028.o,tail2.data.o,ov_SC03_028_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_028_CHECK_SHA := config/check.ov_SC03_028.sha ov_SC03_028_SYMBOLS := config/symbols.ov_SC03_028.txt ov_SC03_028_SIG := .run/sig.ov_SC03_028.jsonl @@ -1055,7 +1055,7 @@ ov_SC03_029_ELF := $(ov_SC03_029_OUT).elf ov_SC03_029_MAPFILE := $(ov_SC03_029_OUT).map ov_SC03_029_LD_SCRIPT := $(ov_SC03_029_OUT).ld ov_SC03_029_SPLAT_YAML := config/splat.ov_SC03_029.yaml -ov_SC03_029_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_029_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_029.o,tail2.data.o,ov_SC03_029_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_029_CHECK_SHA := config/check.ov_SC03_029.sha ov_SC03_029_SYMBOLS := config/symbols.ov_SC03_029.txt ov_SC03_029_SIG := .run/sig.ov_SC03_029.jsonl @@ -1077,7 +1077,7 @@ ov_SC03_030_ELF := $(ov_SC03_030_OUT).elf ov_SC03_030_MAPFILE := $(ov_SC03_030_OUT).map ov_SC03_030_LD_SCRIPT := $(ov_SC03_030_OUT).ld ov_SC03_030_SPLAT_YAML := config/splat.ov_SC03_030.yaml -ov_SC03_030_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_030_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_030.o,tail2.data.o,ov_SC03_030_after.o,tail3.data.o # Phase-26 §8 jtbl-rodata carve ov_SC03_030_CHECK_SHA := config/check.ov_SC03_030.sha ov_SC03_030_SYMBOLS := config/symbols.ov_SC03_030.txt ov_SC03_030_SIG := .run/sig.ov_SC03_030.jsonl @@ -1099,7 +1099,7 @@ ov_SC03_031_ELF := $(ov_SC03_031_OUT).elf ov_SC03_031_MAPFILE := $(ov_SC03_031_OUT).map ov_SC03_031_LD_SCRIPT := $(ov_SC03_031_OUT).ld ov_SC03_031_SPLAT_YAML := config/splat.ov_SC03_031.yaml -ov_SC03_031_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_031_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_031.o,tail2.data.o,ov_SC03_031_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_031_CHECK_SHA := config/check.ov_SC03_031.sha ov_SC03_031_SYMBOLS := config/symbols.ov_SC03_031.txt ov_SC03_031_SIG := .run/sig.ov_SC03_031.jsonl @@ -1121,7 +1121,7 @@ ov_SC03_089_ELF := $(ov_SC03_089_OUT).elf ov_SC03_089_MAPFILE := $(ov_SC03_089_OUT).map ov_SC03_089_LD_SCRIPT := $(ov_SC03_089_OUT).ld ov_SC03_089_SPLAT_YAML := config/splat.ov_SC03_089.yaml -ov_SC03_089_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_089_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_089.o,tail2.data.o,ov_SC03_089_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_089_CHECK_SHA := config/check.ov_SC03_089.sha ov_SC03_089_SYMBOLS := config/symbols.ov_SC03_089.txt ov_SC03_089_SIG := .run/sig.ov_SC03_089.jsonl @@ -1143,7 +1143,7 @@ ov_SC03_090_ELF := $(ov_SC03_090_OUT).elf ov_SC03_090_MAPFILE := $(ov_SC03_090_OUT).map ov_SC03_090_LD_SCRIPT := $(ov_SC03_090_OUT).ld ov_SC03_090_SPLAT_YAML := config/splat.ov_SC03_090.yaml -ov_SC03_090_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_090_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_090.o,tail2.data.o,ov_SC03_090_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_090_CHECK_SHA := config/check.ov_SC03_090.sha ov_SC03_090_SYMBOLS := config/symbols.ov_SC03_090.txt ov_SC03_090_SIG := .run/sig.ov_SC03_090.jsonl @@ -1165,7 +1165,7 @@ ov_SC03_091_ELF := $(ov_SC03_091_OUT).elf ov_SC03_091_MAPFILE := $(ov_SC03_091_OUT).map ov_SC03_091_LD_SCRIPT := $(ov_SC03_091_OUT).ld ov_SC03_091_SPLAT_YAML := config/splat.ov_SC03_091.yaml -ov_SC03_091_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_091_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_091.o,tail2.data.o,ov_SC03_091_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_091_CHECK_SHA := config/check.ov_SC03_091.sha ov_SC03_091_SYMBOLS := config/symbols.ov_SC03_091.txt ov_SC03_091_SIG := .run/sig.ov_SC03_091.jsonl @@ -1187,7 +1187,7 @@ ov_SC03_092_ELF := $(ov_SC03_092_OUT).elf ov_SC03_092_MAPFILE := $(ov_SC03_092_OUT).map ov_SC03_092_LD_SCRIPT := $(ov_SC03_092_OUT).ld ov_SC03_092_SPLAT_YAML := config/splat.ov_SC03_092.yaml -ov_SC03_092_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_092_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_092.o,tail2.data.o,ov_SC03_092_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_092_CHECK_SHA := config/check.ov_SC03_092.sha ov_SC03_092_SYMBOLS := config/symbols.ov_SC03_092.txt ov_SC03_092_SIG := .run/sig.ov_SC03_092.jsonl @@ -1209,7 +1209,7 @@ ov_SC03_093_ELF := $(ov_SC03_093_OUT).elf ov_SC03_093_MAPFILE := $(ov_SC03_093_OUT).map ov_SC03_093_LD_SCRIPT := $(ov_SC03_093_OUT).ld ov_SC03_093_SPLAT_YAML := config/splat.ov_SC03_093.yaml -ov_SC03_093_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_093_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_093.o,tail2.data.o,ov_SC03_093_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_093_CHECK_SHA := config/check.ov_SC03_093.sha ov_SC03_093_SYMBOLS := config/symbols.ov_SC03_093.txt ov_SC03_093_SIG := .run/sig.ov_SC03_093.jsonl @@ -1231,7 +1231,7 @@ ov_SC03_094_ELF := $(ov_SC03_094_OUT).elf ov_SC03_094_MAPFILE := $(ov_SC03_094_OUT).map ov_SC03_094_LD_SCRIPT := $(ov_SC03_094_OUT).ld ov_SC03_094_SPLAT_YAML := config/splat.ov_SC03_094.yaml -ov_SC03_094_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_094_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_094.o,tail2.data.o,ov_SC03_094_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_094_CHECK_SHA := config/check.ov_SC03_094.sha ov_SC03_094_SYMBOLS := config/symbols.ov_SC03_094.txt ov_SC03_094_SIG := .run/sig.ov_SC03_094.jsonl @@ -1253,7 +1253,7 @@ ov_SC03_095_ELF := $(ov_SC03_095_OUT).elf ov_SC03_095_MAPFILE := $(ov_SC03_095_OUT).map ov_SC03_095_LD_SCRIPT := $(ov_SC03_095_OUT).ld ov_SC03_095_SPLAT_YAML := config/splat.ov_SC03_095.yaml -ov_SC03_095_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_095_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_095.o,tail2.data.o,ov_SC03_095_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_095_CHECK_SHA := config/check.ov_SC03_095.sha ov_SC03_095_SYMBOLS := config/symbols.ov_SC03_095.txt ov_SC03_095_SIG := .run/sig.ov_SC03_095.jsonl @@ -1275,7 +1275,7 @@ ov_SC03_096_ELF := $(ov_SC03_096_OUT).elf ov_SC03_096_MAPFILE := $(ov_SC03_096_OUT).map ov_SC03_096_LD_SCRIPT := $(ov_SC03_096_OUT).ld ov_SC03_096_SPLAT_YAML := config/splat.ov_SC03_096.yaml -ov_SC03_096_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_096_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_096.o,tail2.data.o,ov_SC03_096_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_096_CHECK_SHA := config/check.ov_SC03_096.sha ov_SC03_096_SYMBOLS := config/symbols.ov_SC03_096.txt ov_SC03_096_SIG := .run/sig.ov_SC03_096.jsonl @@ -1297,7 +1297,7 @@ ov_SC03_097_ELF := $(ov_SC03_097_OUT).elf ov_SC03_097_MAPFILE := $(ov_SC03_097_OUT).map ov_SC03_097_LD_SCRIPT := $(ov_SC03_097_OUT).ld ov_SC03_097_SPLAT_YAML := config/splat.ov_SC03_097.yaml -ov_SC03_097_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_097_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_097.o,tail2.data.o,ov_SC03_097_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_097_CHECK_SHA := config/check.ov_SC03_097.sha ov_SC03_097_SYMBOLS := config/symbols.ov_SC03_097.txt ov_SC03_097_SIG := .run/sig.ov_SC03_097.jsonl @@ -1319,7 +1319,7 @@ ov_SC03_098_ELF := $(ov_SC03_098_OUT).elf ov_SC03_098_MAPFILE := $(ov_SC03_098_OUT).map ov_SC03_098_LD_SCRIPT := $(ov_SC03_098_OUT).ld ov_SC03_098_SPLAT_YAML := config/splat.ov_SC03_098.yaml -ov_SC03_098_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_098_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_098.o,tail2.data.o,ov_SC03_098_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_098_CHECK_SHA := config/check.ov_SC03_098.sha ov_SC03_098_SYMBOLS := config/symbols.ov_SC03_098.txt ov_SC03_098_SIG := .run/sig.ov_SC03_098.jsonl @@ -1341,7 +1341,7 @@ ov_SC03_099_ELF := $(ov_SC03_099_OUT).elf ov_SC03_099_MAPFILE := $(ov_SC03_099_OUT).map ov_SC03_099_LD_SCRIPT := $(ov_SC03_099_OUT).ld ov_SC03_099_SPLAT_YAML := config/splat.ov_SC03_099.yaml -ov_SC03_099_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_099_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_099.o,tail2.data.o,ov_SC03_099_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_099_CHECK_SHA := config/check.ov_SC03_099.sha ov_SC03_099_SYMBOLS := config/symbols.ov_SC03_099.txt ov_SC03_099_SIG := .run/sig.ov_SC03_099.jsonl @@ -1363,7 +1363,7 @@ ov_SC03_100_ELF := $(ov_SC03_100_OUT).elf ov_SC03_100_MAPFILE := $(ov_SC03_100_OUT).map ov_SC03_100_LD_SCRIPT := $(ov_SC03_100_OUT).ld ov_SC03_100_SPLAT_YAML := config/splat.ov_SC03_100.yaml -ov_SC03_100_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_100_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_100.o,tail2.data.o,ov_SC03_100_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_100_CHECK_SHA := config/check.ov_SC03_100.sha ov_SC03_100_SYMBOLS := config/symbols.ov_SC03_100.txt ov_SC03_100_SIG := .run/sig.ov_SC03_100.jsonl @@ -1385,7 +1385,7 @@ ov_SC03_101_ELF := $(ov_SC03_101_OUT).elf ov_SC03_101_MAPFILE := $(ov_SC03_101_OUT).map ov_SC03_101_LD_SCRIPT := $(ov_SC03_101_OUT).ld ov_SC03_101_SPLAT_YAML := config/splat.ov_SC03_101.yaml -ov_SC03_101_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_101_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_101.o,tail2.data.o,ov_SC03_101_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_101_CHECK_SHA := config/check.ov_SC03_101.sha ov_SC03_101_SYMBOLS := config/symbols.ov_SC03_101.txt ov_SC03_101_SIG := .run/sig.ov_SC03_101.jsonl @@ -1407,7 +1407,7 @@ ov_SC03_102_ELF := $(ov_SC03_102_OUT).elf ov_SC03_102_MAPFILE := $(ov_SC03_102_OUT).map ov_SC03_102_LD_SCRIPT := $(ov_SC03_102_OUT).ld ov_SC03_102_SPLAT_YAML := config/splat.ov_SC03_102.yaml -ov_SC03_102_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_102_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_102.o,tail2.data.o,ov_SC03_102_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_102_CHECK_SHA := config/check.ov_SC03_102.sha ov_SC03_102_SYMBOLS := config/symbols.ov_SC03_102.txt ov_SC03_102_SIG := .run/sig.ov_SC03_102.jsonl @@ -1429,7 +1429,7 @@ ov_SC03_103_ELF := $(ov_SC03_103_OUT).elf ov_SC03_103_MAPFILE := $(ov_SC03_103_OUT).map ov_SC03_103_LD_SCRIPT := $(ov_SC03_103_OUT).ld ov_SC03_103_SPLAT_YAML := config/splat.ov_SC03_103.yaml -ov_SC03_103_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_103_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_103.o,tail2.data.o,ov_SC03_103_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_103_CHECK_SHA := config/check.ov_SC03_103.sha ov_SC03_103_SYMBOLS := config/symbols.ov_SC03_103.txt ov_SC03_103_SIG := .run/sig.ov_SC03_103.jsonl @@ -1451,7 +1451,7 @@ ov_SC03_104_ELF := $(ov_SC03_104_OUT).elf ov_SC03_104_MAPFILE := $(ov_SC03_104_OUT).map ov_SC03_104_LD_SCRIPT := $(ov_SC03_104_OUT).ld ov_SC03_104_SPLAT_YAML := config/splat.ov_SC03_104.yaml -ov_SC03_104_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_104_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_104.o,tail2.data.o,ov_SC03_104_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_104_CHECK_SHA := config/check.ov_SC03_104.sha ov_SC03_104_SYMBOLS := config/symbols.ov_SC03_104.txt ov_SC03_104_SIG := .run/sig.ov_SC03_104.jsonl @@ -1473,7 +1473,7 @@ ov_SC03_105_ELF := $(ov_SC03_105_OUT).elf ov_SC03_105_MAPFILE := $(ov_SC03_105_OUT).map ov_SC03_105_LD_SCRIPT := $(ov_SC03_105_OUT).ld ov_SC03_105_SPLAT_YAML := config/splat.ov_SC03_105.yaml -ov_SC03_105_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_105_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_105.o,tail2.data.o,ov_SC03_105_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_105_CHECK_SHA := config/check.ov_SC03_105.sha ov_SC03_105_SYMBOLS := config/symbols.ov_SC03_105.txt ov_SC03_105_SIG := .run/sig.ov_SC03_105.jsonl @@ -1495,7 +1495,7 @@ ov_SC03_108_ELF := $(ov_SC03_108_OUT).elf ov_SC03_108_MAPFILE := $(ov_SC03_108_OUT).map ov_SC03_108_LD_SCRIPT := $(ov_SC03_108_OUT).ld ov_SC03_108_SPLAT_YAML := config/splat.ov_SC03_108.yaml -ov_SC03_108_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_108_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_108.o,tail2.data.o,ov_SC03_108_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_108_CHECK_SHA := config/check.ov_SC03_108.sha ov_SC03_108_SYMBOLS := config/symbols.ov_SC03_108.txt ov_SC03_108_SIG := .run/sig.ov_SC03_108.jsonl @@ -1517,7 +1517,7 @@ ov_SC03_109_ELF := $(ov_SC03_109_OUT).elf ov_SC03_109_MAPFILE := $(ov_SC03_109_OUT).map ov_SC03_109_LD_SCRIPT := $(ov_SC03_109_OUT).ld ov_SC03_109_SPLAT_YAML := config/splat.ov_SC03_109.yaml -ov_SC03_109_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_109_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_109.o,tail2.data.o,ov_SC03_109_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_109_CHECK_SHA := config/check.ov_SC03_109.sha ov_SC03_109_SYMBOLS := config/symbols.ov_SC03_109.txt ov_SC03_109_SIG := .run/sig.ov_SC03_109.jsonl @@ -1539,7 +1539,7 @@ ov_SC03_110_ELF := $(ov_SC03_110_OUT).elf ov_SC03_110_MAPFILE := $(ov_SC03_110_OUT).map ov_SC03_110_LD_SCRIPT := $(ov_SC03_110_OUT).ld ov_SC03_110_SPLAT_YAML := config/splat.ov_SC03_110.yaml -ov_SC03_110_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_110_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_110.o,tail2.data.o,ov_SC03_110_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_110_CHECK_SHA := config/check.ov_SC03_110.sha ov_SC03_110_SYMBOLS := config/symbols.ov_SC03_110.txt ov_SC03_110_SIG := .run/sig.ov_SC03_110.jsonl @@ -1561,7 +1561,7 @@ ov_SC03_111_ELF := $(ov_SC03_111_OUT).elf ov_SC03_111_MAPFILE := $(ov_SC03_111_OUT).map ov_SC03_111_LD_SCRIPT := $(ov_SC03_111_OUT).ld ov_SC03_111_SPLAT_YAML := config/splat.ov_SC03_111.yaml -ov_SC03_111_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_111_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_111.o,tail2.data.o,ov_SC03_111_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_111_CHECK_SHA := config/check.ov_SC03_111.sha ov_SC03_111_SYMBOLS := config/symbols.ov_SC03_111.txt ov_SC03_111_SIG := .run/sig.ov_SC03_111.jsonl @@ -1583,7 +1583,7 @@ ov_SC03_112_ELF := $(ov_SC03_112_OUT).elf ov_SC03_112_MAPFILE := $(ov_SC03_112_OUT).map ov_SC03_112_LD_SCRIPT := $(ov_SC03_112_OUT).ld ov_SC03_112_SPLAT_YAML := config/splat.ov_SC03_112.yaml -ov_SC03_112_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_112_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_112.o,tail2.data.o,ov_SC03_112_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_112_CHECK_SHA := config/check.ov_SC03_112.sha ov_SC03_112_SYMBOLS := config/symbols.ov_SC03_112.txt ov_SC03_112_SIG := .run/sig.ov_SC03_112.jsonl @@ -1605,7 +1605,7 @@ ov_SC03_113_ELF := $(ov_SC03_113_OUT).elf ov_SC03_113_MAPFILE := $(ov_SC03_113_OUT).map ov_SC03_113_LD_SCRIPT := $(ov_SC03_113_OUT).ld ov_SC03_113_SPLAT_YAML := config/splat.ov_SC03_113.yaml -ov_SC03_113_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_113_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_113.o,tail2.data.o,ov_SC03_113_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_113_CHECK_SHA := config/check.ov_SC03_113.sha ov_SC03_113_SYMBOLS := config/symbols.ov_SC03_113.txt ov_SC03_113_SIG := .run/sig.ov_SC03_113.jsonl @@ -1627,7 +1627,7 @@ ov_SC03_114_ELF := $(ov_SC03_114_OUT).elf ov_SC03_114_MAPFILE := $(ov_SC03_114_OUT).map ov_SC03_114_LD_SCRIPT := $(ov_SC03_114_OUT).ld ov_SC03_114_SPLAT_YAML := config/splat.ov_SC03_114.yaml -ov_SC03_114_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_114_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_114.o,tail2.data.o,ov_SC03_114_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_114_CHECK_SHA := config/check.ov_SC03_114.sha ov_SC03_114_SYMBOLS := config/symbols.ov_SC03_114.txt ov_SC03_114_SIG := .run/sig.ov_SC03_114.jsonl @@ -1649,7 +1649,7 @@ ov_SC03_115_ELF := $(ov_SC03_115_OUT).elf ov_SC03_115_MAPFILE := $(ov_SC03_115_OUT).map ov_SC03_115_LD_SCRIPT := $(ov_SC03_115_OUT).ld ov_SC03_115_SPLAT_YAML := config/splat.ov_SC03_115.yaml -ov_SC03_115_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_115_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_115.o,tail2.data.o,ov_SC03_115_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_115_CHECK_SHA := config/check.ov_SC03_115.sha ov_SC03_115_SYMBOLS := config/symbols.ov_SC03_115.txt ov_SC03_115_SIG := .run/sig.ov_SC03_115.jsonl @@ -1671,7 +1671,7 @@ ov_SC03_116_ELF := $(ov_SC03_116_OUT).elf ov_SC03_116_MAPFILE := $(ov_SC03_116_OUT).map ov_SC03_116_LD_SCRIPT := $(ov_SC03_116_OUT).ld ov_SC03_116_SPLAT_YAML := config/splat.ov_SC03_116.yaml -ov_SC03_116_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_116_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_116.o,tail2.data.o,ov_SC03_116_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_116_CHECK_SHA := config/check.ov_SC03_116.sha ov_SC03_116_SYMBOLS := config/symbols.ov_SC03_116.txt ov_SC03_116_SIG := .run/sig.ov_SC03_116.jsonl @@ -1693,7 +1693,7 @@ ov_SC03_117_ELF := $(ov_SC03_117_OUT).elf ov_SC03_117_MAPFILE := $(ov_SC03_117_OUT).map ov_SC03_117_LD_SCRIPT := $(ov_SC03_117_OUT).ld ov_SC03_117_SPLAT_YAML := config/splat.ov_SC03_117.yaml -ov_SC03_117_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_117_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_117.o,tail2.data.o,ov_SC03_117_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_117_CHECK_SHA := config/check.ov_SC03_117.sha ov_SC03_117_SYMBOLS := config/symbols.ov_SC03_117.txt ov_SC03_117_SIG := .run/sig.ov_SC03_117.jsonl @@ -1715,7 +1715,7 @@ ov_SC03_118_ELF := $(ov_SC03_118_OUT).elf ov_SC03_118_MAPFILE := $(ov_SC03_118_OUT).map ov_SC03_118_LD_SCRIPT := $(ov_SC03_118_OUT).ld ov_SC03_118_SPLAT_YAML := config/splat.ov_SC03_118.yaml -ov_SC03_118_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_118_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_118.o,tail2.data.o,ov_SC03_118_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_118_CHECK_SHA := config/check.ov_SC03_118.sha ov_SC03_118_SYMBOLS := config/symbols.ov_SC03_118.txt ov_SC03_118_SIG := .run/sig.ov_SC03_118.jsonl @@ -1737,7 +1737,7 @@ ov_SC03_119_ELF := $(ov_SC03_119_OUT).elf ov_SC03_119_MAPFILE := $(ov_SC03_119_OUT).map ov_SC03_119_LD_SCRIPT := $(ov_SC03_119_OUT).ld ov_SC03_119_SPLAT_YAML := config/splat.ov_SC03_119.yaml -ov_SC03_119_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_119_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_119.o,tail2.data.o,ov_SC03_119_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_119_CHECK_SHA := config/check.ov_SC03_119.sha ov_SC03_119_SYMBOLS := config/symbols.ov_SC03_119.txt ov_SC03_119_SIG := .run/sig.ov_SC03_119.jsonl @@ -1759,7 +1759,7 @@ ov_SC03_121_ELF := $(ov_SC03_121_OUT).elf ov_SC03_121_MAPFILE := $(ov_SC03_121_OUT).map ov_SC03_121_LD_SCRIPT := $(ov_SC03_121_OUT).ld ov_SC03_121_SPLAT_YAML := config/splat.ov_SC03_121.yaml -ov_SC03_121_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_121_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_121.o,tail2.data.o,ov_SC03_121_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_121_CHECK_SHA := config/check.ov_SC03_121.sha ov_SC03_121_SYMBOLS := config/symbols.ov_SC03_121.txt ov_SC03_121_SIG := .run/sig.ov_SC03_121.jsonl @@ -1781,7 +1781,7 @@ ov_SC03_124_ELF := $(ov_SC03_124_OUT).elf ov_SC03_124_MAPFILE := $(ov_SC03_124_OUT).map ov_SC03_124_LD_SCRIPT := $(ov_SC03_124_OUT).ld ov_SC03_124_SPLAT_YAML := config/splat.ov_SC03_124.yaml -ov_SC03_124_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_124_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_124.o,tail2.data.o,ov_SC03_124_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_124_CHECK_SHA := config/check.ov_SC03_124.sha ov_SC03_124_SYMBOLS := config/symbols.ov_SC03_124.txt ov_SC03_124_SIG := .run/sig.ov_SC03_124.jsonl @@ -1803,7 +1803,7 @@ ov_SC03_125_ELF := $(ov_SC03_125_OUT).elf ov_SC03_125_MAPFILE := $(ov_SC03_125_OUT).map ov_SC03_125_LD_SCRIPT := $(ov_SC03_125_OUT).ld ov_SC03_125_SPLAT_YAML := config/splat.ov_SC03_125.yaml -ov_SC03_125_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_125_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_125.o,tail2.data.o,ov_SC03_125_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_125_CHECK_SHA := config/check.ov_SC03_125.sha ov_SC03_125_SYMBOLS := config/symbols.ov_SC03_125.txt ov_SC03_125_SIG := .run/sig.ov_SC03_125.jsonl @@ -1825,7 +1825,7 @@ ov_SC03_126_ELF := $(ov_SC03_126_OUT).elf ov_SC03_126_MAPFILE := $(ov_SC03_126_OUT).map ov_SC03_126_LD_SCRIPT := $(ov_SC03_126_OUT).ld ov_SC03_126_SPLAT_YAML := config/splat.ov_SC03_126.yaml -ov_SC03_126_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_126_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_126.o,tail2.data.o,ov_SC03_126_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC03_126_CHECK_SHA := config/check.ov_SC03_126.sha ov_SC03_126_SYMBOLS := config/symbols.ov_SC03_126.txt ov_SC03_126_SIG := .run/sig.ov_SC03_126.jsonl @@ -1847,7 +1847,7 @@ ov_SC04_002_ELF := $(ov_SC04_002_OUT).elf ov_SC04_002_MAPFILE := $(ov_SC04_002_OUT).map ov_SC04_002_LD_SCRIPT := $(ov_SC04_002_OUT).ld ov_SC04_002_SPLAT_YAML := config/splat.ov_SC04_002.yaml -ov_SC04_002_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_002_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_002.o,tail2.data.o,ov_SC04_002_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_002_CHECK_SHA := config/check.ov_SC04_002.sha ov_SC04_002_SYMBOLS := config/symbols.ov_SC04_002.txt ov_SC04_002_SIG := .run/sig.ov_SC04_002.jsonl @@ -1869,7 +1869,7 @@ ov_SC04_003_ELF := $(ov_SC04_003_OUT).elf ov_SC04_003_MAPFILE := $(ov_SC04_003_OUT).map ov_SC04_003_LD_SCRIPT := $(ov_SC04_003_OUT).ld ov_SC04_003_SPLAT_YAML := config/splat.ov_SC04_003.yaml -ov_SC04_003_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_003_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_003.o,tail2.data.o,ov_SC04_003_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_003_CHECK_SHA := config/check.ov_SC04_003.sha ov_SC04_003_SYMBOLS := config/symbols.ov_SC04_003.txt ov_SC04_003_SIG := .run/sig.ov_SC04_003.jsonl @@ -1891,7 +1891,7 @@ ov_SC04_004_ELF := $(ov_SC04_004_OUT).elf ov_SC04_004_MAPFILE := $(ov_SC04_004_OUT).map ov_SC04_004_LD_SCRIPT := $(ov_SC04_004_OUT).ld ov_SC04_004_SPLAT_YAML := config/splat.ov_SC04_004.yaml -ov_SC04_004_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_004_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_004.o,tail2.data.o,ov_SC04_004_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_004_CHECK_SHA := config/check.ov_SC04_004.sha ov_SC04_004_SYMBOLS := config/symbols.ov_SC04_004.txt ov_SC04_004_SIG := .run/sig.ov_SC04_004.jsonl @@ -1913,7 +1913,7 @@ ov_SC04_005_ELF := $(ov_SC04_005_OUT).elf ov_SC04_005_MAPFILE := $(ov_SC04_005_OUT).map ov_SC04_005_LD_SCRIPT := $(ov_SC04_005_OUT).ld ov_SC04_005_SPLAT_YAML := config/splat.ov_SC04_005.yaml -ov_SC04_005_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_005_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_005.o,tail2.data.o,ov_SC04_005_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_005_CHECK_SHA := config/check.ov_SC04_005.sha ov_SC04_005_SYMBOLS := config/symbols.ov_SC04_005.txt ov_SC04_005_SIG := .run/sig.ov_SC04_005.jsonl @@ -1935,7 +1935,7 @@ ov_SC04_006_ELF := $(ov_SC04_006_OUT).elf ov_SC04_006_MAPFILE := $(ov_SC04_006_OUT).map ov_SC04_006_LD_SCRIPT := $(ov_SC04_006_OUT).ld ov_SC04_006_SPLAT_YAML := config/splat.ov_SC04_006.yaml -ov_SC04_006_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_006_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_006.o,tail2.data.o,ov_SC04_006_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_006_CHECK_SHA := config/check.ov_SC04_006.sha ov_SC04_006_SYMBOLS := config/symbols.ov_SC04_006.txt ov_SC04_006_SIG := .run/sig.ov_SC04_006.jsonl @@ -1957,7 +1957,7 @@ ov_SC04_007_ELF := $(ov_SC04_007_OUT).elf ov_SC04_007_MAPFILE := $(ov_SC04_007_OUT).map ov_SC04_007_LD_SCRIPT := $(ov_SC04_007_OUT).ld ov_SC04_007_SPLAT_YAML := config/splat.ov_SC04_007.yaml -ov_SC04_007_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_007_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_007.o,tail2.data.o,ov_SC04_007_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_007_CHECK_SHA := config/check.ov_SC04_007.sha ov_SC04_007_SYMBOLS := config/symbols.ov_SC04_007.txt ov_SC04_007_SIG := .run/sig.ov_SC04_007.jsonl @@ -1979,7 +1979,7 @@ ov_SC04_008_ELF := $(ov_SC04_008_OUT).elf ov_SC04_008_MAPFILE := $(ov_SC04_008_OUT).map ov_SC04_008_LD_SCRIPT := $(ov_SC04_008_OUT).ld ov_SC04_008_SPLAT_YAML := config/splat.ov_SC04_008.yaml -ov_SC04_008_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_008_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_008.o,tail2.data.o,ov_SC04_008_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_008_CHECK_SHA := config/check.ov_SC04_008.sha ov_SC04_008_SYMBOLS := config/symbols.ov_SC04_008.txt ov_SC04_008_SIG := .run/sig.ov_SC04_008.jsonl @@ -2001,7 +2001,7 @@ ov_SC04_009_ELF := $(ov_SC04_009_OUT).elf ov_SC04_009_MAPFILE := $(ov_SC04_009_OUT).map ov_SC04_009_LD_SCRIPT := $(ov_SC04_009_OUT).ld ov_SC04_009_SPLAT_YAML := config/splat.ov_SC04_009.yaml -ov_SC04_009_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_009_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_009.o,tail2.data.o,ov_SC04_009_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_009_CHECK_SHA := config/check.ov_SC04_009.sha ov_SC04_009_SYMBOLS := config/symbols.ov_SC04_009.txt ov_SC04_009_SIG := .run/sig.ov_SC04_009.jsonl @@ -2023,7 +2023,7 @@ ov_SC04_010_ELF := $(ov_SC04_010_OUT).elf ov_SC04_010_MAPFILE := $(ov_SC04_010_OUT).map ov_SC04_010_LD_SCRIPT := $(ov_SC04_010_OUT).ld ov_SC04_010_SPLAT_YAML := config/splat.ov_SC04_010.yaml -ov_SC04_010_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_010_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_010.o,tail2.data.o,ov_SC04_010_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_010_CHECK_SHA := config/check.ov_SC04_010.sha ov_SC04_010_SYMBOLS := config/symbols.ov_SC04_010.txt ov_SC04_010_SIG := .run/sig.ov_SC04_010.jsonl @@ -2045,7 +2045,7 @@ ov_SC04_011_ELF := $(ov_SC04_011_OUT).elf ov_SC04_011_MAPFILE := $(ov_SC04_011_OUT).map ov_SC04_011_LD_SCRIPT := $(ov_SC04_011_OUT).ld ov_SC04_011_SPLAT_YAML := config/splat.ov_SC04_011.yaml -ov_SC04_011_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_011_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_011.o,tail2.data.o,ov_SC04_011_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_011_CHECK_SHA := config/check.ov_SC04_011.sha ov_SC04_011_SYMBOLS := config/symbols.ov_SC04_011.txt ov_SC04_011_SIG := .run/sig.ov_SC04_011.jsonl @@ -2067,7 +2067,7 @@ ov_SC04_012_ELF := $(ov_SC04_012_OUT).elf ov_SC04_012_MAPFILE := $(ov_SC04_012_OUT).map ov_SC04_012_LD_SCRIPT := $(ov_SC04_012_OUT).ld ov_SC04_012_SPLAT_YAML := config/splat.ov_SC04_012.yaml -ov_SC04_012_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_012_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_012.o,tail2.data.o,ov_SC04_012_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_012_CHECK_SHA := config/check.ov_SC04_012.sha ov_SC04_012_SYMBOLS := config/symbols.ov_SC04_012.txt ov_SC04_012_SIG := .run/sig.ov_SC04_012.jsonl @@ -2089,7 +2089,7 @@ ov_SC04_015_ELF := $(ov_SC04_015_OUT).elf ov_SC04_015_MAPFILE := $(ov_SC04_015_OUT).map ov_SC04_015_LD_SCRIPT := $(ov_SC04_015_OUT).ld ov_SC04_015_SPLAT_YAML := config/splat.ov_SC04_015.yaml -ov_SC04_015_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_015_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_015.o,tail2.data.o,ov_SC04_015_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_015_CHECK_SHA := config/check.ov_SC04_015.sha ov_SC04_015_SYMBOLS := config/symbols.ov_SC04_015.txt ov_SC04_015_SIG := .run/sig.ov_SC04_015.jsonl @@ -2111,7 +2111,7 @@ ov_SC04_016_ELF := $(ov_SC04_016_OUT).elf ov_SC04_016_MAPFILE := $(ov_SC04_016_OUT).map ov_SC04_016_LD_SCRIPT := $(ov_SC04_016_OUT).ld ov_SC04_016_SPLAT_YAML := config/splat.ov_SC04_016.yaml -ov_SC04_016_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_016_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_016.o,tail2.data.o,ov_SC04_016_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_016_CHECK_SHA := config/check.ov_SC04_016.sha ov_SC04_016_SYMBOLS := config/symbols.ov_SC04_016.txt ov_SC04_016_SIG := .run/sig.ov_SC04_016.jsonl @@ -2133,7 +2133,7 @@ ov_SC04_020_ELF := $(ov_SC04_020_OUT).elf ov_SC04_020_MAPFILE := $(ov_SC04_020_OUT).map ov_SC04_020_LD_SCRIPT := $(ov_SC04_020_OUT).ld ov_SC04_020_SPLAT_YAML := config/splat.ov_SC04_020.yaml -ov_SC04_020_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_020_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_020.o,tail2.data.o,ov_SC04_020_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_020_CHECK_SHA := config/check.ov_SC04_020.sha ov_SC04_020_SYMBOLS := config/symbols.ov_SC04_020.txt ov_SC04_020_SIG := .run/sig.ov_SC04_020.jsonl @@ -2155,7 +2155,7 @@ ov_SC04_021_ELF := $(ov_SC04_021_OUT).elf ov_SC04_021_MAPFILE := $(ov_SC04_021_OUT).map ov_SC04_021_LD_SCRIPT := $(ov_SC04_021_OUT).ld ov_SC04_021_SPLAT_YAML := config/splat.ov_SC04_021.yaml -ov_SC04_021_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC04_021_JTBL_INTERLEAVE := --order tail.data.o,ov_SC04_021.o,tail2.data.o,ov_SC04_021_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC04_021_CHECK_SHA := config/check.ov_SC04_021.sha ov_SC04_021_SYMBOLS := config/symbols.ov_SC04_021.txt ov_SC04_021_SIG := .run/sig.ov_SC04_021.jsonl @@ -2177,7 +2177,7 @@ ov_SC05_001_ELF := $(ov_SC05_001_OUT).elf ov_SC05_001_MAPFILE := $(ov_SC05_001_OUT).map ov_SC05_001_LD_SCRIPT := $(ov_SC05_001_OUT).ld ov_SC05_001_SPLAT_YAML := config/splat.ov_SC05_001.yaml -ov_SC05_001_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_001_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_001.o,tail2.data.o,ov_SC05_001_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_001_CHECK_SHA := config/check.ov_SC05_001.sha ov_SC05_001_SYMBOLS := config/symbols.ov_SC05_001.txt ov_SC05_001_SIG := .run/sig.ov_SC05_001.jsonl @@ -2199,7 +2199,7 @@ ov_SC05_002_ELF := $(ov_SC05_002_OUT).elf ov_SC05_002_MAPFILE := $(ov_SC05_002_OUT).map ov_SC05_002_LD_SCRIPT := $(ov_SC05_002_OUT).ld ov_SC05_002_SPLAT_YAML := config/splat.ov_SC05_002.yaml -ov_SC05_002_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_002_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_002.o,tail2.data.o,ov_SC05_002_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_002_CHECK_SHA := config/check.ov_SC05_002.sha ov_SC05_002_SYMBOLS := config/symbols.ov_SC05_002.txt ov_SC05_002_SIG := .run/sig.ov_SC05_002.jsonl @@ -2221,7 +2221,7 @@ ov_SC05_003_ELF := $(ov_SC05_003_OUT).elf ov_SC05_003_MAPFILE := $(ov_SC05_003_OUT).map ov_SC05_003_LD_SCRIPT := $(ov_SC05_003_OUT).ld ov_SC05_003_SPLAT_YAML := config/splat.ov_SC05_003.yaml -ov_SC05_003_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_003_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_003.o,tail2.data.o,ov_SC05_003_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_003_CHECK_SHA := config/check.ov_SC05_003.sha ov_SC05_003_SYMBOLS := config/symbols.ov_SC05_003.txt ov_SC05_003_SIG := .run/sig.ov_SC05_003.jsonl @@ -2243,7 +2243,7 @@ ov_SC05_004_ELF := $(ov_SC05_004_OUT).elf ov_SC05_004_MAPFILE := $(ov_SC05_004_OUT).map ov_SC05_004_LD_SCRIPT := $(ov_SC05_004_OUT).ld ov_SC05_004_SPLAT_YAML := config/splat.ov_SC05_004.yaml -ov_SC05_004_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_004_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_004.o,tail2.data.o,ov_SC05_004_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_004_CHECK_SHA := config/check.ov_SC05_004.sha ov_SC05_004_SYMBOLS := config/symbols.ov_SC05_004.txt ov_SC05_004_SIG := .run/sig.ov_SC05_004.jsonl @@ -2265,7 +2265,7 @@ ov_SC05_005_ELF := $(ov_SC05_005_OUT).elf ov_SC05_005_MAPFILE := $(ov_SC05_005_OUT).map ov_SC05_005_LD_SCRIPT := $(ov_SC05_005_OUT).ld ov_SC05_005_SPLAT_YAML := config/splat.ov_SC05_005.yaml -ov_SC05_005_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_005_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_005.o,tail2.data.o,ov_SC05_005_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_005_CHECK_SHA := config/check.ov_SC05_005.sha ov_SC05_005_SYMBOLS := config/symbols.ov_SC05_005.txt ov_SC05_005_SIG := .run/sig.ov_SC05_005.jsonl @@ -2287,7 +2287,7 @@ ov_SC05_006_ELF := $(ov_SC05_006_OUT).elf ov_SC05_006_MAPFILE := $(ov_SC05_006_OUT).map ov_SC05_006_LD_SCRIPT := $(ov_SC05_006_OUT).ld ov_SC05_006_SPLAT_YAML := config/splat.ov_SC05_006.yaml -ov_SC05_006_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_006_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_006.o,tail2.data.o,ov_SC05_006_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_006_CHECK_SHA := config/check.ov_SC05_006.sha ov_SC05_006_SYMBOLS := config/symbols.ov_SC05_006.txt ov_SC05_006_SIG := .run/sig.ov_SC05_006.jsonl @@ -2309,7 +2309,7 @@ ov_SC05_007_ELF := $(ov_SC05_007_OUT).elf ov_SC05_007_MAPFILE := $(ov_SC05_007_OUT).map ov_SC05_007_LD_SCRIPT := $(ov_SC05_007_OUT).ld ov_SC05_007_SPLAT_YAML := config/splat.ov_SC05_007.yaml -ov_SC05_007_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_007_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_007.o,tail2.data.o,ov_SC05_007_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_007_CHECK_SHA := config/check.ov_SC05_007.sha ov_SC05_007_SYMBOLS := config/symbols.ov_SC05_007.txt ov_SC05_007_SIG := .run/sig.ov_SC05_007.jsonl @@ -2331,7 +2331,7 @@ ov_SC05_008_ELF := $(ov_SC05_008_OUT).elf ov_SC05_008_MAPFILE := $(ov_SC05_008_OUT).map ov_SC05_008_LD_SCRIPT := $(ov_SC05_008_OUT).ld ov_SC05_008_SPLAT_YAML := config/splat.ov_SC05_008.yaml -ov_SC05_008_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_008_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_008.o,tail2.data.o,ov_SC05_008_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_008_CHECK_SHA := config/check.ov_SC05_008.sha ov_SC05_008_SYMBOLS := config/symbols.ov_SC05_008.txt ov_SC05_008_SIG := .run/sig.ov_SC05_008.jsonl @@ -2353,7 +2353,7 @@ ov_SC05_009_ELF := $(ov_SC05_009_OUT).elf ov_SC05_009_MAPFILE := $(ov_SC05_009_OUT).map ov_SC05_009_LD_SCRIPT := $(ov_SC05_009_OUT).ld ov_SC05_009_SPLAT_YAML := config/splat.ov_SC05_009.yaml -ov_SC05_009_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_009_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_009.o,tail2.data.o,ov_SC05_009_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_009_CHECK_SHA := config/check.ov_SC05_009.sha ov_SC05_009_SYMBOLS := config/symbols.ov_SC05_009.txt ov_SC05_009_SIG := .run/sig.ov_SC05_009.jsonl @@ -2375,7 +2375,7 @@ ov_SC05_010_ELF := $(ov_SC05_010_OUT).elf ov_SC05_010_MAPFILE := $(ov_SC05_010_OUT).map ov_SC05_010_LD_SCRIPT := $(ov_SC05_010_OUT).ld ov_SC05_010_SPLAT_YAML := config/splat.ov_SC05_010.yaml -ov_SC05_010_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_010_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_010.o,tail2.data.o,ov_SC05_010_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_010_CHECK_SHA := config/check.ov_SC05_010.sha ov_SC05_010_SYMBOLS := config/symbols.ov_SC05_010.txt ov_SC05_010_SIG := .run/sig.ov_SC05_010.jsonl @@ -2397,7 +2397,7 @@ ov_SC05_011_ELF := $(ov_SC05_011_OUT).elf ov_SC05_011_MAPFILE := $(ov_SC05_011_OUT).map ov_SC05_011_LD_SCRIPT := $(ov_SC05_011_OUT).ld ov_SC05_011_SPLAT_YAML := config/splat.ov_SC05_011.yaml -ov_SC05_011_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_011_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_011.o,tail2.data.o,ov_SC05_011_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_011_CHECK_SHA := config/check.ov_SC05_011.sha ov_SC05_011_SYMBOLS := config/symbols.ov_SC05_011.txt ov_SC05_011_SIG := .run/sig.ov_SC05_011.jsonl @@ -2419,7 +2419,7 @@ ov_SC05_017_ELF := $(ov_SC05_017_OUT).elf ov_SC05_017_MAPFILE := $(ov_SC05_017_OUT).map ov_SC05_017_LD_SCRIPT := $(ov_SC05_017_OUT).ld ov_SC05_017_SPLAT_YAML := config/splat.ov_SC05_017.yaml -ov_SC05_017_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_017_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_017.o,tail2.data.o,ov_SC05_017_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_017_CHECK_SHA := config/check.ov_SC05_017.sha ov_SC05_017_SYMBOLS := config/symbols.ov_SC05_017.txt ov_SC05_017_SIG := .run/sig.ov_SC05_017.jsonl @@ -2441,7 +2441,7 @@ ov_SC05_018_ELF := $(ov_SC05_018_OUT).elf ov_SC05_018_MAPFILE := $(ov_SC05_018_OUT).map ov_SC05_018_LD_SCRIPT := $(ov_SC05_018_OUT).ld ov_SC05_018_SPLAT_YAML := config/splat.ov_SC05_018.yaml -ov_SC05_018_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_018_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_018.o,tail2.data.o,ov_SC05_018_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_018_CHECK_SHA := config/check.ov_SC05_018.sha ov_SC05_018_SYMBOLS := config/symbols.ov_SC05_018.txt ov_SC05_018_SIG := .run/sig.ov_SC05_018.jsonl @@ -2463,7 +2463,7 @@ ov_SC05_019_ELF := $(ov_SC05_019_OUT).elf ov_SC05_019_MAPFILE := $(ov_SC05_019_OUT).map ov_SC05_019_LD_SCRIPT := $(ov_SC05_019_OUT).ld ov_SC05_019_SPLAT_YAML := config/splat.ov_SC05_019.yaml -ov_SC05_019_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC05_019_JTBL_INTERLEAVE := --order tail.data.o,ov_SC05_019.o,tail2.data.o,ov_SC05_019_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC05_019_CHECK_SHA := config/check.ov_SC05_019.sha ov_SC05_019_SYMBOLS := config/symbols.ov_SC05_019.txt ov_SC05_019_SIG := .run/sig.ov_SC05_019.jsonl @@ -2485,7 +2485,7 @@ ov_SC06_006_ELF := $(ov_SC06_006_OUT).elf ov_SC06_006_MAPFILE := $(ov_SC06_006_OUT).map ov_SC06_006_LD_SCRIPT := $(ov_SC06_006_OUT).ld ov_SC06_006_SPLAT_YAML := config/splat.ov_SC06_006.yaml -ov_SC06_006_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_006_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_006.o,tail2.data.o,ov_SC06_006_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_006_CHECK_SHA := config/check.ov_SC06_006.sha ov_SC06_006_SYMBOLS := config/symbols.ov_SC06_006.txt ov_SC06_006_SIG := .run/sig.ov_SC06_006.jsonl @@ -2507,7 +2507,7 @@ ov_SC06_008_ELF := $(ov_SC06_008_OUT).elf ov_SC06_008_MAPFILE := $(ov_SC06_008_OUT).map ov_SC06_008_LD_SCRIPT := $(ov_SC06_008_OUT).ld ov_SC06_008_SPLAT_YAML := config/splat.ov_SC06_008.yaml -ov_SC06_008_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_008_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_008.o,tail2.data.o,ov_SC06_008_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_008_CHECK_SHA := config/check.ov_SC06_008.sha ov_SC06_008_SYMBOLS := config/symbols.ov_SC06_008.txt ov_SC06_008_SIG := .run/sig.ov_SC06_008.jsonl @@ -2529,7 +2529,7 @@ ov_SC06_010_ELF := $(ov_SC06_010_OUT).elf ov_SC06_010_MAPFILE := $(ov_SC06_010_OUT).map ov_SC06_010_LD_SCRIPT := $(ov_SC06_010_OUT).ld ov_SC06_010_SPLAT_YAML := config/splat.ov_SC06_010.yaml -ov_SC06_010_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_010_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_010.o,tail2.data.o,ov_SC06_010_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_010_CHECK_SHA := config/check.ov_SC06_010.sha ov_SC06_010_SYMBOLS := config/symbols.ov_SC06_010.txt ov_SC06_010_SIG := .run/sig.ov_SC06_010.jsonl @@ -2551,7 +2551,7 @@ ov_SC06_011_ELF := $(ov_SC06_011_OUT).elf ov_SC06_011_MAPFILE := $(ov_SC06_011_OUT).map ov_SC06_011_LD_SCRIPT := $(ov_SC06_011_OUT).ld ov_SC06_011_SPLAT_YAML := config/splat.ov_SC06_011.yaml -ov_SC06_011_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_011_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_011.o,tail2.data.o,ov_SC06_011_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_011_CHECK_SHA := config/check.ov_SC06_011.sha ov_SC06_011_SYMBOLS := config/symbols.ov_SC06_011.txt ov_SC06_011_SIG := .run/sig.ov_SC06_011.jsonl @@ -2573,7 +2573,7 @@ ov_SC06_013_ELF := $(ov_SC06_013_OUT).elf ov_SC06_013_MAPFILE := $(ov_SC06_013_OUT).map ov_SC06_013_LD_SCRIPT := $(ov_SC06_013_OUT).ld ov_SC06_013_SPLAT_YAML := config/splat.ov_SC06_013.yaml -ov_SC06_013_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_013_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_013.o,tail2.data.o,ov_SC06_013_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_013_CHECK_SHA := config/check.ov_SC06_013.sha ov_SC06_013_SYMBOLS := config/symbols.ov_SC06_013.txt ov_SC06_013_SIG := .run/sig.ov_SC06_013.jsonl @@ -2595,7 +2595,7 @@ ov_SC06_014_ELF := $(ov_SC06_014_OUT).elf ov_SC06_014_MAPFILE := $(ov_SC06_014_OUT).map ov_SC06_014_LD_SCRIPT := $(ov_SC06_014_OUT).ld ov_SC06_014_SPLAT_YAML := config/splat.ov_SC06_014.yaml -ov_SC06_014_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_014_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_014.o,tail2.data.o,ov_SC06_014_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_014_CHECK_SHA := config/check.ov_SC06_014.sha ov_SC06_014_SYMBOLS := config/symbols.ov_SC06_014.txt ov_SC06_014_SIG := .run/sig.ov_SC06_014.jsonl @@ -2617,7 +2617,7 @@ ov_SC06_015_ELF := $(ov_SC06_015_OUT).elf ov_SC06_015_MAPFILE := $(ov_SC06_015_OUT).map ov_SC06_015_LD_SCRIPT := $(ov_SC06_015_OUT).ld ov_SC06_015_SPLAT_YAML := config/splat.ov_SC06_015.yaml -ov_SC06_015_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_015_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_015.o,tail2.data.o,ov_SC06_015_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_015_CHECK_SHA := config/check.ov_SC06_015.sha ov_SC06_015_SYMBOLS := config/symbols.ov_SC06_015.txt ov_SC06_015_SIG := .run/sig.ov_SC06_015.jsonl @@ -2639,7 +2639,7 @@ ov_SC06_016_ELF := $(ov_SC06_016_OUT).elf ov_SC06_016_MAPFILE := $(ov_SC06_016_OUT).map ov_SC06_016_LD_SCRIPT := $(ov_SC06_016_OUT).ld ov_SC06_016_SPLAT_YAML := config/splat.ov_SC06_016.yaml -ov_SC06_016_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_016_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_016.o,tail2.data.o,ov_SC06_016_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_016_CHECK_SHA := config/check.ov_SC06_016.sha ov_SC06_016_SYMBOLS := config/symbols.ov_SC06_016.txt ov_SC06_016_SIG := .run/sig.ov_SC06_016.jsonl @@ -2661,7 +2661,7 @@ ov_SC06_018_ELF := $(ov_SC06_018_OUT).elf ov_SC06_018_MAPFILE := $(ov_SC06_018_OUT).map ov_SC06_018_LD_SCRIPT := $(ov_SC06_018_OUT).ld ov_SC06_018_SPLAT_YAML := config/splat.ov_SC06_018.yaml -ov_SC06_018_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_018_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_018.o,tail2.data.o,ov_SC06_018_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_018_CHECK_SHA := config/check.ov_SC06_018.sha ov_SC06_018_SYMBOLS := config/symbols.ov_SC06_018.txt ov_SC06_018_SIG := .run/sig.ov_SC06_018.jsonl @@ -2683,7 +2683,7 @@ ov_SC06_020_ELF := $(ov_SC06_020_OUT).elf ov_SC06_020_MAPFILE := $(ov_SC06_020_OUT).map ov_SC06_020_LD_SCRIPT := $(ov_SC06_020_OUT).ld ov_SC06_020_SPLAT_YAML := config/splat.ov_SC06_020.yaml -ov_SC06_020_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_020_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_020.o,tail2.data.o,ov_SC06_020_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_020_CHECK_SHA := config/check.ov_SC06_020.sha ov_SC06_020_SYMBOLS := config/symbols.ov_SC06_020.txt ov_SC06_020_SIG := .run/sig.ov_SC06_020.jsonl @@ -2705,7 +2705,7 @@ ov_SC06_022_ELF := $(ov_SC06_022_OUT).elf ov_SC06_022_MAPFILE := $(ov_SC06_022_OUT).map ov_SC06_022_LD_SCRIPT := $(ov_SC06_022_OUT).ld ov_SC06_022_SPLAT_YAML := config/splat.ov_SC06_022.yaml -ov_SC06_022_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_022_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_022.o,tail2.data.o,ov_SC06_022_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_022_CHECK_SHA := config/check.ov_SC06_022.sha ov_SC06_022_SYMBOLS := config/symbols.ov_SC06_022.txt ov_SC06_022_SIG := .run/sig.ov_SC06_022.jsonl @@ -2727,7 +2727,7 @@ ov_SC06_024_ELF := $(ov_SC06_024_OUT).elf ov_SC06_024_MAPFILE := $(ov_SC06_024_OUT).map ov_SC06_024_LD_SCRIPT := $(ov_SC06_024_OUT).ld ov_SC06_024_SPLAT_YAML := config/splat.ov_SC06_024.yaml -ov_SC06_024_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_024_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_024.o,tail2.data.o,ov_SC06_024_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_024_CHECK_SHA := config/check.ov_SC06_024.sha ov_SC06_024_SYMBOLS := config/symbols.ov_SC06_024.txt ov_SC06_024_SIG := .run/sig.ov_SC06_024.jsonl @@ -2749,7 +2749,7 @@ ov_SC06_025_ELF := $(ov_SC06_025_OUT).elf ov_SC06_025_MAPFILE := $(ov_SC06_025_OUT).map ov_SC06_025_LD_SCRIPT := $(ov_SC06_025_OUT).ld ov_SC06_025_SPLAT_YAML := config/splat.ov_SC06_025.yaml -ov_SC06_025_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_025_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_025.o,tail2.data.o,ov_SC06_025_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_025_CHECK_SHA := config/check.ov_SC06_025.sha ov_SC06_025_SYMBOLS := config/symbols.ov_SC06_025.txt ov_SC06_025_SIG := .run/sig.ov_SC06_025.jsonl @@ -2771,7 +2771,7 @@ ov_SC06_027_ELF := $(ov_SC06_027_OUT).elf ov_SC06_027_MAPFILE := $(ov_SC06_027_OUT).map ov_SC06_027_LD_SCRIPT := $(ov_SC06_027_OUT).ld ov_SC06_027_SPLAT_YAML := config/splat.ov_SC06_027.yaml -ov_SC06_027_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_027_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_027.o,tail2.data.o,ov_SC06_027_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_027_CHECK_SHA := config/check.ov_SC06_027.sha ov_SC06_027_SYMBOLS := config/symbols.ov_SC06_027.txt ov_SC06_027_SIG := .run/sig.ov_SC06_027.jsonl @@ -2793,7 +2793,7 @@ ov_SC06_029_ELF := $(ov_SC06_029_OUT).elf ov_SC06_029_MAPFILE := $(ov_SC06_029_OUT).map ov_SC06_029_LD_SCRIPT := $(ov_SC06_029_OUT).ld ov_SC06_029_SPLAT_YAML := config/splat.ov_SC06_029.yaml -ov_SC06_029_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_029_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_029.o,tail2.data.o,ov_SC06_029_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_029_CHECK_SHA := config/check.ov_SC06_029.sha ov_SC06_029_SYMBOLS := config/symbols.ov_SC06_029.txt ov_SC06_029_SIG := .run/sig.ov_SC06_029.jsonl @@ -2815,7 +2815,7 @@ ov_SC06_030_ELF := $(ov_SC06_030_OUT).elf ov_SC06_030_MAPFILE := $(ov_SC06_030_OUT).map ov_SC06_030_LD_SCRIPT := $(ov_SC06_030_OUT).ld ov_SC06_030_SPLAT_YAML := config/splat.ov_SC06_030.yaml -ov_SC06_030_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_030_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_030.o,tail2.data.o,ov_SC06_030_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_030_CHECK_SHA := config/check.ov_SC06_030.sha ov_SC06_030_SYMBOLS := config/symbols.ov_SC06_030.txt ov_SC06_030_SIG := .run/sig.ov_SC06_030.jsonl @@ -2837,7 +2837,7 @@ ov_SC06_032_ELF := $(ov_SC06_032_OUT).elf ov_SC06_032_MAPFILE := $(ov_SC06_032_OUT).map ov_SC06_032_LD_SCRIPT := $(ov_SC06_032_OUT).ld ov_SC06_032_SPLAT_YAML := config/splat.ov_SC06_032.yaml -ov_SC06_032_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_032_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_032.o,tail2.data.o,ov_SC06_032_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_032_CHECK_SHA := config/check.ov_SC06_032.sha ov_SC06_032_SYMBOLS := config/symbols.ov_SC06_032.txt ov_SC06_032_SIG := .run/sig.ov_SC06_032.jsonl @@ -2859,7 +2859,7 @@ ov_SC06_033_ELF := $(ov_SC06_033_OUT).elf ov_SC06_033_MAPFILE := $(ov_SC06_033_OUT).map ov_SC06_033_LD_SCRIPT := $(ov_SC06_033_OUT).ld ov_SC06_033_SPLAT_YAML := config/splat.ov_SC06_033.yaml -ov_SC06_033_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_033_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_033.o,tail2.data.o,ov_SC06_033_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC06_033_CHECK_SHA := config/check.ov_SC06_033.sha ov_SC06_033_SYMBOLS := config/symbols.ov_SC06_033.txt ov_SC06_033_SIG := .run/sig.ov_SC06_033.jsonl @@ -2881,7 +2881,7 @@ ov_SC07_001_ELF := $(ov_SC07_001_OUT).elf ov_SC07_001_MAPFILE := $(ov_SC07_001_OUT).map ov_SC07_001_LD_SCRIPT := $(ov_SC07_001_OUT).ld ov_SC07_001_SPLAT_YAML := config/splat.ov_SC07_001.yaml -ov_SC07_001_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC07_001_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_001.o,tail2.data.o,ov_SC07_001_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC07_001_CHECK_SHA := config/check.ov_SC07_001.sha ov_SC07_001_SYMBOLS := config/symbols.ov_SC07_001.txt ov_SC07_001_SIG := .run/sig.ov_SC07_001.jsonl @@ -2903,7 +2903,7 @@ ov_SC07_002_ELF := $(ov_SC07_002_OUT).elf ov_SC07_002_MAPFILE := $(ov_SC07_002_OUT).map ov_SC07_002_LD_SCRIPT := $(ov_SC07_002_OUT).ld ov_SC07_002_SPLAT_YAML := config/splat.ov_SC07_002.yaml -ov_SC07_002_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC07_002_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_002.o,tail2.data.o,ov_SC07_002_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC07_002_CHECK_SHA := config/check.ov_SC07_002.sha ov_SC07_002_SYMBOLS := config/symbols.ov_SC07_002.txt ov_SC07_002_SIG := .run/sig.ov_SC07_002.jsonl @@ -2925,7 +2925,7 @@ ov_SC07_008_ELF := $(ov_SC07_008_OUT).elf ov_SC07_008_MAPFILE := $(ov_SC07_008_OUT).map ov_SC07_008_LD_SCRIPT := $(ov_SC07_008_OUT).ld ov_SC07_008_SPLAT_YAML := config/splat.ov_SC07_008.yaml -ov_SC07_008_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC07_008_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_008.o,tail2.data.o,ov_SC07_008_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC07_008_CHECK_SHA := config/check.ov_SC07_008.sha ov_SC07_008_SYMBOLS := config/symbols.ov_SC07_008.txt ov_SC07_008_SIG := .run/sig.ov_SC07_008.jsonl @@ -2947,7 +2947,7 @@ ov_SC07_009_ELF := $(ov_SC07_009_OUT).elf ov_SC07_009_MAPFILE := $(ov_SC07_009_OUT).map ov_SC07_009_LD_SCRIPT := $(ov_SC07_009_OUT).ld ov_SC07_009_SPLAT_YAML := config/splat.ov_SC07_009.yaml -ov_SC07_009_JTBL_INTERLEAVE := --front tail.data.o --tail tail2.data.o --tail trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC07_009_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_009.o,tail2.data.o,ov_SC07_009_after.o,tail3.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve ov_SC07_009_CHECK_SHA := config/check.ov_SC07_009.sha ov_SC07_009_SYMBOLS := config/symbols.ov_SC07_009.txt ov_SC07_009_SIG := .run/sig.ov_SC07_009.jsonl diff --git a/config/splat.ov_SC01_000.yaml b/config/splat.ov_SC01_000.yaml index f5852c01e..864ed770d 100644 --- a/config/splat.ov_SC01_000.yaml +++ b/config/splat.ov_SC01_000.yaml @@ -99,6 +99,8 @@ segments: - [0x56a64, data, tail] - [0x7b1c4, .rodata, ov_SC01_000] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7b290, data, tail2] + - [0x7bdb4, .rodata, ov_SC01_000_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7bdc8, data, tail3] - [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 diff --git a/config/splat.ov_SC01_001.yaml b/config/splat.ov_SC01_001.yaml index 454e83293..7a4cbb857 100644 --- a/config/splat.ov_SC01_001.yaml +++ b/config/splat.ov_SC01_001.yaml @@ -99,6 +99,8 @@ segments: - [0x5b6b4, data, tail] - [0xc329c, .rodata, ov_SC01_001] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xc3368, data, tail2] + - [0xc3e8c, .rodata, ov_SC01_001_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc3ea0, data, tail3] - [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 diff --git a/config/splat.ov_SC01_004.yaml b/config/splat.ov_SC01_004.yaml index ab111dabf..c066b112e 100644 --- a/config/splat.ov_SC01_004.yaml +++ b/config/splat.ov_SC01_004.yaml @@ -99,6 +99,8 @@ segments: - [0x57078, data, tail] - [0x6567c, .rodata, ov_SC01_004] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x65748, data, tail2] + - [0x6626c, .rodata, ov_SC01_004_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x66280, data, tail3] - [0x68274, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x68277] # 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 diff --git a/config/splat.ov_SC01_005.yaml b/config/splat.ov_SC01_005.yaml index 33b7b5bf7..aa257ee2f 100644 --- a/config/splat.ov_SC01_005.yaml +++ b/config/splat.ov_SC01_005.yaml @@ -99,6 +99,8 @@ segments: - [0x5a20c, data, tail] - [0xa2ddc, .rodata, ov_SC01_005] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa2ea8, data, tail2] + - [0xa39cc, .rodata, ov_SC01_005_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa39e0, data, tail3] - [0xA5F08, bin, trailing] # final 1 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xA5F09] # 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 diff --git a/config/splat.ov_SC01_006.yaml b/config/splat.ov_SC01_006.yaml index d3c0902f8..0a7a48487 100644 --- a/config/splat.ov_SC01_006.yaml +++ b/config/splat.ov_SC01_006.yaml @@ -99,6 +99,8 @@ segments: - [0x5a20c, data, tail] - [0xa2ddc, .rodata, ov_SC01_006] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa2ea8, data, tail2] + - [0xa39cc, .rodata, ov_SC01_006_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa39e0, data, tail3] - [0xA5F08, bin, trailing] # final 1 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xA5F09] # 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 diff --git a/config/splat.ov_SC01_008.yaml b/config/splat.ov_SC01_008.yaml index 0a5d63e68..ede47f569 100644 --- a/config/splat.ov_SC01_008.yaml +++ b/config/splat.ov_SC01_008.yaml @@ -99,6 +99,8 @@ segments: - [0x575ec, data, tail] - [0x7888c, .rodata, ov_SC01_008] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x78958, data, tail2] + - [0x7947c, .rodata, ov_SC01_008_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x79490, data, tail3] - [0x7B484, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x7B487] # 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 diff --git a/config/splat.ov_SC01_009.yaml b/config/splat.ov_SC01_009.yaml index 80b049982..9f9733823 100644 --- a/config/splat.ov_SC01_009.yaml +++ b/config/splat.ov_SC01_009.yaml @@ -99,6 +99,8 @@ segments: - [0x5a7d4, data, tail] - [0xc8650, .rodata, ov_SC01_009] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xc871c, data, tail2] + - [0xc9240, .rodata, ov_SC01_009_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc9254, data, tail3] - [0xCB304, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xCB307] # 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 diff --git a/config/splat.ov_SC01_074.yaml b/config/splat.ov_SC01_074.yaml index 4576f41de..c47f93728 100644 --- a/config/splat.ov_SC01_074.yaml +++ b/config/splat.ov_SC01_074.yaml @@ -99,6 +99,8 @@ segments: - [0x56454, data, tail] - [0x716e0, .rodata, ov_SC01_074] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x717ac, data, tail2] + - [0x722d0, .rodata, ov_SC01_074_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x722e4, data, tail3] - [0x73C14, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x73C17] # 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 diff --git a/config/splat.ov_SC01_077.yaml b/config/splat.ov_SC01_077.yaml index f011954cd..2d223f11e 100644 --- a/config/splat.ov_SC01_077.yaml +++ b/config/splat.ov_SC01_077.yaml @@ -76,9 +76,11 @@ segments: # PoC: func_8012ACE0's single jtbl jtbl_801D8078 (8-aligned, 204B) = vram 0x801D8078..0x801D8144 # = file 0xAFF20..0xAFFEC. func_8012ACE0 lives in the ov_SC01_077_a subseg. Other functions' # jtbls stay raw .data until matched (each matched fn's jtbl gets its own carve — the ×134 tool). - - [0x5E978, data, tail] # globals + pre-carve jtbls (vram 0x80186AD0..0x801D8078) - - [0xAFF20, .rodata, ov_SC01_077_a] # func_8012ACE0's jtbl_801D8078 -> migrate into ov_SC01_077_a.o - - [0xAFFEC, data, tail2] # post-carve jtbls + tail (vram 0x801D8144..0x801DAB2C) + - [0x5e978, data, tail] + - [0xaff20, .rodata, ov_SC01_077_a] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xaffec, data, tail2] + - [0xb0b10, .rodata, ov_SC01_077_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xb0b24, data, tail3] - [0xB29D4, bin, trailing] # final 3 bytes (EOF 0xB29D7 not word-aligned; spimdisasm drops # a trailing partial word and a <4-byte `data` carve emits nothing, # so use `bin` = raw .incbin, byte-exact). Word-aligned overlays omit this. diff --git a/config/splat.ov_SC01_080.yaml b/config/splat.ov_SC01_080.yaml index 621953b0d..a713a28a4 100644 --- a/config/splat.ov_SC01_080.yaml +++ b/config/splat.ov_SC01_080.yaml @@ -99,6 +99,8 @@ segments: - [0x5b3b4, data, tail] - [0x9b500, .rodata, ov_SC01_080] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9b5cc, data, tail2] + - [0x9c0f0, .rodata, ov_SC01_080_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9c104, data, tail3] - [0x9FDF4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9FDF7] # 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 diff --git a/config/splat.ov_SC01_084.yaml b/config/splat.ov_SC01_084.yaml index b765b3089..6fec72c67 100644 --- a/config/splat.ov_SC01_084.yaml +++ b/config/splat.ov_SC01_084.yaml @@ -99,6 +99,8 @@ segments: - [0x5e6a8, data, tail] - [0x9ced0, .rodata, ov_SC01_084] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9cf9c, data, tail2] + - [0x9dac0, .rodata, ov_SC01_084_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9dad4, data, tail3] - [0x9FA9C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9FA9F] # 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 diff --git a/config/splat.ov_SC02_000.yaml b/config/splat.ov_SC02_000.yaml index b2f6003a9..f10e281c1 100644 --- a/config/splat.ov_SC02_000.yaml +++ b/config/splat.ov_SC02_000.yaml @@ -99,6 +99,8 @@ segments: - [0x62a58, data, tail] - [0xbd724, .rodata, ov_SC02_000] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbd7f0, data, tail2] + - [0xbe314, .rodata, ov_SC02_000_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xbe328, data, tail3] - [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 diff --git a/config/splat.ov_SC02_003.yaml b/config/splat.ov_SC02_003.yaml index c5fae44e4..a709ba356 100644 --- a/config/splat.ov_SC02_003.yaml +++ b/config/splat.ov_SC02_003.yaml @@ -99,6 +99,8 @@ segments: - [0x62a58, data, tail] - [0xbd724, .rodata, ov_SC02_003] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbd7f0, data, tail2] + - [0xbe314, .rodata, ov_SC02_003_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xbe328, data, tail3] - [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 diff --git a/config/splat.ov_SC02_004.yaml b/config/splat.ov_SC02_004.yaml index 57910e2f4..4d48d56d9 100644 --- a/config/splat.ov_SC02_004.yaml +++ b/config/splat.ov_SC02_004.yaml @@ -99,6 +99,8 @@ segments: - [0x55b38, data, tail] - [0x6bd34, .rodata, ov_SC02_004] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6be00, data, tail2] + - [0x6c924, .rodata, ov_SC02_004_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6c938, data, tail3] - [0x6E26C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x6E26F] # 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 diff --git a/config/splat.ov_SC02_005.yaml b/config/splat.ov_SC02_005.yaml index 224c2064c..a956610b8 100644 --- a/config/splat.ov_SC02_005.yaml +++ b/config/splat.ov_SC02_005.yaml @@ -99,6 +99,8 @@ segments: - [0x6873c, data, tail] - [0xb9a68, .rodata, ov_SC02_005] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb9b34, data, tail2] + - [0xba658, .rodata, ov_SC02_005_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xba66c, data, tail3] - [0xBCB00, bin, trailing] # final 1 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xBCB01] # 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 diff --git a/config/splat.ov_SC02_011.yaml b/config/splat.ov_SC02_011.yaml index 7ad265e7f..1ff0cbedc 100644 --- a/config/splat.ov_SC02_011.yaml +++ b/config/splat.ov_SC02_011.yaml @@ -99,6 +99,8 @@ segments: - [0x68b8c, data, tail] - [0xc0bc4, .rodata, ov_SC02_011] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xc0c90, data, tail2] + - [0xc17b4, .rodata, ov_SC02_011_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc17c8, data, tail3] - [0xC3924, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xC3927] # 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 diff --git a/config/splat.ov_SC02_015.yaml b/config/splat.ov_SC02_015.yaml index 65c7fc73a..5e84ab691 100644 --- a/config/splat.ov_SC02_015.yaml +++ b/config/splat.ov_SC02_015.yaml @@ -99,6 +99,8 @@ segments: - [0x560a0, data, tail] - [0x65e1c, .rodata, ov_SC02_015] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x65ee8, data, tail2] + - [0x66a0c, .rodata, ov_SC02_015_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x66a20, data, tail3] - [0x68544, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x68547] # 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 diff --git a/config/splat.ov_SC02_016.yaml b/config/splat.ov_SC02_016.yaml index d3fe8b427..73a1a6fbc 100644 --- a/config/splat.ov_SC02_016.yaml +++ b/config/splat.ov_SC02_016.yaml @@ -99,6 +99,8 @@ segments: - [0x5c2d8, data, tail] - [0x899fc, .rodata, ov_SC02_016] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x89ac8, data, tail2] + - [0x8a5ec, .rodata, ov_SC02_016_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x8a600, data, tail3] - [0x8C97C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x8C97F] # 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 diff --git a/config/splat.ov_SC02_017.yaml b/config/splat.ov_SC02_017.yaml index 8f4abad86..156c0ea50 100644 --- a/config/splat.ov_SC02_017.yaml +++ b/config/splat.ov_SC02_017.yaml @@ -99,6 +99,8 @@ segments: - [0x62330, data, tail] - [0xc521c, .rodata, ov_SC02_017] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xc52e8, data, tail2] + - [0xc5e0c, .rodata, ov_SC02_017_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc5e20, data, tail3] - [0xC7BDC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xC7BDF] # 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 diff --git a/config/splat.ov_SC02_021.yaml b/config/splat.ov_SC02_021.yaml index 85ae91d5e..447aa6a59 100644 --- a/config/splat.ov_SC02_021.yaml +++ b/config/splat.ov_SC02_021.yaml @@ -99,6 +99,8 @@ segments: - [0x57924, data, tail] - [0x68798, .rodata, ov_SC02_021] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x68864, data, tail2] + - [0x69388, .rodata, ov_SC02_021_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6939c, data, tail3] - [0x6B744, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x6B747] # 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 diff --git a/config/splat.ov_SC02_026.yaml b/config/splat.ov_SC02_026.yaml index c544788cf..9b4130e0d 100644 --- a/config/splat.ov_SC02_026.yaml +++ b/config/splat.ov_SC02_026.yaml @@ -99,6 +99,8 @@ segments: - [0x5df78, data, tail] - [0xa5bcc, .rodata, ov_SC02_026] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa5c98, data, tail2] + - [0xa67bc, .rodata, ov_SC02_026_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa67d0, data, tail3] - [0xA8164, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xA8167] # 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 diff --git a/config/splat.ov_SC02_027.yaml b/config/splat.ov_SC02_027.yaml index 5daa799b0..e40a1ce4e 100644 --- a/config/splat.ov_SC02_027.yaml +++ b/config/splat.ov_SC02_027.yaml @@ -99,6 +99,8 @@ segments: - [0x6309c, data, tail] - [0xaf938, .rodata, ov_SC02_027] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xafa04, data, tail2] + - [0xb0528, .rodata, ov_SC02_027_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xb053c, data, tail3] - [0xB28E4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xB28E7] # 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 diff --git a/config/splat.ov_SC02_028.yaml b/config/splat.ov_SC02_028.yaml index dabb9029c..6f338c0d6 100644 --- a/config/splat.ov_SC02_028.yaml +++ b/config/splat.ov_SC02_028.yaml @@ -99,6 +99,8 @@ segments: - [0x632a0, data, tail] - [0xa88bc, .rodata, ov_SC02_028] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa8988, data, tail2] + - [0xa94ac, .rodata, ov_SC02_028_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa94c0, data, tail3] - [0xAB4E4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xAB4E7] # 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 diff --git a/config/splat.ov_SC02_031.yaml b/config/splat.ov_SC02_031.yaml index 645c2a974..13ce58189 100644 --- a/config/splat.ov_SC02_031.yaml +++ b/config/splat.ov_SC02_031.yaml @@ -99,6 +99,8 @@ segments: - [0x5cacc, data, tail] - [0x8d0b8, .rodata, ov_SC02_031] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x8d184, data, tail2] + - [0x8dca8, .rodata, ov_SC02_031_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x8dcbc, data, tail3] - [0x8F9B4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x8F9B7] # 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 diff --git a/config/splat.ov_SC02_035.yaml b/config/splat.ov_SC02_035.yaml index 44472fc54..2aa0c23f0 100644 --- a/config/splat.ov_SC02_035.yaml +++ b/config/splat.ov_SC02_035.yaml @@ -99,6 +99,8 @@ segments: - [0x5c32c, data, tail] - [0x94380, .rodata, ov_SC02_035] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9444c, data, tail2] + - [0x94f70, .rodata, ov_SC02_035_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x94f84, data, tail3] - [0x968EC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x968EF] # 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 diff --git a/config/splat.ov_SC02_039.yaml b/config/splat.ov_SC02_039.yaml index 2d09688fd..64e5389ec 100644 --- a/config/splat.ov_SC02_039.yaml +++ b/config/splat.ov_SC02_039.yaml @@ -99,6 +99,8 @@ segments: - [0x56f58, data, tail] - [0x7676c, .rodata, ov_SC02_039] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x76838, data, tail2] + - [0x7735c, .rodata, ov_SC02_039_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x77370, data, tail3] - [0x78CA4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x78CA7] # 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 diff --git a/config/splat.ov_SC02_041.yaml b/config/splat.ov_SC02_041.yaml index 6e36fd435..840e21ec2 100644 --- a/config/splat.ov_SC02_041.yaml +++ b/config/splat.ov_SC02_041.yaml @@ -99,6 +99,8 @@ segments: - [0x5cc28, data, tail] - [0x8ead8, .rodata, ov_SC02_041] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x8eba4, data, tail2] + - [0x8f6c8, .rodata, ov_SC02_041_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x8f6dc, data, tail3] - [0x9157C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9157F] # 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 diff --git a/config/splat.ov_SC03_001.yaml b/config/splat.ov_SC03_001.yaml index 204edf05d..735da0034 100644 --- a/config/splat.ov_SC03_001.yaml +++ b/config/splat.ov_SC03_001.yaml @@ -99,6 +99,8 @@ segments: - [0x650c8, data, tail] - [0xc3bf8, .rodata, ov_SC03_001] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xc3cc4, data, tail2] + - [0xc47e8, .rodata, ov_SC03_001_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc47fc, data, tail3] - [0xC730C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xC730F] # 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 diff --git a/config/splat.ov_SC03_002.yaml b/config/splat.ov_SC03_002.yaml index 9b737dff2..ce8df3827 100644 --- a/config/splat.ov_SC03_002.yaml +++ b/config/splat.ov_SC03_002.yaml @@ -99,6 +99,8 @@ segments: - [0x5d358, data, tail] - [0xa1154, .rodata, ov_SC03_002] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa1220, data, tail2] + - [0xa1d44, .rodata, ov_SC03_002_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa1d58, data, tail3] - [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 diff --git a/config/splat.ov_SC03_003.yaml b/config/splat.ov_SC03_003.yaml index da490d7cc..8a465588c 100644 --- a/config/splat.ov_SC03_003.yaml +++ b/config/splat.ov_SC03_003.yaml @@ -99,6 +99,8 @@ segments: - [0x57120, data, tail] - [0x654d4, .rodata, ov_SC03_003] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x655a0, data, tail2] + - [0x660c4, .rodata, ov_SC03_003_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x660d8, data, tail3] - [0x67A24, bin, trailing] # final 1 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x67A25] # 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 diff --git a/config/splat.ov_SC03_006.yaml b/config/splat.ov_SC03_006.yaml index 572409321..d621cb878 100644 --- a/config/splat.ov_SC03_006.yaml +++ b/config/splat.ov_SC03_006.yaml @@ -99,6 +99,8 @@ segments: - [0x6443c, data, tail] - [0xccd90, .rodata, ov_SC03_006] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xcce5c, data, tail2] + - [0xcd980, .rodata, ov_SC03_006_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xcd994, data, tail3] - [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 diff --git a/config/splat.ov_SC03_007.yaml b/config/splat.ov_SC03_007.yaml index 4f27aa8e1..8783bde5a 100644 --- a/config/splat.ov_SC03_007.yaml +++ b/config/splat.ov_SC03_007.yaml @@ -99,6 +99,8 @@ segments: - [0x5f234, data, tail] - [0xbf718, .rodata, ov_SC03_007] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbf7e4, data, tail2] + - [0xc0308, .rodata, ov_SC03_007_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc031c, data, tail3] - [0xC316C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xC316F] # 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 diff --git a/config/splat.ov_SC03_010.yaml b/config/splat.ov_SC03_010.yaml index 7369b860b..13856ea8b 100644 --- a/config/splat.ov_SC03_010.yaml +++ b/config/splat.ov_SC03_010.yaml @@ -99,6 +99,8 @@ segments: - [0x57d54, data, tail] - [0x759f4, .rodata, ov_SC03_010] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x75ac0, data, tail2] + - [0x765e4, .rodata, ov_SC03_010_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x765f8, data, tail3] - [0x78074, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x78077] # 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 diff --git a/config/splat.ov_SC03_011.yaml b/config/splat.ov_SC03_011.yaml index b17989ee4..b561515ed 100644 --- a/config/splat.ov_SC03_011.yaml +++ b/config/splat.ov_SC03_011.yaml @@ -99,6 +99,8 @@ segments: - [0x590c4, data, tail] - [0x77c64, .rodata, ov_SC03_011] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x77d30, data, tail2] + - [0x78854, .rodata, ov_SC03_011_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x78868, data, tail3] - [0x7A2A8, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x7A2AB] # 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 diff --git a/config/splat.ov_SC03_012.yaml b/config/splat.ov_SC03_012.yaml index 8e500975f..fd3db8b7f 100644 --- a/config/splat.ov_SC03_012.yaml +++ b/config/splat.ov_SC03_012.yaml @@ -99,6 +99,8 @@ segments: - [0x55fa4, data, tail] - [0x6aac0, .rodata, ov_SC03_012] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6ab8c, data, tail2] + - [0x6b6b0, .rodata, ov_SC03_012_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6b6c4, data, tail3] - [0x6D004, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x6D007] # 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 diff --git a/config/splat.ov_SC03_013.yaml b/config/splat.ov_SC03_013.yaml index 5e45a53cd..c74ae87c2 100644 --- a/config/splat.ov_SC03_013.yaml +++ b/config/splat.ov_SC03_013.yaml @@ -99,6 +99,8 @@ segments: - [0x58d8c, data, tail] - [0x82d58, .rodata, ov_SC03_013] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x82e24, data, tail2] + - [0x83948, .rodata, ov_SC03_013_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x8395c, data, tail3] - [0x853FC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x853FF] # 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 diff --git a/config/splat.ov_SC03_014.yaml b/config/splat.ov_SC03_014.yaml index cf64a563c..ed1773e3d 100644 --- a/config/splat.ov_SC03_014.yaml +++ b/config/splat.ov_SC03_014.yaml @@ -99,6 +99,8 @@ segments: - [0x633c8, data, tail] - [0xc012c, .rodata, ov_SC03_014] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xc01f8, data, tail2] + - [0xc0d1c, .rodata, ov_SC03_014_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc0d30, data, tail3] - [0xC2EE4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xC2EE7] # 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 diff --git a/config/splat.ov_SC03_015.yaml b/config/splat.ov_SC03_015.yaml index eef40e52c..395d7aa07 100644 --- a/config/splat.ov_SC03_015.yaml +++ b/config/splat.ov_SC03_015.yaml @@ -99,6 +99,8 @@ segments: - [0x633c8, data, tail] - [0xc012c, .rodata, ov_SC03_015] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xc01f8, data, tail2] + - [0xc0d1c, .rodata, ov_SC03_015_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc0d30, data, tail3] - [0xC2EE4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xC2EE7] # 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 diff --git a/config/splat.ov_SC03_023.yaml b/config/splat.ov_SC03_023.yaml index dc581a22f..99636d393 100644 --- a/config/splat.ov_SC03_023.yaml +++ b/config/splat.ov_SC03_023.yaml @@ -99,6 +99,8 @@ segments: - [0x56d44, data, tail] - [0x6e704, .rodata, ov_SC03_023] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6e7d0, data, tail2] + - [0x6f2f4, .rodata, ov_SC03_023_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6f308, data, tail3] - [0x70C2C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x70C2F] # 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 diff --git a/config/splat.ov_SC03_024.yaml b/config/splat.ov_SC03_024.yaml index 510e023ed..7f6cc724a 100644 --- a/config/splat.ov_SC03_024.yaml +++ b/config/splat.ov_SC03_024.yaml @@ -99,6 +99,8 @@ segments: - [0x5ed68, data, tail] - [0x96b8c, .rodata, ov_SC03_024] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x96c58, data, tail2] + - [0x9777c, .rodata, ov_SC03_024_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x97790, data, tail3] - [0x996F4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x996F7] # 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 diff --git a/config/splat.ov_SC03_028.yaml b/config/splat.ov_SC03_028.yaml index f9457fbc7..2e71357df 100644 --- a/config/splat.ov_SC03_028.yaml +++ b/config/splat.ov_SC03_028.yaml @@ -99,6 +99,8 @@ segments: - [0x63834, data, tail] - [0xc0d14, .rodata, ov_SC03_028] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xc0de0, data, tail2] + - [0xc1904, .rodata, ov_SC03_028_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc1918, data, tail3] - [0xC44AC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xC44AF] # 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 diff --git a/config/splat.ov_SC03_029.yaml b/config/splat.ov_SC03_029.yaml index 594472a64..18f1dc97e 100644 --- a/config/splat.ov_SC03_029.yaml +++ b/config/splat.ov_SC03_029.yaml @@ -99,6 +99,8 @@ segments: - [0x5f66c, data, tail] - [0xaee48, .rodata, ov_SC03_029] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xaef14, data, tail2] + - [0xafa38, .rodata, ov_SC03_029_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xafa4c, data, tail3] - [0xB18EC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xB18EF] # 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 diff --git a/config/splat.ov_SC03_030.yaml b/config/splat.ov_SC03_030.yaml index fd2577204..26d1108b9 100644 --- a/config/splat.ov_SC03_030.yaml +++ b/config/splat.ov_SC03_030.yaml @@ -99,6 +99,8 @@ segments: - [0x59ca8, data, tail] - [0xb74ec, .rodata, ov_SC03_030] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb75b8, data, tail2] + - [0xb80dc, .rodata, ov_SC03_030_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xb80f0, data, tail3] - [0xB9AF0] # 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, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops); diff --git a/config/splat.ov_SC03_031.yaml b/config/splat.ov_SC03_031.yaml index 5a2641647..40cd88177 100644 --- a/config/splat.ov_SC03_031.yaml +++ b/config/splat.ov_SC03_031.yaml @@ -99,6 +99,8 @@ segments: - [0x5a1c4, data, tail] - [0x9b990, .rodata, ov_SC03_031] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9ba5c, data, tail2] + - [0x9c580, .rodata, ov_SC03_031_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9c594, data, tail3] - [0x9E14C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9E14F] # 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 diff --git a/config/splat.ov_SC03_089.yaml b/config/splat.ov_SC03_089.yaml index b25eee2d8..8c2dfa67e 100644 --- a/config/splat.ov_SC03_089.yaml +++ b/config/splat.ov_SC03_089.yaml @@ -99,6 +99,8 @@ segments: - [0x614c0, data, tail] - [0x9c1fc, .rodata, ov_SC03_089] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9c2c8, data, tail2] + - [0x9cdec, .rodata, ov_SC03_089_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9ce00, data, tail3] - [0x9E7C4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9E7C7] # 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 diff --git a/config/splat.ov_SC03_090.yaml b/config/splat.ov_SC03_090.yaml index d282c05a5..420501005 100644 --- a/config/splat.ov_SC03_090.yaml +++ b/config/splat.ov_SC03_090.yaml @@ -99,6 +99,8 @@ segments: - [0x638e4, data, tail] - [0xa1668, .rodata, ov_SC03_090] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa1734, data, tail2] + - [0xa2258, .rodata, ov_SC03_090_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa226c, data, tail3] - [0xA3C34, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xA3C37] # 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 diff --git a/config/splat.ov_SC03_091.yaml b/config/splat.ov_SC03_091.yaml index 758e80d44..f04e786ae 100644 --- a/config/splat.ov_SC03_091.yaml +++ b/config/splat.ov_SC03_091.yaml @@ -99,6 +99,8 @@ segments: - [0x6478c, data, tail] - [0xa7d34, .rodata, ov_SC03_091] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa7e00, data, tail2] + - [0xa8924, .rodata, ov_SC03_091_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa8938, data, tail3] - [0xAA584, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xAA587] # 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 diff --git a/config/splat.ov_SC03_092.yaml b/config/splat.ov_SC03_092.yaml index 8eda54d07..fe7427a83 100644 --- a/config/splat.ov_SC03_092.yaml +++ b/config/splat.ov_SC03_092.yaml @@ -99,6 +99,8 @@ segments: - [0x5cb5c, data, tail] - [0x8890c, .rodata, ov_SC03_092] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x889d8, data, tail2] + - [0x894fc, .rodata, ov_SC03_092_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x89510, data, tail3] - [0x8AF2C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x8AF2F] # 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 diff --git a/config/splat.ov_SC03_093.yaml b/config/splat.ov_SC03_093.yaml index 90b065464..e8c7c6e68 100644 --- a/config/splat.ov_SC03_093.yaml +++ b/config/splat.ov_SC03_093.yaml @@ -99,6 +99,8 @@ segments: - [0x5dd34, data, tail] - [0xa1d60, .rodata, ov_SC03_093] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa1e2c, data, tail2] + - [0xa2950, .rodata, ov_SC03_093_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa2964, data, tail3] - [0xA4584, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xA4587] # 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 diff --git a/config/splat.ov_SC03_094.yaml b/config/splat.ov_SC03_094.yaml index ec63f7a4d..34fe8d453 100644 --- a/config/splat.ov_SC03_094.yaml +++ b/config/splat.ov_SC03_094.yaml @@ -99,6 +99,8 @@ segments: - [0x5f730, data, tail] - [0xa8b9c, .rodata, ov_SC03_094] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa8c68, data, tail2] + - [0xa978c, .rodata, ov_SC03_094_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa97a0, data, tail3] - [0xAB13C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xAB13F] # 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 diff --git a/config/splat.ov_SC03_095.yaml b/config/splat.ov_SC03_095.yaml index 29581a786..d3362b499 100644 --- a/config/splat.ov_SC03_095.yaml +++ b/config/splat.ov_SC03_095.yaml @@ -99,6 +99,8 @@ segments: - [0x58d90, data, tail] - [0x717c8, .rodata, ov_SC03_095] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x71894, data, tail2] + - [0x723b8, .rodata, ov_SC03_095_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x723cc, data, tail3] - [0x73D3C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x73D3F] # 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 diff --git a/config/splat.ov_SC03_096.yaml b/config/splat.ov_SC03_096.yaml index b7eda73c6..fa19bc32e 100644 --- a/config/splat.ov_SC03_096.yaml +++ b/config/splat.ov_SC03_096.yaml @@ -99,6 +99,8 @@ segments: - [0x58910, data, tail] - [0x7027c, .rodata, ov_SC03_096] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x70348, data, tail2] + - [0x70e6c, .rodata, ov_SC03_096_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x70e80, data, tail3] - [0x727F4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x727F7] # 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 diff --git a/config/splat.ov_SC03_097.yaml b/config/splat.ov_SC03_097.yaml index 3ac57c69c..0162a1e51 100644 --- a/config/splat.ov_SC03_097.yaml +++ b/config/splat.ov_SC03_097.yaml @@ -99,6 +99,8 @@ segments: - [0x5dcf0, data, tail] - [0x802ec, .rodata, ov_SC03_097] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x803b8, data, tail2] + - [0x80edc, .rodata, ov_SC03_097_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x80ef0, data, tail3] - [0x82D74, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x82D77] # 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 diff --git a/config/splat.ov_SC03_098.yaml b/config/splat.ov_SC03_098.yaml index 204f9634d..5195354b8 100644 --- a/config/splat.ov_SC03_098.yaml +++ b/config/splat.ov_SC03_098.yaml @@ -99,6 +99,8 @@ segments: - [0x5d17c, data, tail] - [0x9af70, .rodata, ov_SC03_098] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9b03c, data, tail2] + - [0x9bb60, .rodata, ov_SC03_098_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9bb74, data, tail3] - [0x9D75C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9D75F] # 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 diff --git a/config/splat.ov_SC03_099.yaml b/config/splat.ov_SC03_099.yaml index fb0daced8..cc2127907 100644 --- a/config/splat.ov_SC03_099.yaml +++ b/config/splat.ov_SC03_099.yaml @@ -99,6 +99,8 @@ segments: - [0x5b27c, data, tail] - [0x94c44, .rodata, ov_SC03_099] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x94d10, data, tail2] + - [0x95834, .rodata, ov_SC03_099_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x95848, data, tail3] - [0x97304, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x97307] # 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 diff --git a/config/splat.ov_SC03_100.yaml b/config/splat.ov_SC03_100.yaml index a777e7d03..c3417df82 100644 --- a/config/splat.ov_SC03_100.yaml +++ b/config/splat.ov_SC03_100.yaml @@ -99,6 +99,8 @@ segments: - [0x5c748, data, tail] - [0x9dec8, .rodata, ov_SC03_100] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9df94, data, tail2] + - [0x9eab8, .rodata, ov_SC03_100_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9eacc, data, tail3] - [0xA080C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xA080F] # 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 diff --git a/config/splat.ov_SC03_101.yaml b/config/splat.ov_SC03_101.yaml index 3db593369..38eddc484 100644 --- a/config/splat.ov_SC03_101.yaml +++ b/config/splat.ov_SC03_101.yaml @@ -99,6 +99,8 @@ segments: - [0x5b724, data, tail] - [0x73790, .rodata, ov_SC03_101] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7385c, data, tail2] + - [0x74380, .rodata, ov_SC03_101_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x74394, data, tail3] - [0x760CC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x760CF] # 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 diff --git a/config/splat.ov_SC03_102.yaml b/config/splat.ov_SC03_102.yaml index 0cfece2bb..d50f29b56 100644 --- a/config/splat.ov_SC03_102.yaml +++ b/config/splat.ov_SC03_102.yaml @@ -99,6 +99,8 @@ segments: - [0x5dfdc, data, tail] - [0x8f40c, .rodata, ov_SC03_102] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x8f4d8, data, tail2] + - [0x8fffc, .rodata, ov_SC03_102_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x90010, data, tail3] - [0x91ACC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x91ACF] # 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 diff --git a/config/splat.ov_SC03_103.yaml b/config/splat.ov_SC03_103.yaml index de7f5fa5a..b3bc3a259 100644 --- a/config/splat.ov_SC03_103.yaml +++ b/config/splat.ov_SC03_103.yaml @@ -99,6 +99,8 @@ segments: - [0x5bf8c, data, tail] - [0x9a5c0, .rodata, ov_SC03_103] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9a68c, data, tail2] + - [0x9b1b0, .rodata, ov_SC03_103_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9b1c4, data, tail3] - [0x9CC7C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9CC7F] # 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 diff --git a/config/splat.ov_SC03_104.yaml b/config/splat.ov_SC03_104.yaml index 04a4b3727..7da620813 100644 --- a/config/splat.ov_SC03_104.yaml +++ b/config/splat.ov_SC03_104.yaml @@ -99,6 +99,8 @@ segments: - [0x62b1c, data, tail] - [0x95b20, .rodata, ov_SC03_104] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x95bec, data, tail2] + - [0x96710, .rodata, ov_SC03_104_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x96724, data, tail3] - [0x9833C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9833F] # 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 diff --git a/config/splat.ov_SC03_105.yaml b/config/splat.ov_SC03_105.yaml index 814a25e1d..6b2f4f927 100644 --- a/config/splat.ov_SC03_105.yaml +++ b/config/splat.ov_SC03_105.yaml @@ -99,6 +99,8 @@ segments: - [0x621a4, data, tail] - [0x8ee18, .rodata, ov_SC03_105] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x8eee4, data, tail2] + - [0x8fa08, .rodata, ov_SC03_105_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x8fa1c, data, tail3] - [0x94BC4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x94BC7] # 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 diff --git a/config/splat.ov_SC03_108.yaml b/config/splat.ov_SC03_108.yaml index da1fe999c..e21ea4ab5 100644 --- a/config/splat.ov_SC03_108.yaml +++ b/config/splat.ov_SC03_108.yaml @@ -99,6 +99,8 @@ segments: - [0x58afc, data, tail] - [0x77320, .rodata, ov_SC03_108] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x773ec, data, tail2] + - [0x77f10, .rodata, ov_SC03_108_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x77f24, data, tail3] - [0x7994C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x7994F] # 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 diff --git a/config/splat.ov_SC03_109.yaml b/config/splat.ov_SC03_109.yaml index 1b410b735..2944d8038 100644 --- a/config/splat.ov_SC03_109.yaml +++ b/config/splat.ov_SC03_109.yaml @@ -99,6 +99,8 @@ segments: - [0x561a8, data, tail] - [0x6fe30, .rodata, ov_SC03_109] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6fefc, data, tail2] + - [0x70a20, .rodata, ov_SC03_109_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x70a34, data, tail3] - [0x72354, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x72357] # 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 diff --git a/config/splat.ov_SC03_110.yaml b/config/splat.ov_SC03_110.yaml index 2076d73a9..272e98ede 100644 --- a/config/splat.ov_SC03_110.yaml +++ b/config/splat.ov_SC03_110.yaml @@ -99,6 +99,8 @@ segments: - [0x59bc8, data, tail] - [0x77acc, .rodata, ov_SC03_110] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x77b98, data, tail2] + - [0x786bc, .rodata, ov_SC03_110_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x786d0, data, tail3] - [0x7A384, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x7A387] # 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 diff --git a/config/splat.ov_SC03_111.yaml b/config/splat.ov_SC03_111.yaml index 0b138cd85..1ca208df1 100644 --- a/config/splat.ov_SC03_111.yaml +++ b/config/splat.ov_SC03_111.yaml @@ -99,6 +99,8 @@ segments: - [0x5c77c, data, tail] - [0x8f04c, .rodata, ov_SC03_111] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x8f118, data, tail2] + - [0x8fc3c, .rodata, ov_SC03_111_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x8fc50, data, tail3] - [0x91A2C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x91A2F] # 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 diff --git a/config/splat.ov_SC03_112.yaml b/config/splat.ov_SC03_112.yaml index 9ebd6c10d..bbc364f1a 100644 --- a/config/splat.ov_SC03_112.yaml +++ b/config/splat.ov_SC03_112.yaml @@ -99,6 +99,8 @@ segments: - [0x5d584, data, tail] - [0x827b4, .rodata, ov_SC03_112] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x82880, data, tail2] + - [0x833a4, .rodata, ov_SC03_112_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x833b8, data, tail3] - [0x84FF4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x84FF7] # 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 diff --git a/config/splat.ov_SC03_113.yaml b/config/splat.ov_SC03_113.yaml index 2259ab8f8..0cd17f272 100644 --- a/config/splat.ov_SC03_113.yaml +++ b/config/splat.ov_SC03_113.yaml @@ -99,6 +99,8 @@ segments: - [0x5ac34, data, tail] - [0x7b43c, .rodata, ov_SC03_113] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7b508, data, tail2] + - [0x7c02c, .rodata, ov_SC03_113_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7c040, data, tail3] - [0x7DB94, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x7DB97] # 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 diff --git a/config/splat.ov_SC03_114.yaml b/config/splat.ov_SC03_114.yaml index 3c0e925da..9ccf6cba8 100644 --- a/config/splat.ov_SC03_114.yaml +++ b/config/splat.ov_SC03_114.yaml @@ -99,6 +99,8 @@ segments: - [0x5689c, data, tail] - [0x7f148, .rodata, ov_SC03_114] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7f214, data, tail2] + - [0x7fd38, .rodata, ov_SC03_114_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7fd4c, data, tail3] - [0x8170C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x8170F] # 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 diff --git a/config/splat.ov_SC03_115.yaml b/config/splat.ov_SC03_115.yaml index 4ea5c3524..3f67edf13 100644 --- a/config/splat.ov_SC03_115.yaml +++ b/config/splat.ov_SC03_115.yaml @@ -99,6 +99,8 @@ segments: - [0x58308, data, tail] - [0x6aabc, .rodata, ov_SC03_115] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6ab88, data, tail2] + - [0x6b6ac, .rodata, ov_SC03_115_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6b6c0, data, tail3] - [0x6CFE4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x6CFE7] # 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 diff --git a/config/splat.ov_SC03_116.yaml b/config/splat.ov_SC03_116.yaml index 495d6bf69..acc33cc0c 100644 --- a/config/splat.ov_SC03_116.yaml +++ b/config/splat.ov_SC03_116.yaml @@ -99,6 +99,8 @@ segments: - [0x5a70c, data, tail] - [0x6d658, .rodata, ov_SC03_116] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6d724, data, tail2] + - [0x6e248, .rodata, ov_SC03_116_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6e25c, data, tail3] - [0x6FBF4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x6FBF7] # 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 diff --git a/config/splat.ov_SC03_117.yaml b/config/splat.ov_SC03_117.yaml index 5043df31b..55f7a91e9 100644 --- a/config/splat.ov_SC03_117.yaml +++ b/config/splat.ov_SC03_117.yaml @@ -99,6 +99,8 @@ segments: - [0x5c718, data, tail] - [0xa3cf8, .rodata, ov_SC03_117] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa3dc4, data, tail2] + - [0xa48e8, .rodata, ov_SC03_117_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa48fc, data, tail3] - [0xA67EC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xA67EF] # 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 diff --git a/config/splat.ov_SC03_118.yaml b/config/splat.ov_SC03_118.yaml index 0b6bd905b..1b2d1ef3f 100644 --- a/config/splat.ov_SC03_118.yaml +++ b/config/splat.ov_SC03_118.yaml @@ -99,6 +99,8 @@ segments: - [0x617c4, data, tail] - [0xa9c54, .rodata, ov_SC03_118] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa9d20, data, tail2] + - [0xaa844, .rodata, ov_SC03_118_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xaa858, data, tail3] - [0xAC6F4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xAC6F7] # 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 diff --git a/config/splat.ov_SC03_119.yaml b/config/splat.ov_SC03_119.yaml index d39f8ecd5..4f1b9e59e 100644 --- a/config/splat.ov_SC03_119.yaml +++ b/config/splat.ov_SC03_119.yaml @@ -99,6 +99,8 @@ segments: - [0x617c4, data, tail] - [0xa9c54, .rodata, ov_SC03_119] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa9d20, data, tail2] + - [0xaa844, .rodata, ov_SC03_119_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xaa858, data, tail3] - [0xAC6F4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xAC6F7] # 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 diff --git a/config/splat.ov_SC03_121.yaml b/config/splat.ov_SC03_121.yaml index d5286a995..ff33399bf 100644 --- a/config/splat.ov_SC03_121.yaml +++ b/config/splat.ov_SC03_121.yaml @@ -99,6 +99,8 @@ segments: - [0x59fe0, data, tail] - [0x8475c, .rodata, ov_SC03_121] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x84828, data, tail2] + - [0x8534c, .rodata, ov_SC03_121_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x85360, data, tail3] - [0x86E54, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x86E57] # 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 diff --git a/config/splat.ov_SC03_124.yaml b/config/splat.ov_SC03_124.yaml index e3fdfe665..5f218273f 100644 --- a/config/splat.ov_SC03_124.yaml +++ b/config/splat.ov_SC03_124.yaml @@ -99,6 +99,8 @@ segments: - [0x6276c, data, tail] - [0xb6eb0, .rodata, ov_SC03_124] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb6f7c, data, tail2] + - [0xb7aa0, .rodata, ov_SC03_124_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xb7ab4, data, tail3] - [0xBA48C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xBA48F] # 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 diff --git a/config/splat.ov_SC03_125.yaml b/config/splat.ov_SC03_125.yaml index f9d33b2c6..ee167408f 100644 --- a/config/splat.ov_SC03_125.yaml +++ b/config/splat.ov_SC03_125.yaml @@ -99,6 +99,8 @@ segments: - [0x5bbdc, data, tail] - [0x99b9c, .rodata, ov_SC03_125] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x99c68, data, tail2] + - [0x9a78c, .rodata, ov_SC03_125_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9a7a0, data, tail3] - [0x9C3E4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9C3E7] # 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 diff --git a/config/splat.ov_SC03_126.yaml b/config/splat.ov_SC03_126.yaml index 447234d91..d95c87fd0 100644 --- a/config/splat.ov_SC03_126.yaml +++ b/config/splat.ov_SC03_126.yaml @@ -99,6 +99,8 @@ segments: - [0x570d4, data, tail] - [0x65488, .rodata, ov_SC03_126] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x65554, data, tail2] + - [0x66078, .rodata, ov_SC03_126_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6608c, data, tail3] - [0x679D4, bin, trailing] # final 1 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x679D5] # 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 diff --git a/config/splat.ov_SC04_000.yaml b/config/splat.ov_SC04_000.yaml index 387b0f47d..7aa7d17d2 100644 --- a/config/splat.ov_SC04_000.yaml +++ b/config/splat.ov_SC04_000.yaml @@ -99,6 +99,8 @@ segments: - [0x5b0e0, data, tail] - [0x7f504, .rodata, ov_SC04_000] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7f5d0, data, tail2] + - [0x800f4, .rodata, ov_SC04_000_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x80108, data, tail3] - [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 diff --git a/config/splat.ov_SC04_002.yaml b/config/splat.ov_SC04_002.yaml index d352fe195..a4a60d744 100644 --- a/config/splat.ov_SC04_002.yaml +++ b/config/splat.ov_SC04_002.yaml @@ -99,6 +99,8 @@ segments: - [0x6024c, data, tail] - [0x96854, .rodata, ov_SC04_002] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x96920, data, tail2] + - [0x97444, .rodata, ov_SC04_002_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x97458, data, tail3] - [0x995DC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x995DF] # 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 diff --git a/config/splat.ov_SC04_003.yaml b/config/splat.ov_SC04_003.yaml index 1d0276a09..44bd52d20 100644 --- a/config/splat.ov_SC04_003.yaml +++ b/config/splat.ov_SC04_003.yaml @@ -99,6 +99,8 @@ segments: - [0x59fe8, data, tail] - [0x714d0, .rodata, ov_SC04_003] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7159c, data, tail2] + - [0x720c0, .rodata, ov_SC04_003_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x720d4, data, tail3] - [0x73A94, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x73A97] # 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 diff --git a/config/splat.ov_SC04_004.yaml b/config/splat.ov_SC04_004.yaml index c65ff3a72..060014a61 100644 --- a/config/splat.ov_SC04_004.yaml +++ b/config/splat.ov_SC04_004.yaml @@ -99,6 +99,8 @@ segments: - [0x5c51c, data, tail] - [0x892cc, .rodata, ov_SC04_004] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x89398, data, tail2] + - [0x89ebc, .rodata, ov_SC04_004_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x89ed0, data, tail3] - [0x8BAFC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x8BAFF] # 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 diff --git a/config/splat.ov_SC04_005.yaml b/config/splat.ov_SC04_005.yaml index c0a96c3ec..2fb3c8c0c 100644 --- a/config/splat.ov_SC04_005.yaml +++ b/config/splat.ov_SC04_005.yaml @@ -99,6 +99,8 @@ segments: - [0x5f950, data, tail] - [0x97490, .rodata, ov_SC04_005] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9755c, data, tail2] + - [0x98080, .rodata, ov_SC04_005_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x98094, data, tail3] - [0x9A1D4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9A1D7] # 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 diff --git a/config/splat.ov_SC04_006.yaml b/config/splat.ov_SC04_006.yaml index 15fe99e02..5252293be 100644 --- a/config/splat.ov_SC04_006.yaml +++ b/config/splat.ov_SC04_006.yaml @@ -99,6 +99,8 @@ segments: - [0x57a30, data, tail] - [0x73738, .rodata, ov_SC04_006] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x73804, data, tail2] + - [0x74328, .rodata, ov_SC04_006_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7433c, data, tail3] - [0x75C74, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x75C77] # 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 diff --git a/config/splat.ov_SC04_007.yaml b/config/splat.ov_SC04_007.yaml index 3fc58d28f..fb46def97 100644 --- a/config/splat.ov_SC04_007.yaml +++ b/config/splat.ov_SC04_007.yaml @@ -99,6 +99,8 @@ segments: - [0x5d9e8, data, tail] - [0x8acf4, .rodata, ov_SC04_007] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x8adc0, data, tail2] + - [0x8b8e4, .rodata, ov_SC04_007_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x8b8f8, data, tail3] - [0x8DA34, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x8DA37] # 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 diff --git a/config/splat.ov_SC04_008.yaml b/config/splat.ov_SC04_008.yaml index e75217271..b0db83b45 100644 --- a/config/splat.ov_SC04_008.yaml +++ b/config/splat.ov_SC04_008.yaml @@ -99,6 +99,8 @@ segments: - [0x56920, data, tail] - [0x679dc, .rodata, ov_SC04_008] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x67aa8, data, tail2] + - [0x685cc, .rodata, ov_SC04_008_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x685e0, data, tail3] - [0x6B364, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x6B367] # 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 diff --git a/config/splat.ov_SC04_009.yaml b/config/splat.ov_SC04_009.yaml index 34bbf608b..90bc4e78b 100644 --- a/config/splat.ov_SC04_009.yaml +++ b/config/splat.ov_SC04_009.yaml @@ -99,6 +99,8 @@ segments: - [0x5694c, data, tail] - [0x6dbf0, .rodata, ov_SC04_009] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6dcbc, data, tail2] + - [0x6e7e0, .rodata, ov_SC04_009_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6e7f4, data, tail3] - [0x70114, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x70117] # 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 diff --git a/config/splat.ov_SC04_010.yaml b/config/splat.ov_SC04_010.yaml index 59b40ac5c..a2d7c7a54 100644 --- a/config/splat.ov_SC04_010.yaml +++ b/config/splat.ov_SC04_010.yaml @@ -99,6 +99,8 @@ segments: - [0x55ff8, data, tail] - [0x6507c, .rodata, ov_SC04_010] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x65148, data, tail2] + - [0x65c6c, .rodata, ov_SC04_010_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x65c80, data, tail3] - [0x675EC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x675EF] # 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 diff --git a/config/splat.ov_SC04_011.yaml b/config/splat.ov_SC04_011.yaml index 0d9e4dc24..fc0804bce 100644 --- a/config/splat.ov_SC04_011.yaml +++ b/config/splat.ov_SC04_011.yaml @@ -99,6 +99,8 @@ segments: - [0x68288, data, tail] - [0xc4618, .rodata, ov_SC04_011] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xc46e4, data, tail2] + - [0xc5208, .rodata, ov_SC04_011_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc521c, data, tail3] - [0xC9554, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xC9557] # 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 diff --git a/config/splat.ov_SC04_012.yaml b/config/splat.ov_SC04_012.yaml index ff68ec95f..cdff2c9aa 100644 --- a/config/splat.ov_SC04_012.yaml +++ b/config/splat.ov_SC04_012.yaml @@ -99,6 +99,8 @@ segments: - [0x5645c, data, tail] - [0x6775c, .rodata, ov_SC04_012] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x67828, data, tail2] + - [0x6834c, .rodata, ov_SC04_012_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x68360, data, tail3] - [0x6B0E4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x6B0E7] # 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 diff --git a/config/splat.ov_SC04_015.yaml b/config/splat.ov_SC04_015.yaml index df986f94f..93c2960b6 100644 --- a/config/splat.ov_SC04_015.yaml +++ b/config/splat.ov_SC04_015.yaml @@ -99,6 +99,8 @@ segments: - [0x5c38c, data, tail] - [0x9e3f4, .rodata, ov_SC04_015] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9e4c0, data, tail2] + - [0x9efe4, .rodata, ov_SC04_015_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9eff8, data, tail3] - [0xA1284, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xA1287] # 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 diff --git a/config/splat.ov_SC04_016.yaml b/config/splat.ov_SC04_016.yaml index 468ff0f4c..238f69986 100644 --- a/config/splat.ov_SC04_016.yaml +++ b/config/splat.ov_SC04_016.yaml @@ -99,6 +99,8 @@ segments: - [0x57e58, data, tail] - [0x7c5ac, .rodata, ov_SC04_016] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7c678, data, tail2] + - [0x7d19c, .rodata, ov_SC04_016_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7d1b0, data, tail3] - [0x84184, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x84187] # 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 diff --git a/config/splat.ov_SC04_018.yaml b/config/splat.ov_SC04_018.yaml index f486bf511..fac8a47fb 100644 --- a/config/splat.ov_SC04_018.yaml +++ b/config/splat.ov_SC04_018.yaml @@ -99,6 +99,8 @@ segments: - [0x64dd0, data, tail] - [0xbc3c4, .rodata, ov_SC04_018] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbc490, data, tail2] + - [0xbcfb4, .rodata, ov_SC04_018_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xbcfc8, data, tail3] - [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 diff --git a/config/splat.ov_SC04_019.yaml b/config/splat.ov_SC04_019.yaml index b6df16b43..b09c3fe76 100644 --- a/config/splat.ov_SC04_019.yaml +++ b/config/splat.ov_SC04_019.yaml @@ -99,6 +99,8 @@ segments: - [0x64dd0, data, tail] - [0xbc3c4, .rodata, ov_SC04_019] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbc490, data, tail2] + - [0xbcfb4, .rodata, ov_SC04_019_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xbcfc8, data, tail3] - [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 diff --git a/config/splat.ov_SC04_020.yaml b/config/splat.ov_SC04_020.yaml index eef833489..c28531e80 100644 --- a/config/splat.ov_SC04_020.yaml +++ b/config/splat.ov_SC04_020.yaml @@ -99,6 +99,8 @@ segments: - [0x5b1a8, data, tail] - [0x91dec, .rodata, ov_SC04_020] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x91eb8, data, tail2] + - [0x929dc, .rodata, ov_SC04_020_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x929f0, data, tail3] - [0x94654, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x94657] # 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 diff --git a/config/splat.ov_SC04_021.yaml b/config/splat.ov_SC04_021.yaml index 5dda9a76a..b1a286f68 100644 --- a/config/splat.ov_SC04_021.yaml +++ b/config/splat.ov_SC04_021.yaml @@ -99,6 +99,8 @@ segments: - [0x570d4, data, tail] - [0x65488, .rodata, ov_SC04_021] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x65554, data, tail2] + - [0x66078, .rodata, ov_SC04_021_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6608c, data, tail3] - [0x679D4, bin, trailing] # final 1 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x679D5] # 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 diff --git a/config/splat.ov_SC05_000.yaml b/config/splat.ov_SC05_000.yaml index d88d4b18a..b08f70306 100644 --- a/config/splat.ov_SC05_000.yaml +++ b/config/splat.ov_SC05_000.yaml @@ -99,6 +99,8 @@ segments: - [0x560e8, data, tail] - [0x705d8, .rodata, ov_SC05_000] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x706a4, data, tail2] + - [0x711c8, .rodata, ov_SC05_000_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x711dc, data, tail3] - [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 diff --git a/config/splat.ov_SC05_001.yaml b/config/splat.ov_SC05_001.yaml index 4b4a7d82c..5d97ed0b0 100644 --- a/config/splat.ov_SC05_001.yaml +++ b/config/splat.ov_SC05_001.yaml @@ -99,6 +99,8 @@ segments: - [0x5d8c4, data, tail] - [0x8b58c, .rodata, ov_SC05_001] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x8b658, data, tail2] + - [0x8c17c, .rodata, ov_SC05_001_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x8c190, data, tail3] - [0x8DEAC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x8DEAF] # 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 diff --git a/config/splat.ov_SC05_002.yaml b/config/splat.ov_SC05_002.yaml index 2b30acb9e..5ca444e3e 100644 --- a/config/splat.ov_SC05_002.yaml +++ b/config/splat.ov_SC05_002.yaml @@ -99,6 +99,8 @@ segments: - [0x58084, data, tail] - [0x75938, .rodata, ov_SC05_002] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x75a04, data, tail2] + - [0x76528, .rodata, ov_SC05_002_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7653c, data, tail3] - [0x77E64, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x77E67] # 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 diff --git a/config/splat.ov_SC05_003.yaml b/config/splat.ov_SC05_003.yaml index ec4b73310..8fbe71741 100644 --- a/config/splat.ov_SC05_003.yaml +++ b/config/splat.ov_SC05_003.yaml @@ -99,6 +99,8 @@ segments: - [0x5a3bc, data, tail] - [0x82434, .rodata, ov_SC05_003] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x82500, data, tail2] + - [0x83024, .rodata, ov_SC05_003_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x83038, data, tail3] - [0x84974, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x84977] # 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 diff --git a/config/splat.ov_SC05_004.yaml b/config/splat.ov_SC05_004.yaml index 60304a9d9..e0dfbbedc 100644 --- a/config/splat.ov_SC05_004.yaml +++ b/config/splat.ov_SC05_004.yaml @@ -99,6 +99,8 @@ segments: - [0x594c8, data, tail] - [0x74a28, .rodata, ov_SC05_004] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x74af4, data, tail2] + - [0x75618, .rodata, ov_SC05_004_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7562c, data, tail3] - [0x771CC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x771CF] # 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 diff --git a/config/splat.ov_SC05_005.yaml b/config/splat.ov_SC05_005.yaml index ba7fbfb3e..44fb2cab2 100644 --- a/config/splat.ov_SC05_005.yaml +++ b/config/splat.ov_SC05_005.yaml @@ -99,6 +99,8 @@ segments: - [0x5a29c, data, tail] - [0x87710, .rodata, ov_SC05_005] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x877dc, data, tail2] + - [0x88300, .rodata, ov_SC05_005_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x88314, data, tail3] - [0x89ED4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x89ED7] # 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 diff --git a/config/splat.ov_SC05_006.yaml b/config/splat.ov_SC05_006.yaml index 0aaafddb7..0d5f8c047 100644 --- a/config/splat.ov_SC05_006.yaml +++ b/config/splat.ov_SC05_006.yaml @@ -99,6 +99,8 @@ segments: - [0x572bc, data, tail] - [0x65860, .rodata, ov_SC05_006] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6592c, data, tail2] + - [0x66450, .rodata, ov_SC05_006_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x66464, data, tail3] - [0x68004, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x68007] # 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 diff --git a/config/splat.ov_SC05_007.yaml b/config/splat.ov_SC05_007.yaml index c8dfb66c6..1a271cf30 100644 --- a/config/splat.ov_SC05_007.yaml +++ b/config/splat.ov_SC05_007.yaml @@ -99,6 +99,8 @@ segments: - [0x588b8, data, tail] - [0x72838, .rodata, ov_SC05_007] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x72904, data, tail2] + - [0x73428, .rodata, ov_SC05_007_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7343c, data, tail3] - [0x74DA4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x74DA7] # 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 diff --git a/config/splat.ov_SC05_008.yaml b/config/splat.ov_SC05_008.yaml index 92fe05444..d6bde4a30 100644 --- a/config/splat.ov_SC05_008.yaml +++ b/config/splat.ov_SC05_008.yaml @@ -99,6 +99,8 @@ segments: - [0x5a810, data, tail] - [0x76b6c, .rodata, ov_SC05_008] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x76c38, data, tail2] + - [0x7775c, .rodata, ov_SC05_008_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x77770, data, tail3] - [0x79190, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x79193] # 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 diff --git a/config/splat.ov_SC05_009.yaml b/config/splat.ov_SC05_009.yaml index ad00cca9e..acbf32afc 100644 --- a/config/splat.ov_SC05_009.yaml +++ b/config/splat.ov_SC05_009.yaml @@ -99,6 +99,8 @@ segments: - [0x56920, data, tail] - [0x6c580, .rodata, ov_SC05_009] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6c64c, data, tail2] + - [0x6d170, .rodata, ov_SC05_009_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6d184, data, tail3] - [0x6EAEC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x6EAEF] # 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 diff --git a/config/splat.ov_SC05_010.yaml b/config/splat.ov_SC05_010.yaml index 7ff7afcad..e75733e4f 100644 --- a/config/splat.ov_SC05_010.yaml +++ b/config/splat.ov_SC05_010.yaml @@ -99,6 +99,8 @@ segments: - [0x607fc, data, tail] - [0x9c7b4, .rodata, ov_SC05_010] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9c880, data, tail2] + - [0x9d3a4, .rodata, ov_SC05_010_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9d3b8, data, tail3] - [0x9FED4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x9FED7] # 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 diff --git a/config/splat.ov_SC05_011.yaml b/config/splat.ov_SC05_011.yaml index 78f095afd..adc0608e6 100644 --- a/config/splat.ov_SC05_011.yaml +++ b/config/splat.ov_SC05_011.yaml @@ -99,6 +99,8 @@ segments: - [0x55b74, data, tail] - [0x72b18, .rodata, ov_SC05_011] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x72be4, data, tail2] + - [0x73708, .rodata, ov_SC05_011_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7371c, data, tail3] - [0x75084, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x75087] # 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 diff --git a/config/splat.ov_SC05_017.yaml b/config/splat.ov_SC05_017.yaml index 67c5ba3b8..fc7e83efa 100644 --- a/config/splat.ov_SC05_017.yaml +++ b/config/splat.ov_SC05_017.yaml @@ -99,6 +99,8 @@ segments: - [0x64d94, data, tail] - [0xc2200, .rodata, ov_SC05_017] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xc22cc, data, tail2] + - [0xc2df0, .rodata, ov_SC05_017_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xc2e04, data, tail3] - [0xC582C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xC582F] # 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 diff --git a/config/splat.ov_SC05_018.yaml b/config/splat.ov_SC05_018.yaml index c6110151e..9f38a8d53 100644 --- a/config/splat.ov_SC05_018.yaml +++ b/config/splat.ov_SC05_018.yaml @@ -99,6 +99,8 @@ segments: - [0x5e790, data, tail] - [0xbbd74, .rodata, ov_SC05_018] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbbe40, data, tail2] + - [0xbc964, .rodata, ov_SC05_018_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xbc978, data, tail3] - [0xBE734, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xBE737] # 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 diff --git a/config/splat.ov_SC05_019.yaml b/config/splat.ov_SC05_019.yaml index 35b95c799..4d899d6a4 100644 --- a/config/splat.ov_SC05_019.yaml +++ b/config/splat.ov_SC05_019.yaml @@ -99,6 +99,8 @@ segments: - [0x570d4, data, tail] - [0x65488, .rodata, ov_SC05_019] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x65554, data, tail2] + - [0x66078, .rodata, ov_SC05_019_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6608c, data, tail3] - [0x679D4, bin, trailing] # final 1 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x679D5] # 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 diff --git a/config/splat.ov_SC06_000.yaml b/config/splat.ov_SC06_000.yaml index fe361daec..6eb9679e5 100644 --- a/config/splat.ov_SC06_000.yaml +++ b/config/splat.ov_SC06_000.yaml @@ -99,6 +99,8 @@ segments: - [0x600e4, data, tail] - [0x84100, .rodata, ov_SC06_000] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x841cc, data, tail2] + - [0x84cf0, .rodata, ov_SC06_000_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x84d04, data, tail3] - [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 diff --git a/config/splat.ov_SC06_006.yaml b/config/splat.ov_SC06_006.yaml index f93e829a8..258fe7b6d 100644 --- a/config/splat.ov_SC06_006.yaml +++ b/config/splat.ov_SC06_006.yaml @@ -99,6 +99,8 @@ segments: - [0x59c08, data, tail] - [0xcda08, .rodata, ov_SC06_006] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xcdad4, data, tail2] + - [0xce5f8, .rodata, ov_SC06_006_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xce60c, data, tail3] - [0xD0A0C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xD0A0F] # 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 diff --git a/config/splat.ov_SC06_008.yaml b/config/splat.ov_SC06_008.yaml index 6efee5cf5..a241328ce 100644 --- a/config/splat.ov_SC06_008.yaml +++ b/config/splat.ov_SC06_008.yaml @@ -99,6 +99,8 @@ segments: - [0x5d670, data, tail] - [0x7fae0, .rodata, ov_SC06_008] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7fbac, data, tail2] + - [0x806d0, .rodata, ov_SC06_008_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x806e4, data, tail3] - [0x826DC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x826DF] # 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 diff --git a/config/splat.ov_SC06_010.yaml b/config/splat.ov_SC06_010.yaml index 1cbea075e..2f47dd99c 100644 --- a/config/splat.ov_SC06_010.yaml +++ b/config/splat.ov_SC06_010.yaml @@ -99,6 +99,8 @@ segments: - [0x5e84c, data, tail] - [0x87b34, .rodata, ov_SC06_010] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x87c00, data, tail2] + - [0x88724, .rodata, ov_SC06_010_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x88738, data, tail3] - [0x8AB24, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x8AB27] # 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 diff --git a/config/splat.ov_SC06_011.yaml b/config/splat.ov_SC06_011.yaml index c66c022cb..88a469d3e 100644 --- a/config/splat.ov_SC06_011.yaml +++ b/config/splat.ov_SC06_011.yaml @@ -99,6 +99,8 @@ segments: - [0x582ac, data, tail] - [0x81694, .rodata, ov_SC06_011] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x81760, data, tail2] + - [0x82284, .rodata, ov_SC06_011_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x82298, data, tail3] - [0x83BFC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x83BFF] # 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 diff --git a/config/splat.ov_SC06_013.yaml b/config/splat.ov_SC06_013.yaml index ac99068b3..b294f2037 100644 --- a/config/splat.ov_SC06_013.yaml +++ b/config/splat.ov_SC06_013.yaml @@ -99,6 +99,8 @@ segments: - [0x56a28, data, tail] - [0x70568, .rodata, ov_SC06_013] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x70634, data, tail2] + - [0x71158, .rodata, ov_SC06_013_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7116c, data, tail3] - [0x72AAC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x72AAF] # 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 diff --git a/config/splat.ov_SC06_014.yaml b/config/splat.ov_SC06_014.yaml index 437849421..4888200df 100644 --- a/config/splat.ov_SC06_014.yaml +++ b/config/splat.ov_SC06_014.yaml @@ -99,6 +99,8 @@ segments: - [0x57d8c, data, tail] - [0x76f58, .rodata, ov_SC06_014] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x77024, data, tail2] + - [0x77b48, .rodata, ov_SC06_014_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x77b5c, data, tail3] - [0x794C4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x794C7] # 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 diff --git a/config/splat.ov_SC06_015.yaml b/config/splat.ov_SC06_015.yaml index 4906d2e71..1eda5d3e1 100644 --- a/config/splat.ov_SC06_015.yaml +++ b/config/splat.ov_SC06_015.yaml @@ -99,6 +99,8 @@ segments: - [0x568e4, data, tail] - [0x6a338, .rodata, ov_SC06_015] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6a404, data, tail2] + - [0x6af28, .rodata, ov_SC06_015_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6af3c, data, tail3] - [0x6C8A4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x6C8A7] # 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 diff --git a/config/splat.ov_SC06_016.yaml b/config/splat.ov_SC06_016.yaml index adbab720d..5cfef6ec0 100644 --- a/config/splat.ov_SC06_016.yaml +++ b/config/splat.ov_SC06_016.yaml @@ -99,6 +99,8 @@ segments: - [0x5ccf4, data, tail] - [0x74f80, .rodata, ov_SC06_016] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7504c, data, tail2] + - [0x75b70, .rodata, ov_SC06_016_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x75b84, data, tail3] - [0x78114, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x78117] # 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 diff --git a/config/splat.ov_SC06_018.yaml b/config/splat.ov_SC06_018.yaml index 27e2b5727..a0cdb6870 100644 --- a/config/splat.ov_SC06_018.yaml +++ b/config/splat.ov_SC06_018.yaml @@ -99,6 +99,8 @@ segments: - [0x6b430, data, tail] - [0xaa810, .rodata, ov_SC06_018] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xaa8dc, data, tail2] + - [0xab400, .rodata, ov_SC06_018_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xab414, data, tail3] - [0xADA44, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xADA47] # 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 diff --git a/config/splat.ov_SC06_020.yaml b/config/splat.ov_SC06_020.yaml index 2d6a5b7e6..604f90f35 100644 --- a/config/splat.ov_SC06_020.yaml +++ b/config/splat.ov_SC06_020.yaml @@ -99,6 +99,8 @@ segments: - [0x5ceb8, data, tail] - [0x900f8, .rodata, ov_SC06_020] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x901c4, data, tail2] + - [0x90ce8, .rodata, ov_SC06_020_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x90cfc, data, tail3] - [0x92894, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x92897] # 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 diff --git a/config/splat.ov_SC06_022.yaml b/config/splat.ov_SC06_022.yaml index 7ec95286f..9d6b68437 100644 --- a/config/splat.ov_SC06_022.yaml +++ b/config/splat.ov_SC06_022.yaml @@ -99,6 +99,8 @@ segments: - [0x65174, data, tail] - [0xb7908, .rodata, ov_SC06_022] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb79d4, data, tail2] + - [0xb84f8, .rodata, ov_SC06_022_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xb850c, data, tail3] - [0xBA114, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xBA117] # 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 diff --git a/config/splat.ov_SC06_024.yaml b/config/splat.ov_SC06_024.yaml index ce951b35c..4ba8bc01b 100644 --- a/config/splat.ov_SC06_024.yaml +++ b/config/splat.ov_SC06_024.yaml @@ -99,6 +99,8 @@ segments: - [0x6764c, data, tail] - [0xb6a4c, .rodata, ov_SC06_024] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb6b18, data, tail2] + - [0xb763c, .rodata, ov_SC06_024_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xb7650, data, tail3] - [0xB980C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xB980F] # 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 diff --git a/config/splat.ov_SC06_025.yaml b/config/splat.ov_SC06_025.yaml index 7af72c4eb..390e66fae 100644 --- a/config/splat.ov_SC06_025.yaml +++ b/config/splat.ov_SC06_025.yaml @@ -99,6 +99,8 @@ segments: - [0x5caf0, data, tail] - [0x86d6c, .rodata, ov_SC06_025] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x86e38, data, tail2] + - [0x8795c, .rodata, ov_SC06_025_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x87970, data, tail3] - [0x8A12C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x8A12F] # 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 diff --git a/config/splat.ov_SC06_027.yaml b/config/splat.ov_SC06_027.yaml index f9addaea3..517e996ac 100644 --- a/config/splat.ov_SC06_027.yaml +++ b/config/splat.ov_SC06_027.yaml @@ -99,6 +99,8 @@ segments: - [0x55e30, data, tail] - [0x72da8, .rodata, ov_SC06_027] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x72e74, data, tail2] + - [0x73998, .rodata, ov_SC06_027_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x739ac, data, tail3] - [0x752D4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x752D7] # 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 diff --git a/config/splat.ov_SC06_029.yaml b/config/splat.ov_SC06_029.yaml index f751ac88c..f05971312 100644 --- a/config/splat.ov_SC06_029.yaml +++ b/config/splat.ov_SC06_029.yaml @@ -99,6 +99,8 @@ segments: - [0x643c0, data, tail] - [0xb2424, .rodata, ov_SC06_029] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb24f0, data, tail2] + - [0xb3014, .rodata, ov_SC06_029_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xb3028, data, tail3] - [0xBA034, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xBA037] # 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 diff --git a/config/splat.ov_SC06_030.yaml b/config/splat.ov_SC06_030.yaml index ad2ce047d..f335fc2ed 100644 --- a/config/splat.ov_SC06_030.yaml +++ b/config/splat.ov_SC06_030.yaml @@ -99,6 +99,8 @@ segments: - [0x59cb4, data, tail] - [0x8f788, .rodata, ov_SC06_030] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x8f854, data, tail2] + - [0x90378, .rodata, ov_SC06_030_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x9038c, data, tail3] - [0x91F2C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x91F2F] # 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 diff --git a/config/splat.ov_SC06_032.yaml b/config/splat.ov_SC06_032.yaml index 92d6c0dea..ea9de19ea 100644 --- a/config/splat.ov_SC06_032.yaml +++ b/config/splat.ov_SC06_032.yaml @@ -99,6 +99,8 @@ segments: - [0x6b180, data, tail] - [0xa5de4, .rodata, ov_SC06_032] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa5eb0, data, tail2] + - [0xa69d4, .rodata, ov_SC06_032_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa69e8, data, tail3] - [0xA9014, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xA9017] # 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 diff --git a/config/splat.ov_SC06_033.yaml b/config/splat.ov_SC06_033.yaml index 9ec25acf9..374d1caf1 100644 --- a/config/splat.ov_SC06_033.yaml +++ b/config/splat.ov_SC06_033.yaml @@ -99,6 +99,8 @@ segments: - [0x69690, data, tail] - [0xa5e98, .rodata, ov_SC06_033] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa5f64, data, tail2] + - [0xa6a88, .rodata, ov_SC06_033_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa6a9c, data, tail3] - [0xA8E94, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0xA8E97] # 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 diff --git a/config/splat.ov_SC07_000.yaml b/config/splat.ov_SC07_000.yaml index 9a08e648d..25b4cdcbf 100644 --- a/config/splat.ov_SC07_000.yaml +++ b/config/splat.ov_SC07_000.yaml @@ -99,6 +99,8 @@ segments: - [0x5a4d8, data, tail] - [0xa54f4, .rodata, ov_SC07_000] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xa55c0, data, tail2] + - [0xa60e4, .rodata, ov_SC07_000_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xa60f8, data, tail3] - [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 diff --git a/config/splat.ov_SC07_001.yaml b/config/splat.ov_SC07_001.yaml index bd0f227eb..ceac209c1 100644 --- a/config/splat.ov_SC07_001.yaml +++ b/config/splat.ov_SC07_001.yaml @@ -99,6 +99,8 @@ segments: - [0x59388, data, tail] - [0x80690, .rodata, ov_SC07_001] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x8075c, data, tail2] + - [0x81280, .rodata, ov_SC07_001_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x81294, data, tail3] - [0x82DB4, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x82DB7] # 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 diff --git a/config/splat.ov_SC07_002.yaml b/config/splat.ov_SC07_002.yaml index 8e9180e17..550b979d0 100644 --- a/config/splat.ov_SC07_002.yaml +++ b/config/splat.ov_SC07_002.yaml @@ -99,6 +99,8 @@ segments: - [0x5e644, data, tail] - [0x71078, .rodata, ov_SC07_002] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x71144, data, tail2] + - [0x71c68, .rodata, ov_SC07_002_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x71c7c, data, tail3] - [0x77F7C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x77F7F] # 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 diff --git a/config/splat.ov_SC07_008.yaml b/config/splat.ov_SC07_008.yaml index a89e08bb6..b39a33267 100644 --- a/config/splat.ov_SC07_008.yaml +++ b/config/splat.ov_SC07_008.yaml @@ -99,6 +99,8 @@ segments: - [0x5515c, data, tail] - [0x6c0c8, .rodata, ov_SC07_008] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x6c194, data, tail2] + - [0x6ccb8, .rodata, ov_SC07_008_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x6cccc, data, tail3] - [0x6E5EC, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x6E5EF] # 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 diff --git a/config/splat.ov_SC07_009.yaml b/config/splat.ov_SC07_009.yaml index ffa02ada1..e645ab138 100644 --- a/config/splat.ov_SC07_009.yaml +++ b/config/splat.ov_SC07_009.yaml @@ -99,6 +99,8 @@ segments: - [0x55c00, data, tail] - [0x79754, .rodata, ov_SC07_009] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x79820, data, tail2] + - [0x7a344, .rodata, ov_SC07_009_after] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x7a358, data, tail3] - [0x7BC7C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word) - [0x7BC7F] # 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 diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index 9af3a6566..5e2201195 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -24,7 +24,26 @@ The Phase-25 h_seq reframe: the "unique tail" is really per-location families - [ ] **Task 11 — Step-D residue map** `[xHigh]` — true singletons (~0.27M ins) + 5 behemoths → Phase-27 input doc. NO execution. - [ ] **Task 12 — PhaseEnd** `[Max — Tier 1; R27 prompt]` — P7 walk, milestone demo, gate 2, `PhaseEnd_Phase26.md`, worklog → `logs/Phase26.md` (R19), in-file recap (R25), decision-log current (R31). -## ▶ SESSION-3 CHECKPOINT (2026-07-12 late) — RESUME FROM HERE (fresh session) +## ▶ SESSION-4 CHECKPOINT (2026-07-12 later) — RESUME FROM HERE (fresh session) + +**Stage 1 in progress — multi-jtbl `--order` BUILT + proven cross-subseg at fleet scale.** Effort: Max (this session, Tier-1 tooling build). + +### What session 4 delivered so far (committed + R22 136/136) +1. **`ld_interleave.py --order`** — address-ordered N-piece multi-jtbl sandwich (text → [data|.rodata carves, address-ordered] → bss). Legacy `--front/--tail` path byte-untouched (main + the 133 single-carve siblings unaffected). Empty code-object sections parked byte-neutrally with .text. +2. **`jtbl_carve.py` rewritten additive/regenerate-from-config** — parses the current tail data-region + existing `.rodata` carves, adds the new fn's jtbl (splitting its containing data piece), re-emits the address-ordered pieces + the `--order` interleave arg. Same-subseg collision → fails loud (→ isolation). Idempotent. +3. **`jtbl_family_bank.py` fix** — `bank()` now `make extract`s BEFORE the carve (so the sibling asm matches the reverted committed config; the old error-string retry was fragile). Revert-on-carve-fail. +4. **Family-1 banked: `func_801734BC` (34-ins PURE jr, in ov_SC01_077_after) ×134** — matched in ov077 (shared-tail switch: `case N: t=-N; break; default: goto after;`), banked 133/133 siblings, **R22 136/136 clean-fleet byte-identical**. This is a CROSS-subseg multi-jtbl (func_8012ACE0 in `_a` + func_801734BC in `_after`) — the checkpoint's primary Stage-1 goal, proven fleet-wide. + +### The same-subseg design (worked out; jr_isolate.py WRITTEN, not yet committed/tested) +- Two matched jr-fns in ONE code object emit their jtbls CONTIGUOUS (gcc source order); byte-correct only if adjacent in the island. Non-adjacent → unsatisfiable → **isolate** one into its own code subseg (the whale `_o0b` precedent). `tools/jr_isolate.py` splits the subseg (config + H5-safe `split_src_region` trim/inject) so the fn is its own object; `jtbl_carve` then derives its carve subseg from `func_subseg` automatically (no rename bookkeeping). +- **Key discipline:** isolating fn F preserves the carves of all fns BELOW F (trim keeps `< F` in place). So bank same-subseg families **ascending**; each new (higher) fn isolates cleanly, no carve-rename. (func_801734BC was banked first non-isolated — fine; only isolate fns ABOVE it, or re-bank it isolated for a lower one.) +- **⚠ Stage-2 scaling open question:** per-fn source-split ×134 siblings is slow for 191 cores — a one-time "isolate-all-jr-per-sibling" resegment may be the scalable path. Decide before the heavy-core waves. + +### NEXT (this session): prove non-contiguous isolation on ONE cheap higher fn (e.g. `func_80183BAC`, > func_801734BC) → integrate jr_isolate into `jtbl_family_bank` (isolate-on-collision) → R22 → commit → **pivot to Stage 2** (prompt Drew: re-approve + `/effort`/Fable5 for the heavy 191 cores; R27). + +--- + +## ▶ SESSION-3 CHECKPOINT (2026-07-12 late) — superseded by SESSION-4 above **Committed baseline = `commit:0534`, R22 136/136 (now ~50s, parallel).** Session-3 commits: `commit:0531` (tiny-band), `commit:0532` (§8 PoC), `commit:0533` (§8 ×134 automation), `commit:0534` (R22 parallelization). Phase-26 total: **distinct-code 30.3→39.1%, instr-weighted 58.2→63.0%.** @@ -96,6 +115,7 @@ On approval → `/model opus` + `/effort xHigh` (Tasks 0–4; ALL Fable5 via `Ag ## Log +- **2026-07-12 (session 4, multi-jtbl `--order` + family-1 — the Stage-1 de-risk build; Max):** Recon proved the Stage-1 core risk is precise: `jtbl_family_bank.revert()` restores each sibling to committed = has func_8012ACE0's carve, so banking ANY 2nd jr family makes the overlay multi-jtbl. Built `ld_interleave.py --order` (address-ordered N-piece sandwich; legacy `--front/--tail` byte-untouched → main + 133 single-carve siblings unaffected) + rewrote `jtbl_carve.py` additive/regenerate-from-config (parses tail data-region + existing carves, splits the containing data piece for the new jtbl, re-emits `--order`; same-subseg → fails loud). Fixed `jtbl_family_bank.bank()` to `make extract` BEFORE the carve (asm must match the reverted config; the old error-string retry was fragile — 3 early siblings carve-failed). **Family-1 `func_801734BC` (34-ins PURE jr, ov_SC01_077_after) matched in ov077 (shared-tail switch idiom `case N: t=-N; break; default: goto after;`) + banked 133/133 siblings — CROSS-subseg multi-jtbl (func_8012ACE0 `_a` + func_801734BC `_after`), the primary Stage-1 goal. R22 clean-fleet 136/136 byte-identical (~52s).** Wrote `tools/jr_isolate.py` (same-subseg non-contiguous case — split a fn into its own subseg via `split_src_region`, `jtbl_carve` re-derives the carve subseg; ascending-order discipline avoids carve-renames) — not yet integrated/committed. §8a finding: the still-INCLUDE_ASM carve build fails (migrated rodata not emitted through INCLUDE_ASM) — OFF the banking critical path (bank swaps C before building). Committed (Drew pushes — R6). NEXT: prove isolation on a higher fn → integrate → pivot to Stage 2. - **2026-07-12 (session 3, R22 parallelization — Drew asked "why so slow, profile+optimize"):** Profiled the clean-fleet R22 (`make clean` + extract-all + check-all). **Phase split: extract-all ~6m11s (the BIGGER phase, 136 serial `splat split` runs) + check-all ~2m58s (136 serial builds; most overlays ~1.3s, ov077 slow — maspsx on its 15K-line `.c`) = ~9 min.** Both phases were serial on a 32-core box (the old Makefile comment called cross-binary `-j` "racy"). **Verified the only shared write is the 4 generated `include/*.inc` macros at extract time (identical content); everything else is per-binary-disjoint and `include/` is read-only during a build → parallel is safe.** Added `JOBS ?= 16` + **`make extract-all`** (seed `main` serial for the macros, then parallel-extract the rest) + **parallel `make check-all`** (`xargs -P$(JOBS)`), correctness-gated. **Result: `make clean && make extract-all && make check-all` = ~50s, 136/136 byte-identical — a ~10.5× speedup (9m→~50s).** Committed the Makefile change (own commit). This compounds across the endgame (R22 runs every commit). - **2026-07-12 (session 3, §8 ×134 AUTOMATION — func_8012ACE0 banked fleet-wide):** Built the jr-function ×134 harvest pipeline and proved it end-to-end. `tools/jtbl_carve.py` = per-overlay §8 carve generator (finding: the same fn is at the same vram across siblings but its jtbl is at a DIFFERENT address in each — ov_SC01_000 jtbl_801A331C / ov_SC02_000 jtbl_801E587C — so the carve is recomputed per sibling; rewrites the config data-tail subsegs + sets `_JTBL_INTERLEAVE`). `tools/jtbl_family_bank.py` = the sibling sweep driver (per sibling: revert→carve→extract→remap_hseq+reconcile→whole-binary gate; idempotent, revert-on-fail). **Propagation-cap fix:** `family_remap.extract_unit` now carries single-line `typedef`s (jr-function bodies define local `typedef struct{} Foo_;` that must template with the body, else the sibling sees `Foo undeclared` — additive, byte-gate-protected). **func_8012ACE0 family: 133/133 siblings BANKED, 0 failures; R22 clean-fleet 136/136 byte-identical.** Metrics: distinct-code 39.1% (50,698 unique fns), instr 63.0%. **Opportunity map (`has_mid_jr` families):** 237 total (5,805 members / 5.68M ins) — 46 small mid/tiny (771 members, mechanical, same pipeline) + 191 substantial = the Fable5 cores (Task 7, paused). Committed. **NEXT: (a) R22 profiling/parallelization (Drew asked — check-all builds 136 binaries serially on a 32-core box); (b) the other 45 small jr families.** - **2026-07-12 (session 3, §8 jtbl-rodata tooling — PoC PROVEN):** Built the overlay jtbl-rodata mechanism (cookbook §8a, the durable writeup). Findings: overlay jtbls form a contiguous `.rodata` island at the TAIL (between `.data` globals and a tiny remnant), not the EXE's central island. Mechanism (byte-identical, 2-step): (Step 1) carve a matched jr-function's jtbl out of `[data,tail]` into a dotted `[.rodata, ]` subseg (spimdisasm migrates it into the fn's `.s`) + `[data, tail2]`; parameterized **`tools/ld_interleave.py --section .`** (derives the symbol prefix; default `.main` = EXE byte-identical, backward-compat proven) places text→data(pre)→rodata→data(post)→bss — **build byte-identical with the fn still INCLUDE_ASM**. (Step 2) swap in the C body → **byte-identical** — the C-emitted jtbl lands exact. Wired into `make extract` via `_JTBL_INTERLEAVE` in `config/overlays.mk` + a `$(strip)`-guarded `ifneq` branch (gotcha caught: a trailing `#comment` on the `:=` left whitespace → the branch misfired on resident). **PoC target: `func_8012ACE0`** (25-ins single-jtbl jr-function, ov_SC01_077) — reconciled via `canon_sig_reconcile` (raw draft had `conflicting types`), banked **byte-identical `d19c9580`**, ov077 clean-rebuilds. Key P9 finding: **`func_80159C84`/`func_8015444C` (the 2 carried Fable5 bodies) are rtu_match FALSE-MATCHes** — their C jtbls are incomplete (52B vs 56B), so they never bank; rtu_match excludes the §8 rodata (confirms the checkpoint's "2 jtbl false-MATCH"). The maspsx "hang" scare was a truncated-experimental-file artifact — the real pipeline builds in ~1s. **NEXT: full R22 (in flight) → commit the PoC + tooling; then the ×134 automation** (generate the per-overlay carve + template the reconciled body per sibling). diff --git a/src/ov_SC01_000/ov_SC01_000_after.c b/src/ov_SC01_000/ov_SC01_000_after.c index 6ecae455b..33dbcfd34 100644 --- a/src/ov_SC01_000/ov_SC01_000_after.c +++ b/src/ov_SC01_000/ov_SC01_000_after.c @@ -9150,7 +9150,27 @@ INCLUDE_ASM("asm/ov_SC01_000/nonmatchings/ov_SC01_000_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_000/nonmatchings/ov_SC01_000_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801821EC[])(void); diff --git a/src/ov_SC01_001/ov_SC01_001_after.c b/src/ov_SC01_001/ov_SC01_001_after.c index 0ae737eb9..0020cdeb5 100644 --- a/src/ov_SC01_001/ov_SC01_001_after.c +++ b/src/ov_SC01_001/ov_SC01_001_after.c @@ -9150,7 +9150,27 @@ INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80186E3C[])(void); diff --git a/src/ov_SC01_004/ov_SC01_004_after.c b/src/ov_SC01_004/ov_SC01_004_after.c index 935fcfe08..6f2f32567 100644 --- a/src/ov_SC01_004/ov_SC01_004_after.c +++ b/src/ov_SC01_004/ov_SC01_004_after.c @@ -9152,7 +9152,27 @@ INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80182800[])(void); diff --git a/src/ov_SC01_005/ov_SC01_005_after.c b/src/ov_SC01_005/ov_SC01_005_after.c index e8b4f8fdd..b0fffeec1 100644 --- a/src/ov_SC01_005/ov_SC01_005_after.c +++ b/src/ov_SC01_005/ov_SC01_005_after.c @@ -9152,7 +9152,27 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185994[])(void); diff --git a/src/ov_SC01_006/ov_SC01_006_after.c b/src/ov_SC01_006/ov_SC01_006_after.c index a1d14eb3e..539cfc61c 100644 --- a/src/ov_SC01_006/ov_SC01_006_after.c +++ b/src/ov_SC01_006/ov_SC01_006_after.c @@ -9152,7 +9152,27 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185994[])(void); diff --git a/src/ov_SC01_008/ov_SC01_008_after.c b/src/ov_SC01_008/ov_SC01_008_after.c index 7456894b8..f6addf79a 100644 --- a/src/ov_SC01_008/ov_SC01_008_after.c +++ b/src/ov_SC01_008/ov_SC01_008_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80182D74[])(void); diff --git a/src/ov_SC01_009/ov_SC01_009_after.c b/src/ov_SC01_009/ov_SC01_009_after.c index 35f99f6e1..87589deca 100644 --- a/src/ov_SC01_009/ov_SC01_009_after.c +++ b/src/ov_SC01_009/ov_SC01_009_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185F5C[])(void); diff --git a/src/ov_SC01_074/ov_SC01_074_after.c b/src/ov_SC01_074/ov_SC01_074_after.c index d1e18b9f9..2becd6e81 100644 --- a/src/ov_SC01_074/ov_SC01_074_after.c +++ b/src/ov_SC01_074/ov_SC01_074_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80181BDC[])(void); diff --git a/src/ov_SC01_077/ov_SC01_077_after.c b/src/ov_SC01_077/ov_SC01_077_after.c index d70f11942..25d159a56 100644 --- a/src/ov_SC01_077/ov_SC01_077_after.c +++ b/src/ov_SC01_077/ov_SC01_077_after.c @@ -10243,7 +10243,28 @@ INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077_after", func_801734BC); +void func_80174684(void *); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} + extern s32 (*D_8018A100[])(void *); diff --git a/src/ov_SC01_080/ov_SC01_080_after.c b/src/ov_SC01_080/ov_SC01_080_after.c index e5ac7489d..76724b2ca 100644 --- a/src/ov_SC01_080/ov_SC01_080_after.c +++ b/src/ov_SC01_080/ov_SC01_080_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80186B3C[])(void); diff --git a/src/ov_SC01_084/ov_SC01_084_after.c b/src/ov_SC01_084/ov_SC01_084_after.c index cacc16dbd..9d4436fab 100644 --- a/src/ov_SC01_084/ov_SC01_084_after.c +++ b/src/ov_SC01_084/ov_SC01_084_after.c @@ -9157,7 +9157,27 @@ INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80189E30[])(void); diff --git a/src/ov_SC02_000/ov_SC02_000_after.c b/src/ov_SC02_000/ov_SC02_000_after.c index 5ef78ad2e..869e2fb03 100644 --- a/src/ov_SC02_000/ov_SC02_000_after.c +++ b/src/ov_SC02_000/ov_SC02_000_after.c @@ -9143,7 +9143,27 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018E1E0[])(void); diff --git a/src/ov_SC02_003/ov_SC02_003_after.c b/src/ov_SC02_003/ov_SC02_003_after.c index f30e50b03..afd9f59cc 100644 --- a/src/ov_SC02_003/ov_SC02_003_after.c +++ b/src/ov_SC02_003/ov_SC02_003_after.c @@ -9143,7 +9143,27 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018E1E0[])(void); diff --git a/src/ov_SC02_004/ov_SC02_004_after.c b/src/ov_SC02_004/ov_SC02_004_after.c index d8accce35..55fed0db8 100644 --- a/src/ov_SC02_004/ov_SC02_004_after.c +++ b/src/ov_SC02_004/ov_SC02_004_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_004/nonmatchings/ov_SC02_004_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_004/nonmatchings/ov_SC02_004_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801812C0[])(void); diff --git a/src/ov_SC02_005/ov_SC02_005_after.c b/src/ov_SC02_005/ov_SC02_005_after.c index 09823da4a..0c971c846 100644 --- a/src/ov_SC02_005/ov_SC02_005_after.c +++ b/src/ov_SC02_005/ov_SC02_005_after.c @@ -9149,7 +9149,27 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80193EC4[])(void); diff --git a/src/ov_SC02_011/ov_SC02_011_after.c b/src/ov_SC02_011/ov_SC02_011_after.c index ca88307e1..c1071c2a4 100644 --- a/src/ov_SC02_011/ov_SC02_011_after.c +++ b/src/ov_SC02_011/ov_SC02_011_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80194314[])(void); diff --git a/src/ov_SC02_015/ov_SC02_015_after.c b/src/ov_SC02_015/ov_SC02_015_after.c index cb8cea7f3..e330ad3b9 100644 --- a/src/ov_SC02_015/ov_SC02_015_after.c +++ b/src/ov_SC02_015/ov_SC02_015_after.c @@ -9145,7 +9145,27 @@ INCLUDE_ASM("asm/ov_SC02_015/nonmatchings/ov_SC02_015_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_015/nonmatchings/ov_SC02_015_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80181828[])(void); diff --git a/src/ov_SC02_016/ov_SC02_016_after.c b/src/ov_SC02_016/ov_SC02_016_after.c index 58964170c..f92c4a445 100644 --- a/src/ov_SC02_016/ov_SC02_016_after.c +++ b/src/ov_SC02_016/ov_SC02_016_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_016/nonmatchings/ov_SC02_016_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_016/nonmatchings/ov_SC02_016_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80187A60[])(void); diff --git a/src/ov_SC02_017/ov_SC02_017_after.c b/src/ov_SC02_017/ov_SC02_017_after.c index a8b8192e1..a25e27c8f 100644 --- a/src/ov_SC02_017/ov_SC02_017_after.c +++ b/src/ov_SC02_017/ov_SC02_017_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018DAB8[])(void); diff --git a/src/ov_SC02_021/ov_SC02_021_after.c b/src/ov_SC02_021/ov_SC02_021_after.c index dda3541f8..d846a6b93 100644 --- a/src/ov_SC02_021/ov_SC02_021_after.c +++ b/src/ov_SC02_021/ov_SC02_021_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801830AC[])(void); diff --git a/src/ov_SC02_026/ov_SC02_026_after.c b/src/ov_SC02_026/ov_SC02_026_after.c index e9b9f760b..85728af3d 100644 --- a/src/ov_SC02_026/ov_SC02_026_after.c +++ b/src/ov_SC02_026/ov_SC02_026_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80189700[])(void); diff --git a/src/ov_SC02_027/ov_SC02_027_after.c b/src/ov_SC02_027/ov_SC02_027_after.c index a237f100d..146e5695b 100644 --- a/src/ov_SC02_027/ov_SC02_027_after.c +++ b/src/ov_SC02_027/ov_SC02_027_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018E824[])(void); diff --git a/src/ov_SC02_028/ov_SC02_028_after.c b/src/ov_SC02_028/ov_SC02_028_after.c index 75d030f53..958f67e25 100644 --- a/src/ov_SC02_028/ov_SC02_028_after.c +++ b/src/ov_SC02_028/ov_SC02_028_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018EA28[])(void); diff --git a/src/ov_SC02_031/ov_SC02_031_after.c b/src/ov_SC02_031/ov_SC02_031_after.c index e6d9de6c9..fd2c6e8a0 100644 --- a/src/ov_SC02_031/ov_SC02_031_after.c +++ b/src/ov_SC02_031/ov_SC02_031_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80188254[])(void); diff --git a/src/ov_SC02_035/ov_SC02_035_after.c b/src/ov_SC02_035/ov_SC02_035_after.c index 0037473ee..6af238d0a 100644 --- a/src/ov_SC02_035/ov_SC02_035_after.c +++ b/src/ov_SC02_035/ov_SC02_035_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80187AB4[])(void); diff --git a/src/ov_SC02_039/ov_SC02_039_after.c b/src/ov_SC02_039/ov_SC02_039_after.c index 791e3e218..6f08fcddd 100644 --- a/src/ov_SC02_039/ov_SC02_039_after.c +++ b/src/ov_SC02_039/ov_SC02_039_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801826E0[])(void); diff --git a/src/ov_SC02_041/ov_SC02_041_after.c b/src/ov_SC02_041/ov_SC02_041_after.c index 8f57d738f..0edec2050 100644 --- a/src/ov_SC02_041/ov_SC02_041_after.c +++ b/src/ov_SC02_041/ov_SC02_041_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801883B0[])(void); diff --git a/src/ov_SC03_001/ov_SC03_001_after.c b/src/ov_SC03_001/ov_SC03_001_after.c index c64f7730f..ddb99a679 100644 --- a/src/ov_SC03_001/ov_SC03_001_after.c +++ b/src/ov_SC03_001/ov_SC03_001_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80190AF0[])(void); diff --git a/src/ov_SC03_002/ov_SC03_002_after.c b/src/ov_SC03_002/ov_SC03_002_after.c index 8e3e0a5a7..a96535ee2 100644 --- a/src/ov_SC03_002/ov_SC03_002_after.c +++ b/src/ov_SC03_002/ov_SC03_002_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80188AE0[])(void); diff --git a/src/ov_SC03_003/ov_SC03_003_after.c b/src/ov_SC03_003/ov_SC03_003_after.c index 00be57f25..9ff0f6a27 100644 --- a/src/ov_SC03_003/ov_SC03_003_after.c +++ b/src/ov_SC03_003/ov_SC03_003_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_003/nonmatchings/ov_SC03_003_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_003/nonmatchings/ov_SC03_003_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801828A8[])(void); diff --git a/src/ov_SC03_006/ov_SC03_006_after.c b/src/ov_SC03_006/ov_SC03_006_after.c index f434a67f4..152862f4a 100644 --- a/src/ov_SC03_006/ov_SC03_006_after.c +++ b/src/ov_SC03_006/ov_SC03_006_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018FBC4[])(void); diff --git a/src/ov_SC03_007/ov_SC03_007_after.c b/src/ov_SC03_007/ov_SC03_007_after.c index 723bd185d..66b1a20b0 100644 --- a/src/ov_SC03_007/ov_SC03_007_after.c +++ b/src/ov_SC03_007/ov_SC03_007_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018A9BC[])(void); diff --git a/src/ov_SC03_010/ov_SC03_010_after.c b/src/ov_SC03_010/ov_SC03_010_after.c index f55e7b702..0af746ead 100644 --- a/src/ov_SC03_010/ov_SC03_010_after.c +++ b/src/ov_SC03_010/ov_SC03_010_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801834DC[])(void); diff --git a/src/ov_SC03_011/ov_SC03_011_after.c b/src/ov_SC03_011/ov_SC03_011_after.c index 65bd05c2a..9d31bea36 100644 --- a/src/ov_SC03_011/ov_SC03_011_after.c +++ b/src/ov_SC03_011/ov_SC03_011_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018484C[])(void); diff --git a/src/ov_SC03_012/ov_SC03_012_after.c b/src/ov_SC03_012/ov_SC03_012_after.c index 5650acde8..3aefb3c79 100644 --- a/src/ov_SC03_012/ov_SC03_012_after.c +++ b/src/ov_SC03_012/ov_SC03_012_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018172C[])(void); diff --git a/src/ov_SC03_013/ov_SC03_013_after.c b/src/ov_SC03_013/ov_SC03_013_after.c index f4fd1183b..cd773e45a 100644 --- a/src/ov_SC03_013/ov_SC03_013_after.c +++ b/src/ov_SC03_013/ov_SC03_013_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80184514[])(void); diff --git a/src/ov_SC03_014/ov_SC03_014_after.c b/src/ov_SC03_014/ov_SC03_014_after.c index e6e37e6c8..28fabd73d 100644 --- a/src/ov_SC03_014/ov_SC03_014_after.c +++ b/src/ov_SC03_014/ov_SC03_014_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018EB50[])(void); diff --git a/src/ov_SC03_015/ov_SC03_015_after.c b/src/ov_SC03_015/ov_SC03_015_after.c index f32e48856..6cb56c0c2 100644 --- a/src/ov_SC03_015/ov_SC03_015_after.c +++ b/src/ov_SC03_015/ov_SC03_015_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018EB50[])(void); diff --git a/src/ov_SC03_023/ov_SC03_023_after.c b/src/ov_SC03_023/ov_SC03_023_after.c index f1b746f9b..e07408803 100644 --- a/src/ov_SC03_023/ov_SC03_023_after.c +++ b/src/ov_SC03_023/ov_SC03_023_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801824CC[])(void); diff --git a/src/ov_SC03_024/ov_SC03_024_after.c b/src/ov_SC03_024/ov_SC03_024_after.c index a186bcd94..bb4aa210e 100644 --- a/src/ov_SC03_024/ov_SC03_024_after.c +++ b/src/ov_SC03_024/ov_SC03_024_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018A4F0[])(void); diff --git a/src/ov_SC03_028/ov_SC03_028_after.c b/src/ov_SC03_028/ov_SC03_028_after.c index c9dd62ea1..4cb5d00d3 100644 --- a/src/ov_SC03_028/ov_SC03_028_after.c +++ b/src/ov_SC03_028/ov_SC03_028_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018EFBC[])(void); diff --git a/src/ov_SC03_029/ov_SC03_029_after.c b/src/ov_SC03_029/ov_SC03_029_after.c index 36331f2d7..a3e1b7c33 100644 --- a/src/ov_SC03_029/ov_SC03_029_after.c +++ b/src/ov_SC03_029/ov_SC03_029_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018ADF4[])(void); diff --git a/src/ov_SC03_030/ov_SC03_030_after.c b/src/ov_SC03_030/ov_SC03_030_after.c index df3bf56f3..25b301ae7 100644 --- a/src/ov_SC03_030/ov_SC03_030_after.c +++ b/src/ov_SC03_030/ov_SC03_030_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185430[])(void); diff --git a/src/ov_SC03_031/ov_SC03_031_after.c b/src/ov_SC03_031/ov_SC03_031_after.c index 9e5fa94c4..80c36b13b 100644 --- a/src/ov_SC03_031/ov_SC03_031_after.c +++ b/src/ov_SC03_031/ov_SC03_031_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018594C[])(void); diff --git a/src/ov_SC03_089/ov_SC03_089_after.c b/src/ov_SC03_089/ov_SC03_089_after.c index de54fb290..fa1549f84 100644 --- a/src/ov_SC03_089/ov_SC03_089_after.c +++ b/src/ov_SC03_089/ov_SC03_089_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018CC48[])(void); diff --git a/src/ov_SC03_090/ov_SC03_090_after.c b/src/ov_SC03_090/ov_SC03_090_after.c index 34e92a00b..f60bbd831 100644 --- a/src/ov_SC03_090/ov_SC03_090_after.c +++ b/src/ov_SC03_090/ov_SC03_090_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018F06C[])(void); diff --git a/src/ov_SC03_091/ov_SC03_091_after.c b/src/ov_SC03_091/ov_SC03_091_after.c index 94e97f5dd..010b3a0ef 100644 --- a/src/ov_SC03_091/ov_SC03_091_after.c +++ b/src/ov_SC03_091/ov_SC03_091_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018FF14[])(void); diff --git a/src/ov_SC03_092/ov_SC03_092_after.c b/src/ov_SC03_092/ov_SC03_092_after.c index 4836dbdaf..316de176f 100644 --- a/src/ov_SC03_092/ov_SC03_092_after.c +++ b/src/ov_SC03_092/ov_SC03_092_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801882E4[])(void); diff --git a/src/ov_SC03_093/ov_SC03_093_after.c b/src/ov_SC03_093/ov_SC03_093_after.c index cbbf43f26..55ead4a2b 100644 --- a/src/ov_SC03_093/ov_SC03_093_after.c +++ b/src/ov_SC03_093/ov_SC03_093_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801894BC[])(void); diff --git a/src/ov_SC03_094/ov_SC03_094_after.c b/src/ov_SC03_094/ov_SC03_094_after.c index 8eee74eea..5f458fc0e 100644 --- a/src/ov_SC03_094/ov_SC03_094_after.c +++ b/src/ov_SC03_094/ov_SC03_094_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018AEB8[])(void); diff --git a/src/ov_SC03_095/ov_SC03_095_after.c b/src/ov_SC03_095/ov_SC03_095_after.c index 0a70cf780..671a66c25 100644 --- a/src/ov_SC03_095/ov_SC03_095_after.c +++ b/src/ov_SC03_095/ov_SC03_095_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80184518[])(void); diff --git a/src/ov_SC03_096/ov_SC03_096_after.c b/src/ov_SC03_096/ov_SC03_096_after.c index c4722f09a..64538e21e 100644 --- a/src/ov_SC03_096/ov_SC03_096_after.c +++ b/src/ov_SC03_096/ov_SC03_096_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80184098[])(void); diff --git a/src/ov_SC03_097/ov_SC03_097_after.c b/src/ov_SC03_097/ov_SC03_097_after.c index 13dcb5e46..eb9dd75b5 100644 --- a/src/ov_SC03_097/ov_SC03_097_after.c +++ b/src/ov_SC03_097/ov_SC03_097_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80189478[])(void); diff --git a/src/ov_SC03_098/ov_SC03_098_after.c b/src/ov_SC03_098/ov_SC03_098_after.c index ffb7bc12d..7f7850f41 100644 --- a/src/ov_SC03_098/ov_SC03_098_after.c +++ b/src/ov_SC03_098/ov_SC03_098_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80188904[])(void); diff --git a/src/ov_SC03_099/ov_SC03_099_after.c b/src/ov_SC03_099/ov_SC03_099_after.c index 2317955c7..c66ba0dec 100644 --- a/src/ov_SC03_099/ov_SC03_099_after.c +++ b/src/ov_SC03_099/ov_SC03_099_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_099/nonmatchings/ov_SC03_099_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_099/nonmatchings/ov_SC03_099_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80186A04[])(void); diff --git a/src/ov_SC03_100/ov_SC03_100_after.c b/src/ov_SC03_100/ov_SC03_100_after.c index aa896cfa3..0b192a9f7 100644 --- a/src/ov_SC03_100/ov_SC03_100_after.c +++ b/src/ov_SC03_100/ov_SC03_100_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_100/nonmatchings/ov_SC03_100_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_100/nonmatchings/ov_SC03_100_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80187ED0[])(void); diff --git a/src/ov_SC03_101/ov_SC03_101_after.c b/src/ov_SC03_101/ov_SC03_101_after.c index 3d10ba4f7..611d6c4ee 100644 --- a/src/ov_SC03_101/ov_SC03_101_after.c +++ b/src/ov_SC03_101/ov_SC03_101_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80186EAC[])(void); diff --git a/src/ov_SC03_102/ov_SC03_102_after.c b/src/ov_SC03_102/ov_SC03_102_after.c index c8c504a01..4c1cc26ee 100644 --- a/src/ov_SC03_102/ov_SC03_102_after.c +++ b/src/ov_SC03_102/ov_SC03_102_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_102/nonmatchings/ov_SC03_102_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_102/nonmatchings/ov_SC03_102_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80189764[])(void); diff --git a/src/ov_SC03_103/ov_SC03_103_after.c b/src/ov_SC03_103/ov_SC03_103_after.c index 3800d4542..9c4c2d788 100644 --- a/src/ov_SC03_103/ov_SC03_103_after.c +++ b/src/ov_SC03_103/ov_SC03_103_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80187714[])(void); diff --git a/src/ov_SC03_104/ov_SC03_104_after.c b/src/ov_SC03_104/ov_SC03_104_after.c index 86108bbaa..5b7bc92d8 100644 --- a/src/ov_SC03_104/ov_SC03_104_after.c +++ b/src/ov_SC03_104/ov_SC03_104_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018E2A4[])(void); diff --git a/src/ov_SC03_105/ov_SC03_105_after.c b/src/ov_SC03_105/ov_SC03_105_after.c index a24aee6d3..0bfc1b693 100644 --- a/src/ov_SC03_105/ov_SC03_105_after.c +++ b/src/ov_SC03_105/ov_SC03_105_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018D92C[])(void); diff --git a/src/ov_SC03_108/ov_SC03_108_after.c b/src/ov_SC03_108/ov_SC03_108_after.c index 192faa6f9..f7adf14c3 100644 --- a/src/ov_SC03_108/ov_SC03_108_after.c +++ b/src/ov_SC03_108/ov_SC03_108_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_108/nonmatchings/ov_SC03_108_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_108/nonmatchings/ov_SC03_108_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80184284[])(void); diff --git a/src/ov_SC03_109/ov_SC03_109_after.c b/src/ov_SC03_109/ov_SC03_109_after.c index c9578e110..71e0c822a 100644 --- a/src/ov_SC03_109/ov_SC03_109_after.c +++ b/src/ov_SC03_109/ov_SC03_109_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80181930[])(void); diff --git a/src/ov_SC03_110/ov_SC03_110_after.c b/src/ov_SC03_110/ov_SC03_110_after.c index d224bde78..b51088973 100644 --- a/src/ov_SC03_110/ov_SC03_110_after.c +++ b/src/ov_SC03_110/ov_SC03_110_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185350[])(void); diff --git a/src/ov_SC03_111/ov_SC03_111_after.c b/src/ov_SC03_111/ov_SC03_111_after.c index 4fd0dd448..c9c57e6d2 100644 --- a/src/ov_SC03_111/ov_SC03_111_after.c +++ b/src/ov_SC03_111/ov_SC03_111_after.c @@ -9151,7 +9151,27 @@ INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80187F04[])(void); diff --git a/src/ov_SC03_112/ov_SC03_112_after.c b/src/ov_SC03_112/ov_SC03_112_after.c index 600c0aef5..6b1630ee1 100644 --- a/src/ov_SC03_112/ov_SC03_112_after.c +++ b/src/ov_SC03_112/ov_SC03_112_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80188D0C[])(void); diff --git a/src/ov_SC03_113/ov_SC03_113_after.c b/src/ov_SC03_113/ov_SC03_113_after.c index 079062183..ce71424f0 100644 --- a/src/ov_SC03_113/ov_SC03_113_after.c +++ b/src/ov_SC03_113/ov_SC03_113_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801863BC[])(void); diff --git a/src/ov_SC03_114/ov_SC03_114_after.c b/src/ov_SC03_114/ov_SC03_114_after.c index 9047909ed..6e733ac52 100644 --- a/src/ov_SC03_114/ov_SC03_114_after.c +++ b/src/ov_SC03_114/ov_SC03_114_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_114/nonmatchings/ov_SC03_114_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_114/nonmatchings/ov_SC03_114_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80182024[])(void); diff --git a/src/ov_SC03_115/ov_SC03_115_after.c b/src/ov_SC03_115/ov_SC03_115_after.c index 002e12366..e9741aa04 100644 --- a/src/ov_SC03_115/ov_SC03_115_after.c +++ b/src/ov_SC03_115/ov_SC03_115_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80183A90[])(void); diff --git a/src/ov_SC03_116/ov_SC03_116_after.c b/src/ov_SC03_116/ov_SC03_116_after.c index 7591a0752..4e2bab410 100644 --- a/src/ov_SC03_116/ov_SC03_116_after.c +++ b/src/ov_SC03_116/ov_SC03_116_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185E94[])(void); diff --git a/src/ov_SC03_117/ov_SC03_117_after.c b/src/ov_SC03_117/ov_SC03_117_after.c index 09bdbdd03..877fc10a0 100644 --- a/src/ov_SC03_117/ov_SC03_117_after.c +++ b/src/ov_SC03_117/ov_SC03_117_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80187EA0[])(void); diff --git a/src/ov_SC03_118/ov_SC03_118_after.c b/src/ov_SC03_118/ov_SC03_118_after.c index 26b3e1a23..13a1a2bf9 100644 --- a/src/ov_SC03_118/ov_SC03_118_after.c +++ b/src/ov_SC03_118/ov_SC03_118_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018CF4C[])(void); diff --git a/src/ov_SC03_119/ov_SC03_119_after.c b/src/ov_SC03_119/ov_SC03_119_after.c index 7b96c32fe..c7dbbaf94 100644 --- a/src/ov_SC03_119/ov_SC03_119_after.c +++ b/src/ov_SC03_119/ov_SC03_119_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018CF4C[])(void); diff --git a/src/ov_SC03_121/ov_SC03_121_after.c b/src/ov_SC03_121/ov_SC03_121_after.c index dd0ef50ed..25745e56a 100644 --- a/src/ov_SC03_121/ov_SC03_121_after.c +++ b/src/ov_SC03_121/ov_SC03_121_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185768[])(void); diff --git a/src/ov_SC03_124/ov_SC03_124_after.c b/src/ov_SC03_124/ov_SC03_124_after.c index 0bc49ab69..10760a738 100644 --- a/src/ov_SC03_124/ov_SC03_124_after.c +++ b/src/ov_SC03_124/ov_SC03_124_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018E194[])(void); diff --git a/src/ov_SC03_125/ov_SC03_125_after.c b/src/ov_SC03_125/ov_SC03_125_after.c index e79f7ec8d..7e91458b8 100644 --- a/src/ov_SC03_125/ov_SC03_125_after.c +++ b/src/ov_SC03_125/ov_SC03_125_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80187364[])(void); diff --git a/src/ov_SC03_126/ov_SC03_126_after.c b/src/ov_SC03_126/ov_SC03_126_after.c index 416a8b6a7..2d758dfb1 100644 --- a/src/ov_SC03_126/ov_SC03_126_after.c +++ b/src/ov_SC03_126/ov_SC03_126_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC03_126/nonmatchings/ov_SC03_126_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_126/nonmatchings/ov_SC03_126_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018285C[])(void); diff --git a/src/ov_SC04_000/ov_SC04_000_after.c b/src/ov_SC04_000/ov_SC04_000_after.c index ed83ece75..6284e17b2 100644 --- a/src/ov_SC04_000/ov_SC04_000_after.c +++ b/src/ov_SC04_000/ov_SC04_000_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80186868[])(void); diff --git a/src/ov_SC04_002/ov_SC04_002_after.c b/src/ov_SC04_002/ov_SC04_002_after.c index 633bdea0a..2526bb194 100644 --- a/src/ov_SC04_002/ov_SC04_002_after.c +++ b/src/ov_SC04_002/ov_SC04_002_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018B9D4[])(void); diff --git a/src/ov_SC04_003/ov_SC04_003_after.c b/src/ov_SC04_003/ov_SC04_003_after.c index 7769920bd..5da07122e 100644 --- a/src/ov_SC04_003/ov_SC04_003_after.c +++ b/src/ov_SC04_003/ov_SC04_003_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_003/nonmatchings/ov_SC04_003_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_003/nonmatchings/ov_SC04_003_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185770[])(void); diff --git a/src/ov_SC04_004/ov_SC04_004_after.c b/src/ov_SC04_004/ov_SC04_004_after.c index 9b473506d..13190c09d 100644 --- a/src/ov_SC04_004/ov_SC04_004_after.c +++ b/src/ov_SC04_004/ov_SC04_004_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80187CA4[])(void); diff --git a/src/ov_SC04_005/ov_SC04_005_after.c b/src/ov_SC04_005/ov_SC04_005_after.c index 1a25c0a1a..1553adcaf 100644 --- a/src/ov_SC04_005/ov_SC04_005_after.c +++ b/src/ov_SC04_005/ov_SC04_005_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018B0D8[])(void); diff --git a/src/ov_SC04_006/ov_SC04_006_after.c b/src/ov_SC04_006/ov_SC04_006_after.c index 36af823b1..b151f4b28 100644 --- a/src/ov_SC04_006/ov_SC04_006_after.c +++ b/src/ov_SC04_006/ov_SC04_006_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_006/nonmatchings/ov_SC04_006_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_006/nonmatchings/ov_SC04_006_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801831B8[])(void); diff --git a/src/ov_SC04_007/ov_SC04_007_after.c b/src/ov_SC04_007/ov_SC04_007_after.c index a609a152b..f57d6c2bf 100644 --- a/src/ov_SC04_007/ov_SC04_007_after.c +++ b/src/ov_SC04_007/ov_SC04_007_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80189170[])(void); diff --git a/src/ov_SC04_008/ov_SC04_008_after.c b/src/ov_SC04_008/ov_SC04_008_after.c index 1d4b68a13..979da8ed5 100644 --- a/src/ov_SC04_008/ov_SC04_008_after.c +++ b/src/ov_SC04_008/ov_SC04_008_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801820A8[])(void); diff --git a/src/ov_SC04_009/ov_SC04_009_after.c b/src/ov_SC04_009/ov_SC04_009_after.c index b78f0680e..20c67b642 100644 --- a/src/ov_SC04_009/ov_SC04_009_after.c +++ b/src/ov_SC04_009/ov_SC04_009_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801820D4[])(void); diff --git a/src/ov_SC04_010/ov_SC04_010_after.c b/src/ov_SC04_010/ov_SC04_010_after.c index 64d8a334a..b96cdcfaa 100644 --- a/src/ov_SC04_010/ov_SC04_010_after.c +++ b/src/ov_SC04_010/ov_SC04_010_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80181780[])(void); diff --git a/src/ov_SC04_011/ov_SC04_011_after.c b/src/ov_SC04_011/ov_SC04_011_after.c index 39c5a4b88..5a93604c5 100644 --- a/src/ov_SC04_011/ov_SC04_011_after.c +++ b/src/ov_SC04_011/ov_SC04_011_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80193A10[])(void); diff --git a/src/ov_SC04_012/ov_SC04_012_after.c b/src/ov_SC04_012/ov_SC04_012_after.c index 678b50916..949e560ea 100644 --- a/src/ov_SC04_012/ov_SC04_012_after.c +++ b/src/ov_SC04_012/ov_SC04_012_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_012/nonmatchings/ov_SC04_012_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_012/nonmatchings/ov_SC04_012_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80181BE4[])(void); diff --git a/src/ov_SC04_015/ov_SC04_015_after.c b/src/ov_SC04_015/ov_SC04_015_after.c index 2ed27b207..a073dcd63 100644 --- a/src/ov_SC04_015/ov_SC04_015_after.c +++ b/src/ov_SC04_015/ov_SC04_015_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80187B1C[])(void); diff --git a/src/ov_SC04_016/ov_SC04_016_after.c b/src/ov_SC04_016/ov_SC04_016_after.c index 31fa76772..abb793e87 100644 --- a/src/ov_SC04_016/ov_SC04_016_after.c +++ b/src/ov_SC04_016/ov_SC04_016_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801835E0[])(void); diff --git a/src/ov_SC04_018/ov_SC04_018_after.c b/src/ov_SC04_018/ov_SC04_018_after.c index 659fe6d94..af5c50e14 100644 --- a/src/ov_SC04_018/ov_SC04_018_after.c +++ b/src/ov_SC04_018/ov_SC04_018_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801907F8[])(void); diff --git a/src/ov_SC04_019/ov_SC04_019_after.c b/src/ov_SC04_019/ov_SC04_019_after.c index 74a0e90ff..d6dcbcac5 100644 --- a/src/ov_SC04_019/ov_SC04_019_after.c +++ b/src/ov_SC04_019/ov_SC04_019_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801907F8[])(void); diff --git a/src/ov_SC04_020/ov_SC04_020_after.c b/src/ov_SC04_020/ov_SC04_020_after.c index 6aaf5e7a0..18379c5bf 100644 --- a/src/ov_SC04_020/ov_SC04_020_after.c +++ b/src/ov_SC04_020/ov_SC04_020_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80186930[])(void); diff --git a/src/ov_SC04_021/ov_SC04_021_after.c b/src/ov_SC04_021/ov_SC04_021_after.c index 9a86377cb..9fe7922e2 100644 --- a/src/ov_SC04_021/ov_SC04_021_after.c +++ b/src/ov_SC04_021/ov_SC04_021_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018285C[])(void); diff --git a/src/ov_SC05_000/ov_SC05_000_after.c b/src/ov_SC05_000/ov_SC05_000_after.c index 3de86d024..97412ded2 100644 --- a/src/ov_SC05_000/ov_SC05_000_after.c +++ b/src/ov_SC05_000/ov_SC05_000_after.c @@ -9039,7 +9039,27 @@ INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80181870[])(void); diff --git a/src/ov_SC05_001/ov_SC05_001_after.c b/src/ov_SC05_001/ov_SC05_001_after.c index 9c5cf6e42..ba7cd1c19 100644 --- a/src/ov_SC05_001/ov_SC05_001_after.c +++ b/src/ov_SC05_001/ov_SC05_001_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018904C[])(void); diff --git a/src/ov_SC05_002/ov_SC05_002_after.c b/src/ov_SC05_002/ov_SC05_002_after.c index 5a9a3fd0e..3b7aa00c0 100644 --- a/src/ov_SC05_002/ov_SC05_002_after.c +++ b/src/ov_SC05_002/ov_SC05_002_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_002/nonmatchings/ov_SC05_002_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_002/nonmatchings/ov_SC05_002_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018380C[])(void); diff --git a/src/ov_SC05_003/ov_SC05_003_after.c b/src/ov_SC05_003/ov_SC05_003_after.c index 19082f3ea..561f9649b 100644 --- a/src/ov_SC05_003/ov_SC05_003_after.c +++ b/src/ov_SC05_003/ov_SC05_003_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185B44[])(void); diff --git a/src/ov_SC05_004/ov_SC05_004_after.c b/src/ov_SC05_004/ov_SC05_004_after.c index 04e362f9b..481cfa26d 100644 --- a/src/ov_SC05_004/ov_SC05_004_after.c +++ b/src/ov_SC05_004/ov_SC05_004_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80184C50[])(void); diff --git a/src/ov_SC05_005/ov_SC05_005_after.c b/src/ov_SC05_005/ov_SC05_005_after.c index ba654cc92..7859d4f8d 100644 --- a/src/ov_SC05_005/ov_SC05_005_after.c +++ b/src/ov_SC05_005/ov_SC05_005_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185A24[])(void); diff --git a/src/ov_SC05_006/ov_SC05_006_after.c b/src/ov_SC05_006/ov_SC05_006_after.c index 8c35d2b56..9121c8fd2 100644 --- a/src/ov_SC05_006/ov_SC05_006_after.c +++ b/src/ov_SC05_006/ov_SC05_006_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_006/nonmatchings/ov_SC05_006_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_006/nonmatchings/ov_SC05_006_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80182A44[])(void); diff --git a/src/ov_SC05_007/ov_SC05_007_after.c b/src/ov_SC05_007/ov_SC05_007_after.c index a12931b1f..108f16dc6 100644 --- a/src/ov_SC05_007/ov_SC05_007_after.c +++ b/src/ov_SC05_007/ov_SC05_007_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80184040[])(void); diff --git a/src/ov_SC05_008/ov_SC05_008_after.c b/src/ov_SC05_008/ov_SC05_008_after.c index 5a9cdc3e1..da87fd816 100644 --- a/src/ov_SC05_008/ov_SC05_008_after.c +++ b/src/ov_SC05_008/ov_SC05_008_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185F98[])(void); diff --git a/src/ov_SC05_009/ov_SC05_009_after.c b/src/ov_SC05_009/ov_SC05_009_after.c index 71b5bf8f8..a7b2e8abc 100644 --- a/src/ov_SC05_009/ov_SC05_009_after.c +++ b/src/ov_SC05_009/ov_SC05_009_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_009/nonmatchings/ov_SC05_009_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_009/nonmatchings/ov_SC05_009_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801820A8[])(void); diff --git a/src/ov_SC05_010/ov_SC05_010_after.c b/src/ov_SC05_010/ov_SC05_010_after.c index ba40ad8fa..24fa21538 100644 --- a/src/ov_SC05_010/ov_SC05_010_after.c +++ b/src/ov_SC05_010/ov_SC05_010_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018BF84[])(void); diff --git a/src/ov_SC05_011/ov_SC05_011_after.c b/src/ov_SC05_011/ov_SC05_011_after.c index 3a1c4c48f..923fad587 100644 --- a/src/ov_SC05_011/ov_SC05_011_after.c +++ b/src/ov_SC05_011/ov_SC05_011_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_011/nonmatchings/ov_SC05_011_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_011/nonmatchings/ov_SC05_011_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801812FC[])(void); diff --git a/src/ov_SC05_017/ov_SC05_017_after.c b/src/ov_SC05_017/ov_SC05_017_after.c index dc6fe1d72..f08dfb2cc 100644 --- a/src/ov_SC05_017/ov_SC05_017_after.c +++ b/src/ov_SC05_017/ov_SC05_017_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801907BC[])(void); diff --git a/src/ov_SC05_018/ov_SC05_018_after.c b/src/ov_SC05_018/ov_SC05_018_after.c index 10943d738..0ac52309c 100644 --- a/src/ov_SC05_018/ov_SC05_018_after.c +++ b/src/ov_SC05_018/ov_SC05_018_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80189F18[])(void); diff --git a/src/ov_SC05_019/ov_SC05_019_after.c b/src/ov_SC05_019/ov_SC05_019_after.c index f1ef0f6b1..47f653b39 100644 --- a/src/ov_SC05_019/ov_SC05_019_after.c +++ b/src/ov_SC05_019/ov_SC05_019_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC05_019/nonmatchings/ov_SC05_019_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_019/nonmatchings/ov_SC05_019_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018285C[])(void); diff --git a/src/ov_SC06_000/ov_SC06_000_after.c b/src/ov_SC06_000/ov_SC06_000_after.c index 58ca63338..505145987 100644 --- a/src/ov_SC06_000/ov_SC06_000_after.c +++ b/src/ov_SC06_000/ov_SC06_000_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018B86C[])(void); diff --git a/src/ov_SC06_006/ov_SC06_006_after.c b/src/ov_SC06_006/ov_SC06_006_after.c index b213a3483..2d08b2918 100644 --- a/src/ov_SC06_006/ov_SC06_006_after.c +++ b/src/ov_SC06_006/ov_SC06_006_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185390[])(void); diff --git a/src/ov_SC06_008/ov_SC06_008_after.c b/src/ov_SC06_008/ov_SC06_008_after.c index 2a4993d9e..14984bba1 100644 --- a/src/ov_SC06_008/ov_SC06_008_after.c +++ b/src/ov_SC06_008/ov_SC06_008_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80188DF8[])(void); diff --git a/src/ov_SC06_010/ov_SC06_010_after.c b/src/ov_SC06_010/ov_SC06_010_after.c index 4b73cf3f2..4d590d36f 100644 --- a/src/ov_SC06_010/ov_SC06_010_after.c +++ b/src/ov_SC06_010/ov_SC06_010_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80189FD4[])(void); diff --git a/src/ov_SC06_011/ov_SC06_011_after.c b/src/ov_SC06_011/ov_SC06_011_after.c index 3b6f8f17f..bb2091821 100644 --- a/src/ov_SC06_011/ov_SC06_011_after.c +++ b/src/ov_SC06_011/ov_SC06_011_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80183A34[])(void); diff --git a/src/ov_SC06_013/ov_SC06_013_after.c b/src/ov_SC06_013/ov_SC06_013_after.c index 937f66324..7247f8cdb 100644 --- a/src/ov_SC06_013/ov_SC06_013_after.c +++ b/src/ov_SC06_013/ov_SC06_013_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_013/nonmatchings/ov_SC06_013_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_013/nonmatchings/ov_SC06_013_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801821B0[])(void); diff --git a/src/ov_SC06_014/ov_SC06_014_after.c b/src/ov_SC06_014/ov_SC06_014_after.c index 106c72939..00d9748f4 100644 --- a/src/ov_SC06_014/ov_SC06_014_after.c +++ b/src/ov_SC06_014/ov_SC06_014_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80183514[])(void); diff --git a/src/ov_SC06_015/ov_SC06_015_after.c b/src/ov_SC06_015/ov_SC06_015_after.c index 26db87c03..3355c135e 100644 --- a/src/ov_SC06_015/ov_SC06_015_after.c +++ b/src/ov_SC06_015/ov_SC06_015_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_015/nonmatchings/ov_SC06_015_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_015/nonmatchings/ov_SC06_015_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018206C[])(void); diff --git a/src/ov_SC06_016/ov_SC06_016_after.c b/src/ov_SC06_016/ov_SC06_016_after.c index c2fd1ec34..f1f43b7d1 100644 --- a/src/ov_SC06_016/ov_SC06_016_after.c +++ b/src/ov_SC06_016/ov_SC06_016_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018847C[])(void); diff --git a/src/ov_SC06_018/ov_SC06_018_after.c b/src/ov_SC06_018/ov_SC06_018_after.c index 21679e07a..cc09e6c9b 100644 --- a/src/ov_SC06_018/ov_SC06_018_after.c +++ b/src/ov_SC06_018/ov_SC06_018_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80196BB8[])(void); diff --git a/src/ov_SC06_020/ov_SC06_020_after.c b/src/ov_SC06_020/ov_SC06_020_after.c index 506e6ffd8..35776d547 100644 --- a/src/ov_SC06_020/ov_SC06_020_after.c +++ b/src/ov_SC06_020/ov_SC06_020_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80188640[])(void); diff --git a/src/ov_SC06_022/ov_SC06_022_after.c b/src/ov_SC06_022/ov_SC06_022_after.c index 91bd1ae57..e0b9f6fef 100644 --- a/src/ov_SC06_022/ov_SC06_022_after.c +++ b/src/ov_SC06_022/ov_SC06_022_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801908FC[])(void); diff --git a/src/ov_SC06_024/ov_SC06_024_after.c b/src/ov_SC06_024/ov_SC06_024_after.c index 13858b1c8..0f4a1df3c 100644 --- a/src/ov_SC06_024/ov_SC06_024_after.c +++ b/src/ov_SC06_024/ov_SC06_024_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80192DD4[])(void); diff --git a/src/ov_SC06_025/ov_SC06_025_after.c b/src/ov_SC06_025/ov_SC06_025_after.c index fd70da64e..6ef658a46 100644 --- a/src/ov_SC06_025/ov_SC06_025_after.c +++ b/src/ov_SC06_025/ov_SC06_025_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80188278[])(void); diff --git a/src/ov_SC06_027/ov_SC06_027_after.c b/src/ov_SC06_027/ov_SC06_027_after.c index afb1e2491..8bb993412 100644 --- a/src/ov_SC06_027/ov_SC06_027_after.c +++ b/src/ov_SC06_027/ov_SC06_027_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_027/nonmatchings/ov_SC06_027_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_027/nonmatchings/ov_SC06_027_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801815B8[])(void); diff --git a/src/ov_SC06_029/ov_SC06_029_after.c b/src/ov_SC06_029/ov_SC06_029_after.c index dd91ee142..b807786a5 100644 --- a/src/ov_SC06_029/ov_SC06_029_after.c +++ b/src/ov_SC06_029/ov_SC06_029_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018FB4C[])(void); diff --git a/src/ov_SC06_030/ov_SC06_030_after.c b/src/ov_SC06_030/ov_SC06_030_after.c index 8fe929719..66b16831d 100644 --- a/src/ov_SC06_030/ov_SC06_030_after.c +++ b/src/ov_SC06_030/ov_SC06_030_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_8018543C[])(void); diff --git a/src/ov_SC06_032/ov_SC06_032_after.c b/src/ov_SC06_032/ov_SC06_032_after.c index 691b14fe6..ebb5562cb 100644 --- a/src/ov_SC06_032/ov_SC06_032_after.c +++ b/src/ov_SC06_032/ov_SC06_032_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80196908[])(void); diff --git a/src/ov_SC06_033/ov_SC06_033_after.c b/src/ov_SC06_033/ov_SC06_033_after.c index 6933e5977..ef1ae992b 100644 --- a/src/ov_SC06_033/ov_SC06_033_after.c +++ b/src/ov_SC06_033/ov_SC06_033_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80194E18[])(void); diff --git a/src/ov_SC07_000/ov_SC07_000_after.c b/src/ov_SC07_000/ov_SC07_000_after.c index af9ac03df..7a7c24ab0 100644 --- a/src/ov_SC07_000/ov_SC07_000_after.c +++ b/src/ov_SC07_000/ov_SC07_000_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80185C60[])(void); diff --git a/src/ov_SC07_001/ov_SC07_001_after.c b/src/ov_SC07_001/ov_SC07_001_after.c index e7480d00e..3d11d04d7 100644 --- a/src/ov_SC07_001/ov_SC07_001_after.c +++ b/src/ov_SC07_001/ov_SC07_001_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80184B10[])(void); diff --git a/src/ov_SC07_002/ov_SC07_002_after.c b/src/ov_SC07_002/ov_SC07_002_after.c index bbe98960c..1457c9686 100644 --- a/src/ov_SC07_002/ov_SC07_002_after.c +++ b/src/ov_SC07_002/ov_SC07_002_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80189DCC[])(void); diff --git a/src/ov_SC07_008/ov_SC07_008_after.c b/src/ov_SC07_008/ov_SC07_008_after.c index d3ed5cae5..14666e977 100644 --- a/src/ov_SC07_008/ov_SC07_008_after.c +++ b/src/ov_SC07_008/ov_SC07_008_after.c @@ -9038,7 +9038,27 @@ INCLUDE_ASM("asm/ov_SC07_008/nonmatchings/ov_SC07_008_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC07_008/nonmatchings/ov_SC07_008_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_801808E4[])(void); diff --git a/src/ov_SC07_009/ov_SC07_009_after.c b/src/ov_SC07_009/ov_SC07_009_after.c index ad659c4a3..4aef529ce 100644 --- a/src/ov_SC07_009/ov_SC07_009_after.c +++ b/src/ov_SC07_009/ov_SC07_009_after.c @@ -9045,7 +9045,27 @@ INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_after", func_801733FC); DEFINE_func_80173460() /* dedup: shared engine-core @0x80173460 (src/shared) */ -INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_after", func_801734BC); + +void func_801734BC(s32 arg0, s32 _unused1) { + extern void func_80173544(void); + extern s16 D_80126B40; + + + s16 temp; + switch (((u32)arg0)) { + case 0: temp = -0x4; break; + case 1: temp = -0x8; break; + case 2: temp = -0x12; break; + case 3: temp = -0x18; break; + case 4: temp = -0x1C; break; + default: goto after; + } + D_80126B32 = temp; +after: + D_80126B3E = 0; + D_80126B40 = 0; + func_80174684(&func_80173544); +} extern void (*D_80181388[])(void); diff --git a/tools/jtbl_carve.py b/tools/jtbl_carve.py index 957e7418e..3c3e15ba3 100644 --- a/tools/jtbl_carve.py +++ b/tools/jtbl_carve.py @@ -4,23 +4,29 @@ An overlay's gcc switch jump tables sit in one contiguous `.rodata` island at the TAIL of the flat blob. Matching a jr-function makes its C emit that jtbl into `.rodata` (floated to the FRONT by section_order) while the raw copy stays in the data tail -> duplicate + wrong address. This tool -carves each named jr-function's jtbl(s) out of the `[…, data, tail]` subseg into a dotted -`[.rodata, ]` subseg (spimdisasm migrates it into the fn's `.s`), splitting the data tail -into pre/post `data` subsegs, and sets the `_JTBL_INTERLEAVE` var in config/overlays.mk so -`make extract` runs `ld_interleave --section .` (the data->rodata->data sandwich; cookbook §8a). +carves each named jr-function's jtbl(s) out of the `[…, data, tail]` region into a dotted +`[.rodata, ]` subseg (spimdisasm migrates it into the fn's object), splitting the data +tail into the surrounding `data` subsegs, and sets the `_JTBL_INTERLEAVE` var in +config/overlays.mk so `make extract` runs `ld_interleave --order` (the address-ordered +data->rodata->data->…->data sandwich; cookbook §8/§8a). Per-sibling: the SAME function is at the same vram across overlays but its jtbl is at a DIFFERENT address in each (the island floats with the overlay's size), so the carve is recomputed per overlay. -SINGLE-jtbl scope (this slice): one jr-function -> one jtbl -> a 3-region data->rodata->data carve -(--front tail / --tail tail2). Multiple matched jr-functions per overlay (scattered jtbls) need the -address-ordered `ld_interleave --order` mode -> raised as NotImplementedError (the next slice). +MULTI-jtbl (Phase-26 session 3): the carve is ADDITIVE and regenerated from the current config — +each `--func` call re-derives the FULL address-ordered set of {data pieces, existing .rodata carves, +the new jtbl(s)} and re-emits the region + an `--order` interleave list. So banking a 2nd matched +jr-function into an overlay that already has one (the ×134 accumulation case) Just Works. A single +code object contributes at most ONE contiguous .rodata run, so two matched jr-functions in the SAME +code subseg (non-adjacent jtbls in the island) are UNSATISFIABLE -> this tool fails loud, and the +caller must first isolate one into its own code subseg (the whale `_o0b` precedent). -Usage: jtbl_carve.py --func func_XXXX [--func ...] # apply the carve for these matched jr-fns +Usage: jtbl_carve.py --func func_XXXX [--func ...] # add these matched jr-fns to the carve set jtbl_carve.py --revert # restore the config from git (drop carves) -Idempotent: re-running with the same funcs reproduces the same config. +Idempotent: re-running with the same (accumulated) funcs reproduces the same config. """ import argparse +import glob import os import re import subprocess @@ -28,6 +34,9 @@ import sys REPO = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +PIECE_RE = re.compile(r"^(\s*)- \[(0x[0-9A-Fa-f]+),\s*([.\w]+),\s*(\w+)\]") +EOF_RE = re.compile(r"^\s*- \[(0x[0-9A-Fa-f]+)\]\s*(?:#.*)?$") + def cfg_path(ov): return os.path.join(REPO, f"config/splat.{ov}.yaml") @@ -52,90 +61,159 @@ def func_subseg(ov, func): def func_jtbls(ov, func): - """The jtbl label(s) `func` references (from its .s %hi(jtbl_...)).""" + """(subseg, [jtbl_hex,...]) that `func` references (from its .s %hi(jtbl_...)).""" sub = func_subseg(ov, func) s = open(os.path.join(REPO, "asm", ov, "nonmatchings", sub, f"{func}.s")).read() return sub, sorted(set(re.findall(r"jtbl_([0-9A-Fa-f]{8})", s))) -def jtbl_range(ov, jtbl_hex): - """(start_vram, end_vram) of jtbl_ from the data-tail asm (dlabel .. next label).""" - tail = os.path.join(REPO, "asm", ov, "data", "tail.data.s") - lines = open(tail).read().splitlines() +def all_data_labels(ov): + """All (jtbl_|D_) dlabel vrams across every asm//data/*.data.s, sorted ascending.""" + labels = set() + for p in glob.glob(os.path.join(REPO, "asm", ov, "data", "*.data.s")): + for ln in open(p): + m = re.match(r"\s*(?:dlabel|glabel)\s+(?:jtbl_|D_)([0-9A-Fa-f]{8})", ln) + if m: + labels.add(int(m.group(1), 16)) + return sorted(labels) + + +def jtbl_range(ov, jtbl_hex, labels, region_end_vram): + """(start_vram, end_vram) of a RAW jtbl_: end = next data dlabel, else the region end.""" start = int(jtbl_hex, 16) - # find the dlabel, then the next (glabel|dlabel) at a higher address = end. - labels = [] - for ln in lines: - m = re.match(r"\s*(?:dlabel|glabel)\s+(?:jtbl_|D_)([0-9A-Fa-f]{8})", ln) - if m: - labels.append(int(m.group(1), 16)) - labels = sorted(set(labels)) if start not in labels: - sys.exit(f"jtbl_carve: jtbl_{jtbl_hex} not found in asm/{ov}/data/tail.data.s (carved already? --revert first)") + sys.exit(f"jtbl_carve: jtbl_{jtbl_hex} not found in the raw data asm " + f"(asm/{ov}/data/*.data.s) — already carved / stale asm? re-extract or --revert first") nxt = next((a for a in labels if a > start), None) - if nxt is None: - sys.exit(f"jtbl_carve: jtbl_{jtbl_hex} is the last label — cannot bound its size") - return start, nxt + return start, (nxt if nxt is not None else region_end_vram) -def has_trailing(ov): - return bool(re.search(r"\[0x[0-9A-Fa-f]+,\s*bin,\s*trailing\]", open(cfg_path(ov)).read())) +def parse_config(ov): + """Parse the flat-overlay config's tail data region. + + Returns (lines, indent, region_lo_idx, region_hi_idx, tail_start, region_end, trailing_present, + existing_carves) where: + - lines: the config file split into lines. + - region_lo_idx..region_hi_idx: the [inclusive, exclusive) line range of the `- [...]` data/ + rodata PIECE lines to replace (the `bin,trailing` + EOF lines stay). + - tail_start / region_end: file offsets bounding the regenerated data region. + - trailing_present: whether a `[off, bin, trailing]` piece caps the region. + - existing_carves: [(start_off, end_off, subseg), ...] for the `.rodata` carves already present. + """ + lines = open(cfg_path(ov)).read().splitlines() + pieces = [] # (idx, indent, off, kind, name) + eof_off = None + for i, ln in enumerate(lines): + m = PIECE_RE.match(ln) + if m: + pieces.append((i, m.group(1), int(m.group(2), 16), m.group(3), m.group(4))) + continue + e = EOF_RE.match(ln) + if e: + eof_off = int(e.group(1), 16) + # The data region = the trailing run of {data, .rodata} pieces after the last `c` piece. + data_pieces = [p for p in pieces if p[3] in ("data", ".rodata")] + if not data_pieces: + sys.exit(f"jtbl_carve: no data-tail region in {cfg_path(ov)}") + region_lo_idx = data_pieces[0][0] + indent = data_pieces[0][1] + tail_start = data_pieces[0][2] + # Where the regenerated pieces stop: the trailing bin piece, else the EOF marker. + trailing = [p for p in pieces if p[3] == "bin" and p[4] == "trailing"] + if trailing: + region_hi_idx = trailing[0][0] + region_end = trailing[0][2] + trailing_present = True + else: + if eof_off is None: + sys.exit(f"jtbl_carve: no trailing bin and no EOF marker in {cfg_path(ov)}") + # region_hi_idx = the EOF marker line index + region_hi_idx = next(i for i, ln in enumerate(lines) if EOF_RE.match(ln)) + region_end = eof_off + trailing_present = False + # Existing .rodata carves: end = the following piece's off (or region_end for the last). + region = [p for p in data_pieces if region_lo_idx <= p[0] < region_hi_idx] + existing = [] + for j, (_, _, off, kind, name) in enumerate(region): + if kind == ".rodata": + end = region[j + 1][2] if j + 1 < len(region) else region_end + existing.append((off, end, name)) + return lines, indent, region_lo_idx, region_hi_idx, tail_start, region_end, trailing_present, existing def build_carve(ov, funcs): - """Return (subsegs, interleave_args) for the given matched jr-functions. - subsegs: list of (file_off, kind, name) replacing the single [tail] data subseg. - Single-jtbl only in this slice.""" + """Return (region_lines, order_arg): the regenerated data-region `- [...]` piece lines and the + `ld_interleave --order` object list, for the accumulated carve set (existing + the new funcs).""" base = overlay_vram_base(ov) - jtbls = [] # (start_vram, end_vram, subseg_name) + (_, indent, _, _, tail_start, region_end, trailing_present, existing) = parse_config(ov) + region_end_vram = base + region_end + + # carves: (start_off, end_off, subseg). Existing ones come from the config (already migrated). + carves = list(existing) + have = {c[0] for c in carves} + labels = all_data_labels(ov) for f in funcs: sub, js = func_jtbls(ov, f) + if not js: + sys.exit(f"jtbl_carve: {f} references no jtbl_ (not a jr/switch function?)") for jh in js: - s, e = jtbl_range(ov, jh) - jtbls.append((s, e, sub)) - jtbls.sort() - if len(jtbls) != 1: - raise NotImplementedError( - f"jtbl_carve: {len(jtbls)} jtbls for {ov} — the multi-jtbl address-ordered carve " - f"(ld_interleave --order) is the next slice; single-jtbl only for now.") - s, e, sub = jtbls[0] - tail_start = current_tail_start(ov) - j_off, j_end = s - base, e - base - subsegs = [ - (tail_start, "data", "tail"), - (j_off, ".rodata", sub), - (j_end, "data", "tail2"), - ] - args = "--front tail.data.o --tail tail2.data.o" + (" --tail trailing.o" if has_trailing(ov) else "") - return subsegs, args + s_vram, e_vram = jtbl_range(ov, jh, labels, region_end_vram) + s_off, e_off = s_vram - base, e_vram - base + if s_off in have: + continue # idempotent: already carved + carves.append((s_off, e_off, sub)) + have.add(s_off) + carves.sort() + # A code object contributes ONE contiguous .rodata run -> a subseg may host only one carve. + seen_subsegs = {} + for s_off, _, sub in carves: + if sub in seen_subsegs: + sys.exit( + f"jtbl_carve: subseg '{sub}' would host two .rodata carves " + f"(0x{seen_subsegs[sub]:x} and 0x{s_off:x}) — a single object can't place non-adjacent " + f"jtbls. Isolate one matched jr-function into its own code subseg first (the whale " + f"`_o0b` precedent), then re-carve.") + seen_subsegs[sub] = s_off -def current_tail_start(ov): - """The file offset of the overlay's data-tail `data` subseg (before any carve).""" - txt = open(cfg_path(ov)).read() - m = re.search(r"\[(0x[0-9A-Fa-f]+),\s*data,\s*tail\]", txt) - if not m: - sys.exit(f"jtbl_carve: no `[…, data, tail]` subseg in {cfg_path(ov)}") - return int(m.group(1), 16) + # Walk the region [tail_start, region_end), emitting a `data` piece before each carve. + pieces = [] # (off, kind, name) + order = [] # object leaves for --order, in address order + cursor = tail_start + n_data = 0 + def data_name(): + nonlocal n_data + n_data += 1 + return "tail" if n_data == 1 else f"tail{n_data}" + for s_off, e_off, sub in carves: + if cursor < s_off: + nm = data_name() + pieces.append((cursor, "data", nm)) + order.append(f"{nm}.data.o") + pieces.append((s_off, ".rodata", sub)) + order.append(f"{sub}.o") + cursor = e_off + if cursor < region_end: + nm = data_name() + pieces.append((cursor, "data", nm)) + order.append(f"{nm}.data.o") + if trailing_present: + order.append("trailing.o") + + region_lines = [] + for off, kind, name in pieces: + comment = " # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)" if kind == ".rodata" else "" + region_lines.append(f"{indent}- [{hex(off)}, {kind}, {name}]{comment}") + return region_lines, "--order " + ",".join(order) def apply(ov, funcs): - subsegs, args = build_carve(ov, funcs) - txt = open(cfg_path(ov)).read() - # Replace the single `[, data, tail]` line with the carve block (preserve indent). - line_re = re.compile(r"^(\s*)- \[0x[0-9A-Fa-f]+,\s*data,\s*tail\].*$", re.M) - m = line_re.search(txt) - if not m: - sys.exit(f"jtbl_carve: could not find the data-tail subseg line in {cfg_path(ov)}") - indent = m.group(1) - block = "\n".join( - f"{indent}- [{hex(off)}, {kind}, {name}]" + ( - " # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)" if kind == ".rodata" else "") - for off, kind, name in subsegs) - txt = line_re.sub(lambda _: block, txt, count=1) - open(cfg_path(ov), "w").write(txt) - set_overlays_var(ov, args) - print(f"jtbl_carve {ov}: carved {funcs} -> {[hex(o) for o, _, _ in subsegs]}; JTBL_INTERLEAVE = {args}") + region_lines, order_arg = build_carve(ov, funcs) + lines, indent, lo, hi, *_ = parse_config(ov) + new_lines = lines[:lo] + region_lines + lines[hi:] + open(cfg_path(ov), "w").write("\n".join(new_lines) + "\n") + set_overlays_var(ov, order_arg) + print(f"jtbl_carve {ov}: carve set = {len(region_lines)} pieces; JTBL_INTERLEAVE = {order_arg}") def set_overlays_var(ov, args): diff --git a/tools/jtbl_family_bank.py b/tools/jtbl_family_bank.py index bbc8489d4..746f0374e 100644 --- a/tools/jtbl_family_bank.py +++ b/tools/jtbl_family_bank.py @@ -43,12 +43,13 @@ def bank(func, from_ov, from_addr, to_ov, to_addr): # clean slate (idempotent): restore this overlay's config AND src to the committed state revert(to_ov) subprocess.run(f"git checkout -- src/{to_ov}/ 2>/dev/null", shell=True) + # Extract FIRST so the on-disk asm matches the reverted committed config (the carve reads the + # new fn's raw jtbl from asm//data — a stale/absent asm from a prior config would miss it). + if sh(f"make --no-print-directory extract BINARY={to_ov}").returncode: + revert(to_ov); return "extract0-fail", "" r = sh(f"python3 tools/jtbl_carve.py {to_ov} --func {func}") - if r.returncode and "not found in" in (r.stdout + r.stderr): - # stale carved asm from a prior run — regenerate clean asm, then retry the carve - sh(f"make --no-print-directory extract BINARY={to_ov}") - r = sh(f"python3 tools/jtbl_carve.py {to_ov} --func {func}") if r.returncode: + revert(to_ov) return "carve-fail", ((r.stdout + r.stderr).strip().splitlines()[-1:] or [""]) if sh(f"make --no-print-directory extract BINARY={to_ov}").returncode: revert(to_ov); return "extract-fail", "" diff --git a/tools/ld_interleave.py b/tools/ld_interleave.py index f5533ea48..97631ba3b 100644 --- a/tools/ld_interleave.py +++ b/tools/ld_interleave.py @@ -31,6 +31,13 @@ _ap.add_argument("--front", action="append", help="object basename whose .data belongs to the FRONT region (repeatable)") _ap.add_argument("--tail", action="append", help="object basename whose .data belongs to the TAIL region (repeatable)") +_ap.add_argument("--order", + help="Phase-26 §8 MULTI-jtbl mode: a comma-separated, address-ordered list of " + "object LEAF names forming the data-region sandwich (text -> [these] -> bss). " + "A `*.data.o` or `trailing.o` leaf contributes its (.data); any other (code) " + "object leaf contributes its (.rodata) carve. Overrides --front/--tail. Every " + "unlisted .data/.rodata line must be an empty code-object section (parked with " + ".text, byte-neutral). Generalises the single-jtbl 3-piece sandwich to N pieces.") _ap.add_argument("--section", default=".main", help="output-section name to rewrite (default .main for the EXE; overlays " "use their own, e.g. .ov_SC01_077). The linker START/END/SIZE symbol " @@ -63,6 +70,56 @@ rodata_lines = grab(".rodata") data_lines = grab(".data") bss_lines = grab(".bss") +I = " " # 8-space indent matching splat's body + +if _a.order: + # --- Phase-26 §8 MULTI-jtbl address-ordered mode --------------------------------------- + # The data region is an explicit, address-ordered sequence of pieces (data subsegs and the + # per-function .rodata jtbl carves). Emit each piece's linker line back-to-back so the linker + # lays them out contiguously in exactly the original island order. ALIGN(.,4) between pieces + # is a no-op on the word-aligned jtbl/data boundaries (kept as a safety net, matching the + # proven single-carve path). Every code object contributes at most ONE contiguous .rodata run, + # so a matched jr-function whose jtbl is non-adjacent to a sibling's MUST be in its own subseg. + items = [x for x in _a.order.split(",") if x] + + def _sect_of(leaf): + return ".data" if (leaf.endswith(".data.o") or leaf == "trailing.o") else ".rodata" + + def _find_line(leaf, sect): + pat = f"/{leaf}({sect});" + hits = [l for l in (data_lines + rodata_lines) if pat in l] + if len(hits) != 1: + sys.exit(f"ld_interleave --order: expected exactly 1 `{leaf}({sect})` line, found {len(hits)}") + return hits[0] + + ordered = [_find_line(leaf, _sect_of(leaf)) for leaf in items] + selected = set(ordered) + # Everything not placed in the island must be an EMPTY code-object .data/.rodata section + # (non-empty ones would be a real data conflict -> the byte-gate catches it). Park with .text. + empties = [l for l in (data_lines + rodata_lines) if l not in selected] + + out_lines = [f"{I}FILL(0x00000000);", f"{I}{PREFIX}_TEXT_START = .;"] + out_lines += [f"{I}{l.strip()}" for l in text_lines] + out_lines += [f"{I}{l.strip()}" for l in empties] # empty (0-byte) sections, byte-neutral + out_lines += [f"{I}. = ALIGN(., 4);", f"{I}{PREFIX}_TEXT_END = .;", + f"{I}{PREFIX}_TEXT_SIZE = ABSOLUTE({PREFIX}_TEXT_END - {PREFIX}_TEXT_START);"] + out_lines.append(f"{I}{PREFIX}_DATA_START = .;") + for l in ordered: + out_lines.append(f"{I}{l.strip()}") + out_lines.append(f"{I}. = ALIGN(., 4);") + out_lines += [f"{I}{PREFIX}_DATA_END = .;", + f"{I}{PREFIX}_DATA_SIZE = ABSOLUTE({PREFIX}_DATA_END - {PREFIX}_DATA_START);"] + out_lines += [f"{I}{PREFIX}_BSS_START = .;"] + out_lines += [f"{I}{l.strip()}" for l in bss_lines] + out_lines += [f"{I}. = ALIGN(., 4);", f"{I}{PREFIX}_BSS_END = .;", + f"{I}{PREFIX}_BSS_SIZE = ABSOLUTE({PREFIX}_BSS_END - {PREFIX}_BSS_START);"] + new_body = "\n".join(out_lines) + out = src[:m.start()] + head + new_body + tail + src[m.end():] + open(LD, "w").write(out) + print(f"ld_interleave --order: {SECTION} island = {len(ordered)} pieces " + f"[{', '.join(items)}]; text={len(text_lines)} empties={len(empties)} bss={len(bss_lines)}") + sys.exit(0) + def is_named(line, names): return any(n in line for n in names)