From f643499462f8cf908ddf1ee77b5625ebaff2cf25 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sun, 14 Apr 2024 14:51:32 -0700 Subject: [PATCH 01/29] Match retail BSS ordering (#1927) * Match retail BSS ordering * Revert moving some global variables to headers * Adjust block numbers after header changes * Fix debug build * Overlay bss ordering * Fix BSS ordering after header changes * gc-eu-mq OK * Implement preprocessor for #pragma increment_block_number * Transfer usage comment from reencode.sh * Use temporary directory instead of temporary file * Move ColChkMassType back --- Makefile | 9 +-- data/fault.bss.s | 27 -------- data/fault_drawer.bss.s | 19 ------ include/padmgr.h | 2 - include/variables.h | 20 +++++- spec | 4 -- src/boot/idle.c | 11 +++- src/code/fault.c | 19 +++--- src/code/fault_drawer.c | 7 -- src/code/sys_math3d.c | 4 ++ src/code/z_actor.c | 7 +- src/code/z_camera.c | 6 ++ src/code/z_collision_check.c | 26 ++++++-- src/code/z_common_data.c | 5 ++ src/code/z_kaleido_scope_call.c | 5 ++ src/code/z_kankyo.c | 14 +++- src/code/z_play.c | 24 +++---- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 10 +++ src/overlays/actors/ovl_En_Xc/z_en_xc.c | 19 ++++-- src/overlays/actors/ovl_Fishing/z_fishing.c | 3 + .../actors/ovl_player_actor/z_player.c | 16 ++++- tools/disasm/gc-eu-mq/variables.txt | 6 +- tools/ido_block_numbers.py | 34 ++-------- tools/preprocess.py | 66 +++++++++++++++++++ tools/reencode.sh | 26 -------- 25 files changed, 224 insertions(+), 165 deletions(-) delete mode 100644 data/fault.bss.s delete mode 100644 data/fault_drawer.bss.s create mode 100755 tools/preprocess.py delete mode 100755 tools/reencode.sh diff --git a/Makefile b/Makefile index 16e2d0739..f1e7e75f2 100644 --- a/Makefile +++ b/Makefile @@ -53,9 +53,6 @@ endif # Version-specific settings ifeq ($(VERSION),gc-eu-mq) DEBUG := 0 - CFLAGS += -DNON_MATCHING - CPPFLAGS += -DNON_MATCHING - COMPARE := 0 else ifeq ($(VERSION),gc-eu-mq-dbg) DEBUG := 1 else @@ -312,9 +309,9 @@ $(BUILD_DIR)/src/code/jpegdecoder.o: CC := $(CC_OLD) # For using asm_processor on some files: #$(BUILD_DIR)/.../%.o: CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- -ifeq ($(PERMUTER),) # permuter + reencode.sh misbehaves, permuter doesn't care about encoding ((ro)data diffs) so just don't use it in that case -# Handle encoding (UTF-8 -> EUC-JP) -$(BUILD_DIR)/%.o: CC := tools/reencode.sh $(CC) +ifeq ($(PERMUTER),) # permuter + preprocess.py misbehaves, permuter doesn't care about rodata diffs or bss ordering so just don't use it in that case +# Handle encoding (UTF-8 -> EUC-JP) and custom pragmas +$(BUILD_DIR)/src/%.o: CC := $(PYTHON) tools/preprocess.py $(CC) endif else diff --git a/data/fault.bss.s b/data/fault.bss.s deleted file mode 100644 index d8d76a051..000000000 --- a/data/fault.bss.s +++ /dev/null @@ -1,27 +0,0 @@ -.include "macro.inc" - -# assembler directives -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches -.set gp=64 # allow use of 64-bit general purpose registers - -.section .bss - -# Note: This file is only included in the MATCHING build, the data is imported for non-matching - -.balign 16 - -glabel sFaultInstance - .space 4 - -glabel sFaultAwaitingInput - .space 4 - -glabel sFaultStack - .space 0x600 - -glabel sFaultThreadInfo - .space 0x20 - -glabel gFaultMgr - .space 0x850 diff --git a/data/fault_drawer.bss.s b/data/fault_drawer.bss.s deleted file mode 100644 index 89a29d8bb..000000000 --- a/data/fault_drawer.bss.s +++ /dev/null @@ -1,19 +0,0 @@ -.include "macro.inc" - -# assembler directives -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches -.set gp=64 # allow use of 64-bit general purpose registers - -.section .bss - -# Note: This file is only included in the MATCHING build, the data is imported for non-matching - -.balign 16 - -glabel sFaultDrawer - .space 0x3C - .space 0x04 # padding - -glabel D_8016B6C0 - .space 0x20 diff --git a/include/padmgr.h b/include/padmgr.h index 65705949e..ba86315c6 100644 --- a/include/padmgr.h +++ b/include/padmgr.h @@ -44,8 +44,6 @@ typedef struct PadMgr { /* 0x0464 */ void* retraceCallbackArg; } PadMgr; // size = 0x468 -extern PadMgr gPadMgr; - // Initialization void PadMgr_Init(PadMgr* padMgr, OSMesgQueue* serialEventQueue, IrqMgr* irqMgr, OSId id, OSPri priority, void* stack); diff --git a/include/variables.h b/include/variables.h index 1c7e4ebc8..a67d99246 100644 --- a/include/variables.h +++ b/include/variables.h @@ -174,25 +174,38 @@ extern u8 gSampleBankTable[]; extern SaveContext gSaveContext; extern RegEditor* gRegEditor; +extern u8 gUseCutsceneCam; +extern u16 D_8015FCCC; +extern char D_8015FCD0[20]; +extern u8 D_8015FCE4; extern u16 gCamAtSplinePointsAppliedFrame; extern u16 gCamEyePointAppliedFrame; extern u16 gCamAtPointAppliedFrame; -extern u8 gUseCutsceneCam; +extern LightningStrike gLightningStrike; +// TODO: These variables are here for BSS ordering but ideally they should not +// be extern. This could be fixed by putting more stuff (e.g. struct definitions) +// between gLightningStrike and gCustomLensFlareOn. +extern s16 sLightningFlashAlpha; +extern s16 sSunDepthTestX; +extern s16 sSunDepthTestY; extern u8 gCustomLensFlareOn; extern Vec3f gCustomLensFlarePos; extern s16 gLensFlareScale; extern f32 gLensFlareColorIntensity; extern s16 gLensFlareGlareStrength; -extern LightningStrike gLightningStrike; extern MapData* gMapData; extern f32 gBossMarkScale; +extern u32 D_8016139C; extern PauseMapMarksData* gLoadedPauseMarkDataTable; +extern TransitionTile gTransitionTile; extern s32 gTransitionTileState; +extern VisMono gPlayVisMono; extern Color_RGBA8_u32 gVisMonoColor; extern PreNmiBuff* gAppNmiBufferPtr; -extern Scheduler gScheduler; extern uintptr_t gSegments[NUM_SEGMENTS]; +extern Scheduler gScheduler; +extern PadMgr gPadMgr; extern volatile OSTime gAudioThreadUpdateTimeTotalPerGfxTask; extern volatile OSTime gGfxTaskSentToNextReadyMinusAudioThreadUpdateTime; extern volatile OSTime gRSPAudioTimeTotal; @@ -204,6 +217,7 @@ extern volatile OSTime gAudioThreadUpdateTimeAcc; extern volatile OSTime gRSPAudioTimeAcc; extern volatile OSTime gRSPGfxTimeAcc; extern volatile OSTime gRSPOtherTimeAcc; +extern volatile OSTime D_8016A578; extern volatile OSTime gRDPTimeAcc; extern SfxBankEntry D_8016BAD0[9]; diff --git a/spec b/spec index 287659d1b..1630ba28c 100644 --- a/spec +++ b/spec @@ -448,10 +448,6 @@ beginseg #endif include "$(BUILD_DIR)/src/code/fault.o" include "$(BUILD_DIR)/src/code/fault_drawer.o" -#ifndef NON_MATCHING - include "$(BUILD_DIR)/data/fault.bss.o" - include "$(BUILD_DIR)/data/fault_drawer.bss.o" -#endif include "$(BUILD_DIR)/src/code/kanread.o" #if OOT_DEBUG include "$(BUILD_DIR)/src/code/ucode_disas.o" diff --git a/src/boot/idle.c b/src/boot/idle.c index dec3006b0..3d62994c4 100644 --- a/src/boot/idle.c +++ b/src/boot/idle.c @@ -1,7 +1,12 @@ #include "global.h" #include "terminal.h" -OSThread gMainThread; +// For retail BSS ordering, the block number of sMainThread must be 0 or +// just above (the exact upper bound depends on the block numbers assigned to +// extern variables declared in headers). +#pragma increment_block_number 60 + +OSThread sMainThread; STACK(sMainStack, 0x900); StackEntry sMainStackInfo; OSMesg sPiMgrCmdBuff[50]; @@ -86,8 +91,8 @@ void Idle_ThreadEntry(void* arg) { osViSwapBuffer((void*)0x803DA80); //! @bug Invalid vram address (probably intended to be 0x803DA800) osCreatePiManager(OS_PRIORITY_PIMGR, &gPiMgrCmdQueue, sPiMgrCmdBuff, ARRAY_COUNT(sPiMgrCmdBuff)); StackCheck_Init(&sMainStackInfo, sMainStack, STACK_TOP(sMainStack), 0, 0x400, "main"); - osCreateThread(&gMainThread, THREAD_ID_MAIN, Main_ThreadEntry, arg, STACK_TOP(sMainStack), THREAD_PRI_MAIN_INIT); - osStartThread(&gMainThread); + osCreateThread(&sMainThread, THREAD_ID_MAIN, Main_ThreadEntry, arg, STACK_TOP(sMainStack), THREAD_PRI_MAIN_INIT); + osStartThread(&sMainThread); osSetThreadPri(NULL, OS_PRIORITY_IDLE); for (;;) {} diff --git a/src/code/fault.c b/src/code/fault.c index 8b05fb820..662c1a9f1 100644 --- a/src/code/fault.c +++ b/src/code/fault.c @@ -44,6 +44,15 @@ #include "terminal.h" #include "alloca.h" +// For retail BSS ordering, the block number of sFaultInstance must be 0 or +// just above (the exact upper bound depends on the block numbers assigned to +// extern variables declared in headers). +#if OOT_DEBUG +#pragma increment_block_number 20 +#else +#pragma increment_block_number 25 +#endif + void FaultDrawer_Init(void); void FaultDrawer_SetOsSyncPrintfEnabled(u32 enabled); void FaultDrawer_DrawRecImpl(s32 xStart, s32 yStart, s32 xEnd, s32 yEnd, u16 color); @@ -76,21 +85,11 @@ const char* sFpExceptionNames[] = { "Unimplemented operation", "Invalid operation", "Division by zero", "Overflow", "Underflow", "Inexact operation", }; -#ifndef NON_MATCHING -// TODO: match .bss (has reordering issues) -extern FaultMgr* sFaultInstance; -extern u8 sFaultAwaitingInput; -extern STACK(sFaultStack, 0x600); -extern StackEntry sFaultThreadInfo; -extern FaultMgr gFaultMgr; -#else -// Non-matching version for struct shiftability FaultMgr* sFaultInstance; u8 sFaultAwaitingInput; STACK(sFaultStack, 0x600); StackEntry sFaultThreadInfo; FaultMgr gFaultMgr; -#endif typedef struct { /* 0x00 */ s32 (*callback)(void*, void*); diff --git a/src/code/fault_drawer.c b/src/code/fault_drawer.c index 8f5fbcbe4..5c82b7a0b 100644 --- a/src/code/fault_drawer.c +++ b/src/code/fault_drawer.c @@ -99,15 +99,8 @@ FaultDrawer sFaultDrawerDefault = { NULL, }; -#ifndef NON_MATCHING -// TODO: match .bss (has reordering issues) -extern FaultDrawer sFaultDrawer; -extern char D_8016B6C0[0x20]; -#else -// Non-matching version for struct shiftability FaultDrawer sFaultDrawer; char D_8016B6C0[0x20]; -#endif void FaultDrawer_SetOsSyncPrintfEnabled(u32 enabled) { sFaultDrawer.osSyncPrintfEnabled = enabled; diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index 3e50249b1..a3b8ca2d6 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -1,6 +1,10 @@ #include "global.h" #include "terminal.h" +// For retail BSS ordering, the block number of cbf in Math3D_CylVsCylOverlapCenterDist +// must be 0. +#pragma increment_block_number 190 + s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); s32 Math3D_TriLineIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, Vec3f* linePointA, diff --git a/src/code/z_actor.c b/src/code/z_actor.c index dfa9d88dd..5e8b86aaa 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -8,6 +8,9 @@ #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "assets/objects/object_bdoor/object_bdoor.h" +// For retail BSS ordering, the block number of sCurCeilingPoly +// must be between 2 and 243 inclusive. + static CollisionPoly* sCurCeilingPoly; static s32 sCurCeilingBgId; @@ -1894,7 +1897,9 @@ s32 func_8002F9EC(PlayState* play, Actor* actor, CollisionPoly* poly, s32 bgId, return false; } -// Local data used for Farore's Wind light (stored in BSS, possibly a struct?) +#pragma increment_block_number 22 + +// Local data used for Farore's Wind light (stored in BSS) LightInfo D_8015BC00; LightNode* D_8015BC10; s32 D_8015BC14; diff --git a/src/code/z_camera.c b/src/code/z_camera.c index a54d64070..4caafe18c 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -4,6 +4,10 @@ #include "terminal.h" #include "overlays/actors/ovl_En_Horse/z_en_horse.h" +// For retail BSS ordering, the block number of D_8015BD7C +// must be between 88 and 123 inclusive. +#pragma increment_block_number 30 + s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags); s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange); s32 Camera_UpdateWater(Camera* camera); @@ -3628,6 +3632,8 @@ s32 Camera_KeepOn3(Camera* camera) { return 1; } +#pragma increment_block_number 100 + s32 Camera_KeepOn4(Camera* camera) { static Vec3f D_8015BD50; static Vec3f D_8015BD60; diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 14822cf1c..118a445d7 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -7,6 +7,10 @@ typedef void (*ColChkApplyFunc)(PlayState*, CollisionCheckContext*, Collider*); typedef void (*ColChkVsFunc)(PlayState*, CollisionCheckContext*, Collider*, Collider*); typedef s32 (*ColChkLineFunc)(PlayState*, CollisionCheckContext*, Collider*, Vec3f*, Vec3f*); +// For retail BSS ordering, the block number of sparkInit in CollisionCheck_BlueBlood +// must be between 183 and 255 inclusive. +#pragma increment_block_number 50 + #if OOT_DEBUG /** * Draws a red triangle with vertices vA, vB, and vC. @@ -2238,8 +2242,10 @@ void CollisionCheck_ATCylVsACQuad(PlayState* play, CollisionCheckContext* colChk } } +#if OOT_DEBUG static s8 sBssDummy0; static s8 sBssDummy1; +#endif void CollisionCheck_ATQuadVsACCyl(PlayState* play, CollisionCheckContext* colChkCtx, Collider* atCol, Collider* acCol) { static TriNorm tri1; @@ -2300,10 +2306,12 @@ void CollisionCheck_ATQuadVsACCyl(PlayState* play, CollisionCheckContext* colChk } } +#if OOT_DEBUG static s8 sBssDummy3; static s8 sBssDummy4; static s8 sBssDummy5; static s8 sBssDummy6; +#endif void CollisionCheck_ATTrisVsACTris(PlayState* play, CollisionCheckContext* colChkCtx, Collider* atCol, Collider* acCol) { @@ -2350,10 +2358,12 @@ void CollisionCheck_ATTrisVsACTris(PlayState* play, CollisionCheckContext* colCh } } +#if OOT_DEBUG static s8 sBssDummy7; static s8 sBssDummy8; static s8 sBssDummy9; static s8 sBssDummy10; +#endif void CollisionCheck_ATTrisVsACQuad(PlayState* play, CollisionCheckContext* colChkCtx, Collider* atCol, Collider* acCol) { @@ -2586,9 +2596,10 @@ static ColChkApplyFunc sColChkApplyFuncs[] = { */ void CollisionCheck_SetHitEffects(PlayState* play, CollisionCheckContext* colChkCtx) { Collider** acColP; + Collider* acCol; for (acColP = colChkCtx->colAC; acColP < colChkCtx->colAC + colChkCtx->colACCount; acColP++) { - Collider* acCol = *acColP; + acCol = *acColP; if (acCol != NULL && acCol->acFlags & AC_ON) { if (acCol->actor != NULL && acCol->actor->update == NULL) { @@ -2635,9 +2646,10 @@ static ColChkVsFunc sACVsFuncs[COLSHAPE_MAX][COLSHAPE_MAX] = { */ void CollisionCheck_AC(PlayState* play, CollisionCheckContext* colChkCtx, Collider* atCol) { Collider** acColP; + Collider* acCol; for (acColP = colChkCtx->colAC; acColP < colChkCtx->colAC + colChkCtx->colACCount; acColP++) { - Collider* acCol = *acColP; + acCol = *acColP; if (acCol != NULL && acCol->acFlags & AC_ON) { if (acCol->actor != NULL && acCol->actor->update == NULL) { @@ -2661,12 +2673,13 @@ void CollisionCheck_AC(PlayState* play, CollisionCheckContext* colChkCtx, Collid */ void CollisionCheck_AT(PlayState* play, CollisionCheckContext* colChkCtx) { Collider** atColP; + Collider* atCol; if (colChkCtx->colATCount == 0 || colChkCtx->colACCount == 0) { return; } for (atColP = colChkCtx->colAT; atColP < colChkCtx->colAT + colChkCtx->colATCount; atColP++) { - Collider* atCol = *atColP; + atCol = *atColP; if (atCol != NULL && atCol->atFlags & AT_ON) { if (atCol->actor != NULL && atCol->actor->update == NULL) { @@ -2684,6 +2697,8 @@ typedef enum { /* 2 */ MASSTYPE_NORMAL } ColChkMassType; +#pragma increment_block_number 253 + /** * Get mass type. Immovable colliders cannot be pushed, while heavy colliders can only be pushed by heavy and immovable * colliders. @@ -3134,9 +3149,10 @@ static ColChkApplyFunc sApplyDamageFuncs[COLSHAPE_MAX] = { */ void CollisionCheck_Damage(PlayState* play, CollisionCheckContext* colChkCtx) { s32 i; + Collider* col; for (i = 0; i < colChkCtx->colACCount; i++) { - Collider* col = colChkCtx->colAC[i]; + col = colChkCtx->colAC[i]; if (col == NULL) { continue; @@ -3312,12 +3328,14 @@ void Collider_SetTrisDim(PlayState* play, ColliderTris* tris, s32 elemIndex, Col Collider_SetTrisElementDim(play, &trisElem->dim, src); } +#if OOT_DEBUG // Due to an unknown reason, bss ordering changed between the 2 static Vec3f variables in the function below. // In order to reproduce this behavior, we need a specific number of bss variables in the file before that point. // For this, we introduce a certain amount of dummy variables throughout the file, which we fit inside padding added // by the compiler between structs like TriNorm and/or Vec3f, so they don't take space in bss. static s8 sBssDummy11; static s8 sBssDummy12; +#endif /** * Updates the world spheres for all of the collider's JntSph elements attached to the specified limb diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c index 2d7c36fc8..47aecd9e6 100644 --- a/src/code/z_common_data.c +++ b/src/code/z_common_data.c @@ -1,5 +1,10 @@ #include "global.h" +// For retail BSS ordering, the block number of D_8015FA88 must be 0 or +// just above (the exact upper bound depends on the block numbers assigned to +// extern variables declared in headers). +#pragma increment_block_number 60 + ALIGNED(16) SaveContext gSaveContext; u32 D_8015FA88; u32 D_8015FA8C; diff --git a/src/code/z_kaleido_scope_call.c b/src/code/z_kaleido_scope_call.c index be1d9aa59..7b53b8521 100644 --- a/src/code/z_kaleido_scope_call.c +++ b/src/code/z_kaleido_scope_call.c @@ -1,6 +1,11 @@ #include "global.h" #include "terminal.h" +// For retail BSS ordering, the block number of sKaleidoScopeUpdateFunc must be 0 or +// just above (the exact upper bound depends on the block numbers assigned to +// extern variables declared in headers). +#pragma increment_block_number 60 + void (*sKaleidoScopeUpdateFunc)(PlayState* play); void (*sKaleidoScopeDrawFunc)(PlayState* play); f32 gBossMarkScale; diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index db8080735..ce79a7df9 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -4,6 +4,11 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/gameplay_field_keep/gameplay_field_keep.h" +// For retail BSS ordering, the block number of sLensFlareUnused must be lower +// than the extern variables declared in the header (e.g. gLightningStrike) +// while the block number of sNGameOverLightNode must be higher. +#pragma increment_block_number 80 + typedef enum { /* 0x00 */ LIGHTNING_BOLT_START, /* 0x01 */ LIGHTNING_BOLT_WAIT, @@ -183,7 +188,7 @@ f32 sSandstormLerpScale = 0.0f; u8 gCustomLensFlareOn; Vec3f gCustomLensFlarePos; -s16 gLensFlareUnused; +s16 sLensFlareUnused; s16 gLensFlareScale; f32 gLensFlareColorIntensity; s16 gLensFlareGlareStrength; @@ -207,6 +212,11 @@ s16 sLightningFlashAlpha; s16 sSunDepthTestX; s16 sSunDepthTestY; +// These variables could be moved farther down in the file to reduce the amount +// of block number padding here, but currently this causes BSS ordering issues +// for debug. +#pragma increment_block_number 230 + LightNode* sNGameOverLightNode; LightInfo sNGameOverLightInfo; LightNode* sSGameOverLightNode; @@ -2208,7 +2218,7 @@ void Environment_DrawCustomLensFlare(PlayState* play) { pos.y = gCustomLensFlarePos.y; pos.z = gCustomLensFlarePos.z; - Environment_DrawLensFlare(play, &play->envCtx, &play->view, play->state.gfxCtx, pos, gLensFlareUnused, + Environment_DrawLensFlare(play, &play->envCtx, &play->view, play->state.gfxCtx, pos, sLensFlareUnused, gLensFlareScale, gLensFlareColorIntensity, gLensFlareGlareStrength, false); } } diff --git a/src/code/z_play.c b/src/code/z_play.c index c418c4089..f86986839 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -9,9 +9,9 @@ UNK_TYPE D_8012D1F4 = 0; // unused Input* D_8012D1F8 = NULL; -TransitionTile sTransitionTile; +TransitionTile gTransitionTile; s32 gTransitionTileState; -VisMono sPlayVisMono; +VisMono gPlayVisMono; Color_RGBA8_u32 gVisMonoColor; #if OOT_DEBUG @@ -199,7 +199,7 @@ void Play_Destroy(GameState* thisx) { CollisionCheck_DestroyContext(this, &this->colChkCtx); if (gTransitionTileState == TRANS_TILE_READY) { - TransitionTile_Destroy(&sTransitionTile); + TransitionTile_Destroy(&gTransitionTile); gTransitionTileState = TRANS_TILE_OFF; } @@ -211,7 +211,7 @@ void Play_Destroy(GameState* thisx) { Letterbox_Destroy(); TransitionFade_Destroy(&this->transitionFadeFlash); - VisMono_Destroy(&sPlayVisMono); + VisMono_Destroy(&gPlayVisMono); if (gSaveContext.save.linkAge != this->linkAgeOnLoad) { Inventory_SwapAgeEquipment(); @@ -409,7 +409,7 @@ void Play_Init(GameState* thisx) { TransitionFade_SetType(&this->transitionFadeFlash, TRANS_INSTANCE_TYPE_FADE_FLASH); TransitionFade_SetColor(&this->transitionFadeFlash, RGBA8(160, 160, 160, 255)); TransitionFade_Start(&this->transitionFadeFlash); - VisMono_Init(&sPlayVisMono); + VisMono_Init(&gPlayVisMono); gVisMonoColor.a = 0; CutsceneFlags_UnsetAll(this); @@ -521,18 +521,18 @@ void Play_Update(PlayState* this) { if (gTransitionTileState != TRANS_TILE_OFF) { switch (gTransitionTileState) { case TRANS_TILE_PROCESS: - if (TransitionTile_Init(&sTransitionTile, 10, 7) == NULL) { + if (TransitionTile_Init(&gTransitionTile, 10, 7) == NULL) { PRINTF("fbdemo_init呼出し失敗!\n"); // "fbdemo_init call failed!" gTransitionTileState = TRANS_TILE_OFF; } else { - sTransitionTile.zBuffer = (u16*)gZBuffer; + gTransitionTile.zBuffer = (u16*)gZBuffer; gTransitionTileState = TRANS_TILE_READY; R_UPDATE_RATE = 1; } break; case TRANS_TILE_READY: - TransitionTile_Update(&sTransitionTile); + TransitionTile_Update(&gTransitionTile); break; default: @@ -687,7 +687,7 @@ void Play_Update(PlayState* this) { this->transitionMode = TRANS_MODE_OFF; if (gTransitionTileState == TRANS_TILE_READY) { - TransitionTile_Destroy(&sTransitionTile); + TransitionTile_Destroy(&gTransitionTile); gTransitionTileState = TRANS_TILE_OFF; R_UPDATE_RATE = 3; } @@ -1135,8 +1135,8 @@ void Play_Draw(PlayState* this) { TransitionFade_Draw(&this->transitionFadeFlash, &gfxP); if (gVisMonoColor.a > 0) { - sPlayVisMono.vis.primColor.rgba = gVisMonoColor.rgba; - VisMono_Draw(&sPlayVisMono, &gfxP); + gPlayVisMono.vis.primColor.rgba = gVisMonoColor.rgba; + VisMono_Draw(&gPlayVisMono, &gfxP); } gSPEndDisplayList(gfxP++); @@ -1147,7 +1147,7 @@ void Play_Draw(PlayState* this) { if (gTransitionTileState == TRANS_TILE_READY) { Gfx* sp88 = POLY_OPA_DISP; - TransitionTile_Draw(&sTransitionTile, &sp88); + TransitionTile_Draw(&gTransitionTile, &sp88); POLY_OPA_DISP = sp88; goto Play_Draw_DrawOverlayElements; } diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c index 049872436..0d5b97361 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -100,12 +100,22 @@ static ColliderCylinderInit sLightBallCylinderInit = { static u8 D_808E4C58[] = { 0, 12, 10, 12, 14, 16, 12, 14, 16, 12, 14, 16, 12, 14, 16, 10, 16, 14 }; static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f }; +// For retail BSS ordering, the block number of sGanondorf must be 0 or just above. + +// TODO: There's probably a way to do this with less padding by spreading the variables out and moving +// data around. It would be easier if we had more options for controlling BSS ordering in debug. +#pragma increment_block_number 50 + static EnGanonMant* sCape; +#pragma increment_block_number 200 + static s32 sSeed1; static s32 sSeed2; static s32 sSeed3; +#pragma increment_block_number 200 + static BossGanon* sGanondorf; static EnZl3* sZelda; diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 3809daae4..17eff561a 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -14,6 +14,9 @@ #include "assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.h" #include "terminal.h" +// For retail BSS ordering, the block number of sSfxPos +// must be between 0 and 213 inclusive. + #define FLAGS ACTOR_FLAG_4 void EnXc_Init(Actor* thisx, PlayState* play); @@ -387,6 +390,8 @@ s32 EnXc_SerenadeCS(EnXc* this, PlayState* play) { void EnXc_DoNothing(EnXc* this, PlayState* play) { } +static Vec3f sSfxPos; + void EnXc_SetWalkingSFX(EnXc* this, PlayState* play) { s32 pad[2]; u32 sfxId; @@ -432,7 +437,6 @@ void EnXc_SetLandingSFX(EnXc* this, PlayState* play) { } void EnXc_SetColossusAppearSFX(EnXc* this, PlayState* play) { - static Vec3f sXyzDist; s16 sceneId; if (gSaveContext.sceneLayer == 4) { @@ -445,14 +449,14 @@ void EnXc_SetColossusAppearSFX(EnXc* this, PlayState* play) { if (csCurFrame == 119) { Vec3f pos = { -611.0f, 728.0f, -2.0f }; - SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, &pos, &sXyzDist, wDest); - Sfx_PlaySfxAtPos(&sXyzDist, NA_SE_EV_JUMP_CONC); + SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, &pos, &sSfxPos, wDest); + Sfx_PlaySfxAtPos(&sSfxPos, NA_SE_EV_JUMP_CONC); } else if (csCurFrame == 164) { Vec3f pos = { -1069.0f, 38.0f, 0.0f }; s32 pad; - SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, &pos, &sXyzDist, wDest); - Sfx_PlaySfxAtPos(&sXyzDist, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_STONE); + SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, &pos, &sSfxPos, wDest); + Sfx_PlaySfxAtPos(&sSfxPos, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_STONE); } } } @@ -466,8 +470,6 @@ void func_80B3D118(PlayState* play) { } } -static Vec3f D_80B42DA0; - void EnXc_SetColossusWindSFX(PlayState* play) { if (gSaveContext.sceneLayer == 4) { static s32 D_80B41D90 = 0; @@ -1394,7 +1396,10 @@ void func_80B3F3D8(void) { Sfx_PlaySfxCentered2(NA_SE_PL_SKIP); } +#pragma increment_block_number 20 + void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { + static Vec3f D_80B42DA0; f32 wDest[2]; SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, src, &D_80B42DA0, wDest); diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 7181accf3..bf1e59de7 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -10,6 +10,9 @@ #include "assets/objects/object_fish/object_fish.h" #include "terminal.h" +// For retail BSS ordering, the block number of sStreamSfxProjectedPos must be 0. +#pragma increment_block_number 201 + #define FLAGS ACTOR_FLAG_4 #define WATER_SURFACE_Y(play) play->colCtx.colHeader->waterBoxes->ySurface diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 6f4cc33c3..fd2cc36c4 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -353,11 +353,24 @@ void Player_Action_80850E84(Player* this, PlayState* play); void Player_Action_CsAction(Player* this, PlayState* play); // .bss part 1 + +// For retail BSS ordering, the block number of sDogSpawnPos in Player_Update +// must be between 0 and 53 inclusive. + +// TODO: There's probably a way to do this with less padding by spreading the variables out and moving +// data around. It would be easier if we had more options for controlling BSS ordering in debug. +#pragma increment_block_number 30 + static s32 D_80858AA0; + +#pragma increment_block_number 250 + static s32 D_80858AA4; static Vec3f sInteractWallCheckResult; static Input* sControlInput; +#pragma increment_block_number 50 + // .data static u8 sUpperBodyLimbCopyMap[PLAYER_LIMB_MAX] = { @@ -11376,8 +11389,6 @@ typedef struct { static BunnyEarKinematics sBunnyEarKinematics; -static Vec3s D_80858AD8[25]; - static Gfx* sMaskDlists[PLAYER_MASK_MAX - 1] = { gLinkChildKeatonMaskDL, gLinkChildSkullMaskDL, gLinkChildSpookyMaskDL, gLinkChildBunnyHoodDL, gLinkChildGoronMaskDL, gLinkChildZoraMaskDL, gLinkChildGerudoMaskDL, gLinkChildMaskOfTruthDL, @@ -14080,6 +14091,7 @@ void Player_Action_80850AEC(Player* this, PlayState* play) { void Player_Action_80850C68(Player* this, PlayState* play) { if ((this->av2.actionVar2 != 0) && ((this->unk_858 != 0.0f) || (this->unk_85C != 0.0f))) { + static Vec3s D_80858AD8[25]; f32 updateScale = R_UPDATE_RATE * 0.5f; this->skelAnime.curFrame += this->skelAnime.playSpeed * updateScale; diff --git a/tools/disasm/gc-eu-mq/variables.txt b/tools/disasm/gc-eu-mq/variables.txt index 7be392076..7bcb19622 100644 --- a/tools/disasm/gc-eu-mq/variables.txt +++ b/tools/disasm/gc-eu-mq/variables.txt @@ -41,7 +41,7 @@ sIdleThread = 0x80006590; // size:0x1B0 sIdleThreadStack = 0x80006740; // size:0x400 sIdleThreadInfo = 0x80006B40; // size:0x1C sBootThreadStack = 0x80006B60; // size:0x400 -gMainThread = 0x80006F60; // size:0x1B0 +sMainThread = 0x80006F60; // size:0x1B0 sMainStack = 0x80007110; // size:0x900 sMainStackInfo = 0x80007A10; // size:0x1C sPiMgrCmdBuff = 0x80007A30; // size:0xC8 @@ -570,9 +570,9 @@ sKaleidoScopeUpdateFunc = 0x8011B3C0; // size:0x4 sKaleidoScopeDrawFunc = 0x8011B3C4; // size:0x4 gBossMarkScale = 0x8011B3C8; // size:0x4 gLoadedPauseMarkDataTable = 0x8011B3D0; // size:0x4 -sTransitionTile = 0x8011B3E0; // size:0xE0 +gTransitionTile = 0x8011B3E0; // size:0xE0 gTransitionTileState = 0x8011B4C0; // size:0x4 -sPlayVisMono = 0x8011B4C8; // size:0x18 +gPlayVisMono = 0x8011B4C8; // size:0x18 gVisMonoColor = 0x8011B4E0; // size:0x4 D_801664D0 = 0x8011B4F0; // size:0x20 sVisCvg = 0x8011B510; // size:0x10 diff --git a/tools/ido_block_numbers.py b/tools/ido_block_numbers.py index 8858481dc..2deb64c79 100755 --- a/tools/ido_block_numbers.py +++ b/tools/ido_block_numbers.py @@ -222,7 +222,7 @@ def find_compiler_command_line(filename, oot_version): for line in make_output: parts = line.split() if "-o" in parts and str(filename) in parts: - makefile_command_line = parts + compiler_command_line = parts found += 1 if found != 1: @@ -231,49 +231,29 @@ def find_compiler_command_line(filename, oot_version): ) sys.exit(1) - # Assume command line is of the form: - # tools/reencode.sh [COMPILER] [COMPILER_ARGS] - compiler_command_line = makefile_command_line[1:] - print(f'Command line: {" ".join(compiler_command_line)}', file=sys.stderr) return compiler_command_line def generate_symbol_table(command_line): - # Find source file in compiler arguments - source_file = None - args = [] - for arg in command_line: - if arg.endswith(".c"): - source_file = Path(arg) - else: - args.append(arg) + # Assume command line is of the form: + # python3 tools/preprocess.py [COMPILER] [COMPILER_ARGS] [INPUT_FILE] + input_file = Path(command_line[-1]) + rest = command_line[:-1] - if source_file is None: - raise Exception("No source file found") - - source_contents = source_file.read_text() - - stem = "reencode_tmp" - input_file = Path(f"{stem}.c") + stem = input_file.stem symbol_table_file = Path(f"{stem}.T") ucode_file = Path(f"{stem}.B") try: - # Write temporary file with #line directive to simulate asm-processor - with open(input_file, "w") as f: - f.write('#line 1 "{}"\n'.format(source_file)) - f.write(source_contents) - # Invoke compiler # -Hf stops compilation after cfe so we can inspect the symbol table - subprocess.run(args + ["-Hf", input_file], check=True) + subprocess.run(rest + ["-Hf", input_file], check=True) # Read symbol table return symbol_table_file.read_bytes() finally: # Cleanup - input_file.unlink(missing_ok=True) symbol_table_file.unlink(missing_ok=True) ucode_file.unlink(missing_ok=True) diff --git a/tools/preprocess.py b/tools/preprocess.py new file mode 100755 index 000000000..d84c3eef2 --- /dev/null +++ b/tools/preprocess.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 + +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 + +# Usage: preprocess.py [compile command minus input file...] [single input file] +# Preprocess a C file to: +# * Re-encode from UTF-8 to EUC-JP (the repo uses UTF-8 for text encoding, but +# the strings in the ROM are encoded in EUC-JP) +# * Replace `#pragma increment_block_number N` with `N` fake structs for +# controlling BSS ordering + +from pathlib import Path +import os +import tempfile +import subprocess +import sys + + +def fail(message): + print(message, file=sys.stderr) + sys.exit(1) + + +def process_file(filename, input, output): + output.write(f'#line 1 "{filename}"\n') + for i, line in enumerate(input, start=1): + if line.startswith("#pragma increment_block_number"): + parts = line.split() + if len(parts) != 3: + fail( + f"{filename}:{i}: increment_block_number must be followed by an integer" + ) + try: + amount = int(parts[2]) + except ValueError: + fail( + f"{filename}:{i}: increment_block_number must be followed by an integer" + ) + # Write fake structs for BSS ordering + for j in range(amount): + output.write(f"struct DummyStruct_{i:05}_{j:03};\n") + output.write(f'#line {i + 1} "{filename}"\n') + else: + output.write(line) + + +def main(): + filename = Path(sys.argv[-1]) + with tempfile.TemporaryDirectory(prefix="oot_") as tmpdir: + tmpfile = Path(tmpdir) / filename.name + + with open(filename, mode="r", encoding="utf-8") as input: + with open(tmpfile, mode="w", encoding="euc-jp") as output: + process_file(filename, input, output) + + compile_command = sys.argv[1:-1] + ["-I", filename.parent, tmpfile] + process = subprocess.run(compile_command) + return process.returncode + + +if __name__ == "__main__": + try: + sys.exit(main()) + except KeyboardInterrupt: + sys.exit(1) diff --git a/tools/reencode.sh b/tools/reencode.sh deleted file mode 100755 index d027faf5b..000000000 --- a/tools/reencode.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# The repo uses UTF-8 for text encoding, but the strings in the ROM are encoded in EUC-JP. -# This means for matching the source must be re-encoded to EUC-JP before IDO compiles it. -# This is conceptually equivalent to `gcc --finput-charset=UTF-8 --fexec-charset=EUC-JP`, -# except IDO has no equivalent arguments. -# Usage: reencode.sh [compile command minus input file...] [single input file] - -set -e - -# The last argument, the input source file to be compiled -srcfile="${@: -1}" - -# Create a temporary file, and remove it on script exit -tempfile=`mktemp`_oot.c -trap "rm -f $tempfile" EXIT - -# Re-encode from UTF-8 to EUC-JP -{ - printf '#line 1 "%s"\n' "$srcfile" # linemarker - cat "$srcfile" -} | iconv -f UTF-8 -t EUC-JP > "$tempfile" - -# All arguments but the last, forming the compile command -# Also include the source file's directory to have the include path as if we compiled the original source. -# Pass the EUC-JP encoded temporary file for compilation. -"${@:1:$# - 1}" -I `dirname $srcfile` $tempfile From 295a8669b86e571aecd6509b4e7b86e955f165d6 Mon Sep 17 00:00:00 2001 From: fig02 Date: Mon, 15 Apr 2024 13:02:43 -0400 Subject: [PATCH 02/29] Player: Document "WaitForPutAway" (#1936) * document put away delay * functions.txt * add a note on delaying indefinitely * format * typo * delay -> wait for put away * revert unintended formatting change * add comment to struct member * format * fix functions.txt --- include/z64player.h | 4 +- .../actors/ovl_player_actor/z_player.c | 85 +++++++++++++------ tools/disasm/gc-eu-mq/functions.txt | 6 +- 3 files changed, 63 insertions(+), 32 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index 913b53ec1..78de9e8ca 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -717,7 +717,7 @@ typedef struct { typedef void (*PlayerActionFunc)(struct Player*, struct PlayState*); typedef s32 (*UpperActionFunc)(struct Player*, struct PlayState*); -typedef void (*PlayerFuncA74)(struct PlayState*, struct Player*); +typedef void (*AfterPutAwayFunc)(struct PlayState*, struct Player*); typedef struct Player { /* 0x0000 */ Actor actor; @@ -892,7 +892,7 @@ typedef struct Player { /* 0x0A60 */ u8 bodyIsBurning; /* 0x0A61 */ u8 bodyFlameTimers[PLAYER_BODYPART_MAX]; // one flame per body part /* 0x0A73 */ u8 unk_A73; - /* 0x0A74 */ PlayerFuncA74 func_A74; + /* 0x0A74 */ AfterPutAwayFunc afterPutAwayFunc; // See `Player_SetupWaitForPutAway` and `Player_Action_WaitForPutAway` /* 0x0A78 */ s8 invincibilityTimer; // prevents damage when nonzero (positive = visible, counts towards zero each frame) /* 0x0A79 */ u8 floorTypeTimer; // counts up every frame the current floor type is the same as the last frame /* 0x0A7A */ u8 floorProperty; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index fd2cc36c4..3f10abec8 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -292,7 +292,7 @@ void Player_Action_80844E68(Player* this, PlayState* play); void Player_Action_80845000(Player* this, PlayState* play); void Player_Action_80845308(Player* this, PlayState* play); void Player_Action_80845668(Player* this, PlayState* play); -void Player_Action_808458D0(Player* this, PlayState* play); +void Player_Action_WaitForPutAway(Player* this, PlayState* play); void Player_Action_80845CA4(Player* this, PlayState* play); void Player_Action_80845EF8(Player* this, PlayState* play); void Player_Action_80846050(Player* this, PlayState* play); @@ -1719,12 +1719,16 @@ void func_80832440(PlayState* play, Player* this) { this->unk_845 = this->unk_844 = 0; } -s32 func_80832528(PlayState* play, Player* this) { +/** + * Puts away item currently in hand, if holding any. + * @return true if an item needs to be put away, false if not. + */ +s32 Player_PutAwayHeldItem(PlayState* play, Player* this) { if (this->heldItemAction >= PLAYER_IA_FISHING_POLE) { Player_UseItem(play, this, ITEM_NONE); - return 1; + return true; } else { - return 0; + return false; } } @@ -2216,7 +2220,7 @@ void Player_InitExplosiveIA(PlayState* play, Player* this) { Actor* spawnedActor; if (this->stateFlags1 & PLAYER_STATE1_11) { - func_80832528(play, this); + Player_PutAwayHeldItem(play, this); return; } @@ -3360,7 +3364,7 @@ void func_80836448(PlayState* play, Player* this, LinkAnimationHeader* anim) { } int Player_CanUpdateItems(Player* this) { - return (!(Player_Action_808458D0 == this->actionFunc) || + return (!(Player_Action_WaitForPutAway == this->actionFunc) || ((this->stateFlags1 & PLAYER_STATE1_START_CHANGING_HELD_ITEM) && ((this->heldItemId == ITEM_SWORD_CS) || (this->heldItemId == ITEM_NONE)))) && (!(Player_UpperAction_ChangeHeldItem == this->upperActionFunc) || @@ -3414,11 +3418,21 @@ s32 Player_UpdateUpperBody(Player* this, PlayState* play) { return 1; } -s32 func_80836898(PlayState* play, Player* this, PlayerFuncA74 func) { - this->func_A74 = func; - Player_SetupAction(play, this, Player_Action_808458D0, 0); +/** + * Sets up `Player_Action_WaitForPutAway`, which will allow the held item put away process + * to complete before moving on to a new action. + * + * The function provided by the `afterPutAwayFunc` argument will run after the put away is complete. + * This function is expected to set a new action and move execution away from `Player_Action_WaitForPutAway`. + * + * @return From `Player_PutAwayHeldItem`: true if an item needs to be put away, false if not. + */ +s32 Player_SetupWaitForPutAway(PlayState* play, Player* this, AfterPutAwayFunc afterPutAwayFunc) { + this->afterPutAwayFunc = afterPutAwayFunc; + Player_SetupAction(play, this, Player_Action_WaitForPutAway, 0); this->stateFlags2 |= PLAYER_STATE2_6; - return func_80832528(play, this); + + return Player_PutAwayHeldItem(play, this); } void func_808368EC(Player* this, PlayState* play) { @@ -4946,7 +4960,7 @@ s32 Player_ActionChange_1(Player* this, PlayState* play) { } Player_SetupAction(play, this, Player_Action_80845EF8, 0); - func_80832528(play, this); + Player_PutAwayHeldItem(play, this); if (doorDirection < 0) { this->actor.shape.rot.y = doorActor->shape.rot.y; @@ -5272,7 +5286,7 @@ s32 func_8083A6AC(Player* this, PlayState* play) { sp50 ? &gPlayerAnim_link_normal_Fclimb_startB : &gPlayerAnim_link_normal_fall); if (sp50) { - func_80836898(play, this, func_8083A3B0); + Player_SetupWaitForPutAway(play, this, func_8083A3B0); this->yaw += 0x8000; this->actor.shape.rot.y = this->yaw; @@ -6604,7 +6618,7 @@ s32 Player_ActionChange_3(Player* this, PlayState* play) { sp38 = Math_CosS(rideActor->actor.shape.rot.y); sp34 = Math_SinS(rideActor->actor.shape.rot.y); - func_80836898(play, this, func_8083A360); + Player_SetupWaitForPutAway(play, this, func_8083A360); this->stateFlags1 |= PLAYER_STATE1_23; this->actor.bgCheckFlags &= ~BGCHECKFLAG_WATER; @@ -6756,7 +6770,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) { func_8083AE40(this, giEntry->objectId); if (!(this->stateFlags2 & PLAYER_STATE2_10) || (this->currentBoots == PLAYER_BOOTS_IRON)) { - func_80836898(play, this, func_8083A434); + Player_SetupWaitForPutAway(play, this, func_8083A434); Player_AnimPlayOnceAdjusted(play, this, &gPlayerAnim_link_demo_get_itemB); func_80835EA4(play, 9); } @@ -6783,7 +6797,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) { } } - func_80836898(play, this, func_8083A434); + Player_SetupWaitForPutAway(play, this, func_8083A434); this->stateFlags1 |= PLAYER_STATE1_10 | PLAYER_STATE1_11 | PLAYER_STATE1_29; func_8083AE40(this, giEntry->objectId); this->actor.world.pos.x = @@ -6817,7 +6831,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) { this->itemAction = PLAYER_IA_NONE; this->modelAnimType = PLAYER_ANIMTYPE_0; this->heldItemAction = this->itemAction; - func_80836898(play, this, func_8083A0F4); + Player_SetupWaitForPutAway(play, this, func_8083A0F4); if (sp24 == PLAYER_IA_SWORD_MASTER) { this->nextModelGroup = Player_ActionToModelGroup(this, PLAYER_IA_SWORD_CS); @@ -6833,7 +6847,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) { return 0; } - func_80836898(play, this, func_8083A0F4); + Player_SetupWaitForPutAway(play, this, func_8083A0F4); } func_80832224(this); @@ -6945,7 +6959,7 @@ s32 func_8083EC18(Player* this, PlayState* play, u32 wallFlags) { f32 sp34 = this->distToInteractWall; LinkAnimationHeader* anim; - func_80836898(play, this, func_8083A3B0); + Player_SetupWaitForPutAway(play, this, func_8083A3B0); this->stateFlags1 |= PLAYER_STATE1_21; this->stateFlags1 &= ~PLAYER_STATE1_27; @@ -7048,7 +7062,7 @@ s32 Player_TryEnteringCrawlspace(Player* this, PlayState* play, u32 interactWall f32 wallPolyNormalZ = COLPOLY_GET_NORMAL(wallPoly->normal.z); f32 distToInteractWall = this->distToInteractWall; - func_80836898(play, this, func_8083A40C); + Player_SetupWaitForPutAway(play, this, func_8083A40C); this->stateFlags2 |= PLAYER_STATE2_CRAWLING; this->actor.shape.rot.y = this->yaw = this->actor.wallYaw + 0x8000; this->actor.world.pos.x = xVertex1 + (distToInteractWall * wallPolyNormalX); @@ -7173,7 +7187,7 @@ s32 Player_TryLeavingCrawlspace(Player* this, PlayState* play) { } void func_8083F72C(Player* this, LinkAnimationHeader* anim, PlayState* play) { - if (!func_80836898(play, this, func_8083A388)) { + if (!Player_SetupWaitForPutAway(play, this, func_8083A388)) { Player_SetupAction(play, this, Player_Action_8084B78C, 0); } @@ -7210,7 +7224,7 @@ s32 Player_ActionChange_5(Player* this, PlayState* play) { return 0; } - func_80836898(play, this, func_8083A0F4); + Player_SetupWaitForPutAway(play, this, func_8083A0F4); this->stateFlags1 |= PLAYER_STATE1_11; this->interactRangeActor = &wallPolyActor->actor; this->getItemId = GI_NONE; @@ -9420,13 +9434,30 @@ void Player_Action_80845668(Player* this, PlayState* play) { } } -void Player_Action_808458D0(Player* this, PlayState* play) { +/** + * Allow the held item put away process to complete before running `afterPutAwayFunc` + */ +void Player_Action_WaitForPutAway(Player* this, PlayState* play) { this->stateFlags2 |= PLAYER_STATE2_5 | PLAYER_STATE2_6; LinkAnimation_Update(play, &this->skelAnime); + // Wait for the held item put away process to complete. + // Determining if the put away process is complete is a bit complicated: + // `Player_UpdateUpperBody` will only return false if the current UpperAction returns false. + // The UpperAction responsible for putting away items, `Player_UpperAction_ChangeHeldItem`, constantly + // returns true until the item change is done. False won't be returned until the item change is done, and a new + // UpperAction is running and can return false itself. + // Note that this implementation allows for delaying indefinitely by, for example, holding shield + // during the item put away. The shield UpperAction will return true while shielding and targeting. + // Meaning, `afterPutAwayFunc` will be delayed until the player decides to let go of shield. + // This quirk can contribute to the possibility of other bugs manifesting. + // + // The other conditions listed will force the put away delay function to run instantly if carrying an actor. + // This is necessary because the UpperAction for carrying actors will always return true while holding + // the actor, so `!Player_UpdateUpperBody` could never pass. if (((this->stateFlags1 & PLAYER_STATE1_11) && (this->heldActor != NULL) && (this->getItemId == GI_NONE)) || !Player_UpdateUpperBody(this, play)) { - this->func_A74(play, this); + this->afterPutAwayFunc(play, this); } } @@ -15289,7 +15320,7 @@ void func_80853148(PlayState* play, Actor* actor) { if (actor->textId == 0xFFFF) { Player_SetCsActionWithHaltedActors(play, actor, PLAYER_CSACTION_1); actor->flags |= ACTOR_FLAG_TALK; - func_80832528(play, this); + Player_PutAwayHeldItem(play, this); } else { if (this->actor.flags & ACTOR_FLAG_TALK) { this->actor.textId = 0; @@ -15301,13 +15332,13 @@ void func_80853148(PlayState* play, Actor* actor) { if (this->stateFlags1 & PLAYER_STATE1_23) { s32 sp24 = this->av2.actionVar2; - func_80832528(play, this); + Player_PutAwayHeldItem(play, this); func_8083A2F8(play, this); this->av2.actionVar2 = sp24; } else { if (func_808332B8(this)) { - func_80836898(play, this, func_8083A2F8); + Player_SetupWaitForPutAway(play, this, func_8083A2F8); Player_AnimChangeLoopSlowMorph(play, this, &gPlayerAnim_link_swimer_swim_wait); } else if ((actor->category != ACTORCAT_NPC) || (this->heldItemAction == PLAYER_IA_FISHING_POLE)) { func_8083A2F8(play, this); @@ -15320,7 +15351,7 @@ void func_80853148(PlayState* play, Actor* actor) { } } } else { - func_80836898(play, this, func_8083A2F8); + Player_SetupWaitForPutAway(play, this, func_8083A2F8); Player_AnimPlayOnceAdjusted(play, this, (actor->xzDistToPlayer < 40.0f) ? &gPlayerAnim_link_normal_backspace : &gPlayerAnim_link_normal_talk_free); diff --git a/tools/disasm/gc-eu-mq/functions.txt b/tools/disasm/gc-eu-mq/functions.txt index fef42f92c..92646c223 100644 --- a/tools/disasm/gc-eu-mq/functions.txt +++ b/tools/disasm/gc-eu-mq/functions.txt @@ -3265,7 +3265,7 @@ func_80832318 = 0x8082EDB4; // type:func func_80832340 = 0x8082EDE0; // type:func Player_DetachHeldActor = 0x8082EE50; // type:func func_80832440 = 0x8082EEDC; // type:func -func_80832528 = 0x8082EFC4; // type:func +Player_PutAwayHeldItem = 0x8082EFC4; // type:func func_80832564 = 0x8082F000; // type:func func_80832594 = 0x8082F038; // type:func func_80832630 = 0x8082F0D8; // type:func @@ -3386,7 +3386,7 @@ Player_UseItem = 0x80832AE4; // type:func func_80836448 = 0x80832FEC; // type:func Player_CanUpdateItems = 0x8083316C; // type:func Player_UpdateUpperBody = 0x80833218; // type:func -func_80836898 = 0x80833440; // type:func +Player_SetupWaitForPutAway = 0x80833440; // type:func func_808368EC = 0x80833498; // type:func func_808369C8 = 0x80833574; // type:func func_80836AB8 = 0x80833660; // type:func @@ -3593,7 +3593,7 @@ Player_Action_80844E68 = 0x80841AB8; // type:func Player_Action_80845000 = 0x80841C50; // type:func Player_Action_80845308 = 0x80841F58; // type:func Player_Action_80845668 = 0x808422B8; // type:func -Player_Action_808458D0 = 0x80842524; // type:func +Player_Action_WaitForPutAway = 0x80842524; // type:func func_80845964 = 0x808425B8; // type:func func_80845BA0 = 0x808427FC; // type:func func_80845C68 = 0x808428C8; // type:func From d59ca6cea2c074367e03406e2dac939c1522cc29 Mon Sep 17 00:00:00 2001 From: cadmic Date: Mon, 15 Apr 2024 10:36:29 -0700 Subject: [PATCH 03/29] Set up gc-eu and match all code (#1938) * Set up gc-eu and match all code * Format * Mark gc-eu-mq as WIP until it builds OK * Move original/MQ map mark data to separate files * Add #includes to .inc.c files to help out VS Code * Use #if in spec instead of .inc.c files --- Makefile | 10 +- baseroms/gc-eu/checksum-compressed.md5 | 1 + baseroms/gc-eu/checksum.md5 | 1 + baseroms/gc-eu/dmadata_names.txt | 1510 +++++++++++++++++ baseroms/gc-eu/dmadata_start.txt | 1 + spec | 8 + src/boot/build.c | 4 +- src/code/z_scene_table.c | 4 + src/overlays/actors/ovl_En_Mag/z_en_mag.c | 57 +- .../misc/ovl_kaleido_scope/z_lmap_mark_data.c | 182 +- .../ovl_kaleido_scope/z_lmap_mark_data_mq.c | 531 ++++++ .../misc/ovl_map_mark_data/z_map_mark_data.c | 361 ++-- .../ovl_map_mark_data/z_map_mark_data_mq.c | 1444 ++++++++++++++++ tools/msgdis.py | 8 +- 14 files changed, 3850 insertions(+), 272 deletions(-) create mode 100644 baseroms/gc-eu/checksum-compressed.md5 create mode 100644 baseroms/gc-eu/checksum.md5 create mode 100644 baseroms/gc-eu/dmadata_names.txt create mode 100644 baseroms/gc-eu/dmadata_start.txt create mode 100644 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data_mq.c create mode 100644 src/overlays/misc/ovl_map_mark_data/z_map_mark_data_mq.c diff --git a/Makefile b/Makefile index f1e7e75f2..b60aad6c5 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,7 @@ COMPILER := ido # Target game version. Currently only the following version is supported: # gc-eu-mq-dbg GameCube Europe/PAL Master Quest Debug (default) # The following versions are work-in-progress and not yet matching: +# gc-eu GameCube Europe/PAL # gc-eu-mq GameCube Europe/PAL Master Quest VERSION := gc-eu-mq-dbg # Number of threads to extract and compress with @@ -51,10 +52,17 @@ ifeq ($(NON_MATCHING),1) endif # Version-specific settings -ifeq ($(VERSION),gc-eu-mq) +ifeq ($(VERSION),gc-eu) DEBUG := 0 + COMPARE := 0 +else ifeq ($(VERSION),gc-eu-mq) + DEBUG := 0 + CFLAGS += -DOOT_MQ + CPPFLAGS += -DOOT_MQ else ifeq ($(VERSION),gc-eu-mq-dbg) DEBUG := 1 + CFLAGS += -DOOT_MQ + CPPFLAGS += -DOOT_MQ else $(error Unsupported version $(VERSION)) endif diff --git a/baseroms/gc-eu/checksum-compressed.md5 b/baseroms/gc-eu/checksum-compressed.md5 new file mode 100644 index 000000000..5525ac5dc --- /dev/null +++ b/baseroms/gc-eu/checksum-compressed.md5 @@ -0,0 +1 @@ +2c27b4e000e85fd78dbca551f1b1c965 build/gc-eu/oot-gc-eu-compressed.z64 diff --git a/baseroms/gc-eu/checksum.md5 b/baseroms/gc-eu/checksum.md5 new file mode 100644 index 000000000..960213bea --- /dev/null +++ b/baseroms/gc-eu/checksum.md5 @@ -0,0 +1 @@ +05d6c0a3528d6de7472e5a98520d9f46 build/gc-eu/oot-gc-eu.z64 diff --git a/baseroms/gc-eu/dmadata_names.txt b/baseroms/gc-eu/dmadata_names.txt new file mode 100644 index 000000000..cfe5c4689 --- /dev/null +++ b/baseroms/gc-eu/dmadata_names.txt @@ -0,0 +1,1510 @@ +makerom +boot +dmadata +Audiobank +Audioseq +Audiotable +link_animetion +icon_item_static +icon_item_24_static +icon_item_field_static +icon_item_dungeon_static +icon_item_gameover_static +icon_item_nes_static +icon_item_ger_static +icon_item_fra_static +item_name_static +map_name_static +do_action_static +message_static +message_texture_static +nes_font_static +nes_message_data_static +ger_message_data_static +fra_message_data_static +staff_message_data_static +map_grand_static +map_48x85_static +map_i_static +code +ovl_title +ovl_select +ovl_opening +ovl_file_choose +ovl_kaleido_scope +ovl_player_actor +ovl_map_mark_data +ovl_En_Test +ovl_Arms_Hook +ovl_Arrow_Fire +ovl_Arrow_Ice +ovl_Arrow_Light +ovl_Bg_Bdan_Objects +ovl_Bg_Bdan_Switch +ovl_Bg_Bom_Guard +ovl_Bg_Bombwall +ovl_Bg_Bowl_Wall +ovl_Bg_Breakwall +ovl_Bg_Ddan_Jd +ovl_Bg_Ddan_Kd +ovl_Bg_Dodoago +ovl_Bg_Dy_Yoseizo +ovl_Bg_Ganon_Otyuka +ovl_Bg_Gate_Shutter +ovl_Bg_Gjyo_Bridge +ovl_Bg_Gnd_Darkmeiro +ovl_Bg_Gnd_Firemeiro +ovl_Bg_Gnd_Iceblock +ovl_Bg_Gnd_Nisekabe +ovl_Bg_Gnd_Soulmeiro +ovl_Bg_Haka +ovl_Bg_Haka_Gate +ovl_Bg_Haka_Huta +ovl_Bg_Haka_Megane +ovl_Bg_Haka_MeganeBG +ovl_Bg_Haka_Sgami +ovl_Bg_Haka_Ship +ovl_Bg_Haka_Trap +ovl_Bg_Haka_Tubo +ovl_Bg_Haka_Water +ovl_Bg_Haka_Zou +ovl_Bg_Heavy_Block +ovl_Bg_Hidan_Curtain +ovl_Bg_Hidan_Dalm +ovl_Bg_Hidan_Firewall +ovl_Bg_Hidan_Fslift +ovl_Bg_Hidan_Fwbig +ovl_Bg_Hidan_Hamstep +ovl_Bg_Hidan_Hrock +ovl_Bg_Hidan_Kousi +ovl_Bg_Hidan_Kowarerukabe +ovl_Bg_Hidan_Rock +ovl_Bg_Hidan_Rsekizou +ovl_Bg_Hidan_Sekizou +ovl_Bg_Hidan_Sima +ovl_Bg_Hidan_Syoku +ovl_Bg_Ice_Objects +ovl_Bg_Ice_Shelter +ovl_Bg_Ice_Shutter +ovl_Bg_Ice_Turara +ovl_Bg_Ingate +ovl_Bg_Jya_1flift +ovl_Bg_Jya_Amishutter +ovl_Bg_Jya_Bigmirror +ovl_Bg_Jya_Block +ovl_Bg_Jya_Bombchuiwa +ovl_Bg_Jya_Bombiwa +ovl_Bg_Jya_Cobra +ovl_Bg_Jya_Goroiwa +ovl_Bg_Jya_Haheniron +ovl_Bg_Jya_Ironobj +ovl_Bg_Jya_Kanaami +ovl_Bg_Jya_Lift +ovl_Bg_Jya_Megami +ovl_Bg_Jya_Zurerukabe +ovl_Bg_Menkuri_Eye +ovl_Bg_Menkuri_Kaiten +ovl_Bg_Menkuri_Nisekabe +ovl_Bg_Mizu_Bwall +ovl_Bg_Mizu_Movebg +ovl_Bg_Mizu_Shutter +ovl_Bg_Mizu_Uzu +ovl_Bg_Mizu_Water +ovl_Bg_Mjin +ovl_Bg_Mori_Bigst +ovl_Bg_Mori_Elevator +ovl_Bg_Mori_Hashigo +ovl_Bg_Mori_Hashira4 +ovl_Bg_Mori_Hineri +ovl_Bg_Mori_Idomizu +ovl_Bg_Mori_Kaitenkabe +ovl_Bg_Mori_Rakkatenjo +ovl_Bg_Po_Event +ovl_Bg_Po_Syokudai +ovl_Bg_Pushbox +ovl_Bg_Relay_Objects +ovl_Bg_Spot00_Break +ovl_Bg_Spot00_Hanebasi +ovl_Bg_Spot01_Fusya +ovl_Bg_Spot01_Idohashira +ovl_Bg_Spot01_Idomizu +ovl_Bg_Spot01_Idosoko +ovl_Bg_Spot01_Objects2 +ovl_Bg_Spot02_Objects +ovl_Bg_Spot03_Taki +ovl_Bg_Spot05_Soko +ovl_Bg_Spot06_Objects +ovl_Bg_Spot07_Taki +ovl_Bg_Spot08_Bakudankabe +ovl_Bg_Spot08_Iceblock +ovl_Bg_Spot09_Obj +ovl_Bg_Spot11_Bakudankabe +ovl_Bg_Spot11_Oasis +ovl_Bg_Spot12_Gate +ovl_Bg_Spot12_Saku +ovl_Bg_Spot15_Rrbox +ovl_Bg_Spot15_Saku +ovl_Bg_Spot16_Bombstone +ovl_Bg_Spot16_Doughnut +ovl_Bg_Spot17_Bakudankabe +ovl_Bg_Spot17_Funen +ovl_Bg_Spot18_Basket +ovl_Bg_Spot18_Futa +ovl_Bg_Spot18_Obj +ovl_Bg_Spot18_Shutter +ovl_Bg_Sst_Floor +ovl_Bg_Toki_Hikari +ovl_Bg_Toki_Swd +ovl_Bg_Treemouth +ovl_Bg_Umajump +ovl_Bg_Vb_Sima +ovl_Bg_Ydan_Hasi +ovl_Bg_Ydan_Maruta +ovl_Bg_Ydan_Sp +ovl_Bg_Zg +ovl_Boss_Dodongo +ovl_Boss_Fd +ovl_Boss_Fd2 +ovl_Boss_Ganon +ovl_Boss_Ganon2 +ovl_Boss_Ganondrof +ovl_Boss_Goma +ovl_Boss_Mo +ovl_Boss_Sst +ovl_Boss_Tw +ovl_Boss_Va +ovl_Demo_6K +ovl_Demo_Du +ovl_Demo_Ec +ovl_Demo_Effect +ovl_Demo_Ext +ovl_Demo_Geff +ovl_Demo_Gj +ovl_Demo_Go +ovl_Demo_Gt +ovl_Demo_Ik +ovl_Demo_Im +ovl_Demo_Kankyo +ovl_Demo_Kekkai +ovl_Demo_Sa +ovl_Demo_Shd +ovl_Demo_Tre_Lgt +ovl_Door_Ana +ovl_Door_Gerudo +ovl_Door_Killer +ovl_Door_Shutter +ovl_Door_Toki +ovl_Door_Warp1 +ovl_Efc_Erupc +ovl_Eff_Dust +ovl_Effect_Ss_Blast +ovl_Effect_Ss_Bomb +ovl_Effect_Ss_Bomb2 +ovl_Effect_Ss_Bubble +ovl_Effect_Ss_D_Fire +ovl_Effect_Ss_Dead_Db +ovl_Effect_Ss_Dead_Dd +ovl_Effect_Ss_Dead_Ds +ovl_Effect_Ss_Dead_Sound +ovl_Effect_Ss_Dt_Bubble +ovl_Effect_Ss_Dust +ovl_Effect_Ss_En_Fire +ovl_Effect_Ss_En_Ice +ovl_Effect_Ss_Extra +ovl_Effect_Ss_Fcircle +ovl_Effect_Ss_Fhg_Flash +ovl_Effect_Ss_Fire_Tail +ovl_Effect_Ss_G_Fire +ovl_Effect_Ss_G_Magma +ovl_Effect_Ss_G_Magma2 +ovl_Effect_Ss_G_Ripple +ovl_Effect_Ss_G_Spk +ovl_Effect_Ss_G_Splash +ovl_Effect_Ss_Hahen +ovl_Effect_Ss_HitMark +ovl_Effect_Ss_Ice_Piece +ovl_Effect_Ss_Ice_Smoke +ovl_Effect_Ss_K_Fire +ovl_Effect_Ss_Kakera +ovl_Effect_Ss_KiraKira +ovl_Effect_Ss_Lightning +ovl_Effect_Ss_Sibuki +ovl_Effect_Ss_Sibuki2 +ovl_Effect_Ss_Solder_Srch_Ball +ovl_Effect_Ss_Stick +ovl_Effect_Ss_Stone1 +ovl_Elf_Msg +ovl_Elf_Msg2 +ovl_En_Am +ovl_En_Ani +ovl_En_Anubice +ovl_En_Anubice_Fire +ovl_En_Anubice_Tag +ovl_En_Arow_Trap +ovl_En_Arrow +ovl_En_Attack_Niw +ovl_En_Ba +ovl_En_Bb +ovl_En_Bdfire +ovl_En_Bigokuta +ovl_En_Bili +ovl_En_Bird +ovl_En_Blkobj +ovl_En_Bom +ovl_En_Bom_Bowl_Man +ovl_En_Bom_Bowl_Pit +ovl_En_Bom_Chu +ovl_En_Bombf +ovl_En_Boom +ovl_En_Box +ovl_En_Brob +ovl_En_Bubble +ovl_En_Butte +ovl_En_Bw +ovl_En_Bx +ovl_En_Changer +ovl_En_Clear_Tag +ovl_En_Cow +ovl_En_Crow +ovl_En_Cs +ovl_En_Daiku +ovl_En_Daiku_Kakariko +ovl_En_Dekubaba +ovl_En_Dekunuts +ovl_En_Dh +ovl_En_Dha +ovl_En_Diving_Game +ovl_En_Dns +ovl_En_Dnt_Demo +ovl_En_Dnt_Jiji +ovl_En_Dnt_Nomal +ovl_En_Dodojr +ovl_En_Dodongo +ovl_En_Dog +ovl_En_Door +ovl_En_Ds +ovl_En_Du +ovl_En_Dy_Extra +ovl_En_Eg +ovl_En_Eiyer +ovl_En_Elf +ovl_En_Encount1 +ovl_En_Encount2 +ovl_En_Ex_Item +ovl_En_Ex_Ruppy +ovl_En_Fd +ovl_En_Fd_Fire +ovl_En_Fhg_Fire +ovl_En_Fire_Rock +ovl_En_Firefly +ovl_En_Fish +ovl_En_Floormas +ovl_En_Fr +ovl_En_Fu +ovl_En_Fw +ovl_En_Fz +ovl_En_G_Switch +ovl_En_Ganon_Mant +ovl_En_Ganon_Organ +ovl_En_Gb +ovl_En_Ge1 +ovl_En_Ge2 +ovl_En_Ge3 +ovl_En_GeldB +ovl_En_GirlA +ovl_En_Gm +ovl_En_Go +ovl_En_Go2 +ovl_En_Goma +ovl_En_Goroiwa +ovl_En_Gs +ovl_En_Guest +ovl_En_Hata +ovl_En_Heishi1 +ovl_En_Heishi2 +ovl_En_Heishi3 +ovl_En_Heishi4 +ovl_En_Hintnuts +ovl_En_Holl +ovl_En_Honotrap +ovl_En_Horse +ovl_En_Horse_Game_Check +ovl_En_Horse_Ganon +ovl_En_Horse_Link_Child +ovl_En_Horse_Normal +ovl_En_Horse_Zelda +ovl_En_Hs +ovl_En_Hs2 +ovl_En_Hy +ovl_En_Ice_Hono +ovl_En_Ik +ovl_En_In +ovl_En_Insect +ovl_En_Ishi +ovl_En_It +ovl_En_Jj +ovl_En_Js +ovl_En_Jsjutan +ovl_En_Kakasi +ovl_En_Kakasi2 +ovl_En_Kakasi3 +ovl_En_Kanban +ovl_En_Karebaba +ovl_En_Ko +ovl_En_Kusa +ovl_En_Kz +ovl_En_Light +ovl_En_Lightbox +ovl_En_M_Fire1 +ovl_En_M_Thunder +ovl_En_Ma1 +ovl_En_Ma2 +ovl_En_Ma3 +ovl_En_Mag +ovl_En_Mb +ovl_En_Md +ovl_En_Mk +ovl_En_Mm +ovl_En_Mm2 +ovl_En_Ms +ovl_En_Mu +ovl_En_Nb +ovl_En_Niw +ovl_En_Niw_Girl +ovl_En_Niw_Lady +ovl_En_Nutsball +ovl_En_Nwc +ovl_En_Ny +ovl_En_OE2 +ovl_En_Okarina_Effect +ovl_En_Okarina_Tag +ovl_En_Okuta +ovl_En_Ossan +ovl_En_Owl +ovl_En_Part +ovl_En_Peehat +ovl_En_Po_Desert +ovl_En_Po_Field +ovl_En_Po_Relay +ovl_En_Po_Sisters +ovl_En_Poh +ovl_En_Pu_box +ovl_En_Rd +ovl_En_Reeba +ovl_En_River_Sound +ovl_En_Rl +ovl_En_Rr +ovl_En_Ru1 +ovl_En_Ru2 +ovl_En_Sa +ovl_En_Sb +ovl_En_Scene_Change +ovl_En_Sda +ovl_En_Shopnuts +ovl_En_Si +ovl_En_Siofuki +ovl_En_Skb +ovl_En_Skj +ovl_En_Skjneedle +ovl_En_Ssh +ovl_En_St +ovl_En_Sth +ovl_En_Stream +ovl_En_Sw +ovl_En_Syateki_Itm +ovl_En_Syateki_Man +ovl_En_Syateki_Niw +ovl_En_Ta +ovl_En_Takara_Man +ovl_En_Tana +ovl_En_Tg +ovl_En_Tite +ovl_En_Tk +ovl_En_Torch +ovl_En_Torch2 +ovl_En_Toryo +ovl_En_Tp +ovl_En_Tr +ovl_En_Trap +ovl_En_Tubo_Trap +ovl_En_Vali +ovl_En_Vase +ovl_En_Vb_Ball +ovl_En_Viewer +ovl_En_Vm +ovl_En_Wall_Tubo +ovl_En_Wallmas +ovl_En_Weather_Tag +ovl_En_Weiyer +ovl_En_Wf +ovl_En_Wonder_Item +ovl_En_Wonder_Talk +ovl_En_Wonder_Talk2 +ovl_En_Wood02 +ovl_En_Xc +ovl_En_Yabusame_Mark +ovl_En_Yukabyun +ovl_En_Zf +ovl_En_Zl1 +ovl_En_Zl2 +ovl_En_Zl3 +ovl_En_Zl4 +ovl_En_Zo +ovl_En_fHG +ovl_End_Title +ovl_Fishing +ovl_Item_B_Heart +ovl_Item_Etcetera +ovl_Item_Inbox +ovl_Item_Ocarina +ovl_Item_Shield +ovl_Magic_Dark +ovl_Magic_Fire +ovl_Magic_Wind +ovl_Mir_Ray +ovl_Obj_Bean +ovl_Obj_Blockstop +ovl_Obj_Bombiwa +ovl_Obj_Comb +ovl_Obj_Dekujr +ovl_Obj_Elevator +ovl_Obj_Hamishi +ovl_Obj_Hana +ovl_Obj_Hsblock +ovl_Obj_Ice_Poly +ovl_Obj_Kibako +ovl_Obj_Kibako2 +ovl_Obj_Lift +ovl_Obj_Lightswitch +ovl_Obj_Makekinsuta +ovl_Obj_Makeoshihiki +ovl_Obj_Mure +ovl_Obj_Mure2 +ovl_Obj_Mure3 +ovl_Obj_Oshihiki +ovl_Obj_Roomtimer +ovl_Obj_Switch +ovl_Obj_Syokudai +ovl_Obj_Timeblock +ovl_Obj_Tsubo +ovl_Obj_Warp2block +ovl_Object_Kankyo +ovl_Oceff_Spot +ovl_Oceff_Storm +ovl_Oceff_Wipe +ovl_Oceff_Wipe2 +ovl_Oceff_Wipe3 +ovl_Oceff_Wipe4 +ovl_Shot_Sun +gameplay_keep +gameplay_field_keep +gameplay_dangeon_keep +gameplay_object_exchange_static +object_link_boy +object_link_child +object_box +object_human +object_okuta +object_poh +object_wallmaster +object_dy_obj +object_firefly +object_dodongo +object_fire +object_niw +object_tite +object_reeba +object_peehat +object_kingdodongo +object_horse +object_zf +object_goma +object_zl1 +object_gol +object_bubble +object_dodojr +object_torch2 +object_bl +object_tp +object_oA1 +object_st +object_bw +object_ei +object_horse_normal +object_oB1 +object_o_anime +object_spot04_objects +object_ddan_objects +object_hidan_objects +object_horse_ganon +object_oA2 +object_spot00_objects +object_mb +object_bombf +object_sk2 +object_oE1 +object_oE_anime +object_oE2 +object_ydan_objects +object_gnd +object_am +object_dekubaba +object_oA3 +object_oA4 +object_oA5 +object_oA6 +object_oA7 +object_jj +object_oA8 +object_oA9 +object_oB2 +object_oB3 +object_oB4 +object_horse_zelda +object_opening_demo1 +object_warp1 +object_b_heart +object_dekunuts +object_oE3 +object_oE4 +object_menkuri_objects +object_oE5 +object_oE6 +object_oE7 +object_oE8 +object_oE9 +object_oE10 +object_oE11 +object_oE12 +object_vali +object_oA10 +object_oA11 +object_mizu_objects +object_fhg +object_ossan +object_mori_hineri1 +object_Bb +object_toki_objects +object_yukabyun +object_zl2 +object_mjin +object_mjin_flash +object_mjin_dark +object_mjin_flame +object_mjin_ice +object_mjin_soul +object_mjin_wind +object_mjin_oka +object_haka_objects +object_spot06_objects +object_ice_objects +object_relay_objects +object_mori_hineri1a +object_mori_hineri2 +object_mori_hineri2a +object_mori_objects +object_mori_tex +object_spot08_obj +object_warp2 +object_hata +object_bird +object_wood02 +object_lightbox +object_pu_box +object_trap +object_vase +object_im +object_ta +object_tk +object_xc +object_vm +object_bv +object_hakach_objects +object_efc_crystal_light +object_efc_fire_ball +object_efc_flash +object_efc_lgt_shower +object_efc_star_field +object_god_lgt +object_light_ring +object_triforce_spot +object_medal +object_bdan_objects +object_sd +object_rd +object_po_sisters +object_heavy_object +object_gndd +object_fd +object_du +object_fw +object_horse_link_child +object_spot02_objects +object_haka +object_ru1 +object_syokudai +object_fd2 +object_dh +object_rl +object_efc_tw +object_demo_tre_lgt +object_gi_key +object_mir_ray +object_brob +object_gi_jewel +object_spot09_obj +object_spot18_obj +object_bdoor +object_spot17_obj +object_shop_dungen +object_nb +object_mo +object_sb +object_gi_melody +object_gi_heart +object_gi_compass +object_gi_bosskey +object_gi_medal +object_gi_nuts +object_sa +object_gi_hearts +object_gi_arrowcase +object_gi_bombpouch +object_in +object_tr +object_spot16_obj +object_oE1s +object_oE4s +object_os_anime +object_gi_bottle +object_gi_stick +object_gi_map +object_oF1d_map +object_ru2 +object_gi_shield_1 +object_dekujr +object_gi_magicpot +object_gi_bomb_1 +object_oF1s +object_ma2 +object_gi_purse +object_hni +object_tw +object_rr +object_bxa +object_anubice +object_gi_gerudo +object_gi_arrow +object_gi_bomb_2 +object_gi_egg +object_gi_scale +object_gi_shield_2 +object_gi_hookshot +object_gi_ocarina +object_gi_milk +object_ma1 +object_ganon +object_sst +object_ny +object_fr +object_gi_pachinko +object_gi_boomerang +object_gi_bow +object_gi_glasses +object_gi_liquid +object_ani +object_demo_6k +object_gi_shield_3 +object_gi_letter +object_spot15_obj +object_jya_obj +object_gi_clothes +object_gi_bean +object_gi_fish +object_gi_saw +object_gi_hammer +object_gi_grass +object_gi_longsword +object_spot01_objects +object_md +object_km1 +object_kw1 +object_zo +object_kz +object_umajump +object_masterkokiri +object_masterkokirihead +object_mastergolon +object_masterzoora +object_aob +object_ik +object_ahg +object_cne +object_gi_niwatori +object_skj +object_gi_bottle_letter +object_bji +object_bba +object_gi_ocarina_0 +object_ds +object_ane +object_boj +object_spot03_object +object_spot07_object +object_fz +object_bob +object_ge1 +object_yabusame_point +object_gi_boots_2 +object_gi_seed +object_gnd_magic +object_d_elevator +object_d_hsblock +object_d_lift +object_mamenoki +object_goroiwa +object_toryo +object_daiku +object_nwc +object_blkobj +object_gm +object_ms +object_hs +object_ingate +object_lightswitch +object_kusa +object_tsubo +object_gi_gloves +object_gi_coin +object_kanban +object_gjyo_objects +object_owl +object_mk +object_fu +object_gi_ki_tan_mask +object_gi_redead_mask +object_gi_skj_mask +object_gi_rabit_mask +object_gi_truth_mask +object_ganon_objects +object_siofuki +object_stream +object_mm +object_fa +object_os +object_gi_eye_lotion +object_gi_powder +object_gi_mushroom +object_gi_ticketstone +object_gi_brokensword +object_js +object_cs +object_gi_prescription +object_gi_bracelet +object_gi_soldout +object_gi_frog +object_mag +object_door_gerudo +object_gt +object_efc_erupc +object_zl2_anime1 +object_zl2_anime2 +object_gi_golonmask +object_gi_zoramask +object_gi_gerudomask +object_ganon2 +object_ka +object_ts +object_zg +object_gi_hoverboots +object_gi_m_arrow +object_ds2 +object_ec +object_fish +object_gi_sutaru +object_gi_goddess +object_ssh +object_bigokuta +object_bg +object_spot05_objects +object_spot12_obj +object_bombiwa +object_hintnuts +object_rs +object_spot00_break +object_gla +object_shopnuts +object_geldb +object_gr +object_dog +object_jya_iron +object_jya_door +object_spot01_objects2 +object_spot11_obj +object_kibako2 +object_dns +object_dnk +object_gi_fire +object_gi_insect +object_gi_butterfly +object_gi_ghost +object_gi_soul +object_bowl +object_po_field +object_demo_kekkai +object_efc_doughnut +object_gi_dekupouch +object_ganon_anime1 +object_ganon_anime2 +object_ganon_anime3 +object_gi_rupy +object_spot01_matoya +object_spot01_matoyab +object_po_composer +object_mu +object_wf +object_skb +object_gj +object_geff +object_haka_door +object_gs +object_ps +object_bwall +object_crow +object_cow +object_cob +object_gi_sword_1 +object_door_killer +object_ouke_haka +object_timeblock +object_zl4 +g_pn_01 +g_pn_02 +g_pn_03 +g_pn_04 +g_pn_05 +g_pn_06 +g_pn_07 +g_pn_08 +g_pn_09 +g_pn_10 +g_pn_11 +g_pn_12 +g_pn_13 +g_pn_14 +g_pn_15 +g_pn_16 +g_pn_17 +g_pn_18 +g_pn_19 +g_pn_20 +g_pn_21 +g_pn_22 +g_pn_23 +g_pn_24 +g_pn_25 +g_pn_26 +g_pn_27 +g_pn_28 +g_pn_29 +g_pn_30 +g_pn_31 +g_pn_32 +g_pn_33 +g_pn_34 +g_pn_35 +g_pn_36 +g_pn_37 +g_pn_38 +g_pn_39 +g_pn_40 +g_pn_41 +g_pn_42 +g_pn_43 +g_pn_44 +g_pn_45 +g_pn_46 +g_pn_47 +g_pn_48 +g_pn_49 +g_pn_50 +g_pn_51 +g_pn_52 +g_pn_53 +g_pn_54 +g_pn_55 +g_pn_56 +g_pn_57 +z_select_static +nintendo_rogo_static +title_static +parameter_static +vr_fine0_static +vr_fine0_pal_static +vr_fine1_static +vr_fine1_pal_static +vr_fine2_static +vr_fine2_pal_static +vr_fine3_static +vr_fine3_pal_static +vr_cloud0_static +vr_cloud0_pal_static +vr_cloud1_static +vr_cloud1_pal_static +vr_cloud2_static +vr_cloud2_pal_static +vr_cloud3_static +vr_cloud3_pal_static +vr_holy0_static +vr_holy0_pal_static +vr_holy1_static +vr_holy1_pal_static +vr_MDVR_static +vr_MDVR_pal_static +vr_MNVR_static +vr_MNVR_pal_static +vr_RUVR_static +vr_RUVR_pal_static +vr_LHVR_static +vr_LHVR_pal_static +vr_KHVR_static +vr_KHVR_pal_static +vr_K3VR_static +vr_K3VR_pal_static +vr_K4VR_static +vr_K4VR_pal_static +vr_K5VR_static +vr_K5VR_pal_static +vr_SP1a_static +vr_SP1a_pal_static +vr_MLVR_static +vr_MLVR_pal_static +vr_KKRVR_static +vr_KKRVR_pal_static +vr_KR3VR_static +vr_KR3VR_pal_static +vr_IPVR_static +vr_IPVR_pal_static +vr_KSVR_static +vr_KSVR_pal_static +vr_GLVR_static +vr_GLVR_pal_static +vr_ZRVR_static +vr_ZRVR_pal_static +vr_DGVR_static +vr_DGVR_pal_static +vr_ALVR_static +vr_ALVR_pal_static +vr_NSVR_static +vr_NSVR_pal_static +vr_LBVR_static +vr_LBVR_pal_static +vr_TTVR_static +vr_TTVR_pal_static +vr_FCVR_static +vr_FCVR_pal_static +elf_message_field +elf_message_ydan +ydan_scene +ydan_room_0 +ydan_room_1 +ydan_room_2 +ydan_room_3 +ydan_room_4 +ydan_room_5 +ydan_room_6 +ydan_room_7 +ydan_room_8 +ydan_room_9 +ydan_room_10 +ydan_room_11 +ddan_scene +ddan_room_0 +ddan_room_1 +ddan_room_2 +ddan_room_3 +ddan_room_4 +ddan_room_5 +ddan_room_6 +ddan_room_7 +ddan_room_8 +ddan_room_9 +ddan_room_10 +ddan_room_11 +ddan_room_12 +ddan_room_13 +ddan_room_14 +ddan_room_15 +ddan_room_16 +bdan_scene +bdan_room_0 +bdan_room_1 +bdan_room_2 +bdan_room_3 +bdan_room_4 +bdan_room_5 +bdan_room_6 +bdan_room_7 +bdan_room_8 +bdan_room_9 +bdan_room_10 +bdan_room_11 +bdan_room_12 +bdan_room_13 +bdan_room_14 +bdan_room_15 +Bmori1_scene +Bmori1_room_0 +Bmori1_room_1 +Bmori1_room_2 +Bmori1_room_3 +Bmori1_room_4 +Bmori1_room_5 +Bmori1_room_6 +Bmori1_room_7 +Bmori1_room_8 +Bmori1_room_9 +Bmori1_room_10 +Bmori1_room_11 +Bmori1_room_12 +Bmori1_room_13 +Bmori1_room_14 +Bmori1_room_15 +Bmori1_room_16 +Bmori1_room_17 +Bmori1_room_18 +Bmori1_room_19 +Bmori1_room_20 +Bmori1_room_21 +Bmori1_room_22 +HIDAN_scene +HIDAN_room_0 +HIDAN_room_1 +HIDAN_room_2 +HIDAN_room_3 +HIDAN_room_4 +HIDAN_room_5 +HIDAN_room_6 +HIDAN_room_7 +HIDAN_room_8 +HIDAN_room_9 +HIDAN_room_10 +HIDAN_room_11 +HIDAN_room_12 +HIDAN_room_13 +HIDAN_room_14 +HIDAN_room_15 +HIDAN_room_16 +HIDAN_room_17 +HIDAN_room_18 +HIDAN_room_19 +HIDAN_room_20 +HIDAN_room_21 +HIDAN_room_22 +HIDAN_room_23 +HIDAN_room_24 +HIDAN_room_25 +HIDAN_room_26 +MIZUsin_scene +MIZUsin_room_0 +MIZUsin_room_1 +MIZUsin_room_2 +MIZUsin_room_3 +MIZUsin_room_4 +MIZUsin_room_5 +MIZUsin_room_6 +MIZUsin_room_7 +MIZUsin_room_8 +MIZUsin_room_9 +MIZUsin_room_10 +MIZUsin_room_11 +MIZUsin_room_12 +MIZUsin_room_13 +MIZUsin_room_14 +MIZUsin_room_15 +MIZUsin_room_16 +MIZUsin_room_17 +MIZUsin_room_18 +MIZUsin_room_19 +MIZUsin_room_20 +MIZUsin_room_21 +MIZUsin_room_22 +jyasinzou_scene +jyasinzou_room_0 +jyasinzou_room_1 +jyasinzou_room_2 +jyasinzou_room_3 +jyasinzou_room_4 +jyasinzou_room_5 +jyasinzou_room_6 +jyasinzou_room_7 +jyasinzou_room_8 +jyasinzou_room_9 +jyasinzou_room_10 +jyasinzou_room_11 +jyasinzou_room_12 +jyasinzou_room_13 +jyasinzou_room_14 +jyasinzou_room_15 +jyasinzou_room_16 +jyasinzou_room_17 +jyasinzou_room_18 +jyasinzou_room_19 +jyasinzou_room_20 +jyasinzou_room_21 +jyasinzou_room_22 +jyasinzou_room_23 +jyasinzou_room_24 +jyasinzou_room_25 +jyasinzou_room_26 +jyasinzou_room_27 +jyasinzou_room_28 +HAKAdan_scene +HAKAdan_room_0 +HAKAdan_room_1 +HAKAdan_room_2 +HAKAdan_room_3 +HAKAdan_room_4 +HAKAdan_room_5 +HAKAdan_room_6 +HAKAdan_room_7 +HAKAdan_room_8 +HAKAdan_room_9 +HAKAdan_room_10 +HAKAdan_room_11 +HAKAdan_room_12 +HAKAdan_room_13 +HAKAdan_room_14 +HAKAdan_room_15 +HAKAdan_room_16 +HAKAdan_room_17 +HAKAdan_room_18 +HAKAdan_room_19 +HAKAdan_room_20 +HAKAdan_room_21 +HAKAdan_room_22 +HAKAdanCH_scene +HAKAdanCH_room_0 +HAKAdanCH_room_1 +HAKAdanCH_room_2 +HAKAdanCH_room_3 +HAKAdanCH_room_4 +HAKAdanCH_room_5 +HAKAdanCH_room_6 +ice_doukutu_scene +ice_doukutu_room_0 +ice_doukutu_room_1 +ice_doukutu_room_2 +ice_doukutu_room_3 +ice_doukutu_room_4 +ice_doukutu_room_5 +ice_doukutu_room_6 +ice_doukutu_room_7 +ice_doukutu_room_8 +ice_doukutu_room_9 +ice_doukutu_room_10 +ice_doukutu_room_11 +men_scene +men_room_0 +men_room_1 +men_room_2 +men_room_3 +men_room_4 +men_room_5 +men_room_6 +men_room_7 +men_room_8 +men_room_9 +men_room_10 +ganontika_scene +ganontika_room_0 +ganontika_room_1 +ganontika_room_2 +ganontika_room_3 +ganontika_room_4 +ganontika_room_5 +ganontika_room_6 +ganontika_room_7 +ganontika_room_8 +ganontika_room_9 +ganontika_room_10 +ganontika_room_11 +ganontika_room_12 +ganontika_room_13 +ganontika_room_14 +ganontika_room_15 +ganontika_room_16 +ganontika_room_17 +ganontika_room_18 +ganontika_room_19 +spot00_scene +spot00_room_0 +spot01_scene +spot01_room_0 +spot02_scene +spot02_room_0 +spot02_room_1 +spot03_scene +spot03_room_0 +spot03_room_1 +spot04_scene +spot04_room_0 +spot04_room_1 +spot04_room_2 +spot05_scene +spot05_room_0 +spot06_scene +spot06_room_0 +spot07_scene +spot07_room_0 +spot07_room_1 +spot08_scene +spot08_room_0 +spot09_scene +spot09_room_0 +spot10_scene +spot10_room_0 +spot10_room_1 +spot10_room_2 +spot10_room_3 +spot10_room_4 +spot10_room_5 +spot10_room_6 +spot10_room_7 +spot10_room_8 +spot10_room_9 +spot11_scene +spot11_room_0 +spot12_scene +spot12_room_0 +spot12_room_1 +spot13_scene +spot13_room_0 +spot13_room_1 +spot15_scene +spot15_room_0 +spot16_scene +spot16_room_0 +spot17_scene +spot17_room_0 +spot17_room_1 +spot18_scene +spot18_room_0 +spot18_room_1 +spot18_room_2 +spot18_room_3 +market_day_scene +market_day_room_0 +market_night_scene +market_night_room_0 +kenjyanoma_scene +kenjyanoma_room_0 +tokinoma_scene +tokinoma_room_0 +tokinoma_room_1 +link_home_scene +link_home_room_0 +kokiri_shop_scene +kokiri_shop_room_0 +kokiri_home_scene +kokiri_home_room_0 +kakusiana_scene +kakusiana_room_0 +kakusiana_room_1 +kakusiana_room_2 +kakusiana_room_3 +kakusiana_room_4 +kakusiana_room_5 +kakusiana_room_6 +kakusiana_room_7 +kakusiana_room_8 +kakusiana_room_9 +kakusiana_room_10 +kakusiana_room_11 +kakusiana_room_12 +kakusiana_room_13 +entra_scene +entra_room_0 +moribossroom_scene +moribossroom_room_0 +moribossroom_room_1 +syatekijyou_scene +syatekijyou_room_0 +shop1_scene +shop1_room_0 +hairal_niwa_scene +hairal_niwa_room_0 +ganon_tou_scene +ganon_tou_room_0 +market_alley_scene +market_alley_room_0 +spot20_scene +spot20_room_0 +market_ruins_scene +market_ruins_room_0 +entra_n_scene +entra_n_room_0 +enrui_scene +enrui_room_0 +market_alley_n_scene +market_alley_n_room_0 +hiral_demo_scene +hiral_demo_room_0 +kokiri_home3_scene +kokiri_home3_room_0 +malon_stable_scene +malon_stable_room_0 +kakariko_scene +kakariko_room_0 +bdan_boss_scene +bdan_boss_room_0 +bdan_boss_room_1 +FIRE_bs_scene +FIRE_bs_room_0 +FIRE_bs_room_1 +hut_scene +hut_room_0 +daiyousei_izumi_scene +daiyousei_izumi_room_0 +hakaana_scene +hakaana_room_0 +yousei_izumi_tate_scene +yousei_izumi_tate_room_0 +yousei_izumi_yoko_scene +yousei_izumi_yoko_room_0 +golon_scene +golon_room_0 +zoora_scene +zoora_room_0 +drag_scene +drag_room_0 +alley_shop_scene +alley_shop_room_0 +night_shop_scene +night_shop_room_0 +impa_scene +impa_room_0 +labo_scene +labo_room_0 +tent_scene +tent_room_0 +nakaniwa_scene +nakaniwa_room_0 +ddan_boss_scene +ddan_boss_room_0 +ddan_boss_room_1 +ydan_boss_scene +ydan_boss_room_0 +ydan_boss_room_1 +HAKAdan_bs_scene +HAKAdan_bs_room_0 +HAKAdan_bs_room_1 +MIZUsin_bs_scene +MIZUsin_bs_room_0 +MIZUsin_bs_room_1 +ganon_scene +ganon_room_0 +ganon_room_1 +ganon_room_2 +ganon_room_3 +ganon_room_4 +ganon_room_5 +ganon_room_6 +ganon_room_7 +ganon_room_8 +ganon_room_9 +ganon_boss_scene +ganon_boss_room_0 +jyasinboss_scene +jyasinboss_room_0 +jyasinboss_room_1 +jyasinboss_room_2 +jyasinboss_room_3 +kokiri_home4_scene +kokiri_home4_room_0 +kokiri_home5_scene +kokiri_home5_room_0 +ganon_final_scene +ganon_final_room_0 +kakariko3_scene +kakariko3_room_0 +hakasitarelay_scene +hakasitarelay_room_0 +hakasitarelay_room_1 +hakasitarelay_room_2 +hakasitarelay_room_3 +hakasitarelay_room_4 +hakasitarelay_room_5 +hakasitarelay_room_6 +shrine_scene +shrine_room_0 +turibori_scene +turibori_room_0 +shrine_n_scene +shrine_n_room_0 +shrine_r_scene +shrine_r_room_0 +hakaana2_scene +hakaana2_room_0 +gerudoway_scene +gerudoway_room_0 +gerudoway_room_1 +gerudoway_room_2 +gerudoway_room_3 +gerudoway_room_4 +gerudoway_room_5 +hairal_niwa_n_scene +hairal_niwa_n_room_0 +bowling_scene +bowling_room_0 +hakaana_ouke_scene +hakaana_ouke_room_0 +hakaana_ouke_room_1 +hakaana_ouke_room_2 +hylia_labo_scene +hylia_labo_room_0 +souko_scene +souko_room_0 +souko_room_1 +souko_room_2 +miharigoya_scene +miharigoya_room_0 +mahouya_scene +mahouya_room_0 +takaraya_scene +takaraya_room_0 +takaraya_room_1 +takaraya_room_2 +takaraya_room_3 +takaraya_room_4 +takaraya_room_5 +takaraya_room_6 +ganon_sonogo_scene +ganon_sonogo_room_0 +ganon_sonogo_room_1 +ganon_sonogo_room_2 +ganon_sonogo_room_3 +ganon_sonogo_room_4 +ganon_demo_scene +ganon_demo_room_0 +face_shop_scene +face_shop_room_0 +kinsuta_scene +kinsuta_room_0 +ganontikasonogo_scene +ganontikasonogo_room_0 +ganontikasonogo_room_1 +bump_texture_static +anime_model_1_static +anime_model_2_static +anime_model_3_static +anime_model_4_static +anime_model_5_static +anime_model_6_static +anime_texture_1_static +anime_texture_2_static +anime_texture_3_static +anime_texture_4_static +anime_texture_5_static +anime_texture_6_static +softsprite_matrix_static diff --git a/baseroms/gc-eu/dmadata_start.txt b/baseroms/gc-eu/dmadata_start.txt new file mode 100644 index 000000000..08515b6d6 --- /dev/null +++ b/baseroms/gc-eu/dmadata_start.txt @@ -0,0 +1 @@ +0x07170 diff --git a/spec b/spec index 1630ba28c..a20bc38c6 100644 --- a/spec +++ b/spec @@ -655,7 +655,11 @@ beginseg include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.o" include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.o" include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.o" +#if !OOT_MQ include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.o" +#else + include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data_mq.o" +#endif include "$(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc.o" endseg @@ -669,7 +673,11 @@ endseg beginseg name "ovl_map_mark_data" compress +#if !OOT_MQ include "$(BUILD_DIR)/src/overlays/misc/ovl_map_mark_data/z_map_mark_data.o" +#else + include "$(BUILD_DIR)/src/overlays/misc/ovl_map_mark_data/z_map_mark_data_mq.o" +#endif include "$(BUILD_DIR)/src/overlays/misc/ovl_map_mark_data/ovl_map_mark_data_reloc.o" endseg diff --git a/src/boot/build.c b/src/boot/build.c index 91585b4eb..d2fb891c0 100644 --- a/src/boot/build.c +++ b/src/boot/build.c @@ -3,7 +3,9 @@ const char gBuildTeam[] = "zelda@srd022j"; // TODO: Use per-version preprocessor defines #if OOT_DEBUG // gc-eu-mq-dbg const char gBuildDate[] = "03-02-21 00:16:31"; -#else // gc-eu-mq +#elif !OOT_MQ // gc-eu +const char gBuildDate[] = "03-02-21 20:12:23"; +#else // gc-eu-mq const char gBuildDate[] = "03-02-21 20:37:19"; #endif diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c index d3dc09751..b52c2e5ca 100644 --- a/src/code/z_scene_table.c +++ b/src/code/z_scene_table.c @@ -418,7 +418,11 @@ void Scene_DrawConfigWaterTemple(PlayState* play) { spAC = play->roomCtx.unk_74[1] & 0xFF; gameplayFrames = play->gameplayFrames; +#if !OOT_MQ + gSPSegment(POLY_XLU_DISP++, 0x06, SEGMENTED_TO_VIRTUAL(D_8012A330[((void)0, gSaveContext.save.nightFlag)])); +#else gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A330[((void)0, gSaveContext.save.nightFlag)])); +#endif if (spB0 == 1) { gSPSegment(POLY_OPA_DISP++, 0x08, diff --git a/src/overlays/actors/ovl_En_Mag/z_en_mag.c b/src/overlays/actors/ovl_En_Mag/z_en_mag.c index e3f40128a..fde43d48e 100644 --- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c +++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c @@ -76,12 +76,20 @@ void EnMag_Init(Actor* thisx, PlayState* play) { this->effectPrimLodFrac = 128.0f; this->effectAlpha = 255.0f; +#if !OOT_MQ + this->effectPrimColor[0] = 255.0f; + this->effectPrimColor[1] = 255.0f; + this->effectPrimColor[2] = 170; + this->effectEnvColor[0] = 255.0f; + this->effectEnvColor[1] = 100; +#else this->effectPrimColor[0] = 170; this->effectPrimColor[1] = 255.0f; this->effectPrimColor[2] = 255.0f; this->effectEnvColor[0] = 200.0f; this->effectEnvColor[1] = 255.0f; this->effectEnvColor[2] = 0; +#endif gSaveContext.forceRisingButtonAlphas = false; this->globalState = MAG_STATE_DISPLAY; @@ -121,12 +129,20 @@ void EnMag_Update(Actor* thisx, PlayState* play) { this->effectPrimLodFrac = 128.0f; this->effectAlpha = 255.0f; +#if !OOT_MQ + this->effectPrimColor[0] = 255.0f; + this->effectPrimColor[1] = 255.0f; + this->effectPrimColor[2] = 170; + this->effectEnvColor[0] = 255.0f; + this->effectEnvColor[1] = 100; +#else this->effectPrimColor[0] = 170; this->effectPrimColor[1] = 255.0f; this->effectPrimColor[2] = 255.0f; this->effectEnvColor[0] = 200.0f; this->effectEnvColor[1] = 255.0f; this->effectEnvColor[2] = 0; +#endif this->globalState = MAG_STATE_DISPLAY; sDelayTimer = 20; @@ -187,8 +203,13 @@ void EnMag_Update(Actor* thisx, PlayState* play) { this->effectFadeInState = 1; } } else if (this->effectFadeInState == 1) { +#if !OOT_MQ + this->effectPrimColor[2] += -2.125f; + this->effectEnvColor[1] += -3.875f; +#else this->effectPrimColor[0] += -2.125f; this->effectEnvColor[0] += -1.375f; +#endif this->effectPrimLodFrac += 2.4f; @@ -197,8 +218,13 @@ void EnMag_Update(Actor* thisx, PlayState* play) { if (this->effectFadeInTimer == 0) { this->effectPrimLodFrac = 128.0f; +#if !OOT_MQ + this->effectPrimColor[2] = 170.0f; + this->effectEnvColor[1] = 100.0f; +#else this->effectPrimColor[0] = 170.0f; this->effectEnvColor[0] = 200.0f; +#endif this->effectFadeInTimer = 32; this->effectFadeInState = 2; @@ -371,6 +397,13 @@ void EnMag_DrawCharTexture(Gfx** gfxP, u8* texture, s32 rectLeft, s32 rectTop) { *gfxP = gfx; } +// Title logo is shifted to the left in Master Quest +#if !OOT_MQ +#define LOGO_X_SHIFT 0 +#else +#define LOGO_X_SHIFT (-8) +#endif + void EnMag_DrawInner(Actor* thisx, PlayState* play, Gfx** gfxP) { static s16 textAlpha = 0; static s16 textFadeDirection = 0; @@ -413,7 +446,7 @@ void EnMag_DrawInner(Actor* thisx, PlayState* play, Gfx** gfxP) { if ((s16)this->effectPrimLodFrac != 0) { for (k = 0, i = 0, rectTop = 0; i < 3; i++, rectTop += 64) { - for (j = 0, rectLeft = 56; j < 3; j++, k++, rectLeft += 64) { + for (j = 0, rectLeft = 64 + LOGO_X_SHIFT; j < 3; j++, k++, rectLeft += 64) { EnMag_DrawEffectTextures(&gfx, effectMaskTextures[k], gTitleFlameEffectTex, 64, 64, 32, 32, rectLeft, rectTop, 64, 64, 1024, 1024, 1, 1, k, this); } @@ -423,7 +456,7 @@ void EnMag_DrawInner(Actor* thisx, PlayState* play, Gfx** gfxP) { gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, (s16)this->mainAlpha); if ((s16)this->mainAlpha != 0) { - EnMag_DrawImageRGBA32(&gfx, 152, 100, (u8*)gTitleZeldaShieldLogoMQTex, 160, 160); + EnMag_DrawImageRGBA32(&gfx, 160 + LOGO_X_SHIFT, 100, (u8*)gTitleZeldaShieldLogoMQTex, 160, 160); } Gfx_SetupDL_39Ptr(&gfx); @@ -440,23 +473,35 @@ void EnMag_DrawInner(Actor* thisx, PlayState* play, Gfx** gfxP) { } gDPSetPrimColor(gfx++, 0, 0, 0, 0, 0, (s16)this->mainAlpha); +#if !OOT_MQ + gDPSetEnvColor(gfx++, 100, 0, 100, 255); +#else gDPSetEnvColor(gfx++, 0, 0, 100, 255); +#endif if ((s16)this->mainAlpha != 0) { - EnMag_DrawTextureI8(&gfx, gTitleTheLegendOfTextTex, 72, 8, 146, 73, 72, 8, 1024, 1024); - EnMag_DrawTextureI8(&gfx, gTitleOcarinaOfTimeTMTextTex, 96, 8, 144, 127, 96, 8, 1024, 1024); + EnMag_DrawTextureI8(&gfx, gTitleTheLegendOfTextTex, 72, 8, 154 + LOGO_X_SHIFT, 73, 72, 8, 1024, 1024); + EnMag_DrawTextureI8(&gfx, gTitleOcarinaOfTimeTMTextTex, 96, 8, 152 + LOGO_X_SHIFT, 127, 96, 8, 1024, 1024); gDPPipeSync(gfx++); + +#if !OOT_MQ + gDPSetPrimColor(gfx++, 0, 0, 200, 200, 150, (s16)this->mainAlpha); + gDPSetEnvColor(gfx++, 100, 100, 50, 255); +#else gDPSetPrimColor(gfx++, 0, 0, 100, 150, 255, (s16)this->mainAlpha); gDPSetEnvColor(gfx++, 20, 80, 160, 255); +#endif - EnMag_DrawTextureI8(&gfx, gTitleTheLegendOfTextTex, 72, 8, 145, 72, 72, 8, 1024, 1024); - EnMag_DrawTextureI8(&gfx, gTitleOcarinaOfTimeTMTextTex, 96, 8, 143, 126, 96, 8, 1024, 1024); + EnMag_DrawTextureI8(&gfx, gTitleTheLegendOfTextTex, 72, 8, 153 + LOGO_X_SHIFT, 72, 72, 8, 1024, 1024); + EnMag_DrawTextureI8(&gfx, gTitleOcarinaOfTimeTMTextTex, 96, 8, 151 + LOGO_X_SHIFT, 126, 96, 8, 1024, 1024); +#if OOT_MQ gDPPipeSync(gfx++); gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, (s16)this->subAlpha); EnMag_DrawImageRGBA32(&gfx, 174, 145, (u8*)gTitleMasterQuestSubtitleTex, 128, 32); +#endif } Gfx_SetupDL_39Ptr(&gfx); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.c b/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.c index df96fc876..64c151b04 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.c @@ -34,9 +34,10 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 1, + 2, { { 1, 48.0f, -63.0f }, + { 5, 52.0f, -68.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -58,11 +59,9 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 3, + 1, { - { 0, 46.0f, -59.0f }, { 4, 77.0f, -26.0f }, - { 5, 65.0f, -61.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -86,9 +85,9 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 4, 3, { - { 2, 55.0f, -36.0f }, - { 3, 54.0f, -51.0f }, - { 5, 13.0f, -61.0f }, + { 10, 25.0f, -41.0f }, + { 4, 53.0f, -47.0f }, + { 6, 58.0f, -59.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -98,11 +97,10 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 3, + 2, { - { 0, 47.0f, -40.0f }, - { 1, 51.0f, -3.0f }, - { 4, 47.0f, -47.0f }, + { 5, 13.0f, -60.0f }, + { 8, 20.0f, -49.0f }, } }, { PAUSE_MAP_MARK_BOSS, 23, @@ -120,13 +118,11 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 5, + 3, { - { 3, 48.0f, -68.0f }, - { 5, 50.0f, -66.0f }, - { 7, 55.0f, -50.0f }, - { 9, 58.0f, 1.0f }, - { 10, 62.0f, -45.0f }, + { 1, 67.0f, -13.0f }, + { 2, 28.0f, -13.0f }, + { 4, 38.0f, 0.0f }, } }, { PAUSE_MAP_MARK_BOSS, 23, @@ -140,19 +136,6 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { }, // Jabu-Jabu's Belly map 1 { - { PAUSE_MAP_MARK_CHEST, - 23, - sMarkChestVtx, - 4, - 6, - { - { 0, 37.0f, -49.0f }, - { 1, 65.0f, -38.0f }, - { 2, 52.0f, -48.0f }, - { 4, 46.0f, -36.0f }, - { 6, 59.0f, -41.0f }, - { 8, 52.0f, -26.0f }, - } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, // Forest Temple map 0 @@ -161,12 +144,13 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 6, + 7, { - { 3, 53.0f, -64.0f }, - { 5, 65.0f, -9.0f }, - { 12, 49.0f, -1.0f }, - { 13, 40.0f, 0.0f }, + { 1, 50.0f, -12.0f }, + { 3, 46.0f, -66.0f }, + { 4, 20.0f, -38.0f }, + { 12, 49.0f, -3.0f }, + { 13, 39.0f, 0.0f }, { 14, 18.0f, -2.0f }, { 15, 59.0f, 0.0f }, } }, @@ -180,10 +164,10 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 4, 4, { - { 0, 49.0f, -1.0f }, - { 1, 71.0f, -13.0f }, - { 2, 11.0f, -25.0f }, - { 6, 84.0f, -16.0f }, + { 0, 49.0f, -3.0f }, + { 2, 12.0f, -26.0f }, + { 5, 74.0f, -13.0f }, + { 7, 82.0f, -22.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -195,7 +179,7 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 4, 1, { - { 9, 65.0f, -30.0f }, + { 9, 31.0f, -29.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -207,7 +191,7 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 4, 1, { - { 11, 41.0f, -24.0f }, + { 11, 40.0f, -41.0f }, } }, { PAUSE_MAP_MARK_BOSS, 23, @@ -225,9 +209,10 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 1, + 2, { - { 5, 24.0f, -40.0f }, + { 5, 22.0f, -41.0f }, + { 13, 74.0f, -29.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -241,11 +226,14 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 3, + 6, { - { 3, 75.0f, -47.0f }, - { 6, 72.0f, -51.0f }, - { 8, 65.0f, -12.0f }, + { 3, 76.0f, -48.0f }, + { 6, 72.0f, -50.0f }, + { 7, 44.0f, -17.0f }, + { 8, 63.0f, -12.0f }, + { 9, 30.0f, -34.0f }, + { 10, 61.0f, -31.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -257,7 +245,7 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 4, 1, { - { 11, 78.0f, -35.0f }, + { 11, 78.0f, -34.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -269,11 +257,11 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 4, 5, { - { 1, 67.0f, -58.0f }, - { 2, 48.0f, -30.0f }, - { 4, 63.0f, -14.0f }, - { 7, 36.0f, -45.0f }, - { 12, 47.0f, -26.0f }, + { 0, 48.0f, -17.0f }, + { 1, 35.0f, -45.0f }, + { 2, 67.0f, -58.0f }, + { 4, 74.0f, -15.0f }, + { 12, 47.0f, -27.0f }, } }, { PAUSE_MAP_MARK_BOSS, 23, @@ -291,9 +279,11 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 1, + 3, { { 2, 88.0f, -60.0f }, + { 7, 23.0f, -2.0f }, + { 9, 84.0f, -45.0f }, } }, { PAUSE_MAP_MARK_BOSS, 23, @@ -311,9 +301,10 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 1, + 2, { - { 0, 88.0f, -60.0f }, + { 0, 86.0f, -60.0f }, + { 8, 76.0f, -72.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -323,10 +314,12 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 2, + 4, { { 1, 88.0f, -60.0f }, - { 5, 49.0f, -43.0f }, + { 3, 42.0f, -21.0f }, + { 5, 47.0f, -15.0f }, + { 10, 33.0f, -31.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -338,7 +331,7 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 4, 1, { - { 6, 75.0f, -65.0f }, + { 6, 77.0f, -66.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -348,9 +341,10 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 1, + 2, { - { 18, 46.0f, -30.0f }, + { 10, 59.0f, -9.0f }, + { 18, 32.0f, -20.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -362,11 +356,11 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 4, 5, { - { 1, 23.0f, -33.0f }, - { 2, 56.0f, -11.0f }, - { 5, 83.0f, -25.0f }, - { 24, 84.0f, -39.0f }, - { 25, 74.0f, -37.0f }, + { 1, 20.0f, -43.0f }, + { 5, 83.0f, -26.0f }, + { 15, 57.0f, -14.0f }, + { 20, 81.0f, -55.0f }, + { 21, 87.0f, -55.0f }, } }, { PAUSE_MAP_MARK_BOSS, 23, @@ -384,13 +378,14 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 5, + 6, { - { 3, 46.0f, -20.0f }, - { 6, 28.0f, -19.0f }, - { 12, 25.0f, -25.0f }, - { 15, 50.0f, -13.0f }, - { 28, 48.0f, -29.0f }, + { 2, 41.0f, -16.0f }, + { 3, 47.0f, -17.0f }, + { 6, 27.0f, -16.0f }, + { 12, 29.0f, -20.0f }, + { 13, 70.0f, -22.0f }, + { 14, 70.0f, -25.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -400,17 +395,12 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 9, + 4, { - { 0, 14.0f, -24.0f }, + { 0, 38.0f, -17.0f }, { 4, 55.0f, -14.0f }, - { 7, 78.0f, -2.0f }, - { 8, 14.0f, -16.0f }, - { 26, 42.0f, -43.0f }, - { 27, 50.0f, -43.0f }, - { 29, 25.0f, -35.0f }, - { 30, 42.0f, -36.0f }, - { 31, 50.0f, -36.0f }, + { 8, 15.0f, -14.0f }, + { 7, 78.0f, -3.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, @@ -449,7 +439,6 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 2, { { 12, 96.0f, -51.0f }, - { 16, 46.0f, -42.0f }, { 22, 96.0f, -55.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, @@ -460,7 +449,7 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 12, + 10, { { 4, 43.0f, -66.0f }, { 5, 37.0f, -66.0f }, @@ -470,8 +459,6 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { { 10, 15.0f, -4.0f }, { 11, 25.0f, -4.0f }, { 13, 19.0f, -29.0f }, - { 14, 78.0f, -15.0f }, - { 15, 60.0f, -70.0f }, { 21, 92.0f, -29.0f }, { 20, 87.0f, -20.0f }, } }, @@ -491,15 +478,32 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 23, sMarkChestVtx, 4, - 2, + 9, { - { 2, 84.0f, -38.0f }, - { 3, 57.0f, -18.0f }, + { 1, 51.0f, -24.0f }, + { 3, 84.0f, -38.0f }, + { 4, 31.0f, -2.0f }, + { 5, 67.0f, -27.0f }, + { 8, 46.0f, -27.0f }, + { 10, 82.0f, -12.0f }, + { 12, 80.0f, -16.0f }, + { 14, 62.0f, -24.0f }, + { 20, 89.0f, -38.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, // Bottom of the Well map 1 { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 3, + { + { 2, 54.0f, -27.0f }, + { 9, 28.0f, -17.0f }, + { 16, 56.0f, -38.0f }, + } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, // Bottom of the Well map 2 @@ -510,7 +514,7 @@ PauseMapMarksData gPauseMapMarkDataTable[] = { 4, 1, { - { 1, 72.0f, -32.0f }, + { 7, 71.0f, -33.0f }, } }, { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, }, diff --git a/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data_mq.c b/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data_mq.c new file mode 100644 index 000000000..df96fc876 --- /dev/null +++ b/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data_mq.c @@ -0,0 +1,531 @@ +#include "z_kaleido_scope.h" + +static const Vtx sMarkBossVtx[] = { + VTX(-4, 4, 0, 0, 0, 255, 255, 255, 255), + VTX(-4, -4, 0, 0, 256, 255, 255, 255, 255), + VTX(4, 4, 0, 256, 0, 255, 255, 255, 255), + VTX(4, -4, 0, 256, 256, 255, 255, 255, 255), +}; + +static const Vtx sMarkChestVtx[] = { + VTX(-4, 4, 0, 0, 0, 255, 255, 255, 255), + VTX(-4, -4, 0, 0, 256, 255, 255, 255, 255), + VTX(4, 4, 0, 256, 0, 255, 255, 255, 255), + VTX(4, -4, 0, 256, 256, 255, 255, 255, 255), +}; + +PauseMapMarksData gPauseMapMarkDataTable[] = { + // Deku Tree map 0 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 2, + { + { 2, 40.0f, -33.0f }, + { 6, 49.0f, -42.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Deku Tree map 1 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 1, 48.0f, -63.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Deku Tree map 2 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 3, 84.0f, -39.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Deku Tree map 3 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 3, + { + { 0, 46.0f, -59.0f }, + { 4, 77.0f, -26.0f }, + { 5, 65.0f, -61.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Deku Tree map 4 + { + { PAUSE_MAP_MARK_BOSS, + 23, + sMarkBossVtx, + 4, + 1, + { + { -1, 55.0f, 0.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Dodongo's Cavern map 0 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 3, + { + { 2, 55.0f, -36.0f }, + { 3, 54.0f, -51.0f }, + { 5, 13.0f, -61.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Dodongo's Cavern map 1 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 3, + { + { 0, 47.0f, -40.0f }, + { 1, 51.0f, -3.0f }, + { 4, 47.0f, -47.0f }, + } }, + { PAUSE_MAP_MARK_BOSS, + 23, + sMarkBossVtx, + 4, + 1, + { + { -1, 23.0f, -25.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Jabu-Jabu's Belly map 0 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 5, + { + { 3, 48.0f, -68.0f }, + { 5, 50.0f, -66.0f }, + { 7, 55.0f, -50.0f }, + { 9, 58.0f, 1.0f }, + { 10, 62.0f, -45.0f }, + } }, + { PAUSE_MAP_MARK_BOSS, + 23, + sMarkBossVtx, + 4, + 1, + { + { -1, 65.0f, -37.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Jabu-Jabu's Belly map 1 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 6, + { + { 0, 37.0f, -49.0f }, + { 1, 65.0f, -38.0f }, + { 2, 52.0f, -48.0f }, + { 4, 46.0f, -36.0f }, + { 6, 59.0f, -41.0f }, + { 8, 52.0f, -26.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Forest Temple map 0 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 6, + { + { 3, 53.0f, -64.0f }, + { 5, 65.0f, -9.0f }, + { 12, 49.0f, -1.0f }, + { 13, 40.0f, 0.0f }, + { 14, 18.0f, -2.0f }, + { 15, 59.0f, 0.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Forest Temple map 1 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 4, + { + { 0, 49.0f, -1.0f }, + { 1, 71.0f, -13.0f }, + { 2, 11.0f, -25.0f }, + { 6, 84.0f, -16.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Forest Temple map 2 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 9, 65.0f, -30.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Forest Temple map 3 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 11, 41.0f, -24.0f }, + } }, + { PAUSE_MAP_MARK_BOSS, + 23, + sMarkBossVtx, + 4, + 1, + { + { -1, 50.0f, -11.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Fire Temple map 0 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 5, 24.0f, -40.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Fire Temple map 1 + { + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Fire Temple map 2 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 3, + { + { 3, 75.0f, -47.0f }, + { 6, 72.0f, -51.0f }, + { 8, 65.0f, -12.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Fire Temple map 3 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 11, 78.0f, -35.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Fire Temple map 4 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 5, + { + { 1, 67.0f, -58.0f }, + { 2, 48.0f, -30.0f }, + { 4, 63.0f, -14.0f }, + { 7, 36.0f, -45.0f }, + { 12, 47.0f, -26.0f }, + } }, + { PAUSE_MAP_MARK_BOSS, + 23, + sMarkBossVtx, + 4, + 1, + { + { -1, 26.0f, -34.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Water Temple map 0 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 2, 88.0f, -60.0f }, + } }, + { PAUSE_MAP_MARK_BOSS, + 23, + sMarkBossVtx, + 4, + 1, + { + { -1, 62.0f, -23.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Water Temple map 1 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 0, 88.0f, -60.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Water Temple map 2 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 2, + { + { 1, 88.0f, -60.0f }, + { 5, 49.0f, -43.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Water Temple map 3 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 6, 75.0f, -65.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Spirit Temple map 0 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 18, 46.0f, -30.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Spirit Temple map 1 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 5, + { + { 1, 23.0f, -33.0f }, + { 2, 56.0f, -11.0f }, + { 5, 83.0f, -25.0f }, + { 24, 84.0f, -39.0f }, + { 25, 74.0f, -37.0f }, + } }, + { PAUSE_MAP_MARK_BOSS, + 23, + sMarkBossVtx, + 4, + 1, + { + { -1, 47.0f, 0.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Spirit Temple map 2 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 5, + { + { 3, 46.0f, -20.0f }, + { 6, 28.0f, -19.0f }, + { 12, 25.0f, -25.0f }, + { 15, 50.0f, -13.0f }, + { 28, 48.0f, -29.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Spirit Temple map 3 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 9, + { + { 0, 14.0f, -24.0f }, + { 4, 55.0f, -14.0f }, + { 7, 78.0f, -2.0f }, + { 8, 14.0f, -16.0f }, + { 26, 42.0f, -43.0f }, + { 27, 50.0f, -43.0f }, + { 29, 25.0f, -35.0f }, + { 30, 42.0f, -36.0f }, + { 31, 50.0f, -36.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Shadow Temple map 0 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 2, + { + { 1, 41.0f, -17.0f }, + { 7, 27.0f, -24.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Shadow Temple map 1 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 2, + { + { 2, 81.0f, -20.0f }, + { 3, 74.0f, -37.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Shadow Temple map 2 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 2, + { + { 12, 96.0f, -51.0f }, + { 16, 46.0f, -42.0f }, + { 22, 96.0f, -55.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Shadow Temple map 3 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 12, + { + { 4, 43.0f, -66.0f }, + { 5, 37.0f, -66.0f }, + { 6, 33.0f, -72.0f }, + { 8, 85.0f, -18.0f }, + { 9, 61.0f, -42.0f }, + { 10, 15.0f, -4.0f }, + { 11, 25.0f, -4.0f }, + { 13, 19.0f, -29.0f }, + { 14, 78.0f, -15.0f }, + { 15, 60.0f, -70.0f }, + { 21, 92.0f, -29.0f }, + { 20, 87.0f, -20.0f }, + } }, + { PAUSE_MAP_MARK_BOSS, + 23, + sMarkBossVtx, + 4, + 1, + { + { -1, 31.0f, -45.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Bottom of the Well map 0 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 2, + { + { 2, 84.0f, -38.0f }, + { 3, 57.0f, -18.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Bottom of the Well map 1 + { + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Bottom of the Well map 2 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 1, + { + { 1, 72.0f, -32.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, + // Ice Cavern map 0 + { + { PAUSE_MAP_MARK_CHEST, + 23, + sMarkChestVtx, + 4, + 3, + { + { 0, 66.0f, -2.0f }, + { 1, 77.0f, -46.0f }, + { 2, 27.0f, -45.0f }, + } }, + { PAUSE_MAP_MARK_NONE, 0, NULL, 0, 0, { 0 } }, + }, +}; diff --git a/src/overlays/misc/ovl_map_mark_data/z_map_mark_data.c b/src/overlays/misc/ovl_map_mark_data/z_map_mark_data.c index 1fa95837a..013b8b7b3 100644 --- a/src/overlays/misc/ovl_map_mark_data/z_map_mark_data.c +++ b/src/overlays/misc/ovl_map_mark_data/z_map_mark_data.c @@ -17,9 +17,10 @@ static MapMarkData sMapMarkDekuTree[] = { // Deku Tree minimap 2 { { MAP_MARK_CHEST, - 1, + 2, { { 1, 64, 62 }, + { 5, 71, 69 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -38,12 +39,6 @@ static MapMarkData sMapMarkDekuTree[] = { }, // Deku Tree minimap 5 { - { MAP_MARK_CHEST, - 2, - { - { 0, 46, 50 }, - { 5, 76, 52 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Deku Tree minimap 6 @@ -91,10 +86,9 @@ static MapMarkData sMapMarkDodongosCavern[] = { // Dodongo's Cavern minimap 0 { { MAP_MARK_CHEST, - 2, + 1, { - { 0, 69, 14 }, - { 4, 69, 30 }, + { 8, 22, 32 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -116,20 +110,10 @@ static MapMarkData sMapMarkDodongosCavern[] = { }, // Dodongo's Cavern minimap 5 { - { MAP_MARK_CHEST, - 1, - { - { 5, 54, 54 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Dodongo's Cavern minimap 6 { - { MAP_MARK_CHEST, - 1, - { - { 2, 69, 54 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Dodongo's Cavern minimap 7 @@ -148,9 +132,10 @@ static MapMarkData sMapMarkDodongosCavern[] = { // Dodongo's Cavern minimap 9 { { MAP_MARK_CHEST, - 1, + 2, { - { 3, 59, 53 }, + { 4, 58, 40 }, + { 6, 65, 64 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -172,19 +157,24 @@ static MapMarkData sMapMarkDodongosCavern[] = { }, // Dodongo's Cavern minimap 14 { - { MAP_MARK_CHEST, - 1, - { - { 1, 68, 54 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Dodongo's Cavern minimap 15 { + { MAP_MARK_CHEST, + 1, + { + { 5, 68, 64 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Dodongo's Cavern minimap 16 { + { MAP_MARK_CHEST, + 1, + { + { 10, 31, 27 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Dodongo's Cavern minimap 17 @@ -200,21 +190,10 @@ static MapMarkData sMapMarkDodongosCavern[] = { static MapMarkData sMapMarkJabuJabuBelly[] = { // Jabu-Jabu's Belly minimap 0 { - { MAP_MARK_CHEST, - 2, - { - { 3, 66, 50 }, - { 5, 72, 47 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Jabu-Jabu's Belly minimap 1 { - { MAP_MARK_CHEST, - 1, - { - { 7, 72, 54 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Jabu-Jabu's Belly minimap 2 @@ -223,12 +202,6 @@ static MapMarkData sMapMarkJabuJabuBelly[] = { }, // Jabu-Jabu's Belly minimap 3 { - { MAP_MARK_CHEST, - 2, - { - { 4, 64, 62 }, - { 8, 79, 38 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Jabu-Jabu's Belly minimap 4 @@ -237,11 +210,6 @@ static MapMarkData sMapMarkJabuJabuBelly[] = { }, // Jabu-Jabu's Belly minimap 5 { - { MAP_MARK_CHEST, - 1, - { - { 10, 64, 45 }, - } }, { MAP_MARK_BOSS, 1, { @@ -263,23 +231,33 @@ static MapMarkData sMapMarkJabuJabuBelly[] = { }, // Jabu-Jabu's Belly minimap 9 { + { MAP_MARK_CHEST, + 1, + { + { 1, 74, 57 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Jabu-Jabu's Belly minimap 10 { + { MAP_MARK_CHEST, + 1, + { + { 2, 59, 57 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Jabu-Jabu's Belly minimap 11 { - { MAP_MARK_CHEST, - 1, - { - { 9, 68, 45 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Jabu-Jabu's Belly minimap 12 { + { MAP_MARK_CHEST, + 1, + { + { 4, 68, 51 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Jabu-Jabu's Belly minimap 13 @@ -288,22 +266,14 @@ static MapMarkData sMapMarkJabuJabuBelly[] = { }, // Jabu-Jabu's Belly minimap 14 { - { MAP_MARK_CHEST, - 2, - { - { 1, 79, 33 }, - { 6, 61, 41 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Jabu-Jabu's Belly minimap 15 { - { MAP_MARK_CHEST, - 2, - { - { 0, 48, 57 }, - { 2, 77, 55 }, - } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 16 + { { MAP_MARK_NONE, 0, { 0 } }, }, }; @@ -338,22 +308,26 @@ static MapMarkData sMapMarkForestTemple[] = { { MAP_MARK_CHEST, 1, { - { 0, 72, 57 }, + { 0, 72, 60 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Forest Temple minimap 7 { { MAP_MARK_CHEST, - 2, + 1, { - { 1, 69, 39 }, - { 9, 62, 65 }, + { 5, 76, 38 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Forest Temple minimap 8 { + { MAP_MARK_CHEST, + 1, + { + { 9, 59, 66 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Forest Temple minimap 9 @@ -361,12 +335,17 @@ static MapMarkData sMapMarkForestTemple[] = { { MAP_MARK_CHEST, 1, { - { 9, 71, 59 }, + { 9, 15, 58 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Forest Temple minimap 10 { + { MAP_MARK_CHEST, + 1, + { + { 1, 69, 56 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Forest Temple minimap 11 @@ -378,7 +357,7 @@ static MapMarkData sMapMarkForestTemple[] = { { MAP_MARK_CHEST, 1, { - { 13, 80, 53 }, + { 13, 80, 54 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -400,7 +379,7 @@ static MapMarkData sMapMarkForestTemple[] = { { MAP_MARK_CHEST, 1, { - { 6, 65, 53 }, + { 7, 61, 61 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -413,7 +392,7 @@ static MapMarkData sMapMarkForestTemple[] = { { MAP_MARK_CHEST, 1, { - { 11, 39, 35 }, + { 11, 39, 63 }, } }, { MAP_MARK_BOSS, 1, @@ -427,7 +406,7 @@ static MapMarkData sMapMarkForestTemple[] = { { MAP_MARK_CHEST, 1, { - { 2, 65, 54 }, + { 2, 66, 57 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -453,7 +432,7 @@ static MapMarkData sMapMarkForestTemple[] = { { MAP_MARK_CHEST, 1, { - { 3, 75, 53 }, + { 3, 63, 56 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -462,17 +441,12 @@ static MapMarkData sMapMarkForestTemple[] = { { MAP_MARK_CHEST, 1, { - { 12, 69, 52 }, + { 12, 69, 59 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Forest Temple minimap 24 { - { MAP_MARK_CHEST, - 1, - { - { 5, 58, 27 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Forest Temple minimap 25 @@ -481,6 +455,11 @@ static MapMarkData sMapMarkForestTemple[] = { }, // Forest Temple minimap 26 { + { MAP_MARK_CHEST, + 1, + { + { 4, 73, 54 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, }; @@ -499,7 +478,7 @@ static MapMarkData sMapMarkFireTemple[] = { { MAP_MARK_CHEST, 1, { - { 7, 53, 70 }, + { 1, 53, 70 }, } }, { MAP_MARK_BOSS, 1, @@ -510,6 +489,11 @@ static MapMarkData sMapMarkFireTemple[] = { }, // Fire Temple minimap 3 { + { MAP_MARK_CHEST, + 1, + { + { 0, 71, 60 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Fire Temple minimap 4 @@ -517,7 +501,7 @@ static MapMarkData sMapMarkFireTemple[] = { { MAP_MARK_CHEST, 1, { - { 11, 57, 48 }, + { 11, 59, 46 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -526,8 +510,8 @@ static MapMarkData sMapMarkFireTemple[] = { { MAP_MARK_CHEST, 2, { - { 3, 67, 73 }, - { 6, 58, 76 }, + { 6, 57, 73 }, + { 3, 66, 71 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -541,6 +525,11 @@ static MapMarkData sMapMarkFireTemple[] = { }, // Fire Temple minimap 8 { + { MAP_MARK_CHEST, + 1, + { + { 13, 72, 38 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Fire Temple minimap 9 @@ -553,6 +542,11 @@ static MapMarkData sMapMarkFireTemple[] = { }, // Fire Temple minimap 11 { + { MAP_MARK_CHEST, + 1, + { + { 9, 80, 61 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Fire Temple minimap 12 @@ -573,14 +567,18 @@ static MapMarkData sMapMarkFireTemple[] = { }, // Fire Temple minimap 16 { + { MAP_MARK_CHEST, + 1, + { + { 10, 71, 36 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Fire Temple minimap 17 { { MAP_MARK_CHEST, - 2, + 1, { - { 2, 78, 62 }, { 12, 77, 58 }, } }, { MAP_MARK_NONE, 0, { 0 } }, @@ -591,15 +589,15 @@ static MapMarkData sMapMarkFireTemple[] = { }, // Fire Temple minimap 19 { - { MAP_MARK_CHEST, - 1, - { - { 4, 60, 54 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Fire Temple minimap 20 { + { MAP_MARK_CHEST, + 1, + { + { 4, 78, 59 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Fire Temple minimap 21 @@ -611,7 +609,7 @@ static MapMarkData sMapMarkFireTemple[] = { { MAP_MARK_CHEST, 1, { - { 1, 72, 68 }, + { 2, 71, 68 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -620,7 +618,7 @@ static MapMarkData sMapMarkFireTemple[] = { { MAP_MARK_CHEST, 1, { - { 8, 66, 57 }, + { 8, 66, 58 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -630,6 +628,11 @@ static MapMarkData sMapMarkFireTemple[] = { }, // Fire Temple minimap 25 { + { MAP_MARK_CHEST, + 1, + { + { 7, 77, 54 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Fire Temple minimap 26 @@ -673,7 +676,7 @@ static MapMarkData sMapMarkFireTemple[] = { { MAP_MARK_CHEST, 1, { - { 5, 51, 61 }, + { 5, 49, 62 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -701,7 +704,7 @@ static MapMarkData sMapMarkWaterTemple[] = { { MAP_MARK_CHEST, 1, { - { 6, 81, 68 }, + { 6, 79, 68 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -711,6 +714,11 @@ static MapMarkData sMapMarkWaterTemple[] = { }, // Water Temple minimap 4 { + { MAP_MARK_CHEST, + 1, + { + { 9, 81, 62 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Water Temple minimap 5 @@ -723,19 +731,24 @@ static MapMarkData sMapMarkWaterTemple[] = { }, // Water Temple minimap 7 { + { MAP_MARK_CHEST, + 1, + { + { 7, 74, 62 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Water Temple minimap 8 { + { MAP_MARK_CHEST, + 1, + { + { 10, 57, 66 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Water Temple minimap 9 { - { MAP_MARK_CHEST, - 1, - { - { 5, 75, 55 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Water Temple minimap 10 @@ -769,6 +782,11 @@ static MapMarkData sMapMarkWaterTemple[] = { }, // Water Temple minimap 16 { + { MAP_MARK_CHEST, + 1, + { + { 5, 76, 64 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Water Temple minimap 17 @@ -789,7 +807,7 @@ static MapMarkData sMapMarkWaterTemple[] = { { MAP_MARK_CHEST, 1, { - { 2, 73, 65 }, + { 2, 74, 63 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -874,7 +892,7 @@ static MapMarkData sMapMarkWaterTemple[] = { { MAP_MARK_CHEST, 1, { - { 0, 73, 63 }, + { 0, 74, 64 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -884,10 +902,20 @@ static MapMarkData sMapMarkWaterTemple[] = { }, // Water Temple minimap 41 { + { MAP_MARK_CHEST, + 1, + { + { 8, 75, 67 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Water Temple minimap 42 { + { MAP_MARK_CHEST, + 1, + { + { 3, 82, 65 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Water Temple minimap 43 @@ -899,36 +927,27 @@ static MapMarkData sMapMarkWaterTemple[] = { static MapMarkData sMapMarkSpiritTemple[] = { // Spirit Temple minimap 0 { - { MAP_MARK_CHEST, - 4, - { - { 26, 27, 35 }, - { 27, 36, 35 }, - { 30, 27, 28 }, - { 31, 36, 28 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Spirit Temple minimap 1 { - { MAP_MARK_CHEST, - 1, - { - { 29, 67, 63 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Spirit Temple minimap 2 { + { MAP_MARK_CHEST, + 1, + { + { 0, 78, 43 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Spirit Temple minimap 3 { { MAP_MARK_CHEST, - 2, + 1, { - { 0, 71, 62 }, - { 8, 71, 48 }, + { 8, 69, 40 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -941,18 +960,13 @@ static MapMarkData sMapMarkSpiritTemple[] = { { MAP_MARK_CHEST, 2, { + { 2, 43, 50 }, { 3, 56, 54 }, - { 15, 69, 42 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Spirit Temple minimap 6 { - { MAP_MARK_CHEST, - 1, - { - { 28, 60, 54 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Spirit Temple minimap 7 @@ -964,7 +978,7 @@ static MapMarkData sMapMarkSpiritTemple[] = { { MAP_MARK_CHEST, 1, { - { 1, 76, 40 }, + { 1, 70, 67 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -985,7 +999,7 @@ static MapMarkData sMapMarkSpiritTemple[] = { { MAP_MARK_CHEST, 1, { - { 7, 70, 53 }, + { 7, 70, 58 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -1012,24 +1026,20 @@ static MapMarkData sMapMarkSpiritTemple[] = { }, // Spirit Temple minimap 17 { - { MAP_MARK_CHEST, - 1, - { - { 25, 78, 58 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Spirit Temple minimap 18 { - { MAP_MARK_CHEST, - 1, - { - { 24, 78, 58 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Spirit Temple minimap 19 { + { MAP_MARK_CHEST, + 2, + { + { 20, 75, 58 }, + { 21, 83, 58 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Spirit Temple minimap 20 @@ -1047,6 +1057,11 @@ static MapMarkData sMapMarkSpiritTemple[] = { }, // Spirit Temple minimap 22 { + { MAP_MARK_CHEST, + 1, + { + { 10, 72, 49 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Spirit Temple minimap 23 @@ -1066,7 +1081,7 @@ static MapMarkData sMapMarkSpiritTemple[] = { { MAP_MARK_CHEST, 1, { - { 18, 75, 54 }, + { 18, 50, 41 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -1079,8 +1094,8 @@ static MapMarkData sMapMarkSpiritTemple[] = { { MAP_MARK_CHEST, 2, { - { 6, 78, 55 }, - { 12, 70, 70 }, + { 6, 73, 49 }, + { 12, 79, 55 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -1089,7 +1104,7 @@ static MapMarkData sMapMarkSpiritTemple[] = { { MAP_MARK_CHEST, 1, { - { 2, 76, 37 }, + { 15, 77, 42 }, } }, { MAP_MARK_BOSS, 1, @@ -1100,6 +1115,12 @@ static MapMarkData sMapMarkSpiritTemple[] = { }, // Spirit Temple minimap 30 { + { MAP_MARK_CHEST, + 2, + { + { 13, 77, 63 }, + { 14, 77, 68 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Spirit Temple minimap 31 @@ -1155,10 +1176,9 @@ static MapMarkData sMapMarkShadowTemple[] = { // Shadow Temple minimap 6 { { MAP_MARK_CHEST, - 2, + 1, { { 2, 83, 67 }, - { 14, 84, 59 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -1215,11 +1235,6 @@ static MapMarkData sMapMarkShadowTemple[] = { }, // Shadow Temple minimap 14 { - { MAP_MARK_CHEST, - 1, - { - { 16, 73, 64 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Shadow Temple minimap 15 @@ -1270,11 +1285,6 @@ static MapMarkData sMapMarkShadowTemple[] = { }, // Shadow Temple minimap 21 { - { MAP_MARK_CHEST, - 1, - { - { 14, 77, 62 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Shadow Temple minimap 22 @@ -1283,11 +1293,6 @@ static MapMarkData sMapMarkShadowTemple[] = { }, // Shadow Temple minimap 23 { - { MAP_MARK_CHEST, - 1, - { - { 15, 56, 67 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Shadow Temple minimap 24 @@ -1296,20 +1301,10 @@ static MapMarkData sMapMarkShadowTemple[] = { }, // Shadow Temple minimap 25 { - { MAP_MARK_CHEST, - 1, - { - { 16, 73, 64 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Shadow Temple minimap 26 { - { MAP_MARK_CHEST, - 1, - { - { 14, 77, 62 }, - } }, { MAP_MARK_NONE, 0, { 0 } }, }, }; @@ -1318,9 +1313,14 @@ static MapMarkData sMapMarkBottomWell[] = { // Bottom of the Well minimap 0 { { MAP_MARK_CHEST, - 1, + 6, { - { 3, 60, 18 }, + { 1, 56, 26 }, + { 4, 39, 3 }, + { 5, 69, 30 }, + { 8, 53, 30 }, + { 12, 83, 16 }, + { 14, 67, 26 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -1334,14 +1334,20 @@ static MapMarkData sMapMarkBottomWell[] = { }, // Bottom of the Well minimap 3 { + { MAP_MARK_CHEST, + 1, + { + { 10, 79, 67 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Bottom of the Well minimap 4 { { MAP_MARK_CHEST, - 1, + 2, { - { 2, 73, 61 }, + { 3, 73, 62 }, + { 20, 81, 62 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, @@ -1355,6 +1361,13 @@ static MapMarkData sMapMarkBottomWell[] = { }, // Bottom of the Well minimap 7 { + { MAP_MARK_CHEST, + 3, + { + { 2, 59, 28 }, + { 9, 36, 19 }, + { 16, 62, 38 }, + } }, { MAP_MARK_NONE, 0, { 0 } }, }, // Bottom of the Well minimap 8 @@ -1366,7 +1379,7 @@ static MapMarkData sMapMarkBottomWell[] = { { MAP_MARK_CHEST, 1, { - { 1, 74, 66 }, + { 7, 75, 66 }, } }, { MAP_MARK_NONE, 0, { 0 } }, }, diff --git a/src/overlays/misc/ovl_map_mark_data/z_map_mark_data_mq.c b/src/overlays/misc/ovl_map_mark_data/z_map_mark_data_mq.c new file mode 100644 index 000000000..1fa95837a --- /dev/null +++ b/src/overlays/misc/ovl_map_mark_data/z_map_mark_data_mq.c @@ -0,0 +1,1444 @@ +#include "global.h" + +static MapMarkData sMapMarkDekuTree[] = { + // Deku Tree minimap 0 + { + { MAP_MARK_CHEST, + 1, + { + { 3, 71, 50 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 1 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 2 + { + { MAP_MARK_CHEST, + 1, + { + { 1, 64, 62 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 3 + { + { MAP_MARK_CHEST, + 1, + { + { 4, 76, 37 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 4 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 5 + { + { MAP_MARK_CHEST, + 2, + { + { 0, 46, 50 }, + { 5, 76, 52 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 6 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 7 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 8 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 9 + { + { MAP_MARK_BOSS, + 1, + { + { -1, 50, 23 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 10 + { + { MAP_MARK_CHEST, + 2, + { + { 2, 46, 50 }, + { 6, 58, 60 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 11 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Deku Tree minimap 12 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, +}; + +static MapMarkData sMapMarkDodongosCavern[] = { + // Dodongo's Cavern minimap 0 + { + { MAP_MARK_CHEST, + 2, + { + { 0, 69, 14 }, + { 4, 69, 30 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 1 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 2 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 3 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 4 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 5 + { + { MAP_MARK_CHEST, + 1, + { + { 5, 54, 54 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 6 + { + { MAP_MARK_CHEST, + 1, + { + { 2, 69, 54 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 7 + { + { MAP_MARK_BOSS, + 1, + { + { -1, 37, 49 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 8 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 9 + { + { MAP_MARK_CHEST, + 1, + { + { 3, 59, 53 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 10 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 11 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 12 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 13 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 14 + { + { MAP_MARK_CHEST, + 1, + { + { 1, 68, 54 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 15 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 16 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 17 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Dodongo's Cavern minimap 18 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, +}; + +static MapMarkData sMapMarkJabuJabuBelly[] = { + // Jabu-Jabu's Belly minimap 0 + { + { MAP_MARK_CHEST, + 2, + { + { 3, 66, 50 }, + { 5, 72, 47 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 1 + { + { MAP_MARK_CHEST, + 1, + { + { 7, 72, 54 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 2 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 3 + { + { MAP_MARK_CHEST, + 2, + { + { 4, 64, 62 }, + { 8, 79, 38 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 4 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 5 + { + { MAP_MARK_CHEST, + 1, + { + { 10, 64, 45 }, + } }, + { MAP_MARK_BOSS, + 1, + { + { -1, 67, 32 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 6 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 7 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 8 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 9 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 10 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 11 + { + { MAP_MARK_CHEST, + 1, + { + { 9, 68, 45 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 12 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 13 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 14 + { + { MAP_MARK_CHEST, + 2, + { + { 1, 79, 33 }, + { 6, 61, 41 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Jabu-Jabu's Belly minimap 15 + { + { MAP_MARK_CHEST, + 2, + { + { 0, 48, 57 }, + { 2, 77, 55 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, +}; + +static MapMarkData sMapMarkForestTemple[] = { + // Forest Temple minimap 0 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 1 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 2 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 3 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 4 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 5 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 6 + { + { MAP_MARK_CHEST, + 1, + { + { 0, 72, 57 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 7 + { + { MAP_MARK_CHEST, + 2, + { + { 1, 69, 39 }, + { 9, 62, 65 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 8 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 9 + { + { MAP_MARK_CHEST, + 1, + { + { 9, 71, 59 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 10 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 11 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 12 + { + { MAP_MARK_CHEST, + 1, + { + { 13, 80, 53 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 13 + { + { MAP_MARK_CHEST, + 1, + { + { 15, 49, 50 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 14 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 15 + { + { MAP_MARK_CHEST, + 1, + { + { 6, 65, 53 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 16 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 17 + { + { MAP_MARK_CHEST, + 1, + { + { 11, 39, 35 }, + } }, + { MAP_MARK_BOSS, + 1, + { + { -1, 53, 5 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 18 + { + { MAP_MARK_CHEST, + 1, + { + { 2, 65, 54 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 19 + { + { MAP_MARK_CHEST, + 1, + { + { 14, 64, 31 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 20 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 21 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 22 + { + { MAP_MARK_CHEST, + 1, + { + { 3, 75, 53 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 23 + { + { MAP_MARK_CHEST, + 1, + { + { 12, 69, 52 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 24 + { + { MAP_MARK_CHEST, + 1, + { + { 5, 58, 27 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 25 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Forest Temple minimap 26 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, +}; + +static MapMarkData sMapMarkFireTemple[] = { + // Fire Temple minimap 0 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 1 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 2 + { + { MAP_MARK_CHEST, + 1, + { + { 7, 53, 70 }, + } }, + { MAP_MARK_BOSS, + 1, + { + { -1, 40, 47 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 3 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 4 + { + { MAP_MARK_CHEST, + 1, + { + { 11, 57, 48 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 5 + { + { MAP_MARK_CHEST, + 2, + { + { 3, 67, 73 }, + { 6, 58, 76 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 6 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 7 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 8 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 9 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 10 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 11 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 12 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 13 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 14 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 15 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 16 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 17 + { + { MAP_MARK_CHEST, + 2, + { + { 2, 78, 62 }, + { 12, 77, 58 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 18 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 19 + { + { MAP_MARK_CHEST, + 1, + { + { 4, 60, 54 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 20 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 21 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 22 + { + { MAP_MARK_CHEST, + 1, + { + { 1, 72, 68 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 23 + { + { MAP_MARK_CHEST, + 1, + { + { 8, 66, 57 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 24 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 25 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 26 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 27 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 28 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 29 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 30 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 31 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 32 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 33 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 34 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 35 + { + { MAP_MARK_CHEST, + 1, + { + { 5, 51, 61 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 36 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Fire Temple minimap 37 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, +}; + +static MapMarkData sMapMarkWaterTemple[] = { + // Water Temple minimap 0 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 1 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 2 + { + { MAP_MARK_CHEST, + 1, + { + { 6, 81, 68 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 3 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 4 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 5 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 6 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 7 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 8 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 9 + { + { MAP_MARK_CHEST, + 1, + { + { 5, 75, 55 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 10 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 11 + { + { MAP_MARK_BOSS, + 1, + { + { -1, 77, 40 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 12 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 13 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 14 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 15 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 16 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 17 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 18 + { + { MAP_MARK_CHEST, + 1, + { + { 1, 74, 61 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 19 + { + { MAP_MARK_CHEST, + 1, + { + { 2, 73, 65 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 20 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 21 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 22 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 23 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 24 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 25 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 26 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 27 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 28 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 29 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 30 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 31 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 32 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 33 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 34 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 35 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 36 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 37 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 38 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 39 + { + { MAP_MARK_CHEST, + 1, + { + { 0, 73, 63 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 40 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 41 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 42 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Water Temple minimap 43 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, +}; + +static MapMarkData sMapMarkSpiritTemple[] = { + // Spirit Temple minimap 0 + { + { MAP_MARK_CHEST, + 4, + { + { 26, 27, 35 }, + { 27, 36, 35 }, + { 30, 27, 28 }, + { 31, 36, 28 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 1 + { + { MAP_MARK_CHEST, + 1, + { + { 29, 67, 63 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 2 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 3 + { + { MAP_MARK_CHEST, + 2, + { + { 0, 71, 62 }, + { 8, 71, 48 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 4 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 5 + { + { MAP_MARK_CHEST, + 2, + { + { 3, 56, 54 }, + { 15, 69, 42 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 6 + { + { MAP_MARK_CHEST, + 1, + { + { 28, 60, 54 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 7 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 8 + { + { MAP_MARK_CHEST, + 1, + { + { 1, 76, 40 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 9 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 10 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 11 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 12 + { + { MAP_MARK_CHEST, + 1, + { + { 7, 70, 53 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 13 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 14 + { + { MAP_MARK_CHEST, + 1, + { + { 4, 68, 42 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 15 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 16 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 17 + { + { MAP_MARK_CHEST, + 1, + { + { 25, 78, 58 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 18 + { + { MAP_MARK_CHEST, + 1, + { + { 24, 78, 58 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 19 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 20 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 21 + { + { MAP_MARK_CHEST, + 1, + { + { 5, 71, 55 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 22 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 23 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 24 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 25 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 26 + { + { MAP_MARK_CHEST, + 1, + { + { 18, 75, 54 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 27 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 28 + { + { MAP_MARK_CHEST, + 2, + { + { 6, 78, 55 }, + { 12, 70, 70 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 29 + { + { MAP_MARK_CHEST, + 1, + { + { 2, 76, 37 }, + } }, + { MAP_MARK_BOSS, + 1, + { + { -1, 57, 23 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 30 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 31 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Spirit Temple minimap 32 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, +}; + +static MapMarkData sMapMarkShadowTemple[] = { + // Shadow Temple minimap 0 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 1 + { + { MAP_MARK_CHEST, + 1, + { + { 1, 77, 64 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 2 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 3 + { + { MAP_MARK_BOSS, + 1, + { + { -1, 77, 76 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 4 + { + { MAP_MARK_CHEST, + 1, + { + { 7, 76, 65 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 5 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 6 + { + { MAP_MARK_CHEST, + 2, + { + { 2, 83, 67 }, + { 14, 84, 59 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 7 + { + { MAP_MARK_CHEST, + 1, + { + { 3, 76, 67 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 8 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 9 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 10 + { + { MAP_MARK_CHEST, + 3, + { + { 4, 78, 62 }, + { 5, 74, 62 }, + { 6, 71, 68 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 11 + { + { MAP_MARK_CHEST, + 1, + { + { 9, 77, 64 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 12 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 13 + { + { MAP_MARK_CHEST, + 2, + { + { 10, 71, 65 }, + { 11, 80, 65 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 14 + { + { MAP_MARK_CHEST, + 1, + { + { 16, 73, 64 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 15 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 16 + { + { MAP_MARK_CHEST, + 2, + { + { 12, 87, 64 }, + { 22, 87, 68 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 17 + { + { MAP_MARK_CHEST, + 1, + { + { 13, 77, 66 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 18 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 19 + { + { MAP_MARK_CHEST, + 1, + { + { 21, 78, 66 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 20 + { + { MAP_MARK_CHEST, + 2, + { + { 8, 76, 66 }, + { 20, 78, 68 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 21 + { + { MAP_MARK_CHEST, + 1, + { + { 14, 77, 62 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 22 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 23 + { + { MAP_MARK_CHEST, + 1, + { + { 15, 56, 67 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 24 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 25 + { + { MAP_MARK_CHEST, + 1, + { + { 16, 73, 64 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Shadow Temple minimap 26 + { + { MAP_MARK_CHEST, + 1, + { + { 14, 77, 62 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, +}; + +static MapMarkData sMapMarkBottomWell[] = { + // Bottom of the Well minimap 0 + { + { MAP_MARK_CHEST, + 1, + { + { 3, 60, 18 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Bottom of the Well minimap 1 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Bottom of the Well minimap 2 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Bottom of the Well minimap 3 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Bottom of the Well minimap 4 + { + { MAP_MARK_CHEST, + 1, + { + { 2, 73, 61 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Bottom of the Well minimap 5 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Bottom of the Well minimap 6 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Bottom of the Well minimap 7 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Bottom of the Well minimap 8 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Bottom of the Well minimap 9 + { + { MAP_MARK_CHEST, + 1, + { + { 1, 74, 66 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, +}; + +static MapMarkData sMapMarkIceCavern[] = { + // Ice Cavern minimap 0 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 1 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 2 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 3 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 4 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 5 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 6 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 7 + { + { MAP_MARK_CHEST, + 1, + { + { 2, 71, 59 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 8 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 9 + { + { MAP_MARK_CHEST, + 1, + { + { 0, 48, 36 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 10 + { + { MAP_MARK_NONE, 0, { 0 } }, + }, + // Ice Cavern minimap 11 + { + { MAP_MARK_CHEST, + 1, + { + { 1, 73, 67 }, + } }, + { MAP_MARK_NONE, 0, { 0 } }, + }, +}; + +MapMarkData* gMapMarkDataTable[] = { + sMapMarkDekuTree, sMapMarkDodongosCavern, sMapMarkJabuJabuBelly, sMapMarkForestTemple, sMapMarkFireTemple, + sMapMarkWaterTemple, sMapMarkSpiritTemple, sMapMarkShadowTemple, sMapMarkBottomWell, sMapMarkIceCavern, +}; diff --git a/tools/msgdis.py b/tools/msgdis.py index 89447afdb..dd0da006b 100755 --- a/tools/msgdis.py +++ b/tools/msgdis.py @@ -426,7 +426,7 @@ def main(): parser = argparse.ArgumentParser( description="Extract text from the baserom into .h files" ) - parser.add_argument("--oot-version", help="OOT version", default="gc-eu-mq-dbg", choices=["gc-eu-mq", "gc-eu-mq-dbg"]) + parser.add_argument("--oot-version", help="OOT version", default="gc-eu-mq-dbg") parser.add_argument("--text-out", help="Path to output .h file for text") parser.add_argument( "--staff-text-out", help="Path to output .h file for staff text" @@ -449,6 +449,12 @@ def main(): fra_message_entry_table_addr = 0x00B84C28 staff_message_entry_table_addr = 0x00B86D38 staff_message_entry_table_addr_end = 0x00B86EC0 + elif version == "gc-eu": + nes_message_entry_table_addr = 0x00B7E910 + ger_message_entry_table_addr = 0x00B82B38 + fra_message_entry_table_addr = 0x00B84C48 + staff_message_entry_table_addr = 0x00B86D58 + staff_message_entry_table_addr_end = 0x00B86EE0 else: parser.error("Unsupported OOT version") From 681f276f8add01d952231f6d788d99bb8e0d7777 Mon Sep 17 00:00:00 2001 From: cadmic Date: Wed, 17 Apr 2024 06:48:12 -0700 Subject: [PATCH 04/29] Delete disassembly data for gc-eu-mq (#1942) --- tools/disasm/disasm.py | 1 - tools/disasm/gc-eu-mq/file_addresses.csv | 472 - tools/disasm/gc-eu-mq/files_boot.csv | 135 - tools/disasm/gc-eu-mq/files_code.csv | 464 - .../disasm/gc-eu-mq/files_ovl_file_choose.csv | 22 - .../gc-eu-mq/files_ovl_kaleido_scope.csv | 34 - tools/disasm/gc-eu-mq/functions.txt | 13146 ---------------- tools/disasm/gc-eu-mq/variables.txt | 785 - 8 files changed, 15059 deletions(-) delete mode 100644 tools/disasm/gc-eu-mq/file_addresses.csv delete mode 100644 tools/disasm/gc-eu-mq/files_boot.csv delete mode 100644 tools/disasm/gc-eu-mq/files_code.csv delete mode 100644 tools/disasm/gc-eu-mq/files_ovl_file_choose.csv delete mode 100644 tools/disasm/gc-eu-mq/files_ovl_kaleido_scope.csv delete mode 100644 tools/disasm/gc-eu-mq/functions.txt delete mode 100644 tools/disasm/gc-eu-mq/variables.txt diff --git a/tools/disasm/disasm.py b/tools/disasm/disasm.py index 85d087834..d0affdd48 100755 --- a/tools/disasm/disasm.py +++ b/tools/disasm/disasm.py @@ -91,7 +91,6 @@ def main(): context.addBannedSymbolRange(0x0000F000, 0x00010100) context.addBannedSymbolRange(0x10000000, 0x80000300) context.addBannedSymbolRange(0xA0000000, 0xFFFFFFFF) - context.addBannedSymbolRange(0x80B50000, 0x80B51000) # Hack for z_fishing.c spimdisasm.mips.InstructionConfig.parseArgs(args) spimdisasm.common.GlobalConfig.parseArgs(args) diff --git a/tools/disasm/gc-eu-mq/file_addresses.csv b/tools/disasm/gc-eu-mq/file_addresses.csv deleted file mode 100644 index d8d095609..000000000 --- a/tools/disasm/gc-eu-mq/file_addresses.csv +++ /dev/null @@ -1,472 +0,0 @@ -name,vrom_start,vrom_end,rom_start,rom_end,vram_start,overlay_dir -boot,1060,7170,1060,0,80000460, -code,A88000,B8A230,A580D0,AF27E0,80010F00, -ovl_title,B8A230,B8AA80,AF27E0,AF2E20,80800000,gamestates -ovl_select,B8AA80,B8D700,AF2E20,AF4900,80800850,gamestates -ovl_opening,B8D700,B8D860,AF4900,AF4A30,808034D0,gamestates -ovl_file_choose,B8D860,B9C470,AF4A30,AFCFD0,80803630,gamestates -ovl_kaleido_scope,B9C470,BB8E30,AFCFD0,B0BEC0,80812260,misc -ovl_player_actor,BB8E30,BDF540,B0BEC0,B25210,8082EC90,actors -ovl_map_mark_data,BDF540,BE6020,B25210,B255C0,80855470,misc -ovl_En_Test,BE6020,BEB8D0,B255C0,B28A90,8085BF50,actors -ovl_Arms_Hook,BEB8D0,BEC640,B28A90,B29520,80861800,actors -ovl_Arrow_Fire,BEC640,BEE520,B29520,B2AFE0,80862570,actors -ovl_Arrow_Ice,BEE520,BF0420,B2AFE0,B2C850,80864450,actors -ovl_Arrow_Light,BF0420,BF2330,B2C850,B2E150,80866350,actors -ovl_Bg_Bdan_Objects,BF2330,BF3600,B2E150,B2EE80,80868260,actors -ovl_Bg_Bdan_Switch,BF3600,BF4A30,B2EE80,B2FA30,80869530,actors -ovl_Bg_Bom_Guard,BF4A30,BF4C50,B2FA30,B2FC20,8086A960,actors -ovl_Bg_Bombwall,BF4C50,BF5510,B2FC20,B30300,8086AB80,actors -ovl_Bg_Bowl_Wall,BF5510,BF5E90,B30300,B30B20,8086B440,actors -ovl_Bg_Breakwall,BF5E90,BF6D00,B30B20,B31680,8086BDC0,actors -ovl_Bg_Ddan_Jd,BF6D00,BF7350,B31680,B31B80,8086CC30,actors -ovl_Bg_Ddan_Kd,BF7350,BF7C40,B31B80,B32260,8086D280,actors -ovl_Bg_Dodoago,BF7C40,BF8980,B32260,B32CC0,8086DB70,actors -ovl_Bg_Dy_Yoseizo,BF8980,BFB770,B32CC0,B34C00,8086E920,actors -ovl_Bg_Ganon_Otyuka,BFB770,BFDDB0,B34C00,B36920,80871710,actors -ovl_Bg_Gate_Shutter,BFDDB0,BFE240,B36920,B36CA0,80873D50,actors -ovl_Bg_Gjyo_Bridge,BFE240,BFE730,B36CA0,B370D0,808741E0,actors -ovl_Bg_Gnd_Darkmeiro,BFE730,BFEEF0,B370D0,B37690,808746D0,actors -ovl_Bg_Gnd_Firemeiro,BFEEF0,BFF440,B37690,B37AF0,80874E90,actors -ovl_Bg_Gnd_Iceblock,BFF440,C00530,B37AF0,B38630,808753E0,actors -ovl_Bg_Gnd_Nisekabe,C00530,C006A0,B38630,B38780,808764E0,actors -ovl_Bg_Gnd_Soulmeiro,C006A0,C00F00,B38780,B38E80,80876650,actors -ovl_Bg_Haka,C00F00,C015C0,B38E80,B39430,80876EB0,actors -ovl_Bg_Haka_Gate,C015C0,C02650,B39430,B3A110,80877570,actors -ovl_Bg_Haka_Huta,C02650,C030F0,B3A110,B3A970,80878610,actors -ovl_Bg_Haka_Megane,C030F0,C034F0,B3A970,B3ACC0,808790B0,actors -ovl_Bg_Haka_MeganeBG,C034F0,C03BB0,B3ACC0,B3B210,808794B0,actors -ovl_Bg_Haka_Sgami,C03BB0,C047D0,B3B210,B3BB90,80879B70,actors -ovl_Bg_Haka_Ship,C047D0,C05220,B3BB90,B3C3C0,8087A790,actors -ovl_Bg_Haka_Trap,C05220,C067F0,B3C3C0,B3D3D0,8087B1E0,actors -ovl_Bg_Haka_Tubo,C067F0,C07210,B3D3D0,B3DC10,8087C7B0,actors -ovl_Bg_Haka_Water,C07210,C07A10,B3DC10,B3E1D0,8087D1D0,actors -ovl_Bg_Haka_Zou,C07A10,C08C00,B3E1D0,B3EF50,8087D9D0,actors -ovl_Bg_Heavy_Block,C08C00,C0A4F0,B3EF50,B40190,8087EBC0,actors -ovl_Bg_Hidan_Curtain,C0A4F0,C0AF90,B40190,B409C0,808804B0,actors -ovl_Bg_Hidan_Dalm,C0AF90,C0B7E0,B409C0,B41020,80880F50,actors -ovl_Bg_Hidan_Firewall,C0B7E0,C0BF40,B41020,B41660,808817A0,actors -ovl_Bg_Hidan_Fslift,C0BF40,C0C410,B41660,B41A10,80881F00,actors -ovl_Bg_Hidan_Fwbig,C0C410,C0D0F0,B41A10,B42470,808823D0,actors -ovl_Bg_Hidan_Hamstep,C0D0F0,C0DFA0,B42470,B42FA0,808830B0,actors -ovl_Bg_Hidan_Hrock,C0DFA0,C0E7D0,B42FA0,B43610,80883F60,actors -ovl_Bg_Hidan_Kousi,C0E7D0,C0ED60,B43610,B43A50,80884790,actors -ovl_Bg_Hidan_Kowarerukabe,C0ED60,C0FC40,B43A50,B44420,80884D20,actors -ovl_Bg_Hidan_Rock,C0FC40,C10D40,B44420,B45100,80885C00,actors -ovl_Bg_Hidan_Rsekizou,C10D40,C11920,B45100,B459E0,80886D00,actors -ovl_Bg_Hidan_Sekizou,C11920,C12D70,B459E0,B46950,808878E0,actors -ovl_Bg_Hidan_Sima,C12D70,C13C70,B46950,B47520,80888D30,actors -ovl_Bg_Hidan_Syoku,C13C70,C140D0,B47520,B47830,80889C30,actors -ovl_Bg_Ice_Objects,C140D0,C15010,B47830,B48270,8088A090,actors -ovl_Bg_Ice_Shelter,C15010,C16250,B48270,B49060,8088AFD0,actors -ovl_Bg_Ice_Shutter,C16250,C166C0,B49060,B493C0,8088C210,actors -ovl_Bg_Ice_Turara,C166C0,C16EF0,B493C0,B49A80,8088C680,actors -ovl_Bg_Ingate,C16EF0,C17280,B49A80,B49DA0,8088CEB0,actors -ovl_Bg_Jya_1flift,C17280,C17910,B49DA0,B4A2A0,8088D240,actors -ovl_Bg_Jya_Amishutter,C17910,C17CA0,B4A2A0,B4A4F0,8088D8D0,actors -ovl_Bg_Jya_Bigmirror,C17CA0,C184F0,B4A4F0,B4AC00,8088DC60,actors -ovl_Bg_Jya_Block,C184F0,C18760,B4AC00,B4AE60,8088E4B0,actors -ovl_Bg_Jya_Bombchuiwa,C18760,C192A0,B4AE60,B4B710,8088E720,actors -ovl_Bg_Jya_Bombiwa,C192A0,C19860,B4B710,B4BBF0,8088F260,actors -ovl_Bg_Jya_Cobra,C19860,C1B5A0,B4BBF0,B4D170,8088F820,actors -ovl_Bg_Jya_Goroiwa,C1B5A0,C1BD20,B4D170,B4D7D0,80891560,actors -ovl_Bg_Jya_Haheniron,C1BD20,C1C510,B4D7D0,B4DE50,80891CE0,actors -ovl_Bg_Jya_Ironobj,C1C510,C1D2C0,B4DE50,B4E7B0,808924D0,actors -ovl_Bg_Jya_Kanaami,C1D2C0,C1D670,B4E7B0,B4EAA0,80893280,actors -ovl_Bg_Jya_Lift,C1D670,C1DBC0,B4EAA0,B4EEF0,80893630,actors -ovl_Bg_Jya_Megami,C1DBC0,C1EDB0,B4EEF0,B4FDD0,80893B80,actors -ovl_Bg_Jya_Zurerukabe,C1EDB0,C1F460,B4FDD0,B50320,80894D70,actors -ovl_Bg_Menkuri_Eye,C1F460,C1F8F0,B50320,B50710,80895420,actors -ovl_Bg_Menkuri_Kaiten,C1F8F0,C1FA80,B50710,B50870,808958C0,actors -ovl_Bg_Menkuri_Nisekabe,C1FA80,C1FBD0,B50870,B50990,80895A50,actors -ovl_Bg_Mizu_Bwall,C1FBD0,C210A0,B50990,B51760,80895BA0,actors -ovl_Bg_Mizu_Movebg,C210A0,C22220,B51760,B52440,80897070,actors -ovl_Bg_Mizu_Shutter,C22220,C22A20,B52440,B52A80,80898200,actors -ovl_Bg_Mizu_Uzu,C22A20,C22BF0,B52A80,B52C00,80898A00,actors -ovl_Bg_Mizu_Water,C22BF0,C238C0,B52C00,B53500,80898BD0,actors -ovl_Bg_Mjin,C238C0,C23CB0,B53500,B53860,808998A0,actors -ovl_Bg_Mori_Bigst,C23CB0,C245E0,B53860,B53ED0,80899C90,actors -ovl_Bg_Mori_Elevator,C245E0,C250D0,B53ED0,B54620,8089A5C0,actors -ovl_Bg_Mori_Hashigo,C250D0,C25990,B54620,B54CA0,8089B0B0,actors -ovl_Bg_Mori_Hashira4,C25990,C25F10,B54CA0,B550F0,8089B970,actors -ovl_Bg_Mori_Hineri,C25F10,C26C60,B550F0,B55AD0,8089BF00,actors -ovl_Bg_Mori_Idomizu,C26C60,C272A0,B55AD0,B55FC0,8089CC50,actors -ovl_Bg_Mori_Kaitenkabe,C272A0,C27910,B55FC0,B56510,8089D290,actors -ovl_Bg_Mori_Rakkatenjo,C27910,C28290,B56510,B56BD0,8089D900,actors -ovl_Bg_Po_Event,C28290,C2A0C0,B56BD0,B58220,8089E280,actors -ovl_Bg_Po_Syokudai,C2A0C0,C2AA30,B58220,B589D0,808A00C0,actors -ovl_Bg_Pushbox,C2AA30,C2AD30,B589D0,B58C60,808A0A30,actors -ovl_Bg_Relay_Objects,C2AD30,C2B4E0,B58C60,B59280,808A0D30,actors -ovl_Bg_Spot00_Break,C2B4E0,C2B680,B59280,B593F0,808A14E0,actors -ovl_Bg_Spot00_Hanebasi,C2B680,C2C790,B593F0,B5A1B0,808A1680,actors -ovl_Bg_Spot01_Fusya,C2C790,C2CA30,B5A1B0,B5A400,808A2790,actors -ovl_Bg_Spot01_Idohashira,C2CA30,C2D630,B5A400,B5AD30,808A2A30,actors -ovl_Bg_Spot01_Idomizu,C2D630,C2D950,B5AD30,B5B000,808A3630,actors -ovl_Bg_Spot01_Idosoko,C2D950,C2DB60,B5B000,B5B1C0,808A3950,actors -ovl_Bg_Spot01_Objects2,C2DB60,C2E020,B5B1C0,B5B5D0,808A3B60,actors -ovl_Bg_Spot02_Objects,C2E020,C2F380,B5B5D0,B5C3B0,808A4020,actors -ovl_Bg_Spot03_Taki,C2F380,C2FCA0,B5C3B0,B5CA90,808A5380,actors -ovl_Bg_Spot05_Soko,C2FCA0,C2FFC0,B5CA90,B5CD20,808A5CA0,actors -ovl_Bg_Spot06_Objects,C2FFC0,C313C0,B5CD20,B5DC30,808A5FC0,actors -ovl_Bg_Spot07_Taki,C313C0,C319B0,B5DC30,B5E0A0,808A73C0,actors -ovl_Bg_Spot08_Bakudankabe,C319B0,C32050,B5E0A0,B5E650,808A79B0,actors -ovl_Bg_Spot08_Iceblock,C32050,C33090,B5E650,B5F1F0,808A8050,actors -ovl_Bg_Spot09_Obj,C33090,C335B0,B5F1F0,B5F5C0,808A9090,actors -ovl_Bg_Spot11_Bakudankabe,C335B0,C33BF0,B5F5C0,B5FB20,808A95B0,actors -ovl_Bg_Spot11_Oasis,C33BF0,C34320,B5FB20,B60150,808A9BF0,actors -ovl_Bg_Spot12_Gate,C34320,C34730,B60150,B60460,808AA320,actors -ovl_Bg_Spot12_Saku,C34730,C34BF0,B60460,B60820,808AA730,actors -ovl_Bg_Spot15_Rrbox,C34BF0,C359D0,B60820,B61230,808AABF0,actors -ovl_Bg_Spot15_Saku,C359D0,C35D10,B61230,B61500,808AB9D0,actors -ovl_Bg_Spot16_Bombstone,C35D10,C37260,B61500,B625E0,808ABD10,actors -ovl_Bg_Spot16_Doughnut,C37260,C37820,B625E0,B62AB0,808AD260,actors -ovl_Bg_Spot17_Bakudankabe,C37820,C37F10,B62AB0,B63090,808AD820,actors -ovl_Bg_Spot17_Funen,C37F10,C38160,B63090,B632A0,808ADF10,actors -ovl_Bg_Spot18_Basket,C38160,C39150,B632A0,B63EB0,808AE160,actors -ovl_Bg_Spot18_Futa,C39150,C392F0,B63EB0,B64010,808AF150,actors -ovl_Bg_Spot18_Obj,C392F0,C39BC0,B64010,B64660,808AF2F0,actors -ovl_Bg_Spot18_Shutter,C39BC0,C3A110,B64660,B64A80,808AFBC0,actors -ovl_Bg_Sst_Floor,C3A110,C3A670,B64A80,B64F70,808B0110,actors -ovl_Bg_Toki_Hikari,C3A670,C3B410,B64F70,B657A0,808B0670,actors -ovl_Bg_Toki_Swd,C3B410,C3CA60,B657A0,B661E0,808B1410,actors -ovl_Bg_Treemouth,C3CA60,C3E0C0,B661E0,B66DE0,808B2A60,actors -ovl_Bg_Umajump,C3E0C0,C3E250,B66DE0,B66F50,808B40C0,actors -ovl_Bg_Vb_Sima,C3E250,C3E970,B66F50,B675A0,808B4250,actors -ovl_Bg_Ydan_Hasi,C3E970,C3F120,B675A0,B67BC0,808B4970,actors -ovl_Bg_Ydan_Maruta,C3F120,C3F800,B67BC0,B68140,808B5120,actors -ovl_Bg_Ydan_Sp,C3F800,C40F20,B68140,B69220,808B5800,actors -ovl_Bg_Zg,C40F20,C41370,B69220,B695A0,808B6F20,actors -ovl_Boss_Dodongo,C41370,C4AE70,B695A0,B6F870,808B7370,actors -ovl_Boss_Fd,C4AE70,C521D0,B6F870,B74570,808C0E70,actors -ovl_Boss_Fd2,C521D0,C55F00,B74570,B770D0,808C81D0,actors -ovl_Boss_Ganon,C55F00,C781B0,B770D0,B8C800,808CBF00,actors -ovl_Boss_Ganon2,C781B0,C89500,B8C800,B96DB0,808F1D30,actors -ovl_Boss_Ganondrof,C89500,C8E290,B96DB0,B9A120,80904BA0,actors -ovl_Boss_Goma,C8E290,C94230,B9A120,B9DB30,80909930,actors -ovl_Boss_Mo,C94230,C9FD00,B9DB30,BA5D50,8090F8D0,actors -ovl_Boss_Sst,C9FD00,CAC290,BA5D50,BAD8B0,8091FEB0,actors -ovl_Boss_Tw,CAC290,CBF3E0,BAD8B0,BB9EA0,8092C480,actors -ovl_Boss_Va,CBF3E0,CCDC70,BB9EA0,BC34D0,80942050,actors -ovl_Demo_6K,CCDC70,CD09D0,BC34D0,BC5620,809592E0,actors -ovl_Demo_Du,CD09D0,CD41B0,BC5620,BC71C0,8095C040,actors -ovl_Demo_Ec,CD41B0,CD7A10,BC71C0,BC88E0,8095F820,actors -ovl_Demo_Effect,CD7A10,CDD5B0,BC88E0,BCC450,80963080,actors -ovl_Demo_Ext,CDD5B0,CDDF00,BCC450,BCCB80,80968C20,actors -ovl_Demo_Geff,CDDF00,CDE720,BCCB80,BCD170,80969570,actors -ovl_Demo_Gj,CDE720,CE23D0,BCD170,BCEDE0,80969D90,actors -ovl_Demo_Go,CE23D0,CE3120,BCEDE0,BCF720,8096DA40,actors -ovl_Demo_Gt,CE3120,CE8730,BCF720,BD22A0,8096E790,actors -ovl_Demo_Ik,CE8730,CE9C40,BD22A0,BD2FB0,80973DA0,actors -ovl_Demo_Im,CE9C40,CEDBB0,BD2FB0,BD4F50,809752B0,actors -ovl_Demo_Kankyo,CEDBB0,CF1850,BD4F50,BD7360,80979220,actors -ovl_Demo_Kekkai,CF1850,CF2B40,BD7360,BD81F0,8097CF10,actors -ovl_Demo_Sa,CF2B40,CF5660,BD81F0,BD9750,8097E200,actors -ovl_Demo_Shd,CF5660,CF7A70,BD9750,BDAF70,80980D20,actors -ovl_Demo_Tre_Lgt,CF7A70,CF8180,BDAF70,BDB560,80983130,actors -ovl_Door_Ana,CF8180,CF87F0,BDB560,BDBAC0,80983840,actors -ovl_Door_Gerudo,CF87F0,CF8DE0,BDBAC0,BDBFC0,80983EB0,actors -ovl_Door_Killer,CF8DE0,CFA350,BDBFC0,BDD040,809844A0,actors -ovl_Door_Shutter,CFA350,CFC610,BDD040,BDE930,80985A10,actors -ovl_Door_Toki,CFC610,CFC770,BDE930,BDEA50,80987CD0,actors -ovl_Door_Warp1,CFC770,D00A70,BDEA50,BE10D0,80987E30,actors -ovl_Efc_Erupc,D00A70,D01560,BE10D0,BE19C0,8098C140,actors -ovl_Eff_Dust,D01560,D02930,BE19C0,BE25B0,8098CC30,actors -ovl_Effect_Ss_Blast,D02930,D02CC0,BE25B0,BE2920,8098E000,effects -ovl_Effect_Ss_Bomb,D02CC0,D030F0,BE2920,BE2D00,8098E390,effects -ovl_Effect_Ss_Bomb2,D030F0,D039F0,BE2D00,BE33B0,8098E7C0,effects -ovl_Effect_Ss_Bubble,D039F0,D03E70,BE33B0,BE37B0,8098F0C0,effects -ovl_Effect_Ss_D_Fire,D03E70,D04360,BE37B0,BE3C50,8098F540,effects -ovl_Effect_Ss_Dead_Db,D04360,D04840,BE3C50,BE4100,8098FA30,effects -ovl_Effect_Ss_Dead_Dd,D04840,D04DD0,BE4100,BE4620,8098FF10,effects -ovl_Effect_Ss_Dead_Ds,D04DD0,D05250,BE4620,BE4A50,809904A0,effects -ovl_Effect_Ss_Dead_Sound,D05250,D05390,BE4A50,BE4B90,80990920,effects -ovl_Effect_Ss_Dt_Bubble,D05390,D05920,BE4B90,BE5070,80990A60,effects -ovl_Effect_Ss_Dust,D05920,D06160,BE5070,BE5720,80990FF0,effects -ovl_Effect_Ss_En_Fire,D06160,D068B0,BE5720,BE5DB0,80991830,effects -ovl_Effect_Ss_En_Ice,D068B0,D07170,BE5DB0,BE6560,80991F80,effects -ovl_Effect_Ss_Extra,D07170,D07530,BE6560,BE6900,80992840,effects -ovl_Effect_Ss_Fcircle,D07530,D079E0,BE6900,BE6D70,80992C00,effects -ovl_Effect_Ss_Fhg_Flash,D079E0,D08960,BE6D70,BE7780,809930B0,effects -ovl_Effect_Ss_Fire_Tail,D08960,D09060,BE7780,BE7DD0,80994030,effects -ovl_Effect_Ss_G_Fire,D09060,D092F0,BE7DD0,BE8030,80994730,effects -ovl_Effect_Ss_G_Magma,D092F0,D09550,BE8030,BE8270,809949C0,effects -ovl_Effect_Ss_G_Magma2,D09550,D09A60,BE8270,BE8730,80994C20,effects -ovl_Effect_Ss_G_Ripple,D09A60,D09FC0,BE8730,BE8C10,80995130,effects -ovl_Effect_Ss_G_Spk,D09FC0,D0A570,BE8C10,BE9130,80995690,effects -ovl_Effect_Ss_G_Splash,D0A570,D0AA20,BE9130,BE94F0,80995C40,effects -ovl_Effect_Ss_Hahen,D0AA20,D0B060,BE94F0,BE99E0,809960F0,effects -ovl_Effect_Ss_HitMark,D0B060,D0B5B0,BE99E0,BE9E90,80996730,effects -ovl_Effect_Ss_Ice_Piece,D0B5B0,D0B9F0,BE9E90,BEA290,80996C80,effects -ovl_Effect_Ss_Ice_Smoke,D0B9F0,D0BED0,BEA290,BEA6D0,809970C0,effects -ovl_Effect_Ss_K_Fire,D0BED0,D0C310,BEA6D0,BEAAD0,809975A0,effects -ovl_Effect_Ss_Kakera,D0C310,D0D3A0,BEAAD0,BEB710,809979E0,effects -ovl_Effect_Ss_KiraKira,D0D3A0,D0DA10,BEB710,BEBCB0,80998A70,effects -ovl_Effect_Ss_Lightning,D0DA10,D0E0E0,BEBCB0,BEC300,809990E0,effects -ovl_Effect_Ss_Sibuki,D0E0E0,D0E7B0,BEC300,BEC900,809997B0,effects -ovl_Effect_Ss_Sibuki2,D0E7B0,D0EAE0,BEC900,BECC00,80999E80,effects -ovl_Effect_Ss_Solder_Srch_Ball,D0EAE0,D0EC90,BECC00,BECDA0,8099A1B0,effects -ovl_Effect_Ss_Stick,D0EC90,D0F030,BECDA0,BED0F0,8099A360,effects -ovl_Effect_Ss_Stone1,D0F030,D0F3B0,BED0F0,BED440,8099A700,effects -ovl_Elf_Msg,D0F3B0,D0F9A0,BED440,BED8A0,8099AA80,actors -ovl_Elf_Msg2,D0F9A0,D0FE10,BED8A0,BEDBA0,8099B070,actors -ovl_En_Am,D0FE10,D12210,BEDBA0,BEF3E0,8099B4E0,actors -ovl_En_Ani,D12210,D12F80,BEF3E0,BEFD70,8099D8E0,actors -ovl_En_Anubice,D12F80,D14230,BEFD70,BF0B40,8099E650,actors -ovl_En_Anubice_Fire,D14230,D14FF0,BF0B40,BF16A0,8099F900,actors -ovl_En_Anubice_Tag,D14FF0,D152C0,BF16A0,BF1910,809A06C0,actors -ovl_En_Arow_Trap,D152C0,D15410,BF1910,BF1A50,809A0990,actors -ovl_En_Arrow,D15410,D16B10,BF1A50,BF2AC0,809A0AE0,actors -ovl_En_Attack_Niw,D16B10,D17D70,BF2AC0,BF3820,809A21E0,actors -ovl_En_Ba,D17D70,D19C40,BF3820,BF4C50,809A3440,actors -ovl_En_Bb,D19C40,D1D920,BF4C50,BF7810,809A5310,actors -ovl_En_Bdfire,D1D920,D1E4C0,BF7810,BF8120,809A8FF0,actors -ovl_En_Bigokuta,D1E4C0,D20FC0,BF8120,BF9E50,809A9B90,actors -ovl_En_Bili,D20FC0,D23290,BF9E50,BFB680,809AC690,actors -ovl_En_Bird,D23290,D23750,BFB680,BFBA60,809AE960,actors -ovl_En_Blkobj,D23750,D23CB0,BFBA60,BFBEE0,809AEE20,actors -ovl_En_Bom,D23CB0,D24B80,BFBEE0,BFCA90,809AF380,actors -ovl_En_Bom_Bowl_Man,D24B80,D260C0,BFCA90,BFDA30,809B0250,actors -ovl_En_Bom_Bowl_Pit,D260C0,D26A30,BFDA30,BFE190,809B1790,actors -ovl_En_Bom_Chu,D26A30,D280D0,BFE190,BFF380,809B2100,actors -ovl_En_Bombf,D280D0,D29560,BFF380,C00370,809B37A0,actors -ovl_En_Boom,D29560,D29E30,C00370,C00AB0,809B4C30,actors -ovl_En_Box,D29E30,D2B980,C00AB0,C01DA0,809B5500,actors -ovl_En_Brob,D2B980,D2CA70,C01DA0,C029E0,809B7060,actors -ovl_En_Bubble,D2CA70,D2DE90,C029E0,C03940,809B8150,actors -ovl_En_Butte,D2DE90,D2F460,C03940,C04910,809B9570,actors -ovl_En_Bw,D2F460,D327F0,C04910,C06BC0,809BAB40,actors -ovl_En_Bx,D327F0,D332F0,C06BC0,C07560,809BDED0,actors -ovl_En_Changer,D332F0,D33CD0,C07560,C07CB0,809BE9D0,actors -ovl_En_Clear_Tag,D33CD0,D3C840,C07CB0,C0C090,809BF3B0,actors -ovl_En_Cow,D3C840,D3DCA0,C0C090,C0CDB0,809CA950,actors -ovl_En_Crow,D3DCA0,D3F340,C0CDB0,C0DE80,809CBDB0,actors -ovl_En_Cs,D3F340,D40570,C0DE80,C0EC70,809CD450,actors -ovl_En_Daiku,D40570,D41CB0,C0EC70,C0FE50,809CE680,actors -ovl_En_Daiku_Kakariko,D41CB0,D43070,C0FE50,C10D30,809CFDC0,actors -ovl_En_Dekubaba,D43070,D46B20,C10D30,C132F0,809D1180,actors -ovl_En_Dekunuts,D46B20,D48320,C132F0,C142A0,809D4C30,actors -ovl_En_Dh,D48320,D49E00,C142A0,C15620,809D6430,actors -ovl_En_Dha,D49E00,D4AE00,C15620,C16200,809D7F10,actors -ovl_En_Diving_Game,D4AE00,D4C7B0,C16200,C17400,809D8F10,actors -ovl_En_Dns,D4C7B0,D4DB40,C17400,C180D0,809DA8C0,actors -ovl_En_Dnt_Demo,D4DB40,D4E860,C180D0,C18B20,809DBC50,actors -ovl_En_Dnt_Jiji,D4E860,D4FD80,C18B20,C197E0,809DC970,actors -ovl_En_Dnt_Nomal,D4FD80,D52B80,C197E0,C1B390,809DDE90,actors -ovl_En_Dodojr,D52B80,D54A20,C1B390,C1C8E0,809E0C90,actors -ovl_En_Dodongo,D54A20,D577C0,C1C8E0,C1E820,809E2B30,actors -ovl_En_Dog,D577C0,D58970,C1E820,C1F4A0,809E58D0,actors -ovl_En_Door,D58970,D597B0,C1F4A0,C20070,809E6A80,actors -ovl_En_Ds,D597B0,D5A3D0,C20070,C208E0,809E78C0,actors -ovl_En_Du,D5A3D0,D5BE60,C208E0,C21B30,809E84E0,actors -ovl_En_Dy_Extra,D5BE60,D5C400,C21B30,C22020,809E9F70,actors -ovl_En_Eg,D5C400,D5C5B0,C22020,C22180,809EA510,actors -ovl_En_Eiyer,D5C5B0,D5E210,C22180,C235B0,809EA6C0,actors -ovl_En_Elf,D5E210,D62BD0,C235B0,C265B0,809EC320,actors -ovl_En_Encount1,D62BD0,D63730,C265B0,C26F10,809F0CE0,actors -ovl_En_Encount2,D63730,D64960,C26F10,C27D20,809F1840,actors -ovl_En_Ex_Item,D64960,D65AE0,C27D20,C289E0,809F2A70,actors -ovl_En_Ex_Ruppy,D65AE0,D66BA0,C289E0,C296B0,809F3BF0,actors -ovl_En_Fd,D66BA0,D69840,C296B0,C2B7A0,809F4CB0,actors -ovl_En_Fd_Fire,D69840,D6A550,C2B7A0,C2C2A0,809F7950,actors -ovl_En_Fhg_Fire,D6A550,D6CBF0,C2C2A0,C2DE40,809F8660,actors -ovl_En_Fire_Rock,D6CBF0,D6DD00,C2DE40,C2EAB0,809FAD00,actors -ovl_En_Firefly,D6DD00,D6FE70,C2EAB0,C30130,809FBE10,actors -ovl_En_Fish,D6FE70,D71F80,C30130,C315F0,809FDF80,actors -ovl_En_Floormas,D71F80,D75360,C315F0,C335E0,80A00090,actors -ovl_En_Fr,D75360,D77DF0,C335E0,C35420,80A03470,actors -ovl_En_Fu,D77DF0,D78B30,C35420,C35E90,80A05F00,actors -ovl_En_Fw,D78B30,D7A2F0,C35E90,C371C0,80A06C50,actors -ovl_En_Fz,D7A2F0,D7C300,C371C0,C38870,80A08410,actors -ovl_En_G_Switch,D7C300,D7DB20,C38870,C39B00,80A0A420,actors -ovl_En_Ganon_Mant,D7DB20,D81D50,C39B00,C3B850,80A0BC40,actors -ovl_En_Ganon_Organ,D81D50,D88D90,C3B850,C3EEE0,80A0FE70,actors -ovl_En_Gb,D88D90,D8A4C0,C3EEE0,C40010,80A16EB0,actors -ovl_En_Ge1,D8A4C0,D8C4F0,C40010,C41440,80A185E0,actors -ovl_En_Ge2,D8C4F0,D8DE90,C41440,C425D0,80A1A610,actors -ovl_En_Ge3,D8DE90,D8EAD0,C425D0,C42EF0,80A1BFB0,actors -ovl_En_GeldB,D8EAD0,D93E80,C42EF0,C462C0,80A1CBF0,actors -ovl_En_GirlA,D93E80,D967A0,C462C0,C47730,80A21FA0,actors -ovl_En_Gm,D967A0,D974D0,C47730,C48140,80A248C0,actors -ovl_En_Go,D974D0,D9BB10,C48140,C4AEC0,80A255F0,actors -ovl_En_Go2,D9BB10,DA1B50,C4AEC0,C4ECE0,80A29C30,actors -ovl_En_Goma,DA1B50,DA4800,C4ECE0,C50A80,80A2FC70,actors -ovl_En_Goroiwa,DA4800,DA6BC0,C50A80,C523A0,80A32920,actors -ovl_En_Gs,DA6BC0,DA8A30,C523A0,C53A00,80A34CE0,actors -ovl_En_Guest,DA8A30,DA93D0,C53A00,C54210,80A36B50,actors -ovl_En_Hata,DA93D0,DA9960,C54210,C54710,80A374F0,actors -ovl_En_Heishi1,DA9960,DAAE70,C54710,C55570,80A37A80,actors -ovl_En_Heishi2,DAAE70,DAD070,C55570,C56A20,80A38F90,actors -ovl_En_Heishi3,DAD070,DADA40,C56A20,C57150,80A3B190,actors -ovl_En_Heishi4,DADA40,DAE940,C57150,C57BE0,80A3BB60,actors -ovl_En_Hintnuts,DAE940,DB0370,C57BE0,C58D90,80A3CA60,actors -ovl_En_Holl,DB0370,DB1340,C58D90,C59930,80A3E490,actors -ovl_En_Honotrap,DB1340,DB28A0,C59930,C5A900,80A3F460,actors -ovl_En_Horse,DB28A0,DBEB00,C5A900,C62100,80A409C0,actors -ovl_En_Horse_Game_Check,DBEB00,DBFBD0,C62100,C62D20,80A4CC20,actors -ovl_En_Horse_Ganon,DBFBD0,DC0950,C62D20,C63790,80A4DCF0,actors -ovl_En_Horse_Link_Child,DC0950,DC2750,C63790,C64990,80A4EA70,actors -ovl_En_Horse_Normal,DC2750,DC4D70,C64990,C661E0,80A50870,actors -ovl_En_Horse_Zelda,DC4D70,DC5860,C661E0,C66AB0,80A52E90,actors -ovl_En_Hs,DC5860,DC6400,C66AB0,C672F0,80A53980,actors -ovl_En_Hs2,DC6400,DC69E0,C672F0,C677D0,80A54520,actors -ovl_En_Hy,DC69E0,DCA320,C677D0,C69C00,80A54B00,actors -ovl_En_Ice_Hono,DCA320,DCB510,C69C00,C6A8D0,80A58440,actors -ovl_En_Ik,DCB510,DCFB60,C6A8D0,C6D1C0,80A59630,actors -ovl_En_In,DCFB60,DD2900,C6D1C0,C6F290,80A5DC90,actors -ovl_En_Insect,DD2900,DD4E20,C6F290,C70B30,80A60A30,actors -ovl_En_Ishi,DD4E20,DDDF70,C70B30,C71E90,80A62F50,actors -ovl_En_It,DDDF70,DDE100,C71E90,C71FC0,80A6C0A0,actors -ovl_En_Jj,DDE100,DDF6D0,C71FC0,C72C10,80A6C230,actors -ovl_En_Js,DDF6D0,DE00A0,C72C10,C73330,80A6D800,actors -ovl_En_Jsjutan,DE00A0,DE4E70,C73330,C750A0,80A6E1D0,actors -ovl_En_Kakasi,DE4E70,DE5BB0,C750A0,C75AC0,80A73B00,actors -ovl_En_Kakasi2,DE5BB0,DE62D0,C75AC0,C76060,80A74840,actors -ovl_En_Kakasi3,DE62D0,DE73B0,C76060,C76CA0,80A74F60,actors -ovl_En_Kanban,DE73B0,DEA500,C76CA0,C78AB0,80A76040,actors -ovl_En_Karebaba,DEA500,DEBDF0,C78AB0,C79C30,80A79190,actors -ovl_En_Ko,DEBDF0,DEFF30,C79C30,C7C1D0,80A7AA80,actors -ovl_En_Kusa,DEFF30,DF1410,C7C1D0,C7D120,80A7EBC0,actors -ovl_En_Kz,DF1410,DF29B0,C7D120,C7E120,80A800A0,actors -ovl_En_Light,DF29B0,DF37B0,C7E120,C7EB00,80A81640,actors -ovl_En_Lightbox,DF37B0,DF3C30,C7EB00,C7EED0,80A82440,actors -ovl_En_M_Fire1,DF3C30,DF3DD0,C7EED0,C7F020,80A828C0,actors -ovl_En_M_Thunder,DF3DD0,DF53D0,C7F020,C80020,80A82A60,actors -ovl_En_Ma1,DF53D0,DF66B0,C80020,C80E30,80A84060,actors -ovl_En_Ma2,DF66B0,DF7710,C80E30,C81AB0,80A85340,actors -ovl_En_Ma3,DF7710,DF86C0,C81AB0,C826D0,80A863A0,actors -ovl_En_Mag,DF86C0,DFABE0,C826D0,C84120,80A87350,actors -ovl_En_Mb,DFABE0,DFEE10,C84120,C86C10,80A89870,actors -ovl_En_Md,DFEE10,E01480,C86C10,C88310,80A8DAA0,actors -ovl_En_Mk,E01480,E02310,C88310,C88CF0,80A90110,actors -ovl_En_Mm,E02310,E03970,C88CF0,C89DF0,80A90FA0,actors -ovl_En_Mm2,E03970,E04730,C89DF0,C8A860,80A92600,actors -ovl_En_Ms,E04730,E04E20,C8A860,C8AE10,80A933C0,actors -ovl_En_Mu,E04E20,E05740,C8AE10,C8B5D0,80A93AB0,actors -ovl_En_Nb,E05740,E09D10,C8B5D0,C8DA50,80A943D0,actors -ovl_En_Niw,E09D10,E0D040,C8DA50,C8FF30,80A989A0,actors -ovl_En_Niw_Girl,E0D040,E0DB10,C8FF30,C90880,80A9BCD0,actors -ovl_En_Niw_Lady,E0DB10,E0F410,C90880,C91A70,80A9C7A0,actors -ovl_En_Nutsball,E0F410,E0FA30,C91A70,C91FF0,80A9E0A0,actors -ovl_En_Nwc,E0FA30,E10450,C91FF0,C92880,80A9E6C0,actors -ovl_En_Ny,E10450,E11D90,C92880,C93B00,80A9F0E0,actors -ovl_En_OE2,E11D90,E11E70,C93B00,C93B90,80AA0A20,actors -ovl_En_Okarina_Effect,E11E70,E12230,C93B90,C93E80,80AA0B00,actors -ovl_En_Okarina_Tag,E12230,E13730,C93E80,C94A80,80AA0EC0,actors -ovl_En_Okuta,E13730,E15D10,C94A80,C964C0,80AA23C0,actors -ovl_En_Ossan,E15D10,E1C2F0,C964C0,C99CA0,80AA49A0,actors -ovl_En_Owl,E1C2F0,E1FE90,C99CA0,C9BF20,80AAAF80,actors -ovl_En_Part,E1FE90,E214F0,C9BF20,C9CF90,80AAEB20,actors -ovl_En_Peehat,E214F0,E24BF0,C9CF90,C9F260,80AB0180,actors -ovl_En_Po_Desert,E24BF0,E259B0,C9F260,C9FDB0,80AB3880,actors -ovl_En_Po_Field,E259B0,E293B0,C9FDB0,CA2620,80AB4640,actors -ovl_En_Po_Relay,E293B0,E2AAC0,CA2620,CA37A0,80AB80D0,actors -ovl_En_Po_Sisters,E2AAC0,E2F7B0,CA37A0,CA69E0,80AB97E0,actors -ovl_En_Poh,E2F7B0,E339A0,CA69E0,CA9420,80ABE4D0,actors -ovl_En_Pu_box,E339A0,E33CE0,CA9420,CA9700,80AC26C0,actors -ovl_En_Rd,E33CE0,E365A0,CA9700,CAB110,80AC2A00,actors -ovl_En_Reeba,E365A0,E38010,CAB110,CAC410,80AC52C0,actors -ovl_En_River_Sound,E38010,E389A0,CAC410,CACBE0,80AC6D30,actors -ovl_En_Rl,E389A0,E39880,CACBE0,CAD500,80AC76C0,actors -ovl_En_Rr,E39880,E3BDB0,CAD500,CAF010,80AC85A0,actors -ovl_En_Ru1,E3BDB0,E43450,CAF010,CB2E60,80ACAAD0,actors -ovl_En_Ru2,E43450,E461D0,CB2E60,CB44A0,80AD2170,actors -ovl_En_Sa,E461D0,E48440,CB44A0,CB5B00,80AD4EF0,actors -ovl_En_Sb,E48440,E49880,CB5B00,CB6880,80AD7160,actors -ovl_En_Scene_Change,E49880,E499B0,CB6880,CB6970,80AD85A0,actors -ovl_En_Sda,E499B0,E4AFE0,CB6970,CB7840,80AD86D0,actors -ovl_En_Shopnuts,E4AFE0,E4BEF0,CB7840,CB82A0,80AD9DC0,actors -ovl_En_Si,E4BEF0,E4C3F0,CB82A0,CB86C0,80ADACD0,actors -ovl_En_Siofuki,E4C3F0,E4D1A0,CB86C0,CB9100,80ADB1D0,actors -ovl_En_Skb,E4D1A0,E4EA90,CB9100,CBA320,80ADBF80,actors -ovl_En_Skj,E4EA90,E523D0,CBA320,CBC6E0,80ADD870,actors -ovl_En_Skjneedle,E523D0,E526E0,CBC6E0,CBC990,80AE11C0,actors -ovl_En_Ssh,E526E0,E54CD0,CBC990,CBE3E0,80AE14D0,actors -ovl_En_St,E54CD0,E57940,CBE3E0,CC02C0,80AE3AC0,actors -ovl_En_Sth,E57940,E5BA00,CC02C0,CC2E90,80AE6730,actors -ovl_En_Stream,E5BA00,E5BF90,CC2E90,CC3360,80AEA7F0,actors -ovl_En_Sw,E5BF90,E5F700,CC3360,CC5BA0,80AEAD80,actors -ovl_En_Syateki_Itm,E5F700,E604A0,CC5BA0,CC6610,80AEE570,actors -ovl_En_Syateki_Man,E604A0,E61260,CC6610,CC7040,80AEF310,actors -ovl_En_Syateki_Niw,E61260,E632F0,CC7040,CC8810,80AF00D0,actors -ovl_En_Ta,E632F0,E66CB0,CC8810,CCAB60,80AF2160,actors -ovl_En_Takara_Man,E66CB0,E67570,CCAB60,CCB2E0,80AF5B20,actors -ovl_En_Tana,E67570,E67820,CCB2E0,CCB520,80AF63E0,actors -ovl_En_Tg,E67820,E67F00,CCB520,CCBAF0,80AF6690,actors -ovl_En_Tite,E67F00,E6ACA0,CCBAF0,CCD6A0,80AF6D70,actors -ovl_En_Tk,E6ACA0,E6CAD0,CCD6A0,CCECD0,80AF9B10,actors -ovl_En_Torch,E6CAD0,E6CBC0,CCECD0,CCEDB0,80AFB940,actors -ovl_En_Torch2,E6CBC0,E6F320,CCEDB0,CD0A50,80AFBA30,actors -ovl_En_Toryo,E6F320,E6FFB0,CD0A50,CD1380,80AFE1D0,actors -ovl_En_Tp,E6FFB0,E71E20,CD1380,CD29B0,80AFEE60,actors -ovl_En_Tr,E71E20,E73720,CD29B0,CD3BB0,80B00CD0,actors -ovl_En_Trap,E73720,E749C0,CD3BB0,CD47F0,80B025D0,actors -ovl_En_Tubo_Trap,E749C0,E75660,CD47F0,CD5100,80B03870,actors -ovl_En_Vali,E75660,E77D20,CD5100,CD6BB0,80B04510,actors -ovl_En_Vase,E77D20,E77E20,CD6BB0,CD6C90,80B06BD0,actors -ovl_En_Vb_Ball,E77E20,E78FD0,CD6C90,CD79E0,80B06CD0,actors -ovl_En_Viewer,E78FD0,E7BE70,CD79E0,CD9950,80B07E80,actors -ovl_En_Vm,E7BE70,E7D730,CD9950,CDAAF0,80B0AD40,actors -ovl_En_Wall_Tubo,E7D730,E7DC20,CDAAF0,CDAF10,80B0C600,actors -ovl_En_Wallmas,E7DC20,E7F630,CDAF10,CDC0B0,80B0CAF0,actors -ovl_En_Weather_Tag,E7F630,E80520,CDC0B0,CDC7F0,80B0E500,actors -ovl_En_Weiyer,E80520,E81F20,CDC7F0,CDD910,80B0F3F0,actors -ovl_En_Wf,E81F20,E86230,CDD910,CE0460,80B10DF0,actors -ovl_En_Wonder_Item,E86230,E86E80,CE0460,CE0D20,80B15100,actors -ovl_En_Wonder_Talk,E86E80,E87510,CE0D20,CE1270,80B15E30,actors -ovl_En_Wonder_Talk2,E87510,E87BB0,CE1270,CE1810,80B164C0,actors -ovl_En_Wood02,E87BB0,E88D80,CE1810,CE2650,80B16B60,actors -ovl_En_Xc,E88D80,E8F4E0,CE2650,CE5B10,80B17D40,actors -ovl_En_Yabusame_Mark,E8F4E0,E8FBB0,CE5B10,CE6070,80B1E4D0,actors -ovl_En_Yukabyun,E8FBB0,E901C0,CE6070,CE65C0,80B1EBA0,actors -ovl_En_Zf,E901C0,E96CA0,CE65C0,CEAA50,80B1F1B0,actors -ovl_En_Zl1,E96CA0,E9AAB0,CEAA50,CEC9C0,80B25CA0,actors -ovl_En_Zl2,E9AAB0,E9F1B0,CEC9C0,CEEDB0,80B29AB0,actors -ovl_En_Zl3,E9F1B0,EA7000,CEEDB0,CF2E70,80B2E1B0,actors -ovl_En_Zl4,EA7000,EABA30,CF2E70,CF5440,80B36000,actors -ovl_En_Zo,EABA30,EADFF0,CF5440,CF6E60,80B3AA30,actors -ovl_En_fHG,EADFF0,EB0920,CF6E60,CF89A0,80B3CFF0,actors -ovl_End_Title,EB0920,EB4A40,CF89A0,CFA410,80B3F920,actors -ovl_Fishing,EB4A40,EC84E0,CFA410,D078E0,80B43A40,actors -ovl_Item_B_Heart,EC84E0,EC88F0,D078E0,D07C50,80B5E5B0,actors -ovl_Item_Etcetera,EC88F0,EC91C0,D07C50,D082F0,80B5E9C0,actors -ovl_Item_Inbox,EC91C0,EC9320,D082F0,D08400,80B5F290,actors -ovl_Item_Ocarina,EC9320,EC9AF0,D08400,D089C0,80B5F3F0,actors -ovl_Item_Shield,EC9AF0,ECA500,D089C0,D091C0,80B5FBC0,actors -ovl_Magic_Dark,ECA500,ECBD50,D091C0,D0A500,80B605D0,actors -ovl_Magic_Fire,ECBD50,ECE050,D0A500,D0C440,80B61E20,actors -ovl_Magic_Wind,ECE050,ECFD50,D0C440,D0DDD0,80B64120,actors -ovl_Mir_Ray,ECFD50,ED1600,D0DDD0,D0F1C0,80B65E20,actors -ovl_Obj_Bean,ED1600,ED3D90,D0F1C0,D10A90,80B676D0,actors -ovl_Obj_Blockstop,ED3D90,ED3F30,D10A90,D10C10,80B69E60,actors -ovl_Obj_Bombiwa,ED3F30,ED44A0,D10C10,D110D0,80B6A000,actors -ovl_Obj_Comb,ED44A0,ED4D00,D110D0,D11810,80B6A570,actors -ovl_Obj_Dekujr,ED4D00,ED5340,D11810,D11D50,80B6ADD0,actors -ovl_Obj_Elevator,ED5340,ED5700,D11D50,D12040,80B6B410,actors -ovl_Obj_Hamishi,ED5700,ED5F50,D12040,D12750,80B6B7D0,actors -ovl_Obj_Hana,ED5F50,ED6260,D12750,D129C0,80B6C020,actors -ovl_Obj_Hsblock,ED6260,ED6830,D129C0,D12E70,80B6C330,actors -ovl_Obj_Ice_Poly,ED6830,ED71E0,D12E70,D13660,80B6C900,actors -ovl_Obj_Kibako,ED71E0,ED7EE0,D13660,D13F40,80B6D2B0,actors -ovl_Obj_Kibako2,ED7EE0,ED85A0,D13F40,D14500,80B6DFB0,actors -ovl_Obj_Lift,ED85A0,ED8FC0,D14500,D14D40,80B6E670,actors -ovl_Obj_Lightswitch,ED8FC0,EDA3F0,D14D40,D15B10,80B6F090,actors -ovl_Obj_Makekinsuta,EDA3F0,EDA540,D15B10,D15C50,80B704C0,actors -ovl_Obj_Makeoshihiki,EDA540,EDA9D0,D15C50,D16030,80B70610,actors -ovl_Obj_Mure,EDA9D0,EDB9E0,D16030,D16B60,80B70AA0,actors -ovl_Obj_Mure2,EDB9E0,EDC400,D16B60,D172E0,80B71AB0,actors -ovl_Obj_Mure3,EDC400,EDCBD0,D172E0,D17910,80B724D0,actors -ovl_Obj_Oshihiki,EDCBD0,EDE680,D17910,D18BB0,80B72CA0,actors -ovl_Obj_Roomtimer,EDE680,EDE8D0,D18BB0,D18DB0,80B74750,actors -ovl_Obj_Switch,EDE8D0,EE06B0,D18DB0,D1A080,80B749A0,actors -ovl_Obj_Syokudai,EE06B0,EE12F0,D1A080,D1AAB0,80B76780,actors -ovl_Obj_Timeblock,EE12F0,EE1F40,D1AAB0,D1B3B0,80B773D0,actors -ovl_Obj_Tsubo,EE1F40,EE2F30,D1B3B0,D1BF10,80B78020,actors -ovl_Obj_Warp2block,EE2F30,EE3A60,D1BF10,D1C7E0,80B79010,actors -ovl_Object_Kankyo,EE3A60,EE6CE0,D1C7E0,D1EB40,80B79B40,actors -ovl_Oceff_Spot,EE6CE0,EE7C10,D1EB40,D1F830,80B7CDC0,actors -ovl_Oceff_Storm,EE7C10,EE97C0,D1F830,D212B0,80B7DCF0,actors -ovl_Oceff_Wipe,EE97C0,EEA540,D212B0,D21E70,80B7F8A0,actors -ovl_Oceff_Wipe2,EEA540,EEBCB0,D21E70,D22CB0,80B80620,actors -ovl_Oceff_Wipe3,EEBCB0,EED400,D22CB0,D23F30,80B81D90,actors -ovl_Oceff_Wipe4,EED400,EEE3E0,D23F30,D24B10,80B834E0,actors -ovl_Shot_Sun,EEE3E0,EEEAA0,D24B10,D250B0,80B844C0,actors diff --git a/tools/disasm/gc-eu-mq/files_boot.csv b/tools/disasm/gc-eu-mq/files_boot.csv deleted file mode 100644 index 74b3eb521..000000000 --- a/tools/disasm/gc-eu-mq/files_boot.csv +++ /dev/null @@ -1,135 +0,0 @@ -offset,vram,.text -0,80000460,src/boot/boot_main -140,800005A0,src/boot/idle -3D0,80000830,src/boot/viconfig -520,80000980,src/boot/z_std_dma -B60,80000FC0,src/boot/yaz0 -EA0,80001300,src/boot/z_locale -F60,800013C0,src/boot/is_debug -FC0,80001420,src/libultra/io/driverominit -11A0,80001600,src/boot/mio0 -1250,800016B0,src/boot/stackcheck -14A0,80001900,src/boot/logutils -1500,80001960,src/libultra/io/piacs -15C0,80001A20,src/libultra/os/sendmesg -1710,80001B70,src/libultra/os/stopthread -17D0,80001C30,src/libultra/io/viextendvstart -17E0,80001C40,src/libultra/os/recvmesg -1920,80001D80,src/libultra/os/initialize -1C70,800020D0,src/libultra/libc/ll -1F30,80002390,src/libultra/os/exceptasm -2860,80002CC0,src/libultra/os/thread -28A0,80002D00,src/libultra/os/destroythread -29B0,80002E10,src/libultra/libc/bzero -2A50,80002EB0,src/libultra/os/parameters -2AB0,80002F10,src/libultra/os/createthread -2C00,80003060,src/libultra/os/setsr -2C10,80003070,src/libultra/os/getsr -2C20,80003080,src/libultra/os/writebackdcache -2CA0,80003100,src/libultra/io/vigetnextframebuf -2CE0,80003140,src/libultra/io/pimgr -2E60,800032C0,src/libultra/io/devmgr -3270,800036D0,src/libultra/io/pirawdma -3340,800037A0,src/libultra/os/virtualtophysical -33C0,80003820,src/libultra/io/viblack -3430,80003890,src/libultra/io/sirawread -3480,800038E0,src/libultra/os/getthreadid -34A0,80003900,src/libultra/os/setintmask -3540,800039A0,src/libultra/io/visetmode -35A0,80003A00,src/libultra/os/probetlb -3660,80003AC0,src/libultra/os/getmemsize -3780,80003BE0,src/libultra/os/seteventmesg -3840,80003CA0,src/libultra/os/unmaptlball -3890,80003CF0,src/libultra/io/epidma -3930,80003D90,src/libultra/os/invalicache -39B0,80003E10,src/libultra/os/createmesgqueue -39E0,80003E40,src/libultra/os/invaldcache -3A90,80003EF0,src/libultra/io/si -3AC0,80003F20,src/libultra/os/jammesg -3C10,80004070,src/libultra/os/setthreadpri -3CF0,80004150,src/libultra/os/getthreadpri -3D10,80004170,src/libultra/io/epirawread -3E70,800042D0,src/libultra/io/viswapbuf -3EC0,80004320,src/libultra/io/epirawdma -40A0,80004500,src/libultra/libc/bcmp -41C0,80004620,src/libultra/os/gettime -4250,800046B0,src/libultra/os/timerintr -4680,80004AE0,src/libultra/os/getcount -4690,80004AF0,src/libultra/os/setglobalintmask -46E0,80004B40,src/libultra/os/setcompare -46F0,80004B50,src/libultra/libc/bcopy -4A00,80004E60,src/libultra/os/resetglobalintmask -4A60,80004EC0,src/libultra/os/interrupt -4AF0,80004F50,src/libultra/io/vi -4C10,80005070,src/libultra/io/viswapcontext -4F10,80005370,src/libultra/io/pigetcmdq -4F40,800053A0,src/libultra/io/epiread -4F90,800053F0,src/libultra/io/visetspecial -50F0,80005550,src/libultra/io/cartrominit -5250,800056B0,src/libultra/os/setfpccsr -5260,800056C0,src/libultra/os/getfpccsr -5270,800056D0,src/libultra/os/maptlbrdb -52D0,80005730,src/libultra/os/yieldthread -5320,80005780,src/libultra/os/getcause -5330,80005790,src/libultra/io/epirawwrite -5490,800058F0,src/libultra/io/sirawwrite -54E0,80005940,src/libultra/io/vimgr -57F0,80005C50,src/libultra/io/vigetcurrcontext -5800,80005C60,src/libultra/os/startthread -5950,80005DB0,src/libultra/io/visetyscale -59A0,80005E00,src/libultra/io/visetxscale -5AB0,80005F10,src/libultra/os/sethwintrroutine -5B20,80005F80,src/libultra/os/gethwintrroutine -5B50,80005FB0,src/libultra/os/setwatchlo -5B60,80005FC0,data/rsp_boot.text - -offset,vram,.data -5C30,80006090,data/unk_800093F0.data -5C50,800060B0,data/unk_80009410.data -5C70,800060D0,src/boot/idle -5C90,800060F0,src/boot/viconfig -5CA0,80006100,src/boot/z_std_dma -5CB0,80006110,src/boot/z_locale -5CC0,80006120,src/libultra/io/driverominit -5CD0,80006130,src/boot/stackcheck -5CE0,80006140,src/libultra/io/piacs -5CF0,80006150,src/libultra/io/vimodepallan1 -5D40,800061A0,src/libultra/os/initialize -5D60,800061C0,src/libultra/os/exceptasm -5D90,800061F0,src/libultra/os/thread -5DB0,80006210,src/libultra/io/pimgr -5DE0,80006240,src/libultra/os/seteventmesg -5DF0,80006250,src/libultra/os/timerintr -5E00,80006260,src/libultra/io/vimodentsclan1 -5E50,800062B0,src/libultra/io/vimodempallan1 -5EA0,80006300,src/libultra/io/vi -5F10,80006370,src/libultra/io/cartrominit -5F20,80006380,src/libultra/io/vimgr - -offset,vram,.rodata -5F40,800063A0,src/boot/boot_main -5F50,800063B0,src/boot/idle -5F60,800063C0,src/boot/z_std_dma -5FC0,80006420,src/boot/z_locale -5FD0,80006430,src/boot/stackcheck -5FE0,80006440,src/boot/logutils -5FF0,80006450,src/libultra/os/exceptasm -6040,800064A0,src/libultra/io/devmgr -6060,800064C0,src/libultra/os/setintmask -60E0,80006540,src/boot/build - -offset,vram,.bss -6110,80006570,src/boot/boot_main -6B00,80006F60,src/boot/idle -7710,80007B70,src/boot/z_std_dma -7E80,800082E0,src/boot/yaz0 -8290,800086F0,src/boot/z_locale -82B0,80008710,src/libultra/io/driverominit -8330,80008790,src/libultra/io/piacs -8350,800087B0,src/libultra/os/initialize -8360,800087C0,src/libultra/io/pimgr -97D0,80009C30,src/libultra/os/seteventmesg -9850,80009CB0,src/libultra/os/timerintr -9890,80009CF0,src/libultra/io/cartrominit -9910,80009D70,src/libultra/io/vimgr -AB30,8000AF90,.end diff --git a/tools/disasm/gc-eu-mq/files_code.csv b/tools/disasm/gc-eu-mq/files_code.csv deleted file mode 100644 index d22e15fe0..000000000 --- a/tools/disasm/gc-eu-mq/files_code.csv +++ /dev/null @@ -1,464 +0,0 @@ -offset,vram,.text -0,80010F00,src/code/z_en_a_keep -AA0,800119A0,src/code/z_en_item00 -2EA0,80013DA0,src/code/z_eff_blure -62D0,800171D0,src/code/z_eff_shield_particle -7930,80018830,src/code/z_eff_spark -8FE0,80019EE0,src/code/z_eff_ss_dead -9790,8001A690,src/code/z_effect -9F10,8001AE10,src/code/z_effect_soft_sprite -A9B0,8001B8B0,src/code/z_effect_soft_sprite_old_init -D4D0,8001E3D0,src/code/flg_set -D8F0,8001E7F0,src/code/z_DLF -DB40,8001EA40,src/code/z_actor -1A0C0,8002AFC0,src/code/z_actor_dlftbls -1A210,8002B110,src/code/z_bgcheck -23DF0,80034CF0,src/code/code_800430A0 -24110,80035010,src/code/code_80043480 -244A0,800353A0,src/code/z_camera -38AD0,800499D0,src/code/z_collision_btltbls -38B30,80049A30,src/code/z_collision_check -407B0,800516B0,src/code/z_common_data -40830,80051730,src/code/z_debug -40B40,80051A40,src/code/z_debug_display -41000,80051F00,src/code/z_demo -45CE0,80056BE0,src/code/code_80069420 -45D70,80056C70,src/code/z_draw -47C70,80058B70,src/code/z_sfx_source -47E30,80058D30,src/code/z_elf_message -48510,80059410,src/code/z_face_reaction -48560,80059460,src/code/code_8006C3A0 -486E0,800595E0,src/code/z_fcurve_data -48920,80059820,src/code/z_fcurve_data_skelanime -49130,8005A030,src/code/z_horse -49E10,8005AD10,src/code/z_jpeg -4A5D0,8005B4D0,src/code/z_kaleido_setup -4A9A0,8005B8A0,src/code/z_kanfont -4AB70,8005BA70,src/code/z_kankyo -52380,80063280,src/code/z_lib -53520,80064420,src/code/z_lifemeter -548C0,800657C0,src/code/z_lights -55960,80066860,src/code/z_malloc -55B40,80066A40,src/code/z_map_mark -56140,80067040,src/code/z_prenmi_buff -56200,80067100,src/code/z_nulltask -56280,80067180,src/code/z_olib -56970,80067870,src/code/z_onepointdemo -5A910,8006B810,src/code/z_map_exp -5C4B0,8006D3B0,src/code/z_parameter -67BA0,80078AA0,src/code/z_path -67D70,80078C70,src/code/z_frame_advance -67E20,80078D20,src/code/z_player_lib -6B890,8007C790,src/code/z_prenmi -6BA30,8007C930,src/code/z_quake -6C8A0,8007D7A0,src/code/z_rcp -6E160,8007F060,src/code/z_room -6F950,80080850,src/code/z_sample -6FD50,80080C50,src/code/code_80097A00 -6FF10,80080E10,src/code/z_scene -713C0,800822C0,src/code/z_scene_table -77BA0,80088AA0,src/code/z_skelanime -7C590,8008D490,src/code/z_skin -7D130,8008E030,src/code/z_skin_awb -7DA40,8008E940,src/code/z_skin_matrix -7EDE0,8008FCE0,src/code/z_sram -80220,80091120,src/code/z_ss_sram -803F0,800912F0,src/code/z_rumble -80670,80091570,src/code/z_view -81D70,80092C70,src/code/z_vimode -828E0,800937E0,src/code/z_viscvg -82A80,80093980,src/code/z_vismono -832A0,800941A0,src/code/z_viszbuf -83530,80094430,src/code/z_vr_box -85E00,80096D00,src/code/z_vr_box_draw -864E0,800973E0,src/code/z_player_call -86650,80097550,src/code/z_fbdemo -87070,80097F70,src/code/z_fbdemo_triforce -87630,80098530,src/code/z_fbdemo_wipe1 -87AA0,800989A0,src/code/z_fbdemo_circle -88160,80099060,src/code/z_fbdemo_fade -884C0,800993C0,src/code/shrink_window -88630,80099530,src/code/code_800BB0A0 -88B00,80099A00,src/code/z_kaleido_manager -88D30,80099C30,src/code/z_kaleido_scope_call -89010,80099F10,src/code/z_play -8CA70,8009D970,src/code/PreRender -8EB60,8009FA60,src/code/TwoHeadGfxArena -8ED70,8009FC70,src/code/TwoHeadArena -8EF30,8009FE30,src/code/audio_stop_all_sfx -8EF80,8009FE80,src/code/audio_thread_manager -8F390,800A0290,src/code/title_setup -8F400,800A0300,src/code/game -8FB80,800A0A80,src/code/gamealloc -8FCC0,800A0BC0,src/code/graph -90660,800A1560,src/code/gfxalloc -906C0,800A15C0,src/code/listalloc -90810,800A1710,src/code/main -90B70,800A1A70,src/code/padmgr -91680,800A2580,src/code/sched -92300,800A3200,src/code/speed_meter -92D40,800A3C40,src/code/sys_cfb -92E60,800A3D60,src/code/sys_math -93100,800A4000,src/code/sys_math3d -98ED0,800A9DD0,src/code/sys_math_atan -99100,800AA000,src/code/sys_matrix -9B500,800AC400,src/code/sys_ucode -9B550,800AC450,src/code/sys_rumble -9B8B0,800AC7B0,src/code/code_800D31A0 -9B8E0,800AC7E0,src/code/irqmgr -9BF00,800ACE00,src/code/fault -9E750,800AF650,src/code/fault_drawer -9F1D0,800B00D0,src/code/kanread -9FCC0,800B0BC0,src/audio/lib/synthesis -A2E20,800B3D20,src/audio/lib/heap -A61F0,800B70F0,src/audio/lib/load -A9FE0,800BAEE0,src/audio/lib/thread -AB840,800BC740,src/audio/lib/dcache -AB8C0,800BC7C0,src/audio/lib/aisetnextbuf -AB940,800BC840,src/audio/lib/playback -AD8C0,800BE7C0,src/audio/lib/effects -AE340,800BF240,src/audio/lib/seqplayer -B1960,800C2860,src/audio/general -B7AF0,800C89F0,src/audio/sfx -B9950,800CA850,src/audio/sequence -BB570,800CC470,src/code/gfxprint -BC2E0,800CD1E0,src/code/rcp_utils -BC340,800CD240,src/code/loadfragment2 -BC3A0,800CD2A0,src/code/relocation -BC5E0,800CD4E0,src/code/load -BC6B0,800CD5B0,src/code/code_800FC620 -BC9F0,800CD8F0,src/code/padutils -BCBE0,800CDAE0,src/code/padsetup -BCD20,800CDC20,src/code/code_800FCE80 -BD230,800CE130,src/code/fp -BD390,800CE290,src/code/system_malloc -BD560,800CE460,src/code/rand -BD720,800CE620,src/code/__osMalloc -BE4D0,800CF3D0,src/libultra/libc/sprintf -BE5A0,800CF4A0,src/code/printutils -BE600,800CF500,src/code/sleep -BE7A0,800CF6A0,src/code/jpegutils -BECB0,800CFBB0,src/code/jpegdecoder -BF2A0,800D01A0,src/libultra/mgu/scale -BF350,800D0250,src/libultra/gu/sinf -BF510,800D0410,src/libultra/gu/sins -BF580,800D0480,src/libultra/io/sptask -BF840,800D0740,src/libultra/io/motor -BFC10,800D0B10,src/libultra/io/siacs -BFCD0,800D0BD0,src/libultra/io/controller -BFFB0,800D0EB0,src/libultra/io/contreaddata -C0190,800D1090,src/libultra/gu/perspective -C0420,800D1320,src/libultra/io/sprawdma -C04B0,800D13B0,src/libultra/io/sirawdma -C0560,800D1460,src/libultra/io/sptaskyield -C0580,800D1480,src/libultra/mgu/mtxidentf -C05D0,800D14D0,src/libultra/gu/lookat -C08F0,800D17F0,src/libultra/os/stoptimer -C09E0,800D18E0,src/libultra/gu/sqrtf -C09F0,800D18F0,src/libultra/os/afterprenmi -C0A10,800D1910,src/libultra/io/contquery -C0AB0,800D19B0,src/libultra/gu/lookathil -C1330,800D2230,src/libultra/libc/xprintf -C2010,800D2F10,src/libultra/libc/string -C20B0,800D2FB0,src/libultra/io/sp -C20E0,800D2FE0,src/libultra/mgu/mtxident -C2130,800D3030,src/libultra/gu/position -C2340,800D3240,src/libultra/io/sptaskyielded -C23A0,800D32A0,src/libultra/gu/rotate -C2570,800D3470,src/libultra/io/aisetfreq -C26C0,800D35C0,src/libultra/os/getactivequeue -C26E0,800D35E0,src/libultra/mgu/normalize -C2740,800D3640,src/libultra/io/dpgetstat -C2750,800D3650,src/libultra/io/dpsetstat -C2760,800D3660,src/libultra/gu/ortho -C2920,800D3820,src/libultra/gu/cosf -C2A90,800D3990,src/libultra/gu/coss -C2AC0,800D39C0,src/libultra/io/visetevent -C2B20,800D3A20,src/libultra/gu/us2dex -C2CA0,800D3BA0,src/libultra/io/pfsselectbank -C2D20,800D3C20,src/libultra/io/contsetch -C2D80,800D3C80,src/libultra/io/aigetlen -C2DA0,800D3CA0,src/libultra/mgu/translate -C2E70,800D3D70,src/libultra/io/contramwrite -C30C0,800D3FC0,src/libultra/io/pfsgetstatus -C32F0,800D41F0,src/libultra/io/contpfs -C3E70,800D4D70,src/libultra/io/contramread -C40A0,800D4FA0,src/libultra/io/crc -C4210,800D5110,src/libultra/io/pfsisplug -C4500,800D5400,src/libultra/os/settimer -C4690,800D5590,src/libultra/libc/xldtob -C51A0,800D60A0,src/libultra/libc/ldiv -C5330,800D6230,src/libultra/libc/xlitob -C55D0,800D64D0,src/libultra/io/spgetstat -C55E0,800D64E0,src/libultra/io/spsetstat -C55F0,800D64F0,src/libultra/os/writebackdcacheall -C5620,800D6520,src/libultra/os/getcurrfaultedthread -C5640,800D6540,src/libultra/mgu/mtxf2l -C56B0,800D65B0,src/libultra/libc/llcvt -C58C0,800D67C0,src/libultra/io/vigetcurrframebuf -C5900,800D6800,src/libultra/io/spsetpc -C5930,800D6830,src/libultra/libc/sqrt -C5940,800D6840,src/libultra/libc/absf -C5950,800D6850,src/code/fmodf -C59A0,800D68A0,src/code/__osMemset -C59D0,800D68D0,src/code/__osMemmove -C5A60,800D6960,src/code/z_message_PAL -CE820,800DF720,src/code/z_game_over -CED60,800DFC60,src/code/z_construct -D02A0,800E11A0,data/rsp.text - -offset,vram,.data -D3600,800E4500,src/code/z_en_a_keep -D36A0,800E45A0,src/code/z_en_item00 -D3940,800E4840,src/code/z_eff_blure -D39F0,800E48F0,src/code/z_eff_shield_particle -D3A40,800E4940,src/code/z_effect -D3A90,800E4990,src/code/z_effect_soft_sprite -D3AA0,800E49A0,src/code/z_effect_soft_sprite_old_init -D3B90,800E4A90,src/code/z_effect_soft_sprite_dlftbls -D3FA0,800E4EA0,src/code/flg_set -D4160,800E5060,src/code/z_actor -D4480,800E5380,src/code/z_actor_dlftbls -D7F70,800E8E70,src/code/z_bgcheck -D80C0,800E8FC0,src/code/z_camera -DB610,800EC510,src/code/z_collision_btltbls -DB8F0,800EC7F0,src/code/z_collision_check -DBBA0,800ECAA0,src/code/z_debug -DBBD0,800ECAD0,src/code/z_debug_display -DBC20,800ECB20,src/code/z_demo -DBD80,800ECC80,src/code/z_draw -DCE00,800EDD00,src/code/z_elf_message -DCE50,800EDD50,src/code/z_face_reaction -DD290,800EE190,src/code/z_game_dlftbls -DD3B0,800EE2B0,src/code/z_horse -DD4C0,800EE3C0,src/code/z_jpeg -DD500,800EE400,src/code/z_kaleido_setup -DD550,800EE450,src/code/z_kankyo -DD940,800EE840,src/code/z_lib -DD970,800EE870,src/code/z_lifemeter -DDA90,800EE990,src/code/z_lights -DDAA0,800EE9A0,src/code/z_map_mark -DDB60,800EEA60,src/code/z_onepointdemo -E1480,800F2380,src/code/z_map_exp -E14A0,800F23A0,src/code/z_map_data -E32A0,800F41A0,src/code/z_parameter -E35A0,800F44A0,src/code/z_player_lib -E3C80,800F4B80,src/code/z_quake -E3CB0,800F4BB0,src/code/z_rcp -E4AD0,800F59D0,src/code/z_room -E4B50,800F5A50,src/code/code_80097A00 -E4ED0,800F5DD0,src/code/z_scene -E4F50,800F5E50,src/code/object_table -E5BF0,800F6AF0,src/code/z_scene_table -E7E00,800F8D00,src/code/z_skelanime -E7E20,800F8D20,src/code/z_skin_matrix -E7E60,800F8D60,src/code/z_sram -E8010,800F8F10,src/code/z_ss_sram -E80C0,800F8FC0,data/unk_8012ABC0.data -E80F0,800F8FF0,src/code/z_view -E8100,800F9000,src/code/z_viscvg -E8190,800F9090,src/code/z_vr_box -E8490,800F9390,src/code/z_player_call -E84B0,800F93B0,src/code/z_fbdemo -E8530,800F9430,src/code/z_fbdemo_triforce -E8600,800F9500,src/code/z_fbdemo_wipe1 -E90A0,800F9FA0,src/code/z_fbdemo_circle -EA3A0,800FB2A0,src/code/z_fbdemo_fade -EA3D0,800FB2D0,src/code/shrink_window -EA3E0,800FB2E0,src/code/z_kaleido_manager -EA430,800FB330,src/code/z_play -EA440,800FB340,src/code/audio_stop_all_sfx -EA450,800FB350,src/code/graph -EA460,800FB360,src/code/main -EA470,800FB370,src/code/padmgr -EA480,800FB380,src/code/speed_meter -EA4B0,800FB3B0,src/code/sys_math -EA4F0,800FB3F0,src/code/sys_math_atan -EAD00,800FBC00,src/code/sys_matrix -EAD80,800FBC80,src/code/sys_ucode -EAD90,800FBC90,src/code/sys_rumble -EADA0,800FBCA0,src/code/irqmgr -EADC0,800FBCC0,src/code/fault -EAE20,800FBD20,src/code/fault_drawer -EAE60,800FBD60,src/audio/lib/data -ED270,800FE170,src/audio/lib/synthesis -ED2A0,800FE1A0,src/audio/lib/load -ED2B0,800FE1B0,src/audio/lib/thread -ED2D0,800FE1D0,src/audio/lib/aisetnextbuf -ED2E0,800FE1E0,src/audio/lib/effects -ED2F0,800FE1F0,src/audio/lib/seqplayer -ED340,800FE240,src/audio/general -EEA60,800FF960,src/audio/sfx_params -EFE30,80100D30,src/audio/data -EFEA0,80100DA0,src/audio/session_config -F0640,80101540,src/code/logseverity -F0650,80101550,src/code/gfxprint -F0F00,80101E00,src/code/code_800FC620 -F0F20,80101E20,src/code/fp -F0F30,80101E30,src/code/rand -F0F40,80101E40,src/code/__osMalloc -F0F50,80101E50,src/libultra/gu/sins -F1750,80102650,src/libultra/io/siacs -F1760,80102660,src/libultra/io/controller -F1770,80102670,src/libultra/libc/xprintf -F17C0,801026C0,src/libultra/gu/position -F17D0,801026D0,src/libultra/gu/rotate -F17E0,801026E0,src/libultra/io/vimodefpallan1 -F1830,80102730,src/libultra/io/contpfs -F1840,80102740,src/libultra/io/contramread -F1850,80102750,src/libultra/libc/xlitob - -offset,vram,.rodata -F1880,80102780,src/code/z_en_a_keep -F18D0,801027D0,src/code/z_en_item00 -F1B40,80102A40,src/code/z_eff_blure -F1B70,80102A70,src/code/z_eff_shield_particle -F1B80,80102A80,src/code/z_eff_spark -F1B90,80102A90,src/code/z_eff_ss_dead -F1BA0,80102AA0,src/code/z_effect_soft_sprite_old_init -F1BC0,80102AC0,src/code/flg_set -F1F50,80102E50,src/code/z_actor -F2500,80103400,src/code/z_actor_dlftbls -F2550,80103450,src/code/z_bgcheck -F25F0,801034F0,src/code/code_80043480 -F2600,80103500,src/code/z_camera -F2D80,80103C80,src/code/z_collision_check -F2DD0,80103CD0,src/code/z_debug -F2DE0,80103CE0,src/code/z_demo -F32C0,801041C0,src/code/z_draw -F32D0,801041D0,src/code/z_elf_message -F33F0,801042F0,src/code/z_fcurve_data -F3400,80104300,src/code/z_fcurve_data_skelanime -F3410,80104310,src/code/z_horse -F3420,80104320,src/code/z_jpeg -F34B0,801043B0,src/code/z_kankyo -F3560,80104460,src/code/z_lib -F3570,80104470,src/code/z_lifemeter -F3590,80104490,src/code/z_lights -F35A0,801044A0,src/code/z_map_mark -F3600,80104500,src/code/z_olib -F3620,80104520,src/code/z_onepointdemo -F3EE0,80104DE0,src/code/z_map_exp -F4200,80105100,src/code/z_parameter -F4410,80105310,src/code/z_path -F4420,80105320,src/code/z_player_lib -F4480,80105380,src/code/z_quake -F4510,80105410,src/code/z_room -F4550,80105450,src/code/z_sample -F4560,80105460,src/code/z_scene_table -F45A0,801054A0,src/code/z_skelanime -F45C0,801054C0,src/code/z_skin -F45D0,801054D0,src/code/z_skin_matrix -F45E0,801054E0,src/code/z_sram -F4650,80105550,src/code/z_rumble -F4660,80105560,src/code/z_view -F4670,80105570,src/code/z_vr_box -F4760,80105660,src/code/z_fbdemo_triforce -F4770,80105670,src/code/z_fbdemo_wipe1 -F4780,80105680,src/code/z_fbdemo_circle -F4790,80105690,src/code/code_800BB0A0 -F47A0,801056A0,src/code/z_kaleido_manager -F47C0,801056C0,src/code/z_play -F4880,80105780,src/code/game -F48A0,801057A0,src/code/graph -F48F0,801057F0,src/code/main -F4920,80105820,src/code/padmgr -F4930,80105830,src/code/sys_cfb -F4940,80105840,src/code/sys_math -F4950,80105850,src/code/sys_math3d -F49E0,801058E0,src/code/sys_math_atan -F49F0,801058F0,src/code/sys_matrix -F4A20,80105920,src/code/irqmgr -F4A40,80105940,src/code/fault -F5450,80106350,src/code/fault_drawer -F5880,80106780,src/audio/lib/synthesis -F58A0,801067A0,src/audio/lib/heap -F58D0,801067D0,src/audio/lib/load -F5940,80106840,src/audio/lib/thread -F5A70,80106970,src/audio/lib/playback -F5AA0,801069A0,src/audio/lib/effects -F5AD0,801069D0,src/audio/lib/seqplayer -F6110,80107010,src/audio/general -F62A0,801071A0,src/audio/sfx -F62C0,801071C0,src/audio/sequence -F6340,80107240,src/audio/session_config -F6350,80107250,src/code/gfxprint -F6370,80107270,src/code/code_800FCE80 -F63C0,801072C0,src/code/__osMalloc -F6680,80107580,src/libultra/gu/sinf -F66D0,801075D0,src/libultra/gu/perspective -F66E0,801075E0,src/libultra/gu/lookathil -F66F0,801075F0,src/libultra/libc/xprintf -F67F0,801076F0,src/libultra/gu/cosf -F6840,80107740,src/libultra/gu/libm_vals -F6850,80107750,src/libultra/libc/xldtob -F68B0,801077B0,src/libultra/libc/llcvt - -offset,vram,.data -F68C0,801077C0,src/code/z_message_PAL - -offset,vram,.rodata -FF350,80110250,src/code/z_message_PAL -FF510,80110410,src/code/z_game_over -FF570,80110470,data/audio_tables.rodata -100110,80111010,data/rsp.rodata - -offset,vram,.bss -102230,80113130,src/code/z_en_item00 -102240,80113140,src/code/z_effect -106030,80116F30,src/code/flg_set -106040,80116F40,src/code/z_actor -1060C0,80116FC0,src/code/z_actor_dlftbls -1060D0,80116FD0,src/code/z_bgcheck -1061F0,801170F0,src/code/z_camera -1062D0,801171D0,src/code/z_collision_check -107A30,80118930,src/code/z_common_data -108E60,80119D60,src/code/z_debug -109080,80119F80,src/code/z_debug_display -109090,80119F90,src/code/z_demo -1090C0,80119FC0,src/code/z_kankyo -109190,8011A090,src/code/z_lifemeter -1091C0,8011A0C0,src/code/z_lights -109350,8011A250,src/code/z_malloc -109380,8011A280,src/code/z_map_mark -109390,8011A290,src/code/z_map_exp -1093A0,8011A2A0,src/code/z_parameter -1093C0,8011A2C0,src/code/z_player_lib -1093E0,8011A2E0,src/code/z_quake -109470,8011A370,src/code/z_skelanime -109480,8011A380,src/code/z_skin -10A390,8011B290,src/code/z_rumble -10A4A0,8011B3A0,src/code/z_vr_box_draw -10A4B0,8011B3B0,src/code/z_player_call -10A4C0,8011B3C0,src/code/z_kaleido_scope_call -10A4E0,8011B3E0,src/code/z_play -10A5F0,8011B4F0,src/code/game -10A6D0,8011B5D0,src/code/graph -10A740,8011B640,src/code/main -10E5D0,8011F4D0,src/code/padmgr -10E5E0,8011F4E0,src/code/sched -10E600,8011F500,src/code/speed_meter -10E670,8011F570,src/code/sys_cfb -10E680,8011F580,src/code/sys_math3d -10E8A0,8011F7A0,src/code/sys_matrix -10E8B0,8011F7B0,src/code/fault -10F730,80120630,src/code/fault_drawer -10F790,80120690,src/audio/lib/load -10F850,80120750,src/audio/general -10FA50,80120950,src/audio/sfx -112260,80123160,src/audio/sequence -113020,80123F20,src/audio/session_config -119530,8012A430,src/code/gfxprint -119540,8012A440,src/code/code_800FCE80 -119550,8012A450,src/code/system_malloc -119580,8012A480,src/code/rand -119590,8012A490,src/code/__osMalloc -1195A0,8012A4A0,src/code/jpegdecoder -1195B0,8012A4B0,src/libultra/io/sptask -1195F0,8012A4F0,src/libultra/io/motor -1196F0,8012A5F0,src/libultra/io/siacs -119710,8012A610,src/libultra/io/controller -1197A0,8012A6A0,src/libultra/io/contpfs -1198A0,8012A7A0,src/libultra/io/pfsisplug -1198E0,8012A7E0,src/code/z_message_PAL -119900,8012A800,.end diff --git a/tools/disasm/gc-eu-mq/files_ovl_file_choose.csv b/tools/disasm/gc-eu-mq/files_ovl_file_choose.csv deleted file mode 100644 index aa498ef9a..000000000 --- a/tools/disasm/gc-eu-mq/files_ovl_file_choose.csv +++ /dev/null @@ -1,22 +0,0 @@ -offset,vram,.text -0,80803630,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase -3040,80806670,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL -6F60,8080A590,src/overlays/gamestates/ovl_file_choose/z_file_choose - -offset,vram,.data -D740,80810D70,src/overlays/gamestates/ovl_file_choose/z_file_nameset_data -E010,80811640,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase -E050,80811680,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL -E2B0,808118E0,src/overlays/gamestates/ovl_file_choose/z_file_choose - -offset,vram,.rodata -E5F0,80811C20,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL -E600,80811C30,src/overlays/gamestates/ovl_file_choose/z_file_choose - -offset,vram,.ovl -E620,80811C50,src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc - -offset,vram,.bss -EC10,80812240,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase -EC20,80812250,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL -EC30,80812260,.end diff --git a/tools/disasm/gc-eu-mq/files_ovl_kaleido_scope.csv b/tools/disasm/gc-eu-mq/files_ovl_kaleido_scope.csv deleted file mode 100644 index ca3a62dca..000000000 --- a/tools/disasm/gc-eu-mq/files_ovl_kaleido_scope.csv +++ /dev/null @@ -1,34 +0,0 @@ -offset,vram,.text -0,80812260,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect -2400,80814660,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug -43B0,80816610,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment -5E30,80818090,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item -7E20,8081A080,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL -B100,8081D360,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt -B300,8081D560,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL -15350,808275B0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark - -offset,vram,.data -15A10,80827C70,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect -15BC0,80827E20,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug -15D90,80827FF0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment -15DC0,80828020,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item -15E30,80828090,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL -16080,808282E0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt -16090,808282F0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL -16C10,80828E70,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark -16C60,80828EC0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data - -offset,vram,.rodata -1ADC0,8082D020,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug -1AEA0,8082D100,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment -1AEB0,8082D110,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL -1B190,8082D3F0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark -1B240,8082D4A0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data - -offset,vram,.ovl -1B2C0,8082D560,src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc - -offset,vram,.bss -1C9C0,8082EC20,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL -1CA30,8082EC90,.end diff --git a/tools/disasm/gc-eu-mq/functions.txt b/tools/disasm/gc-eu-mq/functions.txt deleted file mode 100644 index 92646c223..000000000 --- a/tools/disasm/gc-eu-mq/functions.txt +++ /dev/null @@ -1,13146 +0,0 @@ -entrypoint = 0x80000400; // type:func -cleararena = 0x80000460; // type:func -bootproc = 0x80000498; // type:func -Main_ThreadEntry = 0x800005A0; // type:func -Idle_ThreadEntry = 0x8000063C; // type:func -ViConfig_UpdateVi = 0x80000830; // type:func -ViConfig_UpdateBlack = 0x80000930; // type:func -DmaMgr_DmaRomToRam = 0x80000980; // type:func -DmaMgr_AudioDmaHandler = 0x80000B04; // type:func -DmaMgr_DmaFromDriveRom = 0x80000B24; // type:func -DmaMgr_FindFileName = 0x80000BC8; // type:func -DmaMgr_GetFileName = 0x80000BD8; // type:func -DmaMgr_ProcessRequest = 0x80000BEC; // type:func -DmaMgr_ThreadEntry = 0x80000D78; // type:func -DmaMgr_RequestAsync = 0x80000DF8; // type:func -DmaMgr_RequestSync = 0x80000E5C; // type:func -DmaMgr_Init = 0x80000ED8; // type:func -Yaz0_FirstDMA = 0x80000FC0; // type:func -Yaz0_NextDMA = 0x80001060; // type:func -Yaz0_DecompressImpl = 0x8000114C; // type:func -Yaz0_Decompress = 0x800012B4; // type:func -Locale_Init = 0x80001300; // type:func -Locale_ResetRegion = 0x800013AC; // type:func -osSyncPrintfUnused = 0x800013C0; // type:func -osSyncPrintf = 0x800013DC; // type:func -rmonPrintf = 0x800013F8; // type:func -osDriveRomInit = 0x80001420; // type:func -Mio0_Decompress = 0x80001600; // type:func -StackCheck_Init = 0x800016B0; // type:func -StackCheck_Cleanup = 0x80001788; // type:func -StackCheck_GetState = 0x800017F8; // type:func -StackCheck_CheckAll = 0x80001870; // type:func -StackCheck_Check = 0x800018C8; // type:func -LogUtils_HungupThread = 0x80001900; // type:func -LogUtils_ResetHungup = 0x80001934; // type:func -__osPiCreateAccessQueue = 0x80001960; // type:func -__osPiGetAccess = 0x800019B0; // type:func -__osPiRelAccess = 0x800019F4; // type:func -osSendMesg = 0x80001A20; // type:func -osStopThread = 0x80001B70; // type:func -osViExtendVStart = 0x80001C30; // type:func -osRecvMesg = 0x80001C40; // type:func -__createSpeedParam = 0x80001D80; // type:func -__osInitialize_common = 0x80001E1C; // type:func -__osInitialize_autodetect = 0x800020C8; // type:func -__ull_rshift = 0x800020D0; // type:func -__ull_rem = 0x800020FC; // type:func -__ull_div = 0x80002138; // type:func -__ll_lshift = 0x80002174; // type:func -__ll_rem = 0x800021A0; // type:func -__ll_div = 0x800021DC; // type:func -__ll_mul = 0x80002238; // type:func -__ull_divremi = 0x80002268; // type:func -__ll_mod = 0x800022C8; // type:func -__ll_rshift = 0x80002364; // type:func -__osExceptionPreamble = 0x80002390; // type:func -__osException = 0x800023A0; // type:func -__osEnqueueAndYield = 0x800029D4; // type:func -__osEnqueueThread = 0x80002AD4; // type:func -__osPopThread = 0x80002B1C; // type:func -__osNop = 0x80002B2C; // type:func -__osDispatchThread = 0x80002B34; // type:func -__osCleanupThread = 0x80002CB0; // type:func -__osDequeueThread = 0x80002CC0; // type:func -osDestroyThread = 0x80002D00; // type:func -bzero = 0x80002E10; // type:func -osCreateThread = 0x80002F10; // type:func -__osSetSR = 0x80003060; // type:func -__osGetSR = 0x80003070; // type:func -osWritebackDCache = 0x80003080; // type:func -osViGetNextFramebuffer = 0x80003100; // type:func -osCreatePiManager = 0x80003140; // type:func -__osDevMgrMain = 0x800032C0; // type:func -__osPiRawStartDma = 0x800036D0; // type:func -osVirtualToPhysical = 0x800037A0; // type:func -osViBlack = 0x80003820; // type:func -__osSiRawReadIo = 0x80003890; // type:func -osGetThreadId = 0x800038E0; // type:func -osSetIntMask = 0x80003900; // type:func -osViSetMode = 0x800039A0; // type:func -__osProbeTLB = 0x80003A00; // type:func -osGetMemSize = 0x80003AC0; // type:func -osSetEventMesg = 0x80003BE0; // type:func -osUnmapTLBAll = 0x80003CA0; // type:func -osEPiStartDma = 0x80003CF0; // type:func -osInvalICache = 0x80003D90; // type:func -osCreateMesgQueue = 0x80003E10; // type:func -osInvalDCache = 0x80003E40; // type:func -__osSiDeviceBusy = 0x80003EF0; // type:func -osJamMesg = 0x80003F20; // type:func -osSetThreadPri = 0x80004070; // type:func -osGetThreadPri = 0x80004150; // type:func -__osEPiRawReadIo = 0x80004170; // type:func -osViSwapBuffer = 0x800042D0; // type:func -__osEPiRawStartDma = 0x80004320; // type:func -bcmp = 0x80004500; // type:func -osGetTime = 0x80004620; // type:func -__osTimerServicesInit = 0x800046B0; // type:func -__osTimerInterrupt = 0x8000473C; // type:func -__osSetTimerIntr = 0x800048B4; // type:func -__osInsertTimer = 0x80004954; // type:func -osGetCount = 0x80004AE0; // type:func -__osSetGlobalIntMask = 0x80004AF0; // type:func -__osSetCompare = 0x80004B40; // type:func -bcopy = 0x80004B50; // type:func -__osResetGlobalIntMask = 0x80004E60; // type:func -__osDisableInt = 0x80004EC0; // type:func -__osRestoreInt = 0x80004F30; // type:func -__osViInit = 0x80004F50; // type:func -__osViSwapContext = 0x80005070; // type:func -osPiGetCmdQueue = 0x80005370; // type:func -osEPiReadIo = 0x800053A0; // type:func -osViSetSpecialFeatures = 0x800053F0; // type:func -osCartRomInit = 0x80005550; // type:func -__osSetFpcCsr = 0x800056B0; // type:func -__osGetFpcCsr = 0x800056C0; // type:func -osMapTLBRdb = 0x800056D0; // type:func -osYieldThread = 0x80005730; // type:func -__osGetCause = 0x80005780; // type:func -__osEPiRawWriteIo = 0x80005790; // type:func -__osSiRawWriteIo = 0x800058F0; // type:func -osCreateViManager = 0x80005940; // type:func -viMgrMain = 0x80005AC0; // type:func -__osViGetCurrentContext = 0x80005C50; // type:func -osStartThread = 0x80005C60; // type:func -osViSetYScale = 0x80005DB0; // type:func -osViSetXScale = 0x80005E00; // type:func -__osSetHWIntrRoutine = 0x80005F10; // type:func -__osGetHWIntrRoutine = 0x80005F80; // type:func -__osSetWatchLo = 0x80005FB0; // type:func -rspbootTextStart = 0x80005FC0; // type:func -EnAObj_SetupAction = 0x80010F00; // type:func -EnAObj_Init = 0x80010F0C; // type:func -EnAObj_Destroy = 0x8001124C; // type:func -EnAObj_WaitFinishedTalking = 0x800112A8; // type:func -EnAObj_SetupWaitTalk = 0x800112D8; // type:func -EnAObj_WaitTalk = 0x80011300; // type:func -EnAObj_SetupBlockRot = 0x800113B4; // type:func -EnAObj_BlockRot = 0x80011404; // type:func -EnAObj_SetupBoulderFragment = 0x80011524; // type:func -EnAObj_BoulderFragment = 0x8001154C; // type:func -EnAObj_SetupBlock = 0x8001166C; // type:func -EnAObj_Block = 0x800116AC; // type:func -EnAObj_Update = 0x80011794; // type:func -EnAObj_Draw = 0x800118B0; // type:func -EnItem00_SetupAction = 0x800119A0; // type:func -EnItem00_Init = 0x800119AC; // type:func -EnItem00_Destroy = 0x80012014; // type:func -func_8001DFC8 = 0x80012040; // type:func -func_8001E1C8 = 0x80012240; // type:func -func_8001E304 = 0x8001237C; // type:func -EnItem00_Collected = 0x80012640; // type:func -EnItem00_Update = 0x80012798; // type:func -EnItem00_Draw = 0x80012E18; // type:func -EnItem00_DrawRupee = 0x80012FB0; // type:func -EnItem00_DrawCollectible = 0x800130C8; // type:func -EnItem00_DrawHeartContainer = 0x80013208; // type:func -EnItem00_DrawHeartPiece = 0x80013300; // type:func -func_8001F404 = 0x80013398; // type:func -Item_DropCollectible = 0x800134E0; // type:func -Item_DropCollectible2 = 0x80013718; // type:func -Item_DropCollectibleRandom = 0x800138EC; // type:func -EffectBlure_AddVertex = 0x80013DA0; // type:func -EffectBlure_AddSpace = 0x800140C4; // type:func -EffectBlure_InitElements = 0x80014108; // type:func -EffectBlure_Init1 = 0x800141C0; // type:func -EffectBlure_Init2 = 0x800142D0; // type:func -EffectBlure_Destroy = 0x80014404; // type:func -EffectBlure_Update = 0x80014410; // type:func -EffectBlure_UpdateFlags = 0x80014874; // type:func -EffectBlure_GetComputedValues = 0x800149E4; // type:func -EffectBlure_SetupSmooth = 0x80014EF8; // type:func -EffectBlure_DrawElemNoInterpolation = 0x80014F2C; // type:func -EffectBlure_DrawElemHermiteInterpolation = 0x80015400; // type:func -EffectBlure_DrawSmooth = 0x80015D8C; // type:func -EffectBlure_SetupSimple = 0x8001605C; // type:func -EffectBlure_SetupSimpleAlt = 0x80016094; // type:func -EffectBlure_DrawSimpleVertices = 0x800162FC; // type:func -EffectBlure_DrawSimple = 0x800167DC; // type:func -EffectBlure_Draw = 0x80016CE8; // type:func -EffectShieldParticle_Init = 0x800171D0; // type:func -EffectShieldParticle_Destroy = 0x80017408; // type:func -EffectShieldParticle_Update = 0x80017494; // type:func -EffectShieldParticle_GetColors = 0x800175F8; // type:func -EffectShieldParticle_Draw = 0x80018318; // type:func -EffectSpark_Init = 0x80018830; // type:func -EffectSpark_Destroy = 0x80018C0C; // type:func -EffectSpark_Update = 0x80018C18; // type:func -EffectSpark_Draw = 0x80018CDC; // type:func -func_80026230 = 0x80019EE0; // type:func -func_80026400 = 0x8001A088; // type:func -func_80026608 = 0x8001A26C; // type:func -func_80026690 = 0x8001A2B0; // type:func -func_80026860 = 0x8001A458; // type:func -func_80026A6C = 0x8001A644; // type:func -Effect_GetPlayState = 0x8001A690; // type:func -Effect_GetByIndex = 0x8001A6A0; // type:func -Effect_InitStatus = 0x8001A7B0; // type:func -Effect_InitContext = 0x8001A7C4; // type:func -Effect_Add = 0x8001A86C; // type:func -Effect_DrawAll = 0x8001A9EC; // type:func -Effect_UpdateAll = 0x8001AAE8; // type:func -Effect_Delete = 0x8001AC14; // type:func -Effect_DeleteAll = 0x8001AD20; // type:func -EffectSs_InitInfo = 0x8001AE10; // type:func -EffectSs_ClearAll = 0x8001AEF4; // type:func -EffectSs_Delete = 0x8001AFB4; // type:func -EffectSs_Reset = 0x8001B014; // type:func -EffectSs_FindSlot = 0x8001B0A8; // type:func -EffectSs_Insert = 0x8001B1E0; // type:func -EffectSs_Spawn = 0x8001B278; // type:func -EffectSs_Update = 0x8001B420; // type:func -EffectSs_UpdateAll = 0x8001B4C0; // type:func -EffectSs_Draw = 0x8001B57C; // type:func -EffectSs_DrawAll = 0x8001B5C0; // type:func -EffectSs_LerpInv = 0x8001B70C; // type:func -EffectSs_LerpS16 = 0x8001B770; // type:func -EffectSs_LerpU8 = 0x8001B7C4; // type:func -EffectSs_DrawGEffect = 0x8001B8B0; // type:func -EffectSsDust_Spawn = 0x8001BAEC; // type:func -func_8002829C = 0x8001BBA0; // type:func -func_80028304 = 0x8001BC08; // type:func -func_8002836C = 0x8001BC70; // type:func -func_800283D4 = 0x8001BCD8; // type:func -func_8002843C = 0x8001BD40; // type:func -func_800284A4 = 0x8001BDA8; // type:func -func_80028510 = 0x8001BE14; // type:func -func_8002857C = 0x8001BE80; // type:func -func_800285EC = 0x8001BEF0; // type:func -func_8002865C = 0x8001BF60; // type:func -func_800286CC = 0x8001BFD0; // type:func -func_8002873C = 0x8001C040; // type:func -func_800287AC = 0x8001C0B0; // type:func -func_8002881C = 0x8001C120; // type:func -func_80028858 = 0x8001C15C; // type:func -func_80028894 = 0x8001C198; // type:func -func_80028990 = 0x8001C294; // type:func -func_80028A54 = 0x8001C358; // type:func -EffectSsKiraKira_SpawnSmallYellow = 0x8001C41C; // type:func -EffectSsKiraKira_SpawnSmall = 0x8001C478; // type:func -EffectSsKiraKira_SpawnDispersed = 0x8001C4B4; // type:func -EffectSsKiraKira_SpawnFocused = 0x8001C5F0; // type:func -EffectSsBomb_Spawn = 0x8001C6C8; // type:func -EffectSsBomb2_SpawnFade = 0x8001C720; // type:func -EffectSsBomb2_SpawnLayered = 0x8001C788; // type:func -EffectSsBlast_Spawn = 0x8001C7F8; // type:func -EffectSsBlast_SpawnWhiteShockwaveSetScale = 0x8001C888; // type:func -EffectSsBlast_SpawnShockwaveSetColor = 0x8001C8DC; // type:func -EffectSsBlast_SpawnWhiteShockwave = 0x8001C928; // type:func -EffectSsGSpk_SpawnAccel = 0x8001C964; // type:func -EffectSsGSpk_SpawnNoAccel = 0x8001C9F4; // type:func -EffectSsGSpk_SpawnFuse = 0x8001CA88; // type:func -EffectSsGSpk_SpawnRandColor = 0x8001CADC; // type:func -EffectSsGSpk_SpawnSmall = 0x8001CBE0; // type:func -EffectSsDFire_Spawn = 0x8001CC24; // type:func -EffectSsDFire_SpawnFixedScale = 0x8001CCA4; // type:func -EffectSsBubble_Spawn = 0x8001CCE8; // type:func -EffectSsGRipple_Spawn = 0x8001CD48; // type:func -EffectSsGSplash_Spawn = 0x8001CDA0; // type:func -EffectSsGMagma_Spawn = 0x8001CE34; // type:func -EffectSsGFire_Spawn = 0x8001CE6C; // type:func -EffectSsLightning_Spawn = 0x8001CEA4; // type:func -EffectSsDtBubble_SpawnColorProfile = 0x8001CF1C; // type:func -EffectSsDtBubble_SpawnCustomColor = 0x8001CF98; // type:func -EffectSsHahen_Spawn = 0x8001D028; // type:func -EffectSsHahen_SpawnBurst = 0x8001D0A8; // type:func -EffectSsStick_Spawn = 0x8001D1F0; // type:func -EffectSsSibuki_Spawn = 0x8001D244; // type:func -EffectSsSibuki_SpawnBurst = 0x8001D2B4; // type:func -EffectSsSibuki2_Spawn = 0x8001D438; // type:func -EffectSsGMagma2_Spawn = 0x8001D498; // type:func -EffectSsStone1_Spawn = 0x8001D508; // type:func -EffectSsHitMark_Spawn = 0x8001D55C; // type:func -EffectSsHitMark_SpawnFixedScale = 0x8001D5B4; // type:func -EffectSsHitMark_SpawnCustomScale = 0x8001D5D8; // type:func -EffectSsFhgFlash_SpawnLightBall = 0x8001D604; // type:func -EffectSsFhgFlash_SpawnShock = 0x8001D670; // type:func -EffectSsKFire_Spawn = 0x8001D6D4; // type:func -EffectSsSolderSrchBall_Spawn = 0x8001D73C; // type:func -EffectSsKakera_Spawn = 0x8001D7A4; // type:func -EffectSsIcePiece_Spawn = 0x8001D85C; // type:func -EffectSsIcePiece_SpawnBurst = 0x8001D8C4; // type:func -EffectSsEnIce_SpawnFlyingVec3f = 0x8001DA58; // type:func -EffectSsEnIce_SpawnFlyingVec3s = 0x8001DAF8; // type:func -EffectSsEnIce_Spawn = 0x8001DBC4; // type:func -EffectSsFireTail_Spawn = 0x8001DC4C; // type:func -EffectSsFireTail_SpawnFlame = 0x8001DCE4; // type:func -EffectSsFireTail_SpawnFlameOnPlayer = 0x8001DDA8; // type:func -EffectSsEnFire_SpawnVec3f = 0x8001DDF8; // type:func -EffectSsEnFire_SpawnVec3s = 0x8001DE70; // type:func -EffectSsExtra_Spawn = 0x8001DF1C; // type:func -EffectSsFCircle_Spawn = 0x8001DF84; // type:func -EffectSsDeadDb_Spawn = 0x8001DFE0; // type:func -EffectSsDeadDd_Spawn = 0x8001E098; // type:func -EffectSsDeadDd_SpawnRandYellow = 0x8001E14C; // type:func -EffectSsDeadDs_Spawn = 0x8001E1BC; // type:func -EffectSsDeadDs_SpawnStationary = 0x8001E234; // type:func -EffectSsDeadSound_Spawn = 0x8001E284; // type:func -EffectSsDeadSound_SpawnStationary = 0x8001E31C; // type:func -EffectSsIceSmoke_Spawn = 0x8001E36C; // type:func -FlagSet_Update = 0x8001E3D0; // type:func -Overlay_LoadGameState = 0x8001E7F0; // type:func -Overlay_FreeGameState = 0x8001E918; // type:func -ActorShape_Init = 0x8001EA40; // type:func -ActorShadow_Draw = 0x8001EA64; // type:func -ActorShadow_DrawCircle = 0x8001EE44; // type:func -ActorShadow_DrawWhiteCircle = 0x8001EE6C; // type:func -ActorShadow_DrawHorse = 0x8001EE9C; // type:func -ActorShadow_DrawFoot = 0x8001EEC4; // type:func -ActorShadow_DrawFeet = 0x8001F0D0; // type:func -Actor_SetFeetPos = 0x8001F59C; // type:func -Actor_ProjectPos = 0x8001F5F0; // type:func -func_8002BE64 = 0x8001F654; // type:func -func_8002BE98 = 0x8001F68C; // type:func -Actor_SetNaviToActor = 0x8001F754; // type:func -func_8002C0C0 = 0x8001F8B8; // type:func -func_8002C124 = 0x8001F91C; // type:func -func_8002C7BC = 0x8001FF54; // type:func -Flags_GetSwitch = 0x800202E8; // type:func -Flags_SetSwitch = 0x8002031C; // type:func -Flags_UnsetSwitch = 0x8002035C; // type:func -Flags_GetUnknown = 0x800203A0; // type:func -Flags_SetUnknown = 0x800203D4; // type:func -Flags_UnsetUnknown = 0x80020414; // type:func -Flags_GetTreasure = 0x80020458; // type:func -Flags_SetTreasure = 0x80020470; // type:func -Flags_GetClear = 0x8002048C; // type:func -Flags_SetClear = 0x800204A4; // type:func -Flags_UnsetClear = 0x800204C0; // type:func -Flags_GetTempClear = 0x800204E0; // type:func -Flags_SetTempClear = 0x800204F8; // type:func -Flags_UnsetTempClear = 0x80020514; // type:func -Flags_GetCollectible = 0x80020534; // type:func -Flags_SetCollectible = 0x80020568; // type:func -TitleCard_Init = 0x800205AC; // type:func -TitleCard_InitBossName = 0x800205CC; // type:func -TitleCard_InitPlaceName = 0x80020610; // type:func -TitleCard_Update = 0x800206AC; // type:func -TitleCard_Draw = 0x80020768; // type:func -TitleCard_Clear = 0x80020CA0; // type:func -Actor_Kill = 0x80020CD4; // type:func -Actor_SetWorldToHome = 0x80020CF4; // type:func -Actor_SetFocus = 0x80020D24; // type:func -Actor_SetWorldRotToShape = 0x80020D68; // type:func -Actor_SetShapeRotToWorld = 0x80020D88; // type:func -Actor_SetScale = 0x80020DA8; // type:func -Actor_SetObjectDependency = 0x80020DC4; // type:func -Actor_Init = 0x80020DFC; // type:func -Actor_Destroy = 0x80020F10; // type:func -Actor_UpdatePos = 0x80020F44; // type:func -Actor_UpdateVelocityXZGravity = 0x80020FC4; // type:func -Actor_MoveXZGravity = 0x8002103C; // type:func -Actor_UpdateVelocityXYZ = 0x80021068; // type:func -Actor_MoveXYZ = 0x800210D8; // type:func -Actor_SetProjectileSpeed = 0x80021104; // type:func -Actor_UpdatePosByAnimation = 0x80021158; // type:func -Actor_WorldYawTowardActor = 0x800211D4; // type:func -Actor_FocusYawTowardActor = 0x80021200; // type:func -Actor_WorldYawTowardPoint = 0x8002122C; // type:func -Actor_WorldPitchTowardActor = 0x80021250; // type:func -Actor_FocusPitchTowardActor = 0x8002127C; // type:func -Actor_WorldPitchTowardPoint = 0x800212A8; // type:func -Actor_WorldDistXYZToActor = 0x800212CC; // type:func -Actor_WorldDistXYZToPoint = 0x800212F8; // type:func -Actor_WorldDistXZToActor = 0x8002131C; // type:func -Actor_WorldDistXZToPoint = 0x80021348; // type:func -func_8002DBD0 = 0x8002136C; // type:func -Actor_HeightDiff = 0x8002140C; // type:func -Player_GetHeight = 0x80021420; // type:func -func_8002DCE4 = 0x80021480; // type:func -func_8002DD6C = 0x80021508; // type:func -func_8002DD78 = 0x80021518; // type:func -func_8002DDA8 = 0x8002154C; // type:func -func_8002DDE4 = 0x80021588; // type:func -func_8002DDF4 = 0x8002159C; // type:func -func_8002DE04 = 0x800215B0; // type:func -func_8002DE74 = 0x80021620; // type:func -Actor_MountHorse = 0x80021678; // type:func -func_8002DEEC = 0x8002169C; // type:func -func_8002DF18 = 0x800216C8; // type:func -Player_SetCsAction = 0x800216E8; // type:func -Player_SetCsActionWithHaltedActors = 0x8002170C; // type:func -func_8002DF90 = 0x80021748; // type:func -func_8002DFA4 = 0x80021760; // type:func -Player_IsFacingActor = 0x80021788; // type:func -Actor_ActorBIsFacingActorA = 0x800217E0; // type:func -Actor_IsFacingPlayer = 0x80021848; // type:func -Actor_ActorAIsFacingActorB = 0x80021894; // type:func -Actor_IsFacingAndNearPlayer = 0x800218F4; // type:func -Actor_ActorAIsFacingAndNearActorB = 0x80021974; // type:func -func_8002E234 = 0x80021A08; // type:func -func_8002E2AC = 0x80021A80; // type:func -Actor_UpdateBgCheckInfo = 0x80021C8C; // type:func -func_8002E830 = 0x8002200C; // type:func -func_8002EABC = 0x800221E8; // type:func -func_8002EB44 = 0x80022220; // type:func -func_8002EBCC = 0x80022258; // type:func -func_8002ED80 = 0x80022378; // type:func -Actor_GetFocus = 0x80022498; // type:func -Actor_GetWorld = 0x800224CC; // type:func -Actor_GetWorldPosShapeRot = 0x80022500; // type:func -func_8002EFC0 = 0x8002257C; // type:func -func_8002F090 = 0x8002264C; // type:func -func_8002F0C8 = 0x80022688; // type:func -Actor_TalkOfferAccepted = 0x80022758; // type:func -Actor_OfferTalkExchange = 0x80022788; // type:func -Actor_OfferTalkExchangeEquiCylinder = 0x8002285C; // type:func -Actor_OfferTalk = 0x80022890; // type:func -Actor_OfferTalkNearColChkInfoCylinder = 0x800228B8; // type:func -Actor_TextboxIsClosing = 0x800228F8; // type:func -func_8002F368 = 0x8002292C; // type:func -Actor_GetScreenPos = 0x8002293C; // type:func -Actor_HasParent = 0x800229D8; // type:func -Actor_OfferGetItem = 0x800229FC; // type:func -Actor_OfferGetItemNearby = 0x80022B1C; // type:func -Actor_OfferCarry = 0x80022B48; // type:func -Actor_HasNoParent = 0x80022B68; // type:func -func_8002F5C4 = 0x80022B8C; // type:func -Actor_SetClosestSecretDistance = 0x80022BBC; // type:func -Actor_IsMounted = 0x80022BE4; // type:func -Actor_SetRideActor = 0x80022C08; // type:func -Actor_NotMounted = 0x80022C40; // type:func -func_8002F698 = 0x80022C64; // type:func -func_8002F6D4 = 0x80022CA4; // type:func -func_8002F71C = 0x80022CEC; // type:func -func_8002F758 = 0x80022D28; // type:func -func_8002F7A0 = 0x80022D70; // type:func -Player_PlaySfx = 0x80022DAC; // type:func -Actor_PlaySfx = 0x80022DF8; // type:func -func_8002F850 = 0x80022E24; // type:func -func_8002F8F0 = 0x80022EC8; // type:func -func_8002F91C = 0x80022EFC; // type:func -func_8002F948 = 0x80022F30; // type:func -func_8002F974 = 0x80022F64; // type:func -func_8002F994 = 0x80022F8C; // type:func -func_8002F9EC = 0x80022FE4; // type:func -func_8002FA60 = 0x8002305C; // type:func -Actor_DrawFaroresWindPointer = 0x800231AC; // type:func -func_80030488 = 0x80023A24; // type:func -Actor_DisableLens = 0x80023A4C; // type:func -Actor_InitContext = 0x80023A78; // type:func -Actor_UpdateAll = 0x80023BCC; // type:func -Actor_FaultPrint = 0x80024068; // type:func -Actor_Draw = 0x800240DC; // type:func -func_80030ED8 = 0x8002439C; // type:func -Actor_DrawLensOverlay = 0x8002446C; // type:func -Actor_DrawLensActors = 0x800245DC; // type:func -func_800314B0 = 0x80024810; // type:func -func_800314D4 = 0x80024834; // type:func -func_800315AC = 0x8002490C; // type:func -Actor_KillAllWithMissingObject = 0x80024B24; // type:func -Actor_FreezeAllEnemies = 0x80024BC0; // type:func -func_80031B14 = 0x80024C10; // type:func -func_80031C3C = 0x80024D38; // type:func -Actor_AddToCategory = 0x80024DF0; // type:func -Actor_RemoveFromCategory = 0x80024E38; // type:func -Actor_FreeOverlay = 0x80024F04; // type:func -Actor_Spawn = 0x80024F68; // type:func -Actor_SpawnAsChild = 0x80025248; // type:func -Actor_SpawnTransitionActors = 0x800252E0; // type:func -Actor_SpawnEntry = 0x8002541C; // type:func -Actor_Delete = 0x800254A0; // type:func -func_80032880 = 0x800255A4; // type:func -func_800328D4 = 0x800255F8; // type:func -func_80032AF0 = 0x80025814; // type:func -Actor_Find = 0x80025964; // type:func -Enemy_StartFinishingBlow = 0x800259A4; // type:func -FaceChange_UpdateBlinking = 0x800259DC; // type:func -FaceChange_UpdateRandomSet = 0x80025A90; // type:func -BodyBreak_Alloc = 0x80025B5C; // type:func -BodyBreak_SetInfo = 0x80025C54; // type:func -BodyBreak_SpawnParts = 0x80025D5C; // type:func -Actor_SpawnFloorDustRing = 0x80025F40; // type:func -func_80033480 = 0x80026160; // type:func -Actor_GetCollidedExplosive = 0x80026320; // type:func -func_80033684 = 0x80026364; // type:func -Actor_ChangeCategory = 0x8002642C; // type:func -Actor_GetProjectileActor = 0x8002646C; // type:func -Actor_SetTextWithPrefix = 0x8002662C; // type:func -Actor_TestFloorInDirection = 0x800266A8; // type:func -Actor_IsTargeted = 0x80026774; // type:func -Actor_OtherIsTargeted = 0x800267A8; // type:func -func_80033AEC = 0x800267DC; // type:func -func_80033C30 = 0x80026928; // type:func -Actor_RequestQuake = 0x80026A78; // type:func -Actor_RequestQuakeWithSpeed = 0x80026AE0; // type:func -Actor_RequestQuakeAndRumble = 0x80026B50; // type:func -Rand_ZeroFloat = 0x80026BC0; // type:func -Rand_CenteredFloat = 0x80026BEC; // type:func -Actor_DrawDoorLock = 0x80026C24; // type:func -func_8003424C = 0x80026EC8; // type:func -Actor_SetColorFilter = 0x80026EE8; // type:func -func_800342EC = 0x80026F6C; // type:func -func_8003435C = 0x80026FE0; // type:func -Npc_UpdateTalking = 0x80027054; // type:func -Npc_TrackPointWithLimits = 0x80027144; // type:func -Npc_GetTrackingPresetMaxPlayerYaw = 0x80027478; // type:func -Npc_UpdateAutoTurn = 0x800274A4; // type:func -Npc_TrackPoint = 0x800276AC; // type:func -func_80034B28 = 0x800277C4; // type:func -func_80034B54 = 0x800277E8; // type:func -func_80034BA0 = 0x80027828; // type:func -func_80034CC4 = 0x80027920; // type:func -func_80034DD4 = 0x80027A04; // type:func -Animation_ChangeByInfo = 0x80027AF4; // type:func -func_80034F54 = 0x80027B8C; // type:func -Actor_Noop = 0x80027D50; // type:func -func_80035124 = 0x80027D60; // type:func -Gfx_DrawDListOpa = 0x80027EA4; // type:func -Gfx_DrawDListXlu = 0x80027F28; // type:func -func_800353E8 = 0x80027FAC; // type:func -Actor_FindNearby = 0x80027FBC; // type:func -func_800354B4 = 0x80028080; // type:func -func_8003555C = 0x80028128; // type:func -func_800355B8 = 0x80028184; // type:func -func_800355E4 = 0x800281B0; // type:func -Actor_ApplyDamage = 0x800281F4; // type:func -Actor_SetDropFlag = 0x80028220; // type:func -Actor_SetDropFlagJntSph = 0x8002830C; // type:func -func_80035844 = 0x80028414; // type:func -func_800358DC = 0x800284A8; // type:func -func_800359B8 = 0x80028584; // type:func -func_80035B18 = 0x800286E8; // type:func -Flags_GetEventChkInf = 0x80028718; // type:func -Flags_SetEventChkInf = 0x80028744; // type:func -Flags_GetInfTable = 0x80028778; // type:func -Flags_SetInfTable = 0x800287A4; // type:func -func_80035BFC = 0x800287D8; // type:func -func_80036E50 = 0x80029A2C; // type:func -func_800374E0 = 0x8002A0BC; // type:func -func_80037C30 = 0x8002A810; // type:func -func_80037C5C = 0x8002A840; // type:func -func_80037C94 = 0x8002A87C; // type:func -func_80037CB8 = 0x8002A8A0; // type:func -func_80037D98 = 0x8002A984; // type:func -Actor_TrackNone = 0x8002AB1C; // type:func -Actor_TrackPoint = 0x8002ABB8; // type:func -Actor_TrackPlayerSetFocusHeight = 0x8002AD4C; // type:func -Actor_TrackPlayer = 0x8002AE88; // type:func -ActorOverlayTable_LogPrint = 0x8002AFC0; // type:func -ActorOverlayTable_FaultPrint = 0x8002AFC8; // type:func -ActorOverlayTable_Init = 0x8002B0A0; // type:func -ActorOverlayTable_Cleanup = 0x8002B0E0; // type:func -SSNode_SetValue = 0x8002B110; // type:func -SSList_SetNull = 0x8002B12C; // type:func -SSNodeList_SetSSListHead = 0x8002B13C; // type:func -DynaSSNodeList_SetSSListHead = 0x8002B194; // type:func -DynaSSNodeList_Initialize = 0x8002B1EC; // type:func -DynaSSNodeList_Alloc = 0x8002B200; // type:func -DynaSSNodeList_ResetCount = 0x8002B250; // type:func -DynaSSNodeList_GetNextNodeIdx = 0x8002B25C; // type:func -BgCheck_Vec3sToVec3f = 0x8002B28C; // type:func -BgCheck_Vec3fToVec3s = 0x8002B2D0; // type:func -CollisionPoly_GetMinY = 0x8002B314; // type:func -CollisionPoly_GetNormalF = 0x8002B3C0; // type:func -func_80038A28 = 0x8002B418; // type:func -CollisionPoly_GetPointDistanceFromPlane = 0x8002B56C; // type:func -CollisionPoly_GetVertices = 0x8002B5D4; // type:func -CollisionPoly_GetVerticesByBgId = 0x8002B674; // type:func -CollisionPoly_CheckYIntersectApprox1 = 0x8002B6F4; // type:func -CollisionPoly_CheckYIntersect = 0x8002B828; // type:func -CollisionPoly_CheckYIntersectApprox2 = 0x8002B8D4; // type:func -CollisionPoly_CheckXIntersectApprox = 0x8002B914; // type:func -CollisionPoly_CheckZIntersectApprox = 0x8002B9B8; // type:func -CollisionPoly_LineVsPoly = 0x8002BA5C; // type:func -CollisionPoly_SphVsPoly = 0x8002BD3C; // type:func -StaticLookup_AddPolyToSSList = 0x8002BE0C; // type:func -StaticLookup_AddPoly = 0x8002C02C; // type:func -BgCheck_RaycastDownStaticList = 0x8002C0C0; // type:func -BgCheck_RaycastDownStatic = 0x8002C2FC; // type:func -BgCheck_ComputeWallDisplacement = 0x8002C414; // type:func -BgCheck_SphVsStaticWall = 0x8002C4C4; // type:func -BgCheck_CheckStaticCeiling = 0x8002CD58; // type:func -BgCheck_CheckLineAgainstSSList = 0x8002CF30; // type:func -BgCheck_CheckLineInSubdivision = 0x8002D154; // type:func -BgCheck_SphVsFirstStaticPolyList = 0x8002D2E0; // type:func -BgCheck_SphVsFirstStaticPoly = 0x8002D4B0; // type:func -BgCheck_GetNearestStaticLookup = 0x8002D5E8; // type:func -BgCheck_GetStaticLookup = 0x8002D69C; // type:func -BgCheck_GetStaticLookupIndicesFromPos = 0x8002D768; // type:func -BgCheck_GetSubdivisionMinBounds = 0x8002D848; // type:func -BgCheck_GetSubdivisionMaxBounds = 0x8002D9EC; // type:func -BgCheck_GetPolySubdivisionBounds = 0x8002DBB8; // type:func -BgCheck_PolyIntersectsSubdivision = 0x8002DD68; // type:func -BgCheck_InitializeStaticLookup = 0x8002E4BC; // type:func -BgCheck_IsSpotScene = 0x8002E8BC; // type:func -BgCheck_TryGetCustomMemsize = 0x8002E900; // type:func -BgCheck_SetSubdivisionDimension = 0x8002E998; // type:func -BgCheck_Allocate = 0x8002EA20; // type:func -BgCheck_GetCollisionHeader = 0x8002EE04; // type:func -BgCheck_PosInStaticBoundingBox = 0x8002EE6C; // type:func -BgCheck_RaycastDownImpl = 0x8002EF28; // type:func -BgCheck_CameraRaycastDown1 = 0x8002F0F8; // type:func -BgCheck_EntityRaycastDown1 = 0x8002F154; // type:func -BgCheck_EntityRaycastDown2 = 0x8002F1B0; // type:func -BgCheck_EntityRaycastDown3 = 0x8002F204; // type:func -BgCheck_EntityRaycastDown4 = 0x8002F268; // type:func -BgCheck_EntityRaycastDown5 = 0x8002F2D0; // type:func -BgCheck_EntityRaycastDown6 = 0x8002F328; // type:func -BgCheck_EntityRaycastDown7 = 0x8002F38C; // type:func -BgCheck_AnyRaycastDown1 = 0x8002F3F4; // type:func -BgCheck_AnyRaycastDown2 = 0x8002F4A8; // type:func -BgCheck_CameraRaycastDown2 = 0x8002F560; // type:func -BgCheck_EntityRaycastDownWalls = 0x8002F5C4; // type:func -BgCheck_EntityRaycastDown9 = 0x8002F62C; // type:func -BgCheck_CheckWallImpl = 0x8002F690; // type:func -BgCheck_EntitySphVsWall1 = 0x8002FCCC; // type:func -BgCheck_EntitySphVsWall2 = 0x8002FD30; // type:func -BgCheck_EntitySphVsWall3 = 0x8002FD94; // type:func -BgCheck_EntitySphVsWall4 = 0x8002FDFC; // type:func -BgCheck_CheckCeilingImpl = 0x8002FE68; // type:func -BgCheck_AnyCheckCeiling = 0x8002FF88; // type:func -BgCheck_EntityCheckCeiling = 0x8002FFD4; // type:func -BgCheck_CheckLineImpl = 0x80030024; // type:func -BgCheck_GetBccFlags = 0x80030504; // type:func -BgCheck_CameraLineTest1 = 0x8003054C; // type:func -BgCheck_CameraLineTest2 = 0x800305D8; // type:func -BgCheck_EntityLineTest1 = 0x80030664; // type:func -BgCheck_EntityLineTest2 = 0x800306F0; // type:func -BgCheck_EntityLineTest3 = 0x80030780; // type:func -BgCheck_ProjectileLineTest = 0x8003080C; // type:func -BgCheck_AnyLineTest1 = 0x80030898; // type:func -BgCheck_AnyLineTest2 = 0x800308DC; // type:func -BgCheck_AnyLineTest3 = 0x80030968; // type:func -BgCheck_SphVsFirstPolyImpl = 0x800309F4; // type:func -BgCheck_SphVsFirstPoly = 0x80030AB8; // type:func -BgCheck_SphVsFirstWall = 0x80030AFC; // type:func -SSNodeList_Initialize = 0x80030B44; // type:func -SSNodeList_Alloc = 0x80030B5C; // type:func -SSNodeList_GetNextNode = 0x80030BCC; // type:func -SSNodeList_GetNextNodeIdx = 0x80030C08; // type:func -ScaleRotPos_Initialize = 0x80030C1C; // type:func -ScaleRotPos_SetValue = 0x80030C5C; // type:func -ScaleRotPos_Equals = 0x80030CAC; // type:func -DynaLookup_ResetLists = 0x80030D80; // type:func -DynaLookup_Reset = 0x80030DC0; // type:func -DynaLookup_ResetVtxStartIndex = 0x80030DE0; // type:func -BgActor_Initialize = 0x80030DEC; // type:func -BgActor_SetActor = 0x80030E4C; // type:func -BgActor_IsTransformUnchanged = 0x80030F04; // type:func -DynaPoly_NullPolyList = 0x80030F2C; // type:func -DynaPoly_AllocPolyList = 0x80030F38; // type:func -DynaPoly_NullVtxList = 0x80030F74; // type:func -DynaPoly_AllocVtxList = 0x80030F80; // type:func -DynaPoly_SetBgActorPrevTransform = 0x80030FC8; // type:func -DynaPoly_IsBgIdBgActor = 0x80031014; // type:func -DynaPoly_Init = 0x80031034; // type:func -DynaPoly_Alloc = 0x80031080; // type:func -DynaPoly_SetBgActor = 0x80031154; // type:func -DynaPoly_GetActor = 0x80031214; // type:func -DynaPoly_DisableCollision = 0x80031288; // type:func -DynaPoly_EnableCollision = 0x800312E0; // type:func -DynaPoly_DisableCeilingCollision = 0x80031338; // type:func -DynaPoly_EnableCeilingCollision = 0x80031390; // type:func -DynaPoly_DeleteBgActor = 0x800313E8; // type:func -DynaPoly_InvalidateLookup = 0x80031470; // type:func -DynaPoly_AddBgActorToLookup = 0x80031488; // type:func -DynaPoly_UnsetAllInteractFlags = 0x80031DD4; // type:func -DynaPoly_UpdateContext = 0x80031E6C; // type:func -DynaPoly_UpdateBgActorTransforms = 0x80031FD8; // type:func -BgCheck_RaycastDownDynaList = 0x80032068; // type:func -BgCheck_RaycastDownDyna = 0x80032250; // type:func -BgCheck_SphVsDynaWallInBgActor = 0x800326F8; // type:func -BgCheck_SphVsDynaWall = 0x80032DBC; // type:func -BgCheck_CheckDynaCeilingList = 0x80032FF8; // type:func -BgCheck_CheckDynaCeiling = 0x80033254; // type:func -BgCheck_CheckLineAgainstBgActorSSList = 0x800333B8; // type:func -BgCheck_CheckLineAgainstBgActor = 0x8003353C; // type:func -BgCheck_CheckLineAgainstDyna = 0x80033658; // type:func -BgCheck_SphVsFirstDynaPolyList = 0x80033810; // type:func -BgCheck_SphVsFirstDynaPolyInBgActor = 0x80033928; // type:func -BgCheck_SphVsFirstDynaPoly = 0x80033A68; // type:func -CollisionHeader_SegmentedToVirtual = 0x80033BC0; // type:func -CollisionHeader_GetVirtual = 0x80033CA4; // type:func -func_800418D0 = 0x80033CF8; // type:func -BgCheck_ResetPolyCheckTbl = 0x80033DA0; // type:func -SurfaceType_GetData = 0x80033DD8; // type:func -SurfaceType_GetBgCamIndex = 0x80033E50; // type:func -BgCheck_GetBgCamSettingImpl = 0x80033E74; // type:func -BgCheck_GetBgCamSetting = 0x80033EBC; // type:func -BgCheck_GetBgCamCountImpl = 0x80033F50; // type:func -BgCheck_GetBgCamCount = 0x80033FAC; // type:func -BgCheck_GetBgCamFuncDataImpl = 0x80034040; // type:func -BgCheck_GetBgCamFuncData = 0x800340C8; // type:func -SurfaceType_GetExitIndex = 0x8003415C; // type:func -SurfaceType_GetFloorType = 0x80034184; // type:func -func_80041D70 = 0x800341AC; // type:func -SurfaceType_GetWallType = 0x800341D4; // type:func -SurfaceType_GetWallFlags = 0x800341FC; // type:func -SurfaceType_CheckWallFlag0 = 0x8003422C; // type:func -SurfaceType_CheckWallFlag1 = 0x80034260; // type:func -SurfaceType_CheckWallFlag2 = 0x80034294; // type:func -SurfaceType_GetFloorProperty2 = 0x800342C8; // type:func -SurfaceType_GetFloorProperty = 0x800342F0; // type:func -SurfaceType_IsSoft = 0x80034318; // type:func -SurfaceType_IsHorseBlocked = 0x80034340; // type:func -SurfaceType_GetMaterial = 0x80034368; // type:func -SurfaceType_GetSfxOffset = 0x8003438C; // type:func -SurfaceType_GetFloorEffect = 0x800343D4; // type:func -SurfaceType_GetLightSetting = 0x800343FC; // type:func -SurfaceType_GetEcho = 0x80034424; // type:func -SurfaceType_CanHookshot = 0x8003444C; // type:func -SurfaceType_IsIgnoredByEntities = 0x80034474; // type:func -SurfaceType_IsIgnoredByProjectiles = 0x800344B0; // type:func -SurfaceType_IsFloorConveyor = 0x800344EC; // type:func -SurfaceType_GetConveyorSpeed = 0x80034528; // type:func -SurfaceType_GetConveyorDirection = 0x80034550; // type:func -func_80042108 = 0x80034578; // type:func -WaterBox_GetSurface1 = 0x800345AC; // type:func -WaterBox_GetSurfaceImpl = 0x800346B8; // type:func -WaterBox_GetSurface2 = 0x80034810; // type:func -WaterBox_GetBgCamIndex = 0x800349AC; // type:func -WaterBox_GetBgCamSetting = 0x800349C0; // type:func -WaterBox_GetLightIndex = 0x80034A18; // type:func -func_800425B0 = 0x80034A30; // type:func -func_80042708 = 0x80034B88; // type:func -func_800427B4 = 0x80034C38; // type:func -DynaPolyActor_UpdateCarriedActorPos = 0x80034CF0; // type:func -DynaPolyActor_UpdateCarriedActorRotY = 0x80034E2C; // type:func -func_80043334 = 0x80034EC0; // type:func -DynaPolyActor_TransformCarriedActor = 0x80034F30; // type:func -DynaPolyActor_Init = 0x80035010; // type:func -DynaPolyActor_UnsetAllInteractFlags = 0x80035034; // type:func -DynaPolyActor_SetActorOnTop = 0x80035040; // type:func -DynaPolyActor_SetPlayerOnTop = 0x80035054; // type:func -DynaPoly_SetPlayerOnTop = 0x80035068; // type:func -DynaPolyActor_SetPlayerAbove = 0x80035098; // type:func -DynaPoly_SetPlayerAbove = 0x800350AC; // type:func -func_80043538 = 0x800350DC; // type:func -DynaPolyActor_IsActorOnTop = 0x800350F0; // type:func -DynaPolyActor_IsPlayerOnTop = 0x80035114; // type:func -DynaPolyActor_IsPlayerAbove = 0x80035138; // type:func -func_800435B4 = 0x8003515C; // type:func -func_800435D8 = 0x80035180; // type:func -Camera_InterpolateCurve = 0x800353A0; // type:func -Camera_LERPCeilF = 0x8003544C; // type:func -Camera_LERPFloorF = 0x80035490; // type:func -Camera_LERPCeilS = 0x800354D4; // type:func -Camera_LERPFloorS = 0x80035568; // type:func -Camera_LERPCeilVec3f = 0x800355FC; // type:func -func_80043ABC = 0x80035680; // type:func -func_80043B60 = 0x800356C0; // type:func -Camera_Vec3sToVec3f = 0x800356F0; // type:func -Camera_AddVecGeoToVec3f = 0x80035758; // type:func -Camera_Vec3fTranslateByUnitVector = 0x800357D8; // type:func -Camera_BGCheckInfo = 0x80035844; // type:func -Camera_BGCheck = 0x80035A6C; // type:func -func_80043F94 = 0x80035AC8; // type:func -func_80044340 = 0x80035E80; // type:func -Camera_CheckOOB = 0x80035EDC; // type:func -Camera_GetFloorYNorm = 0x80035F78; // type:func -Camera_GetFloorY = 0x8003605C; // type:func -Camera_GetFloorYLayer = 0x800360B8; // type:func -Camera_GetBgCamSetting = 0x8003627C; // type:func -Camera_GetBgCamFuncData = 0x800362B0; // type:func -Camera_GetBgCamIndex = 0x800362E0; // type:func -Camera_GetBgCamFuncDataUnderPlayer = 0x80036360; // type:func -Camera_GetWaterBoxBgCamIndex = 0x80036410; // type:func -Camera_GetWaterSurface = 0x800364F0; // type:func -Camera_XZAngle = 0x800365B8; // type:func -Camera_GetPitchAdjFromFloorHeightDiffs = 0x80036620; // type:func -Camera_CalcUpFromPitchYawRoll = 0x8003694C; // type:func -Camera_ClampLERPScale = 0x80036B88; // type:func -Camera_CopyDataToRegs = 0x80036BE0; // type:func -Camera_UpdateInterface = 0x80036BF0; // type:func -Camera_BGCheckCorner = 0x80036CFC; // type:func -func_80045508 = 0x80036D64; // type:func -Camera_CalcSlopeYAdj = 0x80036F74; // type:func -Camera_CalcAtDefault = 0x80037008; // type:func -func_800458D4 = 0x80037120; // type:func -func_80045B08 = 0x800372D8; // type:func -Camera_CalcAtForParallel = 0x80037438; // type:func -Camera_CalcAtForLockOn = 0x8003779C; // type:func -Camera_CalcAtForHorse = 0x80037C54; // type:func -Camera_LERPClampDist = 0x80037E10; // type:func -Camera_ClampDist = 0x80037EC8; // type:func -Camera_CalcDefaultPitch = 0x80037FDC; // type:func -Camera_CalcDefaultYaw = 0x8003813C; // type:func -func_80046E20 = 0x80038290; // type:func -Camera_Noop = 0x800387B4; // type:func -Camera_Normal1 = 0x800387C4; // type:func -Camera_Normal2 = 0x8003921C; // type:func -Camera_Normal3 = 0x800399AC; // type:func -Camera_Normal4 = 0x8003A054; // type:func -Camera_Normal0 = 0x8003A074; // type:func -Camera_Parallel1 = 0x8003A094; // type:func -Camera_Parallel2 = 0x8003A920; // type:func -Camera_Parallel3 = 0x8003A940; // type:func -Camera_Parallel4 = 0x8003A9A4; // type:func -Camera_Parallel0 = 0x8003A9C4; // type:func -Camera_Jump1 = 0x8003A9E4; // type:func -Camera_Jump2 = 0x8003B024; // type:func -Camera_Jump3 = 0x8003B910; // type:func -Camera_Jump4 = 0x8003C07C; // type:func -Camera_Jump0 = 0x8003C09C; // type:func -Camera_Battle1 = 0x8003C0BC; // type:func -Camera_Battle2 = 0x8003CDF8; // type:func -Camera_Battle3 = 0x8003CE18; // type:func -Camera_Battle4 = 0x8003CE38; // type:func -Camera_Battle0 = 0x8003D190; // type:func -Camera_KeepOn1 = 0x8003D1B0; // type:func -Camera_KeepOn2 = 0x8003DF00; // type:func -Camera_KeepOn3 = 0x8003DF20; // type:func -Camera_KeepOn4 = 0x8003E918; // type:func -Camera_KeepOn0 = 0x8003F730; // type:func -Camera_Fixed1 = 0x8003F9D0; // type:func -Camera_Fixed2 = 0x8003FCBC; // type:func -Camera_Fixed3 = 0x80040070; // type:func -Camera_Fixed4 = 0x80040270; // type:func -Camera_Fixed0 = 0x800405FC; // type:func -Camera_Subj1 = 0x8004061C; // type:func -Camera_Subj2 = 0x8004063C; // type:func -Camera_Subj3 = 0x8004065C; // type:func -Camera_Subj4 = 0x80040C60; // type:func -Camera_Subj0 = 0x80041294; // type:func -Camera_Data0 = 0x800412B4; // type:func -Camera_Data1 = 0x800412D4; // type:func -Camera_Data2 = 0x800412F4; // type:func -Camera_Data3 = 0x80041314; // type:func -Camera_Data4 = 0x80041334; // type:func -Camera_Unique1 = 0x80041620; // type:func -Camera_Unique2 = 0x80041AA4; // type:func -Camera_Unique3 = 0x80041E5C; // type:func -Camera_Unique0 = 0x8004230C; // type:func -Camera_Unique4 = 0x80042828; // type:func -Camera_Unique5 = 0x80042848; // type:func -Camera_Unique6 = 0x80042868; // type:func -Camera_Unique7 = 0x80042998; // type:func -Camera_Unique8 = 0x80042B9C; // type:func -Camera_Unique9 = 0x80042BBC; // type:func -Camera_Vec3fCopy = 0x80044018; // type:func -Camera_RotateAroundPoint = 0x80044038; // type:func -Camera_Demo1 = 0x80044094; // type:func -Camera_Demo2 = 0x8004426C; // type:func -Camera_Demo3 = 0x8004428C; // type:func -Camera_Demo4 = 0x80044D28; // type:func -Camera_Demo5 = 0x80044D48; // type:func -Camera_Demo6 = 0x80045720; // type:func -Camera_Demo7 = 0x800459C4; // type:func -Camera_Demo8 = 0x800459F8; // type:func -Camera_Demo9 = 0x80045A18; // type:func -Camera_Demo0 = 0x80045E38; // type:func -Camera_Special0 = 0x80045E58; // type:func -Camera_Special1 = 0x80045FA0; // type:func -Camera_Special2 = 0x80045FC0; // type:func -Camera_Special3 = 0x80045FE0; // type:func -Camera_Special4 = 0x80046000; // type:func -Camera_Special5 = 0x800461A4; // type:func -Camera_Special7 = 0x80046548; // type:func -Camera_Special6 = 0x80046894; // type:func -Camera_Special8 = 0x80046D04; // type:func -Camera_Special9 = 0x80046D24; // type:func -Camera_Create = 0x8004740C; // type:func -Camera_Destroy = 0x8004745C; // type:func -Camera_Init = 0x80047484; // type:func -func_80057FC4 = 0x800476A4; // type:func -Camera_Stub80058140 = 0x800477F8; // type:func -Camera_InitDataUsingPlayer = 0x80047804; // type:func -Camera_ChangeStatus = 0x80047A00; // type:func -Camera_UpdateWater = 0x80047A1C; // type:func -Camera_UpdateHotRoom = 0x80047E38; // type:func -Camera_UpdateDistortion = 0x80047E78; // type:func -Camera_Update = 0x800481D8; // type:func -Camera_Finish = 0x80048A08; // type:func -Camera_SetNewModeStateFlags = 0x80048B74; // type:func -Camera_RequestModeImpl = 0x80048B98; // type:func -Camera_RequestMode = 0x80048EFC; // type:func -Camera_CheckValidMode = 0x80048F28; // type:func -Camera_RequestSettingImpl = 0x80048F94; // type:func -Camera_RequestSetting = 0x80049188; // type:func -Camera_RequestBgCam = 0x800491B4; // type:func -Camera_GetInputDir = 0x80049288; // type:func -Camera_GetInputDirPitch = 0x800492AC; // type:func -Camera_GetInputDirYaw = 0x800492D4; // type:func -Camera_GetCamDir = 0x800492FC; // type:func -Camera_GetCamDirPitch = 0x80049320; // type:func -Camera_GetCamDirYaw = 0x80049348; // type:func -Camera_RequestQuake = 0x80049370; // type:func -Camera_SetViewParam = 0x800493E4; // type:func -Camera_UnsetViewFlag = 0x80049578; // type:func -Camera_OverwriteStateFlags = 0x800495A0; // type:func -Camera_ResetAnim = 0x800495BC; // type:func -Camera_SetCSParams = 0x800495CC; // type:func -Camera_SetStateFlag = 0x80049660; // type:func -Camera_UnsetStateFlag = 0x80049684; // type:func -Camera_ChangeDoorCam = 0x800496AC; // type:func -Camera_Copy = 0x800497AC; // type:func -Camera_IsDebugCamEnabled = 0x800498F4; // type:func -Camera_GetQuakeOffset = 0x80049900; // type:func -Camera_SetCameraData = 0x80049924; // type:func -func_8005B198 = 0x80049970; // type:func -Camera_SetFinishedFlag = 0x80049980; // type:func -DamageTable_Get = 0x800499D0; // type:func -DamageTable_Clear = 0x800499FC; // type:func -Collider_InitBase = 0x80049A30; // type:func -Collider_DestroyBase = 0x80049A78; // type:func -Collider_SetBaseToActor = 0x80049A8C; // type:func -Collider_SetBaseType1 = 0x80049ACC; // type:func -Collider_SetBase = 0x80049B10; // type:func -Collider_ResetATBase = 0x80049B54; // type:func -Collider_ResetACBase = 0x80049B70; // type:func -Collider_ResetOCBase = 0x80049B8C; // type:func -Collider_InitElementDamageInfoAT = 0x80049BB4; // type:func -Collider_DestroyElementDamageInfoAT = 0x80049BDC; // type:func -Collider_SetElementDamageInfoAT = 0x80049BF0; // type:func -Collider_ResetATElement_Unk = 0x80049C18; // type:func -Collider_InitElementDamageInfoAC = 0x80049C28; // type:func -Collider_DestroyElementDamageInfoAC = 0x80049C58; // type:func -Collider_SetElementDamageInfoAC = 0x80049C6C; // type:func -Collider_InitElement = 0x80049C94; // type:func -Collider_DestroyElement = 0x80049D14; // type:func -Collider_SetElement = 0x80049D54; // type:func -Collider_ResetATElement = 0x80049DCC; // type:func -Collider_ResetACElement = 0x80049E04; // type:func -Collider_ResetOCElement = 0x80049E3C; // type:func -Collider_InitJntSphElementDim = 0x80049E54; // type:func -Collider_DestroyJntSphElementDim = 0x80049E9C; // type:func -Collider_SetJntSphElementDim = 0x80049EB0; // type:func -Collider_InitJntSphElement = 0x80049F08; // type:func -Collider_DestroyJntSphElement = 0x80049F48; // type:func -Collider_SetJntSphElement = 0x80049F88; // type:func -Collider_ResetJntSphElementAT = 0x80049FD8; // type:func -Collider_ResetJntSphElementAC = 0x80049FFC; // type:func -Collider_ResetJntSphElementOC = 0x8004A020; // type:func -Collider_InitJntSph = 0x8004A044; // type:func -Collider_FreeJntSph = 0x8004A070; // type:func -Collider_DestroyJntSph = 0x8004A110; // type:func -Collider_SetJntSphToActor = 0x8004A1A0; // type:func -Collider_SetJntSphAllocType1 = 0x8004A27C; // type:func -Collider_SetJntSphAlloc = 0x8004A358; // type:func -Collider_SetJntSph = 0x8004A434; // type:func -Collider_ResetJntSphAT = 0x8004A4E8; // type:func -Collider_ResetJntSphAC = 0x8004A574; // type:func -Collider_ResetJntSphOC = 0x8004A600; // type:func -Collider_InitCylinderDim = 0x8004A68C; // type:func -Collider_DestroyCylinderDim = 0x8004A6E8; // type:func -Collider_SetCylinderDim = 0x8004A6FC; // type:func -Collider_InitCylinder = 0x8004A73C; // type:func -Collider_DestroyCylinder = 0x8004A78C; // type:func -Collider_SetCylinderToActor = 0x8004A7DC; // type:func -Collider_SetCylinderType1 = 0x8004A844; // type:func -Collider_SetCylinder = 0x8004A8AC; // type:func -Collider_ResetCylinderAT = 0x8004A914; // type:func -Collider_ResetCylinderAC = 0x8004A954; // type:func -Collider_ResetCylinderOC = 0x8004A994; // type:func -Collider_InitTrisElementDim = 0x8004A9D4; // type:func -Collider_DestroyTrisElementDim = 0x8004AA20; // type:func -Collider_SetTrisElementDim = 0x8004AA34; // type:func -Collider_InitTrisElement = 0x8004AAE8; // type:func -Collider_DestroyTrisElement = 0x8004AB28; // type:func -Collider_SetTrisElement = 0x8004AB68; // type:func -Collider_ResetTrisElementAT = 0x8004ABB8; // type:func -Collider_ResetTrisElementAC = 0x8004ABDC; // type:func -Collider_ResetTrisElementOC = 0x8004AC00; // type:func -Collider_InitTris = 0x8004AC24; // type:func -Collider_FreeTris = 0x8004AC50; // type:func -Collider_DestroyTris = 0x8004AD08; // type:func -Collider_SetTrisAllocType1 = 0x8004ADAC; // type:func -Collider_SetTrisAlloc = 0x8004AEAC; // type:func -Collider_SetTris = 0x8004AFAC; // type:func -Collider_ResetTrisAT = 0x8004B078; // type:func -Collider_ResetTrisAC = 0x8004B118; // type:func -Collider_ResetTrisOC = 0x8004B1B8; // type:func -Collider_InitQuadDim = 0x8004B258; // type:func -Collider_DestroyQuadDim = 0x8004B2A4; // type:func -Collider_ResetQuadACDist = 0x8004B2B8; // type:func -Collider_SetQuadMidpoints = 0x8004B2D4; // type:func -Collider_SetQuadDim = 0x8004B390; // type:func -Collider_InitQuad = 0x8004B418; // type:func -Collider_DestroyQuad = 0x8004B468; // type:func -Collider_SetQuadType1 = 0x8004B4B8; // type:func -Collider_SetQuad = 0x8004B520; // type:func -Collider_ResetQuadAT = 0x8004B588; // type:func -Collider_ResetQuadAC = 0x8004B5D8; // type:func -Collider_ResetQuadOC = 0x8004B618; // type:func -Collider_QuadSetNearestAC = 0x8004B658; // type:func -Collider_InitLine = 0x8004B708; // type:func -Collider_DestroyLine = 0x8004B768; // type:func -Collider_SetLinePoints = 0x8004B77C; // type:func -Collider_SetLine = 0x8004B7C0; // type:func -Collider_ResetLineOC = 0x8004B7EC; // type:func -CollisionCheck_InitContext = 0x8004B808; // type:func -CollisionCheck_DestroyContext = 0x8004B828; // type:func -CollisionCheck_ClearContext = 0x8004B838; // type:func -CollisionCheck_EnableSAC = 0x8004B8E0; // type:func -CollisionCheck_DisableSAC = 0x8004B8F8; // type:func -CollisionCheck_SetAT = 0x8004B910; // type:func -CollisionCheck_SetAT_SAC = 0x8004B9F0; // type:func -CollisionCheck_SetAC = 0x8004BB00; // type:func -CollisionCheck_SetAC_SAC = 0x8004BBE0; // type:func -CollisionCheck_SetOC = 0x8004BCF0; // type:func -CollisionCheck_SetOC_SAC = 0x8004BDD0; // type:func -CollisionCheck_SetOCLine = 0x8004BEE0; // type:func -CollisionCheck_IsElementNotAT = 0x8004BF6C; // type:func -CollisionCheck_IsElementNotAC = 0x8004BF90; // type:func -CollisionCheck_NoSharedFlags = 0x8004BFB4; // type:func -CollisionCheck_NoBlood = 0x8004BFDC; // type:func -CollisionCheck_BlueBlood = 0x8004BFF0; // type:func -CollisionCheck_GreenBlood = 0x8004C15C; // type:func -CollisionCheck_WaterBurst = 0x8004C2C8; // type:func -CollisionCheck_RedBlood = 0x8004C304; // type:func -CollisionCheck_RedBloodUnused = 0x8004C328; // type:func -CollisionCheck_HitSolid = 0x8004C34C; // type:func -CollisionCheck_SwordHitAudio = 0x8004C55C; // type:func -CollisionCheck_HitEffects = 0x8004C668; // type:func -CollisionCheck_SetBounce = 0x8004C868; // type:func -CollisionCheck_SetATvsAC = 0x8004C888; // type:func -CollisionCheck_ATJntSphVsACJntSph = 0x8004CA30; // type:func -CollisionCheck_ATJntSphVsACCyl = 0x8004CCDC; // type:func -CollisionCheck_ATCylVsACJntSph = 0x8004CF50; // type:func -CollisionCheck_ATJntSphVsACTris = 0x8004D1F0; // type:func -CollisionCheck_ATTrisVsACJntSph = 0x8004D410; // type:func -CollisionCheck_ATJntSphVsACQuad = 0x8004D624; // type:func -CollisionCheck_ATQuadVsACJntSph = 0x8004D844; // type:func -CollisionCheck_ATCylVsACCyl = 0x8004DAA8; // type:func -CollisionCheck_ATCylVsACTris = 0x8004DC7C; // type:func -CollisionCheck_ATTrisVsACCyl = 0x8004DE40; // type:func -CollisionCheck_ATCylVsACQuad = 0x8004E000; // type:func -CollisionCheck_ATQuadVsACCyl = 0x8004E274; // type:func -CollisionCheck_ATTrisVsACTris = 0x8004E520; // type:func -CollisionCheck_ATTrisVsACQuad = 0x8004E774; // type:func -CollisionCheck_ATQuadVsACTris = 0x8004EA04; // type:func -CollisionCheck_ATQuadVsACQuad = 0x8004EC9C; // type:func -CollisionCheck_SetJntSphHitFX = 0x8004EF2C; // type:func -CollisionCheck_SetCylHitFX = 0x8004F00C; // type:func -CollisionCheck_SetTrisHitFX = 0x8004F0A4; // type:func -CollisionCheck_SetQuadHitFX = 0x8004F18C; // type:func -CollisionCheck_SetHitEffects = 0x8004F224; // type:func -CollisionCheck_AC = 0x8004F2F8; // type:func -CollisionCheck_AT = 0x8004F420; // type:func -CollisionCheck_GetMassType = 0x8004F4F0; // type:func -CollisionCheck_SetOCvsOC = 0x8004F52C; // type:func -CollisionCheck_OC_JntSphVsJntSph = 0x8004F85C; // type:func -CollisionCheck_OC_JntSphVsCyl = 0x8004FA2C; // type:func -CollisionCheck_OC_CylVsJntSph = 0x8004FB8C; // type:func -CollisionCheck_OC_CylVsCyl = 0x8004FBB8; // type:func -CollisionCheck_SkipOC = 0x8004FC88; // type:func -CollisionCheck_Incompatible = 0x8004FCAC; // type:func -CollisionCheck_OC = 0x8004FD2C; // type:func -CollisionCheck_InitInfo = 0x8004FEBC; // type:func -CollisionCheck_ResetDamage = 0x8004FF04; // type:func -CollisionCheck_SetInfoNoDamageTable = 0x8004FF30; // type:func -CollisionCheck_SetInfo = 0x8004FF58; // type:func -CollisionCheck_SetInfo2 = 0x8004FF84; // type:func -CollisionCheck_SetInfoGetDamageTable = 0x8004FFB8; // type:func -CollisionCheck_ApplyDamage = 0x8004FFF0; // type:func -CollisionCheck_ApplyDamageJntSph = 0x800501B0; // type:func -CollisionCheck_ApplyDamageCyl = 0x80050258; // type:func -CollisionCheck_ApplyDamageTris = 0x80050278; // type:func -CollisionCheck_ApplyDamageQuad = 0x8005030C; // type:func -CollisionCheck_Damage = 0x8005032C; // type:func -CollisionCheck_LineOC_JntSph = 0x800503EC; // type:func -CollisionCheck_LineOC_Cyl = 0x80050504; // type:func -CollisionCheck_LineOC = 0x8005057C; // type:func -CollisionCheck_LineOCCheckAll = 0x800506C4; // type:func -CollisionCheck_LineOCCheck = 0x800506E8; // type:func -Collider_UpdateCylinder = 0x80050714; // type:func -Collider_SetCylinderPosition = 0x80050758; // type:func -Collider_SetQuadVertices = 0x80050778; // type:func -Collider_SetTrisVertices = 0x800507E8; // type:func -Collider_SetTrisDim = 0x800508A8; // type:func -Collider_UpdateSpheres = 0x800508F8; // type:func -CollisionCheck_SpawnRedBlood = 0x80050A7C; // type:func -CollisionCheck_SpawnWaterDroplets = 0x80050BDC; // type:func -CollisionCheck_SpawnShieldParticles = 0x80050D38; // type:func -CollisionCheck_SpawnShieldParticlesMetal = 0x80050DCC; // type:func -CollisionCheck_SpawnShieldParticlesMetalSfx = 0x80050E18; // type:func -CollisionCheck_SpawnShieldParticlesMetal2 = 0x80050E64; // type:func -CollisionCheck_SpawnShieldParticlesWood = 0x80050E84; // type:func -CollisionCheck_CylSideVsLineSeg = 0x80050F44; // type:func -CollisionCheck_GetSwordDamage = 0x80051648; // type:func -SaveContext_Init = 0x800516B0; // type:func -Regs_Init = 0x80051730; // type:func -DebugCamera_ScreenText = 0x800517C0; // type:func -DebugCamera_ScreenTextColored = 0x800517D4; // type:func -DebugCamera_DrawScreenText = 0x80051890; // type:func -Debug_DrawText = 0x80051974; // type:func -DebugDisplay_Init = 0x80051A40; // type:func -DebugDisplay_AddObject = 0x80051A50; // type:func -DebugDisplay_DrawObjects = 0x80051B2C; // type:func -DebugDisplay_DrawSpriteI8 = 0x80051BBC; // type:func -DebugDisplay_DrawPolygon = 0x80051DA0; // type:func -Cutscene_InitContext = 0x80051F00; // type:func -Cutscene_StartManual = 0x80051F18; // type:func -Cutscene_StopManual = 0x80051F30; // type:func -Cutscene_UpdateManual = 0x80051F54; // type:func -Cutscene_UpdateScripted = 0x80051FA0; // type:func -CutsceneHandler_DoNothing = 0x80052054; // type:func -Cutscene_StepTimer = 0x80052064; // type:func -CutsceneHandler_StartManual = 0x8005209C; // type:func -CutsceneHandler_StartScript = 0x800520FC; // type:func -CutsceneCmd_Misc = 0x80052168; // type:func -CutsceneCmd_SetLightSetting = 0x80052904; // type:func -CutsceneCmd_StartSequence = 0x80052944; // type:func -CutsceneCmd_StopSequence = 0x80052980; // type:func -CutsceneCmd_FadeOutSequence = 0x800529BC; // type:func -CutsceneCmd_RumbleController = 0x80052A3C; // type:func -CutsceneCmd_SetTime = 0x80052A80; // type:func -CutsceneCmd_Destination = 0x80052B24; // type:func -CutsceneCmd_Transition = 0x80054844; // type:func -CutsceneCmd_UpdateCamEyeSpline = 0x80055224; // type:func -CutsceneCmd_UpdateCamAtSpline = 0x80055378; // type:func -CutsceneCmd_SetCamEye = 0x800554D4; // type:func -CutsceneCmd_SetCamAt = 0x800556B0; // type:func -CutsceneCmd_Text = 0x80055858; // type:func -Cutscene_ProcessScript = 0x80055B2C; // type:func -CutsceneHandler_RunScript = 0x800564FC; // type:func -CutsceneHandler_StopManual = 0x80056540; // type:func -CutsceneHandler_StopScript = 0x80056580; // type:func -Cutscene_SetupScripted = 0x80056688; // type:func -func_80069048 = 0x80056808; // type:func -func_8006907C = 0x80056840; // type:func -Cutscene_HandleEntranceTriggers = 0x80056864; // type:func -Cutscene_HandleConditionalTriggers = 0x80056984; // type:func -Cutscene_SetScript = 0x80056B8C; // type:func -MemCpy = 0x80056BE0; // type:func -MemSet = 0x80056C10; // type:func -GetItem_Draw = 0x80056C70; // type:func -GetItem_DrawMaskOrBombchu = 0x80056CB4; // type:func -GetItem_DrawSoldOut = 0x80056D50; // type:func -GetItem_DrawBlueFire = 0x80056DF8; // type:func -GetItem_DrawPoes = 0x80056F9C; // type:func -GetItem_DrawFairy = 0x80057198; // type:func -GetItem_DrawMirrorShield = 0x80057374; // type:func -GetItem_DrawSkullToken = 0x800574EC; // type:func -GetItem_DrawEggOrMedallion = 0x80057654; // type:func -GetItem_DrawCompass = 0x8005770C; // type:func -GetItem_DrawPotion = 0x80057814; // type:func -GetItem_DrawGoronSword = 0x800579E8; // type:func -GetItem_DrawDekuNuts = 0x80057AF0; // type:func -GetItem_DrawRecoveryHeart = 0x80057C04; // type:func -GetItem_DrawFish = 0x80057D1C; // type:func -GetItem_DrawOpa0 = 0x80057E24; // type:func -GetItem_DrawOpa0Xlu1 = 0x80057EC0; // type:func -GetItem_DrawXlu01 = 0x80057FC4; // type:func -GetItem_DrawOpa10Xlu2 = 0x8005807C; // type:func -GetItem_DrawMagicArrow = 0x80058198; // type:func -GetItem_DrawMagicSpell = 0x800582B4; // type:func -GetItem_DrawOpa1023 = 0x80058404; // type:func -GetItem_DrawOpa10Xlu32 = 0x800584EC; // type:func -GetItem_DrawSmallRupee = 0x80058620; // type:func -GetItem_DrawScale = 0x80058770; // type:func -GetItem_DrawBulletBag = 0x800588D0; // type:func -GetItem_DrawWallet = 0x80058A1C; // type:func -SfxSource_InitAll = 0x80058B70; // type:func -SfxSource_UpdateAll = 0x80058BA0; // type:func -SfxSource_PlaySfxAtFixedWorldPos = 0x80058C48; // type:func -QuestHint_CheckCondition = 0x80058D30; // type:func -QuestHint_CheckConditionChain = 0x80058FAC; // type:func -QuestHint_CheckRandomCondition = 0x80059040; // type:func -QuestHint_GetTextIdFromScript = 0x80059220; // type:func -QuestHint_GetSariaTextId = 0x80059364; // type:func -QuestHint_GetNaviTextId = 0x800593CC; // type:func -MaskReaction_GetTextId = 0x80059410; // type:func -CutsceneFlags_UnsetAll = 0x80059460; // type:func -CutsceneFlags_Set = 0x80059490; // type:func -CutsceneFlags_Unset = 0x800594FC; // type:func -CutsceneFlags_Get = 0x8005956C; // type:func -Curve_CubicHermiteSpline = 0x800595E0; // type:func -Curve_Interpolate = 0x80059678; // type:func -SkelCurve_Clear = 0x80059820; // type:func -SkelCurve_Init = 0x80059850; // type:func -SkelCurve_Destroy = 0x80059900; // type:func -SkelCurve_SetAnim = 0x80059930; // type:func -SkelCurve_Update = 0x80059968; // type:func -SkelCurve_DrawLimb = 0x80059C58; // type:func -SkelCurve_Draw = 0x80059FE4; // type:func -func_8006CFC0 = 0x8005A030; // type:func -func_8006D074 = 0x8005A0E4; // type:func -func_8006D0AC = 0x8005A120; // type:func -func_8006D0EC = 0x8005A160; // type:func -func_8006D684 = 0x8005A5F8; // type:func -func_8006DC68 = 0x8005AB6C; // type:func -func_8006DD9C = 0x8005AC7C; // type:func -Jpeg_ScheduleDecoderTask = 0x8005AD10; // type:func -Jpeg_CopyToZbuffer = 0x8005AE4C; // type:func -Jpeg_GetUnalignedU16 = 0x8005AF84; // type:func -Jpeg_ParseMarkers = 0x8005AFD0; // type:func -Jpeg_Decode = 0x8005B19C; // type:func -KaleidoSetup_Update = 0x8005B4D0; // type:func -KaleidoSetup_Init = 0x8005B73C; // type:func -KaleidoSetup_Destroy = 0x8005B890; // type:func -func_8006EE50 = 0x8005B8A0; // type:func -Font_LoadChar = 0x8005B8B4; // type:func -Font_LoadMessageBoxIcon = 0x8005B904; // type:func -Font_LoadOrderedFont = 0x8005B948; // type:func -Environment_ZBufValToFixedPoint = 0x8005BA70; // type:func -Environment_GetPixelDepth = 0x8005BAA8; // type:func -Environment_GraphCallback = 0x8005BAD4; // type:func -Environment_Init = 0x8005BB18; // type:func -Environment_SmoothStepToU8 = 0x8005BFE8; // type:func -Environment_SmoothStepToS8 = 0x8005C120; // type:func -Environment_LerpWeight = 0x8005C260; // type:func -Environment_LerpWeightAccelDecel = 0x8005C2E4; // type:func -Environment_UpdateStorm = 0x8005C4A4; // type:func -Environment_UpdateSkybox = 0x8005C598; // type:func -Environment_EnableUnderwaterLights = 0x8005CE84; // type:func -Environment_DisableUnderwaterLights = 0x8005CEFC; // type:func -Environment_Update = 0x8005CF74; // type:func -Environment_DrawSunAndMoon = 0x8005EDD0; // type:func -Environment_DrawSunLensFlare = 0x8005F62C; // type:func -Environment_DrawLensFlare = 0x8005F700; // type:func -Environment_RandCentered = 0x80060358; // type:func -Environment_DrawRain = 0x80060380; // type:func -Environment_ChangeLightSetting = 0x80060928; // type:func -Environment_DrawSkyboxFilters = 0x800609AC; // type:func -Environment_DrawLightningFlash = 0x80060BCC; // type:func -Environment_UpdateLightningStrike = 0x80060C64; // type:func -Environment_AddLightningBolts = 0x80060F6C; // type:func -Environment_DrawLightning = 0x80060FD4; // type:func -Environment_PlaySceneSequence = 0x80061418; // type:func -Environment_PlayTimeBasedSequence = 0x80061608; // type:func -Environment_DrawCustomLensFlare = 0x80061920; // type:func -Environment_InitGameOverLights = 0x800619CC; // type:func -Environment_FadeInGameOverLights = 0x80061BB4; // type:func -Environment_FadeOutGameOverLights = 0x80061E68; // type:func -Environment_UpdateRain = 0x80062184; // type:func -Environment_FillScreen = 0x800621EC; // type:func -Environment_DrawSandstorm = 0x800623E4; // type:func -Environment_AdjustLights = 0x80062E30; // type:func -Environment_GetBgsDayCount = 0x8006305C; // type:func -Environment_ClearBgsDayCount = 0x8006306C; // type:func -Environment_GetTotalDays = 0x8006307C; // type:func -Environment_ForcePlaySequence = 0x8006308C; // type:func -Environment_IsForcedSequenceDisabled = 0x800630A4; // type:func -Environment_PlayStormNatureAmbience = 0x800630CC; // type:func -Environment_StopStormNatureAmbience = 0x8006312C; // type:func -Environment_WarpSongLeave = 0x8006318C; // type:func -Lib_MemSet = 0x80063280; // type:func -Math_CosS = 0x800632D4; // type:func -Math_SinS = 0x80063314; // type:func -Math_ScaledStepToS = 0x80063354; // type:func -Math_StepToS = 0x80063424; // type:func -Math_StepToF = 0x800634AC; // type:func -Math_StepUntilAngleS = 0x80063540; // type:func -Math_StepUntilS = 0x800635A8; // type:func -Math_StepToAngleS = 0x80063608; // type:func -Math_StepUntilF = 0x800636CC; // type:func -Math_AsymStepToF = 0x8006371C; // type:func -Lib_GetControlStickData = 0x800637C4; // type:func -Rand_S16Offset = 0x80063840; // type:func -Rand_S16OffsetStride = 0x80063894; // type:func -Math_Vec3f_Copy = 0x800638FC; // type:func -Math_Vec3s_ToVec3f = 0x8006391C; // type:func -Math_Vec3f_Sum = 0x80063960; // type:func -Math_Vec3f_Diff = 0x80063998; // type:func -Math_Vec3s_DiffToVec3f = 0x800639D0; // type:func -Math_Vec3f_Scale = 0x80063A2C; // type:func -Math_Vec3f_DistXYZ = 0x80063A68; // type:func -Math_Vec3f_DistXYZAndStoreDiff = 0x80063AAC; // type:func -Math_Vec3f_DistXZ = 0x80063B08; // type:func -Math_Vec3f_DiffY = 0x80063B3C; // type:func -Math_Vec3f_Yaw = 0x80063B50; // type:func -Math_Vec3f_Pitch = 0x80063B84; // type:func -Actor_ProcessInitChain = 0x80063BCC; // type:func -IChain_Apply_u8 = 0x80063C44; // type:func -IChain_Apply_s8 = 0x80063C60; // type:func -IChain_Apply_u16 = 0x80063C7C; // type:func -IChain_Apply_s16 = 0x80063C98; // type:func -IChain_Apply_u32 = 0x80063CB4; // type:func -IChain_Apply_s32 = 0x80063CD0; // type:func -IChain_Apply_f32 = 0x80063CEC; // type:func -IChain_Apply_f32div1000 = 0x80063D10; // type:func -IChain_Apply_Vec3f = 0x80063D40; // type:func -IChain_Apply_Vec3fdiv1000 = 0x80063D6C; // type:func -IChain_Apply_Vec3s = 0x80063DA4; // type:func -Math_SmoothStepToF = 0x80063DC8; // type:func -Math_ApproachF = 0x80063ED0; // type:func -Math_ApproachZeroF = 0x80063F40; // type:func -Math_SmoothStepToDegF = 0x80063F94; // type:func -Math_SmoothStepToS = 0x80064158; // type:func -Math_ApproachS = 0x80064274; // type:func -Color_RGBA8_Copy = 0x80064318; // type:func -Sfx_PlaySfxCentered = 0x80064340; // type:func -Sfx_PlaySfxCentered2 = 0x80064388; // type:func -Sfx_PlaySfxAtPos = 0x800643D0; // type:func -Health_InitMeter = 0x80064420; // type:func -Health_UpdateMeter = 0x800644FC; // type:func -func_80078E18 = 0x800648E0; // type:func -func_80078E34 = 0x80064900; // type:func -func_80078E84 = 0x80064950; // type:func -Health_DrawMeter = 0x800649E8; // type:func -Health_UpdateBeatingHeart = 0x80065660; // type:func -Health_IsCritical = 0x8006574C; // type:func -Lights_PointSetInfo = 0x800657C0; // type:func -Lights_PointNoGlowSetInfo = 0x8006581C; // type:func -Lights_PointGlowSetInfo = 0x80065880; // type:func -Lights_PointSetColorAndRadius = 0x800658E8; // type:func -Lights_DirectionalSetInfo = 0x8006591C; // type:func -Lights_Reset = 0x80065974; // type:func -Lights_Draw = 0x800659B0; // type:func -Lights_FindSlot = 0x80065AF4; // type:func -Lights_BindPoint = 0x80065B24; // type:func -Lights_BindDirectional = 0x80065E80; // type:func -Lights_BindAll = 0x80065EE8; // type:func -Lights_FindBufSlot = 0x80065F84; // type:func -Lights_FreeNode = 0x80066010; // type:func -LightContext_Init = 0x80066088; // type:func -LightContext_SetAmbientColor = 0x800660F4; // type:func -LightContext_SetFog = 0x80066120; // type:func -LightContext_NewLights = 0x8006615C; // type:func -LightContext_InitList = 0x80066194; // type:func -LightContext_DestroyList = 0x800661A4; // type:func -LightContext_InsertLight = 0x80066200; // type:func -LightContext_RemoveLight = 0x80066260; // type:func -Lights_NewAndDraw = 0x800662C4; // type:func -Lights_New = 0x8006640C; // type:func -Lights_GlowCheck = 0x80066454; // type:func -Lights_DrawGlow = 0x80066658; // type:func -ZeldaArena_Malloc = 0x80066860; // type:func -ZeldaArena_MallocR = 0x80066888; // type:func -ZeldaArena_Realloc = 0x800668B0; // type:func -ZeldaArena_Free = 0x800668E0; // type:func -ZeldaArena_Calloc = 0x80066908; // type:func -ZeldaArena_GetSizes = 0x80066960; // type:func -ZeldaArena_Check = 0x80066998; // type:func -ZeldaArena_Init = 0x800669BC; // type:func -ZeldaArena_Cleanup = 0x800669EC; // type:func -ZeldaArena_IsInitialized = 0x80066A10; // type:func -MapMark_Init = 0x80066A40; // type:func -MapMark_ClearPointers = 0x80066AEC; // type:func -MapMark_DrawForDungeon = 0x80066B08; // type:func -MapMark_Draw = 0x80066FF8; // type:func -PreNmiBuff_Init = 0x80067040; // type:func -PreNmiBuff_SetReset = 0x800670B8; // type:func -PreNmiBuff_IsResetting = 0x800670EC; // type:func -Sched_FlushTaskQueue = 0x80067100; // type:func -OLib_Vec3fDist = 0x80067180; // type:func -OLib_Vec3fDistOutDiff = 0x800671C4; // type:func -OLib_Vec3fDistXZ = 0x80067220; // type:func -OLib_ClampMinDist = 0x80067254; // type:func -OLib_ClampMaxDist = 0x800672A4; // type:func -OLib_Vec3fDistNormalize = 0x800672F4; // type:func -OLib_VecSphToVec3f = 0x800673A4; // type:func -OLib_VecGeoToVec3f = 0x80067450; // type:func -OLib_Vec3fToVecSph = 0x80067494; // type:func -OLib_Vec3fToVecGeo = 0x800675E8; // type:func -OLib_Vec3fDiffToVecSph = 0x80067630; // type:func -OLib_Vec3fDiffToVecGeo = 0x80067684; // type:func -OLib_Vec3fDiffRad = 0x800676D8; // type:func -OLib_Vec3fDiffDegF = 0x80067768; // type:func -OLib_Vec3fDiffBinAng = 0x800677D0; // type:func -OnePointCutscene_AddVecGeoToVec3f = 0x80067870; // type:func -OnePointCutscene_Vec3fYaw = 0x800678F0; // type:func -OnePointCutscene_Vec3sToVec3f = 0x80067958; // type:func -OnePointCutscene_BgCheckLineTest = 0x8006799C; // type:func -OnePointCutscene_RaycastDown = 0x800679EC; // type:func -OnePointCutscene_SetCsCamPoints = 0x80067A14; // type:func -OnePointCutscene_SetInfo = 0x80067A48; // type:func -OnePointCutscene_SetAsChild = 0x8006B184; // type:func -OnePointCutscene_RemoveCamera = 0x8006B1CC; // type:func -OnePointCutscene_Init = 0x8006B2A0; // type:func -OnePointCutscene_EndCutscene = 0x8006B558; // type:func -OnePointCutscene_Attention = 0x8006B5B4; // type:func -OnePointCutscene_AttentionSetSfx = 0x8006B720; // type:func -OnePointCutscene_EnableAttention = 0x8006B774; // type:func -OnePointCutscene_DisableAttention = 0x8006B784; // type:func -OnePointCutscene_CheckForCategory = 0x8006B798; // type:func -OnePointCutscene_Noop = 0x8006B7F8; // type:func -Map_SavePlayerInitialInfo = 0x8006B810; // type:func -Map_SetPaletteData = 0x8006B870; // type:func -Map_SetFloorPalettesData = 0x8006B8EC; // type:func -Map_InitData = 0x8006BAA4; // type:func -Map_InitRoomData = 0x8006BD60; // type:func -Map_Destroy = 0x8006BE3C; // type:func -Map_Init = 0x8006BE64; // type:func -Minimap_DrawCompassIcons = 0x8006C0EC; // type:func -Minimap_Draw = 0x8006C540; // type:func -Map_GetFloorTextIndexOffset = 0x8006D05C; // type:func -Map_Update = 0x8006D084; // type:func -Interface_ChangeHudVisibilityMode = 0x8006D3B0; // type:func -Interface_RaiseButtonAlphas = 0x8006D3E4; // type:func -Interface_DimButtonAlphas = 0x8006D51C; // type:func -Interface_UpdateHudAlphas = 0x8006D5F0; // type:func -func_80083108 = 0x8006DE10; // type:func -Interface_SetSceneRestrictions = 0x8006ED2C; // type:func -Gfx_TextureIA8 = 0x8006EE74; // type:func -Gfx_TextureI8 = 0x8006F098; // type:func -Inventory_SwapAgeEquipment = 0x8006F2BC; // type:func -Interface_InitHorsebackArchery = 0x8006F540; // type:func -func_800849EC = 0x8006F588; // type:func -Interface_LoadItemIcon1 = 0x8006F608; // type:func -Interface_LoadItemIcon2 = 0x8006F6B8; // type:func -func_80084BF4 = 0x8006F768; // type:func -Item_Give = 0x8006F884; // type:func -Item_CheckObtainability = 0x80070F00; // type:func -Inventory_DeleteItem = 0x80071440; // type:func -Inventory_ReplaceItem = 0x800714C0; // type:func -Inventory_HasEmptyBottle = 0x80071574; // type:func -Inventory_HasSpecificBottle = 0x800715E4; // type:func -Inventory_UpdateBottleItem = 0x8007165C; // type:func -Inventory_ConsumeFairy = 0x800716F4; // type:func -func_80086D5C = 0x800717CC; // type:func -Interface_LoadActionLabel = 0x80071804; // type:func -Interface_SetDoAction = 0x80071968; // type:func -Interface_SetNaviCall = 0x800719F0; // type:func -Interface_LoadActionLabelB = 0x80071AF4; // type:func -Health_ChangeBy = 0x80071BCC; // type:func -Health_GiveHearts = 0x80071CB0; // type:func -Rupees_ChangeBy = 0x80071CDC; // type:func -Inventory_ChangeAmmo = 0x80071D04; // type:func -Magic_Fill = 0x80072010; // type:func -Magic_Reset = 0x80072058; // type:func -Magic_RequestChange = 0x80072098; // type:func -Magic_Update = 0x80072350; // type:func -Magic_DrawMeter = 0x80072BFC; // type:func -Interface_SetSubTimer = 0x800733E8; // type:func -Interface_SetSubTimerToFinalSecond = 0x80073438; // type:func -Interface_SetTimer = 0x8007347C; // type:func -Interface_DrawActionLabel = 0x800734CC; // type:func -Interface_DrawItemButtons = 0x800735B4; // type:func -Interface_DrawItemIconTexture = 0x800743C0; // type:func -Interface_DrawAmmoCount = 0x80074568; // type:func -Interface_DrawActionButton = 0x80074A08; // type:func -Interface_InitVertices = 0x80074BF4; // type:func -func_8008A8B8 = 0x800750B4; // type:func -func_8008A994 = 0x80075194; // type:func -Interface_Draw = 0x800751DC; // type:func -Interface_Update = 0x80077D94; // type:func -Path_GetByIndex = 0x80078AA0; // type:func -Path_OrientAndGetDistSq = 0x80078AE4; // type:func -Path_CopyLastPoint = 0x80078BD0; // type:func -FrameAdvance_Init = 0x80078C70; // type:func -FrameAdvance_Update = 0x80078C80; // type:func -Player_SetBootData = 0x80078D20; // type:func -Player_InBlockingCsMode = 0x80078EAC; // type:func -Player_InCsMode = 0x80078F5C; // type:func -func_8008E9C4 = 0x80078F98; // type:func -Player_IsChildWithHylianShield = 0x80078FA8; // type:func -Player_ActionToModelGroup = 0x80078FD0; // type:func -Player_SetModelsForHoldingShield = 0x8007901C; // type:func -Player_SetModels = 0x80079108; // type:func -Player_SetModelGroup = 0x800791E0; // type:func -func_8008EC70 = 0x8007924C; // type:func -Player_SetEquipmentData = 0x80079284; // type:func -Player_UpdateBottleHeld = 0x80079374; // type:func -func_8008EDF0 = 0x800793C8; // type:func -func_8008EE08 = 0x800793E4; // type:func -func_8008EEAC = 0x80079488; // type:func -func_8008EF30 = 0x8007950C; // type:func -func_8008EF44 = 0x80079524; // type:func -Player_IsBurningStickInRange = 0x80079540; // type:func -Player_GetStrength = 0x80079618; // type:func -Player_GetMask = 0x80079664; // type:func -Player_UnsetMask = 0x80079674; // type:func -Player_HasMirrorShieldEquipped = 0x80079684; // type:func -Player_HasMirrorShieldSetToDraw = 0x8007969C; // type:func -Player_ActionToMagicSpell = 0x800796C8; // type:func -Player_HoldsHookshot = 0x800796F4; // type:func -func_8008F128 = 0x80079718; // type:func -Player_ActionToMeleeWeapon = 0x8007974C; // type:func -Player_GetMeleeWeaponHeld = 0x80079774; // type:func -Player_HoldsTwoHandedWeapon = 0x80079798; // type:func -Player_HoldsBrokenKnife = 0x800797C4; // type:func -Player_ActionToBottle = 0x8007981C; // type:func -Player_GetBottleHeld = 0x80079848; // type:func -Player_ActionToExplosive = 0x80079868; // type:func -Player_GetExplosiveHeld = 0x80079894; // type:func -func_8008F2BC = 0x800798B4; // type:func -Player_GetEnvironmentalHazard = 0x800798F0; // type:func -Player_DrawImpl = 0x80079A68; // type:func -func_8008F87C = 0x80079E2C; // type:func -Player_OverrideLimbDrawGameplayCommon = 0x8007A278; // type:func -Player_OverrideLimbDrawGameplayDefault = 0x8007A5CC; // type:func -Player_OverrideLimbDrawGameplayFirstPerson = 0x8007A8B8; // type:func -Player_OverrideLimbDrawGameplayCrawling = 0x8007AA08; // type:func -func_80090480 = 0x8007AA4C; // type:func -Player_UpdateShieldCollider = 0x8007ABD4; // type:func -func_800906D4 = 0x8007ACA8; // type:func -Player_DrawGetItemImpl = 0x8007ADB8; // type:func -Player_DrawGetItem = 0x8007AF4C; // type:func -func_80090A28 = 0x8007AFC4; // type:func -Player_DrawHookshotReticle = 0x8007B098; // type:func -Player_PostLimbDrawGameplay = 0x8007B27C; // type:func -Player_InitPauseDrawData = 0x8007BBE4; // type:func -Player_OverrideLimbDrawPause = 0x8007BD10; // type:func -Player_DrawPauseImpl = 0x8007BEB4; // type:func -Player_DrawPause = 0x8007C5B8; // type:func -func_80092320 = 0x8007C790; // type:func -PreNMI_Update = 0x8007C7A4; // type:func -PreNMI_Draw = 0x8007C7EC; // type:func -PreNMI_Main = 0x8007C8A8; // type:func -PreNMI_Destroy = 0x8007C8DC; // type:func -PreNMI_Init = 0x8007C8E8; // type:func -Quake_AddVecGeoToVec3f = 0x8007C930; // type:func -Quake_UpdateShakeInfo = 0x8007C9B0; // type:func -Quake_CallbackType1 = 0x8007CBD8; // type:func -Quake_CallbackType5 = 0x8007CC60; // type:func -Quake_CallbackType6 = 0x8007CCD4; // type:func -Quake_CallbackType3 = 0x8007CD58; // type:func -Quake_CallbackType2 = 0x8007CDF0; // type:func -Quake_CallbackType4 = 0x8007CE60; // type:func -Quake_GetFreeIndex = 0x8007CEF8; // type:func -Quake_RequestImpl = 0x8007CF5C; // type:func -Quake_Remove = 0x8007D014; // type:func -Quake_GetRequest = 0x8007D03C; // type:func -Quake_SetValue = 0x8007D098; // type:func -Quake_SetSpeed = 0x8007D1C8; // type:func -Quake_SetDuration = 0x8007D210; // type:func -Quake_GetTimeLeft = 0x8007D260; // type:func -Quake_SetPerturbations = 0x8007D298; // type:func -Quake_SetOrientation = 0x8007D300; // type:func -Quake_Init = 0x8007D368; // type:func -Quake_Request = 0x8007D3BC; // type:func -Quake_RemoveRequest = 0x8007D3E0; // type:func -Quake_Update = 0x8007D428; // type:func -Gfx_SetFog = 0x8007D7A0; // type:func -Gfx_SetFogWithSync = 0x8007D91C; // type:func -Gfx_SetFog2 = 0x8007DAAC; // type:func -Gfx_SetupDLImpl = 0x8007DAE0; // type:func -Gfx_SetupDL = 0x8007DB1C; // type:func -Gfx_SetupDLAtPtr = 0x8007DB3C; // type:func -Gfx_SetupDL_57 = 0x8007DB68; // type:func -Gfx_SetupDL_57b = 0x8007DB90; // type:func -Gfx_SetupDL_52NoCD = 0x8007DBB8; // type:func -Gfx_SetupDL_58Opa = 0x8007DBFC; // type:func -Gfx_SetupDL_57Opa = 0x8007DC24; // type:func -Gfx_SetupDL_50Opa = 0x8007DC4C; // type:func -Gfx_SetupDL_51Opa = 0x8007DC74; // type:func -Gfx_SetupDL_52Xlu = 0x8007DC9C; // type:func -Gfx_SetupDL_53Opa = 0x8007DCC4; // type:func -Gfx_SetupDL_54Opa = 0x8007DCEC; // type:func -Gfx_SetupDL_55Xlu = 0x8007DD14; // type:func -Gfx_SetupDL_26Opa = 0x8007DD3C; // type:func -Gfx_SetupDL_25Xlu2 = 0x8007DD64; // type:func -func_80093C80 = 0x8007DD8C; // type:func -Gfx_SetupDL_25Opa = 0x8007DDF8; // type:func -Gfx_SetupDL_25Xlu = 0x8007DE20; // type:func -Gfx_SetupDL_31Opa = 0x8007DE48; // type:func -Gfx_SetupDL_32Opa = 0x8007DE70; // type:func -Gfx_SetupDL_33Opa = 0x8007DE98; // type:func -Gfx_SetupDL_64 = 0x8007DEC0; // type:func -Gfx_SetupDL_34 = 0x8007DEE8; // type:func -Gfx_SetupDL_34Opa = 0x8007DF10; // type:func -Gfx_SetupDL_35Opa = 0x8007DF3C; // type:func -Gfx_SetupDL_44Xlu = 0x8007DF64; // type:func -Gfx_SetupDL_36Opa = 0x8007DF8C; // type:func -Gfx_SetupDL_28 = 0x8007DFB4; // type:func -Gfx_SetupDL_28Opa = 0x8007DFDC; // type:func -Gfx_SetupDL_43Opa = 0x8007E004; // type:func -Gfx_SetupDL_45Opa = 0x8007E02C; // type:func -Gfx_SetupDL_46Overlay = 0x8007E054; // type:func -Gfx_SetupDL_38Xlu = 0x8007E07C; // type:func -Gfx_SetupDL_4Xlu = 0x8007E0A4; // type:func -Gfx_SetupDL_37Opa = 0x8007E0CC; // type:func -Gfx_SetupDL_2Opa = 0x8007E0F4; // type:func -Gfx_SetupDL_39 = 0x8007E11C; // type:func -Gfx_SetupDL_39Opa = 0x8007E144; // type:func -Gfx_SetupDL_39Overlay = 0x8007E170; // type:func -Gfx_SetupDL_39Ptr = 0x8007E19C; // type:func -Gfx_SetupDL_40Opa = 0x8007E1C8; // type:func -Gfx_SetupDL_41Opa = 0x8007E1F0; // type:func -Gfx_SetupDL_47Xlu = 0x8007E218; // type:func -Gfx_SetupDL_66 = 0x8007E240; // type:func -Gfx_SetupDL_67 = 0x8007E268; // type:func -Gfx_SetupDL_68NoCD = 0x8007E290; // type:func -Gfx_SetupDL_69NoCD = 0x8007E2D4; // type:func -func_800947AC = 0x8007E318; // type:func -Gfx_SetupDL_70 = 0x8007E35C; // type:func -Gfx_SetupDL_20NoCD = 0x8007E384; // type:func -Gfx_SetupDL_42Opa = 0x8007E3C8; // type:func -Gfx_SetupDL_42Overlay = 0x8007E3F0; // type:func -Gfx_SetupDL_48Opa = 0x8007E418; // type:func -Gfx_SetupDL_49Xlu = 0x8007E440; // type:func -Gfx_SetupDL_27Xlu = 0x8007E468; // type:func -Gfx_SetupDL_60NoCDXlu = 0x8007E490; // type:func -Gfx_SetupDL_61Xlu = 0x8007E4D8; // type:func -Gfx_SetupDL_56Opa = 0x8007E500; // type:func -Gfx_SetupDL_56Ptr = 0x8007E528; // type:func -Gfx_SetupDL_59Opa = 0x8007E554; // type:func -Gfx_BranchTexScroll = 0x8007E57C; // type:func -func_80094E54 = 0x8007E620; // type:func -func_80094E78 = 0x8007E644; // type:func -Gfx_TexScroll = 0x8007E668; // type:func -Gfx_TwoTexScroll = 0x8007E6EC; // type:func -Gfx_TwoTexScrollEnvColor = 0x8007E80C; // type:func -Gfx_EnvColor = 0x8007E96C; // type:func -Gfx_SetupFrame = 0x8007E9C4; // type:func -func_80095974 = 0x8007EF7C; // type:func -func_80095AA0 = 0x8007F060; // type:func -Room_DrawNormal = 0x8007F078; // type:func -Room_DrawCullable = 0x8007F294; // type:func -Room_DecodeJpeg = 0x8007F75C; // type:func -Room_DrawBackground2D = 0x8007F7E4; // type:func -Room_DrawImageSingle = 0x8007FAE0; // type:func -Room_GetImageMultiBgEntry = 0x8007FEB0; // type:func -Room_DrawImageMulti = 0x8007FF9C; // type:func -Room_DrawImage = 0x8008036C; // type:func -func_80096FD4 = 0x800803D4; // type:func -func_80096FE8 = 0x800803EC; // type:func -func_8009728C = 0x80080588; // type:func -func_800973FC = 0x800806C0; // type:func -Room_Draw = 0x80080764; // type:func -func_80097534 = 0x800807B4; // type:func -Sample_HandleStateChange = 0x80080850; // type:func -Sample_Draw = 0x80080884; // type:func -Sample_Main = 0x80080A70; // type:func -Sample_Destroy = 0x80080A9C; // type:func -Sample_SetupView = 0x80080AA8; // type:func -Sample_LoadTitleStatic = 0x80080B60; // type:func -Sample_Init = 0x80080BC0; // type:func -Inventory_ChangeEquipment = 0x80080C50; // type:func -Inventory_DeleteEquipment = 0x80080CA8; // type:func -Inventory_ChangeUpgrade = 0x80080DB4; // type:func -Object_SpawnPersistent = 0x80080E10; // type:func -Object_InitContext = 0x80080EF4; // type:func -Object_UpdateEntries = 0x80081050; // type:func -Object_GetSlot = 0x80081148; // type:func -Object_IsLoaded = 0x800811A8; // type:func -func_800981B8 = 0x800811D8; // type:func -func_800982FC = 0x80081260; // type:func -Scene_ExecuteCommands = 0x800812C0; // type:func -Scene_CommandPlayerEntryList = 0x80081344; // type:func -Scene_CommandActorEntryList = 0x80081420; // type:func -Scene_CommandUnused2 = 0x80081478; // type:func -Scene_CommandCollisionHeader = 0x800814C0; // type:func -Scene_CommandRoomList = 0x800815F0; // type:func -Scene_CommandSpawnList = 0x80081648; // type:func -Scene_CommandSpecialFiles = 0x80081690; // type:func -Scene_CommandRoomBehavior = 0x80081758; // type:func -Scene_CommandRoomShape = 0x800817B0; // type:func -Scene_CommandObjectList = 0x800817F8; // type:func -Scene_CommandLightList = 0x800819AC; // type:func -Scene_CommandPathList = 0x80081A5C; // type:func -Scene_CommandTransitionActorEntryList = 0x80081AA4; // type:func -TransitionActor_InitContext = 0x80081AFC; // type:func -Scene_CommandLightSettingsList = 0x80081B0C; // type:func -Scene_CommandSkyboxSettings = 0x80081B64; // type:func -Scene_CommandSkyboxDisables = 0x80081BA8; // type:func -Scene_CommandTimeSettings = 0x80081BD0; // type:func -Scene_CommandWindSettings = 0x80081EE4; // type:func -Scene_CommandExitList = 0x80081F48; // type:func -Scene_CommandUndefined9 = 0x80081F90; // type:func -Scene_CommandSoundSettings = 0x80081FA0; // type:func -Scene_CommandEchoSettings = 0x80081FEC; // type:func -Scene_CommandAlternateHeaderList = 0x80082004; // type:func -Scene_CommandCutsceneData = 0x80082100; // type:func -Scene_CommandMiscSettings = 0x80082140; // type:func -Scene_SetTransitionForNextEntrance = 0x80082204; // type:func -Scene_DrawConfigDefault = 0x800822C0; // type:func -Scene_DrawConfigDekuTree = 0x80082300; // type:func -Scene_DrawConfigDekuTreeBoss = 0x80082448; // type:func -Scene_DrawConfigDodongosCavern = 0x8008252C; // type:func -Scene_DrawConfigTempleOfTime = 0x80082854; // type:func -Scene_DrawConfigGrottos = 0x8008306C; // type:func -Scene_DrawConfigChamberOfTheSages = 0x8008337C; // type:func -Scene_DrawConfigGreatFairyFountain = 0x800835A0; // type:func -Scene_DrawConfigGraveExitLightShining = 0x80083738; // type:func -Scene_DrawConfigFairysFountain = 0x80083810; // type:func -Scene_DrawConfigShadowTempleAndWell = 0x80083974; // type:func -Scene_DrawConfigThievesHideout = 0x80083B00; // type:func -Scene_DrawConfigWaterTemple = 0x80083BE8; // type:func -Scene_DrawConfigWaterTempleBoss = 0x80084340; // type:func -Scene_DrawConfigShootingGallery = 0x80084460; // type:func -Scene_DrawConfigCastleCourtyardGuards = 0x80084514; // type:func -Scene_DrawConfigOutsideGanonsCastle = 0x8008468C; // type:func -func_8009BEEC = 0x80084928; // type:func -Scene_DrawConfigGanonsTowerCollapseExterior = 0x80084AE8; // type:func -Scene_DrawConfigIceCavern = 0x80084DF4; // type:func -Scene_DrawConfigRoyalFamilysTomb = 0x80084FE4; // type:func -Scene_DrawConfigLakesideLaboratory = 0x80085268; // type:func -Scene_DrawConfigCalmWater = 0x80085448; // type:func -Scene_DrawConfigGerudoTrainingGround = 0x80085550; // type:func -Gfx_TwoTexScrollPrimColor = 0x80085740; // type:func -Scene_DrawConfigFishingPond = 0x800858A0; // type:func -Scene_DrawConfigBombchuBowlingAlley = 0x800859CC; // type:func -Scene_DrawConfigLonLonBuildings = 0x80085BD0; // type:func -Scene_DrawConfigMarketGuardHouse = 0x80085CA0; // type:func -Scene_DrawConfigPotionShopGranny = 0x80085DD0; // type:func -Scene_DrawConfigForestTemple = 0x80085F48; // type:func -Scene_DrawConfigSpiritTemple = 0x80086138; // type:func -Scene_DrawConfigHyruleField = 0x800861A8; // type:func -Scene_DrawConfigKakarikoVillage = 0x800864A4; // type:func -Scene_DrawConfigZorasRiver = 0x80086574; // type:func -Scene_DrawConfigKokiriForest = 0x8008678C; // type:func -Scene_DrawConfigLakeHylia = 0x80086BF0; // type:func -Scene_DrawConfigZorasDomain = 0x80086DB0; // type:func -Scene_DrawConfigZorasFountain = 0x80086F0C; // type:func -Scene_DrawConfigGerudoValley = 0x800870FC; // type:func -Scene_DrawConfigLostWoods = 0x80087438; // type:func -Scene_DrawConfigDesertColossus = 0x80087634; // type:func -Scene_DrawConfigGerudosFortress = 0x80087740; // type:func -Scene_DrawConfigHauntedWasteland = 0x800877B0; // type:func -Scene_DrawConfigHyruleCastle = 0x80087928; // type:func -Scene_DrawConfigDeathMountainTrail = 0x80087ACC; // type:func -Scene_DrawConfigDeathMountainCrater = 0x80087C90; // type:func -Scene_DrawConfigGoronCity = 0x80087E5C; // type:func -Scene_DrawConfigLonLonRanch = 0x80087FCC; // type:func -Scene_DrawConfigFireTemple = 0x8008809C; // type:func -Scene_DrawConfigJabuJabu = 0x80088240; // type:func -Scene_DrawConfigInsideGanonsCastle = 0x800886EC; // type:func -Scene_DrawConfigInsideGanonsCastleCollapse = 0x800888F0; // type:func -Scene_DrawConfigGanonsTowerCollapseInterior = 0x80088910; // type:func -Scene_DrawConfigBesitu = 0x80088930; // type:func -Scene_Draw = 0x80088A68; // type:func -SkelAnime_DrawLimbLod = 0x80088AA0; // type:func -SkelAnime_DrawLod = 0x80088D08; // type:func -SkelAnime_DrawFlexLimbLod = 0x80088EF8; // type:func -SkelAnime_DrawFlexLod = 0x80089188; // type:func -SkelAnime_DrawLimbOpa = 0x80089400; // type:func -SkelAnime_DrawOpa = 0x8008964C; // type:func -SkelAnime_DrawFlexLimbOpa = 0x8008982C; // type:func -SkelAnime_DrawFlexOpa = 0x80089AA4; // type:func -SkelAnime_GetFrameData = 0x80089D08; // type:func -Animation_GetLength = 0x80089E70; // type:func -Animation_GetLastFrame = 0x80089EAC; // type:func -SkelAnime_DrawLimb = 0x80089EF4; // type:func -SkelAnime_Draw = 0x8008A134; // type:func -SkelAnime_DrawFlexLimb = 0x8008A324; // type:func -SkelAnime_DrawFlex = 0x8008A5B4; // type:func -SkelAnime_GetFrameDataLegacy = 0x8008A81C; // type:func -Animation_GetLimbCountLegacy = 0x8008AC20; // type:func -Animation_GetLengthLegacy = 0x8008AC5C; // type:func -Animation_GetLastFrameLegacy = 0x8008AC98; // type:func -SkelAnime_InterpFrameTable = 0x8008ACE0; // type:func -AnimationContext_Reset = 0x8008B160; // type:func -AnimationContext_SetNextQueue = 0x8008B16C; // type:func -AnimationContext_DisableQueue = 0x8008B18C; // type:func -AnimationContext_AddEntry = 0x8008B1B4; // type:func -AnimationContext_SetLoadFrame = 0x8008B1EC; // type:func -AnimationContext_SetCopyAll = 0x8008B2E8; // type:func -AnimationContext_SetInterp = 0x8008B350; // type:func -AnimationContext_SetCopyTrue = 0x8008B3C0; // type:func -AnimationContext_SetCopyFalse = 0x8008B430; // type:func -AnimationContext_SetMoveActor = 0x8008B4A0; // type:func -AnimationContext_LoadFrame = 0x8008B4FC; // type:func -AnimationContext_CopyAll = 0x8008B52C; // type:func -AnimationContext_Interp = 0x8008B59C; // type:func -AnimationContext_CopyTrue = 0x8008B5F8; // type:func -AnimationContext_CopyFalse = 0x8008B678; // type:func -AnimationContext_MoveActor = 0x8008B6FC; // type:func -AnimationContext_Update = 0x8008B790; // type:func -SkelAnime_InitLink = 0x8008B830; // type:func -LinkAnimation_SetUpdateFunction = 0x8008B994; // type:func -LinkAnimation_Update = 0x8008B9CC; // type:func -LinkAnimation_Morph = 0x8008B9F0; // type:func -LinkAnimation_AnimateFrame = 0x8008BAAC; // type:func -LinkAnimation_Loop = 0x8008BB88; // type:func -LinkAnimation_Once = 0x8008BC28; // type:func -Animation_SetMorph = 0x8008BD04; // type:func -LinkAnimation_Change = 0x8008BD28; // type:func -LinkAnimation_PlayOnce = 0x8008BEA0; // type:func -LinkAnimation_PlayOnceSetSpeed = 0x8008BF00; // type:func -LinkAnimation_PlayLoop = 0x8008BF64; // type:func -LinkAnimation_PlayLoopSetSpeed = 0x8008BFC0; // type:func -LinkAnimation_CopyJointToMorph = 0x8008C020; // type:func -LinkAnimation_CopyMorphToJoint = 0x8008C050; // type:func -LinkAnimation_LoadToMorph = 0x8008C080; // type:func -LinkAnimation_LoadToJoint = 0x8008C0C4; // type:func -LinkAnimation_InterpJointMorph = 0x8008C108; // type:func -LinkAnimation_BlendToJoint = 0x8008C140; // type:func -LinkAnimation_BlendToMorph = 0x8008C1E0; // type:func -LinkAnimation_EndLoop = 0x8008C280; // type:func -Animation_OnFrameImpl = 0x8008C2A4; // type:func -LinkAnimation_OnFrame = 0x8008C35C; // type:func -SkelAnime_Init = 0x8008C3AC; // type:func -SkelAnime_InitFlex = 0x8008C4B0; // type:func -SkelAnime_InitSkin = 0x8008C5BC; // type:func -SkelAnime_SetUpdate = 0x8008C69C; // type:func -SkelAnime_Update = 0x8008C6E8; // type:func -SkelAnime_Morph = 0x8008C70C; // type:func -SkelAnime_MorphTaper = 0x8008C7CC; // type:func -SkelAnime_AnimateFrame = 0x8008C954; // type:func -SkelAnime_LoopFull = 0x8008CA9C; // type:func -SkelAnime_LoopPartial = 0x8008CB3C; // type:func -SkelAnime_Once = 0x8008CBE4; // type:func -Animation_ChangeImpl = 0x8008CCE8; // type:func -Animation_Change = 0x8008CEA4; // type:func -Animation_PlayOnce = 0x8008CEEC; // type:func -Animation_MorphToPlayOnce = 0x8008CF44; // type:func -Animation_PlayOnceSetSpeed = 0x8008CFA0; // type:func -Animation_PlayLoop = 0x8008CFFC; // type:func -Animation_MorphToLoop = 0x8008D050; // type:func -Animation_PlayLoopSetSpeed = 0x8008D088; // type:func -Animation_EndLoop = 0x8008D0E0; // type:func -Animation_Reverse = 0x8008D10C; // type:func -SkelAnime_CopyFrameTableTrue = 0x8008D130; // type:func -SkelAnime_CopyFrameTableFalse = 0x8008D198; // type:func -SkelAnime_UpdateTranslation = 0x8008D204; // type:func -Animation_OnFrame = 0x8008D3D0; // type:func -SkelAnime_Free = 0x8008D3F8; // type:func -SkelAnime_CopyFrameTable = 0x8008D444; // type:func -Skin_UpdateVertices = 0x8008D490; // type:func -Skin_ApplyLimbModifications = 0x8008D65C; // type:func -Skin_DrawAnimatedLimb = 0x8008DAC8; // type:func -Skin_DrawLimb = 0x8008DBA4; // type:func -Skin_DrawImpl = 0x8008DCCC; // type:func -func_800A6330 = 0x8008DEF8; // type:func -func_800A6360 = 0x8008DF28; // type:func -func_800A6394 = 0x8008DF5C; // type:func -func_800A63CC = 0x8008DF94; // type:func -Skin_GetLimbPos = 0x8008DFD0; // type:func -Skin_InitAnimatedLimb = 0x8008E030; // type:func -Skin_Init = 0x8008E20C; // type:func -Skin_Free = 0x8008E3DC; // type:func -func_800A698C = 0x8008E4B0; // type:func -Skin_ApplyAnimTransformations = 0x8008E5EC; // type:func -SkinMatrix_Vec3fMtxFMultXYZW = 0x8008E940; // type:func -SkinMatrix_Vec3fMtxFMultXYZ = 0x8008EA28; // type:func -SkinMatrix_MtxFMtxFMult = 0x8008EAD8; // type:func -SkinMatrix_GetClear = 0x8008EE34; // type:func -SkinMatrix_Clear = 0x8008EE48; // type:func -SkinMatrix_MtxFCopy = 0x8008EEA0; // type:func -SkinMatrix_Invert = 0x8008EF28; // type:func -SkinMatrix_SetScale = 0x8008F1C8; // type:func -SkinMatrix_SetRotateZYX = 0x8008F22C; // type:func -SkinMatrix_SetRotateYXZ = 0x8008F3BC; // type:func -SkinMatrix_SetTranslate = 0x8008F54C; // type:func -SkinMatrix_SetTranslateRotateZYXScale = 0x8008F5B0; // type:func -SkinMatrix_SetTranslateRotateYXZScale = 0x8008F634; // type:func -SkinMatrix_SetTranslateRotateZYX = 0x8008F6B8; // type:func -SkinMatrix_Vec3fToVec3s = 0x8008F718; // type:func -SkinMatrix_Vec3sToVec3f = 0x8008F75C; // type:func -SkinMatrix_MtxFToMtx = 0x8008F7A0; // type:func -SkinMatrix_MtxFToNewMtx = 0x8008F9B8; // type:func -SkinMatrix_SetRotateAxis = 0x8008FA00; // type:func -func_800A8030 = 0x8008FB70; // type:func -Sram_InitNewSave = 0x8008FCE0; // type:func -Sram_InitDebugSave = 0x8008FE0C; // type:func -Sram_OpenSave = 0x8008FFCC; // type:func -Sram_WriteSave = 0x80090310; // type:func -Sram_VerifyAndLoadAllSaves = 0x8009045C; // type:func -Sram_InitSave = 0x80090988; // type:func -Sram_EraseSave = 0x80090C54; // type:func -Sram_CopySave = 0x80090D6C; // type:func -Sram_WriteSramHeader = 0x80090F88; // type:func -Sram_InitSram = 0x80090FBC; // type:func -Sram_Alloc = 0x800910D4; // type:func -Sram_Init = 0x80091104; // type:func -SsSram_Init = 0x80091120; // type:func -SsSram_Dma = 0x800911F8; // type:func -SsSram_ReadWrite = 0x80091284; // type:func -Rumble_Update = 0x800912F0; // type:func -Rumble_Override = 0x8009132C; // type:func -Rumble_Request = 0x800913C8; // type:func -Rumble_Init = 0x80091484; // type:func -Rumble_Destroy = 0x800914C0; // type:func -Rumble_Controller1HasRumblePak = 0x80091518; // type:func -Rumble_Reset = 0x80091530; // type:func -Rumble_ClearRequests = 0x80091544; // type:func -Rumble_SetUpdateEnabled = 0x80091554; // type:func -View_ViewportToVp = 0x80091570; // type:func -View_New = 0x800915DC; // type:func -View_Free = 0x80091628; // type:func -View_Init = 0x80091648; // type:func -View_LookAt = 0x80091708; // type:func -View_LookAtUnsafe = 0x800917A4; // type:func -View_SetScale = 0x800917F4; // type:func -View_GetScale = 0x80091814; // type:func -View_SetPerspective = 0x80091824; // type:func -View_GetPerspective = 0x80091854; // type:func -View_SetOrtho = 0x80091874; // type:func -View_GetOrtho = 0x800918B0; // type:func -View_SetViewport = 0x800918D0; // type:func -View_GetViewport = 0x80091904; // type:func -View_ApplyLetterbox = 0x8009192C; // type:func -View_SetDistortionOrientation = 0x80091A6C; // type:func -View_SetDistortionScale = 0x80091A90; // type:func -View_SetDistortionSpeed = 0x80091AB4; // type:func -View_InitDistortion = 0x80091AC8; // type:func -View_ClearDistortion = 0x80091B2C; // type:func -View_SetDistortion = 0x80091B60; // type:func -View_StepDistortion = 0x80091BB4; // type:func -View_Apply = 0x80091D6C; // type:func -View_ApplyPerspective = 0x80091DB8; // type:func -View_ApplyOrtho = 0x800920AC; // type:func -View_ApplyOrthoToOverlay = 0x80092258; // type:func -View_ApplyPerspectiveToOverlay = 0x8009248C; // type:func -View_UpdateViewingMatrix = 0x800927DC; // type:func -View_ApplyTo = 0x80092848; // type:func -ViMode_LogPrint = 0x80092C70; // type:func -ViMode_Configure = 0x80092C7C; // type:func -ViMode_Save = 0x80093224; // type:func -ViMode_Load = 0x80093304; // type:func -ViMode_Init = 0x8009338C; // type:func -ViMode_Destroy = 0x800933F4; // type:func -ViMode_ConfigureFeatures = 0x80093400; // type:func -ViMode_Update = 0x80093464; // type:func -VisCvg_Init = 0x800937E0; // type:func -VisCvg_Destroy = 0x80093804; // type:func -VisCvg_Draw = 0x80093810; // type:func -VisMono_Init = 0x80093980; // type:func -VisMono_Destroy = 0x800939D0; // type:func -VisMono_DesaturateTLUT = 0x800939F4; // type:func -VisMono_DesaturateDList = 0x80093D08; // type:func -VisMono_Draw = 0x80093F38; // type:func -VisMono_DrawOld = 0x8009412C; // type:func -VisZBuf_Init = 0x800941A0; // type:func -VisZBuf_Destroy = 0x800941D4; // type:func -VisZBuf_Draw = 0x800941E0; // type:func -Skybox_CalculateFace256 = 0x80094430; // type:func -Skybox_CalculateFace128 = 0x80094B40; // type:func -Skybox_Calculate256 = 0x80095848; // type:func -Skybox_Calculate128 = 0x800959F8; // type:func -Skybox_Setup = 0x80095A98; // type:func -Skybox_Init = 0x80096BEC; // type:func -Skybox_UpdateMatrix = 0x80096D00; // type:func -Skybox_Draw = 0x80096D88; // type:func -Skybox_Update = 0x800973D0; // type:func -PlayerCall_InitFuncPtrs = 0x800973E0; // type:func -PlayerCall_Init = 0x80097448; // type:func -PlayerCall_Destroy = 0x80097490; // type:func -PlayerCall_Update = 0x800974D0; // type:func -PlayerCall_Draw = 0x80097510; // type:func -TransitionTile_InitGraphics = 0x80097550; // type:func -TransitionTile_InitVtxData = 0x8009791C; // type:func -TransitionTile_Destroy = 0x800979DC; // type:func -TransitionTile_Init = 0x80097A68; // type:func -TransitionTile_SetVtx = 0x80097BE0; // type:func -TransitionTile_Draw = 0x80097CF4; // type:func -TransitionTile_Suck = 0x80097E20; // type:func -TransitionTile_Update = 0x80097F54; // type:func -func_800B23F0 = 0x80097F60; // type:func -TransitionTriforce_Start = 0x80097F70; // type:func -TransitionTriforce_Init = 0x80097FA8; // type:func -TransitionTriforce_Destroy = 0x80098048; // type:func -TransitionTriforce_Update = 0x80098054; // type:func -TransitionTriforce_SetColor = 0x80098168; // type:func -TransitionTriforce_SetType = 0x80098174; // type:func -TransitionTriforce_SetState = 0x80098180; // type:func -TransitionTriforce_Draw = 0x8009818C; // type:func -TransitionTriforce_IsDone = 0x8009849C; // type:func -TransitionWipe_Start = 0x80098530; // type:func -TransitionWipe_Init = 0x800985E8; // type:func -TransitionWipe_Destroy = 0x80098614; // type:func -TransitionWipe_Update = 0x80098620; // type:func -TransitionWipe_Draw = 0x80098700; // type:func -TransitionWipe_IsDone = 0x8009893C; // type:func -TransitionWipe_SetType = 0x80098948; // type:func -TransitionWipe_SetColor = 0x80098988; // type:func -TransitionWipe_SetUnkColor = 0x80098994; // type:func -TransitionCircle_Start = 0x800989A0; // type:func -TransitionCircle_Init = 0x80098B8C; // type:func -TransitionCircle_Destroy = 0x80098BB8; // type:func -TransitionCircle_Update = 0x80098BC4; // type:func -TransitionCircle_Draw = 0x80098D48; // type:func -TransitionCircle_IsDone = 0x80098FE4; // type:func -TransitionCircle_SetType = 0x80098FF0; // type:func -TransitionCircle_SetColor = 0x80099048; // type:func -TransitionCircle_SetUnkColor = 0x80099054; // type:func -TransitionFade_Start = 0x80099060; // type:func -TransitionFade_Init = 0x800990BC; // type:func -TransitionFade_Destroy = 0x800990E8; // type:func -TransitionFade_Update = 0x800990F4; // type:func -TransitionFade_Draw = 0x80099284; // type:func -TransitionFade_IsDone = 0x80099350; // type:func -TransitionFade_SetColor = 0x8009935C; // type:func -TransitionFade_SetType = 0x80099368; // type:func -Letterbox_SetSizeTarget = 0x800993C0; // type:func -Letterbox_GetSizeTarget = 0x800993D0; // type:func -Letterbox_SetSize = 0x800993E0; // type:func -Letterbox_GetSize = 0x800993F0; // type:func -Letterbox_Init = 0x80099400; // type:func -Letterbox_Destroy = 0x80099420; // type:func -Letterbox_Update = 0x80099430; // type:func -func_800BB0A0 = 0x80099530; // type:func -func_800BB2B4 = 0x80099744; // type:func -KaleidoManager_LoadOvl = 0x80099A00; // type:func -KaleidoManager_ClearOvl = 0x80099A5C; // type:func -KaleidoManager_Init = 0x80099AAC; // type:func -KaleidoManager_Destroy = 0x80099B1C; // type:func -KaleidoManager_GetRamAddr = 0x80099B5C; // type:func -KaleidoScopeCall_LoadPlayer = 0x80099C30; // type:func -KaleidoScopeCall_Init = 0x80099C7C; // type:func -KaleidoScopeCall_Destroy = 0x80099CC8; // type:func -KaleidoScopeCall_Update = 0x80099CE8; // type:func -KaleidoScopeCall_Draw = 0x80099E88; // type:func -Play_RequestViewpointBgCam = 0x80099F10; // type:func -Play_SetViewpoint = 0x80099F50; // type:func -Play_CheckViewpoint = 0x80099FFC; // type:func -Play_SetShopBrowsingViewpoint = 0x8009A024; // type:func -Play_SetupTransition = 0x8009A050; // type:func -func_800BC88C = 0x8009A2FC; // type:func -Play_SetFog = 0x8009A314; // type:func -Play_Destroy = 0x8009A360; // type:func -Play_Init = 0x8009A4CC; // type:func -Play_Update = 0x8009AC84; // type:func -Play_DrawOverlayElements = 0x8009BD78; // type:func -Play_Draw = 0x8009BE10; // type:func -Play_Main = 0x8009C854; // type:func -Play_InCsMode = 0x8009C894; // type:func -func_800BFCB8 = 0x8009C8C8; // type:func -Play_LoadFile = 0x8009CA74; // type:func -Play_InitEnvironment = 0x8009CAD0; // type:func -Play_InitScene = 0x8009CB18; // type:func -Play_SpawnScene = 0x8009CC1C; // type:func -Play_GetScreenPos = 0x8009CCC4; // type:func -Play_CreateSubCamera = 0x8009CD88; // type:func -Play_GetActiveCamId = 0x8009CE38; // type:func -Play_ChangeCameraStatus = 0x8009CE44; // type:func -Play_ClearCamera = 0x8009CEB4; // type:func -Play_ClearAllSubCameras = 0x8009CF1C; // type:func -Play_GetCamera = 0x8009CF88; // type:func -Play_SetCameraAtEye = 0x8009CFC0; // type:func -Play_SetCameraAtEyeUp = 0x8009D0D0; // type:func -Play_SetCameraFov = 0x8009D1F4; // type:func -Play_SetCameraRoll = 0x8009D23C; // type:func -Play_CopyCamera = 0x8009D288; // type:func -Play_InitCameraDataUsingPlayer = 0x8009D304; // type:func -Play_RequestCameraSetting = 0x8009D374; // type:func -Play_ReturnToMainCam = 0x8009D3B0; // type:func -Play_GetCameraUID = 0x8009D48C; // type:func -func_800C09D8 = 0x8009D4C0; // type:func -Play_SaveSceneFlags = 0x8009D52C; // type:func -Play_SetRespawnData = 0x8009D574; // type:func -Play_SetupRespawnPoint = 0x8009D5E4; // type:func -Play_TriggerVoidOut = 0x8009D650; // type:func -Play_LoadToLastEntrance = 0x8009D6A8; // type:func -Play_TriggerRespawn = 0x8009D77C; // type:func -Play_CamIsNotFixed = 0x8009D7B0; // type:func -FrameAdvance_IsEnabled = 0x8009D820; // type:func -func_800C0D34 = 0x8009D830; // type:func -func_800C0DB4 = 0x8009D8B0; // type:func -PreRender_SetValuesSave = 0x8009D970; // type:func -PreRender_Init = 0x8009D9AC; // type:func -PreRender_SetValues = 0x8009D9E0; // type:func -PreRender_Destroy = 0x8009DA14; // type:func -PreRender_CopyImage = 0x8009DA38; // type:func -PreRender_CopyImageRegionImpl = 0x8009DD00; // type:func -func_800C170C = 0x8009E148; // type:func -func_800C1AE8 = 0x8009E4C4; // type:func -PreRender_CoverageRgba16ToI8 = 0x8009E500; // type:func -PreRender_SaveZBuffer = 0x8009E818; // type:func -PreRender_SaveFramebuffer = 0x8009E850; // type:func -PreRender_FetchFbufCoverage = 0x8009E888; // type:func -PreRender_DrawCoverage = 0x8009E9A0; // type:func -PreRender_RestoreZBuffer = 0x8009E9E4; // type:func -func_800C213C = 0x8009EA08; // type:func -PreRender_RestoreFramebuffer = 0x8009ED38; // type:func -PreRender_CopyImageRegion = 0x8009ED5C; // type:func -PreRender_AntiAliasFilter = 0x8009ED7C; // type:func -PreRender_DivotFilter = 0x8009F83C; // type:func -PreRender_ApplyFilters = 0x8009F990; // type:func -THGA_Init = 0x8009FA60; // type:func -THGA_Destroy = 0x8009FA80; // type:func -THGA_IsCrash = 0x8009FAA0; // type:func -THGA_Reset = 0x8009FAC0; // type:func -THGA_GetRemaining = 0x8009FAE0; // type:func -THGA_GetHead = 0x8009FB00; // type:func -THGA_SetHead = 0x8009FB20; // type:func -THGA_GetTail = 0x8009FB40; // type:func -THGA_AllocDisplayList = 0x8009FB60; // type:func -THGA_AllocGfx = 0x8009FB84; // type:func -THGA_AllocGfx2 = 0x8009FBA4; // type:func -THGA_AllocTail = 0x8009FBC4; // type:func -THGA_AllocMtxArray = 0x8009FBE4; // type:func -THGA_AllocMtx = 0x8009FC08; // type:func -THGA_AllocVtxArray = 0x8009FC28; // type:func -THGA_AllocVtx = 0x8009FC4C; // type:func -THA_GetHead = 0x8009FC70; // type:func -THA_SetHead = 0x8009FC7C; // type:func -THA_GetTail = 0x8009FC88; // type:func -THA_AllocHead = 0x8009FC94; // type:func -THA_AllocHeadByte = 0x8009FCA8; // type:func -THA_AllocTail = 0x8009FCC8; // type:func -THA_AllocTailAlign16 = 0x8009FD58; // type:func -THA_AllocTailAlign = 0x8009FD78; // type:func -THA_GetRemaining = 0x8009FD94; // type:func -THA_IsCrash = 0x8009FDA8; // type:func -THA_Reset = 0x8009FDCC; // type:func -THA_Init = 0x8009FDE8; // type:func -THA_Destroy = 0x8009FE0C; // type:func -AudioMgr_StopAllSfx = 0x8009FE30; // type:func -AudioMgr_NotifyTaskDone = 0x8009FE80; // type:func -AudioMgr_HandleRetrace = 0x8009FEB8; // type:func -AudioMgr_HandlePreNMI = 0x800A0040; // type:func -AudioMgr_ThreadEntry = 0x800A0064; // type:func -AudioMgr_WaitForInit = 0x800A0194; // type:func -AudioMgr_Init = 0x800A01C0; // type:func -Setup_InitImpl = 0x800A0290; // type:func -Setup_Destroy = 0x800A02CC; // type:func -Setup_Init = 0x800A02D8; // type:func -GameState_SetFBFilter = 0x800A0300; // type:func -func_800C4344 = 0x800A0454; // type:func -GameState_Draw = 0x800A0460; // type:func -GameState_SetFrameBuffer = 0x800A0558; // type:func -func_800C49F4 = 0x800A063C; // type:func -GameState_ReqPadData = 0x800A06B4; // type:func -GameState_Update = 0x800A06E4; // type:func -GameState_InitArena = 0x800A0760; // type:func -GameState_Realloc = 0x800A07D0; // type:func -GameState_Init = 0x800A0890; // type:func -GameState_Destroy = 0x800A0988; // type:func -GameState_GetInit = 0x800A0A38; // type:func -GameState_GetSize = 0x800A0A44; // type:func -GameState_IsRunning = 0x800A0A50; // type:func -GameState_GetArenaSize = 0x800A0A5C; // type:func -GameAlloc_Log = 0x800A0A80; // type:func -GameAlloc_Malloc = 0x800A0AA0; // type:func -GameAlloc_Free = 0x800A0B0C; // type:func -GameAlloc_Cleanup = 0x800A0B58; // type:func -GameAlloc_Init = 0x800A0BA8; // type:func -Graph_InitTHGA = 0x800A0BC0; // type:func -Graph_GetNextGameState = 0x800A0CD8; // type:func -Graph_Init = 0x800A0D88; // type:func -Graph_Destroy = 0x800A0DF8; // type:func -Graph_TaskSet00 = 0x800A0E04; // type:func -Graph_Update = 0x800A1148; // type:func -Graph_ThreadEntry = 0x800A13FC; // type:func -Graph_Alloc = 0x800A14F4; // type:func -Graph_Alloc2 = 0x800A1528; // type:func -Gfx_Open = 0x800A1560; // type:func -Gfx_Close = 0x800A156C; // type:func -Gfx_Alloc = 0x800A1584; // type:func -ListAlloc_Init = 0x800A15C0; // type:func -ListAlloc_Alloc = 0x800A15D4; // type:func -ListAlloc_Free = 0x800A1640; // type:func -ListAlloc_FreeAll = 0x800A16C0; // type:func -Main = 0x800A1710; // type:func -PadMgr_AcquireSerialEventQueue = 0x800A1A70; // type:func -PadMgr_ReleaseSerialEventQueue = 0x800A1AA0; // type:func -PadMgr_LockPadData = 0x800A1AC8; // type:func -PadMgr_UnlockPadData = 0x800A1AF4; // type:func -PadMgr_UpdateRumble = 0x800A1B20; // type:func -PadMgr_RumbleStop = 0x800A1D70; // type:func -PadMgr_RumbleReset = 0x800A1E08; // type:func -PadMgr_RumbleSetSingle = 0x800A1E18; // type:func -PadMgr_RumbleSet = 0x800A1E30; // type:func -PadMgr_UpdateInputs = 0x800A1E60; // type:func -PadMgr_HandleRetrace = 0x800A2040; // type:func -PadMgr_HandlePreNMI = 0x800A21D8; // type:func -PadMgr_RequestPadData = 0x800A21FC; // type:func -PadMgr_ThreadEntry = 0x800A2378; // type:func -PadMgr_Init = 0x800A2474; // type:func -Sched_SwapFrameBufferImpl = 0x800A2580; // type:func -Sched_SwapFrameBuffer = 0x800A25F0; // type:func -Sched_HandlePreNMI = 0x800A2640; // type:func -Sched_HandleNMI = 0x800A264C; // type:func -Sched_QueueTask = 0x800A2670; // type:func -Sched_Yield = 0x800A26DC; // type:func -Sched_GfxTaskFramebufferValid = 0x800A2710; // type:func -Sched_Schedule = 0x800A27D4; // type:func -Sched_SetNextFramebufferFromTask = 0x800A2908; // type:func -Sched_TaskComplete = 0x800A2954; // type:func -Sched_RunTask = 0x800A29CC; // type:func -Sched_HandleNotification = 0x800A2B30; // type:func -Sched_HandleRetrace = 0x800A2C20; // type:func -Sched_HandleRSPDone = 0x800A2CF8; // type:func -Sched_HandleRDPDone = 0x800A2F0C; // type:func -Sched_Notify = 0x800A2FD4; // type:func -Sched_ThreadEntry = 0x800A2FF8; // type:func -Sched_Init = 0x800A312C; // type:func -SpeedMeter_InitImpl = 0x800A3200; // type:func -SpeedMeter_Init = 0x800A3210; // type:func -SpeedMeter_Destroy = 0x800A3234; // type:func -SpeedMeter_DrawTimeEntries = 0x800A3240; // type:func -SpeedMeter_InitAllocEntry = 0x800A3704; // type:func -SpeedMeter_DrawAllocEntry = 0x800A3748; // type:func -SpeedMeter_DrawAllocEntries = 0x800A399C; // type:func -SysCfb_Init = 0x800A3C40; // type:func -SysCfb_Reset = 0x800A3D08; // type:func -SysCfb_GetFbPtr = 0x800A3D28; // type:func -SysCfb_GetFbEnd = 0x800A3D50; // type:func -Math_FactorialF = 0x800A3D60; // type:func -Math_Factorial = 0x800A3E60; // type:func -Math_PowF = 0x800A3F24; // type:func -Math_SinF = 0x800A3F4C; // type:func -Math_CosF = 0x800A3FA0; // type:func -Math3D_PlaneVsLineSegClosestPoint = 0x800A4000; // type:func -Math3D_LineVsLineClosestTwoPoints = 0x800A4120; // type:func -Math3D_LineClosestToPoint = 0x800A43CC; // type:func -Math3D_FindPointOnPlaneIntersect = 0x800A44B8; // type:func -Math3D_PlaneVsPlaneNewLine = 0x800A4518; // type:func -Math3D_PlaneVsPlaneVsLineClosestPoint = 0x800A46F8; // type:func -Math3D_PointOnInfiniteLine = 0x800A4774; // type:func -Math3D_LineSplitRatio = 0x800A47C0; // type:func -Math3D_Cos = 0x800A480C; // type:func -Math3D_CosOut = 0x800A4830; // type:func -Math3D_Vec3fReflect = 0x800A48E8; // type:func -Math3D_PointInSquare2D = 0x800A49BC; // type:func -Math3D_CirSquareVsTriSquare = 0x800A4A20; // type:func -Math3D_SphCubeVsTriCube = 0x800A4B60; // type:func -Math3D_Dist1DSq = 0x800A4D84; // type:func -Math3D_Dist1D = 0x800A4D9C; // type:func -Math3D_Dist2DSq = 0x800A4DC0; // type:func -Math3D_Dist2D = 0x800A4E04; // type:func -Math3D_Vec3fMagnitudeSq = 0x800A4E34; // type:func -Math3D_Vec3fMagnitude = 0x800A4E60; // type:func -Math3D_Vec3fDistSq = 0x800A4E88; // type:func -Math3D_Vec3f_DistXYZ = 0x800A4EB0; // type:func -Math3D_DistXYZ16toF = 0x800A4ED0; // type:func -Math3D_Vec3fDiff_CrossZ = 0x800A4F48; // type:func -Math3D_Vec3fDiff_CrossX = 0x800A4F88; // type:func -Math3D_Vec3fDiff_CrossY = 0x800A4FC8; // type:func -Math3D_Vec3f_Cross = 0x800A5008; // type:func -Math3D_SurfaceNorm = 0x800A507C; // type:func -Math3D_PointRelativeToCubeFaces = 0x800A50E4; // type:func -Math3D_PointRelativeToCubeEdges = 0x800A5190; // type:func -Math3D_PointRelativeToCubeVertices = 0x800A5340; // type:func -Math3D_LineVsCube = 0x800A54BC; // type:func -Math3D_LineVsCubeShort = 0x800A5F34; // type:func -Math3D_RotateXZPlane = 0x800A60A0; // type:func -Math3D_DefPlane = 0x800A612C; // type:func -Math3D_Planef = 0x800A6240; // type:func -Math3D_Plane = 0x800A6280; // type:func -Math3D_UDistPlaneToPos = 0x800A62BC; // type:func -Math3D_DistPlaneToPos = 0x800A62F4; // type:func -Math3D_TriChkPointParaYImpl = 0x800A6378; // type:func -Math3D_TriChkPointParaYDeterminate = 0x800A6694; // type:func -Math3D_TriChkPointParaYSlopedY = 0x800A66DC; // type:func -Math3D_TriChkPointParaYIntersectDist = 0x800A672C; // type:func -Math3D_TriChkPointParaYIntersectInsideTri = 0x800A67DC; // type:func -Math3D_TriChkPointParaY = 0x800A6888; // type:func -Math3D_TriChkLineSegParaYIntersect = 0x800A6904; // type:func -Math3D_TriChkPointParaYDist = 0x800A6A78; // type:func -Math3D_TriChkPointParaXImpl = 0x800A6AEC; // type:func -Math3D_TriChkPointParaXDeterminate = 0x800A6E08; // type:func -Math3D_TriChkPointParaXIntersect = 0x800A6E50; // type:func -Math3D_TriChkPointParaX = 0x800A6F04; // type:func -Math3D_TriChkLineSegParaXIntersect = 0x800A6F80; // type:func -Math3D_TriChkPointParaXDist = 0x800A7108; // type:func -Math3D_TriChkPointParaZImpl = 0x800A717C; // type:func -Math3D_TriChkPointParaZDeterminate = 0x800A74C4; // type:func -Math3D_TriChkPointParaZIntersect = 0x800A750C; // type:func -Math3D_TriChkPointParaZ = 0x800A75C0; // type:func -Math3D_TriChkLineSegParaZIntersect = 0x800A763C; // type:func -Math3D_TriChkLineSegParaZDist = 0x800A77C8; // type:func -Math3D_LineSegFindPlaneIntersect = 0x800A783C; // type:func -Math3D_LineSegVsPlane = 0x800A7918; // type:func -Math3D_TriLineIntersect = 0x800A7A20; // type:func -Math3D_TriNorm = 0x800A7B84; // type:func -Math3D_PointInSph = 0x800A7C34; // type:func -Math3D_PointDistSqToLine2D = 0x800A7C84; // type:func -Math3D_LineVsSph = 0x800A7DCC; // type:func -Math3D_GetSphVsTriIntersectPoint = 0x800A7FD4; // type:func -Math3D_TriVsSphIntersect = 0x800A8114; // type:func -Math3D_PointInCyl = 0x800A8534; // type:func -Math3D_CylVsLineSeg = 0x800A85F0; // type:func -Math3D_CylTriVsIntersect = 0x800A8FB8; // type:func -Math3D_CylVsTri = 0x800A9438; // type:func -Math3D_SphVsSph = 0x800A9458; // type:func -Math3D_SphVsSphOverlap = 0x800A9478; // type:func -Math3D_SphVsSphOverlapCenterDist = 0x800A9498; // type:func -Math3D_SphVsCylOverlap = 0x800A9570; // type:func -Math3D_SphVsCylOverlapCenterDist = 0x800A9590; // type:func -Math3D_CylVsCylOverlap = 0x800A9700; // type:func -Math3D_CylVsCylOverlapCenterDist = 0x800A9720; // type:func -Math3D_TriVsTriIntersect = 0x800A98F0; // type:func -Math3D_XZInSphere = 0x800A9C70; // type:func -Math3D_XYInSphere = 0x800A9CE4; // type:func -Math3D_YZInSphere = 0x800A9D58; // type:func -Math_GetAtan2Tbl = 0x800A9DD0; // type:func -Math_Atan2S = 0x800A9E48; // type:func -Math_Atan2F = 0x800A9FC0; // type:func -Matrix_Init = 0x800AA000; // type:func -Matrix_Push = 0x800AA03C; // type:func -Matrix_Pop = 0x800AA074; // type:func -Matrix_Get = 0x800AA090; // type:func -Matrix_Put = 0x800AA0B4; // type:func -Matrix_GetCurrent = 0x800AA0DC; // type:func -Matrix_Mult = 0x800AA0EC; // type:func -Matrix_Translate = 0x800AA144; // type:func -Matrix_Scale = 0x800AA24C; // type:func -Matrix_RotateX = 0x800AA330; // type:func -Matrix_RotateY = 0x800AA4E4; // type:func -Matrix_RotateZ = 0x800AA69C; // type:func -Matrix_RotateZYX = 0x800AA850; // type:func -Matrix_TranslateRotateZYX = 0x800AAB0C; // type:func -Matrix_SetTranslateRotateYXZ = 0x800AAE60; // type:func -Matrix_MtxFToMtx = 0x800AB00C; // type:func -Matrix_ToMtx = 0x800AB228; // type:func -Matrix_NewMtx = 0x800AB250; // type:func -Matrix_MtxFToNewMtx = 0x800AB27C; // type:func -Matrix_MultVec3f = 0x800AB2A8; // type:func -Matrix_MtxFCopy = 0x800AB360; // type:func -Matrix_MtxToMtxF = 0x800AB468; // type:func -Matrix_MultVec3fExt = 0x800AB6BC; // type:func -Matrix_Transpose = 0x800AB76C; // type:func -Matrix_ReplaceRotation = 0x800AB7A4; // type:func -Matrix_MtxFToYXZRotS = 0x800AB8A0; // type:func -Matrix_MtxFToZYXRotS = 0x800ABA38; // type:func -Matrix_RotateAxis = 0x800ABBD0; // type:func -Matrix_SetTranslateUniformScaleMtxF = 0x800AC038; // type:func -Matrix_SetTranslateUniformScaleMtx = 0x800AC0A0; // type:func -Matrix_SetTranslateUniformScaleMtx2 = 0x800AC0F0; // type:func -Matrix_SetTranslateScaleMtx1 = 0x800AC1E0; // type:func -Matrix_SetTranslateScaleMtx2 = 0x800AC300; // type:func -SysUcode_GetUCodeBoot = 0x800AC400; // type:func -SysUcode_GetUCodeBootSize = 0x800AC410; // type:func -SysUcode_GetUCode = 0x800AC42C; // type:func -SysUcode_GetUCodeData = 0x800AC43C; // type:func -RumbleMgr_Update = 0x800AC450; // type:func -RumbleMgr_Init = 0x800AC760; // type:func -RumbleMgr_Destroy = 0x800AC798; // type:func -func_800D31A0 = 0x800AC7B0; // type:func -IrqMgr_AddClient = 0x800AC7E0; // type:func -IrqMgr_RemoveClient = 0x800AC86C; // type:func -IrqMgr_SendMesgToClients = 0x800AC8F8; // type:func -IrqMgr_JamMesgToClients = 0x800AC95C; // type:func -IrqMgr_HandlePreNMI = 0x800AC9C0; // type:func -IrqMgr_CheckStacks = 0x800ACA58; // type:func -IrqMgr_HandlePreNMI450 = 0x800ACA78; // type:func -IrqMgr_HandlePreNMI480 = 0x800ACAF4; // type:func -IrqMgr_HandlePreNMI500 = 0x800ACB88; // type:func -IrqMgr_HandleRetrace = 0x800ACBAC; // type:func -IrqMgr_ThreadEntry = 0x800ACC64; // type:func -IrqMgr_Init = 0x800ACD38; // type:func -Fault_SleepImpl = 0x800ACE00; // type:func -Fault_ClientProcessThread = 0x800ACE70; // type:func -Fault_ClientRunTask = 0x800ACEE4; // type:func -Fault_ProcessClient = 0x800AD068; // type:func -Fault_AddClient = 0x800AD0BC; // type:func -Fault_RemoveClient = 0x800AD1A0; // type:func -Fault_AddAddrConvClient = 0x800AD298; // type:func -Fault_RemoveAddrConvClient = 0x800AD370; // type:func -Fault_ConvertAddress = 0x800AD468; // type:func -Fault_Sleep = 0x800AD51C; // type:func -Fault_PadCallback = 0x800AD558; // type:func -Fault_UpdatePadImpl = 0x800AD594; // type:func -Fault_WaitForInputImpl = 0x800AD5E0; // type:func -Fault_WaitForInput = 0x800AD72C; // type:func -Fault_DrawRec = 0x800AD778; // type:func -Fault_FillScreenBlack = 0x800AD7D8; // type:func -Fault_FillScreenRed = 0x800AD82C; // type:func -Fault_DrawCornerRec = 0x800AD880; // type:func -Fault_PrintFReg = 0x800AD8D4; // type:func -Fault_LogFReg = 0x800AD980; // type:func -Fault_PrintFPCSR = 0x800ADA30; // type:func -Fault_LogFPCSR = 0x800ADAD4; // type:func -Fault_PrintThreadContext = 0x800ADB6C; // type:func -Fault_LogThreadContext = 0x800ADE88; // type:func -Fault_FindFaultedThread = 0x800AE184; // type:func -Fault_Wait5Seconds = 0x800AE20C; // type:func -Fault_WaitForButtonCombo = 0x800AE29C; // type:func -Fault_DrawMemDumpContents = 0x800AE568; // type:func -Fault_DrawMemDump = 0x800AE6D4; // type:func -Fault_WalkStack = 0x800AE8D8; // type:func -Fault_DrawStackTrace = 0x800AEA68; // type:func -Fault_LogStackTrace = 0x800AEBE8; // type:func -Fault_ResumeThread = 0x800AED58; // type:func -Fault_DisplayFrameBuffer = 0x800AEDD4; // type:func -Fault_ProcessClients = 0x800AEE94; // type:func -Fault_UpdatePad = 0x800AEF74; // type:func -Fault_ThreadEntry = 0x800AEFB0; // type:func -Fault_SetFrameBuffer = 0x800AF310; // type:func -Fault_Init = 0x800AF364; // type:func -Fault_HungupFaultClient = 0x800AF498; // type:func -Fault_AddHungupAndCrashImpl = 0x800AF594; // type:func -Fault_AddHungupAndCrash = 0x800AF5EC; // type:func -FaultDrawer_SetOsSyncPrintfEnabled = 0x800AF650; // type:func -FaultDrawer_DrawRecImpl = 0x800AF660; // type:func -FaultDrawer_DrawChar = 0x800AF77C; // type:func -FaultDrawer_ColorToPrintColor = 0x800AF8EC; // type:func -FaultDrawer_UpdatePrintColor = 0x800AF99C; // type:func -FaultDrawer_SetForeColor = 0x800AFA3C; // type:func -FaultDrawer_SetBackColor = 0x800AFA84; // type:func -FaultDrawer_SetFontColor = 0x800AFACC; // type:func -FaultDrawer_SetCharPad = 0x800AFB14; // type:func -FaultDrawer_SetCursor = 0x800AFB44; // type:func -FaultDrawer_FillScreen = 0x800AFC3C; // type:func -FaultDrawer_PrintCallback = 0x800AFCCC; // type:func -FaultDrawer_VPrintf = 0x800AFED8; // type:func -FaultDrawer_Printf = 0x800AFF28; // type:func -FaultDrawer_DrawText = 0x800AFF78; // type:func -FaultDrawer_SetDrawerFB = 0x800AFFC8; // type:func -FaultDrawer_SetInputCallback = 0x800AFFF4; // type:func -FaultDrawer_WritebackFBDCache = 0x800B0004; // type:func -FaultDrawer_Init = 0x800B0060; // type:func -Kanji_OffsetFromShiftJIS = 0x800B00D0; // type:func -sNonKanjiIndices = 0x800B0168; // type:func -AudioSynth_InitNextRingBuf = 0x800B0BC0; // type:func -func_800DB03C = 0x800B0F3C; // type:func -AudioSynth_Update = 0x800B0FC4; // type:func -func_800DB2C0 = 0x800B11C0; // type:func -AudioSynth_LoadRingBuffer1AtTemp = 0x800B1230; // type:func -AudioSynth_SaveRingBuffer1AtTemp = 0x800B12D8; // type:func -AudioSynth_LeakReverb = 0x800B1380; // type:func -func_800DB4E4 = 0x800B13E4; // type:func -func_800DB680 = 0x800B1580; // type:func -func_800DB828 = 0x800B1728; // type:func -AudioSynth_FilterReverb = 0x800B1940; // type:func -AudioSynth_MaybeMixRingBuffer1 = 0x800B19E8; // type:func -func_800DBB94 = 0x800B1A94; // type:func -AudioSynth_ClearBuffer = 0x800B1A9C; // type:func -func_800DBBBC = 0x800B1ABC; // type:func -func_800DBBC4 = 0x800B1AC4; // type:func -func_800DBBCC = 0x800B1ACC; // type:func -AudioSynth_Mix = 0x800B1AD4; // type:func -func_800DBC08 = 0x800B1B08; // type:func -func_800DBC10 = 0x800B1B10; // type:func -func_800DBC18 = 0x800B1B18; // type:func -AudioSynth_SetBuffer = 0x800B1B20; // type:func -func_800DBC54 = 0x800B1B54; // type:func -func_800DBC5C = 0x800B1B5C; // type:func -AudioSynth_DMemMove = 0x800B1B64; // type:func -func_800DBC90 = 0x800B1B90; // type:func -func_800DBC98 = 0x800B1B98; // type:func -func_800DBCA0 = 0x800B1BA0; // type:func -func_800DBCA8 = 0x800B1BA8; // type:func -AudioSynth_InterL = 0x800B1BB0; // type:func -AudioSynth_EnvSetup1 = 0x800B1BD4; // type:func -func_800DBD08 = 0x800B1C08; // type:func -AudioSynth_LoadBuffer = 0x800B1C10; // type:func -AudioSynth_SaveBuffer = 0x800B1C38; // type:func -AudioSynth_EnvSetup2 = 0x800B1C60; // type:func -func_800DBD7C = 0x800B1C7C; // type:func -func_800DBD84 = 0x800B1C84; // type:func -func_800DBD8C = 0x800B1C8C; // type:func -AudioSynth_S8Dec = 0x800B1C94; // type:func -AudioSynth_HiLoGain = 0x800B1CB0; // type:func -AudioSynth_UnkCmd19 = 0x800B1CE4; // type:func -func_800DBE18 = 0x800B1D18; // type:func -func_800DBE20 = 0x800B1D20; // type:func -func_800DBE28 = 0x800B1D28; // type:func -func_800DBE30 = 0x800B1D30; // type:func -AudioSynth_UnkCmd3 = 0x800B1D38; // type:func -func_800DBE5C = 0x800B1D5C; // type:func -func_800DBE64 = 0x800B1D64; // type:func -func_800DBE6C = 0x800B1D6C; // type:func -AudioSynth_LoadFilterBuffer = 0x800B1D74; // type:func -AudioSynth_LoadFilterSize = 0x800B1D98; // type:func -AudioSynth_LoadRingBuffer1 = 0x800B1DB0; // type:func -AudioSynth_LoadRingBuffer2 = 0x800B1E5C; // type:func -AudioSynth_LoadRingBufferPart = 0x800B1F08; // type:func -AudioSynth_SaveRingBufferPart = 0x800B1F74; // type:func -AudioSynth_SaveBufferOffset = 0x800B1FE0; // type:func -AudioSynth_MaybeLoadRingBuffer2 = 0x800B2024; // type:func -AudioSynth_LoadReverbSamples = 0x800B2064; // type:func -AudioSynth_SaveReverbSamples = 0x800B20D8; // type:func -AudioSynth_SaveRingBuffer2 = 0x800B21DC; // type:func -AudioSynth_DoOneAudioUpdate = 0x800B2284; // type:func -AudioSynth_ProcessNote = 0x800B2810; // type:func -AudioSynth_FinalResample = 0x800B352C; // type:func -AudioSynth_ProcessEnvelope = 0x800B35CC; // type:func -AudioSynth_LoadWaveSamples = 0x800B38F4; // type:func -AudioSynth_ApplyHaasEffect = 0x800B3A64; // type:func -AudioHeap_CalculateAdsrDecay = 0x800B3D20; // type:func -AudioHeap_InitAdsrDecayTable = 0x800B3D3C; // type:func -AudioHeap_ResetLoadStatus = 0x800B3E80; // type:func -AudioHeap_DiscardFont = 0x800B3F48; // type:func -AudioHeap_ReleaseNotesForFont = 0x800B402C; // type:func -AudioHeap_DiscardSequence = 0x800B40B4; // type:func -AudioHeap_WritebackDCache = 0x800B4138; // type:func -AudioHeap_AllocZeroedAttemptExternal = 0x800B4158; // type:func -AudioHeap_AllocAttemptExternal = 0x800B41B0; // type:func -AudioHeap_AllocDmaMemory = 0x800B4208; // type:func -AudioHeap_AllocDmaMemoryZeroed = 0x800B4244; // type:func -AudioHeap_AllocZeroed = 0x800B4280; // type:func -AudioHeap_Alloc = 0x800B42DC; // type:func -AudioHeap_InitPool = 0x800B4334; // type:func -AudioHeap_InitPersistentCache = 0x800B435C; // type:func -AudioHeap_InitTemporaryCache = 0x800B4370; // type:func -AudioHeap_ResetPool = 0x800B43A0; // type:func -AudioHeap_PopPersistentCache = 0x800B43B0; // type:func -AudioHeap_InitMainPools = 0x800B44F0; // type:func -AudioHeap_InitSessionPools = 0x800B4550; // type:func -AudioHeap_InitCachePools = 0x800B45D4; // type:func -AudioHeap_InitPersistentPoolsAndCaches = 0x800B4658; // type:func -AudioHeap_InitTemporaryPoolsAndCaches = 0x800B471C; // type:func -AudioHeap_AllocCached = 0x800B47E0; // type:func -AudioHeap_SearchCaches = 0x800B4F74; // type:func -AudioHeap_SearchRegularCaches = 0x800B4FCC; // type:func -func_800DF1D8 = 0x800B50D8; // type:func -AudioHeap_ClearFilter = 0x800B54AC; // type:func -AudioHeap_LoadLowPassFilter = 0x800B54DC; // type:func -AudioHeap_LoadHighPassFilter = 0x800B5530; // type:func -AudioHeap_LoadFilter = 0x800B5588; // type:func -AudioHeap_UpdateReverb = 0x800B56BC; // type:func -AudioHeap_UpdateReverbs = 0x800B56C4; // type:func -AudioHeap_ClearCurrentAiBuffer = 0x800B5788; // type:func -AudioHeap_ResetStep = 0x800B57F4; // type:func -AudioHeap_Init = 0x800B5AF8; // type:func -AudioHeap_SearchPermanentCache = 0x800B63E8; // type:func -AudioHeap_AllocPermanent = 0x800B6440; // type:func -AudioHeap_AllocSampleCache = 0x800B64C4; // type:func -AudioHeap_InitSampleCaches = 0x800B6534; // type:func -AudioHeap_AllocTemporarySampleCacheEntry = 0x800B65CC; // type:func -AudioHeap_UnapplySampleCacheForFont = 0x800B6864; // type:func -AudioHeap_DiscardSampleCacheEntry = 0x800B69D8; // type:func -AudioHeap_UnapplySampleCache = 0x800B6AB4; // type:func -AudioHeap_AllocPersistentSampleCacheEntry = 0x800B6AF8; // type:func -AudioHeap_DiscardSampleCacheForFont = 0x800B6B80; // type:func -AudioHeap_DiscardSampleCaches = 0x800B6BBC; // type:func -AudioHeap_ChangeStorage = 0x800B6D0C; // type:func -AudioHeap_DiscardSampleBank = 0x800B6D6C; // type:func -AudioHeap_ApplySampleBankCache = 0x800B6D90; // type:func -AudioHeap_ApplySampleBankCacheInternal = 0x800B6DB4; // type:func -AudioHeap_DiscardSampleBanks = 0x800B7048; // type:func -AudioLoad_DecreaseSampleDmaTtls = 0x800B70F0; // type:func -AudioLoad_DmaSampleData = 0x800B71DC; // type:func -AudioLoad_InitSampleDmaBuffers = 0x800B7518; // type:func -AudioLoad_IsFontLoadComplete = 0x800B77B0; // type:func -AudioLoad_IsSeqLoadComplete = 0x800B7828; // type:func -AudioLoad_IsSampleLoadComplete = 0x800B78A0; // type:func -AudioLoad_SetFontLoadStatus = 0x800B7918; // type:func -AudioLoad_SetSeqLoadStatus = 0x800B7948; // type:func -AudioLoad_SetSampleFontLoadStatusAndApplyCaches = 0x800B7978; // type:func -AudioLoad_SetSampleFontLoadStatus = 0x800B79D8; // type:func -AudioLoad_InitTable = 0x800B7A08; // type:func -AudioLoad_SyncLoadSeqFonts = 0x800B7A68; // type:func -AudioLoad_SyncLoadSeqParts = 0x800B7B18; // type:func -AudioLoad_SyncLoadSample = 0x800B7B78; // type:func -AudioLoad_SyncLoadInstrument = 0x800B7C64; // type:func -AudioLoad_AsyncLoad = 0x800B7D34; // type:func -AudioLoad_AsyncLoadSeq = 0x800B7D6C; // type:func -AudioLoad_AsyncLoadSampleBank = 0x800B7DB0; // type:func -AudioLoad_AsyncLoadFont = 0x800B7DF4; // type:func -AudioLoad_GetFontsForSequence = 0x800B7E38; // type:func -AudioLoad_DiscardSeqFonts = 0x800B7E7C; // type:func -AudioLoad_DiscardFont = 0x800B7F2C; // type:func -AudioLoad_SyncInitSeqPlayer = 0x800B7FD4; // type:func -AudioLoad_SyncInitSeqPlayerSkipTicks = 0x800B8024; // type:func -AudioLoad_SyncInitSeqPlayerInternal = 0x800B807C; // type:func -AudioLoad_SyncLoadSeq = 0x800B81C4; // type:func -AudioLoad_GetSampleBank = 0x800B8218; // type:func -AudioLoad_TrySyncLoadSampleBank = 0x800B8238; // type:func -AudioLoad_SyncLoadFont = 0x800B8354; // type:func -AudioLoad_SyncLoad = 0x800B8458; // type:func -AudioLoad_GetRealTableIndex = 0x800B8668; // type:func -AudioLoad_SearchCaches = 0x800B86A4; // type:func -AudioLoad_GetLoadTable = 0x800B86F8; // type:func -AudioLoad_RelocateFont = 0x800B873C; // type:func -AudioLoad_SyncDma = 0x800B89A8; // type:func -AudioLoad_SyncDmaUnkMedium = 0x800B8ACC; // type:func -AudioLoad_Dma = 0x800B8AE0; // type:func -AudioLoad_Unused1 = 0x800B8BB8; // type:func -AudioLoad_SyncLoadSimple = 0x800B8BC0; // type:func -AudioLoad_AsyncLoadInner = 0x800B8BE0; // type:func -AudioLoad_ProcessLoads = 0x800B8EEC; // type:func -AudioLoad_SetDmaHandler = 0x800B8F1C; // type:func -AudioLoad_SetUnusedHandler = 0x800B8F28; // type:func -AudioLoad_InitSoundFont = 0x800B8F34; // type:func -AudioLoad_Init = 0x800B8F94; // type:func -AudioLoad_InitSlowLoads = 0x800B9300; // type:func -AudioLoad_SlowLoadSample = 0x800B9314; // type:func -AudioLoad_GetFontSample = 0x800B94E0; // type:func -AudioLoad_Unused2 = 0x800B9570; // type:func -AudioLoad_FinishSlowLoad = 0x800B9578; // type:func -AudioLoad_ProcessSlowLoads = 0x800B95EC; // type:func -AudioLoad_DmaSlowCopy = 0x800B9774; // type:func -AudioLoad_DmaSlowCopyUnkMedium = 0x800B97F8; // type:func -AudioLoad_SlowLoadSeq = 0x800B980C; // type:func -AudioLoad_InitAsyncLoads = 0x800B9914; // type:func -AudioLoad_StartAsyncLoadUnkMedium = 0x800B9944; // type:func -AudioLoad_StartAsyncLoad = 0x800B99C8; // type:func -AudioLoad_ProcessAsyncLoads = 0x800B9AEC; // type:func -AudioLoad_ProcessAsyncLoadUnkMedium = 0x800B9C10; // type:func -AudioLoad_FinishAsyncLoad = 0x800B9C1C; // type:func -AudioLoad_ProcessAsyncLoad = 0x800B9D58; // type:func -AudioLoad_AsyncDma = 0x800B9EB4; // type:func -AudioLoad_AsyncDmaUnkMedium = 0x800B9F44; // type:func -AudioLoad_RelocateSample = 0x800B9F58; // type:func -AudioLoad_RelocateFontAndPreloadSamples = 0x800BA098; // type:func -AudioLoad_ProcessSamplePreloads = 0x800BA490; // type:func -AudioLoad_AddToSampleSet = 0x800BA644; // type:func -AudioLoad_GetSamplesForFont = 0x800BA68C; // type:func -AudioLoad_AddUsedSample = 0x800BA7C0; // type:func -AudioLoad_PreloadSamplesForFont = 0x800BA818; // type:func -AudioLoad_LoadPermanentSamples = 0x800BAC94; // type:func -AudioLoad_Unused3 = 0x800BADD4; // type:func -AudioLoad_Unused4 = 0x800BADDC; // type:func -AudioLoad_Unused5 = 0x800BADE4; // type:func -AudioLoad_ScriptLoad = 0x800BADEC; // type:func -AudioLoad_ProcessScriptLoads = 0x800BAE58; // type:func -AudioLoad_InitScriptLoads = 0x800BAEB0; // type:func -AudioThread_Update = 0x800BAEE0; // type:func -AudioThread_UpdateImpl = 0x800BAF00; // type:func -AudioThread_ProcessGlobalCmd = 0x800BB484; // type:func -AudioThread_SetFadeOutTimer = 0x800BB858; // type:func -AudioThread_SetFadeInTimer = 0x800BB8AC; // type:func -AudioThread_InitMesgQueuesImpl = 0x800BB8F4; // type:func -AudioThread_QueueCmd = 0x800BB98C; // type:func -AudioThread_QueueCmdF32 = 0x800BB9D8; // type:func -AudioThread_QueueCmdS32 = 0x800BB9FC; // type:func -AudioThread_QueueCmdS8 = 0x800BBA20; // type:func -AudioThread_QueueCmdU16 = 0x800BBA50; // type:func -AudioThread_ScheduleProcessCmds = 0x800BBA80; // type:func -AudioThread_ResetCmdQueue = 0x800BBB10; // type:func -AudioThread_ProcessCmd = 0x800BBB28; // type:func -AudioThread_ProcessCmds = 0x800BBC6C; // type:func -func_800E5E20 = 0x800BBD20; // type:func -AudioThread_GetFontsForSequence = 0x800BBD84; // type:func -Audio_GetSampleBankIdsOfFont = 0x800BBDA4; // type:func -func_800E5EDC = 0x800BBDDC; // type:func -func_800E5F34 = 0x800BBE34; // type:func -AudioThread_ResetAudioHeap = 0x800BBE88; // type:func -AudioThread_PreNMIInternal = 0x800BBF24; // type:func -AudioThread_GetChannelIO = 0x800BBF70; // type:func -AudioThread_GetSeqPlayerIO = 0x800BBFC4; // type:func -AudioThread_InitExternalPool = 0x800BBFEC; // type:func -AudioThread_ResetExternalPool = 0x800BC01C; // type:func -AudioThread_ProcessSeqPlayerCmd = 0x800BC028; // type:func -AudioThread_ProcessChannelCmd = 0x800BC200; // type:func -AudioThread_Noop1Cmd = 0x800BC3B0; // type:func -AudioThread_Noop1CmdZeroed = 0x800BC3F8; // type:func -AudioThread_Noop2Cmd = 0x800BC41C; // type:func -AudioThread_WaitForAudioTask = 0x800BC450; // type:func -func_800E6590 = 0x800BC490; // type:func -func_800E6680 = 0x800BC580; // type:func -func_800E66A0 = 0x800BC5A0; // type:func -func_800E66C0 = 0x800BC5C0; // type:func -AudioThread_NextRandom = 0x800BC6C0; // type:func -AudioThread_InitMesgQueues = 0x800BC718; // type:func -Audio_InvalDCache = 0x800BC740; // type:func -Audio_WritebackDCache = 0x800BC780; // type:func -osAiSetNextBuffer = 0x800BC7C0; // type:func -Audio_InitNoteSub = 0x800BC840; // type:func -Audio_NoteSetResamplingRate = 0x800BCCB8; // type:func -Audio_NoteInit = 0x800BCD68; // type:func -Audio_NoteDisable = 0x800BCE28; // type:func -Audio_ProcessNotes = 0x800BCE8C; // type:func -Audio_GetInstrumentTunedSample = 0x800BD35C; // type:func -Audio_GetInstrumentInner = 0x800BD398; // type:func -Audio_GetDrum = 0x800BD46C; // type:func -Audio_GetSoundEffect = 0x800BD550; // type:func -Audio_SetFontInstrument = 0x800BD644; // type:func -Audio_SeqLayerDecayRelease = 0x800BD788; // type:func -Audio_SeqLayerNoteDecay = 0x800BDA60; // type:func -Audio_SeqLayerNoteRelease = 0x800BDA80; // type:func -Audio_BuildSyntheticWave = 0x800BDAA0; // type:func -Audio_InitSyntheticWave = 0x800BDBA4; // type:func -Audio_InitNoteList = 0x800BDBFC; // type:func -Audio_InitNoteLists = 0x800BDC0C; // type:func -Audio_InitNoteFreeList = 0x800BDC5C; // type:func -Audio_NotePoolClear = 0x800BDD00; // type:func -Audio_NotePoolFill = 0x800BDE60; // type:func -Audio_AudioListPushFront = 0x800BDF9C; // type:func -Audio_AudioListRemove = 0x800BDFDC; // type:func -Audio_FindNodeWithPrioLessThan = 0x800BE008; // type:func -Audio_NoteInitForLayer = 0x800BE088; // type:func -func_800E82C0 = 0x800BE1C0; // type:func -Audio_NoteReleaseAndTakeOwnership = 0x800BE1F4; // type:func -Audio_AllocNoteFromDisabled = 0x800BE220; // type:func -Audio_AllocNoteFromDecaying = 0x800BE26C; // type:func -Audio_AllocNoteFromActive = 0x800BE2BC; // type:func -Audio_AllocNote = 0x800BE3B4; // type:func -Audio_NoteInitAll = 0x800BE688; // type:func -Audio_SequenceChannelProcessSound = 0x800BE7C0; // type:func -Audio_SequencePlayerProcessSound = 0x800BE988; // type:func -Audio_GetPortamentoFreqScale = 0x800BEAD4; // type:func -Audio_GetVibratoPitchChange = 0x800BEB30; // type:func -Audio_GetVibratoFreqScale = 0x800BEB68; // type:func -Audio_NoteVibratoUpdate = 0x800BEDA4; // type:func -Audio_NoteVibratoInit = 0x800BEE00; // type:func -Audio_NotePortamentoInit = 0x800BEEB8; // type:func -Audio_AdsrInit = 0x800BEEE4; // type:func -Audio_AdsrUpdate = 0x800BEF04; // type:func -AudioSeq_GetScriptControlFlowArgument = 0x800BF240; // type:func -AudioSeq_HandleScriptFlowControl = 0x800BF2A8; // type:func -AudioSeq_InitSequenceChannel = 0x800BF484; // type:func -AudioSeq_SeqChannelSetLayer = 0x800BF5D8; // type:func -AudioSeq_SeqLayerDisable = 0x800BF6FC; // type:func -AudioSeq_SeqLayerFree = 0x800BF778; // type:func -AudioSeq_SequenceChannelDisable = 0x800BF7C8; // type:func -AudioSeq_SequencePlayerSetupChannels = 0x800BF834; // type:func -AudioSeq_SequencePlayerDisableChannels = 0x800BF92C; // type:func -AudioSeq_SequenceChannelEnable = 0x800BF9AC; // type:func -AudioSeq_SequencePlayerDisableAsFinished = 0x800BFA44; // type:func -AudioSeq_SequencePlayerDisable = 0x800BFA6C; // type:func -AudioSeq_AudioListPushBack = 0x800BFB28; // type:func -AudioSeq_AudioListPopBack = 0x800BFB68; // type:func -AudioSeq_InitLayerFreelist = 0x800BFBA8; // type:func -AudioSeq_ScriptReadU8 = 0x800BFC48; // type:func -AudioSeq_ScriptReadS16 = 0x800BFC5C; // type:func -AudioSeq_ScriptReadCompressedU16 = 0x800BFC94; // type:func -AudioSeq_SeqLayerProcessScript = 0x800BFCD4; // type:func -AudioSeq_SeqLayerProcessScriptStep1 = 0x800BFDD8; // type:func -AudioSeq_SeqLayerProcessScriptStep5 = 0x800BFE64; // type:func -AudioSeq_SeqLayerProcessScriptStep2 = 0x800BFFC0; // type:func -AudioSeq_SeqLayerProcessScriptStep4 = 0x800C0340; // type:func -AudioSeq_SeqLayerProcessScriptStep3 = 0x800C09E0; // type:func -AudioSeq_SetChannelPriorities = 0x800C0DF4; // type:func -AudioSeq_GetInstrument = 0x800C0E24; // type:func -AudioSeq_SetInstrument = 0x800C0E98; // type:func -AudioSeq_SequenceChannelSetVolume = 0x800C0F44; // type:func -AudioSeq_SequenceChannelProcessScript = 0x800C0F68; // type:func -AudioSeq_SequencePlayerProcessSequence = 0x800C1C58; // type:func -AudioSeq_ProcessSequences = 0x800C2464; // type:func -AudioSeq_SkipForwardSequence = 0x800C2518; // type:func -AudioSeq_ResetSequencePlayer = 0x800C2568; // type:func -AudioSeq_InitSequencePlayerChannels = 0x800C2634; // type:func -AudioSeq_InitSequencePlayer = 0x800C270C; // type:func -AudioSeq_InitSequencePlayers = 0x800C27DC; // type:func -AudioOcarina_SetCustomButtonMapping = 0x800C2860; // type:func -AudioOcarina_ReadControllerInput = 0x800C2900; // type:func -AudioOcarina_BendPitchTwoSemitones = 0x800C2960; // type:func -AudioOcarina_GetPlayingState = 0x800C29F0; // type:func -AudioOcarina_MapNoteToButton = 0x800C2A34; // type:func -AudioOcarina_MapNotesToScarecrowButtons = 0x800C2A7C; // type:func -AudioOcarina_Start = 0x800C2B04; // type:func -AudioOcarina_CheckIfStartedSong = 0x800C2CBC; // type:func -AudioOcarina_CheckSongsWithMusicStaff = 0x800C2CF8; // type:func -AudioOcarina_CheckSongsWithoutMusicStaff = 0x800C3100; // type:func -AudioOcarina_PlayControllerInput = 0x800C3358; // type:func -AudioOcarina_EnableInput = 0x800C3748; // type:func -AudioOcarina_SetInstrument = 0x800C3758; // type:func -AudioOcarina_SetPlaybackSong = 0x800C383C; // type:func -AudioOcarina_PlaybackSong = 0x800C393C; // type:func -AudioOcarina_SetRecordingSong = 0x800C3C68; // type:func -AudioOcarina_SetRecordingState = 0x800C4070; // type:func -AudioOcarina_UpdateRecordingStaff = 0x800C419C; // type:func -AudioOcarina_UpdatePlayingStaff = 0x800C41D4; // type:func -AudioOcarina_UpdatePlaybackStaff = 0x800C4218; // type:func -AudioOcarina_GetRecordingStaff = 0x800C42C8; // type:func -AudioOcarina_GetPlayingStaff = 0x800C42D4; // type:func -AudioOcarina_GetPlaybackStaff = 0x800C42F8; // type:func -AudioOcarina_RecordSong = 0x800C4304; // type:func -AudioOcarina_MemoryGameInit = 0x800C447C; // type:func -AudioOcarina_MemoryGameNextNote = 0x800C44EC; // type:func -AudioOcarina_Update = 0x800C45F4; // type:func -AudioOcarina_PlayLongScarecrowSong = 0x800C4724; // type:func -AudioOcarina_ResetStaffs = 0x800C4830; // type:func -AudioDebug_Draw = 0x800C487C; // type:func -AudioDebug_ScrPrt = 0x800C4884; // type:func -Audio_Update = 0x800C4890; // type:func -func_800F3138 = 0x800C4934; // type:func -func_800F3140 = 0x800C493C; // type:func -func_800F314C = 0x800C4948; // type:func -Audio_ComputeSfxVolume = 0x800C4984; // type:func -Audio_ComputeSfxReverb = 0x800C4AEC; // type:func -Audio_ComputeSfxPanSigned = 0x800C4C64; // type:func -Audio_ComputeSfxFreqScale = 0x800C4DE8; // type:func -func_800F37B8 = 0x800C4FB4; // type:func -func_800F3990 = 0x800C518C; // type:func -Audio_SetSfxProperties = 0x800C5204; // type:func -Audio_ResetSfxChannelState = 0x800C56DC; // type:func -Audio_PlayCutsceneEffectsSequence = 0x800C5744; // type:func -func_800F3F84 = 0x800C578C; // type:func -func_800F4010 = 0x800C5818; // type:func -func_800F4138 = 0x800C5938; // type:func -func_800F4190 = 0x800C5990; // type:func -Audio_PlaySfxRandom = 0x800C59E0; // type:func -func_800F4254 = 0x800C5A54; // type:func -func_800F436C = 0x800C5B6C; // type:func -func_800F4414 = 0x800C5C14; // type:func -func_800F44EC = 0x800C5CEC; // type:func -func_800F4524 = 0x800C5D24; // type:func -func_800F4578 = 0x800C5D78; // type:func -func_800F45D0 = 0x800C5DD0; // type:func -Audio_PlaySfxRiver = 0x800C5E34; // type:func -Audio_PlaySfxWaterfall = 0x800C5EE0; // type:func -Audio_StepFreqLerp = 0x800C5F84; // type:func -Audio_SetBgmVolumeOffDuringFanfare = 0x800C5FBC; // type:func -Audio_SetBgmVolumeOnDuringFanfare = 0x800C5FFC; // type:func -Audio_SetMainBgmVolume = 0x800C603C; // type:func -Audio_SetGanonsTowerBgmVolumeLevel = 0x800C6070; // type:func -Audio_SetGanonsTowerBgmVolume = 0x800C611C; // type:func -Audio_LowerMainBgmVolume = 0x800C6254; // type:func -Audio_UpdateRiverSoundVolumes = 0x800C6270; // type:func -Audio_PlaySfxIncreasinglyTransposed = 0x800C6358; // type:func -Audio_ResetIncreasingTranspose = 0x800C63E8; // type:func -Audio_PlaySfxTransposed = 0x800C63F4; // type:func -func_800F4C58 = 0x800C6458; // type:func -func_800F4E30 = 0x800C6630; // type:func -Audio_ClearSariaBgm = 0x800C68CC; // type:func -Audio_ClearSariaBgmAtPos = 0x800C68EC; // type:func -Audio_SplitBgmChannels = 0x800C690C; // type:func -Audio_PlaySariaBgm = 0x800C6AA0; // type:func -Audio_ClearSariaBgm2 = 0x800C6D04; // type:func -Audio_PlayMorningSceneSequence = 0x800C6D10; // type:func -Audio_PlaySceneSequence = 0x800C6D50; // type:func -Audio_UpdateSceneSequenceResumePoint = 0x800C6EA8; // type:func -Audio_PlayWindmillBgm = 0x800C6F18; // type:func -Audio_SetMainBgmTempoFreqAfterFanfare = 0x800C6F4C; // type:func -Audio_SetFastTempoForTimedMinigame = 0x800C7118; // type:func -Audio_PlaySequenceInCutscene = 0x800C715C; // type:func -Audio_StopSequenceInCutscene = 0x800C71E8; // type:func -Audio_IsSequencePlaying = 0x800C7258; // type:func -func_800F5ACC = 0x800C72CC; // type:func -func_800F5B58 = 0x800C7340; // type:func -func_800F5BF0 = 0x800C73D8; // type:func -func_800F5C2C = 0x800C7414; // type:func -Audio_PlayFanfare = 0x800C744C; // type:func -Audio_UpdateFanfare = 0x800C74E0; // type:func -Audio_PlaySequenceWithSeqPlayerIO = 0x800C7600; // type:func -Audio_SetSequenceMode = 0x800C7678; // type:func -Audio_SetBgmEnemyVolume = 0x800C78F4; // type:func -Audio_UpdateMalonSinging = 0x800C7A48; // type:func -func_800F64E0 = 0x800C7CAC; // type:func -Audio_ToggleMalonSinging = 0x800C7D50; // type:func -Audio_SetEnvReverb = 0x800C7E8C; // type:func -Audio_SetCodeReverb = 0x800C7EA8; // type:func -func_800F6700 = 0x800C7ECC; // type:func -Audio_SetBaseFilter = 0x800C7F6C; // type:func -Audio_SetExtraFilter = 0x800C7FF4; // type:func -Audio_SetCutsceneFlag = 0x800C8088; // type:func -Audio_PlaySfxGeneralIfNotInCutscene = 0x800C80A0; // type:func -Audio_PlaySfxIfNotInCutscene = 0x800C80E8; // type:func -func_800F6964 = 0x800C8130; // type:func -Audio_StopBgmAndFanfare = 0x800C827C; // type:func -func_800F6B3C = 0x800C8308; // type:func -Audio_DisableAllSeq = 0x800C8334; // type:func -func_800F6BB8 = 0x800C8384; // type:func -func_800F6BDC = 0x800C83A8; // type:func -Audio_PreNMI = 0x800C83E0; // type:func -func_800F6C34 = 0x800C8400; // type:func -Audio_SetNatureAmbienceChannelIO = 0x800C8524; // type:func -Audio_StartNatureAmbienceSequence = 0x800C8638; // type:func -Audio_PlayNatureAmbienceSequence = 0x800C873C; // type:func -Audio_Init = 0x800C8880; // type:func -Audio_InitSound = 0x800C88A4; // type:func -func_800F7170 = 0x800C88F8; // type:func -func_800F71BC = 0x800C8944; // type:func -func_800F7208 = 0x800C8990; // type:func -Audio_SetSfxBanksMute = 0x800C89F0; // type:func -Audio_QueueSeqCmdMute = 0x800C8A48; // type:func -Audio_ClearBGMMute = 0x800C8AAC; // type:func -Audio_PlaySfxGeneral = 0x800C8B1C; // type:func -Audio_RemoveMatchingSfxRequests = 0x800C8B9C; // type:func -Audio_ProcessSfxRequest = 0x800C8D3C; // type:func -Audio_RemoveSfxBankEntry = 0x800C91D8; // type:func -Audio_ChooseActiveSfx = 0x800C9370; // type:func -Audio_PlayActiveSfx = 0x800C9AB0; // type:func -Audio_StopSfxByBank = 0x800C9DD0; // type:func -func_800F8884 = 0x800C9EB4; // type:func -Audio_StopSfxByPosAndBank = 0x800C9FD0; // type:func -Audio_StopSfxByPos = 0x800CA018; // type:func -Audio_StopSfxByPosAndId = 0x800CA074; // type:func -Audio_StopSfxByTokenAndId = 0x800CA1D0; // type:func -Audio_StopSfxById = 0x800CA334; // type:func -Audio_ProcessSfxRequests = 0x800CA46C; // type:func -Audio_SetUnusedBankLerp = 0x800CA4D0; // type:func -Audio_StepUnusedBankLerp = 0x800CA564; // type:func -func_800F8F88 = 0x800CA5B8; // type:func -Audio_IsSfxPlaying = 0x800CA624; // type:func -Audio_ResetSfx = 0x800CA68C; // type:func -Audio_StartSequence = 0x800CA850; // type:func -Audio_StopSequence = 0x800CA9D4; // type:func -Audio_ProcessSeqCmd = 0x800CAA5C; // type:func -Audio_QueueSeqCmd = 0x800CB520; // type:func -Audio_ProcessSeqCmds = 0x800CB548; // type:func -Audio_GetActiveSeqId = 0x800CB5C8; // type:func -Audio_IsSeqCmdNotQueued = 0x800CB630; // type:func -Audio_ResetSequenceRequests = 0x800CB688; // type:func -Audio_ReplaceSeqCmdSetupOpVolRestore = 0x800CB6A0; // type:func -Audio_SetVolumeScale = 0x800CB754; // type:func -Audio_UpdateActiveSequences = 0x800CB8F0; // type:func -func_800FAD34 = 0x800CC248; // type:func -Audio_ResetActiveSequences = 0x800CC30C; // type:func -Audio_ResetActiveSequencesAndVolume = 0x800CC3C8; // type:func -GfxPrint_Setup = 0x800CC470; // type:func -GfxPrint_SetColor = 0x800CC8BC; // type:func -GfxPrint_SetPosPx = 0x800CC908; // type:func -GfxPrint_SetPos = 0x800CC92C; // type:func -GfxPrint_SetBasePosPx = 0x800CC954; // type:func -GfxPrint_PrintCharImpl = 0x800CC968; // type:func -GfxPrint_PrintChar = 0x800CCDFC; // type:func -GfxPrint_PrintStringWithSize = 0x800CCFBC; // type:func -GfxPrint_PrintString = 0x800CD018; // type:func -GfxPrint_Callback = 0x800CD070; // type:func -GfxPrint_Init = 0x800CD09C; // type:func -GfxPrint_Destroy = 0x800CD124; // type:func -GfxPrint_Open = 0x800CD12C; // type:func -GfxPrint_Close = 0x800CD160; // type:func -GfxPrint_VPrintf = 0x800CD190; // type:func -GfxPrint_Printf = 0x800CD1B0; // type:func -RcpUtils_PrintRegisterStatus = 0x800CD1E0; // type:func -RcpUtils_Reset = 0x800CD208; // type:func -Overlay_AllocateAndLoad = 0x800CD240; // type:func -Overlay_Relocate = 0x800CD2A0; // type:func -Overlay_Load = 0x800CD4E0; // type:func -func_800FC800 = 0x800CD5B0; // type:func -func_800FC83C = 0x800CD5E0; // type:func -func_800FC868 = 0x800CD60C; // type:func -func_800FC8D8 = 0x800CD67C; // type:func -func_800FC948 = 0x800CD6EC; // type:func -func_800FCA18 = 0x800CD7BC; // type:func -func_800FCB34 = 0x800CD858; // type:func -SystemHeap_Init = 0x800CD8C8; // type:func -PadUtils_Init = 0x800CD8F0; // type:func -func_800FCB70 = 0x800CD910; // type:func -PadUtils_ResetPressRel = 0x800CD918; // type:func -PadUtils_CheckCurExact = 0x800CD924; // type:func -PadUtils_CheckCur = 0x800CD93C; // type:func -PadUtils_CheckPressed = 0x800CD958; // type:func -PadUtils_CheckReleased = 0x800CD974; // type:func -PadUtils_GetCurButton = 0x800CD990; // type:func -PadUtils_GetPressButton = 0x800CD998; // type:func -PadUtils_GetCurX = 0x800CD9A0; // type:func -PadUtils_GetCurY = 0x800CD9A8; // type:func -PadUtils_SetRelXY = 0x800CD9B0; // type:func -PadUtils_GetRelXImpl = 0x800CD9BC; // type:func -PadUtils_GetRelYImpl = 0x800CD9C4; // type:func -PadUtils_GetRelX = 0x800CD9CC; // type:func -PadUtils_GetRelY = 0x800CD9EC; // type:func -PadUtils_UpdateRelXY = 0x800CDA0C; // type:func -PadSetup_Init = 0x800CDAE0; // type:func -Math_FTanF = 0x800CDC20; // type:func -Math_FFloorF = 0x800CDC54; // type:func -Math_FCeilF = 0x800CDC74; // type:func -Math_FRoundF = 0x800CDC94; // type:func -Math_FTruncF = 0x800CDCB4; // type:func -Math_FNearbyIntF = 0x800CDCD4; // type:func -Math_FAtanTaylorQF = 0x800CDCF4; // type:func -Math_FAtanTaylorF = 0x800CDD40; // type:func -Math_FAtanContFracF = 0x800CDE64; // type:func -Math_FAtanF = 0x800CDFB0; // type:func -Math_FAtan2F = 0x800CDFF0; // type:func -Math_FAsinF = 0x800CE0D8; // type:func -Math_FAcosF = 0x800CE108; // type:func -floorf = 0x800CE130; // type:func -floor = 0x800CE13C; // type:func -lfloorf = 0x800CE148; // type:func -lfloor = 0x800CE158; // type:func -ceilf = 0x800CE168; // type:func -ceil = 0x800CE174; // type:func -lceilf = 0x800CE180; // type:func -lceil = 0x800CE190; // type:func -truncf = 0x800CE1A0; // type:func -trunc = 0x800CE1AC; // type:func -ltruncf = 0x800CE1B8; // type:func -ltrunc = 0x800CE1C8; // type:func -nearbyintf = 0x800CE1D8; // type:func -nearbyint = 0x800CE1E4; // type:func -lnearbyintf = 0x800CE1F0; // type:func -lnearbyint = 0x800CE200; // type:func -roundf = 0x800CE210; // type:func -round = 0x800CE22C; // type:func -lroundf = 0x800CE24C; // type:func -lround = 0x800CE26C; // type:func -SystemArena_Malloc = 0x800CE290; // type:func -SystemArena_MallocR = 0x800CE2B8; // type:func -SystemArena_Realloc = 0x800CE2E0; // type:func -SystemArena_Free = 0x800CE310; // type:func -SystemArena_Calloc = 0x800CE338; // type:func -SystemArena_GetSizes = 0x800CE38C; // type:func -SystemArena_Check = 0x800CE3C4; // type:func -SystemArena_Init = 0x800CE3E8; // type:func -SystemArena_Cleanup = 0x800CE418; // type:func -SystemArena_IsInitialized = 0x800CE43C; // type:func -Rand_Next = 0x800CE460; // type:func -Rand_Seed = 0x800CE490; // type:func -Rand_ZeroOne = 0x800CE49C; // type:func -Rand_Centered = 0x800CE4F0; // type:func -Rand_Seed_Variable = 0x800CE548; // type:func -Rand_Next_Variable = 0x800CE550; // type:func -Rand_ZeroOne_Variable = 0x800CE578; // type:func -Rand_Centered_Variable = 0x800CE5C4; // type:func -ArenaImpl_LockInit = 0x800CE620; // type:func -ArenaImpl_Lock = 0x800CE64C; // type:func -ArenaImpl_Unlock = 0x800CE674; // type:func -ArenaImpl_GetLastBlock = 0x800CE69C; // type:func -__osMallocInit = 0x800CE700; // type:func -__osMallocAddBlock = 0x800CE750; // type:func -__osMallocCleanup = 0x800CE7F0; // type:func -__osMallocIsInitialized = 0x800CE810; // type:func -__osMalloc_NoLock = 0x800CE818; // type:func -__osMalloc = 0x800CE944; // type:func -__osMallocR = 0x800CE984; // type:func -__osFree_NoLock = 0x800CEAF8; // type:func -__osFree = 0x800CEC38; // type:func -__osRealloc = 0x800CEC70; // type:func -ArenaImpl_GetSizes = 0x800CF068; // type:func -ArenaImpl_FaultClient = 0x800CF13C; // type:func -__osCheckArena = 0x800CF310; // type:func -proutSprintf = 0x800CF3D0; // type:func -vsprintf = 0x800CF3F4; // type:func -sprintf = 0x800CF444; // type:func -PrintUtils_VPrintf = 0x800CF4A0; // type:func -PrintUtils_Printf = 0x800CF4D4; // type:func -Sleep_Cycles = 0x800CF500; // type:func -Sleep_Nsec = 0x800CF56C; // type:func -Sleep_Usec = 0x800CF5BC; // type:func -Sleep_Msec = 0x800CF60C; // type:func -Sleep_Sec = 0x800CF660; // type:func -JpegUtils_ProcessQuantizationTable = 0x800CF6A0; // type:func -JpegUtils_ParseHuffmanCodesLengths = 0x800CF708; // type:func -JpegUtils_GetHuffmanCodes = 0x800CF78C; // type:func -JpegUtils_SetHuffmanTable = 0x800CF7F8; // type:func -JpegUtils_ProcessHuffmanTableImpl = 0x800CF8A0; // type:func -JpegUtils_ProcessHuffmanTable = 0x800CF95C; // type:func -JpegUtils_SetHuffmanTableOld = 0x800CFA34; // type:func -JpegUtils_ProcessHuffmanTableImplOld = 0x800CFADC; // type:func -JpegDecoder_Decode = 0x800CFBB0; // type:func -JpegDecoder_ProcessMcu = 0x800CFDD8; // type:func -JpegDecoder_ParseNextSymbol = 0x800CFF74; // type:func -JpegDecoder_ReadBits = 0x800D00B0; // type:func -guScale = 0x800D01A0; // type:func -sinf = 0x800D0250; // type:func -sins = 0x800D0410; // type:func -_VirtualToPhysicalTask = 0x800D0480; // type:func -osSpTaskLoad = 0x800D058C; // type:func -osSpTaskStartGo = 0x800D06F4; // type:func -__osMotorAccess = 0x800D0740; // type:func -_MakeMotorData = 0x800D08A8; // type:func -osMotorInit = 0x800D09B4; // type:func -__osSiCreateAccessQueue = 0x800D0B10; // type:func -__osSiGetAccess = 0x800D0B60; // type:func -__osSiRelAccess = 0x800D0BA4; // type:func -osContInit = 0x800D0BD0; // type:func -__osContGetInitData = 0x800D0D2C; // type:func -__osPackRequestData = 0x800D0DD8; // type:func -osContStartReadData = 0x800D0EB0; // type:func -osContGetReadData = 0x800D0F34; // type:func -__osPackReadData = 0x800D0FC0; // type:func -guPerspectiveF = 0x800D1090; // type:func -guPerspective = 0x800D12C0; // type:func -__osSpRawStartDma = 0x800D1320; // type:func -__osSiRawStartDma = 0x800D13B0; // type:func -osSpTaskYield = 0x800D1460; // type:func -guMtxIdentF = 0x800D1480; // type:func -guLookAtF = 0x800D14D0; // type:func -guLookAt = 0x800D1774; // type:func -osStopTimer = 0x800D17F0; // type:func -sqrtf = 0x800D18E0; // type:func -osAfterPreNMI = 0x800D18F0; // type:func -osContStartQuery = 0x800D1910; // type:func -osContGetQuery = 0x800D198C; // type:func -guLookAtHiliteF = 0x800D19B0; // type:func -guLookAtHilite = 0x800D2170; // type:func -_Printf = 0x800D2230; // type:func -_Putfld = 0x800D2878; // type:func -strchr = 0x800D2F10; // type:func -strlen = 0x800D2F50; // type:func -memcpy = 0x800D2F78; // type:func -__osSpDeviceBusy = 0x800D2FB0; // type:func -guMtxIdent = 0x800D2FE0; // type:func -guPositionF = 0x800D3030; // type:func -guPosition = 0x800D31D8; // type:func -osSpTaskYielded = 0x800D3240; // type:func -guRotateF = 0x800D32A0; // type:func -guRotate = 0x800D3424; // type:func -osAiSetFrequency = 0x800D3470; // type:func -__osGetActiveQueue = 0x800D35C0; // type:func -guNormalize = 0x800D35E0; // type:func -osDpGetStatus = 0x800D3640; // type:func -osDpSetStatus = 0x800D3650; // type:func -guOrthoF = 0x800D3660; // type:func -guOrtho = 0x800D37B4; // type:func -cosf = 0x800D3820; // type:func -coss = 0x800D3990; // type:func -osViSetEvent = 0x800D39C0; // type:func -guS2DInitBg = 0x800D3A20; // type:func -__osPfsSelectBank = 0x800D3BA0; // type:func -osContSetCh = 0x800D3C20; // type:func -osAiGetLength = 0x800D3C80; // type:func -guTranslate = 0x800D3CA0; // type:func -__osContRamWrite = 0x800D3D70; // type:func -__osPfsGetStatus = 0x800D3FC0; // type:func -__osPfsRequestOneChannel = 0x800D4090; // type:func -__osPfsGetOneChannelData = 0x800D4154; // type:func -__osSumcalc = 0x800D41F0; // type:func -__osIdCheckSum = 0x800D4264; // type:func -__osRepairPackId = 0x800D4360; // type:func -__osCheckPackId = 0x800D46B0; // type:func -__osGetId = 0x800D4814; // type:func -__osCheckId = 0x800D49C0; // type:func -__osPfsRWInode = 0x800D4A94; // type:func -__osContRamRead = 0x800D4D70; // type:func -__osContAddressCrc = 0x800D4FA0; // type:func -__osContDataCrc = 0x800D5070; // type:func -osPfsIsPlug = 0x800D5110; // type:func -__osPfsRequestData = 0x800D529C; // type:func -__osPfsGetInitData = 0x800D5350; // type:func -osSetTimer = 0x800D5400; // type:func -_Ldtob = 0x800D5590; // type:func -_Ldunscale = 0x800D5A20; // type:func -_Genld = 0x800D5AD8; // type:func -ldiv = 0x800D60A0; // type:func -lldiv = 0x800D6124; // type:func -_Litob = 0x800D6230; // type:func -__osSpGetStatus = 0x800D64D0; // type:func -__osSpSetStatus = 0x800D64E0; // type:func -osWritebackDCacheAll = 0x800D64F0; // type:func -__osGetCurrFaultedThread = 0x800D6520; // type:func -guMtxF2L = 0x800D6540; // type:func -__d_to_ll = 0x800D65B0; // type:func -__f_to_ll = 0x800D65CC; // type:func -__d_to_ull = 0x800D65E8; // type:func -__f_to_ull = 0x800D6688; // type:func -__ll_to_d = 0x800D6724; // type:func -__ll_to_f = 0x800D673C; // type:func -__ull_to_d = 0x800D6754; // type:func -__ull_to_f = 0x800D6788; // type:func -osViGetCurrentFramebuffer = 0x800D67C0; // type:func -__osSpSetPc = 0x800D6800; // type:func -sqrt = 0x800D6830; // type:func -absf = 0x800D6840; // type:func -fmodf = 0x800D6850; // type:func -__osMemset = 0x800D68A0; // type:func -__osMemmove = 0x800D68D0; // type:func -Message_ResetOcarinaNoteState = 0x800D6960; // type:func -Message_UpdateOcarinaMemoryGame = 0x800D6A5C; // type:func -Message_ShouldAdvance = 0x800D6B80; // type:func -Message_ShouldAdvanceSilent = 0x800D6C44; // type:func -Message_CloseTextbox = 0x800D6C8C; // type:func -Message_HandleChoiceSelection = 0x800D6D04; // type:func -Message_DrawTextChar = 0x800D6EE4; // type:func -Message_GrowTextbox = 0x800D7214; // type:func -Message_FindMessage = 0x800D7418; // type:func -Message_FindCreditsMessage = 0x800D757C; // type:func -Message_SetTextColor = 0x800D75F0; // type:func -Message_DrawTextboxIcon = 0x800D78A4; // type:func -Message_DrawItemIcon = 0x800D7FE8; // type:func -Message_HandleOcarina = 0x800D8334; // type:func -Message_DrawText = 0x800D8544; // type:func -Message_LoadItemIcon = 0x800D97BC; // type:func -Message_Decode = 0x800D995C; // type:func -Message_OpenText = 0x800DACDC; // type:func -Message_StartTextbox = 0x800DB248; // type:func -Message_ContinueTextbox = 0x800DB2B4; // type:func -Message_StartOcarinaImpl = 0x800DB384; // type:func -Message_StartOcarina = 0x800DB834; // type:func -Message_StartOcarinaSunsSongDisabled = 0x800DB864; // type:func -Message_GetState = 0x800DB898; // type:func -Message_DrawTextBox = 0x800DB9B8; // type:func -Message_SetView = 0x800DBE44; // type:func -Message_DrawMain = 0x800DBE8C; // type:func -Message_Draw = 0x800DEB5C; // type:func -Message_Update = 0x800DEBF8; // type:func -Message_SetTables = 0x800DF6D8; // type:func -GameOver_Init = 0x800DF720; // type:func -GameOver_FadeInLights = 0x800DF734; // type:func -GameOver_Update = 0x800DF79C; // type:func -Interface_Destroy = 0x800DFC60; // type:func -Interface_Init = 0x800DFC80; // type:func -Message_Init = 0x800E00A4; // type:func -Regs_InitDataImpl = 0x800E0148; // type:func -Regs_InitData = 0x800E1170; // type:func -aspMainTextStart = 0x800E11A0; // type:func -ConsoleLogo_Calc = 0x80800000; // type:func -ConsoleLogo_SetupView = 0x80800010; // type:func -ConsoleLogo_Draw = 0x808000A8; // type:func -ConsoleLogo_Main = 0x808005E0; // type:func -ConsoleLogo_Destroy = 0x808006A0; // type:func -ConsoleLogo_Init = 0x808006C0; // type:func -MapSelect_LoadTitle = 0x80800850; // type:func -MapSelect_LoadGame = 0x80800870; // type:func -MapSelect_UpdateMenu = 0x80800960; // type:func -MapSelect_PrintMenu = 0x808012C0; // type:func -MapSelect_PrintLoadingMessage = 0x8080149C; // type:func -MapSelect_PrintAgeSetting = 0x80801528; // type:func -MapSelect_PrintCutsceneSetting = 0x8080159C; // type:func -MapSelect_DrawMenu = 0x80801758; // type:func -MapSelect_DrawLoadingScreen = 0x8080186C; // type:func -MapSelect_Draw = 0x80801954; // type:func -MapSelect_Main = 0x80801A08; // type:func -MapSelect_Destroy = 0x80801A34; // type:func -MapSelect_Init = 0x80801A40; // type:func -TitleSetup_SetupTitleScreen = 0x808034D0; // type:func -func_80803C5C = 0x8080353C; // type:func -TitleSetup_Main = 0x80803548; // type:func -TitleSetup_Destroy = 0x8080358C; // type:func -TitleSetup_Init = 0x80803598; // type:func -FileSelect_SetupCopySource = 0x80803630; // type:func -FileSelect_SelectCopySource = 0x808037C8; // type:func -FileSelect_SetupCopyDest1 = 0x80803B38; // type:func -FileSelect_SetupCopyDest2 = 0x80803CC8; // type:func -FileSelect_SelectCopyDest = 0x80803D90; // type:func -FileSelect_ExitToCopySource1 = 0x80804148; // type:func -FileSelect_ExitToCopySource2 = 0x80804214; // type:func -FileSelect_SetupCopyConfirm1 = 0x80804340; // type:func -FileSelect_SetupCopyConfirm2 = 0x80804564; // type:func -FileSelect_CopyConfirm = 0x808045C0; // type:func -FileSelect_ReturnToCopyDest = 0x808047C8; // type:func -FileSelect_CopyAnim1 = 0x808049FC; // type:func -FileSelect_CopyAnim2 = 0x80804A78; // type:func -FileSelect_CopyAnim3 = 0x80804BC8; // type:func -FileSelect_CopyAnim4 = 0x80804CE4; // type:func -FileSelect_CopyAnim5 = 0x80804DD4; // type:func -FileSelect_ExitCopyToMain = 0x808050D4; // type:func -FileSelect_SetupEraseSelect = 0x80805210; // type:func -FileSelect_EraseSelect = 0x808053E0; // type:func -FileSelect_SetupEraseConfirm1 = 0x8080576C; // type:func -FileSelect_SetupEraseConfirm2 = 0x80805A34; // type:func -FileSelect_EraseConfirm = 0x80805B10; // type:func -FileSelect_ExitToEraseSelect1 = 0x80805CF8; // type:func -FileSelect_ExitToEraseSelect2 = 0x80805DA8; // type:func -FileSelect_EraseAnim1 = 0x80805FC4; // type:func -FileSelect_EraseAnim2 = 0x808061A4; // type:func -FileSelect_EraseAnim3 = 0x80806268; // type:func -FileSelect_ExitEraseToMain = 0x808064D4; // type:func -FileSelect_DrawCharacter = 0x80806670; // type:func -FileSelect_SetKeyboardVtx = 0x808067A8; // type:func -FileSelect_SetNameEntryVtx = 0x80806AA8; // type:func -FileSelect_DrawKeyboard = 0x808075F0; // type:func -FileSelect_DrawNameEntry = 0x808077F4; // type:func -FileSelect_StartNameEntry = 0x808086BC; // type:func -FileSelect_UpdateKeyboardCursor = 0x80808770; // type:func -FileSelect_StartOptions = 0x80808D44; // type:func -FileSelect_UpdateOptionsMenu = 0x80808DD4; // type:func -FileSelect_DrawOptionsImpl = 0x80809050; // type:func -FileSelect_DrawOptions = 0x8080A564; // type:func -FileSelect_SetView = 0x8080A590; // type:func -FileSelect_QuadTextureIA8 = 0x8080A614; // type:func -FileSelect_InitModeUpdate = 0x8080A7F4; // type:func -FileSelect_InitModeDraw = 0x8080A84C; // type:func -FileSelect_FadeInMenuElements = 0x8080A858; // type:func -FileSelect_SplitNumber = 0x8080A9C0; // type:func -FileSelect_StartFadeIn = 0x8080AA34; // type:func -FileSelect_FinishFadeIn = 0x8080AABC; // type:func -FileSelect_UpdateMainMenu = 0x8080AB54; // type:func -FileSelect_UnusedCM31 = 0x8080B3E0; // type:func -FileSelect_UnusedCMDelay = 0x8080B3EC; // type:func -FileSelect_RotateToNameEntry = 0x8080B440; // type:func -FileSelect_RotateToOptions = 0x8080B4B4; // type:func -FileSelect_RotateToMain = 0x8080B528; // type:func -FileSelect_PulsateCursor = 0x8080B5A0; // type:func -FileSelect_ConfigModeUpdate = 0x8080B69C; // type:func -FileSelect_SetWindowVtx = 0x8080B6D8; // type:func -FileSelect_SetWindowContentVtx = 0x8080B9AC; // type:func -FileSelect_DrawFileInfo = 0x8080CC70; // type:func -FileSelect_DrawWindowContents = 0x8080D3EC; // type:func -FileSelect_ConfigModeDraw = 0x8080E8A0; // type:func -FileSelect_FadeMainToSelect = 0x8080F180; // type:func -FileSelect_MoveSelectedFileToTop = 0x8080F2EC; // type:func -FileSelect_FadeInFileInfo = 0x8080F3F0; // type:func -FileSelect_ConfirmFile = 0x8080F4D4; // type:func -FileSelect_FadeOutFileInfo = 0x8080F6AC; // type:func -FileSelect_MoveSelectedFileToSlot = 0x8080F79C; // type:func -FileSelect_FadeOut = 0x8080F9F4; // type:func -FileSelect_LoadGame = 0x8080FA50; // type:func -FileSelect_SelectModeUpdate = 0x8080FC18; // type:func -FileSelect_SelectModeDraw = 0x8080FC54; // type:func -FileSelect_Main = 0x8081000C; // type:func -FileSelect_InitContext = 0x808105D4; // type:func -FileSelect_Destroy = 0x80810C48; // type:func -FileSelect_Init = 0x80810C54; // type:func -KaleidoScope_DrawQuestStatus = 0x80812260; // type:func -KaleidoScope_UpdateQuestStatusPoint = 0x8081464C; // type:func -KaleidoScope_DrawDebugEditorText = 0x80814660; // type:func -KaleidoScope_DrawDigit = 0x80814954; // type:func -KaleidoScope_DrawDebugEditor = 0x80814AC8; // type:func -KaleidoScope_DrawEquipmentImage = 0x80816610; // type:func -KaleidoScope_DrawPlayerWork = 0x80816A10; // type:func -KaleidoScope_DrawEquipment = 0x80816BB4; // type:func -KaleidoScope_DrawAmmoCount = 0x80818090; // type:func -KaleidoScope_SetCursorVtx = 0x808185CC; // type:func -KaleidoScope_SetItemCursorVtx = 0x808185FC; // type:func -KaleidoScope_DrawItemSelect = 0x80818628; // type:func -KaleidoScope_UpdateItemEquip = 0x80819484; // type:func -KaleidoScope_DrawDungeonMap = 0x8081A080; // type:func -KaleidoScope_DrawWorldMap = 0x8081B890; // type:func -KaleidoScope_UpdatePrompt = 0x8081D360; // type:func -KaleidoScope_SetupPlayerPreRender = 0x8081D560; // type:func -KaleidoScope_ProcessPlayerPreRender = 0x8081D638; // type:func -KaleidoScope_QuadTextureIA4 = 0x8081D670; // type:func -KaleidoScope_QuadTextureIA8 = 0x8081D850; // type:func -KaleidoScope_OverridePalIndexCI4 = 0x8081DA30; // type:func -KaleidoScope_MoveCursorToSpecialPos = 0x8081DB68; // type:func -KaleidoScope_DrawQuadTextureRGBA32 = 0x8081DBCC; // type:func -KaleidoScope_SetDefaultCursor = 0x8081DDBC; // type:func -KaleidoScope_SwitchPage = 0x8081DE7C; // type:func -KaleidoScope_HandlePageToggles = 0x8081DFD8; // type:func -KaleidoScope_DrawCursor = 0x8081E108; // type:func -KaleidoScope_DrawPageSections = 0x8081E454; // type:func -KaleidoScope_DrawPages = 0x8081E700; // type:func -KaleidoScope_DrawInfoPanel = 0x8081FE78; // type:func -KaleidoScope_UpdateNamePanel = 0x8082165C; // type:func -func_808237B4 = 0x80821878; // type:func -KaleidoScope_SetView = 0x80821A58; // type:func -func_80823A0C = 0x80821AD4; // type:func -KaleidoScope_InitVertices = 0x80822164; // type:func -KaleidoScope_DrawGameOver = 0x80823CA4; // type:func -KaleidoScope_Draw = 0x8082431C; // type:func -KaleidoScope_GrayOutTextureRGBA32 = 0x80824544; // type:func -KaleidoScope_UpdateOpening = 0x808245F8; // type:func -KaleidoScope_UpdateCursorSize = 0x808247E8; // type:func -KaleidoScope_LoadDungeonMap = 0x80824B2C; // type:func -KaleidoScope_UpdateDungeonMap = 0x80824BC8; // type:func -KaleidoScope_Update = 0x80824CBC; // type:func -PauseMapMark_Init = 0x808275B0; // type:func -PauseMapMark_Clear = 0x808275E4; // type:func -PauseMapMark_DrawForDungeon = 0x808275F8; // type:func -PauseMapMark_Draw = 0x80827C0C; // type:func -Player_ZeroSpeedXZ = 0x8082EC90; // type:func -func_80832224 = 0x8082ECA8; // type:func -func_8083224C = 0x8082ECD0; // type:func -Player_AnimPlayOnce = 0x8082ECEC; // type:func -Player_AnimPlayLoop = 0x8082ED10; // type:func -Player_AnimPlayLoopAdjusted = 0x8082ED34; // type:func -Player_AnimPlayOnceAdjusted = 0x8082ED64; // type:func -func_808322FC = 0x8082ED94; // type:func -func_80832318 = 0x8082EDB4; // type:func -func_80832340 = 0x8082EDE0; // type:func -Player_DetachHeldActor = 0x8082EE50; // type:func -func_80832440 = 0x8082EEDC; // type:func -Player_PutAwayHeldItem = 0x8082EFC4; // type:func -func_80832564 = 0x8082F000; // type:func -func_80832594 = 0x8082F038; // type:func -func_80832630 = 0x8082F0D8; // type:func -Player_RequestRumble = 0x8082F0F4; // type:func -func_80832698 = 0x8082F140; // type:func -func_808326F0 = 0x8082F1A0; // type:func -func_8083275C = 0x8082F20C; // type:func -func_80832770 = 0x8082F228; // type:func -func_808327A4 = 0x8082F260; // type:func -func_808327C4 = 0x8082F288; // type:func -func_808327F8 = 0x8082F2C0; // type:func -func_80832854 = 0x8082F31C; // type:func -func_808328A0 = 0x8082F368; // type:func -func_808328EC = 0x8082F3B4; // type:func -Player_ProcessAnimSfxList = 0x8082F3E8; // type:func -Player_AnimChangeOnceMorph = 0x8082F5D0; // type:func -Player_AnimChangeOnceMorphAdjusted = 0x8082F63C; // type:func -Player_AnimChangeLoopMorph = 0x8082F6AC; // type:func -Player_AnimChangeFreeze = 0x8082F6F4; // type:func -Player_AnimChangeLoopSlowMorph = 0x8082F738; // type:func -func_80832CB0 = 0x8082F780; // type:func -Player_SkelAnimeResetPrevTranslRot = 0x8082F7D4; // type:func -Player_SkelAnimeResetPrevTranslRotAgeScale = 0x8082F7FC; // type:func -Player_ZeroRootLimbYaw = 0x8082F888; // type:func -func_80832DBC = 0x8082F898; // type:func -func_80832E48 = 0x8082F924; // type:func -Player_AnimReplaceApplyFlags = 0x8082FA34; // type:func -Player_AnimReplacePlayOnceSetSpeed = 0x8082FADC; // type:func -Player_AnimReplacePlayOnce = 0x8082FB24; // type:func -Player_AnimReplacePlayOnceAdjusted = 0x8082FB4C; // type:func -Player_AnimReplaceNormalPlayOnceAdjusted = 0x8082FB74; // type:func -Player_AnimReplacePlayLoopSetSpeed = 0x8082FB94; // type:func -Player_AnimReplacePlayLoop = 0x8082FBDC; // type:func -Player_AnimReplacePlayLoopAdjusted = 0x8082FC04; // type:func -Player_AnimReplaceNormalPlayLoopAdjusted = 0x8082FC2C; // type:func -Player_ProcessControlStick = 0x8082FC4C; // type:func -func_8083328C = 0x8082FD78; // type:func -func_808332B8 = 0x8082FDA8; // type:func -func_808332E4 = 0x8082FDD4; // type:func -func_808332F4 = 0x8082FDE8; // type:func -func_80833338 = 0x8082FE2C; // type:func -func_80833350 = 0x8082FE48; // type:func -func_808333FC = 0x8082FEFC; // type:func -func_80833438 = 0x8082FF38; // type:func -func_808334B4 = 0x8082FFB4; // type:func -func_808334E4 = 0x8082FFE8; // type:func -func_80833528 = 0x80830030; // type:func -func_8083356C = 0x80830078; // type:func -func_808335B0 = 0x808300C0; // type:func -func_808335F4 = 0x80830108; // type:func -Player_SetUpperActionFunc = 0x80830150; // type:func -Player_InitItemActionWithAnim = 0x8083017C; // type:func -Player_ItemToItemAction = 0x8083023C; // type:func -Player_InitDefaultIA = 0x80830288; // type:func -Player_InitDekuStickIA = 0x80830298; // type:func -Player_InitHammerIA = 0x808302B4; // type:func -Player_InitBowOrSlingshotIA = 0x808302C4; // type:func -Player_InitExplosiveIA = 0x808302FC; // type:func -Player_InitHookshotIA = 0x8083043C; // type:func -Player_InitBoomerangIA = 0x808304AC; // type:func -Player_InitItemAction = 0x808304C8; // type:func -func_80833A20 = 0x80830554; // type:func -func_80833B2C = 0x8083065C; // type:func -func_80833B54 = 0x80830684; // type:func -func_80833BCC = 0x808306FC; // type:func -func_80833C04 = 0x80830738; // type:func -func_80833C3C = 0x80830774; // type:func -Player_ItemIsInUse = 0x8083078C; // type:func -Player_ItemIsItemAction = 0x808307D8; // type:func -Player_GetItemOnButton = 0x80830820; // type:func -Player_ProcessItemButtons = 0x8083093C; // type:func -Player_StartChangingHeldItem = 0x80830C24; // type:func -Player_UpdateItems = 0x80830DDC; // type:func -func_80834380 = 0x80830EC4; // type:func -func_8083442C = 0x80830F70; // type:func -Player_FinishItemChange = 0x808310D8; // type:func -func_80834644 = 0x80831188; // type:func -func_808346C4 = 0x80831208; // type:func -func_80834758 = 0x8083129C; // type:func -func_8083485C = 0x808313A4; // type:func -func_80834894 = 0x808313DC; // type:func -Player_WaitToFinishItemChange = 0x80831438; // type:func -func_8083499C = 0x808314E8; // type:func -Player_UpperAction_Sword = 0x80831528; // type:func -Player_UpperAction_ChangeHeldItem = 0x80831578; // type:func -func_80834B5C = 0x808316A8; // type:func -func_80834BD4 = 0x80831724; // type:func -func_80834C74 = 0x808317C8; // type:func -func_80834D2C = 0x80831880; // type:func -func_80834E44 = 0x80831998; // type:func -func_80834E7C = 0x808319D0; // type:func -func_80834EB8 = 0x80831A0C; // type:func -func_80834F2C = 0x80831A80; // type:func -func_80834FBC = 0x80831B10; // type:func -func_8083501C = 0x80831B70; // type:func -func_808350A4 = 0x80831BF8; // type:func -func_808351D4 = 0x80831D2C; // type:func -func_808353D8 = 0x80831F38; // type:func -func_80835588 = 0x808320E8; // type:func -func_808355DC = 0x80832144; // type:func -func_80835644 = 0x808321B0; // type:func -func_80835688 = 0x808321F8; // type:func -Player_UpperAction_CarryActor = 0x80832258; // type:func -func_808357E8 = 0x80832358; // type:func -func_80835800 = 0x80832374; // type:func -func_80835884 = 0x808323F8; // type:func -func_808358F0 = 0x80832464; // type:func -func_808359FC = 0x80832578; // type:func -func_80835B60 = 0x808326E0; // type:func -func_80835C08 = 0x80832788; // type:func -Player_SetupAction = 0x808327E0; // type:func -func_80835DAC = 0x8083293C; // type:func -func_80835DE4 = 0x80832970; // type:func -func_80835E44 = 0x808329D4; // type:func -func_80835EA4 = 0x80832A38; // type:func -Player_DestroyHookshot = 0x80832A94; // type:func -Player_UseItem = 0x80832AE4; // type:func -func_80836448 = 0x80832FEC; // type:func -Player_CanUpdateItems = 0x8083316C; // type:func -Player_UpdateUpperBody = 0x80833218; // type:func -Player_SetupWaitForPutAway = 0x80833440; // type:func -func_808368EC = 0x80833498; // type:func -func_808369C8 = 0x80833574; // type:func -func_80836AB8 = 0x80833660; // type:func -func_80836BEC = 0x80833794; // type:func -Player_CalcSpeedAndYawFromControlStick = 0x80833B58; // type:func -func_8083721C = 0x80833DC8; // type:func -Player_GetMovementSpeedAndYaw = 0x80833E1C; // type:func -Player_TryActionChangeList = 0x80833EFC; // type:func -func_808374A0 = 0x80834058; // type:func -func_80837530 = 0x808340F0; // type:func -func_808375D8 = 0x808341A0; // type:func -func_80837704 = 0x808342D0; // type:func -func_808377DC = 0x808343A8; // type:func -func_80837818 = 0x808343EC; // type:func -func_80837918 = 0x808344EC; // type:func -func_80837948 = 0x8083451C; // type:func -func_80837AE0 = 0x808346BC; // type:func -func_80837AFC = 0x808346D8; // type:func -func_80837B18 = 0x808346F8; // type:func -func_80837B60 = 0x80834740; // type:func -func_80837B9C = 0x8083477C; // type:func -func_80837C0C = 0x808347EC; // type:func -func_80838144 = 0x80834D24; // type:func -func_8083816C = 0x80834D4C; // type:func -func_8083819C = 0x80834D7C; // type:func -func_8083821C = 0x80834E00; // type:func -func_80838280 = 0x80834E64; // type:func -func_808382BC = 0x80834EA0; // type:func -func_808382DC = 0x80834EC0; // type:func -func_80838940 = 0x80835524; // type:func -func_808389E8 = 0x808355C8; // type:func -Player_ActionChange_12 = 0x808355F4; // type:func -func_80838E70 = 0x80835A50; // type:func -func_80838F18 = 0x80835B00; // type:func -func_80838F5C = 0x80835B4C; // type:func -func_80838FB8 = 0x80835BB0; // type:func -Player_HandleExitsAndVoids = 0x80835C2C; // type:func -Player_GetRelativePosition = 0x808361D0; // type:func -Player_SpawnFairy = 0x80836274; // type:func -func_808396F4 = 0x808362E8; // type:func -func_8083973C = 0x80836334; // type:func -Player_PosVsWallLineTest = 0x80836360; // type:func -Player_ActionChange_1 = 0x808363FC; // type:func -func_80839E88 = 0x80836A94; // type:func -func_80839F30 = 0x80836B38; // type:func -func_80839F90 = 0x80836B94; // type:func -func_80839FFC = 0x80836C00; // type:func -func_8083A060 = 0x80836C68; // type:func -func_8083A098 = 0x80836CA4; // type:func -func_8083A0D4 = 0x80836CE4; // type:func -func_8083A0F4 = 0x80836D04; // type:func -func_8083A2F8 = 0x80836F08; // type:func -func_8083A360 = 0x80836F78; // type:func -func_8083A388 = 0x80836FA0; // type:func -func_8083A3B0 = 0x80836FC8; // type:func -func_8083A40C = 0x80837020; // type:func -func_8083A434 = 0x80837048; // type:func -func_8083A4A8 = 0x808370BC; // type:func -func_8083A5C4 = 0x808371D8; // type:func -func_8083A6AC = 0x808372CC; // type:func -func_8083A9B8 = 0x808375D4; // type:func -func_8083AA10 = 0x8083762C; // type:func -func_8083AD4C = 0x80837968; // type:func -Player_StartCsAction = 0x808379F0; // type:func -func_8083AE40 = 0x80837A5C; // type:func -func_8083AF44 = 0x80837AE4; // type:func -func_8083B010 = 0x80837BB8; // type:func -Player_ActionChange_13 = 0x80837BEC; // type:func -Player_ActionChange_4 = 0x808381F0; // type:func -func_8083B8F4 = 0x808384A0; // type:func -Player_ActionChange_0 = 0x80838548; // type:func -func_8083BA90 = 0x80838640; // type:func -func_8083BB20 = 0x808386D8; // type:func -func_8083BBA0 = 0x80838758; // type:func -func_8083BC04 = 0x808387C0; // type:func -func_8083BC7C = 0x80838838; // type:func -func_8083BCD0 = 0x8083888C; // type:func -Player_ActionChange_10 = 0x80838978; // type:func -func_8083BF50 = 0x80838B10; // type:func -func_8083C0B8 = 0x80838C74; // type:func -func_8083C0E8 = 0x80838CAC; // type:func -func_8083C148 = 0x80838D08; // type:func -Player_ActionChange_6 = 0x80838DA4; // type:func -Player_ActionChange_11 = 0x80838E80; // type:func -func_8083C484 = 0x80839058; // type:func -func_8083C50C = 0x808390E0; // type:func -Player_ActionChange_8 = 0x80839118; // type:func -func_8083C61C = 0x808391F4; // type:func -func_8083C6B8 = 0x80839290; // type:func -func_8083C858 = 0x80839434; // type:func -func_8083C8DC = 0x808394B8; // type:func -func_8083C910 = 0x808394EC; // type:func -func_8083CA20 = 0x80839600; // type:func -func_8083CA54 = 0x80839638; // type:func -func_8083CA9C = 0x80839680; // type:func -func_8083CB2C = 0x80839714; // type:func -func_8083CB94 = 0x80839778; // type:func -func_8083CBF0 = 0x808397D4; // type:func -func_8083CC9C = 0x8083987C; // type:func -func_8083CD00 = 0x808398DC; // type:func -func_8083CD54 = 0x80839930; // type:func -func_8083CE0C = 0x808399EC; // type:func -func_8083CEAC = 0x80839A88; // type:func -func_8083CF10 = 0x80839AE8; // type:func -func_8083CF5C = 0x80839B30; // type:func -func_8083CFA8 = 0x80839B78; // type:func -func_8083D0A8 = 0x80839C80; // type:func -func_8083D12C = 0x80839D08; // type:func -func_8083D330 = 0x80839F10; // type:func -func_8083D36C = 0x80839F4C; // type:func -func_8083D53C = 0x8083A120; // type:func -func_8083D6EC = 0x8083A2D0; // type:func -func_8083DB98 = 0x8083A780; // type:func -func_8083DC54 = 0x8083A83C; // type:func -func_8083DDC8 = 0x8083A9B0; // type:func -func_8083DF68 = 0x8083AB58; // type:func -func_8083DFE0 = 0x8083ABD4; // type:func -Player_ActionChange_3 = 0x8083ACF4; // type:func -Player_GetSlopeDirection = 0x8083AE94; // type:func -Player_HandleSlopes = 0x8083AF10; // type:func -func_8083E4C4 = 0x8083B0C4; // type:func -Player_ActionChange_2 = 0x8083B1AC; // type:func -func_8083EA94 = 0x8083B644; // type:func -func_8083EAF0 = 0x8083B6A0; // type:func -Player_ActionChange_9 = 0x8083B6F4; // type:func -func_8083EC18 = 0x8083B7C8; // type:func -func_8083F070 = 0x8083BC24; // type:func -Player_TryEnteringCrawlspace = 0x8083BC7C; // type:func -func_8083F360 = 0x8083BF18; // type:func -func_8083F524 = 0x8083C0DC; // type:func -Player_TryLeavingCrawlspace = 0x8083C128; // type:func -func_8083F72C = 0x8083C2E4; // type:func -Player_ActionChange_5 = 0x8083C370; // type:func -func_8083F9D0 = 0x8083C588; // type:func -func_8083FAB8 = 0x8083C670; // type:func -func_8083FB14 = 0x8083C6CC; // type:func -func_8083FB7C = 0x8083C734; // type:func -func_8083FBC0 = 0x8083C774; // type:func -func_8083FC68 = 0x8083C824; // type:func -func_8083FD78 = 0x8083C934; // type:func -func_8083FFB8 = 0x8083CB78; // type:func -func_80840058 = 0x8083CC18; // type:func -func_80840138 = 0x8083CD00; // type:func -func_808401B0 = 0x8083CD78; // type:func -func_8084021C = 0x8083CDE4; // type:func -func_8084029C = 0x8083CE64; // type:func -Player_Action_80840450 = 0x8083D01C; // type:func -Player_Action_808407CC = 0x8083D398; // type:func -func_808409CC = 0x8083D598; // type:func -Player_Action_80840BC8 = 0x8083D794; // type:func -Player_Action_80840DE4 = 0x8083D9B4; // type:func -func_80841138 = 0x8083DD08; // type:func -func_8084140C = 0x8083DFE4; // type:func -func_80841458 = 0x8083E030; // type:func -Player_Action_808414F8 = 0x8083E0D0; // type:func -func_808416C0 = 0x8083E2A4; // type:func -Player_Action_8084170C = 0x8083E2F0; // type:func -Player_Action_808417FC = 0x8083E3E0; // type:func -func_80841860 = 0x8083E444; // type:func -Player_Action_8084193C = 0x8083E520; // type:func -Player_Action_80841BA8 = 0x8083E784; // type:func -func_80841CC4 = 0x8083E8A0; // type:func -func_80841EE4 = 0x8083EAC4; // type:func -Player_Action_80842180 = 0x8083ED68; // type:func -Player_Action_8084227C = 0x8083EE6C; // type:func -Player_Action_808423EC = 0x8083EFE0; // type:func -Player_Action_8084251C = 0x8083F110; // type:func -func_8084260C = 0x8083F200; // type:func -func_8084269C = 0x8083F290; // type:func -Player_Action_8084279C = 0x8083F390; // type:func -func_8084285C = 0x8083F450; // type:func -func_808428D8 = 0x8083F4CC; // type:func -func_80842964 = 0x8083F55C; // type:func -Player_RequestQuake = 0x8083F5B4; // type:func -func_80842A28 = 0x8083F628; // type:func -func_80842A88 = 0x8083F68C; // type:func -func_80842AC4 = 0x8083F6C8; // type:func -func_80842B7C = 0x8083F784; // type:func -func_80842CF0 = 0x8083F8FC; // type:func -func_80842D20 = 0x8083F934; // type:func -func_80842DF4 = 0x8083FA0C; // type:func -Player_Action_80843188 = 0x8083FDA0; // type:func -Player_Action_808435C4 = 0x808401DC; // type:func -Player_Action_8084370C = 0x80840328; // type:func -Player_Action_8084377C = 0x8084039C; // type:func -Player_Action_80843954 = 0x80840578; // type:func -Player_Action_80843A38 = 0x80840660; // type:func -func_80843AE8 = 0x80840714; // type:func -Player_Action_80843CEC = 0x80840918; // type:func -func_80843E14 = 0x80840A44; // type:func -func_80843E64 = 0x80840A98; // type:func -func_8084409C = 0x80840CD0; // type:func -Player_Action_8084411C = 0x80840D58; // type:func -Player_Action_80844708 = 0x8084134C; // type:func -Player_Action_80844A44 = 0x80841688; // type:func -Player_Action_80844AF4 = 0x80841738; // type:func -func_80844BE4 = 0x80841828; // type:func -func_80844CF8 = 0x80841940; // type:func -func_80844D30 = 0x80841978; // type:func -func_80844D68 = 0x808419B0; // type:func -func_80844DC8 = 0x80841A14; // type:func -func_80844E3C = 0x80841A88; // type:func -Player_Action_80844E68 = 0x80841AB8; // type:func -Player_Action_80845000 = 0x80841C50; // type:func -Player_Action_80845308 = 0x80841F58; // type:func -Player_Action_80845668 = 0x808422B8; // type:func -Player_Action_WaitForPutAway = 0x80842524; // type:func -func_80845964 = 0x808425B8; // type:func -func_80845BA0 = 0x808427FC; // type:func -func_80845C68 = 0x808428C8; // type:func -Player_Action_80845CA4 = 0x80842908; // type:func -Player_Action_80845EF8 = 0x80842B68; // type:func -Player_Action_80846050 = 0x80842CC0; // type:func -Player_Action_80846120 = 0x80842D98; // type:func -Player_Action_80846260 = 0x80842ED8; // type:func -Player_Action_80846358 = 0x80842FD8; // type:func -Player_Action_80846408 = 0x80843088; // type:func -Player_Action_808464B0 = 0x80843130; // type:func -Player_Action_80846578 = 0x808431FC; // type:func -func_8084663C = 0x808432C4; // type:func -func_80846648 = 0x808432D4; // type:func -func_80846660 = 0x808432F0; // type:func -func_80846720 = 0x808433B0; // type:func -func_808467D4 = 0x80843464; // type:func -func_808468A8 = 0x80843540; // type:func -func_808468E8 = 0x80843588; // type:func -func_80846978 = 0x80843618; // type:func -func_808469BC = 0x8084365C; // type:func -func_80846A00 = 0x8084369C; // type:func -func_80846A68 = 0x80843708; // type:func -Player_InitCommon = 0x80843748; // type:func -Player_Init = 0x80843978; // type:func -func_808471F4 = 0x80843E88; // type:func -func_80847298 = 0x80843F2C; // type:func -func_808473D4 = 0x80844068; // type:func -Player_UpdateHoverBoots = 0x80844718; // type:func -Player_ProcessSceneCollision = 0x80844840; // type:func -Player_UpdateCamAndSeqModes = 0x80845348; // type:func -func_80848A04 = 0x808456A8; // type:func -Player_UpdateBodyShock = 0x808457F0; // type:func -Player_UpdateBodyBurn = 0x80845920; // type:func -func_80848EF8 = 0x80845BA4; // type:func -Player_UpdateCommon = 0x80845C4C; // type:func -Player_Update = 0x80846B58; // type:func -Player_DrawGameplay = 0x80846D90; // type:func -Player_Draw = 0x80847234; // type:func -Player_Destroy = 0x80847794; // type:func -func_8084ABD8 = 0x80847818; // type:func -func_8084AEEC = 0x80847B2C; // type:func -func_8084B000 = 0x80847C48; // type:func -func_8084B158 = 0x80847DA8; // type:func -Player_Action_8084B1D8 = 0x80847E28; // type:func -func_8084B3CC = 0x80848018; // type:func -func_8084B498 = 0x808480EC; // type:func -func_8084B4D4 = 0x80848128; // type:func -Player_Action_8084B530 = 0x80848188; // type:func -Player_Action_8084B78C = 0x808483F0; // type:func -func_8084B840 = 0x808484A4; // type:func -Player_Action_8084B898 = 0x80848500; // type:func -Player_Action_8084B9E4 = 0x8084864C; // type:func -Player_Action_8084BBE4 = 0x80848850; // type:func -Player_Action_8084BDFC = 0x80848A68; // type:func -func_8084BEE4 = 0x80848B50; // type:func -Player_Action_8084BF1C = 0x80848B88; // type:func -Player_Action_8084C5F8 = 0x80849268; // type:func -Player_Action_8084C760 = 0x808493D0; // type:func -Player_Action_8084C81C = 0x8084948C; // type:func -func_8084C89C = 0x8084950C; // type:func -func_8084C9BC = 0x80849638; // type:func -func_8084CBF4 = 0x80849874; // type:func -Player_Action_8084CC98 = 0x8084991C; // type:func -Player_Action_8084D3E4 = 0x8084A06C; // type:func -func_8084D530 = 0x8084A1C0; // type:func -func_8084D574 = 0x8084A208; // type:func -func_8084D5CC = 0x8084A264; // type:func -Player_Action_8084D610 = 0x8084A2B0; // type:func -Player_Action_8084D7C4 = 0x8084A460; // type:func -Player_Action_8084D84C = 0x8084A4F0; // type:func -func_8084D980 = 0x8084A624; // type:func -Player_Action_8084DAB4 = 0x8084A75C; // type:func -func_8084DBC4 = 0x8084A86C; // type:func -Player_Action_8084DC48 = 0x8084A8F0; // type:func -func_8084DF6C = 0x8084AC1C; // type:func -func_8084DFAC = 0x8084AC60; // type:func -func_8084DFF4 = 0x8084ACAC; // type:func -Player_Action_8084E1EC = 0x8084AEA4; // type:func -Player_Action_8084E30C = 0x8084AFC4; // type:func -Player_Action_8084E368 = 0x8084B024; // type:func -Player_Action_8084E3C4 = 0x8084B084; // type:func -Player_Action_8084E604 = 0x8084B2C4; // type:func -Player_Action_8084E6D4 = 0x8084B394; // type:func -func_8084E988 = 0x8084B648; // type:func -Player_Action_8084E9AC = 0x8084B66C; // type:func -Player_Action_8084EAC0 = 0x8084B780; // type:func -Player_Action_8084ECA4 = 0x8084B96C; // type:func -Player_Action_8084EED8 = 0x8084BBA4; // type:func -Player_Action_8084EFC0 = 0x8084BC8C; // type:func -Player_Action_8084F104 = 0x8084BDD4; // type:func -Player_Action_8084F308 = 0x8084BFDC; // type:func -Player_Action_8084F390 = 0x8084C064; // type:func -Player_Action_8084F608 = 0x8084C2DC; // type:func -Player_Action_8084F698 = 0x8084C36C; // type:func -Player_Action_8084F710 = 0x8084C3E4; // type:func -Player_Action_8084F88C = 0x8084C560; // type:func -Player_Action_8084F9A0 = 0x8084C674; // type:func -Player_Action_8084F9C0 = 0x8084C694; // type:func -Player_Action_8084FA54 = 0x8084C728; // type:func -Player_Action_8084FB10 = 0x8084C7E4; // type:func -Player_Action_8084FBF4 = 0x8084C8C8; // type:func -func_8084FF7C = 0x8084C980; // type:func -Player_UpdateBunnyEars = 0x8084CA34; // type:func -Player_ActionChange_7 = 0x8084CC2C; // type:func -Player_Action_808502D0 = 0x8084CCD8; // type:func -Player_Action_808505DC = 0x8084CFE8; // type:func -Player_Action_8085063C = 0x8084D048; // type:func -Player_Action_8085076C = 0x8084D178; // type:func -Player_Action_808507F4 = 0x8084D200; // type:func -Player_Action_80850AEC = 0x8084D4FC; // type:func -Player_Action_80850C68 = 0x8084D67C; // type:func -Player_Action_80850E84 = 0x8084D898; // type:func -Player_AnimChangeOnceMorphZeroRootYawSpeed = 0x8084D8EC; // type:func -Player_AnimChangeOnceMorphAdjustedZeroRootYawSpeed = 0x8084D930; // type:func -Player_AnimChangeLoopMorphAdjustedZeroRootYawSpeed = 0x8084D9B0; // type:func -func_80851008 = 0x8084DA1C; // type:func -func_80851030 = 0x8084DA44; // type:func -func_80851050 = 0x8084DA64; // type:func -func_80851094 = 0x8084DAA8; // type:func -func_808510B4 = 0x8084DAC8; // type:func -func_808510D4 = 0x8084DAE8; // type:func -func_808510F4 = 0x8084DB08; // type:func -func_80851114 = 0x8084DB28; // type:func -func_80851134 = 0x8084DB48; // type:func -func_80851154 = 0x8084DB68; // type:func -func_80851174 = 0x8084DB88; // type:func -func_80851194 = 0x8084DBA8; // type:func -func_808511B4 = 0x8084DBC8; // type:func -func_808511D4 = 0x8084DBE8; // type:func -func_808511FC = 0x8084DC14; // type:func -func_80851248 = 0x8084DC68; // type:func -func_80851294 = 0x8084DCBC; // type:func -func_808512E0 = 0x8084DD10; // type:func -func_80851314 = 0x8084DD48; // type:func -func_80851368 = 0x8084DD9C; // type:func -func_808513BC = 0x8084DDF0; // type:func -func_808514C0 = 0x8084DEF8; // type:func -func_8085157C = 0x8084DFB4; // type:func -func_808515A4 = 0x8084DFE0; // type:func -func_80851688 = 0x8084E0C4; // type:func -func_80851750 = 0x8084E194; // type:func -func_80851788 = 0x8084E1D0; // type:func -func_80851828 = 0x8084E270; // type:func -func_808518DC = 0x8084E328; // type:func -func_8085190C = 0x8084E35C; // type:func -func_80851998 = 0x8084E3E8; // type:func -func_808519C0 = 0x8084E410; // type:func -func_808519EC = 0x8084E43C; // type:func -func_80851A50 = 0x8084E4A0; // type:func -func_80851B90 = 0x8084E5E0; // type:func -func_80851BE8 = 0x8084E63C; // type:func -func_80851CA4 = 0x8084E6FC; // type:func -func_80851D2C = 0x8084E788; // type:func -func_80851D80 = 0x8084E7E0; // type:func -func_80851DEC = 0x8084E854; // type:func -func_80851E28 = 0x8084E894; // type:func -func_80851E64 = 0x8084E8D4; // type:func -func_80851E90 = 0x8084E900; // type:func -func_80851ECC = 0x8084E940; // type:func -func_80851F14 = 0x8084E990; // type:func -func_80851F84 = 0x8084EA04; // type:func -func_80851FB0 = 0x8084EA30; // type:func -func_80852048 = 0x8084EACC; // type:func -func_80852080 = 0x8084EB08; // type:func -func_808520BC = 0x8084EB48; // type:func -func_80852174 = 0x8084EC00; // type:func -func_808521B8 = 0x8084EC4C; // type:func -func_808521F4 = 0x8084EC8C; // type:func -func_80852234 = 0x8084ECCC; // type:func -func_8085225C = 0x8084ECF8; // type:func -func_80852280 = 0x8084ED1C; // type:func -func_80852298 = 0x8084ED38; // type:func -func_80852328 = 0x8084EDCC; // type:func -func_80852358 = 0x8084EDFC; // type:func -func_80852388 = 0x8084EE2C; // type:func -func_80852414 = 0x8084EEBC; // type:func -func_80852450 = 0x8084EEFC; // type:func -func_80852480 = 0x8084EF2C; // type:func -func_808524B0 = 0x8084EF5C; // type:func -func_808524D0 = 0x8084EF80; // type:func -func_80852514 = 0x8084EFC8; // type:func -func_80852544 = 0x8084EFFC; // type:func -func_80852554 = 0x8084F010; // type:func -func_80852564 = 0x8084F024; // type:func -func_808525C0 = 0x8084F088; // type:func -func_80852608 = 0x8084F0D4; // type:func -func_80852648 = 0x8084F11C; // type:func -func_808526EC = 0x8084F1C4; // type:func -func_8085283C = 0x8084F31C; // type:func -func_808528C8 = 0x8084F3AC; // type:func -func_80852944 = 0x8084F42C; // type:func -func_808529D0 = 0x8084F4B8; // type:func -func_80852A54 = 0x8084F540; // type:func -func_80852B4C = 0x8084F638; // type:func -func_80852C0C = 0x8084F6F8; // type:func -func_80852C50 = 0x8084F73C; // type:func -Player_Action_CsAction = 0x8084F8F8; // type:func -Player_IsDroppingFish = 0x8084F9A0; // type:func -Player_StartFishing = 0x8084F9D4; // type:func -func_80852F38 = 0x8084FA10; // type:func -Player_TryCsAction = 0x8084FADC; // type:func -func_80853080 = 0x8084FB60; // type:func -Player_InflictDamage = 0x8084FBBC; // type:func -func_80853148 = 0x8084FC24; // type:func -EnTest_SetupAction = 0x8085BF50; // type:func -EnTest_Init = 0x8085BF5C; // type:func -EnTest_Destroy = 0x8085C1A8; // type:func -EnTest_ChooseRandomAction = 0x8085C240; // type:func -EnTest_ChooseAction = 0x8085C3BC; // type:func -EnTest_SetupWaitGround = 0x8085C6DC; // type:func -EnTest_WaitGround = 0x8085C754; // type:func -EnTest_SetupWaitAbove = 0x8085C834; // type:func -EnTest_WaitAbove = 0x8085C8A8; // type:func -EnTest_SetupIdle = 0x8085C974; // type:func -EnTest_Idle = 0x8085C9F8; // type:func -EnTest_Fall = 0x8085CC28; // type:func -EnTest_Land = 0x8085CCDC; // type:func -EnTest_SetupWalkAndBlock = 0x8085CD4C; // type:func -EnTest_WalkAndBlock = 0x8085CE10; // type:func -func_80860BDC = 0x8085D4F4; // type:func -func_80860C24 = 0x8085D53C; // type:func -func_80860EC0 = 0x8085D7D8; // type:func -func_80860F84 = 0x8085D89C; // type:func -EnTest_SetupSlashDown = 0x8085DD30; // type:func -EnTest_SlashDown = 0x8085DDB4; // type:func -EnTest_SetupSlashDownEnd = 0x8085DEC0; // type:func -EnTest_SlashDownEnd = 0x8085DF10; // type:func -EnTest_SetupSlashUp = 0x8085E13C; // type:func -EnTest_SlashUp = 0x8085E1B8; // type:func -EnTest_SetupJumpBack = 0x8085E270; // type:func -EnTest_JumpBack = 0x8085E310; // type:func -EnTest_SetupJumpslash = 0x8085E4B8; // type:func -EnTest_Jumpslash = 0x8085E564; // type:func -EnTest_SetupJumpUp = 0x8085E674; // type:func -EnTest_JumpUp = 0x8085E6EC; // type:func -EnTest_SetupStopAndBlock = 0x8085E7E4; // type:func -EnTest_StopAndBlock = 0x8085E8A4; // type:func -EnTest_SetupIdleFromBlock = 0x8085E974; // type:func -EnTest_IdleFromBlock = 0x8085E9C0; // type:func -func_80862154 = 0x8085EA78; // type:func -func_808621D4 = 0x8085EAF8; // type:func -func_80862398 = 0x8085ECC0; // type:func -func_80862418 = 0x8085ED40; // type:func -EnTest_SetupStunned = 0x8085EEA4; // type:func -EnTest_Stunned = 0x8085EF80; // type:func -func_808627C4 = 0x8085F0F8; // type:func -func_808628C8 = 0x8085F1FC; // type:func -func_80862DBC = 0x8085F6F4; // type:func -func_80862E6C = 0x8085F7A8; // type:func -func_80862FA8 = 0x8085F8E4; // type:func -func_80863044 = 0x8085F980; // type:func -func_808630F0 = 0x8085FA2C; // type:func -func_8086318C = 0x8085FAC8; // type:func -EnTest_SetupRecoil = 0x8085FB7C; // type:func -EnTest_Recoil = 0x8085FBD0; // type:func -EnTest_Rise = 0x8085FC9C; // type:func -func_808633E8 = 0x8085FD24; // type:func -EnTest_UpdateHeadRot = 0x8085FDA0; // type:func -EnTest_UpdateDamage = 0x8085FE38; // type:func -EnTest_Update = 0x8085FFD8; // type:func -EnTest_OverrideLimbDraw = 0x80860404; // type:func -EnTest_PostLimbDraw = 0x808605D8; // type:func -EnTest_Draw = 0x80860960; // type:func -func_80864158 = 0x80860A74; // type:func -EnTest_ReactToProjectile = 0x80860B04; // type:func -ArmsHook_SetupAction = 0x80861800; // type:func -ArmsHook_Init = 0x8086180C; // type:func -ArmsHook_Destroy = 0x80861880; // type:func -ArmsHook_Wait = 0x808618C8; // type:func -func_80865044 = 0x80861948; // type:func -ArmsHook_AttachToPlayer = 0x8086195C; // type:func -ArmsHook_DetachHookFromActor = 0x8086198C; // type:func -ArmsHook_CheckForCancel = 0x808619B4; // type:func -ArmsHook_AttachHookToActor = 0x80861A50; // type:func -ArmsHook_Shoot = 0x80861A98; // type:func -ArmsHook_Update = 0x80862104; // type:func -ArmsHook_Draw = 0x80862144; // type:func -ArrowFire_SetupAction = 0x80862570; // type:func -ArrowFire_Init = 0x8086257C; // type:func -ArrowFire_Destroy = 0x808625F8; // type:func -ArrowFire_Charge = 0x8086261C; // type:func -func_80865ECC = 0x80862710; // type:func -ArrowFire_Hit = 0x80862768; // type:func -ArrowFire_Fly = 0x80862934; // type:func -ArrowFire_Update = 0x80862A88; // type:func -ArrowFire_Draw = 0x80862ADC; // type:func -ArrowIce_SetupAction = 0x80864450; // type:func -ArrowIce_Init = 0x8086445C; // type:func -ArrowIce_Destroy = 0x808644D8; // type:func -ArrowIce_Charge = 0x808644FC; // type:func -func_80867E8C = 0x808645F0; // type:func -ArrowIce_Hit = 0x80864648; // type:func -ArrowIce_Fly = 0x80864814; // type:func -ArrowIce_Update = 0x80864968; // type:func -ArrowIce_Draw = 0x808649BC; // type:func -ArrowLight_SetupAction = 0x80866350; // type:func -ArrowLight_Init = 0x8086635C; // type:func -ArrowLight_Destroy = 0x808663D8; // type:func -ArrowLight_Charge = 0x808663FC; // type:func -func_80869E6C = 0x808664F0; // type:func -ArrowLight_Hit = 0x80866548; // type:func -ArrowLight_Fly = 0x80866714; // type:func -ArrowLight_Update = 0x80866868; // type:func -ArrowLight_Draw = 0x808668BC; // type:func -BgBdanObjects_GetProperty = 0x80868260; // type:func -BgBdanObjects_SetProperty = 0x808682B4; // type:func -BgBdanObjects_Init = 0x80868308; // type:func -BgBdanObjects_Destroy = 0x8086858C; // type:func -BgBdanObjects_OctoPlatform_WaitForRutoToStartCutscene = 0x808685DC; // type:func -BgBdanObjects_OctoPlatform_RaiseToUpperPosition = 0x80868730; // type:func -BgBdanObjects_OctoPlatform_WaitForRutoToAdvanceCutscene = 0x8086882C; // type:func -BgBdanObjects_OctoPlatform_DescendWithBigOcto = 0x80868968; // type:func -BgBdanObjects_OctoPlatform_PauseBeforeDescending = 0x80868AEC; // type:func -BgBdanObjects_OctoPlatform_WaitForBigOctoToStartBattle = 0x80868B50; // type:func -BgBdanObjects_OctoPlatform_BattleInProgress = 0x80868BAC; // type:func -BgBdanObjects_SinkToFloorHeight = 0x80868C84; // type:func -BgBdanObjects_WaitForPlayerInRange = 0x80868D04; // type:func -BgBdanObjects_RaiseToUpperPosition = 0x80868D70; // type:func -BgBdanObjects_DoNothing = 0x80868E08; // type:func -BgBdanObjects_ElevatorOscillate = 0x80868E18; // type:func -BgBdanObjects_WaitForSwitch = 0x80868F4C; // type:func -BgBdanObjects_ChangeWaterBoxLevel = 0x80868F98; // type:func -BgBdanObjects_WaitForTimerExpired = 0x80869060; // type:func -BgBdanObjects_WaitForPlayerOnTop = 0x808690B4; // type:func -BgBdanObjects_FallToLowerPos = 0x80869138; // type:func -BgBdanObjects_Update = 0x808691F4; // type:func -BgBdanObjects_Draw = 0x80869230; // type:func -BgBdanSwitch_InitDynaPoly = 0x80869530; // type:func -BgBdanSwitch_InitCollision = 0x80869588; // type:func -func_8086D0EC = 0x808695DC; // type:func -BgBdanSwitch_Init = 0x80869748; // type:func -BgBdanSwitch_Destroy = 0x80869904; // type:func -func_8086D4B4 = 0x80869970; // type:func -func_8086D548 = 0x80869A04; // type:func -func_8086D5C4 = 0x80869A80; // type:func -func_8086D5E0 = 0x80869AA0; // type:func -func_8086D67C = 0x80869B3C; // type:func -func_8086D694 = 0x80869B58; // type:func -func_8086D730 = 0x80869BF8; // type:func -func_8086D754 = 0x80869C20; // type:func -func_8086D7FC = 0x80869CC8; // type:func -func_8086D80C = 0x80869CDC; // type:func -func_8086D86C = 0x80869D3C; // type:func -func_8086D888 = 0x80869D5C; // type:func -func_8086D8BC = 0x80869D94; // type:func -func_8086D8CC = 0x80869DA8; // type:func -func_8086D944 = 0x80869E20; // type:func -func_8086D95C = 0x80869E3C; // type:func -func_8086D9F8 = 0x80869EDC; // type:func -func_8086DA1C = 0x80869F04; // type:func -func_8086DAB4 = 0x80869FA0; // type:func -func_8086DAC4 = 0x80869FB4; // type:func -func_8086DB24 = 0x8086A014; // type:func -func_8086DB40 = 0x8086A034; // type:func -func_8086DB4C = 0x8086A044; // type:func -func_8086DB68 = 0x8086A064; // type:func -func_8086DC30 = 0x8086A12C; // type:func -func_8086DC48 = 0x8086A148; // type:func -func_8086DCCC = 0x8086A1CC; // type:func -func_8086DCE8 = 0x8086A1EC; // type:func -func_8086DDA8 = 0x8086A2AC; // type:func -func_8086DDC0 = 0x8086A2C8; // type:func -BgBdanSwitch_Update = 0x8086A35C; // type:func -func_8086DF58 = 0x8086A460; // type:func -BgBdanSwitch_Draw = 0x8086A4D0; // type:func -BgBomGuard_SetupAction = 0x8086A960; // type:func -BgBomGuard_Init = 0x8086A96C; // type:func -BgBomGuard_Destroy = 0x8086AA08; // type:func -func_8086E638 = 0x8086AA3C; // type:func -BgBomGuard_Update = 0x8086AB08; // type:func -BgBombwall_InitDynapoly = 0x8086AB80; // type:func -BgBombwall_RotateVec = 0x8086ABD8; // type:func -BgBombwall_Init = 0x8086AC2C; // type:func -BgBombwall_DestroyCollision = 0x8086AE3C; // type:func -BgBombwall_Destroy = 0x8086AEB8; // type:func -func_8086EB5C = 0x8086AED8; // type:func -func_8086ED50 = 0x8086B0CC; // type:func -func_8086ED70 = 0x8086B0F0; // type:func -func_8086EDFC = 0x8086B180; // type:func -func_8086EE40 = 0x8086B1C4; // type:func -func_8086EE94 = 0x8086B218; // type:func -BgBombwall_Update = 0x8086B248; // type:func -BgBombwall_Draw = 0x8086B274; // type:func -BgBowlWall_Init = 0x8086B440; // type:func -BgBowlWall_Destroy = 0x8086B4F8; // type:func -BgBowlWall_SpawnBullseyes = 0x8086B52C; // type:func -BgBowlWall_WaitForHit = 0x8086B6FC; // type:func -BgBowlWall_FallDoEffects = 0x8086B720; // type:func -BgBowlWall_FinishFall = 0x8086B9D4; // type:func -BgBowlWall_Reset = 0x8086BAB4; // type:func -BgBowlWall_Update = 0x8086BB4C; // type:func -BgBowlWall_Draw = 0x8086BB80; // type:func -BgBreakwall_SetupAction = 0x8086BDC0; // type:func -BgBreakwall_Init = 0x8086BDCC; // type:func -BgBreakwall_Destroy = 0x8086BF78; // type:func -BgBreakwall_SpawnFragments = 0x8086BFAC; // type:func -BgBreakwall_WaitForObject = 0x8086C47C; // type:func -BgBreakwall_Wait = 0x8086C584; // type:func -BgBreakwall_LavaCoverMove = 0x8086C754; // type:func -BgBreakwall_Update = 0x8086C7A8; // type:func -BgBreakwall_Draw = 0x8086C7CC; // type:func -BgDdanJd_Init = 0x8086CC30; // type:func -BgDdanJd_Destroy = 0x8086CCDC; // type:func -BgDdanJd_Idle = 0x8086CD10; // type:func -BgDdanJd_MoveEffects = 0x8086CEB4; // type:func -BgDdanJd_Move = 0x8086D08C; // type:func -BgDdanJd_Update = 0x8086D190; // type:func -BgDdanJd_Draw = 0x8086D1B4; // type:func -BgDdanKd_SetupAction = 0x8086D280; // type:func -BgDdanKd_Init = 0x8086D28C; // type:func -BgDdanKd_Destroy = 0x8086D384; // type:func -BgDdanKd_CheckForExplosions = 0x8086D3CC; // type:func -BgDdanKd_LowerStairs = 0x8086D4E4; // type:func -BgDdanKd_DoNothing = 0x8086D9B8; // type:func -BgDdanKd_Update = 0x8086D9C8; // type:func -BgDdanKd_Draw = 0x8086D9EC; // type:func -BgDodoago_SetupAction = 0x8086DB70; // type:func -BgDodoago_SpawnSparkles = 0x8086DB7C; // type:func -BgDodoago_Init = 0x8086DC9C; // type:func -BgDodoago_Destroy = 0x8086DE00; // type:func -BgDodoago_WaitExplosives = 0x8086DE6C; // type:func -BgDodoago_OpenJaw = 0x8086E130; // type:func -BgDodoago_DoNothing = 0x8086E3F4; // type:func -BgDodoago_LightOneEye = 0x8086E404; // type:func -BgDodoago_Update = 0x8086E468; // type:func -BgDodoago_Draw = 0x8086E5C0; // type:func -BgDyYoseizo_Init = 0x8086E920; // type:func -BgDyYoseizo_Destroy = 0x8086EA24; // type:func -BgDyYoseizo_SpawnEffects = 0x8086EA34; // type:func -BgDyYoseizo_Bob = 0x8086ED30; // type:func -BgDyYoseizo_CheckMagicAcquired = 0x8086EDF8; // type:func -BgDyYoseizo_ChooseType = 0x8086EEBC; // type:func -BgDyYoseizo_SetupSpinGrow_NoReward = 0x8086F2B8; // type:func -BgDyYoseizo_SpinGrow_NoReward = 0x8086F3B4; // type:func -BgDyYoseizo_CompleteSpinGrow_NoReward = 0x8086F510; // type:func -BgDyYoseizo_SetupGreetPlayer_NoReward = 0x8086F5C0; // type:func -BgDyYoseizo_GreetPlayer_NoReward = 0x8086F6D8; // type:func -BgDyYoseizo_SetupHealPlayer_NoReward = 0x8086F7B4; // type:func -BgDyYoseizo_HealPlayer_NoReward = 0x8086F8A0; // type:func -BgDyYoseizo_SayFarewell_NoReward = 0x8086FB78; // type:func -BgDyYoseizo_SetupSpinShrink = 0x8086FC54; // type:func -BgDyYoseizo_SpinShrink = 0x8086FD58; // type:func -BgDyYoseizo_Vanish = 0x8086FE48; // type:func -BgDyYoseizo_SetupSpinGrow_Reward = 0x8086FEEC; // type:func -BgDyYoseizo_SpinGrowSetupGive_Reward = 0x80870020; // type:func -BgDyYoseizo_Give_Reward = 0x8087034C; // type:func -BgDyYoseizo_Update = 0x8087099C; // type:func -BgDyYoseizo_OverrideLimbDraw = 0x80870BC8; // type:func -BgDyYoseizo_Draw = 0x80870C30; // type:func -BgDyYoseizo_SpawnEffect = 0x80870DB8; // type:func -BgDyYoseizo_UpdateEffects = 0x80870EC8; // type:func -BgDyYoseizo_DrawEffects = 0x808711BC; // type:func -BgGanonOtyuka_Init = 0x80871710; // type:func -BgGanonOtyuka_Destroy = 0x808717AC; // type:func -BgGanonOtyuka_WaitToFall = 0x808717E0; // type:func -BgGanonOtyuka_Fall = 0x80871A30; // type:func -BgGanonOtyuka_DoNothing = 0x80871E70; // type:func -BgGanonOtyuka_Update = 0x80871E80; // type:func -BgGanonOtyuka_Draw = 0x80871EC8; // type:func -BgGateShutter_Init = 0x80873D50; // type:func -BgGateShutter_Destroy = 0x80873E38; // type:func -func_8087828C = 0x80873E6C; // type:func -func_80878300 = 0x80873EE0; // type:func -func_808783AC = 0x80873F90; // type:func -func_808783D4 = 0x80873FB8; // type:func -BgGateShutter_Update = 0x80874074; // type:func -BgGateShutter_Draw = 0x808740A8; // type:func -BgGjyoBridge_Init = 0x808741E0; // type:func -BgGjyoBridge_Destroy = 0x80874298; // type:func -func_808787A4 = 0x808742CC; // type:func -BgGjyoBridge_TriggerCutscene = 0x808742DC; // type:func -BgGjyoBridge_SpawnBridge = 0x80874434; // type:func -BgGjyoBridge_Update = 0x808744B0; // type:func -BgGjyoBridge_Draw = 0x808744D4; // type:func -BgGndDarkmeiro_ToggleBlock = 0x808746D0; // type:func -BgGndDarkmeiro_Init = 0x8087475C; // type:func -BgGndDarkmeiro_Destroy = 0x80874988; // type:func -BgGndDarkmeiro_Noop = 0x808749D0; // type:func -BgGndDarkmeiro_UpdateBlockTimer = 0x808749E0; // type:func -BgGndDarkmeiro_UpdateStaticBlock = 0x80874BD4; // type:func -BgGndDarkmeiro_UpdateSwitchBlock = 0x80874BE4; // type:func -BgGndDarkmeiro_Update = 0x80874C48; // type:func -BgGndDarkmeiro_DrawInvisiblePath = 0x80874C6C; // type:func -BgGndDarkmeiro_DrawSwitchBlock = 0x80874C9C; // type:func -BgGndDarkmeiro_DrawStaticBlock = 0x80874DB4; // type:func -BgGndFiremeiro_Init = 0x80874E90; // type:func -BgGndFiremeiro_Destroy = 0x80874F44; // type:func -BgGndFiremeiro_Sink = 0x80874F84; // type:func -BgGndFiremeiro_Shake = 0x80875040; // type:func -BgGndFiremeiro_Rise = 0x808751E4; // type:func -BgGndFiremeiro_Update = 0x808752A4; // type:func -BgGndFiremeiro_Draw = 0x808752C8; // type:func -BgGndIceblock_Init = 0x808753E0; // type:func -BgGndIceblock_Destroy = 0x808754CC; // type:func -BgGndIceblock_SetPosition = 0x80875500; // type:func -BgGndIceblock_CheckForBlock = 0x8087560C; // type:func -BgGndIceblock_NextAction = 0x80875648; // type:func -BgGndIceblock_SetNextPosition = 0x80875694; // type:func -BgGndIceblock_Idle = 0x808759C4; // type:func -BgGndIceblock_Reset = 0x80875A80; // type:func -BgGndIceblock_Fall = 0x80875B44; // type:func -BgGndIceblock_Hole = 0x80875BFC; // type:func -BgGndIceblock_Slide = 0x80875C98; // type:func -BgGndIceblock_Update = 0x80875FC8; // type:func -BgGndIceblock_Draw = 0x80875FEC; // type:func -BgGndNisekabe_Init = 0x808764E0; // type:func -BgGndNisekabe_Destroy = 0x8087651C; // type:func -BgGndNisekabe_Update = 0x8087652C; // type:func -BgGndNisekabe_Draw = 0x80876560; // type:func -BgGndSoulmeiro_Init = 0x80876650; // type:func -BgGndSoulmeiro_Destroy = 0x80876794; // type:func -func_8087AF38 = 0x808767D0; // type:func -func_8087B284 = 0x80876B1C; // type:func -func_8087B350 = 0x80876BE8; // type:func -BgGndSoulmeiro_Update = 0x80876C3C; // type:func -BgGndSoulmeiro_Draw = 0x80876C68; // type:func -BgHaka_Init = 0x80876EB0; // type:func -BgHaka_Destroy = 0x80876F2C; // type:func -func_8087B758 = 0x80876F60; // type:func -func_8087B7E8 = 0x80876FF0; // type:func -func_8087B938 = 0x80877144; // type:func -func_8087BAAC = 0x808772BC; // type:func -func_8087BAE4 = 0x808772F8; // type:func -BgHaka_Update = 0x80877370; // type:func -BgHaka_Draw = 0x80877394; // type:func -BgHakaGate_Init = 0x80877570; // type:func -BgHakaGate_Destroy = 0x80877840; // type:func -BgHakaGate_DoNothing = 0x8087789C; // type:func -BgHakaGate_StatueInactive = 0x808778AC; // type:func -BgHakaGate_StatueIdle = 0x808778E8; // type:func -BgHakaGate_StatueTurn = 0x80877A00; // type:func -BgHakaGate_FloorClosed = 0x80877BE4; // type:func -BgHakaGate_FloorOpen = 0x80877D6C; // type:func -BgHakaGate_GateWait = 0x80877DF8; // type:func -BgHakaGate_GateOpen = 0x80877E48; // type:func -BgHakaGate_SkullOfTruth = 0x80877ED8; // type:func -BgHakaGate_FalseSkull = 0x80877F34; // type:func -BgHakaGate_Update = 0x80877FB4; // type:func -BgHakaGate_DrawFlame = 0x80877FFC; // type:func -BgHakaGate_Draw = 0x808781D4; // type:func -BgHakaHuta_Init = 0x80878610; // type:func -BgHakaHuta_Destroy = 0x808786D0; // type:func -BgHakaHuta_SpawnDust = 0x80878704; // type:func -BgHakaHuta_PlaySfx = 0x808788C0; // type:func -BgHakaHuta_SpawnEnemies = 0x8087894C; // type:func -BgHakaHuta_Open = 0x80878C14; // type:func -BgHakaHuta_SlideOpen = 0x80878CC8; // type:func -func_8087D720 = 0x80878D7C; // type:func -BgHakaHuta_DoNothing = 0x80878F20; // type:func -BgHakaHuta_Update = 0x80878F30; // type:func -BgHakaHuta_Draw = 0x80878F54; // type:func -BgHakaMegane_Init = 0x808790B0; // type:func -BgHakaMegane_Destroy = 0x80879168; // type:func -func_8087DB24 = 0x8087919C; // type:func -func_8087DBF0 = 0x8087926C; // type:func -BgHakaMegane_DoNothing = 0x808792E0; // type:func -BgHakaMegane_Update = 0x808792F0; // type:func -BgHakaMegane_Draw = 0x80879314; // type:func -BgHakaMeganeBG_Init = 0x808794B0; // type:func -BgHakaMeganeBG_Destroy = 0x8087964C; // type:func -func_8087DFF8 = 0x80879680; // type:func -func_8087E040 = 0x808796C8; // type:func -func_8087E10C = 0x80879794; // type:func -func_8087E1E0 = 0x80879868; // type:func -func_8087E258 = 0x808798E0; // type:func -func_8087E288 = 0x80879910; // type:func -func_8087E2D8 = 0x80879960; // type:func -func_8087E34C = 0x808799D4; // type:func -BgHakaMeganeBG_Update = 0x808799E4; // type:func -BgHakaMeganeBG_Draw = 0x80879A08; // type:func -BgHakaSgami_Init = 0x80879B70; // type:func -BgHakaSgami_Destroy = 0x80879E18; // type:func -BgHakaSgami_SetupSpin = 0x80879E78; // type:func -BgHakaSgami_Spin = 0x80879EF0; // type:func -BgHakaSgami_Update = 0x8087A404; // type:func -BgHakaSgami_Draw = 0x8087A458; // type:func -BgHakaShip_Init = 0x8087A790; // type:func -BgHakaShip_Destroy = 0x8087A8D4; // type:func -BgHakaShip_ChildUpdatePosition = 0x8087A914; // type:func -BgHakaShip_WaitForSong = 0x8087A970; // type:func -BgHakaShip_CutsceneStationary = 0x8087A9E8; // type:func -BgHakaShip_Move = 0x8087AA84; // type:func -BgHakaShip_SetupCrash = 0x8087AC48; // type:func -BgHakaShip_CrashShake = 0x8087ACA4; // type:func -BgHakaShip_CrashFall = 0x8087AD34; // type:func -BgHakaShip_Update = 0x8087ADF4; // type:func -BgHakaShip_Draw = 0x8087AE34; // type:func -BgHakaTrap_Init = 0x8087B1E0; // type:func -BgHakaTrap_Destroy = 0x8087B480; // type:func -func_8087FFC0 = 0x8087B504; // type:func -func_808801B8 = 0x8087B704; // type:func -func_808802D8 = 0x8087B828; // type:func -func_80880484 = 0x8087B9D4; // type:func -func_808805C0 = 0x8087BB10; // type:func -func_808806BC = 0x8087BC0C; // type:func -func_808808F4 = 0x8087BE44; // type:func -func_808809B0 = 0x8087BF04; // type:func -func_808809E4 = 0x8087BF38; // type:func -func_80880AE8 = 0x8087C044; // type:func -func_80880C0C = 0x8087C168; // type:func -BgHakaTrap_Update = 0x8087C1DC; // type:func -func_80880D68 = 0x8087C2CC; // type:func -BgHakaTrap_Draw = 0x8087C368; // type:func -BgHakaTubo_Init = 0x8087C7B0; // type:func -BgHakaTubo_Destroy = 0x8087C8AC; // type:func -BgHakaTubo_Idle = 0x8087C904; // type:func -BgHakaTubo_DropCollectible = 0x8087CB70; // type:func -BgHakaTubo_Update = 0x8087CE34; // type:func -BgHakaTubo_DrawFlameCircle = 0x8087CE68; // type:func -BgHakaTubo_Draw = 0x8087D014; // type:func -BgHakaWater_Init = 0x8087D1D0; // type:func -BgHakaWater_Destroy = 0x8087D25C; // type:func -BgHakaWater_LowerWater = 0x8087D26C; // type:func -BgHakaWater_Wait = 0x8087D3B4; // type:func -BgHakaWater_ChangeWaterLevel = 0x8087D470; // type:func -BgHakaWater_Update = 0x8087D578; // type:func -BgHakaWater_Draw = 0x8087D59C; // type:func -BgHakaZou_Init = 0x8087D9D0; // type:func -BgHakaZou_Destroy = 0x8087DCB8; // type:func -func_808828F4 = 0x8087DD08; // type:func -BgHakaZou_Wait = 0x8087DE84; // type:func -func_80882BDC = 0x8087DFF4; // type:func -func_80882CC4 = 0x8087E0DC; // type:func -func_80882E54 = 0x8087E26C; // type:func -func_80883000 = 0x8087E41C; // type:func -func_80883104 = 0x8087E520; // type:func -func_80883144 = 0x8087E560; // type:func -func_80883254 = 0x8087E670; // type:func -func_80883328 = 0x8087E748; // type:func -func_808834D8 = 0x8087E8F8; // type:func -BgHakaZou_DoNothing = 0x8087E988; // type:func -BgHakaZou_Update = 0x8087E998; // type:func -BgHakaZou_Draw = 0x8087E9DC; // type:func -BgHeavyBlock_SetPieceRandRot = 0x8087EBC0; // type:func -BgHeavyBlock_InitPiece = 0x8087EC50; // type:func -BgHeavyBlock_SetupDynapoly = 0x8087EDCC; // type:func -BgHeavyBlock_Init = 0x8087EE40; // type:func -BgHeavyBlock_Destroy = 0x8087F084; // type:func -BgHeavyBlock_MovePiece = 0x8087F0CC; // type:func -BgHeavyBlock_SpawnDust = 0x8087F290; // type:func -BgHeavyBlock_SpawnPieces = 0x8087F5F4; // type:func -BgHeavyBlock_Wait = 0x8087F7EC; // type:func -BgHeavyBlock_LiftedUp = 0x8087F914; // type:func -BgHeavyBlock_Fly = 0x8087FA7C; // type:func -BgHeavyBlock_DoNothing = 0x8087FD94; // type:func -BgHeavyBlock_Land = 0x8087FDA4; // type:func -BgHeavyBlock_Update = 0x80880014; // type:func -BgHeavyBlock_Draw = 0x80880038; // type:func -BgHeavyBlock_DrawPiece = 0x808801A0; // type:func -BgHidanCurtain_Init = 0x808804B0; // type:func -BgHidanCurtain_Destroy = 0x808806C4; // type:func -BgHidanCurtain_WaitForSwitchOn = 0x808806F0; // type:func -BgHidanCurtain_WaitForCutscene = 0x808807A4; // type:func -BgHidanCurtain_WaitForClear = 0x808807D0; // type:func -BgHidanCurtain_WaitForSwitchOff = 0x80880814; // type:func -BgHidanCurtain_TurnOn = 0x80880858; // type:func -BgHidanCurtain_TurnOff = 0x808808CC; // type:func -BgHidanCurtain_WaitForTimer = 0x808809BC; // type:func -BgHidanCurtain_Update = 0x80880A20; // type:func -BgHidanCurtain_Draw = 0x80880CB4; // type:func -BgHidanDalm_Init = 0x80880F50; // type:func -BgHidanDalm_Destroy = 0x80881038; // type:func -BgHidanDalm_Wait = 0x80881080; // type:func -BgHidanDalm_Shrink = 0x80881204; // type:func -BgHidanDalm_Update = 0x808813B4; // type:func -BgHidanDalm_UpdateCollider = 0x80881414; // type:func -BgHidanDalm_Draw = 0x80881540; // type:func -BgHidanFirewall_Init = 0x808817A0; // type:func -BgHidanFirewall_Destroy = 0x80881840; // type:func -BgHidanFirewall_CheckProximity = 0x8088186C; // type:func -BgHidanFirewall_Wait = 0x808818DC; // type:func -BgHidanFirewall_Countdown = 0x80881924; // type:func -BgHidanFirewall_Erupt = 0x80881958; // type:func -BgHidanFirewall_Collide = 0x808819E8; // type:func -BgHidanFirewall_ColliderFollowPlayer = 0x80881A50; // type:func -BgHidanFirewall_Update = 0x80881BB4; // type:func -BgHidanFirewall_Draw = 0x80881C8C; // type:func -BgHidanFslift_Init = 0x80881F00; // type:func -BgHidanFslift_SetHookshotTargetPos = 0x80881FE8; // type:func -BgHidanFslift_Destroy = 0x80882048; // type:func -BgHidanFslift_SetupIdle = 0x8088207C; // type:func -BgHidanFslift_Idle = 0x80882098; // type:func -BgHidanFslift_Descend = 0x80882138; // type:func -BgHidanFslift_Ascend = 0x808821A4; // type:func -BgHidanFslift_Update = 0x80882240; // type:func -BgHidanFslift_Draw = 0x808822E8; // type:func -BgHidanFwbig_Init = 0x808823D0; // type:func -BgHidanFwbig_Destroy = 0x80882570; // type:func -BgHidanFwbig_UpdatePosition = 0x8088259C; // type:func -BgHidanFwbig_WaitForSwitch = 0x8088261C; // type:func -BgHidanFwbig_WaitForCs = 0x80882680; // type:func -BgHidanFwbig_Rise = 0x808826AC; // type:func -BgHidanFwbig_Lower = 0x80882720; // type:func -BgHidanFwbig_WaitForTimer = 0x80882800; // type:func -BgHidanFwbig_WaitForPlayer = 0x80882850; // type:func -BgHidanFwbig_Move = 0x808828B4; // type:func -BgHidanFwbig_MoveCollider = 0x80882954; // type:func -BgHidanFwbig_Update = 0x80882B54; // type:func -BgHidanFwbig_Draw = 0x80882CCC; // type:func -BgHidanHamstep_SetupAction = 0x808830B0; // type:func -BgHidanHamstep_SpawnChildren = 0x808830D0; // type:func -BgHidanHamstep_Init = 0x8088324C; // type:func -BgHidanHamstep_Destroy = 0x808834BC; // type:func -func_808884C8 = 0x80883510; // type:func -func_80888638 = 0x80883680; // type:func -func_80888694 = 0x808836DC; // type:func -func_80888734 = 0x8088377C; // type:func -func_808887C4 = 0x80883810; // type:func -func_80888860 = 0x808838AC; // type:func -func_808889B8 = 0x808839F8; // type:func -func_80888A58 = 0x80883A98; // type:func -BgHidanHamstep_DoNothing = 0x80883C30; // type:func -BgHidanHamstep_Update = 0x80883C40; // type:func -BgHidanHamstep_Draw = 0x80883C64; // type:func -BgHidanHrock_Init = 0x80883F60; // type:func -BgHidanHrock_Destroy = 0x80884290; // type:func -func_808894A4 = 0x808842D8; // type:func -func_808894B0 = 0x808842E8; // type:func -func_8088960C = 0x80884444; // type:func -func_808896B8 = 0x808844F0; // type:func -BgHidanHrock_Update = 0x808845D0; // type:func -BgHidanHrock_Draw = 0x808845F4; // type:func -BgHidanKousi_SetupAction = 0x80884790; // type:func -BgHidanKousi_Init = 0x8088479C; // type:func -BgHidanKousi_Destroy = 0x80884894; // type:func -func_80889ACC = 0x808848C8; // type:func -func_80889B5C = 0x80884954; // type:func -func_80889BC0 = 0x808849B8; // type:func -func_80889C18 = 0x80884A10; // type:func -func_80889C90 = 0x80884A88; // type:func -func_80889D28 = 0x80884B24; // type:func -BgHidanKousi_Update = 0x80884B34; // type:func -BgHidanKousi_Draw = 0x80884B58; // type:func -BgHidanKowarerukabe_InitDynaPoly = 0x80884D20; // type:func -BgHidanKowarerukabe_InitColliderSphere = 0x80884DBC; // type:func -BgHidanKowarerukabe_OffsetActorYPos = 0x80884E50; // type:func -BgHidanKowarerukabe_Init = 0x80884E7C; // type:func -BgHidanKowarerukabe_Destroy = 0x80884F2C; // type:func -BgHidanKowarerukabe_SpawnDust = 0x80884F74; // type:func -BgHidanKowarerukabe_FloorBreak = 0x80885098; // type:func -func_8088A67C = 0x80885364; // type:func -BgHidanKowarerukabe_LargeWallBreak = 0x808855FC; // type:func -BgHidanKowarerukabe_Break = 0x80885888; // type:func -BgHidanKowarerukabe_Update = 0x80885918; // type:func -BgHidanKowarerukabe_Draw = 0x808859E8; // type:func -BgHidanRock_Init = 0x80885C00; // type:func -BgHidanRock_Destroy = 0x80885D7C; // type:func -func_8088B24C = 0x80885DD0; // type:func -func_8088B268 = 0x80885DF0; // type:func -func_8088B5F4 = 0x80886180; // type:func -func_8088B634 = 0x808861C0; // type:func -func_8088B69C = 0x8088622C; // type:func -func_8088B79C = 0x8088632C; // type:func -func_8088B90C = 0x8088649C; // type:func -func_8088B954 = 0x808864E4; // type:func -func_8088B990 = 0x80886520; // type:func -BgHidanRock_Update = 0x8088670C; // type:func -func_8088BC40 = 0x808867DC; // type:func -BgHidanRock_Draw = 0x808869EC; // type:func -BgHidanRsekizou_Init = 0x80886D00; // type:func -BgHidanRsekizou_Destroy = 0x80886E04; // type:func -BgHidanRsekizou_Update = 0x80886E4C; // type:func -BgHidanRsekizou_DrawFireball = 0x80887210; // type:func -BgHidanRsekizou_Draw = 0x80887528; // type:func -func_8088CEC0 = 0x808878E0; // type:func -BgHidanSekizou_Init = 0x80887C9C; // type:func -BgHidanSekizou_Destroy = 0x80887E10; // type:func -func_8088D434 = 0x80887E58; // type:func -func_8088D720 = 0x80888144; // type:func -func_8088D750 = 0x80888174; // type:func -BgHidanSekizou_Update = 0x808882E0; // type:func -func_8088D9F4 = 0x8088841C; // type:func -func_8088DC50 = 0x80888664; // type:func -func_8088DE08 = 0x8088881C; // type:func -BgHidanSekizou_Draw = 0x808888FC; // type:func -BgHidanSima_Init = 0x80888D30; // type:func -BgHidanSima_Destroy = 0x80888E34; // type:func -func_8088E518 = 0x80888E7C; // type:func -func_8088E5D0 = 0x80888F38; // type:func -func_8088E6D0 = 0x8088903C; // type:func -func_8088E760 = 0x808890D4; // type:func -func_8088E7A8 = 0x8088911C; // type:func -func_8088E90C = 0x80889280; // type:func -BgHidanSima_Update = 0x808893E0; // type:func -func_8088EB54 = 0x808894D0; // type:func -BgHidanSima_Draw = 0x80889948; // type:func -BgHidanSyoku_Init = 0x80889C30; // type:func -BgHidanSyoku_Destroy = 0x80889CBC; // type:func -func_8088F47C = 0x80889CF0; // type:func -func_8088F4B8 = 0x80889D2C; // type:func -func_8088F514 = 0x80889D8C; // type:func -func_8088F5A0 = 0x80889E18; // type:func -func_8088F62C = 0x80889EA4; // type:func -BgHidanSyoku_Update = 0x80889F00; // type:func -BgHidanSyoku_Draw = 0x80889FA8; // type:func -BgIceObjects_Init = 0x8088A090; // type:func -BgIceObjects_Destroy = 0x8088A11C; // type:func -BgIceObjects_SetNextTarget = 0x8088A150; // type:func -BgIceObjects_CheckPits = 0x8088A5D0; // type:func -BgIceObjects_Idle = 0x8088A758; // type:func -BgIceObjects_Slide = 0x8088A85C; // type:func -BgIceObjects_Reset = 0x8088ABEC; // type:func -BgIceObjects_Stuck = 0x8088AC88; // type:func -BgIceObjects_Update = 0x8088ACC4; // type:func -BgIceObjects_Draw = 0x8088ACE8; // type:func -BgIceShelter_InitColliders = 0x8088AFD0; // type:func -BgIceShelter_InitDynaPoly = 0x8088B104; // type:func -BgIceShelter_RotateY = 0x8088B15C; // type:func -BgIceShelter_Init = 0x8088B1DC; // type:func -BgIceShelter_Destroy = 0x8088B358; // type:func -BgIceShelter_SpawnSteamAround = 0x8088B3E4; // type:func -BgIceShelter_SpawnSteamAlong = 0x8088B658; // type:func -BgIceShelter_SetupIdle = 0x8088B8BC; // type:func -BgIceShelter_Idle = 0x8088B8D8; // type:func -BgIceShelter_SetupMelt = 0x8088BA18; // type:func -BgIceShelter_Melt = 0x8088BA34; // type:func -BgIceShelter_Update = 0x8088BBF8; // type:func -BgIceShelter_Draw = 0x8088BC1C; // type:func -func_80891AC0 = 0x8088C210; // type:func -BgIceShutter_Init = 0x8088C298; // type:func -BgIceShutter_Destroy = 0x8088C418; // type:func -func_80891CF4 = 0x8088C44C; // type:func -func_80891D6C = 0x8088C4C4; // type:func -func_80891DD4 = 0x8088C52C; // type:func -BgIceShutter_Update = 0x8088C594; // type:func -BgIceShutter_Draw = 0x8088C5B8; // type:func -BgIceTurara_Init = 0x8088C680; // type:func -BgIceTurara_Destroy = 0x8088C75C; // type:func -BgIceTurara_Break = 0x8088C7A4; // type:func -BgIceTurara_Stalagmite = 0x8088C984; // type:func -BgIceTurara_Wait = 0x8088C9EC; // type:func -BgIceTurara_Shiver = 0x8088CA24; // type:func -BgIceTurara_Fall = 0x8088CB90; // type:func -BgIceTurara_Regrow = 0x8088CCE8; // type:func -BgIceTurara_Update = 0x8088CD38; // type:func -BgIceTurara_Draw = 0x8088CD5C; // type:func -BgInGate_SetupAction = 0x8088CEB0; // type:func -BgInGate_Init = 0x8088CEBC; // type:func -BgInGate_Destroy = 0x8088CFD8; // type:func -func_80892890 = 0x8088D00C; // type:func -BgInGate_DoNothing = 0x8088D10C; // type:func -BgInGate_Update = 0x8088D11C; // type:func -BgInGate_Draw = 0x8088D140; // type:func -BgJya1flift_InitDynapoly = 0x8088D240; // type:func -BgJya1flift_InitCollision = 0x8088D298; // type:func -BgJya1flift_Init = 0x8088D2EC; // type:func -BgJya1flift_Destroy = 0x8088D3E4; // type:func -BgJya1flift_SetupWaitForSwitch = 0x8088D43C; // type:func -BgJya1flift_WaitForSwitch = 0x8088D45C; // type:func -BgJya1flift_SetupDoNothing = 0x8088D4A0; // type:func -BgJya1flift_DoNothing = 0x8088D4C0; // type:func -BgJya1flift_ChangeDirection = 0x8088D4D0; // type:func -BgJya1flift_Move = 0x8088D4F8; // type:func -BgJya1flift_ResetMoveDelay = 0x8088D5DC; // type:func -BgJya1flift_DelayMove = 0x8088D5F4; // type:func -BgJya1flift_Update = 0x8088D634; // type:func -BgJya1flift_Draw = 0x8088D750; // type:func -BgJyaAmishutter_InitDynaPoly = 0x8088D8D0; // type:func -BgJyaAmishutter_Init = 0x8088D928; // type:func -BgJyaAmishutter_Destroy = 0x8088D970; // type:func -BgJyaAmishutter_SetupWaitForPlayer = 0x8088D9A4; // type:func -BgJyaAmishutter_WaitForPlayer = 0x8088D9B8; // type:func -func_80893428 = 0x8088DA14; // type:func -func_80893438 = 0x8088DA28; // type:func -func_808934B0 = 0x8088DAA0; // type:func -func_808934C0 = 0x8088DAB4; // type:func -func_808934FC = 0x8088DAF0; // type:func -func_8089350C = 0x8088DB04; // type:func -BgJyaAmishutter_Update = 0x8088DB68; // type:func -BgJyaAmishutter_Draw = 0x8088DB90; // type:func -BgJyaBigmirror_SetRoomFlag = 0x8088DC60; // type:func -BgJyaBigmirror_HandleCobra = 0x8088DCD0; // type:func -BgJyaBigmirror_SetBombiwaFlag = 0x8088DE68; // type:func -BgJyaBigmirror_HandleMirRay = 0x8088DEBC; // type:func -BgJyaBigmirror_Init = 0x8088E064; // type:func -BgJyaBigmirror_Destroy = 0x8088E0E8; // type:func -BgJyaBigmirror_Update = 0x8088E108; // type:func -BgJyaBigmirror_DrawLightBeam = 0x8088E158; // type:func -BgJyaBigmirror_Draw = 0x8088E2E4; // type:func -BgJyaBlock_Init = 0x8088E4B0; // type:func -BgJyaBlock_Destroy = 0x8088E568; // type:func -BgJyaBlock_Update = 0x8088E59C; // type:func -BgJyaBlock_Draw = 0x8088E5C0; // type:func -BgJyaBombchuiwa_SetupCollider = 0x8088E720; // type:func -BgJyaBombchuiwa_SetDrawFlags = 0x8088E774; // type:func -BgJyaBombchuiwa_Init = 0x8088E798; // type:func -BgJyaBombchuiwa_Destroy = 0x8088E818; // type:func -BgJyaBombchuiwa_Break = 0x8088E844; // type:func -BgJyaBombchuiwa_SetupWaitForExplosion = 0x8088EAD0; // type:func -BgJyaBombchuiwa_WaitForExplosion = 0x8088EB08; // type:func -BgJyaBombchuiwa_CleanUpAfterExplosion = 0x8088EBEC; // type:func -func_808949B8 = 0x8088EC44; // type:func -BgJyaBombchuiwa_SpawnLightRay = 0x8088ECD0; // type:func -BgJyaBombchuiwa_Update = 0x8088ED48; // type:func -BgJyaBombchuiwa_DrawRock = 0x8088ED74; // type:func -BgJyaBombchuiwa_DrawLight = 0x8088EDFC; // type:func -BgJyaBombchuiwa_Draw = 0x8088F058; // type:func -BgJyaBombiwa_SetupDynaPoly = 0x8088F260; // type:func -BgJyaBombiwa_InitCollider = 0x8088F2B8; // type:func -BgJyaBombiwa_Init = 0x8088F30C; // type:func -BgJyaBombiwa_Destroy = 0x8088F38C; // type:func -BgJyaBombiwa_Break = 0x8088F3D4; // type:func -BgJyaBombiwa_Update = 0x8088F668; // type:func -BgJyaBombiwa_Draw = 0x8088F6F8; // type:func -func_808958F0 = 0x8088F820; // type:func -BgJyaCobra_InitDynapoly = 0x8088F874; // type:func -BgJyaCobra_SpawnRay = 0x8088F8CC; // type:func -func_80895A70 = 0x8088F934; // type:func -func_80895BEC = 0x8088FAB4; // type:func -func_80895C74 = 0x8088FB38; // type:func -BgJyaCobra_UpdateShadowFromSide = 0x8088FDB8; // type:func -BgJyaCobra_UpdateShadowFromTop = 0x808903E0; // type:func -BgJyaCobra_Init = 0x8089069C; // type:func -BgJyaCobra_Destroy = 0x80890788; // type:func -func_80896918 = 0x808907BC; // type:func -func_80896950 = 0x808907F8; // type:func -func_808969F8 = 0x808908A0; // type:func -func_80896ABC = 0x80890968; // type:func -BgJyaCobra_Update = 0x80890AFC; // type:func -func_80896CB4 = 0x80890B70; // type:func -func_80896D78 = 0x80890BF8; // type:func -BgJyaCobra_DrawShadow = 0x80890D24; // type:func -BgJyaCobra_Draw = 0x80890FA8; // type:func -BgJyaGoroiwa_UpdateCollider = 0x80891560; // type:func -BgJyaGoroiwa_InitCollider = 0x808915B8; // type:func -BgJyaGoroiwa_UpdateRotation = 0x80891620; // type:func -BgJyaGoroiwa_Init = 0x80891660; // type:func -BgJyaGoroiwa_Destroy = 0x808916F4; // type:func -BgJyaGoroiwa_SetupMove = 0x80891720; // type:func -BgJyaGoroiwa_Move = 0x80891750; // type:func -BgJyaGoroiwa_SetupWait = 0x808919E4; // type:func -BgJyaGoroiwa_Wait = 0x808919FC; // type:func -BgJyaGoroiwa_Update = 0x80891A4C; // type:func -BgJyaGoroiwa_Draw = 0x80891B38; // type:func -BgJyaHaheniron_ColliderInit = 0x80891CE0; // type:func -BgJyaHaheniron_SpawnFragments = 0x80891D34; // type:func -BgJyaHaheniron_Init = 0x80891F60; // type:func -BgJyaHaheniron_Destroy = 0x8089202C; // type:func -BgJyaHaheniron_SetupChairCrumble = 0x80892064; // type:func -BgJyaHaheniron_ChairCrumble = 0x80892078; // type:func -BgJyaHaheniron_SetupPillarCrumble = 0x808921B4; // type:func -BgJyaHaheniron_PillarCrumble = 0x808921C8; // type:func -BgJyaHaheniron_SetupRubbleCollide = 0x80892248; // type:func -BgJyaHaheniron_RubbleCollide = 0x8089225C; // type:func -BgJyaHaheniron_Update = 0x808922C0; // type:func -BgJyaHaheniron_Draw = 0x808922EC; // type:func -BgJyaIronobj_InitCylinder = 0x808924D0; // type:func -BgJyaIronobj_SpawnPillarParticles = 0x80892550; // type:func -BgJyaIronobj_SpawnThroneParticles = 0x808929CC; // type:func -BgJyaIronobj_Init = 0x80892DF8; // type:func -BgJyaIronobj_Destroy = 0x80892E8C; // type:func -func_808992D8 = 0x80892ED4; // type:func -func_808992E8 = 0x80892EE8; // type:func -BgJyaIronobj_Update = 0x80893028; // type:func -BgJyaIronobj_Draw = 0x8089304C; // type:func -BgJyaKanaami_InitDynaPoly = 0x80893280; // type:func -BgJyaKanaami_Init = 0x808932D8; // type:func -BgJyaKanaami_Destroy = 0x80893358; // type:func -func_80899880 = 0x8089338C; // type:func -func_80899894 = 0x808933A4; // type:func -func_8089993C = 0x8089344C; // type:func -func_80899950 = 0x80893464; // type:func -func_80899A08 = 0x8089351C; // type:func -BgJyaKanaami_Update = 0x80893530; // type:func -BgJyaKanaami_Draw = 0x80893564; // type:func -BgJyaLift_InitDynapoly = 0x80893630; // type:func -BgJyaLift_Init = 0x80893688; // type:func -BgJyaLift_Destroy = 0x80893744; // type:func -BgJyaLift_SetInitPosY = 0x80893788; // type:func -BgJyaLift_DelayMove = 0x808937AC; // type:func -BgJyaLift_SetupMove = 0x80893830; // type:func -BgJyaLift_Move = 0x80893844; // type:func -BgJyaLift_SetFinalPosY = 0x80893968; // type:func -BgJyaLift_Update = 0x80893980; // type:func -BgJyaLift_Draw = 0x80893A70; // type:func -BgJyaMegami_InitDynaPoly = 0x80893B80; // type:func -BgJyaMegami_InitCollider = 0x80893BD8; // type:func -BgJyaMegami_SpawnEffect = 0x80893C2C; // type:func -BgJyaMegami_SetupSpawnEffect = 0x80893E70; // type:func -BgJyaMegami_Init = 0x80893F6C; // type:func -BgJyaMegami_Destroy = 0x80894000; // type:func -BgJyaMegami_SetupDetectLight = 0x80894048; // type:func -BgJyaMegami_DetectLight = 0x80894064; // type:func -BgJyaMegami_SetupExplode = 0x808941F0; // type:func -BgJyaMegami_Explode = 0x80894288; // type:func -BgJyaMegami_Update = 0x80894610; // type:func -BgJyaMegami_DrawFace = 0x80894634; // type:func -BgJyaMegami_DrawExplode = 0x80894778; // type:func -BgJyaMegami_Draw = 0x80894944; // type:func -BgJyaZurerukabe_InitDynaPoly = 0x80894D70; // type:func -func_8089B4C8 = 0x80894DC8; // type:func -BgJyaZurerukabe_Init = 0x80894F64; // type:func -BgJyaZurerukabe_Destroy = 0x80895024; // type:func -func_8089B7B4 = 0x80895070; // type:func -func_8089B7C4 = 0x80895084; // type:func -func_8089B80C = 0x808950D0; // type:func -func_8089B870 = 0x80895138; // type:func -BgJyaZurerukabe_Update = 0x80895200; // type:func -BgJyaZurerukabe_Draw = 0x80895258; // type:func -BgMenkuriEye_Init = 0x80895420; // type:func -BgMenkuriEye_Destroy = 0x808954FC; // type:func -BgMenkuriEye_Update = 0x80895528; // type:func -BgMenkuriEye_Draw = 0x80895698; // type:func -BgMenkuriKaiten_Init = 0x808958C0; // type:func -BgMenkuriKaiten_Destroy = 0x80895928; // type:func -BgMenkuriKaiten_Update = 0x8089595C; // type:func -BgMenkuriKaiten_Draw = 0x808959BC; // type:func -BgMenkuriNisekabe_Init = 0x80895A50; // type:func -BgMenkuriNisekabe_Destroy = 0x80895A78; // type:func -BgMenkuriNisekabe_Update = 0x80895A88; // type:func -BgMenkuriNisekabe_Draw = 0x80895ABC; // type:func -BgMizuBwall_RotateVec3f = 0x80895BA0; // type:func -BgMizuBwall_Init = 0x80895BF4; // type:func -BgMizuBwall_Destroy = 0x80896470; // type:func -BgMizuBwall_SetAlpha = 0x808964B8; // type:func -BgMizuBwall_SpawnDebris = 0x8089663C; // type:func -BgMizuBwall_Idle = 0x80896910; // type:func -BgMizuBwall_Break = 0x80896A10; // type:func -BgMizuBwall_DoNothing = 0x80896A3C; // type:func -BgMizuBwall_Update = 0x80896A4C; // type:func -BgMizuBwall_Draw = 0x80896A70; // type:func -BgMizuMovebg_GetDragonStatueBossRoomOffsetIndex = 0x80897070; // type:func -BgMizuMovebg_Init = 0x808970DC; // type:func -BgMizuMovebg_Destroy = 0x808974A4; // type:func -BgMizuMovebg_SetPosFromPath = 0x80897558; // type:func -BgMizuMovebg_SetScrollAlphas = 0x808975EC; // type:func -BgMizuMovebg_UpdateMain = 0x80897770; // type:func -BgMizuMovebg_UpdateHookshotPlatform = 0x80897AAC; // type:func -BgMizuMovebg_Update = 0x80897C68; // type:func -BgMizuMovebg_Draw = 0x80897C8C; // type:func -BgMizuShutter_Init = 0x80898200; // type:func -BgMizuShutter_Destroy = 0x80898460; // type:func -BgMizuShutter_WaitForSwitch = 0x80898494; // type:func -BgMizuShutter_WaitForCutscene = 0x80898528; // type:func -BgMizuShutter_Move = 0x80898574; // type:func -BgMizuShutter_WaitForTimer = 0x80898760; // type:func -BgMizuShutter_Update = 0x808987E0; // type:func -BgMizuShutter_Draw = 0x80898804; // type:func -BgMizuUzu_Init = 0x80898A00; // type:func -BgMizuUzu_Destroy = 0x80898A7C; // type:func -func_8089F788 = 0x80898AB0; // type:func -BgMizuUzu_Update = 0x80898B28; // type:func -BgMizuUzu_Draw = 0x80898B4C; // type:func -BgMizuWater_GetWaterLevelActionIndex = 0x80898BD0; // type:func -BgMizuWater_SetWaterBoxesHeight = 0x80898C70; // type:func -BgMizuWater_Init = 0x80898CDC; // type:func -BgMizuWater_Destroy = 0x80898F38; // type:func -BgMizuWater_WaitForAction = 0x80898F48; // type:func -BgMizuWater_ChangeWaterLevel = 0x80899114; // type:func -BgMizuWater_Update = 0x80899424; // type:func -BgMizuWater_Draw = 0x8089957C; // type:func -BgMjin_SetupAction = 0x808998A0; // type:func -BgMjin_Init = 0x808998AC; // type:func -BgMjin_Destroy = 0x8089994C; // type:func -func_808A0850 = 0x80899980; // type:func -BgMjin_DoNothing = 0x80899A54; // type:func -BgMjin_Update = 0x80899A64; // type:func -BgMjin_Draw = 0x80899A88; // type:func -BgMoriBigst_SetupAction = 0x80899C90; // type:func -BgMoriBigst_InitDynapoly = 0x80899C9C; // type:func -BgMoriBigst_Init = 0x80899CF4; // type:func -BgMoriBigst_Destroy = 0x80899DCC; // type:func -BgMoriBigst_SetupWaitForMoriTex = 0x80899E00; // type:func -BgMoriBigst_WaitForMoriTex = 0x80899E28; // type:func -BgMoriBigst_SetupNoop = 0x80899EF4; // type:func -BgMoriBigst_SetupStalfosFight = 0x80899F18; // type:func -BgMoriBigst_StalfosFight = 0x80899FCC; // type:func -BgMoriBigst_SetupFall = 0x8089A044; // type:func -BgMoriBigst_Fall = 0x8089A06C; // type:func -BgMoriBigst_SetupLanding = 0x8089A0F8; // type:func -BgMoriBigst_Landing = 0x8089A18C; // type:func -BgMoriBigst_SetupStalfosPairFight = 0x8089A1B8; // type:func -BgMoriBigst_StalfosPairFight = 0x8089A2D0; // type:func -BgMoriBigst_SetupDone = 0x8089A330; // type:func -BgMoriBigst_Update = 0x8089A354; // type:func -BgMoriBigst_Draw = 0x8089A3C8; // type:func -func_808A1800 = 0x8089A5C0; // type:func -func_808A18FC = 0x8089A6B8; // type:func -BgMoriElevator_Init = 0x8089A740; // type:func -BgMoriElevator_Destroy = 0x8089A824; // type:func -BgMoriElevator_IsPlayerRiding = 0x8089A864; // type:func -BgMoriElevator_SetupWaitAfterInit = 0x8089A8C4; // type:func -BgMoriElevator_WaitAfterInit = 0x8089A8D8; // type:func -func_808A1C30 = 0x8089A97C; // type:func -BgMoriElevator_MoveIntoGround = 0x8089A990; // type:func -func_808A1CF4 = 0x8089AA44; // type:func -BgMoriElevator_MoveAboveGround = 0x8089AAA0; // type:func -BgMoriElevator_SetupSetPosition = 0x8089AB54; // type:func -BgMoriElevator_SetPosition = 0x8089AB68; // type:func -BgMoriElevator_StopMovement = 0x8089AD30; // type:func -func_808A2008 = 0x8089AD4C; // type:func -BgMoriElevator_Update = 0x8089AE00; // type:func -BgMoriElevator_Draw = 0x8089AE58; // type:func -BgMoriHashigo_InitDynapoly = 0x8089B0B0; // type:func -BgMoriHashigo_InitCollider = 0x8089B108; // type:func -BgMoriHashigo_SpawnLadder = 0x8089B1B4; // type:func -BgMoriHashigo_InitClasp = 0x8089B26C; // type:func -BgMoriHashigo_InitLadder = 0x8089B2F8; // type:func -BgMoriHashigo_Init = 0x8089B33C; // type:func -BgMoriHashigo_Destroy = 0x8089B400; // type:func -BgMoriHashigo_SetupWaitForMoriTex = 0x8089B458; // type:func -BgMoriHashigo_WaitForMoriTex = 0x8089B46C; // type:func -BgMoriHashigo_SetupClasp = 0x8089B4EC; // type:func -BgMoriHashigo_Clasp = 0x8089B500; // type:func -BgMoriHashigo_SetupLadderWait = 0x8089B564; // type:func -BgMoriHashigo_LadderWait = 0x8089B578; // type:func -BgMoriHashigo_SetupLadderFall = 0x8089B5AC; // type:func -BgMoriHashigo_LadderFall = 0x8089B5E8; // type:func -BgMoriHashigo_SetupLadderRest = 0x8089B6C8; // type:func -BgMoriHashigo_Update = 0x8089B6EC; // type:func -BgMoriHashigo_Draw = 0x8089B728; // type:func -BgMoriHashira4_SetupAction = 0x8089B970; // type:func -BgMoriHashira4_InitDynaPoly = 0x8089B97C; // type:func -BgMoriHashira4_Init = 0x8089B9D4; // type:func -BgMoriHashira4_Destroy = 0x8089BAE8; // type:func -BgMoriHashira4_SetupWaitForMoriTex = 0x8089BB1C; // type:func -BgMoriHashira4_WaitForMoriTex = 0x8089BB40; // type:func -BgMoriHashira4_SetupPillarsRotate = 0x8089BBBC; // type:func -BgMoriHashira4_PillarsRotate = 0x8089BBE0; // type:func -BgMoriHashira4_GateWait = 0x8089BC18; // type:func -BgMoriHashira4_GateOpen = 0x8089BCC4; // type:func -BgMoriHashira4_Update = 0x8089BD1C; // type:func -BgMoriHashira4_Draw = 0x8089BD48; // type:func -BgMoriHineri_Init = 0x8089BF00; // type:func -BgMoriHineri_Destroy = 0x8089C100; // type:func -func_808A39FC = 0x8089C134; // type:func -BgMoriHineri_DoNothing = 0x8089C32C; // type:func -BgMoriHineri_SpawnBossKeyChest = 0x8089C33C; // type:func -func_808A3C8C = 0x8089C3CC; // type:func -func_808A3D58 = 0x8089C498; // type:func -func_808A3E54 = 0x8089C594; // type:func -BgMoriHineri_Update = 0x8089C674; // type:func -BgMoriHineri_DrawHallAndRoom = 0x8089C698; // type:func -BgMoriIdomizu_SetupAction = 0x8089CC50; // type:func -BgMoriIdomizu_SetWaterLevel = 0x8089CC5C; // type:func -BgMoriIdomizu_Init = 0x8089CC84; // type:func -BgMoriIdomizu_Destroy = 0x8089CDA8; // type:func -BgMoriIdomizu_SetupWaitForMoriTex = 0x8089CDC8; // type:func -BgMoriIdomizu_WaitForMoriTex = 0x8089CDEC; // type:func -BgMoriIdomizu_SetupMain = 0x8089CE44; // type:func -BgMoriIdomizu_Main = 0x8089CE68; // type:func -BgMoriIdomizu_Update = 0x8089D02C; // type:func -BgMoriIdomizu_Draw = 0x8089D058; // type:func -BgMoriKaitenkabe_CrossProduct = 0x8089D290; // type:func -BgMoriKaitenkabe_Init = 0x8089D304; // type:func -BgMoriKaitenkabe_Destroy = 0x8089D3B8; // type:func -BgMoriKaitenkabe_WaitForMoriTex = 0x8089D3EC; // type:func -BgMoriKaitenkabe_SetupWait = 0x8089D444; // type:func -BgMoriKaitenkabe_Wait = 0x8089D45C; // type:func -BgMoriKaitenkabe_SetupRotate = 0x8089D5BC; // type:func -BgMoriKaitenkabe_Rotate = 0x8089D5DC; // type:func -BgMoriKaitenkabe_Update = 0x8089D748; // type:func -BgMoriKaitenkabe_Draw = 0x8089D76C; // type:func -BgMoriRakkatenjo_Init = 0x8089D900; // type:func -BgMoriRakkatenjo_Destroy = 0x8089D9B8; // type:func -BgMoriRakkatenjo_IsLinkUnder = 0x8089D9EC; // type:func -BgMoriRakkatenjo_IsLinkClose = 0x8089DA9C; // type:func -BgMoriRakkatenjo_SetupWaitForMoriTex = 0x8089DB4C; // type:func -BgMoriRakkatenjo_WaitForMoriTex = 0x8089DB60; // type:func -BgMoriRakkatenjo_SetupWait = 0x8089DBB8; // type:func -BgMoriRakkatenjo_Wait = 0x8089DBF4; // type:func -BgMoriRakkatenjo_SetupFall = 0x8089DCC4; // type:func -BgMoriRakkatenjo_Fall = 0x8089DCE4; // type:func -BgMoriRakkatenjo_SetupRest = 0x8089DE5C; // type:func -BgMoriRakkatenjo_Rest = 0x8089DE84; // type:func -BgMoriRakkatenjo_SetupRise = 0x8089DEB4; // type:func -BgMoriRakkatenjo_Rise = 0x8089DED4; // type:func -BgMoriRakkatenjo_Update = 0x8089DF54; // type:func -BgMoriRakkatenjo_Draw = 0x8089E02C; // type:func -BgPoEvent_InitPaintings = 0x8089E280; // type:func -BgPoEvent_InitBlocks = 0x8089E5FC; // type:func -BgPoEvent_Init = 0x8089E7AC; // type:func -BgPoEvent_Destroy = 0x8089E8BC; // type:func -BgPoEvent_BlockWait = 0x8089E940; // type:func -BgPoEvent_BlockShake = 0x8089EA4C; // type:func -BgPoEvent_CheckBlock = 0x8089EB04; // type:func -BgPoEvent_BlockFall = 0x8089EC3C; // type:func -BgPoEvent_BlockIdle = 0x8089ED40; // type:func -BgPoEvent_BlockPush = 0x8089EFF4; // type:func -BgPoEvent_BlockReset = 0x8089F1B4; // type:func -BgPoEvent_BlockSolved = 0x8089F2B4; // type:func -BgPoEvent_AmyWait = 0x8089F32C; // type:func -BgPoEvent_AmyPuzzle = 0x8089F3A8; // type:func -BgPoEvent_NextPainting = 0x8089F4C4; // type:func -BgPoEvent_PaintingEmpty = 0x8089F580; // type:func -BgPoEvent_PaintingAppear = 0x8089F5B0; // type:func -BgPoEvent_PaintingVanish = 0x8089F5E8; // type:func -BgPoEvent_PaintingPresent = 0x8089F638; // type:func -BgPoEvent_PaintingBurn = 0x8089F894; // type:func -BgPoEvent_Update = 0x8089FA40; // type:func -BgPoEvent_Draw = 0x8089FAB0; // type:func -BgPoSyokudai_Init = 0x808A00C0; // type:func -BgPoSyokudai_Destroy = 0x808A0360; // type:func -BgPoSyokudai_Update = 0x808A03D0; // type:func -BgPoSyokudai_Draw = 0x808A0450; // type:func -BgPushbox_SetupAction = 0x808A0A30; // type:func -BgPushbox_Init = 0x808A0A3C; // type:func -BgPushbox_Destroy = 0x808A0AD4; // type:func -BgPushbox_UpdateImpl = 0x808A0B08; // type:func -BgPushbox_Update = 0x808A0BE4; // type:func -BgPushbox_Draw = 0x808A0C14; // type:func -BgRelayObjects_Init = 0x808A0D30; // type:func -BgRelayObjects_Destroy = 0x808A0F70; // type:func -func_808A90F4 = 0x808A0FDC; // type:func -func_808A91AC = 0x808A1098; // type:func -func_808A9234 = 0x808A1120; // type:func -BgRelayObjects_DoNothing = 0x808A120C; // type:func -func_808A932C = 0x808A121C; // type:func -func_808A939C = 0x808A128C; // type:func -BgRelayObjects_Update = 0x808A1360; // type:func -BgRelayObjects_Draw = 0x808A1384; // type:func -BgSpot00Break_Init = 0x808A14E0; // type:func -BgSpot00Break_Destroy = 0x808A158C; // type:func -BgSpot00Break_Update = 0x808A15C0; // type:func -BgSpot00Break_Draw = 0x808A15D0; // type:func -BgSpot00Hanebasi_Init = 0x808A1680; // type:func -BgSpot00Hanebasi_Destroy = 0x808A1A90; // type:func -BgSpot00Hanebasi_DrawbridgeWait = 0x808A1AEC; // type:func -BgSpot00Hanebasi_DoNothing = 0x808A1C1C; // type:func -BgSpot00Hanebasi_DrawbridgeRiseAndFall = 0x808A1C2C; // type:func -BgSpot00Hanebasi_SetTorchLightInfo = 0x808A1D60; // type:func -BgSpot00Hanebasi_Update = 0x808A1EB8; // type:func -BgSpot00Hanebasi_DrawTorches = 0x808A21C8; // type:func -BgSpot00Hanebasi_Draw = 0x808A2468; // type:func -BgSpot01Fusya_SetupAction = 0x808A2790; // type:func -BgSpot01Fusya_Init = 0x808A279C; // type:func -BgSpot01Fusya_Destroy = 0x808A2818; // type:func -func_808AAA50 = 0x808A2828; // type:func -BgSpot01Fusya_Update = 0x808A28E8; // type:func -BgSpot01Fusya_Draw = 0x808A290C; // type:func -BgSpot01Idohashira_PlayBreakSfx1 = 0x808A2A30; // type:func -BgSpot01Idohashira_PlayBreakSfx2 = 0x808A2A58; // type:func -func_808AAD3C = 0x808A2A90; // type:func -func_808AAE6C = 0x808A2BC8; // type:func -func_808AAF34 = 0x808A2C94; // type:func -BgSpot01Idohashira_Destroy = 0x808A2E58; // type:func -BgSpot01Idohashira_NotInCsMode = 0x808A2E8C; // type:func -BgSpot01Idohashira_GetCue = 0x808A2EAC; // type:func -func_808AB18C = 0x808A2EF8; // type:func -func_808AB1DC = 0x808A2F4C; // type:func -func_808AB29C = 0x808A2FF0; // type:func -func_808AB3E8 = 0x808A313C; // type:func -func_808AB3F8 = 0x808A3150; // type:func -func_808AB414 = 0x808A3170; // type:func -func_808AB444 = 0x808A319C; // type:func -func_808AB504 = 0x808A3248; // type:func -func_808AB510 = 0x808A3258; // type:func -func_808AB530 = 0x808A3278; // type:func -func_808AB570 = 0x808A32BC; // type:func -BgSpot01Idohashira_Update = 0x808A32DC; // type:func -BgSpot01Idohashira_Init = 0x808A3324; // type:func -func_808AB700 = 0x808A343C; // type:func -BgSpot01Idohashira_Draw = 0x808A34CC; // type:func -BgSpot01Idomizu_Init = 0x808A3630; // type:func -BgSpot01Idomizu_Destroy = 0x808A36C8; // type:func -func_808ABB84 = 0x808A36D8; // type:func -BgSpot01Idomizu_Update = 0x808A378C; // type:func -BgSpot01Idomizu_Draw = 0x808A37B0; // type:func -BgSpot01Idosoko_SetupAction = 0x808A3950; // type:func -BgSpot01Idosoko_Init = 0x808A395C; // type:func -BgSpot01Idosoko_Destroy = 0x808A39FC; // type:func -func_808ABF54 = 0x808A3A30; // type:func -BgSpot01Idosoko_Update = 0x808A3A40; // type:func -BgSpot01Idosoko_Draw = 0x808A3A64; // type:func -BgSpot01Objects2_Init = 0x808A3B60; // type:func -BgSpot01Objects2_Destroy = 0x808A3C3C; // type:func -func_808AC22C = 0x808A3C4C; // type:func -func_808AC2BC = 0x808A3CE0; // type:func -func_808AC474 = 0x808A3E90; // type:func -BgSpot01Objects2_Update = 0x808A3EA0; // type:func -func_808AC4A4 = 0x808A3EC4; // type:func -BgSpot02Objects_Init = 0x808A4020; // type:func -BgSpot02Objects_Destroy = 0x808A4290; // type:func -func_808AC8FC = 0x808A42C4; // type:func -func_808AC908 = 0x808A42D4; // type:func -func_808ACA08 = 0x808A43D4; // type:func -func_808ACAFC = 0x808A44CC; // type:func -func_808ACB58 = 0x808A4528; // type:func -BgSpot02Objects_Update = 0x808A45A8; // type:func -BgSpot02Objects_Draw = 0x808A45CC; // type:func -func_808ACC34 = 0x808A4608; // type:func -func_808ACCB8 = 0x808A468C; // type:func -func_808AD3D4 = 0x808A4D78; // type:func -func_808AD450 = 0x808A4DF4; // type:func -BgSpot03Taki_ApplyOpeningAlpha = 0x808A5380; // type:func -BgSpot03Taki_Init = 0x808A56BC; // type:func -BgSpot03Taki_Destroy = 0x808A576C; // type:func -func_808ADEF0 = 0x808A57A0; // type:func -BgSpot03Taki_Update = 0x808A5974; // type:func -BgSpot03Taki_Draw = 0x808A5998; // type:func -BgSpot05Soko_Init = 0x808A5CA0; // type:func -BgSpot05Soko_Destroy = 0x808A5DAC; // type:func -func_808AE5A8 = 0x808A5DE0; // type:func -func_808AE5B4 = 0x808A5DF0; // type:func -func_808AE630 = 0x808A5E6C; // type:func -BgSpot05Soko_Update = 0x808A5ED4; // type:func -BgSpot05Soko_Draw = 0x808A5EF8; // type:func -BgSpot06Objects_Init = 0x808A5FC0; // type:func -BgSpot06Objects_Destroy = 0x808A638C; // type:func -BgSpot06Objects_GateSpawnBubbles = 0x808A63F4; // type:func -BgSpot06Objects_GateWaitForSwitch = 0x808A64EC; // type:func -BgSpot06Objects_GateWaitToOpen = 0x808A6580; // type:func -BgSpot06Objects_GateOpen = 0x808A65B4; // type:func -BgSpot06Objects_DoNothing = 0x808A6640; // type:func -BgSpot06Objects_LockSpawnWaterRipples = 0x808A6650; // type:func -BgSpot06Objects_LockSpawnBubbles = 0x808A66B4; // type:func -BgSpot06Objects_LockWait = 0x808A6748; // type:func -BgSpot06Objects_LockPullOutward = 0x808A696C; // type:func -BgSpot06Objects_LockSwimToSurface = 0x808A6A24; // type:func -BgSpot06Objects_LockFloat = 0x808A6C9C; // type:func -BgSpot06Objects_Update = 0x808A6D1C; // type:func -BgSpot06Objects_DrawLakeHyliaWater = 0x808A6D7C; // type:func -BgSpot06Objects_Draw = 0x808A6F64; // type:func -BgSpot06Objects_WaterPlaneCutsceneWait = 0x808A7028; // type:func -BgSpot06Objects_WaterPlaneCutsceneRise = 0x808A7054; // type:func -BgSpot07Taki_Init = 0x808A73C0; // type:func -BgSpot07Taki_Destroy = 0x808A746C; // type:func -BgSpot07Taki_DoNothing = 0x808A74A0; // type:func -BgSpot07Taki_Update = 0x808A74B0; // type:func -BgSpot07Taki_Draw = 0x808A74D4; // type:func -func_808B02D0 = 0x808A79B0; // type:func -func_808B0324 = 0x808A7A04; // type:func -BgSpot08Bakudankabe_Init = 0x808A7CFC; // type:func -BgSpot08Bakudankabe_Destroy = 0x808A7D9C; // type:func -BgSpot08Bakudankabe_Update = 0x808A7DE4; // type:func -BgSpot08Bakudankabe_Draw = 0x808A7E98; // type:func -BgSpot08Iceblock_SetupAction = 0x808A8050; // type:func -BgSpot08Iceblock_InitDynaPoly = 0x808A805C; // type:func -BgSpot08Iceblock_CheckParams = 0x808A80B4; // type:func -BgSpot08Iceblock_Bobbing = 0x808A8114; // type:func -BgSpot08Iceblock_SinkUnderPlayer = 0x808A8170; // type:func -BgSpot08Iceblock_SetWaterline = 0x808A8220; // type:func -BgSpot08Iceblock_MultVectorScalar = 0x808A8240; // type:func -BgSpot08Iceblock_CrossProduct = 0x808A8274; // type:func -BgSpot08Iceblock_NormalizeVector = 0x808A82E8; // type:func -BgSpot08Iceblock_Roll = 0x808A8384; // type:func -BgSpot08Iceblock_SpawnTwinFloe = 0x808A86F8; // type:func -BgSpot08Iceblock_Init = 0x808A87F8; // type:func -BgSpot08Iceblock_Destroy = 0x808A89EC; // type:func -BgSpot08Iceblock_SetupFloatNonrotating = 0x808A8A20; // type:func -BgSpot08Iceblock_FloatNonrotating = 0x808A8A44; // type:func -BgSpot08Iceblock_SetupFloatRotating = 0x808A8A98; // type:func -BgSpot08Iceblock_FloatRotating = 0x808A8ABC; // type:func -BgSpot08Iceblock_SetupFloatOrbitingTwins = 0x808A8B1C; // type:func -BgSpot08Iceblock_FloatOrbitingTwins = 0x808A8B40; // type:func -BgSpot08Iceblock_SetupNoAction = 0x808A8C18; // type:func -BgSpot08Iceblock_Update = 0x808A8C38; // type:func -BgSpot08Iceblock_Draw = 0x808A8CD4; // type:func -func_808B1AE0 = 0x808A9090; // type:func -func_808B1BA0 = 0x808A9150; // type:func -func_808B1BEC = 0x808A919C; // type:func -func_808B1C70 = 0x808A9228; // type:func -func_808B1CEC = 0x808A92A4; // type:func -func_808B1D18 = 0x808A92D0; // type:func -func_808B1D44 = 0x808A92FC; // type:func -BgSpot09Obj_Init = 0x808A933C; // type:func -BgSpot09Obj_Destroy = 0x808A93A4; // type:func -BgSpot09Obj_Update = 0x808A93E4; // type:func -BgSpot09Obj_Draw = 0x808A93F4; // type:func -func_808B2180 = 0x808A95B0; // type:func -func_808B2218 = 0x808A9644; // type:func -BgSpot11Bakudankabe_Init = 0x808A995C; // type:func -BgSpot11Bakudankabe_Destroy = 0x808A99F8; // type:func -BgSpot11Bakudankabe_Update = 0x808A9A40; // type:func -BgSpot11Bakudankabe_Draw = 0x808A9ADC; // type:func -func_808B27F0 = 0x808A9BF0; // type:func -func_808B280C = 0x808A9C10; // type:func -BgSpot11Oasis_Init = 0x808A9D24; // type:func -func_808B2970 = 0x808A9D78; // type:func -func_808B2980 = 0x808A9D8C; // type:func -func_808B29E0 = 0x808A9DEC; // type:func -func_808B29F0 = 0x808A9E00; // type:func -func_808B2AA8 = 0x808A9EB8; // type:func -func_808B2AB8 = 0x808A9ECC; // type:func -BgSpot11Oasis_Update = 0x808A9EDC; // type:func -BgSpot11Oasis_Draw = 0x808AA0D0; // type:func -BgSpot12Gate_InitDynaPoly = 0x808AA320; // type:func -BgSpot12Gate_Init = 0x808AA378; // type:func -BgSpot12Gate_Destroy = 0x808AA3F8; // type:func -func_808B30C0 = 0x808AA42C; // type:func -func_808B30D8 = 0x808AA448; // type:func -func_808B3134 = 0x808AA4A4; // type:func -func_808B314C = 0x808AA4C0; // type:func -func_808B317C = 0x808AA4F0; // type:func -func_808B318C = 0x808AA504; // type:func -func_808B3274 = 0x808AA5EC; // type:func -func_808B3298 = 0x808AA614; // type:func -BgSpot12Gate_Update = 0x808AA624; // type:func -BgSpot12Gate_Draw = 0x808AA658; // type:func -func_808B3420 = 0x808AA730; // type:func -BgSpot12Saku_Init = 0x808AA788; // type:func -BgSpot12Saku_Destroy = 0x808AA808; // type:func -func_808B3550 = 0x808AA83C; // type:func -func_808B357C = 0x808AA86C; // type:func -func_808B35E4 = 0x808AA8D4; // type:func -func_808B3604 = 0x808AA8F4; // type:func -func_808B3714 = 0x808AAA04; // type:func -func_808B37AC = 0x808AAA98; // type:func -BgSpot12Saku_Update = 0x808AAAA8; // type:func -BgSpot12Saku_Draw = 0x808AAADC; // type:func -func_808B3960 = 0x808AABF0; // type:func -BgSpot15Rrbox_RotatePoint = 0x808AAC48; // type:func -func_808B3A34 = 0x808AAC9C; // type:func -func_808B3A40 = 0x808AACAC; // type:func -func_808B3AAC = 0x808AAD1C; // type:func -BgSpot15Rrbox_Init = 0x808AAE04; // type:func -BgSpot15Rrbox_Destroy = 0x808AAED4; // type:func -BgSpot15Rrbox_TrySnapToCheckedPoint = 0x808AAF10; // type:func -BgSpot15Rrbox_GetFloorHeight = 0x808AB050; // type:func -BgSpot15Rrbox_TrySnapToFloor = 0x808AB1D0; // type:func -func_808B4010 = 0x808AB290; // type:func -func_808B4084 = 0x808AB304; // type:func -func_808B40AC = 0x808AB330; // type:func -func_808B4178 = 0x808AB3FC; // type:func -func_808B4194 = 0x808AB41C; // type:func -func_808B4380 = 0x808AB608; // type:func -func_808B43D0 = 0x808AB658; // type:func -func_808B44B8 = 0x808AB724; // type:func -func_808B44CC = 0x808AB73C; // type:func -BgSpot15Rrbox_Update = 0x808AB760; // type:func -BgSpot15Rrbox_Draw = 0x808AB7CC; // type:func -BgSpot15Saku_Init = 0x808AB9D0; // type:func -BgSpot15Saku_Destroy = 0x808ABA84; // type:func -func_808B4930 = 0x808ABAB8; // type:func -func_808B4978 = 0x808ABB00; // type:func -func_808B4A04 = 0x808ABB8C; // type:func -BgSpot15Saku_Update = 0x808ABBBC; // type:func -BgSpot15Saku_Draw = 0x808ABBF0; // type:func -func_808B4C30 = 0x808ABD10; // type:func -func_808B4C4C = 0x808ABD30; // type:func -func_808B4D04 = 0x808ABDE4; // type:func -func_808B4D9C = 0x808ABE78; // type:func -func_808B4E58 = 0x808ABF28; // type:func -BgSpot16Bombstone_Init = 0x808AC124; // type:func -BgSpot16Bombstone_Destroy = 0x808AC1D8; // type:func -BgSpot16Bombstone_SpawnDust = 0x808AC224; // type:func -func_808B5240 = 0x808AC2C0; // type:func -BgSpot16Bombstone_SpawnFragments = 0x808AC428; // type:func -func_808B561C = 0x808AC6A0; // type:func -func_808B56BC = 0x808AC740; // type:func -func_808B57E0 = 0x808AC83C; // type:func -func_808B5934 = 0x808AC994; // type:func -func_808B5950 = 0x808AC9B4; // type:func -func_808B5A78 = 0x808ACAA0; // type:func -func_808B5A94 = 0x808ACAC0; // type:func -func_808B5AF0 = 0x808ACB24; // type:func -func_808B5B04 = 0x808ACB3C; // type:func -func_808B5B58 = 0x808ACB94; // type:func -func_808B5B6C = 0x808ACBAC; // type:func -BgSpot16Bombstone_Update = 0x808ACCA8; // type:func -BgSpot16Bombstone_Draw = 0x808ACCDC; // type:func -BgSpot16Doughnut_Init = 0x808AD260; // type:func -BgSpot16Doughnut_Destroy = 0x808AD3D4; // type:func -BgSpot16Doughnut_Update = 0x808AD3E4; // type:func -BgSpot16Doughnut_UpdateExpanding = 0x808AD478; // type:func -BgSpot16Doughnut_Draw = 0x808AD4E0; // type:func -BgSpot16Doughnut_DrawExpanding = 0x808AD698; // type:func -func_808B6BC0 = 0x808AD820; // type:func -BgSpot17Bakudankabe_Init = 0x808ADB50; // type:func -BgSpot17Bakudankabe_Destroy = 0x808ADBE4; // type:func -BgSpot17Bakudankabe_Update = 0x808ADC18; // type:func -BgSpot17Bakudankabe_Draw = 0x808ADCAC; // type:func -BgSpot17Funen_Init = 0x808ADF10; // type:func -BgSpot17Funen_Destroy = 0x808ADF38; // type:func -BgSpot17Funen_Update = 0x808ADF48; // type:func -func_808B746C = 0x808ADF6C; // type:func -func_808B7478 = 0x808ADF7C; // type:func -func_808B7710 = 0x808AE160; // type:func -func_808B7770 = 0x808AE1BC; // type:func -BgSpot18Basket_Init = 0x808AE378; // type:func -BgSpot18Basket_Destroy = 0x808AE4C4; // type:func -func_808B7AEC = 0x808AE50C; // type:func -func_808B7AFC = 0x808AE520; // type:func -func_808B7B58 = 0x808AE57C; // type:func -func_808B7B6C = 0x808AE594; // type:func -func_808B7BB0 = 0x808AE5D8; // type:func -func_808B7BCC = 0x808AE5F8; // type:func -func_808B7D38 = 0x808AE764; // type:func -func_808B7D50 = 0x808AE780; // type:func -func_808B7F74 = 0x808AE9A4; // type:func -func_808B7FC0 = 0x808AE9F4; // type:func -func_808B818C = 0x808AEBC0; // type:func -func_808B81A0 = 0x808AEBD8; // type:func -BgSpot18Basket_Update = 0x808AEE70; // type:func -BgSpot18Basket_Draw = 0x808AEF34; // type:func -BgSpot18Futa_Init = 0x808AF150; // type:func -BgSpot18Futa_Destroy = 0x808AF1BC; // type:func -BgSpot18Futa_Update = 0x808AF1F0; // type:func -BgSpot18Futa_Draw = 0x808AF254; // type:func -func_808B8910 = 0x808AF2F0; // type:func -func_808B8A5C = 0x808AF3A8; // type:func -func_808B8A98 = 0x808AF3E4; // type:func -func_808B8B08 = 0x808AF454; // type:func -func_808B8B38 = 0x808AF488; // type:func -func_808B8BB4 = 0x808AF504; // type:func -func_808B8C90 = 0x808AF5E8; // type:func -func_808B8CC8 = 0x808AF624; // type:func -BgSpot18Obj_Init = 0x808AF678; // type:func -BgSpot18Obj_Destroy = 0x808AF6D4; // type:func -func_808B8DC0 = 0x808AF708; // type:func -func_808B8DD0 = 0x808AF71C; // type:func -func_808B8DDC = 0x808AF72C; // type:func -func_808B8E20 = 0x808AF770; // type:func -func_808B8E64 = 0x808AF7B4; // type:func -func_808B8E7C = 0x808AF7D0; // type:func -func_808B8EE0 = 0x808AF834; // type:func -func_808B8F08 = 0x808AF860; // type:func -func_808B9030 = 0x808AF98C; // type:func -func_808B9040 = 0x808AF9A0; // type:func -BgSpot18Obj_Update = 0x808AF9C0; // type:func -BgSpot18Obj_Draw = 0x808AF9F4; // type:func -BgSpot18Shutter_Init = 0x808AFBC0; // type:func -BgSpot18Shutter_Destroy = 0x808AFD70; // type:func -func_808B95AC = 0x808AFDA4; // type:func -func_808B95B8 = 0x808AFDB4; // type:func -func_808B9618 = 0x808AFE14; // type:func -func_808B9698 = 0x808AFE9C; // type:func -func_808B971C = 0x808AFF20; // type:func -BgSpot18Shutter_Update = 0x808AFFFC; // type:func -BgSpot18Shutter_Draw = 0x808B0020; // type:func -BgSstFloor_Init = 0x808B0110; // type:func -BgSstFloor_Destroy = 0x808B0178; // type:func -BgSstFloor_Update = 0x808B01AC; // type:func -BgSstFloor_Draw = 0x808B0520; // type:func -BgTokiHikari_Init = 0x808B0670; // type:func -BgTokiHikari_Destroy = 0x808B06FC; // type:func -BgTokiHikari_DoNothing = 0x808B070C; // type:func -BgTokiHikari_Update = 0x808B071C; // type:func -BgTokiHikari_Draw = 0x808B0740; // type:func -func_808BA018 = 0x808B0790; // type:func -func_808BA204 = 0x808B0938; // type:func -func_808BA22C = 0x808B0960; // type:func -func_808BA274 = 0x808B09A8; // type:func -func_808BA2CC = 0x808B0A00; // type:func -BgTokiSwd_SetupAction = 0x808B1410; // type:func -BgTokiSwd_Init = 0x808B141C; // type:func -BgTokiSwd_Destroy = 0x808B14F0; // type:func -func_808BAF40 = 0x808B151C; // type:func -func_808BB0AC = 0x808B1690; // type:func -func_808BB128 = 0x808B1710; // type:func -BgTokiSwd_Update = 0x808B1764; // type:func -BgTokiSwd_Draw = 0x808B17B8; // type:func -BgTreemouth_SetupAction = 0x808B2A60; // type:func -BgTreemouth_Init = 0x808B2A6C; // type:func -BgTreemouth_Destroy = 0x808B2B94; // type:func -func_808BC65C = 0x808B2BC8; // type:func -func_808BC6F8 = 0x808B2C64; // type:func -func_808BC80C = 0x808B2D78; // type:func -func_808BC864 = 0x808B2DD0; // type:func -func_808BC8B8 = 0x808B2E24; // type:func -func_808BC9EC = 0x808B2F58; // type:func -func_808BCAF0 = 0x808B3060; // type:func -BgTreemouth_DoNothing = 0x808B30FC; // type:func -BgTreemouth_Update = 0x808B310C; // type:func -BgTreemouth_Draw = 0x808B318C; // type:func -BgUmaJump_Init = 0x808B40C0; // type:func -BgUmaJump_Destroy = 0x808B417C; // type:func -BgUmaJump_Update = 0x808B41B0; // type:func -BgUmaJump_Draw = 0x808B41C0; // type:func -BgVbSima_Init = 0x808B4250; // type:func -BgVbSima_Destroy = 0x808B42B8; // type:func -BgVbSima_SpawnEmber = 0x808B42EC; // type:func -BgVbSima_Update = 0x808B43B8; // type:func -BgVbSima_Draw = 0x808B4818; // type:func -BgYdanHasi_Init = 0x808B4970; // type:func -BgYdanHasi_Destroy = 0x808B4AD4; // type:func -BgYdanHasi_UpdateFloatingBlock = 0x808B4B08; // type:func -BgYdanHasi_InitWater = 0x808B4C40; // type:func -BgYdanHasi_MoveWater = 0x808B4C8C; // type:func -BgYdanHasi_DecWaterTimer = 0x808B4D5C; // type:func -BgYdanHasi_SetupThreeBlocks = 0x808B4DB0; // type:func -BgYdanHasi_UpdateThreeBlocks = 0x808B4E1C; // type:func -BgYdanHasi_Update = 0x808B4EEC; // type:func -BgYdanHasi_Draw = 0x808B4F10; // type:func -BgYdanMaruta_Init = 0x808B5120; // type:func -BgYdanMaruta_Destroy = 0x808B5384; // type:func -func_808BEFF4 = 0x808B53D8; // type:func -func_808BF078 = 0x808B545C; // type:func -func_808BF108 = 0x808B54EC; // type:func -func_808BF1EC = 0x808B55D0; // type:func -BgYdanMaruta_DoNothing = 0x808B5640; // type:func -BgYdanMaruta_Update = 0x808B5650; // type:func -BgYdanMaruta_Draw = 0x808B5674; // type:func -BgYdanSp_Init = 0x808B5800; // type:func -BgYdanSp_Destroy = 0x808B5BE8; // type:func -BgYdanSp_UpdateFloorWebCollision = 0x808B5C30; // type:func -BgYdanSp_BurnWeb = 0x808B5D04; // type:func -BgYdanSp_BurnFloorWeb = 0x808B5D74; // type:func -BgYdanSp_FloorWebBroken = 0x808B6048; // type:func -BgYdanSp_FloorWebBreaking = 0x808B6088; // type:func -BgYdanSp_FloorWebIdle = 0x808B6248; // type:func -BgYdanSp_BurnWallWeb = 0x808B6524; // type:func -BgYdanSp_WallWebIdle = 0x808B685C; // type:func -BgYdanSp_Update = 0x808B699C; // type:func -BgYdanSp_Draw = 0x808B69C0; // type:func -BgZg_Destroy = 0x808B6F20; // type:func -func_808C0C50 = 0x808B6F54; // type:func -func_808C0C98 = 0x808B6F9C; // type:func -func_808C0CC8 = 0x808B6FD0; // type:func -func_808C0CD4 = 0x808B6FE0; // type:func -func_808C0D08 = 0x808B7014; // type:func -BgZg_Update = 0x808B70B8; // type:func -BgZg_Init = 0x808B7100; // type:func -func_808C0EEC = 0x808B71EC; // type:func -BgZg_Draw = 0x808B7268; // type:func -func_808C1190 = 0x808B7370; // type:func -func_808C11D0 = 0x808B73B0; // type:func -func_808C1200 = 0x808B73E0; // type:func -func_808C1230 = 0x808B7410; // type:func -func_808C1278 = 0x808B7458; // type:func -func_808C12C4 = 0x808B74A4; // type:func -func_808C1554 = 0x808B7734; // type:func -func_808C17C8 = 0x808B79B4; // type:func -BossDodongo_AteExplosive = 0x808B7A9C; // type:func -BossDodongo_Init = 0x808B7B5C; // type:func -BossDodongo_Destroy = 0x808B7E38; // type:func -BossDodongo_SetupIntroCutscene = 0x808B7E78; // type:func -BossDodongo_IntroCutscene = 0x808B7EF8; // type:func -BossDodongo_SetupDamaged = 0x808B8A74; // type:func -BossDodongo_SetupExplode = 0x808B8B08; // type:func -BossDodongo_SetupWalk = 0x808B8BAC; // type:func -BossDodongo_SetupRoll = 0x808B8C3C; // type:func -BossDodongo_SetupBlowFire = 0x808B8CB0; // type:func -BossDodongo_SetupInhale = 0x808B8D38; // type:func -BossDodongo_Damaged = 0x808B8DC8; // type:func -BossDodongo_Explode = 0x808B8E7C; // type:func -BossDodongo_LayDown = 0x808B90D0; // type:func -BossDodongo_Vulnerable = 0x808B91B0; // type:func -BossDodongo_GetUp = 0x808B929C; // type:func -BossDodongo_BlowFire = 0x808B9300; // type:func -BossDodongo_Inhale = 0x808B9430; // type:func -BossDodongo_Walk = 0x808B9504; // type:func -BossDodongo_Roll = 0x808B9914; // type:func -BossDodongo_Update = 0x808B9D10; // type:func -BossDodongo_OverrideLimbDraw = 0x808BAB50; // type:func -BossDodongo_PostLimbDraw = 0x808BAD74; // type:func -BossDodongo_Draw = 0x808BAE58; // type:func -func_808C4F6C = 0x808BB120; // type:func -func_808C50A8 = 0x808BB25C; // type:func -BossDodongo_PlayerYawCheck = 0x808BB3A8; // type:func -BossDodongo_PlayerPosCheck = 0x808BB404; // type:func -BossDodongo_SpawnFire = 0x808BB498; // type:func -BossDodongo_UpdateDamage = 0x808BB50C; // type:func -BossDodongo_SetupDeathCutscene = 0x808BB678; // type:func -BossDodongo_DeathCutscene = 0x808BB730; // type:func -BossDodongo_UpdateEffects = 0x808BCE70; // type:func -BossDodongo_DrawEffects = 0x808BCFA4; // type:func -BossFd_SpawnEmber = 0x808C0E70; // type:func -BossFd_SpawnDebris = 0x808C0F3C; // type:func -BossFd_SpawnDust = 0x808C100C; // type:func -BossFd_SpawnFireBreath = 0x808C10A4; // type:func -BossFd_SetCameraSpeed = 0x808C11B0; // type:func -BossFd_UpdateCamera = 0x808C1250; // type:func -BossFd_Init = 0x808C13BC; // type:func -BossFd_Destroy = 0x808C16DC; // type:func -BossFd_IsFacingLink = 0x808C173C; // type:func -BossFd_SetupFly = 0x808C176C; // type:func -BossFd_Fly = 0x808C17DC; // type:func -BossFd_Wait = 0x808C3E64; // type:func -BossFd_Effects = 0x808C4054; // type:func -BossFd_CollisionCheck = 0x808C4C74; // type:func -BossFd_Update = 0x808C4D28; // type:func -BossFd_UpdateEffects = 0x808C5468; // type:func -BossFd_DrawEffects = 0x808C58C0; // type:func -BossFd_Draw = 0x808C5F60; // type:func -BossFd_OverrideRightArmDraw = 0x808C6018; // type:func -BossFd_OverrideLeftArmDraw = 0x808C6138; // type:func -BossFd_DrawMane = 0x808C6258; // type:func -BossFd_OverrideHeadDraw = 0x808C66DC; // type:func -BossFd_PostHeadDraw = 0x808C67D4; // type:func -BossFd_DrawBody = 0x808C6828; // type:func -BossFd2_SpawnDebris = 0x808C81D0; // type:func -BossFd2_SpawnFireBreath = 0x808C82A8; // type:func -BossFd2_SpawnEmber = 0x808C83BC; // type:func -BossFd2_SpawnSkullPiece = 0x808C8490; // type:func -BossFd2_SpawnDust = 0x808C8568; // type:func -BossFd2_Init = 0x808C8600; // type:func -BossFd2_Destroy = 0x808C86FC; // type:func -BossFd2_SetupEmerge = 0x808C873C; // type:func -BossFd2_Emerge = 0x808C8834; // type:func -BossFd2_SetupIdle = 0x808C8B74; // type:func -BossFd2_Idle = 0x808C8C1C; // type:func -BossFd2_SetupBurrow = 0x808C8D70; // type:func -BossFd2_Burrow = 0x808C8DE8; // type:func -BossFd2_SetupBreatheFire = 0x808C8EB8; // type:func -BossFd2_BreatheFire = 0x808C8F1C; // type:func -BossFd2_SetupClawSwipe = 0x808C9460; // type:func -BossFd2_ClawSwipe = 0x808C94C0; // type:func -BossFd2_SetupVulnerable = 0x808C9538; // type:func -BossFd2_Vulnerable = 0x808C9594; // type:func -BossFd2_SetupDamaged = 0x808C97EC; // type:func -BossFd2_Damaged = 0x808C9848; // type:func -BossFd2_SetupDeath = 0x808C9978; // type:func -BossFd2_UpdateCamera = 0x808C9A08; // type:func -BossFd2_Death = 0x808C9B78; // type:func -BossFd2_Wait = 0x808CA1FC; // type:func -BossFd2_CollisionCheck = 0x808CA244; // type:func -BossFd2_UpdateFace = 0x808CA6E4; // type:func -BossFd2_Update = 0x808CA850; // type:func -BossFd2_OverrideLimbDraw = 0x808CAA04; // type:func -BossFd2_PostLimbDraw = 0x808CABF8; // type:func -BossFd2_UpdateMane = 0x808CACA0; // type:func -BossFd2_DrawMane = 0x808CB274; // type:func -BossFd2_Draw = 0x808CB6B8; // type:func -BossGanonEff_SpawnWindowShard = 0x808CBF00; // type:func -BossGanonEff_SpawnSparkle = 0x808CC040; // type:func -BossGanonEff_SpawnLightRay = 0x808CC13C; // type:func -BossGanonEff_SpawnShock = 0x808CC280; // type:func -BossGanonEff_SpawnLightning = 0x808CC34C; // type:func -BossGanonEff_SpawnDustDark = 0x808CC3F0; // type:func -BossGanonEff_SpawnDustLight = 0x808CC4E4; // type:func -BossGanonEff_SpawnShockwave = 0x808CC5C8; // type:func -BossGanonEff_SpawnBlackDot = 0x808CC6C0; // type:func -BossGanon_SetColliderPos = 0x808CC77C; // type:func -BossGanon_SetAnimationObject = 0x808CC7C0; // type:func -BossGanon_Init = 0x808CC830; // type:func -BossGanon_Destroy = 0x808CCDD4; // type:func -BossGanon_SetupIntroCutscene = 0x808CCE38; // type:func -BossGanon_SetIntroCsCamera = 0x808CCF1C; // type:func -BossGanon_IntroCutscene = 0x808CCFBC; // type:func -BossGanon_SetupDeathCutscene = 0x808CE6BC; // type:func -BossGanon_SetupTowerCutscene = 0x808CE7A0; // type:func -BossGanon_ShatterWindows = 0x808CE8A4; // type:func -BossGanon_DeathAndTowerCutscene = 0x808CE9E8; // type:func -BossGanon_SetupPoundFloor = 0x808D0390; // type:func -BossGanon_PoundFloor = 0x808D03CC; // type:func -BossGanon_SetupChargeBigMagic = 0x808D0920; // type:func -BossGanon_ChargeBigMagic = 0x808D0990; // type:func -BossGanon_SetupWait = 0x808D1198; // type:func -BossGanon_Wait = 0x808D1220; // type:func -BossGanon_SetupChargeLightBall = 0x808D156C; // type:func -BossGanon_ChargeLightBall = 0x808D15DC; // type:func -BossGanon_SetupPlayTennis = 0x808D1790; // type:func -BossGanon_PlayTennis = 0x808D17F8; // type:func -BossGanon_SetupBlock = 0x808D1AC8; // type:func -BossGanon_Block = 0x808D1B80; // type:func -BossGanon_SetupHitByLightBall = 0x808D1D10; // type:func -BossGanon_HitByLightBall = 0x808D1E04; // type:func -BossGanon_SetupVulnerable = 0x808D205C; // type:func -BossGanon_Vulnerable = 0x808D222C; // type:func -BossGanon_SetupDamaged = 0x808D2798; // type:func -BossGanon_Damaged = 0x808D2800; // type:func -BossGanon_UpdateDamage = 0x808D28C0; // type:func -BossGanon_Update = 0x808D2C88; // type:func -BossGanon_OverrideLimbDraw = 0x808D3DF0; // type:func -BossGanon_PostLimbDraw = 0x808D4030; // type:func -BossGanon_InitRand = 0x808D438C; // type:func -BossGanon_RandZeroOne = 0x808D43AC; // type:func -BossGanon_DrawShock = 0x808D44D4; // type:func -BossGanon_DrawHandLightBall = 0x808D4880; // type:func -BossGanon_DrawBigMagicCharge = 0x808D4AD4; // type:func -BossGanon_DrawTriforce = 0x808D5164; // type:func -BossGanon_DrawDarkVortex = 0x808D5528; // type:func -func_808E0254 = 0x808D5780; // type:func -BossGanon_GenShadowTexture = 0x808D5C28; // type:func -BossGanon_DrawShadowTexture = 0x808D5F68; // type:func -BossGanon_Draw = 0x808D61E4; // type:func -BossGanon_CheckFallingPlatforms = 0x808D642C; // type:func -BossGanon_LightBall_Update = 0x808D6514; // type:func -BossGanon_LightBall_Draw = 0x808D7034; // type:func -func_808E1EB4 = 0x808D7348; // type:func -func_808E229C = 0x808D7738; // type:func -func_808E2544 = 0x808D79A8; // type:func -func_808E324C = 0x808D86BC; // type:func -BossGanon_UpdateEffects = 0x808D8990; // type:func -BossGanon_DrawEffects = 0x808D91B8; // type:func -BossGanon2_InitRand = 0x808F1D30; // type:func -BossGanon2_RandZeroOne = 0x808F1D50; // type:func -func_808FD080 = 0x808F1E78; // type:func -BossGanon2_SetObjectSegment = 0x808F1F08; // type:func -func_808FD210 = 0x808F1FBC; // type:func -func_808FD27C = 0x808F202C; // type:func -BossGanon2_Init = 0x808F210C; // type:func -BossGanon2_Destroy = 0x808F223C; // type:func -func_808FD4D4 = 0x808F228C; // type:func -func_808FD5C4 = 0x808F237C; // type:func -func_808FD5F4 = 0x808F23B0; // type:func -func_808FF898 = 0x808F4660; // type:func -func_808FFA24 = 0x808F47EC; // type:func -func_808FFAC8 = 0x808F4890; // type:func -func_808FFBBC = 0x808F4988; // type:func -func_808FFC84 = 0x808F4A54; // type:func -func_808FFCFC = 0x808F4ACC; // type:func -func_808FFDB0 = 0x808F4B80; // type:func -func_808FFEBC = 0x808F4C90; // type:func -func_808FFF90 = 0x808F4D64; // type:func -func_808FFFE0 = 0x808F4DB4; // type:func -func_809000A0 = 0x808F4E74; // type:func -func_80900104 = 0x808F4ED4; // type:func -func_80900210 = 0x808F4FE0; // type:func -func_8090026C = 0x808F503C; // type:func -func_809002CC = 0x808F50A0; // type:func -func_80900344 = 0x808F5114; // type:func -func_80900580 = 0x808F5350; // type:func -func_80900650 = 0x808F5420; // type:func -func_80900818 = 0x808F55E8; // type:func -func_80900890 = 0x808F5660; // type:func -func_80901020 = 0x808F5DF4; // type:func -func_8090109C = 0x808F5E70; // type:func -func_8090120C = 0x808F5FE0; // type:func -func_80902348 = 0x808F7124; // type:func -BossGanon2_CollisionCheck = 0x808F7304; // type:func -BossGanon2_Update = 0x808F75F8; // type:func -func_809034E4 = 0x808F82C4; // type:func -func_80903F38 = 0x808F8D18; // type:func -func_80904108 = 0x808F8EA4; // type:func -func_80904340 = 0x808F90A8; // type:func -func_8090464C = 0x808F9398; // type:func -BossGanon2_OverrideLimbDraw = 0x808F952C; // type:func -BossGanon2_PostLimbDraw = 0x808F9664; // type:func -func_80904D88 = 0x808F9A28; // type:func -func_80904FC8 = 0x808F9C2C; // type:func -func_8090523C = 0x808F9E50; // type:func -BossGanon2_PostLimbDraw2 = 0x808FA0E0; // type:func -func_80905674 = 0x808FA20C; // type:func -BossGanon2_Draw = 0x808FA454; // type:func -BossGanon2_UpdateEffects = 0x808FA8D4; // type:func -BossGanon2_DrawEffects = 0x808FAC18; // type:func -func_80906538 = 0x808FB010; // type:func -BossGanon2_GenShadowTexture = 0x808FB4D0; // type:func -BossGanon2_DrawShadowTexture = 0x808FB588; // type:func -BossGanondrof_ClearPixels8x8 = 0x80904BA0; // type:func -BossGanondrof_ClearPixels16x8 = 0x80904BE0; // type:func -BossGanondrof_ClearPixels16x16 = 0x80904C20; // type:func -BossGanondrof_ClearPixels32x16 = 0x80904C50; // type:func -BossGanondrof_ClearPixels16x32 = 0x80904C98; // type:func -BossGanondrof_ClearPixels = 0x80904CE4; // type:func -BossGanondrof_SetColliderPos = 0x80904F94; // type:func -BossGanondrof_Init = 0x80904FD8; // type:func -BossGanondrof_Destroy = 0x80905268; // type:func -BossGanondrof_SetupIntro = 0x809052D4; // type:func -BossGanondrof_Intro = 0x80905320; // type:func -BossGanondrof_SetupPaintings = 0x809057D8; // type:func -BossGanondrof_Paintings = 0x8090581C; // type:func -BossGanondrof_SetupNeutral = 0x809059F0; // type:func -BossGanondrof_Neutral = 0x80905A70; // type:func -BossGanondrof_SetupThrow = 0x809061B8; // type:func -BossGanondrof_Throw = 0x809062E0; // type:func -BossGanondrof_SetupReturn = 0x809064EC; // type:func -BossGanondrof_Return = 0x8090658C; // type:func -BossGanondrof_SetupStunned = 0x80906698; // type:func -BossGanondrof_Stunned = 0x8090675C; // type:func -BossGanondrof_SetupBlock = 0x80906870; // type:func -BossGanondrof_Block = 0x809068E4; // type:func -BossGanondrof_SetupCharge = 0x809069C0; // type:func -BossGanondrof_Charge = 0x80906A30; // type:func -BossGanondrof_SetupDeath = 0x80907114; // type:func -BossGanondrof_Death = 0x809071AC; // type:func -BossGanondrof_CollisionCheck = 0x8090809C; // type:func -BossGanondrof_Update = 0x809082C8; // type:func -BossGanondrof_OverrideLimbDraw = 0x809086D0; // type:func -BossGanondrof_PostLimbDraw = 0x80908AAC; // type:func -BossGanondrof_GetClearPixelDList = 0x80908B70; // type:func -BossGanondrof_EmptyDList = 0x80908BDC; // type:func -BossGanondrof_Draw = 0x80908C00; // type:func -BossGoma_ClearPixels16x16Rgba16 = 0x80909930; // type:func -BossGoma_ClearPixels32x32Rgba16 = 0x80909960; // type:func -BossGoma_ClearPixels = 0x809099B4; // type:func -BossGoma_Init = 0x80909B64; // type:func -BossGoma_PlayEffectsAndSfx = 0x80909D1C; // type:func -BossGoma_Destroy = 0x80909E24; // type:func -BossGoma_SetupDefeated = 0x80909E64; // type:func -BossGoma_SetupEncounter = 0x80909F2C; // type:func -BossGoma_SetupFloorIdle = 0x80909FD0; // type:func -BossGoma_SetupCeilingIdle = 0x8090A058; // type:func -BossGoma_SetupFallJump = 0x8090A0DC; // type:func -BossGoma_SetupFallStruckDown = 0x8090A158; // type:func -BossGoma_SetupCeilingSpawnGohmas = 0x8090A1D4; // type:func -BossGoma_SetupCeilingPrepareSpawnGohmas = 0x8090A248; // type:func -BossGoma_SetupWallClimb = 0x8090A2C0; // type:func -BossGoma_SetupCeilingMoveToCenter = 0x8090A344; // type:func -BossGoma_SetupFloorMain = 0x8090A3D8; // type:func -BossGoma_SetupFloorLand = 0x8090A458; // type:func -BossGoma_SetupFloorLandStruckDown = 0x8090A4E4; // type:func -BossGoma_SetupFloorStunned = 0x8090A588; // type:func -BossGoma_SetupFloorAttackPosture = 0x8090A5F8; // type:func -BossGoma_SetupFloorPrepareAttack = 0x8090A66C; // type:func -BossGoma_SetupFloorAttack = 0x8090A6E0; // type:func -BossGoma_SetupFloorDamaged = 0x8090A75C; // type:func -BossGoma_UpdateCeilingMovement = 0x8090A7D0; // type:func -BossGoma_SetupEncounterState4 = 0x8090AA0C; // type:func -BossGoma_Encounter = 0x8090ABBC; // type:func -BossGoma_Defeated = 0x8090BCB4; // type:func -BossGoma_FloorAttackPosture = 0x8090CB24; // type:func -BossGoma_FloorPrepareAttack = 0x8090CC2C; // type:func -BossGoma_FloorAttack = 0x8090CC88; // type:func -BossGoma_FloorDamaged = 0x8090CED8; // type:func -BossGoma_FloorLandStruckDown = 0x8090CF70; // type:func -BossGoma_FloorLand = 0x8090D014; // type:func -BossGoma_FloorStunned = 0x8090D070; // type:func -BossGoma_FallJump = 0x8090D19C; // type:func -BossGoma_FallStruckDown = 0x8090D250; // type:func -BossGoma_CeilingSpawnGohmas = 0x8090D310; // type:func -BossGoma_CeilingPrepareSpawnGohmas = 0x8090D46C; // type:func -BossGoma_FloorIdle = 0x8090D4C8; // type:func -BossGoma_CeilingIdle = 0x8090D530; // type:func -BossGoma_FloorMain = 0x8090D628; // type:func -BossGoma_WallClimb = 0x8090D898; // type:func -BossGoma_CeilingMoveToCenter = 0x8090D964; // type:func -BossGoma_UpdateEye = 0x8090DB60; // type:func -BossGoma_UpdateTailLimbsScale = 0x8090DDA8; // type:func -BossGoma_UpdateHit = 0x8090DEB4; // type:func -BossGoma_UpdateMainEnvColor = 0x8090E094; // type:func -BossGoma_UpdateEyeEnvColor = 0x8090E210; // type:func -BossGoma_Update = 0x8090E2B8; // type:func -BossGoma_OverrideLimbDraw = 0x8090E488; // type:func -BossGoma_PostLimbDraw = 0x8090E8D4; // type:func -BossGoma_EmptyDlist = 0x8090EAD8; // type:func -BossGoma_NoBackfaceCullingDlist = 0x8090EAFC; // type:func -BossGoma_Draw = 0x8090EB68; // type:func -BossGoma_SpawnChildGohma = 0x8090EC58; // type:func -BossMo_InitRand = 0x8090F8D0; // type:func -BossMo_RandZeroOne = 0x8090F8F0; // type:func -BossMo_NearLand = 0x8090FA18; // type:func -BossMo_SpawnRipple = 0x8090FB10; // type:func -BossMo_SpawnDroplet = 0x8090FC30; // type:func -BossMo_SpawnStillDroplet = 0x8090FD0C; // type:func -BossMo_SpawnBubble = 0x8090FDD0; // type:func -BossMo_Init = 0x8090FE84; // type:func -BossMo_Destroy = 0x8091026C; // type:func -BossMo_SetupTentacle = 0x809102BC; // type:func -BossMo_Tentacle = 0x80910310; // type:func -BossMo_TentCollisionCheck = 0x809130D0; // type:func -BossMo_IntroCs = 0x8091337C; // type:func -BossMo_DeathCs = 0x80914494; // type:func -BossMo_CoreCollisionCheck = 0x80915050; // type:func -BossMo_Core = 0x80915458; // type:func -BossMo_UpdateCore = 0x80916ABC; // type:func -BossMo_UpdateTent = 0x80916CEC; // type:func -BossMo_UpdateTentColliders = 0x80917524; // type:func -BossMo_DrawTentacle = 0x809175D0; // type:func -BossMo_DrawWater = 0x80917D00; // type:func -BossMo_DrawCore = 0x80917F10; // type:func -BossMo_DrawTent = 0x80918798; // type:func -BossMo_UpdateEffects = 0x809189CC; // type:func -BossMo_DrawEffects = 0x809190DC; // type:func -BossMo_Unknown = 0x80919808; // type:func -BossSst_Init = 0x8091FEB0; // type:func -BossSst_Destroy = 0x80920338; // type:func -BossSst_HeadSetupLurk = 0x80920384; // type:func -BossSst_HeadLurk = 0x809203B8; // type:func -BossSst_HeadSetupIntro = 0x809203F4; // type:func -BossSst_HeadIntro = 0x80920540; // type:func -BossSst_HeadSetupWait = 0x80921358; // type:func -BossSst_HeadWait = 0x809213A8; // type:func -BossSst_HeadSetupNeutral = 0x80921424; // type:func -BossSst_HeadNeutral = 0x80921444; // type:func -BossSst_HeadSetupDamagedHand = 0x809215E8; // type:func -BossSst_HeadDamagedHand = 0x80921650; // type:func -BossSst_HeadSetupReadyCharge = 0x80921748; // type:func -BossSst_HeadReadyCharge = 0x809217A0; // type:func -BossSst_HeadSetupCharge = 0x80921844; // type:func -BossSst_HeadCharge = 0x80921900; // type:func -BossSst_HeadSetupEndCharge = 0x80921B60; // type:func -BossSst_HeadEndCharge = 0x80921BE4; // type:func -BossSst_HeadSetupFrozenHand = 0x80921C54; // type:func -BossSst_HeadFrozenHand = 0x80921CA8; // type:func -BossSst_HeadSetupUnfreezeHand = 0x80921CF0; // type:func -BossSst_HeadUnfreezeHand = 0x80921D3C; // type:func -BossSst_HeadSetupStunned = 0x80921D78; // type:func -BossSst_HeadStunned = 0x80921E18; // type:func -BossSst_HeadSetupVulnerable = 0x8092209C; // type:func -BossSst_HeadVulnerable = 0x8092213C; // type:func -BossSst_HeadSetupDamage = 0x8092223C; // type:func -BossSst_HeadDamage = 0x8092230C; // type:func -BossSst_HeadSetupRecover = 0x8092235C; // type:func -BossSst_HeadRecover = 0x809223E8; // type:func -BossSst_SetCameraTargets = 0x8092257C; // type:func -BossSst_UpdateDeathCamera = 0x809226A8; // type:func -BossSst_HeadSetupDeath = 0x80922834; // type:func -BossSst_HeadDeath = 0x809229C8; // type:func -BossSst_HeadSetupThrash = 0x80922C18; // type:func -BossSst_HeadThrash = 0x80922C80; // type:func -BossSst_HeadSetupDarken = 0x80922CFC; // type:func -BossSst_HeadDarken = 0x80922D44; // type:func -BossSst_HeadSetupFall = 0x80922F6C; // type:func -BossSst_HeadFall = 0x80923004; // type:func -BossSst_HeadSetupMelt = 0x809230A0; // type:func -BossSst_HeadMelt = 0x809230F0; // type:func -BossSst_HeadSetupFinish = 0x809231A8; // type:func -BossSst_HeadFinish = 0x80923204; // type:func -BossSst_HandSetupWait = 0x809234FC; // type:func -BossSst_HandWait = 0x80923578; // type:func -BossSst_HandSetupDownbeat = 0x809236E8; // type:func -BossSst_HandDownbeat = 0x8092375C; // type:func -BossSst_HandSetupDownbeatEnd = 0x809238AC; // type:func -BossSst_HandDownbeatEnd = 0x80923908; // type:func -BossSst_HandSetupOffbeat = 0x809239FC; // type:func -BossSst_HandOffbeat = 0x80923A70; // type:func -BossSst_HandSetupOffbeatEnd = 0x80923B50; // type:func -BossSst_HandOffbeatEnd = 0x80923B9C; // type:func -BossSst_HandSetupEndSlam = 0x80923CE0; // type:func -BossSst_HandEndSlam = 0x80923D54; // type:func -BossSst_HandSetupRetreat = 0x80923D90; // type:func -BossSst_HandRetreat = 0x80923E38; // type:func -BossSst_HandSetupReadySlam = 0x80924064; // type:func -BossSst_HandReadySlam = 0x809240D0; // type:func -BossSst_HandSetupSlam = 0x809241C0; // type:func -BossSst_HandSlam = 0x80924250; // type:func -BossSst_HandSetupReadySweep = 0x80924434; // type:func -BossSst_HandReadySweep = 0x809244DC; // type:func -BossSst_HandSetupSweep = 0x80924600; // type:func -BossSst_HandSweep = 0x8092468C; // type:func -BossSst_HandSetupReadyPunch = 0x8092489C; // type:func -BossSst_HandReadyPunch = 0x80924904; // type:func -BossSst_HandSetupPunch = 0x80924960; // type:func -BossSst_HandPunch = 0x809249E8; // type:func -BossSst_HandSetupReadyClap = 0x80924B2C; // type:func -BossSst_HandReadyClap = 0x80924C1C; // type:func -BossSst_HandSetupClap = 0x80924E0C; // type:func -BossSst_HandClap = 0x80924E7C; // type:func -BossSst_HandSetupEndClap = 0x809250A8; // type:func -BossSst_HandEndClap = 0x80925114; // type:func -BossSst_HandSetupReadyGrab = 0x809251B8; // type:func -BossSst_HandReadyGrab = 0x8092523C; // type:func -BossSst_HandSetupGrab = 0x809252E4; // type:func -BossSst_HandGrab = 0x80925370; // type:func -BossSst_HandSetupCrush = 0x8092561C; // type:func -BossSst_HandCrush = 0x80925674; // type:func -BossSst_HandSetupEndCrush = 0x8092578C; // type:func -BossSst_HandEndCrush = 0x809257DC; // type:func -BossSst_HandSetupSwing = 0x80925818; // type:func -BossSst_HandSwing = 0x809258A0; // type:func -BossSst_HandSetupReel = 0x80925BD4; // type:func -BossSst_HandReel = 0x80925C6C; // type:func -BossSst_HandSetupReadyShake = 0x80925DC4; // type:func -BossSst_HandReadyShake = 0x80925E14; // type:func -BossSst_HandSetupShake = 0x80925F7C; // type:func -BossSst_HandShake = 0x80925F98; // type:func -BossSst_HandSetupReadyCharge = 0x8092612C; // type:func -BossSst_HandReadyCharge = 0x80926180; // type:func -BossSst_HandSetupStunned = 0x809262F8; // type:func -BossSst_HandStunned = 0x809263A4; // type:func -BossSst_HandSetupDamage = 0x80926500; // type:func -BossSst_HandDamage = 0x8092655C; // type:func -BossSst_HandSetupThrash = 0x80926634; // type:func -BossSst_HandThrash = 0x809266D0; // type:func -BossSst_HandSetupDarken = 0x809268C4; // type:func -BossSst_HandDarken = 0x80926914; // type:func -BossSst_HandSetupFall = 0x80926988; // type:func -BossSst_HandFall = 0x809269D8; // type:func -BossSst_HandSetupMelt = 0x80926A5C; // type:func -BossSst_HandMelt = 0x80926A98; // type:func -BossSst_HandSetupFinish = 0x80926B10; // type:func -BossSst_HandFinish = 0x80926B3C; // type:func -BossSst_HandSetupRecover = 0x80926B68; // type:func -BossSst_HandRecover = 0x80926BBC; // type:func -BossSst_HandSetupFrozen = 0x80926C54; // type:func -BossSst_HandFrozen = 0x80926D20; // type:func -BossSst_HandSetupReadyBreakIce = 0x80926E80; // type:func -BossSst_HandReadyBreakIce = 0x80926F34; // type:func -BossSst_HandSetupBreakIce = 0x80927050; // type:func -BossSst_HandBreakIce = 0x80927078; // type:func -BossSst_HandGrabPlayer = 0x8092720C; // type:func -BossSst_HandReleasePlayer = 0x809272AC; // type:func -BossSst_MoveAround = 0x80927330; // type:func -BossSst_HandSelectAttack = 0x809274BC; // type:func -BossSst_HandSetDamage = 0x809275B8; // type:func -BossSst_HandSetInvulnerable = 0x80927624; // type:func -BossSst_HeadSfx = 0x80927664; // type:func -BossSst_HandCollisionCheck = 0x80927690; // type:func -BossSst_HeadCollisionCheck = 0x8092781C; // type:func -BossSst_UpdateHand = 0x80927968; // type:func -BossSst_UpdateHead = 0x80927C78; // type:func -BossSst_OverrideHandDraw = 0x80927EE8; // type:func -BossSst_PostHandDraw = 0x80927F38; // type:func -BossSst_OverrideHandTrailDraw = 0x80927F74; // type:func -BossSst_DrawHand = 0x80927FB8; // type:func -BossSst_OverrideHeadDraw = 0x80928364; // type:func -BossSst_PostHeadDraw = 0x80928B68; // type:func -BossSst_DrawHead = 0x80928C10; // type:func -BossSst_SpawnHeadShadow = 0x80929060; // type:func -BossSst_SpawnHandShadow = 0x8092918C; // type:func -BossSst_SpawnShockwave = 0x80929240; // type:func -BossSst_SpawnIceCrystal = 0x8092931C; // type:func -BossSst_SpawnIceShard = 0x809295D8; // type:func -BossSst_IceShatter = 0x8092982C; // type:func -BossSst_UpdateEffects = 0x809299F8; // type:func -BossSst_DrawEffects = 0x80929C9C; // type:func -BossTw_AddDotEffect = 0x8092C480; // type:func -BossTw_AddDmgCloud = 0x8092C574; // type:func -BossTw_AddRingEffect = 0x8092C670; // type:func -BossTw_AddPlayerFreezeEffect = 0x8092C774; // type:func -BossTw_AddFlameEffect = 0x8092C820; // type:func -BossTw_AddMergeFlameEffect = 0x8092C8F8; // type:func -BossTw_AddShieldBlastEffect = 0x8092CA00; // type:func -BossTw_AddShieldDeflectEffect = 0x8092CAE8; // type:func -BossTw_AddShieldHitEffect = 0x8092CCB0; // type:func -BossTw_Init = 0x8092CE78; // type:func -BossTw_Destroy = 0x8092D694; // type:func -BossTw_SetupTurnToPlayer = 0x8092D6FC; // type:func -BossTw_TurnToPlayer = 0x8092D74C; // type:func -BossTw_SetupFlyTo = 0x8092D86C; // type:func -BossTw_FlyTo = 0x8092DA70; // type:func -BossTw_SetupShootBeam = 0x8092DCA4; // type:func -BossTw_SpawnGroundBlast = 0x8092DD8C; // type:func -BossTw_BeamHitPlayerCheck = 0x8092E108; // type:func -BossTw_CheckBeamReflection = 0x8092E300; // type:func -BossTw_BeamReflHitCheck = 0x8092E588; // type:func -BossTw_GetFloorY = 0x8092E6B0; // type:func -BossTw_ShootBeam = 0x8092E984; // type:func -BossTw_SetupFinishBeamShoot = 0x8092F93C; // type:func -BossTw_FinishBeamShoot = 0x8092F998; // type:func -BossTw_SetupHitByBeam = 0x8092FA30; // type:func -BossTw_HitByBeam = 0x8092FA98; // type:func -BossTw_SetupLaugh = 0x8092FD60; // type:func -BossTw_Laugh = 0x8092FDC4; // type:func -BossTw_SetupSpin = 0x8092FE54; // type:func -BossTw_Spin = 0x8092FED0; // type:func -BossTw_SetupMergeCS = 0x8092FF70; // type:func -BossTw_MergeCS = 0x8092FFBC; // type:func -BossTw_SetupWait = 0x80930000; // type:func -BossTw_Wait = 0x80930038; // type:func -BossTw_TwinrovaSetupMergeCS = 0x809300DC; // type:func -BossTw_TwinrovaMergeCS = 0x809300FC; // type:func -BossTw_SetupDeathCS = 0x80930BC8; // type:func -BossTw_DeathCS = 0x80930C30; // type:func -BossTw_SetupCSWait = 0x80930D38; // type:func -BossTw_CSWait = 0x80930D70; // type:func -BossTw_TwinrovaSetupIntroCS = 0x80930D80; // type:func -BossTw_TwinrovaIntroCS = 0x80930DB8; // type:func -BossTw_DeathBall = 0x8093260C; // type:func -BossTw_TwinrovaSetupDeathCS = 0x80932908; // type:func -BossTw_DeathCSMsgSfx = 0x809329C4; // type:func -BossTw_TwinrovaDeathCS = 0x809331E4; // type:func -BossTw_Update = 0x80933ED8; // type:func -BossTw_TwinrovaUpdate = 0x8093454C; // type:func -BossTw_OverrideLimbDraw = 0x80934EC8; // type:func -BossTw_PostLimbDraw = 0x80934F7C; // type:func -func_80941BC0 = 0x80935394; // type:func -func_80942180 = 0x8093590C; // type:func -func_809426F0 = 0x80935E28; // type:func -func_80942C70 = 0x80936370; // type:func -func_80943028 = 0x809366E0; // type:func -BossTw_Draw = 0x809368E4; // type:func -BossTw_TwinrovaOverrideLimbDraw = 0x80936FA0; // type:func -BossTw_TwinrovaPostLimbDraw = 0x809373CC; // type:func -BossTw_ShieldChargeDraw = 0x80937508; // type:func -BossTw_SpawnPortalDraw = 0x80937D70; // type:func -func_80944C50 = 0x809381A8; // type:func -BossTw_TwinrovaDraw = 0x8093858C; // type:func -BossTw_BlastFire = 0x809388C4; // type:func -BossTw_BlastIce = 0x809391FC; // type:func -BossTw_BlastShieldCheck = 0x80939D70; // type:func -BossTw_BlastUpdate = 0x8093A000; // type:func -BossTw_BlastDraw = 0x8093A17C; // type:func -BossTw_DrawDeathBall = 0x8093A700; // type:func -BossTw_UpdateEffects = 0x8093AC60; // type:func -BossTw_InitRand = 0x8093B9B8; // type:func -BossTw_RandZeroOne = 0x8093B9D8; // type:func -BossTw_DrawEffects = 0x8093BB00; // type:func -BossTw_TwinrovaSetupArriveAtTarget = 0x8093C934; // type:func -BossTw_TwinrovaArriveAtTarget = 0x8093C9A8; // type:func -BossTw_TwinrovaSetupChargeBlast = 0x8093CAD4; // type:func -BossTw_TwinrovaChargeBlast = 0x8093CB34; // type:func -BossTw_TwinrovaSetupShootBlast = 0x8093CD20; // type:func -BossTw_TwinrovaShootBlast = 0x8093CDA8; // type:func -BossTw_TwinrovaSetupDoneBlastShoot = 0x8093CFF8; // type:func -BossTw_TwinrovaDoneBlastShoot = 0x8093D044; // type:func -BossTw_TwinrovaDamage = 0x8093D0DC; // type:func -BossTw_TwinrovaStun = 0x8093D208; // type:func -BossTw_TwinrovaSetupGetUp = 0x8093D4BC; // type:func -BossTw_TwinrovaGetUp = 0x8093D520; // type:func -BossTw_TwinrovaSetupFly = 0x8093D5B4; // type:func -BossTw_TwinrovaFly = 0x8093D78C; // type:func -BossTw_TwinrovaSetupSpin = 0x8093DA00; // type:func -BossTw_TwinrovaSpin = 0x8093DA58; // type:func -BossTw_TwinrovaSetupLaugh = 0x8093DAD0; // type:func -BossTw_TwinrovaLaugh = 0x8093DB34; // type:func -BossVa_SetupAction = 0x80942050; // type:func -BossVa_AttachToBody = 0x8094205C; // type:func -BossVa_BloodDroplets = 0x809422A0; // type:func -BossVa_BloodSplatter = 0x809423A0; // type:func -BossVa_Gore = 0x809424CC; // type:func -BossVa_Spark = 0x809425FC; // type:func -BossVa_Tumor = 0x80942780; // type:func -BossVa_SetSparkEnv = 0x80942904; // type:func -BossVa_SetDeathEnv = 0x80942950; // type:func -BossVa_FindBoomerang = 0x809429D0; // type:func -BossVa_KillBari = 0x80942A10; // type:func -BossVa_Init = 0x80942BFC; // type:func -BossVa_Destroy = 0x8094344C; // type:func -BossVa_SetupIntro = 0x8094349C; // type:func -BossVa_BodyIntro = 0x8094352C; // type:func -BossVa_SetupBodyPhase1 = 0x8094454C; // type:func -BossVa_BodyPhase1 = 0x809445F0; // type:func -BossVa_SetupBodyPhase2 = 0x80944888; // type:func -BossVa_BodyPhase2 = 0x809449B4; // type:func -BossVa_SetupBodyPhase3 = 0x80944EB8; // type:func -BossVa_BodyPhase3 = 0x80944EF4; // type:func -BossVa_SetupBodyPhase4 = 0x8094555C; // type:func -BossVa_BodyPhase4 = 0x80945610; // type:func -BossVa_SetupBodyDeath = 0x80946118; // type:func -BossVa_BodyDeath = 0x809461B0; // type:func -BossVa_SetupSupportIntro = 0x80946D08; // type:func -BossVa_SupportIntro = 0x80946D80; // type:func -BossVa_SetupSupportAttached = 0x80946EA4; // type:func -BossVa_SupportAttached = 0x80946F28; // type:func -BossVa_SetupSupportCut = 0x80947150; // type:func -BossVa_SupportCut = 0x80947218; // type:func -BossVa_SetupStump = 0x809476EC; // type:func -BossVa_Stump = 0x80947770; // type:func -BossVa_SetupZapperIntro = 0x80947808; // type:func -BossVa_ZapperIntro = 0x8094789C; // type:func -BossVa_SetupZapperAttack = 0x8094795C; // type:func -BossVa_ZapperAttack = 0x809479F0; // type:func -BossVa_SetupZapperDamaged = 0x80948424; // type:func -BossVa_ZapperDamaged = 0x8094852C; // type:func -BossVa_SetupZapperDeath = 0x80948640; // type:func -BossVa_ZapperDeath = 0x80948714; // type:func -BossVa_SetupZapperEnraged = 0x80948C3C; // type:func -BossVa_ZapperEnraged = 0x80948CC4; // type:func -BossVa_SetupZapperHold = 0x8094941C; // type:func -BossVa_ZapperHold = 0x8094949C; // type:func -BossVa_SetupBariIntro = 0x809495A8; // type:func -BossVa_BariIntro = 0x809496B8; // type:func -BossVa_SetupBariPhase3Attack = 0x80949C10; // type:func -BossVa_BariPhase3Attack = 0x80949CB8; // type:func -BossVa_SetupBariPhase2Attack = 0x8094A0B8; // type:func -BossVa_BariPhase2Attack = 0x8094A160; // type:func -BossVa_SetupBariPhase3Stunned = 0x8094A778; // type:func -BossVa_BariPhase3Stunned = 0x8094A7D4; // type:func -BossVa_SetupBariDeath = 0x8094A9F0; // type:func -BossVa_BariDeath = 0x8094AA48; // type:func -BossVa_SetupDoor = 0x8094AA7C; // type:func -BossVa_Door = 0x8094AACC; // type:func -BossVa_Update = 0x8094AB40; // type:func -BossVa_BodyOverrideLimbDraw = 0x8094AD4C; // type:func -BossVa_BodyPostLimbDraw = 0x8094AEF0; // type:func -BossVa_SupportOverrideLimbDraw = 0x8094B3F4; // type:func -BossVa_SupportPostLimbDraw = 0x8094B438; // type:func -BossVa_ZapperOverrideLimbDraw = 0x8094B688; // type:func -BossVa_ZapperPostLimbDraw = 0x8094B864; // type:func -BossVa_BariOverrideLimbDraw = 0x8094BCC4; // type:func -BossVa_BariPostLimbDraw = 0x8094BD54; // type:func -BossVa_Draw = 0x8094BEE0; // type:func -BossVa_UpdateEffects = 0x8094C4D8; // type:func -BossVa_DrawEffects = 0x8094CE78; // type:func -BossVa_SpawnSpark = 0x8094DC80; // type:func -BossVa_SpawnSparkBall = 0x8094DF70; // type:func -BossVa_SpawnBloodDroplets = 0x8094E0FC; // type:func -BossVa_SpawnBloodSplatter = 0x8094E2C8; // type:func -BossVa_SpawnTumor = 0x8094E464; // type:func -BossVa_SpawnGore = 0x8094E608; // type:func -BossVa_SpawnZapperCharge = 0x8094E828; // type:func -BossVa_DrawDoor = 0x8094E97C; // type:func -Demo6K_SetupAction = 0x809592E0; // type:func -Demo6K_Init = 0x809592EC; // type:func -Demo6K_Destroy = 0x809596D4; // type:func -Demo6K_WaitForObject = 0x80959708; // type:func -func_80966E04 = 0x80959760; // type:func -func_80966E98 = 0x809597F8; // type:func -func_80966F84 = 0x809598EC; // type:func -func_809670AC = 0x80959A14; // type:func -func_8096712C = 0x80959A94; // type:func -func_80967244 = 0x80959BAC; // type:func -func_80967410 = 0x80959D78; // type:func -func_809674E0 = 0x80959E48; // type:func -func_809676A4 = 0x8095A00C; // type:func -func_8096784C = 0x8095A1B4; // type:func -func_80967A04 = 0x8095A370; // type:func -func_80967AD0 = 0x8095A43C; // type:func -func_80967BF8 = 0x8095A568; // type:func -func_80967DBC = 0x8095A72C; // type:func -func_80967F10 = 0x8095A878; // type:func -Demo6K_Update = 0x8095A944; // type:func -func_80967FFC = 0x8095A968; // type:func -func_80968298 = 0x8095ABC4; // type:func -func_8096865C = 0x8095AF48; // type:func -func_809688C4 = 0x8095B168; // type:func -func_80968B70 = 0x8095B3E4; // type:func -func_80968FB0 = 0x8095B7E4; // type:func -func_809691BC = 0x8095B9A8; // type:func -DemoDu_Destroy = 0x8095C040; // type:func -DemoDu_UpdateEyes = 0x8095C064; // type:func -DemoDu_SetEyeTexIndex = 0x8095C0EC; // type:func -DemoDu_SetMouthTexIndex = 0x8095C104; // type:func -DemoDu_UpdateSkelAnime = 0x8095C11C; // type:func -DemoDu_UpdateBgCheckInfo = 0x8095C140; // type:func -DemoDu_GetCue = 0x8095C188; // type:func -DemoDu_CheckForCue = 0x8095C1B0; // type:func -DemoDu_CheckForNoCue = 0x8095C1FC; // type:func -DemoDu_SetStartPosRotFromCue = 0x8095C248; // type:func -func_80969DDC = 0x8095C2C8; // type:func -DemoDu_InitCs_FireMedallion = 0x8095C358; // type:func -DemoDu_CsFireMedallion_SpawnDoorWarp = 0x8095C3C8; // type:func -func_80969F38 = 0x8095C424; // type:func -func_80969FB4 = 0x8095C4A0; // type:func -DemoDu_CsFireMedallion_AdvanceTo01 = 0x8095C4C0; // type:func -DemoDu_CsFireMedallion_AdvanceTo02 = 0x8095C558; // type:func -DemoDu_CsFireMedallion_AdvanceTo03 = 0x8095C5A8; // type:func -DemoDu_CsFireMedallion_AdvanceTo04 = 0x8095C5D4; // type:func -DemoDu_CsFireMedallion_AdvanceTo05 = 0x8095C668; // type:func -DemoDu_CsFireMedallion_AdvanceTo06 = 0x8095C6D4; // type:func -DemoDu_UpdateCs_FM_00 = 0x8095C720; // type:func -DemoDu_UpdateCs_FM_01 = 0x8095C740; // type:func -DemoDu_UpdateCs_FM_02 = 0x8095C760; // type:func -DemoDu_UpdateCs_FM_03 = 0x8095C794; // type:func -DemoDu_UpdateCs_FM_04 = 0x8095C7D4; // type:func -DemoDu_UpdateCs_FM_05 = 0x8095C80C; // type:func -DemoDu_UpdateCs_FM_06 = 0x8095C84C; // type:func -DemoDu_InitCs_GoronsRuby = 0x8095C878; // type:func -DemoDu_CsPlaySfx_GoronLanding = 0x8095C8C8; // type:func -DemoDu_CsPlaySfx_DaruniaFalling = 0x8095C8F0; // type:func -DemoDu_CsPlaySfx_DaruniaHitsLink = 0x8095C920; // type:func -DemoDu_CsPlaySfx_HitBreast = 0x8095C978; // type:func -DemoDu_CsPlaySfx_LinkEscapeFromGorons = 0x8095C9A0; // type:func -DemoDu_CsPlaySfx_LinkSurprised = 0x8095C9F8; // type:func -DemoDu_CsGoronsRuby_UpdateFaceTextures = 0x8095CA50; // type:func -func_8096A630 = 0x8095CB58; // type:func -DemoDu_CsGoronsRuby_SpawnDustWhenHittingLink = 0x8095CC0C; // type:func -DemoDu_CsGoronsRuby_DaruniaFalling = 0x8095CEA0; // type:func -DemoDu_CsGoronsRuby_AdvanceTo01 = 0x8095CF7C; // type:func -DemoDu_CsGoronsRuby_AdvanceTo02 = 0x8095CF90; // type:func -DemoDu_CsGoronsRuby_AdvanceTo03 = 0x8095D034; // type:func -DemoDu_CsGoronsRuby_AdvanceTo04 = 0x8095D088; // type:func -DemoDu_CsGoronsRuby_AdvanceTo05 = 0x8095D0C0; // type:func -DemoDu_CsGoronsRuby_AdvanceTo06 = 0x8095D12C; // type:func -DemoDu_CsGoronsRuby_AdvanceTo07 = 0x8095D1C4; // type:func -DemoDu_CsGoronsRuby_AdvanceTo08 = 0x8095D230; // type:func -DemoDu_CsGoronsRuby_AdvanceTo09 = 0x8095D2C4; // type:func -DemoDu_CsGoronsRuby_AdvanceTo10 = 0x8095D334; // type:func -DemoDu_CsGoronsRuby_AdvanceTo11 = 0x8095D3A0; // type:func -DemoDu_CsGoronsRuby_AdvanceTo12 = 0x8095D434; // type:func -DemoDu_CsGoronsRuby_AdvanceTo13 = 0x8095D4A0; // type:func -DemoDu_UpdateCs_GR_00 = 0x8095D530; // type:func -DemoDu_UpdateCs_GR_01 = 0x8095D564; // type:func -DemoDu_UpdateCs_GR_02 = 0x8095D5A0; // type:func -DemoDu_UpdateCs_GR_03 = 0x8095D5FC; // type:func -DemoDu_UpdateCs_GR_04 = 0x8095D63C; // type:func -DemoDu_UpdateCs_GR_05 = 0x8095D68C; // type:func -DemoDu_UpdateCs_GR_06 = 0x8095D6D8; // type:func -DemoDu_UpdateCs_GR_07 = 0x8095D738; // type:func -DemoDu_UpdateCs_GR_08 = 0x8095D784; // type:func -DemoDu_UpdateCs_GR_09 = 0x8095D7E8; // type:func -DemoDu_UpdateCs_GR_10 = 0x8095D848; // type:func -DemoDu_UpdateCs_GR_11 = 0x8095D894; // type:func -DemoDu_UpdateCs_GR_12 = 0x8095D8E4; // type:func -DemoDu_UpdateCs_GR_13 = 0x8095D930; // type:func -DemoDu_InitCs_AfterGanon = 0x8095D978; // type:func -DemoDu_CsPlaySfx_WhiteOut = 0x8095DA18; // type:func -DemoDu_CsAfterGanon_SpawnDemo6K = 0x8095DA38; // type:func -DemoDu_CsAfterGanon_AdvanceTo01 = 0x8095DAB8; // type:func -DemoDu_CsAfterGanon_AdvanceTo02 = 0x8095DB0C; // type:func -DemoDu_CsAfterGanon_BackTo01 = 0x8095DC60; // type:func -DemoDu_UpdateCs_AG_00 = 0x8095DCFC; // type:func -DemoDu_UpdateCs_AG_01 = 0x8095DD1C; // type:func -DemoDu_UpdateCs_AG_02 = 0x8095DD64; // type:func -DemoDu_Draw_02 = 0x8095DDAC; // type:func -DemoDu_InitCs_Credits = 0x8095DF68; // type:func -DemoDu_CsCredits_UpdateShadowAlpha = 0x8095DFD4; // type:func -DemoDu_CsCredits_AdvanceTo01 = 0x8095E060; // type:func -DemoDu_CsCredits_AdvanceTo02 = 0x8095E098; // type:func -DemoDu_CsCredits_AdvanceTo03 = 0x8095E0E4; // type:func -DemoDu_CsCredits_AdvanceTo04 = 0x8095E124; // type:func -DemoDu_CsCredits_BackTo02 = 0x8095E164; // type:func -DemoDu_CsCredits_HandleCues = 0x8095E1AC; // type:func -DemoDu_UpdateCs_CR_00 = 0x8095E258; // type:func -DemoDu_UpdateCs_CR_01 = 0x8095E278; // type:func -DemoDu_UpdateCs_CR_02 = 0x8095E2C4; // type:func -DemoDu_UpdateCs_CR_03 = 0x8095E30C; // type:func -DemoDu_UpdateCs_CR_04 = 0x8095E354; // type:func -DemoDu_Update = 0x8095E398; // type:func -DemoDu_Init = 0x8095E3E0; // type:func -DemoDu_Draw_NoDraw = 0x8095E484; // type:func -DemoDu_Draw_01 = 0x8095E494; // type:func -DemoDu_Draw = 0x8095E63C; // type:func -DemoEc_Destroy = 0x8095F820; // type:func -DemoEc_Init = 0x8095F844; // type:func -DemoEc_UpdateSkelAnime = 0x8095F88C; // type:func -DemoEc_UpdateBgFlags = 0x8095F8B0; // type:func -func_8096D594 = 0x8095F8F8; // type:func -func_8096D5D4 = 0x8095F938; // type:func -func_8096D64C = 0x8095F9B0; // type:func -DemoEc_UpdateEyes = 0x8095F9F0; // type:func -DemoEc_SetEyeTexIndex = 0x8095FA78; // type:func -DemoEc_InitSkelAnime = 0x8095FA90; // type:func -DemoEc_ChangeAnimation = 0x8095FB08; // type:func -DemoEc_AllocColorDList = 0x8095FBC4; // type:func -DemoEc_DrawSkeleton = 0x8095FC1C; // type:func -DemoEc_DrawSkeletonCustomColor = 0x8095FDAC; // type:func -DemoEc_UseDrawObject = 0x8096000C; // type:func -DemoEc_UseAnimationObject = 0x80960068; // type:func -DemoEc_GetCue = 0x809600A0; // type:func -DemoEc_SetStartPosRotFromCue = 0x809600C8; // type:func -DemoEc_InitIngo = 0x80960148; // type:func -DemoEc_UpdateIngo = 0x809601E8; // type:func -DemoEc_DrawIngo = 0x80960228; // type:func -DemoEc_InitTalon = 0x8096025C; // type:func -DemoEc_UpdateTalon = 0x809602FC; // type:func -DemoEc_DrawTalon = 0x8096033C; // type:func -DemoEc_InitWindmillMan = 0x80960370; // type:func -DemoEc_UpdateWindmillMan = 0x80960410; // type:func -DemoEc_DrawWindmillMan = 0x80960450; // type:func -DemoEc_InitKokiriBoy = 0x80960484; // type:func -DemoEc_InitDancingKokiriBoy = 0x80960524; // type:func -DemoEc_UpdateKokiriBoy = 0x809605C8; // type:func -DemoEc_UpdateDancingKokiriBoy = 0x80960608; // type:func -DemoEc_DrawKokiriBoy = 0x80960628; // type:func -DemoEc_InitKokiriGirl = 0x8096066C; // type:func -DemoEc_InitDancingKokiriGirl = 0x8096070C; // type:func -DemoEc_UpdateKokiriGirl = 0x809607B0; // type:func -DemoEc_UpdateDancingKokiriGirl = 0x809607F8; // type:func -DemoEc_DrawKokiriGirl = 0x80960818; // type:func -DemoEc_InitOldMan = 0x8096086C; // type:func -DemoEc_UpdateOldMan = 0x8096090C; // type:func -DemoEc_DrawOldMan = 0x80960954; // type:func -DemoEc_InitBeardedMan = 0x809609A8; // type:func -DemoEc_UpdateBeardedMan = 0x80960A48; // type:func -DemoEc_DrawBeardedMan = 0x80960A90; // type:func -DemoEc_InitWoman = 0x80960AE4; // type:func -DemoEc_UpdateWoman = 0x80960B84; // type:func -DemoEc_DrawWoman = 0x80960BCC; // type:func -DemoEc_InitOldWoman = 0x80960C08; // type:func -DemoEc_UpdateOldWoman = 0x80960CA8; // type:func -DemoEc_DrawOldWoman = 0x80960CE8; // type:func -DemoEc_InitBossCarpenter = 0x80960D18; // type:func -DemoEc_UpdateBossCarpenter = 0x80960DB8; // type:func -DemoEc_DrawBossCarpenter = 0x80960DF8; // type:func -DemoEc_InitCarpenter = 0x80960E24; // type:func -DemoEc_UpdateCarpenter = 0x80960EC4; // type:func -DemoEc_CarpenterOverrideLimbDraw = 0x80960F04; // type:func -DemoEc_GetCarpenterPostLimbDList = 0x80961008; // type:func -DemoEc_CarpenterPostLimbDraw = 0x80961070; // type:func -DemoEc_DrawCarpenter = 0x809610F4; // type:func -DemoEc_InitGerudo = 0x80961130; // type:func -DemoEc_UpdateGerudo = 0x809611D4; // type:func -DemoEc_GetGerudoPostLimbDList = 0x8096121C; // type:func -DemoEc_GerudoPostLimbDraw = 0x80961270; // type:func -DemoEc_DrawGerudo = 0x809612F4; // type:func -DemoEc_InitDancingZora = 0x80961338; // type:func -DemoEc_UpdateDancingZora = 0x809613DC; // type:func -DemoEc_DrawDancingZora = 0x80961424; // type:func -DemoEc_InitKingZora = 0x80961460; // type:func -func_8096F1D4 = 0x80961510; // type:func -func_8096F224 = 0x80961560; // type:func -func_8096F26C = 0x809615A8; // type:func -func_8096F2B0 = 0x809615F0; // type:func -DemoEc_UpdateKingZora = 0x80961654; // type:func -func_8096F378 = 0x809616BC; // type:func -func_8096F3D4 = 0x8096171C; // type:func -DemoEc_DrawKingZora = 0x80961764; // type:func -DemoEc_InitMido = 0x809617A0; // type:func -func_8096F4FC = 0x80961850; // type:func -func_8096F544 = 0x80961898; // type:func -func_8096F578 = 0x809618CC; // type:func -DemoEc_UpdateMido = 0x80961930; // type:func -func_8096F640 = 0x80961998; // type:func -DemoEc_DrawMido = 0x809619F8; // type:func -DemoEc_InitCucco = 0x80961A34; // type:func -DemoEc_UpdateCucco = 0x80961B04; // type:func -DemoEc_DrawCucco = 0x80961B44; // type:func -DemoEc_InitCuccoLady = 0x80961B70; // type:func -DemoEc_UpdateCuccoLady = 0x80961C14; // type:func -DemoEc_DrawCuccoLady = 0x80961C5C; // type:func -DemoEc_InitPotionShopOwner = 0x80961C98; // type:func -DemoEc_UpdatePotionShopOwner = 0x80961D3C; // type:func -DemoEc_DrawPotionShopOwner = 0x80961D84; // type:func -DemoEc_InitMaskShopOwner = 0x80961DC0; // type:func -DemoEc_UpdateMaskShopOwner = 0x80961E64; // type:func -DemoEc_DrawMaskShopOwner = 0x80961EA4; // type:func -DemoEc_InitFishingOwner = 0x80961ED4; // type:func -DemoEc_UpdateFishingOwner = 0x80961F78; // type:func -DemoEc_FishingOwnerPostLimbDraw = 0x80961FC0; // type:func -DemoEc_DrawFishingOwner = 0x80962040; // type:func -DemoEc_InitBombchuShopOwner = 0x80962084; // type:func -DempEc_UpdateBombchuShopOwner = 0x80962128; // type:func -DemoEc_DrawBombchuShopOwner = 0x80962170; // type:func -DemoEc_InitGorons = 0x809621AC; // type:func -DemoEc_UpdateGorons = 0x809622E4; // type:func -DemoEc_DrawGorons = 0x8096232C; // type:func -DemoEc_InitMalon = 0x8096236C; // type:func -DemoEc_UpdateMalon = 0x80962410; // type:func -DemoEc_DrawMalon = 0x80962458; // type:func -DemoEc_InitNpc = 0x80962498; // type:func -DemoEc_InitCommon = 0x809624E4; // type:func -DemoEc_Update = 0x809625B8; // type:func -DemoEc_DrawCommon = 0x80962630; // type:func -DemoEc_Draw = 0x80962640; // type:func -DemoEffect_SetupUpdate = 0x80963080; // type:func -DemoEffect_InterpolateCsFrames = 0x8096308C; // type:func -DemoEffect_InitJewel = 0x809630EC; // type:func -DemoEffect_InitGetItem = 0x809631AC; // type:func -DemoEffect_Init = 0x809631F8; // type:func -DemoEffect_Destroy = 0x809639F8; // type:func -DemoEffect_WaitForObject = 0x80963A48; // type:func -DemoEffect_UpdatePositionToParent = 0x80963AA0; // type:func -DemoEffect_UpdateCrystalLight = 0x80963AD0; // type:func -DemoEffect_MedalSparkle = 0x80963B04; // type:func -DemoEffect_UpdateGetItem = 0x80963C9C; // type:func -DemoEffect_InitTimeWarp = 0x80963EDC; // type:func -DemoEffect_UpdateTimeWarpPullMasterSword = 0x80964098; // type:func -DemoEffect_TimewarpShrink = 0x8096413C; // type:func -DemoEffect_UpdateTimeWarpReturnFromChamberOfSages = 0x80964260; // type:func -DemoEffect_UpdateTimeWarpTimeblock = 0x80964318; // type:func -DemoEffect_InitTimeWarpTimeblock = 0x809643D4; // type:func -DemoEffect_UpdateTriforceSpot = 0x80964458; // type:func -DemoEffect_UpdateLightRingShrinking = 0x80964740; // type:func -DemoEffect_UpdateLightRingExpanding = 0x809647D0; // type:func -DemoEffect_UpdateLightRingTriforce = 0x80964844; // type:func -DemoEffect_UpdateCreationFireball = 0x80964900; // type:func -DemoEffect_InitCreationFireball = 0x80964A54; // type:func -DemoEffect_UpdateBlueOrbShrink = 0x80964AA4; // type:func -DemoEffect_UpdateBlueOrbGrow = 0x80964B0C; // type:func -DemoEffect_UpdateLightEffect = 0x80964BEC; // type:func -DemoEffect_UpdateLgtShower = 0x80964EE4; // type:func -DemoEffect_UpdateGodLgtDin = 0x80964F50; // type:func -DemoEffect_UpdateGodLgtNayru = 0x809650EC; // type:func -DemoEffect_UpdateGodLgtFarore = 0x809652E4; // type:func -DemoEffect_MoveTowardTarget = 0x80965488; // type:func -DemoEffect_InitJewelColor = 0x809654E8; // type:func -DemoEffect_SetJewelColor = 0x809655E8; // type:func -DemoEffect_MoveJewelSplit = 0x80965D5C; // type:func -DemoEffect_MoveJewelSpherical = 0x80965DB8; // type:func -DemoEffect_MoveJewelActivateDoorOfTime = 0x80965F9C; // type:func -DemoEffect_JewelSparkle = 0x80966208; // type:func -DemoEffect_PlayJewelSfx = 0x8096636C; // type:func -DemoEffect_UpdateJewelAdult = 0x809663D0; // type:func -DemoEffect_UpdateJewelChild = 0x80966414; // type:func -DemoEffect_UpdateDust = 0x80966628; // type:func -DemoEffect_Update = 0x8096674C; // type:func -DemoEffect_CheckForCue = 0x80966770; // type:func -DemoEffect_DrawJewel = 0x809667B4; // type:func -DemoEffect_DrawCrystalLight = 0x80966BF4; // type:func -DemoEffect_DrawFireBall = 0x80966ECC; // type:func -DemoEffect_DrawGodLgt = 0x80967058; // type:func -DemoEffect_DrawLightEffect = 0x80967428; // type:func -DemoEffect_DrawBlueOrb = 0x80967660; // type:func -DemoEffect_DrawLgtShower = 0x80967788; // type:func -DemoEffect_DrawLightRing = 0x8096790C; // type:func -DemoEffect_DrawTriforceSpot = 0x80967A74; // type:func -DemoEffect_DrawGetItem = 0x80967FF8; // type:func -DemoEffect_OverrideLimbDrawTimeWarp = 0x80968090; // type:func -DemoEffect_DrawTimeWarp = 0x80968210; // type:func -DemoEffect_FaceTowardPoint = 0x809682E8; // type:func -DemoEffect_SetPosRotFromCue = 0x80968398; // type:func -DemoEffect_MoveTowardCuePos = 0x809684F8; // type:func -DemoEffect_SetStartPosFromCue = 0x809685A4; // type:func -DemoExt_Destroy = 0x80968C20; // type:func -DemoExt_Init = 0x80968C30; // type:func -DemoExt_PlayVortexSFX = 0x80968CE8; // type:func -DemoExt_GetCue = 0x80968D70; // type:func -DemoExt_SetupWait = 0x80968D98; // type:func -DemoExt_SetupMaintainVortex = 0x80968DA8; // type:func -DemoExt_SetupDispellVortex = 0x80968E34; // type:func -DemoExt_FinishClosing = 0x80968E4C; // type:func -DemoExt_HandleCues = 0x80968EB8; // type:func -DemoExt_SetScrollAndRotation = 0x80968F64; // type:func -DemoExt_SetColorsAndScales = 0x80968FB4; // type:func -DemoExt_Wait = 0x809690F0; // type:func -DemoExt_MaintainVortex = 0x80969110; // type:func -DemoExt_DispellVortex = 0x8096914C; // type:func -DemoExt_Update = 0x8096918C; // type:func -DemoExt_DrawNothing = 0x809691D4; // type:func -DemoExt_DrawVortex = 0x809691E4; // type:func -DemoExt_Draw = 0x80969464; // type:func -DemoGeff_Destroy = 0x80969570; // type:func -DemoGeff_Init = 0x80969580; // type:func -func_80977EA8 = 0x809695C8; // type:func -func_80977F80 = 0x80969664; // type:func -func_80978030 = 0x809696C0; // type:func -func_809781FC = 0x8096988C; // type:func -func_809782A0 = 0x80969930; // type:func -func_80978308 = 0x80969998; // type:func -func_80978344 = 0x809699D0; // type:func -func_80978370 = 0x80969A00; // type:func -func_809783D4 = 0x80969A4C; // type:func -DemoGeff_Update = 0x80969AE8; // type:func -func_809784D4 = 0x80969B30; // type:func -DemoGeff_Draw = 0x80969B40; // type:func -DemoGj_GetCollectibleType = 0x80969D90; // type:func -DemoGj_GetCollectibleAmount = 0x80969DA4; // type:func -DemoGj_GetType = 0x80969DB8; // type:func -DemoGj_InitCylinder = 0x80969DC8; // type:func -DemoGj_HitByExplosion = 0x80969E10; // type:func -DemoGj_DestroyCylinder = 0x80969E48; // type:func -DemoGj_Destroy = 0x80969F00; // type:func -DemoGj_PlayExplosionSfx = 0x80969F44; // type:func -DemoGj_SpawnSmoke = 0x80969F7C; // type:func -DemoGj_DropCollectible = 0x8096A010; // type:func -DemoGj_Explode = 0x8096A0A4; // type:func -DemoGj_IsCutsceneLayer = 0x8096A340; // type:func -DemoGj_FindGanon = 0x8096A368; // type:func -DemoGj_InitCommon = 0x8096A3B4; // type:func -DemoGj_InitSetIndices = 0x8096A42C; // type:func -DemoGj_DrawCommon = 0x8096A490; // type:func -DemoGj_DrawRotated = 0x8096A52C; // type:func -DemoGj_SetupRotation = 0x8096A608; // type:func -func_809797E4 = 0x8096ABA0; // type:func -DemoGj_IsGanondorfRisingFromRubble = 0x8096ABD4; // type:func -DemoGj_IsGanondorfFloatingInAir = 0x8096ABF8; // type:func -DemoGj_SetupMovement = 0x8096AC1C; // type:func -DemoGj_CheckIfTransformedIntoGanon = 0x8096B340; // type:func -DemoGj_InitRubblePile1 = 0x8096B378; // type:func -func_8097A000 = 0x8096B3A8; // type:func -DemoGj_SpawnSmokePreBattle1 = 0x8096B424; // type:func -func_8097A0E4 = 0x8096B490; // type:func -func_8097A130 = 0x8096B4E4; // type:func -DemoGj_Update01 = 0x8096B518; // type:func -DemoGj_Update08 = 0x8096B550; // type:func -DemoGj_DrawRubble2 = 0x8096B588; // type:func -DemoGj_DrawRotatedRubble2 = 0x8096B5AC; // type:func -DemoGj_InitRubblePile2 = 0x8096B5D0; // type:func -func_8097A238 = 0x8096B600; // type:func -DemoGj_SpawnSmokePreBattle2 = 0x8096B67C; // type:func -func_8097A320 = 0x8096B6EC; // type:func -func_8097A36C = 0x8096B740; // type:func -DemoGj_Update02 = 0x8096B774; // type:func -DemoGj_Update09 = 0x8096B7AC; // type:func -DemoGj_DrawRubble3 = 0x8096B7E4; // type:func -DemoGj_DrawRotatedRubble3 = 0x8096B808; // type:func -DemoGj_InitRubblePile3 = 0x8096B82C; // type:func -func_8097A474 = 0x8096B85C; // type:func -func_8097A4F0 = 0x8096B8D8; // type:func -func_8097A53C = 0x8096B92C; // type:func -DemoGj_Update03 = 0x8096B960; // type:func -DemoGj_Update10 = 0x8096B998; // type:func -DemoGj_DrawRubble4 = 0x8096B9D0; // type:func -DemoGj_DrawRotatedRubble4 = 0x8096B9F4; // type:func -DemoGj_InitRubblePile4 = 0x8096BA18; // type:func -func_8097A644 = 0x8096BA48; // type:func -func_8097A6C0 = 0x8096BAC4; // type:func -func_8097A70C = 0x8096BB18; // type:func -DemoGj_Update04 = 0x8096BB4C; // type:func -DemoGj_Update11 = 0x8096BB84; // type:func -DemoGj_DrawRubble5 = 0x8096BBBC; // type:func -DemoGj_DrawRotatedRubble5 = 0x8096BBE0; // type:func -DemoGj_InitRubblePile5 = 0x8096BC04; // type:func -func_8097A814 = 0x8096BC34; // type:func -func_8097A890 = 0x8096BCB0; // type:func -func_8097A8DC = 0x8096BD04; // type:func -DemoGj_Update05 = 0x8096BD38; // type:func -DemoGj_Update12 = 0x8096BD70; // type:func -DemoGj_DrawRubble6 = 0x8096BDA8; // type:func -DemoGj_DrawRotatedRubble6 = 0x8096BDCC; // type:func -DemoGj_InitRubblePile6 = 0x8096BDF0; // type:func -func_8097A9E4 = 0x8096BE20; // type:func -func_8097AA60 = 0x8096BE9C; // type:func -func_8097AAAC = 0x8096BEF0; // type:func -DemoGj_Update06 = 0x8096BF24; // type:func -DemoGj_Update13 = 0x8096BF5C; // type:func -DemoGj_DrawRubble7 = 0x8096BF94; // type:func -DemoGj_DrawRotatedRubble7 = 0x8096BFB8; // type:func -DemoGj_InitRubblePile7 = 0x8096BFDC; // type:func -func_8097ABB4 = 0x8096C00C; // type:func -DemoGj_SpawnSmokePreBattle3 = 0x8096C088; // type:func -func_8097AC9C = 0x8096C0F8; // type:func -func_8097ACE8 = 0x8096C14C; // type:func -DemoGj_Update07 = 0x8096C180; // type:func -DemoGj_Update14 = 0x8096C1B8; // type:func -DemoGj_DrawRubbleTall = 0x8096C1F0; // type:func -DemoGj_DrawRotatedRubbleTall = 0x8096C214; // type:func -DemoGj_InitRubbleAroundArena = 0x8096C238; // type:func -DemoGj_UpdateRubbleAroundArena = 0x8096C268; // type:func -DemoGj_DrawRubbleAroundArena = 0x8096C2B8; // type:func -DemoGj_InitDestructableRubble1 = 0x8096C2DC; // type:func -func_8097AEE8 = 0x8096C364; // type:func -DemoGj_SetCylindersAsAC = 0x8096C4F8; // type:func -DemoGj_DirectedExplosion = 0x8096C564; // type:func -func_8097B128 = 0x8096C5A0; // type:func -DemoGj_HasCylinderAnyExploded = 0x8096C630; // type:func -func_8097B22C = 0x8096C6AC; // type:func -DemoGj_Update15 = 0x8096C7C4; // type:func -DemoGj_Update18 = 0x8096C7FC; // type:func -DemoGj_DrawDestructableRubble1 = 0x8096C81C; // type:func -DemoGj_InitDestructableRubble2 = 0x8096C840; // type:func -func_8097B450 = 0x8096C8C8; // type:func -DemoGj_SetCylindersAsAC2 = 0x8096CA18; // type:func -DemoGj_HasCylinderAnyExploded2 = 0x8096CA84; // type:func -DemoGj_DirectedExplosion2 = 0x8096CB00; // type:func -func_8097B6C4 = 0x8096CB3C; // type:func -func_8097B750 = 0x8096CBCC; // type:func -DemoGj_Update16 = 0x8096CCE4; // type:func -DemoGj_Update19 = 0x8096CD1C; // type:func -DemoGj_DemoGj_InitDestructableRubble2 = 0x8096CD3C; // type:func -DemoGj_InitDestructableRubbleTall = 0x8096CD60; // type:func -DemoGj_DirectedDoubleExplosion = 0x8096CDAC; // type:func -func_8097B9BC = 0x8096CE30; // type:func -func_8097BA48 = 0x8096CEC0; // type:func -DemoGj_Update17 = 0x8096CFF4; // type:func -DemoGj_Update20 = 0x8096D02C; // type:func -DemoGj_DemoGj_InitDestructableRubbleTall = 0x8096D04C; // type:func -DemoGj_Update = 0x8096D070; // type:func -DemoGj_Init = 0x8096D0B8; // type:func -DemoGj_DrawNothing = 0x8096D1C0; // type:func -DemoGj_Draw = 0x8096D1D0; // type:func -DemoGo_GetCueChannel = 0x8096DA40; // type:func -func_8097C8A8 = 0x8096DA7C; // type:func -DemoGo_Destroy = 0x8096DAE8; // type:func -func_8097C930 = 0x8096DB0C; // type:func -func_8097C9B8 = 0x8096DB94; // type:func -func_8097C9DC = 0x8096DBBC; // type:func -func_8097CA30 = 0x8096DC14; // type:func -func_8097CA78 = 0x8096DC5C; // type:func -func_8097CB0C = 0x8096DCF4; // type:func -func_8097CC08 = 0x8096DDF4; // type:func -func_8097CCC0 = 0x8096DEAC; // type:func -func_8097CCE0 = 0x8096DECC; // type:func -DemoGo_UpdateSkelAnime = 0x8096DF84; // type:func -func_8097CDB0 = 0x8096DFA8; // type:func -func_8097CE10 = 0x8096E014; // type:func -func_8097CE20 = 0x8096E028; // type:func -func_8097CE78 = 0x8096E084; // type:func -func_8097CEEC = 0x8096E0FC; // type:func -func_8097CF20 = 0x8096E134; // type:func -func_8097CF9C = 0x8096E1B0; // type:func -func_8097CFDC = 0x8096E1F0; // type:func -func_8097CFFC = 0x8096E210; // type:func -func_8097D01C = 0x8096E230; // type:func -func_8097D058 = 0x8096E274; // type:func -func_8097D088 = 0x8096E2AC; // type:func -func_8097D0D0 = 0x8096E2FC; // type:func -func_8097D130 = 0x8096E364; // type:func -DemoGo_Update = 0x8096E3C4; // type:func -DemoGo_Init = 0x8096E40C; // type:func -func_8097D290 = 0x8096E4B8; // type:func -func_8097D29C = 0x8096E4C8; // type:func -DemoGo_Draw = 0x8096E5D8; // type:func -DemoGt_Destroy = 0x8096E790; // type:func -DemoGt_PlayEarthquakeSfx = 0x8096E7D8; // type:func -DemoGt_PlayExplosion1Sfx = 0x8096E7F8; // type:func -DemoGt_PlayExplosion2Sfx = 0x8096E81C; // type:func -DemoGt_Rumble = 0x8096E840; // type:func -DemoGt_SpawnDust = 0x8096E870; // type:func -func_8097D7D8 = 0x8096E900; // type:func -DemoGt_SpawnCloudRing = 0x8096EA88; // type:func -DemoGt_SpawnExplosionWithSound = 0x8096EAE8; // type:func -DemoGt_SpawnExplosionNoSound = 0x8096EB9C; // type:func -func_8097DAC8 = 0x8096EBF0; // type:func -func_8097DD28 = 0x8096EE50; // type:func -func_8097DF70 = 0x8096F098; // type:func -func_8097E1D4 = 0x8096F2FC; // type:func -func_8097E454 = 0x8096F57C; // type:func -DemoGt_IsCutsceneIdle = 0x8096F7CC; // type:func -DemoGt_GetCue = 0x8096F7EC; // type:func -func_8097E704 = 0x8096F838; // type:func -func_8097E744 = 0x8096F878; // type:func -func_8097E824 = 0x8096F958; // type:func -func_8097ED64 = 0x8096FE94; // type:func -DemoGt_IsCutsceneLayer = 0x8096FECC; // type:func -func_8097EDD8 = 0x8096FEF4; // type:func -func_8097EE44 = 0x8096FF6C; // type:func -func_8097EEA8_Init0 = 0x8096FFD0; // type:func -func_8097EF00 = 0x80970028; // type:func -func_8097EF34 = 0x8097005C; // type:func -func_8097EF40 = 0x8097006C; // type:func -func_8097F0AC = 0x809701C4; // type:func -func_8097F19C = 0x809702A8; // type:func -func_8097F1D8 = 0x809702EC; // type:func -func_8097F280 = 0x80970394; // type:func -func_8097F3EC = 0x80970508; // type:func -DemoGt_Update0 = 0x80970548; // type:func -DemoGt_Update8 = 0x809705C0; // type:func -DemoGt_Draw1 = 0x80970638; // type:func -func_8097F904_Init1 = 0x809709FC; // type:func -func_8097F960 = 0x80970A58; // type:func -func_8097F96C = 0x80970A68; // type:func -func_8097FA1C = 0x80970AFC; // type:func -func_8097FAFC = 0x80970BC4; // type:func -func_8097FC1C = 0x80970CCC; // type:func -func_8097FCE4 = 0x80970D80; // type:func -func_8097FD70 = 0x80970DFC; // type:func -func_8097FDDC = 0x80970E70; // type:func -func_8097FED8 = 0x80970F70; // type:func -DemoGt_Update1 = 0x80970FB0; // type:func -DemoGt_Update9 = 0x80971000; // type:func -DemoGt_Draw2 = 0x80971048; // type:func -func_80980110_Init2 = 0x8097117C; // type:func -func_8098016C = 0x809711D8; // type:func -func_80980178 = 0x809711E8; // type:func -func_80980184 = 0x809711F8; // type:func -func_80980218 = 0x8097128C; // type:func -func_809802AC = 0x80971320; // type:func -func_8098036C = 0x809713E4; // type:func -func_80980430 = 0x809714AC; // type:func -func_80980504 = 0x8097156C; // type:func -func_809805D8 = 0x8097162C; // type:func -func_809806B8 = 0x809716F4; // type:func -func_8098078C = 0x809717B4; // type:func -func_8098085C = 0x80971870; // type:func -func_809809C0 = 0x809719BC; // type:func -func_80980AD4 = 0x80971AC0; // type:func -func_80980B68 = 0x80971B40; // type:func -func_80980BFC = 0x80971BC0; // type:func -func_80980C90 = 0x80971C40; // type:func -func_80980D74 = 0x80971D2C; // type:func -DemoGt_Update2 = 0x80971D6C; // type:func -DemoGt_Update10 = 0x80971DB0; // type:func -DemoGt_Draw3 = 0x80971DEC; // type:func -func_80980F00_Init5 = 0x80971E88; // type:func -func_80980F58 = 0x80971EE0; // type:func -func_80980F8C = 0x80971F18; // type:func -func_8098103C = 0x80971FCC; // type:func -DemoGt_Update3 = 0x80972030; // type:func -DemoGt_Update11 = 0x80972074; // type:func -DemoGt_Update16 = 0x809720B0; // type:func -DemoGt_Draw4 = 0x80972148; // type:func -func_809813CC_Init6 = 0x80972330; // type:func -func_80981424 = 0x80972388; // type:func -func_80981458 = 0x809723C0; // type:func -func_80981524 = 0x80972478; // type:func -DemoGt_Update4 = 0x809724DC; // type:func -DemoGt_Update12 = 0x80972520; // type:func -DemoGt_Update17 = 0x8097255C; // type:func -DemoGt_Draw5 = 0x809725F4; // type:func -func_809818A4_Init7 = 0x809727D0; // type:func -func_809818FC = 0x80972828; // type:func -func_80981930 = 0x80972860; // type:func -DemoGt_Update5 = 0x809728C4; // type:func -DemoGt_Update13 = 0x80972908; // type:func -DemoGt_Update18 = 0x80972944; // type:func -DemoGt_Draw6 = 0x809729DC; // type:func -func_80981C94_Init23 = 0x80972B94; // type:func -func_80981CEC = 0x80972BEC; // type:func -func_80981D20 = 0x80972C24; // type:func -func_80981DC8 = 0x80972CCC; // type:func -DemoGt_Update6 = 0x80972D0C; // type:func -DemoGt_Update14 = 0x80972D50; // type:func -DemoGt_Draw7 = 0x80972D94; // type:func -func_80982054_Init24 = 0x80972F2C; // type:func -func_809820AC = 0x80972F84; // type:func -func_809820E0 = 0x80972FBC; // type:func -func_80982188 = 0x80973064; // type:func -DemoGt_Update7 = 0x809730A4; // type:func -DemoGt_Update15 = 0x809730E8; // type:func -DemoGt_Draw8 = 0x8097312C; // type:func -DemoGt_Update = 0x809732C8; // type:func -DemoGt_Init = 0x80973310; // type:func -DemoGt_Draw0 = 0x809733D4; // type:func -DemoGt_Draw = 0x809733E4; // type:func -DemoIk_Destroy = 0x80973DA0; // type:func -DemoIk_BgCheck = 0x80973DB0; // type:func -DemoIk_UpdateSkelAnime = 0x80973DF8; // type:func -DemoIk_GetCue = 0x80973E1C; // type:func -DemoIk_CheckForCue = 0x80973E44; // type:func -DemoIk_SetMove = 0x80973E84; // type:func -DemoIk_EndMove = 0x80973EC4; // type:func -DemoIk_GetCurFrame = 0x80973ED8; // type:func -DemoIk_SetColors = 0x80973EE4; // type:func -DemoIk_GetCueChannel = 0x80973F88; // type:func -DemoIk_Type1PlaySfx = 0x80973FB4; // type:func -DemoIk_SpawnDeadDb = 0x809740B4; // type:func -DemoIk_MoveToStartPos = 0x80974258; // type:func -DemoIk_Type1Init = 0x809742D8; // type:func -func_8098393C = 0x809743F4; // type:func -func_8098394C = 0x80974408; // type:func -func_809839AC = 0x8097446C; // type:func -func_809839D0 = 0x80974494; // type:func -DemoIk_Type1Action0 = 0x80974554; // type:func -DemoIk_Type1Action1 = 0x80974574; // type:func -DemoIk_Type1Action2 = 0x809745AC; // type:func -DemoIk_Type1PostLimbDraw = 0x80974614; // type:func -DemoIk_Type1Draw = 0x80974710; // type:func -DemoIk_Type2Init = 0x80974868; // type:func -DemoIk_Type2PlaySfxOnFrame = 0x80974970; // type:func -DemoIk_Type2PlaySfx = 0x809749D0; // type:func -func_80983FDC = 0x80974A20; // type:func -func_80983FEC = 0x80974A34; // type:func -func_8098402C = 0x80974A74; // type:func -func_80984048 = 0x80974A94; // type:func -DemoIk_Type2Action0 = 0x80974B5C; // type:func -DemoIk_Type2Action1 = 0x80974B7C; // type:func -DemoIk_Type2Action2 = 0x80974B9C; // type:func -DemoIk_Type2OverrideLimbDraw = 0x80974BD8; // type:func -DemoIk_Type2PostLimbDraw = 0x80974C34; // type:func -DemoIk_Type2Draw = 0x80974E04; // type:func -DemoIk_Update = 0x80974F68; // type:func -DemoIk_DrawNothing = 0x80974FB0; // type:func -DemoIk_Draw = 0x80974FC0; // type:func -DemoIk_Init = 0x80975008; // type:func -func_80984BE0 = 0x809752B0; // type:func -DemoIm_InitCollider = 0x80975338; // type:func -DemoIm_DestroyCollider = 0x80975384; // type:func -DemoIm_UpdateCollider = 0x809753B0; // type:func -func_80984DB8 = 0x809753F4; // type:func -func_80984E58 = 0x80975498; // type:func -func_80984F10 = 0x80975550; // type:func -func_80984F94 = 0x809755D8; // type:func -DemoIm_UpdateBgCheckInfo = 0x80975660; // type:func -DemoIm_UpdateSkelAnime = 0x809756A8; // type:func -DemoIm_IsCutsceneIdle = 0x809756CC; // type:func -DemoIm_GetCue = 0x809756EC; // type:func -func_809850E8 = 0x80975738; // type:func -func_80985134 = 0x80975784; // type:func -func_80985180 = 0x809757D0; // type:func -func_80985200 = 0x80975850; // type:func -DemoIm_ChangeAnim = 0x809758D0; // type:func -func_80985310 = 0x80975960; // type:func -func_80985358 = 0x809759A8; // type:func -func_809853B4 = 0x80975A04; // type:func -func_80985430 = 0x80975A80; // type:func -func_8098544C = 0x80975AA0; // type:func -func_809854DC = 0x80975B3C; // type:func -func_8098557C = 0x80975BDC; // type:func -func_809855A8 = 0x80975C08; // type:func -func_80985640 = 0x80975CA0; // type:func -func_809856AC = 0x80975D0C; // type:func -func_809856F8 = 0x80975D58; // type:func -func_80985718 = 0x80975D78; // type:func -func_80985738 = 0x80975D98; // type:func -func_80985770 = 0x80975DD4; // type:func -func_809857B0 = 0x80975E1C; // type:func -func_809857F0 = 0x80975E60; // type:func -func_80985830 = 0x80975EA8; // type:func -func_80985860 = 0x80975EDC; // type:func -func_809858A8 = 0x80975F20; // type:func -DemoIm_SpawnLightBall = 0x80975F40; // type:func -func_80985948 = 0x80975FC0; // type:func -func_809859E0 = 0x8097605C; // type:func -func_80985B34 = 0x809761B0; // type:func -func_80985C10 = 0x80976294; // type:func -func_80985C40 = 0x809762B4; // type:func -func_80985C94 = 0x809762FC; // type:func -DemoIm_DrawTranslucent = 0x80976344; // type:func -func_80985E60 = 0x8097648C; // type:func -func_80985EAC = 0x809764D8; // type:func -func_80985EF4 = 0x80976520; // type:func -func_80985F54 = 0x80976580; // type:func -func_80985F64 = 0x80976594; // type:func -func_80985FE8 = 0x80976618; // type:func -func_8098604C = 0x8097667C; // type:func -func_809860C8 = 0x809766F8; // type:func -func_809860DC = 0x80976710; // type:func -func_80986148 = 0x8097677C; // type:func -func_809861C4 = 0x809767F8; // type:func -func_8098629C = 0x809768BC; // type:func -func_809862E0 = 0x80976900; // type:func -func_809863BC = 0x809769C8; // type:func -func_809863DC = 0x809769E8; // type:func -func_80986430 = 0x80976A44; // type:func -func_80986494 = 0x80976AB0; // type:func -func_809864D4 = 0x80976AF8; // type:func -func_8098652C = 0x80976B58; // type:func -func_80986570 = 0x80976B9C; // type:func -func_809865F8 = 0x80976C24; // type:func -func_80986700 = 0x80976D34; // type:func -func_80986710 = 0x80976D48; // type:func -func_80986794 = 0x80976DCC; // type:func -func_8098680C = 0x80976E44; // type:func -func_809868E8 = 0x80976F0C; // type:func -func_80986908 = 0x80976F2C; // type:func -func_80986948 = 0x80976F74; // type:func -func_809869B0 = 0x80976FE4; // type:func -func_809869F8 = 0x80977028; // type:func -func_80986A5C = 0x8097708C; // type:func -func_80986AD0 = 0x80977100; // type:func -func_80986B2C = 0x8097715C; // type:func -func_80986BA0 = 0x809771D0; // type:func -func_80986BE4 = 0x80977214; // type:func -func_80986BF8 = 0x80977228; // type:func -func_80986C30 = 0x80977260; // type:func -func_80986CC8 = 0x80977304; // type:func -func_80986CFC = 0x80977338; // type:func -func_80986D40 = 0x80977380; // type:func -func_80986DC8 = 0x809773E8; // type:func -func_80986E20 = 0x80977444; // type:func -func_80986E40 = 0x80977464; // type:func -func_80986EAC = 0x809774D8; // type:func -func_80986F08 = 0x8097753C; // type:func -func_80986F28 = 0x8097755C; // type:func -func_80986F88 = 0x809775C4; // type:func -func_80986FA8 = 0x809775E8; // type:func -func_80987018 = 0x80977660; // type:func -func_80987064 = 0x809776A8; // type:func -func_809870F0 = 0x80977734; // type:func -func_80987128 = 0x8097776C; // type:func -func_80987174 = 0x809777B8; // type:func -func_809871B4 = 0x809777F8; // type:func -func_809871E8 = 0x8097782C; // type:func -func_80987288 = 0x809778B8; // type:func -func_809872A8 = 0x809778D8; // type:func -func_809872F0 = 0x80977924; // type:func -func_80987330 = 0x8097796C; // type:func -DemoIm_Update = 0x809779B0; // type:func -DemoIm_Init = 0x809779F8; // type:func -DemoIm_Destroy = 0x80977B20; // type:func -DemoIm_OverrideLimbDraw = 0x80977B40; // type:func -DemoIm_PostLimbDraw = 0x80977BF0; // type:func -DemoIm_DrawNothing = 0x80977C7C; // type:func -DemoIm_DrawSolid = 0x80977C8C; // type:func -DemoIm_Draw = 0x80977DD0; // type:func -DemoKankyo_SetupAction = 0x80979220; // type:func -DemoKankyo_Init = 0x8097922C; // type:func -DemoKankyo_Destroy = 0x80979610; // type:func -DemoKankyo_SetupType = 0x8097961C; // type:func -DemoKankyo_DoNothing = 0x80979A54; // type:func -DemoKankyo_DoNothing2 = 0x80979A64; // type:func -DemoKankyo_SetPosFromCue = 0x80979A8C; // type:func -DemoKankyo_UpdateRock = 0x80979B7C; // type:func -DemoKankyo_UpdateClouds = 0x80979BF4; // type:func -DemoKankyo_UpdateDoorOfTime = 0x80979C40; // type:func -DemoKankyo_KillDoorOfTimeCollision = 0x80979CDC; // type:func -DemoKankyo_Update = 0x80979D08; // type:func -DemoKankyo_Draw = 0x80979D2C; // type:func -func_80989B54 = 0x80979ED4; // type:func -DemoKankyo_DrawRain = 0x8097A0A4; // type:func -DemoKankyo_DrawRock = 0x8097A6B0; // type:func -DemoKankyo_DrawClouds = 0x8097A7F4; // type:func -DemoKankyo_DrawDoorOfTime = 0x8097AB20; // type:func -DemoKankyo_DrawLightPlane = 0x8097AC30; // type:func -DemoKankyo_Vec3fCopy = 0x8097AD18; // type:func -DemoKankyo_AddVecGeoToVec3f = 0x8097AD38; // type:func -DemoKankyo_Vec3fAddPosRot = 0x8097ADB8; // type:func -DemoKankyo_DrawWarpSparkles = 0x8097AE14; // type:func -DemoKankyo_DrawSparkles = 0x8097B570; // type:func -DemoKekkai_CheckEventFlag = 0x8097CF10; // type:func -DemoKekkai_Init = 0x8097CF54; // type:func -DemoKekkai_Destroy = 0x8097D184; // type:func -DemoKekkai_SpawnParticles = 0x8097D1C4; // type:func -DemoKekkai_TowerBarrier = 0x8097D418; // type:func -DemoKekkai_Update = 0x8097D534; // type:func -DemoKekkai_TrialBarrierDispel = 0x8097D660; // type:func -DemoKekkai_TrialBarrierIdle = 0x8097D7C0; // type:func -DemoKekkai_DrawTrialBarrier = 0x8097D8E4; // type:func -DemoKekkai_DrawTowerBarrier = 0x8097DDF8; // type:func -DemoSa_Destroy = 0x8097E200; // type:func -func_8098E480 = 0x8097E224; // type:func -DemoSa_SetEyeIndex = 0x8097E2AC; // type:func -DemoSa_SetMouthIndex = 0x8097E2C4; // type:func -func_8098E5C8 = 0x8097E2DC; // type:func -DemoSa_UpdateSkelAnime = 0x8097E324; // type:func -DemoSa_GetCue = 0x8097E348; // type:func -func_8098E654 = 0x8097E370; // type:func -func_8098E6A0 = 0x8097E3BC; // type:func -func_8098E6EC = 0x8097E408; // type:func -func_8098E76C = 0x8097E488; // type:func -func_8098E7FC = 0x8097E518; // type:func -func_8098E86C = 0x8097E588; // type:func -func_8098E8C8 = 0x8097E5E4; // type:func -func_8098E944 = 0x8097E660; // type:func -func_8098E960 = 0x8097E680; // type:func -func_8098E9EC = 0x8097E718; // type:func -func_8098EA3C = 0x8097E768; // type:func -func_8098EA68 = 0x8097E794; // type:func -func_8098EB00 = 0x8097E82C; // type:func -func_8098EB6C = 0x8097E898; // type:func -func_8098EBB8 = 0x8097E8E4; // type:func -func_8098EBD8 = 0x8097E904; // type:func -func_8098EBF8 = 0x8097E924; // type:func -func_8098EC28 = 0x8097E958; // type:func -func_8098EC60 = 0x8097E998; // type:func -func_8098EC94 = 0x8097E9D0; // type:func -func_8098ECCC = 0x8097EA10; // type:func -func_8098ECF4 = 0x8097EA3C; // type:func -func_8098EDB0 = 0x8097EAF8; // type:func -func_8098EE08 = 0x8097EB50; // type:func -func_8098EE28 = 0x8097EB70; // type:func -func_8098EEA8 = 0x8097EBF0; // type:func -func_8098EEFC = 0x8097EC44; // type:func -func_8098F050 = 0x8097ED98; // type:func -func_8098F0E8 = 0x8097EE34; // type:func -func_8098F118 = 0x8097EE54; // type:func -func_8098F16C = 0x8097EE9C; // type:func -DemoSa_DrawXlu = 0x8097EEE4; // type:func -func_8098F390 = 0x8097F084; // type:func -func_8098F3F0 = 0x8097F0E4; // type:func -func_8098F420 = 0x8097F118; // type:func -func_8098F480 = 0x8097F174; // type:func -func_8098F50C = 0x8097F200; // type:func -func_8098F544 = 0x8097F238; // type:func -func_8098F590 = 0x8097F284; // type:func -func_8098F5D0 = 0x8097F2C4; // type:func -func_8098F610 = 0x8097F304; // type:func -func_8098F654 = 0x8097F34C; // type:func -func_8098F714 = 0x8097F3F8; // type:func -func_8098F734 = 0x8097F418; // type:func -func_8098F77C = 0x8097F464; // type:func -func_8098F7BC = 0x8097F4AC; // type:func -func_8098F7FC = 0x8097F4F4; // type:func -func_8098F83C = 0x8097F538; // type:func -func_8098F8F8 = 0x8097F5F4; // type:func -func_8098F984 = 0x8097F680; // type:func -func_8098F998 = 0x8097F698; // type:func -func_8098FA2C = 0x8097F72C; // type:func -func_8098FA84 = 0x8097F784; // type:func -func_8098FAE0 = 0x8097F7E0; // type:func -func_8098FB34 = 0x8097F834; // type:func -func_8098FB68 = 0x8097F868; // type:func -func_8098FC44 = 0x8097F930; // type:func -func_8098FC64 = 0x8097F950; // type:func -func_8098FC9C = 0x8097F98C; // type:func -func_8098FCD4 = 0x8097F9CC; // type:func -func_8098FD0C = 0x8097FA0C; // type:func -DemoSa_Update = 0x8097FA58; // type:func -DemoSa_Init = 0x8097FAA0; // type:func -DemoSa_OverrideLimbDraw = 0x8097FB68; // type:func -DemoSa_DrawNothing = 0x8097FBA0; // type:func -DemoSa_DrawOpa = 0x8097FBB0; // type:func -DemoSa_Draw = 0x8097FD44; // type:func -DemoShd_SetupAction = 0x80980D20; // type:func -DemoShd_Init = 0x80980D2C; // type:func -DemoShd_Destroy = 0x80980D7C; // type:func -func_80991298 = 0x80980D8C; // type:func -DemoShd_Update = 0x80980EE4; // type:func -DemoShd_Draw = 0x80980F08; // type:func -DemoTreLgt_Init = 0x80983130; // type:func -DemoTreLgt_Destroy = 0x8098318C; // type:func -func_80993754 = 0x809831B8; // type:func -func_8099375C = 0x809831C4; // type:func -func_809937B4 = 0x8098321C; // type:func -func_80993848 = 0x809832B4; // type:func -DemoTreLgt_Update = 0x80983568; // type:func -DemoTreLgt_OverrideLimbDraw = 0x8098359C; // type:func -DemoTreLgt_Draw = 0x809836F0; // type:func -DoorAna_SetupAction = 0x80983840; // type:func -DoorAna_Init = 0x8098384C; // type:func -DoorAna_Destroy = 0x80983908; // type:func -DoorAna_WaitClosed = 0x80983944; // type:func -DoorAna_WaitOpen = 0x80983A7C; // type:func -DoorAna_GrabPlayer = 0x80983C30; // type:func -DoorAna_Update = 0x80983CDC; // type:func -DoorAna_Draw = 0x80983D30; // type:func -DoorGerudo_Init = 0x80983EB0; // type:func -DoorGerudo_Destroy = 0x80983F60; // type:func -func_809946BC = 0x80983F94; // type:func -func_80994750 = 0x8098402C; // type:func -func_8099485C = 0x80984138; // type:func -func_8099496C = 0x80984248; // type:func -func_809949C8 = 0x809842A4; // type:func -DoorGerudo_Update = 0x80984300; // type:func -DoorGerudo_Draw = 0x80984324; // type:func -DoorKiller_Init = 0x809844A0; // type:func -DoorKiller_Destroy = 0x809847F8; // type:func -DoorKiller_SpawnRubble = 0x80984848; // type:func -DoorKiller_FallAsRubble = 0x809849F0; // type:func -DoorKiller_IsHit = 0x80984AB0; // type:func -DoorKiller_SetAC = 0x80984AE4; // type:func -DoorKiller_Die = 0x80984B44; // type:func -DoorKiller_RiseBackUp = 0x80984B94; // type:func -DoorKiller_FallOver = 0x80984D44; // type:func -DoorKiller_Wobble = 0x80985110; // type:func -DoorKiller_WaitBeforeWobble = 0x80985280; // type:func -DoorKiller_Wait = 0x809852B4; // type:func -DoorKiller_UpdateTexture = 0x80985514; // type:func -DoorKiller_WaitForObject = 0x809855A8; // type:func -DoorKiller_Update = 0x8098565C; // type:func -DoorKiller_SetTexture = 0x80985680; // type:func -DoorKiller_DrawDoor = 0x809856AC; // type:func -DoorKiller_DrawRubble = 0x80985708; // type:func -DoorShutter_SetupAction = 0x80985A10; // type:func -DoorShutter_SetupDoor = 0x80985A20; // type:func -DoorShutter_Init = 0x80985C08; // type:func -DoorShutter_Destroy = 0x80985E20; // type:func -DoorShutter_WaitForObject = 0x80985E90; // type:func -DoorShutter_GetPlayerDistance = 0x80985FCC; // type:func -DoorShutter_GetPlayerSide = 0x80986064; // type:func -DoorShutter_WaitClear = 0x809861E4; // type:func -DoorShutter_Unopenable = 0x80986290; // type:func -DoorShutter_Idle = 0x809862A0; // type:func -DoorShutter_InitOpeningDoorCam = 0x809863F4; // type:func -DoorShutter_UpdateOpening = 0x809864AC; // type:func -DoorShutter_UpdateBarsClosed = 0x809865A4; // type:func -DoorShutter_BarAndWaitSwitchFlag = 0x80986688; // type:func -DoorShutter_UnbarredCheckSwitchFlag = 0x80986740; // type:func -DoorShutter_Open = 0x809867AC; // type:func -DoorShutter_Unbar = 0x809868FC; // type:func -DoorShutter_SetupClosed = 0x809869CC; // type:func -DoorShutter_Close = 0x80986B98; // type:func -DoorShutter_JabuDoorClose = 0x80986CDC; // type:func -DoorShutter_WaitPlayerSurprised = 0x80986D20; // type:func -DoorShutter_GohmaBlockFall = 0x80986D78; // type:func -DoorShutter_GohmaBlockBounce = 0x80986E74; // type:func -DoorShutter_PhantomGanonBarsRaise = 0x80986F00; // type:func -DoorShutter_Update = 0x80986F90; // type:func -DoorShutter_DrawJabuJabuDoor = 0x80986FE4; // type:func -DoorShutter_ShouldDraw = 0x809871D4; // type:func -DoorShutter_Draw = 0x80987280; // type:func -DoorShutter_RequestQuakeAndRumble = 0x809877D4; // type:func -DoorToki_Init = 0x80987CD0; // type:func -DoorToki_Destroy = 0x80987D38; // type:func -DoorToki_Update = 0x80987D6C; // type:func -DoorWarp1_SetupAction = 0x80987E30; // type:func -DoorWarp1_Init = 0x80987E3C; // type:func -DoorWarp1_Destroy = 0x80987FAC; // type:func -DoorWarp1_SetupWarp = 0x80988034; // type:func -DoorWarp1_SetupAdultDungeonWarp = 0x8098833C; // type:func -DoorWarp1_SetupBlueCrystal = 0x80988508; // type:func -DoorWarp1_SetupPurpleCrystal = 0x809886A0; // type:func -DoorWarp1_SetPlayerPos = 0x80988840; // type:func -DoorWarp1_BlueCrystal = 0x80988878; // type:func -func_80999214 = 0x809888C4; // type:func -func_80999348 = 0x809889F8; // type:func -DoorWarp1_FloatPlayer = 0x80988AC0; // type:func -DoorWarp1_PurpleCrystal = 0x80988ADC; // type:func -DoorWarp1_ChooseInitialAction = 0x80988BBC; // type:func -DoorWarp1_AwaitClearFlag = 0x80988C34; // type:func -func_809995D4 = 0x80988C8C; // type:func -DoorWarp1_WarpAppear = 0x80988DDC; // type:func -func_809998A4 = 0x80988F60; // type:func -DoorWarp1_PlayerInRange = 0x80988FF8; // type:func -DoorWarp1_ChildWarpIdle = 0x80989064; // type:func -DoorWarp1_ChildWarpOut = 0x80989130; // type:func -DoorWarp1_RutoWarpIdle = 0x80989524; // type:func -func_80999EE0 = 0x809895A4; // type:func -func_80999FE4 = 0x809896AC; // type:func -DoorWarp1_RutoWarpOut = 0x80989764; // type:func -func_8099A3A4 = 0x80989A70; // type:func -DoorWarp1_AdultWarpIdle = 0x80989B3C; // type:func -func_8099A508 = 0x80989BDC; // type:func -DoorWarp1_AdultWarpOut = 0x80989CC0; // type:func -DoorWarp1_Destination = 0x8098A5A4; // type:func -DoorWarp1_DoNothing = 0x8098A6D4; // type:func -func_8099B020 = 0x8098A6E4; // type:func -DoorWarp1_Update = 0x8098A7A0; // type:func -DoorWarp1_DrawBlueCrystal = 0x8098A804; // type:func -DoorWarp1_DrawPurpleCrystal = 0x8098A9D4; // type:func -DoorWarp1_DrawWarp = 0x8098AC58; // type:func -DoorWarp1_Draw = 0x8098BB04; // type:func -EfcErupc_SetupAction = 0x8098C140; // type:func -EfcErupc_Init = 0x8098C14C; // type:func -EfcErupc_Destroy = 0x8098C1B8; // type:func -EfcErupc_UpdateAction = 0x8098C1C8; // type:func -EfcErupc_Update = 0x8098C414; // type:func -EfcErupc_Draw = 0x8098C450; // type:func -EfcErupc_DrawEffects = 0x8098C790; // type:func -EfcErupc_UpdateEffects = 0x8098C94C; // type:func -EfcErupc_SpawnEffect = 0x8098CA70; // type:func -EfcErupc_InitEffects = 0x8098CB3C; // type:func -EffDust_SetupAction = 0x8098CC30; // type:func -EffDust_SetupDraw = 0x8098CC3C; // type:func -EffDust_InitPosAndDistance = 0x8098CC48; // type:func -EffDust_Init = 0x8098CCC0; // type:func -EffDust_Destroy = 0x8098CE80; // type:func -EffDust_UpdateFunc_8099DB28 = 0x8098CE90; // type:func -EffDust_UpdateFunc_8099DD74 = 0x8098D0DC; // type:func -EffDust_UpdateFunc_8099DFC0 = 0x8098D328; // type:func -EffDust_Update = 0x8098D83C; // type:func -EffDust_DrawFunc_8099E4F4 = 0x8098D860; // type:func -EffDust_DrawFunc_8099E784 = 0x8098DAB4; // type:func -EffDust_Draw = 0x8098DE18; // type:func -EffectSsBlast_Init = 0x8098E000; // type:func -EffectSsBlast_Draw = 0x8098E15C; // type:func -EffectSsBlast_Update = 0x8098E2C8; // type:func -EffectSsBomb_Init = 0x8098E390; // type:func -EffectSsBomb_Draw = 0x8098E458; // type:func -EffectSsBomb_Update = 0x8098E690; // type:func -EffectSsBomb2_Init = 0x8098E7C0; // type:func -EffectSsBomb2_DrawFade = 0x8098E8B8; // type:func -EffectSsBomb2_DrawLayered = 0x8098EAA8; // type:func -EffectSsBomb2_Update = 0x8098EDDC; // type:func -EffectSsBubble_Init = 0x8098F0C0; // type:func -EffectSsBubble_Draw = 0x8098F250; // type:func -EffectSsBubble_Update = 0x8098F3A4; // type:func -EffectSsDFire_Init = 0x8098F540; // type:func -EffectSsDFire_Draw = 0x8098F68C; // type:func -EffectSsDFire_Update = 0x8098F8D4; // type:func -EffectSsDeadDb_Init = 0x8098FA30; // type:func -EffectSsDeadDb_Draw = 0x8098FB4C; // type:func -EffectSsDeadDb_Update = 0x8098FD20; // type:func -EffectSsDeadDd_Init = 0x8098FF10; // type:func -EffectSsDeadDd_Draw = 0x809901D8; // type:func -EffectSsDeadDd_Update = 0x809903A8; // type:func -EffectSsDeadDs_Init = 0x809904A0; // type:func -EffectSsDeadDs_Draw = 0x80990588; // type:func -EffectSsDeadDs_Update = 0x8099085C; // type:func -EffectSsDeadSound_Init = 0x80990920; // type:func -EffectSsDeadSound_Update = 0x809909AC; // type:func -EffectSsDtBubble_Init = 0x80990A60; // type:func -EffectSsDtBubble_Draw = 0x80990CB4; // type:func -EffectSsDtBubble_Update = 0x80990EF4; // type:func -EffectSsDust_Init = 0x80990FF0; // type:func -EffectSsDust_Draw = 0x809911A4; // type:func -EffectSsDust_Update = 0x809914EC; // type:func -EffectSsDust_UpdateFire = 0x809915E4; // type:func -EffectSsEnFire_Init = 0x80991830; // type:func -EffectSsEnFire_Draw = 0x809919F8; // type:func -EffectSsEnFire_Update = 0x80991D00; // type:func -EffectSsEnIce_Init = 0x80991F80; // type:func -EffectSsEnIce_Draw = 0x80992228; // type:func -EffectSsEnIce_UpdateFlying = 0x80992598; // type:func -EffectSsEnIce_Update = 0x80992770; // type:func -EffectSsExtra_Init = 0x80992840; // type:func -EffectSsExtra_Draw = 0x80992984; // type:func -EffectSsExtra_Update = 0x80992B38; // type:func -EffectSsFcircle_Init = 0x80992C00; // type:func -EffectSsFcircle_Draw = 0x80992CC0; // type:func -EffectSsFcircle_Update = 0x80992F8C; // type:func -EffectSsFhgFlash_Init = 0x809930B0; // type:func -EffectSsFhgFlash_DrawLightBall = 0x809933FC; // type:func -EffectSsFhgFlash_DrawShock = 0x809935F0; // type:func -EffectSsFhgFlash_UpdateLightBall = 0x809937FC; // type:func -EffectSsFhgFlash_UpdateShock = 0x80993894; // type:func -EffectSsFireTail_Init = 0x80994030; // type:func -EffectSsFireTail_Draw = 0x8099414C; // type:func -EffectSsFireTail_Update = 0x80994654; // type:func -EffectSsGFire_Init = 0x80994730; // type:func -EffectSsGFire_Draw = 0x80994870; // type:func -EffectSsGFire_Update = 0x80994918; // type:func -EffectSsGMagma_Init = 0x809949C0; // type:func -EffectSsGMagma_Draw = 0x80994B18; // type:func -EffectSsGMagma_Update = 0x80994B74; // type:func -EffectSsGMagma2_Init = 0x80994C20; // type:func -EffectSsGMagma2_Draw = 0x80994DEC; // type:func -EffectSsGMagma2_Update = 0x80995004; // type:func -EffectSsGRipple_Init = 0x80995130; // type:func -EffectSsGRipple_DrawRipple = 0x809952AC; // type:func -EffectSsGRipple_Draw = 0x809954A8; // type:func -EffectSsGRipple_Update = 0x809954E0; // type:func -EffectSsGSpk_Init = 0x80995690; // type:func -EffectSsGSpk_Draw = 0x80995800; // type:func -EffectSsGSpk_Update = 0x809959F4; // type:func -EffectSsGSpk_UpdateNoAccel = 0x80995AFC; // type:func -EffectSsGSplash_Init = 0x80995C40; // type:func -EffectSsGSplash_Draw = 0x80995E60; // type:func -EffectSsGSplash_Update = 0x80995F68; // type:func -EffectSsHahen_CheckForObject = 0x809960F0; // type:func -EffectSsHahen_Init = 0x80996164; // type:func -EffectSsHahen_Draw = 0x80996300; // type:func -EffectSsHahen_DrawGray = 0x80996460; // type:func -EffectSsHahen_Update = 0x80996608; // type:func -EffectSsHitMark_Init = 0x80996730; // type:func -EffectSsHitMark_Draw = 0x80996830; // type:func -EffectSsHitMark_Update = 0x80996A3C; // type:func -EffectSsIcePiece_Init = 0x80996C80; // type:func -EffectSsIcePiece_Draw = 0x80996DCC; // type:func -EffectSsIcePiece_Update = 0x80997000; // type:func -EffectSsIceSmoke_Init = 0x809970C0; // type:func -EffectSsIceSmoke_Draw = 0x809971E0; // type:func -EffectSsIceSmoke_Update = 0x809974C0; // type:func -EffectSsKFire_Init = 0x809975A0; // type:func -EffectSsKFire_Draw = 0x80997670; // type:func -EffectSsKFire_Update = 0x809978D8; // type:func -EffectSsKakera_Init = 0x809979E0; // type:func -func_809A9818 = 0x80997B6C; // type:func -EffectSsKakera_Draw = 0x80997BA8; // type:func -func_809A9BA8 = 0x80997E94; // type:func -func_809A9C10 = 0x80997F00; // type:func -func_809A9DC0 = 0x809980B0; // type:func -func_809A9DD8 = 0x809980CC; // type:func -func_809A9DEC = 0x809980E8; // type:func -func_809A9E28 = 0x80998124; // type:func -func_809A9E68 = 0x80998164; // type:func -func_809A9E88 = 0x80998184; // type:func -func_809A9F10 = 0x80998214; // type:func -func_809A9F4C = 0x80998254; // type:func -func_809A9FD8 = 0x809982E8; // type:func -func_809AA0B8 = 0x809983C4; // type:func -func_809AA0EC = 0x809983FC; // type:func -func_809AA230 = 0x80998544; // type:func -EffectSsKakera_Update = 0x80998744; // type:func -EffectSsKiraKira_Init = 0x80998A70; // type:func -EffectSsKiraKira_Draw = 0x80998C10; // type:func -func_809AABF0 = 0x80998E2C; // type:func -func_809AACAC = 0x80998EE4; // type:func -func_809AAD6C = 0x80998FA0; // type:func -EffectSsLightning_Init = 0x809990E0; // type:func -EffectSsLightning_NewLightning = 0x809991C8; // type:func -EffectSsLightning_Draw = 0x8099926C; // type:func -EffectSsLightning_Update = 0x80999504; // type:func -EffectSsSibuki_Init = 0x809997B0; // type:func -EffectSsSibuki_Draw = 0x80999968; // type:func -EffectSsSibuki_Update = 0x80999B18; // type:func -EffectSsSibuki2_Init = 0x80999E80; // type:func -EffectSsSibuki2_Draw = 0x80999F30; // type:func -EffectSsSibuki2_Update = 0x8099A114; // type:func -EffectSsSolderSrchBall_Init = 0x8099A1B0; // type:func -EffectSsSolderSrchBall_Update = 0x8099A230; // type:func -EffectSsStick_Init = 0x8099A360; // type:func -EffectSsStick_Draw = 0x8099A4C0; // type:func -EffectSsStick_Update = 0x8099A660; // type:func -EffectSsStone1_Init = 0x8099A700; // type:func -EffectSsStone1_Draw = 0x8099A78C; // type:func -EffectSsStone1_Update = 0x8099A988; // type:func -ElfMsg_SetupAction = 0x8099AA80; // type:func -ElfMsg_KillCheck = 0x8099AA8C; // type:func -ElfMsg_Init = 0x8099ABC4; // type:func -ElfMsg_Destroy = 0x8099ACB8; // type:func -ElfMsg_GetMessageId = 0x8099ACC8; // type:func -ElfMsg_CallNaviCuboid = 0x8099ACF4; // type:func -ElfMsg_WithinXZDistance = 0x8099ADC4; // type:func -ElfMsg_CallNaviCylinder = 0x8099AE18; // type:func -ElfMsg_Update = 0x8099AEE0; // type:func -ElfMsg2_SetupAction = 0x8099B070; // type:func -ElfMsg2_KillCheck = 0x8099B07C; // type:func -ElfMsg2_Init = 0x8099B1B4; // type:func -ElfMsg2_Destroy = 0x8099B274; // type:func -ElfMsg2_GetMessageId = 0x8099B284; // type:func -ElfMsg2_WaitForTextClose = 0x8099B298; // type:func -ElfMsg2_WaitForTextRead = 0x8099B318; // type:func -ElfMsg2_WaitUntilActivated = 0x8099B350; // type:func -ElfMsg2_Update = 0x8099B3CC; // type:func -EnAm_SetupAction = 0x8099B4E0; // type:func -EnAm_CanMove = 0x8099B4EC; // type:func -EnAm_Init = 0x8099B618; // type:func -EnAm_Destroy = 0x8099B7E4; // type:func -EnAm_SpawnEffects = 0x8099B83C; // type:func -EnAm_SetupSleep = 0x8099B9D8; // type:func -EnAm_SetupStatue = 0x8099BA74; // type:func -EnAm_SetupLunge = 0x8099BB04; // type:func -EnAm_SetupCooldown = 0x8099BB68; // type:func -EnAm_SetupMoveToHome = 0x8099BBD4; // type:func -EnAm_SetupRotateToInit = 0x8099BC30; // type:func -EnAm_SetupRotateToHome = 0x8099BC8C; // type:func -EnAm_SetupRecoilFromDamage = 0x8099BCE8; // type:func -EnAm_SetupRicochet = 0x8099BDC0; // type:func -EnAm_Sleep = 0x8099BE74; // type:func -EnAm_RotateToHome = 0x8099C0E0; // type:func -EnAm_RotateToInit = 0x8099C1E4; // type:func -EnAm_MoveToHome = 0x8099C350; // type:func -EnAm_RecoilFromDamage = 0x8099C4C0; // type:func -EnAm_Cooldown = 0x8099C564; // type:func -EnAm_Lunge = 0x8099C69C; // type:func -EnAm_Statue = 0x8099C8D0; // type:func -EnAm_SetupStunned = 0x8099CB20; // type:func -EnAm_Stunned = 0x8099CC0C; // type:func -EnAm_Ricochet = 0x8099CCE0; // type:func -EnAm_TransformSwordHitbox = 0x8099CD94; // type:func -EnAm_UpdateDamage = 0x8099CE2C; // type:func -EnAm_Update = 0x8099CFC4; // type:func -EnAm_PostLimbDraw = 0x8099D368; // type:func -EnAm_Draw = 0x8099D3B0; // type:func -EnAni_SetupAction = 0x8099D8E0; // type:func -EnAni_Init = 0x8099D8EC; // type:func -EnAni_Destroy = 0x8099DA04; // type:func -EnAni_SetText = 0x8099DA30; // type:func -func_809B04F0 = 0x8099DA6C; // type:func -func_809B0524 = 0x8099DAA4; // type:func -func_809B0558 = 0x8099DADC; // type:func -func_809B05F0 = 0x8099DB78; // type:func -func_809B064C = 0x8099DBDC; // type:func -func_809B07F8 = 0x8099DD88; // type:func -func_809B0988 = 0x8099DF18; // type:func -func_809B0994 = 0x8099DF28; // type:func -func_809B0A28 = 0x8099DFBC; // type:func -func_809B0A6C = 0x8099E000; // type:func -EnAni_Update = 0x8099E0AC; // type:func -EnAni_OverrideLimbDraw = 0x8099E328; // type:func -EnAni_PostLimbDraw = 0x8099E370; // type:func -EnAni_Draw = 0x8099E3B0; // type:func -EnAnubice_Hover = 0x8099E650; // type:func -EnAnubice_AimFireball = 0x8099E6F4; // type:func -EnAnubice_Init = 0x8099E7D4; // type:func -EnAnubice_Destroy = 0x8099E8EC; // type:func -EnAnubice_FindFlameCircles = 0x8099E948; // type:func -EnAnubice_SetupIdle = 0x8099E9D0; // type:func -EnAnubice_Idle = 0x8099EA78; // type:func -EnAnubice_GoToHome = 0x8099EB58; // type:func -EnAnubice_SetupShootFireball = 0x8099ECA8; // type:func -EnAnubice_ShootFireball = 0x8099ED30; // type:func -EnAnubice_SetupDie = 0x8099EE30; // type:func -EnAnubice_Die = 0x8099EF00; // type:func -EnAnubice_Update = 0x8099F1B4; // type:func -EnAnubice_OverrideLimbDraw = 0x8099F5B8; // type:func -EnAnubice_PostLimbDraw = 0x8099F604; // type:func -EnAnubice_Draw = 0x8099F6C0; // type:func -EnAnubiceFire_Init = 0x8099F900; // type:func -EnAnubiceFire_Destroy = 0x8099FA20; // type:func -func_809B26EC = 0x8099FA4C; // type:func -func_809B27D8 = 0x8099FB38; // type:func -func_809B2B48 = 0x8099FEA8; // type:func -EnAnubiceFire_Update = 0x809A0054; // type:func -EnAnubiceFire_Draw = 0x809A0250; // type:func -EnAnubiceTag_Init = 0x809A06C0; // type:func -EnAnubiceTag_Destroy = 0x809A0710; // type:func -EnAnubiceTag_SpawnAnubis = 0x809A0720; // type:func -EnAnubiceTag_ManageAnubis = 0x809A0798; // type:func -EnAnubiceTag_Update = 0x809A08FC; // type:func -EnAnubiceTag_Draw = 0x809A0920; // type:func -EnArowTrap_Init = 0x809A0990; // type:func -EnArowTrap_Destroy = 0x809A09E0; // type:func -EnArowTrap_Update = 0x809A09F0; // type:func -EnArrow_SetupAction = 0x809A0AE0; // type:func -EnArrow_Init = 0x809A0AEC; // type:func -EnArrow_Destroy = 0x809A0CF4; // type:func -EnArrow_Shoot = 0x809A0D7C; // type:func -func_809B3CEC = 0x809A0E94; // type:func -EnArrow_CarryActor = 0x809A0F7C; // type:func -EnArrow_Fly = 0x809A1180; // type:func -func_809B45E0 = 0x809A1788; // type:func -func_809B4640 = 0x809A17E8; // type:func -EnArrow_Update = 0x809A1850; // type:func -func_809B4800 = 0x809A19AC; // type:func -EnArrow_Draw = 0x809A1B14; // type:func -EnAttackNiw_Init = 0x809A21E0; // type:func -EnAttackNiw_Destroy = 0x809A2314; // type:func -func_809B5268 = 0x809A2348; // type:func -func_809B55EC = 0x809A26D0; // type:func -func_809B5670 = 0x809A2754; // type:func -func_809B59B0 = 0x809A2A94; // type:func -func_809B5C18 = 0x809A2D04; // type:func -EnAttackNiw_Update = 0x809A2DC8; // type:func -func_809B5F98 = 0x809A308C; // type:func -EnAttackNiw_Draw = 0x809A31E4; // type:func -EnBa_SetupAction = 0x809A3440; // type:func -EnBa_Init = 0x809A344C; // type:func -EnBa_Destroy = 0x809A3638; // type:func -EnBa_SetupIdle = 0x809A3664; // type:func -EnBa_Idle = 0x809A36A4; // type:func -EnBa_SetupFallAsBlob = 0x809A3AD0; // type:func -EnBa_FallAsBlob = 0x809A3B40; // type:func -EnBa_SetupSwingAtPlayer = 0x809A3C00; // type:func -EnBa_SwingAtPlayer = 0x809A3C54; // type:func -func_809B7174 = 0x809A4274; // type:func -EnBa_RecoilFromDamage = 0x809A42F0; // type:func -func_809B75A0 = 0x809A46A4; // type:func -EnBa_Die = 0x809A4920; // type:func -EnBa_Update = 0x809A4C50; // type:func -EnBa_Draw = 0x809A4D30; // type:func -EnBb_SetupAction = 0x809A5310; // type:func -EnBb_FindExplosive = 0x809A531C; // type:func -EnBb_SpawnFlameTrail = 0x809A53B0; // type:func -EnBb_KillFlameTrail = 0x809A554C; // type:func -EnBb_Init = 0x809A5598; // type:func -EnBb_Destroy = 0x809A5940; // type:func -EnBb_SetupFlameTrail = 0x809A596C; // type:func -EnBb_FlameTrail = 0x809A59C0; // type:func -EnBb_SetupDeath = 0x809A5B3C; // type:func -EnBb_Death = 0x809A5BD0; // type:func -EnBb_SetupDamage = 0x809A5D4C; // type:func -EnBb_Damage = 0x809A5E0C; // type:func -EnBb_SetupBlue = 0x809A5E78; // type:func -EnBb_Blue = 0x809A5F38; // type:func -EnBb_SetupDown = 0x809A672C; // type:func -EnBb_Down = 0x809A67BC; // type:func -EnBb_SetupRed = 0x809A6A90; // type:func -EnBb_Red = 0x809A6BA0; // type:func -EnBb_FaceWaypoint = 0x809A6F68; // type:func -EnBb_SetWaypoint = 0x809A6F9C; // type:func -EnBb_SetupWhite = 0x809A7068; // type:func -EnBb_White = 0x809A7118; // type:func -EnBb_InitGreen = 0x809A749C; // type:func -EnBb_SetupGreen = 0x809A75D4; // type:func -EnBb_Green = 0x809A766C; // type:func -EnBb_SetupStunned = 0x809A7CDC; // type:func -EnBb_Stunned = 0x809A7DF0; // type:func -EnBb_CollisionCheck = 0x809A7F94; // type:func -EnBb_Update = 0x809A82C8; // type:func -EnBb_PostLimbDraw = 0x809A8548; // type:func -EnBb_Draw = 0x809A8598; // type:func -EnBdfire_SetupAction = 0x809A8FF0; // type:func -EnbdFire_SetupDraw = 0x809A8FFC; // type:func -EnBdfire_Init = 0x809A9008; // type:func -EnBdfire_Destroy = 0x809A9238; // type:func -func_809BC2A4 = 0x809A9270; // type:func -func_809BC598 = 0x809A9564; // type:func -EnBdfire_Update = 0x809A9854; // type:func -EnBdfire_DrawFire = 0x809A9890; // type:func -EnBdfire_Draw = 0x809A9A50; // type:func -EnBigokuta_Init = 0x809A9B90; // type:func -EnBigokuta_Destroy = 0x809A9CFC; // type:func -func_809BCE3C = 0x809A9D70; // type:func -func_809BCEBC = 0x809A9DEC; // type:func -func_809BCF68 = 0x809A9E9C; // type:func -func_809BD1C8 = 0x809AA104; // type:func -func_809BD2E4 = 0x809AA220; // type:func -func_809BD318 = 0x809AA254; // type:func -func_809BD370 = 0x809AA2AC; // type:func -func_809BD3AC = 0x809AA2E8; // type:func -func_809BD3E0 = 0x809AA320; // type:func -func_809BD3F8 = 0x809AA33C; // type:func -func_809BD47C = 0x809AA3C0; // type:func -func_809BD4A4 = 0x809AA3EC; // type:func -func_809BD524 = 0x809AA46C; // type:func -func_809BD5E0 = 0x809AA528; // type:func -func_809BD658 = 0x809AA5A0; // type:func -func_809BD6B8 = 0x809AA600; // type:func -func_809BD768 = 0x809AA6B0; // type:func -func_809BD7F0 = 0x809AA738; // type:func -func_809BD84C = 0x809AA798; // type:func -func_809BD8DC = 0x809AA828; // type:func -func_809BDAE8 = 0x809AAA34; // type:func -func_809BDB90 = 0x809AAADC; // type:func -func_809BDC08 = 0x809AAB54; // type:func -func_809BDF34 = 0x809AAE84; // type:func -func_809BDFC8 = 0x809AAF18; // type:func -func_809BE058 = 0x809AAFA8; // type:func -func_809BE180 = 0x809AB0D0; // type:func -func_809BE26C = 0x809AB1BC; // type:func -func_809BE3E4 = 0x809AB334; // type:func -func_809BE4A4 = 0x809AB3F4; // type:func -func_809BE518 = 0x809AB468; // type:func -func_809BE568 = 0x809AB4B8; // type:func -func_809BE798 = 0x809AB6E8; // type:func -EnBigokuta_UpdateDamage = 0x809AB82C; // type:func -EnBigokuta_Update = 0x809AB91C; // type:func -EnBigokuta_OverrideLimbDraw = 0x809ABB14; // type:func -EnBigokuta_Draw = 0x809ABF8C; // type:func -EnBili_Init = 0x809AC690; // type:func -EnBili_Destroy = 0x809AC788; // type:func -EnBili_SetupFloatIdle = 0x809AC7B4; // type:func -EnBili_SetupSpawnedFlyApart = 0x809AC810; // type:func -EnBili_SetupDischargeLightning = 0x809AC888; // type:func -EnBili_SetupClimb = 0x809AC8E4; // type:func -EnBili_SetupApproachPlayer = 0x809AC93C; // type:func -EnBili_SetupSetNewHomeHeight = 0x809AC95C; // type:func -EnBili_SetupRecoil = 0x809AC9C4; // type:func -EnBili_SetupBurnt = 0x809ACA4C; // type:func -EnBili_SetupDie = 0x809ACAEC; // type:func -EnBili_SetupStunned = 0x809ACB20; // type:func -EnBili_SetupFrozen = 0x809ACB98; // type:func -EnBili_UpdateTentaclesIndex = 0x809ACD70; // type:func -EnBili_UpdateFloating = 0x809ACE90; // type:func -EnBili_FloatIdle = 0x809ACF78; // type:func -EnBili_SpawnedFlyApart = 0x809AD064; // type:func -EnBili_DischargeLightning = 0x809AD0BC; // type:func -EnBili_Climb = 0x809AD2B8; // type:func -EnBili_ApproachPlayer = 0x809AD374; // type:func -EnBili_SetNewHomeHeight = 0x809AD404; // type:func -EnBili_Recoil = 0x809AD480; // type:func -EnBili_Burnt = 0x809AD4E4; // type:func -EnBili_Die = 0x809AD558; // type:func -EnBili_Stunned = 0x809AD780; // type:func -EnBili_Frozen = 0x809AD7E0; // type:func -EnBili_UpdateDamage = 0x809AD870; // type:func -EnBili_Update = 0x809ADA3C; // type:func -EnBili_PulseLimb3 = 0x809ADC10; // type:func -EnBili_PulseLimb2 = 0x809ADE28; // type:func -EnBili_PulseLimb4 = 0x809AE048; // type:func -EnBili_OverrideLimbDraw = 0x809AE1B0; // type:func -EnBili_Draw = 0x809AE2A0; // type:func -EnBird_SetupAction = 0x809AE960; // type:func -EnBird_Init = 0x809AE96C; // type:func -EnBird_Destroy = 0x809AEA58; // type:func -EnBird_SetupIdle = 0x809AEA68; // type:func -EnBird_Idle = 0x809AEB1C; // type:func -EnBird_SetupMove = 0x809AEBBC; // type:func -EnBird_Move = 0x809AEBFC; // type:func -EnBird_Update = 0x809AED18; // type:func -EnBird_Draw = 0x809AED48; // type:func -EnBlkobj_SetupAction = 0x809AEE20; // type:func -EnBlkobj_Init = 0x809AEE30; // type:func -EnBlkobj_Destroy = 0x809AEEE0; // type:func -EnBlkobj_Wait = 0x809AEF14; // type:func -EnBlkobj_SpawnDarkLink = 0x809AEF68; // type:func -EnBlkobj_DarkLinkFight = 0x809AEFE0; // type:func -EnBlkobj_DoNothing = 0x809AF0BC; // type:func -EnBlkobj_Update = 0x809AF0CC; // type:func -EnBlkobj_DrawAlpha = 0x809AF0F0; // type:func -EnBlkobj_Draw = 0x809AF16C; // type:func -EnBom_SetupAction = 0x809AF380; // type:func -EnBom_Init = 0x809AF38C; // type:func -EnBom_Destroy = 0x809AF4A4; // type:func -EnBom_Move = 0x809AF4E4; // type:func -EnBom_WaitForRelease = 0x809AF6B4; // type:func -EnBom_Explode = 0x809AF700; // type:func -EnBom_Update = 0x809AF850; // type:func -EnBom_Draw = 0x809AFEE0; // type:func -EnBomBowlMan_Init = 0x809B0250; // type:func -EnBomBowlMan_Destroy = 0x809B0410; // type:func -EnBomBowlMan_SetupWaitAsleep = 0x809B0420; // type:func -EnBomBowlMan_WaitAsleep = 0x809B04A8; // type:func -EnBomBowlMan_TalkAsleep = 0x809B055C; // type:func -EnBomBowlMan_WakeUp = 0x809B05D4; // type:func -EnBomBowlMan_BlinkAwake = 0x809B0658; // type:func -EnBomBowlMan_CheckBeatenDC = 0x809B0754; // type:func -EnBomBowlMan_WaitNotBeatenDC = 0x809B0880; // type:func -EnBomBowlMan_TalkNotBeatenDC = 0x809B08DC; // type:func -EnBomBowlMan_SetupRunGame = 0x809B094C; // type:func -EnBomBowlMan_RunGame = 0x809B09D0; // type:func -EnBomBowlMan_HandlePlayChoice = 0x809B0BE0; // type:func -func_809C41FC = 0x809B0D9C; // type:func -EnBomBowlMan_SetupChooseShowPrize = 0x809B0EB8; // type:func -EnBomBowlMan_ChooseShowPrize = 0x809B0FBC; // type:func -EnBomBowlMan_BeginPlayGame = 0x809B1204; // type:func -EnBomBowlMan_Update = 0x809B12C0; // type:func -EnBomBowlMan_OverrideLimbDraw = 0x809B1438; // type:func -EnBomBowlMan_Draw = 0x809B1480; // type:func -EnBomBowlPit_Init = 0x809B1790; // type:func -EnBomBowlPit_Destroy = 0x809B17A8; // type:func -EnBomBowlPit_SetupDetectHit = 0x809B17B8; // type:func -EnBomBowlPit_DetectHit = 0x809B17E4; // type:func -EnBomBowlPit_CameraDollyIn = 0x809B1ADC; // type:func -EnBomBowlPit_SpawnPrize = 0x809B1CB8; // type:func -EnBomBowlPit_SetupGivePrize = 0x809B1D48; // type:func -EnBomBowlPit_GivePrize = 0x809B1E00; // type:func -EnBomBowlPit_WaitTillPrizeGiven = 0x809B1F04; // type:func -EnBomBowlPit_Reset = 0x809B1F60; // type:func -EnBomBowlPit_Update = 0x809B1FE0; // type:func -EnBomChu_Init = 0x809B2100; // type:func -EnBomChu_Destroy = 0x809B22A0; // type:func -EnBomChu_Explode = 0x809B22F0; // type:func -EnBomChu_CrossProduct = 0x809B2410; // type:func -EnBomChu_UpdateFloorPoly = 0x809B2484; // type:func -EnBomChu_WaitForRelease = 0x809B26B8; // type:func -EnBomChu_Move = 0x809B2828; // type:func -EnBomChu_WaitForKill = 0x809B2D40; // type:func -EnBomChu_ModelToWorld = 0x809B2D80; // type:func -EnBomChu_SpawnRipples = 0x809B2E30; // type:func -EnBomChu_Update = 0x809B2EBC; // type:func -EnBomChu_Draw = 0x809B3280; // type:func -EnBombf_SetupAction = 0x809B37A0; // type:func -EnBombf_Init = 0x809B37AC; // type:func -EnBombf_Destroy = 0x809B3988; // type:func -EnBombf_SetupGrowBomb = 0x809B39C8; // type:func -EnBombf_GrowBomb = 0x809B39F0; // type:func -EnBombf_Move = 0x809B3D00; // type:func -EnBombf_WaitForRelease = 0x809B3E24; // type:func -EnBombf_Explode = 0x809B3E88; // type:func -EnBombf_Update = 0x809B3FDC; // type:func -EnBombf_NewMtxDList = 0x809B4788; // type:func -EnBombf_Draw = 0x809B4814; // type:func -EnBoom_SetupAction = 0x809B4C30; // type:func -EnBoom_Init = 0x809B4C3C; // type:func -EnBoom_Destroy = 0x809B4D58; // type:func -EnBoom_Fly = 0x809B4D98; // type:func -EnBoom_Update = 0x809B51D8; // type:func -EnBoom_Draw = 0x809B5230; // type:func -EnBox_SetupAction = 0x809B5500; // type:func -EnBox_ClipToGround = 0x809B550C; // type:func -EnBox_Init = 0x809B5598; // type:func -EnBox_Destroy = 0x809B5A08; // type:func -EnBox_RandomDustKinematic = 0x809B5A3C; // type:func -EnBox_SpawnDust = 0x809B5B40; // type:func -EnBox_Fall = 0x809B5BF4; // type:func -EnBox_FallOnSwitchFlag = 0x809B5D78; // type:func -func_809C9700 = 0x809B5E48; // type:func -EnBox_AppearOnSwitchFlag = 0x809B5FD8; // type:func -EnBox_AppearOnRoomClear = 0x809B6058; // type:func -EnBox_AppearInit = 0x809B6110; // type:func -EnBox_AppearAnimation = 0x809B61CC; // type:func -EnBox_WaitOpen = 0x809B6278; // type:func -EnBox_Open = 0x809B64AC; // type:func -EnBox_SpawnIceSmoke = 0x809B6634; // type:func -EnBox_Update = 0x809B68E0; // type:func -EnBox_PostLimbDraw = 0x809B6A1C; // type:func -EnBox_EmptyDList = 0x809B6B84; // type:func -func_809CA4A0 = 0x809B6BA8; // type:func -func_809CA518 = 0x809B6BE8; // type:func -EnBox_Draw = 0x809B6C28; // type:func -EnBrob_Init = 0x809B7060; // type:func -EnBrob_Destroy = 0x809B72D4; // type:func -EnBrob_SetupIdle = 0x809B732C; // type:func -EnBrob_SetupMoveUp = 0x809B7394; // type:func -EnBrob_SetupWobble = 0x809B73F4; // type:func -EnBrob_SetupStunned = 0x809B7448; // type:func -EnBrob_SetupMoveDown = 0x809B74DC; // type:func -EnBrob_SetupShock = 0x809B755C; // type:func -EnBrob_Idle = 0x809B75A8; // type:func -EnBrob_MoveUp = 0x809B7668; // type:func -EnBrob_Wobble = 0x809B776C; // type:func -EnBrob_Stunned = 0x809B780C; // type:func -EnBrob_MoveDown = 0x809B78A8; // type:func -EnBrob_Shock = 0x809B79AC; // type:func -EnBrob_Update = 0x809B7BC4; // type:func -EnBrob_PostLimbDraw = 0x809B7E60; // type:func -EnBrob_Draw = 0x809B7F34; // type:func -EnBubble_SetDimensions = 0x809B8150; // type:func -func_809CBCBC = 0x809B820C; // type:func -func_809CBCEC = 0x809B8240; // type:func -EnBubble_DamagePlayer = 0x809B8264; // type:func -EnBubble_Explosion = 0x809B82D0; // type:func -func_809CBFD4 = 0x809B852C; // type:func -func_809CC020 = 0x809B8578; // type:func -EnBubble_Vec3fNormalizedReflect = 0x809B85CC; // type:func -EnBubble_Vec3fNormalize = 0x809B8654; // type:func -EnBubble_Fly = 0x809B86CC; // type:func -func_809CC648 = 0x809B8BA8; // type:func -EnBubble_DetectPop = 0x809B8C44; // type:func -func_809CC774 = 0x809B8CD4; // type:func -EnBubble_Init = 0x809B8DE8; // type:func -EnBubble_Destroy = 0x809B8EE8; // type:func -EnBubble_Wait = 0x809B8F14; // type:func -EnBubble_Pop = 0x809B8FC8; // type:func -EnBubble_Disappear = 0x809B9018; // type:func -EnBubble_Regrow = 0x809B9060; // type:func -EnBubble_Update = 0x809B90D0; // type:func -EnBubble_Draw = 0x809B914C; // type:func -EnButte_SelectFlightParams = 0x809B9570; // type:func -EnButte_ResetTransformationEffect = 0x809B95F4; // type:func -EnButte_UpdateTransformationEffect = 0x809B9610; // type:func -EnButte_DrawTransformationEffect = 0x809B9648; // type:func -EnButte_Init = 0x809B9884; // type:func -EnButte_Destroy = 0x809B99F8; // type:func -func_809CD56C = 0x809B9A24; // type:func -func_809CD634 = 0x809B9AEC; // type:func -EnButte_Turn = 0x809B9BB4; // type:func -EnButte_SetupFlyAround = 0x809B9C50; // type:func -EnButte_FlyAround = 0x809B9C9C; // type:func -EnButte_SetupFollowLink = 0x809BA080; // type:func -EnButte_FollowLink = 0x809BA0CC; // type:func -EnButte_SetupTransformIntoFairy = 0x809BA480; // type:func -EnButte_TransformIntoFairy = 0x809BA4D0; // type:func -EnButte_SetupWaitToDie = 0x809BA58C; // type:func -EnButte_WaitToDie = 0x809BA5AC; // type:func -EnButte_Update = 0x809BA5DC; // type:func -EnButte_Draw = 0x809BA71C; // type:func -EnBw_SetupAction = 0x809BAB40; // type:func -EnBw_Init = 0x809BAB4C; // type:func -EnBw_Destroy = 0x809BACAC; // type:func -func_809CE884 = 0x809BACEC; // type:func -func_809CE9A8 = 0x809BAE10; // type:func -func_809CEA24 = 0x809BAE8C; // type:func -func_809CF72C = 0x809BBB94; // type:func -func_809CF7AC = 0x809BBC14; // type:func -func_809CF8F0 = 0x809BBD58; // type:func -func_809CF984 = 0x809BBDEC; // type:func -func_809CFBA8 = 0x809BC014; // type:func -func_809CFC4C = 0x809BC0B8; // type:func -func_809CFF10 = 0x809BC37C; // type:func -func_809CFF98 = 0x809BC404; // type:func -func_809D00F4 = 0x809BC560; // type:func -func_809D014C = 0x809BC5B8; // type:func -func_809D01CC = 0x809BC638; // type:func -func_809D0268 = 0x809BC6D4; // type:func -func_809D03CC = 0x809BC838; // type:func -func_809D0424 = 0x809BC890; // type:func -func_809D0584 = 0x809BC9F0; // type:func -EnBw_Update = 0x809BCCFC; // type:func -EnBw_OverrideLimbDraw = 0x809BD18C; // type:func -EnBw_Draw = 0x809BD3A4; // type:func -EnBx_Init = 0x809BDED0; // type:func -EnBx_Destroy = 0x809BE0D8; // type:func -func_809D1D0C = 0x809BE104; // type:func -EnBx_Update = 0x809BE1D4; // type:func -EnBx_Draw = 0x809BE4F8; // type:func -EnChanger_Destroy = 0x809BE9D0; // type:func -EnChanger_Init = 0x809BE9E0; // type:func -EnChanger_Wait = 0x809BEEFC; // type:func -EnChanger_OpenChests = 0x809BEFA0; // type:func -EnChanger_SetHeartPieceFlag = 0x809BF150; // type:func -EnChanger_Update = 0x809BF1A0; // type:func -EnClearTag_CreateDebrisEffect = 0x809BF3B0; // type:func -EnClearTag_CreateFireEffect = 0x809BF4A8; // type:func -EnClearTag_CreateSmokeEffect = 0x809BF598; // type:func -EnClearTag_CreateFlashEffect = 0x809BF6BC; // type:func -EnClearTag_Destroy = 0x809BF794; // type:func -EnClearTag_Init = 0x809BF7C0; // type:func -EnClearTag_CalculateFloorTangent = 0x809BF984; // type:func -EnClearTag_Update = 0x809BFA40; // type:func -EnClearTag_Draw = 0x809C07F4; // type:func -EnClearTag_UpdateEffects = 0x809C0D88; // type:func -EnClearTag_DrawEffects = 0x809C1150; // type:func -EnCow_RotateY = 0x809CA950; // type:func -EnCow_SetColliderPos = 0x809CA9E8; // type:func -EnCow_SetTailPos = 0x809CAADC; // type:func -EnCow_Init = 0x809CAB58; // type:func -EnCow_Destroy = 0x809CAF90; // type:func -EnCow_UpdateAnimation = 0x809CAFDC; // type:func -EnCow_TalkEnd = 0x809CB204; // type:func -EnCow_GiveMilkEnd = 0x809CB27C; // type:func -EnCow_GiveMilkWait = 0x809CB2C4; // type:func -EnCow_GiveMilk = 0x809CB328; // type:func -EnCow_CheckForEmptyBottle = 0x809CB3C4; // type:func -EnCow_Talk = 0x809CB454; // type:func -EnCow_Idle = 0x809CB4C8; // type:func -EnCow_IdleTail = 0x809CB5E4; // type:func -EnCow_Update = 0x809CB77C; // type:func -EnCow_UpdateTail = 0x809CB9F8; // type:func -EnCow_OverrideLimbDraw = 0x809CBAE4; // type:func -EnCow_PostLimbDraw = 0x809CBB34; // type:func -EnCow_Draw = 0x809CBB74; // type:func -EnCow_DrawTail = 0x809CBBD4; // type:func -EnCrow_Init = 0x809CBDB0; // type:func -EnCrow_Destroy = 0x809CBEA0; // type:func -EnCrow_SetupFlyIdle = 0x809CBECC; // type:func -EnCrow_SetupDiveAttack = 0x809CBF00; // type:func -EnCrow_SetupDamaged = 0x809CBF34; // type:func -EnCrow_SetupDie = 0x809CC254; // type:func -EnCrow_SetupTurnAway = 0x809CC26C; // type:func -EnCrow_SetupRespawn = 0x809CC2F4; // type:func -EnCrow_FlyIdle = 0x809CC3E8; // type:func -EnCrow_DiveAttack = 0x809CC814; // type:func -EnCrow_Damaged = 0x809CC9B8; // type:func -EnCrow_Die = 0x809CCAE0; // type:func -EnCrow_TurnAway = 0x809CCB90; // type:func -EnCrow_Respawn = 0x809CCC34; // type:func -EnCrow_UpdateDamage = 0x809CCD00; // type:func -EnCrow_Update = 0x809CCDB0; // type:func -EnCrow_OverrideLimbDraw = 0x809CCFCC; // type:func -EnCrow_PostLimbDraw = 0x809CD0B8; // type:func -EnCrow_Draw = 0x809CD178; // type:func -EnCs_ChangeAnim = 0x809CD450; // type:func -EnCs_Init = 0x809CD574; // type:func -EnCs_Destroy = 0x809CD708; // type:func -EnCs_GetTalkState = 0x809CD734; // type:func -EnCs_GetTextId = 0x809CD868; // type:func -EnCs_HandleTalking = 0x809CD8EC; // type:func -EnCs_GetwaypointCount = 0x809CDA38; // type:func -EnCs_GetPathPoint = 0x809CDA4C; // type:func -EnCs_HandleWalking = 0x809CDAE0; // type:func -EnCs_Walk = 0x809CDCF8; // type:func -EnCs_Wait = 0x809CDE98; // type:func -EnCs_Talk = 0x809CDF24; // type:func -EnCs_Update = 0x809CDFE8; // type:func -EnCs_Draw = 0x809CE158; // type:func -EnCs_OverrideLimbDraw = 0x809CE30C; // type:func -EnCs_PostLimbDraw = 0x809CE39C; // type:func -EnDaiku_ChangeAnim = 0x809CE680; // type:func -EnDaiku_Init = 0x809CE734; // type:func -EnDaiku_Destroy = 0x809CEA7C; // type:func -EnDaiku_UpdateTalking = 0x809CEAA8; // type:func -EnDaiku_UpdateText = 0x809CEBC4; // type:func -EnDaiku_TentIdle = 0x809CEE94; // type:func -EnDaiku_Jailed = 0x809CEECC; // type:func -EnDaiku_WaitFreedom = 0x809CEF9C; // type:func -EnDaiku_InitEscape = 0x809CF000; // type:func -EnDaiku_EscapeRotate = 0x809CF208; // type:func -EnDaiku_InitSubCamera = 0x809CF274; // type:func -EnDaiku_UpdateSubCamera = 0x809CF400; // type:func -EnDaiku_EscapeSuccess = 0x809CF4B8; // type:func -EnDaiku_EscapeRun = 0x809CF5F4; // type:func -EnDaiku_Update = 0x809CF800; // type:func -EnDaiku_Draw = 0x809CF918; // type:func -EnDaiku_OverrideLimbDraw = 0x809CFA40; // type:func -EnDaiku_PostLimbDraw = 0x809CFAC4; // type:func -EnDaikuKakariko_ChangeAnim = 0x809CFDC0; // type:func -EnDaikuKakariko_Init = 0x809CFE74; // type:func -EnDaikuKakariko_Destroy = 0x809D01CC; // type:func -EnDaikuKakariko_GetTalkState = 0x809D01F8; // type:func -EnDaikuKakariko_HandleTalking = 0x809D029C; // type:func -EnDaikuKakariko_Talk = 0x809D0458; // type:func -EnDaikuKakariko_Wait = 0x809D052C; // type:func -EnDaikuKakariko_StopRunning = 0x809D05C8; // type:func -EnDaikuKakariko_Run = 0x809D0678; // type:func -EnDaikuKakariko_Update = 0x809D09F8; // type:func -EnDaikuKakariko_OverrideLimbDraw = 0x809D0B70; // type:func -EnDaikuKakariko_PostLimbDraw = 0x809D0D30; // type:func -EnDaikuKakariko_Draw = 0x809D0DAC; // type:func -EnDekubaba_Init = 0x809D1180; // type:func -EnDekubaba_Destroy = 0x809D13C4; // type:func -EnDekubaba_DisableACColliderElems = 0x809D13F0; // type:func -EnDekubaba_SetupWait = 0x809D1478; // type:func -EnDekubaba_SetupGrow = 0x809D16E0; // type:func -EnDekubaba_SetupRetract = 0x809D1810; // type:func -EnDekubaba_SetupDecideLunge = 0x809D18F8; // type:func -EnDekubaba_SetupPrepareLunge = 0x809D1950; // type:func -EnDekubaba_SetupLunge = 0x809D1974; // type:func -EnDekubaba_SetupPullBack = 0x809D19B8; // type:func -EnDekubaba_SetupRecover = 0x809D1A30; // type:func -EnDekubaba_SetupHit = 0x809D1A64; // type:func -EnDekubaba_SetupPrunedSomersault = 0x809D1B2C; // type:func -EnDekubaba_SetupShrinkDie = 0x809D1BA0; // type:func -EnDekubaba_SetupStunnedVertical = 0x809D1C20; // type:func -EnDekubaba_SetupSway = 0x809D1DA4; // type:func -EnDekubaba_SetupDeadStickDrop = 0x809D1E10; // type:func -EnDekubaba_Wait = 0x809D1EB0; // type:func -EnDekubaba_Grow = 0x809D1F5C; // type:func -EnDekubaba_Retract = 0x809D23C4; // type:func -EnDekubaba_UpdateHeadPosition = 0x809D278C; // type:func -EnDekubaba_DecideLunge = 0x809D2890; // type:func -EnDekubaba_Lunge = 0x809D2AC0; // type:func -EnDekubaba_PrepareLunge = 0x809D2D48; // type:func -EnDekubaba_PullBack = 0x809D2E14; // type:func -EnDekubaba_Recover = 0x809D31A0; // type:func -EnDekubaba_Hit = 0x809D3298; // type:func -EnDekubaba_StunnedVertical = 0x809D33A8; // type:func -EnDekubaba_Sway = 0x809D3444; // type:func -EnDekubaba_PrunedSomersault = 0x809D356C; // type:func -EnDekubaba_ShrinkDie = 0x809D38D0; // type:func -EnDekubaba_DeadStickDrop = 0x809D3A94; // type:func -EnDekubaba_UpdateDamage = 0x809D3AFC; // type:func -EnDekubaba_Update = 0x809D3DB0; // type:func -EnDekubaba_DrawStemRetracted = 0x809D3F50; // type:func -EnDekubaba_DrawStemExtended = 0x809D4040; // type:func -EnDekubaba_DrawStemBasePruned = 0x809D4330; // type:func -EnDekubaba_DrawBaseShadow = 0x809D43F0; // type:func -EnDekubaba_PostLimbDraw = 0x809D44E4; // type:func -EnDekubaba_Draw = 0x809D4520; // type:func -EnDekunuts_Init = 0x809D4C30; // type:func -EnDekunuts_Destroy = 0x809D4D9C; // type:func -EnDekunuts_SetupWait = 0x809D4DD8; // type:func -EnDekunuts_SetupLookAround = 0x809D4E4C; // type:func -EnDekunuts_SetupThrowNut = 0x809D4E94; // type:func -EnDekunuts_SetupStand = 0x809D4ED8; // type:func -EnDekunuts_SetupBurrow = 0x809D4F40; // type:func -EnDekunuts_SetupBeginRun = 0x809D4F90; // type:func -EnDekunuts_SetupRun = 0x809D4FF8; // type:func -EnDekunuts_SetupGasp = 0x809D5050; // type:func -EnDekunuts_SetupBeDamaged = 0x809D50B0; // type:func -EnDekunuts_SetupBeStunned = 0x809D518C; // type:func -EnDekunuts_SetupDie = 0x809D5220; // type:func -EnDekunuts_Wait = 0x809D5270; // type:func -EnDekunuts_LookAround = 0x809D54D4; // type:func -EnDekunuts_Stand = 0x809D5558; // type:func -EnDekunuts_ThrowNut = 0x809D5644; // type:func -EnDekunuts_Burrow = 0x809D579C; // type:func -EnDekunuts_BeginRun = 0x809D58B0; // type:func -EnDekunuts_Run = 0x809D5918; // type:func -EnDekunuts_Gasp = 0x809D5B58; // type:func -EnDekunuts_BeDamaged = 0x809D5BC0; // type:func -EnDekunuts_BeStunned = 0x809D5C10; // type:func -EnDekunuts_Die = 0x809D5C8C; // type:func -EnDekunuts_ColliderCheck = 0x809D5DE8; // type:func -EnDekunuts_Update = 0x809D5F0C; // type:func -EnDekunuts_OverrideLimbDraw = 0x809D6074; // type:func -EnDekunuts_Draw = 0x809D61A8; // type:func -EnDh_SetupAction = 0x809D6430; // type:func -EnDh_Init = 0x809D643C; // type:func -EnDh_Destroy = 0x809D6578; // type:func -EnDh_SpawnDebris = 0x809D65C0; // type:func -EnDh_SetupWait = 0x809D6758; // type:func -EnDh_Wait = 0x809D680C; // type:func -EnDh_SetupWalk = 0x809D6A30; // type:func -EnDh_Walk = 0x809D6ACC; // type:func -EnDh_SetupRetreat = 0x809D6BD4; // type:func -EnDh_Retreat = 0x809D6C38; // type:func -EnDh_SetupAttack = 0x809D6CC4; // type:func -EnDh_Attack = 0x809D6D24; // type:func -EnDh_SetupBurrow = 0x809D7034; // type:func -EnDh_Burrow = 0x809D70B8; // type:func -EnDh_SetupDamage = 0x809D7248; // type:func -EnDh_Damage = 0x809D72C8; // type:func -EnDh_SetupDeath = 0x809D73F0; // type:func -EnDh_Death = 0x809D7478; // type:func -EnDh_CollisionCheck = 0x809D75A8; // type:func -EnDh_Update = 0x809D76F8; // type:func -EnDh_PostLimbDraw = 0x809D78A8; // type:func -EnDh_Draw = 0x809D7938; // type:func -EnDha_SetupAction = 0x809D7F10; // type:func -EnDha_Init = 0x809D7F1C; // type:func -EnDha_Destroy = 0x809D8038; // type:func -EnDha_SetupWait = 0x809D8064; // type:func -EnDha_Wait = 0x809D80EC; // type:func -EnDha_SetupTakeDamage = 0x809D85FC; // type:func -EnDha_TakeDamage = 0x809D8628; // type:func -EnDha_SetupDeath = 0x809D86F0; // type:func -EnDha_Die = 0x809D8760; // type:func -EnDha_UpdateHealth = 0x809D891C; // type:func -EnDha_Update = 0x809D8A10; // type:func -EnDha_OverrideLimbDraw = 0x809D8AB8; // type:func -EnDha_PostLimbDraw = 0x809D8B58; // type:func -EnDha_Draw = 0x809D8C70; // type:func -EnDivingGame_Init = 0x809D8F10; // type:func -EnDivingGame_Destroy = 0x809D902C; // type:func -EnDivingGame_SpawnRuppy = 0x809D906C; // type:func -EnDivingGame_HasMinigameFinished = 0x809D9198; // type:func -func_809EDCB0 = 0x809D9344; // type:func -EnDivingGame_Talk = 0x809D93E0; // type:func -EnDivingGame_HandlePlayChoice = 0x809D9570; // type:func -func_809EE048 = 0x809D96DC; // type:func -func_809EE0FC = 0x809D9790; // type:func -func_809EE194 = 0x809D9828; // type:func -EnDivingGame_SetupRupeeThrow = 0x809D9888; // type:func -EnDivingGame_RupeeThrow = 0x809D9A9C; // type:func -EnDivingGame_SetupUnderwaterViewCs = 0x809D9D5C; // type:func -func_809EE780 = 0x809D9E14; // type:func -func_809EE800 = 0x809D9E94; // type:func -func_809EE8F0 = 0x809D9F84; // type:func -func_809EE96C = 0x809DA004; // type:func -func_809EEA00 = 0x809DA098; // type:func -func_809EEA90 = 0x809DA128; // type:func -func_809EEAF8 = 0x809DA194; // type:func -EnDivingGame_Update = 0x809DA224; // type:func -EnDivingGame_EmptyDList = 0x809DA450; // type:func -EnDivingGame_OverrideLimbDraw = 0x809DA474; // type:func -EnDivingGame_Draw = 0x809DA5D4; // type:func -EnDns_Init = 0x809DA8C0; // type:func -EnDns_Destroy = 0x809DAA34; // type:func -EnDns_ChangeAnim = 0x809DAA60; // type:func -EnDns_CanBuyDekuNuts = 0x809DAAE8; // type:func -EnDns_CanBuyDekuSticks = 0x809DABA0; // type:func -EnDns_CanBuyPrice = 0x809DAC58; // type:func -EnDns_CanBuyDekuSeeds = 0x809DAC88; // type:func -EnDns_CanBuyDekuShield = 0x809DAD50; // type:func -EnDns_CanBuyBombs = 0x809DADA4; // type:func -EnDns_CanBuyArrows = 0x809DAE44; // type:func -EnDns_CanBuyBottle = 0x809DAEF4; // type:func -EnDns_PayPrice = 0x809DAF4C; // type:func -EnDns_PayForDekuNuts = 0x809DAF80; // type:func -EnDns_PayForHeartPiece = 0x809DAFB4; // type:func -EnDns_PayForBombs = 0x809DAFFC; // type:func -EnDns_PayForArrows = 0x809DB030; // type:func -EnDns_PayForDekuStickUpgrade = 0x809DB064; // type:func -EnDns_PayForDekuNutUpgrade = 0x809DB0AC; // type:func -EnDns_SetupIdle = 0x809DB0F4; // type:func -EnDns_Idle = 0x809DB138; // type:func -EnDns_Talk = 0x809DB20C; // type:func -EnDns_OfferSaleItem = 0x809DB344; // type:func -EnDns_SetupSale = 0x809DB45C; // type:func -EnDns_Sale = 0x809DB4C8; // type:func -EnDns_SetupBurrow = 0x809DB514; // type:func -EnDns_SetupNoSaleBurrow = 0x809DB608; // type:func -EnDns_Burrow = 0x809DB680; // type:func -EnDns_PostBurrow = 0x809DB6FC; // type:func -EnDns_Update = 0x809DB800; // type:func -EnDns_Draw = 0x809DB8F0; // type:func -EnDntDemo_Destroy = 0x809DBC50; // type:func -EnDntDemo_Init = 0x809DBC60; // type:func -EnDntDemo_Judge = 0x809DBDD0; // type:func -EnDntDemo_Results = 0x809DC3F0; // type:func -EnDntDemo_Prize = 0x809DC664; // type:func -EnDntDemo_Update = 0x809DC740; // type:func -EnDntJiji_Init = 0x809DC970; // type:func -EnDntJiji_Destroy = 0x809DCA50; // type:func -EnDntJiji_SetFlower = 0x809DCA7C; // type:func -EnDntJiji_SetupWait = 0x809DCABC; // type:func -EnDntJiji_Wait = 0x809DCB6C; // type:func -EnDntJiji_SetupUp = 0x809DCC24; // type:func -EnDntJiji_Up = 0x809DCD08; // type:func -EnDntJiji_SetupUnburrow = 0x809DCD78; // type:func -EnDntJiji_Unburrow = 0x809DCE5C; // type:func -EnDntJiji_SetupWalk = 0x809DCEE4; // type:func -EnDntJiji_Walk = 0x809DCF94; // type:func -EnDntJiji_SetupBurrow = 0x809DD0D0; // type:func -EnDntJiji_Burrow = 0x809DD1C0; // type:func -EnDntJiji_SetupCower = 0x809DD1EC; // type:func -EnDntJiji_Cower = 0x809DD32C; // type:func -EnDntJiji_SetupTalk = 0x809DD3D0; // type:func -EnDntJiji_Talk = 0x809DD464; // type:func -EnDntJiji_SetupGivePrize = 0x809DD530; // type:func -EnDntJiji_GivePrize = 0x809DD5A0; // type:func -EnDntJiji_SetupHide = 0x809DD6B0; // type:func -EnDntJiji_Hide = 0x809DD748; // type:func -EnDntJiji_SetupReturn = 0x809DD7B4; // type:func -EnDntJiji_Return = 0x809DD864; // type:func -EnDntJiji_Update = 0x809DD9DC; // type:func -EnDntJiji_Draw = 0x809DDBB4; // type:func -EnDntNomal_Init = 0x809DDE90; // type:func -EnDntNomal_Destroy = 0x809DDFB8; // type:func -EnDntNomal_WaitForObject = 0x809DE004; // type:func -EnDntNomal_SetFlower = 0x809DE154; // type:func -EnDntNomal_SetupTargetWait = 0x809DE1AC; // type:func -EnDntNomal_TargetWait = 0x809DE254; // type:func -EnDntNomal_SetupTargetUnburrow = 0x809DE530; // type:func -EnDntNomal_TargetUnburrow = 0x809DE64C; // type:func -EnDntNomal_SetupTargetWalk = 0x809DE6B8; // type:func -EnDntNomal_TargetWalk = 0x809DE75C; // type:func -EnDntNomal_TargetFacePlayer = 0x809DE848; // type:func -EnDntNomal_SetupTargetTalk = 0x809DE8FC; // type:func -EnDntNomal_TargetTalk = 0x809DE9A8; // type:func -EnDntNomal_SetupTargetGivePrize = 0x809DEA50; // type:func -EnDntNomal_TargetGivePrize = 0x809DEAE8; // type:func -EnDntNomal_TargetReturn = 0x809DEC50; // type:func -EnDntNomal_TargetBurrow = 0x809DEE20; // type:func -EnDntNomal_SetupStageWait = 0x809DEE8C; // type:func -EnDntNomal_StageWait = 0x809DEF44; // type:func -EnDntNomal_SetupStageUp = 0x809DEF70; // type:func -EnDntNomal_StageUp = 0x809DF07C; // type:func -EnDntNomal_SetupStageUnburrow = 0x809DF2B0; // type:func -EnDntNomal_StageUnburrow = 0x809DF3A4; // type:func -EnDntNomal_SetupStageCelebrate = 0x809DF47C; // type:func -EnDntNomal_StageCelebrate = 0x809DF524; // type:func -EnDntNomal_SetupStageDance = 0x809DF72C; // type:func -EnDntNomal_StageDance = 0x809DF83C; // type:func -EnDntNomal_SetupStageHide = 0x809DF9A0; // type:func -EnDntNomal_StageHide = 0x809DFA7C; // type:func -EnDntNomal_StageAttackHide = 0x809DFC40; // type:func -EnDntNomal_SetupStageAttack = 0x809DFC74; // type:func -EnDntNomal_StageAttack = 0x809DFD40; // type:func -EnDntNomal_StageSetupReturn = 0x809E0004; // type:func -EnDntNomal_StageReturn = 0x809E00A8; // type:func -EnDntNomal_Update = 0x809E01AC; // type:func -EnDntNomal_OverrideLimbDraw = 0x809E0470; // type:func -EnDntNomal_PostLimbDraw = 0x809E0520; // type:func -EnDntNomal_DrawStageScrub = 0x809E05A8; // type:func -EnDntNomal_DrawTargetScrub = 0x809E0798; // type:func -EnDodojr_Init = 0x809E0C90; // type:func -EnDodojr_Destroy = 0x809E0D78; // type:func -EnDodojr_DoSwallowedBombEffects = 0x809E0DA4; // type:func -EnDodojr_SpawnLargeDust = 0x809E0DE8; // type:func -EnDodojr_SpawnSmallDust = 0x809E1008; // type:func -EnDodojr_UpdateBounces = 0x809E1188; // type:func -EnDodojr_SetupCrawlTowardsTarget = 0x809E126C; // type:func -EnDodojr_SetupFlipBounce = 0x809E12F4; // type:func -EnDodojr_SetupSwallowedBombDeathSequence = 0x809E1398; // type:func -EnDodojr_SetupJumpAttackBounce = 0x809E1408; // type:func -EnDodojr_SetupDespawn = 0x809E148C; // type:func -EnDodojr_SetupEatBomb = 0x809E14F8; // type:func -EnDodojr_CheckNearbyBombs = 0x809E1574; // type:func -EnDodojr_TryEatBomb = 0x809E16A0; // type:func -EnDodojr_UpdateCrawl = 0x809E1724; // type:func -EnDodojr_IsPlayerWithinAttackRange = 0x809E1938; // type:func -EnDodojr_SetupStandardDeathBounce = 0x809E1968; // type:func -EnDodojr_CheckDamaged = 0x809E19B4; // type:func -EnDodojr_UpdateCollider = 0x809E1B70; // type:func -EnDodojr_WaitUnderground = 0x809E1C80; // type:func -EnDodojr_EmergeFromGround = 0x809E1D98; // type:func -EnDodojr_CrawlTowardsTarget = 0x809E1E60; // type:func -EnDodojr_EatBomb = 0x809E1F64; // type:func -EnDodojr_SwallowBomb = 0x809E2014; // type:func -EnDodojr_SwallowedBombDeathBounce = 0x809E2084; // type:func -EnDodojr_SwallowedBombDeathSequence = 0x809E2124; // type:func -EnDodojr_StunnedBounce = 0x809E2144; // type:func -EnDodojr_Stunned = 0x809E21C4; // type:func -EnDodojr_JumpAttackBounce = 0x809E2274; // type:func -EnDodojr_Despawn = 0x809E22DC; // type:func -EnDodojr_StandardDeathBounce = 0x809E2394; // type:func -EnDodojr_DeathSequence = 0x809E241C; // type:func -EnDodojr_DropItem = 0x809E24C8; // type:func -EnDodojr_WaitFreezeFrames = 0x809E252C; // type:func -EnDodojr_Update = 0x809E2574; // type:func -EnDodojr_OverrideLimbDraw = 0x809E2634; // type:func -EnDodojr_PostLimbDraw = 0x809E26E0; // type:func -EnDodojr_Draw = 0x809E26F8; // type:func -EnDodongo_SetupAction = 0x809E2B30; // type:func -EnDodongo_SpawnBombSmoke = 0x809E2B3C; // type:func -EnDodongo_Init = 0x809E302C; // type:func -EnDodongo_Destroy = 0x809E3254; // type:func -EnDodongo_SetupIdle = 0x809E32B4; // type:func -EnDodongo_SetupWalk = 0x809E331C; // type:func -EnDodongo_SetupBreatheFire = 0x809E33C0; // type:func -EnDodongo_SetupEndBreatheFire = 0x809E3414; // type:func -EnDodongo_SetupSwallowBomb = 0x809E3464; // type:func -EnDodongo_SetupStunned = 0x809E34E4; // type:func -EnDodongo_Idle = 0x809E357C; // type:func -EnDodongo_EndBreatheFire = 0x809E35F4; // type:func -EnDodongo_BreatheFire = 0x809E3644; // type:func -EnDodongo_SwallowBomb = 0x809E381C; // type:func -EnDodongo_Walk = 0x809E3D14; // type:func -EnDodongo_SetupSweepTail = 0x809E4054; // type:func -EnDodongo_SweepTail = 0x809E40B4; // type:func -EnDodongo_SetupDeath = 0x809E4378; // type:func -EnDodongo_Death = 0x809E43F0; // type:func -EnDodongo_Stunned = 0x809E453C; // type:func -EnDodongo_CollisionCheck = 0x809E45A0; // type:func -EnDodongo_UpdateQuad = 0x809E46C8; // type:func -EnDodongo_Update = 0x809E4834; // type:func -EnDodongo_OverrideLimbDraw = 0x809E4A00; // type:func -EnDodongo_PostLimbDraw = 0x809E4A54; // type:func -EnDodongo_Draw = 0x809E4E90; // type:func -EnDodongo_ShiftVecRadial = 0x809E4F80; // type:func -EnDodongo_AteBomb = 0x809E4FE0; // type:func -EnDog_PlayWalkSFX = 0x809E58D0; // type:func -EnDog_PlayRunSFX = 0x809E5938; // type:func -EnDog_PlayBarkSFX = 0x809E59A0; // type:func -EnDog_PlayAnimAndSFX = 0x809E5A08; // type:func -EnDog_CanFollow = 0x809E5BA0; // type:func -EnDog_UpdateWaypoint = 0x809E5C24; // type:func -EnDog_Orient = 0x809E5CB0; // type:func -EnDog_Init = 0x809E5D54; // type:func -EnDog_Destroy = 0x809E5FA4; // type:func -EnDog_FollowPath = 0x809E5FD0; // type:func -EnDog_ChooseMovement = 0x809E6168; // type:func -EnDog_FollowPlayer = 0x809E6258; // type:func -EnDog_RunAway = 0x809E63D8; // type:func -EnDog_FaceLink = 0x809E647C; // type:func -EnDog_Wait = 0x809E6584; // type:func -EnDog_Update = 0x809E65DC; // type:func -EnDog_OverrideLimbDraw = 0x809E66A8; // type:func -EnDog_PostLimbDraw = 0x809E66C4; // type:func -EnDog_Draw = 0x809E66DC; // type:func -EnDoor_Init = 0x809E6A80; // type:func -EnDoor_Destroy = 0x809E6C9C; // type:func -EnDoor_SetupType = 0x809E6CD0; // type:func -EnDoor_Idle = 0x809E6E88; // type:func -EnDoor_WaitForCheck = 0x809E7140; // type:func -EnDoor_Check = 0x809E718C; // type:func -EnDoor_AjarWait = 0x809E71C4; // type:func -EnDoor_AjarOpen = 0x809E71F8; // type:func -EnDoor_AjarClose = 0x809E7268; // type:func -EnDoor_Open = 0x809E72B0; // type:func -EnDoor_Update = 0x809E7504; // type:func -EnDoor_OverrideLimbDraw = 0x809E7528; // type:func -EnDoor_Draw = 0x809E765C; // type:func -EnDs_Init = 0x809E78C0; // type:func -EnDs_Destroy = 0x809E7990; // type:func -EnDs_Talk = 0x809E79A0; // type:func -EnDs_TalkNoEmptyBottle = 0x809E79F0; // type:func -EnDs_TalkAfterGiveOddPotion = 0x809E7A5C; // type:func -EnDs_DisplayOddPotionText = 0x809E7AB8; // type:func -EnDs_GiveOddPotion = 0x809E7B18; // type:func -EnDs_TalkAfterBrewOddPotion = 0x809E7B84; // type:func -EnDs_BrewOddPotion3 = 0x809E7C04; // type:func -EnDs_BrewOddPotion2 = 0x809E7CA8; // type:func -EnDs_BrewOddPotion1 = 0x809E7CFC; // type:func -EnDs_OfferOddPotion = 0x809E7D9C; // type:func -EnDs_CheckRupeesAndBottle = 0x809E7E68; // type:func -EnDs_GiveBluePotion = 0x809E7EB8; // type:func -EnDs_OfferBluePotion = 0x809E7F1C; // type:func -EnDs_Wait = 0x809E8054; // type:func -EnDs_Update = 0x809E81D8; // type:func -EnDs_OverrideLimbDraw = 0x809E82E0; // type:func -EnDs_PostLimbDraw = 0x809E8328; // type:func -EnDs_Draw = 0x809E8368; // type:func -EnDu_SetupAction = 0x809E84E0; // type:func -EnDu_GetTextId = 0x809E84EC; // type:func -EnDu_UpdateTalkState = 0x809E8590; // type:func -func_809FDDB4 = 0x809E866C; // type:func -func_809FDE24 = 0x809E86DC; // type:func -func_809FDE9C = 0x809E8754; // type:func -func_809FDFC0 = 0x809E8878; // type:func -func_809FE000 = 0x809E88BC; // type:func -func_809FE040 = 0x809E8900; // type:func -func_809FE104 = 0x809E89C4; // type:func -EnDu_Init = 0x809E8A6C; // type:func -EnDu_Destroy = 0x809E8C3C; // type:func -func_809FE3B4 = 0x809E8C7C; // type:func -func_809FE3C0 = 0x809E8C8C; // type:func -func_809FE4A4 = 0x809E8D74; // type:func -func_809FE638 = 0x809E8F0C; // type:func -func_809FE6CC = 0x809E8FA4; // type:func -func_809FE740 = 0x809E9018; // type:func -func_809FE798 = 0x809E9070; // type:func -func_809FE890 = 0x809E9168; // type:func -func_809FEB08 = 0x809E93E4; // type:func -func_809FEC14 = 0x809E94F0; // type:func -func_809FEC70 = 0x809E954C; // type:func -func_809FECE4 = 0x809E95C4; // type:func -EnDu_Update = 0x809E95FC; // type:func -EnDu_OverrideLimbDraw = 0x809E9788; // type:func -EnDu_PostLimbDraw = 0x809E9904; // type:func -EnDu_Draw = 0x809E9960; // type:func -EnDyExtra_Destroy = 0x809E9F70; // type:func -EnDyExtra_Init = 0x809E9F80; // type:func -EnDyExtra_WaitForTrigger = 0x809E9FF4; // type:func -EnDyExtra_FallAndKill = 0x809EA088; // type:func -EnDyExtra_Update = 0x809EA140; // type:func -EnDyExtra_Draw = 0x809EA1AC; // type:func -EnEg_PlayVoidOutSFX = 0x809EA510; // type:func -EnEg_Destroy = 0x809EA530; // type:func -EnEg_Init = 0x809EA540; // type:func -func_809FFDC8 = 0x809EA550; // type:func -EnEg_Update = 0x809EA5E8; // type:func -EnEg_Draw = 0x809EA630; // type:func -EnEiyer_Init = 0x809EA6C0; // type:func -EnEiyer_Destroy = 0x809EA8A0; // type:func -EnEiyer_RotateAroundHome = 0x809EA8CC; // type:func -EnEiyer_SetupAppearFromGround = 0x809EA93C; // type:func -EnEiyer_SetupUnderground = 0x809EAA7C; // type:func -EnEiyer_SetupInactive = 0x809EAADC; // type:func -EnEiyer_SetupAmbush = 0x809EAB08; // type:func -EnEiyer_SetupGlide = 0x809EABE8; // type:func -EnEiyer_SetupStartAttack = 0x809EAC64; // type:func -EnEiyer_SetupDiveAttack = 0x809EAC78; // type:func -EnEiyer_SetupLand = 0x809EACC0; // type:func -EnEiyer_SetupHurt = 0x809EAD38; // type:func -EnEiyer_SetupDie = 0x809EADE8; // type:func -EnEiyer_SetupDead = 0x809EAEA8; // type:func -EnEiyer_SetupStunned = 0x809EAED4; // type:func -EnEiyer_AppearFromGround = 0x809EAF98; // type:func -EnEiyer_CheckPlayerCollision = 0x809EAFE8; // type:func -EnEiyer_CircleUnderground = 0x809EB018; // type:func -EnEiyer_WanderUnderground = 0x809EB094; // type:func -EnEiyer_Inactive = 0x809EB1C8; // type:func -EnEiyer_Ambush = 0x809EB25C; // type:func -EnEiyer_Glide = 0x809EB3B4; // type:func -EnEiyer_StartAttack = 0x809EB5D0; // type:func -EnEiyer_DiveAttack = 0x809EB6CC; // type:func -EnEiyer_Land = 0x809EB758; // type:func -EnEiyer_Hurt = 0x809EB84C; // type:func -EnEiyer_Die = 0x809EB984; // type:func -EnEiyer_Dead = 0x809EBA38; // type:func -EnEiyer_Stunned = 0x809EBAB8; // type:func -EnEiyer_UpdateDamage = 0x809EBB70; // type:func -EnEiyer_Update = 0x809EBCB8; // type:func -EnEiyer_OverrideLimbDraw = 0x809EBEDC; // type:func -EnEiyer_Draw = 0x809EBF30; // type:func -EnElf_SetupAction = 0x809EC320; // type:func -func_80A01C38 = 0x809EC32C; // type:func -func_80A01F90 = 0x809EC684; // type:func -func_80A01FE0 = 0x809EC6D8; // type:func -func_80A020A4 = 0x809EC7A0; // type:func -func_80A0214C = 0x809EC84C; // type:func -func_80A0232C = 0x809ECA2C; // type:func -EnElf_GetColorValue = 0x809ECAA4; // type:func -EnElf_Init = 0x809ECB14; // type:func -func_80A0299C = 0x809ED080; // type:func -func_80A029A8 = 0x809ED090; // type:func -EnElf_Destroy = 0x809ED0B8; // type:func -func_80A02A20 = 0x809ED108; // type:func -func_80A02AA4 = 0x809ED18C; // type:func -func_80A02B38 = 0x809ED220; // type:func -func_80A02BD8 = 0x809ED2BC; // type:func -func_80A02C98 = 0x809ED37C; // type:func -func_80A02E30 = 0x809ED514; // type:func -func_80A02EC0 = 0x809ED5A0; // type:func -func_80A02F2C = 0x809ED60C; // type:func -func_80A03018 = 0x809ED6F8; // type:func -func_80A03148 = 0x809ED82C; // type:func -func_80A0329C = 0x809ED984; // type:func -func_80A0353C = 0x809EDC28; // type:func -func_80A03604 = 0x809EDCF0; // type:func -func_80A03610 = 0x809EDD00; // type:func -func_80A03814 = 0x809EDF08; // type:func -func_80A03990 = 0x809EE088; // type:func -func_80A03AB0 = 0x809EE1AC; // type:func -EnElf_UpdateLights = 0x809EE210; // type:func -func_80A03CF8 = 0x809EE3E4; // type:func -EnElf_ChangeColor = 0x809EEA7C; // type:func -func_80A04414 = 0x809EEB08; // type:func -func_80A0461C = 0x809EED14; // type:func -EnElf_SpawnSparkles = 0x809EF0B0; // type:func -func_80A04D90 = 0x809EF490; // type:func -func_80A04DE4 = 0x809EF4E4; // type:func -func_80A04F94 = 0x809EF698; // type:func -func_80A05040 = 0x809EF748; // type:func -func_80A05114 = 0x809EF824; // type:func -func_80A05188 = 0x809EF8A0; // type:func -func_80A05208 = 0x809EF928; // type:func -func_80A052F4 = 0x809EFA1C; // type:func -func_80A053F0 = 0x809EFB20; // type:func -EnElf_Update = 0x809EFD9C; // type:func -EnElf_OverrideLimbDraw = 0x809EFDF8; // type:func -EnElf_Draw = 0x809EFF1C; // type:func -EnElf_GetCuePos = 0x809F0594; // type:func -EnEncount1_Init = 0x809F0CE0; // type:func -EnEncount1_SpawnLeevers = 0x809F0E14; // type:func -EnEncount1_SpawnTektites = 0x809F1170; // type:func -EnEncount1_SpawnStalchildOrWolfos = 0x809F1308; // type:func -EnEncount1_Update = 0x809F175C; // type:func -EnEncount2_Init = 0x809F1840; // type:func -EnEncount2_Wait = 0x809F18B4; // type:func -EnEncount2_SpawnRocks = 0x809F1B0C; // type:func -EnEncount2_Update = 0x809F20D4; // type:func -EnEncount2_Draw = 0x809F24A0; // type:func -EnEncount2_SpawnEffect = 0x809F24C0; // type:func -EnEncount2_UpdateEffects = 0x809F2574; // type:func -EnEncount2_DrawEffects = 0x809F2748; // type:func -EnExItem_Destroy = 0x809F2A70; // type:func -EnExItem_Init = 0x809F2A80; // type:func -EnExItem_WaitForObject = 0x809F2BDC; // type:func -EnExItem_BowlPrize = 0x809F2F58; // type:func -EnExItem_SetupBowlCounter = 0x809F3144; // type:func -EnExItem_BowlCounter = 0x809F316C; // type:func -EnExItem_ExitChest = 0x809F31A4; // type:func -EnExItem_FairyMagic = 0x809F320C; // type:func -EnExItem_TargetPrizeApproach = 0x809F3224; // type:func -EnExItem_TargetPrizeGive = 0x809F3478; // type:func -EnExItem_TargetPrizeFinish = 0x809F3504; // type:func -EnExItem_Update = 0x809F3564; // type:func -EnExItem_Draw = 0x809F35B8; // type:func -EnExItem_DrawItems = 0x809F3668; // type:func -EnExItem_DrawHeartPiece = 0x809F36CC; // type:func -EnExItem_DrawMagic = 0x809F3700; // type:func -EnExItem_DrawKey = 0x809F3748; // type:func -EnExItem_DrawRupee = 0x809F3838; // type:func -EnExRuppy_Init = 0x809F3BF0; // type:func -EnExRuppy_Destroy = 0x809F3FC8; // type:func -EnExRuppy_SpawnSparkles = 0x809F3FD8; // type:func -EnExRuppy_DropIntoWater = 0x809F41F4; // type:func -EnExRuppy_EnterWater = 0x809F42D4; // type:func -EnExRuppy_Sink = 0x809F4440; // type:func -EnExRuppy_WaitInGame = 0x809F4540; // type:func -EnExRuppy_Kill = 0x809F4698; // type:func -EnExRuppy_WaitToBlowUp = 0x809F46DC; // type:func -EnExRuppy_WaitAsCollectible = 0x809F4808; // type:func -EnExRuppy_GalleryTarget = 0x809F488C; // type:func -EnExRuppy_Update = 0x809F48EC; // type:func -EnExRuppy_Draw = 0x809F4978; // type:func -EnFd_SpawnCore = 0x809F4CB0; // type:func -EnFd_SpawnChildFire = 0x809F4DA8; // type:func -EnFd_SpawnDot = 0x809F4EC8; // type:func -EnFd_CheckHammer = 0x809F5034; // type:func -EnFd_ColliderCheck = 0x809F50D0; // type:func -EnFd_CanSeeActor = 0x809F5268; // type:func -EnFd_FindBomb = 0x809F5378; // type:func -EnFd_FindPotentialTheat = 0x809F5438; // type:func -EnFd_GetPosAdjAroundCircle = 0x809F54AC; // type:func -EnFd_ShouldStopRunning = 0x809F5574; // type:func -EnFd_Fade = 0x809F56A8; // type:func -EnFd_Init = 0x809F57B8; // type:func -EnFd_Destroy = 0x809F58F4; // type:func -EnFd_Reappear = 0x809F5920; // type:func -EnFd_SpinAndGrow = 0x809F59B0; // type:func -EnFd_JumpToGround = 0x809F5A84; // type:func -EnFd_Land = 0x809F5B00; // type:func -EnFd_SpinAndSpawnFire = 0x809F5BE0; // type:func -EnFd_Run = 0x809F5E00; // type:func -EnFd_WaitForCore = 0x809F6060; // type:func -EnFd_Update = 0x809F60D8; // type:func -EnFd_OverrideLimbDraw = 0x809F62D4; // type:func -EnFd_PostLimbDraw = 0x809F6310; // type:func -EnFd_Draw = 0x809F663C; // type:func -EnFd_SpawnEffect = 0x809F69E8; // type:func -EnFd_UpdateEffectsFlames = 0x809F6AD8; // type:func -EnFd_UpdateEffectsDots = 0x809F6BF0; // type:func -EnFd_DrawEffectsFlames = 0x809F6D0C; // type:func -EnFd_DrawEffectsDots = 0x809F70E0; // type:func -EnFdFire_UpdatePos = 0x809F7950; // type:func -EnFdFire_CheckCollider = 0x809F7A18; // type:func -EnFdFire_Init = 0x809F7A7C; // type:func -EnFdFire_Destroy = 0x809F7B84; // type:func -func_80A0E70C = 0x809F7BB0; // type:func -EnFdFire_WaitToDie = 0x809F7CEC; // type:func -EnFdFire_DanceTowardsPlayer = 0x809F7D28; // type:func -EnFdFire_Disappear = 0x809F7ED8; // type:func -EnFdFire_Update = 0x809F7F8C; // type:func -EnFdFire_Draw = 0x809F8088; // type:func -EnFhgFire_SetUpdate = 0x809F8660; // type:func -EnFhgFire_Init = 0x809F866C; // type:func -EnFhgFire_Destroy = 0x809F8A7C; // type:func -EnFhgFire_LightningStrike = 0x809F8AEC; // type:func -EnFhgFire_LightningTrail = 0x809F8E84; // type:func -EnFhgFire_LightningShock = 0x809F9024; // type:func -EnFhgFire_LightningBurst = 0x809F9168; // type:func -EnFhgFire_SpearLight = 0x809F93E4; // type:func -EnFhgFire_EnergyBall = 0x809F95D8; // type:func -EnFhgFire_PhantomWarp = 0x809FA284; // type:func -EnFhgFire_Update = 0x809FA440; // type:func -EnFhgFire_Draw = 0x809FA490; // type:func -EnFireRock_Init = 0x809FAD00; // type:func -EnFireRock_Destroy = 0x809FB0F0; // type:func -EnFireRock_Fall = 0x809FB154; // type:func -EnFireRock_SpawnMoreBrokenPieces = 0x809FB4A8; // type:func -FireRock_WaitSpawnRocksFromCeiling = 0x809FB628; // type:func -FireRock_WaitOnFloor = 0x809FB718; // type:func -EnFireRock_Update = 0x809FB7FC; // type:func -EnFireRock_Draw = 0x809FBAA8; // type:func -EnFirefly_Extinguish = 0x809FBE10; // type:func -EnFirefly_Ignite = 0x809FBE3C; // type:func -EnFirefly_Init = 0x809FBE7C; // type:func -EnFirefly_Destroy = 0x809FC074; // type:func -EnFirefly_SetupFlyIdle = 0x809FC0A0; // type:func -EnFirefly_SetupFall = 0x809FC14C; // type:func -EnFirefly_SetupDie = 0x809FC1F0; // type:func -EnFirefly_SetupRebound = 0x809FC214; // type:func -EnFirefly_SetupDiveAttack = 0x809FC250; // type:func -EnFirefly_SetupFlyAway = 0x809FC2C0; // type:func -EnFirefly_SetupStunned = 0x809FC2F0; // type:func -EnFirefly_SetupFrozenFall = 0x809FC360; // type:func -EnFirefly_SetupPerch = 0x809FC500; // type:func -EnFirefly_SetupDisturbDiveAttack = 0x809FC524; // type:func -EnFirefly_ReturnToPerch = 0x809FC560; // type:func -EnFirefly_SeekTorch = 0x809FC67C; // type:func -EnFirefly_FlyIdle = 0x809FC7CC; // type:func -EnFirefly_Fall = 0x809FCA5C; // type:func -EnFirefly_Die = 0x809FCB2C; // type:func -EnFirefly_DiveAttack = 0x809FCBA8; // type:func -EnFirefly_Rebound = 0x809FCDBC; // type:func -EnFirefly_FlyAway = 0x809FCE50; // type:func -EnFirefly_Stunned = 0x809FCFB8; // type:func -EnFirefly_FrozenFall = 0x809FD05C; // type:func -EnFirefly_Perch = 0x809FD0BC; // type:func -EnFirefly_DisturbDiveAttack = 0x809FD17C; // type:func -EnFirefly_Combust = 0x809FD254; // type:func -EnFirefly_UpdateDamage = 0x809FD2D4; // type:func -EnFirefly_Update = 0x809FD484; // type:func -EnFirefly_OverrideLimbDraw = 0x809FD72C; // type:func -EnFirefly_PostLimbDraw = 0x809FD780; // type:func -EnFirefly_Draw = 0x809FDB10; // type:func -EnFirefly_DrawInvisible = 0x809FDBC4; // type:func -EnFish_XZDistanceSquared = 0x809FDF80; // type:func -EnFish_SetInWaterAnimation = 0x809FDFB0; // type:func -EnFish_SetOutOfWaterAnimation = 0x809FE014; // type:func -EnFish_BeginRespawn = 0x809FE078; // type:func -EnFish_SetCutsceneData = 0x809FE0AC; // type:func -EnFish_ClearCutsceneData = 0x809FE144; // type:func -EnFish_Init = 0x809FE16C; // type:func -EnFish_Destroy = 0x809FE2B0; // type:func -EnFish_SetYOffset = 0x809FE2DC; // type:func -EnFish_InBottleRange = 0x809FE394; // type:func -EnFish_CheckXZDistanceToPlayer = 0x809FE484; // type:func -EnFish_Respawning_SetupSlowDown = 0x809FE4B4; // type:func -EnFish_Respawning_SlowDown = 0x809FE50C; // type:func -EnFish_Respawning_SetupFollowChild = 0x809FE600; // type:func -EnFish_Respawning_FollowChild = 0x809FE658; // type:func -EnFish_Respawning_SetupFleePlayer = 0x809FE7EC; // type:func -EnFish_Respawning_FleePlayer = 0x809FE844; // type:func -EnFish_Respawning_SetupApproachPlayer = 0x809FEA34; // type:func -EnFish_Respawning_ApproachPlayer = 0x809FEA8C; // type:func -EnFish_Dropped_SetupFall = 0x809FEC50; // type:func -EnFish_Dropped_Fall = 0x809FECB0; // type:func -EnFish_Dropped_SetupFlopOnGround = 0x809FEDB8; // type:func -EnFish_Dropped_FlopOnGround = 0x809FEEFC; // type:func -EnFish_Dropped_SetupSwimAway = 0x809FF0D8; // type:func -EnFish_Dropped_SwimAway = 0x809FF14C; // type:func -EnFish_Unique_SetupSwimIdle = 0x809FF314; // type:func -EnFish_Unique_SwimIdle = 0x809FF36C; // type:func -EnFish_Cutscene_FlopOnGround = 0x809FF594; // type:func -EnFish_Cutscene_WiggleFlyingThroughAir = 0x809FF6C4; // type:func -EnFish_UpdateCutscene = 0x809FF760; // type:func -EnFish_OrdinaryUpdate = 0x809FF920; // type:func -EnFish_RespawningUpdate = 0x809FFAA4; // type:func -EnFish_Update = 0x809FFBB8; // type:func -EnFish_Draw = 0x809FFC64; // type:func -EnFloormas_Init = 0x80A00090; // type:func -EnFloormas_Destroy = 0x80A002A4; // type:func -EnFloormas_MakeInvulnerable = 0x80A002D0; // type:func -EnFloormas_MakeVulnerable = 0x80A002F4; // type:func -EnFloormas_SetupBigDecideAction = 0x80A00310; // type:func -EnFloormas_SetupStand = 0x80A00358; // type:func -EnFloormas_SetupBigWalk = 0x80A0039C; // type:func -EnFloormas_SetupBigStopWalk = 0x80A00428; // type:func -EnFloormas_SetupRun = 0x80A00470; // type:func -EnFloormas_SetupTurn = 0x80A004A0; // type:func -EnFloormas_SetupHover = 0x80A005D0; // type:func -EnFloormas_SetupCharge = 0x80A006A8; // type:func -EnFloormas_SetupLand = 0x80A006DC; // type:func -EnFloormas_SetupSplit = 0x80A00788; // type:func -EnFloormas_SetupSmallWalk = 0x80A008E8; // type:func -EnFloormas_SetupSmallDecideAction = 0x80A00938; // type:func -EnFloormas_SetupSmallShrink = 0x80A00998; // type:func -EnFloormas_SetupSmallFollowerJumpAtLeader = 0x80A00A70; // type:func -EnFloormas_SetupJumpAtLink = 0x80A00ADC; // type:func -EnFloormas_SetupGrabLink = 0x80A00B48; // type:func -EnFloormas_SetupMerge = 0x80A00D1C; // type:func -EnFloormas_SetupSmallWait = 0x80A00D74; // type:func -EnFloormas_SetupTakeDamage = 0x80A00DF8; // type:func -EnFloormas_SetupRecover = 0x80A00EB4; // type:func -EnFloormas_SetupFreeze = 0x80A00F08; // type:func -EnFloormas_Die = 0x80A01008; // type:func -EnFloormas_BigDecideAction = 0x80A010A4; // type:func -EnFloormas_Stand = 0x80A01168; // type:func -EnFloormas_BigWalk = 0x80A011F4; // type:func -EnFloormas_BigStopWalk = 0x80A01350; // type:func -EnFloormas_Run = 0x80A0138C; // type:func -EnFloormas_Turn = 0x80A01498; // type:func -EnFloormas_Hover = 0x80A0165C; // type:func -EnFloormas_Slide = 0x80A016E0; // type:func -EnFloormas_Charge = 0x80A01820; // type:func -EnFloormas_Land = 0x80A01910; // type:func -EnFloormas_Split = 0x80A01AF8; // type:func -EnFloormas_SmallWalk = 0x80A01B80; // type:func -EnFloormas_SmallDecideAction = 0x80A01C70; // type:func -EnFloormas_SmallShrink = 0x80A01DD8; // type:func -EnFloormas_JumpAtLink = 0x80A01E30; // type:func -EnFloormas_GrabLink = 0x80A01F6C; // type:func -EnFloormas_SmallFollowerJumpAtLeader = 0x80A02288; // type:func -EnFloormas_Merge = 0x80A02498; // type:func -EnFloormas_SmallWait = 0x80A02748; // type:func -EnFloormas_TakeDamage = 0x80A02758; // type:func -EnFloormas_Recover = 0x80A0281C; // type:func -EnFloormas_Freeze = 0x80A02858; // type:func -EnFloormas_ColliderCheck = 0x80A028CC; // type:func -EnFloormas_Update = 0x80A02A7C; // type:func -EnFloormas_OverrideLimbDraw = 0x80A02CE4; // type:func -EnFloormas_PostLimbDraw = 0x80A02D20; // type:func -EnFloormas_Draw = 0x80A02E10; // type:func -EnFloormas_DrawHighlighted = 0x80A02EDC; // type:func -EnFr_OrientUnderwater = 0x80A03470; // type:func -EnFr_Init = 0x80A03584; // type:func -EnFr_DrawIdle = 0x80A0363C; // type:func -EnFr_DrawActive = 0x80A03664; // type:func -EnFr_Update = 0x80A03678; // type:func -EnFr_Destroy = 0x80A03970; // type:func -EnFr_IsDivingIntoWater = 0x80A039A4; // type:func -EnFr_DivingIntoWater = 0x80A03A28; // type:func -EnFr_IsBelowLogSpot = 0x80A03AD4; // type:func -EnFr_IsAboveAndWithin30DistXZ = 0x80A03B30; // type:func -EnFr_DecrementBlinkTimer = 0x80A03BAC; // type:func -EnFr_DecrementBlinkTimerUpdate = 0x80A03BD4; // type:func -EnFr_SetupJumpingOutOfWater = 0x80A03C64; // type:func -EnFr_JumpingOutOfWater = 0x80A03D04; // type:func -EnFr_OrientOnLogSpot = 0x80A03EA4; // type:func -EnFr_ChooseJumpFromLogSpot = 0x80A03F64; // type:func -EnFr_JumpingUp = 0x80A04078; // type:func -EnFr_JumpingBackIntoWater = 0x80A041B8; // type:func -EnFr_SetScaleActive = 0x80A04310; // type:func -EnFr_ButterflyPath = 0x80A04418; // type:func -EnFr_UpdateActive = 0x80A04574; // type:func -EnFr_SetupJumpingUp = 0x80A04658; // type:func -EnFr_Idle = 0x80A046F8; // type:func -EnFr_Activate = 0x80A047D8; // type:func -EnFr_ActivateCheckFrogSong = 0x80A04840; // type:func -func_80A1BE98 = 0x80A048E4; // type:func -EnFr_ListeningToOcarinaNotes = 0x80A0495C; // type:func -EnFr_ChildSong = 0x80A04AA8; // type:func -EnFr_ChildSongFirstTime = 0x80A04BE0; // type:func -EnFr_TalkBeforeFrogSong = 0x80A04C38; // type:func -EnFr_CheckOcarinaInputFrogSong = 0x80A04CA0; // type:func -EnFr_DeactivateButterfly = 0x80A04D9C; // type:func -EnFr_GetNextNoteFrogSong = 0x80A04DE4; // type:func -EnFr_SetupFrogSong = 0x80A04E60; // type:func -EnFr_IsFrogSongComplete = 0x80A04ED4; // type:func -EnFr_OcarinaMistake = 0x80A04F84; // type:func -EnFr_ContinueFrogSong = 0x80A04FE0; // type:func -EnFr_SetupReward = 0x80A05184; // type:func -EnFr_PrintTextBox = 0x80A05200; // type:func -EnFr_TalkBeforeReward = 0x80A05240; // type:func -EnFr_SetReward = 0x80A052A8; // type:func -EnFr_Deactivate = 0x80A053BC; // type:func -EnFr_GiveReward = 0x80A054BC; // type:func -EnFr_SetIdle = 0x80A0551C; // type:func -EnFr_UpdateIdle = 0x80A05570; // type:func -EnFr_OverrideLimbDraw = 0x80A0559C; // type:func -EnFr_PostLimbDraw = 0x80A055C8; // type:func -EnFr_Draw = 0x80A05680; // type:func -EnFu_Init = 0x80A05F00; // type:func -EnFu_Destroy = 0x80A06014; // type:func -func_80A1D94C = 0x80A06040; // type:func -func_80A1DA04 = 0x80A060FC; // type:func -EnFu_WaitChild = 0x80A06198; // type:func -func_80A1DB60 = 0x80A0625C; // type:func -func_80A1DBA0 = 0x80A0629C; // type:func -func_80A1DBD4 = 0x80A062D4; // type:func -EnFu_WaitForPlayback = 0x80A06444; // type:func -EnFu_TeachSong = 0x80A064AC; // type:func -EnFu_WaitAdult = 0x80A06528; // type:func -EnFu_Update = 0x80A06678; // type:func -EnFu_OverrideLimbDraw = 0x80A06820; // type:func -EnFu_PostLimbDraw = 0x80A0697C; // type:func -EnFu_Draw = 0x80A069BC; // type:func -EnFw_DoBounce = 0x80A06C50; // type:func -EnFw_PlayerInRange = 0x80A06D18; // type:func -EnFw_GetPosAdjAroundCircle = 0x80A06E14; // type:func -EnFw_CheckCollider = 0x80A06EE8; // type:func -EnFw_SpawnDust = 0x80A06FA8; // type:func -EnFw_Init = 0x80A071F0; // type:func -EnFw_Destroy = 0x80A072F8; // type:func -EnFw_Bounce = 0x80A07324; // type:func -EnFw_Run = 0x80A07390; // type:func -EnFw_TurnToParentInitPos = 0x80A07964; // type:func -EnFw_JumpToParentInitPos = 0x80A07A58; // type:func -EnFw_Update = 0x80A07B0C; // type:func -EnFw_OverrideLimbDraw = 0x80A07BEC; // type:func -EnFw_PostLimbDraw = 0x80A07C08; // type:func -EnFw_Draw = 0x80A07CA4; // type:func -EnFw_SpawnEffectDust = 0x80A07D2C; // type:func -EnFw_UpdateEffects = 0x80A07DD0; // type:func -EnFw_DrawEffects = 0x80A07EDC; // type:func -EnFz_Init = 0x80A08410; // type:func -EnFz_Destroy = 0x80A08590; // type:func -EnFz_UpdateTargetPos = 0x80A085E0; // type:func -EnFz_ReachedTarget = 0x80A08700; // type:func -EnFz_Damaged = 0x80A08750; // type:func -EnFz_SpawnIceSmokeHiddenState = 0x80A08944; // type:func -EnFz_SpawnIceSmokeGrowingState = 0x80A08950; // type:func -EnFz_SpawnIceSmokeActiveState = 0x80A08A30; // type:func -EnFz_ApplyDamage = 0x80A08AF4; // type:func -EnFz_SetYawTowardsPlayer = 0x80A08D5C; // type:func -EnFz_SetupDisappear = 0x80A08D9C; // type:func -EnFz_Disappear = 0x80A08DCC; // type:func -EnFz_SetupWait = 0x80A08E4C; // type:func -EnFz_Wait = 0x80A08E8C; // type:func -EnFz_SetupAppear = 0x80A08EDC; // type:func -EnFz_Appear = 0x80A08F08; // type:func -EnFz_SetupAimForMove = 0x80A08F98; // type:func -EnFz_AimForMove = 0x80A08FDC; // type:func -EnFz_SetupMoveTowardsPlayer = 0x80A09018; // type:func -EnFz_MoveTowardsPlayer = 0x80A0904C; // type:func -EnFz_SetupAimForFreeze = 0x80A09088; // type:func -EnFz_AimForFreeze = 0x80A090B8; // type:func -EnFz_SetupBlowSmoke = 0x80A090F4; // type:func -EnFz_BlowSmoke = 0x80A0912C; // type:func -EnFz_SetupDespawn = 0x80A09318; // type:func -EnFz_Despawn = 0x80A093B8; // type:func -EnFz_SetupMelt = 0x80A093E8; // type:func -EnFz_Melt = 0x80A0942C; // type:func -EnFz_SetupBlowSmokeStationary = 0x80A094F4; // type:func -EnFz_BlowSmokeStationary = 0x80A09538; // type:func -EnFz_Update = 0x80A09730; // type:func -EnFz_Draw = 0x80A098C0; // type:func -EnFz_SpawnIceSmokeNoFreeze = 0x80A09A7C; // type:func -EnFz_SpawnIceSmokeFreeze = 0x80A09B20; // type:func -EnFz_UpdateIceSmoke = 0x80A09BDC; // type:func -EnFz_DrawEffects = 0x80A09EC8; // type:func -EnGSwitch_Init = 0x80A0A420; // type:func -EnGSwitch_Destroy = 0x80A0A6B8; // type:func -EnGSwitch_Break = 0x80A0A6E4; // type:func -EnGSwitch_WaitForObject = 0x80A0A88C; // type:func -EnGSwitch_SilverRupeeTracker = 0x80A0A924; // type:func -EnGSwitch_SilverRupeeIdle = 0x80A0AA08; // type:func -EnGSwitch_SilverRupeeCollected = 0x80A0AAF0; // type:func -EnGSwitch_GalleryRupee = 0x80A0ABD4; // type:func -EnGSwitch_ArcheryPot = 0x80A0AF74; // type:func -EnGSwitch_Kill = 0x80A0B25C; // type:func -EnGSwitch_Update = 0x80A0B28C; // type:func -EnGSwitch_DrawPot = 0x80A0B3C0; // type:func -EnGSwitch_DrawRupee = 0x80A0B454; // type:func -EnGSwitch_SpawnEffects = 0x80A0B584; // type:func -EnGSwitch_UpdateEffects = 0x80A0B698; // type:func -EnGSwitch_DrawEffects = 0x80A0B858; // type:func -EnGanonMant_Init = 0x80A0BC40; // type:func -EnGanonMant_Destroy = 0x80A0BC5C; // type:func -EnGanonMant_Tear = 0x80A0BC6C; // type:func -EnGanonMant_UpdateStrand = 0x80A0BEC8; // type:func -EnGanonMant_UpdateVertices = 0x80A0C48C; // type:func -EnGanonMant_Update = 0x80A0C6B0; // type:func -EnGanonMant_DrawCloak = 0x80A0C76C; // type:func -EnGanonMant_Draw = 0x80A0C888; // type:func -EnGanonOrgan_Init = 0x80A0FE70; // type:func -EnGanonOrgan_Destroy = 0x80A0FE8C; // type:func -EnGanonOrgan_Update = 0x80A0FE9C; // type:func -EnGanonOrgan_EmptyDList = 0x80A0FEE0; // type:func -func_80A280BC = 0x80A0FF04; // type:func -func_80A28148 = 0x80A0FF7C; // type:func -EnGanonOrgan_Draw = 0x80A0FFEC; // type:func -func_80A2F180 = 0x80A16EB0; // type:func -EnGb_Init = 0x80A16EE0; // type:func -EnGb_Destroy = 0x80A172E0; // type:func -func_80A2F608 = 0x80A1733C; // type:func -func_80A2F760 = 0x80A17494; // type:func -func_80A2F7C0 = 0x80A174F4; // type:func -func_80A2F83C = 0x80A17570; // type:func -func_80A2F94C = 0x80A1768C; // type:func -func_80A2F9C0 = 0x80A17704; // type:func -func_80A2FA50 = 0x80A17798; // type:func -func_80A2FB40 = 0x80A17888; // type:func -func_80A2FBB0 = 0x80A178FC; // type:func -func_80A2FC0C = 0x80A1795C; // type:func -func_80A2FC70 = 0x80A179C4; // type:func -EnGb_Update = 0x80A17AC8; // type:func -EnGb_Draw = 0x80A17C00; // type:func -EnGb_UpdateCagedSouls = 0x80A17D20; // type:func -EnGb_DrawCagedSouls = 0x80A18078; // type:func -EnGe1_Init = 0x80A185E0; // type:func -EnGe1_Destroy = 0x80A188A4; // type:func -EnGe1_SetTalkAction = 0x80A188D0; // type:func -EnGe1_SetAnimationIdle = 0x80A189B0; // type:func -EnGe1_CheckCarpentersFreed = 0x80A18A34; // type:func -EnGe1_KickPlayer = 0x80A18A70; // type:func -EnGe1_SpotPlayer = 0x80A18B50; // type:func -EnGe1_WatchForPlayerFrontOnly = 0x80A18BB0; // type:func -EnGe1_ChooseActionFromTextId = 0x80A18C68; // type:func -EnGe1_SetNormalText = 0x80A18CFC; // type:func -EnGe1_WatchForAndSensePlayer = 0x80A18D2C; // type:func -EnGe1_GetReaction_ValleyFloor = 0x80A18DF8; // type:func -EnGe1_WaitTillOpened_GTGGuard = 0x80A18E4C; // type:func -EnGe1_Open_GTGGuard = 0x80A18E9C; // type:func -EnGe1_SetupOpen_GTGGuard = 0x80A18F4C; // type:func -EnGe1_RefuseEntryTooPoor_GTGGuard = 0x80A1900C; // type:func -EnGe1_OfferOpen_GTGGuard = 0x80A1904C; // type:func -EnGe1_RefuseOpenNoCard_GTGGuard = 0x80A1913C; // type:func -EnGe1_CheckForCard_GTGGuard = 0x80A19180; // type:func -EnGe1_WaitGateOpen_GateOp = 0x80A191E8; // type:func -EnGe1_WaitUntilGateOpened_GateOp = 0x80A1925C; // type:func -EnGe1_OpenGate_GateOp = 0x80A192AC; // type:func -EnGe1_SetupOpenGate_GateOp = 0x80A1935C; // type:func -EnGe1_CheckGate_GateOp = 0x80A19428; // type:func -EnGe1_Talk_GateGuard = 0x80A194A4; // type:func -EnGe1_GetReaction_GateGuard = 0x80A194E8; // type:func -EnGe1_SetupWait_Archery = 0x80A1959C; // type:func -EnGe1_WaitTillItemGiven_Archery = 0x80A195D4; // type:func -EnGe1_BeginGiveItem_Archery = 0x80A196C8; // type:func -EnGe1_TalkWinPrize_Archery = 0x80A19790; // type:func -EnGe1_TalkTooPoor_Archery = 0x80A197F0; // type:func -EnGe1_WaitDoNothing = 0x80A19854; // type:func -EnGe1_BeginGame_Archery = 0x80A19864; // type:func -EnGe1_TalkOfferPlay_Archery = 0x80A19A04; // type:func -EnGe1_TalkNoPrize_Archery = 0x80A19A64; // type:func -EnGe1_TalkAfterGame_Archery = 0x80A19AB0; // type:func -EnGe1_TalkNoHorse_Archery = 0x80A19BB4; // type:func -EnGe1_Wait_Archery = 0x80A19BF8; // type:func -EnGe1_TurnToFacePlayer = 0x80A19C90; // type:func -EnGe1_LookAtPlayer = 0x80A19DA8; // type:func -EnGe1_Update = 0x80A19E84; // type:func -EnGe1_CueUpAnimation = 0x80A19FCC; // type:func -EnGe1_StopFidget = 0x80A1A00C; // type:func -EnGe1_OverrideLimbDraw = 0x80A1A064; // type:func -EnGe1_PostLimbDraw = 0x80A1A1B8; // type:func -EnGe1_Draw = 0x80A1A224; // type:func -EnGe2_ChangeAction = 0x80A1A610; // type:func -EnGe2_Init = 0x80A1A6B8; // type:func -EnGe2_Destroy = 0x80A1A8D0; // type:func -Ge2_DetectPlayerInAction = 0x80A1A8FC; // type:func -Ge2_DetectPlayerInUpdate = 0x80A1A9A8; // type:func -EnGe2_CheckCarpentersFreed = 0x80A1AAD8; // type:func -EnGe2_CaptureClose = 0x80A1AB04; // type:func -EnGe2_CaptureCharge = 0x80A1ABD8; // type:func -EnGe2_CaptureTurn = 0x80A1AD0C; // type:func -EnGe2_KnockedOut = 0x80A1AD84; // type:func -EnGe2_TurnPlayerSpotted = 0x80A1AE7C; // type:func -EnGe2_AboutTurn = 0x80A1AF84; // type:func -EnGe2_Walk = 0x80A1B03C; // type:func -EnGe2_Stand = 0x80A1B104; // type:func -EnGe2_TurnToFacePlayer = 0x80A1B144; // type:func -EnGe2_LookAtPlayer = 0x80A1B25C; // type:func -EnGe2_SetActionAfterTalk = 0x80A1B370; // type:func -EnGe2_WaitLookAtPlayer = 0x80A1B434; // type:func -EnGe2_WaitTillCardGiven = 0x80A1B454; // type:func -EnGe2_GiveCard = 0x80A1B4B8; // type:func -EnGe2_ForceTalk = 0x80A1B54C; // type:func -EnGe2_SetupCapturePlayer = 0x80A1B5D0; // type:func -EnGe2_MaintainColliderAndSetAnimState = 0x80A1B640; // type:func -EnGe2_MoveAndBlink = 0x80A1B6E8; // type:func -EnGe2_UpdateFriendly = 0x80A1B774; // type:func -EnGe2_UpdateAfterTalk = 0x80A1B84C; // type:func -EnGe2_Update = 0x80A1B8A0; // type:func -EnGe2_UpdateStunned = 0x80A1BA88; // type:func -EnGe2_OverrideLimbDraw = 0x80A1BBBC; // type:func -EnGe2_PostLimbDraw = 0x80A1BC04; // type:func -EnGe2_Draw = 0x80A1BC44; // type:func -EnGe3_ChangeAction = 0x80A1BFB0; // type:func -EnGe3_Init = 0x80A1C058; // type:func -EnGe3_Destroy = 0x80A1C160; // type:func -EnGe3_TurnToFacePlayer = 0x80A1C18C; // type:func -EnGe3_LookAtPlayer = 0x80A1C2A4; // type:func -EnGe3_Wait = 0x80A1C3B8; // type:func -EnGe3_WaitLookAtPlayer = 0x80A1C41C; // type:func -EnGe3_WaitTillCardGiven = 0x80A1C43C; // type:func -EnGe3_GiveCard = 0x80A1C4A0; // type:func -EnGe3_ForceTalk = 0x80A1C534; // type:func -EnGe3_UpdateCollision = 0x80A1C5EC; // type:func -EnGe3_MoveAndBlink = 0x80A1C694; // type:func -EnGe3_UpdateWhenNotTalking = 0x80A1C720; // type:func -EnGe3_Update = 0x80A1C7D4; // type:func -EnGe3_OverrideLimbDraw = 0x80A1C820; // type:func -EnGe3_PostLimbDraw = 0x80A1C974; // type:func -EnGe3_Draw = 0x80A1C9D0; // type:func -EnGeldB_SetupAction = 0x80A1CBF0; // type:func -EnGeldB_Init = 0x80A1CBFC; // type:func -EnGeldB_Destroy = 0x80A1CE20; // type:func -EnGeldB_ReactToPlayer = 0x80A1CE88; // type:func -EnGeldB_SetupWait = 0x80A1D260; // type:func -EnGeldB_Wait = 0x80A1D2F4; // type:func -EnGeldB_SetupFlee = 0x80A1D478; // type:func -EnGeldB_Flee = 0x80A1D510; // type:func -EnGeldB_SetupReady = 0x80A1D638; // type:func -EnGeldB_Ready = 0x80A1D6C0; // type:func -EnGeldB_SetupAdvance = 0x80A1D9A4; // type:func -EnGeldB_Advance = 0x80A1DA24; // type:func -EnGeldB_SetupRollForward = 0x80A1DED0; // type:func -EnGeldB_RollForward = 0x80A1DF84; // type:func -EnGeldB_SetupPivot = 0x80A1E0DC; // type:func -EnGeldB_Pivot = 0x80A1E128; // type:func -EnGeldB_SetupCircle = 0x80A1E308; // type:func -EnGeldB_Circle = 0x80A1E3DC; // type:func -EnGeldB_SetupSpinDodge = 0x80A1E9B8; // type:func -EnGeldB_SpinDodge = 0x80A1EB20; // type:func -EnGeldB_SetupSlash = 0x80A1EF70; // type:func -EnGeldB_Slash = 0x80A1EFE0; // type:func -EnGeldB_SetupSpinAttack = 0x80A1F230; // type:func -EnGeldB_SpinAttack = 0x80A1F2C4; // type:func -EnGeldB_SetupRollBack = 0x80A1F678; // type:func -EnGeldB_RollBack = 0x80A1F6F4; // type:func -EnGeldB_SetupStunned = 0x80A1F7F8; // type:func -EnGeldB_Stunned = 0x80A1F8A4; // type:func -EnGeldB_SetupDamaged = 0x80A1F960; // type:func -EnGeldB_Damaged = 0x80A1F9F8; // type:func -EnGeldB_SetupJump = 0x80A1FBA0; // type:func -EnGeldB_Jump = 0x80A1FC58; // type:func -EnGeldB_SetupBlock = 0x80A1FD40; // type:func -EnGeldB_Block = 0x80A1FDF8; // type:func -EnGeldB_SetupSidestep = 0x80A200E4; // type:func -EnGeldB_Sidestep = 0x80A20274; // type:func -EnGeldB_SetupDefeated = 0x80A20994; // type:func -EnGeldB_Defeated = 0x80A20A38; // type:func -EnGeldB_TurnHead = 0x80A20AF4; // type:func -EnGeldB_CollisionCheck = 0x80A20BF4; // type:func -EnGeldB_Update = 0x80A20DC0; // type:func -EnGeldB_OverrideLimbDraw = 0x80A20FAC; // type:func -EnGeldB_PostLimbDraw = 0x80A210F4; // type:func -EnGeldB_Draw = 0x80A2136C; // type:func -EnGeldB_DodgeRanged = 0x80A216DC; // type:func -EnGirlA_SetupAction = 0x80A21FA0; // type:func -EnGirlA_TryChangeShopItem = 0x80A21FAC; // type:func -EnGirlA_InitItem = 0x80A22124; // type:func -EnGirlA_Init = 0x80A221C8; // type:func -EnGirlA_Destroy = 0x80A221FC; // type:func -EnGirlA_CanBuy_Arrows = 0x80A2222C; // type:func -EnGirlA_CanBuy_Bombs = 0x80A222DC; // type:func -EnGirlA_CanBuy_DekuNuts = 0x80A2237C; // type:func -EnGirlA_CanBuy_DekuSticks = 0x80A22434; // type:func -EnGirlA_CanBuy_Fish = 0x80A224EC; // type:func -EnGirlA_CanBuy_RedPotion = 0x80A22564; // type:func -EnGirlA_CanBuy_GreenPotion = 0x80A225DC; // type:func -EnGirlA_CanBuy_BluePotion = 0x80A22654; // type:func -EnGirlA_CanBuy_Longsword = 0x80A226CC; // type:func -EnGirlA_CanBuy_HylianShield = 0x80A22760; // type:func -EnGirlA_CanBuy_DekuShield = 0x80A227E0; // type:func -EnGirlA_CanBuy_GoronTunic = 0x80A22860; // type:func -EnGirlA_CanBuy_ZoraTunic = 0x80A22908; // type:func -EnGirlA_CanBuy_RecoveryHeart = 0x80A229B0; // type:func -EnGirlA_CanBuy_MilkBottle = 0x80A229FC; // type:func -EnGirlA_CanBuy_WeirdEgg = 0x80A22A58; // type:func -EnGirlA_CanBuy_Unk19 = 0x80A22AB4; // type:func -EnGirlA_CanBuy_Unk20 = 0x80A22AC8; // type:func -EnGirlA_CanBuy_Bombchus = 0x80A22ADC; // type:func -EnGirlA_CanBuy_DekuSeeds = 0x80A22B60; // type:func -EnGirlA_CanBuy_SoldOut = 0x80A22C10; // type:func -EnGirlA_CanBuy_BlueFire = 0x80A22C24; // type:func -EnGirlA_CanBuy_Bugs = 0x80A22C9C; // type:func -EnGirlA_CanBuy_Poe = 0x80A22D14; // type:func -EnGirlA_CanBuy_Fairy = 0x80A22D8C; // type:func -EnGirlA_ItemGive_Arrows = 0x80A22E04; // type:func -EnGirlA_ItemGive_Bombs = 0x80A22E4C; // type:func -EnGirlA_ItemGive_DekuNuts = 0x80A22EEC; // type:func -EnGirlA_ItemGive_DekuSticks = 0x80A22F5C; // type:func -EnGirlA_ItemGive_Longsword = 0x80A22F98; // type:func -EnGirlA_ItemGive_HylianShield = 0x80A22FE0; // type:func -EnGirlA_ItemGive_DekuShield = 0x80A2301C; // type:func -EnGirlA_ItemGive_GoronTunic = 0x80A23058; // type:func -EnGirlA_ItemGive_ZoraTunic = 0x80A23094; // type:func -EnGirlA_ItemGive_Health = 0x80A230D0; // type:func -EnGirlA_ItemGive_MilkBottle = 0x80A23110; // type:func -EnGirlA_ItemGive_WeirdEgg = 0x80A2314C; // type:func -EnGirlA_ItemGive_Unk19 = 0x80A23188; // type:func -EnGirlA_ItemGive_Unk20 = 0x80A231B8; // type:func -EnGirlA_ItemGive_DekuSeeds = 0x80A231E8; // type:func -EnGirlA_ItemGive_BottledItem = 0x80A23224; // type:func -EnGirlA_BuyEvent_ShieldDiscount = 0x80A23354; // type:func -EnGirlA_BuyEvent_GoronTunic = 0x80A233F4; // type:func -EnGirlA_BuyEvent_ZoraTunic = 0x80A23424; // type:func -EnGirlA_BuyEvent_ObtainBombchuPack = 0x80A23454; // type:func -EnGirlA_Noop = 0x80A23568; // type:func -EnGirlA_SetItemDescription = 0x80A23578; // type:func -EnGirlA_SetItemOutOfStock = 0x80A236A0; // type:func -EnGirlA_UpdateStockedItem = 0x80A236D4; // type:func -EnGirlA_TrySetMaskItemDescription = 0x80A2374C; // type:func -EnGirlA_WaitForObject = 0x80A237DC; // type:func -EnGirlA_Update2 = 0x80A23B8C; // type:func -EnGirlA_Update = 0x80A23C48; // type:func -func_80A3C498 = 0x80A23C6C; // type:func -EnGirlA_Draw = 0x80A23CB0; // type:func -EnGm_Init = 0x80A248C0; // type:func -EnGm_Destroy = 0x80A24920; // type:func -func_80A3D7C8 = 0x80A2494C; // type:func -func_80A3D838 = 0x80A249BC; // type:func -EnGm_UpdateEye = 0x80A24B5C; // type:func -EnGm_SetTextID = 0x80A24BD4; // type:func -func_80A3DB04 = 0x80A24C88; // type:func -func_80A3DBF4 = 0x80A24D78; // type:func -func_80A3DC44 = 0x80A24DCC; // type:func -func_80A3DD7C = 0x80A24F08; // type:func -EnGm_ProcessChoiceIndex = 0x80A24FA0; // type:func -func_80A3DF00 = 0x80A25090; // type:func -func_80A3DF60 = 0x80A250F4; // type:func -func_80A3DFBC = 0x80A25154; // type:func -EnGm_Update = 0x80A25208; // type:func -func_80A3E090 = 0x80A2522C; // type:func -EnGm_Draw = 0x80A2538C; // type:func -EnGo_SetupAction = 0x80A255F0; // type:func -EnGo_GetTextID = 0x80A255FC; // type:func -EnGo_UpdateTalkState = 0x80A2598C; // type:func -EnGo_UpdateTalking = 0x80A25DAC; // type:func -EnGo_ChangeAnim = 0x80A25E6C; // type:func -EnGo_IsActorSpawned = 0x80A25F1C; // type:func -EnGo_GetPlayerTrackingYOffset = 0x80A2607C; // type:func -func_80A3F060 = 0x80A260F4; // type:func -func_80A3F0E4 = 0x80A26178; // type:func -EnGo_IsCameraModified = 0x80A261F0; // type:func -EnGo_ReverseAnimation = 0x80A262F4; // type:func -EnGo_UpdateShadow = 0x80A2630C; // type:func -EnGo_FollowPath = 0x80A26398; // type:func -EnGo_SetMovedPos = 0x80A26554; // type:func -EnGo_SpawnDust = 0x80A2662C; // type:func -EnGo_IsRollingOnGround = 0x80A26858; // type:func -func_80A3F908 = 0x80A269A4; // type:func -EnGo_Init = 0x80A26BD4; // type:func -EnGo_Destroy = 0x80A26F24; // type:func -func_80A3FEB4 = 0x80A26F64; // type:func -EnGo_StopRolling = 0x80A26FA8; // type:func -func_80A4008C = 0x80A2713C; // type:func -EnGo_GoronLinkRolling = 0x80A271CC; // type:func -EnGo_FireGenericActionFunc = 0x80A272C4; // type:func -EnGo_CurledUp = 0x80A272D4; // type:func -EnGo_WakeUp = 0x80A273D4; // type:func -func_80A40494 = 0x80A27550; // type:func -func_80A405CC = 0x80A27688; // type:func -EnGo_BiggoronActionFunc = 0x80A2779C; // type:func -func_80A408D8 = 0x80A27994; // type:func -func_80A40A54 = 0x80A27B10; // type:func -func_80A40B1C = 0x80A27BD8; // type:func -EnGo_GetItem = 0x80A27C30; // type:func -func_80A40C78 = 0x80A27D38; // type:func -EnGo_Eyedrops = 0x80A27E20; // type:func -func_80A40DCC = 0x80A27E90; // type:func -EnGo_Update = 0x80A27F14; // type:func -EnGo_DrawCurledUp = 0x80A28024; // type:func -EnGo_DrawRolling = 0x80A280F0; // type:func -EnGo_OverrideLimbDraw = 0x80A2821C; // type:func -EnGo_PostLimbDraw = 0x80A28438; // type:func -EnGo_Draw = 0x80A28494; // type:func -EnGo_SpawnEffectDust = 0x80A28634; // type:func -EnGo_UpdateEffects = 0x80A286D8; // type:func -EnGo_DrawEffects = 0x80A287E4; // type:func -EnGo2_SpawnEffectDust = 0x80A29C30; // type:func -EnGo2_UpdateEffects = 0x80A29CD4; // type:func -EnGo2_DrawEffects = 0x80A29DE0; // type:func -EnGo2_SpawnDust = 0x80A2A0D8; // type:func -EnGo2_GetItem = 0x80A2A2F0; // type:func -EnGo2_GetDialogState = 0x80A2A334; // type:func -EnGo2_GoronFireGenericGetTextId = 0x80A2A3B4; // type:func -EnGo2_GetTextIdGoronCityRollingBig = 0x80A2A430; // type:func -EnGo2_UpdateTalkStateGoronCityRollingBig = 0x80A2A4B8; // type:func -EnGo2_GetTextIdGoronDmtBombFlower = 0x80A2A5B0; // type:func -EnGo2_UpdateTalkStateGoronDmtBombFlower = 0x80A2A5EC; // type:func -EnGo2_GetTextIdGoronDmtRollingSmall = 0x80A2A704; // type:func -EnGo2_UpdateTalkStateGoronDmtRollingSmall = 0x80A2A75C; // type:func -EnGo2_GetTextIdGoronDmtDcEntrance = 0x80A2A798; // type:func -EnGo2_UpdateTalkStateGoronDmtDcEntrance = 0x80A2A834; // type:func -EnGo2_GetTextIdGoronCityEntrance = 0x80A2A894; // type:func -EnGo2_UpdateTalkStateGoronCityEntrance = 0x80A2A914; // type:func -EnGo2_GetTextIdGoronCityIsland = 0x80A2A974; // type:func -EnGo2_UpdateTalkStateGoronCityIsland = 0x80A2A9F4; // type:func -EnGo2_GetTextIdGoronCityLowestFloor = 0x80A2AA54; // type:func -EnGo2_UpdateTalkStateGoronCityLowestFloor = 0x80A2AB30; // type:func -EnGo2_GetTextIdGoronCityLink = 0x80A2AB90; // type:func -EnGo2_UpdateTalkStateGoronCityLink = 0x80A2AC6C; // type:func -EnGo2_GetTextIdGoronDmtBiggoron = 0x80A2AE84; // type:func -EnGo2_UpdateTalkStateGoronDmtBiggoron = 0x80A2AF04; // type:func -EnGo2_GetTextIdGoronFireGeneric = 0x80A2B118; // type:func -EnGo2_UpdateTalkStateGoronFireGeneric = 0x80A2B150; // type:func -EnGo2_GetTextIdGoronCityStairwell = 0x80A2B1EC; // type:func -EnGo2_UpdateTalkStateGoronCityStairwell = 0x80A2B23C; // type:func -EnGo2_GetTextIdGoronMarketBazaar = 0x80A2B29C; // type:func -EnGo2_UpdateTalkStateGoronMarketBazaar = 0x80A2B2B0; // type:func -EnGo2_GetTextIdGoronCityLostWoods = 0x80A2B2EC; // type:func -EnGo2_UpdateTalkStateGoronCityLostWoods = 0x80A2B35C; // type:func -EnGo2_GetTextIdGoronDmtFairyHint = 0x80A2B3BC; // type:func -EnGo2_UpdateTalkStateGoronDmtFairyHint = 0x80A2B414; // type:func -EnGo2_GetTextId = 0x80A2B450; // type:func -EnGo2_UpdateTalkState = 0x80A2B594; // type:func -func_80A44790 = 0x80A2B6AC; // type:func -EnGo2_SetColliderDim = 0x80A2B7A8; // type:func -EnGo2_SetShape = 0x80A2B7E4; // type:func -EnGo2_CheckCollision = 0x80A2B85C; // type:func -EnGo2_SwapInitialFrameAnimFrameCount = 0x80A2B9B8; // type:func -func_80A44AB0 = 0x80A2B9D0; // type:func -EnGo2_UpdateWaypoint = 0x80A2BB8C; // type:func -EnGo2_Orient = 0x80A2BC08; // type:func -func_80A44D84 = 0x80A2BCAC; // type:func -EnGo2_IsWakingUp = 0x80A2BCE4; // type:func -EnGo2_IsRollingOnGround = 0x80A2BE14; // type:func -EnGo2_BiggoronSetTextId = 0x80A2BFB0; // type:func -func_80A45288 = 0x80A2C1B0; // type:func -func_80A45360 = 0x80A2C28C; // type:func -EnGo2_RollForward = 0x80A2C398; // type:func -func_80A454CC = 0x80A2C3F8; // type:func -EnGo2_GetTargetXZSpeed = 0x80A2C4A4; // type:func -EnGo2_IsCameraModified = 0x80A2C548; // type:func -EnGo2_DefaultWakingUp = 0x80A2C664; // type:func -EnGo2_WakingUp = 0x80A2C6BC; // type:func -EnGo2_BiggoronWakingUp = 0x80A2C72C; // type:func -EnGo2_SelectGoronWakingUp = 0x80A2C77C; // type:func -EnGo2_EyeMouthTexState = 0x80A2C860; // type:func -EnGo2_SitDownAnimation = 0x80A2C934; // type:func -EnGo2_GetDustData = 0x80A2CA4C; // type:func -EnGo2_RollingAnimation = 0x80A2CAD4; // type:func -EnGo2_WakeUp = 0x80A2CB88; // type:func -EnGo2_GetItemAnimation = 0x80A2CC7C; // type:func -EnGo2_SetupRolling = 0x80A2CCE0; // type:func -EnGo2_StopRolling = 0x80A2CD88; // type:func -EnGo2_IsFreeingGoronInFire = 0x80A2CE48; // type:func -EnGo2_IsGoronDmtBombFlower = 0x80A2CEE0; // type:func -EnGo2_IsGoronRollingBig = 0x80A2CF60; // type:func -EnGo2_IsGoronFireGeneric = 0x80A2CFC0; // type:func -EnGo2_IsGoronLinkReversing = 0x80A2CFFC; // type:func -EnGo2_IsRolling = 0x80A2D058; // type:func -EnGo2_GoronLinkAnimation = 0x80A2D0EC; // type:func -EnGo2_GoronFireCamera = 0x80A2D220; // type:func -EnGo2_GoronFireClearCamera = 0x80A2D320; // type:func -EnGo2_BiggoronAnimation = 0x80A2D360; // type:func -EnGo2_Init = 0x80A2D414; // type:func -EnGo2_Destroy = 0x80A2D8A8; // type:func -EnGo2_CurledUp = 0x80A2D8B8; // type:func -func_80A46B40 = 0x80A2DA8C; // type:func -EnGo2_GoronDmtBombFlowerAnimation = 0x80A2DC24; // type:func -EnGo2_GoronRollingBigContinueRolling = 0x80A2DCA8; // type:func -EnGo2_ContinueRolling = 0x80A2DD08; // type:func -EnGo2_SlowRolling = 0x80A2DDA0; // type:func -EnGo2_GroundRolling = 0x80A2DED8; // type:func -EnGo2_ReverseRolling = 0x80A2DF74; // type:func -EnGo2_SetupGetItem = 0x80A2E03C; // type:func -EnGo2_SetGetItem = 0x80A2E0B0; // type:func -EnGo2_BiggoronEyedrops = 0x80A2E1B8; // type:func -EnGo2_GoronLinkStopRolling = 0x80A2E3EC; // type:func -EnGo2_GoronFireGenericAction = 0x80A2E4DC; // type:func -EnGo2_Update = 0x80A2E808; // type:func -EnGo2_DrawCurledUp = 0x80A2E91C; // type:func -EnGo2_DrawRolling = 0x80A2E9E0; // type:func -EnGo2_OverrideLimbDraw = 0x80A2EB1C; // type:func -EnGo2_PostLimbDraw = 0x80A2ED38; // type:func -EnGo2_Draw = 0x80A2ED94; // type:func -EnGoma_Init = 0x80A2FC70; // type:func -EnGoma_Destroy = 0x80A2FFFC; // type:func -EnGoma_SetupFlee = 0x80A3004C; // type:func -EnGoma_Flee = 0x80A300F0; // type:func -EnGoma_EggFallToGround = 0x80A30190; // type:func -EnGoma_Egg = 0x80A3041C; // type:func -EnGoma_SetupHatch = 0x80A3065C; // type:func -EnGoma_Hatch = 0x80A30724; // type:func -EnGoma_SetupHurt = 0x80A3076C; // type:func -EnGoma_Hurt = 0x80A30858; // type:func -EnGoma_SetupDie = 0x80A308E0; // type:func -EnGoma_Die = 0x80A309A0; // type:func -EnGoma_SetupDead = 0x80A30A44; // type:func -EnGoma_Dead = 0x80A30ABC; // type:func -EnGoma_SetupStand = 0x80A30C2C; // type:func -EnGoma_SetupChasePlayer = 0x80A30CB8; // type:func -EnGoma_SetupPrepareJump = 0x80A30D38; // type:func -EnGoma_PrepareJump = 0x80A30DB4; // type:func -EnGoma_SetupLand = 0x80A30E4C; // type:func -EnGoma_Land = 0x80A30EC4; // type:func -EnGoma_SetupJump = 0x80A30F30; // type:func -EnGoma_Jump = 0x80A30FD8; // type:func -EnGoma_Stand = 0x80A31090; // type:func -EnGoma_ChasePlayer = 0x80A3110C; // type:func -EnGoma_SetupStunned = 0x80A31214; // type:func -EnGoma_Stunned = 0x80A312B0; // type:func -EnGoma_LookAtPlayer = 0x80A313B0; // type:func -EnGoma_UpdateHit = 0x80A3145C; // type:func -EnGoma_UpdateEyeEnvColor = 0x80A3168C; // type:func -EnGoma_SetFloorRot = 0x80A3171C; // type:func -EnGoma_Update = 0x80A31830; // type:func -EnGoma_OverrideLimbDraw = 0x80A31A7C; // type:func -EnGoma_NoBackfaceCullingDlist = 0x80A31BD8; // type:func -EnGoma_Draw = 0x80A31C44; // type:func -EnGoma_Debris = 0x80A320D0; // type:func -EnGoma_SpawnHatchDebris = 0x80A32114; // type:func -EnGoma_BossLimb = 0x80A32278; // type:func -EnGoroiwa_UpdateCollider = 0x80A32920; // type:func -EnGoroiwa_InitCollider = 0x80A3298C; // type:func -EnGoroiwa_UpdateFlags = 0x80A329F4; // type:func -EnGoroiwa_Vec3fNormalize = 0x80A32A18; // type:func -EnGoroiwa_SetSpeed = 0x80A32A9C; // type:func -EnGoroiwa_FaceNextWaypoint = 0x80A32AC4; // type:func -EnGoroiwa_GetPrevWaypointDiff = 0x80A32B9C; // type:func -EnGoroiw_CheckEndOfPath = 0x80A32CF8; // type:func -EnGoroiwa_SetNextWaypoint = 0x80A32DAC; // type:func -EnGoroiwa_ReverseDirection = 0x80A32DDC; // type:func -EnGoroiwa_InitPath = 0x80A32E04; // type:func -EnGoroiwa_TeleportToWaypoint = 0x80A32E44; // type:func -EnGoroiwa_InitRotation = 0x80A32EE8; // type:func -EnGoroiwa_GetAscendDirection = 0x80A32F04; // type:func -EnGoroiwa_SpawnDust = 0x80A32FC8; // type:func -EnGoroiwa_SpawnWaterEffects = 0x80A331B8; // type:func -EnGoroiwa_MoveAndFall = 0x80A332EC; // type:func -EnGoroiwa_Move = 0x80A33420; // type:func -EnGoroiwa_MoveUpToNextWaypoint = 0x80A3364C; // type:func -EnGoroiwa_MoveDownToNextWaypoint = 0x80A3376C; // type:func -EnGoroiwa_UpdateRotation = 0x80A33ACC; // type:func -EnGoroiwa_NextWaypoint = 0x80A33C6C; // type:func -EnGoroiwa_SpawnFragments = 0x80A33CF4; // type:func -EnGoroiwa_Init = 0x80A34010; // type:func -EnGoroiwa_Destroy = 0x80A34140; // type:func -EnGoroiwa_SetupRoll = 0x80A3416C; // type:func -EnGoroiwa_Roll = 0x80A341AC; // type:func -EnGoroiwa_SetupMoveAndFallToGround = 0x80A34430; // type:func -EnGoroiwa_MoveAndFallToGround = 0x80A344A4; // type:func -EnGoroiwa_SetupWait = 0x80A34544; // type:func -EnGoroiwa_Wait = 0x80A345A0; // type:func -EnGoroiwa_SetupMoveUp = 0x80A345E0; // type:func -EnGoroiwa_MoveUp = 0x80A34630; // type:func -EnGoroiwa_SetupMoveDown = 0x80A346F0; // type:func -EnGoroiwa_MoveDown = 0x80A3475C; // type:func -EnGoroiwa_Update = 0x80A34824; // type:func -EnGoroiwa_Draw = 0x80A34984; // type:func -EnGs_Init = 0x80A34CE0; // type:func -EnGs_Destroy = 0x80A34DA4; // type:func -func_80A4E3EC = 0x80A34DB4; // type:func -func_80A4E470 = 0x80A34E3C; // type:func -func_80A4E648 = 0x80A34FFC; // type:func -func_80A4E754 = 0x80A3510C; // type:func -func_80A4E910 = 0x80A352CC; // type:func -func_80A4EA08 = 0x80A353C8; // type:func -func_80A4EB3C = 0x80A354FC; // type:func -func_80A4ED34 = 0x80A356F4; // type:func -func_80A4F13C = 0x80A35B00; // type:func -func_80A4F700 = 0x80A360C4; // type:func -func_80A4F734 = 0x80A360F8; // type:func -func_80A4F77C = 0x80A36140; // type:func -EnGs_Update = 0x80A361BC; // type:func -EnGs_Draw = 0x80A36354; // type:func -EnGuest_Init = 0x80A36B50; // type:func -EnGuest_Destroy = 0x80A36BB0; // type:func -EnGuest_Update = 0x80A36BDC; // type:func -func_80A5046C = 0x80A36D4C; // type:func -func_80A50518 = 0x80A36DF8; // type:func -func_80A5057C = 0x80A36E60; // type:func -func_80A505CC = 0x80A36EB4; // type:func -func_80A50708 = 0x80A36FF4; // type:func -EnGuest_OverrideLimbDraw = 0x80A37060; // type:func -EnGuest_Draw = 0x80A37288; // type:func -EnHata_Init = 0x80A374F0; // type:func -EnHata_Destroy = 0x80A37628; // type:func -EnHata_Update = 0x80A37670; // type:func -EnHata_OverrideLimbDraw = 0x80A3788C; // type:func -EnHata_PostLimbDraw = 0x80A37910; // type:func -EnHata_Draw = 0x80A37928; // type:func -EnHeishi1_Init = 0x80A37A80; // type:func -EnHeishi1_Destroy = 0x80A37C98; // type:func -EnHeishi1_SetupWalk = 0x80A37CA8; // type:func -EnHeishi1_Walk = 0x80A37D5C; // type:func -EnHeishi1_SetupMoveToLink = 0x80A3807C; // type:func -EnHeishi1_MoveToLink = 0x80A38138; // type:func -EnHeishi1_SetupWait = 0x80A38230; // type:func -EnHeishi1_Wait = 0x80A382F8; // type:func -EnHeishi1_SetupTurnTowardLink = 0x80A384B4; // type:func -EnHeishi1_TurnTowardLink = 0x80A38550; // type:func -EnHeishi1_SetupKick = 0x80A385FC; // type:func -EnHeishi1_Kick = 0x80A38690; // type:func -EnHeishi1_SetupWaitNight = 0x80A38764; // type:func -EnHeishi1_WaitNight = 0x80A387F8; // type:func -EnHeishi1_Update = 0x80A38878; // type:func -EnHeishi1_OverrideLimbDraw = 0x80A38B8C; // type:func -EnHeishi1_Draw = 0x80A38BD0; // type:func -EnHeishi2_Init = 0x80A38F90; // type:func -EnHeishi2_Destroy = 0x80A39210; // type:func -EnHeishi2_DoNothing1 = 0x80A39254; // type:func -EnHeishi_DoNothing2 = 0x80A39264; // type:func -func_80A531E4 = 0x80A39274; // type:func -func_80A53278 = 0x80A39308; // type:func -func_80A5344C = 0x80A39488; // type:func -func_80A53538 = 0x80A39574; // type:func -func_80A535BC = 0x80A395FC; // type:func -func_80A53638 = 0x80A39678; // type:func -func_80A5372C = 0x80A39764; // type:func -func_80A53850 = 0x80A39888; // type:func -func_80A53908 = 0x80A39940; // type:func -func_80A5399C = 0x80A399D4; // type:func -func_80A53AD4 = 0x80A39AF8; // type:func -func_80A53C0C = 0x80A39C34; // type:func -func_80A53C90 = 0x80A39CBC; // type:func -func_80A53D0C = 0x80A39D38; // type:func -func_80A53DF8 = 0x80A39E1C; // type:func -func_80A53F30 = 0x80A39F54; // type:func -func_80A54038 = 0x80A3A05C; // type:func -func_80A540C0 = 0x80A3A0E8; // type:func -func_80A541FC = 0x80A3A224; // type:func -func_80A5427C = 0x80A3A2A8; // type:func -func_80A54320 = 0x80A3A34C; // type:func -func_80A543A0 = 0x80A3A3CC; // type:func -func_80A544AC = 0x80A3A4D8; // type:func -func_80A5455C = 0x80A3A588; // type:func -func_80A546DC = 0x80A3A6FC; // type:func -func_80A5475C = 0x80A3A77C; // type:func -func_80A54954 = 0x80A3A974; // type:func -func_80A549E8 = 0x80A3AA08; // type:func -EnHeishi2_Update = 0x80A3AA98; // type:func -EnHeishi2_OverrideLimbDraw = 0x80A3ABE4; // type:func -EnHeishi2_PostLimbDraw = 0x80A3AC5C; // type:func -EnHeishi2_DrawKingGuard = 0x80A3AC94; // type:func -EnHeishi2_Draw = 0x80A3AD08; // type:func -EnHeishi3_Init = 0x80A3B190; // type:func -EnHeishi3_Destroy = 0x80A3B2BC; // type:func -EnHeishi3_SetupGuardType = 0x80A3B2E8; // type:func -EnHeishi3_StandSentinelInGrounds = 0x80A3B398; // type:func -EnHeishi3_StandSentinelInCastle = 0x80A3B4F4; // type:func -EnHeishi3_CatchStart = 0x80A3B664; // type:func -func_80A55BD4 = 0x80A3B70C; // type:func -EnHeishi3_ResetAnimationToIdle = 0x80A3B7A4; // type:func -func_80A55D00 = 0x80A3B838; // type:func -EnHeishi3_Update = 0x80A3B8E8; // type:func -EnHeishi3_OverrideLimbDraw = 0x80A3B9C8; // type:func -EnHeishi3_Draw = 0x80A3BA30; // type:func -EnHeishi4_Init = 0x80A3BB60; // type:func -EnHeishi4_Destroy = 0x80A3BD40; // type:func -func_80A56328 = 0x80A3BD6C; // type:func -func_80A563BC = 0x80A3BE00; // type:func -func_80A56544 = 0x80A3BF88; // type:func -func_80A56614 = 0x80A3C04C; // type:func -func_80A5673C = 0x80A3C174; // type:func -func_80A56874 = 0x80A3C288; // type:func -func_80A56900 = 0x80A3C314; // type:func -func_80A56994 = 0x80A3C3A8; // type:func -func_80A56A50 = 0x80A3C464; // type:func -func_80A56ACC = 0x80A3C4E0; // type:func -func_80A56B40 = 0x80A3C554; // type:func -EnHeishi4_Update = 0x80A3C6C8; // type:func -EnHeishi_OverrideLimbDraw = 0x80A3C82C; // type:func -EnHeishi4_Draw = 0x80A3C894; // type:func -EnHintnuts_Init = 0x80A3CA60; // type:func -EnHintnuts_Destroy = 0x80A3CC00; // type:func -EnHintnuts_HitByScrubProjectile1 = 0x80A3CC3C; // type:func -EnHintnuts_SetupWait = 0x80A3CCC0; // type:func -EnHintnuts_SetupLookAround = 0x80A3CD40; // type:func -EnHintnuts_SetupThrowScrubProjectile = 0x80A3CD88; // type:func -EnHintnuts_SetupStand = 0x80A3CDC8; // type:func -EnHintnuts_SetupBurrow = 0x80A3CE30; // type:func -EnHintnuts_HitByScrubProjectile2 = 0x80A3CE80; // type:func -EnHintnuts_SetupRun = 0x80A3CF70; // type:func -EnHintnuts_SetupTalk = 0x80A3CFB8; // type:func -EnHintnuts_SetupLeave = 0x80A3D004; // type:func -EnHintnuts_SetupFreeze = 0x80A3D0C4; // type:func -EnHintnuts_Wait = 0x80A3D170; // type:func -EnHintnuts_LookAround = 0x80A3D3D4; // type:func -EnHintnuts_Stand = 0x80A3D458; // type:func -EnHintnuts_ThrowNut = 0x80A3D51C; // type:func -EnHintnuts_Burrow = 0x80A3D658; // type:func -EnHintnuts_BeginRun = 0x80A3D76C; // type:func -EnHintnuts_BeginFreeze = 0x80A3D7D0; // type:func -EnHintnuts_CheckProximity = 0x80A3D80C; // type:func -EnHintnuts_Run = 0x80A3D8A0; // type:func -EnHintnuts_Talk = 0x80A3DB30; // type:func -EnHintnuts_Leave = 0x80A3DB9C; // type:func -EnHintnuts_Freeze = 0x80A3DD58; // type:func -EnHintnuts_ColliderCheck = 0x80A3DE84; // type:func -EnHintnuts_Update = 0x80A3DF38; // type:func -EnHintnuts_OverrideLimbDraw = 0x80A3E0C0; // type:func -EnHintnuts_Draw = 0x80A3E1F4; // type:func -EnHoll_SetupAction = 0x80A3E490; // type:func -EnHoll_IsKokiriLayer8 = 0x80A3E49C; // type:func -EnHoll_ChooseAction = 0x80A3E4CC; // type:func -EnHoll_Init = 0x80A3E534; // type:func -EnHoll_Destroy = 0x80A3E570; // type:func -EnHoll_SwapRooms = 0x80A3E5A0; // type:func -EnHoll_HorizontalVisibleNarrow = 0x80A3E65C; // type:func -EnHoll_HorizontalInvisible = 0x80A3E89C; // type:func -EnHoll_VerticalDownBgCoverLarge = 0x80A3EA4C; // type:func -EnHoll_VerticalBgCover = 0x80A3EC38; // type:func -EnHoll_VerticalInvisible = 0x80A3EDB8; // type:func -EnHoll_HorizontalBgCoverSwitchFlag = 0x80A3EEB0; // type:func -EnHoll_WaitRoomLoaded = 0x80A3F0C0; // type:func -EnHoll_Update = 0x80A3F138; // type:func -EnHoll_Draw = 0x80A3F15C; // type:func -EnHonotrap_FlameCollisionCheck = 0x80A3F460; // type:func -EnHonotrap_GetNormal = 0x80A3F4F4; // type:func -EnHonotrap_InitEye = 0x80A3F588; // type:func -EnHonotrap_InitFlame = 0x80A3F724; // type:func -EnHonotrap_Init = 0x80A3F864; // type:func -EnHonotrap_Destroy = 0x80A3F8BC; // type:func -EnHonotrap_SetupEyeIdle = 0x80A3F908; // type:func -EnHonotrap_EyeIdle = 0x80A3F924; // type:func -EnHonotrap_SetupEyeOpen = 0x80A3F9DC; // type:func -EnHonotrap_EyeOpen = 0x80A3FA30; // type:func -EnHonotrap_SetupEyeAttack = 0x80A3FB00; // type:func -EnHonotrap_EyeAttack = 0x80A3FB18; // type:func -EnHonotrap_SetupEyeClose = 0x80A3FB48; // type:func -EnHonotrap_EyeClose = 0x80A3FB5C; // type:func -EnHonotrap_SetupFlameGrow = 0x80A3FBA8; // type:func -EnHonotrap_FlameGrow = 0x80A3FBBC; // type:func -EnHonotrap_SetupFlameDrop = 0x80A3FC50; // type:func -EnHonotrap_FlameDrop = 0x80A3FCB8; // type:func -EnHonotrap_SetupFlameMove = 0x80A3FDFC; // type:func -EnHonotrap_FlameMove = 0x80A3FE88; // type:func -EnHonotrap_SetupFlameChase = 0x80A40054; // type:func -EnHonotrap_FlameChase = 0x80A40094; // type:func -EnHonotrap_SetupFlameVanish = 0x80A40248; // type:func -EnHonotrap_FlameVanish = 0x80A4025C; // type:func -EnHonotrap_Update = 0x80A402EC; // type:func -EnHonotrap_DrawEye = 0x80A40434; // type:func -EnHonotrap_DrawFlame = 0x80A40524; // type:func -EnHonotrap_Draw = 0x80A406BC; // type:func -EnHorse_BgCheckBridgeJumpPoint = 0x80A409C0; // type:func -EnHorse_CheckBridgeJumps = 0x80A40B20; // type:func -EnHorse_RaceWaypointPos = 0x80A40C60; // type:func -EnHorse_RotateToPoint = 0x80A40CB4; // type:func -EnHorse_UpdateIngoRaceInfo = 0x80A40CF0; // type:func -EnHorse_PlayWalkingSfx = 0x80A410A4; // type:func -EnHorse_PlayTrottingSfx = 0x80A41160; // type:func -EnHorse_PlayGallopingSfx = 0x80A411A8; // type:func -EnHorse_SlopeSpeedMultiplier = 0x80A411F0; // type:func -func_80A5BB90 = 0x80A41270; // type:func -func_80A5BBBC = 0x80A412A0; // type:func -EnHorse_IdleAnimSounds = 0x80A41350; // type:func -EnHorse_Spawn = 0x80A4147C; // type:func -EnHorse_ResetCutscene = 0x80A416C0; // type:func -EnHorse_ResetRace = 0x80A416D8; // type:func -EnHorse_PlayerCanMove = 0x80A416E8; // type:func -EnHorse_ResetHorsebackArchery = 0x80A417A4; // type:func -EnHorse_ClearDustFlags = 0x80A417BC; // type:func -EnHorse_Init = 0x80A417C8; // type:func -EnHorse_Destroy = 0x80A41EF8; // type:func -EnHorse_RotateToPlayer = 0x80A41F68; // type:func -EnHorse_Freeze = 0x80A41FD8; // type:func -EnHorse_Frozen = 0x80A42058; // type:func -EnHorse_UpdateSpeed = 0x80A421C8; // type:func -EnHorse_StartMountedIdleResetAnim = 0x80A4260C; // type:func -EnHorse_StartMountedIdle = 0x80A42648; // type:func -EnHorse_MountedIdle = 0x80A42784; // type:func -EnHorse_MountedIdleAnim = 0x80A42884; // type:func -EnHorse_MountedIdleWhinney = 0x80A428A8; // type:func -EnHorse_MountedIdleWhinneying = 0x80A429A4; // type:func -EnHorse_StartTurning = 0x80A42AA4; // type:func -EnHorse_MountedTurn = 0x80A42B4C; // type:func -EnHorse_StartWalkingFromIdle = 0x80A42D10; // type:func -EnHorse_StartWalkingInterruptable = 0x80A42D60; // type:func -EnHorse_StartWalking = 0x80A42D84; // type:func -EnHorse_MountedWalkingReset = 0x80A42E30; // type:func -EnHorse_MountedWalk = 0x80A42E84; // type:func -EnHorse_StartTrotting = 0x80A43154; // type:func -EnHorse_MountedTrotReset = 0x80A431F8; // type:func -EnHorse_MountedTrot = 0x80A43244; // type:func -EnHorse_StartGallopingInterruptable = 0x80A4337C; // type:func -EnHorse_StartGalloping = 0x80A433A0; // type:func -EnHorse_MountedGallopReset = 0x80A43448; // type:func -EnHorse_JumpLanding = 0x80A434A0; // type:func -EnHorse_MountedGallop = 0x80A43524; // type:func -EnHorse_StartRearing = 0x80A436F8; // type:func -EnHorse_MountedRearing = 0x80A4381C; // type:func -EnHorse_StartBraking = 0x80A43998; // type:func -EnHorse_Stopping = 0x80A43A88; // type:func -EnHorse_StartReversingInterruptable = 0x80A43C74; // type:func -EnHorse_StartReversing = 0x80A43C98; // type:func -EnHorse_Reverse = 0x80A43D3C; // type:func -EnHorse_LowJumpInit = 0x80A440EC; // type:func -EnHorse_StartLowJump = 0x80A44110; // type:func -EnHorse_Stub1 = 0x80A44240; // type:func -EnHorse_LowJump = 0x80A4424C; // type:func -EnHorse_HighJumpInit = 0x80A44410; // type:func -EnHorse_StartHighJump = 0x80A44434; // type:func -EnHorse_Stub2 = 0x80A44570; // type:func -EnHorse_HighJump = 0x80A4457C; // type:func -EnHorse_InitInactive = 0x80A44740; // type:func -EnHorse_Inactive = 0x80A44790; // type:func -EnHorse_PlayIdleAnimation = 0x80A448BC; // type:func -EnHorse_ChangeIdleAnimation = 0x80A44A8C; // type:func -EnHorse_ResetIdleAnimation = 0x80A44AB4; // type:func -EnHorse_StartIdleRidable = 0x80A44AE8; // type:func -EnHorse_Idle = 0x80A44B1C; // type:func -EnHorse_StartMovingAnimation = 0x80A44D04; // type:func -EnHorse_SetFollowAnimation = 0x80A44E6C; // type:func -EnHorse_FollowPlayer = 0x80A44FA0; // type:func -EnHorse_InitIngoHorse = 0x80A453C4; // type:func -EnHorse_SetIngoAnimation = 0x80A45448; // type:func -EnHorse_UpdateIngoHorseAnim = 0x80A454EC; // type:func -EnHorse_UpdateIngoRace = 0x80A45800; // type:func -EnHorse_CsMoveInit = 0x80A459B0; // type:func -EnHorse_CsMoveToPoint = 0x80A45A1C; // type:func -EnHorse_CsSetAnimHighJump = 0x80A45B6C; // type:func -EnHorse_CsPlayHighJumpAnim = 0x80A45B90; // type:func -EnHorse_CsJumpInit = 0x80A45CC4; // type:func -EnHorse_CsJump = 0x80A45CFC; // type:func -EnHorse_CsRearingInit = 0x80A45F54; // type:func -EnHorse_CsRearing = 0x80A46074; // type:func -EnHorse_WarpMoveInit = 0x80A4621C; // type:func -EnHorse_CsWarpMoveToPoint = 0x80A46304; // type:func -EnHorse_CsWarpRearingInit = 0x80A46454; // type:func -EnHorse_CsWarpRearing = 0x80A465DC; // type:func -EnHorse_InitCutscene = 0x80A46784; // type:func -EnHorse_GetCutsceneFunctionIndex = 0x80A467A8; // type:func -EnHorse_CutsceneUpdate = 0x80A467F8; // type:func -EnHorse_UpdateHbaRaceInfo = 0x80A46950; // type:func -EnHorse_InitHorsebackArchery = 0x80A46B40; // type:func -EnHorse_UpdateHbaAnim = 0x80A46B74; // type:func -EnHorse_UpdateHorsebackArchery = 0x80A46EAC; // type:func -EnHorse_InitFleePlayer = 0x80A47138; // type:func -EnHorse_FleePlayer = 0x80A47160; // type:func -EnHorse_BridgeJumpInit = 0x80A479B4; // type:func -EnHorse_StartBridgeJump = 0x80A47BEC; // type:func -EnHorse_BridgeJumpMove = 0x80A47C9C; // type:func -EnHorse_CheckBridgeJumpLanding = 0x80A47DF8; // type:func -EnHorse_BridgeJump = 0x80A47EE4; // type:func -EnHorse_Vec3fOffset = 0x80A47F28; // type:func -EnHorse_CalcFloorHeight = 0x80A47FA4; // type:func -EnHorse_ObstructMovement = 0x80A480E4; // type:func -EnHorse_CheckFloors = 0x80A4820C; // type:func -EnHorse_MountDismount = 0x80A4878C; // type:func -EnHorse_StickDirection = 0x80A48890; // type:func -EnHorse_UpdateStick = 0x80A4891C; // type:func -EnHorse_ResolveCollision = 0x80A4895C; // type:func -EnHorse_BgCheckSlowMoving = 0x80A48AB4; // type:func -EnHorse_UpdateBgCheckInfo = 0x80A48BF4; // type:func -EnHorse_CheckBoost = 0x80A49700; // type:func -EnHorse_RegenBoost = 0x80A498AC; // type:func -EnHorse_UpdatePlayerDir = 0x80A49AD8; // type:func -EnHorse_TiltBody = 0x80A49BE4; // type:func -EnHorse_UpdateConveyors = 0x80A49CE0; // type:func -EnHorse_RandInt = 0x80A49DE8; // type:func -EnHorse_Update = 0x80A49E1C; // type:func -EnHorse_PlayerDirToMountSide = 0x80A4A648; // type:func -EnHorse_MountSideCheck = 0x80A4A688; // type:func -EnHorse_GetMountSide = 0x80A4A78C; // type:func -EnHorse_RandomOffset = 0x80A4A7E4; // type:func -EnHorse_PostDraw = 0x80A4A880; // type:func -EnHorse_OverrideLimbDraw = 0x80A4B378; // type:func -EnHorse_Draw = 0x80A4B478; // type:func -EnHorseGameCheck_InitIngoRace = 0x80A4CC20; // type:func -EnHorseGameCheck_DestroyIngoRace = 0x80A4CCDC; // type:func -EnHorseGameCheck_FinishIngoRace = 0x80A4CCF0; // type:func -EnHorseGameCheck_UpdateIngoRace = 0x80A4CE3C; // type:func -EnHorseGameCheck_InitGerudoArchery = 0x80A4D2B4; // type:func -EnHorseGameCheck_DestroyGerudoArchery = 0x80A4D2D4; // type:func -EnHorseGameCheck_UpdateGerudoArchery = 0x80A4D2E8; // type:func -EnHorseGameCheck_InitType3 = 0x80A4D330; // type:func -EnHorseGameCheck_DestroyType3 = 0x80A4D34C; // type:func -EnHorseGameCheck_UpdateType3 = 0x80A4D360; // type:func -EnHorseGameCheck_InitMalonRace = 0x80A4D374; // type:func -EnHorseGameCheck_DestroyMalonRace = 0x80A4D3C4; // type:func -EnHorseGameCheck_FinishMalonRace = 0x80A4D3D8; // type:func -EnHorseGameCheck_UpdateMalonRace = 0x80A4D4CC; // type:func -EnHorseGameCheck_Init = 0x80A4D9E4; // type:func -EnHorseGameCheck_Destroy = 0x80A4DA68; // type:func -EnHorseGameCheck_Update = 0x80A4DAA4; // type:func -EnHorseGameCheck_Draw = 0x80A4DAE0; // type:func -func_80A68660 = 0x80A4DCF0; // type:func -func_80A686A8 = 0x80A4DD3C; // type:func -func_80A68870 = 0x80A4DF04; // type:func -EnHorseGanon_Init = 0x80A4DFC0; // type:func -EnHorseGanon_Destroy = 0x80A4E10C; // type:func -func_80A68AC4 = 0x80A4E15C; // type:func -func_80A68AF0 = 0x80A4E18C; // type:func -func_80A68B20 = 0x80A4E1C0; // type:func -func_80A68DB0 = 0x80A4E450; // type:func -func_80A68E14 = 0x80A4E4B4; // type:func -EnHorseGanon_Update = 0x80A4E578; // type:func -EnHorseGanon_PostDraw = 0x80A4E64C; // type:func -EnHorseGanon_Draw = 0x80A4E7D8; // type:func -func_80A693D0 = 0x80A4EA70; // type:func -func_80A6948C = 0x80A4EB2C; // type:func -func_80A695A4 = 0x80A4EC44; // type:func -EnHorseLinkChild_Init = 0x80A4ED0C; // type:func -EnHorseLinkChild_Destroy = 0x80A4EEE4; // type:func -func_80A6988C = 0x80A4EF34; // type:func -func_80A698F4 = 0x80A4EF98; // type:func -func_80A6993C = 0x80A4EFE0; // type:func -func_80A699FC = 0x80A4F0A0; // type:func -func_80A69B7C = 0x80A4F228; // type:func -func_80A69C18 = 0x80A4F2C8; // type:func -func_80A69EC0 = 0x80A4F570; // type:func -func_80A69F5C = 0x80A4F610; // type:func -func_80A6A068 = 0x80A4F71C; // type:func -func_80A6A4DC = 0x80A4FB98; // type:func -func_80A6A5A4 = 0x80A4FC60; // type:func -func_80A6A724 = 0x80A4FDE0; // type:func -func_80A6A7D0 = 0x80A4FE90; // type:func -EnHorseLinkChild_Update = 0x80A5016C; // type:func -EnHorseLinkChild_PostDraw = 0x80A502C4; // type:func -EnHorseLinkChild_OverrideLimbDraw = 0x80A50450; // type:func -EnHorseLinkChild_Draw = 0x80A504D8; // type:func -func_80A6B250 = 0x80A50870; // type:func -func_80A6B30C = 0x80A5092C; // type:func -EnHorseNormal_Init = 0x80A509F4; // type:func -EnHorseNormal_Destroy = 0x80A50EE4; // type:func -func_80A6B91C = 0x80A50F44; // type:func -EnHorseNormal_FollowPath = 0x80A50FFC; // type:func -EnHorseNormal_NextAnimation = 0x80A511D8; // type:func -EnHorseNormal_CycleAnimations = 0x80A5122C; // type:func -func_80A6BC48 = 0x80A51274; // type:func -func_80A6BCEC = 0x80A5131C; // type:func -func_80A6BD7C = 0x80A513AC; // type:func -EnHorseNormal_Wander = 0x80A514A0; // type:func -func_80A6C4CC = 0x80A51B04; // type:func -EnHorseNormal_Wait = 0x80A51BAC; // type:func -func_80A6C6B0 = 0x80A51CEC; // type:func -EnHorseNormal_WaitClone = 0x80A51DA0; // type:func -func_80A6C8E0 = 0x80A51F24; // type:func -EnHorseNormal_Update = 0x80A51FE8; // type:func -EnHorseNormal_PostDraw = 0x80A52144; // type:func -func_80A6CC88 = 0x80A522D0; // type:func -EnHorseNormal_Draw = 0x80A524B8; // type:func -EnHorseZelda_GetFieldPosition = 0x80A52E90; // type:func -EnHorseZelda_Move = 0x80A52EDC; // type:func -EnHorseZelda_Init = 0x80A530A4; // type:func -EnHorseZelda_Destroy = 0x80A531F4; // type:func -EnHorseZelda_SetupStop = 0x80A53244; // type:func -EnHorseZelda_Stop = 0x80A53294; // type:func -EnHorseZelda_Spur = 0x80A532DC; // type:func -EnHorseZelda_Gallop = 0x80A533C4; // type:func -EnHorseZelda_SetRotate = 0x80A53404; // type:func -EnHorseZelda_Update = 0x80A534C8; // type:func -EnHorseZelda_PostDraw = 0x80A535A4; // type:func -EnHorseZelda_Draw = 0x80A53730; // type:func -func_80A6E3A0 = 0x80A53980; // type:func -EnHs_Init = 0x80A5398C; // type:func -EnHs_Destroy = 0x80A53AD0; // type:func -func_80A6E53C = 0x80A53AFC; // type:func -func_80A6E5EC = 0x80A53BB0; // type:func -func_80A6E630 = 0x80A53BF4; // type:func -func_80A6E6B0 = 0x80A53C74; // type:func -func_80A6E6D8 = 0x80A53C9C; // type:func -func_80A6E70C = 0x80A53CD4; // type:func -func_80A6E740 = 0x80A53D0C; // type:func -func_80A6E7BC = 0x80A53D8C; // type:func -func_80A6E8CC = 0x80A53E9C; // type:func -func_80A6E9AC = 0x80A53F78; // type:func -EnHs_Update = 0x80A540C0; // type:func -EnHs_OverrideLimbDraw = 0x80A5422C; // type:func -EnHs_PostLimbDraw = 0x80A542E8; // type:func -EnHs_Draw = 0x80A54328; // type:func -EnHs2_Init = 0x80A54520; // type:func -EnHs2_Destroy = 0x80A54600; // type:func -func_80A6F0B4 = 0x80A5462C; // type:func -func_80A6F164 = 0x80A546E0; // type:func -func_80A6F1A4 = 0x80A5471C; // type:func -EnHs2_Update = 0x80A54768; // type:func -EnHs2_OverrideLimbDraw = 0x80A548D4; // type:func -EnHs2_PostLimbDraw = 0x80A5495C; // type:func -EnHs2_Draw = 0x80A5499C; // type:func -EnHy_FindSkelAndHeadObjects = 0x80A54B00; // type:func -EnHy_AreSkelAndHeadObjectsLoaded = 0x80A54C14; // type:func -EnHy_FindOsAnimeObject = 0x80A54C9C; // type:func -EnHy_IsOsAnimeObjectLoaded = 0x80A54CEC; // type:func -func_80A6F7CC = 0x80A54D2C; // type:func -EnHy_GetTextId = 0x80A54D70; // type:func -EnHy_UpdateTalkState = 0x80A555B8; // type:func -EnHy_UpdateEyes = 0x80A55B04; // type:func -EnHy_InitCollider = 0x80A55BC0; // type:func -EnHy_InitSetProperties = 0x80A55BFC; // type:func -EnHy_UpdateCollider = 0x80A55C94; // type:func -func_80A70834 = 0x80A55D98; // type:func -func_80A70978 = 0x80A55EE0; // type:func -EnHy_ShouldSpawn = 0x80A56050; // type:func -EnHy_Init = 0x80A562EC; // type:func -EnHy_Destroy = 0x80A5637C; // type:func -EnHy_InitImpl = 0x80A563A8; // type:func -func_80A710F8 = 0x80A56674; // type:func -func_80A711B4 = 0x80A56730; // type:func -func_80A7127C = 0x80A567FC; // type:func -EnHy_DoNothing = 0x80A56834; // type:func -func_80A712C0 = 0x80A56844; // type:func -func_80A7134C = 0x80A568D0; // type:func -func_80A714C4 = 0x80A56A4C; // type:func -func_80A71530 = 0x80A56ABC; // type:func -EnHy_Update = 0x80A56B6C; // type:func -EnHy_OverrideLimbDraw = 0x80A56C4C; // type:func -EnHy_PostLimbDraw = 0x80A56FB8; // type:func -EnHy_SetEnvColor = 0x80A570C4; // type:func -EnHy_Draw = 0x80A57130; // type:func -EnIceHono_XZDistanceSquared = 0x80A58440; // type:func -EnIceHono_InitCapturableFlame = 0x80A58470; // type:func -EnIceHono_InitDroppedFlame = 0x80A58514; // type:func -EnIceHono_InitSmallFlame = 0x80A5861C; // type:func -EnIceHono_Init = 0x80A58684; // type:func -EnIceHono_Destroy = 0x80A587E4; // type:func -EnIceHono_InBottleRange = 0x80A5883C; // type:func -EnIceHono_SetupActionCapturableFlame = 0x80A5892C; // type:func -EnIceHono_CapturableFlame = 0x80A58954; // type:func -EnIceHono_SetupActionDroppedFlame = 0x80A58A04; // type:func -EnIceHono_DropFlame = 0x80A58A28; // type:func -EnIceHono_SetupActionSpreadFlames = 0x80A58BE8; // type:func -EnIceHono_SpreadFlames = 0x80A58C0C; // type:func -EnIceHono_SetupActionSmallFlame = 0x80A58E68; // type:func -EnIceHono_SmallFlameMove = 0x80A58F3C; // type:func -EnIceHono_Update = 0x80A59094; // type:func -EnIceHono_Draw = 0x80A59228; // type:func -EnIk_Destroy = 0x80A59630; // type:func -EnIk_SetupAction = 0x80A596B0; // type:func -EnIk_InitImpl = 0x80A596BC; // type:func -EnIk_HandleBlocking = 0x80A59908; // type:func -EnIk_FindBreakableProp = 0x80A59998; // type:func -EnIk_SetupStandUp = 0x80A59A38; // type:func -EnIk_StandUp = 0x80A59AE4; // type:func -EnIk_SetupIdle = 0x80A59BC4; // type:func -EnIk_Idle = 0x80A59C54; // type:func -EnIk_SetupWalkOrRun = 0x80A59DD4; // type:func -EnIk_WalkOrRun = 0x80A59ECC; // type:func -EnIk_SetupVerticalAttack = 0x80A5A154; // type:func -EnIk_VerticalAttack = 0x80A5A1E4; // type:func -EnIk_SetupPullOutAxe = 0x80A5A398; // type:func -EnIk_PullOutAxe = 0x80A5A438; // type:func -EnIk_SetupDoubleHorizontalAttack = 0x80A5A4F4; // type:func -EnIk_DoubleHorizontalAttack = 0x80A5A58C; // type:func -EnIk_SetupRecoverFromHorizontalAttack = 0x80A5A6FC; // type:func -EnIk_RecoverFromHorizontalAttack = 0x80A5A788; // type:func -EnIk_SetupSingleHorizontalAttack = 0x80A5A7D0; // type:func -EnIk_SingleHorizontalAttack = 0x80A5A860; // type:func -EnIk_SetupStopAndBlock = 0x80A5A920; // type:func -EnIk_StopAndBlock = 0x80A5A9AC; // type:func -EnIk_SetupReactToAttack = 0x80A5AAC0; // type:func -EnIk_ReactToAttack = 0x80A5ABE0; // type:func -EnIk_SetupDie = 0x80A5ACBC; // type:func -EnIk_Die = 0x80A5AD68; // type:func -EnIk_UpdateDamage = 0x80A5AF64; // type:func -EnIk_UpdateEnemy = 0x80A5B2D0; // type:func -EnIk_SetPrimEnvColors = 0x80A5B4E8; // type:func -EnIk_OverrideLimbDrawEnemy = 0x80A5B5A0; // type:func -EnIk_PostLimbDrawEnemy = 0x80A5B660; // type:func -EnIk_DrawEnemy = 0x80A5BA74; // type:func -EnIk_StartMinibossBgm = 0x80A5BEAC; // type:func -EnIk_UpdateAction2Sfx = 0x80A5BECC; // type:func -EnIk_PlayAxeSpawnSfx = 0x80A5C098; // type:func -EnIk_SpawnAxeSmoke = 0x80A5C0E8; // type:func -EnIk_UpdateBgCheckInfo = 0x80A5C2F4; // type:func -EnIk_UpdateSkelAnime = 0x80A5C33C; // type:func -EnIk_GetCue = 0x80A5C360; // type:func -EnIk_SetStartPosRotFromCue = 0x80A5C388; // type:func -EnIk_GetAnimCurFrame = 0x80A5C408; // type:func -EnIk_SetupCsAction0 = 0x80A5C414; // type:func -EnIk_SetupCsAction1 = 0x80A5C428; // type:func -EnIk_SetupCsAction2 = 0x80A5C4B4; // type:func -EnIk_HandleEnemyChange = 0x80A5C534; // type:func -EnIk_PlayArmorFallSfx = 0x80A5C574; // type:func -EnIk_PlayDeathSfx = 0x80A5C5BC; // type:func -EnIk_SetupCsAction3 = 0x80A5C630; // type:func -EnIk_SetupCsAction4 = 0x80A5C708; // type:func -EnIk_SetupCsAction5 = 0x80A5C744; // type:func -EnIk_CsAction3 = 0x80A5C760; // type:func -EnIk_CsAction4 = 0x80A5C798; // type:func -EnIk_CsAction5 = 0x80A5C7D8; // type:func -EnIk_OverrideLimbDrawDefeat = 0x80A5C814; // type:func -EnIk_PostLimbDrawDefeat = 0x80A5C880; // type:func -EnIk_CsDrawDefeat = 0x80A5CACC; // type:func -EnIk_HandleCsCues = 0x80A5CC30; // type:func -EnIk_CsAction0 = 0x80A5CD2C; // type:func -EnIk_CsAction1 = 0x80A5CD4C; // type:func -EnIk_CsAction2 = 0x80A5CD84; // type:func -EnIk_UpdateCutscene = 0x80A5CDE8; // type:func -EnIk_OverrideLimbDrawIntro = 0x80A5CE30; // type:func -EnIk_PostLimbDrawIntro = 0x80A5CEB4; // type:func -EnIk_CsDrawNothing = 0x80A5D0A0; // type:func -EnIk_CsDrawIntro = 0x80A5D0B0; // type:func -EnIk_DrawCutscene = 0x80A5D214; // type:func -EnIk_CsInit = 0x80A5D25C; // type:func -EnIk_ChangeToEnemy = 0x80A5D2CC; // type:func -EnIk_StartDefeatCutscene = 0x80A5D338; // type:func -EnIk_Init = 0x80A5D3CC; // type:func -EnIn_GetTextIdChild = 0x80A5DC90; // type:func -EnIn_GetTextIdAdult = 0x80A5DCF0; // type:func -EnIn_GetTextId = 0x80A5DE48; // type:func -EnIn_UpdateTalkStateOnClosing = 0x80A5DEAC; // type:func -EnIn_UpdateTalkStateOnChoice = 0x80A5DF20; // type:func -EnIn_UpdateTalkStateOnEvent = 0x80A5E170; // type:func -EnIn_UpdateTalkState = 0x80A5E1DC; // type:func -func_80A795C8 = 0x80A5E2A4; // type:func -func_80A79690 = 0x80A5E36C; // type:func -EnIn_ChangeAnim = 0x80A5E3C8; // type:func -func_80A7975C = 0x80A5E438; // type:func -func_80A79830 = 0x80A5E50C; // type:func -EnIn_UpdateEyes = 0x80A5E708; // type:func -func_80A79AB4 = 0x80A5E790; // type:func -func_80A79BAC = 0x80A5E888; // type:func -func_80A79C78 = 0x80A5E954; // type:func -EnIn_Init = 0x80A5EB48; // type:func -EnIn_Destroy = 0x80A5EC54; // type:func -EnIn_WaitForObject = 0x80A5EC98; // type:func -func_80A7A304 = 0x80A5EFF0; // type:func -func_80A7A4BC = 0x80A5F1A8; // type:func -func_80A7A4C8 = 0x80A5F1B8; // type:func -func_80A7A568 = 0x80A5F25C; // type:func -func_80A7A770 = 0x80A5F464; // type:func -func_80A7A848 = 0x80A5F53C; // type:func -func_80A7A940 = 0x80A5F634; // type:func -func_80A7AA40 = 0x80A5F734; // type:func -func_80A7ABD4 = 0x80A5F8C8; // type:func -func_80A7AE84 = 0x80A5FB7C; // type:func -func_80A7AEF0 = 0x80A5FBE8; // type:func -func_80A7B018 = 0x80A5FD14; // type:func -func_80A7B024 = 0x80A5FD24; // type:func -EnIn_Update = 0x80A5FE10; // type:func -EnIn_OverrideLimbDraw = 0x80A60024; // type:func -EnIn_PostLimbDraw = 0x80A60278; // type:func -EnIn_Draw = 0x80A60388; // type:func -EnInsect_InitFlags = 0x80A60A30; // type:func -EnInsect_XZDistanceSquared = 0x80A60A54; // type:func -EnInsect_InBottleRange = 0x80A60A84; // type:func -EnInsect_SetCrawlAnim = 0x80A60B74; // type:func -EnInsect_TryFindNearbySoil = 0x80A60BC0; // type:func -EnInsect_UpdateCrawlSfx = 0x80A60C78; // type:func -EnInsect_Init = 0x80A60D0C; // type:func -EnInsect_Destroy = 0x80A60F58; // type:func -EnInsect_SetupSlowDown = 0x80A60FC8; // type:func -EnInsect_SlowDown = 0x80A61018; // type:func -EnInsect_SetupCrawl = 0x80A611BC; // type:func -EnInsect_Crawl = 0x80A6120C; // type:func -EnInsect_SetupRunFromPlayer = 0x80A61438; // type:func -EnInsect_RunFromPlayer = 0x80A61488; // type:func -EnInsect_SetupCaught = 0x80A61680; // type:func -EnInsect_Caught = 0x80A616EC; // type:func -EnInsect_SetupDig = 0x80A617E4; // type:func -EnInsect_Dig = 0x80A6185C; // type:func -EnInsect_SetupWalkOnWater = 0x80A61A80; // type:func -EnInsect_WalkOnWater = 0x80A61AE0; // type:func -EnInsect_SetupDrown = 0x80A61E14; // type:func -EnInsect_Drown = 0x80A61E8C; // type:func -EnInsect_SetupDropped = 0x80A61FBC; // type:func -EnInsect_Dropped = 0x80A62084; // type:func -EnInsect_Update = 0x80A627B4; // type:func -EnInsect_Draw = 0x80A629FC; // type:func -EnIshi_InitCollider = 0x80A62F50; // type:func -EnIshi_SnapToFloor = 0x80A62FC8; // type:func -EnIshi_SpawnFragmentsSmall = 0x80A6306C; // type:func -EnIshi_SpawnFragmentsLarge = 0x80A632E8; // type:func -EnIshi_SpawnDustSmall = 0x80A635D4; // type:func -EnIshi_SpawnDustLarge = 0x80A636C8; // type:func -EnIshi_DropCollectible = 0x80A637BC; // type:func -EnIshi_Fall = 0x80A6382C; // type:func -func_80A7ED94 = 0x80A63860; // type:func -EnIshi_SpawnBugs = 0x80A638E4; // type:func -EnIshi_Init = 0x80A639A0; // type:func -EnIshi_Destroy = 0x80A63B3C; // type:func -EnIshi_SetupWait = 0x80A63B68; // type:func -EnIshi_Wait = 0x80A63B7C; // type:func -EnIshi_SetupLiftedUp = 0x80A63DD4; // type:func -EnIshi_LiftedUp = 0x80A63DFC; // type:func -EnIshi_SetupFly = 0x80A63ED0; // type:func -EnIshi_Fly = 0x80A63FFC; // type:func -EnIshi_Update = 0x80A64368; // type:func -EnIshi_DrawSmall = 0x80A6438C; // type:func -EnIshi_DrawLarge = 0x80A643BC; // type:func -EnIshi_Draw = 0x80A64464; // type:func -EnIt_Init = 0x80A6C0A0; // type:func -EnIt_Destroy = 0x80A6C10C; // type:func -EnIt_Update = 0x80A6C138; // type:func -EnJj_SetupAction = 0x80A6C230; // type:func -EnJj_Init = 0x80A6C23C; // type:func -EnJj_Destroy = 0x80A6C4CC; // type:func -EnJj_Blink = 0x80A6C55C; // type:func -EnJj_OpenMouth = 0x80A6C5DC; // type:func -EnJj_WaitToOpenMouth = 0x80A6C630; // type:func -EnJj_WaitForFish = 0x80A6C674; // type:func -EnJj_BeginCutscene = 0x80A6C730; // type:func -EnJj_CutsceneUpdate = 0x80A6C7D8; // type:func -EnJj_RemoveDust = 0x80A6C934; // type:func -EnJj_UpdateStaticCollision = 0x80A6C98C; // type:func -EnJj_Update = 0x80A6C99C; // type:func -EnJj_Draw = 0x80A6CA48; // type:func -En_Js_SetupAction = 0x80A6D800; // type:func -EnJs_Init = 0x80A6D80C; // type:func -EnJs_Destroy = 0x80A6D930; // type:func -func_80A88F64 = 0x80A6D95C; // type:func -func_80A89008 = 0x80A6DA04; // type:func -func_80A89078 = 0x80A6DA78; // type:func -func_80A890C0 = 0x80A6DAC4; // type:func -func_80A8910C = 0x80A6DB14; // type:func -func_80A89160 = 0x80A6DB68; // type:func -func_80A891C4 = 0x80A6DBD0; // type:func -func_80A89294 = 0x80A6DCA4; // type:func -func_80A89304 = 0x80A6DD18; // type:func -EnJs_Update = 0x80A6DD50; // type:func -EnJs_OverrideLimbDraw = 0x80A6DFDC; // type:func -EnJs_PostLimbDraw = 0x80A6E014; // type:func -EnJs_Draw = 0x80A6E054; // type:func -EnJsjutan_Init = 0x80A6E1D0; // type:func -EnJsjutan_Destroy = 0x80A6E264; // type:func -func_80A89860 = 0x80A6E298; // type:func -func_80A89A6C = 0x80A6E4A4; // type:func -EnJsjutan_Update = 0x80A6EF84; // type:func -EnJsjutan_Draw = 0x80A6F05C; // type:func -EnKakasi_Destroy = 0x80A73B00; // type:func -EnKakasi_Init = 0x80A73B2C; // type:func -func_80A8F28C = 0x80A73BF4; // type:func -func_80A8F320 = 0x80A73C88; // type:func -func_80A8F660 = 0x80A73FC8; // type:func -func_80A8F75C = 0x80A740C4; // type:func -func_80A8F8D0 = 0x80A74240; // type:func -func_80A8F9C8 = 0x80A7432C; // type:func -func_80A8FAA4 = 0x80A7440C; // type:func -func_80A8FBB8 = 0x80A74510; // type:func -EnKakasi_Update = 0x80A745A8; // type:func -EnKakasi_Draw = 0x80A746AC; // type:func -EnKakasi2_Init = 0x80A74840; // type:func -EnKakasi2_Destroy = 0x80A7499C; // type:func -func_80A90264 = 0x80A749C8; // type:func -func_80A904D8 = 0x80A74B20; // type:func -func_80A90578 = 0x80A74BC0; // type:func -func_80A9062C = 0x80A74C74; // type:func -func_80A906C4 = 0x80A74D0C; // type:func -EnKakasi2_Update = 0x80A74D7C; // type:func -func_80A90948 = 0x80A74E3C; // type:func -EnKakasi3_Destroy = 0x80A74F60; // type:func -EnKakasi3_Init = 0x80A74F8C; // type:func -func_80A90E28 = 0x80A75054; // type:func -func_80A90EBC = 0x80A750E8; // type:func -func_80A911F0 = 0x80A7541C; // type:func -func_80A91284 = 0x80A754B0; // type:func -func_80A91348 = 0x80A75574; // type:func -func_80A915B8 = 0x80A757EC; // type:func -func_80A91620 = 0x80A75858; // type:func -func_80A91760 = 0x80A75998; // type:func -func_80A917FC = 0x80A75A38; // type:func -func_80A9187C = 0x80A75AC0; // type:func -func_80A918E4 = 0x80A75B2C; // type:func -func_80A91A90 = 0x80A75C70; // type:func -EnKakasi3_Update = 0x80A75D70; // type:func -EnKakasi3_Draw = 0x80A75E68; // type:func -EnKanban_SetFloorRot = 0x80A76040; // type:func -EnKanban_Init = 0x80A760FC; // type:func -EnKanban_Destroy = 0x80A76224; // type:func -EnKanban_Message = 0x80A7625C; // type:func -EnKanban_Update = 0x80A76314; // type:func -EnKanban_Draw = 0x80A77B90; // type:func -EnKarebaba_Init = 0x80A79190; // type:func -EnKarebaba_Destroy = 0x80A792C4; // type:func -EnKarebaba_ResetCollider = 0x80A79304; // type:func -EnKarebaba_SetupGrow = 0x80A79340; // type:func -EnKarebaba_SetupIdle = 0x80A79390; // type:func -EnKarebaba_SetupAwaken = 0x80A793E4; // type:func -EnKarebaba_SetupUpright = 0x80A79460; // type:func -EnKarebaba_SetupSpin = 0x80A79500; // type:func -EnKarebaba_SetupDying = 0x80A7951C; // type:func -EnKarebaba_SetupDeadItemDrop = 0x80A79590; // type:func -EnKarebaba_SetupRetract = 0x80A79630; // type:func -EnKarebaba_SetupDead = 0x80A796B0; // type:func -EnKarebaba_SetupRegrow = 0x80A7973C; // type:func -EnKarebaba_Grow = 0x80A79790; // type:func -EnKarebaba_Idle = 0x80A79828; // type:func -EnKarebaba_Awaken = 0x80A79888; // type:func -EnKarebaba_Upright = 0x80A7995C; // type:func -EnKarebaba_Spin = 0x80A79A50; // type:func -EnKarebaba_Dying = 0x80A79BE4; // type:func -EnKarebaba_DeadItemDrop = 0x80A79E9C; // type:func -EnKarebaba_Retract = 0x80A79F04; // type:func -EnKarebaba_Dead = 0x80A79FD8; // type:func -EnKarebaba_Regrow = 0x80A7A030; // type:func -EnKarebaba_Update = 0x80A7A0FC; // type:func -EnKarebaba_DrawBaseShadow = 0x80A7A2B0; // type:func -EnKarebaba_Draw = 0x80A7A39C; // type:func -EnKo_AreObjectsAvailable = 0x80A7AA80; // type:func -EnKo_AreObjectsLoaded = 0x80A7AB98; // type:func -EnKo_IsOsAnimeAvailable = 0x80A7AC20; // type:func -EnKo_IsOsAnimeLoaded = 0x80A7AC70; // type:func -EnKo_GetTextIdChild = 0x80A7ACB0; // type:func -EnKo_GetTextIdAdult = 0x80A7B018; // type:func -EnKo_GetTextId = 0x80A7B2F0; // type:func -EnKo_UpdateTalkState = 0x80A7B41C; // type:func -EnKo_GetForestQuestState = 0x80A7B81C; // type:func -func_80A97BC0 = 0x80A7B8A4; // type:func -func_80A97C7C = 0x80A7B960; // type:func -EnKo_IsWithinTalkAngle = 0x80A7B9E4; // type:func -func_80A97D68 = 0x80A7BA50; // type:func -func_80A97E18 = 0x80A7BB00; // type:func -func_80A97EB0 = 0x80A7BB9C; // type:func -func_80A97F20 = 0x80A7BC10; // type:func -func_80A97F70 = 0x80A7BC60; // type:func -func_80A98034 = 0x80A7BD24; // type:func -func_80A98124 = 0x80A7BE18; // type:func -func_80A98174 = 0x80A7BE68; // type:func -EnKo_ChildStart = 0x80A7BF4C; // type:func -EnKo_ChildStone = 0x80A7C054; // type:func -EnKo_ChildSaria = 0x80A7C15C; // type:func -EnKo_AdultEnemy = 0x80A7C264; // type:func -EnKo_AdultSaved = 0x80A7C36C; // type:func -func_80A9877C = 0x80A7C474; // type:func -EnKo_CanSpawn = 0x80A7C630; // type:func -EnKo_Blink = 0x80A7C914; // type:func -func_80A98CD8 = 0x80A7C9D4; // type:func -EnKo_GetForestQuestState2 = 0x80A7CA2C; // type:func -func_80A98DB4 = 0x80A7CAB8; // type:func -func_80A98ECC = 0x80A7CBD0; // type:func -EnKo_Init = 0x80A7CC98; // type:func -EnKo_Destroy = 0x80A7CD28; // type:func -func_80A99048 = 0x80A7CD54; // type:func -func_80A99384 = 0x80A7D084; // type:func -func_80A99438 = 0x80A7D138; // type:func -func_80A99504 = 0x80A7D204; // type:func -func_80A99560 = 0x80A7D264; // type:func -func_80A995CC = 0x80A7D2D4; // type:func -EnKo_Update = 0x80A7D410; // type:func -EnKo_OverrideLimbDraw = 0x80A7D574; // type:func -EnKo_PostLimbDraw = 0x80A7D8D4; // type:func -EnKo_SetEnvColor = 0x80A7D9A4; // type:func -EnKo_Draw = 0x80A7DA10; // type:func -EnKusa_SetupAction = 0x80A7EBC0; // type:func -EnKusa_SnapToFloor = 0x80A7EBD0; // type:func -EnKusa_DropCollectible = 0x80A7EC74; // type:func -EnKusa_UpdateVelY = 0x80A7ED40; // type:func -EnKusa_RandScaleVecToZero = 0x80A7ED74; // type:func -EnKusa_SetScaleSmall = 0x80A7EDF8; // type:func -EnKusa_SpawnFragments = 0x80A7EE1C; // type:func -EnKusa_SpawnBugs = 0x80A7F174; // type:func -EnKusa_InitCollider = 0x80A7F230; // type:func -EnKusa_Init = 0x80A7F288; // type:func -EnKusa_Destroy = 0x80A7F3B0; // type:func -EnKusa_SetupWaitForObject = 0x80A7F3DC; // type:func -EnKusa_WaitForObject = 0x80A7F400; // type:func -EnKusa_SetupMain = 0x80A7F490; // type:func -EnKusa_Main = 0x80A7F4C8; // type:func -EnKusa_SetupLiftedUp = 0x80A7F690; // type:func -EnKusa_LiftedUp = 0x80A7F6CC; // type:func -EnKusa_SetupFall = 0x80A7F7AC; // type:func -EnKusa_Fall = 0x80A7F818; // type:func -EnKusa_SetupCut = 0x80A7FAA8; // type:func -EnKusa_CutWaitRegrow = 0x80A7FAF8; // type:func -EnKusa_DoNothing = 0x80A7FB2C; // type:func -EnKusa_SetupUprootedWaitRegrow = 0x80A7FB3C; // type:func -EnKusa_UprootedWaitRegrow = 0x80A7FBA8; // type:func -EnKusa_SetupRegrow = 0x80A7FC0C; // type:func -EnKusa_Regrow = 0x80A7FC64; // type:func -EnKusa_Update = 0x80A7FCFC; // type:func -EnKusa_Draw = 0x80A7FD60; // type:func -EnKz_GetTextIdChild = 0x80A800A0; // type:func -EnKz_GetTextIdAdult = 0x80A800FC; // type:func -EnKz_GetTextId = 0x80A801AC; // type:func -EnKz_UpdateTalkState = 0x80A80214; // type:func -EnKz_UpdateEyes = 0x80A80438; // type:func -EnKz_UpdateTalking = 0x80A804B0; // type:func -func_80A9CB18 = 0x80A8066C; // type:func -EnKz_FollowPath = 0x80A8082C; // type:func -EnKz_SetMovedPos = 0x80A80998; // type:func -EnKz_Init = 0x80A80A60; // type:func -EnKz_Destroy = 0x80A80BEC; // type:func -EnKz_PreMweepWait = 0x80A80C18; // type:func -EnKz_SetupMweep = 0x80A80C88; // type:func -EnKz_Mweep = 0x80A80DB4; // type:func -EnKz_StopMweep = 0x80A80F20; // type:func -EnKz_Wait = 0x80A80F84; // type:func -EnKz_SetupGetItem = 0x80A80FEC; // type:func -EnKz_StartTimer = 0x80A81080; // type:func -EnKz_Update = 0x80A81118; // type:func -EnKz_OverrideLimbDraw = 0x80A811D4; // type:func -EnKz_PostLimbDraw = 0x80A812A4; // type:func -EnKz_Draw = 0x80A81300; // type:func -EnLight_Init = 0x80A81640; // type:func -EnLight_Destroy = 0x80A81820; // type:func -EnLight_UpdatePosRot = 0x80A81854; // type:func -EnLight_Update = 0x80A818D0; // type:func -EnLight_UpdateSwitch = 0x80A81B74; // type:func -EnLight_Draw = 0x80A81FAC; // type:func -EnLightbox_Init = 0x80A82440; // type:func -EnLightbox_Destroy = 0x80A8256C; // type:func -EnLightbox_Update = 0x80A825A0; // type:func -EnLightbox_Draw = 0x80A82828; // type:func -EnMFire1_Init = 0x80A828C0; // type:func -EnMFire1_Destroy = 0x80A8292C; // type:func -EnMFire1_Update = 0x80A82958; // type:func -func_80A9EFE0 = 0x80A82A60; // type:func -EnMThunder_Init = 0x80A82A6C; // type:func -EnMThunder_Destroy = 0x80A82D2C; // type:func -func_80A9F314 = 0x80A82D9C; // type:func -func_80A9F350 = 0x80A82DD8; // type:func -func_80A9F408 = 0x80A82E90; // type:func -func_80A9F938 = 0x80A833C4; // type:func -func_80A9F9B4 = 0x80A83440; // type:func -EnMThunder_Update = 0x80A835AC; // type:func -EnMThunder_Draw = 0x80A83780; // type:func -EnMa1_GetTextId = 0x80A84060; // type:func -EnMa1_UpdateTalkState = 0x80A84148; // type:func -EnMa1_ShouldSpawn = 0x80A84294; // type:func -EnMa1_UpdateEyes = 0x80A843E0; // type:func -EnMa1_ChangeAnim = 0x80A84458; // type:func -EnMa1_UpdateTracking = 0x80A844C8; // type:func -EnMa1_UpdateSinging = 0x80A84548; // type:func -EnMa1_Init = 0x80A845C0; // type:func -EnMa1_Destroy = 0x80A84728; // type:func -EnMa1_Idle = 0x80A84768; // type:func -EnMa1_GiveWeirdEgg = 0x80A84880; // type:func -EnMa1_FinishGivingWeirdEgg = 0x80A848E0; // type:func -EnMa1_IdleTeachSong = 0x80A84928; // type:func -EnMa1_StartTeachSong = 0x80A84A54; // type:func -EnMa1_TeachSong = 0x80A84AD8; // type:func -EnMa1_WaitForPlayback = 0x80A84B40; // type:func -EnMa1_DoNothing = 0x80A84BB8; // type:func -EnMa1_Update = 0x80A84BC8; // type:func -EnMa1_OverrideLimbDraw = 0x80A84CB4; // type:func -EnMa1_PostLimbDraw = 0x80A84E44; // type:func -EnMa1_Draw = 0x80A84EA0; // type:func -EnMa2_GetTextId = 0x80A85340; // type:func -EnMa2_UpdateTalkState = 0x80A853D8; // type:func -func_80AA1AE4 = 0x80A85488; // type:func -func_80AA1B58 = 0x80A854FC; // type:func -func_80AA1C68 = 0x80A8560C; // type:func -EnMa2_UpdateEyes = 0x80A85664; // type:func -EnMa2_ChangeAnim = 0x80A856F0; // type:func -func_80AA1DB4 = 0x80A85760; // type:func -EnMa2_Init = 0x80A857EC; // type:func -EnMa2_Destroy = 0x80A85990; // type:func -func_80AA2018 = 0x80A859D0; // type:func -func_80AA204C = 0x80A85A04; // type:func -func_80AA20E4 = 0x80A85AA0; // type:func -func_80AA21C8 = 0x80A85B8C; // type:func -EnMa2_Update = 0x80A85C2C; // type:func -EnMa2_OverrideLimbDraw = 0x80A85D1C; // type:func -EnMa2_PostLimbDraw = 0x80A85F5C; // type:func -EnMa2_Draw = 0x80A86010; // type:func -EnMa3_GetTextId = 0x80A863A0; // type:func -EnMa3_UpdateTalkState = 0x80A864D8; // type:func -func_80AA2E54 = 0x80A86758; // type:func -func_80AA2EC8 = 0x80A867CC; // type:func -func_80AA2F28 = 0x80A86830; // type:func -EnMa3_UpdateEyes = 0x80A86888; // type:func -EnMa3_ChangeAnim = 0x80A86914; // type:func -EnMa3_Init = 0x80A86984; // type:func -EnMa3_Destroy = 0x80A86AD8; // type:func -func_80AA3200 = 0x80A86B18; // type:func -EnMa3_Update = 0x80A86B4C; // type:func -EnMa3_OverrideLimbDraw = 0x80A86C60; // type:func -EnMa3_PostLimbDraw = 0x80A86EA0; // type:func -EnMa3_Draw = 0x80A86F54; // type:func -EnMag_Init = 0x80A87350; // type:func -EnMag_Destroy = 0x80A875E0; // type:func -EnMag_Update = 0x80A875F0; // type:func -EnMag_DrawTextureI8 = 0x80A87CD0; // type:func -EnMag_DrawEffectTextures = 0x80A87EF8; // type:func -EnMag_DrawImageRGBA32 = 0x80A88330; // type:func -EnMag_DrawCharTexture = 0x80A88710; // type:func -EnMag_DrawInner = 0x80A888DC; // type:func -EnMag_Draw = 0x80A89644; // type:func -EnMb_SetupAction = 0x80A89870; // type:func -EnMb_Init = 0x80A8987C; // type:func -EnMb_Destroy = 0x80A89BE0; // type:func -EnMb_FaceWaypoint = 0x80A89C30; // type:func -EnMb_NextWaypoint = 0x80A89C68; // type:func -EnMb_IsPlayerInCorridor = 0x80A89D54; // type:func -EnMb_FindWaypointTowardsPlayer = 0x80A89EC8; // type:func -EnMb_SetupSpearGuardLookAround = 0x80A8A058; // type:func -EnMb_SetupClubWaitPlayerNear = 0x80A8A0C0; // type:func -EnMb_SetupSpearPatrolTurnTowardsWaypoint = 0x80A8A124; // type:func -EnMb_SetupSpearGuardWalk = 0x80A8A19C; // type:func -EnMb_SetupSpearPatrolWalkTowardsWaypoint = 0x80A8A240; // type:func -EnMb_SetupSpearPrepareAndCharge = 0x80A8A2F0; // type:func -EnMb_SetupSpearPatrolImmediateCharge = 0x80A8A3A8; // type:func -EnMb_SetupClubAttack = 0x80A8A418; // type:func -EnMb_SetupSpearEndChargeQuick = 0x80A8A4E8; // type:func -EnMb_SetupSpearPatrolEndCharge = 0x80A8A548; // type:func -EnMb_SetupClubWaitAfterAttack = 0x80A8A5CC; // type:func -EnMb_SetupClubDamaged = 0x80A8A644; // type:func -EnMb_SetupClubDamagedWhileKneeling = 0x80A8A6A4; // type:func -EnMb_SetupClubDead = 0x80A8A72C; // type:func -EnMb_SetupStunned = 0x80A8A7B4; // type:func -EnMb_Stunned = 0x80A8A858; // type:func -EnMb_SpearGuardLookAround = 0x80A8A964; // type:func -EnMb_SpearPatrolTurnTowardsWaypoint = 0x80A8A9DC; // type:func -EnMb_SpearEndChargeQuick = 0x80A8AB40; // type:func -EnMb_ClubWaitAfterAttack = 0x80A8ACA8; // type:func -EnMb_SpearPatrolEndCharge = 0x80A8ACEC; // type:func -EnMb_SpearGuardPrepareAndCharge = 0x80A8B004; // type:func -EnMb_ClubAttack = 0x80A8B16C; // type:func -EnMb_SpearPatrolPrepareAndCharge = 0x80A8B4E4; // type:func -EnMb_SpearPatrolImmediateCharge = 0x80A8B848; // type:func -EnMb_ClubDamaged = 0x80A8BBB8; // type:func -EnMb_ClubDamagedWhileKneeling = 0x80A8BC4C; // type:func -EnMb_ClubDead = 0x80A8BD58; // type:func -EnMb_SpearGuardWalk = 0x80A8C01C; // type:func -EnMb_SpearPatrolWalkTowardsWaypoint = 0x80A8C32C; // type:func -EnMb_ClubWaitPlayerNear = 0x80A8C618; // type:func -EnMb_SetupSpearDamaged = 0x80A8C6C8; // type:func -EnMb_SpearDamaged = 0x80A8C790; // type:func -EnMb_SetupSpearDead = 0x80A8C808; // type:func -EnMb_SpearDead = 0x80A8C8E0; // type:func -EnMb_SpearUpdateAttackCollider = 0x80A8CAF8; // type:func -EnMb_ClubUpdateAttackCollider = 0x80A8CC84; // type:func -EnMb_CheckColliding = 0x80A8CD1C; // type:func -EnMb_Update = 0x80A8CEE8; // type:func -EnMb_PostLimbDraw = 0x80A8D0BC; // type:func -EnMb_Draw = 0x80A8D258; // type:func -func_80AAA250 = 0x80A8DAA0; // type:func -func_80AAA274 = 0x80A8DAC8; // type:func -func_80AAA308 = 0x80A8DB5C; // type:func -func_80AAA39C = 0x80A8DBF0; // type:func -func_80AAA474 = 0x80A8DCC8; // type:func -func_80AAA508 = 0x80A8DD5C; // type:func -func_80AAA5A4 = 0x80A8DDF8; // type:func -func_80AAA638 = 0x80A8DE8C; // type:func -func_80AAA6D4 = 0x80A8DF28; // type:func -func_80AAA768 = 0x80A8DFBC; // type:func -func_80AAA7FC = 0x80A8E050; // type:func -func_80AAA890 = 0x80A8E0E4; // type:func -func_80AAA92C = 0x80A8E180; // type:func -func_80AAA93C = 0x80A8E198; // type:func -func_80AAAA24 = 0x80A8E280; // type:func -func_80AAAC78 = 0x80A8E4D4; // type:func -EnMd_GetTextIdKokiriForest = 0x80A8E554; // type:func -EnMd_GetTextIdMidosHouse = 0x80A8E63C; // type:func -EnMd_GetTextIdLostWoods = 0x80A8E670; // type:func -EnMd_GetTextId = 0x80A8E6F0; // type:func -EnMd_UpdateTalkState = 0x80A8E760; // type:func -EnMd_ShouldSpawn = 0x80A8E898; // type:func -EnMd_UpdateEyes = 0x80A8E93C; // type:func -func_80AAB158 = 0x80A8E9B4; // type:func -EnMd_FollowPath = 0x80A8EBD0; // type:func -EnMd_SetMovedPos = 0x80A8ED3C; // type:func -func_80AAB5A4 = 0x80A8EE04; // type:func -EnMd_Init = 0x80A8EEB0; // type:func -EnMd_Destroy = 0x80A8F0AC; // type:func -func_80AAB874 = 0x80A8F0D8; // type:func -func_80AAB8F8 = 0x80A8F15C; // type:func -func_80AAB948 = 0x80A8F1AC; // type:func -func_80AABC10 = 0x80A8F47C; // type:func -func_80AABD0C = 0x80A8F578; // type:func -EnMd_Update = 0x80A8F6A0; // type:func -EnMd_OverrideLimbDraw = 0x80A8F760; // type:func -EnMd_PostLimbDraw = 0x80A8F97C; // type:func -EnMd_Draw = 0x80A8F9D8; // type:func -EnMk_Init = 0x80A90110; // type:func -EnMk_Destroy = 0x80A90228; // type:func -func_80AACA40 = 0x80A90254; // type:func -func_80AACA94 = 0x80A902A4; // type:func -func_80AACB14 = 0x80A9032C; // type:func -func_80AACB6C = 0x80A90388; // type:func -func_80AACBAC = 0x80A903C4; // type:func -func_80AACC04 = 0x80A9041C; // type:func -func_80AACCA0 = 0x80A904B8; // type:func -func_80AACD48 = 0x80A90560; // type:func -func_80AACE2C = 0x80A90644; // type:func -func_80AACEE8 = 0x80A90700; // type:func -func_80AACFA0 = 0x80A907B8; // type:func -func_80AAD014 = 0x80A90830; // type:func -EnMk_Wait = 0x80A9089C; // type:func -EnMk_Update = 0x80A90AF0; // type:func -EnMk_OverrideLimbDraw = 0x80A90D3C; // type:func -EnMk_PostLimbDraw = 0x80A90D84; // type:func -EnMk_Draw = 0x80A90DC4; // type:func -EnMm_ChangeAnim = 0x80A90FA0; // type:func -EnMm_Init = 0x80A910C4; // type:func -EnMm_Destroy = 0x80A91280; // type:func -func_80AADA70 = 0x80A912AC; // type:func -func_80AADAA0 = 0x80A912E0; // type:func -EnMm_GetTextId = 0x80A91474; // type:func -func_80AADCD0 = 0x80A91514; // type:func -EnMm_GetPointCount = 0x80A91694; // type:func -func_80AADE60 = 0x80A916A8; // type:func -func_80AADEF0 = 0x80A9173C; // type:func -func_80AAE224 = 0x80A91A74; // type:func -func_80AAE294 = 0x80A91AE4; // type:func -func_80AAE50C = 0x80A91D5C; // type:func -func_80AAE598 = 0x80A91DE8; // type:func -EnMm_Update = 0x80A91E90; // type:func -EnMm_Draw = 0x80A91F04; // type:func -EnMm_OverrideLimbDraw = 0x80A92198; // type:func -EnMm_PostLimbDraw = 0x80A9222C; // type:func -EnMm2_ChangeAnim = 0x80A92600; // type:func -func_80AAEF70 = 0x80A92724; // type:func -EnMm2_Init = 0x80A927F4; // type:func -EnMm2_Destroy = 0x80A929AC; // type:func -func_80AAF224 = 0x80A929D8; // type:func -func_80AAF2BC = 0x80A92A74; // type:func -func_80AAF330 = 0x80A92AE8; // type:func -func_80AAF3C0 = 0x80A92B78; // type:func -func_80AAF57C = 0x80A92D34; // type:func -func_80AAF5EC = 0x80A92DA8; // type:func -func_80AAF668 = 0x80A92E24; // type:func -EnMm2_Update = 0x80A92F18; // type:func -EnMm2_Draw = 0x80A93060; // type:func -EnMm2_OverrideLimbDraw = 0x80A9312C; // type:func -EnMm2_PostLimbDraw = 0x80A931B4; // type:func -EnMs_SetOfferText = 0x80A933C0; // type:func -EnMs_Init = 0x80A9343C; // type:func -EnMs_Destroy = 0x80A93560; // type:func -EnMs_Wait = 0x80A9358C; // type:func -EnMs_Talk = 0x80A93638; // type:func -EnMs_Sell = 0x80A93754; // type:func -EnMs_TalkAfterPurchase = 0x80A937F0; // type:func -EnMs_Update = 0x80A93850; // type:func -EnMs_Draw = 0x80A93948; // type:func -EnMu_SetupAction = 0x80A93AB0; // type:func -EnMu_Interact = 0x80A93ABC; // type:func -EnMu_GetTextId = 0x80A93C1C; // type:func -EnMu_UpdateTalkState = 0x80A93C60; // type:func -EnMu_Init = 0x80A93CCC; // type:func -EnMu_Destroy = 0x80A93DA4; // type:func -EnMu_Pose = 0x80A93DC8; // type:func -EnMu_Update = 0x80A93E00; // type:func -EnMu_OverrideLimbDraw = 0x80A93F48; // type:func -EnMu_PostLimbDraw = 0x80A94034; // type:func -EnMu_DisplayListSetColor = 0x80A9404C; // type:func -EnMu_Draw = 0x80A940B8; // type:func -EnNb_GetPath = 0x80A943D0; // type:func -EnNb_GetType = 0x80A943E4; // type:func -EnNb_UpdatePath = 0x80A943F4; // type:func -EnNb_SetupCollider = 0x80A94520; // type:func -EnNb_UpdateCollider = 0x80A9456C; // type:func -EnNb_Destroy = 0x80A945B0; // type:func -func_80AB0FBC = 0x80A945DC; // type:func -func_80AB1040 = 0x80A94664; // type:func -func_80AB10C4 = 0x80A946EC; // type:func -EnNb_UpdateEyes = 0x80A94790; // type:func -func_80AB1284 = 0x80A94818; // type:func -EnNb_UpdateSkelAnime = 0x80A94860; // type:func -EnNb_GetCue = 0x80A94884; // type:func -EnNb_SetStartPosRotFromCue1 = 0x80A948AC; // type:func -func_80AB1390 = 0x80A9492C; // type:func -func_80AB13D8 = 0x80A94978; // type:func -EnNb_SetStartPosRotFromCue2 = 0x80A949C4; // type:func -EnNb_SetCurrentAnim = 0x80A94A44; // type:func -EnNb_SetChamberAnim = 0x80A94AD4; // type:func -EnNb_SpawnBlueWarp = 0x80A94B1C; // type:func -EnNb_GiveMedallion = 0x80A94B78; // type:func -EnNb_ComeUpImpl = 0x80A94BF4; // type:func -EnNb_SetupChamberCsImpl = 0x80A94C14; // type:func -EnNb_SetupChamberWarpImpl = 0x80A94CB0; // type:func -EnNb_SetupDefaultChamberIdle = 0x80A94D00; // type:func -EnNb_SetupArmRaise = 0x80A94D2C; // type:func -EnNb_SetupRaisedArmTransition = 0x80A94DC0; // type:func -EnNb_SetupMedallion = 0x80A94E2C; // type:func -EnNb_SetupChamberCs = 0x80A94E78; // type:func -EnNb_SetupChamberWarp = 0x80A94E98; // type:func -EnNb_ComeUp = 0x80A94EB8; // type:func -func_80AB193C = 0x80A94EF4; // type:func -EnNb_RaiseArm = 0x80A94F3C; // type:func -func_80AB19BC = 0x80A94F80; // type:func -func_80AB19FC = 0x80A94FC8; // type:func -EnNb_SetupLightArrowOrSealingCs = 0x80A94FFC; // type:func -EnNb_PlaySealingSfx = 0x80A95040; // type:func -EnNb_InitializeDemo6K = 0x80A95060; // type:func -EnNb_SetupHide = 0x80A950E0; // type:func -EnNb_CheckToFade = 0x80A95134; // type:func -EnNb_SetupLightOrb = 0x80A95288; // type:func -EnNb_Hide = 0x80A95324; // type:func -EnNb_Fade = 0x80A95344; // type:func -EnNb_CreateLightOrb = 0x80A9538C; // type:func -EnNb_DrawTransparency = 0x80A953D4; // type:func -EnNb_InitKidnap = 0x80A9551C; // type:func -EnNb_PlayCrySFX = 0x80A95574; // type:func -EnNb_PlayAgonySFX = 0x80A955AC; // type:func -EnNb_SetPosInPortal = 0x80A955E4; // type:func -EnNb_SetupCaptureCutsceneState = 0x80A956C8; // type:func -EnNb_SetRaisedArmCaptureAnim = 0x80A956FC; // type:func -EnNb_SetupLookAroundInKidnap = 0x80A9575C; // type:func -EnNb_SetupKidnap = 0x80A957D0; // type:func -EnNb_CheckKidnapCsMode = 0x80A95848; // type:func -func_80AB23A8 = 0x80A95910; // type:func -EnNb_MovingInPortal = 0x80A95948; // type:func -EnNb_SuckedInByPortal = 0x80A959A4; // type:func -EnNb_SetupConfrontation = 0x80A95A00; // type:func -EnNb_PlayKnuckleDefeatSFX = 0x80A95A44; // type:func -EnNb_PlayKneelingOnGroundSFX = 0x80A95A88; // type:func -EnNb_PlayLookRightSFX = 0x80A95AEC; // type:func -EnNb_PlayLookLeftSFX = 0x80A95B38; // type:func -EnNb_InitDemo6KInConfrontation = 0x80A95B90; // type:func -func_80AB2688 = 0x80A95C08; // type:func -func_80AB26C8 = 0x80A95C48; // type:func -func_80AB26DC = 0x80A95C60; // type:func -EnNb_SetupKneel = 0x80A95CF8; // type:func -EnNb_CheckIfKneeling = 0x80A95D74; // type:func -EnNb_SetupLookRight = 0x80A95DE0; // type:func -EnNb_CheckIfLookingRight = 0x80A95E60; // type:func -EnNb_SetupLookLeft = 0x80A95ECC; // type:func -EnNb_CheckIfLookLeft = 0x80A95F4C; // type:func -EnNb_SetupDemo6KInConfrontation = 0x80A95FAC; // type:func -EnNb_SetupRun = 0x80A95FEC; // type:func -EnNb_SetupConfrontationDestroy = 0x80A9606C; // type:func -EnNb_CheckConfrontationCsMode = 0x80A96084; // type:func -EnNb_CheckConfrontationCsModeWrapper = 0x80A9616C; // type:func -func_80AB2C18 = 0x80A9618C; // type:func -EnNb_Kneel = 0x80A961D8; // type:func -EnNb_LookRight = 0x80A96248; // type:func -EnNb_LookLeft = 0x80A962B8; // type:func -EnNb_Run = 0x80A96320; // type:func -EnNb_ConfrontationDestroy = 0x80A963A8; // type:func -func_80AB2E70 = 0x80A963FC; // type:func -func_80AB2FC0 = 0x80A96518; // type:func -func_80AB2FE4 = 0x80A96540; // type:func -EnNb_SetupCreditsSpawn = 0x80A9667C; // type:func -EnNb_SetAlphaInCredits = 0x80A966C4; // type:func -EnNb_SetupCreditsFadeIn = 0x80A96750; // type:func -EnNb_SetupCreditsSit = 0x80A96788; // type:func -EnNb_SetupCreditsHeadTurn = 0x80A967D4; // type:func -EnNb_CheckIfLookingUp = 0x80A96814; // type:func -EnNb_CheckCreditsCsModeImpl = 0x80A96848; // type:func -EnNb_CheckCreditsCsMode = 0x80A968D4; // type:func -EnNb_CreditsFade = 0x80A968F4; // type:func -func_80AB3428 = 0x80A96940; // type:func -EnNb_LookUp = 0x80A96988; // type:func -EnNb_CrawlspaceSpawnCheck = 0x80A969CC; // type:func -func_80AB359C = 0x80A96AC8; // type:func -EnNb_SetNoticeSFX = 0x80A96B8C; // type:func -EnNb_GetNoticedStatus = 0x80A96BB4; // type:func -func_80AB36DC = 0x80A96C0C; // type:func -EnNb_CheckNoticed = 0x80A96CBC; // type:func -EnNb_SetupIdleCrawlspace = 0x80A96D14; // type:func -func_80AB3838 = 0x80A96D6C; // type:func -EnNb_SetupPathMovement = 0x80A96DE8; // type:func -EnNb_SetTextIdAsChild = 0x80A96E50; // type:func -func_80AB3A7C = 0x80A96FBC; // type:func -func_80AB3B04 = 0x80A97048; // type:func -func_80AB3B7C = 0x80A970D0; // type:func -EnNb_WaitForNotice = 0x80A9711C; // type:func -EnNb_StandUpAfterNotice = 0x80A97178; // type:func -EnNb_BlockCrawlspace = 0x80A971D8; // type:func -EnNb_InitCrawlspaceDialogue = 0x80A97240; // type:func -EnNb_FollowPath = 0x80A972A8; // type:func -func_80AB3DB0 = 0x80A97328; // type:func -func_80AB3E10 = 0x80A97390; // type:func -EnNb_Update = 0x80A973F8; // type:func -EnNb_Init = 0x80A97440; // type:func -EnNb_OverrideLimbDraw = 0x80A9755C; // type:func -EnNb_PostLimbDraw = 0x80A975EC; // type:func -EnNb_DrawNothing = 0x80A97678; // type:func -EnNb_DrawDefault = 0x80A97688; // type:func -EnNb_Draw = 0x80A977CC; // type:func -EnNiw_Init = 0x80A989A0; // type:func -EnNiw_Destroy = 0x80A98EA4; // type:func -func_80AB5BF8 = 0x80A98ED0; // type:func -EnNiw_SpawnAttackCucco = 0x80A99278; // type:func -func_80AB6100 = 0x80A993C0; // type:func -EnNiw_ResetAction = 0x80A9953C; // type:func -func_80AB6324 = 0x80A995E4; // type:func -func_80AB63A8 = 0x80A99668; // type:func -func_80AB6450 = 0x80A99710; // type:func -func_80AB6570 = 0x80A99830; // type:func -func_80AB6A38 = 0x80A99CFC; // type:func -func_80AB6BF8 = 0x80A99EBC; // type:func -func_80AB6D08 = 0x80A99FCC; // type:func -func_80AB6EB4 = 0x80A9A178; // type:func -func_80AB6F04 = 0x80A9A1C8; // type:func -func_80AB70A0 = 0x80A9A368; // type:func -func_80AB70F8 = 0x80A9A3C0; // type:func -func_80AB714C = 0x80A9A414; // type:func -func_80AB7204 = 0x80A9A4CC; // type:func -func_80AB7290 = 0x80A9A55C; // type:func -func_80AB7328 = 0x80A9A5F4; // type:func -func_80AB7420 = 0x80A9A6F0; // type:func -func_80AB747C = 0x80A9A74C; // type:func -EnNiw_Update = 0x80A9A804; // type:func -EnNiw_OverrideLimbDraw = 0x80A9B0B0; // type:func -EnNiw_Draw = 0x80A9B208; // type:func -EnNiw_SpawnFeather = 0x80A9B2B8; // type:func -EnNiw_UpdateEffects = 0x80A9B3A8; // type:func -EnNiw_DrawEffects = 0x80A9B55C; // type:func -EnNiwGirl_Init = 0x80A9BCD0; // type:func -EnNiwGirl_Destroy = 0x80A9BE70; // type:func -EnNiwGirl_Jump = 0x80A9BE80; // type:func -func_80AB9210 = 0x80A9BF04; // type:func -EnNiwGirl_Talk = 0x80A9C0B8; // type:func -func_80AB94D0 = 0x80A9C1C8; // type:func -EnNiwGirl_Update = 0x80A9C2BC; // type:func -EnNiwGirlOverrideLimbDraw = 0x80A9C4E4; // type:func -EnNiwGirl_Draw = 0x80A9C54C; // type:func -EnNiwLady_Init = 0x80A9C7A0; // type:func -EnNiwLady_Destroy = 0x80A9C888; // type:func -EnNiwLady_ChoseAnimation = 0x80A9C8B4; // type:func -func_80AB9F24 = 0x80A9CA7C; // type:func -func_80ABA21C = 0x80A9CD78; // type:func -func_80ABA244 = 0x80A9CDA4; // type:func -func_80ABA654 = 0x80A9D124; // type:func -func_80ABA778 = 0x80A9D21C; // type:func -func_80ABA878 = 0x80A9D2F0; // type:func -func_80ABA9B8 = 0x80A9D434; // type:func -func_80ABAA9C = 0x80A9D518; // type:func -func_80ABAB08 = 0x80A9D588; // type:func -func_80ABAC00 = 0x80A9D680; // type:func -func_80ABAC84 = 0x80A9D708; // type:func -func_80ABAD38 = 0x80A9D7B0; // type:func -func_80ABAD7C = 0x80A9D7D0; // type:func -EnNiwLady_Update = 0x80A9D894; // type:func -EnNiwLady_EmptyDList = 0x80A9DAFC; // type:func -EnNiwLady_OverrideLimbDraw = 0x80A9DB20; // type:func -EnNiwLady_Draw = 0x80A9DC7C; // type:func -EnNutsball_Init = 0x80A9E0A0; // type:func -EnNutsball_Destroy = 0x80A9E15C; // type:func -func_80ABBB34 = 0x80A9E188; // type:func -func_80ABBBA8 = 0x80A9E200; // type:func -EnNutsball_Update = 0x80A9E3D0; // type:func -EnNutsball_Draw = 0x80A9E4EC; // type:func -EnNwc_SetUpdate = 0x80A9E6C0; // type:func -EnNwc_ChickNoop = 0x80A9E6CC; // type:func -EnNwc_ChickBgCheck = 0x80A9E6E0; // type:func -EnNwc_ChickFall = 0x80A9E7DC; // type:func -EnNwc_UpdateChicks = 0x80A9E848; // type:func -EnNwc_DrawChicks = 0x80A9EA48; // type:func -EnNwc_Init = 0x80A9EDA4; // type:func -EnNwc_Destroy = 0x80A9EF30; // type:func -EnNwc_Idle = 0x80A9EF5C; // type:func -EnNwc_Update = 0x80A9EF7C; // type:func -EnNwc_Draw = 0x80A9EFD0; // type:func -EnNy_Init = 0x80A9F0E0; // type:func -EnNy_Destroy = 0x80A9F21C; // type:func -func_80ABCD40 = 0x80A9F248; // type:func -func_80ABCD84 = 0x80A9F290; // type:func -func_80ABCD94 = 0x80A9F2A4; // type:func -func_80ABCDAC = 0x80A9F2C0; // type:func -func_80ABCDBC = 0x80A9F2D4; // type:func -EnNy_SetupTurnToStone = 0x80A9F318; // type:func -func_80ABCE38 = 0x80A9F354; // type:func -func_80ABCE50 = 0x80A9F370; // type:func -func_80ABCE90 = 0x80A9F3B0; // type:func -func_80ABCEEC = 0x80A9F40C; // type:func -EnNy_Move = 0x80A9F46C; // type:func -EnNy_TurnToStone = 0x80A9F580; // type:func -func_80ABD11C = 0x80A9F640; // type:func -EnNy_CollisionCheck = 0x80A9F6B4; // type:func -func_80ABD3B8 = 0x80A9F8DC; // type:func -EnNy_Update = 0x80A9F9C4; // type:func -EnNy_SetupDie = 0x80A9FC50; // type:func -EnNy_Die = 0x80A9FED4; // type:func -EnNy_UpdateDeath = 0x80AA00E0; // type:func -EnNy_UpdateUnused = 0x80AA0120; // type:func -EnNy_Draw = 0x80AA0250; // type:func -EnNy_DrawDeathEffect = 0x80AA0524; // type:func -EnOE2_SetupAction = 0x80AA0A20; // type:func -EnOE2_Init = 0x80AA0A2C; // type:func -EnOE2_Destroy = 0x80AA0A54; // type:func -EnOE2_DoNothing = 0x80AA0A64; // type:func -EnOE2_Update = 0x80AA0A74; // type:func -EnOE2_Draw = 0x80AA0A84; // type:func -EnOkarinaEffect_SetupAction = 0x80AA0B00; // type:func -EnOkarinaEffect_Destroy = 0x80AA0B0C; // type:func -EnOkarinaEffect_Init = 0x80AA0B8C; // type:func -EnOkarinaEffect_TriggerStorm = 0x80AA0BD4; // type:func -EnOkarinaEffect_ManageStorm = 0x80AA0C60; // type:func -EnOkarinaEffect_Update = 0x80AA0E30; // type:func -EnOkarinaTag_Destroy = 0x80AA0EC0; // type:func -EnOkarinaTag_Init = 0x80AA0ED0; // type:func -func_80ABEF2C = 0x80AA1038; // type:func -func_80ABF0CC = 0x80AA119C; // type:func -func_80ABF28C = 0x80AA135C; // type:func -func_80ABF4C8 = 0x80AA15A4; // type:func -func_80ABF708 = 0x80AA17E4; // type:func -func_80ABF7CC = 0x80AA18AC; // type:func -EnOkarinaTag_Update = 0x80AA1970; // type:func -EnOkuta_Init = 0x80AA23C0; // type:func -EnOkuta_Destroy = 0x80AA25CC; // type:func -EnOkuta_SpawnBubbles = 0x80AA25F8; // type:func -EnOkuta_SpawnDust = 0x80AA26A4; // type:func -EnOkuta_SpawnSplash = 0x80AA270C; // type:func -EnOkuta_SpawnRipple = 0x80AA2750; // type:func -EnOkuta_SetupWaitToAppear = 0x80AA27F4; // type:func -EnOkuta_SetupAppear = 0x80AA2824; // type:func -EnOkuta_SetupHide = 0x80AA2894; // type:func -EnOkuta_SetupWaitToShoot = 0x80AA28D4; // type:func -EnOkuta_SetupShoot = 0x80AA2934; // type:func -EnOkuta_SetupWaitToDie = 0x80AA2A20; // type:func -EnOkuta_SetupDie = 0x80AA2AA8; // type:func -EnOkuta_SetupFreeze = 0x80AA2AF0; // type:func -EnOkuta_SpawnProjectile = 0x80AA2B3C; // type:func -EnOkuta_WaitToAppear = 0x80AA2C7C; // type:func -EnOkuta_Appear = 0x80AA2CD8; // type:func -EnOkuta_Hide = 0x80AA2E1C; // type:func -EnOkuta_WaitToShoot = 0x80AA2F1C; // type:func -EnOkuta_Shoot = 0x80AA304C; // type:func -EnOkuta_WaitToDie = 0x80AA31CC; // type:func -EnOkuta_Die = 0x80AA3220; // type:func -EnOkuta_Freeze = 0x80AA3534; // type:func -EnOkuta_ProjectileFly = 0x80AA36B0; // type:func -EnOkuta_UpdateHeadScale = 0x80AA38FC; // type:func -EnOkuta_ColliderCheck = 0x80AA3CA4; // type:func -EnOkuta_Update = 0x80AA3D54; // type:func -EnOkuta_GetSnoutScale = 0x80AA40D4; // type:func -EnOkuta_OverrideLimbDraw = 0x80AA435C; // type:func -EnOkuta_Draw = 0x80AA4458; // type:func -EnOssan_SetupAction = 0x80AA49A0; // type:func -ShopItemDisp_Default = 0x80AA49AC; // type:func -ShopItemDisp_SpookyMask = 0x80AA49C4; // type:func -ShopItemDisp_SkullMask = 0x80AA49F8; // type:func -ShopItemDisp_BunnyHood = 0x80AA4A2C; // type:func -ShopItemDisp_ZoraMask = 0x80AA4A60; // type:func -ShopItemDisp_GoronMask = 0x80AA4A94; // type:func -ShopItemDisp_GerudoMask = 0x80AA4AC8; // type:func -EnOssan_SpawnItemsOnShelves = 0x80AA4AFC; // type:func -EnOssan_UpdateShopOfferings = 0x80AA4C50; // type:func -EnOssan_TalkDefaultShopkeeper = 0x80AA4DBC; // type:func -EnOssan_TalkKakarikoPotionShopkeeper = 0x80AA4DDC; // type:func -EnOssan_TalkMarketPotionShopkeeper = 0x80AA4E20; // type:func -EnOssan_TalkKokiriShopkeeper = 0x80AA4E40; // type:func -EnOssan_TalkBazaarShopkeeper = 0x80AA4E60; // type:func -EnOssan_TalkBombchuShopkeeper = 0x80AA4EA4; // type:func -EnOssan_TalkZoraShopkeeper = 0x80AA4EC4; // type:func -EnOssan_TalkGoronShopkeeper = 0x80AA4F1C; // type:func -EnOssan_TalkHappyMaskShopkeeper = 0x80AA4FF0; // type:func -EnOssan_UpdateCameraDirection = 0x80AA507C; // type:func -EnOssan_TryGetObjBankIndices = 0x80AA50E0; // type:func -EnOssan_Init = 0x80AA51A4; // type:func -EnOssan_Destroy = 0x80AA5370; // type:func -EnOssan_UpdateCursorPos = 0x80AA53B0; // type:func -EnOssan_EndInteraction = 0x80AA5414; // type:func -EnOssan_TestEndInteraction = 0x80AA54D8; // type:func -EnOssan_TestCancelOption = 0x80AA5520; // type:func -EnOssan_SetStateStartShopping = 0x80AA5584; // type:func -EnOssan_StartShopping = 0x80AA5608; // type:func -EnOssan_ChooseTalkToOwner = 0x80AA56E0; // type:func -EnOssan_SetLookToShopkeeperFromShelf = 0x80AA5740; // type:func -EnOssan_State_Idle = 0x80AA5774; // type:func -EnOssan_UpdateJoystickInputState = 0x80AA5824; // type:func -EnOssan_SetCursorIndexFromNeutral = 0x80AA5970; // type:func -EnOssan_CursorRight = 0x80AA5AA8; // type:func -EnOssan_CursorLeft = 0x80AA5B34; // type:func -EnOssan_TryPaybackMask = 0x80AA5B9C; // type:func -EnOssan_State_StartConversation = 0x80AA5CD8; // type:func -EnOssan_FacingShopkeeperDialogResult = 0x80AA5E80; // type:func -EnOssan_State_FacingShopkeeper = 0x80AA5EEC; // type:func -EnOssan_State_TalkingToShopkeeper = 0x80AA6004; // type:func -EnOssan_State_LookToLeftShelf = 0x80AA6058; // type:func -EnOssan_State_LookToRightShelf = 0x80AA6144; // type:func -EnOssan_CursorUpDown = 0x80AA6230; // type:func -EnOssan_HasPlayerSelectedItem = 0x80AA6444; // type:func -EnOssan_State_BrowseLeftShelf = 0x80AA65E0; // type:func -EnOssan_State_BrowseRightShelf = 0x80AA67A0; // type:func -EnOssan_State_LookFromShelfToShopkeeper = 0x80AA6960; // type:func -EnOssan_State_DisplayOnlyBombDialog = 0x80AA6A1C; // type:func -EnOssan_GiveItemWithFanfare = 0x80AA6AEC; // type:func -EnOssan_SetStateCantGetItem = 0x80AA6BB8; // type:func -EnOssan_SetStateQuickBuyDialog = 0x80AA6BEC; // type:func -EnOssan_HandleCanBuyItem = 0x80AA6C20; // type:func -EnOssan_HandleCanBuyLonLonMilk = 0x80AA6DC8; // type:func -EnOssan_HandleCanBuyWeirdEgg = 0x80AA6ED4; // type:func -EnOssan_HandleCanBuyBombs = 0x80AA700C; // type:func -EnOssan_BuyGoronCityBombs = 0x80AA7110; // type:func -EnOssan_State_ItemSelected = 0x80AA71B4; // type:func -EnOssan_State_SelectMilkBottle = 0x80AA7288; // type:func -EnOssan_State_SelectWeirdEgg = 0x80AA735C; // type:func -EnOssan_State_SelectUnimplementedItem = 0x80AA7430; // type:func -EnOssan_State_SelectBombs = 0x80AA74C0; // type:func -EnOssan_State_SelectMaskItem = 0x80AA75B8; // type:func -EnOssan_State_CantGetItem = 0x80AA7794; // type:func -EnOssan_State_QuickBuyDialog = 0x80AA7810; // type:func -EnOssan_State_GiveItemWithFanfare = 0x80AA78B8; // type:func -EnOssan_State_ItemPurchased = 0x80AA7928; // type:func -EnOssan_State_ContinueShoppingPrompt = 0x80AA7A6C; // type:func -EnOssan_State_WaitForDisplayOnlyBombDialog = 0x80AA7C4C; // type:func -EnOssan_State_21 = 0x80AA7CB4; // type:func -EnOssan_State_22 = 0x80AA7D28; // type:func -EnOssan_State_GiveLonLonMilk = 0x80AA7D7C; // type:func -EnOssan_State_LendMaskOfTruth = 0x80AA7DD0; // type:func -EnOssan_SetStateGiveDiscountDialog = 0x80AA7E40; // type:func -EnOssan_State_GiveDiscountDialog = 0x80AA7E6C; // type:func -EnOssan_PositionSelectedItem = 0x80AA7F00; // type:func -EnOssan_ResetItemPosition = 0x80AA7FE8; // type:func -EnOssan_TakeItemOffShelf = 0x80AA800C; // type:func -EnOssan_ReturnItemToShelf = 0x80AA80A8; // type:func -EnOssan_UpdateItemSelectedProperty = 0x80AA8134; // type:func -EnOssan_UpdateCursorAnim = 0x80AA8270; // type:func -EnOssan_UpdateStickDirectionPromptAnim = 0x80AA8344; // type:func -EnOssan_WaitForBlink = 0x80AA84F4; // type:func -EnOssan_Blink = 0x80AA8528; // type:func -EnOssan_AreShopkeeperObjectsLoaded = 0x80AA85C8; // type:func -EnOssan_InitBazaarShopkeeper = 0x80AA8664; // type:func -EnOssan_InitKokiriShopkeeper = 0x80AA86C4; // type:func -EnOssan_InitGoronShopkeeper = 0x80AA87DC; // type:func -EnOssan_InitZoraShopkeeper = 0x80AA88B8; // type:func -EnOssan_InitPotionShopkeeper = 0x80AA8994; // type:func -EnOssan_InitHappyMaskShopkeeper = 0x80AA89F4; // type:func -EnOssan_InitBombchuShopkeeper = 0x80AA8A54; // type:func -EnOssan_SetupHelloDialog = 0x80AA8AB4; // type:func -EnOssan_InitActionFunc = 0x80AA8C1C; // type:func -EnOssan_Obj3ToSeg6 = 0x80AA8ED4; // type:func -EnOssan_MainActionFunc = 0x80AA8F0C; // type:func -EnOssan_Update = 0x80AA9028; // type:func -EnOssan_OverrideLimbDrawDefaultShopkeeper = 0x80AA9054; // type:func -EnOssan_DrawCursor = 0x80AA908C; // type:func -EnOssan_DrawTextRec = 0x80AA92EC; // type:func -EnOssan_DrawStickDirectionPrompts = 0x80AA9488; // type:func -EnOssan_DrawBazaarShopkeeper = 0x80AA9830; // type:func -EnOssan_OverrideLimbDrawKokiriShopkeeper = 0x80AA9924; // type:func -EnOssan_EmptyDList = 0x80AA9A1C; // type:func -EnOssan_SetEnvColor = 0x80AA9A40; // type:func -EnOssan_DrawKokiriShopkeeper = 0x80AA9AAC; // type:func -EnOssan_DrawGoronShopkeeper = 0x80AA9C0C; // type:func -EnOssan_OverrideLimbDrawZoraShopkeeper = 0x80AA9D40; // type:func -EnOssan_DrawZoraShopkeeper = 0x80AA9D78; // type:func -EnOssan_DrawPotionShopkeeper = 0x80AA9EBC; // type:func -EnOssan_DrawHappyMaskShopkeeper = 0x80AA9FA8; // type:func -EnOssan_DrawBombchuShopkeeper = 0x80AAA094; // type:func -EnOwl_Init = 0x80AAAF80; // type:func -EnOwl_Destroy = 0x80AAB364; // type:func -EnOwl_LookAtLink = 0x80AAB390; // type:func -EnOwl_CheckInitTalk = 0x80AAB3CC; // type:func -func_80ACA558 = 0x80AAB538; // type:func -func_80ACA5C8 = 0x80AAB5AC; // type:func -func_80ACA62C = 0x80AAB60C; // type:func -func_80ACA690 = 0x80AAB658; // type:func -func_80ACA6C0 = 0x80AAB688; // type:func -func_80ACA71C = 0x80AAB6E4; // type:func -func_80ACA76C = 0x80AAB730; // type:func -func_80ACA7E0 = 0x80AAB7A4; // type:func -EnOwl_ConfirmKokiriMessage = 0x80AAB850; // type:func -EnOwl_WaitOutsideKokiri = 0x80AAB8F0; // type:func -func_80ACA998 = 0x80AAB968; // type:func -func_80ACAA54 = 0x80AABA28; // type:func -func_80ACAAC0 = 0x80AABA98; // type:func -EnOwl_WaitHyruleCastle = 0x80AABB08; // type:func -func_80ACAB88 = 0x80AABB6C; // type:func -func_80ACAC6C = 0x80AABC54; // type:func -EnOwl_WaitKakariko = 0x80AABCC4; // type:func -func_80ACAD34 = 0x80AABD28; // type:func -func_80ACADF0 = 0x80AABDE8; // type:func -EnOwl_WaitGerudo = 0x80AABE58; // type:func -func_80ACAEB8 = 0x80AABEBC; // type:func -func_80ACAF74 = 0x80AABF7C; // type:func -EnOwl_WaitLakeHylia = 0x80AABFEC; // type:func -func_80ACB03C = 0x80AAC050; // type:func -EnOwl_WaitZoraRiver = 0x80AAC0C4; // type:func -func_80ACB148 = 0x80AAC164; // type:func -EnOwl_WaitHyliaShortcut = 0x80AAC1C4; // type:func -func_80ACB22C = 0x80AAC250; // type:func -func_80ACB274 = 0x80AAC29C; // type:func -EnOwl_WaitDeathMountainShortcut = 0x80AAC2E0; // type:func -func_80ACB344 = 0x80AAC374; // type:func -func_80ACB3E0 = 0x80AAC414; // type:func -func_80ACB440 = 0x80AAC47C; // type:func -func_80ACB4FC = 0x80AAC53C; // type:func -EnOwl_WaitLWPreSaria = 0x80AAC5AC; // type:func -func_80ACB5C4 = 0x80AAC610; // type:func -func_80ACB680 = 0x80AAC6D0; // type:func -EnOwl_WaitLWPostSaria = 0x80AAC740; // type:func -func_80ACB748 = 0x80AAC7A4; // type:func -func_80ACB904 = 0x80AAC960; // type:func -func_80ACB994 = 0x80AAC9F8; // type:func -EnOwl_WaitDefault = 0x80AACA90; // type:func -func_80ACBAB8 = 0x80AACB24; // type:func -func_80ACBC0C = 0x80AACC78; // type:func -func_80ACBD4C = 0x80AACDB4; // type:func -func_80ACBEA0 = 0x80AACF08; // type:func -func_80ACBF50 = 0x80AACFB8; // type:func -func_80ACC00C = 0x80AAD074; // type:func -func_80ACC23C = 0x80AAD238; // type:func -func_80ACC30C = 0x80AAD304; // type:func -func_80ACC390 = 0x80AAD388; // type:func -func_80ACC460 = 0x80AAD458; // type:func -func_80ACC540 = 0x80AAD538; // type:func -func_80ACC5CC = 0x80AAD5C4; // type:func -func_80ACC624 = 0x80AAD61C; // type:func -EnOwl_Update = 0x80AAD698; // type:func -EnOwl_OverrideLimbDraw = 0x80AADDE8; // type:func -EnOwl_PostLimbUpdate = 0x80AADF14; // type:func -EnOwl_Draw = 0x80AADF98; // type:func -EnOwl_ChangeMode = 0x80AAE064; // type:func -func_80ACD130 = 0x80AAE0DC; // type:func -func_80ACD1C4 = 0x80AAE170; // type:func -func_80ACD220 = 0x80AAE1D0; // type:func -func_80ACD2CC = 0x80AAE27C; // type:func -func_80ACD4D4 = 0x80AAE484; // type:func -EnPart_Init = 0x80AAEB20; // type:func -EnPart_Destroy = 0x80AAEB30; // type:func -func_80ACDDE8 = 0x80AAEB40; // type:func -func_80ACE13C = 0x80AAEE94; // type:func -func_80ACE5B8 = 0x80AAF310; // type:func -func_80ACE5C8 = 0x80AAF324; // type:func -func_80ACE7E8 = 0x80AAF548; // type:func -EnPart_Update = 0x80AAF744; // type:func -func_80ACEAC0 = 0x80AAF824; // type:func -EnPart_Draw = 0x80AAF8DC; // type:func -EnPeehat_SetupAction = 0x80AB0180; // type:func -EnPeehat_Init = 0x80AB018C; // type:func -EnPeehat_Destroy = 0x80AB03FC; // type:func -EnPeehat_SpawnDust = 0x80AB0470; // type:func -EnPeehat_HitWhenGrounded = 0x80AB0608; // type:func -EnPeehat_Ground_SetStateGround = 0x80AB0824; // type:func -EnPeehat_Ground_StateGround = 0x80AB08BC; // type:func -EnPeehat_Flying_SetStateGround = 0x80AB0A10; // type:func -EnPeehat_Flying_StateGrounded = 0x80AB0A9C; // type:func -EnPeehat_Flying_SetStateFly = 0x80AB0BA0; // type:func -EnPeehat_Flying_StateFly = 0x80AB0BE8; // type:func -EnPeehat_Ground_SetStateRise = 0x80AB0D60; // type:func -EnPeehat_Ground_StateRise = 0x80AB0E08; // type:func -EnPeehat_Flying_SetStateRise = 0x80AB0FD0; // type:func -EnPeehat_Flying_StateRise = 0x80AB1078; // type:func -EnPeehat_Ground_SetStateSeekPlayer = 0x80AB1240; // type:func -EnPeehat_Ground_StateSeekPlayer = 0x80AB1290; // type:func -EnPeehat_Larva_SetStateSeekPlayer = 0x80AB140C; // type:func -EnPeehat_Larva_StateSeekPlayer = 0x80AB1458; // type:func -EnPeehat_Ground_SetStateLanding = 0x80AB1830; // type:func -EnPeehat_Ground_StateLanding = 0x80AB1878; // type:func -EnPeehat_Flying_SetStateLanding = 0x80AB1A2C; // type:func -EnPeehat_Flying_StateLanding = 0x80AB1A74; // type:func -EnPeehat_Ground_SetStateHover = 0x80AB1C24; // type:func -EnPeehat_Ground_StateHover = 0x80AB1CB4; // type:func -EnPeehat_Ground_SetStateReturnHome = 0x80AB1F10; // type:func -EnPeehat_Ground_StateReturnHome = 0x80AB1F48; // type:func -EnPeehat_SetStateAttackRecoil = 0x80AB2134; // type:func -EnPeehat_StateAttackRecoil = 0x80AB2194; // type:func -EnPeehat_SetStateBoomerangStunned = 0x80AB2370; // type:func -EnPeehat_StateBoomerangStunned = 0x80AB23F4; // type:func -EnPeehat_Adult_SetStateDie = 0x80AB2470; // type:func -EnPeehat_Adult_StateDie = 0x80AB24DC; // type:func -EnPeehat_SetStateExplode = 0x80AB279C; // type:func -EnPeehat_StateExplode = 0x80AB27F4; // type:func -EnPeehat_Adult_CollisionCheck = 0x80AB28CC; // type:func -EnPeehat_Update = 0x80AB2AB8; // type:func -EnPeehat_OverrideLimbDraw = 0x80AB2F1C; // type:func -EnPeehat_PostLimbDraw = 0x80AB30F4; // type:func -EnPeehat_Draw = 0x80AB32A8; // type:func -EnPoDesert_Init = 0x80AB3880; // type:func -EnPoDesert_Destroy = 0x80AB39F0; // type:func -EnPoDesert_SetNextPathPoint = 0x80AB3A38; // type:func -EnPoDesert_SetupMoveToNextPoint = 0x80AB3B94; // type:func -EnPoDesert_SetupDisappear = 0x80AB3BD8; // type:func -EnPoDesert_UpdateSpeedModifier = 0x80AB3C38; // type:func -EnPoDesert_WaitForPlayer = 0x80AB3CA8; // type:func -EnPoDesert_MoveToNextPoint = 0x80AB3D74; // type:func -EnPoDesert_Disappear = 0x80AB3F08; // type:func -EnPoDesert_Update = 0x80AB3FF0; // type:func -EnPoDesert_OverrideLimbDraw = 0x80AB40E4; // type:func -EnPoDesert_PostLimbDraw = 0x80AB4170; // type:func -EnPoDesert_Draw = 0x80AB43C4; // type:func -EnPoField_Init = 0x80AB4640; // type:func -EnPoField_Destroy = 0x80AB4848; // type:func -EnPoField_SetupWaitForSpawn = 0x80AB48A8; // type:func -EnPoField_SetupAppear = 0x80AB496C; // type:func -EnPoField_SetupCirclePlayer = 0x80AB4A8C; // type:func -EnPoField_SetupFlee = 0x80AB4B34; // type:func -EnPoField_SetupDamage = 0x80AB4BC8; // type:func -EnPoField_SetupDeath = 0x80AB4C84; // type:func -EnPoField_SetupDisappear = 0x80AB4CD8; // type:func -EnPoField_SetupSoulIdle = 0x80AB4D50; // type:func -func_80AD42B0 = 0x80AB4E00; // type:func -func_80AD4384 = 0x80AB4ED4; // type:func -EnPoField_SetupSoulDisappear = 0x80AB4F8C; // type:func -EnPoField_SetupInteractWithSoul = 0x80AB4FA0; // type:func -EnPoField_CorrectYPos = 0x80AB4FC8; // type:func -EnPoField_SetFleeSpeed = 0x80AB50AC; // type:func -EnPoField_WaitForSpawn = 0x80AB51BC; // type:func -EnPoField_Appear = 0x80AB5424; // type:func -EnPoField_CirclePlayer = 0x80AB55C0; // type:func -EnPoField_Flee = 0x80AB5800; // type:func -EnPoField_Damage = 0x80AB59A4; // type:func -EnPoField_Death = 0x80AB5A34; // type:func -EnPoField_Disappear = 0x80AB5E4C; // type:func -EnPoField_SoulIdle = 0x80AB5F4C; // type:func -EnPoField_SoulUpdateProperties = 0x80AB6030; // type:func -func_80AD587C = 0x80AB63D8; // type:func -func_80AD58D4 = 0x80AB6430; // type:func -EnPoField_SoulDisappear = 0x80AB6634; // type:func -EnPoField_SoulInteract = 0x80AB6674; // type:func -EnPoField_TestForDamage = 0x80AB67D4; // type:func -EnPoField_SpawnFlame = 0x80AB686C; // type:func -EnPoField_UpdateFlame = 0x80AB68C0; // type:func -EnPoField_DrawFlame = 0x80AB69EC; // type:func -func_80AD619C = 0x80AB6CC4; // type:func -func_80AD6330 = 0x80AB6E58; // type:func -EnPoField_Update = 0x80AB6FCC; // type:func -EnPoField_OverrideLimbDraw2 = 0x80AB70F8; // type:func -EnPoField_PostLimDraw2 = 0x80AB7200; // type:func -EnPoField_Draw = 0x80AB7410; // type:func -EnPoField_UpdateDead = 0x80AB76F4; // type:func -EnPoField_DrawSoul = 0x80AB7750; // type:func -EnPoRelay_Init = 0x80AB80D0; // type:func -EnPoRelay_Destroy = 0x80AB8258; // type:func -EnPoRelay_SetupIdle = 0x80AB82A0; // type:func -EnPoRelay_Vec3sToVec3f = 0x80AB82DC; // type:func -EnPoRelay_SetupRace = 0x80AB8320; // type:func -EnPoRelay_SetupEndRace = 0x80AB83E8; // type:func -EnPoRelay_CorrectY = 0x80AB8428; // type:func -EnPoRelay_Idle = 0x80AB84D0; // type:func -EnPoRelay_Talk = 0x80AB858C; // type:func -EnPoRelay_Race = 0x80AB8600; // type:func -EnPoRelay_EndRace = 0x80AB8B14; // type:func -EnPoRelay_Talk2 = 0x80AB8BD4; // type:func -EnPoRelay_DisappearAndReward = 0x80AB8CAC; // type:func -EnPoRelay_Update = 0x80AB9178; // type:func -EnPoRelay_PostLimbDraw = 0x80AB926C; // type:func -EnPoRelay_Draw = 0x80AB9460; // type:func -EnPoSisters_Init = 0x80AB97E0; // type:func -EnPoSisters_Destroy = 0x80AB9A2C; // type:func -func_80AD9240 = 0x80AB9A94; // type:func -func_80AD9368 = 0x80AB9BC0; // type:func -func_80AD93C4 = 0x80AB9C1C; // type:func -func_80AD943C = 0x80AB9C94; // type:func -func_80AD944C = 0x80AB9CA8; // type:func -func_80AD94E0 = 0x80AB9D3C; // type:func -func_80AD9568 = 0x80AB9DC4; // type:func -func_80AD95D8 = 0x80AB9E34; // type:func -func_80AD96A4 = 0x80AB9F00; // type:func -func_80AD9718 = 0x80AB9F74; // type:func -func_80AD97C8 = 0x80ABA024; // type:func -func_80AD98F4 = 0x80ABA150; // type:func -func_80AD99D4 = 0x80ABA230; // type:func -func_80AD9A54 = 0x80ABA2B0; // type:func -func_80AD9AA8 = 0x80ABA304; // type:func -func_80AD9C24 = 0x80ABA480; // type:func -func_80AD9D44 = 0x80ABA5A0; // type:func -func_80AD9DF0 = 0x80ABA64C; // type:func -func_80AD9E60 = 0x80ABA6BC; // type:func -func_80AD9F1C = 0x80ABA778; // type:func -func_80AD9F90 = 0x80ABA7EC; // type:func -func_80ADA028 = 0x80ABA884; // type:func -func_80ADA094 = 0x80ABA8F0; // type:func -func_80ADA10C = 0x80ABA968; // type:func -func_80ADA1B8 = 0x80ABAA18; // type:func -func_80ADA25C = 0x80ABAABC; // type:func -func_80ADA2BC = 0x80ABAB1C; // type:func -func_80ADA35C = 0x80ABABBC; // type:func -func_80ADA4A8 = 0x80ABAD08; // type:func -func_80ADA530 = 0x80ABAD90; // type:func -func_80ADA6A0 = 0x80ABAF00; // type:func -func_80ADA7F0 = 0x80ABB050; // type:func -func_80ADA8C0 = 0x80ABB120; // type:func -func_80ADA9E8 = 0x80ABB248; // type:func -func_80ADAAA4 = 0x80ABB304; // type:func -func_80ADAC70 = 0x80ABB4D0; // type:func -func_80ADAD54 = 0x80ABB5B4; // type:func -func_80ADAE6C = 0x80ABB6CC; // type:func -func_80ADAFC0 = 0x80ABB820; // type:func -func_80ADB17C = 0x80ABB9DC; // type:func -func_80ADB2B8 = 0x80ABBB18; // type:func -func_80ADB338 = 0x80ABBB94; // type:func -func_80ADB4B0 = 0x80ABBD10; // type:func -func_80ADB51C = 0x80ABBD7C; // type:func -func_80ADB770 = 0x80ABBFD0; // type:func -func_80ADB9F0 = 0x80ABC250; // type:func -func_80ADBB6C = 0x80ABC3CC; // type:func -func_80ADBBF4 = 0x80ABC454; // type:func -func_80ADBC88 = 0x80ABC4E8; // type:func -func_80ADBD38 = 0x80ABC59C; // type:func -func_80ADBD8C = 0x80ABC5F0; // type:func -func_80ADBEE8 = 0x80ABC750; // type:func -func_80ADBF58 = 0x80ABC7C0; // type:func -func_80ADC034 = 0x80ABC89C; // type:func -func_80ADC10C = 0x80ABC974; // type:func -EnPoSisters_Update = 0x80ABCB38; // type:func -func_80ADC55C = 0x80ABCDCC; // type:func -EnPoSisters_OverrideLimbDraw = 0x80ABCFEC; // type:func -EnPoSisters_PostLimbDraw = 0x80ABD1DC; // type:func -EnPoSisters_Draw = 0x80ABD8AC; // type:func -EnPoh_Init = 0x80ABE4D0; // type:func -EnPoh_Destroy = 0x80ABE818; // type:func -func_80ADE114 = 0x80ABE898; // type:func -EnPoh_SetupIdle = 0x80ABE8F0; // type:func -func_80ADE1BC = 0x80ABE940; // type:func -EnPoh_SetupAttack = 0x80ABE990; // type:func -func_80ADE28C = 0x80ABEA10; // type:func -func_80ADE368 = 0x80ABEAEC; // type:func -EnPoh_SetupInitialAction = 0x80ABEB60; // type:func -func_80ADE48C = 0x80ABEC10; // type:func -func_80ADE4C8 = 0x80ABEC50; // type:func -func_80ADE514 = 0x80ABEC9C; // type:func -EnPoh_SetupDisappear = 0x80ABECF4; // type:func -EnPoh_SetupAppear = 0x80ABED4C; // type:func -EnPoh_SetupDeath = 0x80ABED98; // type:func -func_80ADE6D4 = 0x80ABEE64; // type:func -EnPoh_Talk = 0x80ABEF50; // type:func -func_80ADE950 = 0x80ABF0E8; // type:func -func_80ADE998 = 0x80ABF134; // type:func -func_80ADE9BC = 0x80ABF15C; // type:func -EnPoh_MoveTowardsPlayerHeight = 0x80ABF170; // type:func -func_80ADEA5C = 0x80ABF204; // type:func -func_80ADEAC4 = 0x80ABF274; // type:func -EnPoh_Idle = 0x80ABF330; // type:func -func_80ADEC9C = 0x80ABF44C; // type:func -EnPoh_Attack = 0x80ABF5B0; // type:func -func_80ADEECC = 0x80ABF680; // type:func -func_80ADEF38 = 0x80ABF6EC; // type:func -EnPoh_ComposerAppear = 0x80ABF86C; // type:func -func_80ADF15C = 0x80ABF910; // type:func -func_80ADF574 = 0x80ABFD28; // type:func -func_80ADF5E0 = 0x80ABFD94; // type:func -EnPoh_Disappear = 0x80ABFE14; // type:func -EnPoh_Appear = 0x80ABFF30; // type:func -func_80ADF894 = 0x80AC0050; // type:func -EnPoh_Death = 0x80AC0150; // type:func -func_80ADFA90 = 0x80AC0250; // type:func -func_80ADFE28 = 0x80AC05E8; // type:func -func_80ADFE80 = 0x80AC0640; // type:func -func_80AE009C = 0x80AC085C; // type:func -EnPoh_TalkRegular = 0x80AC089C; // type:func -EnPoh_TalkComposer = 0x80AC09C8; // type:func -func_80AE032C = 0x80AC0AF4; // type:func -EnPoh_UpdateVisibility = 0x80AC0B8C; // type:func -EnPoh_Update = 0x80AC0CFC; // type:func -func_80AE067C = 0x80AC0E48; // type:func -func_80AE089C = 0x80AC1068; // type:func -EnPoh_UpdateLiving = 0x80AC11E8; // type:func -EnPoh_OverrideLimbDraw = 0x80AC13C8; // type:func -EnPoh_PostLimbDraw = 0x80AC14BC; // type:func -EnPoh_DrawRegular = 0x80AC16AC; // type:func -EnPoh_DrawComposer = 0x80AC18D4; // type:func -EnPoh_UpdateDead = 0x80AC1D50; // type:func -EnPoh_DrawSoul = 0x80AC1DA4; // type:func -EnPubox_Init = 0x80AC26C0; // type:func -EnPubox_Destroy = 0x80AC27F8; // type:func -EnPubox_Update = 0x80AC282C; // type:func -EnPubox_Draw = 0x80AC297C; // type:func -EnRd_SetupAction = 0x80AC2A00; // type:func -EnRd_Init = 0x80AC2A0C; // type:func -EnRd_Destroy = 0x80AC2BF8; // type:func -EnRd_UpdateMourningTarget = 0x80AC2C3C; // type:func -EnRd_SetupIdle = 0x80AC2CA8; // type:func -EnRd_Idle = 0x80AC2D50; // type:func -EnRd_SetupRiseFromCoffin = 0x80AC2F7C; // type:func -EnRd_RiseFromCoffin = 0x80AC301C; // type:func -EnRd_SetupWalkToPlayer = 0x80AC319C; // type:func -EnRd_WalkToPlayer = 0x80AC3228; // type:func -EnRd_SetupWalkToHome = 0x80AC355C; // type:func -EnRd_WalkToHome = 0x80AC35DC; // type:func -EnRd_SetupWalkToParent = 0x80AC37F0; // type:func -EnRd_WalkToParent = 0x80AC3874; // type:func -EnRd_SetupGrab = 0x80AC3A08; // type:func -EnRd_Grab = 0x80AC3A6C; // type:func -EnRd_SetupAttemptPlayerFreeze = 0x80AC3DD8; // type:func -EnRd_AttemptPlayerFreeze = 0x80AC3E50; // type:func -EnRd_SetupStandUp = 0x80AC3F48; // type:func -EnRd_StandUp = 0x80AC3F94; // type:func -EnRd_SetupCrouch = 0x80AC3FF0; // type:func -EnRd_Crouch = 0x80AC4070; // type:func -EnRd_SetupDamaged = 0x80AC40AC; // type:func -EnRd_Damaged = 0x80AC4138; // type:func -EnRd_SetupDead = 0x80AC4248; // type:func -EnRd_Dead = 0x80AC42C0; // type:func -EnRd_SetupStunned = 0x80AC440C; // type:func -EnRd_Stunned = 0x80AC44F8; // type:func -EnRd_TurnTowardsPlayer = 0x80AC45CC; // type:func -EnRd_UpdateDamage = 0x80AC4744; // type:func -EnRd_Update = 0x80AC4910; // type:func -EnRd_OverrideLimbDraw = 0x80AC4AFC; // type:func -EnRd_PostLimbDraw = 0x80AC4B58; // type:func -EnRd_Draw = 0x80AC4CA0; // type:func -EnReeba_Init = 0x80AC52C0; // type:func -EnReeba_Destroy = 0x80AC549C; // type:func -EnReeba_SetupSurface = 0x80AC5514; // type:func -EnReeba_Surface = 0x80AC5628; // type:func -EnReeba_Move = 0x80AC5848; // type:func -EnReeba_SetupMoveBig = 0x80AC5964; // type:func -EnReeba_MoveBig = 0x80AC5988; // type:func -EnReeba_Recoiled = 0x80AC5BF8; // type:func -EnReeba_SetupSink = 0x80AC5C64; // type:func -EnReeba_Sink = 0x80AC5CBC; // type:func -EnReeba_SetupDamaged = 0x80AC5DCC; // type:func -EnReeba_Damaged = 0x80AC5E30; // type:func -EnReeba_SetupStunned = 0x80AC5EC8; // type:func -EnReeba_Stunned = 0x80AC5F18; // type:func -EnReeba_StunDie = 0x80AC607C; // type:func -EnReeba_SetupDie = 0x80AC61A4; // type:func -EnReeba_Die = 0x80AC6218; // type:func -EnReeba_StunRecover = 0x80AC63F8; // type:func -EnReeba_CheckDamage = 0x80AC648C; // type:func -EnReeba_Update = 0x80AC66C8; // type:func -EnReeba_Draw = 0x80AC6978; // type:func -EnRiverSound_Init = 0x80AC6D30; // type:func -EnRiverSound_Destroy = 0x80AC6E00; // type:func -EnRiverSound_FindClosestPointOnLineSegment = 0x80AC6E58; // type:func -EnRiverSound_GetSfxPos = 0x80AC6FC4; // type:func -EnRiverSound_Update = 0x80AC72C0; // type:func -EnRiverSound_Draw = 0x80AC7490; // type:func -EnRl_Destroy = 0x80AC76C0; // type:func -func_80AE72D0 = 0x80AC76E4; // type:func -func_80AE744C = 0x80AC776C; // type:func -func_80AE7494 = 0x80AC77B4; // type:func -func_80AE74B4 = 0x80AC77D8; // type:func -func_80AE74FC = 0x80AC7824; // type:func -func_80AE7544 = 0x80AC7870; // type:func -func_80AE7590 = 0x80AC78BC; // type:func -func_80AE7668 = 0x80AC799C; // type:func -func_80AE7698 = 0x80AC79D0; // type:func -func_80AE772C = 0x80AC7A64; // type:func -func_80AE7798 = 0x80AC7AD0; // type:func -func_80AE77B8 = 0x80AC7AF0; // type:func -func_80AE77F8 = 0x80AC7B38; // type:func -func_80AE7838 = 0x80AC7B7C; // type:func -func_80AE7878 = 0x80AC7BC4; // type:func -func_80AE78D4 = 0x80AC7C1C; // type:func -func_80AE7954 = 0x80AC7C9C; // type:func -func_80AE79A4 = 0x80AC7CEC; // type:func -func_80AE7AF8 = 0x80AC7E40; // type:func -func_80AE7BF8 = 0x80AC7F4C; // type:func -func_80AE7C64 = 0x80AC7FB8; // type:func -func_80AE7C94 = 0x80AC7FD8; // type:func -func_80AE7CE8 = 0x80AC8020; // type:func -func_80AE7D40 = 0x80AC8064; // type:func -func_80AE7D94 = 0x80AC80AC; // type:func -EnRl_Update = 0x80AC81F4; // type:func -EnRl_Init = 0x80AC823C; // type:func -func_80AE7FD0 = 0x80AC82A8; // type:func -func_80AE7FDC = 0x80AC82B8; // type:func -EnRl_Draw = 0x80AC83EC; // type:func -EnRr_Init = 0x80AC85A0; // type:func -EnRr_Destroy = 0x80AC8740; // type:func -EnRr_Move = 0x80AC8780; // type:func -EnRr_SetupReach = 0x80AC87A8; // type:func -EnRr_SetupNeutral = 0x80AC88A8; // type:func -EnRr_SetupGrabPlayer = 0x80AC8974; // type:func -EnRr_GetMessage = 0x80AC8A7C; // type:func -EnRr_SetupReleasePlayer = 0x80AC8AD0; // type:func -EnRr_SetupDamage = 0x80AC8CCC; // type:func -EnRr_SetupApproach = 0x80AC8D98; // type:func -EnRr_SetupDeath = 0x80AC8E50; // type:func -EnRr_SetupStunned = 0x80AC8EF0; // type:func -EnRr_CollisionCheck = 0x80AC8FFC; // type:func -EnRr_InitBodySegments = 0x80AC938C; // type:func -EnRr_UpdateBodySegments = 0x80AC954C; // type:func -EnRr_Approach = 0x80AC96D0; // type:func -EnRr_Reach = 0x80AC9790; // type:func -EnRr_GrabPlayer = 0x80AC98AC; // type:func -EnRr_Damage = 0x80AC99A4; // type:func -EnRr_Death = 0x80AC9A1C; // type:func -EnRr_Retreat = 0x80AC9D90; // type:func -EnRr_Stunned = 0x80AC9E24; // type:func -EnRr_Update = 0x80AC9E8C; // type:func -EnRr_Draw = 0x80ACA2B8; // type:func -func_80AEAC10 = 0x80ACAAD0; // type:func -func_80AEAC54 = 0x80ACAB14; // type:func -func_80AEACDC = 0x80ACAB9C; // type:func -func_80AEAD20 = 0x80ACABE0; // type:func -EnRu1_DestroyColliders = 0x80ACAC58; // type:func -func_80AEADD8 = 0x80ACAC98; // type:func -func_80AEADE0 = 0x80ACACA4; // type:func -func_80AEADF0 = 0x80ACACB8; // type:func -EnRu1_Destroy = 0x80ACACC8; // type:func -EnRu1_UpdateEyes = 0x80ACACE8; // type:func -EnRu1_SetEyeIndex = 0x80ACAD70; // type:func -EnRu1_SetMouthIndex = 0x80ACAD88; // type:func -func_80AEAECC = 0x80ACADA0; // type:func -EnRu1_IsCsStateIdle = 0x80ACAE08; // type:func -EnRu1_GetCue = 0x80ACAE28; // type:func -func_80AEAFA0 = 0x80ACAE74; // type:func -func_80AEAFE0 = 0x80ACAEB4; // type:func -func_80AEB020 = 0x80ACAEF4; // type:func -EnRu1_FindSwitch = 0x80ACAF5C; // type:func -func_80AEB0EC = 0x80ACAFA4; // type:func -func_80AEB104 = 0x80ACAFBC; // type:func -func_80AEB124 = 0x80ACAFDC; // type:func -func_80AEB174 = 0x80ACB02C; // type:func -func_80AEB1B4 = 0x80ACB070; // type:func -func_80AEB264 = 0x80ACB09C; // type:func -EnRu1_UpdateSkelAnime = 0x80ACB158; // type:func -func_80AEB364 = 0x80ACB19C; // type:func -func_80AEB3A4 = 0x80ACB1DC; // type:func -func_80AEB3CC = 0x80ACB204; // type:func -func_80AEB3DC = 0x80ACB218; // type:func -EnRu1_GetCueChannel3 = 0x80ACB274; // type:func -func_80AEB458 = 0x80ACB294; // type:func -func_80AEB480 = 0x80ACB2BC; // type:func -EnRu1_SpawnRipple = 0x80ACB2E4; // type:func -func_80AEB50C = 0x80ACB34C; // type:func -func_80AEB59C = 0x80ACB3DC; // type:func -EnRu1_SpawnSplash = 0x80ACB4C8; // type:func -func_80AEB6E0 = 0x80ACB52C; // type:func -func_80AEB738 = 0x80ACB588; // type:func -func_80AEB7D0 = 0x80ACB620; // type:func -func_80AEB7E0 = 0x80ACB634; // type:func -func_80AEB87C = 0x80ACB6D0; // type:func -func_80AEB89C = 0x80ACB6F4; // type:func -func_80AEB914 = 0x80ACB76C; // type:func -func_80AEB934 = 0x80ACB78C; // type:func -func_80AEB954 = 0x80ACB7AC; // type:func -func_80AEB974 = 0x80ACB7CC; // type:func -func_80AEBA0C = 0x80ACB864; // type:func -func_80AEBA2C = 0x80ACB884; // type:func -func_80AEBAFC = 0x80ACB954; // type:func -func_80AEBB3C = 0x80ACB998; // type:func -func_80AEBB78 = 0x80ACB9D8; // type:func -func_80AEBBF4 = 0x80ACBA58; // type:func -func_80AEBC30 = 0x80ACBA98; // type:func -func_80AEBC84 = 0x80ACBAF0; // type:func -func_80AEBCB8 = 0x80ACBB28; // type:func -func_80AEBD1C = 0x80ACBB8C; // type:func -func_80AEBD94 = 0x80ACBC04; // type:func -func_80AEBE3C = 0x80ACBCAC; // type:func -func_80AEBEC8 = 0x80ACBD3C; // type:func -func_80AEBF60 = 0x80ACBDD4; // type:func -func_80AEBFD8 = 0x80ACBE50; // type:func -func_80AEC070 = 0x80ACBEE8; // type:func -func_80AEC0B4 = 0x80ACBF30; // type:func -func_80AEC100 = 0x80ACBF84; // type:func -func_80AEC130 = 0x80ACBFB8; // type:func -func_80AEC17C = 0x80ACC008; // type:func -func_80AEC1D4 = 0x80ACC068; // type:func -func_80AEC244 = 0x80ACC0DC; // type:func -func_80AEC2C0 = 0x80ACC15C; // type:func -func_80AEC320 = 0x80ACC1C0; // type:func -func_80AEC40C = 0x80ACC2B4; // type:func -func_80AEC4CC = 0x80ACC374; // type:func -func_80AEC4F4 = 0x80ACC39C; // type:func -func_80AEC5FC = 0x80ACC4A4; // type:func -func_80AEC650 = 0x80ACC4F8; // type:func -func_80AEC6B0 = 0x80ACC55C; // type:func -func_80AEC6E4 = 0x80ACC594; // type:func -func_80AEC780 = 0x80ACC634; // type:func -func_80AEC81C = 0x80ACC6D4; // type:func -func_80AEC8B8 = 0x80ACC770; // type:func -func_80AEC93C = 0x80ACC7F8; // type:func -func_80AEC9C4 = 0x80ACC880; // type:func -func_80AECA18 = 0x80ACC8D4; // type:func -func_80AECA44 = 0x80ACC904; // type:func -func_80AECA94 = 0x80ACC958; // type:func -func_80AECAB4 = 0x80ACC978; // type:func -func_80AECAD4 = 0x80ACC998; // type:func -func_80AECB18 = 0x80ACC9E0; // type:func -func_80AECB60 = 0x80ACCA2C; // type:func -func_80AECBB8 = 0x80ACCA88; // type:func -func_80AECC1C = 0x80ACCAF0; // type:func -func_80AECC84 = 0x80ACCB5C; // type:func -func_80AECCB0 = 0x80ACCB88; // type:func -func_80AECDA0 = 0x80ACCC78; // type:func -func_80AECE04 = 0x80ACCCDC; // type:func -func_80AECE20 = 0x80ACCCFC; // type:func -func_80AECEB4 = 0x80ACCD8C; // type:func -func_80AECF6C = 0x80ACCE44; // type:func -func_80AED084 = 0x80ACCF5C; // type:func -func_80AED0B0 = 0x80ACCF88; // type:func -func_80AED0C8 = 0x80ACCFA0; // type:func -func_80AED0D8 = 0x80ACCFB4; // type:func -func_80AED110 = 0x80ACCFEC; // type:func -func_80AED154 = 0x80ACD030; // type:func -func_80AED19C = 0x80ACD078; // type:func -func_80AED218 = 0x80ACD0F4; // type:func -func_80AED304 = 0x80ACD1E4; // type:func -func_80AED324 = 0x80ACD204; // type:func -func_80AED344 = 0x80ACD224; // type:func -func_80AED374 = 0x80ACD258; // type:func -func_80AED3A4 = 0x80ACD28C; // type:func -func_80AED3E0 = 0x80ACD2CC; // type:func -func_80AED414 = 0x80ACD304; // type:func -func_80AED44C = 0x80ACD344; // type:func -func_80AED4FC = 0x80ACD3F8; // type:func -func_80AED520 = 0x80ACD420; // type:func -func_80AED57C = 0x80ACD480; // type:func -func_80AED5B8 = 0x80ACD4C0; // type:func -func_80AED5DC = 0x80ACD4E8; // type:func -func_80AED600 = 0x80ACD510; // type:func -func_80AED624 = 0x80ACD538; // type:func -func_80AED6DC = 0x80ACD5F0; // type:func -func_80AED6F8 = 0x80ACD610; // type:func -func_80AED738 = 0x80ACD650; // type:func -func_80AED83C = 0x80ACD758; // type:func -func_80AED8DC = 0x80ACD7FC; // type:func -func_80AEDAE0 = 0x80ACDA00; // type:func -func_80AEDB30 = 0x80ACDA54; // type:func -func_80AEDEF4 = 0x80ACDE14; // type:func -func_80AEDFF4 = 0x80ACDF18; // type:func -func_80AEE02C = 0x80ACDF58; // type:func -func_80AEE050 = 0x80ACDF80; // type:func -func_80AEE264 = 0x80ACE19C; // type:func -func_80AEE2F8 = 0x80ACE230; // type:func -func_80AEE394 = 0x80ACE2CC; // type:func -func_80AEE488 = 0x80ACE3C0; // type:func -func_80AEE568 = 0x80ACE4A0; // type:func -func_80AEE628 = 0x80ACE564; // type:func -func_80AEE6D0 = 0x80ACE608; // type:func -func_80AEE7C4 = 0x80ACE6FC; // type:func -func_80AEEAC8 = 0x80ACEA1C; // type:func -func_80AEEB24 = 0x80ACEA78; // type:func -func_80AEEBB4 = 0x80ACEB08; // type:func -func_80AEEBD4 = 0x80ACEB28; // type:func -func_80AEEC5C = 0x80ACEBB4; // type:func -func_80AEECF0 = 0x80ACEC4C; // type:func -func_80AEED58 = 0x80ACECB8; // type:func -func_80AEEDCC = 0x80ACED30; // type:func -func_80AEEE34 = 0x80ACED9C; // type:func -func_80AEEE9C = 0x80ACEE08; // type:func -func_80AEEF08 = 0x80ACEE78; // type:func -func_80AEEF5C = 0x80ACEED0; // type:func -func_80AEEF68 = 0x80ACEEE0; // type:func -func_80AEEFEC = 0x80ACEF68; // type:func -func_80AEF080 = 0x80ACEFFC; // type:func -func_80AEF0BC = 0x80ACF03C; // type:func -func_80AEF170 = 0x80ACF0F4; // type:func -func_80AEF188 = 0x80ACF10C; // type:func -func_80AEF1F0 = 0x80ACF174; // type:func -func_80AEF29C = 0x80ACF220; // type:func -func_80AEF2AC = 0x80ACF234; // type:func -func_80AEF2D0 = 0x80ACF25C; // type:func -func_80AEF354 = 0x80ACF2E8; // type:func -func_80AEF3A8 = 0x80ACF344; // type:func -func_80AEF40C = 0x80ACF3AC; // type:func -func_80AEF4A8 = 0x80ACF44C; // type:func -func_80AEF4E0 = 0x80ACF484; // type:func -func_80AEF51C = 0x80ACF4C4; // type:func -func_80AEF540 = 0x80ACF4EC; // type:func -func_80AEF5B8 = 0x80ACF568; // type:func -func_80AEF624 = 0x80ACF5D8; // type:func -func_80AEF728 = 0x80ACF6DC; // type:func -func_80AEF79C = 0x80ACF750; // type:func -func_80AEF820 = 0x80ACF7D8; // type:func -func_80AEF890 = 0x80ACF848; // type:func -func_80AEF930 = 0x80ACF8D4; // type:func -func_80AEF99C = 0x80ACF944; // type:func -func_80AEF9D8 = 0x80ACF980; // type:func -func_80AEFA2C = 0x80ACF9C4; // type:func -func_80AEFAAC = 0x80ACFA3C; // type:func -func_80AEFB04 = 0x80ACFA84; // type:func -func_80AEFB68 = 0x80ACFAE0; // type:func -func_80AEFBC8 = 0x80ACFB38; // type:func -func_80AEFC24 = 0x80ACFB98; // type:func -func_80AEFC54 = 0x80ACFBCC; // type:func -func_80AEFCE8 = 0x80ACFC68; // type:func -func_80AEFD38 = 0x80ACFCB8; // type:func -func_80AEFDC0 = 0x80ACFD44; // type:func -func_80AEFE38 = 0x80ACFDC8; // type:func -func_80AEFE84 = 0x80ACFE14; // type:func -func_80AEFE9C = 0x80ACFE2C; // type:func -func_80AEFECC = 0x80ACFE60; // type:func -func_80AEFF40 = 0x80ACFEDC; // type:func -func_80AEFF94 = 0x80ACFF38; // type:func -EnRu1_Update = 0x80ACFFD4; // type:func -EnRu1_Init = 0x80AD001C; // type:func -func_80AF0278 = 0x80AD0158; // type:func -EnRu1_OverrideLimbDraw = 0x80AD01C8; // type:func -EnRu1_PostLimbDraw = 0x80AD0234; // type:func -EnRu1_DrawNothing = 0x80AD02C0; // type:func -EnRu1_DrawOpa = 0x80AD02D0; // type:func -EnRu1_DrawXlu = 0x80AD0474; // type:func -EnRu1_Draw = 0x80AD0614; // type:func -func_80AF2550 = 0x80AD2170; // type:func -func_80AF259C = 0x80AD21BC; // type:func -EnRu2_Destroy = 0x80AD2200; // type:func -func_80AF2608 = 0x80AD222C; // type:func -func_80AF2690 = 0x80AD22B4; // type:func -func_80AF26A0 = 0x80AD22C8; // type:func -func_80AF2744 = 0x80AD22D8; // type:func -EnRu2_UpdateSkelAnime = 0x80AD2320; // type:func -EnRu2_GetCue = 0x80AD2344; // type:func -func_80AF27D0 = 0x80AD236C; // type:func -func_80AF281C = 0x80AD23B8; // type:func -func_80AF2868 = 0x80AD2404; // type:func -func_80AF28E8 = 0x80AD2484; // type:func -func_80AF2978 = 0x80AD2514; // type:func -func_80AF2994 = 0x80AD2534; // type:func -func_80AF29DC = 0x80AD257C; // type:func -func_80AF2A38 = 0x80AD25D8; // type:func -func_80AF2AB4 = 0x80AD2654; // type:func -func_80AF2B44 = 0x80AD26F0; // type:func -func_80AF2B94 = 0x80AD2740; // type:func -func_80AF2BC0 = 0x80AD276C; // type:func -func_80AF2C54 = 0x80AD2800; // type:func -func_80AF2C68 = 0x80AD2814; // type:func -func_80AF2CB4 = 0x80AD2860; // type:func -func_80AF2CD4 = 0x80AD2880; // type:func -func_80AF2CF4 = 0x80AD28A0; // type:func -func_80AF2D2C = 0x80AD28DC; // type:func -func_80AF2D6C = 0x80AD2924; // type:func -func_80AF2DAC = 0x80AD2968; // type:func -func_80AF2DEC = 0x80AD29B0; // type:func -func_80AF2E1C = 0x80AD29E4; // type:func -func_80AF2E64 = 0x80AD2A28; // type:func -func_80AF2E84 = 0x80AD2A48; // type:func -func_80AF2F04 = 0x80AD2AC8; // type:func -func_80AF2F58 = 0x80AD2B1C; // type:func -func_80AF30AC = 0x80AD2C70; // type:func -func_80AF3144 = 0x80AD2D0C; // type:func -func_80AF3174 = 0x80AD2D2C; // type:func -func_80AF31C8 = 0x80AD2D74; // type:func -func_80AF321C = 0x80AD2DBC; // type:func -func_80AF3394 = 0x80AD2F04; // type:func -func_80AF33E0 = 0x80AD2F4C; // type:func -func_80AF346C = 0x80AD2FD8; // type:func -func_80AF34A4 = 0x80AD3010; // type:func -func_80AF34F0 = 0x80AD305C; // type:func -func_80AF3530 = 0x80AD309C; // type:func -func_80AF3564 = 0x80AD30D0; // type:func -func_80AF3604 = 0x80AD315C; // type:func -func_80AF3624 = 0x80AD317C; // type:func -func_80AF366C = 0x80AD31C8; // type:func -func_80AF36AC = 0x80AD3210; // type:func -func_80AF36EC = 0x80AD3254; // type:func -func_80AF3718 = 0x80AD3284; // type:func -func_80AF3744 = 0x80AD32B4; // type:func -func_80AF37AC = 0x80AD331C; // type:func -func_80AF37CC = 0x80AD333C; // type:func -func_80AF383C = 0x80AD33A8; // type:func -func_80AF3878 = 0x80AD33E4; // type:func -func_80AF38D0 = 0x80AD3444; // type:func -func_80AF390C = 0x80AD3480; // type:func -func_80AF39DC = 0x80AD3550; // type:func -func_80AF3ADC = 0x80AD363C; // type:func -func_80AF3B74 = 0x80AD36D4; // type:func -func_80AF3BC8 = 0x80AD3728; // type:func -func_80AF3C04 = 0x80AD376C; // type:func -func_80AF3C64 = 0x80AD37D4; // type:func -func_80AF3CB8 = 0x80AD3830; // type:func -func_80AF3D0C = 0x80AD388C; // type:func -func_80AF3D60 = 0x80AD38E8; // type:func -EnRu2_Update = 0x80AD394C; // type:func -EnRu2_Init = 0x80AD3994; // type:func -func_80AF3F14 = 0x80AD3A8C; // type:func -func_80AF3F20 = 0x80AD3A9C; // type:func -EnRu2_Draw = 0x80AD3BD0; // type:func -func_80AF5560 = 0x80AD4EF0; // type:func -EnSa_GetTextId = 0x80AD4F70; // type:func -EnSa_UpdateTalkState = 0x80AD5084; // type:func -func_80AF57D8 = 0x80AD5168; // type:func -func_80AF5894 = 0x80AD5228; // type:func -func_80AF58B8 = 0x80AD5250; // type:func -func_80AF594C = 0x80AD52E4; // type:func -func_80AF59E0 = 0x80AD5378; // type:func -func_80AF5A74 = 0x80AD540C; // type:func -func_80AF5B10 = 0x80AD54A8; // type:func -func_80AF5BA4 = 0x80AD553C; // type:func -func_80AF5C40 = 0x80AD55D8; // type:func -func_80AF5CD4 = 0x80AD566C; // type:func -func_80AF5CE4 = 0x80AD5684; // type:func -EnSa_ChangeAnim = 0x80AD572C; // type:func -func_80AF5DFC = 0x80AD579C; // type:func -func_80AF5F34 = 0x80AD58D4; // type:func -func_80AF603C = 0x80AD59DC; // type:func -func_80AF609C = 0x80AD5A3C; // type:func -func_80AF6130 = 0x80AD5AD8; // type:func -func_80AF6170 = 0x80AD5B1C; // type:func -EnSa_Init = 0x80AD5B60; // type:func -EnSa_Destroy = 0x80AD5DD0; // type:func -func_80AF6448 = 0x80AD5DFC; // type:func -func_80AF67D0 = 0x80AD6188; // type:func -func_80AF683C = 0x80AD61FC; // type:func -func_80AF68E4 = 0x80AD62A4; // type:func -func_80AF6B20 = 0x80AD64E4; // type:func -EnSa_Update = 0x80AD65A4; // type:func -EnSa_OverrideLimbDraw = 0x80AD6734; // type:func -EnSa_PostLimbDraw = 0x80AD68DC; // type:func -EnSa_Draw = 0x80AD6938; // type:func -EnSb_Init = 0x80AD7160; // type:func -EnSb_Destroy = 0x80AD7248; // type:func -EnSb_SpawnBubbles = 0x80AD7288; // type:func -EnSb_SetupWaitClosed = 0x80AD7338; // type:func -EnSb_SetupOpen = 0x80AD73B0; // type:func -EnSb_SetupWaitOpen = 0x80AD742C; // type:func -EnSb_SetupLunge = 0x80AD74A0; // type:func -EnSb_SetupBounce = 0x80AD7548; // type:func -EnSb_SetupCooldown = 0x80AD75C0; // type:func -EnSb_WaitClosed = 0x80AD76C4; // type:func -EnSb_Open = 0x80AD7744; // type:func -EnSb_WaitOpen = 0x80AD780C; // type:func -EnSb_TurnAround = 0x80AD78C0; // type:func -EnSb_Lunge = 0x80AD79AC; // type:func -EnSb_Bounce = 0x80AD7A54; // type:func -EnSb_Cooldown = 0x80AD7B88; // type:func -EnSb_IsVulnerable = 0x80AD7BF0; // type:func -EnSb_UpdateDamage = 0x80AD7D38; // type:func -EnSb_Update = 0x80AD8014; // type:func -EnSb_PostLimbDraw = 0x80AD8194; // type:func -EnSb_Draw = 0x80AD81E4; // type:func -EnSceneChange_SetupAction = 0x80AD85A0; // type:func -EnSceneChange_Init = 0x80AD85AC; // type:func -EnSceneChange_Destroy = 0x80AD85D4; // type:func -EnSceneChange_DoNothing = 0x80AD85E4; // type:func -EnSceneChange_Update = 0x80AD85F4; // type:func -EnSceneChange_Draw = 0x80AD8618; // type:func -EnSda_Init = 0x80AD86D0; // type:func -EnSda_Destroy = 0x80AD86E0; // type:func -EnSda_Update = 0x80AD86F0; // type:func -EnSda_Draw = 0x80AD872C; // type:func -func_80AF8F60 = 0x80AD87C0; // type:func -func_80AF95C4 = 0x80AD8E24; // type:func -func_80AF9C70 = 0x80AD94A0; // type:func -EnShopnuts_Init = 0x80AD9DC0; // type:func -EnShopnuts_Destroy = 0x80AD9EFC; // type:func -EnShopnuts_SetupIdle = 0x80AD9F28; // type:func -EnShopnuts_SetupLookAround = 0x80AD9F90; // type:func -EnShopnuts_SetupThrowNut = 0x80AD9FD8; // type:func -EnShopnuts_SetupPeek = 0x80ADA018; // type:func -EnShopnuts_SetupBurrow = 0x80ADA080; // type:func -EnShopnuts_SetupSpawnSalesman = 0x80ADA0D0; // type:func -EnShopnuts_Idle = 0x80ADA128; // type:func -EnShopnuts_LookAround = 0x80ADA38C; // type:func -EnShopnuts_Peek = 0x80ADA410; // type:func -EnShopnuts_ThrowNut = 0x80ADA4D4; // type:func -EnShopnuts_Burrow = 0x80ADA610; // type:func -EnShopnuts_SpawnSalesman = 0x80ADA6D4; // type:func -EnShopnuts_ColliderCheck = 0x80ADA770; // type:func -EnShopnuts_Update = 0x80ADA7D0; // type:func -EnShopnuts_OverrideLimbDraw = 0x80ADA910; // type:func -EnShopnuts_PostLimbDraw = 0x80ADA948; // type:func -EnShopnuts_Draw = 0x80ADAAE8; // type:func -EnSi_Init = 0x80ADACD0; // type:func -EnSi_Destroy = 0x80ADAD60; // type:func -func_80AFB748 = 0x80ADAD8C; // type:func -func_80AFB768 = 0x80ADADB0; // type:func -func_80AFB89C = 0x80ADAEE4; // type:func -func_80AFB950 = 0x80ADAF9C; // type:func -EnSi_Update = 0x80ADB030; // type:func -EnSi_Draw = 0x80ADB0A4; // type:func -EnSiofuki_Init = 0x80ADB1D0; // type:func -EnSiofuki_Destroy = 0x80ADB3EC; // type:func -func_80AFBDC8 = 0x80ADB420; // type:func -func_80AFBE8C = 0x80ADB4E0; // type:func -func_80AFC1D0 = 0x80ADB82C; // type:func -func_80AFC218 = 0x80ADB874; // type:func -func_80AFC34C = 0x80ADB9B0; // type:func -func_80AFC3C8 = 0x80ADBA34; // type:func -func_80AFC478 = 0x80ADBAEC; // type:func -func_80AFC544 = 0x80ADBBC0; // type:func -EnSiofuki_Update = 0x80ADBBF8; // type:func -EnSiofuki_Draw = 0x80ADBC1C; // type:func -EnSkb_SetupAction = 0x80ADBF80; // type:func -EnSkb_SpawnDebris = 0x80ADBF8C; // type:func -EnSkb_Init = 0x80ADC13C; // type:func -EnSkb_Destroy = 0x80ADC2F4; // type:func -EnSkb_DecideNextAction = 0x80ADC34C; // type:func -EnSkb_SetupRiseFromGround = 0x80ADC3E8; // type:func -EnSkb_RiseFromGround = 0x80ADC44C; // type:func -EnSkb_SetupDespawn = 0x80ADC538; // type:func -EnSkb_Despawn = 0x80ADC5E0; // type:func -EnSkb_SetupWalkForward = 0x80ADC694; // type:func -EnSkb_WalkForward = 0x80ADC72C; // type:func -EnSkb_SetupAttack = 0x80ADC92C; // type:func -EnSkb_Attack = 0x80ADC9C4; // type:func -EnSkb_SetupRecoil = 0x80ADCA70; // type:func -EnSkb_Recoil = 0x80ADCAFC; // type:func -EnSkb_SetupStunned = 0x80ADCB38; // type:func -EnSkb_Stunned = 0x80ADCB94; // type:func -EnSkb_SetupTakeDamage = 0x80ADCC3C; // type:func -EnSkb_TakeDamage = 0x80ADCCC4; // type:func -EnSkb_SetupDeath = 0x80ADCDB0; // type:func -EnSkb_Death = 0x80ADCE7C; // type:func -EnSkb_CheckDamage = 0x80ADCF68; // type:func -EnSkb_Update = 0x80ADD218; // type:func -EnSkb_OverrideLimbDraw = 0x80ADD340; // type:func -EnSkb_PostLimbDraw = 0x80ADD510; // type:func -EnSkb_Draw = 0x80ADD5B8; // type:func -EnSkj_ChangeAnim = 0x80ADD870; // type:func -EnSkj_SetupAction = 0x80ADD8F8; // type:func -EnSkj_CalculateCenter = 0x80ADD950; // type:func -EnSkj_SetNaviId = 0x80ADD9E8; // type:func -EnSkj_Init = 0x80ADDA6C; // type:func -EnSkj_Destroy = 0x80ADDDB8; // type:func -EnSkj_RangeCheck = 0x80ADDDE4; // type:func -EnSkj_GetItemXzRange = 0x80ADDE60; // type:func -EnSkj_GetItemYRange = 0x80ADDEA8; // type:func -EnSkj_ShootNeedle = 0x80ADDED4; // type:func -EnSkj_SpawnBlood = 0x80ADDFEC; // type:func -EnSkj_CollisionCheck = 0x80ADE144; // type:func -func_80AFEDF8 = 0x80ADE300; // type:func -EnSkj_Backflip = 0x80ADE38C; // type:func -EnSkj_Fade = 0x80ADE3D4; // type:func -EnSkj_SetupWaitToShootNeedle = 0x80ADE464; // type:func -EnSkj_WaitToShootNeedle = 0x80ADE4A0; // type:func -EnSkj_SetupResetFight = 0x80ADE540; // type:func -EnSkj_SariasSongKidIdle = 0x80ADE584; // type:func -EnSkj_SetupDie = 0x80ADE67C; // type:func -EnSkj_WaitForDeathAnim = 0x80ADE6B0; // type:func -func_80AFF1F0 = 0x80ADE704; // type:func -EnSkj_PickNextFightAction = 0x80ADE738; // type:func -func_80AFF2A0 = 0x80ADE7B8; // type:func -EnSkj_WaitForLandAnim = 0x80ADE7FC; // type:func -func_80AFF334 = 0x80ADE850; // type:func -EnSkj_ResetFight = 0x80ADE89C; // type:func -EnSkj_SetupStand = 0x80ADE8EC; // type:func -EnSkj_Fight = 0x80ADE940; // type:func -EnSkj_SetupNeedleRecover = 0x80ADEB0C; // type:func -EnSkj_NeedleRecover = 0x80ADEB40; // type:func -EnSkj_SetupSpawnDeathEffect = 0x80ADEB7C; // type:func -EnSkj_SpawnDeathEffect = 0x80ADEBA4; // type:func -EnSkj_SetupWaitInRange = 0x80ADECBC; // type:func -EnSkj_WaitInRange = 0x80ADECF4; // type:func -EnSkj_SetupWaitForSong = 0x80ADEF08; // type:func -EnSkj_WaitForSong = 0x80ADEF2C; // type:func -EnSkj_SetupAfterSong = 0x80ADF200; // type:func -EnSkj_AfterSong = 0x80ADF234; // type:func -EnSkj_SetupTalk = 0x80ADF288; // type:func -EnSkj_SariaSongTalk = 0x80ADF2A8; // type:func -func_80AFFE24 = 0x80ADF34C; // type:func -func_80AFFE44 = 0x80ADF36C; // type:func -EnSkj_SetupPostSariasSong = 0x80ADF3E4; // type:func -EnSkj_ChangeModeAfterSong = 0x80ADF404; // type:func -EnSkj_SetupMaskTrade = 0x80ADF46C; // type:func -EnSkj_StartMaskTrade = 0x80ADF48C; // type:func -EnSkj_JumpFromStump = 0x80ADF4F4; // type:func -EnSkj_WaitForLanding = 0x80ADF558; // type:func -EnSkj_SetupWaitForLandAnimFinish = 0x80ADF5A8; // type:func -EnSkj_WaitForLandAnimFinish = 0x80ADF5DC; // type:func -EnSkj_SetupWalkToPlayer = 0x80ADF630; // type:func -EnSkj_WalkToPlayer = 0x80ADF674; // type:func -EnSkj_SetupAskForMask = 0x80ADF710; // type:func -EnSkj_AskForMask = 0x80ADF758; // type:func -EnSkj_SetupTakeMask = 0x80ADF7F0; // type:func -EnSkj_TakeMask = 0x80ADF828; // type:func -EnSkj_SetupWaitForMaskTextClear = 0x80ADF8C0; // type:func -EnSkj_WaitForMaskTextClear = 0x80ADF8E0; // type:func -EnSkj_SetupWrongSong = 0x80ADF948; // type:func -EnSkj_WrongSong = 0x80ADF980; // type:func -EnSkj_SetupWaitForTextClear = 0x80ADF9D4; // type:func -EnSkj_SariasSongWaitForTextClear = 0x80ADF9F4; // type:func -EnSkj_OcarinaGameSetupWaitForPlayer = 0x80ADFA6C; // type:func -EnSkj_OcarinaGameWaitForPlayer = 0x80ADFAAC; // type:func -EnSkj_IsLeavingGame = 0x80ADFAE8; // type:func -EnSkj_SetupIdle = 0x80ADFB38; // type:func -EnSkj_Appear = 0x80ADFB6C; // type:func -EnSkj_OcarinaGameIdle = 0x80ADFB94; // type:func -EnSkj_SetupPlayOcarinaGame = 0x80ADFBE0; // type:func -EnSkj_PlayOcarinaGame = 0x80ADFC14; // type:func -EnSkj_SetupLeaveOcarinaGame = 0x80ADFC60; // type:func -EnSkj_LeaveOcarinaGame = 0x80ADFCA8; // type:func -EnSkj_Update = 0x80ADFCF0; // type:func -EnSkj_SariasSongShortStumpUpdate = 0x80ADFED4; // type:func -EnSkj_TurnPlayer = 0x80ADFEFC; // type:func -EnSkj_SetupWaitForOcarina = 0x80ADFF48; // type:func -EnSkj_WaitForOcarina = 0x80AE0004; // type:func -EnSkj_StartOcarinaMinigame = 0x80AE00AC; // type:func -EnSkj_WaitForPlayback = 0x80AE0138; // type:func -EnSkj_FailedMiniGame = 0x80AE03A8; // type:func -EnSkj_WaitForNextRound = 0x80AE03E8; // type:func -EnSkj_OfferNextRound = 0x80AE0438; // type:func -EnSkj_WaitForOfferResponse = 0x80AE0474; // type:func -EnSkj_WonOcarinaMiniGame = 0x80AE051C; // type:func -EnSkj_WaitToGiveReward = 0x80AE055C; // type:func -EnSkj_GiveOcarinaGameReward = 0x80AE05E4; // type:func -EnSkj_FinishOcarinaGameRound = 0x80AE0658; // type:func -EnSkj_CleanupOcarinaGame = 0x80AE06F4; // type:func -EnSkj_OcarinaMinigameShortStumpUpdate = 0x80AE0770; // type:func -EnSkj_OverrideLimbDraw = 0x80AE07F4; // type:func -EnSkj_PostLimbDraw = 0x80AE0810; // type:func -EnSkj_TranslucentDL = 0x80AE08E0; // type:func -EnSkj_OpaqueDL = 0x80AE0938; // type:func -EnSkj_Draw = 0x80AE0970; // type:func -EnSkjneedle_Init = 0x80AE11C0; // type:func -EnSkjneedle_Destroy = 0x80AE1258; // type:func -EnSkjNeedle_CollisionCheck = 0x80AE1284; // type:func -EnSkjneedle_Update = 0x80AE12B4; // type:func -EnSkjneedle_Draw = 0x80AE13A4; // type:func -EnSsh_SetupAction = 0x80AE14D0; // type:func -EnSsh_SpawnShockwave = 0x80AE14DC; // type:func -EnSsh_CreateBlureEffect = 0x80AE1564; // type:func -EnSsh_CheckCeilingPos = 0x80AE1660; // type:func -EnSsh_AddBlureVertex = 0x80AE16F8; // type:func -EnSsh_AddBlureSpace = 0x80AE1800; // type:func -EnSsh_InitColliders = 0x80AE182C; // type:func -EnSsh_SetAnimation = 0x80AE196C; // type:func -EnSsh_SetWaitAnimation = 0x80AE1AA0; // type:func -EnSsh_SetReturnAnimation = 0x80AE1AC0; // type:func -EnSsh_SetLandAnimation = 0x80AE1AF4; // type:func -EnSsh_SetDropAnimation = 0x80AE1B38; // type:func -EnSsh_SetStunned = 0x80AE1B88; // type:func -EnSsh_SetColliderScale = 0x80AE1BB4; // type:func -EnSsh_Damaged = 0x80AE1D28; // type:func -EnSsh_Turn = 0x80AE1E04; // type:func -EnSsh_Stunned = 0x80AE1ED8; // type:func -EnSsh_UpdateYaw = 0x80AE1F78; // type:func -EnSsh_Bob = 0x80AE1FB4; // type:func -EnSsh_IsCloseToLink = 0x80AE2020; // type:func -EnSsh_IsCloseToHome = 0x80AE2108; // type:func -EnSsh_IsCloseToGround = 0x80AE2140; // type:func -EnSsh_Sway = 0x80AE2180; // type:func -EnSsh_CheckBodyStickHit = 0x80AE22C4; // type:func -EnSsh_CheckHitPlayer = 0x80AE2338; // type:func -EnSsh_CheckHitFront = 0x80AE2440; // type:func -EnSsh_CheckHitBack = 0x80AE249C; // type:func -EnSsh_CollisionCheck = 0x80AE2574; // type:func -EnSsh_SetBodyCylinderAC = 0x80AE2628; // type:func -EnSsh_SetLegsCylinderAC = 0x80AE266C; // type:func -EnSsh_SetCylinderOC = 0x80AE2724; // type:func -EnSsh_SetColliders = 0x80AE28FC; // type:func -EnSsh_Init = 0x80AE29C4; // type:func -EnSsh_Destroy = 0x80AE2B58; // type:func -EnSsh_Wait = 0x80AE2BD8; // type:func -EnSsh_Talk = 0x80AE2C34; // type:func -EnSsh_Idle = 0x80AE2C80; // type:func -EnSsh_Land = 0x80AE2F18; // type:func -EnSsh_Drop = 0x80AE3000; // type:func -EnSsh_Return = 0x80AE3100; // type:func -EnSsh_UpdateColliderScale = 0x80AE31D4; // type:func -EnSsh_Start = 0x80AE327C; // type:func -EnSsh_Update = 0x80AE3304; // type:func -EnSsh_OverrideLimbDraw = 0x80AE3424; // type:func -EnSsh_PostLimbDraw = 0x80AE3514; // type:func -EnSsh_Draw = 0x80AE3550; // type:func -EnSt_SetupAction = 0x80AE3AC0; // type:func -EnSt_SpawnDust = 0x80AE3ACC; // type:func -EnSt_SpawnBlastEffect = 0x80AE3CEC; // type:func -EnSt_SpawnDeadEffect = 0x80AE3D74; // type:func -EnSt_CreateBlureEffect = 0x80AE3EB0; // type:func -EnSt_CheckCeilingPos = 0x80AE3FAC; // type:func -EnSt_AddBlurVertex = 0x80AE407C; // type:func -EnSt_AddBlurSpace = 0x80AE4184; // type:func -EnSt_SetWaitingAnimation = 0x80AE41B0; // type:func -EnSt_SetReturnToCeilingAnimation = 0x80AE41E0; // type:func -EnSt_SetLandAnimation = 0x80AE4220; // type:func -EnSt_SetDropAnimAndVel = 0x80AE427C; // type:func -EnSt_InitColliders = 0x80AE42DC; // type:func -EnSt_CheckBodyStickHit = 0x80AE441C; // type:func -EnSt_SetBodyCylinderAC = 0x80AE4490; // type:func -EnSt_SetLegsCylinderAC = 0x80AE44D4; // type:func -EnSt_SetCylinderOC = 0x80AE458C; // type:func -EnSt_UpdateCylinders = 0x80AE4764; // type:func -EnSt_CheckHitPlayer = 0x80AE4828; // type:func -EnSt_CheckHitFrontside = 0x80AE4914; // type:func -EnSt_CheckHitBackside = 0x80AE4954; // type:func -EnSt_CheckColliders = 0x80AE4B44; // type:func -EnSt_SetColliderScale = 0x80AE4BCC; // type:func -EnSt_SetTeethColor = 0x80AE4D38; // type:func -EnSt_DecrStunTimer = 0x80AE4E68; // type:func -EnSt_UpdateYaw = 0x80AE4E88; // type:func -EnSt_IsDoneBouncing = 0x80AE5128; // type:func -EnSt_Bob = 0x80AE51F0; // type:func -EnSt_IsCloseToPlayer = 0x80AE525C; // type:func -EnSt_IsCloseToInitalPos = 0x80AE5304; // type:func -EnSt_IsCloseToGround = 0x80AE533C; // type:func -EnSt_Sway = 0x80AE537C; // type:func -EnSt_Init = 0x80AE554C; // type:func -EnSt_Destroy = 0x80AE5670; // type:func -EnSt_WaitOnCeiling = 0x80AE56F0; // type:func -EnSt_WaitOnGround = 0x80AE574C; // type:func -EnSt_LandOnGround = 0x80AE5844; // type:func -EnSt_MoveToGround = 0x80AE5948; // type:func -EnSt_ReturnToCeiling = 0x80AE5A40; // type:func -EnSt_BounceAround = 0x80AE5B14; // type:func -EnSt_FinishBouncing = 0x80AE5BE8; // type:func -EnSt_Die = 0x80AE5D5C; // type:func -EnSt_StartOnCeilingOrGround = 0x80AE5DD4; // type:func -EnSt_Update = 0x80AE5E58; // type:func -EnSt_OverrideLimbDraw = 0x80AE5FD8; // type:func -EnSt_PostLimbDraw = 0x80AE60B8; // type:func -EnSt_Draw = 0x80AE60F4; // type:func -EnSth_SetupAction = 0x80AE6730; // type:func -EnSth_Init = 0x80AE673C; // type:func -EnSth_SetupShapeColliderUpdate2AndDraw = 0x80AE6838; // type:func -EnSth_SetupAfterObjectLoaded = 0x80AE68BC; // type:func -EnSth_Destroy = 0x80AE69E0; // type:func -EnSth_WaitForObject = 0x80AE6A0C; // type:func -EnSth_FacePlayer = 0x80AE6A60; // type:func -EnSth_LookAtPlayer = 0x80AE6B78; // type:func -EnSth_RewardObtainedTalk = 0x80AE6C8C; // type:func -EnSth_ParentRewardObtainedWait = 0x80AE6D08; // type:func -EnSth_GivePlayerItem = 0x80AE6D94; // type:func -EnSth_GiveReward = 0x80AE6E30; // type:func -EnSth_RewardUnobtainedTalk = 0x80AE6EB0; // type:func -EnSth_RewardUnobtainedWait = 0x80AE6F2C; // type:func -EnSth_ChildRewardObtainedWait = 0x80AE6FD0; // type:func -EnSth_Update = 0x80AE707C; // type:func -EnSth_Update2 = 0x80AE70A0; // type:func -EnSth_OverrideLimbDraw = 0x80AE71A4; // type:func -EnSth_PostLimbDraw = 0x80AE7300; // type:func -EnSth_AllocColorDList = 0x80AE7378; // type:func -EnSth_Draw = 0x80AE73E4; // type:func -EnStream_SetupAction = 0x80AEA7F0; // type:func -EnStream_Init = 0x80AEA7FC; // type:func -EnStream_Destroy = 0x80AEA864; // type:func -func_80B0B81C = 0x80AEA874; // type:func -EnStream_SuckPlayer = 0x80AEA994; // type:func -EnStream_WaitForPlayer = 0x80AEAB2C; // type:func -EnStream_Update = 0x80AEAB80; // type:func -EnStream_Draw = 0x80AEABB4; // type:func -EnSw_CrossProduct = 0x80AEAD80; // type:func -func_80B0BE20 = 0x80AEADF4; // type:func -func_80B0C020 = 0x80AEAFF4; // type:func -func_80B0C0CC = 0x80AEB0A4; // type:func -EnSw_Init = 0x80AEB4D8; // type:func -EnSw_Destroy = 0x80AEB9A0; // type:func -func_80B0C9F0 = 0x80AEB9CC; // type:func -func_80B0CBE8 = 0x80AEBBC8; // type:func -func_80B0CCF4 = 0x80AEBCD4; // type:func -func_80B0CEA8 = 0x80AEBE88; // type:func -func_80B0CF44 = 0x80AEBF28; // type:func -func_80B0D14C = 0x80AEC130; // type:func -func_80B0D364 = 0x80AEC348; // type:func -func_80B0D3AC = 0x80AEC390; // type:func -func_80B0D590 = 0x80AEC578; // type:func -func_80B0D878 = 0x80AEC860; // type:func -func_80B0DB00 = 0x80AECAE8; // type:func -func_80B0DC7C = 0x80AECC68; // type:func -func_80B0DE34 = 0x80AECE24; // type:func -func_80B0DEA8 = 0x80AECEA0; // type:func -func_80B0DFFC = 0x80AECFF4; // type:func -func_80B0E314 = 0x80AED30C; // type:func -func_80B0E430 = 0x80AED424; // type:func -func_80B0E5E0 = 0x80AED5D4; // type:func -func_80B0E728 = 0x80AED720; // type:func -func_80B0E90C = 0x80AED904; // type:func -func_80B0E9BC = 0x80AED9B4; // type:func -EnSw_Update = 0x80AEDA64; // type:func -EnSw_OverrideLimbDraw = 0x80AEDAC0; // type:func -EnSw_PostLimbDraw = 0x80AEDD64; // type:func -func_80B0EDB8 = 0x80AEDD7C; // type:func -func_80B0EEA4 = 0x80AEDE34; // type:func -EnSw_Draw = 0x80AEDE60; // type:func -EnSyatekiItm_Init = 0x80AEE570; // type:func -EnSyatekiItm_Destroy = 0x80AEE6D4; // type:func -EnSyatekiItm_Idle = 0x80AEE6E4; // type:func -EnSyatekiItm_StartRound = 0x80AEE7F4; // type:func -EnSyatekiItm_SpawnTargets = 0x80AEE970; // type:func -EnSyatekiItm_CheckTargets = 0x80AEEDF0; // type:func -EnSyatekiItm_CleanupGame = 0x80AEEE94; // type:func -EnSyatekiItm_EndGame = 0x80AEEF1C; // type:func -EnSyatekiItm_Update = 0x80AEEF68; // type:func -EnSyatekiMan_Init = 0x80AEF310; // type:func -EnSyatekiMan_Destroy = 0x80AEF3C4; // type:func -EnSyatekiMan_Start = 0x80AEF3D4; // type:func -EnSyatekiMan_SetupIdle = 0x80AEF468; // type:func -EnSyatekiMan_Idle = 0x80AEF4C0; // type:func -EnSyatekiMan_Talk = 0x80AEF51C; // type:func -EnSyatekiMan_StopTalk = 0x80AEF6C4; // type:func -EnSyatekiMan_StartGame = 0x80AEF76C; // type:func -EnSyatekiMan_WaitForGame = 0x80AEF82C; // type:func -EnSyatekiMan_EndGame = 0x80AEF948; // type:func -EnSyatekiMan_GivePrize = 0x80AEFB98; // type:func -EnSyatekiMan_FinishPrize = 0x80AEFC08; // type:func -EnSyatekiMan_RestartGame = 0x80AEFCCC; // type:func -EnSyatekiMan_BlinkWait = 0x80AEFD34; // type:func -EnSyatekiMan_Blink = 0x80AEFD68; // type:func -EnSyatekiMan_Update = 0x80AEFE08; // type:func -EnSyatekiMan_OverrideLimbDraw = 0x80AEFEA8; // type:func -EnSyatekiMan_Draw = 0x80AEFF38; // type:func -EnSyatekiNiw_Init = 0x80AF00D0; // type:func -EnSyatekiNiw_Destroy = 0x80AF0218; // type:func -EnSyatekiNiw_UpdateRotations = 0x80AF0244; // type:func -EnSyatekiNiw_SetupDefault = 0x80AF05A0; // type:func -EnSyatekiNiw_Default = 0x80AF062C; // type:func -EnSyatekiNiw_SetupArchery = 0x80AF0B5C; // type:func -EnSyatekiNiw_Archery = 0x80AF0C14; // type:func -EnSyatekiNiw_ExitArchery = 0x80AF1090; // type:func -EnSyatekiNiw_SetupRemove = 0x80AF10B0; // type:func -EnSyatekiNiw_Remove = 0x80AF11A8; // type:func -EnSyatekiNiw_CheckHit = 0x80AF1364; // type:func -EnSyatekiNiw_Update = 0x80AF1434; // type:func -SyatekiNiw_OverrideLimbDraw = 0x80AF17A4; // type:func -EnSyatekiNiw_Draw = 0x80AF18D4; // type:func -EnSyatekiNiw_SpawnFeather = 0x80AF1980; // type:func -EnSyatekiNiw_UpdateEffects = 0x80AF1A70; // type:func -EnSyatekiNiw_DrawEffects = 0x80AF1C2C; // type:func -EnTa_SetupAction = 0x80AF2160; // type:func -EnTa_SetTextForTalkInLonLonHouse = 0x80AF2170; // type:func -EnTa_Init = 0x80AF2250; // type:func -EnTa_DecreaseShadowSize = 0x80AF28D4; // type:func -EnTa_Destroy = 0x80AF2908; // type:func -EnTa_RequestTalk = 0x80AF2980; // type:func -EnTa_SleepTalkInKakariko = 0x80AF2A28; // type:func -EnTa_SleepTalkInLonLonHouse = 0x80AF2A68; // type:func -EnTa_SetupAwake = 0x80AF2AA8; // type:func -EnTa_TalkWakingUp2 = 0x80AF2B24; // type:func -EnTa_TalkWakingUp1 = 0x80AF2B70; // type:func -EnTa_WakeUp = 0x80AF2C0C; // type:func -EnTa_SleepTalkInCastle = 0x80AF2C98; // type:func -EnTa_IdleAsleepInCastle = 0x80AF2CD8; // type:func -EnTa_IdleAsleepInLonLonHouse = 0x80AF2DA0; // type:func -EnTa_IdleAsleepInKakariko = 0x80AF2E04; // type:func -EnTa_RunWithAccelerationAndSfx = 0x80AF2ECC; // type:func -EnTa_RunAwayRunOutOfGate = 0x80AF2F4C; // type:func -EnTa_RunAwayTurnTowardsGate = 0x80AF2FC0; // type:func -EnTa_RunAwayRunWest = 0x80AF3020; // type:func -EnTa_RunAwayTurnWest = 0x80AF30A8; // type:func -EnTa_RunAwayRunSouth = 0x80AF3108; // type:func -EnTa_RunAwayStart = 0x80AF31A8; // type:func -EnTa_TalkAwakeInCastle = 0x80AF3220; // type:func -EnTa_IdleAwakeInCastle = 0x80AF32CC; // type:func -EnTa_TalkAwakeInKakariko = 0x80AF3318; // type:func -EnTa_IdleAwakeInKakariko = 0x80AF3364; // type:func -EnTa_TalkAtRanch = 0x80AF340C; // type:func -EnTa_IdleAtRanch = 0x80AF3458; // type:func -EnTa_CheckCanBuyMilk = 0x80AF349C; // type:func -EnTa_CreateFloorCamera = 0x80AF34EC; // type:func -EnTa_RemoveFloorCamera = 0x80AF35A0; // type:func -EnTa_SetupActionWithSleepAnimation = 0x80AF35E4; // type:func -EnTa_SetupActionWithWakeUpAnimation = 0x80AF3674; // type:func -EnTa_TalkNotEnoughRupees = 0x80AF3700; // type:func -EnTa_IsPlayerHoldingSuperCucco = 0x80AF3778; // type:func -EnTa_TalkFoundSuperCucco = 0x80AF37CC; // type:func -EnTa_IdleFoundSuperCucco = 0x80AF392C; // type:func -EnTa_GetSuperCuccosCount = 0x80AF399C; // type:func -EnTa_AnimateHandsUpDown = 0x80AF39D8; // type:func -EnTa_TransitionToPostCuccoGame = 0x80AF3AA4; // type:func -EnTa_TalkCuccoGameEnd = 0x80AF3AF4; // type:func -EnTa_RunCuccoGame = 0x80AF3BD0; // type:func -EnTa_ThrowSuperCuccos = 0x80AF3F30; // type:func -EnTa_StartingCuccoGame3 = 0x80AF41A8; // type:func -EnTa_StartingCuccoGame2 = 0x80AF42CC; // type:func -EnTa_StartingCuccoGame1 = 0x80AF439C; // type:func -EnTa_StartCuccoGame = 0x80AF4464; // type:func -EnTa_TalkGeneralInLonLonHouse = 0x80AF44FC; // type:func -EnTa_GiveItemInLonLonHouse = 0x80AF4558; // type:func -EnTa_TalkAfterCuccoGameFirstWon = 0x80AF462C; // type:func -EnTa_WaitBuyMilkOrPlayCuccoGameResponse = 0x80AF46C4; // type:func -EnTa_WaitForPlayCuccoGameResponse = 0x80AF48A0; // type:func -EnTa_WaitForMarryMalonResponse = 0x80AF49C8; // type:func -EnTa_ContinueTalkInLonLonHouse = 0x80AF4A48; // type:func -EnTa_TalkAfterCuccoGameWon = 0x80AF4B14; // type:func -EnTa_IdleSittingInLonLonHouse = 0x80AF4BEC; // type:func -EnTa_IdleAfterCuccoGameFinished = 0x80AF4CEC; // type:func -EnTa_BlinkWaitUntilNext = 0x80AF4DB0; // type:func -EnTa_BlinkAdvanceState = 0x80AF4DE4; // type:func -EnTa_AnimRepeatCurrent = 0x80AF4EA4; // type:func -EnTa_AnimSleeping = 0x80AF4EE4; // type:func -EnTa_AnimSitSleeping = 0x80AF4F38; // type:func -EnTa_AnimRunToEnd = 0x80AF5018; // type:func -EnTa_Update = 0x80AF5070; // type:func -EnTa_OverrideLimbDraw = 0x80AF5200; // type:func -EnTa_PostLimbDraw = 0x80AF5384; // type:func -EnTa_Draw = 0x80AF53C4; // type:func -EnTakaraMan_Destroy = 0x80AF5B20; // type:func -EnTakaraMan_Init = 0x80AF5B30; // type:func -func_80B176E0 = 0x80AF5C7C; // type:func -func_80B1778C = 0x80AF5D28; // type:func -func_80B17934 = 0x80AF5ED0; // type:func -func_80B17A6C = 0x80AF6008; // type:func -func_80B17AC4 = 0x80AF6064; // type:func -func_80B17B14 = 0x80AF60B8; // type:func -EnTakaraMan_Update = 0x80AF611C; // type:func -EnTakaraMan_OverrideLimbDraw = 0x80AF61F4; // type:func -EnTakaraMan_Draw = 0x80AF625C; // type:func -EnTana_Init = 0x80AF63E0; // type:func -EnTana_Destroy = 0x80AF6430; // type:func -EnTana_Update = 0x80AF6440; // type:func -EnTana_DrawWoodenShelves = 0x80AF6450; // type:func -EnTana_DrawStoneShelves = 0x80AF64E8; // type:func -EnTg_GetTextId = 0x80AF6690; // type:func -EnTg_UpdateTalkState = 0x80AF672C; // type:func -EnTg_Init = 0x80AF67E8; // type:func -EnTg_Destroy = 0x80AF68BC; // type:func -EnTg_SpinIfNotTalking = 0x80AF68FC; // type:func -EnTg_Update = 0x80AF6920; // type:func -EnTg_OverrideLimbDraw = 0x80AF6A40; // type:func -EnTg_PostLimbDraw = 0x80AF6A5C; // type:func -EnTg_SetColor = 0x80AF6AB8; // type:func -EnTg_Draw = 0x80AF6B24; // type:func -EnTite_SetupAction = 0x80AF6D70; // type:func -EnTite_Init = 0x80AF6D7C; // type:func -EnTite_Destroy = 0x80AF6ED4; // type:func -EnTite_SetupIdle = 0x80AF6F1C; // type:func -EnTite_Idle = 0x80AF6F84; // type:func -EnTite_SetupAttack = 0x80AF70C8; // type:func -EnTite_Attack = 0x80AF713C; // type:func -EnTite_SetupTurnTowardPlayer = 0x80AF77E4; // type:func -EnTite_TurnTowardPlayer = 0x80AF7880; // type:func -EnTite_SetupMoveTowardPlayer = 0x80AF7B1C; // type:func -EnTite_MoveTowardPlayer = 0x80AF7BD8; // type:func -EnTite_SetupRecoil = 0x80AF80E8; // type:func -EnTite_Recoil = 0x80AF8154; // type:func -EnTite_SetupStunned = 0x80AF84AC; // type:func -EnTite_Stunned = 0x80AF8560; // type:func -EnTite_SetupDeathCry = 0x80AF88FC; // type:func -EnTite_DeathCry = 0x80AF8930; // type:func -EnTite_FallApart = 0x80AF89A4; // type:func -EnTite_SetupFlipOnBack = 0x80AF8A30; // type:func -EnTite_FlipOnBack = 0x80AF8B4C; // type:func -EnTite_SetupFlipUpright = 0x80AF8D08; // type:func -EnTite_FlipUpright = 0x80AF8D58; // type:func -EnTite_CheckDamage = 0x80AF8E80; // type:func -EnTite_Update = 0x80AF9058; // type:func -EnTite_PostLimbDraw = 0x80AF9444; // type:func -EnTite_Draw = 0x80AF9534; // type:func -EnTkEff_Create = 0x80AF9B10; // type:func -EnTkEff_Update = 0x80AF9BB4; // type:func -EnTkEff_Draw = 0x80AF9CC0; // type:func -EnTkEff_CreateDflt = 0x80AF9FB8; // type:func -EnTk_RestAnim = 0x80AFA070; // type:func -EnTk_WalkAnim = 0x80AFA0EC; // type:func -EnTk_DigAnim = 0x80AFA160; // type:func -EnTk_UpdateEyes = 0x80AFA1E0; // type:func -EnTk_CheckFacingPlayer = 0x80AFA2A4; // type:func -EnTk_CheckNextSpot = 0x80AFA328; // type:func -EnTk_CheckCurrentSpot = 0x80AFA410; // type:func -EnTk_Step = 0x80AFA488; // type:func -EnTk_Orient = 0x80AFA5B0; // type:func -EnTk_GetTextId = 0x80AFA720; // type:func -EnTk_UpdateTalkState = 0x80AFA774; // type:func -EnTk_ChooseReward = 0x80AFA910; // type:func -EnTk_DigEff = 0x80AFAACC; // type:func -EnTk_Init = 0x80AFAC3C; // type:func -EnTk_Destroy = 0x80AFADB8; // type:func -EnTk_Rest = 0x80AFADE4; // type:func -EnTk_Walk = 0x80AFB00C; // type:func -EnTk_Dig = 0x80AFB0DC; // type:func -EnTk_Update = 0x80AFB340; // type:func -func_80B1D200 = 0x80AFB3EC; // type:func -EnTk_OverrideLimbDraw = 0x80AFB418; // type:func -EnTk_PostLimbDraw = 0x80AFB484; // type:func -EnTk_Draw = 0x80AFB538; // type:func -EnTorch_Init = 0x80AFB940; // type:func -EnTorch2_Init = 0x80AFBA30; // type:func -EnTorch2_Destroy = 0x80AFBBD8; // type:func -EnTorch2_GetAttackItem = 0x80AFBC48; // type:func -EnTorch2_SwingSword = 0x80AFBC90; // type:func -EnTorch2_Backflip = 0x80AFBE28; // type:func -EnTorch2_Update = 0x80AFBE80; // type:func -EnTorch2_OverrideLimbDraw = 0x80AFD868; // type:func -EnTorch2_PostLimbDraw = 0x80AFD894; // type:func -EnTorch2_Draw = 0x80AFD8B8; // type:func -EnToryo_Init = 0x80AFE1D0; // type:func -EnToryo_Destroy = 0x80AFE414; // type:func -EnToryo_TalkRespond = 0x80AFE440; // type:func -EnToryo_DoneTalking = 0x80AFE634; // type:func -EnToryo_ReactToExchangeItem = 0x80AFE6A0; // type:func -EnToryo_GetTextId = 0x80AFE70C; // type:func -EnToryo_HandleTalking = 0x80AFE7D8; // type:func -EnToryo_Idle = 0x80AFE988; // type:func -EnToryo_Update = 0x80AFE9EC; // type:func -EnToryo_Draw = 0x80AFEB24; // type:func -EnToryo_OverrideLimbDraw = 0x80AFEB84; // type:func -EnToryo_PostLimbDraw = 0x80AFEC14; // type:func -EnTp_SetupAction = 0x80AFEE60; // type:func -EnTp_Init = 0x80AFEE6C; // type:func -EnTp_Destroy = 0x80AFF0E4; // type:func -EnTp_Tail_SetupFollowHead = 0x80AFF110; // type:func -EnTp_Tail_FollowHead = 0x80AFF13C; // type:func -EnTp_Head_SetupApproachPlayer = 0x80AFF318; // type:func -EnTp_Head_ApproachPlayer = 0x80AFF34C; // type:func -EnTp_SetupDie = 0x80AFF4E8; // type:func -EnTp_Die = 0x80AFF560; // type:func -EnTp_Fragment_SetupFade = 0x80AFF890; // type:func -EnTp_Fragment_Fade = 0x80AFF994; // type:func -EnTp_Head_SetupTakeOff = 0x80AFF9E0; // type:func -EnTp_Head_TakeOff = 0x80AFFA3C; // type:func -EnTp_Head_SetupWait = 0x80AFFC24; // type:func -EnTp_Head_Wait = 0x80AFFC70; // type:func -EnTp_Head_SetupBurrowReturnHome = 0x80AFFF7C; // type:func -EnTp_Head_BurrowReturnHome = 0x80AFFFAC; // type:func -EnTp_UpdateDamage = 0x80B0027C; // type:func -EnTp_Update = 0x80B004D4; // type:func -EnTp_Draw = 0x80B00840; // type:func -EnTr_SetupAction = 0x80B00CD0; // type:func -EnTr_Init = 0x80B00CDC; // type:func -EnTr_Destroy = 0x80B00E2C; // type:func -EnTr_CrySpellcast = 0x80B00E3C; // type:func -EnTr_DoNothing = 0x80B00EEC; // type:func -EnTr_ChooseAction2 = 0x80B00EFC; // type:func -EnTr_FlyKidnapCutscene = 0x80B010AC; // type:func -func_80B23254 = 0x80B01228; // type:func -EnTr_ShrinkVanish = 0x80B014A8; // type:func -EnTr_Reappear = 0x80B01664; // type:func -EnTr_WaitToReappear = 0x80B017FC; // type:func -EnTr_TakeOff = 0x80B018BC; // type:func -EnTr_TurnLookOverShoulder = 0x80B01984; // type:func -EnTr_ChooseAction1 = 0x80B01A64; // type:func -EnTr_Update = 0x80B01B98; // type:func -EnTr_OverrideLimbDraw = 0x80B01D50; // type:func -EnTr_Draw = 0x80B01E80; // type:func -func_80B23FDC = 0x80B01F8C; // type:func -func_80B24038 = 0x80B01FEC; // type:func -EnTr_SetRotFromCue = 0x80B021E8; // type:func -EnTr_SetStartPosRotFromCue = 0x80B02270; // type:func -EnTrap_Init = 0x80B025D0; // type:func -EnTrap_Destroy = 0x80B0298C; // type:func -EnTrap_Update = 0x80B029B8; // type:func -EnTrap_Draw = 0x80B0374C; // type:func -EnTuboTrap_Init = 0x80B03870; // type:func -EnTuboTrap_Destroy = 0x80B038F4; // type:func -EnTuboTrap_DropCollectible = 0x80B03920; // type:func -EnTuboTrap_SpawnEffectsOnLand = 0x80B03980; // type:func -EnTuboTrap_SpawnEffectsInWater = 0x80B03BF4; // type:func -EnTuboTrap_HandleImpact = 0x80B03E74; // type:func -EnTuboTrap_WaitForProximity = 0x80B0409C; // type:func -EnTuboTrap_Levitate = 0x80B041A8; // type:func -EnTuboTrap_Fly = 0x80B04234; // type:func -EnTuboTrap_Update = 0x80B04304; // type:func -EnTuboTrap_Draw = 0x80B043C4; // type:func -EnVali_Init = 0x80B04510; // type:func -EnVali_Destroy = 0x80B0468C; // type:func -EnVali_SetupLurk = 0x80B046DC; // type:func -EnVali_SetupDropAppear = 0x80B0472C; // type:func -EnVali_SetupFloatIdle = 0x80B04764; // type:func -EnVali_SetupAttacked = 0x80B0497C; // type:func -EnVali_SetupRetaliate = 0x80B049B4; // type:func -EnVali_SetupMoveArmsDown = 0x80B04A24; // type:func -EnVali_SetupBurnt = 0x80B04A64; // type:func -EnVali_SetupDivideAndDie = 0x80B04ABC; // type:func -EnVali_SetupStunned = 0x80B04BC0; // type:func -EnVali_SetupFrozen = 0x80B04C4C; // type:func -EnVali_SetupReturnToLurk = 0x80B04CAC; // type:func -EnVali_DischargeLightning = 0x80B04D08; // type:func -EnVali_Lurk = 0x80B04F04; // type:func -EnVali_DropAppear = 0x80B04F44; // type:func -EnVali_FloatIdle = 0x80B04FD8; // type:func -EnVali_Attacked = 0x80B05184; // type:func -EnVali_Retaliate = 0x80B0523C; // type:func -EnVali_MoveArmsDown = 0x80B05298; // type:func -EnVali_Burnt = 0x80B052D4; // type:func -EnVali_DivideAndDie = 0x80B05310; // type:func -EnVali_Stunned = 0x80B054C4; // type:func -EnVali_Frozen = 0x80B05580; // type:func -EnVali_ReturnToLurk = 0x80B05710; // type:func -EnVali_UpdateDamage = 0x80B05780; // type:func -EnVali_Update = 0x80B05938; // type:func -EnVali_PulseOutside = 0x80B05A94; // type:func -EnVali_PulseInsides = 0x80B05CB0; // type:func -EnVali_SetArmLength = 0x80B05ECC; // type:func -EnVali_OverrideLimbDraw = 0x80B0606C; // type:func -EnVali_PostLimbDraw = 0x80B060FC; // type:func -EnVali_DrawBody = 0x80B061C0; // type:func -EnVali_Draw = 0x80B06528; // type:func -EnVase_Init = 0x80B06BD0; // type:func -EnVase_Destroy = 0x80B06C34; // type:func -EnVase_Draw = 0x80B06C44; // type:func -EnVbBall_Init = 0x80B06CD0; // type:func -EnVbBall_Destroy = 0x80B06E50; // type:func -EnVbBall_SpawnDebris = 0x80B06E8C; // type:func -EnVbBall_SpawnDust = 0x80B06F64; // type:func -EnVbBall_UpdateBones = 0x80B07004; // type:func -EnVbBall_Update = 0x80B072E8; // type:func -EnVbBall_Draw = 0x80B07AB4; // type:func -EnViewer_SetupAction = 0x80B07E80; // type:func -EnViewer_Init = 0x80B07E8C; // type:func -EnViewer_Destroy = 0x80B07F60; // type:func -EnViewer_InitAnimGanondorfOrZelda = 0x80B07F8C; // type:func -EnViewer_InitAnimImpa = 0x80B080D8; // type:func -EnViewer_InitAnimHorse = 0x80B08168; // type:func -EnViewer_InitImpl = 0x80B08200; // type:func -EnViewer_UpdateImpl = 0x80B083BC; // type:func -EnViewer_Update = 0x80B08F14; // type:func -EnViewer_Ganondorf3OverrideLimbDraw = 0x80B08F68; // type:func -EnViewer_Ganondorf9PostLimbDraw = 0x80B08FD8; // type:func -EnViewer_GanondorfPostLimbDrawUpdateCapeVec = 0x80B090A0; // type:func -EnViewer_DrawGanondorf = 0x80B090E0; // type:func -EnViewer_DrawHorse = 0x80B0950C; // type:func -EnViewer_ZeldaOverrideLimbDraw = 0x80B09538; // type:func -EnViewer_ZeldaPostLimbDraw = 0x80B095B8; // type:func -EnViewer_DrawZelda = 0x80B09600; // type:func -EnViewer_ImpaOverrideLimbDraw = 0x80B09CA4; // type:func -EnViewer_DrawImpa = 0x80B09CCC; // type:func -EnViewer_Draw = 0x80B09DE0; // type:func -EnViewer_UpdatePosition = 0x80B09ED0; // type:func -EnViewer_InitFireEffect = 0x80B0A2A0; // type:func -EnViewer_DrawFireEffects = 0x80B0A3E8; // type:func -EnViewer_UpdateGanondorfCape = 0x80B0A72C; // type:func -EnVm_SetupAction = 0x80B0AD40; // type:func -EnVm_Init = 0x80B0AD4C; // type:func -EnVm_Destroy = 0x80B0AEBC; // type:func -EnVm_SetupWait = 0x80B0AEE8; // type:func -EnVm_Wait = 0x80B0AF74; // type:func -EnVm_SetupAttack = 0x80B0B2C8; // type:func -EnVm_Attack = 0x80B0B36C; // type:func -EnVm_SetupStun = 0x80B0B5BC; // type:func -EnVm_Stun = 0x80B0B664; // type:func -EnVm_SetupDie = 0x80B0B770; // type:func -EnVm_Die = 0x80B0B878; // type:func -EnVm_CheckHealth = 0x80B0B92C; // type:func -EnVm_Update = 0x80B0BA28; // type:func -EnVm_OverrideLimbDraw = 0x80B0BBBC; // type:func -EnVm_PostLimbDraw = 0x80B0BC24; // type:func -EnVm_Draw = 0x80B0BEFC; // type:func -EnWallTubo_Init = 0x80B0C600; // type:func -EnWallTubo_Destroy = 0x80B0C630; // type:func -EnWallTubo_FindGirl = 0x80B0C640; // type:func -EnWallTubo_DetectChu = 0x80B0C684; // type:func -EnWallTubo_SetWallFall = 0x80B0C8A0; // type:func -EnWallTubo_Update = 0x80B0CA0C; // type:func -EnWallmas_Init = 0x80B0CAF0; // type:func -EnWallmas_Destroy = 0x80B0CC30; // type:func -EnWallmas_TimerInit = 0x80B0CC5C; // type:func -EnWallmas_SetupDrop = 0x80B0CCB8; // type:func -EnWallmas_SetupLand = 0x80B0CD7C; // type:func -EnWallmas_SetupStand = 0x80B0CE40; // type:func -EnWallmas_SetupWalk = 0x80B0CE80; // type:func -EnWallmas_SetupJumpToCeiling = 0x80B0CED0; // type:func -EnWallmas_SetupReturnToCeiling = 0x80B0CF18; // type:func -EnWallmas_SetupTakeDamage = 0x80B0CF9C; // type:func -EnWallmas_SetupCooldown = 0x80B0D058; // type:func -EnWallmas_SetupDie = 0x80B0D0AC; // type:func -EnWallmas_SetupTakePlayer = 0x80B0D174; // type:func -EnWallmas_ProximityOrSwitchInit = 0x80B0D1FC; // type:func -EnWallmas_SetupStun = 0x80B0D244; // type:func -EnWallmas_WaitToDrop = 0x80B0D314; // type:func -EnWallmas_Drop = 0x80B0D420; // type:func -EnWallmas_Land = 0x80B0D4EC; // type:func -EnWallmas_Stand = 0x80B0D528; // type:func -EnWallmas_Walk = 0x80B0D588; // type:func -EnWallmas_JumpToCeiling = 0x80B0D63C; // type:func -EnWallmas_ReturnToCeiling = 0x80B0D678; // type:func -EnWallmas_TakeDamage = 0x80B0D794; // type:func -EnWallmas_Cooldown = 0x80B0D828; // type:func -EnWallmas_Die = 0x80B0D864; // type:func -EnWallmas_TakePlayer = 0x80B0D8D8; // type:func -EnWallmas_WaitForProximity = 0x80B0DAFC; // type:func -EnWallmas_WaitForSwitchFlag = 0x80B0DB58; // type:func -EnWallmas_Stun = 0x80B0DBA4; // type:func -EnWallmas_ColUpdate = 0x80B0DC18; // type:func -EnWallmas_Update = 0x80B0DD34; // type:func -EnWallmas_DrawXlu = 0x80B0DEFC; // type:func -EnWallMas_OverrideLimbDraw = 0x80B0E09C; // type:func -EnWallMas_PostLimbDraw = 0x80B0E110; // type:func -EnWallmas_Draw = 0x80B0E200; // type:func -EnWeatherTag_SetupAction = 0x80B0E500; // type:func -EnWeatherTag_Destroy = 0x80B0E50C; // type:func -EnWeatherTag_Init = 0x80B0E51C; // type:func -WeatherTag_CheckEnableWeatherEffect = 0x80B0E6F0; // type:func -WeatherTag_CheckRestoreWeather = 0x80B0E8C8; // type:func -EnWeatherTag_DisabledCloudyHyruleMarket = 0x80B0EA88; // type:func -EnWeatherTag_EnabledCloudyHyruleMarket = 0x80B0EAE4; // type:func -EnWeatherTag_DisabledCloudyLonLonRanch = 0x80B0EB38; // type:func -EnWeatherTag_EnabledCloudyLonLonRanch = 0x80B0EB94; // type:func -EnWeatherTag_DisabledCloudyDeathMountain = 0x80B0EBE8; // type:func -EnWeatherTag_EnabledCloudyDeathMountain = 0x80B0EC44; // type:func -EnWeatherTag_DisabledCloudySnow = 0x80B0EC98; // type:func -EnWeatherTag_EnabledCloudySnow = 0x80B0ED10; // type:func -EnWeatherTag_DisabledRainLakeHylia = 0x80B0ED7C; // type:func -EnWeatherTag_EnabledRainLakeHylia = 0x80B0EE00; // type:func -EnWeatherTag_DisabledCloudyRainThunderKakariko = 0x80B0EE78; // type:func -EnWeatherTag_EnabledCloudyRainThunderKakariko = 0x80B0EF10; // type:func -EnWeatherTag_SetSandstormIntensity = 0x80B0EF9C; // type:func -EnWeatherTag_DisabledRainThunder = 0x80B0F098; // type:func -EnWeatherTag_EnabledRainThunder = 0x80B0F13C; // type:func -EnWeatherTag_Update = 0x80B0F1F0; // type:func -EnWeiyer_Init = 0x80B0F3F0; // type:func -EnWeiyer_Destroy = 0x80B0F4C0; // type:func -func_80B32384 = 0x80B0F4EC; // type:func -func_80B32434 = 0x80B0F5A0; // type:func -func_80B32494 = 0x80B0F600; // type:func -func_80B32508 = 0x80B0F674; // type:func -func_80B32538 = 0x80B0F6A8; // type:func -func_80B325A0 = 0x80B0F714; // type:func -func_80B32660 = 0x80B0F7D4; // type:func -func_80B32724 = 0x80B0F898; // type:func -func_80B327B0 = 0x80B0F924; // type:func -func_80B327D8 = 0x80B0F950; // type:func -func_80B32804 = 0x80B0F980; // type:func -func_80B328E8 = 0x80B0FA64; // type:func -func_80B32C2C = 0x80B0FDA8; // type:func -func_80B32D30 = 0x80B0FEAC; // type:func -func_80B32DEC = 0x80B0FF68; // type:func -func_80B32E34 = 0x80B0FFB4; // type:func -func_80B33018 = 0x80B1019C; // type:func -func_80B331CC = 0x80B10350; // type:func -func_80B332B4 = 0x80B10438; // type:func -func_80B33338 = 0x80B104BC; // type:func -func_80B333B8 = 0x80B1053C; // type:func -func_80B3349C = 0x80B10620; // type:func -func_80B3368C = 0x80B10814; // type:func -EnWeiyer_Update = 0x80B108F4; // type:func -EnWeiyer_OverrideLimbDraw = 0x80B10A68; // type:func -EnWeiyer_Draw = 0x80B10A98; // type:func -EnWf_SetupAction = 0x80B10DF0; // type:func -EnWf_Init = 0x80B10DFC; // type:func -EnWf_Destroy = 0x80B11030; // type:func -EnWf_ChangeAction = 0x80B110CC; // type:func -EnWf_SetupWaitToAppear = 0x80B1149C; // type:func -EnWf_WaitToAppear = 0x80B11544; // type:func -EnWf_SetupWait = 0x80B11678; // type:func -EnWf_Wait = 0x80B11700; // type:func -EnWf_SetupRunAtPlayer = 0x80B1191C; // type:func -EnWf_RunAtPlayer = 0x80B1199C; // type:func -EnWf_SetupSearchForPlayer = 0x80B11E1C; // type:func -EnWf_SearchForPlayer = 0x80B11E68; // type:func -EnWf_SetupRunAroundPlayer = 0x80B12048; // type:func -EnWf_RunAroundPlayer = 0x80B12144; // type:func -EnWf_SetupSlash = 0x80B12664; // type:func -EnWf_Slash = 0x80B126E0; // type:func -EnWf_SetupRecoilFromBlockedSlash = 0x80B12A34; // type:func -EnWf_RecoilFromBlockedSlash = 0x80B12AD0; // type:func -EnWf_SetupBackflipAway = 0x80B12CC8; // type:func -EnWf_BackflipAway = 0x80B12D44; // type:func -EnWf_SetupStunned = 0x80B12E4C; // type:func -EnWf_Stunned = 0x80B12EC4; // type:func -EnWf_SetupDamaged = 0x80B12F80; // type:func -EnWf_Damaged = 0x80B13018; // type:func -EnWf_SetupSomersaultAndAttack = 0x80B13220; // type:func -EnWf_SomersaultAndAttack = 0x80B132D8; // type:func -EnWf_SetupBlocking = 0x80B133C0; // type:func -EnWf_Blocking = 0x80B13460; // type:func -EnWf_SetupSidestep = 0x80B136E4; // type:func -EnWf_Sidestep = 0x80B1387C; // type:func -EnWf_SetupDie = 0x80B13DCC; // type:func -EnWf_Die = 0x80B13E7C; // type:func -func_80B36F40 = 0x80B14084; // type:func -EnWf_UpdateDamage = 0x80B1417C; // type:func -EnWf_Update = 0x80B1434C; // type:func -EnWf_OverrideLimbDraw = 0x80B145A0; // type:func -EnWf_PostLimbDraw = 0x80B145E4; // type:func -EnWf_Draw = 0x80B1478C; // type:func -EnWf_DodgeRanged = 0x80B14948; // type:func -EnWonderItem_Destroy = 0x80B15100; // type:func -EnWonderItem_DropCollectible = 0x80B15144; // type:func -EnWonderItem_Init = 0x80B152A0; // type:func -EnWonderItem_MultitagFree = 0x80B155EC; // type:func -EnWonderItem_ProximityDrop = 0x80B15734; // type:func -EnWonderItem_InteractSwitch = 0x80B1579C; // type:func -EnWonderItem_ProximitySwitch = 0x80B157D0; // type:func -EnWonderItem_MultitagOrdered = 0x80B1585C; // type:func -EnWonderItem_BombSoldier = 0x80B159B8; // type:func -EnWonderItem_RollDrop = 0x80B15A48; // type:func -EnWonderItem_Update = 0x80B15ABC; // type:func -EnWonderTalk_Destroy = 0x80B15E30; // type:func -EnWonderTalk_Init = 0x80B15E40; // type:func -func_80B391CC = 0x80B15EE8; // type:func -func_80B3943C = 0x80B16078; // type:func -func_80B395F0 = 0x80B161CC; // type:func -EnWonderTalk_Update = 0x80B163BC; // type:func -EnWonderTalk2_Destroy = 0x80B164C0; // type:func -EnWonderTalk2_Init = 0x80B164D0; // type:func -func_80B3A10C = 0x80B16660; // type:func -func_80B3A15C = 0x80B166B0; // type:func -func_80B3A3D4 = 0x80B16830; // type:func -func_80B3A4F8 = 0x80B16918; // type:func -EnWonderTalk2_DoNothing = 0x80B16A68; // type:func -EnWonderTalk2_Update = 0x80B16A78; // type:func -EnWood02_SpawnZoneCheck = 0x80B16B60; // type:func -EnWood02_SpawnOffspring = 0x80B16C88; // type:func -EnWood02_Init = 0x80B16EA0; // type:func -EnWood02_Destroy = 0x80B172DC; // type:func -EnWood02_Update = 0x80B17318; // type:func -EnWood02_Draw = 0x80B17810; // type:func -EnXc_InitCollider = 0x80B17D40; // type:func -EnXc_UpdateCollider = 0x80B17D8C; // type:func -EnXc_Destroy = 0x80B17DD0; // type:func -EnXc_CalculateHeadTurn = 0x80B17DFC; // type:func -EnXc_SetEyePattern = 0x80B17E84; // type:func -EnXc_SpawnNut = 0x80B17F0C; // type:func -EnXc_BgCheck = 0x80B17FD4; // type:func -EnXc_AnimIsFinished = 0x80B1801C; // type:func -EnXc_GetCue = 0x80B18040; // type:func -EnXc_CheckForCue = 0x80B18064; // type:func -EnXc_CheckForNoCue = 0x80B180B0; // type:func -func_80B3C588 = 0x80B180FC; // type:func -func_80B3C620 = 0x80B18194; // type:func -EnXc_ChangeAnimation = 0x80B18274; // type:func -EnXc_CheckAndSetAction = 0x80B18330; // type:func -func_80B3C7D4 = 0x80B18348; // type:func -func_80B3C8CC = 0x80B18374; // type:func -func_80B3C924 = 0x80B183D0; // type:func -func_80B3C964 = 0x80B18410; // type:func -func_80B3C9DC = 0x80B18488; // type:func -func_80B3C9EC = 0x80B1849C; // type:func -func_80B3CA38 = 0x80B184E8; // type:func -EnXc_MinuetCS = 0x80B1853C; // type:func -func_80B3CB58 = 0x80B18614; // type:func -EnXc_BoleroCS = 0x80B18668; // type:func -EnXc_SetupSerenadeAction = 0x80B187C8; // type:func -EnXc_SerenadeCS = 0x80B18820; // type:func -EnXc_DoNothing = 0x80B188E8; // type:func -EnXc_SetWalkingSFX = 0x80B188F8; // type:func -EnXc_SetNutThrowSFX = 0x80B18978; // type:func -EnXc_SetLandingSFX = 0x80B18A04; // type:func -EnXc_SetColossusAppearSFX = 0x80B18A84; // type:func -func_80B3D118 = 0x80B18B90; // type:func -EnXc_SetColossusWindSFX = 0x80B18BD4; // type:func -EnXc_SpawnFlame = 0x80B18CDC; // type:func -EnXc_SetupFlamePos = 0x80B18D80; // type:func -EnXc_DestroyFlame = 0x80B18DFC; // type:func -EnXc_InitFlame = 0x80B18E3C; // type:func -func_80B3D48C = 0x80B18ED8; // type:func -EnXc_GetCurrentHarpAnim = 0x80B18F28; // type:func -EnXc_CalcXZAccel = 0x80B18FBC; // type:func -func_80B3D644 = 0x80B19094; // type:func -EnXc_CalcXZSpeed = 0x80B190B4; // type:func -func_80B3D6F0 = 0x80B19140; // type:func -func_80B3D710 = 0x80B19160; // type:func -func_80B3D730 = 0x80B19180; // type:func -func_80B3D750 = 0x80B191A0; // type:func -EnXc_SetupFallFromSkyAction = 0x80B191EC; // type:func -func_80B3D8A4 = 0x80B192FC; // type:func -EnXc_SetupWalkAction = 0x80B193EC; // type:func -EnXc_SetupHaltAction = 0x80B1945C; // type:func -EnXc_SetupStoppedAction = 0x80B19508; // type:func -func_80B3DAF0 = 0x80B19550; // type:func -EnXc_SetupInitialHarpAction = 0x80B19610; // type:func -EnXc_SetupPlayingHarpAction = 0x80B19688; // type:func -func_80B3DCA8 = 0x80B19710; // type:func -EnXc_SetupHarpPutawayAction = 0x80B197A4; // type:func -func_80B3DE00 = 0x80B19874; // type:func -func_80B3DE78 = 0x80B198EC; // type:func -EnXc_SetupReverseAccel = 0x80B19968; // type:func -EnXc_SetupReverseWalkAction = 0x80B19A18; // type:func -EnXc_SetupReverseHaltAction = 0x80B19A88; // type:func -EnXc_SetupNutThrow = 0x80B19B34; // type:func -func_80B3E164 = 0x80B19BDC; // type:func -EnXc_SetupDisappear = 0x80B19C30; // type:func -EnXc_ActionFunc0 = 0x80B19CA0; // type:func -EnXc_ActionFunc1 = 0x80B19CE0; // type:func -EnXc_GracefulFall = 0x80B19D20; // type:func -EnXc_Accelerate = 0x80B19D9C; // type:func -EnXc_Walk = 0x80B19DFC; // type:func -EnXc_Stopped = 0x80B19E5C; // type:func -EnXc_ActionFunc6 = 0x80B19EBC; // type:func -EnXc_ActionFunc7 = 0x80B19F04; // type:func -EnXc_ActionFunc8 = 0x80B19F50; // type:func -EnXc_ActionFunc9 = 0x80B19FA0; // type:func -EnXc_ActionFunc10 = 0x80B19FE8; // type:func -EnXc_ActionFunc11 = 0x80B1A030; // type:func -EnXc_ActionFunc12 = 0x80B1A07C; // type:func -EnXc_ActionFunc13 = 0x80B1A0C8; // type:func -EnXc_ReverseAccelerate = 0x80B1A124; // type:func -EnXc_ActionFunc15 = 0x80B1A190; // type:func -EnXc_HaltAndWaitToThrowNut = 0x80B1A1FC; // type:func -EnXc_ThrowNut = 0x80B1A268; // type:func -EnXc_Delete = 0x80B1A2D0; // type:func -EnXc_Fade = 0x80B1A32C; // type:func -func_80B3E87C = 0x80B1A34C; // type:func -EnXc_PullingOutHarpOverrideLimbDraw = 0x80B1A37C; // type:func -EnXc_HarpOverrideLimbDraw = 0x80B1A3B8; // type:func -EnXc_DrawPullingOutHarp = 0x80B1A3E0; // type:func -EnXc_DrawHarp = 0x80B1A51C; // type:func -func_80B3EBF0 = 0x80B1A658; // type:func -func_80B3EC00 = 0x80B1A66C; // type:func -func_80B3EC0C = 0x80B1A67C; // type:func -func_80B3EC90 = 0x80B1A700; // type:func -func_80B3ECD8 = 0x80B1A748; // type:func -EnXc_ActionFunc20 = 0x80B1A7B8; // type:func -EnXc_ActionFunc21 = 0x80B1A7DC; // type:func -EnXc_ActionFunc22 = 0x80B1A7FC; // type:func -EnXc_ActionFunc23 = 0x80B1A844; // type:func -EnXc_ActionFunc24 = 0x80B1A8A4; // type:func -EnXc_ActionFunc25 = 0x80B1A8B4; // type:func -EnXc_ActionFunc26 = 0x80B1A8C4; // type:func -EnXc_ActionFunc27 = 0x80B1A8D4; // type:func -EnXc_ActionFunc28 = 0x80B1A8E4; // type:func -func_80B3EE64 = 0x80B1A8F4; // type:func -func_80B3EE74 = 0x80B1A908; // type:func -func_80B3EEA4 = 0x80B1A93C; // type:func -func_80B3EEC8 = 0x80B1A960; // type:func -func_80B3EEEC = 0x80B1A984; // type:func -func_80B3EF10 = 0x80B1A9A8; // type:func -func_80B3EF34 = 0x80B1A9CC; // type:func -func_80B3EF58 = 0x80B1A9F0; // type:func -func_80B3EF80 = 0x80B1AA18; // type:func -func_80B3EFA4 = 0x80B1AA3C; // type:func -func_80B3EFC8 = 0x80B1AA60; // type:func -func_80B3EFEC = 0x80B1AA84; // type:func -func_80B3F010 = 0x80B1AAA8; // type:func -func_80B3F0B8 = 0x80B1AB54; // type:func -func_80B3F0DC = 0x80B1AB78; // type:func -func_80B3F100 = 0x80B1AB9C; // type:func -EnXc_Serenade = 0x80B1ABC0; // type:func -EnXc_ActionFunc30 = 0x80B1ABE0; // type:func -EnXc_ActionFunc31 = 0x80B1AC0C; // type:func -EnXc_ActionFunc32 = 0x80B1AC50; // type:func -EnXc_ActionFunc33 = 0x80B1AC7C; // type:func -EnXc_ActionFunc34 = 0x80B1ACA8; // type:func -EnXc_ActionFunc35 = 0x80B1ACD4; // type:func -EnXc_ActionFunc36 = 0x80B1AD00; // type:func -EnXc_ActionFunc37 = 0x80B1AD2C; // type:func -EnXc_ActionFunc38 = 0x80B1AD58; // type:func -EnXc_ActionFunc39 = 0x80B1AD84; // type:func -EnXc_ActionFunc40 = 0x80B1ADB0; // type:func -EnXc_ActionFunc41 = 0x80B1AE10; // type:func -EnXc_ActionFunc42 = 0x80B1AE3C; // type:func -EnXc_ActionFunc43 = 0x80B1AE68; // type:func -EnXc_ActionFunc44 = 0x80B1AE94; // type:func -func_80B3F3C8 = 0x80B1AEA4; // type:func -func_80B3F3D8 = 0x80B1AEB8; // type:func -EnXc_PlayDiveSFX = 0x80B1AED8; // type:func -EnXc_LakeHyliaDive = 0x80B1AF2C; // type:func -func_80B3F534 = 0x80B1B018; // type:func -func_80B3F59C = 0x80B1B080; // type:func -func_80B3F620 = 0x80B1B104; // type:func -func_80B3F644 = 0x80B1B128; // type:func -func_80B3F668 = 0x80B1B14C; // type:func -func_80B3F6DC = 0x80B1B1C0; // type:func -EnXc_SetupKneelAction = 0x80B1B1E4; // type:func -func_80B3F754 = 0x80B1B23C; // type:func -func_80B3F7BC = 0x80B1B2AC; // type:func -EnXc_ActionFunc45 = 0x80B1B2E8; // type:func -EnXc_ActionFunc46 = 0x80B1B314; // type:func -EnXc_ActionFunc47 = 0x80B1B340; // type:func -EnXc_ActionFunc48 = 0x80B1B398; // type:func -EnXc_ActionFunc49 = 0x80B1B3C4; // type:func -EnXc_Kneel = 0x80B1B428; // type:func -EnXc_ActionFunc51 = 0x80B1B48C; // type:func -EnXc_ActionFunc52 = 0x80B1B4F0; // type:func -func_80B3FA08 = 0x80B1B510; // type:func -func_80B3FA2C = 0x80B1B538; // type:func -EnXc_PlayTriforceSFX = 0x80B1B558; // type:func -func_80B3FAE0 = 0x80B1B5F0; // type:func -EnXc_CalcTriforce = 0x80B1B638; // type:func -func_80B3FF0C = 0x80B1BA30; // type:func -EnXc_SetupShowTriforceAction = 0x80B1BAD8; // type:func -EnXc_SetupShowTriforceIdleAction = 0x80B1BB68; // type:func -func_80B400AC = 0x80B1BBD4; // type:func -EnXc_ActionFunc53 = 0x80B1BC10; // type:func -EnXc_ActionFunc54 = 0x80B1BC30; // type:func -EnXc_ShowTriforce = 0x80B1BC78; // type:func -EnXc_ShowTriforceIdle = 0x80B1BCE0; // type:func -EnXc_TriforceOverrideLimbDraw = 0x80B1BD3C; // type:func -EnXc_TriforcePostLimbDraw = 0x80B1BD64; // type:func -EnXc_DrawTriforce = 0x80B1BDE0; // type:func -func_80B40590 = 0x80B1C074; // type:func -EnXc_SetThrownAroundSFX = 0x80B1C090; // type:func -EnXc_PlayLinkScreamSFX = 0x80B1C154; // type:func -EnXc_SetCrySFX = 0x80B1C188; // type:func -func_80B406F8 = 0x80B1C1E4; // type:func -EnXc_SetupIdleInNocturne = 0x80B1C1FC; // type:func -EnXc_SetupDefenseStance = 0x80B1C298; // type:func -EnXc_SetupContortions = 0x80B1C310; // type:func -EnXc_SetupFallInNocturne = 0x80B1C3AC; // type:func -EnXc_SetupHittingGroundInNocturne = 0x80B1C488; // type:func -func_80B40A78 = 0x80B1C528; // type:func -EnXc_SetupKneelInNocturne = 0x80B1C5C8; // type:func -func_80B40BB4 = 0x80B1C664; // type:func -func_80B40C50 = 0x80B1C700; // type:func -func_80B40C74 = 0x80B1C724; // type:func -func_80B40C98 = 0x80B1C748; // type:func -func_80B40CBC = 0x80B1C76C; // type:func -func_80B40CE0 = 0x80B1C790; // type:func -func_80B40D08 = 0x80B1C7B8; // type:func -func_80B40D2C = 0x80B1C7DC; // type:func -func_80B40D50 = 0x80B1C800; // type:func -func_80B40D74 = 0x80B1C824; // type:func -EnXc_SetupReverseHaltInNocturneCS = 0x80B1C848; // type:func -func_80B40E40 = 0x80B1C8F4; // type:func -func_80B40E64 = 0x80B1C918; // type:func -func_80B40E88 = 0x80B1C93C; // type:func -EnXc_SetupNocturneState = 0x80B1C960; // type:func -EnXc_InitialNocturneAction = 0x80B1CAA0; // type:func -EnXc_IdleInNocturne = 0x80B1CAC0; // type:func -EnXc_DefenseStance = 0x80B1CB10; // type:func -EnXc_Contort = 0x80B1CB58; // type:func -EnXc_FallInNocturne = 0x80B1CBC4; // type:func -EnXc_HitGroundInNocturne = 0x80B1CC2C; // type:func -EnXc_ActionFunc63 = 0x80B1CC6C; // type:func -EnXc_KneelInNocturneCS = 0x80B1CCC8; // type:func -EnXc_ActionFunc65 = 0x80B1CD10; // type:func -EnXc_ActionFunc66 = 0x80B1CD54; // type:func -EnXc_ActionFunc67 = 0x80B1CD80; // type:func -EnXc_ActionFunc68 = 0x80B1CDAC; // type:func -EnXc_ActionFunc69 = 0x80B1CDD8; // type:func -EnXc_ActionFunc70 = 0x80B1CE04; // type:func -EnXc_ActionFunc71 = 0x80B1CE30; // type:func -EnXc_ActionFunc72 = 0x80B1CE5C; // type:func -EnXc_ReverseAccelInNocturneCS = 0x80B1CE88; // type:func -EnXc_ReverseWalkInNocturneCS = 0x80B1CEB4; // type:func -EnXc_ReverseHaltInNocturneCS = 0x80B1CF08; // type:func -EnXc_ThrowNutInNocturneCS = 0x80B1CF34; // type:func -EnXc_DeleteInNocturneCS = 0x80B1CF60; // type:func -EnXc_KillInNocturneCS = 0x80B1CF8C; // type:func -EnXc_DrawSquintingEyes = 0x80B1CFB0; // type:func -EnXc_InitTempleOfTime = 0x80B1D08C; // type:func -EnXc_SetupDialogueAction = 0x80B1D1F8; // type:func -func_80B41798 = 0x80B1D280; // type:func -EnXc_BlockingPedestalAction = 0x80B1D2CC; // type:func -EnXc_ActionFunc80 = 0x80B1D334; // type:func -EnXc_Update = 0x80B1D39C; // type:func -EnXc_Init = 0x80B1D3E4; // type:func -EnXc_OverrideLimbDraw = 0x80B1D550; // type:func -EnXc_PostLimbDraw = 0x80B1D5D8; // type:func -EnXc_DrawNothing = 0x80B1D664; // type:func -EnXc_DrawDefault = 0x80B1D674; // type:func -EnXc_Draw = 0x80B1D77C; // type:func -EnYabusameMark_Destroy = 0x80B1E4D0; // type:func -EnYabusameMark_Init = 0x80B1E4FC; // type:func -func_80B42F74 = 0x80B1E63C; // type:func -EnYabusameMark_Update = 0x80B1E880; // type:func -EnYukabyun_Init = 0x80B1EBA0; // type:func -EnYukabyun_Destroy = 0x80B1EC50; // type:func -func_80B43A94 = 0x80B1EC7C; // type:func -func_80B43AD4 = 0x80B1ECBC; // type:func -func_80B43B6C = 0x80B1ED54; // type:func -EnYukabyun_Break = 0x80B1EDB4; // type:func -EnYukabyun_Update = 0x80B1EE28; // type:func -EnYukabyun_Draw = 0x80B1EFC8; // type:func -EnZf_SetupAction = 0x80B1F1B0; // type:func -EnZf_PrimaryFloorCheck = 0x80B1F1BC; // type:func -EnZf_SecondaryFloorCheck = 0x80B1F32C; // type:func -EnZf_Init = 0x80B1F45C; // type:func -EnZf_Destroy = 0x80B1F794; // type:func -EnZf_FindPlatform = 0x80B1F818; // type:func -EnZf_FindNextPlatformAwayFromPlayer = 0x80B1F9E0; // type:func -EnZf_FindNextPlatformTowardsPlayer = 0x80B1FC84; // type:func -EnZf_CanAttack = 0x80B1FE60; // type:func -func_80B44DC4 = 0x80B1FF34; // type:func -EnZf_ChooseAction = 0x80B20000; // type:func -EnZf_SetupDropIn = 0x80B20220; // type:func -EnZf_DropIn = 0x80B202E8; // type:func -func_80B45384 = 0x80B204F8; // type:func -func_80B4543C = 0x80B205B0; // type:func -EnZf_SetupApproachPlayer = 0x80B2082C; // type:func -EnZf_ApproachPlayer = 0x80B208C0; // type:func -EnZf_SetupJumpForward = 0x80B20FAC; // type:func -EnZf_JumpForward = 0x80B2106C; // type:func -func_80B4604C = 0x80B211C8; // type:func -func_80B46098 = 0x80B21214; // type:func -func_80B462E4 = 0x80B21460; // type:func -func_80B463E4 = 0x80B21568; // type:func -EnZf_SetupSlash = 0x80B21BAC; // type:func -EnZf_Slash = 0x80B21C68; // type:func -EnZf_SetupRecoilFromBlockedSlash = 0x80B21EF4; // type:func -EnZf_RecoilFromBlockedSlash = 0x80B21F68; // type:func -EnZf_SetupJumpBack = 0x80B22020; // type:func -EnZf_JumpBack = 0x80B220C0; // type:func -EnZf_SetupStunned = 0x80B221E4; // type:func -EnZf_Stunned = 0x80B222B4; // type:func -EnZf_SetupSheatheSword = 0x80B224F4; // type:func -EnZf_SheatheSword = 0x80B225D0; // type:func -EnZf_SetupHopAndTaunt = 0x80B2267C; // type:func -EnZf_HopAndTaunt = 0x80B226DC; // type:func -EnZf_SetupHopAway = 0x80B22934; // type:func -EnZf_HopAway = 0x80B229B4; // type:func -EnZf_SetupDrawSword = 0x80B22E00; // type:func -EnZf_DrawSword = 0x80B22E94; // type:func -EnZf_SetupDamaged = 0x80B22F44; // type:func -EnZf_Damaged = 0x80B23050; // type:func -EnZf_SetupJumpUp = 0x80B233B0; // type:func -EnZf_JumpUp = 0x80B23458; // type:func -func_80B483E4 = 0x80B23584; // type:func -EnZf_CircleAroundPlayer = 0x80B23720; // type:func -EnZf_SetupDie = 0x80B23EA0; // type:func -EnZf_Die = 0x80B24004; // type:func -EnZf_UpdateHeadRotation = 0x80B24144; // type:func -EnZf_UpdateDamage = 0x80B24268; // type:func -EnZf_Update = 0x80B24400; // type:func -EnZf_OverrideLimbDraw = 0x80B247B8; // type:func -EnZf_PostLimbDraw = 0x80B24844; // type:func -EnZf_Draw = 0x80B24A98; // type:func -EnZf_SetupCircleAroundPlayer = 0x80B24CE4; // type:func -EnZf_DodgeRangedEngaging = 0x80B24DB0; // type:func -EnZf_DodgeRangedWaiting = 0x80B24FDC; // type:func -func_80B4AB40 = 0x80B25CA0; // type:func -func_80B4AB48 = 0x80B25CA8; // type:func -EnZl1_Init = 0x80B25CB0; // type:func -EnZl1_Destroy = 0x80B25F40; // type:func -func_80B4AE18 = 0x80B25F80; // type:func -func_80B4AF18 = 0x80B26080; // type:func -func_80B4B010 = 0x80B26178; // type:func -func_80B4B240 = 0x80B263B0; // type:func -func_80B4B7F4 = 0x80B26964; // type:func -func_80B4B834 = 0x80B269A8; // type:func -func_80B4B874 = 0x80B269EC; // type:func -func_80B4B8B4 = 0x80B26A2C; // type:func -func_80B4BBC4 = 0x80B26D3C; // type:func -func_80B4BC78 = 0x80B26DF0; // type:func -func_80B4BF2C = 0x80B270A4; // type:func -EnZl1_Update = 0x80B27398; // type:func -EnZl1_OverrideLimbDraw = 0x80B274BC; // type:func -EnZl1_PostLimbDraw = 0x80B2757C; // type:func -EnZl1_Draw = 0x80B275D8; // type:func -EnZl2_Destroy = 0x80B29AB0; // type:func -EnZl2_UpdateEyes = 0x80B29AD4; // type:func -func_80B4EA40 = 0x80B29B64; // type:func -func_80B4EAF4 = 0x80B29C18; // type:func -func_80B4EBB8 = 0x80B29CDC; // type:func -func_80B4EC48 = 0x80B29D6C; // type:func -EnZl2_setEyesIndex = 0x80B29E0C; // type:func -EnZl2_setEyeIndex2 = 0x80B29E2C; // type:func -EnZl2_setMouthIndex = 0x80B29E44; // type:func -func_80B4ED2C = 0x80B29E5C; // type:func -EnZl2_UpdateSkelAnime = 0x80B29EA4; // type:func -EnZl2_GetCue = 0x80B29EC8; // type:func -func_80B4EDB8 = 0x80B29EF0; // type:func -func_80B4EE38 = 0x80B29F70; // type:func -func_80B4EF64 = 0x80B2A0A0; // type:func -func_80B4F230 = 0x80B2A370; // type:func -func_80B4F45C = 0x80B2A5A0; // type:func -EnZl2_PostLimbDraw = 0x80B2AC6C; // type:func -func_80B4FCCC = 0x80B2ADB8; // type:func -func_80B4FD00 = 0x80B2ADF0; // type:func -func_80B4FD90 = 0x80B2AE80; // type:func -func_80B4FDD4 = 0x80B2AEC4; // type:func -func_80B4FE10 = 0x80B2AF04; // type:func -func_80B4FE48 = 0x80B2AF3C; // type:func -func_80B4FE6C = 0x80B2AF64; // type:func -func_80B4FE90 = 0x80B2AF8C; // type:func -func_80B4FEB4 = 0x80B2AFB4; // type:func -func_80B4FED8 = 0x80B2AFDC; // type:func -EnZl2_GiveLightArrows = 0x80B2B004; // type:func -func_80B4FF84 = 0x80B2B094; // type:func -func_80B4FFF0 = 0x80B2B100; // type:func -func_80B5008C = 0x80B2B1A0; // type:func -func_80B500E0 = 0x80B2B1F4; // type:func -func_80B501C4 = 0x80B2B2D8; // type:func -func_80B501E8 = 0x80B2B2FC; // type:func -func_80B50260 = 0x80B2B374; // type:func -func_80B50278 = 0x80B2B390; // type:func -func_80B50304 = 0x80B2B41C; // type:func -func_80B503DC = 0x80B2B4F4; // type:func -func_80B5042C = 0x80B2B544; // type:func -func_80B50488 = 0x80B2B5A0; // type:func -func_80B504D4 = 0x80B2B5EC; // type:func -func_80B5053C = 0x80B2B650; // type:func -func_80B50580 = 0x80B2B698; // type:func -func_80B505D4 = 0x80B2B6EC; // type:func -func_80B50618 = 0x80B2B734; // type:func -func_80B50644 = 0x80B2B760; // type:func -func_80B50670 = 0x80B2B78C; // type:func -func_80B506C4 = 0x80B2B7E0; // type:func -func_80B5073C = 0x80B2B85C; // type:func -func_80B50780 = 0x80B2B8A4; // type:func -func_80B507E8 = 0x80B2B90C; // type:func -func_80B5082C = 0x80B2B954; // type:func -func_80B50880 = 0x80B2B9A8; // type:func -func_80B508C8 = 0x80B2B9F0; // type:func -func_80B50928 = 0x80B2BA4C; // type:func -func_80B50970 = 0x80B2BA94; // type:func -func_80B50980 = 0x80B2BAA8; // type:func -func_80B509A0 = 0x80B2BACC; // type:func -func_80B50A04 = 0x80B2BB30; // type:func -func_80B50BBC = 0x80B2BCD4; // type:func -func_80B50BEC = 0x80B2BD0C; // type:func -func_80B50C40 = 0x80B2BD68; // type:func -func_80B50CA8 = 0x80B2BDD8; // type:func -func_80B50CFC = 0x80B2BE34; // type:func -func_80B50D50 = 0x80B2BE90; // type:func -func_80B50D94 = 0x80B2BEDC; // type:func -func_80B50DE8 = 0x80B2BF38; // type:func -func_80B50E3C = 0x80B2BF94; // type:func -func_80B50E90 = 0x80B2BFF0; // type:func -func_80B50EE4 = 0x80B2C04C; // type:func -func_80B50F38 = 0x80B2C0A8; // type:func -func_80B50F8C = 0x80B2C104; // type:func -func_80B50FE8 = 0x80B2C168; // type:func -func_80B51034 = 0x80B2C1BC; // type:func -func_80B51080 = 0x80B2C210; // type:func -func_80B510CC = 0x80B2C264; // type:func -func_80B51118 = 0x80B2C2B8; // type:func -func_80B51164 = 0x80B2C30C; // type:func -func_80B511B0 = 0x80B2C360; // type:func -func_80B511FC = 0x80B2C3B4; // type:func -func_80B51250 = 0x80B2C410; // type:func -func_80B512B8 = 0x80B2C480; // type:func -func_80B51310 = 0x80B2C4E0; // type:func -func_80B5135C = 0x80B2C530; // type:func -func_80B513A8 = 0x80B2C57C; // type:func -func_80B51418 = 0x80B2C5F0; // type:func -func_80B5146C = 0x80B2C644; // type:func -func_80B5149C = 0x80B2C678; // type:func -func_80B514F8 = 0x80B2C6D8; // type:func -func_80B5154C = 0x80B2C72C; // type:func -func_80B515C4 = 0x80B2C7A4; // type:func -func_80B515D8 = 0x80B2C7BC; // type:func -func_80B51644 = 0x80B2C828; // type:func -func_80B51678 = 0x80B2C85C; // type:func -func_80B516D0 = 0x80B2C8B4; // type:func -func_80B51704 = 0x80B2C8E8; // type:func -func_80B5175C = 0x80B2C940; // type:func -func_80B51790 = 0x80B2C974; // type:func -func_80B517E0 = 0x80B2C9C4; // type:func -func_80B51824 = 0x80B2CA0C; // type:func -func_80B5187C = 0x80B2CA64; // type:func -func_80B518C0 = 0x80B2CAAC; // type:func -func_80B51948 = 0x80B2CB34; // type:func -func_80B51A5C = 0x80B2CC34; // type:func -func_80B51A8C = 0x80B2CC6C; // type:func -func_80B51AE4 = 0x80B2CCCC; // type:func -func_80B51B44 = 0x80B2CD34; // type:func -func_80B51BA8 = 0x80B2CDA0; // type:func -func_80B51C0C = 0x80B2CE0C; // type:func -func_80B51C64 = 0x80B2CE6C; // type:func -func_80B51CA8 = 0x80B2CEB8; // type:func -func_80B51D0C = 0x80B2CF24; // type:func -func_80B51D24 = 0x80B2CF40; // type:func -func_80B51DA4 = 0x80B2CFC0; // type:func -func_80B51EA8 = 0x80B2D0C4; // type:func -func_80B51EBC = 0x80B2D0DC; // type:func -func_80B51F38 = 0x80B2D15C; // type:func -func_80B51FA8 = 0x80B2D1CC; // type:func -func_80B52068 = 0x80B2D278; // type:func -func_80B52098 = 0x80B2D2B0; // type:func -func_80B52108 = 0x80B2D328; // type:func -func_80B52114 = 0x80B2D338; // type:func -func_80B521A0 = 0x80B2D398; // type:func -EnZl2_Update = 0x80B2D424; // type:func -EnZl2_Init = 0x80B2D46C; // type:func -EnZl2_OverrideLimbDraw = 0x80B2D518; // type:func -func_80B523BC = 0x80B2D580; // type:func -func_80B523C8 = 0x80B2D590; // type:func -func_80B525D4 = 0x80B2D76C; // type:func -EnZl2_Draw = 0x80B2D914; // type:func -func_80B533B0 = 0x80B2E1B0; // type:func -func_80B533FC = 0x80B2E1FC; // type:func -EnZl3_Destroy = 0x80B2E240; // type:func -func_80B53468 = 0x80B2E26C; // type:func -func_80B53488 = 0x80B2E28C; // type:func -EnZl3_UpdateEyes = 0x80B2E2D8; // type:func -EnZl3_setEyeIndex = 0x80B2E360; // type:func -EnZl3_setMouthIndex = 0x80B2E378; // type:func -func_80B5357C = 0x80B2E390; // type:func -func_80B53614 = 0x80B2E42C; // type:func -func_80B5366C = 0x80B2E484; // type:func -func_80B536B4 = 0x80B2E4CC; // type:func -func_80B536C4 = 0x80B2E4E0; // type:func -func_80B53764 = 0x80B2E584; // type:func -func_80B537E8 = 0x80B2E60C; // type:func -func_80B538B0 = 0x80B2E6D4; // type:func -EnZl3_UpdateSkelAnime = 0x80B2E770; // type:func -func_80B5396C = 0x80B2E794; // type:func -func_80B53974 = 0x80B2E7A0; // type:func -func_80B53980 = 0x80B2E7B4; // type:func -func_80B53B64 = 0x80B2E99C; // type:func -func_80B54360 = 0x80B2F1AC; // type:func -func_80B5458C = 0x80B2F3DC; // type:func -EnZl3_PostLimbDraw = 0x80B2FAD8; // type:func -func_80B54DB4 = 0x80B2FBA4; // type:func -func_80B54DC4 = 0x80B2FBB8; // type:func -func_80B54DD4 = 0x80B2FBCC; // type:func -func_80B54DE0 = 0x80B2FBDC; // type:func -func_80B54E14 = 0x80B2FC14; // type:func -func_80B54EA4 = 0x80B2FCA4; // type:func -func_80B54EF4 = 0x80B2FCF8; // type:func -func_80B54F18 = 0x80B2FD20; // type:func -func_80B54FB4 = 0x80B2FDC0; // type:func -func_80B55054 = 0x80B2FE44; // type:func -func_80B550F0 = 0x80B2FEE4; // type:func -func_80B55144 = 0x80B2FF38; // type:func -func_80B551E0 = 0x80B2FFD8; // type:func -func_80B55220 = 0x80B30018; // type:func -func_80B55268 = 0x80B30060; // type:func -func_80B552A8 = 0x80B300A0; // type:func -func_80B552DC = 0x80B300D4; // type:func -func_80B55334 = 0x80B30130; // type:func -func_80B55368 = 0x80B30164; // type:func -func_80B553B4 = 0x80B301B0; // type:func -func_80B553E8 = 0x80B301E4; // type:func -func_80B55408 = 0x80B30204; // type:func -func_80B55444 = 0x80B30240; // type:func -func_80B55550 = 0x80B30344; // type:func -func_80B555A4 = 0x80B303A0; // type:func -func_80B55604 = 0x80B30408; // type:func -func_80B5566C = 0x80B30478; // type:func -func_80B556CC = 0x80B304E0; // type:func -func_80B5572C = 0x80B30548; // type:func -func_80B55780 = 0x80B305A4; // type:func -func_80B55808 = 0x80B30608; // type:func -func_80B5582C = 0x80B30630; // type:func -func_80B5585C = 0x80B30660; // type:func -func_80B558A8 = 0x80B306AC; // type:func -func_80B559C4 = 0x80B307CC; // type:func -func_80B55A58 = 0x80B3085C; // type:func -func_80B55A84 = 0x80B30888; // type:func -func_80B55AC4 = 0x80B308C8; // type:func -func_80B55B04 = 0x80B30908; // type:func -func_80B55B38 = 0x80B3093C; // type:func -func_80B55B78 = 0x80B3097C; // type:func -func_80B55BAC = 0x80B309B0; // type:func -func_80B55C0C = 0x80B30A14; // type:func -func_80B55C4C = 0x80B30A54; // type:func -func_80B55C70 = 0x80B30A7C; // type:func -func_80B55CCC = 0x80B30AD4; // type:func -func_80B55D00 = 0x80B30B08; // type:func -func_80B55DB0 = 0x80B30BBC; // type:func -func_80B55E08 = 0x80B30C14; // type:func -func_80B55E48 = 0x80B30C54; // type:func -func_80B55E7C = 0x80B30C88; // type:func -func_80B55EBC = 0x80B30CC8; // type:func -func_80B55EF0 = 0x80B30CFC; // type:func -func_80B55F38 = 0x80B30D44; // type:func -func_80B55F6C = 0x80B30D78; // type:func -func_80B5604C = 0x80B30E5C; // type:func -func_80B56090 = 0x80B30EA0; // type:func -func_80B56108 = 0x80B30F1C; // type:func -func_80B56160 = 0x80B30F74; // type:func -func_80B561A0 = 0x80B30FB4; // type:func -func_80B561E0 = 0x80B30FF4; // type:func -func_80B56214 = 0x80B31028; // type:func -func_80B562F4 = 0x80B3110C; // type:func -func_80B5634C = 0x80B31164; // type:func -func_80B5638C = 0x80B311A4; // type:func -func_80B563C0 = 0x80B311D8; // type:func -func_80B56400 = 0x80B31218; // type:func -func_80B56434 = 0x80B3124C; // type:func -func_80B56474 = 0x80B3128C; // type:func -func_80B564A8 = 0x80B312C0; // type:func -func_80B56658 = 0x80B31460; // type:func -func_80B566AC = 0x80B314BC; // type:func -func_80B5670C = 0x80B31524; // type:func -func_80B5676C = 0x80B3158C; // type:func -func_80B567CC = 0x80B315F4; // type:func -func_80B5682C = 0x80B3165C; // type:func -func_80B568B4 = 0x80B316EC; // type:func -func_80B5691C = 0x80B3175C; // type:func -func_80B5697C = 0x80B317C4; // type:func -func_80B569E4 = 0x80B31834; // type:func -func_80B56A68 = 0x80B318C0; // type:func -func_80B56AE0 = 0x80B31940; // type:func -func_80B56B54 = 0x80B319BC; // type:func -func_80B56BA8 = 0x80B31A18; // type:func -func_80B56C24 = 0x80B31A9C; // type:func -func_80B56C84 = 0x80B31B04; // type:func -func_80B56CE4 = 0x80B31B6C; // type:func -func_80B56D44 = 0x80B31BD4; // type:func -func_80B56DA4 = 0x80B31C3C; // type:func -func_80B56DC8 = 0x80B31C60; // type:func -func_80B56DEC = 0x80B31C88; // type:func -func_80B56E38 = 0x80B31CD4; // type:func -func_80B56EB8 = 0x80B31D54; // type:func -func_80B56EE4 = 0x80B31D84; // type:func -func_80B56F10 = 0x80B31DB4; // type:func -func_80B56F8C = 0x80B31E08; // type:func -func_80B56FAC = 0x80B31E28; // type:func -func_80B57034 = 0x80B31EB4; // type:func -func_80B57104 = 0x80B31F88; // type:func -func_80B571A8 = 0x80B32030; // type:func -func_80B571FC = 0x80B32084; // type:func -func_80B57240 = 0x80B320C8; // type:func -func_80B57298 = 0x80B32120; // type:func -func_80B572F0 = 0x80B32178; // type:func -func_80B57324 = 0x80B321B0; // type:func -func_80B57350 = 0x80B321DC; // type:func -func_80B573C8 = 0x80B32254; // type:func -func_80B573FC = 0x80B32288; // type:func -func_80B57458 = 0x80B322E4; // type:func -func_80B57564 = 0x80B323F4; // type:func -func_80B575B0 = 0x80B32448; // type:func -func_80B575D0 = 0x80B32468; // type:func -func_80B575F0 = 0x80B32488; // type:func -func_80B5764C = 0x80B324E4; // type:func -func_80B576C8 = 0x80B32564; // type:func -func_80B57704 = 0x80B325A8; // type:func -func_80B5772C = 0x80B325D4; // type:func -func_80B57754 = 0x80B32600; // type:func -func_80B577BC = 0x80B3266C; // type:func -func_80B57858 = 0x80B3270C; // type:func -func_80B57890 = 0x80B32748; // type:func -func_80B57A74 = 0x80B32930; // type:func -func_80B57AAC = 0x80B32968; // type:func -func_80B57AE0 = 0x80B3299C; // type:func -func_80B57C54 = 0x80B32B14; // type:func -func_80B57C7C = 0x80B32B3C; // type:func -func_80B57C8C = 0x80B32B50; // type:func -func_80B57CB4 = 0x80B32B78; // type:func -func_80B57D60 = 0x80B32C20; // type:func -func_80B57D80 = 0x80B32C44; // type:func -func_80B57EAC = 0x80B32D7C; // type:func -func_80B57EEC = 0x80B32DC4; // type:func -func_80B57F1C = 0x80B32DF8; // type:func -func_80B57F84 = 0x80B32E64; // type:func -func_80B58014 = 0x80B32EFC; // type:func -func_80B58214 = 0x80B33108; // type:func -func_80B58268 = 0x80B33160; // type:func -func_80B582C8 = 0x80B331C0; // type:func -func_80B584B4 = 0x80B333AC; // type:func -func_80B58624 = 0x80B3351C; // type:func -func_80B5884C = 0x80B3374C; // type:func -func_80B58898 = 0x80B33798; // type:func -func_80B588E8 = 0x80B337E8; // type:func -func_80B58938 = 0x80B33838; // type:func -func_80B5899C = 0x80B338A0; // type:func -func_80B58A1C = 0x80B33920; // type:func -func_80B58A50 = 0x80B3395C; // type:func -func_80B58AAC = 0x80B339BC; // type:func -func_80B58C08 = 0x80B33B18; // type:func -func_80B58D50 = 0x80B33C60; // type:func -func_80B58DB0 = 0x80B33CC8; // type:func -func_80B58E10 = 0x80B33D30; // type:func -func_80B58E7C = 0x80B33DA4; // type:func -func_80B58EF4 = 0x80B33E24; // type:func -func_80B58F6C = 0x80B33EA4; // type:func -func_80B58FDC = 0x80B33F1C; // type:func -func_80B5904C = 0x80B33F94; // type:func -func_80B590BC = 0x80B3400C; // type:func -func_80B5912C = 0x80B34084; // type:func -func_80B591BC = 0x80B3411C; // type:func -func_80B5922C = 0x80B34194; // type:func -func_80B592A8 = 0x80B34218; // type:func -func_80B59340 = 0x80B342B8; // type:func -func_80B593D0 = 0x80B34350; // type:func -func_80B5944C = 0x80B343D4; // type:func -func_80B59698 = 0x80B345D0; // type:func -func_80B59768 = 0x80B346A0; // type:func -func_80B59828 = 0x80B34760; // type:func -func_80B59A80 = 0x80B349C0; // type:func -func_80B59AD0 = 0x80B34A10; // type:func -func_80B59B6C = 0x80B34AAC; // type:func -func_80B59DB8 = 0x80B34CF4; // type:func -EnZl3_Update = 0x80B34D64; // type:func -EnZl3_Init = 0x80B34DAC; // type:func -EnZl3_OverrideLimbDraw = 0x80B34E6C; // type:func -func_80B59FE8 = 0x80B34ED4; // type:func -func_80B59FF4 = 0x80B34EE4; // type:func -func_80B5A1D0 = 0x80B35090; // type:func -EnZl3_Draw = 0x80B35238; // type:func -EnZl4_SetActiveCamDir = 0x80B36000; // type:func -EnZl4_SetActiveCamMove = 0x80B360D8; // type:func -EnZl4_GetTextId = 0x80B3615C; // type:func -EnZl4_UpdateTalkState = 0x80B36200; // type:func -EnZl4_UpdateFace = 0x80B3623C; // type:func -EnZl4_SetMove = 0x80B3638C; // type:func -func_80B5BB78 = 0x80B363CC; // type:func -EnZl4_GetCueStartPos = 0x80B36418; // type:func -EnZl4_SetupFromLegendCs = 0x80B3645C; // type:func -EnZl4_InMovingAnim = 0x80B36534; // type:func -EnZl4_Init = 0x80B36604; // type:func -EnZl4_Destroy = 0x80B367C0; // type:func -EnZl4_SetNextAnim = 0x80B367EC; // type:func -EnZl4_ReverseAnimation = 0x80B36840; // type:func -EnZl4_CsWaitForPlayer = 0x80B36868; // type:func -EnZl4_CsMeetPlayer = 0x80B369C8; // type:func -EnZl4_CsAskStone = 0x80B36CC0; // type:func -EnZl4_CsAskName = 0x80B371EC; // type:func -EnZl4_CsTellLegend = 0x80B377D8; // type:func -EnZl4_CsLookWindow = 0x80B37C34; // type:func -EnZl4_CsWarnAboutGanon = 0x80B37E78; // type:func -EnZl4_CsMakePlan = 0x80B38340; // type:func -EnZl4_Cutscene = 0x80B38684; // type:func -EnZl4_Idle = 0x80B388FC; // type:func -EnZl4_TheEnd = 0x80B38974; // type:func -EnZl4_Update = 0x80B38B24; // type:func -EnZl4_OverrideLimbDraw = 0x80B38BD4; // type:func -EnZl4_PostLimbDraw = 0x80B38D64; // type:func -EnZl4_Draw = 0x80B38DC0; // type:func -EnZo_SpawnRipple = 0x80B3AA30; // type:func -EnZo_SpawnBubble = 0x80B3AAC4; // type:func -EnZo_SpawnSplash = 0x80B3ABF4; // type:func -EnZo_UpdateEffectsRipples = 0x80B3AD60; // type:func -EnZo_UpdateEffectsBubbles = 0x80B3AE1C; // type:func -EnZo_UpdateEffectsSplashes = 0x80B3AF4C; // type:func -EnZo_DrawEffectsRipples = 0x80B3B084; // type:func -EnZo_DrawEffectsBubbles = 0x80B3B234; // type:func -EnZo_DrawEffectsSplashes = 0x80B3B3E0; // type:func -EnZo_TreadWaterRipples = 0x80B3B598; // type:func -EnZo_SpawnSplashes = 0x80B3B614; // type:func -EnZo_GetTextId = 0x80B3B788; // type:func -EnZo_UpdateTalkState = 0x80B3B9FC; // type:func -EnZo_Blink = 0x80B3BB60; // type:func -EnZo_Dialog = 0x80B3BBD8; // type:func -EnZo_PlayerInProximity = 0x80B3BCB8; // type:func -EnZo_SetAnimation = 0x80B3BD58; // type:func -EnZo_Init = 0x80B3BE50; // type:func -EnZo_Destroy = 0x80B3C058; // type:func -EnZo_Standing = 0x80B3C068; // type:func -EnZo_Submerged = 0x80B3C14C; // type:func -EnZo_Surface = 0x80B3C18C; // type:func -EnZo_TreadWater = 0x80B3C270; // type:func -EnZo_Dive = 0x80B3C420; // type:func -EnZo_Update = 0x80B3C568; // type:func -EnZo_OverrideLimbDraw = 0x80B3C748; // type:func -EnZo_PostLimbDraw = 0x80B3C968; // type:func -EnZo_Draw = 0x80B3C9C4; // type:func -EnfHG_Init = 0x80B3CFF0; // type:func -EnfHG_Destroy = 0x80B3D0F0; // type:func -EnfHG_SetupIntro = 0x80B3D11C; // type:func -EnfHG_Intro = 0x80B3D180; // type:func -EnfHG_SetupApproach = 0x80B3E38C; // type:func -EnfHG_Approach = 0x80B3E5D8; // type:func -EnfHG_Attack = 0x80B3E77C; // type:func -EnfHG_Damage = 0x80B3EC00; // type:func -EnfHG_Retreat = 0x80B3EF30; // type:func -EnfHG_Done = 0x80B3F164; // type:func -EnfHG_Update = 0x80B3F174; // type:func -EnfHG_PostDraw = 0x80B3F308; // type:func -EnfHG_Draw = 0x80B3F31C; // type:func -EndTitle_Init = 0x80B3F920; // type:func -EndTitle_Destroy = 0x80B3F950; // type:func -EndTitle_Update = 0x80B3F960; // type:func -EndTitle_DrawFull = 0x80B3F970; // type:func -EndTitle_DrawNintendoLogo = 0x80B3FF3C; // type:func -Fishing_SetColliderElement = 0x80B43A40; // type:func -Fishing_SeedRand = 0x80B43AF0; // type:func -Fishing_RandZeroOne = 0x80B43B10; // type:func -Fishing_SmoothStepToS = 0x80B43C38; // type:func -Fishing_SpawnRipple = 0x80B43CE4; // type:func -Fishing_SpawnDustSplash = 0x80B43E3C; // type:func -Fishing_SpawnWaterDust = 0x80B43F84; // type:func -Fishing_SpawnBubble = 0x80B440BC; // type:func -Fishing_SpawnRainDrop = 0x80B441EC; // type:func -Fishing_InitPondProps = 0x80B442E4; // type:func -Fishing_Init = 0x80B445F8; // type:func -Fishing_Destroy = 0x80B44EC0; // type:func -Fishing_UpdateEffects = 0x80B44F38; // type:func -Fishing_DrawEffects = 0x80B4567C; // type:func -Fishing_DrawStreamSplash = 0x80B460A8; // type:func -Fishing_IsAboveCounter = 0x80B4622C; // type:func -Fishing_UpdateLine = 0x80B46320; // type:func -Fishing_UpdateLinePos = 0x80B468AC; // type:func -Fishing_DrawLureHook = 0x80B46A44; // type:func -Fishing_UpdateSinkingLure = 0x80B46F44; // type:func -Fishing_DrawSinkingLure = 0x80B47248; // type:func -Fishing_DrawLureAndLine = 0x80B47534; // type:func -Fishing_DrawRod = 0x80B47D84; // type:func -Fishing_UpdateLure = 0x80B4880C; // type:func -Fishing_SplashBySize = 0x80B4A7D8; // type:func -Fishing_SplashBySize2 = 0x80B4AAA0; // type:func -func_80B70ED4 = 0x80B4AC84; // type:func -Fishing_FishLeapSfx = 0x80B4B028; // type:func -Fishing_HandleAquariumDialog = 0x80B4B1E8; // type:func -Fishing_UpdateFish = 0x80B4B3A8; // type:func -Fishing_FishOverrideLimbDraw = 0x80B4F7F0; // type:func -Fishing_FishPostLimbDraw = 0x80B4F910; // type:func -Fishing_LoachOverrideLimbDraw = 0x80B4F950; // type:func -Fishing_LoachPostLimbDraw = 0x80B4F9D0; // type:func -Fishing_DrawFish = 0x80B4FA10; // type:func -Fishing_HandleReedContact = 0x80B4FC58; // type:func -Fishing_HandleLilyPadContact = 0x80B4FD04; // type:func -Fishing_UpdatePondProps = 0x80B4FDEC; // type:func -Fishing_DrawPondProps = 0x80B500A8; // type:func -Fishing_UpdateGroupFishes = 0x80B504CC; // type:func -Fishing_DrawGroupFishes = 0x80B50D9C; // type:func -Fishing_HandleOwnerDialog = 0x80B50F90; // type:func -Fishing_UpdateOwner = 0x80B51E14; // type:func -Fishing_OwnerOverrideLimbDraw = 0x80B53AF8; // type:func -Fishing_OwnerPostLimbDraw = 0x80B53B30; // type:func -Fishing_DrawOwner = 0x80B53C40; // type:func -ItemBHeart_Init = 0x80B5E5B0; // type:func -ItemBHeart_Destroy = 0x80B5E61C; // type:func -ItemBHeart_Update = 0x80B5E62C; // type:func -func_80B85264 = 0x80B5E6D4; // type:func -ItemBHeart_Draw = 0x80B5E7C0; // type:func -ItemEtcetera_SetupAction = 0x80B5E9C0; // type:func -ItemEtcetera_Init = 0x80B5E9CC; // type:func -ItemEtcetera_Destroy = 0x80B5EB4C; // type:func -ItemEtcetera_WaitForObject = 0x80B5EB5C; // type:func -func_80B85824 = 0x80B5EBB4; // type:func -func_80B858B4 = 0x80B5EC4C; // type:func -ItemEtcetera_SpawnSparkles = 0x80B5ED2C; // type:func -ItemEtcetera_MoveFireArrowDown = 0x80B5EE3C; // type:func -func_80B85B28 = 0x80B5EECC; // type:func -ItemEtcetera_UpdateFireArrow = 0x80B5EF14; // type:func -ItemEtcetera_Update = 0x80B5EF94; // type:func -ItemEtcetera_DrawThroughLens = 0x80B5EFB8; // type:func -ItemEtcetera_Draw = 0x80B5F010; // type:func -ItemInbox_Init = 0x80B5F290; // type:func -ItemInbox_Destroy = 0x80B5F2C4; // type:func -ItemInbox_Wait = 0x80B5F2D4; // type:func -ItemInbox_Update = 0x80B5F31C; // type:func -ItemInbox_Draw = 0x80B5F340; // type:func -ItemOcarina_SetupAction = 0x80B5F3F0; // type:func -ItemOcarina_Init = 0x80B5F3FC; // type:func -ItemOcarina_Destroy = 0x80B5F584; // type:func -ItemOcarina_Fly = 0x80B5F594; // type:func -ItemOcarina_GetThrown = 0x80B5F740; // type:func -func_80B864EC = 0x80B5F798; // type:func -func_80B865E0 = 0x80B5F88C; // type:func -ItemOcarina_DoNothing = 0x80B5F8EC; // type:func -ItemOcarina_StartSoTCutscene = 0x80B5F8FC; // type:func -ItemOcarina_WaitInWater = 0x80B5F970; // type:func -ItemOcarina_Update = 0x80B5FA44; // type:func -ItemOcarina_Draw = 0x80B5FA68; // type:func -ItemShield_SetupAction = 0x80B5FBC0; // type:func -ItemShield_Init = 0x80B5FBCC; // type:func -ItemShield_Destroy = 0x80B5FD34; // type:func -func_80B86AC8 = 0x80B5FD60; // type:func -func_80B86BC8 = 0x80B5FE64; // type:func -func_80B86CA8 = 0x80B5FF4C; // type:func -func_80B86F68 = 0x80B60210; // type:func -ItemShield_Update = 0x80B6031C; // type:func -ItemShield_Draw = 0x80B60340; // type:func -MagicDark_Init = 0x80B605D0; // type:func -MagicDark_Destroy = 0x80B606B4; // type:func -MagicDark_DiamondUpdate = 0x80B606EC; // type:func -MagicDark_DimLighting = 0x80B60934; // type:func -MagicDark_OrbUpdate = 0x80B60A80; // type:func -MagicDark_DiamondDraw = 0x80B60C28; // type:func -MagicDark_OrbDraw = 0x80B60E90; // type:func -MagicFire_Init = 0x80B61E20; // type:func -MagicFire_Destroy = 0x80B61ECC; // type:func -MagicFire_UpdateBeforeCast = 0x80B61EF0; // type:func -MagicFire_Update = 0x80B61F94; // type:func -MagicFire_Draw = 0x80B62328; // type:func -MagicWind_SetupAction = 0x80B64120; // type:func -MagicWind_Init = 0x80B6412C; // type:func -MagicWind_Destroy = 0x80B64238; // type:func -MagicWind_UpdateAlpha = 0x80B6426C; // type:func -MagicWind_WaitForTimer = 0x80B6438C; // type:func -MagicWind_Grow = 0x80B64408; // type:func -MagicWind_WaitAtFullSize = 0x80B64458; // type:func -MagicWind_FadeOut = 0x80B644A4; // type:func -MagicWind_Shrink = 0x80B64508; // type:func -MagicWind_Update = 0x80B64548; // type:func -MagicWind_OverrideLimbDraw = 0x80B6459C; // type:func -MagicWind_Draw = 0x80B64720; // type:func -MirRay_SetupCollider = 0x80B65E20; // type:func -MirRay_MakeShieldLight = 0x80B65EE8; // type:func -MirRay_Init = 0x80B6608C; // type:func -MirRay_Destroy = 0x80B66324; // type:func -MirRay_Update = 0x80B6639C; // type:func -MirRay_SetIntensity = 0x80B66488; // type:func -MirRay_SetupReflectionPolys = 0x80B6663C; // type:func -MirRay_RemoveSimilarReflections = 0x80B66818; // type:func -MirRay_ReflectedBeam = 0x80B6691C; // type:func -MirRay_Draw = 0x80B66E8C; // type:func -MirRay_CheckInFrustum = 0x80B67168; // type:func -ObjBean_InitCollider = 0x80B676D0; // type:func -ObjBean_InitDynaPoly = 0x80B67728; // type:func -ObjBean_FindFloor = 0x80B67780; // type:func -func_80B8EBC8 = 0x80B677E8; // type:func -ObjBean_UpdatePosition = 0x80B67808; // type:func -func_80B8EDF4 = 0x80B67A18; // type:func -func_80B8EE24 = 0x80B67A48; // type:func -ObjBean_Move = 0x80B67B20; // type:func -ObjBean_SetDrawMode = 0x80B67B50; // type:func -ObjBean_SetupPathCount = 0x80B67B74; // type:func -ObjBean_SetupPath = 0x80B67BB4; // type:func -ObjBean_FollowPath = 0x80B67C30; // type:func -ObjBean_CheckForHorseTrample = 0x80B67ED8; // type:func -ObjBean_Break = 0x80B67F68; // type:func -ObjBean_UpdateLeaves = 0x80B681E0; // type:func -ObjBean_SetupLeavesStill = 0x80B6829C; // type:func -ObjBean_LeavesStill = 0x80B6830C; // type:func -ObjBean_SetupShakeLeaves = 0x80B68350; // type:func -ObjBean_ShakeLeaves = 0x80B683C8; // type:func -ObjBean_SetupShakeLeavesFast = 0x80B6844C; // type:func -ObjBean_ShakeLeavesFast = 0x80B68490; // type:func -ObjBean_SetupGrow = 0x80B68518; // type:func -ObjBean_Grow = 0x80B6852C; // type:func -ObjBean_SetupFlattenLeaves = 0x80B68590; // type:func -ObjBean_FlattenLeaves = 0x80B685AC; // type:func -ObjBean_SetupGrown = 0x80B68628; // type:func -ObjBean_Grown = 0x80B6866C; // type:func -ObjBean_Init = 0x80B686C8; // type:func -ObjBean_Destroy = 0x80B68884; // type:func -ObjBean_SetupWaitForBean = 0x80B68900; // type:func -ObjBean_WaitForBean = 0x80B68938; // type:func -func_80B8FE00 = 0x80B689B4; // type:func -func_80B8FE3C = 0x80B689EC; // type:func -func_80B8FE6C = 0x80B68A1C; // type:func -func_80B8FEAC = 0x80B68A5C; // type:func -func_80B8FF50 = 0x80B68B00; // type:func -func_80B8FF8C = 0x80B68B38; // type:func -func_80B90010 = 0x80B68BBC; // type:func -func_80B90050 = 0x80B68BF8; // type:func -ObjBean_SetupWaitForWater = 0x80B68CB8; // type:func -ObjBean_WaitForWater = 0x80B68D00; // type:func -ObjBean_SetupGrowWaterPhase1 = 0x80B68DF8; // type:func -ObjBean_GrowWaterPhase1 = 0x80B68E38; // type:func -ObjBean_SetupGrowWaterPhase2 = 0x80B68E7C; // type:func -ObjBean_GrowWaterPhase2 = 0x80B68EB8; // type:func -ObjBean_SetupGrowWaterPhase3 = 0x80B68F68; // type:func -ObjBean_GrowWaterPhase3 = 0x80B68FA0; // type:func -ObjBean_SetupGrowWaterPhase4 = 0x80B690B4; // type:func -ObjBean_GrowWaterPhase4 = 0x80B690EC; // type:func -ObjBean_SetupGrowWaterPhase5 = 0x80B69188; // type:func -ObjBean_GrowWaterPhase5 = 0x80B691C0; // type:func -ObjBean_SetupWaitForPlayer = 0x80B69218; // type:func -ObjBean_WaitForPlayer = 0x80B69244; // type:func -ObjBean_SetupFly = 0x80B692B8; // type:func -ObjBean_Fly = 0x80B692FC; // type:func -ObjBean_SetupWaitForStepOff = 0x80B6942C; // type:func -ObjBean_WaitForStepOff = 0x80B69458; // type:func -func_80B908EC = 0x80B69498; // type:func -func_80B90918 = 0x80B694C4; // type:func -func_80B90970 = 0x80B69520; // type:func -func_80B909B0 = 0x80B69560; // type:func -func_80B909F8 = 0x80B695A8; // type:func -func_80B90A34 = 0x80B695E0; // type:func -ObjBean_Update = 0x80B69680; // type:func -ObjBean_DrawSoftSoilSpot = 0x80B69810; // type:func -ObjBean_DrawBeanstalk = 0x80B69898; // type:func -ObjBean_Draw = 0x80B69924; // type:func -ObjBlockstop_Init = 0x80B69E60; // type:func -ObjBlockstop_Destroy = 0x80B69EBC; // type:func -ObjBlockstop_Update = 0x80B69ECC; // type:func -ObjBombiwa_InitCollision = 0x80B6A000; // type:func -ObjBombiwa_Init = 0x80B6A058; // type:func -ObjBombiwa_Destroy = 0x80B6A124; // type:func -ObjBombiwa_Break = 0x80B6A150; // type:func -ObjBombiwa_Update = 0x80B6A350; // type:func -ObjBombiwa_Draw = 0x80B6A460; // type:func -ObjComb_Break = 0x80B6A570; // type:func -ObjComb_ChooseItemDrop = 0x80B6A860; // type:func -ObjComb_Init = 0x80B6A930; // type:func -ObjComb_Destroy = 0x80B6A9A0; // type:func -ObjComb_SetupWait = 0x80B6A9CC; // type:func -ObjComb_Wait = 0x80B6A9E0; // type:func -ObjComb_Update = 0x80B6AACC; // type:func -ObjComb_Draw = 0x80B6AB44; // type:func -ObjDekujr_Init = 0x80B6ADD0; // type:func -ObjDekujr_Destroy = 0x80B6AEDC; // type:func -ObjDekujr_GetCueStartPos = 0x80B6AEEC; // type:func -ObjDekujr_GetCueEndPos = 0x80B6AF30; // type:func -ObjDekujr_ComeUp = 0x80B6AF74; // type:func -ObjDekujr_Update = 0x80B6B124; // type:func -ObjDekujr_Draw = 0x80B6B214; // type:func -ObjElevator_SetupAction = 0x80B6B410; // type:func -func_80B92B08 = 0x80B6B41C; // type:func -ObjElevator_Init = 0x80B6B474; // type:func -ObjElevator_Destroy = 0x80B6B504; // type:func -func_80B92C5C = 0x80B6B538; // type:func -func_80B92C80 = 0x80B6B55C; // type:func -func_80B92D20 = 0x80B6B5FC; // type:func -func_80B92D44 = 0x80B6B620; // type:func -ObjElevator_Update = 0x80B6B6A4; // type:func -ObjElevator_Draw = 0x80B6B6D8; // type:func -ObjHamishi_InitCollision = 0x80B6B7D0; // type:func -ObjHamishi_Shake = 0x80B6B828; // type:func -ObjHamishi_Break = 0x80B6B9A4; // type:func -ObjHamishi_Init = 0x80B6BC50; // type:func -ObjHamishi_Destroy = 0x80B6BD38; // type:func -ObjHamishi_Update = 0x80B6BD64; // type:func -ObjHamishi_Draw = 0x80B6BE94; // type:func -ObjHana_Init = 0x80B6C020; // type:func -ObjHana_Destroy = 0x80B6C11C; // type:func -ObjHana_Update = 0x80B6C168; // type:func -ObjHana_Draw = 0x80B6C1D8; // type:func -ObjHsblock_SetupAction = 0x80B6C330; // type:func -func_80B93B68 = 0x80B6C33C; // type:func -func_80B93BF0 = 0x80B6C394; // type:func -ObjHsblock_Init = 0x80B6C418; // type:func -ObjHsblock_Destroy = 0x80B6C4E8; // type:func -func_80B93D90 = 0x80B6C51C; // type:func -func_80B93DB0 = 0x80B6C53C; // type:func -func_80B93DF4 = 0x80B6C580; // type:func -func_80B93E38 = 0x80B6C5C8; // type:func -func_80B93E5C = 0x80B6C5EC; // type:func -ObjHsblock_Update = 0x80B6C694; // type:func -ObjHsblock_Draw = 0x80B6C6E0; // type:func -ObjIcePoly_Init = 0x80B6C900; // type:func -ObjIcePoly_Destroy = 0x80B6CAC0; // type:func -ObjIcePoly_Idle = 0x80B6CB10; // type:func -ObjIcePoly_Melt = 0x80B6CD40; // type:func -ObjIcePoly_Update = 0x80B6CFF8; // type:func -ObjIcePoly_Draw = 0x80B6D01C; // type:func -ObjKibako_SpawnCollectible = 0x80B6D2B0; // type:func -ObjKibako_ApplyGravity = 0x80B6D310; // type:func -ObjKibako_InitCollider = 0x80B6D344; // type:func -ObjKibako_Init = 0x80B6D39C; // type:func -ObjKibako_Destroy = 0x80B6D414; // type:func -ObjKibako_AirBreak = 0x80B6D440; // type:func -ObjKibako_WaterBreak = 0x80B6D6C0; // type:func -ObjKibako_SetupIdle = 0x80B6D940; // type:func -ObjKibako_Idle = 0x80B6D95C; // type:func -ObjKibako_SetupHeld = 0x80B6DB58; // type:func -ObjKibako_Held = 0x80B6DB8C; // type:func -ObjKibako_SetupThrown = 0x80B6DC58; // type:func -ObjKibako_Thrown = 0x80B6DCB8; // type:func -ObjKibako_Update = 0x80B6DDF4; // type:func -ObjKibako_Draw = 0x80B6DE18; // type:func -ObjKibako2_InitCollider = 0x80B6DFB0; // type:func -ObjKibako2_Break = 0x80B6E008; // type:func -ObjKibako2_SpawnCollectible = 0x80B6E284; // type:func -ObjKibako2_Init = 0x80B6E2D4; // type:func -ObjKibako2_Destroy = 0x80B6E380; // type:func -ObjKibako2_Idle = 0x80B6E3C8; // type:func -ObjKibako2_Kill = 0x80B6E4A0; // type:func -ObjKibako2_Update = 0x80B6E524; // type:func -ObjKibako2_Draw = 0x80B6E548; // type:func -ObjLift_SetupAction = 0x80B6E670; // type:func -ObjLift_InitDynaPoly = 0x80B6E67C; // type:func -ObjLift_SpawnFragments = 0x80B6E6D4; // type:func -ObjLift_Init = 0x80B6E958; // type:func -ObjLift_Destroy = 0x80B6EA58; // type:func -ObjLift_SetupWait = 0x80B6EA8C; // type:func -ObjLift_Wait = 0x80B6EAD0; // type:func -ObjLift_SetupShake = 0x80B6EBC0; // type:func -ObjLift_Shake = 0x80B6EBEC; // type:func -ObjLift_SetupFall = 0x80B6ED34; // type:func -ObjLift_Fall = 0x80B6EDB8; // type:func -ObjLift_Update = 0x80B6EEBC; // type:func -ObjLift_Draw = 0x80B6EEF0; // type:func -ObjLightswitch_InitCollider = 0x80B6F090; // type:func -ObjLightswitch_SetSwitchFlag = 0x80B6F12C; // type:func -ObjLightswitch_ClearSwitchFlag = 0x80B6F1F0; // type:func -ObjLightswitch_SpawnDisappearEffects = 0x80B6F270; // type:func -ObjLightswitch_Init = 0x80B6F498; // type:func -ObjLightswitch_Destroy = 0x80B6F62C; // type:func -ObjLightswitch_SetupOff = 0x80B6F658; // type:func -ObjLightswitch_Off = 0x80B6F68C; // type:func -ObjLightswitch_SetupTurnOn = 0x80B6F76C; // type:func -ObjLightswitch_TurnOn = 0x80B6F790; // type:func -ObjLightswitch_SetupOn = 0x80B6F884; // type:func -ObjLightswitch_On = 0x80B6F8C0; // type:func -ObjLightswitch_SetupTurnOff = 0x80B6F9D4; // type:func -ObjLightswitch_TurnOff = 0x80B6FA00; // type:func -ObjLightswitch_SetupDisappearDelay = 0x80B6FAF0; // type:func -ObjLightswitch_DisappearDelay = 0x80B6FB0C; // type:func -ObjLightswitch_SetupDisappear = 0x80B6FB54; // type:func -ObjLightswitch_Disappear = 0x80B6FB70; // type:func -ObjLightswitch_Update = 0x80B6FBB4; // type:func -ObjLightswitch_DrawOpa = 0x80B6FC98; // type:func -ObjLightswitch_DrawXlu = 0x80B6FFC0; // type:func -ObjLightswitch_Draw = 0x80B70270; // type:func -ObjMakekinsuta_Init = 0x80B704C0; // type:func -func_80B98320 = 0x80B704D8; // type:func -ObjMakekinsuta_DoNothing = 0x80B7058C; // type:func -ObjMakekinsuta_Update = 0x80B7059C; // type:func -ObjMakeoshihiki_Init = 0x80B70610; // type:func -ObjMakeoshihiki_Draw = 0x80B70784; // type:func -ObjMure_SetCullingImpl = 0x80B70AA0; // type:func -ObjMure_SetCulling = 0x80B70AF8; // type:func -ObjMure_Init = 0x80B70B24; // type:func -ObjMure_Destroy = 0x80B70BD4; // type:func -ObjMure_GetMaxChildSpawns = 0x80B70BE4; // type:func -ObjMure_GetSpawnPos = 0x80B70C10; // type:func -ObjMure_SpawnActors0 = 0x80B70C38; // type:func -ObjMure_SpawnActors1 = 0x80B70E00; // type:func -ObjMure_SpawnActors = 0x80B70F4C; // type:func -ObjMure_KillActorsImpl = 0x80B70F9C; // type:func -ObjMure_KillActors = 0x80B71094; // type:func -ObjMure_CheckChildren = 0x80B710B4; // type:func -ObjMure_InitialAction = 0x80B71178; // type:func -ObjMure_CulledState = 0x80B71190; // type:func -ObjMure_SetFollowTargets = 0x80B711F0; // type:func -ObjMure_SetChildToFollowPlayer = 0x80B712C8; // type:func -ObjMure_GroupBehavior0 = 0x80B71448; // type:func -ObjMure_GroupBehavior1 = 0x80B71670; // type:func -ObjMure_ActiveState = 0x80B717F4; // type:func -ObjMure_Update = 0x80B7189C; // type:func -ObjMure2_SetPosShrubCircle = 0x80B71AB0; // type:func -ObjMure2_SetPosShrubScattered = 0x80B71BCC; // type:func -ObjMure2_SetPosRockCircle = 0x80B71CCC; // type:func -ObjMure2_SetActorSpawnParams = 0x80B71DD8; // type:func -ObjMure2_SpawnActors = 0x80B71E2C; // type:func -ObjMure2_CleanupAndDie = 0x80B71F88; // type:func -func_80B9A534 = 0x80B72088; // type:func -ObjMure2_Init = 0x80B7211C; // type:func -ObjMure2_SetupWait = 0x80B7217C; // type:func -ObjMure2_Wait = 0x80B72190; // type:func -func_80B9A658 = 0x80B721B4; // type:func -func_80B9A668 = 0x80B721C8; // type:func -func_80B9A6E8 = 0x80B72248; // type:func -func_80B9A6F8 = 0x80B7225C; // type:func -ObjMure2_Update = 0x80B722EC; // type:func -func_80B9A9D0 = 0x80B724D0; // type:func -func_80B9AA90 = 0x80B72590; // type:func -func_80B9ABA0 = 0x80B726A0; // type:func -func_80B9ACE4 = 0x80B727E4; // type:func -func_80B9ADCC = 0x80B728D0; // type:func -ObjMure3_Init = 0x80B729C4; // type:func -ObjMure3_Destroy = 0x80B72A24; // type:func -func_80B9AF24 = 0x80B72A34; // type:func -func_80B9AF34 = 0x80B72A48; // type:func -func_80B9AF54 = 0x80B72A6C; // type:func -func_80B9AF64 = 0x80B72A80; // type:func -func_80B9AFEC = 0x80B72B08; // type:func -func_80B9AFFC = 0x80B72B1C; // type:func -ObjMure3_Update = 0x80B72B98; // type:func -ObjOshihiki_InitDynapoly = 0x80B72CA0; // type:func -ObjOshihiki_RotateXZ = 0x80B72CF8; // type:func -ObjOshihiki_StrongEnough = 0x80B72D4C; // type:func -ObjOshihiki_ResetFloors = 0x80B72DD0; // type:func -ObjOshihiki_GetBlockUnder = 0x80B72DFC; // type:func -ObjOshihiki_UpdateInitPos = 0x80B72E8C; // type:func -ObjOshihiki_NoSwitchPress = 0x80B72FBC; // type:func -ObjOshihiki_CheckType = 0x80B73088; // type:func -ObjOshihiki_SetScale = 0x80B730D8; // type:func -ObjOshihiki_SetTexture = 0x80B73110; // type:func -ObjOshihiki_SetColor = 0x80B73170; // type:func -ObjOshihiki_Init = 0x80B73218; // type:func -ObjOshihiki_Destroy = 0x80B73340; // type:func -ObjOshihiki_SetFloors = 0x80B73374; // type:func -ObjOshihiki_GetHighestFloor = 0x80B734D4; // type:func -ObjOshihiki_SetGround = 0x80B73620; // type:func -ObjOshihiki_CheckFloor = 0x80B73678; // type:func -ObjOshihiki_CheckGround = 0x80B736D0; // type:func -ObjOshihiki_CheckWall = 0x80B73748; // type:func -ObjOshihiki_MoveWithBlockUnder = 0x80B7399C; // type:func -ObjOshihiki_SetupOnScene = 0x80B73A98; // type:func -ObjOshihiki_OnScene = 0x80B73AD0; // type:func -ObjOshihiki_SetupOnActor = 0x80B73BBC; // type:func -ObjOshihiki_OnActor = 0x80B73BFC; // type:func -ObjOshihiki_SetupPush = 0x80B73DF4; // type:func -ObjOshihiki_Push = 0x80B73E20; // type:func -ObjOshihiki_SetupFall = 0x80B7403C; // type:func -ObjOshihiki_Fall = 0x80B74094; // type:func -ObjOshihiki_Update = 0x80B74198; // type:func -ObjOshihiki_Draw = 0x80B74220; // type:func -ObjRoomtimer_Init = 0x80B74750; // type:func -ObjRoomtimer_Destroy = 0x80B747A4; // type:func -func_80B9D054 = 0x80B747D8; // type:func -func_80B9D0B0 = 0x80B74838; // type:func -ObjRoomtimer_Update = 0x80B74914; // type:func -ObjSwitch_RotateY = 0x80B749A0; // type:func -ObjSwitch_InitDynaPoly = 0x80B74A20; // type:func -ObjSwitch_InitJntSphCollider = 0x80B74A78; // type:func -ObjSwitch_InitTrisCollider = 0x80B74B14; // type:func -ObjSwitch_SpawnIce = 0x80B74C34; // type:func -ObjSwitch_SetOn = 0x80B74CA8; // type:func -ObjSwitch_SetOff = 0x80B74D54; // type:func -ObjSwitch_UpdateTwoTexScrollXY = 0x80B74DDC; // type:func -ObjSwitch_Init = 0x80B74E24; // type:func -ObjSwitch_Destroy = 0x80B750BC; // type:func -ObjSwitch_FloorUpInit = 0x80B75160; // type:func -ObjSwitch_FloorUp = 0x80B75180; // type:func -ObjSwitch_FloorPressInit = 0x80B752F0; // type:func -ObjSwitch_FloorPress = 0x80B7530C; // type:func -ObjSwitch_FloorDownInit = 0x80B753CC; // type:func -ObjSwitch_FloorDown = 0x80B753F4; // type:func -ObjSwitch_FloorReleaseInit = 0x80B75540; // type:func -ObjSwitch_FloorRelease = 0x80B7555C; // type:func -ObjSwitch_EyeIsHit = 0x80B75640; // type:func -ObjSwitch_EyeFrozenInit = 0x80B756B0; // type:func -ObjSwitch_EyeInit = 0x80B756C4; // type:func -ObjSwitch_EyeOpenInit = 0x80B7571C; // type:func -ObjSwitch_EyeOpen = 0x80B75734; // type:func -ObjSwitch_EyeClosingInit = 0x80B757A0; // type:func -ObjSwitch_EyeClosing = 0x80B757BC; // type:func -ObjSwitch_EyeClosedInit = 0x80B75838; // type:func -ObjSwitch_EyeClosed = 0x80B75854; // type:func -ObjSwitch_EyeOpeningInit = 0x80B75914; // type:func -ObjSwitch_EyeOpening = 0x80B75930; // type:func -ObjSwitch_CrystalOffInit = 0x80B759C0; // type:func -ObjSwitch_CrystalOff = 0x80B759EC; // type:func -ObjSwitch_CrystalTurnOnInit = 0x80B75B24; // type:func -ObjSwitch_CrystalTurnOn = 0x80B75B40; // type:func -ObjSwitch_CrystalOnInit = 0x80B75BC8; // type:func -ObjSwitch_CrystalOn = 0x80B75BF8; // type:func -ObjSwitch_CrystalTurnOffInit = 0x80B75CC0; // type:func -ObjSwitch_CrystalTurnOff = 0x80B75CDC; // type:func -ObjSwitch_Update = 0x80B75D64; // type:func -ObjSwitch_DrawFloor = 0x80B75EA0; // type:func -ObjSwitch_DrawFloorRusty = 0x80B75EE4; // type:func -ObjSwitch_DrawEye = 0x80B75F14; // type:func -ObjSwitch_DrawCrystal = 0x80B76028; // type:func -ObjSwitch_Draw = 0x80B76284; // type:func -ObjSyokudai_Init = 0x80B76780; // type:func -ObjSyokudai_Destroy = 0x80B76944; // type:func -ObjSyokudai_Update = 0x80B76998; // type:func -ObjSyokudai_Draw = 0x80B76FB4; // type:func -ObjTimeblock_CalculateIsVisible = 0x80B773D0; // type:func -ObjTimeblock_SpawnDemoEffect = 0x80B77490; // type:func -ObjTimeblock_ToggleSwitchFlag = 0x80B77504; // type:func -ObjTimeblock_Init = 0x80B7754C; // type:func -ObjTimeblock_Destroy = 0x80B77700; // type:func -ObjTimeblock_PlayerIsInRange = 0x80B77734; // type:func -ObjTimeblock_WaitForOcarina = 0x80B77814; // type:func -ObjTimeblock_WaitForSong = 0x80B77894; // type:func -ObjTimeblock_SetupDoNothing = 0x80B7790C; // type:func -ObjTimeblock_DoNothing = 0x80B77920; // type:func -ObjTimeblock_SetupNormal = 0x80B77930; // type:func -ObjTimeblock_Normal = 0x80B77944; // type:func -func_80BA06AC = 0x80B77AC0; // type:func -ObjTimeblock_SetupAltBehaviorVisible = 0x80B77B70; // type:func -ObjTimeblock_AltBehaviorVisible = 0x80B77B84; // type:func -ObjTimeblock_SetupAltBehaviourNotVisible = 0x80B77C50; // type:func -ObjTimeblock_AltBehaviourNotVisible = 0x80B77C64; // type:func -ObjTimeblock_Update = 0x80B77D34; // type:func -ObjTimeblock_Draw = 0x80B77DBC; // type:func -ObjTsubo_SpawnCollectible = 0x80B78020; // type:func -ObjTsubo_ApplyGravity = 0x80B78080; // type:func -ObjTsubo_SnapToFloor = 0x80B780B4; // type:func -ObjTsubo_InitCollider = 0x80B78150; // type:func -ObjTsubo_Init = 0x80B781A8; // type:func -ObjTsubo_Destroy = 0x80B78278; // type:func -ObjTsubo_AirBreak = 0x80B782A4; // type:func -ObjTsubo_WaterBreak = 0x80B7852C; // type:func -ObjTsubo_SetupWaitForObject = 0x80B787C4; // type:func -ObjTsubo_WaitForObject = 0x80B787D8; // type:func -ObjTsubo_SetupIdle = 0x80B7884C; // type:func -ObjTsubo_Idle = 0x80B78860; // type:func -ObjTsubo_SetupLiftedUp = 0x80B78A70; // type:func -ObjTsubo_LiftedUp = 0x80B78AB4; // type:func -ObjTsubo_SetupThrown = 0x80B78B3C; // type:func -ObjTsubo_Thrown = 0x80B78C04; // type:func -ObjTsubo_Update = 0x80B78D98; // type:func -ObjTsubo_Draw = 0x80B78DBC; // type:func -ObjWarp2block_Spawn = 0x80B79010; // type:func -func_80BA1ECC = 0x80B790EC; // type:func -ObjWarp2block_SwapWithChild = 0x80B7926C; // type:func -func_80BA2218 = 0x80B7943C; // type:func -func_80BA228C = 0x80B794BC; // type:func -func_80BA2304 = 0x80B79534; // type:func -ObjWarp2block_Init = 0x80B79578; // type:func -ObjWarp2block_Destroy = 0x80B79698; // type:func -ObjWarp2block_SetInactive = 0x80B796D8; // type:func -ObjWarp2block_DoNothing = 0x80B796F0; // type:func -func_80BA24E8 = 0x80B79700; // type:func -func_80BA24F8 = 0x80B79714; // type:func -func_80BA2600 = 0x80B797F8; // type:func -func_80BA2610 = 0x80B7980C; // type:func -ObjWarp2block_Update = 0x80B798BC; // type:func -ObjWarp2block_Draw = 0x80B798F8; // type:func -ObjectKankyo_SetupAction = 0x80B79B40; // type:func -ObjectKankyo_Init = 0x80B79B4C; // type:func -ObjectKankyo_Destroy = 0x80B79E4C; // type:func -ObjectKankyo_Snow = 0x80B79E70; // type:func -ObjectKankyo_Fairies = 0x80B79E80; // type:func -ObjectKankyo_Update = 0x80B7AC98; // type:func -ObjectKankyo_Draw = 0x80B7ACBC; // type:func -ObjectKankyo_DrawFairies = 0x80B7AD40; // type:func -ObjectKankyo_DrawSnow = 0x80B7B1C8; // type:func -ObjectKankyo_Lightning = 0x80B7B990; // type:func -ObjectKankyo_DrawLightning = 0x80B7BA38; // type:func -ObjectKankyo_SunGraveSparkInit = 0x80B7BC34; // type:func -ObjectKankyo_WaitForSunGraveSparkObject = 0x80B7BC80; // type:func -ObjectKankyo_SunGraveSpark = 0x80B7BCF0; // type:func -ObjectKankyo_DrawSunGraveSpark = 0x80B7BD9C; // type:func -ObjectKankyo_InitBeams = 0x80B7C2E4; // type:func -ObjectKankyo_WaitForBeamObject = 0x80B7C330; // type:func -ObjectKankyo_Beams = 0x80B7C390; // type:func -ObjectKankyo_DrawBeams = 0x80B7C470; // type:func -OceffSpot_SetupAction = 0x80B7CDC0; // type:func -OceffSpot_Init = 0x80B7CDCC; // type:func -OceffSpot_Destroy = 0x80B7CF28; // type:func -OceffSpot_End = 0x80B7CFB8; // type:func -OceffSpot_Wait = 0x80B7D080; // type:func -OceffSpot_GrowCylinder = 0x80B7D0BC; // type:func -OceffSpot_Update = 0x80B7D120; // type:func -OceffSpot_Draw = 0x80B7D3F8; // type:func -OceffStorm_SetupAction = 0x80B7DCF0; // type:func -OceffStorm_Init = 0x80B7DCFC; // type:func -OceffStorm_Destroy = 0x80B7DDCC; // type:func -OceffStorm_DefaultAction = 0x80B7DE18; // type:func -OceffStorm_UnkAction = 0x80B7DFDC; // type:func -OceffStorm_Update = 0x80B7DFFC; // type:func -OceffStorm_Draw2 = 0x80B7E068; // type:func -OceffStorm_Draw = 0x80B7E218; // type:func -OceffWipe_Init = 0x80B7F8A0; // type:func -OceffWipe_Destroy = 0x80B7F8FC; // type:func -OceffWipe_Update = 0x80B7F948; // type:func -OceffWipe_Draw = 0x80B7F9A8; // type:func -OceffWipe2_Init = 0x80B80620; // type:func -OceffWipe2_Destroy = 0x80B8067C; // type:func -OceffWipe2_Update = 0x80B806C8; // type:func -OceffWipe2_Draw = 0x80B80728; // type:func -OceffWipe3_Init = 0x80B81D90; // type:func -OceffWipe3_Destroy = 0x80B81DEC; // type:func -OceffWipe3_Update = 0x80B81E38; // type:func -OceffWipe3_Draw = 0x80B81E98; // type:func -OceffWipe4_Init = 0x80B834E0; // type:func -OceffWipe4_Destroy = 0x80B8353C; // type:func -OceffWipe4_Update = 0x80B83560; // type:func -OceffWipe4_Draw = 0x80B835C0; // type:func -ShotSun_Init = 0x80B844C0; // type:func -ShotSun_Destroy = 0x80B8457C; // type:func -ShotSun_SpawnFairy = 0x80B845C0; // type:func -ShotSun_TriggerFairy = 0x80B84668; // type:func -ShotSun_UpdateFairySpawner = 0x80B84704; // type:func -ShotSun_UpdateHyliaSun = 0x80B84854; // type:func -ShotSun_Update = 0x80B84A8C; // type:func diff --git a/tools/disasm/gc-eu-mq/variables.txt b/tools/disasm/gc-eu-mq/variables.txt deleted file mode 100644 index 7bcb19622..000000000 --- a/tools/disasm/gc-eu-mq/variables.txt +++ /dev/null @@ -1,785 +0,0 @@ -D_80009430 = 0x800060D0; // size:0x1 -gViConfigBlack = 0x800060D4; // size:0x1 -gViConfigAdditionalScanLines = 0x800060D8; // size:0x1 -gViConfigFeatures = 0x800060DC; // size:0x4 -gViConfigXScale = 0x800060E0; // size:0x4 -gViConfigYScale = 0x800060E4; // size:0x4 -gCartHandle = 0x800060F0; // size:0x4 type:OSPiHandle* -gDmaMgrDmaBuffSize = 0x80006104; // size:0x4 -sDmaMgrIsRomCompressed = 0x80006108; // size:0x4 -gCurrentRegion = 0x80006110; // size:0x4 type:u32 -sStackInfoListStart = 0x80006130; // size:0x4 -sStackInfoListEnd = 0x80006134; // size:0x4 -__osPiAccessQueueEnabled = 0x80006140; // size:0x4 -osViModePalLan1 = 0x80006150; // size:0x50 -osClockRate = 0x800061A0; // size:0x8 -osViClock = 0x800061A8; // size:0x4 -__osShutdown = 0x800061AC; // size:0x4 type:u32 -__OSGlobalIntMask = 0x800061B0; // size:0x4 type:OSHWIntr -__osHwIntTable = 0x800061C0; // size:0x28 type:__osHwInt -__osPiIntTable = 0x800061E8; // size:0x8 type:__osHwInt -__osThreadTail = 0x800061F0; // size:0x8 -__osRunQueue = 0x800061F8; // size:0x4 type:OSThread* -__osActiveQueue = 0x800061FC; // size:0x4 -__osRunningThread = 0x80006200; // size:0x4 type:OSThread* -__osFaultedThread = 0x80006204; // size:0x4 type:OSThread* -__osPiDevMgr = 0x80006210; // size:0x1C -__osPiTable = 0x8000622C; // size:0x4 type:OSPiHandle* -__osCurrentHandle = 0x80006230; // size:0x8 -__osPreNMI = 0x80006240; // size:0x4 -__osTimerList = 0x80006250; // size:0x4 -osViModeNtscLan1 = 0x80006260; // size:0x50 -osViModeMpalLan1 = 0x800062B0; // size:0x50 -vi = 0x80006300; // size:0x60 -__osViCurr = 0x80006360; // size:0x4 -__osViNext = 0x80006364; // size:0x4 -__osViDevMgr = 0x80006380; // size:0x1C -__additional_scanline = 0x8000639C; // size:0x4 -__osRcpImTable = 0x800064C0; // size:0x80 type:u16 -sBootThreadInfo = 0x80006570; // size:0x1C -sIdleThread = 0x80006590; // size:0x1B0 -sIdleThreadStack = 0x80006740; // size:0x400 -sIdleThreadInfo = 0x80006B40; // size:0x1C -sBootThreadStack = 0x80006B60; // size:0x400 -sMainThread = 0x80006F60; // size:0x1B0 -sMainStack = 0x80007110; // size:0x900 -sMainStackInfo = 0x80007A10; // size:0x1C -sPiMgrCmdBuff = 0x80007A30; // size:0xC8 -gPiMgrCmdQueue = 0x80007AF8; // size:0x18 -gViConfigMode = 0x80007B10; // size:0x50 -gViConfigModeType = 0x80007B60; // size:0x1 type:u8 -sDmaMgrStackInfo = 0x80007B70; // size:0x1C -sDmaMgrMsgQueue = 0x80007B90; // size:0x18 -sDmaMgrMsgBuf = 0x80007BA8; // size:0x80 -sDmaMgrThread = 0x80007C28; // size:0x1B0 -sDmaMgrStack = 0x80007DD8; // size:0x500 -sYaz0DataBuffer = 0x800082E0; // size:0x400 -sYaz0DataBufferEnd = 0x800086E0; // size:0x4 -sYaz0CurRomStart = 0x800086E4; // size:0x4 -sYaz0CurSize = 0x800086E8; // size:0x4 -sYaz0MaxPtr = 0x800086EC; // size:0x4 -sCartInfo = 0x800086F0; // size:0x20 -__DriveRomHandle = 0x80008710; // size:0x74 type:OSPiHandle -piAccessBuf = 0x80008790; // size:0x4 -__osPiAccessQueue = 0x80008798; // size:0x18 -__osFinalrom = 0x800087B0; // size:0x4 -__Dom1SpeedParam = 0x800087C0; // size:0x74 -__Dom2SpeedParam = 0x80008838; // size:0x74 -piThread = 0x800088B0; // size:0x1B0 -piStackThread = 0x80008A60; // size:0x1000 -piEventQueue = 0x80009A60; // size:0x18 -piEventBuf = 0x80009A78; // size:0x8 -__osThreadSave = 0x80009A80; // size:0x1B0 type:OSThread -__osEventStateTab = 0x80009C30; // size:0x78 type:__OSEventState -__osCurrentTime = 0x80009CD0; // size:0x8 -__osBaseCounter = 0x80009CD8; // size:0x4 -__osViIntrCount = 0x80009CDC; // size:0x4 -__osTimerCounter = 0x80009CE0; // size:0x4 -__CartRomHandle = 0x80009CF0; // size:0x74 -viThread = 0x80009D70; // size:0x1B0 -viThreadStack = 0x80009F20; // size:0x1000 -viEventQueue = 0x8000AF20; // size:0x18 -viEventBuf = 0x8000AF38; // size:0x14 -viRetraceMsg = 0x8000AF50; // size:0x18 -viCounterMsg = 0x8000AF68; // size:0x18 -gDmaDataTable = 0x8000AF90; // -sSetupHandlers = 0x800E4860; // size:0x8 -D_8011578C = 0x800E486C; // size:0x40 -D_801157CC = 0x800E48AC; // size:0x40 -sEffectInfoTable = 0x800E4940; // size:0x50 -sEffectSsInfo = 0x800E4990; // size:0xC -gEffectSsOverlayTable = 0x800E4A90; // size:0x40C -sNaviColorList = 0x800E5064; // size:0x68 -D_80115FF8 = 0x800E50D8; // size:0x50 -sEnemyActorCategories = 0x800E517C; // size:0x2 -D_801160A0 = 0x800E5180; // size:0xC -D_80116268 = 0x800E5348; // size:0xC -D_80116274 = 0x800E5354; // size:0xC -D_80116280 = 0x800E5360; // size:0x18 -gActorOverlayTable = 0x800E5380; // size:0x3AE0 -gMaxActorId = 0x800E8E60; // size:0x4 -D_80119D90 = 0x800E8E70; // size:0x80 -sSurfaceMaterialToSfxOffset = 0x800E8EF0; // size:0x1C -sZorasDomainWaterBox = 0x800E8F8C; // size:0x10 -sZorasDomainWaterBoxMinX = 0x800E8F9C; // size:0x4 -sZorasDomainWaterBoxMinY = 0x800E8FA0; // size:0x4 -sZorasDomainWaterBoxMinZ = 0x800E8FA4; // size:0x4 -sZorasDomainWaterBoxMaxX = 0x800E8FA8; // size:0x4 -sZorasDomainWaterBoxMaxY = 0x800E8FAC; // size:0x4 -sZorasDomainWaterBoxMaxZ = 0x800E8FB0; // size:0x4 -sCameraSettings = 0x800EBCC0; // size:0x210 -sCameraFunctions = 0x800EBED0; // size:0x11C -sInitRegs = 0x800EBFEC; // size:0x4 -gDebugCamEnabled = 0x800EBFF0; // size:0x4 -sCameraInterfaceField = 0x800EBFF8; // size:0x4 -sCameraHudVisibilityMode = 0x800EBFFC; // size:0x4 -sCameraLetterboxSize = 0x800EC000; // size:0x4 -D_8011D3AC = 0x800EC004; // size:0x4 -D_8011D3B0 = 0x800EC008; // size:0x1C -D_8011D3CC = 0x800EC024; // size:0x1C -sUpdateCameraDirection = 0x800EC040; // size:0x4 -D_8011D3EC = 0x800EC044; // size:0x4 -D_8011D3F0 = 0x800EC048; // size:0x4 -sDemo5PrevAction12Frame = 0x800EC04C; // size:0x4 -D_8011D658 = 0x800EC050; // size:0x20 -D_8011D678 = 0x800EC070; // size:0x30 -sDemo5PrevSfxFrame = 0x800EC0A0; // size:0x4 -D_8011D6AC = 0x800EC0A4; // size:0x78 -D_8011D954 = 0x800EC34C; // size:0xA0 -D_8011D9F4 = 0x800EC3EC; // size:0x78 -sCamElevatorPlatformLowerEyePoints = 0x800EC464; // size:0x30 -sCamElevatorPlatformUpperEyePoints = 0x800EC494; // size:0x30 -sCamElevatorPlatformTogglePosY = 0x800EC4C4; // size:0x10 -sCamElevatorPlatformFovRollParam = 0x800EC4D4; // size:0x10 -sCamElevatorPlatformRolls = 0x800EC4E4; // size:0x8 -sDebugCamTextEntryCount = 0x800ECAA0; // size:0x2 -sDebugCamTextColors = 0x800ECAA4; // size:0x20 -sCurTextId = 0x800ECB20; // size:0x2 -sCurOcarinaAction = 0x800ECB24; // size:0x2 -sManualCutsceneHandlers = 0x800ECB28; // size:0x14 -sScriptedCutsceneHandlers = 0x800ECB3C; // size:0x14 -sTitleDemoDestination = 0x800ECB50; // size:0x1 -sEntranceCutsceneTable = 0x800ECB54; // size:0x110 -sDrawItemTable = 0x800ECC80; // size:0x1074 -sChildSariaQuestHints = 0x800EDD00; // size:0x34 -sAdultSariaQuestHints = 0x800EDD34; // size:0x18 -sReactionTextIds = 0x800EDD50; // size:0x438 -gGameStateOverlayTable = 0x800EE190; // size:0x120 type:GameStateOverlay -sKaleidoSetupKscpPos0 = 0x800EE400; // size:0x8 -sKaleidoSetupEyeX0 = 0x800EE408; // size:0x10 -sKaleidoSetupEyeZ0 = 0x800EE418; // size:0x10 -sKaleidoSetupKscpPos1 = 0x800EE428; // size:0x8 -sKaleidoSetupEyeX1 = 0x800EE430; // size:0x10 -sKaleidoSetupEyeZ1 = 0x800EE440; // size:0x10 -sZBufValConversionTable = 0x800EE450; // size:0x40 -gWeatherMode = 0x800EE490; // size:0x1 -gLightConfigAfterUnderwater = 0x800EE494; // size:0x1 -gInterruptSongOfStorms = 0x800EE498; // size:0x1 -gSkyboxIsChanging = 0x800EE49C; // size:0x1 -gTimeSpeed = 0x800EE4A0; // size:0x2 -sSunScreenDepth = 0x800EE4A4; // size:0x2 -sTimeBasedLightConfigs = 0x800EE4A8; // size:0xD2 -gTimeBasedSkyboxConfigs = 0x800EE57C; // size:0x120 -gNormalSkyFiles = 0x800EE69C; // size:0x90 -sSandstormColorIndex = 0x800EE72C; // size:0x1 -sNextSandstormColorIndex = 0x800EE730; // size:0x1 -sSandstormLerpScale = 0x800EE734; // size:0x4 -sLensFlareScales = 0x800EE738; // size:0x28 -sSandstormPrimColors = 0x800EE824; // size:0xC -sSandstormEnvColors = 0x800EE830; // size:0xC -sInitChainHandlers = 0x800EE840; // size:0x2C -sPlayerInitialPosX = 0x800F2380; // size:0x2 -sPlayerInitialPosZ = 0x800F2384; // size:0x2 -sPlayerInitialDirection = 0x800F2388; // size:0x2 -sEntranceIconMapIndex = 0x800F238C; // size:0x2 -gMapDataTable = 0x800F4128; // size:0x70 -gSpoilingItems = 0x800F4348; // size:0x6 -gSpoilingItemReverts = 0x800F4350; // size:0x6 -gPlayerSkelHeaders = 0x800F44A0; // size:0x8 -sBootData = 0x800F44A8; // size:0xCC -sActionModelGroups = 0x800F4574; // size:0x43 -sEnvHazardTextTriggers = 0x800F45B8; // size:0x10 -gPlayerModelTypes = 0x800F45C8; // size:0x50 -D_80125D28 = 0x800F4658; // size:0x60 -gPlayerLeftHandBgsDLs = 0x800F4718; // size:0x20 -gPlayerLeftHandOpenDLs = 0x800F4738; // size:0x10 -gPlayerLeftHandClosedDLs = 0x800F4748; // size:0x10 -sPlayerRightHandClosedDLs = 0x800F4788; // size:0x10 -gPlayerLeftHandBoomerangDLs = 0x800F4828; // size:0x10 -sFirstPersonLeftForearmDLs = 0x800F4848; // size:0x8 -sFirstPersonLeftHandDLs = 0x800F4850; // size:0x8 -sFirstPersonRightShoulderDLs = 0x800F4858; // size:0x8 -sFirstPersonForearmDLs = 0x800F4860; // size:0x8 -sFirstPersonRightHandHoldingWeaponDLs = 0x800F4868; // size:0x8 -sPlayerDListGroups = 0x800F4870; // size:0x54 -gCullBackDList = 0x800F48C8; // size:0x10 -gCullFrontDList = 0x800F48D8; // size:0x10 -sEyeMouthIndices = 0x800F48E8; // size:0x20 -sEyeTextures = 0x800F4908; // size:0x40 -sMouthTextures = 0x800F4928; // size:0x20 -sTunicColors = 0x800F4938; // size:0x9 -sGauntletColors = 0x800F4944; // size:0x6 -sBootDListGroups = 0x800F494C; // size:0x10 -sZeroVec = 0x800F495C; // size:0xC -D_80126038 = 0x800F4968; // size:0x18 -D_80126050 = 0x800F4980; // size:0x8 -D_80126058 = 0x800F4988; // size:0x8 -D_80126060 = 0x800F4990; // size:0x8 -D_80126068 = 0x800F4998; // size:0x8 -D_80126070 = 0x800F49A0; // size:0xC -D_80126080 = 0x800F49B0; // size:0xC -D_8012608C = 0x800F49BC; // size:0xC -D_80126098 = 0x800F49C8; // size:0xC -D_801260A4 = 0x800F49D4; // size:0x24 -sPlayerFocusHeadLimbModelPos = 0x800F4A04; // size:0xC -sMeleeWeaponLengths = 0x800F4A10; // size:0x18 -sBottleDLists = 0x800F4A28; // size:0x8 -sBottleColors = 0x800F4A30; // size:0x27 -D_80126128 = 0x800F4A58; // size:0xC -sBowSlingshotStringData = 0x800F4A64; // size:0x20 -sRightHandLimbModelShieldQuadVertices = 0x800F4A84; // size:0x30 -D_80126184 = 0x800F4AB4; // size:0xC -D_80126190 = 0x800F4AC0; // size:0xC -sSheathLimbModelShieldQuadVertices = 0x800F4ACC; // size:0x30 -sSheathLimbModelShieldOnBackPos = 0x800F4AFC; // size:0xC -sSheathLimbModelShieldOnBackZyxRot = 0x800F4B08; // size:0x6 -sLeftRightFootLimbModelFootPos = 0x800F4B10; // size:0x18 -sPauseModelGroupBySword = 0x800F4B28; // size:0x3 -sQuakeUnused = 0x800F4B80; // size:0x2 -sQuakeRequestCount = 0x800F4B84; // size:0x2 -sQuakeCallbacks = 0x800F4B88; // size:0x1C -sSetupDL = 0x800F4BB0; // size:0xD50 -sFillSetupDL = 0x800F5900; // size:0x60 -D_801270A0 = 0x800F59D0; // size:0xC -sRoomDrawHandlers = 0x800F5A40; // size:0xC -gBitFlags = 0x800F5A50; // size:0x80 -gEquipMasks = 0x800F5AD0; // size:0x8 -gEquipNegMasks = 0x800F5AD8; // size:0x8 -gUpgradeMasks = 0x800F5AE0; // size:0x20 -gUpgradeNegMasks = 0x800F5B00; // size:0x20 -gEquipShifts = 0x800F5B20; // size:0x4 -gUpgradeShifts = 0x800F5B24; // size:0x8 -gUpgradeCapacities = 0x800F5B2C; // size:0x40 type:u16 -gGsFlagsMasks = 0x800F5B6C; // size:0x10 -gGsFlagsShifts = 0x800F5B7C; // size:0x10 -gItemIcons = 0x800F5B8C; // size:0x208 -gItemSlots = 0x800F5D94; // size:0x38 -sNaviQuestHintFiles = 0x800F5E38; // size:0x10 -gLinkObjectIds = 0x800F5E50; // size:0x4 -gObjectTableSize = 0x800F5E54; // size:0x4 -gObjectTable = 0x800F5E58; // size:0xC90 -gEntranceTable = 0x800F6AF0; // size:0x1850 -gSceneTable = 0x800F8340; // -sDefaultDisplayList = 0x800F8B28; // size:0x50 -D_8012A2F8 = 0x800F8B78; // size:0x8 -gDCEntranceTextures = 0x800F8B80; // size:0x8 -sDCLavaFloorTextures = 0x800F8B88; // size:0x20 -sThievesHideoutEntranceTextures = 0x800F8BA8; // size:0x8 -D_8012A330 = 0x800F8BB0; // size:0x8 -sIceCavernEntranceTextures = 0x800F8BB8; // size:0x8 -sGTGEntranceTextures = 0x800F8BC0; // size:0x8 -sLonLonHouseEntranceTextures = 0x800F8BC8; // size:0x8 -sGuardHouseView2Textures = 0x800F8BD0; // size:0x8 -sGuardHouseView1Textures = 0x800F8BD8; // size:0x8 -sForestTempleEntranceTextures = 0x800F8BE0; // size:0x8 -sSpiritTempleEntranceTextures = 0x800F8BE8; // size:0x8 -sKakarikoWindowTextures = 0x800F8BF0; // size:0x8 -sZorasDomainEntranceTextures = 0x800F8BF8; // size:0x8 -D_8012A380 = 0x800F8C00; // size:0x8 -sGoronCityEntranceTextures = 0x800F8C08; // size:0x8 -sLonLonRanchWindowTextures = 0x800F8C10; // size:0x8 -D_8012A398 = 0x800F8C18; // size:0x4 -sSceneDrawConfigs = 0x800F8C24; // size:0xD4 -sMtxFClear = 0x800F8D20; // size:0x40 -gSramSlotOffsets = 0x800F8D60; // size:0xC type:u16 -sSsSramContext = 0x800F8F10; // size:0xA4 -sLogOnNextViewInit = 0x800F8FF0; // size:0x4 -sCoverageOnlyDL = 0x800F9000; // size:0x28 -sCoverageRGBFogDL = 0x800F9028; // size:0x18 -sCoverageRGBDL = 0x800F9040; // size:0x18 -sCoverageRGBUniformDL = 0x800F9058; // size:0x30 -sSkybox256TexOffsets = 0x800F9090; // size:0x10 -sSkybox256VtxBufIndices = 0x800F90A0; // size:0x80 -sSkybox256TexSCoords = 0x800F9120; // size:0xA -sSkybox256TexTCoords = 0x800F912C; // size:0x12 -sSkybox256VtxIndices = 0x800F9140; // size:0x80 -sSkybox128TexOffsets = 0x800F91C0; // size:0x18 -sSkybox128VtxBufIndices = 0x800F91D8; // size:0x40 -sSkybox128TexSCoords = 0x800F9218; // size:0xA -sSkybox128TexTCoordsXZ = 0x800F9224; // size:0xA -sSkybox128TexTCoords = 0x800F9230; // size:0xA -sSkybox128VtxIndices = 0x800F923C; // size:0x80 -sSkybox256FaceParams = 0x800F92BC; // size:0x50 -sSkybox128FaceParams = 0x800F930C; // size:0x78 -sTransTileSetupDL = 0x800F9400; // size:0x30 -sTransTriforceDL = 0x800F9430; // size:0x30 -sTransWipeDL = 0x800F9E90; // size:0x190 -sTransCircleNormalTex = 0x800F9FA8; // size:0x400 -sTransCircleWaveTex = 0x800FA3A8; // size:0x400 -sTransCircleRippleTex = 0x800FA7A8; // size:0x400 -sTransCircleStarburstTex = 0x800FABA8; // size:0x400 -sTransCircleDL = 0x800FB1C8; // size:0xD0 -sLetterboxState = 0x800FB2D0; // size:0x4 -sLetterboxSizeTarget = 0x800FB2D4; // size:0x4 -sLetterboxSize = 0x800FB2D8; // size:0x4 -gKaleidoMgrOverlayTable = 0x800FB2E0; // size:0x38 type:KaleidoMgrOverlay -sKaleidoAreaPtr = 0x800FB318; // size:0x4 type:void* -gKaleidoMgrCurOvl = 0x800FB31C; // size:0x4 type:KaleidoMgrOverlay* -gBossMarkState = 0x800FB320; // size:0x1 type:u8 -D_8012D1F8 = 0x800FB330; // size:0x4 -sSfxBankIds = 0x800FB340; // size:0x7 -gScreenWidth = 0x800FB360; // size:0x4 type:s32 -gScreenHeight = 0x800FB364; // size:0x4 type:s32 -gSystemHeapSize = 0x800FB368; // size:0x4 type:u32 -gPadMgrLogSeverity = 0x800FB370; // size:0x4 -sSpeedMeterTimeEntryArray = 0x800FB380; // size:0x30 -sFactorialTbl = 0x800FB3B0; // size:0x34 -gMtxClear = 0x800FBC00; // size:0x40 -gMtxFClear = 0x800FBC40; // size:0x40 -sDefaultGSPUCodeText = 0x800FBC80; // size:0x4 -sDefaultGSPUCodeData = 0x800FBC84; // size:0x4 -gIrqMgrResetStatus = 0x800FBCA0; // size:0x4 -sIrqMgrResetTime = 0x800FBCA8; // size:0x8 -gIrqMgrRetraceTime = 0x800FBCB0; // size:0x8 -sIrqMgrRetraceCount = 0x800FBCB8; // size:0x4 -sExceptionNames = 0x800FBCC0; // size:0x48 -sFpExceptionNames = 0x800FBD08; // size:0x18 -sFaultDrawerDefault = 0x800FBD20; // size:0x3C -gWaveSamples = 0x800FCD60; // size:0x24 -gBendPitchOneOctaveFrequencies = 0x800FCD84; // size:0x400 -gBendPitchTwoSemitonesFrequencies = 0x800FD184; // size:0x400 -gPitchFrequencies = 0x800FD584; // size:0x200 -gDefaultShortNoteVelocityTable = 0x800FD784; // size:0x10 -gDefaultShortNoteGateTimeTable = 0x800FD794; // size:0x10 -gDefaultEnvelope = 0x800FD7A4; // size:0x10 -gZeroNoteSub = 0x800FD7B4; // size:0x20 -gDefaultNoteSub = 0x800FD7D4; // size:0x20 -gHaasEffectDelaySizes = 0x800FD7F4; // size:0x80 -D_8012FBA8 = 0x800FD878; // size:0x80 -gHeadsetPanVolume = 0x800FD8F8; // size:0x200 -gStereoPanVolume = 0x800FDAF8; // size:0x200 -gDefaultPanVolume = 0x800FDCF8; // size:0x200 -gLowPassFilterData = 0x800FDEF8; // size:0x100 -gHighPassFilterData = 0x800FDFF8; // size:0xF0 -sEnvMixerOp = 0x800FE170; // size:0x4 -sEnvMixerLeftHaasDmemDests = 0x800FE174; // size:0x4 -sEnvMixerRightHaasDmemDests = 0x800FE178; // size:0x4 -sEnvMixerDefaultDmemDests = 0x800FE17C; // size:0x4 -sNumSamplesPerWavePeriod = 0x800FE190; // size:0x4 -sDmaHandler = 0x800FE1A0; // size:0x4 -sUnusedHandler = 0x800FE1A4; // size:0x4 -gAudioContextInitialized = 0x800FE1A8; // size:0x4 -sSeqInstructionArgsTable = 0x800FE1F0; // size:0x50 -gIsLargeSfxBank = 0x800FE240; // size:0x7 -gChannelsPerBank = 0x800FE248; // size:0x1C -gUsedChannelsPerBank = 0x800FE264; // size:0x1C -D_801305B0 = 0x800FE280; // size:0x4 -D_801305B4 = 0x800FE284; // size:0x1 -D_801305B8 = 0x800FE288; // size:0x1 -D_801305BC = 0x800FE28C; // size:0x1 -D_801305C0 = 0x800FE290; // size:0x1 -sBehindScreenZ = 0x800FE294; // size:0x8 -sAudioIncreasingTranspose = 0x800FE29C; // size:0x1 -gMorphaTransposeTable = 0x800FE2A0; // size:0x10 -sPrevChargeLevel = 0x800FE2B0; // size:0x1 -D_801305E4 = 0x800FE2B4; // size:0x10 -D_801305F4 = 0x800FE2C4; // size:0x4 -sGanonsTowerLevelsVol = 0x800FE2C8; // size:0x8 -sEnterGanonsTowerTimer = 0x800FE2D0; // size:0x1 -sSoundMode = 0x800FE2D4; // size:0x1 -D_80130608 = 0x800FE2D8; // size:0x1 -sAudioCutsceneFlag = 0x800FE2DC; // size:0x1 -sSpecReverb = 0x800FE2E0; // size:0x1 -sAudioEnvReverb = 0x800FE2E4; // size:0x1 -sAudioCodeReverb = 0x800FE2E8; // size:0x1 -sPrevSeqMode = 0x800FE2EC; // size:0x1 -sAudioEnemyDist = 0x800FE2F0; // size:0x4 -sAudioEnemyVol = 0x800FE2F4; // size:0x1 -sPrevMainBgmSeqId = 0x800FE2F8; // size:0x2 -sSeqResumePoint = 0x800FE2FC; // size:0x1 -sPrevSceneSeqId = 0x800FE300; // size:0x1 -sNumFramesStill = 0x800FE304; // size:0x4 -sNumFramesMoving = 0x800FE308; // size:0x4 -sAudioBaseFilter = 0x800FE30C; // size:0x1 -sAudioExtraFilter = 0x800FE310; // size:0x1 -sAudioBaseFilter2 = 0x800FE314; // size:0x1 -sAudioExtraFilter2 = 0x800FE318; // size:0x1 -sSariaBgmPtr = 0x800FE31C; // size:0x4 -D_80130650 = 0x800FE320; // size:0x4 -sSeqFlags = 0x800FE324; // size:0x6E -sSpecReverbs = 0x800FE394; // size:0x14 -sNatureAmbienceDataIO = 0x800FE3A8; // size:0x820 -sOcarinaAllowedButtonMask = 0x800FEBC8; // size:0x4 -sOcarinaAButtonMap = 0x800FEBCC; // size:0x4 -sOcarinaCUpButtonMap = 0x800FEBD0; // size:0x4 -sOcarinaCDownButtonMap = 0x800FEBD4; // size:0x4 -sIsOcarinaInputEnabled = 0x800FEBD8; // size:0x1 -sOcarinaInstrumentId = 0x800FEBDC; // size:0x1 -sCurOcarinaPitch = 0x800FEBE0; // size:0x1 -sPrevOcarinaPitch = 0x800FEBE4; // size:0x1 -sCurOcarinaButtonIndex = 0x800FEBE8; // size:0x1 -sMusicStaffPrevPitch = 0x800FEBEC; // size:0x1 -sCurOcarinaBendFreq = 0x800FEBF0; // size:0x4 -sRelativeOcarinaVolume = 0x800FEBF4; // size:0x4 -sCurOcarinaBendIndex = 0x800FEBF8; // size:0x1 -sCurOcarinaVolume = 0x800FEBFC; // size:0x1 -sCurOcarinaVibrato = 0x800FEC00; // size:0x1 -sPlaybackState = 0x800FEC04; // size:0x1 -sOcarinaFlags = 0x800FEC08; // size:0x4 -sPlaybackNoteTimer = 0x800FEC0C; // size:0x4 -sPlaybackNotePos = 0x800FEC10; // size:0x2 -sPlaybackStaffPos = 0x800FEC14; // size:0x2 -sPrevOcarinaWithMusicStaffFlags = 0x800FEC18; // size:0x2 -sPlaybackPitch = 0x800FEC1C; // size:0x1 -sNotePlaybackVolume = 0x800FEC20; // size:0x1 -sNotePlaybackVibrato = 0x800FEC24; // size:0x1 -sNotePlaybackBend = 0x800FEC28; // size:0x1 -sRelativeNotePlaybackBend = 0x800FEC2C; // size:0x4 -sRelativeNotePlaybackVolume = 0x800FEC30; // size:0x4 -sOcarinaPlaybackTaskStart = 0x800FEC34; // size:0x4 -sButtonToPitchMap = 0x800FEC38; // size:0x5 -sOcaMemoryGameAppendPos = 0x800FEC40; // size:0x1 -sOcaMemoryGameEndPos = 0x800FEC44; // size:0x1 -sOcaMemoryGameNumNotes = 0x800FEC48; // size:0x3 -sOcarinaSongNotes = 0x800FEC4C; // size:0x8C0 -sPlaybackSong = 0x800FF50C; // size:0x4 -sFrogsSongNotes = 0x800FF510; // size:0xE -gFrogsSongPtr = 0x800FF520; // size:0x4 -sRecordingState = 0x800FF524; // size:0x1 -sRecordSongPos = 0x800FF528; // size:0x1 -sOcarinaRecordTaskStart = 0x800FF52C; // size:0x4 -sRecordOcarinaPitch = 0x800FF530; // size:0x1 -sRecordOcarinaVolume = 0x800FF534; // size:0x1 -sRecordOcarinaVibrato = 0x800FF538; // size:0x1 -sRecordOcarinaBendIndex = 0x800FF53C; // size:0x1 -sRecordOcarinaButtonIndex = 0x800FF540; // size:0x1 -sPlayedOcarinaSongIndexPlusOne = 0x800FF544; // size:0x1 -sMusicStaffNumNotesPerTest = 0x800FF548; // size:0x1 -sOcarinaDropInputTimer = 0x800FF54C; // size:0x1 -sScarecrowsLongSongNotes = 0x800FF550; // size:0x360 -gScarecrowLongSongPtr = 0x800FF8B0; // size:0x4 -gScarecrowSpawnSongPtr = 0x800FF8B4; // size:0x4 -sMemoryGameSongPtr = 0x800FF8B8; // size:0x4 -sPitchToButtonMap = 0x800FF8BC; // size:0x10 -gOcarinaSongButtons = 0x800FF8CC; // size:0x7E -gSfxParams = 0x80100D0C; // size:0x1C -gSfxRequestWriteIndex = 0x80100D30; // size:0x1 -gSfxRequestReadIndex = 0x80100D34; // size:0x1 -gSfxBanks = 0x80100D38; // size:0x1C -gSfxBankSizes = 0x80100D54; // size:0x7 -gSfxChannelLayout = 0x80100D5C; // size:0x1 -D_801333D0 = 0x80100D60; // size:0x2 -gSfxDefaultPos = 0x80100D64; // size:0xC -gSfxDefaultFreqAndVolScale = 0x80100D70; // size:0x4 -gSfxDefaultReverb = 0x80100D78; // size:0x1 -gSeqCmdWritePos = 0x80100D80; // size:0x1 -gSeqCmdReadPos = 0x80100D84; // size:0x1 -gStartSeqDisabled = 0x80100D88; // size:0x1 -gSoundModeList = 0x80100D8C; // size:0x4 -gAudioSpecId = 0x80100D90; // size:0x1 -D_80133418 = 0x80100D94; // size:0x1 -gAudioSpecs = 0x80101148; // size:0x3F0 -sGfxPrintFontTLUT = 0x80101550; // size:0x80 -sGfxPrintRainbowTLUT = 0x801015D0; // size:0x20 -sGfxPrintRainbowData = 0x801015F0; // size:0x8 -sGfxPrintFontData = 0x801015F8; // size:0x800 -sInitFuncs = 0x80101E00; // size:0x4 -qNaN0x10000 = 0x80101E24; // size:0x4 -__osSiAccessQueueEnabled = 0x80102650; // size:0x4 -__osContInitialized = 0x80102660; // size:0x4 -spaces = 0x80102670; // size:0x21 -zeroes = 0x80102694; // size:0x21 -__osPfsInodeCacheChannel = 0x80102730; // size:0x4 -__osPfsInodeCacheBank = 0x80102734; // size:0x1 -__osPfsLastChannel = 0x80102740; // size:0x4 -gTempoData = 0x80107240; // size:0x4 -gAudioHeapInitSizes = 0x80107244; // size:0xC -__libm_qnan_f = 0x80107740; // size:0x4 -sTextFade = 0x801077C0; // size:0x2 -D_8014B2F4 = 0x801077C4; // size:0x1 -sOcarinaButtonIndexBufPos = 0x801077C8; // size:0x2 -sOcarinaButtonIndexBufLen = 0x801077CC; // size:0x2 -sTextboxSkipped = 0x801077D0; // size:0x1 -sNextTextId = 0x801077D4; // size:0x2 -sTextIsCredits = 0x801077D8; // size:0x2 -sLastPlayedSong = 0x801077E0; // size:0x2 -sHasSunsSong = 0x801077E4; // size:0x2 -sMessageHasSetSfx = 0x801077E8; // size:0x2 -sOcarinaSongBitFlags = 0x801077EC; // size:0x2 -sNesMessageEntryTable = 0x801077F0; // size:0x4228 -sGerMessageEntryTable = 0x8010BA18; // size:0x2110 -sFraMessageEntryTable = 0x8010DB28; // size:0x2110 -sStaffMessageEntryTable = 0x8010FC38; // size:0x188 -sNesMessageEntryTablePtr = 0x8010FDC0; // size:0x4 -sGerMessageEntryTablePtr = 0x8010FDC4; // size:0x4 -sFraMessageEntryTablePtr = 0x8010FDC8; // size:0x4 -sStaffMessageEntryTablePtr = 0x8010FDCC; // size:0x4 -sTextboxBackgroundForePrimColors = 0x8010FDD0; // size:0x30 -sTextboxBackgroundBackPrimColors = 0x8010FE00; // size:0x18 -sTextboxBackgroundYOffsets = 0x8010FE18; // size:0x4 -sOcarinaButtonIndexBuf = 0x8010FE1C; // size:0xC -sOcarinaButtonAlphaValues = 0x8010FE28; // size:0x12 -gOcarinaSongItemMap = 0x8010FE3C; // size:0x18 -sFontWidths = 0x8010FED0; // size:0x240 -gGameOverTimer = 0x80110240; // size:0x2 type:s16 -gSoundFontTable = 0x80110470; // -gSequenceFontTable = 0x801106E0; // -gSequenceTable = 0x801108A0; // -gSampleBankTable = 0x80110F90; // -aspMainDataStart = 0x80111010; // -sEffectContext = 0x80113140; // size:0x3DF0 -D_8015BC00 = 0x80116F40; // size:0xE -D_8015BC10 = 0x80116F50; // size:0x4 -D_8015BC14 = 0x80116F58; // size:0x4 -D_8015BC18 = 0x80116F60; // size:0x4 -D_8015BBE8 = 0x80116F64; // size:0x4 -D_8015BBEC = 0x80116F68; // size:0x4 -D_8015BBF0 = 0x80116F6C; // size:0x4 -sbgmEnemyDistSq = 0x80116F70; // size:0x4 -D_8015BBF8 = 0x80116F74; // size:0x4 -D_8015BBFC = 0x80116F78; // size:0x2 -D_8015BD7C = 0x80117198; // size:0x4 -playerFloorPoly = 0x8011719C; // size:0x4 -D_8015FA88 = 0x80118930; // size:0x4 -D_8015FA8C = 0x80118934; // size:0x4 -gSaveContext = 0x80118938; // size:0x1428 type:SaveContext -gRegEditor = 0x80119D60; // size:0x4 type:RegEditor* -sDebugCamTextBuffer = 0x80119D68; // size:0x210 -gCamAtSplinePointsAppliedFrame = 0x80119FAE; // size:0x2 -gCamEyePointAppliedFrame = 0x80119FB0; // size:0x2 -gCamAtPointAppliedFrame = 0x80119FB2; // size:0x2 -sReturnToCamId = 0x80119FB4; // size:0x2 -sQuakeIndex = 0x80119FB6; // size:0x2 -sLightningBolts = 0x80119FC8; // size:0x60 -gLightningStrike = 0x8011A028; // size:0xC -sLightningFlashAlpha = 0x8011A034; // size:0x2 -sSunDepthTestX = 0x8011A036; // size:0x2 -sSunDepthTestY = 0x8011A038; // size:0x2 -gCustomLensFlareOn = 0x8011A03A; // size:0x1 -gCustomLensFlarePos = 0x8011A040; // size:0xC -gLensFlareScale = 0x8011A04C; // size:0x2 -gLensFlareColorIntensity = 0x8011A050; // size:0x4 -gLensFlareGlareStrength = 0x8011A054; // size:0x2 -sNGameOverLightNode = 0x8011A058; // size:0x4 -sNGameOverLightInfo = 0x8011A060; // size:0xE -sSGameOverLightNode = 0x8011A070; // size:0x4 -sSGameOverLightInfo = 0x8011A078; // size:0xE -sGameOverLightsIntensity = 0x8011A086; // size:0x1 -sSandstormScroll = 0x8011A088; // size:0x2 -sBeatingHeartsDDPrim = 0x8011A090; // size:0x6 -sBeatingHeartsDDEnv = 0x8011A098; // size:0x6 -sHeartsDDPrim = 0x8011A0A0; // size:0xC -sHeartsDDEnv = 0x8011A0B0; // size:0xC -sLightsBuffer = 0x8011A0C0; // size:0x188 -sZeldaArena = 0x8011A250; // size:0x24 type:Arena -gMapData = 0x8011A290; // size:0x4 -sCurBodyPartPos = 0x8011A2C0; // size:0x4 -sDListsLodOffset = 0x8011A2C4; // size:0x4 -sGetItemRefPos = 0x8011A2C8; // size:0xC -sLeftHandType = 0x8011A2D4; // size:0x4 -sRightHandType = 0x8011A2D8; // size:0x4 -sQuakeRequests = 0x8011A2E0; // size:0x90 -gSkinLimbMatrices = 0x8011A380; // size:0xF00 -sRumbleMgr = 0x8011B290; // size:0x10E -sSkyboxDrawMatrix = 0x8011B3A0; // size:0x4 -sPlayerCallInitFunc = 0x8011B3B0; // size:0x4 -sPlayerCallDestroyFunc = 0x8011B3B4; // size:0x4 -sPlayerCallUpdateFunc = 0x8011B3B8; // size:0x4 -sPlayerCallDrawFunc = 0x8011B3BC; // size:0x4 -sKaleidoScopeUpdateFunc = 0x8011B3C0; // size:0x4 -sKaleidoScopeDrawFunc = 0x8011B3C4; // size:0x4 -gBossMarkScale = 0x8011B3C8; // size:0x4 -gLoadedPauseMarkDataTable = 0x8011B3D0; // size:0x4 -gTransitionTile = 0x8011B3E0; // size:0xE0 -gTransitionTileState = 0x8011B4C0; // size:0x4 -gPlayVisMono = 0x8011B4C8; // size:0x18 -gVisMonoColor = 0x8011B4E0; // size:0x4 -D_801664D0 = 0x8011B4F0; // size:0x20 -sVisCvg = 0x8011B510; // size:0x10 -sVisZBuf = 0x8011B520; // size:0x10 -sVisMono = 0x8011B530; // size:0x18 -sViMode = 0x8011B548; // size:0x88 -sGraphPrevUpdateEndTime = 0x8011B5D0; // size:0x8 -sGraphPrevTaskTimeStart = 0x8011B5D8; // size:0x8 -gSegments = 0x8011B648; // size:0x40 type:uintptr_t[16] -gScheduler = 0x8011B688; // size:0x258 -gPadMgr = 0x8011B8E0; // size:0x468 -gIrqMgr = 0x8011BD48; // size:0x280 -sGraphThread = 0x8011BFC8; // size:0x1B0 -sGraphStack = 0x8011C178; // size:0x1800 -sSchedStack = 0x8011D978; // size:0x600 -sAudioStack = 0x8011DF78; // size:0x800 -sPadMgrStack = 0x8011E778; // size:0x500 -sIrqMgrStack = 0x8011EC78; // size:0x500 -sGraphStackInfo = 0x8011F178; // size:0x1C -sSchedStackInfo = 0x8011F198; // size:0x1C -sAudioStackInfo = 0x8011F1B8; // size:0x1C -sPadMgrStackInfo = 0x8011F1D8; // size:0x1C -sIrqMgrStackInfo = 0x8011F1F8; // size:0x1C -gAudioMgr = 0x8011F218; // size:0x298 -sSerialEventQueue = 0x8011F4B0; // size:0x18 -sSerialMsgBuf = 0x8011F4C8; // size:0x4 -sRSPGfxTimeStart = 0x8011F4E0; // size:0x8 -sRSPAudioTimeStart = 0x8011F4E8; // size:0x8 -sRSPOtherTimeStart = 0x8011F4F0; // size:0x8 -sRDPTimeStart = 0x8011F4F8; // size:0x8 -gAudioThreadUpdateTimeTotalPerGfxTask = 0x8011F500; // size:0x8 -gGfxTaskSentToNextReadyMinusAudioThreadUpdateTime = 0x8011F508; // size:0x8 -gRSPAudioTimeTotal = 0x8011F510; // size:0x8 -gRSPGfxTimeTotal = 0x8011F518; // size:0x8 -gRDPTimeTotal = 0x8011F520; // size:0x8 -gGraphUpdatePeriod = 0x8011F528; // size:0x8 -gAudioThreadUpdateTimeStart = 0x8011F530; // size:0x8 -gAudioThreadUpdateTimeAcc = 0x8011F538; // size:0x8 -gRSPAudioTimeAcc = 0x8011F540; // size:0x8 -gRSPGfxTimeAcc = 0x8011F548; // size:0x8 -gRSPOtherTimeAcc = 0x8011F550; // size:0x8 -gRDPTimeAcc = 0x8011F560; // size:0x8 -sSpeedMeterTimeEntryPtr = 0x8011F568; // size:0x4 -sSysCfbFbPtr = 0x8011F570; // size:0x8 -sSysCfbEnd = 0x8011F578; // size:0x4 -sMatrixStack = 0x8011F7A0; // size:0x4 type:MtxF* -sCurrentMatrix = 0x8011F7A4; // size:0x4 type:MtxF* -sFaultInstance = 0x8011F7B0; // size:0x4 -sFaultAwaitingInput = 0x8011F7B4; // size:0x1 -sFaultStack = 0x8011F7B8; // size:0x600 -sFaultThreadInfo = 0x8011FDB8; // size:0x1C -gFaultMgr = 0x8011FDD8; // size:0x850 -sFaultDrawer = 0x80120630; // size:0x3C type:FaultDrawer -sScriptLoadQueue = 0x80120690; // size:0x18 -sScriptLoadMsgBuf = 0x801206A8; // size:0x40 -sScriptLoadDonePointers = 0x801206E8; // size:0x40 -D_8016B780 = 0x80120730; // size:0x4 -D_8016B7A8 = 0x80120750; // size:0x4 -D_8016B7AC = 0x80120754; // size:0x4 -D_8016B7B0 = 0x80120758; // size:0x4 -sRiverFreqScaleLerp = 0x80120760; // size:0x10 -sWaterfallFreqScaleLerp = 0x80120770; // size:0x10 -D_8016B7D8 = 0x80120780; // size:0x4 -D_8016B7DC = 0x80120784; // size:0x1 -D_8016B7E0 = 0x80120788; // size:0x4 -sRiverSoundMainBgmVol = 0x8012078C; // size:0x1 -sRiverSoundMainBgmCurrentVol = 0x8012078D; // size:0x1 -sRiverSoundMainBgmLower = 0x8012078E; // size:0x1 -sRiverSoundMainBgmRestore = 0x8012078F; // size:0x1 -sGanonsTowerVol = 0x80120790; // size:0x1 -sSfxChannelState = 0x80120798; // size:0x100 -sMalonSingingTimer = 0x80120898; // size:0x1 -sMalonSingingDisabled = 0x80120899; // size:0x1 -D_8016B9F3 = 0x8012089A; // size:0x1 -sFanfareStartTimer = 0x8012089B; // size:0x1 -sFanfareSeqId = 0x8012089C; // size:0x2 -sPlayingStaff = 0x8012089E; // size:0x3 -sPlaybackStaff = 0x801208A2; // size:0x3 -sRecordingStaff = 0x801208A6; // size:0x3 -sOcarinaUpdateTaskStart = 0x801208AC; // size:0x4 -sOcarinaInputStickAdj = 0x801208B0; // size:0x2 -sOcarinaInputButtonCur = 0x801208B4; // size:0x4 -sOcarinaInputButtonStart = 0x801208B8; // size:0x4 -sOcarinaInputButtonPrev = 0x801208BC; // size:0x4 -sOcarinaInputButtonPress = 0x801208C0; // size:0x4 -sCurOcarinaSongWithoutMusicStaff = 0x801208C8; // size:0x8 -sOcarinaWithoutMusicStaffPos = 0x801208D0; // size:0x1 -sOcarinaHasStartedSong = 0x801208D1; // size:0x1 -sFirstOcarinaSongIndex = 0x801208D2; // size:0x1 -sLastOcarinaSongIndex = 0x801208D3; // size:0x1 -sAvailOcarinaSongFlags = 0x801208D4; // size:0x2 -sStaffOcarinaPlayingPos = 0x801208D6; // size:0x1 -sMusicStaffPos = 0x801208D8; // size:0x1C -sMusicStaffCurHeldLength = 0x801208F8; // size:0x1C -sMusicStaffExpectedLength = 0x80120918; // size:0x1C -sMusicStaffExpectedPitch = 0x80120938; // size:0xE -sScarecrowsLongSongSecondNote = 0x80120948; // size:0x8 -sSfxRequests = 0x80121820; // size:0x1800 -sSfxBankListEnd = 0x80123020; // size:0x7 -sSfxBankFreeListStart = 0x80123028; // size:0x7 -sSfxBankUnused = 0x80123030; // size:0x7 -gActiveSfx = 0x80123038; // size:0xA8 -sCurSfxPlayerChannelIndex = 0x801230E0; // size:0x1 -gSfxBankMuted = 0x801230E4; // size:0x7 -sUnusedBankLerp = 0x801230F0; // size:0x70 -sSeqRequests = 0x80123160; // size:0x28 -sNumSeqRequests = 0x80123188; // size:0x4 -sAudioSeqCmds = 0x80123190; // size:0x400 -gActiveSeqs = 0x80123590; // size:0x990 -gAudioCtx = 0x80123FC0; // size:0x6450 -gAudioCustomUpdateFunction = 0x8012A410; // size:0x4 -gUseAtanContFrac = 0x8012A440; // size:0x4 -gSystemArena = 0x8012A450; // size:0x24 type:Arena -sArenaLockMsg = 0x8012A490; // size:0x4 type:OSMesg -sJpegBitStreamPtr = 0x8012A4A0; // size:0x4 -sJpegBitStreamByteIdx = 0x8012A4A4; // size:0x4 -sJpegBitStreamBitIdx = 0x8012A4A8; // size:0x1 -sJpegBitStreamDontSkip = 0x8012A4A9; // size:0x1 -sJpegBitStreamCurWord = 0x8012A4AC; // size:0x4 -__MotorDataBuf = 0x8012A4F0; // size:0x100 -siAccessBuf = 0x8012A5F0; // size:0x4 -__osSiAccessQueue = 0x8012A5F8; // size:0x18 -__osContPifRam = 0x8012A610; // size:0x40 -__osContLastCmd = 0x8012A650; // size:0x1 -__osMaxControllers = 0x8012A651; // size:0x1 -__osEepromTimerMsgQueue = 0x8012A678; // size:0x18 -__osEepromTimerMsg = 0x8012A690; // size:0x4 -__osPfsInodeCache = 0x8012A6A0; // size:0x100 -__osPfsPifRam = 0x8012A7A0; // size:0x40 -sCharTexSize = 0x8012A7E0; // size:0x4 -sCharTexScale = 0x8012A7E4; // size:0x4 -sOcarinaButtonAPrimR = 0x8012A7E8; // size:0x2 -sOcarinaButtonAPrimB = 0x8012A7EA; // size:0x2 -sOcarinaButtonAPrimG = 0x8012A7EC; // size:0x2 -sOcarinaButtonAEnvR = 0x8012A7EE; // size:0x2 -sOcarinaButtonAEnvB = 0x8012A7F0; // size:0x2 -sOcarinaButtonAEnvG = 0x8012A7F2; // size:0x2 -sOcarinaButtonCPrimR = 0x8012A7F4; // size:0x2 -sOcarinaButtonCPrimB = 0x8012A7F6; // size:0x2 -sOcarinaButtonCPrimG = 0x8012A7F8; // size:0x2 -sOcarinaButtonCEnvR = 0x8012A7FA; // size:0x2 -sOcarinaButtonCEnvB = 0x8012A7FC; // size:0x2 -sOcarinaButtonCEnvG = 0x8012A7FE; // size:0x2 -gZBuffer = 0x8012A800; // size:0x25800 type:u16 -gGfxSPTaskOutputBuffer = 0x80150000; // size:0x18000 -gGfxSPTaskYieldBuffer = 0x80168000; // size:0xC00 -gGfxSPTaskStack = 0x80168C00; // size:0x400 -gGfxPools = 0x80169000; // size:0x24820 -gAudioHeap = 0x8018D820; // size:0x38000 -_buffersSegmentEnd = 0x801C5820; // -D_80811BB0 = 0x80810D70; // size:0x180 -D_80811D30 = 0x80810EF0; // size:0x100 -D_80811E30 = 0x80810FF0; // size:0x100 -D_80811F30 = 0x808110F0; // size:0x200 -D_80812130 = 0x808112F0; // size:0x200 -gOptionsDividerTopVtx = 0x808114F0; // size:0x40 -gOptionsDividerMiddleVtx = 0x80811530; // size:0x40 -gOptionsDividerBottomVtx = 0x80811570; // size:0x40 -D_808123F0 = 0x808115B0; // size:0x82 -gAmmoItems = 0x80828020; // size:0x10 -D_8082AAEC = 0x808286EC; // size:0x40 -D_8082AB2C = 0x8082872C; // size:0x40 -gSlotAgeReqs = 0x808287FC; // size:0x18 -gEquipAgeReqs = 0x80828814; // size:0x10 -gItemAgeReqs = 0x80828824; // size:0x56 -gAreaGsFlags = 0x8082887C; // size:0x16 -gPauseMapMarkDataTable = 0x80828EC0; // size:0x4158 -sReturnEntranceGroupData = 0x80850FD8; // size:0x1C -sReturnEntranceGroupIndices = 0x80850FF4; // size:0x6 -gMapMarkDataTable = 0x8085BEE8; // size:0x28 -D_808BB2F0 = 0x808B18A0; // size:0x4A8 -D_808BB7A0 = 0x808B1D50; // size:0x5E8 -D_808BBD90 = 0x808B2340; // size:0x628 -D_808BCE20 = 0x808B3350; // size:0x480 -D_808BD2A0 = 0x808B37D0; // size:0x280 -D_808BD520 = 0x808B3A50; // size:0x270 -D_808BD790 = 0x808B3CC0; // size:0x200 -gGanondorfShadowSetupDL = 0x808DA308; // size:0x20 -gGanondorfShadowModelDL = 0x808DA328; // size:0x30 -gGanondorfTriforceDL = 0x808DB398; // size:0x80 -gGanondorfWindowShardMaterialDL = 0x808DB888; // size:0xA8 -gGanondorfWindowShardModelDL = 0x808DB930; // size:0x18 -gGanondorfWindowShatterTemplateTex = 0x808DB948; // size:0x800 -gGanondorfLightBallMaterialDL = 0x808DD188; // size:0x70 -gGanondorfSquareDL = 0x808DD1F8; // size:0x18 -gGanondorfLightningDL = 0x808E6250; // size:0x80 -gGanondorfLightRayTriDL = 0x808E6378; // size:0x48 -gGanondorfLightFlecksDL = 0x808E7DD0; // size:0xF0 -gGanondorfBigMagicBGCircleDL = 0x808E7EC0; // size:0xA8 -gGanondorfDotDL = 0x808E7F68; // size:0xC8 -gGanondorfShockwaveDL = 0x808E89D0; // size:0xF8 -gGanondorfImpactDarkDL = 0x808E9868; // size:0x118 -gGanondorfImpactLightDL = 0x808E9980; // size:0x118 -gGanondorfShockGlowDL = 0x808EAAD8; // size:0xC8 -gGanondorfLightCoreDL = 0x808EBE38; // size:0x88 -gGanondorfShockDL = 0x808EBF00; // size:0x80 -gGanondorfVortexDL = 0x808ECCE0; // size:0x108 -sEffects = 0x808EE1B8; // size:0x3B60 -sTwinrovaEyeTextures = 0x8093DDA0; // size:0xC -gAdultWarpInCS = 0x8097BAF0; // size:0x108 -gAdultWarpOutCS = 0x8097BC00; // size:0x180 -gAdultWarpInToTCS = 0x8097BD80; // size:0x108 -gAdultWarpOutToTCS = 0x8097BE90; // size:0x120 -gChildWarpInCS = 0x8097BFB0; // size:0x128 -gChildWarpOutCS = 0x8097C0E0; // size:0x180 -gChildWarpInToTCS = 0x8097C260; // size:0x128 -gChildWarpOutToTCS = 0x8097C390; // size:0x120 -D_80ABF9D0 = 0x80AA19A0; // size:0x170 -D_80ABFB40 = 0x80AA1B10; // size:0x798 -D_80B4C5D0 = 0x80B27720; // size:0xFF0 From 30eb05321d12aab4ed18808edecc49676271629e Mon Sep 17 00:00:00 2001 From: fig02 Date: Wed, 17 Apr 2024 16:24:52 -0400 Subject: [PATCH 05/29] Player Docs: "sUpperBodyIsBusy" (#1944) * document upperbodybusy * change wording for comment and rename upperanimblendweight * format * review --- include/z64player.h | 2 +- .../actors/ovl_player_actor/z_player.c | 119 +++++++++++------- 2 files changed, 75 insertions(+), 46 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index 78de9e8ca..ba593e976 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -824,7 +824,7 @@ typedef struct Player { /* 0x070C */ Vec3s upperJointTable[PLAYER_LIMB_BUF_COUNT]; /* 0x079C */ Vec3s upperMorphTable[PLAYER_LIMB_BUF_COUNT]; /* 0x082C */ UpperActionFunc upperActionFunc; - /* 0x0830 */ f32 upperAnimBlendWeight; + /* 0x0830 */ f32 upperAnimInterpWeight; /* 0x0834 */ s16 unk_834; /* 0x0836 */ s8 unk_836; /* 0x0837 */ u8 unk_837; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 3f10abec8..b5b172bf1 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -509,7 +509,7 @@ static u32 sNoclipEnabled = false; static f32 sControlStickMagnitude = 0.0f; static s16 sControlStickAngle = 0; static s16 D_808535DC = 0; -static s32 D_808535E0 = 0; +static s32 sUpperBodyIsBusy = false; // see `Player_UpdateUpperBody` static s32 sFloorType = FLOOR_TYPE_0; static f32 D_808535E8 = 1.0f; static f32 D_808535EC = 1.0f; @@ -2157,7 +2157,7 @@ LinkAnimationHeader* func_808335F4(Player* this) { void Player_SetUpperActionFunc(Player* this, UpperActionFunc upperActionFunc) { this->upperActionFunc = upperActionFunc; this->unk_836 = 0; - this->upperAnimBlendWeight = 0.0f; + this->upperAnimInterpWeight = 0.0f; func_808326F0(this); } @@ -2630,9 +2630,9 @@ s32 func_80834758(PlayState* play, Player* this) { s32 func_8083485C(Player* this, PlayState* play) { if (func_80834758(play, this)) { - return 1; + return true; } else { - return 0; + return false; } } @@ -2677,9 +2677,9 @@ s32 func_8083499C(Player* this, PlayState* play) { */ s32 Player_UpperAction_Sword(Player* this, PlayState* play) { if (func_80834758(play, this) || func_8083499C(this, play)) { - return 1; + return true; } else { - return 0; + return false; } } @@ -2692,6 +2692,7 @@ s32 Player_UpperAction_ChangeHeldItem(Player* this, PlayState* play) { this->unk_834 = 0; this->unk_6AC = 0; sHeldItemButtonIsHeldDown = sUseHeldItem; + return this->upperActionFunc(this, play); } @@ -2703,7 +2704,7 @@ s32 Player_UpperAction_ChangeHeldItem(Player* this, PlayState* play) { Player_WaitToFinishItemChange(play, this); } - return 1; + return true; } s32 func_80834B5C(Player* this, PlayState* play) { @@ -2711,11 +2712,11 @@ s32 func_80834B5C(Player* this, PlayState* play) { if (!CHECK_BTN_ALL(sControlInput->cur.button, BTN_R)) { func_80834894(this); - return 1; + return true; } else { this->stateFlags1 |= PLAYER_STATE1_22; Player_SetModelsForHoldingShield(this); - return 1; + return true; } } @@ -2732,7 +2733,7 @@ s32 func_80834BD4(Player* this, PlayState* play) { this->stateFlags1 |= PLAYER_STATE1_22; Player_SetModelsForHoldingShield(this); - return 1; + return true; } s32 func_80834C74(Player* this, PlayState* play) { @@ -2744,10 +2745,11 @@ s32 func_80834C74(Player* this, PlayState* play) { GET_PLAYER_ANIM(PLAYER_ANIMGROUP_wait, this->modelAnimType)); this->unk_6AC = 0; this->upperActionFunc(this, play); - return 0; + + return false; } - return 1; + return true; } s32 func_80834D2C(Player* this, PlayState* play) { @@ -2834,10 +2836,10 @@ s32 func_8083501C(Player* this, PlayState* play) { if ((!Player_HoldsHookshot(this) || func_80834FBC(this)) && !func_80834758(play, this) && !func_80834F2C(this, play)) { - return 0; + return false; } - return 1; + return true; } s32 func_808350A4(PlayState* play, Player* this) { @@ -2924,14 +2926,14 @@ s32 func_808351D4(Player* this, PlayState* play) { this->stateFlags1 |= PLAYER_STATE1_9; } - return 1; + return true; } s32 func_808353D8(Player* this, PlayState* play) { LinkAnimation_Update(play, &this->upperSkelAnime); if (Player_HoldsHookshot(this) && !func_80834FBC(this)) { - return 1; + return true; } if (!func_80834758(play, this) && @@ -2954,7 +2956,8 @@ s32 func_808353D8(Player* this, PlayState* play) { if (this->unk_834 == 0) { this->unk_834++; } - return 1; + + return true; } if (Player_HoldsHookshot(this)) { @@ -2967,7 +2970,7 @@ s32 func_808353D8(Player* this, PlayState* play) { this->unk_834 = 0; } - return 1; + return true; } s32 func_80835588(Player* this, PlayState* play) { @@ -2975,7 +2978,7 @@ s32 func_80835588(Player* this, PlayState* play) { Player_SetUpperActionFunc(this, func_8083501C); } - return 1; + return true; } void func_808355DC(Player* this) { @@ -3014,7 +3017,7 @@ s32 Player_UpperAction_CarryActor(Player* this, PlayState* play) { } if (func_80834758(play, this)) { - return 1; + return true; } if (this->stateFlags1 & PLAYER_STATE1_11) { @@ -3028,7 +3031,7 @@ s32 Player_UpperAction_CarryActor(Player* this, PlayState* play) { this->fallStartHeight = this->actor.world.pos.y; } - return 1; + return true; } return func_8083485C(this, play); @@ -3040,16 +3043,16 @@ void func_808357E8(Player* this, Gfx** dLists) { s32 func_80835800(Player* this, PlayState* play) { if (func_80834758(play, this)) { - return 1; + return true; } if (this->stateFlags1 & PLAYER_STATE1_25) { Player_SetUpperActionFunc(this, func_80835B60); } else if (func_80834F2C(this, play)) { - return 1; + return true; } - return 0; + return false; } s32 func_80835884(Player* this, PlayState* play) { @@ -3060,7 +3063,7 @@ s32 func_80835884(Player* this, PlayState* play) { func_80834EB8(this, play); - return 1; + return true; } s32 func_808358F0(Player* this, PlayState* play) { @@ -3082,7 +3085,7 @@ s32 func_808358F0(Player* this, PlayState* play) { (this->unk_870 < 0.5f) ? &gPlayerAnim_link_boom_throwR : &gPlayerAnim_link_boom_throwL); } - return 1; + return true; } s32 func_808359FC(Player* this, PlayState* play) { @@ -3111,12 +3114,12 @@ s32 func_808359FC(Player* this, PlayState* play) { } } - return 1; + return true; } s32 func_80835B60(Player* this, PlayState* play) { if (func_80834758(play, this)) { - return 1; + return true; } if (!(this->stateFlags1 & PLAYER_STATE1_25)) { @@ -3125,10 +3128,11 @@ s32 func_80835B60(Player* this, PlayState* play) { func_808357E8(this, gPlayerLeftHandBoomerangDLs); Player_PlaySfx(this, NA_SE_PL_CATCH_BOOMERANG); func_80832698(this, NA_SE_VO_LI_SWORD_N); - return 1; + + return true; } - return 0; + return false; } s32 func_80835C08(Player* this, PlayState* play) { @@ -3136,7 +3140,7 @@ s32 func_80835C08(Player* this, PlayState* play) { Player_SetUpperActionFunc(this, func_80835800); } - return 1; + return true; } s32 Player_SetupAction(PlayState* play, Player* this, PlayerActionFunc actionFunc, s32 flags) { @@ -3371,6 +3375,24 @@ int Player_CanUpdateItems(Player* this) { (Player_ItemToItemAction(this->heldItemId) == this->heldItemAction)); } +/** + * Updates the Upper Body system. + * The Upper Body system is composed of an upper action function and + * a separate skelanime that can play an animation which is different + * from the main skelanime. + * + * @return true if the upper body is "busy", false otherwise. + * + * The upper body being "busy" can mean a few things: + * - Hookshot has just connected with something that Player can fly to + * - A deku nut is currently being thrown + * - The current upper action function has indicated that it is busy + * + * If an upper action indicates being busy by returning true, the + * animation playing in the upper body skeleton will be used. + * This animation may be used for all limbs or only the upper body limbs + * depending on some conditions. See details below. + */ s32 Player_UpdateUpperBody(Player* this, PlayState* play) { if (!(this->stateFlags1 & PLAYER_STATE1_23) && (this->actor.parent != NULL) && Player_HoldsHookshot(this)) { Player_SetupAction(play, this, Player_Action_80850AEC, 1); @@ -3385,37 +3407,43 @@ s32 Player_UpdateUpperBody(Player* this, PlayState* play) { this->hoverBootsTimer = 0; this->unk_6AE |= 0x43; func_80832698(this, NA_SE_VO_LI_LASH); - return 1; + return true; } if (Player_CanUpdateItems(this)) { Player_UpdateItems(this, play); if (Player_Action_8084E604 == this->actionFunc) { - return 1; + return true; } } if (!this->upperActionFunc(this, play)) { - return 0; + return false; } - if (this->upperAnimBlendWeight != 0.0f) { + if (this->upperAnimInterpWeight != 0.0f) { + // The functionality contained within this block of code is never used in practice + // because `upperAnimInterpWeight` is always 0. if ((func_80833350(this) == 0) || (this->speedXZ != 0.0f)) { AnimationContext_SetCopyFalse(play, this->skelAnime.limbCount, this->upperSkelAnime.jointTable, this->skelAnime.jointTable, sUpperBodyLimbCopyMap); } - Math_StepToF(&this->upperAnimBlendWeight, 0.0f, 0.25f); + Math_StepToF(&this->upperAnimInterpWeight, 0.0f, 0.25f); AnimationContext_SetInterp(play, this->skelAnime.limbCount, this->skelAnime.jointTable, - this->upperSkelAnime.jointTable, 1.0f - this->upperAnimBlendWeight); + this->upperSkelAnime.jointTable, 1.0f - this->upperAnimInterpWeight); } else if ((func_80833350(this) == 0) || (this->speedXZ != 0.0f)) { + // Only copy the upper body animation to the upper body limbs in the main skeleton. + // Doing so allows the main skeleton to play its own animation for the lower body limbs. AnimationContext_SetCopyTrue(play, this->skelAnime.limbCount, this->skelAnime.jointTable, this->upperSkelAnime.jointTable, sUpperBodyLimbCopyMap); } else { + // Copy all of the upper body animation into the whole main skeleton. + // The upper body has full control of all limbs. AnimationContext_SetCopyAll(play, this->skelAnime.limbCount, this->skelAnime.jointTable, this->upperSkelAnime.jointTable); } - return 1; + return true; } /** @@ -3857,7 +3885,7 @@ s32 Player_TryActionChangeList(PlayState* play, Player* this, s8* actionChangeLi if (!(this->stateFlags1 & (PLAYER_STATE1_0 | PLAYER_STATE1_7 | PLAYER_STATE1_29))) { if (updateUpperBody) { - D_808535E0 = Player_UpdateUpperBody(this, play); + sUpperBodyIsBusy = Player_UpdateUpperBody(this, play); if (Player_Action_8084E604 == this->actionFunc) { return true; @@ -5932,7 +5960,7 @@ void func_8083C148(Player* this, PlayState* play) { } s32 Player_ActionChange_6(Player* this, PlayState* play) { - if (!func_80833B54(this) && (D_808535E0 == 0) && !(this->stateFlags1 & PLAYER_STATE1_23) && + if (!func_80833B54(this) && !sUpperBodyIsBusy && !(this->stateFlags1 & PLAYER_STATE1_23) && CHECK_BTN_ALL(sControlInput->press.button, BTN_A)) { if (func_8083BC7C(this, play)) { return 1; @@ -8610,7 +8638,7 @@ void Player_Action_808435C4(Player* this, PlayState* play) { func_8083721C(this); if (this->av1.actionVar1 == 0) { - D_808535E0 = Player_UpdateUpperBody(this, play); + sUpperBodyIsBusy = Player_UpdateUpperBody(this, play); if ((func_80834B5C == this->upperActionFunc) || (func_808374A0(play, this, &this->upperSkelAnime, 4.0f) > 0)) { Player_SetupAction(play, this, Player_Action_80840450, 1); } @@ -12525,7 +12553,7 @@ void Player_Action_8084CC98(Player* this, PlayState* play) { } if (this->av2.actionVar2 == 1) { - if ((D_808535E0 != 0) || func_8083224C(play)) { + if (sUpperBodyIsBusy || func_8083224C(play)) { Player_AnimPlayOnce(play, this, &gPlayerAnim_link_uma_wait_3); } else if (LinkAnimation_Update(play, &this->skelAnime)) { this->av2.actionVar2 = 99; @@ -12547,8 +12575,9 @@ void Player_Action_8084CC98(Player* this, PlayState* play) { this->unk_6AD = 0; this->av1.actionVar1 = 0; } else if ((this->av2.actionVar2 < 2) || (this->av2.actionVar2 >= 4)) { - D_808535E0 = Player_UpdateUpperBody(this, play); - if (D_808535E0 != 0) { + sUpperBodyIsBusy = Player_UpdateUpperBody(this, play); + + if (sUpperBodyIsBusy) { this->av1.actionVar1 = 0; } } @@ -12562,7 +12591,7 @@ void Player_Action_8084CC98(Player* this, PlayState* play) { if ((this->csAction != PLAYER_CSACTION_NONE) || (!func_8083224C(play) && ((rideActor->actor.speed != 0.0f) || !Player_ActionChange_4(this, play)) && !Player_ActionChange_6(this, play))) { - if (D_808535E0 == 0) { + if (!sUpperBodyIsBusy) { if (this->av1.actionVar1 != 0) { if (LinkAnimation_Update(play, &this->upperSkelAnime)) { rideActor->stateFlags &= ~ENHORSE_FLAG_8; From 9cbd57d329a04b56c7b0dc91e299c7d9946cc2ec Mon Sep 17 00:00:00 2001 From: cadmic Date: Thu, 18 Apr 2024 19:21:34 -0700 Subject: [PATCH 06/29] Fix miscategorized scenes (#1946) * Fix miscategorized scenes * Sort includes --- .../xml/scenes/{overworld => indoors}/souko.xml | 0 assets/xml/scenes/{overworld => misc}/entra.xml | 0 .../scenes/{dungeons => overworld}/ganon_tou.xml | 0 spec | 16 ++++++++-------- src/code/z_demo.c | 3 ++- src/code/z_scene_table.c | 13 +++++++------ .../actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c | 2 +- 7 files changed, 18 insertions(+), 16 deletions(-) rename assets/xml/scenes/{overworld => indoors}/souko.xml (100%) rename assets/xml/scenes/{overworld => misc}/entra.xml (100%) rename assets/xml/scenes/{dungeons => overworld}/ganon_tou.xml (100%) diff --git a/assets/xml/scenes/overworld/souko.xml b/assets/xml/scenes/indoors/souko.xml similarity index 100% rename from assets/xml/scenes/overworld/souko.xml rename to assets/xml/scenes/indoors/souko.xml diff --git a/assets/xml/scenes/overworld/entra.xml b/assets/xml/scenes/misc/entra.xml similarity index 100% rename from assets/xml/scenes/overworld/entra.xml rename to assets/xml/scenes/misc/entra.xml diff --git a/assets/xml/scenes/dungeons/ganon_tou.xml b/assets/xml/scenes/overworld/ganon_tou.xml similarity index 100% rename from assets/xml/scenes/dungeons/ganon_tou.xml rename to assets/xml/scenes/overworld/ganon_tou.xml diff --git a/spec b/spec index a20bc38c6..349060f28 100644 --- a/spec +++ b/spec @@ -10499,7 +10499,7 @@ beginseg name "entra_scene" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/entra/entra_scene.o" + include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_scene.o" number 2 endseg @@ -10507,7 +10507,7 @@ beginseg name "entra_room_0" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/entra/entra_room_0.o" + include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_room_0.o" number 3 endseg @@ -10587,7 +10587,7 @@ beginseg name "ganon_tou_scene" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_tou/ganon_tou_scene.o" + include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_scene.o" number 2 endseg @@ -10595,7 +10595,7 @@ beginseg name "ganon_tou_room_0" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_tou/ganon_tou_room_0.o" + include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_room_0.o" number 3 endseg @@ -11651,7 +11651,7 @@ beginseg name "souko_scene" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/souko/souko_scene.o" + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_scene.o" number 2 endseg @@ -11659,7 +11659,7 @@ beginseg name "souko_room_0" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/souko/souko_room_0.o" + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_0.o" number 3 endseg @@ -11667,7 +11667,7 @@ beginseg name "souko_room_1" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/souko/souko_room_1.o" + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_1.o" number 3 endseg @@ -11675,7 +11675,7 @@ beginseg name "souko_room_2" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/souko/souko_room_2.o" + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_2.o" number 3 endseg diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 9e99975a6..f7e86f122 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -3,6 +3,8 @@ #include "z64camera.h" #include "assets/scenes/indoors/tokinoma/tokinoma_scene.h" + +#include "assets/scenes/overworld/ganon_tou/ganon_tou_scene.h" #include "assets/scenes/overworld/spot00/spot00_scene.h" #include "assets/scenes/overworld/spot01/spot01_scene.h" #include "assets/scenes/overworld/spot02/spot02_scene.h" @@ -24,7 +26,6 @@ #include "assets/scenes/dungeons/ddan/ddan_scene.h" #include "assets/scenes/dungeons/ydan/ydan_scene.h" #include "assets/scenes/dungeons/ganontika/ganontika_scene.h" -#include "assets/scenes/dungeons/ganon_tou/ganon_tou_scene.h" #include "assets/scenes/dungeons/jyasinboss/jyasinboss_scene.h" #include "assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.h" diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c index b52c2e5ca..4f4ac1143 100644 --- a/src/code/z_scene_table.c +++ b/src/code/z_scene_table.c @@ -1,6 +1,9 @@ #include "global.h" #include "quake.h" +#include "assets/scenes/indoors/miharigoya/miharigoya_scene.h" +#include "assets/scenes/indoors/souko/souko_scene.h" + #include "assets/scenes/overworld/spot00/spot00_scene.h" #include "assets/scenes/overworld/spot00/spot00_room_0.h" #include "assets/scenes/overworld/spot01/spot01_scene.h" @@ -10,17 +13,15 @@ #include "assets/scenes/overworld/spot16/spot16_room_0.h" #include "assets/scenes/overworld/spot18/spot18_scene.h" #include "assets/scenes/overworld/spot20/spot20_scene.h" -#include "assets/scenes/overworld/souko/souko_scene.h" -#include "assets/scenes/dungeons/men/men_scene.h" -#include "assets/scenes/dungeons/ddan/ddan_scene.h" -#include "assets/scenes/dungeons/ydan/ydan_scene.h" #include "assets/scenes/dungeons/Bmori1/Bmori1_scene.h" #include "assets/scenes/dungeons/MIZUsin/MIZUsin_scene.h" +#include "assets/scenes/dungeons/ddan/ddan_scene.h" #include "assets/scenes/dungeons/gerudoway/gerudoway_scene.h" -#include "assets/scenes/dungeons/jyasinzou/jyasinzou_scene.h" -#include "assets/scenes/indoors/miharigoya/miharigoya_scene.h" #include "assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.h" +#include "assets/scenes/dungeons/jyasinzou/jyasinzou_scene.h" +#include "assets/scenes/dungeons/men/men_scene.h" +#include "assets/scenes/dungeons/ydan/ydan_scene.h" #include "overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.h" diff --git a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c index ae8de3e55..e8bcca20b 100644 --- a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c +++ b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c @@ -6,7 +6,7 @@ #include "z_bg_gjyo_bridge.h" #include "assets/objects/object_gjyo_objects/object_gjyo_objects.h" -#include "assets/scenes/dungeons/ganon_tou/ganon_tou_scene.h" +#include "assets/scenes/overworld/ganon_tou/ganon_tou_scene.h" #define FLAGS 0 From 7ea68e9506f266273ba18221208d0c914b5eed85 Mon Sep 17 00:00:00 2001 From: fig02 Date: Fri, 19 Apr 2024 11:01:04 -0400 Subject: [PATCH 07/29] Player Docs: Action Interrupt (#1947) * document action interrupt * format * new function comment * format * add a note about items * format --- .../actors/ovl_player_actor/z_player.c | 85 +++++++++++++------ 1 file changed, 59 insertions(+), 26 deletions(-) diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index b5b172bf1..784881357 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3917,21 +3917,44 @@ s32 Player_TryActionChangeList(PlayState* play, Player* this, s8* actionChangeLi return false; } -s32 func_808374A0(PlayState* play, Player* this, SkelAnime* skelAnime, f32 arg3) { +typedef enum { + /* -1 */ PLAYER_INTERRUPT_NONE = -1, + /* 0 */ PLAYER_INTERRUPT_NEW_ACTION, + /* 1 */ PLAYER_INTERRUPT_MOVE +} PlayerActionInterruptResult; + +/** + * An Action Interrupt allows for ending an action early, toward the end of an animation. + * + * First, `sActionChangeList7` will be checked to see if any of those actions should be used. + * It should be noted that the `updateUpperBody` argument passed to `Player_TryActionChangeList` + * is `true`. This means that an item can be used during the interrupt window. + * + * If no actions from the Action Change List are used, then the control stick is checked to see if + * any movement should occur. + * + * Note that while this function can set up a new action with `sActionChangeList7`, this function + * will not set up an appropriate action for moving. + * It is the callers responsibility to react accordingly to `PLAYER_INTERRUPT_MOVE`. + * + * @param frameRange The number of frames, from the end of the current animation, where an interrupt can occur. + * @return The interrupt result. See `PlayerActionInterruptResult`. + */ +s32 Player_TryActionInterrupt(PlayState* play, Player* this, SkelAnime* skelAnime, f32 frameRange) { f32 speedTarget; s16 yawTarget; - if ((skelAnime->endFrame - arg3) <= skelAnime->curFrame) { + if ((skelAnime->endFrame - frameRange) <= skelAnime->curFrame) { if (Player_TryActionChangeList(play, this, sActionChangeList7, true)) { - return 0; + return PLAYER_INTERRUPT_NEW_ACTION; } if (Player_GetMovementSpeedAndYaw(this, &speedTarget, &yawTarget, SPEED_MODE_CURVED, play)) { - return 1; + return PLAYER_INTERRUPT_MOVE; } } - return -1; + return PLAYER_INTERRUPT_NONE; } void func_80837530(PlayState* play, Player* this, s32 arg2) { @@ -8631,7 +8654,7 @@ void Player_Action_80843188(Player* this, PlayState* play) { } void Player_Action_808435C4(Player* this, PlayState* play) { - s32 temp; + s32 interruptResult; LinkAnimationHeader* anim; f32 frames; @@ -8639,12 +8662,16 @@ void Player_Action_808435C4(Player* this, PlayState* play) { if (this->av1.actionVar1 == 0) { sUpperBodyIsBusy = Player_UpdateUpperBody(this, play); - if ((func_80834B5C == this->upperActionFunc) || (func_808374A0(play, this, &this->upperSkelAnime, 4.0f) > 0)) { + + if ((func_80834B5C == this->upperActionFunc) || + (Player_TryActionInterrupt(play, this, &this->upperSkelAnime, 4.0f) >= PLAYER_INTERRUPT_MOVE)) { Player_SetupAction(play, this, Player_Action_80840450, 1); } } else { - temp = func_808374A0(play, this, &this->skelAnime, 4.0f); - if ((temp != 0) && ((temp > 0) || LinkAnimation_Update(play, &this->skelAnime))) { + interruptResult = Player_TryActionInterrupt(play, this, &this->skelAnime, 4.0f); + + if ((interruptResult != PLAYER_INTERRUPT_NEW_ACTION) && + ((interruptResult >= PLAYER_INTERRUPT_MOVE) || LinkAnimation_Update(play, &this->skelAnime))) { Player_SetupAction(play, this, Player_Action_80843188, 1); this->stateFlags1 |= PLAYER_STATE1_22; Player_SetModelsForHoldingShield(this); @@ -8656,12 +8683,14 @@ void Player_Action_808435C4(Player* this, PlayState* play) { } void Player_Action_8084370C(Player* this, PlayState* play) { - s32 sp1C; + s32 interruptResult; func_8083721C(this); - sp1C = func_808374A0(play, this, &this->skelAnime, 16.0f); - if ((sp1C != 0) && (LinkAnimation_Update(play, &this->skelAnime) || (sp1C > 0))) { + interruptResult = Player_TryActionInterrupt(play, this, &this->skelAnime, 16.0f); + + if ((interruptResult != PLAYER_INTERRUPT_NEW_ACTION) && + (LinkAnimation_Update(play, &this->skelAnime) || (interruptResult >= PLAYER_INTERRUPT_MOVE))) { func_80839F90(this, play); } } @@ -8741,7 +8770,7 @@ static AnimSfxEntry D_808545DC[] = { }; void Player_Action_80843A38(Player* this, PlayState* play) { - s32 sp24; + s32 interruptResult; this->stateFlags2 |= PLAYER_STATE2_5; func_808382BC(this); @@ -8749,8 +8778,10 @@ void Player_Action_80843A38(Player* this, PlayState* play) { if (this->stateFlags1 & PLAYER_STATE1_29) { LinkAnimation_Update(play, &this->skelAnime); } else { - sp24 = func_808374A0(play, this, &this->skelAnime, 16.0f); - if ((sp24 != 0) && (LinkAnimation_Update(play, &this->skelAnime) || (sp24 > 0))) { + interruptResult = Player_TryActionInterrupt(play, this, &this->skelAnime, 16.0f); + + if ((interruptResult != PLAYER_INTERRUPT_NEW_ACTION) && + (LinkAnimation_Update(play, &this->skelAnime) || (interruptResult >= PLAYER_INTERRUPT_MOVE))) { func_80839F90(this, play); } } @@ -9039,7 +9070,7 @@ static AnimSfxEntry D_8085460C[] = { void Player_Action_80844708(Player* this, PlayState* play) { Actor* cylinderOc; - s32 temp; + s32 interruptResult; s32 sp44; DynaPolyActor* wallPolyActor; s32 pad; @@ -9059,8 +9090,10 @@ void Player_Action_80844708(Player* this, PlayState* play) { if (this->av2.actionVar2 != 0) { Math_StepToF(&this->speedXZ, 0.0f, 2.0f); - temp = func_808374A0(play, this, &this->skelAnime, 5.0f); - if ((temp != 0) && ((temp > 0) || sp44)) { + interruptResult = Player_TryActionInterrupt(play, this, &this->skelAnime, 5.0f); + + if ((interruptResult != PLAYER_INTERRUPT_NEW_ACTION) && + ((interruptResult >= PLAYER_INTERRUPT_MOVE) || sp44)) { func_8083A060(this, play); } } else { @@ -9391,7 +9424,7 @@ void Player_Action_80845308(Player* this, PlayState* play) { void Player_Action_80845668(Player* this, PlayState* play) { s32 sp3C; - s32 temp2; + s32 interruptResult; f32 temp3; this->stateFlags2 |= PLAYER_STATE2_5; @@ -9421,14 +9454,14 @@ void Player_Action_80845668(Player* this, PlayState* play) { this->av2.actionVar2 = -1; } } else { - temp2 = func_808374A0(play, this, &this->skelAnime, 4.0f); + interruptResult = Player_TryActionInterrupt(play, this, &this->skelAnime, 4.0f); - if (temp2 == 0) { + if (interruptResult == PLAYER_INTERRUPT_NEW_ACTION) { this->stateFlags1 &= ~(PLAYER_STATE1_14 | PLAYER_STATE1_18); return; } - if ((sp3C != 0) || (temp2 > 0)) { + if ((sp3C != 0) || (interruptResult >= PLAYER_INTERRUPT_MOVE)) { func_8083C0E8(this, play); this->stateFlags1 &= ~(PLAYER_STATE1_14 | PLAYER_STATE1_18); return; @@ -12256,7 +12289,7 @@ static AnimSfxEntry D_808548A8[] = { }; void Player_Action_8084C5F8(Player* this, PlayState* play) { - s32 temp; + s32 interruptResult; f32* sp38; CollisionPoly* groundPoly; s32 bgId; @@ -12264,14 +12297,14 @@ void Player_Action_8084C5F8(Player* this, PlayState* play) { this->stateFlags2 |= PLAYER_STATE2_6; - temp = func_808374A0(play, this, &this->skelAnime, 4.0f); + interruptResult = Player_TryActionInterrupt(play, this, &this->skelAnime, 4.0f); - if (temp == 0) { + if (interruptResult == PLAYER_INTERRUPT_NEW_ACTION) { this->stateFlags1 &= ~PLAYER_STATE1_21; return; } - if ((temp > 0) || LinkAnimation_Update(play, &this->skelAnime)) { + if ((interruptResult >= PLAYER_INTERRUPT_MOVE) || LinkAnimation_Update(play, &this->skelAnime)) { func_8083C0E8(this, play); this->stateFlags1 &= ~PLAYER_STATE1_21; return; From 4de56c44acad36b5fd9b34612bbee615f9f44b16 Mon Sep 17 00:00:00 2001 From: cadmic Date: Fri, 19 Apr 2024 21:12:26 -0700 Subject: [PATCH 08/29] Add gc-eu-mq to CI (#1943) * Add gc-eu-mq to CI * Give up on scripting * Revert quotes changes --- Jenkinsfile | 32 ++++++++++++++++++++++++++++---- Makefile | 4 ++-- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0cdc7c1bd..f05c0808c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,13 +24,13 @@ pipeline { sh 'python3 tools/check_format.py --verbose --compare-to origin/main' } } - stage('Setup') { + stage('Setup gc-eu-mq-dbg') { steps { - sh 'cp /usr/local/etc/roms/baserom_oot.z64 baseroms/gc-eu-mq-dbg/baserom.z64' + sh 'cp /usr/local/etc/roms/oot-gc-eu-mq-dbg.z64 baseroms/gc-eu-mq-dbg/baserom.z64' sh 'make -j setup' } } - stage('Build (qemu-irix)') { + stage('Build gc-eu-mq-dbg (qemu-irix)') { when { branch 'main' } @@ -38,7 +38,7 @@ pipeline { sh 'make -j ORIG_COMPILER=1' } } - stage('Build') { + stage('Build gc-eu-mq-dbg') { when { not { branch 'main' @@ -48,6 +48,30 @@ pipeline { sh 'make -j RUN_CC_CHECK=0' } } + stage('Setup gc-eu-mq') { + steps { + sh 'cp /usr/local/etc/roms/oot-gc-eu-mq.z64 baseroms/gc-eu-mq/baserom.z64' + sh 'make -j setup VERSION=gc-eu-mq' + } + } + stage('Build gc-eu-mq (qemu-irix)') { + when { + branch 'main' + } + steps { + sh 'make -j VERSION=gc-eu-mq ORIG_COMPILER=1' + } + } + stage('Build gc-eu-mq') { + when { + not { + branch 'main' + } + } + steps { + sh 'make -j VERSION=gc-eu-mq RUN_CC_CHECK=0' + } + } stage('Report Progress') { when { branch 'main' diff --git a/Makefile b/Makefile index b60aad6c5..5cefd6257 100644 --- a/Makefile +++ b/Makefile @@ -14,11 +14,11 @@ NON_MATCHING := 0 ORIG_COMPILER := 0 # If COMPILER is "gcc", compile with GCC instead of IDO. COMPILER := ido -# Target game version. Currently only the following version is supported: +# Target game version. Currently the following versions are supported: +# gc-eu-mq GameCube Europe/PAL Master Quest # gc-eu-mq-dbg GameCube Europe/PAL Master Quest Debug (default) # The following versions are work-in-progress and not yet matching: # gc-eu GameCube Europe/PAL -# gc-eu-mq GameCube Europe/PAL Master Quest VERSION := gc-eu-mq-dbg # Number of threads to extract and compress with N_THREADS := $(shell nproc) From 62b97badc9bbc9b2a08e2efe72083f58ed003816 Mon Sep 17 00:00:00 2001 From: fig02 Date: Sat, 20 Apr 2024 16:42:18 -0400 Subject: [PATCH 09/29] Player Docs: Name some high level update calls (#1593) * name some low hanging fruit * revert burn and shock, doing in seperate pr * add some function comments * yaw func * adjust comment * some review * unname UpdateZTarget * Player_DetectRumbleSecrets * fix dive do action name --- .../actors/ovl_player_actor/z_player.c | 56 ++++++++++++------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 784881357..0dae35389 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3463,7 +3463,16 @@ s32 Player_SetupWaitForPutAway(PlayState* play, Player* this, AfterPutAwayFunc a return Player_PutAwayHeldItem(play, this); } -void func_808368EC(Player* this, PlayState* play) { +/** + * Updates Shape Yaw (`shape.rot.y`). In other words, the Y rotation of Player's model. + * This does not affect the direction Player will move in. + * + * There are 3 modes shape yaw can be updated with, based on player state: + * - Lock on: Rotates Player to face the lock on target. + * - Parallel: Rotates Player to face the Parallel angle, set by `func_808355DC` when Z is pressed. + * - Normal: Rotates Player to face `this->yaw`, the direction he is currently moving + */ +void Player_UpdateShapeYaw(Player* this, PlayState* play) { s16 previousYaw = this->actor.shape.rot.y; if (!(this->stateFlags2 & (PLAYER_STATE2_5 | PLAYER_STATE2_6))) { @@ -3528,6 +3537,7 @@ s32 func_80836AB8(Player* this, s32 arg1) { return var; } +// Update things related to Z Targeting void func_80836BEC(Player* this, PlayState* play) { s32 sp1C = 0; s32 zTrigPressed = CHECK_BTN_ALL(sControlInput->cur.button, BTN_Z); @@ -9971,11 +9981,11 @@ void func_808469BC(PlayState* play, Player* this) { this->stateFlags1 |= PLAYER_STATE1_29; } -static s16 D_80854700[] = { ACTOR_MAGIC_WIND, ACTOR_MAGIC_DARK, ACTOR_MAGIC_FIRE }; +Actor* Player_SpawnMagicSpell(PlayState* play, Player* this, s32 spell) { + static s16 sMagicSpellActorIds[] = { ACTOR_MAGIC_WIND, ACTOR_MAGIC_DARK, ACTOR_MAGIC_FIRE }; -Actor* func_80846A00(PlayState* play, Player* this, s32 arg2) { - return Actor_Spawn(&play->actorCtx, play, D_80854700[arg2], this->actor.world.pos.x, this->actor.world.pos.y, - this->actor.world.pos.z, 0, 0, 0, 0); + return Actor_Spawn(&play->actorCtx, play, sMagicSpellActorIds[spell], this->actor.world.pos.x, + this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 0); } void func_80846A68(PlayState* play, Player* this) { @@ -10147,7 +10157,7 @@ void Player_Init(Actor* thisx, PlayState* play2) { if (gSaveContext.nayrusLoveTimer != 0) { gSaveContext.magicState = MAGIC_STATE_METER_FLASH_1; - func_80846A00(play, this, 1); + Player_SpawnMagicSpell(play, this, 1); this->stateFlags3 &= ~PLAYER_STATE3_RESTORE_NAYRUS_LOVE; } @@ -10218,7 +10228,12 @@ void func_80847298(Player* this) { static f32 D_80854784[] = { 120.0f, 240.0f, 360.0f }; -void func_808473D4(PlayState* play, Player* this) { +/** + * Updates the two main interface elements that player is responsible for: + * - Do Action label on the A button + * - Navi C-up icon for hints + */ +void Player_UpdateInterface(PlayState* play, Player* this) { if ((Message_GetState(&play->msgCtx) == TEXT_STATE_NONE) && (this->actor.category == ACTORCAT_PLAYER)) { Actor* heldActor = this->heldActor; Actor* interactRangeActor = this->interactRangeActor; @@ -10290,12 +10305,12 @@ void func_808473D4(PlayState* play, Player* this) { (this->getItemId < GI_MAX)) { doAction = DO_ACTION_GRAB; } else if (this->stateFlags2 & PLAYER_STATE2_11) { - static u8 sDiveDoActions[] = { DO_ACTION_1, DO_ACTION_2, DO_ACTION_3, DO_ACTION_4, - DO_ACTION_5, DO_ACTION_6, DO_ACTION_7, DO_ACTION_8 }; + static u8 sDiveNumberDoActions[] = { DO_ACTION_1, DO_ACTION_2, DO_ACTION_3, DO_ACTION_4, + DO_ACTION_5, DO_ACTION_6, DO_ACTION_7, DO_ACTION_8 }; sp24 = (D_80854784[CUR_UPG_VALUE(UPG_SCALE)] - this->actor.yDistToWater) / 40.0f; sp24 = CLAMP(sp24, 0, 7); - doAction = sDiveDoActions[sp24]; + doAction = sDiveNumberDoActions[sp24]; } else if (sp1C && !(this->stateFlags2 & PLAYER_STATE2_10)) { doAction = DO_ACTION_DIVE; } else if (!sp1C && (!(this->stateFlags1 & PLAYER_STATE1_22) || func_80833BCC(this) || @@ -10772,11 +10787,11 @@ static Vec3f D_808547B0 = { 0.0f, 0.5f, 0.0f }; static Color_RGBA8 D_808547BC = { 255, 255, 100, 255 }; static Color_RGBA8 D_808547C0 = { 255, 50, 0, 0 }; -void func_80848A04(PlayState* play, Player* this) { +void Player_UpdateBurningDekuStick(PlayState* play, Player* this) { f32 temp; if (this->unk_85C == 0.0f) { - Player_UseItem(play, this, 0xFF); + Player_UseItem(play, this, ITEM_NONE); return; } @@ -10890,7 +10905,7 @@ void Player_UpdateBodyBurn(PlayState* play, Player* this) { } } -void func_80848EF8(Player* this) { +void Player_DetectRumbleSecrets(Player* this) { if (CHECK_QUEST_ITEM(QUEST_STONE_OF_AGONY)) { f32 temp = 200000.0f - (this->closestSecretDistSq * 5.0f); @@ -11037,11 +11052,11 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { this->unk_890--; } - func_808473D4(play, this); + Player_UpdateInterface(play, this); func_80836BEC(this, play); if ((this->heldItemAction == PLAYER_IA_DEKU_STICK) && (this->unk_860 != 0)) { - func_80848A04(play, this); + Player_UpdateBurningDekuStick(play, this); } else if ((this->heldItemAction == PLAYER_IA_FISHING_POLE) && (this->unk_860 < 0)) { this->unk_860++; } @@ -11057,7 +11072,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { if ((this->stateFlags3 & PLAYER_STATE3_RESTORE_NAYRUS_LOVE) && (gSaveContext.nayrusLoveTimer != 0) && (gSaveContext.magicState == MAGIC_STATE_IDLE)) { gSaveContext.magicState = MAGIC_STATE_METER_FLASH_1; - func_80846A00(play, this, 1); + Player_SpawnMagicSpell(play, this, 1); this->stateFlags3 &= ~PLAYER_STATE3_RESTORE_NAYRUS_LOVE; } @@ -11246,7 +11261,8 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { } else { this->fallStartHeight = this->actor.world.pos.y; } - func_80848EF8(this); + + Player_DetectRumbleSecrets(this); } } @@ -11298,7 +11314,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { } D_808535EC = 1.0f / D_808535E8; - sUseHeldItem = sHeldItemButtonIsHeldDown = 0; + sUseHeldItem = sHeldItemButtonIsHeldDown = false; D_80858AA4 = this->currentMask; if (!(this->stateFlags3 & PLAYER_STATE3_2)) { @@ -11313,7 +11329,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { (this->skelAnime.moveFlags & ANIM_FLAG_PLAYER_2) ? 1.0f : this->ageProperties->unk_08); } - func_808368EC(this, play); + Player_UpdateShapeYaw(this, play); if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_TALK)) { this->talkActorDistance = 0.0f; @@ -14072,7 +14088,7 @@ void Player_Action_808507F4(Player* this, PlayState* play) { if (this->av2.actionVar2 == 0) { LinkAnimation_PlayOnceSetSpeed(play, &this->skelAnime, D_80854A58[this->av1.actionVar1], 0.83f); - if (func_80846A00(play, this, this->av1.actionVar1) != NULL) { + if (Player_SpawnMagicSpell(play, this, this->av1.actionVar1) != NULL) { this->stateFlags1 |= PLAYER_STATE1_28 | PLAYER_STATE1_29; if ((this->av1.actionVar1 != 0) || (gSaveContext.respawn[RESPAWN_MODE_TOP].data <= 0)) { gSaveContext.magicState = MAGIC_STATE_CONSUME_SETUP; From 7e8b9144c2e08f65229696135980977e1f098d6c Mon Sep 17 00:00:00 2001 From: fig02 Date: Mon, 22 Apr 2024 17:35:22 -0400 Subject: [PATCH 10/29] Player Docs: Control stick buffers (#1945) * name vars and add enum * name some spin attack stuff * fix right and left * forward/backward * format * fix retail bss * sControlStickWorldYaw --- include/z64player.h | 14 ++- src/code/sys_math3d.c | 2 +- src/code/z_actor.c | 3 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../actors/ovl_player_actor/z_player.c | 117 +++++++++++------- 5 files changed, 84 insertions(+), 54 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index ba593e976..6f6239251 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -596,6 +596,14 @@ typedef enum { /* 4 */ PLAYER_LEDGE_CLIMB_4 } PlayerLedgeClimbType; +typedef enum { + /* -1 */ PLAYER_STICK_DIR_NONE = -1, + /* 0 */ PLAYER_STICK_DIR_FORWARD, + /* 1 */ PLAYER_STICK_DIR_LEFT, + /* 2 */ PLAYER_STICK_DIR_BACKWARD, + /* 3 */ PLAYER_STICK_DIR_RIGHT +} PlayerStickDirection; + typedef struct { /* 0x00 */ f32 ceilingCheckHeight; /* 0x04 */ f32 unk_04; @@ -836,9 +844,9 @@ typedef struct Player { /* 0x0843 */ s8 meleeWeaponState; /* 0x0844 */ s8 unk_844; /* 0x0845 */ u8 unk_845; - /* 0x0846 */ u8 unk_846; - /* 0x0847 */ s8 unk_847[4]; - /* 0x084B */ s8 unk_84B[4]; + /* 0x0846 */ u8 controlStickDataIndex; // cycles between 0 - 3. Used to index `controlStickSpinAngles` and `controlStickDirections` + /* 0x0847 */ s8 controlStickSpinAngles[4]; // Stores a modified version of the control stick angle for the last 4 frames. Used for checking spins. + /* 0x084B */ s8 controlStickDirections[4]; // Stores the control stick direction (relative to shape yaw) for the last 4 frames. See `PlayerStickDirection`. /* 0x084F */ union { s8 actionVar1; diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index a3b8ca2d6..6525f825d 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -3,7 +3,7 @@ // For retail BSS ordering, the block number of cbf in Math3D_CylVsCylOverlapCenterDist // must be 0. -#pragma increment_block_number 190 +#pragma increment_block_number 187 s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 5e8b86aaa..ec8475535 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -433,7 +433,8 @@ void func_8002C7BC(TargetContext* targetCtx, Player* player, Actor* actorArg, Pl unkActor = NULL; - if ((player->unk_664 != NULL) && (player->unk_84B[player->unk_846] == 2)) { + if ((player->unk_664 != NULL) && + (player->controlStickDirections[player->controlStickDataIndex] == PLAYER_STICK_DIR_BACKWARD)) { targetCtx->unk_94 = NULL; } else { func_80032AF0(play, &play->actorCtx, &unkActor, player); diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index bf1e59de7..bee978e5b 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -11,7 +11,7 @@ #include "terminal.h" // For retail BSS ordering, the block number of sStreamSfxProjectedPos must be 0. -#pragma increment_block_number 201 +#pragma increment_block_number 198 #define FLAGS ACTOR_FLAG_4 diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 0dae35389..13632f4f1 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -508,7 +508,7 @@ static PlayerAgeProperties sAgeProperties[] = { static u32 sNoclipEnabled = false; static f32 sControlStickMagnitude = 0.0f; static s16 sControlStickAngle = 0; -static s16 D_808535DC = 0; +static s16 sControlStickWorldYaw = 0; static s32 sUpperBodyIsBusy = false; // see `Player_UpdateUpperBody` static s32 sFloorType = FLOOR_TYPE_0; static f32 D_808535E8 = 1.0f; @@ -2031,28 +2031,28 @@ void Player_AnimReplaceNormalPlayLoopAdjusted(PlayState* play, Player* this, Lin } void Player_ProcessControlStick(PlayState* play, Player* this) { - s8 phi_v1; - s8 phi_v0; + s8 spinAngle; + s8 direction; this->prevControlStickMagnitude = sControlStickMagnitude; this->prevControlStickAngle = sControlStickAngle; Lib_GetControlStickData(&sControlStickMagnitude, &sControlStickAngle, sControlInput); - D_808535DC = Camera_GetInputDirYaw(GET_ACTIVE_CAM(play)) + sControlStickAngle; + sControlStickWorldYaw = Camera_GetInputDirYaw(GET_ACTIVE_CAM(play)) + sControlStickAngle; - this->unk_846 = (this->unk_846 + 1) % 4; + this->controlStickDataIndex = (this->controlStickDataIndex + 1) % 4; if (sControlStickMagnitude < 55.0f) { - phi_v0 = -1; - phi_v1 = -1; + direction = PLAYER_STICK_DIR_NONE; + spinAngle = -1; } else { - phi_v1 = (u16)(sControlStickAngle + 0x2000) >> 9; - phi_v0 = (u16)((s16)(D_808535DC - this->actor.shape.rot.y) + 0x2000) >> 14; + spinAngle = (u16)(sControlStickAngle + 0x2000) >> 9; + direction = (u16)((s16)(sControlStickWorldYaw - this->actor.shape.rot.y) + 0x2000) >> 14; } - this->unk_847[this->unk_846] = phi_v1; - this->unk_84B[this->unk_846] = phi_v0; + this->controlStickSpinAngles[this->controlStickDataIndex] = spinAngle; + this->controlStickDirections[this->controlStickDataIndex] = direction; } void func_8083328C(PlayState* play, Player* this, LinkAnimationHeader* linkAnim) { @@ -3983,7 +3983,7 @@ void func_80837530(PlayState* play, Player* this, s32 arg2) { } } -s32 func_808375D8(Player* this) { +s32 Player_CanSpinAttack(Player* this) { s8 sp3C[4]; s8* iter; s8* iter2; @@ -3992,32 +3992,37 @@ s32 func_808375D8(Player* this) { s32 i; if ((this->heldItemAction == PLAYER_IA_DEKU_STICK) || Player_HoldsBrokenKnife(this)) { - return 0; + return false; } - iter = &this->unk_847[0]; + iter = &this->controlStickSpinAngles[0]; iter2 = &sp3C[0]; + for (i = 0; i < 4; i++, iter++, iter2++) { if ((*iter2 = *iter) < 0) { - return 0; + return false; } + *iter2 *= 2; } temp1 = sp3C[0] - sp3C[1]; + if (ABS(temp1) < 10) { - return 0; + return false; } iter2 = &sp3C[1]; + for (i = 1; i < 3; i++, iter2++) { temp2 = *iter2 - *(iter2 + 1); + if ((ABS(temp2) < 10) || (temp2 * temp1 < 0)) { - return 0; + return false; } } - return 1; + return true; } void func_80837704(PlayState* play, Player* this) { @@ -4046,6 +4051,7 @@ static s8 D_80854480[] = { PLAYER_MWA_RIGHT_SLASH_1H, PLAYER_MWA_LEFT_SLASH_1H, }; + static s8 D_80854484[] = { PLAYER_MWA_HAMMER_FORWARD, PLAYER_MWA_HAMMER_SIDE, @@ -4054,38 +4060,43 @@ static s8 D_80854484[] = { }; s32 func_80837818(Player* this) { - s32 sp1C = this->unk_84B[this->unk_846]; + s32 controlStickDirection = this->controlStickDirections[this->controlStickDataIndex]; s32 sp18; if (this->heldItemAction == PLAYER_IA_HAMMER) { - if (sp1C < 0) { - sp1C = 0; + if (controlStickDirection <= PLAYER_STICK_DIR_NONE) { + controlStickDirection = PLAYER_STICK_DIR_FORWARD; } - sp18 = D_80854484[sp1C]; + + sp18 = D_80854484[controlStickDirection]; this->unk_845 = 0; } else { - if (func_808375D8(this)) { + if (Player_CanSpinAttack(this)) { sp18 = PLAYER_MWA_SPIN_ATTACK_1H; } else { - if (sp1C < 0) { + if (controlStickDirection <= PLAYER_STICK_DIR_NONE) { if (func_80833BCC(this)) { sp18 = PLAYER_MWA_FORWARD_SLASH_1H; } else { sp18 = PLAYER_MWA_RIGHT_SLASH_1H; } } else { - sp18 = D_80854480[sp1C]; + sp18 = D_80854480[controlStickDirection]; + if (sp18 == PLAYER_MWA_STAB_1H) { this->stateFlags2 |= PLAYER_STATE2_30; + if (!func_80833BCC(this)) { sp18 = PLAYER_MWA_FORWARD_SLASH_1H; } } } + if (this->heldItemAction == PLAYER_IA_DEKU_STICK) { sp18 = PLAYER_MWA_FORWARD_SLASH_1H; } } + if (Player_HoldsTwoHandedWeapon(this)) { sp18++; } @@ -5877,42 +5888,45 @@ void func_8083BC04(Player* this, PlayState* play) { } s32 func_8083BC7C(Player* this, PlayState* play) { - if ((this->unk_84B[this->unk_846] == 0) && (sFloorType != FLOOR_TYPE_7)) { + if ((this->controlStickDirections[this->controlStickDataIndex] == PLAYER_STICK_DIR_FORWARD) && + (sFloorType != FLOOR_TYPE_7)) { func_8083BC04(this, play); + return 1; } return 0; } -void func_8083BCD0(Player* this, PlayState* play, s32 arg2) { - func_80838940(this, D_80853D4C[arg2][0], !(arg2 & 1) ? 5.8f : 3.5f, play, NA_SE_VO_LI_SWORD_N); +void func_8083BCD0(Player* this, PlayState* play, s32 controlStickDirection) { + func_80838940(this, D_80853D4C[controlStickDirection][0], !(controlStickDirection & 1) ? 5.8f : 3.5f, play, + NA_SE_VO_LI_SWORD_N); - if (arg2) {} + if (controlStickDirection) {} this->av2.actionVar2 = 1; - this->av1.actionVar1 = arg2; + this->av1.actionVar1 = controlStickDirection; - this->yaw = this->actor.shape.rot.y + (arg2 << 0xE); - this->speedXZ = !(arg2 & 1) ? 6.0f : 8.5f; + this->yaw = this->actor.shape.rot.y + (controlStickDirection << 0xE); + this->speedXZ = !(controlStickDirection & 1) ? 6.0f : 8.5f; this->stateFlags2 |= PLAYER_STATE2_19; - Player_PlaySfx(this, ((arg2 << 0xE) == 0x8000) ? NA_SE_PL_ROLL : NA_SE_PL_SKIP); + Player_PlaySfx(this, ((controlStickDirection << 0xE) == 0x8000) ? NA_SE_PL_ROLL : NA_SE_PL_SKIP); } s32 Player_ActionChange_10(Player* this, PlayState* play) { - s32 sp2C; + s32 controlStickDirection; if (CHECK_BTN_ALL(sControlInput->press.button, BTN_A) && (play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_2) && (sFloorType != FLOOR_TYPE_7) && (SurfaceType_GetFloorEffect(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId) != FLOOR_EFFECT_1)) { - sp2C = this->unk_84B[this->unk_846]; + controlStickDirection = this->controlStickDirections[this->controlStickDataIndex]; - if (sp2C <= 0) { + if (controlStickDirection <= PLAYER_STICK_DIR_FORWARD) { if (func_80833BCC(this)) { if (this->actor.category != ACTORCAT_PLAYER) { - if (sp2C < 0) { + if (controlStickDirection <= PLAYER_STICK_DIR_NONE) { func_808389E8(this, &gPlayerAnim_link_normal_jump, REG(69) / 100.0f, play); } else { func_8083BC04(this, play); @@ -5924,10 +5938,12 @@ s32 Player_ActionChange_10(Player* this, PlayState* play) { func_8083BC04(this, play); } } + return 1; } } else { - func_8083BCD0(this, play, sp2C); + func_8083BCD0(this, play, controlStickDirection); + return 1; } } @@ -9011,7 +9027,8 @@ void Player_Action_8084411C(Player* this, PlayState* play) { if ((this->actor.bgCheckFlags & BGCHECKFLAG_PLAYER_WALL_INTERACT) && !(this->stateFlags2 & PLAYER_STATE2_19) && !(this->stateFlags1 & (PLAYER_STATE1_11 | PLAYER_STATE1_27)) && (this->speedXZ > 0.0f)) { - if ((this->yDistToLedge >= 150.0f) && (this->unk_84B[this->unk_846] == 0)) { + if ((this->yDistToLedge >= 150.0f) && + (this->controlStickDirections[this->controlStickDataIndex] == PLAYER_STICK_DIR_FORWARD)) { func_8083EC18(this, play, sTouchedWallFlags); } else if ((this->ledgeClimbType >= PLAYER_LEDGE_CLIMB_2) && (this->yDistToLedge < 150.0f) && (((this->actor.world.pos.y - this->actor.floorHeight) + this->yDistToLedge) > @@ -9049,7 +9066,8 @@ void Player_Action_8084411C(Player* this, PlayState* play) { func_80833C3C(this); } else if (this->fallDistance <= 80) { anim = GET_PLAYER_ANIM(PLAYER_ANIMGROUP_short_landing, this->modelAnimType); - } else if ((this->fallDistance < 800) && (this->unk_84B[this->unk_846] == 0) && + } else if ((this->fallDistance < 800) && + (this->controlStickDirections[this->controlStickDataIndex] == PLAYER_STICK_DIR_FORWARD) && !(this->stateFlags1 & PLAYER_STATE1_11)) { func_8083BC04(this, play); return; @@ -9144,7 +9162,8 @@ void Player_Action_80844708(Player* this, PlayState* play) { Player_GetMovementSpeedAndYaw(this, &speedTarget, &yawTarget, SPEED_MODE_CURVED, play); speedTarget *= 1.5f; - if ((speedTarget < 3.0f) || (this->unk_84B[this->unk_846] != 0)) { + if ((speedTarget < 3.0f) || + (this->controlStickDirections[this->controlStickDataIndex] != PLAYER_STICK_DIR_FORWARD)) { speedTarget = 3.0f; } @@ -9209,7 +9228,7 @@ s32 func_80844BE4(Player* this, PlayState* play) { if (!CHECK_BTN_ALL(sControlInput->cur.button, BTN_B)) { s32 temp; - if ((this->unk_858 >= 0.85f) || func_808375D8(this)) { + if ((this->unk_858 >= 0.85f) || Player_CanSpinAttack(this)) { temp = D_80854384[Player_HoldsTwoHandedWeapon(this)]; } else { temp = D_80854380[Player_HoldsTwoHandedWeapon(this)]; @@ -9219,7 +9238,7 @@ s32 func_80844BE4(Player* this, PlayState* play) { func_80837AFC(this, -8); this->stateFlags2 |= PLAYER_STATE2_17; - if (this->unk_84B[this->unk_846] == 0) { + if (this->controlStickDirections[this->controlStickDataIndex] == PLAYER_STICK_DIR_FORWARD) { this->stateFlags2 |= PLAYER_STATE2_30; } } else { @@ -10238,7 +10257,7 @@ void Player_UpdateInterface(PlayState* play, Player* this) { Actor* heldActor = this->heldActor; Actor* interactRangeActor = this->interactRangeActor; s32 sp24; - s32 sp20 = this->unk_84B[this->unk_846]; + s32 controlStickDirection = this->controlStickDirections[this->controlStickDataIndex]; s32 sp1C = func_808332B8(this); s32 doAction = DO_ACTION_NONE; @@ -10315,14 +10334,16 @@ void Player_UpdateInterface(PlayState* play, Player* this) { doAction = DO_ACTION_DIVE; } else if (!sp1C && (!(this->stateFlags1 & PLAYER_STATE1_22) || func_80833BCC(this) || !Player_IsChildWithHylianShield(this))) { - if ((!(this->stateFlags1 & PLAYER_STATE1_14) && (sp20 <= 0) && + if ((!(this->stateFlags1 & PLAYER_STATE1_14) && + (controlStickDirection <= PLAYER_STICK_DIR_FORWARD) && (func_8008E9C4(this) || ((sFloorType != FLOOR_TYPE_7) && (func_80833B2C(this) || ((play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_2) && - !(this->stateFlags1 & PLAYER_STATE1_22) && (sp20 == 0))))))) { + !(this->stateFlags1 & PLAYER_STATE1_22) && + (controlStickDirection == PLAYER_STICK_DIR_FORWARD))))))) { doAction = DO_ACTION_ATTACK; } else if ((play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_2) && func_80833BCC(this) && - (sp20 > 0)) { + (controlStickDirection >= PLAYER_STICK_DIR_LEFT)) { doAction = DO_ACTION_JUMP; } else if ((this->heldItemAction >= PLAYER_IA_SWORD_MASTER) || ((this->stateFlags2 & PLAYER_STATE2_20) && @@ -12104,7 +12125,7 @@ void Player_Action_8084BBE4(Player* this, PlayState* play) { if (this->av1.actionVar1 != 0) { Player_GetMovementSpeedAndYaw(this, &speedTarget, &yawTarget, SPEED_MODE_LINEAR, play); - if (this->unk_847[this->unk_846] >= 0) { + if (this->controlStickSpinAngles[this->controlStickDataIndex] >= 0) { if (this->av1.actionVar1 > 0) { anim = GET_PLAYER_ANIM(PLAYER_ANIMGROUP_fall_up, this->modelAnimType); } else { From d4d7512cb6c4560a61cc6b7d036c4b46a6fc3a19 Mon Sep 17 00:00:00 2001 From: cadmic Date: Thu, 25 Apr 2024 04:10:31 -0700 Subject: [PATCH 11/29] Force string.o to be in boot for gcc builds (#1948) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In retail builds, memcpy is linked in code, not boot, but GCC likes to call memcpy when copying structs so currently GCC builds immediately crash in __osInitialize_common. --- spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec b/spec index 349060f28..a0f411d40 100644 --- a/spec +++ b/spec @@ -66,7 +66,7 @@ beginseg #endif include "$(BUILD_DIR)/src/libultra/os/unmaptlball.o" include "$(BUILD_DIR)/src/libultra/io/epidma.o" -#if OOT_DEBUG +#if OOT_DEBUG || COMPILER_GCC include "$(BUILD_DIR)/src/libultra/libc/string.o" #endif include "$(BUILD_DIR)/src/libultra/os/invalicache.o" @@ -532,6 +532,8 @@ beginseg include "$(BUILD_DIR)/src/libultra/gu/lookathil.o" #if !OOT_DEBUG include "$(BUILD_DIR)/src/libultra/libc/xprintf.o" +#endif +#if !OOT_DEBUG && !COMPILER_GCC include "$(BUILD_DIR)/src/libultra/libc/string.o" #endif include "$(BUILD_DIR)/src/libultra/io/sp.o" From b86e1774cf04e3119306638791e86fa91585d854 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sun, 28 Apr 2024 14:29:06 -0700 Subject: [PATCH 12/29] Rename yDistToWater -> depthInWater (#1950) * Rename yDistToWater -> yDistUnderWater * yDistUnderWater -> depthInWater --- include/z64actor.h | 2 +- src/code/z_actor.c | 8 +-- .../ovl_En_Attack_Niw/z_en_attack_niw.c | 2 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 2 +- .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 8 +-- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 2 +- src/overlays/actors/ovl_En_Crow/z_en_crow.c | 6 +-- .../actors/ovl_En_Encount1/z_en_encount1.c | 4 +- .../actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c | 4 +- .../actors/ovl_En_Insect/z_en_insect.c | 6 +-- src/overlays/actors/ovl_En_Ishi/z_en_ishi.c | 2 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 10 ++-- src/overlays/actors/ovl_En_Kusa/z_en_kusa.c | 2 +- src/overlays/actors/ovl_En_Mk/z_en_mk.c | 2 +- src/overlays/actors/ovl_En_Niw/z_en_niw.c | 8 +-- src/overlays/actors/ovl_En_Ny/z_en_ny.c | 16 +++--- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 10 ++-- src/overlays/actors/ovl_En_Sb/z_en_sb.c | 14 ++--- src/overlays/actors/ovl_En_Skb/z_en_skb.c | 2 +- src/overlays/actors/ovl_En_Tite/z_en_tite.c | 22 ++++---- .../actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c | 4 +- .../actors/ovl_En_Weiyer/z_en_weiyer.c | 6 +-- src/overlays/actors/ovl_En_Zo/z_en_zo.c | 22 ++++---- .../actors/ovl_Obj_Kibako/z_obj_kibako.c | 4 +- .../actors/ovl_Obj_Tsubo/z_obj_tsubo.c | 4 +- .../actors/ovl_player_actor/z_player.c | 52 +++++++++---------- 26 files changed, 112 insertions(+), 112 deletions(-) diff --git a/include/z64actor.h b/include/z64actor.h index 73643c350..68991ca7d 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -276,7 +276,7 @@ typedef struct Actor { /* 0x07D */ u8 floorBgId; // Bg ID of the floor polygon directly below the actor /* 0x07E */ s16 wallYaw; // Y rotation of the wall polygon the actor is touching /* 0x080 */ f32 floorHeight; // Y position of the floor polygon directly below the actor - /* 0x084 */ f32 yDistToWater; // Distance to the surface of active waterbox. Negative value means above water + /* 0x084 */ f32 depthInWater; // Distance below the surface of active waterbox. Positive value means under water, negative value means above water /* 0x088 */ u16 bgCheckFlags; // Flags indicating how the actor is interacting with collision /* 0x08A */ s16 yawTowardsPlayer; // Y rotation difference between the actor and the player /* 0x08C */ f32 xyzDistToPlayerSq; // Squared distance between the actor and the player diff --git a/src/code/z_actor.c b/src/code/z_actor.c index ec8475535..214fa7138 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1358,8 +1358,8 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, waterBoxYSurface = actor->world.pos.y; if (WaterBox_GetSurface1(play, &play->colCtx, actor->world.pos.x, actor->world.pos.z, &waterBoxYSurface, &waterBox)) { - actor->yDistToWater = waterBoxYSurface - actor->world.pos.y; - if (actor->yDistToWater < 0.0f) { + actor->depthInWater = waterBoxYSurface - actor->world.pos.y; + if (actor->depthInWater < 0.0f) { actor->bgCheckFlags &= ~(BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH); } else { if (!(actor->bgCheckFlags & BGCHECKFLAG_WATER)) { @@ -1379,7 +1379,7 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, } } else { actor->bgCheckFlags &= ~(BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH); - actor->yDistToWater = BGCHECK_Y_MIN; + actor->depthInWater = BGCHECK_Y_MIN; } } } @@ -1835,7 +1835,7 @@ void func_8002F850(PlayState* play, Actor* actor) { s32 surfaceSfxOffset; if (actor->bgCheckFlags & BGCHECKFLAG_WATER) { - if (actor->yDistToWater < 20.0f) { + if (actor->depthInWater < 20.0f) { surfaceSfxOffset = SURFACE_SFX_OFFSET_WATER_SHALLOW; } else { surfaceSfxOffset = SURFACE_SFX_OFFSET_WATER_DEEP; diff --git a/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c b/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c index f42593a57..a045dd41b 100644 --- a/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c +++ b/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c @@ -345,7 +345,7 @@ void EnAttackNiw_Update(Actor* thisx, PlayState* play) { s32 pad; Math_Vec3f_Copy(&sp30, &this->actor.world.pos); - sp30.y += this->actor.yDistToWater; + sp30.y += this->actor.depthInWater; EffectSsGSplash_Spawn(play, &sp30, NULL, NULL, 0, 0x190); this->unk_2DC = 0.0f; this->actor.gravity = 0.0f; diff --git a/src/overlays/actors/ovl_En_Bom/z_en_bom.c b/src/overlays/actors/ovl_En_Bom/z_en_bom.c index 702278055..86871860e 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -342,7 +342,7 @@ void EnBom_Update(Actor* thisx, PlayState* play2) { } if ((thisx->scale.x >= 0.01f) && (thisx->params != BOMB_EXPLOSION)) { - if (thisx->yDistToWater >= 20.0f) { + if (thisx->depthInWater >= 20.0f) { EffectSsDeadSound_SpawnStationary(play, &thisx->projectedPos, NA_SE_IT_BOMB_UNEXPLOSION, true, DEADSOUND_REPEAT_MODE_OFF, 10); Actor_Kill(thisx); diff --git a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c index 5af68e436..a0b95d220 100644 --- a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c +++ b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c @@ -114,7 +114,7 @@ void EnBomChu_Explode(EnBomChu* this, PlayState* play) { this->timer = 1; this->actor.speed = 0.0f; - if (this->actor.yDistToWater > 0.0f) { + if (this->actor.depthInWater > 0.0f) { for (i = 0; i < 40; i++) { EffectSsBubble_Spawn(play, &this->actor.world.pos, 1.0f, 5.0f, 30.0f, 0.25f); } @@ -452,9 +452,9 @@ void EnBomChu_Update(Actor* thisx, PlayState* play2) { if (WaterBox_GetSurface1(play, &play->colCtx, this->actor.world.pos.x, this->actor.world.pos.z, &waterY, &waterBox)) { - this->actor.yDistToWater = waterY - this->actor.world.pos.y; + this->actor.depthInWater = waterY - this->actor.world.pos.y; - if (this->actor.yDistToWater < 0.0f) { + if (this->actor.depthInWater < 0.0f) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { EnBomChu_SpawnRipples(this, play, waterY); } @@ -471,7 +471,7 @@ void EnBomChu_Update(Actor* thisx, PlayState* play2) { } } else { this->actor.bgCheckFlags &= ~BGCHECKFLAG_WATER; - this->actor.yDistToWater = BGCHECK_Y_MIN; + this->actor.depthInWater = BGCHECK_Y_MIN; } } } diff --git a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c index f4864d530..36860ca1c 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -452,7 +452,7 @@ void EnBombf_Update(Actor* thisx, PlayState* play) { } if ((thisx->scale.x >= 0.01f) && (thisx->params != BOMBFLOWER_EXPLOSION)) { - if (thisx->yDistToWater >= 20.0f) { + if (thisx->depthInWater >= 20.0f) { EffectSsDeadSound_SpawnStationary(play, &thisx->projectedPos, NA_SE_IT_BOMB_UNEXPLOSION, true, DEADSOUND_REPEAT_MODE_OFF, 10); Actor_Kill(thisx); diff --git a/src/overlays/actors/ovl_En_Crow/z_en_crow.c b/src/overlays/actors/ovl_En_Crow/z_en_crow.c index af8ec2dab..fc6f9474e 100644 --- a/src/overlays/actors/ovl_En_Crow/z_en_crow.c +++ b/src/overlays/actors/ovl_En_Crow/z_en_crow.c @@ -251,7 +251,7 @@ void EnCrow_FlyIdle(EnCrow* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_KAICHO_CRY); } - if (this->actor.yDistToWater > -40.0f) { + if (this->actor.depthInWater > -40.0f) { this->aimRotX = -0x1000; } else if (this->actor.world.pos.y < (this->actor.home.pos.y - 50.0f)) { this->aimRotX = -0x800 - (Rand_ZeroOne() * 0x800); @@ -277,7 +277,7 @@ void EnCrow_FlyIdle(EnCrow* this, PlayState* play) { this->timer--; } if ((this->timer == 0) && (this->actor.xzDistToPlayer < 300.0f) && !(player->stateFlags1 & PLAYER_STATE1_23) && - (this->actor.yDistToWater < -40.0f) && (Player_GetMask(play) != PLAYER_MASK_SKULL)) { + (this->actor.depthInWater < -40.0f) && (Player_GetMask(play) != PLAYER_MASK_SKULL)) { EnCrow_SetupDiveAttack(this); } } @@ -315,7 +315,7 @@ void EnCrow_DiveAttack(EnCrow* this, PlayState* play) { if ((this->timer == 0) || (Player_GetMask(play) == PLAYER_MASK_SKULL) || (this->collider.base.atFlags & AT_HIT) || (this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_WALL)) || - (player->stateFlags1 & PLAYER_STATE1_23) || (this->actor.yDistToWater > -40.0f)) { + (player->stateFlags1 & PLAYER_STATE1_23) || (this->actor.depthInWater > -40.0f)) { if (this->collider.base.atFlags & AT_HIT) { this->collider.base.atFlags &= ~AT_HIT; Actor_PlaySfx(&this->actor, NA_SE_EN_KAICHO_ATTACK); diff --git a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c index cca866a47..45f993da0 100644 --- a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c +++ b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c @@ -272,8 +272,8 @@ void EnEncount1_SpawnStalchildOrWolfos(EnEncount1* this, PlayState* play) { if (floorY <= BGCHECK_Y_MIN) { break; } - if ((player->actor.yDistToWater != BGCHECK_Y_MIN) && - (floorY < (player->actor.world.pos.y - player->actor.yDistToWater))) { + if ((player->actor.depthInWater != BGCHECK_Y_MIN) && + (floorY < (player->actor.world.pos.y - player->actor.depthInWater))) { break; } spawnPos.y = floorY; diff --git a/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c b/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c index f36ea3256..ea7d24224 100644 --- a/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c +++ b/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c @@ -249,9 +249,9 @@ void EnExRuppy_Sink(EnExRuppy* this, PlayState* play) { Vec3f pos; s32 pad; - if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.yDistToWater > 15.0f)) { + if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.depthInWater > 15.0f)) { pos = this->actor.world.pos; - pos.y += this->actor.yDistToWater; + pos.y += this->actor.depthInWater; this->actor.velocity.y = -1.0f; this->actor.gravity = -0.2f; EffectSsGSplash_Spawn(play, &pos, NULL, NULL, 0, 800); diff --git a/src/overlays/actors/ovl_En_Insect/z_en_insect.c b/src/overlays/actors/ovl_En_Insect/z_en_insect.c index 8d2bd997f..9140aef7b 100644 --- a/src/overlays/actors/ovl_En_Insect/z_en_insect.c +++ b/src/overlays/actors/ovl_En_Insect/z_en_insect.c @@ -477,7 +477,7 @@ void EnInsect_WalkOnWater(EnInsect* this, PlayState* play) { Math_StepToF(&this->actor.speed, 0.0f, 0.02f); } this->actor.velocity.y = 0.0f; - this->actor.world.pos.y += this->actor.yDistToWater; + this->actor.world.pos.y += this->actor.depthInWater; this->skelAnime.playSpeed = CLAMP(this->actionTimer * 0.018f, 0.1f, 1.9f); SkelAnime_Update(&this->skelAnime); @@ -500,7 +500,7 @@ void EnInsect_WalkOnWater(EnInsect* this, PlayState* play) { if (Rand_ZeroOne() < 0.03f) { ripplePoint.x = this->actor.world.pos.x; - ripplePoint.y = this->actor.world.pos.y + this->actor.yDistToWater; + ripplePoint.y = this->actor.world.pos.y + this->actor.depthInWater; ripplePoint.z = this->actor.world.pos.z; EffectSsGRipple_Spawn(play, &ripplePoint, 20, 100, 4); EffectSsGRipple_Spawn(play, &ripplePoint, 40, 200, 8); @@ -537,7 +537,7 @@ void EnInsect_Drown(EnInsect* this, PlayState* play) { this->actor.shape.rot.y += 200; Actor_SetScale(&this->actor, CLAMP_MIN(this->actor.scale.x - 0.00005f, 0.001f)); - if (this->actor.yDistToWater > 5.0f && this->actor.yDistToWater < 30.0f && Rand_ZeroOne() < 0.3f) { + if (this->actor.depthInWater > 5.0f && this->actor.depthInWater < 30.0f && Rand_ZeroOne() < 0.3f) { EffectSsBubble_Spawn(play, &this->actor.world.pos, -5.0f, 5.0f, 5.0f, (Rand_ZeroOne() * 0.04f) + 0.02f); } diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c index 2fbcf5fe6..3caf9062a 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -443,7 +443,7 @@ void EnIshi_Fly(EnIshi* this, PlayState* play) { } if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER_TOUCH) { contactPos.x = this->actor.world.pos.x; - contactPos.y = this->actor.world.pos.y + this->actor.yDistToWater; + contactPos.y = this->actor.world.pos.y + this->actor.depthInWater; contactPos.z = this->actor.world.pos.z; EffectSsGSplash_Spawn(play, &contactPos, NULL, NULL, 0, 350); if (type == ROCK_SMALL) { diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c index dd9aecd4e..d86ae429a 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -440,7 +440,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { f32 tempX; f32 tempY; f32 tempZ; - f32 tempYDistToWater; + f32 tempDepthInWater; Actor_MoveXZGravity(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 30.0f, 50.0f, @@ -450,7 +450,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { tempY = this->actor.world.pos.y; tempZ = this->actor.world.pos.z; tempBgFlags = this->actor.bgCheckFlags; - tempYDistToWater = this->actor.yDistToWater; + tempDepthInWater = this->actor.depthInWater; this->actor.world.pos.z += ((this->actor.world.pos.y - this->actor.floorHeight) * -50.0f) / 100.0f; Actor_UpdateBgCheckInfo(play, &this->actor, 10.0f, 10.0f, 50.0f, UPDBGCHECKINFO_FLAG_2); @@ -460,7 +460,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { this->actor.world.pos.y = tempY; this->actor.world.pos.z = tempZ; this->actor.bgCheckFlags = tempBgFlags; - this->actor.yDistToWater = tempYDistToWater; + this->actor.depthInWater = tempDepthInWater; PRINTF(VT_RST); @@ -511,13 +511,13 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { this->actionState = ENKANBAN_WATER; Actor_PlaySfx(&this->actor, NA_SE_EV_BOMB_DROP_WATER); this->bounceX = this->bounceZ = 0; - this->actor.world.pos.y += this->actor.yDistToWater; + this->actor.world.pos.y += this->actor.depthInWater; EffectSsGSplash_Spawn(play, &this->actor.world.pos, NULL, NULL, 0, (this->partCount * 20) + 300); EffectSsGRipple_Spawn(play, &this->actor.world.pos, 150, 650, 0); EffectSsGRipple_Spawn(play, &this->actor.world.pos, 300, 800, 5); this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; - PRINTF(" WAT Y = %f\n", this->actor.yDistToWater); + PRINTF(" WAT Y = %f\n", this->actor.depthInWater); PRINTF(" POS Y = %f\n", this->actor.world.pos.y); PRINTF(" GROUND Y = %f\n", this->actor.floorHeight); break; diff --git a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c index 3e6bbb6c7..c5924df2b 100644 --- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c +++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c @@ -394,7 +394,7 @@ void EnKusa_Fall(EnKusa* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER_TOUCH) { contactPos.x = this->actor.world.pos.x; - contactPos.y = this->actor.world.pos.y + this->actor.yDistToWater; + contactPos.y = this->actor.world.pos.y + this->actor.depthInWater; contactPos.z = this->actor.world.pos.z; EffectSsGSplash_Spawn(play, &contactPos, NULL, NULL, 0, 400); EffectSsGRipple_Spawn(play, &contactPos, 150, 650, 0); diff --git a/src/overlays/actors/ovl_En_Mk/z_en_mk.c b/src/overlays/actors/ovl_En_Mk/z_en_mk.c index d65a6f037..5b8e26d91 100644 --- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c +++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c @@ -314,7 +314,7 @@ void EnMk_Update(Actor* thisx, PlayState* play) { if (player->currentBoots == PLAYER_BOOTS_IRON) { this->flags |= 8; } else if (player->stateFlags2 & PLAYER_STATE2_10) { - swimFlag = player->actor.yDistToWater; + swimFlag = player->actor.depthInWater; if (swimFlag > 0) { if (swimFlag >= 320) { diff --git a/src/overlays/actors/ovl_En_Niw/z_en_niw.c b/src/overlays/actors/ovl_En_Niw/z_en_niw.c index 09963b6e8..e24f78be8 100644 --- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -723,13 +723,13 @@ void func_80AB6F04(EnNiw* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { this->actor.gravity = 0.0f; - if (this->actor.yDistToWater > 15.0f) { + if (this->actor.depthInWater > 15.0f) { this->actor.world.pos.y += 2.0f; } if (this->timer4 == 0) { this->timer4 = 30; Math_Vec3f_Copy(&pos, &this->actor.world.pos); - pos.y += this->actor.yDistToWater; + pos.y += this->actor.depthInWater; EffectSsGRipple_Spawn(play, &pos, 100, 500, 30); } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { @@ -1014,12 +1014,12 @@ void EnNiw_Update(Actor* thisx, PlayState* play) { return; } - if ((thisx->bgCheckFlags & BGCHECKFLAG_WATER) && thisx->yDistToWater > 15.0f && this->actionFunc != func_80AB6F04 && + if ((thisx->bgCheckFlags & BGCHECKFLAG_WATER) && thisx->depthInWater > 15.0f && this->actionFunc != func_80AB6F04 && thisx->params != 0xD && thisx->params != 0xE && thisx->params != 0xA) { thisx->velocity.y = 0.0f; thisx->gravity = 0.0f; Math_Vec3f_Copy(&pos, &thisx->world.pos); - pos.y += thisx->yDistToWater; + pos.y += thisx->depthInWater; this->timer4 = 30; EffectSsGSplash_Spawn(play, &pos, NULL, NULL, 0, 400); this->timer5 = 0; diff --git a/src/overlays/actors/ovl_En_Ny/z_en_ny.c b/src/overlays/actors/ovl_En_Ny/z_en_ny.c index fd1332245..38e717dd6 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -152,7 +152,7 @@ void EnNy_Destroy(Actor* thisx, PlayState* play) { void func_80ABCD40(EnNy* this) { f32 temp; - temp = (this->actor.yDistToWater > 0.0f) ? 0.7f : 1.0f; + temp = (this->actor.depthInWater > 0.0f) ? 0.7f : 1.0f; this->unk_1E8 = 2.8f * temp; } @@ -224,7 +224,7 @@ void EnNy_Move(EnNy* this, PlayState* play) { f32 yawDiff; s32 stoneTimer; - if (!(this->unk_1F0 < this->actor.yDistToWater)) { + if (!(this->unk_1F0 < this->actor.depthInWater)) { func_8002F974(&this->actor, NA_SE_EN_NYU_MOVE - SFX_FLAG); } func_80ABCD40(this); @@ -238,7 +238,7 @@ void EnNy_Move(EnNy* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; yawDiff = Math_FAtan2F(this->actor.yDistToPlayer, this->actor.xzDistToPlayer); this->actor.speed = fabsf(cosf(yawDiff) * this->unk_1E8); - if (this->unk_1F0 < this->actor.yDistToWater) { + if (this->unk_1F0 < this->actor.depthInWater) { this->unk_1EC = sinf(yawDiff) * this->unk_1E8; } } @@ -252,7 +252,7 @@ void EnNy_TurnToStone(EnNy* this, PlayState* play) { if (phi_f0 <= 0.25f) { phi_f0 = 0.25f; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - if (!(this->unk_1F0 < this->actor.yDistToWater)) { + if (!(this->unk_1F0 < this->actor.depthInWater)) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); } this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH; @@ -346,9 +346,9 @@ s32 EnNy_CollisionCheck(EnNy* this, PlayState* play) { void func_80ABD3B8(EnNy* this, f32 arg1, f32 arg2) { if (this->unk_1E8 == 0.0f) { this->actor.gravity = -0.4f; - } else if (!(arg1 < this->actor.yDistToWater)) { + } else if (!(arg1 < this->actor.depthInWater)) { this->actor.gravity = -0.4f; - } else if (arg2 < this->actor.yDistToWater) { + } else if (arg2 < this->actor.depthInWater) { this->actor.gravity = 0.0; if (this->unk_1EC < this->actor.velocity.y) { this->actor.velocity.y -= 0.4f; @@ -418,7 +418,7 @@ void EnNy_SetupDie(EnNy* this, PlayState* play) { Vec3f effectAccel = { 0.0f, 0.1f, 0.0f }; if (this->timer >= 2) { - if (this->actor.yDistToWater > 0.0f) { + if (this->actor.depthInWater > 0.0f) { for (i = 0; i < 10; i++) { effectPos.x = Rand_CenteredFloat(30.0f) + this->actor.world.pos.x; effectPos.y = Rand_CenteredFloat(30.0f) + this->actor.world.pos.y; @@ -453,7 +453,7 @@ void EnNy_SetupDie(EnNy* this, PlayState* play) { void EnNy_Die(EnNy* this, PlayState* play) { s32 i; - if (this->actor.yDistToWater > 0.0f) { + if (this->actor.depthInWater > 0.0f) { for (i = 0; i < 8; i += 1) { this->unk_1F8[i].x += this->unk_1F8[i + 8].x; this->unk_1F8[i].y += this->unk_1F8[i + 8].y; diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c index b9df80354..792457dc5 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -429,7 +429,7 @@ void EnRu1_SpawnRipple(EnRu1* this, PlayState* play, s16 radiusMax, s16 life) { Actor* thisx = &this->actor; pos.x = this->actor.world.pos.x; - pos.y = this->actor.world.pos.y + this->actor.yDistToWater; + pos.y = this->actor.world.pos.y + this->actor.depthInWater; pos.z = this->actor.world.pos.z; EffectSsGRipple_Spawn(play, &pos, 100, radiusMax, life); } @@ -452,7 +452,7 @@ void EnRu1_SpawnSplash(EnRu1* this, PlayState* play) { Vec3f pos; pos.x = this->actor.world.pos.x; - pos.y = this->actor.world.pos.y + this->actor.yDistToWater; + pos.y = this->actor.world.pos.y + this->actor.depthInWater; pos.z = this->actor.world.pos.z; EffectSsGSplash_Spawn(play, &pos, NULL, NULL, 1, 0); @@ -1230,7 +1230,7 @@ s32 func_80AED624(EnRu1* this, PlayState* play) { Actor_Kill(&this->actor); return false; } else if (((this->roomNum1 != curRoomNum) || (this->roomNum2 != curRoomNum)) && - (this->actor.yDistToWater > kREG(16) + 50.0f) && (this->action != 33)) { + (this->actor.depthInWater > kREG(16) + 50.0f) && (this->action != 33)) { this->action = 33; this->drawConfig = 2; this->alpha = 0xFF; @@ -1460,7 +1460,7 @@ void func_80AEE050(EnRu1* this) { this->unk_350 = 1; func_80AEE02C(this); this->unk_35C = 0; - this->unk_358 = (this->actor.yDistToWater - 10.0f) * 0.5f; + this->unk_358 = (this->actor.depthInWater - 10.0f) * 0.5f; this->unk_354 = this->actor.world.pos.y + thisx->unk_358; // thisx only used here } else { this->actor.gravity = 0.0f; @@ -1593,7 +1593,7 @@ void func_80AEE568(EnRu1* this, PlayState* play) { return; } - if (this->actor.yDistToWater > 0.0f) { + if (this->actor.depthInWater > 0.0f) { this->action = 29; this->unk_350 = 0; } diff --git a/src/overlays/actors/ovl_En_Sb/z_en_sb.c b/src/overlays/actors/ovl_En_Sb/z_en_sb.c index 5c3499be2..df531b2b7 100644 --- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c +++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c @@ -135,7 +135,7 @@ void EnSb_Destroy(Actor* thisx, PlayState* play) { void EnSb_SpawnBubbles(PlayState* play, EnSb* this) { s32 i; - if (this->actor.yDistToWater > 0) { + if (this->actor.depthInWater > 0) { for (i = 0; i < 10; i++) { EffectSsBubble_Spawn(play, &this->actor.world.pos, 10.0f, 10.0f, 30.0f, 0.25f); } @@ -166,7 +166,7 @@ void EnSb_SetupWaitOpen(EnSb* this) { void EnSb_SetupLunge(EnSb* this) { f32 frameCount = Animation_GetLastFrame(&object_sb_Anim_000124); - f32 playbackSpeed = this->actor.yDistToWater > 0.0f ? 1.0f : 0.0f; + f32 playbackSpeed = this->actor.depthInWater > 0.0f ? 1.0f : 0.0f; Animation_Change(&this->skelAnime, &object_sb_Anim_000124, playbackSpeed, 0.0f, frameCount, ANIMMODE_ONCE, 0); this->behavior = SHELLBLADE_LUNGE; @@ -189,7 +189,7 @@ void EnSb_SetupCooldown(EnSb* this, s32 changeSpeed) { } this->behavior = SHELLBLADE_WAIT_CLOSED; if (changeSpeed) { - if (this->actor.yDistToWater > 0.0f) { + if (this->actor.depthInWater > 0.0f) { this->actor.speed = -5.0f; if (this->actor.velocity.y < 0.0f) { this->actor.velocity.y = 2.1f; @@ -254,7 +254,7 @@ void EnSb_TurnAround(EnSb* this, PlayState* play) { if (this->actor.shape.rot.y == invertedYaw) { this->actor.world.rot.y = this->attackYaw; - if (this->actor.yDistToWater > 0.0f) { + if (this->actor.depthInWater > 0.0f) { this->actor.velocity.y = 3.0f; this->actor.speed = 5.0f; this->actor.gravity = -0.35f; @@ -274,7 +274,7 @@ void EnSb_TurnAround(EnSb* this, PlayState* play) { void EnSb_Lunge(EnSb* this, PlayState* play) { Math_StepToF(&this->actor.speed, 0.0f, 0.2f); if ((this->actor.velocity.y <= -0.1f) || (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH)) { - if (!(this->actor.yDistToWater > 0.0f)) { + if (!(this->actor.depthInWater > 0.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); } this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH; @@ -295,7 +295,7 @@ void EnSb_Bounce(EnSb* this, PlayState* play) { if (this->bouncesLeft != 0) { this->bouncesLeft--; this->timer = 1; - if (this->actor.yDistToWater > 0.0f) { + if (this->actor.depthInWater > 0.0f) { this->actor.velocity.y = 3.0f; this->actor.speed = 5.0f; this->actor.gravity = -0.35f; @@ -445,7 +445,7 @@ void EnSb_Update(Actor* thisx, PlayState* play) { s32 pad; if (this->isDead) { - if (this->actor.yDistToWater > 0.0f) { + if (this->actor.depthInWater > 0.0f) { this->actor.params = 4; } else { this->actor.params = 1; diff --git a/src/overlays/actors/ovl_En_Skb/z_en_skb.c b/src/overlays/actors/ovl_En_Skb/z_en_skb.c index d6cfb0bbc..c484ee206 100644 --- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c +++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c @@ -450,7 +450,7 @@ void EnSkb_CheckDamage(EnSkb* this, PlayState* play) { if ((this->actionState != SKB_BEHAVIOR_DYING) && (this->actor.bgCheckFlags & (BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH)) && - (this->actor.yDistToWater >= 40.0f)) { + (this->actor.depthInWater >= 40.0f)) { this->actor.colChkInfo.health = 0; this->setColliderAT = false; EnSkb_SetupDeath(this, play); diff --git a/src/overlays/actors/ovl_En_Tite/z_en_tite.c b/src/overlays/actors/ovl_En_Tite/z_en_tite.c index adf19950a..f9ab17127 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -234,7 +234,7 @@ void EnTite_Idle(EnTite* this, PlayState* play) { // Float on water surface this->actor.gravity = 0.0f; Math_SmoothStepToF(&this->actor.velocity.y, 0.0f, 1.0f, 2.0f, 0.0f); - Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.world.pos.y + this->actor.yDistToWater, 1.0f, 2.0f, + Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.world.pos.y + this->actor.depthInWater, 1.0f, 2.0f, 0.0f); } else { this->actor.gravity = -1.0f; @@ -278,7 +278,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { } Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_JUMP); } else { - this->actor.world.pos.y += this->actor.yDistToWater; + this->actor.world.pos.y += this->actor.depthInWater; Actor_PlaySfx(&this->actor, NA_SE_EN_TEKU_JUMP_WATER); } this->actor.velocity.y = 8.0f; @@ -304,7 +304,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { if (this->actor.velocity.y < -8.0f) { Vec3f ripplePos = this->actor.world.pos; - ripplePos.y += this->actor.yDistToWater; + ripplePos.y += this->actor.depthInWater; this->vAttackState++; // TEKTITE_SUBMERGED this->actor.velocity.y *= 0.75f; attackState = this->vAttackState; @@ -330,7 +330,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { break; case TEKTITE_SUBMERGED: // Check if floated to surface - if (this->actor.yDistToWater == 0.0f) { + if (this->actor.depthInWater == 0.0f) { this->vAttackState = TEKTITE_LANDED; attackState = this->vAttackState; } @@ -388,7 +388,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { // Float up to water surface Math_SmoothStepToF(&this->actor.velocity.y, 0.0f, 1.0f, 2.0f, 0.0f); Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); - Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.world.pos.y + this->actor.yDistToWater, 1.0f, 2.0f, + Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.world.pos.y + this->actor.depthInWater, 1.0f, 2.0f, 0.0f); break; } @@ -447,7 +447,7 @@ void EnTite_TurnTowardPlayer(EnTite* this, PlayState* play) { } // Calculate turn velocity and animation speed based on angle to player if ((this->actor.params == TEKTITE_BLUE) && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER)) { - this->actor.world.pos.y += this->actor.yDistToWater; + this->actor.world.pos.y += this->actor.depthInWater; } angleToPlayer = Actor_WorldYawTowardActor(&this->actor, &GET_PLAYER(play)->actor) - this->actor.world.rot.y; if (angleToPlayer > 0) { @@ -546,7 +546,7 @@ void EnTite_MoveTowardPlayer(EnTite* this, PlayState* play) { } else if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER_TOUCH) { Vec3f ripplePos = this->actor.world.pos; this->actor.bgCheckFlags &= ~BGCHECKFLAG_WATER_TOUCH; - ripplePos.y += this->actor.yDistToWater; + ripplePos.y += this->actor.depthInWater; this->actor.gravity = 0.0f; this->actor.velocity.y *= 0.75f; EffectSsGRipple_Spawn(play, &ripplePos, 0, 500, 0); @@ -554,9 +554,9 @@ void EnTite_MoveTowardPlayer(EnTite* this, PlayState* play) { } else { // If submerged, float to surface Math_SmoothStepToF(&this->actor.velocity.y, 0.0f, 1.0f, 2.0f, 0.0f); - Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.world.pos.y + this->actor.yDistToWater, 1.0f, 2.0f, + Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.world.pos.y + this->actor.depthInWater, 1.0f, 2.0f, 0.0f); - if (this->actor.yDistToWater != 0.0f) { + if (this->actor.depthInWater != 0.0f) { // Do not change state until tekite has floated to surface return; } @@ -633,7 +633,7 @@ void EnTite_Recoil(EnTite* this, PlayState* play) { } else { this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; - this->actor.world.pos.y += this->actor.yDistToWater; + this->actor.world.pos.y += this->actor.depthInWater; } } @@ -704,7 +704,7 @@ void EnTite_Stunned(EnTite* this, PlayState* play) { } else { this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; - this->actor.world.pos.y += this->actor.yDistToWater; + this->actor.world.pos.y += this->actor.depthInWater; } } // Play sound effect and spawn dirt effects upon landing diff --git a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c index 45d19e4f2..9d40aa022 100644 --- a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c +++ b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c @@ -133,7 +133,7 @@ void EnTuboTrap_SpawnEffectsInWater(EnTuboTrap* this, PlayState* play) { Vec3f* actorPos = &this->actor.world.pos; pos = *actorPos; - pos.y += this->actor.yDistToWater; + pos.y += this->actor.depthInWater; EffectSsGSplash_Spawn(play, &pos, NULL, NULL, 0, 400); @@ -168,7 +168,7 @@ void EnTuboTrap_HandleImpact(EnTuboTrap* this, PlayState* play) { Player* player = GET_PLAYER(play); Player* player2 = GET_PLAYER(play); - if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.yDistToWater > 15.0f)) { + if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.depthInWater > 15.0f)) { EnTuboTrap_SpawnEffectsInWater(this, play); SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 40, NA_SE_EV_BOMB_DROP_WATER); EnTuboTrap_DropCollectible(this, play); diff --git a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c index 693e2796c..ecf2ffb55 100644 --- a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c +++ b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c @@ -388,7 +388,7 @@ void func_80B32E34(EnWeiyer* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 2, 0x200, 0x80); - if ((player->actor.yDistToWater < 50.0f) && (this->actor.yDistToWater < 20.0f) && + if ((player->actor.depthInWater < 50.0f) && (this->actor.depthInWater < 20.0f) && Actor_IsFacingPlayer(&this->actor, 0x2000)) { func_80B327D8(this); } @@ -523,7 +523,7 @@ void func_80B3349C(EnWeiyer* this, PlayState* play) { if (this->unk_194 == -1) { if (phi_a0 || (this->collider.base.atFlags & AT_HIT)) { func_80B32538(this); - } else if (this->actor.yDistToWater < 0.0f) { + } else if (this->actor.depthInWater < 0.0f) { this->unk_194 = 10; EffectSsGSplash_Spawn(play, &this->actor.world.pos, NULL, NULL, 1, 400); Actor_PlaySfx(&this->actor, NA_SE_EN_OCTAROCK_JUMP); @@ -584,7 +584,7 @@ void EnWeiyer_Update(Actor* thisx, PlayState* play) { EnWeiyer* this = (EnWeiyer*)thisx; s32 pad; - this->actor.home.pos.y = this->actor.yDistToWater + this->actor.world.pos.y - 5.0f; + this->actor.home.pos.y = this->actor.depthInWater + this->actor.world.pos.y - 5.0f; func_80B3368C(this, play); this->actionFunc(this, play); this->actor.world.rot.y = this->actor.shape.rot.y; diff --git a/src/overlays/actors/ovl_En_Zo/z_en_zo.c b/src/overlays/actors/ovl_En_Zo/z_en_zo.c index e71af51b6..8b6b59123 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -60,7 +60,7 @@ void EnZo_SpawnBubble(EnZo* this, Vec3f* pos) { continue; } - waterSurface = this->actor.world.pos.y + this->actor.yDistToWater; + waterSurface = this->actor.world.pos.y + this->actor.depthInWater; if (!(waterSurface <= pos->y)) { effect->type = ENZO_EFFECT_BUBBLE; @@ -127,7 +127,7 @@ void EnZo_UpdateEffectsBubbles(EnZo* this) { effect->pos.y += effect->vel.y; // Bubbles turn into ripples when they reach the surface - waterSurface = this->actor.world.pos.y + this->actor.yDistToWater; + waterSurface = this->actor.world.pos.y + this->actor.depthInWater; if (waterSurface <= effect->pos.y) { effect->type = ENZO_EFFECT_NONE; effect->pos.y = waterSurface; @@ -158,7 +158,7 @@ void EnZo_UpdateEffectsSplashes(EnZo* this) { } // Splash particles turn into ripples when they hit the surface - waterSurface = this->actor.world.pos.y + this->actor.yDistToWater; + waterSurface = this->actor.world.pos.y + this->actor.depthInWater; if (effect->pos.y < waterSurface) { effect->type = ENZO_EFFECT_NONE; effect->pos.y = waterSurface; @@ -272,7 +272,7 @@ void EnZo_TreadWaterRipples(EnZo* this, f32 scale, f32 targetScale, u8 alpha) { Vec3f pos = { 0.0f, 0.0f, 0.0f }; pos.x = this->actor.world.pos.x; - pos.y = this->actor.world.pos.y + this->actor.yDistToWater; + pos.y = this->actor.world.pos.y + this->actor.depthInWater; pos.z = this->actor.world.pos.z; EnZo_SpawnRipple(this, &pos, scale, targetScale, alpha); } @@ -351,7 +351,7 @@ void EnZo_SpawnSplashes(EnZo* this) { pos = this->actor.world.pos; pos.x += vel.x * 6.0f; pos.z += vel.z * 6.0f; - pos.y += this->actor.yDistToWater; + pos.y += this->actor.depthInWater; EnZo_SpawnSplash(this, &pos, &vel, 0.08f); } } @@ -527,7 +527,7 @@ s32 EnZo_PlayerInProximity(EnZo* this, PlayState* play) { f32 hDist; surfacePos.x = this->actor.world.pos.x; - surfacePos.y = this->actor.world.pos.y + this->actor.yDistToWater; + surfacePos.y = this->actor.world.pos.y + this->actor.depthInWater; surfacePos.z = this->actor.world.pos.z; hDist = Math_Vec3f_DistXZ(&surfacePos, &player->actor.world.pos); @@ -596,7 +596,7 @@ void EnZo_Init(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, this->collider.dim.height * 0.5f, this->collider.dim.radius, 0.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2); - if (this->actor.yDistToWater < 54.0f || (this->actor.params & 0x3F) == 8) { + if (this->actor.depthInWater < 54.0f || (this->actor.params & 0x3F) == 8) { this->actor.shape.shadowDraw = ActorShadow_DrawCircle; this->actor.shape.shadowScale = 24.0f; Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENZO_ANIM_1); @@ -642,7 +642,7 @@ void EnZo_Submerged(EnZo* this, PlayState* play) { } void EnZo_Surface(EnZo* this, PlayState* play) { - if (this->actor.yDistToWater < 54.0f) { + if (this->actor.depthInWater < 54.0f) { Actor_PlaySfx(&this->actor, NA_SE_EV_OUT_OF_WATER); EnZo_SpawnSplashes(this); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENZO_ANIM_3); @@ -650,7 +650,7 @@ void EnZo_Surface(EnZo* this, PlayState* play) { this->actionFunc = EnZo_TreadWater; this->actor.velocity.y = 0.0f; this->alpha = 255.0f; - } else if (this->actor.yDistToWater < 80.0f) { + } else if (this->actor.depthInWater < 80.0f) { Math_ApproachF(&this->actor.velocity.y, 2.0f, 0.4f, 0.6f); Math_ApproachF(&this->alpha, 255.0f, 0.3f, 10.0f); } @@ -665,7 +665,7 @@ void EnZo_TreadWater(EnZo* this, PlayState* play) { } EnZo_SetAnimation(this); - Math_ApproachF(&this->actor.velocity.y, this->actor.yDistToWater < 54.0f ? -0.6f : 0.6f, 0.3f, 0.2f); + Math_ApproachF(&this->actor.velocity.y, this->actor.depthInWater < 54.0f ? -0.6f : 0.6f, 0.3f, 0.2f); if (this->rippleTimer != 0) { this->rippleTimer--; if ((this->rippleTimer == 3) || (this->rippleTimer == 6)) { @@ -705,7 +705,7 @@ void EnZo_Dive(EnZo* this, PlayState* play) { return; } - if (this->actor.yDistToWater > 80.0f || this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { + if (this->actor.depthInWater > 80.0f || this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { Math_ApproachF(&this->actor.velocity.y, -1.0f, 0.4f, 0.6f); Math_ApproachF(&this->alpha, 0.0f, 0.3f, 10.0f); } diff --git a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c index c7752a489..63b9fb117 100644 --- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c +++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c @@ -152,7 +152,7 @@ void ObjKibako_WaterBreak(ObjKibako* this, PlayState* play) { Vec3f velocity; pos = *breakPos; - pos.y += this->actor.yDistToWater; + pos.y += this->actor.depthInWater; EffectSsGSplash_Spawn(play, &pos, NULL, NULL, 0, 500); for (i = 0, angle = 0; i < 12; i++, angle += 0x4E20) { @@ -187,7 +187,7 @@ void ObjKibako_Idle(ObjKibako* this, PlayState* play) { if (Actor_HasParent(&this->actor, play)) { ObjKibako_SetupHeld(this); - } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.yDistToWater > 19.0f)) { + } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.depthInWater > 19.0f)) { ObjKibako_WaterBreak(this, play); SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK); ObjKibako_SpawnCollectible(this, play); diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c index e089a1148..7c05c22fa 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -196,7 +196,7 @@ void ObjTsubo_WaterBreak(ObjTsubo* this, PlayState* play) { s32 phi_s0; s32 i; - pos.y += this->actor.yDistToWater; + pos.y += this->actor.depthInWater; EffectSsGSplash_Spawn(play, &pos, NULL, NULL, 0, 400); for (i = 0, angle = 0; i < 15; i++, angle += 0x4E20) { f32 sins = Math_SinS(angle); @@ -240,7 +240,7 @@ void ObjTsubo_Idle(ObjTsubo* this, PlayState* play) { if (Actor_HasParent(&this->actor, play)) { ObjTsubo_SetupLiftedUp(this); - } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.yDistToWater > 15.0f)) { + } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.depthInWater > 15.0f)) { ObjTsubo_WaterBreak(this, play); SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EV_POT_BROKEN); ObjTsubo_SpawnCollectible(this, play); diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 13632f4f1..8946f8f9f 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -4585,7 +4585,7 @@ s32 Player_ActionChange_12(Player* this, PlayState* play) { sp3C = 0; if (func_808332B8(this)) { - if (this->actor.yDistToWater < 50.0f) { + if (this->actor.depthInWater < 50.0f) { if ((this->ledgeClimbType < PLAYER_LEDGE_CLIMB_2) || (this->yDistToLedge > this->ageProperties->unk_10)) { return 0; @@ -5317,7 +5317,7 @@ s32 func_8083A6AC(Player* this, PlayState* play) { //! @bug `floorPitch` and `floorPitchAlt` are cleared to 0 before this function is called, because the player //! left the ground. The angles will always be zero and therefore will always pass these checks. //! The intention seems to be to prevent ledge hanging or vine grabbing when walking off of a steep enough slope. - if ((this->actor.yDistToWater < -80.0f) && (ABS(this->floorPitch) < 0xAAA) && (ABS(this->floorPitchAlt) < 0xAAA)) { + if ((this->actor.depthInWater < -80.0f) && (ABS(this->floorPitch) < 0xAAA) && (ABS(this->floorPitchAlt) < 0xAAA)) { CollisionPoly* sp84; s32 sp80; Vec3f sp74; @@ -5816,7 +5816,7 @@ s32 func_8083B8F4(Player* this, PlayState* play) { if (!(this->stateFlags1 & (PLAYER_STATE1_11 | PLAYER_STATE1_23)) && Camera_CheckValidMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_FIRST_PERSON)) { if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || - (func_808332B8(this) && (this->actor.yDistToWater < this->ageProperties->unk_2C))) { + (func_808332B8(this) && (this->actor.depthInWater < this->ageProperties->unk_2C))) { this->unk_6AD = 1; return 1; } @@ -6131,7 +6131,7 @@ s32 func_8083C6B8(PlayState* play, Player* this) { if (Player_GetBottleHeld(this) >= 0) { Player_SetupAction(play, this, Player_Action_8084ECA4, 0); - if (this->actor.yDistToWater > 12.0f) { + if (this->actor.depthInWater > 12.0f) { this->av2.actionVar2 = 1; } @@ -6376,7 +6376,7 @@ s32 func_8083D12C(PlayState* play, Player* this, Input* arg2) { if ((this->stateFlags1 & PLAYER_STATE1_10) || (this->stateFlags2 & PLAYER_STATE2_10)) { if (this->actor.velocity.y > 0.0f) { - if (this->actor.yDistToWater < this->ageProperties->unk_30) { + if (this->actor.depthInWater < this->ageProperties->unk_30) { this->stateFlags2 &= ~PLAYER_STATE2_10; @@ -6434,7 +6434,7 @@ void func_8083D36C(PlayState* play, Player* this) { } } - if (!(this->stateFlags1 & PLAYER_STATE1_27) || (this->actor.yDistToWater < this->ageProperties->unk_2C)) { + if (!(this->stateFlags1 & PLAYER_STATE1_27) || (this->actor.depthInWater < this->ageProperties->unk_2C)) { if (func_8083CFA8(play, this, this->actor.velocity.y, 500)) { Player_PlaySfx(this, NA_SE_EV_DIVE_INTO_WATER); @@ -6453,7 +6453,7 @@ void func_8083D36C(PlayState* play, Player* this) { } void func_8083D53C(PlayState* play, Player* this) { - if (this->actor.yDistToWater < this->ageProperties->unk_2C) { + if (this->actor.depthInWater < this->ageProperties->unk_2C) { Audio_SetBaseFilter(0); this->underwaterTimer = 0; } else { @@ -6464,7 +6464,7 @@ void func_8083D53C(PlayState* play, Player* this) { } if ((Player_Action_80845668 != this->actionFunc) && (Player_Action_8084BDFC != this->actionFunc)) { - if (this->ageProperties->unk_2C < this->actor.yDistToWater) { + if (this->ageProperties->unk_2C < this->actor.depthInWater) { if (!(this->stateFlags1 & PLAYER_STATE1_27) || (!((this->currentBoots == PLAYER_BOOTS_IRON) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) && (Player_Action_8084E30C != this->actionFunc) && (Player_Action_8084E368 != this->actionFunc) && @@ -6474,7 +6474,7 @@ void func_8083D53C(PlayState* play, Player* this) { func_8083D36C(play, this); return; } - } else if ((this->stateFlags1 & PLAYER_STATE1_27) && (this->actor.yDistToWater < this->ageProperties->unk_24)) { + } else if ((this->stateFlags1 & PLAYER_STATE1_27) && (this->actor.depthInWater < this->ageProperties->unk_24)) { if ((this->skelAnime.moveFlags == 0) && (this->currentBoots != PLAYER_BOOTS_IRON)) { func_8083CD54(play, this, this->actor.shape.rot.y); } @@ -6534,7 +6534,7 @@ void func_8083D6EC(PlayState* play, Player* this) { } if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { - if (this->actor.yDistToWater < 50.0f) { + if (this->actor.depthInWater < 50.0f) { f32 temp4; temp4 = fabsf(this->bodyPartsPos[PLAYER_BODYPART_WAIST].x - this->unk_A88.x) + @@ -6549,20 +6549,20 @@ void func_8083D6EC(PlayState* play, Player* this) { this->unk_854 = 0.0f; ripplePos.x = (Rand_ZeroOne() * 10.0f) + this->actor.world.pos.x; - ripplePos.y = this->actor.world.pos.y + this->actor.yDistToWater; + ripplePos.y = this->actor.world.pos.y + this->actor.depthInWater; ripplePos.z = (Rand_ZeroOne() * 10.0f) + this->actor.world.pos.z; EffectSsGRipple_Spawn(play, &ripplePos, 100, 500, 0); if ((this->speedXZ > 4.0f) && !func_808332B8(this) && - ((this->actor.world.pos.y + this->actor.yDistToWater) < + ((this->actor.world.pos.y + this->actor.depthInWater) < this->bodyPartsPos[PLAYER_BODYPART_WAIST].y)) { func_8083CFA8(play, this, 20.0f, - (fabsf(this->speedXZ) * 50.0f) + (this->actor.yDistToWater * 5.0f)); + (fabsf(this->speedXZ) * 50.0f) + (this->actor.depthInWater * 5.0f)); } } } - if (this->actor.yDistToWater > 40.0f) { + if (this->actor.depthInWater > 40.0f) { s32 numBubbles = 0; s32 i; @@ -6971,7 +6971,7 @@ s32 Player_ActionChange_9(Player* this, PlayState* play) { s32 func_8083EC18(Player* this, PlayState* play, u32 wallFlags) { if (this->yDistToLedge >= 79.0f) { if (!(this->stateFlags1 & PLAYER_STATE1_27) || (this->currentBoots == PLAYER_BOOTS_IRON) || - (this->actor.yDistToWater < this->ageProperties->unk_2C)) { + (this->actor.depthInWater < this->ageProperties->unk_2C)) { s32 sp8C = (wallFlags & WALL_FLAG_3) ? 2 : 0; if ((sp8C != 0) || (wallFlags & WALL_FLAG_1) || @@ -10327,7 +10327,7 @@ void Player_UpdateInterface(PlayState* play, Player* this) { static u8 sDiveNumberDoActions[] = { DO_ACTION_1, DO_ACTION_2, DO_ACTION_3, DO_ACTION_4, DO_ACTION_5, DO_ACTION_6, DO_ACTION_7, DO_ACTION_8 }; - sp24 = (D_80854784[CUR_UPG_VALUE(UPG_SCALE)] - this->actor.yDistToWater) / 40.0f; + sp24 = (D_80854784[CUR_UPG_VALUE(UPG_SCALE)] - this->actor.depthInWater) / 40.0f; sp24 = CLAMP(sp24, 0, 7); doAction = sDiveNumberDoActions[sp24]; } else if (sp1C && !(this->stateFlags2 & PLAYER_STATE2_10)) { @@ -10397,7 +10397,7 @@ s32 Player_UpdateHoverBoots(Player* this) { canHoverOnGround = (this->currentBoots == PLAYER_BOOTS_HOVER) && - ((this->actor.yDistToWater >= 0.0f) || (func_80838144(sFloorType) >= 0) || func_8083816C(sFloorType)); + ((this->actor.depthInWater >= 0.0f) || (func_80838144(sFloorType) >= 0) || func_8083816C(sFloorType)); if (canHoverOnGround && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && (this->hoverBootsTimer != 0)) { this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; @@ -10500,7 +10500,7 @@ void Player_ProcessSceneCollision(PlayState* play, Player* this) { this->prevFloorSfxOffset = this->floorSfxOffset; if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { - if (this->actor.yDistToWater < 20.0f) { + if (this->actor.depthInWater < 20.0f) { this->floorSfxOffset = SURFACE_SFX_OFFSET_WATER_SHALLOW; } else { this->floorSfxOffset = SURFACE_SFX_OFFSET_WATER_DEEP; @@ -10529,7 +10529,7 @@ void Player_ProcessSceneCollision(PlayState* play, Player* this) { if (sConveyorSpeed != CONVEYOR_SPEED_DISABLED) { sIsFloorConveyor = SurfaceType_IsFloorConveyor(&play->colCtx, floorPoly, this->actor.floorBgId); - if ((!sIsFloorConveyor && (this->actor.yDistToWater > 20.0f) && + if ((!sIsFloorConveyor && (this->actor.depthInWater > 20.0f) && (this->currentBoots != PLAYER_BOOTS_IRON)) || (sIsFloorConveyor && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND))) { sConveyorYaw = CONVEYOR_DIRECTION_TO_BINANG( @@ -11112,7 +11112,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { if (this->currentBoots == PLAYER_BOOTS_IRON) { if (this->stateFlags1 & PLAYER_STATE1_27) { func_80832340(play, this); - if (this->ageProperties->unk_2C < this->actor.yDistToWater) { + if (this->ageProperties->unk_2C < this->actor.depthInWater) { this->stateFlags2 |= PLAYER_STATE2_10; } } @@ -11770,7 +11770,7 @@ void func_8084B000(Player* this) { f32 phi_f18; f32 phi_f16; f32 phi_f14; - f32 yDistToWater; + f32 depthInWater; phi_f14 = -5.0f; @@ -11779,7 +11779,7 @@ void func_8084B000(Player* this) { phi_f16 += 1.0f; } - if (this->actor.yDistToWater < phi_f16) { + if (this->actor.depthInWater < phi_f16) { if (this->actor.velocity.y <= 0.0f) { phi_f16 = 0.0f; } else { @@ -11800,8 +11800,8 @@ void func_8084B000(Player* this) { phi_f18 = phi_f16 + 0.1f; } - yDistToWater = this->actor.yDistToWater; - if (yDistToWater > 100.0f) { + depthInWater = this->actor.depthInWater; + if (depthInWater > 100.0f) { this->stateFlags2 |= PLAYER_STATE2_10; } } @@ -12977,7 +12977,7 @@ void Player_Action_8084DC48(Player* this, PlayState* play) { if (CHECK_BTN_ALL(sControlInput->cur.button, BTN_A) && !Player_ActionChange_2(this, play) && !(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && - (this->actor.yDistToWater < D_80854784[CUR_UPG_VALUE(UPG_SCALE)])) { + (this->actor.depthInWater < D_80854784[CUR_UPG_VALUE(UPG_SCALE)])) { func_8084DBC4(play, this, -2.0f); } else { this->av1.actionVar1++; @@ -12989,7 +12989,7 @@ void Player_Action_8084DC48(Player* this, PlayState* play) { if (this->unk_6C2 < 10000) { this->av1.actionVar1++; - this->av2.actionVar2 = this->actor.yDistToWater; + this->av2.actionVar2 = this->actor.depthInWater; Player_AnimChangeLoopSlowMorph(play, this, &gPlayerAnim_link_swimer_swim); } } else if (!func_8083D12C(play, this, sControlInput)) { From ff52c90928300e6e33f2c74c33e0f6ad8dcda170 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sun, 5 May 2024 15:45:45 -0700 Subject: [PATCH 13/29] Check baserom hash before decompression (#1952) --- tools/decompress_baserom.py | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/tools/decompress_baserom.py b/tools/decompress_baserom.py index 13b57265f..ba93d7931 100755 --- a/tools/decompress_baserom.py +++ b/tools/decompress_baserom.py @@ -173,9 +173,10 @@ def main(): uncompressed_path = baserom_dir / "baserom-decompressed.z64" dmadata_start = int((baserom_dir / "dmadata_start.txt").read_text(), 16) - correct_str_hash = (baserom_dir / "checksum.md5").read_text().split()[0] + compressed_str_hash = (baserom_dir / "checksum-compressed.md5").read_text().split()[0] + decompressed_str_hash = (baserom_dir / "checksum.md5").read_text().split()[0] - if check_existing_rom(uncompressed_path, correct_str_hash): + if check_existing_rom(uncompressed_path, decompressed_str_hash): print("Found valid baserom - exiting early") return @@ -211,17 +212,12 @@ def main(): file_content = per_version_fixes(file_content, version) - dma_entries = dmadata.read_dmadata(file_content, dmadata_start) - # Decompress - if any(dma_entry.is_compressed() for dma_entry in dma_entries): - print("Decompressing rom...") - is_zlib_compressed = version in {"ique-cn", "ique-zh"} - file_content = decompress_rom( - file_content, dmadata_start, dma_entries, is_zlib_compressed - ) - # Check to see if the ROM is a "vanilla" ROM str_hash = get_str_hash(file_content) + if version == "gc-eu-mq-dbg": + correct_str_hash = decompressed_str_hash + else: + correct_str_hash = compressed_str_hash if str_hash != correct_str_hash: print( f"Error: Expected a hash of {correct_str_hash} but got {str_hash}. The baserom has probably been tampered, find a new one" @@ -235,6 +231,23 @@ def main(): exit(1) + dma_entries = dmadata.read_dmadata(file_content, dmadata_start) + # Decompress + if any(dma_entry.is_compressed() for dma_entry in dma_entries): + print("Decompressing rom...") + is_zlib_compressed = version in {"ique-cn", "ique-zh"} + file_content = decompress_rom( + file_content, dmadata_start, dma_entries, is_zlib_compressed + ) + + # Double check the hash + str_hash = get_str_hash(file_content) + if str_hash != decompressed_str_hash: + print( + f"Error: Expected a hash of {decompressed_str_hash} after decompression but got {str_hash}!" + ) + exit(1) + # Write out our new ROM print(f"Writing new ROM {uncompressed_path}...") uncompressed_path.write_bytes(file_content) From 87a6e752429a7821ae81dcf8bffc6cdf13803084 Mon Sep 17 00:00:00 2001 From: cadmic Date: Tue, 7 May 2024 08:52:18 -0700 Subject: [PATCH 14/29] Remove Cygwin support (#1951) --- README.md | 2 +- docs/BUILDING_CYGWIN.md | 79 ----------------------------------------- 2 files changed, 1 insertion(+), 80 deletions(-) delete mode 100644 docs/BUILDING_CYGWIN.md diff --git a/README.md b/README.md index 27972882f..be57ba77c 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ For Windows 10 or 11, install WSL and a distribution by following this [WSL Installation Guide](https://docs.microsoft.com/en-us/windows/wsl/install). We recommend using Ubuntu 20.04 as the Linux distribution. -For older versions of Windows, install a Linux VM or refer to either [Cygwin](docs/BUILDING_CYGWIN.md) or [Docker](docs/BUILDING_DOCKER.md) instructions. +For older versions of Windows, install a Linux VM or refer to [Docker](docs/BUILDING_DOCKER.md) instructions. ### Linux (Native or under WSL / VM) diff --git a/docs/BUILDING_CYGWIN.md b/docs/BUILDING_CYGWIN.md deleted file mode 100644 index c29d9acf6..000000000 --- a/docs/BUILDING_CYGWIN.md +++ /dev/null @@ -1,79 +0,0 @@ -# Building with Cygwin - -If you want to use Cygwin, you will need to: - - -## 1. Install Cygwin (and required packages) - -* Download and install [Cygwin](https://cygwin.com). - -Run the installer and follow the steps to install a cygwin terminal. - -After the "choose a download site" step, a window will pop up which will allow you to select packages. -Unlike a normal linux distribution, you must install packages from this interface within the setup program. -To install a package you can change View from "Pending" to "Full". -Then you can enter a package name to search. After finding the package you want, change the "Skip" drop down -to the version you want to install. - -Use this interface to select the latest version for all of the following packages: -* make -* gcc-g++ -* bison -* flex -* texinfo -* git -* libiconv -* dos2unix -* python3 -* libpng-devel -* binutils (Make sure to check the "Src?" checkbox since we're interested in the source code) - -## 2. Build mips-linux-binutils on Windows using Cygwin -For the following instructions, wherever you see `binutils-[...]`, the [...] represents the version number. -You can use tab auto-complete to fill this in. - -Create destination dir for binutils -```bash -mkdir -p /opt/cross -``` - -Extract binutils source -```bash -cd /usr/src/binutils-[...].src/ -tar -xf binutils-[...].tar.xz -``` - -Create and enter build dir -```bash -mkdir build-binutils -cd build-binutils -``` - -Configure the build -```bash -../binutils-[...]/configure --target=mips-linux-gnu --prefix=/opt/cross --disable-gprof --disable-nls --disable-werror --disable-gdb --disable-libdecnumber --disable-readline --disable-sim -``` - -Make and install binutils -```bash -make -j -make install -j -``` - -Add the new binutils binaries to your system PATH: -- Go to your home directory `cd` -- Open windows explorer in your current location `explorer.exe .` -- Open the `.bashrc` file in a text editor -- Scroll to the bottom and add `PATH=$PATH:/opt/cross/bin` to a new line and save the file -- Run `source .bashrc` or close and reopen cygwin - -## 3. Continue with Linux instructions - -You should be able to continue from step [step 2](../README.md#2-clone-the-repository) of the Linux instructions. - -**N.B.** Before building anything, you will need to run the following commands to fix line endings: - -```bash -dos2unix fixle.sh -./fixle.sh -``` From 05c87518e7ef5b6f12792c38975aa6a06cbaaf60 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Thu, 23 May 2024 22:56:10 +0200 Subject: [PATCH 15/29] Document pause page switching (#1550) * Document pause page switching * document initial scroll left setup, when opening the pause menu * `PAUSE_MAIN_STATE_1` -> `PAUSE_MAIN_STATE_SWITCHING_PAGE` * try a diagram of the pages layout in world space as a comment * expand `nextPageMode` comment * touch up pause camera header comments * expand comment on irrelevant init `mainState = PAUSE_MAIN_STATE_SWITCHING_PAGE` * expand doc on `sKaleidoSetup*` data * expand docs on `gPageSwitchNextButtonStatus` * add some doc on `sPageSwitch*` arrays * SwitchPage -> PageSwitch * add `PAGE_SWITCH_NSTEPS` * `SWITCH_PAGE_*_PT` -> `PAGE_SWITCH_PT_*` * peepoArtist --------- Co-authored-by: fig02 --- include/regs.h | 1 + include/z64pause.h | 33 +++- src/code/z_kaleido_setup.c | 93 +++++++-- .../ovl_kaleido_scope/z_kaleido_scope_PAL.c | 181 ++++++++++++------ 4 files changed, 232 insertions(+), 76 deletions(-) diff --git a/include/regs.h b/include/regs.h index e1eb9d8b9..36c36c419 100644 --- a/include/regs.h +++ b/include/regs.h @@ -109,6 +109,7 @@ #define R_C_UP_ICON_Y YREG(89) #define R_EPONAS_SONG_PLAYED DREG(53) #define R_MAGIC_FILL_COLOR(i) ZREG(0 + (i)) +#define R_PAUSE_PAGE_SWITCH_FRAME_ADVANCE_ON ZREG(13) #define R_C_BTN_COLOR(i) ZREG(39 + (i)) #define R_B_BTN_COLOR(i) ZREG(43 + (i)) #define R_START_LABEL_DD(i) ZREG(48 + (i)) diff --git a/include/z64pause.h b/include/z64pause.h index 1cc810c31..9e19936da 100644 --- a/include/z64pause.h +++ b/include/z64pause.h @@ -20,6 +20,33 @@ typedef enum { /* 0x04 */ PAUSE_WORLD_MAP } PauseMenuPage; +// The XZ coordinates in which direction each pause page is at +// e.g. the item page is in the -z direction +/* + * < item > + * + * ^ ^ + * x + * equip o--> map + * | + * v z v v + * + * < quest > + */ +#define PAUSE_ITEM_X (0) +#define PAUSE_ITEM_Z (-1) +#define PAUSE_MAP_X (1) +#define PAUSE_MAP_Z (0) +#define PAUSE_QUEST_X (0) +#define PAUSE_QUEST_Z (1) +#define PAUSE_EQUIP_X (-1) +#define PAUSE_EQUIP_Z (0) + +// The pause camera looks at x=0,z=0, +// with the eye being PAUSE_EYE_DIST away in the direction opposite to the active page, +// which results in the camera being pointed (through x=0,z=0) towards the active page. +#define PAUSE_EYE_DIST (64.0f) + #define PAUSE_EQUIP_PLAYER_WIDTH 64 #define PAUSE_EQUIP_PLAYER_HEIGHT 112 @@ -58,7 +85,7 @@ typedef enum { // Sub-states of PAUSE_STATE_MAIN typedef enum { /* 0 */ PAUSE_MAIN_STATE_IDLE, - /* 1 */ PAUSE_MAIN_STATE_1, + /* 1 */ PAUSE_MAIN_STATE_SWITCHING_PAGE, /* 2 */ PAUSE_MAIN_STATE_2, /* 3 */ PAUSE_MAIN_STATE_3, /* 4 */ PAUSE_MAIN_STATE_4, @@ -98,9 +125,9 @@ typedef struct { /* 0x01D6 */ u16 debugState; /* 0x01D8 */ Vec3f eye; /* 0x01E4 */ u16 mainState; - /* 0x01E6 */ u16 mode; + /* 0x01E6 */ u16 nextPageMode; // During a page switch, indicates the page before switching and the direction to scroll in. Value is `(2 * prev pageIndex) + (scroll left ? 1 : 0)` /* 0x01E8 */ u16 pageIndex; // "kscp_pos" - /* 0x01EA */ u16 unk_1EA; + /* 0x01EA */ u16 pageSwitchTimer; /* 0x01EC */ u16 unk_1EC; /* 0x01F0 */ f32 unk_1F0; /* 0x01F4 */ f32 unk_1F4; diff --git a/src/code/z_kaleido_setup.c b/src/code/z_kaleido_setup.c index 871adabf1..36a01c123 100644 --- a/src/code/z_kaleido_setup.c +++ b/src/code/z_kaleido_setup.c @@ -1,12 +1,58 @@ #include "global.h" -s16 sKaleidoSetupKscpPos0[] = { PAUSE_QUEST, PAUSE_EQUIP, PAUSE_ITEM, PAUSE_MAP }; -f32 sKaleidoSetupEyeX0[] = { 0.0f, 64.0f, 0.0f, -64.0f }; -f32 sKaleidoSetupEyeZ0[] = { -64.0f, 0.0f, 64.0f, 0.0f }; +/* + * The following three arrays are effectively unused. + * They are partly equivalent to the `sKaleidoSetupRightPage*` arrays below, + * but make each page correspond to the opposite page instead of the page to the right. + */ -s16 sKaleidoSetupKscpPos1[] = { PAUSE_MAP, PAUSE_QUEST, PAUSE_EQUIP, PAUSE_ITEM }; -f32 sKaleidoSetupEyeX1[] = { -64.0f, 0.0f, 64.0f, 0.0f }; -f32 sKaleidoSetupEyeZ1[] = { 0.0f, -64.0f, 0.0f, 64.0f }; +s16 sKaleidoSetupUnusedPageIndex[] = { + PAUSE_QUEST, // PAUSE_ITEM + PAUSE_EQUIP, // PAUSE_MAP + PAUSE_ITEM, // PAUSE_QUEST + PAUSE_MAP, // PAUSE_EQUIP +}; + +f32 sKaleidoSetupUnusedEyeX[] = { + PAUSE_EYE_DIST * -PAUSE_QUEST_X, // PAUSE_ITEM + PAUSE_EYE_DIST * -PAUSE_EQUIP_X, // PAUSE_MAP + PAUSE_EYE_DIST * -PAUSE_ITEM_X, // PAUSE_QUEST + PAUSE_EYE_DIST * -PAUSE_MAP_X, // PAUSE_EQUIP +}; + +f32 sKaleidoSetupUnusedEyeZ[] = { + PAUSE_EYE_DIST * -PAUSE_QUEST_Z, // PAUSE_ITEM + PAUSE_EYE_DIST * -PAUSE_EQUIP_Z, // PAUSE_MAP + PAUSE_EYE_DIST * -PAUSE_ITEM_Z, // PAUSE_QUEST + PAUSE_EYE_DIST * -PAUSE_MAP_Z, // PAUSE_EQUIP +}; + +/* + * The following three arrays are used when opening the pause menu to set up a page switch such that scrolling left + * brings to the initial page. + * For example to open the menu on page PAUSE_ITEM, the menu would open on PAUSE_MAP and scroll left to PAUSE_ITEM. + */ + +s16 sKaleidoSetupRightPageIndex[] = { + PAUSE_MAP, // PAUSE_ITEM + PAUSE_QUEST, // PAUSE_MAP + PAUSE_EQUIP, // PAUSE_QUEST + PAUSE_ITEM, // PAUSE_EQUIP +}; + +f32 sKaleidoSetupRightPageEyeX[] = { + PAUSE_EYE_DIST * -PAUSE_MAP_X, // PAUSE_ITEM + PAUSE_EYE_DIST * -PAUSE_QUEST_X, // PAUSE_MAP + PAUSE_EYE_DIST * -PAUSE_EQUIP_X, // PAUSE_QUEST + PAUSE_EYE_DIST * -PAUSE_ITEM_X, // PAUSE_EQUIP +}; + +f32 sKaleidoSetupRightPageEyeZ[] = { + PAUSE_EYE_DIST * -PAUSE_MAP_Z, // PAUSE_ITEM + PAUSE_EYE_DIST * -PAUSE_QUEST_Z, // PAUSE_MAP + PAUSE_EYE_DIST * -PAUSE_EQUIP_Z, // PAUSE_QUEST + PAUSE_EYE_DIST * -PAUSE_ITEM_Z, // PAUSE_EQUIP +}; void KaleidoSetup_Update(PlayState* play) { PauseContext* pauseCtx = &play->pauseCtx; @@ -30,24 +76,33 @@ void KaleidoSetup_Update(PlayState* play) { WREG(16) = -175; WREG(17) = 155; - pauseCtx->unk_1EA = 0; - pauseCtx->mainState = PAUSE_MAIN_STATE_1; + pauseCtx->pageSwitchTimer = 0; - if (ZREG(48) == 0) { - pauseCtx->eye.x = sKaleidoSetupEyeX0[pauseCtx->pageIndex]; - pauseCtx->eye.z = sKaleidoSetupEyeZ0[pauseCtx->pageIndex]; - pauseCtx->pageIndex = sKaleidoSetupKscpPos0[pauseCtx->pageIndex]; + // Setting mainState here is irrelevant, mainState is only used under PAUSE_STATE_MAIN, + // which isn't involved in the initial pause menu opening page scrolling animation. + // mainState is also overwritten later before being used. + pauseCtx->mainState = PAUSE_MAIN_STATE_SWITCHING_PAGE; + + //! @bug REG collision + if (R_START_LABEL_DD(0) == 0) { + // Never reached, unused, and the data would be wrong anyway + // (scrolling left from this would not bring to the initial page) + pauseCtx->eye.x = sKaleidoSetupUnusedEyeX[pauseCtx->pageIndex]; + pauseCtx->eye.z = sKaleidoSetupUnusedEyeZ[pauseCtx->pageIndex]; + pauseCtx->pageIndex = sKaleidoSetupUnusedPageIndex[pauseCtx->pageIndex]; } else { - pauseCtx->eye.x = sKaleidoSetupEyeX1[pauseCtx->pageIndex]; - pauseCtx->eye.z = sKaleidoSetupEyeZ1[pauseCtx->pageIndex]; - pauseCtx->pageIndex = sKaleidoSetupKscpPos1[pauseCtx->pageIndex]; + // Set eye position and pageIndex such that scrolling left brings to the desired page + pauseCtx->eye.x = sKaleidoSetupRightPageEyeX[pauseCtx->pageIndex]; + pauseCtx->eye.z = sKaleidoSetupRightPageEyeZ[pauseCtx->pageIndex]; + pauseCtx->pageIndex = sKaleidoSetupRightPageIndex[pauseCtx->pageIndex]; } - pauseCtx->mode = (u16)(pauseCtx->pageIndex * 2) + 1; + // Set next page mode to scroll left + pauseCtx->nextPageMode = (u16)(pauseCtx->pageIndex * 2) + 1; pauseCtx->state = PAUSE_STATE_WAIT_LETTERBOX; - PRINTF("Mode=%d eye.x=%f, eye.z=%f kscp_pos=%d\n", pauseCtx->mode, pauseCtx->eye.x, pauseCtx->eye.z, - pauseCtx->pageIndex); + PRINTF("Mode=%d eye.x=%f, eye.z=%f kscp_pos=%d\n", pauseCtx->nextPageMode, pauseCtx->eye.x, + pauseCtx->eye.z, pauseCtx->pageIndex); } if (pauseCtx->state == PAUSE_STATE_WAIT_LETTERBOX) { @@ -77,7 +132,7 @@ void KaleidoSetup_Init(PlayState* play) { pauseCtx->alpha = 0; // mainState = PAUSE_MAIN_STATE_IDLE , pageIndex = PAUSE_ITEM - pauseCtx->unk_1EA = pauseCtx->mainState = pauseCtx->mode = pauseCtx->pageIndex = 0; + pauseCtx->pageSwitchTimer = pauseCtx->mainState = pauseCtx->nextPageMode = pauseCtx->pageIndex = 0; pauseCtx->unk_204 = -314.0f; diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c index 4e612c557..cf961177a 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c @@ -135,12 +135,45 @@ s16 D_8082AB2C[] = { 24, 72, 13, 22, 19, 20, 19, 27, 14, 26, 22, 21, 49, 32, 45, 60, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 16, 32, 8, }; -static u8 D_8082AB6C[][5] = { +/** + * Contains the status of buttons for each page. + * + * Indexed by `pageIndex + pt` values, + * where pageIndex is from the `PauseMenuPage` enum + * and pt is 0 or 2 (respectively `PAGE_SWITCH_PT_LEFT` and `PAGE_SWITCH_PT_RIGHT`). + * + * `PauseMenuPage` enum values are ordered clockwise, starting at PAUSE_ITEM. That means adding 1 to a page index + * produces (modulo 4) the index of the page to the right, and similar with subtracting 1 for the left page. + * The indexing of this array relies on this property, but without modulo operations. Instead, the data for the first + * and last pages (PAUSE_ITEM, PAUSE_EQUIP) is duplicated. + * + * For example when scrolling left from the quest page PAUSE_QUEST (so, to PAUSE_MAP), + * the index is `PAUSE_QUEST + PAGE_SWITCH_PT_LEFT` and the data is button status for the map page. + */ +static u8 gPageSwitchNextButtonStatus[][5] = { + // PAUSE_ITEM + PAGE_SWITCH_PT_LEFT + // + // -> PAUSE_EQUIP { BTN_ENABLED, BTN_DISABLED, BTN_DISABLED, BTN_DISABLED, BTN_ENABLED }, + // PAUSE_MAP + PAGE_SWITCH_PT_LEFT + // + // -> PAUSE_ITEM { BTN_ENABLED, BTN_ENABLED, BTN_ENABLED, BTN_ENABLED, BTN_DISABLED }, + // PAUSE_QUEST + PAGE_SWITCH_PT_LEFT + // PAUSE_ITEM + PAGE_SWITCH_PT_RIGHT + // -> PAUSE_MAP { BTN_ENABLED, BTN_DISABLED, BTN_DISABLED, BTN_DISABLED, BTN_DISABLED }, + // PAUSE_EQUIP + PAGE_SWITCH_PT_LEFT + // PAUSE_MAP + PAGE_SWITCH_PT_RIGHT + // -> PAUSE_QUEST { BTN_ENABLED, BTN_DISABLED, BTN_DISABLED, BTN_DISABLED, BTN_ENABLED }, + // + // PAUSE_QUEST + PAGE_SWITCH_PT_RIGHT + // -> PAUSE_EQUIP { BTN_ENABLED, BTN_DISABLED, BTN_DISABLED, BTN_DISABLED, BTN_ENABLED }, + // + // PAUSE_EQUIP + PAGE_SWITCH_PT_RIGHT + // -> PAUSE_ITEM { BTN_ENABLED, BTN_ENABLED, BTN_ENABLED, BTN_ENABLED, BTN_DISABLED }, }; @@ -155,16 +188,49 @@ static s16 D_8082ABA4 = 0; static s16 sInDungeonScene = false; -static f32 D_8082ABAC[] = { - -4.0f, 4.0f, 4.0f, 4.0f, 4.0f, -4.0f, -4.0f, -4.0f, +/* + * The following three `sPageSwitch*` arrays are indexed by nextPageMode values, + * which encode the page to switch from and the scroll direction. + * + * sPageSwitchEyeDx/Dz describe how to move the camera eye so that the pages appear scrolling and the next active page + * is switched into view. + * + * sPageSwitchNextPageIndex contains the page a nextPageMode leads to once scrolling is done. + */ + +#define PAGE_SWITCH_NSTEPS 16 + +static f32 sPageSwitchEyeDx[] = { + -PAUSE_EYE_DIST * (PAUSE_MAP_X - PAUSE_ITEM_X) / PAGE_SWITCH_NSTEPS, // PAUSE_ITEM right + -PAUSE_EYE_DIST*(PAUSE_EQUIP_X - PAUSE_ITEM_X) / PAGE_SWITCH_NSTEPS, // PAUSE_ITEM left + -PAUSE_EYE_DIST*(PAUSE_QUEST_X - PAUSE_MAP_X) / PAGE_SWITCH_NSTEPS, // PAUSE_MAP right + -PAUSE_EYE_DIST*(PAUSE_ITEM_X - PAUSE_MAP_X) / PAGE_SWITCH_NSTEPS, // PAUSE_MAP left + -PAUSE_EYE_DIST*(PAUSE_EQUIP_X - PAUSE_QUEST_X) / PAGE_SWITCH_NSTEPS, // PAUSE_QUEST right + -PAUSE_EYE_DIST*(PAUSE_MAP_X - PAUSE_QUEST_X) / PAGE_SWITCH_NSTEPS, // PAUSE_QUEST left + -PAUSE_EYE_DIST*(PAUSE_ITEM_X - PAUSE_EQUIP_X) / PAGE_SWITCH_NSTEPS, // PAUSE_EQUIP right + -PAUSE_EYE_DIST*(PAUSE_QUEST_X - PAUSE_EQUIP_X) / PAGE_SWITCH_NSTEPS, // PAUSE_EQUIP left }; -static f32 D_8082ABCC[] = { - -4.0f, -4.0f, -4.0f, 4.0f, 4.0f, 4.0f, 4.0f, -4.0f, +static f32 sPageSwitchEyeDz[] = { + -PAUSE_EYE_DIST * (PAUSE_MAP_Z - PAUSE_ITEM_Z) / PAGE_SWITCH_NSTEPS, // PAUSE_ITEM right + -PAUSE_EYE_DIST*(PAUSE_EQUIP_Z - PAUSE_ITEM_Z) / PAGE_SWITCH_NSTEPS, // PAUSE_ITEM left + -PAUSE_EYE_DIST*(PAUSE_QUEST_Z - PAUSE_MAP_Z) / PAGE_SWITCH_NSTEPS, // PAUSE_MAP right + -PAUSE_EYE_DIST*(PAUSE_ITEM_Z - PAUSE_MAP_Z) / PAGE_SWITCH_NSTEPS, // PAUSE_MAP left + -PAUSE_EYE_DIST*(PAUSE_EQUIP_Z - PAUSE_QUEST_Z) / PAGE_SWITCH_NSTEPS, // PAUSE_QUEST right + -PAUSE_EYE_DIST*(PAUSE_MAP_Z - PAUSE_QUEST_Z) / PAGE_SWITCH_NSTEPS, // PAUSE_QUEST left + -PAUSE_EYE_DIST*(PAUSE_ITEM_Z - PAUSE_EQUIP_Z) / PAGE_SWITCH_NSTEPS, // PAUSE_EQUIP right + -PAUSE_EYE_DIST*(PAUSE_QUEST_Z - PAUSE_EQUIP_Z) / PAGE_SWITCH_NSTEPS, // PAUSE_EQUIP left }; -static u16 D_8082ABEC[] = { - PAUSE_MAP, PAUSE_EQUIP, PAUSE_QUEST, PAUSE_ITEM, PAUSE_EQUIP, PAUSE_MAP, PAUSE_ITEM, PAUSE_QUEST, +static u16 sPageSwitchNextPageIndex[] = { + PAUSE_MAP, // PAUSE_ITEM right + PAUSE_EQUIP, // PAUSE_ITEM left + PAUSE_QUEST, // PAUSE_MAP right + PAUSE_ITEM, // PAUSE_MAP left + PAUSE_EQUIP, // PAUSE_QUEST right + PAUSE_MAP, // PAUSE_QUEST left + PAUSE_ITEM, // PAUSE_EQUIP right + PAUSE_QUEST, // PAUSE_EQUIP left }; u8 gSlotAgeReqs[] = { @@ -489,26 +555,29 @@ void KaleidoScope_SetDefaultCursor(PlayState* play) { } } -void KaleidoScope_SwitchPage(PauseContext* pauseCtx, u8 pt) { - pauseCtx->mainState = PAUSE_MAIN_STATE_1; - pauseCtx->unk_1EA = 0; +#define PAGE_SWITCH_PT_LEFT 0 +#define PAGE_SWITCH_PT_RIGHT 2 - if (!pt) { - pauseCtx->mode = pauseCtx->pageIndex * 2 + 1; +void KaleidoScope_SetupPageSwitch(PauseContext* pauseCtx, u8 pt) { + pauseCtx->mainState = PAUSE_MAIN_STATE_SWITCHING_PAGE; + pauseCtx->pageSwitchTimer = 0; + + if (!pt) { // PAGE_SWITCH_PT_LEFT + pauseCtx->nextPageMode = pauseCtx->pageIndex * 2 + 1; Audio_PlaySfxGeneral(NA_SE_SY_WIN_SCROLL_LEFT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); pauseCtx->cursorSpecialPos = PAUSE_CURSOR_PAGE_RIGHT; - } else { - pauseCtx->mode = pauseCtx->pageIndex * 2; + } else { // PAGE_SWITCH_PT_RIGHT + pauseCtx->nextPageMode = pauseCtx->pageIndex * 2; Audio_PlaySfxGeneral(NA_SE_SY_WIN_SCROLL_RIGHT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); pauseCtx->cursorSpecialPos = PAUSE_CURSOR_PAGE_LEFT; } - gSaveContext.buttonStatus[1] = D_8082AB6C[pauseCtx->pageIndex + pt][1]; - gSaveContext.buttonStatus[2] = D_8082AB6C[pauseCtx->pageIndex + pt][2]; - gSaveContext.buttonStatus[3] = D_8082AB6C[pauseCtx->pageIndex + pt][3]; - gSaveContext.buttonStatus[4] = D_8082AB6C[pauseCtx->pageIndex + pt][4]; + gSaveContext.buttonStatus[1] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex + pt][1]; + gSaveContext.buttonStatus[2] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex + pt][2]; + gSaveContext.buttonStatus[3] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex + pt][3]; + gSaveContext.buttonStatus[4] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex + pt][4]; PRINTF("kscope->kscp_pos+pt = %d\n", pauseCtx->pageIndex + pt); @@ -525,12 +594,12 @@ void KaleidoScope_HandlePageToggles(PauseContext* pauseCtx, Input* input) { } if (CHECK_BTN_ALL(input->press.button, BTN_R)) { - KaleidoScope_SwitchPage(pauseCtx, 2); + KaleidoScope_SetupPageSwitch(pauseCtx, PAGE_SWITCH_PT_RIGHT); return; } if (CHECK_BTN_ALL(input->press.button, BTN_Z)) { - KaleidoScope_SwitchPage(pauseCtx, 0); + KaleidoScope_SetupPageSwitch(pauseCtx, PAGE_SWITCH_PT_LEFT); return; } @@ -538,7 +607,7 @@ void KaleidoScope_HandlePageToggles(PauseContext* pauseCtx, Input* input) { if (pauseCtx->stickAdjX < -30) { pauseCtx->pageSwitchInputTimer++; if ((pauseCtx->pageSwitchInputTimer >= 10) || (pauseCtx->pageSwitchInputTimer == 0)) { - KaleidoScope_SwitchPage(pauseCtx, 0); + KaleidoScope_SetupPageSwitch(pauseCtx, PAGE_SWITCH_PT_LEFT); } } else { pauseCtx->pageSwitchInputTimer = -1; @@ -547,7 +616,7 @@ void KaleidoScope_HandlePageToggles(PauseContext* pauseCtx, Input* input) { if (pauseCtx->stickAdjX > 30) { pauseCtx->pageSwitchInputTimer++; if ((pauseCtx->pageSwitchInputTimer >= 10) || (pauseCtx->pageSwitchInputTimer == 0)) { - KaleidoScope_SwitchPage(pauseCtx, 2); + KaleidoScope_SetupPageSwitch(pauseCtx, PAGE_SWITCH_PT_RIGHT); } } else { pauseCtx->pageSwitchInputTimer = -1; @@ -1533,21 +1602,21 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) { } } -void func_808237B4(PlayState* play, Input* input) { +void KaleidoScope_UpdatePageSwitch(PlayState* play, Input* input) { PauseContext* pauseCtx = &play->pauseCtx; - s32 cond = false; - s32 mode; + s32 frameAdvanceFreeze = false; + s32 nextPageMode; - if (ZREG(13) && !CHECK_BTN_ALL(input->press.button, BTN_L)) { - cond = true; + if (R_PAUSE_PAGE_SWITCH_FRAME_ADVANCE_ON && !CHECK_BTN_ALL(input->press.button, BTN_L)) { + frameAdvanceFreeze = true; } - if (!cond) { - mode = pauseCtx->mode; - pauseCtx->eye.x += D_8082ABAC[mode]; - pauseCtx->eye.z += D_8082ABCC[mode]; + if (!frameAdvanceFreeze) { + nextPageMode = pauseCtx->nextPageMode; + pauseCtx->eye.x += sPageSwitchEyeDx[nextPageMode]; + pauseCtx->eye.z += sPageSwitchEyeDz[nextPageMode]; - if (pauseCtx->unk_1EA < 32) { + if (pauseCtx->pageSwitchTimer < ((4 * PAGE_SWITCH_NSTEPS) / 2)) { WREG(16) -= WREG(25) / WREG(6); WREG(17) -= WREG(26) / WREG(6); } else { @@ -1555,11 +1624,11 @@ void func_808237B4(PlayState* play, Input* input) { WREG(17) += WREG(26) / WREG(6); } - pauseCtx->unk_1EA += 4; + pauseCtx->pageSwitchTimer += 4; - if (pauseCtx->unk_1EA == 64) { - pauseCtx->unk_1EA = 0; - pauseCtx->pageIndex = D_8082ABEC[pauseCtx->mode]; + if (pauseCtx->pageSwitchTimer == (4 * PAGE_SWITCH_NSTEPS)) { + pauseCtx->pageSwitchTimer = 0; + pauseCtx->pageIndex = sPageSwitchNextPageIndex[pauseCtx->nextPageMode]; pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE; } } @@ -2471,28 +2540,32 @@ void KaleidoScope_GrayOutTextureRGBA32(u32* texture, u16 pixelCount) { void KaleidoScope_UpdateOpening(PlayState* play) { PauseContext* pauseCtx = &play->pauseCtx; - pauseCtx->eye.x += D_8082ABAC[pauseCtx->mode] * ZREG(46); - pauseCtx->eye.z += D_8082ABCC[pauseCtx->mode] * ZREG(46); - pauseCtx->unk_1EA += 4 * ZREG(46); + pauseCtx->eye.x += sPageSwitchEyeDx[pauseCtx->nextPageMode] * ZREG(46); + pauseCtx->eye.z += sPageSwitchEyeDz[pauseCtx->nextPageMode] * ZREG(46); + pauseCtx->pageSwitchTimer += 4 * ZREG(46); - if (pauseCtx->unk_1EA == (64 * ZREG(47))) { + if (pauseCtx->pageSwitchTimer == (4 * PAGE_SWITCH_NSTEPS * ZREG(47))) { // Finished opening func_80084BF4(play, 1); - gSaveContext.buttonStatus[0] = D_8082AB6C[pauseCtx->pageIndex][0]; - gSaveContext.buttonStatus[1] = D_8082AB6C[pauseCtx->pageIndex][1]; - gSaveContext.buttonStatus[2] = D_8082AB6C[pauseCtx->pageIndex][2]; - gSaveContext.buttonStatus[3] = D_8082AB6C[pauseCtx->pageIndex][3]; - gSaveContext.buttonStatus[4] = D_8082AB6C[pauseCtx->pageIndex][4]; - pauseCtx->pageIndex = D_8082ABEC[pauseCtx->mode]; + + gSaveContext.buttonStatus[0] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex][0]; + gSaveContext.buttonStatus[1] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex][1]; + gSaveContext.buttonStatus[2] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex][2]; + gSaveContext.buttonStatus[3] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex][3]; + gSaveContext.buttonStatus[4] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex][4]; + + pauseCtx->pageIndex = sPageSwitchNextPageIndex[pauseCtx->nextPageMode]; + pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE; pauseCtx->state++; // PAUSE_STATE_MAIN + pauseCtx->alpha = 255; Interface_LoadActionLabelB(play, DO_ACTION_SAVE); - } else if (pauseCtx->unk_1EA == 64) { + } else if (pauseCtx->pageSwitchTimer == (4 * PAGE_SWITCH_NSTEPS * 1)) { // `ZREG(47)` is always 1 so this normally never happens - pauseCtx->pageIndex = D_8082ABEC[pauseCtx->mode]; - pauseCtx->mode = (u16)(pauseCtx->pageIndex * 2) + 1; + pauseCtx->pageIndex = sPageSwitchNextPageIndex[pauseCtx->nextPageMode]; + pauseCtx->nextPageMode = (u16)(pauseCtx->pageIndex * 2) + 1; } } @@ -3071,7 +3144,7 @@ void KaleidoScope_Update(PlayState* play) { WREG(2) = -6240; func_800F64E0(0); } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { - pauseCtx->mode = 0; + pauseCtx->nextPageMode = 0; pauseCtx->promptChoice = 0; Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -3085,8 +3158,8 @@ void KaleidoScope_Update(PlayState* play) { } break; - case PAUSE_MAIN_STATE_1: - func_808237B4(play, play->state.input); + case PAUSE_MAIN_STATE_SWITCHING_PAGE: + KaleidoScope_UpdatePageSwitch(play, play->state.input); break; case PAUSE_MAIN_STATE_2: @@ -3118,7 +3191,7 @@ void KaleidoScope_Update(PlayState* play) { } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE; - pauseCtx->mode = 0; + pauseCtx->nextPageMode = 0; pauseCtx->promptChoice = 0; Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -3168,7 +3241,7 @@ void KaleidoScope_Update(PlayState* play) { } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE; - pauseCtx->mode = 0; + pauseCtx->nextPageMode = 0; pauseCtx->promptChoice = 0; Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); From e88084fe6539f0fa98a3e90055dccb8cf0407498 Mon Sep 17 00:00:00 2001 From: inspectredc <78732756+inspectredc@users.noreply.github.com> Date: Sun, 9 Jun 2024 19:43:15 +0100 Subject: [PATCH 16/29] Fix LensMode Enum Names (#1954) --- include/z64.h | 4 ++-- src/code/z_actor.c | 6 +++--- src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/z64.h b/include/z64.h index 2fcf7b889..194d95721 100644 --- a/include/z64.h +++ b/include/z64.h @@ -225,8 +225,8 @@ typedef struct { } GameOverContext; // size = 0x2 typedef enum { - /* 0 */ LENS_MODE_HIDE_ACTORS, // lens actors are visible by default, and hidden by using lens (for example, fake walls) - /* 1 */ LENS_MODE_SHOW_ACTORS // lens actors are invisible by default, and shown by using lens (for example, invisible enemies) + /* 0 */ LENS_MODE_SHOW_ACTORS, // lens actors are invisible by default, and shown by using lens (for example, invisible enemies) + /* 1 */ LENS_MODE_HIDE_ACTORS // lens actors are visible by default, and hidden by using lens (for example, fake walls) } LensMode; typedef enum { diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 214fa7138..6afae4f1f 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -2452,7 +2452,7 @@ void Actor_DrawLensActors(PlayState* play, s32 numInvisibleActors, Actor** invis gDPPipeSync(POLY_XLU_DISP++); - if (play->roomCtx.curRoom.lensMode == LENS_MODE_HIDE_ACTORS) { + if (play->roomCtx.curRoom.lensMode == LENS_MODE_SHOW_ACTORS) { // Update both the color frame buffer and the z-buffer gDPSetOtherMode(POLY_XLU_DISP++, G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | @@ -2501,7 +2501,7 @@ void Actor_DrawLensActors(PlayState* play, s32 numInvisibleActors, Actor** invis // "Magic lens invisible Actor display END" gDPNoOpString(POLY_OPA_DISP++, "魔法のメガネ 見えないActor表示 END", numInvisibleActors); - if (play->roomCtx.curRoom.lensMode != LENS_MODE_HIDE_ACTORS) { + if (play->roomCtx.curRoom.lensMode != LENS_MODE_SHOW_ACTORS) { // Draw the lens overlay to the color frame buffer gDPNoOpString(POLY_OPA_DISP++, "青い眼鏡(外側)", 0); // "Blue spectacles (exterior)" @@ -2596,7 +2596,7 @@ void func_800315AC(PlayState* play, ActorContext* actorCtx) { if (!OOT_DEBUG || (HREG(64) != 1) || ((HREG(65) != -1) && (HREG(65) != HREG(66))) || (HREG(71) == 0)) { if ((actor->init == NULL) && (actor->draw != NULL) && (actor->flags & (ACTOR_FLAG_5 | ACTOR_FLAG_6))) { if ((actor->flags & ACTOR_FLAG_REACT_TO_LENS) && - ((play->roomCtx.curRoom.lensMode == LENS_MODE_HIDE_ACTORS) || play->actorCtx.lensActive || + ((play->roomCtx.curRoom.lensMode == LENS_MODE_SHOW_ACTORS) || play->actorCtx.lensActive || (actor->room != play->roomCtx.curRoom.num))) { ASSERT(invisibleActorCounter < INVISIBLE_ACTOR_MAX, "invisible_actor_counter < INVISIBLE_ACTOR_MAX", "../z_actor.c", 6464); diff --git a/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c b/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c index b7d324896..39082dcb6 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c +++ b/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c @@ -89,7 +89,7 @@ void func_8087DB24(BgHakaMegane* this, PlayState* play) { this->dyna.actor.objectSlot = this->requiredObjectSlot; this->dyna.actor.draw = BgHakaMegane_Draw; Actor_SetObjectDependency(play, &this->dyna.actor); - if (play->roomCtx.curRoom.lensMode != LENS_MODE_HIDE_ACTORS) { + if (play->roomCtx.curRoom.lensMode != LENS_MODE_SHOW_ACTORS) { CollisionHeader* colHeader; CollisionHeader* collision; From eb660765b12e54c9ed57da39ceecfef471a14bff Mon Sep 17 00:00:00 2001 From: cadmic Date: Mon, 10 Jun 2024 07:07:51 -0700 Subject: [PATCH 17/29] Change linker script so gGameOverTimer can be in z_game_over.c (#1939) * Change linker script so gGameOverTimer can be in z_game_over.c * gGameOverTimer -> sGameOverTimer * include_data_only_with_rodata -> include_data_only_within_rodata --- spec | 8 +++- src/code/z_game_over.c | 29 +++++++------- src/code/z_message_PAL.c | 9 ----- tools/mkldscript.c | 86 +++++++++++++++------------------------- tools/spec.c | 12 ++++-- tools/spec.h | 6 ++- 6 files changed, 64 insertions(+), 86 deletions(-) diff --git a/spec b/spec index a0f411d40..53841452d 100644 --- a/spec +++ b/spec @@ -597,8 +597,12 @@ beginseg include "$(BUILD_DIR)/src/code/fmodf.o" include "$(BUILD_DIR)/src/code/__osMemset.o" include "$(BUILD_DIR)/src/code/__osMemmove.o" - include_data_with_rodata "$(BUILD_DIR)/src/code/z_message_PAL.o" - include "$(BUILD_DIR)/src/code/z_game_over.o" + // For some reason, the data sections of these files are placed here near the + // rodata sections of the other files + include_data_only_within_rodata "$(BUILD_DIR)/src/code/z_message_PAL.o" + include_data_only_within_rodata "$(BUILD_DIR)/src/code/z_game_over.o" + include_no_data "$(BUILD_DIR)/src/code/z_message_PAL.o" + include_no_data "$(BUILD_DIR)/src/code/z_game_over.o" include "$(BUILD_DIR)/src/code/z_construct.o" include "$(BUILD_DIR)/data/audio_tables.rodata.o" include "$(BUILD_DIR)/data/rsp.text.o" diff --git a/src/code/z_game_over.c b/src/code/z_game_over.c index 796ce358d..b282fc9e7 100644 --- a/src/code/z_game_over.c +++ b/src/code/z_game_over.c @@ -13,8 +13,7 @@ void GameOver_FadeInLights(PlayState* play) { } } -// This variable cannot be moved into this file as all of z_message_PAL rodata is in the way -extern s16 gGameOverTimer; +s16 sGameOverTimer = 0; void GameOver_Update(PlayState* play) { GameOverContext* gameOverCtx = &play->gameOverCtx; @@ -74,7 +73,7 @@ void GameOver_Update(PlayState* play) { gSaveContext.hudVisibilityModeTimer = 0; // false, HUD_VISIBILITY_NO_CHANGE Environment_InitGameOverLights(play); - gGameOverTimer = 20; + sGameOverTimer = 20; if (1) {} rumbleStrength = R_GAME_OVER_RUMBLE_STRENGTH; @@ -92,9 +91,9 @@ void GameOver_Update(PlayState* play) { break; case GAMEOVER_DEATH_DELAY_MENU: - gGameOverTimer--; + sGameOverTimer--; - if (gGameOverTimer == 0) { + if (sGameOverTimer == 0) { play->pauseCtx.state = PAUSE_STATE_8; gameOverCtx->state++; Rumble_Reset(); @@ -103,13 +102,13 @@ void GameOver_Update(PlayState* play) { case GAMEOVER_REVIVE_START: gameOverCtx->state++; - gGameOverTimer = 0; + sGameOverTimer = 0; Environment_InitGameOverLights(play); Letterbox_SetSizeTarget(32); return; case GAMEOVER_REVIVE_RUMBLE: - gGameOverTimer = 50; + sGameOverTimer = 50; gameOverCtx->state++; if (1) {} @@ -123,28 +122,28 @@ void GameOver_Update(PlayState* play) { break; case GAMEOVER_REVIVE_WAIT_GROUND: - gGameOverTimer--; + sGameOverTimer--; - if (gGameOverTimer == 0) { - gGameOverTimer = 64; + if (sGameOverTimer == 0) { + sGameOverTimer = 64; gameOverCtx->state++; } break; case GAMEOVER_REVIVE_WAIT_FAIRY: - gGameOverTimer--; + sGameOverTimer--; - if (gGameOverTimer == 0) { - gGameOverTimer = 50; + if (sGameOverTimer == 0) { + sGameOverTimer = 50; gameOverCtx->state++; } break; case GAMEOVER_REVIVE_FADE_OUT: Environment_FadeOutGameOverLights(play); - gGameOverTimer--; + sGameOverTimer--; - if (gGameOverTimer == 0) { + if (sGameOverTimer == 0) { gameOverCtx->state = GAMEOVER_INACTIVE; } break; diff --git a/src/code/z_message_PAL.c b/src/code/z_message_PAL.c index 126841cea..027e66c21 100644 --- a/src/code/z_message_PAL.c +++ b/src/code/z_message_PAL.c @@ -3358,12 +3358,3 @@ void Message_SetTables(void) { sFraMessageEntryTablePtr = sFraMessageEntryTable; sStaffMessageEntryTablePtr = sStaffMessageEntryTable; } - -#if OOT_DEBUG -// Appears to be file padding -UNK_TYPE D_80153D7C = 0x00000000; -#endif - -// This should be part of z_game_over.c, but cannot be moved there as the entire -// late_rodata section of this file is in the way -s16 gGameOverTimer = 0; diff --git a/tools/mkldscript.c b/tools/mkldscript.c index 9157bc79d..199c77eb7 100644 --- a/tools/mkldscript.c +++ b/tools/mkldscript.c @@ -42,10 +42,6 @@ static void write_ld_script(FILE *fout) // initialized data (.text, .data, .rodata, .sdata) - // Increment the start of the section - //if (seg->fields & (1 << STMT_increment)) - //fprintf(fout, " . += 0x%08X;\n", seg->increment); - fprintf(fout, " _%sSegmentRomStartTemp = _RomSize;\n" " _%sSegmentRomStart = _%sSegmentRomStartTemp;\n" " ..%s ", seg->name, seg->name, seg->name, seg->name); @@ -68,10 +64,13 @@ static void write_ld_script(FILE *fout) for (j = 0; j < seg->includesCount; j++) { - fprintf(fout, " %s (.text)\n", seg->includes[j].fpath); - if (seg->includes[j].linkerPadding != 0) - fprintf(fout, " . += 0x%X;\n", seg->includes[j].linkerPadding); - fprintf(fout, " . = ALIGN(0x10);\n"); + if (!seg->includes[j].dataOnlyWithinRodata) + { + fprintf(fout, " %s (.text)\n", seg->includes[j].fpath); + if (seg->includes[j].linkerPadding != 0) + fprintf(fout, " . += 0x%X;\n", seg->includes[j].linkerPadding); + fprintf(fout, " . = ALIGN(0x10);\n"); + } } fprintf(fout, " _%sSegmentTextEnd = .;\n", seg->name); @@ -82,20 +81,11 @@ static void write_ld_script(FILE *fout) for (j = 0; j < seg->includesCount; j++) { - if (!seg->includes[j].dataWithRodata) + if (!seg->includes[j].dataOnlyWithinRodata && !seg->includes[j].noData) fprintf(fout, " %s (.data)\n" " . = ALIGN(0x10);\n", seg->includes[j].fpath); } - /* - for (j = 0; j < seg->includesCount; j++) - fprintf(fout, " %s (.rodata)\n", seg->includes[j].fpath); - - for (j = 0; j < seg->includesCount; j++) - fprintf(fout, " %s (.sdata)\n", seg->includes[j].fpath); - */ - - //fprintf(fout, " . = ALIGN(0x10);\n"); fprintf(fout, " _%sSegmentDataEnd = .;\n", seg->name); fprintf(fout, " _%sSegmentDataSize = ABSOLUTE( _%sSegmentDataEnd - _%sSegmentDataStart );\n", seg->name, seg->name, seg->name); @@ -104,7 +94,7 @@ static void write_ld_script(FILE *fout) for (j = 0; j < seg->includesCount; j++) { - if (seg->includes[j].dataWithRodata) + if (seg->includes[j].dataOnlyWithinRodata) fprintf(fout, " %s (.data)\n" " . = ALIGN(0x10);\n", seg->includes[j].fpath); @@ -116,11 +106,12 @@ static void write_ld_script(FILE *fout) // the beginning of the entire rodata area in order to remain consistent. // Inconsistencies will lead to various .rodata reloc crashes as a result of // either missing relocs or wrong relocs. - fprintf(fout, " %s (.rodata)\n" - " %s (.rodata.str*)\n" - " %s (.rodata.cst*)\n" - " . = ALIGN(0x10);\n", - seg->includes[j].fpath, seg->includes[j].fpath, seg->includes[j].fpath); + if (!seg->includes[j].dataOnlyWithinRodata) + fprintf(fout, " %s (.rodata)\n" + " %s (.rodata.str*)\n" + " %s (.rodata.cst*)\n" + " . = ALIGN(0x10);\n", + seg->includes[j].fpath, seg->includes[j].fpath, seg->includes[j].fpath); } fprintf(fout, " _%sSegmentRoDataEnd = .;\n", seg->name); @@ -130,15 +121,17 @@ static void write_ld_script(FILE *fout) fprintf(fout, " _%sSegmentSDataStart = .;\n", seg->name); for (j = 0; j < seg->includesCount; j++) - fprintf(fout, " %s (.sdata)\n" - " . = ALIGN(0x10);\n", seg->includes[j].fpath); + if (!seg->includes[j].dataOnlyWithinRodata) + fprintf(fout, " %s (.sdata)\n" + " . = ALIGN(0x10);\n", seg->includes[j].fpath); fprintf(fout, " _%sSegmentSDataEnd = .;\n", seg->name); fprintf(fout, " _%sSegmentOvlStart = .;\n", seg->name); for (j = 0; j < seg->includesCount; j++) - fprintf(fout, " %s (.ovl)\n", seg->includes[j].fpath); + if (!seg->includes[j].dataOnlyWithinRodata) + fprintf(fout, " %s (.ovl)\n", seg->includes[j].fpath); fprintf(fout, " _%sSegmentOvlEnd = .;\n", seg->name); @@ -166,20 +159,24 @@ static void write_ld_script(FILE *fout) seg->name, seg->name, seg->name, seg->name); for (j = 0; j < seg->includesCount; j++) - fprintf(fout, " %s (.sbss)\n" - " . = ALIGN(0x10);\n", seg->includes[j].fpath); + if (!seg->includes[j].dataOnlyWithinRodata) + fprintf(fout, " %s (.sbss)\n" + " . = ALIGN(0x10);\n", seg->includes[j].fpath); for (j = 0; j < seg->includesCount; j++) - fprintf(fout, " %s (.scommon)\n" - " . = ALIGN(0x10);\n", seg->includes[j].fpath); + if (!seg->includes[j].dataOnlyWithinRodata) + fprintf(fout, " %s (.scommon)\n" + " . = ALIGN(0x10);\n", seg->includes[j].fpath); for (j = 0; j < seg->includesCount; j++) - fprintf(fout, " %s (.bss)\n" - " . = ALIGN(0x10);\n", seg->includes[j].fpath); + if (!seg->includes[j].dataOnlyWithinRodata) + fprintf(fout, " %s (.bss)\n" + " . = ALIGN(0x10);\n", seg->includes[j].fpath); for (j = 0; j < seg->includesCount; j++) - fprintf(fout, " %s (COMMON)\n" - " . = ALIGN(0x10);\n", seg->includes[j].fpath); + if (!seg->includes[j].dataOnlyWithinRodata) + fprintf(fout, " %s (COMMON)\n" + " . = ALIGN(0x10);\n", seg->includes[j].fpath); fprintf(fout, " . = ALIGN(0x10);\n" " _%sSegmentBssEnd = .;\n" @@ -187,25 +184,6 @@ static void write_ld_script(FILE *fout) " }\n" " _%sSegmentBssSize = ABSOLUTE( _%sSegmentBssEnd - _%sSegmentBssStart );\n\n", seg->name, seg->name, seg->name, seg->name, seg->name); - - // Increment the end of the segment - //if (seg->fields & (1 << STMT_increment)) - //fprintf(fout, " . += 0x%08X;\n", seg->increment); - - //fprintf(fout, " ..%s.ovl ADDR(..%s) + SIZEOF(..%s) :\n" - // /*" ..%s.bss :\n"*/ - // " {\n", - // seg->name, seg->name, seg->name); - //fprintf(fout, " _%sSegmentOvlStart = .;\n", seg->name); - - //for (j = 0; j < seg->includesCount; j++) - // fprintf(fout, " %s (.ovl)\n", seg->includes[j].fpath); - - ////fprintf(fout, " . = ALIGN(0x10);\n"); - - //fprintf(fout, " _%sSegmentOvlEnd = .;\n", seg->name); - - //fprintf(fout, "\n }\n"); } fputs(" _RomEnd = _RomSize;\n\n", fout); diff --git a/tools/spec.c b/tools/spec.c index 39dd088ec..b13455867 100644 --- a/tools/spec.c +++ b/tools/spec.c @@ -136,7 +136,8 @@ static const char *const stmtNames[] = [STMT_entry] = "entry", [STMT_flags] = "flags", [STMT_include] = "include", - [STMT_include_data_with_rodata] = "include_data_with_rodata", + [STMT_include_data_only_within_rodata] = "include_data_only_within_rodata", + [STMT_include_no_data] = "include_no_data", [STMT_name] = "name", [STMT_number] = "number", [STMT_romalign] = "romalign", @@ -158,7 +159,8 @@ STMTId get_stmt_id_by_stmt_name(const char *stmtName, int lineNum) { bool parse_segment_statement(struct Segment *currSeg, STMTId stmt, char* args, int lineNum) { // ensure no duplicates (except for 'include' or 'pad_text') - if (stmt != STMT_include && stmt != STMT_include_data_with_rodata && stmt != STMT_pad_text && + if (stmt != STMT_include && stmt != STMT_include_data_only_within_rodata && + stmt != STMT_include_no_data && stmt != STMT_pad_text && (currSeg->fields & (1 << stmt))) util_fatal_error("line %i: duplicate '%s' statement", lineNum, stmtNames[stmt]); @@ -211,7 +213,8 @@ bool parse_segment_statement(struct Segment *currSeg, STMTId stmt, char* args, i util_fatal_error("line %i: alignment is not a power of two", lineNum); break; case STMT_include: - case STMT_include_data_with_rodata: + case STMT_include_data_only_within_rodata: + case STMT_include_no_data: currSeg->includesCount++; currSeg->includes = realloc(currSeg->includes, currSeg->includesCount * sizeof(*currSeg->includes)); @@ -219,7 +222,8 @@ bool parse_segment_statement(struct Segment *currSeg, STMTId stmt, char* args, i util_fatal_error("line %i: invalid filename", lineNum); currSeg->includes[currSeg->includesCount - 1].linkerPadding = 0; - currSeg->includes[currSeg->includesCount - 1].dataWithRodata = (stmt == STMT_include_data_with_rodata); + currSeg->includes[currSeg->includesCount - 1].dataOnlyWithinRodata = (stmt == STMT_include_data_only_within_rodata); + currSeg->includes[currSeg->includesCount - 1].noData = (stmt == STMT_include_no_data); break; case STMT_increment: if (!parse_number(args, &currSeg->increment)) diff --git a/tools/spec.h b/tools/spec.h index f0a16eeb4..6b01b3475 100644 --- a/tools/spec.h +++ b/tools/spec.h @@ -14,7 +14,8 @@ typedef enum { STMT_entry, STMT_flags, STMT_include, - STMT_include_data_with_rodata, + STMT_include_data_only_within_rodata, + STMT_include_no_data, STMT_name, STMT_number, STMT_romalign, @@ -34,7 +35,8 @@ enum { struct Include { char* fpath; int linkerPadding; - uint8_t dataWithRodata; + bool dataOnlyWithinRodata; + bool noData; }; typedef struct Segment { From 44ca32168a09607095b3b4189a3175d2bb04c9e7 Mon Sep 17 00:00:00 2001 From: cadmic Date: Tue, 18 Jun 2024 17:40:28 -0700 Subject: [PATCH 18/29] Check buffers segment in check_ordering.py (#1960) --- tools/check_ordering.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/check_ordering.py b/tools/check_ordering.py index cfd291378..cd03ea1e7 100755 --- a/tools/check_ordering.py +++ b/tools/check_ordering.py @@ -131,6 +131,7 @@ def main(): if not ( mapfile_segment.name.startswith("..boot") or mapfile_segment.name.startswith("..code") + or mapfile_segment.name.startswith("..buffers") or mapfile_segment.name.startswith("..ovl_") ): continue From 7332e8ee7677e04ebfa8e190e9e569a0ac46eaa9 Mon Sep 17 00:00:00 2001 From: cadmic Date: Tue, 18 Jun 2024 17:53:19 -0700 Subject: [PATCH 19/29] Delete unused yaz0tool (#1959) --- tools/Makefile | 3 +- tools/yaz0.c | 238 ----------------------------------------------- tools/yaz0.h | 10 -- tools/yaz0tool.c | 201 --------------------------------------- 4 files changed, 1 insertion(+), 451 deletions(-) delete mode 100644 tools/yaz0.c delete mode 100644 tools/yaz0.h delete mode 100644 tools/yaz0tool.c diff --git a/tools/Makefile b/tools/Makefile index 4d342e248..c4688f664 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,5 +1,5 @@ CFLAGS := -Wall -Wextra -pedantic -std=c99 -g -O2 -PROGRAMS := elf2rom makeromfs mkdmadata mkldscript reloc_prereq vtxdis yaz0 +PROGRAMS := elf2rom makeromfs mkdmadata mkldscript reloc_prereq vtxdis ifeq ($(shell command -v clang >/dev/null 2>&1; echo $$?),0) CC := clang @@ -36,7 +36,6 @@ mkdmadata_SOURCES := mkdmadata.c spec.c util.c mkldscript_SOURCES := mkldscript.c spec.c util.c reloc_prereq_SOURCES := reloc_prereq.c spec.c util.c vtxdis_SOURCES := vtxdis.c -yaz0_SOURCES := yaz0tool.c yaz0.c util.c define COMPILE = diff --git a/tools/yaz0.c b/tools/yaz0.c deleted file mode 100644 index 5b3156e44..000000000 --- a/tools/yaz0.c +++ /dev/null @@ -1,238 +0,0 @@ -#include -#include -#include -#include - -#include "yaz0.h" - -// decoder implementation by thakis of http://www.amnoid.de - -// src points to the yaz0 source data (to the "real" source data, not at the header!) -// dst points to a buffer uncompressedSize bytes large (you get uncompressedSize from -// the second 4 bytes in the Yaz0 header). -void yaz0_decode(uint8_t* src, uint8_t* dst, int uncompressedSize) -{ - int srcPlace = 0, dstPlace = 0; // current read/write positions - - unsigned int validBitCount = 0; // number of valid bits left in "code" byte - uint8_t currCodeByte; - while (dstPlace < uncompressedSize) - { - // read new "code" byte if the current one is used up - if (validBitCount == 0) - { - currCodeByte = src[srcPlace]; - ++srcPlace; - validBitCount = 8; - } - - if ((currCodeByte & 0x80) != 0) - { - // straight copy - dst[dstPlace] = src[srcPlace]; - dstPlace++; - srcPlace++; - } - else - { - // RLE part - uint8_t byte1 = src[srcPlace]; - uint8_t byte2 = src[srcPlace + 1]; - srcPlace += 2; - - unsigned int dist = ((byte1 & 0xF) << 8) | byte2; - unsigned int copySource = dstPlace - (dist + 1); - - unsigned int numBytes = byte1 >> 4; - if (numBytes == 0) - { - numBytes = src[srcPlace] + 0x12; - srcPlace++; - } - else - { - numBytes += 2; - } - - // copy run - for (unsigned int i = 0; i < numBytes; ++i) - { - dst[dstPlace] = dst[copySource]; - copySource++; - dstPlace++; - } - } - - // use next bit from "code" byte - currCodeByte <<= 1; - validBitCount -= 1; - } -} - -// encoder implementation by shevious, with bug fixes by notwa - -typedef uint32_t uint32_t; -typedef uint8_t uint8_t; - -#define MAX_RUNLEN (0xFF + 0x12) - -// simple and straight encoding scheme for Yaz0 -static uint32_t simpleEnc(uint8_t *src, int size, int pos, uint32_t *pMatchPos) -{ - int numBytes = 1; - int matchPos = 0; - - int startPos = pos - 0x1000; - int end = size - pos; - - if (startPos < 0) - startPos = 0; - - // maximum runlength for 3 byte encoding - if (end > MAX_RUNLEN) - end = MAX_RUNLEN; - - for (int i = startPos; i < pos; i++) - { - int j; - - for (j = 0; j < end; j++) - { - if (src[i + j] != src[j + pos]) - break; - } - if (j > numBytes) - { - numBytes = j; - matchPos = i; - } - } - - *pMatchPos = matchPos; - - if (numBytes == 2) - numBytes = 1; - - return numBytes; -} - -// a lookahead encoding scheme for ngc Yaz0 -static uint32_t nintendoEnc(uint8_t *src, int size, int pos, uint32_t *pMatchPos) -{ - uint32_t numBytes = 1; - static uint32_t numBytes1; - static uint32_t matchPos; - static int prevFlag = 0; - - // if prevFlag is set, it means that the previous position - // was determined by look-ahead try. - // so just use it. this is not the best optimization, - // but nintendo's choice for speed. - if (prevFlag == 1) - { - *pMatchPos = matchPos; - prevFlag = 0; - return numBytes1; - } - - prevFlag = 0; - numBytes = simpleEnc(src, size, pos, &matchPos); - *pMatchPos = matchPos; - - // if this position is RLE encoded, then compare to copying 1 byte and next position(pos+1) encoding - if (numBytes >= 3) - { - numBytes1 = simpleEnc(src, size, pos + 1, &matchPos); - // if the next position encoding is +2 longer than current position, choose it. - // this does not guarantee the best optimization, but fairly good optimization with speed. - if (numBytes1 >= numBytes + 2) - { - numBytes = 1; - prevFlag = 1; - } - } - return numBytes; -} - -int yaz0_encode(uint8_t *src, uint8_t *dst, int srcSize) -{ - int srcPos = 0; - int dstPos = 0; - int bufPos = 0; - - uint8_t buf[24]; // 8 codes * 3 bytes maximum - - uint32_t validBitCount = 0; // number of valid bits left in "code" byte - uint8_t currCodeByte = 0; // a bitfield, set bits meaning copy, unset meaning RLE - - while (srcPos < srcSize) - { - uint32_t numBytes; - uint32_t matchPos; - - numBytes = nintendoEnc(src, srcSize, srcPos, &matchPos); - if (numBytes < 3) - { - // straight copy - buf[bufPos] = src[srcPos]; - bufPos++; - srcPos++; - //set flag for straight copy - currCodeByte |= (0x80 >> validBitCount); - } - else - { - //RLE part - uint32_t dist = srcPos - matchPos - 1; - uint8_t byte1, byte2, byte3; - - if (numBytes >= 0x12) // 3 byte encoding - { - byte1 = 0 | (dist >> 8); - byte2 = dist & 0xFF; - buf[bufPos++] = byte1; - buf[bufPos++] = byte2; - // maximum runlength for 3 byte encoding - if (numBytes > MAX_RUNLEN) - numBytes = MAX_RUNLEN; - byte3 = numBytes - 0x12; - buf[bufPos++] = byte3; - } - else // 2 byte encoding - { - byte1 = ((numBytes - 2) << 4) | (dist >> 8); - byte2 = dist & 0xFF; - buf[bufPos++] = byte1; - buf[bufPos++] = byte2; - } - srcPos += numBytes; - } - - validBitCount++; - - // write eight codes - if (validBitCount == 8) - { - dst[dstPos++] = currCodeByte; - for (int j = 0; j < bufPos; j++) - dst[dstPos++] = buf[j]; - - currCodeByte = 0; - validBitCount = 0; - bufPos = 0; - } - } - - if (validBitCount > 0) - { - dst[dstPos++] = currCodeByte; - for (int j = 0; j < bufPos; j++) - dst[dstPos++] = buf[j]; - - currCodeByte = 0; - validBitCount = 0; - bufPos = 0; - } - - return dstPos; -} diff --git a/tools/yaz0.h b/tools/yaz0.h deleted file mode 100644 index 0cc3703ec..000000000 --- a/tools/yaz0.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _YAZ0_H_ -#define _YAZ0_H_ - -int yaz0_encode2(uint8_t *src, uint8_t *dest, int uncompressedSize); - -void yaz0_decode(uint8_t* src, uint8_t* dst, int uncompressedSize); - -int yaz0_encode(uint8_t *src, uint8_t *dest, int srcSize); - -#endif // _YAZ0_H_ diff --git a/tools/yaz0tool.c b/tools/yaz0tool.c deleted file mode 100644 index b21468fa2..000000000 --- a/tools/yaz0tool.c +++ /dev/null @@ -1,201 +0,0 @@ -#ifdef __linux__ -#define _POSIX_C_SOURCE 199309L -#endif - -#include -#include -#include -#include -#include -#include -#include - -#include "yaz0.h" -#include "util.h" - -// TODO: Windows support -static unsigned long int get_time_milliseconds(void) -{ -#ifdef __linux__ - struct timespec tspec; - - clock_gettime(CLOCK_MONOTONIC, &tspec); - return (tspec.tv_sec * 1000) + tspec.tv_nsec / 1000000; -#else - // dummy - return 0; -#endif -} - -static void print_report(unsigned long int time, size_t compSize, size_t uncompSize) -{ - unsigned int minutes = time / (1000 * 60); - float seconds = (float)(time % (1000 * 60)) / 1000; - - printf("compression ratio: %.2fKiB / %.2fKiB (%.2f%%)\n" - "time: %um %.3fs\n", - (float)compSize / 1024, (float)uncompSize / 1024, - (float)compSize * 100 / (float)uncompSize, - minutes, seconds); -} - -static void compress_file(const char *inputFileName, const char *outputFileName, bool verbose) -{ - size_t uncompSize; - uint8_t *input = util_read_whole_file(inputFileName, &uncompSize); - uint8_t *output = malloc(uncompSize * 2); // TODO: figure out how much space we need - unsigned long int time; - - if (verbose) - { - printf("decompressing %s\n", inputFileName); - time = get_time_milliseconds(); - } - - // compress data - size_t compSize = yaz0_encode(input, output, uncompSize); - - if (verbose) - time = get_time_milliseconds() - time; - - // make Yaz0 header - uint8_t header[16] = {0}; - header[0] = 'Y'; - header[1] = 'a'; - header[2] = 'z'; - header[3] = '0'; - util_write_uint32_be(header + 4, uncompSize); - - // write output file - FILE *outFile = fopen(outputFileName, "wb"); - if (outFile == NULL) - util_fatal_error("failed to open file '%s' for writing", outputFileName); - fwrite(header, sizeof(header), 1, outFile); - fwrite(output, compSize, 1, outFile); - fclose(outFile); - - free(input); - free(output); - - if (verbose) - print_report(time, compSize, uncompSize); -} - -static void decompress_file(const char *inputFileName, const char *outputFileName, bool verbose) -{ - size_t compSize; - uint8_t *input = util_read_whole_file(inputFileName, &compSize); - size_t uncompSize; - uint8_t *output; - unsigned long int time = 0; - - // read header - if (input[0] != 'Y' || input[1] != 'a' || input[2] != 'z' || input[3] != '0') - util_fatal_error("file '%s' does not have a valid Yaz0 header", inputFileName); - uncompSize = util_read_uint32_be(input + 4); - - // decompress data - output = malloc(uncompSize); - - if (verbose) - { - printf("decompressing %s\n", inputFileName); - time = get_time_milliseconds(); - } - - yaz0_decode(input + 16, output, uncompSize); - - if (verbose) - time = get_time_milliseconds() - time; - - // write output file - FILE *outFile = fopen(outputFileName, "wb"); - fwrite(output, uncompSize, 1, outFile); - fclose(outFile); - - free(input); - free(output); - - if (verbose) - print_report(time, compSize, uncompSize); -} - -static void usage(const char *execName) -{ - printf("Yaz0 compressor/decompressor\n" - "usage: %s [-d] [-h] [-v] INPUT_FILE OUTPUT_FILE\n" - "compresses INPUT_FILE using Yaz0 encoding and writes output to OUTPUT_FILE\n" - "Available options:\n" - "-d: decompresses INPUT_FILE, a Yaz0 compressed file, and writes decompressed\n" - " output to OUTPUT_FILE\n" - "-v: prints verbose output (compression ratio and time)\n" - "-h: shows this help message\n", - execName); -} - -int main(int argc, char **argv) -{ - int i; - const char *inputFileName = NULL; - const char *outputFileName = NULL; - bool decompress = false; - bool verbose = false; - - // parse arguments - for (i = 1; i < argc; i++) - { - char *arg = argv[i]; - - if (arg[0] == '-') - { - if (strcmp(arg, "-d") == 0) - decompress = true; - else if (strcmp(arg, "-v") == 0) - verbose = true; - else if (strcmp(arg, "-h") == 0) - { - usage(argv[0]); - return 0; - } - else - { - printf("unknown option %s\n", arg); - usage(argv[0]); - return 1; - } - } - else - { - if (inputFileName == NULL) - inputFileName = arg; - else if (outputFileName == NULL) - outputFileName = arg; - else - { - puts("too many files specified"); - usage(argv[0]); - return 1; - } - } - } - - if (inputFileName == NULL) - { - puts("no input file specified"); - usage(argv[0]); - return 1; - } - if (outputFileName == NULL) - { - puts("no output file specified"); - usage(argv[0]); - return 1; - } - - if (decompress) - decompress_file(inputFileName, outputFileName, verbose); - else - compress_file(inputFileName, outputFileName, verbose); - - return 0; -} From 06bbdf88f1a38bec6300ce451b061522802e3371 Mon Sep 17 00:00:00 2001 From: fig02 Date: Tue, 18 Jun 2024 23:46:36 -0400 Subject: [PATCH 20/29] Revamp "AnimationContext" Docs, now called "AnimTaskQueue" (#1941) * start using task terminology * more docs * format * cleanups * MoveActor -> ActorMove * missed a couple * hopefully the last changes * comment explaining the group change * some review * dragorn review * remove accidental file * fix matching issue, now use while loop --- include/z64.h | 2 +- include/z64animation.h | 130 +++---- src/code/z_play.c | 8 +- src/code/z_skelanime.c | 337 ++++++++++-------- src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c | 6 +- src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c | 2 +- src/overlays/actors/ovl_En_In/z_en_in.c | 2 +- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 2 +- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 6 +- src/overlays/actors/ovl_En_Test/z_en_test.c | 10 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 6 +- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 2 +- src/overlays/actors/ovl_En_Zl4/z_en_zl4.c | 2 +- .../actors/ovl_player_actor/z_player.c | 57 +-- 14 files changed, 310 insertions(+), 262 deletions(-) mode change 100755 => 100644 include/z64animation.h diff --git a/include/z64.h b/include/z64.h index 194d95721..85ba06e8a 100644 --- a/include/z64.h +++ b/include/z64.h @@ -396,7 +396,7 @@ typedef struct PlayState { /* 0x10760 */ PauseContext pauseCtx; /* 0x10A20 */ GameOverContext gameOverCtx; /* 0x10A24 */ EnvironmentContext envCtx; - /* 0x10B20 */ AnimationContext animationCtx; + /* 0x10B20 */ AnimTaskQueue animTaskQueue; /* 0x117A4 */ ObjectContext objectCtx; /* 0x11CBC */ RoomContext roomCtx; /* 0x11D34 */ TransitionActorContext transiActorCtx; diff --git a/include/z64animation.h b/include/z64animation.h old mode 100755 new mode 100644 index ca87a69d1..a0b4982b7 --- a/include/z64animation.h +++ b/include/z64animation.h @@ -91,7 +91,7 @@ typedef enum { #define ANIM_FLAG_0 (1 << 0) // (no effect outside of player) Related to scaling an animation from/to child/adult #define ANIM_FLAG_UPDATE_Y (1 << 1) #define ANIM_FLAG_PLAYER_2 (1 << 2) // (player-only) Related to scaling an animation from/to child/adult -#define ANIM_FLAG_PLAYER_SETMOVE (1 << 3) // (player-only) Call AnimationContext_SetMoveActor +#define ANIM_FLAG_PLAYER_SETMOVE (1 << 3) // (player-only) Call AnimTaskQueue_AddActorMove #define ANIM_FLAG_NO_MOVE (1 << 4) #define ANIM_FLAG_PLAYER_7 (1 << 7) // (player-only) @@ -239,95 +239,95 @@ s16 Animation_GetLength(void* animation); s16 Animation_GetLastFrame(void* animation); /* - * Animation requests + * Animation Task Queue */ typedef enum { - /* 0 */ ANIMENTRY_LOADFRAME, - /* 1 */ ANIMENTRY_COPYALL, - /* 2 */ ANIMENTRY_INTERP, - /* 3 */ ANIMENTRY_COPYTRUE, - /* 4 */ ANIMENTRY_COPYFALSE, - /* 5 */ ANIMENTRY_MOVEACTOR -} AnimationType; + /* 0 */ ANIMTASK_LOAD_PLAYER_FRAME, + /* 1 */ ANIMTASK_COPY, + /* 2 */ ANIMTASK_INTERP, + /* 3 */ ANIMTASK_COPY_USING_MAP, + /* 4 */ ANIMTASK_COPY_USING_MAP_INVERTED, + /* 5 */ ANIMTASK_ACTOR_MOVE +} AnimTaskType; typedef struct { - /* 0x000 */ DmaRequest req; - /* 0x020 */ OSMesgQueue msgQueue; - /* 0x038 */ OSMesg msg; -} AnimEntryLoadFrame; // size = 0x3C + /* 0x00 */ DmaRequest req; + /* 0x20 */ OSMesgQueue msgQueue; + /* 0x38 */ OSMesg msg; +} AnimTaskLoadPlayerFrame; // size = 0x3C typedef struct { - /* 0x000 */ u8 queueFlag; - /* 0x001 */ u8 vecCount; - /* 0x004 */ Vec3s* dst; - /* 0x008 */ Vec3s* src; -} AnimEntryCopyAll; // size = 0xC + /* 0x00 */ u8 group; + /* 0x01 */ u8 vecCount; + /* 0x04 */ Vec3s* dest; + /* 0x08 */ Vec3s* src; +} AnimTaskCopy; // size = 0xC typedef struct { - /* 0x000 */ u8 queueFlag; - /* 0x001 */ u8 vecCount; - /* 0x004 */ Vec3s* base; - /* 0x008 */ Vec3s* mod; - /* 0x00C */ f32 weight; -} AnimEntryInterp; // size = 0x10 + /* 0x00 */ u8 group; + /* 0x01 */ u8 vecCount; + /* 0x04 */ Vec3s* base; + /* 0x08 */ Vec3s* mod; + /* 0x0C */ f32 weight; +} AnimTaskInterp; // size = 0x10 typedef struct { - /* 0x000 */ u8 queueFlag; - /* 0x001 */ u8 vecCount; - /* 0x004 */ Vec3s* dst; - /* 0x008 */ Vec3s* src; - /* 0x00C */ u8* copyFlag; -} AnimEntryCopyTrue; // size = 0x10 + /* 0x00 */ u8 group; + /* 0x01 */ u8 vecCount; + /* 0x04 */ Vec3s* dest; + /* 0x08 */ Vec3s* src; + /* 0x0C */ u8* limbCopyMap; +} AnimTaskCopyUsingMap; // size = 0x10 typedef struct { - /* 0x000 */ u8 queueFlag; - /* 0x001 */ u8 vecCount; - /* 0x004 */ Vec3s* dst; - /* 0x008 */ Vec3s* src; - /* 0x00C */ u8* copyFlag; -} AnimEntryCopyFalse; // size = 0x10 + /* 0x00 */ u8 group; + /* 0x01 */ u8 vecCount; + /* 0x04 */ Vec3s* dest; + /* 0x08 */ Vec3s* src; + /* 0x0C */ u8* limbCopyMap; +} AnimTaskCopyUsingMapInverted; // size = 0x10 typedef struct { - /* 0x000 */ struct Actor* actor; - /* 0x004 */ struct SkelAnime* skelAnime; - /* 0x008 */ f32 diffScaleY; -} AnimEntryMoveActor; // size = 0xC + /* 0x00 */ struct Actor* actor; + /* 0x04 */ struct SkelAnime* skelAnime; + /* 0x08 */ f32 diffScaleY; +} AnimTaskActorMove; // size = 0xC typedef union { - AnimEntryLoadFrame load; - AnimEntryCopyAll copy; - AnimEntryInterp interp; - AnimEntryCopyTrue copy1; - AnimEntryCopyFalse copy0; - AnimEntryMoveActor move; -} AnimationEntryData; // size = 0x3C + AnimTaskLoadPlayerFrame loadPlayerFrame; + AnimTaskCopy copy; + AnimTaskInterp interp; + AnimTaskCopyUsingMap copyUsingMap; + AnimTaskCopyUsingMapInverted copyUsingMapInverted; + AnimTaskActorMove actorMove; +} AnimTaskData; // size = 0x3C typedef struct { /* 0x00 */ u8 type; - /* 0x04 */ AnimationEntryData data; -} AnimationEntry; // size = 0x40 + /* 0x04 */ AnimTaskData data; +} AnimTask; // size = 0x40 -#define ANIMATION_ENTRY_MAX 50 +#define ANIM_TASK_QUEUE_MAX 50 -typedef struct AnimationContext { - s16 animationCount; - AnimationEntry entries[ANIMATION_ENTRY_MAX]; -} AnimationContext; // size = 0xC84 +typedef struct AnimTaskQueue { + s16 count; + AnimTask tasks[ANIM_TASK_QUEUE_MAX]; +} AnimTaskQueue; // size = 0xC84 -void AnimationContext_SetLoadFrame(struct PlayState* play, LinkAnimationHeader* animation, s32 frame, s32 limbCount, - Vec3s* frameTable); -void AnimationContext_SetCopyAll(struct PlayState* play, s32 vecCount, Vec3s* dst, Vec3s* src); -void AnimationContext_SetCopyTrue(struct PlayState* play, s32 vecCount, Vec3s* dst, Vec3s* src, u8* copyFlag); -void AnimationContext_SetCopyFalse(struct PlayState* play, s32 vecCount, Vec3s* dst, Vec3s* src, u8* copyFlag); -void AnimationContext_SetInterp(struct PlayState* play, s32 vecCount, Vec3s* base, Vec3s* mod, f32 weight); -void AnimationContext_SetMoveActor(struct PlayState* play, struct Actor* actor, SkelAnime* skelAnime, f32 moveDiffScaleY); +void AnimTaskQueue_AddLoadPlayerFrame(struct PlayState* play, LinkAnimationHeader* animation, s32 frame, s32 limbCount, + Vec3s* frameTable); +void AnimTaskQueue_AddCopy(struct PlayState* play, s32 vecCount, Vec3s* dest, Vec3s* src); +void AnimTaskQueue_AddInterp(struct PlayState* play, s32 vecCount, Vec3s* base, Vec3s* mod, f32 weight); +void AnimTaskQueue_AddCopyUsingMap(struct PlayState* play, s32 vecCount, Vec3s* dest, Vec3s* src, u8* limbCopyMap); +void AnimTaskQueue_AddCopyUsingMapInverted(struct PlayState* play, s32 vecCount, Vec3s* dest, Vec3s* src, u8* limbCopyMap); +void AnimTaskQueue_AddActorMove(struct PlayState* play, struct Actor* actor, SkelAnime* skelAnime, f32 moveDiffScaleY); -void AnimationContext_SetNextQueue(struct PlayState* play); -void AnimationContext_DisableQueue(struct PlayState* play); +void AnimTaskQueue_SetNextGroup(struct PlayState* play); +void AnimTaskQueue_DisableTransformTasksForGroup(struct PlayState* play); -void AnimationContext_Reset(AnimationContext* animationCtx); -void AnimationContext_Update(struct PlayState* play, AnimationContext* animationCtx); +void AnimTaskQueue_Reset(AnimTaskQueue* animTaskQueue); +void AnimTaskQueue_Update(struct PlayState* play, AnimTaskQueue* animTaskQueue); /* * Link animations diff --git a/src/code/z_play.c b/src/code/z_play.c index f86986839..589ea596c 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -284,7 +284,7 @@ void Play_Init(GameState* thisx) { Effect_InitContext(this); EffectSs_InitInfo(this, 0x55); CollisionCheck_InitContext(this, &this->colChkCtx); - AnimationContext_Reset(&this->animationCtx); + AnimTaskQueue_Reset(&this->animTaskQueue); Cutscene_InitContext(this, &this->csCtx); if (gSaveContext.nextCutsceneIndex != 0xFFEF) { @@ -454,7 +454,7 @@ void Play_Init(GameState* thisx) { gSaveContext.seqId = this->sequenceCtx.seqId; gSaveContext.natureAmbienceId = this->sequenceCtx.natureAmbienceId; func_8002DF18(this, GET_PLAYER(this)); - AnimationContext_Update(this, &this->animationCtx); + AnimTaskQueue_Update(this, &this->animTaskQueue); gSaveContext.respawnFlag = 0; #if OOT_DEBUG @@ -883,7 +883,7 @@ void Play_Update(PlayState* this) { isPaused = IS_PAUSED(&this->pauseCtx); PLAY_LOG(3555); - AnimationContext_Reset(&this->animationCtx); + AnimTaskQueue_Reset(&this->animTaskQueue); if (!OOT_DEBUG) {} @@ -1000,7 +1000,7 @@ void Play_Update(PlayState* this) { Interface_Update(this); PLAY_LOG(3765); - AnimationContext_Update(this, &this->animationCtx); + AnimTaskQueue_Update(this, &this->animTaskQueue); PLAY_LOG(3771); SfxSource_UpdateAll(this); diff --git a/src/code/z_skelanime.c b/src/code/z_skelanime.c index 42dfa4e9b..acc01cb74 100644 --- a/src/code/z_skelanime.c +++ b/src/code/z_skelanime.c @@ -9,9 +9,6 @@ s32 SkelAnime_LoopFull(SkelAnime* skelAnime); s32 SkelAnime_Once(SkelAnime* skelAnime); s32 SkelAnime_LoopPartial(SkelAnime* skelAnime); -static u32 sDisableAnimQueueFlags = 0; -static u32 sAnimQueueFlags; - /** * Draw a limb of type `LodLimb` * Near or far display list is specified via `lod` @@ -798,39 +795,64 @@ void SkelAnime_InterpFrameTable(s32 limbCount, Vec3s* dst, Vec3s* start, Vec3s* } } +static u32 sDisabledTransformTaskGroups = 0; +static u32 sCurAnimTaskGroup; + /** - * zeroes out the current request count + * Clear the current task queue. The discarded tasks will then not be processed. */ -void AnimationContext_Reset(AnimationContext* animationCtx) { - animationCtx->animationCount = 0; +void AnimTaskQueue_Reset(AnimTaskQueue* animTaskQueue) { + animTaskQueue->count = 0; } /** - * Shifts the queue flag to the next queue + * Changes `sCurAnimTaskGroup` to the next group number. + * + * Task groups allow for disabling "transformative" tasks for a defined group. + * For more information see `AnimTaskQueue_DisableTransformTasksForGroup`. + * + * Note that `sCurAnimTaskGroup` is not a whole number that increments, it is handled at the bit-level. + * Every time the group number changes, a single bit moves 1 position to the left. This is an implementation detail + * that allows for `sDisabledTransformTaskGroups` to compare against a set of bit flags. */ -void AnimationContext_SetNextQueue(PlayState* play) { - sAnimQueueFlags <<= 1; +void AnimTaskQueue_SetNextGroup(PlayState* play) { + sCurAnimTaskGroup <<= 1; } /** - * Disables the current animation queue. Only load and move actor requests will be processed for that queue. + * Marks the current task group as disabled so that "transformative" tasks are skipped. + * A transformative task is one that will alter the appearance of an animation. + * These include Copy, Interp, CopyUsingMap, and CopyUsingMapInverted. + * + * LoadPlayerFrame and ActorMove, which don't alter the appearance of an existing animation, + * will always run even if a group has its transformative tasks disabled. */ -void AnimationContext_DisableQueue(PlayState* play) { - sDisableAnimQueueFlags |= sAnimQueueFlags; +void AnimTaskQueue_DisableTransformTasksForGroup(PlayState* play) { + sDisabledTransformTaskGroups |= sCurAnimTaskGroup; } -AnimationEntry* AnimationContext_AddEntry(AnimationContext* animationCtx, AnimationType type) { - AnimationEntry* entry; - s16 index = animationCtx->animationCount; +/** + * Creates a new task and adds it to the queue, if there is room for it. + * + * The `type` value for the task gets set here, but all other + * initialization must be handled by the caller. + * + * @return a pointer to the task, or NULL if it could not be added + */ +AnimTask* AnimTaskQueue_NewTask(AnimTaskQueue* animTaskQueue, s32 type) { + AnimTask* task; + s16 taskNumber = animTaskQueue->count; - if (index >= ANIMATION_ENTRY_MAX) { + if (taskNumber >= ANIM_TASK_QUEUE_MAX) { return NULL; } - animationCtx->animationCount = index + 1; - entry = &animationCtx->entries[index]; - entry->type = type; - return entry; + animTaskQueue->count = taskNumber + 1; + + task = &animTaskQueue->tasks[taskNumber]; + task->type = type; + + return task; } #define LINK_ANIMATION_OFFSET(addr, offset) \ @@ -838,205 +860,230 @@ AnimationEntry* AnimationContext_AddEntry(AnimationContext* animationCtx, Animat (offset)) /** - * Requests loading frame data from the Link animation into frameTable + * Creates a task which will load a single frame of animation data from the link_animetion file. + * The asynchronous DMA request to load the data is made as soon as the task is created. + * When the task is processed later in the AnimTaskQueue, it will wait for the DMA to finish. */ -void AnimationContext_SetLoadFrame(PlayState* play, LinkAnimationHeader* animation, s32 frame, s32 limbCount, - Vec3s* frameTable) { - AnimationEntry* entry = AnimationContext_AddEntry(&play->animationCtx, ANIMENTRY_LOADFRAME); +void AnimTaskQueue_AddLoadPlayerFrame(PlayState* play, LinkAnimationHeader* animation, s32 frame, s32 limbCount, + Vec3s* frameTable) { + AnimTask* task = AnimTaskQueue_NewTask(&play->animTaskQueue, ANIMTASK_LOAD_PLAYER_FRAME); - if (entry != NULL) { + if (task != NULL) { LinkAnimationHeader* linkAnimHeader = SEGMENTED_TO_VIRTUAL(animation); s32 pad; - osCreateMesgQueue(&entry->data.load.msgQueue, &entry->data.load.msg, 1); - DMA_REQUEST_ASYNC(&entry->data.load.req, frameTable, + osCreateMesgQueue(&task->data.loadPlayerFrame.msgQueue, &task->data.loadPlayerFrame.msg, 1); + DMA_REQUEST_ASYNC(&task->data.loadPlayerFrame.req, frameTable, LINK_ANIMATION_OFFSET(linkAnimHeader->segment, ((sizeof(Vec3s) * limbCount + 2) * frame)), - sizeof(Vec3s) * limbCount + 2, 0, &entry->data.load.msgQueue, NULL, "../z_skelanime.c", 2004); + sizeof(Vec3s) * limbCount + 2, 0, &task->data.loadPlayerFrame.msgQueue, NULL, + "../z_skelanime.c", 2004); } } /** - * Requests copying all vectors from src frame table into dst frame table + * Creates a task which will copy all vectors from the `src` frame table to the `dest` frame table. + * + * Note: This task is "transformative", meaning it will alter the appearance of an animation. + * If this task's group is included in `sDisabledTransformTaskGroups`, this task will be skipped for that frame. */ -void AnimationContext_SetCopyAll(PlayState* play, s32 vecCount, Vec3s* dst, Vec3s* src) { - AnimationEntry* entry = AnimationContext_AddEntry(&play->animationCtx, ANIMENTRY_COPYALL); +void AnimTaskQueue_AddCopy(PlayState* play, s32 vecCount, Vec3s* dest, Vec3s* src) { + AnimTask* task = AnimTaskQueue_NewTask(&play->animTaskQueue, ANIMTASK_COPY); - if (entry != NULL) { - entry->data.copy.queueFlag = sAnimQueueFlags; - entry->data.copy.vecCount = vecCount; - entry->data.copy.dst = dst; - entry->data.copy.src = src; + if (task != NULL) { + task->data.copy.group = sCurAnimTaskGroup; + task->data.copy.vecCount = vecCount; + task->data.copy.dest = dest; + task->data.copy.src = src; } } /** - * Requests interpolating between base and mod frame tables with the given weight, placing the result in base + * Creates a task which will interpolate between the `base` and `mod` frame tables. + * The result of the interpolation will be placed in the original `base` table. + * + * Note: This task is "transformative", meaning it will alter the appearance of an animation. + * If this task's group is included in `sDisabledTransformTaskGroups`, this task will be skipped for that frame. */ -void AnimationContext_SetInterp(PlayState* play, s32 vecCount, Vec3s* base, Vec3s* mod, f32 weight) { - AnimationEntry* entry = AnimationContext_AddEntry(&play->animationCtx, ANIMENTRY_INTERP); +void AnimTaskQueue_AddInterp(PlayState* play, s32 vecCount, Vec3s* base, Vec3s* mod, f32 weight) { + AnimTask* task = AnimTaskQueue_NewTask(&play->animTaskQueue, ANIMTASK_INTERP); - if (entry != NULL) { - entry->data.interp.queueFlag = sAnimQueueFlags; - entry->data.interp.vecCount = vecCount; - entry->data.interp.base = base; - entry->data.interp.mod = mod; - entry->data.interp.weight = weight; + if (task != NULL) { + task->data.interp.group = sCurAnimTaskGroup; + task->data.interp.vecCount = vecCount; + task->data.interp.base = base; + task->data.interp.mod = mod; + task->data.interp.weight = weight; } } /** - * Requests copying vectors from src frame table to dst frame table whose copy flag is true + * Creates a task which will copy specified vectors from the `src` frame table to the `dest` frame table. + * Exactly which vectors will be copied is specified by the `limbCopyMap`. + * + * The copy map is an array of true/false flags that specify which limbs should have their data copied. + * Each index of the map corresponds to a limb number in the skeleton. + * Every limb that has `true` listed will have its data copied. + * + * Note: This task is "transformative", meaning it will alter the appearance of an animation. + * If this task's group is included in `sDisabledTransformTaskGroups`, this task will be skipped for that frame. */ -void AnimationContext_SetCopyTrue(PlayState* play, s32 vecCount, Vec3s* dst, Vec3s* src, u8* copyFlag) { - AnimationEntry* entry = AnimationContext_AddEntry(&play->animationCtx, ANIMENTRY_COPYTRUE); +void AnimTaskQueue_AddCopyUsingMap(PlayState* play, s32 vecCount, Vec3s* dest, Vec3s* src, u8* limbCopyMap) { + AnimTask* task = AnimTaskQueue_NewTask(&play->animTaskQueue, ANIMTASK_COPY_USING_MAP); - if (entry != NULL) { - entry->data.copy1.queueFlag = sAnimQueueFlags; - entry->data.copy1.vecCount = vecCount; - entry->data.copy1.dst = dst; - entry->data.copy1.src = src; - entry->data.copy1.copyFlag = copyFlag; + if (task != NULL) { + task->data.copyUsingMap.group = sCurAnimTaskGroup; + task->data.copyUsingMap.vecCount = vecCount; + task->data.copyUsingMap.dest = dest; + task->data.copyUsingMap.src = src; + task->data.copyUsingMap.limbCopyMap = limbCopyMap; } } /** - * Requests copying vectors from src frame table to dst frame table whose copy flag is false + * Identical to `AnimTaskQueue_AddCopyUsingMap`, except the meaning of the flags in the `limbCopyMap` are inverted. + * Any entry that specifies `false` will be copied, and any entry that specifies `true` will not. + * + * Note: This task is "transformative", meaning it will alter the appearance of an animation. + * If this task's group is included in `sDisabledTransformTaskGroups`, this task will be skipped for that frame. */ -void AnimationContext_SetCopyFalse(PlayState* play, s32 vecCount, Vec3s* dst, Vec3s* src, u8* copyFlag) { - AnimationEntry* entry = AnimationContext_AddEntry(&play->animationCtx, ANIMENTRY_COPYFALSE); +void AnimTaskQueue_AddCopyUsingMapInverted(PlayState* play, s32 vecCount, Vec3s* dest, Vec3s* src, u8* limbCopyMap) { + AnimTask* task = AnimTaskQueue_NewTask(&play->animTaskQueue, ANIMTASK_COPY_USING_MAP_INVERTED); - if (entry != NULL) { - entry->data.copy0.queueFlag = sAnimQueueFlags; - entry->data.copy0.vecCount = vecCount; - entry->data.copy0.dst = dst; - entry->data.copy0.src = src; - entry->data.copy0.copyFlag = copyFlag; + if (task != NULL) { + task->data.copyUsingMapInverted.group = sCurAnimTaskGroup; + task->data.copyUsingMapInverted.vecCount = vecCount; + task->data.copyUsingMapInverted.dest = dest; + task->data.copyUsingMapInverted.src = src; + task->data.copyUsingMapInverted.limbCopyMap = limbCopyMap; } } /** - * Requests moving an actor according to the translation of its root limb + * Creates a task which will move an actor according to the translation of its root limb for the current frame. */ -void AnimationContext_SetMoveActor(PlayState* play, Actor* actor, SkelAnime* skelAnime, f32 moveDiffScaleY) { - AnimationEntry* entry = AnimationContext_AddEntry(&play->animationCtx, ANIMENTRY_MOVEACTOR); +void AnimTaskQueue_AddActorMove(PlayState* play, Actor* actor, SkelAnime* skelAnime, f32 moveDiffScaleY) { + AnimTask* task = AnimTaskQueue_NewTask(&play->animTaskQueue, ANIMTASK_ACTOR_MOVE); - if (entry != NULL) { - entry->data.move.actor = actor; - entry->data.move.skelAnime = skelAnime; - entry->data.move.diffScaleY = moveDiffScaleY; + if (task != NULL) { + task->data.actorMove.actor = actor; + task->data.actorMove.skelAnime = skelAnime; + task->data.actorMove.diffScaleY = moveDiffScaleY; } } /** - * Receives the request for Link's animation frame data + * Wait for the DMA request submitted by `AnimTaskQueue_AddLoadPlayerFrame` to complete. */ -void AnimationContext_LoadFrame(PlayState* play, AnimationEntryData* data) { - AnimEntryLoadFrame* entry = &data->load; +void AnimTask_LoadPlayerFrame(PlayState* play, AnimTaskData* data) { + AnimTaskLoadPlayerFrame* task = &data->loadPlayerFrame; - osRecvMesg(&entry->msgQueue, NULL, OS_MESG_BLOCK); + osRecvMesg(&task->msgQueue, NULL, OS_MESG_BLOCK); } /** - * If the entry's queue is enabled, copies all vectors from src frame table to dst frame table + * Copy all data from the `src` frame table to the `dest` table. */ -void AnimationContext_CopyAll(PlayState* play, AnimationEntryData* data) { - AnimEntryCopyAll* entry = &data->copy; +void AnimTask_Copy(PlayState* play, AnimTaskData* data) { + AnimTaskCopy* task = &data->copy; - if (!(entry->queueFlag & sDisableAnimQueueFlags)) { - Vec3s* dst = entry->dst; - Vec3s* src = entry->src; + if (!(task->group & sDisabledTransformTaskGroups)) { + Vec3s* dest = task->dest; + Vec3s* src = task->src; s32 i; - for (i = 0; i < entry->vecCount; i++) { - *dst++ = *src++; + for (i = 0; i < task->vecCount; i++) { + *dest++ = *src++; } } } /** - * If the entry's queue is enabled, interpolates between the base and mod frame tables, placing the result in base + * Interpolate between the `base` and `mod` frame tables. */ -void AnimationContext_Interp(PlayState* play, AnimationEntryData* data) { - AnimEntryInterp* entry = &data->interp; +void AnimTask_Interp(PlayState* play, AnimTaskData* data) { + AnimTaskInterp* task = &data->interp; - if (!(entry->queueFlag & sDisableAnimQueueFlags)) { - SkelAnime_InterpFrameTable(entry->vecCount, entry->base, entry->base, entry->mod, entry->weight); + if (!(task->group & sDisabledTransformTaskGroups)) { + SkelAnime_InterpFrameTable(task->vecCount, task->base, task->base, task->mod, task->weight); } } /** - * If the entry's queue is enabled, copies all vectors from src frame table to dst frame table whose copy flag is true + * Copy all data from the `src` frame table to the `dest` table according to the copy map. */ -void AnimationContext_CopyTrue(PlayState* play, AnimationEntryData* data) { - AnimEntryCopyTrue* entry = &data->copy1; +void AnimTask_CopyUsingMap(PlayState* play, AnimTaskData* data) { + AnimTaskCopyUsingMap* task = &data->copyUsingMap; - if (!(entry->queueFlag & sDisableAnimQueueFlags)) { - Vec3s* dst = entry->dst; - Vec3s* src = entry->src; - u8* copyFlag = entry->copyFlag; + if (!(task->group & sDisabledTransformTaskGroups)) { + Vec3s* dest = task->dest; + Vec3s* src = task->src; + u8* limbCopyMap = task->limbCopyMap; s32 i; - for (i = 0; i < entry->vecCount; i++, dst++, src++) { - if (*copyFlag++) { - *dst = *src; + for (i = 0; i < task->vecCount; i++, dest++, src++) { + if (*limbCopyMap++) { + *dest = *src; } } } } /** - * If the entry's queue is enabled, copies all vectors from src frame table to dst frame table whose copy flag is false + * Copy all data from the `src` frame table to the `dest` table according to the inverted copy map. */ -void AnimationContext_CopyFalse(PlayState* play, AnimationEntryData* data) { - AnimEntryCopyFalse* entry = &data->copy0; +void AnimTask_CopyUsingMapInverted(PlayState* play, AnimTaskData* data) { + AnimTaskCopyUsingMapInverted* task = &data->copyUsingMapInverted; - if (!(entry->queueFlag & sDisableAnimQueueFlags)) { - Vec3s* dst = entry->dst; - Vec3s* src = entry->src; - u8* copyFlag = entry->copyFlag; + if (!(task->group & sDisabledTransformTaskGroups)) { + Vec3s* dest = task->dest; + Vec3s* src = task->src; + u8* limbCopyMap = task->limbCopyMap; s32 i; - for (i = 0; i < entry->vecCount; i++, dst++, src++) { - if (!(*copyFlag++)) { - *dst = *src; + for (i = 0; i < task->vecCount; i++, dest++, src++) { + if (!(*limbCopyMap++)) { + *dest = *src; } } } } /** - * Moves an actor according to the translation of its root limb + * Move an actor according to the translation of its root limb for the current animation frame. */ -void AnimationContext_MoveActor(PlayState* play, AnimationEntryData* data) { - AnimEntryMoveActor* entry = &data->move; - Actor* actor = entry->actor; +void AnimTask_ActorMove(PlayState* play, AnimTaskData* data) { + AnimTaskActorMove* task = &data->actorMove; + Actor* actor = task->actor; Vec3f diff; - SkelAnime_UpdateTranslation(entry->skelAnime, &diff, actor->shape.rot.y); + SkelAnime_UpdateTranslation(task->skelAnime, &diff, actor->shape.rot.y); + actor->world.pos.x += diff.x * actor->scale.x; - actor->world.pos.y += diff.y * actor->scale.y * entry->diffScaleY; + actor->world.pos.y += diff.y * actor->scale.y * task->diffScaleY; actor->world.pos.z += diff.z * actor->scale.z; } -typedef void (*AnimationEntryCallback)(struct PlayState* play, AnimationEntryData* data); +typedef void (*AnimTaskFunc)(struct PlayState* play, AnimTaskData* data); /** - * Performs all requests in the animation queue, then resets the queue flags. + * Update the AnimTaskQueue, processing all tasks in order. + * Variables related to anim task groups are then reset for the next frame. */ -void AnimationContext_Update(PlayState* play, AnimationContext* animationCtx) { - static AnimationEntryCallback animFuncs[] = { - AnimationContext_LoadFrame, AnimationContext_CopyAll, AnimationContext_Interp, - AnimationContext_CopyTrue, AnimationContext_CopyFalse, AnimationContext_MoveActor, +void AnimTaskQueue_Update(PlayState* play, AnimTaskQueue* animTaskQueue) { + static AnimTaskFunc animTaskFuncs[] = { + AnimTask_LoadPlayerFrame, AnimTask_Copy, AnimTask_Interp, AnimTask_CopyUsingMap, + AnimTask_CopyUsingMapInverted, AnimTask_ActorMove, }; - AnimationEntry* entry = animationCtx->entries; + AnimTask* task = animTaskQueue->tasks; - for (; animationCtx->animationCount != 0; animationCtx->animationCount--) { - animFuncs[entry->type](play, &entry->data); - entry++; + while (animTaskQueue->count != 0) { + animTaskFuncs[task->type](play, &task->data); + task++; + animTaskQueue->count--; } - sAnimQueueFlags = 1; - sDisableAnimQueueFlags = 0; + sCurAnimTaskGroup = 1 << 0; + sDisabledTransformTaskGroups = 0; } /** @@ -1125,8 +1172,8 @@ s32 LinkAnimation_Morph(PlayState* play, SkelAnime* skelAnime) { LinkAnimation_SetUpdateFunction(skelAnime); } - AnimationContext_SetInterp(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable, - 1.0f - (skelAnime->morphWeight / prevMorphWeight)); + AnimTaskQueue_AddInterp(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable, + 1.0f - (skelAnime->morphWeight / prevMorphWeight)); return 0; } @@ -1135,8 +1182,8 @@ s32 LinkAnimation_Morph(PlayState* play, SkelAnime* skelAnime) { * jointTable and morphTable */ void LinkAnimation_AnimateFrame(PlayState* play, SkelAnime* skelAnime) { - AnimationContext_SetLoadFrame(play, skelAnime->animation, skelAnime->curFrame, skelAnime->limbCount, - skelAnime->jointTable); + AnimTaskQueue_AddLoadPlayerFrame(play, skelAnime->animation, skelAnime->curFrame, skelAnime->limbCount, + skelAnime->jointTable); if (skelAnime->morphWeight != 0) { f32 updateRate = R_UPDATE_RATE * 0.5f; @@ -1144,8 +1191,8 @@ void LinkAnimation_AnimateFrame(PlayState* play, SkelAnime* skelAnime) { if (skelAnime->morphWeight <= 0.0f) { skelAnime->morphWeight = 0.0f; } else { - AnimationContext_SetInterp(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable, - skelAnime->morphWeight); + AnimTaskQueue_AddInterp(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable, + skelAnime->morphWeight); } } } @@ -1212,14 +1259,14 @@ void LinkAnimation_Change(PlayState* play, SkelAnime* skelAnime, LinkAnimationHe morphFrames = -morphFrames; } else { skelAnime->update.link = LinkAnimation_Morph; - AnimationContext_SetLoadFrame(play, animation, (s32)startFrame, skelAnime->limbCount, - skelAnime->morphTable); + AnimTaskQueue_AddLoadPlayerFrame(play, animation, (s32)startFrame, skelAnime->limbCount, + skelAnime->morphTable); } skelAnime->morphWeight = 1.0f; skelAnime->morphRate = 1.0f / morphFrames; } else { LinkAnimation_SetUpdateFunction(skelAnime); - AnimationContext_SetLoadFrame(play, animation, (s32)startFrame, skelAnime->limbCount, skelAnime->jointTable); + AnimTaskQueue_AddLoadPlayerFrame(play, animation, (s32)startFrame, skelAnime->limbCount, skelAnime->jointTable); skelAnime->morphWeight = 0.0f; } @@ -1270,7 +1317,7 @@ void LinkAnimation_PlayLoopSetSpeed(PlayState* play, SkelAnime* skelAnime, LinkA * Requests copying jointTable to morphTable */ void LinkAnimation_CopyJointToMorph(PlayState* play, SkelAnime* skelAnime) { - AnimationContext_SetCopyAll(play, skelAnime->limbCount, skelAnime->morphTable, skelAnime->jointTable); + AnimTaskQueue_AddCopy(play, skelAnime->limbCount, skelAnime->morphTable, skelAnime->jointTable); } /** @@ -1278,28 +1325,28 @@ void LinkAnimation_CopyJointToMorph(PlayState* play, SkelAnime* skelAnime) { * unused */ void LinkAnimation_CopyMorphToJoint(PlayState* play, SkelAnime* skelAnime) { - AnimationContext_SetCopyAll(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable); + AnimTaskQueue_AddCopy(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable); } /** * Requests loading frame data from the Link animation into morphTable */ void LinkAnimation_LoadToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 frame) { - AnimationContext_SetLoadFrame(play, animation, (s32)frame, skelAnime->limbCount, skelAnime->morphTable); + AnimTaskQueue_AddLoadPlayerFrame(play, animation, (s32)frame, skelAnime->limbCount, skelAnime->morphTable); } /** * Requests loading frame data from the Link animation into jointTable */ void LinkAnimation_LoadToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 frame) { - AnimationContext_SetLoadFrame(play, animation, (s32)frame, skelAnime->limbCount, skelAnime->jointTable); + AnimTaskQueue_AddLoadPlayerFrame(play, animation, (s32)frame, skelAnime->limbCount, skelAnime->jointTable); } /** * Requests interpolating between jointTable and morphTable, placing the result in jointTable */ void LinkAnimation_InterpJointMorph(PlayState* play, SkelAnime* skelAnime, f32 weight) { - AnimationContext_SetInterp(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable, weight); + AnimTaskQueue_AddInterp(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable, weight); } /** @@ -1309,12 +1356,12 @@ void LinkAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnima LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, Vec3s* blendTable) { Vec3s* alignedBlendTable; - AnimationContext_SetLoadFrame(play, animation1, (s32)frame1, skelAnime->limbCount, skelAnime->jointTable); + AnimTaskQueue_AddLoadPlayerFrame(play, animation1, (s32)frame1, skelAnime->limbCount, skelAnime->jointTable); alignedBlendTable = (Vec3s*)ALIGN16((uintptr_t)blendTable); - AnimationContext_SetLoadFrame(play, animation2, (s32)frame2, skelAnime->limbCount, alignedBlendTable); - AnimationContext_SetInterp(play, skelAnime->limbCount, skelAnime->jointTable, alignedBlendTable, blendWeight); + AnimTaskQueue_AddLoadPlayerFrame(play, animation2, (s32)frame2, skelAnime->limbCount, alignedBlendTable); + AnimTaskQueue_AddInterp(play, skelAnime->limbCount, skelAnime->jointTable, alignedBlendTable, blendWeight); } /** @@ -1324,12 +1371,12 @@ void LinkAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnima LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, Vec3s* blendTable) { Vec3s* alignedBlendTable; - AnimationContext_SetLoadFrame(play, animation1, (s32)frame1, skelAnime->limbCount, skelAnime->morphTable); + AnimTaskQueue_AddLoadPlayerFrame(play, animation1, (s32)frame1, skelAnime->limbCount, skelAnime->morphTable); alignedBlendTable = (Vec3s*)ALIGN16((uintptr_t)blendTable); - AnimationContext_SetLoadFrame(play, animation2, (s32)frame2, skelAnime->limbCount, alignedBlendTable); - AnimationContext_SetInterp(play, skelAnime->limbCount, skelAnime->morphTable, alignedBlendTable, blendWeight); + AnimTaskQueue_AddLoadPlayerFrame(play, animation2, (s32)frame2, skelAnime->limbCount, alignedBlendTable); + AnimTaskQueue_AddInterp(play, skelAnime->limbCount, skelAnime->morphTable, alignedBlendTable, blendWeight); } /** diff --git a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c index fa4879e26..1f4bcf362 100644 --- a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c +++ b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c @@ -177,19 +177,19 @@ void DemoEc_UpdateBgFlags(DemoEc* this, PlayState* play) { void func_8096D594(DemoEc* this, PlayState* play) { this->skelAnime.moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; - AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_8096D5D4(DemoEc* this, PlayState* play) { this->skelAnime.baseTransl = this->skelAnime.jointTable[0]; this->skelAnime.prevTransl = this->skelAnime.jointTable[0]; this->skelAnime.moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; - AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_8096D64C(DemoEc* this, PlayState* play) { this->skelAnime.moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; - AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void DemoEc_UpdateEyes(DemoEc* this) { diff --git a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c index 199fb04f7..0d2d7b24d 100644 --- a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c +++ b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c @@ -55,7 +55,7 @@ s32 DemoIk_CheckForCue(PlayState* play, u16 cueId, s32 cueChannel) { void DemoIk_SetMove(DemoIk* this, PlayState* play) { this->skelAnime.moveFlags |= ANIM_FLAG_0; - AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void DemoIk_EndMove(DemoIk* this) { diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c index f41fd6fe1..ff1a9bda7 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -338,7 +338,7 @@ void func_80A795C8(EnIn* this, PlayState* play) { void func_80A79690(SkelAnime* skelAnime, EnIn* this, PlayState* play) { if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) { skelAnime->moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; - AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, skelAnime, 1.0f); } } diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.c b/src/overlays/actors/ovl_En_Nb/z_en_nb.c index 336aad8d1..2421276be 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -757,7 +757,7 @@ void EnNb_InitDemo6KInConfrontation(EnNb* this, PlayState* play) { void func_80AB2688(EnNb* this, PlayState* play) { this->skelAnime.moveFlags |= ANIM_FLAG_0; - AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_80AB26C8(EnNb* this) { diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c index 792457dc5..e0549aca4 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -392,7 +392,7 @@ s32 EnRu1_UpdateSkelAnime(EnRu1* this) { void func_80AEB364(EnRu1* this, PlayState* play) { this->skelAnime.moveFlags |= ANIM_FLAG_0; - AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_80AEB3A4(EnRu1* this, PlayState* play) { @@ -463,7 +463,7 @@ void func_80AEB6E0(EnRu1* this, PlayState* play) { if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) { skelAnime->moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; - AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, skelAnime, 1.0f); } } @@ -474,7 +474,7 @@ void func_80AEB738(EnRu1* this, PlayState* play) { skelAnime->prevTransl = skelAnime->jointTable[0]; if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) { skelAnime->moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; - AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, skelAnime, 1.0f); } } diff --git a/src/overlays/actors/ovl_En_Test/z_en_test.c b/src/overlays/actors/ovl_En_Test/z_en_test.c index 1371a2adb..96a2a2e87 100644 --- a/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -61,7 +61,7 @@ void func_80862FA8(EnTest* this, PlayState* play); s32 EnTest_ReactToProjectile(PlayState* play, EnTest* this); -static u8 sJointCopyFlags[] = { +static u8 sUpperBodyLimbCopyMap[] = { false, // STALFOS_LIMB_NONE false, // STALFOS_LIMB_ROOT false, // STALFOS_LIMB_UPPERBODY_ROOT @@ -1742,15 +1742,15 @@ void EnTest_Update(Actor* thisx, PlayState* play) { case 1: Animation_Change(&this->upperSkelanime, &gStalfosBlockWithShieldAnim, 2.0f, 0.0f, Animation_GetLastFrame(&gStalfosBlockWithShieldAnim), 2, 2.0f); - AnimationContext_SetCopyTrue(play, this->skelAnime.limbCount, this->skelAnime.jointTable, - this->upperSkelanime.jointTable, sJointCopyFlags); + AnimTaskQueue_AddCopyUsingMap(play, this->skelAnime.limbCount, this->skelAnime.jointTable, + this->upperSkelanime.jointTable, sUpperBodyLimbCopyMap); this->unk_7DE++; break; case 2: SkelAnime_Update(&this->upperSkelanime); SkelAnime_CopyFrameTableTrue(&this->skelAnime, this->skelAnime.jointTable, - this->upperSkelanime.jointTable, sJointCopyFlags); + this->upperSkelanime.jointTable, sUpperBodyLimbCopyMap); break; case 3: @@ -1769,7 +1769,7 @@ void EnTest_Update(Actor* thisx, PlayState* play) { this->upperSkelanime.jointTable, this->skelAnime.jointTable, 1.0f - (this->upperSkelanime.morphWeight / oldWeight)); SkelAnime_CopyFrameTableTrue(&this->skelAnime, this->skelAnime.jointTable, - this->upperSkelanime.jointTable, sJointCopyFlags); + this->upperSkelanime.jointTable, sUpperBodyLimbCopyMap); break; } diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 17eff561a..826edcc72 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -255,20 +255,20 @@ void func_80B3C8CC(EnXc* this, PlayState* play) { if (skelAnime->jointTable[0].y >= skelAnime->baseTransl.y) { skelAnime->moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; - AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, skelAnime, 1.0f); } } void func_80B3C924(EnXc* this, PlayState* play) { this->skelAnime.moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; - AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_80B3C964(EnXc* this, PlayState* play) { this->skelAnime.baseTransl = this->skelAnime.jointTable[0]; this->skelAnime.prevTransl = this->skelAnime.jointTable[0]; this->skelAnime.moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; - AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_80B3C9DC(EnXc* this) { diff --git a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c index aed5c9b0f..2b1c7d332 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -346,7 +346,7 @@ void func_80B4B834(CsCmdActorCue* cue, Vec3f* dest) { void func_80B4B874(EnZl1* this, PlayState* play) { this->skelAnime.moveFlags |= ANIM_FLAG_0; - AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_80B4B8B4(EnZl1* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c index 00fdde50a..2cf5b1d2a 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -299,7 +299,7 @@ void EnZl4_UpdateFace(EnZl4* this) { void EnZl4_SetMove(EnZl4* this, PlayState* play) { this->skelAnime.moveFlags |= ANIM_FLAG_0; - AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_80B5BB78(EnZl4* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 8946f8f9f..db42ef755 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -1989,7 +1989,7 @@ void Player_AnimReplaceApplyFlags(PlayState* play, Player* this, s32 flags) { this->skelAnime.moveFlags = flags & 0xFF; Player_ZeroSpeedXZ(this); - AnimationContext_DisableQueue(play); + AnimTaskQueue_DisableTransformTasksForGroup(play); } void Player_AnimReplacePlayOnceSetSpeed(PlayState* play, Player* this, LinkAnimationHeader* anim, s32 flags, @@ -3071,8 +3071,8 @@ s32 func_808358F0(Player* this, PlayState* play) { if ((func_808334E4(this) == animSeg) || (func_80833528(this) == animSeg) || (func_808335B0(this) == animSeg) || (func_808335F4(this) == animSeg)) { - AnimationContext_SetCopyAll(play, this->skelAnime.limbCount, this->upperSkelAnime.jointTable, - this->skelAnime.jointTable); + AnimTaskQueue_AddCopy(play, this->skelAnime.limbCount, this->upperSkelAnime.jointTable, + this->skelAnime.jointTable); } else { LinkAnimation_Update(play, &this->upperSkelAnime); } @@ -3425,22 +3425,22 @@ s32 Player_UpdateUpperBody(Player* this, PlayState* play) { // The functionality contained within this block of code is never used in practice // because `upperAnimInterpWeight` is always 0. if ((func_80833350(this) == 0) || (this->speedXZ != 0.0f)) { - AnimationContext_SetCopyFalse(play, this->skelAnime.limbCount, this->upperSkelAnime.jointTable, - this->skelAnime.jointTable, sUpperBodyLimbCopyMap); + AnimTaskQueue_AddCopyUsingMapInverted(play, this->skelAnime.limbCount, this->upperSkelAnime.jointTable, + this->skelAnime.jointTable, sUpperBodyLimbCopyMap); } Math_StepToF(&this->upperAnimInterpWeight, 0.0f, 0.25f); - AnimationContext_SetInterp(play, this->skelAnime.limbCount, this->skelAnime.jointTable, - this->upperSkelAnime.jointTable, 1.0f - this->upperAnimInterpWeight); + AnimTaskQueue_AddInterp(play, this->skelAnime.limbCount, this->skelAnime.jointTable, + this->upperSkelAnime.jointTable, 1.0f - this->upperAnimInterpWeight); } else if ((func_80833350(this) == 0) || (this->speedXZ != 0.0f)) { // Only copy the upper body animation to the upper body limbs in the main skeleton. // Doing so allows the main skeleton to play its own animation for the lower body limbs. - AnimationContext_SetCopyTrue(play, this->skelAnime.limbCount, this->skelAnime.jointTable, - this->upperSkelAnime.jointTable, sUpperBodyLimbCopyMap); + AnimTaskQueue_AddCopyUsingMap(play, this->skelAnime.limbCount, this->skelAnime.jointTable, + this->upperSkelAnime.jointTable, sUpperBodyLimbCopyMap); } else { // Copy all of the upper body animation into the whole main skeleton. // The upper body has full control of all limbs. - AnimationContext_SetCopyAll(play, this->skelAnime.limbCount, this->skelAnime.jointTable, - this->upperSkelAnime.jointTable); + AnimTaskQueue_AddCopy(play, this->skelAnime.limbCount, this->skelAnime.jointTable, + this->upperSkelAnime.jointTable); } return true; @@ -4650,7 +4650,7 @@ s32 Player_ActionChange_12(Player* this, PlayState* play) { this->actor.bgCheckFlags |= BGCHECKFLAG_GROUND; LinkAnimation_PlayOnceSetSpeed(play, &this->skelAnime, anim, 1.3f); - AnimationContext_DisableQueue(play); + AnimTaskQueue_DisableTransformTasksForGroup(play); this->actor.shape.rot.y = this->yaw = this->actor.wallYaw + 0x8000; @@ -8105,10 +8105,10 @@ void Player_Action_80841BA8(Player* this, PlayState* play) { LinkAnimation_Update(play, &this->skelAnime); if (Player_HoldsTwoHandedWeapon(this)) { - AnimationContext_SetLoadFrame(play, func_80833338(this), 0, this->skelAnime.limbCount, - this->skelAnime.morphTable); - AnimationContext_SetCopyTrue(play, this->skelAnime.limbCount, this->skelAnime.jointTable, - this->skelAnime.morphTable, sUpperBodyLimbCopyMap); + AnimTaskQueue_AddLoadPlayerFrame(play, func_80833338(this), 0, this->skelAnime.limbCount, + this->skelAnime.morphTable); + AnimTaskQueue_AddCopyUsingMap(play, this->skelAnime.limbCount, this->skelAnime.jointTable, + this->skelAnime.morphTable, sUpperBodyLimbCopyMap); } Player_GetMovementSpeedAndYaw(this, &speedTarget, &yawTarget, SPEED_MODE_CURVED, play); @@ -9033,7 +9033,7 @@ void Player_Action_8084411C(Player* this, PlayState* play) { } else if ((this->ledgeClimbType >= PLAYER_LEDGE_CLIMB_2) && (this->yDistToLedge < 150.0f) && (((this->actor.world.pos.y - this->actor.floorHeight) + this->yDistToLedge) > (70.0f * this->ageProperties->unk_08))) { - AnimationContext_DisableQueue(play); + AnimTaskQueue_DisableTransformTasksForGroup(play); if (this->stateFlags1 & PLAYER_STATE1_2) { func_80832698(this, NA_SE_VO_LI_HOOKSHOT_HANG); } else { @@ -11345,9 +11345,9 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { Player_UpdateCamAndSeqModes(play, this); if (this->skelAnime.moveFlags & ANIM_FLAG_PLAYER_SETMOVE) { - AnimationContext_SetMoveActor( - play, &this->actor, &this->skelAnime, - (this->skelAnime.moveFlags & ANIM_FLAG_PLAYER_2) ? 1.0f : this->ageProperties->unk_08); + AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, + (this->skelAnime.moveFlags & ANIM_FLAG_PLAYER_2) ? 1.0f + : this->ageProperties->unk_08); } Player_UpdateShapeYaw(this, play); @@ -11417,8 +11417,10 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { } } } - - AnimationContext_SetNextQueue(play); + // Because Player updates early relative to most actors, his animation tasks will belong to group 0. + // Task group 1 is set here at the end of Player's update, meaning tasks that get added by other + // actors will be in a different group. + AnimTaskQueue_SetNextGroup(play); } Math_Vec3f_Copy(&this->actor.home.pos, &this->actor.world.pos); @@ -12635,8 +12637,7 @@ void Player_Action_8084CC98(Player* this, PlayState* play) { LinkAnimation_AnimateFrame(play, &this->skelAnime); } - AnimationContext_SetCopyAll(play, this->skelAnime.limbCount, this->skelAnime.morphTable, - this->skelAnime.jointTable); + AnimTaskQueue_AddCopy(play, this->skelAnime.limbCount, this->skelAnime.morphTable, this->skelAnime.jointTable); if ((play->csCtx.state != CS_STATE_IDLE) || (this->csAction != PLAYER_CSACTION_NONE)) { if (this->csAction == PLAYER_CSACTION_7) { @@ -12674,16 +12675,16 @@ void Player_Action_8084CC98(Player* this, PlayState* play) { func_80832698(this, NA_SE_VO_LI_LASH); } - AnimationContext_SetCopyAll(play, this->skelAnime.limbCount, this->skelAnime.jointTable, - this->upperSkelAnime.jointTable); + AnimTaskQueue_AddCopy(play, this->skelAnime.limbCount, this->skelAnime.jointTable, + this->upperSkelAnime.jointTable); } else { if (LinkAnimation_OnFrame(&this->upperSkelAnime, 10.0f)) { Player_PlaySfx(this, NA_SE_IT_LASH); func_80832698(this, NA_SE_VO_LI_LASH); } - AnimationContext_SetCopyTrue(play, this->skelAnime.limbCount, this->skelAnime.jointTable, - this->upperSkelAnime.jointTable, sUpperBodyLimbCopyMap); + AnimTaskQueue_AddCopyUsingMap(play, this->skelAnime.limbCount, this->skelAnime.jointTable, + this->upperSkelAnime.jointTable, sUpperBodyLimbCopyMap); } } else { LinkAnimationHeader* anim = NULL; From 8d83727429602d422a524d00244f16f46ea8e70e Mon Sep 17 00:00:00 2001 From: mzxrules Date: Wed, 19 Jun 2024 00:00:23 -0400 Subject: [PATCH 21/29] Experiment: remove global.h dependency from sys_math, sys_math3d, z_lib (#1956) * split sys_math, sys_math3d, z_lib from global.h * suggestions * forgot this * more math stuff * nit fix * re-add ichain.h * resolve tharo's comments --- Makefile | 4 +- include/fp_math.h | 17 ++ include/functions.h | 172 +------------------- include/ichain.h | 6 +- include/libc/math.h | 17 ++ include/macros.h | 1 - include/rand.h | 15 ++ include/regs.h | 11 ++ include/sfx.h | 23 +++ include/sys_math.h | 14 ++ include/sys_math3d.h | 73 +++++++++ include/ultra64/gu.h | 6 + include/variables.h | 1 - include/z64.h | 14 +- include/z64camera.h | 4 - include/z64math.h | 7 + include/z_lib.h | 44 +++++ spec | 5 +- src/code/code_80069420.c | 2 +- src/code/fault.c | 4 +- src/code/fmodf.c | 2 +- src/code/{code_800FCE80.c => fp_math.c} | 3 +- src/code/rand.c | 2 +- src/code/sys_math.c | 2 +- src/code/sys_math3d.c | 16 +- src/code/sys_math3d_draw.c | 7 + src/code/sys_math_atan.c | 3 +- src/code/z_collision_check.c | 13 +- src/code/z_kankyo.c | 2 +- src/code/z_lib.c | 11 +- src/code/z_olib.c | 4 +- src/libultra/gu/coss.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- 33 files changed, 289 insertions(+), 220 deletions(-) create mode 100644 include/fp_math.h create mode 100644 include/rand.h create mode 100644 include/sys_math.h create mode 100644 include/sys_math3d.h create mode 100644 include/z_lib.h rename src/code/{code_800FCE80.c => fp_math.c} (98%) create mode 100644 src/code/sys_math3d_draw.c diff --git a/Makefile b/Makefile index 5cefd6257..4b1260b47 100644 --- a/Makefile +++ b/Makefile @@ -133,7 +133,7 @@ OBJCOPY := $(MIPS_BINUTILS_PREFIX)objcopy OBJDUMP := $(MIPS_BINUTILS_PREFIX)objdump NM := $(MIPS_BINUTILS_PREFIX)nm -N64_EMULATOR ?= +N64_EMULATOR ?= INC := -Iinclude -Iinclude/libc -Isrc -I$(BUILD_DIR) -I. -I$(EXTRACTED_DIR) @@ -243,7 +243,7 @@ $(BUILD_DIR)/src/boot/stackcheck.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/__osMalloc.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/code_800FC620.o: OPTFLAGS := -O2 -$(BUILD_DIR)/src/code/code_800FCE80.o: OPTFLAGS := -O2 +$(BUILD_DIR)/src/code/fp_math.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/rand.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/gfxprint.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/jpegutils.o: OPTFLAGS := -O2 diff --git a/include/fp_math.h b/include/fp_math.h new file mode 100644 index 000000000..26f9b171b --- /dev/null +++ b/include/fp_math.h @@ -0,0 +1,17 @@ +#ifndef FP_MATH_H +#define FP_MATH_H + +#include "ultra64.h" + +f32 Math_FTanF(f32 angle); +f32 Math_FFloorF(f32 x); +f32 Math_FCeilF(f32 x); +f32 Math_FRoundF(f32 x); +f32 Math_FNearbyIntF(f32 x); +f32 Math_FTruncF(f32 x); +f32 Math_FAtanF(f32 x); +f32 Math_FAtan2F(f32 y, f32 x); +f32 Math_FAsinF(f32 x); +f32 Math_FAcosF(f32 x); + +#endif diff --git a/include/functions.h b/include/functions.h index 35b378a7a..54b57c8ea 100644 --- a/include/functions.h +++ b/include/functions.h @@ -4,23 +4,6 @@ #include "z64.h" #include "macros.h" -f32 fabsf(f32 f); -#ifdef __sgi -#pragma intrinsic(fabsf) -#else -#define fabsf(f) __builtin_fabsf((f32)(f)) -#endif - -f32 sqrtf(f32 f); -#ifdef __sgi -#pragma intrinsic(sqrtf) -#endif - -f64 sqrt(f64 f); -#ifdef __sgi -#pragma intrinsic(sqrt) -#endif - void cleararena(void); void bootproc(void); void Main_ThreadEntry(void* arg); @@ -839,41 +822,6 @@ s32 Environment_IsForcedSequenceDisabled(void); void Environment_PlayStormNatureAmbience(PlayState* play); void Environment_StopStormNatureAmbience(PlayState* play); void Environment_WarpSongLeave(PlayState* play); -void Lib_MemSet(u8* dest, size_t len, u8 val); -f32 Math_CosS(s16 angle); -f32 Math_SinS(s16 angle); -s32 Math_ScaledStepToS(s16* pValue, s16 target, s16 step); -s32 Math_StepToS(s16* pValue, s16 target, s16 step); -s32 Math_StepToF(f32* pValue, f32 target, f32 step); -s32 Math_StepUntilAngleS(s16* pValue, s16 limit, s16 step); -s32 Math_StepUntilS(s16* pValue, s16 limit, s16 step); -s32 Math_StepToAngleS(s16* pValue, s16 target, s16 step); -s32 Math_StepUntilF(f32* pValue, f32 limit, f32 step); -s32 Math_AsymStepToF(f32* pValue, f32 target, f32 incrStep, f32 decrStep); -void Lib_GetControlStickData(f32* outMagnitude, s16* outAngle, Input* input); -s16 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* origin, Vec3f* point); -s16 Math_Vec3f_Pitch(Vec3f* a, Vec3f* b); -void Actor_ProcessInitChain(Actor* actor, InitChainEntry* ichain); -f32 Math_SmoothStepToF(f32* pValue, f32 target, f32 fraction, f32 step, f32 minStep); -void Math_ApproachF(f32* pValue, f32 target, f32 fraction, f32 step); -void Math_ApproachZeroF(f32* pValue, f32 fraction, f32 step); -f32 Math_SmoothStepToDegF(f32* pValue, f32 target, f32 fraction, f32 step, f32 minStep); -s16 Math_SmoothStepToS(s16* pValue, s16 target, s16 scale, s16 step, s16 minStep); -void Math_ApproachS(s16* pValue, s16 target, s16 scale, s16 step); -void Color_RGBA8_Copy(Color_RGBA8* dst, Color_RGBA8* src); -void Sfx_PlaySfxCentered(u16 sfxId); -void Sfx_PlaySfxCentered2(u16 sfxId); -void Sfx_PlaySfxAtPos(Vec3f* projectedPos, u16 sfxId); void Health_InitMeter(PlayState* play); void Health_UpdateMeter(PlayState* play); void Health_DrawMeter(PlayState* play); @@ -1346,80 +1294,9 @@ void Main(void* arg); void SysCfb_Init(s32 n64dd); void* SysCfb_GetFbPtr(s32 idx); void* SysCfb_GetFbEnd(void); -f32 Math_FactorialF(f32 n); -f32 Math_Factorial(s32 n); -f32 Math_PowF(f32 base, s32 exp); -f32 Math_SinF(f32 angle); -f32 Math_CosF(f32 angle); -s32 Math3D_PlaneVsLineSegClosestPoint(f32 planeAA, f32 planeAB, f32 planeAC, f32 planeADist, f32 planeBA, f32 planeBB, - f32 planeBC, f32 planeBDist, Vec3f* linePointA, Vec3f* linePointB, - Vec3f* closestPoint); -void Math3D_LineClosestToPoint(InfiniteLine* line, Vec3f* pos, Vec3f* closestPoint); -s32 Math3D_PlaneVsPlaneVsLineClosestPoint(f32 planeAA, f32 planeAB, f32 planeAC, f32 planeADist, f32 planeBA, - f32 planeBB, f32 planeBC, f32 planeBDist, Vec3f* point, Vec3f* closestPoint); -void Math3D_LineSplitRatio(Vec3f* v0, Vec3f* v1, f32 ratio, Vec3f* ret); -f32 Math3D_Cos(Vec3f* a, Vec3f* b); -s32 Math3D_CosOut(Vec3f* a, Vec3f* b, f32* dst); -void Math3D_Vec3fReflect(Vec3f* vec, Vec3f* normal, Vec3f* reflVec); -s32 Math3D_PointInSquare2D(f32 upperLeftX, f32 lowerRightX, f32 upperLeftY, f32 lowerRightY, f32 x, f32 y); -f32 Math3D_Dist1DSq(f32 a, f32 b); -f32 Math3D_Dist2DSq(f32 x0, f32 y0, f32 x1, f32 y1); -f32 Math3D_Vec3fMagnitudeSq(Vec3f* vec); -f32 Math3D_Vec3fMagnitude(Vec3f* vec); -f32 Math3D_Vec3fDistSq(Vec3f* a, Vec3f* b); -void Math3D_Vec3f_Cross(Vec3f* a, Vec3f* b, Vec3f* ret); -void Math3D_SurfaceNorm(Vec3f* va, Vec3f* vb, Vec3f* vc, Vec3f* normal); -f32 Math3D_Vec3f_DistXYZ(Vec3f* a, Vec3f* b); -s32 Math3D_PointRelativeToCubeFaces(Vec3f* point, Vec3f* min, Vec3f* max); -s32 Math3D_PointRelativeToCubeEdges(Vec3f* point, Vec3f* min, Vec3f* max); -s32 Math3D_PointRelativeToCubeVertices(Vec3f* point, Vec3f* min, Vec3f* max); -s32 Math3D_LineVsCube(Vec3f* min, Vec3f* max, Vec3f* a, Vec3f* b); -void Math3D_RotateXZPlane(Vec3f* pointOnPlane, s16 angle, f32* a, f32* c, f32* d); -void Math3D_DefPlane(Vec3f* va, Vec3f* vb, Vec3f* vc, f32* nx, f32* ny, f32* nz, f32* originDist); -f32 Math3D_UDistPlaneToPos(f32 nx, f32 ny, f32 nz, f32 originDist, Vec3f* p); -f32 Math3D_DistPlaneToPos(f32 nx, f32 ny, f32 nz, f32 originDist, Vec3f* p); -s32 Math3D_TriChkPointParaYSlopedY(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 z, f32 x); -s32 Math3D_TriChkPointParaYIntersectDist(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 z, - f32 x, f32* yIntersect, f32 chkDist); -s32 Math3D_TriChkPointParaYIntersectInsideTri(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, - f32 z, f32 x, f32* yIntersect, f32 chkDist); -s32 Math3D_TriChkLineSegParaYIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 z, - f32 x, f32* yIntersect, f32 y0, f32 y1); -s32 Math3D_TriChkPointParaYDist(Vec3f* v0, Vec3f* v1, Vec3f* v2, Plane* plane, f32 z, f32 x, f32 chkDist); -s32 Math3D_TriChkPointParaXIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 y, - f32 z, f32* xIntersect); -s32 Math3D_TriChkLineSegParaXIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 y, - f32 z, f32* xIntersect, f32 x0, f32 x1); -s32 Math3D_TriChkPointParaXDist(Vec3f* v0, Vec3f* v1, Vec3f* v2, Plane* plane, f32 y, f32 z, f32 chkDist); -s32 Math3D_TriChkPointParaZIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 x, - f32 y, f32* zIntersect); -s32 Math3D_TriChkLineSegParaZIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 x, - f32 y, f32* zIntersect, f32 z0, f32 z1); -s32 Math3D_TriChkLineSegParaZDist(Vec3f* v0, Vec3f* v1, Vec3f* v2, Plane* plane, f32 x, f32 y, f32 chkDist); -s32 Math3D_LineSegVsPlane(f32 nx, f32 ny, f32 nz, f32 originDist, Vec3f* linePointA, Vec3f* linePointB, - Vec3f* intersect, s32 fromFront); -void Math3D_TriNorm(TriNorm* tri, Vec3f* va, Vec3f* vb, Vec3f* vc); -s32 Math3D_PointDistSqToLine2D(f32 x0, f32 y0, f32 x1, f32 y1, f32 x2, f32 y2, f32* lineLenSq); -s32 Math3D_LineVsSph(Sphere16* sphere, Linef* line); -s32 Math3D_TriVsSphIntersect(Sphere16* sphere, TriNorm* tri, Vec3f* intersectPoint); -s32 Math3D_CylVsLineSeg(Cylinder16* cyl, Vec3f* linePointA, Vec3f* linePointB, Vec3f* intersectA, Vec3f* intersectB); -s32 Math3D_CylVsTri(Cylinder16* cyl, TriNorm* tri); -s32 Math3D_CylTriVsIntersect(Cylinder16* cyl, TriNorm* tri, Vec3f* intersect); -s32 Math3D_SphVsSph(Sphere16* sphereA, Sphere16* sphereB); -s32 Math3D_SphVsSphOverlap(Sphere16* sphereA, Sphere16* sphereB, f32* overlapSize); -s32 Math3D_SphVsSphOverlapCenterDist(Sphere16* sphereA, Sphere16* sphereB, f32* overlapSize, f32* centerDist); -s32 Math3D_SphVsCylOverlap(Sphere16* sph, Cylinder16* cyl, f32* overlapSize); -s32 Math3D_SphVsCylOverlapCenterDist(Sphere16* sph, Cylinder16* cyl, f32* overlapSize, f32* centerDist); -s32 Math3D_CylVsCylOverlap(Cylinder16* ca, Cylinder16* cb, f32* overlapSize); -s32 Math3D_CylVsCylOverlapCenterDist(Cylinder16* ca, Cylinder16* cb, f32* overlapSize, f32* centerDist); -s32 Math3D_TriVsTriIntersect(TriNorm* ta, TriNorm* tb, Vec3f* intersect); -s32 Math3D_XZInSphere(Sphere16* sphere, f32 x, f32 z); -s32 Math3D_XYInSphere(Sphere16* sphere, f32 x, f32 y); -s32 Math3D_YZInSphere(Sphere16* sphere, f32 y, f32 z); + void Math3D_DrawSphere(PlayState* play, Sphere16* sph); void Math3D_DrawCylinder(PlayState* play, Cylinder16* cyl); -s16 Math_Atan2S(f32 x, f32 y); -f32 Math_Atan2F(f32 x, f32 y); void Matrix_Init(GameState* gameState); void Matrix_Push(void); void Matrix_Pop(void); @@ -1681,24 +1558,7 @@ void Audio_Init(void); void Audio_InitSound(void); void func_800F7170(void); void func_800F71BC(s32 arg0); -void Audio_SetSfxBanksMute(u16 muteMask); -void Audio_QueueSeqCmdMute(u8 channelIndex); -void Audio_ClearBGMMute(u8 channelIndex); -void Audio_PlaySfxGeneral(u16 sfxId, Vec3f* pos, u8 token, f32* freqScale, f32* vol, s8* reverbAdd); -void Audio_ProcessSfxRequest(void); -void Audio_ChooseActiveSfx(u8 bankId); -void Audio_PlayActiveSfx(u8 bankId); -void Audio_StopSfxByBank(u8 bankId); -void func_800F8884(u8 bankId, Vec3f* pos); -void Audio_StopSfxByPosAndBank(u8 bankId, Vec3f* pos); -void Audio_StopSfxByPos(Vec3f* pos); -void Audio_StopSfxByPosAndId(Vec3f* pos, u16 sfxId); -void Audio_StopSfxByTokenAndId(u8 token, u16 sfxId); -void Audio_StopSfxById(u32 sfxId); -void Audio_ProcessSfxRequests(void); -void func_800F8F88(void); -u8 Audio_IsSfxPlaying(u32 sfxId); -void Audio_ResetSfx(void); + void Audio_StartSequence(u8 seqPlayerIndex, u8 seqId, u8 seqArgs, u16 fadeInDuration); void Audio_StopSequence(u8 seqPlayerIndex, u16 fadeOutDuration); void Audio_QueueSeqCmd(u32 cmd); @@ -1748,20 +1608,7 @@ s8 PadUtils_GetRelX(Input* input); s8 PadUtils_GetRelY(Input* input); void PadUtils_UpdateRelXY(Input* input); s32 PadSetup_Init(OSMesgQueue* mq, u8* outMask, OSContStatus* status); -f32 Math_FTanF(f32 angle); -f32 Math_FFloorF(f32 x); -f32 Math_FCeilF(f32 x); -f32 Math_FRoundF(f32 x); -f32 Math_FNearbyIntF(f32 x); -f32 Math_FTruncF(f32 x); -f32 Math_FAtanF(f32 x); -f32 Math_FAtan2F(f32 y, f32 x); -f32 Math_FAsinF(f32 x); -f32 Math_FAcosF(f32 x); -f32 ceilf(f32 x); -f32 truncf(f32 x); -f32 roundf(f32 x); -f32 nearbyintf(f32 x); + void* SystemArena_Malloc(u32 size); void* SystemArena_MallocR(u32 size); void* SystemArena_Realloc(void* ptr, u32 newSize); @@ -1779,14 +1626,7 @@ void* SystemArena_ReallocDebug(void* ptr, u32 newSize, const char* file, int lin void SystemArena_FreeDebug(void* ptr, const char* file, int line); void SystemArena_Display(void); #endif -u32 Rand_Next(void); -void Rand_Seed(u32 seed); -f32 Rand_ZeroOne(void); -f32 Rand_Centered(void); -void Rand_Seed_Variable(u32* rndNum, u32 seed); -u32 Rand_Next_Variable(u32* rndNum); -f32 Rand_ZeroOne_Variable(u32* rndNum); -f32 Rand_Centered_Variable(u32* rndNum); + void __osMallocInit(Arena* arena, void* start, u32 size); void __osMallocAddBlock(Arena* arena, void* start, s32 size); void __osMallocCleanup(Arena* arena); @@ -1825,8 +1665,6 @@ s32 JpegDecoder_ParseNextSymbol(JpegHuffmanTable* hTable, s16* outCoeff, s8* out u16 JpegDecoder_ReadBits(u8 len); s32 osPfsFreeBlocks(OSPfs* pfs, s32* leftoverBytes); void guScale(Mtx* m, f32 x, f32 y, f32 z); -f32 sinf(f32 angle); -s16 sins(u16 angle); OSTask* _VirtualToPhysicalTask(OSTask* intp); void osSpTaskLoad(OSTask* intp); void osSpTaskStartGo(OSTask* tp); @@ -1890,8 +1728,6 @@ s32 osPfsDeleteFile(OSPfs* pfs, u16 companyCode, u32 gameCode, u8* gameName, u8* s32 __osPfsReleasePages(OSPfs* pfs, __OSInode* inode, u8 initialPage, u8 bank, __OSInodeUnit* finalPage); void guOrthoF(f32[4][4], f32, f32, f32, f32, f32, f32, f32); void guOrtho(Mtx*, f32, f32, f32, f32, f32, f32, f32); -f32 cosf(f32 angle); -s16 coss(u16 angle); void osViSetEvent(OSMesgQueue* mq, OSMesg msg, u32 retraceCount); s32 osPfsIsPlug(OSMesgQueue* mq, u8* pattern); void __osPfsRequestData(u8 cmd); diff --git a/include/ichain.h b/include/ichain.h index 07bd07313..833423780 100644 --- a/include/ichain.h +++ b/include/ichain.h @@ -1,7 +1,9 @@ #ifndef ICHAIN_H #define ICHAIN_H -#include "libc/stddef.h" +#include "ultra64.h" + +struct Actor; typedef struct { u32 cont: 1; @@ -55,4 +57,6 @@ typedef enum { #define ICHAIN_CONTINUE 1 #define ICHAIN_STOP 0 +void Actor_ProcessInitChain(struct Actor* actor, InitChainEntry* ichain); + #endif diff --git a/include/libc/math.h b/include/libc/math.h index 831be6de7..d8031ee1a 100644 --- a/include/libc/math.h +++ b/include/libc/math.h @@ -34,6 +34,23 @@ double round(double); long lroundf(float); long lround(double); +f32 fabsf(f32 f); +#ifdef __sgi +#pragma intrinsic(fabsf) +#else +#define fabsf(f) __builtin_fabsf((f32)(f)) +#endif + +f32 sqrtf(f32 f); +#ifdef __sgi +#pragma intrinsic(sqrtf) +#endif + +f64 sqrt(f64 f); +#ifdef __sgi +#pragma intrinsic(sqrt) +#endif + extern float qNaN0x3FFFFF; extern float qNaN0x10000; extern float sNaN0x3FFFFF; diff --git a/include/macros.h b/include/macros.h index 97627d9b4..6315fbe94 100644 --- a/include/macros.h +++ b/include/macros.h @@ -14,7 +14,6 @@ #define VIRTUAL_TO_PHYSICAL(addr) (uintptr_t)((u8*)(addr) - 0x80000000) #define SEGMENTED_TO_VIRTUAL(addr) PHYSICAL_TO_VIRTUAL(gSegments[SEGMENT_NUMBER(addr)] + SEGMENT_OFFSET(addr)) -#define SQ(x) ((x)*(x)) #define ABS(x) ((x) >= 0 ? (x) : -(x)) #define DECR(x) ((x) == 0 ? 0 : --(x)) #define CLAMP(x, min, max) ((x) < (min) ? (min) : (x) > (max) ? (max) : (x)) diff --git a/include/rand.h b/include/rand.h new file mode 100644 index 000000000..508c9d646 --- /dev/null +++ b/include/rand.h @@ -0,0 +1,15 @@ +#ifndef RAND_H +#define RAND_H + +#include "ultra64.h" + +u32 Rand_Next(void); +void Rand_Seed(u32 seed); +f32 Rand_ZeroOne(void); +f32 Rand_Centered(void); +void Rand_Seed_Variable(u32* rndNum, u32 seed); +u32 Rand_Next_Variable(u32* rndNum); +f32 Rand_ZeroOne_Variable(u32* rndNum); +f32 Rand_Centered_Variable(u32* rndNum); + +#endif diff --git a/include/regs.h b/include/regs.h index 36c36c419..4a11f7a55 100644 --- a/include/regs.h +++ b/include/regs.h @@ -353,4 +353,15 @@ typedef enum { #define R_VI_CUR_ADDI_SCAN_LINES HREG(83) #define R_VI_CUR_Y_SCALE_MODE HREG(84) +typedef struct { + /* 0x00 */ s32 regPage; // 0: no page selected (reg editor is not active); 1: first page; `REG_PAGES`: last page + /* 0x04 */ s32 regGroup; // Indexed from 0 to `REG_GROUPS`-1. Each group has its own character to identify it. + /* 0x08 */ s32 regCur; // Selected reg, indexed from 0 as the page start + /* 0x0C */ s32 dPadInputPrev; + /* 0x10 */ s32 inputRepeatTimer; + /* 0x14 */ s16 data[REG_GROUPS * REGS_PER_GROUP]; // Accessed through *REG macros, see regs.h +} RegEditor; // size = 0x15D4 + +extern RegEditor* gRegEditor; + #endif diff --git a/include/sfx.h b/include/sfx.h index d5545af8d..a8ea68dee 100644 --- a/include/sfx.h +++ b/include/sfx.h @@ -125,4 +125,27 @@ typedef struct { #define SFX_DIST_SCALING 10.0f #endif +void Audio_SetSfxBanksMute(u16 muteMask); +void Audio_QueueSeqCmdMute(u8 channelIndex); +void Audio_ClearBGMMute(u8 channelIndex); +void Audio_PlaySfxGeneral(u16 sfxId, Vec3f* pos, u8 token, f32* freqScale, f32* vol, s8* reverbAdd); +void Audio_ProcessSfxRequest(void); +void Audio_ChooseActiveSfx(u8 bankId); +void Audio_PlayActiveSfx(u8 bankId); +void Audio_StopSfxByBank(u8 bankId); +void func_800F8884(u8 bankId, Vec3f* pos); +void Audio_StopSfxByPosAndBank(u8 bankId, Vec3f* pos); +void Audio_StopSfxByPos(Vec3f* pos); +void Audio_StopSfxByPosAndId(Vec3f* pos, u16 sfxId); +void Audio_StopSfxByTokenAndId(u8 token, u16 sfxId); +void Audio_StopSfxById(u32 sfxId); +void Audio_ProcessSfxRequests(void); +void func_800F8F88(void); +u8 Audio_IsSfxPlaying(u32 sfxId); +void Audio_ResetSfx(void); + +extern Vec3f gSfxDefaultPos; +extern f32 gSfxDefaultFreqAndVolScale; +extern s8 gSfxDefaultReverb; + #endif diff --git a/include/sys_math.h b/include/sys_math.h new file mode 100644 index 000000000..0da5df890 --- /dev/null +++ b/include/sys_math.h @@ -0,0 +1,14 @@ +#ifndef SYS_MATH_H +#define SYS_MATH_H + +#include "ultra64.h" + +f32 Math_FactorialF(f32 n); +f32 Math_Factorial(s32 n); +f32 Math_PowF(f32 base, s32 exp); +f32 Math_SinF(f32 angle); +f32 Math_CosF(f32 angle); +s16 Math_Atan2S(f32 x, f32 y); +f32 Math_Atan2F(f32 x, f32 y); + +#endif diff --git a/include/sys_math3d.h b/include/sys_math3d.h new file mode 100644 index 000000000..b01063a9f --- /dev/null +++ b/include/sys_math3d.h @@ -0,0 +1,73 @@ +#ifndef SYS_MATH3D_H +#define SYS_MATH3D_H + +#include "ultra64.h" +#include "z64math.h" + +s32 Math3D_PlaneVsLineSegClosestPoint(f32 planeAA, f32 planeAB, f32 planeAC, f32 planeADist, f32 planeBA, f32 planeBB, + f32 planeBC, f32 planeBDist, Vec3f* linePointA, Vec3f* linePointB, + Vec3f* closestPoint); +void Math3D_LineClosestToPoint(InfiniteLine* line, Vec3f* pos, Vec3f* closestPoint); +s32 Math3D_PlaneVsPlaneVsLineClosestPoint(f32 planeAA, f32 planeAB, f32 planeAC, f32 planeADist, f32 planeBA, + f32 planeBB, f32 planeBC, f32 planeBDist, Vec3f* point, Vec3f* closestPoint); +void Math3D_LineSplitRatio(Vec3f* v0, Vec3f* v1, f32 ratio, Vec3f* ret); +f32 Math3D_Cos(Vec3f* a, Vec3f* b); +s32 Math3D_CosOut(Vec3f* a, Vec3f* b, f32* dst); +void Math3D_Vec3fReflect(Vec3f* vec, Vec3f* normal, Vec3f* reflVec); +s32 Math3D_PointInSquare2D(f32 upperLeftX, f32 lowerRightX, f32 upperLeftY, f32 lowerRightY, f32 x, f32 y); +f32 Math3D_Dist1DSq(f32 a, f32 b); +f32 Math3D_Dist2DSq(f32 x0, f32 y0, f32 x1, f32 y1); +f32 Math3D_Vec3fMagnitudeSq(Vec3f* vec); +f32 Math3D_Vec3fMagnitude(Vec3f* vec); +f32 Math3D_Vec3fDistSq(Vec3f* a, Vec3f* b); +void Math3D_Vec3f_Cross(Vec3f* a, Vec3f* b, Vec3f* ret); +void Math3D_SurfaceNorm(Vec3f* va, Vec3f* vb, Vec3f* vc, Vec3f* normal); +f32 Math3D_Vec3f_DistXYZ(Vec3f* a, Vec3f* b); +s32 Math3D_PointRelativeToCubeFaces(Vec3f* point, Vec3f* min, Vec3f* max); +s32 Math3D_PointRelativeToCubeEdges(Vec3f* point, Vec3f* min, Vec3f* max); +s32 Math3D_PointRelativeToCubeVertices(Vec3f* point, Vec3f* min, Vec3f* max); +s32 Math3D_LineVsCube(Vec3f* min, Vec3f* max, Vec3f* a, Vec3f* b); +void Math3D_RotateXZPlane(Vec3f* pointOnPlane, s16 angle, f32* a, f32* c, f32* d); +void Math3D_DefPlane(Vec3f* va, Vec3f* vb, Vec3f* vc, f32* nx, f32* ny, f32* nz, f32* originDist); +f32 Math3D_UDistPlaneToPos(f32 nx, f32 ny, f32 nz, f32 originDist, Vec3f* p); +f32 Math3D_DistPlaneToPos(f32 nx, f32 ny, f32 nz, f32 originDist, Vec3f* p); +s32 Math3D_TriChkPointParaYSlopedY(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 z, f32 x); +s32 Math3D_TriChkPointParaYIntersectDist(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 z, + f32 x, f32* yIntersect, f32 chkDist); +s32 Math3D_TriChkPointParaYIntersectInsideTri(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, + f32 z, f32 x, f32* yIntersect, f32 chkDist); +s32 Math3D_TriChkLineSegParaYIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 z, + f32 x, f32* yIntersect, f32 y0, f32 y1); +s32 Math3D_TriChkPointParaYDist(Vec3f* v0, Vec3f* v1, Vec3f* v2, Plane* plane, f32 z, f32 x, f32 chkDist); +s32 Math3D_TriChkPointParaXIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 y, + f32 z, f32* xIntersect); +s32 Math3D_TriChkLineSegParaXIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 y, + f32 z, f32* xIntersect, f32 x0, f32 x1); +s32 Math3D_TriChkPointParaXDist(Vec3f* v0, Vec3f* v1, Vec3f* v2, Plane* plane, f32 y, f32 z, f32 chkDist); +s32 Math3D_TriChkPointParaZIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 x, + f32 y, f32* zIntersect); +s32 Math3D_TriChkLineSegParaZIntersect(Vec3f* v0, Vec3f* v1, Vec3f* v2, f32 nx, f32 ny, f32 nz, f32 originDist, f32 x, + f32 y, f32* zIntersect, f32 z0, f32 z1); +s32 Math3D_TriChkLineSegParaZDist(Vec3f* v0, Vec3f* v1, Vec3f* v2, Plane* plane, f32 x, f32 y, f32 chkDist); +s32 Math3D_LineSegVsPlane(f32 nx, f32 ny, f32 nz, f32 originDist, Vec3f* linePointA, Vec3f* linePointB, + Vec3f* intersect, s32 fromFront); +void Math3D_TriNorm(TriNorm* tri, Vec3f* va, Vec3f* vb, Vec3f* vc); +s32 Math3D_PointDistSqToLine2D(f32 x0, f32 y0, f32 x1, f32 y1, f32 x2, f32 y2, f32* lineLenSq); +s32 Math3D_LineVsSph(Sphere16* sphere, Linef* line); +s32 Math3D_TriVsSphIntersect(Sphere16* sphere, TriNorm* tri, Vec3f* intersectPoint); +s32 Math3D_CylVsLineSeg(Cylinder16* cyl, Vec3f* linePointA, Vec3f* linePointB, Vec3f* intersectA, Vec3f* intersectB); +s32 Math3D_CylVsTri(Cylinder16* cyl, TriNorm* tri); +s32 Math3D_CylTriVsIntersect(Cylinder16* cyl, TriNorm* tri, Vec3f* intersect); +s32 Math3D_SphVsSph(Sphere16* sphereA, Sphere16* sphereB); +s32 Math3D_SphVsSphOverlap(Sphere16* sphereA, Sphere16* sphereB, f32* overlapSize); +s32 Math3D_SphVsSphOverlapCenterDist(Sphere16* sphereA, Sphere16* sphereB, f32* overlapSize, f32* centerDist); +s32 Math3D_SphVsCylOverlap(Sphere16* sph, Cylinder16* cyl, f32* overlapSize); +s32 Math3D_SphVsCylOverlapCenterDist(Sphere16* sph, Cylinder16* cyl, f32* overlapSize, f32* centerDist); +s32 Math3D_CylVsCylOverlap(Cylinder16* ca, Cylinder16* cb, f32* overlapSize); +s32 Math3D_CylVsCylOverlapCenterDist(Cylinder16* ca, Cylinder16* cb, f32* overlapSize, f32* centerDist); +s32 Math3D_TriVsTriIntersect(TriNorm* ta, TriNorm* tb, Vec3f* intersect); +s32 Math3D_XZInSphere(Sphere16* sphere, f32 x, f32 z); +s32 Math3D_XYInSphere(Sphere16* sphere, f32 x, f32 y); +s32 Math3D_YZInSphere(Sphere16* sphere, f32 y, f32 z); + +#endif diff --git a/include/ultra64/gu.h b/include/ultra64/gu.h index 429d12352..7e2a50d72 100644 --- a/include/ultra64/gu.h +++ b/include/ultra64/gu.h @@ -21,6 +21,12 @@ typedef union { f32 f; } fu; +f32 sinf(f32 angle); +s16 sins(u16 angle); + +f32 cosf(f32 angle); +s16 coss(u16 angle); + extern f32 __libm_qnan_f; #endif diff --git a/include/variables.h b/include/variables.h index a67d99246..0b3b260bf 100644 --- a/include/variables.h +++ b/include/variables.h @@ -172,7 +172,6 @@ extern u8 gSequenceTable[]; extern u8 gSampleBankTable[]; extern SaveContext gSaveContext; -extern RegEditor* gRegEditor; extern u8 gUseCutsceneCam; extern u16 D_8015FCCC; diff --git a/include/z64.h b/include/z64.h index 85ba06e8a..2a556d3f9 100644 --- a/include/z64.h +++ b/include/z64.h @@ -44,6 +44,7 @@ #include "sfx.h" #include "color.h" #include "gfxprint.h" +#include "z_lib.h" #include "ichain.h" #include "regs.h" #include "irqmgr.h" @@ -58,6 +59,10 @@ #include "gfx.h" #include "jpeg.h" #include "prerender.h" +#include "rand.h" +#include "sys_math.h" +#include "sys_math3d.h" +#include "fp_math.h" #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 240 @@ -99,15 +104,6 @@ // NOTE: Once we start supporting other builds, this can be changed with an ifdef #define REGION_NATIVE REGION_EU -typedef struct { - /* 0x00 */ s32 regPage; // 0: no page selected (reg editor is not active); 1: first page; `REG_PAGES`: last page - /* 0x04 */ s32 regGroup; // Indexed from 0 to `REG_GROUPS`-1. Each group has its own character to identify it. - /* 0x08 */ s32 regCur; // Selected reg, indexed from 0 as the page start - /* 0x0C */ s32 dPadInputPrev; - /* 0x10 */ s32 inputRepeatTimer; - /* 0x14 */ s16 data[REG_GROUPS * REGS_PER_GROUP]; // Accessed through *REG macros, see regs.h -} RegEditor; // size = 0x15D4 - typedef struct { /* 0x00 */ u8 seqId; /* 0x01 */ u8 natureAmbienceId; diff --git a/include/z64camera.h b/include/z64camera.h index 81584c1b6..e3696b4fb 100644 --- a/include/z64camera.h +++ b/include/z64camera.h @@ -6,10 +6,6 @@ #include "z64math.h" #include "z64save.h" -// these two angle conversion macros are slightly inaccurate -#define CAM_DEG_TO_BINANG(degrees) (s16)TRUNCF_BINANG((degrees) * 182.04167f + .5f) -#define CAM_BINANG_TO_DEG(binang) ((f32)(binang) * (360.0001525f / 65535.0f)) - #define CAM_STAT_CUT 0 #define CAM_STAT_WAIT 1 #define CAM_STAT_UNK3 3 diff --git a/include/z64math.h b/include/z64math.h index 6661a8dc2..16ba1a203 100644 --- a/include/z64math.h +++ b/include/z64math.h @@ -2,7 +2,9 @@ #define Z64MATH_H #include "ultra64.h" +#include "math.h" +#define SQ(x) ((x)*(x)) #define VEC_SET(V,X,Y,Z) (V).x=(X);(V).y=(Y);(V).z=(Z) typedef struct { @@ -116,6 +118,11 @@ typedef VecSphGeo VecGeo; #define BINANG_TO_RAD_ALT(binang) (((f32)(binang) / (f32)0x8000) * M_PI) #define BINANG_TO_RAD_ALT2(binang) (((f32)(binang) * M_PI) / 0x8000) +// Angle conversion macros (Camera) +// these two angle conversion macros are slightly inaccurate +#define CAM_DEG_TO_BINANG(degrees) (s16)TRUNCF_BINANG((degrees) * 182.04167f + .5f) +#define CAM_BINANG_TO_DEG(binang) ((f32)(binang) * (360.0001525f / 65535.0f)) + // Vector macros #define SQXZ(vec) ((vec).x * (vec).x + (vec).z * (vec).z) #define DOTXZ(vec1, vec2) ((vec1).x * (vec2).x + (vec1).z * (vec2).z) diff --git a/include/z_lib.h b/include/z_lib.h new file mode 100644 index 000000000..34581da98 --- /dev/null +++ b/include/z_lib.h @@ -0,0 +1,44 @@ +#ifndef Z_LIB_H +#define Z_LIB_H + +#include "libc/stddef.h" +#include "padmgr.h" +#include "z64math.h" +#include "color.h" + +void Lib_MemSet(u8* dest, size_t len, u8 val); +f32 Math_CosS(s16 angle); +f32 Math_SinS(s16 angle); +s32 Math_ScaledStepToS(s16* pValue, s16 target, s16 step); +s32 Math_StepToS(s16* pValue, s16 target, s16 step); +s32 Math_StepToF(f32* pValue, f32 target, f32 step); +s32 Math_StepUntilAngleS(s16* pValue, s16 limit, s16 step); +s32 Math_StepUntilS(s16* pValue, s16 limit, s16 step); +s32 Math_StepToAngleS(s16* pValue, s16 target, s16 step); +s32 Math_StepUntilF(f32* pValue, f32 limit, f32 step); +s32 Math_AsymStepToF(f32* pValue, f32 target, f32 incrStep, f32 decrStep); +void Lib_GetControlStickData(f32* outMagnitude, s16* outAngle, Input* input); +s16 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* origin, Vec3f* point); +s16 Math_Vec3f_Pitch(Vec3f* a, Vec3f* b); +f32 Math_SmoothStepToF(f32* pValue, f32 target, f32 fraction, f32 step, f32 minStep); +void Math_ApproachF(f32* pValue, f32 target, f32 fraction, f32 step); +void Math_ApproachZeroF(f32* pValue, f32 fraction, f32 step); +f32 Math_SmoothStepToDegF(f32* pValue, f32 target, f32 fraction, f32 step, f32 minStep); +s16 Math_SmoothStepToS(s16* pValue, s16 target, s16 scale, s16 step, s16 minStep); +void Math_ApproachS(s16* pValue, s16 target, s16 scale, s16 step); +void Color_RGBA8_Copy(Color_RGBA8* dst, Color_RGBA8* src); +void Sfx_PlaySfxCentered(u16 sfxId); +void Sfx_PlaySfxCentered2(u16 sfxId); +void Sfx_PlaySfxAtPos(Vec3f* projectedPos, u16 sfxId); + +#endif diff --git a/spec b/spec index 53841452d..9cc1b8d59 100644 --- a/spec +++ b/spec @@ -437,6 +437,9 @@ beginseg include "$(BUILD_DIR)/src/code/sys_cfb.o" include "$(BUILD_DIR)/src/code/sys_math.o" include "$(BUILD_DIR)/src/code/sys_math3d.o" +#if OOT_DEBUG + include "$(BUILD_DIR)/src/code/sys_math3d_draw.o" +#endif include "$(BUILD_DIR)/src/code/sys_math_atan.o" include "$(BUILD_DIR)/src/code/sys_matrix.o" include "$(BUILD_DIR)/src/code/sys_ucode.o" @@ -484,7 +487,7 @@ beginseg include "$(BUILD_DIR)/src/code/code_800FC620.o" include "$(BUILD_DIR)/src/code/padutils.o" include "$(BUILD_DIR)/src/code/padsetup.o" - include "$(BUILD_DIR)/src/code/code_800FCE80.o" + include "$(BUILD_DIR)/src/code/fp_math.o" include "$(BUILD_DIR)/src/code/fp.o" include "$(BUILD_DIR)/src/code/system_malloc.o" include "$(BUILD_DIR)/src/code/rand.o" diff --git a/src/code/code_80069420.c b/src/code/code_80069420.c index 6dd0a94f4..9a190edcf 100644 --- a/src/code/code_80069420.c +++ b/src/code/code_80069420.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "ultra64.h" /** * memcpy: copies `len` bytes from memory starting at `src` to memory starting at `dest`. Expects the memory diff --git a/src/code/fault.c b/src/code/fault.c index 662c1a9f1..7d8e62fef 100644 --- a/src/code/fault.c +++ b/src/code/fault.c @@ -48,9 +48,9 @@ // just above (the exact upper bound depends on the block numbers assigned to // extern variables declared in headers). #if OOT_DEBUG -#pragma increment_block_number 20 +#pragma increment_block_number 0 #else -#pragma increment_block_number 25 +#pragma increment_block_number 20 #endif void FaultDrawer_Init(void); diff --git a/src/code/fmodf.c b/src/code/fmodf.c index e1e386223..4ebec43bd 100644 --- a/src/code/fmodf.c +++ b/src/code/fmodf.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "ultra64.h" /** * Computes one `x` modulo `y` for floats. diff --git a/src/code/code_800FCE80.c b/src/code/fp_math.c similarity index 98% rename from src/code/code_800FCE80.c rename to src/code/fp_math.c index 8ac46833d..c429b83e2 100644 --- a/src/code/code_800FCE80.c +++ b/src/code/fp_math.c @@ -1,4 +1,5 @@ -#include "global.h" +#include "z64math.h" +#include "macros.h" s32 gUseAtanContFrac; diff --git a/src/code/rand.c b/src/code/rand.c index 4a0c5dc4a..baf396542 100644 --- a/src/code/rand.c +++ b/src/code/rand.c @@ -41,7 +41,7 @@ * * @note Original name: qrand.c */ -#include "ultra64.h" +#include "rand.h" #define RAND_MULTIPLIER 1664525 #define RAND_INCREMENT 1013904223 diff --git a/src/code/sys_math.c b/src/code/sys_math.c index f19719bb9..6a7344baa 100644 --- a/src/code/sys_math.c +++ b/src/code/sys_math.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "sys_math.h" f32 sFactorialTbl[] = { 1.0f, 1.0f, 2.0f, 6.0f, 24.0f, 120.0f, 720.0f, 5040.0f, 40320.0f, 362880.0f, 3628800.0f, 39916800.0f, 479001600.0f }; diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index 6525f825d..f0bfb60bc 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -1,9 +1,13 @@ -#include "global.h" +#include "ultra64.h" +#include "z_lib.h" +#include "z64math.h" #include "terminal.h" +#include "macros.h" +#include "sys_math3d.h" // For retail BSS ordering, the block number of cbf in Math3D_CylVsCylOverlapCenterDist // must be 0. -#pragma increment_block_number 187 +#pragma increment_block_number 114 s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); @@ -2147,11 +2151,3 @@ s32 Math3D_YZInSphere(Sphere16* sphere, f32 y, f32 z) { } return false; } - -#if OOT_DEBUG -void Math3D_DrawSphere(PlayState* play, Sphere16* sph) { -} - -void Math3D_DrawCylinder(PlayState* play, Cylinder16* cyl) { -} -#endif diff --git a/src/code/sys_math3d_draw.c b/src/code/sys_math3d_draw.c new file mode 100644 index 000000000..76651c825 --- /dev/null +++ b/src/code/sys_math3d_draw.c @@ -0,0 +1,7 @@ +#include "z64.h" + +void Math3D_DrawSphere(PlayState* play, Sphere16* sph) { +} + +void Math3D_DrawCylinder(PlayState* play, Cylinder16* cyl) { +} diff --git a/src/code/sys_math_atan.c b/src/code/sys_math_atan.c index efbe8a205..0647745b0 100644 --- a/src/code/sys_math_atan.c +++ b/src/code/sys_math_atan.c @@ -1,4 +1,5 @@ -#include "global.h" +#include "z64math.h" +#include "macros.h" static u16 sAtan2Tbl[] = { 0x0000, 0x000A, 0x0014, 0x001F, 0x0029, 0x0033, 0x003D, 0x0047, 0x0051, 0x005C, 0x0066, 0x0070, 0x007A, 0x0084, diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 118a445d7..bebcac08d 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -2360,9 +2360,6 @@ void CollisionCheck_ATTrisVsACTris(PlayState* play, CollisionCheckContext* colCh #if OOT_DEBUG static s8 sBssDummy7; -static s8 sBssDummy8; -static s8 sBssDummy9; -static s8 sBssDummy10; #endif void CollisionCheck_ATTrisVsACQuad(PlayState* play, CollisionCheckContext* colChkCtx, Collider* atCol, @@ -3329,12 +3326,10 @@ void Collider_SetTrisDim(PlayState* play, ColliderTris* tris, s32 elemIndex, Col } #if OOT_DEBUG -// Due to an unknown reason, bss ordering changed between the 2 static Vec3f variables in the function below. -// In order to reproduce this behavior, we need a specific number of bss variables in the file before that point. -// For this, we introduce a certain amount of dummy variables throughout the file, which we fit inside padding added -// by the compiler between structs like TriNorm and/or Vec3f, so they don't take space in bss. -static s8 sBssDummy11; -static s8 sBssDummy12; +// The two static Vec3f variables in the function below cross a block index rollover, causing a bss order swap. +//! In order to replicate this behavior, we declare a certain amount of sBssDummy variables throughout the file, which +//! we fit inside padding added by the compiler between structs like TriNorm and/or Vec3f, so they don't take space in +//! bss. #endif /** diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index ce79a7df9..aab406904 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -215,7 +215,7 @@ s16 sSunDepthTestY; // These variables could be moved farther down in the file to reduce the amount // of block number padding here, but currently this causes BSS ordering issues // for debug. -#pragma increment_block_number 230 +#pragma increment_block_number 227 LightNode* sNGameOverLightNode; LightInfo sNGameOverLightInfo; diff --git a/src/code/z_lib.c b/src/code/z_lib.c index 58a291162..5eba9346f 100644 --- a/src/code/z_lib.c +++ b/src/code/z_lib.c @@ -1,4 +1,11 @@ -#include "global.h" +#include "ultra64.h" +#include "z_lib.h" +#include "ichain.h" +#include "regs.h" +#include "macros.h" +#include "sys_math.h" +#include "rand.h" +#include "sfx.h" /** * memset: sets `len` bytes to `val` starting at address `dest`. @@ -334,7 +341,7 @@ void (*sInitChainHandlers[])(u8* ptr, InitChainEntry* ichain) = { IChain_Apply_Vec3f, IChain_Apply_Vec3fdiv1000, IChain_Apply_Vec3s, }; -void Actor_ProcessInitChain(Actor* actor, InitChainEntry* ichain) { +void Actor_ProcessInitChain(struct Actor* actor, InitChainEntry* ichain) { do { sInitChainHandlers[ichain->type]((u8*)actor, ichain); } while ((ichain++)->cont); diff --git a/src/code/z_olib.c b/src/code/z_olib.c index d5056e8f7..c1f93a052 100644 --- a/src/code/z_olib.c +++ b/src/code/z_olib.c @@ -1,4 +1,6 @@ -#include "global.h" +#include "z64math.h" +#include "fp_math.h" +#include "z_lib.h" /** * Calculates the distances between `a` and `b` diff --git a/src/libultra/gu/coss.c b/src/libultra/gu/coss.c index 0eb8b5e65..6a52bd1d4 100644 --- a/src/libultra/gu/coss.c +++ b/src/libultra/gu/coss.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "ultra64.h" /** * @param angle binang diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index bee978e5b..76daff7a0 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -11,7 +11,7 @@ #include "terminal.h" // For retail BSS ordering, the block number of sStreamSfxProjectedPos must be 0. -#pragma increment_block_number 198 +#pragma increment_block_number 193 #define FLAGS ACTOR_FLAG_4 From adcc1cecb129b4dba1ede0c8904decf25e8921ef Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 19 Jun 2024 06:16:02 +0200 Subject: [PATCH 22/29] Fix check_ordering.py checking for shifted/nonmatching-besides-relocs (#1961) --- tools/check_ordering.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tools/check_ordering.py b/tools/check_ordering.py index cd03ea1e7..83eecfacb 100755 --- a/tools/check_ordering.py +++ b/tools/check_ordering.py @@ -153,13 +153,15 @@ def main(): base_value = read_u32(base, file.vrom + reloc.offset_32) build_value = read_u32(build, file.vrom + reloc.offset_32) elif reloc.offset_hi16 is not None and reloc.offset_lo16 is not None: - if read_u16(base, file.vrom + reloc.offset_hi16) != read_u16( - build, file.vrom + reloc.offset_hi16 - ) or read_u16(base, file.vrom + reloc.offset_hi16) != read_u16( - build, file.vrom + reloc.offset_hi16 + if ( + read_u16(base, file.vrom + reloc.offset_hi16) + != read_u16(build, file.vrom + reloc.offset_hi16) + ) or ( + read_u16(base, file.vrom + reloc.offset_lo16) + != read_u16(build, file.vrom + reloc.offset_lo16) ): print( - f"Error: Reference to {reloc.name} in {file.filepath} is in a shifted portion of the ROM.\n" + f"Error: Reference to {reloc.name} in {file.filepath} is in a shifted (or non-matching even ignoring relocs) portion of the ROM.\n" "Please ensure that the only differences between the baserom and the current build are due to data ordering.", file=sys.stderr, ) @@ -187,7 +189,9 @@ def main(): for mapfile_segment in source_code_segments: for file in mapfile_segment: pointers_in_section = [ - p for p in pointers if file.vram <= p.build_value < file.vram + file.size + p + for p in pointers + if file.vram <= p.build_value < file.vram + file.size ] if not pointers_in_section: continue From 8b6a6e67788d8d8fa312e67619b9431d5a4b51a1 Mon Sep 17 00:00:00 2001 From: cadmic Date: Thu, 20 Jun 2024 15:26:01 -0700 Subject: [PATCH 23/29] Run CC_CHECK with the correct CPP defines (#1963) * Run CC_CHECK with the correct CPP defines * Add "CPP_DEFINES ?=" --- Makefile | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 4b1260b47..80a08c93b 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,7 @@ RUN_CC_CHECK := 1 CFLAGS ?= CPPFLAGS ?= +CPP_DEFINES ?= # ORIG_COMPILER cannot be combined with a non-IDO compiler. Check for this case and error out if found. ifneq ($(COMPILER),ido) @@ -36,8 +37,7 @@ ifneq ($(COMPILER),ido) endif ifeq ($(COMPILER),gcc) - CFLAGS += -DCOMPILER_GCC - CPPFLAGS += -DCOMPILER_GCC + CPP_DEFINES += -DCOMPILER_GCC NON_MATCHING := 1 endif @@ -46,8 +46,7 @@ endif MIPS_BINUTILS_PREFIX := mips-linux-gnu- ifeq ($(NON_MATCHING),1) - CFLAGS += -DNON_MATCHING -DAVOID_UB - CPPFLAGS += -DNON_MATCHING -DAVOID_UB + CPP_DEFINES += -DNON_MATCHING -DAVOID_UB COMPARE := 0 endif @@ -57,12 +56,10 @@ ifeq ($(VERSION),gc-eu) COMPARE := 0 else ifeq ($(VERSION),gc-eu-mq) DEBUG := 0 - CFLAGS += -DOOT_MQ - CPPFLAGS += -DOOT_MQ + CPP_DEFINES += -DOOT_MQ else ifeq ($(VERSION),gc-eu-mq-dbg) DEBUG := 1 - CFLAGS += -DOOT_MQ - CPPFLAGS += -DOOT_MQ + CPP_DEFINES += -DOOT_MQ else $(error Unsupported version $(VERSION)) endif @@ -78,12 +75,10 @@ MAKE = make CPPFLAGS += -P -xc -fno-dollars-in-identifiers ifeq ($(DEBUG),1) - CFLAGS += -DOOT_DEBUG=1 - CPPFLAGS += -DOOT_DEBUG=1 + CPP_DEFINES += -DOOT_DEBUG=1 OPTFLAGS := -O2 else - CFLAGS += -DNDEBUG -DOOT_DEBUG=0 - CPPFLAGS += -DNDEBUG -DOOT_DEBUG=0 + CPP_DEFINES += -DNDEBUG -DOOT_DEBUG=0 OPTFLAGS := -O2 -g3 endif @@ -154,6 +149,9 @@ PYTHON ?= $(VENV)/bin/python3 # preprocessor for this because it won't substitute inside string literals. SPEC_REPLACE_VARS := sed -e 's|$$(BUILD_DIR)|$(BUILD_DIR)|g' +CFLAGS += $(CPP_DEFINES) +CPPFLAGS += $(CPP_DEFINES) + ifeq ($(COMPILER),gcc) OPTFLAGS := -Os -ffast-math -fno-unsafe-math-optimizations endif @@ -174,7 +172,7 @@ endif ifeq ($(COMPILER),ido) # Have CC_CHECK pretend to be a MIPS compiler MIPS_BUILTIN_DEFS := -D_MIPS_ISA_MIPS2=2 -D_MIPS_ISA=_MIPS_ISA_MIPS2 -D_ABIO32=1 -D_MIPS_SIM=_ABIO32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32 - CC_CHECK = gcc -fno-builtin -fsyntax-only -funsigned-char -std=gnu90 -D_LANGUAGE_C -DNON_MATCHING -DOOT_DEBUG=1 $(MIPS_BUILTIN_DEFS) $(INC) $(CHECK_WARNINGS) + CC_CHECK = gcc -fno-builtin -fsyntax-only -funsigned-char -std=gnu90 -D_LANGUAGE_C $(CPP_DEFINES) $(MIPS_BUILTIN_DEFS) $(INC) $(CHECK_WARNINGS) ifeq ($(shell getconf LONG_BIT), 32) # Work around memory allocation bug in QEMU export QEMU_GUEST_BASE := 1 From 0ddd64fd6cd377492389283c2d260d65e9319794 Mon Sep 17 00:00:00 2001 From: cadmic Date: Thu, 20 Jun 2024 19:26:32 -0700 Subject: [PATCH 24/29] Introduce version-specific YAML config (#1957) --- Makefile | 2 +- baseroms/gc-eu-mq-dbg/config.yml | 8 + baseroms/gc-eu-mq-dbg/dmadata_names.txt | 1532 ---------------------- baseroms/gc-eu-mq-dbg/dmadata_start.txt | 1 - baseroms/gc-eu-mq-dbg/segments.csv | 1533 +++++++++++++++++++++++ baseroms/gc-eu-mq/config.yml | 8 + baseroms/gc-eu-mq/dmadata_names.txt | 1510 ---------------------- baseroms/gc-eu-mq/dmadata_start.txt | 1 - baseroms/gc-eu-mq/segments.csv | 1511 ++++++++++++++++++++++ baseroms/gc-eu/config.yml | 8 + baseroms/gc-eu/dmadata_names.txt | 1510 ---------------------- baseroms/gc-eu/dmadata_start.txt | 1 - baseroms/gc-eu/segments.csv | 1511 ++++++++++++++++++++++ requirements.txt | 1 + tools/decompress_baserom.py | 9 +- tools/extract_baserom.py | 25 +- tools/msgdis.py | 33 +- tools/version_config.py | 53 + 18 files changed, 4667 insertions(+), 4590 deletions(-) create mode 100644 baseroms/gc-eu-mq-dbg/config.yml delete mode 100644 baseroms/gc-eu-mq-dbg/dmadata_names.txt delete mode 100644 baseroms/gc-eu-mq-dbg/dmadata_start.txt create mode 100644 baseroms/gc-eu-mq-dbg/segments.csv create mode 100644 baseroms/gc-eu-mq/config.yml delete mode 100644 baseroms/gc-eu-mq/dmadata_names.txt delete mode 100644 baseroms/gc-eu-mq/dmadata_start.txt create mode 100644 baseroms/gc-eu-mq/segments.csv create mode 100644 baseroms/gc-eu/config.yml delete mode 100644 baseroms/gc-eu/dmadata_names.txt delete mode 100644 baseroms/gc-eu/dmadata_start.txt create mode 100644 baseroms/gc-eu/segments.csv create mode 100644 tools/version_config.py diff --git a/Makefile b/Makefile index 80a08c93b..6ed8f3e2c 100644 --- a/Makefile +++ b/Makefile @@ -368,7 +368,7 @@ venv: setup: venv $(MAKE) -C tools $(PYTHON) tools/decompress_baserom.py $(VERSION) - $(PYTHON) tools/extract_baserom.py $(BASEROM_DIR)/baserom-decompressed.z64 -o $(EXTRACTED_DIR)/baserom --dmadata-start `cat $(BASEROM_DIR)/dmadata_start.txt` --dmadata-names $(BASEROM_DIR)/dmadata_names.txt + $(PYTHON) tools/extract_baserom.py $(BASEROM_DIR)/baserom-decompressed.z64 --oot-version $(VERSION) -o $(EXTRACTED_DIR)/baserom $(PYTHON) tools/msgdis.py --oot-version $(VERSION) --text-out $(EXTRACTED_DIR)/text/message_data.h --staff-text-out $(EXTRACTED_DIR)/text/message_data_staff.h # TODO: for now, we only extract assets from the Debug ROM ifeq ($(VERSION),gc-eu-mq-dbg) diff --git a/baseroms/gc-eu-mq-dbg/config.yml b/baseroms/gc-eu-mq-dbg/config.yml new file mode 100644 index 000000000..dd6123e33 --- /dev/null +++ b/baseroms/gc-eu-mq-dbg/config.yml @@ -0,0 +1,8 @@ +dmadata_start: 0x12F70 +variables: + gMtxClear: 0x8012DB20 + sNesMessageEntryTable: 0x8014B320 + sGerMessageEntryTable: 0x8014F548 + sFraMessageEntryTable: 0x80151658 + sStaffMessageEntryTable: 0x80153768 + sNesMessageEntryTablePtr: 0x801538F0 diff --git a/baseroms/gc-eu-mq-dbg/dmadata_names.txt b/baseroms/gc-eu-mq-dbg/dmadata_names.txt deleted file mode 100644 index 60e3b0aa8..000000000 --- a/baseroms/gc-eu-mq-dbg/dmadata_names.txt +++ /dev/null @@ -1,1532 +0,0 @@ -makerom -boot -dmadata -Audiobank -Audioseq -Audiotable -link_animetion -icon_item_static -icon_item_24_static -icon_item_field_static -icon_item_dungeon_static -icon_item_gameover_static -icon_item_nes_static -icon_item_ger_static -icon_item_fra_static -item_name_static -map_name_static -do_action_static -message_static -message_texture_static -nes_font_static -nes_message_data_static -ger_message_data_static -fra_message_data_static -staff_message_data_static -map_grand_static -map_i_static -map_48x85_static -code -ovl_title -ovl_select -ovl_opening -ovl_file_choose -ovl_kaleido_scope -ovl_player_actor -ovl_map_mark_data -ovl_En_Test -ovl_Arms_Hook -ovl_Arrow_Fire -ovl_Arrow_Ice -ovl_Arrow_Light -ovl_Bg_Bdan_Objects -ovl_Bg_Bdan_Switch -ovl_Bg_Bom_Guard -ovl_Bg_Bombwall -ovl_Bg_Bowl_Wall -ovl_Bg_Breakwall -ovl_Bg_Ddan_Jd -ovl_Bg_Ddan_Kd -ovl_Bg_Dodoago -ovl_Bg_Dy_Yoseizo -ovl_Bg_Ganon_Otyuka -ovl_Bg_Gate_Shutter -ovl_Bg_Gjyo_Bridge -ovl_Bg_Gnd_Darkmeiro -ovl_Bg_Gnd_Firemeiro -ovl_Bg_Gnd_Iceblock -ovl_Bg_Gnd_Nisekabe -ovl_Bg_Gnd_Soulmeiro -ovl_Bg_Haka -ovl_Bg_Haka_Gate -ovl_Bg_Haka_Huta -ovl_Bg_Haka_Megane -ovl_Bg_Haka_MeganeBG -ovl_Bg_Haka_Sgami -ovl_Bg_Haka_Ship -ovl_Bg_Haka_Trap -ovl_Bg_Haka_Tubo -ovl_Bg_Haka_Water -ovl_Bg_Haka_Zou -ovl_Bg_Heavy_Block -ovl_Bg_Hidan_Curtain -ovl_Bg_Hidan_Dalm -ovl_Bg_Hidan_Firewall -ovl_Bg_Hidan_Fslift -ovl_Bg_Hidan_Fwbig -ovl_Bg_Hidan_Hamstep -ovl_Bg_Hidan_Hrock -ovl_Bg_Hidan_Kousi -ovl_Bg_Hidan_Kowarerukabe -ovl_Bg_Hidan_Rock -ovl_Bg_Hidan_Rsekizou -ovl_Bg_Hidan_Sekizou -ovl_Bg_Hidan_Sima -ovl_Bg_Hidan_Syoku -ovl_Bg_Ice_Objects -ovl_Bg_Ice_Shelter -ovl_Bg_Ice_Shutter -ovl_Bg_Ice_Turara -ovl_Bg_Ingate -ovl_Bg_Jya_1flift -ovl_Bg_Jya_Amishutter -ovl_Bg_Jya_Bigmirror -ovl_Bg_Jya_Block -ovl_Bg_Jya_Bombchuiwa -ovl_Bg_Jya_Bombiwa -ovl_Bg_Jya_Cobra -ovl_Bg_Jya_Goroiwa -ovl_Bg_Jya_Haheniron -ovl_Bg_Jya_Ironobj -ovl_Bg_Jya_Kanaami -ovl_Bg_Jya_Lift -ovl_Bg_Jya_Megami -ovl_Bg_Jya_Zurerukabe -ovl_Bg_Menkuri_Eye -ovl_Bg_Menkuri_Kaiten -ovl_Bg_Menkuri_Nisekabe -ovl_Bg_Mizu_Bwall -ovl_Bg_Mizu_Movebg -ovl_Bg_Mizu_Shutter -ovl_Bg_Mizu_Uzu -ovl_Bg_Mizu_Water -ovl_Bg_Mjin -ovl_Bg_Mori_Bigst -ovl_Bg_Mori_Elevator -ovl_Bg_Mori_Hashigo -ovl_Bg_Mori_Hashira4 -ovl_Bg_Mori_Hineri -ovl_Bg_Mori_Idomizu -ovl_Bg_Mori_Kaitenkabe -ovl_Bg_Mori_Rakkatenjo -ovl_Bg_Po_Event -ovl_Bg_Po_Syokudai -ovl_Bg_Pushbox -ovl_Bg_Relay_Objects -ovl_Bg_Spot00_Break -ovl_Bg_Spot00_Hanebasi -ovl_Bg_Spot01_Fusya -ovl_Bg_Spot01_Idohashira -ovl_Bg_Spot01_Idomizu -ovl_Bg_Spot01_Idosoko -ovl_Bg_Spot01_Objects2 -ovl_Bg_Spot02_Objects -ovl_Bg_Spot03_Taki -ovl_Bg_Spot05_Soko -ovl_Bg_Spot06_Objects -ovl_Bg_Spot07_Taki -ovl_Bg_Spot08_Bakudankabe -ovl_Bg_Spot08_Iceblock -ovl_Bg_Spot09_Obj -ovl_Bg_Spot11_Bakudankabe -ovl_Bg_Spot11_Oasis -ovl_Bg_Spot12_Gate -ovl_Bg_Spot12_Saku -ovl_Bg_Spot15_Rrbox -ovl_Bg_Spot15_Saku -ovl_Bg_Spot16_Bombstone -ovl_Bg_Spot16_Doughnut -ovl_Bg_Spot17_Bakudankabe -ovl_Bg_Spot17_Funen -ovl_Bg_Spot18_Basket -ovl_Bg_Spot18_Futa -ovl_Bg_Spot18_Obj -ovl_Bg_Spot18_Shutter -ovl_Bg_Sst_Floor -ovl_Bg_Toki_Hikari -ovl_Bg_Toki_Swd -ovl_Bg_Treemouth -ovl_Bg_Umajump -ovl_Bg_Vb_Sima -ovl_Bg_Ydan_Hasi -ovl_Bg_Ydan_Maruta -ovl_Bg_Ydan_Sp -ovl_Bg_Zg -ovl_Boss_Dodongo -ovl_Boss_Fd -ovl_Boss_Fd2 -ovl_Boss_Ganon -ovl_Boss_Ganon2 -ovl_Boss_Ganondrof -ovl_Boss_Goma -ovl_Boss_Mo -ovl_Boss_Sst -ovl_Boss_Tw -ovl_Boss_Va -ovl_Demo_6K -ovl_Demo_Du -ovl_Demo_Ec -ovl_Demo_Effect -ovl_Demo_Ext -ovl_Demo_Geff -ovl_Demo_Gj -ovl_Demo_Go -ovl_Demo_Gt -ovl_Demo_Ik -ovl_Demo_Im -ovl_Demo_Kankyo -ovl_Demo_Kekkai -ovl_Demo_Sa -ovl_Demo_Shd -ovl_Demo_Tre_Lgt -ovl_Door_Ana -ovl_Door_Gerudo -ovl_Door_Killer -ovl_Door_Shutter -ovl_Door_Toki -ovl_Door_Warp1 -ovl_Efc_Erupc -ovl_Eff_Dust -ovl_Effect_Ss_Blast -ovl_Effect_Ss_Bomb -ovl_Effect_Ss_Bomb2 -ovl_Effect_Ss_Bubble -ovl_Effect_Ss_D_Fire -ovl_Effect_Ss_Dead_Db -ovl_Effect_Ss_Dead_Dd -ovl_Effect_Ss_Dead_Ds -ovl_Effect_Ss_Dead_Sound -ovl_Effect_Ss_Dt_Bubble -ovl_Effect_Ss_Dust -ovl_Effect_Ss_En_Fire -ovl_Effect_Ss_En_Ice -ovl_Effect_Ss_Extra -ovl_Effect_Ss_Fcircle -ovl_Effect_Ss_Fhg_Flash -ovl_Effect_Ss_Fire_Tail -ovl_Effect_Ss_G_Fire -ovl_Effect_Ss_G_Magma -ovl_Effect_Ss_G_Magma2 -ovl_Effect_Ss_G_Ripple -ovl_Effect_Ss_G_Spk -ovl_Effect_Ss_G_Splash -ovl_Effect_Ss_Hahen -ovl_Effect_Ss_HitMark -ovl_Effect_Ss_Ice_Piece -ovl_Effect_Ss_Ice_Smoke -ovl_Effect_Ss_K_Fire -ovl_Effect_Ss_Kakera -ovl_Effect_Ss_KiraKira -ovl_Effect_Ss_Lightning -ovl_Effect_Ss_Sibuki -ovl_Effect_Ss_Sibuki2 -ovl_Effect_Ss_Solder_Srch_Ball -ovl_Effect_Ss_Stick -ovl_Effect_Ss_Stone1 -ovl_Elf_Msg -ovl_Elf_Msg2 -ovl_En_Am -ovl_En_Ani -ovl_En_Anubice -ovl_En_Anubice_Fire -ovl_En_Anubice_Tag -ovl_En_Arow_Trap -ovl_En_Arrow -ovl_En_Attack_Niw -ovl_En_Ba -ovl_En_Bb -ovl_En_Bdfire -ovl_En_Bigokuta -ovl_En_Bili -ovl_En_Bird -ovl_En_Blkobj -ovl_En_Bom -ovl_En_Bom_Bowl_Man -ovl_En_Bom_Bowl_Pit -ovl_En_Bom_Chu -ovl_En_Bombf -ovl_En_Boom -ovl_En_Box -ovl_En_Brob -ovl_En_Bubble -ovl_En_Butte -ovl_En_Bw -ovl_En_Bx -ovl_En_Changer -ovl_En_Clear_Tag -ovl_En_Cow -ovl_En_Crow -ovl_En_Cs -ovl_En_Daiku -ovl_En_Daiku_Kakariko -ovl_En_Dekubaba -ovl_En_Dekunuts -ovl_En_Dh -ovl_En_Dha -ovl_En_Diving_Game -ovl_En_Dns -ovl_En_Dnt_Demo -ovl_En_Dnt_Jiji -ovl_En_Dnt_Nomal -ovl_En_Dodojr -ovl_En_Dodongo -ovl_En_Dog -ovl_En_Door -ovl_En_Ds -ovl_En_Du -ovl_En_Dy_Extra -ovl_En_Eg -ovl_En_Eiyer -ovl_En_Elf -ovl_En_Encount1 -ovl_En_Encount2 -ovl_En_Ex_Item -ovl_En_Ex_Ruppy -ovl_En_Fd -ovl_En_Fd_Fire -ovl_En_Fhg_Fire -ovl_En_Fire_Rock -ovl_En_Firefly -ovl_En_Fish -ovl_En_Floormas -ovl_En_Fr -ovl_En_Fu -ovl_En_Fw -ovl_En_Fz -ovl_En_G_Switch -ovl_En_Ganon_Mant -ovl_En_Ganon_Organ -ovl_En_Gb -ovl_En_Ge1 -ovl_En_Ge2 -ovl_En_Ge3 -ovl_En_GeldB -ovl_En_GirlA -ovl_En_Gm -ovl_En_Go -ovl_En_Go2 -ovl_En_Goma -ovl_En_Goroiwa -ovl_En_Gs -ovl_En_Guest -ovl_En_Hata -ovl_En_Heishi1 -ovl_En_Heishi2 -ovl_En_Heishi3 -ovl_En_Heishi4 -ovl_En_Hintnuts -ovl_En_Holl -ovl_En_Honotrap -ovl_En_Horse -ovl_En_Horse_Game_Check -ovl_En_Horse_Ganon -ovl_En_Horse_Link_Child -ovl_En_Horse_Normal -ovl_En_Horse_Zelda -ovl_En_Hs -ovl_En_Hs2 -ovl_En_Hy -ovl_En_Ice_Hono -ovl_En_Ik -ovl_En_In -ovl_En_Insect -ovl_En_Ishi -ovl_En_It -ovl_En_Jj -ovl_En_Js -ovl_En_Jsjutan -ovl_En_Kakasi -ovl_En_Kakasi2 -ovl_En_Kakasi3 -ovl_En_Kanban -ovl_En_Karebaba -ovl_En_Ko -ovl_En_Kusa -ovl_En_Kz -ovl_En_Light -ovl_En_Lightbox -ovl_En_M_Fire1 -ovl_En_M_Thunder -ovl_En_Ma1 -ovl_En_Ma2 -ovl_En_Ma3 -ovl_En_Mag -ovl_En_Mb -ovl_En_Md -ovl_En_Mk -ovl_En_Mm -ovl_En_Mm2 -ovl_En_Ms -ovl_En_Mu -ovl_En_Nb -ovl_En_Niw -ovl_En_Niw_Girl -ovl_En_Niw_Lady -ovl_En_Nutsball -ovl_En_Nwc -ovl_En_Ny -ovl_En_OE2 -ovl_En_Okarina_Effect -ovl_En_Okarina_Tag -ovl_En_Okuta -ovl_En_Ossan -ovl_En_Owl -ovl_En_Part -ovl_En_Peehat -ovl_En_Po_Desert -ovl_En_Po_Field -ovl_En_Po_Relay -ovl_En_Po_Sisters -ovl_En_Poh -ovl_En_Pu_box -ovl_En_Rd -ovl_En_Reeba -ovl_En_River_Sound -ovl_En_Rl -ovl_En_Rr -ovl_En_Ru1 -ovl_En_Ru2 -ovl_En_Sa -ovl_En_Sb -ovl_En_Scene_Change -ovl_En_Sda -ovl_En_Shopnuts -ovl_En_Si -ovl_En_Siofuki -ovl_En_Skb -ovl_En_Skj -ovl_En_Skjneedle -ovl_En_Ssh -ovl_En_St -ovl_En_Sth -ovl_En_Stream -ovl_En_Sw -ovl_En_Syateki_Itm -ovl_En_Syateki_Man -ovl_En_Syateki_Niw -ovl_En_Ta -ovl_En_Takara_Man -ovl_En_Tana -ovl_En_Tg -ovl_En_Tite -ovl_En_Tk -ovl_En_Torch -ovl_En_Torch2 -ovl_En_Toryo -ovl_En_Tp -ovl_En_Tr -ovl_En_Trap -ovl_En_Tubo_Trap -ovl_En_Vali -ovl_En_Vase -ovl_En_Vb_Ball -ovl_En_Viewer -ovl_En_Vm -ovl_En_Wall_Tubo -ovl_En_Wallmas -ovl_En_Weather_Tag -ovl_En_Weiyer -ovl_En_Wf -ovl_En_Wonder_Item -ovl_En_Wonder_Talk -ovl_En_Wonder_Talk2 -ovl_En_Wood02 -ovl_En_Xc -ovl_En_Yabusame_Mark -ovl_En_Yukabyun -ovl_En_Zf -ovl_En_Zl1 -ovl_En_Zl2 -ovl_En_Zl3 -ovl_En_Zl4 -ovl_En_Zo -ovl_En_fHG -ovl_End_Title -ovl_Fishing -ovl_Item_B_Heart -ovl_Item_Etcetera -ovl_Item_Inbox -ovl_Item_Ocarina -ovl_Item_Shield -ovl_Magic_Dark -ovl_Magic_Fire -ovl_Magic_Wind -ovl_Mir_Ray -ovl_Obj_Bean -ovl_Obj_Blockstop -ovl_Obj_Bombiwa -ovl_Obj_Comb -ovl_Obj_Dekujr -ovl_Obj_Elevator -ovl_Obj_Hamishi -ovl_Obj_Hana -ovl_Obj_Hsblock -ovl_Obj_Ice_Poly -ovl_Obj_Kibako -ovl_Obj_Kibako2 -ovl_Obj_Lift -ovl_Obj_Lightswitch -ovl_Obj_Makekinsuta -ovl_Obj_Makeoshihiki -ovl_Obj_Mure -ovl_Obj_Mure2 -ovl_Obj_Mure3 -ovl_Obj_Oshihiki -ovl_Obj_Roomtimer -ovl_Obj_Switch -ovl_Obj_Syokudai -ovl_Obj_Timeblock -ovl_Obj_Tsubo -ovl_Obj_Warp2block -ovl_Object_Kankyo -ovl_Oceff_Spot -ovl_Oceff_Storm -ovl_Oceff_Wipe -ovl_Oceff_Wipe2 -ovl_Oceff_Wipe3 -ovl_Oceff_Wipe4 -ovl_Shot_Sun -gameplay_keep -gameplay_field_keep -gameplay_dangeon_keep -gameplay_object_exchange_static -object_link_boy -object_link_child -object_box -object_human -object_okuta -object_poh -object_wallmaster -object_dy_obj -object_firefly -object_dodongo -object_fire -object_niw -object_tite -object_reeba -object_peehat -object_kingdodongo -object_horse -object_zf -object_goma -object_zl1 -object_gol -object_bubble -object_dodojr -object_torch2 -object_bl -object_tp -object_oA1 -object_st -object_bw -object_ei -object_horse_normal -object_oB1 -object_o_anime -object_spot04_objects -object_ddan_objects -object_hidan_objects -object_horse_ganon -object_oA2 -object_spot00_objects -object_mb -object_bombf -object_sk2 -object_oE1 -object_oE_anime -object_oE2 -object_ydan_objects -object_gnd -object_am -object_dekubaba -object_oA3 -object_oA4 -object_oA5 -object_oA6 -object_oA7 -object_jj -object_oA8 -object_oA9 -object_oB2 -object_oB3 -object_oB4 -object_horse_zelda -object_opening_demo1 -object_warp1 -object_b_heart -object_dekunuts -object_oE3 -object_oE4 -object_menkuri_objects -object_oE5 -object_oE6 -object_oE7 -object_oE8 -object_oE9 -object_oE10 -object_oE11 -object_oE12 -object_vali -object_oA10 -object_oA11 -object_mizu_objects -object_fhg -object_ossan -object_mori_hineri1 -object_Bb -object_toki_objects -object_yukabyun -object_zl2 -object_mjin -object_mjin_flash -object_mjin_dark -object_mjin_flame -object_mjin_ice -object_mjin_soul -object_mjin_wind -object_mjin_oka -object_haka_objects -object_spot06_objects -object_ice_objects -object_relay_objects -object_mori_hineri1a -object_mori_hineri2 -object_mori_hineri2a -object_mori_objects -object_mori_tex -object_spot08_obj -object_warp2 -object_hata -object_bird -object_wood02 -object_lightbox -object_pu_box -object_trap -object_vase -object_im -object_ta -object_tk -object_xc -object_vm -object_bv -object_hakach_objects -object_efc_crystal_light -object_efc_fire_ball -object_efc_flash -object_efc_lgt_shower -object_efc_star_field -object_god_lgt -object_light_ring -object_triforce_spot -object_medal -object_bdan_objects -object_sd -object_rd -object_po_sisters -object_heavy_object -object_gndd -object_fd -object_du -object_fw -object_horse_link_child -object_spot02_objects -object_haka -object_ru1 -object_syokudai -object_fd2 -object_dh -object_rl -object_efc_tw -object_demo_tre_lgt -object_gi_key -object_mir_ray -object_brob -object_gi_jewel -object_spot09_obj -object_spot18_obj -object_bdoor -object_spot17_obj -object_shop_dungen -object_nb -object_mo -object_sb -object_gi_melody -object_gi_heart -object_gi_compass -object_gi_bosskey -object_gi_medal -object_gi_nuts -object_sa -object_gi_hearts -object_gi_arrowcase -object_gi_bombpouch -object_in -object_tr -object_spot16_obj -object_oE1s -object_oE4s -object_os_anime -object_gi_bottle -object_gi_stick -object_gi_map -object_oF1d_map -object_ru2 -object_gi_shield_1 -object_dekujr -object_gi_magicpot -object_gi_bomb_1 -object_oF1s -object_ma2 -object_gi_purse -object_hni -object_tw -object_rr -object_bxa -object_anubice -object_gi_gerudo -object_gi_arrow -object_gi_bomb_2 -object_gi_egg -object_gi_scale -object_gi_shield_2 -object_gi_hookshot -object_gi_ocarina -object_gi_milk -object_ma1 -object_ganon -object_sst -object_ny -object_fr -object_gi_pachinko -object_gi_boomerang -object_gi_bow -object_gi_glasses -object_gi_liquid -object_ani -object_demo_6k -object_gi_shield_3 -object_gi_letter -object_spot15_obj -object_jya_obj -object_gi_clothes -object_gi_bean -object_gi_fish -object_gi_saw -object_gi_hammer -object_gi_grass -object_gi_longsword -object_spot01_objects -object_md -object_km1 -object_kw1 -object_zo -object_kz -object_umajump -object_masterkokiri -object_masterkokirihead -object_mastergolon -object_masterzoora -object_aob -object_ik -object_ahg -object_cne -object_gi_niwatori -object_skj -object_gi_bottle_letter -object_bji -object_bba -object_gi_ocarina_0 -object_ds -object_ane -object_boj -object_spot03_object -object_spot07_object -object_fz -object_bob -object_ge1 -object_yabusame_point -object_gi_boots_2 -object_gi_seed -object_gnd_magic -object_d_elevator -object_d_hsblock -object_d_lift -object_mamenoki -object_goroiwa -object_toryo -object_daiku -object_nwc -object_blkobj -object_gm -object_ms -object_hs -object_ingate -object_lightswitch -object_kusa -object_tsubo -object_gi_gloves -object_gi_coin -object_kanban -object_gjyo_objects -object_owl -object_mk -object_fu -object_gi_ki_tan_mask -object_gi_redead_mask -object_gi_skj_mask -object_gi_rabit_mask -object_gi_truth_mask -object_ganon_objects -object_siofuki -object_stream -object_mm -object_fa -object_os -object_gi_eye_lotion -object_gi_powder -object_gi_mushroom -object_gi_ticketstone -object_gi_brokensword -object_js -object_cs -object_gi_prescription -object_gi_bracelet -object_gi_soldout -object_gi_frog -object_mag -object_door_gerudo -object_gt -object_efc_erupc -object_zl2_anime1 -object_zl2_anime2 -object_gi_golonmask -object_gi_zoramask -object_gi_gerudomask -object_ganon2 -object_ka -object_ts -object_zg -object_gi_hoverboots -object_gi_m_arrow -object_ds2 -object_ec -object_fish -object_gi_sutaru -object_gi_goddess -object_ssh -object_bigokuta -object_bg -object_spot05_objects -object_spot12_obj -object_bombiwa -object_hintnuts -object_rs -object_spot00_break -object_gla -object_shopnuts -object_geldb -object_gr -object_dog -object_jya_iron -object_jya_door -object_spot01_objects2 -object_spot11_obj -object_kibako2 -object_dns -object_dnk -object_gi_fire -object_gi_insect -object_gi_butterfly -object_gi_ghost -object_gi_soul -object_bowl -object_po_field -object_demo_kekkai -object_efc_doughnut -object_gi_dekupouch -object_ganon_anime1 -object_ganon_anime2 -object_ganon_anime3 -object_gi_rupy -object_spot01_matoya -object_spot01_matoyab -object_po_composer -object_mu -object_wf -object_skb -object_gj -object_geff -object_haka_door -object_gs -object_ps -object_bwall -object_crow -object_cow -object_cob -object_gi_sword_1 -object_door_killer -object_ouke_haka -object_timeblock -object_zl4 -g_pn_01 -g_pn_02 -g_pn_03 -g_pn_04 -g_pn_05 -g_pn_06 -g_pn_07 -g_pn_08 -g_pn_09 -g_pn_10 -g_pn_11 -g_pn_12 -g_pn_13 -g_pn_14 -g_pn_15 -g_pn_16 -g_pn_17 -g_pn_18 -g_pn_19 -g_pn_20 -g_pn_21 -g_pn_22 -g_pn_23 -g_pn_24 -g_pn_25 -g_pn_26 -g_pn_27 -g_pn_28 -g_pn_29 -g_pn_30 -g_pn_31 -g_pn_32 -g_pn_33 -g_pn_34 -g_pn_35 -g_pn_36 -g_pn_37 -g_pn_38 -g_pn_39 -g_pn_40 -g_pn_41 -g_pn_42 -g_pn_43 -g_pn_44 -g_pn_45 -g_pn_46 -g_pn_47 -g_pn_48 -g_pn_49 -g_pn_50 -g_pn_51 -g_pn_52 -g_pn_53 -g_pn_54 -g_pn_55 -g_pn_56 -g_pn_57 -z_select_static -nintendo_rogo_static -title_static -parameter_static -vr_fine0_static -vr_fine0_pal_static -vr_fine1_static -vr_fine1_pal_static -vr_fine2_static -vr_fine2_pal_static -vr_fine3_static -vr_fine3_pal_static -vr_cloud0_static -vr_cloud0_pal_static -vr_cloud1_static -vr_cloud1_pal_static -vr_cloud2_static -vr_cloud2_pal_static -vr_cloud3_static -vr_cloud3_pal_static -vr_holy0_static -vr_holy0_pal_static -vr_holy1_static -vr_holy1_pal_static -vr_MDVR_static -vr_MDVR_pal_static -vr_MNVR_static -vr_MNVR_pal_static -vr_RUVR_static -vr_RUVR_pal_static -vr_LHVR_static -vr_LHVR_pal_static -vr_KHVR_static -vr_KHVR_pal_static -vr_K3VR_static -vr_K3VR_pal_static -vr_K4VR_static -vr_K4VR_pal_static -vr_K5VR_static -vr_K5VR_pal_static -vr_SP1a_static -vr_SP1a_pal_static -vr_MLVR_static -vr_MLVR_pal_static -vr_KKRVR_static -vr_KKRVR_pal_static -vr_KR3VR_static -vr_KR3VR_pal_static -vr_IPVR_static -vr_IPVR_pal_static -vr_KSVR_static -vr_KSVR_pal_static -vr_GLVR_static -vr_GLVR_pal_static -vr_ZRVR_static -vr_ZRVR_pal_static -vr_DGVR_static -vr_DGVR_pal_static -vr_ALVR_static -vr_ALVR_pal_static -vr_NSVR_static -vr_NSVR_pal_static -vr_LBVR_static -vr_LBVR_pal_static -vr_TTVR_static -vr_TTVR_pal_static -vr_FCVR_static -vr_FCVR_pal_static -elf_message_field -elf_message_ydan -syotes_scene -syotes_room_0 -syotes2_scene -syotes2_room_0 -depth_test_scene -depth_test_room_0 -spot00_scene -spot00_room_0 -spot01_scene -spot01_room_0 -spot02_scene -spot02_room_0 -spot02_room_1 -spot03_scene -spot03_room_0 -spot03_room_1 -spot04_scene -spot04_room_0 -spot04_room_1 -spot04_room_2 -spot05_scene -spot05_room_0 -spot06_scene -spot06_room_0 -spot07_scene -spot07_room_0 -spot07_room_1 -spot08_scene -spot08_room_0 -spot09_scene -spot09_room_0 -spot10_scene -spot10_room_0 -spot10_room_1 -spot10_room_2 -spot10_room_3 -spot10_room_4 -spot10_room_5 -spot10_room_6 -spot10_room_7 -spot10_room_8 -spot10_room_9 -spot11_scene -spot11_room_0 -spot12_scene -spot12_room_0 -spot12_room_1 -spot13_scene -spot13_room_0 -spot13_room_1 -spot15_scene -spot15_room_0 -spot16_scene -spot16_room_0 -spot17_scene -spot17_room_0 -spot17_room_1 -spot18_scene -spot18_room_0 -spot18_room_1 -spot18_room_2 -spot18_room_3 -ydan_scene -ydan_room_0 -ydan_room_1 -ydan_room_2 -ydan_room_3 -ydan_room_4 -ydan_room_5 -ydan_room_6 -ydan_room_7 -ydan_room_8 -ydan_room_9 -ydan_room_10 -ydan_room_11 -ddan_scene -ddan_room_0 -ddan_room_1 -ddan_room_2 -ddan_room_3 -ddan_room_4 -ddan_room_5 -ddan_room_6 -ddan_room_7 -ddan_room_8 -ddan_room_9 -ddan_room_10 -ddan_room_11 -ddan_room_12 -ddan_room_13 -ddan_room_14 -ddan_room_15 -ddan_room_16 -bdan_scene -bdan_room_0 -bdan_room_1 -bdan_room_2 -bdan_room_3 -bdan_room_4 -bdan_room_5 -bdan_room_6 -bdan_room_7 -bdan_room_8 -bdan_room_9 -bdan_room_10 -bdan_room_11 -bdan_room_12 -bdan_room_13 -bdan_room_14 -bdan_room_15 -Bmori1_scene -Bmori1_room_0 -Bmori1_room_1 -Bmori1_room_2 -Bmori1_room_3 -Bmori1_room_4 -Bmori1_room_5 -Bmori1_room_6 -Bmori1_room_7 -Bmori1_room_8 -Bmori1_room_9 -Bmori1_room_10 -Bmori1_room_11 -Bmori1_room_12 -Bmori1_room_13 -Bmori1_room_14 -Bmori1_room_15 -Bmori1_room_16 -Bmori1_room_17 -Bmori1_room_18 -Bmori1_room_19 -Bmori1_room_20 -Bmori1_room_21 -Bmori1_room_22 -HIDAN_scene -HIDAN_room_0 -HIDAN_room_1 -HIDAN_room_2 -HIDAN_room_3 -HIDAN_room_4 -HIDAN_room_5 -HIDAN_room_6 -HIDAN_room_7 -HIDAN_room_8 -HIDAN_room_9 -HIDAN_room_10 -HIDAN_room_11 -HIDAN_room_12 -HIDAN_room_13 -HIDAN_room_14 -HIDAN_room_15 -HIDAN_room_16 -HIDAN_room_17 -HIDAN_room_18 -HIDAN_room_19 -HIDAN_room_20 -HIDAN_room_21 -HIDAN_room_22 -HIDAN_room_23 -HIDAN_room_24 -HIDAN_room_25 -HIDAN_room_26 -MIZUsin_scene -MIZUsin_room_0 -MIZUsin_room_1 -MIZUsin_room_2 -MIZUsin_room_3 -MIZUsin_room_4 -MIZUsin_room_5 -MIZUsin_room_6 -MIZUsin_room_7 -MIZUsin_room_8 -MIZUsin_room_9 -MIZUsin_room_10 -MIZUsin_room_11 -MIZUsin_room_12 -MIZUsin_room_13 -MIZUsin_room_14 -MIZUsin_room_15 -MIZUsin_room_16 -MIZUsin_room_17 -MIZUsin_room_18 -MIZUsin_room_19 -MIZUsin_room_20 -MIZUsin_room_21 -MIZUsin_room_22 -jyasinzou_scene -jyasinzou_room_0 -jyasinzou_room_1 -jyasinzou_room_2 -jyasinzou_room_3 -jyasinzou_room_4 -jyasinzou_room_5 -jyasinzou_room_6 -jyasinzou_room_7 -jyasinzou_room_8 -jyasinzou_room_9 -jyasinzou_room_10 -jyasinzou_room_11 -jyasinzou_room_12 -jyasinzou_room_13 -jyasinzou_room_14 -jyasinzou_room_15 -jyasinzou_room_16 -jyasinzou_room_17 -jyasinzou_room_18 -jyasinzou_room_19 -jyasinzou_room_20 -jyasinzou_room_21 -jyasinzou_room_22 -jyasinzou_room_23 -jyasinzou_room_24 -jyasinzou_room_25 -jyasinzou_room_26 -jyasinzou_room_27 -jyasinzou_room_28 -HAKAdan_scene -HAKAdan_room_0 -HAKAdan_room_1 -HAKAdan_room_2 -HAKAdan_room_3 -HAKAdan_room_4 -HAKAdan_room_5 -HAKAdan_room_6 -HAKAdan_room_7 -HAKAdan_room_8 -HAKAdan_room_9 -HAKAdan_room_10 -HAKAdan_room_11 -HAKAdan_room_12 -HAKAdan_room_13 -HAKAdan_room_14 -HAKAdan_room_15 -HAKAdan_room_16 -HAKAdan_room_17 -HAKAdan_room_18 -HAKAdan_room_19 -HAKAdan_room_20 -HAKAdan_room_21 -HAKAdan_room_22 -HAKAdanCH_scene -HAKAdanCH_room_0 -HAKAdanCH_room_1 -HAKAdanCH_room_2 -HAKAdanCH_room_3 -HAKAdanCH_room_4 -HAKAdanCH_room_5 -HAKAdanCH_room_6 -ice_doukutu_scene -ice_doukutu_room_0 -ice_doukutu_room_1 -ice_doukutu_room_2 -ice_doukutu_room_3 -ice_doukutu_room_4 -ice_doukutu_room_5 -ice_doukutu_room_6 -ice_doukutu_room_7 -ice_doukutu_room_8 -ice_doukutu_room_9 -ice_doukutu_room_10 -ice_doukutu_room_11 -men_scene -men_room_0 -men_room_1 -men_room_2 -men_room_3 -men_room_4 -men_room_5 -men_room_6 -men_room_7 -men_room_8 -men_room_9 -men_room_10 -ganontika_scene -ganontika_room_0 -ganontika_room_1 -ganontika_room_2 -ganontika_room_3 -ganontika_room_4 -ganontika_room_5 -ganontika_room_6 -ganontika_room_7 -ganontika_room_8 -ganontika_room_9 -ganontika_room_10 -ganontika_room_11 -ganontika_room_12 -ganontika_room_13 -ganontika_room_14 -ganontika_room_15 -ganontika_room_16 -ganontika_room_17 -ganontika_room_18 -ganontika_room_19 -market_day_scene -market_day_room_0 -market_night_scene -market_night_room_0 -testroom_scene -testroom_room_0 -testroom_room_1 -testroom_room_2 -testroom_room_3 -testroom_room_4 -kenjyanoma_scene -kenjyanoma_room_0 -tokinoma_scene -tokinoma_room_0 -tokinoma_room_1 -sutaru_scene -sutaru_room_0 -link_home_scene -link_home_room_0 -kokiri_shop_scene -kokiri_shop_room_0 -kokiri_home_scene -kokiri_home_room_0 -kakusiana_scene -kakusiana_room_0 -kakusiana_room_1 -kakusiana_room_2 -kakusiana_room_3 -kakusiana_room_4 -kakusiana_room_5 -kakusiana_room_6 -kakusiana_room_7 -kakusiana_room_8 -kakusiana_room_9 -kakusiana_room_10 -kakusiana_room_11 -kakusiana_room_12 -kakusiana_room_13 -entra_scene -entra_room_0 -moribossroom_scene -moribossroom_room_0 -moribossroom_room_1 -syatekijyou_scene -syatekijyou_room_0 -shop1_scene -shop1_room_0 -hairal_niwa_scene -hairal_niwa_room_0 -ganon_tou_scene -ganon_tou_room_0 -sasatest_scene -sasatest_room_0 -market_alley_scene -market_alley_room_0 -spot20_scene -spot20_room_0 -market_ruins_scene -market_ruins_room_0 -entra_n_scene -entra_n_room_0 -enrui_scene -enrui_room_0 -market_alley_n_scene -market_alley_n_room_0 -hiral_demo_scene -hiral_demo_room_0 -kokiri_home3_scene -kokiri_home3_room_0 -malon_stable_scene -malon_stable_room_0 -kakariko_scene -kakariko_room_0 -bdan_boss_scene -bdan_boss_room_0 -bdan_boss_room_1 -FIRE_bs_scene -FIRE_bs_room_0 -FIRE_bs_room_1 -hut_scene -hut_room_0 -daiyousei_izumi_scene -daiyousei_izumi_room_0 -hakaana_scene -hakaana_room_0 -yousei_izumi_tate_scene -yousei_izumi_tate_room_0 -yousei_izumi_yoko_scene -yousei_izumi_yoko_room_0 -golon_scene -golon_room_0 -zoora_scene -zoora_room_0 -drag_scene -drag_room_0 -alley_shop_scene -alley_shop_room_0 -night_shop_scene -night_shop_room_0 -impa_scene -impa_room_0 -labo_scene -labo_room_0 -tent_scene -tent_room_0 -nakaniwa_scene -nakaniwa_room_0 -ddan_boss_scene -ddan_boss_room_0 -ddan_boss_room_1 -ydan_boss_scene -ydan_boss_room_0 -ydan_boss_room_1 -HAKAdan_bs_scene -HAKAdan_bs_room_0 -HAKAdan_bs_room_1 -MIZUsin_bs_scene -MIZUsin_bs_room_0 -MIZUsin_bs_room_1 -ganon_scene -ganon_room_0 -ganon_room_1 -ganon_room_2 -ganon_room_3 -ganon_room_4 -ganon_room_5 -ganon_room_6 -ganon_room_7 -ganon_room_8 -ganon_room_9 -ganon_boss_scene -ganon_boss_room_0 -jyasinboss_scene -jyasinboss_room_0 -jyasinboss_room_1 -jyasinboss_room_2 -jyasinboss_room_3 -kokiri_home4_scene -kokiri_home4_room_0 -kokiri_home5_scene -kokiri_home5_room_0 -ganon_final_scene -ganon_final_room_0 -kakariko3_scene -kakariko3_room_0 -hairal_niwa2_scene -hairal_niwa2_room_0 -hakasitarelay_scene -hakasitarelay_room_0 -hakasitarelay_room_1 -hakasitarelay_room_2 -hakasitarelay_room_3 -hakasitarelay_room_4 -hakasitarelay_room_5 -hakasitarelay_room_6 -shrine_scene -shrine_room_0 -turibori_scene -turibori_room_0 -shrine_n_scene -shrine_n_room_0 -shrine_r_scene -shrine_r_room_0 -hakaana2_scene -hakaana2_room_0 -gerudoway_scene -gerudoway_room_0 -gerudoway_room_1 -gerudoway_room_2 -gerudoway_room_3 -gerudoway_room_4 -gerudoway_room_5 -hairal_niwa_n_scene -hairal_niwa_n_room_0 -bowling_scene -bowling_room_0 -hakaana_ouke_scene -hakaana_ouke_room_0 -hakaana_ouke_room_1 -hakaana_ouke_room_2 -hylia_labo_scene -hylia_labo_room_0 -souko_scene -souko_room_0 -souko_room_1 -souko_room_2 -miharigoya_scene -miharigoya_room_0 -mahouya_scene -mahouya_room_0 -takaraya_scene -takaraya_room_0 -takaraya_room_1 -takaraya_room_2 -takaraya_room_3 -takaraya_room_4 -takaraya_room_5 -takaraya_room_6 -ganon_sonogo_scene -ganon_sonogo_room_0 -ganon_sonogo_room_1 -ganon_sonogo_room_2 -ganon_sonogo_room_3 -ganon_sonogo_room_4 -ganon_demo_scene -ganon_demo_room_0 -besitu_scene -besitu_room_0 -face_shop_scene -face_shop_room_0 -kinsuta_scene -kinsuta_room_0 -ganontikasonogo_scene -ganontikasonogo_room_0 -ganontikasonogo_room_1 -test01_scene -test01_room_0 -bump_texture_static -anime_model_1_static -anime_model_2_static -anime_model_3_static -anime_model_4_static -anime_model_5_static -anime_model_6_static -anime_texture_1_static -anime_texture_2_static -anime_texture_3_static -anime_texture_4_static -anime_texture_5_static -anime_texture_6_static -softsprite_matrix_static diff --git a/baseroms/gc-eu-mq-dbg/dmadata_start.txt b/baseroms/gc-eu-mq-dbg/dmadata_start.txt deleted file mode 100644 index 290d1938d..000000000 --- a/baseroms/gc-eu-mq-dbg/dmadata_start.txt +++ /dev/null @@ -1 +0,0 @@ -0x12f70 diff --git a/baseroms/gc-eu-mq-dbg/segments.csv b/baseroms/gc-eu-mq-dbg/segments.csv new file mode 100644 index 000000000..9bbba167b --- /dev/null +++ b/baseroms/gc-eu-mq-dbg/segments.csv @@ -0,0 +1,1533 @@ +Name,VRAM start +makerom,80000000 +boot,80000460 +dmadata, +Audiobank, +Audioseq, +Audiotable, +link_animetion, +icon_item_static, +icon_item_24_static, +icon_item_field_static, +icon_item_dungeon_static, +icon_item_gameover_static, +icon_item_nes_static, +icon_item_ger_static, +icon_item_fra_static, +item_name_static, +map_name_static, +do_action_static, +message_static, +message_texture_static, +nes_font_static, +nes_message_data_static, +ger_message_data_static, +fra_message_data_static, +staff_message_data_static, +map_grand_static, +map_i_static, +map_48x85_static, +code,8001CE60 +ovl_title,80800000 +ovl_select,80800B90 +ovl_opening,80803BF0 +ovl_file_choose,80803D40 +ovl_kaleido_scope,80813820 +ovl_player_actor,80832210 +ovl_map_mark_data,80858B70 +ovl_En_Test,8085F650 +ovl_Arms_Hook,80864F00 +ovl_Arrow_Fire,80865D10 +ovl_Arrow_Ice,80867CD0 +ovl_Arrow_Light,80869CB0 +ovl_Bg_Bdan_Objects,8086BCA0 +ovl_Bg_Bdan_Switch,8086D010 +ovl_Bg_Bom_Guard,8086E550 +ovl_Bg_Bombwall,8086E7D0 +ovl_Bg_Bowl_Wall,8086F160 +ovl_Bg_Breakwall,8086FBE0 +ovl_Bg_Ddan_Jd,80870AB0 +ovl_Bg_Ddan_Kd,808710F0 +ovl_Bg_Dodoago,80871A00 +ovl_Bg_Dy_Yoseizo,80872830 +ovl_Bg_Ganon_Otyuka,80875920 +ovl_Bg_Gate_Shutter,80878160 +ovl_Bg_Gjyo_Bridge,808786C0 +ovl_Bg_Gnd_Darkmeiro,80878C30 +ovl_Bg_Gnd_Firemeiro,808794C0 +ovl_Bg_Gnd_Iceblock,80879AA0 +ovl_Bg_Gnd_Nisekabe,8087AC50 +ovl_Bg_Gnd_Soulmeiro,8087ADC0 +ovl_Bg_Haka,8087B6B0 +ovl_Bg_Haka_Gate,8087BDF0 +ovl_Bg_Haka_Huta,8087CFC0 +ovl_Bg_Haka_Megane,8087DA40 +ovl_Bg_Haka_MeganeBG,8087DE30 +ovl_Bg_Haka_Sgami,8087E4E0 +ovl_Bg_Haka_Ship,8087F100 +ovl_Bg_Haka_Trap,8087FCA0 +ovl_Bg_Haka_Tubo,80881250 +ovl_Bg_Haka_Water,80881D00 +ovl_Bg_Haka_Zou,808825C0 +ovl_Bg_Heavy_Block,80883790 +ovl_Bg_Hidan_Curtain,808851A0 +ovl_Bg_Hidan_Dalm,80885E20 +ovl_Bg_Hidan_Firewall,80886660 +ovl_Bg_Hidan_Fslift,80886E40 +ovl_Bg_Hidan_Fwbig,808872F0 +ovl_Bg_Hidan_Hamstep,80888040 +ovl_Bg_Hidan_Hrock,80889130 +ovl_Bg_Hidan_Kousi,80889960 +ovl_Bg_Hidan_Kowarerukabe,8088A020 +ovl_Bg_Hidan_Rock,8088B080 +ovl_Bg_Hidan_Rsekizou,8088C200 +ovl_Bg_Hidan_Sekizou,8088CEC0 +ovl_Bg_Hidan_Sima,8088E3D0 +ovl_Bg_Hidan_Syoku,8088F3C0 +ovl_Bg_Ice_Objects,8088F810 +ovl_Bg_Ice_Shelter,80890740 +ovl_Bg_Ice_Shutter,80891AC0 +ovl_Bg_Ice_Turara,80891F20 +ovl_Bg_Ingate,80892740 +ovl_Bg_Jya_1flift,80892B60 +ovl_Bg_Jya_Amishutter,808932C0 +ovl_Bg_Jya_Bigmirror,808936E0 +ovl_Bg_Jya_Block,808941A0 +ovl_Bg_Jya_Bombchuiwa,808944A0 +ovl_Bg_Jya_Bombiwa,808951A0 +ovl_Bg_Jya_Cobra,808958F0 +ovl_Bg_Jya_Goroiwa,80897970 +ovl_Bg_Jya_Haheniron,808980C0 +ovl_Bg_Jya_Ironobj,808988A0 +ovl_Bg_Jya_Kanaami,80899740 +ovl_Bg_Jya_Lift,80899BA0 +ovl_Bg_Jya_Megami,8089A130 +ovl_Bg_Jya_Zurerukabe,8089B440 +ovl_Bg_Menkuri_Eye,8089BC70 +ovl_Bg_Menkuri_Kaiten,8089C1B0 +ovl_Bg_Menkuri_Nisekabe,8089C330 +ovl_Bg_Mizu_Bwall,8089C480 +ovl_Bg_Mizu_Movebg,8089DC30 +ovl_Bg_Mizu_Shutter,8089EE50 +ovl_Bg_Mizu_Uzu,8089F6E0 +ovl_Bg_Mizu_Water,8089F8B0 +ovl_Bg_Mjin,808A0780 +ovl_Bg_Mori_Bigst,808A0BC0 +ovl_Bg_Mori_Elevator,808A1800 +ovl_Bg_Mori_Hashigo,808A2560 +ovl_Bg_Mori_Hashira4,808A3060 +ovl_Bg_Mori_Hineri,808A37D0 +ovl_Bg_Mori_Idomizu,808A4640 +ovl_Bg_Mori_Kaitenkabe,808A4DC0 +ovl_Bg_Mori_Rakkatenjo,808A5570 +ovl_Bg_Po_Event,808A6210 +ovl_Bg_Po_Syokudai,808A80B0 +ovl_Bg_Pushbox,808A8AE0 +ovl_Bg_Relay_Objects,808A8E50 +ovl_Bg_Spot00_Break,808A95E0 +ovl_Bg_Spot00_Hanebasi,808A9780 +ovl_Bg_Spot01_Fusya,808AA9C0 +ovl_Bg_Spot01_Idohashira,808AACE0 +ovl_Bg_Spot01_Idomizu,808ABAE0 +ovl_Bg_Spot01_Idosoko,808ABE80 +ovl_Bg_Spot01_Objects2,808AC140 +ovl_Bg_Spot02_Objects,808AC660 +ovl_Bg_Spot03_Taki,808ADAE0 +ovl_Bg_Spot05_Soko,808AE470 +ovl_Bg_Spot06_Objects,808AE780 +ovl_Bg_Spot07_Taki,808AFC30 +ovl_Bg_Spot08_Bakudankabe,808B02D0 +ovl_Bg_Spot08_Iceblock,808B0960 +ovl_Bg_Spot09_Obj,808B1AE0 +ovl_Bg_Spot11_Bakudankabe,808B2180 +ovl_Bg_Spot11_Oasis,808B27F0 +ovl_Bg_Spot12_Gate,808B2F90 +ovl_Bg_Spot12_Saku,808B3420 +ovl_Bg_Spot15_Rrbox,808B3960 +ovl_Bg_Spot15_Saku,808B4850 +ovl_Bg_Spot16_Bombstone,808B4C30 +ovl_Bg_Spot16_Doughnut,808B6440 +ovl_Bg_Spot17_Bakudankabe,808B6BC0 +ovl_Bg_Spot17_Funen,808B7400 +ovl_Bg_Spot18_Basket,808B7710 +ovl_Bg_Spot18_Futa,808B8780 +ovl_Bg_Spot18_Obj,808B8910 +ovl_Bg_Spot18_Shutter,808B93D0 +ovl_Bg_Sst_Floor,808B9910 +ovl_Bg_Toki_Hikari,808B9F00 +ovl_Bg_Toki_Swd,808BAE40 +ovl_Bg_Treemouth,808BC500 +ovl_Bg_Umajump,808BDBE0 +ovl_Bg_Vb_Sima,808BDD60 +ovl_Bg_Ydan_Hasi,808BE500 +ovl_Bg_Ydan_Maruta,808BED40 +ovl_Bg_Ydan_Sp,808BF410 +ovl_Bg_Zg,808C0C20 +ovl_Boss_Dodongo,808C1190 +ovl_Boss_Fd,808CADC0 +ovl_Boss_Fd2,808D2670 +ovl_Boss_Ganon,808D6870 +ovl_Boss_Ganon2,808FCF40 +ovl_Boss_Ganondrof,80910640 +ovl_Boss_Goma,80915A10 +ovl_Boss_Mo,8091BB00 +ovl_Boss_Sst,8092C5D0 +ovl_Boss_Tw,80938CD0 +ovl_Boss_Va,8094F2C0 +ovl_Demo_6K,80966950 +ovl_Demo_Du,80969AD0 +ovl_Demo_Ec,8096D4B0 +ovl_Demo_Effect,80970F50 +ovl_Demo_Ext,80977390 +ovl_Demo_Geff,80977E40 +ovl_Demo_Gj,80978930 +ovl_Demo_Go,8097C870 +ovl_Demo_Gt,8097D670 +ovl_Demo_Ik,80983300 +ovl_Demo_Im,80984BE0 +ovl_Demo_Kankyo,80988E80 +ovl_Demo_Kekkai,8098CFD0 +ovl_Demo_Sa,8098E460 +ovl_Demo_Shd,80991230 +ovl_Demo_Tre_Lgt,809936C0 +ovl_Door_Ana,80993EF0 +ovl_Door_Gerudo,809945E0 +ovl_Door_Killer,80994C50 +ovl_Door_Shutter,809962A0 +ovl_Door_Toki,80998620 +ovl_Door_Warp1,80998780 +ovl_Efc_Erupc,8099CCB0 +ovl_Eff_Dust,8099D8D0 +ovl_Effect_Ss_Blast,8099EDB0 +ovl_Effect_Ss_Bomb,8099F1B0 +ovl_Effect_Ss_Bomb2,8099F650 +ovl_Effect_Ss_Bubble,809A0040 +ovl_Effect_Ss_D_Fire,809A0550 +ovl_Effect_Ss_Dead_Db,809A0AA0 +ovl_Effect_Ss_Dead_Dd,809A0FE0 +ovl_Effect_Ss_Dead_Ds,809A1610 +ovl_Effect_Ss_Dead_Sound,809A1B30 +ovl_Effect_Ss_Dt_Bubble,809A1CB0 +ovl_Effect_Ss_Dust,809A22D0 +ovl_Effect_Ss_En_Fire,809A2B60 +ovl_Effect_Ss_En_Ice,809A3330 +ovl_Effect_Ss_Extra,809A3CC0 +ovl_Effect_Ss_Fcircle,809A4120 +ovl_Effect_Ss_Fhg_Flash,809A4660 +ovl_Effect_Ss_Fire_Tail,809A5740 +ovl_Effect_Ss_G_Fire,809A5ED0 +ovl_Effect_Ss_G_Magma,809A6150 +ovl_Effect_Ss_G_Magma2,809A63A0 +ovl_Effect_Ss_G_Ripple,809A6960 +ovl_Effect_Ss_G_Spk,809A6F30 +ovl_Effect_Ss_G_Splash,809A7540 +ovl_Effect_Ss_Hahen,809A79F0 +ovl_Effect_Ss_HitMark,809A8150 +ovl_Effect_Ss_Ice_Piece,809A8700 +ovl_Effect_Ss_Ice_Smoke,809A8BF0 +ovl_Effect_Ss_K_Fire,809A91B0 +ovl_Effect_Ss_Kakera,809A9680 +ovl_Effect_Ss_KiraKira,809AA810 +ovl_Effect_Ss_Lightning,809AAEF0 +ovl_Effect_Ss_Sibuki,809AB630 +ovl_Effect_Ss_Sibuki2,809ABD60 +ovl_Effect_Ss_Solder_Srch_Ball,809AC130 +ovl_Effect_Ss_Stick,809AC2D0 +ovl_Effect_Ss_Stone1,809AC700 +ovl_Elf_Msg,809ACB20 +ovl_Elf_Msg2,809AD700 +ovl_En_Am,809ADF20 +ovl_En_Ani,809B0370 +ovl_En_Anubice,809B1120 +ovl_En_Anubice_Fire,809B25A0 +ovl_En_Anubice_Tag,809B3400 +ovl_En_Arow_Trap,809B37D0 +ovl_En_Arrow,809B3920 +ovl_En_Attack_Niw,809B5100 +ovl_En_Ba,809B6350 +ovl_En_Bb,809B82E0 +ovl_En_Bdfire,809BC030 +ovl_En_Bigokuta,809BCC60 +ovl_En_Bili,809BF8A0 +ovl_En_Bird,809C1BB0 +ovl_En_Blkobj,809C2060 +ovl_En_Bom,809C26D0 +ovl_En_Bom_Bowl_Man,809C3630 +ovl_En_Bom_Bowl_Pit,809C4E40 +ovl_En_Bom_Chu,809C5830 +ovl_En_Bombf,809C6F60 +ovl_En_Boom,809C8480 +ovl_En_Box,809C8DC0 +ovl_En_Brob,809CAB10 +ovl_En_Bubble,809CBC00 +ovl_En_Butte,809CD070 +ovl_En_Bw,809CE6E0 +ovl_En_Bx,809D1AE0 +ovl_En_Changer,809D2690 +ovl_En_Clear_Tag,809D35B0 +ovl_En_Cow,809DEE00 +ovl_En_Crow,809E0240 +ovl_En_Cs,809E18B0 +ovl_En_Daiku,809E2B30 +ovl_En_Daiku_Kakariko,809E4320 +ovl_En_Dekubaba,809E57D0 +ovl_En_Dekunuts,809E9560 +ovl_En_Dh,809EAD40 +ovl_En_Dha,809EC880 +ovl_En_Diving_Game,809ED870 +ovl_En_Dns,809EF350 +ovl_En_Dnt_Demo,809F08E0 +ovl_En_Dnt_Jiji,809F1AE0 +ovl_En_Dnt_Nomal,809F32C0 +ovl_En_Dodojr,809F63C0 +ovl_En_Dodongo,809F8250 +ovl_En_Dog,809FAFD0 +ovl_En_Door,809FC1D0 +ovl_En_Ds,809FD030 +ovl_En_Du,809FDC30 +ovl_En_Dy_Extra,809FF6F0 +ovl_En_Eg,809FFD90 +ovl_En_Eiyer,809FFFA0 +ovl_En_Elf,80A01C30 +ovl_En_Encount1,80A06720 +ovl_En_Encount2,80A07990 +ovl_En_Ex_Item,80A08EA0 +ovl_En_Ex_Ruppy,80A0A410 +ovl_En_Fd,80A0B6C0 +ovl_En_Fd_Fire,80A0E4B0 +ovl_En_Fhg_Fire,80A0F260 +ovl_En_Fire_Rock,80A11C20 +ovl_En_Firefly,80A13070 +ovl_En_Fish,80A15280 +ovl_En_Floormas,80A17510 +ovl_En_Fr,80A1A9A0 +ovl_En_Fu,80A1D810 +ovl_En_Fw,80A1E5A0 +ovl_En_Fz,80A1FDC0 +ovl_En_G_Switch,80A21EC0 +ovl_En_Ganon_Mant,80A23D60 +ovl_En_Ganon_Organ,80A28000 +ovl_En_Gb,80A2F180 +ovl_En_Ge1,80A30970 +ovl_En_Ge2,80A32BD0 +ovl_En_Ge3,80A34620 +ovl_En_GeldB,80A35310 +ovl_En_GirlA,80A3A750 +ovl_En_Gm,80A3D6E0 +ovl_En_Go,80A3E570 +ovl_En_Go2,80A42D30 +ovl_En_Goma,80A48EC0 +ovl_En_Goroiwa,80A4BCA0 +ovl_En_Gs,80A4E320 +ovl_En_Guest,80A50220 +ovl_En_Hata,80A50D50 +ovl_En_Heishi1,80A512D0 +ovl_En_Heishi2,80A52EA0 +ovl_En_Heishi3,80A55640 +ovl_En_Heishi4,80A560D0 +ovl_En_Hintnuts,80A57200 +ovl_En_Holl,80A58C10 +ovl_En_Honotrap,80A59C30 +ovl_En_Horse,80A5B2F0 +ovl_En_Horse_Game_Check,80A67550 +ovl_En_Horse_Ganon,80A68660 +ovl_En_Horse_Link_Child,80A693D0 +ovl_En_Horse_Normal,80A6B250 +ovl_En_Horse_Zelda,80A6D8D0 +ovl_En_Hs,80A6E3A0 +ovl_En_Hs2,80A6EFA0 +ovl_En_Hy,80A6F5B0 +ovl_En_Ice_Hono,80A72FF0 +ovl_En_Ik,80A74310 +ovl_En_In,80A78FB0 +ovl_En_Insect,80A7BE20 +ovl_En_Ishi,80A7E460 +ovl_En_It,80A87680 +ovl_En_Jj,80A87800 +ovl_En_Js,80A88E10 +ovl_En_Jsjutan,80A897A0 +ovl_En_Kakasi,80A8F170 +ovl_En_Kakasi2,80A90010 +ovl_En_Kakasi3,80A90D20 +ovl_En_Kanban,80A91FA0 +ovl_En_Karebaba,80A95350 +ovl_En_Ko,80A96DB0 +ovl_En_Kusa,80A9AFA0 +ovl_En_Kz,80A9C550 +ovl_En_Light,80A9DB40 +ovl_En_Lightbox,80A9E9D0 +ovl_En_M_Fire1,80A9EE40 +ovl_En_M_Thunder,80A9EFE0 +ovl_En_Ma1,80AA0690 +ovl_En_Ma2,80AA19A0 +ovl_En_Ma3,80AA2AA0 +ovl_En_Mag,80AA3B00 +ovl_En_Mb,80AA6050 +ovl_En_Md,80AAA250 +ovl_En_Mk,80AAC900 +ovl_En_Mm,80AAD770 +ovl_En_Mm2,80AAEE50 +ovl_En_Ms,80AAFD20 +ovl_En_Mu,80AB0420 +ovl_En_Nb,80AB0D90 +ovl_En_Niw,80AB5780 +ovl_En_Niw_Girl,80AB8F80 +ovl_En_Niw_Lady,80AB9C40 +ovl_En_Nutsball,80ABBA50 +ovl_En_Nwc,80ABC0E0 +ovl_En_Ny,80ABCBB0 +ovl_En_OE2,80ABE6A0 +ovl_En_Okarina_Effect,80ABE760 +ovl_En_Okarina_Tag,80ABED20 +ovl_En_Okuta,80AC0660 +ovl_En_Ossan,80AC2CA0 +ovl_En_Owl,80AC9F20 +ovl_En_Part,80ACDDD0 +ovl_En_Peehat,80ACF4A0 +ovl_En_Po_Desert,80AD2CB0 +ovl_En_Po_Field,80AD3B00 +ovl_En_Po_Relay,80AD7740 +ovl_En_Po_Sisters,80AD8F90 +ovl_En_Poh,80ADDD50 +ovl_En_Pu_box,80AE20C0 +ovl_En_Rd,80AE2400 +ovl_En_Reeba,80AE4CD0 +ovl_En_River_Sound,80AE6930 +ovl_En_Rl,80AE72B0 +ovl_En_Rr,80AE8440 +ovl_En_Ru1,80AEAC10 +ovl_En_Ru2,80AF2550 +ovl_En_Sa,80AF5560 +ovl_En_Sb,80AF77F0 +ovl_En_Scene_Change,80AF8C70 +ovl_En_Sda,80AF8E20 +ovl_En_Shopnuts,80AFA720 +ovl_En_Si,80AFB690 +ovl_En_Siofuki,80AFBB80 +ovl_En_Skb,80AFC9A0 +ovl_En_Skj,80AFE2B0 +ovl_En_Skjneedle,80B01EB0 +ovl_En_Ssh,80B02270 +ovl_En_St,80B04890 +ovl_En_Sth,80B07540 +ovl_En_Stream,80B0B7A0 +ovl_En_Sw,80B0BDB0 +ovl_En_Syateki_Itm,80B0F6B0 +ovl_En_Syateki_Man,80B10870 +ovl_En_Syateki_Niw,80B118F0 +ovl_En_Ta,80B13AA0 +ovl_En_Takara_Man,80B17560 +ovl_En_Tana,80B17F30 +ovl_En_Tg,80B18360 +ovl_En_Tite,80B18A80 +ovl_En_Tk,80B1B900 +ovl_En_Torch,80B1D890 +ovl_En_Torch2,80B1D980 +ovl_En_Toryo,80B20170 +ovl_En_Tp,80B20DE0 +ovl_En_Tr,80B22CF0 +ovl_En_Trap,80B24660 +ovl_En_Tubo_Trap,80B258F0 +ovl_En_Vali,80B266B0 +ovl_En_Vase,80B28EB0 +ovl_En_Vb_Ball,80B28FA0 +ovl_En_Viewer,80B2A200 +ovl_En_Vm,80B2D460 +ovl_En_Wall_Tubo,80B2EDF0 +ovl_En_Wallmas,80B2F520 +ovl_En_Weather_Tag,80B31020 +ovl_En_Weiyer,80B32290 +ovl_En_Wf,80B33CB0 +ovl_En_Wonder_Item,80B38060 +ovl_En_Wonder_Talk,80B390F0 +ovl_En_Wonder_Talk2,80B39ED0 +ovl_En_Wood02,80B3AF70 +ovl_En_Xc,80B3C1E0 +ovl_En_Yabusame_Mark,80B42DC0 +ovl_En_Yukabyun,80B439C0 +ovl_En_Zf,80B44050 +ovl_En_Zl1,80B4AB40 +ovl_En_Zl2,80B4E990 +ovl_En_Zl3,80B533B0 +ovl_En_Zl4,80B5B7B0 +ovl_En_Zo,80B60220 +ovl_En_fHG,80B629C0 +ovl_End_Title,80B65720 +ovl_Fishing,80B699A0 +ovl_Item_B_Heart,80B85150 +ovl_Item_Etcetera,80B855F0 +ovl_Item_Inbox,80B85FE0 +ovl_Item_Ocarina,80B86130 +ovl_Item_Shield,80B86920 +ovl_Magic_Dark,80B873D0 +ovl_Magic_Fire,80B88D70 +ovl_Magic_Wind,80B8B100 +ovl_Mir_Ray,80B8D050 +ovl_Obj_Bean,80B8EA80 +ovl_Obj_Blockstop,80B91460 +ovl_Obj_Bombiwa,80B915F0 +ovl_Obj_Comb,80B91B60 +ovl_Obj_Dekujr,80B92420 +ovl_Obj_Elevator,80B92B00 +ovl_Obj_Hamishi,80B92F90 +ovl_Obj_Hana,80B93860 +ovl_Obj_Hsblock,80B93B60 +ovl_Obj_Ice_Poly,80B94260 +ovl_Obj_Kibako,80B94CA0 +ovl_Obj_Kibako2,80B959D0 +ovl_Obj_Lift,80B960D0 +ovl_Obj_Lightswitch,80B96BA0 +ovl_Obj_Makekinsuta,80B98270 +ovl_Obj_Makeoshihiki,80B98510 +ovl_Obj_Mure,80B98AA0 +ovl_Obj_Mure2,80B99F40 +ovl_Obj_Mure3,80B9A9D0 +ovl_Obj_Oshihiki,80B9B180 +ovl_Obj_Roomtimer,80B9CFD0 +ovl_Obj_Switch,80B9D210 +ovl_Obj_Syokudai,80B9F2B0 +ovl_Obj_Timeblock,80B9FFA0 +ovl_Obj_Tsubo,80BA0D60 +ovl_Obj_Warp2block,80BA1DF0 +ovl_Object_Kankyo,80BA2AA0 +ovl_Oceff_Spot,80BA6070 +ovl_Oceff_Storm,80BA70E0 +ovl_Oceff_Wipe,80BA8D90 +ovl_Oceff_Wipe2,80BA9BB0 +ovl_Oceff_Wipe3,80BAB3F0 +ovl_Oceff_Wipe4,80BACC10 +ovl_Shot_Sun,80BADCC0 +gameplay_keep, +gameplay_field_keep, +gameplay_dangeon_keep, +gameplay_object_exchange_static, +object_link_boy, +object_link_child, +object_box, +object_human, +object_okuta, +object_poh, +object_wallmaster, +object_dy_obj, +object_firefly, +object_dodongo, +object_fire, +object_niw, +object_tite, +object_reeba, +object_peehat, +object_kingdodongo, +object_horse, +object_zf, +object_goma, +object_zl1, +object_gol, +object_bubble, +object_dodojr, +object_torch2, +object_bl, +object_tp, +object_oA1, +object_st, +object_bw, +object_ei, +object_horse_normal, +object_oB1, +object_o_anime, +object_spot04_objects, +object_ddan_objects, +object_hidan_objects, +object_horse_ganon, +object_oA2, +object_spot00_objects, +object_mb, +object_bombf, +object_sk2, +object_oE1, +object_oE_anime, +object_oE2, +object_ydan_objects, +object_gnd, +object_am, +object_dekubaba, +object_oA3, +object_oA4, +object_oA5, +object_oA6, +object_oA7, +object_jj, +object_oA8, +object_oA9, +object_oB2, +object_oB3, +object_oB4, +object_horse_zelda, +object_opening_demo1, +object_warp1, +object_b_heart, +object_dekunuts, +object_oE3, +object_oE4, +object_menkuri_objects, +object_oE5, +object_oE6, +object_oE7, +object_oE8, +object_oE9, +object_oE10, +object_oE11, +object_oE12, +object_vali, +object_oA10, +object_oA11, +object_mizu_objects, +object_fhg, +object_ossan, +object_mori_hineri1, +object_Bb, +object_toki_objects, +object_yukabyun, +object_zl2, +object_mjin, +object_mjin_flash, +object_mjin_dark, +object_mjin_flame, +object_mjin_ice, +object_mjin_soul, +object_mjin_wind, +object_mjin_oka, +object_haka_objects, +object_spot06_objects, +object_ice_objects, +object_relay_objects, +object_mori_hineri1a, +object_mori_hineri2, +object_mori_hineri2a, +object_mori_objects, +object_mori_tex, +object_spot08_obj, +object_warp2, +object_hata, +object_bird, +object_wood02, +object_lightbox, +object_pu_box, +object_trap, +object_vase, +object_im, +object_ta, +object_tk, +object_xc, +object_vm, +object_bv, +object_hakach_objects, +object_efc_crystal_light, +object_efc_fire_ball, +object_efc_flash, +object_efc_lgt_shower, +object_efc_star_field, +object_god_lgt, +object_light_ring, +object_triforce_spot, +object_medal, +object_bdan_objects, +object_sd, +object_rd, +object_po_sisters, +object_heavy_object, +object_gndd, +object_fd, +object_du, +object_fw, +object_horse_link_child, +object_spot02_objects, +object_haka, +object_ru1, +object_syokudai, +object_fd2, +object_dh, +object_rl, +object_efc_tw, +object_demo_tre_lgt, +object_gi_key, +object_mir_ray, +object_brob, +object_gi_jewel, +object_spot09_obj, +object_spot18_obj, +object_bdoor, +object_spot17_obj, +object_shop_dungen, +object_nb, +object_mo, +object_sb, +object_gi_melody, +object_gi_heart, +object_gi_compass, +object_gi_bosskey, +object_gi_medal, +object_gi_nuts, +object_sa, +object_gi_hearts, +object_gi_arrowcase, +object_gi_bombpouch, +object_in, +object_tr, +object_spot16_obj, +object_oE1s, +object_oE4s, +object_os_anime, +object_gi_bottle, +object_gi_stick, +object_gi_map, +object_oF1d_map, +object_ru2, +object_gi_shield_1, +object_dekujr, +object_gi_magicpot, +object_gi_bomb_1, +object_oF1s, +object_ma2, +object_gi_purse, +object_hni, +object_tw, +object_rr, +object_bxa, +object_anubice, +object_gi_gerudo, +object_gi_arrow, +object_gi_bomb_2, +object_gi_egg, +object_gi_scale, +object_gi_shield_2, +object_gi_hookshot, +object_gi_ocarina, +object_gi_milk, +object_ma1, +object_ganon, +object_sst, +object_ny, +object_fr, +object_gi_pachinko, +object_gi_boomerang, +object_gi_bow, +object_gi_glasses, +object_gi_liquid, +object_ani, +object_demo_6k, +object_gi_shield_3, +object_gi_letter, +object_spot15_obj, +object_jya_obj, +object_gi_clothes, +object_gi_bean, +object_gi_fish, +object_gi_saw, +object_gi_hammer, +object_gi_grass, +object_gi_longsword, +object_spot01_objects, +object_md, +object_km1, +object_kw1, +object_zo, +object_kz, +object_umajump, +object_masterkokiri, +object_masterkokirihead, +object_mastergolon, +object_masterzoora, +object_aob, +object_ik, +object_ahg, +object_cne, +object_gi_niwatori, +object_skj, +object_gi_bottle_letter, +object_bji, +object_bba, +object_gi_ocarina_0, +object_ds, +object_ane, +object_boj, +object_spot03_object, +object_spot07_object, +object_fz, +object_bob, +object_ge1, +object_yabusame_point, +object_gi_boots_2, +object_gi_seed, +object_gnd_magic, +object_d_elevator, +object_d_hsblock, +object_d_lift, +object_mamenoki, +object_goroiwa, +object_toryo, +object_daiku, +object_nwc, +object_blkobj, +object_gm, +object_ms, +object_hs, +object_ingate, +object_lightswitch, +object_kusa, +object_tsubo, +object_gi_gloves, +object_gi_coin, +object_kanban, +object_gjyo_objects, +object_owl, +object_mk, +object_fu, +object_gi_ki_tan_mask, +object_gi_redead_mask, +object_gi_skj_mask, +object_gi_rabit_mask, +object_gi_truth_mask, +object_ganon_objects, +object_siofuki, +object_stream, +object_mm, +object_fa, +object_os, +object_gi_eye_lotion, +object_gi_powder, +object_gi_mushroom, +object_gi_ticketstone, +object_gi_brokensword, +object_js, +object_cs, +object_gi_prescription, +object_gi_bracelet, +object_gi_soldout, +object_gi_frog, +object_mag, +object_door_gerudo, +object_gt, +object_efc_erupc, +object_zl2_anime1, +object_zl2_anime2, +object_gi_golonmask, +object_gi_zoramask, +object_gi_gerudomask, +object_ganon2, +object_ka, +object_ts, +object_zg, +object_gi_hoverboots, +object_gi_m_arrow, +object_ds2, +object_ec, +object_fish, +object_gi_sutaru, +object_gi_goddess, +object_ssh, +object_bigokuta, +object_bg, +object_spot05_objects, +object_spot12_obj, +object_bombiwa, +object_hintnuts, +object_rs, +object_spot00_break, +object_gla, +object_shopnuts, +object_geldb, +object_gr, +object_dog, +object_jya_iron, +object_jya_door, +object_spot01_objects2, +object_spot11_obj, +object_kibako2, +object_dns, +object_dnk, +object_gi_fire, +object_gi_insect, +object_gi_butterfly, +object_gi_ghost, +object_gi_soul, +object_bowl, +object_po_field, +object_demo_kekkai, +object_efc_doughnut, +object_gi_dekupouch, +object_ganon_anime1, +object_ganon_anime2, +object_ganon_anime3, +object_gi_rupy, +object_spot01_matoya, +object_spot01_matoyab, +object_po_composer, +object_mu, +object_wf, +object_skb, +object_gj, +object_geff, +object_haka_door, +object_gs, +object_ps, +object_bwall, +object_crow, +object_cow, +object_cob, +object_gi_sword_1, +object_door_killer, +object_ouke_haka, +object_timeblock, +object_zl4, +g_pn_01, +g_pn_02, +g_pn_03, +g_pn_04, +g_pn_05, +g_pn_06, +g_pn_07, +g_pn_08, +g_pn_09, +g_pn_10, +g_pn_11, +g_pn_12, +g_pn_13, +g_pn_14, +g_pn_15, +g_pn_16, +g_pn_17, +g_pn_18, +g_pn_19, +g_pn_20, +g_pn_21, +g_pn_22, +g_pn_23, +g_pn_24, +g_pn_25, +g_pn_26, +g_pn_27, +g_pn_28, +g_pn_29, +g_pn_30, +g_pn_31, +g_pn_32, +g_pn_33, +g_pn_34, +g_pn_35, +g_pn_36, +g_pn_37, +g_pn_38, +g_pn_39, +g_pn_40, +g_pn_41, +g_pn_42, +g_pn_43, +g_pn_44, +g_pn_45, +g_pn_46, +g_pn_47, +g_pn_48, +g_pn_49, +g_pn_50, +g_pn_51, +g_pn_52, +g_pn_53, +g_pn_54, +g_pn_55, +g_pn_56, +g_pn_57, +z_select_static, +nintendo_rogo_static, +title_static, +parameter_static, +vr_fine0_static, +vr_fine0_pal_static, +vr_fine1_static, +vr_fine1_pal_static, +vr_fine2_static, +vr_fine2_pal_static, +vr_fine3_static, +vr_fine3_pal_static, +vr_cloud0_static, +vr_cloud0_pal_static, +vr_cloud1_static, +vr_cloud1_pal_static, +vr_cloud2_static, +vr_cloud2_pal_static, +vr_cloud3_static, +vr_cloud3_pal_static, +vr_holy0_static, +vr_holy0_pal_static, +vr_holy1_static, +vr_holy1_pal_static, +vr_MDVR_static, +vr_MDVR_pal_static, +vr_MNVR_static, +vr_MNVR_pal_static, +vr_RUVR_static, +vr_RUVR_pal_static, +vr_LHVR_static, +vr_LHVR_pal_static, +vr_KHVR_static, +vr_KHVR_pal_static, +vr_K3VR_static, +vr_K3VR_pal_static, +vr_K4VR_static, +vr_K4VR_pal_static, +vr_K5VR_static, +vr_K5VR_pal_static, +vr_SP1a_static, +vr_SP1a_pal_static, +vr_MLVR_static, +vr_MLVR_pal_static, +vr_KKRVR_static, +vr_KKRVR_pal_static, +vr_KR3VR_static, +vr_KR3VR_pal_static, +vr_IPVR_static, +vr_IPVR_pal_static, +vr_KSVR_static, +vr_KSVR_pal_static, +vr_GLVR_static, +vr_GLVR_pal_static, +vr_ZRVR_static, +vr_ZRVR_pal_static, +vr_DGVR_static, +vr_DGVR_pal_static, +vr_ALVR_static, +vr_ALVR_pal_static, +vr_NSVR_static, +vr_NSVR_pal_static, +vr_LBVR_static, +vr_LBVR_pal_static, +vr_TTVR_static, +vr_TTVR_pal_static, +vr_FCVR_static, +vr_FCVR_pal_static, +elf_message_field, +elf_message_ydan, +syotes_scene, +syotes_room_0, +syotes2_scene, +syotes2_room_0, +depth_test_scene, +depth_test_room_0, +spot00_scene, +spot00_room_0, +spot01_scene, +spot01_room_0, +spot02_scene, +spot02_room_0, +spot02_room_1, +spot03_scene, +spot03_room_0, +spot03_room_1, +spot04_scene, +spot04_room_0, +spot04_room_1, +spot04_room_2, +spot05_scene, +spot05_room_0, +spot06_scene, +spot06_room_0, +spot07_scene, +spot07_room_0, +spot07_room_1, +spot08_scene, +spot08_room_0, +spot09_scene, +spot09_room_0, +spot10_scene, +spot10_room_0, +spot10_room_1, +spot10_room_2, +spot10_room_3, +spot10_room_4, +spot10_room_5, +spot10_room_6, +spot10_room_7, +spot10_room_8, +spot10_room_9, +spot11_scene, +spot11_room_0, +spot12_scene, +spot12_room_0, +spot12_room_1, +spot13_scene, +spot13_room_0, +spot13_room_1, +spot15_scene, +spot15_room_0, +spot16_scene, +spot16_room_0, +spot17_scene, +spot17_room_0, +spot17_room_1, +spot18_scene, +spot18_room_0, +spot18_room_1, +spot18_room_2, +spot18_room_3, +ydan_scene, +ydan_room_0, +ydan_room_1, +ydan_room_2, +ydan_room_3, +ydan_room_4, +ydan_room_5, +ydan_room_6, +ydan_room_7, +ydan_room_8, +ydan_room_9, +ydan_room_10, +ydan_room_11, +ddan_scene, +ddan_room_0, +ddan_room_1, +ddan_room_2, +ddan_room_3, +ddan_room_4, +ddan_room_5, +ddan_room_6, +ddan_room_7, +ddan_room_8, +ddan_room_9, +ddan_room_10, +ddan_room_11, +ddan_room_12, +ddan_room_13, +ddan_room_14, +ddan_room_15, +ddan_room_16, +bdan_scene, +bdan_room_0, +bdan_room_1, +bdan_room_2, +bdan_room_3, +bdan_room_4, +bdan_room_5, +bdan_room_6, +bdan_room_7, +bdan_room_8, +bdan_room_9, +bdan_room_10, +bdan_room_11, +bdan_room_12, +bdan_room_13, +bdan_room_14, +bdan_room_15, +Bmori1_scene, +Bmori1_room_0, +Bmori1_room_1, +Bmori1_room_2, +Bmori1_room_3, +Bmori1_room_4, +Bmori1_room_5, +Bmori1_room_6, +Bmori1_room_7, +Bmori1_room_8, +Bmori1_room_9, +Bmori1_room_10, +Bmori1_room_11, +Bmori1_room_12, +Bmori1_room_13, +Bmori1_room_14, +Bmori1_room_15, +Bmori1_room_16, +Bmori1_room_17, +Bmori1_room_18, +Bmori1_room_19, +Bmori1_room_20, +Bmori1_room_21, +Bmori1_room_22, +HIDAN_scene, +HIDAN_room_0, +HIDAN_room_1, +HIDAN_room_2, +HIDAN_room_3, +HIDAN_room_4, +HIDAN_room_5, +HIDAN_room_6, +HIDAN_room_7, +HIDAN_room_8, +HIDAN_room_9, +HIDAN_room_10, +HIDAN_room_11, +HIDAN_room_12, +HIDAN_room_13, +HIDAN_room_14, +HIDAN_room_15, +HIDAN_room_16, +HIDAN_room_17, +HIDAN_room_18, +HIDAN_room_19, +HIDAN_room_20, +HIDAN_room_21, +HIDAN_room_22, +HIDAN_room_23, +HIDAN_room_24, +HIDAN_room_25, +HIDAN_room_26, +MIZUsin_scene, +MIZUsin_room_0, +MIZUsin_room_1, +MIZUsin_room_2, +MIZUsin_room_3, +MIZUsin_room_4, +MIZUsin_room_5, +MIZUsin_room_6, +MIZUsin_room_7, +MIZUsin_room_8, +MIZUsin_room_9, +MIZUsin_room_10, +MIZUsin_room_11, +MIZUsin_room_12, +MIZUsin_room_13, +MIZUsin_room_14, +MIZUsin_room_15, +MIZUsin_room_16, +MIZUsin_room_17, +MIZUsin_room_18, +MIZUsin_room_19, +MIZUsin_room_20, +MIZUsin_room_21, +MIZUsin_room_22, +jyasinzou_scene, +jyasinzou_room_0, +jyasinzou_room_1, +jyasinzou_room_2, +jyasinzou_room_3, +jyasinzou_room_4, +jyasinzou_room_5, +jyasinzou_room_6, +jyasinzou_room_7, +jyasinzou_room_8, +jyasinzou_room_9, +jyasinzou_room_10, +jyasinzou_room_11, +jyasinzou_room_12, +jyasinzou_room_13, +jyasinzou_room_14, +jyasinzou_room_15, +jyasinzou_room_16, +jyasinzou_room_17, +jyasinzou_room_18, +jyasinzou_room_19, +jyasinzou_room_20, +jyasinzou_room_21, +jyasinzou_room_22, +jyasinzou_room_23, +jyasinzou_room_24, +jyasinzou_room_25, +jyasinzou_room_26, +jyasinzou_room_27, +jyasinzou_room_28, +HAKAdan_scene, +HAKAdan_room_0, +HAKAdan_room_1, +HAKAdan_room_2, +HAKAdan_room_3, +HAKAdan_room_4, +HAKAdan_room_5, +HAKAdan_room_6, +HAKAdan_room_7, +HAKAdan_room_8, +HAKAdan_room_9, +HAKAdan_room_10, +HAKAdan_room_11, +HAKAdan_room_12, +HAKAdan_room_13, +HAKAdan_room_14, +HAKAdan_room_15, +HAKAdan_room_16, +HAKAdan_room_17, +HAKAdan_room_18, +HAKAdan_room_19, +HAKAdan_room_20, +HAKAdan_room_21, +HAKAdan_room_22, +HAKAdanCH_scene, +HAKAdanCH_room_0, +HAKAdanCH_room_1, +HAKAdanCH_room_2, +HAKAdanCH_room_3, +HAKAdanCH_room_4, +HAKAdanCH_room_5, +HAKAdanCH_room_6, +ice_doukutu_scene, +ice_doukutu_room_0, +ice_doukutu_room_1, +ice_doukutu_room_2, +ice_doukutu_room_3, +ice_doukutu_room_4, +ice_doukutu_room_5, +ice_doukutu_room_6, +ice_doukutu_room_7, +ice_doukutu_room_8, +ice_doukutu_room_9, +ice_doukutu_room_10, +ice_doukutu_room_11, +men_scene, +men_room_0, +men_room_1, +men_room_2, +men_room_3, +men_room_4, +men_room_5, +men_room_6, +men_room_7, +men_room_8, +men_room_9, +men_room_10, +ganontika_scene, +ganontika_room_0, +ganontika_room_1, +ganontika_room_2, +ganontika_room_3, +ganontika_room_4, +ganontika_room_5, +ganontika_room_6, +ganontika_room_7, +ganontika_room_8, +ganontika_room_9, +ganontika_room_10, +ganontika_room_11, +ganontika_room_12, +ganontika_room_13, +ganontika_room_14, +ganontika_room_15, +ganontika_room_16, +ganontika_room_17, +ganontika_room_18, +ganontika_room_19, +market_day_scene, +market_day_room_0, +market_night_scene, +market_night_room_0, +testroom_scene, +testroom_room_0, +testroom_room_1, +testroom_room_2, +testroom_room_3, +testroom_room_4, +kenjyanoma_scene, +kenjyanoma_room_0, +tokinoma_scene, +tokinoma_room_0, +tokinoma_room_1, +sutaru_scene, +sutaru_room_0, +link_home_scene, +link_home_room_0, +kokiri_shop_scene, +kokiri_shop_room_0, +kokiri_home_scene, +kokiri_home_room_0, +kakusiana_scene, +kakusiana_room_0, +kakusiana_room_1, +kakusiana_room_2, +kakusiana_room_3, +kakusiana_room_4, +kakusiana_room_5, +kakusiana_room_6, +kakusiana_room_7, +kakusiana_room_8, +kakusiana_room_9, +kakusiana_room_10, +kakusiana_room_11, +kakusiana_room_12, +kakusiana_room_13, +entra_scene, +entra_room_0, +moribossroom_scene, +moribossroom_room_0, +moribossroom_room_1, +syatekijyou_scene, +syatekijyou_room_0, +shop1_scene, +shop1_room_0, +hairal_niwa_scene, +hairal_niwa_room_0, +ganon_tou_scene, +ganon_tou_room_0, +sasatest_scene, +sasatest_room_0, +market_alley_scene, +market_alley_room_0, +spot20_scene, +spot20_room_0, +market_ruins_scene, +market_ruins_room_0, +entra_n_scene, +entra_n_room_0, +enrui_scene, +enrui_room_0, +market_alley_n_scene, +market_alley_n_room_0, +hiral_demo_scene, +hiral_demo_room_0, +kokiri_home3_scene, +kokiri_home3_room_0, +malon_stable_scene, +malon_stable_room_0, +kakariko_scene, +kakariko_room_0, +bdan_boss_scene, +bdan_boss_room_0, +bdan_boss_room_1, +FIRE_bs_scene, +FIRE_bs_room_0, +FIRE_bs_room_1, +hut_scene, +hut_room_0, +daiyousei_izumi_scene, +daiyousei_izumi_room_0, +hakaana_scene, +hakaana_room_0, +yousei_izumi_tate_scene, +yousei_izumi_tate_room_0, +yousei_izumi_yoko_scene, +yousei_izumi_yoko_room_0, +golon_scene, +golon_room_0, +zoora_scene, +zoora_room_0, +drag_scene, +drag_room_0, +alley_shop_scene, +alley_shop_room_0, +night_shop_scene, +night_shop_room_0, +impa_scene, +impa_room_0, +labo_scene, +labo_room_0, +tent_scene, +tent_room_0, +nakaniwa_scene, +nakaniwa_room_0, +ddan_boss_scene, +ddan_boss_room_0, +ddan_boss_room_1, +ydan_boss_scene, +ydan_boss_room_0, +ydan_boss_room_1, +HAKAdan_bs_scene, +HAKAdan_bs_room_0, +HAKAdan_bs_room_1, +MIZUsin_bs_scene, +MIZUsin_bs_room_0, +MIZUsin_bs_room_1, +ganon_scene, +ganon_room_0, +ganon_room_1, +ganon_room_2, +ganon_room_3, +ganon_room_4, +ganon_room_5, +ganon_room_6, +ganon_room_7, +ganon_room_8, +ganon_room_9, +ganon_boss_scene, +ganon_boss_room_0, +jyasinboss_scene, +jyasinboss_room_0, +jyasinboss_room_1, +jyasinboss_room_2, +jyasinboss_room_3, +kokiri_home4_scene, +kokiri_home4_room_0, +kokiri_home5_scene, +kokiri_home5_room_0, +ganon_final_scene, +ganon_final_room_0, +kakariko3_scene, +kakariko3_room_0, +hairal_niwa2_scene, +hairal_niwa2_room_0, +hakasitarelay_scene, +hakasitarelay_room_0, +hakasitarelay_room_1, +hakasitarelay_room_2, +hakasitarelay_room_3, +hakasitarelay_room_4, +hakasitarelay_room_5, +hakasitarelay_room_6, +shrine_scene, +shrine_room_0, +turibori_scene, +turibori_room_0, +shrine_n_scene, +shrine_n_room_0, +shrine_r_scene, +shrine_r_room_0, +hakaana2_scene, +hakaana2_room_0, +gerudoway_scene, +gerudoway_room_0, +gerudoway_room_1, +gerudoway_room_2, +gerudoway_room_3, +gerudoway_room_4, +gerudoway_room_5, +hairal_niwa_n_scene, +hairal_niwa_n_room_0, +bowling_scene, +bowling_room_0, +hakaana_ouke_scene, +hakaana_ouke_room_0, +hakaana_ouke_room_1, +hakaana_ouke_room_2, +hylia_labo_scene, +hylia_labo_room_0, +souko_scene, +souko_room_0, +souko_room_1, +souko_room_2, +miharigoya_scene, +miharigoya_room_0, +mahouya_scene, +mahouya_room_0, +takaraya_scene, +takaraya_room_0, +takaraya_room_1, +takaraya_room_2, +takaraya_room_3, +takaraya_room_4, +takaraya_room_5, +takaraya_room_6, +ganon_sonogo_scene, +ganon_sonogo_room_0, +ganon_sonogo_room_1, +ganon_sonogo_room_2, +ganon_sonogo_room_3, +ganon_sonogo_room_4, +ganon_demo_scene, +ganon_demo_room_0, +besitu_scene, +besitu_room_0, +face_shop_scene, +face_shop_room_0, +kinsuta_scene, +kinsuta_room_0, +ganontikasonogo_scene, +ganontikasonogo_room_0, +ganontikasonogo_room_1, +test01_scene, +test01_room_0, +bump_texture_static, +anime_model_1_static, +anime_model_2_static, +anime_model_3_static, +anime_model_4_static, +anime_model_5_static, +anime_model_6_static, +anime_texture_1_static, +anime_texture_2_static, +anime_texture_3_static, +anime_texture_4_static, +anime_texture_5_static, +anime_texture_6_static, +softsprite_matrix_static, diff --git a/baseroms/gc-eu-mq/config.yml b/baseroms/gc-eu-mq/config.yml new file mode 100644 index 000000000..822d52220 --- /dev/null +++ b/baseroms/gc-eu-mq/config.yml @@ -0,0 +1,8 @@ +dmadata_start: 0x7170 +variables: + gMtxClear: 0x800FBC00 + sNesMessageEntryTable: 0x801077F0 + sGerMessageEntryTable: 0x8010BA18 + sFraMessageEntryTable: 0x8010DB28 + sStaffMessageEntryTable: 0x8010FC38 + sNesMessageEntryTablePtr: 0x8010FDC0 diff --git a/baseroms/gc-eu-mq/dmadata_names.txt b/baseroms/gc-eu-mq/dmadata_names.txt deleted file mode 100644 index cfe5c4689..000000000 --- a/baseroms/gc-eu-mq/dmadata_names.txt +++ /dev/null @@ -1,1510 +0,0 @@ -makerom -boot -dmadata -Audiobank -Audioseq -Audiotable -link_animetion -icon_item_static -icon_item_24_static -icon_item_field_static -icon_item_dungeon_static -icon_item_gameover_static -icon_item_nes_static -icon_item_ger_static -icon_item_fra_static -item_name_static -map_name_static -do_action_static -message_static -message_texture_static -nes_font_static -nes_message_data_static -ger_message_data_static -fra_message_data_static -staff_message_data_static -map_grand_static -map_48x85_static -map_i_static -code -ovl_title -ovl_select -ovl_opening -ovl_file_choose -ovl_kaleido_scope -ovl_player_actor -ovl_map_mark_data -ovl_En_Test -ovl_Arms_Hook -ovl_Arrow_Fire -ovl_Arrow_Ice -ovl_Arrow_Light -ovl_Bg_Bdan_Objects -ovl_Bg_Bdan_Switch -ovl_Bg_Bom_Guard -ovl_Bg_Bombwall -ovl_Bg_Bowl_Wall -ovl_Bg_Breakwall -ovl_Bg_Ddan_Jd -ovl_Bg_Ddan_Kd -ovl_Bg_Dodoago -ovl_Bg_Dy_Yoseizo -ovl_Bg_Ganon_Otyuka -ovl_Bg_Gate_Shutter -ovl_Bg_Gjyo_Bridge -ovl_Bg_Gnd_Darkmeiro -ovl_Bg_Gnd_Firemeiro -ovl_Bg_Gnd_Iceblock -ovl_Bg_Gnd_Nisekabe -ovl_Bg_Gnd_Soulmeiro -ovl_Bg_Haka -ovl_Bg_Haka_Gate -ovl_Bg_Haka_Huta -ovl_Bg_Haka_Megane -ovl_Bg_Haka_MeganeBG -ovl_Bg_Haka_Sgami -ovl_Bg_Haka_Ship -ovl_Bg_Haka_Trap -ovl_Bg_Haka_Tubo -ovl_Bg_Haka_Water -ovl_Bg_Haka_Zou -ovl_Bg_Heavy_Block -ovl_Bg_Hidan_Curtain -ovl_Bg_Hidan_Dalm -ovl_Bg_Hidan_Firewall -ovl_Bg_Hidan_Fslift -ovl_Bg_Hidan_Fwbig -ovl_Bg_Hidan_Hamstep -ovl_Bg_Hidan_Hrock -ovl_Bg_Hidan_Kousi -ovl_Bg_Hidan_Kowarerukabe -ovl_Bg_Hidan_Rock -ovl_Bg_Hidan_Rsekizou -ovl_Bg_Hidan_Sekizou -ovl_Bg_Hidan_Sima -ovl_Bg_Hidan_Syoku -ovl_Bg_Ice_Objects -ovl_Bg_Ice_Shelter -ovl_Bg_Ice_Shutter -ovl_Bg_Ice_Turara -ovl_Bg_Ingate -ovl_Bg_Jya_1flift -ovl_Bg_Jya_Amishutter -ovl_Bg_Jya_Bigmirror -ovl_Bg_Jya_Block -ovl_Bg_Jya_Bombchuiwa -ovl_Bg_Jya_Bombiwa -ovl_Bg_Jya_Cobra -ovl_Bg_Jya_Goroiwa -ovl_Bg_Jya_Haheniron -ovl_Bg_Jya_Ironobj -ovl_Bg_Jya_Kanaami -ovl_Bg_Jya_Lift -ovl_Bg_Jya_Megami -ovl_Bg_Jya_Zurerukabe -ovl_Bg_Menkuri_Eye -ovl_Bg_Menkuri_Kaiten -ovl_Bg_Menkuri_Nisekabe -ovl_Bg_Mizu_Bwall -ovl_Bg_Mizu_Movebg -ovl_Bg_Mizu_Shutter -ovl_Bg_Mizu_Uzu -ovl_Bg_Mizu_Water -ovl_Bg_Mjin -ovl_Bg_Mori_Bigst -ovl_Bg_Mori_Elevator -ovl_Bg_Mori_Hashigo -ovl_Bg_Mori_Hashira4 -ovl_Bg_Mori_Hineri -ovl_Bg_Mori_Idomizu -ovl_Bg_Mori_Kaitenkabe -ovl_Bg_Mori_Rakkatenjo -ovl_Bg_Po_Event -ovl_Bg_Po_Syokudai -ovl_Bg_Pushbox -ovl_Bg_Relay_Objects -ovl_Bg_Spot00_Break -ovl_Bg_Spot00_Hanebasi -ovl_Bg_Spot01_Fusya -ovl_Bg_Spot01_Idohashira -ovl_Bg_Spot01_Idomizu -ovl_Bg_Spot01_Idosoko -ovl_Bg_Spot01_Objects2 -ovl_Bg_Spot02_Objects -ovl_Bg_Spot03_Taki -ovl_Bg_Spot05_Soko -ovl_Bg_Spot06_Objects -ovl_Bg_Spot07_Taki -ovl_Bg_Spot08_Bakudankabe -ovl_Bg_Spot08_Iceblock -ovl_Bg_Spot09_Obj -ovl_Bg_Spot11_Bakudankabe -ovl_Bg_Spot11_Oasis -ovl_Bg_Spot12_Gate -ovl_Bg_Spot12_Saku -ovl_Bg_Spot15_Rrbox -ovl_Bg_Spot15_Saku -ovl_Bg_Spot16_Bombstone -ovl_Bg_Spot16_Doughnut -ovl_Bg_Spot17_Bakudankabe -ovl_Bg_Spot17_Funen -ovl_Bg_Spot18_Basket -ovl_Bg_Spot18_Futa -ovl_Bg_Spot18_Obj -ovl_Bg_Spot18_Shutter -ovl_Bg_Sst_Floor -ovl_Bg_Toki_Hikari -ovl_Bg_Toki_Swd -ovl_Bg_Treemouth -ovl_Bg_Umajump -ovl_Bg_Vb_Sima -ovl_Bg_Ydan_Hasi -ovl_Bg_Ydan_Maruta -ovl_Bg_Ydan_Sp -ovl_Bg_Zg -ovl_Boss_Dodongo -ovl_Boss_Fd -ovl_Boss_Fd2 -ovl_Boss_Ganon -ovl_Boss_Ganon2 -ovl_Boss_Ganondrof -ovl_Boss_Goma -ovl_Boss_Mo -ovl_Boss_Sst -ovl_Boss_Tw -ovl_Boss_Va -ovl_Demo_6K -ovl_Demo_Du -ovl_Demo_Ec -ovl_Demo_Effect -ovl_Demo_Ext -ovl_Demo_Geff -ovl_Demo_Gj -ovl_Demo_Go -ovl_Demo_Gt -ovl_Demo_Ik -ovl_Demo_Im -ovl_Demo_Kankyo -ovl_Demo_Kekkai -ovl_Demo_Sa -ovl_Demo_Shd -ovl_Demo_Tre_Lgt -ovl_Door_Ana -ovl_Door_Gerudo -ovl_Door_Killer -ovl_Door_Shutter -ovl_Door_Toki -ovl_Door_Warp1 -ovl_Efc_Erupc -ovl_Eff_Dust -ovl_Effect_Ss_Blast -ovl_Effect_Ss_Bomb -ovl_Effect_Ss_Bomb2 -ovl_Effect_Ss_Bubble -ovl_Effect_Ss_D_Fire -ovl_Effect_Ss_Dead_Db -ovl_Effect_Ss_Dead_Dd -ovl_Effect_Ss_Dead_Ds -ovl_Effect_Ss_Dead_Sound -ovl_Effect_Ss_Dt_Bubble -ovl_Effect_Ss_Dust -ovl_Effect_Ss_En_Fire -ovl_Effect_Ss_En_Ice -ovl_Effect_Ss_Extra -ovl_Effect_Ss_Fcircle -ovl_Effect_Ss_Fhg_Flash -ovl_Effect_Ss_Fire_Tail -ovl_Effect_Ss_G_Fire -ovl_Effect_Ss_G_Magma -ovl_Effect_Ss_G_Magma2 -ovl_Effect_Ss_G_Ripple -ovl_Effect_Ss_G_Spk -ovl_Effect_Ss_G_Splash -ovl_Effect_Ss_Hahen -ovl_Effect_Ss_HitMark -ovl_Effect_Ss_Ice_Piece -ovl_Effect_Ss_Ice_Smoke -ovl_Effect_Ss_K_Fire -ovl_Effect_Ss_Kakera -ovl_Effect_Ss_KiraKira -ovl_Effect_Ss_Lightning -ovl_Effect_Ss_Sibuki -ovl_Effect_Ss_Sibuki2 -ovl_Effect_Ss_Solder_Srch_Ball -ovl_Effect_Ss_Stick -ovl_Effect_Ss_Stone1 -ovl_Elf_Msg -ovl_Elf_Msg2 -ovl_En_Am -ovl_En_Ani -ovl_En_Anubice -ovl_En_Anubice_Fire -ovl_En_Anubice_Tag -ovl_En_Arow_Trap -ovl_En_Arrow -ovl_En_Attack_Niw -ovl_En_Ba -ovl_En_Bb -ovl_En_Bdfire -ovl_En_Bigokuta -ovl_En_Bili -ovl_En_Bird -ovl_En_Blkobj -ovl_En_Bom -ovl_En_Bom_Bowl_Man -ovl_En_Bom_Bowl_Pit -ovl_En_Bom_Chu -ovl_En_Bombf -ovl_En_Boom -ovl_En_Box -ovl_En_Brob -ovl_En_Bubble -ovl_En_Butte -ovl_En_Bw -ovl_En_Bx -ovl_En_Changer -ovl_En_Clear_Tag -ovl_En_Cow -ovl_En_Crow -ovl_En_Cs -ovl_En_Daiku -ovl_En_Daiku_Kakariko -ovl_En_Dekubaba -ovl_En_Dekunuts -ovl_En_Dh -ovl_En_Dha -ovl_En_Diving_Game -ovl_En_Dns -ovl_En_Dnt_Demo -ovl_En_Dnt_Jiji -ovl_En_Dnt_Nomal -ovl_En_Dodojr -ovl_En_Dodongo -ovl_En_Dog -ovl_En_Door -ovl_En_Ds -ovl_En_Du -ovl_En_Dy_Extra -ovl_En_Eg -ovl_En_Eiyer -ovl_En_Elf -ovl_En_Encount1 -ovl_En_Encount2 -ovl_En_Ex_Item -ovl_En_Ex_Ruppy -ovl_En_Fd -ovl_En_Fd_Fire -ovl_En_Fhg_Fire -ovl_En_Fire_Rock -ovl_En_Firefly -ovl_En_Fish -ovl_En_Floormas -ovl_En_Fr -ovl_En_Fu -ovl_En_Fw -ovl_En_Fz -ovl_En_G_Switch -ovl_En_Ganon_Mant -ovl_En_Ganon_Organ -ovl_En_Gb -ovl_En_Ge1 -ovl_En_Ge2 -ovl_En_Ge3 -ovl_En_GeldB -ovl_En_GirlA -ovl_En_Gm -ovl_En_Go -ovl_En_Go2 -ovl_En_Goma -ovl_En_Goroiwa -ovl_En_Gs -ovl_En_Guest -ovl_En_Hata -ovl_En_Heishi1 -ovl_En_Heishi2 -ovl_En_Heishi3 -ovl_En_Heishi4 -ovl_En_Hintnuts -ovl_En_Holl -ovl_En_Honotrap -ovl_En_Horse -ovl_En_Horse_Game_Check -ovl_En_Horse_Ganon -ovl_En_Horse_Link_Child -ovl_En_Horse_Normal -ovl_En_Horse_Zelda -ovl_En_Hs -ovl_En_Hs2 -ovl_En_Hy -ovl_En_Ice_Hono -ovl_En_Ik -ovl_En_In -ovl_En_Insect -ovl_En_Ishi -ovl_En_It -ovl_En_Jj -ovl_En_Js -ovl_En_Jsjutan -ovl_En_Kakasi -ovl_En_Kakasi2 -ovl_En_Kakasi3 -ovl_En_Kanban -ovl_En_Karebaba -ovl_En_Ko -ovl_En_Kusa -ovl_En_Kz -ovl_En_Light -ovl_En_Lightbox -ovl_En_M_Fire1 -ovl_En_M_Thunder -ovl_En_Ma1 -ovl_En_Ma2 -ovl_En_Ma3 -ovl_En_Mag -ovl_En_Mb -ovl_En_Md -ovl_En_Mk -ovl_En_Mm -ovl_En_Mm2 -ovl_En_Ms -ovl_En_Mu -ovl_En_Nb -ovl_En_Niw -ovl_En_Niw_Girl -ovl_En_Niw_Lady -ovl_En_Nutsball -ovl_En_Nwc -ovl_En_Ny -ovl_En_OE2 -ovl_En_Okarina_Effect -ovl_En_Okarina_Tag -ovl_En_Okuta -ovl_En_Ossan -ovl_En_Owl -ovl_En_Part -ovl_En_Peehat -ovl_En_Po_Desert -ovl_En_Po_Field -ovl_En_Po_Relay -ovl_En_Po_Sisters -ovl_En_Poh -ovl_En_Pu_box -ovl_En_Rd -ovl_En_Reeba -ovl_En_River_Sound -ovl_En_Rl -ovl_En_Rr -ovl_En_Ru1 -ovl_En_Ru2 -ovl_En_Sa -ovl_En_Sb -ovl_En_Scene_Change -ovl_En_Sda -ovl_En_Shopnuts -ovl_En_Si -ovl_En_Siofuki -ovl_En_Skb -ovl_En_Skj -ovl_En_Skjneedle -ovl_En_Ssh -ovl_En_St -ovl_En_Sth -ovl_En_Stream -ovl_En_Sw -ovl_En_Syateki_Itm -ovl_En_Syateki_Man -ovl_En_Syateki_Niw -ovl_En_Ta -ovl_En_Takara_Man -ovl_En_Tana -ovl_En_Tg -ovl_En_Tite -ovl_En_Tk -ovl_En_Torch -ovl_En_Torch2 -ovl_En_Toryo -ovl_En_Tp -ovl_En_Tr -ovl_En_Trap -ovl_En_Tubo_Trap -ovl_En_Vali -ovl_En_Vase -ovl_En_Vb_Ball -ovl_En_Viewer -ovl_En_Vm -ovl_En_Wall_Tubo -ovl_En_Wallmas -ovl_En_Weather_Tag -ovl_En_Weiyer -ovl_En_Wf -ovl_En_Wonder_Item -ovl_En_Wonder_Talk -ovl_En_Wonder_Talk2 -ovl_En_Wood02 -ovl_En_Xc -ovl_En_Yabusame_Mark -ovl_En_Yukabyun -ovl_En_Zf -ovl_En_Zl1 -ovl_En_Zl2 -ovl_En_Zl3 -ovl_En_Zl4 -ovl_En_Zo -ovl_En_fHG -ovl_End_Title -ovl_Fishing -ovl_Item_B_Heart -ovl_Item_Etcetera -ovl_Item_Inbox -ovl_Item_Ocarina -ovl_Item_Shield -ovl_Magic_Dark -ovl_Magic_Fire -ovl_Magic_Wind -ovl_Mir_Ray -ovl_Obj_Bean -ovl_Obj_Blockstop -ovl_Obj_Bombiwa -ovl_Obj_Comb -ovl_Obj_Dekujr -ovl_Obj_Elevator -ovl_Obj_Hamishi -ovl_Obj_Hana -ovl_Obj_Hsblock -ovl_Obj_Ice_Poly -ovl_Obj_Kibako -ovl_Obj_Kibako2 -ovl_Obj_Lift -ovl_Obj_Lightswitch -ovl_Obj_Makekinsuta -ovl_Obj_Makeoshihiki -ovl_Obj_Mure -ovl_Obj_Mure2 -ovl_Obj_Mure3 -ovl_Obj_Oshihiki -ovl_Obj_Roomtimer -ovl_Obj_Switch -ovl_Obj_Syokudai -ovl_Obj_Timeblock -ovl_Obj_Tsubo -ovl_Obj_Warp2block -ovl_Object_Kankyo -ovl_Oceff_Spot -ovl_Oceff_Storm -ovl_Oceff_Wipe -ovl_Oceff_Wipe2 -ovl_Oceff_Wipe3 -ovl_Oceff_Wipe4 -ovl_Shot_Sun -gameplay_keep -gameplay_field_keep -gameplay_dangeon_keep -gameplay_object_exchange_static -object_link_boy -object_link_child -object_box -object_human -object_okuta -object_poh -object_wallmaster -object_dy_obj -object_firefly -object_dodongo -object_fire -object_niw -object_tite -object_reeba -object_peehat -object_kingdodongo -object_horse -object_zf -object_goma -object_zl1 -object_gol -object_bubble -object_dodojr -object_torch2 -object_bl -object_tp -object_oA1 -object_st -object_bw -object_ei -object_horse_normal -object_oB1 -object_o_anime -object_spot04_objects -object_ddan_objects -object_hidan_objects -object_horse_ganon -object_oA2 -object_spot00_objects -object_mb -object_bombf -object_sk2 -object_oE1 -object_oE_anime -object_oE2 -object_ydan_objects -object_gnd -object_am -object_dekubaba -object_oA3 -object_oA4 -object_oA5 -object_oA6 -object_oA7 -object_jj -object_oA8 -object_oA9 -object_oB2 -object_oB3 -object_oB4 -object_horse_zelda -object_opening_demo1 -object_warp1 -object_b_heart -object_dekunuts -object_oE3 -object_oE4 -object_menkuri_objects -object_oE5 -object_oE6 -object_oE7 -object_oE8 -object_oE9 -object_oE10 -object_oE11 -object_oE12 -object_vali -object_oA10 -object_oA11 -object_mizu_objects -object_fhg -object_ossan -object_mori_hineri1 -object_Bb -object_toki_objects -object_yukabyun -object_zl2 -object_mjin -object_mjin_flash -object_mjin_dark -object_mjin_flame -object_mjin_ice -object_mjin_soul -object_mjin_wind -object_mjin_oka -object_haka_objects -object_spot06_objects -object_ice_objects -object_relay_objects -object_mori_hineri1a -object_mori_hineri2 -object_mori_hineri2a -object_mori_objects -object_mori_tex -object_spot08_obj -object_warp2 -object_hata -object_bird -object_wood02 -object_lightbox -object_pu_box -object_trap -object_vase -object_im -object_ta -object_tk -object_xc -object_vm -object_bv -object_hakach_objects -object_efc_crystal_light -object_efc_fire_ball -object_efc_flash -object_efc_lgt_shower -object_efc_star_field -object_god_lgt -object_light_ring -object_triforce_spot -object_medal -object_bdan_objects -object_sd -object_rd -object_po_sisters -object_heavy_object -object_gndd -object_fd -object_du -object_fw -object_horse_link_child -object_spot02_objects -object_haka -object_ru1 -object_syokudai -object_fd2 -object_dh -object_rl -object_efc_tw -object_demo_tre_lgt -object_gi_key -object_mir_ray -object_brob -object_gi_jewel -object_spot09_obj -object_spot18_obj -object_bdoor -object_spot17_obj -object_shop_dungen -object_nb -object_mo -object_sb -object_gi_melody -object_gi_heart -object_gi_compass -object_gi_bosskey -object_gi_medal -object_gi_nuts -object_sa -object_gi_hearts -object_gi_arrowcase -object_gi_bombpouch -object_in -object_tr -object_spot16_obj -object_oE1s -object_oE4s -object_os_anime -object_gi_bottle -object_gi_stick -object_gi_map -object_oF1d_map -object_ru2 -object_gi_shield_1 -object_dekujr -object_gi_magicpot -object_gi_bomb_1 -object_oF1s -object_ma2 -object_gi_purse -object_hni -object_tw -object_rr -object_bxa -object_anubice -object_gi_gerudo -object_gi_arrow -object_gi_bomb_2 -object_gi_egg -object_gi_scale -object_gi_shield_2 -object_gi_hookshot -object_gi_ocarina -object_gi_milk -object_ma1 -object_ganon -object_sst -object_ny -object_fr -object_gi_pachinko -object_gi_boomerang -object_gi_bow -object_gi_glasses -object_gi_liquid -object_ani -object_demo_6k -object_gi_shield_3 -object_gi_letter -object_spot15_obj -object_jya_obj -object_gi_clothes -object_gi_bean -object_gi_fish -object_gi_saw -object_gi_hammer -object_gi_grass -object_gi_longsword -object_spot01_objects -object_md -object_km1 -object_kw1 -object_zo -object_kz -object_umajump -object_masterkokiri -object_masterkokirihead -object_mastergolon -object_masterzoora -object_aob -object_ik -object_ahg -object_cne -object_gi_niwatori -object_skj -object_gi_bottle_letter -object_bji -object_bba -object_gi_ocarina_0 -object_ds -object_ane -object_boj -object_spot03_object -object_spot07_object -object_fz -object_bob -object_ge1 -object_yabusame_point -object_gi_boots_2 -object_gi_seed -object_gnd_magic -object_d_elevator -object_d_hsblock -object_d_lift -object_mamenoki -object_goroiwa -object_toryo -object_daiku -object_nwc -object_blkobj -object_gm -object_ms -object_hs -object_ingate -object_lightswitch -object_kusa -object_tsubo -object_gi_gloves -object_gi_coin -object_kanban -object_gjyo_objects -object_owl -object_mk -object_fu -object_gi_ki_tan_mask -object_gi_redead_mask -object_gi_skj_mask -object_gi_rabit_mask -object_gi_truth_mask -object_ganon_objects -object_siofuki -object_stream -object_mm -object_fa -object_os -object_gi_eye_lotion -object_gi_powder -object_gi_mushroom -object_gi_ticketstone -object_gi_brokensword -object_js -object_cs -object_gi_prescription -object_gi_bracelet -object_gi_soldout -object_gi_frog -object_mag -object_door_gerudo -object_gt -object_efc_erupc -object_zl2_anime1 -object_zl2_anime2 -object_gi_golonmask -object_gi_zoramask -object_gi_gerudomask -object_ganon2 -object_ka -object_ts -object_zg -object_gi_hoverboots -object_gi_m_arrow -object_ds2 -object_ec -object_fish -object_gi_sutaru -object_gi_goddess -object_ssh -object_bigokuta -object_bg -object_spot05_objects -object_spot12_obj -object_bombiwa -object_hintnuts -object_rs -object_spot00_break -object_gla -object_shopnuts -object_geldb -object_gr -object_dog -object_jya_iron -object_jya_door -object_spot01_objects2 -object_spot11_obj -object_kibako2 -object_dns -object_dnk -object_gi_fire -object_gi_insect -object_gi_butterfly -object_gi_ghost -object_gi_soul -object_bowl -object_po_field -object_demo_kekkai -object_efc_doughnut -object_gi_dekupouch -object_ganon_anime1 -object_ganon_anime2 -object_ganon_anime3 -object_gi_rupy -object_spot01_matoya -object_spot01_matoyab -object_po_composer -object_mu -object_wf -object_skb -object_gj -object_geff -object_haka_door -object_gs -object_ps -object_bwall -object_crow -object_cow -object_cob -object_gi_sword_1 -object_door_killer -object_ouke_haka -object_timeblock -object_zl4 -g_pn_01 -g_pn_02 -g_pn_03 -g_pn_04 -g_pn_05 -g_pn_06 -g_pn_07 -g_pn_08 -g_pn_09 -g_pn_10 -g_pn_11 -g_pn_12 -g_pn_13 -g_pn_14 -g_pn_15 -g_pn_16 -g_pn_17 -g_pn_18 -g_pn_19 -g_pn_20 -g_pn_21 -g_pn_22 -g_pn_23 -g_pn_24 -g_pn_25 -g_pn_26 -g_pn_27 -g_pn_28 -g_pn_29 -g_pn_30 -g_pn_31 -g_pn_32 -g_pn_33 -g_pn_34 -g_pn_35 -g_pn_36 -g_pn_37 -g_pn_38 -g_pn_39 -g_pn_40 -g_pn_41 -g_pn_42 -g_pn_43 -g_pn_44 -g_pn_45 -g_pn_46 -g_pn_47 -g_pn_48 -g_pn_49 -g_pn_50 -g_pn_51 -g_pn_52 -g_pn_53 -g_pn_54 -g_pn_55 -g_pn_56 -g_pn_57 -z_select_static -nintendo_rogo_static -title_static -parameter_static -vr_fine0_static -vr_fine0_pal_static -vr_fine1_static -vr_fine1_pal_static -vr_fine2_static -vr_fine2_pal_static -vr_fine3_static -vr_fine3_pal_static -vr_cloud0_static -vr_cloud0_pal_static -vr_cloud1_static -vr_cloud1_pal_static -vr_cloud2_static -vr_cloud2_pal_static -vr_cloud3_static -vr_cloud3_pal_static -vr_holy0_static -vr_holy0_pal_static -vr_holy1_static -vr_holy1_pal_static -vr_MDVR_static -vr_MDVR_pal_static -vr_MNVR_static -vr_MNVR_pal_static -vr_RUVR_static -vr_RUVR_pal_static -vr_LHVR_static -vr_LHVR_pal_static -vr_KHVR_static -vr_KHVR_pal_static -vr_K3VR_static -vr_K3VR_pal_static -vr_K4VR_static -vr_K4VR_pal_static -vr_K5VR_static -vr_K5VR_pal_static -vr_SP1a_static -vr_SP1a_pal_static -vr_MLVR_static -vr_MLVR_pal_static -vr_KKRVR_static -vr_KKRVR_pal_static -vr_KR3VR_static -vr_KR3VR_pal_static -vr_IPVR_static -vr_IPVR_pal_static -vr_KSVR_static -vr_KSVR_pal_static -vr_GLVR_static -vr_GLVR_pal_static -vr_ZRVR_static -vr_ZRVR_pal_static -vr_DGVR_static -vr_DGVR_pal_static -vr_ALVR_static -vr_ALVR_pal_static -vr_NSVR_static -vr_NSVR_pal_static -vr_LBVR_static -vr_LBVR_pal_static -vr_TTVR_static -vr_TTVR_pal_static -vr_FCVR_static -vr_FCVR_pal_static -elf_message_field -elf_message_ydan -ydan_scene -ydan_room_0 -ydan_room_1 -ydan_room_2 -ydan_room_3 -ydan_room_4 -ydan_room_5 -ydan_room_6 -ydan_room_7 -ydan_room_8 -ydan_room_9 -ydan_room_10 -ydan_room_11 -ddan_scene -ddan_room_0 -ddan_room_1 -ddan_room_2 -ddan_room_3 -ddan_room_4 -ddan_room_5 -ddan_room_6 -ddan_room_7 -ddan_room_8 -ddan_room_9 -ddan_room_10 -ddan_room_11 -ddan_room_12 -ddan_room_13 -ddan_room_14 -ddan_room_15 -ddan_room_16 -bdan_scene -bdan_room_0 -bdan_room_1 -bdan_room_2 -bdan_room_3 -bdan_room_4 -bdan_room_5 -bdan_room_6 -bdan_room_7 -bdan_room_8 -bdan_room_9 -bdan_room_10 -bdan_room_11 -bdan_room_12 -bdan_room_13 -bdan_room_14 -bdan_room_15 -Bmori1_scene -Bmori1_room_0 -Bmori1_room_1 -Bmori1_room_2 -Bmori1_room_3 -Bmori1_room_4 -Bmori1_room_5 -Bmori1_room_6 -Bmori1_room_7 -Bmori1_room_8 -Bmori1_room_9 -Bmori1_room_10 -Bmori1_room_11 -Bmori1_room_12 -Bmori1_room_13 -Bmori1_room_14 -Bmori1_room_15 -Bmori1_room_16 -Bmori1_room_17 -Bmori1_room_18 -Bmori1_room_19 -Bmori1_room_20 -Bmori1_room_21 -Bmori1_room_22 -HIDAN_scene -HIDAN_room_0 -HIDAN_room_1 -HIDAN_room_2 -HIDAN_room_3 -HIDAN_room_4 -HIDAN_room_5 -HIDAN_room_6 -HIDAN_room_7 -HIDAN_room_8 -HIDAN_room_9 -HIDAN_room_10 -HIDAN_room_11 -HIDAN_room_12 -HIDAN_room_13 -HIDAN_room_14 -HIDAN_room_15 -HIDAN_room_16 -HIDAN_room_17 -HIDAN_room_18 -HIDAN_room_19 -HIDAN_room_20 -HIDAN_room_21 -HIDAN_room_22 -HIDAN_room_23 -HIDAN_room_24 -HIDAN_room_25 -HIDAN_room_26 -MIZUsin_scene -MIZUsin_room_0 -MIZUsin_room_1 -MIZUsin_room_2 -MIZUsin_room_3 -MIZUsin_room_4 -MIZUsin_room_5 -MIZUsin_room_6 -MIZUsin_room_7 -MIZUsin_room_8 -MIZUsin_room_9 -MIZUsin_room_10 -MIZUsin_room_11 -MIZUsin_room_12 -MIZUsin_room_13 -MIZUsin_room_14 -MIZUsin_room_15 -MIZUsin_room_16 -MIZUsin_room_17 -MIZUsin_room_18 -MIZUsin_room_19 -MIZUsin_room_20 -MIZUsin_room_21 -MIZUsin_room_22 -jyasinzou_scene -jyasinzou_room_0 -jyasinzou_room_1 -jyasinzou_room_2 -jyasinzou_room_3 -jyasinzou_room_4 -jyasinzou_room_5 -jyasinzou_room_6 -jyasinzou_room_7 -jyasinzou_room_8 -jyasinzou_room_9 -jyasinzou_room_10 -jyasinzou_room_11 -jyasinzou_room_12 -jyasinzou_room_13 -jyasinzou_room_14 -jyasinzou_room_15 -jyasinzou_room_16 -jyasinzou_room_17 -jyasinzou_room_18 -jyasinzou_room_19 -jyasinzou_room_20 -jyasinzou_room_21 -jyasinzou_room_22 -jyasinzou_room_23 -jyasinzou_room_24 -jyasinzou_room_25 -jyasinzou_room_26 -jyasinzou_room_27 -jyasinzou_room_28 -HAKAdan_scene -HAKAdan_room_0 -HAKAdan_room_1 -HAKAdan_room_2 -HAKAdan_room_3 -HAKAdan_room_4 -HAKAdan_room_5 -HAKAdan_room_6 -HAKAdan_room_7 -HAKAdan_room_8 -HAKAdan_room_9 -HAKAdan_room_10 -HAKAdan_room_11 -HAKAdan_room_12 -HAKAdan_room_13 -HAKAdan_room_14 -HAKAdan_room_15 -HAKAdan_room_16 -HAKAdan_room_17 -HAKAdan_room_18 -HAKAdan_room_19 -HAKAdan_room_20 -HAKAdan_room_21 -HAKAdan_room_22 -HAKAdanCH_scene -HAKAdanCH_room_0 -HAKAdanCH_room_1 -HAKAdanCH_room_2 -HAKAdanCH_room_3 -HAKAdanCH_room_4 -HAKAdanCH_room_5 -HAKAdanCH_room_6 -ice_doukutu_scene -ice_doukutu_room_0 -ice_doukutu_room_1 -ice_doukutu_room_2 -ice_doukutu_room_3 -ice_doukutu_room_4 -ice_doukutu_room_5 -ice_doukutu_room_6 -ice_doukutu_room_7 -ice_doukutu_room_8 -ice_doukutu_room_9 -ice_doukutu_room_10 -ice_doukutu_room_11 -men_scene -men_room_0 -men_room_1 -men_room_2 -men_room_3 -men_room_4 -men_room_5 -men_room_6 -men_room_7 -men_room_8 -men_room_9 -men_room_10 -ganontika_scene -ganontika_room_0 -ganontika_room_1 -ganontika_room_2 -ganontika_room_3 -ganontika_room_4 -ganontika_room_5 -ganontika_room_6 -ganontika_room_7 -ganontika_room_8 -ganontika_room_9 -ganontika_room_10 -ganontika_room_11 -ganontika_room_12 -ganontika_room_13 -ganontika_room_14 -ganontika_room_15 -ganontika_room_16 -ganontika_room_17 -ganontika_room_18 -ganontika_room_19 -spot00_scene -spot00_room_0 -spot01_scene -spot01_room_0 -spot02_scene -spot02_room_0 -spot02_room_1 -spot03_scene -spot03_room_0 -spot03_room_1 -spot04_scene -spot04_room_0 -spot04_room_1 -spot04_room_2 -spot05_scene -spot05_room_0 -spot06_scene -spot06_room_0 -spot07_scene -spot07_room_0 -spot07_room_1 -spot08_scene -spot08_room_0 -spot09_scene -spot09_room_0 -spot10_scene -spot10_room_0 -spot10_room_1 -spot10_room_2 -spot10_room_3 -spot10_room_4 -spot10_room_5 -spot10_room_6 -spot10_room_7 -spot10_room_8 -spot10_room_9 -spot11_scene -spot11_room_0 -spot12_scene -spot12_room_0 -spot12_room_1 -spot13_scene -spot13_room_0 -spot13_room_1 -spot15_scene -spot15_room_0 -spot16_scene -spot16_room_0 -spot17_scene -spot17_room_0 -spot17_room_1 -spot18_scene -spot18_room_0 -spot18_room_1 -spot18_room_2 -spot18_room_3 -market_day_scene -market_day_room_0 -market_night_scene -market_night_room_0 -kenjyanoma_scene -kenjyanoma_room_0 -tokinoma_scene -tokinoma_room_0 -tokinoma_room_1 -link_home_scene -link_home_room_0 -kokiri_shop_scene -kokiri_shop_room_0 -kokiri_home_scene -kokiri_home_room_0 -kakusiana_scene -kakusiana_room_0 -kakusiana_room_1 -kakusiana_room_2 -kakusiana_room_3 -kakusiana_room_4 -kakusiana_room_5 -kakusiana_room_6 -kakusiana_room_7 -kakusiana_room_8 -kakusiana_room_9 -kakusiana_room_10 -kakusiana_room_11 -kakusiana_room_12 -kakusiana_room_13 -entra_scene -entra_room_0 -moribossroom_scene -moribossroom_room_0 -moribossroom_room_1 -syatekijyou_scene -syatekijyou_room_0 -shop1_scene -shop1_room_0 -hairal_niwa_scene -hairal_niwa_room_0 -ganon_tou_scene -ganon_tou_room_0 -market_alley_scene -market_alley_room_0 -spot20_scene -spot20_room_0 -market_ruins_scene -market_ruins_room_0 -entra_n_scene -entra_n_room_0 -enrui_scene -enrui_room_0 -market_alley_n_scene -market_alley_n_room_0 -hiral_demo_scene -hiral_demo_room_0 -kokiri_home3_scene -kokiri_home3_room_0 -malon_stable_scene -malon_stable_room_0 -kakariko_scene -kakariko_room_0 -bdan_boss_scene -bdan_boss_room_0 -bdan_boss_room_1 -FIRE_bs_scene -FIRE_bs_room_0 -FIRE_bs_room_1 -hut_scene -hut_room_0 -daiyousei_izumi_scene -daiyousei_izumi_room_0 -hakaana_scene -hakaana_room_0 -yousei_izumi_tate_scene -yousei_izumi_tate_room_0 -yousei_izumi_yoko_scene -yousei_izumi_yoko_room_0 -golon_scene -golon_room_0 -zoora_scene -zoora_room_0 -drag_scene -drag_room_0 -alley_shop_scene -alley_shop_room_0 -night_shop_scene -night_shop_room_0 -impa_scene -impa_room_0 -labo_scene -labo_room_0 -tent_scene -tent_room_0 -nakaniwa_scene -nakaniwa_room_0 -ddan_boss_scene -ddan_boss_room_0 -ddan_boss_room_1 -ydan_boss_scene -ydan_boss_room_0 -ydan_boss_room_1 -HAKAdan_bs_scene -HAKAdan_bs_room_0 -HAKAdan_bs_room_1 -MIZUsin_bs_scene -MIZUsin_bs_room_0 -MIZUsin_bs_room_1 -ganon_scene -ganon_room_0 -ganon_room_1 -ganon_room_2 -ganon_room_3 -ganon_room_4 -ganon_room_5 -ganon_room_6 -ganon_room_7 -ganon_room_8 -ganon_room_9 -ganon_boss_scene -ganon_boss_room_0 -jyasinboss_scene -jyasinboss_room_0 -jyasinboss_room_1 -jyasinboss_room_2 -jyasinboss_room_3 -kokiri_home4_scene -kokiri_home4_room_0 -kokiri_home5_scene -kokiri_home5_room_0 -ganon_final_scene -ganon_final_room_0 -kakariko3_scene -kakariko3_room_0 -hakasitarelay_scene -hakasitarelay_room_0 -hakasitarelay_room_1 -hakasitarelay_room_2 -hakasitarelay_room_3 -hakasitarelay_room_4 -hakasitarelay_room_5 -hakasitarelay_room_6 -shrine_scene -shrine_room_0 -turibori_scene -turibori_room_0 -shrine_n_scene -shrine_n_room_0 -shrine_r_scene -shrine_r_room_0 -hakaana2_scene -hakaana2_room_0 -gerudoway_scene -gerudoway_room_0 -gerudoway_room_1 -gerudoway_room_2 -gerudoway_room_3 -gerudoway_room_4 -gerudoway_room_5 -hairal_niwa_n_scene -hairal_niwa_n_room_0 -bowling_scene -bowling_room_0 -hakaana_ouke_scene -hakaana_ouke_room_0 -hakaana_ouke_room_1 -hakaana_ouke_room_2 -hylia_labo_scene -hylia_labo_room_0 -souko_scene -souko_room_0 -souko_room_1 -souko_room_2 -miharigoya_scene -miharigoya_room_0 -mahouya_scene -mahouya_room_0 -takaraya_scene -takaraya_room_0 -takaraya_room_1 -takaraya_room_2 -takaraya_room_3 -takaraya_room_4 -takaraya_room_5 -takaraya_room_6 -ganon_sonogo_scene -ganon_sonogo_room_0 -ganon_sonogo_room_1 -ganon_sonogo_room_2 -ganon_sonogo_room_3 -ganon_sonogo_room_4 -ganon_demo_scene -ganon_demo_room_0 -face_shop_scene -face_shop_room_0 -kinsuta_scene -kinsuta_room_0 -ganontikasonogo_scene -ganontikasonogo_room_0 -ganontikasonogo_room_1 -bump_texture_static -anime_model_1_static -anime_model_2_static -anime_model_3_static -anime_model_4_static -anime_model_5_static -anime_model_6_static -anime_texture_1_static -anime_texture_2_static -anime_texture_3_static -anime_texture_4_static -anime_texture_5_static -anime_texture_6_static -softsprite_matrix_static diff --git a/baseroms/gc-eu-mq/dmadata_start.txt b/baseroms/gc-eu-mq/dmadata_start.txt deleted file mode 100644 index 08515b6d6..000000000 --- a/baseroms/gc-eu-mq/dmadata_start.txt +++ /dev/null @@ -1 +0,0 @@ -0x07170 diff --git a/baseroms/gc-eu-mq/segments.csv b/baseroms/gc-eu-mq/segments.csv new file mode 100644 index 000000000..9fdffad82 --- /dev/null +++ b/baseroms/gc-eu-mq/segments.csv @@ -0,0 +1,1511 @@ +Name,VRAM start +makerom,80000000 +boot,80000460 +dmadata, +Audiobank, +Audioseq, +Audiotable, +link_animetion, +icon_item_static, +icon_item_24_static, +icon_item_field_static, +icon_item_dungeon_static, +icon_item_gameover_static, +icon_item_nes_static, +icon_item_ger_static, +icon_item_fra_static, +item_name_static, +map_name_static, +do_action_static, +message_static, +message_texture_static, +nes_font_static, +nes_message_data_static, +ger_message_data_static, +fra_message_data_static, +staff_message_data_static, +map_grand_static, +map_48x85_static, +map_i_static, +code,80010F00 +ovl_title,80800000 +ovl_select,80800850 +ovl_opening,808034D0 +ovl_file_choose,80803630 +ovl_kaleido_scope,80812260 +ovl_player_actor,8082EC90 +ovl_map_mark_data,80855470 +ovl_En_Test,8085BF50 +ovl_Arms_Hook,80861800 +ovl_Arrow_Fire,80862570 +ovl_Arrow_Ice,80864450 +ovl_Arrow_Light,80866350 +ovl_Bg_Bdan_Objects,80868260 +ovl_Bg_Bdan_Switch,80869530 +ovl_Bg_Bom_Guard,8086A960 +ovl_Bg_Bombwall,8086AB80 +ovl_Bg_Bowl_Wall,8086B440 +ovl_Bg_Breakwall,8086BDC0 +ovl_Bg_Ddan_Jd,8086CC30 +ovl_Bg_Ddan_Kd,8086D280 +ovl_Bg_Dodoago,8086DB70 +ovl_Bg_Dy_Yoseizo,8086E920 +ovl_Bg_Ganon_Otyuka,80871710 +ovl_Bg_Gate_Shutter,80873D50 +ovl_Bg_Gjyo_Bridge,808741E0 +ovl_Bg_Gnd_Darkmeiro,808746D0 +ovl_Bg_Gnd_Firemeiro,80874E90 +ovl_Bg_Gnd_Iceblock,808753E0 +ovl_Bg_Gnd_Nisekabe,808764E0 +ovl_Bg_Gnd_Soulmeiro,80876650 +ovl_Bg_Haka,80876EB0 +ovl_Bg_Haka_Gate,80877570 +ovl_Bg_Haka_Huta,80878610 +ovl_Bg_Haka_Megane,808790B0 +ovl_Bg_Haka_MeganeBG,808794B0 +ovl_Bg_Haka_Sgami,80879B70 +ovl_Bg_Haka_Ship,8087A790 +ovl_Bg_Haka_Trap,8087B1E0 +ovl_Bg_Haka_Tubo,8087C7B0 +ovl_Bg_Haka_Water,8087D1D0 +ovl_Bg_Haka_Zou,8087D9D0 +ovl_Bg_Heavy_Block,8087EBC0 +ovl_Bg_Hidan_Curtain,808804B0 +ovl_Bg_Hidan_Dalm,80880F50 +ovl_Bg_Hidan_Firewall,808817A0 +ovl_Bg_Hidan_Fslift,80881F00 +ovl_Bg_Hidan_Fwbig,808823D0 +ovl_Bg_Hidan_Hamstep,808830B0 +ovl_Bg_Hidan_Hrock,80883F60 +ovl_Bg_Hidan_Kousi,80884790 +ovl_Bg_Hidan_Kowarerukabe,80884D20 +ovl_Bg_Hidan_Rock,80885C00 +ovl_Bg_Hidan_Rsekizou,80886D00 +ovl_Bg_Hidan_Sekizou,808878E0 +ovl_Bg_Hidan_Sima,80888D30 +ovl_Bg_Hidan_Syoku,80889C30 +ovl_Bg_Ice_Objects,8088A090 +ovl_Bg_Ice_Shelter,8088AFD0 +ovl_Bg_Ice_Shutter,8088C210 +ovl_Bg_Ice_Turara,8088C680 +ovl_Bg_Ingate,8088CEB0 +ovl_Bg_Jya_1flift,8088D240 +ovl_Bg_Jya_Amishutter,8088D8D0 +ovl_Bg_Jya_Bigmirror,8088DC60 +ovl_Bg_Jya_Block,8088E4B0 +ovl_Bg_Jya_Bombchuiwa,8088E720 +ovl_Bg_Jya_Bombiwa,8088F260 +ovl_Bg_Jya_Cobra,8088F820 +ovl_Bg_Jya_Goroiwa,80891560 +ovl_Bg_Jya_Haheniron,80891CE0 +ovl_Bg_Jya_Ironobj,808924D0 +ovl_Bg_Jya_Kanaami,80893280 +ovl_Bg_Jya_Lift,80893630 +ovl_Bg_Jya_Megami,80893B80 +ovl_Bg_Jya_Zurerukabe,80894D70 +ovl_Bg_Menkuri_Eye,80895420 +ovl_Bg_Menkuri_Kaiten,808958C0 +ovl_Bg_Menkuri_Nisekabe,80895A50 +ovl_Bg_Mizu_Bwall,80895BA0 +ovl_Bg_Mizu_Movebg,80897070 +ovl_Bg_Mizu_Shutter,80898200 +ovl_Bg_Mizu_Uzu,80898A00 +ovl_Bg_Mizu_Water,80898BD0 +ovl_Bg_Mjin,808998A0 +ovl_Bg_Mori_Bigst,80899C90 +ovl_Bg_Mori_Elevator,8089A5C0 +ovl_Bg_Mori_Hashigo,8089B0B0 +ovl_Bg_Mori_Hashira4,8089B970 +ovl_Bg_Mori_Hineri,8089BF00 +ovl_Bg_Mori_Idomizu,8089CC50 +ovl_Bg_Mori_Kaitenkabe,8089D290 +ovl_Bg_Mori_Rakkatenjo,8089D900 +ovl_Bg_Po_Event,8089E280 +ovl_Bg_Po_Syokudai,808A00C0 +ovl_Bg_Pushbox,808A0A30 +ovl_Bg_Relay_Objects,808A0D30 +ovl_Bg_Spot00_Break,808A14E0 +ovl_Bg_Spot00_Hanebasi,808A1680 +ovl_Bg_Spot01_Fusya,808A2790 +ovl_Bg_Spot01_Idohashira,808A2A30 +ovl_Bg_Spot01_Idomizu,808A3630 +ovl_Bg_Spot01_Idosoko,808A3950 +ovl_Bg_Spot01_Objects2,808A3B60 +ovl_Bg_Spot02_Objects,808A4020 +ovl_Bg_Spot03_Taki,808A5380 +ovl_Bg_Spot05_Soko,808A5CA0 +ovl_Bg_Spot06_Objects,808A5FC0 +ovl_Bg_Spot07_Taki,808A73C0 +ovl_Bg_Spot08_Bakudankabe,808A79B0 +ovl_Bg_Spot08_Iceblock,808A8050 +ovl_Bg_Spot09_Obj,808A9090 +ovl_Bg_Spot11_Bakudankabe,808A95B0 +ovl_Bg_Spot11_Oasis,808A9BF0 +ovl_Bg_Spot12_Gate,808AA320 +ovl_Bg_Spot12_Saku,808AA730 +ovl_Bg_Spot15_Rrbox,808AABF0 +ovl_Bg_Spot15_Saku,808AB9D0 +ovl_Bg_Spot16_Bombstone,808ABD10 +ovl_Bg_Spot16_Doughnut,808AD260 +ovl_Bg_Spot17_Bakudankabe,808AD820 +ovl_Bg_Spot17_Funen,808ADF10 +ovl_Bg_Spot18_Basket,808AE160 +ovl_Bg_Spot18_Futa,808AF150 +ovl_Bg_Spot18_Obj,808AF2F0 +ovl_Bg_Spot18_Shutter,808AFBC0 +ovl_Bg_Sst_Floor,808B0110 +ovl_Bg_Toki_Hikari,808B0670 +ovl_Bg_Toki_Swd,808B1410 +ovl_Bg_Treemouth,808B2A60 +ovl_Bg_Umajump,808B40C0 +ovl_Bg_Vb_Sima,808B4250 +ovl_Bg_Ydan_Hasi,808B4970 +ovl_Bg_Ydan_Maruta,808B5120 +ovl_Bg_Ydan_Sp,808B5800 +ovl_Bg_Zg,808B6F20 +ovl_Boss_Dodongo,808B7370 +ovl_Boss_Fd,808C0E70 +ovl_Boss_Fd2,808C81D0 +ovl_Boss_Ganon,808CBF00 +ovl_Boss_Ganon2,808F1D30 +ovl_Boss_Ganondrof,80904BA0 +ovl_Boss_Goma,80909930 +ovl_Boss_Mo,8090F8D0 +ovl_Boss_Sst,8091FEB0 +ovl_Boss_Tw,8092C480 +ovl_Boss_Va,80942050 +ovl_Demo_6K,809592E0 +ovl_Demo_Du,8095C040 +ovl_Demo_Ec,8095F820 +ovl_Demo_Effect,80963080 +ovl_Demo_Ext,80968C20 +ovl_Demo_Geff,80969570 +ovl_Demo_Gj,80969D90 +ovl_Demo_Go,8096DA40 +ovl_Demo_Gt,8096E790 +ovl_Demo_Ik,80973DA0 +ovl_Demo_Im,809752B0 +ovl_Demo_Kankyo,80979220 +ovl_Demo_Kekkai,8097CF10 +ovl_Demo_Sa,8097E200 +ovl_Demo_Shd,80980D20 +ovl_Demo_Tre_Lgt,80983130 +ovl_Door_Ana,80983840 +ovl_Door_Gerudo,80983EB0 +ovl_Door_Killer,809844A0 +ovl_Door_Shutter,80985A10 +ovl_Door_Toki,80987CD0 +ovl_Door_Warp1,80987E30 +ovl_Efc_Erupc,8098C140 +ovl_Eff_Dust,8098CC30 +ovl_Effect_Ss_Blast,8098E000 +ovl_Effect_Ss_Bomb,8098E390 +ovl_Effect_Ss_Bomb2,8098E7C0 +ovl_Effect_Ss_Bubble,8098F0C0 +ovl_Effect_Ss_D_Fire,8098F540 +ovl_Effect_Ss_Dead_Db,8098FA30 +ovl_Effect_Ss_Dead_Dd,8098FF10 +ovl_Effect_Ss_Dead_Ds,809904A0 +ovl_Effect_Ss_Dead_Sound,80990920 +ovl_Effect_Ss_Dt_Bubble,80990A60 +ovl_Effect_Ss_Dust,80990FF0 +ovl_Effect_Ss_En_Fire,80991830 +ovl_Effect_Ss_En_Ice,80991F80 +ovl_Effect_Ss_Extra,80992840 +ovl_Effect_Ss_Fcircle,80992C00 +ovl_Effect_Ss_Fhg_Flash,809930B0 +ovl_Effect_Ss_Fire_Tail,80994030 +ovl_Effect_Ss_G_Fire,80994730 +ovl_Effect_Ss_G_Magma,809949C0 +ovl_Effect_Ss_G_Magma2,80994C20 +ovl_Effect_Ss_G_Ripple,80995130 +ovl_Effect_Ss_G_Spk,80995690 +ovl_Effect_Ss_G_Splash,80995C40 +ovl_Effect_Ss_Hahen,809960F0 +ovl_Effect_Ss_HitMark,80996730 +ovl_Effect_Ss_Ice_Piece,80996C80 +ovl_Effect_Ss_Ice_Smoke,809970C0 +ovl_Effect_Ss_K_Fire,809975A0 +ovl_Effect_Ss_Kakera,809979E0 +ovl_Effect_Ss_KiraKira,80998A70 +ovl_Effect_Ss_Lightning,809990E0 +ovl_Effect_Ss_Sibuki,809997B0 +ovl_Effect_Ss_Sibuki2,80999E80 +ovl_Effect_Ss_Solder_Srch_Ball,8099A1B0 +ovl_Effect_Ss_Stick,8099A360 +ovl_Effect_Ss_Stone1,8099A700 +ovl_Elf_Msg,8099AA80 +ovl_Elf_Msg2,8099B070 +ovl_En_Am,8099B4E0 +ovl_En_Ani,8099D8E0 +ovl_En_Anubice,8099E650 +ovl_En_Anubice_Fire,8099F900 +ovl_En_Anubice_Tag,809A06C0 +ovl_En_Arow_Trap,809A0990 +ovl_En_Arrow,809A0AE0 +ovl_En_Attack_Niw,809A21E0 +ovl_En_Ba,809A3440 +ovl_En_Bb,809A5310 +ovl_En_Bdfire,809A8FF0 +ovl_En_Bigokuta,809A9B90 +ovl_En_Bili,809AC690 +ovl_En_Bird,809AE960 +ovl_En_Blkobj,809AEE20 +ovl_En_Bom,809AF380 +ovl_En_Bom_Bowl_Man,809B0250 +ovl_En_Bom_Bowl_Pit,809B1790 +ovl_En_Bom_Chu,809B2100 +ovl_En_Bombf,809B37A0 +ovl_En_Boom,809B4C30 +ovl_En_Box,809B5500 +ovl_En_Brob,809B7060 +ovl_En_Bubble,809B8150 +ovl_En_Butte,809B9570 +ovl_En_Bw,809BAB40 +ovl_En_Bx,809BDED0 +ovl_En_Changer,809BE9D0 +ovl_En_Clear_Tag,809BF3B0 +ovl_En_Cow,809CA950 +ovl_En_Crow,809CBDB0 +ovl_En_Cs,809CD450 +ovl_En_Daiku,809CE680 +ovl_En_Daiku_Kakariko,809CFDC0 +ovl_En_Dekubaba,809D1180 +ovl_En_Dekunuts,809D4C30 +ovl_En_Dh,809D6430 +ovl_En_Dha,809D7F10 +ovl_En_Diving_Game,809D8F10 +ovl_En_Dns,809DA8C0 +ovl_En_Dnt_Demo,809DBC50 +ovl_En_Dnt_Jiji,809DC970 +ovl_En_Dnt_Nomal,809DDE90 +ovl_En_Dodojr,809E0C90 +ovl_En_Dodongo,809E2B30 +ovl_En_Dog,809E58D0 +ovl_En_Door,809E6A80 +ovl_En_Ds,809E78C0 +ovl_En_Du,809E84E0 +ovl_En_Dy_Extra,809E9F70 +ovl_En_Eg,809EA510 +ovl_En_Eiyer,809EA6C0 +ovl_En_Elf,809EC320 +ovl_En_Encount1,809F0CE0 +ovl_En_Encount2,809F1840 +ovl_En_Ex_Item,809F2A70 +ovl_En_Ex_Ruppy,809F3BF0 +ovl_En_Fd,809F4CB0 +ovl_En_Fd_Fire,809F7950 +ovl_En_Fhg_Fire,809F8660 +ovl_En_Fire_Rock,809FAD00 +ovl_En_Firefly,809FBE10 +ovl_En_Fish,809FDF80 +ovl_En_Floormas,80A00090 +ovl_En_Fr,80A03470 +ovl_En_Fu,80A05F00 +ovl_En_Fw,80A06C50 +ovl_En_Fz,80A08410 +ovl_En_G_Switch,80A0A420 +ovl_En_Ganon_Mant,80A0BC40 +ovl_En_Ganon_Organ,80A0FE70 +ovl_En_Gb,80A16EB0 +ovl_En_Ge1,80A185E0 +ovl_En_Ge2,80A1A610 +ovl_En_Ge3,80A1BFB0 +ovl_En_GeldB,80A1CBF0 +ovl_En_GirlA,80A21FA0 +ovl_En_Gm,80A248C0 +ovl_En_Go,80A255F0 +ovl_En_Go2,80A29C30 +ovl_En_Goma,80A2FC70 +ovl_En_Goroiwa,80A32920 +ovl_En_Gs,80A34CE0 +ovl_En_Guest,80A36B50 +ovl_En_Hata,80A374F0 +ovl_En_Heishi1,80A37A80 +ovl_En_Heishi2,80A38F90 +ovl_En_Heishi3,80A3B190 +ovl_En_Heishi4,80A3BB60 +ovl_En_Hintnuts,80A3CA60 +ovl_En_Holl,80A3E490 +ovl_En_Honotrap,80A3F460 +ovl_En_Horse,80A409C0 +ovl_En_Horse_Game_Check,80A4CC20 +ovl_En_Horse_Ganon,80A4DCF0 +ovl_En_Horse_Link_Child,80A4EA70 +ovl_En_Horse_Normal,80A50870 +ovl_En_Horse_Zelda,80A52E90 +ovl_En_Hs,80A53980 +ovl_En_Hs2,80A54520 +ovl_En_Hy,80A54B00 +ovl_En_Ice_Hono,80A58440 +ovl_En_Ik,80A59630 +ovl_En_In,80A5DC90 +ovl_En_Insect,80A60A30 +ovl_En_Ishi,80A62F50 +ovl_En_It,80A6C0A0 +ovl_En_Jj,80A6C230 +ovl_En_Js,80A6D800 +ovl_En_Jsjutan,80A6E1D0 +ovl_En_Kakasi,80A73B00 +ovl_En_Kakasi2,80A74840 +ovl_En_Kakasi3,80A74F60 +ovl_En_Kanban,80A76040 +ovl_En_Karebaba,80A79190 +ovl_En_Ko,80A7AA80 +ovl_En_Kusa,80A7EBC0 +ovl_En_Kz,80A800A0 +ovl_En_Light,80A81640 +ovl_En_Lightbox,80A82440 +ovl_En_M_Fire1,80A828C0 +ovl_En_M_Thunder,80A82A60 +ovl_En_Ma1,80A84060 +ovl_En_Ma2,80A85340 +ovl_En_Ma3,80A863A0 +ovl_En_Mag,80A87350 +ovl_En_Mb,80A89870 +ovl_En_Md,80A8DAA0 +ovl_En_Mk,80A90110 +ovl_En_Mm,80A90FA0 +ovl_En_Mm2,80A92600 +ovl_En_Ms,80A933C0 +ovl_En_Mu,80A93AB0 +ovl_En_Nb,80A943D0 +ovl_En_Niw,80A989A0 +ovl_En_Niw_Girl,80A9BCD0 +ovl_En_Niw_Lady,80A9C7A0 +ovl_En_Nutsball,80A9E0A0 +ovl_En_Nwc,80A9E6C0 +ovl_En_Ny,80A9F0E0 +ovl_En_OE2,80AA0A20 +ovl_En_Okarina_Effect,80AA0B00 +ovl_En_Okarina_Tag,80AA0EC0 +ovl_En_Okuta,80AA23C0 +ovl_En_Ossan,80AA49A0 +ovl_En_Owl,80AAAF80 +ovl_En_Part,80AAEB20 +ovl_En_Peehat,80AB0180 +ovl_En_Po_Desert,80AB3880 +ovl_En_Po_Field,80AB4640 +ovl_En_Po_Relay,80AB80D0 +ovl_En_Po_Sisters,80AB97E0 +ovl_En_Poh,80ABE4D0 +ovl_En_Pu_box,80AC26C0 +ovl_En_Rd,80AC2A00 +ovl_En_Reeba,80AC52C0 +ovl_En_River_Sound,80AC6D30 +ovl_En_Rl,80AC76C0 +ovl_En_Rr,80AC85A0 +ovl_En_Ru1,80ACAAD0 +ovl_En_Ru2,80AD2170 +ovl_En_Sa,80AD4EF0 +ovl_En_Sb,80AD7160 +ovl_En_Scene_Change,80AD85A0 +ovl_En_Sda,80AD86D0 +ovl_En_Shopnuts,80AD9DC0 +ovl_En_Si,80ADACD0 +ovl_En_Siofuki,80ADB1D0 +ovl_En_Skb,80ADBF80 +ovl_En_Skj,80ADD870 +ovl_En_Skjneedle,80AE11C0 +ovl_En_Ssh,80AE14D0 +ovl_En_St,80AE3AC0 +ovl_En_Sth,80AE6730 +ovl_En_Stream,80AEA7F0 +ovl_En_Sw,80AEAD80 +ovl_En_Syateki_Itm,80AEE570 +ovl_En_Syateki_Man,80AEF310 +ovl_En_Syateki_Niw,80AF00D0 +ovl_En_Ta,80AF2160 +ovl_En_Takara_Man,80AF5B20 +ovl_En_Tana,80AF63E0 +ovl_En_Tg,80AF6690 +ovl_En_Tite,80AF6D70 +ovl_En_Tk,80AF9B10 +ovl_En_Torch,80AFB940 +ovl_En_Torch2,80AFBA30 +ovl_En_Toryo,80AFE1D0 +ovl_En_Tp,80AFEE60 +ovl_En_Tr,80B00CD0 +ovl_En_Trap,80B025D0 +ovl_En_Tubo_Trap,80B03870 +ovl_En_Vali,80B04510 +ovl_En_Vase,80B06BD0 +ovl_En_Vb_Ball,80B06CD0 +ovl_En_Viewer,80B07E80 +ovl_En_Vm,80B0AD40 +ovl_En_Wall_Tubo,80B0C600 +ovl_En_Wallmas,80B0CAF0 +ovl_En_Weather_Tag,80B0E500 +ovl_En_Weiyer,80B0F3F0 +ovl_En_Wf,80B10DF0 +ovl_En_Wonder_Item,80B15100 +ovl_En_Wonder_Talk,80B15E30 +ovl_En_Wonder_Talk2,80B164C0 +ovl_En_Wood02,80B16B60 +ovl_En_Xc,80B17D40 +ovl_En_Yabusame_Mark,80B1E4D0 +ovl_En_Yukabyun,80B1EBA0 +ovl_En_Zf,80B1F1B0 +ovl_En_Zl1,80B25CA0 +ovl_En_Zl2,80B29AB0 +ovl_En_Zl3,80B2E1B0 +ovl_En_Zl4,80B36000 +ovl_En_Zo,80B3AA30 +ovl_En_fHG,80B3CFF0 +ovl_End_Title,80B3F920 +ovl_Fishing,80B43A40 +ovl_Item_B_Heart,80B5E5B0 +ovl_Item_Etcetera,80B5E9C0 +ovl_Item_Inbox,80B5F290 +ovl_Item_Ocarina,80B5F3F0 +ovl_Item_Shield,80B5FBC0 +ovl_Magic_Dark,80B605D0 +ovl_Magic_Fire,80B61E20 +ovl_Magic_Wind,80B64120 +ovl_Mir_Ray,80B65E20 +ovl_Obj_Bean,80B676D0 +ovl_Obj_Blockstop,80B69E60 +ovl_Obj_Bombiwa,80B6A000 +ovl_Obj_Comb,80B6A570 +ovl_Obj_Dekujr,80B6ADD0 +ovl_Obj_Elevator,80B6B410 +ovl_Obj_Hamishi,80B6B7D0 +ovl_Obj_Hana,80B6C020 +ovl_Obj_Hsblock,80B6C330 +ovl_Obj_Ice_Poly,80B6C900 +ovl_Obj_Kibako,80B6D2B0 +ovl_Obj_Kibako2,80B6DFB0 +ovl_Obj_Lift,80B6E670 +ovl_Obj_Lightswitch,80B6F090 +ovl_Obj_Makekinsuta,80B704C0 +ovl_Obj_Makeoshihiki,80B70610 +ovl_Obj_Mure,80B70AA0 +ovl_Obj_Mure2,80B71AB0 +ovl_Obj_Mure3,80B724D0 +ovl_Obj_Oshihiki,80B72CA0 +ovl_Obj_Roomtimer,80B74750 +ovl_Obj_Switch,80B749A0 +ovl_Obj_Syokudai,80B76780 +ovl_Obj_Timeblock,80B773D0 +ovl_Obj_Tsubo,80B78020 +ovl_Obj_Warp2block,80B79010 +ovl_Object_Kankyo,80B79B40 +ovl_Oceff_Spot,80B7CDC0 +ovl_Oceff_Storm,80B7DCF0 +ovl_Oceff_Wipe,80B7F8A0 +ovl_Oceff_Wipe2,80B80620 +ovl_Oceff_Wipe3,80B81D90 +ovl_Oceff_Wipe4,80B834E0 +ovl_Shot_Sun,80B844C0 +gameplay_keep, +gameplay_field_keep, +gameplay_dangeon_keep, +gameplay_object_exchange_static, +object_link_boy, +object_link_child, +object_box, +object_human, +object_okuta, +object_poh, +object_wallmaster, +object_dy_obj, +object_firefly, +object_dodongo, +object_fire, +object_niw, +object_tite, +object_reeba, +object_peehat, +object_kingdodongo, +object_horse, +object_zf, +object_goma, +object_zl1, +object_gol, +object_bubble, +object_dodojr, +object_torch2, +object_bl, +object_tp, +object_oA1, +object_st, +object_bw, +object_ei, +object_horse_normal, +object_oB1, +object_o_anime, +object_spot04_objects, +object_ddan_objects, +object_hidan_objects, +object_horse_ganon, +object_oA2, +object_spot00_objects, +object_mb, +object_bombf, +object_sk2, +object_oE1, +object_oE_anime, +object_oE2, +object_ydan_objects, +object_gnd, +object_am, +object_dekubaba, +object_oA3, +object_oA4, +object_oA5, +object_oA6, +object_oA7, +object_jj, +object_oA8, +object_oA9, +object_oB2, +object_oB3, +object_oB4, +object_horse_zelda, +object_opening_demo1, +object_warp1, +object_b_heart, +object_dekunuts, +object_oE3, +object_oE4, +object_menkuri_objects, +object_oE5, +object_oE6, +object_oE7, +object_oE8, +object_oE9, +object_oE10, +object_oE11, +object_oE12, +object_vali, +object_oA10, +object_oA11, +object_mizu_objects, +object_fhg, +object_ossan, +object_mori_hineri1, +object_Bb, +object_toki_objects, +object_yukabyun, +object_zl2, +object_mjin, +object_mjin_flash, +object_mjin_dark, +object_mjin_flame, +object_mjin_ice, +object_mjin_soul, +object_mjin_wind, +object_mjin_oka, +object_haka_objects, +object_spot06_objects, +object_ice_objects, +object_relay_objects, +object_mori_hineri1a, +object_mori_hineri2, +object_mori_hineri2a, +object_mori_objects, +object_mori_tex, +object_spot08_obj, +object_warp2, +object_hata, +object_bird, +object_wood02, +object_lightbox, +object_pu_box, +object_trap, +object_vase, +object_im, +object_ta, +object_tk, +object_xc, +object_vm, +object_bv, +object_hakach_objects, +object_efc_crystal_light, +object_efc_fire_ball, +object_efc_flash, +object_efc_lgt_shower, +object_efc_star_field, +object_god_lgt, +object_light_ring, +object_triforce_spot, +object_medal, +object_bdan_objects, +object_sd, +object_rd, +object_po_sisters, +object_heavy_object, +object_gndd, +object_fd, +object_du, +object_fw, +object_horse_link_child, +object_spot02_objects, +object_haka, +object_ru1, +object_syokudai, +object_fd2, +object_dh, +object_rl, +object_efc_tw, +object_demo_tre_lgt, +object_gi_key, +object_mir_ray, +object_brob, +object_gi_jewel, +object_spot09_obj, +object_spot18_obj, +object_bdoor, +object_spot17_obj, +object_shop_dungen, +object_nb, +object_mo, +object_sb, +object_gi_melody, +object_gi_heart, +object_gi_compass, +object_gi_bosskey, +object_gi_medal, +object_gi_nuts, +object_sa, +object_gi_hearts, +object_gi_arrowcase, +object_gi_bombpouch, +object_in, +object_tr, +object_spot16_obj, +object_oE1s, +object_oE4s, +object_os_anime, +object_gi_bottle, +object_gi_stick, +object_gi_map, +object_oF1d_map, +object_ru2, +object_gi_shield_1, +object_dekujr, +object_gi_magicpot, +object_gi_bomb_1, +object_oF1s, +object_ma2, +object_gi_purse, +object_hni, +object_tw, +object_rr, +object_bxa, +object_anubice, +object_gi_gerudo, +object_gi_arrow, +object_gi_bomb_2, +object_gi_egg, +object_gi_scale, +object_gi_shield_2, +object_gi_hookshot, +object_gi_ocarina, +object_gi_milk, +object_ma1, +object_ganon, +object_sst, +object_ny, +object_fr, +object_gi_pachinko, +object_gi_boomerang, +object_gi_bow, +object_gi_glasses, +object_gi_liquid, +object_ani, +object_demo_6k, +object_gi_shield_3, +object_gi_letter, +object_spot15_obj, +object_jya_obj, +object_gi_clothes, +object_gi_bean, +object_gi_fish, +object_gi_saw, +object_gi_hammer, +object_gi_grass, +object_gi_longsword, +object_spot01_objects, +object_md, +object_km1, +object_kw1, +object_zo, +object_kz, +object_umajump, +object_masterkokiri, +object_masterkokirihead, +object_mastergolon, +object_masterzoora, +object_aob, +object_ik, +object_ahg, +object_cne, +object_gi_niwatori, +object_skj, +object_gi_bottle_letter, +object_bji, +object_bba, +object_gi_ocarina_0, +object_ds, +object_ane, +object_boj, +object_spot03_object, +object_spot07_object, +object_fz, +object_bob, +object_ge1, +object_yabusame_point, +object_gi_boots_2, +object_gi_seed, +object_gnd_magic, +object_d_elevator, +object_d_hsblock, +object_d_lift, +object_mamenoki, +object_goroiwa, +object_toryo, +object_daiku, +object_nwc, +object_blkobj, +object_gm, +object_ms, +object_hs, +object_ingate, +object_lightswitch, +object_kusa, +object_tsubo, +object_gi_gloves, +object_gi_coin, +object_kanban, +object_gjyo_objects, +object_owl, +object_mk, +object_fu, +object_gi_ki_tan_mask, +object_gi_redead_mask, +object_gi_skj_mask, +object_gi_rabit_mask, +object_gi_truth_mask, +object_ganon_objects, +object_siofuki, +object_stream, +object_mm, +object_fa, +object_os, +object_gi_eye_lotion, +object_gi_powder, +object_gi_mushroom, +object_gi_ticketstone, +object_gi_brokensword, +object_js, +object_cs, +object_gi_prescription, +object_gi_bracelet, +object_gi_soldout, +object_gi_frog, +object_mag, +object_door_gerudo, +object_gt, +object_efc_erupc, +object_zl2_anime1, +object_zl2_anime2, +object_gi_golonmask, +object_gi_zoramask, +object_gi_gerudomask, +object_ganon2, +object_ka, +object_ts, +object_zg, +object_gi_hoverboots, +object_gi_m_arrow, +object_ds2, +object_ec, +object_fish, +object_gi_sutaru, +object_gi_goddess, +object_ssh, +object_bigokuta, +object_bg, +object_spot05_objects, +object_spot12_obj, +object_bombiwa, +object_hintnuts, +object_rs, +object_spot00_break, +object_gla, +object_shopnuts, +object_geldb, +object_gr, +object_dog, +object_jya_iron, +object_jya_door, +object_spot01_objects2, +object_spot11_obj, +object_kibako2, +object_dns, +object_dnk, +object_gi_fire, +object_gi_insect, +object_gi_butterfly, +object_gi_ghost, +object_gi_soul, +object_bowl, +object_po_field, +object_demo_kekkai, +object_efc_doughnut, +object_gi_dekupouch, +object_ganon_anime1, +object_ganon_anime2, +object_ganon_anime3, +object_gi_rupy, +object_spot01_matoya, +object_spot01_matoyab, +object_po_composer, +object_mu, +object_wf, +object_skb, +object_gj, +object_geff, +object_haka_door, +object_gs, +object_ps, +object_bwall, +object_crow, +object_cow, +object_cob, +object_gi_sword_1, +object_door_killer, +object_ouke_haka, +object_timeblock, +object_zl4, +g_pn_01, +g_pn_02, +g_pn_03, +g_pn_04, +g_pn_05, +g_pn_06, +g_pn_07, +g_pn_08, +g_pn_09, +g_pn_10, +g_pn_11, +g_pn_12, +g_pn_13, +g_pn_14, +g_pn_15, +g_pn_16, +g_pn_17, +g_pn_18, +g_pn_19, +g_pn_20, +g_pn_21, +g_pn_22, +g_pn_23, +g_pn_24, +g_pn_25, +g_pn_26, +g_pn_27, +g_pn_28, +g_pn_29, +g_pn_30, +g_pn_31, +g_pn_32, +g_pn_33, +g_pn_34, +g_pn_35, +g_pn_36, +g_pn_37, +g_pn_38, +g_pn_39, +g_pn_40, +g_pn_41, +g_pn_42, +g_pn_43, +g_pn_44, +g_pn_45, +g_pn_46, +g_pn_47, +g_pn_48, +g_pn_49, +g_pn_50, +g_pn_51, +g_pn_52, +g_pn_53, +g_pn_54, +g_pn_55, +g_pn_56, +g_pn_57, +z_select_static, +nintendo_rogo_static, +title_static, +parameter_static, +vr_fine0_static, +vr_fine0_pal_static, +vr_fine1_static, +vr_fine1_pal_static, +vr_fine2_static, +vr_fine2_pal_static, +vr_fine3_static, +vr_fine3_pal_static, +vr_cloud0_static, +vr_cloud0_pal_static, +vr_cloud1_static, +vr_cloud1_pal_static, +vr_cloud2_static, +vr_cloud2_pal_static, +vr_cloud3_static, +vr_cloud3_pal_static, +vr_holy0_static, +vr_holy0_pal_static, +vr_holy1_static, +vr_holy1_pal_static, +vr_MDVR_static, +vr_MDVR_pal_static, +vr_MNVR_static, +vr_MNVR_pal_static, +vr_RUVR_static, +vr_RUVR_pal_static, +vr_LHVR_static, +vr_LHVR_pal_static, +vr_KHVR_static, +vr_KHVR_pal_static, +vr_K3VR_static, +vr_K3VR_pal_static, +vr_K4VR_static, +vr_K4VR_pal_static, +vr_K5VR_static, +vr_K5VR_pal_static, +vr_SP1a_static, +vr_SP1a_pal_static, +vr_MLVR_static, +vr_MLVR_pal_static, +vr_KKRVR_static, +vr_KKRVR_pal_static, +vr_KR3VR_static, +vr_KR3VR_pal_static, +vr_IPVR_static, +vr_IPVR_pal_static, +vr_KSVR_static, +vr_KSVR_pal_static, +vr_GLVR_static, +vr_GLVR_pal_static, +vr_ZRVR_static, +vr_ZRVR_pal_static, +vr_DGVR_static, +vr_DGVR_pal_static, +vr_ALVR_static, +vr_ALVR_pal_static, +vr_NSVR_static, +vr_NSVR_pal_static, +vr_LBVR_static, +vr_LBVR_pal_static, +vr_TTVR_static, +vr_TTVR_pal_static, +vr_FCVR_static, +vr_FCVR_pal_static, +elf_message_field, +elf_message_ydan, +ydan_scene, +ydan_room_0, +ydan_room_1, +ydan_room_2, +ydan_room_3, +ydan_room_4, +ydan_room_5, +ydan_room_6, +ydan_room_7, +ydan_room_8, +ydan_room_9, +ydan_room_10, +ydan_room_11, +ddan_scene, +ddan_room_0, +ddan_room_1, +ddan_room_2, +ddan_room_3, +ddan_room_4, +ddan_room_5, +ddan_room_6, +ddan_room_7, +ddan_room_8, +ddan_room_9, +ddan_room_10, +ddan_room_11, +ddan_room_12, +ddan_room_13, +ddan_room_14, +ddan_room_15, +ddan_room_16, +bdan_scene, +bdan_room_0, +bdan_room_1, +bdan_room_2, +bdan_room_3, +bdan_room_4, +bdan_room_5, +bdan_room_6, +bdan_room_7, +bdan_room_8, +bdan_room_9, +bdan_room_10, +bdan_room_11, +bdan_room_12, +bdan_room_13, +bdan_room_14, +bdan_room_15, +Bmori1_scene, +Bmori1_room_0, +Bmori1_room_1, +Bmori1_room_2, +Bmori1_room_3, +Bmori1_room_4, +Bmori1_room_5, +Bmori1_room_6, +Bmori1_room_7, +Bmori1_room_8, +Bmori1_room_9, +Bmori1_room_10, +Bmori1_room_11, +Bmori1_room_12, +Bmori1_room_13, +Bmori1_room_14, +Bmori1_room_15, +Bmori1_room_16, +Bmori1_room_17, +Bmori1_room_18, +Bmori1_room_19, +Bmori1_room_20, +Bmori1_room_21, +Bmori1_room_22, +HIDAN_scene, +HIDAN_room_0, +HIDAN_room_1, +HIDAN_room_2, +HIDAN_room_3, +HIDAN_room_4, +HIDAN_room_5, +HIDAN_room_6, +HIDAN_room_7, +HIDAN_room_8, +HIDAN_room_9, +HIDAN_room_10, +HIDAN_room_11, +HIDAN_room_12, +HIDAN_room_13, +HIDAN_room_14, +HIDAN_room_15, +HIDAN_room_16, +HIDAN_room_17, +HIDAN_room_18, +HIDAN_room_19, +HIDAN_room_20, +HIDAN_room_21, +HIDAN_room_22, +HIDAN_room_23, +HIDAN_room_24, +HIDAN_room_25, +HIDAN_room_26, +MIZUsin_scene, +MIZUsin_room_0, +MIZUsin_room_1, +MIZUsin_room_2, +MIZUsin_room_3, +MIZUsin_room_4, +MIZUsin_room_5, +MIZUsin_room_6, +MIZUsin_room_7, +MIZUsin_room_8, +MIZUsin_room_9, +MIZUsin_room_10, +MIZUsin_room_11, +MIZUsin_room_12, +MIZUsin_room_13, +MIZUsin_room_14, +MIZUsin_room_15, +MIZUsin_room_16, +MIZUsin_room_17, +MIZUsin_room_18, +MIZUsin_room_19, +MIZUsin_room_20, +MIZUsin_room_21, +MIZUsin_room_22, +jyasinzou_scene, +jyasinzou_room_0, +jyasinzou_room_1, +jyasinzou_room_2, +jyasinzou_room_3, +jyasinzou_room_4, +jyasinzou_room_5, +jyasinzou_room_6, +jyasinzou_room_7, +jyasinzou_room_8, +jyasinzou_room_9, +jyasinzou_room_10, +jyasinzou_room_11, +jyasinzou_room_12, +jyasinzou_room_13, +jyasinzou_room_14, +jyasinzou_room_15, +jyasinzou_room_16, +jyasinzou_room_17, +jyasinzou_room_18, +jyasinzou_room_19, +jyasinzou_room_20, +jyasinzou_room_21, +jyasinzou_room_22, +jyasinzou_room_23, +jyasinzou_room_24, +jyasinzou_room_25, +jyasinzou_room_26, +jyasinzou_room_27, +jyasinzou_room_28, +HAKAdan_scene, +HAKAdan_room_0, +HAKAdan_room_1, +HAKAdan_room_2, +HAKAdan_room_3, +HAKAdan_room_4, +HAKAdan_room_5, +HAKAdan_room_6, +HAKAdan_room_7, +HAKAdan_room_8, +HAKAdan_room_9, +HAKAdan_room_10, +HAKAdan_room_11, +HAKAdan_room_12, +HAKAdan_room_13, +HAKAdan_room_14, +HAKAdan_room_15, +HAKAdan_room_16, +HAKAdan_room_17, +HAKAdan_room_18, +HAKAdan_room_19, +HAKAdan_room_20, +HAKAdan_room_21, +HAKAdan_room_22, +HAKAdanCH_scene, +HAKAdanCH_room_0, +HAKAdanCH_room_1, +HAKAdanCH_room_2, +HAKAdanCH_room_3, +HAKAdanCH_room_4, +HAKAdanCH_room_5, +HAKAdanCH_room_6, +ice_doukutu_scene, +ice_doukutu_room_0, +ice_doukutu_room_1, +ice_doukutu_room_2, +ice_doukutu_room_3, +ice_doukutu_room_4, +ice_doukutu_room_5, +ice_doukutu_room_6, +ice_doukutu_room_7, +ice_doukutu_room_8, +ice_doukutu_room_9, +ice_doukutu_room_10, +ice_doukutu_room_11, +men_scene, +men_room_0, +men_room_1, +men_room_2, +men_room_3, +men_room_4, +men_room_5, +men_room_6, +men_room_7, +men_room_8, +men_room_9, +men_room_10, +ganontika_scene, +ganontika_room_0, +ganontika_room_1, +ganontika_room_2, +ganontika_room_3, +ganontika_room_4, +ganontika_room_5, +ganontika_room_6, +ganontika_room_7, +ganontika_room_8, +ganontika_room_9, +ganontika_room_10, +ganontika_room_11, +ganontika_room_12, +ganontika_room_13, +ganontika_room_14, +ganontika_room_15, +ganontika_room_16, +ganontika_room_17, +ganontika_room_18, +ganontika_room_19, +spot00_scene, +spot00_room_0, +spot01_scene, +spot01_room_0, +spot02_scene, +spot02_room_0, +spot02_room_1, +spot03_scene, +spot03_room_0, +spot03_room_1, +spot04_scene, +spot04_room_0, +spot04_room_1, +spot04_room_2, +spot05_scene, +spot05_room_0, +spot06_scene, +spot06_room_0, +spot07_scene, +spot07_room_0, +spot07_room_1, +spot08_scene, +spot08_room_0, +spot09_scene, +spot09_room_0, +spot10_scene, +spot10_room_0, +spot10_room_1, +spot10_room_2, +spot10_room_3, +spot10_room_4, +spot10_room_5, +spot10_room_6, +spot10_room_7, +spot10_room_8, +spot10_room_9, +spot11_scene, +spot11_room_0, +spot12_scene, +spot12_room_0, +spot12_room_1, +spot13_scene, +spot13_room_0, +spot13_room_1, +spot15_scene, +spot15_room_0, +spot16_scene, +spot16_room_0, +spot17_scene, +spot17_room_0, +spot17_room_1, +spot18_scene, +spot18_room_0, +spot18_room_1, +spot18_room_2, +spot18_room_3, +market_day_scene, +market_day_room_0, +market_night_scene, +market_night_room_0, +kenjyanoma_scene, +kenjyanoma_room_0, +tokinoma_scene, +tokinoma_room_0, +tokinoma_room_1, +link_home_scene, +link_home_room_0, +kokiri_shop_scene, +kokiri_shop_room_0, +kokiri_home_scene, +kokiri_home_room_0, +kakusiana_scene, +kakusiana_room_0, +kakusiana_room_1, +kakusiana_room_2, +kakusiana_room_3, +kakusiana_room_4, +kakusiana_room_5, +kakusiana_room_6, +kakusiana_room_7, +kakusiana_room_8, +kakusiana_room_9, +kakusiana_room_10, +kakusiana_room_11, +kakusiana_room_12, +kakusiana_room_13, +entra_scene, +entra_room_0, +moribossroom_scene, +moribossroom_room_0, +moribossroom_room_1, +syatekijyou_scene, +syatekijyou_room_0, +shop1_scene, +shop1_room_0, +hairal_niwa_scene, +hairal_niwa_room_0, +ganon_tou_scene, +ganon_tou_room_0, +market_alley_scene, +market_alley_room_0, +spot20_scene, +spot20_room_0, +market_ruins_scene, +market_ruins_room_0, +entra_n_scene, +entra_n_room_0, +enrui_scene, +enrui_room_0, +market_alley_n_scene, +market_alley_n_room_0, +hiral_demo_scene, +hiral_demo_room_0, +kokiri_home3_scene, +kokiri_home3_room_0, +malon_stable_scene, +malon_stable_room_0, +kakariko_scene, +kakariko_room_0, +bdan_boss_scene, +bdan_boss_room_0, +bdan_boss_room_1, +FIRE_bs_scene, +FIRE_bs_room_0, +FIRE_bs_room_1, +hut_scene, +hut_room_0, +daiyousei_izumi_scene, +daiyousei_izumi_room_0, +hakaana_scene, +hakaana_room_0, +yousei_izumi_tate_scene, +yousei_izumi_tate_room_0, +yousei_izumi_yoko_scene, +yousei_izumi_yoko_room_0, +golon_scene, +golon_room_0, +zoora_scene, +zoora_room_0, +drag_scene, +drag_room_0, +alley_shop_scene, +alley_shop_room_0, +night_shop_scene, +night_shop_room_0, +impa_scene, +impa_room_0, +labo_scene, +labo_room_0, +tent_scene, +tent_room_0, +nakaniwa_scene, +nakaniwa_room_0, +ddan_boss_scene, +ddan_boss_room_0, +ddan_boss_room_1, +ydan_boss_scene, +ydan_boss_room_0, +ydan_boss_room_1, +HAKAdan_bs_scene, +HAKAdan_bs_room_0, +HAKAdan_bs_room_1, +MIZUsin_bs_scene, +MIZUsin_bs_room_0, +MIZUsin_bs_room_1, +ganon_scene, +ganon_room_0, +ganon_room_1, +ganon_room_2, +ganon_room_3, +ganon_room_4, +ganon_room_5, +ganon_room_6, +ganon_room_7, +ganon_room_8, +ganon_room_9, +ganon_boss_scene, +ganon_boss_room_0, +jyasinboss_scene, +jyasinboss_room_0, +jyasinboss_room_1, +jyasinboss_room_2, +jyasinboss_room_3, +kokiri_home4_scene, +kokiri_home4_room_0, +kokiri_home5_scene, +kokiri_home5_room_0, +ganon_final_scene, +ganon_final_room_0, +kakariko3_scene, +kakariko3_room_0, +hakasitarelay_scene, +hakasitarelay_room_0, +hakasitarelay_room_1, +hakasitarelay_room_2, +hakasitarelay_room_3, +hakasitarelay_room_4, +hakasitarelay_room_5, +hakasitarelay_room_6, +shrine_scene, +shrine_room_0, +turibori_scene, +turibori_room_0, +shrine_n_scene, +shrine_n_room_0, +shrine_r_scene, +shrine_r_room_0, +hakaana2_scene, +hakaana2_room_0, +gerudoway_scene, +gerudoway_room_0, +gerudoway_room_1, +gerudoway_room_2, +gerudoway_room_3, +gerudoway_room_4, +gerudoway_room_5, +hairal_niwa_n_scene, +hairal_niwa_n_room_0, +bowling_scene, +bowling_room_0, +hakaana_ouke_scene, +hakaana_ouke_room_0, +hakaana_ouke_room_1, +hakaana_ouke_room_2, +hylia_labo_scene, +hylia_labo_room_0, +souko_scene, +souko_room_0, +souko_room_1, +souko_room_2, +miharigoya_scene, +miharigoya_room_0, +mahouya_scene, +mahouya_room_0, +takaraya_scene, +takaraya_room_0, +takaraya_room_1, +takaraya_room_2, +takaraya_room_3, +takaraya_room_4, +takaraya_room_5, +takaraya_room_6, +ganon_sonogo_scene, +ganon_sonogo_room_0, +ganon_sonogo_room_1, +ganon_sonogo_room_2, +ganon_sonogo_room_3, +ganon_sonogo_room_4, +ganon_demo_scene, +ganon_demo_room_0, +face_shop_scene, +face_shop_room_0, +kinsuta_scene, +kinsuta_room_0, +ganontikasonogo_scene, +ganontikasonogo_room_0, +ganontikasonogo_room_1, +bump_texture_static, +anime_model_1_static, +anime_model_2_static, +anime_model_3_static, +anime_model_4_static, +anime_model_5_static, +anime_model_6_static, +anime_texture_1_static, +anime_texture_2_static, +anime_texture_3_static, +anime_texture_4_static, +anime_texture_5_static, +anime_texture_6_static, +softsprite_matrix_static, diff --git a/baseroms/gc-eu/config.yml b/baseroms/gc-eu/config.yml new file mode 100644 index 000000000..ceb85239b --- /dev/null +++ b/baseroms/gc-eu/config.yml @@ -0,0 +1,8 @@ +dmadata_start: 0x7170 +variables: + gMtxClear: 0x800FBC20 + sNesMessageEntryTable: 0x80107810 + sGerMessageEntryTable: 0x8010BA38 + sFraMessageEntryTable: 0x8010DB48 + sStaffMessageEntryTable: 0x8010FC58 + sNesMessageEntryTablePtr: 0x8010FDE0 diff --git a/baseroms/gc-eu/dmadata_names.txt b/baseroms/gc-eu/dmadata_names.txt deleted file mode 100644 index cfe5c4689..000000000 --- a/baseroms/gc-eu/dmadata_names.txt +++ /dev/null @@ -1,1510 +0,0 @@ -makerom -boot -dmadata -Audiobank -Audioseq -Audiotable -link_animetion -icon_item_static -icon_item_24_static -icon_item_field_static -icon_item_dungeon_static -icon_item_gameover_static -icon_item_nes_static -icon_item_ger_static -icon_item_fra_static -item_name_static -map_name_static -do_action_static -message_static -message_texture_static -nes_font_static -nes_message_data_static -ger_message_data_static -fra_message_data_static -staff_message_data_static -map_grand_static -map_48x85_static -map_i_static -code -ovl_title -ovl_select -ovl_opening -ovl_file_choose -ovl_kaleido_scope -ovl_player_actor -ovl_map_mark_data -ovl_En_Test -ovl_Arms_Hook -ovl_Arrow_Fire -ovl_Arrow_Ice -ovl_Arrow_Light -ovl_Bg_Bdan_Objects -ovl_Bg_Bdan_Switch -ovl_Bg_Bom_Guard -ovl_Bg_Bombwall -ovl_Bg_Bowl_Wall -ovl_Bg_Breakwall -ovl_Bg_Ddan_Jd -ovl_Bg_Ddan_Kd -ovl_Bg_Dodoago -ovl_Bg_Dy_Yoseizo -ovl_Bg_Ganon_Otyuka -ovl_Bg_Gate_Shutter -ovl_Bg_Gjyo_Bridge -ovl_Bg_Gnd_Darkmeiro -ovl_Bg_Gnd_Firemeiro -ovl_Bg_Gnd_Iceblock -ovl_Bg_Gnd_Nisekabe -ovl_Bg_Gnd_Soulmeiro -ovl_Bg_Haka -ovl_Bg_Haka_Gate -ovl_Bg_Haka_Huta -ovl_Bg_Haka_Megane -ovl_Bg_Haka_MeganeBG -ovl_Bg_Haka_Sgami -ovl_Bg_Haka_Ship -ovl_Bg_Haka_Trap -ovl_Bg_Haka_Tubo -ovl_Bg_Haka_Water -ovl_Bg_Haka_Zou -ovl_Bg_Heavy_Block -ovl_Bg_Hidan_Curtain -ovl_Bg_Hidan_Dalm -ovl_Bg_Hidan_Firewall -ovl_Bg_Hidan_Fslift -ovl_Bg_Hidan_Fwbig -ovl_Bg_Hidan_Hamstep -ovl_Bg_Hidan_Hrock -ovl_Bg_Hidan_Kousi -ovl_Bg_Hidan_Kowarerukabe -ovl_Bg_Hidan_Rock -ovl_Bg_Hidan_Rsekizou -ovl_Bg_Hidan_Sekizou -ovl_Bg_Hidan_Sima -ovl_Bg_Hidan_Syoku -ovl_Bg_Ice_Objects -ovl_Bg_Ice_Shelter -ovl_Bg_Ice_Shutter -ovl_Bg_Ice_Turara -ovl_Bg_Ingate -ovl_Bg_Jya_1flift -ovl_Bg_Jya_Amishutter -ovl_Bg_Jya_Bigmirror -ovl_Bg_Jya_Block -ovl_Bg_Jya_Bombchuiwa -ovl_Bg_Jya_Bombiwa -ovl_Bg_Jya_Cobra -ovl_Bg_Jya_Goroiwa -ovl_Bg_Jya_Haheniron -ovl_Bg_Jya_Ironobj -ovl_Bg_Jya_Kanaami -ovl_Bg_Jya_Lift -ovl_Bg_Jya_Megami -ovl_Bg_Jya_Zurerukabe -ovl_Bg_Menkuri_Eye -ovl_Bg_Menkuri_Kaiten -ovl_Bg_Menkuri_Nisekabe -ovl_Bg_Mizu_Bwall -ovl_Bg_Mizu_Movebg -ovl_Bg_Mizu_Shutter -ovl_Bg_Mizu_Uzu -ovl_Bg_Mizu_Water -ovl_Bg_Mjin -ovl_Bg_Mori_Bigst -ovl_Bg_Mori_Elevator -ovl_Bg_Mori_Hashigo -ovl_Bg_Mori_Hashira4 -ovl_Bg_Mori_Hineri -ovl_Bg_Mori_Idomizu -ovl_Bg_Mori_Kaitenkabe -ovl_Bg_Mori_Rakkatenjo -ovl_Bg_Po_Event -ovl_Bg_Po_Syokudai -ovl_Bg_Pushbox -ovl_Bg_Relay_Objects -ovl_Bg_Spot00_Break -ovl_Bg_Spot00_Hanebasi -ovl_Bg_Spot01_Fusya -ovl_Bg_Spot01_Idohashira -ovl_Bg_Spot01_Idomizu -ovl_Bg_Spot01_Idosoko -ovl_Bg_Spot01_Objects2 -ovl_Bg_Spot02_Objects -ovl_Bg_Spot03_Taki -ovl_Bg_Spot05_Soko -ovl_Bg_Spot06_Objects -ovl_Bg_Spot07_Taki -ovl_Bg_Spot08_Bakudankabe -ovl_Bg_Spot08_Iceblock -ovl_Bg_Spot09_Obj -ovl_Bg_Spot11_Bakudankabe -ovl_Bg_Spot11_Oasis -ovl_Bg_Spot12_Gate -ovl_Bg_Spot12_Saku -ovl_Bg_Spot15_Rrbox -ovl_Bg_Spot15_Saku -ovl_Bg_Spot16_Bombstone -ovl_Bg_Spot16_Doughnut -ovl_Bg_Spot17_Bakudankabe -ovl_Bg_Spot17_Funen -ovl_Bg_Spot18_Basket -ovl_Bg_Spot18_Futa -ovl_Bg_Spot18_Obj -ovl_Bg_Spot18_Shutter -ovl_Bg_Sst_Floor -ovl_Bg_Toki_Hikari -ovl_Bg_Toki_Swd -ovl_Bg_Treemouth -ovl_Bg_Umajump -ovl_Bg_Vb_Sima -ovl_Bg_Ydan_Hasi -ovl_Bg_Ydan_Maruta -ovl_Bg_Ydan_Sp -ovl_Bg_Zg -ovl_Boss_Dodongo -ovl_Boss_Fd -ovl_Boss_Fd2 -ovl_Boss_Ganon -ovl_Boss_Ganon2 -ovl_Boss_Ganondrof -ovl_Boss_Goma -ovl_Boss_Mo -ovl_Boss_Sst -ovl_Boss_Tw -ovl_Boss_Va -ovl_Demo_6K -ovl_Demo_Du -ovl_Demo_Ec -ovl_Demo_Effect -ovl_Demo_Ext -ovl_Demo_Geff -ovl_Demo_Gj -ovl_Demo_Go -ovl_Demo_Gt -ovl_Demo_Ik -ovl_Demo_Im -ovl_Demo_Kankyo -ovl_Demo_Kekkai -ovl_Demo_Sa -ovl_Demo_Shd -ovl_Demo_Tre_Lgt -ovl_Door_Ana -ovl_Door_Gerudo -ovl_Door_Killer -ovl_Door_Shutter -ovl_Door_Toki -ovl_Door_Warp1 -ovl_Efc_Erupc -ovl_Eff_Dust -ovl_Effect_Ss_Blast -ovl_Effect_Ss_Bomb -ovl_Effect_Ss_Bomb2 -ovl_Effect_Ss_Bubble -ovl_Effect_Ss_D_Fire -ovl_Effect_Ss_Dead_Db -ovl_Effect_Ss_Dead_Dd -ovl_Effect_Ss_Dead_Ds -ovl_Effect_Ss_Dead_Sound -ovl_Effect_Ss_Dt_Bubble -ovl_Effect_Ss_Dust -ovl_Effect_Ss_En_Fire -ovl_Effect_Ss_En_Ice -ovl_Effect_Ss_Extra -ovl_Effect_Ss_Fcircle -ovl_Effect_Ss_Fhg_Flash -ovl_Effect_Ss_Fire_Tail -ovl_Effect_Ss_G_Fire -ovl_Effect_Ss_G_Magma -ovl_Effect_Ss_G_Magma2 -ovl_Effect_Ss_G_Ripple -ovl_Effect_Ss_G_Spk -ovl_Effect_Ss_G_Splash -ovl_Effect_Ss_Hahen -ovl_Effect_Ss_HitMark -ovl_Effect_Ss_Ice_Piece -ovl_Effect_Ss_Ice_Smoke -ovl_Effect_Ss_K_Fire -ovl_Effect_Ss_Kakera -ovl_Effect_Ss_KiraKira -ovl_Effect_Ss_Lightning -ovl_Effect_Ss_Sibuki -ovl_Effect_Ss_Sibuki2 -ovl_Effect_Ss_Solder_Srch_Ball -ovl_Effect_Ss_Stick -ovl_Effect_Ss_Stone1 -ovl_Elf_Msg -ovl_Elf_Msg2 -ovl_En_Am -ovl_En_Ani -ovl_En_Anubice -ovl_En_Anubice_Fire -ovl_En_Anubice_Tag -ovl_En_Arow_Trap -ovl_En_Arrow -ovl_En_Attack_Niw -ovl_En_Ba -ovl_En_Bb -ovl_En_Bdfire -ovl_En_Bigokuta -ovl_En_Bili -ovl_En_Bird -ovl_En_Blkobj -ovl_En_Bom -ovl_En_Bom_Bowl_Man -ovl_En_Bom_Bowl_Pit -ovl_En_Bom_Chu -ovl_En_Bombf -ovl_En_Boom -ovl_En_Box -ovl_En_Brob -ovl_En_Bubble -ovl_En_Butte -ovl_En_Bw -ovl_En_Bx -ovl_En_Changer -ovl_En_Clear_Tag -ovl_En_Cow -ovl_En_Crow -ovl_En_Cs -ovl_En_Daiku -ovl_En_Daiku_Kakariko -ovl_En_Dekubaba -ovl_En_Dekunuts -ovl_En_Dh -ovl_En_Dha -ovl_En_Diving_Game -ovl_En_Dns -ovl_En_Dnt_Demo -ovl_En_Dnt_Jiji -ovl_En_Dnt_Nomal -ovl_En_Dodojr -ovl_En_Dodongo -ovl_En_Dog -ovl_En_Door -ovl_En_Ds -ovl_En_Du -ovl_En_Dy_Extra -ovl_En_Eg -ovl_En_Eiyer -ovl_En_Elf -ovl_En_Encount1 -ovl_En_Encount2 -ovl_En_Ex_Item -ovl_En_Ex_Ruppy -ovl_En_Fd -ovl_En_Fd_Fire -ovl_En_Fhg_Fire -ovl_En_Fire_Rock -ovl_En_Firefly -ovl_En_Fish -ovl_En_Floormas -ovl_En_Fr -ovl_En_Fu -ovl_En_Fw -ovl_En_Fz -ovl_En_G_Switch -ovl_En_Ganon_Mant -ovl_En_Ganon_Organ -ovl_En_Gb -ovl_En_Ge1 -ovl_En_Ge2 -ovl_En_Ge3 -ovl_En_GeldB -ovl_En_GirlA -ovl_En_Gm -ovl_En_Go -ovl_En_Go2 -ovl_En_Goma -ovl_En_Goroiwa -ovl_En_Gs -ovl_En_Guest -ovl_En_Hata -ovl_En_Heishi1 -ovl_En_Heishi2 -ovl_En_Heishi3 -ovl_En_Heishi4 -ovl_En_Hintnuts -ovl_En_Holl -ovl_En_Honotrap -ovl_En_Horse -ovl_En_Horse_Game_Check -ovl_En_Horse_Ganon -ovl_En_Horse_Link_Child -ovl_En_Horse_Normal -ovl_En_Horse_Zelda -ovl_En_Hs -ovl_En_Hs2 -ovl_En_Hy -ovl_En_Ice_Hono -ovl_En_Ik -ovl_En_In -ovl_En_Insect -ovl_En_Ishi -ovl_En_It -ovl_En_Jj -ovl_En_Js -ovl_En_Jsjutan -ovl_En_Kakasi -ovl_En_Kakasi2 -ovl_En_Kakasi3 -ovl_En_Kanban -ovl_En_Karebaba -ovl_En_Ko -ovl_En_Kusa -ovl_En_Kz -ovl_En_Light -ovl_En_Lightbox -ovl_En_M_Fire1 -ovl_En_M_Thunder -ovl_En_Ma1 -ovl_En_Ma2 -ovl_En_Ma3 -ovl_En_Mag -ovl_En_Mb -ovl_En_Md -ovl_En_Mk -ovl_En_Mm -ovl_En_Mm2 -ovl_En_Ms -ovl_En_Mu -ovl_En_Nb -ovl_En_Niw -ovl_En_Niw_Girl -ovl_En_Niw_Lady -ovl_En_Nutsball -ovl_En_Nwc -ovl_En_Ny -ovl_En_OE2 -ovl_En_Okarina_Effect -ovl_En_Okarina_Tag -ovl_En_Okuta -ovl_En_Ossan -ovl_En_Owl -ovl_En_Part -ovl_En_Peehat -ovl_En_Po_Desert -ovl_En_Po_Field -ovl_En_Po_Relay -ovl_En_Po_Sisters -ovl_En_Poh -ovl_En_Pu_box -ovl_En_Rd -ovl_En_Reeba -ovl_En_River_Sound -ovl_En_Rl -ovl_En_Rr -ovl_En_Ru1 -ovl_En_Ru2 -ovl_En_Sa -ovl_En_Sb -ovl_En_Scene_Change -ovl_En_Sda -ovl_En_Shopnuts -ovl_En_Si -ovl_En_Siofuki -ovl_En_Skb -ovl_En_Skj -ovl_En_Skjneedle -ovl_En_Ssh -ovl_En_St -ovl_En_Sth -ovl_En_Stream -ovl_En_Sw -ovl_En_Syateki_Itm -ovl_En_Syateki_Man -ovl_En_Syateki_Niw -ovl_En_Ta -ovl_En_Takara_Man -ovl_En_Tana -ovl_En_Tg -ovl_En_Tite -ovl_En_Tk -ovl_En_Torch -ovl_En_Torch2 -ovl_En_Toryo -ovl_En_Tp -ovl_En_Tr -ovl_En_Trap -ovl_En_Tubo_Trap -ovl_En_Vali -ovl_En_Vase -ovl_En_Vb_Ball -ovl_En_Viewer -ovl_En_Vm -ovl_En_Wall_Tubo -ovl_En_Wallmas -ovl_En_Weather_Tag -ovl_En_Weiyer -ovl_En_Wf -ovl_En_Wonder_Item -ovl_En_Wonder_Talk -ovl_En_Wonder_Talk2 -ovl_En_Wood02 -ovl_En_Xc -ovl_En_Yabusame_Mark -ovl_En_Yukabyun -ovl_En_Zf -ovl_En_Zl1 -ovl_En_Zl2 -ovl_En_Zl3 -ovl_En_Zl4 -ovl_En_Zo -ovl_En_fHG -ovl_End_Title -ovl_Fishing -ovl_Item_B_Heart -ovl_Item_Etcetera -ovl_Item_Inbox -ovl_Item_Ocarina -ovl_Item_Shield -ovl_Magic_Dark -ovl_Magic_Fire -ovl_Magic_Wind -ovl_Mir_Ray -ovl_Obj_Bean -ovl_Obj_Blockstop -ovl_Obj_Bombiwa -ovl_Obj_Comb -ovl_Obj_Dekujr -ovl_Obj_Elevator -ovl_Obj_Hamishi -ovl_Obj_Hana -ovl_Obj_Hsblock -ovl_Obj_Ice_Poly -ovl_Obj_Kibako -ovl_Obj_Kibako2 -ovl_Obj_Lift -ovl_Obj_Lightswitch -ovl_Obj_Makekinsuta -ovl_Obj_Makeoshihiki -ovl_Obj_Mure -ovl_Obj_Mure2 -ovl_Obj_Mure3 -ovl_Obj_Oshihiki -ovl_Obj_Roomtimer -ovl_Obj_Switch -ovl_Obj_Syokudai -ovl_Obj_Timeblock -ovl_Obj_Tsubo -ovl_Obj_Warp2block -ovl_Object_Kankyo -ovl_Oceff_Spot -ovl_Oceff_Storm -ovl_Oceff_Wipe -ovl_Oceff_Wipe2 -ovl_Oceff_Wipe3 -ovl_Oceff_Wipe4 -ovl_Shot_Sun -gameplay_keep -gameplay_field_keep -gameplay_dangeon_keep -gameplay_object_exchange_static -object_link_boy -object_link_child -object_box -object_human -object_okuta -object_poh -object_wallmaster -object_dy_obj -object_firefly -object_dodongo -object_fire -object_niw -object_tite -object_reeba -object_peehat -object_kingdodongo -object_horse -object_zf -object_goma -object_zl1 -object_gol -object_bubble -object_dodojr -object_torch2 -object_bl -object_tp -object_oA1 -object_st -object_bw -object_ei -object_horse_normal -object_oB1 -object_o_anime -object_spot04_objects -object_ddan_objects -object_hidan_objects -object_horse_ganon -object_oA2 -object_spot00_objects -object_mb -object_bombf -object_sk2 -object_oE1 -object_oE_anime -object_oE2 -object_ydan_objects -object_gnd -object_am -object_dekubaba -object_oA3 -object_oA4 -object_oA5 -object_oA6 -object_oA7 -object_jj -object_oA8 -object_oA9 -object_oB2 -object_oB3 -object_oB4 -object_horse_zelda -object_opening_demo1 -object_warp1 -object_b_heart -object_dekunuts -object_oE3 -object_oE4 -object_menkuri_objects -object_oE5 -object_oE6 -object_oE7 -object_oE8 -object_oE9 -object_oE10 -object_oE11 -object_oE12 -object_vali -object_oA10 -object_oA11 -object_mizu_objects -object_fhg -object_ossan -object_mori_hineri1 -object_Bb -object_toki_objects -object_yukabyun -object_zl2 -object_mjin -object_mjin_flash -object_mjin_dark -object_mjin_flame -object_mjin_ice -object_mjin_soul -object_mjin_wind -object_mjin_oka -object_haka_objects -object_spot06_objects -object_ice_objects -object_relay_objects -object_mori_hineri1a -object_mori_hineri2 -object_mori_hineri2a -object_mori_objects -object_mori_tex -object_spot08_obj -object_warp2 -object_hata -object_bird -object_wood02 -object_lightbox -object_pu_box -object_trap -object_vase -object_im -object_ta -object_tk -object_xc -object_vm -object_bv -object_hakach_objects -object_efc_crystal_light -object_efc_fire_ball -object_efc_flash -object_efc_lgt_shower -object_efc_star_field -object_god_lgt -object_light_ring -object_triforce_spot -object_medal -object_bdan_objects -object_sd -object_rd -object_po_sisters -object_heavy_object -object_gndd -object_fd -object_du -object_fw -object_horse_link_child -object_spot02_objects -object_haka -object_ru1 -object_syokudai -object_fd2 -object_dh -object_rl -object_efc_tw -object_demo_tre_lgt -object_gi_key -object_mir_ray -object_brob -object_gi_jewel -object_spot09_obj -object_spot18_obj -object_bdoor -object_spot17_obj -object_shop_dungen -object_nb -object_mo -object_sb -object_gi_melody -object_gi_heart -object_gi_compass -object_gi_bosskey -object_gi_medal -object_gi_nuts -object_sa -object_gi_hearts -object_gi_arrowcase -object_gi_bombpouch -object_in -object_tr -object_spot16_obj -object_oE1s -object_oE4s -object_os_anime -object_gi_bottle -object_gi_stick -object_gi_map -object_oF1d_map -object_ru2 -object_gi_shield_1 -object_dekujr -object_gi_magicpot -object_gi_bomb_1 -object_oF1s -object_ma2 -object_gi_purse -object_hni -object_tw -object_rr -object_bxa -object_anubice -object_gi_gerudo -object_gi_arrow -object_gi_bomb_2 -object_gi_egg -object_gi_scale -object_gi_shield_2 -object_gi_hookshot -object_gi_ocarina -object_gi_milk -object_ma1 -object_ganon -object_sst -object_ny -object_fr -object_gi_pachinko -object_gi_boomerang -object_gi_bow -object_gi_glasses -object_gi_liquid -object_ani -object_demo_6k -object_gi_shield_3 -object_gi_letter -object_spot15_obj -object_jya_obj -object_gi_clothes -object_gi_bean -object_gi_fish -object_gi_saw -object_gi_hammer -object_gi_grass -object_gi_longsword -object_spot01_objects -object_md -object_km1 -object_kw1 -object_zo -object_kz -object_umajump -object_masterkokiri -object_masterkokirihead -object_mastergolon -object_masterzoora -object_aob -object_ik -object_ahg -object_cne -object_gi_niwatori -object_skj -object_gi_bottle_letter -object_bji -object_bba -object_gi_ocarina_0 -object_ds -object_ane -object_boj -object_spot03_object -object_spot07_object -object_fz -object_bob -object_ge1 -object_yabusame_point -object_gi_boots_2 -object_gi_seed -object_gnd_magic -object_d_elevator -object_d_hsblock -object_d_lift -object_mamenoki -object_goroiwa -object_toryo -object_daiku -object_nwc -object_blkobj -object_gm -object_ms -object_hs -object_ingate -object_lightswitch -object_kusa -object_tsubo -object_gi_gloves -object_gi_coin -object_kanban -object_gjyo_objects -object_owl -object_mk -object_fu -object_gi_ki_tan_mask -object_gi_redead_mask -object_gi_skj_mask -object_gi_rabit_mask -object_gi_truth_mask -object_ganon_objects -object_siofuki -object_stream -object_mm -object_fa -object_os -object_gi_eye_lotion -object_gi_powder -object_gi_mushroom -object_gi_ticketstone -object_gi_brokensword -object_js -object_cs -object_gi_prescription -object_gi_bracelet -object_gi_soldout -object_gi_frog -object_mag -object_door_gerudo -object_gt -object_efc_erupc -object_zl2_anime1 -object_zl2_anime2 -object_gi_golonmask -object_gi_zoramask -object_gi_gerudomask -object_ganon2 -object_ka -object_ts -object_zg -object_gi_hoverboots -object_gi_m_arrow -object_ds2 -object_ec -object_fish -object_gi_sutaru -object_gi_goddess -object_ssh -object_bigokuta -object_bg -object_spot05_objects -object_spot12_obj -object_bombiwa -object_hintnuts -object_rs -object_spot00_break -object_gla -object_shopnuts -object_geldb -object_gr -object_dog -object_jya_iron -object_jya_door -object_spot01_objects2 -object_spot11_obj -object_kibako2 -object_dns -object_dnk -object_gi_fire -object_gi_insect -object_gi_butterfly -object_gi_ghost -object_gi_soul -object_bowl -object_po_field -object_demo_kekkai -object_efc_doughnut -object_gi_dekupouch -object_ganon_anime1 -object_ganon_anime2 -object_ganon_anime3 -object_gi_rupy -object_spot01_matoya -object_spot01_matoyab -object_po_composer -object_mu -object_wf -object_skb -object_gj -object_geff -object_haka_door -object_gs -object_ps -object_bwall -object_crow -object_cow -object_cob -object_gi_sword_1 -object_door_killer -object_ouke_haka -object_timeblock -object_zl4 -g_pn_01 -g_pn_02 -g_pn_03 -g_pn_04 -g_pn_05 -g_pn_06 -g_pn_07 -g_pn_08 -g_pn_09 -g_pn_10 -g_pn_11 -g_pn_12 -g_pn_13 -g_pn_14 -g_pn_15 -g_pn_16 -g_pn_17 -g_pn_18 -g_pn_19 -g_pn_20 -g_pn_21 -g_pn_22 -g_pn_23 -g_pn_24 -g_pn_25 -g_pn_26 -g_pn_27 -g_pn_28 -g_pn_29 -g_pn_30 -g_pn_31 -g_pn_32 -g_pn_33 -g_pn_34 -g_pn_35 -g_pn_36 -g_pn_37 -g_pn_38 -g_pn_39 -g_pn_40 -g_pn_41 -g_pn_42 -g_pn_43 -g_pn_44 -g_pn_45 -g_pn_46 -g_pn_47 -g_pn_48 -g_pn_49 -g_pn_50 -g_pn_51 -g_pn_52 -g_pn_53 -g_pn_54 -g_pn_55 -g_pn_56 -g_pn_57 -z_select_static -nintendo_rogo_static -title_static -parameter_static -vr_fine0_static -vr_fine0_pal_static -vr_fine1_static -vr_fine1_pal_static -vr_fine2_static -vr_fine2_pal_static -vr_fine3_static -vr_fine3_pal_static -vr_cloud0_static -vr_cloud0_pal_static -vr_cloud1_static -vr_cloud1_pal_static -vr_cloud2_static -vr_cloud2_pal_static -vr_cloud3_static -vr_cloud3_pal_static -vr_holy0_static -vr_holy0_pal_static -vr_holy1_static -vr_holy1_pal_static -vr_MDVR_static -vr_MDVR_pal_static -vr_MNVR_static -vr_MNVR_pal_static -vr_RUVR_static -vr_RUVR_pal_static -vr_LHVR_static -vr_LHVR_pal_static -vr_KHVR_static -vr_KHVR_pal_static -vr_K3VR_static -vr_K3VR_pal_static -vr_K4VR_static -vr_K4VR_pal_static -vr_K5VR_static -vr_K5VR_pal_static -vr_SP1a_static -vr_SP1a_pal_static -vr_MLVR_static -vr_MLVR_pal_static -vr_KKRVR_static -vr_KKRVR_pal_static -vr_KR3VR_static -vr_KR3VR_pal_static -vr_IPVR_static -vr_IPVR_pal_static -vr_KSVR_static -vr_KSVR_pal_static -vr_GLVR_static -vr_GLVR_pal_static -vr_ZRVR_static -vr_ZRVR_pal_static -vr_DGVR_static -vr_DGVR_pal_static -vr_ALVR_static -vr_ALVR_pal_static -vr_NSVR_static -vr_NSVR_pal_static -vr_LBVR_static -vr_LBVR_pal_static -vr_TTVR_static -vr_TTVR_pal_static -vr_FCVR_static -vr_FCVR_pal_static -elf_message_field -elf_message_ydan -ydan_scene -ydan_room_0 -ydan_room_1 -ydan_room_2 -ydan_room_3 -ydan_room_4 -ydan_room_5 -ydan_room_6 -ydan_room_7 -ydan_room_8 -ydan_room_9 -ydan_room_10 -ydan_room_11 -ddan_scene -ddan_room_0 -ddan_room_1 -ddan_room_2 -ddan_room_3 -ddan_room_4 -ddan_room_5 -ddan_room_6 -ddan_room_7 -ddan_room_8 -ddan_room_9 -ddan_room_10 -ddan_room_11 -ddan_room_12 -ddan_room_13 -ddan_room_14 -ddan_room_15 -ddan_room_16 -bdan_scene -bdan_room_0 -bdan_room_1 -bdan_room_2 -bdan_room_3 -bdan_room_4 -bdan_room_5 -bdan_room_6 -bdan_room_7 -bdan_room_8 -bdan_room_9 -bdan_room_10 -bdan_room_11 -bdan_room_12 -bdan_room_13 -bdan_room_14 -bdan_room_15 -Bmori1_scene -Bmori1_room_0 -Bmori1_room_1 -Bmori1_room_2 -Bmori1_room_3 -Bmori1_room_4 -Bmori1_room_5 -Bmori1_room_6 -Bmori1_room_7 -Bmori1_room_8 -Bmori1_room_9 -Bmori1_room_10 -Bmori1_room_11 -Bmori1_room_12 -Bmori1_room_13 -Bmori1_room_14 -Bmori1_room_15 -Bmori1_room_16 -Bmori1_room_17 -Bmori1_room_18 -Bmori1_room_19 -Bmori1_room_20 -Bmori1_room_21 -Bmori1_room_22 -HIDAN_scene -HIDAN_room_0 -HIDAN_room_1 -HIDAN_room_2 -HIDAN_room_3 -HIDAN_room_4 -HIDAN_room_5 -HIDAN_room_6 -HIDAN_room_7 -HIDAN_room_8 -HIDAN_room_9 -HIDAN_room_10 -HIDAN_room_11 -HIDAN_room_12 -HIDAN_room_13 -HIDAN_room_14 -HIDAN_room_15 -HIDAN_room_16 -HIDAN_room_17 -HIDAN_room_18 -HIDAN_room_19 -HIDAN_room_20 -HIDAN_room_21 -HIDAN_room_22 -HIDAN_room_23 -HIDAN_room_24 -HIDAN_room_25 -HIDAN_room_26 -MIZUsin_scene -MIZUsin_room_0 -MIZUsin_room_1 -MIZUsin_room_2 -MIZUsin_room_3 -MIZUsin_room_4 -MIZUsin_room_5 -MIZUsin_room_6 -MIZUsin_room_7 -MIZUsin_room_8 -MIZUsin_room_9 -MIZUsin_room_10 -MIZUsin_room_11 -MIZUsin_room_12 -MIZUsin_room_13 -MIZUsin_room_14 -MIZUsin_room_15 -MIZUsin_room_16 -MIZUsin_room_17 -MIZUsin_room_18 -MIZUsin_room_19 -MIZUsin_room_20 -MIZUsin_room_21 -MIZUsin_room_22 -jyasinzou_scene -jyasinzou_room_0 -jyasinzou_room_1 -jyasinzou_room_2 -jyasinzou_room_3 -jyasinzou_room_4 -jyasinzou_room_5 -jyasinzou_room_6 -jyasinzou_room_7 -jyasinzou_room_8 -jyasinzou_room_9 -jyasinzou_room_10 -jyasinzou_room_11 -jyasinzou_room_12 -jyasinzou_room_13 -jyasinzou_room_14 -jyasinzou_room_15 -jyasinzou_room_16 -jyasinzou_room_17 -jyasinzou_room_18 -jyasinzou_room_19 -jyasinzou_room_20 -jyasinzou_room_21 -jyasinzou_room_22 -jyasinzou_room_23 -jyasinzou_room_24 -jyasinzou_room_25 -jyasinzou_room_26 -jyasinzou_room_27 -jyasinzou_room_28 -HAKAdan_scene -HAKAdan_room_0 -HAKAdan_room_1 -HAKAdan_room_2 -HAKAdan_room_3 -HAKAdan_room_4 -HAKAdan_room_5 -HAKAdan_room_6 -HAKAdan_room_7 -HAKAdan_room_8 -HAKAdan_room_9 -HAKAdan_room_10 -HAKAdan_room_11 -HAKAdan_room_12 -HAKAdan_room_13 -HAKAdan_room_14 -HAKAdan_room_15 -HAKAdan_room_16 -HAKAdan_room_17 -HAKAdan_room_18 -HAKAdan_room_19 -HAKAdan_room_20 -HAKAdan_room_21 -HAKAdan_room_22 -HAKAdanCH_scene -HAKAdanCH_room_0 -HAKAdanCH_room_1 -HAKAdanCH_room_2 -HAKAdanCH_room_3 -HAKAdanCH_room_4 -HAKAdanCH_room_5 -HAKAdanCH_room_6 -ice_doukutu_scene -ice_doukutu_room_0 -ice_doukutu_room_1 -ice_doukutu_room_2 -ice_doukutu_room_3 -ice_doukutu_room_4 -ice_doukutu_room_5 -ice_doukutu_room_6 -ice_doukutu_room_7 -ice_doukutu_room_8 -ice_doukutu_room_9 -ice_doukutu_room_10 -ice_doukutu_room_11 -men_scene -men_room_0 -men_room_1 -men_room_2 -men_room_3 -men_room_4 -men_room_5 -men_room_6 -men_room_7 -men_room_8 -men_room_9 -men_room_10 -ganontika_scene -ganontika_room_0 -ganontika_room_1 -ganontika_room_2 -ganontika_room_3 -ganontika_room_4 -ganontika_room_5 -ganontika_room_6 -ganontika_room_7 -ganontika_room_8 -ganontika_room_9 -ganontika_room_10 -ganontika_room_11 -ganontika_room_12 -ganontika_room_13 -ganontika_room_14 -ganontika_room_15 -ganontika_room_16 -ganontika_room_17 -ganontika_room_18 -ganontika_room_19 -spot00_scene -spot00_room_0 -spot01_scene -spot01_room_0 -spot02_scene -spot02_room_0 -spot02_room_1 -spot03_scene -spot03_room_0 -spot03_room_1 -spot04_scene -spot04_room_0 -spot04_room_1 -spot04_room_2 -spot05_scene -spot05_room_0 -spot06_scene -spot06_room_0 -spot07_scene -spot07_room_0 -spot07_room_1 -spot08_scene -spot08_room_0 -spot09_scene -spot09_room_0 -spot10_scene -spot10_room_0 -spot10_room_1 -spot10_room_2 -spot10_room_3 -spot10_room_4 -spot10_room_5 -spot10_room_6 -spot10_room_7 -spot10_room_8 -spot10_room_9 -spot11_scene -spot11_room_0 -spot12_scene -spot12_room_0 -spot12_room_1 -spot13_scene -spot13_room_0 -spot13_room_1 -spot15_scene -spot15_room_0 -spot16_scene -spot16_room_0 -spot17_scene -spot17_room_0 -spot17_room_1 -spot18_scene -spot18_room_0 -spot18_room_1 -spot18_room_2 -spot18_room_3 -market_day_scene -market_day_room_0 -market_night_scene -market_night_room_0 -kenjyanoma_scene -kenjyanoma_room_0 -tokinoma_scene -tokinoma_room_0 -tokinoma_room_1 -link_home_scene -link_home_room_0 -kokiri_shop_scene -kokiri_shop_room_0 -kokiri_home_scene -kokiri_home_room_0 -kakusiana_scene -kakusiana_room_0 -kakusiana_room_1 -kakusiana_room_2 -kakusiana_room_3 -kakusiana_room_4 -kakusiana_room_5 -kakusiana_room_6 -kakusiana_room_7 -kakusiana_room_8 -kakusiana_room_9 -kakusiana_room_10 -kakusiana_room_11 -kakusiana_room_12 -kakusiana_room_13 -entra_scene -entra_room_0 -moribossroom_scene -moribossroom_room_0 -moribossroom_room_1 -syatekijyou_scene -syatekijyou_room_0 -shop1_scene -shop1_room_0 -hairal_niwa_scene -hairal_niwa_room_0 -ganon_tou_scene -ganon_tou_room_0 -market_alley_scene -market_alley_room_0 -spot20_scene -spot20_room_0 -market_ruins_scene -market_ruins_room_0 -entra_n_scene -entra_n_room_0 -enrui_scene -enrui_room_0 -market_alley_n_scene -market_alley_n_room_0 -hiral_demo_scene -hiral_demo_room_0 -kokiri_home3_scene -kokiri_home3_room_0 -malon_stable_scene -malon_stable_room_0 -kakariko_scene -kakariko_room_0 -bdan_boss_scene -bdan_boss_room_0 -bdan_boss_room_1 -FIRE_bs_scene -FIRE_bs_room_0 -FIRE_bs_room_1 -hut_scene -hut_room_0 -daiyousei_izumi_scene -daiyousei_izumi_room_0 -hakaana_scene -hakaana_room_0 -yousei_izumi_tate_scene -yousei_izumi_tate_room_0 -yousei_izumi_yoko_scene -yousei_izumi_yoko_room_0 -golon_scene -golon_room_0 -zoora_scene -zoora_room_0 -drag_scene -drag_room_0 -alley_shop_scene -alley_shop_room_0 -night_shop_scene -night_shop_room_0 -impa_scene -impa_room_0 -labo_scene -labo_room_0 -tent_scene -tent_room_0 -nakaniwa_scene -nakaniwa_room_0 -ddan_boss_scene -ddan_boss_room_0 -ddan_boss_room_1 -ydan_boss_scene -ydan_boss_room_0 -ydan_boss_room_1 -HAKAdan_bs_scene -HAKAdan_bs_room_0 -HAKAdan_bs_room_1 -MIZUsin_bs_scene -MIZUsin_bs_room_0 -MIZUsin_bs_room_1 -ganon_scene -ganon_room_0 -ganon_room_1 -ganon_room_2 -ganon_room_3 -ganon_room_4 -ganon_room_5 -ganon_room_6 -ganon_room_7 -ganon_room_8 -ganon_room_9 -ganon_boss_scene -ganon_boss_room_0 -jyasinboss_scene -jyasinboss_room_0 -jyasinboss_room_1 -jyasinboss_room_2 -jyasinboss_room_3 -kokiri_home4_scene -kokiri_home4_room_0 -kokiri_home5_scene -kokiri_home5_room_0 -ganon_final_scene -ganon_final_room_0 -kakariko3_scene -kakariko3_room_0 -hakasitarelay_scene -hakasitarelay_room_0 -hakasitarelay_room_1 -hakasitarelay_room_2 -hakasitarelay_room_3 -hakasitarelay_room_4 -hakasitarelay_room_5 -hakasitarelay_room_6 -shrine_scene -shrine_room_0 -turibori_scene -turibori_room_0 -shrine_n_scene -shrine_n_room_0 -shrine_r_scene -shrine_r_room_0 -hakaana2_scene -hakaana2_room_0 -gerudoway_scene -gerudoway_room_0 -gerudoway_room_1 -gerudoway_room_2 -gerudoway_room_3 -gerudoway_room_4 -gerudoway_room_5 -hairal_niwa_n_scene -hairal_niwa_n_room_0 -bowling_scene -bowling_room_0 -hakaana_ouke_scene -hakaana_ouke_room_0 -hakaana_ouke_room_1 -hakaana_ouke_room_2 -hylia_labo_scene -hylia_labo_room_0 -souko_scene -souko_room_0 -souko_room_1 -souko_room_2 -miharigoya_scene -miharigoya_room_0 -mahouya_scene -mahouya_room_0 -takaraya_scene -takaraya_room_0 -takaraya_room_1 -takaraya_room_2 -takaraya_room_3 -takaraya_room_4 -takaraya_room_5 -takaraya_room_6 -ganon_sonogo_scene -ganon_sonogo_room_0 -ganon_sonogo_room_1 -ganon_sonogo_room_2 -ganon_sonogo_room_3 -ganon_sonogo_room_4 -ganon_demo_scene -ganon_demo_room_0 -face_shop_scene -face_shop_room_0 -kinsuta_scene -kinsuta_room_0 -ganontikasonogo_scene -ganontikasonogo_room_0 -ganontikasonogo_room_1 -bump_texture_static -anime_model_1_static -anime_model_2_static -anime_model_3_static -anime_model_4_static -anime_model_5_static -anime_model_6_static -anime_texture_1_static -anime_texture_2_static -anime_texture_3_static -anime_texture_4_static -anime_texture_5_static -anime_texture_6_static -softsprite_matrix_static diff --git a/baseroms/gc-eu/dmadata_start.txt b/baseroms/gc-eu/dmadata_start.txt deleted file mode 100644 index 08515b6d6..000000000 --- a/baseroms/gc-eu/dmadata_start.txt +++ /dev/null @@ -1 +0,0 @@ -0x07170 diff --git a/baseroms/gc-eu/segments.csv b/baseroms/gc-eu/segments.csv new file mode 100644 index 000000000..251343e7e --- /dev/null +++ b/baseroms/gc-eu/segments.csv @@ -0,0 +1,1511 @@ +Name,VRAM start +makerom,80000000 +boot,80000460 +dmadata, +Audiobank, +Audioseq, +Audiotable, +link_animetion, +icon_item_static, +icon_item_24_static, +icon_item_field_static, +icon_item_dungeon_static, +icon_item_gameover_static, +icon_item_nes_static, +icon_item_ger_static, +icon_item_fra_static, +item_name_static, +map_name_static, +do_action_static, +message_static, +message_texture_static, +nes_font_static, +nes_message_data_static, +ger_message_data_static, +fra_message_data_static, +staff_message_data_static, +map_grand_static, +map_48x85_static, +map_i_static, +code,80010F00 +ovl_title,80800000 +ovl_select,80800850 +ovl_opening,808034D0 +ovl_file_choose,80803630 +ovl_kaleido_scope,80812260 +ovl_player_actor,8082EC90 +ovl_map_mark_data,80855470 +ovl_En_Test,8085BFD0 +ovl_Arms_Hook,80861880 +ovl_Arrow_Fire,808625F0 +ovl_Arrow_Ice,808644D0 +ovl_Arrow_Light,808663D0 +ovl_Bg_Bdan_Objects,808682E0 +ovl_Bg_Bdan_Switch,808695B0 +ovl_Bg_Bom_Guard,8086A9E0 +ovl_Bg_Bombwall,8086AC00 +ovl_Bg_Bowl_Wall,8086B4C0 +ovl_Bg_Breakwall,8086BE40 +ovl_Bg_Ddan_Jd,8086CCB0 +ovl_Bg_Ddan_Kd,8086D300 +ovl_Bg_Dodoago,8086DBF0 +ovl_Bg_Dy_Yoseizo,8086E9A0 +ovl_Bg_Ganon_Otyuka,80871790 +ovl_Bg_Gate_Shutter,80873DD0 +ovl_Bg_Gjyo_Bridge,80874260 +ovl_Bg_Gnd_Darkmeiro,80874750 +ovl_Bg_Gnd_Firemeiro,80874F10 +ovl_Bg_Gnd_Iceblock,80875460 +ovl_Bg_Gnd_Nisekabe,80876560 +ovl_Bg_Gnd_Soulmeiro,808766D0 +ovl_Bg_Haka,80876F30 +ovl_Bg_Haka_Gate,808775F0 +ovl_Bg_Haka_Huta,80878690 +ovl_Bg_Haka_Megane,80879130 +ovl_Bg_Haka_MeganeBG,80879530 +ovl_Bg_Haka_Sgami,80879BF0 +ovl_Bg_Haka_Ship,8087A810 +ovl_Bg_Haka_Trap,8087B260 +ovl_Bg_Haka_Tubo,8087C830 +ovl_Bg_Haka_Water,8087D250 +ovl_Bg_Haka_Zou,8087DA50 +ovl_Bg_Heavy_Block,8087EC40 +ovl_Bg_Hidan_Curtain,80880530 +ovl_Bg_Hidan_Dalm,80880FD0 +ovl_Bg_Hidan_Firewall,80881820 +ovl_Bg_Hidan_Fslift,80881F80 +ovl_Bg_Hidan_Fwbig,80882450 +ovl_Bg_Hidan_Hamstep,80883130 +ovl_Bg_Hidan_Hrock,80883FE0 +ovl_Bg_Hidan_Kousi,80884810 +ovl_Bg_Hidan_Kowarerukabe,80884DA0 +ovl_Bg_Hidan_Rock,80885C80 +ovl_Bg_Hidan_Rsekizou,80886D80 +ovl_Bg_Hidan_Sekizou,80887960 +ovl_Bg_Hidan_Sima,80888DB0 +ovl_Bg_Hidan_Syoku,80889CB0 +ovl_Bg_Ice_Objects,8088A110 +ovl_Bg_Ice_Shelter,8088B050 +ovl_Bg_Ice_Shutter,8088C290 +ovl_Bg_Ice_Turara,8088C700 +ovl_Bg_Ingate,8088CF30 +ovl_Bg_Jya_1flift,8088D2C0 +ovl_Bg_Jya_Amishutter,8088D950 +ovl_Bg_Jya_Bigmirror,8088DCE0 +ovl_Bg_Jya_Block,8088E530 +ovl_Bg_Jya_Bombchuiwa,8088E7A0 +ovl_Bg_Jya_Bombiwa,8088F2E0 +ovl_Bg_Jya_Cobra,8088F8A0 +ovl_Bg_Jya_Goroiwa,808915E0 +ovl_Bg_Jya_Haheniron,80891D60 +ovl_Bg_Jya_Ironobj,80892550 +ovl_Bg_Jya_Kanaami,80893300 +ovl_Bg_Jya_Lift,808936B0 +ovl_Bg_Jya_Megami,80893C00 +ovl_Bg_Jya_Zurerukabe,80894DF0 +ovl_Bg_Menkuri_Eye,808954A0 +ovl_Bg_Menkuri_Kaiten,80895940 +ovl_Bg_Menkuri_Nisekabe,80895AD0 +ovl_Bg_Mizu_Bwall,80895C20 +ovl_Bg_Mizu_Movebg,808970F0 +ovl_Bg_Mizu_Shutter,80898280 +ovl_Bg_Mizu_Uzu,80898A80 +ovl_Bg_Mizu_Water,80898C50 +ovl_Bg_Mjin,80899920 +ovl_Bg_Mori_Bigst,80899D10 +ovl_Bg_Mori_Elevator,8089A640 +ovl_Bg_Mori_Hashigo,8089B130 +ovl_Bg_Mori_Hashira4,8089B9F0 +ovl_Bg_Mori_Hineri,8089BF80 +ovl_Bg_Mori_Idomizu,8089CCD0 +ovl_Bg_Mori_Kaitenkabe,8089D310 +ovl_Bg_Mori_Rakkatenjo,8089D980 +ovl_Bg_Po_Event,8089E300 +ovl_Bg_Po_Syokudai,808A0140 +ovl_Bg_Pushbox,808A0AB0 +ovl_Bg_Relay_Objects,808A0DB0 +ovl_Bg_Spot00_Break,808A1560 +ovl_Bg_Spot00_Hanebasi,808A1700 +ovl_Bg_Spot01_Fusya,808A2810 +ovl_Bg_Spot01_Idohashira,808A2AB0 +ovl_Bg_Spot01_Idomizu,808A36B0 +ovl_Bg_Spot01_Idosoko,808A39D0 +ovl_Bg_Spot01_Objects2,808A3BE0 +ovl_Bg_Spot02_Objects,808A40A0 +ovl_Bg_Spot03_Taki,808A5400 +ovl_Bg_Spot05_Soko,808A5D20 +ovl_Bg_Spot06_Objects,808A6040 +ovl_Bg_Spot07_Taki,808A7440 +ovl_Bg_Spot08_Bakudankabe,808A7A30 +ovl_Bg_Spot08_Iceblock,808A80D0 +ovl_Bg_Spot09_Obj,808A9110 +ovl_Bg_Spot11_Bakudankabe,808A9630 +ovl_Bg_Spot11_Oasis,808A9C70 +ovl_Bg_Spot12_Gate,808AA3A0 +ovl_Bg_Spot12_Saku,808AA7B0 +ovl_Bg_Spot15_Rrbox,808AAC70 +ovl_Bg_Spot15_Saku,808ABA50 +ovl_Bg_Spot16_Bombstone,808ABD90 +ovl_Bg_Spot16_Doughnut,808AD2E0 +ovl_Bg_Spot17_Bakudankabe,808AD8A0 +ovl_Bg_Spot17_Funen,808ADF90 +ovl_Bg_Spot18_Basket,808AE1E0 +ovl_Bg_Spot18_Futa,808AF1D0 +ovl_Bg_Spot18_Obj,808AF370 +ovl_Bg_Spot18_Shutter,808AFC40 +ovl_Bg_Sst_Floor,808B0190 +ovl_Bg_Toki_Hikari,808B06F0 +ovl_Bg_Toki_Swd,808B1490 +ovl_Bg_Treemouth,808B2AE0 +ovl_Bg_Umajump,808B4140 +ovl_Bg_Vb_Sima,808B42D0 +ovl_Bg_Ydan_Hasi,808B49F0 +ovl_Bg_Ydan_Maruta,808B51A0 +ovl_Bg_Ydan_Sp,808B5880 +ovl_Bg_Zg,808B6FA0 +ovl_Boss_Dodongo,808B73F0 +ovl_Boss_Fd,808C0EF0 +ovl_Boss_Fd2,808C8250 +ovl_Boss_Ganon,808CBF80 +ovl_Boss_Ganon2,808F1DB0 +ovl_Boss_Ganondrof,80904C20 +ovl_Boss_Goma,809099B0 +ovl_Boss_Mo,8090F950 +ovl_Boss_Sst,8091FF30 +ovl_Boss_Tw,8092C500 +ovl_Boss_Va,809420D0 +ovl_Demo_6K,80959360 +ovl_Demo_Du,8095C0C0 +ovl_Demo_Ec,8095F8A0 +ovl_Demo_Effect,80963100 +ovl_Demo_Ext,80968CA0 +ovl_Demo_Geff,809695F0 +ovl_Demo_Gj,80969E10 +ovl_Demo_Go,8096DAC0 +ovl_Demo_Gt,8096E810 +ovl_Demo_Ik,80973E20 +ovl_Demo_Im,80975330 +ovl_Demo_Kankyo,809792A0 +ovl_Demo_Kekkai,8097CF90 +ovl_Demo_Sa,8097E280 +ovl_Demo_Shd,80980DA0 +ovl_Demo_Tre_Lgt,809831B0 +ovl_Door_Ana,809838C0 +ovl_Door_Gerudo,80983F30 +ovl_Door_Killer,80984520 +ovl_Door_Shutter,80985A90 +ovl_Door_Toki,80987D50 +ovl_Door_Warp1,80987EB0 +ovl_Efc_Erupc,8098C1C0 +ovl_Eff_Dust,8098CCB0 +ovl_Effect_Ss_Blast,8098E080 +ovl_Effect_Ss_Bomb,8098E410 +ovl_Effect_Ss_Bomb2,8098E840 +ovl_Effect_Ss_Bubble,8098F140 +ovl_Effect_Ss_D_Fire,8098F5C0 +ovl_Effect_Ss_Dead_Db,8098FAB0 +ovl_Effect_Ss_Dead_Dd,8098FF90 +ovl_Effect_Ss_Dead_Ds,80990520 +ovl_Effect_Ss_Dead_Sound,809909A0 +ovl_Effect_Ss_Dt_Bubble,80990AE0 +ovl_Effect_Ss_Dust,80991070 +ovl_Effect_Ss_En_Fire,809918B0 +ovl_Effect_Ss_En_Ice,80992000 +ovl_Effect_Ss_Extra,809928C0 +ovl_Effect_Ss_Fcircle,80992C80 +ovl_Effect_Ss_Fhg_Flash,80993130 +ovl_Effect_Ss_Fire_Tail,809940B0 +ovl_Effect_Ss_G_Fire,809947B0 +ovl_Effect_Ss_G_Magma,80994A40 +ovl_Effect_Ss_G_Magma2,80994CA0 +ovl_Effect_Ss_G_Ripple,809951B0 +ovl_Effect_Ss_G_Spk,80995710 +ovl_Effect_Ss_G_Splash,80995CC0 +ovl_Effect_Ss_Hahen,80996170 +ovl_Effect_Ss_HitMark,809967B0 +ovl_Effect_Ss_Ice_Piece,80996D00 +ovl_Effect_Ss_Ice_Smoke,80997140 +ovl_Effect_Ss_K_Fire,80997620 +ovl_Effect_Ss_Kakera,80997A60 +ovl_Effect_Ss_KiraKira,80998AF0 +ovl_Effect_Ss_Lightning,80999160 +ovl_Effect_Ss_Sibuki,80999830 +ovl_Effect_Ss_Sibuki2,80999F00 +ovl_Effect_Ss_Solder_Srch_Ball,8099A230 +ovl_Effect_Ss_Stick,8099A3E0 +ovl_Effect_Ss_Stone1,8099A780 +ovl_Elf_Msg,8099AB00 +ovl_Elf_Msg2,8099B0F0 +ovl_En_Am,8099B560 +ovl_En_Ani,8099D960 +ovl_En_Anubice,8099E6D0 +ovl_En_Anubice_Fire,8099F980 +ovl_En_Anubice_Tag,809A0740 +ovl_En_Arow_Trap,809A0A10 +ovl_En_Arrow,809A0B60 +ovl_En_Attack_Niw,809A2260 +ovl_En_Ba,809A34C0 +ovl_En_Bb,809A5390 +ovl_En_Bdfire,809A9070 +ovl_En_Bigokuta,809A9C10 +ovl_En_Bili,809AC710 +ovl_En_Bird,809AE9E0 +ovl_En_Blkobj,809AEEA0 +ovl_En_Bom,809AF400 +ovl_En_Bom_Bowl_Man,809B02D0 +ovl_En_Bom_Bowl_Pit,809B1810 +ovl_En_Bom_Chu,809B2180 +ovl_En_Bombf,809B3820 +ovl_En_Boom,809B4CB0 +ovl_En_Box,809B5580 +ovl_En_Brob,809B70E0 +ovl_En_Bubble,809B81D0 +ovl_En_Butte,809B95F0 +ovl_En_Bw,809BABC0 +ovl_En_Bx,809BDF50 +ovl_En_Changer,809BEA50 +ovl_En_Clear_Tag,809BF430 +ovl_En_Cow,809CA9D0 +ovl_En_Crow,809CBE30 +ovl_En_Cs,809CD4D0 +ovl_En_Daiku,809CE700 +ovl_En_Daiku_Kakariko,809CFE40 +ovl_En_Dekubaba,809D1200 +ovl_En_Dekunuts,809D4CB0 +ovl_En_Dh,809D64B0 +ovl_En_Dha,809D7F90 +ovl_En_Diving_Game,809D8F90 +ovl_En_Dns,809DA940 +ovl_En_Dnt_Demo,809DBCD0 +ovl_En_Dnt_Jiji,809DC9F0 +ovl_En_Dnt_Nomal,809DDF10 +ovl_En_Dodojr,809E0D10 +ovl_En_Dodongo,809E2BB0 +ovl_En_Dog,809E5950 +ovl_En_Door,809E6B00 +ovl_En_Ds,809E7940 +ovl_En_Du,809E8560 +ovl_En_Dy_Extra,809E9FF0 +ovl_En_Eg,809EA590 +ovl_En_Eiyer,809EA740 +ovl_En_Elf,809EC3A0 +ovl_En_Encount1,809F0D60 +ovl_En_Encount2,809F18C0 +ovl_En_Ex_Item,809F2AF0 +ovl_En_Ex_Ruppy,809F3C70 +ovl_En_Fd,809F4D30 +ovl_En_Fd_Fire,809F79D0 +ovl_En_Fhg_Fire,809F86E0 +ovl_En_Fire_Rock,809FAD80 +ovl_En_Firefly,809FBE90 +ovl_En_Fish,809FE000 +ovl_En_Floormas,80A00110 +ovl_En_Fr,80A034F0 +ovl_En_Fu,80A05F80 +ovl_En_Fw,80A06CD0 +ovl_En_Fz,80A08490 +ovl_En_G_Switch,80A0A4A0 +ovl_En_Ganon_Mant,80A0BCC0 +ovl_En_Ganon_Organ,80A0FEF0 +ovl_En_Gb,80A16F30 +ovl_En_Ge1,80A18660 +ovl_En_Ge2,80A1A690 +ovl_En_Ge3,80A1C030 +ovl_En_GeldB,80A1CC70 +ovl_En_GirlA,80A22020 +ovl_En_Gm,80A24940 +ovl_En_Go,80A25670 +ovl_En_Go2,80A29CB0 +ovl_En_Goma,80A2FCF0 +ovl_En_Goroiwa,80A329A0 +ovl_En_Gs,80A34D60 +ovl_En_Guest,80A36BD0 +ovl_En_Hata,80A37570 +ovl_En_Heishi1,80A37B00 +ovl_En_Heishi2,80A39010 +ovl_En_Heishi3,80A3B210 +ovl_En_Heishi4,80A3BBE0 +ovl_En_Hintnuts,80A3CAE0 +ovl_En_Holl,80A3E510 +ovl_En_Honotrap,80A3F4E0 +ovl_En_Horse,80A40A40 +ovl_En_Horse_Game_Check,80A4CCA0 +ovl_En_Horse_Ganon,80A4DD70 +ovl_En_Horse_Link_Child,80A4EAF0 +ovl_En_Horse_Normal,80A508F0 +ovl_En_Horse_Zelda,80A52F10 +ovl_En_Hs,80A53A00 +ovl_En_Hs2,80A545A0 +ovl_En_Hy,80A54B80 +ovl_En_Ice_Hono,80A584C0 +ovl_En_Ik,80A596B0 +ovl_En_In,80A5DD10 +ovl_En_Insect,80A60AB0 +ovl_En_Ishi,80A62FD0 +ovl_En_It,80A6C120 +ovl_En_Jj,80A6C2B0 +ovl_En_Js,80A6D880 +ovl_En_Jsjutan,80A6E250 +ovl_En_Kakasi,80A73B80 +ovl_En_Kakasi2,80A748C0 +ovl_En_Kakasi3,80A74FE0 +ovl_En_Kanban,80A760C0 +ovl_En_Karebaba,80A79210 +ovl_En_Ko,80A7AB00 +ovl_En_Kusa,80A7EC40 +ovl_En_Kz,80A80120 +ovl_En_Light,80A816C0 +ovl_En_Lightbox,80A824C0 +ovl_En_M_Fire1,80A82940 +ovl_En_M_Thunder,80A82AE0 +ovl_En_Ma1,80A840E0 +ovl_En_Ma2,80A853C0 +ovl_En_Ma3,80A86420 +ovl_En_Mag,80A873D0 +ovl_En_Mb,80A89870 +ovl_En_Md,80A8DAA0 +ovl_En_Mk,80A90110 +ovl_En_Mm,80A90FA0 +ovl_En_Mm2,80A92600 +ovl_En_Ms,80A933C0 +ovl_En_Mu,80A93AB0 +ovl_En_Nb,80A943D0 +ovl_En_Niw,80A989A0 +ovl_En_Niw_Girl,80A9BCD0 +ovl_En_Niw_Lady,80A9C7A0 +ovl_En_Nutsball,80A9E0A0 +ovl_En_Nwc,80A9E6C0 +ovl_En_Ny,80A9F0E0 +ovl_En_OE2,80AA0A20 +ovl_En_Okarina_Effect,80AA0B00 +ovl_En_Okarina_Tag,80AA0EC0 +ovl_En_Okuta,80AA23C0 +ovl_En_Ossan,80AA49A0 +ovl_En_Owl,80AAAF80 +ovl_En_Part,80AAEB20 +ovl_En_Peehat,80AB0180 +ovl_En_Po_Desert,80AB3880 +ovl_En_Po_Field,80AB4640 +ovl_En_Po_Relay,80AB80D0 +ovl_En_Po_Sisters,80AB97E0 +ovl_En_Poh,80ABE4D0 +ovl_En_Pu_box,80AC26C0 +ovl_En_Rd,80AC2A00 +ovl_En_Reeba,80AC52C0 +ovl_En_River_Sound,80AC6D30 +ovl_En_Rl,80AC76C0 +ovl_En_Rr,80AC85A0 +ovl_En_Ru1,80ACAAD0 +ovl_En_Ru2,80AD2170 +ovl_En_Sa,80AD4EF0 +ovl_En_Sb,80AD7160 +ovl_En_Scene_Change,80AD85A0 +ovl_En_Sda,80AD86D0 +ovl_En_Shopnuts,80AD9DC0 +ovl_En_Si,80ADACD0 +ovl_En_Siofuki,80ADB1D0 +ovl_En_Skb,80ADBF80 +ovl_En_Skj,80ADD870 +ovl_En_Skjneedle,80AE11C0 +ovl_En_Ssh,80AE14D0 +ovl_En_St,80AE3AC0 +ovl_En_Sth,80AE6730 +ovl_En_Stream,80AEA7F0 +ovl_En_Sw,80AEAD80 +ovl_En_Syateki_Itm,80AEE570 +ovl_En_Syateki_Man,80AEF310 +ovl_En_Syateki_Niw,80AF00D0 +ovl_En_Ta,80AF2160 +ovl_En_Takara_Man,80AF5B20 +ovl_En_Tana,80AF63E0 +ovl_En_Tg,80AF6690 +ovl_En_Tite,80AF6D70 +ovl_En_Tk,80AF9B10 +ovl_En_Torch,80AFB940 +ovl_En_Torch2,80AFBA30 +ovl_En_Toryo,80AFE1D0 +ovl_En_Tp,80AFEE60 +ovl_En_Tr,80B00CD0 +ovl_En_Trap,80B025D0 +ovl_En_Tubo_Trap,80B03870 +ovl_En_Vali,80B04510 +ovl_En_Vase,80B06BD0 +ovl_En_Vb_Ball,80B06CD0 +ovl_En_Viewer,80B07E80 +ovl_En_Vm,80B0AD40 +ovl_En_Wall_Tubo,80B0C600 +ovl_En_Wallmas,80B0CAF0 +ovl_En_Weather_Tag,80B0E500 +ovl_En_Weiyer,80B0F3F0 +ovl_En_Wf,80B10DF0 +ovl_En_Wonder_Item,80B15100 +ovl_En_Wonder_Talk,80B15E30 +ovl_En_Wonder_Talk2,80B164C0 +ovl_En_Wood02,80B16B60 +ovl_En_Xc,80B17D40 +ovl_En_Yabusame_Mark,80B1E4D0 +ovl_En_Yukabyun,80B1EBA0 +ovl_En_Zf,80B1F1B0 +ovl_En_Zl1,80B25CA0 +ovl_En_Zl2,80B29AB0 +ovl_En_Zl3,80B2E1B0 +ovl_En_Zl4,80B36000 +ovl_En_Zo,80B3AA30 +ovl_En_fHG,80B3CFF0 +ovl_End_Title,80B3F920 +ovl_Fishing,80B43A40 +ovl_Item_B_Heart,80B5E5B0 +ovl_Item_Etcetera,80B5E9C0 +ovl_Item_Inbox,80B5F290 +ovl_Item_Ocarina,80B5F3F0 +ovl_Item_Shield,80B5FBC0 +ovl_Magic_Dark,80B605D0 +ovl_Magic_Fire,80B61E20 +ovl_Magic_Wind,80B64120 +ovl_Mir_Ray,80B65E20 +ovl_Obj_Bean,80B676D0 +ovl_Obj_Blockstop,80B69E60 +ovl_Obj_Bombiwa,80B6A000 +ovl_Obj_Comb,80B6A570 +ovl_Obj_Dekujr,80B6ADD0 +ovl_Obj_Elevator,80B6B410 +ovl_Obj_Hamishi,80B6B7D0 +ovl_Obj_Hana,80B6C020 +ovl_Obj_Hsblock,80B6C330 +ovl_Obj_Ice_Poly,80B6C900 +ovl_Obj_Kibako,80B6D2B0 +ovl_Obj_Kibako2,80B6DFB0 +ovl_Obj_Lift,80B6E670 +ovl_Obj_Lightswitch,80B6F090 +ovl_Obj_Makekinsuta,80B704C0 +ovl_Obj_Makeoshihiki,80B70610 +ovl_Obj_Mure,80B70AA0 +ovl_Obj_Mure2,80B71AB0 +ovl_Obj_Mure3,80B724D0 +ovl_Obj_Oshihiki,80B72CA0 +ovl_Obj_Roomtimer,80B74750 +ovl_Obj_Switch,80B749A0 +ovl_Obj_Syokudai,80B76780 +ovl_Obj_Timeblock,80B773D0 +ovl_Obj_Tsubo,80B78020 +ovl_Obj_Warp2block,80B79010 +ovl_Object_Kankyo,80B79B40 +ovl_Oceff_Spot,80B7CDC0 +ovl_Oceff_Storm,80B7DCF0 +ovl_Oceff_Wipe,80B7F8A0 +ovl_Oceff_Wipe2,80B80620 +ovl_Oceff_Wipe3,80B81D90 +ovl_Oceff_Wipe4,80B834E0 +ovl_Shot_Sun,80B844C0 +gameplay_keep, +gameplay_field_keep, +gameplay_dangeon_keep, +gameplay_object_exchange_static, +object_link_boy, +object_link_child, +object_box, +object_human, +object_okuta, +object_poh, +object_wallmaster, +object_dy_obj, +object_firefly, +object_dodongo, +object_fire, +object_niw, +object_tite, +object_reeba, +object_peehat, +object_kingdodongo, +object_horse, +object_zf, +object_goma, +object_zl1, +object_gol, +object_bubble, +object_dodojr, +object_torch2, +object_bl, +object_tp, +object_oA1, +object_st, +object_bw, +object_ei, +object_horse_normal, +object_oB1, +object_o_anime, +object_spot04_objects, +object_ddan_objects, +object_hidan_objects, +object_horse_ganon, +object_oA2, +object_spot00_objects, +object_mb, +object_bombf, +object_sk2, +object_oE1, +object_oE_anime, +object_oE2, +object_ydan_objects, +object_gnd, +object_am, +object_dekubaba, +object_oA3, +object_oA4, +object_oA5, +object_oA6, +object_oA7, +object_jj, +object_oA8, +object_oA9, +object_oB2, +object_oB3, +object_oB4, +object_horse_zelda, +object_opening_demo1, +object_warp1, +object_b_heart, +object_dekunuts, +object_oE3, +object_oE4, +object_menkuri_objects, +object_oE5, +object_oE6, +object_oE7, +object_oE8, +object_oE9, +object_oE10, +object_oE11, +object_oE12, +object_vali, +object_oA10, +object_oA11, +object_mizu_objects, +object_fhg, +object_ossan, +object_mori_hineri1, +object_Bb, +object_toki_objects, +object_yukabyun, +object_zl2, +object_mjin, +object_mjin_flash, +object_mjin_dark, +object_mjin_flame, +object_mjin_ice, +object_mjin_soul, +object_mjin_wind, +object_mjin_oka, +object_haka_objects, +object_spot06_objects, +object_ice_objects, +object_relay_objects, +object_mori_hineri1a, +object_mori_hineri2, +object_mori_hineri2a, +object_mori_objects, +object_mori_tex, +object_spot08_obj, +object_warp2, +object_hata, +object_bird, +object_wood02, +object_lightbox, +object_pu_box, +object_trap, +object_vase, +object_im, +object_ta, +object_tk, +object_xc, +object_vm, +object_bv, +object_hakach_objects, +object_efc_crystal_light, +object_efc_fire_ball, +object_efc_flash, +object_efc_lgt_shower, +object_efc_star_field, +object_god_lgt, +object_light_ring, +object_triforce_spot, +object_medal, +object_bdan_objects, +object_sd, +object_rd, +object_po_sisters, +object_heavy_object, +object_gndd, +object_fd, +object_du, +object_fw, +object_horse_link_child, +object_spot02_objects, +object_haka, +object_ru1, +object_syokudai, +object_fd2, +object_dh, +object_rl, +object_efc_tw, +object_demo_tre_lgt, +object_gi_key, +object_mir_ray, +object_brob, +object_gi_jewel, +object_spot09_obj, +object_spot18_obj, +object_bdoor, +object_spot17_obj, +object_shop_dungen, +object_nb, +object_mo, +object_sb, +object_gi_melody, +object_gi_heart, +object_gi_compass, +object_gi_bosskey, +object_gi_medal, +object_gi_nuts, +object_sa, +object_gi_hearts, +object_gi_arrowcase, +object_gi_bombpouch, +object_in, +object_tr, +object_spot16_obj, +object_oE1s, +object_oE4s, +object_os_anime, +object_gi_bottle, +object_gi_stick, +object_gi_map, +object_oF1d_map, +object_ru2, +object_gi_shield_1, +object_dekujr, +object_gi_magicpot, +object_gi_bomb_1, +object_oF1s, +object_ma2, +object_gi_purse, +object_hni, +object_tw, +object_rr, +object_bxa, +object_anubice, +object_gi_gerudo, +object_gi_arrow, +object_gi_bomb_2, +object_gi_egg, +object_gi_scale, +object_gi_shield_2, +object_gi_hookshot, +object_gi_ocarina, +object_gi_milk, +object_ma1, +object_ganon, +object_sst, +object_ny, +object_fr, +object_gi_pachinko, +object_gi_boomerang, +object_gi_bow, +object_gi_glasses, +object_gi_liquid, +object_ani, +object_demo_6k, +object_gi_shield_3, +object_gi_letter, +object_spot15_obj, +object_jya_obj, +object_gi_clothes, +object_gi_bean, +object_gi_fish, +object_gi_saw, +object_gi_hammer, +object_gi_grass, +object_gi_longsword, +object_spot01_objects, +object_md, +object_km1, +object_kw1, +object_zo, +object_kz, +object_umajump, +object_masterkokiri, +object_masterkokirihead, +object_mastergolon, +object_masterzoora, +object_aob, +object_ik, +object_ahg, +object_cne, +object_gi_niwatori, +object_skj, +object_gi_bottle_letter, +object_bji, +object_bba, +object_gi_ocarina_0, +object_ds, +object_ane, +object_boj, +object_spot03_object, +object_spot07_object, +object_fz, +object_bob, +object_ge1, +object_yabusame_point, +object_gi_boots_2, +object_gi_seed, +object_gnd_magic, +object_d_elevator, +object_d_hsblock, +object_d_lift, +object_mamenoki, +object_goroiwa, +object_toryo, +object_daiku, +object_nwc, +object_blkobj, +object_gm, +object_ms, +object_hs, +object_ingate, +object_lightswitch, +object_kusa, +object_tsubo, +object_gi_gloves, +object_gi_coin, +object_kanban, +object_gjyo_objects, +object_owl, +object_mk, +object_fu, +object_gi_ki_tan_mask, +object_gi_redead_mask, +object_gi_skj_mask, +object_gi_rabit_mask, +object_gi_truth_mask, +object_ganon_objects, +object_siofuki, +object_stream, +object_mm, +object_fa, +object_os, +object_gi_eye_lotion, +object_gi_powder, +object_gi_mushroom, +object_gi_ticketstone, +object_gi_brokensword, +object_js, +object_cs, +object_gi_prescription, +object_gi_bracelet, +object_gi_soldout, +object_gi_frog, +object_mag, +object_door_gerudo, +object_gt, +object_efc_erupc, +object_zl2_anime1, +object_zl2_anime2, +object_gi_golonmask, +object_gi_zoramask, +object_gi_gerudomask, +object_ganon2, +object_ka, +object_ts, +object_zg, +object_gi_hoverboots, +object_gi_m_arrow, +object_ds2, +object_ec, +object_fish, +object_gi_sutaru, +object_gi_goddess, +object_ssh, +object_bigokuta, +object_bg, +object_spot05_objects, +object_spot12_obj, +object_bombiwa, +object_hintnuts, +object_rs, +object_spot00_break, +object_gla, +object_shopnuts, +object_geldb, +object_gr, +object_dog, +object_jya_iron, +object_jya_door, +object_spot01_objects2, +object_spot11_obj, +object_kibako2, +object_dns, +object_dnk, +object_gi_fire, +object_gi_insect, +object_gi_butterfly, +object_gi_ghost, +object_gi_soul, +object_bowl, +object_po_field, +object_demo_kekkai, +object_efc_doughnut, +object_gi_dekupouch, +object_ganon_anime1, +object_ganon_anime2, +object_ganon_anime3, +object_gi_rupy, +object_spot01_matoya, +object_spot01_matoyab, +object_po_composer, +object_mu, +object_wf, +object_skb, +object_gj, +object_geff, +object_haka_door, +object_gs, +object_ps, +object_bwall, +object_crow, +object_cow, +object_cob, +object_gi_sword_1, +object_door_killer, +object_ouke_haka, +object_timeblock, +object_zl4, +g_pn_01, +g_pn_02, +g_pn_03, +g_pn_04, +g_pn_05, +g_pn_06, +g_pn_07, +g_pn_08, +g_pn_09, +g_pn_10, +g_pn_11, +g_pn_12, +g_pn_13, +g_pn_14, +g_pn_15, +g_pn_16, +g_pn_17, +g_pn_18, +g_pn_19, +g_pn_20, +g_pn_21, +g_pn_22, +g_pn_23, +g_pn_24, +g_pn_25, +g_pn_26, +g_pn_27, +g_pn_28, +g_pn_29, +g_pn_30, +g_pn_31, +g_pn_32, +g_pn_33, +g_pn_34, +g_pn_35, +g_pn_36, +g_pn_37, +g_pn_38, +g_pn_39, +g_pn_40, +g_pn_41, +g_pn_42, +g_pn_43, +g_pn_44, +g_pn_45, +g_pn_46, +g_pn_47, +g_pn_48, +g_pn_49, +g_pn_50, +g_pn_51, +g_pn_52, +g_pn_53, +g_pn_54, +g_pn_55, +g_pn_56, +g_pn_57, +z_select_static, +nintendo_rogo_static, +title_static, +parameter_static, +vr_fine0_static, +vr_fine0_pal_static, +vr_fine1_static, +vr_fine1_pal_static, +vr_fine2_static, +vr_fine2_pal_static, +vr_fine3_static, +vr_fine3_pal_static, +vr_cloud0_static, +vr_cloud0_pal_static, +vr_cloud1_static, +vr_cloud1_pal_static, +vr_cloud2_static, +vr_cloud2_pal_static, +vr_cloud3_static, +vr_cloud3_pal_static, +vr_holy0_static, +vr_holy0_pal_static, +vr_holy1_static, +vr_holy1_pal_static, +vr_MDVR_static, +vr_MDVR_pal_static, +vr_MNVR_static, +vr_MNVR_pal_static, +vr_RUVR_static, +vr_RUVR_pal_static, +vr_LHVR_static, +vr_LHVR_pal_static, +vr_KHVR_static, +vr_KHVR_pal_static, +vr_K3VR_static, +vr_K3VR_pal_static, +vr_K4VR_static, +vr_K4VR_pal_static, +vr_K5VR_static, +vr_K5VR_pal_static, +vr_SP1a_static, +vr_SP1a_pal_static, +vr_MLVR_static, +vr_MLVR_pal_static, +vr_KKRVR_static, +vr_KKRVR_pal_static, +vr_KR3VR_static, +vr_KR3VR_pal_static, +vr_IPVR_static, +vr_IPVR_pal_static, +vr_KSVR_static, +vr_KSVR_pal_static, +vr_GLVR_static, +vr_GLVR_pal_static, +vr_ZRVR_static, +vr_ZRVR_pal_static, +vr_DGVR_static, +vr_DGVR_pal_static, +vr_ALVR_static, +vr_ALVR_pal_static, +vr_NSVR_static, +vr_NSVR_pal_static, +vr_LBVR_static, +vr_LBVR_pal_static, +vr_TTVR_static, +vr_TTVR_pal_static, +vr_FCVR_static, +vr_FCVR_pal_static, +elf_message_field, +elf_message_ydan, +ydan_scene, +ydan_room_0, +ydan_room_1, +ydan_room_2, +ydan_room_3, +ydan_room_4, +ydan_room_5, +ydan_room_6, +ydan_room_7, +ydan_room_8, +ydan_room_9, +ydan_room_10, +ydan_room_11, +ddan_scene, +ddan_room_0, +ddan_room_1, +ddan_room_2, +ddan_room_3, +ddan_room_4, +ddan_room_5, +ddan_room_6, +ddan_room_7, +ddan_room_8, +ddan_room_9, +ddan_room_10, +ddan_room_11, +ddan_room_12, +ddan_room_13, +ddan_room_14, +ddan_room_15, +ddan_room_16, +bdan_scene, +bdan_room_0, +bdan_room_1, +bdan_room_2, +bdan_room_3, +bdan_room_4, +bdan_room_5, +bdan_room_6, +bdan_room_7, +bdan_room_8, +bdan_room_9, +bdan_room_10, +bdan_room_11, +bdan_room_12, +bdan_room_13, +bdan_room_14, +bdan_room_15, +Bmori1_scene, +Bmori1_room_0, +Bmori1_room_1, +Bmori1_room_2, +Bmori1_room_3, +Bmori1_room_4, +Bmori1_room_5, +Bmori1_room_6, +Bmori1_room_7, +Bmori1_room_8, +Bmori1_room_9, +Bmori1_room_10, +Bmori1_room_11, +Bmori1_room_12, +Bmori1_room_13, +Bmori1_room_14, +Bmori1_room_15, +Bmori1_room_16, +Bmori1_room_17, +Bmori1_room_18, +Bmori1_room_19, +Bmori1_room_20, +Bmori1_room_21, +Bmori1_room_22, +HIDAN_scene, +HIDAN_room_0, +HIDAN_room_1, +HIDAN_room_2, +HIDAN_room_3, +HIDAN_room_4, +HIDAN_room_5, +HIDAN_room_6, +HIDAN_room_7, +HIDAN_room_8, +HIDAN_room_9, +HIDAN_room_10, +HIDAN_room_11, +HIDAN_room_12, +HIDAN_room_13, +HIDAN_room_14, +HIDAN_room_15, +HIDAN_room_16, +HIDAN_room_17, +HIDAN_room_18, +HIDAN_room_19, +HIDAN_room_20, +HIDAN_room_21, +HIDAN_room_22, +HIDAN_room_23, +HIDAN_room_24, +HIDAN_room_25, +HIDAN_room_26, +MIZUsin_scene, +MIZUsin_room_0, +MIZUsin_room_1, +MIZUsin_room_2, +MIZUsin_room_3, +MIZUsin_room_4, +MIZUsin_room_5, +MIZUsin_room_6, +MIZUsin_room_7, +MIZUsin_room_8, +MIZUsin_room_9, +MIZUsin_room_10, +MIZUsin_room_11, +MIZUsin_room_12, +MIZUsin_room_13, +MIZUsin_room_14, +MIZUsin_room_15, +MIZUsin_room_16, +MIZUsin_room_17, +MIZUsin_room_18, +MIZUsin_room_19, +MIZUsin_room_20, +MIZUsin_room_21, +MIZUsin_room_22, +jyasinzou_scene, +jyasinzou_room_0, +jyasinzou_room_1, +jyasinzou_room_2, +jyasinzou_room_3, +jyasinzou_room_4, +jyasinzou_room_5, +jyasinzou_room_6, +jyasinzou_room_7, +jyasinzou_room_8, +jyasinzou_room_9, +jyasinzou_room_10, +jyasinzou_room_11, +jyasinzou_room_12, +jyasinzou_room_13, +jyasinzou_room_14, +jyasinzou_room_15, +jyasinzou_room_16, +jyasinzou_room_17, +jyasinzou_room_18, +jyasinzou_room_19, +jyasinzou_room_20, +jyasinzou_room_21, +jyasinzou_room_22, +jyasinzou_room_23, +jyasinzou_room_24, +jyasinzou_room_25, +jyasinzou_room_26, +jyasinzou_room_27, +jyasinzou_room_28, +HAKAdan_scene, +HAKAdan_room_0, +HAKAdan_room_1, +HAKAdan_room_2, +HAKAdan_room_3, +HAKAdan_room_4, +HAKAdan_room_5, +HAKAdan_room_6, +HAKAdan_room_7, +HAKAdan_room_8, +HAKAdan_room_9, +HAKAdan_room_10, +HAKAdan_room_11, +HAKAdan_room_12, +HAKAdan_room_13, +HAKAdan_room_14, +HAKAdan_room_15, +HAKAdan_room_16, +HAKAdan_room_17, +HAKAdan_room_18, +HAKAdan_room_19, +HAKAdan_room_20, +HAKAdan_room_21, +HAKAdan_room_22, +HAKAdanCH_scene, +HAKAdanCH_room_0, +HAKAdanCH_room_1, +HAKAdanCH_room_2, +HAKAdanCH_room_3, +HAKAdanCH_room_4, +HAKAdanCH_room_5, +HAKAdanCH_room_6, +ice_doukutu_scene, +ice_doukutu_room_0, +ice_doukutu_room_1, +ice_doukutu_room_2, +ice_doukutu_room_3, +ice_doukutu_room_4, +ice_doukutu_room_5, +ice_doukutu_room_6, +ice_doukutu_room_7, +ice_doukutu_room_8, +ice_doukutu_room_9, +ice_doukutu_room_10, +ice_doukutu_room_11, +men_scene, +men_room_0, +men_room_1, +men_room_2, +men_room_3, +men_room_4, +men_room_5, +men_room_6, +men_room_7, +men_room_8, +men_room_9, +men_room_10, +ganontika_scene, +ganontika_room_0, +ganontika_room_1, +ganontika_room_2, +ganontika_room_3, +ganontika_room_4, +ganontika_room_5, +ganontika_room_6, +ganontika_room_7, +ganontika_room_8, +ganontika_room_9, +ganontika_room_10, +ganontika_room_11, +ganontika_room_12, +ganontika_room_13, +ganontika_room_14, +ganontika_room_15, +ganontika_room_16, +ganontika_room_17, +ganontika_room_18, +ganontika_room_19, +spot00_scene, +spot00_room_0, +spot01_scene, +spot01_room_0, +spot02_scene, +spot02_room_0, +spot02_room_1, +spot03_scene, +spot03_room_0, +spot03_room_1, +spot04_scene, +spot04_room_0, +spot04_room_1, +spot04_room_2, +spot05_scene, +spot05_room_0, +spot06_scene, +spot06_room_0, +spot07_scene, +spot07_room_0, +spot07_room_1, +spot08_scene, +spot08_room_0, +spot09_scene, +spot09_room_0, +spot10_scene, +spot10_room_0, +spot10_room_1, +spot10_room_2, +spot10_room_3, +spot10_room_4, +spot10_room_5, +spot10_room_6, +spot10_room_7, +spot10_room_8, +spot10_room_9, +spot11_scene, +spot11_room_0, +spot12_scene, +spot12_room_0, +spot12_room_1, +spot13_scene, +spot13_room_0, +spot13_room_1, +spot15_scene, +spot15_room_0, +spot16_scene, +spot16_room_0, +spot17_scene, +spot17_room_0, +spot17_room_1, +spot18_scene, +spot18_room_0, +spot18_room_1, +spot18_room_2, +spot18_room_3, +market_day_scene, +market_day_room_0, +market_night_scene, +market_night_room_0, +kenjyanoma_scene, +kenjyanoma_room_0, +tokinoma_scene, +tokinoma_room_0, +tokinoma_room_1, +link_home_scene, +link_home_room_0, +kokiri_shop_scene, +kokiri_shop_room_0, +kokiri_home_scene, +kokiri_home_room_0, +kakusiana_scene, +kakusiana_room_0, +kakusiana_room_1, +kakusiana_room_2, +kakusiana_room_3, +kakusiana_room_4, +kakusiana_room_5, +kakusiana_room_6, +kakusiana_room_7, +kakusiana_room_8, +kakusiana_room_9, +kakusiana_room_10, +kakusiana_room_11, +kakusiana_room_12, +kakusiana_room_13, +entra_scene, +entra_room_0, +moribossroom_scene, +moribossroom_room_0, +moribossroom_room_1, +syatekijyou_scene, +syatekijyou_room_0, +shop1_scene, +shop1_room_0, +hairal_niwa_scene, +hairal_niwa_room_0, +ganon_tou_scene, +ganon_tou_room_0, +market_alley_scene, +market_alley_room_0, +spot20_scene, +spot20_room_0, +market_ruins_scene, +market_ruins_room_0, +entra_n_scene, +entra_n_room_0, +enrui_scene, +enrui_room_0, +market_alley_n_scene, +market_alley_n_room_0, +hiral_demo_scene, +hiral_demo_room_0, +kokiri_home3_scene, +kokiri_home3_room_0, +malon_stable_scene, +malon_stable_room_0, +kakariko_scene, +kakariko_room_0, +bdan_boss_scene, +bdan_boss_room_0, +bdan_boss_room_1, +FIRE_bs_scene, +FIRE_bs_room_0, +FIRE_bs_room_1, +hut_scene, +hut_room_0, +daiyousei_izumi_scene, +daiyousei_izumi_room_0, +hakaana_scene, +hakaana_room_0, +yousei_izumi_tate_scene, +yousei_izumi_tate_room_0, +yousei_izumi_yoko_scene, +yousei_izumi_yoko_room_0, +golon_scene, +golon_room_0, +zoora_scene, +zoora_room_0, +drag_scene, +drag_room_0, +alley_shop_scene, +alley_shop_room_0, +night_shop_scene, +night_shop_room_0, +impa_scene, +impa_room_0, +labo_scene, +labo_room_0, +tent_scene, +tent_room_0, +nakaniwa_scene, +nakaniwa_room_0, +ddan_boss_scene, +ddan_boss_room_0, +ddan_boss_room_1, +ydan_boss_scene, +ydan_boss_room_0, +ydan_boss_room_1, +HAKAdan_bs_scene, +HAKAdan_bs_room_0, +HAKAdan_bs_room_1, +MIZUsin_bs_scene, +MIZUsin_bs_room_0, +MIZUsin_bs_room_1, +ganon_scene, +ganon_room_0, +ganon_room_1, +ganon_room_2, +ganon_room_3, +ganon_room_4, +ganon_room_5, +ganon_room_6, +ganon_room_7, +ganon_room_8, +ganon_room_9, +ganon_boss_scene, +ganon_boss_room_0, +jyasinboss_scene, +jyasinboss_room_0, +jyasinboss_room_1, +jyasinboss_room_2, +jyasinboss_room_3, +kokiri_home4_scene, +kokiri_home4_room_0, +kokiri_home5_scene, +kokiri_home5_room_0, +ganon_final_scene, +ganon_final_room_0, +kakariko3_scene, +kakariko3_room_0, +hakasitarelay_scene, +hakasitarelay_room_0, +hakasitarelay_room_1, +hakasitarelay_room_2, +hakasitarelay_room_3, +hakasitarelay_room_4, +hakasitarelay_room_5, +hakasitarelay_room_6, +shrine_scene, +shrine_room_0, +turibori_scene, +turibori_room_0, +shrine_n_scene, +shrine_n_room_0, +shrine_r_scene, +shrine_r_room_0, +hakaana2_scene, +hakaana2_room_0, +gerudoway_scene, +gerudoway_room_0, +gerudoway_room_1, +gerudoway_room_2, +gerudoway_room_3, +gerudoway_room_4, +gerudoway_room_5, +hairal_niwa_n_scene, +hairal_niwa_n_room_0, +bowling_scene, +bowling_room_0, +hakaana_ouke_scene, +hakaana_ouke_room_0, +hakaana_ouke_room_1, +hakaana_ouke_room_2, +hylia_labo_scene, +hylia_labo_room_0, +souko_scene, +souko_room_0, +souko_room_1, +souko_room_2, +miharigoya_scene, +miharigoya_room_0, +mahouya_scene, +mahouya_room_0, +takaraya_scene, +takaraya_room_0, +takaraya_room_1, +takaraya_room_2, +takaraya_room_3, +takaraya_room_4, +takaraya_room_5, +takaraya_room_6, +ganon_sonogo_scene, +ganon_sonogo_room_0, +ganon_sonogo_room_1, +ganon_sonogo_room_2, +ganon_sonogo_room_3, +ganon_sonogo_room_4, +ganon_demo_scene, +ganon_demo_room_0, +face_shop_scene, +face_shop_room_0, +kinsuta_scene, +kinsuta_room_0, +ganontikasonogo_scene, +ganontikasonogo_room_0, +ganontikasonogo_room_1, +bump_texture_static, +anime_model_1_static, +anime_model_2_static, +anime_model_3_static, +anime_model_4_static, +anime_model_5_static, +anime_model_6_static, +anime_texture_1_static, +anime_texture_2_static, +anime_texture_3_static, +anime_texture_4_static, +anime_texture_5_static, +anime_texture_6_static, +softsprite_matrix_static, diff --git a/requirements.txt b/requirements.txt index 70772598e..3d10e8edf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ # Setup and compression crunch64>=0.3.1,<1.0.0 ipl3checksum>=1.2.0,<2.0.0 +pyyaml>=6.0.1,<7.0.0 # asm-differ argcomplete diff --git a/tools/decompress_baserom.py b/tools/decompress_baserom.py index ba93d7931..2feb2b935 100755 --- a/tools/decompress_baserom.py +++ b/tools/decompress_baserom.py @@ -16,6 +16,7 @@ import ipl3checksum import zlib import dmadata +import version_config def decompress_zlib(data: bytes) -> bytes: @@ -172,8 +173,12 @@ def main(): uncompressed_path = baserom_dir / "baserom-decompressed.z64" - dmadata_start = int((baserom_dir / "dmadata_start.txt").read_text(), 16) - compressed_str_hash = (baserom_dir / "checksum-compressed.md5").read_text().split()[0] + config = version_config.load_version_config(version) + dmadata_start = config.dmadata_start + + compressed_str_hash = ( + (baserom_dir / "checksum-compressed.md5").read_text().split()[0] + ) decompressed_str_hash = (baserom_dir / "checksum.md5").read_text().split()[0] if check_existing_rom(uncompressed_path, decompressed_str_hash): diff --git a/tools/extract_baserom.py b/tools/extract_baserom.py index 1d62f8c06..a1c72d1a8 100755 --- a/tools/extract_baserom.py +++ b/tools/extract_baserom.py @@ -10,6 +10,7 @@ from pathlib import Path import sys import dmadata +import version_config def main(): @@ -19,6 +20,12 @@ def main(): parser.add_argument( "rom", metavar="ROM", type=Path, help="Path to uncompressed ROM" ) + parser.add_argument( + "-v", + "--oot-version", + required=True, + help="OOT version", + ) parser.add_argument( "-o", "--output-dir", @@ -29,24 +36,20 @@ def main(): parser.add_argument( "--dmadata-start", type=lambda s: int(s, 16), - required=True, help=( - "The dmadata location in the rom, as a hexadecimal offset (e.g. 0x12f70)" + "Override dmadata location for non-matching ROMs, as a hexadecimal offset (e.g. 0x12F70)" ), ) - parser.add_argument( - "--dmadata-names", - type=Path, - required=True, - help="Path to file containing segment names", - ) args = parser.parse_args() rom_data = memoryview(args.rom.read_bytes()) - dma_names = args.dmadata_names.read_text().splitlines() - dma_entries = dmadata.read_dmadata(rom_data, args.dmadata_start) + config = version_config.load_version_config(args.oot_version) + dmadata_start = args.dmadata_start or config.dmadata_start + dma_names = config.dmadata_segments.keys() + + dma_entries = dmadata.read_dmadata(rom_data, dmadata_start) if len(dma_names) != len(dma_entries): print( f"Error: expected {len(dma_names)} DMA entries but found {len(dma_entries)} in ROM", @@ -60,7 +63,7 @@ def main(): segment_rom_start = dma_entry.vrom_start elif not dma_entry.is_compressed(): segment_rom_start = dma_entry.rom_start - else: # Segment compressed + else: # Segment compressed print(f"Error: segment {dma_name} is compressed", file=sys.stderr) exit(1) diff --git a/tools/msgdis.py b/tools/msgdis.py index dd0da006b..53b178ba7 100755 --- a/tools/msgdis.py +++ b/tools/msgdis.py @@ -7,6 +7,8 @@ import re, struct from os import path import argparse +import version_config + # =================================================== # Util # =================================================== @@ -285,7 +287,7 @@ def read_tables(): global staff_message_entry_table baserom = None - with open(f"baseroms/{version}/baserom-decompressed.z64","rb") as infile: + with open(f"extracted/{version}/baserom/code","rb") as infile: baserom = infile.read() nes_message_entry_table = as_message_table_entry(baserom[nes_message_entry_table_addr:ger_message_entry_table_addr]) @@ -437,26 +439,15 @@ def main(): parser.error("No output file requested") version = args.oot_version - if version == "gc-eu-mq-dbg": - nes_message_entry_table_addr = 0x00BC24C0 - ger_message_entry_table_addr = 0x00BC66E8 - fra_message_entry_table_addr = 0x00BC87F8 - staff_message_entry_table_addr = 0x00BCA908 - staff_message_entry_table_addr_end = 0x00BCAA90 - elif version == "gc-eu-mq": - nes_message_entry_table_addr = 0x00B7E8F0 - ger_message_entry_table_addr = 0x00B82B18 - fra_message_entry_table_addr = 0x00B84C28 - staff_message_entry_table_addr = 0x00B86D38 - staff_message_entry_table_addr_end = 0x00B86EC0 - elif version == "gc-eu": - nes_message_entry_table_addr = 0x00B7E910 - ger_message_entry_table_addr = 0x00B82B38 - fra_message_entry_table_addr = 0x00B84C48 - staff_message_entry_table_addr = 0x00B86D58 - staff_message_entry_table_addr_end = 0x00B86EE0 - else: - parser.error("Unsupported OOT version") + + config = version_config.load_version_config(version) + code_vram = config.dmadata_segments["code"].vram + + nes_message_entry_table_addr = config.variables["sNesMessageEntryTable"] - code_vram + ger_message_entry_table_addr = config.variables["sGerMessageEntryTable"] - code_vram + fra_message_entry_table_addr = config.variables["sFraMessageEntryTable"] - code_vram + staff_message_entry_table_addr = config.variables["sStaffMessageEntryTable"] - code_vram + staff_message_entry_table_addr_end = config.variables["sNesMessageEntryTablePtr"] - code_vram extract_all_text(args.text_out, args.staff_text_out) diff --git a/tools/version_config.py b/tools/version_config.py new file mode 100644 index 000000000..f41bdfc51 --- /dev/null +++ b/tools/version_config.py @@ -0,0 +1,53 @@ +# Version-specific configuration for setup and assets extraction + +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 + +from __future__ import annotations + +from collections import OrderedDict +import csv +import dataclasses +from pathlib import Path +from typing import Optional + +import yaml + +PROJECT_ROOT = Path(__file__).parent.parent + + +@dataclasses.dataclass +class VersionConfig: + # ROM offset to start of DMA table + dmadata_start: int + # DMA segment information, in ROM order + dmadata_segments: OrderedDict[str, SegmentInfo] + # Addresses of important variables needed for asset extraction + variables: Dict[str, int] + + +@dataclasses.dataclass +class SegmentInfo: + name: str + vram: int | None + + +def load_dmadata_segments(version: str) -> OrderedDict[str, SegmentInfo]: + segments = OrderedDict() + with open(PROJECT_ROOT / f"baseroms/{version}/segments.csv", "r") as f: + reader = csv.DictReader(f) + for row in reader: + name = row["Name"] + vram = int(row["VRAM start"], 16) if row["VRAM start"] else None + segments[name] = SegmentInfo(name, vram) + return segments + + +def load_version_config(version: str) -> VersionConfig: + with open(PROJECT_ROOT / f"baseroms/{version}/config.yml", "r") as f: + config = yaml.load(f, Loader=yaml.Loader) + return VersionConfig( + dmadata_start=config["dmadata_start"], + dmadata_segments=load_dmadata_segments(version), + variables=config["variables"], + ) From 38921684a5b8e27218536bfcfa90be9dd664c1fb Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Fri, 21 Jun 2024 03:39:43 +0100 Subject: [PATCH 25/29] Add point lighting gbi features (#1962) * Add point lighting gbi features * Maybe fix bss ordering --- include/ultra64/gbi.h | 524 ++++++++++---------- src/code/sys_math3d.c | 2 +- src/code/z_demo.c | 2 + src/code/z_kankyo.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- 5 files changed, 277 insertions(+), 255 deletions(-) diff --git a/include/ultra64/gbi.h b/include/ultra64/gbi.h index a38d85f03..c84a7b9a2 100644 --- a/include/ultra64/gbi.h +++ b/include/ultra64/gbi.h @@ -12,6 +12,10 @@ #ifndef F3DEX_GBI #define F3DEX_GBI_2 + + /* F3DEX2 with Point Lighting */ + /* TODO this should have version defines, gamecube versions have point light ucode but n64 versions don't */ + #define F3DEX_GBI_PL #endif #ifdef F3DEX_GBI_2 @@ -290,6 +294,9 @@ #define G_TEXTURE_GEN 0x00040000 #define G_TEXTURE_GEN_LINEAR 0x00080000 #define G_LOD 0x00100000 /* NOT IMPLEMENTED */ +#ifdef F3DEX_GBI_PL +# define G_LIGHTING_POSITIONAL 0x00400000 +#endif #if (defined(F3DEX_GBI) || defined(F3DLP_GBI)) # define G_CLIPPING 0x00800000 #else @@ -297,13 +304,16 @@ #endif #ifdef _LANGUAGE_ASSEMBLY -#define G_FOG_H (G_FOG/0x10000) -#define G_LIGHTING_H (G_LIGHTING/0x10000) -#define G_TEXTURE_GEN_H (G_TEXTURE_GEN/0x10000) -#define G_TEXTURE_GEN_LINEAR_H (G_TEXTURE_GEN_LINEAR/0x10000) -#define G_LOD_H (G_LOD/0x10000) /* NOT IMPLEMENTED */ +# define G_FOG_H (G_FOG/0x10000) +# define G_LIGHTING_H (G_LIGHTING/0x10000) +# define G_TEXTURE_GEN_H (G_TEXTURE_GEN/0x10000) +# define G_TEXTURE_GEN_LINEAR_H (G_TEXTURE_GEN_LINEAR/0x10000) +# define G_LOD_H (G_LOD/0x10000) /* NOT IMPLEMENTED */ +# ifdef F3DEX_GBI_PL +# define G_LIGHTING_POSITIONAL_H (G_LIGHTING_POSITIONAL/0x10000) +# endif # if (defined(F3DEX_GBI) || defined(F3DLP_GBI)) -# define G_CLIPPING_H (G_CLIPPING/0x10000) +# define G_CLIPPING_H (G_CLIPPING/0x10000) # endif #endif @@ -1309,6 +1319,17 @@ typedef struct { char pad3; } Light_t; +#ifdef F3DEX_GBI_PL +typedef struct { + unsigned char col[3]; /* point light value (rgba) */ + unsigned char kc; /* constant attenuation (> 0 indicates point light) */ + unsigned char colc[3]; /* copy of point light value (rgba) */ + unsigned char kl; /* linear attenuation */ + short pos[3]; /* world-space position of light */ + unsigned char kq; /* quadratic attenuation */ +} PointLight_t; +#endif + typedef struct { unsigned char col[3]; /* ambient light value (rgba) */ char pad1; @@ -1325,7 +1346,10 @@ typedef struct { } Hilite_t; typedef union { - Light_t l; + Light_t l; +#ifdef F3DEX_GBI_PL + PointLight_t p; +#endif long long int force_structure_alignment[2]; } Light; @@ -1388,259 +1412,255 @@ typedef union { long int force_structure_alignment; } Hilite; -#define gdSPDefLights0(ar, ag, ab) \ - { \ - {{ \ - { ar, ag, ab }, 0, \ - { ar, ag, ab }, 0, \ - }}, \ - { \ - {{ \ - { 0, 0, 0 }, 0, \ - { 0, 0, 0 }, 0, \ - { 0, 0, 0 }, 0, \ - }} \ - } \ - } +#define gDefAmbient(r, g, b) \ + {{ \ + { (r), (g), (b) }, 0, \ + { (r), (g), (b) }, 0, \ + }} -#define gdSPDefLights1(ar, ag, ab, \ - r1, g1, b1, x1, y1, z1) \ - { \ - {{ \ - { ar, ag, ab }, 0, \ - { ar, ag, ab }, 0, \ - }}, \ - { \ - {{ \ - { r1, g1, b1 }, 0, \ - { r1, g1, b1 }, 0, \ - { x1, y1, z1 }, 0, \ - }} \ - } \ - } +#define gDefLight(r, g, b, x, y, z) \ + {{ \ + { (r), (g), (b) }, 0, \ + { (r), (g), (b) }, 0, \ + { (x), (y), (z) }, 0, \ + }} -#define gdSPDefLights2(ar, ag, ab, \ - r1, g1, b1, x1, y1, z1, \ - r2, g2, b2, x2, y2, z2) \ - { \ - {{ \ - { ar, ag, ab }, 0, \ - { ar, ag, ab }, 0, \ - }}, \ - { \ - {{ \ - { r1, g1, b1 }, 0, \ - { r1, g1, b1 }, 0, \ - { x1, y1, z1 }, 0, \ - }}, \ - {{ \ - { r2, g2, b2 }, 0, \ - { r2, g2, b2 }, 0, \ - { x2, y2, z2 }, 0, \ - }} \ - } \ - } +#define gdSPDefLights0(ar, ag, ab) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefLight(0, 0, 0, 0, 0, 0), \ + } \ + } -#define gdSPDefLights3(ar, ag, ab, \ - r1, g1, b1, x1, y1, z1, \ - r2, g2, b2, x2, y2, z2, \ - r3, g3, b3, x3, y3, z3) \ - { \ - {{ \ - { ar, ag, ab }, 0, \ - { ar, ag, ab }, 0, \ - }}, \ - { \ - {{ \ - { r1, g1, b1 }, 0, \ - { r1, g1, b1 }, 0, \ - { x1, y1, z1 }, 0, \ - }}, \ - {{ \ - { r2, g2, b2 }, 0, \ - { r2, g2, b2 }, 0, \ - { x2, y2, z2 }, 0, \ - }}, \ - {{ \ - { r3, g3, b3 }, 0, \ - { r3, g3, b3 }, 0, \ - { x3, y3, z3 }, 0, \ - }} \ - } \ - } +#define gdSPDefLights1(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefLight(r1, g1, b1, x1, y1, z1), \ + } \ + } -#define gdSPDefLights4(ar, ag, ab, \ - r1, g1, b1, x1, y1, z1, \ - r2, g2, b2, x2, y2, z2, \ - r3, g3, b3, x3, y3, z3, \ - r4, g4, b4, x4, y4, z4) \ - { \ - {{ \ - { ar, ag, ab }, 0, \ - { ar, ag, ab }, 0, \ - }}, \ - { \ - {{ \ - { r1, g1, b1 }, 0, \ - { r1, g1, b1 }, 0, \ - { x1, y1, z1 }, 0, \ - }}, \ - {{ \ - { r2, g2, b2 }, 0, \ - { r2, g2, b2 }, 0, \ - { x2, y2, z2 }, 0, \ - }}, \ - {{ \ - { r3, g3, b3 }, 0, \ - { r3, g3, b3 }, 0, \ - { x3, y3, z3 }, 0, \ - }}, \ - {{ \ - { r4, g4, b4 }, 0, \ - { r4, g4, b4 }, 0, \ - { x4, y4, z4 }, 0, \ - }} \ - } \ - } +#define gdSPDefLights2(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, \ + r2, g2, b2, x2, y2, z2) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefLight(r1, g1, b1, x1, y1, z1), \ + gDefLight(r2, g2, b2, x2, y2, z2), \ + } \ + } -#define gdSPDefLights5(ar, ag, ab, \ - r1, g1, b1, x1, y1, z1, \ - r2, g2, b2, x2, y2, z2, \ - r3, g3, b3, x3, y3, z3, \ - r4, g4, b4, x4, y4, z4, \ - r5, g5, b5, x5, y5, z5) \ - { \ - {{ \ - { ar, ag, ab }, 0, \ - { ar, ag, ab }, 0, \ - }}, \ - { \ - {{ \ - { r1, g1, b1 }, 0, \ - { r1, g1, b1 }, 0, \ - { x1, y1, z1 }, 0, \ - }}, \ - {{ \ - { r2, g2, b2 }, 0, \ - { r2, g2, b2 }, 0, \ - { x2, y2, z2 }, 0, \ - }}, \ - {{ \ - { r3, g3, b3 }, 0, \ - { r3, g3, b3 }, 0, \ - { x3, y3, z3 }, 0, \ - }}, \ - {{ \ - { r4, g4, b4 }, 0, \ - { r4, g4, b4 }, 0, \ - { x4, y4, z4 }, 0, \ - }}, \ - {{ \ - { r5, g5, b5 }, 0, \ - { r5, g5, b5 }, 0, \ - { x5, y5, z5 }, 0, \ - }} \ - } \ - } +#define gdSPDefLights3(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, \ + r2, g2, b2, x2, y2, z2) \ + r3, g3, b3, x3, y3, z3) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefLight(r1, g1, b1, x1, y1, z1), \ + gDefLight(r2, g2, b2, x2, y2, z2), \ + gDefLight(r3, g3, b3, x3, y3, z3), \ + } \ + } -#define gdSPDefLights6(ar, ag, ab, \ - r1, g1, b1, x1, y1, z1, \ - r2, g2, b2, x2, y2, z2, \ - r3, g3, b3, x3, y3, z3, \ - r4, g4, b4, x4, y4, z4, \ - r5, g5, b5, x5, y5, z5, \ - r6, g6, b6, x6, y6, z6) \ - { \ - {{ \ - { ar, ag, ab }, 0, \ - { ar, ag, ab }, 0, \ - }}, \ - { \ - {{ \ - { r1, g1, b1 }, 0, \ - { x1, y1, z1 }, 0, \ - { r1, g1, b1 }, 0, \ - }}, \ - {{ \ - { r2, g2, b2 }, 0, \ - { r2, g2, b2 }, 0, \ - { x2, y2, z2 }, 0, \ - }}, \ - {{ \ - { r3, g3, b3 }, 0, \ - { r3, g3, b3 }, 0, \ - { x3, y3, z3 }, 0, \ - }}, \ - {{ \ - { r4, g4, b4 }, 0, \ - { r4, g4, b4 }, 0, \ - { x4, y4, z4 }, 0, \ - }}, \ - {{ \ - { r5, g5, b5 }, 0, \ - { r5, g5, b5 }, 0, \ - { x5, y5, z5 }, 0, \ - }}, \ - {{ \ - { r6, g6, b6 }, 0, \ - { r6, g6, b6 }, 0, \ - { x6, y6, z6 }, 0, \ - }} \ - } \ - } +#define gdSPDefLights4(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, \ + r2, g2, b2, x2, y2, z2, \ + r3, g3, b3, x3, y3, z3, \ + r4, g4, b4, x4, y4, z4) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefLight(r1, g1, b1, x1, y1, z1), \ + gDefLight(r2, g2, b2, x2, y2, z2), \ + gDefLight(r3, g3, b3, x3, y3, z3), \ + gDefLight(r4, g4, b4, x4, y4, z4), \ + } \ + } -#define gdSPDefLights7(ar, ag, ab, \ - r1, g1, b1, x1, y1, z1, \ - r2, g2, b2, x2, y2, z2, \ - r3, g3, b3, x3, y3, z3, \ - r4, g4, b4, x4, y4, z4, \ - r5, g5, b5, x5, y5, z5, \ - r6, g6, b6, x6, y6, z6, \ - r7, g7, b7, x7, y7, z7) \ - { \ - {{ \ - { ar, ag, ab}, 0, \ - { ar, ag, ab}, 0, \ - }}, \ - { \ - {{ \ - { r1, g1, b1 }, 0, \ - { r1, g1, b1 }, 0, \ - { x1, y1, z1 }, 0, \ - }}, \ - {{ \ - { r2, g2, b2 }, 0, \ - { r2, g2, b2 }, 0, \ - { x2, y2, z2 }, 0, \ - }}, \ - {{ \ - { r3, g3, b3 }, 0, \ - { r3, g3, b3 }, 0, \ - { x3, y3, z3 }, 0, \ - }}, \ - {{ \ - { r4, g4, b4 }, 0, \ - { r4, g4, b4 }, 0, \ - { x4, y4, z4 }, 0, \ - }}, \ - {{ \ - { r5, g5, b5 }, 0, \ - { r5, g5, b5 }, 0, \ - { x5, y5, z5 }, 0, \ - }}, \ - {{ \ - { r6, g6, b6 }, 0, \ - { r6, g6, b6 }, 0, \ - { x6, y6, z6 }, 0, \ - }}, \ - {{ \ - { r7, g7, b7 }, 0, \ - { r7, g7, b7 }, 0, \ - { x7, y7, z7 }, 0, \ - }} \ - } \ - } +#define gdSPDefLights5(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, \ + r2, g2, b2, x2, y2, z2, \ + r3, g3, b3, x3, y3, z3, \ + r4, g4, b4, x4, y4, z4) \ + r5, g5, b5, x5, y5, z5) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefLight(r1, g1, b1, x1, y1, z1), \ + gDefLight(r2, g2, b2, x2, y2, z2), \ + gDefLight(r3, g3, b3, x3, y3, z3), \ + gDefLight(r4, g4, b4, x4, y4, z4), \ + gDefLight(r5, g5, b5, x5, y5, z5), \ + } \ + } +#define gdSPDefLights6(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, \ + r2, g2, b2, x2, y2, z2, \ + r3, g3, b3, x3, y3, z3, \ + r4, g4, b4, x4, y4, z4, \ + r5, g5, b5, x5, y5, z5, \ + r6, g6, b6, x6, y6, z6) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefLight(r1, g1, b1, x1, y1, z1), \ + gDefLight(r2, g2, b2, x2, y2, z2), \ + gDefLight(r3, g3, b3, x3, y3, z3), \ + gDefLight(r4, g4, b4, x4, y4, z4), \ + gDefLight(r5, g5, b5, x5, y5, z5), \ + gDefLight(r6, g6, b6, x6, y6, z6), \ + } \ + } + +#define gdSPDefLights7(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, \ + r2, g2, b2, x2, y2, z2, \ + r3, g3, b3, x3, y3, z3, \ + r4, g4, b4, x4, y4, z4, \ + r5, g5, b5, x5, y5, z5, \ + r6, g6, b6, x6, y6, z6) \ + r7, g7, b7, x7, y7, z7) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefLight(r1, g1, b1, x1, y1, z1), \ + gDefLight(r2, g2, b2, x2, y2, z2), \ + gDefLight(r3, g3, b3, x3, y3, z3), \ + gDefLight(r4, g4, b4, x4, y4, z4), \ + gDefLight(r5, g5, b5, x5, y5, z5), \ + gDefLight(r6, g6, b6, x6, y6, z6), \ + gDefLight(r7, g7, b7, x7, y7, z7), \ + } \ + } + +#ifdef F3DEX_GBI_PL + +#define gDefPointLight(r, g, b, x, y, z, kc, kl, kq) \ + {{ \ + { (r1), (g1), (b1) }, (kc), \ + { (r1), (g1), (b1) }, (kl), \ + { (x1), (y1), (z1) }, (kq), \ + }} + +#define gdSPDefPointLights0(ar, ag, ab) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefPointLight(0, 0, 0, 0, 0, 0, 0, 0, 0), \ + } \ + } + +#define gdSPDefPointLights1(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, c1, l1, q1) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefPointLight(r1, g1, b1, x1, y1, z1, c1, l1, q1), \ + } \ + } + +#define gdSPDefPointLights2(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, c1, l1, q1, \ + r2, g2, b2, x2, y2, z2, c2, l2, q2) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefPointLight(r1, g1, b1, x1, y1, z1, c1, l1, q1), \ + gDefPointLight(r2, g2, b2, x2, y2, z2, c2, l2, q2), \ + } \ + } + +#define gdSPDefPointLights3(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, c1, l1, q1, \ + r2, g2, b2, x2, y2, z2, c2, l2, q2) \ + r3, g3, b3, x3, y3, z3, c3, l3, q3) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefPointLight(r1, g1, b1, x1, y1, z1, c1, l1, q1), \ + gDefPointLight(r2, g2, b2, x2, y2, z2, c2, l2, q2), \ + gDefPointLight(r3, g3, b3, x3, y3, z3, c3, l3, q3), \ + } \ + } + +#define gdSPDefPointLights4(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, c1, l1, q1, \ + r2, g2, b2, x2, y2, z2, c2, l2, q2, \ + r3, g3, b3, x3, y3, z3, c3, l3, q3, \ + r4, g4, b4, x4, y4, z4, c4, l4, q4) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefPointLight(r1, g1, b1, x1, y1, z1, c1, l1, q1), \ + gDefPointLight(r2, g2, b2, x2, y2, z2, c2, l2, q2), \ + gDefPointLight(r3, g3, b3, x3, y3, z3, c3, l3, q3), \ + gDefPointLight(r4, g4, b4, x4, y4, z4, c4, l4, q4), \ + } \ + } + +#define gdSPDefPointLights5(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, c1, l1, q1, \ + r2, g2, b2, x2, y2, z2, c2, l2, q2, \ + r3, g3, b3, x3, y3, z3, c3, l3, q3, \ + r4, g4, b4, x4, y4, z4, c4, l4, q4) \ + r5, g5, b5, x5, y5, z5, c5, l5, q5) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefPointLight(r1, g1, b1, x1, y1, z1, c1, l1, q1), \ + gDefPointLight(r2, g2, b2, x2, y2, z2, c2, l2, q2), \ + gDefPointLight(r3, g3, b3, x3, y3, z3, c3, l3, q3), \ + gDefPointLight(r4, g4, b4, x4, y4, z4, c4, l4, q4), \ + gDefPointLight(r5, g5, b5, x5, y5, z5, c5, l5, q5), \ + } \ + } + +#define gdSPDefPointLights6(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, c1, l1, q1, \ + r2, g2, b2, x2, y2, z2, c2, l2, q2, \ + r3, g3, b3, x3, y3, z3, c3, l3, q3, \ + r4, g4, b4, x4, y4, z4, c4, l4, q4) \ + r5, g5, b5, x5, y5, z5, c5, l5, q5) \ + r6, g6, b6, x6, y6, z6, c6, l6, q6) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefPointLight(r1, g1, b1, x1, y1, z1, c1, l1, q1), \ + gDefPointLight(r2, g2, b2, x2, y2, z2, c2, l2, q2), \ + gDefPointLight(r3, g3, b3, x3, y3, z3, c3, l3, q3), \ + gDefPointLight(r4, g4, b4, x4, y4, z4, c4, l4, q4), \ + gDefPointLight(r5, g5, b5, x5, y5, z5, c5, l5, q5), \ + gDefPointLight(r6, g6, b6, x6, y6, z6, c6, l6, q6), \ + } \ + } + +#define gdSPDefPointLights7(ar, ag, ab, \ + r1, g1, b1, x1, y1, z1, c1, l1, q1, \ + r2, g2, b2, x2, y2, z2, c2, l2, q2, \ + r3, g3, b3, x3, y3, z3, c3, l3, q3, \ + r4, g4, b4, x4, y4, z4, c4, l4, q4, \ + r5, g5, b5, x5, y5, z5, c5, l5, q5, \ + r6, g6, b6, x6, y6, z6, c6, l6, q6) \ + r7, g7, b7, x7, y7, z7, c7, l7, q7) \ + { \ + gDefAmbient(ar, ag, ab), \ + { \ + gDefPointLight(r1, g1, b1, x1, y1, z1, c1, l1, q1), \ + gDefPointLight(r2, g2, b2, x2, y2, z2, c2, l2, q2), \ + gDefPointLight(r3, g3, b3, x3, y3, z3, c3, l3, q3), \ + gDefPointLight(r4, g4, b4, x4, y4, z4, c4, l4, q4), \ + gDefPointLight(r5, g5, b5, x5, y5, z5, c5, l5, q5), \ + gDefPointLight(r6, g6, b6, x6, y6, z6, c6, l6, q6), \ + gDefPointLight(r7, g7, b7, x7, y7, z7, c7, l7, q7), \ + } \ + } + +#endif #define gdSPDefLookAt(rightx, righty, rightz, upx, upy, upz) \ {{ \ diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index f0bfb60bc..08578e8fd 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -7,7 +7,7 @@ // For retail BSS ordering, the block number of cbf in Math3D_CylVsCylOverlapCenterDist // must be 0. -#pragma increment_block_number 114 +#pragma increment_block_number 111 s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); diff --git a/src/code/z_demo.c b/src/code/z_demo.c index f7e86f122..8cea75bab 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -115,6 +115,8 @@ void* sUnusedEntranceCsList[] = { gDekuTreeIntroCs, gJabuJabuIntroCs, gDcOpeningCs, gMinuetCs, gIceCavernSerenadeCs, gTowerBarrierCs, }; +#pragma increment_block_number 254 + // Stores the frame the relevant cam data was last applied on u16 gCamAtSplinePointsAppliedFrame; u16 gCamEyePointAppliedFrame; diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index aab406904..5a728aac7 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -7,7 +7,7 @@ // For retail BSS ordering, the block number of sLensFlareUnused must be lower // than the extern variables declared in the header (e.g. gLightningStrike) // while the block number of sNGameOverLightNode must be higher. -#pragma increment_block_number 80 +#pragma increment_block_number 78 typedef enum { /* 0x00 */ LIGHTNING_BOLT_START, diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 76daff7a0..ef33cada4 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -11,7 +11,7 @@ #include "terminal.h" // For retail BSS ordering, the block number of sStreamSfxProjectedPos must be 0. -#pragma increment_block_number 193 +#pragma increment_block_number 190 #define FLAGS ACTOR_FLAG_4 From e4eb5e27b375355202e228f2d3339a2439f68914 Mon Sep 17 00:00:00 2001 From: fig02 Date: Fri, 21 Jun 2024 19:04:06 -0400 Subject: [PATCH 26/29] Rename `ANIM_FLAG_0` to `ANIM_FLAG_UPDATE_XZ` (#1964) * rename anim flag 0 * review * missed a word --- include/z64animation.h | 26 ++++++++-- src/code/z_player_lib.c | 3 +- src/code/z_skelanime.c | 7 +++ src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c | 6 +-- src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c | 4 +- src/overlays/actors/ovl_En_In/z_en_in.c | 2 +- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 2 +- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 12 ++--- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 8 +-- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 2 +- src/overlays/actors/ovl_En_Zl4/z_en_zl4.c | 2 +- .../actors/ovl_player_actor/z_player.c | 50 ++++++++++--------- 12 files changed, 76 insertions(+), 48 deletions(-) diff --git a/include/z64animation.h b/include/z64animation.h index a0b4982b7..1851defc5 100644 --- a/include/z64animation.h +++ b/include/z64animation.h @@ -88,12 +88,30 @@ typedef enum { /* 1 */ ANIMTAPER_ACCEL } AnimationTapers; -#define ANIM_FLAG_0 (1 << 0) // (no effect outside of player) Related to scaling an animation from/to child/adult +// This flag seems like it was intended to be paired with `ANIM_FLAG_UPDATE_Y` to control +// XZ movement based on the current animation. +// However, this flag is not checked by the Skelanime system. XZ movement will always occur +// regardless of the current state of this flag, as long as the "Actor Move" Anim Task is in use. +// The name of this flag is speculative based on its usage in Player and in other actors. +// +// In practice, this flag only affects the scaling of Player's XZ position based on age. +#define ANIM_FLAG_UPDATE_XZ (1 << 0) + +// Enables the movement of an actor in the Y-axis based on the current animation. +// This only has an effect if the "Actor Move" Anim Task is in use. #define ANIM_FLAG_UPDATE_Y (1 << 1) -#define ANIM_FLAG_PLAYER_2 (1 << 2) // (player-only) Related to scaling an animation from/to child/adult -#define ANIM_FLAG_PLAYER_SETMOVE (1 << 3) // (player-only) Call AnimTaskQueue_AddActorMove + +// (player-only) Related to scaling an animation from/to child/adult +#define ANIM_FLAG_PLAYER_2 (1 << 2) + +// (player-only) Call AnimTaskQueue_AddActorMove +#define ANIM_FLAG_PLAYER_SETMOVE (1 << 3) + +// #define ANIM_FLAG_NO_MOVE (1 << 4) -#define ANIM_FLAG_PLAYER_7 (1 << 7) // (player-only) + +// (player-only) +#define ANIM_FLAG_PLAYER_7 (1 << 7) typedef struct SkelAnime { /* 0x00 */ u8 limbCount; // Number of limbs in the skeleton diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 77f0cd035..391407644 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -1125,7 +1125,8 @@ s32 Player_OverrideLimbDrawGameplayCommon(PlayState* play, s32 limbIndex, Gfx** sCurBodyPartPos = &this->bodyPartsPos[0] - 1; if (!LINK_IS_ADULT) { - if (!(this->skelAnime.moveFlags & ANIM_FLAG_PLAYER_2) || (this->skelAnime.moveFlags & ANIM_FLAG_0)) { + if (!(this->skelAnime.moveFlags & ANIM_FLAG_PLAYER_2) || + (this->skelAnime.moveFlags & ANIM_FLAG_UPDATE_XZ)) { pos->x *= 0.64f; pos->z *= 0.64f; } diff --git a/src/code/z_skelanime.c b/src/code/z_skelanime.c index acc01cb74..bef23de1e 100644 --- a/src/code/z_skelanime.c +++ b/src/code/z_skelanime.c @@ -1838,6 +1838,7 @@ void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* diff, s16 angle) { f32 sin; f32 cos; + // If `ANIM_FLAG_UPDATE_XZ` behaved as expected, it would also be checked here if (skelAnime->moveFlags & ANIM_FLAG_NO_MOVE) { diff->x = diff->z = 0.0f; } else { @@ -1847,6 +1848,7 @@ void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* diff, s16 angle) { cos = Math_CosS(angle); diff->x = x * cos + z * sin; diff->z = z * cos - x * sin; + x = skelAnime->prevTransl.x; z = skelAnime->prevTransl.z; sin = Math_SinS(skelAnime->prevRot); @@ -1856,22 +1858,27 @@ void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* diff, s16 angle) { } skelAnime->prevRot = angle; + skelAnime->prevTransl.x = skelAnime->jointTable[0].x; skelAnime->jointTable[0].x = skelAnime->baseTransl.x; + skelAnime->prevTransl.z = skelAnime->jointTable[0].z; skelAnime->jointTable[0].z = skelAnime->baseTransl.z; + if (skelAnime->moveFlags & ANIM_FLAG_UPDATE_Y) { if (skelAnime->moveFlags & ANIM_FLAG_NO_MOVE) { diff->y = 0.0f; } else { diff->y = skelAnime->jointTable[0].y - skelAnime->prevTransl.y; } + skelAnime->prevTransl.y = skelAnime->jointTable[0].y; skelAnime->jointTable[0].y = skelAnime->baseTransl.y; } else { diff->y = 0.0f; skelAnime->prevTransl.y = skelAnime->jointTable[0].y; } + skelAnime->moveFlags &= ~ANIM_FLAG_NO_MOVE; } diff --git a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c index 1f4bcf362..c3d0e6327 100644 --- a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c +++ b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c @@ -176,19 +176,19 @@ void DemoEc_UpdateBgFlags(DemoEc* this, PlayState* play) { } void func_8096D594(DemoEc* this, PlayState* play) { - this->skelAnime.moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y; AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_8096D5D4(DemoEc* this, PlayState* play) { this->skelAnime.baseTransl = this->skelAnime.jointTable[0]; this->skelAnime.prevTransl = this->skelAnime.jointTable[0]; - this->skelAnime.moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y; AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_8096D64C(DemoEc* this, PlayState* play) { - this->skelAnime.moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y; AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } diff --git a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c index 0d2d7b24d..fcb7817e6 100644 --- a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c +++ b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c @@ -54,12 +54,12 @@ s32 DemoIk_CheckForCue(PlayState* play, u16 cueId, s32 cueChannel) { } void DemoIk_SetMove(DemoIk* this, PlayState* play) { - this->skelAnime.moveFlags |= ANIM_FLAG_0; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ; AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void DemoIk_EndMove(DemoIk* this) { - this->skelAnime.moveFlags &= ~ANIM_FLAG_0; + this->skelAnime.moveFlags &= ~ANIM_FLAG_UPDATE_XZ; } f32 DemoIk_GetCurFrame(DemoIk* this) { diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c index ff1a9bda7..5e63760b2 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -337,7 +337,7 @@ void func_80A795C8(EnIn* this, PlayState* play) { void func_80A79690(SkelAnime* skelAnime, EnIn* this, PlayState* play) { if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) { - skelAnime->moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; + skelAnime->moveFlags |= ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y; AnimTaskQueue_AddActorMove(play, &this->actor, skelAnime, 1.0f); } } diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.c b/src/overlays/actors/ovl_En_Nb/z_en_nb.c index 2421276be..454c36a15 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -756,7 +756,7 @@ void EnNb_InitDemo6KInConfrontation(EnNb* this, PlayState* play) { } void func_80AB2688(EnNb* this, PlayState* play) { - this->skelAnime.moveFlags |= ANIM_FLAG_0; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ; AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c index e0549aca4..d33d43917 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -391,17 +391,17 @@ s32 EnRu1_UpdateSkelAnime(EnRu1* this) { } void func_80AEB364(EnRu1* this, PlayState* play) { - this->skelAnime.moveFlags |= ANIM_FLAG_0; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ; AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_80AEB3A4(EnRu1* this, PlayState* play) { - this->skelAnime.moveFlags |= ANIM_FLAG_0; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ; func_80AEB364(this, play); } void func_80AEB3CC(EnRu1* this) { - this->skelAnime.moveFlags &= ~ANIM_FLAG_0; + this->skelAnime.moveFlags &= ~ANIM_FLAG_UPDATE_XZ; } void func_80AEB3DC(EnRu1* this, PlayState* play) { @@ -462,7 +462,7 @@ void func_80AEB6E0(EnRu1* this, PlayState* play) { SkelAnime* skelAnime = &this->skelAnime; if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) { - skelAnime->moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; + skelAnime->moveFlags |= ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y; AnimTaskQueue_AddActorMove(play, &this->actor, skelAnime, 1.0f); } } @@ -473,13 +473,13 @@ void func_80AEB738(EnRu1* this, PlayState* play) { skelAnime->baseTransl = skelAnime->jointTable[0]; skelAnime->prevTransl = skelAnime->jointTable[0]; if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) { - skelAnime->moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; + skelAnime->moveFlags |= ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y; AnimTaskQueue_AddActorMove(play, &this->actor, skelAnime, 1.0f); } } void func_80AEB7D0(EnRu1* this) { - this->skelAnime.moveFlags &= ~(ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y); + this->skelAnime.moveFlags &= ~(ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y); } f32 func_80AEB7E0(CsCmdActorCue* cue, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 826edcc72..1f3b1bca9 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -254,25 +254,25 @@ void func_80B3C8CC(EnXc* this, PlayState* play) { SkelAnime* skelAnime = &this->skelAnime; if (skelAnime->jointTable[0].y >= skelAnime->baseTransl.y) { - skelAnime->moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; + skelAnime->moveFlags |= ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y; AnimTaskQueue_AddActorMove(play, &this->actor, skelAnime, 1.0f); } } void func_80B3C924(EnXc* this, PlayState* play) { - this->skelAnime.moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y; AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_80B3C964(EnXc* this, PlayState* play) { this->skelAnime.baseTransl = this->skelAnime.jointTable[0]; this->skelAnime.prevTransl = this->skelAnime.jointTable[0]; - this->skelAnime.moveFlags |= ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y; AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } void func_80B3C9DC(EnXc* this) { - this->skelAnime.moveFlags &= ~(ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y); + this->skelAnime.moveFlags &= ~(ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y); } void func_80B3C9EC(EnXc* this) { diff --git a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c index 2b1c7d332..1780cc1c9 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -345,7 +345,7 @@ void func_80B4B834(CsCmdActorCue* cue, Vec3f* dest) { } void func_80B4B874(EnZl1* this, PlayState* play) { - this->skelAnime.moveFlags |= ANIM_FLAG_0; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ; AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } diff --git a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c index 2cf5b1d2a..fb6cbd9ec 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -298,7 +298,7 @@ void EnZl4_UpdateFace(EnZl4* this) { } void EnZl4_SetMove(EnZl4* this, PlayState* play) { - this->skelAnime.moveFlags |= ANIM_FLAG_0; + this->skelAnime.moveFlags |= ANIM_FLAG_UPDATE_XZ; AnimTaskQueue_AddActorMove(play, &this->actor, &this->skelAnime, 1.0f); } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index db42ef755..c4eea92ed 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3399,8 +3399,8 @@ s32 Player_UpdateUpperBody(Player* this, PlayState* play) { this->stateFlags3 |= PLAYER_STATE3_7; Player_AnimPlayOnce(play, this, &gPlayerAnim_link_hook_fly_start); Player_AnimReplaceApplyFlags(play, this, - ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | - ANIM_FLAG_PLAYER_7); + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE | + ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7); func_80832224(this); this->yaw = this->actor.shape.rot.y; this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; @@ -4144,7 +4144,8 @@ void func_80837948(PlayState* play, Player* this, s32 arg2) { Player_AnimPlayOnceAdjusted(play, this, D_80854190[arg2].unk_00); if ((arg2 != PLAYER_MWA_FLIPSLASH_START) && (arg2 != PLAYER_MWA_JUMPSLASH_START)) { - Player_AnimReplaceApplyFlags(play, this, ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_0 | ANIM_FLAG_PLAYER_SETMOVE); + Player_AnimReplaceApplyFlags(play, this, + ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_PLAYER_SETMOVE); } this->yaw = this->actor.shape.rot.y; @@ -4189,7 +4190,7 @@ s32 func_80837B18(PlayState* play, Player* this, s32 damage) { void func_80837B60(Player* this) { this->skelAnime.prevTransl = this->skelAnime.jointTable[0]; - func_80832E48(this, ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y); + func_80832E48(this, ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y); } void func_80837B9C(Player* this, PlayState* play) { @@ -5054,7 +5055,7 @@ s32 Player_ActionChange_1(Player* this, PlayState* play) { func_80832224(this); Player_AnimReplaceApplyFlags(play, this, - ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y | + ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_PLAYER_7); // If this door is the second half of a double door (spawned as child) @@ -5365,7 +5366,7 @@ s32 func_8083A6AC(Player* this, PlayState* play) { this->stateFlags1 |= PLAYER_STATE1_21; Player_AnimReplaceApplyFlags(play, this, - ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_2 | + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7); this->av2.actionVar2 = -1; @@ -6720,8 +6721,8 @@ s32 Player_ActionChange_3(Player* this, PlayState* play) { Actor_MountHorse(play, this, &rideActor->actor); Player_AnimPlayOnce(play, this, D_80854578[temp].anim); Player_AnimReplaceApplyFlags(play, this, - ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | - ANIM_FLAG_PLAYER_7); + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE | + ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7); this->actor.parent = this->rideActor; func_80832224(this); @@ -6888,7 +6889,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) { (Item_CheckObtainability(giEntry->itemId) == ITEM_NONE)) { Player_AnimPlayOnceAdjusted(play, this, this->ageProperties->unk_98); Player_AnimReplaceApplyFlags(play, this, - ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y | + ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_PLAYER_7); chest->unk_1F4 = 1; @@ -7067,7 +7068,7 @@ s32 func_8083EC18(Player* this, PlayState* play, u32 wallFlags) { Math_Vec3f_Copy(&this->actor.prevPos, &this->actor.world.pos); Player_AnimPlayOnce(play, this, anim); Player_AnimReplaceApplyFlags(play, this, - ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_2 | + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7); return true; @@ -7148,7 +7149,7 @@ s32 Player_TryEnteringCrawlspace(Player* this, PlayState* play, u32 interactWall this->actor.prevPos = this->actor.world.pos; Player_AnimPlayOnce(play, this, &gPlayerAnim_link_child_tunnel_start); Player_AnimReplaceApplyFlags(play, this, - ANIM_FLAG_0 | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7); return true; @@ -7238,7 +7239,7 @@ s32 Player_TryLeavingCrawlspace(Player* this, PlayState* play) { this->actor.shape.rot.y = this->actor.wallYaw + 0x8000; Player_AnimPlayOnce(play, this, &gPlayerAnim_link_child_tunnel_end); Player_AnimReplaceApplyFlags(play, this, - ANIM_FLAG_0 | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7); OnePointCutscene_Init(play, 9601, 999, NULL, CAM_ID_MAIN); } else { @@ -7248,7 +7249,7 @@ s32 Player_TryLeavingCrawlspace(Player* this, PlayState* play) { Animation_GetLastFrame(&gPlayerAnim_link_child_tunnel_start), 0.0f, ANIMMODE_ONCE, 0.0f); Player_AnimReplaceApplyFlags(play, this, - ANIM_FLAG_0 | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7); OnePointCutscene_Init(play, 9602, 999, NULL, CAM_ID_MAIN); } @@ -9967,8 +9968,8 @@ void func_808467D4(PlayState* play, Player* this) { LinkAnimation_Change(play, &this->skelAnime, this->ageProperties->unk_A0, 2.0f / 3.0f, 0.0f, 0.0f, ANIMMODE_ONCE, 0.0f); Player_AnimReplaceApplyFlags(play, this, - ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_2 | - ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_PLAYER_7); + ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | + ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_PLAYER_7); if (LINK_IS_ADULT) { func_80846720(play, this, 0); } @@ -9978,8 +9979,8 @@ void func_808467D4(PlayState* play, Player* this) { void func_808468A8(PlayState* play, Player* this) { Player_SetupAction(play, this, Player_Action_8084F9A0, 0); Player_AnimReplaceApplyFlags(play, this, - ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | - ANIM_FLAG_PLAYER_7); + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE | + ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7); } void func_808468E8(PlayState* play, Player* this) { @@ -11134,7 +11135,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { this->stateFlags1 |= PLAYER_STATE1_23; Player_AnimPlayOnce(play, this, &gPlayerAnim_link_uma_wait_1); Player_AnimReplaceApplyFlags(play, this, - ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE | + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7); this->av2.actionVar2 = 99; } @@ -12154,7 +12155,7 @@ void Player_Action_8084BDFC(Player* this, PlayState* play) { this->stateFlags2 |= PLAYER_STATE2_6; if (LinkAnimation_Update(play, &this->skelAnime)) { - func_80832E48(this, ANIM_FLAG_0); + func_80832E48(this, ANIM_FLAG_UPDATE_XZ); func_8083C0E8(this, play); return; } @@ -14800,8 +14801,8 @@ void func_808519EC(PlayState* play, Player* this, CsCmdActorCue* cue) { this->actor.shape.rot.y = -0x8000; Player_AnimPlayOnceAdjusted(play, this, this->ageProperties->unk_9C); Player_AnimReplaceApplyFlags(play, this, - ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_0 | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_2 | - ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_PLAYER_7); + ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | + ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_PLAYER_7); } static struct_808551A4 D_808551A4[] = { @@ -14977,8 +14978,8 @@ void func_80852048(PlayState* play, Player* this, CsCmdActorCue* cue) { void func_80852080(PlayState* play, Player* this, CsCmdActorCue* cue) { Player_AnimReplacePlayOnceAdjusted(play, this, &gPlayerAnim_clink_demo_futtobi, - ANIM_FLAG_0 | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | - ANIM_FLAG_PLAYER_7); + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | + ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7); func_80832698(this, NA_SE_VO_LI_FALL_L); } @@ -15458,7 +15459,8 @@ void func_80853148(PlayState* play, Actor* actor) { } if (this->skelAnime.animation == &gPlayerAnim_link_normal_backspace) { - Player_AnimReplaceApplyFlags(play, this, ANIM_FLAG_0 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE); + Player_AnimReplaceApplyFlags(play, this, + ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE); } func_80832224(this); From 52e7483392c9fa046adb120be1d238ba4b019443 Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Sat, 22 Jun 2024 13:49:07 +0100 Subject: [PATCH 27/29] Sync gbi.h with MM, move ucode defines to makefile (#1968) * Sync gbi.h with MM, move ucode defines to makefile, use GBI_DEBUG instead of OOT_DEBUG * UCODE_DEFS -> GBI_DEFINES, add GBI_DOWHILE toggle --- Makefile | 12 ++++++++++-- include/ultra64/gbi.h | 33 ++++++++++++++++++++------------- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 6ed8f3e2c..8c5718189 100644 --- a/Makefile +++ b/Makefile @@ -156,6 +156,14 @@ ifeq ($(COMPILER),gcc) OPTFLAGS := -Os -ffast-math -fno-unsafe-math-optimizations endif +# TODO PL and DOWHILE should be disabled for non-gamecube +GBI_DEFINES := -DF3DEX_GBI_2 -DF3DEX_GBI_PL -DGBI_DOWHILE +ifeq ($(DEBUG),1) + GBI_DEFINES += -DGBI_DEBUG +endif + +CFLAGS += $(GBI_DEFINES) + ASFLAGS := -march=vr4300 -32 -no-pad-sections -Iinclude ifeq ($(COMPILER),gcc) @@ -172,7 +180,7 @@ endif ifeq ($(COMPILER),ido) # Have CC_CHECK pretend to be a MIPS compiler MIPS_BUILTIN_DEFS := -D_MIPS_ISA_MIPS2=2 -D_MIPS_ISA=_MIPS_ISA_MIPS2 -D_ABIO32=1 -D_MIPS_SIM=_ABIO32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32 - CC_CHECK = gcc -fno-builtin -fsyntax-only -funsigned-char -std=gnu90 -D_LANGUAGE_C $(CPP_DEFINES) $(MIPS_BUILTIN_DEFS) $(INC) $(CHECK_WARNINGS) + CC_CHECK = gcc -fno-builtin -fsyntax-only -funsigned-char -std=gnu90 -D_LANGUAGE_C $(CPP_DEFINES) $(MIPS_BUILTIN_DEFS) $(GBI_DEFINES) $(INC) $(CHECK_WARNINGS) ifeq ($(shell getconf LONG_BIT), 32) # Work around memory allocation bug in QEMU export QEMU_GUEST_BASE := 1 @@ -301,7 +309,7 @@ $(BUILD_DIR)/src/libultra/libc/%.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/libultra/rmon/%.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/libultra/gu/%.o: OPTFLAGS := -O2 -$(BUILD_DIR)/assets/misc/z_select_static/%.o: CFLAGS += -DF3DEX_GBI +$(BUILD_DIR)/assets/misc/z_select_static/%.o: GBI_DEFINES := -DF3DEX_GBI $(BUILD_DIR)/src/libultra/gu/%.o: CC := $(CC_OLD) $(BUILD_DIR)/src/libultra/io/%.o: CC := $(CC_OLD) diff --git a/include/ultra64/gbi.h b/include/ultra64/gbi.h index c84a7b9a2..058fcb3cd 100644 --- a/include/ultra64/gbi.h +++ b/include/ultra64/gbi.h @@ -3,21 +3,17 @@ #ifndef ULTRA64_GBI_H #define ULTRA64_GBI_H +#ifdef GBI_DOWHILE +/* Private macro to wrap other macros in do {...} while (0) */ +#define _DW(macro) do { macro } while (0) +#else +#define _DW(macro) { macro } (void)0 +#endif + /* To enable Fast3DEX grucode support, define F3DEX_GBI. */ /* Types */ -/* Private macro to wrap other macros in do {...} while (0) */ -#define _DW(macro) do {macro} while (0) - -#ifndef F3DEX_GBI - #define F3DEX_GBI_2 - - /* F3DEX2 with Point Lighting */ - /* TODO this should have version defines, gamecube versions have point light ucode but n64 versions don't */ - #define F3DEX_GBI_PL -#endif - #ifdef F3DEX_GBI_2 # ifndef F3DEX_GBI # define F3DEX_GBI @@ -2015,7 +2011,9 @@ typedef union { Gquad quad; #endif Gline3D line; +#if (defined(F3DLP_GBI) || defined(F3DEX_GBI)) Gcull cull; +#endif Gmovewd movewd; Gmovemem movemem; Gpopmtx popmtx; @@ -3455,6 +3453,15 @@ _DW({ \ gsSPSetOtherMode( G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 2, mode) #endif +/* + * Majora's Mask Extension, sets both RGB and Alpha dither modes in the same + * macro. `mode` should use both G_CD_* and G_AD_* constants. + */ +#define gDPSetDither(pkt, mode) \ + gSPSetOtherMode(pkt, G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 4, mode) +#define gsDPSetDither(mode) \ + gsSPSetOtherMode( G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 4, mode) + /* 'blendmask' is not supported anymore. * The bits are reserved for future use. * Fri May 26 13:45:55 PDT 1995 @@ -5143,7 +5150,7 @@ _DW({ \ #define gDPNoOpTag(pkt, tag) gDPParam(pkt, G_NOOP, tag) #define gsDPNoOpTag(tag) gsDPParam( G_NOOP, tag) -#if OOT_DEBUG +#ifdef GBI_DEBUG #define gDPNoOpHere(pkt, file, line) gDma1p(pkt, G_NOOP, file, line, 1) #define gDPNoOpString(pkt, data, n) gDma1p(pkt, G_NOOP, data, n, 2) @@ -5169,7 +5176,7 @@ _DW({ \ #define gDPNoOpCloseDisp(pkt, file, line) #define gDPNoOpTag3(pkt, type, data, n) -#endif /* OOT_DEBUG */ +#endif /* GBI_DEBUG */ #endif From b2d80568b9f1a1e59e9e00f29d3936c7cd7e18c3 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sat, 22 Jun 2024 06:20:49 -0700 Subject: [PATCH 28/29] Automatically find end of staff message table (#1970) --- baseroms/gc-eu-mq-dbg/config.yml | 1 - baseroms/gc-eu-mq/config.yml | 1 - baseroms/gc-eu/config.yml | 1 - tools/msgdis.py | 21 ++++++++++++--------- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/baseroms/gc-eu-mq-dbg/config.yml b/baseroms/gc-eu-mq-dbg/config.yml index dd6123e33..add24c911 100644 --- a/baseroms/gc-eu-mq-dbg/config.yml +++ b/baseroms/gc-eu-mq-dbg/config.yml @@ -5,4 +5,3 @@ variables: sGerMessageEntryTable: 0x8014F548 sFraMessageEntryTable: 0x80151658 sStaffMessageEntryTable: 0x80153768 - sNesMessageEntryTablePtr: 0x801538F0 diff --git a/baseroms/gc-eu-mq/config.yml b/baseroms/gc-eu-mq/config.yml index 822d52220..18c23a377 100644 --- a/baseroms/gc-eu-mq/config.yml +++ b/baseroms/gc-eu-mq/config.yml @@ -5,4 +5,3 @@ variables: sGerMessageEntryTable: 0x8010BA18 sFraMessageEntryTable: 0x8010DB28 sStaffMessageEntryTable: 0x8010FC38 - sNesMessageEntryTablePtr: 0x8010FDC0 diff --git a/baseroms/gc-eu/config.yml b/baseroms/gc-eu/config.yml index ceb85239b..795a423ad 100644 --- a/baseroms/gc-eu/config.yml +++ b/baseroms/gc-eu/config.yml @@ -5,4 +5,3 @@ variables: sGerMessageEntryTable: 0x8010BA38 sFraMessageEntryTable: 0x8010DB48 sStaffMessageEntryTable: 0x8010FC58 - sNesMessageEntryTablePtr: 0x8010FDE0 diff --git a/tools/msgdis.py b/tools/msgdis.py index 53b178ba7..87e5c1f90 100755 --- a/tools/msgdis.py +++ b/tools/msgdis.py @@ -23,10 +23,16 @@ def as_word_list(b): return None return [i[0] for i in struct.iter_unpack(">I", b)] -def as_message_table_entry(b): - if len(b) % 8 != 0: - return None - return [(e[0], e[1]>>0x4&0xF, e[1]&0xF, e[2]) for e in [i for i in struct.iter_unpack(">HBxI", b)]] +def read_message_table(b, offset): + table = [] + while True: + e = struct.unpack(">HBxI", b[offset:offset+8]) + entry = (e[0], e[1]>>0x4&0xF, e[1]&0xF, e[2]) + table.append(entry) + offset += 8 + if entry[0] == 0xFFFF: + break + return table def segmented_to_physical(address): return address & ~0x07000000 @@ -268,7 +274,6 @@ nes_message_entry_table_addr = None ger_message_entry_table_addr = None fra_message_entry_table_addr = None staff_message_entry_table_addr = None -staff_message_entry_table_addr_end = None nes_message_entry_table = [] ger_message_entry_table = [] @@ -290,7 +295,7 @@ def read_tables(): with open(f"extracted/{version}/baserom/code","rb") as infile: baserom = infile.read() - nes_message_entry_table = as_message_table_entry(baserom[nes_message_entry_table_addr:ger_message_entry_table_addr]) + nes_message_entry_table = read_message_table(baserom, nes_message_entry_table_addr) ids = [entry[0] for entry in nes_message_entry_table if entry[0] != 0xFFFC] ger_message_entry_table = list(zip(ids,as_word_list(baserom[ger_message_entry_table_addr: fra_message_entry_table_addr]))) @@ -302,7 +307,7 @@ def read_tables(): else: combined_message_entry_table.append((*entry, None, None)) - staff_message_entry_table = as_message_table_entry(baserom[staff_message_entry_table_addr:staff_message_entry_table_addr_end]) + staff_message_entry_table = read_message_table(baserom, staff_message_entry_table_addr) # =================================================== # Run @@ -423,7 +428,6 @@ def main(): global ger_message_entry_table_addr global fra_message_entry_table_addr global staff_message_entry_table_addr - global staff_message_entry_table_addr_end parser = argparse.ArgumentParser( description="Extract text from the baserom into .h files" @@ -447,7 +451,6 @@ def main(): ger_message_entry_table_addr = config.variables["sGerMessageEntryTable"] - code_vram fra_message_entry_table_addr = config.variables["sFraMessageEntryTable"] - code_vram staff_message_entry_table_addr = config.variables["sStaffMessageEntryTable"] - code_vram - staff_message_entry_table_addr_end = config.variables["sNesMessageEntryTablePtr"] - code_vram extract_all_text(args.text_out, args.staff_text_out) From 9def6f4d0d252e45a71d0d2ee5d9042023d84315 Mon Sep 17 00:00:00 2001 From: cadmic Date: Mon, 24 Jun 2024 06:22:39 -0700 Subject: [PATCH 29/29] Set up multiversion assets with ZAPD and match gc-eu (#1967) * Add ZAPD hack to deal with extracted/VERSION/ in include paths * Extract assets to extracted/VERSION * Add ZAPD flags to override virtual address / start offset / end offset * Configure offsets for code and overlay assets * Reorganize ZAPD configs * Match gc-eu-mq * Match gc-eu * Remove old asset dirs during distclean * Revert "Remove old asset dirs during distclean" This reverts commit fc8027a75f82289eee7b1822b82663b70789d63f. * make zapd addresses globals int64_t so they can store uint32_t addresses and -1 * slight cleanup extract_assets.py * git subrepo pull --force tools/ZAPD subrepo: subdir: "tools/ZAPD" merged: "0285e11f0" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "0285e11f0" git-subrepo: version: "0.4.6" origin: "git@github.com:ingydotnet/git-subrepo.git" commit: "110b9eb" --------- Co-authored-by: Dragorn421 --- Makefile | 47 +- assets/.gitignore | 7 - assets/xml/code/fbdemo_circle.xml | 14 +- assets/xml/code/fbdemo_triforce.xml | 6 +- assets/xml/code/fbdemo_wipe1.xml | 8 +- assets/xml/objects/object_mag.xml | 30 +- assets/xml/objects/object_mag_mq.xml | 23 + assets/xml/overlays/ovl_Arrow_Fire.xml | 12 +- assets/xml/overlays/ovl_Arrow_Ice.xml | 12 +- assets/xml/overlays/ovl_Arrow_Light.xml | 12 +- assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml | 26 +- assets/xml/overlays/ovl_Bg_Jya_Cobra.xml | 6 +- assets/xml/overlays/ovl_Boss_Dodongo.xml | 6 +- assets/xml/overlays/ovl_Boss_Ganon.xml | 92 +- assets/xml/overlays/ovl_Boss_Ganon2.xml | 46 +- assets/xml/overlays/ovl_Boss_Sst.xml | 10 +- assets/xml/overlays/ovl_Demo_Shd.xml | 8 +- .../xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml | 8 +- assets/xml/overlays/ovl_Elf_Msg.xml | 12 +- assets/xml/overlays/ovl_Elf_Msg2.xml | 8 +- assets/xml/overlays/ovl_En_Bili.xml | 6 +- assets/xml/overlays/ovl_En_Clear_Tag.xml | 22 +- assets/xml/overlays/ovl_En_Ganon_Mant.xml | 16 +- assets/xml/overlays/ovl_En_Ganon_Organ.xml | 30 +- assets/xml/overlays/ovl_En_Holl.xml | 6 +- assets/xml/overlays/ovl_En_Jsjutan.xml | 22 +- assets/xml/overlays/ovl_En_Kanban.xml | 6 +- assets/xml/overlays/ovl_En_Sda.xml | 8 +- assets/xml/overlays/ovl_En_Ssh.xml | 6 +- assets/xml/overlays/ovl_En_St.xml | 6 +- assets/xml/overlays/ovl_En_Sth.xml | 24 +- assets/xml/overlays/ovl_End_Title.xml | 20 +- assets/xml/overlays/ovl_File_Choose.xml | 28 - assets/xml/overlays/ovl_Magic_Dark.xml | 10 +- assets/xml/overlays/ovl_Magic_Fire.xml | 10 +- assets/xml/overlays/ovl_Magic_Wind.xml | 20 +- assets/xml/overlays/ovl_Oceff_Spot.xml | 10 +- assets/xml/overlays/ovl_Oceff_Storm.xml | 12 +- assets/xml/overlays/ovl_Oceff_Wipe.xml | 10 +- assets/xml/overlays/ovl_Oceff_Wipe2.xml | 12 +- assets/xml/overlays/ovl_Oceff_Wipe3.xml | 10 +- assets/xml/overlays/ovl_Oceff_Wipe4.xml | 12 +- assets/xml/overlays/ovl_file_choose.xml | 28 + assets/xml/scenes/dungeons/Bmori1_mq.xml | 76 ++ assets/xml/scenes/dungeons/HAKAdanCH.xml | 2 +- assets/xml/scenes/dungeons/HAKAdanCH_mq.xml | 27 + assets/xml/scenes/dungeons/HAKAdan_mq.xml | 74 + assets/xml/scenes/dungeons/HIDAN.xml | 2 +- assets/xml/scenes/dungeons/HIDAN_mq.xml | 87 ++ assets/xml/scenes/dungeons/MIZUsin.xml | 6 +- assets/xml/scenes/dungeons/MIZUsin_mq.xml | 77 ++ assets/xml/scenes/dungeons/bdan.xml | 2 +- assets/xml/scenes/dungeons/bdan_mq.xml | 54 + assets/xml/scenes/dungeons/ddan_mq.xml | 70 + assets/xml/scenes/dungeons/ganontika.xml | 28 +- assets/xml/scenes/dungeons/ganontika_mq.xml | 82 ++ assets/xml/scenes/dungeons/ice_doukutu.xml | 7 +- assets/xml/scenes/dungeons/ice_doukutu_mq.xml | 45 + assets/xml/scenes/dungeons/jyasinzou.xml | 10 +- assets/xml/scenes/dungeons/jyasinzou_mq.xml | 97 ++ assets/xml/scenes/dungeons/men.xml | 4 +- assets/xml/scenes/dungeons/men_mq.xml | 42 + assets/xml/scenes/dungeons/ydan.xml | 6 +- assets/xml/scenes/dungeons/ydan_mq.xml | 45 + baseroms/gc-eu-mq-dbg/config.yml | 1186 +++++++++++++++++ baseroms/gc-eu-mq/config.yml | 1160 ++++++++++++++++ baseroms/gc-eu/config.yml | 1160 ++++++++++++++++ extract_assets.py | 105 +- spec | 5 - .../ovl_file_choose/z_file_nameset_PAL.c | 2 +- .../ovl_file_choose/z_file_nameset_data.c | 2 +- tools/ZAPD/.gitrepo | 4 +- tools/ZAPD/README.md | 11 +- tools/ZAPD/ZAPD/Globals.h | 5 + tools/ZAPD/ZAPD/Main.cpp | 56 +- tools/ZAPD/ZAPD/ZCutscene.cpp | 29 +- tools/ZAPD/ZAPD/ZFile.cpp | 18 + tools/ZAPD/ZAPDUtils/Utils/StringHelper.h | 15 + .../ActorList_OoTMqDbg.txt => ActorList.txt} | 0 ...anceList_OoTMqDbg.txt => EntranceList.txt} | 0 tools/ZAPDConfigs/{MqDbg => }/EnumData.xml | 0 tools/ZAPDConfigs/MqDbg/Config.xml | 9 - .../ZAPDConfigs/MqDbg/SymbolMap_OoTMqDbg.txt | 1 - ...ObjectList_OoTMqDbg.txt => ObjectList.txt} | 0 ...t_OoTMqDbg.txt => SpecialEntranceList.txt} | 0 tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml | 9 + tools/ZAPDConfigs/gc-eu-mq-dbg/SymbolMap.txt | 2 + tools/ZAPDConfigs/gc-eu-mq/Config.xml | 9 + tools/ZAPDConfigs/gc-eu-mq/SymbolMap.txt | 2 + tools/ZAPDConfigs/gc-eu/Config.xml | 9 + tools/ZAPDConfigs/gc-eu/SymbolMap.txt | 2 + tools/version_config.py | 27 +- 92 files changed, 4911 insertions(+), 487 deletions(-) delete mode 100644 assets/.gitignore create mode 100644 assets/xml/objects/object_mag_mq.xml delete mode 100644 assets/xml/overlays/ovl_File_Choose.xml create mode 100644 assets/xml/overlays/ovl_file_choose.xml create mode 100644 assets/xml/scenes/dungeons/Bmori1_mq.xml create mode 100644 assets/xml/scenes/dungeons/HAKAdanCH_mq.xml create mode 100644 assets/xml/scenes/dungeons/HAKAdan_mq.xml create mode 100644 assets/xml/scenes/dungeons/HIDAN_mq.xml create mode 100644 assets/xml/scenes/dungeons/MIZUsin_mq.xml create mode 100644 assets/xml/scenes/dungeons/bdan_mq.xml create mode 100644 assets/xml/scenes/dungeons/ddan_mq.xml create mode 100644 assets/xml/scenes/dungeons/ganontika_mq.xml create mode 100644 assets/xml/scenes/dungeons/ice_doukutu_mq.xml create mode 100644 assets/xml/scenes/dungeons/jyasinzou_mq.xml create mode 100644 assets/xml/scenes/dungeons/men_mq.xml create mode 100644 assets/xml/scenes/dungeons/ydan_mq.xml rename tools/ZAPDConfigs/{MqDbg/ActorList_OoTMqDbg.txt => ActorList.txt} (100%) rename tools/ZAPDConfigs/{MqDbg/EntranceList_OoTMqDbg.txt => EntranceList.txt} (100%) rename tools/ZAPDConfigs/{MqDbg => }/EnumData.xml (100%) delete mode 100644 tools/ZAPDConfigs/MqDbg/Config.xml delete mode 100644 tools/ZAPDConfigs/MqDbg/SymbolMap_OoTMqDbg.txt rename tools/ZAPDConfigs/{MqDbg/ObjectList_OoTMqDbg.txt => ObjectList.txt} (100%) rename tools/ZAPDConfigs/{MqDbg/SpecialEntranceList_OoTMqDbg.txt => SpecialEntranceList.txt} (100%) create mode 100644 tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml create mode 100644 tools/ZAPDConfigs/gc-eu-mq-dbg/SymbolMap.txt create mode 100644 tools/ZAPDConfigs/gc-eu-mq/Config.xml create mode 100644 tools/ZAPDConfigs/gc-eu-mq/SymbolMap.txt create mode 100644 tools/ZAPDConfigs/gc-eu/Config.xml create mode 100644 tools/ZAPDConfigs/gc-eu/SymbolMap.txt diff --git a/Makefile b/Makefile index 8c5718189..5aebaf11c 100644 --- a/Makefile +++ b/Makefile @@ -15,10 +15,11 @@ ORIG_COMPILER := 0 # If COMPILER is "gcc", compile with GCC instead of IDO. COMPILER := ido # Target game version. Currently the following versions are supported: +# gc-eu GameCube Europe/PAL # gc-eu-mq GameCube Europe/PAL Master Quest # gc-eu-mq-dbg GameCube Europe/PAL Master Quest Debug (default) # The following versions are work-in-progress and not yet matching: -# gc-eu GameCube Europe/PAL +# (none currently) VERSION := gc-eu-mq-dbg # Number of threads to extract and compress with N_THREADS := $(shell nproc) @@ -53,7 +54,6 @@ endif # Version-specific settings ifeq ($(VERSION),gc-eu) DEBUG := 0 - COMPARE := 0 else ifeq ($(VERSION),gc-eu-mq) DEBUG := 0 CPP_DEFINES += -DOOT_MQ @@ -211,11 +211,12 @@ else SRC_DIRS := $(shell find src -type d) endif -ASSET_BIN_DIRS := $(shell find assets/* -type d -not -path "assets/xml*" -not -path "assets/text") -ASSET_FILES_XML := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.xml)) +# create extracted directories +$(shell mkdir -p $(EXTRACTED_DIR) $(EXTRACTED_DIR)/assets $(EXTRACTED_DIR)/text) + +ASSET_BIN_DIRS := $(shell find $(EXTRACTED_DIR)/assets -type d) ASSET_FILES_BIN := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.bin)) -ASSET_FILES_OUT := $(foreach f,$(ASSET_FILES_XML:.xml=.c),$f) \ - $(foreach f,$(ASSET_FILES_BIN:.bin=.bin.inc.c),$(BUILD_DIR)/$f) \ +ASSET_FILES_OUT := $(foreach f,$(ASSET_FILES_BIN:.bin=.bin.inc.c),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \ $(foreach f,$(wildcard assets/text/*.c),$(BUILD_DIR)/$(f:.c=.o)) UNDECOMPILED_DATA_DIRS := $(shell find data -type d) @@ -223,10 +224,12 @@ UNDECOMPILED_DATA_DIRS := $(shell find data -type d) BASEROM_BIN_FILES := $(wildcard $(EXTRACTED_DIR)/baserom/*) # source files -C_FILES := $(filter-out %.inc.c,$(foreach dir,$(SRC_DIRS) $(ASSET_BIN_DIRS),$(wildcard $(dir)/*.c))) +SRC_C_FILES := $(filter-out %.inc.c,$(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))) +ASSET_C_FILES := $(filter-out %.inc.c,$(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.c))) S_FILES := $(foreach dir,$(SRC_DIRS) $(UNDECOMPILED_DATA_DIRS),$(wildcard $(dir)/*.s)) O_FILES := $(foreach f,$(S_FILES:.s=.o),$(BUILD_DIR)/$f) \ - $(foreach f,$(C_FILES:.c=.o),$(BUILD_DIR)/$f) \ + $(foreach f,$(SRC_C_FILES:.c=.o),$(BUILD_DIR)/$f) \ + $(foreach f,$(ASSET_C_FILES:.c=.o),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \ $(foreach f,$(BASEROM_BIN_FILES),$(BUILD_DIR)/baserom/$(notdir $f).o) OVL_RELOC_FILES := $(shell $(CPP) $(CPPFLAGS) $(SPEC) | $(SPEC_REPLACE_VARS) | grep -o '[^"]*_reloc.o' ) @@ -238,11 +241,11 @@ DEP_FILES := $(O_FILES:.o=.asmproc.d) $(OVL_RELOC_FILES:.o=.d) TEXTURE_FILES_PNG := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.png)) TEXTURE_FILES_JPG := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.jpg)) -TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG:.png=.inc.c),$(BUILD_DIR)/$f) \ - $(foreach f,$(TEXTURE_FILES_JPG:.jpg=.jpg.inc.c),$(BUILD_DIR)/$f) \ +TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG:.png=.inc.c),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \ + $(foreach f,$(TEXTURE_FILES_JPG:.jpg=.jpg.inc.c),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) # create build directories -$(shell mkdir -p $(BUILD_DIR)/baserom $(EXTRACTED_DIR)/text $(BUILD_DIR)/assets/text $(foreach dir,$(SRC_DIRS) $(UNDECOMPILED_DATA_DIRS) $(ASSET_BIN_DIRS),$(BUILD_DIR)/$(dir))) +$(shell mkdir -p $(BUILD_DIR)/baserom $(BUILD_DIR)/assets/text $(foreach dir,$(SRC_DIRS) $(UNDECOMPILED_DATA_DIRS),$(BUILD_DIR)/$(dir)) $(foreach dir,$(ASSET_BIN_DIRS),$(dir:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%))) ifeq ($(COMPILER),ido) $(BUILD_DIR)/src/boot/stackcheck.o: OPTFLAGS := -O2 @@ -356,12 +359,9 @@ clean: $(RM) -r $(BUILD_DIR) assetclean: - $(RM) -r $(ASSET_BIN_DIRS) $(RM) -r $(EXTRACTED_DIR) - $(RM) -r $(BUILD_DIR)/assets - $(RM) -r .extracted-assets.json -distclean: assetclean +distclean: $(RM) -r extracted/ $(RM) -r build/ $(MAKE) -C tools distclean @@ -378,10 +378,7 @@ setup: venv $(PYTHON) tools/decompress_baserom.py $(VERSION) $(PYTHON) tools/extract_baserom.py $(BASEROM_DIR)/baserom-decompressed.z64 --oot-version $(VERSION) -o $(EXTRACTED_DIR)/baserom $(PYTHON) tools/msgdis.py --oot-version $(VERSION) --text-out $(EXTRACTED_DIR)/text/message_data.h --staff-text-out $(EXTRACTED_DIR)/text/message_data_staff.h -# TODO: for now, we only extract assets from the Debug ROM -ifeq ($(VERSION),gc-eu-mq-dbg) - $(PYTHON) extract_assets.py -j$(N_THREADS) -endif + $(PYTHON) extract_assets.py -v $(VERSION) -j$(N_THREADS) disasm: $(RM) -r $(EXPECTED_DIR) @@ -447,7 +444,11 @@ $(BUILD_DIR)/assets/text/nes_message_data_static.o: $(BUILD_DIR)/assets/text/mes $(BUILD_DIR)/assets/text/staff_message_data_static.o: $(BUILD_DIR)/assets/text/message_data_staff.enc.h $(BUILD_DIR)/src/code/z_message_PAL.o: $(BUILD_DIR)/assets/text/message_data.enc.h $(BUILD_DIR)/assets/text/message_data_staff.enc.h -$(BUILD_DIR)/assets/%.o: assets/%.c +$(BUILD_DIR)/assets/text/%.o: assets/text/%.c + $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< + $(OBJCOPY) -O binary $@ $@.bin + +$(BUILD_DIR)/assets/%.o: $(EXTRACTED_DIR)/assets/%.c $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< $(OBJCOPY) -O binary $@ $@.bin @@ -498,13 +499,13 @@ $(BUILD_DIR)/src/overlays/%_reloc.o: $(BUILD_DIR)/$(SPEC) $(FADO) $$(tools/reloc_prereq $< $(notdir $*)) -n $(notdir $*) -o $(@:.o=.s) -M $(@:.o=.d) $(AS) $(ASFLAGS) $(@:.o=.s) -o $@ -$(BUILD_DIR)/%.inc.c: %.png +$(BUILD_DIR)/assets/%.inc.c: $(EXTRACTED_DIR)/assets/%.png $(ZAPD) btex -eh -tt $(subst .,,$(suffix $*)) -i $< -o $@ -$(BUILD_DIR)/assets/%.bin.inc.c: assets/%.bin +$(BUILD_DIR)/assets/%.bin.inc.c: $(EXTRACTED_DIR)/assets/%.bin $(ZAPD) bblb -eh -i $< -o $@ -$(BUILD_DIR)/assets/%.jpg.inc.c: assets/%.jpg +$(BUILD_DIR)/assets/%.jpg.inc.c: $(EXTRACTED_DIR)/assets/%.jpg $(ZAPD) bren -eh -i $< -o $@ -include $(DEP_FILES) diff --git a/assets/.gitignore b/assets/.gitignore deleted file mode 100644 index 0bece9e89..000000000 --- a/assets/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -*.bin -*.c -*.h -!text/*.[ch] -*.cfg -*.vtx.inc -*.dlist.inc diff --git a/assets/xml/code/fbdemo_circle.xml b/assets/xml/code/fbdemo_circle.xml index 1aa2de764..530506369 100644 --- a/assets/xml/code/fbdemo_circle.xml +++ b/assets/xml/code/fbdemo_circle.xml @@ -1,13 +1,13 @@ - - - - - - + + + + + + - + diff --git a/assets/xml/code/fbdemo_triforce.xml b/assets/xml/code/fbdemo_triforce.xml index a20e07075..613f7995d 100644 --- a/assets/xml/code/fbdemo_triforce.xml +++ b/assets/xml/code/fbdemo_triforce.xml @@ -1,7 +1,7 @@ - - - + + + diff --git a/assets/xml/code/fbdemo_wipe1.xml b/assets/xml/code/fbdemo_wipe1.xml index f459c9f8e..74f129776 100644 --- a/assets/xml/code/fbdemo_wipe1.xml +++ b/assets/xml/code/fbdemo_wipe1.xml @@ -1,10 +1,10 @@ - - + + - + - + diff --git a/assets/xml/objects/object_mag.xml b/assets/xml/objects/object_mag.xml index d528754db..21f48d734 100644 --- a/assets/xml/objects/object_mag.xml +++ b/assets/xml/objects/object_mag.xml @@ -3,21 +3,19 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_mag_mq.xml b/assets/xml/objects/object_mag_mq.xml new file mode 100644 index 000000000..d528754db --- /dev/null +++ b/assets/xml/objects/object_mag_mq.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/overlays/ovl_Arrow_Fire.xml b/assets/xml/overlays/ovl_Arrow_Fire.xml index 621df71ce..061e11f84 100644 --- a/assets/xml/overlays/ovl_Arrow_Fire.xml +++ b/assets/xml/overlays/ovl_Arrow_Fire.xml @@ -1,11 +1,11 @@ - - - - + + + + - - + + diff --git a/assets/xml/overlays/ovl_Arrow_Ice.xml b/assets/xml/overlays/ovl_Arrow_Ice.xml index e216ff02a..d2a0df3be 100644 --- a/assets/xml/overlays/ovl_Arrow_Ice.xml +++ b/assets/xml/overlays/ovl_Arrow_Ice.xml @@ -1,11 +1,11 @@ - - - - + + + + - - + + diff --git a/assets/xml/overlays/ovl_Arrow_Light.xml b/assets/xml/overlays/ovl_Arrow_Light.xml index e9827c2c9..1f449dd7b 100644 --- a/assets/xml/overlays/ovl_Arrow_Light.xml +++ b/assets/xml/overlays/ovl_Arrow_Light.xml @@ -1,11 +1,11 @@ - - - - + + + + - - + + diff --git a/assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml b/assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml index 6b9a9a744..7b294e65b 100644 --- a/assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml +++ b/assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml @@ -1,29 +1,29 @@ - - + + - + - - + + - + - + - + - + - - + + - + - + diff --git a/assets/xml/overlays/ovl_Bg_Jya_Cobra.xml b/assets/xml/overlays/ovl_Bg_Jya_Cobra.xml index 874bb1ec6..52f65678c 100644 --- a/assets/xml/overlays/ovl_Bg_Jya_Cobra.xml +++ b/assets/xml/overlays/ovl_Bg_Jya_Cobra.xml @@ -1,10 +1,10 @@ - - + + - + diff --git a/assets/xml/overlays/ovl_Boss_Dodongo.xml b/assets/xml/overlays/ovl_Boss_Dodongo.xml index f2ee5b7b8..78d2f8e5b 100644 --- a/assets/xml/overlays/ovl_Boss_Dodongo.xml +++ b/assets/xml/overlays/ovl_Boss_Dodongo.xml @@ -1,6 +1,6 @@ - - - + + + diff --git a/assets/xml/overlays/ovl_Boss_Ganon.xml b/assets/xml/overlays/ovl_Boss_Ganon.xml index cdb87e9c1..83a19c9b5 100644 --- a/assets/xml/overlays/ovl_Boss_Ganon.xml +++ b/assets/xml/overlays/ovl_Boss_Ganon.xml @@ -1,53 +1,53 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/overlays/ovl_Boss_Ganon2.xml b/assets/xml/overlays/ovl_Boss_Ganon2.xml index 3d5bfdfba..4b1879a17 100644 --- a/assets/xml/overlays/ovl_Boss_Ganon2.xml +++ b/assets/xml/overlays/ovl_Boss_Ganon2.xml @@ -1,29 +1,29 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/assets/xml/overlays/ovl_Boss_Sst.xml b/assets/xml/overlays/ovl_Boss_Sst.xml index e65a58ccd..35584224d 100644 --- a/assets/xml/overlays/ovl_Boss_Sst.xml +++ b/assets/xml/overlays/ovl_Boss_Sst.xml @@ -1,8 +1,8 @@ - - - - - + + + + + diff --git a/assets/xml/overlays/ovl_Demo_Shd.xml b/assets/xml/overlays/ovl_Demo_Shd.xml index 2ac9a9b48..967f383ec 100644 --- a/assets/xml/overlays/ovl_Demo_Shd.xml +++ b/assets/xml/overlays/ovl_Demo_Shd.xml @@ -1,8 +1,8 @@ - + - - - + + + diff --git a/assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml b/assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml index d2de328da..b8c0613ee 100644 --- a/assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml +++ b/assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml @@ -1,9 +1,9 @@ - - + + - - + + diff --git a/assets/xml/overlays/ovl_Elf_Msg.xml b/assets/xml/overlays/ovl_Elf_Msg.xml index 82cd468a3..61e28d31b 100644 --- a/assets/xml/overlays/ovl_Elf_Msg.xml +++ b/assets/xml/overlays/ovl_Elf_Msg.xml @@ -1,16 +1,16 @@ - + - + - + - + - + - + diff --git a/assets/xml/overlays/ovl_Elf_Msg2.xml b/assets/xml/overlays/ovl_Elf_Msg2.xml index fb2199424..a0ea055e2 100644 --- a/assets/xml/overlays/ovl_Elf_Msg2.xml +++ b/assets/xml/overlays/ovl_Elf_Msg2.xml @@ -1,11 +1,11 @@ - + - + - + - + diff --git a/assets/xml/overlays/ovl_En_Bili.xml b/assets/xml/overlays/ovl_En_Bili.xml index 35c3fa301..ed2fda6ca 100644 --- a/assets/xml/overlays/ovl_En_Bili.xml +++ b/assets/xml/overlays/ovl_En_Bili.xml @@ -1,7 +1,7 @@ - - - + + + diff --git a/assets/xml/overlays/ovl_En_Clear_Tag.xml b/assets/xml/overlays/ovl_En_Clear_Tag.xml index cd67b1f48..05c9c2986 100644 --- a/assets/xml/overlays/ovl_En_Clear_Tag.xml +++ b/assets/xml/overlays/ovl_En_Clear_Tag.xml @@ -1,14 +1,14 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/assets/xml/overlays/ovl_En_Ganon_Mant.xml b/assets/xml/overlays/ovl_En_Ganon_Mant.xml index 900ec46ac..a9242f178 100644 --- a/assets/xml/overlays/ovl_En_Ganon_Mant.xml +++ b/assets/xml/overlays/ovl_En_Ganon_Mant.xml @@ -1,21 +1,21 @@ - - + + - + - + - + - + - + - + diff --git a/assets/xml/overlays/ovl_En_Ganon_Organ.xml b/assets/xml/overlays/ovl_En_Ganon_Organ.xml index 7d4f8bc78..05257fb6f 100644 --- a/assets/xml/overlays/ovl_En_Ganon_Organ.xml +++ b/assets/xml/overlays/ovl_En_Ganon_Organ.xml @@ -1,19 +1,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - - + + diff --git a/assets/xml/overlays/ovl_En_Holl.xml b/assets/xml/overlays/ovl_En_Holl.xml index 6fa7d3643..b219524d8 100644 --- a/assets/xml/overlays/ovl_En_Holl.xml +++ b/assets/xml/overlays/ovl_En_Holl.xml @@ -1,8 +1,8 @@ - - + + - + diff --git a/assets/xml/overlays/ovl_En_Jsjutan.xml b/assets/xml/overlays/ovl_En_Jsjutan.xml index 44229419c..b3b012b1f 100644 --- a/assets/xml/overlays/ovl_En_Jsjutan.xml +++ b/assets/xml/overlays/ovl_En_Jsjutan.xml @@ -1,38 +1,38 @@ - + - + - + - + - + - + - + - + - + - + - + diff --git a/assets/xml/overlays/ovl_En_Kanban.xml b/assets/xml/overlays/ovl_En_Kanban.xml index 546de14d0..d8f50f425 100644 --- a/assets/xml/overlays/ovl_En_Kanban.xml +++ b/assets/xml/overlays/ovl_En_Kanban.xml @@ -1,8 +1,8 @@ - - + + - + diff --git a/assets/xml/overlays/ovl_En_Sda.xml b/assets/xml/overlays/ovl_En_Sda.xml index c4293e92b..5652ce7e6 100644 --- a/assets/xml/overlays/ovl_En_Sda.xml +++ b/assets/xml/overlays/ovl_En_Sda.xml @@ -1,9 +1,9 @@ - - + + - - + + diff --git a/assets/xml/overlays/ovl_En_Ssh.xml b/assets/xml/overlays/ovl_En_Ssh.xml index 5467eed62..23e2aa81c 100644 --- a/assets/xml/overlays/ovl_En_Ssh.xml +++ b/assets/xml/overlays/ovl_En_Ssh.xml @@ -1,8 +1,8 @@ - - + + - + diff --git a/assets/xml/overlays/ovl_En_St.xml b/assets/xml/overlays/ovl_En_St.xml index 0252a1387..bfa750591 100644 --- a/assets/xml/overlays/ovl_En_St.xml +++ b/assets/xml/overlays/ovl_En_St.xml @@ -1,8 +1,8 @@ - - + + - + diff --git a/assets/xml/overlays/ovl_En_Sth.xml b/assets/xml/overlays/ovl_En_Sth.xml index ccc45fb1c..46a30a718 100644 --- a/assets/xml/overlays/ovl_En_Sth.xml +++ b/assets/xml/overlays/ovl_En_Sth.xml @@ -1,15 +1,15 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/assets/xml/overlays/ovl_End_Title.xml b/assets/xml/overlays/ovl_End_Title.xml index 841d45f6d..53d085681 100644 --- a/assets/xml/overlays/ovl_End_Title.xml +++ b/assets/xml/overlays/ovl_End_Title.xml @@ -1,17 +1,17 @@ - - - - - - - + + + + + + + - + - + - + diff --git a/assets/xml/overlays/ovl_File_Choose.xml b/assets/xml/overlays/ovl_File_Choose.xml deleted file mode 100644 index 8bebff602..000000000 --- a/assets/xml/overlays/ovl_File_Choose.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/xml/overlays/ovl_Magic_Dark.xml b/assets/xml/overlays/ovl_Magic_Dark.xml index 874150ab3..5c8b75c1f 100644 --- a/assets/xml/overlays/ovl_Magic_Dark.xml +++ b/assets/xml/overlays/ovl_Magic_Dark.xml @@ -1,13 +1,13 @@ - - + + - + - - + + diff --git a/assets/xml/overlays/ovl_Magic_Fire.xml b/assets/xml/overlays/ovl_Magic_Fire.xml index 696bdc0dc..81de7a989 100644 --- a/assets/xml/overlays/ovl_Magic_Fire.xml +++ b/assets/xml/overlays/ovl_Magic_Fire.xml @@ -1,10 +1,10 @@ - - - + + + - - + + diff --git a/assets/xml/overlays/ovl_Magic_Wind.xml b/assets/xml/overlays/ovl_Magic_Wind.xml index 8fc20ce1b..7da59209b 100644 --- a/assets/xml/overlays/ovl_Magic_Wind.xml +++ b/assets/xml/overlays/ovl_Magic_Wind.xml @@ -1,15 +1,15 @@ - - - - - - - + + + + + + + - - - + + + diff --git a/assets/xml/overlays/ovl_Oceff_Spot.xml b/assets/xml/overlays/ovl_Oceff_Spot.xml index 9a53952f0..6c8154906 100644 --- a/assets/xml/overlays/ovl_Oceff_Spot.xml +++ b/assets/xml/overlays/ovl_Oceff_Spot.xml @@ -1,10 +1,10 @@ - - - + + + - - + + diff --git a/assets/xml/overlays/ovl_Oceff_Storm.xml b/assets/xml/overlays/ovl_Oceff_Storm.xml index 5893b6f8e..d8217a615 100644 --- a/assets/xml/overlays/ovl_Oceff_Storm.xml +++ b/assets/xml/overlays/ovl_Oceff_Storm.xml @@ -1,12 +1,12 @@ - - - - + + + + - - + + diff --git a/assets/xml/overlays/ovl_Oceff_Wipe.xml b/assets/xml/overlays/ovl_Oceff_Wipe.xml index 52e29f1bc..64b3f1332 100644 --- a/assets/xml/overlays/ovl_Oceff_Wipe.xml +++ b/assets/xml/overlays/ovl_Oceff_Wipe.xml @@ -1,10 +1,10 @@ - - - + + + - - + + diff --git a/assets/xml/overlays/ovl_Oceff_Wipe2.xml b/assets/xml/overlays/ovl_Oceff_Wipe2.xml index b42c72a66..0166d1909 100644 --- a/assets/xml/overlays/ovl_Oceff_Wipe2.xml +++ b/assets/xml/overlays/ovl_Oceff_Wipe2.xml @@ -1,11 +1,11 @@ - - - - + + + + - - + + diff --git a/assets/xml/overlays/ovl_Oceff_Wipe3.xml b/assets/xml/overlays/ovl_Oceff_Wipe3.xml index 11f278866..d797d1675 100644 --- a/assets/xml/overlays/ovl_Oceff_Wipe3.xml +++ b/assets/xml/overlays/ovl_Oceff_Wipe3.xml @@ -1,10 +1,10 @@ - - - + + + - - + + diff --git a/assets/xml/overlays/ovl_Oceff_Wipe4.xml b/assets/xml/overlays/ovl_Oceff_Wipe4.xml index b2be9073a..086491fa3 100644 --- a/assets/xml/overlays/ovl_Oceff_Wipe4.xml +++ b/assets/xml/overlays/ovl_Oceff_Wipe4.xml @@ -1,12 +1,12 @@ - - - + + + - - - + + + diff --git a/assets/xml/overlays/ovl_file_choose.xml b/assets/xml/overlays/ovl_file_choose.xml new file mode 100644 index 000000000..aa9dcbb84 --- /dev/null +++ b/assets/xml/overlays/ovl_file_choose.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/Bmori1_mq.xml b/assets/xml/scenes/dungeons/Bmori1_mq.xml new file mode 100644 index 000000000..70aac3464 --- /dev/null +++ b/assets/xml/scenes/dungeons/Bmori1_mq.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/HAKAdanCH.xml b/assets/xml/scenes/dungeons/HAKAdanCH.xml index 61c141689..e1f772344 100644 --- a/assets/xml/scenes/dungeons/HAKAdanCH.xml +++ b/assets/xml/scenes/dungeons/HAKAdanCH.xml @@ -1,6 +1,6 @@ - + diff --git a/assets/xml/scenes/dungeons/HAKAdanCH_mq.xml b/assets/xml/scenes/dungeons/HAKAdanCH_mq.xml new file mode 100644 index 000000000..61c141689 --- /dev/null +++ b/assets/xml/scenes/dungeons/HAKAdanCH_mq.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/HAKAdan_mq.xml b/assets/xml/scenes/dungeons/HAKAdan_mq.xml new file mode 100644 index 000000000..cc2935a1c --- /dev/null +++ b/assets/xml/scenes/dungeons/HAKAdan_mq.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/HIDAN.xml b/assets/xml/scenes/dungeons/HIDAN.xml index d9c693c00..c9fc4158d 100644 --- a/assets/xml/scenes/dungeons/HIDAN.xml +++ b/assets/xml/scenes/dungeons/HIDAN.xml @@ -1,6 +1,6 @@ - + diff --git a/assets/xml/scenes/dungeons/HIDAN_mq.xml b/assets/xml/scenes/dungeons/HIDAN_mq.xml new file mode 100644 index 000000000..d9c693c00 --- /dev/null +++ b/assets/xml/scenes/dungeons/HIDAN_mq.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/MIZUsin.xml b/assets/xml/scenes/dungeons/MIZUsin.xml index bd0e260ac..e48f534d8 100644 --- a/assets/xml/scenes/dungeons/MIZUsin.xml +++ b/assets/xml/scenes/dungeons/MIZUsin.xml @@ -1,8 +1,8 @@ - - - + + + diff --git a/assets/xml/scenes/dungeons/MIZUsin_mq.xml b/assets/xml/scenes/dungeons/MIZUsin_mq.xml new file mode 100644 index 000000000..bd0e260ac --- /dev/null +++ b/assets/xml/scenes/dungeons/MIZUsin_mq.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/bdan.xml b/assets/xml/scenes/dungeons/bdan.xml index 0aee687a8..c4edc9bea 100644 --- a/assets/xml/scenes/dungeons/bdan.xml +++ b/assets/xml/scenes/dungeons/bdan.xml @@ -1,6 +1,6 @@ - + diff --git a/assets/xml/scenes/dungeons/bdan_mq.xml b/assets/xml/scenes/dungeons/bdan_mq.xml new file mode 100644 index 000000000..0aee687a8 --- /dev/null +++ b/assets/xml/scenes/dungeons/bdan_mq.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/ddan_mq.xml b/assets/xml/scenes/dungeons/ddan_mq.xml new file mode 100644 index 000000000..a42e97cfc --- /dev/null +++ b/assets/xml/scenes/dungeons/ddan_mq.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/ganontika.xml b/assets/xml/scenes/dungeons/ganontika.xml index b2673e10c..7e5fa45d6 100644 --- a/assets/xml/scenes/dungeons/ganontika.xml +++ b/assets/xml/scenes/dungeons/ganontika.xml @@ -1,22 +1,22 @@ - - - - - - + + + + + + - + - - - - - - + + + + + + - + diff --git a/assets/xml/scenes/dungeons/ganontika_mq.xml b/assets/xml/scenes/dungeons/ganontika_mq.xml new file mode 100644 index 000000000..b2673e10c --- /dev/null +++ b/assets/xml/scenes/dungeons/ganontika_mq.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/ice_doukutu.xml b/assets/xml/scenes/dungeons/ice_doukutu.xml index a6e6b415d..4d25aa74f 100644 --- a/assets/xml/scenes/dungeons/ice_doukutu.xml +++ b/assets/xml/scenes/dungeons/ice_doukutu.xml @@ -1,9 +1,8 @@ - - - - + + + diff --git a/assets/xml/scenes/dungeons/ice_doukutu_mq.xml b/assets/xml/scenes/dungeons/ice_doukutu_mq.xml new file mode 100644 index 000000000..a6e6b415d --- /dev/null +++ b/assets/xml/scenes/dungeons/ice_doukutu_mq.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/jyasinzou.xml b/assets/xml/scenes/dungeons/jyasinzou.xml index 5614bc893..07f7944f9 100644 --- a/assets/xml/scenes/dungeons/jyasinzou.xml +++ b/assets/xml/scenes/dungeons/jyasinzou.xml @@ -1,11 +1,11 @@ - - - + + + - - + + diff --git a/assets/xml/scenes/dungeons/jyasinzou_mq.xml b/assets/xml/scenes/dungeons/jyasinzou_mq.xml new file mode 100644 index 000000000..5614bc893 --- /dev/null +++ b/assets/xml/scenes/dungeons/jyasinzou_mq.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/men.xml b/assets/xml/scenes/dungeons/men.xml index e87b44d8e..dc495b0c9 100644 --- a/assets/xml/scenes/dungeons/men.xml +++ b/assets/xml/scenes/dungeons/men.xml @@ -1,7 +1,7 @@ - - + + diff --git a/assets/xml/scenes/dungeons/men_mq.xml b/assets/xml/scenes/dungeons/men_mq.xml new file mode 100644 index 000000000..e87b44d8e --- /dev/null +++ b/assets/xml/scenes/dungeons/men_mq.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/scenes/dungeons/ydan.xml b/assets/xml/scenes/dungeons/ydan.xml index c0a47d6da..465c5f0ca 100644 --- a/assets/xml/scenes/dungeons/ydan.xml +++ b/assets/xml/scenes/dungeons/ydan.xml @@ -1,8 +1,8 @@ - - - + + + diff --git a/assets/xml/scenes/dungeons/ydan_mq.xml b/assets/xml/scenes/dungeons/ydan_mq.xml new file mode 100644 index 000000000..c0a47d6da --- /dev/null +++ b/assets/xml/scenes/dungeons/ydan_mq.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/baseroms/gc-eu-mq-dbg/config.yml b/baseroms/gc-eu-mq-dbg/config.yml index add24c911..52f36a53b 100644 --- a/baseroms/gc-eu-mq-dbg/config.yml +++ b/baseroms/gc-eu-mq-dbg/config.yml @@ -5,3 +5,1189 @@ variables: sGerMessageEntryTable: 0x8014F548 sFraMessageEntryTable: 0x80151658 sStaffMessageEntryTable: 0x80153768 + sShadowTex: 0x80A8E610 +assets: +- name: code/fbdemo_circle + xml_path: assets/xml/code/fbdemo_circle.xml + start_offset: 0x10ED48 + end_offset: 0x10FF68 +- name: code/fbdemo_triforce + xml_path: assets/xml/code/fbdemo_triforce.xml + start_offset: 0x10E1D0 + end_offset: 0x10E2A0 +- name: code/fbdemo_wipe1 + xml_path: assets/xml/code/fbdemo_wipe1.xml + start_offset: 0x10E2A0 + end_offset: 0x10EC30 +- name: misc/link_animetion + xml_path: assets/xml/misc/link_animetion.xml +- name: misc/z_select_static + xml_path: assets/xml/misc/z_select_static.xml +- name: objects/gameplay_dangeon_keep + xml_path: assets/xml/objects/gameplay_dangeon_keep.xml +- name: objects/gameplay_field_keep + xml_path: assets/xml/objects/gameplay_field_keep.xml +- name: objects/gameplay_keep + xml_path: assets/xml/objects/gameplay_keep.xml +- name: objects/object_ahg + xml_path: assets/xml/objects/object_ahg.xml +- name: objects/object_am + xml_path: assets/xml/objects/object_am.xml +- name: objects/object_ane + xml_path: assets/xml/objects/object_ane.xml +- name: objects/object_ani + xml_path: assets/xml/objects/object_ani.xml +- name: objects/object_anubice + xml_path: assets/xml/objects/object_anubice.xml +- name: objects/object_aob + xml_path: assets/xml/objects/object_aob.xml +- name: objects/object_b_heart + xml_path: assets/xml/objects/object_b_heart.xml +- name: objects/object_Bb + xml_path: assets/xml/objects/object_Bb.xml +- name: objects/object_bba + xml_path: assets/xml/objects/object_bba.xml +- name: objects/object_bdan_objects + xml_path: assets/xml/objects/object_bdan_objects.xml +- name: objects/object_bdoor + xml_path: assets/xml/objects/object_bdoor.xml +- name: objects/object_bg + xml_path: assets/xml/objects/object_bg.xml +- name: objects/object_bigokuta + xml_path: assets/xml/objects/object_bigokuta.xml +- name: objects/object_bird + xml_path: assets/xml/objects/object_bird.xml +- name: objects/object_bji + xml_path: assets/xml/objects/object_bji.xml +- name: objects/object_bl + xml_path: assets/xml/objects/object_bl.xml +- name: objects/object_blkobj + xml_path: assets/xml/objects/object_blkobj.xml +- name: objects/object_bob + xml_path: assets/xml/objects/object_bob.xml +- name: objects/object_boj + xml_path: assets/xml/objects/object_boj.xml +- name: objects/object_bombf + xml_path: assets/xml/objects/object_bombf.xml +- name: objects/object_bombiwa + xml_path: assets/xml/objects/object_bombiwa.xml +- name: objects/object_bowl + xml_path: assets/xml/objects/object_bowl.xml +- name: objects/object_box + xml_path: assets/xml/objects/object_box.xml +- name: objects/object_brob + xml_path: assets/xml/objects/object_brob.xml +- name: objects/object_bubble + xml_path: assets/xml/objects/object_bubble.xml +- name: objects/object_bv + xml_path: assets/xml/objects/object_bv.xml +- name: objects/object_bw + xml_path: assets/xml/objects/object_bw.xml +- name: objects/object_bwall + xml_path: assets/xml/objects/object_bwall.xml +- name: objects/object_bxa + xml_path: assets/xml/objects/object_bxa.xml +- name: objects/object_cne + xml_path: assets/xml/objects/object_cne.xml +- name: objects/object_cob + xml_path: assets/xml/objects/object_cob.xml +- name: objects/object_cow + xml_path: assets/xml/objects/object_cow.xml +- name: objects/object_crow + xml_path: assets/xml/objects/object_crow.xml +- name: objects/object_cs + xml_path: assets/xml/objects/object_cs.xml +- name: objects/object_d_elevator + xml_path: assets/xml/objects/object_d_elevator.xml +- name: objects/object_d_hsblock + xml_path: assets/xml/objects/object_d_hsblock.xml +- name: objects/object_d_lift + xml_path: assets/xml/objects/object_d_lift.xml +- name: objects/object_daiku + xml_path: assets/xml/objects/object_daiku.xml +- name: objects/object_ddan_objects + xml_path: assets/xml/objects/object_ddan_objects.xml +- name: objects/object_dekubaba + xml_path: assets/xml/objects/object_dekubaba.xml +- name: objects/object_dekujr + xml_path: assets/xml/objects/object_dekujr.xml +- name: objects/object_dekunuts + xml_path: assets/xml/objects/object_dekunuts.xml +- name: objects/object_demo_6k + xml_path: assets/xml/objects/object_demo_6k.xml +- name: objects/object_demo_kekkai + xml_path: assets/xml/objects/object_demo_kekkai.xml +- name: objects/object_demo_tre_lgt + xml_path: assets/xml/objects/object_demo_tre_lgt.xml +- name: objects/object_dh + xml_path: assets/xml/objects/object_dh.xml +- name: objects/object_dnk + xml_path: assets/xml/objects/object_dnk.xml +- name: objects/object_dns + xml_path: assets/xml/objects/object_dns.xml +- name: objects/object_dodojr + xml_path: assets/xml/objects/object_dodojr.xml +- name: objects/object_dodongo + xml_path: assets/xml/objects/object_dodongo.xml +- name: objects/object_dog + xml_path: assets/xml/objects/object_dog.xml +- name: objects/object_door_gerudo + xml_path: assets/xml/objects/object_door_gerudo.xml +- name: objects/object_door_killer + xml_path: assets/xml/objects/object_door_killer.xml +- name: objects/object_ds + xml_path: assets/xml/objects/object_ds.xml +- name: objects/object_ds2 + xml_path: assets/xml/objects/object_ds2.xml +- name: objects/object_du + xml_path: assets/xml/objects/object_du.xml +- name: objects/object_dy_obj + xml_path: assets/xml/objects/object_dy_obj.xml +- name: objects/object_ec + xml_path: assets/xml/objects/object_ec.xml +- name: objects/object_efc_crystal_light + xml_path: assets/xml/objects/object_efc_crystal_light.xml +- name: objects/object_efc_doughnut + xml_path: assets/xml/objects/object_efc_doughnut.xml +- name: objects/object_efc_erupc + xml_path: assets/xml/objects/object_efc_erupc.xml +- name: objects/object_efc_fire_ball + xml_path: assets/xml/objects/object_efc_fire_ball.xml +- name: objects/object_efc_flash + xml_path: assets/xml/objects/object_efc_flash.xml +- name: objects/object_efc_lgt_shower + xml_path: assets/xml/objects/object_efc_lgt_shower.xml +- name: objects/object_efc_star_field + xml_path: assets/xml/objects/object_efc_star_field.xml +- name: objects/object_efc_tw + xml_path: assets/xml/objects/object_efc_tw.xml +- name: objects/object_ei + xml_path: assets/xml/objects/object_ei.xml +- name: objects/object_fa + xml_path: assets/xml/objects/object_fa.xml +- name: objects/object_fd + xml_path: assets/xml/objects/object_fd.xml +- name: objects/object_fd2 + xml_path: assets/xml/objects/object_fd2.xml +- name: objects/object_fhg + xml_path: assets/xml/objects/object_fhg.xml +- name: objects/object_fire + xml_path: assets/xml/objects/object_fire.xml +- name: objects/object_firefly + xml_path: assets/xml/objects/object_firefly.xml +- name: objects/object_fish + xml_path: assets/xml/objects/object_fish.xml +- name: objects/object_fr + xml_path: assets/xml/objects/object_fr.xml +- name: objects/object_fu + xml_path: assets/xml/objects/object_fu.xml +- name: objects/object_fw + xml_path: assets/xml/objects/object_fw.xml +- name: objects/object_fz + xml_path: assets/xml/objects/object_fz.xml +- name: objects/object_ganon + xml_path: assets/xml/objects/object_ganon.xml +- name: objects/object_ganon2 + xml_path: assets/xml/objects/object_ganon2.xml +- name: objects/object_ganon_anime1 + xml_path: assets/xml/objects/object_ganon_anime1.xml +- name: objects/object_ganon_anime2 + xml_path: assets/xml/objects/object_ganon_anime2.xml +- name: objects/object_ganon_anime3 + xml_path: assets/xml/objects/object_ganon_anime3.xml +- name: objects/object_ganon_objects + xml_path: assets/xml/objects/object_ganon_objects.xml +- name: objects/object_ge1 + xml_path: assets/xml/objects/object_ge1.xml +- name: objects/object_geff + xml_path: assets/xml/objects/object_geff.xml +- name: objects/object_geldb + xml_path: assets/xml/objects/object_geldb.xml +- name: objects/object_gi_arrow + xml_path: assets/xml/objects/object_gi_arrow.xml +- name: objects/object_gi_arrowcase + xml_path: assets/xml/objects/object_gi_arrowcase.xml +- name: objects/object_gi_bean + xml_path: assets/xml/objects/object_gi_bean.xml +- name: objects/object_gi_bomb_1 + xml_path: assets/xml/objects/object_gi_bomb_1.xml +- name: objects/object_gi_bomb_2 + xml_path: assets/xml/objects/object_gi_bomb_2.xml +- name: objects/object_gi_bombpouch + xml_path: assets/xml/objects/object_gi_bombpouch.xml +- name: objects/object_gi_boomerang + xml_path: assets/xml/objects/object_gi_boomerang.xml +- name: objects/object_gi_boots_2 + xml_path: assets/xml/objects/object_gi_boots_2.xml +- name: objects/object_gi_bosskey + xml_path: assets/xml/objects/object_gi_bosskey.xml +- name: objects/object_gi_bottle + xml_path: assets/xml/objects/object_gi_bottle.xml +- name: objects/object_gi_bottle_letter + xml_path: assets/xml/objects/object_gi_bottle_letter.xml +- name: objects/object_gi_bow + xml_path: assets/xml/objects/object_gi_bow.xml +- name: objects/object_gi_bracelet + xml_path: assets/xml/objects/object_gi_bracelet.xml +- name: objects/object_gi_brokensword + xml_path: assets/xml/objects/object_gi_brokensword.xml +- name: objects/object_gi_butterfly + xml_path: assets/xml/objects/object_gi_butterfly.xml +- name: objects/object_gi_clothes + xml_path: assets/xml/objects/object_gi_clothes.xml +- name: objects/object_gi_coin + xml_path: assets/xml/objects/object_gi_coin.xml +- name: objects/object_gi_compass + xml_path: assets/xml/objects/object_gi_compass.xml +- name: objects/object_gi_dekupouch + xml_path: assets/xml/objects/object_gi_dekupouch.xml +- name: objects/object_gi_egg + xml_path: assets/xml/objects/object_gi_egg.xml +- name: objects/object_gi_eye_lotion + xml_path: assets/xml/objects/object_gi_eye_lotion.xml +- name: objects/object_gi_fire + xml_path: assets/xml/objects/object_gi_fire.xml +- name: objects/object_gi_fish + xml_path: assets/xml/objects/object_gi_fish.xml +- name: objects/object_gi_frog + xml_path: assets/xml/objects/object_gi_frog.xml +- name: objects/object_gi_gerudo + xml_path: assets/xml/objects/object_gi_gerudo.xml +- name: objects/object_gi_gerudomask + xml_path: assets/xml/objects/object_gi_gerudomask.xml +- name: objects/object_gi_ghost + xml_path: assets/xml/objects/object_gi_ghost.xml +- name: objects/object_gi_glasses + xml_path: assets/xml/objects/object_gi_glasses.xml +- name: objects/object_gi_gloves + xml_path: assets/xml/objects/object_gi_gloves.xml +- name: objects/object_gi_goddess + xml_path: assets/xml/objects/object_gi_goddess.xml +- name: objects/object_gi_golonmask + xml_path: assets/xml/objects/object_gi_golonmask.xml +- name: objects/object_gi_grass + xml_path: assets/xml/objects/object_gi_grass.xml +- name: objects/object_gi_hammer + xml_path: assets/xml/objects/object_gi_hammer.xml +- name: objects/object_gi_heart + xml_path: assets/xml/objects/object_gi_heart.xml +- name: objects/object_gi_hearts + xml_path: assets/xml/objects/object_gi_hearts.xml +- name: objects/object_gi_hookshot + xml_path: assets/xml/objects/object_gi_hookshot.xml +- name: objects/object_gi_hoverboots + xml_path: assets/xml/objects/object_gi_hoverboots.xml +- name: objects/object_gi_insect + xml_path: assets/xml/objects/object_gi_insect.xml +- name: objects/object_gi_jewel + xml_path: assets/xml/objects/object_gi_jewel.xml +- name: objects/object_gi_key + xml_path: assets/xml/objects/object_gi_key.xml +- name: objects/object_gi_ki_tan_mask + xml_path: assets/xml/objects/object_gi_ki_tan_mask.xml +- name: objects/object_gi_letter + xml_path: assets/xml/objects/object_gi_letter.xml +- name: objects/object_gi_liquid + xml_path: assets/xml/objects/object_gi_liquid.xml +- name: objects/object_gi_longsword + xml_path: assets/xml/objects/object_gi_longsword.xml +- name: objects/object_gi_m_arrow + xml_path: assets/xml/objects/object_gi_m_arrow.xml +- name: objects/object_gi_magicpot + xml_path: assets/xml/objects/object_gi_magicpot.xml +- name: objects/object_gi_map + xml_path: assets/xml/objects/object_gi_map.xml +- name: objects/object_gi_medal + xml_path: assets/xml/objects/object_gi_medal.xml +- name: objects/object_gi_melody + xml_path: assets/xml/objects/object_gi_melody.xml +- name: objects/object_gi_milk + xml_path: assets/xml/objects/object_gi_milk.xml +- name: objects/object_gi_mushroom + xml_path: assets/xml/objects/object_gi_mushroom.xml +- name: objects/object_gi_niwatori + xml_path: assets/xml/objects/object_gi_niwatori.xml +- name: objects/object_gi_nuts + xml_path: assets/xml/objects/object_gi_nuts.xml +- name: objects/object_gi_ocarina + xml_path: assets/xml/objects/object_gi_ocarina.xml +- name: objects/object_gi_ocarina_0 + xml_path: assets/xml/objects/object_gi_ocarina_0.xml +- name: objects/object_gi_pachinko + xml_path: assets/xml/objects/object_gi_pachinko.xml +- name: objects/object_gi_powder + xml_path: assets/xml/objects/object_gi_powder.xml +- name: objects/object_gi_prescription + xml_path: assets/xml/objects/object_gi_prescription.xml +- name: objects/object_gi_purse + xml_path: assets/xml/objects/object_gi_purse.xml +- name: objects/object_gi_rabit_mask + xml_path: assets/xml/objects/object_gi_rabit_mask.xml +- name: objects/object_gi_redead_mask + xml_path: assets/xml/objects/object_gi_redead_mask.xml +- name: objects/object_gi_rupy + xml_path: assets/xml/objects/object_gi_rupy.xml +- name: objects/object_gi_saw + xml_path: assets/xml/objects/object_gi_saw.xml +- name: objects/object_gi_scale + xml_path: assets/xml/objects/object_gi_scale.xml +- name: objects/object_gi_seed + xml_path: assets/xml/objects/object_gi_seed.xml +- name: objects/object_gi_shield_1 + xml_path: assets/xml/objects/object_gi_shield_1.xml +- name: objects/object_gi_shield_2 + xml_path: assets/xml/objects/object_gi_shield_2.xml +- name: objects/object_gi_shield_3 + xml_path: assets/xml/objects/object_gi_shield_3.xml +- name: objects/object_gi_skj_mask + xml_path: assets/xml/objects/object_gi_skj_mask.xml +- name: objects/object_gi_soldout + xml_path: assets/xml/objects/object_gi_soldout.xml +- name: objects/object_gi_soul + xml_path: assets/xml/objects/object_gi_soul.xml +- name: objects/object_gi_stick + xml_path: assets/xml/objects/object_gi_stick.xml +- name: objects/object_gi_sutaru + xml_path: assets/xml/objects/object_gi_sutaru.xml +- name: objects/object_gi_sword_1 + xml_path: assets/xml/objects/object_gi_sword_1.xml +- name: objects/object_gi_ticketstone + xml_path: assets/xml/objects/object_gi_ticketstone.xml +- name: objects/object_gi_truth_mask + xml_path: assets/xml/objects/object_gi_truth_mask.xml +- name: objects/object_gi_zoramask + xml_path: assets/xml/objects/object_gi_zoramask.xml +- name: objects/object_gj + xml_path: assets/xml/objects/object_gj.xml +- name: objects/object_gjyo_objects + xml_path: assets/xml/objects/object_gjyo_objects.xml +- name: objects/object_gla + xml_path: assets/xml/objects/object_gla.xml +- name: objects/object_gm + xml_path: assets/xml/objects/object_gm.xml +- name: objects/object_gnd + xml_path: assets/xml/objects/object_gnd.xml +- name: objects/object_gnd_magic + xml_path: assets/xml/objects/object_gnd_magic.xml +- name: objects/object_gndd + xml_path: assets/xml/objects/object_gndd.xml +- name: objects/object_god_lgt + xml_path: assets/xml/objects/object_god_lgt.xml +- name: objects/object_gol + xml_path: assets/xml/objects/object_gol.xml +- name: objects/object_goma + xml_path: assets/xml/objects/object_goma.xml +- name: objects/object_goroiwa + xml_path: assets/xml/objects/object_goroiwa.xml +- name: objects/object_gr + xml_path: assets/xml/objects/object_gr.xml +- name: objects/object_gs + xml_path: assets/xml/objects/object_gs.xml +- name: objects/object_gt + xml_path: assets/xml/objects/object_gt.xml +- name: objects/object_haka + xml_path: assets/xml/objects/object_haka.xml +- name: objects/object_haka_door + xml_path: assets/xml/objects/object_haka_door.xml +- name: objects/object_haka_objects + xml_path: assets/xml/objects/object_haka_objects.xml +- name: objects/object_hakach_objects + xml_path: assets/xml/objects/object_hakach_objects.xml +- name: objects/object_hata + xml_path: assets/xml/objects/object_hata.xml +- name: objects/object_heavy_object + xml_path: assets/xml/objects/object_heavy_object.xml +- name: objects/object_hidan_objects + xml_path: assets/xml/objects/object_hidan_objects.xml +- name: objects/object_hintnuts + xml_path: assets/xml/objects/object_hintnuts.xml +- name: objects/object_hni + xml_path: assets/xml/objects/object_hni.xml +- name: objects/object_horse + xml_path: assets/xml/objects/object_horse.xml +- name: objects/object_horse_ganon + xml_path: assets/xml/objects/object_horse_ganon.xml +- name: objects/object_horse_link_child + xml_path: assets/xml/objects/object_horse_link_child.xml +- name: objects/object_horse_normal + xml_path: assets/xml/objects/object_horse_normal.xml +- name: objects/object_horse_zelda + xml_path: assets/xml/objects/object_horse_zelda.xml +- name: objects/object_hs + xml_path: assets/xml/objects/object_hs.xml +- name: objects/object_human + xml_path: assets/xml/objects/object_human.xml +- name: objects/object_ice_objects + xml_path: assets/xml/objects/object_ice_objects.xml +- name: objects/object_ik + xml_path: assets/xml/objects/object_ik.xml +- name: objects/object_im + xml_path: assets/xml/objects/object_im.xml +- name: objects/object_in + xml_path: assets/xml/objects/object_in.xml +- name: objects/object_ingate + xml_path: assets/xml/objects/object_ingate.xml +- name: objects/object_jj + xml_path: assets/xml/objects/object_jj.xml +- name: objects/object_js + xml_path: assets/xml/objects/object_js.xml +- name: objects/object_jya_door + xml_path: assets/xml/objects/object_jya_door.xml +- name: objects/object_jya_iron + xml_path: assets/xml/objects/object_jya_iron.xml +- name: objects/object_jya_obj + xml_path: assets/xml/objects/object_jya_obj.xml +- name: objects/object_ka + xml_path: assets/xml/objects/object_ka.xml +- name: objects/object_kanban + xml_path: assets/xml/objects/object_kanban.xml +- name: objects/object_kibako2 + xml_path: assets/xml/objects/object_kibako2.xml +- name: objects/object_kingdodongo + xml_path: assets/xml/objects/object_kingdodongo.xml +- name: objects/object_km1 + xml_path: assets/xml/objects/object_km1.xml +- name: objects/object_kusa + xml_path: assets/xml/objects/object_kusa.xml +- name: objects/object_kw1 + xml_path: assets/xml/objects/object_kw1.xml +- name: objects/object_kz + xml_path: assets/xml/objects/object_kz.xml +- name: objects/object_light_ring + xml_path: assets/xml/objects/object_light_ring.xml +- name: objects/object_lightbox + xml_path: assets/xml/objects/object_lightbox.xml +- name: objects/object_lightswitch + xml_path: assets/xml/objects/object_lightswitch.xml +- name: objects/object_link_boy + xml_path: assets/xml/objects/object_link_boy.xml +- name: objects/object_link_child + xml_path: assets/xml/objects/object_link_child.xml +- name: objects/object_ma1 + xml_path: assets/xml/objects/object_ma1.xml +- name: objects/object_ma2 + xml_path: assets/xml/objects/object_ma2.xml +- name: objects/object_mag + xml_path: assets/xml/objects/object_mag_mq.xml +- name: objects/object_mamenoki + xml_path: assets/xml/objects/object_mamenoki.xml +- name: objects/object_mastergolon + xml_path: assets/xml/objects/object_mastergolon.xml +- name: objects/object_masterkokiri + xml_path: assets/xml/objects/object_masterkokiri.xml +- name: objects/object_masterkokirihead + xml_path: assets/xml/objects/object_masterkokirihead.xml +- name: objects/object_masterzoora + xml_path: assets/xml/objects/object_masterzoora.xml +- name: objects/object_mb + xml_path: assets/xml/objects/object_mb.xml +- name: objects/object_md + xml_path: assets/xml/objects/object_md.xml +- name: objects/object_medal + xml_path: assets/xml/objects/object_medal.xml +- name: objects/object_menkuri_objects + xml_path: assets/xml/objects/object_menkuri_objects.xml +- name: objects/object_mir_ray + xml_path: assets/xml/objects/object_mir_ray.xml +- name: objects/object_mizu_objects + xml_path: assets/xml/objects/object_mizu_objects.xml +- name: objects/object_mjin + xml_path: assets/xml/objects/object_mjin.xml +- name: objects/object_mjin_dark + xml_path: assets/xml/objects/object_mjin_dark.xml +- name: objects/object_mjin_flame + xml_path: assets/xml/objects/object_mjin_flame.xml +- name: objects/object_mjin_flash + xml_path: assets/xml/objects/object_mjin_flash.xml +- name: objects/object_mjin_ice + xml_path: assets/xml/objects/object_mjin_ice.xml +- name: objects/object_mjin_oka + xml_path: assets/xml/objects/object_mjin_oka.xml +- name: objects/object_mjin_soul + xml_path: assets/xml/objects/object_mjin_soul.xml +- name: objects/object_mjin_wind + xml_path: assets/xml/objects/object_mjin_wind.xml +- name: objects/object_mk + xml_path: assets/xml/objects/object_mk.xml +- name: objects/object_mm + xml_path: assets/xml/objects/object_mm.xml +- name: objects/object_mo + xml_path: assets/xml/objects/object_mo.xml +- name: objects/object_mori_hineri1 + xml_path: assets/xml/objects/object_mori_hineri1.xml +- name: objects/object_mori_hineri1a + xml_path: assets/xml/objects/object_mori_hineri1a.xml +- name: objects/object_mori_hineri2 + xml_path: assets/xml/objects/object_mori_hineri2.xml +- name: objects/object_mori_hineri2a + xml_path: assets/xml/objects/object_mori_hineri2a.xml +- name: objects/object_mori_objects + xml_path: assets/xml/objects/object_mori_objects.xml +- name: objects/object_mori_tex + xml_path: assets/xml/objects/object_mori_tex.xml +- name: objects/object_ms + xml_path: assets/xml/objects/object_ms.xml +- name: objects/object_mu + xml_path: assets/xml/objects/object_mu.xml +- name: objects/object_nb + xml_path: assets/xml/objects/object_nb.xml +- name: objects/object_niw + xml_path: assets/xml/objects/object_niw.xml +- name: objects/object_nwc + xml_path: assets/xml/objects/object_nwc.xml +- name: objects/object_ny + xml_path: assets/xml/objects/object_ny.xml +- name: objects/object_o_anime + xml_path: assets/xml/objects/object_o_anime.xml +- name: objects/object_oA1 + xml_path: assets/xml/objects/object_oA1.xml +- name: objects/object_oA2 + xml_path: assets/xml/objects/object_oA2.xml +- name: objects/object_oA3 + xml_path: assets/xml/objects/object_oA3.xml +- name: objects/object_oA4 + xml_path: assets/xml/objects/object_oA4.xml +- name: objects/object_oA5 + xml_path: assets/xml/objects/object_oA5.xml +- name: objects/object_oA6 + xml_path: assets/xml/objects/object_oA6.xml +- name: objects/object_oA7 + xml_path: assets/xml/objects/object_oA7.xml +- name: objects/object_oA8 + xml_path: assets/xml/objects/object_oA8.xml +- name: objects/object_oA9 + xml_path: assets/xml/objects/object_oA9.xml +- name: objects/object_oA10 + xml_path: assets/xml/objects/object_oA10.xml +- name: objects/object_oA11 + xml_path: assets/xml/objects/object_oA11.xml +- name: objects/object_oB1 + xml_path: assets/xml/objects/object_oB1.xml +- name: objects/object_oB2 + xml_path: assets/xml/objects/object_oB2.xml +- name: objects/object_oB3 + xml_path: assets/xml/objects/object_oB3.xml +- name: objects/object_oB4 + xml_path: assets/xml/objects/object_oB4.xml +- name: objects/object_oE1 + xml_path: assets/xml/objects/object_oE1.xml +- name: objects/object_oE1s + xml_path: assets/xml/objects/object_oE1s.xml +- name: objects/object_oE2 + xml_path: assets/xml/objects/object_oE2.xml +- name: objects/object_oE3 + xml_path: assets/xml/objects/object_oE3.xml +- name: objects/object_oE4 + xml_path: assets/xml/objects/object_oE4.xml +- name: objects/object_oE4s + xml_path: assets/xml/objects/object_oE4s.xml +- name: objects/object_oE5 + xml_path: assets/xml/objects/object_oE5.xml +- name: objects/object_oE6 + xml_path: assets/xml/objects/object_oE6.xml +- name: objects/object_oE7 + xml_path: assets/xml/objects/object_oE7.xml +- name: objects/object_oE8 + xml_path: assets/xml/objects/object_oE8.xml +- name: objects/object_oE9 + xml_path: assets/xml/objects/object_oE9.xml +- name: objects/object_oE10 + xml_path: assets/xml/objects/object_oE10.xml +- name: objects/object_oE11 + xml_path: assets/xml/objects/object_oE11.xml +- name: objects/object_oE12 + xml_path: assets/xml/objects/object_oE12.xml +- name: objects/object_oE_anime + xml_path: assets/xml/objects/object_oE_anime.xml +- name: objects/object_oF1d_map + xml_path: assets/xml/objects/object_oF1d_map.xml +- name: objects/object_oF1s + xml_path: assets/xml/objects/object_oF1s.xml +- name: objects/object_okuta + xml_path: assets/xml/objects/object_okuta.xml +- name: objects/object_opening_demo1 + xml_path: assets/xml/objects/object_opening_demo1.xml +- name: objects/object_os + xml_path: assets/xml/objects/object_os.xml +- name: objects/object_os_anime + xml_path: assets/xml/objects/object_os_anime.xml +- name: objects/object_ossan + xml_path: assets/xml/objects/object_ossan.xml +- name: objects/object_ouke_haka + xml_path: assets/xml/objects/object_ouke_haka.xml +- name: objects/object_owl + xml_path: assets/xml/objects/object_owl.xml +- name: objects/object_peehat + xml_path: assets/xml/objects/object_peehat.xml +- name: objects/object_po_composer + xml_path: assets/xml/objects/object_po_composer.xml +- name: objects/object_po_field + xml_path: assets/xml/objects/object_po_field.xml +- name: objects/object_po_sisters + xml_path: assets/xml/objects/object_po_sisters.xml +- name: objects/object_poh + xml_path: assets/xml/objects/object_poh.xml +- name: objects/object_ps + xml_path: assets/xml/objects/object_ps.xml +- name: objects/object_pu_box + xml_path: assets/xml/objects/object_pu_box.xml +- name: objects/object_rd + xml_path: assets/xml/objects/object_rd.xml +- name: objects/object_reeba + xml_path: assets/xml/objects/object_reeba.xml +- name: objects/object_relay_objects + xml_path: assets/xml/objects/object_relay_objects.xml +- name: objects/object_rl + xml_path: assets/xml/objects/object_rl.xml +- name: objects/object_rr + xml_path: assets/xml/objects/object_rr.xml +- name: objects/object_rs + xml_path: assets/xml/objects/object_rs.xml +- name: objects/object_ru1 + xml_path: assets/xml/objects/object_ru1.xml +- name: objects/object_ru2 + xml_path: assets/xml/objects/object_ru2.xml +- name: objects/object_sa + xml_path: assets/xml/objects/object_sa.xml +- name: objects/object_sb + xml_path: assets/xml/objects/object_sb.xml +- name: objects/object_sd + xml_path: assets/xml/objects/object_sd.xml +- name: objects/object_shop_dungen + xml_path: assets/xml/objects/object_shop_dungen.xml +- name: objects/object_shopnuts + xml_path: assets/xml/objects/object_shopnuts.xml +- name: objects/object_siofuki + xml_path: assets/xml/objects/object_siofuki.xml +- name: objects/object_sk2 + xml_path: assets/xml/objects/object_sk2.xml +- name: objects/object_skb + xml_path: assets/xml/objects/object_skb.xml +- name: objects/object_skj + xml_path: assets/xml/objects/object_skj.xml +- name: objects/object_spot00_break + xml_path: assets/xml/objects/object_spot00_break.xml +- name: objects/object_spot00_objects + xml_path: assets/xml/objects/object_spot00_objects.xml +- name: objects/object_spot01_matoya + xml_path: assets/xml/objects/object_spot01_matoya.xml +- name: objects/object_spot01_matoyab + xml_path: assets/xml/objects/object_spot01_matoyab.xml +- name: objects/object_spot01_objects + xml_path: assets/xml/objects/object_spot01_objects.xml +- name: objects/object_spot01_objects2 + xml_path: assets/xml/objects/object_spot01_objects2.xml +- name: objects/object_spot02_objects + xml_path: assets/xml/objects/object_spot02_objects.xml +- name: objects/object_spot03_object + xml_path: assets/xml/objects/object_spot03_object.xml +- name: objects/object_spot04_objects + xml_path: assets/xml/objects/object_spot04_objects.xml +- name: objects/object_spot05_objects + xml_path: assets/xml/objects/object_spot05_objects.xml +- name: objects/object_spot06_objects + xml_path: assets/xml/objects/object_spot06_objects.xml +- name: objects/object_spot07_object + xml_path: assets/xml/objects/object_spot07_object.xml +- name: objects/object_spot08_obj + xml_path: assets/xml/objects/object_spot08_obj.xml +- name: objects/object_spot09_obj + xml_path: assets/xml/objects/object_spot09_obj.xml +- name: objects/object_spot11_obj + xml_path: assets/xml/objects/object_spot11_obj.xml +- name: objects/object_spot12_obj + xml_path: assets/xml/objects/object_spot12_obj.xml +- name: objects/object_spot15_obj + xml_path: assets/xml/objects/object_spot15_obj.xml +- name: objects/object_spot16_obj + xml_path: assets/xml/objects/object_spot16_obj.xml +- name: objects/object_spot17_obj + xml_path: assets/xml/objects/object_spot17_obj.xml +- name: objects/object_spot18_obj + xml_path: assets/xml/objects/object_spot18_obj.xml +- name: objects/object_ssh + xml_path: assets/xml/objects/object_ssh.xml +- name: objects/object_sst + xml_path: assets/xml/objects/object_sst.xml +- name: objects/object_st + xml_path: assets/xml/objects/object_st.xml +- name: objects/object_stream + xml_path: assets/xml/objects/object_stream.xml +- name: objects/object_syokudai + xml_path: assets/xml/objects/object_syokudai.xml +- name: objects/object_ta + xml_path: assets/xml/objects/object_ta.xml +- name: objects/object_timeblock + xml_path: assets/xml/objects/object_timeblock.xml +- name: objects/object_tite + xml_path: assets/xml/objects/object_tite.xml +- name: objects/object_tk + xml_path: assets/xml/objects/object_tk.xml +- name: objects/object_toki_objects + xml_path: assets/xml/objects/object_toki_objects.xml +- name: objects/object_torch2 + xml_path: assets/xml/objects/object_torch2.xml +- name: objects/object_toryo + xml_path: assets/xml/objects/object_toryo.xml +- name: objects/object_tp + xml_path: assets/xml/objects/object_tp.xml +- name: objects/object_tr + xml_path: assets/xml/objects/object_tr.xml +- name: objects/object_trap + xml_path: assets/xml/objects/object_trap.xml +- name: objects/object_triforce_spot + xml_path: assets/xml/objects/object_triforce_spot.xml +- name: objects/object_ts + xml_path: assets/xml/objects/object_ts.xml +- name: objects/object_tsubo + xml_path: assets/xml/objects/object_tsubo.xml +- name: objects/object_tw + xml_path: assets/xml/objects/object_tw.xml +- name: objects/object_umajump + xml_path: assets/xml/objects/object_umajump.xml +- name: objects/object_vali + xml_path: assets/xml/objects/object_vali.xml +- name: objects/object_vase + xml_path: assets/xml/objects/object_vase.xml +- name: objects/object_vm + xml_path: assets/xml/objects/object_vm.xml +- name: objects/object_wallmaster + xml_path: assets/xml/objects/object_wallmaster.xml +- name: objects/object_warp1 + xml_path: assets/xml/objects/object_warp1.xml +- name: objects/object_warp2 + xml_path: assets/xml/objects/object_warp2.xml +- name: objects/object_wf + xml_path: assets/xml/objects/object_wf.xml +- name: objects/object_wood02 + xml_path: assets/xml/objects/object_wood02.xml +- name: objects/object_xc + xml_path: assets/xml/objects/object_xc.xml +- name: objects/object_yabusame_point + xml_path: assets/xml/objects/object_yabusame_point.xml +- name: objects/object_ydan_objects + xml_path: assets/xml/objects/object_ydan_objects.xml +- name: objects/object_yukabyun + xml_path: assets/xml/objects/object_yukabyun.xml +- name: objects/object_zf + xml_path: assets/xml/objects/object_zf.xml +- name: objects/object_zg + xml_path: assets/xml/objects/object_zg.xml +- name: objects/object_zl1 + xml_path: assets/xml/objects/object_zl1.xml +- name: objects/object_zl2 + xml_path: assets/xml/objects/object_zl2.xml +- name: objects/object_zl2_anime1 + xml_path: assets/xml/objects/object_zl2_anime1.xml +- name: objects/object_zl2_anime2 + xml_path: assets/xml/objects/object_zl2_anime2.xml +- name: objects/object_zl4 + xml_path: assets/xml/objects/object_zl4.xml +- name: objects/object_zo + xml_path: assets/xml/objects/object_zo.xml +- name: overlays/ovl_Arrow_Fire + xml_path: assets/xml/overlays/ovl_Arrow_Fire.xml + start_offset: 0x9D0 + end_offset: 0x1DF0 +- name: overlays/ovl_Arrow_Ice + xml_path: assets/xml/overlays/ovl_Arrow_Ice.xml + start_offset: 0x9F0 + end_offset: 0x1E10 +- name: overlays/ovl_Arrow_Light + xml_path: assets/xml/overlays/ovl_Arrow_Light.xml + start_offset: 0xA00 + end_offset: 0x1E20 +- name: overlays/ovl_Bg_Ganon_Otyuka + xml_path: assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml + start_offset: 0x11C0 + end_offset: 0x259C +- name: overlays/ovl_Bg_Jya_Cobra + xml_path: assets/xml/overlays/ovl_Bg_Jya_Cobra.xml + start_offset: 0x1980 + end_offset: 0x19F8 +- name: overlays/ovl_Boss_Dodongo + xml_path: assets/xml/overlays/ovl_Boss_Dodongo.xml + start_offset: 0x6238 + end_offset: 0x9238 +- name: overlays/ovl_Boss_Ganon + xml_path: assets/xml/overlays/ovl_Boss_Ganon.xml + start_offset: 0xE6B8 + end_offset: 0x211D8 +- name: overlays/ovl_Boss_Ganon2 + xml_path: assets/xml/overlays/ovl_Boss_Ganon2.xml + start_offset: 0xA2C8 + end_offset: 0x10778 +- name: overlays/ovl_Boss_Sst + xml_path: assets/xml/overlays/ovl_Boss_Sst.xml + start_offset: 0xA3C0 + end_offset: 0xAD70 +- name: overlays/ovl_Demo_Shd + xml_path: assets/xml/overlays/ovl_Demo_Shd.xml + start_offset: 0x450 + end_offset: 0x23D0 +- name: overlays/ovl_Effect_Ss_Fhg_Flash + xml_path: assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml + start_offset: 0xA60 + end_offset: 0xF18 +- name: overlays/ovl_Elf_Msg + xml_path: assets/xml/overlays/ovl_Elf_Msg.xml + start_offset: 0x758 + end_offset: 0x9D8 +- name: overlays/ovl_Elf_Msg2 + xml_path: assets/xml/overlays/ovl_Elf_Msg2.xml + start_offset: 0x538 + end_offset: 0x638 +- name: overlays/ovl_En_Bili + xml_path: assets/xml/overlays/ovl_En_Bili.xml + start_offset: 0x1E50 + end_offset: 0x1E70 +- name: overlays/ovl_En_Clear_Tag + xml_path: assets/xml/overlays/ovl_En_Clear_Tag.xml + start_offset: 0x26F0 + end_offset: 0x89F0 +- name: overlays/ovl_En_Ganon_Mant + xml_path: assets/xml/overlays/ovl_En_Ganon_Mant.xml + start_offset: 0x1218 + end_offset: 0x4118 +- name: overlays/ovl_En_Ganon_Organ + xml_path: assets/xml/overlays/ovl_En_Ganon_Organ.xml + start_offset: 0x3E8 + end_offset: 0x6F70 +- name: overlays/ovl_En_Holl + xml_path: assets/xml/overlays/ovl_En_Holl.xml + start_offset: 0xE78 + end_offset: 0xEE0 +- name: overlays/ovl_En_Jsjutan + xml_path: assets/xml/overlays/ovl_En_Jsjutan.xml + start_offset: 0x12F8 + end_offset: 0x4C90 +- name: overlays/ovl_En_Kanban + xml_path: assets/xml/overlays/ovl_En_Kanban.xml + start_offset: 0x2F80 + end_offset: 0x3040 +- name: overlays/ovl_En_Sda + xml_path: assets/xml/overlays/ovl_En_Sda.xml + start_offset: 0x1578 + end_offset: 0x1608 +- name: overlays/ovl_En_Ssh + xml_path: assets/xml/overlays/ovl_En_Ssh.xml + start_offset: 0x2150 + end_offset: 0x21E0 +- name: overlays/ovl_En_St + xml_path: assets/xml/overlays/ovl_En_St.xml + start_offset: 0x26B0 + end_offset: 0x2740 +- name: overlays/ovl_En_Sth + xml_path: assets/xml/overlays/ovl_En_Sth.xml + start_offset: 0xEF0 + end_offset: 0x3EC4 +- name: overlays/ovl_End_Title + xml_path: assets/xml/overlays/ovl_End_Title.xml + start_offset: 0x780 + end_offset: 0x4128 +- name: overlays/ovl_file_choose + xml_path: assets/xml/overlays/ovl_file_choose.xml + start_offset: 0xDE70 + end_offset: 0xE6B0 +- name: overlays/ovl_Magic_Dark + xml_path: assets/xml/overlays/ovl_Magic_Dark.xml + start_offset: 0xD10 + end_offset: 0x1740 +- name: overlays/ovl_Magic_Fire + xml_path: assets/xml/overlays/ovl_Magic_Fire.xml + start_offset: 0xB90 + end_offset: 0x21E0 +- name: overlays/ovl_Magic_Wind + xml_path: assets/xml/overlays/ovl_Magic_Wind.xml + start_offset: 0x780 + end_offset: 0x1C98 +- name: overlays/ovl_Oceff_Spot + xml_path: assets/xml/overlays/ovl_Oceff_Spot.xml + start_offset: 0x7F0 + end_offset: 0xEC8 +- name: overlays/ovl_Oceff_Storm + xml_path: assets/xml/overlays/ovl_Oceff_Storm.xml + start_offset: 0x7B0 + end_offset: 0x1B40 +- name: overlays/ovl_Oceff_Wipe + xml_path: assets/xml/overlays/ovl_Oceff_Wipe.xml + start_offset: 0x550 + end_offset: 0xD10 +- name: overlays/ovl_Oceff_Wipe2 + xml_path: assets/xml/overlays/ovl_Oceff_Wipe2.xml + start_offset: 0x480 + end_offset: 0x16E8 +- name: overlays/ovl_Oceff_Wipe3 + xml_path: assets/xml/overlays/ovl_Oceff_Wipe3.xml + start_offset: 0x480 + end_offset: 0x16C8 +- name: overlays/ovl_Oceff_Wipe4 + xml_path: assets/xml/overlays/ovl_Oceff_Wipe4.xml + start_offset: 0x460 + end_offset: 0xF48 +- name: scenes/dungeons/bdan + xml_path: assets/xml/scenes/dungeons/bdan_mq.xml +- name: scenes/dungeons/bdan_boss + xml_path: assets/xml/scenes/dungeons/bdan_boss.xml +- name: scenes/dungeons/Bmori1 + xml_path: assets/xml/scenes/dungeons/Bmori1_mq.xml +- name: scenes/dungeons/ddan + xml_path: assets/xml/scenes/dungeons/ddan_mq.xml +- name: scenes/dungeons/ddan_boss + xml_path: assets/xml/scenes/dungeons/ddan_boss.xml +- name: scenes/dungeons/FIRE_bs + xml_path: assets/xml/scenes/dungeons/FIRE_bs.xml +- name: scenes/dungeons/ganon + xml_path: assets/xml/scenes/dungeons/ganon.xml +- name: scenes/dungeons/ganon_boss + xml_path: assets/xml/scenes/dungeons/ganon_boss.xml +- name: scenes/dungeons/ganon_demo + xml_path: assets/xml/scenes/dungeons/ganon_demo.xml +- name: scenes/dungeons/ganon_final + xml_path: assets/xml/scenes/dungeons/ganon_final.xml +- name: scenes/dungeons/ganon_sonogo + xml_path: assets/xml/scenes/dungeons/ganon_sonogo.xml +- name: scenes/dungeons/ganontika + xml_path: assets/xml/scenes/dungeons/ganontika_mq.xml +- name: scenes/dungeons/ganontikasonogo + xml_path: assets/xml/scenes/dungeons/ganontikasonogo.xml +- name: scenes/dungeons/gerudoway + xml_path: assets/xml/scenes/dungeons/gerudoway.xml +- name: scenes/dungeons/HAKAdan + xml_path: assets/xml/scenes/dungeons/HAKAdan_mq.xml +- name: scenes/dungeons/HAKAdan_bs + xml_path: assets/xml/scenes/dungeons/HAKAdan_bs.xml +- name: scenes/dungeons/HAKAdanCH + xml_path: assets/xml/scenes/dungeons/HAKAdanCH_mq.xml +- name: scenes/dungeons/HIDAN + xml_path: assets/xml/scenes/dungeons/HIDAN_mq.xml +- name: scenes/dungeons/ice_doukutu + xml_path: assets/xml/scenes/dungeons/ice_doukutu_mq.xml +- name: scenes/dungeons/jyasinboss + xml_path: assets/xml/scenes/dungeons/jyasinboss.xml +- name: scenes/dungeons/jyasinzou + xml_path: assets/xml/scenes/dungeons/jyasinzou_mq.xml +- name: scenes/dungeons/men + xml_path: assets/xml/scenes/dungeons/men_mq.xml +- name: scenes/dungeons/MIZUsin + xml_path: assets/xml/scenes/dungeons/MIZUsin_mq.xml +- name: scenes/dungeons/MIZUsin_bs + xml_path: assets/xml/scenes/dungeons/MIZUsin_bs.xml +- name: scenes/dungeons/moribossroom + xml_path: assets/xml/scenes/dungeons/moribossroom.xml +- name: scenes/dungeons/ydan + xml_path: assets/xml/scenes/dungeons/ydan_mq.xml +- name: scenes/dungeons/ydan_boss + xml_path: assets/xml/scenes/dungeons/ydan_boss.xml +- name: scenes/indoors/bowling + xml_path: assets/xml/scenes/indoors/bowling.xml +- name: scenes/indoors/daiyousei_izumi + xml_path: assets/xml/scenes/indoors/daiyousei_izumi.xml +- name: scenes/indoors/hairal_niwa + xml_path: assets/xml/scenes/indoors/hairal_niwa.xml +- name: scenes/indoors/hairal_niwa2 + xml_path: assets/xml/scenes/indoors/hairal_niwa2.xml +- name: scenes/indoors/hairal_niwa_n + xml_path: assets/xml/scenes/indoors/hairal_niwa_n.xml +- name: scenes/indoors/hakasitarelay + xml_path: assets/xml/scenes/indoors/hakasitarelay.xml +- name: scenes/indoors/hut + xml_path: assets/xml/scenes/indoors/hut.xml +- name: scenes/indoors/hylia_labo + xml_path: assets/xml/scenes/indoors/hylia_labo.xml +- name: scenes/indoors/impa + xml_path: assets/xml/scenes/indoors/impa.xml +- name: scenes/indoors/kakariko + xml_path: assets/xml/scenes/indoors/kakariko.xml +- name: scenes/indoors/kenjyanoma + xml_path: assets/xml/scenes/indoors/kenjyanoma.xml +- name: scenes/indoors/kokiri_home + xml_path: assets/xml/scenes/indoors/kokiri_home.xml +- name: scenes/indoors/kokiri_home3 + xml_path: assets/xml/scenes/indoors/kokiri_home3.xml +- name: scenes/indoors/kokiri_home4 + xml_path: assets/xml/scenes/indoors/kokiri_home4.xml +- name: scenes/indoors/kokiri_home5 + xml_path: assets/xml/scenes/indoors/kokiri_home5.xml +- name: scenes/indoors/labo + xml_path: assets/xml/scenes/indoors/labo.xml +- name: scenes/indoors/link_home + xml_path: assets/xml/scenes/indoors/link_home.xml +- name: scenes/indoors/mahouya + xml_path: assets/xml/scenes/indoors/mahouya.xml +- name: scenes/indoors/malon_stable + xml_path: assets/xml/scenes/indoors/malon_stable.xml +- name: scenes/indoors/miharigoya + xml_path: assets/xml/scenes/indoors/miharigoya.xml +- name: scenes/indoors/nakaniwa + xml_path: assets/xml/scenes/indoors/nakaniwa.xml +- name: scenes/indoors/souko + xml_path: assets/xml/scenes/indoors/souko.xml +- name: scenes/indoors/syatekijyou + xml_path: assets/xml/scenes/indoors/syatekijyou.xml +- name: scenes/indoors/takaraya + xml_path: assets/xml/scenes/indoors/takaraya.xml +- name: scenes/indoors/tent + xml_path: assets/xml/scenes/indoors/tent.xml +- name: scenes/indoors/tokinoma + xml_path: assets/xml/scenes/indoors/tokinoma.xml +- name: scenes/indoors/yousei_izumi_tate + xml_path: assets/xml/scenes/indoors/yousei_izumi_tate.xml +- name: scenes/indoors/yousei_izumi_yoko + xml_path: assets/xml/scenes/indoors/yousei_izumi_yoko.xml +- name: scenes/misc/enrui + xml_path: assets/xml/scenes/misc/enrui.xml +- name: scenes/misc/entra + xml_path: assets/xml/scenes/misc/entra.xml +- name: scenes/misc/entra_n + xml_path: assets/xml/scenes/misc/entra_n.xml +- name: scenes/misc/hakaana + xml_path: assets/xml/scenes/misc/hakaana.xml +- name: scenes/misc/hakaana2 + xml_path: assets/xml/scenes/misc/hakaana2.xml +- name: scenes/misc/hakaana_ouke + xml_path: assets/xml/scenes/misc/hakaana_ouke.xml +- name: scenes/misc/hiral_demo + xml_path: assets/xml/scenes/misc/hiral_demo.xml +- name: scenes/misc/kakariko3 + xml_path: assets/xml/scenes/misc/kakariko3.xml +- name: scenes/misc/kakusiana + xml_path: assets/xml/scenes/misc/kakusiana.xml +- name: scenes/misc/kinsuta + xml_path: assets/xml/scenes/misc/kinsuta.xml +- name: scenes/misc/market_alley + xml_path: assets/xml/scenes/misc/market_alley.xml +- name: scenes/misc/market_alley_n + xml_path: assets/xml/scenes/misc/market_alley_n.xml +- name: scenes/misc/market_day + xml_path: assets/xml/scenes/misc/market_day.xml +- name: scenes/misc/market_night + xml_path: assets/xml/scenes/misc/market_night.xml +- name: scenes/misc/market_ruins + xml_path: assets/xml/scenes/misc/market_ruins.xml +- name: scenes/misc/shrine + xml_path: assets/xml/scenes/misc/shrine.xml +- name: scenes/misc/shrine_n + xml_path: assets/xml/scenes/misc/shrine_n.xml +- name: scenes/misc/shrine_r + xml_path: assets/xml/scenes/misc/shrine_r.xml +- name: scenes/misc/turibori + xml_path: assets/xml/scenes/misc/turibori.xml +- name: scenes/overworld/ganon_tou + xml_path: assets/xml/scenes/overworld/ganon_tou.xml +- name: scenes/overworld/spot00 + xml_path: assets/xml/scenes/overworld/spot00.xml +- name: scenes/overworld/spot01 + xml_path: assets/xml/scenes/overworld/spot01.xml +- name: scenes/overworld/spot02 + xml_path: assets/xml/scenes/overworld/spot02.xml +- name: scenes/overworld/spot03 + xml_path: assets/xml/scenes/overworld/spot03.xml +- name: scenes/overworld/spot04 + xml_path: assets/xml/scenes/overworld/spot04.xml +- name: scenes/overworld/spot05 + xml_path: assets/xml/scenes/overworld/spot05.xml +- name: scenes/overworld/spot06 + xml_path: assets/xml/scenes/overworld/spot06.xml +- name: scenes/overworld/spot07 + xml_path: assets/xml/scenes/overworld/spot07.xml +- name: scenes/overworld/spot08 + xml_path: assets/xml/scenes/overworld/spot08.xml +- name: scenes/overworld/spot09 + xml_path: assets/xml/scenes/overworld/spot09.xml +- name: scenes/overworld/spot10 + xml_path: assets/xml/scenes/overworld/spot10.xml +- name: scenes/overworld/spot11 + xml_path: assets/xml/scenes/overworld/spot11.xml +- name: scenes/overworld/spot12 + xml_path: assets/xml/scenes/overworld/spot12.xml +- name: scenes/overworld/spot13 + xml_path: assets/xml/scenes/overworld/spot13.xml +- name: scenes/overworld/spot15 + xml_path: assets/xml/scenes/overworld/spot15.xml +- name: scenes/overworld/spot16 + xml_path: assets/xml/scenes/overworld/spot16.xml +- name: scenes/overworld/spot17 + xml_path: assets/xml/scenes/overworld/spot17.xml +- name: scenes/overworld/spot18 + xml_path: assets/xml/scenes/overworld/spot18.xml +- name: scenes/overworld/spot20 + xml_path: assets/xml/scenes/overworld/spot20.xml +- name: scenes/shops/alley_shop + xml_path: assets/xml/scenes/shops/alley_shop.xml +- name: scenes/shops/drag + xml_path: assets/xml/scenes/shops/drag.xml +- name: scenes/shops/face_shop + xml_path: assets/xml/scenes/shops/face_shop.xml +- name: scenes/shops/golon + xml_path: assets/xml/scenes/shops/golon.xml +- name: scenes/shops/kokiri_shop + xml_path: assets/xml/scenes/shops/kokiri_shop.xml +- name: scenes/shops/night_shop + xml_path: assets/xml/scenes/shops/night_shop.xml +- name: scenes/shops/shop1 + xml_path: assets/xml/scenes/shops/shop1.xml +- name: scenes/shops/zoora + xml_path: assets/xml/scenes/shops/zoora.xml +- name: scenes/test_levels/besitu + xml_path: assets/xml/scenes/test_levels/besitu.xml +- name: scenes/test_levels/depth_test + xml_path: assets/xml/scenes/test_levels/depth_test.xml +- name: scenes/test_levels/sasatest + xml_path: assets/xml/scenes/test_levels/sasatest.xml +- name: scenes/test_levels/sutaru + xml_path: assets/xml/scenes/test_levels/sutaru.xml +- name: scenes/test_levels/syotes + xml_path: assets/xml/scenes/test_levels/syotes.xml +- name: scenes/test_levels/syotes2 + xml_path: assets/xml/scenes/test_levels/syotes2.xml +- name: scenes/test_levels/test01 + xml_path: assets/xml/scenes/test_levels/test01.xml +- name: scenes/test_levels/testroom + xml_path: assets/xml/scenes/test_levels/testroom.xml +- name: textures/backgrounds + xml_path: assets/xml/textures/backgrounds.xml +- name: textures/do_action_static + xml_path: assets/xml/textures/do_action_static.xml +- name: textures/icon_item_24_static + xml_path: assets/xml/textures/icon_item_24_static.xml +- name: textures/icon_item_dungeon_static + xml_path: assets/xml/textures/icon_item_dungeon_static.xml +- name: textures/icon_item_field_static + xml_path: assets/xml/textures/icon_item_field_static.xml +- name: textures/icon_item_fra_static + xml_path: assets/xml/textures/icon_item_fra_static.xml +- name: textures/icon_item_gameover_static + xml_path: assets/xml/textures/icon_item_gameover_static.xml +- name: textures/icon_item_ger_static + xml_path: assets/xml/textures/icon_item_ger_static.xml +- name: textures/icon_item_nes_static + xml_path: assets/xml/textures/icon_item_nes_static.xml +- name: textures/icon_item_static + xml_path: assets/xml/textures/icon_item_static.xml +- name: textures/item_name_static + xml_path: assets/xml/textures/item_name_static.xml +- name: textures/map_48x85_static + xml_path: assets/xml/textures/map_48x85_static.xml +- name: textures/map_grand_static + xml_path: assets/xml/textures/map_grand_static.xml +- name: textures/map_i_static + xml_path: assets/xml/textures/map_i_static.xml +- name: textures/map_name_static + xml_path: assets/xml/textures/map_name_static.xml +- name: textures/message_static + xml_path: assets/xml/textures/message_static.xml +- name: textures/message_texture_static + xml_path: assets/xml/textures/message_texture_static.xml +- name: textures/nes_font_static + xml_path: assets/xml/textures/nes_font_static.xml +- name: textures/nintendo_rogo_static + xml_path: assets/xml/textures/nintendo_rogo_static.xml +- name: textures/parameter_static + xml_path: assets/xml/textures/parameter_static.xml +- name: textures/place_title_cards + xml_path: assets/xml/textures/place_title_cards.xml +- name: textures/skyboxes + xml_path: assets/xml/textures/skyboxes.xml +- name: textures/title_static + xml_path: assets/xml/textures/title_static.xml diff --git a/baseroms/gc-eu-mq/config.yml b/baseroms/gc-eu-mq/config.yml index 18c23a377..69d531bd0 100644 --- a/baseroms/gc-eu-mq/config.yml +++ b/baseroms/gc-eu-mq/config.yml @@ -5,3 +5,1163 @@ variables: sGerMessageEntryTable: 0x8010BA18 sFraMessageEntryTable: 0x8010DB28 sStaffMessageEntryTable: 0x8010FC38 + sShadowTex: 0x80A72FA0 +assets: +- name: code/fbdemo_circle + xml_path: assets/xml/code/fbdemo_circle.xml + start_offset: 0xE90A8 + end_offset: 0xEA2C8 +- name: code/fbdemo_triforce + xml_path: assets/xml/code/fbdemo_triforce.xml + start_offset: 0xE8530 + end_offset: 0xE8600 +- name: code/fbdemo_wipe1 + xml_path: assets/xml/code/fbdemo_wipe1.xml + start_offset: 0xE8600 + end_offset: 0xE8F90 +- name: misc/link_animetion + xml_path: assets/xml/misc/link_animetion.xml +- name: misc/z_select_static + xml_path: assets/xml/misc/z_select_static.xml +- name: objects/gameplay_dangeon_keep + xml_path: assets/xml/objects/gameplay_dangeon_keep.xml +- name: objects/gameplay_field_keep + xml_path: assets/xml/objects/gameplay_field_keep.xml +- name: objects/gameplay_keep + xml_path: assets/xml/objects/gameplay_keep.xml +- name: objects/object_ahg + xml_path: assets/xml/objects/object_ahg.xml +- name: objects/object_am + xml_path: assets/xml/objects/object_am.xml +- name: objects/object_ane + xml_path: assets/xml/objects/object_ane.xml +- name: objects/object_ani + xml_path: assets/xml/objects/object_ani.xml +- name: objects/object_anubice + xml_path: assets/xml/objects/object_anubice.xml +- name: objects/object_aob + xml_path: assets/xml/objects/object_aob.xml +- name: objects/object_b_heart + xml_path: assets/xml/objects/object_b_heart.xml +- name: objects/object_Bb + xml_path: assets/xml/objects/object_Bb.xml +- name: objects/object_bba + xml_path: assets/xml/objects/object_bba.xml +- name: objects/object_bdan_objects + xml_path: assets/xml/objects/object_bdan_objects.xml +- name: objects/object_bdoor + xml_path: assets/xml/objects/object_bdoor.xml +- name: objects/object_bg + xml_path: assets/xml/objects/object_bg.xml +- name: objects/object_bigokuta + xml_path: assets/xml/objects/object_bigokuta.xml +- name: objects/object_bird + xml_path: assets/xml/objects/object_bird.xml +- name: objects/object_bji + xml_path: assets/xml/objects/object_bji.xml +- name: objects/object_bl + xml_path: assets/xml/objects/object_bl.xml +- name: objects/object_blkobj + xml_path: assets/xml/objects/object_blkobj.xml +- name: objects/object_bob + xml_path: assets/xml/objects/object_bob.xml +- name: objects/object_boj + xml_path: assets/xml/objects/object_boj.xml +- name: objects/object_bombf + xml_path: assets/xml/objects/object_bombf.xml +- name: objects/object_bombiwa + xml_path: assets/xml/objects/object_bombiwa.xml +- name: objects/object_bowl + xml_path: assets/xml/objects/object_bowl.xml +- name: objects/object_box + xml_path: assets/xml/objects/object_box.xml +- name: objects/object_brob + xml_path: assets/xml/objects/object_brob.xml +- name: objects/object_bubble + xml_path: assets/xml/objects/object_bubble.xml +- name: objects/object_bv + xml_path: assets/xml/objects/object_bv.xml +- name: objects/object_bw + xml_path: assets/xml/objects/object_bw.xml +- name: objects/object_bwall + xml_path: assets/xml/objects/object_bwall.xml +- name: objects/object_bxa + xml_path: assets/xml/objects/object_bxa.xml +- name: objects/object_cne + xml_path: assets/xml/objects/object_cne.xml +- name: objects/object_cob + xml_path: assets/xml/objects/object_cob.xml +- name: objects/object_cow + xml_path: assets/xml/objects/object_cow.xml +- name: objects/object_crow + xml_path: assets/xml/objects/object_crow.xml +- name: objects/object_cs + xml_path: assets/xml/objects/object_cs.xml +- name: objects/object_d_elevator + xml_path: assets/xml/objects/object_d_elevator.xml +- name: objects/object_d_hsblock + xml_path: assets/xml/objects/object_d_hsblock.xml +- name: objects/object_d_lift + xml_path: assets/xml/objects/object_d_lift.xml +- name: objects/object_daiku + xml_path: assets/xml/objects/object_daiku.xml +- name: objects/object_ddan_objects + xml_path: assets/xml/objects/object_ddan_objects.xml +- name: objects/object_dekubaba + xml_path: assets/xml/objects/object_dekubaba.xml +- name: objects/object_dekujr + xml_path: assets/xml/objects/object_dekujr.xml +- name: objects/object_dekunuts + xml_path: assets/xml/objects/object_dekunuts.xml +- name: objects/object_demo_6k + xml_path: assets/xml/objects/object_demo_6k.xml +- name: objects/object_demo_kekkai + xml_path: assets/xml/objects/object_demo_kekkai.xml +- name: objects/object_demo_tre_lgt + xml_path: assets/xml/objects/object_demo_tre_lgt.xml +- name: objects/object_dh + xml_path: assets/xml/objects/object_dh.xml +- name: objects/object_dnk + xml_path: assets/xml/objects/object_dnk.xml +- name: objects/object_dns + xml_path: assets/xml/objects/object_dns.xml +- name: objects/object_dodojr + xml_path: assets/xml/objects/object_dodojr.xml +- name: objects/object_dodongo + xml_path: assets/xml/objects/object_dodongo.xml +- name: objects/object_dog + xml_path: assets/xml/objects/object_dog.xml +- name: objects/object_door_gerudo + xml_path: assets/xml/objects/object_door_gerudo.xml +- name: objects/object_door_killer + xml_path: assets/xml/objects/object_door_killer.xml +- name: objects/object_ds + xml_path: assets/xml/objects/object_ds.xml +- name: objects/object_ds2 + xml_path: assets/xml/objects/object_ds2.xml +- name: objects/object_du + xml_path: assets/xml/objects/object_du.xml +- name: objects/object_dy_obj + xml_path: assets/xml/objects/object_dy_obj.xml +- name: objects/object_ec + xml_path: assets/xml/objects/object_ec.xml +- name: objects/object_efc_crystal_light + xml_path: assets/xml/objects/object_efc_crystal_light.xml +- name: objects/object_efc_doughnut + xml_path: assets/xml/objects/object_efc_doughnut.xml +- name: objects/object_efc_erupc + xml_path: assets/xml/objects/object_efc_erupc.xml +- name: objects/object_efc_fire_ball + xml_path: assets/xml/objects/object_efc_fire_ball.xml +- name: objects/object_efc_flash + xml_path: assets/xml/objects/object_efc_flash.xml +- name: objects/object_efc_lgt_shower + xml_path: assets/xml/objects/object_efc_lgt_shower.xml +- name: objects/object_efc_star_field + xml_path: assets/xml/objects/object_efc_star_field.xml +- name: objects/object_efc_tw + xml_path: assets/xml/objects/object_efc_tw.xml +- name: objects/object_ei + xml_path: assets/xml/objects/object_ei.xml +- name: objects/object_fa + xml_path: assets/xml/objects/object_fa.xml +- name: objects/object_fd + xml_path: assets/xml/objects/object_fd.xml +- name: objects/object_fd2 + xml_path: assets/xml/objects/object_fd2.xml +- name: objects/object_fhg + xml_path: assets/xml/objects/object_fhg.xml +- name: objects/object_fire + xml_path: assets/xml/objects/object_fire.xml +- name: objects/object_firefly + xml_path: assets/xml/objects/object_firefly.xml +- name: objects/object_fish + xml_path: assets/xml/objects/object_fish.xml +- name: objects/object_fr + xml_path: assets/xml/objects/object_fr.xml +- name: objects/object_fu + xml_path: assets/xml/objects/object_fu.xml +- name: objects/object_fw + xml_path: assets/xml/objects/object_fw.xml +- name: objects/object_fz + xml_path: assets/xml/objects/object_fz.xml +- name: objects/object_ganon + xml_path: assets/xml/objects/object_ganon.xml +- name: objects/object_ganon2 + xml_path: assets/xml/objects/object_ganon2.xml +- name: objects/object_ganon_anime1 + xml_path: assets/xml/objects/object_ganon_anime1.xml +- name: objects/object_ganon_anime2 + xml_path: assets/xml/objects/object_ganon_anime2.xml +- name: objects/object_ganon_anime3 + xml_path: assets/xml/objects/object_ganon_anime3.xml +- name: objects/object_ganon_objects + xml_path: assets/xml/objects/object_ganon_objects.xml +- name: objects/object_ge1 + xml_path: assets/xml/objects/object_ge1.xml +- name: objects/object_geff + xml_path: assets/xml/objects/object_geff.xml +- name: objects/object_geldb + xml_path: assets/xml/objects/object_geldb.xml +- name: objects/object_gi_arrow + xml_path: assets/xml/objects/object_gi_arrow.xml +- name: objects/object_gi_arrowcase + xml_path: assets/xml/objects/object_gi_arrowcase.xml +- name: objects/object_gi_bean + xml_path: assets/xml/objects/object_gi_bean.xml +- name: objects/object_gi_bomb_1 + xml_path: assets/xml/objects/object_gi_bomb_1.xml +- name: objects/object_gi_bomb_2 + xml_path: assets/xml/objects/object_gi_bomb_2.xml +- name: objects/object_gi_bombpouch + xml_path: assets/xml/objects/object_gi_bombpouch.xml +- name: objects/object_gi_boomerang + xml_path: assets/xml/objects/object_gi_boomerang.xml +- name: objects/object_gi_boots_2 + xml_path: assets/xml/objects/object_gi_boots_2.xml +- name: objects/object_gi_bosskey + xml_path: assets/xml/objects/object_gi_bosskey.xml +- name: objects/object_gi_bottle + xml_path: assets/xml/objects/object_gi_bottle.xml +- name: objects/object_gi_bottle_letter + xml_path: assets/xml/objects/object_gi_bottle_letter.xml +- name: objects/object_gi_bow + xml_path: assets/xml/objects/object_gi_bow.xml +- name: objects/object_gi_bracelet + xml_path: assets/xml/objects/object_gi_bracelet.xml +- name: objects/object_gi_brokensword + xml_path: assets/xml/objects/object_gi_brokensword.xml +- name: objects/object_gi_butterfly + xml_path: assets/xml/objects/object_gi_butterfly.xml +- name: objects/object_gi_clothes + xml_path: assets/xml/objects/object_gi_clothes.xml +- name: objects/object_gi_coin + xml_path: assets/xml/objects/object_gi_coin.xml +- name: objects/object_gi_compass + xml_path: assets/xml/objects/object_gi_compass.xml +- name: objects/object_gi_dekupouch + xml_path: assets/xml/objects/object_gi_dekupouch.xml +- name: objects/object_gi_egg + xml_path: assets/xml/objects/object_gi_egg.xml +- name: objects/object_gi_eye_lotion + xml_path: assets/xml/objects/object_gi_eye_lotion.xml +- name: objects/object_gi_fire + xml_path: assets/xml/objects/object_gi_fire.xml +- name: objects/object_gi_fish + xml_path: assets/xml/objects/object_gi_fish.xml +- name: objects/object_gi_frog + xml_path: assets/xml/objects/object_gi_frog.xml +- name: objects/object_gi_gerudo + xml_path: assets/xml/objects/object_gi_gerudo.xml +- name: objects/object_gi_gerudomask + xml_path: assets/xml/objects/object_gi_gerudomask.xml +- name: objects/object_gi_ghost + xml_path: assets/xml/objects/object_gi_ghost.xml +- name: objects/object_gi_glasses + xml_path: assets/xml/objects/object_gi_glasses.xml +- name: objects/object_gi_gloves + xml_path: assets/xml/objects/object_gi_gloves.xml +- name: objects/object_gi_goddess + xml_path: assets/xml/objects/object_gi_goddess.xml +- name: objects/object_gi_golonmask + xml_path: assets/xml/objects/object_gi_golonmask.xml +- name: objects/object_gi_grass + xml_path: assets/xml/objects/object_gi_grass.xml +- name: objects/object_gi_hammer + xml_path: assets/xml/objects/object_gi_hammer.xml +- name: objects/object_gi_heart + xml_path: assets/xml/objects/object_gi_heart.xml +- name: objects/object_gi_hearts + xml_path: assets/xml/objects/object_gi_hearts.xml +- name: objects/object_gi_hookshot + xml_path: assets/xml/objects/object_gi_hookshot.xml +- name: objects/object_gi_hoverboots + xml_path: assets/xml/objects/object_gi_hoverboots.xml +- name: objects/object_gi_insect + xml_path: assets/xml/objects/object_gi_insect.xml +- name: objects/object_gi_jewel + xml_path: assets/xml/objects/object_gi_jewel.xml +- name: objects/object_gi_key + xml_path: assets/xml/objects/object_gi_key.xml +- name: objects/object_gi_ki_tan_mask + xml_path: assets/xml/objects/object_gi_ki_tan_mask.xml +- name: objects/object_gi_letter + xml_path: assets/xml/objects/object_gi_letter.xml +- name: objects/object_gi_liquid + xml_path: assets/xml/objects/object_gi_liquid.xml +- name: objects/object_gi_longsword + xml_path: assets/xml/objects/object_gi_longsword.xml +- name: objects/object_gi_m_arrow + xml_path: assets/xml/objects/object_gi_m_arrow.xml +- name: objects/object_gi_magicpot + xml_path: assets/xml/objects/object_gi_magicpot.xml +- name: objects/object_gi_map + xml_path: assets/xml/objects/object_gi_map.xml +- name: objects/object_gi_medal + xml_path: assets/xml/objects/object_gi_medal.xml +- name: objects/object_gi_melody + xml_path: assets/xml/objects/object_gi_melody.xml +- name: objects/object_gi_milk + xml_path: assets/xml/objects/object_gi_milk.xml +- name: objects/object_gi_mushroom + xml_path: assets/xml/objects/object_gi_mushroom.xml +- name: objects/object_gi_niwatori + xml_path: assets/xml/objects/object_gi_niwatori.xml +- name: objects/object_gi_nuts + xml_path: assets/xml/objects/object_gi_nuts.xml +- name: objects/object_gi_ocarina + xml_path: assets/xml/objects/object_gi_ocarina.xml +- name: objects/object_gi_ocarina_0 + xml_path: assets/xml/objects/object_gi_ocarina_0.xml +- name: objects/object_gi_pachinko + xml_path: assets/xml/objects/object_gi_pachinko.xml +- name: objects/object_gi_powder + xml_path: assets/xml/objects/object_gi_powder.xml +- name: objects/object_gi_prescription + xml_path: assets/xml/objects/object_gi_prescription.xml +- name: objects/object_gi_purse + xml_path: assets/xml/objects/object_gi_purse.xml +- name: objects/object_gi_rabit_mask + xml_path: assets/xml/objects/object_gi_rabit_mask.xml +- name: objects/object_gi_redead_mask + xml_path: assets/xml/objects/object_gi_redead_mask.xml +- name: objects/object_gi_rupy + xml_path: assets/xml/objects/object_gi_rupy.xml +- name: objects/object_gi_saw + xml_path: assets/xml/objects/object_gi_saw.xml +- name: objects/object_gi_scale + xml_path: assets/xml/objects/object_gi_scale.xml +- name: objects/object_gi_seed + xml_path: assets/xml/objects/object_gi_seed.xml +- name: objects/object_gi_shield_1 + xml_path: assets/xml/objects/object_gi_shield_1.xml +- name: objects/object_gi_shield_2 + xml_path: assets/xml/objects/object_gi_shield_2.xml +- name: objects/object_gi_shield_3 + xml_path: assets/xml/objects/object_gi_shield_3.xml +- name: objects/object_gi_skj_mask + xml_path: assets/xml/objects/object_gi_skj_mask.xml +- name: objects/object_gi_soldout + xml_path: assets/xml/objects/object_gi_soldout.xml +- name: objects/object_gi_soul + xml_path: assets/xml/objects/object_gi_soul.xml +- name: objects/object_gi_stick + xml_path: assets/xml/objects/object_gi_stick.xml +- name: objects/object_gi_sutaru + xml_path: assets/xml/objects/object_gi_sutaru.xml +- name: objects/object_gi_sword_1 + xml_path: assets/xml/objects/object_gi_sword_1.xml +- name: objects/object_gi_ticketstone + xml_path: assets/xml/objects/object_gi_ticketstone.xml +- name: objects/object_gi_truth_mask + xml_path: assets/xml/objects/object_gi_truth_mask.xml +- name: objects/object_gi_zoramask + xml_path: assets/xml/objects/object_gi_zoramask.xml +- name: objects/object_gj + xml_path: assets/xml/objects/object_gj.xml +- name: objects/object_gjyo_objects + xml_path: assets/xml/objects/object_gjyo_objects.xml +- name: objects/object_gla + xml_path: assets/xml/objects/object_gla.xml +- name: objects/object_gm + xml_path: assets/xml/objects/object_gm.xml +- name: objects/object_gnd + xml_path: assets/xml/objects/object_gnd.xml +- name: objects/object_gnd_magic + xml_path: assets/xml/objects/object_gnd_magic.xml +- name: objects/object_gndd + xml_path: assets/xml/objects/object_gndd.xml +- name: objects/object_god_lgt + xml_path: assets/xml/objects/object_god_lgt.xml +- name: objects/object_gol + xml_path: assets/xml/objects/object_gol.xml +- name: objects/object_goma + xml_path: assets/xml/objects/object_goma.xml +- name: objects/object_goroiwa + xml_path: assets/xml/objects/object_goroiwa.xml +- name: objects/object_gr + xml_path: assets/xml/objects/object_gr.xml +- name: objects/object_gs + xml_path: assets/xml/objects/object_gs.xml +- name: objects/object_gt + xml_path: assets/xml/objects/object_gt.xml +- name: objects/object_haka + xml_path: assets/xml/objects/object_haka.xml +- name: objects/object_haka_door + xml_path: assets/xml/objects/object_haka_door.xml +- name: objects/object_haka_objects + xml_path: assets/xml/objects/object_haka_objects.xml +- name: objects/object_hakach_objects + xml_path: assets/xml/objects/object_hakach_objects.xml +- name: objects/object_hata + xml_path: assets/xml/objects/object_hata.xml +- name: objects/object_heavy_object + xml_path: assets/xml/objects/object_heavy_object.xml +- name: objects/object_hidan_objects + xml_path: assets/xml/objects/object_hidan_objects.xml +- name: objects/object_hintnuts + xml_path: assets/xml/objects/object_hintnuts.xml +- name: objects/object_hni + xml_path: assets/xml/objects/object_hni.xml +- name: objects/object_horse + xml_path: assets/xml/objects/object_horse.xml +- name: objects/object_horse_ganon + xml_path: assets/xml/objects/object_horse_ganon.xml +- name: objects/object_horse_link_child + xml_path: assets/xml/objects/object_horse_link_child.xml +- name: objects/object_horse_normal + xml_path: assets/xml/objects/object_horse_normal.xml +- name: objects/object_horse_zelda + xml_path: assets/xml/objects/object_horse_zelda.xml +- name: objects/object_hs + xml_path: assets/xml/objects/object_hs.xml +- name: objects/object_human + xml_path: assets/xml/objects/object_human.xml +- name: objects/object_ice_objects + xml_path: assets/xml/objects/object_ice_objects.xml +- name: objects/object_ik + xml_path: assets/xml/objects/object_ik.xml +- name: objects/object_im + xml_path: assets/xml/objects/object_im.xml +- name: objects/object_in + xml_path: assets/xml/objects/object_in.xml +- name: objects/object_ingate + xml_path: assets/xml/objects/object_ingate.xml +- name: objects/object_jj + xml_path: assets/xml/objects/object_jj.xml +- name: objects/object_js + xml_path: assets/xml/objects/object_js.xml +- name: objects/object_jya_door + xml_path: assets/xml/objects/object_jya_door.xml +- name: objects/object_jya_iron + xml_path: assets/xml/objects/object_jya_iron.xml +- name: objects/object_jya_obj + xml_path: assets/xml/objects/object_jya_obj.xml +- name: objects/object_ka + xml_path: assets/xml/objects/object_ka.xml +- name: objects/object_kanban + xml_path: assets/xml/objects/object_kanban.xml +- name: objects/object_kibako2 + xml_path: assets/xml/objects/object_kibako2.xml +- name: objects/object_kingdodongo + xml_path: assets/xml/objects/object_kingdodongo.xml +- name: objects/object_km1 + xml_path: assets/xml/objects/object_km1.xml +- name: objects/object_kusa + xml_path: assets/xml/objects/object_kusa.xml +- name: objects/object_kw1 + xml_path: assets/xml/objects/object_kw1.xml +- name: objects/object_kz + xml_path: assets/xml/objects/object_kz.xml +- name: objects/object_light_ring + xml_path: assets/xml/objects/object_light_ring.xml +- name: objects/object_lightbox + xml_path: assets/xml/objects/object_lightbox.xml +- name: objects/object_lightswitch + xml_path: assets/xml/objects/object_lightswitch.xml +- name: objects/object_link_boy + xml_path: assets/xml/objects/object_link_boy.xml +- name: objects/object_link_child + xml_path: assets/xml/objects/object_link_child.xml +- name: objects/object_ma1 + xml_path: assets/xml/objects/object_ma1.xml +- name: objects/object_ma2 + xml_path: assets/xml/objects/object_ma2.xml +- name: objects/object_mag + xml_path: assets/xml/objects/object_mag_mq.xml +- name: objects/object_mamenoki + xml_path: assets/xml/objects/object_mamenoki.xml +- name: objects/object_mastergolon + xml_path: assets/xml/objects/object_mastergolon.xml +- name: objects/object_masterkokiri + xml_path: assets/xml/objects/object_masterkokiri.xml +- name: objects/object_masterkokirihead + xml_path: assets/xml/objects/object_masterkokirihead.xml +- name: objects/object_masterzoora + xml_path: assets/xml/objects/object_masterzoora.xml +- name: objects/object_mb + xml_path: assets/xml/objects/object_mb.xml +- name: objects/object_md + xml_path: assets/xml/objects/object_md.xml +- name: objects/object_medal + xml_path: assets/xml/objects/object_medal.xml +- name: objects/object_menkuri_objects + xml_path: assets/xml/objects/object_menkuri_objects.xml +- name: objects/object_mir_ray + xml_path: assets/xml/objects/object_mir_ray.xml +- name: objects/object_mizu_objects + xml_path: assets/xml/objects/object_mizu_objects.xml +- name: objects/object_mjin + xml_path: assets/xml/objects/object_mjin.xml +- name: objects/object_mjin_dark + xml_path: assets/xml/objects/object_mjin_dark.xml +- name: objects/object_mjin_flame + xml_path: assets/xml/objects/object_mjin_flame.xml +- name: objects/object_mjin_flash + xml_path: assets/xml/objects/object_mjin_flash.xml +- name: objects/object_mjin_ice + xml_path: assets/xml/objects/object_mjin_ice.xml +- name: objects/object_mjin_oka + xml_path: assets/xml/objects/object_mjin_oka.xml +- name: objects/object_mjin_soul + xml_path: assets/xml/objects/object_mjin_soul.xml +- name: objects/object_mjin_wind + xml_path: assets/xml/objects/object_mjin_wind.xml +- name: objects/object_mk + xml_path: assets/xml/objects/object_mk.xml +- name: objects/object_mm + xml_path: assets/xml/objects/object_mm.xml +- name: objects/object_mo + xml_path: assets/xml/objects/object_mo.xml +- name: objects/object_mori_hineri1 + xml_path: assets/xml/objects/object_mori_hineri1.xml +- name: objects/object_mori_hineri1a + xml_path: assets/xml/objects/object_mori_hineri1a.xml +- name: objects/object_mori_hineri2 + xml_path: assets/xml/objects/object_mori_hineri2.xml +- name: objects/object_mori_hineri2a + xml_path: assets/xml/objects/object_mori_hineri2a.xml +- name: objects/object_mori_objects + xml_path: assets/xml/objects/object_mori_objects.xml +- name: objects/object_mori_tex + xml_path: assets/xml/objects/object_mori_tex.xml +- name: objects/object_ms + xml_path: assets/xml/objects/object_ms.xml +- name: objects/object_mu + xml_path: assets/xml/objects/object_mu.xml +- name: objects/object_nb + xml_path: assets/xml/objects/object_nb.xml +- name: objects/object_niw + xml_path: assets/xml/objects/object_niw.xml +- name: objects/object_nwc + xml_path: assets/xml/objects/object_nwc.xml +- name: objects/object_ny + xml_path: assets/xml/objects/object_ny.xml +- name: objects/object_o_anime + xml_path: assets/xml/objects/object_o_anime.xml +- name: objects/object_oA1 + xml_path: assets/xml/objects/object_oA1.xml +- name: objects/object_oA2 + xml_path: assets/xml/objects/object_oA2.xml +- name: objects/object_oA3 + xml_path: assets/xml/objects/object_oA3.xml +- name: objects/object_oA4 + xml_path: assets/xml/objects/object_oA4.xml +- name: objects/object_oA5 + xml_path: assets/xml/objects/object_oA5.xml +- name: objects/object_oA6 + xml_path: assets/xml/objects/object_oA6.xml +- name: objects/object_oA7 + xml_path: assets/xml/objects/object_oA7.xml +- name: objects/object_oA8 + xml_path: assets/xml/objects/object_oA8.xml +- name: objects/object_oA9 + xml_path: assets/xml/objects/object_oA9.xml +- name: objects/object_oA10 + xml_path: assets/xml/objects/object_oA10.xml +- name: objects/object_oA11 + xml_path: assets/xml/objects/object_oA11.xml +- name: objects/object_oB1 + xml_path: assets/xml/objects/object_oB1.xml +- name: objects/object_oB2 + xml_path: assets/xml/objects/object_oB2.xml +- name: objects/object_oB3 + xml_path: assets/xml/objects/object_oB3.xml +- name: objects/object_oB4 + xml_path: assets/xml/objects/object_oB4.xml +- name: objects/object_oE1 + xml_path: assets/xml/objects/object_oE1.xml +- name: objects/object_oE1s + xml_path: assets/xml/objects/object_oE1s.xml +- name: objects/object_oE2 + xml_path: assets/xml/objects/object_oE2.xml +- name: objects/object_oE3 + xml_path: assets/xml/objects/object_oE3.xml +- name: objects/object_oE4 + xml_path: assets/xml/objects/object_oE4.xml +- name: objects/object_oE4s + xml_path: assets/xml/objects/object_oE4s.xml +- name: objects/object_oE5 + xml_path: assets/xml/objects/object_oE5.xml +- name: objects/object_oE6 + xml_path: assets/xml/objects/object_oE6.xml +- name: objects/object_oE7 + xml_path: assets/xml/objects/object_oE7.xml +- name: objects/object_oE8 + xml_path: assets/xml/objects/object_oE8.xml +- name: objects/object_oE9 + xml_path: assets/xml/objects/object_oE9.xml +- name: objects/object_oE10 + xml_path: assets/xml/objects/object_oE10.xml +- name: objects/object_oE11 + xml_path: assets/xml/objects/object_oE11.xml +- name: objects/object_oE12 + xml_path: assets/xml/objects/object_oE12.xml +- name: objects/object_oE_anime + xml_path: assets/xml/objects/object_oE_anime.xml +- name: objects/object_oF1d_map + xml_path: assets/xml/objects/object_oF1d_map.xml +- name: objects/object_oF1s + xml_path: assets/xml/objects/object_oF1s.xml +- name: objects/object_okuta + xml_path: assets/xml/objects/object_okuta.xml +- name: objects/object_opening_demo1 + xml_path: assets/xml/objects/object_opening_demo1.xml +- name: objects/object_os + xml_path: assets/xml/objects/object_os.xml +- name: objects/object_os_anime + xml_path: assets/xml/objects/object_os_anime.xml +- name: objects/object_ossan + xml_path: assets/xml/objects/object_ossan.xml +- name: objects/object_ouke_haka + xml_path: assets/xml/objects/object_ouke_haka.xml +- name: objects/object_owl + xml_path: assets/xml/objects/object_owl.xml +- name: objects/object_peehat + xml_path: assets/xml/objects/object_peehat.xml +- name: objects/object_po_composer + xml_path: assets/xml/objects/object_po_composer.xml +- name: objects/object_po_field + xml_path: assets/xml/objects/object_po_field.xml +- name: objects/object_po_sisters + xml_path: assets/xml/objects/object_po_sisters.xml +- name: objects/object_poh + xml_path: assets/xml/objects/object_poh.xml +- name: objects/object_ps + xml_path: assets/xml/objects/object_ps.xml +- name: objects/object_pu_box + xml_path: assets/xml/objects/object_pu_box.xml +- name: objects/object_rd + xml_path: assets/xml/objects/object_rd.xml +- name: objects/object_reeba + xml_path: assets/xml/objects/object_reeba.xml +- name: objects/object_relay_objects + xml_path: assets/xml/objects/object_relay_objects.xml +- name: objects/object_rl + xml_path: assets/xml/objects/object_rl.xml +- name: objects/object_rr + xml_path: assets/xml/objects/object_rr.xml +- name: objects/object_rs + xml_path: assets/xml/objects/object_rs.xml +- name: objects/object_ru1 + xml_path: assets/xml/objects/object_ru1.xml +- name: objects/object_ru2 + xml_path: assets/xml/objects/object_ru2.xml +- name: objects/object_sa + xml_path: assets/xml/objects/object_sa.xml +- name: objects/object_sb + xml_path: assets/xml/objects/object_sb.xml +- name: objects/object_sd + xml_path: assets/xml/objects/object_sd.xml +- name: objects/object_shop_dungen + xml_path: assets/xml/objects/object_shop_dungen.xml +- name: objects/object_shopnuts + xml_path: assets/xml/objects/object_shopnuts.xml +- name: objects/object_siofuki + xml_path: assets/xml/objects/object_siofuki.xml +- name: objects/object_sk2 + xml_path: assets/xml/objects/object_sk2.xml +- name: objects/object_skb + xml_path: assets/xml/objects/object_skb.xml +- name: objects/object_skj + xml_path: assets/xml/objects/object_skj.xml +- name: objects/object_spot00_break + xml_path: assets/xml/objects/object_spot00_break.xml +- name: objects/object_spot00_objects + xml_path: assets/xml/objects/object_spot00_objects.xml +- name: objects/object_spot01_matoya + xml_path: assets/xml/objects/object_spot01_matoya.xml +- name: objects/object_spot01_matoyab + xml_path: assets/xml/objects/object_spot01_matoyab.xml +- name: objects/object_spot01_objects + xml_path: assets/xml/objects/object_spot01_objects.xml +- name: objects/object_spot01_objects2 + xml_path: assets/xml/objects/object_spot01_objects2.xml +- name: objects/object_spot02_objects + xml_path: assets/xml/objects/object_spot02_objects.xml +- name: objects/object_spot03_object + xml_path: assets/xml/objects/object_spot03_object.xml +- name: objects/object_spot04_objects + xml_path: assets/xml/objects/object_spot04_objects.xml +- name: objects/object_spot05_objects + xml_path: assets/xml/objects/object_spot05_objects.xml +- name: objects/object_spot06_objects + xml_path: assets/xml/objects/object_spot06_objects.xml +- name: objects/object_spot07_object + xml_path: assets/xml/objects/object_spot07_object.xml +- name: objects/object_spot08_obj + xml_path: assets/xml/objects/object_spot08_obj.xml +- name: objects/object_spot09_obj + xml_path: assets/xml/objects/object_spot09_obj.xml +- name: objects/object_spot11_obj + xml_path: assets/xml/objects/object_spot11_obj.xml +- name: objects/object_spot12_obj + xml_path: assets/xml/objects/object_spot12_obj.xml +- name: objects/object_spot15_obj + xml_path: assets/xml/objects/object_spot15_obj.xml +- name: objects/object_spot16_obj + xml_path: assets/xml/objects/object_spot16_obj.xml +- name: objects/object_spot17_obj + xml_path: assets/xml/objects/object_spot17_obj.xml +- name: objects/object_spot18_obj + xml_path: assets/xml/objects/object_spot18_obj.xml +- name: objects/object_ssh + xml_path: assets/xml/objects/object_ssh.xml +- name: objects/object_sst + xml_path: assets/xml/objects/object_sst.xml +- name: objects/object_st + xml_path: assets/xml/objects/object_st.xml +- name: objects/object_stream + xml_path: assets/xml/objects/object_stream.xml +- name: objects/object_syokudai + xml_path: assets/xml/objects/object_syokudai.xml +- name: objects/object_ta + xml_path: assets/xml/objects/object_ta.xml +- name: objects/object_timeblock + xml_path: assets/xml/objects/object_timeblock.xml +- name: objects/object_tite + xml_path: assets/xml/objects/object_tite.xml +- name: objects/object_tk + xml_path: assets/xml/objects/object_tk.xml +- name: objects/object_toki_objects + xml_path: assets/xml/objects/object_toki_objects.xml +- name: objects/object_torch2 + xml_path: assets/xml/objects/object_torch2.xml +- name: objects/object_toryo + xml_path: assets/xml/objects/object_toryo.xml +- name: objects/object_tp + xml_path: assets/xml/objects/object_tp.xml +- name: objects/object_tr + xml_path: assets/xml/objects/object_tr.xml +- name: objects/object_trap + xml_path: assets/xml/objects/object_trap.xml +- name: objects/object_triforce_spot + xml_path: assets/xml/objects/object_triforce_spot.xml +- name: objects/object_ts + xml_path: assets/xml/objects/object_ts.xml +- name: objects/object_tsubo + xml_path: assets/xml/objects/object_tsubo.xml +- name: objects/object_tw + xml_path: assets/xml/objects/object_tw.xml +- name: objects/object_umajump + xml_path: assets/xml/objects/object_umajump.xml +- name: objects/object_vali + xml_path: assets/xml/objects/object_vali.xml +- name: objects/object_vase + xml_path: assets/xml/objects/object_vase.xml +- name: objects/object_vm + xml_path: assets/xml/objects/object_vm.xml +- name: objects/object_wallmaster + xml_path: assets/xml/objects/object_wallmaster.xml +- name: objects/object_warp1 + xml_path: assets/xml/objects/object_warp1.xml +- name: objects/object_warp2 + xml_path: assets/xml/objects/object_warp2.xml +- name: objects/object_wf + xml_path: assets/xml/objects/object_wf.xml +- name: objects/object_wood02 + xml_path: assets/xml/objects/object_wood02.xml +- name: objects/object_xc + xml_path: assets/xml/objects/object_xc.xml +- name: objects/object_yabusame_point + xml_path: assets/xml/objects/object_yabusame_point.xml +- name: objects/object_ydan_objects + xml_path: assets/xml/objects/object_ydan_objects.xml +- name: objects/object_yukabyun + xml_path: assets/xml/objects/object_yukabyun.xml +- name: objects/object_zf + xml_path: assets/xml/objects/object_zf.xml +- name: objects/object_zg + xml_path: assets/xml/objects/object_zg.xml +- name: objects/object_zl1 + xml_path: assets/xml/objects/object_zl1.xml +- name: objects/object_zl2 + xml_path: assets/xml/objects/object_zl2.xml +- name: objects/object_zl2_anime1 + xml_path: assets/xml/objects/object_zl2_anime1.xml +- name: objects/object_zl2_anime2 + xml_path: assets/xml/objects/object_zl2_anime2.xml +- name: objects/object_zl4 + xml_path: assets/xml/objects/object_zl4.xml +- name: objects/object_zo + xml_path: assets/xml/objects/object_zo.xml +- name: overlays/ovl_Arrow_Fire + xml_path: assets/xml/overlays/ovl_Arrow_Fire.xml + start_offset: 0x980 + end_offset: 0x1DA0 +- name: overlays/ovl_Arrow_Ice + xml_path: assets/xml/overlays/ovl_Arrow_Ice.xml + start_offset: 0x9A0 + end_offset: 0x1DC0 +- name: overlays/ovl_Arrow_Light + xml_path: assets/xml/overlays/ovl_Arrow_Light.xml + start_offset: 0x9B0 + end_offset: 0x1DD0 +- name: overlays/ovl_Bg_Ganon_Otyuka + xml_path: assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml + start_offset: 0x1100 + end_offset: 0x24DC +- name: overlays/ovl_Bg_Jya_Cobra + xml_path: assets/xml/overlays/ovl_Bg_Jya_Cobra.xml + start_offset: 0x1850 + end_offset: 0x18C8 +- name: overlays/ovl_Boss_Dodongo + xml_path: assets/xml/overlays/ovl_Boss_Dodongo.xml + start_offset: 0x61E8 + end_offset: 0x91E8 +- name: overlays/ovl_Boss_Ganon + xml_path: assets/xml/overlays/ovl_Boss_Ganon.xml + start_offset: 0xE3C8 + end_offset: 0x20EE8 +- name: overlays/ovl_Boss_Ganon2 + xml_path: assets/xml/overlays/ovl_Boss_Ganon2.xml + start_offset: 0x9F88 + end_offset: 0x10438 +- name: overlays/ovl_Boss_Sst + xml_path: assets/xml/overlays/ovl_Boss_Sst.xml + start_offset: 0xA380 + end_offset: 0xAD30 +- name: overlays/ovl_Demo_Shd + xml_path: assets/xml/overlays/ovl_Demo_Shd.xml + start_offset: 0x410 + end_offset: 0x2390 +- name: overlays/ovl_Effect_Ss_Fhg_Flash + xml_path: assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml + start_offset: 0x9F0 + end_offset: 0xEA8 +- name: overlays/ovl_En_Bili + xml_path: assets/xml/overlays/ovl_En_Bili.xml + start_offset: 0x1E40 + end_offset: 0x1E60 +- name: overlays/ovl_En_Clear_Tag + xml_path: assets/xml/overlays/ovl_En_Clear_Tag.xml + start_offset: 0x2600 + end_offset: 0x8900 +- name: overlays/ovl_En_Ganon_Mant + xml_path: assets/xml/overlays/ovl_En_Ganon_Mant.xml + start_offset: 0x11F8 + end_offset: 0x40F8 +- name: overlays/ovl_En_Ganon_Organ + xml_path: assets/xml/overlays/ovl_En_Ganon_Organ.xml + start_offset: 0x368 + end_offset: 0x6EF0 +- name: overlays/ovl_En_Holl + xml_path: assets/xml/overlays/ovl_En_Holl.xml + start_offset: 0xE68 + end_offset: 0xED0 +- name: overlays/ovl_En_Jsjutan + xml_path: assets/xml/overlays/ovl_En_Jsjutan.xml + start_offset: 0x12C8 + end_offset: 0x4C60 +- name: overlays/ovl_En_Kanban + xml_path: assets/xml/overlays/ovl_En_Kanban.xml + start_offset: 0x2E70 + end_offset: 0x2F30 +- name: overlays/ovl_En_Sda + xml_path: assets/xml/overlays/ovl_En_Sda.xml + start_offset: 0x1498 + end_offset: 0x1528 +- name: overlays/ovl_En_Ssh + xml_path: assets/xml/overlays/ovl_En_Ssh.xml + start_offset: 0x2150 + end_offset: 0x21E0 +- name: overlays/ovl_En_St + xml_path: assets/xml/overlays/ovl_En_St.xml + start_offset: 0x26A0 + end_offset: 0x2730 +- name: overlays/ovl_En_Sth + xml_path: assets/xml/overlays/ovl_En_Sth.xml + start_offset: 0xE70 + end_offset: 0x3E44 +- name: overlays/ovl_End_Title + xml_path: assets/xml/overlays/ovl_End_Title.xml + start_offset: 0x6E0 + end_offset: 0x4088 +- name: overlays/ovl_file_choose + xml_path: assets/xml/overlays/ovl_file_choose.xml + start_offset: 0xD740 + end_offset: 0xDF80 +- name: overlays/ovl_Magic_Dark + xml_path: assets/xml/overlays/ovl_Magic_Dark.xml + start_offset: 0xC90 + end_offset: 0x16C0 +- name: overlays/ovl_Magic_Fire + xml_path: assets/xml/overlays/ovl_Magic_Fire.xml + start_offset: 0xB50 + end_offset: 0x21A0 +- name: overlays/ovl_Magic_Wind + xml_path: assets/xml/overlays/ovl_Magic_Wind.xml + start_offset: 0x6A0 + end_offset: 0x1BB8 +- name: overlays/ovl_Oceff_Spot + xml_path: assets/xml/overlays/ovl_Oceff_Spot.xml + start_offset: 0x780 + end_offset: 0xE58 +- name: overlays/ovl_Oceff_Storm + xml_path: assets/xml/overlays/ovl_Oceff_Storm.xml + start_offset: 0x750 + end_offset: 0x1AE0 +- name: overlays/ovl_Oceff_Wipe + xml_path: assets/xml/overlays/ovl_Oceff_Wipe.xml + start_offset: 0x520 + end_offset: 0xCE0 +- name: overlays/ovl_Oceff_Wipe2 + xml_path: assets/xml/overlays/ovl_Oceff_Wipe2.xml + start_offset: 0x430 + end_offset: 0x1698 +- name: overlays/ovl_Oceff_Wipe3 + xml_path: assets/xml/overlays/ovl_Oceff_Wipe3.xml + start_offset: 0x430 + end_offset: 0x1678 +- name: overlays/ovl_Oceff_Wipe4 + xml_path: assets/xml/overlays/ovl_Oceff_Wipe4.xml + start_offset: 0x410 + end_offset: 0xEF8 +- name: scenes/dungeons/bdan + xml_path: assets/xml/scenes/dungeons/bdan_mq.xml +- name: scenes/dungeons/bdan_boss + xml_path: assets/xml/scenes/dungeons/bdan_boss.xml +- name: scenes/dungeons/Bmori1 + xml_path: assets/xml/scenes/dungeons/Bmori1_mq.xml +- name: scenes/dungeons/ddan + xml_path: assets/xml/scenes/dungeons/ddan_mq.xml +- name: scenes/dungeons/ddan_boss + xml_path: assets/xml/scenes/dungeons/ddan_boss.xml +- name: scenes/dungeons/FIRE_bs + xml_path: assets/xml/scenes/dungeons/FIRE_bs.xml +- name: scenes/dungeons/ganon + xml_path: assets/xml/scenes/dungeons/ganon.xml +- name: scenes/dungeons/ganon_boss + xml_path: assets/xml/scenes/dungeons/ganon_boss.xml +- name: scenes/dungeons/ganon_demo + xml_path: assets/xml/scenes/dungeons/ganon_demo.xml +- name: scenes/dungeons/ganon_final + xml_path: assets/xml/scenes/dungeons/ganon_final.xml +- name: scenes/dungeons/ganon_sonogo + xml_path: assets/xml/scenes/dungeons/ganon_sonogo.xml +- name: scenes/dungeons/ganontika + xml_path: assets/xml/scenes/dungeons/ganontika_mq.xml +- name: scenes/dungeons/ganontikasonogo + xml_path: assets/xml/scenes/dungeons/ganontikasonogo.xml +- name: scenes/dungeons/gerudoway + xml_path: assets/xml/scenes/dungeons/gerudoway.xml +- name: scenes/dungeons/HAKAdan + xml_path: assets/xml/scenes/dungeons/HAKAdan_mq.xml +- name: scenes/dungeons/HAKAdan_bs + xml_path: assets/xml/scenes/dungeons/HAKAdan_bs.xml +- name: scenes/dungeons/HAKAdanCH + xml_path: assets/xml/scenes/dungeons/HAKAdanCH_mq.xml +- name: scenes/dungeons/HIDAN + xml_path: assets/xml/scenes/dungeons/HIDAN_mq.xml +- name: scenes/dungeons/ice_doukutu + xml_path: assets/xml/scenes/dungeons/ice_doukutu_mq.xml +- name: scenes/dungeons/jyasinboss + xml_path: assets/xml/scenes/dungeons/jyasinboss.xml +- name: scenes/dungeons/jyasinzou + xml_path: assets/xml/scenes/dungeons/jyasinzou_mq.xml +- name: scenes/dungeons/men + xml_path: assets/xml/scenes/dungeons/men_mq.xml +- name: scenes/dungeons/MIZUsin + xml_path: assets/xml/scenes/dungeons/MIZUsin_mq.xml +- name: scenes/dungeons/MIZUsin_bs + xml_path: assets/xml/scenes/dungeons/MIZUsin_bs.xml +- name: scenes/dungeons/moribossroom + xml_path: assets/xml/scenes/dungeons/moribossroom.xml +- name: scenes/dungeons/ydan + xml_path: assets/xml/scenes/dungeons/ydan_mq.xml +- name: scenes/dungeons/ydan_boss + xml_path: assets/xml/scenes/dungeons/ydan_boss.xml +- name: scenes/indoors/bowling + xml_path: assets/xml/scenes/indoors/bowling.xml +- name: scenes/indoors/daiyousei_izumi + xml_path: assets/xml/scenes/indoors/daiyousei_izumi.xml +- name: scenes/indoors/hairal_niwa + xml_path: assets/xml/scenes/indoors/hairal_niwa.xml +- name: scenes/indoors/hairal_niwa_n + xml_path: assets/xml/scenes/indoors/hairal_niwa_n.xml +- name: scenes/indoors/hakasitarelay + xml_path: assets/xml/scenes/indoors/hakasitarelay.xml +- name: scenes/indoors/hut + xml_path: assets/xml/scenes/indoors/hut.xml +- name: scenes/indoors/hylia_labo + xml_path: assets/xml/scenes/indoors/hylia_labo.xml +- name: scenes/indoors/impa + xml_path: assets/xml/scenes/indoors/impa.xml +- name: scenes/indoors/kakariko + xml_path: assets/xml/scenes/indoors/kakariko.xml +- name: scenes/indoors/kenjyanoma + xml_path: assets/xml/scenes/indoors/kenjyanoma.xml +- name: scenes/indoors/kokiri_home + xml_path: assets/xml/scenes/indoors/kokiri_home.xml +- name: scenes/indoors/kokiri_home3 + xml_path: assets/xml/scenes/indoors/kokiri_home3.xml +- name: scenes/indoors/kokiri_home4 + xml_path: assets/xml/scenes/indoors/kokiri_home4.xml +- name: scenes/indoors/kokiri_home5 + xml_path: assets/xml/scenes/indoors/kokiri_home5.xml +- name: scenes/indoors/labo + xml_path: assets/xml/scenes/indoors/labo.xml +- name: scenes/indoors/link_home + xml_path: assets/xml/scenes/indoors/link_home.xml +- name: scenes/indoors/mahouya + xml_path: assets/xml/scenes/indoors/mahouya.xml +- name: scenes/indoors/malon_stable + xml_path: assets/xml/scenes/indoors/malon_stable.xml +- name: scenes/indoors/miharigoya + xml_path: assets/xml/scenes/indoors/miharigoya.xml +- name: scenes/indoors/nakaniwa + xml_path: assets/xml/scenes/indoors/nakaniwa.xml +- name: scenes/indoors/souko + xml_path: assets/xml/scenes/indoors/souko.xml +- name: scenes/indoors/syatekijyou + xml_path: assets/xml/scenes/indoors/syatekijyou.xml +- name: scenes/indoors/takaraya + xml_path: assets/xml/scenes/indoors/takaraya.xml +- name: scenes/indoors/tent + xml_path: assets/xml/scenes/indoors/tent.xml +- name: scenes/indoors/tokinoma + xml_path: assets/xml/scenes/indoors/tokinoma.xml +- name: scenes/indoors/yousei_izumi_tate + xml_path: assets/xml/scenes/indoors/yousei_izumi_tate.xml +- name: scenes/indoors/yousei_izumi_yoko + xml_path: assets/xml/scenes/indoors/yousei_izumi_yoko.xml +- name: scenes/misc/enrui + xml_path: assets/xml/scenes/misc/enrui.xml +- name: scenes/misc/entra + xml_path: assets/xml/scenes/misc/entra.xml +- name: scenes/misc/entra_n + xml_path: assets/xml/scenes/misc/entra_n.xml +- name: scenes/misc/hakaana + xml_path: assets/xml/scenes/misc/hakaana.xml +- name: scenes/misc/hakaana2 + xml_path: assets/xml/scenes/misc/hakaana2.xml +- name: scenes/misc/hakaana_ouke + xml_path: assets/xml/scenes/misc/hakaana_ouke.xml +- name: scenes/misc/hiral_demo + xml_path: assets/xml/scenes/misc/hiral_demo.xml +- name: scenes/misc/kakariko3 + xml_path: assets/xml/scenes/misc/kakariko3.xml +- name: scenes/misc/kakusiana + xml_path: assets/xml/scenes/misc/kakusiana.xml +- name: scenes/misc/kinsuta + xml_path: assets/xml/scenes/misc/kinsuta.xml +- name: scenes/misc/market_alley + xml_path: assets/xml/scenes/misc/market_alley.xml +- name: scenes/misc/market_alley_n + xml_path: assets/xml/scenes/misc/market_alley_n.xml +- name: scenes/misc/market_day + xml_path: assets/xml/scenes/misc/market_day.xml +- name: scenes/misc/market_night + xml_path: assets/xml/scenes/misc/market_night.xml +- name: scenes/misc/market_ruins + xml_path: assets/xml/scenes/misc/market_ruins.xml +- name: scenes/misc/shrine + xml_path: assets/xml/scenes/misc/shrine.xml +- name: scenes/misc/shrine_n + xml_path: assets/xml/scenes/misc/shrine_n.xml +- name: scenes/misc/shrine_r + xml_path: assets/xml/scenes/misc/shrine_r.xml +- name: scenes/misc/turibori + xml_path: assets/xml/scenes/misc/turibori.xml +- name: scenes/overworld/ganon_tou + xml_path: assets/xml/scenes/overworld/ganon_tou.xml +- name: scenes/overworld/spot00 + xml_path: assets/xml/scenes/overworld/spot00.xml +- name: scenes/overworld/spot01 + xml_path: assets/xml/scenes/overworld/spot01.xml +- name: scenes/overworld/spot02 + xml_path: assets/xml/scenes/overworld/spot02.xml +- name: scenes/overworld/spot03 + xml_path: assets/xml/scenes/overworld/spot03.xml +- name: scenes/overworld/spot04 + xml_path: assets/xml/scenes/overworld/spot04.xml +- name: scenes/overworld/spot05 + xml_path: assets/xml/scenes/overworld/spot05.xml +- name: scenes/overworld/spot06 + xml_path: assets/xml/scenes/overworld/spot06.xml +- name: scenes/overworld/spot07 + xml_path: assets/xml/scenes/overworld/spot07.xml +- name: scenes/overworld/spot08 + xml_path: assets/xml/scenes/overworld/spot08.xml +- name: scenes/overworld/spot09 + xml_path: assets/xml/scenes/overworld/spot09.xml +- name: scenes/overworld/spot10 + xml_path: assets/xml/scenes/overworld/spot10.xml +- name: scenes/overworld/spot11 + xml_path: assets/xml/scenes/overworld/spot11.xml +- name: scenes/overworld/spot12 + xml_path: assets/xml/scenes/overworld/spot12.xml +- name: scenes/overworld/spot13 + xml_path: assets/xml/scenes/overworld/spot13.xml +- name: scenes/overworld/spot15 + xml_path: assets/xml/scenes/overworld/spot15.xml +- name: scenes/overworld/spot16 + xml_path: assets/xml/scenes/overworld/spot16.xml +- name: scenes/overworld/spot17 + xml_path: assets/xml/scenes/overworld/spot17.xml +- name: scenes/overworld/spot18 + xml_path: assets/xml/scenes/overworld/spot18.xml +- name: scenes/overworld/spot20 + xml_path: assets/xml/scenes/overworld/spot20.xml +- name: scenes/shops/alley_shop + xml_path: assets/xml/scenes/shops/alley_shop.xml +- name: scenes/shops/drag + xml_path: assets/xml/scenes/shops/drag.xml +- name: scenes/shops/face_shop + xml_path: assets/xml/scenes/shops/face_shop.xml +- name: scenes/shops/golon + xml_path: assets/xml/scenes/shops/golon.xml +- name: scenes/shops/kokiri_shop + xml_path: assets/xml/scenes/shops/kokiri_shop.xml +- name: scenes/shops/night_shop + xml_path: assets/xml/scenes/shops/night_shop.xml +- name: scenes/shops/shop1 + xml_path: assets/xml/scenes/shops/shop1.xml +- name: scenes/shops/zoora + xml_path: assets/xml/scenes/shops/zoora.xml +- name: textures/backgrounds + xml_path: assets/xml/textures/backgrounds.xml +- name: textures/do_action_static + xml_path: assets/xml/textures/do_action_static.xml +- name: textures/icon_item_24_static + xml_path: assets/xml/textures/icon_item_24_static.xml +- name: textures/icon_item_dungeon_static + xml_path: assets/xml/textures/icon_item_dungeon_static.xml +- name: textures/icon_item_field_static + xml_path: assets/xml/textures/icon_item_field_static.xml +- name: textures/icon_item_fra_static + xml_path: assets/xml/textures/icon_item_fra_static.xml +- name: textures/icon_item_gameover_static + xml_path: assets/xml/textures/icon_item_gameover_static.xml +- name: textures/icon_item_ger_static + xml_path: assets/xml/textures/icon_item_ger_static.xml +- name: textures/icon_item_nes_static + xml_path: assets/xml/textures/icon_item_nes_static.xml +- name: textures/icon_item_static + xml_path: assets/xml/textures/icon_item_static.xml +- name: textures/item_name_static + xml_path: assets/xml/textures/item_name_static.xml +- name: textures/map_48x85_static + xml_path: assets/xml/textures/map_48x85_static.xml +- name: textures/map_grand_static + xml_path: assets/xml/textures/map_grand_static.xml +- name: textures/map_i_static + xml_path: assets/xml/textures/map_i_static.xml +- name: textures/map_name_static + xml_path: assets/xml/textures/map_name_static.xml +- name: textures/message_static + xml_path: assets/xml/textures/message_static.xml +- name: textures/message_texture_static + xml_path: assets/xml/textures/message_texture_static.xml +- name: textures/nes_font_static + xml_path: assets/xml/textures/nes_font_static.xml +- name: textures/nintendo_rogo_static + xml_path: assets/xml/textures/nintendo_rogo_static.xml +- name: textures/parameter_static + xml_path: assets/xml/textures/parameter_static.xml +- name: textures/place_title_cards + xml_path: assets/xml/textures/place_title_cards.xml +- name: textures/skyboxes + xml_path: assets/xml/textures/skyboxes.xml +- name: textures/title_static + xml_path: assets/xml/textures/title_static.xml diff --git a/baseroms/gc-eu/config.yml b/baseroms/gc-eu/config.yml index 795a423ad..219632a22 100644 --- a/baseroms/gc-eu/config.yml +++ b/baseroms/gc-eu/config.yml @@ -5,3 +5,1163 @@ variables: sGerMessageEntryTable: 0x8010BA38 sFraMessageEntryTable: 0x8010DB48 sStaffMessageEntryTable: 0x8010FC58 + sShadowTex: 0x80A73020 +assets: +- name: code/fbdemo_circle + xml_path: assets/xml/code/fbdemo_circle.xml + start_offset: 0xE90C8 + end_offset: 0xEA2E8 +- name: code/fbdemo_triforce + xml_path: assets/xml/code/fbdemo_triforce.xml + start_offset: 0xE8550 + end_offset: 0xE8620 +- name: code/fbdemo_wipe1 + xml_path: assets/xml/code/fbdemo_wipe1.xml + start_offset: 0xE8620 + end_offset: 0xE8FB0 +- name: misc/link_animetion + xml_path: assets/xml/misc/link_animetion.xml +- name: misc/z_select_static + xml_path: assets/xml/misc/z_select_static.xml +- name: objects/gameplay_dangeon_keep + xml_path: assets/xml/objects/gameplay_dangeon_keep.xml +- name: objects/gameplay_field_keep + xml_path: assets/xml/objects/gameplay_field_keep.xml +- name: objects/gameplay_keep + xml_path: assets/xml/objects/gameplay_keep.xml +- name: objects/object_ahg + xml_path: assets/xml/objects/object_ahg.xml +- name: objects/object_am + xml_path: assets/xml/objects/object_am.xml +- name: objects/object_ane + xml_path: assets/xml/objects/object_ane.xml +- name: objects/object_ani + xml_path: assets/xml/objects/object_ani.xml +- name: objects/object_anubice + xml_path: assets/xml/objects/object_anubice.xml +- name: objects/object_aob + xml_path: assets/xml/objects/object_aob.xml +- name: objects/object_b_heart + xml_path: assets/xml/objects/object_b_heart.xml +- name: objects/object_Bb + xml_path: assets/xml/objects/object_Bb.xml +- name: objects/object_bba + xml_path: assets/xml/objects/object_bba.xml +- name: objects/object_bdan_objects + xml_path: assets/xml/objects/object_bdan_objects.xml +- name: objects/object_bdoor + xml_path: assets/xml/objects/object_bdoor.xml +- name: objects/object_bg + xml_path: assets/xml/objects/object_bg.xml +- name: objects/object_bigokuta + xml_path: assets/xml/objects/object_bigokuta.xml +- name: objects/object_bird + xml_path: assets/xml/objects/object_bird.xml +- name: objects/object_bji + xml_path: assets/xml/objects/object_bji.xml +- name: objects/object_bl + xml_path: assets/xml/objects/object_bl.xml +- name: objects/object_blkobj + xml_path: assets/xml/objects/object_blkobj.xml +- name: objects/object_bob + xml_path: assets/xml/objects/object_bob.xml +- name: objects/object_boj + xml_path: assets/xml/objects/object_boj.xml +- name: objects/object_bombf + xml_path: assets/xml/objects/object_bombf.xml +- name: objects/object_bombiwa + xml_path: assets/xml/objects/object_bombiwa.xml +- name: objects/object_bowl + xml_path: assets/xml/objects/object_bowl.xml +- name: objects/object_box + xml_path: assets/xml/objects/object_box.xml +- name: objects/object_brob + xml_path: assets/xml/objects/object_brob.xml +- name: objects/object_bubble + xml_path: assets/xml/objects/object_bubble.xml +- name: objects/object_bv + xml_path: assets/xml/objects/object_bv.xml +- name: objects/object_bw + xml_path: assets/xml/objects/object_bw.xml +- name: objects/object_bwall + xml_path: assets/xml/objects/object_bwall.xml +- name: objects/object_bxa + xml_path: assets/xml/objects/object_bxa.xml +- name: objects/object_cne + xml_path: assets/xml/objects/object_cne.xml +- name: objects/object_cob + xml_path: assets/xml/objects/object_cob.xml +- name: objects/object_cow + xml_path: assets/xml/objects/object_cow.xml +- name: objects/object_crow + xml_path: assets/xml/objects/object_crow.xml +- name: objects/object_cs + xml_path: assets/xml/objects/object_cs.xml +- name: objects/object_d_elevator + xml_path: assets/xml/objects/object_d_elevator.xml +- name: objects/object_d_hsblock + xml_path: assets/xml/objects/object_d_hsblock.xml +- name: objects/object_d_lift + xml_path: assets/xml/objects/object_d_lift.xml +- name: objects/object_daiku + xml_path: assets/xml/objects/object_daiku.xml +- name: objects/object_ddan_objects + xml_path: assets/xml/objects/object_ddan_objects.xml +- name: objects/object_dekubaba + xml_path: assets/xml/objects/object_dekubaba.xml +- name: objects/object_dekujr + xml_path: assets/xml/objects/object_dekujr.xml +- name: objects/object_dekunuts + xml_path: assets/xml/objects/object_dekunuts.xml +- name: objects/object_demo_6k + xml_path: assets/xml/objects/object_demo_6k.xml +- name: objects/object_demo_kekkai + xml_path: assets/xml/objects/object_demo_kekkai.xml +- name: objects/object_demo_tre_lgt + xml_path: assets/xml/objects/object_demo_tre_lgt.xml +- name: objects/object_dh + xml_path: assets/xml/objects/object_dh.xml +- name: objects/object_dnk + xml_path: assets/xml/objects/object_dnk.xml +- name: objects/object_dns + xml_path: assets/xml/objects/object_dns.xml +- name: objects/object_dodojr + xml_path: assets/xml/objects/object_dodojr.xml +- name: objects/object_dodongo + xml_path: assets/xml/objects/object_dodongo.xml +- name: objects/object_dog + xml_path: assets/xml/objects/object_dog.xml +- name: objects/object_door_gerudo + xml_path: assets/xml/objects/object_door_gerudo.xml +- name: objects/object_door_killer + xml_path: assets/xml/objects/object_door_killer.xml +- name: objects/object_ds + xml_path: assets/xml/objects/object_ds.xml +- name: objects/object_ds2 + xml_path: assets/xml/objects/object_ds2.xml +- name: objects/object_du + xml_path: assets/xml/objects/object_du.xml +- name: objects/object_dy_obj + xml_path: assets/xml/objects/object_dy_obj.xml +- name: objects/object_ec + xml_path: assets/xml/objects/object_ec.xml +- name: objects/object_efc_crystal_light + xml_path: assets/xml/objects/object_efc_crystal_light.xml +- name: objects/object_efc_doughnut + xml_path: assets/xml/objects/object_efc_doughnut.xml +- name: objects/object_efc_erupc + xml_path: assets/xml/objects/object_efc_erupc.xml +- name: objects/object_efc_fire_ball + xml_path: assets/xml/objects/object_efc_fire_ball.xml +- name: objects/object_efc_flash + xml_path: assets/xml/objects/object_efc_flash.xml +- name: objects/object_efc_lgt_shower + xml_path: assets/xml/objects/object_efc_lgt_shower.xml +- name: objects/object_efc_star_field + xml_path: assets/xml/objects/object_efc_star_field.xml +- name: objects/object_efc_tw + xml_path: assets/xml/objects/object_efc_tw.xml +- name: objects/object_ei + xml_path: assets/xml/objects/object_ei.xml +- name: objects/object_fa + xml_path: assets/xml/objects/object_fa.xml +- name: objects/object_fd + xml_path: assets/xml/objects/object_fd.xml +- name: objects/object_fd2 + xml_path: assets/xml/objects/object_fd2.xml +- name: objects/object_fhg + xml_path: assets/xml/objects/object_fhg.xml +- name: objects/object_fire + xml_path: assets/xml/objects/object_fire.xml +- name: objects/object_firefly + xml_path: assets/xml/objects/object_firefly.xml +- name: objects/object_fish + xml_path: assets/xml/objects/object_fish.xml +- name: objects/object_fr + xml_path: assets/xml/objects/object_fr.xml +- name: objects/object_fu + xml_path: assets/xml/objects/object_fu.xml +- name: objects/object_fw + xml_path: assets/xml/objects/object_fw.xml +- name: objects/object_fz + xml_path: assets/xml/objects/object_fz.xml +- name: objects/object_ganon + xml_path: assets/xml/objects/object_ganon.xml +- name: objects/object_ganon2 + xml_path: assets/xml/objects/object_ganon2.xml +- name: objects/object_ganon_anime1 + xml_path: assets/xml/objects/object_ganon_anime1.xml +- name: objects/object_ganon_anime2 + xml_path: assets/xml/objects/object_ganon_anime2.xml +- name: objects/object_ganon_anime3 + xml_path: assets/xml/objects/object_ganon_anime3.xml +- name: objects/object_ganon_objects + xml_path: assets/xml/objects/object_ganon_objects.xml +- name: objects/object_ge1 + xml_path: assets/xml/objects/object_ge1.xml +- name: objects/object_geff + xml_path: assets/xml/objects/object_geff.xml +- name: objects/object_geldb + xml_path: assets/xml/objects/object_geldb.xml +- name: objects/object_gi_arrow + xml_path: assets/xml/objects/object_gi_arrow.xml +- name: objects/object_gi_arrowcase + xml_path: assets/xml/objects/object_gi_arrowcase.xml +- name: objects/object_gi_bean + xml_path: assets/xml/objects/object_gi_bean.xml +- name: objects/object_gi_bomb_1 + xml_path: assets/xml/objects/object_gi_bomb_1.xml +- name: objects/object_gi_bomb_2 + xml_path: assets/xml/objects/object_gi_bomb_2.xml +- name: objects/object_gi_bombpouch + xml_path: assets/xml/objects/object_gi_bombpouch.xml +- name: objects/object_gi_boomerang + xml_path: assets/xml/objects/object_gi_boomerang.xml +- name: objects/object_gi_boots_2 + xml_path: assets/xml/objects/object_gi_boots_2.xml +- name: objects/object_gi_bosskey + xml_path: assets/xml/objects/object_gi_bosskey.xml +- name: objects/object_gi_bottle + xml_path: assets/xml/objects/object_gi_bottle.xml +- name: objects/object_gi_bottle_letter + xml_path: assets/xml/objects/object_gi_bottle_letter.xml +- name: objects/object_gi_bow + xml_path: assets/xml/objects/object_gi_bow.xml +- name: objects/object_gi_bracelet + xml_path: assets/xml/objects/object_gi_bracelet.xml +- name: objects/object_gi_brokensword + xml_path: assets/xml/objects/object_gi_brokensword.xml +- name: objects/object_gi_butterfly + xml_path: assets/xml/objects/object_gi_butterfly.xml +- name: objects/object_gi_clothes + xml_path: assets/xml/objects/object_gi_clothes.xml +- name: objects/object_gi_coin + xml_path: assets/xml/objects/object_gi_coin.xml +- name: objects/object_gi_compass + xml_path: assets/xml/objects/object_gi_compass.xml +- name: objects/object_gi_dekupouch + xml_path: assets/xml/objects/object_gi_dekupouch.xml +- name: objects/object_gi_egg + xml_path: assets/xml/objects/object_gi_egg.xml +- name: objects/object_gi_eye_lotion + xml_path: assets/xml/objects/object_gi_eye_lotion.xml +- name: objects/object_gi_fire + xml_path: assets/xml/objects/object_gi_fire.xml +- name: objects/object_gi_fish + xml_path: assets/xml/objects/object_gi_fish.xml +- name: objects/object_gi_frog + xml_path: assets/xml/objects/object_gi_frog.xml +- name: objects/object_gi_gerudo + xml_path: assets/xml/objects/object_gi_gerudo.xml +- name: objects/object_gi_gerudomask + xml_path: assets/xml/objects/object_gi_gerudomask.xml +- name: objects/object_gi_ghost + xml_path: assets/xml/objects/object_gi_ghost.xml +- name: objects/object_gi_glasses + xml_path: assets/xml/objects/object_gi_glasses.xml +- name: objects/object_gi_gloves + xml_path: assets/xml/objects/object_gi_gloves.xml +- name: objects/object_gi_goddess + xml_path: assets/xml/objects/object_gi_goddess.xml +- name: objects/object_gi_golonmask + xml_path: assets/xml/objects/object_gi_golonmask.xml +- name: objects/object_gi_grass + xml_path: assets/xml/objects/object_gi_grass.xml +- name: objects/object_gi_hammer + xml_path: assets/xml/objects/object_gi_hammer.xml +- name: objects/object_gi_heart + xml_path: assets/xml/objects/object_gi_heart.xml +- name: objects/object_gi_hearts + xml_path: assets/xml/objects/object_gi_hearts.xml +- name: objects/object_gi_hookshot + xml_path: assets/xml/objects/object_gi_hookshot.xml +- name: objects/object_gi_hoverboots + xml_path: assets/xml/objects/object_gi_hoverboots.xml +- name: objects/object_gi_insect + xml_path: assets/xml/objects/object_gi_insect.xml +- name: objects/object_gi_jewel + xml_path: assets/xml/objects/object_gi_jewel.xml +- name: objects/object_gi_key + xml_path: assets/xml/objects/object_gi_key.xml +- name: objects/object_gi_ki_tan_mask + xml_path: assets/xml/objects/object_gi_ki_tan_mask.xml +- name: objects/object_gi_letter + xml_path: assets/xml/objects/object_gi_letter.xml +- name: objects/object_gi_liquid + xml_path: assets/xml/objects/object_gi_liquid.xml +- name: objects/object_gi_longsword + xml_path: assets/xml/objects/object_gi_longsword.xml +- name: objects/object_gi_m_arrow + xml_path: assets/xml/objects/object_gi_m_arrow.xml +- name: objects/object_gi_magicpot + xml_path: assets/xml/objects/object_gi_magicpot.xml +- name: objects/object_gi_map + xml_path: assets/xml/objects/object_gi_map.xml +- name: objects/object_gi_medal + xml_path: assets/xml/objects/object_gi_medal.xml +- name: objects/object_gi_melody + xml_path: assets/xml/objects/object_gi_melody.xml +- name: objects/object_gi_milk + xml_path: assets/xml/objects/object_gi_milk.xml +- name: objects/object_gi_mushroom + xml_path: assets/xml/objects/object_gi_mushroom.xml +- name: objects/object_gi_niwatori + xml_path: assets/xml/objects/object_gi_niwatori.xml +- name: objects/object_gi_nuts + xml_path: assets/xml/objects/object_gi_nuts.xml +- name: objects/object_gi_ocarina + xml_path: assets/xml/objects/object_gi_ocarina.xml +- name: objects/object_gi_ocarina_0 + xml_path: assets/xml/objects/object_gi_ocarina_0.xml +- name: objects/object_gi_pachinko + xml_path: assets/xml/objects/object_gi_pachinko.xml +- name: objects/object_gi_powder + xml_path: assets/xml/objects/object_gi_powder.xml +- name: objects/object_gi_prescription + xml_path: assets/xml/objects/object_gi_prescription.xml +- name: objects/object_gi_purse + xml_path: assets/xml/objects/object_gi_purse.xml +- name: objects/object_gi_rabit_mask + xml_path: assets/xml/objects/object_gi_rabit_mask.xml +- name: objects/object_gi_redead_mask + xml_path: assets/xml/objects/object_gi_redead_mask.xml +- name: objects/object_gi_rupy + xml_path: assets/xml/objects/object_gi_rupy.xml +- name: objects/object_gi_saw + xml_path: assets/xml/objects/object_gi_saw.xml +- name: objects/object_gi_scale + xml_path: assets/xml/objects/object_gi_scale.xml +- name: objects/object_gi_seed + xml_path: assets/xml/objects/object_gi_seed.xml +- name: objects/object_gi_shield_1 + xml_path: assets/xml/objects/object_gi_shield_1.xml +- name: objects/object_gi_shield_2 + xml_path: assets/xml/objects/object_gi_shield_2.xml +- name: objects/object_gi_shield_3 + xml_path: assets/xml/objects/object_gi_shield_3.xml +- name: objects/object_gi_skj_mask + xml_path: assets/xml/objects/object_gi_skj_mask.xml +- name: objects/object_gi_soldout + xml_path: assets/xml/objects/object_gi_soldout.xml +- name: objects/object_gi_soul + xml_path: assets/xml/objects/object_gi_soul.xml +- name: objects/object_gi_stick + xml_path: assets/xml/objects/object_gi_stick.xml +- name: objects/object_gi_sutaru + xml_path: assets/xml/objects/object_gi_sutaru.xml +- name: objects/object_gi_sword_1 + xml_path: assets/xml/objects/object_gi_sword_1.xml +- name: objects/object_gi_ticketstone + xml_path: assets/xml/objects/object_gi_ticketstone.xml +- name: objects/object_gi_truth_mask + xml_path: assets/xml/objects/object_gi_truth_mask.xml +- name: objects/object_gi_zoramask + xml_path: assets/xml/objects/object_gi_zoramask.xml +- name: objects/object_gj + xml_path: assets/xml/objects/object_gj.xml +- name: objects/object_gjyo_objects + xml_path: assets/xml/objects/object_gjyo_objects.xml +- name: objects/object_gla + xml_path: assets/xml/objects/object_gla.xml +- name: objects/object_gm + xml_path: assets/xml/objects/object_gm.xml +- name: objects/object_gnd + xml_path: assets/xml/objects/object_gnd.xml +- name: objects/object_gnd_magic + xml_path: assets/xml/objects/object_gnd_magic.xml +- name: objects/object_gndd + xml_path: assets/xml/objects/object_gndd.xml +- name: objects/object_god_lgt + xml_path: assets/xml/objects/object_god_lgt.xml +- name: objects/object_gol + xml_path: assets/xml/objects/object_gol.xml +- name: objects/object_goma + xml_path: assets/xml/objects/object_goma.xml +- name: objects/object_goroiwa + xml_path: assets/xml/objects/object_goroiwa.xml +- name: objects/object_gr + xml_path: assets/xml/objects/object_gr.xml +- name: objects/object_gs + xml_path: assets/xml/objects/object_gs.xml +- name: objects/object_gt + xml_path: assets/xml/objects/object_gt.xml +- name: objects/object_haka + xml_path: assets/xml/objects/object_haka.xml +- name: objects/object_haka_door + xml_path: assets/xml/objects/object_haka_door.xml +- name: objects/object_haka_objects + xml_path: assets/xml/objects/object_haka_objects.xml +- name: objects/object_hakach_objects + xml_path: assets/xml/objects/object_hakach_objects.xml +- name: objects/object_hata + xml_path: assets/xml/objects/object_hata.xml +- name: objects/object_heavy_object + xml_path: assets/xml/objects/object_heavy_object.xml +- name: objects/object_hidan_objects + xml_path: assets/xml/objects/object_hidan_objects.xml +- name: objects/object_hintnuts + xml_path: assets/xml/objects/object_hintnuts.xml +- name: objects/object_hni + xml_path: assets/xml/objects/object_hni.xml +- name: objects/object_horse + xml_path: assets/xml/objects/object_horse.xml +- name: objects/object_horse_ganon + xml_path: assets/xml/objects/object_horse_ganon.xml +- name: objects/object_horse_link_child + xml_path: assets/xml/objects/object_horse_link_child.xml +- name: objects/object_horse_normal + xml_path: assets/xml/objects/object_horse_normal.xml +- name: objects/object_horse_zelda + xml_path: assets/xml/objects/object_horse_zelda.xml +- name: objects/object_hs + xml_path: assets/xml/objects/object_hs.xml +- name: objects/object_human + xml_path: assets/xml/objects/object_human.xml +- name: objects/object_ice_objects + xml_path: assets/xml/objects/object_ice_objects.xml +- name: objects/object_ik + xml_path: assets/xml/objects/object_ik.xml +- name: objects/object_im + xml_path: assets/xml/objects/object_im.xml +- name: objects/object_in + xml_path: assets/xml/objects/object_in.xml +- name: objects/object_ingate + xml_path: assets/xml/objects/object_ingate.xml +- name: objects/object_jj + xml_path: assets/xml/objects/object_jj.xml +- name: objects/object_js + xml_path: assets/xml/objects/object_js.xml +- name: objects/object_jya_door + xml_path: assets/xml/objects/object_jya_door.xml +- name: objects/object_jya_iron + xml_path: assets/xml/objects/object_jya_iron.xml +- name: objects/object_jya_obj + xml_path: assets/xml/objects/object_jya_obj.xml +- name: objects/object_ka + xml_path: assets/xml/objects/object_ka.xml +- name: objects/object_kanban + xml_path: assets/xml/objects/object_kanban.xml +- name: objects/object_kibako2 + xml_path: assets/xml/objects/object_kibako2.xml +- name: objects/object_kingdodongo + xml_path: assets/xml/objects/object_kingdodongo.xml +- name: objects/object_km1 + xml_path: assets/xml/objects/object_km1.xml +- name: objects/object_kusa + xml_path: assets/xml/objects/object_kusa.xml +- name: objects/object_kw1 + xml_path: assets/xml/objects/object_kw1.xml +- name: objects/object_kz + xml_path: assets/xml/objects/object_kz.xml +- name: objects/object_light_ring + xml_path: assets/xml/objects/object_light_ring.xml +- name: objects/object_lightbox + xml_path: assets/xml/objects/object_lightbox.xml +- name: objects/object_lightswitch + xml_path: assets/xml/objects/object_lightswitch.xml +- name: objects/object_link_boy + xml_path: assets/xml/objects/object_link_boy.xml +- name: objects/object_link_child + xml_path: assets/xml/objects/object_link_child.xml +- name: objects/object_ma1 + xml_path: assets/xml/objects/object_ma1.xml +- name: objects/object_ma2 + xml_path: assets/xml/objects/object_ma2.xml +- name: objects/object_mag + xml_path: assets/xml/objects/object_mag.xml +- name: objects/object_mamenoki + xml_path: assets/xml/objects/object_mamenoki.xml +- name: objects/object_mastergolon + xml_path: assets/xml/objects/object_mastergolon.xml +- name: objects/object_masterkokiri + xml_path: assets/xml/objects/object_masterkokiri.xml +- name: objects/object_masterkokirihead + xml_path: assets/xml/objects/object_masterkokirihead.xml +- name: objects/object_masterzoora + xml_path: assets/xml/objects/object_masterzoora.xml +- name: objects/object_mb + xml_path: assets/xml/objects/object_mb.xml +- name: objects/object_md + xml_path: assets/xml/objects/object_md.xml +- name: objects/object_medal + xml_path: assets/xml/objects/object_medal.xml +- name: objects/object_menkuri_objects + xml_path: assets/xml/objects/object_menkuri_objects.xml +- name: objects/object_mir_ray + xml_path: assets/xml/objects/object_mir_ray.xml +- name: objects/object_mizu_objects + xml_path: assets/xml/objects/object_mizu_objects.xml +- name: objects/object_mjin + xml_path: assets/xml/objects/object_mjin.xml +- name: objects/object_mjin_dark + xml_path: assets/xml/objects/object_mjin_dark.xml +- name: objects/object_mjin_flame + xml_path: assets/xml/objects/object_mjin_flame.xml +- name: objects/object_mjin_flash + xml_path: assets/xml/objects/object_mjin_flash.xml +- name: objects/object_mjin_ice + xml_path: assets/xml/objects/object_mjin_ice.xml +- name: objects/object_mjin_oka + xml_path: assets/xml/objects/object_mjin_oka.xml +- name: objects/object_mjin_soul + xml_path: assets/xml/objects/object_mjin_soul.xml +- name: objects/object_mjin_wind + xml_path: assets/xml/objects/object_mjin_wind.xml +- name: objects/object_mk + xml_path: assets/xml/objects/object_mk.xml +- name: objects/object_mm + xml_path: assets/xml/objects/object_mm.xml +- name: objects/object_mo + xml_path: assets/xml/objects/object_mo.xml +- name: objects/object_mori_hineri1 + xml_path: assets/xml/objects/object_mori_hineri1.xml +- name: objects/object_mori_hineri1a + xml_path: assets/xml/objects/object_mori_hineri1a.xml +- name: objects/object_mori_hineri2 + xml_path: assets/xml/objects/object_mori_hineri2.xml +- name: objects/object_mori_hineri2a + xml_path: assets/xml/objects/object_mori_hineri2a.xml +- name: objects/object_mori_objects + xml_path: assets/xml/objects/object_mori_objects.xml +- name: objects/object_mori_tex + xml_path: assets/xml/objects/object_mori_tex.xml +- name: objects/object_ms + xml_path: assets/xml/objects/object_ms.xml +- name: objects/object_mu + xml_path: assets/xml/objects/object_mu.xml +- name: objects/object_nb + xml_path: assets/xml/objects/object_nb.xml +- name: objects/object_niw + xml_path: assets/xml/objects/object_niw.xml +- name: objects/object_nwc + xml_path: assets/xml/objects/object_nwc.xml +- name: objects/object_ny + xml_path: assets/xml/objects/object_ny.xml +- name: objects/object_o_anime + xml_path: assets/xml/objects/object_o_anime.xml +- name: objects/object_oA1 + xml_path: assets/xml/objects/object_oA1.xml +- name: objects/object_oA2 + xml_path: assets/xml/objects/object_oA2.xml +- name: objects/object_oA3 + xml_path: assets/xml/objects/object_oA3.xml +- name: objects/object_oA4 + xml_path: assets/xml/objects/object_oA4.xml +- name: objects/object_oA5 + xml_path: assets/xml/objects/object_oA5.xml +- name: objects/object_oA6 + xml_path: assets/xml/objects/object_oA6.xml +- name: objects/object_oA7 + xml_path: assets/xml/objects/object_oA7.xml +- name: objects/object_oA8 + xml_path: assets/xml/objects/object_oA8.xml +- name: objects/object_oA9 + xml_path: assets/xml/objects/object_oA9.xml +- name: objects/object_oA10 + xml_path: assets/xml/objects/object_oA10.xml +- name: objects/object_oA11 + xml_path: assets/xml/objects/object_oA11.xml +- name: objects/object_oB1 + xml_path: assets/xml/objects/object_oB1.xml +- name: objects/object_oB2 + xml_path: assets/xml/objects/object_oB2.xml +- name: objects/object_oB3 + xml_path: assets/xml/objects/object_oB3.xml +- name: objects/object_oB4 + xml_path: assets/xml/objects/object_oB4.xml +- name: objects/object_oE1 + xml_path: assets/xml/objects/object_oE1.xml +- name: objects/object_oE1s + xml_path: assets/xml/objects/object_oE1s.xml +- name: objects/object_oE2 + xml_path: assets/xml/objects/object_oE2.xml +- name: objects/object_oE3 + xml_path: assets/xml/objects/object_oE3.xml +- name: objects/object_oE4 + xml_path: assets/xml/objects/object_oE4.xml +- name: objects/object_oE4s + xml_path: assets/xml/objects/object_oE4s.xml +- name: objects/object_oE5 + xml_path: assets/xml/objects/object_oE5.xml +- name: objects/object_oE6 + xml_path: assets/xml/objects/object_oE6.xml +- name: objects/object_oE7 + xml_path: assets/xml/objects/object_oE7.xml +- name: objects/object_oE8 + xml_path: assets/xml/objects/object_oE8.xml +- name: objects/object_oE9 + xml_path: assets/xml/objects/object_oE9.xml +- name: objects/object_oE10 + xml_path: assets/xml/objects/object_oE10.xml +- name: objects/object_oE11 + xml_path: assets/xml/objects/object_oE11.xml +- name: objects/object_oE12 + xml_path: assets/xml/objects/object_oE12.xml +- name: objects/object_oE_anime + xml_path: assets/xml/objects/object_oE_anime.xml +- name: objects/object_oF1d_map + xml_path: assets/xml/objects/object_oF1d_map.xml +- name: objects/object_oF1s + xml_path: assets/xml/objects/object_oF1s.xml +- name: objects/object_okuta + xml_path: assets/xml/objects/object_okuta.xml +- name: objects/object_opening_demo1 + xml_path: assets/xml/objects/object_opening_demo1.xml +- name: objects/object_os + xml_path: assets/xml/objects/object_os.xml +- name: objects/object_os_anime + xml_path: assets/xml/objects/object_os_anime.xml +- name: objects/object_ossan + xml_path: assets/xml/objects/object_ossan.xml +- name: objects/object_ouke_haka + xml_path: assets/xml/objects/object_ouke_haka.xml +- name: objects/object_owl + xml_path: assets/xml/objects/object_owl.xml +- name: objects/object_peehat + xml_path: assets/xml/objects/object_peehat.xml +- name: objects/object_po_composer + xml_path: assets/xml/objects/object_po_composer.xml +- name: objects/object_po_field + xml_path: assets/xml/objects/object_po_field.xml +- name: objects/object_po_sisters + xml_path: assets/xml/objects/object_po_sisters.xml +- name: objects/object_poh + xml_path: assets/xml/objects/object_poh.xml +- name: objects/object_ps + xml_path: assets/xml/objects/object_ps.xml +- name: objects/object_pu_box + xml_path: assets/xml/objects/object_pu_box.xml +- name: objects/object_rd + xml_path: assets/xml/objects/object_rd.xml +- name: objects/object_reeba + xml_path: assets/xml/objects/object_reeba.xml +- name: objects/object_relay_objects + xml_path: assets/xml/objects/object_relay_objects.xml +- name: objects/object_rl + xml_path: assets/xml/objects/object_rl.xml +- name: objects/object_rr + xml_path: assets/xml/objects/object_rr.xml +- name: objects/object_rs + xml_path: assets/xml/objects/object_rs.xml +- name: objects/object_ru1 + xml_path: assets/xml/objects/object_ru1.xml +- name: objects/object_ru2 + xml_path: assets/xml/objects/object_ru2.xml +- name: objects/object_sa + xml_path: assets/xml/objects/object_sa.xml +- name: objects/object_sb + xml_path: assets/xml/objects/object_sb.xml +- name: objects/object_sd + xml_path: assets/xml/objects/object_sd.xml +- name: objects/object_shop_dungen + xml_path: assets/xml/objects/object_shop_dungen.xml +- name: objects/object_shopnuts + xml_path: assets/xml/objects/object_shopnuts.xml +- name: objects/object_siofuki + xml_path: assets/xml/objects/object_siofuki.xml +- name: objects/object_sk2 + xml_path: assets/xml/objects/object_sk2.xml +- name: objects/object_skb + xml_path: assets/xml/objects/object_skb.xml +- name: objects/object_skj + xml_path: assets/xml/objects/object_skj.xml +- name: objects/object_spot00_break + xml_path: assets/xml/objects/object_spot00_break.xml +- name: objects/object_spot00_objects + xml_path: assets/xml/objects/object_spot00_objects.xml +- name: objects/object_spot01_matoya + xml_path: assets/xml/objects/object_spot01_matoya.xml +- name: objects/object_spot01_matoyab + xml_path: assets/xml/objects/object_spot01_matoyab.xml +- name: objects/object_spot01_objects + xml_path: assets/xml/objects/object_spot01_objects.xml +- name: objects/object_spot01_objects2 + xml_path: assets/xml/objects/object_spot01_objects2.xml +- name: objects/object_spot02_objects + xml_path: assets/xml/objects/object_spot02_objects.xml +- name: objects/object_spot03_object + xml_path: assets/xml/objects/object_spot03_object.xml +- name: objects/object_spot04_objects + xml_path: assets/xml/objects/object_spot04_objects.xml +- name: objects/object_spot05_objects + xml_path: assets/xml/objects/object_spot05_objects.xml +- name: objects/object_spot06_objects + xml_path: assets/xml/objects/object_spot06_objects.xml +- name: objects/object_spot07_object + xml_path: assets/xml/objects/object_spot07_object.xml +- name: objects/object_spot08_obj + xml_path: assets/xml/objects/object_spot08_obj.xml +- name: objects/object_spot09_obj + xml_path: assets/xml/objects/object_spot09_obj.xml +- name: objects/object_spot11_obj + xml_path: assets/xml/objects/object_spot11_obj.xml +- name: objects/object_spot12_obj + xml_path: assets/xml/objects/object_spot12_obj.xml +- name: objects/object_spot15_obj + xml_path: assets/xml/objects/object_spot15_obj.xml +- name: objects/object_spot16_obj + xml_path: assets/xml/objects/object_spot16_obj.xml +- name: objects/object_spot17_obj + xml_path: assets/xml/objects/object_spot17_obj.xml +- name: objects/object_spot18_obj + xml_path: assets/xml/objects/object_spot18_obj.xml +- name: objects/object_ssh + xml_path: assets/xml/objects/object_ssh.xml +- name: objects/object_sst + xml_path: assets/xml/objects/object_sst.xml +- name: objects/object_st + xml_path: assets/xml/objects/object_st.xml +- name: objects/object_stream + xml_path: assets/xml/objects/object_stream.xml +- name: objects/object_syokudai + xml_path: assets/xml/objects/object_syokudai.xml +- name: objects/object_ta + xml_path: assets/xml/objects/object_ta.xml +- name: objects/object_timeblock + xml_path: assets/xml/objects/object_timeblock.xml +- name: objects/object_tite + xml_path: assets/xml/objects/object_tite.xml +- name: objects/object_tk + xml_path: assets/xml/objects/object_tk.xml +- name: objects/object_toki_objects + xml_path: assets/xml/objects/object_toki_objects.xml +- name: objects/object_torch2 + xml_path: assets/xml/objects/object_torch2.xml +- name: objects/object_toryo + xml_path: assets/xml/objects/object_toryo.xml +- name: objects/object_tp + xml_path: assets/xml/objects/object_tp.xml +- name: objects/object_tr + xml_path: assets/xml/objects/object_tr.xml +- name: objects/object_trap + xml_path: assets/xml/objects/object_trap.xml +- name: objects/object_triforce_spot + xml_path: assets/xml/objects/object_triforce_spot.xml +- name: objects/object_ts + xml_path: assets/xml/objects/object_ts.xml +- name: objects/object_tsubo + xml_path: assets/xml/objects/object_tsubo.xml +- name: objects/object_tw + xml_path: assets/xml/objects/object_tw.xml +- name: objects/object_umajump + xml_path: assets/xml/objects/object_umajump.xml +- name: objects/object_vali + xml_path: assets/xml/objects/object_vali.xml +- name: objects/object_vase + xml_path: assets/xml/objects/object_vase.xml +- name: objects/object_vm + xml_path: assets/xml/objects/object_vm.xml +- name: objects/object_wallmaster + xml_path: assets/xml/objects/object_wallmaster.xml +- name: objects/object_warp1 + xml_path: assets/xml/objects/object_warp1.xml +- name: objects/object_warp2 + xml_path: assets/xml/objects/object_warp2.xml +- name: objects/object_wf + xml_path: assets/xml/objects/object_wf.xml +- name: objects/object_wood02 + xml_path: assets/xml/objects/object_wood02.xml +- name: objects/object_xc + xml_path: assets/xml/objects/object_xc.xml +- name: objects/object_yabusame_point + xml_path: assets/xml/objects/object_yabusame_point.xml +- name: objects/object_ydan_objects + xml_path: assets/xml/objects/object_ydan_objects.xml +- name: objects/object_yukabyun + xml_path: assets/xml/objects/object_yukabyun.xml +- name: objects/object_zf + xml_path: assets/xml/objects/object_zf.xml +- name: objects/object_zg + xml_path: assets/xml/objects/object_zg.xml +- name: objects/object_zl1 + xml_path: assets/xml/objects/object_zl1.xml +- name: objects/object_zl2 + xml_path: assets/xml/objects/object_zl2.xml +- name: objects/object_zl2_anime1 + xml_path: assets/xml/objects/object_zl2_anime1.xml +- name: objects/object_zl2_anime2 + xml_path: assets/xml/objects/object_zl2_anime2.xml +- name: objects/object_zl4 + xml_path: assets/xml/objects/object_zl4.xml +- name: objects/object_zo + xml_path: assets/xml/objects/object_zo.xml +- name: overlays/ovl_Arrow_Fire + xml_path: assets/xml/overlays/ovl_Arrow_Fire.xml + start_offset: 0x980 + end_offset: 0x1DA0 +- name: overlays/ovl_Arrow_Ice + xml_path: assets/xml/overlays/ovl_Arrow_Ice.xml + start_offset: 0x9A0 + end_offset: 0x1DC0 +- name: overlays/ovl_Arrow_Light + xml_path: assets/xml/overlays/ovl_Arrow_Light.xml + start_offset: 0x9B0 + end_offset: 0x1DD0 +- name: overlays/ovl_Bg_Ganon_Otyuka + xml_path: assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml + start_offset: 0x1100 + end_offset: 0x24DC +- name: overlays/ovl_Bg_Jya_Cobra + xml_path: assets/xml/overlays/ovl_Bg_Jya_Cobra.xml + start_offset: 0x1850 + end_offset: 0x18C8 +- name: overlays/ovl_Boss_Dodongo + xml_path: assets/xml/overlays/ovl_Boss_Dodongo.xml + start_offset: 0x61E8 + end_offset: 0x91E8 +- name: overlays/ovl_Boss_Ganon + xml_path: assets/xml/overlays/ovl_Boss_Ganon.xml + start_offset: 0xE3C8 + end_offset: 0x20EE8 +- name: overlays/ovl_Boss_Ganon2 + xml_path: assets/xml/overlays/ovl_Boss_Ganon2.xml + start_offset: 0x9F88 + end_offset: 0x10438 +- name: overlays/ovl_Boss_Sst + xml_path: assets/xml/overlays/ovl_Boss_Sst.xml + start_offset: 0xA380 + end_offset: 0xAD30 +- name: overlays/ovl_Demo_Shd + xml_path: assets/xml/overlays/ovl_Demo_Shd.xml + start_offset: 0x410 + end_offset: 0x2390 +- name: overlays/ovl_Effect_Ss_Fhg_Flash + xml_path: assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml + start_offset: 0x9F0 + end_offset: 0xEA8 +- name: overlays/ovl_En_Bili + xml_path: assets/xml/overlays/ovl_En_Bili.xml + start_offset: 0x1E40 + end_offset: 0x1E60 +- name: overlays/ovl_En_Clear_Tag + xml_path: assets/xml/overlays/ovl_En_Clear_Tag.xml + start_offset: 0x2600 + end_offset: 0x8900 +- name: overlays/ovl_En_Ganon_Mant + xml_path: assets/xml/overlays/ovl_En_Ganon_Mant.xml + start_offset: 0x11F8 + end_offset: 0x40F8 +- name: overlays/ovl_En_Ganon_Organ + xml_path: assets/xml/overlays/ovl_En_Ganon_Organ.xml + start_offset: 0x368 + end_offset: 0x6EF0 +- name: overlays/ovl_En_Holl + xml_path: assets/xml/overlays/ovl_En_Holl.xml + start_offset: 0xE68 + end_offset: 0xED0 +- name: overlays/ovl_En_Jsjutan + xml_path: assets/xml/overlays/ovl_En_Jsjutan.xml + start_offset: 0x12C8 + end_offset: 0x4C60 +- name: overlays/ovl_En_Kanban + xml_path: assets/xml/overlays/ovl_En_Kanban.xml + start_offset: 0x2E70 + end_offset: 0x2F30 +- name: overlays/ovl_En_Sda + xml_path: assets/xml/overlays/ovl_En_Sda.xml + start_offset: 0x1498 + end_offset: 0x1528 +- name: overlays/ovl_En_Ssh + xml_path: assets/xml/overlays/ovl_En_Ssh.xml + start_offset: 0x2150 + end_offset: 0x21E0 +- name: overlays/ovl_En_St + xml_path: assets/xml/overlays/ovl_En_St.xml + start_offset: 0x26A0 + end_offset: 0x2730 +- name: overlays/ovl_En_Sth + xml_path: assets/xml/overlays/ovl_En_Sth.xml + start_offset: 0xE70 + end_offset: 0x3E44 +- name: overlays/ovl_End_Title + xml_path: assets/xml/overlays/ovl_End_Title.xml + start_offset: 0x6E0 + end_offset: 0x4088 +- name: overlays/ovl_file_choose + xml_path: assets/xml/overlays/ovl_file_choose.xml + start_offset: 0xD740 + end_offset: 0xDF80 +- name: overlays/ovl_Magic_Dark + xml_path: assets/xml/overlays/ovl_Magic_Dark.xml + start_offset: 0xC90 + end_offset: 0x16C0 +- name: overlays/ovl_Magic_Fire + xml_path: assets/xml/overlays/ovl_Magic_Fire.xml + start_offset: 0xB50 + end_offset: 0x21A0 +- name: overlays/ovl_Magic_Wind + xml_path: assets/xml/overlays/ovl_Magic_Wind.xml + start_offset: 0x6A0 + end_offset: 0x1BB8 +- name: overlays/ovl_Oceff_Spot + xml_path: assets/xml/overlays/ovl_Oceff_Spot.xml + start_offset: 0x780 + end_offset: 0xE58 +- name: overlays/ovl_Oceff_Storm + xml_path: assets/xml/overlays/ovl_Oceff_Storm.xml + start_offset: 0x750 + end_offset: 0x1AE0 +- name: overlays/ovl_Oceff_Wipe + xml_path: assets/xml/overlays/ovl_Oceff_Wipe.xml + start_offset: 0x520 + end_offset: 0xCE0 +- name: overlays/ovl_Oceff_Wipe2 + xml_path: assets/xml/overlays/ovl_Oceff_Wipe2.xml + start_offset: 0x430 + end_offset: 0x1698 +- name: overlays/ovl_Oceff_Wipe3 + xml_path: assets/xml/overlays/ovl_Oceff_Wipe3.xml + start_offset: 0x430 + end_offset: 0x1678 +- name: overlays/ovl_Oceff_Wipe4 + xml_path: assets/xml/overlays/ovl_Oceff_Wipe4.xml + start_offset: 0x410 + end_offset: 0xEF8 +- name: scenes/dungeons/bdan + xml_path: assets/xml/scenes/dungeons/bdan.xml +- name: scenes/dungeons/bdan_boss + xml_path: assets/xml/scenes/dungeons/bdan_boss.xml +- name: scenes/dungeons/Bmori1 + xml_path: assets/xml/scenes/dungeons/Bmori1.xml +- name: scenes/dungeons/ddan + xml_path: assets/xml/scenes/dungeons/ddan.xml +- name: scenes/dungeons/ddan_boss + xml_path: assets/xml/scenes/dungeons/ddan_boss.xml +- name: scenes/dungeons/FIRE_bs + xml_path: assets/xml/scenes/dungeons/FIRE_bs.xml +- name: scenes/dungeons/ganon + xml_path: assets/xml/scenes/dungeons/ganon.xml +- name: scenes/dungeons/ganon_boss + xml_path: assets/xml/scenes/dungeons/ganon_boss.xml +- name: scenes/dungeons/ganon_demo + xml_path: assets/xml/scenes/dungeons/ganon_demo.xml +- name: scenes/dungeons/ganon_final + xml_path: assets/xml/scenes/dungeons/ganon_final.xml +- name: scenes/dungeons/ganon_sonogo + xml_path: assets/xml/scenes/dungeons/ganon_sonogo.xml +- name: scenes/dungeons/ganontika + xml_path: assets/xml/scenes/dungeons/ganontika.xml +- name: scenes/dungeons/ganontikasonogo + xml_path: assets/xml/scenes/dungeons/ganontikasonogo.xml +- name: scenes/dungeons/gerudoway + xml_path: assets/xml/scenes/dungeons/gerudoway.xml +- name: scenes/dungeons/HAKAdan + xml_path: assets/xml/scenes/dungeons/HAKAdan.xml +- name: scenes/dungeons/HAKAdan_bs + xml_path: assets/xml/scenes/dungeons/HAKAdan_bs.xml +- name: scenes/dungeons/HAKAdanCH + xml_path: assets/xml/scenes/dungeons/HAKAdanCH.xml +- name: scenes/dungeons/HIDAN + xml_path: assets/xml/scenes/dungeons/HIDAN.xml +- name: scenes/dungeons/ice_doukutu + xml_path: assets/xml/scenes/dungeons/ice_doukutu.xml +- name: scenes/dungeons/jyasinboss + xml_path: assets/xml/scenes/dungeons/jyasinboss.xml +- name: scenes/dungeons/jyasinzou + xml_path: assets/xml/scenes/dungeons/jyasinzou.xml +- name: scenes/dungeons/men + xml_path: assets/xml/scenes/dungeons/men.xml +- name: scenes/dungeons/MIZUsin + xml_path: assets/xml/scenes/dungeons/MIZUsin.xml +- name: scenes/dungeons/MIZUsin_bs + xml_path: assets/xml/scenes/dungeons/MIZUsin_bs.xml +- name: scenes/dungeons/moribossroom + xml_path: assets/xml/scenes/dungeons/moribossroom.xml +- name: scenes/dungeons/ydan + xml_path: assets/xml/scenes/dungeons/ydan.xml +- name: scenes/dungeons/ydan_boss + xml_path: assets/xml/scenes/dungeons/ydan_boss.xml +- name: scenes/indoors/bowling + xml_path: assets/xml/scenes/indoors/bowling.xml +- name: scenes/indoors/daiyousei_izumi + xml_path: assets/xml/scenes/indoors/daiyousei_izumi.xml +- name: scenes/indoors/hairal_niwa + xml_path: assets/xml/scenes/indoors/hairal_niwa.xml +- name: scenes/indoors/hairal_niwa_n + xml_path: assets/xml/scenes/indoors/hairal_niwa_n.xml +- name: scenes/indoors/hakasitarelay + xml_path: assets/xml/scenes/indoors/hakasitarelay.xml +- name: scenes/indoors/hut + xml_path: assets/xml/scenes/indoors/hut.xml +- name: scenes/indoors/hylia_labo + xml_path: assets/xml/scenes/indoors/hylia_labo.xml +- name: scenes/indoors/impa + xml_path: assets/xml/scenes/indoors/impa.xml +- name: scenes/indoors/kakariko + xml_path: assets/xml/scenes/indoors/kakariko.xml +- name: scenes/indoors/kenjyanoma + xml_path: assets/xml/scenes/indoors/kenjyanoma.xml +- name: scenes/indoors/kokiri_home + xml_path: assets/xml/scenes/indoors/kokiri_home.xml +- name: scenes/indoors/kokiri_home3 + xml_path: assets/xml/scenes/indoors/kokiri_home3.xml +- name: scenes/indoors/kokiri_home4 + xml_path: assets/xml/scenes/indoors/kokiri_home4.xml +- name: scenes/indoors/kokiri_home5 + xml_path: assets/xml/scenes/indoors/kokiri_home5.xml +- name: scenes/indoors/labo + xml_path: assets/xml/scenes/indoors/labo.xml +- name: scenes/indoors/link_home + xml_path: assets/xml/scenes/indoors/link_home.xml +- name: scenes/indoors/mahouya + xml_path: assets/xml/scenes/indoors/mahouya.xml +- name: scenes/indoors/malon_stable + xml_path: assets/xml/scenes/indoors/malon_stable.xml +- name: scenes/indoors/miharigoya + xml_path: assets/xml/scenes/indoors/miharigoya.xml +- name: scenes/indoors/nakaniwa + xml_path: assets/xml/scenes/indoors/nakaniwa.xml +- name: scenes/indoors/souko + xml_path: assets/xml/scenes/indoors/souko.xml +- name: scenes/indoors/syatekijyou + xml_path: assets/xml/scenes/indoors/syatekijyou.xml +- name: scenes/indoors/takaraya + xml_path: assets/xml/scenes/indoors/takaraya.xml +- name: scenes/indoors/tent + xml_path: assets/xml/scenes/indoors/tent.xml +- name: scenes/indoors/tokinoma + xml_path: assets/xml/scenes/indoors/tokinoma.xml +- name: scenes/indoors/yousei_izumi_tate + xml_path: assets/xml/scenes/indoors/yousei_izumi_tate.xml +- name: scenes/indoors/yousei_izumi_yoko + xml_path: assets/xml/scenes/indoors/yousei_izumi_yoko.xml +- name: scenes/misc/enrui + xml_path: assets/xml/scenes/misc/enrui.xml +- name: scenes/misc/entra + xml_path: assets/xml/scenes/misc/entra.xml +- name: scenes/misc/entra_n + xml_path: assets/xml/scenes/misc/entra_n.xml +- name: scenes/misc/hakaana + xml_path: assets/xml/scenes/misc/hakaana.xml +- name: scenes/misc/hakaana2 + xml_path: assets/xml/scenes/misc/hakaana2.xml +- name: scenes/misc/hakaana_ouke + xml_path: assets/xml/scenes/misc/hakaana_ouke.xml +- name: scenes/misc/hiral_demo + xml_path: assets/xml/scenes/misc/hiral_demo.xml +- name: scenes/misc/kakariko3 + xml_path: assets/xml/scenes/misc/kakariko3.xml +- name: scenes/misc/kakusiana + xml_path: assets/xml/scenes/misc/kakusiana.xml +- name: scenes/misc/kinsuta + xml_path: assets/xml/scenes/misc/kinsuta.xml +- name: scenes/misc/market_alley + xml_path: assets/xml/scenes/misc/market_alley.xml +- name: scenes/misc/market_alley_n + xml_path: assets/xml/scenes/misc/market_alley_n.xml +- name: scenes/misc/market_day + xml_path: assets/xml/scenes/misc/market_day.xml +- name: scenes/misc/market_night + xml_path: assets/xml/scenes/misc/market_night.xml +- name: scenes/misc/market_ruins + xml_path: assets/xml/scenes/misc/market_ruins.xml +- name: scenes/misc/shrine + xml_path: assets/xml/scenes/misc/shrine.xml +- name: scenes/misc/shrine_n + xml_path: assets/xml/scenes/misc/shrine_n.xml +- name: scenes/misc/shrine_r + xml_path: assets/xml/scenes/misc/shrine_r.xml +- name: scenes/misc/turibori + xml_path: assets/xml/scenes/misc/turibori.xml +- name: scenes/overworld/ganon_tou + xml_path: assets/xml/scenes/overworld/ganon_tou.xml +- name: scenes/overworld/spot00 + xml_path: assets/xml/scenes/overworld/spot00.xml +- name: scenes/overworld/spot01 + xml_path: assets/xml/scenes/overworld/spot01.xml +- name: scenes/overworld/spot02 + xml_path: assets/xml/scenes/overworld/spot02.xml +- name: scenes/overworld/spot03 + xml_path: assets/xml/scenes/overworld/spot03.xml +- name: scenes/overworld/spot04 + xml_path: assets/xml/scenes/overworld/spot04.xml +- name: scenes/overworld/spot05 + xml_path: assets/xml/scenes/overworld/spot05.xml +- name: scenes/overworld/spot06 + xml_path: assets/xml/scenes/overworld/spot06.xml +- name: scenes/overworld/spot07 + xml_path: assets/xml/scenes/overworld/spot07.xml +- name: scenes/overworld/spot08 + xml_path: assets/xml/scenes/overworld/spot08.xml +- name: scenes/overworld/spot09 + xml_path: assets/xml/scenes/overworld/spot09.xml +- name: scenes/overworld/spot10 + xml_path: assets/xml/scenes/overworld/spot10.xml +- name: scenes/overworld/spot11 + xml_path: assets/xml/scenes/overworld/spot11.xml +- name: scenes/overworld/spot12 + xml_path: assets/xml/scenes/overworld/spot12.xml +- name: scenes/overworld/spot13 + xml_path: assets/xml/scenes/overworld/spot13.xml +- name: scenes/overworld/spot15 + xml_path: assets/xml/scenes/overworld/spot15.xml +- name: scenes/overworld/spot16 + xml_path: assets/xml/scenes/overworld/spot16.xml +- name: scenes/overworld/spot17 + xml_path: assets/xml/scenes/overworld/spot17.xml +- name: scenes/overworld/spot18 + xml_path: assets/xml/scenes/overworld/spot18.xml +- name: scenes/overworld/spot20 + xml_path: assets/xml/scenes/overworld/spot20.xml +- name: scenes/shops/alley_shop + xml_path: assets/xml/scenes/shops/alley_shop.xml +- name: scenes/shops/drag + xml_path: assets/xml/scenes/shops/drag.xml +- name: scenes/shops/face_shop + xml_path: assets/xml/scenes/shops/face_shop.xml +- name: scenes/shops/golon + xml_path: assets/xml/scenes/shops/golon.xml +- name: scenes/shops/kokiri_shop + xml_path: assets/xml/scenes/shops/kokiri_shop.xml +- name: scenes/shops/night_shop + xml_path: assets/xml/scenes/shops/night_shop.xml +- name: scenes/shops/shop1 + xml_path: assets/xml/scenes/shops/shop1.xml +- name: scenes/shops/zoora + xml_path: assets/xml/scenes/shops/zoora.xml +- name: textures/backgrounds + xml_path: assets/xml/textures/backgrounds.xml +- name: textures/do_action_static + xml_path: assets/xml/textures/do_action_static.xml +- name: textures/icon_item_24_static + xml_path: assets/xml/textures/icon_item_24_static.xml +- name: textures/icon_item_dungeon_static + xml_path: assets/xml/textures/icon_item_dungeon_static.xml +- name: textures/icon_item_field_static + xml_path: assets/xml/textures/icon_item_field_static.xml +- name: textures/icon_item_fra_static + xml_path: assets/xml/textures/icon_item_fra_static.xml +- name: textures/icon_item_gameover_static + xml_path: assets/xml/textures/icon_item_gameover_static.xml +- name: textures/icon_item_ger_static + xml_path: assets/xml/textures/icon_item_ger_static.xml +- name: textures/icon_item_nes_static + xml_path: assets/xml/textures/icon_item_nes_static.xml +- name: textures/icon_item_static + xml_path: assets/xml/textures/icon_item_static.xml +- name: textures/item_name_static + xml_path: assets/xml/textures/item_name_static.xml +- name: textures/map_48x85_static + xml_path: assets/xml/textures/map_48x85_static.xml +- name: textures/map_grand_static + xml_path: assets/xml/textures/map_grand_static.xml +- name: textures/map_i_static + xml_path: assets/xml/textures/map_i_static.xml +- name: textures/map_name_static + xml_path: assets/xml/textures/map_name_static.xml +- name: textures/message_static + xml_path: assets/xml/textures/message_static.xml +- name: textures/message_texture_static + xml_path: assets/xml/textures/message_texture_static.xml +- name: textures/nes_font_static + xml_path: assets/xml/textures/nes_font_static.xml +- name: textures/nintendo_rogo_static + xml_path: assets/xml/textures/nintendo_rogo_static.xml +- name: textures/parameter_static + xml_path: assets/xml/textures/parameter_static.xml +- name: textures/place_title_cards + xml_path: assets/xml/textures/place_title_cards.xml +- name: textures/skyboxes + xml_path: assets/xml/textures/skyboxes.xml +- name: textures/title_static + xml_path: assets/xml/textures/title_static.xml diff --git a/extract_assets.py b/extract_assets.py index 9c83503ab..d7b6ecca7 100755 --- a/extract_assets.py +++ b/extract_assets.py @@ -8,8 +8,7 @@ import time import multiprocessing from pathlib import Path - -EXTRACTED_ASSETS_NAMEFILE = ".extracted-assets.json" +from tools import version_config def SignalHandler(sig, frame): @@ -17,20 +16,33 @@ def SignalHandler(sig, frame): mainAbort.set() # Don't exit immediately to update the extracted assets file. -def ExtractFile(xmlPath, outputPath, outputSourcePath): +def ExtractFile(assetConfig: version_config.AssetConfig, outputPath: Path, outputSourcePath: Path): + xmlPath = assetConfig.xml_path + version = globalVersionConfig.version if globalAbort.is_set(): # Don't extract if another file wasn't extracted properly. return zapdPath = Path("tools") / "ZAPD" / "ZAPD.out" - configPath = Path("tools") / "ZAPDConfigs" / "MqDbg" / "Config.xml" + configPath = Path("tools") / "ZAPDConfigs" / version / "Config.xml" - Path(outputPath).mkdir(parents=True, exist_ok=True) - Path(outputSourcePath).mkdir(parents=True, exist_ok=True) + outputPath.mkdir(parents=True, exist_ok=True) + outputSourcePath.mkdir(parents=True, exist_ok=True) - execStr = f"{zapdPath} e -eh -i {xmlPath} -b extracted/gc-eu-mq-dbg/baserom -o {outputPath} -osf {outputSourcePath} -gsf 1 -rconf {configPath} --cs-float both {ZAPDArgs}" + execStr = f"{zapdPath} e -eh -i {xmlPath} -b extracted/{version}/baserom -o {outputPath} -osf {outputSourcePath} -gsf 1 -rconf {configPath} --cs-float both {ZAPDArgs}" - if "overlays" in xmlPath: + if "code" in xmlPath.parts or "overlays" in xmlPath.parts: + assert assetConfig.start_offset is not None + assert assetConfig.end_offset is not None + + execStr += f" --start-offset 0x{assetConfig.start_offset:X}" + execStr += f" --end-offset 0x{assetConfig.end_offset:X}" + + if "overlays" in xmlPath.parts: + overlayName = xmlPath.stem + baseAddress = globalVersionConfig.dmadata_segments[overlayName].vram + assetConfig.start_offset + + execStr += f" --base-address 0x{baseAddress:X}" execStr += " --static" if globalUnaccounted: @@ -45,35 +57,39 @@ def ExtractFile(xmlPath, outputPath, outputSourcePath): print("Aborting...", file=os.sys.stderr) print("\n") -def ExtractFunc(fullPath): - *pathList, xmlName = fullPath.split(os.sep) - objectName = os.path.splitext(xmlName)[0] +def ExtractFunc(assetConfig: version_config.AssetConfig): + objectName = assetConfig.name + xml_path = assetConfig.xml_path + xml_path_str = str(xml_path) - outPath = os.path.join("assets", *pathList[2:], objectName) + version = globalVersionConfig.version + outPath = Path("extracted") / version / "assets" / objectName outSourcePath = outPath - if fullPath in globalExtractedAssetsTracker: - timestamp = globalExtractedAssetsTracker[fullPath]["timestamp"] - modificationTime = int(os.path.getmtime(fullPath)) + if xml_path_str in globalExtractedAssetsTracker: + timestamp = globalExtractedAssetsTracker[xml_path_str]["timestamp"] + modificationTime = int(os.path.getmtime(xml_path)) if modificationTime < timestamp: # XML has not been modified since last extraction. return currentTimeStamp = int(time.time()) - ExtractFile(fullPath, outPath, outSourcePath) + ExtractFile(assetConfig, outPath, outSourcePath) if not globalAbort.is_set(): # Only update timestamp on succesful extractions - if fullPath not in globalExtractedAssetsTracker: - globalExtractedAssetsTracker[fullPath] = globalManager.dict() - globalExtractedAssetsTracker[fullPath]["timestamp"] = currentTimeStamp + if xml_path_str not in globalExtractedAssetsTracker: + globalExtractedAssetsTracker[xml_path_str] = globalManager.dict() + globalExtractedAssetsTracker[xml_path_str]["timestamp"] = currentTimeStamp -def initializeWorker(abort, unaccounted: bool, extractedAssetsTracker: dict, manager): +def initializeWorker(versionConfig: version_config.VersionConfig, abort, unaccounted: bool, extractedAssetsTracker: dict, manager): + global globalVersionConfig global globalAbort global globalUnaccounted global globalExtractedAssetsTracker global globalManager + globalVersionConfig = versionConfig globalAbort = abort globalUnaccounted = unaccounted globalExtractedAssetsTracker = extractedAssetsTracker @@ -95,13 +111,17 @@ def processZAPDArgs(argsZ): def main(): parser = argparse.ArgumentParser(description="baserom asset extractor") - parser.add_argument("-s", "--single", help="asset path relative to assets/, e.g. objects/gameplay_keep") + parser.add_argument("-v", "--oot-version", dest="oot_version", help="OOT game version", default="gc-eu-mq-dbg") + parser.add_argument("-s", "--single", help="Extract a single asset by name, e.g. objects/gameplay_keep") parser.add_argument("-f", "--force", help="Force the extraction of every xml instead of checking the touched ones (overwriting current files).", action="store_true") parser.add_argument("-j", "--jobs", help="Number of cpu cores to extract with.") parser.add_argument("-u", "--unaccounted", help="Enables ZAPD unaccounted detector warning system.", action="store_true") parser.add_argument("-Z", help="Pass the argument on to ZAPD, e.g. `-ZWunaccounted` to warn about unaccounted blocks in XMLs. Each argument should be passed separately, *without* the leading dash.", metavar="ZAPD_ARG", action="append") args = parser.parse_args() + version: str = args.oot_version + versionConfig = version_config.load_version_config(version) + global ZAPDArgs ZAPDArgs = processZAPDArgs(args.Z) if args.Z else "" @@ -110,31 +130,30 @@ def main(): manager = multiprocessing.Manager() signal.signal(signal.SIGINT, SignalHandler) + extraction_times_p = Path("extracted") / version / "assets_extraction_times.json" extractedAssetsTracker = manager.dict() - if os.path.exists(EXTRACTED_ASSETS_NAMEFILE) and not args.force: - with open(EXTRACTED_ASSETS_NAMEFILE, encoding='utf-8') as f: + if extraction_times_p.exists() and not args.force: + with extraction_times_p.open(encoding='utf-8') as f: extractedAssetsTracker.update(json.load(f, object_hook=manager.dict)) - asset_path = args.single - if asset_path is not None: - fullPath = os.path.join("assets", "xml", asset_path + ".xml") - if not os.path.exists(fullPath): - print(f"Error. File {fullPath} does not exist.", file=os.sys.stderr) + singleAssetName = args.single + if singleAssetName is not None: + assetConfig = None + for asset in versionConfig.assets: + if asset.name == singleAssetName: + assetConfig = asset + break + else: + print(f"Error. Asset {singleAssetName} not found in config.", file=os.sys.stderr) exit(1) - initializeWorker(mainAbort, args.unaccounted, extractedAssetsTracker, manager) + initializeWorker(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager) # Always extract if -s is used. + fullPath = assetConfig.xml_path if fullPath in extractedAssetsTracker: del extractedAssetsTracker[fullPath] - ExtractFunc(fullPath) + ExtractFunc(assetConfig) else: - xmlFiles = [] - for currentPath, _, files in os.walk(os.path.join("assets", "xml")): - for file in files: - fullPath = os.path.join(currentPath, file) - if file.endswith(".xml"): - xmlFiles.append(fullPath) - class CannotMultiprocessError(Exception): pass @@ -147,17 +166,17 @@ def main(): mp_context = multiprocessing.get_context("fork") except ValueError as e: raise CannotMultiprocessError() from e - with mp_context.Pool(numCores, initializer=initializeWorker, initargs=(mainAbort, args.unaccounted, extractedAssetsTracker, manager)) as p: - p.map(ExtractFunc, xmlFiles) + with mp_context.Pool(numCores, initializer=initializeWorker, initargs=(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager)) as p: + p.map(ExtractFunc, versionConfig.assets) except (multiprocessing.ProcessError, TypeError, CannotMultiprocessError): print("Warning: Multiprocessing exception ocurred.", file=os.sys.stderr) print("Disabling mutliprocessing.", file=os.sys.stderr) - initializeWorker(mainAbort, args.unaccounted, extractedAssetsTracker, manager) - for singlePath in xmlFiles: - ExtractFunc(singlePath) + initializeWorker(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager) + for assetConfig in versionConfig.assets: + ExtractFunc(assetConfig) - with open(EXTRACTED_ASSETS_NAMEFILE, 'w', encoding='utf-8') as f: + with extraction_times_p.open('w', encoding='utf-8') as f: serializableDict = dict() for xml, data in extractedAssetsTracker.items(): serializableDict[xml] = dict(data) diff --git a/spec b/spec index 9cc1b8d59..bf4f5c67f 100644 --- a/spec +++ b/spec @@ -256,12 +256,7 @@ endseg beginseg name "nes_font_static" romalign 0x1000 -#if OOT_DEBUG include "$(BUILD_DIR)/assets/textures/nes_font_static/nes_font_static.o" -#else - // TODO: Remove this hack once assets are extracted from gc-eu-mq - include "$(BUILD_DIR)/baserom/nes_font_static.o" -#endif number 10 endseg diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c index ccc64727d..186878b0e 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c @@ -1,7 +1,7 @@ #include "file_select.h" #include "terminal.h" #include "assets/textures/title_static/title_static.h" -#include "assets/overlays/ovl_File_Choose/ovl_file_choose.h" +#include "assets/overlays/ovl_file_choose/ovl_file_choose.h" static s16 D_808124C0[] = { 0x0002, 0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0002, 0x0000, 0x0001, diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.c index 2fa7cd78f..d6bc09c28 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.c @@ -1,6 +1,6 @@ #include "file_select.h" -#include "assets/overlays/ovl_File_Choose/ovl_file_choose.c" +#include "assets/overlays/ovl_file_choose/ovl_file_choose.c" s16 D_808123F0[] = { 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, diff --git a/tools/ZAPD/.gitrepo b/tools/ZAPD/.gitrepo index 9b6f9bb9b..35d013491 100644 --- a/tools/ZAPD/.gitrepo +++ b/tools/ZAPD/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = https://github.com/zeldaret/ZAPD.git branch = master - commit = 1300a4f36584627aa784cbc252d1c8ecd7b40e68 - parent = 4522ee2cae12b2d23b7ef0134f24f7c3e26935f0 + commit = 0285e11f0a5937f60db023bfe5db273f2223fcf4 + parent = afd82230e1bd6e043eabe613f5b31f6e96f0f88c method = merge cmdver = 0.4.6 diff --git a/tools/ZAPD/README.md b/tools/ZAPD/README.md index d51dd0558..5006f8d4b 100644 --- a/tools/ZAPD/README.md +++ b/tools/ZAPD/README.md @@ -119,9 +119,14 @@ ZAPD also accepts the following list of extra parameters: - This behaviour can be overridden per asset using `Static=` in the respective XML node. - `--cs-float` : How cutscene floats should be extracted. - Valid values: - - `hex` - - `float` - - `both` + - `hex`: `0x42280000` + - `float`: `42.0f` + - `both`: `CS_FLOAT(0x42280000, 42.0f)` + - `hex-commented-left`: `/* 42.0f */ 0x42280000` + - `hex-commented-right`: `0x42280000 /* 42.0f */` +- `--base-address ADDRESS`: Override base virtual address for input files. +- `--start-offset OFFSET`: Override start offset for input files. +- `--end-offset OFFSET`: Override end offset for input files. - `-W...`: warning flags, see below Additionally, you can pass the flag `--version` to see the current ZAPD version. If that flag is passed, ZAPD will ignore any other parameter passed. diff --git a/tools/ZAPD/ZAPD/Globals.h b/tools/ZAPD/ZAPD/Globals.h index 14bd06584..2cc9c2d4d 100644 --- a/tools/ZAPD/ZAPD/Globals.h +++ b/tools/ZAPD/ZAPD/Globals.h @@ -21,6 +21,8 @@ enum class CsFloatType HexOnly, FloatOnly, HexAndFloat, + HexAndCommentedFloatLeft, + HexAndCommentedFloatRight, }; class Globals @@ -39,6 +41,9 @@ public: fs::path baseRomPath, inputPath, outputPath, sourceOutputPath, cfgPath; TextureType texType; CsFloatType floatType = CsFloatType::FloatOnly; + int64_t baseAddress = -1; + int64_t startOffset = -1; + int64_t endOffset = -1; ZGame game; GameConfig cfg; bool verboseUnaccounted = false; diff --git a/tools/ZAPD/ZAPD/Main.cpp b/tools/ZAPD/ZAPD/Main.cpp index eb1737d64..19d10d7d9 100644 --- a/tools/ZAPD/ZAPD/Main.cpp +++ b/tools/ZAPD/ZAPD/Main.cpp @@ -37,11 +37,14 @@ void Arg_EnableGCCCompat(int& i, char* argv[]); void Arg_ForceStatic(int& i, char* argv[]); void Arg_ForceUnaccountedStatic(int& i, char* argv[]); void Arg_CsFloatMode(int& i, char* argv[]); +void Arg_BaseAddress(int& i, char* argv[]); +void Arg_StartOffset(int& i, char* argv[]); +void Arg_EndOffset(int& i, char* argv[]); int main(int argc, char* argv[]); bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path& outPath, - ZFileMode fileMode); + ZFileMode fileMode); void ParseArgs(int& argc, char* argv[]); @@ -115,7 +118,7 @@ int main(int argc, char* argv[]) returnCode = HandleExtract(fileMode, exporterSet); else if (fileMode == ZFileMode::BuildTexture) BuildAssetTexture(Globals::Instance->inputPath, Globals::Instance->texType, - Globals::Instance->outputPath); + Globals::Instance->outputPath); else if (fileMode == ZFileMode::BuildBackground) BuildAssetBackground(Globals::Instance->inputPath, Globals::Instance->outputPath); else if (fileMode == ZFileMode::BuildBlob) @@ -126,7 +129,7 @@ int main(int argc, char* argv[]) } bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path& outPath, - ZFileMode fileMode) + ZFileMode fileMode) { tinyxml2::XMLDocument doc; tinyxml2::XMLError eResult = doc.LoadFile(xmlFilePath.string().c_str()); @@ -135,7 +138,7 @@ bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path { // TODO: use XMLDocument::ErrorIDToName to get more specific error messages here HANDLE_ERROR(WarningType::InvalidXML, - StringHelper::Sprintf("invalid XML file: '%s'", xmlFilePath.c_str()), ""); + StringHelper::Sprintf("invalid XML file: '%s'", xmlFilePath.c_str()), ""); return false; } @@ -150,7 +153,7 @@ bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path } for (tinyxml2::XMLElement* child = root->FirstChildElement(); child != NULL; - child = child->NextSiblingElement()) + child = child->NextSiblingElement()) { if (std::string_view(child->Name()) == "File") { @@ -254,6 +257,9 @@ void ParseArgs(int& argc, char* argv[]) {"-us", &Arg_ForceUnaccountedStatic}, {"--unaccounted-static", &Arg_ForceUnaccountedStatic}, {"--cs-float", &Arg_CsFloatMode}, + {"--base-address", &Arg_BaseAddress}, + {"--start-offset", &Arg_StartOffset}, + {"--end-offset", &Arg_EndOffset}, }; for (int32_t i = 2; i < argc; i++) @@ -409,17 +415,47 @@ void Arg_CsFloatMode([[maybe_unused]] int& i, [[maybe_unused]] char* argv[]) { Globals::Instance->floatType = CsFloatType::HexAndFloat; } + else if (std::strcmp(argv[i], "hex-commented-left") == 0) + { + Globals::Instance->floatType = CsFloatType::HexAndCommentedFloatLeft; + } + else if (std::strcmp(argv[i], "hex-commented-right") == 0) + { + Globals::Instance->floatType = CsFloatType::HexAndCommentedFloatRight; + } else { Globals::Instance->floatType = CsFloatType::FloatOnly; HANDLE_WARNING( WarningType::Always, "Invalid CS Float Type", - StringHelper::Sprintf("Invalid CS float type entered. Expected \"hex\", \"float\", or " - "\"both\". Got %s.\n Defaulting to \"float\".", - argv[i])); + StringHelper::Sprintf("Invalid CS float type entered. Expected \"hex\", \"float\", " + "\"both\", \"hex-commented-left\" or \"hex-commented-right\". " + "Got %s.\n Defaulting to \"float\".", + argv[i])); } } +uint32_t ParseU32Hex(char* str) +{ + static_assert(sizeof(uint32_t) <= sizeof(unsigned long)); + return (uint32_t)std::stoul(str, nullptr, 16); +} + +void Arg_BaseAddress(int& i, char* argv[]) +{ + Globals::Instance->baseAddress = ParseU32Hex(argv[++i]); +} + +void Arg_StartOffset(int& i, char* argv[]) +{ + Globals::Instance->startOffset = ParseU32Hex(argv[++i]); +} + +void Arg_EndOffset(int& i, char* argv[]) +{ + Globals::Instance->endOffset = ParseU32Hex(argv[++i]); +} + int HandleExtract(ZFileMode fileMode, ExporterSet* exporterSet) { bool procFileModeSuccess = false; @@ -440,14 +476,14 @@ int HandleExtract(ZFileMode fileMode, ExporterSet* exporterSet) printf("Parsing external file from config: '%s'\n", externalXmlFilePath.c_str()); parseSuccessful = Parse(externalXmlFilePath, Globals::Instance->baseRomPath, - extFile.outPath, ZFileMode::ExternalFile); + extFile.outPath, ZFileMode::ExternalFile); if (!parseSuccessful) return 1; } parseSuccessful = Parse(Globals::Instance->inputPath, Globals::Instance->baseRomPath, - Globals::Instance->outputPath, fileMode); + Globals::Instance->outputPath, fileMode); if (!parseSuccessful) return 1; } diff --git a/tools/ZAPD/ZAPD/ZCutscene.cpp b/tools/ZAPD/ZAPD/ZCutscene.cpp index 0bf0363df..7ae431eba 100644 --- a/tools/ZAPD/ZAPD/ZCutscene.cpp +++ b/tools/ZAPD/ZAPD/ZCutscene.cpp @@ -375,33 +375,22 @@ ZResourceType ZCutscene::GetResourceType() const std::string ZCutscene::GetCsEncodedFloat(float f, CsFloatType type, bool useSciNotation) { + uint32_t i; + std::memcpy(&i, &f, sizeof(i)); + switch (type) { default: // This default case will NEVER be reached, but GCC still gives a warning. case CsFloatType::HexOnly: - { - uint32_t i; - std::memcpy(&i, &f, sizeof(i)); return StringHelper::Sprintf("0x%08X", i); - } case CsFloatType::FloatOnly: - { - if (useSciNotation) - { - return StringHelper::Sprintf("%.8ef", f); - } - return StringHelper::Sprintf("%ff", f); - } + return StringHelper::Sprintf(useSciNotation ? "%.8ef" : "%ff", f); case CsFloatType::HexAndFloat: - { - uint32_t i; - std::memcpy(&i, &f, sizeof(i)); - if (useSciNotation) - { - return StringHelper::Sprintf("CS_FLOAT(0x%08X, %.8ef)", i, f); - } - return StringHelper::Sprintf("CS_FLOAT(0x%08X, %ff)", i, f); - } + return StringHelper::Sprintf(useSciNotation ? "CS_FLOAT(0x%08X, %.8ef)" : "CS_FLOAT(0x%08X, %ff)", i, f); + case CsFloatType::HexAndCommentedFloatLeft: + return StringHelper::Sprintf(useSciNotation ? "/* %.8ef */ 0x%08X" : "/* %ff */ 0x%08X", f, i); + case CsFloatType::HexAndCommentedFloatRight: + return StringHelper::Sprintf(useSciNotation ? "0x%08X /* %.8ef */" : "0x%08X /* %ff */", i, f); } } diff --git a/tools/ZAPD/ZAPD/ZFile.cpp b/tools/ZAPD/ZAPD/ZFile.cpp index 0b2a4d631..db2d251a5 100644 --- a/tools/ZAPD/ZAPD/ZFile.cpp +++ b/tools/ZAPD/ZAPD/ZFile.cpp @@ -120,6 +120,9 @@ void ZFile::ParseXML(tinyxml2::XMLElement* reader, const std::string& filename) if (reader->Attribute("BaseAddress") != nullptr) baseAddress = StringHelper::StrToL(reader->Attribute("BaseAddress"), 16); + if (mode == ZFileMode::Extract && Globals::Instance->baseAddress != -1) + baseAddress = Globals::Instance->baseAddress; + if (reader->Attribute("RangeStart") != nullptr) rangeStart = StringHelper::StrToL(reader->Attribute("RangeStart"), 16); @@ -197,6 +200,9 @@ void ZFile::ParseXML(tinyxml2::XMLElement* reader, const std::string& filename) } rawData = File::ReadAllBytes((basePath / name).string()); + if (mode == ZFileMode::Extract && Globals::Instance->startOffset != -1 && Globals::Instance->endOffset != -1) + rawData = std::vector(rawData.begin() + Globals::Instance->startOffset, + rawData.begin() + Globals::Instance->endOffset); if (reader->Attribute("RangeEnd") == nullptr) rangeEnd = rawData.size(); @@ -585,6 +591,12 @@ Declaration* ZFile::AddDeclarationIncludeArray(offset_t address, std::string& in includePath = "assets/" + StringHelper::Split(includePath, "assets/extracted/")[1]; if (StringHelper::StartsWith(includePath, "assets/custom/")) includePath = "assets/" + StringHelper::Split(includePath, "assets/custom/")[1]; + // Hack for OOT: don't prefix include paths with extracted/VERSION/ + if (StringHelper::StartsWith(includePath, "extracted/")) { + std::vector parts = StringHelper::Split(includePath, "/"); + parts.erase(parts.begin(), parts.begin() + 2); + includePath = StringHelper::Join(parts, "/"); + } Declaration* decl = GetDeclaration(address); if (decl == nullptr) @@ -621,6 +633,12 @@ Declaration* ZFile::AddDeclarationIncludeArray(offset_t address, std::string& in includePath = "assets/" + StringHelper::Split(includePath, "assets/extracted/")[1]; if (StringHelper::StartsWith(includePath, "assets/custom/")) includePath = "assets/" + StringHelper::Split(includePath, "assets/custom/")[1]; + // Hack for OOT: don't prefix include paths with extracted/VERSION/ + if (StringHelper::StartsWith(includePath, "extracted/")) { + std::vector parts = StringHelper::Split(includePath, "/"); + parts.erase(parts.begin(), parts.begin() + 2); + includePath = StringHelper::Join(parts, "/"); + } Declaration* decl = GetDeclaration(address); if (decl == nullptr) diff --git a/tools/ZAPD/ZAPDUtils/Utils/StringHelper.h b/tools/ZAPD/ZAPDUtils/Utils/StringHelper.h index c4e012eb0..942d0bcc9 100644 --- a/tools/ZAPD/ZAPDUtils/Utils/StringHelper.h +++ b/tools/ZAPD/ZAPDUtils/Utils/StringHelper.h @@ -30,6 +30,21 @@ public: return result; } + static std::string Join(const std::vector parts, const std::string& delimiter) + { + std::string result; + + for (size_t i = 0; i < parts.size(); i++) + { + result += parts[i]; + + if (i != parts.size() - 1) + result += delimiter; + } + + return result; + } + static std::string Strip(std::string s, const std::string& delimiter) { size_t pos = 0; diff --git a/tools/ZAPDConfigs/MqDbg/ActorList_OoTMqDbg.txt b/tools/ZAPDConfigs/ActorList.txt similarity index 100% rename from tools/ZAPDConfigs/MqDbg/ActorList_OoTMqDbg.txt rename to tools/ZAPDConfigs/ActorList.txt diff --git a/tools/ZAPDConfigs/MqDbg/EntranceList_OoTMqDbg.txt b/tools/ZAPDConfigs/EntranceList.txt similarity index 100% rename from tools/ZAPDConfigs/MqDbg/EntranceList_OoTMqDbg.txt rename to tools/ZAPDConfigs/EntranceList.txt diff --git a/tools/ZAPDConfigs/MqDbg/EnumData.xml b/tools/ZAPDConfigs/EnumData.xml similarity index 100% rename from tools/ZAPDConfigs/MqDbg/EnumData.xml rename to tools/ZAPDConfigs/EnumData.xml diff --git a/tools/ZAPDConfigs/MqDbg/Config.xml b/tools/ZAPDConfigs/MqDbg/Config.xml deleted file mode 100644 index f9660f90b..000000000 --- a/tools/ZAPDConfigs/MqDbg/Config.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/tools/ZAPDConfigs/MqDbg/SymbolMap_OoTMqDbg.txt b/tools/ZAPDConfigs/MqDbg/SymbolMap_OoTMqDbg.txt deleted file mode 100644 index 015e7e88a..000000000 --- a/tools/ZAPDConfigs/MqDbg/SymbolMap_OoTMqDbg.txt +++ /dev/null @@ -1 +0,0 @@ -8012DB20 gMtxClear \ No newline at end of file diff --git a/tools/ZAPDConfigs/MqDbg/ObjectList_OoTMqDbg.txt b/tools/ZAPDConfigs/ObjectList.txt similarity index 100% rename from tools/ZAPDConfigs/MqDbg/ObjectList_OoTMqDbg.txt rename to tools/ZAPDConfigs/ObjectList.txt diff --git a/tools/ZAPDConfigs/MqDbg/SpecialEntranceList_OoTMqDbg.txt b/tools/ZAPDConfigs/SpecialEntranceList.txt similarity index 100% rename from tools/ZAPDConfigs/MqDbg/SpecialEntranceList_OoTMqDbg.txt rename to tools/ZAPDConfigs/SpecialEntranceList.txt diff --git a/tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml b/tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml new file mode 100644 index 000000000..9960b22de --- /dev/null +++ b/tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/tools/ZAPDConfigs/gc-eu-mq-dbg/SymbolMap.txt b/tools/ZAPDConfigs/gc-eu-mq-dbg/SymbolMap.txt new file mode 100644 index 000000000..99b4bad0a --- /dev/null +++ b/tools/ZAPDConfigs/gc-eu-mq-dbg/SymbolMap.txt @@ -0,0 +1,2 @@ +8012DB20 gMtxClear +80A8E610 sShadowTex diff --git a/tools/ZAPDConfigs/gc-eu-mq/Config.xml b/tools/ZAPDConfigs/gc-eu-mq/Config.xml new file mode 100644 index 000000000..9960b22de --- /dev/null +++ b/tools/ZAPDConfigs/gc-eu-mq/Config.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/tools/ZAPDConfigs/gc-eu-mq/SymbolMap.txt b/tools/ZAPDConfigs/gc-eu-mq/SymbolMap.txt new file mode 100644 index 000000000..70056f6b0 --- /dev/null +++ b/tools/ZAPDConfigs/gc-eu-mq/SymbolMap.txt @@ -0,0 +1,2 @@ +800FBC00 gMtxClear +80A72FA0 sShadowTex diff --git a/tools/ZAPDConfigs/gc-eu/Config.xml b/tools/ZAPDConfigs/gc-eu/Config.xml new file mode 100644 index 000000000..9960b22de --- /dev/null +++ b/tools/ZAPDConfigs/gc-eu/Config.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/tools/ZAPDConfigs/gc-eu/SymbolMap.txt b/tools/ZAPDConfigs/gc-eu/SymbolMap.txt new file mode 100644 index 000000000..b523f5646 --- /dev/null +++ b/tools/ZAPDConfigs/gc-eu/SymbolMap.txt @@ -0,0 +1,2 @@ +800FBC20 gMtxClear +80A73020 sShadowTex diff --git a/tools/version_config.py b/tools/version_config.py index f41bdfc51..eab12b2ad 100644 --- a/tools/version_config.py +++ b/tools/version_config.py @@ -18,18 +18,30 @@ PROJECT_ROOT = Path(__file__).parent.parent @dataclasses.dataclass class VersionConfig: + # Version name + version: str # ROM offset to start of DMA table dmadata_start: int # DMA segment information, in ROM order dmadata_segments: OrderedDict[str, SegmentInfo] # Addresses of important variables needed for asset extraction - variables: Dict[str, int] + variables: dict[str, int] + # Assets to extract + assets: list[AssetConfig] @dataclasses.dataclass class SegmentInfo: name: str - vram: int | None + vram: Optional[int] + + +@dataclasses.dataclass +class AssetConfig: + name: str + xml_path: Path + start_offset: Optional[int] + end_offset: Optional[int] def load_dmadata_segments(version: str) -> OrderedDict[str, SegmentInfo]: @@ -46,8 +58,19 @@ def load_dmadata_segments(version: str) -> OrderedDict[str, SegmentInfo]: def load_version_config(version: str) -> VersionConfig: with open(PROJECT_ROOT / f"baseroms/{version}/config.yml", "r") as f: config = yaml.load(f, Loader=yaml.Loader) + + assets = [] + for asset in config["assets"]: + name = asset["name"] + xml_path = Path(asset["xml_path"]) + start_offset = asset.get("start_offset", None) + end_offset = asset.get("end_offset", None) + assets.append(AssetConfig(name, xml_path, start_offset, end_offset)) + return VersionConfig( + version=version, dmadata_start=config["dmadata_start"], dmadata_segments=load_dmadata_segments(version), variables=config["variables"], + assets=assets, )