diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index 33df3640e6..938362c838 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -12301,3 +12301,38 @@ groups: func: DEFINE_func_8017C090 vram: 0x8017C090 binaries: [ov_SC06_018, ov_SC06_020, ov_SC06_032, ov_SC06_033] + - id: E_func_8018248C + tier: h_exact + hash: 7dae7530ad8de4622c33daa52e06e6adb91fb7b8 + source: src/shared/engine_core.h + func: DEFINE_func_8018248C + vram: 0x8018248C + binaries: [ov_SC03_118, ov_SC03_119] + - id: E_func_8018B564 + tier: h_exact + hash: 7c97457dadacf5f9e8cb859d99a1e3e44b7f5070 + source: src/shared/engine_core.h + func: DEFINE_func_8018B564 + vram: 0x8018B564 + binaries: [ov_SC04_018, ov_SC04_019] + - id: E_func_8018B6E8 + tier: h_exact + hash: 7c97457dadacf5f9e8cb859d99a1e3e44b7f5070 + source: src/shared/engine_core.h + func: DEFINE_func_8018B6E8 + vram: 0x8018B6E8 + binaries: [ov_SC04_018, ov_SC04_019] + - id: E_func_8017DEA4 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_8017DEA4 + vram: 0x8017DEA4 + binaries: [ov_SC03_001, ov_SC06_018] + - id: E_func_8017D12C + tier: h_exact + hash: 79ff94814358ab5182cdf229e775dd0e78908a12 + source: src/shared/engine_core.h + func: DEFINE_func_8017D12C + vram: 0x8017D12C + binaries: [ov_SC06_018, ov_SC06_020] diff --git a/src/ov_SC01_009/ov_SC01_009.c b/src/ov_SC01_009/ov_SC01_009.c index f476246d1d..8e39fdcee5 100644 --- a/src/ov_SC01_009/ov_SC01_009.c +++ b/src/ov_SC01_009/ov_SC01_009.c @@ -4815,7 +4815,13 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017CFFC); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017D0BC); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017D0F8); +extern void func_8017D120(s32 arg0, s32 arg1); +extern s32 D_801274E8; + +void func_8017D0F8(s32 arg0) { + func_8017D120(arg0, &D_801274E8); +} + INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017D120); @@ -5090,7 +5096,11 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_801819B0); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80181A1C); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80181A80); +extern s32 func_8012C658(s32 a0, s32 a1, s32 a2); + void func_80181A80(void *a0) { + ((void (*)(s32, s32, s32))func_8012C658)(0x1AB, 0x2D, (s32)a0); + } + INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80181AA8); diff --git a/src/ov_SC01_084/ov_SC01_084.c b/src/ov_SC01_084/ov_SC01_084.c index 3a29b14b73..ba58ff6245 100644 --- a/src/ov_SC01_084/ov_SC01_084.c +++ b/src/ov_SC01_084/ov_SC01_084.c @@ -5062,7 +5062,12 @@ INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084", func_8017FF68); INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084", listCdBuffer); -INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084", func_801801BC); +extern void (*D_8018A90C[])(void); + +void func_801801BC(void *a0) { + D_8018A90C[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084", func_801801F8); diff --git a/src/ov_SC02_005/ov_SC02_005.c b/src/ov_SC02_005/ov_SC02_005.c index 90952758ee..9023ae4319 100644 --- a/src/ov_SC02_005/ov_SC02_005.c +++ b/src/ov_SC02_005/ov_SC02_005.c @@ -5871,7 +5871,11 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018EFEC); INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018F164); -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018F1D4); +extern void func_8012C218(void *a0); + void func_8018F1D4(void) { + ((s32 (*)(void))func_8012C218)(); + } + INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018F1F4); @@ -5958,7 +5962,11 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80190144); INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80190344); -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80190364); +extern void func_80146C3C(void); + void func_80190364(void) { + func_80146C3C(); + } + INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80190384); diff --git a/src/ov_SC02_011/ov_SC02_011.c b/src/ov_SC02_011/ov_SC02_011.c index c9f3d3463b..a74e2b6a26 100644 --- a/src/ov_SC02_011/ov_SC02_011.c +++ b/src/ov_SC02_011/ov_SC02_011.c @@ -5261,7 +5261,11 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80185BA4); INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80185BF4); -INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80185C00); +extern void func_8001AAA0(s32 arg); + void func_80185C00(void) { + func_8001AAA0(0x2F); + } + INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80185C20); @@ -5294,7 +5298,11 @@ extern s32 func_80188168(void); } -INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80186374); +extern s32 func_8013CAE8(void); + void func_80186374(void) { + func_8013CAE8(); + } + INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80186394); diff --git a/src/ov_SC02_017/ov_SC02_017.c b/src/ov_SC02_017/ov_SC02_017.c index 94c337751d..5f65e4d428 100644 --- a/src/ov_SC02_017/ov_SC02_017.c +++ b/src/ov_SC02_017/ov_SC02_017.c @@ -4911,7 +4911,11 @@ INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_8017F08C); INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_8017F0CC); -INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_8017F140); +extern void func_800D1EBC(void); + void func_8017F140(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_8017F160); diff --git a/src/ov_SC02_026/ov_SC02_026.c b/src/ov_SC02_026/ov_SC02_026.c index ca2b4a9a94..b00b2ef353 100644 --- a/src/ov_SC02_026/ov_SC02_026.c +++ b/src/ov_SC02_026/ov_SC02_026.c @@ -5211,7 +5211,16 @@ INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026", func_80185CD8); INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026", func_80185CE8); -INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026", func_80185D28); +extern s32 D_80126B58; +extern void func_8014ADA8(s32 a0, s32 a1); + +void func_80185D28(void * arg0) { + s32 temp_v0; + + temp_v0 = *(s32 *)((s32)arg0 + 0xdc); + ((void (*)(s32 *, s32))func_8014ADA8)((s32 *)&D_80126B58, *(u16 *)(temp_v0 + 0xc)); +} + INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026", func_80185D5C); diff --git a/src/ov_SC02_027/ov_SC02_027.c b/src/ov_SC02_027/ov_SC02_027.c index da165059ea..cb474675e5 100644 --- a/src/ov_SC02_027/ov_SC02_027.c +++ b/src/ov_SC02_027/ov_SC02_027.c @@ -5067,7 +5067,12 @@ void func_801824A4(void) { INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027", func_801824AC); -INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027", func_801825B0); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_801825B0(void *arg0) { + *(s32 *)((char *)arg0 + 0x1c) = 0x20; + ((void (*)(s32, s32))func_8012AD44)((s32)arg0, 0x1); + } + INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027", func_801825D8); @@ -5137,7 +5142,12 @@ INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027", func_80183418); INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027", func_801834E8); -INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027", func_80183658); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_80183658(void * arg0) { + *(s32 *)((char *)arg0 + 0x1c) = 0x10; + ((void (*)(s32, s32))func_8012AD44)((s32)arg0, 0x1); + } + INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027", func_80183680); diff --git a/src/ov_SC02_031/ov_SC02_031.c b/src/ov_SC02_031/ov_SC02_031.c index 6c9d47d0df..7f9979db22 100644 --- a/src/ov_SC02_031/ov_SC02_031.c +++ b/src/ov_SC02_031/ov_SC02_031.c @@ -5009,7 +5009,13 @@ extern void func_800D1EBC(void); } -INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031", func_80181224); +extern void func_8016EE40(s32 a0, s32 a1, s32 a2); +extern M2C_UNK D_80188DA4; + +void func_80181224(void) { + ((void (*)(void *, s32))func_8016EE40)(&D_80188DA4, 0x1000000); +} + INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031", func_8018124C); diff --git a/src/ov_SC02_035/ov_SC02_035.c b/src/ov_SC02_035/ov_SC02_035.c index e6029df486..27f333c564 100644 --- a/src/ov_SC02_035/ov_SC02_035.c +++ b/src/ov_SC02_035/ov_SC02_035.c @@ -5038,7 +5038,15 @@ INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035", func_801824E4); INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035", func_801825BC); -INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035", func_80182624); +extern s32 func_80153BD8(s32 arg); + extern s32 func_80153BF0(s32 a0); + void func_80182624(u8 *param_1) { + *(s16 *)(param_1 + 0xfe) = 0; + if (func_80153BD8((s32)param_1)) { + ((void (*)(u8 *))func_80153BF0)(param_1); + } + } + INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035", func_80182660); diff --git a/src/ov_SC02_039/ov_SC02_039.c b/src/ov_SC02_039/ov_SC02_039.c index b0c3f453b8..53163bdaea 100644 --- a/src/ov_SC02_039/ov_SC02_039.c +++ b/src/ov_SC02_039/ov_SC02_039.c @@ -4838,7 +4838,12 @@ INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039", func_8017EA20); INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039", func_8017EC34); -INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039", func_8017EE9C); +extern void (*D_8019B634[])(void); + +void func_8017EE9C(void *a0) { + D_8019B634[*(u16 *)((s32)a0 + 0x2)](); +} + INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039", func_8017EED8); diff --git a/src/ov_SC02_041/ov_SC02_041.c b/src/ov_SC02_041/ov_SC02_041.c index 24526545a9..43eafb19f7 100644 --- a/src/ov_SC02_041/ov_SC02_041.c +++ b/src/ov_SC02_041/ov_SC02_041.c @@ -5093,7 +5093,10 @@ INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041", func_801834B4); INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041", func_801834F0); -INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041", func_8018354C); +void func_8018354C(void *a0) { + *(s16 *)((s32)a0 + 0x2) += 1; + } + INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041", func_80183560); diff --git a/src/ov_SC03_001/ov_SC03_001.c b/src/ov_SC03_001/ov_SC03_001.c index 7ccfc707be..3767437272 100644 --- a/src/ov_SC03_001/ov_SC03_001.c +++ b/src/ov_SC03_001/ov_SC03_001.c @@ -4810,8 +4810,7 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017DDEC); INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017DE28); -void func_8017DEA4(void) { -} +DEFINE_func_8017DEA4() /* dedup: shared engine-core @0x8017DEA4 (src/shared) */ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017DEAC); diff --git a/src/ov_SC03_002/ov_SC03_002.c b/src/ov_SC03_002/ov_SC03_002.c index 7eac6b2cde..98314bd521 100644 --- a/src/ov_SC03_002/ov_SC03_002.c +++ b/src/ov_SC03_002/ov_SC03_002.c @@ -4825,7 +4825,12 @@ INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_8017EAE8); INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_8017EB74); -INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_8017EBB0); +extern s32 func_8012AD50(void *a0); + void func_8017EBB0(s32 *a0) { + *(s16 *)((s32)a0 + 0xFC) = 0; + ((void (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_8017EBD0); @@ -4949,7 +4954,11 @@ INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_8018061C); INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_801806B4); -INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_801806F0); +extern s32 func_80171990(u8 *a0); + void func_801806F0(void) { + ((s32 (*)(void))func_80171990)(); + } + INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80180710); diff --git a/src/ov_SC03_007/ov_SC03_007.c b/src/ov_SC03_007/ov_SC03_007.c index 1b90a97280..b57ed08110 100644 --- a/src/ov_SC03_007/ov_SC03_007.c +++ b/src/ov_SC03_007/ov_SC03_007.c @@ -4822,7 +4822,11 @@ INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_8017DAD8); INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_8017DB18); -INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_8017DB94); +extern void func_800D1EBC(void); + void func_8017DB94(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_8017DBB4); @@ -5145,7 +5149,11 @@ INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80183F7C); INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80183FB4); -INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80183FCC); +extern void func_8013CB84(void); + void func_80183FCC(void) { + func_8013CB84(); + } + INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_80183FEC); diff --git a/src/ov_SC03_010/ov_SC03_010.c b/src/ov_SC03_010/ov_SC03_010.c index e8761496f5..e526e0b364 100644 --- a/src/ov_SC03_010/ov_SC03_010.c +++ b/src/ov_SC03_010/ov_SC03_010.c @@ -4797,7 +4797,11 @@ INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010", func_8017D8A4); INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010", func_8017D8E4); -INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010", func_8017D960); +extern void func_800D1EBC(void); + void func_8017D960(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010", func_8017D980); @@ -4849,7 +4853,11 @@ INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010", func_8017DE24); INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010", func_8017DE44); -INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010", func_8017DE64); +extern void func_8017DE84(s32 arg0); + void func_8017DE64(void) { + ((s32 (*)(s32))func_8017DE84)(0x7); + } + INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010", func_8017DE84); diff --git a/src/ov_SC03_013/ov_SC03_013.c b/src/ov_SC03_013/ov_SC03_013.c index 273d042234..d773c7541a 100644 --- a/src/ov_SC03_013/ov_SC03_013.c +++ b/src/ov_SC03_013/ov_SC03_013.c @@ -4835,9 +4835,17 @@ INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013", func_8017E050); INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013", func_8017E080); -INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013", func_8017E0C0); +extern void func_8017E1C0(s32 arg); + void func_8017E0C0(void) { + ((s32 (*)(s32))func_8017E1C0)(0); + } + + +extern void func_8017E1C0(s32 arg); + void func_8017E0E0(void) { + func_8017E1C0(1); + } -INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013", func_8017E0E0); extern void func_8017E1C0(s32 arg); void func_8017E100(void) { diff --git a/src/ov_SC03_014/ov_SC03_014.c b/src/ov_SC03_014/ov_SC03_014.c index 193147b41e..aa6d9325a7 100644 --- a/src/ov_SC03_014/ov_SC03_014.c +++ b/src/ov_SC03_014/ov_SC03_014.c @@ -5348,7 +5348,11 @@ INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_8018A744); INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_8018A774); -INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_8018A7EC); +extern s16 D_801EADEA; + void func_8018A7EC(s32 arg0) { + M2C_FIELD(&D_801EADEA, s16 *, 0) += arg0; + } + INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_8018A808); diff --git a/src/ov_SC03_015/ov_SC03_015.c b/src/ov_SC03_015/ov_SC03_015.c index 62ca11fa81..d786aa43f1 100644 --- a/src/ov_SC03_015/ov_SC03_015.c +++ b/src/ov_SC03_015/ov_SC03_015.c @@ -5095,7 +5095,11 @@ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_80185380); INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_8018553C); -INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_80185578); +extern s32 D_801EAEE4; + s32 func_80185578(void) { + return 0x2 - D_801EAEE4; + } + INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_8018558C); diff --git a/src/ov_SC03_023/ov_SC03_023.c b/src/ov_SC03_023/ov_SC03_023.c index bd40d4c5c0..6f8cdc5990 100644 --- a/src/ov_SC03_023/ov_SC03_023.c +++ b/src/ov_SC03_023/ov_SC03_023.c @@ -4771,7 +4771,11 @@ INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023", func_8017D548); INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023", func_8017D588); -INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023", func_8017D604); +extern void func_800D1EBC(void); + void func_8017D604(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023", func_8017D624); diff --git a/src/ov_SC03_024/ov_SC03_024.c b/src/ov_SC03_024/ov_SC03_024.c index 257dfa77e1..d5fc6352aa 100644 --- a/src/ov_SC03_024/ov_SC03_024.c +++ b/src/ov_SC03_024/ov_SC03_024.c @@ -5221,13 +5221,19 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_80185370); INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_801853BC); -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_80185458); +void func_80185458(void *a0) { + *(s16 *)((s32)a0 + 0x2) += 1; + } + INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_8018546C); INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_801854B0); -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_801854F4); +void func_801854F4(void *a0) { + *(s16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1; + } + INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_80185508); diff --git a/src/ov_SC03_028/ov_SC03_028.c b/src/ov_SC03_028/ov_SC03_028.c index 646ce90ab2..b97bec74cd 100644 --- a/src/ov_SC03_028/ov_SC03_028.c +++ b/src/ov_SC03_028/ov_SC03_028.c @@ -5315,7 +5315,11 @@ INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_8018AF9C); INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_8018B19C); -INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_8018B1BC); +extern void func_80146C3C(void); + void func_8018B1BC(void) { + func_80146C3C(); + } + INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_8018B1DC); diff --git a/src/ov_SC03_029/ov_SC03_029.c b/src/ov_SC03_029/ov_SC03_029.c index 280413dfb4..f6aaff03d8 100644 --- a/src/ov_SC03_029/ov_SC03_029.c +++ b/src/ov_SC03_029/ov_SC03_029.c @@ -5021,7 +5021,11 @@ INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029", func_80181D9C); INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029", func_80181E44); -INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029", func_80181E80); +extern s32 func_8012AD50(void *a0); + void func_80181E80(void) { + ((s32 (*)(void))func_8012AD50)(); + } + INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029", func_80181EA0); diff --git a/src/ov_SC03_031/ov_SC03_031.c b/src/ov_SC03_031/ov_SC03_031.c index b4618e5555..04a0eae610 100644 --- a/src/ov_SC03_031/ov_SC03_031.c +++ b/src/ov_SC03_031/ov_SC03_031.c @@ -4835,7 +4835,11 @@ INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031", func_8017EB1C); INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031", func_8017EB5C); -INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031", func_8017EBF8); +extern void func_800D1EBC(void); + void func_8017EBF8(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031", func_8017EC18); diff --git a/src/ov_SC03_089/ov_SC03_089.c b/src/ov_SC03_089/ov_SC03_089.c index ef25256be8..cd200e997d 100644 --- a/src/ov_SC03_089/ov_SC03_089.c +++ b/src/ov_SC03_089/ov_SC03_089.c @@ -4931,7 +4931,11 @@ void func_8018323C(void *a0) { INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089", func_80183254); -INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089", func_801832F8); +void func_801832F8(void *a0) { + void *a1 = *(void **)((char *)a0 + 0x20); + *(u16 *)((char *)a1 + 0x12) += *(u16 *)((char *)a0 + 0xfc); + } + INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089", func_80183314); diff --git a/src/ov_SC03_093/ov_SC03_093.c b/src/ov_SC03_093/ov_SC03_093.c index 48fa0dc130..322bb0bbec 100644 --- a/src/ov_SC03_093/ov_SC03_093.c +++ b/src/ov_SC03_093/ov_SC03_093.c @@ -5131,7 +5131,11 @@ INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093", func_801858A0); INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093", func_8018591C); -INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093", func_80185960); +extern void func_8017F708(void); + void func_80185960(void) { + func_8017F708(); + } + INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093", func_80185980); diff --git a/src/ov_SC03_103/ov_SC03_103.c b/src/ov_SC03_103/ov_SC03_103.c index f2dbae5be2..3764892751 100644 --- a/src/ov_SC03_103/ov_SC03_103.c +++ b/src/ov_SC03_103/ov_SC03_103.c @@ -4845,7 +4845,11 @@ INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103", func_8017F8E8); INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103", func_8017F900); -INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103", func_8017F9A4); +void func_8017F9A4(void *a0) { + void *a1 = *(void **)((char *)a0 + 0x20); + *(u16 *)((char *)a1 + 0x12) += *(u16 *)((char *)a0 + 0xfc); + } + INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103", func_8017F9C0); diff --git a/src/ov_SC03_104/ov_SC03_104.c b/src/ov_SC03_104/ov_SC03_104.c index 44a7fa102b..153671305a 100644 --- a/src/ov_SC03_104/ov_SC03_104.c +++ b/src/ov_SC03_104/ov_SC03_104.c @@ -5021,7 +5021,11 @@ INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_8018533C); INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_8018536C); -INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_801853E4); +extern s32 D_801C0242; + void func_801853E4(s32 arg0) { + *(s16 *)((s32)&D_801C0242 + 0x0) += arg0; + } + INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_80185400); diff --git a/src/ov_SC03_109/ov_SC03_109.c b/src/ov_SC03_109/ov_SC03_109.c index d85b6a1ba7..99e1c0ea41 100644 --- a/src/ov_SC03_109/ov_SC03_109.c +++ b/src/ov_SC03_109/ov_SC03_109.c @@ -4769,7 +4769,11 @@ INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109", func_8017D104); INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109", func_8017D144); -INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109", func_8017D1C0); +extern s32 func_800D1EBC(void); + void func_8017D1C0(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109", func_8017D1E0); diff --git a/src/ov_SC03_110/ov_SC03_110.c b/src/ov_SC03_110/ov_SC03_110.c index 882027ba22..ac5f4cbabf 100644 --- a/src/ov_SC03_110/ov_SC03_110.c +++ b/src/ov_SC03_110/ov_SC03_110.c @@ -4827,7 +4827,11 @@ INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110", func_8017E858); INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110", func_8017E898); -INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110", func_8017E914); +extern s32 func_800D1EBC(void); + void func_8017E914(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110", func_8017E934); diff --git a/src/ov_SC03_111/ov_SC03_111.c b/src/ov_SC03_111/ov_SC03_111.c index a0711a4249..804fee87b1 100644 --- a/src/ov_SC03_111/ov_SC03_111.c +++ b/src/ov_SC03_111/ov_SC03_111.c @@ -4869,7 +4869,11 @@ INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111", func_80180810); INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111", func_80180850); -INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111", func_801808CC); +extern void func_800D1EBC(void); + void func_801808CC(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111", func_801808EC); diff --git a/src/ov_SC03_112/ov_SC03_112.c b/src/ov_SC03_112/ov_SC03_112.c index 15d5fb3461..455ecbc4ec 100644 --- a/src/ov_SC03_112/ov_SC03_112.c +++ b/src/ov_SC03_112/ov_SC03_112.c @@ -4777,7 +4777,11 @@ INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112", func_8017DEB8); INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112", func_8017DEF8); -INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112", func_8017DF60); +extern void func_800D1EBC(void); + void func_8017DF60(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112", func_8017DF80); diff --git a/src/ov_SC03_115/ov_SC03_115.c b/src/ov_SC03_115/ov_SC03_115.c index fa101dd00a..5d53b9f1b7 100644 --- a/src/ov_SC03_115/ov_SC03_115.c +++ b/src/ov_SC03_115/ov_SC03_115.c @@ -4804,7 +4804,11 @@ INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115", func_8017D420); INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115", func_8017D5B8); -INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115", func_8017D5F4); +extern s32 D_80194FE4; + s32 func_8017D5F4(void) { + return 0x2 - D_80194FE4; + } + INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115", func_8017D608); diff --git a/src/ov_SC03_116/ov_SC03_116.c b/src/ov_SC03_116/ov_SC03_116.c index e5a162dbc2..0eb29dc43d 100644 --- a/src/ov_SC03_116/ov_SC03_116.c +++ b/src/ov_SC03_116/ov_SC03_116.c @@ -4832,7 +4832,12 @@ INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116", func_8018172C); INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116", func_801817D8); -INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116", func_80181844); +extern void func_80181864(void); + void func_80181844(s32 *a0) { + *(s16 *)((s32)a0 + 0xFC) = 0; + func_80181864(); + } + INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116", func_80181864); diff --git a/src/ov_SC03_117/ov_SC03_117.c b/src/ov_SC03_117/ov_SC03_117.c index 8dcf411f26..9da61dfe65 100644 --- a/src/ov_SC03_117/ov_SC03_117.c +++ b/src/ov_SC03_117/ov_SC03_117.c @@ -4937,7 +4937,11 @@ INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117", listCdBuffer); INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117", func_80180010); -INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117", func_8018004C); +void func_8018004C(void *a0) { + *(s16 *)((char *)a0 + 0x2) += 1; + *(s32 *)((char *)a0 + 0x14) = 0x20000; + } + INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117", func_80180064); diff --git a/src/ov_SC03_118/ov_SC03_118.c b/src/ov_SC03_118/ov_SC03_118.c index fb8c1d7a6f..39fcf88b47 100644 --- a/src/ov_SC03_118/ov_SC03_118.c +++ b/src/ov_SC03_118/ov_SC03_118.c @@ -5005,7 +5005,7 @@ INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118", func_801823F8); INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118", func_8018244C); -INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118", func_8018248C); +DEFINE_func_8018248C() /* dedup: shared engine-core @0x8018248C (src/shared) */ INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118", func_801824A0); diff --git a/src/ov_SC03_119/ov_SC03_119.c b/src/ov_SC03_119/ov_SC03_119.c index 7210adb598..a3227f6577 100644 --- a/src/ov_SC03_119/ov_SC03_119.c +++ b/src/ov_SC03_119/ov_SC03_119.c @@ -5001,7 +5001,8 @@ INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119", func_801823F8); INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119", func_8018244C); -INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119", func_8018248C); +DEFINE_func_8018248C() /* dedup: shared engine-core @0x8018248C (src/shared) */ + INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119", func_801824A0); diff --git a/src/ov_SC04_002/ov_SC04_002.c b/src/ov_SC04_002/ov_SC04_002.c index a3c55d579c..633568296b 100644 --- a/src/ov_SC04_002/ov_SC04_002.c +++ b/src/ov_SC04_002/ov_SC04_002.c @@ -5133,7 +5133,11 @@ INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_80184604); INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_801846B4); -INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_80184710); +void func_80184710(void *a0) { + *(s16 *)((char *)a0 + 0x2) = 0x5; + *(s32 *)((char *)a0 + 0x1c) = 0x14; + } + INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_80184724); diff --git a/src/ov_SC04_004/ov_SC04_004.c b/src/ov_SC04_004/ov_SC04_004.c index e34d3186f0..1349b8010f 100644 --- a/src/ov_SC04_004/ov_SC04_004.c +++ b/src/ov_SC04_004/ov_SC04_004.c @@ -4871,7 +4871,12 @@ INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004", func_8017F16C); INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004", func_8017F228); -INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004", func_8017F5C4); +void func_8017F5C4(s32 *a0) { + *(s32 *)((s32)a0 + 0x10) = *(s32 *)((s32)a0 + 0x4); + *(s32 *)((s32)a0 + 0x14) = *(s32 *)((s32)a0 + 0x8); + *(s32 *)((s32)a0 + 0x18) = *(s32 *)((s32)a0 + 0xC); + } + INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004", func_8017F5E0); diff --git a/src/ov_SC04_008/ov_SC04_008.c b/src/ov_SC04_008/ov_SC04_008.c index 23587bf4ec..6085acea12 100644 --- a/src/ov_SC04_008/ov_SC04_008.c +++ b/src/ov_SC04_008/ov_SC04_008.c @@ -4763,7 +4763,11 @@ INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008", func_8017CEB0); INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008", func_8017CEF0); -INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008", func_8017CF6C); +extern void func_800D1EBC(void); + void func_8017CF6C(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008", func_8017CF8C); diff --git a/src/ov_SC04_010/ov_SC04_010.c b/src/ov_SC04_010/ov_SC04_010.c index 47b36138e7..ae76fa42af 100644 --- a/src/ov_SC04_010/ov_SC04_010.c +++ b/src/ov_SC04_010/ov_SC04_010.c @@ -4821,7 +4821,11 @@ INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010", func_8017D904); INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010", func_8017DA58); -INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010", func_8017DB20); +extern void func_8017D6CC(void); + void func_8017DB20(void) { + func_8017D6CC(); + } + INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010", func_8017DB40); diff --git a/src/ov_SC04_011/ov_SC04_011.c b/src/ov_SC04_011/ov_SC04_011.c index 8afa8bf752..77cf62b9cc 100644 --- a/src/ov_SC04_011/ov_SC04_011.c +++ b/src/ov_SC04_011/ov_SC04_011.c @@ -5477,7 +5477,11 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8018CD8C); INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8018CE0C); -INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8018CF10); +extern s32 func_8018CF10(void); + s32 func_8018CF10(void) { + return 0x5D; + } + INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8018CF18); diff --git a/src/ov_SC04_015/ov_SC04_015.c b/src/ov_SC04_015/ov_SC04_015.c index 74aab88083..bd6748d65c 100644 --- a/src/ov_SC04_015/ov_SC04_015.c +++ b/src/ov_SC04_015/ov_SC04_015.c @@ -4795,7 +4795,10 @@ INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015", func_8017D7CC); INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015", func_8017D83C); -INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015", func_8017D878); +s32 func_8017D878(void) { + return 0; + } + INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015", func_8017D880); diff --git a/src/ov_SC04_018/ov_SC04_018.c b/src/ov_SC04_018/ov_SC04_018.c index 11b2789aa3..2b30f2c52f 100644 --- a/src/ov_SC04_018/ov_SC04_018.c +++ b/src/ov_SC04_018/ov_SC04_018.c @@ -5571,7 +5571,8 @@ INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8018B448); INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8018B4EC); -INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8018B564); +DEFINE_func_8018B564() /* dedup: shared engine-core @0x8018B564 (src/shared) */ + INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8018B570); @@ -5583,7 +5584,7 @@ INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8018B660); INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8018B6A0); -INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8018B6E8); +DEFINE_func_8018B6E8() /* dedup: shared engine-core @0x8018B6E8 (src/shared) */ INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8018B6F4); diff --git a/src/ov_SC04_019/ov_SC04_019.c b/src/ov_SC04_019/ov_SC04_019.c index 8f837139a5..b47fab9df6 100644 --- a/src/ov_SC04_019/ov_SC04_019.c +++ b/src/ov_SC04_019/ov_SC04_019.c @@ -5570,7 +5570,7 @@ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8018B448); INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8018B4EC); -INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8018B564); +DEFINE_func_8018B564() /* dedup: shared engine-core @0x8018B564 (src/shared) */ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8018B570); @@ -5582,7 +5582,8 @@ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8018B660); INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8018B6A0); -INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8018B6E8); +DEFINE_func_8018B6E8() /* dedup: shared engine-core @0x8018B6E8 (src/shared) */ + INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8018B6F4); diff --git a/src/ov_SC04_020/ov_SC04_020.c b/src/ov_SC04_020/ov_SC04_020.c index 61d8ebc3c1..22332780d0 100644 --- a/src/ov_SC04_020/ov_SC04_020.c +++ b/src/ov_SC04_020/ov_SC04_020.c @@ -4974,7 +4974,10 @@ INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020", func_80180EE0); INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020", func_80180F78); -INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020", func_80180F88); +void func_80180F88(void *a0) { + *(s32 *)(*(s32 *)((s32)a0 + 0xcc) + 0xb0) = 0x2; + } + INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020", func_80180F98); diff --git a/src/ov_SC05_003/ov_SC05_003.c b/src/ov_SC05_003/ov_SC05_003.c index f800e82c75..06fbf51d92 100644 --- a/src/ov_SC05_003/ov_SC05_003.c +++ b/src/ov_SC05_003/ov_SC05_003.c @@ -4835,7 +4835,13 @@ INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003", func_8017EDF4); INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003", func_8017EE60); -INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003", func_8017EEE4); +void func_8017EEE4(void *a0) { + *(short *)((char *)a0 + 0x2) = 0x7; + *(short *)((char *)a0 + 0xfe) = 0; + *(unsigned short *)((char *)a0 + 0x5c) = 0xaa10; + *(short *)((char *)a0 + 0x102) = 1; + } + void func_8017EF04(void) { } diff --git a/src/ov_SC05_004/ov_SC05_004.c b/src/ov_SC05_004/ov_SC05_004.c index bbe27be09f..db45869758 100644 --- a/src/ov_SC05_004/ov_SC05_004.c +++ b/src/ov_SC05_004/ov_SC05_004.c @@ -4795,7 +4795,11 @@ INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004", func_8017E0EC); INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004", func_8017E12C); -INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004", func_8017E1A8); +extern s32 func_800D1EBC(void); + void func_8017E1A8(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004", func_8017E1C8); diff --git a/src/ov_SC05_005/ov_SC05_005.c b/src/ov_SC05_005/ov_SC05_005.c index 44c0defd1b..297c2b81be 100644 --- a/src/ov_SC05_005/ov_SC05_005.c +++ b/src/ov_SC05_005/ov_SC05_005.c @@ -4809,7 +4809,11 @@ INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005", func_8017D72C); INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005", func_8017D798); -INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005", func_8017D824); +extern void func_8012C218(void *a0); + void func_8017D824(void) { + ((void (*)(void))func_8012C218)(); + } + INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005", func_8017D844); diff --git a/src/ov_SC05_008/ov_SC05_008.c b/src/ov_SC05_008/ov_SC05_008.c index f0dfeda5c1..0bb8d17a89 100644 --- a/src/ov_SC05_008/ov_SC05_008.c +++ b/src/ov_SC05_008/ov_SC05_008.c @@ -5072,7 +5072,11 @@ INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80182334); INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_801823B8); -INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80182478); +extern s32 D_801151D4; + s32 func_80182478(void) { + return *(u16 *)(D_801151D4 + 0x38); + } + INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80182490); diff --git a/src/ov_SC05_010/ov_SC05_010.c b/src/ov_SC05_010/ov_SC05_010.c index 42c75d1eea..45f09e1e88 100644 --- a/src/ov_SC05_010/ov_SC05_010.c +++ b/src/ov_SC05_010/ov_SC05_010.c @@ -4992,7 +4992,11 @@ INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_8018531C); INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_80185344); -INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_80185378); +extern u16 D_80126B62; + void func_80185378(void) { + *(s16 *)((s32)&D_80126B62 + 0x0) += 0xC; + } + INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_80185394); diff --git a/src/ov_SC05_017/ov_SC05_017.c b/src/ov_SC05_017/ov_SC05_017.c index 8493850382..0c2737e412 100644 --- a/src/ov_SC05_017/ov_SC05_017.c +++ b/src/ov_SC05_017/ov_SC05_017.c @@ -5317,7 +5317,10 @@ INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_80184928); INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_80184990); -INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_801849B0); +void func_801849B0(void *a0) { + *(s16 *)((s32)a0 + 0x5C) = 0; + } + INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_801849B8); diff --git a/src/ov_SC05_018/ov_SC05_018.c b/src/ov_SC05_018/ov_SC05_018.c index 70ffe59b47..ec56cae2d6 100644 --- a/src/ov_SC05_018/ov_SC05_018.c +++ b/src/ov_SC05_018/ov_SC05_018.c @@ -5168,7 +5168,10 @@ INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018", func_80184118); INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018", func_80184180); -INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018", func_80184190); +void func_80184190(void *a0) { + *(s32 *)(*(s32 *)((s32)a0 + 0xcc) + 0xb0) = 2; + } + INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018", func_801841A0); diff --git a/src/ov_SC06_000/ov_SC06_000.c b/src/ov_SC06_000/ov_SC06_000.c index 74a520d18b..441fd155bd 100644 --- a/src/ov_SC06_000/ov_SC06_000.c +++ b/src/ov_SC06_000/ov_SC06_000.c @@ -5197,7 +5197,10 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80184A08); INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80184A28); -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80184A50); +void func_80184A50(void *a0) { + *(short *)((char *)a0 + 0x2) = 0x2; + } + INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80184A5C); diff --git a/src/ov_SC06_011/ov_SC06_011.c b/src/ov_SC06_011/ov_SC06_011.c index f7fb1a6244..f76c3f53f1 100644 --- a/src/ov_SC06_011/ov_SC06_011.c +++ b/src/ov_SC06_011/ov_SC06_011.c @@ -4936,7 +4936,11 @@ INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011", func_8017FE34); INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011", func_8017FEB4); -INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011", func_8017FF58); +extern void func_8002D4C8(s32 arg0, s32 arg1); + void func_8017FF58(void) { + func_8002D4C8(0x6AA, 0); + } + INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011", func_8017FF7C); diff --git a/src/ov_SC06_014/ov_SC06_014.c b/src/ov_SC06_014/ov_SC06_014.c index 430d0670a1..c5e766eea4 100644 --- a/src/ov_SC06_014/ov_SC06_014.c +++ b/src/ov_SC06_014/ov_SC06_014.c @@ -4779,7 +4779,11 @@ INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014", func_8017D2EC); INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014", func_8017D32C); -INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014", func_8017D3A8); +extern s32 func_800D1EBC(void); + void func_8017D3A8(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014", func_8017D3C8); diff --git a/src/ov_SC06_016/ov_SC06_016.c b/src/ov_SC06_016/ov_SC06_016.c index 81ab7a2f59..97756a7d70 100644 --- a/src/ov_SC06_016/ov_SC06_016.c +++ b/src/ov_SC06_016/ov_SC06_016.c @@ -4871,7 +4871,11 @@ INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016", func_8017EFBC); INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016", func_8017F124); -INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016", func_8017F13C); +void func_8017F13C(void *a0) { + *(s16 *)((char *)a0 + 0xAE) = -1; + *(u16 *)((char *)a0 + 0x5C) |= 0x8800; + } + INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016", func_8017F154); diff --git a/src/ov_SC06_018/ov_SC06_018.c b/src/ov_SC06_018/ov_SC06_018.c index 95ab8e3f7a..21dba4da2a 100644 --- a/src/ov_SC06_018/ov_SC06_018.c +++ b/src/ov_SC06_018/ov_SC06_018.c @@ -4763,7 +4763,8 @@ INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018", func_8017C1DC); INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018", func_8017C24C); -INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018", func_8017D12C); +DEFINE_func_8017D12C() /* dedup: shared engine-core @0x8017D12C (src/shared) */ + INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018", func_8017D14C); @@ -4824,8 +4825,7 @@ INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018", func_8017DE08); INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018", func_8017DE64); -void func_8017DEA4(void) { -} +DEFINE_func_8017DEA4() /* dedup: shared engine-core @0x8017DEA4 (src/shared) */ INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018", func_8017DEAC); diff --git a/src/ov_SC06_020/ov_SC06_020.c b/src/ov_SC06_020/ov_SC06_020.c index 88d4c41706..d07b491fef 100644 --- a/src/ov_SC06_020/ov_SC06_020.c +++ b/src/ov_SC06_020/ov_SC06_020.c @@ -4763,7 +4763,7 @@ INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020", func_8017C1DC); INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020", func_8017C24C); -INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020", func_8017D12C); +DEFINE_func_8017D12C() /* dedup: shared engine-core @0x8017D12C (src/shared) */ INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020", func_8017D14C); diff --git a/src/ov_SC06_024/ov_SC06_024.c b/src/ov_SC06_024/ov_SC06_024.c index 1985f44bba..0bfc3b6577 100644 --- a/src/ov_SC06_024/ov_SC06_024.c +++ b/src/ov_SC06_024/ov_SC06_024.c @@ -5291,7 +5291,11 @@ INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8018DBB4); INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8018DCA8); -INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8018DD68); +extern void func_8012B370(int a0); + void func_8018DD68(void) { + ((void (*)(void))func_8012B370)(); + } + INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8018DD88); diff --git a/src/ov_SC06_029/ov_SC06_029.c b/src/ov_SC06_029/ov_SC06_029.c index c429cac07f..40aa3be824 100644 --- a/src/ov_SC06_029/ov_SC06_029.c +++ b/src/ov_SC06_029/ov_SC06_029.c @@ -4850,7 +4850,12 @@ INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8017F300); INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8017F330); -INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8017F970); +void func_8017F970(s32 arg0) { + if (arg0 != 0) { + *(s32 *)(arg0 + 0xE0) = 1; + } + } + INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8017F984); diff --git a/src/ov_SC06_030/ov_SC06_030.c b/src/ov_SC06_030/ov_SC06_030.c index ac70b8fbf0..959503aa69 100644 --- a/src/ov_SC06_030/ov_SC06_030.c +++ b/src/ov_SC06_030/ov_SC06_030.c @@ -4783,7 +4783,11 @@ INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030", func_8017D890); INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030", func_8017D8D0); -INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030", func_8017D94C); +extern void func_800D1EBC(void); + void func_8017D94C(void) { + func_800D1EBC(); + } + INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030", func_8017D96C); diff --git a/src/ov_SC06_033/ov_SC06_033.c b/src/ov_SC06_033/ov_SC06_033.c index eb38635ff2..a7ba7e3b21 100644 --- a/src/ov_SC06_033/ov_SC06_033.c +++ b/src/ov_SC06_033/ov_SC06_033.c @@ -4838,7 +4838,12 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_8017E3EC); INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_8017E594); -INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_8017E5F4); +s32 func_8017E5F4(s32 *a0) { + s16 v = *(u16 *)((s32)a0 + 0xA) + 4; + *(u16 *)((s32)a0 + 0xA) = v; + return 0; + } + INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_8017E60C); diff --git a/src/ov_SC07_000/ov_SC07_000.c b/src/ov_SC07_000/ov_SC07_000.c index 6220ef477b..2218ff3847 100644 --- a/src/ov_SC07_000/ov_SC07_000.c +++ b/src/ov_SC07_000/ov_SC07_000.c @@ -4785,7 +4785,11 @@ INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_8017DC68); INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_8017DE00); -INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_8017DF84); +extern s32 D_801D0598; + void func_8017DF84(s32 arg0) { + D_801D0598 = arg0; + } + INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_8017DF94); diff --git a/src/ov_SC07_001/ov_SC07_001.c b/src/ov_SC07_001/ov_SC07_001.c index a244905454..5ae11c38a7 100644 --- a/src/ov_SC07_001/ov_SC07_001.c +++ b/src/ov_SC07_001/ov_SC07_001.c @@ -4815,7 +4815,12 @@ INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001", func_8017E7E8); INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001", func_8017E8DC); -INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001", func_8017EA6C); +void func_8017EA6C(void *a0) { + *(s32 *)((s32)a0 + 0x1c) = 0x10; + *(s16 *)((s32)a0 + 0x2) = 0x8; + *(s16 *)((s32)a0 + 0x34) = 0; + } + INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001", func_8017EA84); diff --git a/src/ov_SC07_002/ov_SC07_002.c b/src/ov_SC07_002/ov_SC07_002.c index 767d516e16..3162b82d6d 100644 --- a/src/ov_SC07_002/ov_SC07_002.c +++ b/src/ov_SC07_002/ov_SC07_002.c @@ -4958,7 +4958,11 @@ void func_801819C4(void) { INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_801819CC); -INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_80181A00); +extern s16 D_8019F070; + void func_80181A00(void) { + D_8019F070 = 0x1; + } + INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_80181A14); diff --git a/src/ov_SC07_009/ov_SC07_009.c b/src/ov_SC07_009/ov_SC07_009.c index 6a04ec0164..0e354d6cd3 100644 --- a/src/ov_SC07_009/ov_SC07_009.c +++ b/src/ov_SC07_009/ov_SC07_009.c @@ -4849,7 +4849,13 @@ INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009", func_8017D924); void func_8017D978(void) { } -INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009", func_8017D980); +void func_8017D980(s32 *a0) { + *(s32 *)((s32)a0 + 0x30) = 0; + *(s32 *)((s32)a0 + 0x34) = 0; + *(s32 *)((s32)a0 + 0x38) = 0; + *(s32 *)((s32)a0 + 0x3C) = 0; + } + INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009", func_8017D994); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index 386aecfabf..336dc67c94 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -24657,4 +24657,30 @@ *(s16 *)((s32)a0 + 0x2) += 1; \ } +#define DEFINE_func_8018248C() \ + s32 func_8018248C(s32 arg0) { \ + return *(u16*)(arg0 + 0x2) == 0x6; \ + } + +#define DEFINE_func_8018B564() \ + void func_8018B564(void *a0) { \ + M2C_FIELD(a0, s16 *, 0x2) = 2; \ + } + +#define DEFINE_func_8018B6E8() \ + void func_8018B6E8(s32 *a0) { \ + *(s16 *)((s32)a0 + 0x2) = 0x2; \ + } + +#define DEFINE_func_8017DEA4() \ + void func_8017DEA4(void) { \ + } + +#define DEFINE_func_8017D12C() \ + extern void func_8002931C(void); \ + extern int func_8017D12C(int arg); \ + int func_8017D12C(int arg) { \ + ((void (*)(int))func_8002931C)(0x1A40000); \ + } + #endif