diff --git a/src/ov_SC04_000/ov_SC04_000_jr_8017BEBC.c b/src/ov_SC04_000/ov_SC04_000_jr_8017BEBC.c index e9f9ac980..3a17b2742 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_8017BEBC.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_8017BEBC.c @@ -4567,7 +4567,40 @@ void func_8017ECA0(void) { } -INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_8017BEBC", func_8017ECC8); +#include "common.h" + +/* A-prop sibling of the byte-matched seed func_8017D840 (ov_SC01_077, + * src/ov_SC01_077/ov_SC01_077_jr_8017AE2C.c). Same skeleton; the words that + * differ are the per-overlay callback symbol, the eight init constants, and the + * call order of func_8012A094 vs the callback. Symbol surface taken from + * asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_8017BEBC/func_8017ECC8.s. */ +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_8017EE20(void*); +extern u8 D_80126948[]; +extern s32 D_80126954; +extern s32 D_8012695C; +extern s16 D_80126968; +extern s16 D_8012696A; +extern s16 D_8012696C; +extern s16 D_80126976; +extern s16 D_80126978; +extern s16 D_8012697A; + +void func_8017ECC8(void) { + D_80126954 = 0x190; + D_8012695C = 0x3E8; + D_80126968 = 0xE3; + D_8012696A = 0x800; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x50; + D_8012697A = 0; + func_8012A018(func_8017EE20, 0); + func_8012A094(&D_80126948); + ((s32 (*)(void *))func_8017EE20)(&D_80126948); +} + INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_8017BEBC", func_8017ED64);