From 75b01f013337624050d2ea3e4d23a4ea23ce9f63 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Sat, 15 Aug 2026 00:20:47 -0600 Subject: [PATCH] feat(phase-31): propagate func_8017EBC8 (gate lane) --- config/dedup.us.yaml | 7 ++++++ src/ov_SC03_126/ov_SC03_126_jr_8017D5C0.c | 15 +----------- src/ov_SC04_021/ov_SC04_021_jr_8017D5C0.c | 2 +- src/ov_SC05_019/ov_SC05_019_jr_8017D5C0.c | 2 +- src/shared/engine_core.h | 30 +++++++++++++++++++++++ 5 files changed, 40 insertions(+), 16 deletions(-) diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index ed32dd451..28b6d5cd4 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -14733,3 +14733,10 @@ groups: func: DEFINE_func_80182630 vram: 0x80182630 binaries: [ov_SC02_000, ov_SC02_003] + - id: E_func_8017EBC8 + tier: h_exact + hash: d0406d9f27465af1dda3221896b77435add3e084 + source: src/shared/engine_core.h + func: DEFINE_func_8017EBC8 + vram: 0x8017EBC8 + binaries: [ov_SC03_126, ov_SC04_021, ov_SC05_019] diff --git a/src/ov_SC03_126/ov_SC03_126_jr_8017D5C0.c b/src/ov_SC03_126/ov_SC03_126_jr_8017D5C0.c index ee7e00098..80e410bb5 100644 --- a/src/ov_SC03_126/ov_SC03_126_jr_8017D5C0.c +++ b/src/ov_SC03_126/ov_SC03_126_jr_8017D5C0.c @@ -3365,20 +3365,7 @@ INCLUDE_ASM("asm/ov_SC03_126/nonmatchings/ov_SC03_126_jr_8017D5C0", func_8017EB4 #include "common.h" -extern s32 func_801399F0(s32 a0); -extern void func_80139914(s32 a0); -extern void func_80171928(void *a0); - -void func_8017EBC8(u8 *a0) { - if ((*(u16 *)(a0 + 0xB8) & 0x8000) == 0) { - return; - } - if (func_801399F0(*(s32 *)(a0 + 0x198)) != 0) { - func_80139914(*(s32 *)(a0 + 0x198)); - *(s32 *)(a0 + 0x198) = 0; - func_80171928(a0); - } -} +DEFINE_func_8017EBC8() /* dedup: shared engine-core @0x8017EBC8 (src/shared) */ INCLUDE_ASM("asm/ov_SC03_126/nonmatchings/ov_SC03_126_jr_8017D5C0", func_8017EC2C); diff --git a/src/ov_SC04_021/ov_SC04_021_jr_8017D5C0.c b/src/ov_SC04_021/ov_SC04_021_jr_8017D5C0.c index 1e3f2d358..aa09edbec 100644 --- a/src/ov_SC04_021/ov_SC04_021_jr_8017D5C0.c +++ b/src/ov_SC04_021/ov_SC04_021_jr_8017D5C0.c @@ -3336,7 +3336,7 @@ INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_8017D5C0", func_8017EAC INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_8017D5C0", func_8017EB4C); -INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_8017D5C0", func_8017EBC8); +DEFINE_func_8017EBC8() /* dedup: shared engine-core @0x8017EBC8 (src/shared) */ INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_8017D5C0", func_8017EC2C); diff --git a/src/ov_SC05_019/ov_SC05_019_jr_8017D5C0.c b/src/ov_SC05_019/ov_SC05_019_jr_8017D5C0.c index af2faa861..912a7b752 100644 --- a/src/ov_SC05_019/ov_SC05_019_jr_8017D5C0.c +++ b/src/ov_SC05_019/ov_SC05_019_jr_8017D5C0.c @@ -3336,7 +3336,7 @@ INCLUDE_ASM("asm/ov_SC05_019/nonmatchings/ov_SC05_019_jr_8017D5C0", func_8017EAC INCLUDE_ASM("asm/ov_SC05_019/nonmatchings/ov_SC05_019_jr_8017D5C0", func_8017EB4C); -INCLUDE_ASM("asm/ov_SC05_019/nonmatchings/ov_SC05_019_jr_8017D5C0", func_8017EBC8); +DEFINE_func_8017EBC8() /* dedup: shared engine-core @0x8017EBC8 (src/shared) */ INCLUDE_ASM("asm/ov_SC05_019/nonmatchings/ov_SC05_019_jr_8017D5C0", func_8017EC2C); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index bb5b0a422..a2189ebc6 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -60835,6 +60835,21 @@ } \ } +#define DEFINE_func_8017EBC8() \ + extern s32 func_801399F0(s32 a0); \ + extern void func_80139914(s32 a0); \ + extern void func_80171928(void *a0); \ + void func_8017EBC8(u8 *a0) { \ + if ((*(u16 *)(a0 + 0xB8) & 0x8000) == 0) { \ + return; \ + } \ + if (func_801399F0(*(s32 *)(a0 + 0x198)) != 0) { \ + func_80139914(*(s32 *)(a0 + 0x198)); \ + *(s32 *)(a0 + 0x198) = 0; \ + func_80171928(a0); \ + } \ + } + #endif #define DEFINE_func_80128EA8() \ @@ -151075,4 +151090,19 @@ } \ } +#define DEFINE_func_8017EBC8() \ + extern s32 func_801399F0(s32 a0); \ + extern void func_80139914(s32 a0); \ + extern void func_80171928(void *a0); \ + void func_8017EBC8(u8 *a0) { \ + if ((*(u16 *)(a0 + 0xB8) & 0x8000) == 0) { \ + return; \ + } \ + if (func_801399F0(*(s32 *)(a0 + 0x198)) != 0) { \ + func_80139914(*(s32 *)(a0 + 0x198)); \ + *(s32 *)(a0 + 0x198) = 0; \ + func_80171928(a0); \ + } \ + } + #endif