chore(decomp): commit in-tree banked work before the serial lane

This commit is contained in:
Drew T
2026-08-25 22:33:18 -06:00
parent 8c73f6cbfa
commit f90de0a8ca
+1 -148
View File
@@ -11132,154 +11132,7 @@ void func_8018898C(s32 a0) {
}
typedef struct {
s8 pad00[0x2];
s16 unk02;
s8 pad04[0x2];
s16 unk06;
s8 pad08[0x4];
s16 unk0C;
s8 pad0E[0x6];
s16 unk14;
s8 pad16[0x4];
s32 unk1C;
s16 unk20;
s8 pad22[0x12];
s16 unk34;
s8 pad36[0x24];
s16 unk5C;
s8 pad5E[0xE];
s16 unk6C;
s8 pad6E[0x2];
u16 unk70;
s8 pad72[0x12];
u16 unk84;
s8 pad86[0x2];
s16 unk88;
s8 pad8A[0x2];
s16 unk8C;
s8 pad8E[0x6C];
s16 unkFC;
u16 unkFE;
} SC02_11;
extern void func_8012B8E4(SC02_11 *arg0, s32 arg1);
extern void func_80142414(SC02_11 *arg0, s32 arg1);
extern void func_8002D4C8(s32 arg0, s32 arg1);
extern s32 func_8012BEE8(SC02_11 *arg0);
extern void func_8012A828(SC02_11 *arg0, void *arg1);
extern s32 func_8012B178(void *arg0, void *arg1);
extern s32 func_8012CBA4(SC02_11 *arg0);
extern void func_80131E00(SC02_11 *arg0, s32 arg1);
extern void func_8012ADE4(SC02_11 *arg0);
extern void func_80188250(SC02_11 *arg0);
extern void func_80143B6C(SC02_11 *arg0, s32 arg1);
extern s32 Square0(s32 arg0);
extern s32 func_8012BCCC(SC02_11 *arg0);
extern s32 rand(void);
extern s32 func_8012B744(void *arg0, void *arg1);
extern s32 func_8012BD3C(SC02_11 *arg0, s32 arg1, s32 arg2);
extern void func_80188D54(SC02_11 *arg0);
extern void func_80188D80(SC02_11 *arg0);
s32 D_8019609C;
void D_801D3CBC;
void D_801D3D64;
void D_801D3DEC;
s32 func_80188A10(SC02_11 *s0) {
s32 sp10;
s32 sp14;
s32 sp18;
s32 v1;
s32 v0;
s32 phi_v0;
s32 phi_ret;
if (s0->unk02 == 0) {
func_8012B8E4(s0, 4);
v1 = *(u16 *) (s0->unk14 + 0x12) + v0;
*(u16 *) (s0->unk14 + 0x12) = v1;
if (s0->unk1C == 15) {
func_80142414(s0, -0x78);
func_8002D4C8(0x6A9, 0);
}
if (func_8012BEE8(s0) != 0) {
if ((s0->unk84 & 2)) {
func_8012A828(s0, &D_801D3D64);
s0->unk02 = 1;
s0->unk1C = 40;
s0->unkFE = 0;
} else {
func_8012A828(s0, &D_801D3DEC);
s0->unk02 = 0;
s0->unk1C = 25;
s0->unk84 |= 2;
}
}
return 0;
}
if (s0->unk02 != 1) {
return 0;
}
func_8012B8E4(s0, 6);
v1 = *(u16 *) (s0->unk14 + 0x12) + v0;
*(u16 *) (s0->unk14 + 0x12) = v1;
func_8012B178(&D_8019609C, s0);
v1 = func_8012CBA4(s0);
if ((v1 & 0x1000)) {
func_80131E00(s0, 0x12);
phi_v0 = 0;
} else if (v1 == 0x2000) {
phi_v0 = 1;
} else {
func_8012ADE4(s0);
phi_v0 = 1;
}
if (phi_v0 != 0) {
func_80188250(s0);
phi_ret = s0->unkFE - 1;
s0->unkFE = phi_ret;
if (phi_ret <= 0) {
func_80143B6C(s0, 0);
s0->unkFE = 8;
}
sp14 = 0;
sp10 = s0->unk06 - s0->unk88;
sp18 = s0->unk0C - s0->unk8C;
if (((sp10 + Square0(sp18)) < 0x8FFFF) && (func_8012BCCC(s0), (func_8012BCCC(s0) >= 0x10000))) {
block_58:
s0->unk02 = 1;
s0->unk5C = 0xAA10;
s0->unk34 = 0;
v0 = rand() & 0x1F;
s0->unk1C = v0 + 0x28;
sp14 = 0;
sp10 = s0->unk06 - s0->unk88;
sp18 = s0->unk0C - s0->unk8C;
if (((sp10 + Square0(sp18)) >= 0x8FFFF) || (func_8012B744(s0->pad04, &v1), (s0->unkFC = v0, 0))) {
v0 = rand() & 0x3FF;
v1 = v0 - 0x200;
if (v1 >= 0) {
v1 = v0 + 0x100;
} else {
v1 = v0 - 0x500;
}
s0->unkFC = (*(u16 *) (s0->unk14 + 0x12) + v1) & 0xFFF;
}
func_8012A828(s0, &D_801D3CBC);
}
}
if (!(s0->unk70 & 0x100)) {
if (func_8012BD3C(s0, 0x200, 0x1000) != 0) {
func_80188D54(s0);
}
} else if (func_8012BD3C(s0, 0x400, 0x40000) != 0) {
func_80188D80(s0);
}
return 0;
}
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80188A10);
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80188D54);