From 78db16c7ca58db89e7842b5b2a83cdc254eae2f5 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Mon, 24 Aug 2026 14:56:47 -0600 Subject: [PATCH] =?UTF-8?q?feat(decomp):=20main=20lane=20m00baaa=20?= =?UTF-8?q?=E2=80=94=201=20banked?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked BYTE-IDENTICAL against config/check.us.sha before anything was credited. func_8001D1C4 --- src/800.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/src/800.c b/src/800.c index a88dbb018..9386ce787 100644 --- a/src/800.c +++ b/src/800.c @@ -6154,7 +6154,76 @@ INCLUDE_ASM("asm/nonmatchings/800", func_8001D150); INCLUDE_ASM("asm/nonmatchings/800", func_8001D16C); -INCLUDE_ASM("asm/nonmatchings/800", func_8001D1C4); +extern u8 D_800B9A11; +extern u8 D_800B5CB8; +extern u8 D_800B5D28; +extern u8 D_800B60A8; +extern u8 D_800B6968; +extern u8 D_800B7768; +void func_8001D388(); + +void func_8001D1C4(void) { + u8 *base; + u8 *p; + s32 sp10; + u8 flags; + + base = &D_800B9A11; + sp10 = 0; + flags = *base; + p = base - 0x3E39; + if (p < base - 0x3D59) { + do { + func_8001D388(p, &sp10); + p += 0x38; + } while (p < base - 0x3D59); + } + if (!(flags & 4)) { + p = &D_800B5CB8; + if (p < &D_800B5CB8 + 0x70) { + do { + func_8001D388(p, &sp10); + p += 0x38; + } while (p < &D_800B5CB8 + 0x70); + } + } + if (!(flags & 0x10)) { + p = &D_800B5D28; + if (p < &D_800B5D28 + 0x380) { + do { + func_8001D388(p, &sp10); + p += 0x38; + } while (p < &D_800B5D28 + 0x380); + } + } + if (!(flags & 0x20)) { + p = &D_800B60A8; + if (p < &D_800B60A8 + 0x8C0) { + do { + func_8001D388(p, &sp10); + p += 0x38; + } while (p < &D_800B60A8 + 0x8C0); + } + } + if (!(flags & 0x40)) { + p = &D_800B6968; + if (p < &D_800B6968 + 0xE00) { + do { + func_8001D388(p, &sp10); + p += 0x38; + } while (p < &D_800B6968 + 0xE00); + } + } + if (!(flags & 0x80)) { + p = &D_800B7768; + if (p < &D_800B7768 + 0x1C70) { + do { + func_8001D388(p, &sp10); + p += 0x38; + } while (p < &D_800B7768 + 0x1C70); + } + } +} INCLUDE_ASM("asm/nonmatchings/800", func_8001D388);