feat(decomp): parallel gate — 2 fns across 2 binaries (11 workers)

ov_SC03_007    func_8018611C
  ov_SC01_009    func_80182438
This commit is contained in:
Drew T
2026-09-02 00:55:11 -06:00
parent 137c418bc7
commit e76f82e31f
2 changed files with 48 additions and 2 deletions
+13 -1
View File
@@ -3910,7 +3910,19 @@ void func_801823D0(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8018057C", func_80182438);
void func_80182438(void *a0) {
extern s32 func_8017F2A0(void *a0);
extern void func_801439C0(u8 *a0);
extern void func_8012C218(void *a0);
u8 *p;
if ((func_8017F2A0(a0) << 16) != 0)
return;
p = *(u8 **)((u8 *)a0 + 0xD8);
if (p != 0)
func_801439C0(p);
func_8012C218(a0);
}
extern void func_8012A828(s32 a0, void *a1);
extern void *D_801ED72C[];
+35 -1
View File
@@ -5069,7 +5069,41 @@ void func_80186074(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_jr_80183894", func_8018611C);
void func_8018611C(void *a0) {
s32 sp10[3];
extern s32 func_8012CBCC(s32 a0);
extern void func_8012B200(u8 *a0);
extern void func_8012A828(s32 a0, void *a1);
extern void func_80185D3C(void *a0, s32 a1);
extern void func_80185E3C(void *a0);
extern void (*D_8018C678[])(void);
s32 t;
s32 st;
if (func_8012CBCC((s32)a0) & 0x2000) {
func_80146A6C(2, a0, 0, 0, 0, 3, 0x30000000);
t = *(s32 *)((s32)a0 + 0x1C) + 1;
*(s32 *)((s32)a0 + 0x1C) = t;
if (t == 1) {
sp10[0] = 0;
sp10[1] = 0xFFFD0000;
sp10[2] = 0x20000;
func_8012B14C((s32)a0, sp10);
return;
}
func_8012B200((u8 *)a0);
func_8012A828((s32)a0, (void *)&D_8018C678);
st = *(u16 *)((s32)a0 + 2);
st = st + 1;
*(u16 *)((s32)a0 + 0xF6) = *(u16 *)((s32)a0 + 0x76) - 8;
*(u16 *)((s32)a0 + 0x98) = 0;
*(u16 *)((s32)a0 + 2) = st;
*(s32 *)((s32)a0 + 0x1C) = 0x50;
}
func_80185D3C(a0, 0);
func_80185E3C(a0);
}
#include "common.h"