From a5677fdeacd675eb297358eb71dbb395c65db016 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 14 Aug 2026 23:33:17 -0600 Subject: [PATCH] feat(phase-31): propagate func_8017DC4C (gate lane) --- config/dedup.us.yaml | 7 ++++ src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c | 27 +------------ src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.c | 2 +- src/shared/engine_core.h | 48 +++++++++++++++++++++++ 4 files changed, 57 insertions(+), 27 deletions(-) diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index 56ad96061..b9eef445a 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -14642,3 +14642,10 @@ groups: func: DEFINE_func_80180D48 vram: 0x80180D48 binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_8017DC4C + tier: h_exact + hash: 48877b49f72a5f8b79e305003472bc61592ea5a5 + source: src/shared/engine_core.h + func: DEFINE_func_8017DC4C + vram: 0x8017DC4C + binaries: [ov_SC03_014, ov_SC03_015] diff --git a/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c b/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c index a149dfaf5..6c75a16ca 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c @@ -4450,32 +4450,7 @@ extern void func_80171A1C(u8 *a0); #include "common.h" -extern void func_8014706C(void *arg0); -extern void func_80154274(s32 *a0, s32 a1); -extern void func_8013C938(void); -extern void func_8012943C(void); -extern void func_80171A1C(u8 *a0); -extern s32 D_8018F0BC; -extern u8 D_800B9A11; - -void func_8017DC4C(s32 *a0) { - s32 v0 = a0[0x80]; - s32 v1; - - v1 = v0 - 1; - a0[0x80] = v1; - - if (v1 != -1) { - return; - } - - func_8014706C(a0); - func_80154274(a0, (s32)&D_8018F0BC); - func_8013C938(); - D_800B9A11 = 0xC0; - func_8012943C(); - func_80171A1C((u8 *)a0); -} +DEFINE_func_8017DC4C() /* dedup: shared engine-core @0x8017DC4C (src/shared) */ INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_jr_8017AE2C", func_8017DCC0); diff --git a/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.c b/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.c index 4fda0e737..ac92eeb04 100644 --- a/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.c +++ b/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.c @@ -4420,7 +4420,7 @@ void func_8017DC28(void *a0) { } -INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_jr_8017AE2C", func_8017DC4C); +DEFINE_func_8017DC4C() /* dedup: shared engine-core @0x8017DC4C (src/shared) */ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_jr_8017AE2C", func_8017DCC0); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index 01486e062..cb040d268 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -60587,6 +60587,30 @@ *(u16 *)(a0 + 2) += 1; \ } +#define DEFINE_func_8017DC4C() \ + extern void func_8014706C(void *arg0); \ + extern void func_80154274(s32 *a0, s32 a1); \ + extern void func_8013C938(void); \ + extern void func_8012943C(void); \ + extern void func_80171A1C(u8 *a0); \ + extern s32 D_8018F0BC; \ + extern u8 D_800B9A11; \ + void func_8017DC4C(s32 *a0) { \ + s32 v0 = a0[0x80]; \ + s32 v1; \ + v1 = v0 - 1; \ + a0[0x80] = v1; \ + if (v1 != -1) { \ + return; \ + } \ + func_8014706C(a0); \ + func_80154274(a0, (s32)&D_8018F0BC); \ + func_8013C938(); \ + D_800B9A11 = 0xC0; \ + func_8012943C(); \ + func_80171A1C((u8 *)a0); \ + } + #endif #define DEFINE_func_80128EA8() \ @@ -150579,4 +150603,28 @@ *(u16 *)(a0 + 2) += 1; \ } +#define DEFINE_func_8017DC4C() \ + extern void func_8014706C(void *arg0); \ + extern void func_80154274(s32 *a0, s32 a1); \ + extern void func_8013C938(void); \ + extern void func_8012943C(void); \ + extern void func_80171A1C(u8 *a0); \ + extern s32 D_8018F0BC; \ + extern u8 D_800B9A11; \ + void func_8017DC4C(s32 *a0) { \ + s32 v0 = a0[0x80]; \ + s32 v1; \ + v1 = v0 - 1; \ + a0[0x80] = v1; \ + if (v1 != -1) { \ + return; \ + } \ + func_8014706C(a0); \ + func_80154274(a0, (s32)&D_8018F0BC); \ + func_8013C938(); \ + D_800B9A11 = 0xC0; \ + func_8012943C(); \ + func_80171A1C((u8 *)a0); \ + } + #endif