feat(decomp): parallel gate — 13 fns across 13 binaries (12 workers)

md_SC03_135    func_801E38B4
  md_SC05_026    func_801EE0D4
  ov_SC03_107    func_8016AB6C
  ov_SC02_000    func_8017F950
  ov_SC02_003    func_8017F950
  ov_SC03_112    func_80181E88
  ov_SC07_007    func_8016AB6C
  ov_SC07_010    func_8016AB6C
  ov_SC07_006    func_8016AB6C
  ov_SC06_011    func_8017EEEC
  ov_SC07_011    func_8016AB6C
  ov_SC06_024    func_801831A8
  ov_SC06_022    func_8017F85C
This commit is contained in:
Drew T
2026-09-01 14:18:57 -06:00
parent 860f866f6e
commit f164135fd9
25 changed files with 633 additions and 918 deletions
+12 -10
View File
@@ -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
+4 -1
View File
@@ -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
+4 -1
View File
@@ -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
+2
View File
@@ -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)
+1 -2
View File
@@ -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
+3 -1
View File
@@ -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
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+2
View File
@@ -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)
+2
View File
@@ -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)
+2
View File
@@ -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)
+2
View File
@@ -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)
+126 -1
View File
@@ -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"
+279 -2
View File
@@ -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 */
@@ -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);
@@ -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);
@@ -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);
+49 -1
View File
@@ -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);
}
-874
View File
@@ -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);
}
}
}
+52 -1
View File
@@ -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;
}
}
+91 -1
View File
@@ -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);
@@ -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);
@@ -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);
@@ -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);
@@ -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);