From 9b7670232f3615c6b8335c0b3e786c30b858fffd Mon Sep 17 00:00:00 2001 From: Flavius Date: Tue, 10 Nov 2026 23:21:36 -0600 Subject: [PATCH] fix(levels): Yeedil passes the object to func_L03_00326458 The call relied on the object still being in a0; the C now passes it, as Endako's calls do, and declares the argument. Same bytes (tools/check.py: 20_yeedil OK). Without it the PC port called the routine with a stray pointer and crashed on Yeedil. --- src/levels/20_yeedil/L20_002DEBE0-g8.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/levels/20_yeedil/L20_002DEBE0-g8.c b/src/levels/20_yeedil/L20_002DEBE0-g8.c index 1d6ba60b6..e69308a18 100644 --- a/src/levels/20_yeedil/L20_002DEBE0-g8.c +++ b/src/levels/20_yeedil/L20_002DEBE0-g8.c @@ -90,7 +90,7 @@ extern void func_0030CCD0(void *); extern void func_L00_002E6EF8(void (*)(void *),void *); extern void func_0030D430(void *); extern void func_0032DA58(void *,void *,void *,float); -extern void func_L03_00326458(void); +extern void func_L03_00326458(void *); extern void *func_0032C700(void *,int,int,int,int,int,int,int,float,float,int,int,int,int); void func_L20_0039BB18(void *arg0) @@ -269,7 +269,7 @@ void func_L20_00310E38(void *incoming) *(u16 *)(object+0x7C) = word = (s16)word == 0xD0F ? 15 : 0x3FF; } if (*(s16 *)(object+0xAA) == 0xCE0 && (D_L20_001BDCC0.mode != 3 || D_L20_001BDCC0.state < D_L20_001A9430)) - func_L03_00326458(); + func_L03_00326458(object); } } if (D_L20_001BDCC0.mode == 3 && D_L20_001BDCC0.state == D_L20_001A9430) {