diff --git a/config/overlays.mk b/config/overlays.mk index 26fa0fac2..154fb139b 100644 --- a/config/overlays.mk +++ b/config/overlays.mk @@ -243,7 +243,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 := --order tail.data.o,ov_SC02_000.o,ov_SC02_000_jr_8012ACE0.o,tail2.data.o,ov_SC02_000_jr_80135888.o,tail3.data.o,ov_SC02_000_jr_80135A4C.o,tail4.data.o,ov_SC02_000_jr_80135D20.o,tail5.data.o,ov_SC02_000_jr_801380E0.o,ov_SC02_000_o0c.o,tail6.data.o,ov_SC02_000_jr_8013F350.o,tail7.data.o,ov_SC02_000_jr_8013FFD8.o,tail8.data.o,ov_SC02_000_jr_80140608.o,tail9.data.o,ov_SC02_000_jr_8015444C.o,ov_SC02_000_jr_80154C24.o,ov_SC02_000_jr_801588CC.o,ov_SC02_000_jr_80159C84.o,tail10.data.o,ov_SC02_000_jr_8015A3C8.o,tail11.data.o,ov_SC02_000_jr_8015AE2C.o,tail12.data.o,ov_SC02_000_jr_8015C32C.o,tail13.data.o,ov_SC02_000_jr_8016AB6C.o,tail14.data.o,ov_SC02_000_jr_80171B4C.o,ov_SC02_000_jr_801734BC.o,tail15.data.o,ov_SC02_000_jr_801789AC.o,ov_SC02_000_jr_80178D40.o,tail16.data.o,ov_SC02_000_jr_8017A4AC.o,tail17.data.o,ov_SC02_000_jr_8017AE2C.o,ov_SC02_000_jr_8017EA84.o,tail18.data.o,ov_SC02_000_jr_8017FB24.o,ov_SC02_000_jr_8017FCB0.o,ov_SC02_000_jr_801808C4.o,ov_SC02_000_jr_80180D6C.o,ov_SC02_000_jr_80181538.o,ov_SC02_000_jr_80181698.o,ov_SC02_000_jr_8018173C.o,tail19.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_000_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_000.o,ov_SC02_000_jr_8012ACE0.o,tail2.data.o,ov_SC02_000_jr_80135888.o,tail3.data.o,ov_SC02_000_jr_80135A4C.o,tail4.data.o,ov_SC02_000_jr_80135D20.o,tail5.data.o,ov_SC02_000_jr_801380E0.o,ov_SC02_000_o0c.o,tail6.data.o,ov_SC02_000_jr_8013F350.o,tail7.data.o,ov_SC02_000_jr_8013FFD8.o,tail8.data.o,ov_SC02_000_jr_80140608.o,tail9.data.o,ov_SC02_000_jr_8015444C.o,ov_SC02_000_jr_80154C24.o,ov_SC02_000_jr_801588CC.o,ov_SC02_000_jr_80159C84.o,tail10.data.o,ov_SC02_000_jr_8015A3C8.o,tail11.data.o,ov_SC02_000_jr_8015AE2C.o,tail12.data.o,ov_SC02_000_jr_8015C32C.o,tail13.data.o,ov_SC02_000_jr_8016AB6C.o,tail14.data.o,ov_SC02_000_jr_80171B4C.o,ov_SC02_000_jr_801734BC.o,tail15.data.o,ov_SC02_000_jr_801789AC.o,ov_SC02_000_jr_80178D40.o,tail16.data.o,ov_SC02_000_jr_8017A4AC.o,tail17.data.o,ov_SC02_000_jr_8017AE2C.o,ov_SC02_000_jr_8017EA84.o,tail18.data.o,ov_SC02_000_jr_8017F950.o,tail19.data.o,ov_SC02_000_jr_8017FB24.o,ov_SC02_000_jr_8017FCB0.o,ov_SC02_000_jr_801808C4.o,ov_SC02_000_jr_80180D6C.o,ov_SC02_000_jr_80181538.o,ov_SC02_000_jr_80181698.o,ov_SC02_000_jr_8018173C.o,tail20.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve build/src/ov_SC02_000/ov_SC02_000.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14 build/src/ov_SC02_000/ov_SC02_000_jr_8012ACE0.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0xcc,+0xe0 build/src/ov_SC02_000/ov_SC02_000_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 @@ -284,7 +284,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 := --order tail.data.o,ov_SC02_003.o,ov_SC02_003_jr_8012ACE0.o,tail2.data.o,ov_SC02_003_jr_80135888.o,tail3.data.o,ov_SC02_003_jr_80135A4C.o,tail4.data.o,ov_SC02_003_jr_80135D20.o,tail5.data.o,ov_SC02_003_jr_801380E0.o,ov_SC02_003_o0c.o,tail6.data.o,ov_SC02_003_jr_8013F350.o,tail7.data.o,ov_SC02_003_jr_8013FFD8.o,tail8.data.o,ov_SC02_003_jr_80140608.o,tail9.data.o,ov_SC02_003_jr_8015444C.o,ov_SC02_003_jr_80154C24.o,ov_SC02_003_jr_801588CC.o,ov_SC02_003_jr_80159C84.o,tail10.data.o,ov_SC02_003_jr_8015A3C8.o,tail11.data.o,ov_SC02_003_jr_8015AE2C.o,tail12.data.o,ov_SC02_003_jr_8015C32C.o,tail13.data.o,ov_SC02_003_jr_8016AB6C.o,tail14.data.o,ov_SC02_003_jr_80171B4C.o,ov_SC02_003_jr_801734BC.o,tail15.data.o,ov_SC02_003_jr_801789AC.o,ov_SC02_003_jr_80178D40.o,tail16.data.o,ov_SC02_003_jr_8017A4AC.o,tail17.data.o,ov_SC02_003_jr_8017AE2C.o,ov_SC02_003_jr_8017EA84.o,tail18.data.o,ov_SC02_003_jr_8017FB24.o,ov_SC02_003_jr_8017FCB0.o,ov_SC02_003_jr_801808C4.o,ov_SC02_003_jr_80180D6C.o,ov_SC02_003_jr_80181538.o,ov_SC02_003_jr_80181698.o,ov_SC02_003_jr_8018173C.o,tail19.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC02_003_JTBL_INTERLEAVE := --order tail.data.o,ov_SC02_003.o,ov_SC02_003_jr_8012ACE0.o,tail2.data.o,ov_SC02_003_jr_80135888.o,tail3.data.o,ov_SC02_003_jr_80135A4C.o,tail4.data.o,ov_SC02_003_jr_80135D20.o,tail5.data.o,ov_SC02_003_jr_801380E0.o,ov_SC02_003_o0c.o,tail6.data.o,ov_SC02_003_jr_8013F350.o,tail7.data.o,ov_SC02_003_jr_8013FFD8.o,tail8.data.o,ov_SC02_003_jr_80140608.o,tail9.data.o,ov_SC02_003_jr_8015444C.o,ov_SC02_003_jr_80154C24.o,ov_SC02_003_jr_801588CC.o,ov_SC02_003_jr_80159C84.o,tail10.data.o,ov_SC02_003_jr_8015A3C8.o,tail11.data.o,ov_SC02_003_jr_8015AE2C.o,tail12.data.o,ov_SC02_003_jr_8015C32C.o,tail13.data.o,ov_SC02_003_jr_8016AB6C.o,tail14.data.o,ov_SC02_003_jr_80171B4C.o,ov_SC02_003_jr_801734BC.o,tail15.data.o,ov_SC02_003_jr_801789AC.o,ov_SC02_003_jr_80178D40.o,tail16.data.o,ov_SC02_003_jr_8017A4AC.o,tail17.data.o,ov_SC02_003_jr_8017AE2C.o,ov_SC02_003_jr_8017EA84.o,tail18.data.o,ov_SC02_003_jr_8017F950.o,tail19.data.o,ov_SC02_003_jr_8017FB24.o,ov_SC02_003_jr_8017FCB0.o,ov_SC02_003_jr_801808C4.o,ov_SC02_003_jr_80180D6C.o,ov_SC02_003_jr_80181538.o,ov_SC02_003_jr_80181698.o,ov_SC02_003_jr_8018173C.o,tail20.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve build/src/ov_SC02_003/ov_SC02_003.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14 build/src/ov_SC02_003/ov_SC02_003_jr_8012ACE0.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0xcc,+0xe0 build/src/ov_SC02_003/ov_SC02_003_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 @@ -2590,7 +2590,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 := --order tail.data.o,ov_SC03_112.o,ov_SC03_112_jr_8012ACE0.o,tail2.data.o,ov_SC03_112_jr_80135888.o,tail3.data.o,ov_SC03_112_jr_80135A4C.o,tail4.data.o,ov_SC03_112_jr_80135D20.o,tail5.data.o,ov_SC03_112_jr_801380E0.o,ov_SC03_112_o0c.o,tail6.data.o,ov_SC03_112_jr_8013F350.o,tail7.data.o,ov_SC03_112_jr_8013FFD8.o,tail8.data.o,ov_SC03_112_jr_80140608.o,tail9.data.o,ov_SC03_112_jr_8015444C.o,ov_SC03_112_jr_80154C24.o,ov_SC03_112_jr_801588CC.o,ov_SC03_112_jr_80159C84.o,tail10.data.o,ov_SC03_112_jr_8015A3C8.o,tail11.data.o,ov_SC03_112_jr_8015AE2C.o,tail12.data.o,ov_SC03_112_jr_8015C32C.o,tail13.data.o,ov_SC03_112_jr_8016AB6C.o,tail14.data.o,ov_SC03_112_jr_80171B4C.o,ov_SC03_112_jr_801734BC.o,tail15.data.o,ov_SC03_112_jr_801789AC.o,ov_SC03_112_jr_80178D40.o,tail16.data.o,ov_SC03_112_jr_8017A4AC.o,tail17.data.o,ov_SC03_112_jr_8017AE2C.o,ov_SC03_112_jr_8017C294.o,tail18.data.o,ov_SC03_112_jr_801817E0.o,tail19.data.o,ov_SC03_112_jr_80181F74.o,ov_SC03_112_jr_80182BF8.o,ov_SC03_112_jr_80183AE0.o,tail20.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_112_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_112.o,ov_SC03_112_jr_8012ACE0.o,tail2.data.o,ov_SC03_112_jr_80135888.o,tail3.data.o,ov_SC03_112_jr_80135A4C.o,tail4.data.o,ov_SC03_112_jr_80135D20.o,tail5.data.o,ov_SC03_112_jr_801380E0.o,ov_SC03_112_o0c.o,tail6.data.o,ov_SC03_112_jr_8013F350.o,tail7.data.o,ov_SC03_112_jr_8013FFD8.o,tail8.data.o,ov_SC03_112_jr_80140608.o,tail9.data.o,ov_SC03_112_jr_8015444C.o,ov_SC03_112_jr_80154C24.o,ov_SC03_112_jr_801588CC.o,ov_SC03_112_jr_80159C84.o,tail10.data.o,ov_SC03_112_jr_8015A3C8.o,tail11.data.o,ov_SC03_112_jr_8015AE2C.o,tail12.data.o,ov_SC03_112_jr_8015C32C.o,tail13.data.o,ov_SC03_112_jr_8016AB6C.o,tail14.data.o,ov_SC03_112_jr_80171B4C.o,ov_SC03_112_jr_801734BC.o,tail15.data.o,ov_SC03_112_jr_801789AC.o,ov_SC03_112_jr_80178D40.o,tail16.data.o,ov_SC03_112_jr_8017A4AC.o,tail17.data.o,ov_SC03_112_jr_8017AE2C.o,ov_SC03_112_jr_8017C294.o,tail18.data.o,ov_SC03_112_jr_801817E0.o,ov_SC03_112_jr_80181F74.o,ov_SC03_112_jr_80182BF8.o,ov_SC03_112_jr_80183AE0.o,tail19.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve build/src/ov_SC03_112/ov_SC03_112.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14 build/src/ov_SC03_112/ov_SC03_112_jr_8012ACE0.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0xcc,+0xe0 build/src/ov_SC03_112/ov_SC03_112_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 @@ -2603,6 +2603,7 @@ build/src/ov_SC03_112/ov_SC03_112_jr_80159C84.o: JTBL_PADS := 0,4 # §8e pads ( build/src/ov_SC03_112/ov_SC03_112_jr_8015AE2C.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20 build/src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20 build/src/ov_SC03_112/ov_SC03_112_jr_80178D40.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x178 +build/src/ov_SC03_112/ov_SC03_112_jr_801817E0.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 build/src/ov_SC03_112/ov_SC03_112_o0c.o: JTBL_PADS := 0,4,4,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x38,+0xa8,+0x118 ov_SC03_112_CHECK_SHA := config/check.ov_SC03_112.sha ov_SC03_112_SYMBOLS := config/symbols.ov_SC03_112.txt @@ -4172,7 +4173,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 := --order tail.data.o,ov_SC06_011.o,ov_SC06_011_jr_8012ACE0.o,tail2.data.o,ov_SC06_011_jr_80135888.o,tail3.data.o,ov_SC06_011_jr_80135A4C.o,tail4.data.o,ov_SC06_011_jr_80135D20.o,tail5.data.o,ov_SC06_011_jr_801380E0.o,ov_SC06_011_o0c.o,tail6.data.o,ov_SC06_011_jr_8013F350.o,tail7.data.o,ov_SC06_011_jr_8013FFD8.o,tail8.data.o,ov_SC06_011_jr_80140608.o,tail9.data.o,ov_SC06_011_jr_8015444C.o,ov_SC06_011_jr_80154C24.o,ov_SC06_011_jr_801588CC.o,ov_SC06_011_jr_80159C84.o,tail10.data.o,ov_SC06_011_jr_8015A3C8.o,tail11.data.o,ov_SC06_011_jr_8015AE2C.o,tail12.data.o,ov_SC06_011_jr_8015C32C.o,tail13.data.o,ov_SC06_011_jr_8016AB6C.o,tail14.data.o,ov_SC06_011_jr_80171B4C.o,ov_SC06_011_jr_801734BC.o,tail15.data.o,ov_SC06_011_jr_801789AC.o,ov_SC06_011_jr_80178D40.o,tail16.data.o,ov_SC06_011_jr_8017A4AC.o,tail17.data.o,ov_SC06_011_jr_8017AE2C.o,ov_SC06_011_jr_8017BEBC.o,tail18.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC06_011_JTBL_INTERLEAVE := --order tail.data.o,ov_SC06_011.o,ov_SC06_011_jr_8012ACE0.o,tail2.data.o,ov_SC06_011_jr_80135888.o,tail3.data.o,ov_SC06_011_jr_80135A4C.o,tail4.data.o,ov_SC06_011_jr_80135D20.o,tail5.data.o,ov_SC06_011_jr_801380E0.o,ov_SC06_011_o0c.o,tail6.data.o,ov_SC06_011_jr_8013F350.o,tail7.data.o,ov_SC06_011_jr_8013FFD8.o,tail8.data.o,ov_SC06_011_jr_80140608.o,tail9.data.o,ov_SC06_011_jr_8015444C.o,ov_SC06_011_jr_80154C24.o,ov_SC06_011_jr_801588CC.o,ov_SC06_011_jr_80159C84.o,tail10.data.o,ov_SC06_011_jr_8015A3C8.o,tail11.data.o,ov_SC06_011_jr_8015AE2C.o,tail12.data.o,ov_SC06_011_jr_8015C32C.o,tail13.data.o,ov_SC06_011_jr_8016AB6C.o,tail14.data.o,ov_SC06_011_jr_80171B4C.o,ov_SC06_011_jr_801734BC.o,tail15.data.o,ov_SC06_011_jr_801789AC.o,ov_SC06_011_jr_80178D40.o,tail16.data.o,ov_SC06_011_jr_8017A4AC.o,tail17.data.o,ov_SC06_011_jr_8017AE2C.o,ov_SC06_011_jr_8017BEBC.o,ov_SC06_011_jr_8017EEEC.o,tail18.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve build/src/ov_SC06_011/ov_SC06_011.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14 build/src/ov_SC06_011/ov_SC06_011_jr_8012ACE0.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0xcc,+0xe0 build/src/ov_SC06_011/ov_SC06_011_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 @@ -4439,6 +4440,7 @@ build/src/ov_SC06_022/ov_SC06_022_jr_80159C84.o: JTBL_PADS := 0,4 # §8e pads ( build/src/ov_SC06_022/ov_SC06_022_jr_8015AE2C.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20 build/src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20 build/src/ov_SC06_022/ov_SC06_022_jr_80178D40.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x178 +build/src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20 build/src/ov_SC06_022/ov_SC06_022_jr_80180CD0.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20 build/src/ov_SC06_022/ov_SC06_022_jr_80182D08.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 build/src/ov_SC06_022/ov_SC06_022_o0c.o: JTBL_PADS := 0,4,4,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x38,+0xa8,+0x118 @@ -4477,6 +4479,7 @@ build/src/ov_SC06_024/ov_SC06_024_jr_8015AE2C.o: JTBL_PADS := 0,4 # §8e pads ( build/src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20 build/src/ov_SC06_024/ov_SC06_024_jr_80178D40.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x178 build/src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20,+0x48 +build/src/ov_SC06_024/ov_SC06_024_jr_80181D34.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 build/src/ov_SC06_024/ov_SC06_024_jr_801851E0.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 build/src/ov_SC06_024/ov_SC06_024_jr_80186F00.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 build/src/ov_SC06_024/ov_SC06_024_o0c.o: JTBL_PADS := 0,4,4,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x38,+0xa8,+0x118 @@ -4861,7 +4864,7 @@ ov_SC07_006_ELF := $(ov_SC07_006_OUT).elf ov_SC07_006_MAPFILE := $(ov_SC07_006_OUT).map ov_SC07_006_LD_SCRIPT := $(ov_SC07_006_OUT).ld ov_SC07_006_SPLAT_YAML := config/splat.ov_SC07_006.yaml -ov_SC07_006_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_006.o,ov_SC07_006_jr_80131340.o,tail2.data.o,ov_SC07_006_jr_80135888.o,tail3.data.o,ov_SC07_006_jr_80135A4C.o,tail4.data.o,ov_SC07_006_jr_80135D20.o,tail5.data.o,ov_SC07_006_jr_801380E0.o,ov_SC07_006_o0c.o,tail6.data.o,ov_SC07_006_jr_8013F350.o,tail7.data.o,ov_SC07_006_jr_8014032C.o,tail8.data.o,ov_SC07_006_jr_80140608.o,tail9.data.o,ov_SC07_006_jr_8015444C.o,ov_SC07_006_jr_80154C24.o,ov_SC07_006_jr_801588CC.o,ov_SC07_006_jr_80159C84.o,tail10.data.o,ov_SC07_006_jr_8015A3C8.o,tail11.data.o,ov_SC07_006_jr_8015B950.o,tail12.data.o,ov_SC07_006_jr_8015C32C.o,tail13.data.o,ov_SC07_006_jr_8016AE5C.o,tail14.data.o,ov_SC07_006_jr_80171B4C.o,tail15.data.o,ov_SC07_006_jr_801789AC.o,ov_SC07_006_jr_80179B74.o,tail16.data.o,ov_SC07_006_jr_8017AE2C.o,ov_SC07_006_jr_8017BEBC.o,tail17.data.o,ov_SC07_006_jr_80183814.o,tail18.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC07_006_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_006.o,ov_SC07_006_jr_80131340.o,tail2.data.o,ov_SC07_006_jr_80135888.o,tail3.data.o,ov_SC07_006_jr_80135A4C.o,tail4.data.o,ov_SC07_006_jr_80135D20.o,tail5.data.o,ov_SC07_006_jr_801380E0.o,ov_SC07_006_o0c.o,tail6.data.o,ov_SC07_006_jr_8013F350.o,tail7.data.o,ov_SC07_006_jr_8014032C.o,tail8.data.o,ov_SC07_006_jr_80140608.o,tail9.data.o,ov_SC07_006_jr_8015444C.o,ov_SC07_006_jr_80154C24.o,ov_SC07_006_jr_801588CC.o,ov_SC07_006_jr_80159C84.o,tail10.data.o,ov_SC07_006_jr_8015A3C8.o,tail11.data.o,ov_SC07_006_jr_8015B950.o,tail12.data.o,ov_SC07_006_jr_8015C32C.o,tail13.data.o,ov_SC07_006_jr_8016AB6C.o,ov_SC07_006_jr_8016AE5C.o,tail14.data.o,ov_SC07_006_jr_80171B4C.o,tail15.data.o,ov_SC07_006_jr_801789AC.o,ov_SC07_006_jr_80179B74.o,tail16.data.o,ov_SC07_006_jr_8017AE2C.o,ov_SC07_006_jr_8017BEBC.o,tail17.data.o,ov_SC07_006_jr_80183814.o,tail18.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve build/src/ov_SC07_006/ov_SC07_006.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14,+0xdc build/src/ov_SC07_006/ov_SC07_006_jr_80131340.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14 build/src/ov_SC07_006/ov_SC07_006_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 @@ -4875,7 +4878,6 @@ build/src/ov_SC07_006/ov_SC07_006_jr_8015A3C8.o: JTBL_PADS := 0,4 # §8e pads ( build/src/ov_SC07_006/ov_SC07_006_jr_80171B4C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20 build/src/ov_SC07_006/ov_SC07_006_jr_801789AC.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 build/src/ov_SC07_006/ov_SC07_006_jr_80179B74.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x90 -build/src/ov_SC07_006/ov_SC07_006_jr_80183814.o: JTBL_PADS := 0 # §8e pads — one table since wave dd banked func_8018A150 (P31 S60) build/src/ov_SC07_006/ov_SC07_006_o0c.o: JTBL_PADS := 0,4,4,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x38,+0xa8,+0x118 ov_SC07_006_CHECK_SHA := config/check.ov_SC07_006.sha ov_SC07_006_SYMBOLS := config/symbols.ov_SC07_006.txt @@ -4898,7 +4900,7 @@ ov_SC07_007_ELF := $(ov_SC07_007_OUT).elf ov_SC07_007_MAPFILE := $(ov_SC07_007_OUT).map ov_SC07_007_LD_SCRIPT := $(ov_SC07_007_OUT).ld ov_SC07_007_SPLAT_YAML := config/splat.ov_SC07_007.yaml -ov_SC07_007_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_007.o,ov_SC07_007_jr_80131340.o,tail2.data.o,ov_SC07_007_jr_80135888.o,tail3.data.o,ov_SC07_007_jr_80135A4C.o,tail4.data.o,ov_SC07_007_jr_80135D20.o,tail5.data.o,ov_SC07_007_jr_801380E0.o,ov_SC07_007_o0c.o,tail6.data.o,ov_SC07_007_jr_8013F350.o,tail7.data.o,ov_SC07_007_jr_8014032C.o,tail8.data.o,ov_SC07_007_jr_80140608.o,tail9.data.o,ov_SC07_007_jr_8015444C.o,ov_SC07_007_jr_80154C24.o,ov_SC07_007_jr_801588CC.o,ov_SC07_007_jr_80159C84.o,tail10.data.o,ov_SC07_007_jr_8015A3C8.o,tail11.data.o,ov_SC07_007_jr_8015B950.o,tail12.data.o,ov_SC07_007_jr_8015C32C.o,tail13.data.o,ov_SC07_007_jr_8016AE5C.o,tail14.data.o,ov_SC07_007_jr_80171B4C.o,tail15.data.o,ov_SC07_007_jr_801789AC.o,ov_SC07_007_jr_80179B74.o,tail16.data.o,ov_SC07_007_jr_8017AE2C.o,ov_SC07_007_jr_8017BEBC.o,tail17.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC07_007_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_007.o,ov_SC07_007_jr_80131340.o,tail2.data.o,ov_SC07_007_jr_80135888.o,tail3.data.o,ov_SC07_007_jr_80135A4C.o,tail4.data.o,ov_SC07_007_jr_80135D20.o,tail5.data.o,ov_SC07_007_jr_801380E0.o,ov_SC07_007_o0c.o,tail6.data.o,ov_SC07_007_jr_8013F350.o,tail7.data.o,ov_SC07_007_jr_8014032C.o,tail8.data.o,ov_SC07_007_jr_80140608.o,tail9.data.o,ov_SC07_007_jr_8015444C.o,ov_SC07_007_jr_80154C24.o,ov_SC07_007_jr_801588CC.o,ov_SC07_007_jr_80159C84.o,tail10.data.o,ov_SC07_007_jr_8015A3C8.o,tail11.data.o,ov_SC07_007_jr_8015B950.o,tail12.data.o,ov_SC07_007_jr_8015C32C.o,tail13.data.o,ov_SC07_007_jr_8016AB6C.o,ov_SC07_007_jr_8016AE5C.o,tail14.data.o,ov_SC07_007_jr_80171B4C.o,tail15.data.o,ov_SC07_007_jr_801789AC.o,ov_SC07_007_jr_80179B74.o,tail16.data.o,ov_SC07_007_jr_8017AE2C.o,ov_SC07_007_jr_8017BEBC.o,tail17.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve build/src/ov_SC07_007/ov_SC07_007.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14,+0xdc build/src/ov_SC07_007/ov_SC07_007_jr_80131340.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14 build/src/ov_SC07_007/ov_SC07_007_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 @@ -4935,7 +4937,7 @@ ov_SC07_010_ELF := $(ov_SC07_010_OUT).elf ov_SC07_010_MAPFILE := $(ov_SC07_010_OUT).map ov_SC07_010_LD_SCRIPT := $(ov_SC07_010_OUT).ld ov_SC07_010_SPLAT_YAML := config/splat.ov_SC07_010.yaml -ov_SC07_010_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_010.o,ov_SC07_010_jr_80131340.o,tail2.data.o,ov_SC07_010_jr_80135888.o,tail3.data.o,ov_SC07_010_jr_80135A4C.o,tail4.data.o,ov_SC07_010_jr_80135D20.o,tail5.data.o,ov_SC07_010_jr_801380E0.o,ov_SC07_010_o0.o,tail6.data.o,ov_SC07_010_jr_8013F350.o,tail7.data.o,ov_SC07_010_jr_8014032C.o,tail8.data.o,ov_SC07_010_jr_80140608.o,tail9.data.o,ov_SC07_010_jr_8015444C.o,ov_SC07_010_jr_80154C24.o,ov_SC07_010_jr_801588CC.o,ov_SC07_010_jr_80159C84.o,tail10.data.o,ov_SC07_010_jr_8015A3C8.o,tail11.data.o,ov_SC07_010_jr_8015B950.o,tail12.data.o,ov_SC07_010_jr_8015C32C.o,tail13.data.o,ov_SC07_010_jr_8016AE5C.o,tail14.data.o,ov_SC07_010_jr_80171B4C.o,tail15.data.o,ov_SC07_010_jr_801789AC.o,ov_SC07_010_jr_80179B74.o,tail16.data.o,ov_SC07_010_jr_8017AE2C.o,tail17.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC07_010_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_010.o,ov_SC07_010_jr_80131340.o,tail2.data.o,ov_SC07_010_jr_80135888.o,tail3.data.o,ov_SC07_010_jr_80135A4C.o,tail4.data.o,ov_SC07_010_jr_80135D20.o,tail5.data.o,ov_SC07_010_jr_801380E0.o,ov_SC07_010_o0.o,tail6.data.o,ov_SC07_010_jr_8013F350.o,tail7.data.o,ov_SC07_010_jr_8014032C.o,tail8.data.o,ov_SC07_010_jr_80140608.o,tail9.data.o,ov_SC07_010_jr_8015444C.o,ov_SC07_010_jr_80154C24.o,ov_SC07_010_jr_801588CC.o,ov_SC07_010_jr_80159C84.o,tail10.data.o,ov_SC07_010_jr_8015A3C8.o,tail11.data.o,ov_SC07_010_jr_8015B950.o,tail12.data.o,ov_SC07_010_jr_8015C32C.o,tail13.data.o,ov_SC07_010_jr_8016AB6C.o,ov_SC07_010_jr_8016AE5C.o,tail14.data.o,ov_SC07_010_jr_80171B4C.o,tail15.data.o,ov_SC07_010_jr_801789AC.o,ov_SC07_010_jr_80179B74.o,tail16.data.o,ov_SC07_010_jr_8017AE2C.o,tail17.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve build/src/ov_SC07_010/ov_SC07_010.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14,+0xdc build/src/ov_SC07_010/ov_SC07_010_jr_80131340.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14 build/src/ov_SC07_010/ov_SC07_010_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 @@ -4971,7 +4973,7 @@ ov_SC07_011_ELF := $(ov_SC07_011_OUT).elf ov_SC07_011_MAPFILE := $(ov_SC07_011_OUT).map ov_SC07_011_LD_SCRIPT := $(ov_SC07_011_OUT).ld ov_SC07_011_SPLAT_YAML := config/splat.ov_SC07_011.yaml -ov_SC07_011_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_011.o,ov_SC07_011_jr_80131340.o,tail2.data.o,ov_SC07_011_jr_80135888.o,tail3.data.o,ov_SC07_011_jr_80135A4C.o,tail4.data.o,ov_SC07_011_jr_80135D20.o,tail5.data.o,ov_SC07_011_jr_801380E0.o,ov_SC07_011_o0c.o,tail6.data.o,ov_SC07_011_jr_8013F350.o,tail7.data.o,ov_SC07_011_jr_8014032C.o,tail8.data.o,ov_SC07_011_jr_80140608.o,tail9.data.o,ov_SC07_011_jr_8015444C.o,ov_SC07_011_jr_80154C24.o,ov_SC07_011_jr_801588CC.o,ov_SC07_011_jr_80159C84.o,tail10.data.o,ov_SC07_011_jr_8015A3C8.o,tail11.data.o,ov_SC07_011_jr_8015B950.o,tail12.data.o,ov_SC07_011_jr_8015C32C.o,tail13.data.o,ov_SC07_011_jr_8016AE5C.o,tail14.data.o,ov_SC07_011_jr_80171B4C.o,tail15.data.o,ov_SC07_011_jr_801789AC.o,ov_SC07_011_jr_80179B74.o,tail16.data.o,ov_SC07_011_jr_8017AE2C.o,ov_SC07_011_jr_8017BEBC.o,tail17.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC07_011_JTBL_INTERLEAVE := --order tail.data.o,ov_SC07_011.o,ov_SC07_011_jr_80131340.o,tail2.data.o,ov_SC07_011_jr_80135888.o,tail3.data.o,ov_SC07_011_jr_80135A4C.o,tail4.data.o,ov_SC07_011_jr_80135D20.o,tail5.data.o,ov_SC07_011_jr_801380E0.o,ov_SC07_011_o0c.o,tail6.data.o,ov_SC07_011_jr_8013F350.o,tail7.data.o,ov_SC07_011_jr_8014032C.o,tail8.data.o,ov_SC07_011_jr_80140608.o,tail9.data.o,ov_SC07_011_jr_8015444C.o,ov_SC07_011_jr_80154C24.o,ov_SC07_011_jr_801588CC.o,ov_SC07_011_jr_80159C84.o,tail10.data.o,ov_SC07_011_jr_8015A3C8.o,tail11.data.o,ov_SC07_011_jr_8015B950.o,tail12.data.o,ov_SC07_011_jr_8015C32C.o,tail13.data.o,ov_SC07_011_jr_8016AB6C.o,ov_SC07_011_jr_8016AE5C.o,tail14.data.o,ov_SC07_011_jr_80171B4C.o,tail15.data.o,ov_SC07_011_jr_801789AC.o,ov_SC07_011_jr_80179B74.o,tail16.data.o,ov_SC07_011_jr_8017AE2C.o,ov_SC07_011_jr_8017BEBC.o,tail17.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve build/src/ov_SC07_011/ov_SC07_011.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14,+0xdc build/src/ov_SC07_011/ov_SC07_011_jr_80131340.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14 build/src/ov_SC07_011/ov_SC07_011_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 @@ -5078,7 +5080,7 @@ ov_SC03_107_ELF := $(ov_SC03_107_OUT).elf ov_SC03_107_MAPFILE := $(ov_SC03_107_OUT).map ov_SC03_107_LD_SCRIPT := $(ov_SC03_107_OUT).ld ov_SC03_107_SPLAT_YAML := config/splat.ov_SC03_107.yaml -ov_SC03_107_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_107.o,ov_SC03_107_jr_80131340.o,tail2.data.o,ov_SC03_107_jr_80135A4C.o,tail3.data.o,ov_SC03_107_jr_80135EB0.o,tail4.data.o,ov_SC03_107_jr_801380E0.o,ov_SC03_107_o0c.o,tail5.data.o,ov_SC03_107_jr_8013F350.o,tail6.data.o,ov_SC03_107_jr_8015444C.o,tail7.data.o,ov_SC03_107_jr_801549F8.o,ov_SC03_107_jr_801555F4.o,tail8.data.o,ov_SC03_107_jr_801594E8.o,ov_SC03_107_jr_80159C84.o,tail9.data.o,ov_SC03_107_jr_8015A3C8.o,tail10.data.o,ov_SC03_107_jr_8016AE5C.o,tail11.data.o,ov_SC03_107_jr_80171B4C.o,tail12.data.o,ov_SC03_107_jr_801789AC.o,tail13.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve +ov_SC03_107_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_107.o,ov_SC03_107_jr_80131340.o,tail2.data.o,ov_SC03_107_jr_80135A4C.o,tail3.data.o,ov_SC03_107_jr_80135EB0.o,tail4.data.o,ov_SC03_107_jr_801380E0.o,ov_SC03_107_o0c.o,tail5.data.o,ov_SC03_107_jr_8013F350.o,tail6.data.o,ov_SC03_107_jr_8015444C.o,tail7.data.o,ov_SC03_107_jr_801549F8.o,ov_SC03_107_jr_801555F4.o,tail8.data.o,ov_SC03_107_jr_801594E8.o,ov_SC03_107_jr_80159C84.o,tail9.data.o,ov_SC03_107_jr_8015A3C8.o,tail10.data.o,ov_SC03_107_jr_8016AB6C.o,ov_SC03_107_jr_8016AE5C.o,tail11.data.o,ov_SC03_107_jr_80171B4C.o,tail12.data.o,ov_SC03_107_jr_801789AC.o,tail13.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve build/src/ov_SC03_107/ov_SC03_107.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14,+0xdc build/src/ov_SC03_107/ov_SC03_107_jr_80131340.o: JTBL_PADS := 0,0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14,+0x2c build/src/ov_SC03_107/ov_SC03_107_jr_80135A4C.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18 diff --git a/config/splat.ov_SC02_000.yaml b/config/splat.ov_SC02_000.yaml index 5742a9c37..ce71a2ace 100644 --- a/config/splat.ov_SC02_000.yaml +++ b/config/splat.ov_SC02_000.yaml @@ -121,6 +121,7 @@ segments: - [0x52354, c, ov_SC02_000_jr_8017A4AC] - [0x52cd4, c, ov_SC02_000_jr_8017AE2C] - [0x5692c, c, ov_SC02_000_jr_8017EA84] + - [0x577f8, c, ov_SC02_000_jr_8017F950] - [0x579cc, c, ov_SC02_000_jr_8017FB24] - [0x57b58, c, ov_SC02_000_jr_8017FCB0] - [0x5876c, c, ov_SC02_000_jr_801808C4] @@ -171,6 +172,8 @@ segments: - [0xbe768, .rodata, ov_SC02_000_jr_8017AE2C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbe7fc, .rodata, ov_SC02_000_jr_8017EA84] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbe8a8, data, tail18] + - [0xbe8bc, .rodata, ov_SC02_000_jr_8017F950] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xbe920, data, tail19] - [0xbe924, .rodata, ov_SC02_000_jr_8017FB24] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbe944, .rodata, ov_SC02_000_jr_8017FCB0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbe9a4, .rodata, ov_SC02_000_jr_801808C4] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) @@ -178,7 +181,7 @@ segments: - [0xbeaa4, .rodata, ov_SC02_000_jr_80181538] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbeae4, .rodata, ov_SC02_000_jr_80181698] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbeb04, .rodata, ov_SC02_000_jr_8018173C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - - [0xbeb24, data, tail19] + - [0xbeb24, data, tail20] - [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 c296e726c..45cf33bd1 100644 --- a/config/splat.ov_SC02_003.yaml +++ b/config/splat.ov_SC02_003.yaml @@ -121,6 +121,7 @@ segments: - [0x52354, c, ov_SC02_003_jr_8017A4AC] - [0x52cd4, c, ov_SC02_003_jr_8017AE2C] - [0x5692c, c, ov_SC02_003_jr_8017EA84] + - [0x577f8, c, ov_SC02_003_jr_8017F950] - [0x579cc, c, ov_SC02_003_jr_8017FB24] - [0x57b58, c, ov_SC02_003_jr_8017FCB0] - [0x5876c, c, ov_SC02_003_jr_801808C4] @@ -171,6 +172,8 @@ segments: - [0xbe768, .rodata, ov_SC02_003_jr_8017AE2C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbe7fc, .rodata, ov_SC02_003_jr_8017EA84] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbe8a8, data, tail18] + - [0xbe8bc, .rodata, ov_SC02_003_jr_8017F950] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0xbe920, data, tail19] - [0xbe924, .rodata, ov_SC02_003_jr_8017FB24] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbe944, .rodata, ov_SC02_003_jr_8017FCB0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbe9a4, .rodata, ov_SC02_003_jr_801808C4] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) @@ -178,7 +181,7 @@ segments: - [0xbeaa4, .rodata, ov_SC02_003_jr_80181538] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbeae4, .rodata, ov_SC02_003_jr_80181698] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xbeb04, .rodata, ov_SC02_003_jr_8018173C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - - [0xbeb24, data, tail19] + - [0xbeb24, data, tail20] - [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_SC03_107.yaml b/config/splat.ov_SC03_107.yaml index 503b348f5..a7d3825d1 100644 --- a/config/splat.ov_SC03_107.yaml +++ b/config/splat.ov_SC03_107.yaml @@ -109,6 +109,7 @@ segments: - [0x31390, c, ov_SC03_107_jr_801594E8] - [0x31b2c, c, ov_SC03_107_jr_80159C84] - [0x32270, c, ov_SC03_107_jr_8015A3C8] + - [0x42a14, c, ov_SC03_107_jr_8016AB6C] - [0x42d04, c, ov_SC03_107_jr_8016AE5C] - [0x499f4, c, ov_SC03_107_jr_80171B4C] - [0x50854, c, ov_SC03_107_jr_801789AC] @@ -135,6 +136,7 @@ segments: - [0x71f7c, data, tail9] - [0x71f80, .rodata, ov_SC03_107_jr_8015A3C8] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x71ffc, data, tail10] + - [0x72014, .rodata, ov_SC03_107_jr_8016AB6C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x72034, .rodata, ov_SC03_107_jr_8016AE5C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x72054, data, tail11] - [0x72094, .rodata, ov_SC03_107_jr_80171B4C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) diff --git a/config/splat.ov_SC03_112.yaml b/config/splat.ov_SC03_112.yaml index 2607f3404..f18a28b61 100644 --- a/config/splat.ov_SC03_112.yaml +++ b/config/splat.ov_SC03_112.yaml @@ -169,11 +169,10 @@ segments: - [0x8380c, .rodata, ov_SC03_112_jr_8017C294] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x8382c, data, tail18] - [0x83834, .rodata, ov_SC03_112_jr_801817E0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - - [0x83848, data, tail19] - [0x83914, .rodata, ov_SC03_112_jr_80181F74] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x83928, .rodata, ov_SC03_112_jr_80182BF8] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x83990, .rodata, ov_SC03_112_jr_80183AE0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - - [0x839b8, data, tail20] + - [0x839b8, data, tail19] - [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_SC06_011.yaml b/config/splat.ov_SC06_011.yaml index ba761b831..3862ddf1b 100644 --- a/config/splat.ov_SC06_011.yaml +++ b/config/splat.ov_SC06_011.yaml @@ -121,6 +121,7 @@ segments: - [0x52354, c, ov_SC06_011_jr_8017A4AC] - [0x52cd4, c, ov_SC06_011_jr_8017AE2C] - [0x53d64, c, ov_SC06_011_jr_8017BEBC] + - [0x56d94, c, ov_SC06_011_jr_8017EEEC] - [0x582ac, data, tail] - [0x815b8, .rodata, ov_SC06_011] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x81694, .rodata, ov_SC06_011_jr_8012ACE0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) @@ -163,7 +164,8 @@ segments: - [0x826d4, data, tail17] - [0x826d8, .rodata, ov_SC06_011_jr_8017AE2C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x826ec, .rodata, ov_SC06_011_jr_8017BEBC] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - - [0x82728, data, tail18] + - [0x82728, .rodata, ov_SC06_011_jr_8017EEEC] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) + - [0x8273c, data, tail18] - [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_022.yaml b/config/splat.ov_SC06_022.yaml index 3bd0f9912..6a6d9b6ea 100644 --- a/config/splat.ov_SC06_022.yaml +++ b/config/splat.ov_SC06_022.yaml @@ -167,7 +167,7 @@ segments: - [0xb8948, data, tail17] - [0xb894c, .rodata, ov_SC06_022_jr_8017AE2C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb8960, .rodata, ov_SC06_022_jr_8017BEBC] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - - [0xb8980, data, tail18] + - [0xb8994, data, tail18] - [0xb8998, .rodata, ov_SC06_022_jr_80180CD0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb89d4, .rodata, ov_SC06_022_jr_80182D08] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb8ab4, .rodata, ov_SC06_022_jr_80184304] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) diff --git a/config/splat.ov_SC06_024.yaml b/config/splat.ov_SC06_024.yaml index ca5427826..f8e3ba203 100644 --- a/config/splat.ov_SC06_024.yaml +++ b/config/splat.ov_SC06_024.yaml @@ -169,7 +169,7 @@ segments: - [0xb7a90, .rodata, ov_SC06_024_jr_8017AE2C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb7aa4, .rodata, ov_SC06_024_jr_8017BEBC] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb7b04, .rodata, ov_SC06_024_jr_80181D34] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - - [0xb7b18, data, tail18] + - [0xb7b38, data, tail18] - [0xb7b3c, .rodata, ov_SC06_024_jr_80183B3C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb7b58, .rodata, ov_SC06_024_jr_801851E0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xb7c38, .rodata, ov_SC06_024_jr_801867DC] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) diff --git a/config/splat.ov_SC07_006.yaml b/config/splat.ov_SC07_006.yaml index 49c922d32..ff68248a0 100644 --- a/config/splat.ov_SC07_006.yaml +++ b/config/splat.ov_SC07_006.yaml @@ -113,6 +113,7 @@ segments: - [0x32270, c, ov_SC07_006_jr_8015A3C8] - [0x337f8, c, ov_SC07_006_jr_8015B950] - [0x341d4, c, ov_SC07_006_jr_8015C32C] + - [0x42a14, c, ov_SC07_006_jr_8016AB6C] - [0x42d04, c, ov_SC07_006_jr_8016AE5C] - [0x499f4, c, ov_SC07_006_jr_80171B4C] - [0x50854, c, ov_SC07_006_jr_801789AC] @@ -150,6 +151,7 @@ segments: - [0xcc614, data, tail12] - [0xcc618, .rodata, ov_SC07_006_jr_8015C32C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xcc634, data, tail13] + - [0xcc64c, .rodata, ov_SC07_006_jr_8016AB6C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xcc66c, .rodata, ov_SC07_006_jr_8016AE5C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0xcc68c, data, tail14] - [0xcc6cc, .rodata, ov_SC07_006_jr_80171B4C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) diff --git a/config/splat.ov_SC07_007.yaml b/config/splat.ov_SC07_007.yaml index 92046f8f0..579921b6a 100644 --- a/config/splat.ov_SC07_007.yaml +++ b/config/splat.ov_SC07_007.yaml @@ -113,6 +113,7 @@ segments: - [0x32270, c, ov_SC07_007_jr_8015A3C8] - [0x337f8, c, ov_SC07_007_jr_8015B950] - [0x341d4, c, ov_SC07_007_jr_8015C32C] + - [0x42a14, c, ov_SC07_007_jr_8016AB6C] - [0x42d04, c, ov_SC07_007_jr_8016AE5C] - [0x499f4, c, ov_SC07_007_jr_80171B4C] - [0x50854, c, ov_SC07_007_jr_801789AC] @@ -149,6 +150,7 @@ segments: - [0x9ddf0, data, tail12] - [0x9ddf4, .rodata, ov_SC07_007_jr_8015C32C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9de10, data, tail13] + - [0x9de28, .rodata, ov_SC07_007_jr_8016AB6C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9de48, .rodata, ov_SC07_007_jr_8016AE5C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x9de68, data, tail14] - [0x9dea8, .rodata, ov_SC07_007_jr_80171B4C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) diff --git a/config/splat.ov_SC07_010.yaml b/config/splat.ov_SC07_010.yaml index cb2ca94b3..cb452242d 100644 --- a/config/splat.ov_SC07_010.yaml +++ b/config/splat.ov_SC07_010.yaml @@ -113,6 +113,7 @@ segments: - [0x32270, c, ov_SC07_010_jr_8015A3C8] - [0x337f8, c, ov_SC07_010_jr_8015B950] - [0x341d4, c, ov_SC07_010_jr_8015C32C] + - [0x42a14, c, ov_SC07_010_jr_8016AB6C] - [0x42d04, c, ov_SC07_010_jr_8016AE5C] - [0x499f4, c, ov_SC07_010_jr_80171B4C] - [0x50854, c, ov_SC07_010_jr_801789AC] @@ -148,6 +149,7 @@ segments: - [0x7e2d0, data, tail12] - [0x7e2d4, .rodata, ov_SC07_010_jr_8015C32C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7e2f0, data, tail13] + - [0x7e308, .rodata, ov_SC07_010_jr_8016AB6C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7e328, .rodata, ov_SC07_010_jr_8016AE5C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x7e348, data, tail14] - [0x7e388, .rodata, ov_SC07_010_jr_80171B4C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) diff --git a/config/splat.ov_SC07_011.yaml b/config/splat.ov_SC07_011.yaml index bb5cf7eeb..fbe1e1011 100644 --- a/config/splat.ov_SC07_011.yaml +++ b/config/splat.ov_SC07_011.yaml @@ -113,6 +113,7 @@ segments: - [0x32270, c, ov_SC07_011_jr_8015A3C8] - [0x337f8, c, ov_SC07_011_jr_8015B950] - [0x341d4, c, ov_SC07_011_jr_8015C32C] + - [0x42a14, c, ov_SC07_011_jr_8016AB6C] - [0x42d04, c, ov_SC07_011_jr_8016AE5C] - [0x499f4, c, ov_SC07_011_jr_80171B4C] - [0x50854, c, ov_SC07_011_jr_801789AC] @@ -149,6 +150,7 @@ segments: - [0x66998, data, tail12] - [0x6699c, .rodata, ov_SC07_011_jr_8015C32C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x669b8, data, tail13] + - [0x669d0, .rodata, ov_SC07_011_jr_8016AB6C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x669f0, .rodata, ov_SC07_011_jr_8016AE5C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) - [0x66a10, data, tail14] - [0x66a50, .rodata, ov_SC07_011_jr_80171B4C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py) diff --git a/src/md_SC03_135/md_SC03_135.c b/src/md_SC03_135/md_SC03_135.c index 8edf13585..769d05f09 100644 --- a/src/md_SC03_135/md_SC03_135.c +++ b/src/md_SC03_135/md_SC03_135.c @@ -779,7 +779,132 @@ s32 func_801E3830(s32 arg0, s16 arg1, s16 arg2, s16 arg3, s32 *arg4) { } -INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E38B4); + +extern void func_8002B00C(void *); +extern void func_801E48B8(s32); +extern void func_80029774(s32); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8002AF48(s32); +extern s32 func_8002AF60(void); +extern void func_801E40A8(void); + +s32 func_801E38B4(void) +{ + extern s32 D_801EAC54; + extern s16 D_8011512C; + extern u8 D_801EAC45; + extern u8 D_801EA960[]; + extern u16 D_80115118; + extern u16 D_8011511A; + extern s32 D_801E64E8; + extern s16 D_801150D4; + extern s32 D_801EAC3C; + extern u8 D_801EAC4D; + extern u8 D_801EAC44[]; + extern u8 D_801EAC4C[]; + extern u8 D_801EAC48[]; + extern void *D_801EAC58[]; + extern s32 D_801E6448; + + s32 ret; + short i; + + ret = 0; + if (D_801EAC54 != 0) { + if (D_801EAC54 == 1) { + s16 *p = &D_8011512C; + + if (*p == 3 && D_801EAC45 == 8) { + func_8002B00C(D_801EA960); + func_801E48B8(0); + func_80029774(0); + *p = 4; + D_80115118 = 0x4B; + D_801E64E8 = 0x15; + D_801150D4 = D_8011511A; + ((void (*)(s32, s32))func_8002D4C8)(0xB3B, 0); + } else { + *p = 0; + } + } else { + D_8011512C = 0xA; + D_801E64E8 = 0x1B; + D_80115118 = 0x4B; + D_801EAC3C = 0; + return; + } + D_801EAC3C = 0; + D_801EAC4D = 0xFF; + } + + if (D_8011512C == 4 || D_8011512C == 0xA) { + return; + } + if (D_801EAC45 == D_801EAC4D) { + return; + } + + for (i = 0; i < 8; i++) { + D_801EAC4C[i] = D_801EAC44[i]; + } + + switch (D_801EAC45) { + case 0: + break; + case 1: + ret = 0xA; + D_8011512C = 0; + D_8011511A = 0; + break; + case 2: + ret = 0xB; + D_801150D4 = 0; + D_8011512C = 0; + D_8011511A = 0; + break; + case 3: + ret = 0x1F; + D_801150D4 = 0; + D_8011512C = 8; + break; + case 4: + case 5: + case 6: + reset_state: + ret = 0x13; + D_801150D4 = 0; + D_8011512C = 8; + break; + case 7: + ret = 0xA; + break; + case 8: + ret = 0xC; + if ((D_801EAC48[0] | D_801EAC48[1] | D_801EAC48[2] | D_801EAC48[3]) == 0) { + goto reset_state; + } + for (i = 0; i < 4; i++) { + if (D_801EAC48[i] == 1) { + ((s32 *)D_801EAC58)[i] = func_8002AF48(i); + } else { + ((s32 *)D_801EAC58)[i] = 0; + } + } + if (((s32 *)D_801EAC58)[0] == 0 && ((s32 *)D_801EAC58)[1] == 0 && ((s32 *)D_801EAC58)[2] == 0 && + ((s32 *)D_801EAC58)[3] == 0) { + goto reset_state; + } + D_8011512C = 1; + D_8011511A = (func_8002AF60() & 3) + 1; + func_801E40A8(); + break; + } + + if (ret != 0) { + D_801E6448 = ret; + } +} + #include "common.h" diff --git a/src/md_SC05_026/md_SC05_026.c b/src/md_SC05_026/md_SC05_026.c index eeb1dcb9c..8c30504ee 100644 --- a/src/md_SC05_026/md_SC05_026.c +++ b/src/md_SC05_026/md_SC05_026.c @@ -209,7 +209,7 @@ void func_801EDF80(void) extern s32 func_8002B0B4(s32, s32, void *); extern void func_801EEC54(void); extern void func_801EEFBC(void); - extern s32 func_801EE0D4(void); + extern s32 func_801EE0D4(); extern void func_801EE730(void); u16 idx; @@ -298,7 +298,284 @@ INCLUDE_RODATA("asm/md_SC05_026/nonmatchings/md_SC05_026", D_801ED988); INCLUDE_RODATA("asm/md_SC05_026/nonmatchings/md_SC05_026", D_801EDA60); -INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EE0D4); +typedef struct { s16 vx, vy; } DVEC2_C974_8017BA3C; +typedef struct { s16 vx, vy, vz, pad; } SVEC2_C974_8017BA3C; +typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974; + +extern s32 func_80014ED4(s32); +extern s32 func_80015018(s32); +extern s16 func_8014168C(s16); +extern void func_801EFC30(void); +extern void func_801EFC58(s32); +extern void func_8002AF70(void *, s32); +extern s32 func_8002D4C8(s32, s32); +extern void func_8002AF18(void); + + +s32 func_801EE0D4(void) { + + extern u16 D_8011511A; + extern u8 D_801F8303[]; + extern s32 D_801F18D8; + extern s16 D_801F8014; + extern u8 D_801F801C[]; + extern s32 D_801F82FC; + extern u8 D_801F8309; + s32 *p; + s32 *p2; + u16 *ph; + s16 *q; + s32 pad; + s32 flag; + s32 st; + s32 t; + s32 t2; + s32 sv; + s32 x; + s32 r; + s32 unused[4]; + + flag = 0; + pad = func_80014ED4(0); + func_80015018(0); + func_8014168C(D_8011511A); + + if (pad & 0x40) { + st = D_8011512C; + switch (st) { + case 1: + if (D_80115126 == 0) { + if (D_801F8303[D_8011511A] == 1) { + D_801F1838 = 0x19; + } else { + ((void (*)(s32, s32))func_8002D4C8)(0x472, 0); + return 0; + } + } else if (D_801F8303[D_8011511A] == 1) { + D_801F1838 = 0x16; + } else { + D_801F1838 = 0x19; + } + D_8011512C = 2; + ((void (*)(s32, s32))func_8002D4C8)(0x45D, 0); + return 0; + case 2: + func_801EFC30(); + if (D_80115126 == 0) { + D_801F18D8 = 0x14; + D_801F82F8 = 2; + D_801F82FC = D_8011511A - 1; + } else { + D_801F82FC = D_8011511A - 1; + func_801EFC58(1); + func_8002AF70(D_801F801C, D_801F82FC); + D_801F18D8 = 0xE; + D_801F82F8 = 1; + } + D_8011512C = 3; + ((void (*)(s32, s32))func_8002D4C8)(0x45D, 0); + return 0; + case 4: + case 7: + Lcheck47: + if ((*(u16 *)&D_80115118) < 0x47) { + goto Lreset; + } + return 0; + case 9: + p = &D_801F1838; + if (*p == 0x1D || *p == 0x21) { + goto Lmsg473ret1; + } + (*(s16 *)&D_801F8010) = 0; + D_801F8018 = 1; + D_8011512C = 0; + *p = D_801F17A0; + ((void (*)(s32, s32))func_8002D4C8)(0x45D, 0); + return 0; + case 5: + goto Lload; + case 0: + case 3: + case 6: + case 8: + case 10: + case 11: + case 12: + break; + default: + goto Ltail; + } + return 0; + } else if (pad & 0x10) { + st = D_8011512C; + switch (st) { + case 0: + if (D_801F1838 != 0xB) { + return 0; + } + /* fallthrough */ + case 1: + Lmsg473: + ((void (*)(s32, s32))func_8002D4C8)(0x473, 0); + t = D_801F8014; + sv = t; + if (t == 0) { + return 1; + } + x = (t == 1) ? 0x1D : 0x21; + r = 0; + t = 9; + D_8011512C = t; + D_801F1838 = x; + t = 0xFF; + goto Lstore; + case 2: + if (D_80115126 == 0) { + D_801F1838 = 0xC; + } else { + D_801F1838 = 0xD; + } + D_8011512C = 1; + ((void (*)(s32, s32))func_8002D4C8)(0x473, 0); + return 0; + case 5: + case 8: + if (D_80115126 != 0) { + goto Lmsg473; + } + Lmsg473ret1: + ((void (*)(s32, s32))func_8002D4C8)(0x473, 0); + return 1; + case 9: + p2 = &D_801F1838; + if (*p2 == 0x1D || *p2 == 0x21) { + if (D_801F8018 == 0) { + *p2 = 0x1A; + ((void (*)(s32, s32))func_8002D4C8)(0x45D, 0); + return 0; + } + (*(s16 *)&D_801F8010) = 0; + D_8011512C = 0; + *p2 = D_801F17A0; + ((s32 (*)(void))func_8002AF18)(); + ((void (*)(s32, s32))func_8002D4C8)(0x45D, 0); + return 0; + } + *p2 = (D_801F8014 == 1) ? 0x1D : 0x21; + ((void (*)(s32, s32))func_8002D4C8)(0x473, 0); + return 0; + case 4: + case 7: + goto Lcheck47; + case 3: + case 6: + case 10: + case 11: + case 12: + break; + default: + goto Ltail; + } + return 0; + } else if (pad & 0x20) { + st = D_8011512C; + if (st == 5) { + D_801F18D8 = 0x17; + D_8011512C = 6; + ((void (*)(s32, s32))func_8002D4C8)(0x45D, 0); + D_801F82F8 = 3; + return 0; + } + goto Ltail; + } +Lload: + st = D_8011512C; +Ltail: + if (st == 4 || st == 7 || st >= 10) { + ph = &(*(u16 *)&D_80115118); + if (*ph != 0) { + *ph = *ph - 1; + goto Lmid; + } + Lreset: + (*(u16 *)&D_80115118) = 0; + if (D_80115126 == 0) { + if (D_8011512C == 4) { + return -1; + } + D_801F1838 = 0xC; + } else { + t2 = D_801F8014; + sv = t2; + if (t2 != 0 && D_8011512C == 4) { + t = (t2 == 1) ? 0x1D : 0x21; + r = 0; + D_801F1838 = t; + t = 9; + D_8011512C = t; + t = 0xFF; + Lstore: + (*(s16 *)&D_801F8010) = sv; + D_801F8309 = t; + return r; + } + D_801F1838 = 0xD; + q = &D_8011512C; + if (*q == 0xC) { + *q = 1; + return 0; + } + } + D_8011512C = 1; + return 0; + } +Lmid: + if (D_8011512C != 1) { + return 0; + } + if (pad & 0x1000) { + t = D_8011511A; + D_8011511A = t - 2; + flag = 1; + if (D_8011511A == 0 || D_8011511A >= 5) { + D_8011511A = t + 2; + } + } + if (pad & 0x4000) { + ph = &D_8011511A; + t2 = *ph; + *ph = t2 + 2; + flag = 1; + if (*ph >= 5) { + *ph = t2 - 2; + } + } + if (pad & 0x8000) { + ph = &D_8011511A; + t2 = *ph; + *ph = t2 + 1; + flag = 1; + if (*ph & 1) { + *ph = t2 - 1; + } + } + if (pad & 0x2000) { + ph = &D_8011511A; + t2 = *ph; + *ph = t2 - 1; + flag = 1; + if (!(*ph & 1)) { + *ph = t2 + 1; + } + } + r = flag; + if (r) { + ((void (*)(s32, s32))func_8002D4C8)(0x45A, 0); + } + return 0; +} + void func_801EE730(void) { typedef struct { u32 *ot; u32 pad[4]; } Env_801EFA40; /* 0x14 stride */ diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8017EA84.c b/src/ov_SC02_000/ov_SC02_000_jr_8017EA84.c index 3275bc309..a1333819c 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8017EA84.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8017EA84.c @@ -3411,6 +3411,3 @@ void func_8017F62C(s32 a0) *(u16 *)(a0 + 0xFC) = 0; } } - - -INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8017EA84", func_8017F950); diff --git a/src/ov_SC02_003/ov_SC02_003_jr_8017EA84.c b/src/ov_SC02_003/ov_SC02_003_jr_8017EA84.c index 11f130c74..d39540a3e 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_8017EA84.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_8017EA84.c @@ -3409,6 +3409,3 @@ void func_8017F62C(s32 a0) *(u16 *)(a0 + 0xFC) = 0; } } - - -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8017EA84", func_8017F950); diff --git a/src/ov_SC03_107/ov_SC03_107_jr_8015A3C8.c b/src/ov_SC03_107/ov_SC03_107_jr_8015A3C8.c index 649035b88..f1d89e844 100644 --- a/src/ov_SC03_107/ov_SC03_107_jr_8015A3C8.c +++ b/src/ov_SC03_107/ov_SC03_107_jr_8015A3C8.c @@ -9082,6 +9082,3 @@ void func_8016AB30(void *a0) { extern void (*D_80185614[])(void); D_80185614[*(u16 *)((s32)a0 + 0x2)](); } - - -INCLUDE_ASM("asm/ov_SC03_107/nonmatchings/ov_SC03_107_jr_8015A3C8", func_8016AB6C); diff --git a/src/ov_SC03_112/ov_SC03_112_jr_801817E0.c b/src/ov_SC03_112/ov_SC03_112_jr_801817E0.c index 6b268005c..357e23087 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_801817E0.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_801817E0.c @@ -3078,4 +3078,52 @@ TAIL: } -INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_801817E0", func_80181E88); + +extern void func_80182708(s32 *a0); +extern s32 func_80182944(); +extern void func_8012A828(s32*, s32); +extern void func_8012B14C(s32 a0, s32 a1); +extern void func_8012E9C0(s32 a0); +extern void func_80131E00(s32 a0, s32 a1); +extern u8 D_801A8410[]; +extern u8 D_801A8420[]; +extern u8 D_801A8430[]; +extern s32 D_801A82E8; + +void func_80181E88(s32 param_1) +{ + s32 tbl; + + func_80182708((s32 *)param_1); + switch (*(u16 *)(param_1 + 0x5e)) { + case 1: + if (*(s16 *)(param_1 + 0x60) == 0) { + *(u16 *)(param_1 + 0x76) = *(u16 *)(param_1 + 0x76) - *(s16 *)(param_1 + 0x60); + if ((s32)(*(u16 *)(param_1 + 0x76) << 16) <= 0) { + func_80131E00(param_1, 0xe); + } + func_8012E9C0(param_1); + *(s16 *)(param_1 + 0x34) = 3; + return; + } + tbl = (s32)D_801A8410; + break; + case 8: + tbl = (s32)D_801A8420; + break; + case 5: + case 0x1d: + case 0x20: + tbl = (s32)D_801A8430; + break; + case 0x32: + default: + tbl = (s32)D_801A8410; + break; + } + func_8012B14C(param_1, tbl); + ((void (*)(s32, void *))func_8012A828)(param_1, &D_801A82E8); + *(s16 *)(param_1 + 0x34) = 0; + func_80182944(param_1); +} + diff --git a/src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c b/src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c index 482521f60..4177bccf1 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c @@ -4562,877 +4562,3 @@ void func_8017EDA4(void *a0) { *(s16 *)((s32)a0 + 0xAE) = -1; } } - - -INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017EEEC); - - -extern void (*D_8019E268[])(void); - -void func_8017F09C(void *a0) { - D_8019E268[*(u16 *)((s32)a0 + 0x2)](); -} - - - -extern void (*D_8019E2A4[])(void); - -void func_8017F0D8(void *a0) { - D_8019E2A4[*(u16 *)((s32)a0 + 0x2)](); -} - - -extern s32 D_8019E1B8; -extern u8 D_8018077C[]; - -void func_8017F114(void *a0) { - if (func_8012C354((s32)a0, (s32)&D_8019E1B8) != 0) { - *(u8 *)((s32)a0 + 0xC0) = 1; - *(s16 *)((s32)a0 + 0xAE) = -1; - func_8012A828((s32 *)a0, (s32)D_8018077C); - *(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1; - *(u16 *)(*(s32 *)(a0 + 0x20) + 0x2C) |= 0x10; - *(s16 *)(*(s32 *)(a0 + 0x20) + 0x18) = 0xE00; - *(s16 *)(*(s32 *)(a0 + 0x20) + 0x1A) = 0xE00; - *(s16 *)(*(s32 *)(a0 + 0x20) + 0x1C) = 0xE00; - *(u16 *)((s32)a0 + 0xFC) = 0x300; - *(u8 *)((s32)a0 + 0x75) = 8; - } -} - - -extern s32 func_8012C354(s32 a0, s32 a1); -extern u8 D_8018077C[]; -extern u8 D_8019E270[]; -extern void func_8012A828(s32 *a0, s32 a1); - -void func_8017F1BC(arg0) -s32 arg0; -{ - - extern u8 D_8019E270[]; - s32 s0 = arg0; - - if (func_8012C354(s0, (s32)D_8019E270) != 0) { - *(u8 *)(s0 + 0xC0) = 1; - func_8012A828((s32 *)s0, (s32)D_8018077C); - *(u16 *)(s0 + 2) = *(u16 *)(s0 + 2) + 1; - *(u16 *)(*(s32 *)(s0 + 0x20) + 0x2C) = *(u16 *)(*(s32 *)(s0 + 0x20) + 0x2C) | 0x10; - *(u16 *)(*(s32 *)(s0 + 0x20) + 0x18) = 0xAAA; - *(u16 *)(*(s32 *)(s0 + 0x20) + 0x1C) = 0xAAA; - } -} - - -extern void func_8017E5D0(void); - void func_8017F240(s32 arg0) { - s32 temp_v0; - func_8017E5D0(); - temp_v0 = *(s32 *)(arg0 + 0x1c) + 1; - *(s32 *)(arg0 + 0x1c) = temp_v0; - } - - -extern void func_8016EE40(s32 a0, s32 a1, s32 a2); - extern s32 D_801A077C; - void func_8017F278(void) { - ((void (*)(void *, s32))func_8016EE40)(&D_801A077C, 0x1000000); - } - - - -extern void (*D_801A0794[])(void); - -void func_8017F2A0(void *a0) { - D_801A0794[*(u8 *)((s32)a0 + 0x216)](); -} - - -extern s32 func_80171990(u8 *a0); -extern void func_8017F5F0(s32 a0); - -void func_8017F2DC(a0) -s32 a0; -{ - s32 t; - - func_8017F5F0(a0); - t = *(s16 *)(a0 + 0x210); - if (t >= 0) { - t = 0x30; - } else { - t = -0x30; - } - *(s16 *)(a0 + 0x210) = t; - func_80171990((u8 *)a0); -} - - -extern s32 func_8017F6CC(); -extern void func_8002D4C8(s32 a0, s32 a1); -extern void func_80171928(void *a0); - -void func_8017F324(void *param) -{ - void *s0 = param; - - if (func_8017F6CC() != 0) { - func_8002D4C8(0x8B1, 0); - func_80171928(s0); - } -} - - -extern void func_8016EE40(s32 a0, s32 a1, s32 a2); -extern M2C_UNK D_801A079C; - -void func_8017F364(void) { - ((void (*)(void *, s32))func_8016EE40)(&D_801A079C, 0x1000000); -} - - - -extern void (*D_801A07A8[])(void); - -void func_8017F38C(void *a0) { - D_801A07A8[*(u8 *)((s32)a0 + 0x216)](); -} - - - -extern s32 func_80012A60(s32 a0, s32 a1); -extern s32 func_80171990(u8 *a0); -extern s32 D_801ABBD8; - -void func_8017F3C8(void *a0) -{ - register void *s3 __asm__("$19") = a0; - void *s2; - register void *p __asm__("$3"); - register s32 v1 __asm__("$3"); - register s32 v0 __asm__("$2"); - s32 bits; - register s32 s0 __asm__("$16"); - s32 s1; - - s2 = *(void **)((s32)s3 + 0x20); - func_8017F5F0(s3); - p = (*(void * *)&D_801ABBD8); - if (p == 0) { - goto END; - } - v0 = *(u16 *)((s32)s2 + 0x12) + 0x800; - p = *(void **)((s32)p + 0x20); - bits = *(u16 *)((s32)p + 0x12) & 0x400; - s0 = v0 & 0xFFF; - if (bits == 0) { - goto ELSE; - } - s1 = func_80012A60(s0, 0x400); - v0 = func_80012A60(s0, 0xC00); - v1 = (s16)s1; - v0 = (s16)v0; - v0 = (v0 < v1); - if (v0 != 0) { - goto TRUE1; - } - v0 = 0x400; - goto STORE; -TRUE1: - v0 = 0xC00; - goto STORE; -ELSE: - s1 = func_80012A60(s0, 0); - v0 = func_80012A60(s0, 0x800); - v1 = (s16)s1; - v0 = (s16)v0; - v0 = (v0 < v1); - if (v0 != 0) { - goto TRUE2; - } - *(u16 *)((s32)s2 + 0x12) = 0; - goto END; -TRUE2: - v0 = 0x800; -STORE: - *(u16 *)((s32)s2 + 0x12) = v0; -END: - func_80171990((u8 *)s3); -} - - - -extern s32 func_8017F6CC(); -extern void func_8002D4C8(s32 a0, s32 a1); -extern s32 func_80171990(u8*); - -void func_8017F4D0(void *param) -{ - void *s0 = param; - - if (func_8017F6CC() != 0) { - func_8002D4C8(0x8B1, 0); - ((void (*)(void *))func_80171990)(s0); - } -} - - -extern s32 func_80013328(s32 a0, s32 a1); -extern u8 D_801202A0[]; -extern void func_800D1724(s32 a0); -extern void func_80171928(void *a0); - -void func_8017F510(arg0) -void *arg0; -{ - u8 *p; - u8 *found; - s32 i; - s32 best; - s16 t; - - found = 0; - best = 0x7FFFFFFF; - for (i = 0; i < 0x60; i++) { - p = &D_801202A0[i * 0x10C]; - if ((*(u16 *)(p + 0) != 0) && ((*(u16 *)(p + 0x5C) & 0x80) != 0)) { - t = (s16)func_80013328((s32)arg0 + 4, (s32)p + 4); - if (t < best) { - best = t; - found = p; - } - } - } - if (found != 0) { - func_800D1724(*(s32 *)(found + 0xDC)); - } - func_80171928(arg0); -} - - -extern u8 D_801202A0[]; -extern s32 D_801ABBD8; -extern void func_8002D4C8(s32 a0, s32 a1); -extern void func_80015978(s32 a0, s32 *a1); -extern s32 func_80013328(s32 a0, s32 a1); -extern void func_8012F2E8(s32 a0, s32 a1, s32 a2); - -void func_8017F5F0(s32 arg0) -{ - s16 v; - s32 i; - s32 best; - unsigned short *p; - s32 buf[2]; - - best = 0x7FFFFFFF; - i = 0; - p = (unsigned short *)D_801202A0; - D_801ABBD8 = 0; -loop: - if (*p == 0x26E) { - v = (s16)func_80013328(arg0 + 4, (s32)(p + 2)); - if (v < best) { - best = v; - D_801ABBD8 = (s32)p; - } - } - __asm__("" :: - "r"(best)); - i++; - p += 0x86; - if (i < 0x60) { - goto loop; - } - *(s16 *)(arg0 + 0x208) = 0; - func_80015978(arg0 + 4, buf); - func_8012F2E8(D_801ABBD8, (s32)buf, arg0 + 0x20C); - *(s32 *)(arg0 + 0x204) = D_801ABBD8; - func_8002D4C8(0x8B0, 0); -} - - -extern void func_8012F14C(s32 a0, s32 a1, s32 a2); -extern void func_80015954(s32 a0, s32 a1); - -s32 func_8017F6CC(s32 param_1) { - s32 sp10[2]; - s32 p; - s32 q; - short v; - - p = *(s32 *)(param_1 + 0x204); - q = *(s32 *)(p + 0x20); - if (p != 0) { - *(u16 *)(q + 0x12) = *(u16 *)(q + 0x12) + 0x80; - func_8012F14C(q + 0x34, param_1 + 0x20C, (s32)sp10); - func_80015954((s32)sp10, param_1 + 4); - } - q = *(s32 *)(param_1 + 0x20); - *(u16 *)(q + 0x12) = *(u16 *)(q + 0x12) + 0x80; - v = *(u16 *)(param_1 + 0x208) + 0x80; - *(u16 *)(param_1 + 0x208) = v; - return v == 0x800; -} - - -extern s32 func_8002A04C(s32 arg0); -extern void func_8012C098(void *arg0); -extern void func_8002AC00(s32 arg0); - -void func_8017F760(s32 a0) { - register s32 s0 __asm__("$16"); - s0 = a0; - if (*(s16 *)(s0 + 0x100) == 0) { - func_8002A04C(a0); - } - if ((*(u8 *)(s0 + 0xC1) == 5) || (*(u8 *)(s0 + 0xC1) == 0xD) || - (*(u8 *)(s0 + 0xC1) == 0xB) || (*(u8 *)(s0 + 0xC1) == 0xE)) { - func_8002AC00(7); - } - func_8012C098((void *)s0); -} - - - - -void func_8017F7D4(s32 a0) { - SVECTOR in; - SVECTOR out; - s32 v0; - - in.vx = *(s16 *)(a0 + 0x6); - in.vy = *(s16 *)(a0 + 0xA); - in.vz = *(s16 *)(a0 + 0xE); - out = in; - out.vy += 8; - - if ((func_80133784(1, &in, (s32)&out) & 0x6000) != 0) { - v0 = 1; - } else { - func_8012B23C(a0); - v0 = 0; - } - - if (v0 == 0) { - *(s16 *)(a0 + 0x2) = 0x8; - *(s16 *)(a0 + 0x98) = 0; - return; - } - - if (*(s32 *)(a0 + 0xC4) & 4) { - func_8017F8AC(a0); - } else { - func_8017F8F8(a0); - } -} - - -extern short D_801A8F00; -extern void func_8012A828(s32*, s32); -extern void func_8012B23C(void*); - -void func_8017F8AC(s32 a0) { - *(s16 *)(a0 + 0x2) = 5; - *(s16 *)(a0 + 0x34) = 0; - *(u16 *)(a0 + 0x5C) = 0xAA10; - ((void (*)(s32, void *))func_8012A828)(a0, &D_801A8F00); - ((void (*)(s32))func_8012B23C)(a0); -} - - -#include "common.h" - -extern s32 rand(void); -extern s32 func_8012B744(void *a0, void *a1); -extern void func_8012A828(s32 *a0, s32 a1); -extern void func_8012B23C(void *a0); -extern void Square0(s32 *a0, s32 *a1); -extern u8 D_801A8AE8[]; - -void func_8017F8F8(void *param_1) { - s32 d[3]; - void *target; - - *(s16 *)((s32)param_1 + 0x2) = 1; - *(s16 *)((s32)param_1 + 0x34) = 0; - *(u16 *)((s32)param_1 + 0x5C) = 0xAA10; - *(s32 *)((s32)param_1 + 0x1C) = (rand() & 0x1F) + 0x24; - - target = (void *)((s32)param_1 + 0x88); - - d[0] = *(s16 *)((s32)param_1 + 0x6) - *(s16 *)target; - d[1] = 0; - d[2] = *(s16 *)((s32)param_1 + 0xE) - *(s16 *)((s32)param_1 + 0x8C); - Square0(&d[0], &d[0]); - - if (d[0] + d[2] > 0x8FFFF) { - *(s16 *)((s32)param_1 + 0xFC) = func_8012B744((void *)((s32)param_1 + 4), target); - } else { - register s32 t __asm__("$2") = rand() & 0x3FF; - s32 v1 = t - 0x200; - if (v1 < 0) { - v1 = t - 0x500; - } else { - v1 = t + 0x100; - } - *(s16 *)((s32)param_1 + 0xFC) = - (*(u16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12) + v1) & 0xFFF; - } - - func_8012B23C(param_1); - func_8012A828((s32 *)param_1, (s32)&D_801A8AE8); -} - - - -extern void func_8012A828(s32 *a0, s32 a1); - extern short D_801A89A0; - void func_8017FA00(short *a0) { - *(short *)((char *)a0 + 0x2) = 0x2; - *(short *)((char *)a0 + 0x34) = 0; - func_8012A828((s32 *)a0, (s32)&D_801A89A0); - } - - -extern void func_8012A828(s32 *a0, s32 a1); -extern short D_801A8B90; -extern short D_801A8C18; - -void func_8017FA30(s32 a0) { - *(s16 *)(a0 + 2) = 3; - if (*(u16 *)(a0 + 0x86) & 2) { - *(s16 *)(a0 + 0x34) = 1; - *(s32 *)(a0 + 0x1C) = 0x28; - func_8012A828((s32 *)a0, (s32)&D_801A8B90); - *(u16 *)(a0 + 0xFE) = 0; - } else { - *(s16 *)(a0 + 0x34) = 0; - func_8012A828((s32 *)a0, (s32)&D_801A8C18); - *(s32 *)(a0 + 0x1C) = 0x19; - *(u16 *)(a0 + 0x86) |= 2; - } -} - - -#include "common.h" - -/* func_8017FAB4 -- state handler (state u16 at +0x34: 0 = wind-up, 1 = active). */ - -extern s32 func_8012B8E4(s32 a0, s32 a1); -extern s32 func_8012BEE8(s32 a0); -extern void func_8012A828(s32 *a0, s32 a1); -extern void func_8012B178(s32 a0, s32 a1); -extern s32 func_8012CBA4(s32 a0); -extern void func_8012ADE4(u8 *a0); -extern s32 func_8012BD3C(s32 a0, s32 a1, s32 a2); -extern void func_8002D4C8(s32 a0, s32 a1); -extern void func_80142414(s32 a0, s16 a1); -extern s32 func_80143B6C(s32 a0, s32 a1); -extern void func_8017F8F8(); -extern void func_8017FC7C(); - -extern short D_801A8B90; -extern short D_801A8C18; -extern s32 D_801A07B8; - -void func_8017FAB4(s32 a0) -{ - s32 s0 = a0; - u16 st; - s32 v; - unsigned short *p; - s16 t; - - st = *(u16 *)(s0 + 0x34); - switch (st) { - case 0: - v = func_8012B8E4(s0, 4); - p = (unsigned short *)(*(s32 *)(s0 + 0x20) + 0x12); - *p = *p + v; - - if (*(s32 *)(s0 + 0x1C) == 0xF) { - func_80142414(s0, -0x78); - func_8002D4C8(0x6A9, 0); - } - - if (func_8012BEE8(s0) != 0) { - *(u16 *)(s0 + 0x2) = 3; - if ((*(u16 *)(s0 + 0x86) & 0x2) != 0) { - *(u16 *)(s0 + 0x34) = 1; - *(s32 *)(s0 + 0x1C) = 0x28; - func_8012A828((s32 *)s0, (s32)((u8 *)&D_801A8B90)); - *(u16 *)(s0 + 0xFE) = 0; - } else { - *(u16 *)(s0 + 0x34) = 0; - func_8012A828((s32 *)s0, (s32)((u8 *)&D_801A8C18)); - *(s32 *)(s0 + 0x1C) = 0x19; - *(u16 *)(s0 + 0x86) = *(u16 *)(s0 + 0x86) | 0x2; - } - } - break; - case 1: - if (*(s32 *)(s0 + 0x1C) >= 0x16) { - v = func_8012B8E4(s0, 6); - p = (unsigned short *)(*(s32 *)(s0 + 0x20) + 0x12); - *p = *p + v; - } - - func_8012B178(s0, D_801A07B8); - - if (func_8012CBA4(s0) != 0x2000) { - func_8012ADE4((u8 *)s0); - } - - t = *(u16 *)(s0 + 0xFE) - 1; - *(u16 *)(s0 + 0xFE) = t; - if (t <= 0) { - func_80143B6C(s0, 0); - *(u16 *)(s0 + 0xFE) = 8; - } - - if (func_8012BEE8(s0) != 0) { - func_8017F8F8(s0); - } - - if (func_8012BD3C(s0, 0x200, 0x1000) != 0) { - func_8017FC7C(s0); - } - break; - } -} - - -extern char D_801A8CE8[]; -extern void func_8012A828(s32 *a0, s32 a1); - -void func_8017FC7C(param_1) -int param_1; -{ - *(short *)(param_1 + 2) = 4; - *(short *)(param_1 + 0x34) = 0; - func_8012A828(param_1, &D_801A8CE8); - *(int *)(param_1 + 0x1c) = 0x14; -} - - -extern u8 D_801A0848[]; -extern s32 D_801A88F8; -extern s32 D_801A8DB0; -extern s16 D_801A89A0; -extern s32 func_8012B8E4(s32 a0, s32 a1); -extern s32 func_8012BEE8(s32 a0); -extern void func_8012A828(s32 *a0, s32 a1); -extern s32 func_8012BD3C(s32 a0, s32 a1, s32 a2); -extern s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3); - -void func_8017FCC0(s32 s0) { - u16 st; - s32 v0; - s32 a0; - - st = *(u16 *)(s0 + 0x34); - switch (st) { - case 0: - if (*(s32 *)(s0 + 0x1C) == 7) { - func_8012D5E4(s0, (s32)D_801A0848, (s32)(D_801A0848 + 8), 0xB); - } - break; - case 1: - v0 = func_8012B8E4(s0, 6); - a0 = *(s32 *)(s0 + 0x20); - *(u16 *)((s32)a0 + 0x12) = *(u16 *)((s32)a0 + 0x12) + v0; - break; - case 2: - if (*(s32 *)(s0 + 0x1C) == 10) { - func_8012D5E4(s0, (s32)D_801A0848, (s32)(D_801A0848 + 8), 0xB); - } - break; - } - - if (func_8012BEE8(s0) != 0) { - st = *(u16 *)(s0 + 0x34); - switch (st) { - case 0: - if (func_8012BD3C(s0, 0x400, 0x4000) != 0) { - *(s16 *)(s0 + 0x34) = 1; - func_8012A828((s32 *)s0, (s32)&D_801A88F8); - *(s32 *)(s0 + 0x1C) = 0xA; - } else { - *(u16 *)(s0 + 2) = 2; - *(s16 *)(s0 + 0x34) = 0; - func_8012A828((s32 *)s0, (s32)&D_801A89A0); - } - break; - case 1: - *(s16 *)(s0 + 0x34) = 2; - *(s32 *)(s0 + 0x1C) = 0x18; - func_8012A828((s32 *)s0, (s32)&D_801A8DB0); - break; - case 2: - *(u16 *)(s0 + 2) = 2; - *(s16 *)(s0 + 0x34) = 0; - func_8012A828((s32 *)s0, (s32)&D_801A89A0); - break; - } - } -} - - -extern s32 D_801A085C[]; -extern void func_8012A828(s32 *a0, s32 a1); -extern void func_8012B2CC(s32 a0); -extern void func_8012B200(u8 *a0); -extern void func_8012B178(s32 a0, s32 a1); - -void func_8017FE34(s32 arg0) { - s32 *tbl = D_801A085C; - - if ((*(u16 *)(arg0 + 0x70) & 0x2000) == 0) { - tbl += 3; - } - *(u16 *)(arg0 + 2) = 7; - func_8012A828((s32 *)arg0, tbl[0]); - func_8012B2CC(arg0); - func_8012B200((u8 *)arg0); - func_8012B178(arg0, tbl[1]); - *(s32 *)(arg0 + 0x1C) = tbl[2]; -} - - -#include "common.h" - -extern s32 D_801A0874[]; -extern s32 func_8012C044(s32 arg0); -extern void func_8002AC00(s32 arg0); -extern void func_8012C098(void *arg0); - -void func_8017FEB4(s32 arg0) { - void (*handler)(s32); - register u8 val __asm__("$3"); - - handler = (void (*)(s32))D_801A0874[((u16 *)arg0)[1]]; - handler(arg0); - - if (((u16 *)arg0)[0] == 0) - return; - - if (func_8012C044(arg0) == 0) - return; - - *(u16 *)(arg0 + 0x100) = 1; - - val = ((u8 *)arg0)[0xC1]; - if (val == 5 || val == 0xD || val == 0xB || val == 0xE) { - func_8002AC00(0x7); - } - - func_8012C098((void *)arg0); -} - - -extern void func_8002D4C8(s32 arg0, s32 arg1); - void func_8017FF58(void) { - func_8002D4C8(0x6AA, 0); - } - - - - -extern void func_8002D4C8(s32 arg0, s32 arg1); - void func_8017FF7C(u8 *a0) { - if (*(u8 *)(a0 + 0x5E) == 0xC) { - func_8002D4C8(0x9DA, 0); - } - } - - -extern void func_8012CBF4(s32 a0); -extern void func_8017F8F8(); - -void func_8017FFAC(s32 a0) -{ - func_8012CBF4(a0); - if (*(u16 *)(a0 + 0x72) & 0x4000) { - func_8017F8F8(a0); - } -} - - -extern s32 func_8012B608(s32 a0, s32 a1, s32 a2); -extern void func_8012B178(s32 a0, s32 a1); -extern s32 func_8012CBA4(s32 a0); -extern void func_8012ADE4(u8 *a0); -extern s32 func_8012BEE8(s32 a0); -extern void func_8017FA00(short *a0); -extern s32 D_801A07B4; - -void func_8017FFF0(s32 a0) { - s32 ret; - s32 v0; - - if (*(s32 *)(a0 + 0x1C) >= 4) { - v0 = *(s32 *)(a0 + 0x20); - ret = func_8012B608(*(s16 *)(v0 + 0x12), *(s16 *)(a0 + 0xFC), 8); - *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) += ret; - } - func_8012B178(a0, D_801A07B4); - if (func_8012CBA4(a0) != 0x2000) { - func_8012ADE4((u8 *)a0); - } - if (func_8012BEE8(a0) != 0) { - func_8017FA00((short *)a0); - } -} - - - -extern void Square0(s32 *a0, s32 *a1); -extern s32 func_8012BCCC(s32 a0); -extern void func_8017FA30(s32 a0); -extern void func_8017F8F8(); - -void func_80180098(s32 a0) -{ - s32 s0 = a0; - s32 d[3]; - - if (*(u16 *)(s0 + 0x34) == 0 && (*(u16 *)(s0 + 0x72) & 0x4000)) { - d[0] = *(s16 *)(s0 + 0x6) - *(s16 *)(s0 + 0x88); - d[1] = 0; - d[2] = *(s16 *)(s0 + 0xE) - *(s16 *)(s0 + 0x8C); - Square0(d, d); - if (d[0] + d[2] <= 0x8FFFF && func_8012BCCC(s0) <= 0x10000) { - func_8017FA30(s0); - } else { - func_8017F8F8(s0); - } - } -} - - -extern s32 D_801A0858; -extern s32 func_8012BCCC(s32 a0); -extern void func_8012E88C(s32 a0); -extern void func_8017FE34(s32 a0); - -void func_8018015C(void *a0) { - s32 s0 = (s32)a0; - s32 v0 = func_8012BCCC(s0); - if (v0 < D_801A0858) { - func_8012E88C(s0); - func_8017FE34(s0); - } -} - - - -extern void func_8012AD80(s32 a0); -extern s32 func_8012BEE8(s32 a0); -extern s32 func_80143B6C(s32 a0, s32 a1); -extern void func_8012A828(s32*, s32); - -extern s16 D_801A8B90; -extern s16 D_801A8C18; - -void func_801801AC(s32 a0) { - s32 v0; - - func_8012AD80(a0); - if (*(u16 *)(a0 + 0x70) & 0x2000) { - v0 = *(u16 *)(a0 + 0xFE) - 1; - *(u16 *)(a0 + 0xFE) = v0; - if ((s16)v0 <= 0) { - func_80143B6C(a0, 0); - *(u16 *)(a0 + 0xFE) = 8; - } - } - if (func_8012BEE8(a0)) { - *(u16 *)(a0 + 0x86) |= 2; - *(s16 *)(a0 + 0x2) = 3; - if (*(u16 *)(a0 + 0x86) & 2) { - *(s16 *)(a0 + 0x34) = 1; - *(s32 *)(a0 + 0x1C) = 0x28; - ((void (*)(s32, void *))func_8012A828)(a0, &D_801A8B90); - *(u16 *)(a0 + 0xFE) = 0; - } else { - *(s16 *)(a0 + 0x34) = 0; - ((void (*)(s32, void *))func_8012A828)(a0, &D_801A8C18); - *(s32 *)(a0 + 0x1C) = 0x19; - *(u16 *)(a0 + 0x86) |= 2; - } - } -} - - -#include "common.h" - -extern s32 func_8002A04C(s32); -extern void func_8012CBF4(s32); -extern void func_8012C098(void*); -extern void func_80131E00(struct S80131E00 *a0, s32 a1); -extern void func_8002AC00(s32 a0); -extern void func_8017F8F8(); - -void func_80180298(s32 a0) { - s16 field_a; - s16 field_100; - u8 state; - s32 result; - - field_a = *(s16 *)(a0 + 0xA); - if (field_a >= 0x10) { - field_100 = *(s16 *)(a0 + 0x100); - if (field_100 == 0) { - ((void (*)(s32))func_8002A04C)(a0); - } - state = *(u8 *)(a0 + 0xC1); - if (state == 5 || state == 0xD || state == 0xB || state == 0xE) { - func_8002AC00(7); - } - ((void (*)(s32))func_8012C098)(a0); - } else { - result = ((s32 (*)(s32))func_8012CBF4)(a0); - if ((result & 0x2000) != 0) { - if ((result & 0x1000) != 0) { - func_80131E00((struct S80131E00 *)a0, 0x12); - } else { - func_8017F8F8(a0); - } - } - } -} - - -extern s32 D_801A07CC; -extern u8 D_801A0800[]; -extern s32 func_8012C354(s32 a0, s32 a1); -extern s32 func_80143970(s32 a0); -extern s32 func_8012B030(u8 *a0); -extern void func_8012A828(s32 *a0, s32 a1); -extern short D_801A89A0; -extern void func_8012E8A8(u8 *a0); -extern void func_8017F8F8(); - -void func_80180360(void *a0) { - if (func_8012C354((s32)a0, (s32)&D_801A07CC) != 0) { - *(u8 *)((s32)a0 + 0xC0) = 1; - *(s32 *)((s32)a0 + 0xB4) = -1; - *(u8 *)((s32)a0 + 0xC1) = 0; - *(s32 *)((s32)a0 + 0xBC) = (s32)D_801A0800; - func_80143970((s32)a0); - func_8012B030((u8 *)a0); - if (*(u16 *)((s32)a0 + 0x70) & 0x6000) { - *(u16 *)((s32)a0 + 0x2) = 6; - func_8012A828((s32 *)a0, (s32)&D_801A89A0); - func_8012E8A8(a0); - } else { - func_8017F8F8(a0); - } - } -} - - - - - diff --git a/src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c b/src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c index 0921a7377..a7f753e72 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c @@ -4776,7 +4776,58 @@ s32 func_8017F830(s16 *a0) { } -INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_8017BEBC", func_8017F85C); + + + +void func_8017F85C(void *a0) { + extern u16 D_801AD2DC[]; + extern u16 D_801AD2DE[]; + extern u16 D_801AD2E0[]; + extern u8 D_801AD394[]; + extern u8 D_80063548[]; + extern void func_8012C1B8(void); + extern void func_8012CAE4(void*); + extern void func_8001C2C4(s32 a0); + extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2); + extern void func_8017F9FC(void*); + extern void func_801800AC(s32); + s32 v0; + + if ((v0 = *(s32 *)((s32)a0 + 0x20) = ((s32 (*)(void))func_8012C1B8)()) == 0) { + ((void (*)(s32))func_8012CAE4)((s32)a0); + return; + } + + func_8001C2C4(v0); + + *(s32 *)(*(s32 *)((s32)a0 + 0x20) + 0x20) = (s32)D_80063548; + + switch (*(s16 *)((s32)a0 + 0x70)) { + case 0: + *(u16 *)((s32)a0 + 0x6) += D_801AD2DC[*(s16 *)((s32)a0 + 0x70) * 4]; + *(u16 *)((s32)a0 + 0xA) += D_801AD2DE[*(s16 *)((s32)a0 + 0x70) * 4]; + *(u16 *)((s32)a0 + 0xE) += D_801AD2E0[*(s16 *)((s32)a0 + 0x70) * 4]; + *(s32 *)(*(s32 *)((s32)a0 + 0x20) + 0x28) = 0x2000100; + *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x2C) |= 0x90; + *(s32 *)(*(s32 *)((s32)a0 + 0x20) + 0x80) = (s32)D_801AD394; + *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x18) = 0x1040; + *(s32 *)((s32)a0 + 0xCC) = func_8012C658(0x2F4, 1, (s32)a0); + *(s32 *)((s32)a0 + 0xD0) = func_8012C658(0x2F4, 2, (s32)a0); + *(s32 *)((s32)a0 + 0xD4) = func_8012C658(0x2F4, 3, (s32)a0); + *(s32 *)((s32)a0 + 0xD8) = func_8012C658(0x2F4, 4, (s32)a0); + ((void (*)(s32))func_8017F9FC)((s32)a0); + break; + case 1: + case 2: + *(s32 *)((s32)a0 + 0xCC) = func_8012C658(0x2F9, *(s16 *)((s32)a0 + 0x70) - 1, (s32)a0); + /* fallthrough */ + case 3: + case 4: + ((void (*)(void *))func_801800AC)((void *)a0); + break; + } +} + diff --git a/src/ov_SC06_024/ov_SC06_024_jr_80181D34.c b/src/ov_SC06_024/ov_SC06_024_jr_80181D34.c index bc27c89bc..b7621f9d8 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_80181D34.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_80181D34.c @@ -3595,7 +3595,97 @@ extern void func_8012AD44(s32 *a0, s16 a1); } -INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_jr_80181D34", func_801831A8); + + +void func_801831A8(s32 s0) +{ + extern void func_8001C214(s32 a0, s32 a1); + extern void func_8001C1E4(void *a0, void *a1); + extern void func_8012AD44(s32 *a0, s16 a1); + extern u8 D_801AC4D8[]; + struct RowC_80180CD0 { void *p; }; + extern struct RowC_80180CD0 D_801AC520[]; + + register s32 a0 __asm__("$4"); + register s32 a1 __asm__("$5"); + s32 v1; + + a0 = *(s32 *)(s0 + 0x20); + a1 = (s32)D_801AC520[*(s16 *)(s0 + 0x70)].p; + func_8001C214(a0, a1); + + v1 = *(s32 *)(s0 + 0x20); + *(u16 *)(v1 + 0x2C) = *(u16 *)(v1 + 0x2C) | 0x90; + v1 = *(s32 *)(s0 + 0x20); + *(s32 *)(v1 + 0x80) = (s32)D_801AC4D8; + v1 = *(s32 *)(s0 + 0x20); + *(u16 *)(v1 + 0x18) = 0x1040; + + switch (*(s16 *)(s0 + 0x70)) { + case 0: + case 1: + *(s16 *)(s0 + 6) = -0x88; + *(u16 *)(s0 + 10) = 0; + if (*(s16 *)(s0 + 0x70) == 0) { + *(s16 *)(s0 + 14) = 0x20; + } else { + *(s16 *)(s0 + 14) = -0x20; + } + a0 = *(s32 *)(s0 + 0x20); + a1 = *(s32 *)(*(s32 *)(s0 + 0x64) + 0x20); + func_8001C1E4((void *)a0, (void *)a1); + a0 = s0; + a1 = 1; + *(u16 *)(a0 + 0x100) = 0; + *(s32 *)(a0 + 0x1C) = 0; + break; + case 2: + case 3: + *(u16 *)(*(s32 *)(s0 + 0x20) + 0x18) = 0x1300; + *(u16 *)(*(s32 *)(s0 + 0x20) + 0x1A) = 0x1300; + *(s32 *)(s0 + 0xCC) = *(s32 *)(s0 + 0x64); + *(u16 *)(s0 + 0xE) = *(u16 *)(s0 + 0xE) - 0x20; + if (*(s32 *)(s0 + 0x6C) != 0) { + func_801831A8(*(s32 *)(s0 + 0x6C)); + } + *(u16 *)(s0 + 0x54) = 0x80; + a0 = s0; + a1 = 2; + break; + case 4: + case 5: + *(s32 *)(s0 + 0xCC) = *(s32 *)(*(s32 *)(s0 + 0x64) + 0xCC); + a0 = *(s32 *)(s0 + 0x20); + a1 = *(s32 *)(*(s32 *)(s0 + 0x64) + 0x20); + func_8001C1E4((void *)a0, (void *)a1); + *(u16 *)(s0 + 0xE) = 0; + *(u16 *)(s0 + 0xA) = 0; + *(u16 *)(s0 + 6) = 0; + if (*(s32 *)(s0 + 0xD0) != 0) { + func_801831A8(*(s32 *)(s0 + 0xD0)); + } + *(s32 *)(s0 + 0x1C) = 9; + a0 = s0; + a1 = 4; + break; + case 6: + *(s32 *)(s0 + 0xCC) = *(s32 *)(*(s32 *)(s0 + 0x64) + 0xCC); + *(u16 *)(s0 + 0xE) = 0; + *(u16 *)(s0 + 0xA) = 0; + *(u16 *)(s0 + 6) = 0; + a0 = *(s32 *)(s0 + 0x20); + a1 = *(s32 *)(*(s32 *)(s0 + 0x64) + 0x20); + func_8001C1E4((void *)a0, (void *)a1); + a0 = s0; + a1 = 3; + break; + default: + return; + } + + ((void (*)(s32, s32))func_8012AD44)((void *)a0, a1); +} + extern void (*D_801AC564[])(void); diff --git a/src/ov_SC07_006/ov_SC07_006_jr_8015C32C.c b/src/ov_SC07_006/ov_SC07_006_jr_8015C32C.c index 507df78ab..8da268a29 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_8015C32C.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_8015C32C.c @@ -8222,6 +8222,3 @@ void func_8016AB30(void *a0) { extern void (*D_8018D578[])(void); D_8018D578[*(u16 *)((s32)a0 + 0x2)](); } - - -INCLUDE_ASM("asm/ov_SC07_006/nonmatchings/ov_SC07_006_jr_8015C32C", func_8016AB6C); diff --git a/src/ov_SC07_007/ov_SC07_007_jr_8015C32C.c b/src/ov_SC07_007/ov_SC07_007_jr_8015C32C.c index 1e975affe..bc81f2bbf 100644 --- a/src/ov_SC07_007/ov_SC07_007_jr_8015C32C.c +++ b/src/ov_SC07_007/ov_SC07_007_jr_8015C32C.c @@ -8151,6 +8151,3 @@ void func_8016AB30(void *a0) { extern void (*D_8018609C[])(void); D_8018609C[*(u16 *)((s32)a0 + 0x2)](); } - - -INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8015C32C", func_8016AB6C); diff --git a/src/ov_SC07_010/ov_SC07_010_jr_8015C32C.c b/src/ov_SC07_010/ov_SC07_010_jr_8015C32C.c index 8824678e1..1bd6551f7 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_8015C32C.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_8015C32C.c @@ -7423,6 +7423,3 @@ void func_8016AB30(void *a0) { extern void (*D_8018512C[])(void); D_8018512C[*(u16 *)((s32)a0 + 0x2)](); } - - -INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_8015C32C", func_8016AB6C); diff --git a/src/ov_SC07_011/ov_SC07_011_jr_8015C32C.c b/src/ov_SC07_011/ov_SC07_011_jr_8015C32C.c index bdcc427eb..66569aa54 100644 --- a/src/ov_SC07_011/ov_SC07_011_jr_8015C32C.c +++ b/src/ov_SC07_011/ov_SC07_011_jr_8015C32C.c @@ -8152,6 +8152,3 @@ void func_8016AB30(void *a0) { extern void (*D_801817EC[])(void); D_801817EC[*(u16 *)((s32)a0 + 0x2)](); } - - -INCLUDE_ASM("asm/ov_SC07_011/nonmatchings/ov_SC07_011_jr_8015C32C", func_8016AB6C);