From 78047a0fc8d71d2ccbf0a92bc98dbb3e4baf9f0a Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Tue, 25 Aug 2026 16:18:37 -0600 Subject: [PATCH] chore(decomp): commit in-tree banked work before the next gate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted. Top-level src/*.c (main TUs) are excluded by construction (S59). --- src/ov_SC03_002/ov_SC03_002_jr_8017D604.c | 33 +++++++++++++++++++- src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c | 38 +++++++++++++++++++++-- 2 files changed, 68 insertions(+), 3 deletions(-) diff --git a/src/ov_SC03_002/ov_SC03_002_jr_8017D604.c b/src/ov_SC03_002/ov_SC03_002_jr_8017D604.c index e09f47037..363dcf8e3 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_8017D604.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_8017D604.c @@ -4780,7 +4780,38 @@ void func_8018112C(void *arg0) { } -INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_8017D604", func_8018118C); +extern s32 func_8012BD14(s32 a0); +extern s32 func_80178BF8(); +extern void func_80172710(void); + +s32 func_8018118C(a0) +void *a0; +{ + s32 ptr; + u16 st; + + ptr = *(s32 *)((s32)a0 + 0x64); + st = *(u16 *)((s32)ptr + 0x2); + if (st != 2) { + return 0; + } + + if (func_8012BD14((s32)a0) >= 0x4000) { + return 0; + } + + { + s32 p; + u16 st2; + p = *(s32 *)((s32)a0 + 0x64); + st2 = *(u16 *)((s32)p + 0x2); + st2++; + *(u16 *)((s32)p + 0x2) = st2; + } + func_80178BF8(); + return (s32)func_80172710; +} + /* func_80181200 — guarded dispatch: ask func_80183158(9, 0x12); if it answers diff --git a/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c b/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c index d17e47625..ff0738817 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c @@ -5671,7 +5671,41 @@ void func_801826B4(void *a0) { } -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8017DF84", func_801826E8); +extern s32 func_80182784(s32 arg0, s32 arg1, s32 arg2); + +int func_801826E8(int a0, void* a1) +{ + s16 stack_buf[8]; + register s16 *s0 __asm__("$16") = (s16 *)a1; + s16 v0; + s32 result; + s32 ret; + + v0 = s0[2]; + stack_buf[0] = v0; + v0 = s0[3]; + stack_buf[4] = v0; + v0 = s0[5]; + stack_buf[5] = v0; + stack_buf[1] = v0; + v0 = s0[6]; + stack_buf[6] = v0; + stack_buf[2] = v0; + + result = func_80182784((s32)a0, (s32)&stack_buf[0], (s32)&stack_buf[4]); + + if (result != 0) { + ret = 1; + } else { + v0 = s0[7]; + stack_buf[6] = v0; + stack_buf[2] = v0; + result = func_80182784((s32)a0, (s32)&stack_buf[0], (s32)&stack_buf[4]); + ret = (result != 0); + } + return ret; +} + extern s32 *D_80126B78; extern s32 *D_80126B90; @@ -5868,7 +5902,7 @@ extern void func_801823B4(s32 a0); extern int func_80178970(void); extern void func_8018265C(int a0); - extern int func_801826E8(int a0, void *a1); + extern int func_801826E8(); extern void func_80182408(int a0); extern char D_8018B164[]; void func_80182BE0(int param_1)