#ifndef _FUNCTIONS_H_ #define _FUNCTIONS_H_ #include float fabsf(float f); #pragma intrinsic(fabsf) float sqrtf(float f); #pragma intrinsic(sqrtf) void cleararena(void); void bootproc(void); void Main_ThreadEntry(void* arg0); void Idle_ThreadEntry(void* a0); void ViConfig_UpdateVi(u32 arg0); void ViConfig_UpdateBlack(); s32 DmaMgr_CompareName(const char* name1, const char* name2); s32 DmaMgr_DMARomToRam(u32 rom, u32 ram, u32 size); s32 DmaMgr_DmaCallback0(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction); void DmaMgr_DmaCallback1(u32 ram, u32 rom, u32 size); void DmaMgr_Error(DmaRequest* req, const char* file, const char* errorName, const char* errorDesc); const char* DmaMgr_GetFileNameImpl(u32 vrom); const char* DmaMgr_GetFileName(u32 vrom); void DmaMgr_ProcessMsg(DmaRequest* req); void DmaMgr_ThreadEntry(void* arg0); s32 DmaMgr_SendRequestImpl(DmaRequest* req, u32 ram, u32 vrom, u32 size, u32 unk, OSMesgQueue* queue, OSMesg msg); s32 DmaMgr_SendRequest0(u32 ram, u32 vrom, u32 size); void DmaMgr_Start(); s32 DmaMgr_SendRequest2(DmaRequest* req, u32 ram, u32 vrom, u32 size, u32 unk5, OSMesgQueue* queue, OSMesg msg, const char* file, s32 line); s32 DmaMgr_SendRequest1(void* ram0, u32 vrom, u32 size, const char* file, s32 line); void* Yaz0_FirstDMA(); void* Yaz0_NextDMA(void* curSrcPos); void Yaz0_DecompressImpl(Yaz0Header* hdr, u8* dst); void Yaz0_Decompress(u32 romStart, void* dst, u32 size); void Locale_Init(); void Locale_ResetRegion(); u32 func_80001F48(); u32 func_80001F8C(); u32 Locale_IsRegionNative(); void __assert(const char* exp, const char* file, s32 line); void isPrintfInit(); void osSyncPrintfUnused(const char* fmt, ...); void osSyncPrintf(const char* fmt, ...); void rmonPrintf(const char* fmt, ...); u32 is_proutSyncPrintf(void* arg0, const char *str, s32 count); void func_80002384(const char* exp, const char* file, u32 line); OSPiHandle* osDriveRomInit(); void Yaz0_Old_DecompressImpl(Yaz0Header* hdr, u8* dst); void StackCheck_Init(StackEntry* entry, void* stackTop, void* stackBottom, u32 initValue, s32 minSpace, const char* name); void StackCheck_Cleanup(StackEntry* entry); StackStatus StackCheck_GetState(StackEntry* entry); u32 StackCheck_CheckAll(); u32 StackCheck_Check(StackEntry* entry); float LogUtils_CheckFloatRange(const char* exp, s32 arg1, const char* var1Name, float var1, const char* var2Name, float var2, const char* var3Name, float var3); s32 LogUtils_CheckIntRange(const char* exp, s32 arg1, const char* var1Name, s32 var1, const char* var2Name, s32 var2, const char* var3Name, s32 var3); void LogUtils_LogHexDump(void* ptr, s32 size0); void LogUtils_LogPointer(s32 value, u32 max, void* ptr, const char *name, const char *file, s32 line); void LogUtils_CheckBoundary(const char* name, s32 value, s32 unk, const char* file, s32 line); void LogUtils_CheckNullPointer(const char* exp, void* ptr, const char* file, s32 line); void LogUtils_CheckValidPointer(const char* exp, void* ptr0, const char* file, s32 line); void LogUtils_LogThreadId(const char* name, s32 line); void LogUtils_HungupThread(const char* name, s32 line); void LogUtils_ResetHungup(); char* proutSprintf(char* dst, const char *fmt, size_t size); s32 vsprintf(char* dst, const char* fmt, va_list args); s32 sprintf(char* dst, const char* fmt, ...); void __osPiCreateAccessQueue(void); void __osPiGetAccess(void); void __osPiRelAccess(void); s32 osSendMesg(OSMesgQueue* mq, OSMesg mesg, s32 flag); void osStopThread(OSThread* thread); void osViExtendVStart(u32 arg0); s32 osRecvMesg(OSMesgQueue* mq, OSMesg* msg, s32 flag); void __createSpeedParam(void); void __osInitialize_common(void); void __osInitialize_autodetect(); // ? __ull_rshift(?); // ? __ull_rem(?); // ? __ull_div(?); // ? __ll_lshift(?); // ? __ll_rem(?); // ? __ll_div(?); // ? __ll_mul(?); // ? __ull_divremi(?); // ? __ll_mod(?); // ? __ll_rshift(?); void __osExceptionPreamble(); // ? __osException(?); void __osEnqueueAndYield(OSThread**); void __osEnqueueThread(OSThread**, OSThread*); OSThread *__osPopThread(OSThread**); // ? __osNop(?); void __osDispatchThread(); void __osCleanupThread(void); void __osDequeueThread(OSThread **queue, OSThread *thread); void osDestroyThread(OSThread *thread); void bzero(void *__s, u32 __n); void osCreateThread(OSThread* thread, OSId id, void (*entry)(void*), void* arg, void* sp, OSPri pri); void __osSetSR(u32); u32 __osGetSR(); void osWritebackDCache(void *vaddr, s32 nbytes); void* osViGetNextFramebuffer(); void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgCnt); void __osDevMgrMain(void* arg); s32 __osPiRawStartDma(s32 dir, u32 cart_addr, void *dram_addr, size_t size); u32 osVirtualToPhysical(void* vaddr); void osViBlack(u8 active); s32 __osSiRawReadIo(void *a0, u32 *a1); OSId osGetThreadId(OSThread* thread); OSIntMask osSetIntMask(OSIntMask); void osViSetMode(OSViMode *mode); u32 __osProbeTLB(void *); u32 osGetMemSize(void); void osSetEventMesg(OSEvent e, OSMesgQueue *mq, OSMesg msg); s32 _Printf(char *(*pfn)(char *, const char *, size_t), char *arg, const char *fmt, va_list ap); void osUnmapTLBAll(void); s32 osEPiStartDma(OSPiHandle* handle, OSIoMesg* mb, s32 direction); const u8 *strchr(const u8 *str, s32 ch); size_t strlen(const u8 *str); void *memcpy(void *dst, const void *src, size_t size); void osInvalICache(void* vaddr, s32 nbytes); void osCreateMesgQueue(OSMesgQueue* mq, OSMesg* msg, s32 count); void osInvalDCache(void* vaddr, s32 nbytes); u32 __osSiDeviceBusy(); void osSetThreadPri(OSThread* thread, OSPri pri); OSPri osGetThreadPri(OSThread* thread); s32 __osEPiRawReadIo(OSPiHandle *handle, u32 devAddr, u32 *data); void osViSwapBuffer(void *vaddr); s32 __osEPiRawStartDma(OSPiHandle *handle, s32 direction, u32 cartAddr, void* dramAddr, size_t size); u32 bcmp(void *__sl,void *__s2,u32 __n); OSTime osGetTime(void); void __osTimerServicesInit(); void __osTimerInterrupt(); void __osSetTimerIntr(OSTime tim); OSTime __osInsertTimer(OSTimer *a0); u32 osGetCount(void); void __osSetGlobalIntMask(u32 mask); void __osSetCompare(u32); void* bcopy(void *__src,void *__dest,u32 __n); void __osResetGlobalIntMask(u32 mask); s32 __osDisableInt(void); void __osRestoreInt(s32); void __osViInit(); void __osViSwapContext(); OSMesgQueue* osPiGetCmdQueue(); s32 osEPiReadIo(OSPiHandle* handle, u32 devAddr, u32* data); void osViSetSpecialFeatures(u32 func); OSPiHandle* osCartRomInit(); void __osSetFpcCsr(u32); u32 __osGetFpcCsr(); s32 osEPiWriteIo(OSPiHandle* handle, u32 devAddr, u32 data); void osMapTLBRdb(void); u32 __osGetCause(); s32 __osEPiRawWriteIo(OSPiHandle *handle, u32 devAddr, u32 data); void osCreateViManager(OSPri pri); void viMgrMain(void *vargs); OSViContext* __osViGetCurrentContext(); void osStartThread(OSThread* thread); void osViSetYScale(float scale); void osViSetXScale(f32 value); void __osSetHWIntrRoutine(s32 idx, OSMesgQueue* queue, OSMesg msg); void __osGetHWIntrRoutine(s32 idx, OSMesgQueue** outQueue, OSMesg* outMsg); void __osSetWatchLo(u32); // ? func_80009320(?); // ? func_800093F0(?); // ? func_8001D234(?); // ? func_8001D310(?); // ? func_8001D480(?); // ? func_8001D5C8(?); Actor* Item_DropCollectible(GlobalContext* globalCtx, Vec3f* spawnPos, s16 params); Actor* Item_DropCollectible2(GlobalContext* globalCtx, Vec3f* spawnPos, s16 params); void Item_DropCollectibleRandom(GlobalContext* globalCtx, Actor* fromActor, Vec3f* spawnPos, s16 params); // ? func_8001FDF0(?); // ? func_80020184(?); // ? func_800208E0(?); // ? func_80020A50(?); // ? func_80020F60(?); // ? func_80020FC0(?); // ? func_800214D0(?); // ? func_80021F00(?); // ? func_800224F4(?); // ? func_80022A10(?); // ? func_8002389C(?); void func_80024F0C(UNK_TYPE); void func_80026400(GlobalContext*, Color_RGBA8*, u8, s16); // ? func_80026608(?); void func_80026860(GlobalContext*, Color_RGBA8*, u8, s16); // ? func_80026A6C(?); GlobalContext* func_80026B00(void); // ? func_80026B0C(?); // ? func_80026C1C(?); // ? func_80026C2C(?); // ? Effect_Add(?); // ? func_80026E74(?); // ? func_80026F70(?); // ? func_8002709C(?); // ? func_800271A8(?); // ? func_800272B0(?); // ? func_80027410(?); Effect_SS_Clear // ? func_800274E0(?); Effect_SS_Delete void Effect_SS_ResetEntry(LoadedParticleEntry* particle); // ? func_800275D0(?); // ? func_80027798(?); // ? func_80027A40(?); // ? func_80027AE0(?); // ? func_80027B98(?); // ? func_80027BDC(?); // ? func_80027E34(?); // ? func_80027E84(?); // ? func_800281E8(?); // ? func_8002829C(?); // ? func_80028304(?); // ? func_8002857C(?); // ? func_8002865C(?); void func_800286CC(GlobalContext*, Vec3f*, Vec3f*, Vec3f*, s16, s16); // ? func_8002873C(?); // ? func_800287AC(?); // ? func_80028894(?); void func_80028B74(GlobalContext*, Vec3f*, UNK_PTR, UNK_PTR, Color_RGB8*, Color_RGB8*); // ? func_80028BB0(?); // ? func_80028EF4(?); // ? func_80028FD8(?); // ? func_80029060(?); void Effect_SpawnFragment(GlobalContext* globalCtx, Vec3f* burstDepthY, Vec3f* burstDepthX, Vec3f* burstOrigin, s16 gravityInfluence, s16 u0, s16 rotSpeed, s16 burstVel, u8 u1, s16 scale, u8 u2, s16 jitter, s32 duration, s16 u3, s16 objNumber, u32 dList); // ? func_800292DC(?); // ? func_80029320(?); // ? func_80029444(?); // ? func_80029568(?); // ? func_80029724(?); // ? func_8002993C(?); // ? func_800299AC(?); // ? func_80029C50(?); // ? func_80029CA4(?); // ? func_80029F44(?); // ? func_8002A32C(?); // ? func_8002A3C4(?); void func_8002A65C(GlobalContext* globalCtx, Actor* actor, Vec3f* pos, u32 arg3, u32 arg4); void func_8002A6B8(GlobalContext* globalCtx, Vec3f* pos, Vec3f* arg2, Vec3f* arg3, u32 arg4, s32 arg5, u32 arg6, u32 arg7, u32 arg8, u32 arg9, u32 arg10, u32 arg11, u32 arg12, u32 arg13, u32 arg14, u32 arg15); // ? func_8002A894(?); // ? func_8002A95C(?); // ? func_8002A9F4(?); // ? func_8002AAB0(?); void Overlay_LoadGameState(GameStateOverlay* overlayEntry); void Overlay_FreeGameState(GameStateOverlay* overlayEntry); void ActorShape_Init(ActorShape* shape, f32 arg1, void* shadowDrawFunc, f32 arg3); void ActorShadow_DrawFunc_Circle(Actor* actor, LightMapper* lightMapper, GlobalContext* globalCtx); void ActorShadow_DrawFunc_WhiteCircle(Actor* actor, LightMapper* lightMapper, GlobalContext* globalCtx); void ActorShadow_DrawFunc_Squiggly(Actor* actor, LightMapper* lightMapper, GlobalContext* globalCtx); void ActorShadow_DrawFunc_Teardrop(Actor* actor, LightMapper* lightMapper, GlobalContext* globalCtx); void func_8002BDB0(Actor* actor, s32 arg1, s32 arg2, UNK_PTR arg3, s32 arg4, UNK_PTR arg5); void func_8002C124(TargetContext* targetCtx, GlobalContext* globalCtx); s32 Flags_GetSwitch(GlobalContext* globalCtx, s32 flag); void Flags_SetSwitch(GlobalContext* globalCtx, s32 flag); void Flags_UnsetSwitch(GlobalContext* globalCtx, s32 flag); s32 Flags_GetUnknown(GlobalContext* globalCtx, s32 flag); void Flags_SetUnknown(GlobalContext* globalCtx, s32 flag); void Flags_UnsetUnknown(GlobalContext* globalCtx, s32 flag); s32 Flags_GetTreasure(GlobalContext* globalCtx, s32 flag); void Flags_SetTreasure(GlobalContext* globalCtx, s32 flag); s32 Flags_GetClear(GlobalContext* globalCtx, s32 flag); void Flags_SetClear(GlobalContext* globalCtx, s32 flag); void Flags_UnsetClear(GlobalContext* globalCtx, s32 flag); s32 Flags_GetTempClear(GlobalContext* globalCtx, s32 flag); void Flags_SetTempClear(GlobalContext* globalCtx, s32 flag); void Flags_UnsetTempClear(GlobalContext* globalCtx, s32 flag); s32 Flags_GetCollectible(GlobalContext* globalCtx, s32 flag); void Flags_SetCollectible(GlobalContext* globalCtx, s32 flag); void TitleCard_InitBossName(GlobalContext* globalCtx, TitleCardContext* titleCtx, u32 texture, s16 arg3, s16 arg4, u8 arg5, u8 arg6); void TitleCard_InitPlaceName(GlobalContext* globalCtx, TitleCardContext* titleCtx, u32 texture, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7); s32 func_8002D53C(GlobalContext* globalCtx, TitleCardContext* titleCtx); void Actor_Kill(Actor* actor); void Actor_SetHeight(Actor* actor, f32 offset); void Actor_SetScale(Actor* actor, f32 scale); void Actor_SetObjectDependency(GlobalContext* globalCtx, Actor* actor); void func_8002D7EC(Actor* actor); void func_8002D868(Actor* actor); void Actor_MoveForward(Actor* actor); void func_8002D908(Actor* actor); void func_8002D97C(Actor* actor); void func_8002D9A4(Actor* actor, f32 arg1); s16 func_8002DA78(Actor* actorA, Actor* actorB); s16 func_8002DAC0(Actor* actor, Vec3f* arg1); f32 func_8002DB48(Actor* actorA, Actor* actorB); s16 func_8002DAE0(Actor* actorA, Actor* actorB); s16 func_8002DB28(Actor* actor, Vec3f* arg1); f32 func_8002DB8C(Actor* actorA, Actor* actorB); f32 func_8002DBB0(Actor* actor, Vec3f* arg1); void func_8002DBD0(Actor* actor, Vec3f* result, Vec3f* arg2); f32 Actor_HeightDiff(Actor* actorA, Actor* actorB); f32 func_8002DC84(Player* player); f32 func_8002DCE4(Player* player); s32 func_8002DD6C(Player* player); s32 func_8002DD78(Player* player); s32 func_8002DDE4(GlobalContext* globalCtx); s32 func_8002DDF4(GlobalContext* globalCtx); void func_8002DE04(GlobalContext* globalCtx, Actor* actorA, Actor* actorB); void func_8002DE74(GlobalContext* globalCtx, Player* player); void func_8002DECC(GlobalContext* globalCtx, Player* player, Actor* actor); s32 func_8002DEEC(Player* player); void func_8002DF18(GlobalContext* globalCtx, ActorContext* actorCtx); u32 func_8002DF38(GlobalContext* globalCtx, Actor* actor, u8 newAction); s32 func_8002DF54(GlobalContext* globalCtx, Actor* actor, u8 arg2); void func_8002DF90(DynaPolyActor* dynaActor); void func_8002DFA4(DynaPolyActor* dynaActor, f32 arg1, s16 arg2); s32 func_8002DFC8(Actor* actor, s16 arg1, GlobalContext* globalCtx); s32 func_8002E084(Actor* actor, s16 arg1); s32 func_8002E12C(Actor* actor, f32 arg1, s16 arg2); s32 func_8002E1A8(Actor* actorA, Actor* actorB, f32 arg2, s16 arg3); void func_8002E4B4(GlobalContext* globalCtx, Actor* actor, f32 arg2, f32 arg3, f32 arg4, s32 arg5); Hilite* func_8002EABC(Vec3f* object, Vec3f* eye, Vec3f* lightDir, GraphicsContext* gfxCtx); Hilite* func_8002EB44(Vec3f* object, Vec3f* eye, Vec3f* lightDir, GraphicsContext* gfxCtx); void func_8002EBCC(Actor* actor, GlobalContext* globalCtx, s32 flag); void func_8002ED80(Actor* actor, GlobalContext* globalCtx, s32 flag); PosRot* func_8002EEE4(PosRot* arg0, Actor* actor); PosRot* func_8002EF14(PosRot* arg0, Actor* actor); PosRot* func_8002EF44(PosRot* arg0, Actor* actor); s32 func_8002F0C8(Actor* actor, Player* player, s32 arg2); u32 func_8002F194(Actor* actor, GlobalContext* globalCtx); s32 func_8002F1C4(Actor* actor, GlobalContext* globalCtx, f32 arg2, f32 arg3, u32 arg4); s32 func_8002F298(Actor* actor, GlobalContext* globalCtx, f32 arg2, u32 arg3); s32 func_8002F2CC(Actor* actor, GlobalContext* globalCtx, f32 arg2); s32 func_8002F2F4(Actor* actor, GlobalContext* globalCtx); u32 func_8002F334(Actor* actor, GlobalContext* globalCtx); s8 func_8002F368(GlobalContext* globalCtx); void func_8002F374(GlobalContext* globalCtx, Actor* actor, s16* arg2, s16* arg3); u32 func_8002F410(Actor* actor, GlobalContext* globalCtx); s32 func_8002F434(Actor* actor, GlobalContext* globalCtx, s32 getItemId, f32 xzRange, f32 yRange); void func_8002F554(Actor* actor, GlobalContext* globalCtx, s32 getItemId); void func_8002F580(Actor* actor, GlobalContext* globalCtx); u32 func_8002F5A0(Actor* actor, GlobalContext* globalCtx); void func_8002F5C4(Actor* actorA, Actor* actorB, GlobalContext* globalCtx); void func_8002F5F0(Actor* actor, GlobalContext* globalCtx); u32 func_8002F618(GlobalContext* globalCtx, Actor* actor); u32 func_8002F63C(GlobalContext* globalCtx, Actor* actor, s32 arg2); u32 func_8002F674(GlobalContext* globalCtx, Actor* actor); void func_8002F698(GlobalContext* globalCtx, u32 arg1, f32 arg2, s16 arg3, f32 arg4, u32 arg5, u32 arg6); void func_8002F6D4(GlobalContext* globalCtx, u32 arg1, f32 arg2, s16 arg3, f32 arg4, u32 arg5); void func_8002F71C(GlobalContext* globalCtx, u32 arg1, f32 arg2, s16 arg3, f32 arg4); void func_8002F758(GlobalContext* globalCtx, u32 arg1, f32 arg2, s16 arg3, f32 arg4, u32 arg5); void func_8002F7A0(GlobalContext* globalCtx, u32 arg1, f32 arg2, s16 arg3, f32 arg4); void func_8002F7DC(Actor* actor, u16 sfxId); void Audio_PlayActorSound2(Actor* actor, u16 sfxId); void func_8002F850(GlobalContext* globalCtx, Actor* actor); void func_8002F8F0(Actor* actor, u16 sfxId); void func_8002F91C(Actor* actor, u16 sfxId); void func_8002F948(Actor* actor, u16 sfxId); void func_8002F974(Actor* actor, u16 sfxId); void func_8002F994(Actor* actor, s32 sfxId); s32 func_8002F9EC(GlobalContext* globalCtx, Actor* actor, UNK_TYPE arg2, UNK_TYPE arg3, UNK_TYPE arg4); void func_800304B0(GlobalContext* globalCtx); void func_800304DC(GlobalContext* globalCtx, ActorContext* actorCtx, ActorEntry* actorEntry); void Actor_UpdateAll(GlobalContext* globalCtx, ActorContext* actorCtx); s32 func_800314D4(GlobalContext* globalCtx, Actor* actorB, Vec3f* arg2, f32 arg3); void func_80031B14(GlobalContext* globalCtx, ActorContext* actorCtx); Actor* Actor_Spawn(ActorContext* actorCtx, GlobalContext* globalCtx, s16 actorId, f32 posX, f32 posY, f32 posZ, s16 rotX, s16 rotY, s16 rotZ, s16 params); Actor* Actor_SpawnAttached(ActorContext* actorCtx, Actor* attachedTo, GlobalContext* globalCtx, s16 actorId, f32 posX, f32 posY, f32 posZ, s16 rotX, s16 rotY, s16 rotZ, s16 params); void Actor_SpawnTransitionActors(GlobalContext* globalCtx, ActorContext* actorCtx); Actor* Actor_SpawnEntry(ActorContext* actorCtx, ActorEntry* actorEntry, GlobalContext* globalCtx); Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, GlobalContext* globalCtx); Actor* func_80032AF0(GlobalContext* globalCtx, ActorContext* actorCtx, Actor** actorPtr, Player* player); Actor* Actor_Find(ActorContext* actorCtx, s32 actorId, s32 actorType); void func_80032C7C(GlobalContext* globalCtx, Actor* actor); void func_80033260(GlobalContext* globalCtx, Actor* actor, Vec3f* arg2, f32 arg3, s32 arg4, f32 arg5, s16 arg6, s16 arg7, u8 arg8); void func_80033480(GlobalContext* globalCtx, Vec3f* arg1, f32 arg2, s32 arg3, s16 arg4, s16 arg5, u8 arg6); Actor* func_80033640(GlobalContext* globalCtx, Collider* collider); Actor* func_80033684(GlobalContext* globalCtx, Actor* explosiveActor); void Actor_ChangeType(GlobalContext* globalCtx, ActorContext* actorCtx, Actor* actor, u8 actorType); void Actor_SetTextWithPrefix(GlobalContext* globalCtx, Actor* actor, s16 textIdLower); s16 func_800339B8(Actor* actor, GlobalContext* globalCtx, f32 arg2, s16 arg3); s32 func_80033A84(GlobalContext* globalCtx, Actor* actor); s32 func_80033AB8(GlobalContext* globalCtx, Actor* actor); f32 func_80033AEC(Vec3f* arg0, Vec3f* arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5); void func_80033C30(Vec3f* arg0, Vec3f* arg1, u8 alpha, GlobalContext* globalCtx); void func_80033DB8(GlobalContext* globalCtx, s16 arg1, s16 arg2); void func_80033E1C(GlobalContext* globalCtx, s16 arg1, s16 arg2, s16 arg3); void func_80033E88(Actor* actor, GlobalContext* globalCtx, s16 arg2, s16 arg3); f32 Math_Rand_ZeroFloat(f32 f); f32 Math_Rand_CenteredFloat(f32 f); void func_80033F54(GlobalContext* globalCtx, s32 arg1, s32 arg2); void func_8003424C(GlobalContext* globalCtx, Vec3f* arg1); void func_8003426C(Actor* actor, s16 arg1, s16 arg2, s16 arg3, s16 arg4); Hilite* func_800342EC(Vec3f* object, GlobalContext* globalCtx); Hilite* func_8003435C(Vec3f* object, GlobalContext* globalCtx); s16 func_800347E8(s16 arg0); void func_80034BA0(GlobalContext* globalCtx, SkelAnime* skelAnime, void* unkFunc1, void* unkFunc2, Actor* actor, s16 alpha); void func_80034CC4(GlobalContext* globalCtx, SkelAnime* skelAnime, void* unkFunc1, void* unkFunc2, Actor* actor, s16 alpha); void func_80034EC0(SkelAnime* skelAnime, struct_80034EC0_Entry* arg1, s32 arg2); void Actor_Noop(Actor* actor, GlobalContext* globalCtx); void Draw_DListOpa(GlobalContext* globalCtx, u32 dlist); void Draw_DListXlu(GlobalContext* globalCtx, u32 dlist); Actor* Actor_FindNearby(GlobalContext* globalCtx, Actor* refActor, s16 actorId, u8 actorType, f32 range); s32 func_800354B4(GlobalContext* globalCtx, Actor* actor, f32 range, s16 arg3, s16 arg4, s16 arg5); void func_8003555C(GlobalContext* globalCtx, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3); void func_800355B8(GlobalContext* globalCtx, Vec3f* arg1); u8 func_800355E4(GlobalContext* globalCtx, ColliderCylinderInit* colCylinderInit); u8 Actor_ApplyDamage(Actor* actor); void func_80035650(Actor* actor, ColliderBody* colBody, s32 freezeFlag); void func_8003573C(Actor* actor, ColliderBody* colBody, s32 freezeFlag); void func_80035844(Vec3f* arg0, Vec3f* arg1, s16* arg2, s32 arg3); void func_800359B8(Actor* actor, s16 arg1, Vec3s* arg2); s32 Flags_GetEventChkInf(s32 flag); void Flags_SetEventChkInf(s32 flag); s32 Flags_GetInfTable(s32 flag); void Flags_SetInfTable(s32 flag); u16 func_80037C30(GlobalContext* globalCtx, s16 arg1); s32 func_80037D98(GlobalContext* globalCtx, Actor* actor, s16 arg2, s32* arg3); s32 func_80038290(GlobalContext* globalCtx, Actor* actor, Vec3s* arg2, Vec3s* arg3, Vec3f arg4); void ActorOverlayTable_LogPrint(void); void ActorOverlayTable_Init(void); void ActorOverlayTable_Cleanup(void); // ? func_80038600(?); // ? func_80038708(?); // ? func_8003871C(?); // ? func_80038728(?); // ? func_80038780(?); // ? func_800387FC(?); // ? func_8003880C(?); // ? func_80038870(?); // ? func_80038878(?); // ? func_800388A8(?); // ? func_800388E8(?); // ? func_80038924(?); // ? func_800389D4(?); void func_80038A28(CollisionPoly*, f32, f32, f32, MtxF*); // ? func_80038B7C(?); // ? func_80038BE0(?); // ? func_80038D48(?); // ? func_80038E78(?); // ? func_80038F20(?); // ? func_80038F60(?); // ? func_80039000(?); // ? func_800390A0(?); // ? func_8003937C(?); // ? func_80039448(?); // ? func_8003965C(?); // ? func_800396F0(?); // ? func_8003992C(?); // ? func_80039A3C(?); // ? func_80039AEC(?); // ? func_8003A3E0(?); // ? func_8003A5B8(?); // ? func_8003A7D8(?); // ? func_8003A95C(?); // ? func_8003AB28(?); // ? func_8003AC54(?); // ? func_8003AD00(?); // ? func_8003ADC8(?); // ? func_8003AEA8(?); // ? func_8003B04C(?); // ? func_8003B218(?); // ? func_8003B3C8(?); // ? func_8003BB18(?); // ? func_8003BF18(?); // ? func_8003BF5C(?); // ? func_8003BFF4(?); // ? func_8003C078(?); // ? T_BGCheck_getBGDataInfo(?); // ? func_8003C55C(?); // ? func_8003C614(?); f32 func_8003C8EC(GlobalContext*, CollisionContext*, CollisionPoly**, Vec3f*); // ? func_8003C940(?); // ? func_8003C9A4(?); f32 func_8003CA0C(GlobalContext*, CollisionContext*, CollisionPoly**, u32*, Actor*, Vec3f*); // ? func_8003CB30(?); f32 func_8003CCA4(CollisionContext*, CollisionPoly**, s32*, Vec3f*); // ? func_8003CDD4(?); s32 func_8003D52C(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, f32, CollisionPoly**, u32*, Actor*, f32); s32 func_8003D594(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, f32, CollisionPoly**, u32*, Actor*, f32); // ? func_8003D600(?); s32 func_8003D7A0(CollisionContext*, f32*, Vec3f*, f32, UNK_PTR, u32*, Actor*); // ? func_8003D7F0(?); // ? func_8003DD28(?); // ? func_8003DD6C(?); s32 func_8003DE84(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*); s32 func_8003DF10(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*, Actor*); // ? func_8003DFA0(?); // ? func_8003E0FC(?); // ? func_8003E188(?); // ? func_8003E214(?); // ? func_8003E398(?); // ? func_8003E3AC(?); // ? func_8003E4DC(?); // ? func_8003E530(?); // ? func_8003E568(?); // ? func_8003E5B4(?); // ? func_8003E688(?); // ? func_8003E6C4(?); // ? func_8003E6E4(?); // ? func_8003E6EC(?); // ? func_8003E750(?); // ? func_8003E804(?); // ? func_8003E82C(?); // ? func_8003E834(?); // ? func_8003E888(?); // ? func_8003E890(?); // ? func_8003E8EC(?); // ? func_8003E934(?); // ? func_8003E954(?); // ? func_8003E9A0(?); void func_8003EBF8(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, u32 dynaPolyId); void func_8003EC50(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, u32 dynaPolyId); u32 DynaPolyInfo_RegisterActor(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, Actor* actor, u32 arg3); DynaPolyActor* DynaPolyInfo_GetActor(CollisionContext* colCtx, u32 dynaPolyId); void DynaPolyInfo_Free(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, u32 dynaPolyId); // ? func_8003EE80(?); // ? func_8003F8EC(?); // ? func_8003F984(?); // ? func_8003FB64(?); // ? func_8003FBF4(?); // ? func_8003FDDC(?); // ? func_80040284(?); // ? func_800409A8(?); // ? func_80040BE4(?); // ? func_80040E40(?); // ? func_80040FA4(?); // ? func_80041128(?); // ? func_80041240(?); // ? func_800413F8(?); // ? func_80041510(?); // ? func_80041648(?); // ? func_800417A0(?); void DynaPolyInfo_Alloc(u32 collision, void* collisionPtr); // ? func_80041978(?); // ? func_800419B0(?); // ? func_80041A28(?); // ? func_80041A4C(?); // ? func_80041B24(?); // ? func_80041B80(?); // ? func_80041C10(?); // ? func_80041C98(?); // ? func_80041D4C(?); // ? func_80041D94(?); // ? func_80041DB8(?); // ? func_80041EC8(?); // ? func_80041F10(?); // ? func_80041F34(?); // ? func_80042048(?); // ? func_80042108(?); s32 func_8004213C(GlobalContext*, CollisionContext*, f32, f32, f32*, UNK_PTR); // ? func_80042244(?); // ? func_80042538(?); // ? func_80042548(?); // ? func_8004259C(?); s32 func_800427B4(CollisionPoly*, CollisionPoly*, s32, s32, Vec3f*); // ? func_80042868(?); // ? func_80042B2C(?); // ? func_80042C3C(?); // ? func_80042CB8(?); // ? func_80042EF8(?); // ? func_80042FC4(?); // ? func_800430A0(?); // ? func_800432A0(?); // ? func_80043334(?); // ? func_800433A4(?); void DynaPolyInfo_SetActorMove(DynaPolyActor* actor, DynaPolyMoveFlag flags); void func_800434A0(DynaPolyActor* dynaActor); void func_800434A8(DynaPolyActor* actor); // ? func_800434B8(?); // ? func_800434F8(?); void func_80043538(DynaPolyActor* actor); f32 func_800437F0(f32, f32); // ? func_8004389C(?); // ? func_800438DC(?); // ? func_8004391C(?); // ? func_800439AC(?); // ? func_80043A3C(?); // ? func_80043ABC(?); // ? func_80043B60(?); // ? func_80043BC4(?); // ? func_80043C28(?); // ? func_80043CAC(?); // ? func_80043D18(?); // ? func_80043F34(?); // ? func_80043F94(?); // ? func_80044340(?); // ? func_800443A0(?); // ? func_80044434(?); // ? func_80044510(?); // ? func_80044568(?); // ? func_80044740(?); // ? func_8004476C(?); // ? func_8004479C(?); // ? func_8004481C(?); // ? func_800448CC(?); // ? func_800449AC(?); // ? func_80044A74(?); // ? func_80044ADC(?); // ? func_80044E68(?); // ? func_800450A4(?); // ? func_80045128(?); // ? func_80045254(?); // ? func_80045350(?); // ? func_8004545C(?); // ? func_80045508(?); // ? func_80045714(?); // ? func_800457A8(?); // ? func_800458D4(?); // ? func_80045B08(?); // ? func_80045C74(?); // ? func_800460A8(?); // ? func_800466F8(?); // ? func_800468CC(?); // ? func_800469C0(?); // ? func_80046B44(?); // ? func_80046CB4(?); // ? func_80046E20(?); // ? func_80047394(?); // ? func_800473A0(?); // ? func_80051B3C(?); // ? func_80052E0C(?); // ? func_80054314(?); // ? func_8005445C(?); // ? func_80054478(?); // ? func_80057C6C(?); // ? func_80057FC4(?); // ? func_80058148(?); // ? func_80058354(?); // ? func_800584E8(?); // ? func_800588B4(?); // ? func_80058CF8(?); // ? func_80058D34(?); // ? func_80058E8C(?); // ? func_800591EC(?); // ? func_80059EC8(?); // ? func_8005A02C(?); // ? func_8005A04C(?); // ? func_8005A444(?); // ? func_8005A548(?); // ? func_8005A77C(?); // ? func_8005A7A8(?); // ? func_8005A8C4(?); s16 func_8005A970(u32 gl790); s16 func_8005A9F4(Camera* camera); // ? func_8005AA90(?); // ? func_8005AC48(?); // ? func_8005AC60(?); // ? func_8005AC6C(?); // ? func_8005AD40(?); // ? func_8005AE64(?); // ? func_8005AFB4(?); // ? func_8005B044(?); // ? func_8005B1A4(?); s32 CollisionBtlTbl_Get(s32 index); // ? func_8005B280(?); // ? func_8005B2AC(?); // ? func_8005B65C(?); s32 func_8005B6A0(GlobalContext* globalCtx, Collider* collision); // ? func_8005B6B0(?); s32 func_8005B6EC(GlobalContext* globalCtx, Collider* collision, Actor* actor, ColliderBodyInfo* src); s32 func_8005B72C(GlobalContext* globalCtx, Collider* collision, Actor* actor, ColliderBodyInfo* src); void func_8005B76C(GlobalContext* globalCtx, Collider* collision); void func_8005B784(GlobalContext* globalCtx, Collider* collision); void func_8005B79C(GlobalContext* globalCtx, Collider* collision); // ? func_8005B7C0(?); s32 func_8005B7E4(GlobalContext* globalCtx, ColliderTouch* touch); // ? func_8005B7F4(?); void func_8005B818(GlobalContext* globalCtx, ColliderBody* body); // ? func_8005B824(?); s32 func_8005B850(GlobalContext* globalCtx, ColliderBump* bump); // ? func_8005B860(?); // ? func_8005B884(?); s32 func_8005B904(GlobalContext* globalCtx, ColliderBody* body); s32 func_8005B93C(GlobalContext* globalCtx, ColliderBody* colliderBody, ColliderBodyInfoInner* bodyFlags); void func_8005B9B0(GlobalContext* globalCtx, ColliderBody* body); void func_8005B9E8(GlobalContext* globalCtx, ColliderBody* body); // ? func_8005BA1C(?); // ? func_8005BA30(?); s32 func_8005BA74(UNK_TYPE, UNK_TYPE); // ? func_8005BA84(?); // ? func_8005BAD8(?); // ? func_8005BB10(?); // ? func_8005BB48(?); // ? func_8005BB8C(?); // ? func_8005BBB0(?); // ? func_8005BBD4(?); // ? func_8005C2BC(?); s32 func_8005C318(GlobalContext* globalCtx, ColliderDimensions* dim); s32 func_8005C328(GlobalContext* globalCtx, ColliderDimensions* dest, ColliderDimensions* src); s32 ActorCollider_AllocCylinder(GlobalContext* globalCtx, ColliderCylinderMain* collision); s32 ActorCollider_FreeCylinder(GlobalContext* globalCtx, ColliderCylinderMain* collision); s32 func_8005C3F4(GlobalContext* globalCtx, ColliderCylinderMain* collision, ColliderCylinderInit* arg2); s32 ActorCollider_InitCylinder(GlobalContext* globalCtx, ColliderCylinderMain* collision, Actor* actor, ColliderCylinderInit* src); s32 func_8005C508(GlobalContext* globalCtx, ColliderCylinderMain* collision); s32 func_8005C540(GlobalContext* globalCtx, ColliderCylinderMain* collision); s32 func_8005C578(GlobalContext* globalCtx, ColliderCylinderMain* collision); // ? func_8005C5B0(?); s32 func_8005C5F8(UNK_TYPE, UNK_TYPE); // ? func_8005C608(?); // ? func_8005C6C0(?); // ? func_8005C6F8(?); // ? func_8005C730(?); // ? func_8005C774(?); // ? func_8005C798(?); // ? func_8005C7BC(?); // ? func_8005CE6C(?); s32 func_8005CEB4(GlobalContext* globalCtx, ColliderDimensions* dim); // ? func_8005CEC4(?); // ? func_8005CEDC(?); // ? func_8005CF90(?); s32 func_8005D018(GlobalContext* globalCtx, ColliderCylinderMain* collision); s32 func_8005D060(GlobalContext* globalCtx, ColliderCylinderMain* collision); s32 func_8005D0A8(GlobalContext* globalCtx, ColliderCylinderMain* collision, Actor* actor, ColliderCylinderInit* src); s32 func_8005D104(GlobalContext* globalCtx, ColliderCylinderMain* collision, Actor* actor, ColliderCylinderInit* src); s32 func_8005D160(GlobalContext* globalCtx, ColliderCylinderMain* collision); s32 func_8005D1A8(GlobalContext* globalCtx, ColliderCylinderMain* collision); s32 func_8005D1E0(GlobalContext* globalCtx, ColliderCylinderMain* collision); // ? func_8005D218(?); // ? func_8005D334(?); // ? func_8005D3A4(?); // ? func_8005D3BC(?); void func_8005D400(UNK_TYPE, UNK_TYPE); // ? func_8005D40C(?); // ? func_8005D4DC(?); // ? func_8005D62C(?); s32 Actor_CollisionCheck_SetAT(GlobalContext* globalCtx, SubGlobalContext11E60* simpleBodyGroups, ColliderCylinderMain* collision); s32 Actor_CollisionCheck_SetAC(GlobalContext* globalCtx, SubGlobalContext11E60* simpleBodyGroups, ColliderCylinderMain* collision); s32 Actor_CollisionCheck_SetOT(GlobalContext* globalCtx, SubGlobalContext11E60* simpleBodyGroups, ColliderCylinderMain* collision); // ? func_8005DF2C(?); // ? func_8005DF50(?); // ? func_8005DF74(?); // ? func_8005DFAC(?); // ? func_8005E2EC(?); // ? func_8005E4F8(?); // ? func_8005E604(?); // ? func_8005E800(?); // ? func_8005E81C(?); // ? func_800611A0(?); // ? func_80061274(?); // ? func_8006139C(?); // ? func_8006146C(?); // ? func_800614A4(?); // ? func_8006199C(?); // ? func_80061BF4(?); // ? func_80061C18(?); // ? func_80061C98(?); // ? func_80061E48(?); // ? func_80061E8C(?); void func_80061ED4(SubActorStruct98 *sub98, ActorDamageChart *damageChart, SubActor98Init *subActor98Init); // ? func_80061EFC(?); // ? func_80061F64(?); // ? func_800622E4(?); // ? func_80062530(?); // ? func_800626B0(?); void ActorCollider_Cylinder_Update(Actor* actor, ColliderCylinderMain* collision); // ? func_80062734(?); // ? func_80062A28(?); // ? func_80062B80(?); // ? func_80062CD4(?); void func_80062D60(GlobalContext*, Vec3f*); // ? func_80062DAC(?); // ? func_80062E14(?); s32 func_80062ECC(f32, f32, f32, Vec3f*, Vec3f*, Vec3f*, Vec3f*, Vec3f*); void SaveContext_Init(void); // ? func_800636C0(?); void func_8006375C(s32 arg0, s32 arg1, float* d_80855320); // ? func_8006376C(?); // ? func_80063828(?); // ? func_8006390C(?); // ? func_80063C04(?); // ? func_80063D7C(?); void DebugDisplay_Init(void); DebugDispObject* DebugDisplay_AddObject(f32 posX, f32 posY, f32 posZ, s16 rotX, s16 rotY, s16 rotZ, f32 scaleX, f32 scaleY, f32 scaleZ, u8 red, u8 green, u8 blue, u8 alpha, s16 type, GraphicsContext* gfxCtx); void DebugDisplay_DrawObjects(GlobalContext* globalCtx); void func_8006450C(GlobalContext* globalCtx, CutsceneContext* csCtx); void func_80064534(GlobalContext* globalCtx, CutsceneContext* csCtx); void func_80064558(GlobalContext* globalCtx, CutsceneContext* csCtx); void func_800645A0(GlobalContext* globalCtx, CutsceneContext* csCtx); void Cutscene_HandleEntranceTriggers(GlobalContext* globalCtx); void Cutscene_HandleConditionalTriggers(GlobalContext* globalCtx); void Cutscene_SetSegment(GlobalContext* globalCtx, u32 segment); void* MemCopy(void* dest, void* src, s32 size); void func_800694A0(GlobalContext* globalCtx, s16 drawId); // ? func_8006BA00(?); // ? func_8006BA30(?); void Audio_PlaySoundAtPosition(GlobalContext* globalCtx, Vec3f* pos2, s32 radius, u16 sfxId); // ? func_8006BBC0(?); // ? func_8006BE88(?); // ? func_8006BF1C(?); // ? func_8006C0FC(?); // ? func_8006C3A0(?); // ? func_8006C3D0(?); void func_8006C438(GlobalContext* globalCtx, s16 arg1); s32 func_8006C4A4(GlobalContext*, s32); // ? func_8006C510(?); // ? func_8006C5A8(?); // ? func_8006CBAC(?); // ? func_8006CFC0(?); // ? func_8006D074(?); // ? func_8006D0AC(?); // ? func_8006D0EC(?); // ? func_8006D684(?); // ? func_8006DC68(?); // ? func_8006DE30(?); // ? func_8006DF68(?); // ? func_8006E0A0(?); // ? func_8006E0EC(?); // ? func_8006E418(?); // ? func_8006EA30(?); // ? func_8006ECF4(?); void func_8006EE48(UNK_TYPE); // ? func_8006EE50(?); // ? func_8006EE60(?); // ? func_8006EEBC(?); // ? func_8006EF10(?); // ? func_8006F0A0(?); // ? func_8006F0D4(?); // ? func_8006F0FC(?); // ? func_8006F140(?); f32 func_8006F93C(u16, u16, u16); // ? func_8006FB94(?); // ? func_8006FC88(?); // ? func_80070600(?); // ? func_800706A0(?); // ? func_80070718(?); // ? func_80070C24(?); // ? func_800730DC(?); // ? func_80073988(?); // ? func_80073A5C(?); f32 func_800746DC(); // ? func_80074704(?); // ? func_80074D6C(?); // ? func_80074FF4(?); // ? func_800750C0(?); // ? func_800753C4(?); // ? func_8007542C(?); // ? func_800758AC(?); // ? func_80075B44(?); // ? func_80075E68(?); // ? func_80075F14(?); // ? func_800760F4(?); // ? func_800763A8(?); // ? func_800766C4(?); // ? func_8007672C(?); // ? func_80076934(?); s32 func_800775CC(); void func_800775D8(); s32 func_800775E4(); void func_800775F0(u16); // ? func_80077600(?); void Lib_MemSet(u8* dest, size_t size, u8 val); f32 Math_Coss(s16 angle); f32 Math_Sins(s16 angle); s32 Math_ApproxUpdateScaledS(s16* fp, s16 target, s16 step); s32 Math_ApproxS(s16* fp, s16 target, s16 step); s32 Math_ApproxF(f32* fp, f32 target, f32 step); s32 func_80077AF8(s16* fp, s16 target, s16 step); s32 func_80077B58(s16* fp, s16 target, s16 step); s32 func_80077C6C(f32* fp, f32 target, f32 incrStep, f32 decrStep); s16 Math_Rand_S16Offset(s16 base, s16 range); void Math_Vec3f_Copy(Vec3f* dest, Vec3f* src); void Math_Vec3s_ToVec3f(Vec3f* dest, Vec3s* src); void Math_Vec3f_Sum(Vec3f* a, Vec3f* b, Vec3f* dest); void Math_Vec3f_Diff(Vec3f* a, Vec3f* b, Vec3f* dest); void Math_Vec3s_DiffToVec3f(Vec3f* dest, Vec3s* a, Vec3s* b); void Math_Vec3f_Scale(Vec3f* vec, f32 scaleF); f32 Math_Vec3f_DistXYZ(Vec3f* a, Vec3f* b); f32 Math_Vec3f_DistXYZAndStoreDiff(Vec3f* a, Vec3f* b, Vec3f* dest); f32 Math_Vec3f_DistXZ(Vec3f* a, Vec3f* b); s16 Math_Vec3f_Yaw(Vec3f* a, Vec3f* b); s16 Math_Vec3f_Pitch(Vec3f* a, Vec3f* b); void Actor_ProcessInitChain(Actor* actor, InitChainEntry* initChain); f32 Math_SmoothScaleMaxMinF(f32* pValue, f32 target, f32 scale, f32 maxStep, f32 minStep); void Math_SmoothScaleMaxF(f32* pValue, f32 target, f32 scale, f32 maxStep); void Math_SmoothDownscaleMaxF(f32* pValue, f32 scale, f32 maxStep); s16 Math_SmoothScaleMaxMinS(s16* pValue, s16 target, s16 invScale, s16 maxStep, s16 minStep); void Math_SmoothScaleMaxS(s16* pValue, s16 target, s16 invScale, s16 maxStep); void Color_RGBA8_Copy(Color_RGBA8* dst, Color_RGBA8* src); void func_80078884(u16 sfxId); void func_800788CC(u16 sfxId); void func_80078914(Vec3f* arg0, u16 sfxId); void Health_InitData(GlobalContext* globalCtx); void Health_UpdateData(GlobalContext* globalCtx); void Interface_DrawHealth(GlobalContext* globalCtx); void Health_HandleCriticalAlarm(GlobalContext* globalCtx); void Lights_InitPositionalLight(LightInfoPositional* info, s16 posX, s16 posY, s16 posZ, u8 red, u8 green, u8 blue, s16 radius, u32 type); void Lights_InitType0PositionalLight(LightInfoPositional* info, s16 posX, s16 posY, s16 posZ, u8 red, u8 green, u8 blue, s16 radius); void Lights_InitType2PositionalLight(LightInfoPositional* info, s16 posX, s16 posY, s16 posZ, u8 red, u8 green, u8 blue, s16 radius); void Lights_SetPositionalLightColorAndRadius(LightInfoPositional* info, u8 red, u8 green, u8 blue, s16 radius); void Lights_InitDirectional(LightInfoDirectional* info, s8 dirX, s8 dirY, s8 dirZ, u8 red, u8 green, u8 blue); void Lights_MapperInit(LightMapper* mapper, u8 red, u8 green, u8 blue); // ? func_8007A084(?); // ? func_8007A474(?); z_Light* Lights_FindFreeSlot(); void Lights_Free(z_Light* light); void func_8007A614(GlobalContext* globalCtx, LightingContext* lightCtx); void func_8007A698(LightingContext* lightCtx, u8 arg1, u8 arg2, u8 arg3, s16 arg4, s16 arg5); void Lights_SetAmbientColor(LightingContext* lightCtx, u8 red, u8 green, u8 blue); LightMapper* Lights_CreateMapper(LightingContext* lightCtx, GraphicsContext* gfxCtx); void Lights_ClearHead(GlobalContext* globalCtx, LightingContext* lightCtx); void Lights_RemoveAll(GlobalContext* globalCtx, LightingContext* lightCtx); z_Light* Lights_Insert(GlobalContext* globalCtx, LightingContext* lightCtx, LightInfo* info); void Lights_Remove(GlobalContext* globalCtx, LightingContext* lightCtx, z_Light* light); LightMapper* func_8007A960(GraphicsContext* gfxCtx, u8 red, u8 green, u8 blue); // ? func_8007A9B4(?); // ? func_8007ABBC(?); void ZeldaArena_CheckPointer(void* ptr, u32 size, const char* name, const char* action); void* ZeldaArena_Malloc(u32 size); void* ZeldaArena_MallocDebug(u32 size, const char* file, s32 line); void* ZeldaArena_MallocR(u32 size); void* ZeldaArena_MallocRDebug(u32 size, const char* file, s32 line); void* ZeldaArena_Realloc(void* ptr, u32 newSize); void* ZeldaArena_ReallocDebug(void* ptr, u32 newSize, const char* file, s32 line); void ZeldaArena_Free(void* ptr); void ZeldaArena_FreeDebug(void* ptr, const char* file, s32 line); void* ZeldaArena_Calloc(u32 num, u32 size); void ZeldaArena_Display(); void ZeldaArena_GetSizes(u32* outMaxFree, u32* outFree, u32* outAlloc); void ZeldaArena_Check(); void ZeldaArena_Init(void* start, u32 size); void ZeldaArena_Cleanup(); u8 ZeldaArena_IsInitalized(); void MapMark_Init(GlobalContext* globalCtx); void MapMark_ClearPointers(GlobalContext* globalCtx); void MapMark_DrawConditionally(GlobalContext* globalCtx); void PreNmiBuff_Init(PreNmiBuff* this); void PreNmiBuff_SetReset(PreNmiBuff* this); u32 PreNmiBuff_IsResetting(PreNmiBuff* this); void MsgEvent_SendNullTask(); f32 func_8007BF90(Vec3f*, Vec3f*); // ? func_8007C028(?); // ? func_8007C058(?); // ? func_8007C0A8(?); // ? func_8007C0F8(?); // ? func_8007C25C(?); // ? func_8007C29C(?); // ? func_8007C3F4(?); // ? func_8007C490(?); // ? func_8007C4E0(?); // ? func_8007C680(?); // ? func_8007C704(?); // ? func_8007C76C(?); // ? func_8007C7A8(?); // ? func_8007C7F8(?); // ? func_8007C820(?); // ? func_8007C850(?); // ? func_8007FFE0(?); // ? func_80080024(?); s16 func_800800F8(GlobalContext* globalCtx, u32 arg1, u32 arg2, Actor* actor, u32 arg4); // ? func_800803F0(?); // ? func_80080480(?); void func_80080788(UNK_TYPE, UNK_TYPE); // ? func_800807A0(?); // ? func_800807FC(?); // ? func_800808FC(?); // ? func_80080AB4(?); // ? func_80080E04(?); // ? func_80080F44(?); void func_80080F68(GlobalContext* globalCtx); // ? func_80081240(?); void Interface_DrawMinimap(GlobalContext* globalCtx); // ? func_80082248(?); void func_8008226C(GlobalContext* globalCtx); void Interface_ChangeAlpha(u16 alphaType); void Interface_SetSceneRestrictions(GlobalContext* globalCtx); void Inventory_SwapAgeEquipment(void); void Interface_InitHorsebackArchery(GlobalContext* globalCtx); void func_800849EC(GlobalContext* globalCtx); void Interface_LoadItemIcon1(GlobalContext* globalCtx, u16 button); void Interface_LoadItemIcon2(GlobalContext* globalCtx, u16 button); void func_80084BF4(GlobalContext* globalCtx, u16 flag); u8 Item_Give(GlobalContext* globalCtx, u8 item); u8 Item_CheckObtainability(u8 item); void Inventory_DeleteItem(u16 item, u16 invSlot); s32 Inventory_ReplaceItem(GlobalContext* globalCtx, u16 oldItem, u16 newItem); s32 Inventory_HasEmptyBottle(void); s32 Inventory_HasSpecificBottle(u8 bottleItem); void Inventory_UpdateBottleItem(GlobalContext* globalCtx, u8 item, u8 cButton); s32 Inventory_ConsumeFairy(GlobalContext* globalCtx); void Interface_SetDoAction(GlobalContext* globalCtx, u16 action); void Interface_SetNaviCall(GlobalContext* globalCtx, u16 naviCallState); void Interface_LoadActionLabelB(GlobalContext* globalCtx, u16 action); s32 Health_ChangeBy(GlobalContext* globalCtx, s16 healthChange); void Rupees_ChangeBy(s16 rupeeChange); void Inventory_ChangeAmmo(s16 item, s16 ammoChange); void func_80087680(GlobalContext* globalCtx); void func_800876C8(GlobalContext* globalCtx); s32 func_80087708(GlobalContext* globalCtx, s16 arg1, s16 arg2); void func_80088B34(s16 arg0); void Interface_Draw(GlobalContext* globalCtx); void Interface_Update(GlobalContext* globalCtx); f32 func_8008E520(Actor* actor, Path* path, s16, s16*); // ? func_8008E6A0(?); // ? func_8008E6AC(?); // ? func_8008E750(?); UNK_TYPE func_8008E8DC(GlobalContext*, Player*); UNK_TYPE func_8008E988(GlobalContext*); UNK_TYPE func_8008E9C4(Player* player); UNK_TYPE func_8008E9D0(Player* player); // ? func_8008E9F8(?); // ? func_8008EA40(?); // ? func_8008EB2C(?); // ? func_8008EC04(?); void func_8008ECAC(GlobalContext*, Player* player); void func_8008EDF0(Player*); // ? func_8008EE08(?); UNK_TYPE func_8008EF44(GlobalContext*, UNK_TYPE); // ? func_8008F034(?); u8 func_8008F080(GlobalContext*); void func_8008F08C(GlobalContext*); UNK_TYPE func_8008F098(GlobalContext*); UNK_TYPE func_8008F0AC(GlobalContext*); s32 func_8008F0D8(Player* player, UNK_TYPE); UNK_TYPE func_8008F104(Player* player); UNK_TYPE func_8008F128(Player* player); s32 func_8008F158(UNK_TYPE); void func_8008F180(Player* player); UNK_TYPE func_8008F1A0(Player* player); // ? func_8008F1CC(?); s32 func_8008F224(Player* player, UNK_TYPE); void func_8008F250(Player* player); s32 func_8008F270(Player* player, UNK_TYPE); s32 func_8008F29C(Player* player); s32 func_8008F2F8(GlobalContext*); // ? func_8008F470(?); // ? func_8008F87C(?); // ? func_8008FCC8(?); // ? func_800902F0(?); // ? func_80090440(?); u8 func_80090480(GlobalContext* globalCtx, Collider* collider, UNK_PTR a2, Vec3f* a3, Vec3f* a4); // ? func_80090604(?); // ? func_800906D4(?); // ? func_800907E4(?); // ? func_80090A28(?); // ? func_80090AFC(?); // ? func_80091880(?); // ? func_80091A24(?); void PreNMI_Init(PreNMIContext* prenmiCtx); // ? func_80092500(?); // ? func_80092584(?); // ? func_80092AB8(?); // ? func_80092B48(?); // ? func_80092BFC(?); // ? func_80092C20(?); void func_80092DAC(s16, s16); void func_80092DF0(s16, s16); // ? func_80092E3C(?); void func_80092E70(s16, s16, UNK_TYPE, UNK_TYPE, UNK_TYPE); // ? func_80092F38(?); s16 func_80092F88(Camera*, UNK_TYPE); // ? func_80092FAC(?); // ? func_80092FF0(?); // ? func_80093370(?); // ? func_80093708(?); // ? func_8009373C(?); Gfx* func_80093774(Gfx* a0, u32 a1); // ? func_800937C0(?); // ? func_80093808(?); // ? func_800938B4(?); // ? func_8009398C(?); // ? func_80093AD0(?); void func_80093BA8(GraphicsContext* gfxCtx); // ? func_80093C80(?); void func_80093D18(GraphicsContext* gfxCtx); void func_80093D84(GraphicsContext* gfxCtx); // ? func_80093F34(?); // ? func_80093F58(?); void func_80094044(GraphicsContext *gfxCtx); // ? func_800940B0(?); // ? func_800942F0(?); // ? func_8009435C(?); // ? func_800944A0(?); // ? func_80094520(?); // ? func_8009457C(?); // ? func_800945A0(?); // ? func_80094678(?); Gfx* func_800946E4(Gfx* a0); // ? func_800947AC(?); // ? func_80094A14(?); // ? func_80094C50(?); // ? func_80094DB8(?); Gfx* func_80094E78(GraphicsContext* gfxCtx, u32 x, u32 y); Gfx* Draw_TexScroll(GraphicsContext* gfxCtx, u32 x, u32 y, s32 width, s32 height); Gfx* Draw_TwoTexScroll(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2); Gfx* Draw_TwoTexScrollEnvColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2, s32 red, s32 green, s32 blue, s32 alpha); // ? func_80095248(?); void func_80095AA0(GlobalContext* globalCtx, Room* room, UNK_TYPE arg2, UNK_TYPE arg3); // ? func_8009638C(?); void func_80096FD4(GlobalContext* globalCtx, Room* room); u32 func_80096FE8(GlobalContext* globalCtx, RoomContext* roomCtx); s32 func_8009728C(GlobalContext* globalCtx, RoomContext* roomCtx, s32 roomNum); s32 func_800973FC(GlobalContext* globalCtx, RoomContext* roomCtx); void Room_Draw(GlobalContext* globalCtx, Room* room, u32 flags); void func_80097534(GlobalContext* globalCtx, RoomContext* roomCtx); void Sample_Calc(SampleContext* this); void Sample_Draw(SampleContext* this); void Sample_Update(SampleContext* this); void Sample_Destroy(SampleContext* this); void Sample_SetupView(SampleContext* this); void Sample_LoadTitleStatic(SampleContext* this); void Sample_Init(SampleContext* this); void Inventory_ChangeEquipment(s16 equipment, u16 value); u8 Inventory_DeleteEquipment(GlobalContext* globalCtx, s16 equipment); void Inventory_ChangeUpgrade(s16 upgrade, s16 value); void Object_InitBank(GlobalContext* globalCtx, ObjectContext* objectCtx); void Object_UpdateBank(ObjectContext* objectCtx); s32 Object_GetIndex(ObjectContext* objectCtx, s16 objectId); s32 Object_IsLoaded(ObjectContext* objectCtx, s32 bankIndex); void func_800981B8(ObjectContext* objectCtx); s32 Scene_ExecuteCommands(GlobalContext* globalCtx, SceneCmd* sceneCmd); void func_80098CBC(GlobalContext* globalCtx, u8* nbTransitionActors); void func_800994A0(GlobalContext* globalCtx); void Scene_Draw(GlobalContext* globalCtx); // ? func_800A08A0(?); // ? func_800A0D94(?); // ? func_800A106C(?); // ? func_800A1344(?); void SkelAnime_Draw(GlobalContext* globalCtx, u32 limbIndex, u32 adt, u8 limbDListCnt, void* internal0, void* internal1); // ? func_800A180C(?); void func_800A1AC8(GlobalContext *globalCtx, u32 limbIndex, u32 actorDrawTbl, u32 dListCount, void* posUpdateFunc, void *drawFunc, Actor* actor); // ? func_800A1D8C(?); // ? func_800A1FC8(?); s32 SkelAnime_GetFrameCount(u32 animation); // ? func_800A2044(?); // ? func_800A24A0(?); Gfx* func_800A273C(GlobalContext* globalCtx, u32 limbIndex, u32 adt, u8 limbDListCnt, void* internal0, void* internal1, Actor* actor, Gfx* gfx); // ? func_800A2E70(?); // ? func_800A32EC(?); // ? func_800A3334(?); // ? func_800A336C(?); // ? func_800A3478(?); // ? func_800A34DC(?); // ? func_800A390C(?); // ? func_800A39AC(?); // ? func_800A3B8C(?); // ? func_800A3BE4(?); // ? func_800A3C9C(?); // ? func_800A3F08(?); // ? func_800A3D70(?); // ? func_800A4478(?); void SkelAnime_Init(GlobalContext* globalCtx, SkelAnime* skelAnime, u32 skeleton, u32 animation, u8 unk0, u8 unk1, u8 unk2); void func_800A46F8(GlobalContext* globalCtx, SkelAnime* skelAnime, u32 skeleton, u32 animation, u8 unk0, u16* unk1, u8 unk2); // ? func_800A4A20(?); // ? func_800A4AD8(?); // ? func_800A4D9C(?); // ? func_800A4EE0(?); // ? func_800A487C(?); // ? func_800A49B0(?); s32 SkelAnime_FrameUpdateMatrix(SkelAnime* skelAnime); // ? func_800A4C58(?); // ? func_800A4FE4(?); void SkelAnime_ChangeAnimation(SkelAnime* skelAnime, u32 animation, f32 playbackSpeed, f32 unk0, f32 frameCount, u8 unk1, f32 transitionRate); void func_800A51E8(SkelAnime *skelAnime, u32 animation); void func_800A5240(SkelAnime *skelAnime, u32 animation, f32 unk0); void func_800A529C(SkelAnime *skelAnime, u32 animation, f32 unk0, Actor *actor); // ? func_800A52F8(?); // ? func_800A54FC(?); UNK_TYPE func_800A56C8(SkelAnime* skelAnime, f32 arg1); // ? func_800A56F0(?); // ? func_800A5774(?); // ? func_800A57C0(?); // ? func_800A598C(?); // ? func_800A5E28(?); // ? func_800A5F60(?); // ? func_800A60D8(?); // ? func_800A6460(?); // ? func_800A698C(?); // ? func_800A6AC4(?); // ? func_800A6E10(?); // ? func_800A6EF4(?); // ? func_800A6FA0(?); // ? func_800A72FC(?); // ? func_800A730C(?); // ? func_800A735C(?); // ? func_800A73E0(?); void func_800A76A4(MtxF* dest, f32 x, f32 y, f32 z); // ? func_800A7704(?); // ? func_800A7894(?); void func_800A7A24(MtxF* dest, f32 x, f32 y, f32 z); // ? func_800A7B04(?); // ? func_800A7B84(?); // ? func_800A7C60(?); // ? func_800A7E70(?); // ? func_800A7EC0(?); // ? func_800A81A0(?); // ? func_800A82C8(?); // ? func_800A9A9C(?); // ? func_800A9D28(?); void func_800A9D40(u32 addr, u8 handleType, u8 handleDomain, u8 handleLatency, u8 handlePageSize, u8 handleRelDuration, u8 handlePulse, u32 handleSpeed); void func_800A9E14(UNK_PTR dramAddr, size_t size, UNK_TYPE arg2); void Sram_ReadWrite(UNK_TYPE arg0, UNK_PTR dramAddr, size_t size, UNK_TYPE arg3); void func_800A9F30(s32, s32); void func_800A9F6C(f32, u8, u8, u8); void func_800AA000(f32, u8, u8, u8); void func_800AA0B4(); u32 func_800AA148(); void func_800AA15C(); void func_800AA16C(); void func_800AA178(u32); // ? func_800AA190(?); void func_800AA278(View*, GraphicsContext*); // ? func_800AA358(?); // ? func_800AA43C(?); void func_800AA460(View*, f32, f32, f32); // ? func_800AA4FC(?); // ? func_800AA550(?); void func_800AA76C(View*, f32, f32, f32); void func_800AA78C(View*, f32, f32, f32); void func_800AA7AC(View*, f32); // ? func_800AA7B8(?); // ? func_800AA814(?); // ? func_800AA890(?); // ? func_800AAA50(?); // ? func_800AAA9C(?); // ? func_800AB0A8(?); // ? func_800AB2C4(?); // ? func_800AB560(?); // ? func_800AB944(?); // ? func_800AB9EC(?); void func_800ABE74(f32, f32, f32); // ? func_800AC030(?); // ? func_800AC2F4(?); // ? func_800AC89C(?); // ? func_800AC9A4(?); // ? func_800ACA28(?); // ? func_800ACA90(?); // ? func_800ACA98(?); // ? func_800ACAF8(?); // ? func_800ACE70(?); // ? func_800ACE90(?); // ? func_800ACE98(?); // ? func_800AD000(?); // ? func_800AD054(?); // ? func_800AD080(?); // ? func_800AD394(?); // ? func_800AD5C0(?); // ? func_800AD920(?); // ? func_800AD950(?); // ? func_800AD958(?); // ? func_800ADBB0(?); // ? func_800AE2C0(?); // ? func_800AEFC8(?); // ? func_800AF178(?); // ? func_800AF218(?); // ? func_800B0E50(?); // ? func_800B1030(?); // ? func_800B10C4(?); // ? func_800B1744(?); void PlayerCall_InitFuncPtrs(); // ? func_800B18B0(?); // ? func_800B1CFC(?); // ? func_800B1DBC(?); // ? func_800B1E84(?); // ? func_800B2074(?); // ? func_800B2188(?); // ? func_800B23E8(?); // ? func_800B2400(?); // ? func_800B2438(?); // ? func_800B24D0(?); // ? func_800B24D8(?); // ? func_800B25EC(?); // ? func_800B25F4(?); // ? func_800B2604(?); // ? func_800B2944(?); // ? func_800B29D0(?); // ? func_800B2A88(?); // ? func_800B2AB0(?); // ? func_800B2AB8(?); // ? func_800B2B98(?); // ? func_800B2DD4(?); // ? func_800B2DDC(?); // ? func_800B2E1C(?); // ? func_800B2E30(?); // ? func_800B301C(?); // ? func_800B3044(?); // ? func_800B304C(?); // ? func_800B31D0(?); // ? func_800B346C(?); // ? func_800B3474(?); // ? func_800B34CC(?); // ? func_800B34D4(?); // ? func_800B34E0(?); // ? func_800B3538(?); // ? func_800B3560(?); // ? func_800B3568(?); // ? func_800B3718(?); // ? func_800B37DC(?); // ? func_800B37E4(?); // ? func_800B37EC(?); // ? func_800B3840(?); // ? func_800B3898(?); // ? func_800B38A4(?); // ? func_800B38FC(?); // ? func_800B3908(?); // ? func_800B3968(?); // ? func_800B39B8(?); // ? func_800B3B50(?); // ? func_800B3BD4(?); // ? func_800B3DF8(?); // ? func_800B3EBC(?); // ? func_800B3EFC(?); // ? func_800B3F38(?); // ? func_800B3F54(?); // ? func_800B3F94(?); // ? func_800B3FF4(?); // ? func_800B404C(?); // ? func_800B4088(?); // ? func_800B41DC(?); // ? func_800B42C0(?); // ? func_800B4370(?); // ? func_800B44E0(?); // ? func_800B4920(?); // ? func_800B4A68(?); // ? func_800B4AA8(?); // ? func_800B4AE4(?); // ? func_800B4B20(?); // ? func_800B4D58(?); // ? func_800B4DE4(?); // ? func_800B4E7C(?); // ? func_800B8730(?); // ? func_800B87D8(?); // ? func_800B8978(?); // ? func_800B8A0C(?); // ? func_800B8BA4(?); // ? func_800B8F58(?); // ? func_800B9060(?); // ? func_800B91B0(?); // ? func_800B958C(?); // ? func_800B9638(?); // ? func_800BB0A0(?); // ? func_800BB2B4(?); // ? func_800BB570(?); // ? func_800BB5E8(?); // ? func_800BB5F8(?); // ? func_800BB764(?); // ? func_800BB838(?); // ? func_800BB90C(?); // ? func_800BBB6C(?); // ? func_800BBC14(?); void KaleidoManager_LoadOvl(KaleidoManagerOvl* ovl); void KaleidoManager_ClearOvl(KaleidoManagerOvl* ovl); void KaleidoManager_Init(GlobalContext* globalCtx); void KaleidoManager_Destroy(); void* KaleidoManager_GetRamAddr(void* vram); void KaleidoScopeCall_LoadPlayer(); void KaleidoScopeCall_Init(GlobalContext* globalCtx); void KaleidoScopeCall_Destroy(GlobalContext* globalCtx); void KaleidoScopeCall_Update(GlobalContext* globalCtx); void KaleidoScopeCall_Draw(GlobalContext *globalCtx); // ? func_800BC450(?); // ? func_800BC490(?); s32 func_800BC56C(GlobalContext*, s16); // ? func_800BC5E0(?); void func_800BC88C(GlobalContext*); Gfx* func_800BC8A0(GlobalContext* globalCtx, Gfx* a1); // ? func_800BC8EC(?); UNK_TYPE func_800BCA64(UNK_ARGS); // ? func_800BD314(?); // ? func_800BED40(?); // ? func_800BEDD8(?); // ? func_800BFAE4(?); s32 func_800BFC84(GlobalContext* globalCtx); f32 func_800BFCB8(GlobalContext* globalCtx, MtxF* a1, Vec3f* a2); void* func_800BFE5C(GlobalContext* globalCtx, RomFile* file); // ? func_800BFEC4(?); // ? func_800BFF0C(?); // ? Area_Spawn(?); // ? func_800C016C(?); // ? func_800C0230(?); s16 func_800C030C(GlobalContext* globalCtx); // ? func_800C0314(?); // ? func_800C0384(?); Camera* func_800C04A4(GlobalContext*, s16); // ? func_800C04D8(?); void func_800C0704(GlobalContext*, s16, f32); // ? func_800C0744(?); // ? func_800C078C(?); // ? func_800C0808(?); // ? func_800C0874(?); void func_800C0C88(GlobalContext *globalCtx); // ? func_800C0A44(?); // ? func_800C0A88(?); void func_800C0AF4(GlobalContext*, s8, s16); void func_800C0B60(GlobalContext* globalCtx); void func_800C0BB4(GlobalContext* globalCtx); // ? func_800C0CB8(?); s32 func_800C0D28(GlobalContext* globalCtx); // ? func_800C0D34(?); // ? func_800C0E70(?); // ? func_800C0EA8(?); // ? func_800C0ED8(?); // ? func_800C0F08(?); // ? func_800C0F28(?); // ? func_800C1258(?); // ? func_800C170C(?); // ? func_800C1AE8(?); // ? func_800C1B24(?); // ? func_800C1F20(?); // ? func_800C1FA4(?); // ? func_800C20B4(?); // ? func_800C24BC(?); // ? func_800C2500(?); // ? func_800C2FE4(?); // ? func_800C3770(?); void THGA_Ct(TwoHeadGfxArena* thga, Gfx* start, u32 size); void THGA_Dt(TwoHeadGfxArena* thga); u32 THGA_IsCrash(TwoHeadGfxArena* thga); void THGA_Init(TwoHeadGfxArena* thga); s32 THGA_GetSize(TwoHeadGfxArena* thga); Gfx* THGA_GetHead(TwoHeadGfxArena* thga); void THGA_SetHead(TwoHeadGfxArena* thga, Gfx* start); Gfx* THGA_GetTail(TwoHeadGfxArena* thga); Gfx* THGA_AllocStartArray8(TwoHeadGfxArena* thga, u32 count); Gfx* THGA_AllocStart8(TwoHeadGfxArena* thga); Gfx* THGA_AllocStart8Wrapper(TwoHeadGfxArena* thga); Gfx* THGA_AllocEnd(TwoHeadGfxArena* thga, u32 size); Gfx* THGA_AllocEndArray64(TwoHeadGfxArena* thga, u32 count); Gfx* THGA_AllocEnd64(TwoHeadGfxArena* thga); Gfx* THGA_AllocEndArray16(TwoHeadGfxArena* thga, u32 count); Gfx* THGA_AllocEnd16(TwoHeadGfxArena* thga); void* THA_GetHead(TwoHeadArena* tha); void THA_SetHead(TwoHeadArena* tha, void* start); void* THA_GetTail(TwoHeadArena* tha); void* THA_AllocStart(TwoHeadArena* tha, u32 size); void* THA_AllocStart1(TwoHeadArena* tha); void* THA_AllocEnd(TwoHeadArena* tha, u32 size); void* THA_AllocEndAlign16(TwoHeadArena* tha, u32 size); void* THA_AllocEndAlign(TwoHeadArena* tha, u32 size, u32 mask); s32 THA_GetSize(TwoHeadArena* tha); u32 THA_IsCrash(TwoHeadArena* tha); void THA_Init(TwoHeadArena* tha); void THA_Ct(TwoHeadArena* tha, void* ptr, u32 size); void THA_Dt(TwoHeadArena* tha); // ? func_800C3C20(?); // ? func_800C3C80(?); // ? func_800C3CB8(?); // ? func_800C3E40(?); // ? func_800C3FC4(?); // ? func_800C3FEC(?); // ? func_800C3E70(?); void TitleSetup_InitImpl(GameState* gameState); void TitleSetup_Destroy(GameState* gameState); void TitleSetup_Init(GameState* gameState); // ? func_800C4130(?); // ? func_800C41F0(?); // ? func_800C4344(?); // ? func_800C4558(?); // ? func_800C46EC(?); // ? func_800C48CC(?); // ? func_800C49F4(?); // ? func_800C4A98(?); // ? func_800C4AC8(?); // ? func_800C4E80(?); // ? func_800C4F20(?); // ? func_800C5080(?); // ? func_800C5360(?); // ? func_800C546C(?); // ? func_800C547C(?); void* Game_Alloc(GameState* gameState, size_t size, char* file, s32 line); void func_800C55D0(GameAlloc* this); void* GameAlloc_MallocDebug(GameAlloc* this, u32 size, const char* file, s32 line); void* GameAlloc_Malloc(GameAlloc* this, u32 size); void GameAlloc_Free(GameAlloc* this, void* data); void GameAlloc_Cleanup(GameAlloc* this); void GameAlloc_Init(GameAlloc* this); // ? func_800C5850(?); // ? func_800C58BC(?); // ? func_800C5AB0(?); // ? func_800C5B14(?); // ? func_800C5C2C(?); // ? func_800C5D08(?); // ? func_800C5D94(?); // ? func_800C5DC0(?); // ? func_800C61D8(?); void Graph_ThreadEntry(void*); void* Graph_Alloc(GraphicsContext* gfxCtx, size_t size); void func_800C6AC4(Gfx** a0, GraphicsContext* gfxCtx, char* file, s32 line); void func_800C6B54(Gfx** a0, GraphicsContext* gfxCtx, char* file, s32 line); Gfx* func_800C6C20(Gfx* a0); Gfx* func_800C6C28(Gfx* a0, Gfx* dlist); //branch dlist // ? func_800C6C3C(?); ListAlloc* ListAlloc_Init(ListAlloc* this); void* ListAlloc_Alloc(ListAlloc* this, u32 size); void ListAlloc_Free(ListAlloc* this, void* data); void ListAlloc_FreeAll(ListAlloc* this); void Main_LogSystemHeap(); void Main(void*); // OSMesgQueue* PadMgr_LockGetControllerQueue(PadMgr* padmgr); // void PadMgr_UnlockReleaseControllerQueue(PadMgr* padmgr, OSMesgQueue* ctrlrqueue); // void PadMgr_Lock2(PadMgr* padmgr); // void PadMgr_Unlock2(PadMgr* padmgr) // ? func_800C740C(?); // ? func_800C7818(?); // ? func_800C7928(?); // ? func_800C7948(?); // ? func_800C7974(?); // ? func_800C7C14(?); // ? func_800C7DD0(?); void func_800C7E08(Input*, u32); //void PadMgr_Init(PadMgr* padmgr, OSMesg mesg, UNK_TYPE arg2, OSId id, OSPri priority, void* stack); // ? func_800C82A0(?); // ? func_800C84E4(?); // ? func_800C8534(?); // ? func_800C87CC(?); // ? func_800C87F0(?); // ? func_800C8910(?); // ? func_800C89D4(?); // ? func_800C8A94(?); // ? func_800C8BC4(?); // ? func_800C8C40(?); // ? func_800C8CB8(?); // ? func_800C8EDC(?); // ? func_800C9018(?); // ? func_800C91BC(?); // ? func_800C94B4(?); // ? func_800C95F8(?); void func_800C9644(u32 a0); // ? func_800C9874(?); // ? func_800C9940(?); // ? func_800C9998(?); // ? func_800C99BC(?); // ? func_800C99C4(?); // ? func_800C9E08(?); // ? func_800C9E44(?); // ? func_800CA104(?); void SysCfb_Init(s32 n64dd); u32 SysCfb_GetFbPtr(s32 idx); u32 SysCfb_GetFbEnd(); f32 func_800CA720(f32); f32 func_800CA774(f32); // ? func_800CA7D0(?); // ? func_800CA8E8(?); // ? func_800CAB94(?); // ? func_800CACAC(?); // ? func_800CAD08(?); // ? func_800CAEE8(?); // ? func_800CAF5C(?); // ? func_800CAFA0(?); // ? func_800CAFEC(?); // ? func_800CB010(?); // ? func_800CB1F8(?); // ? func_800CB338(?); // ? func_800CB55C(?); // ? func_800CB594(?); // ? func_800CB600(?); // ? func_800CB628(?); // ? func_800CB650(?); // ? func_800CB678(?); // ? func_800CB698(?); // ? func_800CB7B4(?); // ? func_800CB824(?); // ? func_800CB88C(?); // ? func_800CB934(?); // ? func_800CBAE4(?); // ? func_800CBC60(?); // ? func_800CC8B4(?); // ? func_800CC9C8(?); // ? func_800CCA04(?); // ? func_800CCA3C(?); // ? func_800CCB0C(?); // ? func_800CCBE4(?); // ? func_800CCF00(?); // ? func_800CCF98(?); // ? func_800CD044(?); // ? func_800CD0F0(?); // ? func_800CD168(?); // ? func_800CD2D8(?); // ? func_800CD34C(?); // ? func_800CD668(?); // ? func_800CD6B0(?); // ? func_800CD760(?); // ? func_800CD7D8(?); // ? func_800CD95C(?); // ? func_800CD9D0(?); // ? func_800CDD18(?); // ? func_800CDD60(?); // ? func_800CDE10(?); // ? func_800CDE88(?); // ? func_800CE010(?); // ? func_800CE084(?); // ? func_800CE15C(?); // ? func_800CE25C(?); // ? func_800CE3C0(?); // ? func_800CE46C(?); // ? func_800CE4B8(?); // ? func_800CE600(?); // ? func_800CE800(?); // ? func_800CE934(?); // ? func_800CED50(?); // ? func_800CEE0C(?); // ? func_800CF7D0(?); // ? func_800CFC6C(?); // ? func_800CFC8C(?); // ? func_800CFCAC(?); // ? func_800CFD84(?); // ? func_800CFDA4(?); // ? func_800CFF14(?); // ? func_800CFF34(?); // ? func_800D0104(?); // ? func_800D0480(?); // ? func_800D04F0(?); // ? func_800D0560(?); // ? func_800D05D0(?); // ? func_800D05DC(?); // ? func_800D05F0(?); s16 atan2s(f32 x, f32 y); f32 atan2f(f32 x, f32 y); void Matrix_Init(GameState* gameState); void Matrix_Push(void); void Matrix_Pull(void); void Matrix_Get(MtxF* dest); void Matrix_Put(MtxF* src); void Matrix_Mult(MtxF* mf, u8 mode); void Matrix_Translate(f32 x, f32 y, f32 z, u8 mode); void Matrix_Scale(f32 x, f32 y, f32 z, u8 mode); void Matrix_RotateX(f32 x, u8 mode); void Matrix_RotateY(f32 y, u8 mode); void Matrix_RotateZ(f32 z, u8 mode); void Matrix_RotateXYZ(s16 x, s16 y, s16 z, u8 mode); void func_800D1340(Vec3f* arg0, Vec3s* arg1); void func_800D1694(f32 x, f32 y, f32 z, Vec3s* vec); Mtx* Matrix_MtxFToMtx(MtxF* src, Mtx* dest); Mtx* Matrix_ToMtx(Mtx* dest, char* file, s32 line); Mtx* Matrix_NewMtx(GraphicsContext* gfxCtx, char* file, s32 line); Mtx* Matrix_MtxFToNewMtx(MtxF* src, GraphicsContext* gfxCtx); void Matrix_MultVec3f(Vec3f* src, Vec3f* dest); void Matrix_MtxFCopy(MtxF* dest, MtxF* src); void Matrix_MtxToMtxF(Mtx* src, MtxF* dest); void Matrix_MultVec3fExt(Vec3f* src, Vec3f* dest, MtxF* mf); void Matrix_Reverse(MtxF* mf); void func_800D1FD4(MtxF* mf); void func_800D20CC(MtxF* mf, Vec3s* vec, s32 flag); void func_800D2264(MtxF* mf, Vec3s* vec, s32 flag); void func_800D23FC(f32 f, Vec3f* vec, u8 mode); MtxF* Matrix_CheckFloats(MtxF* mf, char* file, s32 line); void func_800D2CEC(Mtx* mtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6); // ? SysUcode_GetUCodeBoot(?); // ? SysUcode_GetUcodeBootSize(?); // ? SysUcode_GetUcode(?); // ? SysUcode_GetUcodeData(?); // ? func_800D2E30(?); // ? func_800D3140(?); // ? func_800D3140(?); // ? func_800D31F0(?); // ? func_800D3210(?); void IrqMgr_AddClient(IrqMgr* this, IrqMgrClient* c, OSMesgQueue* msgQ); void IrqMgr_RemoveClient(IrqMgr* this, IrqMgrClient* c); void IrqMgr_SendMesgForClient(IrqMgr* this, OSMesg msg); void IrqMgr_JamMesgForClient(IrqMgr* this, OSMesg msg); void IrqMgr_HandlePreNMI(IrqMgr *this); void IrqMgr_CheckStack(); void IrqMgr_HandlePRENMI450(IrqMgr* this); void IrqMgr_HandlePRENMI480(IrqMgr* this); void IrqMgr_HandlePRENMI500(IrqMgr* this); void IrqMgr_HandleRetrace(IrqMgr* this); void IrqMgr_ThreadEntry(void* arg0); void IrqMgr_Create(IrqMgr* this, void* stack, OSPri pri, u8 retraceCount); void DebugArena_CheckPointer(void* ptr, u32 size, const char* name, const char* action); void* DebugArena_Malloc(u32 size); void* DebugArena_MallocDebug(u32 size, const char* file, s32 line); void* DebugArena_MallocR(u32 size); void* DebugArena_MallocRDebug(u32 size, const char* file, s32 line); void* DebugArena_Realloc(void* ptr, u32 newSize); void* DebugArena_ReallocDebug(void* ptr, u32 newSize, const char* file, s32 line); void DebugArena_Free(void* ptr); void DebugArena_FreeDebug(void* ptr, const char* file, s32 line); void* DebugArena_Calloc(u32 num, u32 size); void DebugArena_Display(); void DebugArena_GetSizes(u32* outMaxFree, u32* outFree, u32* outAlloc); void DebugArena_Check(); void DebugArena_Init(void* start, u32 size); void DebugArena_Cleanup(); u8 DebugArena_IsInitalized(); void Fault_SleepImpl(u32); void Fault_ClientProcessThread(FaultClientContext*); void Fault_ProcessClientContext(FaultClientContext*); u32 Fault_ProcessClient(u32, u32, u32); void Fault_AddClient(FaultClient*, void*, void*, void*); void Fault_RemoveClient(FaultClient*); void Fault_AddAddrConvClient(FaultAddrConvClient*, void*, void*); void Fault_RemoveAddrConvClient(FaultAddrConvClient*); u32 Fault_ConvertAddress(FaultAddrConvClient*); void Fault_Sleep(u32); void Fault_PadCallback(Input*); void Fault_UpdatePadImpl(); u32 Fault_WaitForInputImpl(); void Fault_WaitForInput(); void Fault_DrawRec(s32, s32, s32, s32, u16); void Fault_FillScreenBlack(); void Fault_FillScreenRed(); void Fault_DrawCornerRec(u16); void Fault_PrintFReg(s32, f32*); void Fault_LogFReg(s32, f32*); void Fault_PrintFPCR(u32); void Fault_LogFPCR(u32); void Fault_PrintThreadContext(OSThread*); void Fault_LogThreadContext(OSThread*); OSThread* Fault_FindFaultedThread(); void Fault_Wait5Seconds(); void Fault_WaitForButtonCombo(); void Fault_DrawMemDumpPage(const char*, u32*, u32); void Fault_DrawMemDump(u32, u32, u32, u32); // ? func_800D59F8(?); void Fault_DrawStackTrace(OSThread*, s32, s32, u32); void Fault_LogStackTrace(OSThread*, u32); void Fault_ResumeThread(OSThread*); void Fault_CommitFB(); void Fault_ProcessClients(); void Fault_UpdatePad(); void Fault_ThreadEntry(void*); void Fault_SetFB(void*, u16, u16); void Fault_Start(void); void Fault_HangupFaultClient(const char*, const char*); void Fault_AddHungupAndCrashImpl(const char*, const char*); void Fault_AddHungupAndCrash(const char*, u32); void FaultDrawer_SetOsSyncPrintfEnabled(u32); void FaultDrawer_DrawRecImpl(s32, s32, s32, s32, u16); void FaultDrawer_DrawChar(char); s32 FaultDrawer_ColorToPrintColor(u16); void FaultDrawer_UpdatePrintColor(); void FaultDrawer_SetForeColor(u16); void FaultDrawer_SetBackColor(u16); void FaultDrawer_SetFontColor(u16); void FaultDrawer_SetCharPad(s8, s8); void FaultDrawer_SetCursor(s32, s32); void FaultDrawer_FillScreen(); u32 FaultDrawer_FormatStringFunc(u32, const char*, s32); void FaultDrawer_VPrintf(const char*, char*); void FaultDrawer_Printf(const char*, ...); void FaultDrawer_DrawText(s32, s32, const char*, ...); void FaultDrawer_SetDrawerFB(void*, u16, u16); void FaultDrawer_SetInputCallback(void(*)()); void FaultDrawer_SetDefault(); // ? func_800D7CD0(?); // ? func_800D7D04(?); // ? func_800D7EA4(?); // ? func_800D7F5C(?); // ? func_800D7FC4(?); // ? func_800D7FD0(?); // ? func_800D805C(?); // ? func_800D8124(?); // ? func_800D82A0(?); // ? func_800D8400(?); // ? func_800DAC80(?); // ? func_800DAC90(?); // ? func_800DACC0(?); // ? func_800DB03C(?); // ? func_800DB0C4(?); // ? func_800DB2C0(?); // ? func_800DB330(?); // ? func_800DB3D8(?); // ? func_800DB480(?); // ? func_800DB4E4(?); // ? func_800DB680(?); // ? func_800DB828(?); // ? func_800DBA40(?); // ? func_800DBAE8(?); // ? func_800DBB9C(?); // ? func_800DBBD4(?); // ? func_800DBC20(?); // ? func_800DBC64(?); // ? func_800DBCB0(?); // ? func_800DBCD4(?); // ? func_800DBD10(?); // ? func_800DBD38(?); // ? func_800DBD60(?); // ? func_800DBD94(?); // ? func_800DBDB0(?); // ? func_800DBDE4(?); // ? func_800DBE38(?); // ? func_800DBE74(?); // ? func_800DBE98(?); // ? func_800DBEB0(?); // ? func_800DBF5C(?); // ? func_800DC008(?); // ? func_800DC074(?); // ? func_800DC0E0(?); // ? func_800DC124(?); // ? func_800DC164(?); // ? func_800DC1D8(?); // ? func_800DC2DC(?); // ? func_800DC384(?); // ? func_800DC910(?); // ? func_800DD62C(?); // ? func_800DD6CC(?); // ? func_800DD9F4(?); // ? func_800DDB64(?); // ? func_800DDE20(?); // ? func_800DDE3C(?); // ? func_800DDF80(?); // ? func_800DE048(?); // ? func_800DE1B4(?); // ? func_800DE238(?); // ? func_800DE258(?); // ? func_800DE2B0(?); // ? func_800DE308(?); // ? func_800DE344(?); // ? func_800DE380(?); // ? func_800DE3DC(?); // ? func_800DE434(?); // ? func_800DE45C(?); // ? func_800DE470(?); // ? func_800DE4B0(?); // ? func_800DE5F0(?); // ? func_800DE650(?); // ? func_800DE6D4(?); // ? func_800DE758(?); // ? func_800DE81C(?); // ? func_800DE8E0(?); // ? func_800DF074(?); // ? func_800DF0CC(?); // ? func_800DF5DC(?); // ? func_800DF630(?); // ? func_800DF688(?); // ? func_800DF7BC(?); // ? func_800DF7C4(?); // ? func_800DF888(?); // ? func_800DF8F4(?); // ? func_800DFBF8(?); // ? func_800E04E8(?); // ? func_800E0540(?); // ? func_800E05C4(?); // ? func_800E0634(?); // ? func_800E06CC(?); // ? func_800E0964(?); // ? func_800E0AD8(?); // ? func_800E0BB4(?); // ? func_800E0BF8(?); // ? func_800E0C80(?); // ? func_800E0CBC(?); // ? func_800E0E0C(?); // ? func_800E0E6C(?); // ? func_800E0E90(?); // ? func_800E0EB4(?); // ? func_800E1148(?); // ? func_800E11F0(?); // ? func_800E12DC(?); // ? func_800E1618(?); // ? func_800E18B0(?); // ? func_800E1928(?); // ? func_800E1A18(?); // ? func_800E1A48(?); // ? func_800E1A78(?); // ? func_800E1AD8(?); // ? func_800E1B08(?); // ? func_800E1B68(?); // ? func_800E1C18(?); // ? func_800E1C78(?); // ? func_800E1D64(?); // ? func_800E1E34(?); // ? func_800E1E6C(?); // ? func_800E1EB0(?); // ? func_800E1EF4(?); // ? func_800E1F38(?); // ? func_800E1F7C(?); // ? func_800E202C(?); // ? func_800E20D4(?); // ? func_800E2124(?); // ? func_800E217C(?); // ? func_800E22C4(?); // ? func_800E2318(?); // ? func_800E2338(?); // ? func_800E2454(?); // ? func_800E2558(?); // ? func_800E2768(?); // ? func_800E27A4(?); // ? func_800E27F8(?); // ? func_800E283C(?); // ? func_800E2AA8(?); // ? func_800E2BCC(?); // ? func_800E2BE0(?); // ? func_800E2CE0(?); // ? func_800E2FEC(?); // ? func_800E301C(?); // ? func_800E3034(?); // ? func_800E3094(?); // ? func_800E3400(?); // ? func_800E3414(?); // ? func_800E35E0(?); // ? func_800E3678(?); // ? func_800E36EC(?); // ? func_800E3874(?); // ? func_800E38F8(?); // ? func_800E390C(?); // ? func_800E3A14(?); // ? func_800E3A44(?); // ? func_800E3AC8(?); // ? func_800E3BEC(?); // ? func_800E3D10(?); // ? func_800E3D1C(?); // ? func_800E3E58(?); // ? func_800E3FB4(?); // ? func_800E4044(?); // ? func_800E4058(?); // ? func_800E4198(?); // ? func_800E4590(?); // ? func_800E4744(?); // ? func_800E48C0(?); // ? func_800E4918(?); // ? func_800E4D94(?); // ? func_800E4EEC(?); // ? func_800E4F58(?); // ? func_800E4FB0(?); // ? func_800E4FE0(?); // ? func_800E5000(?); // ? func_800E5584(?); // ? func_800E5958(?); // ? func_800E59AC(?); // ? func_800E59F4(?); // ? func_800E5A8C(?); // ? func_800E5AD8(?); // ? func_800E5AFC(?); // ? func_800E5B20(?); // ? func_800E5B50(?); // ? func_800E5B80(?); // ? func_800E5C10(?); // ? func_800E5C28(?); // ? func_800E5D6C(?); // ? func_800E5E20(?); // ? func_800E5E84(?); // ? func_800E5EDC(?); // ? func_800E5F34(?); // ? func_800E5F88(?); // ? func_800E6024(?); // ? func_800E6128(?); // ? func_800E6300(?); // ? func_800E6680(?); // ? func_800E66C0(?); // ? func_800E67C0(?); // ? func_800E6818(?); // ? func_800E6840(?); // ? func_800E6880(?); // ? func_800E68C0(?); // ? func_800E6940(?); // ? func_800E6DB8(?); // ? func_800E6E68(?); // ? func_800E6F28(?); // ? func_800E6F8C(?); // ? func_800E745C(?); // ? func_800E7498(?); // ? func_800E756C(?); // ? func_800E7650(?); // ? func_800E7744(?); // ? func_800E7888(?); // ? func_800E7B60(?); // ? func_800E7B80(?); // ? func_800E7BA0(?); // ? func_800E7CA4(?); // ? func_800E7CFC(?); // ? func_800E7D0C(?); // ? func_800E7D5C(?); // ? func_800E7E00(?); // ? func_800E7F60(?); // ? func_800E809C(?); // ? func_800E80DC(?); // ? func_800E8108(?); // ? func_800E8188(?); // ? func_800E82C0(?); // ? func_800E82F4(?); // ? func_800E8320(?); // ? func_800E836C(?); // ? func_800E83BC(?); // ? func_800E84B4(?); // ? func_800E8788(?); // ? func_800E88C0(?); // ? func_800E8A88(?); // ? func_800E8BD4(?); // ? func_800E8C30(?); // ? func_800E8C68(?); // ? func_800E8EA4(?); // ? func_800E8F00(?); // ? func_800E8FB8(?); // ? func_800E8FE4(?); // ? func_800E9004(?); // ? func_800E9340(?); // ? func_800E93A8(?); // ? func_800E9584(?); // ? func_800E96D8(?); // ? func_800E97FC(?); // ? func_800E9878(?); // ? func_800E98C8(?); // ? func_800E9934(?); // ? func_800E9A2C(?); // ? func_800E9AAC(?); // ? func_800E9B44(?); // ? func_800E9B6C(?); // ? func_800E9C28(?); // ? func_800E9C68(?); // ? func_800E9CA8(?); // ? func_800E9D48(?); // ? func_800E9D5C(?); // ? func_800E9D94(?); // ? func_800E9DD4(?); // ? func_800E9ED8(?); // ? func_800E9F64(?); // ? func_800EA0C0(?); // ? func_800EA440(?); // ? func_800EAAE0(?); // ? func_800EAEF4(?); // ? func_800EAF24(?); // ? func_800EAF98(?); // ? func_800EB044(?); // ? func_800EB068(?); // ? func_800EBD58(?); // ? func_800EC564(?); // ? func_800EC618(?); // ? func_800EC668(?); // ? func_800EC734(?); // ? func_800EC80C(?); // ? func_800EC8DC(?); // ? func_800ECA00(?); // ? func_800ECA60(?); // ? func_800ECAF0(?); // ? func_800ECB34(?); // ? func_800ECB7C(?); // ? func_800ECC04(?); // ? func_800ECDBC(?); // ? func_800ECDF8(?); // ? func_800ED200(?); // ? func_800ED458(?); // ? func_800ED858(?); // ? func_800ED93C(?); // ? func_800EDA3C(?); // ? func_800EDD68(?); // ? func_800EE170(?); // ? func_800EE29C(?); // ? func_800EE2D4(?); // ? func_800EE318(?); // ? func_800EE3C8(?); // ? func_800EE3D4(?); // ? func_800EE3F8(?); // ? func_800EE404(?); // ? func_800EE57C(?); // ? func_800EE5EC(?); // ? func_800EE6F4(?); // ? func_800EE824(?); // ? func_800EE930(?); // ? func_800EE97C(?); // ? func_800EE9D0(?); // ? func_800EEA50(?); // ? func_800F1BDC(?); // ? func_800F2150(?); // ? func_800F227C(?); // ? func_800F2464(?); // ? func_800F27A0(?); // ? func_800F28AC(?); // ? func_800F28B4(?); // ? func_800F29FC(?); // ? func_800F2A04(?); // ? func_800F2D6C(?); // ? func_800F2E28(?); // ? func_800F3054(?); // ? func_800F3188(?); // ? func_800F32F0(?); // ? func_800F3468(?); // ? func_800F35EC(?); // ? func_800F37B8(?); // ? func_800F3990(?); // ? func_800F3A08(?); // ? func_800F3ED4(?); // ? func_800F3F3C(?); // ? func_800F3F84(?); // ? func_800F4010(?); void func_800F436C(UNK_TYPE arg0, s16 arg1, f32 arg2); // ? func_800F4414(?); // ? func_800F4524(?); // ? func_800F4784(?); // ? func_800F491C(?); // ? func_800F4A70(?); void func_800F4C58(Vec3f*, u16, u8); // ? func_800F50CC(?); // ? func_800F510C(?); // ? func_800F5510(?); // ? func_800F5550(?); // ? func_800F56A8(?); void func_800F595C(u16); void func_800F59E8(u16); // ? func_800F5ACC(?); // ? func_800F5C64(?); // ? func_800F5CF8(?); // ? func_800F5E18(?); // ? func_800F5E90(?); // ? func_800F64E0(?); // ? func_800F66C0(?); // ? func_800F6700(?); // ? func_800F67A0(?); // ? func_800F6828(?); void func_800F68BC(s8); // ? func_800F68D4(?); // ? func_800F691C(?); void func_800F6964(u16); // ? func_800F6B68(?); // ? func_800F6BB8(?); // ? func_800F6C14(?); // ? func_800F6C34(?); // ? func_800F6D58(?); // ? func_800F6E7C(?); // ? func_800F6FB4(?); // ? func_800F70F8(?); // ? func_800F711C(?); // ? func_800F7170(?); // ? func_800F71BC(?); void func_800F7260(u16); // ? func_800F72B8(?); // ? func_800F731C(?); void Audio_PlaySoundGeneral(u16 sfxId, Vec3f* a1, u32 a2, u32* a3, u32* a4, u32* a5); // ? func_800F74E0(?); // ? func_800F7680(?); // ? func_800F7B54(?); // ? func_800F7CEC(?); // ? func_800F8480(?); // ? func_800F87A0(?); // ? func_800F8884(?); // ? func_800F89E8(?); void func_800F8D04(u32 a0); // ? func_800F8D04(?); // ? func_800F8E3C(?); // ? func_800F8F34(?); // ? func_800F8F88(?); // ? func_800F8FF4(?); // ? func_800F905C(?); // ? func_800F9280(?); // ? func_800F9474(?); // ? func_800F94FC(?); void Audio_SetBGM(u32 bgmID); // ? func_800FA034(?); u16 func_800FA0B4(s32 a0); // ? func_800FA11C(?); // ? func_800FA240(?); // ? func_800FA3DC(?); // ? func_800FAD34(?); // ? func_800FADF8(?); // ? func_800FAEB4(?); void GfxPrint_InitDlist(GfxPrint*); void GfxPrint_SetColor(GfxPrint*, u32, u32, u32, u32); void GfxPrint_SetPosPx(GfxPrint*, s32, s32); void GfxPrint_SetPos(GfxPrint*, s32, s32); void GfxPrint_SetBasePosPx(GfxPrint*, s32, s32); void GfxPrint_PrintCharImpl(GfxPrint*, u8); void GfxPrint_PrintChar(GfxPrint*, u8); void GfxPrint_PrintStringWithSize(GfxPrint*, const void*, size_t, size_t); GfxPrint* GfxPrint_Callback(GfxPrint*, const char*, size_t); void GfxPrint_Ctor(GfxPrint*); void GfxPrint_Dtor(GfxPrint*); void GfxPrint_Open(GfxPrint*, Gfx*); Gfx* GfxPrint_Close(GfxPrint*); void GfxPrint_VPrintf(GfxPrint*, const char*, va_list); void GfxPrint_Printf(GfxPrint*, const char*, ...); void func_800FBCE0(); void func_800FBFD8(); void *Overlay_AllocateAndLoad(u32 vRomStart, u32 vRomEnd, void *vRamStart, void *vRamEnd); // ? func_800FC258(?); void Overlay_DoRelocation(void *allocatedVRamAddress, OverlayRelocationSection *overlayInfo, void *vRamAddress); s32 Overlay_Load(u32 vRomStart, u32 vRomEnd, void *vRamStart, void *vRamEnd, void *allocatedVRamAddress); // ? func_800FC800(?); // ? func_800FC83C(?); // ? func_800FCAB4(?); void SystemHeap_Init(void *start, u32 size); // ? func_800FCC00(?); // ? func_800FCC08(?); // ? func_800FCC10(?); // ? func_800FCC1C(?); // ? func_800FCC24(?); // ? func_800FCC6C(?); // ? func_800FCD40(?); f32 Math_tanf(f32 x); f32 Math_nearbyintf(f32 x); f32 Math_atanf_taylor_q(f32 x); f32 Math_atanf_taylor(f32 x); f32 Math_atanf_cfrac(f32 x); f32 Math_atanf(f32 x); f32 Math_atan2f(f32 y, f32 x); f32 Math_asinf(f32 x); f32 Math_acosf(f32 x); f32 ceilf(f32 x); f32 truncf(f32 x); f32 roundf(f32 x); f32 nearbyintf(f32 x); void SystemArena_CheckPointer(void* ptr, u32 size, const char* name, const char* action); void* SystemArena_Malloc(u32 size); void* SystemArena_MallocDebug(u32 size, const char* file, s32 line); void* SystemArena_MallocR(u32 size); void* SystemArena_MallocRDebug(u32 size, const char* file, s32 line); void* SystemArena_Realloc(void* ptr, u32 newSize); void* SystemArena_ReallocDebug(void* ptr, u32 newSize, const char* file, s32 line); void SystemArena_Free(void* ptr); void SystemArena_FreeDebug(void* ptr, const char* file, s32 line); void* SystemArena_Calloc(u32 num, u32 size); void SystemArena_Display(); void SystemArena_GetSizes(u32* outMaxFree, u32* outFree, u32* outAlloc); void SystemArena_Check(); void SystemArena_Init(void* start, u32 size); void SystemArena_Cleanup(); u8 SystemArena_IsInitalized(); // ? func_800FD9A0(?); f32 Math_Rand_ZeroOne(); bool ArenaImpl_GetFillAllocBlock(Arena* arena); bool ArenaImpl_GetFillFreeBlock(Arena* arena); bool ArenaImpl_GetCheckFreeBlock(Arena* arena); void ArenaImpl_SetFillAllocBlock(Arena* arena); void ArenaImpl_SetFillFreeBlock(Arena* arena); void ArenaImpl_SetCheckFreeBlock(Arena* arena); void ArenaImpl_UnsetFillAllocBlock(Arena* arena); void ArenaImpl_UnsetFillFreeBlock(Arena* arena); void ArenaImpl_UnsetCheckFreeBlock(Arena* arena); void ArenaImpl_SetDebugInfo(ArenaNode* node, const char* file, s32 line, Arena* arena); void ArenaImpl_LockInit(Arena* arena); void ArenaImpl_Lock(Arena* arena); void ArenaImpl_Unlock(Arena* arena); ArenaNode* ArenaImpl_GetNextBlock(ArenaNode* node); ArenaNode* ArenaImpl_GetPrevBlock(ArenaNode* node); ArenaNode* ArenaImpl_GetLastBlock(Arena* arena); void __osMallocInit(Arena* arena, void* start, u32 size); void __osMallocAddBlock(Arena* arena, void* start, s32 size); void ArenaImpl_RemoveAllBlocks(Arena* arena); void __osMallocCleanup(Arena* arena); u8 __osMallocIsInitalized(Arena* arena); void __osMalloc_FreeBlockTest(Arena* arena, ArenaNode* node); void* __osMalloc_NoLockDebug(Arena* arena, u32 size, const char* file, s32 line); void* __osMallocDebug(Arena* arena, u32 size, const char* file, s32 line); void* __osMallocRDebug(Arena *arena, u32 size, const char *file, s32 line); void* __osMalloc_NoLock(Arena *arena, u32 size); void* __osMalloc(Arena* arena, u32 size); void* __osMallocR(Arena *arena, u32 size); void __osFree_NoLock(Arena* arena, void* ptr); void __osFree(Arena* arena, void* ptr); void __osFree_NoLockDebug(Arena* arena, void* ptr, const char* file, s32 line); void __osFreeDebug(Arena* arena, void* ptr, const char* file, s32 line); void* __osRealloc(Arena* arena, void* ptr, u32 newSize); void* __osReallocDebug(Arena* arena, void* ptr, u32 newSize, const char* file, s32 line); void ArenaImpl_GetSizes(Arena* arena, u32* outMaxFree, u32* outFree, u32* outAlloc); void __osDisplayArena(Arena* arena); void ArenaImpl_FaultClient(Arena* arena); u32 __osCheckArena(Arena* arena); u8 func_800FF334(Arena* arena); // ? func_800FF3A0(?); // ? func_800FF4AC(?); // ? func_800FF540(?); // ? func_800FF5A8(?); // ? func_800FF62C(?); // ? func_800FF698(?); // ? func_800FF740(?); // ? func_800FF7FC(?); // ? func_800FF8D4(?); // ? func_800FFA50(?); // ? func_800FFC78(?); // ? func_800FFE14(?); // ? func_800FFF50(?); // ? func_80100040(?); // ? func_801001E0(?); f32 sinf(f32); s16 sins(u16); // ? func_801004C0(?); // ? func_801005CC(?); // ? func_80100734(?); // s32 osSetVibration(unk_controller_t *arg0, u32 vibrate); // void osSetUpMempakWrite(s32 ctrlridx, pif_data_buffer_t* buf); // s32 osProbeVibrationPack(OSMesgQueue* ctrlrqueue, unk_controller_t *unk_controller, u32 ctrlridx); // void __osSiCreateAccessQueue(); // void __osSiGetAccess(); // void __osSiRelAccess(); // s32 osContInit(OSMesgQueue *mq, u8 *ctl_present_bitfield, OSContStatus *status); // void __osContGetInitData(u8 *ctl_present_bitfield, OSContStatus *status); // void __osPackRequestData(u8 command); // s32 osContStartReadData(OSMesgQueue *mq); // void osContGetReadData(OSContPad *pad); // void __osPackReadData(); // ? guPerspectiveF(?); // ? guPerspective(?); // ? func_80101360(?); // s32 __osSiRawStartDma(s32 dir, void *addr); // ? osSpTaskYield(?); // ? func_801014C0(?); // ? func_80101594(?); // ? func_80101910(?); // ? func_801019E0(?); // ? func_80101AA4(?); // ? func_80101B40(?); // ? func_80101B90(?); // ? func_80101E34(?); // ? func_80101EB0(?); // ? func_801021E4(?); // ? osStopTimer(?); // ? func_80102420(?); // ? func_80102494(?); // ? func_80102590(?); // ? func_801028E0(?); // ? func_80102A44(?); // ? func_80102BF0(?); // ? func_80102CC4(?); // ? func_80102FA0(?); // ? func_80103010(?); // ? func_801031F0(?); // ? func_80103210(?); // ? func_8010328C(?); // ? func_801032B0(?); void func_80103A70(UNK_PTR, Gfx*, Hilite*, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, s32, s32); // ? func_80103B30(?); // ? func_80103B60(?); // ? func_80103BB0(?); void func_80103D58(Mtx*, f32, f32, f32, f32, f32, f32, f32); // ? func_80103DC0(?); // ? func_80103E20(?); // ? func_80103FA4(?); // ? func_80103FF0(?); // ? func_80104140(?); // ? func_80104160(?); u32 osDpGetStatus(void); void osDpSetStatus(u32 status); // ? func_801041E0(?); // ? func_801043B8(?); // ? func_80104450(?); // ? func_801045A4(?); f32 cosf(f32); s16 coss(u16); void osViSetEvent(OSMesgQueue* mq, OSMesg m, u32 retraceCount); // ? func_8010499C(?); // ? func_80104A50(?); // ? func_80104B00(?); // ? func_80104C80(?); void func_80104D00(u8 a0); // ? func_80104D60(?); // ? func_80104F40(?); // ? func_80105148(?); // ? func_80105250(?); // ? func_80105788(?); // ? func_80105A60(?); // ? osAiGetLength(?); // ? func_80105C20(?); // ? func_80105CF0(?); // ? func_80105F40(?); // ? func_80106170(?); // ? func_80106240(?); u32 __osSpGetStatus(); void __osSpSetStatus(u32 status); // ? osWritebackDCacheAll(?); OSThread* __osGetCurrFaultedThread(); // ? func_801064E0(?); // ? __d_to_ll(?); // ? __f_to_ll(?); // ? __d_to_ull(?); // ? __f_to_ull(?); // ? __ll_to_d(?); // ? __ll_to_f(?); // ? __ull_to_d(?); // ? __ull_to_f(?); // ? func_80106760(?); // ? func_801067A0(?); f32 absf(f32); // ? func_80106860(?); // ? func_801068B0(?); // ? func_801069B0(?); u8 func_80106BC8(GlobalContext* globalCtx); // ? func_80106C88(?); // ? func_80106CCC(?); // ? func_80106D40(?); // ? func_80106F1C(?); // ? func_80107244(?); // ? func_80107448(?); // ? func_80107628(?); // ? func_801076CC(?); // ? func_80107980(?); // ? func_801080B4(?); // ? func_801083F8(?); // ? func_801086B0(?); // ? func_80109968(?); // ? func_80109B3C(?); // ? func_8010B0C0(?); // ? func_8010B680(?); void func_8010B720(GlobalContext* globalCtx, u16 textId); // ? func_8010B820(?); // ? func_8010BD58(?); u8 func_8010BDBC(MessageContext* msgCtx); // ? func_8010BED8(?); // ? func_8010C358(?); // ? func_8010C39C(?); // ? func_8010F2CC(?); // ? func_8010F494(?); // ? func_8010F58C(?); // ? func_8010F6F0(?); void func_8011040C(void); // ? func_80110450(?); // ? func_80110460(?); // ? func_801104C8(?); void func_80110990(GlobalContext* globalCtx); void func_801109B0(GlobalContext* globalCtx); void func_80110F68(GlobalContext* globalCtx); void func_80112098(GlobalContext* globalCtx); void Title_Init(TitleContext*); void Opening_Init(OpeningContext* this); #endif