mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-27 14:02:04 -04:00
feat(decomp): ox wave bz overlays — 21 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
This commit is contained in:
@@ -4146,6 +4146,7 @@ build/src/ov_SC06_011/ov_SC06_011_jr_80159C84.o: JTBL_PADS := 0,4 # §8e pads (
|
||||
build/src/ov_SC06_011/ov_SC06_011_jr_8015AE2C.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC06_011/ov_SC06_011_jr_80178D40.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x178
|
||||
build/src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC06_011/ov_SC06_011_o0c.o: JTBL_PADS := 0,4,4,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x38,+0xa8,+0x118
|
||||
ov_SC06_011_CHECK_SHA := config/check.ov_SC06_011.sha
|
||||
ov_SC06_011_SYMBOLS := config/symbols.ov_SC06_011.txt
|
||||
|
||||
@@ -163,7 +163,7 @@ 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)
|
||||
- [0x8270c, data, tail18]
|
||||
- [0x82728, 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
|
||||
|
||||
@@ -3191,7 +3191,23 @@ INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017CDE
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017CE2C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017CE74);
|
||||
extern void func_8002931C(s32);
|
||||
extern s32 D_801ABBF4;
|
||||
extern u8 *D_801274C8;
|
||||
extern void *D_801274CC;
|
||||
extern u8 D_80184664;
|
||||
extern void (*D_801846B4[])(void);
|
||||
extern int func_8017DA88(int);
|
||||
|
||||
void func_8017CE74(void)
|
||||
{
|
||||
func_8002931C(0x1A40000);
|
||||
D_801274C8 = (u8 *)&D_80184664;
|
||||
D_801ABBF4 = 0;
|
||||
D_801274CC = (void *)&D_801846B4;
|
||||
func_8017DA88(3);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8002931C(s32);
|
||||
extern s32 D_801ABBF4;
|
||||
@@ -3353,7 +3369,33 @@ void func_8017D274(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017D29C);
|
||||
void func_8017D29C(void) {
|
||||
extern s32 D_80126954;
|
||||
extern s32 D_8012695C;
|
||||
extern s16 D_80126968;
|
||||
extern s16 D_8012696A;
|
||||
extern s16 D_8012696C;
|
||||
extern s16 D_80126976;
|
||||
extern s16 D_80126978;
|
||||
extern s16 D_8012697A;
|
||||
extern u8 D_80126948[];
|
||||
extern void func_8012A018(s32, s32);
|
||||
extern void func_8012A094(s32);
|
||||
extern void func_8017D594(void *);
|
||||
|
||||
D_80126954 = 0x190;
|
||||
D_8012695C = 0x384;
|
||||
D_8012696A = 0x400;
|
||||
D_80126968 = 0;
|
||||
D_8012696C = 0;
|
||||
D_80126976 = 0;
|
||||
D_80126978 = -0x90;
|
||||
D_8012697A = 0;
|
||||
func_8012A018((s32)func_8017D594, 0);
|
||||
func_8012A094((s32)D_80126948);
|
||||
func_8017D594((void *)D_80126948);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017D334);
|
||||
|
||||
@@ -3679,7 +3721,72 @@ void func_8017DDD8(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017DE14);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017DF7C);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern s32 func_8017DE14(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
extern s32 D_80126B64;
|
||||
|
||||
void func_8017DF7C(s32 param_1)
|
||||
{
|
||||
s32 s0 = param_1;
|
||||
s32 t;
|
||||
|
||||
switch (*(u16 *)(s0 + 2)) {
|
||||
case 0:
|
||||
*(s32 *)(s0 + 0x1C) = 0xF;
|
||||
*(u16 *)(s0 + 2) = *(u16 *)(s0 + 2) + 1;
|
||||
if (*(s16 *)(s0 + 0x70) == 1) {
|
||||
*(u16 *)(s0 + 2) = 5;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
t = *(s32 *)(s0 + 0x1C) - 1;
|
||||
*(s32 *)(s0 + 0x1C) = t;
|
||||
if (t == 0) {
|
||||
if (D_80126B64 - *(s32 *)(s0 + 0xC) < 0) {
|
||||
*(u16 *)(s0 + 2) = 2;
|
||||
} else {
|
||||
*(u16 *)(s0 + 2) = 3;
|
||||
}
|
||||
*(s32 *)(s0 + 0x1C) = 0x7F;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (D_80126B64 - *(s32 *)(s0 + 0xC) > 0) {
|
||||
*(u16 *)(s0 + 2) = 4;
|
||||
func_8002D4C8(0xC46, 0);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (D_80126B64 - *(s32 *)(s0 + 0xC) < 0) {
|
||||
*(u16 *)(s0 + 2) = 4;
|
||||
func_8002D4C8(0xC46, 0);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
func_8017DE14(s0);
|
||||
t = *(s32 *)(s0 + 0x1C) - 8;
|
||||
*(s32 *)(s0 + 0x1C) = t;
|
||||
if (t <= 0) {
|
||||
func_8012C218(s0);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
t = *(s32 *)(s0 + 0x1C) - 1;
|
||||
*(s32 *)(s0 + 0x1C) = t;
|
||||
if (t == 0) {
|
||||
*(u16 *)(s0 + 2) = 6;
|
||||
*(s32 *)(s0 + 0x1C) = 0x7F;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (D_80126B64 - *(s32 *)(s0 + 0xC) > 0) {
|
||||
*(u16 *)(s0 + 2) = 3;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_8017E0FC(s32 a0) {
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
@@ -4593,7 +4700,68 @@ void func_8017FAB4(s32 a0)
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017FC7C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017FCC0);
|
||||
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);
|
||||
|
||||
@@ -3408,7 +3408,50 @@ void func_8017D59C(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_8017BEBC", func_8017D5D8);
|
||||
typedef struct {
|
||||
s16 v[4];
|
||||
} Blk8_80126940_8017D5D8;
|
||||
|
||||
void func_8017D5D8(s32 a0) {
|
||||
extern s32 D_80126B58;
|
||||
extern s16 D_80190E30[];
|
||||
extern Blk8_80126940_8017D5D8 D_80126940;
|
||||
Blk8_80126940_8017D5D8 sp10;
|
||||
u8 t;
|
||||
s16 v0, v1;
|
||||
|
||||
if (func_80148800(&D_80126B58) & 3) {
|
||||
t = (*(u8 *)(a0 + 5) + 1) & 1;
|
||||
*(u8 *)(a0 + 5) = t;
|
||||
*(s32 *)(a0 + 0x14) = D_80190E30[t];
|
||||
}
|
||||
sp10 = D_80126940;
|
||||
|
||||
v1 = sp10.v[0];
|
||||
if (v1 < -0xFC) {
|
||||
sp10.v[0] = -0xFC;
|
||||
} else if (v1 < 0xFD) {
|
||||
;
|
||||
} else {
|
||||
sp10.v[0] = 0xFC;
|
||||
}
|
||||
|
||||
v0 = sp10.v[1];
|
||||
if (v0 < -0x402) {
|
||||
sp10.v[1] = -0x402;
|
||||
}
|
||||
|
||||
v1 = sp10.v[2];
|
||||
if (v1 < -0x19E0) {
|
||||
sp10.v[2] = -0x19E0;
|
||||
} else if (v1 >= -0x8FF) {
|
||||
sp10.v[2] = -0x900;
|
||||
}
|
||||
|
||||
func_8017D9C0(a0, sp10.v);
|
||||
func_8017DB58(a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_8017BEBC", func_8017D6E0);
|
||||
|
||||
@@ -4063,7 +4106,48 @@ void func_8017EFE0(s32 arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_8017BEBC", func_8017F0D4);
|
||||
extern u16 D_80126B66;
|
||||
extern u16 D_80126B96;
|
||||
extern s16 D_80126B98;
|
||||
extern void func_8017F1C0(s32 a0);
|
||||
extern s32 func_8017F30C(s32 a0);
|
||||
extern s32 func_80132EF4(s32 a0, s32 a1);
|
||||
extern void func_80129374(s32 arg0, s32 arg1);
|
||||
|
||||
s32 func_8017F0D4(param_1)
|
||||
s32 param_1;
|
||||
{
|
||||
s16 diff;
|
||||
s32 ptr;
|
||||
s32 prim;
|
||||
u16 *flg;
|
||||
|
||||
(*(s32 *)(param_1 + 0x1C))++;
|
||||
if (*(s16 *)(param_1 + 0x70) == 0) {
|
||||
func_8017F1C0(param_1);
|
||||
}
|
||||
diff = D_80126B66 - *(u16 *)(param_1 + 0xE);
|
||||
if (diff < 0) {
|
||||
diff = -diff;
|
||||
}
|
||||
if (diff < 0x401) {
|
||||
if ((*(s32 *)(param_1 + 0x1C) & 1) != 0) {
|
||||
ptr = func_80132EF4(param_1, 0x22);
|
||||
if (ptr != 0) {
|
||||
func_80129374(ptr, param_1);
|
||||
prim = *(s32 *)(ptr + 0x20);
|
||||
*(u16 *)(prim + 0x1A) = 0x4000;
|
||||
*(u16 *)(prim + 0x18) = 0x4000;
|
||||
}
|
||||
}
|
||||
if (func_8017F30C(param_1) != 0) {
|
||||
D_80126B98 = 0xC;
|
||||
flg = &D_80126B96;
|
||||
*flg |= 0x4000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_8017F1C0(s32 a0)
|
||||
{
|
||||
@@ -4201,7 +4285,7 @@ void func_8017F414(s32 param_1)
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8017F0D4(void);
|
||||
extern s32 func_8017F0D4();
|
||||
void func_8017F4B0(void) {
|
||||
func_8017F0D4();
|
||||
}
|
||||
|
||||
@@ -2695,7 +2695,7 @@ extern void func_8017E40C(void *a0);
|
||||
extern void func_8017EFD8(void);
|
||||
extern void (*D_80191058[])(void);
|
||||
extern void func_8017F2D0(void *a0);
|
||||
extern s32 func_8017F0D4(void);
|
||||
extern s32 func_8017F0D4();
|
||||
extern void func_8017F4B0(void);
|
||||
extern void (*D_80191070[])(void);
|
||||
extern void func_8017F4D0(void *a0);
|
||||
|
||||
@@ -2694,7 +2694,7 @@ extern void func_8017E40C(void *a0);
|
||||
extern void func_8017EFD8(void);
|
||||
extern void (*D_80191058[])(void);
|
||||
extern void func_8017F2D0(void *a0);
|
||||
extern s32 func_8017F0D4(void);
|
||||
extern s32 func_8017F0D4();
|
||||
extern void func_8017F4B0(void);
|
||||
extern void (*D_80191070[])(void);
|
||||
extern void func_8017F4D0(void *a0);
|
||||
|
||||
@@ -2692,7 +2692,7 @@ extern void func_8017E40C(void *a0);
|
||||
extern void func_8017EFD8(void);
|
||||
extern void (*D_80191058[])(void);
|
||||
extern void func_8017F2D0(void *a0);
|
||||
extern s32 func_8017F0D4(void);
|
||||
extern s32 func_8017F0D4();
|
||||
extern void func_8017F4B0(void);
|
||||
extern void (*D_80191070[])(void);
|
||||
extern void func_8017F4D0(void *a0);
|
||||
|
||||
@@ -3900,7 +3900,41 @@ void func_8017D1F0(void) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_8017D288);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_8017D350);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012A018(s32 a0, s32 a1);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8017D648(void *a0);
|
||||
|
||||
void func_8017D350(void) {
|
||||
typedef struct { s16 x0, x1, x2, x3; } BlkT;
|
||||
extern u8 D_80126948[];
|
||||
extern s32 D_80126954;
|
||||
extern s32 D_8012695C;
|
||||
extern s16 D_80126968;
|
||||
extern s16 D_8012696A;
|
||||
extern s16 D_8012696C;
|
||||
extern s16 D_80126976;
|
||||
extern s16 D_80126978;
|
||||
extern s16 D_8012697A;
|
||||
extern u8 D_801274E8[];
|
||||
extern u8 D_801869C8;
|
||||
|
||||
D_80126954 = 0x190;
|
||||
D_8012695C = 0x15E;
|
||||
D_80126968 = -0x38;
|
||||
D_8012696A = 0x800;
|
||||
D_8012696C = 0;
|
||||
D_80126976 = 0;
|
||||
D_80126978 = -0x60;
|
||||
D_8012697A = 0;
|
||||
|
||||
func_8012A018((s32)func_8017D648, 4);
|
||||
*(BlkT *)&D_801274E8 = *(BlkT *)&D_801869C8;
|
||||
func_8012A094((s32)D_80126948);
|
||||
func_8017D648(D_80126948);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_8017D41C);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user