feat(decomp): ov_SC03_028 (7 fns: func_80183A74, func_801847E8, func_80184914, func_80185864, func_80185C14, func_801887A8 + 1) and ov_SC06_030 (func_8017F65C + 1) — 9 resolver drafts banked once jr_isolate_all could partition their TUs; gate-time isolate + carve, both binaries byte-identical from clean rebuilds (P31 S62 T3)

This commit is contained in:
Drew T
2026-08-26 15:22:11 -06:00
parent cc8df52299
commit 0decb45580
12 changed files with 27023 additions and 5674 deletions
+4 -2
View File
@@ -1686,7 +1686,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 := --order tail.data.o,ov_SC03_028.o,ov_SC03_028_jr_8012ACE0.o,tail2.data.o,ov_SC03_028_jr_80135888.o,tail3.data.o,ov_SC03_028_jr_80135A4C.o,tail4.data.o,ov_SC03_028_jr_80135D20.o,tail5.data.o,ov_SC03_028_jr_801380E0.o,ov_SC03_028_o0c.o,tail6.data.o,ov_SC03_028_jr_8013F350.o,tail7.data.o,ov_SC03_028_jr_8013FFD8.o,tail8.data.o,ov_SC03_028_jr_80140608.o,tail9.data.o,ov_SC03_028_jr_8015444C.o,ov_SC03_028_jr_80154C24.o,ov_SC03_028_jr_801588CC.o,ov_SC03_028_jr_80159C84.o,tail10.data.o,ov_SC03_028_jr_8015A3C8.o,tail11.data.o,ov_SC03_028_jr_8015AE2C.o,tail12.data.o,ov_SC03_028_jr_8015C32C.o,tail13.data.o,ov_SC03_028_jr_8016AB6C.o,tail14.data.o,ov_SC03_028_jr_80171B4C.o,ov_SC03_028_jr_801734BC.o,tail15.data.o,ov_SC03_028_jr_801789AC.o,ov_SC03_028_jr_80178D40.o,tail16.data.o,ov_SC03_028_jr_8017A4AC.o,tail17.data.o,ov_SC03_028_jr_8017AE2C.o,tail18.data.o,ov_SC03_028_jr_8017DF98.o,tail19.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve
ov_SC03_028_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_028.o,ov_SC03_028_jr_8012ACE0.o,tail2.data.o,ov_SC03_028_jr_80135888.o,tail3.data.o,ov_SC03_028_jr_80135A4C.o,tail4.data.o,ov_SC03_028_jr_80135D20.o,tail5.data.o,ov_SC03_028_jr_801380E0.o,ov_SC03_028_o0c.o,tail6.data.o,ov_SC03_028_jr_8013F350.o,tail7.data.o,ov_SC03_028_jr_8013FFD8.o,tail8.data.o,ov_SC03_028_jr_80140608.o,tail9.data.o,ov_SC03_028_jr_8015444C.o,ov_SC03_028_jr_80154C24.o,ov_SC03_028_jr_801588CC.o,ov_SC03_028_jr_80159C84.o,tail10.data.o,ov_SC03_028_jr_8015A3C8.o,tail11.data.o,ov_SC03_028_jr_8015AE2C.o,tail12.data.o,ov_SC03_028_jr_8015C32C.o,tail13.data.o,ov_SC03_028_jr_8016AB6C.o,tail14.data.o,ov_SC03_028_jr_80171B4C.o,ov_SC03_028_jr_801734BC.o,tail15.data.o,ov_SC03_028_jr_801789AC.o,ov_SC03_028_jr_80178D40.o,tail16.data.o,ov_SC03_028_jr_8017A4AC.o,tail17.data.o,ov_SC03_028_jr_8017AE2C.o,tail18.data.o,ov_SC03_028_jr_8017DF98.o,tail19.data.o,ov_SC03_028_jr_80183A74.o,ov_SC03_028_jr_801847E8.o,tail20.data.o,ov_SC03_028_jr_80184914.o,tail21.data.o,ov_SC03_028_jr_80185864.o,tail22.data.o,ov_SC03_028_jr_80185C14.o,tail23.data.o,ov_SC03_028_jr_801887A8.o,tail24.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve
build/src/ov_SC03_028/ov_SC03_028.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14
build/src/ov_SC03_028/ov_SC03_028_jr_8012ACE0.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0xcc,+0xe0
build/src/ov_SC03_028/ov_SC03_028_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18
@@ -1699,6 +1699,7 @@ build/src/ov_SC03_028/ov_SC03_028_jr_80159C84.o: JTBL_PADS := 0,4 # §8e pads (
build/src/ov_SC03_028/ov_SC03_028_jr_8015AE2C.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
build/src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
build/src/ov_SC03_028/ov_SC03_028_jr_80178D40.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x178
build/src/ov_SC03_028/ov_SC03_028_jr_80185864.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x28
build/src/ov_SC03_028/ov_SC03_028_o0c.o: JTBL_PADS := 0,4,4,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x38,+0xa8,+0x118
ov_SC03_028_CHECK_SHA := config/check.ov_SC03_028.sha
ov_SC03_028_SYMBOLS := config/symbols.ov_SC03_028.txt
@@ -4595,7 +4596,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 := --order tail.data.o,ov_SC06_030.o,ov_SC06_030_jr_8012ACE0.o,tail2.data.o,ov_SC06_030_jr_80135888.o,tail3.data.o,ov_SC06_030_jr_80135A4C.o,tail4.data.o,ov_SC06_030_jr_80135D20.o,tail5.data.o,ov_SC06_030_jr_801380E0.o,ov_SC06_030_o0c.o,tail6.data.o,ov_SC06_030_jr_8013F350.o,tail7.data.o,ov_SC06_030_jr_8013FFD8.o,tail8.data.o,ov_SC06_030_jr_80140608.o,tail9.data.o,ov_SC06_030_jr_8015444C.o,ov_SC06_030_jr_80154C24.o,ov_SC06_030_jr_801588CC.o,ov_SC06_030_jr_80159C84.o,tail10.data.o,ov_SC06_030_jr_8015A3C8.o,tail11.data.o,ov_SC06_030_jr_8015AE2C.o,tail12.data.o,ov_SC06_030_jr_8015C32C.o,tail13.data.o,ov_SC06_030_jr_8016AB6C.o,tail14.data.o,ov_SC06_030_jr_80171B4C.o,ov_SC06_030_jr_801734BC.o,tail15.data.o,ov_SC06_030_jr_801789AC.o,ov_SC06_030_jr_80178D40.o,tail16.data.o,ov_SC06_030_jr_8017A4AC.o,tail17.data.o,ov_SC06_030_jr_8017AE2C.o,tail18.data.o,ov_SC06_030_jr_8017C8D0.o,tail19.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve
ov_SC06_030_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_030.o,ov_SC06_030_jr_8012ACE0.o,tail2.data.o,ov_SC06_030_jr_80135888.o,tail3.data.o,ov_SC06_030_jr_80135A4C.o,tail4.data.o,ov_SC06_030_jr_80135D20.o,tail5.data.o,ov_SC06_030_jr_801380E0.o,ov_SC06_030_o0c.o,tail6.data.o,ov_SC06_030_jr_8013F350.o,tail7.data.o,ov_SC06_030_jr_8013FFD8.o,tail8.data.o,ov_SC06_030_jr_80140608.o,tail9.data.o,ov_SC06_030_jr_8015444C.o,ov_SC06_030_jr_80154C24.o,ov_SC06_030_jr_801588CC.o,ov_SC06_030_jr_80159C84.o,tail10.data.o,ov_SC06_030_jr_8015A3C8.o,tail11.data.o,ov_SC06_030_jr_8015AE2C.o,tail12.data.o,ov_SC06_030_jr_8015C32C.o,tail13.data.o,ov_SC06_030_jr_8016AB6C.o,tail14.data.o,ov_SC06_030_jr_80171B4C.o,ov_SC06_030_jr_801734BC.o,tail15.data.o,ov_SC06_030_jr_801789AC.o,ov_SC06_030_jr_80178D40.o,tail16.data.o,ov_SC06_030_jr_8017A4AC.o,tail17.data.o,ov_SC06_030_jr_8017AE2C.o,tail18.data.o,ov_SC06_030_jr_8017C8D0.o,tail19.data.o,ov_SC06_030_jr_8017F65C.o,tail20.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve
build/src/ov_SC06_030/ov_SC06_030.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14
build/src/ov_SC06_030/ov_SC06_030_jr_8012ACE0.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0xcc,+0xe0
build/src/ov_SC06_030/ov_SC06_030_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18
@@ -4609,6 +4610,7 @@ build/src/ov_SC06_030/ov_SC06_030_jr_8015AE2C.o: JTBL_PADS := 0,4 # §8e pads (
build/src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
build/src/ov_SC06_030/ov_SC06_030_jr_80178D40.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x178
build/src/ov_SC06_030/ov_SC06_030_jr_8017C8D0.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
build/src/ov_SC06_030/ov_SC06_030_jr_8017F65C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18
build/src/ov_SC06_030/ov_SC06_030_o0c.o: JTBL_PADS := 0,4,4,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x38,+0xa8,+0x118
ov_SC06_030_CHECK_SHA := config/check.ov_SC06_030.sha
ov_SC06_030_SYMBOLS := config/symbols.ov_SC06_030.txt
+17
View File
@@ -121,6 +121,12 @@ segments:
- [0x52354, c, ov_SC03_028_jr_8017A4AC]
- [0x52cd4, c, ov_SC03_028_jr_8017AE2C]
- [0x55e40, c, ov_SC03_028_jr_8017DF98]
- [0x5b91c, c, ov_SC03_028_jr_80183A74]
- [0x5c690, c, ov_SC03_028_jr_801847E8]
- [0x5c7bc, c, ov_SC03_028_jr_80184914]
- [0x5d70c, c, ov_SC03_028_jr_80185864]
- [0x5dabc, c, ov_SC03_028_jr_80185C14]
- [0x60650, c, ov_SC03_028_jr_801887A8]
- [0x63834, data, tail]
- [0xc0c38, .rodata, ov_SC03_028] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0xc0d14, .rodata, ov_SC03_028_jr_8012ACE0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
@@ -165,6 +171,17 @@ segments:
- [0xc1d6c, data, tail18]
- [0xc1ea4, .rodata, ov_SC03_028_jr_8017DF98] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0xc1ec4, data, tail19]
- [0xc1f04, .rodata, ov_SC03_028_jr_80183A74] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0xc1f1c, .rodata, ov_SC03_028_jr_801847E8] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0xc1f48, data, tail20]
- [0xc1f4c, .rodata, ov_SC03_028_jr_80184914] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0xc1f78, data, tail21]
- [0xc1fa4, .rodata, ov_SC03_028_jr_80185864] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0xc1ff0, data, tail22]
- [0xc1ff4, .rodata, ov_SC03_028_jr_80185C14] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0xc2018, data, tail23]
- [0xc2024, .rodata, ov_SC03_028_jr_801887A8] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0xc2050, data, tail24]
- [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
+3
View File
@@ -121,6 +121,7 @@ segments:
- [0x52354, c, ov_SC06_030_jr_8017A4AC]
- [0x52cd4, c, ov_SC06_030_jr_8017AE2C]
- [0x54778, c, ov_SC06_030_jr_8017C8D0]
- [0x57504, c, ov_SC06_030_jr_8017F65C]
- [0x59cb4, data, tail]
- [0x8f6ac, .rodata, ov_SC06_030] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0x8f788, .rodata, ov_SC06_030_jr_8012ACE0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
@@ -165,6 +166,8 @@ segments:
- [0x907e0, data, tail18]
- [0x90918, .rodata, ov_SC06_030_jr_8017C8D0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0x90958, data, tail19]
- [0x90970, .rodata, ov_SC06_030_jr_8017F65C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
- [0x9099c, data, tail20]
- [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
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff