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:
Drew T
2026-08-24 20:44:52 -06:00
parent 15e0020d8c
commit 826d5dfe1c
8 changed files with 299 additions and 12 deletions
+1
View File
@@ -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
+1 -1
View File
@@ -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
+172 -4
View File
@@ -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);
+87 -3
View File
@@ -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();
}
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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);
+35 -1
View File
@@ -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);