From 61335ad18e2fb803bf7e20cf09d6b1eaa2f0c09d Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Mon, 31 Aug 2026 16:21:13 -0600 Subject: [PATCH] =?UTF-8?q?feat(decomp):=20-O0=20whale=20bank=20=E2=80=94?= =?UTF-8?q?=20ov=5FMAIN=5F012=20func=5F80144B9C=20(770)=20+=20func=5F80145?= =?UTF-8?q?7A4=20(79),=20BINARY=20COMPLETE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaced the carve's generated _o0d.c wholesale with the minimal fleet-standard whale TU. Keeping the generated §8b carried decl layer was NOT an option: it conflicts with shared/func_80144B9C.h on 7 symbols (func_80015978 void*/s32, func_800CF854 void/s32, func_801336E8, D_801274C8/CC/D0). Legitimate to drop it here because the region holds ONLY these two functions (0xD44 = 0xC08 + 0x13C exactly), so nothing in the TU needs the carried decls. func_801457A4 remapped from ov_SC01_077_o0b.c: its 79 instructions differ across overlays by exactly ONE data symbol (D_80186AD0 -> D_8017E338). Byte-identical: d6b3e8b971cdd6c53aea8c4f265afb82b363283c == config/check.ov_MAIN_012.sha. corpus.stubs(ov_MAIN_012) = 0 -- the binary has no open stubs left. NOT via rollout_o0: its stub_file_of() skips any basename containing _o0, and the carve moved BOTH stubs into _o0d.c, so the driver is structurally blind to them and would have reported 'no-stub / already banked?' and banked nothing. --- src/ov_MAIN_012/ov_MAIN_012_o0d.c | 1131 +---------------------------- 1 file changed, 28 insertions(+), 1103 deletions(-) diff --git a/src/ov_MAIN_012/ov_MAIN_012_o0d.c b/src/ov_MAIN_012/ov_MAIN_012_o0d.c index 7f5718d8e..ce3e18ac6 100644 --- a/src/ov_MAIN_012/ov_MAIN_012_o0d.c +++ b/src/ov_MAIN_012/ov_MAIN_012_o0d.c @@ -1,1106 +1,31 @@ #include "common.h" -#include "../shared/engine_core.h" +#include "../shared/func_80144B9C.h" -/* ==== Phase-26 §8b carried decl layer (jr_isolate_all.py) =================== - * The file-scope decl environment from earlier code regions of this object — - * file-local types, col-0 decls, DEFINE_func macro externs, and each earlier - * definition's implied prototype (types first, then decls in original order). - * Decls emit no code => byte-neutral. See cookbook §8c. */ -extern void func_80128288(void); -extern void func_80128158(void); -extern void func_801285E4(void); -extern void func_80128178(void); -extern void func_80128678(void); -extern void func_80128198(void); -extern void func_80128714(void); -extern void func_801281B8(void); -extern void func_8013E67C(void); -extern void func_801281D8(void); -extern void func_8013E558(void); -extern void func_801281F8(void); -extern s32 func_80128218(void); -extern void func_80128A28(void); -extern void func_80128228(void); -extern void func_80128AF4(void); -extern void func_80128248(void); -extern void func_801282EC(void); -extern void func_80128268(void); -extern void func_80011B7C(int); -extern void func_801282CC(void); -extern void func_8001C0C8(void); -extern void func_80015310(void); -extern void func_80129258(void); -extern void func_801378F0(void); -extern void func_80010E14(void); -extern s16 currentLocationId; -extern s32 func_80029504(void); -extern s32 func_800CF854(s32); -extern s32 func_80128998(void); -extern s32 func_801289F0(void); -extern s32 func_801288E8(s32); -extern s32 func_80128940(s32); -extern s32 func_80029178(s32); -extern s32 func_801288B0(void); -extern void func_80011C10(void); -extern void func_8012832C(void); -extern void func_80129220(void); -extern void func_80011E24(void); -extern void func_80128C14(void); -extern void func_8002AEF8(void); -extern void func_800CFBBC(void); -extern void SsUtReverbOff(void); -extern void func_8013C98C(void); -extern void func_80129C40(s32 a0); -extern void func_800D0630(void); -extern void func_80145CEC(void); -extern void func_80144B9C(void); -extern u8 D_800B9A17; -extern u8 D_800B9A10; -extern void func_80128420(void); -extern s32 func_800D0588(void); -extern void func_801284B8(void); -extern void func_80175308(); -extern void func_8016E8F0(void); -extern void func_80175494(void); -extern u8 D_800B9A64; -extern void func_801284F0(void); -extern void func_80146074(void); -extern void func_8012853C(void); -extern void func_80178608(void); -extern void func_8002D4C8(s32 a0, s32 a1); -extern s32 func_80011A3C(void); -extern short currentLocationId; -extern short D_800B99F2; -extern void func_80128564(void); -extern u8 D_800B9A11; -extern void func_801285D4(void); -extern s32 func_800D18DC(void); -extern void func_8014607C(void); -extern void func_801287B8(void); -extern void func_80029444(void); -extern void func_800D1754(void); -extern void func_80129CF8(void); -extern void func_8017849C(void); -extern void func_8014FDF4(struct S8014FDF4 *a0); -extern s32 func_801505FC(s32 a0); -extern s32 func_801508B4(s32); -extern void func_80165E90(void); -extern void func_801627E8(void); -extern void func_80162B1C(void); -extern void func_80165CA0(void); -extern void func_80129010(void); -extern void func_8013CA14(void); -extern void func_800190AC(void); -extern void func_8012956C(void); -extern s32 func_8016E95C(); -extern void func_801754A8(void); -extern void func_8013BC7C(); -extern void func_8013BCDC(void); -extern void func_801379FC(void); -extern void func_8001212C(void); -extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10); -extern int func_801288E8(int arg0); -extern int func_80128940(int arg0); -extern void func_80010AE0(s32 a0); -extern CdFileLoc cdFileLocTable[]; -extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); -extern s32 func_80128C98(s32 arg0); -extern s32 func_80128CFC(s32 arg0); -extern void func_80018450(s32 a0, s32 a1); -extern void func_800183E0(s32 a0); -extern void func_80128D60(s32 a0, s32 *a1, s32 *a2); -extern s32 func_80128DB4(s32 a0, s32 *a1); -extern void func_80128EA8(s32 a0, s32 a1, s32 a2); -extern s32 func_80128ED8(s32 param_1, s32 *param_2); -extern void func_80128FAC(u16 *arg0); -extern s16 D_8011DB2C; -extern s16 D_8011DB30; -extern u8 *func_8012913C(s32 a0); -extern u8 * func_801290DC(s32 a0, u8 *a1); -extern void func_8001D074(s32 a, s32 b); -extern u8 *func_801291C0(void); -extern s32 func_8001CC3C(s32 a0, s32 a1, s32 a2, s32 a3); -extern u8 * func_8012913C(s32 arg0); -extern void func_80016714(void *a0, s32 a1); -extern u8 * func_801291C0(void); -extern void func_80129248(s16 a0); -extern void func_801292C8(u8 *a0); -extern void func_8012927C(void); -extern void func_8012931C(struct vec *a0); -extern void func_80129350(s32 a0, s32 a1); -extern void func_80129374(s32 a0, s32 a1); -extern s16 D_800B9AAE[]; -extern s16 D_800B9AB0[]; -extern s16 D_800B9AB4[]; -extern s16 D_800B9AB8[]; -extern s16 D_800B9ABA[]; -extern void func_80129398(void); -extern s16 D_80114EE0; -extern void func_80129428(void); -extern void func_8012943C(void); -extern s32 D_8005128C; -extern u8 D_800B9A78; -extern void func_801298F4(void *arg0); -extern void func_801299C8(); -extern void func_8012944C(void); -extern void func_80015B6C(s32, s16, s32, s16, s32, s32, s32, s32, s32, s32); -extern void GsSortBg(s32 *, void *, u16, s32 *); -extern void GsSortFastBg(s32 *, void *, u16, s32 *); -extern unsigned short D_800B99F0; -extern struct BigCopy D_80126DB8; -extern struct BigCopy D_80114EE8; -extern s32 D_80126E60[]; -extern s8 D_801150D6; -extern s8 D_801152C0; -extern u8 D_80127504; -extern void func_800144D4(void); -extern void func_80129C40(s32 _arg0); -extern void func_8012A328(void); -extern void func_80053308(s32); -extern s32 func_80012F74(s32, s32, s32, s32); /* canonical s32 (engine_core); (s16)-cast the return for the sll/sra */ -extern void GsSetRefView2L(void *); -extern s8 D_801150D6; /* canonical (engine_core macro): s8 — access via *(u8*)& for lbu */ -extern s32 D_80126F04[]; -extern s32 D_80126FA8[]; -extern struct BigCopy D_80126DB8;/* canonical (engine_core macro): struct BigCopy — (s32*)& at use */ -extern s32 D_800AE688[]; -extern void func_8012A018(s32 a, s32 b); -extern void func_80129FF4(void); -extern void func_8012A048(void *a0, s32 a1, u8 a2); -extern void func_8012A018(s32 a0, s32 a1); -extern u16 D_80126B5E; -extern u16 D_80126B62; -extern u16 D_80126B66; -extern s16 D_80126940; -extern s16 D_80126942; -extern s16 D_80126944; -extern void *memcpy(void *, const void *, unsigned int); -extern void func_8012A094(s32 a0); -extern void func_8012A100(s8 a0); -extern void func_8012A0E0(void); -extern s32 D_80120204; -extern s32 D_80120200; -extern s32 D_8012020C; -extern s32 D_80120208; -extern s16 D_80120218; -extern s16 D_80120210; -extern s16 D_8012021A; -extern s16 D_80120212; -extern s16 D_8012021C; -extern s16 D_80120214; -extern s16 D_80120226; -extern s16 D_80120220; -extern s16 D_80120228; -extern s16 D_80120222; -extern s16 D_8012022A; -extern s16 D_80120224; -extern s32 D_80120294; -extern s16 D_80120298; -extern s16 D_8012029A; -extern void func_8012A110(void); -extern void func_8012A1BC(void); -extern void func_8012A2F4(void); -extern s16 D_80127080; -extern s16 D_801152C2; -extern void func_8012A304(s32 a0, s32 a1); -extern s32 func_80012F74(s32, s32, s32, s32); -extern void func_8012A418(void); -extern Vec8 D_80114F24; -extern void func_8012A464(void); -extern void func_8012A4BC(void); -extern void func_8012A598(void *a0); -extern void func_8012A568(void (*a0)(void)); -extern void func_8012A62C(s32); -extern void func_8012A5F8(void (*a0)(void), s32 a1); -extern void func_8012A62C(s32 a0); -extern void func_8012A7D4(void *a0, void *a1); -extern s32 func_8012A6D0(void *a0, void *a1); -extern s16 func_8012A68C(void); -extern s32 func_80047D3C(s32 a0); -extern s32 ratan2(s32 a0, s32 a1); -extern s32 func_8012A6D0(void* a0, void* a1); -extern s16 func_8012A79C(s16 *a0, s16 *a1); -extern s16 func_8012A758(void); -extern void func_8012A7D4(void *arg0, void *arg1); -extern void func_8012AAAC(); -extern void func_8012A828(s32 a0, void * a1); -extern int func_8012ACE0(void *a0); -extern void func_8012A860(void *a0, int a1); -extern void func_8012A8B0(u8 *a0, s32 a1); -extern void func_8012A8E8(void); -extern u8 D_801202A0[]; -extern u16 D_801270C0; -extern void func_8012A988(u8 *a0); -extern void func_8012A908(void); -extern s32 func_8012ACE0(void *a0); -extern void func_8012ACA0(void *arg0); -extern void func_8012AD44(s32 *a0, s16 a1); -extern s32 func_8012AD50(void * arg0); -extern void func_8012AD64(s32 *a0, s16 a1); -extern void func_8012AD6C(void *a0); -extern void func_8012AD80(s32 a0); -extern void func_8012ADE4(u8 *a0); -extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); -extern s32 func_80013478(s32 a0, s32 a1); -extern s32 func_8012AE00(s32 a0); -extern s32 func_8012AF0C(s32 a0, s32 a1); -extern s32 func_80134510(s32 arg); -extern s32 func_8012B030(u8 *a0); -extern int func_80047948(int a0); -extern int func_8004787C(int a0); -extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3); -extern void func_800484EC(s32 a0, s32 a1, s32 a2); -extern void func_8012B14C(s32 a0, s32 a1); -extern void func_8012B178(s32 a0, s32 a1); -extern void func_8012B1B4(s32 a0, s32 a1); -extern void func_8012B200(u8 *a0); -extern void func_8012B21C(void *a0); -extern void func_8012B23C(s32 a0); -extern void func_8012B260(u8 *a0); -extern void func_80049CAC(s32 a0, s32 a1); -extern void func_8012B2CC(s32 a0); -extern void RotMatrixYXZ(void *m, void *p); -extern void func_8012B370(int a0); -extern void func_8004978C(s16 *a0, void *a1); -extern void func_8012B414(int a0); -extern Mat32 D_800AE620; -extern void RotMatrixX(int r, void *m); -extern void RotMatrixY(int r, void *m); -extern void RotMatrixZ(int r, void *m); -extern s32 func_8012B4B8(int param_1); -extern s32 func_8012B608(s32 a0, s32 a1, s32 a2); -extern s32 func_8012B6D4(s16 *a0, s16 *a1); -extern s32 func_8012B70C(s16 *a0, s16 *a1); -extern s32 ratan2(s32 x, s32 y); -extern s32 func_8012B744(void *a0, void *a1); -extern s32 func_80047948(s32 a0); -extern s32 func_8004787C(s32 a0); -extern s32 func_8012B77C(s32 out, s32 from, s32 to); -extern s16 D_80126CB8; -extern s16 D_80126CB4; -extern s32 func_8012B864(s32 a0); -extern s32 func_8012B8A4(s16 *a0); -extern s32 func_8012B8E4(s32 arg0, s32 arg1); -extern s32 func_8012BA10(s32 arg0, s32 arg1); -extern s32 func_8012BB3C(s32 arg0, s32 arg1, u32 arg2, s32 arg3); -extern void Square0(s32 *a0, s32 *a1); -extern s32 func_8012BC60(struct Vec *a0, struct Vec *a1); -extern s16 D_80126CBA; -extern s32 func_8012BCCC(s32 a0); -extern void func_80013350(s32 a0, void *a1); -extern u8 D_80126B5C; -extern void func_8012BD14(s32 a0); -extern s32 func_8012BDBC(s32 a0, s32 a1); -extern s32 func_8012BD3C(s32 a0, s32 a1, s32 a2); -extern void func_8012BE98(s32 a0, u16 *a1); -extern void func_8012BE54(s32 a0); -extern s32 func_800132BC(s32 a0, s32 a1); -extern void func_8012BE98(s32 arg0, u16 * arg1); -extern s32 func_8012BEE8(s32 a0); -extern s32 func_8012BF10(s32 a0, s32 a1); -extern void func_8012BF4C(s32 *a0, s32 a1); -extern void func_8012BF54(void *a0); -extern void func_8012BF68(void *a0); -extern s16 D_80126CB0; -extern s32 func_8012BF7C(s16 *a0); -extern s16 D_80126CAC; -extern short D_80126CAE; -extern int func_8012BFA8(short *a0); -extern s32 D_801274E0; -extern s32 func_8012C044(s32 a0); -extern void func_8012C218(void *a0); -extern void func_8012C098(void *param_1); -extern s32 func_8012C0EC(s32 a0); -extern void func_8012C194(void); -extern void func_8001CFDC(s32 a, s32 b); -extern void func_8012C1B8(void); -extern u8 D_800B3DF0[]; -extern s32 func_8012C1DC(s32 a0); -extern u8 D_80126720[]; -extern u16 * func_8012C284(u16 *a0); -extern u8 D_80120194[]; -extern s32 func_8012C2D0(void); -extern s32 func_8012C31C(void); -extern void func_8012CAE4(void *a0); -extern void func_8001C214(s32 a0, s32 a1); -extern u8 D_80078EAE; -extern s32 func_8012C354(s32 a0, s32 a1); -extern void func_8001C810(s32 a0, s32 a1); -extern s32 func_8012C438(s32 a0, s32 a1); -extern s32 func_8012C890(s32 a0, s32 a1, s32 a2); -extern s32 func_8012C51C(void *a0, s32 a1); -extern s32 func_8012C588(s32 a0, s32 a1); -extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2); -extern void func_8012C724(s32 a0, s32 a1); -extern s32 func_8012C750(s32 a0); -extern s32 func_8012C820(u8 *a0); -extern u16 D_801274E4[]; -extern s32 func_8012CB64(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); -extern s32 func_8012CC88(); -extern u8 D_800D3918[]; -extern void func_8012CBA4(s32 a0); -extern void func_8012CBCC(s32 a0); -extern void func_8012CBF4(s32 a0); -extern void func_8012CC1C(s32 arg0, s32 arg1); -extern void func_8012CC40(s32 arg0, s32 arg1); -extern void func_8012CC64(s32 a0, s32 a1); -extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -extern s32 func_8012CC88(s32 a0, s32 a1, s32 a2); -extern s32 func_80133784(s32 a0, void *a1, s32 a2); -extern s32 func_8012CE2C(s32 a0); -extern void func_8012CFA8(s32 arg0); -extern void func_8012F214(s32 a0, s32 a1, s32 a2); -extern void func_8012D3B4(s32 arg0, s32 arg1, s32 arg2); -extern void func_8012D098(u16 *param_1, u32 param_2); -extern void func_8012D098(); -extern void func_8012D38C(int a0); -extern void func_8012D3AC(void); -extern s32 AddPrim(s32, void *); -extern s32 RotTransPers(s32, s32, s32 *, s32 *); -extern void SetLineF2(void *); -extern void *func_80010A08(s32); -extern void func_8004914C(void *); -extern void func_800491AC(void *); -extern s32 D_800A651C; -extern u8 D_800AF648; -extern s16 D_800B9A02; -extern void func_8012D4B4(s32 arg0, s32 arg1, s32 arg2, s32 arg3); -extern void func_8012D5DC(void); -extern s16 D_80126B98; -extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2); -extern s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3); -extern int func_8012D664(); -extern void func_8012D624(s32 a0); -extern s32 func_8012D714(s32 param_1, u32 param_2); -extern void func_8012F568(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4, s32 a5); -extern void func_8014C978(void); -extern s32 func_8012DB84(void); -extern s32 func_8012DE2C(s32 a0); -extern s32 func_8012DDA4(void); -extern s32 func_8012DBD0(s32 arg0, s32 arg1, s32 arg2, s32 arg3); -extern s32 func_8012DDA4(); -extern s32 func_8012DF34(s32 a0, s32 a1, s32 a2); -extern s16 D_80126B9A; -extern u8 D_801152A8[]; -extern void func_8012DFBC(void); -extern void func_8012DFCC(void); -extern void func_8012E014(s32 arg0); -extern void func_8012E138(); -extern void func_8012DFD4(u8 *a0); -extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); -extern void func_8012F1A4(s32 *a0, s32 a1, s32 *a2); -extern void func_8012E014(s32 a0); -extern void func_8012F038(int param_1, short *param_2, short *param_3); -extern void func_80049CAC(); -extern void func_8012F14C(s32 a0, s32 a1, s32 a2); -extern s32 func_80135888(); -extern void func_8012E138(int model); -extern s32 func_8012E27C(void); -extern void func_8012E284(void); -extern s32 GetTPage(s32, s32, s32, s32); -extern s32 func_8005A600(s32, s32, s32, s32, s32); -extern void func_8012E28C(s32 arg0, s32 arg1); -extern void func_8004914C(void *a0); -extern void func_800491AC(void *a0); -extern void func_8012E32C(void); -extern void func_8012E364(s32 arg0_); -extern s32 func_8012E470(s32 a0); -extern void func_8012E4C8(s32 a0); -extern s32 func_8012E504(s32 a0, s32 a1); -extern s32 func_8012E544(s32 a0); -extern s32 func_8012E57C(s32 a0, s32 a1); -extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); -extern void func_8012E5CC(s32 param_1, u16 param_2, u16 param_3); -extern void func_8012E688(s32 param_1, u16 param_2, u16 param_3); -extern void func_8012E88C(u8 *a0); -extern void func_8012E8A8(u8 *a0); -extern void func_8012E8C4(u8 *a0); -extern void func_8012E8E0(s32 a0, s32 a1); -extern void func_8016AA50(int, int); -extern s32 func_8016B428(s32); -extern void func_80019064(void *); -extern void func_8012E9C0(int param_1); -extern void func_8012EA90(s32 param_1, s32 param_2, s32 *param_3); -extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3); -extern s32 func_8002A4FC(s32 a0); -extern s32 func_8012EECC(s32 a0); -extern void func_8012EFB8(s32 a0); -extern void func_8012EF34(s32 a0, s32 a1); -extern void func_8012EF70(s32 a0, s32 a1); -extern s32 aF8012EFB8(); -extern void ApplyTransposeMatrixLV(void *a0, void *a1, void *a2); -extern void RotTransSV(s32 a0, s32 a1, void *a2); -extern void func_80015978(s32 a0, s32 *a1); -extern void func_80015954(s32 a0, s32 a1); -extern void func_8012F274(s32 a0, s32 a1); -extern void func_8012F2E8(s32 a0, s32 a1, s32 a2); -extern s16 D_80126CB6; -extern void func_8012F374(s32 a0, s32 a1); -extern void func_8004914C(); -extern void func_800491AC(); -extern s32 RotTransPers(s32, s32, s32*, s32*); -extern s32 * func_8012F40C(s32 *param_1, s32 param_2); -extern s32 * func_8012F49C(s32 *param_1, s32 param_2, s32 param_3); -extern void *memcpy(void *, const void *, u32); -extern u8 D_80126C38; -extern u8 D_80126C40; -extern u16 D_80126B94; -extern u16 D_80126B96; -extern void func_8012F568(s32 param_1, s32 param_2, s32 param_3, s32 param_4, s32 param_5, s32 param_6); -extern void func_80131B14(); -extern void func_80131E00(struct S80131E00 *a0, s32 a1); -extern s32 func_80131A34(s32, s32); -extern void func_80131CA8(int a0, int a1); -extern void func_8012F5F4(s32 arg0); -extern void func_80131C78(s32 a0); -extern void func_8012F68C(s32 arg0); -extern void func_8012F75C(s32 a0); -extern s32 func_8012BEE8(s32); -extern void func_8012F7B4(s32 a0); -extern void func_80131170(); -extern void func_80131CA8(); -extern void func_8012F828(int param_1); -extern void func_80131340(s32 a0); -extern void func_8012F87C(s32 a0); -extern void func_8012F8C8(int param_1); -extern void func_8012F91C(s32 a0); -extern s32 func_80131A34(s32 a0, s32 a1); -extern void func_80131CA8(s32 a0, s32 a1); -extern void func_8012F968(s32 param_1); -extern void func_801319E0(s32 a0); -extern s32 func_80143B6C(s32 a0, s32 a1); -extern void func_8012FB54(s32 a0); -extern void func_8012FC30(s32 a0); -extern void func_8012FCA4(int a0); -extern void func_80131B14(void); -extern void func_8012FCC4(int param_1); -extern void func_8012FDA8(int param_1); -extern void func_80131170(s32 a0, s32 a1, s32 a2); -extern void func_8012FE70(s32 a0); -extern void func_8012FF00(s32 a0); -extern void func_8012FF4C(s32 a0); -extern void func_80130D48(s32 a0); -extern void func_8012FF98(u8 *a0); -extern s32 func_80131AC8(void *a0); -extern void func_8013001C(void *a0); -extern void func_80130088(void *a0); -extern s32 func_8012BCCC(s32); -extern void func_801300F4(s32 a0); -extern void func_801301E8(u8 *a0); -extern void func_80130278(s32 arg0); -extern void func_80130314(s32 a0); -extern void func_80130360(s32 a0); -extern void func_8012E364(); -extern void func_801303A0(s32 a0); -extern void func_801303EC(void *a0); -extern void func_80143CD4(s32 a0); -extern void func_800CB0E8(s32 a0); -extern void func_80130438(s32 a0); -extern void func_801319E0(int); -extern int func_80131D68(int, int); -extern int func_8012BEE8(int); -extern void func_80131CA8(int, int); -extern void func_80130514(int param_1); -extern void func_801305CC(u8 *a0); -extern void func_8012CBF4(s32); -extern s32 func_80131D68(s32 a0, s32 a1); -extern void func_80130650(s32 a0); -extern s32 func_80146A6C(s32 a0, void *a1, s32 a2, s32 a3, s32 a4, s32 a5, s32 a6); -extern void func_80130740(void *a0, u16 *a1); -extern s32 func_801312D0(s32 a0, void *a1); -extern void func_801307B0(s32 a0); -extern void func_80130858(s32 a0); -extern void func_80130898(u8 *a0); -extern void func_801308DC(s32 a0); -extern void func_80166244(); -extern void func_80130974(int param_1); -extern void func_80130A18(u8 *a0); -extern void func_80130AC4(s32 a0); -extern int func_80131A34(int a0, int a1); -extern void func_80130AF0(int param_1); -extern void func_8012CBCC(s32); -extern void func_80131E00(struct S80131E00*, s32); -extern void func_80130C08(s32 arg0); -extern void func_80131170(s32 p, s32 b, s32 c); -extern s32 func_801312D0(s32 param_1, void *param_2); -extern void func_8002A04C(s32 a0); -extern void func_801319E0(s32 arg0); -extern void func_8012A828(s32 a0, void *a1); -extern s32 func_80131CF4(s32 a0); -extern void func_80019064(void *a0); -extern s32 aF80131CA8(); -extern s32 aF80131CF4(); -extern int func_80131D68(int a0, int a1); -extern void func_80131E38(u8 *a0); -extern void func_80131E7C(s32 a0); -extern void func_80131EE4(void); -extern void func_80131EEC(void *a0); -extern void func_80131F28(void *a0); -extern void func_80131F64(void *a0); -extern void func_80131FA0(void *a0); -extern void func_80131FDC(void *a0); -extern void func_8001C214(int, int); -extern void func_80132018(int param_1); -extern void func_801320D0(void); -extern void func_801320D8(int param_1); -extern void func_80132144(int param_1); -extern void func_801321B0(int param_1); -extern void func_8013221C(int param_1); -extern void func_8005C324(int dst, int src, int n) __asm__("memcpy"); /* Phase-24: 0x8005C324 is named memcpy for overlays (whale needs it); keep the non-builtin C name here (else built-in codegen), emit via asm-label */ -extern void func_801325B8(int a0, int a1, int a2, int a3, int a4); -extern void func_80132288(int *param_1, int *param_2, int param_3); -extern void func_801325B8(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); -extern void func_8013240C(s32 a0); -extern void gteMIMefunc(); -extern void func_801325B8(int dst, int src, int m0, int mm, int arg5); -extern void func_8013277C(void); -extern void func_80020F34(s32 a0, s32 a1); -extern void func_80054514(s32 a0, s32 a1); -extern void func_80132784(s32 a0, s32 a1, u32 a2); -extern s32 VectorNormalSS(void *a0, void *a1); -extern void func_80132DC4(s32 a0, s32 a1, s32 a2); -extern s32 func_80132E6C(s16 *a0); -extern void func_80132EC4(void *a0, s16 a1); -extern s32 func_80132EF4(s32 a0, s32 a1); -extern s32 func_80135888(s32, s32, s32, s32); -extern void func_80132F40(s32 arg0); -extern void func_801330E0(void * param_1, s16 * param_2, s32 param_3); -extern void func_80133060(u8 *a0, s32 *a1, s32 a2); -extern void func_801330E0(); -extern void func_8013339C(s16 *a0, s16 *a1); -extern void func_80133298(s32 *a0); -extern void func_8013339C(short *param_1, short *param_2); -extern s32 func_8013361C(s16 *a0, s16 *a1, s16 *a2, s16 *a3); -extern void func_80136BC4(s32 a0); -extern void func_801336E8(void *a0, int a1, int a2); -extern s32 D_80184124; -extern void func_8013373C(s32 a0); -extern s32 func_80133784(s32 arg0, void *arg1, s32 arg2); -extern s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3); -extern s32 func_80133CD4(); -extern s32 func_80134310(Vec3s *a0, Vec3s *a1, s32 a2); -extern s32 func_8013435C(s16 *a0, s16 *a1, s32 a2, s16 *a3); -extern s32 func_801343C4(s32 angle, s32 p1, s32 p2); -extern s32 func_80134510(s32 param); -extern s32 func_801345F8(s32 arg); -extern s32 func_801347A0(s32 arg0, s32 arg1, s32 arg2, s32 arg3); -extern s32 func_80134A28(s32 a0, s32 a1, s32 a2); -extern int func_80134A74(int param_1, s16 param_2, s16 param_3, int param_4); -extern s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3); -extern s32 func_80134FB8(s32 a0, s32 a1, s32 a2); -extern int func_80134A74(int, s16, s16, int); -extern int func_80135168(u16 arg0, u16 *p1, u16 *p2); -extern s16 func_80135480(void *param_1, s32 param_2, s16 *param_3, s16 *param_4); -extern s32 func_80136334(void *arg0, s32 arg1, s32 arg2); -extern s32 func_801365B8(void *arg0, s32 arg1, s32 arg2); -extern s32 func_80136824(s32 arg0, s32 arg1, s32 arg2); -extern s32 func_80136A94(s32 a0, s32 a1, s32 a2, s32 a3); -extern void func_80136C3C(void); -extern void func_80136C1C(void); -extern void func_80136C44(void); -extern void func_80136C4C(void); -extern void func_80136C54(void); -extern void func_80136D00(void); -extern void SetLineG2(void *); -extern void func_80136D08(s32 arg0, s32 arg1); -extern u16 D_80126CC4; -extern M2C_UNK func_800153CC(M2C_UNK, u16, M2C_UNK, M2C_UNK, s32, s32); -extern void func_80136DFC(void); -extern void func_80136EC4(void); -extern short D_800B9A02; -extern u8 D_800A6518[]; -extern void GsSortLine(void *a0, void *a1, s32 a2); -extern void func_80136ECC(s16 a0, s16 a1, s16 a2, s16 a3, u8 r, u8 g, u8 b); -extern void func_80136F3C(s32 a0, s32 a1); -extern void func_80137030(s16 a0, s16 a1); -extern void func_80137178(s32 a0, s32 a1); -extern void ApplyMatrixSV(void *m, Svec_801372B0 *in, Svec_801372B0 *out); -extern void aGsSortLine(Gline_801372B0 *p, void *ot, s32 z) __asm__("GsSortLine"); -extern void aF80137030(s32 x, s32 y) __asm__("func_80137030"); -extern void func_80137178(s32 x, s32 y); -extern u16 aD800B9A02 __asm__("D_800B9A02"); -extern void func_801372B0(void); -extern void func_80137614(s32 a0, s32 a1, s32 a2); -extern void func_801375EC(s32 a0, s16 a1); -extern s32 func_801399A8(void); -extern void func_801377B4(s32 a0, s32 a1, s32 a2); -extern s32 aF80137614(); -extern s32 func_8013767C(s32 a0); -extern void func_801376E8(int a0, int a1); -extern void func_801376C8(int a0); -extern void func_80139BE0(s32 a0); -extern void * aF801376E8(); -extern s32 D_80127524; -extern s32 D_80127528; -extern void func_80137840(s32 a0); -extern void func_80139634(void *); -extern void func_80139DC8(void); -extern void func_8013A860(void); -extern s16 D_8012752E; -extern void func_801379D8(void); -extern void func_801379EC(void); -extern s32 D_80127548[]; -extern s32 D_801269F0; -extern s16 D_801269F4; -extern s32 D_801269F8; -extern void func_80138BE0(s32 a0); -extern void func_80137BD8(s32 a0); -extern void func_8013A380(void); -extern void func_80138BE0(int p); -extern void func_80137B80(void); -extern void func_801392FC(); -extern void func_801397B0(s32 a0); -extern void func_80137DD4(s32 a0, u8 *a1, u8 *a2); -extern void func_80139680(s32 a0, u8 *a1); -extern u16 D_800B99D8; -extern int func_80137D08(int arg0, int arg1, short arg2); -extern void func_80137FD8(s32 a0, s32 a1, s32 a2, s32 a3); -extern void func_80137DD4(s32 ent, u8 *arg, u8 *work); -extern void func_801387B8(s32 arg0); -extern void func_80138948(void *a0); -extern s16 func_80138DB8(s32 a0, u8 a1, s32 a2); -extern void func_80138B88(s32 a0); -extern void func_8013895C(s32 a0); -extern s16 D_80127540[4]; -extern s32 func_80139D04(s32 a0, s32 a1); -extern s32 func_80138DE0(u8 *arg0, u8 arg1, s32 arg2); -extern void func_80139B18(s32 a0); -extern void func_80138AB4(s32 a0); -extern void func_80138C30(void *a0); -extern void func_80139C7C(u8 *a0); -extern s32 func_8013A8FC(s32 arg0); -extern s32 func_80138C60(s32 arg0); -extern void func_8013A9F8(s32 a0, s32 a1); -extern void func_80138D58(s32 a0, u16 a1); -extern s32 func_80014E80(s32 a0, s32 a1); -extern s32 func_80138ED0(u8 *param_1, u32 param_2, u8 *param_3); -extern s32 func_8013914C(s32 a0, s32 a1); -extern void func_800599B8(u16 *); -extern u16 D_80127C0C[]; -extern s32 func_80139220(s32 a0); -extern void func_801391F0(void *a0); -extern void func_801392C8(void *a0); -extern void func_801395D4(void *); -extern s32 GetTPage(s32 a0, s32 a1, s32 a2, s32 a3); -extern s32 func_80052460(s32 a0, s32 a1, s32 a2); -extern void func_801392FC(s32 arg0, s32 arg1, u8 *arg2); -extern void func_80059888(void *a0, s32 a1, s32 a2, s32 a3); -extern void func_801395D4(void * a0); -extern void func_80139634(void *a0); -extern void func_80139680(s32 arg0, u8 * arg1); -extern void func_8001931C(void); -extern s16 D_8012752C; -extern void func_80139788(void); -extern void GsSortSprite(void *a0, u8 *a1, s32 a2); -extern void func_801397B0(s32 arg0); -extern void func_8013A8B0(s32 *a0); -extern void func_80139914(s32 arg0); -extern u16 D_80126A08; -extern s32 *D_80126A30; -extern void func_80139954(void); -extern s32 D_80126A3C; -extern s32 func_801399F0(s32 a0); -extern void func_80139A34(s32 a0); -extern s32 D_80127530[4]; -extern void func_80139A44(s32 a0, u16 a1); -extern void func_80139A68(s32 a0, u16 a1); -extern void func_80139A8C(s32 a0); -extern s16 D_8012811A; -extern void func_80139DEC(void); -extern void func_80139DF4(s32 a0); -extern void func_80139E84(s32 a0); -extern void func_80139F0C(s32 a0); -extern void func_80139FBC(struct obj *a0); -extern s32 func_8001B22C(void *a0); -extern void func_80139FE8(void *a0); -extern void func_8013A0A4(struct S8013A0A4 *a0); -extern void func_8013A164(struct S8013A164 *a0); -extern void func_8013A1E8(s32 a0); -extern void func_8013A250(struct S8013A250 *a0); -extern void func_8013A2BC(s32 a0); -extern void func_8013A378(void); -extern u8 D_8011DA80[]; -extern void func_8013A530(); -extern void func_8013A448(void *a0); -extern void func_8013A4C4(struct S8013A4C4 *a0); -extern void func_80015D4C(); -extern void func_80015F04(); -extern void func_8013AA24(s32 a0, s32 a1); -extern void func_8013A530(int param_1); -extern s32 func_8013A8BC(void); -extern void func_8013A9B4(s32 a0, s32 a1); -extern void func_8013AD38(void *a0, s32 a1, void *a2, void *a3); -extern void func_8013B204(s32 a0, s32 a1); -extern void func_8013AF20(); -extern void func_8013B274(s32 a0, s32 a1, void *a2); -extern s32 D_800A5E60; -extern s32 func_8013AB54(s32 a0, s32 a1, s32 a2, s32 a3); -extern void func_8013AD38(void *flag, s32 a1, void *out2, void *out3); -extern void func_8013AF20(u32 *param_1, u16 *param_2, u16 *param_3, u8 *param_4); -extern void func_8013CABC(void); -extern void func_8013CAE8(void); -extern void func_8013CB20(void); -extern void func_8013CB5C(void); -extern void func_8013DBE4(); -extern void func_8013D9B0(); -extern void func_8013D330(void); -extern void func_8013D178(void); -extern void func_8013CF68(void); -extern void func_8013CB84(void); -extern void func_8013CF68(); -extern void func_8013D064(void); -extern s32 func_8013D13C(void); -extern void func_8013D164(void); -extern void func_8013D53C(void *); -extern void func_8013DD68(void); -extern void func_8013D8FC(void); -extern void func_8013D3D4(int param_1, int param_2); -extern void func_8013D53C(void *arg0v); -extern void func_800599B8(u16*); -extern void func_8013D9B0(int param_1); -extern void func_8013DBE4(int param_1); -extern s32 func_8013E054(void); -extern int SquareRoot12(int a0); -extern int func_8013E064(s16 *a0, s16 *a1); -extern int func_8013E0FC(s16 *a0, s16 *a1); -extern int func_8013E194(s16 *a0, s16 *a1); -extern void Square12(s32 *a0, s32 *a1); -extern s32 func_8013E22C(struct VecA *a0, struct VecB *a1); -extern s32 func_8013E298(s16 *a0); -extern int func_8013E2C4(short *a0); -extern void *D_801274CC; -extern s32 func_8013E410(void); -extern s32 func_8013E448(s32 a0); -extern void func_8013E370(void); -extern s32 (*D_801274D0)(s32); -extern s32 D_801274D8; -extern s32 D_801274DC; -extern s32 func_8013E448(s32 param_1); -extern u8 *D_801274C8; -extern void func_8013E4B4(void); -extern void func_800D24A0(s32 a0); -extern void func_80141788(void); -extern void *D_8011DB24; -extern s32 func_800D0EC4(void); -extern void func_80141874(void); -extern u8 D_800B9A15; -extern unsigned char D_800B9A13; -extern u16 D_80115110; -extern unsigned short D_80115112; -extern void func_8013E588(void * _arg0); -extern s32 func_80014ED4(s32); -extern s32 func_80015018(s32); -extern void func_80141C04(void); -extern void func_8013E5E8(void); -extern void func_8013E83C(void); -extern void func_8013E6AC(void); -extern void func_800D24A0(s32 arg); -extern void func_8013E814(void); -extern void func_8013E83C(); -extern void func_8013E958(); -extern s32 func_80141C50(void); -extern void func_8013F244(void); -extern void func_8013FAF8(s16 a0, s16 a1); -extern void func_8013E958(void); -extern u8 D_801151C8[]; -extern u16 D_8011511E; -extern s32 D_80115130; -extern s16 D_8011514C; -extern void func_8013EA54(void); -extern s32 func_8013F350(void); /* §30#2 widened: def returns live $v0; callers discard */ -extern s16 func_8014168C(s16 a0); -extern s32 func_8014032C(s32 a0, s32 a1); -extern unsigned char *func_80141CA4(void); -extern void func_8013EB7C(void); -extern s32 func_8013F350(void); /* §30#2 widened (discarding caller) */ -extern u16 D_80115112; -extern void func_8013ED6C(void); -extern s32 func_8013EF88(); -extern void func_8013F138(void); -extern void func_800D2624(void); -extern unsigned short D_80115114; -extern unsigned short D_80115118; -extern void func_8013F1BC(void); -extern void func_80141C0C(s32); -extern u16 D_8011511C; -extern u16 D_80115120; -extern u16 D_80115122; -extern s16 D_80115128; -extern s16 D_8011512A; -extern u16 D_8011512E; -extern u8 D_80115140[]; -extern s16 D_8011514E; -extern u8 D_80115152; -extern u8 D_80115158[]; /* macro-canonical redecl (§8e) */ -extern u8 D_8011515C; /* macro-canonical redecl (§8e) */ -extern u8 D_8017F41C[]; -extern u8 D_8017F434[]; -extern u16 D_8017F338[]; -extern s32 func_80029178(s32 arg); -extern s32 func_800291B4(s32 arg); -extern void func_8014AA04(s32 a0); -extern void func_801415C0(s32 a0, s32 a1); -extern void func_80141C0C(s32 a0); -extern s32 func_80140608(s32 a0); -extern void func_801407F4(void); -extern s32 func_801416D4(s16); /* macro-canonical redecl (§8e) */ -extern s32 func_8013F350(void); -extern void func_80140E6C(void); -extern void func_80140F00(void); -extern s32 *func_80140958(); -extern int func_80141100(int); -extern s16 func_8014168C(s16); -extern s32 func_8013FFD8(s16, s32, s32 *); -extern void func_80024054(void *a0, void *a1); -extern s32 *func_800D2650(s32 *, void *, s32, s32, s32, s32); -extern s32 func_800D27DC(s32, s32 *, void *, s32, s32); -extern s32 *func_800D29F8(s32, s32, void *, s32, s32); -extern void func_8013FAF8(s16 arg0, s16 arg1); -extern short D_80115128; -extern s32 func_8013FFD8(s16 arg0, s32 arg1, s32 *arg2); -extern s32 func_8014032C(s32 param_1, s32 param_2); -extern u8 D_80115148[]; -extern u8 D_80062BDC; -extern s32 func_80028D58(void); -extern void func_80028D78(s32 a0); -extern s32 func_80028DE0(void); -extern void func_80028E00(s32 a0); -extern s32 func_80028FBC(void); -extern void func_80028FDC(s32 a0); -extern s32 func_80029000(void); -extern void func_80029020(s32 a0); -extern s32 func_80028D9C(void); -extern void func_80028DBC(s32 a0); -extern s32 *func_80140D68(s32 *, Prim4 *, s32, s32, s32); -extern s32 * func_80140958(); -extern s32 * func_80140D68(); -extern int func_800D2CA8(int, int); -extern void func_800D2D10(int, int, void *, int); -extern int func_80029FE4(void); -extern char *func_8002AAB4(void); -extern char *strcpy(char *, const char *); -extern int func_8002A26C(void); -extern int func_8002A2B0(void); -extern int func_8002A4B8(void); -extern int func_8002A998(void); -extern int func_8002A9DC(void); -extern int func_8002A728(void); -extern int func_8002A76C(void); -extern int func_80029FD4(void); -extern s32 func_8002A1B4(void); -extern short func_8002A28C(void); -extern short func_8002A27C(void); -extern s32 func_8002A400(void); -extern short func_8002A4D8(void); -extern short func_8002A4C8(void); -extern s32 func_8002A8E0(void); -extern short func_8002A9B8(void); -extern short func_8002A9A8(void); -extern s32 func_8002A670(void); -extern short func_8002A748(void); -extern short func_8002A738(void); -extern int func_801412A8(int, int, int, int, int, int); -extern int func_80141100(int param_1); -extern Prim_1412A8 * aF801412A8(); -extern void func_800291A0(s32, s32); -extern s32 func_800291DC(s32); -extern void func_800291C8(s32, s32); -extern void func_801415C0(s32 param_1, s32 param_2); -extern u8 D_80115149[]; -extern u8 D_80115158[]; -extern u8 D_8011514D; -extern u8 D_8011515C; -extern s32 func_800D11F0(s32 a0); -extern s32 func_800D1658(s32 a0); -extern s32 func_801416D4(s16 param_1); -extern void func_8001903C(void); -extern void func_801417C4(void); -extern u8 D_800B9A16; -extern u16 D_80115114; -extern void func_801417F8(void); -extern void func_800D24A0(int); -extern void func_8002D4C8(int, int); -extern void func_80141C0C(int); -extern s32 func_801418F8(void); -extern s32 func_80141A60(); -extern void func_8013FAF8(s16, s16); -extern s32 D_801151D0; -extern u16 D_80115116; -extern void func_80141B90(void); -extern u8 D_8017F6D4[]; -void func_8002D4C8(s32 a0, s32 a1); -extern void func_80141C0C(s32 param_1); -extern s32 func_80015144(void); -extern unsigned char D_80112C04[]; -extern unsigned char D_80112C50[]; -extern unsigned char D_80112C9C[]; -extern unsigned char D_80112CE8[]; -extern unsigned char D_80112D38[]; -extern unsigned char D_80112D78[]; -extern unsigned char D_80112DBC[]; -extern unsigned char D_80112DF4[]; -extern unsigned char D_80112E14[]; -extern unsigned char D_80112E40[]; -extern unsigned char D_80112E6C[]; -extern unsigned char D_80112EBC[]; -extern unsigned char D_80112F0C[]; -extern unsigned char D_80112F48[]; -extern unsigned char D_80112F9C[]; -extern unsigned char D_80112FDC[]; -extern unsigned char D_8011302C[]; -extern unsigned char D_80113074[]; -extern unsigned char D_801130B8[]; -extern unsigned char D_801130E8[]; -extern unsigned char D_80113138[]; -extern unsigned char D_8011317C[]; -extern unsigned char D_801131A8[]; -extern unsigned char D_801131E8[]; -extern unsigned char D_80113214[]; -extern unsigned char D_80113254[]; -extern unsigned char D_80113278[]; -extern unsigned char D_801132B8[]; -extern unsigned char D_801132E4[]; -extern unsigned char D_80113324[]; -extern unsigned char D_80113360[]; -extern unsigned char D_801133A4[]; -extern unsigned char D_801133F4[]; -extern unsigned char D_80113440[]; -extern unsigned char D_80113474[]; -extern unsigned char D_801134B0[]; -extern unsigned char D_801134FC[]; -extern unsigned char D_80113530[]; -extern unsigned char D_80113554[]; -extern unsigned char D_801135A8[]; -extern unsigned char D_80113600[]; -extern unsigned char D_80113650[]; -extern unsigned char D_80113694[]; -extern unsigned char D_801136DC[]; -extern unsigned char D_80113724[]; -extern unsigned char D_80113744[]; -extern unsigned char D_80113770[]; -extern unsigned char D_80113794[]; -extern unsigned char D_801137D8[]; -extern unsigned char D_8011381C[]; -extern unsigned char D_8011383C[]; -extern unsigned char D_8011386C[]; -extern unsigned char D_801138A4[]; -extern unsigned char D_801138D0[]; -extern unsigned char D_80113900[]; -extern unsigned char D_80113944[]; -extern unsigned char D_80113964[]; -extern unsigned char D_8011399C[]; -extern unsigned char D_801139E8[]; -extern unsigned char D_80113A28[]; -extern unsigned char D_80113A50[]; -extern unsigned char D_80113A84[]; -extern unsigned char D_80113AB0[]; -extern unsigned char D_80113AE0[]; -extern unsigned char D_80113B34[]; -extern unsigned char D_80113B68[]; -extern unsigned char D_80113BA4[]; -extern unsigned char D_80113BC0[]; -extern unsigned char D_80113BF0[]; -extern unsigned char D_80113C20[]; -extern unsigned char D_80113C3C[]; -extern unsigned char D_80113C7C[]; -extern unsigned char * func_80141CA4(void); -extern void func_80142414(s32 a0, s16 a1); -extern void func_80142454(s32 a0); -extern void func_801424E4(short *param_1); -extern void func_801425CC(void *a0); -extern void func_8001CA1C(s32 a0, s32 a1); -extern s32 func_8012AD50(void *a0); -extern void func_80142608(s32 param_1); -extern void func_801426D4(s32 a0); -extern void func_80142740(int param_1); -extern void func_80142778(u8 *a1); -extern void func_801427DC(void); -extern void func_801427E4(void); -extern void func_801427EC(int param_1); -extern s32 func_80142DB8(s32 *a0); -extern void func_80142BB4(s32 *a0, s32 a1, s32 a2); -extern void func_80142C9C(s32 *a0); -extern void func_80142838(s32 *a0); -extern s32 func_80142D38(s32 *a0); -extern void func_801428CC(s32 *a0); -extern void func_8014292C(int param_1); -extern void func_80142978(int param_1); -extern void func_801429C4(int param_1); -extern void func_80142A80(void); -extern void func_80142A10(int param_1); -extern void func_80142C84(s32 a0); -extern void func_80143994(s32 a0, s32 a1); -extern void func_80142B2C(void *arg0); -extern void func_801439C0(u8 *a0); -extern void func_80142BB4(s32 *param_1, s32 param_2, s32 param_3); -extern void func_80142C7C(void); -extern void func_80142C9C(s32 * arg0); -extern void func_80142DC4(int param_1); -extern void func_80142E38(int param_1); -extern void func_80142EC0(s32 param_1); -extern void func_80142F68(s32 *a0); -extern void func_80142FFC(s32 *a0); -extern void func_8014305C(int param_1); -extern void func_801430F4(s32 *a0); -extern void func_80143188(s32 *a0); -extern int func_8001CA88(int, void *); -extern void func_800233CC(void *, unsigned short); -extern void func_801431E8(s32 param_1); -extern void func_801432FC(s32 *a0); -extern void func_80143390(s32 *a0); -extern void func_80143458(); -extern void func_801433F0(s32 a0); -extern void func_80143458(s32 param_1); -extern void func_8014358C(); -extern void func_8014350C(s32 *a0); -extern void func_8014358C(s32 param_1); -extern s32 rand(void); -extern void func_80143640(s32 a0, s32 a1, s32 a2, s32 a3); -extern void func_801437D8(s32 a0, s32 a1, s32 a2, s32 a3); -extern s32 func_80143970(s32 a0); -extern s32 func_8012C658(s32 a0, s32 a1, s32 a2); -extern s16 D_801152AC; -extern s16 D_801152AA; -extern void func_801439FC(s32 a0); -extern void func_80143B30(void *a0); -extern s32 func_80143B6C(s32 arg0, s32 arg1); -extern void func_80143BDC(u16 *a0); -extern void func_80143C38(void *a0); -extern void func_80143C74(s32 a0, s32 a1); -extern void func_80143C98(void *a0); -extern void ApplyMatrixSV(void*, Svec_801372B0*, Svec_801372B0*); -extern void func_80143D28(s32 param_1); -extern void func_80143E68(void *a0); -extern void func_80143EA4(void); -extern void func_80143EAC(void); -extern void func_80143EB4(void); -extern void func_80143EBC(s32 a0); -extern void func_80144054(void *a0); -extern void func_80144090(s32 param_1); -extern void func_801442F8(int param_1); -extern void func_8001CB6C(u8 *a0, s32 a1, s32 a2, s32 a3); -extern void func_80144364(int param_1); -extern void func_80144458(void *arg0); -extern u8 D_800D387C[]; -extern u8 D_800D3888[]; -extern void func_80144558(u8 *param_1); -extern void func_8014462C(u8 *a0); -extern void func_801446A4(int param_1); -extern void func_8014477C(void *param_1); -extern void func_80144880(s32 param_1); -extern void func_80144988(s32 a0); -extern void func_801449C8(void *a0); -extern void func_80144A04(s32 *a0); -extern void func_80144A2C(void *a0); -extern void func_80144A68(s32 *a0); -extern void func_80144A90(void); -extern void func_80144A98(u8 *a0); -extern int func_80144B14(int param_1); -extern void func_80144AEC(s32 *a0); -extern s32 func_80013294(void *a0, void *a1); -extern int func_80144B14(int param_s0); -/* ==== end §8b carried decl layer ==== */ +/* func_801457A4 @ 0x801457A4 — an -O0 function stranded at the whale's end boundary (it is the + * FIRST fn of the -O2 "after" segment, but its target is -O0: frame-pointer + per-case stack + * reloads). It can only bank in an -O0 object, so it lives here: _o0d is -O0-compiled (the + * Makefile's WHALE_O0B_OBJS `_o0?` glob) and its .text starts at the whale, placing this fn at its + * true address with no linker/Makefile change. Def sig conformed byte-neutrally to + * func_80144B9C.h's decl `void *func_801457A4(s32)` (the whale calls it that way). + * Remapped from ov_SC01_077_o0b.c: the ONLY per-overlay difference in this function's 79 + * instructions is the data symbol (ov_SC01_077 D_80186AD0 -> ov_MAIN_012 D_8017E338). + * P31 S68 whale carve. */ +extern int D_8017E338; -INCLUDE_ASM("asm/ov_MAIN_012/nonmatchings/ov_MAIN_012_o0d", func_80144B9C); - -INCLUDE_ASM("asm/ov_MAIN_012/nonmatchings/ov_MAIN_012_o0d", func_801457A4); +void *func_801457A4(s32 param_1) { + switch (param_1) { + case 0x1010: + case 0x1052: + case 0x1077: + case 0x1094: + case 0x2013: + case 0x2015 ... 0x201a: + case 0x2055 ... 0x205b: + case 0x207a ... 0x2080: + case 0x2097 ... 0x209d: + return (void *)(&D_8017E338)[param_1 & 0xffff0fff]; + default: + return (void *)D_8017E338; + break; + } +}