From d9586392a6f9edf77fdf31d8a42c0ca2520253e9 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Sat, 1 Aug 2026 09:46:22 -0600 Subject: [PATCH] =?UTF-8?q?feat(phase-30=20S3):=20func=5F801754A8=20banked?= =?UTF-8?q?=20(37=20ins=20x138=20head)=20=E2=80=94=20plain=20gate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ov_SC01_077/ov_SC01_077_jr_801734BC.c | 25 ++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/ov_SC01_077/ov_SC01_077_jr_801734BC.c b/src/ov_SC01_077/ov_SC01_077_jr_801734BC.c index 017daefa26..6bdfcb28a0 100644 --- a/src/ov_SC01_077/ov_SC01_077_jr_801734BC.c +++ b/src/ov_SC01_077/ov_SC01_077_jr_801734BC.c @@ -2988,7 +2988,30 @@ DEFINE_func_80175454() /* dedup: shared engine-core @0x80175454 (src/shared) */ DEFINE_func_80175494() /* dedup: shared engine-core @0x80175494 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077_jr_801734BC", func_801754A8); +// @class: regalloc-order +// @stuck: none — MATCH (37 ins, relocation-masked proxy) + + + +extern s32 func_80029504(void); +extern u8 D_8011F7A8; +extern unsigned char D_800B9A13; +extern s32 D_80126B9C; +extern DispatchFn D_8018A308[]; + +void func_801754A8(void) { + u8 *p = &D_8011F7A8; + s32 r = func_80029504(); + s32 flag = 0; + + if (((D_800B9A13 == 0) && ((D_80126B9C & 0x80) == 0)) || + (0x4AF < (u32)(r - 10))) { + flag = 1; + } + p[9] = flag; + D_8018A308[p[0]]((void *)p); +} + // @class: struct // @stuck: none — MATCH expected. fn-ptr-table dispatch: byte at param+1 indexes D_8018A314[] declared extern void(*[])() so %lo folds into the lw of the fn-ptr; dispatched call takes no args (no $a0 setup before jalr), then three plain jal tail calls.