mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 13:33:34 -04:00
feat(phase-30 S48-T6): propagate func_80184938 to its zero-crack siblings
This commit is contained in:
+2
-2
@@ -1983,7 +1983,7 @@ ov_SC03_094_ELF := $(ov_SC03_094_OUT).elf
|
||||
ov_SC03_094_MAPFILE := $(ov_SC03_094_OUT).map
|
||||
ov_SC03_094_LD_SCRIPT := $(ov_SC03_094_OUT).ld
|
||||
ov_SC03_094_SPLAT_YAML := config/splat.ov_SC03_094.yaml
|
||||
ov_SC03_094_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_094.o,ov_SC03_094_jr_8012ACE0.o,tail2.data.o,ov_SC03_094_jr_80135888.o,tail3.data.o,ov_SC03_094_jr_80135A4C.o,tail4.data.o,ov_SC03_094_jr_80135D20.o,tail5.data.o,ov_SC03_094_jr_801380E0.o,ov_SC03_094_o0c.o,tail6.data.o,ov_SC03_094_jr_8013F350.o,tail7.data.o,ov_SC03_094_jr_8013FFD8.o,tail8.data.o,ov_SC03_094_jr_80140608.o,tail9.data.o,ov_SC03_094_jr_8015444C.o,ov_SC03_094_jr_80154C24.o,ov_SC03_094_jr_801588CC.o,ov_SC03_094_jr_80159C84.o,tail10.data.o,ov_SC03_094_jr_8015A3C8.o,tail11.data.o,ov_SC03_094_jr_8015AE2C.o,tail12.data.o,ov_SC03_094_jr_8015C32C.o,tail13.data.o,ov_SC03_094_jr_8016AB6C.o,tail14.data.o,ov_SC03_094_jr_80171B4C.o,ov_SC03_094_jr_801734BC.o,tail15.data.o,ov_SC03_094_jr_801789AC.o,ov_SC03_094_jr_80178D40.o,tail16.data.o,ov_SC03_094_jr_8017A4AC.o,tail17.data.o,ov_SC03_094_jr_8017AE2C.o,ov_SC03_094_jr_8017BEBC.o,tail18.data.o,ov_SC03_094_jr_8018501C.o,ov_SC03_094_jr_801873D8.o,tail19.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve
|
||||
ov_SC03_094_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_094.o,ov_SC03_094_jr_8012ACE0.o,tail2.data.o,ov_SC03_094_jr_80135888.o,tail3.data.o,ov_SC03_094_jr_80135A4C.o,tail4.data.o,ov_SC03_094_jr_80135D20.o,tail5.data.o,ov_SC03_094_jr_801380E0.o,ov_SC03_094_o0c.o,tail6.data.o,ov_SC03_094_jr_8013F350.o,tail7.data.o,ov_SC03_094_jr_8013FFD8.o,tail8.data.o,ov_SC03_094_jr_80140608.o,tail9.data.o,ov_SC03_094_jr_8015444C.o,ov_SC03_094_jr_80154C24.o,ov_SC03_094_jr_801588CC.o,ov_SC03_094_jr_80159C84.o,tail10.data.o,ov_SC03_094_jr_8015A3C8.o,tail11.data.o,ov_SC03_094_jr_8015AE2C.o,tail12.data.o,ov_SC03_094_jr_8015C32C.o,tail13.data.o,ov_SC03_094_jr_8016AB6C.o,tail14.data.o,ov_SC03_094_jr_80171B4C.o,ov_SC03_094_jr_801734BC.o,tail15.data.o,ov_SC03_094_jr_801789AC.o,ov_SC03_094_jr_80178D40.o,tail16.data.o,ov_SC03_094_jr_8017A4AC.o,tail17.data.o,ov_SC03_094_jr_8017AE2C.o,ov_SC03_094_jr_8017BEBC.o,ov_SC03_094_jr_8018501C.o,ov_SC03_094_jr_801873D8.o,tail18.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve
|
||||
build/src/ov_SC03_094/ov_SC03_094.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14
|
||||
build/src/ov_SC03_094/ov_SC03_094_jr_8012ACE0.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0xcc,+0xe0
|
||||
build/src/ov_SC03_094/ov_SC03_094_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18
|
||||
@@ -1996,7 +1996,7 @@ build/src/ov_SC03_094/ov_SC03_094_jr_80159C84.o: JTBL_PADS := 0,4 # §8e pads (
|
||||
build/src/ov_SC03_094/ov_SC03_094_jr_8015AE2C.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC03_094/ov_SC03_094_jr_80178D40.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x178
|
||||
build/src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20,+0x38
|
||||
build/src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.o: JTBL_PADS := 0,0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20,+0x38,+0x4c
|
||||
build/src/ov_SC03_094/ov_SC03_094_o0c.o: JTBL_PADS := 0,4,4,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x38,+0xa8,+0x118
|
||||
ov_SC03_094_CHECK_SHA := config/check.ov_SC03_094.sha
|
||||
ov_SC03_094_SYMBOLS := config/symbols.ov_SC03_094.txt
|
||||
|
||||
@@ -165,10 +165,9 @@ segments:
|
||||
- [0xa9bdc, data, tail17]
|
||||
- [0xa9be0, .rodata, ov_SC03_094_jr_8017AE2C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xa9bf4, .rodata, ov_SC03_094_jr_8017BEBC] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xa9c40, data, tail18]
|
||||
- [0xa9c58, .rodata, ov_SC03_094_jr_8018501C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xa9c70, .rodata, ov_SC03_094_jr_801873D8] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xa9c84, data, tail19]
|
||||
- [0xa9c84, data, tail18]
|
||||
- [0xAB13C, bin, trailing] # final 3 bytes (EOF not 4-aligned; spimdisasm drops a partial word)
|
||||
- [0xAB13F] # EOF marker = the 0.4.dec byte length
|
||||
# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes
|
||||
|
||||
@@ -6097,7 +6097,188 @@ INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_8017BEBC", func_80183CC
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_8017BEBC", func_80183D68);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_8017BEBC", func_80183E70);
|
||||
|
||||
extern s32 func_80132EF4(s32 a0, s32 a1);
|
||||
extern s32 func_8004787C(s32 a0);
|
||||
extern s32 func_80047948(s32 a0);
|
||||
extern s32 rand(void);
|
||||
|
||||
void func_80183E70(s32 a0, s32 a1) {
|
||||
s32 p;
|
||||
s32 i;
|
||||
s32 t;
|
||||
|
||||
switch (a1) {
|
||||
case 0:
|
||||
i = 0;
|
||||
do {
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s32 *)(p + 0x10) = func_8004787C(i) << 8;
|
||||
*(s32 *)(p + 0x18) = func_80047948(i) << 8;
|
||||
*(u16 *)(p + 0xA) += 0x60;
|
||||
}
|
||||
i += 0x200;
|
||||
} while (i < 0x1000);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
i = 0;
|
||||
do {
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s32 *)(p + 0x10) = func_8004787C(i) << 8;
|
||||
*(s32 *)(p + 0x14) = func_80047948(i) << 8;
|
||||
*(u16 *)(p + 0xE) += 0x60;
|
||||
}
|
||||
i += 0x200;
|
||||
} while (i < 0x1000);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
i = 0;
|
||||
do {
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s32 *)(p + 0x10) = func_8004787C(i) << 8;
|
||||
*(s32 *)(p + 0x14) = func_80047948(i) << 8;
|
||||
*(u16 *)(p + 0xE) -= 0x60;
|
||||
}
|
||||
i += 0x200;
|
||||
} while (i < 0x1000);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
i = 0;
|
||||
do {
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s32 *)(p + 0x14) = func_8004787C(i) << 8;
|
||||
*(s32 *)(p + 0x18) = func_80047948(i) << 8;
|
||||
*(u16 *)(p + 0x6) += 0x60;
|
||||
}
|
||||
i += 0x200;
|
||||
} while (i < 0x1000);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
i = 0;
|
||||
do {
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s32 *)(p + 0x14) = func_8004787C(i) << 8;
|
||||
*(s32 *)(p + 0x18) = func_80047948(i) << 8;
|
||||
*(u16 *)(p + 0x6) -= 0x60;
|
||||
}
|
||||
i += 0x200;
|
||||
} while (i < 0x1000);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
t = *(s16 *)(a0 + 0xFC);
|
||||
if (t == 1) {
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s16 *)(p + 0x12) = 0x10;
|
||||
*(u16 *)(p + 0xA) += 0x60;
|
||||
*(u16 *)(p + 0xE) += 0x30;
|
||||
*(u16 *)(p + 0x6) += rand() & 0x3F;
|
||||
}
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s16 *)(p + 0x12) = -0x10;
|
||||
*(u16 *)(p + 0xA) += 0x60;
|
||||
*(u16 *)(p + 0xE) += 0x30;
|
||||
*(u16 *)(p + 0x6) -= rand() & 0x3F;
|
||||
}
|
||||
} else if (t == 2) {
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s16 *)(p + 0x12) = 0x10;
|
||||
*(u16 *)(p + 0xA) += 0x60;
|
||||
*(u16 *)(p + 0xE) -= 0x30;
|
||||
*(u16 *)(p + 0x6) += rand() & 0x3F;
|
||||
}
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s16 *)(p + 0x12) = -0x10;
|
||||
*(u16 *)(p + 0xA) += 0x60;
|
||||
*(u16 *)(p + 0xE) -= 0x30;
|
||||
*(u16 *)(p + 0x6) -= rand() & 0x3F;
|
||||
}
|
||||
} else if (t == 3) {
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s16 *)(p + 0x1A) = 0x10;
|
||||
*(u16 *)(p + 0xA) += 0x60;
|
||||
*(u16 *)(p + 0x6) += 0x30;
|
||||
*(u16 *)(p + 0xE) += rand() & 0x3F;
|
||||
}
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s16 *)(p + 0x1A) = -0x10;
|
||||
*(u16 *)(p + 0xA) += 0x60;
|
||||
*(u16 *)(p + 0x6) += 0x30;
|
||||
*(u16 *)(p + 0xE) -= rand() & 0x3F;
|
||||
}
|
||||
} else if (t == 4) {
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s16 *)(p + 0x1A) = 0x10;
|
||||
*(u16 *)(p + 0xA) += 0x60;
|
||||
*(u16 *)(p + 0x6) -= 0x30;
|
||||
*(u16 *)(p + 0xE) += rand() & 0x3F;
|
||||
}
|
||||
p = func_80132EF4(a0, 0x40);
|
||||
if (p != 0) {
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = 0x7000;
|
||||
*(s16 *)(*(s32 *)(p + 0x20) + 0x1C) = 0x7000;
|
||||
*(s16 *)(p + 0x1A) = -0x10;
|
||||
*(u16 *)(p + 0xA) += 0x60;
|
||||
*(u16 *)(p + 0x6) -= 0x30;
|
||||
*(u16 *)(p + 0xE) -= rand() & 0x3F;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_8017BEBC", func_801844C8);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user