From 34ef8ad960b31cab9fd508d5740a7cb7fed5dc97 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Wed, 1 Jul 2026 13:28:40 -0600 Subject: [PATCH] =?UTF-8?q?feat(decomp):=20bulk=5Fharvest=20=E2=80=94=20+3?= =?UTF-8?q?5=20fns=20across=2021=20binaries,=200=20propagated=20(fleet=206?= =?UTF-8?q?4.58%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ov_SC02_005/ov_SC02_005.c | 21 ++++++++++++++++++--- src/ov_SC02_011/ov_SC02_011.c | 15 +++++++++++++-- src/ov_SC03_001/ov_SC03_001.c | 20 ++++++++++++++++++-- src/ov_SC03_002/ov_SC03_002.c | 7 ++++++- src/ov_SC03_006/ov_SC03_006.c | 16 ++++++++++++++-- src/ov_SC03_024/ov_SC03_024.c | 16 ++++++++++++++-- src/ov_SC03_091/ov_SC03_091.c | 10 +++++++++- src/ov_SC03_104/ov_SC03_104.c | 10 +++++++++- src/ov_SC03_124/ov_SC03_124.c | 15 +++++++++++++-- src/ov_SC04_000/ov_SC04_000.c | 7 ++++++- src/ov_SC04_011/ov_SC04_011.c | 16 ++++++++++++++-- src/ov_SC04_019/ov_SC04_019.c | 8 +++++++- src/ov_SC05_008/ov_SC05_008.c | 9 ++++++++- src/ov_SC05_017/ov_SC05_017.c | 17 +++++++++++++++-- src/ov_SC06_000/ov_SC06_000.c | 16 ++++++++++++++-- src/ov_SC06_010/ov_SC06_010.c | 14 ++++++++++++-- src/ov_SC06_022/ov_SC06_022.c | 7 ++++++- src/ov_SC06_024/ov_SC06_024.c | 8 +++++++- src/ov_SC06_029/ov_SC06_029.c | 23 ++++++++++++++++++++--- src/ov_SC06_033/ov_SC06_033.c | 14 ++++++++++++-- src/ov_SC07_002/ov_SC07_002.c | 12 +++++++++++- 21 files changed, 246 insertions(+), 35 deletions(-) diff --git a/src/ov_SC02_005/ov_SC02_005.c b/src/ov_SC02_005/ov_SC02_005.c index 0c10d5080..9eba938e9 100644 --- a/src/ov_SC02_005/ov_SC02_005.c +++ b/src/ov_SC02_005/ov_SC02_005.c @@ -4793,7 +4793,11 @@ extern void func_8017BF14(s32 arg0, s32 arg1, s32 arg2, s32 arg3); } -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017BEE8); +extern void func_8017BF14(s32 arg0, s32 arg1, s32 arg2, s32 arg3); + void func_8017BEE8(void *a0, void *a1, s32 a2, s32 a3) { + ((void (*)(void *, void *, s32, s32))func_8017BF14)(a0, a1, (s16)a2, (s16)a3); + } + INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017BF14); @@ -5380,7 +5384,13 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_801869E0); INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80186A04); -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80186ADC); +extern s32 D_801961B8; + extern s32 D_801961E0; + void func_80186ADC(s32 arg0) { + *(s32 *)(*(s32 *)(arg0 + 0x20) + 0x80) = &D_801961B8; + *(s32 *)(*(s32 *)(*(s32 *)(arg0 + 0xcc) + 0x20) + 0x80) = &D_801961E0; + } + INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80186B08); @@ -5755,7 +5765,12 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018BF88); INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018BFBC); -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018BFDC); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_8018BFDC(u8 *a0) { + *(u16 *)(a0 + 0x102) |= 0x1; + ((void (*)(void *, s32))func_8012AD44)(a0, 0x5); + } + INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018C008); diff --git a/src/ov_SC02_011/ov_SC02_011.c b/src/ov_SC02_011/ov_SC02_011.c index 5c2f2f5c8..d65f0be31 100644 --- a/src/ov_SC02_011/ov_SC02_011.c +++ b/src/ov_SC02_011/ov_SC02_011.c @@ -5533,7 +5533,12 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80187CE8); INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80187D90); -INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80187DDC); +extern s32 func_8012AD50(void *a0); + void func_80187DDC(u8 *a0) { + *(u16 *)(a0 + 0x72) |= 0x1000; + ((void (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80187E08); @@ -5967,7 +5972,13 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80190298); void func_801902C0(void) { } -INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_801902C8); +extern void func_80178CBC(s32 a0, s32 a1); + extern short D_801E8604; + void func_801902C8(void * arg0) { + *(short *)((char *)arg0 + 0x2) = 4; + func_80178CBC((int)arg0, (int)&D_801E8604); + } + INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_801902F4); diff --git a/src/ov_SC03_001/ov_SC03_001.c b/src/ov_SC03_001/ov_SC03_001.c index 32594179f..84062baae 100644 --- a/src/ov_SC03_001/ov_SC03_001.c +++ b/src/ov_SC03_001/ov_SC03_001.c @@ -4958,7 +4958,15 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017FBC4); INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017FC00); -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017FD5C); +extern s32 D_801915FC; +extern s32 D_801EEAE8; +extern void func_8017F1F0(s32 arg0, s32 arg1); + +void func_8017FD5C(void) { + D_801EEAE8 = &D_801915FC; + func_8017F1F0(0x474, 0x4B0); +} + extern s32 D_80191634; extern s32 D_801EEAE8; @@ -4992,7 +5000,15 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017FFF0); INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", listCdBuffer); -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8018003C); +extern s32 D_80191894; +extern s32 D_801EEAE8; +extern void func_8017F1F0(s32 arg0, s32 arg1); + +void func_8018003C(void) { + D_801EEAE8 = &D_80191894; + func_8017F1F0(0x564, 0x1A4); +} + s32 func_80180070(void) { return -1; diff --git a/src/ov_SC03_002/ov_SC03_002.c b/src/ov_SC03_002/ov_SC03_002.c index b423fb8ca..28b70d4e0 100644 --- a/src/ov_SC03_002/ov_SC03_002.c +++ b/src/ov_SC03_002/ov_SC03_002.c @@ -5237,7 +5237,12 @@ INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80183550); INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80183718); -INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80183760); +extern void (*D_801A84C4[])(void); + +void func_80183760(void *a0) { + D_801A84C4[*(u16 *)((s32)a0 + 0x2)](); +} + void func_8018379C(void) { } diff --git a/src/ov_SC03_006/ov_SC03_006.c b/src/ov_SC03_006/ov_SC03_006.c index db94d4748..7303b7d3f 100644 --- a/src/ov_SC03_006/ov_SC03_006.c +++ b/src/ov_SC03_006/ov_SC03_006.c @@ -5003,7 +5003,12 @@ INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_801818D8); INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_80181A14); -INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_80181ACC); +extern void (*D_801908B4[])(void); + +void func_80181ACC(void *a0) { + D_801908B4[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_80181B08); @@ -5594,7 +5599,14 @@ INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8018B4A4); INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8018B5E0); -INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8018B64C); +extern s32 func_8012BEE8(s32 arg); + extern void func_8018B224(s32 arg); + void func_8018B64C(void *a0) { + if (func_8012BEE8((s32)a0)) { + ((void (*)(s32))func_8018B224)((s32)a0); + } + } + INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8018B684); diff --git a/src/ov_SC03_024/ov_SC03_024.c b/src/ov_SC03_024/ov_SC03_024.c index e370a5508..befaf7972 100644 --- a/src/ov_SC03_024/ov_SC03_024.c +++ b/src/ov_SC03_024/ov_SC03_024.c @@ -4881,7 +4881,12 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_8017F4C8); INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_8017F8BC); -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_8017FA3C); +extern void (*D_8018AED8[])(void); + +void func_8017FA3C(void *a0) { + D_8018AED8[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_8017FA78); @@ -5002,7 +5007,14 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_80180944); INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_80180980); -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_801809B8); +extern void func_80171A1C(u8 *a0); + extern s32 func_80174650(s32 a0); + void func_801809B8(u8 * arg0) { + *(s16 *)(*(s32 *)((s32)arg0 + 0x20) + 0x10) = 0; + ((void (*)(void))func_80171A1C)(); + ((void (*)(s32))func_80174650)((s32)arg0); + } + void func_801809F0(void) { } diff --git a/src/ov_SC03_091/ov_SC03_091.c b/src/ov_SC03_091/ov_SC03_091.c index 017fa7d81..10498e4ca 100644 --- a/src/ov_SC03_091/ov_SC03_091.c +++ b/src/ov_SC03_091/ov_SC03_091.c @@ -5278,7 +5278,15 @@ INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_8018A728); INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_8018A800); -INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_8018A868); +extern s32 func_80153BD8(s32 arg); + extern s32 func_80153BF0(s32 a0); + void func_8018A868(u8 *a0) { + *(s16 *)(a0 + 0xfe) = 0; + if (func_80153BD8((s32)a0)) { + ((void (*)(void *))func_80153BF0)(a0); + } + } + INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_8018A8A4); diff --git a/src/ov_SC03_104/ov_SC03_104.c b/src/ov_SC03_104/ov_SC03_104.c index dfef1e785..010b6c24a 100644 --- a/src/ov_SC03_104/ov_SC03_104.c +++ b/src/ov_SC03_104/ov_SC03_104.c @@ -5008,7 +5008,15 @@ extern void func_8012AD44(s32 *a0, s16 a1); } -INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_80183BF4); +extern void func_80178B18(s32 a0, s32 a1); +extern void func_8012AD44(s32 *a0, s16 a1); +extern s32 D_8019C9F8; + +void func_80183BF4(void * arg0) { + func_80178B18((s32)arg0, (s32)&D_8019C9F8); + ((void (*)(s32, s32))func_8012AD44)(arg0, 5); +} + extern void func_8012AD44(s32 *a0, s16 a1); void func_80183C30(void *arg0) { diff --git a/src/ov_SC03_124/ov_SC03_124.c b/src/ov_SC03_124/ov_SC03_124.c index 138d63a7b..8f28a3a33 100644 --- a/src/ov_SC03_124/ov_SC03_124.c +++ b/src/ov_SC03_124/ov_SC03_124.c @@ -5063,7 +5063,12 @@ INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_801806C8); INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_801806E0); -INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_80180704); +extern void func_800D1724(s32 a0); + extern s32 D_8018E894; + void func_80180704(void) { + ((void (*)(void *))func_800D1724)(&D_8018E894); + } + void func_8018072C(void) { } @@ -5082,7 +5087,13 @@ INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_8018095C); INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_80180A24); -INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_80180A60); +extern void func_8012E8E0(s32 a0, s32 a1); +extern s32 D_8018FE14; + +void func_80180A60(void * arg0) { + func_8012E8E0((s32)arg0, (s32)&D_8018FE14); +} + INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_80180A88); diff --git a/src/ov_SC04_000/ov_SC04_000.c b/src/ov_SC04_000/ov_SC04_000.c index 2f50048e5..236995b21 100644 --- a/src/ov_SC04_000/ov_SC04_000.c +++ b/src/ov_SC04_000/ov_SC04_000.c @@ -4911,7 +4911,12 @@ INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000", func_8017F98C); INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000", func_8017FC8C); -INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000", func_8017FCC8); +extern void (*D_8019977C[])(void); + +void func_8017FCC8(void *a0) { + D_8019977C[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000", func_8017FD04); diff --git a/src/ov_SC04_011/ov_SC04_011.c b/src/ov_SC04_011/ov_SC04_011.c index 491a4e96e..ec84ec56e 100644 --- a/src/ov_SC04_011/ov_SC04_011.c +++ b/src/ov_SC04_011/ov_SC04_011.c @@ -4909,7 +4909,13 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FC88); INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FCA8); -INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FCDC); +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); +extern char D_801942C0[]; + +void func_8017FCDC(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_801942C0, 0x1000000); +} + INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FD04); @@ -4919,7 +4925,13 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FD68); INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FDF0); -INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FE44); +extern s32 D_801942DC; +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); + +void func_8017FE44(void) { + ((void (*)(s32, s32))func_8016EE40)((s32)&D_801942DC, 0x1000000); +} + INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FE6C); diff --git a/src/ov_SC04_019/ov_SC04_019.c b/src/ov_SC04_019/ov_SC04_019.c index d5c9eb487..c37645ed4 100644 --- a/src/ov_SC04_019/ov_SC04_019.c +++ b/src/ov_SC04_019/ov_SC04_019.c @@ -5403,7 +5403,13 @@ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_801848DC); INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_80184960); -INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_80184A90); +extern s32 func_80184960(s32 arg); + extern void func_80184AC4(void *a0); + void func_80184A90(u8 *a0) { + *(s32 *)(a0 + 0xe0) = func_80184960((s32)a0); + func_80184AC4(a0); + } + INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_80184AC4); diff --git a/src/ov_SC05_008/ov_SC05_008.c b/src/ov_SC05_008/ov_SC05_008.c index 3b62e7ad8..91673482f 100644 --- a/src/ov_SC05_008/ov_SC05_008.c +++ b/src/ov_SC05_008/ov_SC05_008.c @@ -5015,7 +5015,14 @@ extern s32 func_8012AD50(void *a0); INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80180830); -INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80180884); +extern s32 func_80182334(void); + extern void func_8012C098(void); + void func_80180884(s32 param_1) { + if (func_80182334() == 0) { + ((void (*)(s32))func_8012C098)(param_1); + } + } + INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_801808BC); diff --git a/src/ov_SC05_017/ov_SC05_017.c b/src/ov_SC05_017/ov_SC05_017.c index 095847656..f564eb116 100644 --- a/src/ov_SC05_017/ov_SC05_017.c +++ b/src/ov_SC05_017/ov_SC05_017.c @@ -5168,7 +5168,13 @@ INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_80182750); INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_801827E4); -INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_80182874); +extern void func_801849B8(s32 *a0, s32 a1); + extern short D_80191C44; + void func_80182874(short *param_1) { + *(short *)((char *)param_1 + 2) = 1; + ((void (*)(int, int))func_801849B8)((int)param_1, &D_80191C44); + } + INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_801828A0); @@ -5683,7 +5689,14 @@ extern s32 func_8014CB1C(void); } -INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_8018BC08); +extern void func_8014B2A8(void); +extern void func_8002D4C8(s32 a0, s32 a1); + +void func_8018BC08(void) { + func_8014B2A8(); + ((s32 (*)(s32, s32))func_8002D4C8)(0x464, 0); +} + INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_8018BC34); diff --git a/src/ov_SC06_000/ov_SC06_000.c b/src/ov_SC06_000/ov_SC06_000.c index 16d3a2b65..e1af5d569 100644 --- a/src/ov_SC06_000/ov_SC06_000.c +++ b/src/ov_SC06_000/ov_SC06_000.c @@ -5026,7 +5026,13 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_801816AC); INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80181774); -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_8018183C); +extern void func_8012A568(void (*a0)(void)); + extern s32 func_80181864(s32 a0); + s32 func_8018183C(void) +{ + ((void (*)(void *))func_8012A568)((void *)func_80181864); + } + INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80181864); @@ -5369,7 +5375,13 @@ void func_80185E44(void) { INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80185E4C); -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80185E88); +extern s32 func_8012AD50(void *a0); + void func_80185E88(u8 *a0) { + *(s16 *)(a0 + 0xFC) = 0; + *(u16 *)(a0 + 0x72) |= 0x1000; + ((void (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80185EB4); diff --git a/src/ov_SC06_010/ov_SC06_010.c b/src/ov_SC06_010/ov_SC06_010.c index d3176b750..e76c73091 100644 --- a/src/ov_SC06_010/ov_SC06_010.c +++ b/src/ov_SC06_010/ov_SC06_010.c @@ -5064,7 +5064,12 @@ extern void func_8012B370(int a0); INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801860A8); -INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801861C4); +extern void (*D_801AEF60[])(void); + +void func_801861C4(void *a0) { + D_801AEF60[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_80186200); @@ -5097,7 +5102,12 @@ INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_80186630); INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_80186654); -INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801866B8); +extern void (*D_801AEF88[])(void); + +void func_801866B8(void *a0) { + D_801AEF88[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801866F4); diff --git a/src/ov_SC06_022/ov_SC06_022.c b/src/ov_SC06_022/ov_SC06_022.c index 6f6532cd9..59bdf40b3 100644 --- a/src/ov_SC06_022/ov_SC06_022.c +++ b/src/ov_SC06_022/ov_SC06_022.c @@ -4761,7 +4761,12 @@ INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017CF50); INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017CF94); -INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017CFB8); +extern void (*D_80190DE4[])(void); + +void func_8017CFB8(void *a0) { + D_80190DE4[*(u8 *)((s32)a0 + 0x15)](); +} + INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017CFF4); diff --git a/src/ov_SC06_024/ov_SC06_024.c b/src/ov_SC06_024/ov_SC06_024.c index 92c1f903a..45d68a412 100644 --- a/src/ov_SC06_024/ov_SC06_024.c +++ b/src/ov_SC06_024/ov_SC06_024.c @@ -5393,7 +5393,13 @@ INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8018EF1C); INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8018EF68); -INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8018F054); +extern void func_8018DEC0(void); + void func_8018F054(s32 *a0) { + *(s32 *)((char *)a0 + 0x10) = *(s32 *)((char *)a0 + 0x10) >> 1; + *(s32 *)((char *)a0 + 0x18) = *(s32 *)((char *)a0 + 0x18) >> 1; + ((void (*)(void))func_8018DEC0)(); + } + extern void func_8018DEC0(void); void func_8018F088(u8 *param_1) { diff --git a/src/ov_SC06_029/ov_SC06_029.c b/src/ov_SC06_029/ov_SC06_029.c index 82babe314..76b5edd21 100644 --- a/src/ov_SC06_029/ov_SC06_029.c +++ b/src/ov_SC06_029/ov_SC06_029.c @@ -5135,9 +5135,21 @@ INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80186B6C); INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80186BD4); -INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80186BEC); +extern s32 D_801DFF78; +extern void func_8012E88C(u8 *a0); + +void func_80186BEC(void) { + ((void (*)(s32))func_8012E88C)(*(s32 *)&D_801DFF78); +} + + +extern s32 D_801DFF78; +extern void func_8012E8A8(u8 *a0); + +void func_80186C14(void) { + ((void (*)(s32))func_8012E8A8)(D_801DFF78); +} -INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80186C14); INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80186C3C); @@ -5263,7 +5275,12 @@ INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_801888A8); INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80188904); -INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80188960); +extern void func_8012A018(s32 a, s32 b); + extern void func_80188BB0(); + void func_80188960(void) { + ((void (*)(void *, s32))func_8012A018)((void *)func_80188BB0, 0x2); + } + INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80188988); diff --git a/src/ov_SC06_033/ov_SC06_033.c b/src/ov_SC06_033/ov_SC06_033.c index 01c5fd6a8..c98c5d381 100644 --- a/src/ov_SC06_033/ov_SC06_033.c +++ b/src/ov_SC06_033/ov_SC06_033.c @@ -5111,7 +5111,12 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80186574); INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80186858); -INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80186B10); +extern void (*D_801AFD70[])(void); + +void func_80186B10(void *a0) { + D_801AFD70[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80186B4C); @@ -5175,7 +5180,12 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_801887EC); INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_801888E8); -INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80188A54); +extern void (*D_801AFDD0[])(void); + +void func_80188A54(void *a0) { + D_801AFDD0[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80188A90); diff --git a/src/ov_SC07_002/ov_SC07_002.c b/src/ov_SC07_002/ov_SC07_002.c index d1ecc3b62..a61051b95 100644 --- a/src/ov_SC07_002/ov_SC07_002.c +++ b/src/ov_SC07_002/ov_SC07_002.c @@ -4827,7 +4827,17 @@ INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8017EEB8); INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8017EEF8); -INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8017EF74); +extern s32 func_80016978(s32 arg); +extern void func_80029240(void); + +s32 func_8017EF74(void) { + if ((func_80016978(4) & 0xFFFF) == 0) { + return 0; + } + func_80029240(); + return 1; +} + void func_8017EFAC(void) { }