From a725c2a4e66a4dca4352de932fce92bb0a190860 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Sun, 19 Jul 2026 01:43:45 -0600 Subject: [PATCH] =?UTF-8?q?feat(phase-26):=20h=5Fseq=20family=20sweep=20?= =?UTF-8?q?=E2=80=94=201=20member-matches=20banked=20via=20remap=5Fhseq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ov_SC07_010/ov_SC07_010_o2b.c | 40 ++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/ov_SC07_010/ov_SC07_010_o2b.c b/src/ov_SC07_010/ov_SC07_010_o2b.c index 34143431a..a7911bdf3 100644 --- a/src/ov_SC07_010/ov_SC07_010_o2b.c +++ b/src/ov_SC07_010/ov_SC07_010_o2b.c @@ -485,7 +485,45 @@ void func_8013D3D4(int param_1, int param_2) INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_o2b", func_8013D53C); -INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_o2b", func_8013D8FC); + + +// @class: schedule +// @stuck: none — MATCH (45 ins, match_one verified) + +extern void func_800599B8(s32 a0, s32 a1); + +void func_8013D8FC(void) +{ + + extern s16 *D_801A6AB4; + register s16 *psVar3 __asm__("$17"); + register s16 *psVar2 __asm__("$16"); + register s32 c9 __asm__("$19"); + register s32 cff __asm__("$18"); + u16 sVar1; + s16 buf[4]; + + psVar3 = D_801A6AB4; + if (psVar3 != (s16 *)0x0 && (sVar1 = (u16)*psVar3, sVar1 != 0xff)) { + c9 = 9; + cff = 0xff; + psVar2 = psVar3 + 5; + do { + if (sVar1 == c9) { + s32 arg2 = *(s32 *)(psVar2 + 1) + psVar2[-1] * 2; + buf[0] = psVar2[-3]; + buf[1] = psVar2[-2]; + buf[2] = psVar2[-1]; + buf[3] = *psVar2; + func_800599B8((s32)buf, arg2); + } + psVar3 = psVar3 + 8; + sVar1 = (u16)*psVar3; + psVar2 = psVar2 + 8; + } while (sVar1 != cff); + } +} + extern void func_800599B8(s32 a0, s32 a1); #define gte_ldIR0z() __asm__ __volatile__("mtc2 $0, $8")