From 37cc7d8dd67be5ab34efdc2122be99c4e9fd3d2f Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Tue, 30 Jun 2026 06:08:18 -0600 Subject: [PATCH] =?UTF-8?q?feat(phase-23):=20lora-grind=20gate=20=E2=80=94?= =?UTF-8?q?=20+12=20fns=20x0=20propagated=20(fleet=2063.76%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/dedup.us.yaml | 168 ++++++++++++++++++++++++++++++++++ src/ov_SC02_000/ov_SC02_000.c | 124 +++++-------------------- src/ov_SC02_003/ov_SC02_003.c | 136 ++++++++++++++++++--------- src/shared/engine_core.h | 139 ++++++++++++++++++++++++++++ 4 files changed, 424 insertions(+), 143 deletions(-) diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index d5b100e36..59cab3b4d 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -11678,3 +11678,171 @@ groups: func: DEFINE_func_8017CDFC vram: 0x8017CDFC binaries: [ov_SC01_009, ov_SC01_074] + - id: E_func_80181DE0 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_80181DE0 + vram: 0x80181DE0 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_8018258C + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_8018258C + vram: 0x8018258C + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80183010 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_80183010 + vram: 0x80183010 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80183A78 + tier: h_exact + hash: 703d398d81c2d72db04872027cd42c50c2ebf4ee + source: src/shared/engine_core.h + func: DEFINE_func_80183A78 + vram: 0x80183A78 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80183C94 + tier: h_exact + hash: 703d398d81c2d72db04872027cd42c50c2ebf4ee + source: src/shared/engine_core.h + func: DEFINE_func_80183C94 + vram: 0x80183C94 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_8018535C + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_8018535C + vram: 0x8018535C + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_801854C4 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_801854C4 + vram: 0x801854C4 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80188DF0 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_80188DF0 + vram: 0x80188DF0 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80189950 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_80189950 + vram: 0x80189950 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80184164 + tier: h_exact + hash: 3a6e48b9f8b096deb530509e8fdf1b87676a3ced + source: src/shared/engine_core.h + func: DEFINE_func_80184164 + vram: 0x80184164 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_8018A650 + tier: h_exact + hash: d6b0cf6fa2e667b1f50572a18bf06375994d15fd + source: src/shared/engine_core.h + func: DEFINE_func_8018A650 + vram: 0x8018A650 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_8017FC9C + tier: h_exact + hash: 7de2e2a3e307da3d0783e82cac6c1acadfc4abeb + source: src/shared/engine_core.h + func: DEFINE_func_8017FC9C + vram: 0x8017FC9C + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80184B00 + tier: h_exact + hash: 981b4c9251c519a22d1e4cf67a36d06c000df0ba + source: src/shared/engine_core.h + func: DEFINE_func_80184B00 + vram: 0x80184B00 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80185364 + tier: h_exact + hash: e014632012b2296778afd2e6e5f56cc5d379b186 + source: src/shared/engine_core.h + func: DEFINE_func_80185364 + vram: 0x80185364 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80180394 + tier: h_exact + hash: 93666547fd3ca9eaf27b3d6716978b1e3fec1845 + source: src/shared/engine_core.h + func: DEFINE_func_80180394 + vram: 0x80180394 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_801803B0 + tier: h_exact + hash: c0330a347bf76ecedb30af707545c2cecd3a18fa + source: src/shared/engine_core.h + func: DEFINE_func_801803B0 + vram: 0x801803B0 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80181914 + tier: h_exact + hash: e88cba9aa01e5d24255cb7512ba736da0fe1bb50 + source: src/shared/engine_core.h + func: DEFINE_func_80181914 + vram: 0x80181914 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_8018621C + tier: h_exact + hash: cd1fab6b6869445d2c8447f0ddf63069d2b664e6 + source: src/shared/engine_core.h + func: DEFINE_func_8018621C + vram: 0x8018621C + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80182338 + tier: h_exact + hash: 25c5aa9bdbfa39d4abf3f880a6aafa64a1ebf447 + source: src/shared/engine_core.h + func: DEFINE_func_80182338 + vram: 0x80182338 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_801823F0 + tier: h_exact + hash: 511a8b68802b6800ebb271e89b28604ee53e3401 + source: src/shared/engine_core.h + func: DEFINE_func_801823F0 + vram: 0x801823F0 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_801824A8 + tier: h_exact + hash: 511a8b68802b6800ebb271e89b28604ee53e3401 + source: src/shared/engine_core.h + func: DEFINE_func_801824A8 + vram: 0x801824A8 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80184174 + tier: h_exact + hash: 81949fd06dce58109435ef628847b94b6954f821 + source: src/shared/engine_core.h + func: DEFINE_func_80184174 + vram: 0x80184174 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80188F08 + tier: h_exact + hash: 7dfff3b1d179af49efb824c90bb482a98631a1f7 + source: src/shared/engine_core.h + func: DEFINE_func_80188F08 + vram: 0x80188F08 + binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80181CE0 + tier: h_exact + hash: de11b66c086a368bb7f1aaabc36b6cf78e510eeb + source: src/shared/engine_core.h + func: DEFINE_func_80181CE0 + vram: 0x80181CE0 + binaries: [ov_SC02_000, ov_SC02_003] diff --git a/src/ov_SC02_000/ov_SC02_000.c b/src/ov_SC02_000/ov_SC02_000.c index 2fc2341dd..6fedab381 100644 --- a/src/ov_SC02_000/ov_SC02_000.c +++ b/src/ov_SC02_000/ov_SC02_000.c @@ -4847,11 +4847,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8017F950); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8017FB24); -void func_8017FC9C(void *a0) { - *(short *)((char *)a0 + 0x2) = 4; - *(short *)((char *)a0 + 0x98) = 0; - *(int *)((char *)a0 + 0x1c) = 0; - } +DEFINE_func_8017FC9C() /* dedup: shared engine-core @0x8017FC9C (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8017FCB0); @@ -4874,19 +4870,10 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801801EC); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80180264); -void func_80180394(void *a0) { - *(short *)((char *)a0 + 0x2) = 0x7; - *(short *)((char *)a0 + 0x98) = 0; - *(int *)((char *)a0 + 0x1c) = 0x1e; - *(short *)((char *)a0 + 0x5c) = 0; - } +DEFINE_func_80180394() /* dedup: shared engine-core @0x80180394 (src/shared) */ -extern void func_801803D0(void); - -void func_801803B0(void) { - func_801803D0(); -} +DEFINE_func_801803B0() /* dedup: shared engine-core @0x801803B0 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801803D0); @@ -4929,11 +4916,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80181820); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801818C0); -extern u8 D_8012694C; - -void func_80181914(void) { - D_8012694C++; -} +DEFINE_func_80181914() /* dedup: shared engine-core @0x80181914 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80181934); @@ -4948,15 +4931,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80181B4C); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80181C10); -extern s32 D_8012695C; -extern s16 D_80126968; -extern s16 D_80126978; - -void func_80181CE0(void) { - D_8012695C = 0x50; - D_80126968 = 0x71; - D_80126978 = -0x80; -} +DEFINE_func_80181CE0() /* dedup: shared engine-core @0x80181CE0 (src/shared) */ extern s16 D_80126968; @@ -4971,8 +4946,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80181D2C); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80181D68); -void func_80181DE0(void) { -} +DEFINE_func_80181DE0() /* dedup: shared engine-core @0x80181DE0 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80181DE8); @@ -4992,33 +4966,21 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80182270); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801822BC); -extern s32 func_800167F0(s32 arg0); - -s32 func_80182338(void) { - return (func_800167F0(4) & 0xFFFF) != 0; -} +DEFINE_func_80182338() /* dedup: shared engine-core @0x80182338 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018235C); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80182398); -extern s32 func_800167F0(s32 arg0); - -s32 func_801823F0(void) { - return (func_800167F0(0) & 0xFFFF) != 0; -} +DEFINE_func_801823F0() /* dedup: shared engine-core @0x801823F0 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80182414); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80182450); -extern s32 func_800167F0(s32 arg0); - -s32 func_801824A8(void) { - return (func_800167F0(0) & 0xFFFF) != 0; -} +DEFINE_func_801824A8() /* dedup: shared engine-core @0x801824A8 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801824CC); @@ -5027,8 +4989,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801824E0); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018251C); -void func_8018258C(void) { -} +DEFINE_func_8018258C() /* dedup: shared engine-core @0x8018258C (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80182594); @@ -5084,8 +5045,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80182F4C); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80182F78); -void func_80183010(void) { -} +DEFINE_func_80183010() /* dedup: shared engine-core @0x80183010 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80183018); @@ -5129,9 +5089,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80183814); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801839C4); -void func_80183A78(s32 *a0) { - *(s8 *)((s32)a0 + 0x20C) = 0; - } +DEFINE_func_80183A78() /* dedup: shared engine-core @0x80183A78 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80183A80); @@ -5140,9 +5098,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80183B64); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80183BA4); -void func_80183C94(void *a0) { - *(s8 *)((s32)a0 + 0x20C) = 0; - } +DEFINE_func_80183C94() /* dedup: shared engine-core @0x80183C94 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80183C9C); @@ -5159,19 +5115,10 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80183F64); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80183FC8); -void func_80184164(void *a0) { - *(short *)(*(int *)((char *)a0 + 0x20) + 0x12) = 0xC00; - } +DEFINE_func_80184164() /* dedup: shared engine-core @0x80184164 (src/shared) */ -extern s32 D_801B5C90; - -void func_80184174(void *arg0) { - *(u16 *)((s32)arg0 + 0xdc) = 0x5a; - *(u16 *)((s32)arg0 + 0xde) = 0x3c; - *(u16 *)((s32)arg0 + 0xe0) = 1; - *(u16 *)((s32)arg0 + 0x2) = *(u16 *)((s32)arg0 + 0x2) + 1; -} +DEFINE_func_80184174() /* dedup: shared engine-core @0x80184174 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018419C); @@ -5188,9 +5135,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018483C); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80184A08); -void func_80184B00(void *a0) { - *(s16 *)((s32)a0 + 0x2) += 1; - } +DEFINE_func_80184B00() /* dedup: shared engine-core @0x80184B00 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80184B14); @@ -5201,14 +5146,9 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018512C); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801852E4); -void func_8018535C(void) { -} +DEFINE_func_8018535C() /* dedup: shared engine-core @0x8018535C (src/shared) */ -void func_80185364(void *a0) { - *(s16 *)((s32)a0 + 0xA) = -0x1B26; - *(s16 *)((s32)a0 + 0x6) = 0; - *(s16 *)((s32)a0 + 0xE) = 0x1C59; - } +DEFINE_func_80185364() /* dedup: shared engine-core @0x80185364 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018537C); @@ -5217,8 +5157,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801853D4); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018545C); -void func_801854C4(void) { -} +DEFINE_func_801854C4() /* dedup: shared engine-core @0x801854C4 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801854CC); @@ -5260,11 +5199,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018618C); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801861D8); -extern void func_8013BD34(void); - -void func_8018621C(void) { - func_8013BD34(); -} +DEFINE_func_8018621C() /* dedup: shared engine-core @0x8018621C (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018623C); @@ -5397,8 +5332,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80188D18); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80188D54); -void func_80188DF0(void) { -} +DEFINE_func_80188DF0() /* dedup: shared engine-core @0x80188DF0 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80188DF8); @@ -5406,12 +5340,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80188E80); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80188ECC); -extern void func_8018A3FC(s32 *a0); -extern u8 D_801E8830[]; - -void func_80188F08(void) { - func_8018A3FC(D_801E8830); -} +DEFINE_func_80188F08() /* dedup: shared engine-core @0x80188F08 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80188F30); @@ -5440,8 +5369,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_801898C8); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80189904); -void func_80189950(void) { -} +DEFINE_func_80189950() /* dedup: shared engine-core @0x80189950 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_80189958); @@ -5481,11 +5409,7 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018A550); INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018A640); -void func_8018A650(s32 *a0, s32 a1, s32 a2, s32 a3) { - *(s8 *)((s32)a0 + 0x4) = a1; - *(s8 *)((s32)a0 + 0x5) = a2; - *(s8 *)((s32)a0 + 0x6) = a3; - } +DEFINE_func_8018A650() /* dedup: shared engine-core @0x8018A650 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8018A660); diff --git a/src/ov_SC02_003/ov_SC02_003.c b/src/ov_SC02_003/ov_SC02_003.c index aa703ac83..876d25cf8 100644 --- a/src/ov_SC02_003/ov_SC02_003.c +++ b/src/ov_SC02_003/ov_SC02_003.c @@ -189,7 +189,10 @@ DEFINE_func_8012AD44() /* dedup: shared engine-core @0x8012AD44 (src/shared) */ DEFINE_func_8012AD50() /* dedup: shared engine-core @0x8012AD50 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8012AD64); +void func_8012AD64(s32 *a0, s16 a1) { + *(s16 *)((s32)a0 + 0x34) = a1; + } + DEFINE_func_8012AD6C() /* dedup: shared engine-core @0x8012AD6C (src/shared) */ @@ -265,7 +268,10 @@ DEFINE_func_8012BEE8() /* dedup: shared engine-core @0x8012BEE8 (src/shared) */ DEFINE_func_8012BF10() /* dedup: shared engine-core @0x8012BF10 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8012BF4C); +void func_8012BF4C(s32 *a0, s32 a1) { + *(s32 *)((s32)a0 + 0x1C) = a1; + } + DEFINE_func_8012BF54() /* dedup: shared engine-core @0x8012BF54 (src/shared) */ @@ -379,7 +385,10 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8012E014); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8012E138); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8012E27C); +s32 func_8012E27C(void) { + return 0x1; + } + DEFINE_func_8012E284() /* dedup: shared engine-core @0x8012E284 (src/shared) */ @@ -4413,7 +4422,14 @@ DEFINE_func_80174604() /* dedup: shared engine-core @0x80174604 (src/shared) */ DEFINE_func_80174630() /* dedup: shared engine-core @0x80174630 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80174650); +extern s32 D_801270BC; + extern s32 D_801150F8; + s32 func_80174650(s32 _arg0) +{ + D_801270BC = D_801270BC | 1; + D_801150F8 = 0; + } + DEFINE_func_80174674() /* dedup: shared engine-core @0x80174674 (src/shared) */ @@ -4831,7 +4847,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8017F950); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8017FB24); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8017FC9C); +DEFINE_func_8017FC9C() /* dedup: shared engine-core @0x8017FC9C (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8017FCB0); @@ -4853,9 +4869,9 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801801EC); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80180264); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80180394); +DEFINE_func_80180394() /* dedup: shared engine-core @0x80180394 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801803B0); +DEFINE_func_801803B0() /* dedup: shared engine-core @0x801803B0 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801803D0); @@ -4879,7 +4895,11 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80180D6C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018127C); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181498); +extern void func_8012E364(void); + void func_80181498(void) { + ((s32 (*)(void))func_8012E364)(); + } + INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801814B8); @@ -4897,7 +4917,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181820); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801818C0); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181914); +DEFINE_func_80181914() /* dedup: shared engine-core @0x80181914 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181934); @@ -4911,16 +4931,21 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181B4C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181C10); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181CE0); +DEFINE_func_80181CE0() /* dedup: shared engine-core @0x80181CE0 (src/shared) */ + +extern s16 D_80126968; + extern s16 D_80126978; + void func_80181D0C(void) { + D_80126968 = 0x200; + D_80126978 = -0x1C0; + } -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181D0C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181D2C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181D68); -void func_80181DE0(void) { -} +DEFINE_func_80181DE0() /* dedup: shared engine-core @0x80181DE0 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80181DE8); @@ -4940,19 +4965,19 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80182270); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801822BC); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80182338); +DEFINE_func_80182338() /* dedup: shared engine-core @0x80182338 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018235C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80182398); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801823F0); +DEFINE_func_801823F0() /* dedup: shared engine-core @0x801823F0 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80182414); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80182450); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801824A8); +DEFINE_func_801824A8() /* dedup: shared engine-core @0x801824A8 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801824CC); @@ -4960,8 +4985,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801824E0); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018251C); -void func_8018258C(void) { -} +DEFINE_func_8018258C() /* dedup: shared engine-core @0x8018258C (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80182594); @@ -4977,7 +5001,11 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80182700); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80182744); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801827A0); +extern void func_8016F0E4(void); + void func_801827A0(void) { + ((s32 (*)(void))func_8016F0E4)(); + } + INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801827C0); @@ -5013,8 +5041,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80182F4C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80182F78); -void func_80183010(void) { -} +DEFINE_func_80183010() /* dedup: shared engine-core @0x80183010 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80183018); @@ -5024,7 +5051,11 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018316C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801831A8); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801831E4); +extern u8 D_80126D6C; + void func_801831E4(void) { + D_80126D6C = 0x8; + } + INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801831F8); @@ -5054,7 +5085,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80183814); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801839C4); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80183A78); +DEFINE_func_80183A78() /* dedup: shared engine-core @0x80183A78 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80183A80); @@ -5062,7 +5093,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80183B64); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80183BA4); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80183C94); +DEFINE_func_80183C94() /* dedup: shared engine-core @0x80183C94 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80183C9C); @@ -5078,9 +5109,9 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80183F64); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80183FC8); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80184164); +DEFINE_func_80184164() /* dedup: shared engine-core @0x80184164 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80184174); +DEFINE_func_80184174() /* dedup: shared engine-core @0x80184174 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018419C); @@ -5096,7 +5127,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018483C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80184A08); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80184B00); +DEFINE_func_80184B00() /* dedup: shared engine-core @0x80184B00 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80184B14); @@ -5106,10 +5137,9 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018512C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801852E4); -void func_8018535C(void) { -} +DEFINE_func_8018535C() /* dedup: shared engine-core @0x8018535C (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80185364); +DEFINE_func_80185364() /* dedup: shared engine-core @0x80185364 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018537C); @@ -5117,8 +5147,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801853D4); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018545C); -void func_801854C4(void) { -} +DEFINE_func_801854C4() /* dedup: shared engine-core @0x801854C4 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801854CC); @@ -5160,9 +5189,17 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018618C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801861D8); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018621C); +DEFINE_func_8018621C() /* dedup: shared engine-core @0x8018621C (src/shared) */ + +extern s32 D_801E8010; +extern void func_8002D4C8(s32 arg0, s32 arg1); + +void func_8018623C(u16 arg0, u16 arg1) { + if (D_801E8010 == 0) { + func_8002D4C8(arg0 & 0xFFFF, arg1 & 0xFFFF); + } +} -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018623C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018626C); @@ -5184,7 +5221,13 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018694C); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801869CC); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80186A64); +extern void func_8002D4C8(s32 arg0, s32 arg1); + void func_80186A64(void *a0) { + *(s32 *)((s32)a0 + 0x1C) = 0x96; + *(s16 *)((s32)a0 + 0x2) += 1; + func_8002D4C8(0x402, 0); + } + INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80186A9C); @@ -5272,7 +5315,12 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80188754); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80188790); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801888CC); +extern void func_8012AD44(s32 *a0, s16 a1); + void func_801888CC(void *a0) { + *(s32 *)((char *)a0 + 0x1c) = 0x10; + ((void (*)(s32, s32))func_8012AD44)((s32)a0, 0x1); + } + INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801888F4); @@ -5292,8 +5340,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80188D18); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80188D54); -void func_80188DF0(void) { -} +DEFINE_func_80188DF0() /* dedup: shared engine-core @0x80188DF0 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80188DF8); @@ -5301,7 +5348,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80188E80); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80188ECC); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80188F08); +DEFINE_func_80188F08() /* dedup: shared engine-core @0x80188F08 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80188F30); @@ -5317,7 +5364,11 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801897E8); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80189858); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80189888); +extern s16 D_800B9A0E; + s32 func_80189888(void) { + return *(s16 *)&D_800B9A0E; + } + INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80189898); @@ -5325,8 +5376,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_801898C8); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80189904); -void func_80189950(void) { -} +DEFINE_func_80189950() /* dedup: shared engine-core @0x80189950 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_80189958); @@ -5366,7 +5416,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018A550); INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018A640); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018A650); +DEFINE_func_8018A650() /* dedup: shared engine-core @0x8018A650 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8018A660); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index 6eb3fc3d8..0ba13f628 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -24014,4 +24014,143 @@ return (func_800167F0(0) & 0xFFFF) != 0; \ } +#define DEFINE_func_80181DE0() \ + void func_80181DE0(void) { \ + } + +#define DEFINE_func_8018258C() \ + void func_8018258C(void) { \ + } + +#define DEFINE_func_80183010() \ + void func_80183010(void) { \ + } + +#define DEFINE_func_80183A78() \ + void func_80183A78(s32 *a0) { \ + *(s8 *)((s32)a0 + 0x20C) = 0; \ + } + +#define DEFINE_func_80183C94() \ + void func_80183C94(void *a0) { \ + *(s8 *)((s32)a0 + 0x20C) = 0; \ + } + +#define DEFINE_func_8018535C() \ + void func_8018535C(void) { \ + } + +#define DEFINE_func_801854C4() \ + void func_801854C4(void) { \ + } + +#define DEFINE_func_80188DF0() \ + void func_80188DF0(void) { \ + } + +#define DEFINE_func_80189950() \ + void func_80189950(void) { \ + } + +#define DEFINE_func_80184164() \ + void func_80184164(void *a0) { \ + *(short *)(*(int *)((char *)a0 + 0x20) + 0x12) = 0xC00; \ + } + +#define DEFINE_func_8018A650() \ + void func_8018A650(s32 *a0, s32 a1, s32 a2, s32 a3) { \ + *(s8 *)((s32)a0 + 0x4) = a1; \ + *(s8 *)((s32)a0 + 0x5) = a2; \ + *(s8 *)((s32)a0 + 0x6) = a3; \ + } + +#define DEFINE_func_8017FC9C() \ + void func_8017FC9C(void *a0) { \ + *(short *)((char *)a0 + 0x2) = 4; \ + *(short *)((char *)a0 + 0x98) = 0; \ + *(int *)((char *)a0 + 0x1c) = 0; \ + } + +#define DEFINE_func_80184B00() \ + void func_80184B00(void *a0) { \ + *(s16 *)((s32)a0 + 0x2) += 1; \ + } + +#define DEFINE_func_80185364() \ + void func_80185364(void *a0) { \ + *(s16 *)((s32)a0 + 0xA) = -0x1B26; \ + *(s16 *)((s32)a0 + 0x6) = 0; \ + *(s16 *)((s32)a0 + 0xE) = 0x1C59; \ + } + +#define DEFINE_func_80180394() \ + void func_80180394(void *a0) { \ + *(short *)((char *)a0 + 0x2) = 0x7; \ + *(short *)((char *)a0 + 0x98) = 0; \ + *(int *)((char *)a0 + 0x1c) = 0x1e; \ + *(short *)((char *)a0 + 0x5c) = 0; \ + } + +#define DEFINE_func_801803B0() \ + extern void func_801803D0(void); \ + void func_801803B0(void) { \ + func_801803D0(); \ + } + +#define DEFINE_func_80181914() \ + extern u8 D_8012694C; \ + void func_80181914(void) { \ + D_8012694C++; \ + } + +#define DEFINE_func_8018621C() \ + extern void func_8013BD34(void); \ + void func_8018621C(void) { \ + func_8013BD34(); \ + } + +#define DEFINE_func_80182338() \ + extern s32 func_800167F0(s32 arg0); \ + s32 func_80182338(void) { \ + return (func_800167F0(4) & 0xFFFF) != 0; \ + } + +#define DEFINE_func_801823F0() \ + extern s32 func_800167F0(s32 arg0); \ + s32 func_801823F0(void) { \ + return (func_800167F0(0) & 0xFFFF) != 0; \ + } + +#define DEFINE_func_801824A8() \ + extern s32 func_800167F0(s32 arg0); \ + s32 func_801824A8(void) { \ + return (func_800167F0(0) & 0xFFFF) != 0; \ + } + +#define DEFINE_func_80184174() \ + extern s32 D_801B5C90; \ + void func_80184174(void *arg0) { \ + *(u16 *)((s32)arg0 + 0xdc) = 0x5a; \ + *(u16 *)((s32)arg0 + 0xde) = 0x3c; \ + *(u16 *)((s32)arg0 + 0xe0) = 1; \ + *(u16 *)((s32)arg0 + 0x2) = *(u16 *)((s32)arg0 + 0x2) + 1; \ + } + +#define DEFINE_func_80188F08() \ + extern void func_8018A3FC(s32 *a0); \ + extern u8 D_801E8830[]; \ + void func_80188F08(void) { \ + func_8018A3FC(D_801E8830); \ + } + +#define DEFINE_func_80181CE0() \ + extern s32 D_8012695C; \ + extern s16 D_80126968; \ + extern s16 D_80126978; \ + void func_80181CE0(void) { \ + D_8012695C = 0x50; \ + D_80126968 = 0x71; \ + D_80126978 = -0x80; \ + } + #endif