From a95c19447d3e87ee0ae85e2548083a42ff7c860c Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Wed, 1 Jul 2026 10:44:57 -0600 Subject: [PATCH] =?UTF-8?q?feat(decomp):=20bulk=5Fharvest=20=E2=80=94=20+5?= =?UTF-8?q?8=20fns=20across=2039=20binaries,=201=20propagated=20(fleet=206?= =?UTF-8?q?4.53%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/dedup.us.yaml | 7 +++++++ src/ov_SC02_005/ov_SC02_005.c | 21 ++++++++++++++++++--- src/ov_SC02_011/ov_SC02_011.c | 15 +++++++++++++-- src/ov_SC02_017/ov_SC02_017.c | 17 +++++++++++++++-- src/ov_SC02_028/ov_SC02_028.c | 10 +++++++++- src/ov_SC03_001/ov_SC03_001.c | 16 ++++++++++++++-- src/ov_SC03_002/ov_SC03_002.c | 7 ++++++- src/ov_SC03_007/ov_SC03_007.c | 20 ++++++++++++++++++-- src/ov_SC03_014/ov_SC03_014.c | 3 ++- src/ov_SC03_015/ov_SC03_015.c | 2 +- src/ov_SC03_024/ov_SC03_024.c | 7 ++++++- src/ov_SC03_028/ov_SC03_028.c | 7 ++++++- src/ov_SC03_091/ov_SC03_091.c | 7 ++++++- src/ov_SC03_092/ov_SC03_092.c | 7 ++++++- src/ov_SC03_097/ov_SC03_097.c | 8 +++++++- src/ov_SC03_101/ov_SC03_101.c | 7 ++++++- src/ov_SC03_104/ov_SC03_104.c | 8 +++++++- src/ov_SC03_111/ov_SC03_111.c | 7 ++++++- src/ov_SC03_124/ov_SC03_124.c | 12 ++++++++++-- src/ov_SC03_125/ov_SC03_125.c | 17 +++++++++++++++-- src/ov_SC04_002/ov_SC04_002.c | 9 ++++++++- src/ov_SC04_005/ov_SC04_005.c | 8 +++++++- src/ov_SC04_007/ov_SC04_007.c | 17 +++++++++++++++-- src/ov_SC04_011/ov_SC04_011.c | 6 +++++- src/ov_SC04_015/ov_SC04_015.c | 8 +++++++- src/ov_SC04_018/ov_SC04_018.c | 16 ++++++++++++++-- src/ov_SC04_019/ov_SC04_019.c | 8 +++++++- src/ov_SC05_001/ov_SC05_001.c | 17 +++++++++++++++-- src/ov_SC05_008/ov_SC05_008.c | 14 ++++++++++++-- src/ov_SC05_010/ov_SC05_010.c | 8 +++++++- src/ov_SC05_018/ov_SC05_018.c | 8 +++++++- src/ov_SC06_000/ov_SC06_000.c | 12 ++++++++++-- src/ov_SC06_006/ov_SC06_006.c | 12 ++++++++++-- src/ov_SC06_010/ov_SC06_010.c | 10 +++++++++- src/ov_SC06_016/ov_SC06_016.c | 12 +++++++++++- src/ov_SC06_022/ov_SC06_022.c | 9 ++++++++- src/ov_SC06_024/ov_SC06_024.c | 15 +++++++++++++-- src/ov_SC06_029/ov_SC06_029.c | 12 ++++++++++-- src/ov_SC06_033/ov_SC06_033.c | 16 ++++++++++++++-- src/ov_SC07_000/ov_SC07_000.c | 14 ++++++++++++-- src/ov_SC07_002/ov_SC07_002.c | 15 +++++++++++++-- src/shared/engine_core.h | 6 ++++++ 42 files changed, 398 insertions(+), 59 deletions(-) diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index 20ef11dbf..a2da65210 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -12448,3 +12448,10 @@ groups: func: DEFINE_func_8018BF08 vram: 0x8018BF08 binaries: [ov_SC04_018, ov_SC04_019] + - id: E_func_801848E4 + tier: h_exact + hash: dac153f25f8f1768090c8240d574ee9f91636f43 + source: src/shared/engine_core.h + func: DEFINE_func_801848E4 + vram: 0x801848E4 + binaries: [ov_SC03_014, ov_SC03_015] diff --git a/src/ov_SC02_005/ov_SC02_005.c b/src/ov_SC02_005/ov_SC02_005.c index 321156754..e21202b0b 100644 --- a/src/ov_SC02_005/ov_SC02_005.c +++ b/src/ov_SC02_005/ov_SC02_005.c @@ -4826,7 +4826,12 @@ extern void func_8012A018(s32 a, s32 b); INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017DF28); -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017DF50); +extern void func_8012A018(s32 a, s32 b); + extern void func_8017E97C(void); + void func_8017DF50(void) { + ((void (*)(void *, s32))func_8012A018)((void *)func_8017E97C, 0x8); + } + INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017DF78); @@ -5004,7 +5009,12 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_801803BC); INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80180454); -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_801804AC); +extern void func_8016EE94(); + extern char func_801804D4[]; + void func_801804AC(void) { + ((void (*)(char *, unsigned int))func_8016EE94)(func_801804D4, 0x1000000); + } + INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_801804D4); @@ -5751,7 +5761,12 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018C358); INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018C394); -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018C3C4); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_8018C3C4(void * arg0) { + *(s8 *)((char *)arg0 + 0xfc) = 0x8; + ((void (*)(s32, s32))func_8012AD44)((int)arg0, 0x2); + } + INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018C3EC); diff --git a/src/ov_SC02_011/ov_SC02_011.c b/src/ov_SC02_011/ov_SC02_011.c index 44fe1991c..f36f4096e 100644 --- a/src/ov_SC02_011/ov_SC02_011.c +++ b/src/ov_SC02_011/ov_SC02_011.c @@ -5078,7 +5078,13 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80181F6C); INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80181FA0); -INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80182090); +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); +extern M2C_UNK D_80194FF4; + +void func_80182090(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_80194FF4, 0x1000000); +} + INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_801820B8); @@ -5192,7 +5198,12 @@ extern void func_8012A568(void (*a0)(void)); } -INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_801847F0); +extern void func_8012A568(void (*a0)(void)); + extern s32 func_801823EC(s32 a0); + void func_801847F0(void) { + ((void (*)(void *))func_8012A568)((void *)func_801823EC); + } + extern void func_80184918(s32 arg0, s32 arg1); void func_80184818(s32 arg0) { diff --git a/src/ov_SC02_017/ov_SC02_017.c b/src/ov_SC02_017/ov_SC02_017.c index 75aca1f2a..e6601214a 100644 --- a/src/ov_SC02_017/ov_SC02_017.c +++ b/src/ov_SC02_017/ov_SC02_017.c @@ -5323,7 +5323,13 @@ INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_80184C58); INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_80184D28); -INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_80184D9C); +extern s32 func_8012BEE8(s32 arg); + void func_80184D9C(void *a0) { + if (func_8012BEE8((s32)a0)) { + *(s16 *)((u8 *)a0 + 0x2) = 0x5; + } + } + INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_80184DD0); @@ -5531,7 +5537,14 @@ INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_80188620); INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_8018875C); -INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_801887C8); +extern s32 func_8012BEE8(s32 arg); + extern void func_801883A0(s32 *a0); + void func_801887C8(s32 *a0) { + if (func_8012BEE8((s32)a0)) { + func_801883A0(a0); + } + } + INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_80188800); diff --git a/src/ov_SC02_028/ov_SC02_028.c b/src/ov_SC02_028/ov_SC02_028.c index d26a83e70..e39870f0c 100644 --- a/src/ov_SC02_028/ov_SC02_028.c +++ b/src/ov_SC02_028/ov_SC02_028.c @@ -5185,7 +5185,15 @@ extern void func_8012AD44(s32 *a0, s16 a1); } -INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028", func_80182294); +extern void func_80178B18(s32 a0, s32 a1); +extern void func_8012AD44(s32 *a0, s16 a1); +extern M2C_UNK D_801A4E88; + +void func_80182294(void *arg0) { + func_80178B18((s32)arg0, (s32)&D_801A4E88); + ((void (*)(s32, s32))func_8012AD44)((s32)arg0, 0x5); +} + extern void func_8012AD44(s32 *a0, s16 a1); void func_801822D0(void *arg0) { diff --git a/src/ov_SC03_001/ov_SC03_001.c b/src/ov_SC03_001/ov_SC03_001.c index 1bedea9c2..a82241a29 100644 --- a/src/ov_SC03_001/ov_SC03_001.c +++ b/src/ov_SC03_001/ov_SC03_001.c @@ -5244,7 +5244,13 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_80182548); INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_801825A8); -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8018260C); +extern void func_80187778(s32 *a0, s32 a1); + extern short D_80191D6C; + void func_8018260C(short *a0) { + *(short *)((char *)a0 + 0x2) = 0x7; + func_80187778((s32 *)a0, (s32)&D_80191D6C); + } + INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_80182638); @@ -5306,7 +5312,13 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_80182F3C); INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_80183168); -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_801831F0); +extern void func_80187778(s32 *a0, s32 a1); + extern short D_80191E38; + void func_801831F0(short *a0) { + *(short *)((char *)a0 + 0x2) = 0x5; + func_80187778((s32 *)a0, (s32)&D_80191E38); + } + INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8018321C); diff --git a/src/ov_SC03_002/ov_SC03_002.c b/src/ov_SC03_002/ov_SC03_002.c index 69b60c538..0e9b35031 100644 --- a/src/ov_SC03_002/ov_SC03_002.c +++ b/src/ov_SC03_002/ov_SC03_002.c @@ -4912,7 +4912,12 @@ INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80180014); INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80180040); -INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_8018007C); +extern void (*D_80189644[])(void); + +void func_8018007C(void *a0) { + D_80189644[*(u8 *)((s32)a0 + 0x15)](); +} + INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_801800B8); diff --git a/src/ov_SC03_007/ov_SC03_007.c b/src/ov_SC03_007/ov_SC03_007.c index 1d4c2bcec..2f358cc69 100644 --- a/src/ov_SC03_007/ov_SC03_007.c +++ b/src/ov_SC03_007/ov_SC03_007.c @@ -5040,7 +5040,16 @@ INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80180838); INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80180990); -INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_801809CC); +void func_801809CC(void *a0) { + *(short *)((char *)a0 + 0x2) = 1; + *(int *)((char *)a0 + 0x1c) = 2; + *(unsigned char *)((char *)a0 + 0xfc) = 1; + *(unsigned char *)((char *)a0 + 0xfe) = 2; + *(unsigned char *)((char *)a0 + 0xfd) = 0; + *(unsigned char *)((char *)a0 + 0xff) = 4; + *(short *)((char *)a0 + 0xdc) = 0; + } + INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80180A00); @@ -5154,7 +5163,14 @@ INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80182A18); INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80182A80); -INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80182AC4); +extern s32 func_8012BEE8(s32 arg); + extern s32 func_801824A8(void); + void func_80182AC4(s32 param_1) { + if (((s32 (*)(void))func_8012BEE8)() != 0) { + ((void (*)(s32))func_801824A8)(param_1); + } + } + INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80182AFC); diff --git a/src/ov_SC03_014/ov_SC03_014.c b/src/ov_SC03_014/ov_SC03_014.c index c886c4ae7..5d90136b9 100644 --- a/src/ov_SC03_014/ov_SC03_014.c +++ b/src/ov_SC03_014/ov_SC03_014.c @@ -5088,7 +5088,8 @@ INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_801847EC); INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_80184868); -INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_801848E4); +DEFINE_func_801848E4() /* dedup: shared engine-core @0x801848E4 (src/shared) */ + INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_80184920); diff --git a/src/ov_SC03_015/ov_SC03_015.c b/src/ov_SC03_015/ov_SC03_015.c index 4437b039f..6a0abbf92 100644 --- a/src/ov_SC03_015/ov_SC03_015.c +++ b/src/ov_SC03_015/ov_SC03_015.c @@ -5090,7 +5090,7 @@ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_801847EC); INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_80184868); -INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_801848E4); +DEFINE_func_801848E4() /* dedup: shared engine-core @0x801848E4 (src/shared) */ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_80184920); diff --git a/src/ov_SC03_024/ov_SC03_024.c b/src/ov_SC03_024/ov_SC03_024.c index 7fe6ee2d6..a93dfc560 100644 --- a/src/ov_SC03_024/ov_SC03_024.c +++ b/src/ov_SC03_024/ov_SC03_024.c @@ -5152,7 +5152,12 @@ void func_80182838(s32 *a0) { INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_80182844); -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_80182884); +extern void func_8002D4C8(s32 arg0, s32 arg1); + void func_80182884(void *a0) { + *(s16 *)((char *)a0 + 0x2) = 0x4; + func_8002D4C8(0x86E, 0); + } + INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_801828B0); diff --git a/src/ov_SC03_028/ov_SC03_028.c b/src/ov_SC03_028/ov_SC03_028.c index 4297cb47b..77345d7a4 100644 --- a/src/ov_SC03_028/ov_SC03_028.c +++ b/src/ov_SC03_028/ov_SC03_028.c @@ -5110,7 +5110,12 @@ extern void func_8012AD44(s32 *a0, s16 a1); INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_80186234); -INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_8018632C); +extern void (*D_80190BFC[])(void); + +void func_8018632C(void *a0) { + D_80190BFC[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_80186368); diff --git a/src/ov_SC03_091/ov_SC03_091.c b/src/ov_SC03_091/ov_SC03_091.c index fe2203502..275a4972f 100644 --- a/src/ov_SC03_091/ov_SC03_091.c +++ b/src/ov_SC03_091/ov_SC03_091.c @@ -4885,7 +4885,12 @@ extern void func_8016EE40(s32 a0, s32 a1, s32 a2); } -INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_8018215C); +extern void (*D_801906DC[])(void); + +void func_8018215C(u8 *a0) { + D_801906DC[a0[0x216]](); +} + INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_80182198); diff --git a/src/ov_SC03_092/ov_SC03_092.c b/src/ov_SC03_092/ov_SC03_092.c index e107d0fa6..6fca1ca03 100644 --- a/src/ov_SC03_092/ov_SC03_092.c +++ b/src/ov_SC03_092/ov_SC03_092.c @@ -5164,7 +5164,12 @@ INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092", func_8018322C); INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092", func_80183378); -INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092", func_80183498); +extern void func_8012C218(void *a0); + void func_80183498(void * arg0) { + *(short *)((char *)arg0 + 0x2) = 2; + ((s32 (*)(s32))func_8012C218)(*(s32 *)((char *)arg0 + 0xcc)); + } + INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092", func_801834C4); diff --git a/src/ov_SC03_097/ov_SC03_097.c b/src/ov_SC03_097/ov_SC03_097.c index 2236112bb..14bc4c753 100644 --- a/src/ov_SC03_097/ov_SC03_097.c +++ b/src/ov_SC03_097/ov_SC03_097.c @@ -5254,7 +5254,13 @@ INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097", func_80185A50); INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097", func_80185A60); -INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097", func_80185AA0); +extern void func_8014ADA8(s32 a0, s32 a1); + extern s32 D_80126B58; + void func_80185AA0(s32 arg0) { + s32 temp_v0 = *(s32 *)(arg0 + 0xdc); + ((void (*)(void *, s32))func_8014ADA8)((void *)&D_80126B58, *(u16 *)(temp_v0 + 0xc)); + } + INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097", func_80185AD4); diff --git a/src/ov_SC03_101/ov_SC03_101.c b/src/ov_SC03_101/ov_SC03_101.c index 778022985..678ec23a8 100644 --- a/src/ov_SC03_101/ov_SC03_101.c +++ b/src/ov_SC03_101/ov_SC03_101.c @@ -5092,7 +5092,12 @@ INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101", func_80183284); INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101", func_8018330C); -INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101", func_80183390); +extern void (*D_8019B2AC[])(void); + +void func_80183390(void *a0) { + D_8019B2AC[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101", func_801833CC); diff --git a/src/ov_SC03_104/ov_SC03_104.c b/src/ov_SC03_104/ov_SC03_104.c index d1e5d28d7..deeb28396 100644 --- a/src/ov_SC03_104/ov_SC03_104.c +++ b/src/ov_SC03_104/ov_SC03_104.c @@ -5244,7 +5244,13 @@ INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_80189D74); INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_80189DF8); -INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_80189F04); +extern void func_8012CBCC(s32 a0); + void func_80189F04(void *a0) { + if ((((s32 (*)(s32))func_8012CBCC)((s32)a0) & 0x2000) != 0) { + *(s16 *)((s32)a0 + 2) = 2; + } + } + INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_80189F3C); diff --git a/src/ov_SC03_111/ov_SC03_111.c b/src/ov_SC03_111/ov_SC03_111.c index ca69d327b..037ba5b32 100644 --- a/src/ov_SC03_111/ov_SC03_111.c +++ b/src/ov_SC03_111/ov_SC03_111.c @@ -4868,7 +4868,12 @@ INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111", func_8018076C); INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111", func_801807B0); -INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111", func_801807D4); +extern void (*D_80188A1C[])(void); + +void func_801807D4(void *a0) { + D_80188A1C[*(u8 *)((s32)a0 + 0x15)](); +} + INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111", func_80180810); diff --git a/src/ov_SC03_124/ov_SC03_124.c b/src/ov_SC03_124/ov_SC03_124.c index 1ca8d5b7b..282a3a43c 100644 --- a/src/ov_SC03_124/ov_SC03_124.c +++ b/src/ov_SC03_124/ov_SC03_124.c @@ -4817,7 +4817,11 @@ void func_8017DA54(void *a0) { } -INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_8017DA68); +extern void func_8016F0E4(void); + void func_8017DA68(void) { + ((s32 (*)(void))func_8016F0E4)(); + } + INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_8017DA88); @@ -5100,7 +5104,11 @@ INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_801814A4); INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_801814E0); -INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_8018156C); +extern s32 func_8018107C(void); + void func_8018156C(void) { + func_8018107C(); + } + INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_8018158C); diff --git a/src/ov_SC03_125/ov_SC03_125.c b/src/ov_SC03_125/ov_SC03_125.c index 10e022001..5322d3cbb 100644 --- a/src/ov_SC03_125/ov_SC03_125.c +++ b/src/ov_SC03_125/ov_SC03_125.c @@ -5028,7 +5028,13 @@ INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_8018170C); INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_80181790); -INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_801818C0); +extern s32 func_80181790(s32 arg); + extern void func_801818F4(void *a0); + void func_801818C0(u8 *a0) { + *(s32 *)(a0 + 0xe0) = func_80181790((s32)a0); + func_801818F4(a0); + } + INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_801818F4); @@ -5064,7 +5070,14 @@ INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_80181C00); INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_80181C74); -INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_80181CD0); +extern s32 func_80029504(void); +extern void func_80029514(s32 arg0); + +void func_80181CD0(void) { + if ((func_80029504() == 0x3A2) && (func_80029514(0x3AC), 1)) { + } +} + INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_80181D04); diff --git a/src/ov_SC04_002/ov_SC04_002.c b/src/ov_SC04_002/ov_SC04_002.c index 1d571cbf4..ace8aa540 100644 --- a/src/ov_SC04_002/ov_SC04_002.c +++ b/src/ov_SC04_002/ov_SC04_002.c @@ -4928,7 +4928,14 @@ INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_80180090); void func_80180150(void) { } -INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_80180158); +extern void func_80178CBC(s32 arg0, s32 arg1); +extern s32 D_8018C4F0; + +void func_80180158(void *arg0) { + func_80178CBC((s32)arg0, (s32)&D_8018C4F0); + *(s16 *)((s32)arg0 + 0x2) = 0x3; +} + INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_80180190); diff --git a/src/ov_SC04_005/ov_SC04_005.c b/src/ov_SC04_005/ov_SC04_005.c index 39a182ce1..8419ba592 100644 --- a/src/ov_SC04_005/ov_SC04_005.c +++ b/src/ov_SC04_005/ov_SC04_005.c @@ -5253,7 +5253,13 @@ INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005", func_80187060); INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005", func_801870A0); -INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005", func_801870D4); +extern void func_8012B21C(void *a0); + extern void func_8012AD44(s32 *a0, s16 a1); + void func_801870D4(s32 param_1) { + ((void (*)(s32))func_8012B21C)(param_1); + ((void (*)(s32, s32))func_8012AD44)(param_1, 2); + } + INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005", func_80187108); diff --git a/src/ov_SC04_007/ov_SC04_007.c b/src/ov_SC04_007/ov_SC04_007.c index 4e032ed54..84470ea42 100644 --- a/src/ov_SC04_007/ov_SC04_007.c +++ b/src/ov_SC04_007/ov_SC04_007.c @@ -4862,7 +4862,14 @@ INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_8017EF38); void func_8017EF9C(void) { } -INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_8017EFA4); +extern void func_80178CBC(s32 arg0, s32 arg1); +extern s32 D_80189838; + +void func_8017EFA4(void *arg0) { + ((void (*)(void *, s32))func_80178CBC)(arg0, &D_80189838); + *(s16 *)((s32)arg0 + 0x2) = 0x3; +} + INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_8017EFDC); @@ -4945,7 +4952,13 @@ INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_80181320); INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_801814A4); -INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_801814E4); +extern void func_8012CBCC(s32 a0); + void func_801814E4(s32 arg0) { + if ((((s32 (*)(void))func_8012CBCC)() & 0x2000) != 0) { + *(s16*)(arg0 + 0x2) = 1; + } + } + INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_8018151C); diff --git a/src/ov_SC04_011/ov_SC04_011.c b/src/ov_SC04_011/ov_SC04_011.c index 7426c5b07..9198aefaa 100644 --- a/src/ov_SC04_011/ov_SC04_011.c +++ b/src/ov_SC04_011/ov_SC04_011.c @@ -5095,7 +5095,11 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_80183F10); INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_801840B8); -INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_801840D8); +extern void func_80175414(s32); + void func_801840D8(void) { + ((void (*)(void))func_80175414)(); + } + INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_801840F8); diff --git a/src/ov_SC04_015/ov_SC04_015.c b/src/ov_SC04_015/ov_SC04_015.c index 5f68b6fc4..887ba0db1 100644 --- a/src/ov_SC04_015/ov_SC04_015.c +++ b/src/ov_SC04_015/ov_SC04_015.c @@ -4875,7 +4875,13 @@ INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015", func_8017EB14); INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015", func_8017EB78); -INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015", func_8017ED00); +extern void func_80016714(void *a0, s32 a1); +extern s32 D_801C8C64; + +void func_8017ED00(void) { + func_80016714(&D_801C8C64, 0x380); +} + INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015", func_8017ED28); diff --git a/src/ov_SC04_018/ov_SC04_018.c b/src/ov_SC04_018/ov_SC04_018.c index 52c5cc978..39fb27e17 100644 --- a/src/ov_SC04_018/ov_SC04_018.c +++ b/src/ov_SC04_018/ov_SC04_018.c @@ -5180,7 +5180,13 @@ INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_801829AC); INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_80182A7C); -INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_80182ACC); +extern void func_80178CBC(s32 *a0, s32 a1); + extern short D_80191EB0; + void func_80182ACC(void *a0) { + *(short *)((char *)a0 + 0x2) = 0xB; + func_80178CBC(a0, &D_80191EB0); + } + INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_80182AF8); @@ -5276,7 +5282,13 @@ INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_80183A08); INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_80183A68); -INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_80183AA4); +extern void func_80178CBC(s32 *a0, s32 a1); + extern short D_801921B8; + void func_80183AA4(short *a0) { + *(short *)((char *)a0 + 0x2) = 0x5; + ((void (*)(s32, s32))func_80178CBC)((int)a0, (int)&D_801921B8); + } + INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_80183AD0); diff --git a/src/ov_SC04_019/ov_SC04_019.c b/src/ov_SC04_019/ov_SC04_019.c index 07121f491..deb4411b6 100644 --- a/src/ov_SC04_019/ov_SC04_019.c +++ b/src/ov_SC04_019/ov_SC04_019.c @@ -5069,7 +5069,13 @@ extern void func_80178CBC(s32 arg0, s32 arg1); INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_80181270); -INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_801812D0); +extern void func_80184CB8(s32 *a0, s32 a1); + extern short D_80191AB0; + void func_801812D0(short *a0) { + *(short *)((char *)a0 + 0x2) = 0x2; + func_80184CB8((s32 *)a0, (s32)&D_80191AB0); + } + INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_801812FC); diff --git a/src/ov_SC05_001/ov_SC05_001.c b/src/ov_SC05_001/ov_SC05_001.c index 3b5830f09..1e636c89d 100644 --- a/src/ov_SC05_001/ov_SC05_001.c +++ b/src/ov_SC05_001/ov_SC05_001.c @@ -4944,7 +4944,13 @@ void func_80180AA4(void) { INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_80180AAC); -INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_80180AB4); +extern void func_80029124(s32 arg0, s32 arg1); + extern void func_8012CAE4(void *a0); + void func_80180AB4(u8 *a0) { + func_80029124(0x137, 1); + func_8012CAE4(a0); + } + INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_80180AEC); @@ -5008,7 +5014,14 @@ INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_80181EC0); INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_80181F50); -INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_80181F94); +extern s32 func_8012BEE8(s32 arg); + extern void func_8018280C(s32 arg); + void func_80181F94(s32 arg0) { + if (!func_8012BEE8(arg0)) { + func_8018280C(arg0); + } + } + INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_80181FCC); diff --git a/src/ov_SC05_008/ov_SC05_008.c b/src/ov_SC05_008/ov_SC05_008.c index dfed96754..5ef9e648e 100644 --- a/src/ov_SC05_008/ov_SC05_008.c +++ b/src/ov_SC05_008/ov_SC05_008.c @@ -4962,7 +4962,12 @@ INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_801802EC); INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_801803B8); -INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80180464); +extern s32 func_8012AD50(void *a0); + void func_80180464(s32 *a0) { + *(s16 *)((s32)a0 + 0xFC) = 0; + ((void (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80180484); @@ -5033,7 +5038,12 @@ INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80180E84); INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80180F84); -INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80181030); +extern s32 func_8012AD50(void *a0); + void func_80181030(s32 *a0) { + *(s16 *)((s32)a0 + 0xFC) = 0; + ((void (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80181050); diff --git a/src/ov_SC05_010/ov_SC05_010.c b/src/ov_SC05_010/ov_SC05_010.c index 935137926..0897bf7b0 100644 --- a/src/ov_SC05_010/ov_SC05_010.c +++ b/src/ov_SC05_010/ov_SC05_010.c @@ -5059,7 +5059,13 @@ INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_80185D98); INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_80185EA0); -INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_80185F08); +extern void func_8017ECE4(void); + void func_80185F08(s32 arg0) { + if (*(u16 *)arg0 != 0) { + ((void (*)(void))func_8017ECE4)(); + } + } + INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_80185F38); diff --git a/src/ov_SC05_018/ov_SC05_018.c b/src/ov_SC05_018/ov_SC05_018.c index 7356d023c..7fc6ae4ae 100644 --- a/src/ov_SC05_018/ov_SC05_018.c +++ b/src/ov_SC05_018/ov_SC05_018.c @@ -4884,7 +4884,13 @@ INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018", func_8017EF88); INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018", func_8017EFE0); -INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018", func_8017F038); +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); +extern s32 D_8018A848; + +void func_8017F038(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_8018A848, 0x1000000); +} + INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018", func_8017F060); diff --git a/src/ov_SC06_000/ov_SC06_000.c b/src/ov_SC06_000/ov_SC06_000.c index 63d9cd873..fc79a59ea 100644 --- a/src/ov_SC06_000/ov_SC06_000.c +++ b/src/ov_SC06_000/ov_SC06_000.c @@ -4925,7 +4925,11 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_801808E0); INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80180A50); -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80180AB8); +extern void func_80183674(void); + void func_80180AB8(void) { + func_80183674(); + } + INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80180AD8); @@ -5093,7 +5097,11 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80182A30); INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80182A90); -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80182AD0); +extern void func_80181554(void); + void func_80182AD0(void) { + func_80181554(); + } + extern void func_80181774(void); void func_80182AF0(void) { diff --git a/src/ov_SC06_006/ov_SC06_006.c b/src/ov_SC06_006/ov_SC06_006.c index 14d804d62..d02cecc3c 100644 --- a/src/ov_SC06_006/ov_SC06_006.c +++ b/src/ov_SC06_006/ov_SC06_006.c @@ -4941,7 +4941,11 @@ INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006", func_8018056C); INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006", func_801805EC); -INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006", func_80180624); +extern s32 func_8018034C(void); + void func_80180624(void) { + ((void (*)(void))func_8018034C)(); + } + INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006", func_80180644); @@ -5044,7 +5048,11 @@ INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006", func_801811D4); INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006", func_801813D4); -INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006", func_801813F4); +extern void func_80146C3C(void); + void func_801813F4(void) { + func_80146C3C(); + } + INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006", func_80181414); diff --git a/src/ov_SC06_010/ov_SC06_010.c b/src/ov_SC06_010/ov_SC06_010.c index 9b5a2a6cd..c2e60d2da 100644 --- a/src/ov_SC06_010/ov_SC06_010.c +++ b/src/ov_SC06_010/ov_SC06_010.c @@ -4873,7 +4873,15 @@ INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801804B0); void func_80180598(void) { } -INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801805A0); +extern void func_8002A04C(s32 a0); + void func_801805A0(s32 *a0) { + *(s16 *)((s32)a0 + 0x2) = 0x4; + *(s16 *)((s32)a0 + 0x5C) = 0; + *(s16 *)((s32)a0 + 0x5E) = 0; + *(s8 *)((s32)a0 + 0xC1) = 0; + ((void (*)(void))func_8002A04C)(); + } + INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801805D0); diff --git a/src/ov_SC06_016/ov_SC06_016.c b/src/ov_SC06_016/ov_SC06_016.c index 7b06f7f7c..5cdfbe698 100644 --- a/src/ov_SC06_016/ov_SC06_016.c +++ b/src/ov_SC06_016/ov_SC06_016.c @@ -5019,7 +5019,17 @@ extern void func_8002D4C8(s32 arg0, s32 arg1); INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016", func_801822C4); -INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016", func_801822FC); +extern void func_80147084(s32 *a0); +extern void func_801472B4(void *a0); + +void func_801822FC(void) { + extern s32 D_80126B58; + register s32 p __asm__("$16"); + p = &D_80126B58; + ((void (*)(void *))func_80147084)((void *)p); + func_801472B4((void *)p); +} + INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016", func_80182334); diff --git a/src/ov_SC06_022/ov_SC06_022.c b/src/ov_SC06_022/ov_SC06_022.c index c61fc716e..71163bdb3 100644 --- a/src/ov_SC06_022/ov_SC06_022.c +++ b/src/ov_SC06_022/ov_SC06_022.c @@ -4815,7 +4815,14 @@ INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017D9C0); INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017DB58); -INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017DB74); +extern void func_8013B7F4(s32 arg0); +extern s32 D_80190E40[]; + +void func_8017DB74(int param_1) +{ + ((int (*)(int,int))func_8013B7F4)(D_80190E40[param_1],0); +} + INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017DBA4); diff --git a/src/ov_SC06_024/ov_SC06_024.c b/src/ov_SC06_024/ov_SC06_024.c index ecb2d22be..849f039ee 100644 --- a/src/ov_SC06_024/ov_SC06_024.c +++ b/src/ov_SC06_024/ov_SC06_024.c @@ -4781,7 +4781,13 @@ INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8017D098); INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8017D0D8); -INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8017D100); +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); +extern s32 D_801932B4; + +void func_8017D100(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_801932B4, 0x1000000); +} + extern void func_8016EE40(s32 a0, s32 a1, s32 a2); extern s32 D_801932C8; @@ -4965,7 +4971,12 @@ INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_80181FD4); INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_80182074); -INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_801823A8); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_801823A8(void *a0) { + *(s32 *)((char *)a0 + 0x1c) = 0x20; + ((void (*)(s32 *, s32))func_8012AD44)(a0, 0x4); + } + INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_801823D0); diff --git a/src/ov_SC06_029/ov_SC06_029.c b/src/ov_SC06_029/ov_SC06_029.c index 14aff06ac..04667109f 100644 --- a/src/ov_SC06_029/ov_SC06_029.c +++ b/src/ov_SC06_029/ov_SC06_029.c @@ -4807,7 +4807,11 @@ INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8017E32C); INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8017E36C); -INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8017E3E8); +extern s32 func_800D1EBC(void); + void func_8017E3E8(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8017E408); @@ -5330,7 +5334,11 @@ INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8018AF0C); INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8018AF48); -INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8018B148); +extern void func_8018B188(); + void func_8018B148(void) { + func_8018B188(); + } + extern void func_80146C3C(void); void func_8018B168(void) { diff --git a/src/ov_SC06_033/ov_SC06_033.c b/src/ov_SC06_033/ov_SC06_033.c index 3d2e2957c..f72569688 100644 --- a/src/ov_SC06_033/ov_SC06_033.c +++ b/src/ov_SC06_033/ov_SC06_033.c @@ -5268,13 +5268,25 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_801904E0); INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80190518); -INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80190540); +extern void func_8018F6EC(void); + void func_80190540(s32 *a0) { + s32 v1 = *(s32 *)((s32)a0 + 0x20); + *(u16 *)(v1 + 0x10) += 0x20; + func_8018F6EC(); + } + INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80190574); INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_801905C0); -INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_801906AC); +extern void func_8018F518(void); + void func_801906AC(s32 *a0) { + *(s32 *)((s32)a0 + 0x10) = *(s32 *)((s32)a0 + 0x10) >> 1; + *(s32 *)((s32)a0 + 0x18) = *(s32 *)((s32)a0 + 0x18) >> 1; + ((void (*)(void))func_8018F518)(); + } + extern void func_8018F518(void); void func_801906E0(s32 a0) { diff --git a/src/ov_SC07_000/ov_SC07_000.c b/src/ov_SC07_000/ov_SC07_000.c index 9a4ee9de4..8591a46e6 100644 --- a/src/ov_SC07_000/ov_SC07_000.c +++ b/src/ov_SC07_000/ov_SC07_000.c @@ -4851,7 +4851,11 @@ s32 func_8017E5B4(void) { } -INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_8017E5BC); +extern s32 func_80014C54(s32 arg0, s32 arg1, s32 arg2); + s16 func_8017E5BC(void) { + return func_80014C54(1, 0, 0x10); + } + extern s16 D_801D0B7C; void func_8017E5E8(void) { @@ -5029,7 +5033,13 @@ INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_801815F8); INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_80181670); -INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_801816AC); +extern s32 func_8012AD50(void *a0); + void func_801816AC(u8 *param_1) { + *(short *)(param_1 + 0xfc) = 0; + *(unsigned short *)(param_1 + 0x72) |= 0x1000; + ((void (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_801816D8); diff --git a/src/ov_SC07_002/ov_SC07_002.c b/src/ov_SC07_002/ov_SC07_002.c index 6359fcd39..4ec59fe69 100644 --- a/src/ov_SC07_002/ov_SC07_002.c +++ b/src/ov_SC07_002/ov_SC07_002.c @@ -4832,9 +4832,20 @@ INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8017EF74); void func_8017EFAC(void) { } -INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8017EFB4); +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); +extern s32 D_8018A2C8; + +void func_8017EFB4(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_8018A2C8, 0x1000000); +} + + +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); + extern s32 D_8018A2CC; + void func_8017EFDC(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_8018A2CC, 0x1000000); + } -INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8017EFDC); INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8017F004); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index ad9e9d511..1b8a107e6 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -24802,4 +24802,10 @@ ((s32 (*)(s32, s32))func_8002D4C8)(0x464, 0); \ } +#define DEFINE_func_801848E4() \ + extern void (*D_8018FE80[])(void); \ + void func_801848E4(void *a0) { \ + D_8018FE80[*(u16 *)((s32)a0 + 0x2)](); \ + } + #endif