diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index 5baae8ba3b..d91fb06612 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -14908,3 +14908,10 @@ groups: func: DEFINE_func_80182894 vram: 0x80182894 binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_80184B14 + tier: h_exact + hash: 6a947e565c4e8483fb8f236fc4f79343f371fa76 + source: src/shared/engine_core.h + func: DEFINE_func_80184B14 + vram: 0x80184B14 + binaries: [ov_SC02_000, ov_SC02_003] diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c b/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c index ef27a898d8..9395cffb8f 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8018173C.c @@ -3830,39 +3830,7 @@ DEFINE_func_80184B00() /* dedup: shared engine-core @0x80184B00 (src/shared) */ #include "common.h" -extern void func_801819F4(void); -extern void func_801831F8(void); -extern s32 D_801E873C; -extern s32 D_801E874C; - -void func_80184B14(s32 a0) { - s32 ptr; - s32 v1; - - ptr = *(s32 *)(a0 + 0x20); - *(u16 *)(ptr + 0x12) = *(u16 *)(ptr + 0x12) + 0x20; - *(s32 *)(a0 + 0x8) = *(s32 *)(a0 + 0x8) + 0xFFFA0000; - - if (*(s16 *)(a0 + 0xA) < -0x4F0) { - *(s32 *)(a0 + 0x18) = 0xFFF24000; - func_801819F4(); - func_801831F8(); - v1 = 0xFFF46667; - *(s32 *)(a0 + 0x18) = v1; - __asm__(""); - v1 = *(u16 *)(a0 + 0x2); - *(s16 *)(a0 + 0xDC) = 0x10; - D_801E874C = 0x20; - *(s32 *)(a0 + 0x14) = 0xFFF80000; - *(s16 *)(a0 + 0xDE) = 0; - D_801E873C = 0; - *(s32 *)(a0 + 0x44) = 0; - *(s32 *)(a0 + 0x48) = 0x8000; - *(s32 *)(a0 + 0x4C) = 0; - v1 = v1 + 1; - *(u16 *)(a0 + 0x2) = v1; - } -} +DEFINE_func_80184B14() /* dedup: shared engine-core @0x80184B14 (src/shared) */ #include "common.h" diff --git a/src/ov_SC02_003/ov_SC02_003_jr_8018173C.c b/src/ov_SC02_003/ov_SC02_003_jr_8018173C.c index ccdf763fb9..1e446ff3a6 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_8018173C.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_8018173C.c @@ -3168,7 +3168,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80184A0 DEFINE_func_80184B00() /* dedup: shared engine-core @0x80184B00 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80184B14); +DEFINE_func_80184B14() /* dedup: shared engine-core @0x80184B14 (src/shared) */ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80184BD8); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index 3dd908e6a6..331b831c0b 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -61315,6 +61315,38 @@ } \ } +#define DEFINE_func_80184B14() \ + extern void func_801819F4(void); \ + extern void func_801831F8(void); \ + extern s32 D_801E873C; \ + extern s32 D_801E874C; \ + void func_80184B14(s32 a0) { \ + s32 ptr; \ + s32 v1; \ + ptr = *(s32 *)(a0 + 0x20); \ + *(u16 *)(ptr + 0x12) = *(u16 *)(ptr + 0x12) + 0x20; \ + *(s32 *)(a0 + 0x8) = *(s32 *)(a0 + 0x8) + 0xFFFA0000; \ + if (*(s16 *)(a0 + 0xA) < -0x4F0) { \ + *(s32 *)(a0 + 0x18) = 0xFFF24000; \ + func_801819F4(); \ + func_801831F8(); \ + v1 = 0xFFF46667; \ + *(s32 *)(a0 + 0x18) = v1; \ + __asm__(""); \ + v1 = *(u16 *)(a0 + 0x2); \ + *(s16 *)(a0 + 0xDC) = 0x10; \ + D_801E874C = 0x20; \ + *(s32 *)(a0 + 0x14) = 0xFFF80000; \ + *(s16 *)(a0 + 0xDE) = 0; \ + D_801E873C = 0; \ + *(s32 *)(a0 + 0x44) = 0; \ + *(s32 *)(a0 + 0x48) = 0x8000; \ + *(s32 *)(a0 + 0x4C) = 0; \ + v1 = v1 + 1; \ + *(u16 *)(a0 + 0x2) = v1; \ + } \ + } + #endif #define DEFINE_func_80128EA8() \ @@ -152035,4 +152067,36 @@ } \ } +#define DEFINE_func_80184B14() \ + extern void func_801819F4(void); \ + extern void func_801831F8(void); \ + extern s32 D_801E873C; \ + extern s32 D_801E874C; \ + void func_80184B14(s32 a0) { \ + s32 ptr; \ + s32 v1; \ + ptr = *(s32 *)(a0 + 0x20); \ + *(u16 *)(ptr + 0x12) = *(u16 *)(ptr + 0x12) + 0x20; \ + *(s32 *)(a0 + 0x8) = *(s32 *)(a0 + 0x8) + 0xFFFA0000; \ + if (*(s16 *)(a0 + 0xA) < -0x4F0) { \ + *(s32 *)(a0 + 0x18) = 0xFFF24000; \ + func_801819F4(); \ + func_801831F8(); \ + v1 = 0xFFF46667; \ + *(s32 *)(a0 + 0x18) = v1; \ + __asm__(""); \ + v1 = *(u16 *)(a0 + 0x2); \ + *(s16 *)(a0 + 0xDC) = 0x10; \ + D_801E874C = 0x20; \ + *(s32 *)(a0 + 0x14) = 0xFFF80000; \ + *(s16 *)(a0 + 0xDE) = 0; \ + D_801E873C = 0; \ + *(s32 *)(a0 + 0x44) = 0; \ + *(s32 *)(a0 + 0x48) = 0x8000; \ + *(s32 *)(a0 + 0x4C) = 0; \ + v1 = v1 + 1; \ + *(u16 *)(a0 + 0x2) = v1; \ + } \ + } + #endif