From 3d90707d4147dd3158699b8d8cdbf106df26f247 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Wed, 1 Jul 2026 03:22:46 -0600 Subject: [PATCH] =?UTF-8?q?feat(decomp):=20bulk=5Fharvest=20=E2=80=94=20+6?= =?UTF-8?q?9=20fns=20across=2062=20binaries,=201=20propagated=20(fleet=206?= =?UTF-8?q?4.34%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/dedup.us.yaml | 7 +++++++ src/ov_SC01_009/ov_SC01_009.c | 7 ++++++- src/ov_SC02_005/ov_SC02_005.c | 12 ++++++++++-- src/ov_SC02_011/ov_SC02_011.c | 6 +++++- src/ov_SC02_017/ov_SC02_017.c | 8 +++++++- src/ov_SC02_028/ov_SC02_028.c | 7 ++++++- src/ov_SC02_031/ov_SC02_031.c | 7 ++++++- src/ov_SC02_035/ov_SC02_035.c | 7 ++++++- src/ov_SC03_001/ov_SC03_001.c | 16 ++++++++++++++-- src/ov_SC03_002/ov_SC03_002.c | 6 +++++- src/ov_SC03_006/ov_SC03_006.c | 12 ++++++++++-- src/ov_SC03_007/ov_SC03_007.c | 10 +++++++++- src/ov_SC03_011/ov_SC03_011.c | 6 +++++- src/ov_SC03_014/ov_SC03_014.c | 6 +++++- src/ov_SC03_015/ov_SC03_015.c | 12 ++++++++++-- src/ov_SC03_024/ov_SC03_024.c | 6 +++++- src/ov_SC03_028/ov_SC03_028.c | 12 ++++++++++-- src/ov_SC03_029/ov_SC03_029.c | 8 +++++++- src/ov_SC03_030/ov_SC03_030.c | 7 ++++++- src/ov_SC03_031/ov_SC03_031.c | 7 ++++++- src/ov_SC03_089/ov_SC03_089.c | 13 +++++++++++-- src/ov_SC03_090/ov_SC03_090.c | 6 +++++- src/ov_SC03_091/ov_SC03_091.c | 7 ++++++- src/ov_SC03_092/ov_SC03_092.c | 5 ++++- src/ov_SC03_093/ov_SC03_093.c | 7 ++++++- src/ov_SC03_095/ov_SC03_095.c | 7 ++++++- src/ov_SC03_096/ov_SC03_096.c | 14 ++++++++++++-- src/ov_SC03_104/ov_SC03_104.c | 6 +++++- src/ov_SC03_105/ov_SC03_105.c | 6 +++++- src/ov_SC03_110/ov_SC03_110.c | 10 +++++++++- src/ov_SC03_115/ov_SC03_115.c | 6 +++++- src/ov_SC03_116/ov_SC03_116.c | 6 +++++- src/ov_SC03_117/ov_SC03_117.c | 6 +++++- src/ov_SC03_118/ov_SC03_118.c | 6 +++++- src/ov_SC03_119/ov_SC03_119.c | 6 +++++- src/ov_SC03_124/ov_SC03_124.c | 5 ++++- src/ov_SC03_125/ov_SC03_125.c | 6 +++++- src/ov_SC04_002/ov_SC04_002.c | 6 +++++- src/ov_SC04_005/ov_SC04_005.c | 5 ++++- src/ov_SC04_007/ov_SC04_007.c | 5 ++++- src/ov_SC04_009/ov_SC04_009.c | 9 ++++++++- src/ov_SC04_010/ov_SC04_010.c | 6 +++++- src/ov_SC04_011/ov_SC04_011.c | 5 ++++- src/ov_SC04_018/ov_SC04_018.c | 3 ++- src/ov_SC04_019/ov_SC04_019.c | 8 ++++++-- src/ov_SC04_020/ov_SC04_020.c | 5 ++++- src/ov_SC05_001/ov_SC05_001.c | 8 +++++++- src/ov_SC05_008/ov_SC05_008.c | 7 ++++++- src/ov_SC05_010/ov_SC05_010.c | 6 +++++- src/ov_SC05_017/ov_SC05_017.c | 5 ++++- src/ov_SC06_000/ov_SC06_000.c | 6 +++++- src/ov_SC06_008/ov_SC06_008.c | 6 +++++- src/ov_SC06_010/ov_SC06_010.c | 6 +++++- src/ov_SC06_011/ov_SC06_011.c | 8 +++++++- src/ov_SC06_013/ov_SC06_013.c | 8 +++++++- src/ov_SC06_014/ov_SC06_014.c | 8 +++++++- src/ov_SC06_025/ov_SC06_025.c | 5 ++++- src/ov_SC06_030/ov_SC06_030.c | 6 +++++- src/ov_SC06_033/ov_SC06_033.c | 6 +++++- src/ov_SC07_000/ov_SC07_000.c | 6 +++++- src/ov_SC07_001/ov_SC07_001.c | 6 +++++- src/ov_SC07_002/ov_SC07_002.c | 6 +++++- src/ov_SC07_009/ov_SC07_009.c | 6 +++++- src/shared/engine_core.h | 5 +++++ 64 files changed, 387 insertions(+), 70 deletions(-) diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index df6a436274..c6357b1dd9 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -12343,3 +12343,10 @@ groups: func: DEFINE_func_8018B9D0 vram: 0x8018B9D0 binaries: [ov_SC04_018, ov_SC04_019] + - id: E_func_8017E0FC + tier: h_exact + hash: 0e3d12a08721d368a6abdcc0e6b6ef4d02a64068 + source: src/shared/engine_core.h + func: DEFINE_func_8017E0FC + vram: 0x8017E0FC + binaries: [ov_SC04_018, ov_SC04_019] diff --git a/src/ov_SC01_009/ov_SC01_009.c b/src/ov_SC01_009/ov_SC01_009.c index 8e39fdcee5..0d7bcf88ca 100644 --- a/src/ov_SC01_009/ov_SC01_009.c +++ b/src/ov_SC01_009/ov_SC01_009.c @@ -5014,7 +5014,12 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", listCdBuffer); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_801803E4); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80180540); +extern void (*D_801EEDBC[])(void); + +void func_80180540(void *a0) { + D_801EEDBC[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8018057C); diff --git a/src/ov_SC02_005/ov_SC02_005.c b/src/ov_SC02_005/ov_SC02_005.c index 76184642a4..98791d9bd4 100644 --- a/src/ov_SC02_005/ov_SC02_005.c +++ b/src/ov_SC02_005/ov_SC02_005.c @@ -4915,7 +4915,11 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017F394); INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017F3C4); -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017F408); +extern void func_8016F0E4(void); + void func_8017F408(void) { + func_8016F0E4(); + } + INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017F428); @@ -5968,7 +5972,11 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80190108); INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80190144); -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80190344); +extern void func_80190384(void); + void func_80190344(void) { + func_80190384(); + } + extern void func_80146C3C(void); void func_80190364(void) { diff --git a/src/ov_SC02_011/ov_SC02_011.c b/src/ov_SC02_011/ov_SC02_011.c index 912b9d37bd..0b3973b39b 100644 --- a/src/ov_SC02_011/ov_SC02_011.c +++ b/src/ov_SC02_011/ov_SC02_011.c @@ -5580,7 +5580,11 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_8018A438); INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_8018A5E4); -INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_8018A620); +extern s32 func_8012AD50(void *a0); + void func_8018A620(void) { + ((void (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_8018A640); diff --git a/src/ov_SC02_017/ov_SC02_017.c b/src/ov_SC02_017/ov_SC02_017.c index a84449ca05..b68384a345 100644 --- a/src/ov_SC02_017/ov_SC02_017.c +++ b/src/ov_SC02_017/ov_SC02_017.c @@ -4952,7 +4952,13 @@ INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_8017F474); INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_8017F4AC); -INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_8017F59C); +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); +extern s32 D_8018E17C; + +void func_8017F59C(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_8018E17C, 0x1000000); +} + INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_8017F5C4); diff --git a/src/ov_SC02_028/ov_SC02_028.c b/src/ov_SC02_028/ov_SC02_028.c index 65f7cd441f..ae67a3b8fe 100644 --- a/src/ov_SC02_028/ov_SC02_028.c +++ b/src/ov_SC02_028/ov_SC02_028.c @@ -5046,7 +5046,12 @@ INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028", func_80180718); INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028", func_8018077C); -INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028", func_80180804); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_80180804(void * arg0) { + *(s32 *)((char *)arg0 + 0x1c) = 0x10; + ((void (*)(s32, s32))func_8012AD44)((s32)arg0, 0x1); + } + INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028", func_8018082C); diff --git a/src/ov_SC02_031/ov_SC02_031.c b/src/ov_SC02_031/ov_SC02_031.c index 9780aafcd6..f7c7daf92c 100644 --- a/src/ov_SC02_031/ov_SC02_031.c +++ b/src/ov_SC02_031/ov_SC02_031.c @@ -5211,7 +5211,12 @@ INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031", func_801844F4); INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031", func_80184640); -INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031", func_80184760); +extern void func_8012C218(void *a0); + void func_80184760(void * arg0) { + *(short *)((char *)arg0 + 0x2) = 2; + ((void (*)(s32))func_8012C218)(*(s32 *)((char *)arg0 + 0xcc)); + } + INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031", func_8018478C); diff --git a/src/ov_SC02_035/ov_SC02_035.c b/src/ov_SC02_035/ov_SC02_035.c index 27f333c564..96d7bdb6dd 100644 --- a/src/ov_SC02_035/ov_SC02_035.c +++ b/src/ov_SC02_035/ov_SC02_035.c @@ -4955,7 +4955,12 @@ INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035", func_801803A4); INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035", func_801803F8); -INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035", func_801805FC); +extern void (*D_80198E30[])(void); + +void func_801805FC(void *a0) { + D_80198E30[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035", func_80180638); diff --git a/src/ov_SC03_001/ov_SC03_001.c b/src/ov_SC03_001/ov_SC03_001.c index d3ab07d779..49bdf64f93 100644 --- a/src/ov_SC03_001/ov_SC03_001.c +++ b/src/ov_SC03_001/ov_SC03_001.c @@ -5368,7 +5368,13 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_801840E4); INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_80184210); -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8018424C); +extern void func_80178CBC(s32 *a0, s32 a1); + extern short D_8019246C; + void func_8018424C(short *a0) { + *(short *)((char *)a0 + 0x2) = 4; + ((void (*)(s32, s32))func_80178CBC)((int)a0, (int)&D_8019246C); + } + INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_80184278); @@ -5542,7 +5548,13 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_80186124); INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8018617C); -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_80186288); +extern void func_80187778(s32 *a0, s32 a1); + extern short D_80192970; + void func_80186288(short *param_1) { + param_1[1] = 2; + func_80187778(param_1, &D_80192970); + } + INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_801862B4); diff --git a/src/ov_SC03_002/ov_SC03_002.c b/src/ov_SC03_002/ov_SC03_002.c index c44f194102..143477742d 100644 --- a/src/ov_SC03_002/ov_SC03_002.c +++ b/src/ov_SC03_002/ov_SC03_002.c @@ -5305,7 +5305,11 @@ INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80185258); INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_801852C8); -INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_801852E0); +extern void func_8002D4C8(s32 arg0, s32 arg1); + void func_801852E0(void) { + func_8002D4C8(0x7E0, 0); + } + INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80185304); diff --git a/src/ov_SC03_006/ov_SC03_006.c b/src/ov_SC03_006/ov_SC03_006.c index 5a567ea010..50c9efa54f 100644 --- a/src/ov_SC03_006/ov_SC03_006.c +++ b/src/ov_SC03_006/ov_SC03_006.c @@ -4944,7 +4944,11 @@ INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8018112C); INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_801811CC); -INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_80181208); +extern s32 func_80181228(); + void func_80181208(void) { + func_80181228(); + } + INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_80181228); @@ -5359,7 +5363,11 @@ INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_801893BC); INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8018944C); -INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_80189478); +extern s32 func_80189CD4(void); + void func_80189478(void) { + func_80189CD4(); + } + INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_80189498); diff --git a/src/ov_SC03_007/ov_SC03_007.c b/src/ov_SC03_007/ov_SC03_007.c index f22cfdba4c..ba5802abf1 100644 --- a/src/ov_SC03_007/ov_SC03_007.c +++ b/src/ov_SC03_007/ov_SC03_007.c @@ -4767,7 +4767,15 @@ INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_8017D4EC); INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_8017D514); -INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_8017D53C); +extern s32 D_8018CFA8; + extern u8 *D_801274C8; + extern s32 D_8018D034; + extern void *D_801274CC; + void func_8017D53C(void) { + D_801274C8 = &D_8018CFA8; + D_801274CC = &D_8018D034; + } + INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_8017D564); diff --git a/src/ov_SC03_011/ov_SC03_011.c b/src/ov_SC03_011/ov_SC03_011.c index 59568c5aae..c945dac54b 100644 --- a/src/ov_SC03_011/ov_SC03_011.c +++ b/src/ov_SC03_011/ov_SC03_011.c @@ -5029,7 +5029,11 @@ INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011", func_80180658); INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011", func_80180694); -INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011", func_801806B4); +extern void func_80162120(void); + void func_801806B4(void) { + ((s32 (*)(void))func_80162120)(); + } + INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011", func_801806D4); diff --git a/src/ov_SC03_014/ov_SC03_014.c b/src/ov_SC03_014/ov_SC03_014.c index f0428d82e7..d405afd92f 100644 --- a/src/ov_SC03_014/ov_SC03_014.c +++ b/src/ov_SC03_014/ov_SC03_014.c @@ -5115,7 +5115,11 @@ INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_801856C4); INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_80185744); -INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_80185764); +extern s32 func_8001AAA0(s32 arg); + s32 func_80185764(void) { + return func_8001AAA0(0x52) != 0; + } + INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_80185784); diff --git a/src/ov_SC03_015/ov_SC03_015.c b/src/ov_SC03_015/ov_SC03_015.c index 7a653e64dd..73a4930714 100644 --- a/src/ov_SC03_015/ov_SC03_015.c +++ b/src/ov_SC03_015/ov_SC03_015.c @@ -5126,7 +5126,11 @@ extern s32 func_8001AAA0(s32 arg); INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_801857A4); -INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_801857C4); +extern void func_800D0C48(s32 arg); + void func_801857C4(void) { + func_800D0C48(0x1); + } + INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_801857E4); @@ -5251,7 +5255,11 @@ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_80189050); INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_801890B8); -INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_801890D8); +extern s32 func_8017BFA0(void); + void func_801890D8(void) { + func_8017BFA0(); + } + DEFINE_func_801890F8() /* dedup: shared engine-core @0x801890F8 (src/shared) */ diff --git a/src/ov_SC03_024/ov_SC03_024.c b/src/ov_SC03_024/ov_SC03_024.c index 923e2f51a3..3633991e66 100644 --- a/src/ov_SC03_024/ov_SC03_024.c +++ b/src/ov_SC03_024/ov_SC03_024.c @@ -5077,7 +5077,11 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_80182408); INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_801824B8); -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_801824D8); +extern s32 func_8013CAE8(void); + void func_801824D8(void) { + func_8013CAE8(); + } + INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_801824F8); diff --git a/src/ov_SC03_028/ov_SC03_028.c b/src/ov_SC03_028/ov_SC03_028.c index a76aed23f9..1d7adc1700 100644 --- a/src/ov_SC03_028/ov_SC03_028.c +++ b/src/ov_SC03_028/ov_SC03_028.c @@ -5086,7 +5086,11 @@ INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_80186754); INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_80186790); -INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_801867C0); +extern void func_80180AC4(s32 arg0, s32 arg1); + void func_801867C0(s32 arg0) { + func_80180AC4(arg0, 0x14400); + } + INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_801867E4); @@ -5303,7 +5307,11 @@ INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_8018ABC4); INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_8018AC5C); -INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_8018AD80); +extern void func_8013CB84(void); + void func_8018AD80(void) { + func_8013CB84(); + } + INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_8018ADA0); diff --git a/src/ov_SC03_029/ov_SC03_029.c b/src/ov_SC03_029/ov_SC03_029.c index 2cd631ec41..a374bc2f47 100644 --- a/src/ov_SC03_029/ov_SC03_029.c +++ b/src/ov_SC03_029/ov_SC03_029.c @@ -5292,7 +5292,13 @@ INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029", func_80186B4C); INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029", func_80186CE4); -INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029", func_80186D34); +extern void func_8013240C(s32 a0); +extern s32 D_801D98C8; + +void func_80186D34(void) { + ((void (*)(s32))func_8013240C)((s32)&D_801D98C8); +} + INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029", func_80186D5C); diff --git a/src/ov_SC03_030/ov_SC03_030.c b/src/ov_SC03_030/ov_SC03_030.c index a99a4707e8..b0675955a4 100644 --- a/src/ov_SC03_030/ov_SC03_030.c +++ b/src/ov_SC03_030/ov_SC03_030.c @@ -4825,7 +4825,12 @@ INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030", func_8017E090); INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030", func_8017E194); -INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030", func_8017E1BC); +extern void func_8017E1E8(void *a0); + void func_8017E1BC(u8 *a0) { + *(u16 *)(a0 + 0xAE) |= 0xFF00; + ((void (*)(void))func_8017E1E8)(); + } + void func_8017E1E8(void *a0) { *(u16 *)((char *)a0 + 0xaa) &= 0xff00; diff --git a/src/ov_SC03_031/ov_SC03_031.c b/src/ov_SC03_031/ov_SC03_031.c index 5cdf0595f0..15bf80e31b 100644 --- a/src/ov_SC03_031/ov_SC03_031.c +++ b/src/ov_SC03_031/ov_SC03_031.c @@ -5030,7 +5030,12 @@ INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031", func_80181C7C); INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031", func_80181DC8); -INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031", func_80181EE8); +extern void func_8012C218(void *a0); + void func_80181EE8(void *arg0) { + *(s16 *)((char *)arg0 + 0x2) = 2; + ((void (*)(s32 *))func_8012C218)(*(s32 **)((char *)arg0 + 0xcc)); + } + INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031", func_80181F14); diff --git a/src/ov_SC03_089/ov_SC03_089.c b/src/ov_SC03_089/ov_SC03_089.c index 7aa7d24641..24fca20406 100644 --- a/src/ov_SC03_089/ov_SC03_089.c +++ b/src/ov_SC03_089/ov_SC03_089.c @@ -4838,7 +4838,11 @@ s32 func_8018122C(void) { INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089", func_80181234); -INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089", func_80181294); +extern void func_800D1EBC(void); + void func_80181294(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089", func_801812B4); @@ -5049,7 +5053,12 @@ INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089", func_801851A8); INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089", func_8018545C); -INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089", func_8018549C); +void func_8018549C(s32 arg0) { + if (arg0 != 0) { + *(s32 *)(arg0 + 0x4) &= 0x7FFFFFFF; + } + } + void func_801854BC(s32 arg0) { if (arg0 != 0) { diff --git a/src/ov_SC03_090/ov_SC03_090.c b/src/ov_SC03_090/ov_SC03_090.c index f0164b2cdc..c48373665a 100644 --- a/src/ov_SC03_090/ov_SC03_090.c +++ b/src/ov_SC03_090/ov_SC03_090.c @@ -4836,7 +4836,11 @@ s32 func_8018126C(void) { INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090", func_80181274); -INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090", func_801812D4); +extern void func_800D1EBC(void); + void func_801812D4(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090", func_801812F4); diff --git a/src/ov_SC03_091/ov_SC03_091.c b/src/ov_SC03_091/ov_SC03_091.c index 365d4266fd..efb4884c27 100644 --- a/src/ov_SC03_091/ov_SC03_091.c +++ b/src/ov_SC03_091/ov_SC03_091.c @@ -5065,7 +5065,12 @@ INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_80185D2C); INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_80185FE0); -INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_80186020); +void func_80186020(s32 *a0) { + if (a0 != 0) { + *(s32 *)((char *)a0 + 0x4) &= 0x7FFFFFFF; + } + } + INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_80186040); diff --git a/src/ov_SC03_092/ov_SC03_092.c b/src/ov_SC03_092/ov_SC03_092.c index 5975d8ce36..04121990ac 100644 --- a/src/ov_SC03_092/ov_SC03_092.c +++ b/src/ov_SC03_092/ov_SC03_092.c @@ -4905,7 +4905,10 @@ INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092", func_8017F49C); INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092", func_8017F4BC); -INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092", func_8017F4F4); +s32 func_8017F4F4(s32 *a0) { + return *(u16 *)((s32)a0 + 0x2) == 0x3; + } + INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092", func_8017F508); diff --git a/src/ov_SC03_093/ov_SC03_093.c b/src/ov_SC03_093/ov_SC03_093.c index e5f74ba995..14b8562883 100644 --- a/src/ov_SC03_093/ov_SC03_093.c +++ b/src/ov_SC03_093/ov_SC03_093.c @@ -4873,7 +4873,12 @@ INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093", func_8017F2B8); INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093", func_8017F2D8); -INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093", func_8017F374); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_8017F374(void *a0) { + *(s16 *)((char *)a0 + 0xFC) = 0; + ((void (*)(s32 *, s32))func_8012AD44)(a0, 0x1); + } + INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093", func_8017F398); diff --git a/src/ov_SC03_095/ov_SC03_095.c b/src/ov_SC03_095/ov_SC03_095.c index 8a19d17028..99b4698050 100644 --- a/src/ov_SC03_095/ov_SC03_095.c +++ b/src/ov_SC03_095/ov_SC03_095.c @@ -4814,7 +4814,12 @@ extern void func_8012AD44(s32 *a0, s16 a1); INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095", func_8017D960); -INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095", func_8017DB10); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_8017DB10(s32 a0) { + *(s16 *)(a0 + 0xFC) = 1; + ((void (*)(void *, s32))func_8012AD44)((void *)a0, 2); + } + INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095", func_8017DB38); diff --git a/src/ov_SC03_096/ov_SC03_096.c b/src/ov_SC03_096/ov_SC03_096.c index e635402f7c..f806a98744 100644 --- a/src/ov_SC03_096/ov_SC03_096.c +++ b/src/ov_SC03_096/ov_SC03_096.c @@ -4847,11 +4847,21 @@ INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096", func_8017ECD4); INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096", func_8017EDAC); -INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096", func_8017EE48); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_8017EE48(s32 a0) { + *(s16 *)(a0 + 0xFC) = 0; + ((void (*)(void *, s32))func_8012AD44)((void *)a0, 0x1); + } + INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096", func_8017EE6C); -INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096", func_8017F01C); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_8017F01C(s32 a0) { + *(s16 *)(a0 + 0xFC) = 1; + ((void (*)(void *, s32))func_8012AD44)((void *)a0, 2); + } + INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096", func_8017F044); diff --git a/src/ov_SC03_104/ov_SC03_104.c b/src/ov_SC03_104/ov_SC03_104.c index b129346394..0b8e5ab082 100644 --- a/src/ov_SC03_104/ov_SC03_104.c +++ b/src/ov_SC03_104/ov_SC03_104.c @@ -4824,7 +4824,11 @@ s32 func_801810F8(void) { INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_80181100); -INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_80181168); +extern s32 func_800D1EBC(void); + void func_80181168(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_80181188); diff --git a/src/ov_SC03_105/ov_SC03_105.c b/src/ov_SC03_105/ov_SC03_105.c index d6590641cf..89a334c477 100644 --- a/src/ov_SC03_105/ov_SC03_105.c +++ b/src/ov_SC03_105/ov_SC03_105.c @@ -5058,7 +5058,11 @@ void func_80187038(void) { INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105", func_80187040); -INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105", func_80187060); +extern void func_80189718(void); + void func_80187060(void) { + func_80189718(); + } + INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105", func_80187080); diff --git a/src/ov_SC03_110/ov_SC03_110.c b/src/ov_SC03_110/ov_SC03_110.c index ac5f4cbabf..a752836d78 100644 --- a/src/ov_SC03_110/ov_SC03_110.c +++ b/src/ov_SC03_110/ov_SC03_110.c @@ -4909,7 +4909,15 @@ INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110", func_80180BA0); INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110", func_80180BB8); -INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110", func_80180C08); +extern void func_80180E10(s32 arg0); + extern void func_8002A04C(s32 a0); + extern void func_80180C40(s32 arg0); + void func_80180C08(s32 arg0) { + func_80180E10(arg0); + ((void (*)(s32))func_8002A04C)(arg0); + func_80180C40(arg0); + } + INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110", func_80180C40); diff --git a/src/ov_SC03_115/ov_SC03_115.c b/src/ov_SC03_115/ov_SC03_115.c index 116391fddc..21ebf93670 100644 --- a/src/ov_SC03_115/ov_SC03_115.c +++ b/src/ov_SC03_115/ov_SC03_115.c @@ -4822,7 +4822,11 @@ extern s32 func_8017D058(void); } -INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115", func_8017D730); +extern s32 func_8017D2BC(void); + void func_8017D730(void) { + func_8017D2BC(); + } + INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115", func_8017D750); diff --git a/src/ov_SC03_116/ov_SC03_116.c b/src/ov_SC03_116/ov_SC03_116.c index 2da4bca5bd..aed8491e5c 100644 --- a/src/ov_SC03_116/ov_SC03_116.c +++ b/src/ov_SC03_116/ov_SC03_116.c @@ -4878,7 +4878,11 @@ extern s32 func_80181954(void); } -INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116", func_80182260); +extern s32 func_801819A4(void); + void func_80182260(void) { + func_801819A4(); + } + INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116", func_80182280); diff --git a/src/ov_SC03_117/ov_SC03_117.c b/src/ov_SC03_117/ov_SC03_117.c index 9da61dfe65..1113b14d26 100644 --- a/src/ov_SC03_117/ov_SC03_117.c +++ b/src/ov_SC03_117/ov_SC03_117.c @@ -4991,7 +4991,11 @@ void func_80180C68(void) { INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117", func_80180C70); -INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117", func_80180C78); +extern void func_8013373C(s32 arg0); + void func_80180C78(void) { + func_8013373C(0); + } + INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117", func_80180C98); diff --git a/src/ov_SC03_118/ov_SC03_118.c b/src/ov_SC03_118/ov_SC03_118.c index 7dfbeee3d5..21dd47d20e 100644 --- a/src/ov_SC03_118/ov_SC03_118.c +++ b/src/ov_SC03_118/ov_SC03_118.c @@ -5345,7 +5345,11 @@ INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118", func_80188EB0); INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118", func_80188F14); -INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118", func_80188F90); +extern void func_80131E00(struct S80131E00 *a0, s32 a1); + void func_80188F90(s32 arg0) { + ((void (*)(s32, s32))func_80131E00)(arg0, 0x3); + } + INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118", func_80188FB0); diff --git a/src/ov_SC03_119/ov_SC03_119.c b/src/ov_SC03_119/ov_SC03_119.c index 46e8af6340..bebf4d1102 100644 --- a/src/ov_SC03_119/ov_SC03_119.c +++ b/src/ov_SC03_119/ov_SC03_119.c @@ -5158,7 +5158,11 @@ INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119", func_801845C8); INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119", func_80184618); -INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119", func_80184644); +extern s32 func_8001AAA0(s32 arg); + s32 func_80184644(void) { + return func_8001AAA0(0x5A) != 0; + } + INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119", func_80184664); diff --git a/src/ov_SC03_124/ov_SC03_124.c b/src/ov_SC03_124/ov_SC03_124.c index 44449390db..f023214af9 100644 --- a/src/ov_SC03_124/ov_SC03_124.c +++ b/src/ov_SC03_124/ov_SC03_124.c @@ -4996,7 +4996,10 @@ INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_801801B0); INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_801801F4); -INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_80180230); +void func_80180230(void *a0) { + *(short *)((char *)a0 + 0x2) = 0x5; + } + INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_8018023C); diff --git a/src/ov_SC03_125/ov_SC03_125.c b/src/ov_SC03_125/ov_SC03_125.c index 075572d7f8..4aac0cd41c 100644 --- a/src/ov_SC03_125/ov_SC03_125.c +++ b/src/ov_SC03_125/ov_SC03_125.c @@ -4825,7 +4825,11 @@ INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_8017E7E4); INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_8017E820); -INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_8017E85C); +extern s32 D_80127050; + void func_8017E85C(void) { + D_80127050 = 0x1; + } + INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_8017E870); diff --git a/src/ov_SC04_002/ov_SC04_002.c b/src/ov_SC04_002/ov_SC04_002.c index cf10de0939..f91048caf9 100644 --- a/src/ov_SC04_002/ov_SC04_002.c +++ b/src/ov_SC04_002/ov_SC04_002.c @@ -4885,7 +4885,11 @@ INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_8017F94C); INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_8017F98C); -INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_8017FA08); +extern void func_800D1EBC(void); + void func_8017FA08(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_8017FA28); diff --git a/src/ov_SC04_005/ov_SC04_005.c b/src/ov_SC04_005/ov_SC04_005.c index 075c5f2333..7a98f8d8fe 100644 --- a/src/ov_SC04_005/ov_SC04_005.c +++ b/src/ov_SC04_005/ov_SC04_005.c @@ -5184,7 +5184,10 @@ INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005", func_80185EA8); INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005", func_80185EE4); -INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005", func_80185F40); +void func_80185F40(void *a0) { + *(s16 *)((s32)a0 + 0x2) += 1; + } + INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005", func_80185F54); diff --git a/src/ov_SC04_007/ov_SC04_007.c b/src/ov_SC04_007/ov_SC04_007.c index d84ac4fa3a..5bb8411ece 100644 --- a/src/ov_SC04_007/ov_SC04_007.c +++ b/src/ov_SC04_007/ov_SC04_007.c @@ -4995,7 +4995,10 @@ INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_80182514); INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_80182550); -INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_801825AC); +void func_801825AC(void *a0) { + *(s16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1; + } + INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_801825C0); diff --git a/src/ov_SC04_009/ov_SC04_009.c b/src/ov_SC04_009/ov_SC04_009.c index 6bf73e655e..d9d6f8d3f7 100644 --- a/src/ov_SC04_009/ov_SC04_009.c +++ b/src/ov_SC04_009/ov_SC04_009.c @@ -4787,7 +4787,14 @@ INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009", func_8017D420); INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009", func_8017D450); -INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009", func_8017D48C); +void func_8017D48C(void *a0) { + *(u16 *)((s32)a0 + 0x100) = 0; + *(u16 *)((s32)a0 + 0x104) = 0; + *(u16 *)((s32)a0 + 0x108) = 0; + *(u16 *)((s32)a0 + 0x102) = *(u16 *)((s32)a0 + 0xE); + *(u16 *)((s32)a0 + 0x106) = *(u16 *)((s32)a0 + 0xA); + } + INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009", func_8017D4AC); diff --git a/src/ov_SC04_010/ov_SC04_010.c b/src/ov_SC04_010/ov_SC04_010.c index 2fd2ffaade..86e6f53e20 100644 --- a/src/ov_SC04_010/ov_SC04_010.c +++ b/src/ov_SC04_010/ov_SC04_010.c @@ -4813,7 +4813,11 @@ INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010", func_8017D6C4); INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010", func_8017D6CC); -INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010", func_8017D7A0); +extern s32 func_8012C588(s32 a0, s32 a1); + void func_8017D7A0(u8 *a0) { + ((void (*)(s32, s32))func_8012C588)(0x2D6, (s32)a0); + } + INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010", func_8017D7C4); diff --git a/src/ov_SC04_011/ov_SC04_011.c b/src/ov_SC04_011/ov_SC04_011.c index 843fe9b320..d2204e1cc5 100644 --- a/src/ov_SC04_011/ov_SC04_011.c +++ b/src/ov_SC04_011/ov_SC04_011.c @@ -5018,7 +5018,10 @@ s32 func_80183008(void) { } -INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_80183010); +s32 func_80183010(s32 *a0) { + return *(s16 *)((s32)a0 + 0x10A); + } + INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8018301C); diff --git a/src/ov_SC04_018/ov_SC04_018.c b/src/ov_SC04_018/ov_SC04_018.c index fe2f82e678..5ae5c7c912 100644 --- a/src/ov_SC04_018/ov_SC04_018.c +++ b/src/ov_SC04_018/ov_SC04_018.c @@ -4827,7 +4827,8 @@ INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8017E088); INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8017E0C0); -INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8017E0FC); +DEFINE_func_8017E0FC() /* dedup: shared engine-core @0x8017E0FC (src/shared) */ + INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8017E110); diff --git a/src/ov_SC04_019/ov_SC04_019.c b/src/ov_SC04_019/ov_SC04_019.c index 0940ad75c9..11aea1892d 100644 --- a/src/ov_SC04_019/ov_SC04_019.c +++ b/src/ov_SC04_019/ov_SC04_019.c @@ -4817,7 +4817,11 @@ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8017DFAC); INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8017DFE8); -INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8017E024); +extern s32 D_80127050; + void func_8017E024(void) { + D_80127050 = 1; + } + INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8017E038); @@ -4827,7 +4831,7 @@ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8017E088); INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8017E0C0); -INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8017E0FC); +DEFINE_func_8017E0FC() /* dedup: shared engine-core @0x8017E0FC (src/shared) */ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8017E110); diff --git a/src/ov_SC04_020/ov_SC04_020.c b/src/ov_SC04_020/ov_SC04_020.c index 1974a216ae..117b344294 100644 --- a/src/ov_SC04_020/ov_SC04_020.c +++ b/src/ov_SC04_020/ov_SC04_020.c @@ -4831,7 +4831,10 @@ extern s32 D_80127050; INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020", func_8017E848); -INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020", func_8017E884); +void func_8017E884(void *a0) { + *(u8 *)((s32)a0 + 0x214) += 1; + } + INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020", func_8017E898); diff --git a/src/ov_SC05_001/ov_SC05_001.c b/src/ov_SC05_001/ov_SC05_001.c index 3dbd3a4b76..49dccd2e1b 100644 --- a/src/ov_SC05_001/ov_SC05_001.c +++ b/src/ov_SC05_001/ov_SC05_001.c @@ -5083,7 +5083,13 @@ INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_80184430); INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_80184494); -INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_801844E0); +void func_801844E0(void *a0) { + s32 v1 = *(s32 *)((s32)a0 + 0x20); + *(s32 *)((s32)a0 + 0x1C) = 0x1E; + *(s16 *)((s32)a0 + 0x5C) = 0; + *(s16 *)(v1 + 0x10) = 0; + } + INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_801844F8); diff --git a/src/ov_SC05_008/ov_SC05_008.c b/src/ov_SC05_008/ov_SC05_008.c index bdb2e2b1d7..92dca780a3 100644 --- a/src/ov_SC05_008/ov_SC05_008.c +++ b/src/ov_SC05_008/ov_SC05_008.c @@ -5060,7 +5060,12 @@ INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80181ED0); INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80181F40); -INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80181FEC); +extern s32 func_8012AD50(void *a0); + void func_80181FEC(s32 *a0) { + *(s16 *)((s32)a0 + 0xFC) = 0; + ((void (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_8018200C); diff --git a/src/ov_SC05_010/ov_SC05_010.c b/src/ov_SC05_010/ov_SC05_010.c index 45f09e1e88..54641bb125 100644 --- a/src/ov_SC05_010/ov_SC05_010.c +++ b/src/ov_SC05_010/ov_SC05_010.c @@ -5136,7 +5136,11 @@ INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_801878E8); INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_80187AE8); -INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_80187B08); +extern void func_80146C3C(void); + void func_80187B08(void) { + func_80146C3C(); + } + INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_80187B28); diff --git a/src/ov_SC05_017/ov_SC05_017.c b/src/ov_SC05_017/ov_SC05_017.c index 2fb5133c79..0bdc1d51c4 100644 --- a/src/ov_SC05_017/ov_SC05_017.c +++ b/src/ov_SC05_017/ov_SC05_017.c @@ -5572,7 +5572,10 @@ INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_8018B498); INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_8018B4FC); -INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_8018B568); +void func_8018B568(void *a0) { + M2C_FIELD(a0, s16 *, 0x2) = 2; + } + INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_8018B574); diff --git a/src/ov_SC06_000/ov_SC06_000.c b/src/ov_SC06_000/ov_SC06_000.c index e01ee2799b..e7e7c87ca5 100644 --- a/src/ov_SC06_000/ov_SC06_000.c +++ b/src/ov_SC06_000/ov_SC06_000.c @@ -5177,7 +5177,11 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_801846BC); INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_801846F8); -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80184808); +void func_80184808(void *a0) { + *(s32 *)((s32)a0 + 0x48) = 0x1400; + *(s32 *)((s32)a0 + 0x14) = 0; + } + INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80184818); diff --git a/src/ov_SC06_008/ov_SC06_008.c b/src/ov_SC06_008/ov_SC06_008.c index 8ecff16b66..e86a0d559b 100644 --- a/src/ov_SC06_008/ov_SC06_008.c +++ b/src/ov_SC06_008/ov_SC06_008.c @@ -5004,7 +5004,11 @@ INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008", func_801841BC); INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008", func_80184234); -INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008", func_80184264); +void func_80184264(void *a0) { + *(s32 *)((s32)a0 + 0x0) = 0xF0F0F0; + *(s32 *)((s32)a0 + 0x4) = 0; + } + INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008", func_80184278); diff --git a/src/ov_SC06_010/ov_SC06_010.c b/src/ov_SC06_010/ov_SC06_010.c index 52baa03a46..a514e2ab33 100644 --- a/src/ov_SC06_010/ov_SC06_010.c +++ b/src/ov_SC06_010/ov_SC06_010.c @@ -4883,7 +4883,11 @@ INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_8018098C); INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801809E4); -INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_80180A68); +extern s32 func_80180A88(void); + s32 func_80180A68(void) { + return func_80180A88(); + } + INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_80180A88); diff --git a/src/ov_SC06_011/ov_SC06_011.c b/src/ov_SC06_011/ov_SC06_011.c index f76c3f53f1..dccaee0faa 100644 --- a/src/ov_SC06_011/ov_SC06_011.c +++ b/src/ov_SC06_011/ov_SC06_011.c @@ -4900,7 +4900,13 @@ INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011", func_8017F2DC); INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011", func_8017F324); -INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011", func_8017F364); +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); +extern M2C_UNK D_801A079C; + +void func_8017F364(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_801A079C, 0x1000000); +} + INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011", func_8017F38C); diff --git a/src/ov_SC06_013/ov_SC06_013.c b/src/ov_SC06_013/ov_SC06_013.c index 5cbb84c86e..a71240cc27 100644 --- a/src/ov_SC06_013/ov_SC06_013.c +++ b/src/ov_SC06_013/ov_SC06_013.c @@ -4843,7 +4843,13 @@ INCLUDE_ASM("asm/ov_SC06_013/nonmatchings/ov_SC06_013", func_8017E5DC); INCLUDE_ASM("asm/ov_SC06_013/nonmatchings/ov_SC06_013", func_8017E660); -INCLUDE_ASM("asm/ov_SC06_013/nonmatchings/ov_SC06_013", func_8017E698); +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); +extern s32 D_80198064; + +void func_8017E698(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_80198064, 0x1000000); +} + INCLUDE_ASM("asm/ov_SC06_013/nonmatchings/ov_SC06_013", func_8017E6C0); diff --git a/src/ov_SC06_014/ov_SC06_014.c b/src/ov_SC06_014/ov_SC06_014.c index c5e766eea4..18fe6a2b2b 100644 --- a/src/ov_SC06_014/ov_SC06_014.c +++ b/src/ov_SC06_014/ov_SC06_014.c @@ -4912,7 +4912,13 @@ INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014", func_8017FA60); INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014", func_8017FAA8); -INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014", func_8017FAE8); +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); +extern M2C_UNK D_8019C464; + +void func_8017FAE8(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_8019C464, 0x1000000); +} + INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014", func_8017FB10); diff --git a/src/ov_SC06_025/ov_SC06_025.c b/src/ov_SC06_025/ov_SC06_025.c index 7d926642e1..36c451a277 100644 --- a/src/ov_SC06_025/ov_SC06_025.c +++ b/src/ov_SC06_025/ov_SC06_025.c @@ -5001,7 +5001,10 @@ INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025", func_801824A0); INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025", func_801824B4); -INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025", func_801825C4); +s32 func_801825C4(s32 *a0) { + return *(u16 *)((s32)a0 + 0x2) != 0x3; + } + INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025", func_801825D8); diff --git a/src/ov_SC06_030/ov_SC06_030.c b/src/ov_SC06_030/ov_SC06_030.c index 758cbf8144..ef42864b52 100644 --- a/src/ov_SC06_030/ov_SC06_030.c +++ b/src/ov_SC06_030/ov_SC06_030.c @@ -4845,7 +4845,11 @@ INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030", func_801801E8); INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030", func_80180228); -INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030", func_80180438); +extern void func_8001AAA0(s32 arg); + s32 func_80180438(void) { + return ((s32 (*)(s32))func_8001AAA0)(0x7C) != 0; + } + INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030", func_80180458); diff --git a/src/ov_SC06_033/ov_SC06_033.c b/src/ov_SC06_033/ov_SC06_033.c index a7ba7e3b21..bbb2238f97 100644 --- a/src/ov_SC06_033/ov_SC06_033.c +++ b/src/ov_SC06_033/ov_SC06_033.c @@ -4785,7 +4785,11 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_8017D4F0); INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_8017D530); -INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_8017D5AC); +extern void func_800D1EBC(void); + void func_8017D5AC(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_8017D5CC); diff --git a/src/ov_SC07_000/ov_SC07_000.c b/src/ov_SC07_000/ov_SC07_000.c index c2620008f0..cc1b4e1f86 100644 --- a/src/ov_SC07_000/ov_SC07_000.c +++ b/src/ov_SC07_000/ov_SC07_000.c @@ -4804,7 +4804,11 @@ INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_8017E01C); INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_8017E040); -INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_8017E058); +extern s16 D_801D0B7C; + void func_8017E058(void) { + D_801D0B7C = 0x2; + } + INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_8017E06C); diff --git a/src/ov_SC07_001/ov_SC07_001.c b/src/ov_SC07_001/ov_SC07_001.c index 0d423f6be2..9984af0a7a 100644 --- a/src/ov_SC07_001/ov_SC07_001.c +++ b/src/ov_SC07_001/ov_SC07_001.c @@ -4912,7 +4912,11 @@ void func_80180F18(void) { INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001", func_80180F20); -INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001", func_80180F5C); +extern s32 func_8012AD50(void *a0); + void func_80180F5C(void) { + ((s32 (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001", func_80180F7C); diff --git a/src/ov_SC07_002/ov_SC07_002.c b/src/ov_SC07_002/ov_SC07_002.c index 9ca509f0a0..72d84268f0 100644 --- a/src/ov_SC07_002/ov_SC07_002.c +++ b/src/ov_SC07_002/ov_SC07_002.c @@ -4936,7 +4936,11 @@ INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_80180CAC); INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_80180CCC); -INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_80180D8C); +extern s32 func_80180DAC(void); + void func_80180D8C(void) { + func_80180DAC(); + } + INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_80180DAC); diff --git a/src/ov_SC07_009/ov_SC07_009.c b/src/ov_SC07_009/ov_SC07_009.c index de276ac3d1..bb899185e8 100644 --- a/src/ov_SC07_009/ov_SC07_009.c +++ b/src/ov_SC07_009/ov_SC07_009.c @@ -4822,7 +4822,11 @@ s32 func_8017D3E4(void) { INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009", func_8017D3EC); -INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009", func_8017D4AC); +extern s32 func_8012AD50(void *a0); + void func_8017D4AC(void) { + ((s32 (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009", func_8017D4CC); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index e7da190d91..76afbc8e5a 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -24688,4 +24688,9 @@ M2C_FIELD(a0, s16 *, 0x2) = 2; \ } +#define DEFINE_func_8017E0FC() \ + void func_8017E0FC(u8 *a0) { \ + *(u8 *)(a0 + 0x214) += 1; \ + } + #endif