From e7cf2fceac67295010801346f3115a4363545db6 Mon Sep 17 00:00:00 2001 From: cadmic Date: Tue, 3 Sep 2024 22:46:41 -0700 Subject: [PATCH 01/86] [ntsc-1.2] Match game.c, z_play.c, z_room.c (#2117) * Match z_room.c * Match game.c and z_play.c * Add undefined syms * Rewrite condition based on other file matches --- include/macros.h | 10 +++- include/n64dd.h | 32 ++++++++--- src/code/code_n64dd_800AD4C0.c | 1 - src/code/game.c | 35 +++++++++++- src/code/z_play.c | 88 +++++++++++++++++++++++++++-- src/code/z_room.c | 27 ++++++++- tools/disasm/ntsc-1.2/functions.txt | 2 +- undefined_syms.txt | 4 ++ 8 files changed, 174 insertions(+), 25 deletions(-) diff --git a/include/macros.h b/include/macros.h index a5aa2754fb..126d5d990e 100644 --- a/include/macros.h +++ b/include/macros.h @@ -214,7 +214,6 @@ extern struct GraphicsContext* __gfxCtx; #define ZELDA_ARENA_FREE(size, file, line) ZeldaArena_FreeDebug(size, file, line) #define LOG_UTILS_CHECK_NULL_POINTER(exp, ptr, file, line) LogUtils_CheckNullPointer(exp, ptr, file, line) #define LOG_UTILS_CHECK_VALID_POINTER(exp, ptr, file, line) LogUtils_CheckValidPointer(exp, ptr, file, line) -#define HUNGUP_AND_CRASH(file, line) Fault_AddHungupAndCrash(file, line) #define GAME_ALLOC_MALLOC(alloc, size, file, line) GameAlloc_MallocDebug(alloc, size, file, line) #else @@ -247,10 +246,15 @@ extern struct GraphicsContext* __gfxCtx; #define ZELDA_ARENA_FREE(size, file, line) ZeldaArena_Free(size) #define LOG_UTILS_CHECK_NULL_POINTER(exp, ptr, file, line) (void)0 #define LOG_UTILS_CHECK_VALID_POINTER(exp, ptr, file, line) (void)0 -#define HUNGUP_AND_CRASH(file, line) LogUtils_HungupThread(file, line) #define GAME_ALLOC_MALLOC(alloc, size, file, line) GameAlloc_Malloc(alloc, size) -#endif /* OOT_DEBUG */ +#endif + +#if PLATFORM_N64 || OOT_DEBUG +#define HUNGUP_AND_CRASH(file, line) Fault_AddHungupAndCrash(file, line) +#else +#define HUNGUP_AND_CRASH(file, line) LogUtils_HungupThread(file, line) +#endif #if OOT_NTSC #define LANGUAGE_ARRAY(jpn, eng, ger, fra) { jpn, eng } diff --git a/include/n64dd.h b/include/n64dd.h index d744711849..6a9867fcdc 100644 --- a/include/n64dd.h +++ b/include/n64dd.h @@ -2,12 +2,16 @@ #define N64DD_H #include "ultra64.h" -#include "z64dma.h" -#include "z64pause.h" #include "z64scene.h" +struct GameState; +union Gfx; +struct PlayState; +struct PauseMapMarksData; struct RegEditor; +struct RoomContext; struct SaveContext; +struct Scene; // TODO Use the specific pointer types instead of void* typedef struct n64ddStruct_800FF4B0_pointers { @@ -20,21 +24,27 @@ typedef struct n64ddStruct_800FF4B0_pointers { } n64ddStruct_800FF4B0_pointers; // size = 0xB0 struct n64ddStruct_80121AF0; -struct PlayState; typedef struct n64ddStruct_80121AF0 { void (*unk_00)(n64ddStruct_800FF4B0_pointers*, struct n64ddStruct_80121AF0*); void (*unk_04)(void); - char unk_08[0x2C]; - void (*unk_34)(PauseMapMarksData**); - void (*unk_38)(PauseMapMarksData**); + void (*unk_08)(struct PlayState* play, struct RoomContext* roomCtx, s32 roomNum); + void (*unk_0C)(struct PlayState* play); + void (*unk_10)(struct PlayState* play); + void (*unk_14)(struct PlayState* play); + char unk_18[0x1C]; + void (*unk_34)(struct PauseMapMarksData**); + void (*unk_38)(struct PauseMapMarksData**); void (*unk_3C)(void); void (*unk_40)(void); s32 (*unk_44)(struct PlayState*); - char unk_48[0x24]; + struct SceneTableEntry* (*unk_48)(s32 sceneId, struct SceneTableEntry* sceneTable); + char unk_4C[0x08]; + s32 (*unk_54)(struct PlayState*); + char unk_58[0x14]; void (*unk_6C)(struct PlayState*, SceneDrawConfigFunc*); - s32 (*unk_70)(DmaRequest* req, void* ram, uintptr_t vrom, size_t size, u32 unk, OSMesgQueue* queue, OSMesg msg); - char unk_74[4]; + s32 (*unk_70)(struct DmaRequest* req, void* ram, uintptr_t vrom, size_t size, u32 unk, OSMesgQueue* queue, OSMesg msg); + void (*unk_74)(struct GameState*); s32 (*unk_78)(struct PlayState*, void*, void*); } n64ddStruct_80121AF0; // size = ? @@ -46,6 +56,10 @@ n64ddStruct_800FF4B0_pointers* func_800ADBD0(void); void func_800ADC00(void); void func_800ADC08(s32 arg0, s32 arg1, s32 arg2); +void func_801C8510_unknown(void* dest, s32 offset, s32 size); +void func_801C86F0_unknown(void); +void func_801C7760_unknown(union Gfx** gfx); + extern n64ddStruct_800FF4B0_pointers D_800FF4B0; extern n64ddStruct_80121AF0* B_80121AF0; diff --git a/src/code/code_n64dd_800AD4C0.c b/src/code/code_n64dd_800AD4C0.c index 315b6fdd1c..ed1477f93c 100644 --- a/src/code/code_n64dd_800AD4C0.c +++ b/src/code/code_n64dd_800AD4C0.c @@ -3,7 +3,6 @@ #include "n64dd.h" // TODO functions of unknown prototype -extern char func_801C8510_unknown[]; extern char osGetIntMask[]; extern char osSetTime[]; diff --git a/src/code/game.c b/src/code/game.c index 3fe16c8182..ffb8bc8471 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -1,8 +1,9 @@ #include "global.h" -#if OOT_DEBUG #include "fault.h" -#endif #include "terminal.h" +#if PLATFORM_N64 +#include "n64dd.h" +#endif #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" @@ -70,7 +71,11 @@ void GameState_SetFBFilter(Gfx** gfxP) { } void func_800C4344(GameState* gameState) { -#if OOT_DEBUG +#if PLATFORM_N64 + if (B_80121AE2 != 0) { + func_801C86F0_unknown(); + } +#elif OOT_DEBUG Input* selectedInput; s32 hexDumpSize; u16 inputCompareValue; @@ -238,6 +243,12 @@ void func_800C49F4(GraphicsContext* gfxCtx) { newDlist = Gfx_Open(polyOpaP = POLY_OPA_DISP); gSPDisplayList(OVERLAY_DISP++, newDlist); +#if PLATFORM_N64 + if (B_80121AE2 != 0) { + func_801C7760_unknown(&newDlist); + } +#endif + gSPEndDisplayList(newDlist++); Gfx_Close(polyOpaP, newDlist); POLY_OPA_DISP = newDlist; @@ -258,6 +269,15 @@ void GameState_Update(GameState* gameState) { gameState->main(gameState); +#if PLATFORM_N64 + if (B_80121AE2 != 0) { + func_801C86F0_unknown(); + } + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_74 != NULL)) { + B_80121AF0->unk_74(gameState); + } +#endif + func_800C4344(gameState); #if OOT_DEBUG @@ -356,7 +376,11 @@ void GameState_InitArena(GameState* gameState, size_t size) { } else { THA_Init(&gameState->tha, NULL, 0); PRINTF(T("ハイラル確保失敗\n", "Failure to secure Hyrule\n")); +#if PLATFORM_N64 + HUNGUP_AND_CRASH("../game.c", 985); +#else HUNGUP_AND_CRASH("../game.c", 999); +#endif } } @@ -396,7 +420,12 @@ void GameState_Realloc(GameState* gameState, size_t size) { #if OOT_DEBUG SystemArena_Display(); #endif + +#if PLATFORM_N64 + HUNGUP_AND_CRASH("../game.c", 1030); +#else HUNGUP_AND_CRASH("../game.c", 1044); +#endif } } diff --git a/src/code/z_play.c b/src/code/z_play.c index 0c106f6102..084ef4ddce 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -1,11 +1,12 @@ #include "global.h" -#if OOT_DEBUG #include "fault.h" -#endif #include "quake.h" #include "terminal.h" #include "versions.h" +#if PLATFORM_N64 +#include "n64dd.h" +#endif #include "z64frame_advance.h" @@ -175,7 +176,9 @@ void Play_SetupTransition(PlayState* this, s32 transitionType) { break; default: -#if OOT_VERSION < GC_EU_MQ_DBG +#if PLATFORM_N64 + HUNGUP_AND_CRASH("../z_play.c", 2269); +#elif OOT_VERSION < GC_EU_MQ_DBG HUNGUP_AND_CRASH("../z_play.c", 2287); #elif OOT_VERSION < GC_JP_CE HUNGUP_AND_CRASH("../z_play.c", 2290); @@ -239,6 +242,12 @@ void Play_Destroy(GameState* thisx) { KaleidoManager_Destroy(); ZeldaArena_Cleanup(); +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_14 != NULL)) { + B_80121AF0->unk_14(this); + } +#endif + #if OOT_DEBUG Fault_RemoveClient(&D_801614B8); #endif @@ -268,6 +277,13 @@ void Play_Init(GameState* thisx) { #endif GameState_Realloc(&this->state, 0x1D4790); + +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_10 != NULL)) { + B_80121AF0->unk_10(this); + } +#endif + KaleidoManager_Init(this); View_Init(&this->view, gfxCtx); Audio_SetExtraFilter(0); @@ -360,6 +376,7 @@ void Play_Init(GameState* thisx) { PRINTF("\nSCENE_NO=%d COUNTER=%d\n", ((void)0, gSaveContext.save.entranceIndex), gSaveContext.sceneLayer); +#if PLATFORM_GC // When entering Gerudo Valley in the credits, trigger the GC emulator to play the ending movie. // The emulator constantly checks whether PC is 0x81000000, so this works even though it's not a valid address. if ((gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_GERUDO_VALLEY) && @@ -368,8 +385,17 @@ void Play_Init(GameState* thisx) { ((void (*)(void))0x81000000)(); PRINTF(T("出戻り?\n", "Return?\n")); } +#endif +#if PLATFORM_N64 + if ((B_80121AF0 != NULL && B_80121AF0->unk_54 != NULL && B_80121AF0->unk_54(this))) { + } else { + Cutscene_HandleEntranceTriggers(this); + } +#else Cutscene_HandleEntranceTriggers(this); +#endif + KaleidoScopeCall_Init(this); Interface_Init(this); @@ -1058,6 +1084,10 @@ skip: } void Play_DrawOverlayElements(PlayState* this) { +#if PLATFORM_N64 + s32 pad; +#endif + if (IS_PAUSED(&this->pauseCtx)) { KaleidoScopeCall_Draw(this); } @@ -1147,7 +1177,12 @@ void Play_Draw(PlayState* this) { TransitionFade_Draw(&this->transitionFadeFlash, &gfxP); - if (gVisMonoColor.a > 0) { +#if PLATFORM_N64 + if (gVisMonoColor.a != 0) +#else + if (gVisMonoColor.a > 0) +#endif + { gPlayVisMono.vis.primColor.rgba = gVisMonoColor.rgba; VisMono_Draw(&gPlayVisMono, &gfxP); } @@ -1457,6 +1492,19 @@ void* Play_LoadFile(PlayState* this, RomFile* file) { return allocp; } +#if PLATFORM_N64 +void* Play_LoadFileFromDiskDrive(PlayState* this, RomFile* file) { + u32 size; + void* allocp; + + size = file->vromEnd - file->vromStart; + allocp = THA_AllocTailAlign16(&this->state.tha, size); + func_801C8510_unknown(allocp, file->vromStart, size); + + return allocp; +} +#endif + void Play_InitEnvironment(PlayState* this, s16 skyboxId) { Skybox_Init(&this->state, &this->skyboxCtx, skyboxId); Environment_Init(this, &this->envCtx, 0); @@ -1485,24 +1533,52 @@ void Play_InitScene(PlayState* this, s32 spawn) { } void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn) { - SceneTableEntry* scene = &gSceneTable[sceneId]; + SceneTableEntry* scene; u32 size; +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_48 != NULL)) { + scene = B_80121AF0->unk_48(sceneId, gSceneTable); + } else { + scene = &gSceneTable[sceneId]; + scene->unk_13 = 0; + } +#else + scene = &gSceneTable[sceneId]; scene->unk_13 = 0; +#endif + this->loadedScene = scene; this->sceneId = sceneId; this->sceneDrawConfig = scene->drawConfig; PRINTF("\nSCENE SIZE %fK\n", (scene->sceneFile.vromEnd - scene->sceneFile.vromStart) / 1024.0f); +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (scene->unk_12 > 0)) { + this->sceneSegment = Play_LoadFileFromDiskDrive(this, &scene->sceneFile); + scene->unk_13 = 1; + } else { + this->sceneSegment = Play_LoadFile(this, &scene->sceneFile); + scene->unk_13 = 0; + } +#else this->sceneSegment = Play_LoadFile(this, &scene->sceneFile); scene->unk_13 = 0; +#endif + ASSERT(this->sceneSegment != NULL, "this->sceneSegment != NULL", "../z_play.c", 4960); gSegments[2] = VIRTUAL_TO_PHYSICAL(this->sceneSegment); Play_InitScene(this, spawn); +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_0C != NULL)) { + B_80121AF0->unk_0C(this); + } +#endif + size = func_80096FE8(this, &this->roomCtx); PRINTF("ROOM SIZE=%fK\n", size / 1024.0f); @@ -1798,11 +1874,13 @@ void Play_LoadToLastEntrance(PlayState* this) { (this->sceneId == SCENE_INSIDE_GANONS_CASTLE_COLLAPSE) || (this->sceneId == SCENE_GANON_BOSS)) { this->nextEntranceIndex = ENTR_GANONS_TOWER_COLLAPSE_EXTERIOR_0; Item_Give(this, ITEM_SWORD_MASTER); +#if OOT_VERSION >= PAL_1_1 } else if ((gSaveContext.save.entranceIndex == ENTR_HYRULE_FIELD_11) || (gSaveContext.save.entranceIndex == ENTR_HYRULE_FIELD_12) || (gSaveContext.save.entranceIndex == ENTR_HYRULE_FIELD_13) || (gSaveContext.save.entranceIndex == ENTR_HYRULE_FIELD_15)) { this->nextEntranceIndex = ENTR_HYRULE_FIELD_6; +#endif } else { this->nextEntranceIndex = gSaveContext.save.entranceIndex; } diff --git a/src/code/z_room.c b/src/code/z_room.c index a660d41a33..2b727deea9 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -1,5 +1,9 @@ #include "global.h" +#include "fault.h" #include "terminal.h" +#if PLATFORM_N64 +#include "n64dd.h" +#endif Vec3f D_801270A0 = { 0.0f, 0.0f, 0.0f }; @@ -295,6 +299,7 @@ void Room_DrawBackground2D(Gfx** gfxP, void* tex, void* tlut, u16 width, u16 hei bg = (uObjBg*)(gfx + 1); gSPBranchList(gfx, (Gfx*)(bg + 1)); + gfx = (Gfx*)(bg + 1); bg->b.imageX = 0; bg->b.imageW = width * (1 << 2); @@ -309,8 +314,6 @@ void Room_DrawBackground2D(Gfx** gfxP, void* tex, void* tlut, u16 width, u16 hei bg->b.imagePal = 0; bg->b.imageFlip = 0; - gfx = (Gfx*)(bg + 1); - if (fmt == G_IM_FMT_CI) { gDPLoadTLUT(gfx++, tlutCount, 256, tlut); } else { @@ -441,7 +444,11 @@ RoomShapeImageMultiBgEntry* Room_GetImageMultiBgEntry(RoomShapeImageMulti* roomS PRINTF(VT_COL(RED, WHITE) T("z_room.c:カメラIDに一致するデータが存在しません camid=%d\n", "z_room.c: Data consistent with camera id does not exist camid=%d\n") VT_RST, bgCamIndex); +#if PLATFORM_N64 + Fault_AddHungupAndCrash("../z_room.c", 721); +#else LogUtils_HungupThread("../z_room.c", 726); +#endif return NULL; } @@ -521,7 +528,11 @@ void Room_DrawImage(PlayState* play, Room* room, u32 flags) { } else if (roomShape->amountType == ROOM_SHAPE_IMAGE_AMOUNT_MULTI) { Room_DrawImageMulti(play, room, flags); } else { +#if PLATFORM_N64 + Fault_AddHungupAndCrash("../z_room.c", 836); +#else LogUtils_HungupThread("../z_room.c", 841); +#endif } } @@ -610,10 +621,20 @@ s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum) { (void*)ALIGN16((uintptr_t)roomCtx->bufPtrs[roomCtx->unk_30] - ((size + 8) * roomCtx->unk_30 + 7)); osCreateMesgQueue(&roomCtx->loadQueue, &roomCtx->loadMsg, 1); + +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_08 != NULL)) { + B_80121AF0->unk_08(play, roomCtx, roomNum); + } else { + DMA_REQUEST_ASYNC(&roomCtx->dmaRequest, roomCtx->unk_34, play->roomList[roomNum].vromStart, size, 0, + &roomCtx->loadQueue, NULL, "../z_room.c", 1036); + } +#else DMA_REQUEST_ASYNC(&roomCtx->dmaRequest, roomCtx->unk_34, play->roomList[roomNum].vromStart, size, 0, &roomCtx->loadQueue, NULL, "../z_room.c", 1036); - roomCtx->unk_30 ^= 1; +#endif + roomCtx->unk_30 ^= 1; return true; } diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 60bc1a729f..457c53d6eb 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -1990,7 +1990,7 @@ Play_Main = 0x8009D1B8; // type:func Play_InCsMode = 0x8009D1F8; // type:func func_800BFCB8 = 0x8009D22C; // type:func Play_LoadFile = 0x8009D3D8; // type:func -func_8009D434_unknown = 0x8009D434; // type:func +Play_LoadFileFromDiskDrive = 0x8009D434; // type:func Play_InitEnvironment = 0x8009D490; // type:func Play_InitScene = 0x8009D4D8; // type:func Play_SpawnScene = 0x8009D5DC; // type:func diff --git a/undefined_syms.txt b/undefined_syms.txt index 94e26b9045..7ce3eb5ae1 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -26,6 +26,10 @@ func_801C8510_unknown = 0x801C8510; D_801DA410 = 0x801DA410; D_801E8090 = 0x801E8090; +// game.c +func_801C86F0_unknown = 0x801C86F0; +func_801C7760_unknown = 0x801C7760; + // z_en_mag.c func_801C79BC_unknown = 0x801C79BC; From 27ba989511b7ce74fa5ceb1f9a875edf09c0ea74 Mon Sep 17 00:00:00 2001 From: cadmic Date: Tue, 3 Sep 2024 23:12:33 -0700 Subject: [PATCH 02/86] Match KaleidoScope_DrawEquipment and KaleidoScope_DrawItemSelect (#2125) --- .../ovl_kaleido_scope/z_kaleido_equipment.c | 62 +++++------- .../misc/ovl_kaleido_scope/z_kaleido_item.c | 95 ++++++++----------- 2 files changed, 65 insertions(+), 92 deletions(-) diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c index 8866d63224..e40b9be294 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c @@ -120,22 +120,22 @@ void KaleidoScope_ProcessPlayerPreRender(PlayState* play); void KaleidoScope_DrawEquipment(PlayState* play) { static s16 sEquipTimer = 0; PauseContext* pauseCtx = &play->pauseCtx; + InterfaceContext* interfaceCtx = &play->interfaceCtx; Input* input = &play->state.input[0]; u16 i; u16 j; u16 k; u16 bit; + u16 rowStart; u16 temp; u16 point; - u16 rowStart; - u16 pad; s16 cursorMoveResult; - u16 cursorItem; u16 cursorSlot; - s16 cursorPoint; + u16 cursorItem; s16 cursorX; s16 cursorY; - volatile s16 oldCursorPoint; + s16 oldCursorPoint; + s16 cursorPoint; OPEN_DISPS(play->state.gfxCtx, "../z_kaleido_equipment.c", 219); @@ -170,7 +170,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) { cursorY = pauseCtx->cursorY[PAUSE_EQUIP]; cursorMoveResult = 0; - while (cursorMoveResult == 0) { + do { if (pauseCtx->stickAdjX < -30) { if (pauseCtx->cursorX[PAUSE_EQUIP] != 0) { pauseCtx->cursorX[PAUSE_EQUIP]--; @@ -254,15 +254,13 @@ void KaleidoScope_DrawEquipment(PlayState* play) { } else { cursorMoveResult = 4; } - } + } while (cursorMoveResult == 0); cursorPoint = pauseCtx->cursorPoint[PAUSE_EQUIP]; cursorY = pauseCtx->cursorY[PAUSE_EQUIP]; - if (cursorMoveResult) {} - cursorMoveResult = 0; - while (cursorMoveResult == 0) { + do { if (pauseCtx->stickAdjY > 30) { if (pauseCtx->cursorY[PAUSE_EQUIP] != 0) { pauseCtx->cursorY[PAUSE_EQUIP]--; @@ -306,7 +304,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) { } else { cursorMoveResult = 4; } - } + } while (cursorMoveResult == 0); } else if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) { if (pauseCtx->stickAdjX > 30) { pauseCtx->nameDisplayTimer = 0; @@ -340,19 +338,15 @@ void KaleidoScope_DrawEquipment(PlayState* play) { cursorY = cursorY + 1; cursorPoint = cursorPoint + 4; - if (cursorY < 4) { - continue; + if (cursorY >= 4) { + cursorY = 0; + cursorPoint = cursorX + 1; + cursorX = cursorPoint; + if (cursorX >= 4) { + KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT); + break; + } } - - cursorY = 0; - cursorPoint = cursorX + 1; - cursorX = cursorPoint; - if (cursorX < 4) { - continue; - } - - KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT); - break; } } } else { @@ -381,19 +375,15 @@ void KaleidoScope_DrawEquipment(PlayState* play) { cursorY = cursorY + 1; cursorPoint = cursorPoint + 4; - if (cursorY < 4) { - continue; + if (cursorY >= 4) { + cursorY = 0; + cursorPoint = cursorX - 1; + cursorX = cursorPoint; + if (cursorX < 0) { + KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT); + break; + } } - - cursorY = 0; - cursorPoint = cursorX - 1; - cursorX = cursorPoint; - if (cursorX >= 0) { - continue; - } - - KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT); - break; } } } @@ -599,7 +589,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, pauseCtx->iconItemSegment); gSPSegment(POLY_OPA_DISP++, 0x09, pauseCtx->iconItem24Segment); gSPSegment(POLY_OPA_DISP++, 0x0A, pauseCtx->nameSegment); - gSPSegment(POLY_OPA_DISP++, 0x0B, play->interfaceCtx.mapSegment); + gSPSegment(POLY_OPA_DISP++, 0x0B, interfaceCtx->mapSegment); gSPSegment(POLY_OPA_DISP++, 0x0C, pauseCtx->iconItemAltSegment); Gfx_SetupDL_42Opa(play->state.gfxCtx); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c index 0327e95127..c51530df83 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c @@ -92,7 +92,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { s16 cursorX; s16 cursorY; s16 oldCursorPoint; - s16 moveCursorResult; + s16 cursorMoveResult; OPEN_DISPS(play->state.gfxCtx, "../z_kaleido_item.c", 234); @@ -105,7 +105,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE) && (pauseCtx->pageIndex == PAUSE_ITEM)) { - moveCursorResult = 0; + cursorMoveResult = 0; oldCursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM]; cursorItem = pauseCtx->cursorItem[PAUSE_ITEM]; @@ -118,10 +118,6 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { pauseCtx->stickAdjX = 40; } -#if !OOT_DEBUG - if (&gSaveContext) {} -#endif - if (ABS(pauseCtx->stickAdjX) > 30) { cursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM]; cursorX = pauseCtx->cursorX[PAUSE_ITEM]; @@ -129,13 +125,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { PRINTF("now=%d ccc=%d\n", cursorPoint, cursorItem); -#if OOT_DEBUG - // Seems necessary to match - if (pauseCtx->cursorX[PAUSE_ITEM]) {} - if (gSaveContext.save.info.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]]) {} -#endif - - while (moveCursorResult == 0) { + do { if (pauseCtx->stickAdjX < -30) { if (pauseCtx->cursorX[PAUSE_ITEM] != 0) { pauseCtx->cursorX[PAUSE_ITEM]--; @@ -143,7 +133,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { if (gSaveContext.save.info.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]] != ITEM_NONE) { - moveCursorResult = 1; + cursorMoveResult = 1; } } else { pauseCtx->cursorX[PAUSE_ITEM] = cursorX; @@ -166,7 +156,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT); - moveCursorResult = 2; + cursorMoveResult = 2; } } } else if (pauseCtx->stickAdjX > 30) { @@ -176,7 +166,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { if (gSaveContext.save.info.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]] != ITEM_NONE) { - moveCursorResult = 1; + cursorMoveResult = 1; } } else { pauseCtx->cursorX[PAUSE_ITEM] = cursorX; @@ -199,18 +189,18 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT); - moveCursorResult = 2; + cursorMoveResult = 2; } } } - } + } while (cursorMoveResult == 0); - if (moveCursorResult == 1) { + if (cursorMoveResult == 1) { cursorItem = gSaveContext.save.info.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]]; } PRINTF("【X cursor=%d(%) (cur_xpt=%d)(ok_fg=%d)(ccc=%d)(key_angle=%d)】 ", - pauseCtx->cursorPoint[PAUSE_ITEM], pauseCtx->cursorX[PAUSE_ITEM], moveCursorResult, cursorItem, + pauseCtx->cursorPoint[PAUSE_ITEM], pauseCtx->cursorX[PAUSE_ITEM], cursorMoveResult, cursorItem, pauseCtx->cursorSpecialPos); } } else if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) { @@ -227,25 +217,21 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint; pauseCtx->cursorX[PAUSE_ITEM] = cursorX; pauseCtx->cursorY[PAUSE_ITEM] = cursorY; - moveCursorResult = 1; + cursorMoveResult = 1; break; } cursorY = cursorY + 1; cursorPoint = cursorPoint + 6; - if (cursorY < 4) { - continue; + if (cursorY >= 4) { + cursorY = 0; + cursorPoint = cursorX + 1; + cursorX = cursorPoint; + if (cursorX >= 6) { + KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT); + break; + } } - - cursorY = 0; - cursorPoint = cursorX + 1; - cursorX = cursorPoint; - if (cursorX < 6) { - continue; - } - - KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT); - break; } } } else { @@ -263,25 +249,21 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint; pauseCtx->cursorX[PAUSE_ITEM] = cursorX; pauseCtx->cursorY[PAUSE_ITEM] = cursorY; - moveCursorResult = 1; + cursorMoveResult = 1; break; } cursorY = cursorY + 1; cursorPoint = cursorPoint + 6; - if (cursorY < 4) { - continue; + if (cursorY >= 4) { + cursorY = 0; + cursorPoint = cursorX - 1; + cursorX = cursorPoint; + if (cursorX < 0) { + KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT); + break; + } } - - cursorY = 0; - cursorPoint = cursorX - 1; - cursorX = cursorPoint; - if (cursorX >= 0) { - continue; - } - - KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT); - break; } } } @@ -289,11 +271,11 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { if (pauseCtx->cursorSpecialPos == 0) { if (cursorItem != PAUSE_ITEM_NONE) { if (ABS(pauseCtx->stickAdjY) > 30) { - moveCursorResult = 0; + cursorMoveResult = 0; cursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM]; cursorY = pauseCtx->cursorY[PAUSE_ITEM]; - while (moveCursorResult == 0) { + do { if (pauseCtx->stickAdjY > 30) { if (pauseCtx->cursorY[PAUSE_ITEM] != 0) { pauseCtx->cursorY[PAUSE_ITEM]--; @@ -301,13 +283,13 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { if (gSaveContext.save.info.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]] != ITEM_NONE) { - moveCursorResult = 1; + cursorMoveResult = 1; } } else { pauseCtx->cursorY[PAUSE_ITEM] = cursorY; pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint; - moveCursorResult = 2; + cursorMoveResult = 2; } } else if (pauseCtx->stickAdjY < -30) { if (pauseCtx->cursorY[PAUSE_ITEM] < 3) { @@ -316,20 +298,20 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { if (gSaveContext.save.info.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]] != ITEM_NONE) { - moveCursorResult = 1; + cursorMoveResult = 1; } } else { pauseCtx->cursorY[PAUSE_ITEM] = cursorY; pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint; - moveCursorResult = 2; + cursorMoveResult = 2; } } - } + } while (cursorMoveResult == 0); cursorPoint = PAUSE_ITEM; PRINTF("【Y cursor=%d(%) (cur_ypt=%d)(ok_fg=%d)(ccc=%d)】 ", pauseCtx->cursorPoint[cursorPoint], - pauseCtx->cursorY[PAUSE_ITEM], moveCursorResult, cursorItem); + pauseCtx->cursorY[PAUSE_ITEM], cursorMoveResult, cursorItem); } } @@ -337,9 +319,9 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { pauseCtx->cursorColorSet = 4; - if (moveCursorResult == 1) { + if (cursorMoveResult == 1) { cursorItem = gSaveContext.save.info.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]]; - } else if (moveCursorResult != 2) { + } else if (cursorMoveResult != 2) { cursorItem = gSaveContext.save.info.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]]; } @@ -418,6 +400,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } } else if ((pauseCtx->mainState == PAUSE_MAIN_STATE_3) && (pauseCtx->pageIndex == PAUSE_ITEM)) { + //! @bug cursorSlot is uninitialized KaleidoScope_SetCursorVtx(pauseCtx, cursorSlot * 4, pauseCtx->itemVtx); pauseCtx->cursorColorSet = 4; } From 7937be87e40d55d57d02a8c9dc320641f9b53a31 Mon Sep 17 00:00:00 2001 From: cadmic Date: Tue, 3 Sep 2024 23:54:22 -0700 Subject: [PATCH 03/86] Reorganize z_std_dma.c unused strings (#2121) Co-authored-by: Derek Hensley --- src/boot/z_std_dma.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/boot/z_std_dma.c b/src/boot/z_std_dma.c index 7ee260b901..3f3d7b87cf 100644 --- a/src/boot/z_std_dma.c +++ b/src/boot/z_std_dma.c @@ -347,15 +347,8 @@ const char* DmaMgr_GetFileName(uintptr_t vrom) { return ret; #elif PLATFORM_N64 return "??"; - // Unused strings - (void)""; - (void)"kanji"; - (void)""; - (void)"link_animetion"; #elif PLATFORM_GC return ""; - // Unused strings - (void)""; #endif } @@ -373,6 +366,9 @@ void DmaMgr_ProcessRequest(DmaRequest* req) { #if OOT_DEBUG // Get the filename (for debugging) filename = DmaMgr_GetFileName(vrom); +#elif PLATFORM_GC + // An unused empty string is defined in .rodata of GameCube retail builds, suggesting it was used near here. + filename = ""; #endif // Iterate through the DMA data table until the region containing the vrom address for this request is found @@ -381,6 +377,15 @@ void DmaMgr_ProcessRequest(DmaRequest* req) { if (vrom >= iter->file.vromStart && vrom < iter->file.vromEnd) { // Found the region this request falls into +#if PLATFORM_N64 + // Based on the MM Debug ROM, these strings are part of the condition for the empty if statement below, + // as `... && DmaMgr_StrCmp("", "kanji") != 0 && DmaMgr_StrCmp("", "link_animetion") != 0` + (void)""; + (void)"kanji"; + (void)""; + (void)"link_animetion"; +#endif + if (0) { // The string is defined in .rodata of debug builds but not used, suggesting a debug print is here // but was optimized out in some way. From eab37fe54a5ad7227e7db2fffb290ce3eeed228f Mon Sep 17 00:00:00 2001 From: cadmic Date: Wed, 4 Sep 2024 00:15:52 -0700 Subject: [PATCH 04/86] Run CC_CHECK in CI (#2109) * Run CC_CHECK in CI * Fix n64dd.h (guess this is why we need this change) --- Jenkinsfile | 18 +++++++++--------- include/n64dd.h | 6 +++--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8cebe7dcbb..f18b97e118 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -28,7 +28,7 @@ pipeline { steps { sh 'ln -s /usr/local/etc/roms/oot-ntsc-1.2-us.z64 baseroms/ntsc-1.2/baserom.z64' sh 'make -j setup VERSION=ntsc-1.2' - sh 'make -j RUN_CC_CHECK=0 VERSION=ntsc-1.2' + sh 'make -j VERSION=ntsc-1.2' sh '.venv/bin/python3 tools/check_disasm_metadata_unksyms.py -v ntsc-1.2' sh 'make clean assetclean VERSION=ntsc-1.2' } @@ -40,7 +40,7 @@ pipeline { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-jp.z64 baseroms/gc-jp/baserom.z64' sh 'make -j setup VERSION=gc-jp' - sh 'make -j RUN_CC_CHECK=0 VERSION=gc-jp' + sh 'make -j VERSION=gc-jp' sh 'make clean assetclean VERSION=gc-jp' } } @@ -48,7 +48,7 @@ pipeline { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-eu-mq.z64 baseroms/gc-eu-mq/baserom.z64' sh 'make -j setup VERSION=gc-eu-mq' - sh 'make -j RUN_CC_CHECK=0 VERSION=gc-eu-mq' + sh 'make -j VERSION=gc-eu-mq' sh 'make clean assetclean VERSION=gc-eu-mq' } } @@ -56,7 +56,7 @@ pipeline { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-eu-mq-dbg.z64 baseroms/gc-eu-mq-dbg/baserom.z64' sh 'make -j setup VERSION=gc-eu-mq-dbg' - sh 'make -j RUN_CC_CHECK=0 VERSION=gc-eu-mq-dbg' + sh 'make -j VERSION=gc-eu-mq-dbg' sh 'make clean assetclean VERSION=gc-eu-mq-dbg' } } @@ -64,7 +64,7 @@ pipeline { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-us.z64 baseroms/gc-us/baserom.z64' sh 'make -j setup VERSION=gc-us' - sh 'make -j RUN_CC_CHECK=0 VERSION=gc-us' + sh 'make -j VERSION=gc-us' sh 'make clean assetclean VERSION=gc-us' } } @@ -72,7 +72,7 @@ pipeline { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-jp-ce.z64 baseroms/gc-jp-ce/baserom.z64' sh 'make -j setup VERSION=gc-jp-ce' - sh 'make -j RUN_CC_CHECK=0 VERSION=gc-jp-ce' + sh 'make -j VERSION=gc-jp-ce' sh 'make clean assetclean VERSION=gc-jp-ce' } } @@ -80,7 +80,7 @@ pipeline { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-eu.z64 baseroms/gc-eu/baserom.z64' sh 'make -j setup VERSION=gc-eu' - sh 'make -j RUN_CC_CHECK=0 VERSION=gc-eu' + sh 'make -j VERSION=gc-eu' sh 'make clean assetclean VERSION=gc-eu' } } @@ -88,7 +88,7 @@ pipeline { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-jp-mq.z64 baseroms/gc-jp-mq/baserom.z64' sh 'make -j setup VERSION=gc-jp-mq' - sh 'make -j RUN_CC_CHECK=0 VERSION=gc-jp-mq' + sh 'make -j VERSION=gc-jp-mq' sh 'make clean assetclean VERSION=gc-jp-mq' } } @@ -96,7 +96,7 @@ pipeline { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-us-mq.z64 baseroms/gc-us-mq/baserom.z64' sh 'make -j setup VERSION=gc-us-mq' - sh 'make -j RUN_CC_CHECK=0 VERSION=gc-us-mq' + sh 'make -j VERSION=gc-us-mq' sh 'make clean assetclean VERSION=gc-us-mq' } } diff --git a/include/n64dd.h b/include/n64dd.h index 6a9867fcdc..376665ac32 100644 --- a/include/n64dd.h +++ b/include/n64dd.h @@ -2,12 +2,12 @@ #define N64DD_H #include "ultra64.h" +#include "z64pause.h" #include "z64scene.h" struct GameState; union Gfx; struct PlayState; -struct PauseMapMarksData; struct RegEditor; struct RoomContext; struct SaveContext; @@ -33,8 +33,8 @@ typedef struct n64ddStruct_80121AF0 { void (*unk_10)(struct PlayState* play); void (*unk_14)(struct PlayState* play); char unk_18[0x1C]; - void (*unk_34)(struct PauseMapMarksData**); - void (*unk_38)(struct PauseMapMarksData**); + void (*unk_34)(PauseMapMarksData**); + void (*unk_38)(PauseMapMarksData**); void (*unk_3C)(void); void (*unk_40)(void); s32 (*unk_44)(struct PlayState*); From af24970d8919e4e6bb8356fd5672c938582dfcb8 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 10:29:39 +0200 Subject: [PATCH 05/86] Pause: Name temps in `KaleidoScope_SetVertices` (#2088) * Pause doc: Name temps in `KaleidoScope_SetVertices` * Update src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c Co-authored-by: cadmic --------- Co-authored-by: cadmic --- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 491 ++++++++---------- 1 file changed, 231 insertions(+), 260 deletions(-) diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index ea73202e55..fcf4e2af63 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -2409,11 +2409,11 @@ static s16 D_8082B1F8[] = { void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { PauseContext* pauseCtx = &play->pauseCtx; - s16 phi_t1; - s16 phi_t2; - s16 phi_t3; - s16 phi_t4; - s16 phi_t5; + s16 x; + s16 y; + s16 i; + s16 j; + s16 k; pauseCtx->offsetY = 0; @@ -2431,50 +2431,48 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { if (!sInDungeonScene) { pauseCtx->mapPageVtx = GRAPH_ALLOC(gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_MAP_WORLD_QUADS + 15) * 4) * sizeof(Vtx)); - phi_t3 = KaleidoScope_SetPageVertices(play, pauseCtx->mapPageVtx, VTX_PAGE_MAP_WORLD, VTX_PAGE_MAP_WORLD_QUADS); + j = KaleidoScope_SetPageVertices(play, pauseCtx->mapPageVtx, VTX_PAGE_MAP_WORLD, VTX_PAGE_MAP_WORLD_QUADS); - for (phi_t2 = 0, phi_t5 = 58; phi_t2 < 15; phi_t2++, phi_t3 += 4, phi_t5 -= 9) { - pauseCtx->mapPageVtx[phi_t3 + 2].v.ob[0] = -108; - pauseCtx->mapPageVtx[phi_t3 + 0].v.ob[0] = pauseCtx->mapPageVtx[phi_t3 + 2].v.ob[0]; + for (i = 0, y = 58; i < 15; i++, j += 4, y -= 9) { + pauseCtx->mapPageVtx[j + 2].v.ob[0] = -108; + pauseCtx->mapPageVtx[j + 0].v.ob[0] = pauseCtx->mapPageVtx[j + 2].v.ob[0]; - pauseCtx->mapPageVtx[phi_t3 + 1].v.ob[0] = pauseCtx->mapPageVtx[phi_t3 + 3].v.ob[0] = - pauseCtx->mapPageVtx[phi_t3 + 0].v.ob[0] + 216; + pauseCtx->mapPageVtx[j + 1].v.ob[0] = pauseCtx->mapPageVtx[j + 3].v.ob[0] = + pauseCtx->mapPageVtx[j + 0].v.ob[0] + 216; - pauseCtx->mapPageVtx[phi_t3 + 0].v.ob[1] = pauseCtx->mapPageVtx[phi_t3 + 1].v.ob[1] = - phi_t5 + pauseCtx->offsetY; + pauseCtx->mapPageVtx[j + 0].v.ob[1] = pauseCtx->mapPageVtx[j + 1].v.ob[1] = y + pauseCtx->offsetY; - pauseCtx->mapPageVtx[phi_t3 + 2].v.ob[1] = pauseCtx->mapPageVtx[phi_t3 + 3].v.ob[1] = - pauseCtx->mapPageVtx[phi_t3 + 0].v.ob[1] - 9; + pauseCtx->mapPageVtx[j + 2].v.ob[1] = pauseCtx->mapPageVtx[j + 3].v.ob[1] = + pauseCtx->mapPageVtx[j + 0].v.ob[1] - 9; - pauseCtx->mapPageVtx[phi_t3 + 0].v.ob[2] = pauseCtx->mapPageVtx[phi_t3 + 1].v.ob[2] = - pauseCtx->mapPageVtx[phi_t3 + 2].v.ob[2] = pauseCtx->mapPageVtx[phi_t3 + 3].v.ob[2] = 0; + pauseCtx->mapPageVtx[j + 0].v.ob[2] = pauseCtx->mapPageVtx[j + 1].v.ob[2] = + pauseCtx->mapPageVtx[j + 2].v.ob[2] = pauseCtx->mapPageVtx[j + 3].v.ob[2] = 0; - pauseCtx->mapPageVtx[phi_t3 + 0].v.flag = pauseCtx->mapPageVtx[phi_t3 + 1].v.flag = - pauseCtx->mapPageVtx[phi_t3 + 2].v.flag = pauseCtx->mapPageVtx[phi_t3 + 3].v.flag = 0; + pauseCtx->mapPageVtx[j + 0].v.flag = pauseCtx->mapPageVtx[j + 1].v.flag = + pauseCtx->mapPageVtx[j + 2].v.flag = pauseCtx->mapPageVtx[j + 3].v.flag = 0; - pauseCtx->mapPageVtx[phi_t3 + 0].v.tc[0] = pauseCtx->mapPageVtx[phi_t3 + 0].v.tc[1] = - pauseCtx->mapPageVtx[phi_t3 + 1].v.tc[1] = pauseCtx->mapPageVtx[phi_t3 + 2].v.tc[0] = 0; + pauseCtx->mapPageVtx[j + 0].v.tc[0] = pauseCtx->mapPageVtx[j + 0].v.tc[1] = + pauseCtx->mapPageVtx[j + 1].v.tc[1] = pauseCtx->mapPageVtx[j + 2].v.tc[0] = 0; - pauseCtx->mapPageVtx[phi_t3 + 1].v.tc[0] = pauseCtx->mapPageVtx[phi_t3 + 3].v.tc[0] = 0x1B00; + pauseCtx->mapPageVtx[j + 1].v.tc[0] = pauseCtx->mapPageVtx[j + 3].v.tc[0] = 0x1B00; - pauseCtx->mapPageVtx[phi_t3 + 2].v.tc[1] = pauseCtx->mapPageVtx[phi_t3 + 3].v.tc[1] = 0x120; + pauseCtx->mapPageVtx[j + 2].v.tc[1] = pauseCtx->mapPageVtx[j + 3].v.tc[1] = 0x120; - pauseCtx->mapPageVtx[phi_t3 + 0].v.cn[0] = pauseCtx->mapPageVtx[phi_t3 + 2].v.cn[0] = - pauseCtx->mapPageVtx[phi_t3 + 0].v.cn[1] = pauseCtx->mapPageVtx[phi_t3 + 2].v.cn[1] = - pauseCtx->mapPageVtx[phi_t3 + 0].v.cn[2] = pauseCtx->mapPageVtx[phi_t3 + 2].v.cn[2] = - pauseCtx->mapPageVtx[phi_t3 + 1].v.cn[0] = pauseCtx->mapPageVtx[phi_t3 + 3].v.cn[0] = - pauseCtx->mapPageVtx[phi_t3 + 1].v.cn[1] = pauseCtx->mapPageVtx[phi_t3 + 3].v.cn[1] = - pauseCtx->mapPageVtx[phi_t3 + 1].v.cn[2] = pauseCtx->mapPageVtx[phi_t3 + 3].v.cn[2] = - pauseCtx->mapPageVtx[phi_t3 + 0].v.cn[3] = - pauseCtx->mapPageVtx[phi_t3 + 2].v.cn[3] = - pauseCtx->mapPageVtx[phi_t3 + 1].v.cn[3] = - pauseCtx->mapPageVtx[phi_t3 + 3].v.cn[3] = pauseCtx->alpha; + pauseCtx->mapPageVtx[j + 0].v.cn[0] = pauseCtx->mapPageVtx[j + 2].v.cn[0] = + pauseCtx->mapPageVtx[j + 0].v.cn[1] = pauseCtx->mapPageVtx[j + 2].v.cn[1] = + pauseCtx->mapPageVtx[j + 0].v.cn[2] = pauseCtx->mapPageVtx[j + 2].v.cn[2] = + pauseCtx->mapPageVtx[j + 1].v.cn[0] = pauseCtx->mapPageVtx[j + 3].v.cn[0] = + pauseCtx->mapPageVtx[j + 1].v.cn[1] = pauseCtx->mapPageVtx[j + 3].v.cn[1] = + pauseCtx->mapPageVtx[j + 1].v.cn[2] = pauseCtx->mapPageVtx[j + 3].v.cn[2] = + pauseCtx->mapPageVtx[j + 0].v.cn[3] = pauseCtx->mapPageVtx[j + 2].v.cn[3] = + pauseCtx->mapPageVtx[j + 1].v.cn[3] = pauseCtx->mapPageVtx[j + 3].v.cn[3] = + pauseCtx->alpha; } - pauseCtx->mapPageVtx[phi_t3 - 2].v.ob[1] = pauseCtx->mapPageVtx[phi_t3 - 1].v.ob[1] = - pauseCtx->mapPageVtx[phi_t3 - 4].v.ob[1] - 2; + pauseCtx->mapPageVtx[j - 2].v.ob[1] = pauseCtx->mapPageVtx[j - 1].v.ob[1] = + pauseCtx->mapPageVtx[j - 4].v.ob[1] - 2; - pauseCtx->mapPageVtx[phi_t3 - 2].v.tc[1] = pauseCtx->mapPageVtx[phi_t3 - 1].v.tc[1] = 0x40; + pauseCtx->mapPageVtx[j - 2].v.tc[1] = pauseCtx->mapPageVtx[j - 1].v.tc[1] = 0x40; } else { pauseCtx->mapPageVtx = GRAPH_ALLOC(gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_MAP_DUNGEON_QUADS) * 4) * sizeof(Vtx)); KaleidoScope_SetPageVertices(play, pauseCtx->mapPageVtx, VTX_PAGE_MAP_DUNGEON, VTX_PAGE_MAP_DUNGEON_QUADS); @@ -2485,16 +2483,15 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorVtx = GRAPH_ALLOC(gfxCtx, 20 * sizeof(Vtx)); - for (phi_t2 = 0; phi_t2 < 20; phi_t2++) { - pauseCtx->cursorVtx[phi_t2].v.ob[0] = pauseCtx->cursorVtx[phi_t2].v.ob[1] = - pauseCtx->cursorVtx[phi_t2].v.ob[2] = 0; + for (i = 0; i < 20; i++) { + pauseCtx->cursorVtx[i].v.ob[0] = pauseCtx->cursorVtx[i].v.ob[1] = pauseCtx->cursorVtx[i].v.ob[2] = 0; - pauseCtx->cursorVtx[phi_t2].v.flag = 0; + pauseCtx->cursorVtx[i].v.flag = 0; - pauseCtx->cursorVtx[phi_t2].v.tc[0] = pauseCtx->cursorVtx[phi_t2].v.tc[1] = 0; + pauseCtx->cursorVtx[i].v.tc[0] = pauseCtx->cursorVtx[i].v.tc[1] = 0; - pauseCtx->cursorVtx[phi_t2].v.cn[0] = pauseCtx->cursorVtx[phi_t2].v.cn[1] = - pauseCtx->cursorVtx[phi_t2].v.cn[2] = pauseCtx->cursorVtx[phi_t2].v.cn[3] = 255; + pauseCtx->cursorVtx[i].v.cn[0] = pauseCtx->cursorVtx[i].v.cn[1] = pauseCtx->cursorVtx[i].v.cn[2] = + pauseCtx->cursorVtx[i].v.cn[3] = 255; } pauseCtx->cursorVtx[1].v.tc[0] = pauseCtx->cursorVtx[2].v.tc[1] = pauseCtx->cursorVtx[3].v.tc[0] = @@ -2509,340 +2506,314 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->itemVtx = GRAPH_ALLOC(gfxCtx, 164 * sizeof(Vtx)); - for (phi_t4 = 0, phi_t2 = 0, phi_t5 = 58; phi_t4 < 4; phi_t4++, phi_t5 -= 32) { - for (phi_t1 = -96, phi_t3 = 0; phi_t3 < 6; phi_t3++, phi_t2 += 4, phi_t1 += 32) { - pauseCtx->itemVtx[phi_t2 + 0].v.ob[0] = pauseCtx->itemVtx[phi_t2 + 2].v.ob[0] = phi_t1 + 2; + for (k = 0, i = 0, y = 58; k < 4; k++, y -= 32) { + for (x = -96, j = 0; j < 6; j++, i += 4, x += 32) { + pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] = x + 2; - pauseCtx->itemVtx[phi_t2 + 1].v.ob[0] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[0] = - pauseCtx->itemVtx[phi_t2 + 0].v.ob[0] + 0x1C; + pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] = + pauseCtx->itemVtx[i + 0].v.ob[0] + 0x1C; - pauseCtx->itemVtx[phi_t2 + 0].v.ob[1] = pauseCtx->itemVtx[phi_t2 + 1].v.ob[1] = - phi_t5 + pauseCtx->offsetY - 2; + pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] = y + pauseCtx->offsetY - 2; - pauseCtx->itemVtx[phi_t2 + 2].v.ob[1] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[1] = - pauseCtx->itemVtx[phi_t2 + 0].v.ob[1] - 0x1C; + pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] = + pauseCtx->itemVtx[i + 0].v.ob[1] - 0x1C; - pauseCtx->itemVtx[phi_t2 + 0].v.ob[2] = pauseCtx->itemVtx[phi_t2 + 1].v.ob[2] = - pauseCtx->itemVtx[phi_t2 + 2].v.ob[2] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[2] = 0; + pauseCtx->itemVtx[i + 0].v.ob[2] = pauseCtx->itemVtx[i + 1].v.ob[2] = pauseCtx->itemVtx[i + 2].v.ob[2] = + pauseCtx->itemVtx[i + 3].v.ob[2] = 0; - pauseCtx->itemVtx[phi_t2 + 0].v.flag = pauseCtx->itemVtx[phi_t2 + 1].v.flag = - pauseCtx->itemVtx[phi_t2 + 2].v.flag = pauseCtx->itemVtx[phi_t2 + 3].v.flag = 0; + pauseCtx->itemVtx[i + 0].v.flag = pauseCtx->itemVtx[i + 1].v.flag = pauseCtx->itemVtx[i + 2].v.flag = + pauseCtx->itemVtx[i + 3].v.flag = 0; - pauseCtx->itemVtx[phi_t2 + 0].v.tc[0] = pauseCtx->itemVtx[phi_t2 + 0].v.tc[1] = - pauseCtx->itemVtx[phi_t2 + 1].v.tc[1] = pauseCtx->itemVtx[phi_t2 + 2].v.tc[0] = 0; + pauseCtx->itemVtx[i + 0].v.tc[0] = pauseCtx->itemVtx[i + 0].v.tc[1] = pauseCtx->itemVtx[i + 1].v.tc[1] = + pauseCtx->itemVtx[i + 2].v.tc[0] = 0; - pauseCtx->itemVtx[phi_t2 + 1].v.tc[0] = pauseCtx->itemVtx[phi_t2 + 2].v.tc[1] = - pauseCtx->itemVtx[phi_t2 + 3].v.tc[0] = pauseCtx->itemVtx[phi_t2 + 3].v.tc[1] = 0x400; + pauseCtx->itemVtx[i + 1].v.tc[0] = pauseCtx->itemVtx[i + 2].v.tc[1] = pauseCtx->itemVtx[i + 3].v.tc[0] = + pauseCtx->itemVtx[i + 3].v.tc[1] = 0x400; - pauseCtx->itemVtx[phi_t2 + 0].v.cn[0] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[0] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[0] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[0] = - pauseCtx->itemVtx[phi_t2 + 0].v.cn[1] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[1] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[1] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[1] = - pauseCtx->itemVtx[phi_t2 + 0].v.cn[2] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[2] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[2] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[2] = 255; + pauseCtx->itemVtx[i + 0].v.cn[0] = pauseCtx->itemVtx[i + 1].v.cn[0] = pauseCtx->itemVtx[i + 2].v.cn[0] = + pauseCtx->itemVtx[i + 3].v.cn[0] = pauseCtx->itemVtx[i + 0].v.cn[1] = pauseCtx->itemVtx[i + 1].v.cn[1] = + pauseCtx->itemVtx[i + 2].v.cn[1] = pauseCtx->itemVtx[i + 3].v.cn[1] = + pauseCtx->itemVtx[i + 0].v.cn[2] = pauseCtx->itemVtx[i + 1].v.cn[2] = + pauseCtx->itemVtx[i + 2].v.cn[2] = pauseCtx->itemVtx[i + 3].v.cn[2] = 255; - pauseCtx->itemVtx[phi_t2 + 0].v.cn[3] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[3] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[3] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[3] = 255; + pauseCtx->itemVtx[i + 0].v.cn[3] = pauseCtx->itemVtx[i + 1].v.cn[3] = pauseCtx->itemVtx[i + 2].v.cn[3] = + pauseCtx->itemVtx[i + 3].v.cn[3] = 255; } } - for (phi_t3 = 1; phi_t3 < 4; phi_t3++, phi_t2 += 4) { - if (gSaveContext.save.info.equips.cButtonSlots[phi_t3 - 1] != ITEM_NONE) { - phi_t4 = gSaveContext.save.info.equips.cButtonSlots[phi_t3 - 1] * 4; + for (j = 1; j < 4; j++, i += 4) { + if (gSaveContext.save.info.equips.cButtonSlots[j - 1] != ITEM_NONE) { + k = gSaveContext.save.info.equips.cButtonSlots[j - 1] * 4; - pauseCtx->itemVtx[phi_t2 + 0].v.ob[0] = pauseCtx->itemVtx[phi_t2 + 2].v.ob[0] = - pauseCtx->itemVtx[phi_t4].v.ob[0] - 2; + pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] = pauseCtx->itemVtx[k].v.ob[0] - 2; - pauseCtx->itemVtx[phi_t2 + 1].v.ob[0] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[0] = - pauseCtx->itemVtx[phi_t2 + 0].v.ob[0] + 32; + pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] = pauseCtx->itemVtx[i + 0].v.ob[0] + 32; - pauseCtx->itemVtx[phi_t2 + 0].v.ob[1] = pauseCtx->itemVtx[phi_t2 + 1].v.ob[1] = - pauseCtx->itemVtx[phi_t4].v.ob[1] + 2; + pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] = pauseCtx->itemVtx[k].v.ob[1] + 2; - pauseCtx->itemVtx[phi_t2 + 2].v.ob[1] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[1] = - pauseCtx->itemVtx[phi_t2 + 0].v.ob[1] - 32; + pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] = pauseCtx->itemVtx[i + 0].v.ob[1] - 32; - pauseCtx->itemVtx[phi_t2 + 0].v.ob[2] = pauseCtx->itemVtx[phi_t2 + 1].v.ob[2] = - pauseCtx->itemVtx[phi_t2 + 2].v.ob[2] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[2] = 0; + pauseCtx->itemVtx[i + 0].v.ob[2] = pauseCtx->itemVtx[i + 1].v.ob[2] = pauseCtx->itemVtx[i + 2].v.ob[2] = + pauseCtx->itemVtx[i + 3].v.ob[2] = 0; - pauseCtx->itemVtx[phi_t2 + 0].v.flag = pauseCtx->itemVtx[phi_t2 + 1].v.flag = - pauseCtx->itemVtx[phi_t2 + 2].v.flag = pauseCtx->itemVtx[phi_t2 + 3].v.flag = 0; + pauseCtx->itemVtx[i + 0].v.flag = pauseCtx->itemVtx[i + 1].v.flag = pauseCtx->itemVtx[i + 2].v.flag = + pauseCtx->itemVtx[i + 3].v.flag = 0; - pauseCtx->itemVtx[phi_t2 + 0].v.tc[0] = pauseCtx->itemVtx[phi_t2 + 0].v.tc[1] = - pauseCtx->itemVtx[phi_t2 + 1].v.tc[1] = pauseCtx->itemVtx[phi_t2 + 2].v.tc[0] = 0; + pauseCtx->itemVtx[i + 0].v.tc[0] = pauseCtx->itemVtx[i + 0].v.tc[1] = pauseCtx->itemVtx[i + 1].v.tc[1] = + pauseCtx->itemVtx[i + 2].v.tc[0] = 0; - pauseCtx->itemVtx[phi_t2 + 1].v.tc[0] = pauseCtx->itemVtx[phi_t2 + 2].v.tc[1] = - pauseCtx->itemVtx[phi_t2 + 3].v.tc[0] = pauseCtx->itemVtx[phi_t2 + 3].v.tc[1] = 0x400; + pauseCtx->itemVtx[i + 1].v.tc[0] = pauseCtx->itemVtx[i + 2].v.tc[1] = pauseCtx->itemVtx[i + 3].v.tc[0] = + pauseCtx->itemVtx[i + 3].v.tc[1] = 0x400; - pauseCtx->itemVtx[phi_t2 + 0].v.cn[0] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[0] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[0] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[0] = - pauseCtx->itemVtx[phi_t2 + 0].v.cn[1] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[1] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[1] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[1] = - pauseCtx->itemVtx[phi_t2 + 0].v.cn[2] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[2] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[2] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[2] = 255; + pauseCtx->itemVtx[i + 0].v.cn[0] = pauseCtx->itemVtx[i + 1].v.cn[0] = pauseCtx->itemVtx[i + 2].v.cn[0] = + pauseCtx->itemVtx[i + 3].v.cn[0] = pauseCtx->itemVtx[i + 0].v.cn[1] = pauseCtx->itemVtx[i + 1].v.cn[1] = + pauseCtx->itemVtx[i + 2].v.cn[1] = pauseCtx->itemVtx[i + 3].v.cn[1] = + pauseCtx->itemVtx[i + 0].v.cn[2] = pauseCtx->itemVtx[i + 1].v.cn[2] = + pauseCtx->itemVtx[i + 2].v.cn[2] = pauseCtx->itemVtx[i + 3].v.cn[2] = 255; - pauseCtx->itemVtx[phi_t2 + 0].v.cn[3] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[3] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[3] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[3] = pauseCtx->alpha; + pauseCtx->itemVtx[i + 0].v.cn[3] = pauseCtx->itemVtx[i + 1].v.cn[3] = pauseCtx->itemVtx[i + 2].v.cn[3] = + pauseCtx->itemVtx[i + 3].v.cn[3] = pauseCtx->alpha; } else { - pauseCtx->itemVtx[phi_t2 + 0].v.ob[0] = pauseCtx->itemVtx[phi_t2 + 2].v.ob[0] = -300; + pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] = -300; - pauseCtx->itemVtx[phi_t2 + 1].v.ob[0] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[0] = - pauseCtx->itemVtx[phi_t2 + 0].v.ob[0] + 32; + pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] = pauseCtx->itemVtx[i + 0].v.ob[0] + 32; - pauseCtx->itemVtx[phi_t2 + 0].v.ob[1] = pauseCtx->itemVtx[phi_t2 + 1].v.ob[1] = 300; + pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] = 300; - pauseCtx->itemVtx[phi_t2 + 2].v.ob[1] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[1] = - pauseCtx->itemVtx[phi_t2 + 0].v.ob[1] - 32; + pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] = pauseCtx->itemVtx[i + 0].v.ob[1] - 32; } } - for (phi_t2 = 108, phi_t3 = 0; phi_t3 < 7; phi_t3++) { - phi_t4 = D_8082B11C[phi_t3]; + for (i = 108, j = 0; j < 7; j++) { + k = D_8082B11C[j]; - pauseCtx->itemVtx[phi_t2 + 0].v.ob[0] = pauseCtx->itemVtx[phi_t2 + 2].v.ob[0] = - pauseCtx->itemVtx[phi_t4].v.ob[0]; + pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] = pauseCtx->itemVtx[k].v.ob[0]; - pauseCtx->itemVtx[phi_t2 + 1].v.ob[0] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[0] = - pauseCtx->itemVtx[phi_t2 + 0].v.ob[0] + 8; + pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] = pauseCtx->itemVtx[i + 0].v.ob[0] + 8; - pauseCtx->itemVtx[phi_t2 + 0].v.ob[1] = pauseCtx->itemVtx[phi_t2 + 1].v.ob[1] = - pauseCtx->itemVtx[phi_t4].v.ob[1] - 22; + pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] = pauseCtx->itemVtx[k].v.ob[1] - 22; - pauseCtx->itemVtx[phi_t2 + 2].v.ob[1] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[1] = - pauseCtx->itemVtx[phi_t2 + 0].v.ob[1] - 8; + pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] = pauseCtx->itemVtx[i + 0].v.ob[1] - 8; - pauseCtx->itemVtx[phi_t2 + 4].v.ob[0] = pauseCtx->itemVtx[phi_t2 + 6].v.ob[0] = - pauseCtx->itemVtx[phi_t2 + 0].v.ob[0] + 6; + pauseCtx->itemVtx[i + 4].v.ob[0] = pauseCtx->itemVtx[i + 6].v.ob[0] = pauseCtx->itemVtx[i + 0].v.ob[0] + 6; - pauseCtx->itemVtx[phi_t2 + 5].v.ob[0] = pauseCtx->itemVtx[phi_t2 + 7].v.ob[0] = - pauseCtx->itemVtx[phi_t2 + 4].v.ob[0] + 8; + pauseCtx->itemVtx[i + 5].v.ob[0] = pauseCtx->itemVtx[i + 7].v.ob[0] = pauseCtx->itemVtx[i + 4].v.ob[0] + 8; - pauseCtx->itemVtx[phi_t2 + 4].v.ob[1] = pauseCtx->itemVtx[phi_t2 + 5].v.ob[1] = - pauseCtx->itemVtx[phi_t2 + 0].v.ob[1]; + pauseCtx->itemVtx[i + 4].v.ob[1] = pauseCtx->itemVtx[i + 5].v.ob[1] = pauseCtx->itemVtx[i + 0].v.ob[1]; - pauseCtx->itemVtx[phi_t2 + 6].v.ob[1] = pauseCtx->itemVtx[phi_t2 + 7].v.ob[1] = - pauseCtx->itemVtx[phi_t2 + 4].v.ob[1] - 8; + pauseCtx->itemVtx[i + 6].v.ob[1] = pauseCtx->itemVtx[i + 7].v.ob[1] = pauseCtx->itemVtx[i + 4].v.ob[1] - 8; - for (phi_t4 = 0; phi_t4 < 2; phi_t4++, phi_t2 += 4) { - pauseCtx->itemVtx[phi_t2 + 0].v.ob[2] = pauseCtx->itemVtx[phi_t2 + 1].v.ob[2] = - pauseCtx->itemVtx[phi_t2 + 2].v.ob[2] = pauseCtx->itemVtx[phi_t2 + 3].v.ob[2] = 0; + for (k = 0; k < 2; k++, i += 4) { + pauseCtx->itemVtx[i + 0].v.ob[2] = pauseCtx->itemVtx[i + 1].v.ob[2] = pauseCtx->itemVtx[i + 2].v.ob[2] = + pauseCtx->itemVtx[i + 3].v.ob[2] = 0; - pauseCtx->itemVtx[phi_t2 + 0].v.flag = pauseCtx->itemVtx[phi_t2 + 1].v.flag = - pauseCtx->itemVtx[phi_t2 + 2].v.flag = pauseCtx->itemVtx[phi_t2 + 3].v.flag = 0; + pauseCtx->itemVtx[i + 0].v.flag = pauseCtx->itemVtx[i + 1].v.flag = pauseCtx->itemVtx[i + 2].v.flag = + pauseCtx->itemVtx[i + 3].v.flag = 0; - pauseCtx->itemVtx[phi_t2 + 0].v.tc[0] = pauseCtx->itemVtx[phi_t2 + 0].v.tc[1] = - pauseCtx->itemVtx[phi_t2 + 1].v.tc[1] = pauseCtx->itemVtx[phi_t2 + 2].v.tc[0] = 0; + pauseCtx->itemVtx[i + 0].v.tc[0] = pauseCtx->itemVtx[i + 0].v.tc[1] = pauseCtx->itemVtx[i + 1].v.tc[1] = + pauseCtx->itemVtx[i + 2].v.tc[0] = 0; - pauseCtx->itemVtx[phi_t2 + 1].v.tc[0] = pauseCtx->itemVtx[phi_t2 + 2].v.tc[1] = - pauseCtx->itemVtx[phi_t2 + 3].v.tc[0] = pauseCtx->itemVtx[phi_t2 + 3].v.tc[1] = 0x100; + pauseCtx->itemVtx[i + 1].v.tc[0] = pauseCtx->itemVtx[i + 2].v.tc[1] = pauseCtx->itemVtx[i + 3].v.tc[0] = + pauseCtx->itemVtx[i + 3].v.tc[1] = 0x100; - pauseCtx->itemVtx[phi_t2 + 0].v.cn[0] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[0] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[0] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[0] = - pauseCtx->itemVtx[phi_t2 + 0].v.cn[1] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[1] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[1] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[1] = - pauseCtx->itemVtx[phi_t2 + 0].v.cn[2] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[2] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[2] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[2] = 255; + pauseCtx->itemVtx[i + 0].v.cn[0] = pauseCtx->itemVtx[i + 1].v.cn[0] = pauseCtx->itemVtx[i + 2].v.cn[0] = + pauseCtx->itemVtx[i + 3].v.cn[0] = pauseCtx->itemVtx[i + 0].v.cn[1] = pauseCtx->itemVtx[i + 1].v.cn[1] = + pauseCtx->itemVtx[i + 2].v.cn[1] = pauseCtx->itemVtx[i + 3].v.cn[1] = + pauseCtx->itemVtx[i + 0].v.cn[2] = pauseCtx->itemVtx[i + 1].v.cn[2] = + pauseCtx->itemVtx[i + 2].v.cn[2] = pauseCtx->itemVtx[i + 3].v.cn[2] = 255; - pauseCtx->itemVtx[phi_t2 + 0].v.cn[3] = pauseCtx->itemVtx[phi_t2 + 1].v.cn[3] = - pauseCtx->itemVtx[phi_t2 + 2].v.cn[3] = pauseCtx->itemVtx[phi_t2 + 3].v.cn[3] = pauseCtx->alpha; + pauseCtx->itemVtx[i + 0].v.cn[3] = pauseCtx->itemVtx[i + 1].v.cn[3] = pauseCtx->itemVtx[i + 2].v.cn[3] = + pauseCtx->itemVtx[i + 3].v.cn[3] = pauseCtx->alpha; } } pauseCtx->equipVtx = GRAPH_ALLOC(gfxCtx, 112 * sizeof(Vtx)); - for (phi_t4 = 0, phi_t2 = 0, phi_t5 = 58; phi_t2 < 4; phi_t2++, phi_t5 -= 32) { - for (phi_t3 = 0; phi_t3 < 4; phi_t3++, phi_t4 += 4) { - pauseCtx->equipVtx[phi_t4 + 0].v.ob[0] = pauseCtx->equipVtx[phi_t4 + 2].v.ob[0] = D_8082B12C[phi_t3] + 2; + for (k = 0, i = 0, y = 58; i < 4; i++, y -= 32) { + for (j = 0; j < 4; j++, k += 4) { + pauseCtx->equipVtx[k + 0].v.ob[0] = pauseCtx->equipVtx[k + 2].v.ob[0] = D_8082B12C[j] + 2; - pauseCtx->equipVtx[phi_t4 + 1].v.ob[0] = pauseCtx->equipVtx[phi_t4 + 3].v.ob[0] = - pauseCtx->equipVtx[phi_t4 + 0].v.ob[0] + 28; + pauseCtx->equipVtx[k + 1].v.ob[0] = pauseCtx->equipVtx[k + 3].v.ob[0] = + pauseCtx->equipVtx[k + 0].v.ob[0] + 28; - pauseCtx->equipVtx[phi_t4 + 0].v.ob[1] = pauseCtx->equipVtx[phi_t4 + 1].v.ob[1] = - phi_t5 + pauseCtx->offsetY - 2; + pauseCtx->equipVtx[k + 0].v.ob[1] = pauseCtx->equipVtx[k + 1].v.ob[1] = y + pauseCtx->offsetY - 2; - pauseCtx->equipVtx[phi_t4 + 2].v.ob[1] = pauseCtx->equipVtx[phi_t4 + 3].v.ob[1] = - pauseCtx->equipVtx[phi_t4 + 0].v.ob[1] - 28; + pauseCtx->equipVtx[k + 2].v.ob[1] = pauseCtx->equipVtx[k + 3].v.ob[1] = + pauseCtx->equipVtx[k + 0].v.ob[1] - 28; - pauseCtx->equipVtx[phi_t4 + 0].v.ob[2] = pauseCtx->equipVtx[phi_t4 + 1].v.ob[2] = - pauseCtx->equipVtx[phi_t4 + 2].v.ob[2] = pauseCtx->equipVtx[phi_t4 + 3].v.ob[2] = 0; + pauseCtx->equipVtx[k + 0].v.ob[2] = pauseCtx->equipVtx[k + 1].v.ob[2] = pauseCtx->equipVtx[k + 2].v.ob[2] = + pauseCtx->equipVtx[k + 3].v.ob[2] = 0; - pauseCtx->equipVtx[phi_t4 + 0].v.flag = pauseCtx->equipVtx[phi_t4 + 1].v.flag = - pauseCtx->equipVtx[phi_t4 + 2].v.flag = pauseCtx->equipVtx[phi_t4 + 3].v.flag = 0; + pauseCtx->equipVtx[k + 0].v.flag = pauseCtx->equipVtx[k + 1].v.flag = pauseCtx->equipVtx[k + 2].v.flag = + pauseCtx->equipVtx[k + 3].v.flag = 0; - pauseCtx->equipVtx[phi_t4 + 0].v.tc[0] = pauseCtx->equipVtx[phi_t4 + 0].v.tc[1] = - pauseCtx->equipVtx[phi_t4 + 1].v.tc[1] = pauseCtx->equipVtx[phi_t4 + 2].v.tc[0] = 0; + pauseCtx->equipVtx[k + 0].v.tc[0] = pauseCtx->equipVtx[k + 0].v.tc[1] = pauseCtx->equipVtx[k + 1].v.tc[1] = + pauseCtx->equipVtx[k + 2].v.tc[0] = 0; - pauseCtx->equipVtx[phi_t4 + 1].v.tc[0] = pauseCtx->equipVtx[phi_t4 + 2].v.tc[1] = - pauseCtx->equipVtx[phi_t4 + 3].v.tc[0] = pauseCtx->equipVtx[phi_t4 + 3].v.tc[1] = 0x400; + pauseCtx->equipVtx[k + 1].v.tc[0] = pauseCtx->equipVtx[k + 2].v.tc[1] = pauseCtx->equipVtx[k + 3].v.tc[0] = + pauseCtx->equipVtx[k + 3].v.tc[1] = 0x400; - pauseCtx->equipVtx[phi_t4 + 0].v.cn[0] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[0] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[0] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[0] = - pauseCtx->equipVtx[phi_t4 + 0].v.cn[1] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[1] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[1] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[1] = - pauseCtx->equipVtx[phi_t4 + 0].v.cn[2] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[2] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[2] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[2] = 255; + pauseCtx->equipVtx[k + 0].v.cn[0] = pauseCtx->equipVtx[k + 1].v.cn[0] = pauseCtx->equipVtx[k + 2].v.cn[0] = + pauseCtx->equipVtx[k + 3].v.cn[0] = pauseCtx->equipVtx[k + 0].v.cn[1] = + pauseCtx->equipVtx[k + 1].v.cn[1] = pauseCtx->equipVtx[k + 2].v.cn[1] = + pauseCtx->equipVtx[k + 3].v.cn[1] = pauseCtx->equipVtx[k + 0].v.cn[2] = + pauseCtx->equipVtx[k + 1].v.cn[2] = pauseCtx->equipVtx[k + 2].v.cn[2] = + pauseCtx->equipVtx[k + 3].v.cn[2] = 255; - pauseCtx->equipVtx[phi_t4 + 0].v.cn[3] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[3] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[3] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[3] = pauseCtx->alpha; + pauseCtx->equipVtx[k + 0].v.cn[3] = pauseCtx->equipVtx[k + 1].v.cn[3] = pauseCtx->equipVtx[k + 2].v.cn[3] = + pauseCtx->equipVtx[k + 3].v.cn[3] = pauseCtx->alpha; } } - for (phi_t3 = 0; phi_t3 < 4; phi_t3++, phi_t4 += 4) { - if (CUR_EQUIP_VALUE(phi_t3) != 0) { - phi_t2 = (CUR_EQUIP_VALUE(phi_t3) + D_8082B134[phi_t3] - 1) * 4; + for (j = 0; j < 4; j++, k += 4) { + if (CUR_EQUIP_VALUE(j) != 0) { + i = (CUR_EQUIP_VALUE(j) + D_8082B134[j] - 1) * 4; - pauseCtx->equipVtx[phi_t4 + 0].v.ob[0] = pauseCtx->equipVtx[phi_t4 + 2].v.ob[0] = - pauseCtx->equipVtx[phi_t2].v.ob[0] - 2; + pauseCtx->equipVtx[k + 0].v.ob[0] = pauseCtx->equipVtx[k + 2].v.ob[0] = pauseCtx->equipVtx[i].v.ob[0] - 2; - pauseCtx->equipVtx[phi_t4 + 1].v.ob[0] = pauseCtx->equipVtx[phi_t4 + 3].v.ob[0] = - pauseCtx->equipVtx[phi_t4 + 0].v.ob[0] + 32; + pauseCtx->equipVtx[k + 1].v.ob[0] = pauseCtx->equipVtx[k + 3].v.ob[0] = + pauseCtx->equipVtx[k + 0].v.ob[0] + 32; - pauseCtx->equipVtx[phi_t4 + 0].v.ob[1] = pauseCtx->equipVtx[phi_t4 + 1].v.ob[1] = - pauseCtx->equipVtx[phi_t2].v.ob[1] + 2; + pauseCtx->equipVtx[k + 0].v.ob[1] = pauseCtx->equipVtx[k + 1].v.ob[1] = pauseCtx->equipVtx[i].v.ob[1] + 2; - pauseCtx->equipVtx[phi_t4 + 2].v.ob[1] = pauseCtx->equipVtx[phi_t4 + 3].v.ob[1] = - pauseCtx->equipVtx[phi_t4 + 0].v.ob[1] - 32; + pauseCtx->equipVtx[k + 2].v.ob[1] = pauseCtx->equipVtx[k + 3].v.ob[1] = + pauseCtx->equipVtx[k + 0].v.ob[1] - 32; - pauseCtx->equipVtx[phi_t4 + 0].v.ob[2] = pauseCtx->equipVtx[phi_t4 + 1].v.ob[2] = - pauseCtx->equipVtx[phi_t4 + 2].v.ob[2] = pauseCtx->equipVtx[phi_t4 + 3].v.ob[2] = 0; + pauseCtx->equipVtx[k + 0].v.ob[2] = pauseCtx->equipVtx[k + 1].v.ob[2] = pauseCtx->equipVtx[k + 2].v.ob[2] = + pauseCtx->equipVtx[k + 3].v.ob[2] = 0; - pauseCtx->equipVtx[phi_t4 + 0].v.flag = pauseCtx->equipVtx[phi_t4 + 1].v.flag = - pauseCtx->equipVtx[phi_t4 + 2].v.flag = pauseCtx->equipVtx[phi_t4 + 3].v.flag = 0; + pauseCtx->equipVtx[k + 0].v.flag = pauseCtx->equipVtx[k + 1].v.flag = pauseCtx->equipVtx[k + 2].v.flag = + pauseCtx->equipVtx[k + 3].v.flag = 0; - pauseCtx->equipVtx[phi_t4 + 0].v.tc[0] = pauseCtx->equipVtx[phi_t4 + 0].v.tc[1] = - pauseCtx->equipVtx[phi_t4 + 1].v.tc[1] = pauseCtx->equipVtx[phi_t4 + 2].v.tc[0] = 0; + pauseCtx->equipVtx[k + 0].v.tc[0] = pauseCtx->equipVtx[k + 0].v.tc[1] = pauseCtx->equipVtx[k + 1].v.tc[1] = + pauseCtx->equipVtx[k + 2].v.tc[0] = 0; - pauseCtx->equipVtx[phi_t4 + 1].v.tc[0] = pauseCtx->equipVtx[phi_t4 + 2].v.tc[1] = - pauseCtx->equipVtx[phi_t4 + 3].v.tc[0] = pauseCtx->equipVtx[phi_t4 + 3].v.tc[1] = 0x400; + pauseCtx->equipVtx[k + 1].v.tc[0] = pauseCtx->equipVtx[k + 2].v.tc[1] = pauseCtx->equipVtx[k + 3].v.tc[0] = + pauseCtx->equipVtx[k + 3].v.tc[1] = 0x400; - pauseCtx->equipVtx[phi_t4 + 0].v.cn[0] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[0] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[0] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[0] = - pauseCtx->equipVtx[phi_t4 + 0].v.cn[1] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[1] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[1] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[1] = - pauseCtx->equipVtx[phi_t4 + 0].v.cn[2] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[2] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[2] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[2] = 255; + pauseCtx->equipVtx[k + 0].v.cn[0] = pauseCtx->equipVtx[k + 1].v.cn[0] = pauseCtx->equipVtx[k + 2].v.cn[0] = + pauseCtx->equipVtx[k + 3].v.cn[0] = pauseCtx->equipVtx[k + 0].v.cn[1] = + pauseCtx->equipVtx[k + 1].v.cn[1] = pauseCtx->equipVtx[k + 2].v.cn[1] = + pauseCtx->equipVtx[k + 3].v.cn[1] = pauseCtx->equipVtx[k + 0].v.cn[2] = + pauseCtx->equipVtx[k + 1].v.cn[2] = pauseCtx->equipVtx[k + 2].v.cn[2] = + pauseCtx->equipVtx[k + 3].v.cn[2] = 255; - pauseCtx->equipVtx[phi_t4 + 0].v.cn[3] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[3] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[3] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[3] = pauseCtx->alpha; + pauseCtx->equipVtx[k + 0].v.cn[3] = pauseCtx->equipVtx[k + 1].v.cn[3] = pauseCtx->equipVtx[k + 2].v.cn[3] = + pauseCtx->equipVtx[k + 3].v.cn[3] = pauseCtx->alpha; } } - phi_t1 = 112; - phi_t5 = 50; + x = 112; + y = 50; while (true) { - pauseCtx->equipVtx[phi_t4 + 0].v.ob[0] = pauseCtx->equipVtx[phi_t4 + 2].v.ob[0] = -64; + pauseCtx->equipVtx[k + 0].v.ob[0] = pauseCtx->equipVtx[k + 2].v.ob[0] = -64; - pauseCtx->equipVtx[phi_t4 + 1].v.ob[0] = pauseCtx->equipVtx[phi_t4 + 3].v.ob[0] = - pauseCtx->equipVtx[phi_t4 + 0].v.ob[0] + 64; + pauseCtx->equipVtx[k + 1].v.ob[0] = pauseCtx->equipVtx[k + 3].v.ob[0] = pauseCtx->equipVtx[k + 0].v.ob[0] + 64; - pauseCtx->equipVtx[phi_t4 + 0].v.ob[1] = pauseCtx->equipVtx[phi_t4 + 1].v.ob[1] = phi_t5 + pauseCtx->offsetY; + pauseCtx->equipVtx[k + 0].v.ob[1] = pauseCtx->equipVtx[k + 1].v.ob[1] = y + pauseCtx->offsetY; - pauseCtx->equipVtx[phi_t4 + 2].v.ob[1] = pauseCtx->equipVtx[phi_t4 + 3].v.ob[1] = - pauseCtx->equipVtx[phi_t4 + 0].v.ob[1] - 32; + pauseCtx->equipVtx[k + 2].v.ob[1] = pauseCtx->equipVtx[k + 3].v.ob[1] = pauseCtx->equipVtx[k + 0].v.ob[1] - 32; - pauseCtx->equipVtx[phi_t4 + 0].v.ob[2] = pauseCtx->equipVtx[phi_t4 + 1].v.ob[2] = - pauseCtx->equipVtx[phi_t4 + 2].v.ob[2] = pauseCtx->equipVtx[phi_t4 + 3].v.ob[2] = 0; + pauseCtx->equipVtx[k + 0].v.ob[2] = pauseCtx->equipVtx[k + 1].v.ob[2] = pauseCtx->equipVtx[k + 2].v.ob[2] = + pauseCtx->equipVtx[k + 3].v.ob[2] = 0; - pauseCtx->equipVtx[phi_t4 + 0].v.flag = pauseCtx->equipVtx[phi_t4 + 1].v.flag = - pauseCtx->equipVtx[phi_t4 + 2].v.flag = pauseCtx->equipVtx[phi_t4 + 3].v.flag = 0; + pauseCtx->equipVtx[k + 0].v.flag = pauseCtx->equipVtx[k + 1].v.flag = pauseCtx->equipVtx[k + 2].v.flag = + pauseCtx->equipVtx[k + 3].v.flag = 0; - pauseCtx->equipVtx[phi_t4 + 0].v.tc[0] = pauseCtx->equipVtx[phi_t4 + 0].v.tc[1] = - pauseCtx->equipVtx[phi_t4 + 1].v.tc[1] = pauseCtx->equipVtx[phi_t4 + 2].v.tc[0] = 0; + pauseCtx->equipVtx[k + 0].v.tc[0] = pauseCtx->equipVtx[k + 0].v.tc[1] = pauseCtx->equipVtx[k + 1].v.tc[1] = + pauseCtx->equipVtx[k + 2].v.tc[0] = 0; - pauseCtx->equipVtx[phi_t4 + 1].v.tc[0] = pauseCtx->equipVtx[phi_t4 + 3].v.tc[0] = 0x800; + pauseCtx->equipVtx[k + 1].v.tc[0] = pauseCtx->equipVtx[k + 3].v.tc[0] = 0x800; - pauseCtx->equipVtx[phi_t4 + 2].v.tc[1] = pauseCtx->equipVtx[phi_t4 + 3].v.tc[1] = 0x400; + pauseCtx->equipVtx[k + 2].v.tc[1] = pauseCtx->equipVtx[k + 3].v.tc[1] = 0x400; - pauseCtx->equipVtx[phi_t4 + 0].v.cn[0] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[0] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[0] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[0] = - pauseCtx->equipVtx[phi_t4 + 0].v.cn[1] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[1] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[1] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[1] = - pauseCtx->equipVtx[phi_t4 + 0].v.cn[2] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[2] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[2] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[2] = 255; + pauseCtx->equipVtx[k + 0].v.cn[0] = pauseCtx->equipVtx[k + 1].v.cn[0] = pauseCtx->equipVtx[k + 2].v.cn[0] = + pauseCtx->equipVtx[k + 3].v.cn[0] = pauseCtx->equipVtx[k + 0].v.cn[1] = pauseCtx->equipVtx[k + 1].v.cn[1] = + pauseCtx->equipVtx[k + 2].v.cn[1] = pauseCtx->equipVtx[k + 3].v.cn[1] = + pauseCtx->equipVtx[k + 0].v.cn[2] = pauseCtx->equipVtx[k + 1].v.cn[2] = + pauseCtx->equipVtx[k + 2].v.cn[2] = pauseCtx->equipVtx[k + 3].v.cn[2] = 255; - pauseCtx->equipVtx[phi_t4 + 0].v.cn[3] = pauseCtx->equipVtx[phi_t4 + 1].v.cn[3] = - pauseCtx->equipVtx[phi_t4 + 2].v.cn[3] = pauseCtx->equipVtx[phi_t4 + 3].v.cn[3] = pauseCtx->alpha; + pauseCtx->equipVtx[k + 0].v.cn[3] = pauseCtx->equipVtx[k + 1].v.cn[3] = pauseCtx->equipVtx[k + 2].v.cn[3] = + pauseCtx->equipVtx[k + 3].v.cn[3] = pauseCtx->alpha; - phi_t1 -= 32; - phi_t5 -= 32; - if (phi_t1 < 0) { - pauseCtx->equipVtx[phi_t4 + 2].v.ob[1] = pauseCtx->equipVtx[phi_t4 + 3].v.ob[1] = - pauseCtx->equipVtx[phi_t4 + 0].v.ob[1] - 0x10; + x -= 32; + y -= 32; + if (x < 0) { + pauseCtx->equipVtx[k + 2].v.ob[1] = pauseCtx->equipVtx[k + 3].v.ob[1] = + pauseCtx->equipVtx[k + 0].v.ob[1] - 0x10; - pauseCtx->equipVtx[phi_t4 + 2].v.tc[1] = pauseCtx->equipVtx[phi_t4 + 3].v.tc[1] = 0x200; + pauseCtx->equipVtx[k + 2].v.tc[1] = pauseCtx->equipVtx[k + 3].v.tc[1] = 0x200; break; } - phi_t4 += 4; + k += 4; } pauseCtx->questVtx = GRAPH_ALLOC(gfxCtx, 188 * sizeof(Vtx)); - for (phi_t4 = 0, phi_t3 = 0; phi_t3 < 47; phi_t3++, phi_t4 += 4) { - s16 phi_t2_2 = D_8082B1F8[phi_t3]; + for (k = 0, j = 0; j < 47; j++, k += 4) { + s16 phi_t2_2 = D_8082B1F8[j]; - if ((phi_t3 < 6) || (phi_t3 >= 41)) { - pauseCtx->questVtx[phi_t4 + 0].v.ob[0] = pauseCtx->questVtx[phi_t4 + 2].v.ob[0] = D_8082B138[phi_t3]; + if ((j < 6) || (j >= 41)) { + pauseCtx->questVtx[k + 0].v.ob[0] = pauseCtx->questVtx[k + 2].v.ob[0] = D_8082B138[j]; - pauseCtx->questVtx[phi_t4 + 1].v.ob[0] = pauseCtx->questVtx[phi_t4 + 3].v.ob[0] = - pauseCtx->questVtx[phi_t4 + 0].v.ob[0] + D_8082B1F8[phi_t3]; + pauseCtx->questVtx[k + 1].v.ob[0] = pauseCtx->questVtx[k + 3].v.ob[0] = + pauseCtx->questVtx[k + 0].v.ob[0] + D_8082B1F8[j]; - pauseCtx->questVtx[phi_t4 + 0].v.ob[1] = pauseCtx->questVtx[phi_t4 + 1].v.ob[1] = - D_8082B198[phi_t3] + pauseCtx->offsetY; + pauseCtx->questVtx[k + 0].v.ob[1] = pauseCtx->questVtx[k + 1].v.ob[1] = D_8082B198[j] + pauseCtx->offsetY; - pauseCtx->questVtx[phi_t4 + 2].v.ob[1] = pauseCtx->questVtx[phi_t4 + 3].v.ob[1] = - pauseCtx->questVtx[phi_t4 + 0].v.ob[1] - D_8082B1F8[phi_t3]; + pauseCtx->questVtx[k + 2].v.ob[1] = pauseCtx->questVtx[k + 3].v.ob[1] = + pauseCtx->questVtx[k + 0].v.ob[1] - D_8082B1F8[j]; - if (phi_t3 >= 41) { - pauseCtx->questVtx[phi_t4 + 1].v.ob[0] = pauseCtx->questVtx[phi_t4 + 3].v.ob[0] = - pauseCtx->questVtx[phi_t4 + 0].v.ob[0] + 8; + if (j >= 41) { + pauseCtx->questVtx[k + 1].v.ob[0] = pauseCtx->questVtx[k + 3].v.ob[0] = + pauseCtx->questVtx[k + 0].v.ob[0] + 8; - pauseCtx->questVtx[phi_t4 + 0].v.ob[1] = pauseCtx->questVtx[phi_t4 + 1].v.ob[1] = - D_8082B198[phi_t3] + pauseCtx->offsetY - 6; + pauseCtx->questVtx[k + 0].v.ob[1] = pauseCtx->questVtx[k + 1].v.ob[1] = + D_8082B198[j] + pauseCtx->offsetY - 6; - pauseCtx->questVtx[phi_t4 + 2].v.ob[1] = pauseCtx->questVtx[phi_t4 + 3].v.ob[1] = - pauseCtx->questVtx[phi_t4 + 0].v.ob[1] - 16; + pauseCtx->questVtx[k + 2].v.ob[1] = pauseCtx->questVtx[k + 3].v.ob[1] = + pauseCtx->questVtx[k + 0].v.ob[1] - 16; phi_t2_2 = 8; } } else { - if ((phi_t3 >= 6) && (phi_t3 <= 17)) { + if ((j >= 6) && (j <= 17)) { phi_t2_2 = 16; } - pauseCtx->questVtx[phi_t4 + 0].v.ob[0] = pauseCtx->questVtx[phi_t4 + 2].v.ob[0] = D_8082B138[phi_t3] + 2; + pauseCtx->questVtx[k + 0].v.ob[0] = pauseCtx->questVtx[k + 2].v.ob[0] = D_8082B138[j] + 2; - pauseCtx->questVtx[phi_t4 + 1].v.ob[0] = pauseCtx->questVtx[phi_t4 + 3].v.ob[0] = - pauseCtx->questVtx[phi_t4 + 0].v.ob[0] + phi_t2_2 - 4; + pauseCtx->questVtx[k + 1].v.ob[0] = pauseCtx->questVtx[k + 3].v.ob[0] = + pauseCtx->questVtx[k + 0].v.ob[0] + phi_t2_2 - 4; - pauseCtx->questVtx[phi_t4 + 0].v.ob[1] = pauseCtx->questVtx[phi_t4 + 1].v.ob[1] = - D_8082B198[phi_t3] + pauseCtx->offsetY - 2; + pauseCtx->questVtx[k + 0].v.ob[1] = pauseCtx->questVtx[k + 1].v.ob[1] = + D_8082B198[j] + pauseCtx->offsetY - 2; - pauseCtx->questVtx[phi_t4 + 2].v.ob[1] = pauseCtx->questVtx[phi_t4 + 3].v.ob[1] = - pauseCtx->questVtx[phi_t4 + 0].v.ob[1] - D_8082B1F8[phi_t3] + 4; + pauseCtx->questVtx[k + 2].v.ob[1] = pauseCtx->questVtx[k + 3].v.ob[1] = + pauseCtx->questVtx[k + 0].v.ob[1] - D_8082B1F8[j] + 4; } - pauseCtx->questVtx[phi_t4 + 0].v.ob[2] = pauseCtx->questVtx[phi_t4 + 1].v.ob[2] = - pauseCtx->questVtx[phi_t4 + 2].v.ob[2] = pauseCtx->questVtx[phi_t4 + 3].v.ob[2] = 0; + pauseCtx->questVtx[k + 0].v.ob[2] = pauseCtx->questVtx[k + 1].v.ob[2] = pauseCtx->questVtx[k + 2].v.ob[2] = + pauseCtx->questVtx[k + 3].v.ob[2] = 0; - pauseCtx->questVtx[phi_t4 + 0].v.flag = pauseCtx->questVtx[phi_t4 + 1].v.flag = - pauseCtx->questVtx[phi_t4 + 2].v.flag = pauseCtx->questVtx[phi_t4 + 3].v.flag = 0; + pauseCtx->questVtx[k + 0].v.flag = pauseCtx->questVtx[k + 1].v.flag = pauseCtx->questVtx[k + 2].v.flag = + pauseCtx->questVtx[k + 3].v.flag = 0; - pauseCtx->questVtx[phi_t4 + 0].v.tc[0] = pauseCtx->questVtx[phi_t4 + 0].v.tc[1] = - pauseCtx->questVtx[phi_t4 + 1].v.tc[1] = pauseCtx->questVtx[phi_t4 + 2].v.tc[0] = 0; + pauseCtx->questVtx[k + 0].v.tc[0] = pauseCtx->questVtx[k + 0].v.tc[1] = pauseCtx->questVtx[k + 1].v.tc[1] = + pauseCtx->questVtx[k + 2].v.tc[0] = 0; - pauseCtx->questVtx[phi_t4 + 1].v.tc[0] = pauseCtx->questVtx[phi_t4 + 3].v.tc[0] = phi_t2_2 << 5; - pauseCtx->questVtx[phi_t4 + 2].v.tc[1] = pauseCtx->questVtx[phi_t4 + 3].v.tc[1] = D_8082B1F8[phi_t3] << 5; + pauseCtx->questVtx[k + 1].v.tc[0] = pauseCtx->questVtx[k + 3].v.tc[0] = phi_t2_2 << 5; + pauseCtx->questVtx[k + 2].v.tc[1] = pauseCtx->questVtx[k + 3].v.tc[1] = D_8082B1F8[j] << 5; - pauseCtx->questVtx[phi_t4 + 0].v.cn[0] = pauseCtx->questVtx[phi_t4 + 1].v.cn[0] = - pauseCtx->questVtx[phi_t4 + 2].v.cn[0] = pauseCtx->questVtx[phi_t4 + 3].v.cn[0] = - pauseCtx->questVtx[phi_t4 + 0].v.cn[1] = pauseCtx->questVtx[phi_t4 + 1].v.cn[1] = - pauseCtx->questVtx[phi_t4 + 2].v.cn[1] = pauseCtx->questVtx[phi_t4 + 3].v.cn[1] = - pauseCtx->questVtx[phi_t4 + 0].v.cn[2] = pauseCtx->questVtx[phi_t4 + 1].v.cn[2] = - pauseCtx->questVtx[phi_t4 + 2].v.cn[2] = pauseCtx->questVtx[phi_t4 + 3].v.cn[2] = 255; + pauseCtx->questVtx[k + 0].v.cn[0] = pauseCtx->questVtx[k + 1].v.cn[0] = pauseCtx->questVtx[k + 2].v.cn[0] = + pauseCtx->questVtx[k + 3].v.cn[0] = pauseCtx->questVtx[k + 0].v.cn[1] = pauseCtx->questVtx[k + 1].v.cn[1] = + pauseCtx->questVtx[k + 2].v.cn[1] = pauseCtx->questVtx[k + 3].v.cn[1] = + pauseCtx->questVtx[k + 0].v.cn[2] = pauseCtx->questVtx[k + 1].v.cn[2] = + pauseCtx->questVtx[k + 2].v.cn[2] = pauseCtx->questVtx[k + 3].v.cn[2] = 255; - pauseCtx->questVtx[phi_t4 + 0].v.cn[3] = pauseCtx->questVtx[phi_t4 + 1].v.cn[3] = - pauseCtx->questVtx[phi_t4 + 2].v.cn[3] = pauseCtx->questVtx[phi_t4 + 3].v.cn[3] = pauseCtx->alpha; + pauseCtx->questVtx[k + 0].v.cn[3] = pauseCtx->questVtx[k + 1].v.cn[3] = pauseCtx->questVtx[k + 2].v.cn[3] = + pauseCtx->questVtx[k + 3].v.cn[3] = pauseCtx->alpha; } pauseCtx->infoPanelVtx = GRAPH_ALLOC(gfxCtx, 28 * sizeof(Vtx)); From c6d7cc7697c67989b1f018ae2bc934f6677c09b7 Mon Sep 17 00:00:00 2001 From: cadmic Date: Wed, 4 Sep 2024 02:10:14 -0700 Subject: [PATCH 06/86] [ntsc-1.2] Match __osMalloc.c and code_800FC620.c (new/delete) (#2106) * Match __osMalloc * Match src/code/code_800FC620.c (new/delete) * Wrap versions-specific files in ifdefs to fix compilation * Fix bss * Remove {FAULT,RAND,OSMALLOC}_VERSION in favor of PLATFORM_N64 * Fix __osMalloc data splits, add unused strings * __osMalloc.h -> osMalloc.h * Fix merge --- Makefile | 3 +- include/fault.h | 15 +- include/functions.h | 24 +- include/padmgr.h | 2 +- include/rand.h | 3 +- include/variables.h | 4 +- include/versions.h | 16 - include/z64.h | 27 -- osMalloc.h | 72 ++++ spec | 10 +- src/boot/sprintf.c | 5 + src/code/{__osMalloc.c => __osMalloc_gc.c} | 48 ++- src/code/__osMalloc_n64.c | 474 +++++++++++++++++++++ src/code/code_800FC620.c | 65 ++- src/code/debug_malloc.c | 3 +- src/code/fault_gc.c | 10 +- src/code/fault_gc_drawer.c | 11 +- src/code/fault_n64.c | 11 +- src/code/game.c | 1 + src/code/rand.c | 13 +- src/code/system_malloc.c | 13 +- src/code/z_malloc.c | 3 +- tools/disasm/ntsc-1.2/files_code.csv | 6 +- tools/disasm/ntsc-1.2/functions.txt | 2 +- 24 files changed, 682 insertions(+), 159 deletions(-) create mode 100644 osMalloc.h rename src/code/{__osMalloc.c => __osMalloc_gc.c} (96%) create mode 100644 src/code/__osMalloc_n64.c diff --git a/Makefile b/Makefile index f32eb17a2b..1a79bef8fe 100644 --- a/Makefile +++ b/Makefile @@ -425,7 +425,8 @@ $(BUILD_DIR)/src/boot/sleep.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/boot/sprintf.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/boot/stackcheck.o: OPTFLAGS := -O2 -$(BUILD_DIR)/src/code/__osMalloc.o: OPTFLAGS := -O2 +$(BUILD_DIR)/src/code/__osMalloc_n64.o: OPTFLAGS := -O2 +$(BUILD_DIR)/src/code/__osMalloc_gc.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/code_800FC620.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/fp_math.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/rand.o: OPTFLAGS := -O2 diff --git a/include/fault.h b/include/fault.h index 4ecb17aea0..ac63a234db 100644 --- a/include/fault.h +++ b/include/fault.h @@ -4,9 +4,8 @@ #include "ultra64.h" #include "attributes.h" #include "padmgr.h" -#include "versions.h" -#if FAULT_VERSION == FAULT_GC +#if PLATFORM_GC // These are the same as the 3-bit ansi color codes #define FAULT_COLOR_BLACK 0 #define FAULT_COLOR_RED 1 @@ -34,7 +33,7 @@ typedef struct FaultClient { /* 0x0C */ void* arg1; } FaultClient; // size = 0x10 -#if FAULT_VERSION == FAULT_GC +#if PLATFORM_GC typedef struct FaultAddrConvClient { /* 0x00 */ struct FaultAddrConvClient* next; /* 0x04 */ void* callback; @@ -56,7 +55,7 @@ NORETURN void Fault_AddHungupAndCrash(const char* file, int line); void Fault_AddClient(FaultClient* client, void* callback, void* arg0, void* arg1); void Fault_RemoveClient(FaultClient* client); -#if FAULT_VERSION == FAULT_GC +#if PLATFORM_GC void Fault_AddAddrConvClient(FaultAddrConvClient* client, void* callback, void* arg); void Fault_RemoveAddrConvClient(FaultAddrConvClient* client); #endif @@ -71,13 +70,13 @@ void Fault_SetCursor(s32 x, s32 y); s32 Fault_Printf(const char* fmt, ...); void Fault_DrawText(s32 x, s32 y, const char* fmt, ...); -#if FAULT_VERSION == FAULT_N64 +#if PLATFORM_N64 // Not implemented. Silently noop-ing is fine, these are not essential for functionality. #define Fault_SetFontColor(color) (void)0 #define Fault_SetCharPad(padW, padH) (void)0 -#elif FAULT_VERSION == FAULT_GC +#else void Fault_InitDrawer(void); void Fault_SetForeColor(u16 color); @@ -88,13 +87,13 @@ s32 Fault_VPrintf(const char* fmt, va_list args); #endif -#if FAULT_VERSION == FAULT_N64 +#if PLATFORM_N64 extern vs32 gFaultMsgId; #define FAULT_MSG_ID gFaultMsgId -#elif FAULT_VERSION == FAULT_GC +#else typedef struct FaultMgr { /* 0x000 */ OSThread thread; diff --git a/include/functions.h b/include/functions.h index 7ca8a2ae27..6ad09a447c 100644 --- a/include/functions.h +++ b/include/functions.h @@ -862,7 +862,7 @@ void ZeldaArena_GetSizes(u32* outMaxFree, u32* outFree, u32* outAlloc); void ZeldaArena_Check(void); void ZeldaArena_Init(void* start, u32 size); void ZeldaArena_Cleanup(void); -u8 ZeldaArena_IsInitialized(void); +s32 ZeldaArena_IsInitialized(void); #if OOT_DEBUG void ZeldaArena_CheckPointer(void* ptr, u32 size, const char* name, const char* action); void* ZeldaArena_MallocDebug(u32 size, const char* file, int line); @@ -1323,7 +1323,7 @@ void DebugArena_GetSizes(u32* outMaxFree, u32* outFree, u32* outAlloc); void DebugArena_Check(void); void DebugArena_Init(void* start, u32 size); void DebugArena_Cleanup(void); -u8 DebugArena_IsInitialized(void); +s32 DebugArena_IsInitialized(void); #if OOT_DEBUG void DebugArena_CheckPointer(void* ptr, u32 size, const char* name, const char* action); void* DebugArena_MallocDebug(u32 size, const char* file, int line); @@ -1593,7 +1593,7 @@ void SystemArena_GetSizes(u32* outMaxFree, u32* outFree, u32* outAlloc); void SystemArena_Check(void); void SystemArena_Init(void* start, u32 size); void SystemArena_Cleanup(void); -u8 SystemArena_IsInitialized(void); +s32 SystemArena_IsInitialized(void); #if OOT_DEBUG void* SystemArena_MallocDebug(u32 size, const char* file, int line); void* SystemArena_MallocRDebug(u32 size, const char* file, int line); @@ -1601,24 +1601,6 @@ 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 - -void __osMallocInit(Arena* arena, void* start, u32 size); -void __osMallocAddBlock(Arena* arena, void* start, s32 size); -void __osMallocCleanup(Arena* arena); -u8 __osMallocIsInitialized(Arena* arena); -void* __osMalloc(Arena* arena, u32 size); -void* __osMallocR(Arena* arena, u32 size); -void __osFree(Arena* arena, void* ptr); -void* __osRealloc(Arena* arena, void* ptr, u32 newSize); -void ArenaImpl_GetSizes(Arena* arena, u32* outMaxFree, u32* outFree, u32* outAlloc); -u32 __osCheckArena(Arena* arena); -#if OOT_DEBUG -void* __osMallocDebug(Arena* arena, u32 size, const char* file, int line); -void* __osMallocRDebug(Arena* arena, u32 size, const char* file, int line); -void __osFreeDebug(Arena* arena, void* ptr, const char* file, int line); -void* __osReallocDebug(Arena* arena, void* ptr, u32 newSize, const char* file, int line); -void __osDisplayArena(Arena* arena); -#endif s32 PrintUtils_VPrintf(PrintCallback* pfn, const char* fmt, va_list args); s32 PrintUtils_Printf(PrintCallback* pfn, const char* fmt, ...); void Sleep_Cycles(OSTime cycles); diff --git a/include/padmgr.h b/include/padmgr.h index efd245c7d5..7078c90078 100644 --- a/include/padmgr.h +++ b/include/padmgr.h @@ -53,7 +53,7 @@ void PadMgr_Init(PadMgr* padMgr, OSMesgQueue* serialEventQueue, IrqMgr* irqMgr, // This function cannot be prototyped here in all configurations because it is called incorrectly in fault_gc.c // (see bug in `Fault_PadCallback`) -#if FAULT_VERSION == FAULT_N64 || defined(AVOID_UB) +#if PLATFORM_N64 || defined(AVOID_UB) void PadMgr_RequestPadData(PadMgr* padmgr, Input* inputs, s32 gameRequest); #endif diff --git a/include/rand.h b/include/rand.h index a1a6a7c165..79ced24ea1 100644 --- a/include/rand.h +++ b/include/rand.h @@ -2,7 +2,6 @@ #define RAND_H #include "ultra64.h" -#include "versions.h" u32 Rand_Next(void); void Rand_Seed(u32 seed); @@ -11,7 +10,7 @@ void Rand_Seed_Variable(u32* rndNum, u32 seed); u32 Rand_Next_Variable(u32* rndNum); f32 Rand_ZeroOne_Variable(u32* rndNum); -#if RAND_VERSION == RAND_GC +#if PLATFORM_GC f32 Rand_Centered(void); f32 Rand_Centered_Variable(u32* rndNum); #endif diff --git a/include/variables.h b/include/variables.h index 739a768185..fa09f0f54f 100644 --- a/include/variables.h +++ b/include/variables.h @@ -2,6 +2,7 @@ #define VARIABLES_H #include "z64.h" +#include "osMalloc.h" #include "segment_symbols.h" extern Mtx D_01000000; @@ -234,7 +235,6 @@ extern ActiveSequence gActiveSeqs[4]; extern AudioContext gAudioCtx; extern AudioCustomUpdateFunction gAudioCustomUpdateFunction; -extern u32 __osMalloc_FreeBlockTest_Enable; extern Arena gSystemArena; extern OSPifRam __osContPifRam; extern u8 __osContLastCmd; @@ -248,6 +248,4 @@ extern u64 gGfxSPTaskStack[SP_DRAM_STACK_SIZE64]; // 0x400 bytes extern GfxPool gGfxPools[2]; // 0x24820 bytes extern u8 gAudioHeap[0x38000]; // 0x38000 bytes -extern u32 gTotalAllocFailures; - #endif diff --git a/include/versions.h b/include/versions.h index 1112ac01f7..b135ae390c 100644 --- a/include/versions.h +++ b/include/versions.h @@ -16,20 +16,4 @@ #define GC_EU_MQ 12 #define GC_JP_CE 13 -#define FAULT_N64 1 // in OoT N64 -#define FAULT_GC 2 // in OoT GC -#if PLATFORM_N64 -#define FAULT_VERSION FAULT_N64 -#else -#define FAULT_VERSION FAULT_GC -#endif - -#define RAND_N64 1 // in OoT N64 -#define RAND_GC 2 // in OoT GC -#if PLATFORM_N64 -#define RAND_VERSION RAND_N64 -#else -#define RAND_VERSION RAND_GC -#endif - #endif diff --git a/include/z64.h b/include/z64.h index 6b6cfb284a..02cdafb49a 100644 --- a/include/z64.h +++ b/include/z64.h @@ -439,33 +439,6 @@ typedef struct Yaz0Header { /* 0x0C */ u32 uncompDataOffset; // only used in mio0 } Yaz0Header; // size = 0x10 -struct ArenaNode; - -typedef struct Arena { - /* 0x00 */ struct ArenaNode* head; - /* 0x04 */ void* start; - /* 0x08 */ OSMesgQueue lockQueue; - /* 0x20 */ u8 allocFailures; // only used in non-debug builds - /* 0x21 */ u8 isInit; - /* 0x22 */ u8 flag; -} Arena; // size = 0x24 - -typedef struct ArenaNode { - /* 0x00 */ s16 magic; - /* 0x02 */ s16 isFree; - /* 0x04 */ u32 size; - /* 0x08 */ struct ArenaNode* next; - /* 0x0C */ struct ArenaNode* prev; -#if OOT_DEBUG // TODO: This debug info is also present in N64 retail builds - /* 0x10 */ const char* filename; - /* 0x14 */ int line; - /* 0x18 */ OSId threadId; - /* 0x1C */ Arena* arena; - /* 0x20 */ OSTime time; - /* 0x28 */ u8 unk_28[0x30-0x28]; // probably padding -#endif -} ArenaNode; // size = 0x30 - /* Relocation entry field getters */ #define RELOC_SECTION(reloc) ((reloc) >> 30) #define RELOC_OFFSET(reloc) ((reloc) & 0xFFFFFF) diff --git a/osMalloc.h b/osMalloc.h new file mode 100644 index 0000000000..5fb8dd8e4d --- /dev/null +++ b/osMalloc.h @@ -0,0 +1,72 @@ +#ifndef OSMALLOC_H +#define OSMALLOC_H + +#include "ultra64.h" + +struct ArenaNode; + +typedef struct Arena { + /* 0x00 */ struct ArenaNode* head; + /* 0x04 */ void* start; +#if PLATFORM_N64 + /* 0x08 */ u32 size; + /* 0x0C */ u8 allocFailures; +#else + /* 0x08 */ OSMesgQueue lockQueue; + /* 0x20 */ u8 allocFailures; // only used in non-debug builds + /* 0x21 */ u8 isInit; + /* 0x22 */ u8 flag; +#endif +} Arena; // size = 0x10 (N64), size = 0x24 (GC) + +typedef struct ArenaNode { + /* 0x00 */ s16 magic; + /* 0x02 */ s16 isFree; + /* 0x04 */ u32 size; + /* 0x08 */ struct ArenaNode* next; + /* 0x0C */ struct ArenaNode* prev; +#if PLATFORM_N64 || OOT_DEBUG + /* 0x10 */ const char* filename; + /* 0x14 */ int line; + /* 0x18 */ OSId threadId; + /* 0x1C */ Arena* arena; + /* 0x20 */ OSTime time; + /* 0x28 */ u8 unk_28[0x30-0x28]; // probably padding +#endif +} ArenaNode; // size = 0x30 (N64 and GC debug), size = 0x10 (GC retail) + +#if PLATFORM_N64 +#define DECLARE_INTERRUPT_MASK OSIntMask __mask; +#define CLEAR_INTERRUPTS() __mask = osSetIntMask(OS_IM_NONE) +#define DISABLE_INTERRUPTS() __mask = osSetIntMask(OS_IM_NONE) +#define RESTORE_INTERRUPTS() osSetIntMask(__mask) +#else +#define DECLARE_INTERRUPT_MASK +#define CLEAR_INTERRUPTS() (void)0 +#define DISABLE_INTERRUPTS() (void)0 +#define RESTORE_INTERRUPTS() (void)0 +#endif + +void __osMallocInit(Arena* arena, void* start, s32 size); +void __osMallocCleanup(Arena* arena); +s32 __osMallocIsInitialized(Arena* arena); +void* __osMalloc(Arena* arena, u32 size); +void* __osMallocR(Arena* arena, u32 size); +void __osFree(Arena* arena, void* ptr); +void* __osRealloc(Arena* arena, void* ptr, u32 newSize); +void ArenaImpl_GetSizes(Arena* arena, u32* outMaxFree, u32* outFree, u32* outAlloc); +s32 __osCheckArena(Arena* arena); + +#if OOT_DEBUG +void* __osMallocDebug(Arena* arena, u32 size, const char* file, int line); +void* __osMallocRDebug(Arena* arena, u32 size, const char* file, int line); +void __osFreeDebug(Arena* arena, void* ptr, const char* file, int line); +void* __osReallocDebug(Arena* arena, void* ptr, u32 newSize, const char* file, int line); +void __osDisplayArena(Arena* arena); + +extern u32 __osMalloc_FreeBlockTest_Enable; +#else +extern u32 gTotalAllocFailures; +#endif + +#endif diff --git a/spec b/spec index f86bbe7a42..9dfd4b20c9 100644 --- a/spec +++ b/spec @@ -547,9 +547,9 @@ beginseg #if OOT_DEBUG include "$(BUILD_DIR)/src/code/debug_malloc.o" #endif -#if FAULT_VERSION == FAULT_N64 +#if PLATFORM_N64 include "$(BUILD_DIR)/src/code/fault_n64.o" -#elif FAULT_VERSION == FAULT_GC +#else include "$(BUILD_DIR)/src/code/fault_gc.o" include "$(BUILD_DIR)/src/code/fault_gc_drawer.o" #endif @@ -604,7 +604,11 @@ beginseg include "$(BUILD_DIR)/src/code/fp.o" include "$(BUILD_DIR)/src/code/system_malloc.o" include "$(BUILD_DIR)/src/code/rand.o" - include "$(BUILD_DIR)/src/code/__osMalloc.o" +#if PLATFORM_N64 + include "$(BUILD_DIR)/src/code/__osMalloc_n64.o" +#else + include "$(BUILD_DIR)/src/code/__osMalloc_gc.o" +#endif #if !OOT_DEBUG include "$(BUILD_DIR)/src/boot/sprintf.o" #endif diff --git a/src/boot/sprintf.c b/src/boot/sprintf.c index cb80fe39a9..d4af36356d 100644 --- a/src/boot/sprintf.c +++ b/src/boot/sprintf.c @@ -3,6 +3,11 @@ #include "string.h" #include "ultra64/xstdio.h" +#if PLATFORM_N64 +// Generated by CVS "$Id$" keyword +char sSprintfFileInfo[] = "$Id: sprintf.c,v 1.5 1997/03/19 02:28:53 hayakawa Exp $"; +#endif + void* proutSprintf(void* dst, const char* fmt, size_t size) { return (char*)memcpy(dst, fmt, size) + size; } diff --git a/src/code/__osMalloc.c b/src/code/__osMalloc_gc.c similarity index 96% rename from src/code/__osMalloc.c rename to src/code/__osMalloc_gc.c index 598e16a98f..45e19532f1 100644 --- a/src/code/__osMalloc.c +++ b/src/code/__osMalloc_gc.c @@ -1,19 +1,22 @@ #include "global.h" #include "fault.h" +#include "osMalloc.h" #include "terminal.h" +#if PLATFORM_GC + #define FILL_ALLOC_BLOCK_FLAG (1 << 0) #define FILL_FREE_BLOCK_FLAG (1 << 1) #define CHECK_FREE_BLOCK_FLAG (1 << 2) -#define NODE_MAGIC (0x7373) +#define NODE_MAGIC 0x7373 -#define BLOCK_UNINIT_MAGIC (0xAB) -#define BLOCK_UNINIT_MAGIC_32 (0xABABABAB) -#define BLOCK_ALLOC_MAGIC (0xCD) -#define BLOCK_ALLOC_MAGIC_32 (0xCDCDCDCD) -#define BLOCK_FREE_MAGIC (0xEF) -#define BLOCK_FREE_MAGIC_32 (0xEFEFEFEF) +#define BLOCK_UNINIT_MAGIC 0xAB +#define BLOCK_UNINIT_MAGIC_32 0xABABABAB +#define BLOCK_ALLOC_MAGIC 0xCD +#define BLOCK_ALLOC_MAGIC_32 0xCDCDCDCD +#define BLOCK_FREE_MAGIC 0xEF +#define BLOCK_FREE_MAGIC_32 0xEFEFEFEF #define NODE_IS_VALID(node) (((node) != NULL) && ((node)->magic == NODE_MAGIC)) @@ -24,6 +27,8 @@ #define SET_DEBUG_INFO(node, file, line, arena) ArenaImpl_SetDebugInfo(node, file, line, arena) +#define FILL_UNINIT_BLOCK(arena, node, size) memset(node, BLOCK_UNINIT_MAGIC, size) + #define FILL_ALLOC_BLOCK(arena, alloc, size) \ if ((arena)->flag & FILL_ALLOC_BLOCK_FLAG) \ memset(alloc, BLOCK_ALLOC_MAGIC, size) @@ -48,6 +53,7 @@ #define NODE_GET_PREV(node) (NODE_IS_VALID((node)->prev) ? (node)->prev : NULL) #define SET_DEBUG_INFO(node, file, line, arena) (void)0 +#define FILL_UNINIT_BLOCK(arena, node, size) (void)0 #define FILL_ALLOC_BLOCK(arena, alloc, size) (void)0 #define FILL_FREE_BLOCK_HEADER(arena, node) (void)0 #define FILL_FREE_BLOCK_CONTENTS(arena, node) (void)0 @@ -68,6 +74,8 @@ u32 gTotalAllocFailures = 0; // "Arena_failcnt" OSMesg sArenaLockMsg; +void __osMallocAddBlock(Arena* arena, void* start, s32 size); + #if OOT_DEBUG u32 __osMalloc_FreeBlockTest_Enable; @@ -164,7 +172,7 @@ ArenaNode* ArenaImpl_GetLastBlock(Arena* arena) { return last; } -void __osMallocInit(Arena* arena, void* start, u32 size) { +void __osMallocInit(Arena* arena, void* start, s32 size) { bzero(arena, sizeof(Arena)); ArenaImpl_LockInit(arena); __osMallocAddBlock(arena, start, size); @@ -183,9 +191,7 @@ void __osMallocAddBlock(Arena* arena, void* start, s32 size) { size2 = (size - diff) & ~0xF; if (size2 > (s32)sizeof(ArenaNode)) { -#if OOT_DEBUG - memset(firstNode, BLOCK_UNINIT_MAGIC, size2); -#endif + FILL_UNINIT_BLOCK(arena, firstNode, size2); firstNode->next = NULL; firstNode->prev = NULL; firstNode->size = size2 - sizeof(ArenaNode); @@ -230,7 +236,7 @@ void __osMallocCleanup(Arena* arena) { bzero(arena, sizeof(*arena)); } -u8 __osMallocIsInitialized(Arena* arena) { +s32 __osMallocIsInitialized(Arena* arena) { return arena->isInit; } @@ -267,9 +273,9 @@ void* __osMalloc_NoLockDebug(Arena* arena, u32 size, const char* file, int line) void* alloc = NULL; ArenaNode* next; - iter = arena->head; size = ALIGN16(size); blockSize = ALIGN16(size) + sizeof(ArenaNode); + iter = arena->head; while (iter != NULL) { if (iter->isFree && iter->size >= size) { @@ -357,6 +363,7 @@ void* __osMallocRDebug(Arena* arena, u32 size, const char* file, int line) { iter = NODE_GET_PREV(iter); } + ArenaImpl_Unlock(arena); return allocR; @@ -375,9 +382,9 @@ void* __osMalloc_NoLock(Arena* arena, u32 size) { iter = arena->head; while (iter != NULL) { - if (iter->isFree && iter->size >= size) { CHECK_FREE_BLOCK(arena, iter); + if (blockSize < iter->size) { newNode = (ArenaNode*)((u32)iter + blockSize); newNode->next = NODE_GET_NEXT(iter); @@ -398,6 +405,7 @@ void* __osMalloc_NoLock(Arena* arena, u32 size) { SET_DEBUG_INFO(iter, NULL, 0, arena); alloc = (void*)((u32)iter + sizeof(ArenaNode)); FILL_ALLOC_BLOCK(arena, alloc, size); + break; } @@ -480,7 +488,7 @@ void __osFree_NoLock(Arena* arena, void* ptr) { } node = (ArenaNode*)((u32)ptr - sizeof(ArenaNode)); - if (node == NULL || node->magic != NODE_MAGIC) { + if (!NODE_IS_VALID(node)) { PRINTF(VT_COL(RED, WHITE) T("__osFree:不正解放(%08x)\n", "__osFree: Unauthorized release (%08x)\n") VT_RST, ptr); return; @@ -546,7 +554,7 @@ void __osFree_NoLockDebug(Arena* arena, void* ptr, const char* file, int line) { } node = (ArenaNode*)((u32)ptr - sizeof(ArenaNode)); - if (node == NULL || node->magic != NODE_MAGIC) { + if (!NODE_IS_VALID(node)) { PRINTF(VT_COL(RED, WHITE) T("__osFree:不正解放(%08x) [%s:%d ]\n", "__osFree: Unauthorized release (%08x) [%s:%d ]\n") VT_RST, ptr, file, line); @@ -573,7 +581,6 @@ void __osFree_NoLockDebug(Arena* arena, void* ptr, const char* file, int line) { FILL_FREE_BLOCK_CONTENTS(arena, node); - newNext = node->next; if ((u32)next == (u32)node + sizeof(ArenaNode) + node->size && next->isFree) { newNext = NODE_GET_NEXT(next); if (newNext != NULL) { @@ -848,7 +855,7 @@ void ArenaImpl_FaultClient(Arena* arena) { Fault_Printf("Largest Free Block Size %08x\n", maxFree); } -u32 __osCheckArena(Arena* arena) { +s32 __osCheckArena(Arena* arena) { ArenaNode* iter; u32 error = 0; @@ -858,7 +865,8 @@ u32 __osCheckArena(Arena* arena) { arena); iter = arena->head; while (iter != NULL) { - if (iter && iter->magic == NODE_MAGIC) { + //! @bug: Probably intended to be `!NODE_IS_VALID(iter)` + if (NODE_IS_VALID(iter)) { #if OOT_DEBUG osSyncPrintf(VT_COL(RED, WHITE) T("おおっと!! (%08x %08x)\n", "Oops!! (%08x %08x)\n") VT_RST, iter, iter->magic); @@ -883,3 +891,5 @@ u8 ArenaImpl_GetAllocFailures(Arena* arena) { return arena->allocFailures; } #endif + +#endif diff --git a/src/code/__osMalloc_n64.c b/src/code/__osMalloc_n64.c new file mode 100644 index 0000000000..bd9c358aff --- /dev/null +++ b/src/code/__osMalloc_n64.c @@ -0,0 +1,474 @@ +#include "global.h" +#include "fault.h" +#include "osMalloc.h" + +#if PLATFORM_N64 + +#define NODE_MAGIC 0x7373 + +#define NODE_IS_VALID(node) ((node)->magic == NODE_MAGIC) + +#define NODE_GET_NEXT(node) ((node)->next) +#define NODE_GET_PREV(node) ((node)->prev) + +#define SET_DEBUG_INFO(node, f, l, a) \ + { \ + (node)->filename = (f); \ + (node)->line = (l); \ + (node)->threadId = osGetThreadId(NULL); \ + (node)->arena = (a); \ + (node)->time = osGetTime(); \ + } \ + (void)0 + +#define FILL_ALLOC_BLOCK(arena, alloc, size) (void)0 +#define FILL_FREE_BLOCK_HEADER(arena, node) (void)0 +#define FILL_FREE_BLOCK_CONTENTS(arena, node) (void)0 +#define CHECK_FREE_BLOCK(arena, node) (void)0 + +// Number of allocation failures across all arenas. +u32 gTotalAllocFailures = 0; // "Arena_failcnt" + +#define CHECK_ALLOC_FAILURE(arena, ptr) \ + do { \ + if ((ptr) == NULL) { \ + gTotalAllocFailures++; \ + (arena)->allocFailures++; \ + } \ + } while (0) + +void __osMallocInit(Arena* arena, void* start, s32 size) { + ArenaNode* firstNode = (ArenaNode*)ALIGN16((u32)start); + + size -= (u8*)firstNode - (u8*)start; + size &= ~0xF; + + firstNode->next = NULL; + firstNode->prev = NULL; + firstNode->size = size - sizeof(ArenaNode); + firstNode->isFree = true; + firstNode->magic = NODE_MAGIC; + + arena->head = firstNode; + arena->start = start; + arena->size = size; +} + +void __osMallocCleanup(Arena* arena) { + bzero(arena, sizeof(*arena)); +} + +s32 __osMallocIsInitialized(Arena* arena) { + return arena->start != NULL; +} + +void* __osMallocDebug(Arena* arena, u32 size, const char* file, int line) { + ArenaNode* iter; + u32 blockSize; + ArenaNode* newNode; + void* alloc = NULL; + ArenaNode* next; + + size = ALIGN16(size); + blockSize = ALIGN16(size) + sizeof(ArenaNode); + iter = arena->head; + + while (iter != NULL) { + if (iter->isFree && iter->size >= size) { + CHECK_FREE_BLOCK(arena, iter); + + if (blockSize < iter->size) { + newNode = (ArenaNode*)((u32)iter + blockSize); + newNode->next = NODE_GET_NEXT(iter); + newNode->prev = iter; + newNode->size = iter->size - blockSize; + newNode->isFree = true; + newNode->magic = NODE_MAGIC; + + iter->next = newNode; + iter->size = size; + next = NODE_GET_NEXT(newNode); + if (next) { + next->prev = newNode; + } + } + + iter->isFree = false; + SET_DEBUG_INFO(iter, file, line, arena); + alloc = (void*)((u32)iter + sizeof(ArenaNode)); + FILL_ALLOC_BLOCK(arena, alloc, size); + + break; + } + + iter = NODE_GET_NEXT(iter); + } + + CHECK_ALLOC_FAILURE(arena, alloc); + + return alloc; +} + +void* __osMallocRDebug(Arena* arena, u32 size, const char* file, int line) { + ArenaNode* iter; + ArenaNode* newNode; + u32 blockSize; + u32 nodeSize; + ArenaNode* next; + void* allocR = NULL; + ArenaNode* next2; + + size = ALIGN16(size); + + iter = arena->head; + next2 = NODE_GET_NEXT(iter); + while (next2 != NULL) { + iter = next2; + next2 = NODE_GET_NEXT(next2); + } + + while (iter != NULL) { + if (iter->isFree && iter->size >= size) { + CHECK_FREE_BLOCK(arena, iter); + + blockSize = ALIGN16(size) + sizeof(ArenaNode); + nodeSize = iter->size; + if (blockSize < nodeSize) { + newNode = (ArenaNode*)((u32)iter + (iter->size - size)); + newNode->next = NODE_GET_NEXT(iter); + newNode->prev = iter; + newNode->size = size; + newNode->magic = NODE_MAGIC; + + iter->next = newNode; + iter->size -= blockSize; + next = NODE_GET_NEXT(newNode); + if (next) { + next->prev = newNode; + } + iter = newNode; + } + + iter->isFree = false; + SET_DEBUG_INFO(iter, file, line, arena); + allocR = (void*)((u32)iter + sizeof(ArenaNode)); + FILL_ALLOC_BLOCK(arena, allocR, size); + + break; + } + + iter = NODE_GET_PREV(iter); + } + + CHECK_ALLOC_FAILURE(arena, allocR); + + return allocR; +} + +void* __osMalloc(Arena* arena, u32 size) { + ArenaNode* iter; + u32 blockSize; + ArenaNode* newNode; + void* alloc = NULL; + ArenaNode* next; + + size = ALIGN16(size); + blockSize = ALIGN16(size) + sizeof(ArenaNode); + iter = arena->head; + + while (iter != NULL) { + if (iter->isFree && iter->size >= size) { + CHECK_FREE_BLOCK(arena, iter); + + if (blockSize < iter->size) { + newNode = (ArenaNode*)((u32)iter + blockSize); + newNode->next = NODE_GET_NEXT(iter); + newNode->prev = iter; + newNode->size = iter->size - blockSize; + newNode->isFree = true; + newNode->magic = NODE_MAGIC; + + iter->next = newNode; + iter->size = size; + next = NODE_GET_NEXT(newNode); + if (next) { + next->prev = newNode; + } + } + + iter->isFree = false; + SET_DEBUG_INFO(iter, NULL, 0, arena); + alloc = (void*)((u32)iter + sizeof(ArenaNode)); + FILL_ALLOC_BLOCK(arena, alloc, size); + + break; + } + + iter = NODE_GET_NEXT(iter); + } + + CHECK_ALLOC_FAILURE(arena, alloc); + + return alloc; +} + +void* __osMallocR(Arena* arena, u32 size) { + ArenaNode* iter; + ArenaNode* newNode; + u32 blockSize; + u32 nodeSize; + ArenaNode* next; + void* allocR = NULL; + ArenaNode* next2; + + size = ALIGN16(size); + + iter = arena->head; + next2 = NODE_GET_NEXT(iter); + while (next2 != NULL) { + iter = next2; + next2 = NODE_GET_NEXT(next2); + } + + while (iter != NULL) { + if (iter->isFree && iter->size >= size) { + CHECK_FREE_BLOCK(arena, iter); + + blockSize = ALIGN16(size) + sizeof(ArenaNode); + nodeSize = iter->size; + if (blockSize < nodeSize) { + newNode = (ArenaNode*)((u32)iter + (iter->size - size)); + newNode->next = NODE_GET_NEXT(iter); + newNode->prev = iter; + newNode->size = size; + newNode->magic = NODE_MAGIC; + + iter->next = newNode; + iter->size -= blockSize; + next = NODE_GET_NEXT(newNode); + if (next) { + next->prev = newNode; + } + iter = newNode; + } + + iter->isFree = false; + SET_DEBUG_INFO(iter, NULL, 0, arena); + allocR = (void*)((u32)iter + sizeof(ArenaNode)); + FILL_ALLOC_BLOCK(arena, allocR, size); + + break; + } + iter = NODE_GET_PREV(iter); + } + + CHECK_ALLOC_FAILURE(arena, allocR); + + return allocR; +} + +void __osFree(Arena* arena, void* ptr) { + ArenaNode* node; + ArenaNode* next; + ArenaNode* prev; + + if (ptr == NULL) { + return; + } + + node = (ArenaNode*)((u32)ptr - sizeof(ArenaNode)); + if (!NODE_IS_VALID(node)) { + (void)T("__osFree:不正解放(%08x)\n", "__osFree: Unauthorized release (%08x)\n"); + osSetIntMask(OS_IM_ALL); + return; + } + if (node->isFree) { + (void)T("__osFree:二重解放(%08x)\n", "__osFree: Double release (%08x)\n"); + osSetIntMask(OS_IM_ALL); + return; + } + if (arena != node->arena && arena != NULL) { + (void)T("__osFree:arena(%08x)が__osMallocのarena(%08x)と一致しない\n", + "__osFree:arena(%08x) and __osMalloc:arena(%08x) do not match\n"); + } + + node->isFree = true; + SET_DEBUG_INFO(node, NULL, 0, arena); + + if (node->next != NULL) { + next = node->next; + if (next->isFree) { + if (next->next != NULL) { + next->next->prev = node; + } + + node->size += next->size + sizeof(ArenaNode); + node->next = next->next; + } + } + + if (node->prev != NULL) { + prev = node->prev; + if (prev->isFree) { + prev->size += node->size + sizeof(ArenaNode); + prev->next = NODE_GET_NEXT(node); + + if (node->next != NULL) { + node->next->prev = prev; + } + } + } +} + +void __osFreeDebug(Arena* arena, void* ptr, const char* file, int line) { + ArenaNode* node; + ArenaNode* next; + ArenaNode* prev; + + if (ptr == NULL) { + return; + } + + node = (ArenaNode*)((u32)ptr - sizeof(ArenaNode)); + if (!NODE_IS_VALID(node)) { + (void)T("__osFree:不正解放(%08x)\n", "__osFree: Unauthorized release (%08x)\n"); + osSetIntMask(OS_IM_ALL); + return; + } + if (node->isFree) { + (void)T("__osFree:二重解放(%08x)\n", "__osFree: Double release (%08x)\n"); + osSetIntMask(OS_IM_ALL); + return; + } + if (arena != node->arena && arena != NULL) { + (void)T("__osFree:arena(%08x)が__osMallocのarena(%08x)と一致しない\n", + "__osFree:arena(%08x) and __osMalloc:arena(%08x) do not match\n"); + } + + node->isFree = true; + SET_DEBUG_INFO(node, file, line, arena); + + if (node->next != NULL) { + next = node->next; + if (next->isFree) { + if (next->next != NULL) { + next->next->prev = node; + } + + node->size += next->size + sizeof(ArenaNode); + node->next = next->next; + } + } + + if (node->prev != NULL) { + prev = node->prev; + if (prev->isFree) { + prev->size += node->size + sizeof(ArenaNode); + prev->next = NODE_GET_NEXT(node); + + if (node->next != NULL) { + node->next->prev = prev; + } + } + } +} + +void* __osRealloc(Arena* arena, void* ptr, u32 newSize) { + ArenaNode* node; + void* newAlloc; + ArenaNode* next; + ArenaNode* newNext; + u32 sizeDiff; + + (void)"__osRealloc(%08x, %d)\n"; + osSetIntMask(OS_IM_ALL); + + if (ptr == NULL) { + ptr = __osMalloc(arena, newSize); + } else if (newSize == 0) { + __osFree(arena, ptr); + ptr = NULL; + } else { + newSize = ALIGN16(newSize); + node = (ArenaNode*)((u32)ptr - sizeof(ArenaNode)); + if (newSize == node->size) { + // Do nothing + } else if (node->size < newSize) { + next = NODE_GET_NEXT(node); + sizeDiff = newSize - node->size; + if (next != NULL && next->isFree && next->size >= sizeDiff) { + next->size -= sizeDiff; + newNext = (ArenaNode*)((u32)next + sizeDiff); + if (NODE_GET_NEXT(next) != NULL) { + NODE_GET_NEXT(next)->prev = newNext; + } + node->next = newNext; + node->size = newSize; + memmove(node->next, next, sizeof(ArenaNode)); + } else { + newAlloc = __osMalloc(arena, newSize); + if (newAlloc != NULL) { + memcpy(ptr, newAlloc, node->size); + __osFree(arena, ptr); + } + ptr = newAlloc; + } + } else if (newSize < node->size) { + (void)T("メモリブロックの縮小機能はまだインプリメントしていません\n", + "Memory block shrinking functionality is not yet implemented\n"); + } + } + + CHECK_ALLOC_FAILURE(arena, ptr); + + return ptr; +} + +void* __osReallocDebug(Arena* arena, void* ptr, u32 newSize, const char* file, int line) { + return __osRealloc(arena, ptr, newSize); +} + +void ArenaImpl_GetSizes(Arena* arena, u32* outMaxFree, u32* outFree, u32* outAlloc) { + ArenaNode* iter; + + *outMaxFree = 0; + *outFree = 0; + *outAlloc = 0; + + iter = arena->head; + while (iter != NULL) { + if (iter->isFree) { + *outFree += iter->size; + if (*outMaxFree < iter->size) { + *outMaxFree = iter->size; + } + } else { + *outAlloc += iter->size; + } + + iter = NODE_GET_NEXT(iter); + } +} + +s32 __osCheckArena(Arena* arena) { + ArenaNode* iter; + + (void)T("アリーナの内容をチェックしています... (%08x)\n", "Checking the arena contents... (%08x)\n"); + iter = arena->head; + while (iter != NULL) { + if (!NODE_IS_VALID(iter)) { + (void)T("おおっと!! (%08x %08x)\n", "Oops!! (%08x %08x)\n"); + return 1; + } + iter = NODE_GET_NEXT(iter); + } + + (void)T("アリーナはまだ、いけそうです\n", "The arena is still going well\n"); + return 0; +} + +u8 ArenaImpl_GetAllocFailures(Arena* arena) { + return arena->allocFailures; +} + +#endif diff --git a/src/code/code_800FC620.c b/src/code/code_800FC620.c index eafbe5080e..4d7b7b4efe 100644 --- a/src/code/code_800FC620.c +++ b/src/code/code_800FC620.c @@ -1,4 +1,5 @@ #include "global.h" +#include "osMalloc.h" typedef void (*arg3_800FC868)(void*); typedef void (*arg3_800FC8D8)(void*, u32); @@ -26,43 +27,64 @@ char D_80134488[0x18] = { // possibly some kind of new() function void* func_800FC800(u32 size) { + DECLARE_INTERRUPT_MASK + void* ptr; + + DISABLE_INTERRUPTS(); + if (size == 0) { size = 1; } #if OOT_DEBUG - return __osMallocDebug(&gSystemArena, size, sNew, 0); + ptr = __osMallocDebug(&gSystemArena, size, sNew, 0); #else - return __osMalloc(&gSystemArena, size); + ptr = __osMalloc(&gSystemArena, size); #endif + + RESTORE_INTERRUPTS(); + return ptr; } // possibly some kind of delete() function void func_800FC83C(void* ptr) { + DECLARE_INTERRUPT_MASK + + DISABLE_INTERRUPTS(); if (ptr != NULL) { __osFree(&gSystemArena, ptr); } + RESTORE_INTERRUPTS(); } void func_800FC868(void* blk, u32 nBlk, u32 blkSize, arg3_800FC868 arg3) { + DECLARE_INTERRUPT_MASK u32 pos; - for (pos = (u32)blk; pos < (u32)blk + (nBlk * blkSize); pos = (u32)pos + (blkSize & ~0)) { + DISABLE_INTERRUPTS(); + for (pos = ((u32)blk & ~0); pos < (u32)blk + (nBlk * blkSize); pos = (u32)pos + (blkSize & ~0)) { arg3((void*)pos); } + RESTORE_INTERRUPTS(); } void func_800FC8D8(void* blk, u32 nBlk, s32 blkSize, arg3_800FC8D8 arg3) { + DECLARE_INTERRUPT_MASK u32 pos; - for (pos = (u32)blk; pos < (u32)blk + (nBlk * blkSize); pos = (u32)pos + (blkSize & ~0)) { + DISABLE_INTERRUPTS(); + for (pos = ((u32)blk & ~0); pos < (u32)blk + (nBlk * blkSize); pos = (u32)pos + (blkSize & ~0)) { arg3((void*)pos, 2); } + RESTORE_INTERRUPTS(); } void* func_800FC948(void* blk, u32 nBlk, u32 blkSize, arg3_800FC948 arg3) { + DECLARE_INTERRUPT_MASK u32 pos; + DISABLE_INTERRUPTS(); + if (blk == NULL) { blk = func_800FC800(nBlk * blkSize); } @@ -74,29 +96,35 @@ void* func_800FC948(void* blk, u32 nBlk, u32 blkSize, arg3_800FC948 arg3) { pos = (u32)pos + (blkSize & ~0); } } + + RESTORE_INTERRUPTS(); return blk; } void func_800FCA18(void* blk, u32 nBlk, u32 blkSize, arg3_800FCA18 arg3, s32 arg4) { + DECLARE_INTERRUPT_MASK u32 pos; u32 end; - if (blk == NULL) { - return; - } - if (arg3 != NULL) { - end = (u32)blk; - pos = (u32)end + (nBlk * blkSize); + DISABLE_INTERRUPTS(); - while (pos > end) { - pos -= (s32)(blkSize & ~0); - arg3((void*)pos, 2); + if (blk != NULL) { + if (arg3 != NULL) { + end = (u32)blk; + pos = (u32)end + (nBlk * blkSize); + + while (pos > end) { + pos -= (s32)(blkSize & ~0); + arg3((void*)pos, 2); + } + } + + if (arg4 != 0) { + func_800FC83C(blk); } } - if (arg4 != 0) { - func_800FC83C(blk); - } + RESTORE_INTERRUPTS(); } void func_800FCB34(void) { @@ -120,6 +148,11 @@ void func_800FCB34(void) { } void SystemHeap_Init(void* start, u32 size) { +#if PLATFORM_N64 + __osMallocInit(&gSystemArena, start, size); +#else SystemArena_Init(start, size); +#endif + func_800FCB34(); } diff --git a/src/code/debug_malloc.c b/src/code/debug_malloc.c index 3e31f78455..5be04b23c0 100644 --- a/src/code/debug_malloc.c +++ b/src/code/debug_malloc.c @@ -1,4 +1,5 @@ #include "global.h" +#include "osMalloc.h" #define LOG_SEVERITY_NOLOG 0 #define LOG_SEVERITY_ERROR 2 @@ -125,6 +126,6 @@ void DebugArena_Cleanup(void) { __osMallocCleanup(&sDebugArena); } -u8 DebugArena_IsInitialized(void) { +s32 DebugArena_IsInitialized(void) { return __osMallocIsInitialized(&sDebugArena); } diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c index 587f7cb249..0402573ad3 100644 --- a/src/code/fault_gc.c +++ b/src/code/fault_gc.c @@ -40,15 +40,11 @@ * DPad-Up may be pressed to enable sending fault pages over osSyncPrintf as well as displaying them on-screen. * DPad-Down disables sending fault pages over osSyncPrintf. */ +#if PLATFORM_GC + #pragma increment_block_number "gc-eu:240 gc-eu-mq:240 gc-eu-mq-dbg:224 gc-jp:240 gc-jp-ce:240 gc-jp-mq:240 gc-us:240" \ "gc-us-mq:240" -// Include versions.h first and redefine FAULT_VERSION -// This allows this file to compile even when versions.h uses FAULT_N64 -#include "versions.h" -#undef FAULT_VERSION -#define FAULT_VERSION FAULT_GC - #include "global.h" #include "alloca.h" #include "fault.h" @@ -1336,3 +1332,5 @@ NORETURN void Fault_AddHungupAndCrash(const char* file, int line) { sprintf(msg, "HungUp %s:%d", file, line); Fault_AddHungupAndCrashImpl(msg, NULL); } + +#endif diff --git a/src/code/fault_gc_drawer.c b/src/code/fault_gc_drawer.c index dbdcba7e7f..5cf088fca6 100644 --- a/src/code/fault_gc_drawer.c +++ b/src/code/fault_gc_drawer.c @@ -4,17 +4,12 @@ * Implements routines for drawing text with a fixed font directly to a framebuffer, used in displaying * the crash screen implemented by fault.c */ - -// Include versions.h first and redefine FAULT_VERSION -// This allows this file to compile even when versions.h uses FAULT_N64 -#include "versions.h" -#undef FAULT_VERSION -#define FAULT_VERSION FAULT_GC - #include "global.h" #include "fault.h" #include "terminal.h" +#if PLATFORM_GC + typedef struct FaultDrawer { /* 0x00 */ u16* fb; /* 0x04 */ u16 w; @@ -348,3 +343,5 @@ void Fault_InitDrawer(void) { bcopy(&sFaultDrawerDefault, &sFaultDrawer, sizeof(FaultDrawer)); sFaultDrawer.fb = (u16*)(PHYS_TO_K0(osMemSize) - sizeof(u16[SCREEN_HEIGHT][SCREEN_WIDTH])); } + +#endif diff --git a/src/code/fault_n64.c b/src/code/fault_n64.c index da9d7bf6fd..5a8dd9d1d6 100644 --- a/src/code/fault_n64.c +++ b/src/code/fault_n64.c @@ -1,14 +1,11 @@ -// Include versions.h first and redefine FAULT_VERSION -// This allows this file to compile even when versions.h uses FAULT_GC -#include "versions.h" -#undef FAULT_VERSION -#define FAULT_VERSION FAULT_N64 - #include "global.h" #include "fault.h" +#include "osMalloc.h" #include "stack.h" #include "terminal.h" +#if PLATFORM_N64 + typedef struct FaultMgr { OSThread thread; char unk_1B0[0x400]; @@ -846,3 +843,5 @@ void Fault_AddHungupAndCrash(const char* file, int line) { sprintf(msg, "HungUp %s:%d", file, line); Fault_AddHungupAndCrashImpl(msg, NULL); } + +#endif diff --git a/src/code/game.c b/src/code/game.c index ffb8bc8471..07007f6a70 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -1,5 +1,6 @@ #include "global.h" #include "fault.h" +#include "osMalloc.h" #include "terminal.h" #if PLATFORM_N64 #include "n64dd.h" diff --git a/src/code/rand.c b/src/code/rand.c index ce2beb9e30..917b1ecfc6 100644 --- a/src/code/rand.c +++ b/src/code/rand.c @@ -42,7 +42,6 @@ * @note Original name: qrand.c */ #include "rand.h" -#include "versions.h" #define RAND_MULTIPLIER 1664525 #define RAND_INCREMENT 1013904223 @@ -54,7 +53,7 @@ */ static u32 sRandInt = 1; -#if RAND_VERSION == RAND_GC +#if PLATFORM_GC /** * Space to store a value to be re-interpreted as a float. * @@ -69,7 +68,7 @@ static fu sRandFloat; * @note Original name: qrand */ u32 Rand_Next(void) { -#if RAND_VERSION == RAND_N64 +#if PLATFORM_N64 u32 next = sRandInt * RAND_MULTIPLIER + RAND_INCREMENT; sRandInt = next; @@ -98,7 +97,7 @@ void Rand_Seed(u32 seed) { * @note Original name: fqrand */ f32 Rand_ZeroOne(void) { -#if RAND_VERSION == RAND_N64 +#if PLATFORM_N64 fu v; f32 vf; @@ -115,7 +114,7 @@ f32 Rand_ZeroOne(void) { #endif } -#if RAND_VERSION == RAND_GC +#if PLATFORM_GC /** * Returns a pseudo-random floating-point number between -0.5f and 0.5f by the same manner in which Rand_ZeroOne * generates its result. @@ -164,7 +163,7 @@ u32 Rand_Next_Variable(u32* rndNum) { * @note Original name: fqrand_r */ f32 Rand_ZeroOne_Variable(u32* rndNum) { -#if RAND_VERSION == RAND_N64 +#if PLATFORM_N64 fu v; f32 vf; u32 next = Rand_Next_Variable(rndNum); @@ -180,7 +179,7 @@ f32 Rand_ZeroOne_Variable(u32* rndNum) { #endif } -#if RAND_VERSION == RAND_GC +#if PLATFORM_GC /** * Generates the next pseudo-random floating-point number between -0.5f and 0.5f from the provided rndNum. * diff --git a/src/code/system_malloc.c b/src/code/system_malloc.c index 8385a883c0..de6a56b30a 100644 --- a/src/code/system_malloc.c +++ b/src/code/system_malloc.c @@ -1,4 +1,5 @@ #include "global.h" +#include "osMalloc.h" #define LOG_SEVERITY_NOLOG 0 #define LOG_SEVERITY_ERROR 2 @@ -6,16 +7,6 @@ Arena gSystemArena; -#if PLATFORM_N64 -#define DECLARE_INTERRUPT_MASK OSIntMask __mask; -#define DISABLE_INTERRUPTS() __mask = osSetIntMask(OS_IM_NONE) -#define RESTORE_INTERRUPTS() osSetIntMask(__mask) -#else -#define DECLARE_INTERRUPT_MASK -#define DISABLE_INTERRUPTS() (void)0 -#define RESTORE_INTERRUPTS() (void)0 -#endif - #if OOT_DEBUG s32 gSystemArenaLogSeverity = LOG_SEVERITY_NOLOG; @@ -176,6 +167,6 @@ void SystemArena_Cleanup(void) { __osMallocCleanup(&gSystemArena); } -u8 SystemArena_IsInitialized(void) { +s32 SystemArena_IsInitialized(void) { return __osMallocIsInitialized(&gSystemArena); } diff --git a/src/code/z_malloc.c b/src/code/z_malloc.c index 979de62fea..5b1c5637fa 100644 --- a/src/code/z_malloc.c +++ b/src/code/z_malloc.c @@ -1,4 +1,5 @@ #include "global.h" +#include "osMalloc.h" #define LOG_SEVERITY_NOLOG 0 #define LOG_SEVERITY_ERROR 2 @@ -124,6 +125,6 @@ void ZeldaArena_Cleanup(void) { __osMallocCleanup(&sZeldaArena); } -u8 ZeldaArena_IsInitialized(void) { +s32 ZeldaArena_IsInitialized(void) { return __osMallocIsInitialized(&sZeldaArena); } diff --git a/tools/disasm/ntsc-1.2/files_code.csv b/tools/disasm/ntsc-1.2/files_code.csv index 8aec80c335..dd1ac65e8b 100644 --- a/tools/disasm/ntsc-1.2/files_code.csv +++ b/tools/disasm/ntsc-1.2/files_code.csv @@ -132,7 +132,7 @@ BC670,800CDD50,src/code/fp_math BCA20,800CE100,src/code/fp BCB80,800CE260,src/code/system_malloc BCDF0,800CE4D0,src/code/rand -BCEF0,800CE5D0,src/code/__osMalloc +BCEF0,800CE5D0,src/code/__osMalloc_n64 BD8A0,800CEF80,src/boot/sprintf BD970,800CF050,src/code/printutils BD9D0,800CF0B0,src/code/jpegutils @@ -292,7 +292,8 @@ F3AD0,801051B0,src/code/gfxprint F4380,80105A60,src/code/loadfragment2_n64 F4390,80105A70,src/code/code_800FC620 F43A0,80105A80,src/code/rand -F43B0,80105A90,src/code/__osMalloc +F43B0,80105A90,src/code/__osMalloc_n64 +F43C0,80105AA0,src/boot/sprintf F4400,80105AE0,src/libultra/gu/sins F4C00,801062E0,src/libultra/io/siacs F4C10,801062F0,src/libultra/io/controller @@ -379,6 +380,7 @@ F9190,8010A870,src/code/gfxprint F91D0,8010A8B0,src/code/rcp_utils F9320,8010AA00,src/code/loadfragment2_n64 F94C0,8010ABA0,src/code/fp_math +F94E0,8010ABC0,src/code/__osMalloc_n64 F9690,8010AD70,src/libultra/gu/sinf F96E0,8010ADC0,src/libultra/gu/perspective F96F0,8010ADD0,src/libultra/gu/lookathil diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 457c53d6eb..a3c4c7520b 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -2931,7 +2931,7 @@ __osRealloc = 0x800CED54; // type:func __osReallocDebug = 0x800CEEA8; // type:func ArenaImpl_GetSizes = 0x800CEEC8; // type:func __osCheckArena = 0x800CEF3C; // type:func -func_800FF334 = 0x800CEF78; // type:func +ArenaImpl_GetAllocFailures = 0x800CEF78; // type:func proutSprintf = 0x800CEF80; // type:func vsprintf = 0x800CEFA4; // type:func sprintf = 0x800CEFF4; // type:func From fab309ae081c71b2faff994ad9a7237e10e7ef73 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 19:22:59 +0200 Subject: [PATCH 07/86] [ntsc-1.2] Partially match gfxprint.c (#2101) * [ntsc-1.2] Partially match gfxprint.c * yeet bss * fix * review --- include/gfxprint.h | 2 ++ src/code/gfxprint.c | 33 ++++++++++++++++++++++++++++----- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/include/gfxprint.h b/include/gfxprint.h index 647ebf8561..da63c9e762 100644 --- a/include/gfxprint.h +++ b/include/gfxprint.h @@ -34,7 +34,9 @@ typedef struct GfxPrint { #define GFXP_FLAG_RAINBOW (1 << 1) #define GFXP_FLAG_SHADOW (1 << 2) #define GFXP_FLAG_UPDATE (1 << 3) +#if PLATFORM_GC #define GFXP_FLAG_ENLARGE (1 << 6) +#endif #define GFXP_FLAG_OPEN (1 << 7) #endif diff --git a/src/code/gfxprint.c b/src/code/gfxprint.c index d6171aaccb..ac4bb7ced0 100644 --- a/src/code/gfxprint.c +++ b/src/code/gfxprint.c @@ -126,8 +126,10 @@ u8 sGfxPrintFontData[(16 * 256) / 2] = { 0x1B, 0xAA, 0x40, 0x21, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; +#if PLATFORM_GC // Can be used to set GFXP_FLAG_ENLARGE by default static u8 sDefaultSpecialFlags; +#endif void GfxPrint_Setup(GfxPrint* this) { s32 width = 16; @@ -210,6 +212,10 @@ void GfxPrint_PrintCharImpl(GfxPrint* this, u8 c) { if (this->flags & GFXP_FLAG_SHADOW) { gDPSetColor(this->dList++, G_SETPRIMCOLOR, 0); +#if PLATFORM_N64 + gSPTextureRectangle(this->dList++, this->posX + 4, this->posY + 4, this->posX + 4 + 32, this->posY + 4 + 32, + tile, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 10, 1 << 10); +#else if (this->flags & GFXP_FLAG_ENLARGE) { gSPTextureRectangle(this->dList++, (this->posX + 4) << 1, (this->posY + 4) << 1, (this->posX + 4 + 32) << 1, (this->posY + 4 + 32) << 1, tile, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 9, @@ -218,10 +224,15 @@ void GfxPrint_PrintCharImpl(GfxPrint* this, u8 c) { gSPTextureRectangle(this->dList++, this->posX + 4, this->posY + 4, this->posX + 4 + 32, this->posY + 4 + 32, tile, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 10, 1 << 10); } +#endif gDPSetColor(this->dList++, G_SETPRIMCOLOR, this->color.rgba); } +#if PLATFORM_N64 + gSPTextureRectangle(this->dList++, this->posX, this->posY, this->posX + 32, this->posY + 32, tile, + (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 10, 1 << 10); +#else if (this->flags & GFXP_FLAG_ENLARGE) { gSPTextureRectangle(this->dList++, this->posX << 1, this->posY << 1, (this->posX + 32) << 1, (this->posY + 32) << 1, tile, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 9, 1 << 9); @@ -229,26 +240,32 @@ void GfxPrint_PrintCharImpl(GfxPrint* this, u8 c) { gSPTextureRectangle(this->dList++, this->posX, this->posY, this->posX + 32, this->posY + 32, tile, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 10, 1 << 10); } +#endif this->posX += GFX_CHAR_X_SPACING << 2; } void GfxPrint_PrintChar(GfxPrint* this, u8 c) { +#if PLATFORM_N64 +#define CHAR_PARAM c +#else +#define CHAR_PARAM charParam u8 charParam = c; +#endif if (c == ' ') { this->posX += GFX_CHAR_X_SPACING << 2; } else if (c > ' ' && c < 0x7F) { - GfxPrint_PrintCharImpl(this, charParam); + GfxPrint_PrintCharImpl(this, c); } else if (c >= 0xA0 && c < 0xE0) { if (this->flags & GFXP_FLAG_HIRAGANA) { if (c < 0xC0) { - charParam = c - 0x20; + CHAR_PARAM = c - 0x20; } else { - charParam = c + 0x20; + CHAR_PARAM = c + 0x20; } } - GfxPrint_PrintCharImpl(this, charParam); + GfxPrint_PrintCharImpl(this, CHAR_PARAM); } else { switch (c) { case '\0': @@ -325,11 +342,13 @@ void GfxPrint_Init(GfxPrint* this) { this->flags |= GFXP_FLAG_SHADOW; this->flags |= GFXP_FLAG_UPDATE; +#if PLATFORM_GC if (sDefaultSpecialFlags & GFXP_FLAG_ENLARGE) { this->flags |= GFXP_FLAG_ENLARGE; } else { this->flags &= ~GFXP_FLAG_ENLARGE; } +#endif } void GfxPrint_Destroy(GfxPrint* this) { @@ -341,7 +360,9 @@ void GfxPrint_Open(GfxPrint* this, Gfx* dList) { this->dList = dList; GfxPrint_Setup(this); } else { - PRINTF("gfxprint_open:2重オープンです\n"); +#if PLATFORM_N64 || OOT_DEBUG + osSyncPrintf("gfxprint_open:2重オープンです\n"); +#endif } } @@ -349,7 +370,9 @@ Gfx* GfxPrint_Close(GfxPrint* this) { Gfx* ret; this->flags &= ~GFXP_FLAG_OPEN; +#if PLATFORM_GC gDPPipeSync(this->dList++); +#endif ret = this->dList; this->dList = NULL; From f1911cd93783ecefe33a048dd70846fb62a63590 Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Wed, 4 Sep 2024 18:55:04 +0100 Subject: [PATCH 08/86] [Audio 7/?] Extract sequences to assembly (#2119) * [Audio 7/?] Extract sequences to assembly Co-authored-by: MNGoldenEagle <17274702+MNGoldenEagle@users.noreply.github.com> Co-authored-by: zelda2774 <69368340+zelda2774@users.noreply.github.com> * Suggested changes, some extra sequence disassembler cleanup * Remove unused multiprocessing import and regen assets/xml/audio/sequences --------- Co-authored-by: MNGoldenEagle <17274702+MNGoldenEagle@users.noreply.github.com> Co-authored-by: zelda2774 <69368340+zelda2774@users.noreply.github.com> --- assets/xml/audio/sequences/seq_0.xml | 2 + assets/xml/audio/sequences/seq_1.xml | 2 + assets/xml/audio/sequences/seq_10.xml | 2 + assets/xml/audio/sequences/seq_100.xml | 2 + assets/xml/audio/sequences/seq_101.xml | 2 + assets/xml/audio/sequences/seq_102.xml | 2 + assets/xml/audio/sequences/seq_103.xml | 2 + assets/xml/audio/sequences/seq_104.xml | 2 + assets/xml/audio/sequences/seq_105.xml | 2 + assets/xml/audio/sequences/seq_106.xml | 2 + assets/xml/audio/sequences/seq_107.xml | 2 + assets/xml/audio/sequences/seq_108.xml | 2 + assets/xml/audio/sequences/seq_109.xml | 2 + assets/xml/audio/sequences/seq_11.xml | 2 + assets/xml/audio/sequences/seq_12.xml | 2 + assets/xml/audio/sequences/seq_13.xml | 2 + assets/xml/audio/sequences/seq_14.xml | 2 + assets/xml/audio/sequences/seq_15.xml | 2 + assets/xml/audio/sequences/seq_16.xml | 2 + assets/xml/audio/sequences/seq_17.xml | 2 + assets/xml/audio/sequences/seq_18.xml | 2 + assets/xml/audio/sequences/seq_19.xml | 2 + assets/xml/audio/sequences/seq_2.xml | 2 + assets/xml/audio/sequences/seq_20.xml | 2 + assets/xml/audio/sequences/seq_21.xml | 2 + assets/xml/audio/sequences/seq_22.xml | 2 + assets/xml/audio/sequences/seq_23.xml | 2 + assets/xml/audio/sequences/seq_24.xml | 2 + assets/xml/audio/sequences/seq_25.xml | 2 + assets/xml/audio/sequences/seq_26.xml | 2 + assets/xml/audio/sequences/seq_27.xml | 2 + assets/xml/audio/sequences/seq_28.xml | 2 + assets/xml/audio/sequences/seq_29.xml | 2 + assets/xml/audio/sequences/seq_3.xml | 2 + assets/xml/audio/sequences/seq_30.xml | 2 + assets/xml/audio/sequences/seq_31.xml | 2 + assets/xml/audio/sequences/seq_32.xml | 2 + assets/xml/audio/sequences/seq_33.xml | 2 + assets/xml/audio/sequences/seq_34.xml | 2 + assets/xml/audio/sequences/seq_35.xml | 2 + assets/xml/audio/sequences/seq_36.xml | 2 + assets/xml/audio/sequences/seq_37.xml | 2 + assets/xml/audio/sequences/seq_38.xml | 2 + assets/xml/audio/sequences/seq_39.xml | 2 + assets/xml/audio/sequences/seq_4.xml | 2 + assets/xml/audio/sequences/seq_40.xml | 2 + assets/xml/audio/sequences/seq_41.xml | 2 + assets/xml/audio/sequences/seq_42.xml | 2 + assets/xml/audio/sequences/seq_43.xml | 2 + assets/xml/audio/sequences/seq_44.xml | 2 + assets/xml/audio/sequences/seq_45.xml | 2 + assets/xml/audio/sequences/seq_46.xml | 2 + assets/xml/audio/sequences/seq_47.xml | 2 + assets/xml/audio/sequences/seq_48.xml | 2 + assets/xml/audio/sequences/seq_49.xml | 2 + assets/xml/audio/sequences/seq_5.xml | 2 + assets/xml/audio/sequences/seq_50.xml | 2 + assets/xml/audio/sequences/seq_51.xml | 2 + assets/xml/audio/sequences/seq_52.xml | 2 + assets/xml/audio/sequences/seq_53.xml | 2 + assets/xml/audio/sequences/seq_54.xml | 2 + assets/xml/audio/sequences/seq_55.xml | 2 + assets/xml/audio/sequences/seq_56.xml | 2 + assets/xml/audio/sequences/seq_57.xml | 2 + assets/xml/audio/sequences/seq_58.xml | 2 + assets/xml/audio/sequences/seq_59.xml | 2 + assets/xml/audio/sequences/seq_6.xml | 2 + assets/xml/audio/sequences/seq_60.xml | 2 + assets/xml/audio/sequences/seq_61.xml | 2 + assets/xml/audio/sequences/seq_62.xml | 2 + assets/xml/audio/sequences/seq_63.xml | 2 + assets/xml/audio/sequences/seq_64.xml | 2 + assets/xml/audio/sequences/seq_65.xml | 2 + assets/xml/audio/sequences/seq_66.xml | 2 + assets/xml/audio/sequences/seq_67.xml | 2 + assets/xml/audio/sequences/seq_68.xml | 2 + assets/xml/audio/sequences/seq_69.xml | 2 + assets/xml/audio/sequences/seq_7.xml | 2 + assets/xml/audio/sequences/seq_70.xml | 2 + assets/xml/audio/sequences/seq_71.xml | 2 + assets/xml/audio/sequences/seq_72.xml | 2 + assets/xml/audio/sequences/seq_73.xml | 2 + assets/xml/audio/sequences/seq_74.xml | 2 + assets/xml/audio/sequences/seq_75.xml | 2 + assets/xml/audio/sequences/seq_76.xml | 2 + assets/xml/audio/sequences/seq_77.xml | 2 + assets/xml/audio/sequences/seq_78.xml | 2 + assets/xml/audio/sequences/seq_79.xml | 2 + assets/xml/audio/sequences/seq_8.xml | 2 + assets/xml/audio/sequences/seq_80.xml | 2 + assets/xml/audio/sequences/seq_81.xml | 2 + assets/xml/audio/sequences/seq_82.xml | 2 + assets/xml/audio/sequences/seq_83.xml | 2 + assets/xml/audio/sequences/seq_84.xml | 2 + assets/xml/audio/sequences/seq_85.xml | 2 + assets/xml/audio/sequences/seq_86.xml | 2 + assets/xml/audio/sequences/seq_88.xml | 2 + assets/xml/audio/sequences/seq_89.xml | 2 + assets/xml/audio/sequences/seq_9.xml | 2 + assets/xml/audio/sequences/seq_90.xml | 2 + assets/xml/audio/sequences/seq_91.xml | 2 + assets/xml/audio/sequences/seq_92.xml | 2 + assets/xml/audio/sequences/seq_93.xml | 2 + assets/xml/audio/sequences/seq_94.xml | 2 + assets/xml/audio/sequences/seq_95.xml | 2 + assets/xml/audio/sequences/seq_96.xml | 2 + assets/xml/audio/sequences/seq_97.xml | 2 + assets/xml/audio/sequences/seq_98.xml | 2 + assets/xml/audio/sequences/seq_99.xml | 2 + tools/audio/extraction/audio_extract.py | 154 +- .../audio/extraction/disassemble_sequence.py | 1276 +++++++++++++++++ tools/audio_extraction.py | 36 +- 112 files changed, 1676 insertions(+), 8 deletions(-) create mode 100644 assets/xml/audio/sequences/seq_0.xml create mode 100644 assets/xml/audio/sequences/seq_1.xml create mode 100644 assets/xml/audio/sequences/seq_10.xml create mode 100644 assets/xml/audio/sequences/seq_100.xml create mode 100644 assets/xml/audio/sequences/seq_101.xml create mode 100644 assets/xml/audio/sequences/seq_102.xml create mode 100644 assets/xml/audio/sequences/seq_103.xml create mode 100644 assets/xml/audio/sequences/seq_104.xml create mode 100644 assets/xml/audio/sequences/seq_105.xml create mode 100644 assets/xml/audio/sequences/seq_106.xml create mode 100644 assets/xml/audio/sequences/seq_107.xml create mode 100644 assets/xml/audio/sequences/seq_108.xml create mode 100644 assets/xml/audio/sequences/seq_109.xml create mode 100644 assets/xml/audio/sequences/seq_11.xml create mode 100644 assets/xml/audio/sequences/seq_12.xml create mode 100644 assets/xml/audio/sequences/seq_13.xml create mode 100644 assets/xml/audio/sequences/seq_14.xml create mode 100644 assets/xml/audio/sequences/seq_15.xml create mode 100644 assets/xml/audio/sequences/seq_16.xml create mode 100644 assets/xml/audio/sequences/seq_17.xml create mode 100644 assets/xml/audio/sequences/seq_18.xml create mode 100644 assets/xml/audio/sequences/seq_19.xml create mode 100644 assets/xml/audio/sequences/seq_2.xml create mode 100644 assets/xml/audio/sequences/seq_20.xml create mode 100644 assets/xml/audio/sequences/seq_21.xml create mode 100644 assets/xml/audio/sequences/seq_22.xml create mode 100644 assets/xml/audio/sequences/seq_23.xml create mode 100644 assets/xml/audio/sequences/seq_24.xml create mode 100644 assets/xml/audio/sequences/seq_25.xml create mode 100644 assets/xml/audio/sequences/seq_26.xml create mode 100644 assets/xml/audio/sequences/seq_27.xml create mode 100644 assets/xml/audio/sequences/seq_28.xml create mode 100644 assets/xml/audio/sequences/seq_29.xml create mode 100644 assets/xml/audio/sequences/seq_3.xml create mode 100644 assets/xml/audio/sequences/seq_30.xml create mode 100644 assets/xml/audio/sequences/seq_31.xml create mode 100644 assets/xml/audio/sequences/seq_32.xml create mode 100644 assets/xml/audio/sequences/seq_33.xml create mode 100644 assets/xml/audio/sequences/seq_34.xml create mode 100644 assets/xml/audio/sequences/seq_35.xml create mode 100644 assets/xml/audio/sequences/seq_36.xml create mode 100644 assets/xml/audio/sequences/seq_37.xml create mode 100644 assets/xml/audio/sequences/seq_38.xml create mode 100644 assets/xml/audio/sequences/seq_39.xml create mode 100644 assets/xml/audio/sequences/seq_4.xml create mode 100644 assets/xml/audio/sequences/seq_40.xml create mode 100644 assets/xml/audio/sequences/seq_41.xml create mode 100644 assets/xml/audio/sequences/seq_42.xml create mode 100644 assets/xml/audio/sequences/seq_43.xml create mode 100644 assets/xml/audio/sequences/seq_44.xml create mode 100644 assets/xml/audio/sequences/seq_45.xml create mode 100644 assets/xml/audio/sequences/seq_46.xml create mode 100644 assets/xml/audio/sequences/seq_47.xml create mode 100644 assets/xml/audio/sequences/seq_48.xml create mode 100644 assets/xml/audio/sequences/seq_49.xml create mode 100644 assets/xml/audio/sequences/seq_5.xml create mode 100644 assets/xml/audio/sequences/seq_50.xml create mode 100644 assets/xml/audio/sequences/seq_51.xml create mode 100644 assets/xml/audio/sequences/seq_52.xml create mode 100644 assets/xml/audio/sequences/seq_53.xml create mode 100644 assets/xml/audio/sequences/seq_54.xml create mode 100644 assets/xml/audio/sequences/seq_55.xml create mode 100644 assets/xml/audio/sequences/seq_56.xml create mode 100644 assets/xml/audio/sequences/seq_57.xml create mode 100644 assets/xml/audio/sequences/seq_58.xml create mode 100644 assets/xml/audio/sequences/seq_59.xml create mode 100644 assets/xml/audio/sequences/seq_6.xml create mode 100644 assets/xml/audio/sequences/seq_60.xml create mode 100644 assets/xml/audio/sequences/seq_61.xml create mode 100644 assets/xml/audio/sequences/seq_62.xml create mode 100644 assets/xml/audio/sequences/seq_63.xml create mode 100644 assets/xml/audio/sequences/seq_64.xml create mode 100644 assets/xml/audio/sequences/seq_65.xml create mode 100644 assets/xml/audio/sequences/seq_66.xml create mode 100644 assets/xml/audio/sequences/seq_67.xml create mode 100644 assets/xml/audio/sequences/seq_68.xml create mode 100644 assets/xml/audio/sequences/seq_69.xml create mode 100644 assets/xml/audio/sequences/seq_7.xml create mode 100644 assets/xml/audio/sequences/seq_70.xml create mode 100644 assets/xml/audio/sequences/seq_71.xml create mode 100644 assets/xml/audio/sequences/seq_72.xml create mode 100644 assets/xml/audio/sequences/seq_73.xml create mode 100644 assets/xml/audio/sequences/seq_74.xml create mode 100644 assets/xml/audio/sequences/seq_75.xml create mode 100644 assets/xml/audio/sequences/seq_76.xml create mode 100644 assets/xml/audio/sequences/seq_77.xml create mode 100644 assets/xml/audio/sequences/seq_78.xml create mode 100644 assets/xml/audio/sequences/seq_79.xml create mode 100644 assets/xml/audio/sequences/seq_8.xml create mode 100644 assets/xml/audio/sequences/seq_80.xml create mode 100644 assets/xml/audio/sequences/seq_81.xml create mode 100644 assets/xml/audio/sequences/seq_82.xml create mode 100644 assets/xml/audio/sequences/seq_83.xml create mode 100644 assets/xml/audio/sequences/seq_84.xml create mode 100644 assets/xml/audio/sequences/seq_85.xml create mode 100644 assets/xml/audio/sequences/seq_86.xml create mode 100644 assets/xml/audio/sequences/seq_88.xml create mode 100644 assets/xml/audio/sequences/seq_89.xml create mode 100644 assets/xml/audio/sequences/seq_9.xml create mode 100644 assets/xml/audio/sequences/seq_90.xml create mode 100644 assets/xml/audio/sequences/seq_91.xml create mode 100644 assets/xml/audio/sequences/seq_92.xml create mode 100644 assets/xml/audio/sequences/seq_93.xml create mode 100644 assets/xml/audio/sequences/seq_94.xml create mode 100644 assets/xml/audio/sequences/seq_95.xml create mode 100644 assets/xml/audio/sequences/seq_96.xml create mode 100644 assets/xml/audio/sequences/seq_97.xml create mode 100644 assets/xml/audio/sequences/seq_98.xml create mode 100644 assets/xml/audio/sequences/seq_99.xml create mode 100644 tools/audio/extraction/disassemble_sequence.py diff --git a/assets/xml/audio/sequences/seq_0.xml b/assets/xml/audio/sequences/seq_0.xml new file mode 100644 index 0000000000..d2050652c6 --- /dev/null +++ b/assets/xml/audio/sequences/seq_0.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_1.xml b/assets/xml/audio/sequences/seq_1.xml new file mode 100644 index 0000000000..668006ad5e --- /dev/null +++ b/assets/xml/audio/sequences/seq_1.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_10.xml b/assets/xml/audio/sequences/seq_10.xml new file mode 100644 index 0000000000..7a7d5454a5 --- /dev/null +++ b/assets/xml/audio/sequences/seq_10.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_100.xml b/assets/xml/audio/sequences/seq_100.xml new file mode 100644 index 0000000000..554641913d --- /dev/null +++ b/assets/xml/audio/sequences/seq_100.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_101.xml b/assets/xml/audio/sequences/seq_101.xml new file mode 100644 index 0000000000..a8dc3db486 --- /dev/null +++ b/assets/xml/audio/sequences/seq_101.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_102.xml b/assets/xml/audio/sequences/seq_102.xml new file mode 100644 index 0000000000..264a9fb3b8 --- /dev/null +++ b/assets/xml/audio/sequences/seq_102.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_103.xml b/assets/xml/audio/sequences/seq_103.xml new file mode 100644 index 0000000000..27b66e955b --- /dev/null +++ b/assets/xml/audio/sequences/seq_103.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_104.xml b/assets/xml/audio/sequences/seq_104.xml new file mode 100644 index 0000000000..c0560a0fd3 --- /dev/null +++ b/assets/xml/audio/sequences/seq_104.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_105.xml b/assets/xml/audio/sequences/seq_105.xml new file mode 100644 index 0000000000..11f30d8f76 --- /dev/null +++ b/assets/xml/audio/sequences/seq_105.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_106.xml b/assets/xml/audio/sequences/seq_106.xml new file mode 100644 index 0000000000..3efe9de557 --- /dev/null +++ b/assets/xml/audio/sequences/seq_106.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_107.xml b/assets/xml/audio/sequences/seq_107.xml new file mode 100644 index 0000000000..1b37819a3e --- /dev/null +++ b/assets/xml/audio/sequences/seq_107.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_108.xml b/assets/xml/audio/sequences/seq_108.xml new file mode 100644 index 0000000000..d02cc02095 --- /dev/null +++ b/assets/xml/audio/sequences/seq_108.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_109.xml b/assets/xml/audio/sequences/seq_109.xml new file mode 100644 index 0000000000..27064158e7 --- /dev/null +++ b/assets/xml/audio/sequences/seq_109.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_11.xml b/assets/xml/audio/sequences/seq_11.xml new file mode 100644 index 0000000000..233917f2a0 --- /dev/null +++ b/assets/xml/audio/sequences/seq_11.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_12.xml b/assets/xml/audio/sequences/seq_12.xml new file mode 100644 index 0000000000..de48f97302 --- /dev/null +++ b/assets/xml/audio/sequences/seq_12.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_13.xml b/assets/xml/audio/sequences/seq_13.xml new file mode 100644 index 0000000000..048b3efda6 --- /dev/null +++ b/assets/xml/audio/sequences/seq_13.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_14.xml b/assets/xml/audio/sequences/seq_14.xml new file mode 100644 index 0000000000..79d3238c61 --- /dev/null +++ b/assets/xml/audio/sequences/seq_14.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_15.xml b/assets/xml/audio/sequences/seq_15.xml new file mode 100644 index 0000000000..c54018295e --- /dev/null +++ b/assets/xml/audio/sequences/seq_15.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_16.xml b/assets/xml/audio/sequences/seq_16.xml new file mode 100644 index 0000000000..5267d04126 --- /dev/null +++ b/assets/xml/audio/sequences/seq_16.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_17.xml b/assets/xml/audio/sequences/seq_17.xml new file mode 100644 index 0000000000..0d6d306b3b --- /dev/null +++ b/assets/xml/audio/sequences/seq_17.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_18.xml b/assets/xml/audio/sequences/seq_18.xml new file mode 100644 index 0000000000..af445ff0dc --- /dev/null +++ b/assets/xml/audio/sequences/seq_18.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_19.xml b/assets/xml/audio/sequences/seq_19.xml new file mode 100644 index 0000000000..000b84c2c6 --- /dev/null +++ b/assets/xml/audio/sequences/seq_19.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_2.xml b/assets/xml/audio/sequences/seq_2.xml new file mode 100644 index 0000000000..35b67cbddb --- /dev/null +++ b/assets/xml/audio/sequences/seq_2.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_20.xml b/assets/xml/audio/sequences/seq_20.xml new file mode 100644 index 0000000000..35824b77fd --- /dev/null +++ b/assets/xml/audio/sequences/seq_20.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_21.xml b/assets/xml/audio/sequences/seq_21.xml new file mode 100644 index 0000000000..c4ab27602f --- /dev/null +++ b/assets/xml/audio/sequences/seq_21.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_22.xml b/assets/xml/audio/sequences/seq_22.xml new file mode 100644 index 0000000000..cac61f1e64 --- /dev/null +++ b/assets/xml/audio/sequences/seq_22.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_23.xml b/assets/xml/audio/sequences/seq_23.xml new file mode 100644 index 0000000000..ac69e86045 --- /dev/null +++ b/assets/xml/audio/sequences/seq_23.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_24.xml b/assets/xml/audio/sequences/seq_24.xml new file mode 100644 index 0000000000..2d3386a35d --- /dev/null +++ b/assets/xml/audio/sequences/seq_24.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_25.xml b/assets/xml/audio/sequences/seq_25.xml new file mode 100644 index 0000000000..ef233be23d --- /dev/null +++ b/assets/xml/audio/sequences/seq_25.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_26.xml b/assets/xml/audio/sequences/seq_26.xml new file mode 100644 index 0000000000..590a5165f4 --- /dev/null +++ b/assets/xml/audio/sequences/seq_26.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_27.xml b/assets/xml/audio/sequences/seq_27.xml new file mode 100644 index 0000000000..5d8ff12348 --- /dev/null +++ b/assets/xml/audio/sequences/seq_27.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_28.xml b/assets/xml/audio/sequences/seq_28.xml new file mode 100644 index 0000000000..4520532db0 --- /dev/null +++ b/assets/xml/audio/sequences/seq_28.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_29.xml b/assets/xml/audio/sequences/seq_29.xml new file mode 100644 index 0000000000..2ca7f3e712 --- /dev/null +++ b/assets/xml/audio/sequences/seq_29.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_3.xml b/assets/xml/audio/sequences/seq_3.xml new file mode 100644 index 0000000000..8aa3b1ff0f --- /dev/null +++ b/assets/xml/audio/sequences/seq_3.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_30.xml b/assets/xml/audio/sequences/seq_30.xml new file mode 100644 index 0000000000..a3dead9ba4 --- /dev/null +++ b/assets/xml/audio/sequences/seq_30.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_31.xml b/assets/xml/audio/sequences/seq_31.xml new file mode 100644 index 0000000000..9a1cfe9f27 --- /dev/null +++ b/assets/xml/audio/sequences/seq_31.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_32.xml b/assets/xml/audio/sequences/seq_32.xml new file mode 100644 index 0000000000..bb76497a80 --- /dev/null +++ b/assets/xml/audio/sequences/seq_32.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_33.xml b/assets/xml/audio/sequences/seq_33.xml new file mode 100644 index 0000000000..15bc25a25c --- /dev/null +++ b/assets/xml/audio/sequences/seq_33.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_34.xml b/assets/xml/audio/sequences/seq_34.xml new file mode 100644 index 0000000000..4d21886431 --- /dev/null +++ b/assets/xml/audio/sequences/seq_34.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_35.xml b/assets/xml/audio/sequences/seq_35.xml new file mode 100644 index 0000000000..4d1e7327e4 --- /dev/null +++ b/assets/xml/audio/sequences/seq_35.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_36.xml b/assets/xml/audio/sequences/seq_36.xml new file mode 100644 index 0000000000..63173ecbb4 --- /dev/null +++ b/assets/xml/audio/sequences/seq_36.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_37.xml b/assets/xml/audio/sequences/seq_37.xml new file mode 100644 index 0000000000..bd6813f620 --- /dev/null +++ b/assets/xml/audio/sequences/seq_37.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_38.xml b/assets/xml/audio/sequences/seq_38.xml new file mode 100644 index 0000000000..dc85ce3953 --- /dev/null +++ b/assets/xml/audio/sequences/seq_38.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_39.xml b/assets/xml/audio/sequences/seq_39.xml new file mode 100644 index 0000000000..5cef308792 --- /dev/null +++ b/assets/xml/audio/sequences/seq_39.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_4.xml b/assets/xml/audio/sequences/seq_4.xml new file mode 100644 index 0000000000..6311553183 --- /dev/null +++ b/assets/xml/audio/sequences/seq_4.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_40.xml b/assets/xml/audio/sequences/seq_40.xml new file mode 100644 index 0000000000..c58c83c2a8 --- /dev/null +++ b/assets/xml/audio/sequences/seq_40.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_41.xml b/assets/xml/audio/sequences/seq_41.xml new file mode 100644 index 0000000000..a74ce40600 --- /dev/null +++ b/assets/xml/audio/sequences/seq_41.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_42.xml b/assets/xml/audio/sequences/seq_42.xml new file mode 100644 index 0000000000..3298f00c4d --- /dev/null +++ b/assets/xml/audio/sequences/seq_42.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_43.xml b/assets/xml/audio/sequences/seq_43.xml new file mode 100644 index 0000000000..9e0d2f9280 --- /dev/null +++ b/assets/xml/audio/sequences/seq_43.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_44.xml b/assets/xml/audio/sequences/seq_44.xml new file mode 100644 index 0000000000..7f4efdd764 --- /dev/null +++ b/assets/xml/audio/sequences/seq_44.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_45.xml b/assets/xml/audio/sequences/seq_45.xml new file mode 100644 index 0000000000..1f23ccd5fa --- /dev/null +++ b/assets/xml/audio/sequences/seq_45.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_46.xml b/assets/xml/audio/sequences/seq_46.xml new file mode 100644 index 0000000000..af7340d3d5 --- /dev/null +++ b/assets/xml/audio/sequences/seq_46.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_47.xml b/assets/xml/audio/sequences/seq_47.xml new file mode 100644 index 0000000000..7b9b46489a --- /dev/null +++ b/assets/xml/audio/sequences/seq_47.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_48.xml b/assets/xml/audio/sequences/seq_48.xml new file mode 100644 index 0000000000..0cd313d2bd --- /dev/null +++ b/assets/xml/audio/sequences/seq_48.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_49.xml b/assets/xml/audio/sequences/seq_49.xml new file mode 100644 index 0000000000..c5aa4bbb6a --- /dev/null +++ b/assets/xml/audio/sequences/seq_49.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_5.xml b/assets/xml/audio/sequences/seq_5.xml new file mode 100644 index 0000000000..a1a398f463 --- /dev/null +++ b/assets/xml/audio/sequences/seq_5.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_50.xml b/assets/xml/audio/sequences/seq_50.xml new file mode 100644 index 0000000000..e2e3adcd26 --- /dev/null +++ b/assets/xml/audio/sequences/seq_50.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_51.xml b/assets/xml/audio/sequences/seq_51.xml new file mode 100644 index 0000000000..2b6ba4fcee --- /dev/null +++ b/assets/xml/audio/sequences/seq_51.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_52.xml b/assets/xml/audio/sequences/seq_52.xml new file mode 100644 index 0000000000..17f6f8ea8f --- /dev/null +++ b/assets/xml/audio/sequences/seq_52.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_53.xml b/assets/xml/audio/sequences/seq_53.xml new file mode 100644 index 0000000000..e9f0a82eae --- /dev/null +++ b/assets/xml/audio/sequences/seq_53.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_54.xml b/assets/xml/audio/sequences/seq_54.xml new file mode 100644 index 0000000000..a902858ca6 --- /dev/null +++ b/assets/xml/audio/sequences/seq_54.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_55.xml b/assets/xml/audio/sequences/seq_55.xml new file mode 100644 index 0000000000..361afcebd2 --- /dev/null +++ b/assets/xml/audio/sequences/seq_55.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_56.xml b/assets/xml/audio/sequences/seq_56.xml new file mode 100644 index 0000000000..5710f771e5 --- /dev/null +++ b/assets/xml/audio/sequences/seq_56.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_57.xml b/assets/xml/audio/sequences/seq_57.xml new file mode 100644 index 0000000000..b0f2c8573c --- /dev/null +++ b/assets/xml/audio/sequences/seq_57.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_58.xml b/assets/xml/audio/sequences/seq_58.xml new file mode 100644 index 0000000000..39cc260786 --- /dev/null +++ b/assets/xml/audio/sequences/seq_58.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_59.xml b/assets/xml/audio/sequences/seq_59.xml new file mode 100644 index 0000000000..cf7393a72e --- /dev/null +++ b/assets/xml/audio/sequences/seq_59.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_6.xml b/assets/xml/audio/sequences/seq_6.xml new file mode 100644 index 0000000000..f1d1176256 --- /dev/null +++ b/assets/xml/audio/sequences/seq_6.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_60.xml b/assets/xml/audio/sequences/seq_60.xml new file mode 100644 index 0000000000..2fdaac058f --- /dev/null +++ b/assets/xml/audio/sequences/seq_60.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_61.xml b/assets/xml/audio/sequences/seq_61.xml new file mode 100644 index 0000000000..f7add6ba57 --- /dev/null +++ b/assets/xml/audio/sequences/seq_61.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_62.xml b/assets/xml/audio/sequences/seq_62.xml new file mode 100644 index 0000000000..ca00f1bf03 --- /dev/null +++ b/assets/xml/audio/sequences/seq_62.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_63.xml b/assets/xml/audio/sequences/seq_63.xml new file mode 100644 index 0000000000..d7cb6e7fe6 --- /dev/null +++ b/assets/xml/audio/sequences/seq_63.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_64.xml b/assets/xml/audio/sequences/seq_64.xml new file mode 100644 index 0000000000..95eb98c73f --- /dev/null +++ b/assets/xml/audio/sequences/seq_64.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_65.xml b/assets/xml/audio/sequences/seq_65.xml new file mode 100644 index 0000000000..897347d02c --- /dev/null +++ b/assets/xml/audio/sequences/seq_65.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_66.xml b/assets/xml/audio/sequences/seq_66.xml new file mode 100644 index 0000000000..85f5ff5222 --- /dev/null +++ b/assets/xml/audio/sequences/seq_66.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_67.xml b/assets/xml/audio/sequences/seq_67.xml new file mode 100644 index 0000000000..36dfd9bbfb --- /dev/null +++ b/assets/xml/audio/sequences/seq_67.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_68.xml b/assets/xml/audio/sequences/seq_68.xml new file mode 100644 index 0000000000..6644e0b601 --- /dev/null +++ b/assets/xml/audio/sequences/seq_68.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_69.xml b/assets/xml/audio/sequences/seq_69.xml new file mode 100644 index 0000000000..59ee837c80 --- /dev/null +++ b/assets/xml/audio/sequences/seq_69.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_7.xml b/assets/xml/audio/sequences/seq_7.xml new file mode 100644 index 0000000000..5b099b03e8 --- /dev/null +++ b/assets/xml/audio/sequences/seq_7.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_70.xml b/assets/xml/audio/sequences/seq_70.xml new file mode 100644 index 0000000000..5e7966d811 --- /dev/null +++ b/assets/xml/audio/sequences/seq_70.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_71.xml b/assets/xml/audio/sequences/seq_71.xml new file mode 100644 index 0000000000..f0b9c5166c --- /dev/null +++ b/assets/xml/audio/sequences/seq_71.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_72.xml b/assets/xml/audio/sequences/seq_72.xml new file mode 100644 index 0000000000..f674c78d6a --- /dev/null +++ b/assets/xml/audio/sequences/seq_72.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_73.xml b/assets/xml/audio/sequences/seq_73.xml new file mode 100644 index 0000000000..2548961701 --- /dev/null +++ b/assets/xml/audio/sequences/seq_73.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_74.xml b/assets/xml/audio/sequences/seq_74.xml new file mode 100644 index 0000000000..b1da5b9923 --- /dev/null +++ b/assets/xml/audio/sequences/seq_74.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_75.xml b/assets/xml/audio/sequences/seq_75.xml new file mode 100644 index 0000000000..2bbceeb826 --- /dev/null +++ b/assets/xml/audio/sequences/seq_75.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_76.xml b/assets/xml/audio/sequences/seq_76.xml new file mode 100644 index 0000000000..368881c430 --- /dev/null +++ b/assets/xml/audio/sequences/seq_76.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_77.xml b/assets/xml/audio/sequences/seq_77.xml new file mode 100644 index 0000000000..0eed7ea92c --- /dev/null +++ b/assets/xml/audio/sequences/seq_77.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_78.xml b/assets/xml/audio/sequences/seq_78.xml new file mode 100644 index 0000000000..372b10db22 --- /dev/null +++ b/assets/xml/audio/sequences/seq_78.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_79.xml b/assets/xml/audio/sequences/seq_79.xml new file mode 100644 index 0000000000..cfd002b51b --- /dev/null +++ b/assets/xml/audio/sequences/seq_79.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_8.xml b/assets/xml/audio/sequences/seq_8.xml new file mode 100644 index 0000000000..d5b49b5d12 --- /dev/null +++ b/assets/xml/audio/sequences/seq_8.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_80.xml b/assets/xml/audio/sequences/seq_80.xml new file mode 100644 index 0000000000..2d7f51a5a6 --- /dev/null +++ b/assets/xml/audio/sequences/seq_80.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_81.xml b/assets/xml/audio/sequences/seq_81.xml new file mode 100644 index 0000000000..2534949364 --- /dev/null +++ b/assets/xml/audio/sequences/seq_81.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_82.xml b/assets/xml/audio/sequences/seq_82.xml new file mode 100644 index 0000000000..98d1bff9b7 --- /dev/null +++ b/assets/xml/audio/sequences/seq_82.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_83.xml b/assets/xml/audio/sequences/seq_83.xml new file mode 100644 index 0000000000..e44b8d6ff5 --- /dev/null +++ b/assets/xml/audio/sequences/seq_83.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_84.xml b/assets/xml/audio/sequences/seq_84.xml new file mode 100644 index 0000000000..55dc374a4c --- /dev/null +++ b/assets/xml/audio/sequences/seq_84.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_85.xml b/assets/xml/audio/sequences/seq_85.xml new file mode 100644 index 0000000000..1f024e0923 --- /dev/null +++ b/assets/xml/audio/sequences/seq_85.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_86.xml b/assets/xml/audio/sequences/seq_86.xml new file mode 100644 index 0000000000..f6acb8a9fe --- /dev/null +++ b/assets/xml/audio/sequences/seq_86.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_88.xml b/assets/xml/audio/sequences/seq_88.xml new file mode 100644 index 0000000000..a96383096c --- /dev/null +++ b/assets/xml/audio/sequences/seq_88.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_89.xml b/assets/xml/audio/sequences/seq_89.xml new file mode 100644 index 0000000000..62026869f8 --- /dev/null +++ b/assets/xml/audio/sequences/seq_89.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_9.xml b/assets/xml/audio/sequences/seq_9.xml new file mode 100644 index 0000000000..f6671b1e6e --- /dev/null +++ b/assets/xml/audio/sequences/seq_9.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_90.xml b/assets/xml/audio/sequences/seq_90.xml new file mode 100644 index 0000000000..1f1d9bde08 --- /dev/null +++ b/assets/xml/audio/sequences/seq_90.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_91.xml b/assets/xml/audio/sequences/seq_91.xml new file mode 100644 index 0000000000..e2bee2cb32 --- /dev/null +++ b/assets/xml/audio/sequences/seq_91.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_92.xml b/assets/xml/audio/sequences/seq_92.xml new file mode 100644 index 0000000000..3129a417d5 --- /dev/null +++ b/assets/xml/audio/sequences/seq_92.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_93.xml b/assets/xml/audio/sequences/seq_93.xml new file mode 100644 index 0000000000..0c6b204cb9 --- /dev/null +++ b/assets/xml/audio/sequences/seq_93.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_94.xml b/assets/xml/audio/sequences/seq_94.xml new file mode 100644 index 0000000000..59805445e3 --- /dev/null +++ b/assets/xml/audio/sequences/seq_94.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_95.xml b/assets/xml/audio/sequences/seq_95.xml new file mode 100644 index 0000000000..cdc31a61b1 --- /dev/null +++ b/assets/xml/audio/sequences/seq_95.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_96.xml b/assets/xml/audio/sequences/seq_96.xml new file mode 100644 index 0000000000..402fc8b8b9 --- /dev/null +++ b/assets/xml/audio/sequences/seq_96.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_97.xml b/assets/xml/audio/sequences/seq_97.xml new file mode 100644 index 0000000000..5726322125 --- /dev/null +++ b/assets/xml/audio/sequences/seq_97.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_98.xml b/assets/xml/audio/sequences/seq_98.xml new file mode 100644 index 0000000000..5bd56596b0 --- /dev/null +++ b/assets/xml/audio/sequences/seq_98.xml @@ -0,0 +1,2 @@ + + diff --git a/assets/xml/audio/sequences/seq_99.xml b/assets/xml/audio/sequences/seq_99.xml new file mode 100644 index 0000000000..d550855a0a --- /dev/null +++ b/assets/xml/audio/sequences/seq_99.xml @@ -0,0 +1,2 @@ + + diff --git a/tools/audio/extraction/audio_extract.py b/tools/audio/extraction/audio_extract.py index ea4f8612c3..05ab781072 100644 --- a/tools/audio/extraction/audio_extract.py +++ b/tools/audio/extraction/audio_extract.py @@ -6,7 +6,6 @@ import os, shutil, time from dataclasses import dataclass -from enum import auto, Enum from multiprocessing.pool import ThreadPool from typing import Dict, List, Tuple, Union from xml.etree import ElementTree @@ -15,11 +14,8 @@ from xml.etree.ElementTree import Element from .audio_tables import AudioCodeTable, AudioCodeTableEntry, AudioStorageMedium from .audiotable import AudioTableData, AudioTableFile, AudioTableSample from .audiobank_file import AudiobankFile -from .util import align, debugm, error, incbin, program_get - -class MMLVersion(Enum): - OOT = auto() - MM = auto() +from .disassemble_sequence import CMD_SPEC, SequenceDisassembler, SequenceTableSpec, MMLVersion +from .util import align, debugm, error, incbin, program_get, XMLWriter @dataclass class GameVersionInfo: @@ -41,6 +37,8 @@ class GameVersionInfo: fake_banks : Dict[int, int] # Contains audiotable indices that suffer from a buffer clearing bug audiotable_buffer_bugs : Tuple[int] + # Sequence disassembly table specs + seq_disas_tables : Dict[int, Tuple[SequenceTableSpec]] SAMPLECONV_PATH = f"{os.path.dirname(os.path.realpath(__file__))}/../sampleconv/sampleconv" @@ -176,6 +174,137 @@ def extract_samplebank(pool : ThreadPool, extracted_dir : str, sample_banks : Li if not BASEROM_DEBUG: shutil.rmtree(f"{base_path}/aifc") +def disassemble_one_sequence(extracted_dir : str, version_info : GameVersionInfo, soundfonts : List[AudiobankFile], + enum_names : List[str], id : int, data : bytes, name : str, filename : str, + fonts : memoryview): + out_filename = f"{extracted_dir}/assets/audio/sequences/{filename}.seq" + disas = SequenceDisassembler(id, data, version_info.seq_disas_tables.get(id, None), CMD_SPEC, + version_info.mml_version, out_filename, name, + [soundfonts[i] for i in fonts], enum_names) + disas.analyze() + disas.emit() + +def extract_sequences(audioseq_seg : memoryview, extracted_dir : str, version_info : GameVersionInfo, write_xml : bool, + sequence_table : AudioCodeTable, sequence_font_table : memoryview, + sequence_xmls : Dict[int, Element], soundfonts : List[AudiobankFile]): + + sequence_font_table_cvg = [0] * len(sequence_font_table) + + seq_enum_names = version_info.seq_enum_names + handwritten_sequences = version_info.handwritten_sequences + + # We should have as many enum names as sequences that require extraction + assert len(seq_enum_names) == len(sequence_table) + + if BASEROM_DEBUG: + os.makedirs(f"{extracted_dir}/baserom_audiotest/audioseq_files", exist_ok=True) + + os.makedirs(f"{extracted_dir}/assets/audio/sequences", exist_ok=True) + if write_xml: + os.makedirs(f"assets/xml/audio/sequences", exist_ok=True) + + all_fonts = [] + disas_jobs = [] + + t = time.time() + + for i,entry in enumerate(sequence_table): + entry : AudioCodeTableEntry + + # extract font indices + font_data_offset = (sequence_font_table[2 * i + 0] << 8) | (sequence_font_table[2 * i + 1]) + num_fonts = sequence_font_table[font_data_offset] + font_data_offset += 1 + fonts = sequence_font_table[font_data_offset:font_data_offset+num_fonts] + + all_fonts.append(fonts) + + # mark coverage for sequence font table + sequence_font_table_cvg[2 * i + 0] = 1 + sequence_font_table_cvg[2 * i + 1] = 1 + for j in range(font_data_offset-1,font_data_offset+num_fonts): + sequence_font_table_cvg[j] = 1 + + if entry.size != 0: + # Real sequence, queue extraction + + seq_data = bytearray(entry.data(audioseq_seg, sequence_table.rom_addr)) + + ext = ".prg" if i in handwritten_sequences else "" + + if BASEROM_DEBUG: + # Extract original sequence binary for comparison + with open(f"{extracted_dir}/baserom_audiotest/audioseq_files/seq_{i}{ext}.aseq", "wb") as outfile: + outfile.write(seq_data) + + extraction_xml = sequence_xmls.get(i, None) + if extraction_xml is None: + sequence_filename = f"seq_{i}" + sequence_name = f"Sequence_{i}" + else: + sequence_filename = extraction_xml[0] + sequence_name = extraction_xml[1].attrib["Name"] + + # Write extraction xml entry + if write_xml: + xml = XMLWriter() + + xml.write_comment("This file is only for extraction of vanilla data.") + + xml.write_element("Sequence", { + "Name" : sequence_name, + "Index" : i, + }) + + with open(f"assets/xml/audio/sequences/{sequence_filename}.xml", "w") as outfile: + outfile.write(str(xml)) + + if i in handwritten_sequences: + # skip "handwritten" sequences + continue + + disas_jobs.append((i, seq_data, sequence_name, sequence_filename, fonts)) + else: + # Pointer to another sequence, checked later + pass + + # Check full coverage + try: + if align(sequence_font_table_cvg.index(0), 16) != len(sequence_font_table_cvg): + # does not pad to full size, fail + assert False, "Sequence font table missing data" + # pads to full size, good + except ValueError: + pass # fully covered, good + + # Check consistency of font data for the same sequence accessed via pointers + + for i,entry in enumerate(sequence_table): + entry : AudioCodeTableEntry + + # Fonts for this entry + fonts = all_fonts[i] + + if entry.size != 0: + # real, ignore + pass + else: + # pointer, check that the fonts for this entry are the same as the fonts for the other + j = entry.rom_addr + + fonts2 = all_fonts[j] + + assert fonts == fonts2, \ + f"Font mismatch: Pointer {i} against Real {j}. This is a limitation of the build process." + + # Disassemble to text + + for job in disas_jobs: + disassemble_one_sequence(extracted_dir, version_info, soundfonts, seq_enum_names, *job) + + dt = time.time() - t + print(f"Sequences extraction took {dt:.3f}") + def extract_audio_for_version(version_info : GameVersionInfo, extracted_dir : str, read_xml : bool, write_xml : bool): print("Setting up...") @@ -184,6 +313,7 @@ def extract_audio_for_version(version_info : GameVersionInfo, extracted_dir : st code_seg = None audiotable_seg = None audiobank_seg = None + audioseq_seg = None with open(f"{extracted_dir}/baserom/code", "rb") as infile: code_seg = memoryview(infile.read()) @@ -194,6 +324,9 @@ def extract_audio_for_version(version_info : GameVersionInfo, extracted_dir : st with open(f"{extracted_dir}/baserom/Audiobank", "rb") as infile: audiobank_seg = memoryview(infile.read()) + with open(f"{extracted_dir}/baserom/Audioseq", "rb") as infile: + audioseq_seg = memoryview(infile.read()) + # ================================================================================================================== # Collect audio tables # ================================================================================================================== @@ -318,3 +451,12 @@ def extract_audio_for_version(version_info : GameVersionInfo, extracted_dir : st # write the extraction xml if specified if write_xml: sf.write_extraction_xml(f"assets/xml/audio/soundfonts/{sf.file_name}.xml") + + # ================================================================================================================== + # Extract sequences + # ================================================================================================================== + + print("Extracting sequences...") + + extract_sequences(audioseq_seg, extracted_dir, version_info, write_xml, sequence_table, sequence_font_table, + sequence_xmls, soundfonts) diff --git a/tools/audio/extraction/disassemble_sequence.py b/tools/audio/extraction/disassemble_sequence.py new file mode 100644 index 0000000000..af92598e0b --- /dev/null +++ b/tools/audio/extraction/disassemble_sequence.py @@ -0,0 +1,1276 @@ +#!/usr/bin/env python3 +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 +# +# Audio Sequence Disassembler +# + +""" +The approach for sequence disassembly is roughly as follows: + +``` + Set COVERAGE=[0 for _ in range(len(data))] + Set REF_QUEUE=[] + + Set OFFSET=0 + Set SECTION=SEQ +1: + Begin sequential disassembly at OFFSET using section type SECTION + Collect reference labels and section types into REF_QUEUE + Update entries in COVERAGE to 1 as bytes are read + End disassembly at `end` instruction + + If REF_QUEUE is not empty: + Pop a reference from REF_QUEUE + Set OFFSET=loc(reference) + Set SECTION=section(reference) + goto 1 + + If Any 0s in COVERAGE: + Set OFFSET=(index of first 0 in COVERAGE) + Set SECTION=guess_section(OFFSET) (make a heuristic guess for section based on neighbors) + goto 1 +``` + +There are some additional subtleties for handling padding and uncommon sections like `array`. + +For tables used in `dyncall`s, we have to rely on external information to provide the location and size of tables as +there is no reliable heuristic for identifying table sizes. + + +TODO + +sequence beginning with testchan 0 is a buffer (?) +OR any ldseq is an array and an array of 0 is a buffer (?) + +detect section overlaps and mark them as bugged in the output +""" + +from dataclasses import dataclass +from enum import Enum, auto +from typing import Callable, Dict, List, Optional, Tuple + +from .audiobank_file import AudiobankFile + +pitch_names = ( + "A0", "BF0", "B0", "C1", "DF1", "D1", "EF1", "E1", "F1", "GF1", "G1", "AF1", "A1", "BF1", "B1", "C2", + "DF2", "D2", "EF2", "E2", "F2", "GF2", "G2", "AF2", "A2", "BF2", "B2", "C3", "DF3", "D3", "EF3", "E3", + "F3", "GF3", "G3", "AF3", "A3", "BF3", "B3", "C4", "DF4", "D4", "EF4", "E4", "F4", "GF4", "G4", "AF4", + "A4", "BF4", "B4", "C5", "DF5", "D5", "EF5", "E5", "F5", "GF5", "G5", "AF5", "A5", "BF5", "B5", "C6", + "DF6", "D6", "EF6", "E6", "F6", "GF6", "G6", "AF6", "A6", "BF6", "B6", "C7", "DF7", "D7", "EF7", "E7", + "F7", "GF7", "G7", "AF7", "A7", "BF7", "B7", "C8", "DF8", "D8", "EF8", "E8", "F8", "GF8", "G8", "AF8", + "A8", "BF8", "B8", "C9", "DF9", "D9", "EF9", "E9", "F9", "GF9", "G9", "AF9", "A9", "BF9", "B9", "C10", + "DF10", "D10", "EF10", "E10", "F10", "BFNEG1", "BNEG1", "C0", "DF0", "D0", "EF0", "E0", "F0", "GF0", "G0", "AF0", +) + +# +# VERSIONS +# + +class MMLVersion(Enum): + OOT = auto() + MM = auto() + +VERSION_ALL = (MMLVersion.OOT, MMLVersion.MM) + +# +# SECTIONS +# + +class SqSection(Enum): + SEQ = ("SEQ", ".sequence") + CHAN = ("CHAN", ".channel") + LAYER = ("LAYER", ".layer") + ARRAY = ("ARRAY", ".array") + TABLE = ("TABLE", ".table") + ENVELOPE = ("ENVELOPE", ".envelope") + FILTER = ("FILTER", ".filter") + UNKNOWN = ("UNK", "") + + def __init__(self, prefix, lbl_prefix): + self.prefix = prefix + self.lbl_prefix = lbl_prefix + +SECTION_ALL = (SqSection.SEQ, SqSection.CHAN, SqSection.LAYER) + +# +# ARGS +# + +def maybe_hex(n): + if n < 10: + return f"{n}" + else: + return f"0x{n:X}" + +def sign_extend(x, n): + sgn = 1 << (n - 1) + return (x & (sgn - 1)) - (x & sgn) + +class MMLArg: + def __init__(self, disas): + self.value = self.read(disas) + + def read(self, disas): + raise NotImplementedError() + + def analyze(self, disas): + pass + + def emit(self, disas): + return str(self.value) + +class MMLArgBits(MMLArg): + def read(self, disas): + return disas.read_bits(type(self).NBITS) + +class ArgU8(MMLArg): + def read(self, disas): + return disas.read_u8() + +class ArgU4x2(MMLArg): + def read(self, disas): + return disas.read_u8() + + def emit(self, disas): + return f"{(self.value >> 4) & 0xF}, {self.value & 0xF}" + +class ArgSeqId(ArgU8): + def emit(self, disas): + return disas.all_seq_names[self.value] + +class ArgFontId(ArgU8): # TODO + def read(self, disas): + return disas.read_u8() + +class ArgPitchU8(ArgU8): + def emit(self, disas): + return f"PITCH_{pitch_names[self.value]}" + +class ArgS8(MMLArg): + def read(self, disas): + return sign_extend(disas.read_u8(), 8) + +class ArgU16(MMLArg): + def read(self, disas): + return disas.read_u16() + +class ArgS16(MMLArg): + def read(self, disas): + return sign_extend(disas.read_u16(), 16) + +class ArgHex8(ArgU8): + def emit(self, disas): + return f"0x{self.value:02X}" + +class ArgHex16(ArgU16): + def emit(self, disas): + return f"0x{self.value:04X}" + +class ArgBitField16(ArgU16): + def emit(self, disas): + return bin(self.value) + +class ArgInstr(ArgU8): + def emit(self, disas): + builtins = { + 126 : "FONTANY_INSTR_SFX", + 127 : "FONTANY_INSTR_DRUM", + 128 : "FONTANY_INSTR_SAWTOOTH", + 129 : "FONTANY_INSTR_TRIANGLE", + 130 : "FONTANY_INSTR_SINE", + 131 : "FONTANY_INSTR_SQUARE", + 132 : "FONTANY_INSTR_NOISE", + 133 : "FONTANY_INSTR_BELL", + 134 : "FONTANY_INSTR_8PULSE", + 135 : "FONTANY_INSTR_4PULSE", + 136 : "FONTANY_INSTR_ASM_NOISE", + } + if self.value in builtins: + return builtins[self.value] + + # Check against first font only, this is fine for 99% of cases since most sequences use just one font + font0 : AudiobankFile = disas.used_fonts[0] + + if self.value in font0.instrument_index_map: + name = f"SF{font0.bank_num}_{font0.instrument_name(self.value)}" + else: + print(f"Invalid instrument sourced from {font0.name}: {self.value}") + name = f"{self.value} /* invalid instrument */" + return name + +class ArgVar(MMLArg): + def read(self, disas): + ret = disas.read_u8() + if ret & 0x80: + ret = ((ret << 8) & 0x7F00) | disas.read_u8() + if ret < 128 and disas.insn_begin not in disas.force_long: + print(f"Unnecessary use of long immediate encoding @ 0x{disas.insn_begin:X}: {ret}") + disas.force_long.add(disas.insn_begin) + + return ret + +class ArgPortamentoMode(ArgHex8): + def read(self, disas): + ret = disas.read_u8() + disas.portamento_is_special = (ret & 0x80) != 0 + return ret + +class ArgStereoConfig(ArgU8): + def emit(self, disas): + assert (self.value & 0b11000000) == 0 + type = (self.value >> 4) & 0b11 + strong_right = (self.value >> 3) & 1 + strong_left = (self.value >> 2) & 1 + strong_rvrb_right = (self.value >> 1) & 1 + strong_rvrb_left = (self.value >> 0) & 1 + return f"{type}, {strong_right}, {strong_left}, {strong_rvrb_right}, {strong_rvrb_left}" + +class ArgPortamentoTime(ArgVar): + def read(self, disas): + if disas.portamento_is_special: + return disas.read_u8() + else: + return super().read(disas) + +class ArgBits3(MMLArgBits): + NBITS = 3 + +class ArgBits4(MMLArgBits): + NBITS = 4 + +class IOPort3(ArgBits3): + def emit(self, disas): + assert self.value in range(0,8) + return f"IO_PORT_{self.value}" + +class IOPort8(ArgU8): + def emit(self, disas): + if self.value in range(0,8): + return f"IO_PORT_{self.value}" + else: + return f"{self.value} # BAD IO PORT NUMBER" + +class ArgPitch(MMLArgBits): + NBITS = 6 + + def emit(self, disas): + return f"PITCH_{pitch_names[self.value]}" + +class ArgAddr(ArgHex16): + def analyze(self, disas): + disas.add_ref(self.value) + + def emit(self, disas): + value = self.value + + target_section = SqSection.UNKNOWN + for frag in disas.fragments: + if value in range(frag.start,frag.end): + target_section = frag.section + break + + addend = disas.addends.get(disas.pos, 0) + if disas.cur_section in (SqSection.SEQ, SqSection.CHAN, SqSection.LAYER, SqSection.ENVELOPE) and addend == 0: + # turn a label that's partway inside an instruction into a label beginning at the instruction + an addend + for start,end in disas.insn_ranges: + if value in range(start,end): + addend = value - start + value = start + break + + prefix = target_section.prefix + if addend != 0: + return f"{prefix}_{value:04X} + {maybe_hex(addend)}" + else: + return f"{prefix}_{value:04X}" + +class ArgRelAddr8(ArgAddr): + def read(self, disas): + rel_offset = sign_extend(disas.read_u8(), 8) + return disas.pos + rel_offset + +class ArgRelAddr16(ArgAddr): + def read(self, disas): + rel_offset = sign_extend(disas.read_u16(), 16) + return disas.pos + rel_offset + +class ArgSectionPtr(ArgAddr): + def analyze(self, disas): + disas.add_ref(self.value, disas.cur_section) + +class ArgBigSectionPtr(ArgAddr): + def analyze(self, disas): + disas.add_ref(self.value, disas.cur_section, big=True) + +class ArgRelSectionPtr(ArgRelAddr8): + def analyze(self, disas): + disas.add_ref(self.value, disas.cur_section) + +class ArgSeqPtr(ArgAddr): + def analyze(self, disas): + disas.add_ref(self.value, SqSection.SEQ, big=True) + +class ArgChanPtr(ArgAddr): + def analyze(self, disas): + disas.add_ref(self.value, SqSection.CHAN, big=True) + + def emit(self, disas): + return f"CHAN_{self.value:04X}" + +class ArgRelChanPtr(ArgRelAddr16): + def analyze(self, disas): + disas.add_ref(self.value, SqSection.CHAN, big=True) + + def emit(self, disas): + return f"CHAN_{self.value:04X}" + +class ArgLayerPtr(ArgAddr): + def analyze(self, disas): + disas.add_ref(self.value, SqSection.LAYER, big=True) + + def emit(self, disas): + return f"LAYER_{self.value:04X}" + +class ArgRelLayerPtr(ArgRelAddr16): + def analyze(self, disas): + disas.add_ref(self.value, SqSection.LAYER, big=True) + + def emit(self, disas): + return f"LAYER_{self.value:04X}" + +class ArgArrayPtr(ArgAddr): + def analyze(self, disas): + disas.add_ref(self.value, SqSection.ARRAY, big=True) + +class ArgEnvPtr(ArgAddr): + def analyze(self, disas): + disas.add_ref(self.value, SqSection.ENVELOPE, big=True) + + def emit(self, disas): + return f"ENVELOPE_{self.value:04X}" + +class ArgFilterPtr(ArgAddr): + def analyze(self, disas): + disas.add_ref(self.value, SqSection.FILTER, big=True) + + def emit(self, disas): + return f"FILTER_{self.value:04X}" + +class ArgTblPtr(ArgAddr): + def analyze(self, disas): + disas.add_ref(self.value, SqSection.TABLE, big=True) + + def emit(self, disas): + return f"TABLE_{self.value:04X}" + +class ArgUnkPtr(ArgAddr): + def analyze(self, disas): + disas.add_ref(self.value, SqSection.UNKNOWN) + +# +# COMMANDS +# + +@dataclass +class MMLCmd: + cmd_id : int + mnemonic : str + args : Tuple[MMLArg] = () + is_branch : bool = False + is_branch_unconditional : bool = False + is_terminal : bool = False + handler : Callable = None + sections : Tuple[SqSection] = SECTION_ALL + version : Tuple[MMLVersion] = VERSION_ALL + +def nesting_decr(cmd, disas): + disas.nesting -= 1 + if disas.nesting < 0: + disas.nesting = 0 + +def nesting_incr(cmd, disas): + disas.nesting += 1 + +def set_short(cmd, disas): + disas.large_notes = False + +def set_large(cmd, disas): + disas.large_notes = True + +# +# NOTE: Changes here must be reflected in aseq.h for re-assembly +# +CMD_SPEC = ( + # + # Control Flow Commands + # + MMLCmd(0xFF, 'end', is_terminal=True, handler=nesting_decr), + MMLCmd(0xFE, 'delay1'), + MMLCmd(0xFD, 'delay', args=(ArgVar,), sections=(SqSection.SEQ, SqSection.CHAN,)), + MMLCmd(0xFC, 'call', args=(ArgBigSectionPtr,)), + MMLCmd(0xFB, 'jump', args=(ArgSectionPtr,), is_branch=True, is_branch_unconditional=True), + MMLCmd(0xFA, 'beqz', args=(ArgSectionPtr,), is_branch=True), + MMLCmd(0xF9, 'bltz', args=(ArgSectionPtr,), is_branch=True), + MMLCmd(0xF8, 'loop', args=(ArgU8,), handler=nesting_incr), + MMLCmd(0xF7, 'loopend', handler=nesting_decr), + MMLCmd(0xF6, 'break', handler=nesting_decr), + MMLCmd(0xF5, 'bgez', args=(ArgSectionPtr,), is_branch=True), + MMLCmd(0xF4, 'rjump', args=(ArgRelSectionPtr,), is_branch=True, is_branch_unconditional=True), + MMLCmd(0xF3, 'rbeqz', args=(ArgRelSectionPtr,), is_branch=True), + MMLCmd(0xF2, 'rbltz', args=(ArgRelSectionPtr,), is_branch=True), + + # + # SEQ commands + # + # non-argbits commands + MMLCmd(0xF1, 'allocnotelist', sections=(SqSection.SEQ,), args=(ArgU8,)), + MMLCmd(0xF0, 'freenotelist', sections=(SqSection.SEQ,)), + MMLCmd(0xEF, 'unk_EF', sections=(SqSection.SEQ,), args=(ArgS16, ArgU8,)), + MMLCmd(0xDF, 'transpose', sections=(SqSection.SEQ,), args=(ArgS8,)), + MMLCmd(0xDE, 'rtranspose', sections=(SqSection.SEQ,), args=(ArgS8,)), + MMLCmd(0xDD, 'tempo', sections=(SqSection.SEQ,), args=(ArgU8,)), + MMLCmd(0xDC, 'tempochg', sections=(SqSection.SEQ,), args=(ArgS8,)), + MMLCmd(0xDB, 'vol', sections=(SqSection.SEQ,), args=(ArgU8,)), + MMLCmd(0xDA, 'volmode', sections=(SqSection.SEQ,), args=(ArgU8, ArgS16)), + MMLCmd(0xD9, "volscale", sections=(SqSection.SEQ,), args=(ArgU8,)), + MMLCmd(0xD7, 'initchan', sections=(SqSection.SEQ,), args=(ArgBitField16,)), + MMLCmd(0xD6, 'freechan', sections=(SqSection.SEQ,), args=(ArgBitField16,)), + MMLCmd(0xD5, 'mutescale', sections=(SqSection.SEQ,), args=(ArgS8,)), + MMLCmd(0xD4, 'mute', sections=(SqSection.SEQ,)), + MMLCmd(0xD3, 'mutebhv', sections=(SqSection.SEQ,), args=(ArgHex8,)), + MMLCmd(0xD2, 'ldshortvelarr', sections=(SqSection.SEQ,), args=(ArgArrayPtr,)), # length 16 + MMLCmd(0xD1, 'ldshortgatearr', sections=(SqSection.SEQ,), args=(ArgArrayPtr,)), # length 16 + MMLCmd(0xD0, 'notealloc', sections=(SqSection.SEQ,), args=(ArgU8,)), + MMLCmd(0xCE, 'rand', sections=(SqSection.SEQ,), args=(ArgU8,)), + MMLCmd(0xCD, 'dyncall', sections=(SqSection.SEQ,), args=(ArgTblPtr,)), + MMLCmd(0xCC, 'ldi', sections=(SqSection.SEQ,), args=(ArgU8,)), + MMLCmd(0xC9, 'and', sections=(SqSection.SEQ,), args=(ArgU8,)), + MMLCmd(0xC8, 'sub', sections=(SqSection.SEQ,), args=(ArgU8,)), + MMLCmd(0xC7, 'stseq', sections=(SqSection.SEQ,), args=(ArgU8, ArgAddr,)), + MMLCmd(0xC6, 'stop', sections=(SqSection.SEQ,)), + MMLCmd(0xC5, 'scriptctr', sections=(SqSection.SEQ,), args=(ArgU16,)), + MMLCmd(0xC4, 'runseq', sections=(SqSection.SEQ,), args=(ArgU8, ArgSeqId,)), + MMLCmd(0xC3, 'mutechan', sections=(SqSection.SEQ,), args=(ArgS16,), version=(MMLVersion.MM,)), + # argbits commands + MMLCmd(0x00, 'testchan', sections=(SqSection.SEQ,), args=(ArgBits4,)), + MMLCmd(0x40, 'stopchan', sections=(SqSection.SEQ,), args=(ArgBits4,)), + MMLCmd(0x50, 'subio', sections=(SqSection.SEQ,), args=(IOPort3,)), + MMLCmd(0x60, 'ldres', sections=(SqSection.SEQ,), args=(ArgBits4, ArgU8, ArgU8,)), + MMLCmd(0x70, 'stio', sections=(SqSection.SEQ,), args=(IOPort3,)), + MMLCmd(0x80, 'ldio', sections=(SqSection.SEQ,), args=(IOPort3,)), + MMLCmd(0x90, 'ldchan', sections=(SqSection.SEQ,), args=(ArgBits4, ArgChanPtr,)), + MMLCmd(0xA0, 'rldchan', sections=(SqSection.SEQ,), args=(ArgBits4, ArgRelChanPtr,)), + MMLCmd(0xB0, 'ldseq', sections=(SqSection.SEQ,), args=(ArgBits4, ArgSeqId, ArgUnkPtr,)), + + # + # CHAN commands + # + # non-argbits commands + MMLCmd(0xF1, 'allocnotelist', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xF0, 'freenotelist', sections=(SqSection.CHAN,)), + MMLCmd(0xEE, 'bendfine', sections=(SqSection.CHAN,), args=(ArgS8,)), + MMLCmd(0xED, 'gain', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xEC, 'vibreset', sections=(SqSection.CHAN,)), + MMLCmd(0xEB, 'fontinstr', sections=(SqSection.CHAN,), args=(ArgFontId, ArgInstr)), + MMLCmd(0xEA, 'stop', sections=(SqSection.CHAN,)), + MMLCmd(0xE9, 'notepri', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xE8, 'params', sections=(SqSection.CHAN,), args=(ArgU8, ArgU8, ArgU8, ArgS8, ArgS8, ArgU8, ArgU8, ArgU8,)), + MMLCmd(0xE7, 'ldparams', sections=(SqSection.CHAN,), args=(ArgAddr,)), + MMLCmd(0xE6, 'samplebook', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xE5, 'reverbidx', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xE4, 'dyncall', sections=(SqSection.CHAN,)), + MMLCmd(0xE3, 'vibdelay', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xE2, 'vibdepthgrad', sections=(SqSection.CHAN,), args=(ArgU8, ArgU8, ArgU8,)), + MMLCmd(0xE1, 'vibfreqgrad', sections=(SqSection.CHAN,), args=(ArgU8, ArgU8, ArgU8,)), + MMLCmd(0xE0, 'volexp', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xDF, 'vol', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xDE, 'freqscale', sections=(SqSection.CHAN,), args=(ArgU16,)), + MMLCmd(0xDD, 'pan', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xDC, 'panweight', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xDB, 'transpose', sections=(SqSection.CHAN,), args=(ArgS8,)), + MMLCmd(0xDA, 'env', sections=(SqSection.CHAN,), args=(ArgEnvPtr,)), + MMLCmd(0xD9, 'releaserate', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xD8, 'vibdepth', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xD7, 'vibfreq', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xD4, 'reverb', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xD3, 'bend', sections=(SqSection.CHAN,), args=(ArgS8,)), + MMLCmd(0xD2, 'sustain', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xD1, 'notealloc', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xD0, 'effects', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xCF, 'stptrtoseq', sections=(SqSection.CHAN,), args=(ArgAddr,)), + MMLCmd(0xCE, 'ldptr', sections=(SqSection.CHAN,), args=(ArgAddr,)), + MMLCmd(0xCD, 'stopchan', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xCC, 'ldi', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xCB, 'ldseq', sections=(SqSection.CHAN,), args=(ArgUnkPtr,)), + MMLCmd(0xCA, 'mutebhv', sections=(SqSection.CHAN,), args=(ArgHex8,)), + MMLCmd(0xC9, 'and', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xC8, 'sub', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xC7, 'stseq', sections=(SqSection.CHAN,), args=(ArgU8, ArgAddr,)), + MMLCmd(0xC6, 'font', sections=(SqSection.CHAN,), args=(ArgFontId,)), + MMLCmd(0xC5, 'dyntbllookup', sections=(SqSection.CHAN,)), + MMLCmd(0xC4, 'noshort', sections=(SqSection.CHAN,), handler=set_large), + MMLCmd(0xC3, 'short', sections=(SqSection.CHAN,), handler=set_short), + MMLCmd(0xC2, 'dyntbl', sections=(SqSection.CHAN,), args=(ArgTblPtr,)), + MMLCmd(0xC1, 'instr', sections=(SqSection.CHAN,), args=(ArgInstr,)), + MMLCmd(0xBE, 'unk_BE', sections=(SqSection.CHAN,), args=(ArgU8,), version=(MMLVersion.MM,)), + MMLCmd(0xBD, 'randptr', sections=(SqSection.CHAN,), args=(ArgU16, ArgU16,), version=(MMLVersion.OOT,)), + MMLCmd(0xBD, 'samplestart', sections=(SqSection.CHAN,), args=(ArgU8,), version=(MMLVersion.MM,)), + MMLCmd(0xBC, 'ptradd', sections=(SqSection.CHAN,), args=(ArgHex16,)), + MMLCmd(0xBB, 'combfilter', sections=(SqSection.CHAN,), args=(ArgU8, ArgU16)), + MMLCmd(0xBA, 'randgate', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xB9, 'randvel', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xB8, 'rand', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xB7, 'randtoptr', sections=(SqSection.CHAN,), args=(ArgU16,)), + MMLCmd(0xB6, 'dyntblv', sections=(SqSection.CHAN,)), + MMLCmd(0xB5, 'dyntbltoptr', sections=(SqSection.CHAN,)), + MMLCmd(0xB4, 'ptrtodyntbl', sections=(SqSection.CHAN,)), + MMLCmd(0xB3, 'filter', sections=(SqSection.CHAN,), args=(ArgU4x2,)), + MMLCmd(0xB2, 'ldseqtoptr', sections=(SqSection.CHAN,), args=(ArgTblPtr,)), + MMLCmd(0xB1, 'freefilter', sections=(SqSection.CHAN,)), + MMLCmd(0xB0, 'ldfilter', sections=(SqSection.CHAN,), args=(ArgFilterPtr,)), + MMLCmd(0xAA, 'unk_AA', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)), + MMLCmd(0xA8, 'randptr', sections=(SqSection.CHAN,), args=(ArgU16, ArgU16,), version=(MMLVersion.MM,)), + MMLCmd(0xA7, 'unk_A7', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)), + MMLCmd(0xA6, 'unk_A6', sections=(SqSection.CHAN,), args=(ArgVar, ArgVar,), version=(MMLVersion.MM,)), + MMLCmd(0xA5, 'unk_A5', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)), + MMLCmd(0xA4, 'unk_A4', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)), + MMLCmd(0xA3, 'unk_A3', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)), + MMLCmd(0xA2, 'unk_A2', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)), + MMLCmd(0xA1, 'unk_A1', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)), + MMLCmd(0xA0, 'unk_A0', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)), + # argbits commands + MMLCmd(0x00, 'cdelay', sections=(SqSection.CHAN,), args=(ArgBits4,)), + MMLCmd(0x10, 'sample', sections=(SqSection.CHAN,), args=(ArgBits3, ArgAddr,)), + MMLCmd(0x18, 'sampleptr', sections=(SqSection.CHAN,), args=(ArgBits3, ArgAddr,)), + MMLCmd(0x20, 'ldchan', sections=(SqSection.CHAN,), args=(ArgBits4, ArgChanPtr,)), + MMLCmd(0x30, 'stcio', sections=(SqSection.CHAN,), args=(ArgBits4, IOPort8,)), + MMLCmd(0x40, 'ldcio', sections=(SqSection.CHAN,), args=(ArgBits4, IOPort8,)), + MMLCmd(0x50, 'subio', sections=(SqSection.CHAN,), args=(IOPort3,)), + MMLCmd(0x60, 'ldio', sections=(SqSection.CHAN,), args=(IOPort3,)), + MMLCmd(0x70, 'stio', sections=(SqSection.CHAN,), args=(IOPort3,)), + MMLCmd(0x78, 'rldlayer', sections=(SqSection.CHAN,), args=(ArgBits3, ArgRelLayerPtr,)), + MMLCmd(0x80, 'testlayer', sections=(SqSection.CHAN,), args=(ArgBits3,)), + MMLCmd(0x88, 'ldlayer', sections=(SqSection.CHAN,), args=(ArgBits3, ArgLayerPtr,)), + MMLCmd(0x90, 'dellayer', sections=(SqSection.CHAN,), args=(ArgBits3,)), + MMLCmd(0x98, 'dynldlayer', sections=(SqSection.CHAN,), args=(ArgBits3,)), + + # + # LAYER commands + # + # non-argbits commands + MMLCmd(0xC0, 'ldelay', sections=(SqSection.LAYER,), args=(ArgVar,)), + MMLCmd(0xC1, 'shortvel', sections=(SqSection.LAYER,), args=(ArgU8,)), + MMLCmd(0xC2, 'transpose', sections=(SqSection.LAYER,), args=(ArgS8,)), + MMLCmd(0xC3, 'shortdelay', sections=(SqSection.LAYER,), args=(ArgVar,)), + MMLCmd(0xC4, 'legato', sections=(SqSection.LAYER,)), + MMLCmd(0xC5, 'nolegato', sections=(SqSection.LAYER,)), + MMLCmd(0xC6, 'instr', sections=(SqSection.LAYER,), args=(ArgInstr,)), + MMLCmd(0xC7, 'portamento', sections=(SqSection.LAYER,), args=(ArgPortamentoMode, ArgPitchU8, ArgPortamentoTime,)), + MMLCmd(0xC8, 'noportamento', sections=(SqSection.LAYER,)), + MMLCmd(0xC9, 'shortgate', sections=(SqSection.LAYER,), args=(ArgU8,)), + MMLCmd(0xCA, 'notepan', sections=(SqSection.LAYER,), args=(ArgU8,)), + MMLCmd(0xCB, 'env', sections=(SqSection.LAYER,), args=(ArgEnvPtr, ArgU8,)), + MMLCmd(0xCC, 'nodrumpan', sections=(SqSection.LAYER,)), + MMLCmd(0xCD, 'stereo', sections=(SqSection.LAYER,), args=(ArgStereoConfig,)), + MMLCmd(0xCE, 'bendfine', sections=(SqSection.LAYER,), args=(ArgS8,)), + MMLCmd(0xCF, 'releaserate', sections=(SqSection.LAYER,), args=(ArgU8,)), + MMLCmd(0xD0, 'ldshortvel', sections=(SqSection.LAYER,), args=(ArgBits4,)), + MMLCmd(0xE0, 'ldshortgate', sections=(SqSection.LAYER,), args=(ArgBits4,)), + MMLCmd(0xF0, 'unk_F0', sections=(SqSection.LAYER,), args=(ArgS16,), version=(MMLVersion.MM,)), + MMLCmd(0xF1, 'surroundeffect', sections=(SqSection.LAYER,), args=(ArgU8,), version=(MMLVersion.MM,)), + # argbits commands + # large layer + MMLCmd(0x00, 'notedvg', sections=(SqSection.LAYER,), args=(ArgPitch, ArgVar, ArgU8, ArgU8,)), + MMLCmd(0x40, 'notedv', sections=(SqSection.LAYER,), args=(ArgPitch, ArgVar, ArgU8,)), + MMLCmd(0x80, 'notevg', sections=(SqSection.LAYER,), args=(ArgPitch, ArgU8, ArgU8,)), + # small layer + MMLCmd(0x00, 'shortdvg', sections=(SqSection.LAYER,), args=(ArgPitch, ArgVar,)), + MMLCmd(0x40, 'shortdv', sections=(SqSection.LAYER,), args=(ArgPitch,)), + MMLCmd(0x80, 'shortvg', sections=(SqSection.LAYER,), args=(ArgPitch,)), +) + +# +# DISASSEMBLER +# + +class SequenceFragment: + def __init__(self, disas, section, data, start, end): + assert len(data) == end - start , f"Bad: got {len(data)} bytes for range [{start}:{end}] {data}" + + self.section = section + self.data = data + self.start = start + self.end = end + self.disas = disas + + def __str__(self): + return f"Fragment ({self.section}) [{self.start}, {self.end}]" + + def __lt__(self, other): + return self.start < other.start + + @staticmethod + def merge(frag1, frag2): + if frag1 == frag2: + return frag1 + + if frag1.section != frag2.section: + return None + + # don't merge envelopes or tables ever + if frag1.section in (SqSection.ENVELOPE, SqSection.TABLE): + return None + + min_start = min(frag1.start, frag2.start) + max_start = max(frag1.start, frag2.start) + min_end = min(frag1.end, frag2.end) + max_end = max(frag1.end, frag2.end) + + if max_start > min_end: + return None + + data1, data2 = frag1.data, frag2.data + if frag2.start < frag1.start: + data1, data2 = data2, data1 + + if min_end == max_end: + # data1 contains data2 + return SequenceFragment(frag1.disas, frag1.section, data1, min_start, max_end) + + assert data1[max_start:] == data2[:len(data1)-max_start] , \ + f"Data does not agree on overlap between\n{frag1}\n{frag2}\n{data2[:len(data1)-max_start]}" + + return SequenceFragment(frag1.disas, frag1.section, data1[:max_start] + data2, min_start, max_end) + +@dataclass +class SequenceTableSpec: + start_offset : int + num_entries : int + addend : int + sectype : SqSection + + def contains_loc(self, pos): + return pos in range(self.start_offset, self.start_offset + 2 * self.num_entries) + +class SequenceDisassembler: + + def __init__(self, seq_num : int, data : bytes, tables : Optional[Tuple[SequenceTableSpec]], cmds : Tuple[MMLCmd], + version : MMLVersion, outpath : str, seq_name : str, used_fonts : List[AudiobankFile], all_seq_names): + self.seq_num = seq_num + self.seq_name = seq_name + self.used_fonts = used_fonts + + self.all_seq_names = all_seq_names + + self.pos = 0 + self.insn_begin = 0 + self.data = data + self.hit_eof = False + self.cur_section = SqSection.SEQ + self.nesting = 0 + self.portamento_is_special = False + self.large_notes = True + + self.outpath = outpath + + self.cmds : Dict[SqSection, Dict[int, MMLCmd]] = { + SqSection.SEQ : {}, + SqSection.CHAN : {}, + SqSection.LAYER : {}, + } + + # preprocess command list into dictionary, possibly duplicating into + # several id keys if any lsbits are used as an arg + for cmd in cmds: + # ignore commands not in this version + if version not in cmd.version: + continue + + # find number of lsbits that don't contribute to the command id + if len(cmd.args) > 0 and issubclass(cmd.args[0], MMLArgBits): + nbits = cmd.args[0].NBITS + else: + nbits = 0 + + id = cmd.cmd_id + + for section in cmd.sections: + cmds_s = self.cmds[section] + + for i in range(1 << nbits): + new = cmd + old = cmds_s.get(id + i, None) + if old is not None: + assert old.mnemonic in ("notedvg", "notedv", "notevg"), (old.mnemonic, cmd.mnemonic) + new = (old, cmd) + + cmds_s[id + i] = new + + self.force_long = set() + + self.insn_ranges = [] + + self.coverage = [0] * len(self.data) + + self.fragments = [] + + self.branch_targets = {} + self.big_labels = set() + + self.all_ranges = [] + + self.decode_list = [] + self.all_seen = [] + + self.tables : Optional[Tuple[SequenceTableSpec]] = tables + self.table_cache = set() + + self.addends = {} + + self.unused = [] + + # general helpers + + def read_bits(self, nbits): + return self.bits_val + + def read_u8(self): + if self.hit_eof: + raise Exception() + + if self.pos == len(self.data): + self.hit_eof = True + ret = None + else: + ret = self.data[self.pos] + self.pos += 1 + return ret + + def read_u16(self): + return (self.read_u8() << 8) | self.read_u8() + + def read_s16(self): + return sign_extend(self.read_u16(), 16) + + def lookup_cmd(self, id : int) -> MMLCmd: + # lookup command info + cmd : MMLCmd = self.cmds[self.cur_section].get(id, None) + assert cmd is not None , (self.cur_section, id, self.cmds) + + if isinstance(cmd, tuple): + # select based on whether we're dealing with large or short notes + cmd = cmd[int(not self.large_notes)] + + # part of the command byte may be an arg, save the value + mask = 0 + if len(cmd.args) > 0 and issubclass(cmd.args[0], MMLArgBits): + mask = (1 << cmd.args[0].NBITS) - 1 + self.bits_val = id & mask + + return cmd + + # + # analysis helpers + # + + def register_addend(self, pos, value): + self.addends[pos] = value + + def add_branch_target(self, value, section, big=False): + self.branch_targets[value] = section + if big: + self.big_labels.add(value) + + def add_ref(self, value, section=None, big=False): + if section is None: + self.add_branch_target(value, SqSection.UNKNOWN) + return + + self.add_branch_target(value, section, big=big) + + self.add_job(value, section, self.cur_section) + + def add_job(self, value, section, from_section=None): + if value not in self.all_seen: + self.all_seen.append(value) + self.decode_list.append((value, section, from_section or section)) + + def merge_frags(self): + self.fragments = list(sorted(self.fragments)) + + if len(self.fragments) < 2: + return + + i = 0 + while i != len(self.fragments) - 1: + frag1 = self.fragments[i] + frag2 = self.fragments[i + 1] + merged = SequenceFragment.merge(frag1, frag2) + if merged is not None: + self.fragments[i] = merged + del self.fragments[i + 1] + else: + i += 1 + + # + # analysis handlers + # + + def analyze_code(self): # sequence, channel, layer + start_pos = self.pos + + # print(f" << [0x{start_pos:X}/0x{len(self.data):X}] :: {self.cur_section} >>") + + self.insn_begin = start_pos + cmd_byte = self.read_u8() + cmd = self.lookup_cmd(cmd_byte) + + assert cmd is not None , f"Bad command ID 0x{cmd_byte:02X} for section {self.cur_section.name} at 0x{start_pos:X}" + # print(hex(cmd_byte)) + + args = [argtype(self) for argtype in cmd.args] + + raw_data = self.data[start_pos:self.pos] + + self.insn_ranges.append((start_pos, self.pos)) + + for i in range(start_pos,self.pos): + self.coverage[i] = self.cur_section + + # print(f"/* 0x{start_pos:04X} [{' '.join([f'0x{b:02X}' for b in raw_data]):24}] */ {cmd.mnemonic:11} {', '.join([arg.emit(self) for arg in args])}".strip()) + + for arg in args: + arg.analyze(self) + + if cmd.handler is not None: + cmd.handler(cmd, self) + + self.fragments.append(SequenceFragment(self, self.cur_section, raw_data, start_pos, self.pos)) + + if not (cmd.is_branch_unconditional or cmd.is_terminal): + self.decode_list.append((self.pos, self.cur_section, self.cur_section)) + + def analyze_table(self): + assert self.tables is not None, "Found a table but no table spec provided." + + for table_spec in self.tables: + if table_spec.contains_loc(self.pos): + break + else: + assert False , f"Found table at {self.pos:04X} but no entry number provided" + + start_pos = self.pos = table_spec.offset + if start_pos in self.table_cache: + return + + for _ in range(table_spec.num_entries): + curpos = self.pos + cur = self.read_u16() - table_spec.addend + if cur >= len(self.data) - 1: + assert False , "Bad table pointer" + + self.add_branch_target(cur, table_spec.sectype, big=True) + self.add_job(cur, table_spec.sectype, table_spec.sectype) + self.register_addend(curpos, table_spec.addend) + + self.fragments.append(SequenceFragment(self, self.cur_section, self.data[start_pos:self.pos], start_pos, self.pos)) + self.table_cache.add(start_pos) + + def analyze_array(self): + start_pos = self.pos + + # TODO better heuristic than just hardcoding 16... + # it would be better to wait until later to resize arrays though, up to the next identified fragment + # ARRAY + UNK + OTHER -> ARRAY + OTHER + for _ in range(16): + assert self.read_u8() == 0 + + self.fragments.append(SequenceFragment(self, self.cur_section, self.data[start_pos:self.pos], start_pos, self.pos)) + + def analyze_filter(self): + start_pos = self.pos + + for _ in range(8): + assert self.read_u16() == 0 + + self.fragments.append(SequenceFragment(self, self.cur_section, self.data[start_pos:self.pos], start_pos, self.pos)) + + def analyze_envelope(self): + start_pos = self.pos + + while True: # dangerous + delay = self.read_s16() + arg = self.read_s16() + if delay < 0: + break + + self.fragments.append(SequenceFragment(self, self.cur_section, self.data[start_pos:self.pos], start_pos, self.pos)) + + def analyze_unknown(self): + self.fragments.append(SequenceFragment(self, self.cur_section, self.data[self.pos:self.pos+2], self.pos, self.pos+2)) + + def analyze(self): + # mark offset 0 as a SEQ section + self.add_branch_target(0, SqSection.SEQ, big=True) + self.decode_list.append((0, SqSection.SEQ, SqSection.SEQ)) + + # analyze all sections, following branches to locate new sections + while len(self.decode_list) != 0: + self.pos, self.cur_section, self.refd_from = self.decode_list.pop() + + if self.pos >= len(self.data): + # ignore sections that begin past the end of the file + # TODO should be an error or warning? + continue + + # execute handler based on section + { + SqSection.SEQ : self.analyze_code, + SqSection.CHAN : self.analyze_code, + SqSection.LAYER : self.analyze_code, + SqSection.TABLE : self.analyze_table, + SqSection.ARRAY : self.analyze_array, + SqSection.FILTER : self.analyze_filter, + SqSection.ENVELOPE : self.analyze_envelope, + SqSection.UNKNOWN : self.analyze_unknown, + }[self.cur_section]() + + # merge fragments + self.merge_frags() + + # update coverage + self.final_cvg = [0] * len(self.data) + for frag in self.fragments: + for i in range(frag.start,frag.end): + self.final_cvg[i] = frag.section + + # resolve gaps in coverage + while True: + # keeps going until there's no zeros except for padding + try: + first_zero_idx = self.final_cvg.index(0) + except ValueError: + break # no more gaps + + # there was a gap, handle it + + if ((first_zero_idx + 0xF) & ~0xF) == len(self.data) and \ + all(b == 0 for b in self.final_cvg[first_zero_idx:]) and \ + all(b == 0 for b in self.data[first_zero_idx:]): + # there's only padding left, we're done + break + else: + # resolve non-padding gaps with heuristics + + # TODO any unknown data after a `jump` in a sequence frag should extend the sequence frag + # TODO any unknown data before a filter should be a balign 16 + + last_zero_idx = first_zero_idx + while self.final_cvg[last_zero_idx] == 0 and last_zero_idx < len(self.final_cvg)-1: + self.final_cvg[last_zero_idx] = SqSection.UNKNOWN + last_zero_idx += 1 + + num_unk = last_zero_idx - first_zero_idx + + emit_unk = True + + prev_frag = None + prev_frag_idx = None + next_frag = None + next_frag_idx = None + + for i,frag in enumerate(self.fragments): + if frag.end == first_zero_idx: + prev_frag = frag + prev_frag_idx = i + elif frag.start == last_zero_idx: + next_frag = frag + next_frag_idx = i + + # SEQ + UNK -> SEQ + if prev_frag is not None: + if prev_frag.section == SqSection.SEQ: + self.fragments[prev_frag_idx] = SequenceFragment(self, SqSection.SEQ, + self.data[prev_frag.start:last_zero_idx], + prev_frag.start, last_zero_idx) + emit_unk = False + + if next_frag is not None: + # UNK + FILTER -> FILTER + if next_frag.section == SqSection.FILTER and num_unk < 16: + emit_unk = False + + # UNK + TABLE -> TABLE + if next_frag.section == SqSection.TABLE and num_unk < 2: + emit_unk = False + + if prev_frag is not None and next_frag is not None: + # LAYER + UNK + LAYER -> LAYER LAYER LAYER + if prev_frag.section == SqSection.LAYER and next_frag.section == SqSection.LAYER: + self.fragments.append(SequenceFragment(self, SqSection.LAYER, self.data[first_zero_idx:last_zero_idx], first_zero_idx, last_zero_idx)) + emit_unk = False + + # LAYER + UNK + CHANNEL -> LAYER LAYER CHANNEL + if prev_frag.section == SqSection.LAYER and next_frag.section == SqSection.CHAN: + self.fragments.append(SequenceFragment(self, SqSection.LAYER, self.data[first_zero_idx:last_zero_idx], first_zero_idx, last_zero_idx)) + emit_unk = False + + # TABLE + UNK + ENVELOPE -> TABLE + ENVELOPE.. + ENVELOPE + if prev_frag.section == SqSection.TABLE and next_frag.section == SqSection.ENVELOPE: + self.fragments.append(SequenceFragment(self, SqSection.ENVELOPE, self.data[first_zero_idx:last_zero_idx], first_zero_idx, last_zero_idx)) + emit_unk = False + + # ENVELOPE + UNK + ENVELOPE -> ENVELOPE + ENVELOPE.. + ENVELOPE + if prev_frag.section == SqSection.ENVELOPE and next_frag.section == SqSection.ENVELOPE: + self.fragments.append(SequenceFragment(self, SqSection.ENVELOPE, self.data[first_zero_idx:last_zero_idx], first_zero_idx, last_zero_idx)) + emit_unk = False + + if prev_frag is not None and next_frag is None: + # ENVELOPE + UNK + END -> ENVELOPE + ENVELOPE.. + FILTER.. + END + if prev_frag.section == SqSection.ENVELOPE: + if all(b == 0 for b in self.data[first_zero_idx:]): + for k in range(first_zero_idx, len(self.data), 16): + if k + 16 > len(self.data): + # padding + break + self.fragments.append(SequenceFragment(self, SqSection.FILTER, self.data[k:k+16], k, k + 16)) + else: + self.fragments.append(SequenceFragment(self, SqSection.ENVELOPE, self.data[first_zero_idx:last_zero_idx], first_zero_idx, last_zero_idx)) + emit_unk = False + + if emit_unk: + # leave it unknown for now, TODO make reasonable guesses + self.add_branch_target(first_zero_idx, SqSection.UNKNOWN) + self.fragments.append(SequenceFragment(self, SqSection.UNKNOWN, self.data[first_zero_idx:last_zero_idx], first_zero_idx, last_zero_idx)) + + # + # disas helpers + # + + def label_name(self, value, section, force_big=False): + if value in self.big_labels or force_big: + lbl_prefix = section.lbl_prefix + " " + suffix = "" + else: + lbl_prefix = "" + suffix = ":" + + return f"{lbl_prefix}{section.prefix}_{value:04X}{suffix}" + + def emit_branch_target_real(self, outfile, value, section, force_big=False): + if section is SqSection.UNKNOWN: + for frag in self.fragments: + if value in range(frag.start, frag.end): + section = frag.section + break + + outfile.write(f"{self.label_name(value, section, force_big)}\n") + + def emit_branch_target(self, outfile, start, end, force_big=False): + did_emit = False + for b_tgt in self.branch_targets: + if b_tgt in range(start,end): + self.emit_branch_target_real(outfile, start, self.branch_targets[b_tgt], force_big) + did_emit = True + return did_emit + + # + # disas handlers + # + + def disas_section(self, frag : SequenceFragment, outfile): + force_big_lbl = False + + if self.pos == frag.start: + # If the previous frag is not the same type as this frag, force the first label to be a big label + for frag2 in self.fragments: + frag2 : SequenceFragment + + if frag2.end == frag.start: + if frag2.section != frag.section: + force_big_lbl = True + break + + while self.pos < frag.end: + start_pos = self.pos + self.insn_begin = start_pos + + cmd_byte = self.read_u8() + cmd = self.lookup_cmd(cmd_byte) + mnemonic = cmd.mnemonic + + # Hacky fixups for commands using long var encodings when it was not necessary for them to do so, the usual + # macros for re-assembly only select the long encoding when necessary so switch to special macros that + # always use the long encoding unconditionally. + if self.insn_begin in self.force_long: + if mnemonic == "notedv": + mnemonic = "noteldv" + elif mnemonic in ("delay", "ldelay"): + mnemonic = "lldelay" + else: + assert False , mnemonic + + args = [argtype(self) for argtype in cmd.args] + raw_data = self.data[start_pos:self.pos] + + self.emit_branch_target(outfile, start_pos, self.pos, force_big_lbl) + force_big_lbl = False + + args_str = ', '.join([arg.emit(self) for arg in args]) + data_str = ' '.join([f'0x{b:02X}' for b in raw_data]) + + outfile.write(f"/* 0x{start_pos:04X} [{data_str:24}] */ {mnemonic:11} {args_str}".strip() + "\n") + + if cmd.is_terminal or cmd.is_branch_unconditional: + outfile.write("\n") + + def disas_table(self, frag : SequenceFragment, outfile): + base_pos = self.pos + + while self.pos < frag.end: + start_pos = self.pos + + addend = self.addends.get(start_pos, 0) + + ent = self.read_u16() - addend + + self.emit_branch_target(outfile, start_pos, self.pos) + + section = self.branch_targets.get(ent, None) + + # TODO + if section is None: + section = SqSection.UNKNOWN + + if addend != 0: + addend_str = f" + {addend}" + else: + addend_str = "" + + # TODO proper label name + outfile.write(f" entry {section.prefix}_{ent:04X}{addend_str}\n") + + outfile.write("\n") + + def disas_filter(self, frag : SequenceFragment, outfile): + start_pos = self.pos + + num_filters, align = divmod(len(frag.data), 2 * 8) + + assert all(b == 0 for b in frag.data) + assert align == 0 + + for n in range(num_filters): + self.emit_branch_target_real(outfile, start_pos + n * 2 * 8, SqSection.FILTER, force_big=True) + outfile.write(" filter 0, 0, 0, 0, 0, 0, 0, 0\n\n") + + def disas_envelope(self, frag : SequenceFragment, outfile): + start_pos = self.pos + + self.emit_branch_target(outfile, start_pos, frag.end) + + while self.pos < frag.end: + delay = self.read_s16() + arg = self.read_s16() + + if delay == 0 and arg == 0: + outfile.write(" disable\n") + elif delay == -1 and arg == 0: + outfile.write(" hang\n") + elif delay == -2: + outfile.write(f" goto {arg}\n") + elif delay == -3 and arg == 0: + outfile.write(" restart\n") + else: + assert delay > 0 + outfile.write(f" point {delay}, {arg}\n") + + if delay < 0 and self.pos not in self.branch_targets: + outfile.write("\n") + self.emit_branch_target_real(outfile, self.pos, frag.section) + + outfile.write("\n") + + def disas_array(self, frag : SequenceFragment, outfile): + self.emit_branch_target(outfile, frag.start, frag.end) + + array_data = self.data[frag.start:frag.end] + if all(b == 0 for b in array_data): + outfile.write(f".fill 0x{len(array_data):X}\n\n") + else: + for b in array_data: + outfile.write(f".byte 0x{b:2X}\n") + outfile.write("\n") + + def disas_unknown(self, frag : SequenceFragment, outfile): + start_pos = self.pos + + prev = start_pos + for b_tgt in sorted(self.branch_targets): + if b_tgt in range(start_pos+1,frag.end): + # emit data between this branch target and the previous + outfile.write(" .byte " + ", ".join(f"0x{b:02X}" for b in self.data[prev:b_tgt]) + "\n\n") + if b_tgt in range(start_pos,frag.end): + # emit the branch target + self.emit_branch_target_real(outfile, b_tgt, SqSection.UNKNOWN) + prev = b_tgt + + # write any remaining data if the final branch target was not the end of the frag + if prev != frag.end: + outfile.write(" .byte " + ", ".join(f"0x{b:02X}" for b in self.data[prev:frag.end]) + "\n\n") + + # + # emit disassembled text + # + + def emit(self): + with open(self.outpath, "w") as outfile: + # emit header + outfile.write("#include \"aseq.h\"\n") + + # emit fonts + for font in self.used_fonts: + outfile.write(f"#include \"{font.file_name}.h\"\n") + outfile.write("\n") + + outfile.write(f".startseq {self.seq_name}\n\n") + + # emit fragments + for frag in sorted(self.fragments): + frag : SequenceFragment + + self.cur_section = frag.section + self.pos = frag.start + + { + SqSection.SEQ : self.disas_section, + SqSection.CHAN : self.disas_section, + SqSection.LAYER : self.disas_section, + SqSection.TABLE : self.disas_table, + SqSection.ARRAY : self.disas_array, + SqSection.FILTER : self.disas_filter, + SqSection.ENVELOPE : self.disas_envelope, + SqSection.UNKNOWN : self.disas_unknown, + }[frag.section](frag, outfile) + + outfile.write(f".endseq {self.seq_name}\n") + +if __name__ == '__main__': + import sys + + in_path = sys.argv[1] + out_path = sys.argv[2] + + with open(in_path, "rb") as infile: + data = bytearray(infile.read()) + + class FontDummy: + def __init__(self, file_name) -> None: + self.name = file_name + self.file_name = file_name + self.instrument_index_map = {} + + disas = SequenceDisassembler(0, data, None, CMD_SPEC, MMLVersion.MM, out_path, "", [FontDummy("wow")], []) + disas.analyze() + disas.emit() diff --git a/tools/audio_extraction.py b/tools/audio_extraction.py index da30273b75..9c3a202648 100644 --- a/tools/audio_extraction.py +++ b/tools/audio_extraction.py @@ -9,7 +9,8 @@ import argparse import version_config -from audio.extraction.audio_extract import extract_audio_for_version, GameVersionInfo, MMLVersion +from audio.extraction.audio_extract import extract_audio_for_version, GameVersionInfo +from audio.extraction.disassemble_sequence import MMLVersion, SequenceTableSpec, SqSection if __name__ == '__main__': parser = argparse.ArgumentParser(description="baserom audio asset extractor") @@ -153,6 +154,36 @@ if __name__ == '__main__': # Some audiotable banks have a buffer clearing bug. Indicate which banks suffer from this. audiotable_buffer_bugs = (0,) + # Tables have no clear start and end in a sequence. Mark the locations of all tables that appear in sequences. + seq_disas_tables = { + # sequence number : (spec, ...) + 0 : ( + SequenceTableSpec(0x00E1, 128, 0, SqSection.CHAN), + SequenceTableSpec(0x0EE3, 80, 0, SqSection.CHAN), + SequenceTableSpec(0x16D5, 248, 0, SqSection.CHAN), + SequenceTableSpec(0x315E, 499, 0, SqSection.CHAN), + SequenceTableSpec(0x5729, 72, 0, SqSection.CHAN), + SequenceTableSpec(0x5EE5, 8, 0, SqSection.CHAN), + SequenceTableSpec(0x5FF2, 128, 0, SqSection.CHAN), + ), + 1 : ( + SequenceTableSpec(0x0192, 20, 0, SqSection.LAYER), + SequenceTableSpec(0x01BA, 20, 0, SqSection.LAYER), + SequenceTableSpec(0x01E2, 20, 0, SqSection.LAYER), + SequenceTableSpec(0x020A, 20, 0, SqSection.LAYER), + SequenceTableSpec(0x0232, 20, 1, SqSection.LAYER), + SequenceTableSpec(0x025A, 20, 1, SqSection.LAYER), + SequenceTableSpec(0x0282, 20, 1, SqSection.LAYER), + ), + 2 : ( + SequenceTableSpec(0x00BC, 2, 0, SqSection.SEQ), + SequenceTableSpec(0x00C0, 2, 0, SqSection.ARRAY), + ), + 109 : ( + SequenceTableSpec(0x0646, 16, 0, SqSection.CHAN), + ), + } + version_info = GameVersionInfo(MMLVersion.OOT, soundfont_table_code_offset, seq_font_table_code_offset, @@ -161,6 +192,7 @@ if __name__ == '__main__': seq_enum_names, handwritten_sequences, fake_banks, - audiotable_buffer_bugs) + audiotable_buffer_bugs, + seq_disas_tables) extract_audio_for_version(version_info, args.extracted_dir, args.read_xml, args.write_xml) From 78e6b801bc2ce88e0a6be9b610413b02253208e1 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 20:22:37 +0200 Subject: [PATCH 09/86] Jenkinsfile: `make -j` -> `make -j$(nproc)` (#2128) --- Jenkinsfile | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f18b97e118..e3ec037c0c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,8 +27,8 @@ pipeline { stage('Build ntsc-1.2, check disasm metadata') { steps { sh 'ln -s /usr/local/etc/roms/oot-ntsc-1.2-us.z64 baseroms/ntsc-1.2/baserom.z64' - sh 'make -j setup VERSION=ntsc-1.2' - sh 'make -j VERSION=ntsc-1.2' + sh 'make -j$(nproc) setup VERSION=ntsc-1.2' + sh 'make -j$(nproc) VERSION=ntsc-1.2' sh '.venv/bin/python3 tools/check_disasm_metadata_unksyms.py -v ntsc-1.2' sh 'make clean assetclean VERSION=ntsc-1.2' } @@ -39,64 +39,64 @@ pipeline { stage('Build gc-jp') { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-jp.z64 baseroms/gc-jp/baserom.z64' - sh 'make -j setup VERSION=gc-jp' - sh 'make -j VERSION=gc-jp' + sh 'make -j$(nproc) setup VERSION=gc-jp' + sh 'make -j$(nproc) VERSION=gc-jp' sh 'make clean assetclean VERSION=gc-jp' } } stage('Build gc-eu-mq') { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-eu-mq.z64 baseroms/gc-eu-mq/baserom.z64' - sh 'make -j setup VERSION=gc-eu-mq' - sh 'make -j VERSION=gc-eu-mq' + sh 'make -j$(nproc) setup VERSION=gc-eu-mq' + sh 'make -j$(nproc) VERSION=gc-eu-mq' sh 'make clean assetclean VERSION=gc-eu-mq' } } stage('Build gc-eu-mq-dbg') { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-eu-mq-dbg.z64 baseroms/gc-eu-mq-dbg/baserom.z64' - sh 'make -j setup VERSION=gc-eu-mq-dbg' - sh 'make -j VERSION=gc-eu-mq-dbg' + sh 'make -j$(nproc) setup VERSION=gc-eu-mq-dbg' + sh 'make -j$(nproc) VERSION=gc-eu-mq-dbg' sh 'make clean assetclean VERSION=gc-eu-mq-dbg' } } stage('Build gc-us') { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-us.z64 baseroms/gc-us/baserom.z64' - sh 'make -j setup VERSION=gc-us' - sh 'make -j VERSION=gc-us' + sh 'make -j$(nproc) setup VERSION=gc-us' + sh 'make -j$(nproc) VERSION=gc-us' sh 'make clean assetclean VERSION=gc-us' } } stage('Build gc-jp-ce') { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-jp-ce.z64 baseroms/gc-jp-ce/baserom.z64' - sh 'make -j setup VERSION=gc-jp-ce' - sh 'make -j VERSION=gc-jp-ce' + sh 'make -j$(nproc) setup VERSION=gc-jp-ce' + sh 'make -j$(nproc) VERSION=gc-jp-ce' sh 'make clean assetclean VERSION=gc-jp-ce' } } stage('Build gc-eu') { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-eu.z64 baseroms/gc-eu/baserom.z64' - sh 'make -j setup VERSION=gc-eu' - sh 'make -j VERSION=gc-eu' + sh 'make -j$(nproc) setup VERSION=gc-eu' + sh 'make -j$(nproc) VERSION=gc-eu' sh 'make clean assetclean VERSION=gc-eu' } } stage('Build gc-jp-mq') { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-jp-mq.z64 baseroms/gc-jp-mq/baserom.z64' - sh 'make -j setup VERSION=gc-jp-mq' - sh 'make -j VERSION=gc-jp-mq' + sh 'make -j$(nproc) setup VERSION=gc-jp-mq' + sh 'make -j$(nproc) VERSION=gc-jp-mq' sh 'make clean assetclean VERSION=gc-jp-mq' } } stage('Build gc-us-mq') { steps { sh 'ln -s /usr/local/etc/roms/oot-gc-us-mq.z64 baseroms/gc-us-mq/baserom.z64' - sh 'make -j setup VERSION=gc-us-mq' - sh 'make -j VERSION=gc-us-mq' + sh 'make -j$(nproc) setup VERSION=gc-us-mq' + sh 'make -j$(nproc) VERSION=gc-us-mq' sh 'make clean assetclean VERSION=gc-us-mq' } } From 907e440f3add31a315475f878ced0c6b9d453708 Mon Sep 17 00:00:00 2001 From: fig02 Date: Wed, 4 Sep 2024 14:33:30 -0400 Subject: [PATCH 10/86] unk_664 -> focusActor [Target Docs 5/?] (#2126) * unk_664 -> focusActor * capitalization * missed a temp --- include/z64player.h | 2 +- src/code/z_actor.c | 71 ++++++++------- src/code/z_player_lib.c | 4 +- src/overlays/actors/ovl_En_Elf/z_en_elf.c | 9 +- src/overlays/actors/ovl_En_Zf/z_en_zf.c | 12 +-- .../actors/ovl_player_actor/z_player.c | 90 +++++++++---------- 6 files changed, 96 insertions(+), 92 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index 6acf673364..c7b6ae48d5 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -795,7 +795,7 @@ typedef struct Player { /* 0x0498 */ ColliderCylinder cylinder; /* 0x04E4 */ ColliderQuad meleeWeaponQuads[2]; /* 0x05E4 */ ColliderQuad shieldQuad; - /* 0x0664 */ Actor* unk_664; + /* 0x0664 */ Actor* focusActor; // Actor that Player and the camera are looking at; Used for lock-on, talking, and more /* 0x0668 */ char unk_668[0x004]; /* 0x066C */ s32 unk_66C; /* 0x0670 */ s32 meleeWeaponEffectIndex; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 5bd46f49c8..599500770b 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -321,7 +321,7 @@ void Target_Init(TargetContext* targetCtx, Actor* actor, PlayState* play) { } void Target_Draw(TargetContext* targetCtx, PlayState* play) { - Actor* actor; // used for both the reticle and arrow + Actor* actor; // used for both the reticle actor and arrow hover actor actor = targetCtx->reticleActor; @@ -386,7 +386,7 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { Target_SetReticlePos(targetCtx, targetCtx->curReticle, projectedPos.x, projectedPos.y, projectedPos.z); - if (!(player->stateFlags1 & PLAYER_STATE1_6) || (actor != player->unk_664)) { + if (!(player->stateFlags1 & PLAYER_STATE1_6) || (actor != player->focusActor)) { OVERLAY_DISP = Gfx_SetupDL(OVERLAY_DISP, SETUPDL_57); for (i = 0, curReticle = targetCtx->curReticle; i < numReticles; @@ -449,16 +449,16 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_actor.c", 2158); } -void Target_Update(TargetContext* targetCtx, Player* player, Actor* curLockOnActor, PlayState* play) { +void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusActor, PlayState* play) { s32 pad; - Actor* actor; + Actor* actor; // used for both the Navi hover actor and reticle actor s32 category; Vec3f projectedFocusPos; f32 cappedInvWDest; actor = NULL; - if ((player->unk_664 != NULL) && + if ((player->focusActor != NULL) && (player->controlStickDirections[player->controlStickDataIndex] == PLAYER_STICK_DIR_BACKWARD)) { // Holding backward on the control stick prevents an arrow appearing over the next targetable actor. // This helps escape a targeting loop when using Switch Targeting, but note that this still works for @@ -475,9 +475,9 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* curLockOnAct // (this feature is never used in practice) actor = targetCtx->forcedLockOnActor; targetCtx->forcedLockOnActor = NULL; - } else if (curLockOnActor != NULL) { + } else if (playerFocusActor != NULL) { // Stay locked-on to the same actor - actor = curLockOnActor; + actor = playerFocusActor; } if (actor != NULL) { @@ -512,27 +512,30 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* curLockOnAct Target_SetNaviState(targetCtx, actor, category, play); } - // Release lock-on if the actor is off screen. - // The camera is always moving toward the locked-on actor, so it seems difficult - // to move the actor off screen, if its even possible. - if ((curLockOnActor != NULL) && (targetCtx->reticleSpinCounter == 0)) { - Actor_ProjectPos(play, &curLockOnActor->focus.pos, &projectedFocusPos, &cappedInvWDest); + if ((playerFocusActor != NULL) && (targetCtx->reticleSpinCounter == 0)) { + Actor_ProjectPos(play, &playerFocusActor->focus.pos, &projectedFocusPos, &cappedInvWDest); if (((projectedFocusPos.z <= 0.0f) || (1.0f <= fabsf(projectedFocusPos.x * cappedInvWDest))) || (1.0f <= fabsf(projectedFocusPos.y * cappedInvWDest))) { - curLockOnActor = NULL; + // Release the reticle if the actor is off screen. + // It is possible to move far enough away from an actor that it goes off screen, despite being + // locked onto it. In this case the reticle will release, but the lock-on will remain + // because Player is still updating focusActor. + // It is unclear if this is intentional, or if it is a bug and the lock-on as a whole is supposed + // to release. + playerFocusActor = NULL; } } - if (curLockOnActor != NULL) { - if (curLockOnActor != targetCtx->reticleActor) { + if (playerFocusActor != NULL) { + if (playerFocusActor != targetCtx->reticleActor) { s32 lockOnSfxId; - // Set up a new lock-on - Target_InitReticle(targetCtx, curLockOnActor->category, play); - targetCtx->reticleActor = curLockOnActor; + // Set up a new reticle + Target_InitReticle(targetCtx, playerFocusActor->category, play); + targetCtx->reticleActor = playerFocusActor; - if (curLockOnActor->id == ACTOR_EN_BOOM) { + if (playerFocusActor->id == ACTOR_EN_BOOM) { // Don't draw the reticle when locked onto the boomerang. // Note that it isn't possible to lock onto the boomerang, so this code doesn't do anything. // This implies that the boomerang camera lock may have been implemented with Z-Targeting at one point, @@ -540,17 +543,17 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* curLockOnAct targetCtx->reticleFadeAlphaControl = 0; } - lockOnSfxId = CHECK_FLAG_ALL(curLockOnActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2) ? NA_SE_SY_LOCK_ON - : NA_SE_SY_LOCK_ON_HUMAN; + lockOnSfxId = CHECK_FLAG_ALL(playerFocusActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2) ? NA_SE_SY_LOCK_ON + : NA_SE_SY_LOCK_ON_HUMAN; Sfx_PlaySfxCentered(lockOnSfxId); } // Update reticle - targetCtx->reticlePos.x = curLockOnActor->world.pos.x; + targetCtx->reticlePos.x = playerFocusActor->world.pos.x; targetCtx->reticlePos.y = - curLockOnActor->world.pos.y - (curLockOnActor->shape.yOffset * curLockOnActor->scale.y); - targetCtx->reticlePos.z = curLockOnActor->world.pos.z; + playerFocusActor->world.pos.y - (playerFocusActor->shape.yOffset * playerFocusActor->scale.y); + targetCtx->reticlePos.z = playerFocusActor->world.pos.z; if (targetCtx->reticleSpinCounter == 0) { f32 step = (500.0f - targetCtx->reticleRadius) * 3.0f; @@ -569,7 +572,7 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* curLockOnAct targetCtx->reticleRadius = 120.0f; } } else { - // Expand the reticle radius quickly as the lock-on is released + // Expand the radius quickly as the reticle is released targetCtx->reticleActor = NULL; Math_StepToF(&targetCtx->reticleRadius, 500.0f, 80.0f); } @@ -1579,7 +1582,7 @@ f32 Target_WeightedDistToPlayerSq(Actor* actor, Player* player, s16 playerShapeY s16 yawTemp = (s16)(actor->yawTowardsPlayer - 0x8000) - playerShapeYaw; s16 yawTempAbs = ABS(yawTemp); - if (player->unk_664 != NULL) { + if (player->focusActor != NULL) { if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_27)) { return MAXFLOAT; } else { @@ -1635,7 +1638,7 @@ s32 func_8002F0C8(Actor* actor, Player* player, s32 flag) { s16 abs_var = ABS(var); f32 dist; - if ((player->unk_664 == NULL) && (abs_var > 0x2AAA)) { + if ((player->focusActor == NULL) && (abs_var > 0x2AAA)) { dist = MAXFLOAT; } else { dist = actor->xyzDistToPlayerSq; @@ -2330,13 +2333,13 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { actor->flags &= ~ACTOR_FLAG_24; if ((DECR(actor->freezeTimer) == 0) && (actor->flags & (ACTOR_FLAG_4 | ACTOR_FLAG_6))) { - if (actor == player->unk_664) { + if (actor == player->focusActor) { actor->isTargeted = true; } else { actor->isTargeted = false; } - if ((actor->targetPriority != 0) && (player->unk_664 == NULL)) { + if ((actor->targetPriority != 0) && (player->focusActor == NULL)) { actor->targetPriority = 0; } @@ -2359,7 +2362,7 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { } } - actor = player->unk_664; + actor = player->focusActor; if ((actor != NULL) && (actor->update == NULL)) { actor = NULL; @@ -3110,7 +3113,7 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { ACTOR_DEBUG_PRINTF("アクタークラス削除 [%s]\n", name); // "Actor class deleted [%s]" - if ((player != NULL) && (actor == player->unk_664)) { + if ((player != NULL) && (actor == player->focusActor)) { func_8008EDF0(player); Camera_RequestMode(Play_GetCamera(play, Play_GetActiveCamId(play)), CAM_MODE_NORMAL); } @@ -3193,13 +3196,13 @@ s16 sTargetPlayerRotY; void Target_FindTargetableActorInCategory(PlayState* play, ActorContext* actorCtx, Player* player, u32 actorCategory) { f32 distSq; Actor* actor; - Actor* unk_664; + Actor* playerFocusActor; CollisionPoly* poly; s32 bgId; Vec3f lineTestResultPos; actor = actorCtx->actorLists[actorCategory].head; - unk_664 = player->unk_664; + playerFocusActor = player->focusActor; while (actor != NULL) { if ((actor->update != NULL) && ((Player*)actor != player) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_0)) { @@ -3210,7 +3213,7 @@ void Target_FindTargetableActorInCategory(PlayState* play, ActorContext* actorCt sBgmEnemyDistSq = actor->xyzDistToPlayerSq; } - if (actor != unk_664) { + if (actor != playerFocusActor) { distSq = Target_WeightedDistToPlayerSq(actor, player, sTargetPlayerRotY); if ((distSq < sNearestTargetableActorDistSq) && Target_ActorIsInRange(actor, distSq) && diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index c591f4834e..74cf589e49 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -602,7 +602,7 @@ void Player_UpdateBottleHeld(PlayState* play, Player* this, s32 item, s32 itemAc } void func_8008EDF0(Player* this) { - this->unk_664 = NULL; + this->focusActor = NULL; this->stateFlags2 &= ~PLAYER_STATE2_13; } @@ -624,7 +624,7 @@ void func_8008EEAC(PlayState* play, Actor* actor) { Player* this = GET_PLAYER(play); func_8008EE08(this); - this->unk_664 = actor; + this->focusActor = actor; this->unk_684 = actor; this->stateFlags1 |= PLAYER_STATE1_16; Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, actor); diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index cc84d39fd6..1c3630ff9d 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -1034,11 +1034,11 @@ void func_80A04414(EnElf* this, PlayState* play) { } if (this->fairyFlags & 1) { - if ((naviHoverActor == NULL) || (player->unk_664 == NULL)) { + if ((naviHoverActor == NULL) || (player->focusActor == NULL)) { this->fairyFlags ^= 1; } } else { - if ((naviHoverActor != NULL) && (player->unk_664 != NULL)) { + if ((naviHoverActor != NULL) && (player->focusActor != NULL)) { if (naviHoverActor->category == ACTORCAT_NPC) { sfxId = NA_SE_VO_NAVY_HELLO; } else { @@ -1224,7 +1224,8 @@ void func_80A04DE4(EnElf* this, PlayState* play) { if (this->fairyFlags & 0x10) { pos = play->actorCtx.targetCtx.naviHoverPos; - if ((player->unk_664 == NULL) || (&player->actor == player->unk_664) || (&this->actor == player->unk_664)) { + if ((player->focusActor == NULL) || (&player->actor == player->focusActor) || + (&this->actor == player->focusActor)) { pos.x = player->bodyPartsPos[PLAYER_BODYPART_HEAD].x + (Math_SinS(player->actor.shape.rot.y) * 20.0f); pos.y = player->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 5.0f; pos.z = player->bodyPartsPos[PLAYER_BODYPART_HEAD].z + (Math_CosS(player->actor.shape.rot.y) * 20.0f); @@ -1376,7 +1377,7 @@ void func_80A053F0(Actor* thisx, PlayState* play) { EnElf* this = (EnElf*)thisx; if (player->naviTextId == 0) { - if (player->unk_664 == NULL) { + if (player->focusActor == NULL) { #if OOT_DEBUG if (((gSaveContext.save.info.playerData.naviTimer >= 600) && (gSaveContext.save.info.playerData.naviTimer <= 3000)) || diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index 3057fcb640..a401bad5a3 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -539,7 +539,7 @@ s16 EnZf_FindNextPlatformTowardsPlayer(Vec3f* pos, s16 curPlatform, s16 arg2, Pl // Player not targeting this or another EnZf? s32 EnZf_CanAttack(PlayState* play, EnZf* this) { - Actor* targetedActor; + Actor* playerFocusActor; Player* player = GET_PLAYER(play); if (this->actor.params >= ENZF_TYPE_LIZALFOS_MINIBOSS_A) { // miniboss @@ -553,16 +553,16 @@ s32 EnZf_CanAttack(PlayState* play, EnZf* this) { return true; } if (this->actor.params == ENZF_TYPE_DINOLFOS) { - targetedActor = player->unk_664; - if (targetedActor == NULL) { + playerFocusActor = player->focusActor; + if (playerFocusActor == NULL) { return false; } else { - if (targetedActor->category != ACTORCAT_ENEMY) { + if (playerFocusActor->category != ACTORCAT_ENEMY) { return true; } - if (targetedActor->id != ACTOR_EN_ZF) { + if (playerFocusActor->id != ACTOR_EN_ZF) { return false; - } else if (targetedActor->colorFilterTimer != 0) { + } else if (playerFocusActor->colorFilterTimer != 0) { return true; } } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 7f56942755..9d800d3556 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -2322,7 +2322,7 @@ s32 func_80833B2C(Player* this) { } s32 func_80833B54(Player* this) { - if ((this->unk_664 != NULL) && CHECK_FLAG_ALL(this->unk_664->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2)) { + if ((this->focusActor != NULL) && CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2)) { this->stateFlags1 |= PLAYER_STATE1_4; return 1; } @@ -3096,14 +3096,14 @@ s32 func_808359FC(Player* this, PlayState* play) { } else if (LinkAnimation_OnFrame(&this->upperSkelAnime, 6.0f)) { f32 posX = (Math_SinS(this->actor.shape.rot.y) * 10.0f) + this->actor.world.pos.x; f32 posZ = (Math_CosS(this->actor.shape.rot.y) * 10.0f) + this->actor.world.pos.z; - s32 yaw = (this->unk_664 != NULL) ? this->actor.shape.rot.y + 14000 : this->actor.shape.rot.y; + s32 yaw = (this->focusActor != NULL) ? this->actor.shape.rot.y + 14000 : this->actor.shape.rot.y; EnBoom* boomerang = (EnBoom*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_BOOM, posX, this->actor.world.pos.y + 30.0f, posZ, this->actor.focus.rot.x, yaw, 0, 0); this->boomerangActor = &boomerang->actor; if (boomerang != NULL) { - boomerang->moveTo = this->unk_664; + boomerang->moveTo = this->focusActor; boomerang->returnTimer = 20; this->stateFlags1 |= PLAYER_STATE1_25; if (!func_8008E9C4(this)) { @@ -3477,11 +3477,11 @@ void Player_UpdateShapeYaw(Player* this, PlayState* play) { s16 previousYaw = this->actor.shape.rot.y; if (!(this->stateFlags2 & (PLAYER_STATE2_5 | PLAYER_STATE2_6))) { - Actor* unk_664 = this->unk_664; + Actor* focusActor = this->focusActor; - if ((unk_664 != NULL) && + if ((focusActor != NULL) && ((play->actorCtx.targetCtx.reticleSpinCounter != 0) || (this->actor.category != ACTORCAT_PLAYER))) { - Math_ScaledStepToS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &unk_664->focus.pos), + Math_ScaledStepToS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &focusActor->focus.pos), 4000); } else if ((this->stateFlags1 & PLAYER_STATE1_17) && !(this->stateFlags2 & (PLAYER_STATE2_5 | PLAYER_STATE2_6))) { @@ -3587,15 +3587,15 @@ void func_80836BEC(Player* this, PlayState* play) { this->stateFlags1 |= PLAYER_STATE1_15; if ((actorToTarget != NULL) && !(actorToTarget->flags & ACTOR_FLAG_27)) { - if ((actorToTarget == this->unk_664) && (this->actor.category == ACTORCAT_PLAYER)) { + if ((actorToTarget == this->focusActor) && (this->actor.category == ACTORCAT_PLAYER)) { actorToTarget = play->actorCtx.targetCtx.arrowHoverActor; } - if (actorToTarget != this->unk_664) { + if (actorToTarget != this->focusActor) { if (!holdTarget) { this->stateFlags2 |= PLAYER_STATE2_13; } - this->unk_664 = actorToTarget; + this->focusActor = actorToTarget; this->unk_66C = 15; this->stateFlags2 &= ~(PLAYER_STATE2_1 | PLAYER_STATE2_21); } else { @@ -3612,23 +3612,23 @@ void func_80836BEC(Player* this, PlayState* play) { } } - if (this->unk_664 != NULL) { - if ((this->actor.category == ACTORCAT_PLAYER) && (this->unk_664 != this->unk_684) && - func_8002F0C8(this->unk_664, this, sp1C)) { + if (this->focusActor != NULL) { + if ((this->actor.category == ACTORCAT_PLAYER) && (this->focusActor != this->unk_684) && + func_8002F0C8(this->focusActor, this, sp1C)) { func_8008EDF0(this); this->stateFlags1 |= PLAYER_STATE1_30; - } else if (this->unk_664 != NULL) { - this->unk_664->targetPriority = 40; + } else if (this->focusActor != NULL) { + this->focusActor->targetPriority = 40; } } else if (this->unk_684 != NULL) { - this->unk_664 = this->unk_684; + this->focusActor = this->unk_684; } } - if (this->unk_664 != NULL) { + if (this->focusActor != NULL) { this->stateFlags1 &= ~(PLAYER_STATE1_16 | PLAYER_STATE1_17); if ((this->stateFlags1 & PLAYER_STATE1_11) || - !CHECK_FLAG_ALL(this->unk_664->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2)) { + !CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2)) { this->stateFlags1 |= PLAYER_STATE1_16; } } else { @@ -3748,9 +3748,9 @@ s32 Player_GetMovementSpeedAndYaw(Player* this, f32* outSpeedTarget, s16* outYaw if (!Player_CalcSpeedAndYawFromControlStick(play, this, outSpeedTarget, outYawTarget, speedMode)) { *outYawTarget = this->actor.shape.rot.y; - if (this->unk_664 != NULL) { + if (this->focusActor != NULL) { if ((play->actorCtx.targetCtx.reticleSpinCounter != 0) && !(this->stateFlags2 & PLAYER_STATE2_6)) { - *outYawTarget = Math_Vec3f_Yaw(&this->actor.world.pos, &this->unk_664->focus.pos); + *outYawTarget = Math_Vec3f_Yaw(&this->actor.world.pos, &this->focusActor->focus.pos); return false; } } else if (func_80833B2C(this)) { @@ -5234,7 +5234,7 @@ void func_8083A2F8(PlayState* play, Player* this) { if (this->actor.textId != 0) { Message_StartTextbox(play, this->actor.textId, this->talkActor); - this->unk_664 = this->talkActor; + this->focusActor = this->talkActor; } } @@ -5667,7 +5667,7 @@ s32 Player_ActionChange_13(Player* this, PlayState* play) { this->av1.actionVar1 = -1; } talkActor->flags |= ACTOR_FLAG_TALK; - this->unk_664 = this->talkActor; + this->focusActor = this->talkActor; } else if (sp2C == EXCH_ITEM_BOTTLE_RUTOS_LETTER) { this->av1.actionVar1 = 1; this->actor.textId = 0x4005; @@ -5746,7 +5746,7 @@ s32 Player_ActionChange_13(Player* this, PlayState* play) { s32 Player_ActionChange_4(Player* this, PlayState* play) { Actor* sp34 = this->talkActor; - Actor* sp30 = this->unk_664; + Actor* sp30 = this->focusActor; Actor* sp2C = NULL; s32 sp28 = 0; s32 sp24; @@ -5835,8 +5835,8 @@ s32 Player_ActionChange_0(Player* this, PlayState* play) { return 1; } - if ((this->unk_664 != NULL) && (CHECK_FLAG_ALL(this->unk_664->flags, ACTOR_FLAG_0 | ACTOR_FLAG_18) || - (this->unk_664->naviEnemyId != NAVI_ENEMY_NONE))) { + if ((this->focusActor != NULL) && (CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_18) || + (this->focusActor->naviEnemyId != NAVI_ENEMY_NONE))) { this->stateFlags2 |= PLAYER_STATE2_21; } else if ((this->naviTextId == 0) && !func_8008E9C4(this) && CHECK_BTN_ALL(sControlInput->press.button, BTN_CUP) && (R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && @@ -6034,7 +6034,7 @@ s32 Player_ActionChange_11(Player* this, PlayState* play) { if ((play->shootingGalleryStatus == 0) && (this->currentShield != PLAYER_SHIELD_NONE) && CHECK_BTN_ALL(sControlInput->cur.button, BTN_R) && - (Player_IsChildWithHylianShield(this) || (!func_80833B2C(this) && (this->unk_664 == NULL)))) { + (Player_IsChildWithHylianShield(this) || (!func_80833B2C(this) && (this->focusActor == NULL)))) { func_80832318(this); Player_DetachHeldActor(play, this); @@ -6586,7 +6586,7 @@ void func_8083D6EC(PlayState* play, Player* this) { } s32 func_8083DB98(Player* this, s32 arg1) { - Actor* unk_664 = this->unk_664; + Actor* focusActor = this->focusActor; Vec3f sp30; s16 sp2E; s16 sp2C; @@ -6594,8 +6594,8 @@ s32 func_8083DB98(Player* this, s32 arg1) { sp30.x = this->actor.world.pos.x; sp30.y = this->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 3.0f; sp30.z = this->actor.world.pos.z; - sp2E = Math_Vec3f_Pitch(&sp30, &unk_664->focus.pos); - sp2C = Math_Vec3f_Yaw(&sp30, &unk_664->focus.pos); + sp2E = Math_Vec3f_Pitch(&sp30, &focusActor->focus.pos); + sp2C = Math_Vec3f_Yaw(&sp30, &focusActor->focus.pos); Math_SmoothStepToS(&this->actor.focus.rot.y, sp2C, 4, 10000, 0); Math_SmoothStepToS(&this->actor.focus.rot.x, sp2E, 4, 10000, 0); this->unk_6AE |= 2; @@ -6611,7 +6611,7 @@ void func_8083DC54(Player* this, PlayState* play) { f32 temp1; Vec3f sp34; - if (this->unk_664 != NULL) { + if (this->focusActor != NULL) { if (func_8002DD78(this) || func_808334B4(this)) { func_8083DB98(this, 1); } else { @@ -7393,7 +7393,7 @@ s32 func_8083FC68(Player* this, f32 arg1, s16 arg2) { f32 sp1C = (s16)(arg2 - this->actor.shape.rot.y); f32 temp; - if (this->unk_664 != NULL) { + if (this->focusActor != NULL) { func_8083DB98(this, func_8002DD78(this) || func_808334B4(this)); } @@ -7412,7 +7412,7 @@ s32 func_8083FD78(Player* this, f32* arg1, s16* arg2, PlayState* play) { s16 sp2E = *arg2 - this->zTargetYaw; u16 sp2C = ABS(sp2E); - if ((func_8002DD78(this) || func_808334B4(this)) && (this->unk_664 == NULL)) { + if ((func_8002DD78(this) || func_808334B4(this)) && (this->focusActor == NULL)) { *arg1 *= Math_SinS(sp2C); if (*arg1 != 0.0f) { @@ -7421,14 +7421,14 @@ s32 func_8083FD78(Player* this, f32* arg1, s16* arg2, PlayState* play) { *arg2 = this->actor.shape.rot.y; } - if (this->unk_664 != NULL) { + if (this->focusActor != NULL) { func_8083DB98(this, 1); } else { Math_SmoothStepToS(&this->actor.focus.rot.x, sControlInput->rel.stick_y * 240.0f, 14, 4000, 30); func_80836AB8(this, 1); } } else { - if (this->unk_664 != NULL) { + if (this->focusActor != NULL) { return func_8083FC68(this, *arg1, *arg2); } else { func_8083DC54(this, play); @@ -7697,7 +7697,7 @@ void func_808409CC(PlayState* play, Player* this) { s32 sp38; s32 sp34; - if ((this->unk_664 != NULL) || + if ((this->focusActor != NULL) || (!(heathIsCritical = Health_IsCritical()) && ((this->unk_6AC = (this->unk_6AC + 1) & 1) != 0))) { this->stateFlags2 &= ~PLAYER_STATE2_28; anim = func_80833338(this); @@ -10377,7 +10377,7 @@ void Player_UpdateInterface(PlayState* play, Player* this) { Interface_SetDoAction(play, doAction); if (this->stateFlags2 & PLAYER_STATE2_21) { - if (this->unk_664 != NULL) { + if (this->focusActor != NULL) { Interface_SetNaviCall(play, 0x1E); } else { Interface_SetNaviCall(play, 0x1D); @@ -10730,7 +10730,7 @@ void Player_ProcessSceneCollision(PlayState* play, Player* this) { void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { u8 seqMode; s32 pad; - Actor* unk_664; + Actor* focusActor; s32 camMode; if (this->actor.category == ACTORCAT_PLAYER) { @@ -10746,7 +10746,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { camMode = CAM_MODE_STILL; } else if (this->stateFlags2 & PLAYER_STATE2_8) { camMode = CAM_MODE_PUSH_PULL; - } else if ((unk_664 = this->unk_664) != NULL) { + } else if ((focusActor = this->focusActor) != NULL) { if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_TALK)) { camMode = CAM_MODE_TALK; } else if (this->stateFlags1 & PLAYER_STATE1_16) { @@ -10758,7 +10758,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { } else { camMode = CAM_MODE_Z_TARGET_UNFRIENDLY; } - Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, unk_664); + Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, focusActor); } else if (this->stateFlags1 & PLAYER_STATE1_12) { camMode = CAM_MODE_CHARGE; } else if (this->stateFlags1 & PLAYER_STATE1_25) { @@ -11328,7 +11328,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { func_8083D6EC(play, this); - if ((this->unk_664 == NULL) && (this->naviTextId == 0)) { + if ((this->focusActor == NULL) && (this->naviTextId == 0)) { this->stateFlags2 &= ~(PLAYER_STATE2_1 | PLAYER_STATE2_21); } @@ -11861,7 +11861,7 @@ void Player_Action_8084B1D8(Player* this, PlayState* play) { } if ((this->csAction != PLAYER_CSACTION_NONE) || (this->unk_6AD == 0) || (this->unk_6AD >= 4) || - func_80833B54(this) || (this->unk_664 != NULL) || (func_8083AD4C(play, this) == CAM_MODE_NORMAL) || + func_80833B54(this) || (this->focusActor != NULL) || (func_8083AD4C(play, this) == CAM_MODE_NORMAL) || (((this->unk_6AD == 2) && (CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_R) || func_80833B2C(this) || (!func_8002DD78(this) && !func_808334B4(this)))) || ((this->unk_6AD == 1) && @@ -11964,7 +11964,7 @@ void Player_Action_8084B530(Player* this, PlayState* play) { } } - if (this->unk_664 != NULL) { + if (this->focusActor != NULL) { this->yaw = this->actor.shape.rot.y = func_8083DB98(this, 0); } } @@ -12735,7 +12735,7 @@ void Player_Action_8084CC98(Player* this, PlayState* play) { if ((this->csAction != PLAYER_CSACTION_NONE) || (!func_8084C9BC(this, play) && !Player_ActionChange_13(this, play))) { - if (this->unk_664 != NULL) { + if (this->focusActor != NULL) { if (func_8002DD78(this) != 0) { this->unk_6BE = func_8083DB98(this, 1) - this->actor.shape.rot.y; this->unk_6BE = CLAMP(this->unk_6BE, -0x4AAA, 0x4AAA); @@ -13561,7 +13561,7 @@ void Player_Action_8084F104(Player* this, PlayState* play) { Player_ProcessAnimSfxList(this, D_80854A3C); } - if ((this->av1.actionVar1 == 0) && (this->unk_664 != NULL)) { + if ((this->av1.actionVar1 == 0) && (this->focusActor != NULL)) { this->yaw = this->actor.shape.rot.y = func_8083DB98(this, 0); } } @@ -14626,9 +14626,9 @@ void func_80851314(Player* this) { this->csActor = NULL; } - this->unk_664 = this->csActor; + this->focusActor = this->csActor; - if (this->unk_664 != NULL) { + if (this->focusActor != NULL) { this->actor.shape.rot.y = func_8083DB98(this, 0); } } From e833011ccd0a594ec16cdee8c94f21c3b8cc32d0 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 20:49:16 +0200 Subject: [PATCH 11/86] Cleanup: Pass all paths to tools rather than tools constructing them (#2017) * Pass all paths to tools rather than tools constructing them * fix: make --baserom-segments required * sync with mm reviews * --version everywhere --- Makefile | 8 ++--- diff_settings.py | 2 +- extract_assets.py | 34 ++++++++++++++----- first_diff.py | 2 +- retail_progress.py | 12 ++++--- sym_info.py | 2 +- tools/check_disasm_metadata_unksyms.py | 2 +- tools/disasm/sym_info.py | 7 ++-- tools/extract_baserom.py | 15 ++++---- tools/extract_incbins.py | 21 ++++++------ tools/fix_bss.py | 3 +- tools/ido_block_numbers.py | 3 +- tools/m2ctx.py | 2 +- tools/msgdis.py | 47 +++++++++++++++----------- 14 files changed, 96 insertions(+), 64 deletions(-) diff --git a/Makefile b/Makefile index 1a79bef8fe..8f1cba73d9 100644 --- a/Makefile +++ b/Makefile @@ -596,10 +596,10 @@ setup-audio: setup: venv $(MAKE) -C tools $(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/extract_incbins.py $(EXTRACTED_DIR)/baserom --oot-version $(VERSION) -o $(EXTRACTED_DIR)/incbin - $(PYTHON) tools/msgdis.py $(VERSION) - $(PYTHON) extract_assets.py -v $(VERSION) -j$(N_THREADS) + $(PYTHON) tools/extract_baserom.py $(BASEROM_DIR)/baserom-decompressed.z64 $(EXTRACTED_DIR)/baserom -v $(VERSION) + $(PYTHON) tools/extract_incbins.py $(EXTRACTED_DIR)/baserom $(EXTRACTED_DIR)/incbin -v $(VERSION) + $(PYTHON) tools/msgdis.py $(EXTRACTED_DIR)/baserom $(EXTRACTED_DIR)/text -v $(VERSION) + $(PYTHON) extract_assets.py $(EXTRACTED_DIR)/baserom $(EXTRACTED_DIR)/assets -v $(VERSION) -j$(N_THREADS) $(AUDIO_EXTRACT) -o $(EXTRACTED_DIR) -v $(VERSION) --read-xml disasm: diff --git a/diff_settings.py b/diff_settings.py index 66eb4e7335..05f16bd27a 100644 --- a/diff_settings.py +++ b/diff_settings.py @@ -1,5 +1,5 @@ def add_custom_arguments(parser): - parser.add_argument("-v", "--oot-version", help="OOT version", default="gc-eu-mq-dbg") + parser.add_argument("-v", "--version", dest="oot_version", help="OOT version", default="gc-eu-mq-dbg") def apply(config, args): version = args.oot_version diff --git a/extract_assets.py b/extract_assets.py index a3f915c241..905004cfd1 100755 --- a/extract_assets.py +++ b/extract_assets.py @@ -30,7 +30,7 @@ def ExtractFile(assetConfig: version_config.AssetConfig, outputPath: Path, outpu outputPath.mkdir(parents=True, exist_ok=True) outputSourcePath.mkdir(parents=True, exist_ok=True) - execStr = f"{zapdPath} e -eh -i {xmlPath} -b extracted/{version}/baserom -o {outputPath} -osf {outputSourcePath} -gsf 1 -rconf {configPath} --cs-float both {ZAPDArgs}" + execStr = f"{zapdPath} e -eh -i {xmlPath} -b {globalBaseromSegmentsDir} -o {outputPath} -osf {outputSourcePath} -gsf 1 -rconf {configPath} --cs-float both {ZAPDArgs}" if name.startswith("code/") or name.startswith("overlays/"): assert assetConfig.start_offset is not None @@ -63,8 +63,7 @@ def ExtractFunc(assetConfig: version_config.AssetConfig): xml_path = assetConfig.xml_path xml_path_str = str(xml_path) - version = globalVersionConfig.version - outPath = Path("extracted") / version / "assets" / objectName + outPath = globalOutputDir / objectName outSourcePath = outPath if xml_path_str in globalExtractedAssetsTracker: @@ -84,17 +83,21 @@ def ExtractFunc(assetConfig: version_config.AssetConfig): globalExtractedAssetsTracker[xml_path_str] = globalManager.dict() globalExtractedAssetsTracker[xml_path_str]["timestamp"] = currentTimeStamp -def initializeWorker(versionConfig: version_config.VersionConfig, abort, unaccounted: bool, extractedAssetsTracker: dict, manager): +def initializeWorker(versionConfig: version_config.VersionConfig, abort, unaccounted: bool, extractedAssetsTracker: dict, manager, baseromSegmentsDir: Path, outputDir: Path): global globalVersionConfig global globalAbort global globalUnaccounted global globalExtractedAssetsTracker global globalManager + global globalBaseromSegmentsDir + global globalOutputDir globalVersionConfig = versionConfig globalAbort = abort globalUnaccounted = unaccounted globalExtractedAssetsTracker = extractedAssetsTracker globalManager = manager + globalBaseromSegmentsDir = baseromSegmentsDir + globalOutputDir = outputDir def processZAPDArgs(argsZ): badZAPDArg = False @@ -112,7 +115,17 @@ def processZAPDArgs(argsZ): def main(): parser = argparse.ArgumentParser(description="baserom asset extractor") - parser.add_argument("-v", "--oot-version", dest="oot_version", help="OOT game version", default="gc-eu-mq-dbg") + parser.add_argument( + "baserom_segments_dir", + type=Path, + help="Directory of uncompressed ROM segments", + ) + parser.add_argument( + "output_dir", + type=Path, + help="Output directory to place files in", + ) + parser.add_argument("-v", "--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.") @@ -120,7 +133,10 @@ def main(): 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() + baseromSegmentsDir: Path = args.baserom_segments_dir version: str = args.oot_version + outputDir: Path = args.output_dir + versionConfig = version_config.load_version_config(version) global ZAPDArgs @@ -131,7 +147,7 @@ def main(): manager = multiprocessing.Manager() signal.signal(signal.SIGINT, SignalHandler) - extraction_times_p = Path("extracted") / version / "assets_extraction_times.json" + extraction_times_p = outputDir / "assets_extraction_times.json" extractedAssetsTracker = manager.dict() if extraction_times_p.exists() and not args.force: with extraction_times_p.open(encoding='utf-8') as f: @@ -148,7 +164,7 @@ def main(): print(f"Error. Asset {singleAssetName} not found in config.", file=os.sys.stderr) exit(1) - initializeWorker(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager) + initializeWorker(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager, baseromSegmentsDir, outputDir) # Always extract if -s is used. xml_path_str = str(assetConfig.xml_path) if xml_path_str in extractedAssetsTracker: @@ -167,13 +183,13 @@ def main(): mp_context = multiprocessing.get_context("fork") except ValueError as e: raise CannotMultiprocessError() from e - with mp_context.Pool(numCores, initializer=initializeWorker, initargs=(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager)) as p: + with mp_context.Pool(numCores, initializer=initializeWorker, initargs=(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager, baseromSegmentsDir, outputDir)) 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(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager) + initializeWorker(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager, baseromSegmentsDir, outputDir) for assetConfig in versionConfig.assets: ExtractFunc(assetConfig) diff --git a/first_diff.py b/first_diff.py index 5c16b76203..65dcf1b78c 100755 --- a/first_diff.py +++ b/first_diff.py @@ -30,7 +30,7 @@ def firstDiffMain(): parser = argparse.ArgumentParser(description="Find the first difference(s) between the built ROM and the base ROM.") parser.add_argument("-c", "--count", type=int, default=5, help="find up to this many instruction difference(s)") - parser.add_argument("-v", "--oot-version", help="Which version should be processed", default="gc-eu-mq-dbg") + parser.add_argument("-v", "--version", dest="oot_version", help="Which version should be processed", default="gc-eu-mq-dbg") parser.add_argument("-a", "--add-colons", action='store_true', help="Add colon between bytes" ) args = parser.parse_args() diff --git a/retail_progress.py b/retail_progress.py index 58bb5c5401..ec1095330e 100755 --- a/retail_progress.py +++ b/retail_progress.py @@ -387,7 +387,11 @@ if __name__ == "__main__": help="find functions with diffs in the given source file (if omitted, print summary of diffs for all files)", ) parser.add_argument( - "-v", "--version", help="version to compare", default="ntsc-1.2" + "-v", + "--version", + dest="oot_version", + help="version to compare", + default="ntsc-1.2", ) parser.add_argument( "--data", @@ -405,8 +409,8 @@ if __name__ == "__main__": if args.file is not None: if args.data: - find_data_diffs(args.version, args.file) + find_data_diffs(args.oot_version, args.file) else: - find_functions_with_diffs(args.version, args.file) + find_functions_with_diffs(args.oot_version, args.file) else: - print_summary(args.version, args.csv, args.only_not_ok) + print_summary(args.oot_version, args.csv, args.only_not_ok) diff --git a/sym_info.py b/sym_info.py index 1ef09b2fc4..feeb95da73 100755 --- a/sym_info.py +++ b/sym_info.py @@ -9,7 +9,7 @@ import mapfile_parser def symInfoMain(): parser = argparse.ArgumentParser(description="Display various information about a symbol or address.") parser.add_argument("symname", help="symbol name or VROM/VRAM address to lookup") - parser.add_argument("-v", "--oot-version", help="Which version should be processed", default="gc-eu-mq-dbg") + parser.add_argument("-v", "--version", dest="oot_version", help="Which version should be processed", default="gc-eu-mq-dbg") parser.add_argument("-e", "--expected", dest="use_expected", action="store_true", help="use the map file in expected/build/ instead of build/") args = parser.parse_args() diff --git a/tools/check_disasm_metadata_unksyms.py b/tools/check_disasm_metadata_unksyms.py index 5624ea962c..a1ddfb6d37 100755 --- a/tools/check_disasm_metadata_unksyms.py +++ b/tools/check_disasm_metadata_unksyms.py @@ -35,7 +35,7 @@ def get_ldscript_syms(ldscript_p: Path): def main(): parser = argparse.ArgumentParser() - parser.add_argument("--oot-version", "-v", required=True) + parser.add_argument("-v", "--version", dest="oot_version", required=True) args = parser.parse_args() version = args.oot_version diff --git a/tools/disasm/sym_info.py b/tools/disasm/sym_info.py index a13a4afaa1..eb659a1006 100755 --- a/tools/disasm/sym_info.py +++ b/tools/disasm/sym_info.py @@ -39,8 +39,9 @@ def main(): parser.add_argument("sym_or_vma") default_version = "ntsc-1.2" parser.add_argument( - "--version", "-v", + "--version", + dest="oot_version", default=default_version, help=f"oot version (default: {default_version})", ) @@ -89,10 +90,10 @@ def main(): syms_by_section_by_file = dict[str, dict[str, list[Sym]]]() - context_csv_p = Path(f"expected/build/{args.version}/context.csv") + context_csv_p = Path(f"expected/build/{args.oot_version}/context.csv") if not context_csv_p.exists(): print(f"Context file does not exist: {context_csv_p}") - print(f"Hint: run `make VERSION={args.version} disasm`") + print(f"Hint: run `make VERSION={args.oot_version} disasm`") exit(1) with context_csv_p.open() as f: diff --git a/tools/extract_baserom.py b/tools/extract_baserom.py index a1c72d1a86..eca86a6423 100755 --- a/tools/extract_baserom.py +++ b/tools/extract_baserom.py @@ -21,17 +21,16 @@ def main(): "rom", metavar="ROM", type=Path, help="Path to uncompressed ROM" ) parser.add_argument( - "-v", - "--oot-version", - required=True, - help="OOT version", + "output_dir", + type=Path, + help="Output directory for segments", ) parser.add_argument( - "-o", - "--output-dir", - type=Path, + "-v", + "--version", + dest="oot_version", required=True, - help="Output directory for segments", + help="OOT version", ) parser.add_argument( "--dmadata-start", diff --git a/tools/extract_incbins.py b/tools/extract_incbins.py index c76129ca46..ea920cc88c 100755 --- a/tools/extract_incbins.py +++ b/tools/extract_incbins.py @@ -18,21 +18,22 @@ def main(): description="Extract incbin pieces from an uncompressed ROM." ) parser.add_argument( - "baserom_dir", metavar="BASEROM_DIR", type=Path, help="Directory of uncompressed ROM segments" + "baserom_segments_dir", + type=Path, + help="Directory of uncompressed ROM segments", + ) + parser.add_argument( + "output_dir", + type=Path, + help="Output directory for incbin pieces", ) parser.add_argument( "-v", - "--oot-version", + "--version", + dest="oot_version", required=True, help="OOT version", ) - parser.add_argument( - "-o", - "--output-dir", - type=Path, - required=True, - help="Output directory for incbin pieces", - ) args = parser.parse_args() @@ -41,7 +42,7 @@ def main(): args.output_dir.mkdir(parents=True, exist_ok=True) for incbin in config.incbins: incbin_path = args.output_dir / incbin.name - with open(args.baserom_dir / incbin.segment, "rb") as f: + with open(args.baserom_segments_dir / incbin.segment, "rb") as f: offset = incbin.vram - config.dmadata_segments[incbin.segment].vram f.seek(offset) incbin_data = f.read(incbin.size) diff --git a/tools/fix_bss.py b/tools/fix_bss.py index f36f79e3b4..8f5f16436c 100755 --- a/tools/fix_bss.py +++ b/tools/fix_bss.py @@ -744,8 +744,9 @@ def main(): "the current build are due to BSS ordering." ) parser.add_argument( - "--oot-version", "-v", + "--version", + dest="oot_version", type=str, required=True, help="OOT version", diff --git a/tools/ido_block_numbers.py b/tools/ido_block_numbers.py index 6a34c32b55..292a14d387 100755 --- a/tools/ido_block_numbers.py +++ b/tools/ido_block_numbers.py @@ -528,7 +528,8 @@ def main(): parser.add_argument("filename", metavar="FILE", type=Path, help="C source file") parser.add_argument( "-v", - "--oot-version", + "--version", + dest="oot_version", type=str, default="gc-eu-mq-dbg", help="OOT version (default: gc-eu-mq-dbg)", diff --git a/tools/m2ctx.py b/tools/m2ctx.py index 6d8a6163f3..3b2c537a30 100755 --- a/tools/m2ctx.py +++ b/tools/m2ctx.py @@ -45,7 +45,7 @@ def main(): description="Creates a ctx.c file for mips2c. " "Output will be saved as oot/ctx.c") parser.add_argument('filepath', help="path of c file to be processed") - parser.add_argument("-v", "--oot-version", dest="oot_version", required=True) + parser.add_argument("-v", "--version", dest="oot_version", required=True) args = parser.parse_args() version = args.oot_version diff --git a/tools/msgdis.py b/tools/msgdis.py index 35006b10ef..74e2fed92e 100755 --- a/tools/msgdis.py +++ b/tools/msgdis.py @@ -4,6 +4,7 @@ # import argparse, re, struct +from pathlib import Path from typing import Callable, Dict, List, Optional, Tuple, TypeVar import version_config @@ -189,16 +190,6 @@ def remove_comments(text : str) -> str: def read4(data : bytes, p : int) -> int: return struct.unpack(">I", data[p:p+4])[0] -def read_baserom_segment(version : str, name : str) -> bytes: - data = None - with open(f"extracted/{version}/baserom/{name}", "rb") as infile: - data = infile.read() - return data - -def write_output_file(version : str, name : str, contents : str): - with open(f"extracted/{version}/text/{name}", "w") as outfile: - outfile.write(contents) - def read_sfx_ids(): sfx_tables = ( (0x0000, "playerbank_table.h"), @@ -760,7 +751,7 @@ class MessageEntry: return out -def collect_messages(message_tables : List[Optional[MessageTableDesc]], version : str, +def collect_messages(message_tables : List[Optional[MessageTableDesc]], baserom_segments_dir : Path, config : version_config.VersionConfig, code_vram : int, code_bin : bytes): messages : Dict[int,MessageEntry] = {} @@ -771,7 +762,7 @@ def collect_messages(message_tables : List[Optional[MessageTableDesc]], version if desc is None: continue - baserom_seg = read_baserom_segment(version, desc.seg_name) + baserom_seg = (baserom_segments_dir / desc.seg_name).read_bytes() code_offset = config.variables[desc.table_name] - code_vram if desc.parent is None: @@ -829,17 +820,35 @@ def collect_messages(message_tables : List[Optional[MessageTableDesc]], version def main(): parser = argparse.ArgumentParser(description="Extract text from the baserom into .h files") - parser.add_argument("version", help="OoT version") + parser.add_argument( + "baserom_segments_dir", + type=Path, + help="Directory of uncompressed ROM segments", + ) + parser.add_argument( + "output_dir", + type=Path, + help="Output directory to place files in", + ) + parser.add_argument( + "-v", + "--version", + dest="oot_version", + required=True, + help="OOT version", + ) args = parser.parse_args() - version : str = args.version + baserom_segments_dir : Path = args.baserom_segments_dir + version : str = args.oot_version + output_dir : Path = args.output_dir config = version_config.load_version_config(version) code_vram = config.dmadata_segments["code"].vram # print(hex(code_vram)) - code_bin = read_baserom_segment(version, "code") + code_bin = (baserom_segments_dir / "code").read_bytes() sfx_ids = read_sfx_ids() jpn_decoder = MessageDecoderJPN(sfx_ids) @@ -861,8 +870,8 @@ def main(): message_tables[3] = None message_table_staff = MessageTableDesc("sStaffMessageEntryTable", "staff_message_data_static", nes_decoder, None) - messages = collect_messages(message_tables, version, config, code_vram, code_bin) - staff_messages = collect_messages([message_table_staff], version, config, code_vram, code_bin) + messages = collect_messages(message_tables, baserom_segments_dir, config, code_vram, code_bin) + staff_messages = collect_messages([message_table_staff], baserom_segments_dir, config, code_vram, code_bin) message_data = [] @@ -875,8 +884,8 @@ def main(): message_data = "\n".join(message_data) message_data_staff = "\n".join(staff_messages[text_id].decode() for text_id in sorted(staff_messages.keys())) - write_output_file(version, "message_data.h", message_data) - write_output_file(version, "message_data_staff.h", message_data_staff) + (output_dir / "message_data.h").write_text(message_data) + (output_dir / "message_data_staff.h").write_text(message_data_staff) if __name__ == "__main__": main() From aa1c7f31558139d6bc4209edb5edc27c71ca3cc1 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 20:53:08 +0200 Subject: [PATCH 12/86] Pause doc: drawing the world map image (#2129) --- .../misc/ovl_kaleido_scope/z_kaleido_map.c | 42 +++++++++++-------- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 23 +++++----- .../misc/ovl_kaleido_scope/z_kaleido_scope.h | 6 +++ 3 files changed, 43 insertions(+), 28 deletions(-) diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c index de2da26da7..0b45c13bf8 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c @@ -508,9 +508,10 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[188], 32, 0); for (j = t = i = 0; i < 8; i++, t++, j += 4) { - gDPLoadTextureBlock(POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * 216 * 9, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 9, - 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock( + POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * WORLD_MAP_IMAGE_WIDTH * WORLD_MAP_IMAGE_FRAG_HEIGHT, + G_IM_FMT_CI, G_IM_SIZ_8b, WORLD_MAP_IMAGE_WIDTH, WORLD_MAP_IMAGE_FRAG_HEIGHT, 0, + G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, j, j + 2, j + 3, j + 1, 0); } @@ -518,16 +519,18 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[220], 28, 0); for (j = i = 0; i < 6; i++, t++, j += 4) { - gDPLoadTextureBlock(POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * 216 * 9, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 9, - 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock( + POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * WORLD_MAP_IMAGE_WIDTH * WORLD_MAP_IMAGE_FRAG_HEIGHT, + G_IM_FMT_CI, G_IM_SIZ_8b, WORLD_MAP_IMAGE_WIDTH, WORLD_MAP_IMAGE_FRAG_HEIGHT, 0, + G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, j, j + 2, j + 3, j + 1, 0); } - gDPLoadTextureBlock(POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * 216 * 9, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 2, 0, - G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, - G_TX_NOLOD); + gDPLoadTextureBlock( + POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * WORLD_MAP_IMAGE_WIDTH * WORLD_MAP_IMAGE_FRAG_HEIGHT, + G_IM_FMT_CI, G_IM_SIZ_8b, WORLD_MAP_IMAGE_WIDTH, WORLD_MAP_IMAGE_HEIGHT % WORLD_MAP_IMAGE_FRAG_HEIGHT, 0, + G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, j, j + 2, j + 3, j + 1, 0); } else if (HREG(15) == 1) { @@ -559,9 +562,10 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[188], 32, 0); for (j = t = i = 0; i < 8; i++, t++, j += 4) { - gDPLoadTextureBlock(POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * 216 * 9, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 9, 0, - G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, - G_TX_NOLOD); + gDPLoadTextureBlock( + POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * WORLD_MAP_IMAGE_WIDTH * WORLD_MAP_IMAGE_FRAG_HEIGHT, + G_IM_FMT_CI, G_IM_SIZ_8b, WORLD_MAP_IMAGE_WIDTH, WORLD_MAP_IMAGE_FRAG_HEIGHT, 0, G_TX_WRAP | G_TX_NOMIRROR, + G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, j, j + 2, j + 3, j + 1, 0); } @@ -569,16 +573,18 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[220], 28, 0); for (j = i = 0; i < 6; i++, t++, j += 4) { - gDPLoadTextureBlock(POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * 216 * 9, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 9, 0, - G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, - G_TX_NOLOD); + gDPLoadTextureBlock( + POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * WORLD_MAP_IMAGE_WIDTH * WORLD_MAP_IMAGE_FRAG_HEIGHT, + G_IM_FMT_CI, G_IM_SIZ_8b, WORLD_MAP_IMAGE_WIDTH, WORLD_MAP_IMAGE_FRAG_HEIGHT, 0, G_TX_WRAP | G_TX_NOMIRROR, + G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, j, j + 2, j + 3, j + 1, 0); } - gDPLoadTextureBlock(POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * 216 * 9, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 2, 0, - G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, - G_TX_NOLOD); + gDPLoadTextureBlock( + POLY_OPA_DISP++, (u8*)gWorldMapImageTex + t * WORLD_MAP_IMAGE_WIDTH * WORLD_MAP_IMAGE_FRAG_HEIGHT, G_IM_FMT_CI, + G_IM_SIZ_8b, WORLD_MAP_IMAGE_WIDTH, WORLD_MAP_IMAGE_HEIGHT % WORLD_MAP_IMAGE_FRAG_HEIGHT, 0, + G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, j, j + 2, j + 3, j + 1, 0); #endif diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index fcf4e2af63..3385c1cc56 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -2430,20 +2430,20 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { KaleidoScope_SetPageVertices(play, pauseCtx->equipPageVtx, VTX_PAGE_EQUIP, VTX_PAGE_EQUIP_QUADS); if (!sInDungeonScene) { - pauseCtx->mapPageVtx = GRAPH_ALLOC(gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_MAP_WORLD_QUADS + 15) * 4) * sizeof(Vtx)); + pauseCtx->mapPageVtx = GRAPH_ALLOC( + gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_MAP_WORLD_QUADS + WORLD_MAP_IMAGE_FRAG_NUM) * 4) * sizeof(Vtx)); j = KaleidoScope_SetPageVertices(play, pauseCtx->mapPageVtx, VTX_PAGE_MAP_WORLD, VTX_PAGE_MAP_WORLD_QUADS); - for (i = 0, y = 58; i < 15; i++, j += 4, y -= 9) { - pauseCtx->mapPageVtx[j + 2].v.ob[0] = -108; - pauseCtx->mapPageVtx[j + 0].v.ob[0] = pauseCtx->mapPageVtx[j + 2].v.ob[0]; + for (i = 0, y = 58; i < WORLD_MAP_IMAGE_FRAG_NUM; i++, j += 4, y -= WORLD_MAP_IMAGE_FRAG_HEIGHT) { + pauseCtx->mapPageVtx[j + 0].v.ob[0] = pauseCtx->mapPageVtx[j + 2].v.ob[0] = 0 - (WORLD_MAP_IMAGE_WIDTH / 2); pauseCtx->mapPageVtx[j + 1].v.ob[0] = pauseCtx->mapPageVtx[j + 3].v.ob[0] = - pauseCtx->mapPageVtx[j + 0].v.ob[0] + 216; + pauseCtx->mapPageVtx[j + 0].v.ob[0] + WORLD_MAP_IMAGE_WIDTH; pauseCtx->mapPageVtx[j + 0].v.ob[1] = pauseCtx->mapPageVtx[j + 1].v.ob[1] = y + pauseCtx->offsetY; pauseCtx->mapPageVtx[j + 2].v.ob[1] = pauseCtx->mapPageVtx[j + 3].v.ob[1] = - pauseCtx->mapPageVtx[j + 0].v.ob[1] - 9; + pauseCtx->mapPageVtx[j + 0].v.ob[1] - WORLD_MAP_IMAGE_FRAG_HEIGHT; pauseCtx->mapPageVtx[j + 0].v.ob[2] = pauseCtx->mapPageVtx[j + 1].v.ob[2] = pauseCtx->mapPageVtx[j + 2].v.ob[2] = pauseCtx->mapPageVtx[j + 3].v.ob[2] = 0; @@ -2454,9 +2454,11 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->mapPageVtx[j + 0].v.tc[0] = pauseCtx->mapPageVtx[j + 0].v.tc[1] = pauseCtx->mapPageVtx[j + 1].v.tc[1] = pauseCtx->mapPageVtx[j + 2].v.tc[0] = 0; - pauseCtx->mapPageVtx[j + 1].v.tc[0] = pauseCtx->mapPageVtx[j + 3].v.tc[0] = 0x1B00; + pauseCtx->mapPageVtx[j + 1].v.tc[0] = pauseCtx->mapPageVtx[j + 3].v.tc[0] = + WORLD_MAP_IMAGE_WIDTH * (1 << 5); - pauseCtx->mapPageVtx[j + 2].v.tc[1] = pauseCtx->mapPageVtx[j + 3].v.tc[1] = 0x120; + pauseCtx->mapPageVtx[j + 2].v.tc[1] = pauseCtx->mapPageVtx[j + 3].v.tc[1] = + WORLD_MAP_IMAGE_FRAG_HEIGHT * (1 << 5); pauseCtx->mapPageVtx[j + 0].v.cn[0] = pauseCtx->mapPageVtx[j + 2].v.cn[0] = pauseCtx->mapPageVtx[j + 0].v.cn[1] = pauseCtx->mapPageVtx[j + 2].v.cn[1] = @@ -2470,9 +2472,10 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { } pauseCtx->mapPageVtx[j - 2].v.ob[1] = pauseCtx->mapPageVtx[j - 1].v.ob[1] = - pauseCtx->mapPageVtx[j - 4].v.ob[1] - 2; + pauseCtx->mapPageVtx[j - 4].v.ob[1] - (WORLD_MAP_IMAGE_HEIGHT % WORLD_MAP_IMAGE_FRAG_HEIGHT); - pauseCtx->mapPageVtx[j - 2].v.tc[1] = pauseCtx->mapPageVtx[j - 1].v.tc[1] = 0x40; + pauseCtx->mapPageVtx[j - 2].v.tc[1] = pauseCtx->mapPageVtx[j - 1].v.tc[1] = + (WORLD_MAP_IMAGE_HEIGHT % WORLD_MAP_IMAGE_FRAG_HEIGHT) * (1 << 5); } else { pauseCtx->mapPageVtx = GRAPH_ALLOC(gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_MAP_DUNGEON_QUADS) * 4) * sizeof(Vtx)); KaleidoScope_SetPageVertices(play, pauseCtx->mapPageVtx, VTX_PAGE_MAP_DUNGEON, VTX_PAGE_MAP_DUNGEON_QUADS); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h index fe85019a43..3c3794e70d 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h @@ -34,6 +34,12 @@ extern u8 gAreaGsFlags[]; #define PAGE_BG_QUAD_TEX_WIDTH 80 #define PAGE_BG_QUAD_TEX_HEIGHT 32 +// The world map image is split into a number of quad fragments for drawing +#define WORLD_MAP_IMAGE_WIDTH 216 +#define WORLD_MAP_IMAGE_HEIGHT 128 +#define WORLD_MAP_IMAGE_FRAG_HEIGHT ((TMEM_SIZE / 2) / (WORLD_MAP_IMAGE_WIDTH * G_IM_SIZ_8b_BYTES)) +#define WORLD_MAP_IMAGE_FRAG_NUM (((WORLD_MAP_IMAGE_HEIGHT - 1) / WORLD_MAP_IMAGE_FRAG_HEIGHT) + 1) + void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx); s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point); void KaleidoScope_DrawDebugEditor(PlayState* play); From 8153c952f6d74e29b12aa03f1503530d5a39e732 Mon Sep 17 00:00:00 2001 From: cadmic Date: Wed, 4 Sep 2024 11:56:24 -0700 Subject: [PATCH 13/86] [ntsc-1.2] Organize n64dd declarations and convert to 1.0 addresses (#2127) * Reorganize n64dd declarations * Fix bss * Really fix bss --- data/{unk_800093F0.data.s => cic6105.text.s} | 10 ++-- include/cic6105.h | 1 + include/functions.h | 1 + include/n64dd.h | 55 ++++++++++--------- include/segment_symbols.h | 6 ++ include/ultra64/exception.h | 1 + include/ultra64/ucode.h | 2 + spec | 2 +- src/boot/cic6105.c | 4 +- src/boot/z_std_dma.c | 8 +-- src/code/code_n64dd_800AD410.c | 35 +++++------- src/code/code_n64dd_800AD4C0.c | 42 +++++++------- src/code/game.c | 16 +++--- src/code/main.c | 8 +-- src/code/sys_math3d.c | 2 +- src/code/z_collision_check.c | 2 +- src/code/z_demo.c | 4 +- src/code/z_kaleido_setup.c | 8 +-- src/code/z_play.c | 22 ++++---- src/code/z_room.c | 4 +- src/code/z_scene_table.c | 4 +- src/overlays/actors/ovl_En_Mag/z_en_mag.c | 5 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- src/overlays/gamestates/ovl_select/z_select.c | 6 +- src/overlays/gamestates/ovl_title/z_title.c | 17 ++---- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 2 +- .../misc/ovl_kaleido_scope/z_lmap_mark.c | 8 +-- tools/disasm/ntsc-1.2/files_boot.csv | 2 +- tools/disasm/ntsc-1.2/functions.txt | 18 +++--- tools/disasm/ntsc-1.2/variables.txt | 12 ++-- undefined_syms.txt | 25 +++------ 31 files changed, 156 insertions(+), 178 deletions(-) rename data/{unk_800093F0.data.s => cic6105.text.s} (77%) diff --git a/data/unk_800093F0.data.s b/data/cic6105.text.s similarity index 77% rename from data/unk_800093F0.data.s rename to data/cic6105.text.s index bf8a636c07..387beeded5 100644 --- a/data/unk_800093F0.data.s +++ b/data/cic6105.text.s @@ -5,15 +5,12 @@ .set noreorder /* don't insert nops after branches */ .set gp=64 /* allow use of 64-bit general purpose registers */ -.section .data +.section .text .balign 16 -/* Unused. - * This appears to be RSP code, however it is not part of - * rspboot as rspbootTextEnd is at this symbol. - */ -glabel D_800093F0 +/* RSP code for cic6105.c, used only in N64 versions. */ + glabel cic6105TextStart .word 0xE80C2001 # sqv $v12[0], 0x10($zero) .word 0x34014000 # li $1, 0x4000 .word 0x40812000 # mtc0 $1, SP_STATUS @@ -22,3 +19,4 @@ glabel D_800093F0 .word 0x09000425 # j 0x04001094 .word 0x00000000 # nop .word 0x00000000 # nop +glabel cic6105TextEnd diff --git a/include/cic6105.h b/include/cic6105.h index 794ada45de..43ffcc4f98 100644 --- a/include/cic6105.h +++ b/include/cic6105.h @@ -5,6 +5,7 @@ extern s32 B_80008EE0; +void func_800014E8(void); void CIC6105_AddFaultClient(void); void CIC6105_RemoveFaultClient(void); void func_80001640(void); diff --git a/include/functions.h b/include/functions.h index 6ad09a447c..51d8fc9676 100644 --- a/include/functions.h +++ b/include/functions.h @@ -91,6 +91,7 @@ s32 __osEPiRawReadIo(OSPiHandle* handle, u32 devAddr, u32* data); void osViSwapBuffer(void* frameBufPtr); s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, u32 cartAddr, void* dramAddr, size_t size); OSTime osGetTime(void); +void osSetTime(OSTime time); void __osTimerServicesInit(void); void __osTimerInterrupt(void); void __osSetTimerIntr(OSTime time); diff --git a/include/n64dd.h b/include/n64dd.h index 376665ac32..596092cfd0 100644 --- a/include/n64dd.h +++ b/include/n64dd.h @@ -14,19 +14,17 @@ struct SaveContext; struct Scene; // TODO Use the specific pointer types instead of void* -typedef struct n64ddStruct_800FF4B0_pointers { +typedef struct n64ddStruct_800FEE70_pointers { void* unk_00; void* unk_04; struct RegEditor* unk_08; void* unk_0C[31]; struct SaveContext* unk_88; void* unk_8C[9]; -} n64ddStruct_800FF4B0_pointers; // size = 0xB0 +} n64ddStruct_800FEE70_pointers; // size = 0xB0 -struct n64ddStruct_80121AF0; - -typedef struct n64ddStruct_80121AF0 { - void (*unk_00)(n64ddStruct_800FF4B0_pointers*, struct n64ddStruct_80121AF0*); +typedef struct n64ddStruct_80121220 { + void (*unk_00)(n64ddStruct_800FEE70_pointers*, struct n64ddStruct_80121220*); void (*unk_04)(void); void (*unk_08)(struct PlayState* play, struct RoomContext* roomCtx, s32 roomNum); void (*unk_0C)(struct PlayState* play); @@ -46,30 +44,33 @@ typedef struct n64ddStruct_80121AF0 { s32 (*unk_70)(struct DmaRequest* req, void* ram, uintptr_t vrom, size_t size, u32 unk, OSMesgQueue* queue, OSMesg msg); void (*unk_74)(struct GameState*); s32 (*unk_78)(struct PlayState*, void*, void*); -} n64ddStruct_80121AF0; // size = ? +} n64ddStruct_80121220; // size = ? -void func_800ADA80(void); -void func_800ADAF8(void); -n64ddStruct_80121AF0* func_800ADB30(n64ddStruct_80121AF0* arg0); -void func_800ADB8C(void); -n64ddStruct_800FF4B0_pointers* func_800ADBD0(void); -void func_800ADC00(void); -void func_800ADC08(s32 arg0, s32 arg1, s32 arg2); +void func_800AD410(void); +void func_800AD488(void); +n64ddStruct_80121220* func_800AD4C0(n64ddStruct_80121220* arg0); +void func_800AD51C(void); +n64ddStruct_800FEE70_pointers* func_800AD560(void); +void func_800AD590(void); +void func_800AD598(s32 arg0, s32 arg1, s32 arg2); -void func_801C8510_unknown(void* dest, s32 offset, s32 size); -void func_801C86F0_unknown(void); -void func_801C7760_unknown(union Gfx** gfx); +u32 func_801C6E80(void); +void func_801C6EA0(union Gfx** gfxP); +s32 func_801C70FC(void); +void func_801C7268(void); +s32 func_801C7658(void); +s32 func_801C7818(void); +void func_801C7C1C(void* dest, s32 offset, s32 size); +void func_801C7E78(void); +void n64dd_SetDiskVersion(s32 arg0); -extern n64ddStruct_800FF4B0_pointers D_800FF4B0; -extern n64ddStruct_80121AF0* B_80121AF0; +extern n64ddStruct_800FEE70_pointers D_800FEE70; +extern n64ddStruct_80121220* B_80121220; -extern u8 B_80121AE0; -extern s8 B_80121AE1; -extern u8 B_80121AE2; -extern vu8 B_80121AE3; -extern vu8 B_80121AE4; - -extern char D_801DA410; // type ? -extern char D_801E8090; // type ? +extern u8 D_80121210; +extern u8 D_80121211; +extern u8 D_80121212; +extern vu8 D_80121213; +extern vu8 D_80121214; #endif diff --git a/include/segment_symbols.h b/include/segment_symbols.h index 4e0ce0bbd4..9a03e3c575 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -84,6 +84,12 @@ DECLARE_SEGMENT(code) DECLARE_ROM_SEGMENT(code) DECLARE_BSS_SEGMENT(code) +// N64-only, not wrapped in these are not wrapped in an `#if PLATFORM_N64` +// so that the N64DD code can always be built. +DECLARE_SEGMENT(n64dd) +DECLARE_ROM_SEGMENT(n64dd) +DECLARE_BSS_SEGMENT(n64dd) + DECLARE_OVERLAY_SEGMENT(kaleido_scope) DECLARE_OVERLAY_SEGMENT(player_actor) DECLARE_OVERLAY_SEGMENT(map_mark_data) diff --git a/include/ultra64/exception.h b/include/ultra64/exception.h index 7d4977f4f9..886a3b9096 100644 --- a/include/ultra64/exception.h +++ b/include/ultra64/exception.h @@ -38,6 +38,7 @@ typedef struct { /* 0x04 */ void* sp; } __osHwInt; // size = 0x08 +OSIntMask osGetIntMask(void); OSIntMask osSetIntMask(OSIntMask); void __osSetHWIntrRoutine(OSHWIntr intr, s32 (*callback)(void), void* sp); diff --git a/include/ultra64/ucode.h b/include/ultra64/ucode.h index 00ef36ac2b..9265c882b6 100644 --- a/include/ultra64/ucode.h +++ b/include/ultra64/ucode.h @@ -12,6 +12,8 @@ extern u64 rspbootTextStart[], rspbootTextEnd[]; +extern u64 cic6105TextStart[], cic6105TextEnd[]; + extern u64 aspMainTextStart[], aspMainTextEnd[]; extern u64 aspMainDataStart[], aspMainDataEnd[]; diff --git a/spec b/spec index 9dfd4b20c9..b82247e1fa 100644 --- a/spec +++ b/spec @@ -15,7 +15,6 @@ beginseg name "boot" address 0x80000460 include "$(BUILD_DIR)/src/boot/boot_main.o" - include "$(BUILD_DIR)/data/unk_800093F0.data.o" include "$(BUILD_DIR)/data/unk_80009410.data.o" include "$(BUILD_DIR)/src/boot/idle.o" include "$(BUILD_DIR)/src/boot/viconfig.o" @@ -144,6 +143,7 @@ beginseg #endif include "$(BUILD_DIR)/src/boot/build.o" include "$(BUILD_DIR)/data/rsp_boot.text.o" + include "$(BUILD_DIR)/data/cic6105.text.o" #ifdef COMPILER_GCC include "$(BUILD_DIR)/src/libc/memset.o" include "$(BUILD_DIR)/src/libc/memmove.o" diff --git a/src/boot/cic6105.c b/src/boot/cic6105.c index 1f6469b560..ca5747c9cf 100644 --- a/src/boot/cic6105.c +++ b/src/boot/cic6105.c @@ -4,10 +4,8 @@ s32 func_80001714(void); -extern u64 cic6105ucodeTextStart[]; - OSTask D_800067C0_unknown = { - 4, 0, rspbootTextStart, 0x3E8, cic6105ucodeTextStart, 0x20, (u64*)gBuildTeam, 8, NULL, 0, NULL, 0, NULL, 0, NULL, 0, + 4, 0, rspbootTextStart, 0x3E8, cic6105TextStart, 0x20, (u64*)gBuildTeam, 8, NULL, 0, NULL, 0, NULL, 0, NULL, 0, }; s32 B_80008EE0; diff --git a/src/boot/z_std_dma.c b/src/boot/z_std_dma.c index 3f3d7b87cf..69d48eed92 100644 --- a/src/boot/z_std_dma.c +++ b/src/boot/z_std_dma.c @@ -197,8 +197,8 @@ s32 DmaMgr_AudioDmaHandler(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction) { ASSERT(mb != NULL, "mb != NULL", "../z_std_dma.c", 532); #if PLATFORM_N64 - if (B_80121AE2) { - while (B_80121AE4) { + if (D_80121212) { + while (D_80121214) { Sleep_Msec(1000); } } @@ -543,8 +543,8 @@ s32 DmaMgr_RequestAsync(DmaRequest* req, void* ram, uintptr_t vrom, size_t size, #endif #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_70 != NULL)) { - if (B_80121AF0->unk_70(req, ram, vrom, size, unk, queue, msg) != 0) { + if ((B_80121220 != NULL) && (B_80121220->unk_70 != NULL)) { + if (B_80121220->unk_70(req, ram, vrom, size, unk, queue, msg) != 0) { return 0; } } diff --git a/src/code/code_n64dd_800AD410.c b/src/code/code_n64dd_800AD410.c index 8e380f64c8..66dcc3cc76 100644 --- a/src/code/code_n64dd_800AD410.c +++ b/src/code/code_n64dd_800AD410.c @@ -3,32 +3,25 @@ #include "segment_symbols.h" #include "n64dd.h" -DECLARE_SEGMENT(n64dd) -DECLARE_ROM_SEGMENT(n64dd) -DECLARE_BSS_SEGMENT(n64dd) +u8 D_80121210; +u8 D_80121211; +u8 D_80121212; +vu8 D_80121213; +vu8 D_80121214; -s8 func_801C7740_unknown(void); - -u8 B_80121AE0; -s8 B_80121AE1; -u8 B_80121AE2; -vu8 B_80121AE3; -vu8 B_80121AE4; - -void func_800ADA80(void) { - if (!B_80121AE0) { +void func_800AD410(void) { + if (!D_80121210) { DmaMgr_RequestSync(_n64ddSegmentStart, (uintptr_t)_n64ddSegmentRomStart, _n64ddSegmentRomEnd - _n64ddSegmentRomStart); - // TODO use _n64ddSegmentBssStart, _n64ddSegmentBssEnd - bzero(&D_801DA410, &D_801E8090 - &D_801DA410); - B_80121AE0 = true; - B_80121AE1 = func_801C7740_unknown(); - if (B_80121AE1) {} + bzero(_n64ddSegmentBssStart, _n64ddSegmentBssEnd - _n64ddSegmentBssStart); + D_80121210 = true; + D_80121211 = func_801C6E80(); + if (D_80121211) {} } } -void func_800ADAF8(void) { - if (B_80121AE0 && (B_80121AE2 == 0)) { - B_80121AE0 = false; +void func_800AD488(void) { + if (D_80121210 && (D_80121212 == 0)) { + D_80121210 = false; } } diff --git a/src/code/code_n64dd_800AD4C0.c b/src/code/code_n64dd_800AD4C0.c index ed1477f93c..3f1488c66e 100644 --- a/src/code/code_n64dd_800AD4C0.c +++ b/src/code/code_n64dd_800AD4C0.c @@ -2,12 +2,8 @@ #include "fault.h" #include "n64dd.h" -// TODO functions of unknown prototype -extern char osGetIntMask[]; -extern char osSetTime[]; - -n64ddStruct_800FF4B0_pointers D_800FF4B0 = { - func_801C8510_unknown, +n64ddStruct_800FEE70_pointers D_800FEE70 = { + func_801C7C1C, NULL, NULL, Fault_RemoveClient, @@ -16,7 +12,7 @@ n64ddStruct_800FF4B0_pointers D_800FF4B0 = { Fault_WaitForInput, Fault_AddHungupAndCrashImpl, Fault_AddHungupAndCrash, - func_800ADC08, + func_800AD598, _Printf, osCreateThread, osDestroyThread, @@ -53,34 +49,34 @@ n64ddStruct_800FF4B0_pointers D_800FF4B0 = { NULL, }; -n64ddStruct_80121AF0* B_80121AF0; +n64ddStruct_80121220* B_80121220; -n64ddStruct_80121AF0* func_800ADB30(n64ddStruct_80121AF0* arg0) { - n64ddStruct_800FF4B0_pointers* temp_a0 = func_800ADBD0(); +n64ddStruct_80121220* func_800AD4C0(n64ddStruct_80121220* arg0) { + n64ddStruct_800FEE70_pointers* temp_a0 = func_800AD560(); if (arg0 != NULL && arg0->unk_00 != NULL) { arg0->unk_00(temp_a0, arg0); } - B_80121AF0 = arg0; - return B_80121AF0; + B_80121220 = arg0; + return B_80121220; } -void func_800ADB8C(void) { - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_04 != NULL)) { - B_80121AF0->unk_04(); +void func_800AD51C(void) { + if ((B_80121220 != NULL) && (B_80121220->unk_04 != NULL)) { + B_80121220->unk_04(); } - B_80121AF0 = NULL; + B_80121220 = NULL; } -n64ddStruct_800FF4B0_pointers* func_800ADBD0(void) { - D_800FF4B0.unk_04 = 0; - D_800FF4B0.unk_08 = gRegEditor; - D_800FF4B0.unk_88 = &gSaveContext; - return &D_800FF4B0; +n64ddStruct_800FEE70_pointers* func_800AD560(void) { + D_800FEE70.unk_04 = 0; + D_800FEE70.unk_08 = gRegEditor; + D_800FEE70.unk_88 = &gSaveContext; + return &D_800FEE70; } -void func_800ADC00(void) { +void func_800AD590(void) { } -void func_800ADC08(s32 arg0, s32 arg1, s32 arg2) { +void func_800AD598(s32 arg0, s32 arg1, s32 arg2) { } diff --git a/src/code/game.c b/src/code/game.c index 07007f6a70..e00bc74066 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -73,8 +73,8 @@ void GameState_SetFBFilter(Gfx** gfxP) { void func_800C4344(GameState* gameState) { #if PLATFORM_N64 - if (B_80121AE2 != 0) { - func_801C86F0_unknown(); + if (D_80121212 != 0) { + func_801C7E78(); } #elif OOT_DEBUG Input* selectedInput; @@ -245,8 +245,8 @@ void func_800C49F4(GraphicsContext* gfxCtx) { gSPDisplayList(OVERLAY_DISP++, newDlist); #if PLATFORM_N64 - if (B_80121AE2 != 0) { - func_801C7760_unknown(&newDlist); + if (D_80121212 != 0) { + func_801C6EA0(&newDlist); } #endif @@ -271,11 +271,11 @@ void GameState_Update(GameState* gameState) { gameState->main(gameState); #if PLATFORM_N64 - if (B_80121AE2 != 0) { - func_801C86F0_unknown(); + if (D_80121212 != 0) { + func_801C7E78(); } - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_74 != NULL)) { - B_80121AF0->unk_74(gameState); + if ((B_80121220 != NULL) && (B_80121220->unk_74 != NULL)) { + B_80121220->unk_74(gameState); } #endif diff --git a/src/code/main.c b/src/code/main.c index ce1739a5cb..2487725635 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -60,12 +60,12 @@ void Main(void* arg) { PreNmiBuff_Init(gAppNmiBufferPtr); Fault_Init(); #if PLATFORM_N64 - func_800ADA80(); - if ((u8)B_80121AE1 != 0) { - systemHeapStart = (uintptr_t)&D_801E8090; + func_800AD410(); + if (D_80121211 != 0) { + systemHeapStart = (uintptr_t)&_n64ddSegmentEnd; SysCfb_Init(1); } else { - func_800ADAF8(); + func_800AD488(); systemHeapStart = (uintptr_t)_buffersSegmentEnd; SysCfb_Init(0); } diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index 9d27596010..570da1ab01 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -5,7 +5,7 @@ #include "macros.h" #include "sys_math3d.h" -#pragma increment_block_number "gc-eu:108 gc-eu-mq:108 gc-jp:108 gc-jp-ce:108 gc-jp-mq:108 gc-us:108 gc-us-mq:108" +#pragma increment_block_number "gc-eu:106 gc-eu-mq:106 gc-jp:106 gc-jp-ce:106 gc-jp-mq:106 gc-us:106 gc-us-mq:106" s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index b80ac0bb57..b18f3e226d 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -5,7 +5,7 @@ #include "overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.h" -#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0" typedef s32 (*ColChkResetFunc)(PlayState*, Collider*); typedef void (*ColChkApplyFunc)(PlayState*, CollisionCheckContext*, Collider*); diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 56a94816c0..6cf3ae941e 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -2423,8 +2423,8 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) { void Cutscene_SetScript(PlayState* play, void* script) { #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_78 != NULL)) { - if (B_80121AF0->unk_78(play, script, sCutscenesUnknownList)) { + if ((B_80121220 != NULL) && (B_80121220->unk_78 != NULL)) { + if (B_80121220->unk_78(play, script, sCutscenesUnknownList)) { return; } } diff --git a/src/code/z_kaleido_setup.c b/src/code/z_kaleido_setup.c index 9875277123..1e54071657 100644 --- a/src/code/z_kaleido_setup.c +++ b/src/code/z_kaleido_setup.c @@ -177,16 +177,16 @@ void KaleidoSetup_Init(PlayState* play) { View_Init(&pauseCtx->view, play->state.gfxCtx); #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_3C != NULL)) { - B_80121AF0->unk_3C(); + if ((B_80121220 != NULL) && (B_80121220->unk_3C != NULL)) { + B_80121220->unk_3C(); } #endif } void KaleidoSetup_Destroy(PlayState* play) { #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_40 != NULL)) { - B_80121AF0->unk_40(); + if ((B_80121220 != NULL) && (B_80121220->unk_40 != NULL)) { + B_80121220->unk_40(); } #endif } diff --git a/src/code/z_play.c b/src/code/z_play.c index 084ef4ddce..c650cbd6c3 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -243,8 +243,8 @@ void Play_Destroy(GameState* thisx) { ZeldaArena_Cleanup(); #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_14 != NULL)) { - B_80121AF0->unk_14(this); + if ((B_80121220 != NULL) && (B_80121220->unk_14 != NULL)) { + B_80121220->unk_14(this); } #endif @@ -279,8 +279,8 @@ void Play_Init(GameState* thisx) { GameState_Realloc(&this->state, 0x1D4790); #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_10 != NULL)) { - B_80121AF0->unk_10(this); + if ((B_80121220 != NULL) && (B_80121220->unk_10 != NULL)) { + B_80121220->unk_10(this); } #endif @@ -388,7 +388,7 @@ void Play_Init(GameState* thisx) { #endif #if PLATFORM_N64 - if ((B_80121AF0 != NULL && B_80121AF0->unk_54 != NULL && B_80121AF0->unk_54(this))) { + if ((B_80121220 != NULL && B_80121220->unk_54 != NULL && B_80121220->unk_54(this))) { } else { Cutscene_HandleEntranceTriggers(this); } @@ -1499,7 +1499,7 @@ void* Play_LoadFileFromDiskDrive(PlayState* this, RomFile* file) { size = file->vromEnd - file->vromStart; allocp = THA_AllocTailAlign16(&this->state.tha, size); - func_801C8510_unknown(allocp, file->vromStart, size); + func_801C7C1C(allocp, file->vromStart, size); return allocp; } @@ -1537,8 +1537,8 @@ void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn) { u32 size; #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_48 != NULL)) { - scene = B_80121AF0->unk_48(sceneId, gSceneTable); + if ((B_80121220 != NULL) && (B_80121220->unk_48 != NULL)) { + scene = B_80121220->unk_48(sceneId, gSceneTable); } else { scene = &gSceneTable[sceneId]; scene->unk_13 = 0; @@ -1555,7 +1555,7 @@ void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn) { PRINTF("\nSCENE SIZE %fK\n", (scene->sceneFile.vromEnd - scene->sceneFile.vromStart) / 1024.0f); #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (scene->unk_12 > 0)) { + if ((B_80121220 != NULL) && (scene->unk_12 > 0)) { this->sceneSegment = Play_LoadFileFromDiskDrive(this, &scene->sceneFile); scene->unk_13 = 1; } else { @@ -1574,8 +1574,8 @@ void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn) { Play_InitScene(this, spawn); #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_0C != NULL)) { - B_80121AF0->unk_0C(this); + if ((B_80121220 != NULL) && (B_80121220->unk_0C != NULL)) { + B_80121220->unk_0C(this); } #endif diff --git a/src/code/z_room.c b/src/code/z_room.c index 2b727deea9..5a88f1c281 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -623,8 +623,8 @@ s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum) { osCreateMesgQueue(&roomCtx->loadQueue, &roomCtx->loadMsg, 1); #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_08 != NULL)) { - B_80121AF0->unk_08(play, roomCtx, roomNum); + if ((B_80121220 != NULL) && (B_80121220->unk_08 != NULL)) { + B_80121220->unk_08(play, roomCtx, roomNum); } else { DMA_REQUEST_ASYNC(&roomCtx->dmaRequest, roomCtx->unk_34, play->roomList[roomNum].vromStart, size, 0, &roomCtx->loadQueue, NULL, "../z_room.c", 1036); diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c index 2879a3fa4e..6767993f0c 100644 --- a/src/code/z_scene_table.c +++ b/src/code/z_scene_table.c @@ -196,8 +196,8 @@ SceneDrawConfigFunc sSceneDrawConfigs[SDC_MAX] = { }; void Scene_Draw(PlayState* play) { - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_6C != NULL)) { - B_80121AF0->unk_6C(play, sSceneDrawConfigs); + if ((B_80121220 != NULL) && (B_80121220->unk_6C != NULL)) { + B_80121220->unk_6C(play, sSceneDrawConfigs); return; } 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 94e298ad8b..ccff03803c 100644 --- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c +++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c @@ -474,11 +474,8 @@ void EnMag_DrawImageRGBA32(Gfx** gfxP, s16 centerX, s16 centerY, u8* source, u32 } #if PLATFORM_N64 -// TODO n64dd functions -s32 func_801C79BC_unknown(void); - void func_80AEEA48_unknown(Gfx** gfxP, s16 arg1, s16 arg2, u32 arg3) { - if ((B_80121AE2 != 0) && (func_801C79BC_unknown() != 0)) { + if ((D_80121212 != 0) && (func_801C70FC() != 0)) { Gfx* gfx = *gfxP; s32 temp_a3 = (arg1 + 0x40) << 2; s32 temp_t0 = (arg2 + 5) << 2; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index a229809266..e22bb5e868 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:174 gc-eu-mq:174 gc-jp:176 gc-jp-ce:176 gc-jp-mq:176 gc-us:176 gc-us-mq:176" +#pragma increment_block_number "gc-eu:166 gc-eu-mq:166 gc-jp:168 gc-jp-ce:168 gc-jp-mq:168 gc-us:168 gc-us-mq:168" #define FLAGS ACTOR_FLAG_4 diff --git a/src/overlays/gamestates/ovl_select/z_select.c b/src/overlays/gamestates/ovl_select/z_select.c index ed249540c5..6ccf547b91 100644 --- a/src/overlays/gamestates/ovl_select/z_select.c +++ b/src/overlays/gamestates/ovl_select/z_select.c @@ -12,8 +12,6 @@ #if PLATFORM_N64 #include "n64dd.h" -// TODO n64dd functions -void n64dd_SetDiskVersion(s32); #endif void MapSelect_LoadTitle(MapSelectState* this) { @@ -53,13 +51,13 @@ void MapSelect_LoadGame(MapSelectState* this, s32 entranceIndex) { #if PLATFORM_N64 void func_80800AD0_unknown(MapSelectState* this, s32 arg1) { - if (B_80121AE2 != 0) { + if (D_80121212 != 0) { n64dd_SetDiskVersion(1); } } void func_80800B08_unknown(MapSelectState* this, s32 arg1) { - if (B_80121AE2 != 0) { + if (D_80121212 != 0) { n64dd_SetDiskVersion(0); } } diff --git a/src/overlays/gamestates/ovl_title/z_title.c b/src/overlays/gamestates/ovl_title/z_title.c index 19946322fb..c082e6f72f 100644 --- a/src/overlays/gamestates/ovl_title/z_title.c +++ b/src/overlays/gamestates/ovl_title/z_title.c @@ -9,17 +9,12 @@ #include "versions.h" #if PLATFORM_N64 +#include "cic6105.h" #include "n64dd.h" #endif #include "assets/textures/nintendo_rogo_static/nintendo_rogo_static.h" -// TODO -void func_800014E8_unknown(void); -s32 func_801C8090_unknown(void); -void func_801C7BC4_unknown(void); -s32 func_801C7ED0_unknown(void); - #if OOT_DEBUG void ConsoleLogo_PrintBuildInfo(Gfx** gfxP) { Gfx* gfx; @@ -186,17 +181,17 @@ void ConsoleLogo_Destroy(GameState* thisx) { #if PLATFORM_N64 if (this->unk_1E0) { - if (func_801C8090_unknown() != 0) { + if (func_801C7818() != 0) { func_800D31A0(); } - func_801C7BC4_unknown(); + func_801C7268(); } #endif Sram_InitSram(&this->state, &this->sramCtx); #if PLATFORM_N64 - func_800014E8_unknown(); + func_800014E8(); #endif } @@ -205,8 +200,8 @@ void ConsoleLogo_Init(GameState* thisx) { ConsoleLogoState* this = (ConsoleLogoState*)thisx; #if PLATFORM_N64 - if ((B_80121AE0 != 0) && ((u8)B_80121AE1 != 0) && (B_80121AE2 == 0)) { - if (func_801C7ED0_unknown() != 0) { + if ((D_80121210 != 0) && (D_80121211 != 0) && (D_80121212 == 0)) { + if (func_801C7658() != 0) { func_800D31A0(); } this->unk_1E0 = true; diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index 3385c1cc56..0f9d3e8693 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -3077,7 +3077,7 @@ void KaleidoScope_UpdateDungeonMap(PlayState* play) { PRINTF("MAP DMA = %d\n", play->interfaceCtx.mapPaletteIndex); #if PLATFORM_N64 - if (B_80121AF0 != NULL && B_80121AF0->unk_44 != NULL && B_80121AF0->unk_44(play)) { + if (B_80121220 != NULL && B_80121220->unk_44 != NULL && B_80121220->unk_44(play)) { } else { KaleidoScope_LoadDungeonMap(play); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c b/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c index b285aaa52d..8b9d5b7891 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c @@ -31,16 +31,16 @@ void PauseMapMark_Init(PlayState* play) { gBossMarkScale = 1.0f; gLoadedPauseMarkDataTable = gPauseMapMarkDataTable; #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_34 != NULL)) { - B_80121AF0->unk_34(&gLoadedPauseMarkDataTable); + if ((B_80121220 != NULL) && (B_80121220->unk_34 != NULL)) { + B_80121220->unk_34(&gLoadedPauseMarkDataTable); } #endif } void PauseMapMark_Clear(PlayState* play) { #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_38 != NULL)) { - B_80121AF0->unk_38(&gLoadedPauseMarkDataTable); + if ((B_80121220 != NULL) && (B_80121220->unk_38 != NULL)) { + B_80121220->unk_38(&gLoadedPauseMarkDataTable); } #endif gLoadedPauseMarkDataTable = NULL; diff --git a/tools/disasm/ntsc-1.2/files_boot.csv b/tools/disasm/ntsc-1.2/files_boot.csv index 260778c0c2..dcb6f0bf87 100644 --- a/tools/disasm/ntsc-1.2/files_boot.csv +++ b/tools/disasm/ntsc-1.2/files_boot.csv @@ -84,9 +84,9 @@ FD0,80001430,src/boot/z_locale 60C0,80006520,src/libultra/os/sethwintrroutine 6130,80006590,src/libultra/os/gethwintrroutine 6160,800065C0,data/rsp_boot.text +62E0,80006740,data/cic6105.text offset,vram,.data -62E0,80006740,data/unk_80009410.data 6310,80006770,src/boot/idle 6330,80006790,src/boot/viconfig 6340,800067A0,src/boot/z_std_dma diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index a3c4c7520b..3194bccd86 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -2305,13 +2305,13 @@ IrqMgr_HandlePreNMI500 = 0x800AD808; // type:func IrqMgr_HandleRetrace = 0x800AD82C; // type:func IrqMgr_ThreadEntry = 0x800AD8E4; // type:func IrqMgr_Init = 0x800AD9B8; // type:func -func_800ADA80 = 0x800ADA80; // type:func -func_800ADAF8 = 0x800ADAF8; // type:func -func_800ADB30 = 0x800ADB30; // type:func -func_800ADB8C = 0x800ADB8C; // type:func -func_800ADBD0 = 0x800ADBD0; // type:func -func_800ADC00 = 0x800ADC00; // type:func -func_800ADC08 = 0x800ADC08; // type:func +func_800AD410 = 0x800ADA80; // type:func +func_800AD488 = 0x800ADAF8; // type:func +func_800AD4C0 = 0x800ADB30; // type:func +func_800AD51C = 0x800ADB8C; // type:func +func_800AD560 = 0x800ADBD0; // type:func +func_800AD590 = 0x800ADC00; // type:func +func_800AD598 = 0x800ADC08; // type:func Fault_SleepImpl = 0x800ADC20; // type:func Fault_WaitForInputImpl = 0x800ADC5C; // type:func Fault_WaitForInput = 0x800ADCD8; // type:func @@ -3098,8 +3098,8 @@ Message_Init = 0x800E2660; // type:func Regs_InitDataImpl = 0x800E2704; // type:func Regs_InitData = 0x800E35D0; // type:func njpgdspMainTextStart = 0x800E7200; // type:func -func_801C7740_unknown = 0x801C7740; // type:func -func_801C8510_unknown = 0x801C8510; // type:func +func_801C6E80 = 0x801C7740; // type:func +func_801C7C1C = 0x801C8510; // type:func n64dd_SetDiskVersion = 0x801C8808; // type:func ConsoleLogo_Calc = 0x80800000; // type:func ConsoleLogo_SetupView = 0x8080009C; // type:func diff --git a/tools/disasm/ntsc-1.2/variables.txt b/tools/disasm/ntsc-1.2/variables.txt index b434d65043..ce115492fd 100644 --- a/tools/disasm/ntsc-1.2/variables.txt +++ b/tools/disasm/ntsc-1.2/variables.txt @@ -12,16 +12,16 @@ gSaveContext = 0x8011AC80; // size:0x1428 type:SaveContext gRegEditor = 0x8011C0B0; // size:0x4 type:RegEditor* gSegments = 0x80121508; // size:0x40 _string_n64dd_c = 0x801D9680; // size:0x1 type:char -B_80121AF0 = 0x80121AF0; // size:0x4 type:n64ddStruct_80121AF0* -B_80121AE0 = 0x80121AE0; // size:0x1 type:u8 -B_80121AE1 = 0x80121AE1; // size:0x1 type:s8 -B_80121AE2 = 0x80121AE2; // size:0x1 type:u8 +B_80121220 = 0x80121AF0; // size:0x4 type:n64ddStruct_80121220* +D_80121210 = 0x80121AE0; // size:0x1 type:u8 +D_80121211 = 0x80121AE1; // size:0x1 type:s8 +D_80121212 = 0x80121AE2; // size:0x1 type:u8 _n64ddSegmentStart = 0x801C7740; _n64ddSegmentRomStart = 0x00B8ADA0; _n64ddSegmentRomEnd = 0x00B9DA70; D_801DA410 = 0x801DA410; D_801E8090 = 0x801E8090; -D_800FF4B0 = 0x800FF4B0; // size:0xB0 type:n64ddStruct_800FF4B0_pointers +D_800FEE70 = 0x800FF4B0; // size:0xB0 type:n64ddStruct_800FEE70_pointers gPadMgr = 0x8011DBD0; // size:0x468 type:PadMgr gFaultMgr = 0x80121B60; // size:0x5D8 type:FaultMgr_v1 sFaultInputs = 0x80121B00; // size:0x60 type:Input[4] @@ -57,6 +57,6 @@ sGraphStack = 0x8011E468; sGraphThread = 0x8011E2B8; rspbootTextStart = 0x800065C0; rspbootTextEnd = 0x80006720; -cic6105ucodeTextStart = 0x80006720; +cic6105TextStart = 0x80006720; gBuildTeam = 0x80006D30; gBuildDate = 0x80006D3C; diff --git a/undefined_syms.txt b/undefined_syms.txt index 7ce3eb5ae1..b5b1b772f7 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -12,34 +12,25 @@ D_06000000 = 0x06000000; #if PLATFORM_N64 -// boot_main.c -func_80001720 = 0x80001720; - -// cic6105.c -cic6105ucodeTextStart = 0x80006720; - // code_n64dd_800AD410.c -func_800ADCD8_unknown = 0x800ADCD8; -func_800AE170_unknown = 0x800AE170; -func_801C7740_unknown = 0x801C7740; -func_801C8510_unknown = 0x801C8510; +func_801C6E80 = 0x801C7740; +func_801C7C1C = 0x801C8510; D_801DA410 = 0x801DA410; D_801E8090 = 0x801E8090; // game.c -func_801C86F0_unknown = 0x801C86F0; -func_801C7760_unknown = 0x801C7760; +func_801C7E78 = 0x801C86F0; +func_801C6EA0 = 0x801C7760; // z_en_mag.c -func_801C79BC_unknown = 0x801C79BC; +func_801C70FC = 0x801C79BC; // z_setup.c n64dd_SetDiskVersion = 0x801C8808; // z_title.c -func_800014E8_unknown = 0x800014E8; -func_801C8090_unknown = 0x801C8090; -func_801C7BC4_unknown = 0x801C7BC4; -func_801C7ED0_unknown = 0x801C7ED0; +func_801C7818 = 0x801C8090; +func_801C7268 = 0x801C7BC4; +func_801C7658 = 0x801C7ED0; #endif From 376f9852d088003b5e1cc15e599131991de20516 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 21:03:58 +0200 Subject: [PATCH 14/86] [ntsc-1.2] Match z_message.c (#2098) * match Message_ResetOcarinaNoteState, Message_DrawTextChar * match Message_OpenText * Match Message_SetTables * Match Message_StartTextbox * forgor #if * format * match Message_DrawMain (ty inspect) * review --- include/n64dd.h | 8 +++++- src/code/z_message.c | 67 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 63 insertions(+), 12 deletions(-) diff --git a/include/n64dd.h b/include/n64dd.h index 596092cfd0..399334d55c 100644 --- a/include/n64dd.h +++ b/include/n64dd.h @@ -5,8 +5,10 @@ #include "z64pause.h" #include "z64scene.h" +struct Font; struct GameState; union Gfx; +struct MessageTableEntry; struct PlayState; struct RegEditor; struct RoomContext; @@ -39,7 +41,11 @@ typedef struct n64ddStruct_80121220 { struct SceneTableEntry* (*unk_48)(s32 sceneId, struct SceneTableEntry* sceneTable); char unk_4C[0x08]; s32 (*unk_54)(struct PlayState*); - char unk_58[0x14]; + void (*unk_58)(struct MessageTableEntry**, struct MessageTableEntry**, struct MessageTableEntry**); + char unk_5C[0x4]; + s32 (*unk_60)(struct Font*); + s32 (*unk_64)(struct Font*); + s32 (*unk_68)(struct Font*); void (*unk_6C)(struct PlayState*, SceneDrawConfigFunc*); s32 (*unk_70)(struct DmaRequest* req, void* ram, uintptr_t vrom, size_t size, u32 unk, OSMesgQueue* queue, OSMesg msg); void (*unk_74)(struct GameState*); diff --git a/src/code/z_message.c b/src/code/z_message.c index a610f036fd..a61c1620b4 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -4,9 +4,22 @@ #include "versions.h" #include "assets/textures/parameter_static/parameter_static.h" #include "versions.h" +#if PLATFORM_N64 +#include "n64dd.h" +#endif #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#if PLATFORM_N64 +#define OCARINA_BUTTON_A_PRIM_R 80 +#define OCARINA_BUTTON_A_PRIM_G 150 +#define OCARINA_BUTTON_A_PRIM_B 255 +#else +#define OCARINA_BUTTON_A_PRIM_R 80 +#define OCARINA_BUTTON_A_PRIM_G 255 +#define OCARINA_BUTTON_A_PRIM_B 150 +#endif + s16 sTextFade = false; // original name: key_off_flag ? u8 D_8014B2F4 = 0; @@ -192,9 +205,9 @@ void Message_ResetOcarinaNoteState(void) { sOcarinaButtonAlphaValues[0] = sOcarinaButtonAlphaValues[1] = sOcarinaButtonAlphaValues[2] = sOcarinaButtonAlphaValues[3] = sOcarinaButtonAlphaValues[4] = sOcarinaButtonAlphaValues[5] = sOcarinaButtonAlphaValues[6] = sOcarinaButtonAlphaValues[7] = sOcarinaButtonAlphaValues[8] = 0; - sOcarinaButtonAPrimR = 80; - sOcarinaButtonAPrimG = 255; - sOcarinaButtonAPrimB = 150; + sOcarinaButtonAPrimR = OCARINA_BUTTON_A_PRIM_R; + sOcarinaButtonAPrimG = OCARINA_BUTTON_A_PRIM_G; + sOcarinaButtonAPrimB = OCARINA_BUTTON_A_PRIM_B; sOcarinaButtonAEnvR = 10; sOcarinaButtonAEnvG = 10; sOcarinaButtonAEnvB = 10; @@ -298,6 +311,7 @@ void Message_DrawTextChar(PlayState* play, void* textureImage, Gfx** p) { Gfx* gfx = *p; s16 x = msgCtx->textPosX; s16 y = msgCtx->textPosY; + s32 pad; gDPPipeSync(gfx++); @@ -2446,20 +2460,47 @@ void Message_OpenText(PlayState* play, u16 textId) { if (sTextIsCredits) { Message_FindCreditsMessage(play, textId); msgCtx->msgLength = font->msgLength; +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_60 != NULL) && B_80121AF0->unk_60(&play->msgCtx.font)) { + + } else { + DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_staff_message_data_staticSegmentRomStart + font->msgOffset, + font->msgLength); + } +#else DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_staff_message_data_staticSegmentRomStart + font->msgOffset, font->msgLength, "../z_message_PAL.c", 1954); +#endif } else { #if OOT_NTSC if (gSaveContext.language == LANGUAGE_JPN) { Message_FindMessageJPN(play, textId); msgCtx->msgLength = font->msgLength; +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_64 != NULL) && B_80121AF0->unk_64(&play->msgCtx.font)) { + + } else { + DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_jpn_message_data_staticSegmentRomStart + font->msgOffset, + font->msgLength); + } +#else DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_jpn_message_data_staticSegmentRomStart + font->msgOffset, font->msgLength); +#endif } else { Message_FindMessageNES(play, textId); msgCtx->msgLength = font->msgLength; +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_68 != NULL) && B_80121AF0->unk_68(&play->msgCtx.font)) { + + } else { + DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset, + font->msgLength); + } +#else DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset, font->msgLength); +#endif } #else if (gSaveContext.language == LANGUAGE_ENG) { @@ -2541,6 +2582,9 @@ void Message_StartTextbox(PlayState* play, u16 textId, Actor* actor) { void Message_ContinueTextbox(PlayState* play, u16 textId) { s32 pad; MessageContext* msgCtx = &play->msgCtx; +#if PLATFORM_N64 + s32 pad2[3]; +#endif PRINTF(VT_FGCOL(GREEN)); // "Message" @@ -2792,13 +2836,9 @@ void Message_SetView(View* view) { } #if OOT_NTSC -#define DRAW_TEXT(play, gfx, isCredits) \ - if (gSaveContext.language == LANGUAGE_JPN && !(isCredits)) { \ - Message_DrawTextWide(play, gfx); \ - } else { \ - Message_DrawText(play, gfx); \ - } \ - (void)0 +#define DRAW_TEXT(play, gfx, isCredits) \ + ((gSaveContext.language == LANGUAGE_JPN) && !(isCredits)) ? Message_DrawTextWide(play, gfx) \ + : Message_DrawText(play, gfx) #else #define DRAW_TEXT(play, gfx, isCredits) Message_DrawText(play, gfx) #endif @@ -3016,7 +3056,6 @@ void Message_DrawMain(PlayState* play, Gfx** p) { &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } - if (msgCtx->ocarinaStaff == NULL) {} // fake Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING); } else { AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); @@ -4237,4 +4276,10 @@ void Message_SetTables(void) { #endif sStaffMessageEntryTablePtr = sStaffMessageEntryTable; + +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_58 != NULL)) { + B_80121AF0->unk_58(&sJpnMessageEntryTablePtr, &sNesMessageEntryTablePtr, &sStaffMessageEntryTablePtr); + } +#endif } From c7b55f9a072359d3c28b9cfca2d20e2fc23b35a4 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 22:48:10 +0200 Subject: [PATCH 15/86] Fix merge issue between z_message.c match and n64dd renames (#2131) --- src/code/z_message.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/code/z_message.c b/src/code/z_message.c index a61c1620b4..0f42e5e82f 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -2461,7 +2461,7 @@ void Message_OpenText(PlayState* play, u16 textId) { Message_FindCreditsMessage(play, textId); msgCtx->msgLength = font->msgLength; #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_60 != NULL) && B_80121AF0->unk_60(&play->msgCtx.font)) { + if ((B_80121220 != NULL) && (B_80121220->unk_60 != NULL) && B_80121220->unk_60(&play->msgCtx.font)) { } else { DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_staff_message_data_staticSegmentRomStart + font->msgOffset, @@ -2477,7 +2477,7 @@ void Message_OpenText(PlayState* play, u16 textId) { Message_FindMessageJPN(play, textId); msgCtx->msgLength = font->msgLength; #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_64 != NULL) && B_80121AF0->unk_64(&play->msgCtx.font)) { + if ((B_80121220 != NULL) && (B_80121220->unk_64 != NULL) && B_80121220->unk_64(&play->msgCtx.font)) { } else { DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_jpn_message_data_staticSegmentRomStart + font->msgOffset, @@ -2491,7 +2491,7 @@ void Message_OpenText(PlayState* play, u16 textId) { Message_FindMessageNES(play, textId); msgCtx->msgLength = font->msgLength; #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_68 != NULL) && B_80121AF0->unk_68(&play->msgCtx.font)) { + if ((B_80121220 != NULL) && (B_80121220->unk_68 != NULL) && B_80121220->unk_68(&play->msgCtx.font)) { } else { DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset, @@ -4278,8 +4278,8 @@ void Message_SetTables(void) { sStaffMessageEntryTablePtr = sStaffMessageEntryTable; #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_58 != NULL)) { - B_80121AF0->unk_58(&sJpnMessageEntryTablePtr, &sNesMessageEntryTablePtr, &sStaffMessageEntryTablePtr); + if ((B_80121220 != NULL) && (B_80121220->unk_58 != NULL)) { + B_80121220->unk_58(&sJpnMessageEntryTablePtr, &sNesMessageEntryTablePtr, &sStaffMessageEntryTablePtr); } #endif } From dc469461a96589d9b4e4be0d0310b38cc4dfc952 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 23:51:08 +0200 Subject: [PATCH 16/86] Pause docs: `WorldMapArea` enum and related data (#2130) * Pause docs: WorldMapArea enum and related data * `WORLD_MAP_AREA_20` -> `_QUESTION_MARK` * bss --- .../xml/textures/icon_item_field_static.xml | 32 ++-- include/z64save.h | 26 +++ src/code/sys_cfb.c | 2 +- src/code/sys_matrix.c | 2 +- src/code/z_play.c | 2 +- src/code/z_scene.c | 2 +- src/code/z_skin.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../misc/ovl_kaleido_scope/z_kaleido_map.c | 152 ++++++++++++++++-- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 102 ++++++++++-- 10 files changed, 275 insertions(+), 49 deletions(-) diff --git a/assets/xml/textures/icon_item_field_static.xml b/assets/xml/textures/icon_item_field_static.xml index 1d94ffda11..1ee2483501 100644 --- a/assets/xml/textures/icon_item_field_static.xml +++ b/assets/xml/textures/icon_item_field_static.xml @@ -12,21 +12,21 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/include/z64save.h b/include/z64save.h index f270600254..12491072ce 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -176,6 +176,32 @@ typedef enum TimerId { #define ENV_HAZARD_TEXT_TRIGGER_HOTROOM (1 << 0) #define ENV_HAZARD_TEXT_TRIGGER_UNDERWATER (1 << 1) +typedef enum WorldMapArea { + /* 0 */ WORLD_MAP_AREA_HYRULE_FIELD, + /* 1 */ WORLD_MAP_AREA_KAKARIKO_VILLAGE, + /* 2 */ WORLD_MAP_AREA_GRAVEYARD, + /* 3 */ WORLD_MAP_AREA_ZORAS_RIVER, + /* 4 */ WORLD_MAP_AREA_KOKIRI_FOREST, + /* 5 */ WORLD_MAP_AREA_SACRED_FOREST_MEADOW, + /* 6 */ WORLD_MAP_AREA_LAKE_HYLIA, + /* 7 */ WORLD_MAP_AREA_ZORAS_DOMAIN, + /* 8 */ WORLD_MAP_AREA_ZORAS_FOUNTAIN, + /* 9 */ WORLD_MAP_AREA_GERUDO_VALLEY, + /* 10 */ WORLD_MAP_AREA_LOST_WOODS, + /* 11 */ WORLD_MAP_AREA_DESERT_COLOSSUS, + /* 12 */ WORLD_MAP_AREA_GERUDOS_FORTRESS, + /* 13 */ WORLD_MAP_AREA_HAUNTED_WASTELAND, + /* 14 */ WORLD_MAP_AREA_MARKET, + /* 15 */ WORLD_MAP_AREA_HYRULE_CASTLE, + /* 16 */ WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL, + /* 17 */ WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER, + /* 18 */ WORLD_MAP_AREA_GORON_CITY, + /* 19 */ WORLD_MAP_AREA_LON_LON_RANCH, + /* 20 */ WORLD_MAP_AREA_QUESTION_MARK, // Windmill/Dampé's Grave (and a Lon Lon Ranch cutscene). Labeled as "?" + /* 21 */ WORLD_MAP_AREA_GANONS_CASTLE, + /* 22 */ WORLD_MAP_AREA_MAX // also grottos and fairy's/great fairy's fountains (scenes with varying locations) +} WorldMapArea; + // offsets in SavePlayerData and SaveContext/Save typedef struct SavePlayerData { /* 0x00 0x001C */ char newf[6]; // string "ZELDAZ" diff --git a/src/code/sys_cfb.c b/src/code/sys_cfb.c index 5c7c0bcae4..e770025758 100644 --- a/src/code/sys_cfb.c +++ b/src/code/sys_cfb.c @@ -1,6 +1,6 @@ #include "global.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" uintptr_t sSysCfbFbPtr[2]; uintptr_t sSysCfbEnd; diff --git a/src/code/sys_matrix.c b/src/code/sys_matrix.c index 440e4c6d6c..08fb315792 100644 --- a/src/code/sys_matrix.c +++ b/src/code/sys_matrix.c @@ -19,7 +19,7 @@ MtxF gMtxFClear = { }; // clang-format on -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" MtxF* sMatrixStack; // "Matrix_stack" MtxF* sCurrentMatrix; // "Matrix_now" diff --git a/src/code/z_play.c b/src/code/z_play.c index c650cbd6c3..4a0309b5fa 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -1527,7 +1527,7 @@ void Play_InitScene(PlayState* this, s32 spawn) { TransitionActor_InitContext(&this->state, &this->transiActorCtx); func_80096FD4(this, &this->roomCtx.curRoom); R_SCENE_CAM_TYPE = SCENE_CAM_TYPE_DEFAULT; - gSaveContext.worldMapArea = 0; + gSaveContext.worldMapArea = WORLD_MAP_AREA_HYRULE_FIELD; Scene_ExecuteCommands(this, this->sceneSegment); Play_InitEnvironment(this, this->skyboxId); } diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 34ddb933f8..83714b8a4d 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -462,7 +462,7 @@ BAD_RETURN(s32) Scene_CommandMiscSettings(PlayState* play, SceneCmd* cmd) { if ((play->sceneId == SCENE_BAZAAR) || (play->sceneId == SCENE_SHOOTING_GALLERY)) { if (LINK_AGE_IN_YEARS == YEARS_ADULT) { - gSaveContext.worldMapArea = 1; + gSaveContext.worldMapArea = WORLD_MAP_AREA_KAKARIKO_VILLAGE; } } diff --git a/src/code/z_skin.c b/src/code/z_skin.c index ab3b8624a4..77b7aedc45 100644 --- a/src/code/z_skin.c +++ b/src/code/z_skin.c @@ -1,6 +1,6 @@ #include "global.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" MtxF gSkinLimbMatrices[60]; // holds matrices for each limb of the skeleton currently being drawn diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index e22bb5e868..861301efe4 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:166 gc-eu-mq:166 gc-jp:168 gc-jp-ce:168 gc-jp-mq:168 gc-us:168 gc-us-mq:168" +#pragma increment_block_number "gc-eu:163 gc-eu-mq:163 gc-jp:165 gc-jp-ce:165 gc-jp-mq:165 gc-us:165 gc-us-mq:165" #define FLAGS ACTOR_FLAG_4 diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c index 0b45c13bf8..74324b9011 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c @@ -358,13 +358,32 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { static void* cloudTexs[] = { - gWorldMapCloud16Tex, gWorldMapCloud15Tex, gWorldMapCloud14Tex, gWorldMapCloud13Tex, - gWorldMapCloud12Tex, gWorldMapCloud11Tex, gWorldMapCloud10Tex, gWorldMapCloud9Tex, - gWorldMapCloud8Tex, gWorldMapCloud7Tex, gWorldMapCloud6Tex, gWorldMapCloud5Tex, - gWorldMapCloud4Tex, gWorldMapCloud3Tex, gWorldMapCloud2Tex, gWorldMapCloud1Tex, + gWorldMapCloudSacredForestMeadowTex, gWorldMapCloudHyruleFieldTex, + gWorldMapCloudLonLonRanchTex, gWorldMapCloudMarketTex, + gWorldMapCloudHyruleCastleTex, gWorldMapCloudKakarikoVillageTex, + gWorldMapCloudGraveyardTex, gWorldMapCloudDeathMountainTrailTex, + gWorldMapCloudGoronCityTex, gWorldMapCloudZorasRiverTex, + gWorldMapCloudZorasDomainTex, gWorldMapCloudZorasFountainTex, + gWorldMapCloudGerudoValleyTex, gWorldMapCloudGerudosFortressTex, + gWorldMapCloudDesertColossusTex, gWorldMapCloudLakeHyliaTex, }; static u16 cloudFlagNums[] = { - 0x05, 0x00, 0x13, 0x0E, 0x0F, 0x01, 0x02, 0x10, 0x12, 0x03, 0x07, 0x08, 0x09, 0x0C, 0x0B, 0x06, + WORLD_MAP_AREA_SACRED_FOREST_MEADOW, + WORLD_MAP_AREA_HYRULE_FIELD, + WORLD_MAP_AREA_LON_LON_RANCH, + WORLD_MAP_AREA_MARKET, + WORLD_MAP_AREA_HYRULE_CASTLE, + WORLD_MAP_AREA_KAKARIKO_VILLAGE, + WORLD_MAP_AREA_GRAVEYARD, + WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL, + WORLD_MAP_AREA_GORON_CITY, + WORLD_MAP_AREA_ZORAS_RIVER, + WORLD_MAP_AREA_ZORAS_DOMAIN, + WORLD_MAP_AREA_ZORAS_FOUNTAIN, + WORLD_MAP_AREA_GERUDO_VALLEY, + WORLD_MAP_AREA_GERUDOS_FORTRESS, + WORLD_MAP_AREA_DESERT_COLOSSUS, + WORLD_MAP_AREA_LAKE_HYLIA, }; static s16 pointPulsePrimColor[] = { 0, 0, 255 }; static s16 pointPrimColors[][3] = { @@ -380,23 +399,124 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { static s16 pointPulseTimer = 20; static s16 D_8082A5B8[] = { 64, 64, 64, 28 }; static s16 areaBoxPosX[] = { - -41, 19, 44, 40, 49, 51, -49, 83, 80, -67, 50, -109, -76, -86, -10, -6, 19, 24, 11, -17, 37, -6, + -41, // WORLD_MAP_AREA_HYRULE_FIELD + 19, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 44, // WORLD_MAP_AREA_GRAVEYARD + 40, // WORLD_MAP_AREA_ZORAS_RIVER + 49, // WORLD_MAP_AREA_KOKIRI_FOREST + 51, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + -49, // WORLD_MAP_AREA_LAKE_HYLIA + 83, // WORLD_MAP_AREA_ZORAS_DOMAIN + 80, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + -67, // WORLD_MAP_AREA_GERUDO_VALLEY + 50, // WORLD_MAP_AREA_LOST_WOODS + -109, // WORLD_MAP_AREA_DESERT_COLOSSUS + -76, // WORLD_MAP_AREA_GERUDOS_FORTRESS + -86, // WORLD_MAP_AREA_HAUNTED_WASTELAND + -10, // WORLD_MAP_AREA_MARKET + -6, // WORLD_MAP_AREA_HYRULE_CASTLE + 19, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 24, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 11, // WORLD_MAP_AREA_GORON_CITY + -17, // WORLD_MAP_AREA_LON_LON_RANCH + 37, // WORLD_MAP_AREA_QUESTION_MARK + -6, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 areaBoxWidths[] = { - 96, 32, 32, 48, 48, 32, 48, 32, 32, 32, 16, 32, 32, 16, 32, 32, 32, 32, 32, 32, 16, 32, + 96, // WORLD_MAP_AREA_HYRULE_FIELD + 32, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 32, // WORLD_MAP_AREA_GRAVEYARD + 48, // WORLD_MAP_AREA_ZORAS_RIVER + 48, // WORLD_MAP_AREA_KOKIRI_FOREST + 32, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + 48, // WORLD_MAP_AREA_LAKE_HYLIA + 32, // WORLD_MAP_AREA_ZORAS_DOMAIN + 32, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 32, // WORLD_MAP_AREA_GERUDO_VALLEY + 16, // WORLD_MAP_AREA_LOST_WOODS + 32, // WORLD_MAP_AREA_DESERT_COLOSSUS + 32, // WORLD_MAP_AREA_GERUDOS_FORTRESS + 16, // WORLD_MAP_AREA_HAUNTED_WASTELAND + 32, // WORLD_MAP_AREA_MARKET + 32, // WORLD_MAP_AREA_HYRULE_CASTLE + 32, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 32, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 32, // WORLD_MAP_AREA_GORON_CITY + 32, // WORLD_MAP_AREA_LON_LON_RANCH + 16, // WORLD_MAP_AREA_QUESTION_MARK + 32, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 areaBoxPosY[] = { - 30, 36, 35, 26, 7, 11, -31, 30, 38, 23, 2, 42, 40, 32, 38, 50, 57, 58, 56, 12, 36, 50, + 30, // WORLD_MAP_AREA_HYRULE_FIELD + 36, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 35, // WORLD_MAP_AREA_GRAVEYARD + 26, // WORLD_MAP_AREA_ZORAS_RIVER + 7, // WORLD_MAP_AREA_KOKIRI_FOREST + 11, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + -31, // WORLD_MAP_AREA_LAKE_HYLIA + 30, // WORLD_MAP_AREA_ZORAS_DOMAIN + 38, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 23, // WORLD_MAP_AREA_GERUDO_VALLEY + 2, // WORLD_MAP_AREA_LOST_WOODS + 42, // WORLD_MAP_AREA_DESERT_COLOSSUS + 40, // WORLD_MAP_AREA_GERUDOS_FORTRESS + 32, // WORLD_MAP_AREA_HAUNTED_WASTELAND + 38, // WORLD_MAP_AREA_MARKET + 50, // WORLD_MAP_AREA_HYRULE_CASTLE + 57, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 58, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 56, // WORLD_MAP_AREA_GORON_CITY + 12, // WORLD_MAP_AREA_LON_LON_RANCH + 36, // WORLD_MAP_AREA_QUESTION_MARK + 50, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 areaBoxHeights[] = { - 59, 19, 13, 19, 38, 17, 38, 17, 13, 26, 16, 26, 26, 16, 19, 17, 26, 13, 17, 17, 16, 17, + 59, // WORLD_MAP_AREA_HYRULE_FIELD + 19, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 13, // WORLD_MAP_AREA_GRAVEYARD + 19, // WORLD_MAP_AREA_ZORAS_RIVER + 38, // WORLD_MAP_AREA_KOKIRI_FOREST + 17, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + 38, // WORLD_MAP_AREA_LAKE_HYLIA + 17, // WORLD_MAP_AREA_ZORAS_DOMAIN + 13, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 26, // WORLD_MAP_AREA_GERUDO_VALLEY + 16, // WORLD_MAP_AREA_LOST_WOODS + 26, // WORLD_MAP_AREA_DESERT_COLOSSUS + 26, // WORLD_MAP_AREA_GERUDOS_FORTRESS + 16, // WORLD_MAP_AREA_HAUNTED_WASTELAND + 19, // WORLD_MAP_AREA_MARKET + 17, // WORLD_MAP_AREA_HYRULE_CASTLE + 26, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 13, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 17, // WORLD_MAP_AREA_GORON_CITY + 17, // WORLD_MAP_AREA_LON_LON_RANCH + 16, // WORLD_MAP_AREA_QUESTION_MARK + 17, // WORLD_MAP_AREA_GANONS_CASTLE }; static void* areaBoxTexs[] = { - gWorldMapAreaBox7Tex, gWorldMapAreaBox1Tex, gWorldMapAreaBox4Tex, gWorldMapAreaBox6Tex, gWorldMapAreaBox2Tex, - gWorldMapAreaBox3Tex, gWorldMapAreaBox2Tex, gWorldMapAreaBox3Tex, gWorldMapAreaBox4Tex, gWorldMapAreaBox5Tex, - gWorldMapAreaBox8Tex, gWorldMapAreaBox5Tex, gWorldMapAreaBox5Tex, gWorldMapAreaBox8Tex, gWorldMapAreaBox1Tex, - gWorldMapAreaBox3Tex, gWorldMapAreaBox5Tex, gWorldMapAreaBox4Tex, gWorldMapAreaBox3Tex, gWorldMapAreaBox3Tex, - gWorldMapAreaBox8Tex, gWorldMapAreaBox3Tex, + gWorldMapAreaBox7Tex, // WORLD_MAP_AREA_HYRULE_FIELD + gWorldMapAreaBox1Tex, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + gWorldMapAreaBox4Tex, // WORLD_MAP_AREA_GRAVEYARD + gWorldMapAreaBox6Tex, // WORLD_MAP_AREA_ZORAS_RIVER + gWorldMapAreaBox2Tex, // WORLD_MAP_AREA_KOKIRI_FOREST + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + gWorldMapAreaBox2Tex, // WORLD_MAP_AREA_LAKE_HYLIA + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_ZORAS_DOMAIN + gWorldMapAreaBox4Tex, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + gWorldMapAreaBox5Tex, // WORLD_MAP_AREA_GERUDO_VALLEY + gWorldMapAreaBox8Tex, // WORLD_MAP_AREA_LOST_WOODS + gWorldMapAreaBox5Tex, // WORLD_MAP_AREA_DESERT_COLOSSUS + gWorldMapAreaBox5Tex, // WORLD_MAP_AREA_GERUDOS_FORTRESS + gWorldMapAreaBox8Tex, // WORLD_MAP_AREA_HAUNTED_WASTELAND + gWorldMapAreaBox1Tex, // WORLD_MAP_AREA_MARKET + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_HYRULE_CASTLE + gWorldMapAreaBox5Tex, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + gWorldMapAreaBox4Tex, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_GORON_CITY + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_LON_LON_RANCH + gWorldMapAreaBox8Tex, // WORLD_MAP_AREA_QUESTION_MARK + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_GANONS_CASTLE }; static void* currentPosTitleTexs[] = LANGUAGE_ARRAY(gPauseCurrentPositionJPNTex, gPauseCurrentPositionENGTex, gPauseCurrentPositionGERTex, gPauseCurrentPositionFRATex); @@ -615,7 +735,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { } } - if (gSaveContext.worldMapArea < 22) { + if (gSaveContext.worldMapArea < WORLD_MAP_AREA_MAX) { gDPPipeSync(POLY_OPA_DISP++); gDPSetTextureFilter(POLY_OPA_DISP++, G_TF_POINT); @@ -749,7 +869,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); } - if (gSaveContext.worldMapArea < 22) { + if (gSaveContext.worldMapArea < WORLD_MAP_AREA_MAX) { gDPPipeSync(POLY_OPA_DISP++); gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index 0f9d3e8693..c72a47810a 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -2192,23 +2192,103 @@ static s16* sVtxPageQuadsHeight[] = { }; static s16 sVtxMapWorldAreaX[] = { - 0xFFC6, 0x000B, 0x001E, 0x001E, 0x000F, 0x0026, 0xFFC2, 0x003C, 0x003D, 0xFFB2, 0xFED4, - 0xFFAA, 0xFFBF, 0xFED4, 0xFED4, 0xFFEB, 0x000E, 0x000D, 0x0014, 0xFFDE, 0xFED4, 0x0000, + -58, // WORLD_MAP_AREA_HYRULE_FIELD + 11, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 30, // WORLD_MAP_AREA_GRAVEYARD + 30, // WORLD_MAP_AREA_ZORAS_RIVER + 15, // WORLD_MAP_AREA_KOKIRI_FOREST + 38, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + -62, // WORLD_MAP_AREA_LAKE_HYLIA + 60, // WORLD_MAP_AREA_ZORAS_DOMAIN + 61, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + -78, // WORLD_MAP_AREA_GERUDO_VALLEY + -300, // WORLD_MAP_AREA_LOST_WOODS + -86, // WORLD_MAP_AREA_DESERT_COLOSSUS + -65, // WORLD_MAP_AREA_GERUDOS_FORTRESS + -300, // WORLD_MAP_AREA_HAUNTED_WASTELAND + -300, // WORLD_MAP_AREA_MARKET + -21, // WORLD_MAP_AREA_HYRULE_CASTLE + 14, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 13, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 20, // WORLD_MAP_AREA_GORON_CITY + -34, // WORLD_MAP_AREA_LON_LON_RANCH + -300, // WORLD_MAP_AREA_QUESTION_MARK + 0, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 sVtxMapWorldAreaWidth[] = { - 0x0059, 0x0014, 0x000E, 0x0023, 0x0020, 0x0011, 0x0032, 0x0010, 0x0015, 0x0014, 0xFFFF, - 0x0020, 0x0010, 0xFFFF, 0xFFFF, 0x0013, 0x0013, 0x0015, 0x0010, 0x0014, 0xFFFF, 0x0000, + 89, // WORLD_MAP_AREA_HYRULE_FIELD + 20, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 14, // WORLD_MAP_AREA_GRAVEYARD + 35, // WORLD_MAP_AREA_ZORAS_RIVER + 32, // WORLD_MAP_AREA_KOKIRI_FOREST + 17, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + 50, // WORLD_MAP_AREA_LAKE_HYLIA + 16, // WORLD_MAP_AREA_ZORAS_DOMAIN + 21, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 20, // WORLD_MAP_AREA_GERUDO_VALLEY + -1, // WORLD_MAP_AREA_LOST_WOODS + 32, // WORLD_MAP_AREA_DESERT_COLOSSUS + 16, // WORLD_MAP_AREA_GERUDOS_FORTRESS + -1, // WORLD_MAP_AREA_HAUNTED_WASTELAND + -1, // WORLD_MAP_AREA_MARKET + 19, // WORLD_MAP_AREA_HYRULE_CASTLE + 19, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 21, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 16, // WORLD_MAP_AREA_GORON_CITY + 20, // WORLD_MAP_AREA_LON_LON_RANCH + -1, // WORLD_MAP_AREA_QUESTION_MARK + 0, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 sVtxMapWorldAreaY[] = { - 0x0001, 0x000F, 0x0014, 0x0009, 0xFFE2, 0xFFEF, 0xFFDE, 0x000F, 0x001E, 0x0001, 0xFED4, - 0x002A, 0x0007, 0xFED4, 0xFED4, 0x0018, 0x0024, 0x0035, 0x0025, 0xFFF3, 0xFED4, 0x0000, + 1, // WORLD_MAP_AREA_HYRULE_FIELD + 15, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 20, // WORLD_MAP_AREA_GRAVEYARD + 9, // WORLD_MAP_AREA_ZORAS_RIVER + -30, // WORLD_MAP_AREA_KOKIRI_FOREST + -17, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + -34, // WORLD_MAP_AREA_LAKE_HYLIA + 15, // WORLD_MAP_AREA_ZORAS_DOMAIN + 30, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 1, // WORLD_MAP_AREA_GERUDO_VALLEY + -300, // WORLD_MAP_AREA_LOST_WOODS + 42, // WORLD_MAP_AREA_DESERT_COLOSSUS + 7, // WORLD_MAP_AREA_GERUDOS_FORTRESS + -300, // WORLD_MAP_AREA_HAUNTED_WASTELAND + -300, // WORLD_MAP_AREA_MARKET + 24, // WORLD_MAP_AREA_HYRULE_CASTLE + 36, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 53, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 37, // WORLD_MAP_AREA_GORON_CITY + -13, // WORLD_MAP_AREA_LON_LON_RANCH + -300, // WORLD_MAP_AREA_QUESTION_MARK + 0, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 sVtxMapWorldAreaHeight[] = { - 0x0024, 0x000F, 0x0010, 0x0017, 0x0017, 0x0010, 0x0018, 0x000D, 0x0011, 0x0012, 0x0001, - 0x0019, 0x000D, 0x0001, 0x0001, 0x000D, 0x0015, 0x000F, 0x000D, 0x000C, 0x0001, 0x0000, + 36, // WORLD_MAP_AREA_HYRULE_FIELD + 15, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 16, // WORLD_MAP_AREA_GRAVEYARD + 23, // WORLD_MAP_AREA_ZORAS_RIVER + 23, // WORLD_MAP_AREA_KOKIRI_FOREST + 16, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + 24, // WORLD_MAP_AREA_LAKE_HYLIA + 13, // WORLD_MAP_AREA_ZORAS_DOMAIN + 17, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 18, // WORLD_MAP_AREA_GERUDO_VALLEY + 1, // WORLD_MAP_AREA_LOST_WOODS + 25, // WORLD_MAP_AREA_DESERT_COLOSSUS + 13, // WORLD_MAP_AREA_GERUDOS_FORTRESS + 1, // WORLD_MAP_AREA_HAUNTED_WASTELAND + 1, // WORLD_MAP_AREA_MARKET + 13, // WORLD_MAP_AREA_HYRULE_CASTLE + 21, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 15, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 13, // WORLD_MAP_AREA_GORON_CITY + 12, // WORLD_MAP_AREA_LON_LON_RANCH + 1, // WORLD_MAP_AREA_QUESTION_MARK + 0, // WORLD_MAP_AREA_GANONS_CASTLE }; s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 numQuads) { @@ -3269,7 +3349,7 @@ void KaleidoScope_Update(PlayState* play) { Interface_SetDoAction(play, DO_ACTION_DECIDE); PRINTF("サイズ=%x\n", size2 + size1 + size0 + size + 0x800); - if (((void)0, gSaveContext.worldMapArea) < 22) { + if (((void)0, gSaveContext.worldMapArea) < WORLD_MAP_AREA_MAX) { #if OOT_NTSC if (gSaveContext.language == LANGUAGE_JPN) { DmaMgr_RequestSync(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), @@ -3421,7 +3501,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->worldMapPoints[7] = 1; } - if (gBitFlags[1] & gSaveContext.save.info.worldMapAreaData) { + if (gBitFlags[WORLD_MAP_AREA_KAKARIKO_VILLAGE] & gSaveContext.save.info.worldMapAreaData) { pauseCtx->worldMapPoints[8] = 1; } @@ -3457,7 +3537,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->worldMapPoints[8] = 1; } - if (gBitFlags[10] & gSaveContext.save.info.worldMapAreaData) { + if (gBitFlags[WORLD_MAP_AREA_LOST_WOODS] & gSaveContext.save.info.worldMapAreaData) { pauseCtx->worldMapPoints[9] = 1; } From 6051251c929c2b9f709740674da1a0ab795dfb88 Mon Sep 17 00:00:00 2001 From: fig02 Date: Wed, 4 Sep 2024 19:26:23 -0400 Subject: [PATCH 17/86] istargeted -> islockedon (#2132) --- include/functions.h | 4 +-- include/z64actor.h | 2 +- src/code/z_actor.c | 20 ++++++------ .../actors/ovl_Bg_Treemouth/z_bg_treemouth.c | 2 +- src/overlays/actors/ovl_En_Dns/z_en_dns.c | 2 +- src/overlays/actors/ovl_En_GeldB/z_en_geldb.c | 30 ++++++++--------- .../actors/ovl_En_Hintnuts/z_en_hintnuts.c | 2 +- src/overlays/actors/ovl_En_Ko/z_en_ko.c | 2 +- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 2 +- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 2 +- src/overlays/actors/ovl_En_Test/z_en_test.c | 32 +++++++++---------- .../actors/ovl_En_Torch2/z_en_torch2.c | 12 +++---- src/overlays/actors/ovl_En_Wf/z_en_wf.c | 28 ++++++++-------- src/overlays/actors/ovl_En_Zf/z_en_zf.c | 12 +++---- tools/disasm/ntsc-1.2/functions.txt | 4 +-- 15 files changed, 78 insertions(+), 78 deletions(-) diff --git a/include/functions.h b/include/functions.h index 51d8fc9676..5810b3edb8 100644 --- a/include/functions.h +++ b/include/functions.h @@ -447,8 +447,8 @@ Actor* Actor_GetProjectileActor(PlayState* play, Actor* refActor, f32 radius); void Actor_ChangeCategory(PlayState* play, ActorContext* actorCtx, Actor* actor, u8 actorCategory); void Actor_SetTextWithPrefix(PlayState* play, Actor* actor, s16 baseTextId); s16 Actor_TestFloorInDirection(Actor* actor, PlayState* play, f32 distance, s16 angle); -s32 Actor_IsTargeted(PlayState* play, Actor* actor); -s32 Actor_OtherIsTargeted(PlayState* play, Actor* actor); +s32 Actor_IsLockedOn(PlayState* play, Actor* actor); +s32 Actor_OtherIsLockedOn(PlayState* play, Actor* actor); f32 func_80033AEC(Vec3f* arg0, Vec3f* arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5); void func_80033C30(Vec3f* arg0, Vec3f* arg1, u8 alpha, PlayState* play); void Actor_RequestQuake(PlayState* play, s16 y, s16 duration); diff --git a/include/z64actor.h b/include/z64actor.h index a04a3f53a4..df91a14d4b 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -287,7 +287,7 @@ typedef struct Actor { /* 0x0F8 */ f32 uncullZoneScale; // Amount to increase the uncull zone scale by (in projected space) /* 0x0FC */ f32 uncullZoneDownward; // Amount to increase uncull zone downward by (in projected space) /* 0x100 */ Vec3f prevPos; // World position from the previous update cycle - /* 0x10C */ u8 isTargeted; // Set to true if the actor is currently being targeted by the player + /* 0x10C */ u8 isLockedOn; // Set to true if the actor is currently locked-on by Player /* 0x10D */ u8 targetPriority; // Lower values have higher priority. Resets to 0 when player stops targeting /* 0x10E */ u16 textId; // Text ID to pass to player/display when interacting with the actor /* 0x110 */ u16 freezeTimer; // Actor does not update when set. Timer decrements automatically diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 599500770b..00855214a8 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1680,7 +1680,7 @@ s32 Actor_OfferTalkExchange(Actor* actor, PlayState* play, f32 xzRange, f32 yRan Player* player = GET_PLAYER(play); if ((player->actor.flags & ACTOR_FLAG_TALK) || ((exchangeItemId != EXCH_ITEM_NONE) && Player_InCsMode(play)) || - (!actor->isTargeted && + (!actor->isLockedOn && ((yRange < fabsf(actor->yDistToPlayer)) || (player->talkActorDistance < actor->xzDistToPlayer) || (xzRange < actor->xzDistToPlayer)))) { return false; @@ -2334,9 +2334,9 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { if ((DECR(actor->freezeTimer) == 0) && (actor->flags & (ACTOR_FLAG_4 | ACTOR_FLAG_6))) { if (actor == player->focusActor) { - actor->isTargeted = true; + actor->isLockedOn = true; } else { - actor->isTargeted = false; + actor->isLockedOn = false; } if ((actor->targetPriority != 0) && (player->focusActor == NULL)) { @@ -3745,12 +3745,12 @@ s16 Actor_TestFloorInDirection(Actor* actor, PlayState* play, f32 distance, s16 } /** - * Returns true if the player is targeting the provided actor + * Returns true if the player is locked onto the specified actor */ -s32 Actor_IsTargeted(PlayState* play, Actor* actor) { +s32 Actor_IsLockedOn(PlayState* play, Actor* actor) { Player* player = GET_PLAYER(play); - if ((player->stateFlags1 & PLAYER_STATE1_4) && actor->isTargeted) { + if ((player->stateFlags1 & PLAYER_STATE1_4) && actor->isLockedOn) { return true; } else { return false; @@ -3758,12 +3758,12 @@ s32 Actor_IsTargeted(PlayState* play, Actor* actor) { } /** - * Returns true if the player is targeting an actor other than the provided actor + * Returns true if the player is locked onto an actor other than the specified actor */ -s32 Actor_OtherIsTargeted(PlayState* play, Actor* actor) { +s32 Actor_OtherIsLockedOn(PlayState* play, Actor* actor) { Player* player = GET_PLAYER(play); - if ((player->stateFlags1 & PLAYER_STATE1_4) && !actor->isTargeted) { + if ((player->stateFlags1 & PLAYER_STATE1_4) && !actor->isLockedOn) { return true; } else { return false; @@ -5904,7 +5904,7 @@ s32 func_80037D98(PlayState* play, Actor* actor, s16 arg2, s32* arg3) { return false; } - if ((actor->xyzDistToPlayerSq > SQ(160.0f)) && !actor->isTargeted) { + if ((actor->xyzDistToPlayerSq > SQ(160.0f)) && !actor->isLockedOn) { return false; } diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c index e6a4f1cae2..5a31476cb1 100644 --- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c +++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c @@ -143,7 +143,7 @@ void func_808BC8B8(BgTreemouth* this, PlayState* play) { if (Flags_GetEventChkInf(EVENTCHKINF_0C)) { if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 1658.0f, 0x7530)) { this->dyna.actor.flags |= ACTOR_FLAG_0; - if (this->dyna.actor.isTargeted) { + if (this->dyna.actor.isLockedOn) { this->dyna.actor.flags &= ~ACTOR_FLAG_0; play->csCtx.script = D_808BD2A0; gSaveContext.cutsceneTrigger = 1; diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index 853437b44f..5c33397cdd 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -346,7 +346,7 @@ void EnDns_Idle(EnDns* this, PlayState* play) { if (Actor_TalkOfferAccepted(&this->actor, play)) { this->actionFunc = EnDns_Talk; } else { - if ((this->collider.base.ocFlags1 & OC1_HIT) || this->actor.isTargeted) { + if ((this->collider.base.ocFlags1 & OC1_HIT) || this->actor.isLockedOn) { this->actor.flags |= ACTOR_FLAG_16; } else { this->actor.flags &= ~ACTOR_FLAG_16; diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c index 469f88b78e..aec28ecaa6 100644 --- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c +++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c @@ -334,7 +334,7 @@ s32 EnGeldB_ReactToPlayer(PlayState* play, EnGeldB* this, s16 arg2) { } else { s16 angleToFacingLink = player->actor.shape.rot.y - thisx->shape.rot.y; - if ((thisx->xzDistToPlayer <= 45.0f) && !Actor_OtherIsTargeted(play, thisx) && + if ((thisx->xzDistToPlayer <= 45.0f) && !Actor_OtherIsLockedOn(play, thisx) && ((play->gameplayFrames & 7) || (ABS(angleToFacingLink) < 0x38E0))) { EnGeldB_SetupSlash(this); return true; @@ -456,7 +456,7 @@ void EnGeldB_Ready(EnGeldB* this, PlayState* play) { if (Actor_IsFacingPlayer(&this->actor, 30 * 0x10000 / 360)) { if ((210.0f > this->actor.xzDistToPlayer) && (this->actor.xzDistToPlayer > 150.0f) && (Rand_ZeroOne() < 0.3f)) { - if (Actor_OtherIsTargeted(play, &this->actor) || (Rand_ZeroOne() > 0.5f) || + if (Actor_OtherIsLockedOn(play, &this->actor) || (Rand_ZeroOne() > 0.5f) || (ABS(angleToLink) < 0x38E0)) { EnGeldB_SetupRollForward(this); } else { @@ -525,10 +525,10 @@ void EnGeldB_Advance(EnGeldB* this, PlayState* play) { EnGeldB_SetupReady(this); } } else if (this->actor.xzDistToPlayer < 90.0f) { - if (!Actor_OtherIsTargeted(play, &this->actor) && + if (!Actor_OtherIsLockedOn(play, &this->actor) && (Rand_ZeroOne() > 0.03f || (this->actor.xzDistToPlayer <= 45.0f && facingAngletoLink < 0x38E0))) { EnGeldB_SetupSlash(this); - } else if (Actor_OtherIsTargeted(play, &this->actor) && (Rand_ZeroOne() > 0.5f)) { + } else if (Actor_OtherIsLockedOn(play, &this->actor) && (Rand_ZeroOne() > 0.5f)) { EnGeldB_SetupRollBack(this); } else { EnGeldB_SetupCircle(this); @@ -537,7 +537,7 @@ void EnGeldB_Advance(EnGeldB* this, PlayState* play) { if (!EnGeldB_ReactToPlayer(play, this, 0)) { if ((this->actor.xzDistToPlayer < 210.0f) && (this->actor.xzDistToPlayer > 150.0f) && Actor_IsFacingPlayer(&this->actor, 0x71C)) { - if (Actor_IsTargeted(play, &this->actor)) { + if (Actor_IsLockedOn(play, &this->actor)) { if (Rand_ZeroOne() > 0.5f) { EnGeldB_SetupRollForward(this); } else { @@ -588,7 +588,7 @@ void EnGeldB_RollForward(EnGeldB* this, PlayState* play) { if (ABS(facingAngleToLink) < 0x38E0) { this->lookTimer = 20; } - } else if (!Actor_OtherIsTargeted(play, &this->actor) && + } else if (!Actor_OtherIsLockedOn(play, &this->actor) && (Rand_ZeroOne() > 0.5f || (ABS(facingAngleToLink) < 0x3FFC))) { EnGeldB_SetupSlash(this); } else { @@ -728,10 +728,10 @@ void EnGeldB_Circle(EnGeldB* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_GERUDOFT_BREATH); } if ((Math_CosS(angleBehindLink - this->actor.shape.rot.y) < -0.85f) && - !Actor_OtherIsTargeted(play, &this->actor) && (this->actor.xzDistToPlayer <= 45.0f)) { + !Actor_OtherIsLockedOn(play, &this->actor) && (this->actor.xzDistToPlayer <= 45.0f)) { EnGeldB_SetupSlash(this); } else if (--this->timer == 0) { - if (Actor_OtherIsTargeted(play, &this->actor) && (Rand_ZeroOne() > 0.5f)) { + if (Actor_OtherIsLockedOn(play, &this->actor) && (Rand_ZeroOne() > 0.5f)) { EnGeldB_SetupRollBack(this); } else { EnGeldB_SetupReady(this); @@ -827,7 +827,7 @@ void EnGeldB_SpinDodge(EnGeldB* this, PlayState* play) { if (this->timer == 0) { this->actor.shape.rot.y = this->actor.yawTowardsPlayer; if (!EnGeldB_DodgeRanged(play, this)) { - if (!Actor_OtherIsTargeted(play, &this->actor) && (this->actor.xzDistToPlayer <= 70.0f)) { + if (!Actor_OtherIsLockedOn(play, &this->actor) && (this->actor.xzDistToPlayer <= 70.0f)) { EnGeldB_SetupSlash(this); } else { EnGeldB_SetupRollBack(this); @@ -994,7 +994,7 @@ void EnGeldB_SetupRollBack(EnGeldB* this) { void EnGeldB_RollBack(EnGeldB* this, PlayState* play) { if (SkelAnime_Update(&this->skelAnime)) { - if (!Actor_OtherIsTargeted(play, &this->actor) && (this->actor.xzDistToPlayer < 170.0f) && + if (!Actor_OtherIsLockedOn(play, &this->actor) && (this->actor.xzDistToPlayer < 170.0f) && (this->actor.xzDistToPlayer > 140.0f) && (Rand_ZeroOne() < 0.2f)) { EnGeldB_SetupSpinAttack(this); } else if (play->gameplayFrames & 1) { @@ -1077,7 +1077,7 @@ void EnGeldB_Damaged(EnGeldB* this, PlayState* play) { (this->actor.xzDistToPlayer < 90.0f)) { EnGeldB_SetupJump(this); } else if (!EnGeldB_DodgeRanged(play, this)) { - if ((this->actor.xzDistToPlayer <= 45.0f) && !Actor_OtherIsTargeted(play, &this->actor) && + if ((this->actor.xzDistToPlayer <= 45.0f) && !Actor_OtherIsLockedOn(play, &this->actor) && (play->gameplayFrames & 7)) { EnGeldB_SetupSlash(this); } else { @@ -1114,7 +1114,7 @@ void EnGeldB_Jump(EnGeldB* this, PlayState* play) { this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.world.pos.y = this->actor.floorHeight; - if (!Actor_OtherIsTargeted(play, &this->actor)) { + if (!Actor_OtherIsLockedOn(play, &this->actor)) { EnGeldB_SetupSlash(this); } else { EnGeldB_SetupReady(this); @@ -1160,7 +1160,7 @@ void EnGeldB_Block(EnGeldB* this, PlayState* play) { } } else { angleFacingLink = player->actor.shape.rot.y - this->actor.shape.rot.y; - if (!Actor_OtherIsTargeted(play, &this->actor) && + if (!Actor_OtherIsLockedOn(play, &this->actor) && ((play->gameplayFrames & 1) || (ABS(angleFacingLink) < 0x38E0))) { EnGeldB_SetupSlash(this); } else { @@ -1291,12 +1291,12 @@ void EnGeldB_Sidestep(EnGeldB* this, PlayState* play) { s16 angleFacingPlayer2 = player2->actor.shape.rot.y - this->actor.shape.rot.y; this->actor.world.rot.y = this->actor.shape.rot.y; - if ((this->actor.xzDistToPlayer <= 45.0f) && !Actor_OtherIsTargeted(play, &this->actor) && + if ((this->actor.xzDistToPlayer <= 45.0f) && !Actor_OtherIsLockedOn(play, &this->actor) && (!(play->gameplayFrames & 3) || (ABS(angleFacingPlayer2) < 0x38E0))) { EnGeldB_SetupSlash(this); } else if ((210.0f > this->actor.xzDistToPlayer) && (this->actor.xzDistToPlayer > 150.0f) && !(play->gameplayFrames & 1)) { - if (Actor_OtherIsTargeted(play, &this->actor) || (Rand_ZeroOne() > 0.5f) || + if (Actor_OtherIsLockedOn(play, &this->actor) || (Rand_ZeroOne() > 0.5f) || (ABS(angleFacingPlayer2) < 0x38E0)) { EnGeldB_SetupRollForward(this); } else { diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index fec4d5e61a..c86721e661 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -323,7 +323,7 @@ void EnHintnuts_BeginFreeze(EnHintnuts* this, PlayState* play) { void EnHintnuts_CheckProximity(EnHintnuts* this, PlayState* play) { if (this->actor.category != ACTORCAT_ENEMY) { - if ((this->collider.base.ocFlags1 & OC1_HIT) || this->actor.isTargeted) { + if ((this->collider.base.ocFlags1 & OC1_HIT) || this->actor.isLockedOn) { this->actor.flags |= ACTOR_FLAG_16; } else { this->actor.flags &= ~ACTOR_FLAG_16; diff --git a/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/src/overlays/actors/ovl_En_Ko/z_en_ko.c index 3a0fa5ced7..9bf438673b 100644 --- a/src/overlays/actors/ovl_En_Ko/z_en_ko.c +++ b/src/overlays/actors/ovl_En_Ko/z_en_ko.c @@ -1250,7 +1250,7 @@ void func_80A995CC(EnKo* this, PlayState* play) { this->actor.world.pos.z += 80.0f * Math_CosS(homeYawToPlayer); this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer; - if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE || !this->actor.isTargeted) { + if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE || !this->actor.isLockedOn) { temp_f2 = fabsf((f32)this->actor.yawTowardsPlayer - homeYawToPlayer) * 0.001f * 3.0f; if (temp_f2 < 1.0f) { this->skelAnime.playSpeed = 1.0f; diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 735f07fe70..605dca232f 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -1108,7 +1108,7 @@ void func_80ADBF58(EnPoSisters* this, PlayState* play) { } void func_80ADC034(EnPoSisters* this, PlayState* play) { - if (this->actor.isTargeted && this->unk_22E.a == 255) { + if (this->actor.isLockedOn && this->unk_22E.a == 255) { if (this->unk_197 != 0) { this->unk_197--; } diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index a95fb1fe36..f6c1231a84 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -883,7 +883,7 @@ void EnPoh_UpdateVisibility(EnPoh* this) { this->visibilityTimer--; } if (this->lightColor.a == 255) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { this->unk_194++; this->unk_194 = CLAMP_MAX(this->unk_194, 20); } else { 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 4ade2d19fb..15ca70b247 100644 --- a/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -335,7 +335,7 @@ void EnTest_ChooseRandomAction(EnTest* this, PlayState* play) { case 5: case 6: if ((this->actor.xzDistToPlayer < 220.0f) && (this->actor.xzDistToPlayer > 170.0f) && - Actor_IsFacingPlayer(&this->actor, 0x71C) && Actor_IsTargeted(play, &this->actor)) { + Actor_IsFacingPlayer(&this->actor, 0x71C) && Actor_IsLockedOn(play, &this->actor)) { EnTest_SetupJumpslash(this); break; } @@ -395,7 +395,7 @@ void EnTest_ChooseAction(EnTest* this, PlayState* play) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; EnTest_SetupJumpBack(this); } else if ((this->actor.xzDistToPlayer < 220.0f) && (this->actor.xzDistToPlayer > 170.0f)) { - if (Actor_IsFacingPlayer(&this->actor, 0x71C) && !Actor_IsTargeted(play, &this->actor)) { + if (Actor_IsFacingPlayer(&this->actor, 0x71C) && !Actor_IsLockedOn(play, &this->actor)) { EnTest_SetupJumpslash(this); } } else { @@ -405,7 +405,7 @@ void EnTest_ChooseAction(EnTest* this, PlayState* play) { if (this->actor.xzDistToPlayer < 110.0f) { if (Rand_ZeroOne() > 0.2f) { if (player->stateFlags1 & PLAYER_STATE1_4) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { EnTest_SetupSlashDown(this); } else { func_808627C4(this, play); @@ -512,7 +512,7 @@ void EnTest_Idle(EnTest* this, PlayState* play) { if (Actor_IsFacingPlayer(&this->actor, 0x1555)) { if ((this->actor.xzDistToPlayer < 220.0f) && (this->actor.xzDistToPlayer > 160.0f) && (Rand_ZeroOne() < 0.3f)) { - if (Actor_IsTargeted(play, &this->actor)) { + if (Actor_IsLockedOn(play, &this->actor)) { EnTest_SetupJumpslash(this); } else { func_808627C4(this, play); @@ -578,7 +578,7 @@ void EnTest_WalkAndBlock(EnTest* this, PlayState* play) { if (!EnTest_ReactToProjectile(play, this)) { this->timer++; - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { checkDist = 150.0f; } @@ -659,13 +659,13 @@ void EnTest_WalkAndBlock(EnTest* this, PlayState* play) { if ((this->actor.xzDistToPlayer < 220.0f) && (this->actor.xzDistToPlayer > 160.0f) && (Actor_IsFacingPlayer(&this->actor, 0x71C))) { - if (Actor_IsTargeted(play, &this->actor)) { + if (Actor_IsLockedOn(play, &this->actor)) { if (Rand_ZeroOne() < 0.1f) { EnTest_SetupJumpslash(this); return; } } else if (player->heldItemAction != PLAYER_IA_NONE) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { if ((play->gameplayFrames % 2) != 0) { func_808627C4(this, play); return; @@ -691,7 +691,7 @@ void EnTest_WalkAndBlock(EnTest* this, PlayState* play) { if (this->actor.xzDistToPlayer < 110.0f) { if (Rand_ZeroOne() > 0.2f) { if (player->stateFlags1 & PLAYER_STATE1_4) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { EnTest_SetupSlashDown(this); } else { func_808627C4(this, play); @@ -845,7 +845,7 @@ void func_80860F84(EnTest* this, PlayState* play) { } } - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { checkDist = 200.0f; } @@ -976,7 +976,7 @@ void EnTest_SlashDownEnd(EnTest* this, PlayState* play) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; EnTest_SetupJumpBack(this); } else if (player->stateFlags1 & PLAYER_STATE1_4) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { EnTest_SetupSlashDown(this); } else if ((play->gameplayFrames % 2) != 0) { func_808627C4(this, play); @@ -1345,7 +1345,7 @@ void EnTest_Stunned(EnTest* this, PlayState* play) { // a variation of sidestep void func_808627C4(EnTest* this, PlayState* play) { - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { func_80860EC0(this); return; } @@ -1421,7 +1421,7 @@ void func_808628C8(EnTest* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y + 0x3FFF; - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { checkDist = 200.0f; } @@ -1457,9 +1457,9 @@ void func_808628C8(EnTest* this, PlayState* play) { } if (this->timer == 0) { - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { EnTest_SetupIdle(this); - } else if (Actor_IsTargeted(play, &this->actor)) { + } else if (Actor_IsLockedOn(play, &this->actor)) { if (!EnTest_ReactToProjectile(play, this)) { EnTest_ChooseAction(this, play); } @@ -2007,7 +2007,7 @@ s32 EnTest_ReactToProjectile(PlayState* play, EnTest* this) { } if (Math_Vec3f_DistXYZ(&this->actor.world.pos, &projectileActor->world.pos) < 200.0f) { - if (Actor_IsTargeted(play, &this->actor) && (projectileActor->id == ACTOR_ARMS_HOOK)) { + if (Actor_IsLockedOn(play, &this->actor) && (projectileActor->id == ACTOR_ARMS_HOOK)) { EnTest_SetupJumpUp(this); } else if (ABS(yawToProjectile) < 0x2000) { EnTest_SetupStopAndBlock(this); @@ -2020,7 +2020,7 @@ s32 EnTest_ReactToProjectile(PlayState* play, EnTest* this) { return true; } - if (Actor_IsTargeted(play, &this->actor) && (projectileActor->id == ACTOR_ARMS_HOOK)) { + if (Actor_IsLockedOn(play, &this->actor) && (projectileActor->id == ACTOR_ARMS_HOOK)) { EnTest_SetupJumpUp(this); return true; } diff --git a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c index 3b285868c3..5153837a76 100644 --- a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c +++ b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c @@ -218,7 +218,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { this->skelAnime.playSpeed = 0.0f; this->actor.world.pos.x = (Math_SinS(this->actor.world.rot.y) * 25.0f) + sSpawnPoint.x; this->actor.world.pos.z = (Math_CosS(this->actor.world.rot.y) * 25.0f) + sSpawnPoint.z; - if ((this->actor.xzDistToPlayer <= 120.0f) || Actor_IsTargeted(play, &this->actor) || + if ((this->actor.xzDistToPlayer <= 120.0f) || Actor_IsLockedOn(play, &this->actor) || (attackItem != NULL)) { if (attackItem != NULL) { sDodgeRollState = 1; @@ -355,7 +355,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { if ((this->meleeWeaponState == 0) && (sCounterState == 0) && (player->invincibilityTimer == 0) && (player->meleeWeaponAnimation == PLAYER_MWA_STAB_1H) && - (this->actor.xzDistToPlayer <= 85.0f) && Actor_IsTargeted(play, &this->actor)) { + (this->actor.xzDistToPlayer <= 85.0f) && Actor_IsLockedOn(play, &this->actor)) { sStickTilt = 0.0f; sSwordJumpState = 1; @@ -407,7 +407,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { sStickAngle = thisx->yawTowardsPlayer; if ((90.0f >= this->actor.xzDistToPlayer) && (this->actor.xzDistToPlayer > 70.0f) && (ABS(sp5A) >= 0x7800) && - (this->actor.isTargeted || !(player->stateFlags1 & PLAYER_STATE1_22))) { + (this->actor.isLockedOn || !(player->stateFlags1 & PLAYER_STATE1_22))) { EnTorch2_SwingSword(play, input, this); } else { f32 sp50 = 0.0f; @@ -422,7 +422,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { } else if (this->actor.xzDistToPlayer <= 50 + sp50) { sStickTilt = 127.0f; sStickAngle = this->actor.yawTowardsPlayer; - if (!this->actor.isTargeted) { + if (!this->actor.isLockedOn) { Math_SmoothStepToS(&sStickAngle, player->actor.shape.rot.y + 0x7FFF, 1, 0x2328, 0); } } else if (this->actor.xzDistToPlayer > 100.0f + sp50) { @@ -432,7 +432,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { (this->actor.xzDistToPlayer >= 280.0f)) { sStickTilt = 127.0f; sStickAngle = this->actor.yawTowardsPlayer; - if (!this->actor.isTargeted) { + if (!this->actor.isLockedOn) { Math_SmoothStepToS(&sStickAngle, player->actor.shape.rot.y + 0x7FFF, 1, 0x2328, 0); } @@ -443,7 +443,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { !EnTorch2_SwingSword(play, input, this)) { sStickAngle = this->actor.yawTowardsPlayer; sStickTilt = 127.0f; - if (!this->actor.isTargeted) { + if (!this->actor.isLockedOn) { Math_SmoothStepToS(&sStickAngle, player->actor.shape.rot.y + 0x7FFF, 1, 0x2328, 0); } } diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c index ef24ceba45..acd0730c48 100644 --- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -354,7 +354,7 @@ s32 EnWf_ChangeAction(PlayState* play, EnWf* this, s16 mustChoose) { playerFacingAngleDiff = player->actor.shape.rot.y - this->actor.shape.rot.y; - if ((this->actor.xzDistToPlayer <= 80.0f) && !Actor_OtherIsTargeted(play, &this->actor) && + if ((this->actor.xzDistToPlayer <= 80.0f) && !Actor_OtherIsLockedOn(play, &this->actor) && (((play->gameplayFrames % 8) != 0) || (ABS(playerFacingAngleDiff) < 0x38E0))) { EnWf_SetupSlash(this); return true; @@ -502,7 +502,7 @@ void EnWf_RunAtPlayer(EnWf* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 0x2EE, 0); this->actor.world.rot.y = this->actor.shape.rot.y; - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { baseRange = 150.0f; } @@ -542,10 +542,10 @@ void EnWf_RunAtPlayer(EnWf* this, PlayState* play) { } else if (this->actor.xzDistToPlayer < (90.0f + baseRange)) { s16 temp_v1 = player->actor.shape.rot.y - this->actor.shape.rot.y; - if (!Actor_OtherIsTargeted(play, &this->actor) && + if (!Actor_OtherIsLockedOn(play, &this->actor) && ((Rand_ZeroOne() > 0.03f) || ((this->actor.xzDistToPlayer <= 80.0f) && (ABS(temp_v1) < 0x38E0)))) { EnWf_SetupSlash(this); - } else if (Actor_OtherIsTargeted(play, &this->actor) && (Rand_ZeroOne() > 0.5f)) { + } else if (Actor_OtherIsLockedOn(play, &this->actor) && (Rand_ZeroOne() > 0.5f)) { EnWf_SetupBackflipAway(this); } else { EnWf_SetupRunAroundPlayer(this); @@ -658,7 +658,7 @@ void EnWf_RunAroundPlayer(EnWf* this, PlayState* play) { } } - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { baseRange = 150.0f; } @@ -696,14 +696,14 @@ void EnWf_RunAroundPlayer(EnWf* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_WOLFOS_CRY); } - if ((Math_CosS(angle1 - this->actor.shape.rot.y) < -0.85f) && !Actor_OtherIsTargeted(play, &this->actor) && + if ((Math_CosS(angle1 - this->actor.shape.rot.y) < -0.85f) && !Actor_OtherIsLockedOn(play, &this->actor) && (this->actor.xzDistToPlayer <= 80.0f)) { EnWf_SetupSlash(this); } else { this->actionTimer--; if (this->actionTimer == 0) { - if (Actor_OtherIsTargeted(play, &this->actor) && (Rand_ZeroOne() > 0.5f)) { + if (Actor_OtherIsLockedOn(play, &this->actor) && (Rand_ZeroOne() > 0.5f)) { EnWf_SetupBackflipAway(this); } else { EnWf_SetupWait(this); @@ -747,7 +747,7 @@ void EnWf_Slash(EnWf* this, PlayState* play) { this->slashStatus = 0; } - if (((curFrame == 15) && !Actor_IsTargeted(play, &this->actor) && + if (((curFrame == 15) && !Actor_IsLockedOn(play, &this->actor) && (!Actor_IsFacingPlayer(&this->actor, 0x2000) || (this->actor.xzDistToPlayer >= 100.0f))) || SkelAnime_Update(&this->skelAnime)) { if ((curFrame != 15) && (this->actionTimer != 0)) { @@ -850,7 +850,7 @@ void EnWf_SetupBackflipAway(EnWf* this) { void EnWf_BackflipAway(EnWf* this, PlayState* play) { if (SkelAnime_Update(&this->skelAnime)) { - if (!Actor_OtherIsTargeted(play, &this->actor) && (this->actor.xzDistToPlayer < 170.0f) && + if (!Actor_OtherIsLockedOn(play, &this->actor) && (this->actor.xzDistToPlayer < 170.0f) && (this->actor.xzDistToPlayer > 140.0f) && (Rand_ZeroOne() < 0.2f)) { EnWf_SetupRunAtPlayer(this, play); } else if ((play->gameplayFrames % 2) != 0) { @@ -940,7 +940,7 @@ void EnWf_Damaged(EnWf* this, PlayState* play) { (this->actor.xzDistToPlayer < 120.0f)) { EnWf_SetupSomersaultAndAttack(this); } else if (!EnWf_DodgeRanged(play, this)) { - if ((this->actor.xzDistToPlayer <= 80.0f) && !Actor_OtherIsTargeted(play, &this->actor) && + if ((this->actor.xzDistToPlayer <= 80.0f) && !Actor_OtherIsLockedOn(play, &this->actor) && ((play->gameplayFrames % 8) != 0)) { EnWf_SetupSlash(this); } else if (Rand_ZeroOne() > 0.5f) { @@ -985,7 +985,7 @@ void EnWf_SomersaultAndAttack(EnWf* this, PlayState* play) { this->actor.speed = this->actor.velocity.y = 0.0f; this->actor.world.pos.y = this->actor.floorHeight; - if (!Actor_OtherIsTargeted(play, &this->actor)) { + if (!Actor_OtherIsLockedOn(play, &this->actor)) { EnWf_SetupSlash(this); } else { EnWf_SetupWait(this); @@ -1035,7 +1035,7 @@ void EnWf_Blocking(EnWf* this, PlayState* play) { } else { s16 angleFacingLink = player->actor.shape.rot.y - this->actor.shape.rot.y; - if (!Actor_OtherIsTargeted(play, &this->actor) && + if (!Actor_OtherIsLockedOn(play, &this->actor) && (((play->gameplayFrames % 2) != 0) || (ABS(angleFacingLink) < 0x38E0))) { EnWf_SetupSlash(this); } else { @@ -1114,7 +1114,7 @@ void EnWf_Sidestep(EnWf* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { baseRange = 150.0f; } @@ -1159,7 +1159,7 @@ void EnWf_Sidestep(EnWf* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; - if ((this->actor.xzDistToPlayer <= 80.0f) && !Actor_OtherIsTargeted(play, &this->actor) && + if ((this->actor.xzDistToPlayer <= 80.0f) && !Actor_OtherIsLockedOn(play, &this->actor) && (((play->gameplayFrames % 4) == 0) || (ABS(angleDiff2) < 0x38E0))) { EnWf_SetupSlash(this); } else { diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index a401bad5a3..34dc457e18 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -549,7 +549,7 @@ s32 EnZf_CanAttack(PlayState* play, EnZf* this) { return true; } } else { - if (!Actor_OtherIsTargeted(play, &this->actor)) { + if (!Actor_OtherIsLockedOn(play, &this->actor)) { return true; } if (this->actor.params == ENZF_TYPE_DINOLFOS) { @@ -836,7 +836,7 @@ void EnZf_ApproachPlayer(EnZf* this, PlayState* play) { } } - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { sp40 = 100.0f; } @@ -897,7 +897,7 @@ void EnZf_ApproachPlayer(EnZf* this, PlayState* play) { if ((this->actor.xzDistToPlayer < 180.0f) && (this->actor.xzDistToPlayer > 160.0f) && Actor_IsFacingPlayer(&this->actor, 0x71C)) { - if (Actor_IsTargeted(play, &this->actor)) { + if (Actor_IsLockedOn(play, &this->actor)) { if (Rand_ZeroOne() < 0.1f) { this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; EnZf_SetupJumpForward(this); @@ -1113,7 +1113,7 @@ void func_80B463E4(EnZf* this, PlayState* play) { } } - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { baseRange = 100.0f; } @@ -1224,7 +1224,7 @@ void EnZf_Slash(EnZf* this, PlayState* play) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; func_80B483E4(this, play); } else if (player->stateFlags1 & (PLAYER_STATE1_4 | PLAYER_STATE1_13 | PLAYER_STATE1_14)) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { EnZf_SetupSlash(this); } else { func_80B483E4(this, play); @@ -1827,7 +1827,7 @@ void EnZf_CircleAroundPlayer(EnZf* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y + 0x4000; - if (Actor_OtherIsTargeted(play, &this->actor)) { + if (Actor_OtherIsLockedOn(play, &this->actor)) { baseRange = 100.0f; } diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 3194bccd86..612e83e537 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -487,8 +487,8 @@ Actor_ChangeCategory = 0x80026C14; // type:func Actor_GetProjectileActor = 0x80026C54; // type:func Actor_SetTextWithPrefix = 0x80026E14; // type:func Actor_TestFloorInDirection = 0x80026E90; // type:func -Actor_IsTargeted = 0x80026F5C; // type:func -Actor_OtherIsTargeted = 0x80026F90; // type:func +Actor_IsLockedOn = 0x80026F5C; // type:func +Actor_OtherIsLockedOn = 0x80026F90; // type:func func_80033AEC = 0x80026FC4; // type:func func_80033C30 = 0x80027110; // type:func Actor_RequestQuake = 0x8002725C; // type:func From dbb059c6a725bc933b79fabf89ffbe1e39a43cbf Mon Sep 17 00:00:00 2001 From: fig02 Date: Wed, 4 Sep 2024 23:46:03 -0400 Subject: [PATCH 18/86] Target Mode Enum [Target Docs 7/?] (#2133) * TargetMode Enum * format * add default comment * bss * bss 2 * fix bss 3 --- include/z64actor.h | 14 ++++++++++++++ src/code/z_actor.c | 17 ++++++++++++----- src/code/z_en_a_keep.c | 2 +- src/code/z_kankyo.c | 2 +- .../ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c | 2 +- .../actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c | 2 +- .../ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c | 6 ++---- .../ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c | 2 +- .../actors/ovl_Bg_Treemouth/z_bg_treemouth.c | 6 ++---- .../actors/ovl_Boss_Dodongo/z_boss_dodongo.c | 2 +- src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c | 2 +- src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c | 2 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 2 +- .../ovl_Boss_Ganondrof/z_boss_ganondrof.c | 2 +- src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c | 2 +- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 2 +- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 2 +- src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 2 +- src/overlays/actors/ovl_Boss_Va/z_boss_va.c | 2 +- src/overlays/actors/ovl_Door_Ana/z_door_ana.c | 6 +++--- .../actors/ovl_En_Anubice/z_en_anubice.c | 2 +- .../actors/ovl_En_Attack_Niw/z_en_attack_niw.c | 2 +- src/overlays/actors/ovl_En_Ba/z_en_ba.c | 2 +- .../actors/ovl_En_Bigokuta/z_en_bigokuta.c | 2 +- .../ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c | 2 +- .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 2 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 2 +- src/overlays/actors/ovl_En_Boom/z_en_boom.c | 2 +- src/overlays/actors/ovl_En_Box/z_en_box.c | 2 +- .../actors/ovl_En_Clear_Tag/z_en_clear_tag.c | 2 +- src/overlays/actors/ovl_En_Cow/z_en_cow.c | 2 +- src/overlays/actors/ovl_En_Cs/z_en_cs.c | 2 +- src/overlays/actors/ovl_En_Daiku/z_en_daiku.c | 2 +- .../ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c | 2 +- .../actors/ovl_En_Dekubaba/z_en_dekubaba.c | 4 ++-- .../ovl_En_Diving_Game/z_en_diving_game.c | 2 +- src/overlays/actors/ovl_En_Dns/z_en_dns.c | 2 +- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 2 +- .../actors/ovl_En_Dodongo/z_en_dodongo.c | 2 +- src/overlays/actors/ovl_En_Door/z_en_door.c | 2 +- src/overlays/actors/ovl_En_Ds/z_en_ds.c | 2 +- src/overlays/actors/ovl_En_Du/z_en_du.c | 2 +- .../actors/ovl_En_Firefly/z_en_firefly.c | 2 +- src/overlays/actors/ovl_En_Fr/z_en_fr.c | 2 +- src/overlays/actors/ovl_En_Fu/z_en_fu.c | 2 +- src/overlays/actors/ovl_En_Fz/z_en_fz.c | 2 +- src/overlays/actors/ovl_En_Gb/z_en_gb.c | 2 +- src/overlays/actors/ovl_En_Ge1/z_en_ge1.c | 4 ++-- src/overlays/actors/ovl_En_Ge2/z_en_ge2.c | 10 +++++----- src/overlays/actors/ovl_En_Ge3/z_en_ge3.c | 2 +- src/overlays/actors/ovl_En_Gm/z_en_gm.c | 2 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 4 ++-- src/overlays/actors/ovl_En_Goma/z_en_goma.c | 2 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 2 +- src/overlays/actors/ovl_En_Guest/z_en_guest.c | 2 +- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 2 +- .../actors/ovl_En_Heishi3/z_en_heishi3.c | 2 +- .../actors/ovl_En_Heishi4/z_en_heishi4.c | 2 +- src/overlays/actors/ovl_En_Hs/z_en_hs.c | 2 +- src/overlays/actors/ovl_En_Hs2/z_en_hs2.c | 2 +- .../actors/ovl_En_Ice_Hono/z_en_ice_hono.c | 6 ++---- src/overlays/actors/ovl_En_In/z_en_in.c | 6 +++--- src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c | 2 +- .../actors/ovl_En_Kakasi2/z_en_kakasi2.c | 2 +- .../actors/ovl_En_Kakasi3/z_en_kakasi3.c | 2 +- src/overlays/actors/ovl_En_Kanban/z_en_kanban.c | 2 +- .../actors/ovl_En_Karebaba/z_en_karebaba.c | 2 +- src/overlays/actors/ovl_En_Kz/z_en_kz.c | 2 +- .../actors/ovl_En_Lightbox/z_en_lightbox.c | 2 +- src/overlays/actors/ovl_En_Ma1/z_en_ma1.c | 2 +- src/overlays/actors/ovl_En_Ma2/z_en_ma2.c | 2 +- src/overlays/actors/ovl_En_Md/z_en_md.c | 2 +- src/overlays/actors/ovl_En_Mk/z_en_mk.c | 2 +- src/overlays/actors/ovl_En_Mm/z_en_mm.c | 2 +- src/overlays/actors/ovl_En_Mm2/z_en_mm2.c | 2 +- src/overlays/actors/ovl_En_Ms/z_en_ms.c | 2 +- src/overlays/actors/ovl_En_Mu/z_en_mu.c | 2 +- src/overlays/actors/ovl_En_Niw/z_en_niw.c | 2 +- .../actors/ovl_En_Niw_Girl/z_en_niw_girl.c | 2 +- .../actors/ovl_En_Niw_Lady/z_en_niw_lady.c | 2 +- src/overlays/actors/ovl_En_Ny/z_en_ny.c | 2 +- .../ovl_En_Okarina_Tag/z_en_okarina_tag.c | 2 +- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 2 +- src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c | 2 +- src/overlays/actors/ovl_En_Rd/z_en_rd.c | 6 +++--- src/overlays/actors/ovl_En_Reeba/z_en_reeba.c | 2 +- src/overlays/actors/ovl_En_Rr/z_en_rr.c | 2 +- src/overlays/actors/ovl_En_Sa/z_en_sa.c | 2 +- src/overlays/actors/ovl_En_Sb/z_en_sb.c | 2 +- src/overlays/actors/ovl_En_Skj/z_en_skj.c | 2 +- .../actors/ovl_En_Skjneedle/z_en_skjneedle.c | 2 +- src/overlays/actors/ovl_En_Sth/z_en_sth.c | 2 +- .../ovl_En_Syateki_Man/z_en_syateki_man.c | 2 +- .../ovl_En_Syateki_Niw/z_en_syateki_niw.c | 2 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 2 +- .../actors/ovl_En_Takara_Man/z_en_takara_man.c | 2 +- src/overlays/actors/ovl_En_Tg/z_en_tg.c | 2 +- src/overlays/actors/ovl_En_Tite/z_en_tite.c | 2 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 2 +- src/overlays/actors/ovl_En_Toryo/z_en_toryo.c | 2 +- src/overlays/actors/ovl_En_Tp/z_en_tp.c | 2 +- src/overlays/actors/ovl_En_Trap/z_en_trap.c | 2 +- .../ovl_En_Wonder_Item/z_en_wonder_item.c | 2 +- .../ovl_En_Wonder_Talk/z_en_wonder_talk.c | 2 +- .../ovl_En_Yabusame_Mark/z_en_yabusame_mark.c | 2 +- src/overlays/actors/ovl_En_Zf/z_en_zf.c | 2 +- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 2 +- src/overlays/actors/ovl_En_Zl4/z_en_zl4.c | 2 +- src/overlays/actors/ovl_En_Zo/z_en_zo.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 6 +++--- .../actors/ovl_Obj_Switch/z_obj_switch.c | 2 +- .../actors/ovl_Obj_Timeblock/z_obj_timeblock.c | 2 +- 112 files changed, 154 insertions(+), 139 deletions(-) diff --git a/include/z64actor.h b/include/z64actor.h index df91a14d4b..c3a8070ee6 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -597,6 +597,20 @@ typedef struct TargetContext { /* 0x94 */ Actor* arrowHoverActor; // Actor to draw an arrow over } TargetContext; // size = 0x98 +typedef enum { + /* 0 */ TARGET_MODE_0, + /* 1 */ TARGET_MODE_1, + /* 2 */ TARGET_MODE_2, + /* 3 */ TARGET_MODE_3, // Used as the default for new actors + /* 4 */ TARGET_MODE_4, + /* 5 */ TARGET_MODE_5, + /* 6 */ TARGET_MODE_6, + /* 7 */ TARGET_MODE_7, + /* 8 */ TARGET_MODE_8, + /* 9 */ TARGET_MODE_9, + /* 10 */ TARGET_MODE_MAX +} TargetMode; + typedef struct TitleCardContext { /* 0x00 */ void* texture; /* 0x04 */ s16 x; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 00855214a8..96617f4962 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -882,7 +882,7 @@ void Actor_Init(Actor* actor, PlayState* play) { Actor_SetFocus(actor, 0.0f); Math_Vec3f_Copy(&actor->prevPos, &actor->world.pos); Actor_SetScale(actor, 0.01f); - actor->targetMode = 3; + actor->targetMode = TARGET_MODE_3; actor->minVelocityY = -20.0f; actor->xyzDistToPlayerSq = MAXFLOAT; actor->naviEnemyId = NAVI_ENEMY_NONE; @@ -1615,10 +1615,17 @@ typedef struct TargetRangeParams { #define TARGET_RANGE(range, leash) \ { SQ(range), (f32)range / leash } -TargetRangeParams sTargetRanges[] = { - TARGET_RANGE(70, 140), TARGET_RANGE(170, 255), TARGET_RANGE(280, 5600), TARGET_RANGE(350, 525), - TARGET_RANGE(700, 1050), TARGET_RANGE(1000, 1500), TARGET_RANGE(100, 105.36842), TARGET_RANGE(140, 163.33333), - TARGET_RANGE(240, 576), TARGET_RANGE(280, 280000), +TargetRangeParams sTargetRanges[TARGET_MODE_MAX] = { + TARGET_RANGE(70, 140), // TARGET_MODE_0 + TARGET_RANGE(170, 255), // TARGET_MODE_1 + TARGET_RANGE(280, 5600), // TARGET_MODE_2 + TARGET_RANGE(350, 525), // TARGET_MODE_3 + TARGET_RANGE(700, 1050), // TARGET_MODE_4 + TARGET_RANGE(1000, 1500), // TARGET_MODE_5 + TARGET_RANGE(100, 105.36842), // TARGET_MODE_6 + TARGET_RANGE(140, 163.33333), // TARGET_MODE_7 + TARGET_RANGE(240, 576), // TARGET_MODE_8 + TARGET_RANGE(280, 280000), // TARGET_MODE_9 }; /** diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index 37c5abcf29..d99680ae50 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -152,7 +152,7 @@ void EnAObj_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, thisx, &sCylinderInit); thisx->colChkInfo.mass = MASS_IMMOVABLE; - thisx->targetMode = 0; + thisx->targetMode = TARGET_MODE_0; break; case A_OBJ_BOULDER_FRAGMENT: thisx->gravity = -1.5f; diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index e6036a27f3..49fcbf4357 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -212,7 +212,7 @@ s16 sLightningFlashAlpha; s16 sSunDepthTestX; s16 sSunDepthTestY; -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:96 gc-jp-ce:96 gc-jp-mq:96 gc-us:96 gc-us-mq:96" LightNode* sNGameOverLightNode; LightInfo sNGameOverLightInfo; diff --git a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c index b99d3da3ba..1bda3f597a 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c @@ -165,7 +165,7 @@ void BgBdanSwitch_Init(Actor* thisx, PlayState* play) { case YELLOW_TALL_2: BgBdanSwitch_InitCollision(this, play); this->dyna.actor.flags |= ACTOR_FLAG_0; - this->dyna.actor.targetMode = 4; + this->dyna.actor.targetMode = TARGET_MODE_4; break; } diff --git a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c index b8b6158b59..c9d8febc29 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c +++ b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c @@ -122,7 +122,7 @@ static CollisionCheckInfoInit sColChkInfoInit = { 0, 80, 130, MASS_IMMOVABLE }; static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 4, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_4, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c index 42321d8fec..0f757059e3 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c @@ -54,10 +54,8 @@ static ColliderJntSphInit sJntSphInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 3, ICHAIN_CONTINUE), - ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_3, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c index f6bcd4283b..3a96d82959 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c @@ -65,7 +65,7 @@ static ColliderJntSphInit sJntSphInit = { static InitChainEntry sInitChainClasp[] = { ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 3, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, TARGET_MODE_3, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 40, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c index 5a31476cb1..d1748fafc0 100644 --- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c +++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c @@ -42,10 +42,8 @@ ActorProfile Bg_Treemouth_Profile = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), - ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 8000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 8000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 300, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c index dbdc0a3708..387b57a670 100644 --- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c +++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c @@ -48,7 +48,7 @@ ActorProfile Boss_Dodongo_Profile = { #include "z_boss_dodongo_data.inc.c" static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_KING_DODONGO, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -3000.0f, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 8200.0f, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c index 3ccc68cbee..88ce87b76f 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c @@ -59,7 +59,7 @@ ActorProfile Boss_Fd_Profile = { #include "z_boss_fd_colchk.inc.c" static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_VOLVAGIA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index 26e4eab495..065d58541f 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -67,7 +67,7 @@ static Vec3f sHoleLocations[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_VOLVAGIA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), 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 c33fcb52bb..17cb04f174 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -336,7 +336,7 @@ void BossGanon_SetAnimationObject(BossGanon* this, PlayState* play, s32 objectId } static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_GANONDORF, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index 2a35833798..60bd103f04 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -199,7 +199,7 @@ static void* sLimbTex_rgba16_16x32[] = { gPhantomGanonLimbTex_00AA80, gPhantomGa static void* sMouthTex_ci8_16x16[] = { gPhantomGanonMouthTex, gPhantomGanonSmileTex }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_PHANTOM_GANON_PHASE_1, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index e34d1500c8..0dfcc60edd 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -333,7 +333,7 @@ void BossGoma_ClearPixels(u8* clearPixelTable, s16 i) { } static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_GOHMA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index b579b60429..a833dbb523 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -294,7 +294,7 @@ static s16 sAttackRot[41] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_MORPHA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index 67f804e26a..05f1525655 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -261,7 +261,7 @@ static AnimationHeader* sHandHangPoses[] = { &gBongoLeftHandHangPoseAnim, &gBong static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BONGO_BONGO, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 20, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 9b65f089d2..e2e78726ba 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -201,7 +201,7 @@ static Vec3f sTwinrovaPillarPos[] = { static u8 sTwInitialized = false; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index 0cb779268a..fa86dbb682 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -581,7 +581,7 @@ void BossVa_Init(Actor* thisx, PlayState* play2) { s16 warpId; Actor_SetScale(&this->actor, 0.1f); - this->actor.targetMode = 5; + this->actor.targetMode = TARGET_MODE_5; this->actor.colChkInfo.mass = MASS_IMMOVABLE; switch (this->actor.params) { diff --git a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c index 7886a55e2b..69db94c219 100644 --- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c +++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c @@ -79,7 +79,7 @@ void DoorAna_Init(Actor* thisx, PlayState* play) { } else { DoorAna_SetupAction(this, DoorAna_WaitOpen); } - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; } void DoorAna_Destroy(Actor* thisx, PlayState* play) { @@ -145,9 +145,9 @@ void DoorAna_WaitOpen(DoorAna* this, PlayState* play) { this->actor.xzDistToPlayer <= 15.0f && -50.0f <= this->actor.yDistToPlayer && this->actor.yDistToPlayer <= 15.0f) { player->stateFlags1 |= PLAYER_STATE1_31; - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; } else { - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; } } } diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c index 58b130e05e..c051882909 100644 --- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c +++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c @@ -148,7 +148,7 @@ void EnAnubice_Init(Actor* thisx, PlayState* play) { this->focusHeightOffset = 0.0f; this->actor.flags &= ~ACTOR_FLAG_0; this->home = this->actor.world.pos; - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; this->actionFunc = EnAnubice_FindFlameCircles; } 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 3025df7f51..748c2e62b8 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 @@ -32,7 +32,7 @@ ActorProfile En_Attack_Niw_Profile = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 1, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_1, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ba/z_en_ba.c b/src/overlays/actors/ovl_En_Ba/z_en_ba.c index 14ff7ea8c8..43d717bbfb 100644 --- a/src/overlays/actors/ovl_En_Ba/z_en_ba.c +++ b/src/overlays/actors/ovl_En_Ba/z_en_ba.c @@ -103,7 +103,7 @@ void EnBa_Init(Actor* thisx, PlayState* play) { this->unk_158[i].y = this->actor.world.pos.y - (i + 1) * 32.0f; } - this->actor.targetMode = 4; + this->actor.targetMode = TARGET_MODE_4; this->upperParams = PARAMS_GET_U(thisx->params, 8, 8); thisx->params &= 0xFF; diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index 398ab5d8a3..a9573a9fa5 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -145,7 +145,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(gravity, -1, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BIGOCTO, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 33, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c index 441cbfdd8e..0daf1d3795 100644 --- a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c +++ b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c @@ -77,7 +77,7 @@ void EnBomBowlMan_Init(Actor* thisx, PlayState* play2) { } this->prizeSelect = (s16)Rand_ZeroFloat(4.99f); - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; this->actionFunc = EnBomBowlMan_SetupWaitAsleep; } 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 7abad332b9..62515231b4 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 @@ -55,7 +55,7 @@ static ColliderJntSphInit sJntSphInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 1000 * BOMBCHU_SCALE, ICHAIN_STOP), }; 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 d1c6bf379c..875553a85f 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -109,7 +109,7 @@ void EnBombf_Init(Actor* thisx, PlayState* play) { thisx->colChkInfo.cylRadius = 10.0f; thisx->colChkInfo.cylHeight = 10; - thisx->targetMode = 0; + thisx->targetMode = TARGET_MODE_0; if (thisx->params == BOMBFLOWER_BODY) { this->timer = 140; diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index 4450db093a..5ea28b6d2a 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -49,7 +49,7 @@ static ColliderQuadInit sQuadInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_S8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_VEC3S(shape.rot, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c index 6d80f7b14d..121e6bda0f 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -66,7 +66,7 @@ static AnimationHeader* sAnimations[4] = { &gTreasureChestAnim_00024C, &gTreasur &gTreasureChestAnim_00043C, &gTreasureChestAnim_00043C }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 0, ICHAIN_STOP), + ICHAIN_U8(targetMode, TARGET_MODE_0, ICHAIN_STOP), }; static UNK_TYPE sUnused; diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c index e1450c0c86..30b0a33f48 100644 --- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c +++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c @@ -251,7 +251,7 @@ void EnClearTag_Init(Actor* thisx, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_IT_SWORD_REFLECT_MG); } else { // Initialize the Arwing. this->actor.flags |= ACTOR_FLAG_0; - this->actor.targetMode = 5; + this->actor.targetMode = TARGET_MODE_5; Collider_SetCylinder(play, &this->collider, &this->actor, &sArwingCylinderInit); this->actor.colChkInfo.health = 3; diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index d47ec80abd..cf7f08d5bb 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -146,7 +146,7 @@ void EnCow_Init(Actor* thisx, PlayState* play) { COW_TYPE_TAIL); this->animationTimer = Rand_ZeroFloat(1000.0f) + 40.0f; this->breathTimer = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; R_EPONAS_SONG_PLAYED = false; break; diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index bbe4939528..2e6cf79a69 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -143,7 +143,7 @@ void EnCs_Init(Actor* thisx, PlayState* play) { Animation_GetLastFrame(sAnimationInfo[ENCS_ANIM_0].animation), sAnimationInfo[ENCS_ANIM_0].mode, sAnimationInfo[ENCS_ANIM_0].morphFrames); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->path = PARAMS_GET_U(this->actor.params, 0, 8); this->unk_1EC = 0; // This variable is unused anywhere else this->talkState = 0; diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c index 803ef523e0..8bcc668e29 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -189,7 +189,7 @@ void EnDaiku_Init(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->currentAnimIndex = -1; this->runSpeed = 5.0f; this->initRot = this->actor.world.rot; diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index 4efda14ceb..c316f744f4 100644 --- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -172,7 +172,7 @@ void EnDaikuKakariko_Init(Actor* thisx, PlayState* play) { this->actor.gravity = 0.0f; this->runSpeed = 3.0f; this->actor.uncullZoneForward = 1200.0f; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->currentAnimIndex = -1; if (this->flags & 0x40) { diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index 56f0b09c2f..2eefd57b06 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -249,7 +249,7 @@ void EnDekubaba_Init(Actor* thisx, PlayState* play) { CollisionCheck_SetInfo(&this->actor.colChkInfo, &sBigDekuBabaDamageTable, &sColChkInfoInit); this->actor.colChkInfo.health = 4; this->actor.naviEnemyId = NAVI_ENEMY_BIG_DEKU_BABA; - this->actor.targetMode = 2; + this->actor.targetMode = TARGET_MODE_2; } else { this->size = 1.0f; @@ -263,7 +263,7 @@ void EnDekubaba_Init(Actor* thisx, PlayState* play) { CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDekuBabaDamageTable, &sColChkInfoInit); this->actor.naviEnemyId = NAVI_ENEMY_DEKU_BABA; - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; } EnDekubaba_SetupWait(this); diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c index da5e7dbf20..ab38eedd67 100644 --- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c +++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c @@ -93,7 +93,7 @@ void EnDivingGame_Init(Actor* thisx, PlayState* play) { Actor_Kill(&this->actor); } else { D_809EF0B0 = true; - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->actionFunc = func_809EDCB0; } diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index 5c33397cdd..d212cf903f 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -115,7 +115,7 @@ static DnsItemEntry* sItemEntries[] = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BUSINESS_SCRUB, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index 6cb7731fbb..2fa6c093e0 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -84,7 +84,7 @@ void EnDntJiji_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ デグナッツお面品評会長老 ☆☆☆☆☆ %x\n" VT_RST, this->stage); this->actor.flags &= ~ACTOR_FLAG_0; this->actor.colChkInfo.mass = 0xFF; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actionFunc = EnDntJiji_SetFlower; this->actor.gravity = -2.0f; } diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index cf5768f351..32d3b7d06d 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -308,7 +308,7 @@ void EnDodongo_Init(Actor* thisx, PlayState* play) { EnDodongo* this = (EnDodongo*)thisx; EffectBlureInit1 blureInit; - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; Actor_ProcessInitChain(&this->actor, sInitChain); this->bombSmokePrimColor.r = this->bombSmokePrimColor.g = this->bombSmokeEnvColor.r = 255; this->bombSmokePrimColor.a = this->bombSmokeEnvColor.a = 200; diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index fdb8cf1b9b..0dca15d850 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -73,7 +73,7 @@ static EnDoorInfo sDoorInfo[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 0, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_0, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/src/overlays/actors/ovl_En_Ds/z_en_ds.c index 5cfabd6834..1dd85b43ca 100644 --- a/src/overlays/actors/ovl_En_Ds/z_en_ds.c +++ b/src/overlays/actors/ovl_En_Ds/z_en_ds.c @@ -41,7 +41,7 @@ void EnDs_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.013f); this->actionFunc = EnDs_Wait; - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; this->unk_1E8 = 0; this->actor.flags &= ~ACTOR_FLAG_0; this->unk_1E4 = 0.0f; diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index 123442317b..ba8eeec8a4 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -289,7 +289,7 @@ void EnDu_Init(Actor* thisx, PlayState* play) { } Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENDU_ANIM_0); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; if (gSaveContext.save.cutsceneIndex >= 0xFFF0) { diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index fe8bb5be3a..70d9eb80e8 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -112,7 +112,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 5, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -500, ICHAIN_CONTINUE), - ICHAIN_F32(minVelocityY, -4, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_F32(minVelocityY, -4, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 4000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index cf94fd7025..cb49c0ba21 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -168,7 +168,7 @@ static s16 sTimerFrogSong[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 434b924084..b930fe8004 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -92,7 +92,7 @@ void EnFu_Init(Actor* thisx, PlayState* play) { this->skelanime.playSpeed = 2.0f; } this->behaviorFlags = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } void EnFu_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index 158daf3687..de73699d55 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -151,7 +151,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_FREEZARD, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index 9a39c09822..49ae19c793 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -121,7 +121,7 @@ static ColliderCylinderInitType1 sBottlesCylindersInit[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 6, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_6, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2200, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index 5a6bbadc68..ba84d55e71 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -98,7 +98,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) { this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->animation = &gGerudoWhiteIdleAnim; this->animFunc = EnGe1_CueUpAnimation; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; Actor_SetScale(&this->actor, 0.01f); this->actor.uncullZoneForward = ((play->sceneId == SCENE_GERUDO_VALLEY) ? 1000.0f : 1200.0f); @@ -146,7 +146,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) { Actor_Kill(&this->actor); return; } - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; this->hairstyle = GE1_HAIR_BOB; // "Horseback archery Gerudo EVENT_INF(0) =" PRINTF(VT_FGCOL(CYAN) "やぶさめ ゲルド EVENT_INF(0) = %x\n" VT_RST, gSaveContext.eventInf[0]); diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index 5b51c9d9ab..533f38a4ad 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -138,21 +138,21 @@ void EnGe2_Init(Actor* thisx, PlayState* play) { EnGe2_ChangeAction(this, GE2_ACTION_WALK); if (EnGe2_CheckCarpentersFreed()) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } break; case GE2_TYPE_STATIONARY: EnGe2_ChangeAction(this, GE2_ACTION_STAND); if (EnGe2_CheckCarpentersFreed()) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } break; case GE2_TYPE_GERUDO_CARD_GIVER: EnGe2_ChangeAction(this, GE2_ACTION_WAITLOOKATPLAYER); this->actor.update = EnGe2_UpdateAfterTalk; this->actionFunc = EnGe2_ForceTalk; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; break; default: ASSERT(0, "0", "../z_en_ge2.c", 418); @@ -595,7 +595,7 @@ void EnGe2_Update(Actor* thisx, PlayState* play) { if (EnGe2_CheckCarpentersFreed() && !(this->stateFlags & GE2_STATE_KO)) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } } @@ -621,7 +621,7 @@ void EnGe2_UpdateStunned(Actor* thisx, PlayState* play2) { if (EnGe2_CheckCarpentersFreed()) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.colorFilterTimer = 0; } else if (this->actor.colorFilterTimer == 0) { this->actor.update = EnGe2_Update; diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c index 096c7bdf79..d54bcb7647 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c @@ -81,7 +81,7 @@ void EnGe3_Init(Actor* thisx, PlayState* play2) { EnGe3_ChangeAction(this, 0); this->actionFunc = EnGe3_ForceTalk; this->unk_30C = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.minVelocityY = -4.0f; this->actor.gravity = -1.0f; } diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index 3e80b4e038..3287f0b6a3 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -58,7 +58,7 @@ static ColliderCylinderInitType1 sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index 086e630a82..f593f5e648 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -644,7 +644,7 @@ void EnGo_Init(Actor* thisx, PlayState* play) { } EnGo_ChangeAnim(this, ENGO_ANIM_0); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->actor.gravity = -1.0f; @@ -678,7 +678,7 @@ void EnGo_Init(Actor* thisx, PlayState* play) { EnGo_SetupAction(this, func_80A3FEB4); break; case 0x90: - this->actor.targetMode = 5; + this->actor.targetMode = TARGET_MODE_5; Actor_SetScale(&this->actor, 0.16f); EnGo_SetupAction(this, EnGo_CurledUp); break; diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c index ad518535b4..7e411a8c66 100644 --- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -98,7 +98,7 @@ static u8 sSpawnNum = 0; static Vec3f sDeadEffectVel = { 0.0f, 0.0f, 0.0f }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 3, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_3, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_GOHMA_LARVA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 20, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index 746a7b882f..06a773f111 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -102,7 +102,7 @@ void EnGs_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, thisx, &sCylinderInit); CollisionCheck_SetInfo2(&thisx->colChkInfo, &sDamageTable, &sColChkInfoInit); - thisx->targetMode = 6; + thisx->targetMode = TARGET_MODE_6; this->unk_1D8 = thisx->world.pos; this->actionFunc = func_80A4F734; this->unk_1B4[0].x = 1.0f; diff --git a/src/overlays/actors/ovl_En_Guest/z_en_guest.c b/src/overlays/actors/ovl_En_Guest/z_en_guest.c index df604c728f..2aabc7d390 100644 --- a/src/overlays/actors/ovl_En_Guest/z_en_guest.c +++ b/src/overlays/actors/ovl_En_Guest/z_en_guest.c @@ -45,7 +45,7 @@ static ColliderCylinderInitType1 sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 6, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_6, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index c0ddc8bb29..6749ac4538 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -126,7 +126,7 @@ void EnHeishi2_Init(Actor* thisx, PlayState* play) { this->collider.dim.yShift = 0; this->collider.dim.radius = 15; this->collider.dim.height = 70; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; switch (this->type) { diff --git a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c index 072d5d71ae..1449388088 100644 --- a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c +++ b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c @@ -73,7 +73,7 @@ void EnHeishi3_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f); SkelAnime_Init(play, &this->skelAnime, &gEnHeishiSkel, &gEnHeishiIdleAnim, this->jointTable, this->morphTable, 17); this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); // "Castle Gate Soldier - Power Up" diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c index 4d7d8d3e57..9c7b7e5780 100644 --- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c +++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c @@ -62,7 +62,7 @@ void EnHeishi4_Init(Actor* thisx, PlayState* play) { this->type = PARAMS_GET_U(thisx->params, 0, 8); thisx->colChkInfo.mass = MASS_IMMOVABLE; this->pos = thisx->world.pos; - thisx->targetMode = 6; + thisx->targetMode = TARGET_MODE_6; if (this->type == HEISHI4_AT_MARKET_DYING) { this->height = 30.0f; ActorShape_Init(&thisx->shape, 0.0f, NULL, 30.0f); diff --git a/src/overlays/actors/ovl_En_Hs/z_en_hs.c b/src/overlays/actors/ovl_En_Hs/z_en_hs.c index ba6f7e55b4..7752e2af7d 100644 --- a/src/overlays/actors/ovl_En_Hs/z_en_hs.c +++ b/src/overlays/actors/ovl_En_Hs/z_en_hs.c @@ -89,7 +89,7 @@ void EnHs_Init(Actor* thisx, PlayState* play) { } this->unk_2A8 = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } void EnHs_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c index c10f85b660..b5401f6bb9 100644 --- a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c +++ b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c @@ -63,7 +63,7 @@ void EnHs2_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(CYAN) " ヒヨコの店(子人の時) \n" VT_RST); this->actionFunc = func_80A6F1A4; this->unk_2A8 = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } void EnHs2_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index 0725c380fc..a405d6ca0d 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -77,10 +77,8 @@ static ColliderCylinderInit sCylinderInitDroppedFlame = { }; static InitChainEntry sInitChainCapturableFlame[] = { - ICHAIN_U8(targetMode, 0, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 60, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 60, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), }; 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 6e17f2c92a..d1495130a5 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -518,7 +518,7 @@ void EnIn_WaitForObject(EnIn* this, PlayState* play) { return; } Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->actionFunc = func_80A7A4BC; @@ -577,7 +577,7 @@ void EnIn_WaitForObject(EnIn* this, PlayState* play) { gSaveContext.eventInf[EVENTINF_HORSES_INDEX] = 0; break; case EVENTINF_HORSES_STATE_1: - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; EnIn_ChangeAnim(this, ENIN_ANIM_2); this->actionFunc = func_80A7A568; Interface_SetTimer(60); @@ -593,7 +593,7 @@ void EnIn_WaitForObject(EnIn* this, PlayState* play) { break; case EVENTINF_HORSES_STATE_5: case EVENTINF_HORSES_STATE_6: - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; EnIn_ChangeAnim(this, ENIN_ANIM_6); this->unk_1EC = 8; this->actionFunc = func_80A7AA40; diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index f586a408f8..baad698422 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -69,7 +69,7 @@ void EnKakasi_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; SkelAnime_InitFlex(play, &this->skelanime, &object_ka_Skel_0065B0, &object_ka_Anim_000214, NULL, NULL, 0); this->rot = this->actor.world.rot; diff --git a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c index b842b45967..03616fa88a 100644 --- a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c +++ b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c @@ -69,7 +69,7 @@ void EnKakasi2_Init(Actor* thisx, PlayState* play) { if (this->switchFlag == 0x3F) { this->switchFlag = -1; } - this->actor.targetMode = 4; + this->actor.targetMode = TARGET_MODE_4; this->maxSpawnDistance.x = (spawnRangeY * 40.0f) + 40.0f; this->maxSpawnDistance.y = (spawnRangeXZ * 40.0f) + 40.0f; diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index 478e5d666e..6c2484b753 100644 --- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -71,7 +71,7 @@ void EnKakasi3_Init(Actor* thisx, PlayState* play) { PRINTF("\n\n"); // "Obonur" -- Related to the name of the scarecrow (Bonooru) PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ おーボヌール ☆☆☆☆☆ \n" VT_RST); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); 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 ea2e47d9e5..dc75223e6d 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -213,7 +213,7 @@ void EnKanban_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); if (this->actor.params != ENKANBAN_PIECE) { - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; this->actor.flags |= ACTOR_FLAG_0; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index d4e0744573..39ee88dad2 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -85,7 +85,7 @@ static CollisionCheckInfoInit sColCheckInfoInit = { 1, 15, 80, MASS_HEAVY }; static InitChainEntry sInitChain[] = { ICHAIN_F32(targetArrowOffset, 2500, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 1, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_1, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_WITHERED_DEKU_BABA, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c index bb1a467c12..a939194c5d 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -332,7 +332,7 @@ void EnKz_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); Actor_SetScale(&this->actor, 0.01); - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; Animation_ChangeByInfo(&this->skelanime, sAnimationInfo, ENKZ_ANIM_0); diff --git a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c index d7bb502f93..b181f0d02e 100644 --- a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c +++ b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c @@ -53,7 +53,7 @@ void EnLightbox_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 6.0f); this->dyna.interactFlags = 0; this->dyna.transformFlags = 0; - thisx->targetMode = 0; + thisx->targetMode = TARGET_MODE_0; thisx->gravity = -2.0f; CollisionHeader_GetVirtual(&object_lightbox_Col_001F10, &colHeader); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader); diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index f3037e058c..c222169707 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -269,7 +269,7 @@ void EnMa1_Init(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; if (!GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE) || CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) { diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index eca08b7221..b295a6cd14 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -242,7 +242,7 @@ void EnMa2_Init(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; } diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c index c82d225370..d50b0c4a72 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -667,7 +667,7 @@ void EnMd_Init(Actor* thisx, PlayState* play) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENMD_ANIM_0); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->alpha = 255; Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_ELF, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, FAIRY_KOKIRI); 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 b98cda4e43..8bbd3b6ff4 100644 --- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c +++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c @@ -66,7 +66,7 @@ void EnMk_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnMk_Wait; this->flags = 0; this->swimFlag = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; if (GET_ITEMGETINF(ITEMGETINF_10)) { this->flags |= 4; diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index a07ce7822d..9eff45ffc7 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -176,7 +176,7 @@ void EnMm_Init(Actor* thisx, PlayState* play) { this->path = PARAMS_GET_U(this->actor.params, 0, 8); this->unk_1F0 = 2; this->unk_1E8 = 0; - this->actor.targetMode = 2; + this->actor.targetMode = TARGET_MODE_2; this->actor.gravity = -1.0f; this->speedXZ = 3.0f; this->unk_204 = this->actor.objectSlot; diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c index 9d59e93d01..af77ab6c76 100644 --- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c +++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c @@ -136,7 +136,7 @@ void EnMm2_Init(Actor* thisx, PlayState* play2) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->mouthTexIndex = RM2_MOUTH_CLOSED; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->unk_1F4 |= 1; this->actor.gravity = -1.0f; if (this->actor.params == 1) { diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c index 18a8c723eb..879b397e75 100644 --- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c +++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c @@ -53,7 +53,7 @@ static u16 sOfferTextIDs[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c index eeaf652b12..501c674a3b 100644 --- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c +++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c @@ -139,7 +139,7 @@ void EnMu_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &D_80AB0BD0); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &D_80AB0BFC); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; Actor_SetScale(&this->actor, 0.01f); EnMu_Interact(this, play); EnMu_SetupAction(this, EnMu_Pose); 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 e2c44b79d9..97792c75cf 100644 --- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -114,7 +114,7 @@ static ColliderCylinderInit sCylinderInit2 = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 6, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_6, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index cf063c2153..618ef792f6 100644 --- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -61,7 +61,7 @@ void EnNiwGirl_Init(Actor* thisx, PlayState* play) { SkelAnime_InitFlex(play, &this->skelAnime, &gNiwGirlSkel, &gNiwGirlRunAnim, this->jointTable, this->morphTable, 17); Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; if (this->actor.params < 0) { this->actor.params = 0; } diff --git a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index e977d18652..e686b9367b 100644 --- a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -165,7 +165,7 @@ void func_80AB9F24(EnNiwLady* this, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->unk_272 = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.draw = EnNiwLady_Draw; switch (this->unk_278) { case 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 5d6eb3338c..e326d59e86 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -99,7 +99,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_SPIKE, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c index b04c498fe3..e4be3d4e64 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c @@ -57,7 +57,7 @@ void EnOkarinaTag_Init(Actor* thisx, PlayState* play) { this->ocarinaSong = 0; this->unk_158 = 1; } - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; if (this->actor.world.rot.z > 0) { this->interactRange = this->actor.world.rot.z * 40.0f; } diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index 147f14cf83..ff77304215 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -324,7 +324,7 @@ static EnOssanGetGirlAParamsFunc sShopItemReplaceFunc[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c index 90eba0cde1..0aba5350a3 100644 --- a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c +++ b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c @@ -53,7 +53,7 @@ void EnPubox_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 6.0f); this->dyna.interactFlags = 0; this->dyna.transformFlags = 0; - thisx->targetMode = 1; + thisx->targetMode = TARGET_MODE_1; thisx->gravity = -2.0f; CollisionHeader_GetVirtual(&gBlockMediumCol, &colHeader); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader); diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index d030db2ad0..59d69882be 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -142,7 +142,7 @@ void EnRd_Init(Actor* thisx, PlayState* play) { EnRd* this = (EnRd*)thisx; Actor_ProcessInitChain(thisx, sInitChain); - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; this->actor.colChkInfo.damageTable = &sDamageTable; ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f); this->upperBodyYRotation = this->headYRotation = 0; @@ -434,7 +434,7 @@ void EnRd_WalkToHome(EnRd* this, PlayState* play) { PLAYER_STATE1_19 | PLAYER_STATE1_21)) && !(player->stateFlags2 & PLAYER_STATE2_7) && (Actor_WorldDistXYZToPoint(&player->actor, &this->actor.home.pos) < 150.0f)) { - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; EnRd_SetupWalkToPlayer(this, play); } else if (this->actor.params > REDEAD_TYPE_DOES_NOT_MOURN_IF_WALKING) { if (this->actor.parent != NULL) { @@ -579,7 +579,7 @@ void EnRd_Grab(EnRd* this, PlayState* play) { if (!LINK_IS_ADULT) { Math_SmoothStepToF(&this->actor.shape.yOffset, 0, 1.0f, 400.0f, 0.0f); } - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; this->actor.flags |= ACTOR_FLAG_0; this->playerStunWaitTimer = 0xA; this->grabWaitTimer = 0xF; diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c index 14d99d16c5..4fb898d7dc 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c @@ -113,7 +113,7 @@ void EnReeba_Init(Actor* thisx, PlayState* play) { s32 surfaceType; this->actor.naviEnemyId = NAVI_ENEMY_LEEVER; - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; this->actor.gravity = -3.5f; this->actor.focus.pos = this->actor.world.pos; SkelAnime_Init(play, &this->skelanime, &object_reeba_Skel_001EE8, &object_reeba_Anim_0001E4, this->jointTable, diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index 4f2f3a083b..4d70976021 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -158,7 +158,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_LIKE_LIKE, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index 3008eabe88..ad24b213c6 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -521,7 +521,7 @@ void EnSa_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->alpha = 255; this->unk_21A = this->actor.shape.rot; 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 fc91448994..82c5da622f 100644 --- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c +++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c @@ -86,7 +86,7 @@ static DamageTable sDamageTable[] = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_SHELL_BLADE, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index ff68488558..fb7f81433a 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -278,7 +278,7 @@ static EnSkjActionFunc sActionFuncs[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c index b27a05a488..b9a79880db 100644 --- a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c +++ b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c @@ -48,7 +48,7 @@ static ColliderCylinderInitType1 sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c index ac1ead5ac2..1cf1a2c1a6 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -131,7 +131,7 @@ void EnSth_Init(Actor* thisx, PlayState* play) { EnSth_SetupAction(this, EnSth_WaitForObject); this->actor.draw = NULL; this->unk_2B2 = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } void EnSth_SetupShapeColliderUpdate2AndDraw(EnSth* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index 2992bc4e53..2189f7a317 100644 --- a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -160,7 +160,7 @@ void EnSyatekiMan_Init(Actor* thisx, PlayState* play) { PRINTF("\n\n"); // "Old man appeared!! Muhohohohohohohon" PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 親父登場!!むほほほほほほほーん ☆☆☆☆☆ \n" VT_RST); - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; Actor_SetScale(&this->actor, 0.01f); SkelAnime_InitFlex(play, &this->skelAnime, &gObjectOssanSkel, &gObjectOssanAnim_000338, this->jointTable, this->morphTable, 9); diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c index 2e85c4d53b..b5983113fd 100644 --- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c +++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c @@ -59,7 +59,7 @@ static ColliderCylinderInit sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 1, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_1, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index fa7b0d3be7..6d52e4ed9b 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -148,7 +148,7 @@ void EnTa_Init(Actor* thisx, PlayState* play2) { this->blinkTimer = 20; this->blinkFunc = EnTa_BlinkWaitUntilNext; Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.velocity.y = -4.0f; this->actor.minVelocityY = -4.0f; this->actor.gravity = -1.0f; diff --git a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c index f243fc13f3..41041818c0 100644 --- a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c +++ b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c @@ -66,7 +66,7 @@ void EnTakaraMan_Init(Actor* thisx, PlayState* play) { this->originalRoomNum = thisx->room; thisx->room = -1; thisx->world.rot.y = thisx->shape.rot.y = -0x4E20; - thisx->targetMode = 1; + thisx->targetMode = TARGET_MODE_1; this->actionFunc = func_80B176E0; } diff --git a/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/src/overlays/actors/ovl_En_Tg/z_en_tg.c index b95ebe951f..e18b58f0fc 100644 --- a/src/overlays/actors/ovl_En_Tg/z_en_tg.c +++ b/src/overlays/actors/ovl_En_Tg/z_en_tg.c @@ -115,7 +115,7 @@ void EnTg_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; Actor_SetScale(&this->actor, 0.01f); this->nextDialogue = play->state.frames % 2; this->actionFunc = EnTg_SpinIfNotTalking; 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 37c6810cb8..9c67db8ede 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -177,7 +177,7 @@ void EnTite_Init(Actor* thisx, PlayState* play) { EnTite* this = (EnTite*)thisx; Actor_ProcessInitChain(thisx, sInitChain); - thisx->targetMode = 3; + thisx->targetMode = TARGET_MODE_3; Actor_SetScale(thisx, 0.01f); SkelAnime_Init(play, &this->skelAnime, &object_tite_Skel_003A20, &object_tite_Anim_0012E4, this->jointTable, this->morphTable, 25); diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 40045d3323..b7d8b8971d 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -497,7 +497,7 @@ void EnTk_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.gravity = -0.1f; this->currentReward = -1; this->currentSpot = NULL; diff --git a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c index 2f41c55ad2..91bfa379ec 100644 --- a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c +++ b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c @@ -127,7 +127,7 @@ void EnToryo_Init(Actor* thisx, PlayState* play) { Animation_GetLastFrame(sEnToryoAnimation.animation), sEnToryoAnimation.mode, sEnToryoAnimation.morphFrames); this->stateFlags |= 8; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actionFunc = EnToryo_Idle; } diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c index e9cdc93a38..85ffcdb5c8 100644 --- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c +++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c @@ -136,7 +136,7 @@ void EnTp_Init(Actor* thisx, PlayState* play2) { s32 i; Actor_ProcessInitChain(&this->actor, sInitChain); - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; this->actor.colChkInfo.damageTable = &sDamageTable; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 0.14f); this->unk_150 = 0; diff --git a/src/overlays/actors/ovl_En_Trap/z_en_trap.c b/src/overlays/actors/ovl_En_Trap/z_en_trap.c index 1aa70e21b5..a4aebe5869 100644 --- a/src/overlays/actors/ovl_En_Trap/z_en_trap.c +++ b/src/overlays/actors/ovl_En_Trap/z_en_trap.c @@ -112,7 +112,7 @@ void EnTrap_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, thisx, &sCylinderInit); ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 0.0f); - thisx->targetMode = 3; + thisx->targetMode = TARGET_MODE_3; thisx->colChkInfo.mass = 0xFF; } diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c index c5585978c3..1054574ded 100644 --- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c +++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c @@ -131,7 +131,7 @@ void EnWonderItem_Init(Actor* thisx, PlayState* play) { if (this->switchFlag == 0x3F) { this->switchFlag = -1; } - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) { PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ You are Shock! ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); Actor_Kill(&this->actor); diff --git a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c index b51363b764..95687a2964 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c @@ -45,7 +45,7 @@ void EnWonderTalk_Init(Actor* thisx, PlayState* play) { if (this->switchFlag == 0x3F) { this->switchFlag = -1; } - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; if (this->switchFlag >= 0) { if (Flags_GetSwitch(play, this->switchFlag)) { PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ You are Shock! ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); diff --git a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c index ee2fbb4bb5..b2c44c0b69 100644 --- a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c +++ b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c @@ -82,7 +82,7 @@ void EnYabusameMark_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ やぶさめまと ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); this->actor.flags &= ~ACTOR_FLAG_0; this->typeIndex = this->actor.params; - this->actor.targetMode = 5; + this->actor.targetMode = TARGET_MODE_5; PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 種類インデックス \t ☆☆☆☆☆ %d\n" VT_RST, this->typeIndex); switch (this->typeIndex) { case 0: diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index 34dc457e18..e030cef735 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -282,7 +282,7 @@ void EnZf_Init(Actor* thisx, PlayState* play) { f32 posDiff; Actor_ProcessInitChain(thisx, sInitChain); - thisx->targetMode = 3; + thisx->targetMode = TARGET_MODE_3; this->clearFlag = PARAMS_GET_S(thisx->params, 8, 8); /* Strip the top byte of params */ thisx->params &= 0xFF; 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 f63480381a..735f5380ad 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -85,7 +85,7 @@ void EnZl1_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); Actor_SetScale(&this->actor, 0.01f); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 24.0f); - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; if (IS_CUTSCENE_LAYER) { frameCount = Animation_GetLastFrame(&gChildZelda1Anim_00438); 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 3810b7cbeb..949935663e 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -367,7 +367,7 @@ void EnZl4_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.textId = -1; this->eyeExpression = this->mouthExpression = ZL4_MOUTH_NEUTRAL; 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 eb90fce902..20d595c206 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -588,7 +588,7 @@ void EnZo_Init(Actor* thisx, PlayState* play) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENZO_ANIM_2); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->dialogRadius = this->collider.dim.radius + 30.0f; this->trackingMode = NPC_TRACKING_NONE; this->canSpeak = false; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 861301efe4..63dc29fc14 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:163 gc-eu-mq:163 gc-jp:165 gc-jp-ce:165 gc-jp-mq:165 gc-us:165 gc-us-mq:165" +#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-jp:162 gc-jp-ce:162 gc-jp-mq:162 gc-us:162 gc-us-mq:162" #define FLAGS ACTOR_FLAG_4 @@ -829,7 +829,7 @@ static FishingFishInit sFishInits[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), }; @@ -1029,7 +1029,7 @@ void Fishing_Init(Actor* thisx, PlayState* play2) { if (thisx->params == EN_FISH_AQUARIUM) { this->fishState = 100; Actor_ChangeCategory(play, &play->actorCtx, thisx, ACTORCAT_PROP); - thisx->targetMode = 0; + thisx->targetMode = TARGET_MODE_0; thisx->flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; this->lightNode = LightContext_InsertLight(play, &play->lightCtx, &this->lightInfo); } else { diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c index f3f4799a31..eb2bec5252 100644 --- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c +++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c @@ -316,7 +316,7 @@ void ObjSwitch_Init(Actor* thisx, PlayState* play) { if (type == OBJSWITCH_TYPE_CRYSTAL_TARGETABLE) { this->dyna.actor.flags |= ACTOR_FLAG_0; - this->dyna.actor.targetMode = 4; + this->dyna.actor.targetMode = TARGET_MODE_4; } this->dyna.actor.colChkInfo.mass = MASS_IMMOVABLE; diff --git a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c index dcd27116c1..3fec89915e 100644 --- a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c +++ b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c @@ -51,7 +51,7 @@ static ObjTimeblockSizeOptions sSizeOptions[] = { static f32 sRanges[] = { 60.0, 100.0, 140.0, 180.0, 220.0, 260.0, 300.0, 300.0 }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 1800, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_STOP), From acb5c7f20cbe845f5bd71c829dff69e9b715a020 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 5 Sep 2024 08:08:21 -0400 Subject: [PATCH 19/86] Update Room Documentation (#2015) * Update Room Documentation * Write more complete documentation, implement suggestions. * Function name changes; minor comment tweaks * nit * Resolve Dragorn fixes * Resolve Fig suggestions, fix comment wording * fix bss, fig suggestion * bss --- include/functions.h | 12 +- include/z64play.h | 5 +- include/z64scene.h | 23 ++-- src/code/fault_gc.c | 4 +- src/code/fault_gc_drawer.c | 1 + src/code/main.c | 2 +- src/code/z_actor.c | 8 +- src/code/z_demo.c | 16 +-- src/code/z_kankyo.c | 4 +- src/code/z_message.c | 2 +- src/code/z_play.c | 13 +- src/code/z_room.c | 116 ++++++++++++------ src/code/z_scene.c | 12 +- src/code/z_scene_table.c | 82 ++++++------- .../actors/ovl_Bg_Dodoago/z_bg_dodoago.c | 22 ++-- .../ovl_Bg_Mizu_Water/z_bg_mizu_water.c | 10 +- .../ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c | 2 +- .../actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c | 12 +- .../actors/ovl_Bg_Treemouth/z_bg_treemouth.c | 2 +- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 10 +- .../actors/ovl_Demo_Kankyo/z_demo_kankyo.c | 2 +- .../actors/ovl_Door_Shutter/z_door_shutter.c | 12 +- src/overlays/actors/ovl_En_Door/z_en_door.c | 4 +- src/overlays/actors/ovl_En_Holl/z_en_holl.c | 34 ++--- src/overlays/actors/ovl_Fishing/z_fishing.c | 6 +- .../actors/ovl_player_actor/z_player.c | 10 +- tools/disasm/ntsc-1.2/functions.txt | 12 +- 27 files changed, 243 insertions(+), 195 deletions(-) diff --git a/include/functions.h b/include/functions.h index 5810b3edb8..27cbbfd803 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1044,12 +1044,12 @@ void func_80095974(GraphicsContext* gfxCtx); void func_80095AA0(PlayState* play, Room* room, Input* input, s32 arg3); void Room_DrawBackground2D(Gfx** gfxP, void* tex, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 tlutMode, u16 tlutCount, f32 offsetX, f32 offsetY); -void func_80096FD4(PlayState* play, Room* room); -u32 func_80096FE8(PlayState* play, RoomContext* roomCtx); -s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum); -s32 func_800973FC(PlayState* play, RoomContext* roomCtx); +void Room_Init(PlayState* play, Room* room); +u32 Room_SetupFirstRoom(PlayState* play, RoomContext* roomCtx); +s32 Room_RequestNewRoom(PlayState* play, RoomContext* roomCtx, s32 roomNum); +s32 Room_ProcessRoomRequest(PlayState* play, RoomContext* roomCtx); void Room_Draw(PlayState* play, Room* room, u32 flags); -void func_80097534(PlayState* play, RoomContext* roomCtx); +void Room_FinishRoomChange(PlayState* play, RoomContext* roomCtx); void Sample_Destroy(GameState* thisx); void Sample_Init(GameState* thisx); void Inventory_ChangeEquipment(s16 equipment, u16 value); @@ -1061,7 +1061,7 @@ s32 Object_GetSlot(ObjectContext* objectCtx, s16 objectId); s32 Object_IsLoaded(ObjectContext* objectCtx, s32 slot); void func_800981B8(ObjectContext* objectCtx); s32 Scene_ExecuteCommands(PlayState* play, SceneCmd* sceneCmd); -void TransitionActor_InitContext(GameState* state, TransitionActorContext* transiActorCtx); +void Scene_ResetTransitionActorList(GameState* state, TransitionActorList* transitionActors); void Scene_SetTransitionForNextEntrance(PlayState* play); void Scene_Draw(PlayState* play); diff --git a/include/z64play.h b/include/z64play.h index bfea008834..432ecc2b19 100644 --- a/include/z64play.h +++ b/include/z64play.h @@ -63,7 +63,7 @@ typedef struct PlayState { /* 0x10B20 */ AnimTaskQueue animTaskQueue; /* 0x117A4 */ ObjectContext objectCtx; /* 0x11CBC */ RoomContext roomCtx; - /* 0x11D34 */ TransitionActorContext transiActorCtx; + /* 0x11D34 */ TransitionActorList transitionActors; /* 0x11D3C */ void (*playerInit)(Player* player, struct PlayState* play, FlexSkeletonHeader* skelHeader); /* 0x11D40 */ void (*playerUpdate)(Player* player, struct PlayState* play, Input* input); /* 0x11D44 */ int (*isPlayerDroppingFish)(struct PlayState* play); @@ -81,8 +81,7 @@ typedef struct PlayState { /* 0x11DE9 */ u8 haltAllActors; /* 0x11DEA */ u8 spawn; /* 0x11DEB */ u8 numActorEntries; - /* 0x11DEC */ u8 numRooms; - /* 0x11DF0 */ RomFile* roomList; + /* 0x11DEC */ RoomList roomList; /* 0x11DF4 */ ActorEntry* playerEntry; /* 0x11DF8 */ ActorEntry* actorEntryList; /* 0x11DFC */ void* unk_11DFC; diff --git a/include/z64scene.h b/include/z64scene.h index 72fb4ebd8b..87c8927d9f 100644 --- a/include/z64scene.h +++ b/include/z64scene.h @@ -40,10 +40,10 @@ typedef struct TransitionActorEntry { /* 0x0E */ s16 params; } TransitionActorEntry; // size = 0x10 -typedef struct TransitionActorContext { - /* 0x00 */ u8 numActors; +typedef struct TransitionActorList { + /* 0x00 */ u8 count; /* 0x04 */ TransitionActorEntry* list; -} TransitionActorContext; // size = 0x8 +} TransitionActorList; // size = 0x8 typedef struct Spawn { /* 0x00 */ u8 playerEntryIndex; @@ -171,7 +171,7 @@ typedef enum RoomBehaviorType2 { } RoomBehaviorType2; typedef struct Room { - /* 0x00 */ s8 num; + /* 0x00 */ s8 num; // -1 is invalid room /* 0x01 */ u8 unk_01; /* 0x02 */ u8 behaviorType2; /* 0x03 */ u8 behaviorType1; @@ -185,16 +185,21 @@ typedef struct Room { typedef struct RoomContext { /* 0x00 */ Room curRoom; /* 0x14 */ Room prevRoom; - /* 0x28 */ void* bufPtrs[2]; - /* 0x30 */ u8 unk_30; - /* 0x31 */ s8 status; - /* 0x34 */ void* unk_34; + /* 0x28 */ void* bufPtrs[2]; // Start and end pointers for the room buffer. Can be split into two pages, where page 0 is allocated from the start pointer and page 1 is allocated from the end pointer. + /* 0x30 */ u8 activeBufPage; // 0 - First page in memory, 1 - Last page in memory + /* 0x31 */ s8 status; // 0 - Free for new room request, 1 - DmaRequest for a new room is in progress + /* 0x34 */ void* roomRequestAddr; // Pointer to where the requested room segment will be stored /* 0x38 */ DmaRequest dmaRequest; /* 0x58 */ OSMesgQueue loadQueue; /* 0x70 */ OSMesg loadMsg; - /* 0x74 */ s16 unk_74[2]; // context-specific data used by the current scene draw config + /* 0x74 */ s16 drawParams[2]; // context-specific data used by the current scene draw config } RoomContext; // size = 0x78 +typedef struct RoomList { + /* 0x00 */ u8 count; + /* 0x04 */ RomFile* romFiles; // Array of rom addresses for each room in a scene +} RoomList; + #define ROOM_DRAW_OPA (1 << 0) #define ROOM_DRAW_XLU (1 << 1) diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c index 0402573ad3..d3e16ac59c 100644 --- a/src/code/fault_gc.c +++ b/src/code/fault_gc.c @@ -42,8 +42,8 @@ */ #if PLATFORM_GC -#pragma increment_block_number "gc-eu:240 gc-eu-mq:240 gc-eu-mq-dbg:224 gc-jp:240 gc-jp-ce:240 gc-jp-mq:240 gc-us:240" \ - "gc-us-mq:240" +#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-eu-mq-dbg:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224" \ + "gc-us-mq:224" #include "global.h" #include "alloca.h" diff --git a/src/code/fault_gc_drawer.c b/src/code/fault_gc_drawer.c index 5cf088fca6..808b258497 100644 --- a/src/code/fault_gc_drawer.c +++ b/src/code/fault_gc_drawer.c @@ -7,6 +7,7 @@ #include "global.h" #include "fault.h" #include "terminal.h" +#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" #if PLATFORM_GC diff --git a/src/code/main.c b/src/code/main.c index 2487725635..ab274c40ea 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -14,7 +14,7 @@ s32 gScreenWidth = SCREEN_WIDTH; s32 gScreenHeight = SCREEN_HEIGHT; u32 gSystemHeapSize = 0; -#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" +#pragma increment_block_number "gc-eu:208 gc-eu-mq:208 gc-jp:208 gc-jp-ce:208 gc-jp-mq:208 gc-us:208 gc-us-mq:208" PreNmiBuff* gAppNmiBufferPtr; Scheduler gScheduler; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 96617f4962..78710229fe 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1972,7 +1972,7 @@ void func_8002F994(Actor* actor, s32 timer) { // Tests if something hit Jabu Jabu surface, displaying hit splash and playing sfx if true s32 func_8002F9EC(PlayState* play, Actor* actor, CollisionPoly* poly, s32 bgId, Vec3f* pos) { if (SurfaceType_GetFloorType(&play->colCtx, poly, bgId) == FLOOR_TYPE_8) { - play->roomCtx.unk_74[0] = 1; + play->roomCtx.drawParams[0] = 1; CollisionCheck_BlueBlood(play, NULL, pos); Actor_PlaySfx(actor, NA_SE_IT_WALL_HIT_BUYO); return true; @@ -3079,8 +3079,8 @@ void Actor_SpawnTransitionActors(PlayState* play, ActorContext* actorCtx) { u8 numActors; s32 i; - transitionActor = play->transiActorCtx.list; - numActors = play->transiActorCtx.numActors; + transitionActor = play->transitionActors.list; + numActors = play->transitionActors.count; for (i = 0; i < numActors; i++) { if (transitionActor->id >= 0) { @@ -3095,7 +3095,7 @@ void Actor_SpawnTransitionActors(PlayState* play, ActorContext* actorCtx) { (i << TRANSITION_ACTOR_PARAMS_INDEX_SHIFT) + transitionActor->params); transitionActor->id = -transitionActor->id; - numActors = play->transiActorCtx.numActors; + numActors = play->transitionActors.count; } } transitionActor++; diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 6cf3ae941e..f46e33a552 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -310,8 +310,8 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) { break; case CS_MISC_FADE_KOKIRI_GRASS_ENV_ALPHA: - if (play->roomCtx.unk_74[0] <= 127) { - play->roomCtx.unk_74[0] += 4; + if (play->roomCtx.drawParams[0] <= 127) { + play->roomCtx.drawParams[0] += 4; } break; @@ -324,14 +324,14 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) { break; case CS_MISC_DEKU_TREE_DEATH: - if (play->roomCtx.unk_74[0] < 1650) { - play->roomCtx.unk_74[0] += 20; + if (play->roomCtx.drawParams[0] < 1650) { + play->roomCtx.drawParams[0] += 20; } if (csCtx->curFrame == 783) { Sfx_PlaySfxCentered(NA_SE_EV_DEKU_DEATH); } else if (csCtx->curFrame == 717) { - play->roomCtx.unk_74[0] = 0; + play->roomCtx.drawParams[0] = 0; } break; @@ -344,12 +344,12 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) { break; case CS_MISC_TRIFORCE_FLASH: - if (play->roomCtx.unk_74[1] == 0) { + if (play->roomCtx.drawParams[1] == 0) { Sfx_PlaySfxCentered(NA_SE_EV_TRIFORCE_FLASH); } - if (play->roomCtx.unk_74[1] < 255) { - play->roomCtx.unk_74[1] += 5; + if (play->roomCtx.drawParams[1] < 255) { + play->roomCtx.drawParams[1] += 5; } break; diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 49fcbf4357..6a8026cdb9 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -441,8 +441,8 @@ void Environment_Init(PlayState* play2, EnvironmentContext* envCtx, s32 unused) sLightningBolts[i].state = LIGHTNING_BOLT_INACTIVE; } - play->roomCtx.unk_74[0] = 0; - play->roomCtx.unk_74[1] = 0; + play->roomCtx.drawParams[0] = 0; + play->roomCtx.drawParams[1] = 0; for (i = 0; i < ARRAY_COUNT(play->csCtx.actorCues); i++) { play->csCtx.actorCues[i] = NULL; diff --git a/src/code/z_message.c b/src/code/z_message.c index 0f42e5e82f..eff41c44c2 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -8,7 +8,7 @@ #include "n64dd.h" #endif -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" #if PLATFORM_N64 #define OCARINA_BUTTON_A_PRIM_R 80 diff --git a/src/code/z_play.c b/src/code/z_play.c index 4a0309b5fa..99bb024681 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -468,7 +468,8 @@ void Play_Init(GameState* thisx) { Actor_InitContext(this, &this->actorCtx, this->playerEntry); - while (!func_800973FC(this, &this->roomCtx)) { + // Busyloop until the room loads + while (!Room_ProcessRoomRequest(this, &this->roomCtx)) { ; // Empty Loop } @@ -950,7 +951,7 @@ void Play_Update(PlayState* this) { } } else { PLAY_LOG(3606); - func_800973FC(this, &this->roomCtx); + Room_ProcessRoomRequest(this, &this->roomCtx); PLAY_LOG(3612); CollisionCheck_AT(this, &this->colChkCtx); @@ -1524,8 +1525,8 @@ void Play_InitScene(PlayState* this, s32 spawn) { Object_InitContext(this, &this->objectCtx); LightContext_Init(this, &this->lightCtx); - TransitionActor_InitContext(&this->state, &this->transiActorCtx); - func_80096FD4(this, &this->roomCtx.curRoom); + Scene_ResetTransitionActorList(&this->state, &this->transitionActors); + Room_Init(this, &this->roomCtx.curRoom); R_SCENE_CAM_TYPE = SCENE_CAM_TYPE_DEFAULT; gSaveContext.worldMapArea = WORLD_MAP_AREA_HYRULE_FIELD; Scene_ExecuteCommands(this, this->sceneSegment); @@ -1579,7 +1580,7 @@ void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn) { } #endif - size = func_80096FE8(this, &this->roomCtx); + size = Room_SetupFirstRoom(this, &this->roomCtx); PRINTF("ROOM SIZE=%fK\n", size / 1024.0f); } @@ -1913,7 +1914,7 @@ s32 func_800C0D34(PlayState* this, Actor* actor, s16* yaw) { return 0; } - transitionActor = &this->transiActorCtx.list[GET_TRANSITION_ACTOR_INDEX(actor)]; + transitionActor = &this->transitionActors.list[GET_TRANSITION_ACTOR_INDEX(actor)]; frontRoom = transitionActor->sides[0].room; if (frontRoom == transitionActor->sides[1].room) { diff --git a/src/code/z_room.c b/src/code/z_room.c index 5a88f1c281..e0906de17e 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -536,13 +536,18 @@ void Room_DrawImage(PlayState* play, Room* room, u32 flags) { } } -void func_80096FD4(PlayState* play, Room* room) { +void Room_Init(PlayState* play, Room* room) { room->num = -1; room->segment = NULL; } -u32 func_80096FE8(PlayState* play, RoomContext* roomCtx) { - u32 maxRoomSize = 0; +/** + * Allocates memory for rooms and fetches the first room that the player will spawn into. + * + * @return u32 size of the buffer reserved for room data + */ +u32 Room_SetupFirstRoom(PlayState* play, RoomContext* roomCtx) { + u32 roomBufferSize = 0; u32 roomSize; s32 i; s32 j; @@ -553,25 +558,27 @@ u32 func_80096FE8(PlayState* play, RoomContext* roomCtx) { u32 cumulRoomSize; s32 pad; + // Set roomBufferSize to the largest room { - RomFile* roomList = play->roomList; + RomFile* roomList = play->roomList.romFiles; - for (i = 0; i < play->numRooms; i++) { + for (i = 0; i < play->roomList.count; i++) { roomSize = roomList[i].vromEnd - roomList[i].vromStart; PRINTF("ROOM%d size=%d\n", i, roomSize); - if (maxRoomSize < roomSize) { - maxRoomSize = roomSize; + if (roomBufferSize < roomSize) { + roomBufferSize = roomSize; } } } - if ((u32)play->transiActorCtx.numActors != 0) { - RomFile* roomList = play->roomList; - TransitionActorEntry* transitionActor = &play->transiActorCtx.list[0]; + // If there any rooms are connected, find their combined size and update roomBufferSize if larger + if ((u32)play->transitionActors.count != 0) { + RomFile* roomList = play->roomList.romFiles; + TransitionActorEntry* transitionActor = &play->transitionActors.list[0]; - LOG_NUM("game_play->room_rom_address.num", play->numRooms, "../z_room.c", 912); + LOG_NUM("game_play->room_rom_address.num", play->roomList.count, "../z_room.c", 912); - for (j = 0; j < play->transiActorCtx.numActors; j++) { + for (j = 0; j < play->transitionActors.count; j++) { frontRoom = transitionActor->sides[0].room; backRoom = transitionActor->sides[1].room; frontRoomSize = (frontRoom < 0) ? 0 : roomList[frontRoom].vromEnd - roomList[frontRoom].vromStart; @@ -580,32 +587,52 @@ u32 func_80096FE8(PlayState* play, RoomContext* roomCtx) { PRINTF("DOOR%d=<%d> ROOM1=<%d, %d> ROOM2=<%d, %d>\n", j, cumulRoomSize, frontRoom, frontRoomSize, backRoom, backRoomSize); - if (maxRoomSize < cumulRoomSize) { - maxRoomSize = cumulRoomSize; + if (roomBufferSize < cumulRoomSize) { + roomBufferSize = cumulRoomSize; } transitionActor++; } } PRINTF(VT_FGCOL(YELLOW)); - PRINTF(T("部屋バッファサイズ=%08x(%5.1fK)\n", "Room buffer size=%08x(%5.1fK)\n"), maxRoomSize, - maxRoomSize / 1024.0f); - roomCtx->bufPtrs[0] = GAME_STATE_ALLOC(&play->state, maxRoomSize, "../z_room.c", 946); + PRINTF(T("部屋バッファサイズ=%08x(%5.1fK)\n", "Room buffer size=%08x(%5.1fK)\n"), roomBufferSize, + roomBufferSize / 1024.0f); + roomCtx->bufPtrs[0] = GAME_STATE_ALLOC(&play->state, roomBufferSize, "../z_room.c", 946); PRINTF(T("部屋バッファ開始ポインタ=%08x\n", "Room buffer initial pointer=%08x\n"), roomCtx->bufPtrs[0]); - roomCtx->bufPtrs[1] = (void*)((uintptr_t)roomCtx->bufPtrs[0] + maxRoomSize); + roomCtx->bufPtrs[1] = (void*)((uintptr_t)roomCtx->bufPtrs[0] + roomBufferSize); PRINTF(T("部屋バッファ終了ポインタ=%08x\n", "Room buffer end pointer=%08x\n"), roomCtx->bufPtrs[1]); PRINTF(VT_RST); - roomCtx->unk_30 = 0; + roomCtx->activeBufPage = 0; roomCtx->status = 0; frontRoom = gSaveContext.respawnFlag > 0 ? ((void)0, gSaveContext.respawn[gSaveContext.respawnFlag - 1].roomIndex) : play->spawnList[play->spawn].room; - func_8009728C(play, roomCtx, frontRoom); - return maxRoomSize; + // Load into a room for the first time. + // Since curRoom was initialized to `room = -1` and `segment = NULL` in Play_InitScene, the previous room + // will also be initialized to the nulled state when this function completes. + Room_RequestNewRoom(play, roomCtx, frontRoom); + + return roomBufferSize; } -s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum) { +/** + * Tries to create an asynchronous request to transfer room data into memory. + * If successful, the requested room will be loaded into memory and becomes the new current room; the room that was + * current before becomes the previous room. + * + * Room_RequestNewRoom will be blocked from loading new rooms until Room_ProcessRoomRequest completes room + * initialization. + * + * Calling Room_RequestNewRoom outside of Room_SetupFirstRoom will allow for two rooms being initialized simultaneously. + * This allows an actor like ACTOR_EN_HOLL to seamlessly swap the two rooms as the player moves between them. Calling + * Room_FinishRoomChange afterward will finalize the room swap. + * + * @param roomNum is the id of the room to load. roomNum must NOT be the same id as curRoom.num, since this will create + * duplicate actor instances that cannot be cleaned up by calling Room_FinishRoomChange + * @returns bool false if the request could not be created. + */ +s32 Room_RequestNewRoom(PlayState* play, RoomContext* roomCtx, s32 roomNum) { if (roomCtx->status == 0) { u32 size; @@ -614,11 +641,11 @@ s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum) { roomCtx->curRoom.segment = NULL; roomCtx->status = 1; - ASSERT(roomNum < play->numRooms, "read_room_ID < game_play->room_rom_address.num", "../z_room.c", 1009); + ASSERT(roomNum < play->roomList.count, "read_room_ID < game_play->room_rom_address.num", "../z_room.c", 1009); - size = play->roomList[roomNum].vromEnd - play->roomList[roomNum].vromStart; - roomCtx->unk_34 = - (void*)ALIGN16((uintptr_t)roomCtx->bufPtrs[roomCtx->unk_30] - ((size + 8) * roomCtx->unk_30 + 7)); + size = play->roomList.romFiles[roomNum].vromEnd - play->roomList.romFiles[roomNum].vromStart; + roomCtx->roomRequestAddr = (void*)ALIGN16((uintptr_t)roomCtx->bufPtrs[roomCtx->activeBufPage] - + ((size + 8) * roomCtx->activeBufPage + 7)); osCreateMesgQueue(&roomCtx->loadQueue, &roomCtx->loadMsg, 1); @@ -626,37 +653,44 @@ s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum) { if ((B_80121220 != NULL) && (B_80121220->unk_08 != NULL)) { B_80121220->unk_08(play, roomCtx, roomNum); } else { - DMA_REQUEST_ASYNC(&roomCtx->dmaRequest, roomCtx->unk_34, play->roomList[roomNum].vromStart, size, 0, - &roomCtx->loadQueue, NULL, "../z_room.c", 1036); + DMA_REQUEST_ASYNC(&roomCtx->dmaRequest, roomCtx->roomRequestAddr, + play->roomList.romFiles[roomNum].vromStart, size, 0, &roomCtx->loadQueue, NULL, + "../z_room.c", 1036); } #else - DMA_REQUEST_ASYNC(&roomCtx->dmaRequest, roomCtx->unk_34, play->roomList[roomNum].vromStart, size, 0, - &roomCtx->loadQueue, NULL, "../z_room.c", 1036); + DMA_REQUEST_ASYNC(&roomCtx->dmaRequest, roomCtx->roomRequestAddr, play->roomList.romFiles[roomNum].vromStart, + size, 0, &roomCtx->loadQueue, NULL, "../z_room.c", 1036); #endif - roomCtx->unk_30 ^= 1; + roomCtx->activeBufPage ^= 1; return true; } return false; } -s32 func_800973FC(PlayState* play, RoomContext* roomCtx) { +/** + * Completes room initialization for the room requested by a call to Room_RequestNewRoom. + * This function does not block the thread if the room data is still being transferred. + * + * @returns bool false if a dma transfer is in progress. + */ +s32 Room_ProcessRoomRequest(PlayState* play, RoomContext* roomCtx) { if (roomCtx->status == 1) { if (osRecvMesg(&roomCtx->loadQueue, NULL, OS_MESG_NOBLOCK) == 0) { roomCtx->status = 0; - roomCtx->curRoom.segment = roomCtx->unk_34; - gSegments[3] = VIRTUAL_TO_PHYSICAL(roomCtx->unk_34); + roomCtx->curRoom.segment = roomCtx->roomRequestAddr; + gSegments[3] = VIRTUAL_TO_PHYSICAL(roomCtx->curRoom.segment); Scene_ExecuteCommands(play, roomCtx->curRoom.segment); Player_SetBootData(play, GET_PLAYER(play)); Actor_SpawnTransitionActors(play, &play->actorCtx); } else { - return 0; + return false; } } - return 1; + return true; } void Room_Draw(PlayState* play, Room* room, u32 flags) { @@ -668,9 +702,17 @@ void Room_Draw(PlayState* play, Room* room, u32 flags) { } } -void func_80097534(PlayState* play, RoomContext* roomCtx) { +/** + * Finalizes a swap between two rooms. + * + * When a new room is created with Room_RequestNewRoom, the previous room and its actors remain in memory. This allows + * an actor like ACTOR_EN_HOLL to seamlessly swap the two rooms as the player moves between them. + */ +void Room_FinishRoomChange(PlayState* play, RoomContext* roomCtx) { + // Delete the previous room roomCtx->prevRoom.num = -1; roomCtx->prevRoom.segment = NULL; + func_80031B14(play, &play->actorCtx); Actor_SpawnTransitionActors(play, &play->actorCtx); Map_InitRoomData(play, roomCtx->curRoom.num); diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 83714b8a4d..f72c06cada 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -230,8 +230,8 @@ BAD_RETURN(s32) Scene_CommandCollisionHeader(PlayState* play, SceneCmd* cmd) { } BAD_RETURN(s32) Scene_CommandRoomList(PlayState* play, SceneCmd* cmd) { - play->numRooms = cmd->roomList.length; - play->roomList = SEGMENTED_TO_VIRTUAL(cmd->roomList.data); + play->roomList.count = cmd->roomList.length; + play->roomList.romFiles = SEGMENTED_TO_VIRTUAL(cmd->roomList.data); } BAD_RETURN(s32) Scene_CommandSpawnList(PlayState* play, SceneCmd* cmd) { @@ -327,12 +327,12 @@ BAD_RETURN(s32) Scene_CommandPathList(PlayState* play, SceneCmd* cmd) { } BAD_RETURN(s32) Scene_CommandTransitionActorEntryList(PlayState* play, SceneCmd* cmd) { - play->transiActorCtx.numActors = cmd->transiActorList.length; - play->transiActorCtx.list = SEGMENTED_TO_VIRTUAL(cmd->transiActorList.data); + play->transitionActors.count = cmd->transiActorList.length; + play->transitionActors.list = SEGMENTED_TO_VIRTUAL(cmd->transiActorList.data); } -void TransitionActor_InitContext(GameState* state, TransitionActorContext* transiActorCtx) { - transiActorCtx->numActors = 0; +void Scene_ResetTransitionActorList(GameState* state, TransitionActorList* transitionActors) { + transitionActors->count = 0; } BAD_RETURN(s32) Scene_CommandLightSettingsList(PlayState* play, SceneCmd* cmd) { diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c index 6767993f0c..ed18c33c62 100644 --- a/src/code/z_scene_table.c +++ b/src/code/z_scene_table.c @@ -289,12 +289,12 @@ void Scene_DrawConfigDodongosCavern(PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x0B, displayListHead); gDPPipeSync(displayListHead++); - gDPSetEnvColor(displayListHead++, 255, 255, 255, play->roomCtx.unk_74[BGDODOAGO_EYE_LEFT]); + gDPSetEnvColor(displayListHead++, 255, 255, 255, play->roomCtx.drawParams[BGDODOAGO_EYE_LEFT]); gSPEndDisplayList(displayListHead++); gSPSegment(POLY_OPA_DISP++, 0x0C, displayListHead); gDPPipeSync(displayListHead++); - gDPSetEnvColor(displayListHead++, 255, 255, 255, play->roomCtx.unk_74[BGDODOAGO_EYE_RIGHT]); + gDPSetEnvColor(displayListHead++, 255, 255, 255, play->roomCtx.drawParams[BGDODOAGO_EYE_RIGHT]); gSPEndDisplayList(displayListHead++); CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4956); @@ -306,7 +306,7 @@ void Scene_DrawConfigTempleOfTime(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5069); - temp = play->roomCtx.unk_74[0] / 255.0f; + temp = play->roomCtx.drawParams[0] / 255.0f; gSPSegment(POLY_XLU_DISP++, 0x08, displayListHead); gSPSegment(POLY_OPA_DISP++, 0x08, displayListHead); @@ -323,7 +323,7 @@ void Scene_DrawConfigTempleOfTime(PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x0A, displayListHead); gSPSegment(POLY_XLU_DISP++, 0x0A, displayListHead); gDPPipeSync(displayListHead++); - gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.unk_74[0]); + gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.drawParams[0]); gSPEndDisplayList(displayListHead++); gSPSegment(POLY_OPA_DISP++, 0x0B, displayListHead); @@ -331,7 +331,7 @@ void Scene_DrawConfigTempleOfTime(PlayState* play) { gDPSetPrimColor(displayListHead++, 0, 0, 89 + (u8)(166.0f * temp), 89 + (u8)(166.0f * temp), 89 + (u8)(166.0f * temp), 255); gDPPipeSync(displayListHead++); - gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.unk_74[0]); + gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.drawParams[0]); gSPEndDisplayList(displayListHead++); gSPSegment(POLY_OPA_DISP++, 0x0C, displayListHead); @@ -339,13 +339,13 @@ void Scene_DrawConfigTempleOfTime(PlayState* play) { gDPSetPrimColor(displayListHead++, 0, 0, 255 + (u8)(179.0f * temp), 255 + (u8)(179.0f * temp), 255 + (u8)(179.0f * temp), 255); gDPPipeSync(displayListHead++); - gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.unk_74[0]); + gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.drawParams[0]); gSPEndDisplayList(displayListHead++); gSPSegment(POLY_OPA_DISP++, 0x0D, displayListHead); gSPSegment(POLY_XLU_DISP++, 0x0D, displayListHead); gDPPipeSync(displayListHead++); - gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.unk_74[1]); + gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.drawParams[1]); gSPEndDisplayList(displayListHead); CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5145); @@ -539,8 +539,8 @@ void Scene_DrawConfigWaterTemple(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5535); - spB0 = (play->roomCtx.unk_74[1] >> 8) & 0xFF; - spAC = play->roomCtx.unk_74[1] & 0xFF; + spB0 = (play->roomCtx.drawParams[1] >> 8) & 0xFF; + spAC = play->roomCtx.drawParams[1] & 0xFF; gameplayFrames = play->gameplayFrames; #if !OOT_MQ @@ -613,7 +613,7 @@ void Scene_DrawConfigWaterTempleBoss(PlayState* play) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32)); gDPPipeSync(POLY_OPA_DISP++); - gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, play->roomCtx.unk_74[0]); + gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, play->roomCtx.drawParams[0]); gDPPipeSync(POLY_XLU_DISP++); gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 145); @@ -913,7 +913,7 @@ void Scene_DrawConfigFishingPond(PlayState* play) { gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScrollPrimColor(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32, 255, 255, - 255, play->roomCtx.unk_74[0] + 127)); + 255, play->roomCtx.drawParams[0] + 127)); gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128); @@ -1093,16 +1093,16 @@ void Scene_DrawConfigHyruleField(PlayState* play) { gSPEndDisplayList(displayListHead++); } else { if (gSaveContext.save.dayTime > CLOCK_TIME(18, 30)) { - if (play->roomCtx.unk_74[0] != 255) { - Math_StepToS(&play->roomCtx.unk_74[0], 255, 5); + if (play->roomCtx.drawParams[0] != 255) { + Math_StepToS(&play->roomCtx.drawParams[0], 255, 5); } } else if (gSaveContext.save.dayTime >= CLOCK_TIME(6, 0)) { - if (play->roomCtx.unk_74[0] != 0) { - Math_StepToS(&play->roomCtx.unk_74[0], 0, 10); + if (play->roomCtx.drawParams[0] != 0) { + Math_StepToS(&play->roomCtx.drawParams[0], 0, 10); } } - gDPSetPrimColor(displayListHead++, 0, 0, 255, 255, 255, play->roomCtx.unk_74[0]); + gDPSetPrimColor(displayListHead++, 0, 0, 255, 255, 255, play->roomCtx.drawParams[0]); gSPDisplayList(displayListHead++, spot00_room_0DL_012B20); gSPEndDisplayList(displayListHead++); } @@ -1187,9 +1187,9 @@ void Scene_DrawConfigKokiriForest(PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128); if (gSaveContext.sceneLayer == 4) { - spA3 = 255 - (u8)play->roomCtx.unk_74[0]; + spA3 = 255 - (u8)play->roomCtx.drawParams[0]; } else if (gSaveContext.sceneLayer == 6) { - spA0 = play->roomCtx.unk_74[0] + 500; + spA0 = play->roomCtx.drawParams[0] + 500; } else if ((!IS_CUTSCENE_LAYER || LINK_IS_ADULT) && GET_EVENTCHKINF(EVENTCHKINF_07)) { spA0 = 2150; } @@ -1206,8 +1206,8 @@ void Scene_DrawConfigKokiriForest(PlayState* play) { gSPEndDisplayList(displayListHead++); gSPSegment(POLY_OPA_DISP++, 0x0C, - Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, (s16)(-play->roomCtx.unk_74[0] * 0.02f), 32, 16, - 1, 0, (s16)(-play->roomCtx.unk_74[0] * 0.02f), 32, 16)); + Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, (s16)(-play->roomCtx.drawParams[0] * 0.02f), 32, + 16, 1, 0, (s16)(-play->roomCtx.drawParams[0] * 0.02f), 32, 16)); CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7044); } @@ -1218,16 +1218,16 @@ void Scene_DrawConfigLakeHylia(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7058); if (IS_CUTSCENE_LAYER || (LINK_IS_ADULT && !GET_EVENTCHKINF(EVENTCHKINF_69))) { - play->roomCtx.unk_74[0] = 87; + play->roomCtx.drawParams[0] = 87; } gameplayFrames = play->gameplayFrames; gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, G_TX_RENDERTILE, gameplayFrames, gameplayFrames, 32, 32, 1, - 0, 0, 32, 32, 0, 0, 0, play->roomCtx.unk_74[0] + 168)); + 0, 0, 32, 32, 0, 0, 0, play->roomCtx.drawParams[0] + 168)); gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, G_TX_RENDERTILE, -gameplayFrames, -gameplayFrames, 32, 32, - 1, 0, 0, 16, 64, 0, 0, 0, play->roomCtx.unk_74[0] + 168)); + 1, 0, 0, 16, 64, 0, 0, 0, play->roomCtx.drawParams[0] + 168)); gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, 128); @@ -1341,12 +1341,12 @@ void Scene_DrawConfigLostWoods(PlayState* play) { gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128); - if ((play->roomCtx.unk_74[0] == 0) && (INV_CONTENT(ITEM_COJIRO) == ITEM_COJIRO)) { - if (play->roomCtx.unk_74[1] == 50) { + if ((play->roomCtx.drawParams[0] == 0) && (INV_CONTENT(ITEM_COJIRO) == ITEM_COJIRO)) { + if (play->roomCtx.drawParams[1] == 50) { Player_PlaySfx(GET_PLAYER(play), NA_SE_EV_CHICKEN_CRY_M); - play->roomCtx.unk_74[0] = 1; + play->roomCtx.drawParams[0] = 1; } - play->roomCtx.unk_74[1]++; + play->roomCtx.drawParams[1]++; } CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7309); @@ -1441,16 +1441,16 @@ void Scene_DrawConfigDeathMountainTrail(PlayState* play) { gSPEndDisplayList(displayListHead++); } else { if (gSaveContext.save.dayTime > CLOCK_TIME(18, 0)) { - if (play->roomCtx.unk_74[0] != 255) { - Math_StepToS(&play->roomCtx.unk_74[0], 255, 5); + if (play->roomCtx.drawParams[0] != 255) { + Math_StepToS(&play->roomCtx.drawParams[0], 255, 5); } } else if (gSaveContext.save.dayTime >= CLOCK_TIME(6, 0)) { - if (play->roomCtx.unk_74[0] != 0) { - Math_StepToS(&play->roomCtx.unk_74[0], 0, 10); + if (play->roomCtx.drawParams[0] != 0) { + Math_StepToS(&play->roomCtx.drawParams[0], 0, 10); } } - gDPSetPrimColor(displayListHead++, 0, 0, 255, 255, 255, play->roomCtx.unk_74[0]); + gDPSetPrimColor(displayListHead++, 0, 0, 255, 255, 255, play->roomCtx.drawParams[0]); gSPDisplayList(displayListHead++, spot16_room_0DL_00AA48); gSPEndDisplayList(displayListHead++); } @@ -1604,27 +1604,27 @@ void Scene_DrawConfigJabuJabu(PlayState* play) { 1.f + (1 * temp * Math_CosS(D_8012A39C))); View_SetDistortionSpeed(&play->view, 0.95f); - switch (play->roomCtx.unk_74[0]) { + switch (play->roomCtx.drawParams[0]) { case 0: break; case 1: - if (play->roomCtx.unk_74[1] < 1200) { - play->roomCtx.unk_74[1] += 200; + if (play->roomCtx.drawParams[1] < 1200) { + play->roomCtx.drawParams[1] += 200; } else { - play->roomCtx.unk_74[0]++; + play->roomCtx.drawParams[0]++; } break; case 2: - if (play->roomCtx.unk_74[1] > 0) { - play->roomCtx.unk_74[1] -= 30; + if (play->roomCtx.drawParams[1] > 0) { + play->roomCtx.drawParams[1] -= 30; } else { - play->roomCtx.unk_74[1] = 0; - play->roomCtx.unk_74[0] = 0; + play->roomCtx.drawParams[1] = 0; + play->roomCtx.drawParams[0] = 0; } break; } - D_8012A398 += 0.15f + (play->roomCtx.unk_74[1] * 0.001f); + D_8012A398 += 0.15f + (play->roomCtx.drawParams[1] * 0.001f); } if (play->roomCtx.curRoom.num == 2) { diff --git a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c index 419f214972..0c1b1b564e 100644 --- a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c +++ b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c @@ -121,7 +121,7 @@ void BgDodoago_Init(Actor* thisx, PlayState* play) { if (Flags_GetSwitch(play, PARAMS_GET_U(this->dyna.actor.params, 0, 6))) { BgDodoago_SetupAction(this, BgDodoago_DoNothing); this->dyna.actor.shape.rot.x = 0x1333; - play->roomCtx.unk_74[BGDODOAGO_EYE_LEFT] = play->roomCtx.unk_74[BGDODOAGO_EYE_RIGHT] = 255; + play->roomCtx.drawParams[BGDODOAGO_EYE_LEFT] = play->roomCtx.drawParams[BGDODOAGO_EYE_RIGHT] = 255; return; } @@ -154,15 +154,15 @@ void BgDodoago_WaitExplosives(BgDodoago* this, PlayState* play) { ? BGDODOAGO_EYE_RIGHT : BGDODOAGO_EYE_LEFT; - if (((play->roomCtx.unk_74[BGDODOAGO_EYE_LEFT] == 255) && (this->state == BGDODOAGO_EYE_RIGHT)) || - ((play->roomCtx.unk_74[BGDODOAGO_EYE_RIGHT] == 255) && (this->state == BGDODOAGO_EYE_LEFT))) { + if (((play->roomCtx.drawParams[BGDODOAGO_EYE_LEFT] == 255) && (this->state == BGDODOAGO_EYE_RIGHT)) || + ((play->roomCtx.drawParams[BGDODOAGO_EYE_RIGHT] == 255) && (this->state == BGDODOAGO_EYE_LEFT))) { Flags_SetSwitch(play, PARAMS_GET_U(this->dyna.actor.params, 0, 6)); this->state = 0; Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); BgDodoago_SetupAction(this, BgDodoago_OpenJaw); OnePointCutscene_Init(play, 3380, 160, &this->dyna.actor, CAM_ID_MAIN); - } else if (play->roomCtx.unk_74[this->state] == 0) { + } else if (play->roomCtx.drawParams[this->state] == 0) { OnePointCutscene_Init(play, 3065, 40, &this->dyna.actor, CAM_ID_MAIN); BgDodoago_SetupAction(this, BgDodoago_LightOneEye); Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, @@ -212,14 +212,14 @@ void BgDodoago_OpenJaw(BgDodoago* this, PlayState* play) { s32 i; // make both eyes red (one already is) - if (play->roomCtx.unk_74[BGDODOAGO_EYE_LEFT] < 255) { - play->roomCtx.unk_74[BGDODOAGO_EYE_LEFT] += 5; + if (play->roomCtx.drawParams[BGDODOAGO_EYE_LEFT] < 255) { + play->roomCtx.drawParams[BGDODOAGO_EYE_LEFT] += 5; } - if (play->roomCtx.unk_74[BGDODOAGO_EYE_RIGHT] < 255) { - play->roomCtx.unk_74[BGDODOAGO_EYE_RIGHT] += 5; + if (play->roomCtx.drawParams[BGDODOAGO_EYE_RIGHT] < 255) { + play->roomCtx.drawParams[BGDODOAGO_EYE_RIGHT] += 5; } - if (play->roomCtx.unk_74[BGDODOAGO_EYE_LEFT] != 255 || play->roomCtx.unk_74[BGDODOAGO_EYE_RIGHT] != 255) { + if (play->roomCtx.drawParams[BGDODOAGO_EYE_LEFT] != 255 || play->roomCtx.drawParams[BGDODOAGO_EYE_RIGHT] != 255) { sTimer--; return; } @@ -260,9 +260,9 @@ void BgDodoago_DoNothing(BgDodoago* this, PlayState* play) { } void BgDodoago_LightOneEye(BgDodoago* this, PlayState* play) { - play->roomCtx.unk_74[this->state] += 5; + play->roomCtx.drawParams[this->state] += 5; - if (play->roomCtx.unk_74[this->state] == 255) { + if (play->roomCtx.drawParams[this->state] == 255) { BgDodoago_SetupAction(this, BgDodoago_WaitExplosives); } } diff --git a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c index e6f353eacf..141a4617bd 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c @@ -238,7 +238,7 @@ void BgMizuWater_ChangeWaterLevel(BgMizuWater* this, PlayState* play) { } if (Math_StepToF(&this->actor.world.pos.y, this->targetY, 5.0f)) { - play->roomCtx.unk_74[0] = 0; + play->roomCtx.drawParams[0] = 0; this->actionFunc = BgMizuWater_WaitForAction; Message_CloseTextbox(play); } @@ -253,7 +253,7 @@ void BgMizuWater_ChangeWaterLevel(BgMizuWater* this, PlayState* play) { this->targetY = this->baseY; } if (Math_StepToF(&this->actor.world.pos.y, this->targetY, 1.0f)) { - play->roomCtx.unk_74[0] = 0; + play->roomCtx.drawParams[0] = 0; this->actionFunc = BgMizuWater_WaitForAction; } waterBoxes[6].ySurface = this->actor.world.pos.y; @@ -265,7 +265,7 @@ void BgMizuWater_ChangeWaterLevel(BgMizuWater* this, PlayState* play) { this->targetY = this->baseY; } if (Math_StepToF(&this->actor.world.pos.y, this->targetY, 1.0f)) { - play->roomCtx.unk_74[0] = 0; + play->roomCtx.drawParams[0] = 0; this->actionFunc = BgMizuWater_WaitForAction; } waterBoxes[8].ySurface = this->actor.world.pos.y; @@ -277,7 +277,7 @@ void BgMizuWater_ChangeWaterLevel(BgMizuWater* this, PlayState* play) { this->targetY = this->baseY; } if (Math_StepToF(&this->actor.world.pos.y, this->targetY, 1.0f)) { - play->roomCtx.unk_74[0] = 0; + play->roomCtx.drawParams[0] = 0; this->actionFunc = BgMizuWater_WaitForAction; } waterBoxes[16].ySurface = this->actor.world.pos.y; @@ -323,7 +323,7 @@ void BgMizuWater_Update(Actor* thisx, PlayState* play) { unk1 = 255 - (s32)((posY - WATER_TEMPLE_WATER_F2_Y) / (WATER_TEMPLE_WATER_F3_Y - WATER_TEMPLE_WATER_F2_Y) * (255 - 160)); } - play->roomCtx.unk_74[1] = ((u8)unk0 << 8) | (unk1 & 0xFF); + play->roomCtx.drawParams[1] = ((u8)unk0 << 8) | (unk1 & 0xFF); } this->actionFunc(this, play); diff --git a/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c b/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c index 61cd9da383..61a3603baa 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c +++ b/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c @@ -105,7 +105,7 @@ void func_808BA018(Actor* thisx, PlayState* play) { } void func_808BA204(BgTokiHikari* this, PlayState* play) { - if (play->roomCtx.unk_74[1] != 0) { + if (play->roomCtx.drawParams[1] != 0) { this->actionFunc = func_808BA22C; } } diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c index 2a689189c9..e4106619a6 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c @@ -77,7 +77,7 @@ void BgTokiSwd_Init(Actor* thisx, PlayState* play) { } if (gSaveContext.sceneLayer == 5) { - play->roomCtx.unk_74[0] = 0xFF; + play->roomCtx.drawParams[0] = 0xFF; } Collider_InitCylinder(play, &this->collider); @@ -119,10 +119,10 @@ void func_808BAF40(BgTokiSwd* this, PlayState* play) { } } if (gSaveContext.sceneLayer == 5) { - if (play->roomCtx.unk_74[0] > 0) { - play->roomCtx.unk_74[0]--; + if (play->roomCtx.drawParams[0] > 0) { + play->roomCtx.drawParams[0]--; } else { - play->roomCtx.unk_74[0] = 0; + play->roomCtx.drawParams[0] = 0; } } } @@ -146,8 +146,8 @@ void func_808BB0AC(BgTokiSwd* this, PlayState* play) { } void func_808BB128(BgTokiSwd* this, PlayState* play) { - if (CutsceneFlags_Get(play, 1) && (play->roomCtx.unk_74[0] < 0xFF)) { - play->roomCtx.unk_74[0] += 5; + if (CutsceneFlags_Get(play, 1) && (play->roomCtx.drawParams[0] < 0xFF)) { + play->roomCtx.drawParams[0] += 5; } } diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c index d1748fafc0..4edc3a4e3c 100644 --- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c +++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c @@ -241,7 +241,7 @@ void BgTreemouth_Draw(Actor* thisx, PlayState* play) { } if (gSaveContext.sceneLayer == 6) { - alpha = (play->roomCtx.unk_74[0] + 0x1F4); + alpha = (play->roomCtx.drawParams[0] + 0x1F4); } gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, alpha * 0.1f); diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index a833dbb523..a5616563d7 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -337,7 +337,7 @@ void BossMo_Init(Actor* thisx, PlayState* play2) { Flags_SetSwitch(play, 0x14); sMorphaCore = this; MO_WATER_LEVEL(play) = this->waterLevel = MO_WATER_LEVEL(play); - play->roomCtx.unk_74[0] = 0xA0; + play->roomCtx.drawParams[0] = 0xA0; play->specialEffects = sEffects; for (i = 0; i < BOSS_MO_EFFECT_COUNT; i++) { sEffects[i].type = MO_FX_NONE; @@ -357,7 +357,7 @@ void BossMo_Init(Actor* thisx, PlayState* play2) { Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, 0.0f, -280.0f, 0.0f, 0, 0, 0, WARP_DUNGEON_ADULT); Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_B_HEART, -200.0f, -280.0f, 0.0f, 0, 0, 0, 0); - play->roomCtx.unk_74[0] = 0xFF; + play->roomCtx.drawParams[0] = 0xFF; MO_WATER_LEVEL(play) = -500; return; } @@ -1711,9 +1711,9 @@ void BossMo_DeathCs(BossMo* this, PlayState* play) { } } if (sMorphaCore->waterLevel < -200.0f) { - play->roomCtx.unk_74[0]++; - if (play->roomCtx.unk_74[0] >= 0xFF) { - play->roomCtx.unk_74[0] = 0xFF; + play->roomCtx.drawParams[0]++; + if (play->roomCtx.drawParams[0] >= 0xFF) { + play->roomCtx.drawParams[0] = 0xFF; } } if (sMorphaCore->waterLevel < -250.0f) { diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c index cd106c8519..16d4fa28c9 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c @@ -236,7 +236,7 @@ void DemoKankyo_Init(Actor* thisx, PlayState* play) { Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_TOKI, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 0x0000); } else { - play->roomCtx.unk_74[1] = 0xFF; + play->roomCtx.drawParams[1] = 0xFF; Actor_Kill(&this->actor); } break; diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c index 7a5298ebd6..64be9c8321 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -350,7 +350,7 @@ void DoorShutter_SetupAction(DoorShutter* this, DoorShutterActionFunc actionFunc * @return true if the door is barred */ s32 DoorShutter_SetupDoor(DoorShutter* this, PlayState* play) { - TransitionActorEntry* transitionEntry = &play->transiActorCtx.list[GET_TRANSITION_ACTOR_INDEX(&this->dyna.actor)]; + TransitionActorEntry* transitionEntry = &play->transitionActors.list[GET_TRANSITION_ACTOR_INDEX(&this->dyna.actor)]; s8 frontRoom = transitionEntry->sides[0].room; s32 doorType = this->doorType; DoorShutterStyleInfo* styleInfo = &sStyleInfo[this->styleType]; @@ -462,7 +462,7 @@ void DoorShutter_Destroy(Actor* thisx, PlayState* play) { if (this->dyna.actor.room >= 0) { s32 transitionActorId = GET_TRANSITION_ACTOR_INDEX(&this->dyna.actor); - play->transiActorCtx.list[transitionActorId].id *= -1; + play->transitionActors.list[transitionActorId].id *= -1; } } @@ -801,7 +801,7 @@ void DoorShutter_SetupClosed(DoorShutter* this, PlayState* play) { Vec3f relPlayerPos; Actor_WorldToActorCoords(&this->dyna.actor, &relPlayerPos, &player->actor.world.pos); - this->dyna.actor.room = play->transiActorCtx.list[GET_TRANSITION_ACTOR_INDEX(&this->dyna.actor)] + this->dyna.actor.room = play->transitionActors.list[GET_TRANSITION_ACTOR_INDEX(&this->dyna.actor)] .sides[(relPlayerPos.z < 0.0f) ? 0 : 1] .room; if (room != this->dyna.actor.room) { @@ -809,9 +809,9 @@ void DoorShutter_SetupClosed(DoorShutter* this, PlayState* play) { play->roomCtx.curRoom = play->roomCtx.prevRoom; play->roomCtx.prevRoom = tempRoom; - play->roomCtx.unk_30 ^= 1; + play->roomCtx.activeBufPage ^= 1; } - func_80097534(play, &play->roomCtx); + Room_FinishRoomChange(play, &play->roomCtx); Play_SetupRespawnPoint(play, RESPAWN_MODE_DOWN, 0x0EFF); } this->isActive = false; @@ -1012,7 +1012,7 @@ void DoorShutter_Draw(Actor* thisx, PlayState* play) { } else { if (gfxInfo->barsDL != NULL) { TransitionActorEntry* transitionEntry = - &play->transiActorCtx.list[GET_TRANSITION_ACTOR_INDEX(&this->dyna.actor)]; + &play->transitionActors.list[GET_TRANSITION_ACTOR_INDEX(&this->dyna.actor)]; if (play->roomCtx.prevRoom.num >= 0 || transitionEntry->sides[0].room == transitionEntry->sides[1].room) { diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index 0dca15d850..590337ed70 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -166,7 +166,7 @@ void EnDoor_Destroy(Actor* thisx, PlayState* play) { TransitionActorEntry* transitionEntry; EnDoor* this = (EnDoor*)thisx; - transitionEntry = &play->transiActorCtx.list[GET_TRANSITION_ACTOR_INDEX(&this->actor)]; + transitionEntry = &play->transitionActors.list[GET_TRANSITION_ACTOR_INDEX(&this->actor)]; if (transitionEntry->id < 0) { transitionEntry->id = -transitionEntry->id; } @@ -334,7 +334,7 @@ s32 EnDoor_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* TransitionActorEntry* transitionEntry; Gfx** doorDLists = sDoorDLists[this->dListIndex]; - transitionEntry = &play->transiActorCtx.list[GET_TRANSITION_ACTOR_INDEX(&this->actor)]; + transitionEntry = &play->transitionActors.list[GET_TRANSITION_ACTOR_INDEX(&this->actor)]; rot->z += this->actor.world.rot.y; if ((play->roomCtx.prevRoom.num >= 0) || (transitionEntry->sides[0].room == transitionEntry->sides[1].room)) { // Draw the side of the door that is visible to the camera diff --git a/src/overlays/actors/ovl_En_Holl/z_en_holl.c b/src/overlays/actors/ovl_En_Holl/z_en_holl.c index bc5d25a168..9b6619730a 100644 --- a/src/overlays/actors/ovl_En_Holl/z_en_holl.c +++ b/src/overlays/actors/ovl_En_Holl/z_en_holl.c @@ -133,7 +133,7 @@ void EnHoll_Init(Actor* thisx, PlayState* play) { void EnHoll_Destroy(Actor* thisx, PlayState* play) { s32 transitionActorIndex = GET_TRANSITION_ACTOR_INDEX(thisx); - TransitionActorEntry* transitionEntry = &play->transiActorCtx.list[transitionActorIndex]; + TransitionActorEntry* transitionEntry = &play->transitionActors.list[transitionActorIndex]; transitionEntry->id = -transitionEntry->id; } @@ -145,7 +145,7 @@ void EnHoll_SwapRooms(PlayState* play) { tempRoom = roomCtx->curRoom; roomCtx->curRoom = roomCtx->prevRoom; roomCtx->prevRoom = tempRoom; - play->roomCtx.unk_30 ^= 1; + play->roomCtx.activeBufPage ^= 1; } /** @@ -196,14 +196,14 @@ void EnHoll_HorizontalVisibleNarrow(EnHoll* this, PlayState* play) { transitionActorIndex = GET_TRANSITION_ACTOR_INDEX(&this->actor); if (orthogonalDistToPlayer > sHorizontalVisibleNarrowTriggerDists[triggerDistsIndex][1]) { if (play->roomCtx.prevRoom.num >= 0 && play->roomCtx.status == 0) { - this->actor.room = play->transiActorCtx.list[transitionActorIndex].sides[this->side].room; + this->actor.room = play->transitionActors.list[transitionActorIndex].sides[this->side].room; EnHoll_SwapRooms(play); - func_80097534(play, &play->roomCtx); + Room_FinishRoomChange(play, &play->roomCtx); } } else { - this->actor.room = play->transiActorCtx.list[transitionActorIndex].sides[this->side ^ 1].room; + this->actor.room = play->transitionActors.list[transitionActorIndex].sides[this->side ^ 1].room; if (play->roomCtx.prevRoom.num < 0) { - func_8009728C(play, &play->roomCtx, this->actor.room); + Room_RequestNewRoom(play, &play->roomCtx, this->actor.room); } else { this->planeAlpha = (255.0f / (sHorizontalVisibleNarrowTriggerDists[triggerDistsIndex][2] - @@ -239,14 +239,14 @@ void EnHoll_HorizontalInvisible(EnHoll* this, PlayState* play) { orthogonalDistToSubject > ENHOLL_H_INVISIBLE_LOAD_DEPTH_MIN))) { s32 transitionActorIndex = GET_TRANSITION_ACTOR_INDEX(&this->actor); s32 side = (relSubjectPos.z < 0.0f) ? 0 : 1; - TransitionActorEntry* transitionEntry = &play->transiActorCtx.list[transitionActorIndex]; + TransitionActorEntry* transitionEntry = &play->transitionActors.list[transitionActorIndex]; s32 room = transitionEntry->sides[side].room; this->actor.room = room; if (isKokiriLayer8) {} if (this->actor.room != play->roomCtx.curRoom.num) { if (room) {} - if (func_8009728C(play, &play->roomCtx, this->actor.room)) { + if (Room_RequestNewRoom(play, &play->roomCtx, this->actor.room)) { EnHoll_SetupAction(this, EnHoll_WaitRoomLoaded); } } @@ -273,11 +273,11 @@ void EnHoll_VerticalDownBgCoverLarge(EnHoll* this, PlayState* play) { } if (absYDistToPlayer < ENHOLL_V_DOWN_LOAD_YDIST) { - this->actor.room = play->transiActorCtx.list[transitionActorIndex].sides[1].room; + this->actor.room = play->transitionActors.list[transitionActorIndex].sides[1].room; Math_SmoothStepToF(&player->actor.world.pos.x, this->actor.world.pos.x, 1.0f, 50.0f, 10.0f); Math_SmoothStepToF(&player->actor.world.pos.z, this->actor.world.pos.z, 1.0f, 50.0f, 10.0f); if (this->actor.room != play->roomCtx.curRoom.num && - func_8009728C(play, &play->roomCtx, this->actor.room)) { + Room_RequestNewRoom(play, &play->roomCtx, this->actor.room)) { EnHoll_SetupAction(this, EnHoll_WaitRoomLoaded); this->resetBgCoverAlpha = true; player->actor.speed = 0.0f; @@ -308,9 +308,9 @@ void EnHoll_VerticalBgCover(EnHoll* this, PlayState* play) { s32 transitionActorIndex = GET_TRANSITION_ACTOR_INDEX(&this->actor); s32 side = (this->actor.yDistToPlayer > 0.0f) ? 0 : 1; - this->actor.room = play->transiActorCtx.list[transitionActorIndex].sides[side].room; + this->actor.room = play->transitionActors.list[transitionActorIndex].sides[side].room; if (this->actor.room != play->roomCtx.curRoom.num && - func_8009728C(play, &play->roomCtx, this->actor.room)) { + Room_RequestNewRoom(play, &play->roomCtx, this->actor.room)) { EnHoll_SetupAction(this, EnHoll_WaitRoomLoaded); this->resetBgCoverAlpha = true; } @@ -334,9 +334,9 @@ void EnHoll_VerticalInvisible(EnHoll* this, PlayState* play) { absYDistToPlayer > ENHOLL_V_INVISIBLE_LOAD_YDIST_MIN) { transitionActorIndex = GET_TRANSITION_ACTOR_INDEX(&this->actor); side = (this->actor.yDistToPlayer > 0.0f) ? 0 : 1; - this->actor.room = play->transiActorCtx.list[transitionActorIndex].sides[side].room; + this->actor.room = play->transitionActors.list[transitionActorIndex].sides[side].room; if (this->actor.room != play->roomCtx.curRoom.num && - func_8009728C(play, &play->roomCtx, this->actor.room)) { + Room_RequestNewRoom(play, &play->roomCtx, this->actor.room)) { EnHoll_SetupAction(this, EnHoll_WaitRoomLoaded); } } @@ -375,9 +375,9 @@ void EnHoll_HorizontalBgCoverSwitchFlag(EnHoll* this, PlayState* play) { if (orthogonalDistToPlayer < ENHOLL_H_SWITCHFLAG_LOAD_DEPTH) { s32 side = (relPlayerPos.z < 0.0f) ? 0 : 1; - this->actor.room = play->transiActorCtx.list[transitionActorIndex].sides[side].room; + this->actor.room = play->transitionActors.list[transitionActorIndex].sides[side].room; if (this->actor.room != play->roomCtx.curRoom.num && - func_8009728C(play, &play->roomCtx, this->actor.room)) { + Room_RequestNewRoom(play, &play->roomCtx, this->actor.room)) { EnHoll_SetupAction(this, EnHoll_WaitRoomLoaded); } } @@ -392,7 +392,7 @@ void EnHoll_HorizontalBgCoverSwitchFlag(EnHoll* this, PlayState* play) { void EnHoll_WaitRoomLoaded(EnHoll* this, PlayState* play) { if (!EnHoll_IsKokiriLayer8() && play->roomCtx.status == 0) { - func_80097534(play, &play->roomCtx); + Room_FinishRoomChange(play, &play->roomCtx); if (play->bgCoverAlpha == 0) { this->resetBgCoverAlpha = false; } diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 63dc29fc14..802ed831ab 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-jp:162 gc-jp-ce:162 gc-jp-mq:162 gc-us:162 gc-us-mq:162" +#pragma increment_block_number "gc-eu:157 gc-eu-mq:157 gc-jp:159 gc-jp-ce:159 gc-jp-mq:159 gc-us:159 gc-us-mq:159" #define FLAGS ACTOR_FLAG_4 @@ -920,10 +920,10 @@ void Fishing_Init(Actor* thisx, PlayState* play2) { sFishGameNumber = (HIGH_SCORE(HS_FISHING) & (HS_FISH_PLAYED * 255)) >> 0x10; if ((sFishGameNumber & 7) == 7) { - play->roomCtx.unk_74[0] = 90; + play->roomCtx.drawParams[0] = 90; sFishingFoggy = 1; } else { - play->roomCtx.unk_74[0] = 40; + play->roomCtx.drawParams[0] = 40; sFishingFoggy = 0; } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 9d800d3556..ca8bff100e 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -5008,7 +5008,7 @@ s32 Player_ActionChange_1(Player* this, PlayState* play) { if (slidingDoor->dyna.actor.category == ACTORCAT_DOOR) { this->cv.slidingDoorBgCamIndex = - play->transiActorCtx.list[GET_TRANSITION_ACTOR_INDEX(&slidingDoor->dyna.actor)] + play->transitionActors.list[GET_TRANSITION_ACTOR_INDEX(&slidingDoor->dyna.actor)] .sides[(doorDirection > 0) ? 0 : 1] .bgCamIndex; @@ -5091,7 +5091,7 @@ s32 Player_ActionChange_1(Player* this, PlayState* play) { } } else { Camera_ChangeDoorCam(Play_GetCamera(play, CAM_ID_MAIN), doorActor, - play->transiActorCtx.list[GET_TRANSITION_ACTOR_INDEX(doorActor)] + play->transitionActors.list[GET_TRANSITION_ACTOR_INDEX(doorActor)] .sides[(doorDirection > 0) ? 0 : 1] .bgCamIndex, 0, 38.0f * D_808535EC, 26.0f * D_808535EC, 10.0f * D_808535EC); @@ -5100,12 +5100,12 @@ s32 Player_ActionChange_1(Player* this, PlayState* play) { } if ((this->doorType != PLAYER_DOORTYPE_FAKE) && (doorActor->category == ACTORCAT_DOOR)) { - frontRoom = play->transiActorCtx.list[GET_TRANSITION_ACTOR_INDEX(doorActor)] + frontRoom = play->transitionActors.list[GET_TRANSITION_ACTOR_INDEX(doorActor)] .sides[(doorDirection > 0) ? 0 : 1] .room; if ((frontRoom >= 0) && (frontRoom != play->roomCtx.curRoom.num)) { - func_8009728C(play, &play->roomCtx, frontRoom); + Room_RequestNewRoom(play, &play->roomCtx, frontRoom); } } @@ -9703,7 +9703,7 @@ void Player_Action_80845EF8(Player* this, PlayState* play) { } else { func_8083C0E8(this, play); if (play->roomCtx.prevRoom.num >= 0) { - func_80097534(play, &play->roomCtx); + Room_FinishRoomChange(play, &play->roomCtx); } Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN)); Play_SetupRespawnPoint(play, RESPAWN_MODE_DOWN, 0xDFF); diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 612e83e537..9f2106cc3d 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -1595,12 +1595,12 @@ Room_DrawImageSingle = 0x800805E0; // type:func Room_GetImageMultiBgEntry = 0x80080990; // type:func Room_DrawImageMulti = 0x80080A7C; // type:func Room_DrawImage = 0x80080E48; // type:func -func_80096FD4 = 0x80080EB0; // type:func -func_80096FE8 = 0x80080EC8; // type:func -func_8009728C = 0x80081064; // type:func -func_800973FC = 0x800811CC; // type:func +Room_Init = 0x80080EB0; // type:func +Room_SetupFirstRoom = 0x80080EC8; // type:func +Room_RequestNewRoom = 0x80081064; // type:func +Room_ProcessRoomRequest = 0x800811CC; // type:func Room_Draw = 0x80081270; // type:func -func_80097534 = 0x800812C0; // type:func +Room_FinishRoomChange = 0x800812C0; // type:func Sample_HandleStateChange = 0x80081360; // type:func Sample_Draw = 0x80081394; // type:func Sample_Main = 0x80081580; // type:func @@ -1632,7 +1632,7 @@ Scene_CommandObjectList = 0x80082308; // type:func Scene_CommandLightList = 0x800824BC; // type:func Scene_CommandPathList = 0x8008256C; // type:func Scene_CommandTransitionActorEntryList = 0x800825B4; // type:func -TransitionActor_InitContext = 0x8008260C; // type:func +Scene_ResetTransitionActorList = 0x8008260C; // type:func Scene_CommandLightSettingsList = 0x8008261C; // type:func Scene_CommandSkyboxSettings = 0x80082674; // type:func Scene_CommandSkyboxDisables = 0x800826B8; // type:func From 0b011033fcaded60af480f48d494d7d044ac89a2 Mon Sep 17 00:00:00 2001 From: Ozero4 <114027116+Ozero4@users.noreply.github.com> Date: Thu, 5 Sep 2024 14:57:30 +0200 Subject: [PATCH 20/86] Naming a function (#2124) * Naming a function * Naming function * Update functions.txt * Update function name * Update function name * Update function name * Update function name --- include/sfx.h | 2 +- src/audio/sfx.c | 6 +++--- tools/disasm/ntsc-1.2/functions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/sfx.h b/include/sfx.h index 7fc597867a..3d028817ae 100644 --- a/include/sfx.h +++ b/include/sfx.h @@ -133,7 +133,7 @@ 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_RemoveSfxFromBankByPos(u8 bankId, Vec3f* pos); void Audio_StopSfxByPosAndBank(u8 bankId, Vec3f* pos); void Audio_StopSfxByPos(Vec3f* pos); void Audio_StopSfxByPosAndId(Vec3f* pos, u16 sfxId); diff --git a/src/audio/sfx.c b/src/audio/sfx.c index 338559773d..4debc94b77 100644 --- a/src/audio/sfx.c +++ b/src/audio/sfx.c @@ -533,7 +533,7 @@ void Audio_StopSfxByBank(u8 bankId) { Audio_RemoveMatchingSfxRequests(0, &cmp); } -void func_800F8884(u8 bankId, Vec3f* pos) { +void Audio_RemoveSfxFromBankByPos(u8 bankId, Vec3f* pos) { SfxBankEntry* entry; u8 entryIndex = gSfxBanks[bankId][0].next; u8 prevEntryIndex = 0; @@ -557,7 +557,7 @@ void func_800F8884(u8 bankId, Vec3f* pos) { void Audio_StopSfxByPosAndBank(u8 bankId, Vec3f* pos) { SfxBankEntry cmp; - func_800F8884(bankId, pos); + Audio_RemoveSfxFromBankByPos(bankId, pos); cmp.sfxId = bankId << 12; cmp.posX = &pos->x; Audio_RemoveMatchingSfxRequests(1, &cmp); @@ -568,7 +568,7 @@ void Audio_StopSfxByPos(Vec3f* pos) { SfxBankEntry cmp; for (i = 0; i < ARRAY_COUNT(gSfxBanks); i++) { - func_800F8884(i, pos); + Audio_RemoveSfxFromBankByPos(i, pos); } cmp.posX = &pos->x; Audio_RemoveMatchingSfxRequests(2, &cmp); diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 9f2106cc3d..63fc5ddabe 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -2795,7 +2795,7 @@ Audio_RemoveSfxBankEntry = 0x800C8F78; // type:func Audio_ChooseActiveSfx = 0x800C9110; // type:func Audio_PlayActiveSfx = 0x800C9844; // type:func Audio_StopSfxByBank = 0x800C9B64; // type:func -func_800F8884 = 0x800C9C48; // type:func +Audio_RemoveSfxFromBankByPos = 0x800C9C48; // type:func Audio_StopSfxByPosAndBank = 0x800C9D64; // type:func Audio_StopSfxByPos = 0x800C9DAC; // type:func Audio_StopSfxByPosAndId = 0x800C9E08; // type:func From bb6177e936c535817eded229d1023d0556a67519 Mon Sep 17 00:00:00 2001 From: fig02 Date: Thu, 5 Sep 2024 12:44:06 -0400 Subject: [PATCH 21/86] Document `Target_ShouldReleaseLockOn` [Target Docs 8/8] (#2135) * target range and leash docs * format --- include/functions.h | 2 +- src/code/z_actor.c | 37 ++++++++++++++----- .../actors/ovl_player_actor/z_player.c | 6 +-- tools/disasm/ntsc-1.2/functions.txt | 2 +- 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/include/functions.h b/include/functions.h index 27cbbfd803..a0156d314d 100644 --- a/include/functions.h +++ b/include/functions.h @@ -382,7 +382,7 @@ void func_8002ED80(Actor* actor, PlayState* play, s32 flag); PosRot Actor_GetFocus(Actor* actor); PosRot Actor_GetWorld(Actor* actor); PosRot Actor_GetWorldPosShapeRot(Actor* actor); -s32 func_8002F0C8(Actor* actor, Player* player, s32 flag); +s32 Target_ShouldReleaseLockOn(Actor* actor, Player* player, s32 ignoreLeash); s32 Actor_TalkOfferAccepted(Actor* actor, PlayState* play); s32 Actor_OfferTalkExchange(Actor* actor, PlayState* play, f32 xzRange, f32 yRange, u32 exchangeItemId); s32 Actor_OfferTalkExchangeEquiCylinder(Actor* actor, PlayState* play, f32 radius, u32 exchangeItemId); diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 78710229fe..c74f29f503 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1629,29 +1629,46 @@ TargetRangeParams sTargetRanges[TARGET_MODE_MAX] = { }; /** - * Checks if an actor at distance `distSq` is inside the range specified by its targetMode + * Checks if an actor at `distSq` is inside the range specified by its `targetMode`. + * + * Note that this gets used for both the target range check and for the lock-on leash range check. + * Despite how the data is presented in `sTargetRanges`, the leash range is stored as a scale factor value. + * When checking the leash range, this scale factor is applied to the input distance and checked against + * the base `rangeSq` value, which was used to initiate the lock-on in the first place. */ u32 Target_ActorIsInRange(Actor* actor, f32 distSq) { return distSq < sTargetRanges[actor->targetMode].rangeSq; } -s32 func_8002F0C8(Actor* actor, Player* player, s32 flag) { +/** + * Returns true if an actor lock-on should be released. + * This function does not actually release the lock-on, as that is Player's responsibility. + * + * If an actor's update function is NULL or `ACTOR_FLAG_0` is unset, the lock-on should be released. + * + * There is also a check for Player exceeding the lock-on leash distance. + * Note that this check will be ignored if `ignoreLeash` is true. + * + */ +s32 Target_ShouldReleaseLockOn(Actor* actor, Player* player, s32 ignoreLeash) { if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_0)) { return true; } - if (!flag) { - s16 var = (s16)(actor->yawTowardsPlayer - 0x8000) - player->actor.shape.rot.y; - s16 abs_var = ABS(var); - f32 dist; + if (!ignoreLeash) { + s16 yawDiff = (s16)(actor->yawTowardsPlayer - 0x8000) - player->actor.shape.rot.y; + s16 yawDiffAbs = ABS(yawDiff); + f32 distSq; - if ((player->focusActor == NULL) && (abs_var > 0x2AAA)) { - dist = MAXFLOAT; + if ((player->focusActor == NULL) && (yawDiffAbs > 0x2AAA)) { + // This function is only called (and is only relevant) when `player->focusActor != NULL`. + // This is unreachable. + distSq = MAXFLOAT; } else { - dist = actor->xyzDistToPlayerSq; + distSq = actor->xyzDistToPlayerSq; } - return !Target_ActorIsInRange(actor, sTargetRanges[actor->targetMode].leashScale * dist); + return !Target_ActorIsInRange(actor, sTargetRanges[actor->targetMode].leashScale * distSq); } return false; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index ca8bff100e..bd15573594 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3540,7 +3540,7 @@ s32 func_80836AB8(Player* this, s32 arg1) { // Update things related to Z Targeting void func_80836BEC(Player* this, PlayState* play) { - s32 sp1C = 0; + s32 ignoreLeash = false; s32 zTrigPressed = CHECK_BTN_ALL(sControlInput->cur.button, BTN_Z); Actor* actorToTarget; s32 pad; @@ -3567,7 +3567,7 @@ void func_80836BEC(Player* this, PlayState* play) { } if (this->unk_66C >= 6) { - sp1C = 1; + ignoreLeash = true; } cond = func_8083224C(play); @@ -3614,7 +3614,7 @@ void func_80836BEC(Player* this, PlayState* play) { if (this->focusActor != NULL) { if ((this->actor.category == ACTORCAT_PLAYER) && (this->focusActor != this->unk_684) && - func_8002F0C8(this->focusActor, this, sp1C)) { + Target_ShouldReleaseLockOn(this->focusActor, this, ignoreLeash)) { func_8008EDF0(this); this->stateFlags1 |= PLAYER_STATE1_30; } else if (this->focusActor != NULL) { diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 63fc5ddabe..96900ef2c1 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -410,7 +410,7 @@ Actor_GetWorld = 0x80022CE4; // type:func Actor_GetWorldPosShapeRot = 0x80022D18; // type:func Target_WeightedDistToPlayerSq = 0x80022D94; // type:func Target_ActorIsInRange = 0x80022E64; // type:func -func_8002F0C8 = 0x80022EA0; // type:func +Target_ShouldReleaseLockOn = 0x80022EA0; // type:func Actor_TalkOfferAccepted = 0x80022F70; // type:func Actor_OfferTalkExchange = 0x80022FA0; // type:func Actor_OfferTalkExchangeEquiCylinder = 0x80023074; // type:func From 3faa1c6acce3b317ee23f153d17f0ea66a8f1c79 Mon Sep 17 00:00:00 2001 From: cadmic Date: Fri, 6 Sep 2024 01:24:19 -0700 Subject: [PATCH 22/86] Move button macros to include/controller.h (#2138) * Move button macros to include/controller.h * Fix z_mag button ordering --- include/controller.h | 27 +++++++++++++++++++ include/macros.h | 8 ------ include/ultra64/controller.h | 16 ----------- include/z64.h | 1 + src/audio/general.c | 4 +-- src/code/fault_n64.c | 2 +- src/code/z_debug.c | 2 +- src/code/z_frame_advance.c | 1 + .../actors/ovl_Arms_Hook/z_arms_hook.c | 2 +- src/overlays/actors/ovl_En_Mag/z_en_mag.c | 4 +-- .../actors/ovl_player_actor/z_player.c | 14 +++++----- 11 files changed, 43 insertions(+), 38 deletions(-) create mode 100644 include/controller.h diff --git a/include/controller.h b/include/controller.h new file mode 100644 index 0000000000..dbc850aa21 --- /dev/null +++ b/include/controller.h @@ -0,0 +1,27 @@ +#ifndef CONTROLLER_H +#define CONTROLLER_H + +#define BTN_A 0x8000 +#define BTN_B 0x4000 +#define BTN_Z 0x2000 +#define BTN_START 0x1000 +#define BTN_DUP 0x0800 +#define BTN_DDOWN 0x0400 +#define BTN_DLEFT 0x0200 +#define BTN_DRIGHT 0x0100 +#define BTN_L 0x0020 +#define BTN_R 0x0010 +#define BTN_CUP 0x0008 +#define BTN_CDOWN 0x0004 +#define BTN_CLEFT 0x0002 +#define BTN_CRIGHT 0x0001 + +#define CHECK_BTN_ANY(state, combo) (((state) & (combo)) != 0) + +#if PLATFORM_N64 +#define CHECK_BTN_ALL(state, combo) (((state) & (combo)) == (combo)) +#else +#define CHECK_BTN_ALL(state, combo) (~((state) | ~(combo)) == 0) +#endif + +#endif diff --git a/include/macros.h b/include/macros.h index 126d5d990e..50f8330282 100644 --- a/include/macros.h +++ b/include/macros.h @@ -105,14 +105,6 @@ ? gSaveContext.save.info.equips.buttonItems[(button) + 1] \ : ITEM_NONE) -#if PLATFORM_N64 -#define CHECK_BTN_ALL(state, combo) (((state) & (combo)) == (combo)) -#else -#define CHECK_BTN_ALL(state, combo) (~((state) | ~(combo)) == 0) -#endif - -#define CHECK_BTN_ANY(state, combo) (((state) & (combo)) != 0) - #define CHECK_FLAG_ALL(flags, mask) (((flags) & (mask)) == (mask)) // IDO doesn't support variadic macros, but it merely throws a warning for the diff --git a/include/ultra64/controller.h b/include/ultra64/controller.h index 79dcf1c47d..4ce047a201 100644 --- a/include/ultra64/controller.h +++ b/include/ultra64/controller.h @@ -103,22 +103,6 @@ #define CONT_BLOCK_GB_BANK CONT_BLOCKS(CONT_ADDR_GB_BANK) #define CONT_BLOCK_GB_STATUS CONT_BLOCKS(CONT_ADDR_GB_STATUS) -/* Buttons */ -#define BTN_CRIGHT 0x0001 -#define BTN_CLEFT 0x0002 -#define BTN_CDOWN 0x0004 -#define BTN_CUP 0x0008 -#define BTN_R 0x0010 -#define BTN_L 0x0020 -#define BTN_DRIGHT 0x0100 -#define BTN_DLEFT 0x0200 -#define BTN_DDOWN 0x0400 -#define BTN_DUP 0x0800 -#define BTN_START 0x1000 -#define BTN_Z 0x2000 -#define BTN_B 0x4000 -#define BTN_A 0x8000 - #ifdef __GNUC__ // Ensure data cache coherency for OSPifRam structures by aligning to the data cache line size. // On older compilers such as IDO this was done by placing each OSPifRam at the top of the file it is declared in, diff --git a/include/z64.h b/include/z64.h index 02cdafb49a..0ee9f4f080 100644 --- a/include/z64.h +++ b/include/z64.h @@ -5,6 +5,7 @@ #include "ultra64/gs2dex.h" #include "attributes.h" #include "audiomgr.h" +#include "controller.h" #include "z64save.h" #include "z64light.h" #include "z64bgcheck.h" diff --git a/src/audio/general.c b/src/audio/general.c index 9ce7324d20..ab33df2946 100644 --- a/src/audio/general.c +++ b/src/audio/general.c @@ -859,7 +859,7 @@ NatureAmbienceDataIO sNatureAmbienceDataIO[20] = { }; #if PLATFORM_GC -u32 sOcarinaAllowedButtonMask = (BTN_A | BTN_CRIGHT | BTN_CLEFT | BTN_CDOWN | BTN_CUP); +u32 sOcarinaAllowedButtonMask = (BTN_A | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT); s32 sOcarinaAButtonMap = BTN_A; s32 sOcarinaCUpButtonMap = BTN_CUP; s32 sOcarinaCDownButtonMap = BTN_CDOWN; @@ -1310,7 +1310,7 @@ s32 Audio_SetGanonsTowerBgmVolume(u8 targetVol); #if PLATFORM_N64 -#define OCARINA_ALLOWED_BUTTON_MASK (BTN_A | BTN_CRIGHT | BTN_CLEFT | BTN_CDOWN | BTN_CUP) +#define OCARINA_ALLOWED_BUTTON_MASK (BTN_A | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT) #define OCARINA_A_MAP BTN_A #define OCARINA_CUP_MAP BTN_CUP #define OCARINA_CDOWN_MAP BTN_CDOWN diff --git a/src/code/fault_n64.c b/src/code/fault_n64.c index 5a8dd9d1d6..92fd0cc8db 100644 --- a/src/code/fault_n64.c +++ b/src/code/fault_n64.c @@ -109,7 +109,7 @@ void Fault_WaitForInputImpl(void) { Fault_SleepImpl(0x10); PadMgr_RequestPadData(&gPadMgr, inputs, 0); btnPress = inputs[0].press.button; - } while (!CHECK_BTN_ANY(btnPress, (BTN_A | BTN_B | BTN_START | BTN_CRIGHT | BTN_CLEFT | BTN_CDOWN | BTN_CUP))); + } while (!CHECK_BTN_ANY(btnPress, (BTN_A | BTN_B | BTN_START | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT))); } void Fault_WaitForInput(void) { diff --git a/src/code/z_debug.c b/src/code/z_debug.c index d668f490a6..963e934ff3 100644 --- a/src/code/z_debug.c +++ b/src/code/z_debug.c @@ -168,7 +168,7 @@ void Regs_UpdateEditor(Input* input) { s32 increment; s32 i; - dPadInputCur = input->cur.button & (BTN_DUP | BTN_DLEFT | BTN_DRIGHT | BTN_DDOWN); + dPadInputCur = input->cur.button & (BTN_DUP | BTN_DDOWN | BTN_DLEFT | BTN_DRIGHT); if (CHECK_BTN_ALL(input->cur.button, BTN_L) || CHECK_BTN_ALL(input->cur.button, BTN_R) || CHECK_BTN_ALL(input->cur.button, BTN_START)) { diff --git a/src/code/z_frame_advance.c b/src/code/z_frame_advance.c index 64404fb2f7..486717a50f 100644 --- a/src/code/z_frame_advance.c +++ b/src/code/z_frame_advance.c @@ -2,6 +2,7 @@ #include "stdbool.h" +#include "controller.h" #include "padmgr.h" #include "macros.h" diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index b1ec6987ac..48b2a6c4d5 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -287,7 +287,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) { &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } } else if (CHECK_BTN_ANY(play->state.input[0].press.button, - (BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN))) { + (BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT))) { this->timer = 0; } } 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 ccff03803c..6d992e457f 100644 --- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c +++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c @@ -151,8 +151,8 @@ void EnMag_CheckSramResetCode(PlayState* play, EnMag* this) { s32 var_v1; var_v1 = - play->state.input[2].cur.button & (BTN_CRIGHT | BTN_CLEFT | BTN_CDOWN | BTN_CUP | BTN_R | BTN_L | BTN_DRIGHT | - BTN_DLEFT | BTN_DDOWN | BTN_DUP | BTN_START | BTN_Z | BTN_B | BTN_A); + play->state.input[2].cur.button & (BTN_A | BTN_B | BTN_Z | BTN_START | BTN_DUP | BTN_DDOWN | BTN_DLEFT | + BTN_DRIGHT | BTN_L | BTN_R | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT); if (this->unk_E31C == var_v1) { this->unk_E320--; if (this->unk_E320 < 0) { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index bd15573594..bd30f5bff7 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -2789,7 +2789,7 @@ int func_80834E44(PlayState* play) { int func_80834E7C(PlayState* play) { return (play->shootingGalleryStatus != 0) && ((play->shootingGalleryStatus < 0) || - CHECK_BTN_ANY(sControlInput->cur.button, BTN_A | BTN_B | BTN_CUP | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN)); + CHECK_BTN_ANY(sControlInput->cur.button, BTN_A | BTN_B | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT)); } s32 func_80834EB8(Player* this, PlayState* play) { @@ -6957,7 +6957,7 @@ s32 func_8083EAF0(Player* this, Actor* actor) { s32 Player_ActionChange_9(Player* this, PlayState* play) { if ((this->stateFlags1 & PLAYER_STATE1_11) && (this->heldActor != NULL) && - CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN)) { + CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_CLEFT | BTN_CDOWN | BTN_CRIGHT)) { if (!func_80835644(play, this, this->heldActor)) { if (!func_8083EAF0(this, this->heldActor)) { Player_SetupAction(play, this, Player_Action_808464B0, 1); @@ -8999,7 +8999,7 @@ void Player_Action_8084411C(Player* this, PlayState* play) { heldActor = this->heldActor; if (!func_80835644(play, this, heldActor) && (heldActor->id == ACTOR_EN_NIW) && - CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN)) { + CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_CLEFT | BTN_CDOWN | BTN_CRIGHT)) { func_8084409C(play, this, this->speedXZ + 2.0f, this->actor.velocity.y + 2.0f); } } @@ -9785,7 +9785,7 @@ void Player_Action_80846260(Player* this, PlayState* play) { } else if (LinkAnimation_OnFrame(&this->skelAnime, 25.0f)) { Player_PlayVoiceSfx(this, NA_SE_VO_LI_SWORD_L); } - } else if (CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN)) { + } else if (CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_CLEFT | BTN_CDOWN | BTN_CRIGHT)) { Player_SetupAction(play, this, Player_Action_80846358, 1); Player_AnimPlayOnce(play, this, &gPlayerAnim_link_silver_throw); } @@ -11866,7 +11866,7 @@ void Player_Action_8084B1D8(Player* this, PlayState* play) { func_80833B2C(this) || (!func_8002DD78(this) && !func_808334B4(this)))) || ((this->unk_6AD == 1) && CHECK_BTN_ANY(sControlInput->press.button, - BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN)))) { + BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT)))) { func_8083C148(this, play); Sfx_PlaySfxCentered(NA_SE_SY_CAMERA_ZOOM_UP); } else if ((DECR(this->av2.actionVar2) == 0) || (this->unk_6AD != 2)) { @@ -13816,7 +13816,7 @@ void Player_Action_8084FBF4(Player* this, PlayState* play) { s32 Player_UpdateNoclip(Player* this, PlayState* play) { sControlInput = &play->state.input[0]; - if ((CHECK_BTN_ALL(sControlInput->cur.button, BTN_L | BTN_R | BTN_A) && + if ((CHECK_BTN_ALL(sControlInput->cur.button, BTN_A | BTN_L | BTN_R) && CHECK_BTN_ALL(sControlInput->press.button, BTN_B)) || (CHECK_BTN_ALL(sControlInput->cur.button, BTN_L) && CHECK_BTN_ALL(sControlInput->press.button, BTN_DRIGHT))) { @@ -13845,7 +13845,7 @@ s32 Player_UpdateNoclip(Player* this, PlayState* play) { this->actor.world.pos.y -= speed; } - if (CHECK_BTN_ANY(sControlInput->cur.button, BTN_DUP | BTN_DLEFT | BTN_DDOWN | BTN_DRIGHT)) { + if (CHECK_BTN_ANY(sControlInput->cur.button, BTN_DUP | BTN_DDOWN | BTN_DLEFT | BTN_DRIGHT)) { s16 angle; s16 temp; From 53b2110373eb506d9c035697c0719851a77936d4 Mon Sep 17 00:00:00 2001 From: cadmic Date: Fri, 6 Sep 2024 02:18:59 -0700 Subject: [PATCH 23/86] Clean up uses of !PLATFORM_N64 vs PLATFORM_GC (#2134) * Clean up uses of !PLATFORM_N64 vs PLATFORM_GC * Put N64 button colors first --- include/fault.h | 4 ++-- include/gfxprint.h | 2 +- include/libc/math.h | 2 +- include/rand.h | 2 +- include/z64interface.h | 6 +++--- osMalloc.h | 2 +- src/audio/general.c | 4 ++-- src/audio/sfx.c | 2 +- src/boot/stackcheck.c | 2 +- src/code/fp.s | 2 +- src/code/fp_math.c | 6 +++--- src/code/gfxprint.c | 6 +++--- src/code/rand.c | 6 +++--- src/code/z_eff_ss_dead.c | 2 +- src/code/z_message.c | 2 +- src/code/z_scene_table.c | 4 ++-- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 4 ++-- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 2 +- src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c | 2 +- src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c | 8 ++++---- 20 files changed, 35 insertions(+), 35 deletions(-) diff --git a/include/fault.h b/include/fault.h index ac63a234db..d72b9691c4 100644 --- a/include/fault.h +++ b/include/fault.h @@ -76,7 +76,7 @@ void Fault_DrawText(s32 x, s32 y, const char* fmt, ...); #define Fault_SetFontColor(color) (void)0 #define Fault_SetCharPad(padW, padH) (void)0 -#else +#elif PLATFORM_GC void Fault_InitDrawer(void); void Fault_SetForeColor(u16 color); @@ -93,7 +93,7 @@ extern vs32 gFaultMsgId; #define FAULT_MSG_ID gFaultMsgId -#else +#elif PLATFORM_GC typedef struct FaultMgr { /* 0x000 */ OSThread thread; diff --git a/include/gfxprint.h b/include/gfxprint.h index da63c9e762..86879c4805 100644 --- a/include/gfxprint.h +++ b/include/gfxprint.h @@ -34,7 +34,7 @@ typedef struct GfxPrint { #define GFXP_FLAG_RAINBOW (1 << 1) #define GFXP_FLAG_SHADOW (1 << 2) #define GFXP_FLAG_UPDATE (1 << 3) -#if PLATFORM_GC +#if !PLATFORM_N64 #define GFXP_FLAG_ENLARGE (1 << 6) #endif #define GFXP_FLAG_OPEN (1 << 7) diff --git a/include/libc/math.h b/include/libc/math.h index b893cce72e..b46b6cd911 100644 --- a/include/libc/math.h +++ b/include/libc/math.h @@ -60,7 +60,7 @@ f64 sqrt(f64 f); #pragma intrinsic(sqrt) #endif -#if PLATFORM_GC +#if !PLATFORM_N64 extern float qNaN0x3FFFFF; extern float qNaN0x10000; extern float sNaN0x3FFFFF; diff --git a/include/rand.h b/include/rand.h index 79ced24ea1..0f4f4d9cd3 100644 --- a/include/rand.h +++ b/include/rand.h @@ -10,7 +10,7 @@ void Rand_Seed_Variable(u32* rndNum, u32 seed); u32 Rand_Next_Variable(u32* rndNum); f32 Rand_ZeroOne_Variable(u32* rndNum); -#if PLATFORM_GC +#if !PLATFORM_N64 f32 Rand_Centered(void); f32 Rand_Centered_Variable(u32* rndNum); #endif diff --git a/include/z64interface.h b/include/z64interface.h index c089ce396b..ac5bfc8153 100644 --- a/include/z64interface.h +++ b/include/z64interface.h @@ -151,7 +151,7 @@ typedef struct InterfaceContext { #define A_BUTTON_X 186 #define A_BUTTON_Y 9 -#if PLATFORM_N64 +#if !PLATFORM_GC #define A_BUTTON_R 90 #define A_BUTTON_G 90 #define A_BUTTON_B 255 @@ -164,7 +164,7 @@ typedef struct InterfaceContext { #define B_BUTTON_X 160 #define B_BUTTON_Y 17 -#if PLATFORM_N64 +#if !PLATFORM_GC #define B_BUTTON_R 0 #define B_BUTTON_G 150 #define B_BUTTON_B 0 @@ -186,7 +186,7 @@ typedef struct InterfaceContext { #define C_UP_BUTTON_X 254 #define C_UP_BUTTON_Y 16 -#if PLATFORM_N64 +#if !PLATFORM_GC #define START_BUTTON_R 200 #define START_BUTTON_G 0 #define START_BUTTON_B 0 diff --git a/osMalloc.h b/osMalloc.h index 5fb8dd8e4d..73f310fa17 100644 --- a/osMalloc.h +++ b/osMalloc.h @@ -11,7 +11,7 @@ typedef struct Arena { #if PLATFORM_N64 /* 0x08 */ u32 size; /* 0x0C */ u8 allocFailures; -#else +#elif PLATFORM_GC /* 0x08 */ OSMesgQueue lockQueue; /* 0x20 */ u8 allocFailures; // only used in non-debug builds /* 0x21 */ u8 isInit; diff --git a/src/audio/general.c b/src/audio/general.c index ab33df2946..af5ca719a6 100644 --- a/src/audio/general.c +++ b/src/audio/general.c @@ -3,7 +3,7 @@ #define ABS_ALT(x) ((x) < 0 ? -(x) : (x)) -#if PLATFORM_GC +#if !PLATFORM_N64 #define AUDIO_PRINTF osSyncPrintf #elif IDO_PRINTF_WORKAROUND #define AUDIO_PRINTF(args) (void)0 @@ -858,7 +858,7 @@ NatureAmbienceDataIO sNatureAmbienceDataIO[20] = { }, }; -#if PLATFORM_GC +#if !PLATFORM_N64 u32 sOcarinaAllowedButtonMask = (BTN_A | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT); s32 sOcarinaAButtonMap = BTN_A; s32 sOcarinaCUpButtonMap = BTN_CUP; diff --git a/src/audio/sfx.c b/src/audio/sfx.c index 4debc94b77..90ed7a28f6 100644 --- a/src/audio/sfx.c +++ b/src/audio/sfx.c @@ -342,7 +342,7 @@ void Audio_ChooseActiveSfx(u8 bankId) { entry->sfxId, entry->posX, entry->posZ, *entry->posX, *entry->posY, *entry->posZ); } entry->priority = (u32)entry->dist + (SQ(0xFF - sfxImportance) * SQ(76)); -#if PLATFORM_GC +#if !PLATFORM_N64 temp3 = entry->sfxId; // fake entry->priority = entry->priority + temp3 - temp3; #endif diff --git a/src/boot/stackcheck.c b/src/boot/stackcheck.c index a1cff55e62..399b6c051b 100644 --- a/src/boot/stackcheck.c +++ b/src/boot/stackcheck.c @@ -18,7 +18,7 @@ void StackCheck_Init(StackEntry* entry, void* stackBottom, void* stackTop, u32 i entry->minSpace = minSpace; entry->name = name; -#if PLATFORM_GC +#if !PLATFORM_N64 iter = sStackInfoListStart; while (iter) { if (iter == entry) { diff --git a/src/code/fp.s b/src/code/fp.s index f7a00e2136..d5b42094a3 100644 --- a/src/code/fp.s +++ b/src/code/fp.s @@ -6,7 +6,7 @@ .balign 16 -#if PLATFORM_GC +#if !PLATFORM_N64 DATA(qNaN0x3FFFFF) .word 0x7FBFFFFF ENDDATA(qNaN0x3FFFFF) diff --git a/src/code/fp_math.c b/src/code/fp_math.c index fb73b58ef6..85fb4cedf3 100644 --- a/src/code/fp_math.c +++ b/src/code/fp_math.c @@ -1,7 +1,7 @@ #include "z64math.h" #include "macros.h" -#if PLATFORM_GC +#if !PLATFORM_N64 s32 gUseAtanContFrac; #endif @@ -46,7 +46,7 @@ f32 Math_FNearbyIntF(f32 x) { return nearbyintf(x); } -#if PLATFORM_GC +#if !PLATFORM_N64 /* Arctangent approximation using a Taylor series (one quadrant) */ f32 Math_FAtanTaylorQF(f32 x) { static const f32 coeffs[] = { @@ -173,7 +173,7 @@ f32 Math_FAtanContFracF(f32 x) { #endif } -#if PLATFORM_GC +#if !PLATFORM_N64 /** * @return arctan(x) in radians, in (-pi/2,pi/2) range */ diff --git a/src/code/gfxprint.c b/src/code/gfxprint.c index ac4bb7ced0..6307324edb 100644 --- a/src/code/gfxprint.c +++ b/src/code/gfxprint.c @@ -126,7 +126,7 @@ u8 sGfxPrintFontData[(16 * 256) / 2] = { 0x1B, 0xAA, 0x40, 0x21, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -#if PLATFORM_GC +#if !PLATFORM_N64 // Can be used to set GFXP_FLAG_ENLARGE by default static u8 sDefaultSpecialFlags; #endif @@ -342,7 +342,7 @@ void GfxPrint_Init(GfxPrint* this) { this->flags |= GFXP_FLAG_SHADOW; this->flags |= GFXP_FLAG_UPDATE; -#if PLATFORM_GC +#if !PLATFORM_N64 if (sDefaultSpecialFlags & GFXP_FLAG_ENLARGE) { this->flags |= GFXP_FLAG_ENLARGE; } else { @@ -370,7 +370,7 @@ Gfx* GfxPrint_Close(GfxPrint* this) { Gfx* ret; this->flags &= ~GFXP_FLAG_OPEN; -#if PLATFORM_GC +#if !PLATFORM_N64 gDPPipeSync(this->dList++); #endif ret = this->dList; diff --git a/src/code/rand.c b/src/code/rand.c index 917b1ecfc6..378f0456e9 100644 --- a/src/code/rand.c +++ b/src/code/rand.c @@ -53,7 +53,7 @@ */ static u32 sRandInt = 1; -#if PLATFORM_GC +#if !PLATFORM_N64 /** * Space to store a value to be re-interpreted as a float. * @@ -114,7 +114,7 @@ f32 Rand_ZeroOne(void) { #endif } -#if PLATFORM_GC +#if !PLATFORM_N64 /** * Returns a pseudo-random floating-point number between -0.5f and 0.5f by the same manner in which Rand_ZeroOne * generates its result. @@ -179,7 +179,7 @@ f32 Rand_ZeroOne_Variable(u32* rndNum) { #endif } -#if PLATFORM_GC +#if !PLATFORM_N64 /** * Generates the next pseudo-random floating-point number between -0.5f and 0.5f from the provided rndNum. * diff --git a/src/code/z_eff_ss_dead.c b/src/code/z_eff_ss_dead.c index 2a64a23f4a..3c1adf4cb6 100644 --- a/src/code/z_eff_ss_dead.c +++ b/src/code/z_eff_ss_dead.c @@ -30,7 +30,7 @@ void func_80026400(PlayState* play, Color_RGBA8* color, s16 arg2, s16 arg3) { Gfx* displayListHead; f32 cos; -#if PLATFORM_GC +#if !PLATFORM_N64 if (arg3 == 0) { return; } diff --git a/src/code/z_message.c b/src/code/z_message.c index eff41c44c2..29212d3182 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -10,7 +10,7 @@ #pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" -#if PLATFORM_N64 +#if !PLATFORM_GC #define OCARINA_BUTTON_A_PRIM_R 80 #define OCARINA_BUTTON_A_PRIM_G 150 #define OCARINA_BUTTON_A_PRIM_B 255 diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c index ed18c33c62..a2fc170e8e 100644 --- a/src/code/z_scene_table.c +++ b/src/code/z_scene_table.c @@ -137,7 +137,7 @@ Gfx sDefaultDisplayList[] = { gsSPEndDisplayList(), }; -#if PLATFORM_N64 // Scene_Draw is at end of file in GC versions +#if PLATFORM_N64 // Scene_Draw is at end of file in GC/iQue versions SceneDrawConfigFunc sSceneDrawConfigs[SDC_MAX] = { Scene_DrawConfigDefault, // SDC_DEFAULT @@ -1693,7 +1693,7 @@ void Scene_DrawConfigBesitu(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7910); } -#if PLATFORM_GC // Scene_Draw is at beginning of file in N64 versions +#if !PLATFORM_N64 // Scene_Draw is at beginning of file in N64 versions SceneDrawConfigFunc sSceneDrawConfigs[SDC_MAX] = { Scene_DrawConfigDefault, // SDC_DEFAULT diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index a5616563d7..bfc625d69a 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -2261,7 +2261,7 @@ void BossMo_UpdateCore(Actor* thisx, PlayState* play) { this->actor.flags &= ~ACTOR_FLAG_0; } -#if PLATFORM_GC +#if !PLATFORM_N64 BossMo_SfxTest(); #endif } @@ -3051,7 +3051,7 @@ void BossMo_DrawEffects(BossMoEffect* effect, PlayState* play) { CLOSE_DISPS(gfxCtx, "../z_boss_mo.c", 7482); } -#if PLATFORM_GC +#if !PLATFORM_N64 void BossMo_SfxTest(void) { // Appears to be a test function for sound effects. static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f }; diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index ff77304215..a0cecf0478 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -16,7 +16,7 @@ #define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) -#if PLATFORM_N64 +#if !PLATFORM_GC #define CURSOR_COLOR_R 0 #define CURSOR_COLOR_G 80 #define CURSOR_COLOR_B 255 diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c index db2b3558ec..1f5dcba140 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c @@ -2,7 +2,7 @@ #include "assets/textures/parameter_static/parameter_static.h" #include "assets/textures/icon_item_static/icon_item_static.h" -#if PLATFORM_N64 +#if !PLATFORM_GC #define KALEIDO_COLOR_COLLECT_UNK_R 80 #define KALEIDO_COLOR_COLLECT_UNK_G 150 #define KALEIDO_COLOR_COLLECT_UNK_B 255 diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index c72a47810a..936400e1c0 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -15,7 +15,7 @@ #include "assets/textures/icon_item_gameover_static/icon_item_gameover_static.h" #include "terminal.h" -#if PLATFORM_N64 +#if !PLATFORM_GC #define KALEIDO_COLOR_PROMPT_UNK_R 100 #define KALEIDO_COLOR_PROMPT_UNK_G 100 #define KALEIDO_COLOR_PROMPT_UNK_B 255 @@ -3663,7 +3663,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->state = PAUSE_STATE_CLOSING; WREG(2) = -6240; func_800F64E0(0); -#if PLATFORM_GC && OOT_NTSC +#if !PLATFORM_N64 && OOT_NTSC AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); #endif } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { @@ -3811,7 +3811,7 @@ void KaleidoScope_Update(PlayState* play) { WREG(2) = -6240; YREG(8) = pauseCtx->unk_204; func_800F64E0(0); -#if PLATFORM_GC && OOT_NTSC +#if !PLATFORM_N64 && OOT_NTSC AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); #endif } else { @@ -3839,7 +3839,7 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.buttonStatus[3] = BTN_ENABLED; gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE; Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL); -#if PLATFORM_GC && OOT_NTSC +#if !PLATFORM_N64 && OOT_NTSC AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); #endif } From 2ce648a7c674b08fbfe9d4ced935b4e4956963ac Mon Sep 17 00:00:00 2001 From: cadmic Date: Fri, 6 Sep 2024 05:46:44 -0700 Subject: [PATCH 24/86] Miscellaneous libultra header fixes (#2139) * Miscellaneous libultra header fixes * Fix bss? * Reword RCP timeout --- include/ultra64/convert.h | 3 --- include/ultra64/rcp.h | 2 +- include/variables.h | 8 ++++---- include/z64math.h | 5 +++++ src/code/fault_gc.c | 5 +++-- src/code/game.c | 8 ++++---- src/code/graph.c | 1 + src/code/irqmgr.c | 8 ++++---- src/code/rand.c | 3 ++- src/code/sys_math3d.c | 2 +- src/code/z_camera.c | 2 +- src/code/z_vimode.c | 2 +- src/libultra/io/vimodefpallan1.c | 18 +++++++++--------- src/libultra/io/vimodempallan1.c | 18 +++++++++--------- src/libultra/io/vimodentsclan1.c | 18 +++++++++--------- src/libultra/io/vimodepallan1.c | 18 +++++++++--------- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 4 ++-- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../actors/ovl_player_actor/z_player.c | 6 +++--- 19 files changed, 69 insertions(+), 64 deletions(-) diff --git a/include/ultra64/convert.h b/include/ultra64/convert.h index 02024d17fa..13679fc5b0 100644 --- a/include/ultra64/convert.h +++ b/include/ultra64/convert.h @@ -15,7 +15,4 @@ #define OS_PHYSICAL_TO_K0(x) (void*)(((u32)(x)+0x80000000)) #define OS_PHYSICAL_TO_K1(x) (void*)(((u32)(x)+0xA0000000)) -#define OS_MSEC_TO_CYCLES(n) OS_USEC_TO_CYCLES((n) * 1000) -#define OS_SEC_TO_CYCLES(n) OS_MSEC_TO_CYCLES((n) * 1000) - #endif diff --git a/include/ultra64/rcp.h b/include/ultra64/rcp.h index 86387ef5e8..9c97e8bd9f 100644 --- a/include/ultra64/rcp.h +++ b/include/ultra64/rcp.h @@ -529,7 +529,7 @@ #define VI_CTRL_ANTIALIAS_MODE_2 0x00200 // Bit [9:8] anti-alias mode: AA disabled, resampling enabled, operate as if everything is covered #define VI_CTRL_ANTIALIAS_MODE_3 0x00300 // Bit [9:8] anti-alias mode: AA disabled, resampling disabled, replicate pixels #define VI_CTRL_PIXEL_ADV_MASK 0x0F000 // [15:12] pixel advance mode -#define VI_CTRL_PIXEL_ADV(n) (((n) << 12) & VI_CTRL_PIXEL_ADV_MASK) // Bit [15:12] pixel advance mode: Always 3 on N64 +#define VI_CTRL_PIXEL_ADV_3 0x03000 // Bit [15:12] pixel advance mode: Always 3 on N64 #define VI_CTRL_DITHER_FILTER_ON 0x10000 // 16: dither-filter mode /* diff --git a/include/variables.h b/include/variables.h index fa09f0f54f..f7fc97a230 100644 --- a/include/variables.h +++ b/include/variables.h @@ -7,10 +7,10 @@ extern Mtx D_01000000; -extern u32 osTvType; -extern u32 osRomBase; -extern u32 osResetType; -extern u32 osCicId; +extern void* osRomBase; +extern s32 osTvType; +extern s32 osResetType; +extern s32 osCicId; extern u32 osMemSize; extern u8 osAppNMIBuffer[0x40]; diff --git a/include/z64math.h b/include/z64math.h index 7ed235e587..95a494a693 100644 --- a/include/z64math.h +++ b/include/z64math.h @@ -7,6 +7,11 @@ #define SQ(x) ((x)*(x)) #define VEC_SET(V,X,Y,Z) (V).x=(X);(V).y=(Y);(V).z=(Z) +typedef union FloatInt { + f32 f; + u32 i; +} FloatInt; + typedef struct Vec2f { f32 x, y; } Vec2f; // size = 0x08 diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c index d3e16ac59c..66bb0b0fa9 100644 --- a/src/code/fault_gc.c +++ b/src/code/fault_gc.c @@ -144,7 +144,8 @@ void Fault_ClientRunTask(FaultClientTask* task) { // Await done while (true) { - osSetTimer(&timer, OS_SEC_TO_CYCLES(1), 0, &queue, (OSMesg)timerMsgVal); + // Wait for 1 second + osSetTimer(&timer, OS_USEC_TO_CYCLES(1000000), 0, &queue, (OSMesg)timerMsgVal); osRecvMesg(&queue, &recMsg, OS_MESG_BLOCK); if (recMsg != (OSMesg)666) { @@ -653,7 +654,7 @@ void Fault_Wait5Seconds(void) { do { Fault_Sleep(1000 / 60); - } while ((osGetTime() - start) < OS_SEC_TO_CYCLES(5) + 1); + } while ((osGetTime() - start) <= OS_USEC_TO_CYCLES(5000000)); // 5 seconds sFaultInstance->autoScroll = true; } diff --git a/src/code/game.c b/src/code/game.c index e00bc74066..6cf7a875d4 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -302,22 +302,22 @@ void GameState_Update(GameState* gameState) { gfxCtx->xScale = gViConfigXScale; gfxCtx->yScale = gViConfigYScale; - if (SREG(63) == 6 || (SREG(63) == 2u && osTvType == OS_TV_NTSC)) { + if (SREG(63) == 6 || (SREG(63) == 2u && (u32)osTvType == OS_TV_NTSC)) { gfxCtx->viMode = &osViModeNtscLan1; gfxCtx->yScale = 1.0f; } - if (SREG(63) == 5 || (SREG(63) == 2u && osTvType == OS_TV_MPAL)) { + if (SREG(63) == 5 || (SREG(63) == 2u && (u32)osTvType == OS_TV_MPAL)) { gfxCtx->viMode = &osViModeMpalLan1; gfxCtx->yScale = 1.0f; } - if (SREG(63) == 4 || (SREG(63) == 2u && osTvType == OS_TV_PAL)) { + if (SREG(63) == 4 || (SREG(63) == 2u && (u32)osTvType == OS_TV_PAL)) { gfxCtx->viMode = &osViModePalLan1; gfxCtx->yScale = 1.0f; } - if (SREG(63) == 3 || (SREG(63) == 2u && osTvType == OS_TV_PAL)) { + if (SREG(63) == 3 || (SREG(63) == 2u && (u32)osTvType == OS_TV_PAL)) { gfxCtx->viMode = &osViModeFpalLan1; gfxCtx->yScale = 0.833f; } diff --git a/src/code/graph.c b/src/code/graph.c index 1f9ba5e30d..2b4777ea63 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -179,6 +179,7 @@ void Graph_TaskSet00(GraphicsContext* gfxCtx) { { CfbInfo* cfb; + // Schedule a message to be handled in 3 seconds, for RCP timeout osSetTimer(&timer, OS_USEC_TO_CYCLES(3000000), 0, &gfxCtx->queue, (OSMesg)666); osRecvMesg(&gfxCtx->queue, &msg, OS_MESG_BLOCK); diff --git a/src/code/irqmgr.c b/src/code/irqmgr.c index 7f630981b3..d623ddad88 100644 --- a/src/code/irqmgr.c +++ b/src/code/irqmgr.c @@ -164,7 +164,7 @@ void IrqMgr_HandlePreNMI(IrqMgr* irqMgr) { sIrqMgrResetTime = irqMgr->resetTime = osGetTime(); // Schedule a PRENMI450 message to be handled in 450ms - osSetTimer(&irqMgr->timer, OS_MSEC_TO_CYCLES(450), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI450_MSG); + osSetTimer(&irqMgr->timer, OS_USEC_TO_CYCLES(450000), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI450_MSG); IrqMgr_JamMesgToClients(irqMgr, (OSMesg)&irqMgr->prenmiMsg); } @@ -190,7 +190,7 @@ void IrqMgr_HandlePreNMI450(IrqMgr* irqMgr) { irqMgr->resetStatus = IRQ_RESET_STATUS_NMI; // Schedule a PRENMI480 message to be handled in 30ms - osSetTimer(&irqMgr->timer, OS_MSEC_TO_CYCLES(30), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI480_MSG); + osSetTimer(&irqMgr->timer, OS_USEC_TO_CYCLES(30000), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI480_MSG); // Send the NMI event to clients IrqMgr_SendMesgToClients(irqMgr, (OSMesg)&irqMgr->nmiMsg); } @@ -199,7 +199,7 @@ void IrqMgr_HandlePreNMI480(IrqMgr* irqMgr) { u32 result; // Schedule a PRENMI500 message to be handled in 20ms - osSetTimer(&irqMgr->timer, OS_MSEC_TO_CYCLES(20), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI500_MSG); + osSetTimer(&irqMgr->timer, OS_USEC_TO_CYCLES(20000), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI500_MSG); result = osAfterPreNMI(); if (result != 0) { @@ -207,7 +207,7 @@ void IrqMgr_HandlePreNMI480(IrqMgr* irqMgr) { // osAfterPreNMI failed, try again in 1ms //! @bug setting the same timer for a second time without letting the first one complete breaks //! the timer linked list - osSetTimer(&irqMgr->timer, OS_MSEC_TO_CYCLES(1), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI480_MSG); + osSetTimer(&irqMgr->timer, OS_USEC_TO_CYCLES(1000), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI480_MSG); } } diff --git a/src/code/rand.c b/src/code/rand.c index 378f0456e9..d6199b1890 100644 --- a/src/code/rand.c +++ b/src/code/rand.c @@ -42,6 +42,7 @@ * @note Original name: qrand.c */ #include "rand.h" +#include "z64math.h" #define RAND_MULTIPLIER 1664525 #define RAND_INCREMENT 1013904223 @@ -59,7 +60,7 @@ static u32 sRandInt = 1; * * @note Orignal name: __qrand_itemp */ -static fu sRandFloat; +static FloatInt sRandFloat; #endif /** diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index 570da1ab01..38fb383124 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -5,7 +5,7 @@ #include "macros.h" #include "sys_math3d.h" -#pragma increment_block_number "gc-eu:106 gc-eu-mq:106 gc-jp:106 gc-jp-ce:106 gc-jp-mq:106 gc-us:106 gc-us-mq:106" +#pragma increment_block_number "gc-eu:103 gc-eu-mq:103 gc-jp:103 gc-jp-ce:103 gc-jp-mq:103 gc-us:103 gc-us-mq:103" s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); diff --git a/src/code/z_camera.c b/src/code/z_camera.c index f368e964de..7cb7e712c6 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -4,7 +4,7 @@ #include "terminal.h" #include "overlays/actors/ovl_En_Horse/z_en_horse.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0" s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags); s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange); diff --git a/src/code/z_vimode.c b/src/code/z_vimode.c index d9478867fb..8abcb62e79 100644 --- a/src/code/z_vimode.c +++ b/src/code/z_vimode.c @@ -85,7 +85,7 @@ void ViMode_Configure(ViMode* viMode, s32 type, s32 tvType, s32 loRes, s32 antia yScaleHiOddField = modeF ? (loResInterlaced ? (F210(0.75) << 16) : (F210(0.5) << 16)) : 0; viMode->customViMode.type = type; - viMode->customViMode.comRegs.ctrl = VI_CTRL_PIXEL_ADV(3) | VI_CTRL_GAMMA_ON | VI_CTRL_GAMMA_DITHER_ON | + viMode->customViMode.comRegs.ctrl = VI_CTRL_PIXEL_ADV_3 | VI_CTRL_GAMMA_ON | VI_CTRL_GAMMA_DITHER_ON | (!loResDeinterlaced ? VI_CTRL_SERRATE_ON : 0) | (antialiasOn ? VI_CTRL_DIVOT_ON : 0) | (fb32Bit ? VI_CTRL_TYPE_32 : VI_CTRL_TYPE_16); diff --git a/src/libultra/io/vimodefpallan1.c b/src/libultra/io/vimodefpallan1.c index 5fb019cdfb..37cb5ff557 100644 --- a/src/libultra/io/vimodefpallan1.c +++ b/src/libultra/io/vimodefpallan1.c @@ -16,15 +16,15 @@ OSViMode osViModeFpalLan1 = { { // comRegs VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | - VI_CTRL_PIXEL_ADV(3), // ctrl - WIDTH(320), // width - BURST(58, 30, 4, 69), // burst - VSYNC(625), // vSync - HSYNC(3177, 23), // hSync - LEAP(3183, 3181), // leap - HSTART(128, 768), // hStart - SCALE(2, 0), // xScale - VCURRENT(0), // vCurrent + VI_CTRL_PIXEL_ADV_3, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent }, { // fldRegs { diff --git a/src/libultra/io/vimodempallan1.c b/src/libultra/io/vimodempallan1.c index 23d53987b0..bcc4273afb 100644 --- a/src/libultra/io/vimodempallan1.c +++ b/src/libultra/io/vimodempallan1.c @@ -16,15 +16,15 @@ OSViMode osViModeMpalLan1 = { { // comRegs VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | - VI_CTRL_PIXEL_ADV(3), // ctrl - WIDTH(320), // width - BURST(57, 30, 5, 70), // burst - VSYNC(525), // vSync - HSYNC(3089, 4), // hSync - LEAP(3097, 3098), // leap - HSTART(108, 748), // hStart - SCALE(2, 0), // xScale - VCURRENT(0), // vCurrent + VI_CTRL_PIXEL_ADV_3, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(525), // vSync + HSYNC(3089, 4), // hSync + LEAP(3097, 3098), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent }, { // fldRegs { diff --git a/src/libultra/io/vimodentsclan1.c b/src/libultra/io/vimodentsclan1.c index 19a7160ac8..a29d15129f 100644 --- a/src/libultra/io/vimodentsclan1.c +++ b/src/libultra/io/vimodentsclan1.c @@ -16,15 +16,15 @@ OSViMode osViModeNtscLan1 = { { // comRegs VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | - VI_CTRL_PIXEL_ADV(3), // ctrl - WIDTH(320), // width - BURST(57, 34, 5, 62), // burst - VSYNC(525), // vSync - HSYNC(3093, 0), // hSync - LEAP(3093, 3093), // leap - HSTART(108, 748), // hStart - SCALE(2, 0), // xScale - VCURRENT(0), // vCurrent + VI_CTRL_PIXEL_ADV_3, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(525), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent }, { // fldRegs { diff --git a/src/libultra/io/vimodepallan1.c b/src/libultra/io/vimodepallan1.c index 7a8db603f4..d656dc4f94 100644 --- a/src/libultra/io/vimodepallan1.c +++ b/src/libultra/io/vimodepallan1.c @@ -16,15 +16,15 @@ OSViMode osViModePalLan1 = { { // comRegs VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | - VI_CTRL_PIXEL_ADV(3), // ctrl - WIDTH(320), // width - BURST(58, 30, 4, 69), // burst - VSYNC(625), // vSync - HSYNC(3177, 23), // hSync - LEAP(3183, 3181), // leap - HSTART(128, 768), // hStart - SCALE(2, 0), // xScale - VCURRENT(0), // vCurrent + VI_CTRL_PIXEL_ADV_3, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent }, { // fldRegs { 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 17cb04f174..1ac2d871e1 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -100,13 +100,13 @@ 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 }; -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" static EnGanonMant* sCape; // TODO: There's probably a way to match BSS ordering 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 "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" static s32 sSeed1; static s32 sSeed2; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 802ed831ab..34237596e5 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:157 gc-eu-mq:157 gc-jp:159 gc-jp-ce:159 gc-jp-mq:159 gc-us:159 gc-us-mq:159" +#pragma increment_block_number "gc-eu:154 gc-eu-mq:154 gc-jp:156 gc-jp-ce:156 gc-jp-mq:156 gc-us:156 gc-us-mq:156" #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 bd30f5bff7..2bd876a32d 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -354,19 +354,19 @@ void Player_Action_CsAction(Player* this, PlayState* play); // .bss part 1 -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" static s32 D_80858AA0; // TODO: There's probably a way to match BSS ordering 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 "gc-eu:128 gc-eu-mq:128 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" static s32 D_80858AA4; static Vec3f sInteractWallCheckResult; static Input* sControlInput; -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" +#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" // .data From d374e71cb83cef8f4b73679ffc55e13e665ec911 Mon Sep 17 00:00:00 2001 From: cadmic Date: Fri, 6 Sep 2024 10:32:29 -0700 Subject: [PATCH 25/86] Fix size of leoDiskStack (#2143) --- include/ultra64/leodrive.h | 2 +- src/libleo/api/cacreateleomanager.c | 3 ++- src/libleo/api/cjcreateleomanager.c | 3 ++- src/libleo/leo/leointerrupt.c | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/include/ultra64/leodrive.h b/include/ultra64/leodrive.h index cb70b9a1fc..fbbbef8e0f 100644 --- a/include/ultra64/leodrive.h +++ b/include/ultra64/leodrive.h @@ -187,7 +187,7 @@ extern const s32 LEORAM_BYTE[]; extern s32 __leoActive; extern LEOVersion __leoVersion; -extern STACK(leoDiskStack, 0xFF0); +extern STACK(leoDiskStack, 0x1000); extern OSPiHandle* LEOPiInfo; diff --git a/src/libleo/api/cacreateleomanager.c b/src/libleo/api/cacreateleomanager.c index 7628f58896..1f2caf6d97 100644 --- a/src/libleo/api/cacreateleomanager.c +++ b/src/libleo/api/cacreateleomanager.c @@ -1,4 +1,5 @@ #include "global.h" +#include "ultra64/asm.h" #include "ultra64/leo.h" #include "ultra64/leoappli.h" #include "ultra64/leodrive.h" @@ -25,7 +26,7 @@ s32 LeoCACreateLeoManager(s32 comPri, s32 intPri, OSMesg* cmdBuf, s32 cmdMsgCnt) driveRomHandle = osDriveRomInit(); __leoActive = true; - __osSetHWIntrRoutine(OS_INTR_CART, __osLeoInterrupt, STACK_TOP(leoDiskStack)); + __osSetHWIntrRoutine(OS_INTR_CART, __osLeoInterrupt, (u8*)STACK_TOP(leoDiskStack) - FRAMESZ(SZREG * NARGSAVE)); leoInitialize(comPri, intPri, cmdBuf, cmdMsgCnt); if (osResetType == 1) { // NMI diff --git a/src/libleo/api/cjcreateleomanager.c b/src/libleo/api/cjcreateleomanager.c index c10e1fd263..e3a5183005 100644 --- a/src/libleo/api/cjcreateleomanager.c +++ b/src/libleo/api/cjcreateleomanager.c @@ -1,4 +1,5 @@ #include "global.h" +#include "ultra64/asm.h" #include "ultra64/leo.h" #include "ultra64/leoappli.h" #include "ultra64/leodrive.h" @@ -25,7 +26,7 @@ s32 LeoCJCreateLeoManager(s32 comPri, s32 intPri, OSMesg* cmdBuf, s32 cmdMsgCnt) driveRomHandle = osDriveRomInit(); __leoActive = true; - __osSetHWIntrRoutine(OS_INTR_CART, __osLeoInterrupt, STACK_TOP(leoDiskStack)); + __osSetHWIntrRoutine(OS_INTR_CART, __osLeoInterrupt, (u8*)STACK_TOP(leoDiskStack) - FRAMESZ(SZREG * NARGSAVE)); leoInitialize(comPri, intPri, cmdBuf, cmdMsgCnt); if (osResetType == 1) { // NMI diff --git a/src/libleo/leo/leointerrupt.c b/src/libleo/leo/leointerrupt.c index e11d345080..d9e2175ad3 100644 --- a/src/libleo/leo/leointerrupt.c +++ b/src/libleo/leo/leointerrupt.c @@ -9,7 +9,7 @@ extern OSHWIntr __OSGlobalIntMask; void __osLeoAbnormalResume(void); void __osLeoResume(void); -STACK(leoDiskStack, 0xFF0); +STACK(leoDiskStack, 0x1000); s32 __osLeoInterrupt(void) { u32 stat = 0; From a8151899cf69722fd5c3e30a665ef07b1fe38b1d Mon Sep 17 00:00:00 2001 From: cadmic Date: Fri, 6 Sep 2024 11:02:08 -0700 Subject: [PATCH 26/86] [ntsc-1.2] Match z_actor_dlftbls.c (#2144) * Match z_actor_dlftbls.c * Update src/code/z_actor_dlftbls.c Co-authored-by: Dragorn421 --------- Co-authored-by: Dragorn421 --- include/fault.h | 3 +++ src/code/fault_n64.c | 4 ++-- src/code/z_actor_dlftbls.c | 34 +++++++++++++++++++++++++++++++--- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/include/fault.h b/include/fault.h index d72b9691c4..c398a003cd 100644 --- a/include/fault.h +++ b/include/fault.h @@ -72,6 +72,8 @@ void Fault_DrawText(s32 x, s32 y, const char* fmt, ...); #if PLATFORM_N64 +void func_800AE1F8(void); + // Not implemented. Silently noop-ing is fine, these are not essential for functionality. #define Fault_SetFontColor(color) (void)0 #define Fault_SetCharPad(padW, padH) (void)0 @@ -90,6 +92,7 @@ s32 Fault_VPrintf(const char* fmt, va_list args); #if PLATFORM_N64 extern vs32 gFaultMsgId; +extern volatile OSThread* gFaultFaultedThread; #define FAULT_MSG_ID gFaultMsgId diff --git a/src/code/fault_n64.c b/src/code/fault_n64.c index 92fd0cc8db..2a4a423a6d 100644 --- a/src/code/fault_n64.c +++ b/src/code/fault_n64.c @@ -93,7 +93,7 @@ FaultCursorCoords sFaultCursorPos; vs32 sFaultExit; vs32 gFaultMsgId; vs32 sFaultDisplayEnable; -OSThread* sFaultFaultedThread; +volatile OSThread* gFaultFaultedThread; s32 B_80122570[16]; s32 B_801225B0[8]; // Unused (file padding?) @@ -768,7 +768,7 @@ void Fault_ThreadEntry(void* arg0) { osSyncPrintf("FindFaultedThread()=%08x\n", faultedThread); } } while (faultedThread == NULL); - sFaultFaultedThread = faultedThread; + gFaultFaultedThread = faultedThread; Fault_LogThreadContext(faultedThread); osSyncPrintf("%d %s %d:%s = %d\n", osGetThreadId(NULL), "fault.c", 1454, "fault_display_enable", sFaultDisplayEnable); diff --git a/src/code/z_actor_dlftbls.c b/src/code/z_actor_dlftbls.c index 05e7e8d3f4..6e1fdb97cf 100644 --- a/src/code/z_actor_dlftbls.c +++ b/src/code/z_actor_dlftbls.c @@ -98,19 +98,47 @@ void ActorOverlayTable_LogPrint(void) { void ActorOverlayTable_FaultPrint(void* arg0, void* arg1) { ActorOverlay* overlayEntry; u32 overlaySize; + uintptr_t ramStart; + uintptr_t ramEnd; + u32 offset; +#if PLATFORM_N64 + uintptr_t pc = gFaultFaultedThread != NULL ? gFaultFaultedThread->context.pc : 0; + uintptr_t ra = gFaultFaultedThread != NULL ? gFaultFaultedThread->context.ra : 0; + u32 i; +#else s32 i; +#endif +#if PLATFORM_N64 + func_800AE1F8(); + + Fault_Printf("actor_dlftbls %u\n", gMaxActorId); + Fault_Printf("No. RamStart-RamEnd Offset\n"); +#else Fault_SetCharPad(-2, 0); Fault_Printf("actor_dlftbls %u\n", gMaxActorId); Fault_Printf("No. RamStart- RamEnd cn Name\n"); +#endif for (i = 0, overlayEntry = &gActorOverlayTable[0]; i < gMaxActorId; i++, overlayEntry++) { overlaySize = (uintptr_t)overlayEntry->vramEnd - (uintptr_t)overlayEntry->vramStart; - if (overlayEntry->loadedRamAddr != NULL) { - Fault_Printf("%3d %08x-%08x %3d %s\n", i, overlayEntry->loadedRamAddr, - (uintptr_t)overlayEntry->loadedRamAddr + overlaySize, overlayEntry->numLoaded, + ramStart = (uintptr_t)overlayEntry->loadedRamAddr; + ramEnd = ramStart + overlaySize; + offset = (uintptr_t)overlayEntry->vramStart - ramStart; + if (ramStart != 0) { +#if PLATFORM_N64 + Fault_Printf("%3d %08x-%08x %08x", i, ramStart, ramEnd, offset); + if (ramStart <= pc && pc < ramEnd) { + Fault_Printf(" PC:%08x", pc + offset); + } else if (ramStart <= ra && ra < ramEnd) { + Fault_Printf(" RA:%08x", ra + offset); + } + Fault_Printf("\n"); +#else + Fault_Printf("%3d %08x-%08x %3d %s\n", i, ramStart, ramEnd, overlayEntry->numLoaded, (OOT_DEBUG && overlayEntry->name != NULL) ? overlayEntry->name : ""); +#endif } } } From 02816c410c2024b0e84af83314f970ce1a798ebf Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Sep 2024 04:00:12 +0200 Subject: [PATCH 27/86] T() macro 8 (#2142) * T() macro in fault * T() macro in game.c, gfxprint.c * T() macro in ucode_disas.c * T() macro in z_actor.c * T() macro in z_message.c * push fault key combo T() * z_message T: koko -> "here" * format --- src/code/fault_gc.c | 45 ++++++----- src/code/fault_n64.c | 28 ++++--- src/code/game.c | 2 +- src/code/gfxprint.c | 2 +- src/code/ucode_disas.c | 30 +++---- src/code/z_actor.c | 65 +++++++-------- src/code/z_message.c | 178 ++++++++++++++++++----------------------- 7 files changed, 166 insertions(+), 184 deletions(-) diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c index 66bb0b0fa9..ffed05048c 100644 --- a/src/code/fault_gc.c +++ b/src/code/fault_gc.c @@ -215,7 +215,9 @@ void Fault_AddClient(FaultClient* client, void* callback, void* arg0, void* arg1 end: osSetIntMask(mask); if (alreadyExists) { - osSyncPrintf(VT_COL(RED, WHITE) "fault_AddClient: %08x は既にリスト中にある\n" VT_RST, client); + osSyncPrintf(VT_COL(RED, WHITE) T("fault_AddClient: %08x は既にリスト中にある\n", + "fault_AddClient: %08x is already in the list\n") VT_RST, + client); } } @@ -251,7 +253,9 @@ void Fault_RemoveClient(FaultClient* client) { osSetIntMask(mask); if (listIsEmpty) { - osSyncPrintf(VT_COL(RED, WHITE) "fault_RemoveClient: %08x リスト不整合です\n" VT_RST, client); + osSyncPrintf(VT_COL(RED, WHITE) T("fault_RemoveClient: %08x リスト不整合です\n", + "fault_RemoveClient: %08x list inconsistency\n") VT_RST, + client); } } @@ -293,7 +297,9 @@ void Fault_AddAddrConvClient(FaultAddrConvClient* client, void* callback, void* end: osSetIntMask(mask); if (alreadyExists) { - osSyncPrintf(VT_COL(RED, WHITE) "fault_AddressConverterAddClient: %08x は既にリスト中にある\n" VT_RST, client); + osSyncPrintf(VT_COL(RED, WHITE) T("fault_AddressConverterAddClient: %08x は既にリスト中にある\n", + "fault_AddressConverterAddClient: %08x is already in the list\n") VT_RST, + client); } } @@ -327,7 +333,8 @@ void Fault_RemoveAddrConvClient(FaultAddrConvClient* client) { osSetIntMask(mask); if (listIsEmpty) { - osSyncPrintf(VT_COL(RED, WHITE) "fault_AddressConverterRemoveClient: %08x は既にリスト中にある\n" VT_RST, + osSyncPrintf(VT_COL(RED, WHITE) T("fault_AddressConverterRemoveClient: %08x は既にリスト中にある\n", + "fault_AddressConverterRemoveClient: %08x is already in the list\n") VT_RST, client); } } @@ -675,14 +682,16 @@ void Fault_WaitForButtonCombo(void) { if (1) {} if (1) {} - // KeyWaitB (LRZ Up Down Up Down Left Left Right Right B A START) - osSyncPrintf( - VT_FGCOL(WHITE) "KeyWaitB (LRZ " VT_FGCOL(WHITE) "上" VT_FGCOL(YELLOW) "下 " VT_FGCOL(YELLOW) "上" VT_FGCOL(WHITE) "下 " VT_FGCOL(WHITE) "左" VT_FGCOL( - YELLOW) "左 " VT_FGCOL(YELLOW) "右" VT_FGCOL(WHITE) "右 " VT_FGCOL(GREEN) "B" VT_FGCOL(BLUE) "A" VT_FGCOL(RED) "START" VT_FGCOL(WHITE) ")" VT_RST - "\n"); - // KeyWaitB'(LR Left Right START) - osSyncPrintf(VT_FGCOL(WHITE) "KeyWaitB'(LR左" VT_FGCOL(YELLOW) "右 +" VT_FGCOL(RED) "START" VT_FGCOL( - WHITE) ")" VT_RST "\n"); + // "KeyWaitB (L R Z Up Down Up Down Left Left Right Right B A START)" + osSyncPrintf(VT_FGCOL(WHITE) T("KeyWaitB (LRZ ", "KeyWaitB (L R Z ") VT_FGCOL(WHITE) T("上", "Up ") + VT_FGCOL(YELLOW) T("下 ", "Down ") VT_FGCOL(YELLOW) T("上", "Up ") VT_FGCOL(WHITE) + T("下 ", "Down ") VT_FGCOL(WHITE) T("左", "Left ") VT_FGCOL(YELLOW) T("左 ", "Left ") + VT_FGCOL(YELLOW) T("右", "Right ") VT_FGCOL(WHITE) T("右 ", "Right ") VT_FGCOL(GREEN) + T("B", "B ") VT_FGCOL(BLUE) T("A", "A ") + VT_FGCOL(RED) "START" VT_FGCOL(WHITE) ")" VT_RST "\n"); + // "KeyWaitB'(L R Left Right +START)" + osSyncPrintf(VT_FGCOL(WHITE) T("KeyWaitB'(LR左", "KeyWaitB'(L R Left ") VT_FGCOL(YELLOW) T("右 +", "Right +") + VT_FGCOL(RED) "START" VT_FGCOL(WHITE) ")" VT_RST "\n"); Fault_SetForeColor(GPACK_RGBA5551(255, 255, 255, 1)); Fault_SetBackColor(GPACK_RGBA5551(0, 0, 0, 1)); @@ -1185,20 +1194,20 @@ void Fault_ThreadEntry(void* arg) { if (msg == FAULT_MSG_CPU_BREAK) { sFaultInstance->msgId = (u32)FAULT_MSG_CPU_BREAK; - // Fault Manager: OS_EVENT_CPU_BREAK received - osSyncPrintf("フォルトマネージャ:OS_EVENT_CPU_BREAKを受信しました\n"); + osSyncPrintf(T("フォルトマネージャ:OS_EVENT_CPU_BREAKを受信しました\n", + "Fault Manager: OS_EVENT_CPU_BREAK received\n")); } else if (msg == FAULT_MSG_FAULT) { sFaultInstance->msgId = (u32)FAULT_MSG_FAULT; - // Fault Manager: OS_EVENT_FAULT received - osSyncPrintf("フォルトマネージャ:OS_EVENT_FAULTを受信しました\n"); + osSyncPrintf( + T("フォルトマネージャ:OS_EVENT_FAULTを受信しました\n", "Fault Manager: OS_EVENT_FAULT received\n")); } else if (msg == FAULT_MSG_UNK) { Fault_UpdatePad(); faultedThread = NULL; continue; } else { sFaultInstance->msgId = (u32)FAULT_MSG_UNK; - // Fault Manager: Unknown message received - osSyncPrintf("フォルトマネージャ:不明なメッセージを受信しました\n"); + osSyncPrintf(T("フォルトマネージャ:不明なメッセージを受信しました\n", + "Fault Manager: Unknown message received\n")); } faultedThread = __osGetCurrFaultedThread(); diff --git a/src/code/fault_n64.c b/src/code/fault_n64.c index 2a4a423a6d..92b1976aa2 100644 --- a/src/code/fault_n64.c +++ b/src/code/fault_n64.c @@ -449,11 +449,14 @@ void Fault_WaitForButtonCombo(void) { s32 count; s32 pad[4]; - // KeyWaitB (LRZ Up Down Up Down Left Left Right Right B A START) - osSyncPrintf( - VT_FGCOL(WHITE) "KeyWaitB (LRZ " VT_FGCOL(WHITE) "上" VT_FGCOL(YELLOW) "下 " VT_FGCOL(YELLOW) "上" VT_FGCOL(WHITE) "下 " VT_FGCOL(WHITE) "左" VT_FGCOL( - YELLOW) "左 " VT_FGCOL(YELLOW) "右" VT_FGCOL(WHITE) "右 " VT_FGCOL(GREEN) "B" VT_FGCOL(BLUE) "A" VT_FGCOL(RED) "START" VT_FGCOL(WHITE) ")" VT_RST - "\n"); + // "KeyWaitB (L R Z Up Down Up Down Left Left Right Right B A START)" + osSyncPrintf(VT_FGCOL(WHITE) T("KeyWaitB (LRZ ", "KeyWaitB (L R Z ") VT_FGCOL(WHITE) T("上", "Up ") + VT_FGCOL(YELLOW) T("下 ", "Down ") VT_FGCOL(YELLOW) T("上", "Up ") VT_FGCOL(WHITE) + T("下 ", "Down ") VT_FGCOL(WHITE) T("左", "Left ") VT_FGCOL(YELLOW) T("左 ", "Left ") + VT_FGCOL(YELLOW) T("右", "Right ") VT_FGCOL(WHITE) T("右 ", "Right ") VT_FGCOL(GREEN) + T("B", "B ") VT_FGCOL(BLUE) T("A", "A ") + VT_FGCOL(RED) "START" VT_FGCOL(WHITE) ")" VT_RST "\n"); + x = 0; y = 0; count = 0; @@ -585,8 +588,7 @@ void Fault_WaitForButtonCombo(void) { if ((btnCur == (BTN_A | BTN_B | BTN_START)) && (btnPress == BTN_START)) { f32 comboTimeSeconds = OS_CYCLES_TO_USEC(osGetTime() - comboStartTime) / 1000000.0f; - // Input time %f seconds - osSyncPrintf("入力時間 %f 秒\n", comboTimeSeconds); + osSyncPrintf(T("入力時間 %f 秒\n", "Input time %f seconds\n"), comboTimeSeconds); if (comboTimeSeconds <= 50.0f) { x = 11; } else { @@ -750,16 +752,16 @@ void Fault_ThreadEntry(void* arg0) { osRecvMesg(&gFaultMgr.queue, &msg, OS_MESG_BLOCK); if (msg == FAULT_MSG_CPU_BREAK) { gFaultMsgId = (s32)FAULT_MSG_CPU_BREAK; - // Fault Manager: OS_EVENT_CPU_BREAK received - osSyncPrintf("フォルトマネージャ:OS_EVENT_CPU_BREAKを受信しました\n"); + osSyncPrintf(T("フォルトマネージャ:OS_EVENT_CPU_BREAKを受信しました\n", + "Fault Manager: OS_EVENT_CPU_BREAK received\n")); } else if (msg == FAULT_MSG_FAULT) { gFaultMsgId = (s32)FAULT_MSG_FAULT; - // Fault Manager: OS_EVENT_FAULT received - osSyncPrintf("フォルトマネージャ:OS_EVENT_FAULTを受信しました\n"); + osSyncPrintf( + T("フォルトマネージャ:OS_EVENT_FAULTを受信しました\n", "Fault Manager: OS_EVENT_FAULT received\n")); } else { gFaultMsgId = (s32)FAULT_MSG_UNK; - // Fault Manager: Unknown message received - osSyncPrintf("フォルトマネージャ:不明なメッセージを受信しました\n"); + osSyncPrintf(T("フォルトマネージャ:不明なメッセージを受信しました\n", + "Fault Manager: Unknown message received\n")); } faultedThread = __osGetCurrFaultedThread(); osSyncPrintf("__osGetCurrFaultedThread()=%08x\n", faultedThread); diff --git a/src/code/game.c b/src/code/game.c index 6cf7a875d4..af22e79498 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -533,7 +533,7 @@ void* GameState_Alloc(GameState* gameState, size_t size, const char* file, int l void* ret; if (THA_IsCrash(&gameState->tha)) { - PRINTF("ハイラルは滅亡している\n"); + PRINTF(T("ハイラルは滅亡している\n", "Hyrule is destroyed\n")); ret = NULL; } else if ((u32)THA_GetRemaining(&gameState->tha) < size) { PRINTF(T("滅亡寸前のハイラルには %d バイトの余力もない(滅亡まであと %d バイト)\n", diff --git a/src/code/gfxprint.c b/src/code/gfxprint.c index 6307324edb..dd80bcfd19 100644 --- a/src/code/gfxprint.c +++ b/src/code/gfxprint.c @@ -361,7 +361,7 @@ void GfxPrint_Open(GfxPrint* this, Gfx* dList) { GfxPrint_Setup(this); } else { #if PLATFORM_N64 || OOT_DEBUG - osSyncPrintf("gfxprint_open:2重オープンです\n"); + osSyncPrintf(T("gfxprint_open:2重オープンです\n", "gfxprint_open: Double open\n")); #endif } } diff --git a/src/code/ucode_disas.c b/src/code/ucode_disas.c index a3540390c5..c0bab3f994 100644 --- a/src/code/ucode_disas.c +++ b/src/code/ucode_disas.c @@ -222,7 +222,7 @@ void UCodeDisas_SetCurUCodeImpl(UCodeDisas* this, void* ptr) { } } if (i >= this->ucodeInfoCount) { - DISAS_LOG("マイクロコードが一致しなかった\n"); // "Microcode did not match" + DISAS_LOG(T("マイクロコードが一致しなかった\n", "Microcode did not match\n")); this->ucodeType = UCODE_NULL; } } @@ -413,7 +413,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { settile.shiftt, (settile.cs << 1) + settile.ms, settile.masks, settile.shifts); if (this->tileSyncRequired) { - DISAS_LOG("### TileSyncが必要です。\n"); + DISAS_LOG(T("### TileSyncが必要です。\n", "### TileSync is required.\n")); this->syncErr++; } } break; @@ -432,7 +432,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { loadtile.th); if (this->loadSyncRequired) { - DISAS_LOG("### LoadSyncが必要です。\n"); + DISAS_LOG(T("### LoadSyncが必要です。\n", "### LoadSync is required.\n")); this->syncErr++; } this->pipeSyncRequired = true; @@ -476,7 +476,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { UCodeDisas_GetCombineAlphaName(setcombine.Ad1, COMBINER_D)); if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -529,7 +529,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { this->modeH |= s2; if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -571,7 +571,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { this->modeL |= s2; if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -582,7 +582,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { this->modeL = curGfx->words.w1; if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -632,7 +632,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { (curGfx->dma.len & 0xFFF) + 1, curGfx->setimg.dram, addr); if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -641,7 +641,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { DISAS_LOG("gsDPSetDepthImage(0x%08x(0x%08x)),", curGfx->setimg.dram, addr); if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -668,7 +668,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { curGfx->setcolor.b, curGfx->setcolor.a); if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -678,7 +678,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { curGfx->setcolor.b, curGfx->setcolor.a); if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -688,7 +688,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { curGfx->setcolor.b, curGfx->setcolor.a); if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -697,7 +697,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { DISAS_LOG("gsDPSetFillColor(0x%08x),", curGfx->setcolor.color); if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -706,7 +706,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { DISAS_LOG("gsDPSetPrimDepth(%d, %d),", curGfx->setprimdepth.z, curGfx->setprimdepth.dz); if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; @@ -721,7 +721,7 @@ void UCodeDisas_Disassemble(UCodeDisas* this, Gfx* ptr) { DISAS_LOG("gsDPFullSync(),"); if (this->pipeSyncRequired) { - DISAS_LOG("### PipeSyncが必要です。\n"); + DISAS_LOG(T("### PipeSyncが必要です。\n", "### PipeSync is required.\n")); this->syncErr++; } } break; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index c74f29f503..f1ff2cfb4a 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -911,8 +911,7 @@ void Actor_Destroy(Actor* actor, PlayState* play) { overlayEntry = actor->overlayEntry; name = overlayEntry->name != NULL ? overlayEntry->name : ""; - // "No Actor class destruct [%s]" - PRINTF("Actorクラス デストラクトがありません [%s]\n" VT_RST, name); + PRINTF(T("Actorクラス デストラクトがありません [%s]\n", "No Actor class destruct [%s]\n") VT_RST, name); #endif } } @@ -2420,13 +2419,13 @@ void Actor_FaultPrint(Actor* actor, char* command) { overlayEntry = actor->overlayEntry; name = overlayEntry->name != NULL ? overlayEntry->name : ""; - PRINTF("アクターの名前(%08x:%s)\n", actor, name); // "Actor name (%08x:%s)" + PRINTF(T("アクターの名前(%08x:%s)\n", "Actor name (%08x:%s)\n"), actor, name); #else name = ""; #endif if (command != NULL) { - PRINTF("コメント:%s\n", command); // "Command:%s" + PRINTF(T("コメント:%s\n", "Command: %s\n"), command); } Fault_SetCursor(48, 24); @@ -2830,7 +2829,7 @@ void func_80031C3C(ActorContext* actorCtx, PlayState* play) { } } - ACTOR_DEBUG_PRINTF("絶対魔法領域解放\n"); // "Absolute magic field deallocation" + ACTOR_DEBUG_PRINTF(T("絶対魔法領域解放\n", "Absolute magic field deallocation\n")); if (actorCtx->absoluteSpace != NULL) { ZELDA_ARENA_FREE(actorCtx->absoluteSpace, "../z_actor.c", 6731); @@ -2900,24 +2899,24 @@ void Actor_FreeOverlay(ActorOverlay* actorOverlay) { PRINTF(VT_FGCOL(CYAN)); if (actorOverlay->numLoaded == 0) { - ACTOR_DEBUG_PRINTF("アクタークライアントが0になりました\n"); // "Actor client is now 0" + ACTOR_DEBUG_PRINTF(T("アクタークライアントが0になりました\n", "Actor clients are now 0\n")); if (actorOverlay->loadedRamAddr != NULL) { if (actorOverlay->allocType & ACTOROVL_ALLOC_PERSISTENT) { - ACTOR_DEBUG_PRINTF("オーバーレイ解放しません\n"); // "Overlay will not be deallocated" + ACTOR_DEBUG_PRINTF(T("オーバーレイ解放しません\n", "Overlay will not be deallocated\n")); } else if (actorOverlay->allocType & ACTOROVL_ALLOC_ABSOLUTE) { - // "Absolute magic field reserved, so deallocation will not occur" - ACTOR_DEBUG_PRINTF("絶対魔法領域確保なので解放しません\n"); + ACTOR_DEBUG_PRINTF(T("絶対魔法領域確保なので解放しません\n", + "Absolute magic field reserved, so deallocation will not occur\n")); actorOverlay->loadedRamAddr = NULL; } else { - ACTOR_DEBUG_PRINTF("オーバーレイ解放します\n"); // "Overlay deallocated" + ACTOR_DEBUG_PRINTF(T("オーバーレイ解放します\n", "Overlay deallocated\n")); ZELDA_ARENA_FREE(actorOverlay->loadedRamAddr, "../z_actor.c", 6834); actorOverlay->loadedRamAddr = NULL; } } } else { - // "%d of actor client remains" - ACTOR_DEBUG_PRINTF("アクタークライアントはあと %d 残っています\n", actorOverlay->numLoaded); + ACTOR_DEBUG_PRINTF(T("アクタークライアントはあと %d 残っています\n", "%d of actor client remaining\n"), + actorOverlay->numLoaded); } PRINTF(VT_RST); @@ -2943,32 +2942,31 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos overlaySize = (uintptr_t)overlayEntry->vramEnd - (uintptr_t)overlayEntry->vramStart; - // "Actor class addition [%d:%s]" - ACTOR_DEBUG_PRINTF("アクタークラス追加 [%d:%s]\n", actorId, name); + ACTOR_DEBUG_PRINTF(T("アクタークラス追加 [%d:%s]\n", "Actor class addition [%d:%s]\n"), actorId, name); if (actorCtx->total > ACTOR_NUMBER_MAX) { - // "Actor set number exceeded" - PRINTF(VT_COL(YELLOW, BLACK) "Actorセット数オーバー\n" VT_RST); + PRINTF(VT_COL(YELLOW, BLACK) T("Actorセット数オーバー\n", "Actor set number exceeded\n") VT_RST); return NULL; } if (overlayEntry->vramStart == NULL) { - ACTOR_DEBUG_PRINTF("オーバーレイではありません\n"); // "Not an overlay" + ACTOR_DEBUG_PRINTF(T("オーバーレイではありません\n", "Not an overlay\n")); profile = overlayEntry->profile; } else { if (overlayEntry->loadedRamAddr != NULL) { - ACTOR_DEBUG_PRINTF("既にロードされています\n"); // "Already loaded" + ACTOR_DEBUG_PRINTF(T("既にロードされています\n", "Already loaded\n")); } else { if (overlayEntry->allocType & ACTOROVL_ALLOC_ABSOLUTE) { ASSERT(overlaySize <= ACTOROVL_ABSOLUTE_SPACE_SIZE, "actor_segsize <= AM_FIELD_SIZE", "../z_actor.c", 6934); if (actorCtx->absoluteSpace == NULL) { - // "AMF: absolute magic field" - actorCtx->absoluteSpace = ZELDA_ARENA_MALLOC_R(ACTOROVL_ABSOLUTE_SPACE_SIZE, "AMF:絶対魔法領域", 0); - // "Absolute magic field reservation - %d bytes reserved" - ACTOR_DEBUG_PRINTF("絶対魔法領域確保 %d バイト確保\n", ACTOROVL_ABSOLUTE_SPACE_SIZE); + actorCtx->absoluteSpace = ZELDA_ARENA_MALLOC_R( + ACTOROVL_ABSOLUTE_SPACE_SIZE, T("AMF:絶対魔法領域", "AMF: absolute magic field"), 0); + ACTOR_DEBUG_PRINTF( + T("絶対魔法領域確保 %d バイト確保\n", "Absolute magic field allocation %d bytes allocated\n"), + ACTOROVL_ABSOLUTE_SPACE_SIZE); } overlayEntry->loadedRamAddr = actorCtx->absoluteSpace; @@ -2979,8 +2977,8 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos } if (overlayEntry->loadedRamAddr == NULL) { - // "Cannot reserve actor program memory" - PRINTF(VT_COL(RED, WHITE) "Actorプログラムメモリが確保できません\n" VT_RST); + PRINTF(VT_COL(RED, WHITE) T("Actorプログラムメモリが確保できません\n", + "Cannot reserve actor program memory\n") VT_RST); return NULL; } @@ -3009,9 +3007,9 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos if ((objectSlot < 0) || ((profile->category == ACTORCAT_ENEMY) && Flags_GetClear(play, play->roomCtx.curRoom.num))) { - // "No data bank!! (profilep->bank=%d)" - PRINTF(VT_COL(RED, WHITE) "データバンク無し!!<データバンク=%d>(profilep->bank=%d)\n" VT_RST, objectSlot, - profile->objectId); + PRINTF(VT_COL(RED, WHITE) T("データバンク無し!!<データバンク=%d>(profilep->bank=%d)\n", + "No data bank!! (profilep->bank=%d)\n") VT_RST, + objectSlot, profile->objectId); Actor_FreeOverlay(overlayEntry); return NULL; } @@ -3019,9 +3017,9 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos actor = ZELDA_ARENA_MALLOC(profile->instanceSize, name, 1); if (actor == NULL) { - // "Actor class cannot be reserved! %s " - PRINTF(VT_COL(RED, WHITE) "Actorクラス確保できません! %s <サイズ=%dバイト>\n", VT_RST, name, - profile->instanceSize); + PRINTF(VT_COL(RED, WHITE) T("Actorクラス確保できません! %s <サイズ=%dバイト>\n", + "Actor class cannot be reserved! %s \n"), + VT_RST, name, profile->instanceSize); Actor_FreeOverlay(overlayEntry); return NULL; } @@ -3032,8 +3030,7 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos if (1) {} - // "Actor client No. %d" - ACTOR_DEBUG_PRINTF("アクタークライアントは %d 個目です\n", overlayEntry->numLoaded); + ACTOR_DEBUG_PRINTF(T("アクタークライアントは %d 個目です\n", "Actor client No. %d\n"), overlayEntry->numLoaded); Lib_MemSet((u8*)actor, profile->instanceSize, 0); actor->overlayEntry = overlayEntry; @@ -3135,7 +3132,7 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { overlayEntry = actor->overlayEntry; name = overlayEntry->name != NULL ? overlayEntry->name : ""; - ACTOR_DEBUG_PRINTF("アクタークラス削除 [%s]\n", name); // "Actor class deleted [%s]" + ACTOR_DEBUG_PRINTF(T("アクタークラス削除 [%s]\n", "Actor class deleted [%s]\n"), name); if ((player != NULL) && (actor == player->focusActor)) { func_8008EDF0(player); @@ -3162,7 +3159,7 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { ZELDA_ARENA_FREE(actor, "../z_actor.c", 7242); if (overlayEntry->vramStart == NULL) { - ACTOR_DEBUG_PRINTF("オーバーレイではありません\n"); // "Not an overlay" + ACTOR_DEBUG_PRINTF(T("オーバーレイではありません\n", "Not an overlay\n")); } else { ASSERT(overlayEntry->loadedRamAddr != NULL, "actor_dlftbl->allocp != NULL", "../z_actor.c", 7251); ASSERT(overlayEntry->numLoaded > 0, "actor_dlftbl->clients > 0", "../z_actor.c", 7252); diff --git a/src/code/z_message.c b/src/code/z_message.c index 29212d3182..45edcc6428 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -463,9 +463,8 @@ void Message_FindMessagePAL(PlayState* play, u16 textId) { nextSeg = messageTableEntry->segment; font->msgOffset = foundSeg - seg; font->msgLength = nextSeg - foundSeg; - // "Message found!!!" - PRINTF(" メッセージが,見つかった!!! = %x " - "(data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n", + PRINTF(T(" メッセージが,見つかった!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n", + "Message found!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n"), textId, font->msgOffset, font->msgLength, foundSeg, seg, nextSeg); return; } @@ -484,9 +483,8 @@ void Message_FindMessagePAL(PlayState* play, u16 textId) { nextSeg = *languageSegmentTable; font->msgOffset = foundSeg - seg; font->msgLength = nextSeg - foundSeg; - // "Message found!!!" - PRINTF(" メッセージが,見つかった!!! = %x " - "(data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n", + PRINTF(T(" メッセージが,見つかった!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n", + "Message found!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n"), textId, font->msgOffset, font->msgLength, foundSeg, seg, nextSeg); return; } @@ -494,8 +492,7 @@ void Message_FindMessagePAL(PlayState* play, u16 textId) { languageSegmentTable++; } } - // "Message not found!!!" - PRINTF(" メッセージが,見つからなかった!!! = %x\n", textId); + PRINTF(T(" メッセージが,見つからなかった!!! = %x\n", "Message not found!!! = %x\n"), textId); messageTableEntry = sNesMessageEntryTablePtr; if (gSaveContext.language == LANGUAGE_ENG) { @@ -533,8 +530,8 @@ void Message_FindCreditsMessage(PlayState* play, u16 textId) { nextSeg = messageTableEntry->segment; font->msgOffset = foundSeg - seg; font->msgLength = nextSeg - foundSeg; - // "Message found!!!" - PRINTF(" メッセージが,見つかった!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n", + PRINTF(T(" メッセージが,見つかった!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n", + "Message found!!! = %x (data=%x) (data0=%x) (data1=%x) (data2=%x) (data3=%x)\n"), textId, font->msgOffset, font->msgLength, foundSeg, seg, nextSeg); return; } @@ -939,11 +936,11 @@ void Message_HandleOcarina(PlayState* play) { if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_LONG_RECORDING) { msgCtx->msgMode = MSGMODE_SCARECROW_LONG_RECORDING_START; - // "Recording Start / Recording Start / Recording Start / Recording Start -> " - PRINTF("録音開始 録音開始 録音開始 録音開始 -> "); + PRINTF(T("録音開始 録音開始 録音開始 録音開始 -> ", + "Recording Start Recording Start Recording Start Recording Start -> ")); } else if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_LONG_PLAYBACK) { - // "Recording Playback / Recording Playback / Recording Playback / Recording Playback -> " - PRINTF("録音再生 録音再生 録音再生 録音再生 -> "); + PRINTF(T("録音再生 録音再生 録音再生 録音再生 -> ", + "Recording Playback Recording Playback Recording Playback Recording Playback -> ")); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT); msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); @@ -955,11 +952,10 @@ void Message_HandleOcarina(PlayState* play) { AudioOcarina_SetPlaybackSong(OCARINA_SONG_SCARECROW_LONG + 1, 1); } else if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_SPAWN_RECORDING) { msgCtx->msgMode = MSGMODE_SCARECROW_SPAWN_RECORDING_START; - // "8 Note Recording Start / 8 Note Recording Start / 8 Note Recording Start -> " - PRINTF("8音録音開始 8音録音開始 8音録音開始 -> "); + PRINTF(T("8音録音開始 8音録音開始 8音録音開始 -> ", + "8 Note Recording Start 8 Note Recording Start 8 Note Recording Start -> ")); } else if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_SPAWN_PLAYBACK) { - // "8 Note Playback / 8 Note Playback / 8 Note Playback -> " - PRINTF("8音再生 8音再生 8音再生 -> "); + PRINTF(T("8音再生 8音再生 8音再生 -> ", "8 Note Playback 8 Note Playback 8 Note Playback -> ")); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT); msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); @@ -971,15 +967,13 @@ void Message_HandleOcarina(PlayState* play) { AudioOcarina_SetPlaybackSong(OCARINA_SONG_SCARECROW_SPAWN + 1, 1); } else if (msgCtx->ocarinaAction == OCARINA_ACTION_MEMORY_GAME) { msgCtx->msgMode = MSGMODE_MEMORY_GAME_START; - // "Musical Round Start / Musical Round Start / Musical Round Start / Musical Round Start -> " - PRINTF("輪唱開始 輪唱開始 輪唱開始 輪唱開始 -> "); + PRINTF(T("輪唱開始 輪唱開始 輪唱開始 輪唱開始 -> ", + "Musical Round Start Musical Round Start Musical Round Start Musical Round Start -> ")); } else if (msgCtx->ocarinaAction == OCARINA_ACTION_FROGS) { msgCtx->msgMode = MSGMODE_FROGS_START; - // "Frog Chorus / Frog Chorus -> " - PRINTF("カエルの合唱 カエルの合唱 -> "); + PRINTF(T("カエルの合唱 カエルの合唱 -> ", "Frog Chorus Frog Chorus -> ")); } else { - // "Ocarina(%d)" - PRINTF("オカリナ(%d) ", msgCtx->ocarinaAction); + PRINTF(T("オカリナ(%d) ", "Ocarina (%d)"), msgCtx->ocarinaAction); if (msgCtx->ocarinaAction == OCARINA_ACTION_UNK_0 || msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY || msgCtx->ocarinaAction >= OCARINA_ACTION_CHECK_SARIA) { msgCtx->msgMode = MSGMODE_OCARINA_STARTING; @@ -1445,20 +1439,18 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) { if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { msgCtx->msgMode = MSGMODE_TEXT_DONE; msgCtx->textboxEndType = TEXTBOX_ENDTYPE_FADING; - // "Timer" - PRINTF("タイマー (%x) (%x)", msgCtx->msgBufDecoded[i + 1], msgCtx->msgBufDecoded[i + 2]); + PRINTF(T("タイマー (%x) (%x)", "Timer (%x) (%x)"), msgCtx->msgBufDecoded[i + 1], + msgCtx->msgBufDecoded[i + 2]); msgCtx->stateTimer = msgCtx->msgBufDecoded[++i] << 8; msgCtx->stateTimer |= msgCtx->msgBufDecoded[++i]; - // "Total wct" - PRINTF("合計wct=%x(%d)\n", msgCtx->stateTimer, msgCtx->stateTimer); + PRINTF(T("合計wct=%x(%d)\n", " Total wct=%x(%d)\n"), msgCtx->stateTimer, msgCtx->stateTimer); } *gfxP = gfx; return; case MESSAGE_SFX: if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING && !sMessageHasSetSfx) { sMessageHasSetSfx = true; - // "Sound (SE)" - PRINTF("サウンド(SE)\n"); + PRINTF(T("サウンド(SE)\n", "Sound (SE)\n")); sfxHi = msgCtx->msgBufDecoded[i + 1]; sfxHi <<= 8; Audio_PlaySfxGeneral(sfxHi | msgCtx->msgBufDecoded[i + 2], &gSfxDefaultPos, 4, @@ -1642,16 +1634,14 @@ void Message_LoadItemIcon(PlayState* play, u16 itemId, s16 y) { R_TEXTBOX_ICON_DIMENSION = ITEM_ICON_WIDTH; // assumes the image is square DMA_REQUEST_SYNC(msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, GET_ITEM_ICON_VROM(itemId), ITEM_ICON_SIZE, "../z_message_PAL.c", 1473); - // "Item 32-0" - PRINTF("アイテム32-0\n"); + PRINTF(T("アイテム32-0\n", "Item 32-0\n")); } else { R_TEXTBOX_ICON_XPOS = R_TEXT_INIT_XPOS - sIconItem24XOffsets[gSaveContext.language]; R_TEXTBOX_ICON_YPOS = y + ((44 - QUEST_ICON_HEIGHT) / 2); R_TEXTBOX_ICON_DIMENSION = QUEST_ICON_WIDTH; // assumes the image is square DMA_REQUEST_SYNC(msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, GET_QUEST_ICON_VROM(itemId), QUEST_ICON_SIZE, "../z_message_PAL.c", 1482); - // "Item 24" - PRINTF("アイテム24=%d (%d) {%d}\n", itemId, itemId - ITEM_KOKIRI_EMERALD, 84); + PRINTF(T("アイテム24=%d (%d) {%d}\n", "Item 24=%d (%d) {%d}\n"), itemId, itemId - ITEM_KOKIRI_EMERALD, 84); } msgCtx->msgBufPos++; msgCtx->choiceNum = 1; @@ -2060,8 +2050,7 @@ void Message_Decode(PlayState* play) { break; } } - // "Name" - PRINTF("\n名前 = "); + PRINTF(T("\n名前 = ", "\nName = ")); for (i = 0; i < playerNameLen; i++) { curChar = gSaveContext.save.info.playerData.playerName[i]; if (curChar == FILENAME_SPACE) { @@ -2092,8 +2081,7 @@ void Message_Decode(PlayState* play) { } else if (curChar == MESSAGE_MARATHON_TIME || curChar == MESSAGE_RACE_TIME) { // Convert the values of the appropriate timer to digits and add the // digits to the decoded buffer in place of the control character. - // "EVENT timer" - PRINTF("\nEVENTタイマー = "); + PRINTF(T("\nEVENTタイマー = ", "\nEVENT timer = ")); digits[0] = digits[1] = digits[2] = 0; if (curChar == MESSAGE_RACE_TIME) { digits[3] = gSaveContext.timerSeconds; @@ -2133,8 +2121,7 @@ void Message_Decode(PlayState* play) { } else if (curChar == MESSAGE_POINTS) { // Convert the values of the current minigame score to digits and // add the digits to the decoded buffer in place of the control character. - // "Yabusame score" - PRINTF("\n流鏑馬スコア = %d\n", gSaveContext.minigameScore); + PRINTF(T("\n流鏑馬スコア = %d\n", "\nYabusame score = %d\n"), gSaveContext.minigameScore); digits[0] = digits[1] = digits[2] = 0; digits[3] = gSaveContext.minigameScore; @@ -2167,8 +2154,8 @@ void Message_Decode(PlayState* play) { } else if (curChar == MESSAGE_TOKENS) { // Convert the current number of collected gold skulltula tokens to digits and // add the digits to the decoded buffer in place of the control character. - // "Total number of gold stars" - PRINTF("\n金スタ合計数 = %d", gSaveContext.save.info.inventory.gsTokens); + PRINTF(T("\n金スタ合計数 = %d", "\nTotal number of gold stars = %d"), + gSaveContext.save.info.inventory.gsTokens); digits[0] = digits[1] = 0; digits[2] = gSaveContext.save.info.inventory.gsTokens; @@ -2196,8 +2183,7 @@ void Message_Decode(PlayState* play) { } decodedBufPos--; } else if (curChar == MESSAGE_FISH_INFO) { - // "Fishing hole fish size" - PRINTF("\n釣り堀魚サイズ = "); + PRINTF(T("\n釣り堀魚サイズ = ", "\nFishing hole fish size = ")); digits[0] = 0; digits[1] = gSaveContext.minigameScore; @@ -2218,8 +2204,7 @@ void Message_Decode(PlayState* play) { decodedBufPos--; } else if (curChar == MESSAGE_HIGHSCORE) { value = HIGH_SCORE((u8)font->msgBuf[++msgCtx->msgBufPos]); - // "Highscore" - PRINTF("ランキング=%d\n", font->msgBuf[msgCtx->msgBufPos]); + PRINTF(T("ランキング=%d\n", "Highscore=%d\n"), font->msgBuf[msgCtx->msgBufPos]); if ((font->msgBuf[msgCtx->msgBufPos] & 0xFF) == 2) { if (LINK_AGE_IN_YEARS == YEARS_CHILD) { value &= 0x7F; @@ -2305,8 +2290,7 @@ void Message_Decode(PlayState* play) { break; } } else if (curChar == MESSAGE_TIME) { - // "Zelda time" - PRINTF("\nゼルダ時間 = "); + PRINTF(T("\nゼルダ時間 = ", "\nZelda time = ")); digits[0] = 0; timeInSeconds = gSaveContext.save.dayTime * (24.0f * 60.0f / 0x10000); @@ -2525,8 +2509,7 @@ void Message_OpenText(PlayState* play, u16 textId) { msgCtx->textBoxType = msgCtx->textBoxProperties >> 4; msgCtx->textBoxPos = msgCtx->textBoxProperties & 0xF; textBoxType = msgCtx->textBoxType; - // "Text Box Type" - PRINTF("吹き出し種類=%d\n", msgCtx->textBoxType); + PRINTF(T("吹き出し種類=%d\n", "Text Box Type = %d\n"), msgCtx->textBoxType); if (textBoxType < TEXTBOX_TYPE_NONE_BOTTOM) { DMA_REQUEST_SYNC(msgCtx->textboxSegment, (uintptr_t)_message_staticSegmentRomStart + @@ -2566,8 +2549,7 @@ void Message_StartTextbox(PlayState* play, u16 textId, Actor* actor) { MessageContext* msgCtx = &play->msgCtx; PRINTF(VT_FGCOL(BLUE)); - // "Message" - PRINTF("めっせーじ=%x(%d)\n", textId, actor); + PRINTF(T("めっせーじ=%x(%d)\n", "Message=%x(%d)\n"), textId, actor); PRINTF(VT_RST); msgCtx->ocarinaAction = 0xFFFF; @@ -2587,8 +2569,7 @@ void Message_ContinueTextbox(PlayState* play, u16 textId) { #endif PRINTF(VT_FGCOL(GREEN)); - // "Message" - PRINTF("めっせーじ=%x message->msg_data\n", textId, msgCtx->msgLength); + PRINTF(T("めっせーじ=%x message->msg_data\n", "Message=%x message->msg_data\n"), textId, msgCtx->msgLength); PRINTF(VT_RST); msgCtx->msgLength = 0; @@ -2650,8 +2631,8 @@ void Message_StartOcarinaImpl(PlayState* play, u16 ocarinaActionId) { Message_ResetOcarinaNoteState(); sLastPlayedSong = msgCtx->unk_E3F2 = msgCtx->lastOcarinaButtonIndex = 0xFF; - // "Ocarina Number" - PRINTF(VT_FGCOL(RED) "☆☆☆☆☆ オカリナ番号=%d(%d) ☆☆☆☆☆\n" VT_RST, ocarinaActionId, 2); + PRINTF(VT_FGCOL(RED) T("☆☆☆☆☆ オカリナ番号=%d(%d) ☆☆☆☆☆\n", "☆☆☆☆☆ Ocarina Number = %d(%d) ☆☆☆☆☆\n") VT_RST, + ocarinaActionId, 2); noStopDoAction = false; if (ocarinaActionId >= 0x893) { Message_OpenText(play, ocarinaActionId); // You played the [song name] @@ -2688,8 +2669,7 @@ void Message_StartOcarinaImpl(PlayState* play, u16 ocarinaActionId) { } } msgCtx->talkActor = NULL; - // "Ocarina Mode" - PRINTF("オカリナモード = %d (%x)\n", msgCtx->ocarinaAction, textId); + PRINTF(T("オカリナモード = %d (%x)\n", "Ocarina Mode = %d (%x)\n"), msgCtx->ocarinaAction, textId); msgCtx->textDelayTimer = 0; play->msgCtx.ocarinaMode = OCARINA_MODE_00; R_TEXTBOX_X = 34; @@ -2712,8 +2692,7 @@ void Message_StartOcarinaImpl(PlayState* play, u16 ocarinaActionId) { Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_B_ALT); gSaveContext.hudVisibilityMode = noStopDoAction; } - // "Music Performance Start" - PRINTF("演奏開始\n"); + PRINTF(T("演奏開始\n", "Music Performance Start\n")); if (ocarinaActionId == OCARINA_ACTION_FREE_PLAY || ocarinaActionId == OCARINA_ACTION_CHECK_NOWARP) { msgCtx->msgMode = MSGMODE_OCARINA_STARTING; msgCtx->textBoxType = 0x63; @@ -2725,8 +2704,8 @@ void Message_StartOcarinaImpl(PlayState* play, u16 ocarinaActionId) { Message_Decode(play); msgCtx->msgMode = MSGMODE_MEMORY_GAME_START; } else if (ocarinaActionId == OCARINA_ACTION_SCARECROW_LONG_PLAYBACK) { - // "?????Recording Playback / Recording Playback / Recording Playback / Recording Playback -> " - PRINTF("?????録音再生 録音再生 録音再生 録音再生 -> "); + PRINTF(T("?????録音再生 録音再生 録音再生 録音再生 -> ", + "????? Recording Playback Recording Playback Recording Playback Recording Playback -> ")); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT); msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); @@ -2957,8 +2936,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_NOWARP) { AudioOcarina_Start(sOcarinaSongBitFlags + 0xC000); } else { - // "On Stage Performance" - PRINTF("台上演奏\n"); + PRINTF(T("台上演奏\n", "On Stage Performance\n")); AudioOcarina_Start(sOcarinaSongBitFlags); } } else { @@ -2971,8 +2949,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) { msgCtx->msgMode = MSGMODE_SONG_DEMONSTRATION_SELECT_INSTRUMENT; } else { AudioOcarina_Start((1 << (msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET)) + 0x8000); - // "Performance Check" - PRINTF("演奏チェック=%d\n", msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET); + PRINTF(T("演奏チェック=%d\n", "Performance Check = %d\n"), + msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET); msgCtx->msgMode = MSGMODE_SONG_PLAYBACK; } if (msgCtx->ocarinaAction != OCARINA_ACTION_FREE_PLAY && @@ -3010,8 +2988,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) { &gSfxDefaultReverb); msgCtx->msgMode = MSGMODE_OCARINA_STARTING; } else { - // "Ocarina_Flog Correct Example Performance" - PRINTF("Ocarina_Flog 正解模範演奏=%x\n", msgCtx->lastPlayedSong); + PRINTF(T("Ocarina_Flog 正解模範演奏=%x\n", + "Ocarina_Flog Correct Example Performance = %x\n"), + msgCtx->lastPlayedSong); Message_ContinueTextbox(play, 0x86F); // Ocarina msgCtx->msgMode = MSGMODE_SONG_PLAYED; msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA; @@ -3030,8 +3009,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) { msgCtx->stateTimer = 10; msgCtx->msgMode = MSGMODE_OCARINA_FAIL; } else { - // "Ocarina_Flog Correct Example Performance" - PRINTF("Ocarina_Flog 正解模範演奏=%x\n", msgCtx->lastPlayedSong); + PRINTF(T("Ocarina_Flog 正解模範演奏=%x\n", + "Ocarina_Flog Correct Example Performance = %x\n"), + msgCtx->lastPlayedSong); Message_ContinueTextbox(play, 0x86F); // Ocarina msgCtx->msgMode = MSGMODE_SONG_PLAYED; msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA; @@ -3042,8 +3022,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) { Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING); } } else if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY) { - // "Ocarina_Free Correct Example Performance" - PRINTF("Ocarina_Free 正解模範演奏=%x\n", msgCtx->lastPlayedSong); + PRINTF( + T("Ocarina_Free 正解模範演奏=%x\n", "Ocarina_Free Correct Example Performance = %x\n"), + msgCtx->lastPlayedSong); Message_ContinueTextbox(play, 0x86F); // Ocarina msgCtx->msgMode = MSGMODE_SONG_PLAYED; msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA; @@ -3196,8 +3177,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { if (msgCtx->stateTimer == 0) { AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); if (msgCtx->msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK) { - // "Correct Example Performance" - PRINTF("正解模範演奏=%x\n", msgCtx->lastPlayedSong); + PRINTF(T("正解模範演奏=%x\n", "Correct Example Performance = %x\n"), msgCtx->lastPlayedSong); Message_ContinueTextbox(play, 0x86F); // Ocarina msgCtx->msgMode = MSGMODE_SONG_PLAYED; msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA; @@ -3228,16 +3208,14 @@ void Message_DrawMain(PlayState* play, Gfx** p) { if (msgCtx->stateTimer == 0) { R_OCARINA_BUTTONS_YPOS_OFFSET = 1; if (msgCtx->msgMode == MSGMODE_SONG_PLAYBACK_FAIL) { - // "kokokokokoko" - PRINTF("ここここここ\n"); + PRINTF(T("ここここここ\n", "Here here here\n")); Message_ContinueTextbox(play, 0x88B); // red X background Message_Decode(play); msgCtx->msgMode = MSGMODE_SONG_PLAYBACK_NOTES_DROP; } else { msgCtx->msgMode = MSGMODE_OCARINA_NOTES_DROP; } - // "Cancel" - PRINTF("キャンセル\n"); + PRINTF(T("キャンセル\n", "Cancel\n")); } break; case MSGMODE_OCARINA_NOTES_DROP: @@ -3304,8 +3282,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) { case MSGMODE_SONG_DEMONSTRATION_SELECT_INSTRUMENT: msgCtx->stateTimer--; if (msgCtx->stateTimer == 0) { - // "ocarina_no=%d Song Chosen=%d" - PRINTF("ocarina_no=%d 選曲=%d\n", msgCtx->ocarinaAction, 0x16); + PRINTF(T("ocarina_no=%d 選曲=%d\n", "ocarina_no=%d Song Chosen=%d\n"), msgCtx->ocarinaAction, + 0x16); if (msgCtx->ocarinaAction < OCARINA_ACTION_TEACH_SARIA) { AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_HARP); } else if (msgCtx->ocarinaAction == OCARINA_ACTION_TEACH_EPONA) { @@ -3317,8 +3295,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) { } else { AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT); } - // "Example Performance" - PRINTF("模範演奏=%x\n", msgCtx->ocarinaAction - OCARINA_ACTION_TEACH_MINUET); + PRINTF(T("模範演奏=%x\n", "Example Performance = %x\n"), + msgCtx->ocarinaAction - OCARINA_ACTION_TEACH_MINUET); AudioOcarina_SetPlaybackSong(msgCtx->ocarinaAction - OCARINA_ACTION_TEACH_MINUET + 1, 2); sOcarinaButtonIndexBufPos = 0; msgCtx->msgMode = MSGMODE_SONG_DEMONSTRATION; @@ -3441,8 +3419,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) { msgCtx->msgMode = MSGMODE_SONG_PLAYBACK_SUCCESS; Item_Give(play, ITEM_SONG_MINUET + gOcarinaSongItemMap[msgCtx->ocarinaStaff->state]); PRINTF(VT_FGCOL(YELLOW)); - // "z_message.c Song Acquired" - PRINTF("z_message.c 取得メロディ=%d\n", ITEM_SONG_MINUET + msgCtx->ocarinaStaff->state); + PRINTF(T("z_message.c 取得メロディ=%d\n", "z_message.c Song Acquired = %d\n"), + ITEM_SONG_MINUET + msgCtx->ocarinaStaff->state); PRINTF(VT_RST); msgCtx->stateTimer = 20; Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, @@ -3462,8 +3440,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { } break; case MSGMODE_SCARECROW_LONG_RECORDING_START: - // "Scarecrow Recording Initialization" - PRINTF("案山子録音 初期化\n"); + PRINTF(T("案山子録音 初期化\n", "Scarecrow Recording Initialization\n")); AudioOcarina_SetRecordingState(OCARINA_RECORD_SCARECROW_LONG); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT); msgCtx->ocarinaStaff = AudioOcarina_GetRecordingStaff(); @@ -3484,8 +3461,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) { } sOcarinaButtonIndexBufLen--; } - // "Button Entered" - PRINTF(" 入力ボタン【%d】=%d", sOcarinaButtonIndexBufLen, msgCtx->ocarinaStaff->buttonIndex); + PRINTF(T(" 入力ボタン【%d】=%d", " Button Entered[%d]=%d"), sOcarinaButtonIndexBufLen, + msgCtx->ocarinaStaff->buttonIndex); msgCtx->lastOcarinaButtonIndex = sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = msgCtx->ocarinaStaff->buttonIndex; sOcarinaButtonIndexBufLen++; @@ -3498,8 +3475,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) { if (msgCtx->ocarinaStaff->state == OCARINA_RECORD_OFF || CHECK_BTN_ALL(play->state.input[0].press.button, BTN_B)) { if (sOcarinaButtonIndexBufLen != 0) { - // "Recording complete!!!!!!!!!" - PRINTF("録音終了!!!!!!!!! message->info->status=%d \n", msgCtx->ocarinaStaff->state); + PRINTF(T("録音終了!!!!!!!!! message->info->status=%d \n", + "Recording complete!!!!!!!!! message->info->status=%d \n"), + msgCtx->ocarinaStaff->state); gSaveContext.save.info.scarecrowLongSongSet = true; } Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, @@ -3509,8 +3487,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) { msgCtx->stateTimer = 10; play->msgCtx.ocarinaMode = OCARINA_MODE_04; Message_CloseTextbox(play); - // "Recording complete!!!!!!!!!Recording Complete" - PRINTF("録音終了!!!!!!!!!録音終了\n"); + PRINTF( + T("録音終了!!!!!!!!!録音終了\n", "Recording complete!!!!!!!!! Recording Complete\n")); PRINTF(VT_FGCOL(YELLOW)); PRINTF("\n====================================================================\n"); MemCpy(gSaveContext.save.info.scarecrowLongSong, gScarecrowLongSongPtr, @@ -3570,8 +3548,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufPos] = OCARINA_BTN_INVALID; } if (msgCtx->ocarinaStaff->state == OCARINA_RECORD_OFF) { - // "8 Note Recording OK!" - PRINTF("8音録音OK!\n"); + PRINTF(T("8音録音OK!\n", "8 Note Recording OK!\n")); msgCtx->stateTimer = 20; gSaveContext.save.info.scarecrowSpawnSongSet = true; msgCtx->msgMode = MSGMODE_SCARECROW_SPAWN_RECORDING_DONE; @@ -3588,8 +3565,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { PRINTF("\n====================================================================\n"); } else if (msgCtx->ocarinaStaff->state == OCARINA_RECORD_REJECTED || CHECK_BTN_ALL(play->state.input[0].press.button, BTN_B)) { - // "Played an existing song!!!" - PRINTF("すでに存在する曲吹いた!!! \n"); + PRINTF(T("すでに存在する曲吹いた!!! \n", "Played an existing song!!! \n")); AudioOcarina_SetRecordingState(OCARINA_RECORD_OFF); Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -3662,16 +3638,14 @@ void Message_DrawMain(PlayState* play, Gfx** p) { sOcarinaButtonIndexBufPos++; } if (msgCtx->ocarinaStaff->state == 0xFF) { - // "Musical round failed!!!!!!!!!" - PRINTF("輪唱失敗!!!!!!!!!\n"); + PRINTF(T("輪唱失敗!!!!!!!!!\n", "Musical round failed!!!!!!!!!\n")); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); msgCtx->stateTimer = 10; play->msgCtx.ocarinaMode = OCARINA_MODE_03; } else if (msgCtx->ocarinaStaff->state == OCARINA_SONG_MEMORY_GAME) { - // "Musical round succeeded!!!!!!!!!" - PRINTF("輪唱成功!!!!!!!!!\n"); + PRINTF(T("輪唱成功!!!!!!!!!\n", "Musical round succeeded!!!!!!!!!\n")); Audio_PlaySfxGeneral(NA_SE_SY_GET_ITEM, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); msgCtx->msgMode = MSGMODE_MEMORY_GAME_ROUND_SUCCESS; @@ -3977,8 +3951,8 @@ void Message_Update(PlayState* play) { while (entry->textId != 0xFFFD) { if (entry->textId == R_MESSAGE_DEBUGGER_TEXTID) { - // "The message was found! !! !!" - PRINTF(" メッセージが,見つかった!!! = %x\n", R_MESSAGE_DEBUGGER_TEXTID); + PRINTF(T(" メッセージが,見つかった!!! = %x\n", "The message was found!!! = %x\n"), + R_MESSAGE_DEBUGGER_TEXTID); Message_StartTextbox(play, R_MESSAGE_DEBUGGER_TEXTID, NULL); R_MESSAGE_DEBUGGER_TEXTID++; R_MESSAGE_DEBUGGER_SELECT = 0; From ed870e051d64e4668169f1c0cec063dab5372251 Mon Sep 17 00:00:00 2001 From: cadmic Date: Fri, 6 Sep 2024 19:48:17 -0700 Subject: [PATCH 28/86] [ntsc-1.2] Match more draw functions (#2145) * Match z_vr_box.c * Match TitleCard_Draw * Match z_player_lib.c? * Match Lights_Draw --- src/code/z_actor.c | 29 +++++++++++++++++------------ src/code/z_lights.c | 4 ++-- src/code/z_player_lib.c | 11 ++++++++--- src/code/z_vr_box.c | 4 +++- 4 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/code/z_actor.c b/src/code/z_actor.c index f1ff2cfb4a..0624815ffb 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -772,19 +772,19 @@ void TitleCard_Update(PlayState* play, TitleCardContext* titleCtx) { void TitleCard_Draw(PlayState* play, TitleCardContext* titleCtx) { s32 width; s32 height; - s32 unused; - s32 titleX; s32 doubleWidth; - s32 titleY; - s32 titleSecondY; + s32 titleX1; + s32 titleX2; + s32 titleY1; + s32 titleY2; s32 textureLanguageOffset; if (titleCtx->alpha != 0) { width = titleCtx->width; height = titleCtx->height; doubleWidth = width * 2; - titleX = (titleCtx->x * 4) - (width * 2); - titleY = (titleCtx->y * 4) - (height * 2); + titleX1 = (titleCtx->x * 4) - (width * 2); + titleY1 = (titleCtx->y * 4) - (height * 2); OPEN_DISPS(play->state.gfxCtx, "../z_actor.c", 2824); @@ -797,8 +797,13 @@ void TitleCard_Draw(PlayState* play, TitleCardContext* titleCtx) { #else textureLanguageOffset = width * height * gSaveContext.language; #endif - height = (width * height > 0x1000) ? 0x1000 / width : height; - titleSecondY = titleY + (height * 4); + + if (width * height > 0x1000) { + height = 0x1000 / width; + } + + titleX2 = titleX1 + (doubleWidth * 2); + titleY2 = titleY1 + (height * 4); OVERLAY_DISP = Gfx_SetupDL_52NoCD(OVERLAY_DISP); @@ -809,8 +814,8 @@ void TitleCard_Draw(PlayState* play, TitleCardContext* titleCtx) { width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(OVERLAY_DISP++, titleX, titleY, ((doubleWidth * 2) + titleX) - 4, titleY + (height * 4) - 1, - G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + gSPTextureRectangle(OVERLAY_DISP++, titleX1, titleY1, titleX2 - 4, titleY2 - 1, G_TX_RENDERTILE, 0, 0, 1 << 10, + 1 << 10); height = titleCtx->height - height; @@ -820,8 +825,8 @@ void TitleCard_Draw(PlayState* play, TitleCardContext* titleCtx) { G_IM_SIZ_8b, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(OVERLAY_DISP++, titleX, titleSecondY, ((doubleWidth * 2) + titleX) - 4, - titleSecondY + (height * 4) - 1, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + gSPTextureRectangle(OVERLAY_DISP++, titleX1, titleY2, titleX2 - 4, titleY2 + (height * 4) - 1, + G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); } CLOSE_DISPS(play->state.gfxCtx, "../z_actor.c", 2880); diff --git a/src/code/z_lights.c b/src/code/z_lights.c index 4f4a9a9cd9..e9af22cd5c 100644 --- a/src/code/z_lights.c +++ b/src/code/z_lights.c @@ -61,8 +61,8 @@ void Lights_Draw(Lights* lights, GraphicsContext* gfxCtx) { OPEN_DISPS(gfxCtx, "../z_lights.c", 339); - gSPNumLights(POLY_OPA_DISP++, lights->numLights); - gSPNumLights(POLY_XLU_DISP++, lights->numLights); + gSPNumLights(POLY_OPA_DISP++, (u32)lights->numLights); + gSPNumLights(POLY_XLU_DISP++, (u32)lights->numLights); light = &lights->l.l[0]; i = 0; diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 74cf589e49..d57cf2ed49 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -1813,8 +1813,6 @@ void Player_DrawPauseImpl(PlayState* play, void* gameplayKeep, void* linkObject, gSPDisplayList(WORK_DISP++, POLY_OPA_DISP); gSPDisplayList(WORK_DISP++, POLY_XLU_DISP); - { s32 pad[2]; } - gSPSegment(POLY_OPA_DISP++, 0x00, NULL); gDPPipeSync(POLY_OPA_DISP++); @@ -1826,7 +1824,14 @@ void Player_DrawPauseImpl(PlayState* play, void* gameplayKeep, void* linkObject, G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_FILL | G_PM_NPRIMITIVE, G_AC_NONE | G_ZS_PIXEL | G_RM_NOOP | G_RM_NOOP2); - gSPLoadGeometryMode(POLY_OPA_DISP++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH); + + // Also matches if some of the previous graphics commands are moved inside this block too. Possible macro? + if (1) { + s32 pad[2]; + + gSPLoadGeometryMode(POLY_OPA_DISP++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH); + } + gDPSetScissor(POLY_OPA_DISP++, G_SC_NON_INTERLACE, 0, 0, width, height); gSPClipRatio(POLY_OPA_DISP++, FRUSTRATIO_1); diff --git a/src/code/z_vr_box.c b/src/code/z_vr_box.c index ca183ce482..d2aac8c1f3 100644 --- a/src/code/z_vr_box.c +++ b/src/code/z_vr_box.c @@ -69,10 +69,10 @@ s32 Skybox_CalculateFace256(SkyboxContext* skyboxCtx, Vtx* roomVtx, s32 roomVtxS s32 k; u16 index; s16 m; + s16 l; s16 ult; s16 uls; s16 vtxIdx; - s16 l; s32 xPoints[9 * 5]; s32 yPoints[9 * 5]; s32 zPoints[9 * 5]; @@ -304,6 +304,8 @@ s32 Skybox_CalculateFace128(SkyboxContext* skyboxCtx, Vtx* roomVtx, s32 roomVtxS break; } + if (1) {} + // Select gfx buffer skyboxCtx->gfx = &skyboxCtx->dListBuf[2 * faceNum][0]; From 8a3ba35070310ad9408f006a5f951e979fa042e6 Mon Sep 17 00:00:00 2001 From: cadmic Date: Fri, 6 Sep 2024 21:12:12 -0700 Subject: [PATCH 29/86] [ntsc-1.2] Match z_file_choose.c and z_boss_tw.c (#2146) * Match z_file_choose.c * Match z_boss_tw.c * Format * end: -> close_disps: --- src/code/z_eff_blure.c | 4 +- src/code/z_eff_spark.c | 6 +- src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 77 ++++++++++--------- .../ovl_file_choose/z_file_choose.c | 50 +++++++++--- .../ovl_file_choose/z_file_nameset.c | 2 +- .../disasm/ntsc-1.2/files_ovl_file_choose.csv | 2 +- tools/disasm/ntsc-1.2/functions.txt | 2 + 7 files changed, 90 insertions(+), 53 deletions(-) diff --git a/src/code/z_eff_blure.c b/src/code/z_eff_blure.c index e0957a0164..212f5ee7df 100644 --- a/src/code/z_eff_blure.c +++ b/src/code/z_eff_blure.c @@ -399,7 +399,7 @@ void EffectBlure_DrawElemNoInterpolation(EffectBlure* this, EffectBlureElement* if (vtx == NULL) { PRINTF(T("z_eff_blure.c::SQ_NoInterpolate_disp() 頂点確保できず。\n", "z_eff_blure.c::SQ_NoInterpolate_disp() Vertices cannot be secured.\n")); - goto end; + goto close_disps; } vtx[0].v = baseVtx; @@ -470,7 +470,7 @@ void EffectBlure_DrawElemNoInterpolation(EffectBlure* this, EffectBlureElement* gSPVertex(POLY_XLU_DISP++, vtx, 4, 0); gSP2Triangles(POLY_XLU_DISP++, 0, 1, 2, 0, 0, 2, 3, 0); -end: +close_disps: CLOSE_DISPS(gfxCtx, "../z_eff_blure.c", 932); } diff --git a/src/code/z_eff_spark.c b/src/code/z_eff_spark.c index ba39da6b80..a997caa129 100644 --- a/src/code/z_eff_spark.c +++ b/src/code/z_eff_spark.c @@ -174,7 +174,7 @@ void EffectSpark_Draw(void* thisx, GraphicsContext* gfxCtx) { if (vertices == NULL) { PRINTF(T("EffectSparkInfo_disp():メモリー確保失敗 graph_malloc\n", "EffectSparkInfo_disp(): Memory Allocation Failure graph_malloc\n")); - goto end; + goto close_disps; } j = 0; @@ -262,7 +262,7 @@ void EffectSpark_Draw(void* thisx, GraphicsContext* gfxCtx) { mtx = SkinMatrix_MtxFToNewMtx(gfxCtx, &sp12C); if (mtx == NULL) { - goto end; + goto close_disps; } gSPMatrix(POLY_XLU_DISP++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); @@ -273,6 +273,6 @@ void EffectSpark_Draw(void* thisx, GraphicsContext* gfxCtx) { gDPPipeSync(POLY_XLU_DISP++); } -end: +close_disps: CLOSE_DISPS(gfxCtx, "../z_eff_spark.c", 498); } diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index e2e78726ba..66f3b7dc4f 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -3411,45 +3411,48 @@ void func_80942C70(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_boss_tw.c", 6765); - if (this->beamDist != 0.0f) { - Matrix_Push(); - gSPSegment(POLY_XLU_DISP++, 0xC, - Gfx_TexScroll(play->state.gfxCtx, 0, (u8)(this->work[CS_TIMER_1] * -0xF), 0x20, 0x40)); - alpha = this->beamScale * 100.0f * 255.0f; - - if (this->actor.params == TW_KOUME) { - gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 60, alpha); - gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 128); - } else { - gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, alpha); - gDPSetEnvColor(POLY_XLU_DISP++, 100, 100, 255, 128); - } - - Matrix_Translate(this->beamOrigin.x, this->beamOrigin.y, this->beamOrigin.z, MTXMODE_NEW); - Matrix_RotateY(this->beamYaw, MTXMODE_APPLY); - Matrix_RotateX(this->beamPitch, MTXMODE_APPLY); - Matrix_RotateZ(this->beamRoll, MTXMODE_APPLY); - Matrix_Scale(this->beamScale, this->beamScale, (this->beamDist * 0.01f * 98.0f) / 20000.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6846), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); - gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaBeamDL)); - - if (this->beamReflectionDist > 10.0f) { - Matrix_Translate(this->beamReflectionOrigin.x, this->beamReflectionOrigin.y, this->beamReflectionOrigin.z, - MTXMODE_NEW); - Matrix_RotateY(this->beamReflectionYaw, MTXMODE_APPLY); - Matrix_RotateX(this->beamReflectionPitch, MTXMODE_APPLY); - Matrix_RotateZ(this->beamRoll, MTXMODE_APPLY); - Matrix_Scale(this->beamScale, this->beamScale, (this->beamReflectionDist * 0.01f * 100.0f) / 20000.0f, - MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6870), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); - gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaBeamDL)); - } - - Matrix_Pop(); + if (this->beamDist == 0.0f) { + goto close_disps; } + Matrix_Push(); + gSPSegment(POLY_XLU_DISP++, 0xC, + Gfx_TexScroll(play->state.gfxCtx, 0, (u8)(this->work[CS_TIMER_1] * -0xF), 0x20, 0x40)); + alpha = this->beamScale * 100.0f * 255.0f; + + if (this->actor.params == TW_KOUME) { + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 60, alpha); + gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 128); + } else { + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, alpha); + gDPSetEnvColor(POLY_XLU_DISP++, 100, 100, 255, 128); + } + + Matrix_Translate(this->beamOrigin.x, this->beamOrigin.y, this->beamOrigin.z, MTXMODE_NEW); + Matrix_RotateY(this->beamYaw, MTXMODE_APPLY); + Matrix_RotateX(this->beamPitch, MTXMODE_APPLY); + Matrix_RotateZ(this->beamRoll, MTXMODE_APPLY); + Matrix_Scale(this->beamScale, this->beamScale, (this->beamDist * 0.01f * 98.0f) / 20000.0f, MTXMODE_APPLY); + gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6846), + G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaBeamDL)); + + if (this->beamReflectionDist > 10.0f) { + Matrix_Translate(this->beamReflectionOrigin.x, this->beamReflectionOrigin.y, this->beamReflectionOrigin.z, + MTXMODE_NEW); + Matrix_RotateY(this->beamReflectionYaw, MTXMODE_APPLY); + Matrix_RotateX(this->beamReflectionPitch, MTXMODE_APPLY); + Matrix_RotateZ(this->beamRoll, MTXMODE_APPLY); + Matrix_Scale(this->beamScale, this->beamScale, (this->beamReflectionDist * 0.01f * 100.0f) / 20000.0f, + MTXMODE_APPLY); + gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6870), + G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaBeamDL)); + } + + Matrix_Pop(); + +close_disps: CLOSE_DISPS(play->state.gfxCtx, "../z_boss_tw.c", 6878); } diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c index 7416b8ac3a..c8462f53de 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c @@ -3,6 +3,9 @@ #include "versions.h" #include "assets/textures/title_static/title_static.h" #include "assets/textures/parameter_static/parameter_static.h" +#if PLATFORM_N64 +#include "n64dd.h" +#endif static s16 sUnused = 106; @@ -219,6 +222,14 @@ void FileSelect_UpdateMainMenu(GameState* thisx) { } else if (!this->n64ddFlags[this->buttonIndex]) { Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + } else { +#if PLATFORM_N64 + if (D_80121212 != 0) { + func_801C7268(); + // Setting ioData to 1 and writing it to ioPort 7 will skip the harp intro + Audio_PlaySequenceWithSeqPlayerIO(SEQ_PLAYER_BGM_MAIN, NA_BGM_FILE_SELECT, 0, 7, 1); + } +#endif } } else { if (this->warningLabel == FS_WARNING_NONE) { @@ -821,14 +832,13 @@ static s16 sHeartEnvColors[2][3] = { { 50, 40, 60 }, { 255, 255, 255 } }; void FileSelect_DrawFileInfo(GameState* thisx, s16 fileIndex, s16 isActive) { FileSelectState* this = (FileSelectState*)thisx; Font* sp54 = &this->font; - s32 heartType; - s16 i; + s16 heartType; s16 vtxOffset; + s16 i; s16 j; + s16 k; s16 deathCountSplit[3]; - if (1) {} - OPEN_DISPS(this->state.gfxCtx, "../z_file_choose.c", 1709); gDPPipeSync(POLY_OPA_DISP++); @@ -857,8 +867,8 @@ void FileSelect_DrawFileInfo(GameState* thisx, s16 fileIndex, s16 isActive) { FileSelect_SplitNumber(this->deaths[fileIndex], &deathCountSplit[0], &deathCountSplit[1], &deathCountSplit[2]); // draw death count - for (i = 0, vtxOffset = 0; i < 3; i++, vtxOffset += 4) { - FileSelect_DrawCharacter(this->state.gfxCtx, sp54->fontBuf + deathCountSplit[i] * FONT_CHAR_TEX_SIZE, + for (k = 0, vtxOffset = 0; k < 3; k++, vtxOffset += 4) { + FileSelect_DrawCharacter(this->state.gfxCtx, sp54->fontBuf + deathCountSplit[k] * FONT_CHAR_TEX_SIZE, vtxOffset); } @@ -874,10 +884,10 @@ void FileSelect_DrawFileInfo(GameState* thisx, s16 fileIndex, s16 isActive) { gDPSetEnvColor(POLY_OPA_DISP++, sHeartEnvColors[heartType][0], sHeartEnvColors[heartType][1], sHeartEnvColors[heartType][2], 255); - i = this->healthCapacities[fileIndex] / 0x10; + k = this->healthCapacities[fileIndex] / 0x10; // draw hearts - for (vtxOffset = 0, j = 0; j < i; j++, vtxOffset += 4) { + for (vtxOffset = 0, j = 0; j < k; j++, vtxOffset += 4) { gSPVertex(POLY_OPA_DISP++, &this->windowContentVtx[D_8081284C[fileIndex] + vtxOffset] + 0x30, 4, 0); POLY_OPA_DISP = FileSelect_QuadTextureIA8(POLY_OPA_DISP, sHeartTextures[heartType], 0x10, 0x10, 0); @@ -984,9 +994,9 @@ static void* sOptionsButtonTextures[] = LANGUAGE_ARRAY(gFileSelOptionsButtonJPNT void FileSelect_DrawWindowContents(GameState* thisx) { FileSelectState* this = (FileSelectState*)thisx; s16 fileIndex; - s16 temp; s16 i; s16 quadVtxIndex; + s16 temp; s16 isActive; s16 pad; @@ -1560,6 +1570,14 @@ void FileSelect_LoadGame(GameState* thisx) { gSaveContext.save.info.equips.equipment &= gEquipNegMasks[EQUIP_TYPE_SWORD]; gSaveContext.save.info.inventory.equipment ^= OWNED_EQUIP_FLAG(EQUIP_TYPE_SWORD, swordEquipValue - 1); } + +#if PLATFORM_N64 + if (D_80121212 != 0) { + s32 fileNum = gSaveContext.fileNum; + + n64dd_SetDiskVersion(this->n64ddFlags[fileNum]); + } +#endif } static void (*sSelectModeUpdateFuncs[])(GameState*) = { @@ -1645,7 +1663,15 @@ void FileSelect_Main(GameState* thisx) { OPEN_DISPS(this->state.gfxCtx, "../z_file_choose.c", 2898); +#if PLATFORM_N64 + if ((D_80121212 != 0) && (func_801C70FC() != 0)) { + this->n64ddFlag = 1; + } else { + this->n64ddFlag = 0; + } +#else this->n64ddFlag = 0; +#endif gSPSegment(POLY_OPA_DISP++, 0x00, NULL); gSPSegment(POLY_OPA_DISP++, 0x01, this->staticSegment); @@ -1924,6 +1950,12 @@ void FileSelect_Init(GameState* thisx) { u32 size = (uintptr_t)_title_staticSegmentRomEnd - (uintptr_t)_title_staticSegmentRomStart; s32 pad; +#if PLATFORM_N64 + if (D_80121212 != 0) { + func_801C7268(); + } +#endif + SREG(30) = 1; PRINTF("SIZE=%x\n", size); diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c index a412b17c46..fc307208c1 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c @@ -308,7 +308,7 @@ void FileSelect_SetNameEntryVtx(GameState* thisx) { gSPVertex(POLY_OPA_DISP++, this->nameEntryVtx + 4, 32, 0); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, this->nameEntryBoxAlpha); - for (phi_v0 = 0, phi_s0 = 0; phi_s0 < 0x20; phi_s0 += 4, phi_v0++) { + for (phi_s0 = 0, phi_v0 = 0; phi_s0 < 0x20; phi_s0 += 4, phi_v0++) { FileSelect_DrawCharacter(this->state.gfxCtx, font->fontBuf + this->fileNames[this->buttonIndex][phi_v0] * FONT_CHAR_TEX_SIZE, phi_s0); diff --git a/tools/disasm/ntsc-1.2/files_ovl_file_choose.csv b/tools/disasm/ntsc-1.2/files_ovl_file_choose.csv index 1e4aeabcc3..ab21a34f0c 100644 --- a/tools/disasm/ntsc-1.2/files_ovl_file_choose.csv +++ b/tools/disasm/ntsc-1.2/files_ovl_file_choose.csv @@ -1,7 +1,7 @@ offset,vram,.text 0,80803880,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase 3040,808068C0,src/overlays/gamestates/ovl_file_choose/z_file_nameset -8440,8080BCC0,z_file_choose +8440,8080BCC0,src/overlays/gamestates/ovl_file_choose/z_file_choose offset,vram,.data EC50,808124D0,src/overlays/gamestates/ovl_file_choose/z_file_nameset_data diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 96900ef2c1..9548af197a 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -3099,6 +3099,8 @@ Regs_InitDataImpl = 0x800E2704; // type:func Regs_InitData = 0x800E35D0; // type:func njpgdspMainTextStart = 0x800E7200; // type:func func_801C6E80 = 0x801C7740; // type:func +func_801C70FC = 0x801C79BC; // type:func +func_801C7268 = 0x801C7BC4; // type:func func_801C7C1C = 0x801C8510; // type:func n64dd_SetDiskVersion = 0x801C8808; // type:func ConsoleLogo_Calc = 0x80800000; // type:func From e7b0daa2ecae9a65dd531a7b9eb40d7171fa279d Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Sep 2024 06:26:47 +0200 Subject: [PATCH 30/86] [headers 7] Add sys_matrix.h (#2150) * add sys_matrix.h, based on MM's * move matrix debug macros to sys_matrix.h * bss --- include/functions.h | 37 +-------- include/macros.h | 6 -- include/sys_matrix.h | 85 +++++++++++++++++++++ include/variables.h | 2 - include/z64.h | 6 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- 6 files changed, 88 insertions(+), 50 deletions(-) create mode 100644 include/sys_matrix.h diff --git a/include/functions.h b/include/functions.h index a0156d314d..79083ff445 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1272,42 +1272,7 @@ void* SysCfb_GetFbEnd(void); void Math3D_DrawSphere(PlayState* play, Sphere16* sph); void Math3D_DrawCylinder(PlayState* play, Cylinder16* cyl); -void Matrix_Init(GameState* gameState); -void Matrix_Push(void); -void Matrix_Pop(void); -void Matrix_Get(MtxF* dest); -void Matrix_Put(MtxF* src); -void Matrix_Mult(MtxF* mf, u8 mode); -void Matrix_Translate(f32 x, f32 y, f32 z, u8 mode); -void Matrix_Scale(f32 x, f32 y, f32 z, u8 mode); -void Matrix_RotateX(f32 x, u8 mode); -void Matrix_RotateY(f32 y, u8 mode); -void Matrix_RotateZ(f32 z, u8 mode); -void Matrix_RotateZYX(s16 x, s16 y, s16 z, u8 mode); -void Matrix_TranslateRotateZYX(Vec3f* translation, Vec3s* rotation); -void Matrix_SetTranslateRotateYXZ(f32 translateX, f32 translateY, f32 translateZ, Vec3s* rot); -Mtx* Matrix_MtxFToMtx(MtxF* src, Mtx* dest); -#if OOT_DEBUG -Mtx* Matrix_ToMtx(Mtx* dest, const char* file, int line); -Mtx* Matrix_NewMtx(GraphicsContext* gfxCtx, const char* file, int line); -#else -Mtx* Matrix_ToMtx(Mtx* dest); -Mtx* Matrix_NewMtx(GraphicsContext* gfxCtx); -#endif -void Matrix_MultVec3f(Vec3f* src, Vec3f* dest); -void Matrix_MtxFCopy(MtxF* dest, MtxF* src); -void Matrix_MtxToMtxF(Mtx* src, MtxF* dest); -void Matrix_MultVec3fExt(Vec3f* src, Vec3f* dest, MtxF* mf); -void Matrix_Transpose(MtxF* mf); -void Matrix_ReplaceRotation(MtxF* mf); -void Matrix_MtxFToYXZRotS(MtxF* mf, Vec3s* rotDest, s32 flag); -void Matrix_MtxFToZYXRotS(MtxF* mf, Vec3s* rotDest, s32 flag); -void Matrix_RotateAxis(f32 angle, Vec3f* axis, u8 mode); -#if OOT_DEBUG -MtxF* Matrix_CheckFloats(MtxF* mf, const char* file, int line); -#endif -void Matrix_SetTranslateScaleMtx2(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32 translateX, f32 translateY, - f32 translateZ); + u64* SysUcode_GetUCodeBoot(void); size_t SysUcode_GetUCodeBootSize(void); u64* SysUcode_GetUCode(void); diff --git a/include/macros.h b/include/macros.h index 50f8330282..dab193146d 100644 --- a/include/macros.h +++ b/include/macros.h @@ -189,9 +189,6 @@ extern struct GraphicsContext* __gfxCtx; (void)0 #define GRAPH_ALLOC(gfxCtx, size) Graph_Alloc(gfxCtx, size) -#define MATRIX_TO_MTX(gfxCtx, file, line) Matrix_ToMtx(gfxCtx, file, line) -#define MATRIX_NEW(gfxCtx, file, line) Matrix_NewMtx(gfxCtx, file, line) -#define MATRIX_CHECK_FLOATS(mtx, file, line) Matrix_CheckFloats(mtx, file, line) #define DMA_REQUEST_SYNC(ram, vrom, size, file, line) DmaMgr_RequestSyncDebug(ram, vrom, size, file, line) #define DMA_REQUEST_ASYNC(req, ram, vrom, size, unk5, queue, msg, file, line) DmaMgr_RequestAsyncDebug(req, ram, vrom, size, unk5, queue, msg, file, line) #define GAME_STATE_ALLOC(gameState, size, file, line) GameState_Alloc(gameState, size, file, line) @@ -221,9 +218,6 @@ extern struct GraphicsContext* __gfxCtx; (void)0 #define GRAPH_ALLOC(gfxCtx, size) ((void*)((gfxCtx)->polyOpa.d = (Gfx*)((u8*)(gfxCtx)->polyOpa.d - ALIGN16(size)))) -#define MATRIX_TO_MTX(gfxCtx, file, line) Matrix_ToMtx(gfxCtx) -#define MATRIX_NEW(gfxCtx, file, line) Matrix_NewMtx(gfxCtx) -#define MATRIX_CHECK_FLOATS(mtx, file, line) (mtx) #define DMA_REQUEST_SYNC(ram, vrom, size, file, line) DmaMgr_RequestSync(ram, vrom, size) #define DMA_REQUEST_ASYNC(req, ram, vrom, size, unk5, queue, msg, file, line) DmaMgr_RequestAsync(req, ram, vrom, size, unk5, queue, msg) #define GAME_STATE_ALLOC(gameState, size, file, line) THA_AllocTailAlign16(&(gameState)->tha, size) diff --git a/include/sys_matrix.h b/include/sys_matrix.h new file mode 100644 index 0000000000..91a2285d77 --- /dev/null +++ b/include/sys_matrix.h @@ -0,0 +1,85 @@ +#ifndef SYS_MATRIX_H +#define SYS_MATRIX_H + +#include "z64math.h" + +struct GraphicsContext; +struct GameState; + +typedef enum MatrixMode { + /* 0 */ MTXMODE_NEW, // generates a new matrix + /* 1 */ MTXMODE_APPLY // applies transformation to the current matrix +} MatrixMode; + +extern Mtx gMtxClear; +extern MtxF gMtxFClear; + +/* Stack operations */ + +void Matrix_Init(struct GameState* gameState); +void Matrix_Push(void); +void Matrix_Pop(void); +void Matrix_Get(MtxF* dest); +void Matrix_Put(MtxF* src); + +/* Basic operations */ + +void Matrix_Mult(MtxF* mf, u8 mode); +void Matrix_Translate(f32 x, f32 y, f32 z, u8 mode); +void Matrix_Scale(f32 x, f32 y, f32 z, u8 mode); +void Matrix_RotateX(f32 x, u8 mode); +void Matrix_RotateY(f32 y, u8 mode); +void Matrix_RotateZ(f32 z, u8 mode); + +/* Compound operations */ + +void Matrix_RotateZYX(s16 x, s16 y, s16 z, u8 mode); +void Matrix_TranslateRotateZYX(Vec3f* translation, Vec3s* rotation); +void Matrix_SetTranslateRotateYXZ(f32 translateX, f32 translateY, f32 translateZ, Vec3s* rot); +void Matrix_SetTranslateScaleMtx2(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32 translateX, f32 translateY, + f32 translateZ); + +/* Conversion and allocation operations */ + +Mtx* Matrix_MtxFToMtx(MtxF* src, Mtx* dest); + +#if OOT_DEBUG + +Mtx* Matrix_ToMtx(Mtx* dest, const char* file, int line); +Mtx* Matrix_NewMtx(struct GraphicsContext* gfxCtx, const char* file, int line); +MtxF* Matrix_CheckFloats(MtxF* mf, const char* file, int line); + +#define MATRIX_TO_MTX(gfxCtx, file, line) Matrix_ToMtx(gfxCtx, file, line) +#define MATRIX_NEW(gfxCtx, file, line) Matrix_NewMtx(gfxCtx, file, line) +#define MATRIX_CHECK_FLOATS(mtx, file, line) Matrix_CheckFloats(mtx, file, line) + +#else + +Mtx* Matrix_ToMtx(Mtx* dest); +Mtx* Matrix_NewMtx(struct GraphicsContext* gfxCtx); + +#define MATRIX_TO_MTX(gfxCtx, file, line) Matrix_ToMtx(gfxCtx) +#define MATRIX_NEW(gfxCtx, file, line) Matrix_NewMtx(gfxCtx) +#define MATRIX_CHECK_FLOATS(mtx, file, line) (mtx) + +#endif + +/* Vector operations */ + +void Matrix_MultVec3f(Vec3f* src, Vec3f* dest); +void Matrix_MultVec3fExt(Vec3f* src, Vec3f* dest, MtxF* mf); + +/* Copy and another conversion */ + +void Matrix_MtxFCopy(MtxF* dest, MtxF* src); +void Matrix_MtxToMtxF(Mtx* src, MtxF* dest); + +/* Miscellaneous */ + +void Matrix_Transpose(MtxF* mf); +void Matrix_ReplaceRotation(MtxF* mf); +void Matrix_MtxFToYXZRotS(MtxF* mf, Vec3s* rotDest, s32 flag); +void Matrix_MtxFToZYXRotS(MtxF* mf, Vec3s* rotDest, s32 flag); +void Matrix_RotateAxis(f32 angle, Vec3f* axis, u8 mode); + +#endif diff --git a/include/variables.h b/include/variables.h index f7fc97a230..bf4fb15c52 100644 --- a/include/variables.h +++ b/include/variables.h @@ -104,8 +104,6 @@ extern u8 gBossMarkState; extern s32 gScreenWidth; extern s32 gScreenHeight; -extern Mtx gMtxClear; -extern MtxF gMtxFClear; #if OOT_DEBUG extern u32 gIsCtrlr2Valid; #endif diff --git a/include/z64.h b/include/z64.h index 0ee9f4f080..7a6187a485 100644 --- a/include/z64.h +++ b/include/z64.h @@ -66,6 +66,7 @@ #include "sys_math.h" #include "sys_math3d.h" #include "fp_math.h" +#include "sys_matrix.h" #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 240 @@ -390,11 +391,6 @@ typedef struct DebugDispObject { /* 0x28 */ struct DebugDispObject* next; } DebugDispObject; // size = 0x2C -typedef enum MatrixMode { - /* 0 */ MTXMODE_NEW, // generates a new matrix - /* 1 */ MTXMODE_APPLY // applies transformation to the current matrix -} MatrixMode; - typedef struct StackEntry { /* 0x00 */ struct StackEntry* next; /* 0x04 */ struct StackEntry* prev; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 34237596e5..1a2e28f3ef 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:154 gc-eu-mq:154 gc-jp:156 gc-jp-ce:156 gc-jp-mq:156 gc-us:156 gc-us-mq:156" +#pragma increment_block_number "gc-eu:153 gc-eu-mq:153 gc-jp:155 gc-jp-ce:155 gc-jp-mq:155 gc-us:155 gc-us-mq:155" #define FLAGS ACTOR_FLAG_4 From 87c304afcb6a7e6d06728d953df182ed43393842 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Sep 2024 08:29:50 +0200 Subject: [PATCH 31/86] [headers 6] collision_check functions and structs (#2148) * [headers 6] collision_check functions and structs * bss --- include/functions.h | 94 +------------------------ include/z64actor.h | 33 --------- include/z64collision_check.h | 132 +++++++++++++++++++++++++++++++++++ src/code/z_collision_check.c | 1 - 4 files changed, 133 insertions(+), 127 deletions(-) diff --git a/include/functions.h b/include/functions.h index 79083ff445..65a95050b6 100644 --- a/include/functions.h +++ b/include/functions.h @@ -647,99 +647,7 @@ void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* d UNK_TYPE arg6); s32 func_8005B198(void); s16 Camera_SetFinishedFlag(Camera* camera); -DamageTable* DamageTable_Get(s32 index); -void DamageTable_Clear(DamageTable* table); -#if OOT_DEBUG -void Collider_DrawRedPoly(GraphicsContext* gfxCtx, Vec3f* vA, Vec3f* vB, Vec3f* vC); -void Collider_DrawPoly(GraphicsContext* gfxCtx, Vec3f* vA, Vec3f* vB, Vec3f* vC, u8 r, u8 g, u8 b); -#endif -s32 Collider_InitJntSph(PlayState* play, ColliderJntSph* jntSph); -s32 Collider_FreeJntSph(PlayState* play, ColliderJntSph* jntSph); -s32 Collider_DestroyJntSph(PlayState* play, ColliderJntSph* jntSph); -s32 Collider_SetJntSphToActor(PlayState* play, ColliderJntSph* dest, ColliderJntSphInitToActor* src); -s32 Collider_SetJntSphAllocType1(PlayState* play, ColliderJntSph* dest, Actor* actor, - ColliderJntSphInitType1* src); -s32 Collider_SetJntSphAlloc(PlayState* play, ColliderJntSph* dest, Actor* actor, ColliderJntSphInit* src); -s32 Collider_SetJntSph(PlayState* play, ColliderJntSph* dest, Actor* actor, ColliderJntSphInit* src, - ColliderJntSphElement* jntSphElements); -s32 Collider_ResetJntSphAT(PlayState* play, Collider* col); -s32 Collider_ResetJntSphAC(PlayState* play, Collider* col); -s32 Collider_ResetJntSphOC(PlayState* play, Collider* col); -s32 Collider_InitCylinder(PlayState* play, ColliderCylinder* cyl); -s32 Collider_DestroyCylinder(PlayState* play, ColliderCylinder* cyl); -s32 Collider_SetCylinderToActor(PlayState* play, ColliderCylinder* dest, ColliderCylinderInitToActor* src); -s32 Collider_SetCylinderType1(PlayState* play, ColliderCylinder* dest, Actor* actor, ColliderCylinderInitType1* src); -s32 Collider_SetCylinder(PlayState* play, ColliderCylinder* dest, Actor* actor, ColliderCylinderInit* src); -s32 Collider_ResetCylinderAT(PlayState* play, Collider* col); -s32 Collider_ResetCylinderAC(PlayState* play, Collider* col); -s32 Collider_ResetCylinderOC(PlayState* play, Collider* col); -s32 Collider_InitTris(PlayState* play, ColliderTris* tris); -s32 Collider_FreeTris(PlayState* play, ColliderTris* tris); -s32 Collider_DestroyTris(PlayState* play, ColliderTris* tris); -s32 Collider_SetTrisAllocType1(PlayState* play, ColliderTris* dest, Actor* actor, ColliderTrisInitType1* src); -s32 Collider_SetTrisAlloc(PlayState* play, ColliderTris* dest, Actor* actor, ColliderTrisInit* src); -s32 Collider_SetTris(PlayState* play, ColliderTris* dest, Actor* actor, ColliderTrisInit* src, - ColliderTrisElement* trisElements); -s32 Collider_ResetTrisAT(PlayState* play, Collider* col); -s32 Collider_ResetTrisAC(PlayState* play, Collider* col); -s32 Collider_ResetTrisOC(PlayState* play, Collider* col); -s32 Collider_InitQuad(PlayState* play, ColliderQuad* quad); -s32 Collider_DestroyQuad(PlayState* play, ColliderQuad* quad); -s32 Collider_SetQuadType1(PlayState* play, ColliderQuad* dest, Actor* actor, ColliderQuadInitType1* src); -s32 Collider_SetQuad(PlayState* play, ColliderQuad* dest, Actor* actor, ColliderQuadInit* src); -s32 Collider_ResetQuadAT(PlayState* play, Collider* col); -s32 Collider_ResetQuadAC(PlayState* play, Collider* col); -s32 Collider_ResetQuadOC(PlayState* play, Collider* col); -s32 Collider_InitLine(PlayState* play, OcLine* line); -s32 Collider_DestroyLine(PlayState* play, OcLine* line); -s32 Collider_SetLinePoints(PlayState* play, OcLine* ocLine, Vec3f* a, Vec3f* b); -s32 Collider_SetLine(PlayState* play, OcLine* dest, OcLine* src); -s32 Collider_ResetLineOC(PlayState* play, OcLine* line); -void CollisionCheck_InitContext(PlayState* play, CollisionCheckContext* colChkCtx); -void CollisionCheck_DestroyContext(PlayState* play, CollisionCheckContext* colChkCtx); -void CollisionCheck_ClearContext(PlayState* play, CollisionCheckContext* colChkCtx); -void CollisionCheck_EnableSAC(PlayState* play, CollisionCheckContext* colChkCtx); -void CollisionCheck_DisableSAC(PlayState* play, CollisionCheckContext* colChkCtx); -#if OOT_DEBUG -void Collider_Draw(PlayState* play, Collider* col); -void CollisionCheck_DrawCollision(PlayState* play, CollisionCheckContext* colChkCtx); -#endif -s32 CollisionCheck_SetAT(PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider); -s32 CollisionCheck_SetAT_SAC(PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider, s32 index); -s32 CollisionCheck_SetAC(PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider); -s32 CollisionCheck_SetAC_SAC(PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider, s32 index); -s32 CollisionCheck_SetOC(PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider); -s32 CollisionCheck_SetOC_SAC(PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider, s32 index); -s32 CollisionCheck_SetOCLine(PlayState* play, CollisionCheckContext* colChkCtx, OcLine* collider); -void CollisionCheck_BlueBlood(PlayState* play, Collider* collider, Vec3f* v); -void CollisionCheck_AT(PlayState* play, CollisionCheckContext* colChkCtx); -void CollisionCheck_OC(PlayState* play, CollisionCheckContext* colChkCtx); -void CollisionCheck_InitInfo(CollisionCheckInfo* info); -void CollisionCheck_ResetDamage(CollisionCheckInfo* info); -void CollisionCheck_SetInfoNoDamageTable(CollisionCheckInfo* info, CollisionCheckInfoInit* init); -void CollisionCheck_SetInfo(CollisionCheckInfo* info, DamageTable* damageTable, CollisionCheckInfoInit* init); -void CollisionCheck_SetInfo2(CollisionCheckInfo* info, DamageTable* damageTable, CollisionCheckInfoInit2* init); -void CollisionCheck_SetInfoGetDamageTable(CollisionCheckInfo* info, s32 index, CollisionCheckInfoInit2* init); -void CollisionCheck_Damage(PlayState* play, CollisionCheckContext* colChkCtx); -s32 CollisionCheck_LineOCCheckAll(PlayState* play, CollisionCheckContext* colChkCtx, Vec3f* a, Vec3f* b); -s32 CollisionCheck_LineOCCheck(PlayState* play, CollisionCheckContext* colChkCtx, Vec3f* a, Vec3f* b, - Actor** exclusions, s32 numExclusions); -void Collider_UpdateCylinder(Actor* actor, ColliderCylinder* cyl); -void Collider_SetCylinderPosition(ColliderCylinder* cyl, Vec3s* pos); -void Collider_SetQuadVertices(ColliderQuad* quad, Vec3f* a, Vec3f* b, Vec3f* c, Vec3f* d); -void Collider_SetTrisVertices(ColliderTris* tris, s32 elemIndex, Vec3f* a, Vec3f* b, Vec3f* c); -void Collider_SetTrisDim(PlayState* play, ColliderTris* tris, s32 elemIndex, ColliderTrisElementDimInit* src); -void Collider_UpdateSpheres(s32 limb, ColliderJntSph* jntSph); -void CollisionCheck_SpawnRedBlood(PlayState* play, Vec3f* v); -void CollisionCheck_SpawnWaterDroplets(PlayState* play, Vec3f* v); -void CollisionCheck_SpawnShieldParticles(PlayState* play, Vec3f* v); -void CollisionCheck_SpawnShieldParticlesMetal(PlayState* play, Vec3f* v); -void CollisionCheck_SpawnShieldParticlesMetalSfx(PlayState* play, Vec3f* v, Vec3f* pos); -void CollisionCheck_SpawnShieldParticlesMetal2(PlayState* play, Vec3f* v); -void CollisionCheck_SpawnShieldParticlesWood(PlayState* play, Vec3f* v, Vec3f* actorPos); -s32 CollisionCheck_CylSideVsLineSeg(f32 radius, f32 height, f32 offset, Vec3f* actorPos, Vec3f* itemPos, - Vec3f* itemProjPos, Vec3f* out1, Vec3f* out2); -u8 CollisionCheck_GetSwordDamage(s32 dmgFlags); + void SaveContext_Init(void); s32 func_800635D0(s32); void Regs_Init(void); diff --git a/include/z64actor.h b/include/z64actor.h index c3a8070ee6..7c97987dc6 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -96,39 +96,6 @@ typedef struct ActorOverlay { /* 0x1E */ s8 numLoaded; // original name: "clients" } ActorOverlay; // size = 0x20 -typedef struct DamageTable { - u8 table[32]; -} DamageTable; - -typedef struct CollisionCheckInfoInit { - /* 0x00 */ u8 health; - /* 0x02 */ s16 cylRadius; - /* 0x04 */ s16 cylHeight; - /* 0x06 */ u8 mass; -} CollisionCheckInfoInit; - -typedef struct CollisionCheckInfoInit2 { - /* 0x00 */ u8 health; - /* 0x02 */ s16 cylRadius; - /* 0x04 */ s16 cylHeight; - /* 0x06 */ s16 cylYShift; - /* 0x08 */ u8 mass; -} CollisionCheckInfoInit2; - -typedef struct CollisionCheckInfo { - /* 0x00 */ DamageTable* damageTable; - /* 0x04 */ Vec3f displacement; // Amount to correct actor velocity by when colliding into a body - /* 0x10 */ s16 cylRadius; // Used for various purposes - /* 0x12 */ s16 cylHeight; // Used for various purposes - /* 0x14 */ s16 cylYShift; // Unused. Purpose inferred from Cylinder16 and CollisionCheck_CylSideVsLineSeg - /* 0x16 */ u8 mass; // Used to compute displacement for OC collisions - /* 0x17 */ u8 health; // Note: some actors may use their own health variable instead of this one - /* 0x18 */ u8 damage; // Amount to decrement health by - /* 0x19 */ u8 damageEffect; // Stores what effect should occur when hit by a weapon - /* 0x1A */ u8 atHitEffect; // Stores what effect should occur when AT connects with an AC - /* 0x1B */ u8 acHitEffect; // Stores what effect should occur when AC is touched by an AT -} CollisionCheckInfo; // size = 0x1C - typedef struct ActorShape { /* 0x00 */ Vec3s rot; // Current actor shape rotation /* 0x06 */ s16 face; // Used to index eyes and mouth textures. Only used by player diff --git a/include/z64collision_check.h b/include/z64collision_check.h index 5921eda064..99ad7aa76b 100644 --- a/include/z64collision_check.h +++ b/include/z64collision_check.h @@ -1,12 +1,17 @@ #ifndef Z64COLLISION_CHECK_H #define Z64COLLISION_CHECK_H +#include "ultra64.h" +#include "z64math.h" + #define COLLISION_CHECK_AT_MAX 50 #define COLLISION_CHECK_AC_MAX 60 #define COLLISION_CHECK_OC_MAX 50 #define COLLISION_CHECK_OC_LINE_MAX 3 struct Actor; +struct GraphicsContext; +struct PlayState; /* * Bases for all shapes of colliders @@ -437,4 +442,131 @@ typedef struct CollisionCheckContext { #define DMG_RANGED (DMG_ARROW | DMG_HOOKSHOT | DMG_SLINGSHOT) #define DMG_DEFAULT ~(DMG_SHIELD | DMG_MIR_RAY) +typedef struct DamageTable { + u8 table[32]; +} DamageTable; + +typedef struct CollisionCheckInfoInit { + /* 0x00 */ u8 health; + /* 0x02 */ s16 cylRadius; + /* 0x04 */ s16 cylHeight; + /* 0x06 */ u8 mass; +} CollisionCheckInfoInit; + +typedef struct CollisionCheckInfoInit2 { + /* 0x00 */ u8 health; + /* 0x02 */ s16 cylRadius; + /* 0x04 */ s16 cylHeight; + /* 0x06 */ s16 cylYShift; + /* 0x08 */ u8 mass; +} CollisionCheckInfoInit2; + +typedef struct CollisionCheckInfo { + /* 0x00 */ DamageTable* damageTable; + /* 0x04 */ Vec3f displacement; // Amount to correct actor velocity by when colliding into a body + /* 0x10 */ s16 cylRadius; // Used for various purposes + /* 0x12 */ s16 cylHeight; // Used for various purposes + /* 0x14 */ s16 cylYShift; // Unused. Purpose inferred from Cylinder16 and CollisionCheck_CylSideVsLineSeg + /* 0x16 */ u8 mass; // Used to compute displacement for OC collisions + /* 0x17 */ u8 health; // Note: some actors may use their own health variable instead of this one + /* 0x18 */ u8 damage; // Amount to decrement health by + /* 0x19 */ u8 damageEffect; // Stores what effect should occur when hit by a weapon + /* 0x1A */ u8 atHitEffect; // Stores what effect should occur when AT connects with an AC + /* 0x1B */ u8 acHitEffect; // Stores what effect should occur when AC is touched by an AT +} CollisionCheckInfo; // size = 0x1C + +DamageTable* DamageTable_Get(s32 index); +void DamageTable_Clear(DamageTable* table); +#if OOT_DEBUG +void Collider_DrawRedPoly(struct GraphicsContext* gfxCtx, Vec3f* vA, Vec3f* vB, Vec3f* vC); +void Collider_DrawPoly(struct GraphicsContext* gfxCtx, Vec3f* vA, Vec3f* vB, Vec3f* vC, u8 r, u8 g, u8 b); +#endif +s32 Collider_InitJntSph(struct PlayState* play, ColliderJntSph* jntSph); +s32 Collider_FreeJntSph(struct PlayState* play, ColliderJntSph* jntSph); +s32 Collider_DestroyJntSph(struct PlayState* play, ColliderJntSph* jntSph); +s32 Collider_SetJntSphToActor(struct PlayState* play, ColliderJntSph* dest, ColliderJntSphInitToActor* src); +s32 Collider_SetJntSphAllocType1(struct PlayState* play, ColliderJntSph* dest, struct Actor* actor, + ColliderJntSphInitType1* src); +s32 Collider_SetJntSphAlloc(struct PlayState* play, ColliderJntSph* dest, struct Actor* actor, ColliderJntSphInit* src); +s32 Collider_SetJntSph(struct PlayState* play, ColliderJntSph* dest, struct Actor* actor, ColliderJntSphInit* src, + ColliderJntSphElement* jntSphElements); +s32 Collider_ResetJntSphAT(struct PlayState* play, Collider* col); +s32 Collider_ResetJntSphAC(struct PlayState* play, Collider* col); +s32 Collider_ResetJntSphOC(struct PlayState* play, Collider* col); +s32 Collider_InitCylinder(struct PlayState* play, ColliderCylinder* cyl); +s32 Collider_DestroyCylinder(struct PlayState* play, ColliderCylinder* cyl); +s32 Collider_SetCylinderToActor(struct PlayState* play, ColliderCylinder* dest, ColliderCylinderInitToActor* src); +s32 Collider_SetCylinderType1(struct PlayState* play, ColliderCylinder* dest, struct Actor* actor, ColliderCylinderInitType1* src); +s32 Collider_SetCylinder(struct PlayState* play, ColliderCylinder* dest, struct Actor* actor, ColliderCylinderInit* src); +s32 Collider_ResetCylinderAT(struct PlayState* play, Collider* col); +s32 Collider_ResetCylinderAC(struct PlayState* play, Collider* col); +s32 Collider_ResetCylinderOC(struct PlayState* play, Collider* col); +s32 Collider_InitTris(struct PlayState* play, ColliderTris* tris); +s32 Collider_FreeTris(struct PlayState* play, ColliderTris* tris); +s32 Collider_DestroyTris(struct PlayState* play, ColliderTris* tris); +s32 Collider_SetTrisAllocType1(struct PlayState* play, ColliderTris* dest, struct Actor* actor, ColliderTrisInitType1* src); +s32 Collider_SetTrisAlloc(struct PlayState* play, ColliderTris* dest, struct Actor* actor, ColliderTrisInit* src); +s32 Collider_SetTris(struct PlayState* play, ColliderTris* dest, struct Actor* actor, ColliderTrisInit* src, + ColliderTrisElement* trisElements); +s32 Collider_ResetTrisAT(struct PlayState* play, Collider* col); +s32 Collider_ResetTrisAC(struct PlayState* play, Collider* col); +s32 Collider_ResetTrisOC(struct PlayState* play, Collider* col); +s32 Collider_InitQuad(struct PlayState* play, ColliderQuad* quad); +s32 Collider_DestroyQuad(struct PlayState* play, ColliderQuad* quad); +s32 Collider_SetQuadType1(struct PlayState* play, ColliderQuad* dest, struct Actor* actor, ColliderQuadInitType1* src); +s32 Collider_SetQuad(struct PlayState* play, ColliderQuad* dest, struct Actor* actor, ColliderQuadInit* src); +s32 Collider_ResetQuadAT(struct PlayState* play, Collider* col); +s32 Collider_ResetQuadAC(struct PlayState* play, Collider* col); +s32 Collider_ResetQuadOC(struct PlayState* play, Collider* col); +s32 Collider_InitLine(struct PlayState* play, OcLine* line); +s32 Collider_DestroyLine(struct PlayState* play, OcLine* line); +s32 Collider_SetLinePoints(struct PlayState* play, OcLine* ocLine, Vec3f* a, Vec3f* b); +s32 Collider_SetLine(struct PlayState* play, OcLine* dest, OcLine* src); +s32 Collider_ResetLineOC(struct PlayState* play, OcLine* line); +void CollisionCheck_InitContext(struct PlayState* play, CollisionCheckContext* colChkCtx); +void CollisionCheck_DestroyContext(struct PlayState* play, CollisionCheckContext* colChkCtx); +void CollisionCheck_ClearContext(struct PlayState* play, CollisionCheckContext* colChkCtx); +void CollisionCheck_EnableSAC(struct PlayState* play, CollisionCheckContext* colChkCtx); +void CollisionCheck_DisableSAC(struct PlayState* play, CollisionCheckContext* colChkCtx); +#if OOT_DEBUG +void Collider_Draw(struct PlayState* play, Collider* col); +void CollisionCheck_DrawCollision(struct PlayState* play, CollisionCheckContext* colChkCtx); +#endif +s32 CollisionCheck_SetAT(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider); +s32 CollisionCheck_SetAT_SAC(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider, s32 index); +s32 CollisionCheck_SetAC(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider); +s32 CollisionCheck_SetAC_SAC(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider, s32 index); +s32 CollisionCheck_SetOC(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider); +s32 CollisionCheck_SetOC_SAC(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* collider, s32 index); +s32 CollisionCheck_SetOCLine(struct PlayState* play, CollisionCheckContext* colChkCtx, OcLine* collider); +void CollisionCheck_BlueBlood(struct PlayState* play, Collider* collider, Vec3f* v); +void CollisionCheck_AT(struct PlayState* play, CollisionCheckContext* colChkCtx); +void CollisionCheck_OC(struct PlayState* play, CollisionCheckContext* colChkCtx); +void CollisionCheck_InitInfo(CollisionCheckInfo* info); +void CollisionCheck_ResetDamage(CollisionCheckInfo* info); +void CollisionCheck_SetInfoNoDamageTable(CollisionCheckInfo* info, CollisionCheckInfoInit* init); +void CollisionCheck_SetInfo(CollisionCheckInfo* info, DamageTable* damageTable, CollisionCheckInfoInit* init); +void CollisionCheck_SetInfo2(CollisionCheckInfo* info, DamageTable* damageTable, CollisionCheckInfoInit2* init); +void CollisionCheck_SetInfoGetDamageTable(CollisionCheckInfo* info, s32 index, CollisionCheckInfoInit2* init); +void CollisionCheck_Damage(struct PlayState* play, CollisionCheckContext* colChkCtx); +s32 CollisionCheck_LineOCCheckAll(struct PlayState* play, CollisionCheckContext* colChkCtx, Vec3f* a, Vec3f* b); +s32 CollisionCheck_LineOCCheck(struct PlayState* play, CollisionCheckContext* colChkCtx, Vec3f* a, Vec3f* b, + struct Actor** exclusions, s32 numExclusions); +void Collider_UpdateCylinder(struct Actor* actor, ColliderCylinder* cyl); +void Collider_SetCylinderPosition(ColliderCylinder* cyl, Vec3s* pos); +void Collider_SetQuadVertices(ColliderQuad* quad, Vec3f* a, Vec3f* b, Vec3f* c, Vec3f* d); +void Collider_SetTrisVertices(ColliderTris* tris, s32 elemIndex, Vec3f* a, Vec3f* b, Vec3f* c); +void Collider_SetTrisDim(struct PlayState* play, ColliderTris* tris, s32 elemIndex, ColliderTrisElementDimInit* src); +void Collider_UpdateSpheres(s32 limb, ColliderJntSph* jntSph); +void CollisionCheck_SpawnRedBlood(struct PlayState* play, Vec3f* v); +void CollisionCheck_SpawnWaterDroplets(struct PlayState* play, Vec3f* v); +void CollisionCheck_SpawnShieldParticles(struct PlayState* play, Vec3f* v); +void CollisionCheck_SpawnShieldParticlesMetal(struct PlayState* play, Vec3f* v); +void CollisionCheck_SpawnShieldParticlesMetalSfx(struct PlayState* play, Vec3f* v, Vec3f* pos); +void CollisionCheck_SpawnShieldParticlesMetal2(struct PlayState* play, Vec3f* v); +void CollisionCheck_SpawnShieldParticlesWood(struct PlayState* play, Vec3f* v, Vec3f* actorPos); +s32 CollisionCheck_CylSideVsLineSeg(f32 radius, f32 height, f32 offset, Vec3f* actorPos, Vec3f* itemPos, + Vec3f* itemProjPos, Vec3f* out1, Vec3f* out2); +u8 CollisionCheck_GetSwordDamage(s32 dmgFlags); + #endif diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index b18f3e226d..f584641b66 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -2318,7 +2318,6 @@ void CollisionCheck_ATQuadVsACCyl(PlayState* play, CollisionCheckContext* colChk static s8 sBssDummy3; static s8 sBssDummy4; static s8 sBssDummy5; -static s8 sBssDummy6; #endif void CollisionCheck_ATTrisVsACTris(PlayState* play, CollisionCheckContext* colChkCtx, Collider* atCol, From 3a9ebfbbad15294c1546074c4b64da0289e8a334 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Sep 2024 10:14:08 +0200 Subject: [PATCH 32/86] Pause doc: World map points (#2141) * Pause doc: World map points * bss * `WORLD_MAP_POINT_HYLIA_LAKESIDE` -> `_LAKE_HYLIA` --- assets/xml/textures/map_name_static.xml | 8 + assets/xml/textures/map_name_static_pal.xml | 10 + include/z64pause.h | 24 +- src/code/fault_gc.c | 2 +- src/code/z_camera.c | 2 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 4 +- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../misc/ovl_kaleido_scope/z_kaleido_map.c | 100 +++--- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 292 ++++++++++++------ .../misc/ovl_kaleido_scope/z_kaleido_scope.h | 30 ++ 11 files changed, 326 insertions(+), 150 deletions(-) diff --git a/assets/xml/textures/map_name_static.xml b/assets/xml/textures/map_name_static.xml index 42448de7c6..dd705eab60 100644 --- a/assets/xml/textures/map_name_static.xml +++ b/assets/xml/textures/map_name_static.xml @@ -1,5 +1,8 @@ + + + @@ -12,6 +15,7 @@ + @@ -24,6 +28,9 @@ + + + @@ -46,6 +53,7 @@ + diff --git a/assets/xml/textures/map_name_static_pal.xml b/assets/xml/textures/map_name_static_pal.xml index 0504aa432a..780609b18c 100644 --- a/assets/xml/textures/map_name_static_pal.xml +++ b/assets/xml/textures/map_name_static_pal.xml @@ -1,5 +1,8 @@ + + + @@ -12,6 +15,7 @@ + @@ -24,6 +28,7 @@ + @@ -36,6 +41,9 @@ + + + @@ -58,6 +66,7 @@ + @@ -80,6 +89,7 @@ + diff --git a/include/z64pause.h b/include/z64pause.h index eda4e2f82a..be38d7dd01 100644 --- a/include/z64pause.h +++ b/include/z64pause.h @@ -96,6 +96,28 @@ typedef enum PauseMainState { /* 9 */ PAUSE_MAIN_STATE_9 } PauseMainState; +typedef enum WorldMapPoint { + /* 0 */ WORLD_MAP_POINT_HAUNTED_WASTELAND, + /* 1 */ WORLD_MAP_POINT_GERUDOS_FORTRESS, + /* 2 */ WORLD_MAP_POINT_GERUDO_VALLEY, + /* 3 */ WORLD_MAP_POINT_LAKE_HYLIA, + /* 4 */ WORLD_MAP_POINT_LON_LON_RANCH, + /* 5 */ WORLD_MAP_POINT_MARKET, + /* 6 */ WORLD_MAP_POINT_HYRULE_FIELD, + /* 7 */ WORLD_MAP_POINT_DEATH_MOUNTAIN, + /* 8 */ WORLD_MAP_POINT_KAKARIKO_VILLAGE, + /* 9 */ WORLD_MAP_POINT_LOST_WOODS, + /* 10 */ WORLD_MAP_POINT_KOKIRI_FOREST, + /* 11 */ WORLD_MAP_POINT_ZORAS_DOMAIN, + /* 12 */ WORLD_MAP_POINT_MAX +} WorldMapPoint; + +typedef enum WorldMapPointState { + /* 0 */ WORLD_MAP_POINT_STATE_HIDE, + /* 1 */ WORLD_MAP_POINT_STATE_SHOW, + /* 2 */ WORLD_MAP_POINT_STATE_HIGHLIGHT +} WorldMapPointState; + typedef struct PauseContext { /* 0x0000 */ View view; /* 0x0128 */ u8* iconItemSegment; @@ -161,7 +183,7 @@ typedef struct PauseContext { /* 0x0260 */ s16 cursorColorSet; // 0 = white; 4 = yellow; 8 = green /* 0x0262 */ s16 promptChoice; // save/continue choice: 0 = yes; 4 = no /* 0x0264 */ s16 ocarinaSongIdx; - /* 0x0266 */ u8 worldMapPoints[20]; // 0 = hidden; 1 = displayed; 2 = highlighted + /* 0x0266 */ u8 worldMapPoints[20]; // indices: `WorldMapPoint` enum, values: `WorldMapPointState` enum /* 0x027A */ u8 tradeQuestLocation; /* 0x027C */ SkelAnime playerSkelAnime; } PauseContext; // size = 0x2C0 diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c index ffed05048c..857cc4b885 100644 --- a/src/code/fault_gc.c +++ b/src/code/fault_gc.c @@ -42,7 +42,7 @@ */ #if PLATFORM_GC -#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-eu-mq-dbg:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224" \ +#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-eu-mq-dbg:208 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224" \ "gc-us-mq:224" #include "global.h" diff --git a/src/code/z_camera.c b/src/code/z_camera.c index 7cb7e712c6..41210ff4e4 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -4,7 +4,7 @@ #include "terminal.h" #include "overlays/actors/ovl_En_Horse/z_en_horse.h" -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags); s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange); 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 1ac2d871e1..9798fe510b 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -100,13 +100,13 @@ 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 }; -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0" static EnGanonMant* sCape; // TODO: There's probably a way to match BSS ordering 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 "gc-eu:192 gc-eu-mq:192 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" static s32 sSeed1; static s32 sSeed2; diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index bfc625d69a..cf483fddfb 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -10,7 +10,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "terminal.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" #define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 1a2e28f3ef..48ea1fc010 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:153 gc-eu-mq:153 gc-jp:155 gc-jp-ce:155 gc-jp-mq:155 gc-us:155 gc-us-mq:155" +#pragma increment_block_number "gc-eu:147 gc-eu-mq:147 gc-jp:149 gc-jp-ce:149 gc-jp-mq:149 gc-us:149 gc-us-mq:149" #define FLAGS ACTOR_FLAG_4 diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c index 74324b9011..c9e176b66c 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c @@ -358,32 +358,40 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { static void* cloudTexs[] = { - gWorldMapCloudSacredForestMeadowTex, gWorldMapCloudHyruleFieldTex, - gWorldMapCloudLonLonRanchTex, gWorldMapCloudMarketTex, - gWorldMapCloudHyruleCastleTex, gWorldMapCloudKakarikoVillageTex, - gWorldMapCloudGraveyardTex, gWorldMapCloudDeathMountainTrailTex, - gWorldMapCloudGoronCityTex, gWorldMapCloudZorasRiverTex, - gWorldMapCloudZorasDomainTex, gWorldMapCloudZorasFountainTex, - gWorldMapCloudGerudoValleyTex, gWorldMapCloudGerudosFortressTex, - gWorldMapCloudDesertColossusTex, gWorldMapCloudLakeHyliaTex, + gWorldMapCloudSacredForestMeadowTex, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW + gWorldMapCloudHyruleFieldTex, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD + gWorldMapCloudLonLonRanchTex, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH + gWorldMapCloudMarketTex, // QUAD_MAP_WORLD_CLOUDS_MARKET + gWorldMapCloudHyruleCastleTex, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE + gWorldMapCloudKakarikoVillageTex, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE + gWorldMapCloudGraveyardTex, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD + gWorldMapCloudDeathMountainTrailTex, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL + gWorldMapCloudGoronCityTex, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY + gWorldMapCloudZorasRiverTex, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER + gWorldMapCloudZorasDomainTex, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN + gWorldMapCloudZorasFountainTex, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN + gWorldMapCloudGerudoValleyTex, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY + gWorldMapCloudGerudosFortressTex, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS + gWorldMapCloudDesertColossusTex, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS + gWorldMapCloudLakeHyliaTex, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA }; static u16 cloudFlagNums[] = { - WORLD_MAP_AREA_SACRED_FOREST_MEADOW, - WORLD_MAP_AREA_HYRULE_FIELD, - WORLD_MAP_AREA_LON_LON_RANCH, - WORLD_MAP_AREA_MARKET, - WORLD_MAP_AREA_HYRULE_CASTLE, - WORLD_MAP_AREA_KAKARIKO_VILLAGE, - WORLD_MAP_AREA_GRAVEYARD, - WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL, - WORLD_MAP_AREA_GORON_CITY, - WORLD_MAP_AREA_ZORAS_RIVER, - WORLD_MAP_AREA_ZORAS_DOMAIN, - WORLD_MAP_AREA_ZORAS_FOUNTAIN, - WORLD_MAP_AREA_GERUDO_VALLEY, - WORLD_MAP_AREA_GERUDOS_FORTRESS, - WORLD_MAP_AREA_DESERT_COLOSSUS, - WORLD_MAP_AREA_LAKE_HYLIA, + WORLD_MAP_AREA_SACRED_FOREST_MEADOW, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW + WORLD_MAP_AREA_HYRULE_FIELD, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD + WORLD_MAP_AREA_LON_LON_RANCH, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH + WORLD_MAP_AREA_MARKET, // QUAD_MAP_WORLD_CLOUDS_MARKET + WORLD_MAP_AREA_HYRULE_CASTLE, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE + WORLD_MAP_AREA_KAKARIKO_VILLAGE, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE + WORLD_MAP_AREA_GRAVEYARD, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD + WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL + WORLD_MAP_AREA_GORON_CITY, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY + WORLD_MAP_AREA_ZORAS_RIVER, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER + WORLD_MAP_AREA_ZORAS_DOMAIN, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN + WORLD_MAP_AREA_ZORAS_FOUNTAIN, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN + WORLD_MAP_AREA_GERUDO_VALLEY, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY + WORLD_MAP_AREA_GERUDOS_FORTRESS, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS + WORLD_MAP_AREA_DESERT_COLOSSUS, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS + WORLD_MAP_AREA_LAKE_HYLIA, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA }; static s16 pointPulsePrimColor[] = { 0, 0, 255 }; static s16 pointPrimColors[][3] = { @@ -544,12 +552,13 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { do { pauseCtx->cursorPoint[PAUSE_WORLD_MAP]++; - if (pauseCtx->cursorPoint[PAUSE_WORLD_MAP] > 11) { - pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = 11; + if (pauseCtx->cursorPoint[PAUSE_WORLD_MAP] >= WORLD_MAP_POINT_MAX) { + pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = WORLD_MAP_POINT_MAX - 1; KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT); break; } - } while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == 0); + } while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == + WORLD_MAP_POINT_STATE_HIDE); } else if (pauseCtx->stickAdjX < -30) { D_8082A6D4 = 0; @@ -560,13 +569,15 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT); break; } - } while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == 0); + } while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == + WORLD_MAP_POINT_STATE_HIDE); } else { D_8082A6D4++; } pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; - pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP] + 0x1F; + pauseCtx->cursorSlot[PAUSE_MAP] = + PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); } else { pauseCtx->cursorItem[PAUSE_MAP] = gSaveContext.worldMapArea + 0x18; @@ -575,12 +586,14 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = 0; pauseCtx->cursorSpecialPos = 0; - while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == 0) { + while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == + WORLD_MAP_POINT_STATE_HIDE) { pauseCtx->cursorPoint[PAUSE_WORLD_MAP]++; } pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; - pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP] + 0x1F; + pauseCtx->cursorSlot[PAUSE_MAP] = + PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -588,15 +601,17 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { } } else { if (pauseCtx->stickAdjX < -30) { - pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = 11; + pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = WORLD_MAP_POINT_MAX - 1; pauseCtx->cursorSpecialPos = 0; - while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == 0) { + while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == + WORLD_MAP_POINT_STATE_HIDE) { pauseCtx->cursorPoint[PAUSE_WORLD_MAP]--; } pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; - pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP] + 0x1F; + pauseCtx->cursorSlot[PAUSE_MAP] = + PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -605,7 +620,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { } } - if (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == 0) { + if (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == WORLD_MAP_POINT_STATE_HIDE) { pauseCtx->cursorItem[PAUSE_MAP] = PAUSE_ITEM_NONE; } @@ -720,7 +735,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 235, 235, 235, pauseCtx->alpha); for (k = 0; k < 15; k += 8) { - gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[60 + k * 4], 32, 0); + gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[(PAGE_BG_QUADS + k) * 4], 32, 0); for (j = i = 0; i < 8; i++, j += 4) { if (!(gSaveContext.save.info.worldMapAreaData & gBitFlags[cloudFlagNums[k + i]])) { @@ -739,6 +754,8 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gDPPipeSync(POLY_OPA_DISP++); gDPSetTextureFilter(POLY_OPA_DISP++, G_TF_POINT); + // Quad PAGE_BG_QUADS + QUAD_MAP_28 + pauseCtx->mapPageVtx[172].v.ob[0] = pauseCtx->mapPageVtx[174].v.ob[0] = areaBoxPosX[((void)0, gSaveContext.worldMapArea)]; @@ -831,21 +848,22 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gDPLoadTextureBlock(POLY_OPA_DISP++, gWorldMapDotTex, G_IM_FMT_IA, G_IM_SIZ_8b, 8, 8, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - for (j = i = 0; i < 12; i++, t++, j += 4) { - if (pauseCtx->worldMapPoints[i] != 0) { + for (j = i = 0; i < WORLD_MAP_POINT_MAX; i++, t++, j += 4) { + if (pauseCtx->worldMapPoints[i] != WORLD_MAP_POINT_STATE_HIDE) { gDPPipeSync(POLY_OPA_DISP++); - if (pauseCtx->worldMapPoints[i] == 1) { + if (pauseCtx->worldMapPoints[i] == WORLD_MAP_POINT_STATE_SHOW) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, pointPrimColors[0][0], pointPrimColors[0][1], pointPrimColors[0][2], pauseCtx->alpha); gDPSetEnvColor(POLY_OPA_DISP++, pointEnvColors[0][0], pointEnvColors[0][1], pointEnvColors[0][2], 0); - } else { + } else { // WORLD_MAP_POINT_STATE_HIGHLIGHT gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, pointPulsePrimColor[0], pointPulsePrimColor[1], pointPulsePrimColor[2], pauseCtx->alpha); gDPSetEnvColor(POLY_OPA_DISP++, pointPulseEnvColor[0], pointPulseEnvColor[1], pointPulseEnvColor[2], 0); } - gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[124 + i * 4], 4, 0); + gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[(PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + i) * 4], 4, + 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); } diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index 936400e1c0..98c9653689 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -541,11 +541,73 @@ static void* sSavePromptBgQuadsTexs[] = { #endif s16 gVtxPageMapWorldQuadsWidth[VTX_PAGE_MAP_WORLD_QUADS] = { - 32, 112, 32, 48, 32, 32, 32, 48, 32, 64, 32, 48, 48, 48, 48, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 80, 64, + 32, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW + 112, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD + 32, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH + 48, // QUAD_MAP_WORLD_CLOUDS_MARKET + 32, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE + 32, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE + 32, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD + 48, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL + 32, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY + 64, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER + 32, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN + 48, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN + 48, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY + 48, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS + 48, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS + 64, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA + 8, // WORLD_MAP_POINT_HAUNTED_WASTELAND + 8, // WORLD_MAP_POINT_GERUDOS_FORTRESS + 8, // WORLD_MAP_POINT_GERUDO_VALLEY + 8, // WORLD_MAP_POINT_LAKE_HYLIA + 8, // WORLD_MAP_POINT_LON_LON_RANCH + 8, // WORLD_MAP_POINT_MARKET + 8, // WORLD_MAP_POINT_HYRULE_FIELD + 8, // WORLD_MAP_POINT_DEATH_MOUNTAIN + 8, // WORLD_MAP_POINT_KAKARIKO_VILLAGE + 8, // WORLD_MAP_POINT_LOST_WOODS + 8, // WORLD_MAP_POINT_KOKIRI_FOREST + 8, // WORLD_MAP_POINT_ZORAS_DOMAIN + 8, // QUAD_MAP_28 + 8, // QUAD_MAP_29 + 80, // QUAD_MAP_30 + 64, // QUAD_MAP_31 }; s16 gVtxPageMapWorldQuadsHeight[VTX_PAGE_MAP_WORLD_QUADS] = { - 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, + 24, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW + 72, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD + 13, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH + 22, // QUAD_MAP_WORLD_CLOUDS_MARKET + 19, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE + 20, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE + 19, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD + 27, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL + 14, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY + 26, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER + 22, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN + 21, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN + 49, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY + 32, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS + 45, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS + 60, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA + 8, // WORLD_MAP_POINT_HAUNTED_WASTELAND + 8, // WORLD_MAP_POINT_GERUDOS_FORTRESS + 8, // WORLD_MAP_POINT_GERUDO_VALLEY + 8, // WORLD_MAP_POINT_LAKE_HYLIA + 8, // WORLD_MAP_POINT_LON_LON_RANCH + 8, // WORLD_MAP_POINT_MARKET + 8, // WORLD_MAP_POINT_HYRULE_FIELD + 8, // WORLD_MAP_POINT_DEATH_MOUNTAIN + 8, // WORLD_MAP_POINT_KAKARIKO_VILLAGE + 8, // WORLD_MAP_POINT_LOST_WOODS + 8, // WORLD_MAP_POINT_KOKIRI_FOREST + 8, // WORLD_MAP_POINT_ZORAS_DOMAIN + 8, // QUAD_MAP_28 + 16, // QUAD_MAP_29 + 32, // QUAD_MAP_30 + 8, // QUAD_MAP_31 }; /** @@ -1963,48 +2025,50 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { void KaleidoScope_UpdateNamePanel(PlayState* play) { PauseContext* pauseCtx = &play->pauseCtx; - u16 sp2A; + u16 texIndex; if ((pauseCtx->namedItem != pauseCtx->cursorItem[pauseCtx->pageIndex]) || ((pauseCtx->pageIndex == PAUSE_MAP) && (pauseCtx->cursorSpecialPos != 0))) { pauseCtx->namedItem = pauseCtx->cursorItem[pauseCtx->pageIndex]; - sp2A = pauseCtx->namedItem; + texIndex = pauseCtx->namedItem; osCreateMesgQueue(&pauseCtx->loadQueue, &pauseCtx->loadMsg, 1); if (pauseCtx->namedItem != PAUSE_ITEM_NONE) { if ((pauseCtx->pageIndex == PAUSE_MAP) && !sInDungeonScene) { + // `texIndex` is a `WorldMapPoint` enum value + if (gSaveContext.language) { // != LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions - sp2A += 12; + texIndex += WORLD_MAP_POINT_MAX; } #if OOT_PAL if (gSaveContext.language == LANGUAGE_FRA) { - sp2A += 12; + texIndex += WORLD_MAP_POINT_MAX; } #endif DMA_REQUEST_SYNC(pauseCtx->nameSegment, - (uintptr_t)_map_name_staticSegmentRomStart + (sp2A * MAP_NAME_TEX1_SIZE), + (uintptr_t)_map_name_staticSegmentRomStart + (texIndex * MAP_NAME_TEX1_SIZE), MAP_NAME_TEX1_SIZE, "../z_kaleido_scope_PAL.c", 2093); } else { PRINTF("zoom_name=%d\n", pauseCtx->namedItem); if (gSaveContext.language) { // != LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions - sp2A += 123; + texIndex += 123; } #if OOT_PAL if (gSaveContext.language == LANGUAGE_FRA) { - sp2A += 123; + texIndex += 123; } #endif - PRINTF("J_N=%d point=%d\n", gSaveContext.language, sp2A); + PRINTF("J_N=%d point=%d\n", gSaveContext.language, texIndex); DMA_REQUEST_SYNC(pauseCtx->nameSegment, - (uintptr_t)_item_name_staticSegmentRomStart + (sp2A * ITEM_NAME_TEX_SIZE), + (uintptr_t)_item_name_staticSegmentRomStart + (texIndex * ITEM_NAME_TEX_SIZE), ITEM_NAME_TEX_SIZE, "../z_kaleido_scope_PAL.c", 2120); } @@ -2112,9 +2176,38 @@ static s16 sVtxPageMapDungeonQuadsX[VTX_PAGE_MAP_DUNGEON_QUADS] = { }; static s16 sVtxPageQuestQuadsX[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 }; static s16 sVtxPageMapWorldQuadsX[VTX_PAGE_MAP_WORLD_QUADS] = { - 0x002F, 0xFFCF, 0xFFEF, 0xFFF1, 0xFFF7, 0x0018, 0x002B, 0x000E, 0x0009, 0x0026, 0x0052, - 0x0047, 0xFFB4, 0xFFA9, 0xFF94, 0xFFCA, 0xFFA3, 0xFFBD, 0xFFC8, 0xFFDF, 0xFFF6, 0x0001, - 0x000E, 0x0018, 0x0023, 0x003A, 0x004A, 0x0059, 0x0000, 0xFFC6, 0x0013, 0x001C, + 47, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW + -49, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD + -17, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH + -15, // QUAD_MAP_WORLD_CLOUDS_MARKET + -9, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE + 24, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE + 43, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD + 14, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL + 9, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY + 38, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER + 82, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN + 71, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN + -76, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY + -87, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS + -108, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS + -54, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA + -93, // WORLD_MAP_POINT_HAUNTED_WASTELAND + -67, // WORLD_MAP_POINT_GERUDOS_FORTRESS + -56, // WORLD_MAP_POINT_GERUDO_VALLEY + -33, // WORLD_MAP_POINT_LAKE_HYLIA + -10, // WORLD_MAP_POINT_LON_LON_RANCH + 1, // WORLD_MAP_POINT_MARKET + 14, // WORLD_MAP_POINT_HYRULE_FIELD + 24, // WORLD_MAP_POINT_DEATH_MOUNTAIN + 35, // WORLD_MAP_POINT_KAKARIKO_VILLAGE + 58, // WORLD_MAP_POINT_LOST_WOODS + 74, // WORLD_MAP_POINT_KOKIRI_FOREST + 89, // WORLD_MAP_POINT_ZORAS_DOMAIN + 0, // QUAD_MAP_28 + -58, // QUAD_MAP_29 + 19, // QUAD_MAP_30 + 28, // QUAD_MAP_31 }; static s16 sVtxPagePromptQuadsX[VTX_PAGE_PROMPT_QUADS] = { 0xFFB4, 0xFFC6, 0x000A, 0xFFC6, 0x000A, @@ -2137,9 +2230,38 @@ static s16 sVtxPageMapDungeonQuadsY[VTX_PAGE_MAP_DUNGEON_QUADS] = { }; static s16 sVtxPageQuestQuadsY[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 }; static s16 sVtxPageMapWorldQuadsY[VTX_PAGE_MAP_WORLD_QUADS] = { - 0x000F, 0x0028, 0x000B, 0x002D, 0x0034, 0x0025, 0x0024, 0x0039, 0x0036, 0x0021, 0x001F, - 0x002D, 0x0020, 0x002A, 0x0031, 0xFFF6, 0x001F, 0x001B, 0x000F, 0xFFCF, 0x0008, 0x0026, - 0x0007, 0x002F, 0x001E, 0x0001, 0xFFF7, 0x0019, 0x0000, 0x0001, 0xFFE0, 0xFFE6, + 15, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW + 40, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD + 11, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH + 45, // QUAD_MAP_WORLD_CLOUDS_MARKET + 52, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE + 37, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE + 36, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD + 57, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL + 54, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY + 33, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER + 31, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN + 45, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN + 32, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY + 42, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS + 49, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS + -10, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA + 31, // WORLD_MAP_POINT_HAUNTED_WASTELAND + 27, // WORLD_MAP_POINT_GERUDOS_FORTRESS + 15, // WORLD_MAP_POINT_GERUDO_VALLEY + -49, // WORLD_MAP_POINT_LAKE_HYLIA + 8, // WORLD_MAP_POINT_LON_LON_RANCH + 38, // WORLD_MAP_POINT_MARKET + 7, // WORLD_MAP_POINT_HYRULE_FIELD + 47, // WORLD_MAP_POINT_DEATH_MOUNTAIN + 30, // WORLD_MAP_POINT_KAKARIKO_VILLAGE + 1, // WORLD_MAP_POINT_LOST_WOODS + -9, // WORLD_MAP_POINT_KOKIRI_FOREST + 25, // WORLD_MAP_POINT_ZORAS_DOMAIN + 0, // QUAD_MAP_28 + 1, // QUAD_MAP_29 + -32, // QUAD_MAP_30 + -26, // QUAD_MAP_31 }; static s16 sVtxPagePromptQuadsY[VTX_PAGE_PROMPT_QUADS] = { 0x0024, 0x000A, 0x000A, 0xFFFA, 0xFFFA, @@ -3397,198 +3519,164 @@ void KaleidoScope_Update(PlayState* play) { KaleidoScope_DrawPlayerWork(play); KaleidoScope_SetupPlayerPreRender(play); + // World map points + for (i = 0; i < ARRAY_COUNT(pauseCtx->worldMapPoints); i++) { - pauseCtx->worldMapPoints[i] = 0; + pauseCtx->worldMapPoints[i] = WORLD_MAP_POINT_STATE_HIDE; } if (CHECK_QUEST_ITEM(QUEST_GERUDOS_CARD)) { - pauseCtx->worldMapPoints[0] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_HAUNTED_WASTELAND] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) { - pauseCtx->worldMapPoints[0] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_HAUNTED_WASTELAND] = WORLD_MAP_POINT_STATE_SHOW; } if (INV_CONTENT(ITEM_LONGSHOT) == ITEM_LONGSHOT) { - pauseCtx->worldMapPoints[1] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_GERUDOS_FORTRESS] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (CHECK_QUEST_ITEM(QUEST_GERUDOS_CARD)) { - pauseCtx->worldMapPoints[1] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_GERUDOS_FORTRESS] = WORLD_MAP_POINT_STATE_SHOW; } if (GET_EVENTCHKINF(EVENTCHKINF_B2)) { - pauseCtx->worldMapPoints[2] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_GERUDO_VALLEY] = WORLD_MAP_POINT_STATE_SHOW; } - if (INV_CONTENT(ITEM_LONGSHOT) == ITEM_LONGSHOT) { - pauseCtx->worldMapPoints[2] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_GERUDO_VALLEY] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (CHECK_QUEST_ITEM(QUEST_GERUDOS_CARD)) { - pauseCtx->worldMapPoints[2] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_GERUDO_VALLEY] = WORLD_MAP_POINT_STATE_SHOW; } if (CUR_UPG_VALUE(UPG_SCALE)) { - pauseCtx->worldMapPoints[3] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LAKE_HYLIA] = WORLD_MAP_POINT_STATE_SHOW; } - if (CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON)) { - pauseCtx->worldMapPoints[3] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LAKE_HYLIA] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER)) { - pauseCtx->worldMapPoints[3] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LAKE_HYLIA] = WORLD_MAP_POINT_STATE_SHOW; } if (GET_EVENTCHKINF(EVENTCHKINF_09)) { - pauseCtx->worldMapPoints[4] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LON_LON_RANCH] = WORLD_MAP_POINT_STATE_SHOW; } - if (INV_CONTENT(ITEM_OCARINA_FAIRY) != ITEM_NONE) { - pauseCtx->worldMapPoints[4] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LON_LON_RANCH] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) { - pauseCtx->worldMapPoints[4] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LON_LON_RANCH] = WORLD_MAP_POINT_STATE_SHOW; } - if (GET_EVENTCHKINF(EVENTCHKINF_TALON_WOKEN_IN_KAKARIKO)) { - pauseCtx->worldMapPoints[4] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LON_LON_RANCH] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) { - pauseCtx->worldMapPoints[4] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LON_LON_RANCH] = WORLD_MAP_POINT_STATE_SHOW; } if (GET_EVENTCHKINF(EVENTCHKINF_09)) { - pauseCtx->worldMapPoints[5] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_MARKET] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (GET_EVENTCHKINF(EVENTCHKINF_40)) { - pauseCtx->worldMapPoints[5] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_MARKET] = WORLD_MAP_POINT_STATE_SHOW; } - if (INV_CONTENT(ITEM_OCARINA_OF_TIME) == ITEM_OCARINA_OF_TIME) { - pauseCtx->worldMapPoints[5] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_MARKET] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (GET_EVENTCHKINF(EVENTCHKINF_45)) { - pauseCtx->worldMapPoints[5] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_MARKET] = WORLD_MAP_POINT_STATE_SHOW; } - if (INV_CONTENT(ITEM_ARROW_LIGHT) == ITEM_ARROW_LIGHT) { - pauseCtx->worldMapPoints[5] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_MARKET] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } if (GET_EVENTCHKINF(EVENTCHKINF_09)) { - pauseCtx->worldMapPoints[6] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_HYRULE_FIELD] = WORLD_MAP_POINT_STATE_SHOW; } if (GET_EVENTCHKINF(EVENTCHKINF_40)) { - pauseCtx->worldMapPoints[7] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_DEATH_MOUNTAIN] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (GET_EVENTCHKINF(EVENTCHKINF_25)) { - pauseCtx->worldMapPoints[7] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_DEATH_MOUNTAIN] = WORLD_MAP_POINT_STATE_SHOW; } - if (INV_CONTENT(ITEM_HOOKSHOT) == ITEM_HOOKSHOT) { - pauseCtx->worldMapPoints[7] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_DEATH_MOUNTAIN] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (GET_EVENTCHKINF(EVENTCHKINF_49)) { - pauseCtx->worldMapPoints[7] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_DEATH_MOUNTAIN] = WORLD_MAP_POINT_STATE_SHOW; } if (gBitFlags[WORLD_MAP_AREA_KAKARIKO_VILLAGE] & gSaveContext.save.info.worldMapAreaData) { - pauseCtx->worldMapPoints[8] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW; } - if (CHECK_QUEST_ITEM(QUEST_SONG_LULLABY)) { - pauseCtx->worldMapPoints[8] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (CHECK_QUEST_ITEM(QUEST_SONG_SUN)) { - pauseCtx->worldMapPoints[8] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW; } - if (GET_EVENTCHKINF(EVENTCHKINF_45)) { - pauseCtx->worldMapPoints[8] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (INV_CONTENT(ITEM_HOOKSHOT) == ITEM_HOOKSHOT) { - pauseCtx->worldMapPoints[8] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW; } - if (CHECK_QUEST_ITEM(QUEST_SONG_STORMS)) { - pauseCtx->worldMapPoints[8] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (GET_EVENTCHKINF(EVENTCHKINF_67)) { - pauseCtx->worldMapPoints[8] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW; } - if (GET_EVENTCHKINF(EVENTCHKINF_AA)) { - pauseCtx->worldMapPoints[8] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) { - pauseCtx->worldMapPoints[8] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW; } if (gBitFlags[WORLD_MAP_AREA_LOST_WOODS] & gSaveContext.save.info.worldMapAreaData) { - pauseCtx->worldMapPoints[9] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_SHOW; } - if (GET_EVENTCHKINF(EVENTCHKINF_0F)) { - pauseCtx->worldMapPoints[9] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (CHECK_QUEST_ITEM(QUEST_SONG_SARIA)) { - pauseCtx->worldMapPoints[9] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_SHOW; } - if (INV_CONTENT(ITEM_HOOKSHOT) == ITEM_HOOKSHOT) { - pauseCtx->worldMapPoints[9] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (GET_EVENTCHKINF(EVENTCHKINF_48)) { - pauseCtx->worldMapPoints[9] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_SHOW; } - pauseCtx->worldMapPoints[10] = 2; - + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KOKIRI_FOREST] = WORLD_MAP_POINT_STATE_HIGHLIGHT; if (GET_EVENTCHKINF(EVENTCHKINF_09)) { - pauseCtx->worldMapPoints[10] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KOKIRI_FOREST] = WORLD_MAP_POINT_STATE_SHOW; } - if (GET_EVENTCHKINF(EVENTCHKINF_6E)) { - pauseCtx->worldMapPoints[10] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KOKIRI_FOREST] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (GET_EVENTCHKINF(EVENTCHKINF_0F)) { - pauseCtx->worldMapPoints[10] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_KOKIRI_FOREST] = WORLD_MAP_POINT_STATE_SHOW; } if (CHECK_QUEST_ITEM(QUEST_SONG_LULLABY)) { - pauseCtx->worldMapPoints[11] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_SHOW; } - if (GET_EVENTCHKINF(EVENTCHKINF_25)) { - pauseCtx->worldMapPoints[11] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (GET_EVENTCHKINF(EVENTCHKINF_37)) { - pauseCtx->worldMapPoints[11] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_SHOW; } - if (INV_CONTENT(ITEM_HOOKSHOT) == ITEM_HOOKSHOT) { - pauseCtx->worldMapPoints[11] = 2; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_HIGHLIGHT; } - if (CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON)) { - pauseCtx->worldMapPoints[11] = 1; + pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_SHOW; } pauseCtx->tradeQuestLocation = 0xFF; diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h index 3c3794e70d..1ada2645a9 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h @@ -40,6 +40,36 @@ extern u8 gAreaGsFlags[]; #define WORLD_MAP_IMAGE_FRAG_HEIGHT ((TMEM_SIZE / 2) / (WORLD_MAP_IMAGE_WIDTH * G_IM_SIZ_8b_BYTES)) #define WORLD_MAP_IMAGE_FRAG_NUM (((WORLD_MAP_IMAGE_HEIGHT - 1) / WORLD_MAP_IMAGE_FRAG_HEIGHT) + 1) +// Clouds quads cover undiscovered areas. +// Point quads are location markers. They can also be highlighted as a hint of where to go. +typedef enum MapQuad { + /* 0 */ QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW, + /* 1 */ QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD, + /* 2 */ QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH, + /* 3 */ QUAD_MAP_WORLD_CLOUDS_MARKET, + /* 4 */ QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE, + /* 5 */ QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE, + /* 6 */ QUAD_MAP_WORLD_CLOUDS_GRAVEYARD, + /* 7 */ QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL, + /* 8 */ QUAD_MAP_WORLD_CLOUDS_GORON_CITY, + /* 9 */ QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER, + /* 10 */ QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN, + /* 11 */ QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN, + /* 12 */ QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY, + /* 13 */ QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS, + /* 14 */ QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS, + /* 15 */ QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA, + /* 16 */ QUAD_MAP_WORLD_POINT_FIRST, + // 16 to 27 follows the `WorldMapPoint` enum + /* 27 */ QUAD_MAP_WORLD_POINT_LAST = QUAD_MAP_WORLD_POINT_FIRST + WORLD_MAP_POINT_MAX - 1, + /* 28 */ QUAD_MAP_28, + /* 29 */ QUAD_MAP_29, + /* 30 */ QUAD_MAP_30, + /* 31 */ QUAD_MAP_31, + /* 32 */ QUAD_MAP_WORLD_IMAGE_FIRST, + /* 46 */ QUAD_MAP_WORLD_IMAGE_LAST = QUAD_MAP_WORLD_IMAGE_FIRST + WORLD_MAP_IMAGE_FRAG_NUM - 1 +} MapQuad; + void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx); s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point); void KaleidoScope_DrawDebugEditor(PlayState* play); From 35cfc075909e5244fe42a3c6ae30ac33e721d33d Mon Sep 17 00:00:00 2001 From: cadmic Date: Sat, 7 Sep 2024 01:43:23 -0700 Subject: [PATCH 33/86] [ntsc-1.2] Match z_map_exp.c, z_map_mark.c (#2140) * Match z_map_exp.c, z_map_mark.c * Format * DMA_REQUEST_SYNC -> DmaMgr_RequestSync * Remove Gfx forward declaration --- include/n64dd.h | 13 ++++++++++--- src/code/z_map_exp.c | 36 ++++++++++++++++++++++++++++++++++++ src/code/z_map_mark.c | 15 +++++++++++++++ 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/include/n64dd.h b/include/n64dd.h index 399334d55c..4f117f682d 100644 --- a/include/n64dd.h +++ b/include/n64dd.h @@ -4,10 +4,11 @@ #include "ultra64.h" #include "z64pause.h" #include "z64scene.h" +#include "z64map_mark.h" struct Font; struct GameState; -union Gfx; +struct MapData; struct MessageTableEntry; struct PlayState; struct RegEditor; @@ -32,7 +33,13 @@ typedef struct n64ddStruct_80121220 { void (*unk_0C)(struct PlayState* play); void (*unk_10)(struct PlayState* play); void (*unk_14)(struct PlayState* play); - char unk_18[0x1C]; + s32 (*unk_18)(struct MapData**); + s32 (*unk_1C)(struct MapData**); + s32 (*unk_20)(struct MapData*); + s32 (*unk_24)(void); + s32 (*unk_28)(struct PlayState*); + s32 (*unk_2C)(MapMarkData***); + s32 (*unk_30)(MapMarkData***); void (*unk_34)(PauseMapMarksData**); void (*unk_38)(PauseMapMarksData**); void (*unk_3C)(void); @@ -61,7 +68,7 @@ void func_800AD590(void); void func_800AD598(s32 arg0, s32 arg1, s32 arg2); u32 func_801C6E80(void); -void func_801C6EA0(union Gfx** gfxP); +void func_801C6EA0(Gfx** gfxP); s32 func_801C70FC(void); void func_801C7268(void); s32 func_801C7658(void); diff --git a/src/code/z_map_exp.c b/src/code/z_map_exp.c index 79f625c396..cf37a91646 100644 --- a/src/code/z_map_exp.c +++ b/src/code/z_map_exp.c @@ -2,6 +2,9 @@ #include "terminal.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/textures/parameter_static/parameter_static.h" +#if PLATFORM_N64 +#include "n64dd.h" +#endif MapData* gMapData; @@ -160,10 +163,22 @@ void Map_InitData(PlayState* play, s16 room) { "Deku Tree Dungeon MAP Texture DMA(%x) scene_id_offset=%d VREG(30)=%d\n"), room, mapIndex, VREG(30)); PRINTF(VT_RST); + +#if PLATFORM_N64 + if ((B_80121220 != NULL) && (B_80121220->unk_28 != NULL) && B_80121220->unk_28(play)) { + } else { + DmaMgr_RequestSync(play->interfaceCtx.mapSegment, + (uintptr_t)_map_i_staticSegmentRomStart + + ((gMapData->dgnMinimapTexIndexOffset[mapIndex] + room) * MAP_I_TEX_SIZE), + MAP_I_TEX_SIZE); + } +#else DMA_REQUEST_SYNC(play->interfaceCtx.mapSegment, (uintptr_t)_map_i_staticSegmentRomStart + ((gMapData->dgnMinimapTexIndexOffset[mapIndex] + room) * MAP_I_TEX_SIZE), MAP_I_TEX_SIZE, "../z_map_exp.c", 346); +#endif + R_COMPASS_OFFSET_X = gMapData->roomCompassOffsetX[mapIndex][room]; R_COMPASS_OFFSET_Y = gMapData->roomCompassOffsetY[mapIndex][room]; Map_SetFloorPalettesData(play, VREG(30)); @@ -221,6 +236,16 @@ void Map_InitRoomData(PlayState* play, s16 room) { void Map_Destroy(PlayState* play) { MapMark_ClearPointers(play); + +#if PLATFORM_N64 + if ((B_80121220 != NULL) && (B_80121220->unk_24 != NULL)) { + B_80121220->unk_24(); + } + if ((B_80121220 != NULL) && (B_80121220->unk_1C != NULL)) { + B_80121220->unk_1C(&gMapData); + } +#endif + gMapData = NULL; } @@ -230,6 +255,12 @@ void Map_Init(PlayState* play) { gMapData = &gMapDataTable; +#if PLATFORM_N64 + if ((B_80121220 != NULL) && (B_80121220->unk_18 != NULL)) { + B_80121220->unk_18(&gMapData); + } +#endif + interfaceCtx->unk_258 = -1; interfaceCtx->unk_25A = -1; @@ -303,6 +334,11 @@ void Map_Init(PlayState* play) { R_COMPASS_OFFSET_X = gMapData->dgnCompassInfo[mapIndex][2]; R_COMPASS_OFFSET_Y = gMapData->dgnCompassInfo[mapIndex][3]; R_MAP_TEX_INDEX = R_MAP_TEX_INDEX_BASE = gMapData->dgnTexIndexBase[mapIndex]; +#if PLATFORM_N64 + if ((B_80121220 != NULL) && (B_80121220->unk_20 != NULL)) { + B_80121220->unk_20(gMapData); + } +#endif Map_InitRoomData(play, play->roomCtx.curRoom.num); MapMark_Init(play); } diff --git a/src/code/z_map_mark.c b/src/code/z_map_mark.c index 4fc7d7cfab..ae654c22d3 100644 --- a/src/code/z_map_mark.c +++ b/src/code/z_map_mark.c @@ -1,6 +1,9 @@ #include "global.h" #include "terminal.h" #include "assets/textures/parameter_static/parameter_static.h" +#if PLATFORM_N64 +#include "n64dd.h" +#endif typedef struct MapMarkInfo { /* 0x00 */ void* texture; @@ -52,9 +55,21 @@ void MapMark_Init(PlayState* play) { ? (void*)((uintptr_t)overlay->vramTable - (intptr_t)((uintptr_t)overlay->vramStart - (uintptr_t)overlay->loadedRamAddr)) : NULL); + +#if PLATFORM_N64 + if ((B_80121220 != NULL) && (B_80121220->unk_2C != NULL)) { + B_80121220->unk_2C(&sLoadedMarkDataTable); + } +#endif } void MapMark_ClearPointers(PlayState* play) { +#if PLATFORM_N64 + if ((B_80121220 != NULL) && (B_80121220->unk_30 != NULL)) { + B_80121220->unk_30(&sLoadedMarkDataTable); + } +#endif + sMapMarkDataOvl.loadedRamAddr = NULL; sLoadedMarkDataTable = NULL; } From c54c1f2274fe762997ea13cf2b4a758f27db35e3 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Sep 2024 11:29:25 +0200 Subject: [PATCH 34/86] Move audio/general.c debug bss with the rest of bss (#2152) * Move audio/general.c debug bss to own file and include with the rest of bss * just inline the bss instead of include --- src/audio/debug.inc.c | 6 ------ src/audio/general.c | 5 +++++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/audio/debug.inc.c b/src/audio/debug.inc.c index 5af3030f39..29fbd50a3c 100644 --- a/src/audio/debug.inc.c +++ b/src/audio/debug.inc.c @@ -1,9 +1,3 @@ -u32 sDebugPadHold; -u32 sDebugPadBtnLast; -u32 sDebugPadPress; -s32 sAudioUpdateTaskStart; -s32 sAudioUpdateTaskEnd; - f32 D_80131C8C = 0.0f; f32 sAudioUpdateDuration = 0.0f; f32 sAudioUpdateDurationMax = 0.0f; diff --git a/src/audio/general.c b/src/audio/general.c index af5ca719a6..528b16a197 100644 --- a/src/audio/general.c +++ b/src/audio/general.c @@ -1297,6 +1297,11 @@ OcarinaNote sScarecrowsLongSongSecondNote; #if OOT_DEBUG u8 sIsMalonSinging; f32 sMalonSingingDist; +u32 sDebugPadHold; +u32 sDebugPadBtnLast; +u32 sDebugPadPress; +s32 sAudioUpdateTaskStart; +s32 sAudioUpdateTaskEnd; #endif void PadMgr_RequestPadData(PadMgr* padMgr, Input* inputs, s32 gameRequest); From 62b30e2ebe285d78012c053a157068a4c55ab22b Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Sep 2024 12:30:55 +0200 Subject: [PATCH 35/86] Move `Graph_Alloc` and open/close Disps to `gfx.h` (#1976) * move graph_alloc and open/close Disps to gfx.h * zcolchk bss reeeeeee * fix matching gc-eu-mq (bss) * remove __gfxCtx extern * revert makefile -Werror=implicit-function-declaration * bss --- include/functions.h | 7 +-- include/gfx.h | 48 +++++++++++++++++++++ include/macros.h | 38 ---------------- src/code/sys_math3d.c | 2 +- src/code/z_collision_check.c | 1 - src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- 6 files changed, 51 insertions(+), 47 deletions(-) diff --git a/include/functions.h b/include/functions.h index 65a95050b6..3030455cb5 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1160,12 +1160,7 @@ void Graph_Destroy(GraphicsContext* gfxCtx); void Graph_TaskSet00(GraphicsContext* gfxCtx); void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState); void Graph_ThreadEntry(void*); -void* Graph_Alloc(GraphicsContext* gfxCtx, size_t size); -void* Graph_Alloc2(GraphicsContext* gfxCtx, size_t size); -#if OOT_DEBUG -void Graph_OpenDisps(Gfx** dispRefs, GraphicsContext* gfxCtx, const char* file, int line); -void Graph_CloseDisps(Gfx** dispRefs, GraphicsContext* gfxCtx, const char* file, int line); -#endif + Gfx* Gfx_Open(Gfx* gfx); Gfx* Gfx_Close(Gfx* gfx, Gfx* dst); void* Gfx_Alloc(Gfx** gfxP, u32 size); diff --git a/include/gfx.h b/include/gfx.h index c68e6a3618..5414cd5ade 100644 --- a/include/gfx.h +++ b/include/gfx.h @@ -161,4 +161,52 @@ typedef struct UCodeDisas { /* 0xD4 */ u32 geometryMode; } UCodeDisas; // size = 0xD8 +void* Graph_Alloc(GraphicsContext* gfxCtx, size_t size); +void* Graph_Alloc2(GraphicsContext* gfxCtx, size_t size); + +#define WORK_DISP __gfxCtx->work.p +#define POLY_OPA_DISP __gfxCtx->polyOpa.p +#define POLY_XLU_DISP __gfxCtx->polyXlu.p +#define OVERLAY_DISP __gfxCtx->overlay.p + +#if OOT_DEBUG + +void Graph_OpenDisps(Gfx** dispRefs, GraphicsContext* gfxCtx, const char* file, int line); +void Graph_CloseDisps(Gfx** dispRefs, GraphicsContext* gfxCtx, const char* file, int line); + +// __gfxCtx shouldn't be used directly. +// Use the DISP macros defined above when writing to display buffers. +#define OPEN_DISPS(gfxCtx, file, line) \ + { \ + GraphicsContext* __gfxCtx; \ + Gfx* dispRefs[4]; \ + __gfxCtx = gfxCtx; \ + (void)__gfxCtx; \ + Graph_OpenDisps(dispRefs, gfxCtx, file, line) + +#define CLOSE_DISPS(gfxCtx, file, line) \ + do { \ + Graph_CloseDisps(dispRefs, gfxCtx, file, line); \ + } while (0); \ + } \ + (void)0 + +#define GRAPH_ALLOC(gfxCtx, size) Graph_Alloc(gfxCtx, size) + +#else + +#define OPEN_DISPS(gfxCtx, file, line) \ + { \ + GraphicsContext* __gfxCtx = gfxCtx; \ + s32 __dispPad + +#define CLOSE_DISPS(gfxCtx, file, line) \ + do {} while (0); \ + } \ + (void)0 + +#define GRAPH_ALLOC(gfxCtx, size) ((void*)((gfxCtx)->polyOpa.d = (Gfx*)((u8*)(gfxCtx)->polyOpa.d - ALIGN16(size)))) + +#endif + #endif diff --git a/include/macros.h b/include/macros.h index dab193146d..e39e64b76c 100644 --- a/include/macros.h +++ b/include/macros.h @@ -160,35 +160,8 @@ } \ (void)0 -struct GraphicsContext; - -extern struct GraphicsContext* __gfxCtx; - -#define WORK_DISP __gfxCtx->work.p -#define POLY_OPA_DISP __gfxCtx->polyOpa.p -#define POLY_XLU_DISP __gfxCtx->polyXlu.p -#define OVERLAY_DISP __gfxCtx->overlay.p - #if OOT_DEBUG -// __gfxCtx shouldn't be used directly. -// Use the DISP macros defined above when writing to display buffers. -#define OPEN_DISPS(gfxCtx, file, line) \ - { \ - GraphicsContext* __gfxCtx; \ - Gfx* dispRefs[4]; \ - __gfxCtx = gfxCtx; \ - (void)__gfxCtx; \ - Graph_OpenDisps(dispRefs, gfxCtx, file, line) - -#define CLOSE_DISPS(gfxCtx, file, line) \ - do { \ - Graph_CloseDisps(dispRefs, gfxCtx, file, line); \ - } while (0); \ - } \ - (void)0 - -#define GRAPH_ALLOC(gfxCtx, size) Graph_Alloc(gfxCtx, size) #define DMA_REQUEST_SYNC(ram, vrom, size, file, line) DmaMgr_RequestSyncDebug(ram, vrom, size, file, line) #define DMA_REQUEST_ASYNC(req, ram, vrom, size, unk5, queue, msg, file, line) DmaMgr_RequestAsyncDebug(req, ram, vrom, size, unk5, queue, msg, file, line) #define GAME_STATE_ALLOC(gameState, size, file, line) GameState_Alloc(gameState, size, file, line) @@ -207,17 +180,6 @@ extern struct GraphicsContext* __gfxCtx; #else -#define OPEN_DISPS(gfxCtx, file, line) \ - { \ - GraphicsContext* __gfxCtx = gfxCtx; \ - s32 __dispPad - -#define CLOSE_DISPS(gfxCtx, file, line) \ - do {} while (0); \ - } \ - (void)0 - -#define GRAPH_ALLOC(gfxCtx, size) ((void*)((gfxCtx)->polyOpa.d = (Gfx*)((u8*)(gfxCtx)->polyOpa.d - ALIGN16(size)))) #define DMA_REQUEST_SYNC(ram, vrom, size, file, line) DmaMgr_RequestSync(ram, vrom, size) #define DMA_REQUEST_ASYNC(req, ram, vrom, size, unk5, queue, msg, file, line) DmaMgr_RequestAsync(req, ram, vrom, size, unk5, queue, msg) #define GAME_STATE_ALLOC(gameState, size, file, line) THA_AllocTailAlign16(&(gameState)->tha, size) diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index 38fb383124..570da1ab01 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -5,7 +5,7 @@ #include "macros.h" #include "sys_math3d.h" -#pragma increment_block_number "gc-eu:103 gc-eu-mq:103 gc-jp:103 gc-jp-ce:103 gc-jp-mq:103 gc-us:103 gc-us-mq:103" +#pragma increment_block_number "gc-eu:106 gc-eu-mq:106 gc-jp:106 gc-jp-ce:106 gc-jp-mq:106 gc-us:106 gc-us-mq:106" s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index f584641b66..2c0b19d3ef 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -2317,7 +2317,6 @@ void CollisionCheck_ATQuadVsACCyl(PlayState* play, CollisionCheckContext* colChk #if OOT_DEBUG static s8 sBssDummy3; static s8 sBssDummy4; -static s8 sBssDummy5; #endif void CollisionCheck_ATTrisVsACTris(PlayState* play, CollisionCheckContext* colChkCtx, Collider* atCol, diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 48ea1fc010..9ca7dfebb6 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:147 gc-eu-mq:147 gc-jp:149 gc-jp-ce:149 gc-jp-mq:149 gc-us:149 gc-us-mq:149" +#pragma increment_block_number "gc-eu:149 gc-eu-mq:149 gc-jp:151 gc-jp-ce:151 gc-jp-mq:151 gc-us:151 gc-us-mq:151" #define FLAGS ACTOR_FLAG_4 From e19ec02917672dd3167b4bbd5845624ea011c2e9 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sat, 7 Sep 2024 04:10:57 -0700 Subject: [PATCH 36/86] Freeze SFX IDs in msgdis.py (#2154) * Freeze SFX IDs in msgdis.py * Remove remove_comments --- tools/msgdis.py | 1324 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 1270 insertions(+), 54 deletions(-) diff --git a/tools/msgdis.py b/tools/msgdis.py index 74e2fed92e..9171db69ac 100755 --- a/tools/msgdis.py +++ b/tools/msgdis.py @@ -173,53 +173,1271 @@ item_ids = { 0xFF : "ITEM_NONE", } -# From https://stackoverflow.com/questions/241327/remove-c-and-c-comments-using-python -def remove_comments(text : str) -> str: - def replacer(match : re.Match) -> str: - string : str = match.group(0) - if string.startswith("/"): - return " " # note: a space and not an empty string - else: - return string - - pattern = re.compile( - r'//.*?$|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"', re.DOTALL | re.MULTILINE - ) - return re.sub(pattern, replacer, text) +sfx_ids = { + 0x0000 : "NA_SE_PL_WALK_GROUND", + 0x0001 : "NA_SE_PL_WALK_SAND", + 0x0002 : "NA_SE_PL_WALK_CONCRETE", + 0x0003 : "NA_SE_PL_WALK_DIRT", + 0x0004 : "NA_SE_PL_WALK_WATER0", + 0x0005 : "NA_SE_PL_WALK_WATER1", + 0x0006 : "NA_SE_PL_WALK_WATER2", + 0x0007 : "NA_SE_PL_WALK_MAGMA", + 0x0008 : "NA_SE_PL_WALK_GRASS", + 0x0009 : "NA_SE_PL_WALK_IRON", + 0x000A : "NA_SE_PL_WALK_LADDER", + 0x000B : "NA_SE_PL_WALK_GLASS", + 0x000C : "NA_SE_PL_WALK_WALL", + 0x000D : "NA_SE_PL_WALK_HEAVYBOOTS", + 0x000E : "NA_SE_PL_DUMMY_14", + 0x000F : "NA_SE_PL_WALK_ICE", + 0x0010 : "NA_SE_PL_JUMP", + 0x0011 : "NA_SE_PL_JUMP_SAND", + 0x0012 : "NA_SE_PL_JUMP_CONCRETE", + 0x0013 : "NA_SE_PL_JUMP_DIRT", + 0x0014 : "NA_SE_PL_JUMP_WATER0", + 0x0015 : "NA_SE_PL_JUMP_WATER1", + 0x0016 : "NA_SE_PL_JUMP_WATER2", + 0x0017 : "NA_SE_PL_JUMP_MAGMA", + 0x0018 : "NA_SE_PL_JUMP_GRASS", + 0x0019 : "NA_SE_PL_JUMP_IRON", + 0x001A : "NA_SE_PL_JUMP_LADDER", + 0x001B : "NA_SE_PL_JUMP_GLASS", + 0x001C : "NA_SE_PL_DUMMY28", + 0x001D : "NA_SE_PL_JUMP_HEAVYBOOTS", + 0x001E : "NA_SE_PL_DUMMY30", + 0x001F : "NA_SE_PL_JUMP_ICE", + 0x0020 : "NA_SE_PL_LAND", + 0x0021 : "NA_SE_PL_LAND_SAND", + 0x0022 : "NA_SE_PL_LAND_CONCRETE", + 0x0023 : "NA_SE_PL_LAND_DIRT", + 0x0024 : "NA_SE_PL_LAND_WATER0", + 0x0025 : "NA_SE_PL_LAND_WATER1", + 0x0026 : "NA_SE_PL_LAND_WATER2", + 0x0027 : "NA_SE_PL_LAND_MAGMA", + 0x0028 : "NA_SE_PL_LAND_GRASS", + 0x0029 : "NA_SE_PL_LAND_IRON", + 0x002A : "NA_SE_PL_LAND_LADDER", + 0x002B : "NA_SE_PL_LAND_GLASS", + 0x002C : "NA_SE_PL_DUMMY_44", + 0x002D : "NA_SE_PL_LAND_HEAVYBOOTS", + 0x002E : "NA_SE_PL_DUMMY_46", + 0x002F : "NA_SE_PL_LAND_ICE", + 0x0030 : "NA_SE_PL_SLIPDOWN", + 0x0031 : "NA_SE_PL_CLIMB_CLIFF", + 0x0032 : "NA_SE_PL_SIT_ON_HORSE", + 0x0033 : "NA_SE_PL_GET_OFF_HORSE", + 0x0034 : "NA_SE_PL_TAKE_OUT_SHIELD", + 0x0035 : "NA_SE_PL_CHANGE_ARMS", + 0x0036 : "NA_SE_PL_CATCH_BOOMERANG", + 0x0037 : "NA_SE_PL_DUMMY_55", + 0x0038 : "NA_SE_PL_DUMMY_56", + 0x0039 : "NA_SE_PL_SWIM", + 0x003A : "NA_SE_PL_THROW", + 0x003B : "NA_SE_PL_BODY_BOUND", + 0x003C : "NA_SE_PL_ROLL", + 0x003D : "NA_SE_PL_SKIP", + 0x003E : "NA_SE_PL_BODY_HIT", + 0x003F : "NA_SE_PL_DAMAGE", + 0x0040 : "NA_SE_PL_SLIP", + 0x0041 : "NA_SE_PL_SLIP_SAND", + 0x0042 : "NA_SE_PL_SLIP_CONCRETE", + 0x0043 : "NA_SE_PL_SLIP_DIRT", + 0x0044 : "NA_SE_PL_SLIP_WATER0", + 0x0045 : "NA_SE_PL_SLIP_WATER1", + 0x0046 : "NA_SE_PL_SLIP_WATER2", + 0x0047 : "NA_SE_PL_SLIP_MAGMA", + 0x0048 : "NA_SE_PL_SLIP_GRASS", + 0x0049 : "NA_SE_PL_SLIP_IRON", + 0x004A : "NA_SE_PL_SLIP_LADDER", + 0x004B : "NA_SE_PL_SLIP_GLASS", + 0x004C : "NA_SE_PL_DUMMY76", + 0x004D : "NA_SE_PL_SLIP_HEAVYBOOTS", + 0x004E : "NA_SE_PL_DUMMY78", + 0x004F : "NA_SE_PL_SLIP_ICE", + 0x0050 : "NA_SE_PL_BOUND", + 0x0051 : "NA_SE_PL_BOUND_SAND", + 0x0052 : "NA_SE_PL_BOUND_CONCRETE", + 0x0053 : "NA_SE_PL_BOUND_DIRT", + 0x0054 : "NA_SE_PL_BOUND_WATER0", + 0x0055 : "NA_SE_PL_BOUND_WATER1", + 0x0056 : "NA_SE_PL_BOUND_WATER2", + 0x0057 : "NA_SE_PL_BOUND_MAGMA", + 0x0058 : "NA_SE_PL_BOUND_GRASS", + 0x0059 : "NA_SE_PL_BOUND_IRON", + 0x005A : "NA_SE_PL_BOUND_LADDER", + 0x005B : "NA_SE_PL_BOUND_WOOD", + 0x005C : "NA_SE_PL_DUMMY_92", + 0x005D : "NA_SE_PL_BOUND_HEAVYBOOTS", + 0x005E : "NA_SE_PL_DUMMY_94", + 0x005F : "NA_SE_PL_BOUND_ICE", + 0x0060 : "NA_SE_PL_DUMMY_96", + 0x0061 : "NA_SE_PL_DUMMY_97", + 0x0062 : "NA_SE_PL_DUMMY_98", + 0x0063 : "NA_SE_PL_FACE_UP", + 0x0064 : "NA_SE_PL_DIVE_BUBBLE", + 0x0065 : "NA_SE_PL_MOVE_BUBBLE", + 0x0066 : "NA_SE_PL_METALEFFECT_KID", + 0x0067 : "NA_SE_PL_METALEFFECT_ADULT", + 0x0068 : "NA_SE_PL_SPARK", + 0x0069 : "NA_SE_PL_PULL_UP_PLANT", + 0x006A : "NA_SE_PL_PULL_UP_ROCK", + 0x006B : "NA_SE_PL_IN_BUBBLE", + 0x006C : "NA_SE_PL_PULL_UP_BIGROCK", + 0x006D : "NA_SE_PL_SWORD_CHARGE", + 0x006E : "NA_SE_PL_FREEZE", + 0x006F : "NA_SE_PL_PULL_UP_POT", + 0x0070 : "NA_SE_PL_KNOCK", + 0x0071 : "NA_SE_PL_CALM_HIT", + 0x0072 : "NA_SE_PL_CALM_PAT", + 0x0073 : "NA_SE_PL_SUBMERGE", + 0x0074 : "NA_SE_PL_FREEZE_S", + 0x0075 : "NA_SE_PL_ICE_BROKEN", + 0x0076 : "NA_SE_PL_SLIP_ICE_LELEL", + 0x0077 : "NA_SE_PL_PUT_OUT_ITEM", + 0x0078 : "NA_SE_PL_PULL_UP_WOODBOX", + 0x0079 : "NA_SE_PL_MAGIC_FIRE", + 0x007A : "NA_SE_PL_MAGIC_WIND_NORMAL", + 0x007B : "NA_SE_PL_MAGIC_WIND_WARP", + 0x007C : "NA_SE_PL_MAGIC_SOUL_NORMAL", + 0x007D : "NA_SE_PL_ARROW_CHARGE_FIRE", + 0x007E : "NA_SE_PL_ARROW_CHARGE_ICE", + 0x007F : "NA_SE_PL_ARROW_CHARGE_LIGHT", + 0x0080 : "NA_SE_PL_DUMMY_128", + 0x0081 : "NA_SE_PL_DUMMY_129", + 0x0082 : "NA_SE_PL_DUMMY_130", + 0x0083 : "NA_SE_PL_PULL_UP_RUTO", + 0x0084 : "NA_SE_PL_DUMMY_132", + 0x0085 : "NA_SE_PL_DUMMY_133", + 0x0086 : "NA_SE_PL_DUMMY_134", + 0x0087 : "NA_SE_PL_DUMMY_135", + 0x0088 : "NA_SE_PL_DUMMY_136", + 0x0089 : "NA_SE_PL_DUMMY_137", + 0x008A : "NA_SE_PL_DUMMY_138", + 0x008B : "NA_SE_PL_DUMMY_139", + 0x008C : "NA_SE_PL_DUMMY_140", + 0x008D : "NA_SE_PL_DUMMY_141", + 0x008E : "NA_SE_PL_DUMMY_142", + 0x008F : "NA_SE_PL_DUMMY_143", + 0x0090 : "NA_SE_PL_DUMMY_144", + 0x0091 : "NA_SE_PL_DUMMY_145", + 0x0092 : "NA_SE_PL_DUMMY_146", + 0x0093 : "NA_SE_PL_DUMMY_147", + 0x0094 : "NA_SE_PL_DUMMY_148", + 0x0095 : "NA_SE_PL_DUMMY_149", + 0x0096 : "NA_SE_PL_DUMMY_150", + 0x0097 : "NA_SE_PL_DUMMY_151", + 0x0098 : "NA_SE_PL_DUMMY_152", + 0x0099 : "NA_SE_PL_DUMMY_153", + 0x009A : "NA_SE_PL_DUMMY_154", + 0x009B : "NA_SE_PL_DUMMY_155", + 0x009C : "NA_SE_PL_DUMMY_156", + 0x009D : "NA_SE_PL_DUMMY_157", + 0x009E : "NA_SE_PL_DUMMY_158", + 0x009F : "NA_SE_PL_DUMMY_159", + 0x00A0 : "NA_SE_PL_DUMMY_160", + 0x00A1 : "NA_SE_PL_DUMMY_161", + 0x00A2 : "NA_SE_PL_DUMMY_162", + 0x00A3 : "NA_SE_PL_DUMMY_163", + 0x00A4 : "NA_SE_PL_DUMMY_164", + 0x00A5 : "NA_SE_PL_DUMMY_165", + 0x00A6 : "NA_SE_PL_DUMMY_166", + 0x00A7 : "NA_SE_PL_DUMMY_167", + 0x00A8 : "NA_SE_PL_DUMMY_168", + 0x00A9 : "NA_SE_PL_DUMMY_169", + 0x00AA : "NA_SE_PL_DUMMY_170", + 0x00AB : "NA_SE_PL_DUMMY_171", + 0x00AC : "NA_SE_PL_DUMMY_172", + 0x00AD : "NA_SE_PL_DUMMY_173", + 0x00AE : "NA_SE_PL_DUMMY_174", + 0x00AF : "NA_SE_PL_DUMMY_175", + 0x00B0 : "NA_SE_PL_CRAWL", + 0x00B1 : "NA_SE_PL_CRAWL_SAND", + 0x00B2 : "NA_SE_PL_CRAWL_CONCRETE", + 0x00B3 : "NA_SE_PL_CRAWL_DIRT", + 0x00B4 : "NA_SE_PL_CRAWL_WATER0", + 0x00B5 : "NA_SE_PL_DUMMY_181", + 0x00B6 : "NA_SE_PL_DUMMY_182", + 0x00B7 : "NA_SE_PL_DUMMY_183", + 0x00B8 : "NA_SE_PL_DUMMY_184", + 0x00B9 : "NA_SE_PL_DUMMY_185", + 0x00BA : "NA_SE_PL_DUMMY_186", + 0x00BB : "NA_SE_PL_CRAWL_WOOD", + 0x00BC : "NA_SE_PL_CRAWL_ICE", + 0x00BD : "NA_SE_PL_DUMMY_189", + 0x00BE : "NA_SE_PL_DUMMY_190", + 0x00BF : "NA_SE_PL_DUMMY_191", + 0x00C0 : "NA_SE_PL_MAGIC_SOUL_FLASH", + 0x00C1 : "NA_SE_PL_ROLL_DUST", + 0x00C2 : "NA_SE_PL_DUMMY_192", + 0x00C3 : "NA_SE_PL_MAGIC_SOUL_BALL", + 0x00C4 : "NA_SE_PL_SPIRAL_HEAL_BEAM", + 0x00C5 : "NA_SE_PL_BOUND_NOWEAPON", + 0x00C6 : "NA_SE_PL_PLANT_GROW_UP", + 0x00C7 : "NA_SE_PL_PLANT_TALLER", + 0x00C8 : "NA_SE_PL_MAGIC_WIND_VANISH", + 0x00C9 : "NA_SE_PL_HOBBERBOOTS_LV", + 0x00CA : "NA_SE_PL_PLANT_MOVE", + 0x00CB : "NA_SE_EV_WALL_MOVE_SP", + 0x00CC : "NA_SE_PL_DUMMY_204", + 0x00CD : "NA_SE_PL_DUMMY_205", + 0x00CE : "NA_SE_PL_DUMMY_206", + 0x00CF : "NA_SE_PL_DUMMY_207", + 0x00D0 : "NA_SE_PL_SLIP_LEVEL", + 0x00D1 : "NA_SE_PL_SLIP_SAND_LEVEL", + 0x00D2 : "NA_SE_PL_SLIP_CONCRETE_LEVEL", + 0x00D3 : "NA_SE_PL_SLIP_DIRT_LEVEL", + 0x00D4 : "NA_SE_PL_SLIP_WATER0_LEVEL", + 0x00D5 : "NA_SE_PL_SLIP_WATER1_LEVEL", + 0x00D6 : "NA_SE_PL_SLIP_WATER2_LEVEL", + 0x00D7 : "NA_SE_PL_SLIP_MAGMA_LEVEL", + 0x00D8 : "NA_SE_PL_SLIP_GRASS_LEVEL", + 0x00D9 : "NA_SE_PL_SLIP_IRON_LEVEL", + 0x00DA : "NA_SE_PL_SLIP_GLASS_LEVEL", + 0x00DB : "NA_SE_PL_SLIP_WOOD_LEVEL", + 0x00DC : "NA_SE_PL_DUMMY_220", + 0x00DD : "NA_SE_PL_DUMMY_221", + 0x00DE : "NA_SE_PL_SLIP_HEAVYBOOTS_LEVEL", + 0x00DF : "NA_SE_PL_SLIP_ICE_LEVEL", + 0x1000 : "NA_SE_IT_SWORD_IMPACT", + 0x1001 : "NA_SE_IT_SWORD_SWING", + 0x1002 : "NA_SE_IT_SWORD_PUTAWAY", + 0x1003 : "NA_SE_IT_SWORD_PICKOUT", + 0x1004 : "NA_SE_IT_ARROW_SHOT", + 0x1005 : "NA_SE_IT_BOOMERANG_THROW", + 0x1006 : "NA_SE_IT_SHIELD_BOUND", + 0x1007 : "NA_SE_IT_BOW_DRAW", + 0x1008 : "NA_SE_IT_SHIELD_REFLECT_SW", + 0x1009 : "NA_SE_IT_ARROW_STICK_HRAD", + 0x100A : "NA_SE_IT_HAMMER_HIT", + 0x100B : "NA_SE_IT_HOOKSHOT_CHAIN", + 0x100C : "NA_SE_IT_SHIELD_REFLECT_MG", + 0x100D : "NA_SE_IT_BOMB_IGNIT", + 0x100E : "NA_SE_IT_BOMB_EXPLOSION", + 0x100F : "NA_SE_IT_BOMB_UNEXPLOSION", + 0x1010 : "NA_SE_IT_BOOMERANG_FLY", + 0x1011 : "NA_SE_IT_SWORD_STRIKE", + 0x1012 : "NA_SE_IT_HAMMER_SWING", + 0x1013 : "NA_SE_IT_HOOKSHOT_REFLECT", + 0x1014 : "NA_SE_IT_ARROW_STICK_CRE", + 0x1015 : "NA_SE_IT_ARROW_STICK_OBJ", + 0x1016 : "NA_SE_IT_DUMMY", + 0x1017 : "NA_SE_IT_DUMMY2", + 0x1018 : "NA_SE_IT_SWORD_SWING_HARD", + 0x1019 : "NA_SE_IT_DUMMY3", + 0x101A : "NA_SE_IT_WALL_HIT_HARD", + 0x101B : "NA_SE_IT_WALL_HIT_SOFT", + 0x101C : "NA_SE_IT_STONE_HIT", + 0x101D : "NA_SE_IT_WOODSTICK_BROKEN", + 0x101E : "NA_SE_IT_LASH", + 0x101F : "NA_SE_IT_SHIELD_POSTURE", + 0x1020 : "NA_SE_IT_SLING_SHOT", + 0x1021 : "NA_SE_IT_SLING_DRAW", + 0x1022 : "NA_SE_IT_SWORD_CHARGE", + 0x1023 : "NA_SE_IT_ROLLING_CUT", + 0x1024 : "NA_SE_IT_SWORD_STRIKE_HARD", + 0x1025 : "NA_SE_IT_SLING_REFLECT", + 0x1026 : "NA_SE_IT_SHIELD_REMOVE", + 0x1027 : "NA_SE_IT_HOOKSHOT_READY", + 0x1028 : "NA_SE_IT_HOOKSHOT_RECEIVE", + 0x1029 : "NA_SE_IT_HOOKSHOT_STICK_OBJ", + 0x102A : "NA_SE_IT_SWORD_REFLECT_MG", + 0x102B : "NA_SE_IT_DEKU", + 0x102C : "NA_SE_IT_WALL_HIT_BUYO", + 0x102D : "NA_SE_IT_SWORD_PUTAWAY_STN", + 0x102E : "NA_SE_IT_ROLLING_CUT_LV1", + 0x102F : "NA_SE_IT_ROLLING_CUT_LV2", + 0x1030 : "NA_SE_IT_BOW_FLICK", + 0x1031 : "NA_SE_IT_BOMBCHU_MOVE", + 0x1032 : "NA_SE_IT_SHIELD_CHARGE_LV1", + 0x1033 : "NA_SE_IT_SHIELD_CHARGE_LV2", + 0x1034 : "NA_SE_IT_SHIELD_CHARGE_LV3", + 0x1035 : "NA_SE_IT_SLING_FLICK", + 0x1036 : "NA_SE_IT_SWORD_STICK_STN", + 0x1037 : "NA_SE_IT_REFLECTION_WOOD", + 0x1038 : "NA_SE_IT_SHIELD_REFLECT_MG2", + 0x1039 : "NA_SE_IT_MAGIC_ARROW_SHOT", + 0x103A : "NA_SE_IT_EXPLOSION_FRAME", + 0x103B : "NA_SE_IT_EXPLOSION_ICE", + 0x103C : "NA_SE_IT_EXPLOSION_LIGHT", + 0x103D : "NA_SE_IT_FISHING_REEL_SLOW", + 0x103E : "NA_SE_IT_FISHING_REEL_HIGH", + 0x103F : "NA_SE_IT_PULL_FISHING_ROD", + 0x1040 : "NA_SE_IT_DM_FLYING_GOD_PASS", + 0x1041 : "NA_SE_IT_DM_FLYING_GOD_DASH", + 0x1042 : "NA_SE_IT_DM_RING_EXPLOSION", + 0x1043 : "NA_SE_IT_DM_RING_GATHER", + 0x1044 : "NA_SE_IT_INGO_HORSE_NEIGH", + 0x1045 : "NA_SE_IT_EARTHQUAKE", + 0x1046 : "NA_SE_IT_DUMMY4", + 0x1047 : "NA_SE_IT_KAKASHI_JUMP", + 0x1048 : "NA_SE_IT_FLAME", + 0x1049 : "NA_SE_IT_SHIELD_BEAM", + 0x104A : "NA_SE_IT_FISHING_HIT", + 0x104B : "NA_SE_IT_GOODS_APPEAR", + 0x104C : "NA_SE_IT_MAJIN_SWORD_BROKEN", + 0x104D : "NA_SE_IT_HAND_CLAP", + 0x104E : "NA_SE_IT_MASTER_SWORD_SWING", + 0x104F : "NA_SE_IT_DUMMY5", + 0x2000 : "NA_SE_EV_DOOR_OPEN", + 0x2001 : "NA_SE_EV_DOOR_CLOSE", + 0x2002 : "NA_SE_EV_EXPLOSION", + 0x2003 : "NA_SE_EV_HORSE_WALK", + 0x2004 : "NA_SE_EV_HORSE_RUN", + 0x2005 : "NA_SE_EV_HORSE_NEIGH", + 0x2006 : "NA_SE_EV_RIVER_STREAM", + 0x2007 : "NA_SE_EV_WATER_WALL_BIG", + 0x2008 : "NA_SE_EV_OUT_OF_WATER", + 0x2009 : "NA_SE_EV_DIVE_WATER", + 0x200A : "NA_SE_EV_ROCK_SLIDE", + 0x200B : "NA_SE_EV_MAGMA_LEVEL", + 0x200C : "NA_SE_EV_BRIDGE_OPEN", + 0x200D : "NA_SE_EV_BRIDGE_CLOSE", + 0x200E : "NA_SE_EV_BRIDGE_OPEN_STOP", + 0x200F : "NA_SE_EV_BRIDGE_CLOSE_STOP", + 0x2010 : "NA_SE_EV_WALL_BROKEN", + 0x2011 : "NA_SE_EV_CHICKEN_CRY_N", + 0x2012 : "NA_SE_EV_CHICKEN_CRY_A", + 0x2013 : "NA_SE_EV_CHICKEN_CRY_M", + 0x2014 : "NA_SE_EV_SLIDE_DOOR_OPEN", + 0x2015 : "NA_SE_EV_FOOT_SWITCH", + 0x2016 : "NA_SE_EV_HORSE_GROAN", + 0x2017 : "NA_SE_EV_BOMB_DROP_WATER", + 0x2018 : "NA_SE_EV_HORSE_JUMP", + 0x2019 : "NA_SE_EV_HORSE_LAND", + 0x201A : "NA_SE_EV_HORSE_SLIP", + 0x201B : "NA_SE_EV_FAIRY_DASH", + 0x201C : "NA_SE_EV_SLIDE_DOOR_CLOSE", + 0x201D : "NA_SE_EV_STONE_BOUND", + 0x201E : "NA_SE_EV_STONE_STATUE_OPEN", + 0x201F : "NA_SE_EV_TBOX_UNLOCK", + 0x2020 : "NA_SE_EV_TBOX_OPEN", + 0x2021 : "NA_SE_SY_TIMER", + 0x2022 : "NA_SE_EV_FLAME_IGNITION", + 0x2023 : "NA_SE_EV_SPEAR_HIT", + 0x2024 : "NA_SE_EV_ELEVATOR_MOVE", + 0x2025 : "NA_SE_EV_WARP_HOLE", + 0x2026 : "NA_SE_EV_LINK_WARP", + 0x2027 : "NA_SE_EV_PILLAR_SINK", + 0x2028 : "NA_SE_EV_WATER_WALL", + 0x2029 : "NA_SE_EV_RIVER_STREAM_S", + 0x202A : "NA_SE_EV_RIVER_STREAM_F", + 0x202B : "NA_SE_EV_HORSE_LAND2", + 0x202C : "NA_SE_EV_HORSE_SANDDUST", + 0x202D : "NA_SE_EV_DUMMY45", + 0x202E : "NA_SE_EV_LIGHTNING", + 0x202F : "NA_SE_EV_BOMB_BOUND", + 0x2030 : "NA_SE_EV_WATERDROP", + 0x2031 : "NA_SE_EV_TORCH", + 0x2032 : "NA_SE_EV_MAGMA_LEVEL_M", + 0x2033 : "NA_SE_EV_FIRE_PILLAR", + 0x2034 : "NA_SE_EV_FIRE_PLATE", + 0x2035 : "NA_SE_EV_BLOCK_BOUND", + 0x2036 : "NA_SE_EV_METALDOOR_SLIDE", + 0x2037 : "NA_SE_EV_METALDOOR_STOP", + 0x2038 : "NA_SE_EV_BLOCK_SHAKE", + 0x2039 : "NA_SE_EV_BOX_BREAK", + 0x203A : "NA_SE_EV_HAMMER_SWITCH", + 0x203B : "NA_SE_EV_MAGMA_LEVEL_L", + 0x203C : "NA_SE_EV_SPEAR_FENCE", + 0x203D : "NA_SE_EV_GANON_HORSE_NEIGH", + 0x203E : "NA_SE_EV_GANON_HORSE_GROAN", + 0x203F : "NA_SE_EV_FANTOM_WARP_S", + 0x2040 : "NA_SE_EV_FANTOM_WARP_L", + 0x2041 : "NA_SE_EV_FOUNTAIN", + 0x2042 : "NA_SE_EV_KID_HORSE_WALK", + 0x2043 : "NA_SE_EV_KID_HORSE_RUN", + 0x2044 : "NA_SE_EV_KID_HORSE_NEIGH", + 0x2045 : "NA_SE_EV_KID_HORSE_GROAN", + 0x2046 : "NA_SE_EV_WHITE_OUT", + 0x2047 : "NA_SE_EV_LIGHT_GATHER", + 0x2048 : "NA_SE_EV_TREE_CUT", + 0x2049 : "NA_SE_EV_VOLCANO", + 0x204A : "NA_SE_EV_GUILLOTINE_UP", + 0x204B : "NA_SE_EV_GUILLOTINE_BOUND", + 0x204C : "NA_SE_EV_ROLLCUTTER_MOTOR", + 0x204D : "NA_SE_EV_CHINETRAP_DOWN", + 0x204E : "NA_SE_EV_PLANT_BROKEN", + 0x204F : "NA_SE_EV_SHIP_BELL", + 0x2050 : "NA_SE_EV_FLUTTER_FLAG", + 0x2051 : "NA_SE_EV_TRAP_BOUND", + 0x2052 : "NA_SE_EV_ROCK_BROKEN", + 0x2053 : "NA_SE_EV_FANTOM_WARP_S2", + 0x2054 : "NA_SE_EV_FANTOM_WARP_L2", + 0x2055 : "NA_SE_EV_COFFIN_CAP_OPEN", + 0x2056 : "NA_SE_EV_COFFIN_CAP_BOUND", + 0x2057 : "NA_SE_EV_WIND_TRAP", + 0x2058 : "NA_SE_EV_TRAP_OBJ_SLIDE", + 0x2059 : "NA_SE_EV_METALDOOR_OPEN", + 0x205A : "NA_SE_EV_METALDOOR_CLOSE", + 0x205B : "NA_SE_EV_BURN_OUT", + 0x205C : "NA_SE_EV_BLOCKSINK", + 0x205D : "NA_SE_EV_CROWD", + 0x205E : "NA_SE_EV_WATER_LEVEL_DOWN", + 0x205F : "NA_SE_EV_NAVY_VANISH", + 0x2060 : "NA_SE_EV_LADDER_DOUND", + 0x2061 : "NA_SE_EV_WEB_VIBRATION", + 0x2062 : "NA_SE_EV_WEB_BROKEN", + 0x2063 : "NA_SE_EV_ROLL_STAND", + 0x2064 : "NA_SE_EV_BUYODOOR_OPEN", + 0x2065 : "NA_SE_EV_BUYODOOR_CLOSE", + 0x2066 : "NA_SE_EV_WOODDOOR_OPEN", + 0x2067 : "NA_SE_EV_METALGATE_OPEN", + 0x2068 : "NA_SE_IT_SCOOP_UP_WATER", + 0x2069 : "NA_SE_EV_FISH_LEAP", + 0x206A : "NA_SE_EV_KAKASHI_SWING", + 0x206B : "NA_SE_EV_KAKASHI_ROLL", + 0x206C : "NA_SE_EV_BOTTLE_CAP_OPEN", + 0x206D : "NA_SE_EV_JABJAB_BREATHE", + 0x206E : "NA_SE_EV_SPIRIT_STONE", + 0x206F : "NA_SE_EV_TRIFORCE_FLASH", + 0x2070 : "NA_SE_EV_FALL_DOWN_DIRT", + 0x2071 : "NA_SE_EV_NAVY_FLY", + 0x2072 : "NA_SE_EV_NAVY_CRASH", + 0x2073 : "NA_SE_EV_WOOD_HIT", + 0x2074 : "NA_SE_EV_SCOOPUP_WATER", + 0x2075 : "NA_SE_EV_DROP_FALL", + 0x2076 : "NA_SE_EV_WOOD_GEAR", + 0x2077 : "NA_SE_EV_TREE_SWING", + 0x2078 : "NA_SE_EV_HORSE_RUN_LEVEL", + 0x2079 : "NA_SE_EV_ELEVATOR_MOVE2", + 0x207A : "NA_SE_EV_ELEVATOR_STOP", + 0x207B : "NA_SE_EV_TRE_BOX_APPEAR", + 0x207C : "NA_SE_EV_CHAIN_KEY_UNLOCK", + 0x207D : "NA_SE_EV_SPINE_TRAP_MOVE", + 0x207E : "NA_SE_EV_HEALING", + 0x207F : "NA_SE_EV_GREAT_FAIRY_APPEAR", + 0x2080 : "NA_SE_EV_GREAT_FAIRY_VANISH", + 0x2081 : "NA_SE_EV_RED_EYE", + 0x2082 : "NA_SE_EV_ROLL_STAND_2", + 0x2083 : "NA_SE_EV_WALL_SLIDE", + 0x2084 : "NA_SE_EV_TRE_BOX_FLASH", + 0x2085 : "NA_SE_EV_WINDMILL_LEVEL", + 0x2086 : "NA_SE_EV_GOTO_HEAVEN", + 0x2087 : "NA_SE_EV_POT_BROKEN", + 0x2088 : "NA_SE_PL_PUT_DOWN_POT", + 0x2089 : "NA_SE_EV_DIVE_INTO_WATER", + 0x208A : "NA_SE_EV_JUMP_OUT_WATER", + 0x208B : "NA_SE_EV_GOD_FLYING", + 0x208C : "NA_SE_EV_TRIFORCE", + 0x208D : "NA_SE_EV_AURORA", + 0x208E : "NA_SE_EV_DEKU_DEATH", + 0x208F : "NA_SE_EV_BUYOSTAND_RISING", + 0x2090 : "NA_SE_EV_BUYOSTAND_FALL", + 0x2091 : "NA_SE_EV_BUYOSHUTTER_OPEN", + 0x2092 : "NA_SE_EV_BUYOSHUTTER_CLOSE", + 0x2093 : "NA_SE_EV_STONEDOOR_STOP", + 0x2094 : "NA_SE_EV_S_STONE_REVIVAL", + 0x2095 : "NA_SE_EV_MEDAL_APPEAR_S", + 0x2096 : "NA_SE_EV_HUMAN_BOUND", + 0x2097 : "NA_SE_EV_MEDAL_APPEAR_L", + 0x2098 : "NA_SE_EV_EARTHQUAKE", + 0x2099 : "NA_SE_EV_SHUT_BY_CRYSTAL", + 0x209A : "NA_SE_EV_GOD_LIGHTBALL_2", + 0x209B : "NA_SE_EV_RUN_AROUND", + 0x209C : "NA_SE_EV_CONSENTRATION", + 0x209D : "NA_SE_EV_TIMETRIP_LIGHT", + 0x209E : "NA_SE_EV_BUYOSTAND_STOP_A", + 0x209F : "NA_SE_EV_BUYOSTAND_STOP_U", + 0x20A0 : "NA_SE_EV_OBJECT_FALL", + 0x20A1 : "NA_SE_EV_JUMP_CONC", + 0x20A2 : "NA_SE_EV_ICE_MELT", + 0x20A3 : "NA_SE_EV_FIRE_PILLAR_S", + 0x20A4 : "NA_SE_EV_BLOCK_RISING", + 0x20A5 : "NA_SE_EV_NABALL_VANISH", + 0x20A6 : "NA_SE_EV_SARIA_MELODY", + 0x20A7 : "NA_SE_EV_LINK_WARP_OUT", + 0x20A8 : "NA_SE_EV_FIATY_HEAL", + 0x20A9 : "NA_SE_EV_CHAIN_KEY_UNLOCK_B", + 0x20AA : "NA_SE_EV_WOODBOX_BREAK", + 0x20AB : "NA_SE_EV_PUT_DOWN_WOODBOX", + 0x20AC : "NA_SE_EV_LAND_DIRT", + 0x20AD : "NA_SE_EV_FLOOR_ROLLING", + 0x20AE : "NA_SE_EV_DOG_CRY_EVENING", + 0x20AF : "NA_SE_EV_JABJAB_HICCUP", + 0x20B0 : "NA_SE_EV_NALE_MAGIC", + 0x20B1 : "NA_SE_EV_FROG_JUMP", + 0x20B2 : "NA_SE_EV_ICE_FREEZE", + 0x20B3 : "NA_SE_EV_BURNING", + 0x20B4 : "NA_SE_EV_WOODPLATE_BOUND", + 0x20B5 : "NA_SE_EV_GORON_WATER_DROP", + 0x20B6 : "NA_SE_EV_JABJAB_GROAN", + 0x20B7 : "NA_SE_EV_DARUMA_VANISH", + 0x20B8 : "NA_SE_EV_BIGBALL_ROLL", + 0x20B9 : "NA_SE_EV_ELEVATOR_MOVE3", + 0x20BA : "NA_SE_EV_DIAMOND_SWITCH", + 0x20BB : "NA_SE_EV_FLAME_OF_FIRE", + 0x20BC : "NA_SE_EV_RAINBOW_SHOWER", + 0x20BD : "NA_SE_EV_FLYING_AIR", + 0x20BE : "NA_SE_EV_PASS_AIR", + 0x20BF : "NA_SE_EV_COME_UP_DEKU_JR", + 0x20C0 : "NA_SE_EV_SAND_STORM", + 0x20C1 : "NA_SE_EV_TRIFORCE_MARK", + 0x20C2 : "NA_SE_EV_GRAVE_EXPLOSION", + 0x20C3 : "NA_SE_EV_LURE_MOVE_W", + 0x20C4 : "NA_SE_EV_POT_MOVE_START", + 0x20C5 : "NA_SE_EV_DIVE_INTO_WATER_L", + 0x20C6 : "NA_SE_EV_OUT_OF_WATER_L", + 0x20C7 : "NA_SE_EV_GANON_MANTLE", + 0x20C8 : "NA_SE_EV_DIG_UP", + 0x20C9 : "NA_SE_EV_WOOD_BOUND", + 0x20CA : "NA_SE_EV_WATER_BUBBLE", + 0x20CB : "NA_SE_EV_ICE_BROKEN", + 0x20CC : "NA_SE_EV_FROG_GROW_UP", + 0x20CD : "NA_SE_EV_WATER_CONVECTION", + 0x20CE : "NA_SE_EV_GROUND_GATE_OPEN", + 0x20CF : "NA_SE_EV_FACE_BREAKDOWN", + 0x20D0 : "NA_SE_EV_FACE_EXPLOSION", + 0x20D1 : "NA_SE_EV_FACE_CRUMBLE_SLOW", + 0x20D2 : "NA_SE_EV_ROUND_TRAP_MOVE", + 0x20D3 : "NA_SE_EV_HIT_SOUND", + 0x20D4 : "NA_SE_EV_ICE_SWING", + 0x20D5 : "NA_SE_EV_DOWN_TO_GROUND", + 0x20D6 : "NA_SE_EV_KENJA_ENVIROMENT_0", + 0x20D7 : "NA_SE_EV_KENJA_ENVIROMENT_1", + 0x20D8 : "NA_SE_EV_SMALL_DOG_BARK", + 0x20D9 : "NA_SE_EV_ZELDA_POWER", + 0x20DA : "NA_SE_EV_RAIN", + 0x20DB : "NA_SE_EV_IRON_DOOR_OPEN", + 0x20DC : "NA_SE_EV_IRON_DOOR_CLOSE", + 0x20DD : "NA_SE_EV_WHIRLPOOL", + 0x20DE : "NA_SE_EV_TOWER_PARTS_BROKEN", + 0x20DF : "NA_SE_EV_COW_CRY", + 0x20E0 : "NA_SE_EV_METAL_BOX_BOUND", + 0x20E1 : "NA_SE_EV_ELECTRIC_EXPLOSION", + 0x20E2 : "NA_SE_EV_HEAVY_THROW", + 0x20E3 : "NA_SE_EV_FROG_CRY_0", + 0x20E4 : "NA_SE_EV_FROG_CRY_1", + 0x20E5 : "NA_SE_EV_COW_CRY_LV", + 0x20E6 : "NA_SE_EV_RONRON_DOOR_CLOSE", + 0x20E7 : "NA_SE_EV_BUTTERFRY_TO_FAIRY", + 0x20E8 : "NA_SE_EV_FIVE_COUNT_LUPY", + 0x20E9 : "NA_SE_EV_STONE_GROW_UP", + 0x20EA : "NA_SE_EV_STONE_LAUNCH", + 0x20EB : "NA_SE_EV_STONE_ROLLING", + 0x20EC : "NA_SE_EV_TOGE_STICK_ROLLING", + 0x20ED : "NA_SE_EV_TOWER_ENERGY", + 0x20EE : "NA_SE_EV_TOWER_BARRIER", + 0x20EF : "NA_SE_EV_CHIBI_WALK", + 0x20F0 : "NA_SE_EV_KNIGHT_WALK", + 0x20F1 : "NA_SE_EV_PILLAR_MOVE_STOP", + 0x20F2 : "NA_SE_EV_ERUPTION_CLOUD", + 0x20F3 : "NA_SE_EV_LINK_WARP_OUT_LV", + 0x20F4 : "NA_SE_EV_LINK_WARP_IN", + 0x20F5 : "NA_SE_EV_OCARINA_BMELO_0", + 0x20F6 : "NA_SE_EV_OCARINA_BMELO_1", + 0x20F7 : "NA_SE_EV_EXPLOSION_FOR_RENZOKU", + 0x3000 : "NA_SE_EN_DODO_J_WALK", + 0x3001 : "NA_SE_EN_DODO_J_CRY", + 0x3002 : "NA_SE_EN_DODO_J_FIRE", + 0x3003 : "NA_SE_EN_DODO_J_DAMAGE", + 0x3004 : "NA_SE_EN_DODO_J_DEAD", + 0x3005 : "NA_SE_EN_DODO_K_CRY", + 0x3006 : "NA_SE_EN_DODO_K_DAMAGE", + 0x3007 : "NA_SE_EN_DODO_K_DEAD", + 0x3008 : "NA_SE_EN_DODO_K_WALK", + 0x3009 : "NA_SE_EN_DODO_K_FIRE", + 0x300A : "NA_SE_EN_GOMA_WALK", + 0x300B : "NA_SE_EN_GOMA_HIGH", + 0x300C : "NA_SE_EN_GOMA_CLIM", + 0x300D : "NA_SE_EN_GOMA_DOWN", + 0x300E : "NA_SE_EN_GOMA_CRY1", + 0x300F : "NA_SE_EN_GOMA_CRY2", + 0x3010 : "NA_SE_EN_GOMA_DAM1", + 0x3011 : "NA_SE_EN_GOMA_DAM2", + 0x3012 : "NA_SE_EN_GOMA_DEAD", + 0x3013 : "NA_SE_EN_GOMA_UNARI", + 0x3014 : "NA_SE_EN_GOMA_BJR_EGG1", + 0x3015 : "NA_SE_EN_GOMA_BJR_EGG2", + 0x3016 : "NA_SE_EN_GOMA_BJR_WALK", + 0x3017 : "NA_SE_EN_GOMA_BJR_CRY", + 0x3018 : "NA_SE_EN_GOMA_BJR_DAM1", + 0x3019 : "NA_SE_EN_GOMA_BJR_DAM2", + 0x301A : "NA_SE_EN_GOMA_BJR_DEAD", + 0x301B : "NA_SE_EN_GOMA_DEMO_EYE", + 0x301C : "NA_SE_EN_GOMA_LAST", + 0x301D : "NA_SE_EN_GOMA_UNARI2", + 0x301E : "NA_SE_EN_GOMA_FAINT", + 0x301F : "NA_SE_EN_GOMA_BJR_FREEZE", + 0x3020 : "NA_SE_EN_DODO_M_CRY", + 0x3021 : "NA_SE_EN_DODO_M_DEAD", + 0x3022 : "NA_SE_EN_DODO_M_MOVE", + 0x3023 : "NA_SE_EN_DODO_M_DOWN", + 0x3024 : "NA_SE_EN_DODO_M_UP", + 0x3025 : "NA_SE_EN_GANON_THROW_MASIC", + 0x3026 : "NA_SE_EN_DODO_M_EAT", + 0x3027 : "NA_SE_EN_GANON_DD_THUNDER", + 0x3028 : "NA_SE_EN_RIZA_ONGND", + 0x3029 : "NA_SE_EN_RIZA_CRY", + 0x302A : "NA_SE_EN_RIZA_ATTACK", + 0x302B : "NA_SE_EN_RIZA_DAMAGE", + 0x302C : "NA_SE_EN_RIZA_WARAU", + 0x302D : "NA_SE_EN_RIZA_DEAD", + 0x302E : "NA_SE_EN_RIZA_WALK", + 0x302F : "NA_SE_EN_RIZA_JUMP", + 0x3030 : "NA_SE_EN_STALKID_WALK", + 0x3031 : "NA_SE_EN_STALKID_ATTACK", + 0x3032 : "NA_SE_EN_STALKID_DAMAGE", + 0x3033 : "NA_SE_EN_STALKID_DEAD", + 0x3034 : "NA_SE_EN_FLOORMASTER_SLIDING", + 0x3035 : "NA_SE_EN_TEKU_WALK_WATER", + 0x3036 : "NA_SE_EN_LIGHT_ARROW_HIT", + 0x3037 : "NA_SE_EN_TUBOOCK_FLY", + 0x3038 : "NA_SE_EN_STAL_WARAU", + 0x3039 : "NA_SE_EN_STAL_SAKEBI", + 0x303A : "NA_SE_EN_STAL_DAMAGE", + 0x303B : "NA_SE_EN_STAL_DEAD", + 0x303C : "NA_SE_EN_WOLFOS_APPEAR", + 0x303D : "NA_SE_EN_STAL_WALK", + 0x303E : "NA_SE_EN_WOLFOS_CRY", + 0x303F : "NA_SE_EN_WOLFOS_ATTACK", + 0x3040 : "NA_SE_EN_FFLY_ATTACK", + 0x3041 : "NA_SE_EN_FFLY_FLY", + 0x3042 : "NA_SE_EN_FFLY_DEAD", + 0x3043 : "NA_SE_EN_WOLFOS_DAMAGE", + 0x3044 : "NA_SE_EN_AMOS_WALK", + 0x3045 : "NA_SE_EN_AMOS_WAVE", + 0x3046 : "NA_SE_EN_AMOS_DEAD", + 0x3047 : "NA_SE_EN_AMOS_DAMAGE", + 0x3048 : "NA_SE_EN_AMOS_VOICE", + 0x3049 : "NA_SE_EN_SHELL_MOUTH", + 0x304A : "NA_SE_EN_SHELL_DEAD", + 0x304B : "NA_SE_EN_WOLFOS_DEAD", + 0x304C : "NA_SE_EN_DODO_K_COLI", + 0x304D : "NA_SE_EN_DODO_K_COLI2", + 0x304E : "NA_SE_EN_DODO_K_ROLL", + 0x304F : "NA_SE_EN_DODO_K_BREATH", + 0x3050 : "NA_SE_EN_DODO_K_DRINK", + 0x3051 : "NA_SE_EN_DODO_K_DOWN", + 0x3052 : "NA_SE_EN_DODO_K_OTAKEBI", + 0x3053 : "NA_SE_EN_DODO_K_END", + 0x3054 : "NA_SE_EN_DODO_K_LAST", + 0x3055 : "NA_SE_EN_DODO_K_LAVA", + 0x3056 : "NA_SE_EN_GANON_FLOAT", + 0x3057 : "NA_SE_EN_GANON_DARKWAVE_M", + 0x3058 : "NA_SE_EN_DODO_J_BREATH", + 0x3059 : "NA_SE_EN_DODO_J_TAIL", + 0x305A : "NA_SE_EN_WOLFOS_WALK", + 0x305B : "NA_SE_EN_DODO_J_EAT", + 0x305C : "NA_SE_EN_DEKU_MOUTH", + 0x305D : "NA_SE_EN_DEKU_ATTACK", + 0x305E : "NA_SE_EN_DEKU_DAMAGE", + 0x305F : "NA_SE_EN_DEKU_DEAD", + 0x3060 : "NA_SE_EN_DEKU_JR_MOUTH", + 0x3061 : "NA_SE_EN_DEKU_JR_ATTACK", + 0x3062 : "NA_SE_EN_DEKU_JR_DEAD", + 0x3063 : "NA_SE_EN_DEKU_SCRAPE", + 0x3064 : "NA_SE_EN_TAIL_FLY", + 0x3065 : "NA_SE_EN_TAIL_CRY", + 0x3066 : "NA_SE_EN_TAIL_DEAD", + 0x3067 : "NA_SE_EN_GANON_SPARK", + 0x3068 : "NA_SE_EN_STALTU_DOWN", + 0x3069 : "NA_SE_EN_STALTU_UP", + 0x306A : "NA_SE_EN_STALTU_LAUGH", + 0x306B : "NA_SE_EN_STALTU_DAMAGE", + 0x306C : "NA_SE_EN_STAL_JUMP", + 0x306D : "NA_SE_EN_TEKU_DAMAGE", + 0x306E : "NA_SE_EN_TEKU_DEAD", + 0x306F : "NA_SE_EN_TEKU_WALK", + 0x3070 : "NA_SE_EN_PO_KANTERA", + 0x3071 : "NA_SE_EN_PO_FLY", + 0x3072 : "NA_SE_EN_PO_AWAY", + 0x3073 : "NA_SE_EN_PO_APPEAR", + 0x3074 : "NA_SE_EN_PO_DISAPPEAR", + 0x3075 : "NA_SE_EN_PO_DAMAGE", + 0x3076 : "NA_SE_EN_PO_DEAD", + 0x3077 : "NA_SE_EN_PO_DEAD2", + 0x3078 : "NA_SE_EN_EXTINCT", + 0x3079 : "NA_SE_EN_GOLON_LAND_BIG", + 0x307A : "NA_SE_EN_RIZA_DOWN", + 0x307B : "NA_SE_EN_DODO_M_GND", + 0x307C : "NA_SE_EN_NUTS_UP", + 0x307D : "NA_SE_EN_NUTS_DOWN", + 0x307E : "NA_SE_EN_NUTS_THROW", + 0x307F : "NA_SE_EN_NUTS_WALK", + 0x3080 : "NA_SE_EN_NUTS_DAMAGE", + 0x3081 : "NA_SE_EN_NUTS_DEAD", + 0x3082 : "NA_SE_EN_NUTS_FAINT", + 0x3083 : "NA_SE_EN_PO_BIG_GET", + 0x3084 : "NA_SE_EN_STALTU_ROLL", + 0x3085 : "NA_SE_EN_STALWALL_DEAD", + 0x3086 : "NA_SE_EN_PO_SISTER_DEAD", + 0x3087 : "NA_SE_EN_BARI_SPLIT", + 0x3088 : "NA_SE_EN_TEKU_REVERSE", + 0x3089 : "NA_SE_EN_VALVAISA_LAND2", + 0x308A : "NA_SE_EN_TEKU_LAND_WATER", + 0x308B : "NA_SE_EN_LAST_DAMAGE", + 0x308C : "NA_SE_EN_STALWALL_ROLL", + 0x308D : "NA_SE_EN_STALWALL_DASH", + 0x308E : "NA_SE_EN_TEKU_JUMP_WATER", + 0x308F : "NA_SE_EN_TEKU_LAND_WATER2", + 0x3090 : "NA_SE_EN_FALL_AIM", + 0x3091 : "NA_SE_EN_FALL_UP", + 0x3092 : "NA_SE_EN_FALL_CATCH", + 0x3093 : "NA_SE_EN_FALL_LAND", + 0x3094 : "NA_SE_EN_FALL_WALK", + 0x3095 : "NA_SE_EN_FALL_DAMAGE", + 0x3096 : "NA_SE_EN_FALL_DEAD", + 0x3097 : "NA_SE_EN_KAICHO_FLUTTER", + 0x3098 : "NA_SE_EN_BIRI_FLY", + 0x3099 : "NA_SE_EN_BIRI_JUMP", + 0x309A : "NA_SE_EN_BIRI_SPARK", + 0x309B : "NA_SE_EN_BIRI_DEAD", + 0x309C : "NA_SE_EN_BIRI_BUBLE", + 0x309D : "NA_SE_EN_BARI_ROLL", + 0x309E : "NA_SE_EN_GOMA_JR_FREEZE", + 0x309F : "NA_SE_EN_BARI_DEAD", + 0x30A0 : "NA_SE_EN_GANON_FIRE", + 0x30A1 : "NA_SE_EN_FANTOM_TRANSFORM", + 0x30A2 : "NA_SE_EN_FANTOM_THUNDER", + 0x30A3 : "NA_SE_EN_FANTOM_SPARK", + 0x30A4 : "NA_SE_EN_FANTOM_FLOAT", + 0x30A5 : "NA_SE_EN_FANTOM_MASIC1", + 0x30A6 : "NA_SE_EN_FANTOM_MASIC2", + 0x30A7 : "NA_SE_EN_FANTOM_FIRE", + 0x30A8 : "NA_SE_EN_FANTOM_HIT_THUNDER", + 0x30A9 : "NA_SE_EN_FANTOM_ATTACK", + 0x30AA : "NA_SE_EN_FANTOM_STICK", + 0x30AB : "NA_SE_EN_FANTOM_EYE", + 0x30AC : "NA_SE_EN_FANTOM_LAST", + 0x30AD : "NA_SE_EN_FANTOM_THUNDER_GND", + 0x30AE : "NA_SE_EN_FANTOM_DAMAGE", + 0x30AF : "NA_SE_EN_FANTOM_DEAD", + 0x30B0 : "NA_SE_EN_FANTOM_LAUGH", + 0x30B1 : "NA_SE_EN_FANTOM_DAMAGE2", + 0x30B2 : "NA_SE_EN_FANTOM_VOICE", + 0x30B3 : "NA_SE_EN_KAICHO_DAMAGE", + 0x30B4 : "NA_SE_EN_GANON_ATTACK_DEMO", + 0x30B5 : "NA_SE_EN_GANON_FIRE_DEMO", + 0x30B6 : "NA_SE_EN_KAICHO_CRY", + 0x30B7 : "NA_SE_EN_KAICHO_ATTACK", + 0x30B8 : "NA_SE_EN_MORIBLIN_WALK", + 0x30B9 : "NA_SE_EN_MORIBLIN_SLIDE", + 0x30BA : "NA_SE_EN_MORIBLIN_ATTACK", + 0x30BB : "NA_SE_EN_MORIBLIN_VOICE", + 0x30BC : "NA_SE_EN_MORIBLIN_SPEAR_AT", + 0x30BD : "NA_SE_EN_MORIBLIN_SPEAR_NORM", + 0x30BE : "NA_SE_EN_MORIBLIN_DEAD", + 0x30BF : "NA_SE_EN_MORIBLIN_DASH", + 0x30C0 : "NA_SE_EN_OCTAROCK_ROCK", + 0x30C1 : "NA_SE_EN_OCTAROCK_FLOAT", + 0x30C2 : "NA_SE_EN_OCTAROCK_JUMP", + 0x30C3 : "NA_SE_EN_OCTAROCK_LAND", + 0x30C4 : "NA_SE_EN_OCTAROCK_SINK", + 0x30C5 : "NA_SE_EN_OCTAROCK_BUBLE", + 0x30C6 : "NA_SE_EN_OCTAROCK_DEAD1", + 0x30C7 : "NA_SE_EN_OCTAROCK_DEAD2", + 0x30C8 : "NA_SE_EN_BUBLE_WING", + 0x30C9 : "NA_SE_EN_BUBLE_MOUTH", + 0x30CA : "NA_SE_EN_BUBLE_LAUGH", + 0x30CB : "NA_SE_EN_BUBLE_BITE", + 0x30CC : "NA_SE_EN_BUBLE_UP", + 0x30CD : "NA_SE_EN_BUBLE_DOWN", + 0x30CE : "NA_SE_EN_BUBLE_DEAD", + 0x30CF : "NA_SE_EN_BUBLEFALL_FIRE", + 0x30D0 : "NA_SE_EN_VALVAISA_APPEAR", + 0x30D1 : "NA_SE_EN_VALVAISA_ROAR", + 0x30D2 : "NA_SE_EN_VALVAISA_MAHI1", + 0x30D3 : "NA_SE_EN_VALVAISA_MAHI2", + 0x30D4 : "NA_SE_EN_VALVAISA_KNOCKOUT", + 0x30D5 : "NA_SE_EN_VALVAISA_DAMAGE1", + 0x30D6 : "NA_SE_EN_VALVAISA_DAMAGE2", + 0x30D7 : "NA_SE_EN_VALVAISA_ROCK", + 0x30D8 : "NA_SE_EN_VALVAISA_SW_NAIL", + 0x30D9 : "NA_SE_EN_VALVAISA_DEAD", + 0x30DA : "NA_SE_EN_VALVAISA_BURN", + 0x30DB : "NA_SE_EN_VALVAISA_FIRE", + 0x30DC : "NA_SE_EN_BARI_DAMAGE", + 0x30DD : "NA_SE_EN_MOFER_CORE_LAND", + 0x30DE : "NA_SE_EN_MOFER_CORE_MOVE_WT", + 0x30DF : "NA_SE_EN_MOFER_CORE_SMJUMP", + 0x30E0 : "NA_SE_EN_MONBLIN_GNDWAVE", + 0x30E1 : "NA_SE_EN_MONBLIN_HAM_DOWN", + 0x30E2 : "NA_SE_EN_MONBLIN_HAM_UP", + 0x30E3 : "NA_SE_EN_BUBLE_DAMAGE", + 0x30E4 : "NA_SE_EN_REDEAD_CRY", + 0x30E5 : "NA_SE_EN_REDEAD_AIM", + 0x30E6 : "NA_SE_EN_REDEAD_DAMAGE", + 0x30E7 : "NA_SE_EN_REDEAD_DEAD", + 0x30E8 : "NA_SE_EN_REDEAD_ATTACK", + 0x30E9 : "NA_SE_EN_NYU_MOVE", + 0x30EA : "NA_SE_EN_NYU_HIT_STOP", + 0x30EB : "NA_SE_EN_KAICHO_DEAD", + 0x30EC : "NA_SE_EN_PO_LAUGH", + 0x30ED : "NA_SE_EN_PO_CRY", + 0x30EE : "NA_SE_EN_PO_ROLL", + 0x30EF : "NA_SE_EN_PO_LAUGH2", + 0x30F0 : "NA_SE_EN_MOFER_APPEAR", + 0x30F1 : "NA_SE_EN_MOFER_ATTACK", + 0x30F2 : "NA_SE_EN_MOFER_WAVE", + 0x30F3 : "NA_SE_EN_MOFER_CATCH", + 0x30F4 : "NA_SE_EN_MOFER_CUT", + 0x30F5 : "NA_SE_EN_MOFER_MOVE_DEMO", + 0x30F6 : "NA_SE_EN_MOFER_BUBLE_DEMO", + 0x30F7 : "NA_SE_EN_MOFER_CORE_JUMP", + 0x30F8 : "NA_SE_EN_MOFER_DEAD", + 0x30F9 : "NA_SE_EN_MOFER_LASTVOICE", + 0x30FA : "NA_SE_EN_MOFER_CORE_ROLL", + 0x30FB : "NA_SE_EN_MOFER_CORE_FLY", + 0x30FC : "NA_SE_EN_GOLON_WAKE_UP", + 0x30FD : "NA_SE_EN_GOLON_SIT_DOWN", + 0x30FE : "NA_SE_EN_CHICKEN_FLUTTER", + 0x30FF : "NA_SE_EN_DEKU_WAKEUP", + 0x3100 : "NA_SE_EN_DEADHAND_BITE", + 0x3101 : "NA_SE_EN_DEADHAND_WALK", + 0x3102 : "NA_SE_EN_DEADHAND_GRIP", + 0x3103 : "NA_SE_EN_DEADHAND_HAND_AT", + 0x3104 : "NA_SE_EN_DAIOCTA_MAHI", + 0x3105 : "NA_SE_EN_DAIOCTA_SPLASH", + 0x3106 : "NA_SE_EN_DAIOCTA_VOICE", + 0x3107 : "NA_SE_EN_DAIOCTA_DAMAGE", + 0x3108 : "NA_SE_EN_DAIOCTA_SINK", + 0x3109 : "NA_SE_EN_DAIOCTA_DEAD", + 0x310A : "NA_SE_EN_DAIOCTA_DEAD2", + 0x310B : "NA_SE_EN_GANON_HIT_THUNDER", + 0x310C : "NA_SE_EN_TWINROBA_APPEAR_MS", + 0x310D : "NA_SE_EN_TWINROBA_TRANSFORM", + 0x310E : "NA_SE_EN_TWINROBA_MS_FIRE", + 0x310F : "NA_SE_EN_TWINROBA_FIRE_EXP", + 0x3110 : "NA_SE_EN_TWINROBA_POWERUP", + 0x3111 : "NA_SE_EN_TWINROBA_SHOOT_FREEZE", + 0x3112 : "NA_SE_EN_TWINROBA_MS_FREEZE", + 0x3113 : "NA_SE_EN_TWINROBA_MASIC_SET", + 0x3114 : "NA_SE_EN_TWINROBA_CUTBODY", + 0x3115 : "NA_SE_EN_GANON_HIT_GND_IMP", + 0x3116 : "NA_SE_EN_TWINROBA_DAMAGE_VOICE", + 0x3117 : "NA_SE_EN_TWINROBA_REFL_FIRE", + 0x3118 : "NA_SE_EN_TWINROBA_REFL_FREEZE", + 0x3119 : "NA_SE_EN_GANON_CUTBODY", + 0x311A : "NA_SE_EN_TWINROBA_YOUNG_DAMAGE", + 0x311B : "NA_SE_EN_TWINROBA_YOUNG_DEAD", + 0x311C : "NA_SE_EN_GOLON_EYE_BIG", + 0x311D : "NA_SE_EN_GOLON_GOOD_BIG", + 0x311E : "NA_SE_EN_TWINROBA_FB_FLY", + 0x311F : "NA_SE_EN_TWINROBA_FLY", + 0x3120 : "NA_SE_EN_TWINROBA_UNARI", + 0x3121 : "NA_SE_EN_TWINROBA_ROLL", + 0x3122 : "NA_SE_EN_TWINROBA_SHOOT_FIRE", + 0x3123 : "NA_SE_EN_TWINROBA_THROW_MASIC", + 0x3124 : "NA_SE_EN_DARUNIA_HIT_BREAST", + 0x3125 : "NA_SE_EN_DARUNIA_HIT_LINK", + 0x3126 : "NA_SE_EN_OWL_FLUTTER", + 0x3127 : "NA_SE_EN_VALVAISA_LAND", + 0x3128 : "NA_SE_EN_IRONNACK_WALK", + 0x3129 : "NA_SE_EN_IRONNACK_SWING_AXE", + 0x312A : "NA_SE_EN_IRONNACK_ARMOR_DEMO", + 0x312B : "NA_SE_EN_IRONNACK_STAGGER_DEMO", + 0x312C : "NA_SE_EN_IRONNACK_ARMOR_OFF_DEMO", + 0x312D : "NA_SE_EN_IRONNACK_ARMOR_LAND1_DEMO", + 0x312E : "NA_SE_EN_IRONNACK_ARMOR_LAND2_DEMO", + 0x312F : "NA_SE_EN_IRONNACK_ARMOR_LAND3_DEMO", + 0x3130 : "NA_SE_EN_FLOORMASTER_ATTACK", + 0x3131 : "NA_SE_EN_FLOORMASTER_SM_WALK", + 0x3132 : "NA_SE_EN_FLOORMASTER_SM_DEAD", + 0x3133 : "NA_SE_EN_FLOORMASTER_RESTORE", + 0x3134 : "NA_SE_EN_FLOORMASTER_EXPAND", + 0x3135 : "NA_SE_EN_FLOORMASTER_SPLIT", + 0x3136 : "NA_SE_EN_FLOORMASTER_SM_STICK", + 0x3137 : "NA_SE_EN_FLOORMASTER_SM_LAND", + 0x3138 : "NA_SE_EN_IRONNACK_WAVE_DEMO", + 0x3139 : "NA_SE_EN_IRONNACK_FINGER_DEMO", + 0x313A : "NA_SE_EN_IRONNACK_ARMOR_HIT", + 0x313B : "NA_SE_EN_NUTS_CUTBODY", + 0x313C : "NA_SE_EN_BALINADE_LEVEL", + 0x313D : "NA_SE_EN_BALINADE_DAMAGE", + 0x313E : "NA_SE_EN_BALINADE_FAINT", + 0x313F : "NA_SE_EN_BALINADE_BREAK", + 0x3140 : "NA_SE_EN_BALINADE_DEAD", + 0x3141 : "NA_SE_EN_BALINADE_STICK", + 0x3142 : "NA_SE_EN_BALINADE_THUNDER", + 0x3143 : "NA_SE_EN_BALINADE_BL_SPARK", + 0x3144 : "NA_SE_EN_BALINADE_BL_DEAD", + 0x3145 : "NA_SE_EN_BALINADE_BREAK2", + 0x3146 : "NA_SE_EN_BALINADE_HIT_RINK", + 0x3147 : "NA_SE_EN_GANON_WAVE_GND", + 0x3148 : "NA_SE_EN_AWA_BOUND", + 0x3149 : "NA_SE_EN_AWA_BREAK", + 0x314A : "NA_SE_EN_BROB_WAVE", + 0x314B : "NA_SE_EN_NYU_DEAD", + 0x314C : "NA_SE_EN_EIER_DAMAGE", + 0x314D : "NA_SE_EN_EIER_DEAD", + 0x314E : "NA_SE_EN_EIER_FLUTTER", + 0x314F : "NA_SE_EN_EIER_FLY", + 0x3150 : "NA_SE_EN_SHADEST_TAIKO_LOW", + 0x3151 : "NA_SE_EN_SHADEST_TAIKO_HIGH", + 0x3152 : "NA_SE_EN_SHADEST_CLAP", + 0x3153 : "NA_SE_EN_SHADEST_FLY_ATTACK", + 0x3154 : "NA_SE_EN_PIHAT_UP", + 0x3155 : "NA_SE_EN_PIHAT_FLY", + 0x3156 : "NA_SE_EN_PIHAT_DAMAGE", + 0x3157 : "NA_SE_EN_PIHAT_LAND", + 0x3158 : "NA_SE_EN_BALINADE_HAND_DOWN", + 0x3159 : "NA_SE_EN_BALINADE_HAND_UP", + 0x315A : "NA_SE_EN_BALINADE_HAND_DAMAGE", + 0x315B : "NA_SE_EN_BALINADE_HAND_DEAD", + 0x315C : "NA_SE_EN_GOMA_JR_WALK", + 0x315D : "NA_SE_EN_GOMA_JR_CRY", + 0x315E : "NA_SE_EN_GOMA_JR_DAM1", + 0x315F : "NA_SE_EN_GOMA_JR_DAM2", + 0x3160 : "NA_SE_EN_GOMA_JR_DEAD", + 0x3161 : "NA_SE_EN_GOMA_EGG1", + 0x3162 : "NA_SE_EN_GOMA_EGG2", + 0x3163 : "NA_SE_EN_GANON_BODY_SPARK", + 0x3164 : "NA_SE_EN_SHADEST_HAND_WAVE", + 0x3165 : "NA_SE_EN_SHADEST_CATCH", + 0x3166 : "NA_SE_EN_SHADEST_LAND", + 0x3167 : "NA_SE_EN_SHADEST_HAND_FLY", + 0x3168 : "NA_SE_EN_SHADEST_SHAKEHAND", + 0x3169 : "NA_SE_EN_SHADEST_DAMAGE", + 0x316A : "NA_SE_EN_SHADEST_DAMAGE_HAND", + 0x316B : "NA_SE_EN_SHADEST_DISAPPEAR", + 0x316C : "NA_SE_EN_GANON_CHARGE_MASIC", + 0x316D : "NA_SE_EN_GANON_THROW_BIG", + 0x316E : "NA_SE_EN_SHADEST_FREEZE", + 0x316F : "NA_SE_EN_SHADEST_DEAD", + 0x3170 : "NA_SE_EN_BIMOS_ROLL_HEAD", + 0x3171 : "NA_SE_EN_BIMOS_LAZER", + 0x3172 : "NA_SE_EN_BIMOS_LAZER_GND", + 0x3173 : "NA_SE_EN_BIMOS_AIM", + 0x3174 : "NA_SE_EN_BUBLEWALK_WALK", + 0x3175 : "NA_SE_EN_BUBLEWALK_AIM", + 0x3176 : "NA_SE_EN_BUBLEWALK_REVERSE", + 0x3177 : "NA_SE_EN_BUBLEWALK_DAMAGE", + 0x3178 : "NA_SE_EN_BUBLEWALK_DEAD", + 0x3179 : "NA_SE_EN_YUKABYUN_FLY", + 0x317A : "NA_SE_EN_FLAME_DAMAGE", + 0x317B : "NA_SE_EN_TWINROBA_FLY_DEMO", + 0x317C : "NA_SE_EN_FLAME_KICK", + 0x317D : "NA_SE_EN_FLAME_RUN", + 0x317E : "NA_SE_EN_FLAME_ROLL", + 0x317F : "NA_SE_EN_FLAME_MAN_RUN", + 0x3180 : "NA_SE_EN_FLAME_MAN_DAMAGE", + 0x3181 : "NA_SE_EN_FLAME_LAUGH", + 0x3182 : "NA_SE_EN_FLAME_MAN_SLIDE", + 0x3183 : "NA_SE_EN_FLAME_FIRE_ATTACK", + 0x3184 : "NA_SE_EN_PIHAT_SM_FLY", + 0x3185 : "NA_SE_EN_PIHAT_SM_DEAD", + 0x3186 : "NA_SE_EN_RIVA_APPEAR", + 0x3187 : "NA_SE_EN_AKINDONUTS_HIDE", + 0x3188 : "NA_SE_EN_RIVA_DAMAGE", + 0x3189 : "NA_SE_EN_RIVA_DEAD", + 0x318A : "NA_SE_EN_RIVA_MOVE", + 0x318B : "NA_SE_EN_FLAME_MAN_SURP", + 0x318C : "NA_SE_EN_SHADEST_LAST", + 0x318D : "NA_SE_EN_SHADEST_MOVE", + 0x318E : "NA_SE_EN_SHADEST_PRAY", + 0x318F : "NA_SE_EN_MGANON_ROAR", + 0x3190 : "NA_SE_EN_LIKE_WALK", + 0x3191 : "NA_SE_EN_LIKE_UNARI", + 0x3192 : "NA_SE_EN_LIKE_DRINK", + 0x3193 : "NA_SE_EN_LIKE_EAT", + 0x3194 : "NA_SE_EN_LIKE_THROW", + 0x3195 : "NA_SE_EN_LIKE_DAMAGE", + 0x3196 : "NA_SE_EN_LIKE_DEAD", + 0x3197 : "NA_SE_EN_MGANON_SWORD", + 0x3198 : "NA_SE_EN_GERUDOFT_ATTACK", + 0x3199 : "NA_SE_EN_GERUDOFT_DAMAGE", + 0x319A : "NA_SE_EN_GERUDOFT_DEAD", + 0x319B : "NA_SE_EN_MGANON_DAMAGE", + 0x319C : "NA_SE_EN_ANUBIS_FIRE", + 0x319D : "NA_SE_EN_ANUBIS_FIREBOMB", + 0x319E : "NA_SE_EN_MGANON_DEAD1", + 0x319F : "NA_SE_EN_ANUBIS_DEAD", + 0x31A0 : "NA_SE_EN_MUSI_LAND", + 0x31A1 : "NA_SE_EN_MGANON_DEAD2", + 0x31A2 : "NA_SE_EN_EIER_ATTACK", + 0x31A3 : "NA_SE_EN_EIER_CRY", + 0x31A4 : "NA_SE_EN_FREEZAD_BREATH", + 0x31A5 : "NA_SE_EN_FREEZAD_DAMAGE", + 0x31A6 : "NA_SE_EN_FREEZAD_DEAD", + 0x31A7 : "NA_SE_EN_DEADHAND_LAUGH", + 0x31A8 : "NA_SE_EN_DEADHAND_HIDE", + 0x31A9 : "NA_SE_EN_DEADHAND_DAMAGE", + 0x31AA : "NA_SE_EN_DEADHAND_HAND_DEAD", + 0x31AB : "NA_SE_EN_DEADHAND_DEAD", + 0x31AC : "NA_SE_EN_IRONNACK_BREAK_PILLAR2", + 0x31AD : "NA_SE_EN_IRONNACK_BREAK_PILLAR", + 0x31AE : "NA_SE_EN_IRONNACK_HIT_GND", + 0x31AF : "NA_SE_EN_MGANON_BREATH", + 0x31B0 : "NA_SE_EN_TWINROBA_LAUGH", + 0x31B1 : "NA_SE_EN_TWINROBA_LAUGH2", + 0x31B2 : "NA_SE_EN_DUMMY434", + 0x31B3 : "NA_SE_EN_TWINROBA_SHOOT_VOICE", + 0x31B4 : "NA_SE_EN_TWINROBA_SENSE", + 0x31B5 : "NA_SE_EN_TWINROBA_DIE", + 0x31B6 : "NA_SE_EN_DUMMY438", + 0x31B7 : "NA_SE_EN_TWINROBA_YOUNG_DAMAGE2", + 0x31B8 : "NA_SE_EN_TWINROBA_YOUNG_SHOOTVC", + 0x31B9 : "NA_SE_EN_TWINROBA_YOUNG_LAUGH", + 0x31BA : "NA_SE_EN_DUMMY442", + 0x31BB : "NA_SE_EN_TWINROBA_YOUNG_WINK", + 0x31BC : "NA_SE_EN_DUMMY444", + 0x31BD : "NA_SE_EN_DUMMY445", + 0x31BE : "NA_SE_EN_IRONNACK_DAMAGE", + 0x31BF : "NA_SE_EN_IRONNACK_DASH", + 0x31C0 : "NA_SE_EN_IRONNACK_DEAD", + 0x31C1 : "NA_SE_EN_IRONNACK_PULLOUT", + 0x31C2 : "NA_SE_EN_IRONNACK_WAKEUP", + 0x31C3 : "NA_SE_EN_DUMMY451", + 0x31C4 : "NA_SE_EN_DUMMY452", + 0x31C5 : "NA_SE_EN_DUMMY453", + 0x31C6 : "NA_SE_EN_GERUDOFT_BREATH", + 0x31C7 : "NA_SE_EN_GANON_LAUGH", + 0x31C8 : "NA_SE_EN_GANON_VOICE_DEMO", + 0x31C9 : "NA_SE_EN_GANON_THROW", + 0x31CA : "NA_SE_EN_GANON_AT_RETURN", + 0x31CB : "NA_SE_EN_GANON_HIT_GND", + 0x31CC : "NA_SE_EN_GANON_DAMAGE1", + 0x31CD : "NA_SE_EN_GANON_DAMAGE2", + 0x31CE : "NA_SE_EN_GANON_DOWN", + 0x31CF : "NA_SE_EN_GANON_RESTORE", + 0x31D0 : "NA_SE_EN_GANON_DEAD", + 0x31D1 : "NA_SE_EN_GANON_BREATH", + 0x31D2 : "NA_SE_EN_GANON_TOKETU", + 0x31D3 : "NA_SE_EN_GANON_CASBREAK", + 0x31D4 : "NA_SE_EN_GANON_BIGMASIC", + 0x31D5 : "NA_SE_EN_GANON_DARKWAVE", + 0x31D6 : "NA_SE_EN_FANTOM_ST_LAUGH", + 0x31D7 : "NA_SE_EN_MGANON_WALK", + 0x31D8 : "NA_SE_EN_MGANON_STAND", + 0x31D9 : "NA_SE_EN_MGANON_UNARI", + 0x31DA : "NA_SE_EN_STALGOLD_ROLL", + 0x31DB : "NA_SE_EN_KDOOR_WAVE", + 0x31DC : "NA_SE_EN_KDOOR_HIT", + 0x31DD : "NA_SE_EN_KDOOR_BREAK", + 0x31DE : "NA_SE_EN_KDOOR_HIT_GND", + 0x31DF : "NA_SE_EN_MGANON_SWDIMP", + 0x31E0 : "NA_SE_EN_STALTU_WAVE", + 0x31E1 : "NA_SE_EN_STALTU_DOWN_SET", + 0x31E2 : "NA_SE_EN_DUMMY482", + 0x31E3 : "NA_SE_EN_GOMA_BJR_LAND", + 0x31E4 : "NA_SE_EN_GOMA_BJR_LAND2", + 0x31E5 : "NA_SE_EN_GOMA_JR_LAND", + 0x31E6 : "NA_SE_EN_GOMA_JR_LAND2", + 0x31E7 : "NA_SE_EN_TWINROBA_FIGHT", + 0x31E8 : "NA_SE_EN_PO_BIG_CRY", + 0x31E9 : "NA_SE_EN_MUSI_SINK", + 0x31EA : "NA_SE_EN_STALGOLD_UP_CRY", + 0x31EB : "NA_SE_EN_GOLON_CRY", + 0x31EC : "NA_SE_EN_MOFER_CORE_DAMAGE", + 0x31ED : "NA_SE_EN_DAIOCTA_LAND_WATER", + 0x31EE : "NA_SE_EN_RIVA_BIG_APPEAR", + 0x31EF : "NA_SE_EN_MONBLIN_HAM_LAND", + 0x31F0 : "NA_SE_EN_MUSI_WALK", + 0x31F1 : "NA_SE_EN_MIMICK_BREATH", + 0x31F2 : "NA_SE_EN_STALWALL_LAUGH", + 0x4000 : "NA_SE_SY_WIN_OPEN", + 0x4001 : "NA_SE_SY_WIN_CLOSE", + 0x4002 : "NA_SE_SY_CORRECT_CHIME", + 0x4003 : "NA_SE_SY_GET_RUPY", + 0x4004 : "NA_SE_SY_MESSAGE_WOMAN", + 0x4005 : "NA_SE_SY_MESSAGE_MAN", + 0x4006 : "NA_SE_SY_ERROR", + 0x4007 : "NA_SE_SY_TRE_BOX_APPEAR", + 0x4008 : "NA_SE_SY_DECIDE", + 0x4009 : "NA_SE_SY_CURSOR", + 0x400A : "NA_SE_SY_CANCEL", + 0x400B : "NA_SE_SY_HP_RECOVER", + 0x400C : "NA_SE_SY_ATTENTION_ON", + 0x400D : "NA_SE_SY_DUMMY_13", + 0x400E : "NA_SE_SY_DUMMY_14", + 0x400F : "NA_SE_SY_LOCK_OFF", + 0x4010 : "NA_SE_SY_LOCK_ON_HUMAN", + 0x4011 : "NA_SE_SY_DUMMY_17", + 0x4012 : "NA_SE_SY_DUMMY_18", + 0x4013 : "NA_SE_SY_CAMERA_ZOOM_UP", + 0x4014 : "NA_SE_SY_CAMERA_ZOOM_DOWN", + 0x4015 : "NA_SE_SY_DUMMY_21", + 0x4016 : "NA_SE_SY_DUMMY_22", + 0x4017 : "NA_SE_SY_ATTENTION_ON_OLD", + 0x4018 : "NA_SE_SY_MESSAGE_PASS", + 0x4019 : "NA_SE_SY_WARNING_COUNT_N", + 0x401A : "NA_SE_SY_WARNING_COUNT_E", + 0x401B : "NA_SE_SY_HITPOINT_ALARM", + 0x401C : "NA_SE_SY_DUMMY_28", + 0x401D : "NA_SE_SY_DEMO_CUT", + 0x401E : "NA_SE_SY_NAVY_CALL", + 0x401F : "NA_SE_SY_GAUGE_UP", + 0x4020 : "NA_SE_SY_DUMMY_32", + 0x4021 : "NA_SE_SY_DUMMY_33", + 0x4022 : "NA_SE_SY_DUMMY_34", + 0x4023 : "NA_SE_SY_PIECE_OF_HEART", + 0x4024 : "NA_SE_SY_GET_ITEM", + 0x4025 : "NA_SE_SY_WIN_SCROLL_LEFT", + 0x4026 : "NA_SE_SY_WIN_SCROLL_RIGHT", + 0x4027 : "NA_SE_SY_OCARINA_ERROR", + 0x4028 : "NA_SE_SY_CAMERA_ZOOM_UP_2", + 0x4029 : "NA_SE_SY_CAMERA_ZOOM_DOWN_2", + 0x402A : "NA_SE_SY_GLASSMODE_ON", + 0x402B : "NA_SE_SY_GLASSMODE_OFF", + 0x402C : "NA_SE_SY_FOUND", + 0x402D : "NA_SE_SY_HIT_SOUND", + 0x402E : "NA_SE_SY_MESSAGE_END", + 0x402F : "NA_SE_SY_RUPY_COUNT", + 0x4030 : "NA_SE_SY_LOCK_ON", + 0x4031 : "NA_SE_SY_GET_BOXITEM", + 0x4032 : "NA_SE_SY_WHITE_OUT_L", + 0x4033 : "NA_SE_SY_WHITE_OUT_S", + 0x4034 : "NA_SE_SY_WHITE_OUT_T", + 0x4035 : "NA_SE_SY_START_SHOT", + 0x4036 : "NA_SE_SY_METRONOME", + 0x4037 : "NA_SE_SY_ATTENTION_URGENCY", + 0x4038 : "NA_SE_SY_METRONOME_LV", + 0x4039 : "NA_SE_SY_FSEL_CURSOR", + 0x403A : "NA_SE_SY_FSEL_DECIDE_S", + 0x403B : "NA_SE_SY_FSEL_DECIDE_L", + 0x403C : "NA_SE_SY_FSEL_CLOSE", + 0x403D : "NA_SE_SY_FSEL_ERROR", + 0x403E : "NA_SE_SY_SET_FIRE_ARROW", + 0x403F : "NA_SE_SY_SET_ICE_ARROW", + 0x4040 : "NA_SE_SY_SET_LIGHT_ARROW", + 0x4041 : "NA_SE_SY_SYNTH_MAGIC_ARROW", + 0x4042 : "NA_SE_SY_METRONOME_2", + 0x4043 : "NA_SE_SY_KINSTA_MARK_APPEAR", + 0x4044 : "NA_SE_SY_FIVE_COUNT_LUPY", + 0x4045 : "NA_SE_SY_CARROT_RECOVER", + 0x4046 : "NA_SE_EV_FAIVE_LUPY_COUNT", + 0x4047 : "NA_SE_SY_DUMMY_71", + 0x5000 : "NA_SE_OC_OCARINA", + 0x5001 : "NA_SE_OC_ABYSS", + 0x5002 : "NA_SE_OC_DOOR_OPEN", + 0x5003 : "NA_SE_OC_SECRET_WARP_IN", + 0x5004 : "NA_SE_OC_SECRET_WARP_OUT", + 0x5005 : "NA_SE_OC_SECRET_HOLE_OUT", + 0x5006 : "NA_SE_OC_REVENGE", + 0x5007 : "NA_SE_OC_HINT_MOVIE", + 0x6000 : "NA_SE_VO_LI_SWORD_N", + 0x6001 : "NA_SE_VO_LI_SWORD_L", + 0x6002 : "NA_SE_VO_LI_LASH", + 0x6003 : "NA_SE_VO_LI_HANG", + 0x6004 : "NA_SE_VO_LI_CLIMB_END", + 0x6005 : "NA_SE_VO_LI_DAMAGE_S", + 0x6006 : "NA_SE_VO_LI_FREEZE", + 0x6007 : "NA_SE_VO_LI_FALL_S", + 0x6008 : "NA_SE_VO_LI_FALL_L", + 0x6009 : "NA_SE_VO_LI_BREATH_REST", + 0x600A : "NA_SE_VO_LI_BREATH_DRINK", + 0x600B : "NA_SE_VO_LI_DOWN", + 0x600C : "NA_SE_VO_LI_TAKEN_AWAY", + 0x600D : "NA_SE_VO_LI_HELD", + 0x600E : "NA_SE_VO_LI_SNEEZE", + 0x600F : "NA_SE_VO_LI_SWEAT", + 0x6010 : "NA_SE_VO_LI_DRINK", + 0x6011 : "NA_SE_VO_LI_RELAX", + 0x6012 : "NA_SE_VO_LI_SWORD_PUTAWAY", + 0x6013 : "NA_SE_VO_LI_GROAN", + 0x6014 : "NA_SE_VO_LI_AUTO_JUMP", + 0x6015 : "NA_SE_VO_LI_MAGIC_NALE", + 0x6016 : "NA_SE_VO_LI_SURPRISE", + 0x6017 : "NA_SE_VO_LI_MAGIC_FROL", + 0x6018 : "NA_SE_VO_LI_PUSH", + 0x6019 : "NA_SE_VO_LI_HOOKSHOT_HANG", + 0x601A : "NA_SE_VO_LI_LAND_DAMAGE_S", + 0x601B : "NA_SE_VO_LI_NULL_0x1b", + 0x601C : "NA_SE_VO_LI_MAGIC_ATTACK", + 0x601D : "NA_SE_VO_BL_DOWN", + 0x601E : "NA_SE_VO_LI_DEMO_DAMAGE", + 0x601F : "NA_SE_VO_LI_ELECTRIC_SHOCK_LV", + 0x6020 : "NA_SE_VO_LI_SWORD_N_KID", + 0x6021 : "NA_SE_VO_LI_ROLLING_CUT_KID", + 0x6022 : "NA_SE_VO_LI_LASH_KID", + 0x6023 : "NA_SE_VO_LI_HANG_KID", + 0x6024 : "NA_SE_VO_LI_CLIMB_END_KID", + 0x6025 : "NA_SE_VO_LI_DAMAGE_S_KID", + 0x6026 : "NA_SE_VO_LI_FREEZE_KID", + 0x6027 : "NA_SE_VO_LI_FALL_S_KID", + 0x6028 : "NA_SE_VO_LI_FALL_L_KID", + 0x6029 : "NA_SE_VO_LI_BREATH_REST_KID", + 0x602A : "NA_SE_VO_LI_BREATH_DRINK_KID", + 0x602B : "NA_SE_VO_LI_DOWN_KID", + 0x602C : "NA_SE_VO_LI_TAKEN_AWAY_KID", + 0x602D : "NA_SE_VO_LI_HELD_KID", + 0x602E : "NA_SE_VO_LI_SNEEZE_KID", + 0x602F : "NA_SE_VO_LI_SWEAT_KID", + 0x6030 : "NA_SE_VO_LI_DRINK_KID", + 0x6031 : "NA_SE_VO_LI_RELAX_KID", + 0x6032 : "NA_SE_VO_LI_SWORD_PUTAWAY_KID", + 0x6033 : "NA_SE_VO_LI_GROAN_KID", + 0x6034 : "NA_SE_VO_LI_AUTO_JUMP_KID", + 0x6035 : "NA_SE_VO_LI_MAGIC_NALE_KID", + 0x6036 : "NA_SE_VO_LI_SURPRISE_KID", + 0x6037 : "NA_SE_VO_LI_MAGIC_FROL_KID", + 0x6038 : "NA_SE_VO_LI_PUSH_KID", + 0x6039 : "NA_SE_VO_LI_HOOKSHOT_HANG_KID", + 0x603A : "NA_SE_VO_LI_LAND_DAMAGE_S_KID", + 0x603B : "NA_SE_VO_LI_NULL_0x1b_KID", + 0x603C : "NA_SE_VO_LI_MAGIC_ATTACK_KID", + 0x603D : "NA_SE_VO_BL_DOWN_KID", + 0x603E : "NA_SE_VO_LI_DEMO_DAMAGE_KID", + 0x603F : "NA_SE_VO_LI_ELECTRIC_SHOCK_LV_KID", + 0x6040 : "NA_SE_VO_NAVY_ENEMY", + 0x6041 : "NA_SE_VO_NAVY_HELLO", + 0x6042 : "NA_SE_VO_NAVY_HEAR", + 0x6043 : "NA_SE_VO_NAVY_CALL", + 0x6044 : "NA_SE_VO_NA_HELLO_3", + 0x6045 : "NA_SE_VO_DUMMY_0x45", + 0x6046 : "NA_SE_VO_DUMMY_0x46", + 0x6047 : "NA_SE_VO_DUMMY_0x47", + 0x6048 : "NA_SE_VO_DUMMY_0x48", + 0x6049 : "NA_SE_VO_DUMMY_0x49", + 0x604A : "NA_SE_VO_DUMMY_0x4a", + 0x604B : "NA_SE_VO_DUMMY_0x4b", + 0x604C : "NA_SE_VO_DUMMY_0x4c", + 0x604D : "NA_SE_VO_DUMMY_0x4d", + 0x604E : "NA_SE_VO_DUMMY_0x4e", + 0x604F : "NA_SE_VO_DUMMY_0x4f", + 0x6050 : "NA_SE_VO_TA_SLEEP", + 0x6051 : "NA_SE_VO_TA_SURPRISE", + 0x6052 : "NA_SE_VO_TA_CRY_0", + 0x6053 : "NA_SE_VO_TA_CRY_1", + 0x6054 : "NA_SE_VO_IN_CRY_0", + 0x6055 : "NA_SE_VO_IN_LOST", + 0x6056 : "NA_SE_VO_IN_LASH_0", + 0x6057 : "NA_SE_VO_IN_LASH_1", + 0x6058 : "NA_SE_VO_FR_LAUGH_0", + 0x6059 : "NA_SE_VO_FR_SMILE_0", + 0x605A : "NA_SE_VO_NB_AGONY", + 0x605B : "NA_SE_VO_NB_CRY_0", + 0x605C : "NA_SE_VO_NB_NOTICE", + 0x605D : "NA_SE_VO_NA_HELLO_0", + 0x605E : "NA_SE_VO_NA_HELLO_1", + 0x605F : "NA_SE_VO_NA_HELLO_2", + 0x6060 : "NA_SE_VO_RT_CRASH", + 0x6061 : "NA_SE_VO_RT_DISCOVER", + 0x6062 : "NA_SE_VO_RT_FALL", + 0x6063 : "NA_SE_VO_RT_LAUGH_0", + 0x6064 : "NA_SE_VO_RT_LIFT", + 0x6065 : "NA_SE_VO_RT_THROW", + 0x6066 : "NA_SE_VO_RT_UNBALLANCE", + 0x6067 : "NA_SE_VO_ST_DAMAGE", + 0x6068 : "NA_SE_VO_ST_ATTACK", + 0x6069 : "NA_SE_VO_Z0_HURRY", + 0x606A : "NA_SE_VO_Z0_MEET", + 0x606B : "NA_SE_VO_Z0_QUESTION", + 0x606C : "NA_SE_VO_Z0_SIGH_0", + 0x606D : "NA_SE_VO_Z0_SMILE_0", + 0x606E : "NA_SE_VO_Z0_SURPRISE", + 0x606F : "NA_SE_VO_Z0_THROW", + 0x6070 : "NA_SE_VO_SK_CRY_0", + 0x6071 : "NA_SE_VO_SK_CRY_1", + 0x6072 : "NA_SE_VO_SK_CRASH", + 0x6073 : "NA_SE_VO_SK_LAUGH", + 0x6074 : "NA_SE_VO_SK_SHOUT", + 0x6075 : "NA_SE_VO_Z1_CRY_0", + 0x6076 : "NA_SE_VO_Z1_CRY_1", + 0x6077 : "NA_SE_VO_Z1_OPENDOOR", + 0x6078 : "NA_SE_VO_Z1_SURPRISE", + 0x6079 : "NA_SE_VO_Z1_PAIN", + 0x607A : "NA_SE_VO_KZ_MOVE", + 0x607B : "NA_SE_VO_NB_LAUGH", + 0x607C : "NA_SE_VO_IN_LAUGH", + 0x607D : "NA_SE_VO_DUMMY_0x7d", + 0x607E : "NA_SE_VO_DUMMY_0x7e", + 0x607F : "NA_SE_VO_DUMMY_0x7f", +} def read4(data : bytes, p : int) -> int: return struct.unpack(">I", data[p:p+4])[0] -def read_sfx_ids(): - sfx_tables = ( - (0x0000, "playerbank_table.h"), - (0x1000, "itembank_table.h"), - (0x2000, "environmentbank_table.h"), - (0x3000, "enemybank_table.h"), - (0x4000, "systembank_table.h"), - (0x5000, "ocarinabank_table.h"), - (0x6000, "voicebank_table.h"), - ) - - sfx_ids = {} - - for base,header_name in sfx_tables: - contents = None - with open("include/tables/sfx/" + header_name, "r") as infile: - contents = infile.read() - contents = remove_comments(contents).replace("\\\n", "").strip() - value = base - for line in contents.split("\n"): - line = line.strip() - assert line.startswith("DEFINE_SFX(") and line.endswith(")") - line = line[len("DEFINE_SFX("):-len(")")] - args = [a.strip() for a in line.split(",")] - assert len(args) == 5 - sfx_ids[value] = args[0] - value += 1 - - return sfx_ids - def unique_or_none(lst : List[T]) -> Optional[T]: if not lst: return None @@ -230,8 +1448,7 @@ def unique_or_none(lst : List[T]) -> Optional[T]: return elem class MessageDecoder: - def __init__(self, sfx_ids : Dict[int,str], control_end : int, control_codes : Dict[int, Tuple[str, str, Optional[Tuple[Callable[[int], str]]]]], extraction_charmap : Dict[int, str]) -> None: - self.sfx_ids : Dict[int,str] = sfx_ids + def __init__(self, control_end : int, control_codes : Dict[int, Tuple[str, str, Optional[Tuple[Callable[[int], str]]]]], extraction_charmap : Dict[int, str]) -> None: self.control_end : int = control_end self.control_codes : Dict[int, Tuple[str, str, Optional[Tuple[Callable[[int], str]]]]] = control_codes self.extraction_charmap : Dict[int, str] = extraction_charmap @@ -269,9 +1486,9 @@ class MessageDecoder: def format_sfx_id(self, c : int) -> str: if c & 0x800: - return self.sfx_ids[c & ~0x800] + return sfx_ids[c & ~0x800] else: - return f"{self.sfx_ids[c]} - SFX_FLAG" + return f"{sfx_ids[c]} - SFX_FLAG" def format_item_id(self, c : int) -> str: return item_ids[c] @@ -487,7 +1704,7 @@ class MessageDecoder: }[c] class MessageDecoderJPN(MessageDecoder): - def __init__(self, sfx_ids : Dict[int, str]) -> None: + def __init__(self) -> None: control_end = 0x8170 control_codes = { 0x000A : ("NEWLINE", "", None), @@ -538,7 +1755,7 @@ class MessageDecoderJPN(MessageDecoder): # Possibly from a SHIFT-JIS extension, python doesn't have builtin support 0x86D3 : "┯", } - super().__init__(sfx_ids, control_end, control_codes, extraction_charmap) + super().__init__(control_end, control_codes, extraction_charmap) self.pop_char = self.pop_2byte self.pop_char_end = self.pop_2byte_end @@ -562,7 +1779,7 @@ class MessageDecoderJPN(MessageDecoder): }[c1] class MessageDecoderNES(MessageDecoder): - def __init__(self, sfx_ids : Dict[int, str]) -> None: + def __init__(self) -> None: control_end = 0x02 control_codes = { 0x01 : ("NEWLINE", "", None), @@ -643,7 +1860,7 @@ class MessageDecoderNES(MessageDecoder): 0xAA : '[Control-Pad]', 0xAB : '[D-Pad]', } - super().__init__(sfx_ids, control_end, control_codes, extraction_charmap) + super().__init__(control_end, control_codes, extraction_charmap) self.pop_char = self.pop_byte self.pop_char_end = self.pop_byte_end @@ -850,9 +2067,8 @@ def main(): code_bin = (baserom_segments_dir / "code").read_bytes() - sfx_ids = read_sfx_ids() - jpn_decoder = MessageDecoderJPN(sfx_ids) - nes_decoder = MessageDecoderNES(sfx_ids) + jpn_decoder = MessageDecoderJPN() + nes_decoder = MessageDecoderNES() message_tables : List[Optional[MessageTableDesc]] = [None for _ in range(4)] # JP, EN, FR, DE message_table_staff : MessageTableDesc = None From a30f130eb9e48d55d8d7c935fb708af1156fee42 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sat, 7 Sep 2024 05:10:52 -0700 Subject: [PATCH 37/86] Fix some boot and code data (#2155) --- baseroms/ntsc-1.2/config.yml | 20 ++++++++++---------- data/rsp.rodata.s | 2 ++ data/rsp.text.s | 6 ++++++ data/unk_80009410.data.s | 6 ++++++ spec | 11 ++++++++++- src/boot/z_std_dma.c | 3 +++ src/code/code_800FC620.c | 2 ++ 7 files changed, 39 insertions(+), 11 deletions(-) diff --git a/baseroms/ntsc-1.2/config.yml b/baseroms/ntsc-1.2/config.yml index fef7e941c6..a64d9547ec 100644 --- a/baseroms/ntsc-1.2/config.yml +++ b/baseroms/ntsc-1.2/config.yml @@ -11,18 +11,22 @@ incbins: - name: rspbootText segment: boot vram: 0x800065C0 - size: 0xD0 + size: 0x160 - name: aspMainText segment: code vram: 0x800E3600 size: 0xFB0 - - name: gspS2DEX2d_fifoText + - name: gspF3DZEX2_NoN_PosLight_fifoText segment: code vram: 0x800E45B0 + size: 0x1390 + - name: gspS2DEX2d_fifoText + segment: code + vram: 0x800E5940 size: 0x18C0 - name: njpgdspMainText segment: code - vram: 0x800E5E70 + vram: 0x800E7200 size: 0xAF0 - name: gSequenceFontTable segment: code @@ -36,21 +40,17 @@ incbins: segment: code vram: 0x80114990 size: 0x2E0 - - name: gspF3DZEX2_NoN_PosLight_fifoText - segment: code - vram: 0x80114C70 - size: 0x1630 - name: gspF3DZEX2_NoN_PosLight_fifoData segment: code - vram: 0x801162A0 + vram: 0x80114C70 size: 0x420 - name: gspS2DEX2d_fifoData segment: code - vram: 0x801166C0 + vram: 0x80115090 size: 0x390 - name: njpgdspMainData segment: code - vram: 0x80116A50 + vram: 0x80115420 size: 0x60 variables: gMtxClear: 0x800FF3F0 diff --git a/data/rsp.rodata.s b/data/rsp.rodata.s index bdb9fe9912..6688f7c627 100644 --- a/data/rsp.rodata.s +++ b/data/rsp.rodata.s @@ -13,9 +13,11 @@ glabel aspMainDataStart .incbin "incbin/aspMainData" glabel aspMainDataEnd +#if !PLATFORM_N64 glabel gspF3DZEX2_NoN_PosLight_fifoTextStart .incbin "incbin/gspF3DZEX2_NoN_PosLight_fifoText" glabel gspF3DZEX2_NoN_PosLight_fifoTextEnd +#endif glabel gspF3DZEX2_NoN_PosLight_fifoDataStart .incbin "incbin/gspF3DZEX2_NoN_PosLight_fifoData" diff --git a/data/rsp.text.s b/data/rsp.text.s index fcf48a2515..a40252853a 100644 --- a/data/rsp.text.s +++ b/data/rsp.text.s @@ -13,6 +13,12 @@ glabel aspMainTextStart .incbin "incbin/aspMainText" glabel aspMainTextEnd +#if PLATFORM_N64 +glabel gspF3DZEX2_NoN_PosLight_fifoTextStart + .incbin "incbin/gspF3DZEX2_NoN_PosLight_fifoText" +glabel gspF3DZEX2_NoN_PosLight_fifoTextEnd +#endif + glabel gspS2DEX2d_fifoTextStart .incbin "incbin/gspS2DEX2d_fifoText" glabel gspS2DEX2d_fifoTextEnd diff --git a/data/unk_80009410.data.s b/data/unk_80009410.data.s index 8ff273e224..175b179a58 100644 --- a/data/unk_80009410.data.s +++ b/data/unk_80009410.data.s @@ -13,9 +13,15 @@ glabel D_80009410 .word osStopThread .word __osSetHWIntrRoutine +#if PLATFORM_N64 + .word osEPiWriteIo + .word osEPiReadIo +#endif .word __osSetFpcCsr .word __osGetFpcCsr .word __osGetHWIntrRoutine .word __osSetHWIntrRoutine .word osViGetNextFramebuffer +#if !PLATFORM_N64 .word bcmp +#endif diff --git a/spec b/spec index b82247e1fa..378485e84b 100644 --- a/spec +++ b/spec @@ -129,6 +129,9 @@ beginseg include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" +#endif +#if PLATFORM_N64 + include "$(BUILD_DIR)/src/libultra/os/settimer.o" #endif include "$(BUILD_DIR)/src/libultra/io/sirawwrite.o" include "$(BUILD_DIR)/src/libultra/io/vimgr.o" @@ -730,8 +733,14 @@ beginseg #if !OOT_DEBUG include "$(BUILD_DIR)/src/libultra/io/pfsisplug.o" #endif +#if !PLATFORM_N64 include "$(BUILD_DIR)/src/libultra/os/settimer.o" -#if !OOT_DEBUG +#endif +#if PLATFORM_N64 + include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" + include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" + include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" +#elif !OOT_DEBUG include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" diff --git a/src/boot/z_std_dma.c b/src/boot/z_std_dma.c index 69d48eed92..1bd0f71701 100644 --- a/src/boot/z_std_dma.c +++ b/src/boot/z_std_dma.c @@ -33,8 +33,11 @@ OSMesgQueue sDmaMgrMsgQueue; OSMesg sDmaMgrMsgBuf[32]; OSThread sDmaMgrThread; STACK(sDmaMgrStack, 0x500); + +#if OOT_DEBUG const char* sDmaMgrCurFileName; s32 sDmaMgrCurFileLine; +#endif u32 gDmaMgrVerbose = 0; size_t gDmaMgrDmaBuffSize = DMAMGR_DEFAULT_BUFSIZE; diff --git a/src/code/code_800FC620.c b/src/code/code_800FC620.c index 4d7b7b4efe..373f1d53c6 100644 --- a/src/code/code_800FC620.c +++ b/src/code/code_800FC620.c @@ -20,10 +20,12 @@ char sNew[] = "new"; char sNew[] = ""; #endif +#if !PLATFORM_N64 char D_80134488[0x18] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, }; +#endif // possibly some kind of new() function void* func_800FC800(u32 size) { From 88c447596742f39cdd6e604b162b8ace16c7f720 Mon Sep 17 00:00:00 2001 From: fig02 Date: Sat, 7 Sep 2024 09:23:04 -0400 Subject: [PATCH 38/86] Target -> Attention (System Rename) (#2149) * TargetContext -> Attention * targetCtx -> attention * Target_ -> Attention_ * FindTargetableActor -> FindActor * targetableActorP -> attentionActorP * data vars (and 1 function I missed) * targetMode -> attentionRangeType * attention range enum comments * ATTENTION_RANGE_ * attention range data * TargetColor -> AttentionColor * missed one * fixup color variables * targetArrowOffset -> lockOnArrowOffset * focus pos comment * targetPriority -> attentionPriority * assets * loose-ends * Attention System Description * format * skj range type * enemy bgm --- assets/xml/objects/gameplay_keep.xml | 4 +- assets/xml/objects/gameplay_keep_pal.xml | 4 +- include/functions.h | 6 +- include/z64actor.h | 57 ++- src/code/z_actor.c | 391 +++++++++--------- src/code/z_en_a_keep.c | 4 +- src/code/z_en_item00.c | 2 +- src/code/z_parameter.c | 2 +- .../ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c | 2 +- .../ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c | 2 +- .../z_bg_jya_bombchuiwa.c | 6 +- .../ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c | 9 +- .../actors/ovl_Bg_Treemouth/z_bg_treemouth.c | 6 +- .../actors/ovl_Boss_Dodongo/z_boss_dodongo.c | 4 +- src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c | 4 +- src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c | 4 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 4 +- .../ovl_Boss_Ganondrof/z_boss_ganondrof.c | 4 +- .../actors/ovl_Boss_Goma/z_boss_goma.c | 2 +- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 4 +- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 6 +- src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 4 +- src/overlays/actors/ovl_Boss_Va/z_boss_va.c | 2 +- src/overlays/actors/ovl_Door_Ana/z_door_ana.c | 8 +- src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c | 2 +- src/overlays/actors/ovl_En_Am/z_en_am.c | 2 +- .../actors/ovl_En_Anubice/z_en_anubice.c | 2 +- .../ovl_En_Attack_Niw/z_en_attack_niw.c | 4 +- src/overlays/actors/ovl_En_Ba/z_en_ba.c | 4 +- src/overlays/actors/ovl_En_Bb/z_en_bb.c | 2 +- .../actors/ovl_En_Bigokuta/z_en_bigokuta.c | 4 +- src/overlays/actors/ovl_En_Bili/z_en_bili.c | 2 +- src/overlays/actors/ovl_En_Bird/z_en_bird.c | 2 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 2 +- .../ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c | 2 +- .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 2 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 2 +- src/overlays/actors/ovl_En_Boom/z_en_boom.c | 2 +- src/overlays/actors/ovl_En_Box/z_en_box.c | 2 +- src/overlays/actors/ovl_En_Bx/z_en_bx.c | 2 +- .../actors/ovl_En_Clear_Tag/z_en_clear_tag.c | 2 +- src/overlays/actors/ovl_En_Cow/z_en_cow.c | 2 +- src/overlays/actors/ovl_En_Crow/z_en_crow.c | 6 +- src/overlays/actors/ovl_En_Cs/z_en_cs.c | 2 +- src/overlays/actors/ovl_En_Daiku/z_en_daiku.c | 2 +- .../z_en_daiku_kakariko.c | 2 +- .../actors/ovl_En_Dekubaba/z_en_dekubaba.c | 6 +- .../actors/ovl_En_Dekunuts/z_en_dekunuts.c | 2 +- src/overlays/actors/ovl_En_Dh/z_en_dh.c | 2 +- src/overlays/actors/ovl_En_Dha/z_en_dha.c | 2 +- .../ovl_En_Diving_Game/z_en_diving_game.c | 2 +- src/overlays/actors/ovl_En_Dns/z_en_dns.c | 4 +- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 2 +- .../actors/ovl_En_Dodongo/z_en_dodongo.c | 4 +- src/overlays/actors/ovl_En_Door/z_en_door.c | 2 +- src/overlays/actors/ovl_En_Ds/z_en_ds.c | 2 +- src/overlays/actors/ovl_En_Du/z_en_du.c | 2 +- src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c | 2 +- src/overlays/actors/ovl_En_Elf/z_en_elf.c | 22 +- .../actors/ovl_En_Firefly/z_en_firefly.c | 4 +- .../actors/ovl_En_Floormas/z_en_floormas.c | 2 +- src/overlays/actors/ovl_En_Fr/z_en_fr.c | 4 +- src/overlays/actors/ovl_En_Fu/z_en_fu.c | 2 +- src/overlays/actors/ovl_En_Fz/z_en_fz.c | 4 +- src/overlays/actors/ovl_En_Gb/z_en_gb.c | 4 +- src/overlays/actors/ovl_En_Ge1/z_en_ge1.c | 4 +- src/overlays/actors/ovl_En_Ge2/z_en_ge2.c | 10 +- src/overlays/actors/ovl_En_Ge3/z_en_ge3.c | 2 +- src/overlays/actors/ovl_En_GeldB/z_en_geldb.c | 2 +- src/overlays/actors/ovl_En_Gm/z_en_gm.c | 4 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 4 +- src/overlays/actors/ovl_En_Go2/z_en_go2.c | 2 +- src/overlays/actors/ovl_En_Goma/z_en_goma.c | 4 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 2 +- src/overlays/actors/ovl_En_Guest/z_en_guest.c | 4 +- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 2 +- .../actors/ovl_En_Heishi3/z_en_heishi3.c | 2 +- .../actors/ovl_En_Heishi4/z_en_heishi4.c | 2 +- .../actors/ovl_En_Hintnuts/z_en_hintnuts.c | 2 +- src/overlays/actors/ovl_En_Hs/z_en_hs.c | 2 +- src/overlays/actors/ovl_En_Hs2/z_en_hs2.c | 2 +- src/overlays/actors/ovl_En_Hy/z_en_hy.c | 4 +- .../actors/ovl_En_Ice_Hono/z_en_ice_hono.c | 6 +- src/overlays/actors/ovl_En_In/z_en_in.c | 8 +- .../actors/ovl_En_Kakasi/z_en_kakasi.c | 2 +- .../actors/ovl_En_Kakasi2/z_en_kakasi2.c | 2 +- .../actors/ovl_En_Kakasi3/z_en_kakasi3.c | 2 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 2 +- .../actors/ovl_En_Karebaba/z_en_karebaba.c | 4 +- src/overlays/actors/ovl_En_Ko/z_en_ko.c | 4 +- src/overlays/actors/ovl_En_Kz/z_en_kz.c | 2 +- .../actors/ovl_En_Lightbox/z_en_lightbox.c | 2 +- src/overlays/actors/ovl_En_Ma1/z_en_ma1.c | 2 +- src/overlays/actors/ovl_En_Ma2/z_en_ma2.c | 2 +- src/overlays/actors/ovl_En_Mb/z_en_mb.c | 2 +- src/overlays/actors/ovl_En_Md/z_en_md.c | 2 +- src/overlays/actors/ovl_En_Mk/z_en_mk.c | 2 +- src/overlays/actors/ovl_En_Mm/z_en_mm.c | 2 +- src/overlays/actors/ovl_En_Mm2/z_en_mm2.c | 2 +- src/overlays/actors/ovl_En_Ms/z_en_ms.c | 6 +- src/overlays/actors/ovl_En_Mu/z_en_mu.c | 2 +- src/overlays/actors/ovl_En_Niw/z_en_niw.c | 4 +- .../actors/ovl_En_Niw_Girl/z_en_niw_girl.c | 2 +- .../actors/ovl_En_Niw_Lady/z_en_niw_lady.c | 2 +- src/overlays/actors/ovl_En_Ny/z_en_ny.c | 4 +- .../ovl_En_Okarina_Tag/z_en_okarina_tag.c | 2 +- src/overlays/actors/ovl_En_Okuta/z_en_okuta.c | 2 +- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 4 +- src/overlays/actors/ovl_En_Owl/z_en_owl.c | 2 +- .../actors/ovl_En_Peehat/z_en_peehat.c | 2 +- .../actors/ovl_En_Po_Desert/z_en_po_desert.c | 2 +- .../actors/ovl_En_Po_Field/z_en_po_field.c | 2 +- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 2 +- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 2 +- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 2 +- .../actors/ovl_En_Pu_box/z_en_pu_box.c | 2 +- src/overlays/actors/ovl_En_Rd/z_en_rd.c | 8 +- src/overlays/actors/ovl_En_Reeba/z_en_reeba.c | 2 +- src/overlays/actors/ovl_En_Rr/z_en_rr.c | 4 +- src/overlays/actors/ovl_En_Sa/z_en_sa.c | 2 +- src/overlays/actors/ovl_En_Sb/z_en_sb.c | 4 +- .../actors/ovl_En_Shopnuts/z_en_shopnuts.c | 2 +- src/overlays/actors/ovl_En_Skb/z_en_skb.c | 2 +- src/overlays/actors/ovl_En_Skj/z_en_skj.c | 6 +- .../actors/ovl_En_Skjneedle/z_en_skjneedle.c | 4 +- src/overlays/actors/ovl_En_Sth/z_en_sth.c | 2 +- .../ovl_En_Syateki_Man/z_en_syateki_man.c | 2 +- .../ovl_En_Syateki_Niw/z_en_syateki_niw.c | 4 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 2 +- .../ovl_En_Takara_Man/z_en_takara_man.c | 2 +- src/overlays/actors/ovl_En_Test/z_en_test.c | 2 +- src/overlays/actors/ovl_En_Tg/z_en_tg.c | 2 +- src/overlays/actors/ovl_En_Tite/z_en_tite.c | 4 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 2 +- src/overlays/actors/ovl_En_Toryo/z_en_toryo.c | 2 +- src/overlays/actors/ovl_En_Tp/z_en_tp.c | 4 +- src/overlays/actors/ovl_En_Trap/z_en_trap.c | 2 +- src/overlays/actors/ovl_En_Vali/z_en_vali.c | 2 +- .../actors/ovl_En_Wallmas/z_en_wallmas.c | 2 +- .../actors/ovl_En_Weiyer/z_en_weiyer.c | 2 +- src/overlays/actors/ovl_En_Wf/z_en_wf.c | 2 +- .../ovl_En_Wonder_Item/z_en_wonder_item.c | 2 +- .../ovl_En_Wonder_Talk/z_en_wonder_talk.c | 2 +- .../ovl_En_Wonder_Talk2/z_en_wonder_talk2.c | 6 +- .../actors/ovl_En_Wood02/z_en_wood02.c | 2 +- .../ovl_En_Yabusame_Mark/z_en_yabusame_mark.c | 2 +- .../actors/ovl_En_Yukabyun/z_en_yukabyun.c | 2 +- src/overlays/actors/ovl_En_Zf/z_en_zf.c | 4 +- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 2 +- src/overlays/actors/ovl_En_Zl4/z_en_zl4.c | 2 +- src/overlays/actors/ovl_En_Zo/z_en_zo.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 6 +- .../actors/ovl_Obj_Switch/z_obj_switch.c | 2 +- .../ovl_Obj_Timeblock/z_obj_timeblock.c | 2 +- .../actors/ovl_player_actor/z_player.c | 20 +- tools/disasm/ntsc-1.2/functions.txt | 24 +- 156 files changed, 497 insertions(+), 470 deletions(-) diff --git a/assets/xml/objects/gameplay_keep.xml b/assets/xml/objects/gameplay_keep.xml index fa68e72853..dcb7e29605 100644 --- a/assets/xml/objects/gameplay_keep.xml +++ b/assets/xml/objects/gameplay_keep.xml @@ -647,7 +647,7 @@ - + @@ -968,7 +968,7 @@ - + diff --git a/assets/xml/objects/gameplay_keep_pal.xml b/assets/xml/objects/gameplay_keep_pal.xml index f5c0c9e683..fbea0efd0c 100644 --- a/assets/xml/objects/gameplay_keep_pal.xml +++ b/assets/xml/objects/gameplay_keep_pal.xml @@ -644,7 +644,7 @@ - + @@ -934,7 +934,7 @@ - + diff --git a/include/functions.h b/include/functions.h index 3030455cb5..403cd89b26 100644 --- a/include/functions.h +++ b/include/functions.h @@ -309,7 +309,7 @@ void ActorShadow_DrawFeet(Actor* actor, Lights* lights, PlayState* play); void Actor_SetFeetPos(Actor* actor, s32 limbIndex, s32 leftFootIndex, Vec3f* leftFootPos, s32 rightFootIndex, Vec3f* rightFootPos); void Actor_ProjectPos(PlayState* play, Vec3f* src, Vec3f* xyzDest, f32* cappedInvWDest); -void Target_Draw(TargetContext* targetCtx, PlayState* play); +void Attention_Draw(Attention* attention, PlayState* play); s32 Flags_GetSwitch(PlayState* play, s32 flag); void Flags_SetSwitch(PlayState* play, s32 flag); void Flags_UnsetSwitch(PlayState* play, s32 flag); @@ -382,7 +382,7 @@ void func_8002ED80(Actor* actor, PlayState* play, s32 flag); PosRot Actor_GetFocus(Actor* actor); PosRot Actor_GetWorld(Actor* actor); PosRot Actor_GetWorldPosShapeRot(Actor* actor); -s32 Target_ShouldReleaseLockOn(Actor* actor, Player* player, s32 ignoreLeash); +s32 Attention_ShouldReleaseLockOn(Actor* actor, Player* player, s32 ignoreLeash); s32 Actor_TalkOfferAccepted(Actor* actor, PlayState* play); s32 Actor_OfferTalkExchange(Actor* actor, PlayState* play, f32 xzRange, f32 yRange, u32 exchangeItemId); s32 Actor_OfferTalkExchangeEquiCylinder(Actor* actor, PlayState* play, f32 radius, u32 exchangeItemId); @@ -430,7 +430,7 @@ Actor* Actor_SpawnAsChild(ActorContext* actorCtx, Actor* parent, PlayState* play void Actor_SpawnTransitionActors(PlayState* play, ActorContext* actorCtx); Actor* Actor_SpawnEntry(ActorContext* actorCtx, ActorEntry* actorEntry, PlayState* play); Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play); -Actor* Target_FindTargetableActor(PlayState* play, ActorContext* actorCtx, Actor** targetableActorP, Player* player); +Actor* Attention_FindActor(PlayState* play, ActorContext* actorCtx, Actor** attentionActorP, Player* player); Actor* Actor_Find(ActorContext* actorCtx, s32 actorId, s32 actorCategory); void Enemy_StartFinishingBlow(PlayState* play, Actor* actor); void BodyBreak_Alloc(BodyBreak* bodyBreak, s32 count, PlayState* play); diff --git a/include/z64actor.h b/include/z64actor.h index 7c97987dc6..c076ece293 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -224,11 +224,11 @@ typedef struct Actor { /* 0x008 */ PosRot home; // Initial position/rotation when spawned. Can be used for other purposes /* 0x01C */ s16 params; // Configurable variable set by the actor's spawn data; original name: "args_data" /* 0x01E */ s8 objectSlot; // Object slot (in ObjectContext) corresponding to the actor's object; original name: "bank" - /* 0x01F */ s8 targetMode; // Controls how far the actor can be targeted from and how far it can stay locked on + /* 0x01F */ s8 attentionRangeType; // Controls the attention actor range and the lock-on leash range. See `AttentionRangeType`. /* 0x020 */ u16 sfx; // SFX ID to play. Sfx plays when value is set, then is cleared the following update cycle /* 0x024 */ PosRot world; // Position/rotation in the world - /* 0x038 */ PosRot focus; // Target reticle focuses on this position. For player this represents head pos and rot - /* 0x04C */ f32 targetArrowOffset; // Height offset of the target arrow relative to `focus` position + /* 0x038 */ PosRot focus; // Player + camera focus pos during lock-on, among other uses. For player this represents head pos and rot. + /* 0x04C */ f32 lockOnArrowOffset; // Height offset of the lock-on arrow relative to `focus` position /* 0x050 */ Vec3f scale; // Scale of the actor in each axis /* 0x05C */ Vec3f velocity; // Velocity of the actor in each axis /* 0x068 */ f32 speed; // Context dependent speed value. Can be used for XZ or XYZ depending on which move function is used @@ -255,7 +255,7 @@ typedef struct Actor { /* 0x0FC */ f32 uncullZoneDownward; // Amount to increase uncull zone downward by (in projected space) /* 0x100 */ Vec3f prevPos; // World position from the previous update cycle /* 0x10C */ u8 isLockedOn; // Set to true if the actor is currently locked-on by Player - /* 0x10D */ u8 targetPriority; // Lower values have higher priority. Resets to 0 when player stops targeting + /* 0x10D */ u8 attentionPriority; // Lower values have higher priority. Resets to 0 when lock-on is released. /* 0x10E */ u16 textId; // Text ID to pass to player/display when interacting with the actor /* 0x110 */ u16 freezeTimer; // Actor does not update when set. Timer decrements automatically /* 0x112 */ u16 colorFilterParams; // Set color filter to red, blue, or white. Toggle opa or xlu @@ -538,6 +538,20 @@ typedef enum NaviEnemy { /* 0xFF */ NAVI_ENEMY_NONE = 0xFF } NaviEnemy; +/** + * Attention System + * + * The Attention System's responsibility is to bring specific actors to the player's attention. + * This includes: + * - Making Navi fly over to certain actors of interest (can be lock-on actors, but may also not be) + * - Displaying an arrow over an actor that can be locked onto + * - Displaying a reticle over the current lock-on actor + * - Playing enemy background music if a hostile actor is nearby + * + * This system does not handle the actual lock-on implementation. + * That is the responsibility of Player via `player->focusActor` and the camera. + */ + // A set of 4 triangles which appear as a ring around an actor when locked-on typedef struct LockOnReticle { /* 0x00 */ Vec3f pos; @@ -545,7 +559,7 @@ typedef struct LockOnReticle { /* 0x10 */ Color_RGB8 color; } LockOnReticle; // size = 0x14 -typedef struct TargetContext { +typedef struct Attention { /* 0x00 */ Vec3f naviHoverPos; // Navi's current hover position /* 0x0C */ Vec3f reticlePos; // Main reticle pos which each `LockOnReticle` instance can reference /* 0x18 */ Color_RGBAf naviInnerColor; // Navi inner color, based on actor category @@ -562,21 +576,24 @@ typedef struct TargetContext { /* 0x8C */ Actor* forcedLockOnActor; // Forces lock-on to this actor when set (never used in practice) /* 0x90 */ Actor* bgmEnemy; // The nearest actor which can trigger enemy background music /* 0x94 */ Actor* arrowHoverActor; // Actor to draw an arrow over -} TargetContext; // size = 0x98 +} Attention; // size = 0x98 -typedef enum { - /* 0 */ TARGET_MODE_0, - /* 1 */ TARGET_MODE_1, - /* 2 */ TARGET_MODE_2, - /* 3 */ TARGET_MODE_3, // Used as the default for new actors - /* 4 */ TARGET_MODE_4, - /* 5 */ TARGET_MODE_5, - /* 6 */ TARGET_MODE_6, - /* 7 */ TARGET_MODE_7, - /* 8 */ TARGET_MODE_8, - /* 9 */ TARGET_MODE_9, - /* 10 */ TARGET_MODE_MAX -} TargetMode; +// It is difficult to give each type a name because it is numerically based +// and there are so many different combinations. +// Each type has a comment of the form "attention range / lock-on leash range" +typedef enum AttentionRangeType { + /* 0 */ ATTENTION_RANGE_0, // 70 / 140 + /* 1 */ ATTENTION_RANGE_1, // 170 / 255 + /* 2 */ ATTENTION_RANGE_2, // 280 / 5600 + /* 3 */ ATTENTION_RANGE_3, // 350 / 525 (default) + /* 4 */ ATTENTION_RANGE_4, // 700 / 1050 + /* 5 */ ATTENTION_RANGE_5, // 1000 / 1500 + /* 6 */ ATTENTION_RANGE_6, // 100 / 105.36842 + /* 7 */ ATTENTION_RANGE_7, // 140 / 163.33333 + /* 8 */ ATTENTION_RANGE_8, // 240 / 576 + /* 9 */ ATTENTION_RANGE_9, // 280 / 280000 + /* 10 */ ATTENTION_RANGE_MAX +} AttentionRangeType; typedef struct TitleCardContext { /* 0x00 */ void* texture; @@ -615,7 +632,7 @@ typedef struct ActorContext { /* 0x004 */ char unk_04[0x04]; /* 0x008 */ u8 total; // total number of actors loaded /* 0x00C */ ActorListEntry actorLists[ACTORCAT_MAX]; - /* 0x06C */ TargetContext targetCtx; + /* 0x06C */ Attention attention; /* 0x104 */ ActorContextSceneFlags flags; /* 0x128 */ TitleCardContext titleCtx; /* 0x138 */ char unk_138[0x04]; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 0624815ffb..fd5eb6806c 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -236,12 +236,12 @@ void Actor_ProjectPos(PlayState* play, Vec3f* src, Vec3f* xyzDest, f32* cappedIn *cappedInvWDest = (*cappedInvWDest < 1.0f) ? 1.0f : (1.0f / *cappedInvWDest); } -typedef struct TargetColor { - /* 0x00 */ Color_RGBA8 inner; - /* 0x04 */ Color_RGBA8 outer; -} TargetColor; // size = 0x8 +typedef struct AttentionColor { + /* 0x00 */ Color_RGBA8 primary; // Used for Navi's inner color, lock-on arrow, and lock-on reticle + /* 0x04 */ Color_RGBA8 secondary; // Used for Navi's outer color +} AttentionColor; // size = 0x8 -TargetColor sTargetColorList[ACTORCAT_MAX + 1] = { +AttentionColor sAttentionColors[ACTORCAT_MAX + 1] = { { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_SWITCH { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_BG { { 255, 255, 255, 255 }, { 0, 0, 255, 0 } }, // ACTORCAT_PLAYER @@ -262,72 +262,72 @@ Gfx D_80115FF0[] = { gsSPEndDisplayList(), }; -void Target_SetReticlePos(TargetContext* targetCtx, s32 reticleNum, f32 x, f32 y, f32 z) { - targetCtx->lockOnReticles[reticleNum].pos.x = x; - targetCtx->lockOnReticles[reticleNum].pos.y = y; - targetCtx->lockOnReticles[reticleNum].pos.z = z; +void Attention_SetReticlePos(Attention* attention, s32 reticleNum, f32 x, f32 y, f32 z) { + attention->lockOnReticles[reticleNum].pos.x = x; + attention->lockOnReticles[reticleNum].pos.y = y; + attention->lockOnReticles[reticleNum].pos.z = z; - targetCtx->lockOnReticles[reticleNum].radius = targetCtx->reticleRadius; + attention->lockOnReticles[reticleNum].radius = attention->reticleRadius; } -void Target_InitReticle(TargetContext* targetCtx, s32 actorCategory, PlayState* play) { +void Attention_InitReticle(Attention* attention, s32 actorCategory, PlayState* play) { LockOnReticle* reticle; - TargetColor* reticleColor = &sTargetColorList[actorCategory]; + AttentionColor* attentionColor = &sAttentionColors[actorCategory]; s32 i; - Math_Vec3f_Copy(&targetCtx->reticlePos, &play->view.eye); + Math_Vec3f_Copy(&attention->reticlePos, &play->view.eye); - targetCtx->reticleRadius = 500.0f; // radius starts wide to zoom in on the actor - targetCtx->reticleFadeAlphaControl = 256; + attention->reticleRadius = 500.0f; // radius starts wide to zoom in on the actor + attention->reticleFadeAlphaControl = 256; - reticle = &targetCtx->lockOnReticles[0]; + reticle = &attention->lockOnReticles[0]; - for (i = 0; i < ARRAY_COUNT(targetCtx->lockOnReticles); i++, reticle++) { - Target_SetReticlePos(targetCtx, i, 0.0f, 0.0f, 0.0f); + for (i = 0; i < ARRAY_COUNT(attention->lockOnReticles); i++, reticle++) { + Attention_SetReticlePos(attention, i, 0.0f, 0.0f, 0.0f); - reticle->color.r = reticleColor->inner.r; - reticle->color.g = reticleColor->inner.g; - reticle->color.b = reticleColor->inner.b; + reticle->color.r = attentionColor->primary.r; + reticle->color.g = attentionColor->primary.g; + reticle->color.b = attentionColor->primary.b; } } -void Target_SetNaviState(TargetContext* targetCtx, Actor* actor, s32 actorCategory, PlayState* play) { - TargetColor* targetColor = &sTargetColorList[actorCategory]; +void Attention_SetNaviState(Attention* attention, Actor* actor, s32 actorCategory, PlayState* play) { + AttentionColor* attentionColor = &sAttentionColors[actorCategory]; - targetCtx->naviHoverPos.x = actor->focus.pos.x; - targetCtx->naviHoverPos.y = actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y); - targetCtx->naviHoverPos.z = actor->focus.pos.z; + attention->naviHoverPos.x = actor->focus.pos.x; + attention->naviHoverPos.y = actor->focus.pos.y + (actor->lockOnArrowOffset * actor->scale.y); + attention->naviHoverPos.z = actor->focus.pos.z; - targetCtx->naviInnerColor.r = targetColor->inner.r; - targetCtx->naviInnerColor.g = targetColor->inner.g; - targetCtx->naviInnerColor.b = targetColor->inner.b; - targetCtx->naviInnerColor.a = targetColor->inner.a; + attention->naviInnerColor.r = attentionColor->primary.r; + attention->naviInnerColor.g = attentionColor->primary.g; + attention->naviInnerColor.b = attentionColor->primary.b; + attention->naviInnerColor.a = attentionColor->primary.a; - targetCtx->naviOuterColor.r = targetColor->outer.r; - targetCtx->naviOuterColor.g = targetColor->outer.g; - targetCtx->naviOuterColor.b = targetColor->outer.b; - targetCtx->naviOuterColor.a = targetColor->outer.a; + attention->naviOuterColor.r = attentionColor->secondary.r; + attention->naviOuterColor.g = attentionColor->secondary.g; + attention->naviOuterColor.b = attentionColor->secondary.b; + attention->naviOuterColor.a = attentionColor->secondary.a; } -void Target_Init(TargetContext* targetCtx, Actor* actor, PlayState* play) { - targetCtx->naviHoverActor = targetCtx->reticleActor = targetCtx->forcedLockOnActor = targetCtx->bgmEnemy = NULL; +void Attention_Init(Attention* attention, Actor* actor, PlayState* play) { + attention->naviHoverActor = attention->reticleActor = attention->forcedLockOnActor = attention->bgmEnemy = NULL; - targetCtx->reticleSpinCounter = 0; - targetCtx->curReticle = 0; - targetCtx->naviMoveProgressFactor = 0.0f; + attention->reticleSpinCounter = 0; + attention->curReticle = 0; + attention->naviMoveProgressFactor = 0.0f; - Target_SetNaviState(targetCtx, actor, actor->category, play); - Target_InitReticle(targetCtx, actor->category, play); + Attention_SetNaviState(attention, actor, actor->category, play); + Attention_InitReticle(attention, actor->category, play); } -void Target_Draw(TargetContext* targetCtx, PlayState* play) { +void Attention_Draw(Attention* attention, PlayState* play) { Actor* actor; // used for both the reticle actor and arrow hover actor - actor = targetCtx->reticleActor; + actor = attention->reticleActor; OPEN_DISPS(play->state.gfxCtx, "../z_actor.c", 2029); - if (targetCtx->reticleFadeAlphaControl != 0) { + if (attention->reticleFadeAlphaControl != 0) { LockOnReticle* reticle; Player* player = GET_PLAYER(play); s16 alpha; @@ -343,32 +343,32 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { alpha = 255; projectdPosScale = 1.0f; - if (targetCtx->reticleSpinCounter != 0) { + if (attention->reticleSpinCounter != 0) { // Reticle is spinning so it is active, only need to draw one numReticles = 1; } else { // Use multiple reticles for the motion blur effect from the reticle // quickly zooming in on an actor from off screen - numReticles = ARRAY_COUNT(targetCtx->lockOnReticles); + numReticles = ARRAY_COUNT(attention->lockOnReticles); } if (actor != NULL) { - Math_Vec3f_Copy(&targetCtx->reticlePos, &actor->focus.pos); - projectdPosScale = (500.0f - targetCtx->reticleRadius) / 420.0f; + Math_Vec3f_Copy(&attention->reticlePos, &actor->focus.pos); + projectdPosScale = (500.0f - attention->reticleRadius) / 420.0f; } else { // Not locked on, start fading out - targetCtx->reticleFadeAlphaControl -= 120; + attention->reticleFadeAlphaControl -= 120; - if (targetCtx->reticleFadeAlphaControl < 0) { - targetCtx->reticleFadeAlphaControl = 0; + if (attention->reticleFadeAlphaControl < 0) { + attention->reticleFadeAlphaControl = 0; } // `reticleFadeAlphaControl` is only used as an alpha when fading out. // Otherwise it defaults to 255, set above. - alpha = targetCtx->reticleFadeAlphaControl; + alpha = attention->reticleFadeAlphaControl; } - Actor_ProjectPos(play, &targetCtx->reticlePos, &projectedPos, &invW); + Actor_ProjectPos(play, &attention->reticlePos, &projectedPos, &invW); projectedPos.x = ((SCREEN_WIDTH / 2) * (projectedPos.x * invW)) * projectdPosScale; projectedPos.x = CLAMP(projectedPos.x, -SCREEN_WIDTH, SCREEN_WIDTH); @@ -378,20 +378,20 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { projectedPos.z *= projectdPosScale; - targetCtx->curReticle--; + attention->curReticle--; - if (targetCtx->curReticle < 0) { - targetCtx->curReticle = ARRAY_COUNT(targetCtx->lockOnReticles) - 1; + if (attention->curReticle < 0) { + attention->curReticle = ARRAY_COUNT(attention->lockOnReticles) - 1; } - Target_SetReticlePos(targetCtx, targetCtx->curReticle, projectedPos.x, projectedPos.y, projectedPos.z); + Attention_SetReticlePos(attention, attention->curReticle, projectedPos.x, projectedPos.y, projectedPos.z); if (!(player->stateFlags1 & PLAYER_STATE1_6) || (actor != player->focusActor)) { OVERLAY_DISP = Gfx_SetupDL(OVERLAY_DISP, SETUPDL_57); - for (i = 0, curReticle = targetCtx->curReticle; i < numReticles; - i++, curReticle = (curReticle + 1) % ARRAY_COUNT(targetCtx->lockOnReticles)) { - reticle = &targetCtx->lockOnReticles[curReticle]; + for (i = 0, curReticle = attention->curReticle; i < numReticles; + i++, curReticle = (curReticle + 1) % ARRAY_COUNT(attention->lockOnReticles)) { + reticle = &attention->lockOnReticles[curReticle]; if (reticle->radius < 500.0f) { if (reticle->radius <= 120.0f) { @@ -406,7 +406,7 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { gDPSetPrimColor(OVERLAY_DISP++, 0, 0, reticle->color.r, reticle->color.g, reticle->color.b, (u8)alpha); - Matrix_RotateZ((targetCtx->reticleSpinCounter & 0x7F) * (M_PI / 64), MTXMODE_APPLY); + Matrix_RotateZ((attention->reticleSpinCounter & 0x7F) * (M_PI / 64), MTXMODE_APPLY); // Draw the 4 triangles that make up the reticle for (triangleIndex = 0; triangleIndex < 4; triangleIndex++) { @@ -415,12 +415,12 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { Matrix_Translate(reticle->radius, reticle->radius, 0.0f, MTXMODE_APPLY); gSPMatrix(OVERLAY_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 2116), G_MTX_MODELVIEW | G_MTX_LOAD); - gSPDisplayList(OVERLAY_DISP++, gZTargetLockOnTriangleDL); + gSPDisplayList(OVERLAY_DISP++, gLockOnReticleTriangleDL); Matrix_Pop(); } } - alpha -= 255 / ARRAY_COUNT(targetCtx->lockOnReticles); + alpha -= 255 / ARRAY_COUNT(attention->lockOnReticles); if (alpha < 0) { alpha = 0; @@ -429,27 +429,28 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { } } - actor = targetCtx->arrowHoverActor; + actor = attention->arrowHoverActor; if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_27)) { - TargetColor* arrowColor = &sTargetColorList[actor->category]; + AttentionColor* attentionColor = &sAttentionColors[actor->category]; POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_7); - Matrix_Translate(actor->focus.pos.x, actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y) + 17.0f, + Matrix_Translate(actor->focus.pos.x, actor->focus.pos.y + (actor->lockOnArrowOffset * actor->scale.y) + 17.0f, actor->focus.pos.z, MTXMODE_NEW); Matrix_RotateY(BINANG_TO_RAD((u16)(play->gameplayFrames * 3000)), MTXMODE_APPLY); Matrix_Scale((iREG(27) + 35) / 1000.0f, (iREG(28) + 60) / 1000.0f, (iREG(29) + 50) / 1000.0f, MTXMODE_APPLY); - gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, arrowColor->inner.r, arrowColor->inner.g, arrowColor->inner.b, 255); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, attentionColor->primary.r, attentionColor->primary.g, + attentionColor->primary.b, 255); gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 2153), G_MTX_MODELVIEW | G_MTX_LOAD); - gSPDisplayList(POLY_XLU_DISP++, gZTargetArrowDL); + gSPDisplayList(POLY_XLU_DISP++, gLockOnArrowDL); } CLOSE_DISPS(play->state.gfxCtx, "../z_actor.c", 2158); } -void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusActor, PlayState* play) { +void Attention_Update(Attention* attention, Player* player, Actor* playerFocusActor, PlayState* play) { s32 pad; Actor* actor; // used for both the Navi hover actor and reticle actor s32 category; @@ -460,23 +461,24 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusA if ((player->focusActor != NULL) && (player->controlStickDirections[player->controlStickDataIndex] == PLAYER_STICK_DIR_BACKWARD)) { - // Holding backward on the control stick prevents an arrow appearing over the next targetable actor. - // This helps escape a targeting loop when using Switch Targeting, but note that this still works for + // Holding backward on the control stick prevents an arrow appearing over the next lock-on actor. + // This helps escape a lock-on loop when using Switch Targeting, but note that this still works for // Hold Targeting as well. - targetCtx->arrowHoverActor = NULL; + attention->arrowHoverActor = NULL; } else { - // Find the next targetable actor and draw an arrow over it - Target_FindTargetableActor(play, &play->actorCtx, &actor, player); - targetCtx->arrowHoverActor = actor; + // Find the next attention actor so Navi and an arrow can hover over it (if applicable) + Attention_FindActor(play, &play->actorCtx, &actor, player); + attention->arrowHoverActor = actor; } - if (targetCtx->forcedLockOnActor != NULL) { + if (attention->forcedLockOnActor != NULL) { // This lock-on actor takes precedence over anything else // (this feature is never used in practice) - actor = targetCtx->forcedLockOnActor; - targetCtx->forcedLockOnActor = NULL; + actor = attention->forcedLockOnActor; + attention->forcedLockOnActor = NULL; } else if (playerFocusActor != NULL) { - // Stay locked-on to the same actor + // Stay locked-on to the same actor, if there is one. + // This also makes Navi fly over to the current focus actor, if there is one. actor = playerFocusActor; } @@ -486,11 +488,11 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusA category = player->actor.category; } - if ((actor != targetCtx->naviHoverActor) || (category != targetCtx->naviHoverActorCategory)) { + if ((actor != attention->naviHoverActor) || (category != attention->naviHoverActorCategory)) { // Set Navi to hover over a new actor - targetCtx->naviHoverActor = actor; - targetCtx->naviHoverActorCategory = category; - targetCtx->naviMoveProgressFactor = 1.0f; + attention->naviHoverActor = actor; + attention->naviHoverActorCategory = category; + attention->naviMoveProgressFactor = 1.0f; } if (actor == NULL) { @@ -498,21 +500,21 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusA actor = &player->actor; } - if (!Math_StepToF(&targetCtx->naviMoveProgressFactor, 0.0f, 0.25f)) { - f32 moveScale = 0.25f / targetCtx->naviMoveProgressFactor; - f32 x = actor->world.pos.x - targetCtx->naviHoverPos.x; - f32 y = (actor->world.pos.y + (actor->targetArrowOffset * actor->scale.y)) - targetCtx->naviHoverPos.y; - f32 z = actor->world.pos.z - targetCtx->naviHoverPos.z; + if (!Math_StepToF(&attention->naviMoveProgressFactor, 0.0f, 0.25f)) { + f32 moveScale = 0.25f / attention->naviMoveProgressFactor; + f32 x = actor->world.pos.x - attention->naviHoverPos.x; + f32 y = (actor->world.pos.y + (actor->lockOnArrowOffset * actor->scale.y)) - attention->naviHoverPos.y; + f32 z = actor->world.pos.z - attention->naviHoverPos.z; - targetCtx->naviHoverPos.x += x * moveScale; - targetCtx->naviHoverPos.y += y * moveScale; - targetCtx->naviHoverPos.z += z * moveScale; + attention->naviHoverPos.x += x * moveScale; + attention->naviHoverPos.y += y * moveScale; + attention->naviHoverPos.z += z * moveScale; } else { // Set Navi pos and color after reaching destination - Target_SetNaviState(targetCtx, actor, category, play); + Attention_SetNaviState(attention, actor, category, play); } - if ((playerFocusActor != NULL) && (targetCtx->reticleSpinCounter == 0)) { + if ((playerFocusActor != NULL) && (attention->reticleSpinCounter == 0)) { Actor_ProjectPos(play, &playerFocusActor->focus.pos, &projectedFocusPos, &cappedInvWDest); if (((projectedFocusPos.z <= 0.0f) || (1.0f <= fabsf(projectedFocusPos.x * cappedInvWDest))) || @@ -528,19 +530,19 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusA } if (playerFocusActor != NULL) { - if (playerFocusActor != targetCtx->reticleActor) { + if (playerFocusActor != attention->reticleActor) { s32 lockOnSfxId; // Set up a new reticle - Target_InitReticle(targetCtx, playerFocusActor->category, play); - targetCtx->reticleActor = playerFocusActor; + Attention_InitReticle(attention, playerFocusActor->category, play); + attention->reticleActor = playerFocusActor; if (playerFocusActor->id == ACTOR_EN_BOOM) { // Don't draw the reticle when locked onto the boomerang. // Note that it isn't possible to lock onto the boomerang, so this code doesn't do anything. // This implies that the boomerang camera lock may have been implemented with Z-Targeting at one point, // but was eventually implemented as its own camera mode instead. - targetCtx->reticleFadeAlphaControl = 0; + attention->reticleFadeAlphaControl = 0; } lockOnSfxId = CHECK_FLAG_ALL(playerFocusActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2) ? NA_SE_SY_LOCK_ON @@ -550,31 +552,31 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusA // Update reticle - targetCtx->reticlePos.x = playerFocusActor->world.pos.x; - targetCtx->reticlePos.y = + attention->reticlePos.x = playerFocusActor->world.pos.x; + attention->reticlePos.y = playerFocusActor->world.pos.y - (playerFocusActor->shape.yOffset * playerFocusActor->scale.y); - targetCtx->reticlePos.z = playerFocusActor->world.pos.z; + attention->reticlePos.z = playerFocusActor->world.pos.z; - if (targetCtx->reticleSpinCounter == 0) { - f32 step = (500.0f - targetCtx->reticleRadius) * 3.0f; + if (attention->reticleSpinCounter == 0) { + f32 step = (500.0f - attention->reticleRadius) * 3.0f; f32 reticleZoomStep = CLAMP(step, 30.0f, 100.0f); - if (Math_StepToF(&targetCtx->reticleRadius, 80.0f, reticleZoomStep)) { + if (Math_StepToF(&attention->reticleRadius, 80.0f, reticleZoomStep)) { // Non-zero counter indicates the reticle is done zooming in - targetCtx->reticleSpinCounter++; + attention->reticleSpinCounter++; } } else { // Finished zooming in, spin the reticle around the lock-on actor // 0x80 is or'd to avoid a value of zero. // This rotation value gets multiplied by 0x200, which multiplied by 0x80 gives a full turn (0x10000) - targetCtx->reticleSpinCounter = (targetCtx->reticleSpinCounter + 3) | 0x80; - targetCtx->reticleRadius = 120.0f; + attention->reticleSpinCounter = (attention->reticleSpinCounter + 3) | 0x80; + attention->reticleRadius = 120.0f; } } else { // Expand the radius quickly as the reticle is released - targetCtx->reticleActor = NULL; - Math_StepToF(&targetCtx->reticleRadius, 500.0f, 80.0f); + attention->reticleActor = NULL; + Math_StepToF(&attention->reticleRadius, 500.0f, 80.0f); } } @@ -887,7 +889,7 @@ void Actor_Init(Actor* actor, PlayState* play) { Actor_SetFocus(actor, 0.0f); Math_Vec3f_Copy(&actor->prevPos, &actor->world.pos); Actor_SetScale(actor, 0.01f); - actor->targetMode = TARGET_MODE_3; + actor->attentionRangeType = ATTENTION_RANGE_3; actor->minVelocityY = -20.0f; actor->xyzDistToPlayerSq = MAXFLOAT; actor->naviEnemyId = NAVI_ENEMY_NONE; @@ -1580,9 +1582,9 @@ PosRot Actor_GetWorldPosShapeRot(Actor* actor) { /** * Returns the squared xyz distance from the actor to Player. - * This distance will be weighted if Player is already targeting another actor. + * This distance will be weighted if Player is already locked onto another actor. */ -f32 Target_WeightedDistToPlayerSq(Actor* actor, Player* player, s16 playerShapeYaw) { +f32 Attention_WeightedDistToPlayerSq(Actor* actor, Player* player, s16 playerShapeYaw) { s16 yawTemp = (s16)(actor->yawTowardsPlayer - 0x8000) - playerShapeYaw; s16 yawTempAbs = ABS(yawTemp); @@ -1602,7 +1604,7 @@ f32 Target_WeightedDistToPlayerSq(Actor* actor, Player* player, s16 playerShapeY } } - // An actor will not be considered targetable if Player is facing more than ~60 degrees away + // Player has to be facing less than ~60 degrees away from the actor if (yawTempAbs > 0x2AAA) { return MAXFLOAT; } @@ -1611,37 +1613,37 @@ f32 Target_WeightedDistToPlayerSq(Actor* actor, Player* player, s16 playerShapeY return actor->xyzDistToPlayerSq; } -typedef struct TargetRangeParams { - /* 0x0 */ f32 rangeSq; - /* 0x4 */ f32 leashScale; -} TargetRangeParams; // size = 0x8 +typedef struct AttentionRangeParams { + /* 0x0 */ f32 attentionRangeSq; + /* 0x4 */ f32 lockOnLeashScale; +} AttentionRangeParams; // size = 0x8 -#define TARGET_RANGE(range, leash) \ - { SQ(range), (f32)range / leash } +#define ATTENTION_RANGES(range, lockOnLeashRange) \ + { SQ(range), (f32)range / lockOnLeashRange } -TargetRangeParams sTargetRanges[TARGET_MODE_MAX] = { - TARGET_RANGE(70, 140), // TARGET_MODE_0 - TARGET_RANGE(170, 255), // TARGET_MODE_1 - TARGET_RANGE(280, 5600), // TARGET_MODE_2 - TARGET_RANGE(350, 525), // TARGET_MODE_3 - TARGET_RANGE(700, 1050), // TARGET_MODE_4 - TARGET_RANGE(1000, 1500), // TARGET_MODE_5 - TARGET_RANGE(100, 105.36842), // TARGET_MODE_6 - TARGET_RANGE(140, 163.33333), // TARGET_MODE_7 - TARGET_RANGE(240, 576), // TARGET_MODE_8 - TARGET_RANGE(280, 280000), // TARGET_MODE_9 +AttentionRangeParams sAttentionRanges[ATTENTION_RANGE_MAX] = { + ATTENTION_RANGES(70, 140), // ATTENTION_RANGE_0 + ATTENTION_RANGES(170, 255), // ATTENTION_RANGE_1 + ATTENTION_RANGES(280, 5600), // ATTENTION_RANGE_2 + ATTENTION_RANGES(350, 525), // ATTENTION_RANGE_3 + ATTENTION_RANGES(700, 1050), // ATTENTION_RANGE_4 + ATTENTION_RANGES(1000, 1500), // ATTENTION_RANGE_5 + ATTENTION_RANGES(100, 105.36842), // ATTENTION_RANGE_6 + ATTENTION_RANGES(140, 163.33333), // ATTENTION_RANGE_7 + ATTENTION_RANGES(240, 576), // ATTENTION_RANGE_8 + ATTENTION_RANGES(280, 280000), // ATTENTION_RANGE_9 }; /** - * Checks if an actor at `distSq` is inside the range specified by its `targetMode`. + * Checks if an actor at `distSq` is inside the range specified by its `attentionRangeType`. * - * Note that this gets used for both the target range check and for the lock-on leash range check. - * Despite how the data is presented in `sTargetRanges`, the leash range is stored as a scale factor value. + * Note that this gets used for both the attention range check and for the lock-on leash range check. + * Despite how the data is presented in `sAttentionRanges`, the leash range is stored as a scale factor value. * When checking the leash range, this scale factor is applied to the input distance and checked against - * the base `rangeSq` value, which was used to initiate the lock-on in the first place. + * the base `attentionRangeSq` value, which was used to initiate the lock-on in the first place. */ -u32 Target_ActorIsInRange(Actor* actor, f32 distSq) { - return distSq < sTargetRanges[actor->targetMode].rangeSq; +u32 Attention_ActorIsInRange(Actor* actor, f32 distSq) { + return distSq < sAttentionRanges[actor->attentionRangeType].attentionRangeSq; } /** @@ -1654,7 +1656,7 @@ u32 Target_ActorIsInRange(Actor* actor, f32 distSq) { * Note that this check will be ignored if `ignoreLeash` is true. * */ -s32 Target_ShouldReleaseLockOn(Actor* actor, Player* player, s32 ignoreLeash) { +s32 Attention_ShouldReleaseLockOn(Actor* actor, Player* player, s32 ignoreLeash) { if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_0)) { return true; } @@ -1672,7 +1674,7 @@ s32 Target_ShouldReleaseLockOn(Actor* actor, Player* player, s32 ignoreLeash) { distSq = actor->xyzDistToPlayerSq; } - return !Target_ActorIsInRange(actor, sTargetRanges[actor->targetMode].leashScale * distSq); + return !Attention_ActorIsInRange(actor, sAttentionRanges[actor->attentionRangeType].lockOnLeashScale * distSq); } return false; @@ -2234,7 +2236,7 @@ void Actor_InitContext(PlayState* play, ActorContext* actorCtx, ActorEntry* play actorCtx->absoluteSpace = NULL; Actor_SpawnEntry(actorCtx, playerEntry, play); - Target_Init(&actorCtx->targetCtx, actorCtx->actorLists[ACTORCAT_PLAYER].head, play); + Attention_Init(&actorCtx->attention, actorCtx->actorLists[ACTORCAT_PLAYER].head, play); func_8002FA60(play); } @@ -2367,8 +2369,8 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { actor->isLockedOn = false; } - if ((actor->targetPriority != 0) && (player->focusActor == NULL)) { - actor->targetPriority = 0; + if ((actor->attentionPriority != 0) && (player->focusActor == NULL)) { + actor->attentionPriority = 0; } Actor_SetObjectDependency(play, actor); @@ -2400,13 +2402,13 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { if ((actor == NULL) || (player->unk_66C < 5)) { actor = NULL; - if (actorCtx->targetCtx.reticleSpinCounter != 0) { - actorCtx->targetCtx.reticleSpinCounter = 0; + if (actorCtx->attention.reticleSpinCounter != 0) { + actorCtx->attention.reticleSpinCounter = 0; Sfx_PlaySfxCentered(NA_SE_SY_LOCK_OFF); } } - Target_Update(&actorCtx->targetCtx, player, actor, play); + Attention_Update(&actorCtx->attention, player, actor, play); TitleCard_Update(play, &actorCtx->titleCtx); DynaPoly_UpdateBgActorTransforms(play, &play->colCtx.dyna); } @@ -3144,16 +3146,16 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { Camera_RequestMode(Play_GetCamera(play, Play_GetActiveCamId(play)), CAM_MODE_NORMAL); } - if (actor == actorCtx->targetCtx.naviHoverActor) { - actorCtx->targetCtx.naviHoverActor = NULL; + if (actor == actorCtx->attention.naviHoverActor) { + actorCtx->attention.naviHoverActor = NULL; } - if (actor == actorCtx->targetCtx.forcedLockOnActor) { - actorCtx->targetCtx.forcedLockOnActor = NULL; + if (actor == actorCtx->attention.forcedLockOnActor) { + actorCtx->attention.forcedLockOnActor = NULL; } - if (actor == actorCtx->targetCtx.bgmEnemy) { - actorCtx->targetCtx.bgmEnemy = NULL; + if (actor == actorCtx->attention.bgmEnemy) { + actorCtx->attention.bgmEnemy = NULL; } Audio_StopSfxByPos(&actor->projectedPos); @@ -3176,12 +3178,12 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { } /** - * Checks that an actor is on-screen enough to be considered targetable. + * Checks that an actor is on-screen enough to be considered an attention actor. * * Note that the screen bounds checks are larger than the actual screen region * to give room for error. */ -int Target_InTargetableScreenRegion(PlayState* play, Actor* actor) { +int Attention_ActorOnScreen(PlayState* play, Actor* actor) { s16 x; s16 y; @@ -3193,33 +3195,33 @@ int Target_InTargetableScreenRegion(PlayState* play, Actor* actor) { return (x > 0 - X_LEEWAY) && (x < SCREEN_WIDTH + X_LEEWAY) && (y > 0 - Y_LEEWAY) && (y < SCREEN_HEIGHT + Y_LEEWAY); } -Actor* sNearestTargetableActor; -Actor* sPrioritizedTargetableActor; -f32 sNearestTargetableActorDistSq; +Actor* sNearestAttentionActor; +Actor* sPrioritizedAttentionActor; +f32 sNearestAttentionActorDistSq; f32 sBgmEnemyDistSq; -s32 sHighestTargetablePriority; -s16 sTargetPlayerRotY; +s32 sHighestAttentionPriority; +s16 sAttentionPlayerRotY; /** - * Search for targetable actors within the specified category. + * Search for attention actors within the specified category. * - * For an actor to be considered targetable it needs to: + * To be considered an attention actor the actor needs to: * - Have a non-NULL update function (still active) * - Not be player (this is technically a redundant check because the PLAYER category is never searched) - * - Be targetable (specified by ACTOR_FLAG_0) - * - Not be the already targeted actor - * - Be the closest targetable actor found so far - * - Be within range, specified by targetMode + * - Have `ACTOR_FLAG_0` set + * - Not be the current focus actor + * - Be the closest attention actor found so far + * - Be within range, specified by attentionRangeType * - Be roughly on-screen * - Not be blocked by a surface * * If an actor has a priority value set and the value is the lowest found so far, it will be set as the prioritized - * targetable actor. Otherwise, it is set as the nearest targetable actor. + * attention actor. Otherwise, it is set as the nearest attention actor. * * This function is expected to be called with almost every actor category in each cycle. On a new cycle its global * variables must be reset by the caller, otherwise the information of the previous cycle will be retained. */ -void Target_FindTargetableActorInCategory(PlayState* play, ActorContext* actorCtx, Player* player, u32 actorCategory) { +void Attention_FindActorInCategory(PlayState* play, ActorContext* actorCtx, Player* player, u32 actorCategory) { f32 distSq; Actor* actor; Actor* playerFocusActor; @@ -3232,30 +3234,29 @@ void Target_FindTargetableActorInCategory(PlayState* play, ActorContext* actorCt while (actor != NULL) { if ((actor->update != NULL) && ((Player*)actor != player) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_0)) { - // Enemy background music actor is updated here, despite not being too related to the Target system if ((actorCategory == ACTORCAT_ENEMY) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2) && (actor->xyzDistToPlayerSq < SQ(500.0f)) && (actor->xyzDistToPlayerSq < sBgmEnemyDistSq)) { - actorCtx->targetCtx.bgmEnemy = actor; + actorCtx->attention.bgmEnemy = actor; sBgmEnemyDistSq = actor->xyzDistToPlayerSq; } if (actor != playerFocusActor) { - distSq = Target_WeightedDistToPlayerSq(actor, player, sTargetPlayerRotY); + distSq = Attention_WeightedDistToPlayerSq(actor, player, sAttentionPlayerRotY); - if ((distSq < sNearestTargetableActorDistSq) && Target_ActorIsInRange(actor, distSq) && - Target_InTargetableScreenRegion(play, actor) && + if ((distSq < sNearestAttentionActorDistSq) && Attention_ActorIsInRange(actor, distSq) && + Attention_ActorOnScreen(play, actor) && (!BgCheck_CameraLineTest1(&play->colCtx, &player->actor.focus.pos, &actor->focus.pos, &lineTestResultPos, &poly, true, true, true, true, &bgId) || SurfaceType_IsIgnoredByProjectiles(&play->colCtx, poly, bgId))) { - if (actor->targetPriority != 0) { + if (actor->attentionPriority != 0) { // Lower values are considered higher priority - if (actor->targetPriority < sHighestTargetablePriority) { - sPrioritizedTargetableActor = actor; - sHighestTargetablePriority = actor->targetPriority; + if (actor->attentionPriority < sHighestAttentionPriority) { + sPrioritizedAttentionActor = actor; + sHighestAttentionPriority = actor->attentionPriority; } } else { - sNearestTargetableActor = actor; - sNearestTargetableActorDistSq = distSq; + sNearestAttentionActor = actor; + sNearestAttentionActorDistSq = distSq; } } } @@ -3265,54 +3266,54 @@ void Target_FindTargetableActorInCategory(PlayState* play, ActorContext* actorCt } } -u8 sTargetableCategorySearchOrder[] = { +u8 sAttentionCategorySearchOrder[] = { ACTORCAT_BOSS, ACTORCAT_ENEMY, ACTORCAT_BG, ACTORCAT_EXPLOSIVE, ACTORCAT_NPC, ACTORCAT_ITEMACTION, ACTORCAT_CHEST, ACTORCAT_SWITCH, ACTORCAT_PROP, ACTORCAT_MISC, ACTORCAT_DOOR, ACTORCAT_SWITCH, }; /** - * Search for the nearest targetable actor by iterating through most actor categories. - * See `Target_FindTargetableActorInCategory` for more details on search criteria. + * Search for the nearest attention actor by iterating through most actor categories. + * See `Attention_FindActorInCategory` for more details on search criteria. * - * The actor found is stored in the `targetableActorP` parameter, which is also returned. + * The actor found is stored in the `attentionActorP` parameter, which is also returned. * It may be NULL if no actor that fulfills the criteria is found. */ -Actor* Target_FindTargetableActor(PlayState* play, ActorContext* actorCtx, Actor** targetableActorP, Player* player) { +Actor* Attention_FindActor(PlayState* play, ActorContext* actorCtx, Actor** attentionActorP, Player* player) { s32 i; u8* category; - sNearestTargetableActor = sPrioritizedTargetableActor = NULL; - sNearestTargetableActorDistSq = sBgmEnemyDistSq = MAXFLOAT; - sHighestTargetablePriority = INT32_MAX; + sNearestAttentionActor = sPrioritizedAttentionActor = NULL; + sNearestAttentionActorDistSq = sBgmEnemyDistSq = MAXFLOAT; + sHighestAttentionPriority = INT32_MAX; if (!Player_InCsMode(play)) { - category = &sTargetableCategorySearchOrder[0]; - actorCtx->targetCtx.bgmEnemy = NULL; - sTargetPlayerRotY = player->actor.shape.rot.y; + category = &sAttentionCategorySearchOrder[0]; + actorCtx->attention.bgmEnemy = NULL; + sAttentionPlayerRotY = player->actor.shape.rot.y; - // Search the first 3 actor categories first for a targetable actor + // Search the first 3 actor categories first for an attention actor // These are Boss, Enemy, and Bg, in order. for (i = 0; i < 3; i++) { - Target_FindTargetableActorInCategory(play, actorCtx, player, *category); + Attention_FindActorInCategory(play, actorCtx, player, *category); category++; } // If no actor in the above categories was found, then try searching in the remaining categories - if (sNearestTargetableActor == NULL) { - for (; i < ARRAY_COUNT(sTargetableCategorySearchOrder); i++) { - Target_FindTargetableActorInCategory(play, actorCtx, player, *category); + if (sNearestAttentionActor == NULL) { + for (; i < ARRAY_COUNT(sAttentionCategorySearchOrder); i++) { + Attention_FindActorInCategory(play, actorCtx, player, *category); category++; } } } - if (sNearestTargetableActor == NULL) { - *targetableActorP = sPrioritizedTargetableActor; + if (sNearestAttentionActor == NULL) { + *attentionActorP = sPrioritizedAttentionActor; } else { - *targetableActorP = sNearestTargetableActor; + *attentionActorP = sNearestAttentionActor; } - return *targetableActorP; + return *attentionActorP; } /** diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index d99680ae50..80e49121e5 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -145,14 +145,14 @@ void EnAObj_Init(Actor* thisx, PlayState* play) { case A_OBJ_SIGNPOST_OBLONG: case A_OBJ_SIGNPOST_ARROW: thisx->textId = (this->textId & 0xFF) | 0x300; - thisx->targetArrowOffset = 500.0f; + thisx->lockOnArrowOffset = 500.0f; thisx->flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; this->focusYoffset = 45.0f; EnAObj_SetupWaitTalk(this, thisx->params); Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, thisx, &sCylinderInit); thisx->colChkInfo.mass = MASS_IMMOVABLE; - thisx->targetMode = TARGET_MODE_0; + thisx->attentionRangeType = ATTENTION_RANGE_0; break; case A_OBJ_BOULDER_FRAGMENT: thisx->gravity = -1.5f; diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index a009c7cfcd..2e3150ec0f 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -53,7 +53,7 @@ static ColliderCylinderInit sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_STOP), }; static Color_RGBA8 sEffectPrimColor = { 255, 255, 127, 0 }; diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 40060d0006..47ced85959 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -3272,7 +3272,7 @@ void Interface_Draw(PlayState* play) { if ((R_PAUSE_BG_PRERENDER_STATE != PAUSE_BG_PRERENDER_PROCESS) && (R_PAUSE_BG_PRERENDER_STATE != PAUSE_BG_PRERENDER_READY)) { - Target_Draw(&play->actorCtx.targetCtx, play); + Attention_Draw(&play->actorCtx.attention, play); } Gfx_SetupDL_39Overlay(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c index 1bda3f597a..780592cde5 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c @@ -165,7 +165,7 @@ void BgBdanSwitch_Init(Actor* thisx, PlayState* play) { case YELLOW_TALL_2: BgBdanSwitch_InitCollision(this, play); this->dyna.actor.flags |= ACTOR_FLAG_0; - this->dyna.actor.targetMode = TARGET_MODE_4; + this->dyna.actor.attentionRangeType = ATTENTION_RANGE_4; break; } diff --git a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c index c9d8febc29..f9875ae0a4 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c +++ b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c @@ -122,7 +122,7 @@ static CollisionCheckInfoInit sColChkInfoInit = { 0, 80, 130, MASS_IMMOVABLE }; static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, TARGET_MODE_4, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_4, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c index 0f757059e3..e768e31e85 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c @@ -54,8 +54,10 @@ static ColliderJntSphInit sJntSphInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_3, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_3, ICHAIN_CONTINUE), + ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c index 3a96d82959..5c5bf9f21a 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c @@ -64,9 +64,12 @@ static ColliderJntSphInit sJntSphInit = { }; static InitChainEntry sInitChainClasp[] = { - ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, TARGET_MODE_3, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 40, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP), + ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_3, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 40, ICHAIN_CONTINUE), + ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP), }; static InitChainEntry sInitChainLadder[] = { diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c index 4edc3a4e3c..d6ed4698ce 100644 --- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c +++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c @@ -42,8 +42,10 @@ ActorProfile Bg_Treemouth_Profile = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 8000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), + ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 8000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 300, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c index 387b57a670..356772eeef 100644 --- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c +++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c @@ -48,10 +48,10 @@ ActorProfile Boss_Dodongo_Profile = { #include "z_boss_dodongo_data.inc.c" static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_KING_DODONGO, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -3000.0f, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 8200.0f, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 8200.0f, ICHAIN_STOP), }; void func_808C1190(s16* arg0, u8* arg1, s16 arg2) { diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c index 88ce87b76f..d467695c69 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c @@ -59,10 +59,10 @@ ActorProfile Boss_Fd_Profile = { #include "z_boss_fd_colchk.inc.c" static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_VOLVAGIA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; void BossFd_SpawnEmber(BossFdEffect* effect, Vec3f* position, Vec3f* velocity, Vec3f* acceleration, f32 scale) { diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index 065d58541f..61f455a6aa 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -67,10 +67,10 @@ static Vec3f sHoleLocations[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_VOLVAGIA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; void BossFd2_SpawnDebris(PlayState* play, BossFdEffect* effect, Vec3f* position, Vec3f* velocity, Vec3f* acceleration, 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 9798fe510b..56ba3ec7dd 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -336,10 +336,10 @@ void BossGanon_SetAnimationObject(BossGanon* this, PlayState* play, s32 objectId } static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_GANONDORF, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; void BossGanon_Init(Actor* thisx, PlayState* play2) { diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index 60bd103f04..80a02a7593 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -199,10 +199,10 @@ static void* sLimbTex_rgba16_16x32[] = { gPhantomGanonLimbTex_00AA80, gPhantomGa static void* sMouthTex_ci8_16x16[] = { gPhantomGanonMouthTex, gPhantomGanonSmileTex }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_PHANTOM_GANON_PHASE_1, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; static Vec3f sAudioVec = { 0.0f, 0.0f, 50.0f }; diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index 0dfcc60edd..0ed382f3d9 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -333,7 +333,7 @@ void BossGoma_ClearPixels(u8* clearPixelTable, s16 i) { } static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_GOHMA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index cf483fddfb..5b920b71d3 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -294,10 +294,10 @@ static s16 sAttackRot[41] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_MORPHA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; static Vec3f sAudioZeroVec = { 0.0f, 0.0f, 0.0f }; diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index 05f1525655..d349a6a2b0 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -261,7 +261,7 @@ static AnimationHeader* sHandHangPoses[] = { &gBongoLeftHandHangPoseAnim, &gBong static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BONGO_BONGO, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 20, ICHAIN_STOP), }; @@ -308,7 +308,7 @@ void BossSst_Init(Actor* thisx, PlayState* play2) { this->actor.update = BossSst_UpdateHead; this->actor.draw = BossSst_DrawHead; this->radius = -650.0f; - this->actor.targetArrowOffset = 4000.0f; + this->actor.lockOnArrowOffset = 4000.0f; BossSst_HeadSetupLurk(this); Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_BOSS); } @@ -328,7 +328,7 @@ void BossSst_Init(Actor* thisx, PlayState* play2) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 95.0f); this->handZPosMod = -3500; - this->actor.targetArrowOffset = 5000.0f; + this->actor.lockOnArrowOffset = 5000.0f; this->actor.flags &= ~ACTOR_FLAG_0; BossSst_HandSetupWait(this); } diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 66f3b7dc4f..2c9efc6e67 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -201,9 +201,9 @@ static Vec3f sTwinrovaPillarPos[] = { static u8 sTwInitialized = false; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; static s8 sEnvType; diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index fa86dbb682..c4887b6e99 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -581,7 +581,7 @@ void BossVa_Init(Actor* thisx, PlayState* play2) { s16 warpId; Actor_SetScale(&this->actor, 0.1f); - this->actor.targetMode = TARGET_MODE_5; + this->actor.attentionRangeType = ATTENTION_RANGE_5; this->actor.colChkInfo.mass = MASS_IMMOVABLE; switch (this->actor.params) { diff --git a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c index 69db94c219..0a4d6c30d9 100644 --- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c +++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c @@ -79,7 +79,7 @@ void DoorAna_Init(Actor* thisx, PlayState* play) { } else { DoorAna_SetupAction(this, DoorAna_WaitOpen); } - this->actor.targetMode = TARGET_MODE_0; + this->actor.attentionRangeType = ATTENTION_RANGE_0; } void DoorAna_Destroy(Actor* thisx, PlayState* play) { @@ -128,7 +128,7 @@ void DoorAna_WaitOpen(DoorAna* this, PlayState* play) { player = GET_PLAYER(play); if (Math_StepToF(&this->actor.scale.x, 0.01f, 0.001f)) { - if ((this->actor.targetMode != 0) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && + if ((this->actor.attentionRangeType != 0) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && (player->stateFlags1 & PLAYER_STATE1_31) && (player->av1.actionVar1 == 0)) { destinationIdx = PARAMS_GET_U(this->actor.params, 12, 3) - 1; Play_SetupRespawnPoint(play, RESPAWN_MODE_RETURN, 0x4FF); @@ -145,9 +145,9 @@ void DoorAna_WaitOpen(DoorAna* this, PlayState* play) { this->actor.xzDistToPlayer <= 15.0f && -50.0f <= this->actor.yDistToPlayer && this->actor.yDistToPlayer <= 15.0f) { player->stateFlags1 |= PLAYER_STATE1_31; - this->actor.targetMode = TARGET_MODE_1; + this->actor.attentionRangeType = ATTENTION_RANGE_1; } else { - this->actor.targetMode = TARGET_MODE_0; + this->actor.attentionRangeType = ATTENTION_RANGE_0; } } } diff --git a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c index 3d515b08de..4723acd318 100644 --- a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c +++ b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c @@ -81,7 +81,7 @@ void ElfMsg2_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(CYAN) " Elf_Msg2_Actor_ct %04x\n\n" VT_RST, this->actor.params); if (!ElfMsg2_KillCheck(this, play)) { if ((this->actor.world.rot.x > 0) && (this->actor.world.rot.x < 8)) { - this->actor.targetMode = this->actor.world.rot.x - 1; + this->actor.attentionRangeType = this->actor.world.rot.x - 1; } Actor_ProcessInitChain(thisx, sInitChain); if (this->actor.world.rot.y >= 0x41) { diff --git a/src/overlays/actors/ovl_En_Am/z_en_am.c b/src/overlays/actors/ovl_En_Am/z_en_am.c index 587b53fb72..a90dcfd1a3 100644 --- a/src/overlays/actors/ovl_En_Am/z_en_am.c +++ b/src/overlays/actors/ovl_En_Am/z_en_am.c @@ -158,7 +158,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_ARMOS, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -4000, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 5300, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 5300, ICHAIN_STOP), }; void EnAm_SetupAction(EnAm* this, EnAmActionFunc actionFunc) { diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c index c051882909..2cb9e30b9f 100644 --- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c +++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c @@ -148,7 +148,7 @@ void EnAnubice_Init(Actor* thisx, PlayState* play) { this->focusHeightOffset = 0.0f; this->actor.flags &= ~ACTOR_FLAG_0; this->home = this->actor.world.pos; - this->actor.targetMode = TARGET_MODE_3; + this->actor.attentionRangeType = ATTENTION_RANGE_3; this->actionFunc = EnAnubice_FindFlameCircles; } 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 748c2e62b8..6fa2b853d8 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 @@ -32,9 +32,9 @@ ActorProfile En_Attack_Niw_Profile = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_1, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_1, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; void EnAttackNiw_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Ba/z_en_ba.c b/src/overlays/actors/ovl_En_Ba/z_en_ba.c index 43d717bbfb..8d667bc49d 100644 --- a/src/overlays/actors/ovl_En_Ba/z_en_ba.c +++ b/src/overlays/actors/ovl_En_Ba/z_en_ba.c @@ -85,7 +85,7 @@ static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_PARASITIC_TENTACLE, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 1500, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 2500, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; void EnBa_Init(Actor* thisx, PlayState* play) { @@ -103,7 +103,7 @@ void EnBa_Init(Actor* thisx, PlayState* play) { this->unk_158[i].y = this->actor.world.pos.y - (i + 1) * 32.0f; } - this->actor.targetMode = TARGET_MODE_4; + this->actor.attentionRangeType = ATTENTION_RANGE_4; this->upperParams = PARAMS_GET_U(thisx->params, 8, 8); thisx->params &= 0xFF; diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index 93accb1ec9..af2cf4c380 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -235,7 +235,7 @@ static ColliderJntSphInit sJntSphInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 10, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 10, ICHAIN_STOP), }; void EnBb_SetupAction(EnBb* this, EnBbActionFunc actionFunc) { diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index a9573a9fa5..8e1217358c 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -144,8 +144,8 @@ static DamageTable sDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), ICHAIN_F32(gravity, -1, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BIGOCTO, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 33, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.c b/src/overlays/actors/ovl_En_Bili/z_en_bili.c index 5834f26b9a..83ca17633c 100644 --- a/src/overlays/actors/ovl_En_Bili/z_en_bili.c +++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.c @@ -108,7 +108,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BIRI, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_STOP), }; void EnBili_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Bird/z_en_bird.c b/src/overlays/actors/ovl_En_Bird/z_en_bird.c index 3229f5af88..6ca50edeeb 100644 --- a/src/overlays/actors/ovl_En_Bird/z_en_bird.c +++ b/src/overlays/actors/ovl_En_Bird/z_en_bird.c @@ -32,7 +32,7 @@ ActorProfile En_Bird_Profile = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 5600, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 5600, ICHAIN_STOP), }; void EnBird_SetupAction(EnBird* this, EnBirdActionFunc actionFunc) { 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 0bb4ffc2d9..962f50e34c 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -79,7 +79,7 @@ static ColliderJntSphInit sJntSphInit = { static InitChainEntry sInitChain[] = { ICHAIN_VEC3F(scale, 0, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -4000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c index 0daf1d3795..b62e41ccda 100644 --- a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c +++ b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c @@ -77,7 +77,7 @@ void EnBomBowlMan_Init(Actor* thisx, PlayState* play2) { } this->prizeSelect = (s16)Rand_ZeroFloat(4.99f); - this->actor.targetMode = TARGET_MODE_1; + this->actor.attentionRangeType = ATTENTION_RANGE_1; this->actionFunc = EnBomBowlMan_SetupWaitAsleep; } 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 62515231b4..33c62c3f06 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 @@ -55,7 +55,7 @@ static ColliderJntSphInit sJntSphInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 1000 * BOMBCHU_SCALE, ICHAIN_STOP), }; 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 875553a85f..eaaf3bf66f 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -109,7 +109,7 @@ void EnBombf_Init(Actor* thisx, PlayState* play) { thisx->colChkInfo.cylRadius = 10.0f; thisx->colChkInfo.cylHeight = 10; - thisx->targetMode = TARGET_MODE_0; + thisx->attentionRangeType = ATTENTION_RANGE_0; if (thisx->params == BOMBFLOWER_BODY) { this->timer = 140; diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index 5ea28b6d2a..9940d74c13 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -49,7 +49,7 @@ static ColliderQuadInit sQuadInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), + ICHAIN_S8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), ICHAIN_VEC3S(shape.rot, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c index 121e6bda0f..890bcf256d 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -66,7 +66,7 @@ static AnimationHeader* sAnimations[4] = { &gTreasureChestAnim_00024C, &gTreasur &gTreasureChestAnim_00043C, &gTreasureChestAnim_00043C }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_0, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_0, ICHAIN_STOP), }; static UNK_TYPE sUnused; diff --git a/src/overlays/actors/ovl_En_Bx/z_en_bx.c b/src/overlays/actors/ovl_En_Bx/z_en_bx.c index 2475ebf854..b480cdf858 100644 --- a/src/overlays/actors/ovl_En_Bx/z_en_bx.c +++ b/src/overlays/actors/ovl_En_Bx/z_en_bx.c @@ -71,7 +71,7 @@ void EnBx_Init(Actor* thisx, PlayState* play) { Vec3f sp48 = { 0.015f, 0.015f, 0.015f }; Vec3f sp3C = { 0.0f, 0.0f, 0.0f }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 5300, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 5300, ICHAIN_STOP), }; s32 i; s32 pad; diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c index 30b0a33f48..cdba3e9eaa 100644 --- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c +++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c @@ -251,7 +251,7 @@ void EnClearTag_Init(Actor* thisx, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_IT_SWORD_REFLECT_MG); } else { // Initialize the Arwing. this->actor.flags |= ACTOR_FLAG_0; - this->actor.targetMode = TARGET_MODE_5; + this->actor.attentionRangeType = ATTENTION_RANGE_5; Collider_SetCylinder(play, &this->collider, &this->actor, &sArwingCylinderInit); this->actor.colChkInfo.health = 3; diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index cf7f08d5bb..0bdb89b3a6 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -146,7 +146,7 @@ void EnCow_Init(Actor* thisx, PlayState* play) { COW_TYPE_TAIL); this->animationTimer = Rand_ZeroFloat(1000.0f) + 40.0f; this->breathTimer = 0; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; R_EPONAS_SONG_PLAYED = false; break; 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 5cdcd6bd76..a9332385d8 100644 --- a/src/overlays/actors/ovl_En_Crow/z_en_crow.c +++ b/src/overlays/actors/ovl_En_Crow/z_en_crow.c @@ -100,7 +100,7 @@ static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneScale, 3000, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_GUAY, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -200, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_STOP), }; static Vec3f sHeadVec = { 2500.0f, 0.0f, 0.0f }; @@ -153,7 +153,7 @@ void EnCrow_SetupDamaged(EnCrow* this, PlayState* play) { this->actor.world.pos.y += 20.0f * scale; this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; this->actor.shape.yOffset = 0.0f; - this->actor.targetArrowOffset = 0.0f; + this->actor.lockOnArrowOffset = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_KAICHO_DEAD); if (this->actor.colChkInfo.damageEffect == 3) { // Ice arrows @@ -218,7 +218,7 @@ void EnCrow_SetupRespawn(EnCrow* this) { this->actor.shape.rot.z = 0; this->timer = 300; this->actor.shape.yOffset = 2000; - this->actor.targetArrowOffset = 2000.0f; + this->actor.lockOnArrowOffset = 2000.0f; this->actor.draw = NULL; this->actionFunc = EnCrow_Respawn; } diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index 2e6cf79a69..1acaaa8e41 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -143,7 +143,7 @@ void EnCs_Init(Actor* thisx, PlayState* play) { Animation_GetLastFrame(sAnimationInfo[ENCS_ANIM_0].animation), sAnimationInfo[ENCS_ANIM_0].mode, sAnimationInfo[ENCS_ANIM_0].morphFrames); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->path = PARAMS_GET_U(this->actor.params, 0, 8); this->unk_1EC = 0; // This variable is unused anywhere else this->talkState = 0; diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c index 8bcc668e29..2345bada28 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -189,7 +189,7 @@ void EnDaiku_Init(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->currentAnimIndex = -1; this->runSpeed = 5.0f; this->initRot = this->actor.world.rot; diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index c316f744f4..3a244bb82c 100644 --- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -172,7 +172,7 @@ void EnDaikuKakariko_Init(Actor* thisx, PlayState* play) { this->actor.gravity = 0.0f; this->runSpeed = 3.0f; this->actor.uncullZoneForward = 1200.0f; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->currentAnimIndex = -1; if (this->flags & 0x40) { diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index 2eefd57b06..f954f2b8d8 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -217,7 +217,7 @@ static DamageTable sBigDekuBabaDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 1500, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 1500, ICHAIN_STOP), }; void EnDekubaba_Init(Actor* thisx, PlayState* play) { @@ -249,7 +249,7 @@ void EnDekubaba_Init(Actor* thisx, PlayState* play) { CollisionCheck_SetInfo(&this->actor.colChkInfo, &sBigDekuBabaDamageTable, &sColChkInfoInit); this->actor.colChkInfo.health = 4; this->actor.naviEnemyId = NAVI_ENEMY_BIG_DEKU_BABA; - this->actor.targetMode = TARGET_MODE_2; + this->actor.attentionRangeType = ATTENTION_RANGE_2; } else { this->size = 1.0f; @@ -263,7 +263,7 @@ void EnDekubaba_Init(Actor* thisx, PlayState* play) { CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDekuBabaDamageTable, &sColChkInfoInit); this->actor.naviEnemyId = NAVI_ENEMY_DEKU_BABA; - this->actor.targetMode = TARGET_MODE_1; + this->actor.attentionRangeType = ATTENTION_RANGE_1; } EnDekubaba_SetupWait(this); diff --git a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c index b34e0eb63b..332407e4ed 100644 --- a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c +++ b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c @@ -102,7 +102,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_MAD_SCRUB, ICHAIN_CONTINUE), ICHAIN_F32(gravity, -1, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2600, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 2600, ICHAIN_STOP), }; void EnDekunuts_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Dh/z_en_dh.c b/src/overlays/actors/ovl_En_Dh/z_en_dh.c index cbb0491339..0ad0136d8f 100644 --- a/src/overlays/actors/ovl_En_Dh/z_en_dh.c +++ b/src/overlays/actors/ovl_En_Dh/z_en_dh.c @@ -127,7 +127,7 @@ static DamageTable D_809EC620 = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_DEAD_HAND, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -3500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Dha/z_en_dha.c b/src/overlays/actors/ovl_En_Dha/z_en_dha.c index 7a7eca1bcb..a48fdfdd6a 100644 --- a/src/overlays/actors/ovl_En_Dha/z_en_dha.c +++ b/src/overlays/actors/ovl_En_Dha/z_en_dha.c @@ -143,7 +143,7 @@ static ColliderJntSphInit sJntSphInit = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_DEAD_HANDS_HAND, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c index ab38eedd67..6a758c454c 100644 --- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c +++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c @@ -93,7 +93,7 @@ void EnDivingGame_Init(Actor* thisx, PlayState* play) { Actor_Kill(&this->actor); } else { D_809EF0B0 = true; - this->actor.targetMode = TARGET_MODE_0; + this->actor.attentionRangeType = ATTENTION_RANGE_0; this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->actionFunc = func_809EDCB0; } diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index d212cf903f..c1b8eea2f3 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -115,8 +115,8 @@ static DnsItemEntry* sItemEntries[] = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BUSINESS_SCRUB, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 30, ICHAIN_STOP), }; static AnimationMinimalInfo sAnimationInfo[] = { diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index 2fa6c093e0..0cca8f1ca6 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -84,7 +84,7 @@ void EnDntJiji_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ デグナッツお面品評会長老 ☆☆☆☆☆ %x\n" VT_RST, this->stage); this->actor.flags &= ~ACTOR_FLAG_0; this->actor.colChkInfo.mass = 0xFF; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actionFunc = EnDntJiji_SetFlower; this->actor.gravity = -2.0f; } diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index 32d3b7d06d..1f3ba0cfa4 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -301,14 +301,14 @@ void EnDodongo_SpawnBombSmoke(EnDodongo* this, PlayState* play) { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_DODONGO, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2800, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 2800, ICHAIN_STOP), }; void EnDodongo_Init(Actor* thisx, PlayState* play) { EnDodongo* this = (EnDodongo*)thisx; EffectBlureInit1 blureInit; - this->actor.targetMode = TARGET_MODE_3; + this->actor.attentionRangeType = ATTENTION_RANGE_3; Actor_ProcessInitChain(&this->actor, sInitChain); this->bombSmokePrimColor.r = this->bombSmokePrimColor.g = this->bombSmokeEnvColor.r = 255; this->bombSmokePrimColor.a = this->bombSmokeEnvColor.a = 200; diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index 590337ed70..25f237d298 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -73,7 +73,7 @@ static EnDoorInfo sDoorInfo[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_0, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_0, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/src/overlays/actors/ovl_En_Ds/z_en_ds.c index 1dd85b43ca..d07d7937a6 100644 --- a/src/overlays/actors/ovl_En_Ds/z_en_ds.c +++ b/src/overlays/actors/ovl_En_Ds/z_en_ds.c @@ -41,7 +41,7 @@ void EnDs_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.013f); this->actionFunc = EnDs_Wait; - this->actor.targetMode = TARGET_MODE_1; + this->actor.attentionRangeType = ATTENTION_RANGE_1; this->unk_1E8 = 0; this->actor.flags &= ~ACTOR_FLAG_0; this->unk_1E4 = 0.0f; diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index ba8eeec8a4..d1994135b6 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -289,7 +289,7 @@ void EnDu_Init(Actor* thisx, PlayState* play) { } Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENDU_ANIM_0); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = TARGET_MODE_1; + this->actor.attentionRangeType = ATTENTION_RANGE_1; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; if (gSaveContext.save.cutsceneIndex >= 0xFFF0) { diff --git a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c index 5c0921755b..2b93c1d6a5 100644 --- a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c +++ b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c @@ -107,7 +107,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_STINGER, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 5, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2500, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 2500, ICHAIN_STOP), }; /** diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index 1c3630ff9d..a3f1a481ab 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -935,9 +935,9 @@ void func_80A03CF8(EnElf* this, PlayState* play) { break; default: func_80A029A8(this, 1); - nextPos = play->actorCtx.targetCtx.naviHoverPos; + nextPos = play->actorCtx.attention.naviHoverPos; nextPos.y += (1500.0f * this->actor.scale.y); - naviHoverActor = play->actorCtx.targetCtx.naviHoverActor; + naviHoverActor = play->actorCtx.attention.naviHoverActor; if (naviHoverActor != NULL) { func_80A03148(this, &nextPos, 0.0f, 20.0f, 0.2f); @@ -1000,12 +1000,12 @@ void EnElf_ChangeColor(Color_RGBAf* dest, Color_RGBAf* newColor, Color_RGBAf* cu } void func_80A04414(EnElf* this, PlayState* play) { - Actor* naviHoverActor = play->actorCtx.targetCtx.naviHoverActor; + Actor* naviHoverActor = play->actorCtx.attention.naviHoverActor; Player* player = GET_PLAYER(play); f32 transitionRate; u16 sfxId; - if (play->actorCtx.targetCtx.naviMoveProgressFactor != 0.0f) { + if (play->actorCtx.attention.naviMoveProgressFactor != 0.0f) { this->unk_2C6 = 0; this->unk_29C = 1.0f; @@ -1016,18 +1016,18 @@ void func_80A04414(EnElf* this, PlayState* play) { } else { if (this->unk_2C6 == 0) { if ((naviHoverActor == NULL) || - (Math_Vec3f_DistXYZ(&this->actor.world.pos, &play->actorCtx.targetCtx.naviHoverPos) < 50.0f)) { + (Math_Vec3f_DistXYZ(&this->actor.world.pos, &play->actorCtx.attention.naviHoverPos) < 50.0f)) { this->unk_2C6 = 1; } } else if (this->unk_29C != 0.0f) { if (Math_StepToF(&this->unk_29C, 0.0f, 0.25f) != 0) { - this->innerColor = play->actorCtx.targetCtx.naviInnerColor; - this->outerColor = play->actorCtx.targetCtx.naviOuterColor; + this->innerColor = play->actorCtx.attention.naviInnerColor; + this->outerColor = play->actorCtx.attention.naviOuterColor; } else { transitionRate = 0.25f / this->unk_29C; - EnElf_ChangeColor(&this->innerColor, &play->actorCtx.targetCtx.naviInnerColor, &this->innerColor, + EnElf_ChangeColor(&this->innerColor, &play->actorCtx.attention.naviInnerColor, &this->innerColor, transitionRate); - EnElf_ChangeColor(&this->outerColor, &play->actorCtx.targetCtx.naviOuterColor, &this->outerColor, + EnElf_ChangeColor(&this->outerColor, &play->actorCtx.attention.naviOuterColor, &this->outerColor, transitionRate); } } @@ -1081,7 +1081,7 @@ void func_80A0461C(EnElf* this, PlayState* play) { } } else { - naviHoverActor = play->actorCtx.targetCtx.naviHoverActor; + naviHoverActor = play->actorCtx.attention.naviHoverActor; // `R_SCENE_CAM_TYPE` is not a bit field, but this conditional checks for a specific bit. // This `& 0x10` check will pass for either `SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT`, `SCENE_CAM_TYPE_FIXED`, or @@ -1222,7 +1222,7 @@ void func_80A04DE4(EnElf* this, PlayState* play) { Vec3f pos; if (this->fairyFlags & 0x10) { - pos = play->actorCtx.targetCtx.naviHoverPos; + pos = play->actorCtx.attention.naviHoverPos; if ((player->focusActor == NULL) || (&player->actor == player->focusActor) || (&this->actor == player->focusActor)) { diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index 70d9eb80e8..00be9adeae 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -112,8 +112,8 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 5, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -500, ICHAIN_CONTINUE), - ICHAIN_F32(minVelocityY, -4, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 4000, ICHAIN_STOP), + ICHAIN_F32(minVelocityY, -4, ICHAIN_CONTINUE), ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 4000, ICHAIN_STOP), }; void EnFirefly_Extinguish(EnFirefly* this) { diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index f95d077d5d..4ae4598081 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -115,7 +115,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_FLOORMASTER, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 5500, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 5500, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index cb49c0ba21..f8943dcd8c 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -168,8 +168,8 @@ static s16 sTimerFrogSong[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 30, ICHAIN_STOP), }; // Counter to Coordinate Frog jumping out of water one at a time diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index b930fe8004..5056d0b7c6 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -92,7 +92,7 @@ void EnFu_Init(Actor* thisx, PlayState* play) { this->skelanime.playSpeed = 2.0f; } this->behaviorFlags = 0; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; } void EnFu_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index de73699d55..492b42158e 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -151,8 +151,8 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_FREEZARD, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 30, ICHAIN_STOP), }; void EnFz_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index 49ae19c793..ffb3bb2051 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -121,8 +121,8 @@ static ColliderCylinderInitType1 sBottlesCylindersInit[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_6, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2200, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_6, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2200, ICHAIN_STOP), }; // relative positions of poe souls diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index ba84d55e71..0583aae68f 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -98,7 +98,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) { this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->animation = &gGerudoWhiteIdleAnim; this->animFunc = EnGe1_CueUpAnimation; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; Actor_SetScale(&this->actor, 0.01f); this->actor.uncullZoneForward = ((play->sceneId == SCENE_GERUDO_VALLEY) ? 1000.0f : 1200.0f); @@ -146,7 +146,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) { Actor_Kill(&this->actor); return; } - this->actor.targetMode = TARGET_MODE_3; + this->actor.attentionRangeType = ATTENTION_RANGE_3; this->hairstyle = GE1_HAIR_BOB; // "Horseback archery Gerudo EVENT_INF(0) =" PRINTF(VT_FGCOL(CYAN) "やぶさめ ゲルド EVENT_INF(0) = %x\n" VT_RST, gSaveContext.eventInf[0]); diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index 533f38a4ad..5d52081e20 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -138,21 +138,21 @@ void EnGe2_Init(Actor* thisx, PlayState* play) { EnGe2_ChangeAction(this, GE2_ACTION_WALK); if (EnGe2_CheckCarpentersFreed()) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; } break; case GE2_TYPE_STATIONARY: EnGe2_ChangeAction(this, GE2_ACTION_STAND); if (EnGe2_CheckCarpentersFreed()) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; } break; case GE2_TYPE_GERUDO_CARD_GIVER: EnGe2_ChangeAction(this, GE2_ACTION_WAITLOOKATPLAYER); this->actor.update = EnGe2_UpdateAfterTalk; this->actionFunc = EnGe2_ForceTalk; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; break; default: ASSERT(0, "0", "../z_en_ge2.c", 418); @@ -595,7 +595,7 @@ void EnGe2_Update(Actor* thisx, PlayState* play) { if (EnGe2_CheckCarpentersFreed() && !(this->stateFlags & GE2_STATE_KO)) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; } } @@ -621,7 +621,7 @@ void EnGe2_UpdateStunned(Actor* thisx, PlayState* play2) { if (EnGe2_CheckCarpentersFreed()) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actor.colorFilterTimer = 0; } else if (this->actor.colorFilterTimer == 0) { this->actor.update = EnGe2_Update; diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c index d54bcb7647..4eaf327282 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c @@ -81,7 +81,7 @@ void EnGe3_Init(Actor* thisx, PlayState* play2) { EnGe3_ChangeAction(this, 0); this->actionFunc = EnGe3_ForceTalk; this->unk_30C = 0; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actor.minVelocityY = -4.0f; this->actor.gravity = -1.0f; } diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c index aec28ecaa6..d81e358799 100644 --- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c +++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c @@ -204,7 +204,7 @@ static DamageTable sDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -3000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index 3287f0b6a3..a71831496e 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -58,8 +58,8 @@ static ColliderCylinderInitType1 sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 30, ICHAIN_STOP), }; void EnGm_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index f593f5e648..380f5f938c 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -644,7 +644,7 @@ void EnGo_Init(Actor* thisx, PlayState* play) { } EnGo_ChangeAnim(this, ENGO_ANIM_0); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->actor.gravity = -1.0f; @@ -678,7 +678,7 @@ void EnGo_Init(Actor* thisx, PlayState* play) { EnGo_SetupAction(this, func_80A3FEB4); break; case 0x90: - this->actor.targetMode = TARGET_MODE_5; + this->actor.attentionRangeType = ATTENTION_RANGE_5; Actor_SetScale(&this->actor, 0.16f); EnGo_SetupAction(this, EnGo_CurledUp); break; diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index 3b9b1939fb..fd39536714 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -842,7 +842,7 @@ void EnGo2_SetShape(EnGo2* this) { this->actor.shape.shadowScale = D_80A481F8[index].shape_unk_10; Actor_SetScale(&this->actor, D_80A481F8[index].scale); - this->actor.targetMode = D_80A481F8[index].actor_unk_1F; + this->actor.attentionRangeType = D_80A481F8[index].actor_unk_1F; this->interactRange = D_80A481F8[index].interactRange; this->interactRange += this->collider.dim.radius; } diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c index 7e411a8c66..7a1f370f18 100644 --- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -98,10 +98,10 @@ static u8 sSpawnNum = 0; static Vec3f sDeadEffectVel = { 0.0f, 0.0f, 0.0f }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_3, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_3, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_GOHMA_LARVA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 20, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 20, ICHAIN_STOP), }; void EnGoma_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index 06a773f111..c008c007fe 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -102,7 +102,7 @@ void EnGs_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, thisx, &sCylinderInit); CollisionCheck_SetInfo2(&thisx->colChkInfo, &sDamageTable, &sColChkInfoInit); - thisx->targetMode = TARGET_MODE_6; + thisx->attentionRangeType = ATTENTION_RANGE_6; this->unk_1D8 = thisx->world.pos; this->actionFunc = func_80A4F734; this->unk_1B4[0].x = 1.0f; diff --git a/src/overlays/actors/ovl_En_Guest/z_en_guest.c b/src/overlays/actors/ovl_En_Guest/z_en_guest.c index 2aabc7d390..a2b5e695a1 100644 --- a/src/overlays/actors/ovl_En_Guest/z_en_guest.c +++ b/src/overlays/actors/ovl_En_Guest/z_en_guest.c @@ -45,8 +45,8 @@ static ColliderCylinderInitType1 sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_6, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_6, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 500, ICHAIN_STOP), }; void EnGuest_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index 6749ac4538..7e76139bfc 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -126,7 +126,7 @@ void EnHeishi2_Init(Actor* thisx, PlayState* play) { this->collider.dim.yShift = 0; this->collider.dim.radius = 15; this->collider.dim.height = 70; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; switch (this->type) { diff --git a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c index 1449388088..4b22137ce3 100644 --- a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c +++ b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c @@ -73,7 +73,7 @@ void EnHeishi3_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f); SkelAnime_Init(play, &this->skelAnime, &gEnHeishiSkel, &gEnHeishiIdleAnim, this->jointTable, this->morphTable, 17); this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); // "Castle Gate Soldier - Power Up" diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c index 9c7b7e5780..40a046d94a 100644 --- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c +++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c @@ -62,7 +62,7 @@ void EnHeishi4_Init(Actor* thisx, PlayState* play) { this->type = PARAMS_GET_U(thisx->params, 0, 8); thisx->colChkInfo.mass = MASS_IMMOVABLE; this->pos = thisx->world.pos; - thisx->targetMode = TARGET_MODE_6; + thisx->attentionRangeType = ATTENTION_RANGE_6; if (this->type == HEISHI4_AT_MARKET_DYING) { this->height = 30.0f; ActorShape_Init(&thisx->shape, 0.0f, NULL, 30.0f); diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index c86721e661..61260ee834 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -66,7 +66,7 @@ static s16 sPuzzleCounter = 0; static InitChainEntry sInitChain[] = { ICHAIN_F32(gravity, -1, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_DEKU_SCRUB, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2600, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 2600, ICHAIN_STOP), }; void EnHintnuts_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Hs/z_en_hs.c b/src/overlays/actors/ovl_En_Hs/z_en_hs.c index 7752e2af7d..2bfd15c386 100644 --- a/src/overlays/actors/ovl_En_Hs/z_en_hs.c +++ b/src/overlays/actors/ovl_En_Hs/z_en_hs.c @@ -89,7 +89,7 @@ void EnHs_Init(Actor* thisx, PlayState* play) { } this->unk_2A8 = 0; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; } void EnHs_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c index b5401f6bb9..c260b9159f 100644 --- a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c +++ b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c @@ -63,7 +63,7 @@ void EnHs2_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(CYAN) " ヒヨコの店(子人の時) \n" VT_RST); this->actionFunc = func_80A6F1A4; this->unk_2A8 = 0; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; } void EnHs2_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/src/overlays/actors/ovl_En_Hy/z_en_hy.c index 5893143f52..0257fd3565 100644 --- a/src/overlays/actors/ovl_En_Hy/z_en_hy.c +++ b/src/overlays/actors/ovl_En_Hy/z_en_hy.c @@ -323,7 +323,7 @@ typedef struct EnHyInit2Info { /* 0x00 */ f32 shadowScale; /* 0x04 */ Vec3f modelOffset; /* 0x10 */ f32 scale; - /* 0x14 */ s8 targetMode; + /* 0x14 */ s8 attentionRangeType; /* 0x18 */ f32 interactRange; } EnHyInit2Info; // size = 0x1C @@ -701,7 +701,7 @@ void EnHy_InitSetProperties(EnHy* this) { this->actor.shape.shadowScale = sInit2Info[type].shadowScale; Actor_SetScale(&this->actor, sInit2Info[type].scale); - this->actor.targetMode = sInit2Info[type].targetMode; + this->actor.attentionRangeType = sInit2Info[type].attentionRangeType; this->modelOffset = sInit2Info[type].modelOffset; this->interactRange = sInit2Info[type].interactRange; this->interactRange += this->collider.dim.radius; diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index a405d6ca0d..50547cb7b7 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -77,8 +77,10 @@ static ColliderCylinderInit sCylinderInitDroppedFlame = { }; static InitChainEntry sInitChainCapturableFlame[] = { - ICHAIN_U8(targetMode, TARGET_MODE_0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 60, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_0, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 60, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), }; 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 d1495130a5..2e1b2a7ed1 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -518,7 +518,7 @@ void EnIn_WaitForObject(EnIn* this, PlayState* play) { return; } Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->actionFunc = func_80A7A4BC; @@ -577,7 +577,7 @@ void EnIn_WaitForObject(EnIn* this, PlayState* play) { gSaveContext.eventInf[EVENTINF_HORSES_INDEX] = 0; break; case EVENTINF_HORSES_STATE_1: - this->actor.targetMode = TARGET_MODE_3; + this->actor.attentionRangeType = ATTENTION_RANGE_3; EnIn_ChangeAnim(this, ENIN_ANIM_2); this->actionFunc = func_80A7A568; Interface_SetTimer(60); @@ -593,7 +593,7 @@ void EnIn_WaitForObject(EnIn* this, PlayState* play) { break; case EVENTINF_HORSES_STATE_5: case EVENTINF_HORSES_STATE_6: - this->actor.targetMode = TARGET_MODE_3; + this->actor.attentionRangeType = ATTENTION_RANGE_3; EnIn_ChangeAnim(this, ENIN_ANIM_6); this->unk_1EC = 8; this->actionFunc = func_80A7AA40; @@ -938,7 +938,7 @@ void EnIn_Update(Actor* thisx, PlayState* play) { if (Actor_TalkOfferAccepted(&this->actor, play)) {} } else { Npc_UpdateTalking(play, &this->actor, &this->interactInfo.talkState, - ((this->actor.targetMode == 6) ? 80.0f : 320.0f) + this->collider.dim.radius, + ((this->actor.attentionRangeType == 6) ? 80.0f : 320.0f) + this->collider.dim.radius, EnIn_GetTextId, EnIn_UpdateTalkState); if (this->interactInfo.talkState != NPC_TALK_STATE_IDLE) { this->unk_1FA = this->unk_1F8; diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index baad698422..e829b9b8c0 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -69,7 +69,7 @@ void EnKakasi_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; SkelAnime_InitFlex(play, &this->skelanime, &object_ka_Skel_0065B0, &object_ka_Anim_000214, NULL, NULL, 0); this->rot = this->actor.world.rot; diff --git a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c index 03616fa88a..c74de73295 100644 --- a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c +++ b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c @@ -69,7 +69,7 @@ void EnKakasi2_Init(Actor* thisx, PlayState* play) { if (this->switchFlag == 0x3F) { this->switchFlag = -1; } - this->actor.targetMode = TARGET_MODE_4; + this->actor.attentionRangeType = ATTENTION_RANGE_4; this->maxSpawnDistance.x = (spawnRangeY * 40.0f) + 40.0f; this->maxSpawnDistance.y = (spawnRangeXZ * 40.0f) + 40.0f; diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index 6c2484b753..306b341d39 100644 --- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -71,7 +71,7 @@ void EnKakasi3_Init(Actor* thisx, PlayState* play) { PRINTF("\n\n"); // "Obonur" -- Related to the name of the scarecrow (Bonooru) PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ おーボヌール ☆☆☆☆☆ \n" VT_RST); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); 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 dc75223e6d..f9d140c3ce 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -213,7 +213,7 @@ void EnKanban_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); if (this->actor.params != ENKANBAN_PIECE) { - this->actor.targetMode = TARGET_MODE_0; + this->actor.attentionRangeType = ATTENTION_RANGE_0; this->actor.flags |= ACTOR_FLAG_0; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index 39ee88dad2..8094cf8aee 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -84,8 +84,8 @@ static ColliderCylinderInit sHeadColliderInit = { static CollisionCheckInfoInit sColCheckInfoInit = { 1, 15, 80, MASS_HEAVY }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 2500, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, TARGET_MODE_1, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2500, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_1, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_WITHERED_DEKU_BABA, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/src/overlays/actors/ovl_En_Ko/z_en_ko.c index 9bf438673b..74c3ea22e7 100644 --- a/src/overlays/actors/ovl_En_Ko/z_en_ko.c +++ b/src/overlays/actors/ovl_En_Ko/z_en_ko.c @@ -233,7 +233,7 @@ static EnKoModelInfo sModelInfo[] = { }; typedef struct EnKoInteractInfo { - /* 0x0 */ s8 targetMode; + /* 0x0 */ s8 attentionRangeType; /* 0x4 */ f32 lookDist; // extended by collider radius /* 0x8 */ f32 appearDist; } EnKoInteractInfo; // size = 0xC @@ -1073,7 +1073,7 @@ void func_80A98CD8(EnKo* this) { s32 type = ENKO_TYPE; EnKoInteractInfo* info = &sInteractInfo[type]; - this->actor.targetMode = info->targetMode; + this->actor.attentionRangeType = info->attentionRangeType; this->lookDist = info->lookDist; this->lookDist += this->collider.dim.radius; this->appearDist = info->appearDist; diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c index a939194c5d..86f7ef4800 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -332,7 +332,7 @@ void EnKz_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); Actor_SetScale(&this->actor, 0.01); - this->actor.targetMode = TARGET_MODE_3; + this->actor.attentionRangeType = ATTENTION_RANGE_3; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; Animation_ChangeByInfo(&this->skelanime, sAnimationInfo, ENKZ_ANIM_0); diff --git a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c index b181f0d02e..ab27f30954 100644 --- a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c +++ b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c @@ -53,7 +53,7 @@ void EnLightbox_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 6.0f); this->dyna.interactFlags = 0; this->dyna.transformFlags = 0; - thisx->targetMode = TARGET_MODE_0; + thisx->attentionRangeType = ATTENTION_RANGE_0; thisx->gravity = -2.0f; CollisionHeader_GetVirtual(&object_lightbox_Col_001F10, &colHeader); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader); diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index c222169707..fcc3179f57 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -269,7 +269,7 @@ void EnMa1_Init(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; if (!GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE) || CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) { diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index b295a6cd14..bd992587c0 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -242,7 +242,7 @@ void EnMa2_Init(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; } diff --git a/src/overlays/actors/ovl_En_Mb/z_en_mb.c b/src/overlays/actors/ovl_En_Mb/z_en_mb.c index b166870321..ca6597b593 100644 --- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c +++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c @@ -248,7 +248,7 @@ static DamageTable sClubMoblinDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_MOBLIN, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 5300, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 5300, ICHAIN_STOP), }; void EnMb_SetupAction(EnMb* this, EnMbActionFunc actionFunc) { diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c index d50b0c4a72..fc9f902ade 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -667,7 +667,7 @@ void EnMd_Init(Actor* thisx, PlayState* play) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENMD_ANIM_0); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->alpha = 255; Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_ELF, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, FAIRY_KOKIRI); 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 8bbd3b6ff4..9c40c24141 100644 --- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c +++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c @@ -66,7 +66,7 @@ void EnMk_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnMk_Wait; this->flags = 0; this->swimFlag = 0; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; if (GET_ITEMGETINF(ITEMGETINF_10)) { this->flags |= 4; diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index 9eff45ffc7..e8ac9f176a 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -176,7 +176,7 @@ void EnMm_Init(Actor* thisx, PlayState* play) { this->path = PARAMS_GET_U(this->actor.params, 0, 8); this->unk_1F0 = 2; this->unk_1E8 = 0; - this->actor.targetMode = TARGET_MODE_2; + this->actor.attentionRangeType = ATTENTION_RANGE_2; this->actor.gravity = -1.0f; this->speedXZ = 3.0f; this->unk_204 = this->actor.objectSlot; diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c index af77ab6c76..f3307daf59 100644 --- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c +++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c @@ -136,7 +136,7 @@ void EnMm2_Init(Actor* thisx, PlayState* play2) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->mouthTexIndex = RM2_MOUTH_CLOSED; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->unk_1F4 |= 1; this->actor.gravity = -1.0f; if (this->actor.params == 1) { diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c index 879b397e75..1cd83280b1 100644 --- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c +++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c @@ -53,8 +53,8 @@ static u16 sOfferTextIDs[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 500, ICHAIN_STOP), }; void EnMs_SetOfferText(EnMs* this, PlayState* play) { @@ -163,7 +163,7 @@ void EnMs_Update(Actor* thisx, PlayState* play) { this->activeTimer++; Actor_SetFocus(&this->actor, 20.0f); - this->actor.targetArrowOffset = 500.0f; + this->actor.lockOnArrowOffset = 500.0f; Actor_SetScale(&this->actor, 0.015f); SkelAnime_Update(&this->skelAnime); this->actionFunc(this, play); diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c index 501c674a3b..112e884f5f 100644 --- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c +++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c @@ -139,7 +139,7 @@ void EnMu_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &D_80AB0BD0); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &D_80AB0BFC); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; Actor_SetScale(&this->actor, 0.01f); EnMu_Interact(this, play); EnMu_SetupAction(this, EnMu_Pose); 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 97792c75cf..2f021ed3e6 100644 --- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -114,9 +114,9 @@ static ColliderCylinderInit sCylinderInit2 = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_6, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_6, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; void EnNiw_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index 618ef792f6..89d37ad3b1 100644 --- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -61,7 +61,7 @@ void EnNiwGirl_Init(Actor* thisx, PlayState* play) { SkelAnime_InitFlex(play, &this->skelAnime, &gNiwGirlSkel, &gNiwGirlRunAnim, this->jointTable, this->morphTable, 17); Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; if (this->actor.params < 0) { this->actor.params = 0; } diff --git a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index e686b9367b..c54da3b643 100644 --- a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -165,7 +165,7 @@ void func_80AB9F24(EnNiwLady* this, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->unk_272 = 0; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actor.draw = EnNiwLady_Draw; switch (this->unk_278) { case 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 e326d59e86..b76655be8a 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -99,8 +99,8 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_SPIKE, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 30, ICHAIN_STOP), }; void EnNy_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c index e4be3d4e64..9059d41dea 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c @@ -57,7 +57,7 @@ void EnOkarinaTag_Init(Actor* thisx, PlayState* play) { this->ocarinaSong = 0; this->unk_158 = 1; } - this->actor.targetMode = TARGET_MODE_1; + this->actor.attentionRangeType = ATTENTION_RANGE_1; if (this->actor.world.rot.z > 0) { this->interactRange = this->actor.world.rot.z * 40.0f; } diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index 31f78da323..6639663bae 100644 --- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -110,7 +110,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_OCTOROK, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 6500, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 6500, ICHAIN_STOP), }; void EnOkuta_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index a0cecf0478..2b185c9c41 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -324,8 +324,8 @@ static EnOssanGetGirlAParamsFunc sShopItemReplaceFunc[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 500, ICHAIN_STOP), }; // When selecting an item to buy, this is the position the item moves to diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index 5010f32df9..bb4407209a 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -119,7 +119,7 @@ void EnOwl_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sOwlCylinderInit); this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->actor.minVelocityY = -10.0f; - this->actor.targetArrowOffset = 500.0f; + this->actor.lockOnArrowOffset = 500.0f; EnOwl_ChangeMode(this, EnOwl_WaitDefault, func_80ACC540, &this->skelAnime2, &gOwlPerchAnim, 0.0f); this->actionFlags = this->unk_406 = this->unk_409 = 0; this->unk_405 = 4; diff --git a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c index 1beef8495f..d97d5f2082 100644 --- a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c +++ b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c @@ -180,7 +180,7 @@ typedef enum PeahatState { } PeahatState; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 700, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 700, ICHAIN_STOP), }; void EnPeehat_SetupAction(EnPeehat* this, EnPeehatActionFunc actionFunc) { diff --git a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c index 5440de81a8..e866ffe13c 100644 --- a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c +++ b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c @@ -54,7 +54,7 @@ static ColliderCylinderInit sColliderInit = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_POE_WASTELAND, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 3200, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 3200, ICHAIN_STOP), }; void EnPoDesert_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index 8398397417..14df53b27c 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -127,7 +127,7 @@ static s32 sNumSpawned = 0; static Vec3f sFieldMiddle = { -1000.0f, 0.0f, 6500.0f }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 3200, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 3200, ICHAIN_STOP), }; static Vec3f D_80AD7114 = { 0.0f, 3.0f, 0.0f }; diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index 681770d82d..24983e306b 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -69,7 +69,7 @@ static s32 D_80AD8D24 = 0; static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_DAMPES_GHOST, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 1500, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 1500, ICHAIN_STOP), }; static Vec3f D_80AD8D30 = { 0.0f, 1.5f, 0.0f }; diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 605dca232f..c460dc37b9 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -134,7 +134,7 @@ static s32 D_80ADD784 = 0; static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 7, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 6000, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 6000, ICHAIN_STOP), }; static Vec3f sZeroVector = { 0.0f, 0.0f, 0.0f }; diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index f6c1231a84..7c533e632c 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -175,7 +175,7 @@ static Color_RGBA8 D_80AE1B54 = { 90, 85, 50, 255 }; static Color_RGBA8 D_80AE1B58 = { 100, 90, 100, 255 }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 3200, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 3200, ICHAIN_STOP), }; static Vec3f D_80AE1B60 = { 0.0f, 3.0f, 0.0f }; diff --git a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c index 0aba5350a3..d9441d5506 100644 --- a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c +++ b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c @@ -53,7 +53,7 @@ void EnPubox_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 6.0f); this->dyna.interactFlags = 0; this->dyna.transformFlags = 0; - thisx->targetMode = TARGET_MODE_1; + thisx->attentionRangeType = ATTENTION_RANGE_1; thisx->gravity = -2.0f; CollisionHeader_GetVirtual(&gBlockMediumCol, &colHeader); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader); diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index 59d69882be..29aca4779d 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -129,7 +129,7 @@ static DamageTable sDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -3500, ICHAIN_STOP), }; @@ -142,7 +142,7 @@ void EnRd_Init(Actor* thisx, PlayState* play) { EnRd* this = (EnRd*)thisx; Actor_ProcessInitChain(thisx, sInitChain); - this->actor.targetMode = TARGET_MODE_0; + this->actor.attentionRangeType = ATTENTION_RANGE_0; this->actor.colChkInfo.damageTable = &sDamageTable; ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f); this->upperBodyYRotation = this->headYRotation = 0; @@ -434,7 +434,7 @@ void EnRd_WalkToHome(EnRd* this, PlayState* play) { PLAYER_STATE1_19 | PLAYER_STATE1_21)) && !(player->stateFlags2 & PLAYER_STATE2_7) && (Actor_WorldDistXYZToPoint(&player->actor, &this->actor.home.pos) < 150.0f)) { - this->actor.targetMode = TARGET_MODE_0; + this->actor.attentionRangeType = ATTENTION_RANGE_0; EnRd_SetupWalkToPlayer(this, play); } else if (this->actor.params > REDEAD_TYPE_DOES_NOT_MOURN_IF_WALKING) { if (this->actor.parent != NULL) { @@ -579,7 +579,7 @@ void EnRd_Grab(EnRd* this, PlayState* play) { if (!LINK_IS_ADULT) { Math_SmoothStepToF(&this->actor.shape.yOffset, 0, 1.0f, 400.0f, 0.0f); } - this->actor.targetMode = TARGET_MODE_0; + this->actor.attentionRangeType = ATTENTION_RANGE_0; this->actor.flags |= ACTOR_FLAG_0; this->playerStunWaitTimer = 0xA; this->grabWaitTimer = 0xF; diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c index 4fb898d7dc..73ca41eeb7 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c @@ -113,7 +113,7 @@ void EnReeba_Init(Actor* thisx, PlayState* play) { s32 surfaceType; this->actor.naviEnemyId = NAVI_ENEMY_LEEVER; - this->actor.targetMode = TARGET_MODE_3; + this->actor.attentionRangeType = ATTENTION_RANGE_3; this->actor.gravity = -3.5f; this->actor.focus.pos = this->actor.world.pos; SkelAnime_Init(play, &this->skelanime, &object_reeba_Skel_001EE8, &object_reeba_Anim_0001E4, this->jointTable, diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index 4d70976021..08bc057d96 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -158,8 +158,8 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_LIKE_LIKE, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 30, ICHAIN_STOP), }; void EnRr_Init(Actor* thisx, PlayState* play2) { diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index ad24b213c6..45a8a53698 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -521,7 +521,7 @@ void EnSa_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->alpha = 255; this->unk_21A = this->actor.shape.rot; 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 82c5da622f..e0cb490811 100644 --- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c +++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c @@ -86,8 +86,8 @@ static DamageTable sDamageTable[] = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_SHELL_BLADE, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 30, ICHAIN_STOP), }; static Vec3f sFlamePosOffsets[] = { diff --git a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c index 679a00f8af..6389b8a0fd 100644 --- a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c +++ b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c @@ -58,7 +58,7 @@ static CollisionCheckInfoInit sColChkInfoInit = { 1, 20, 40, MASS_HEAVY }; static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BUSINESS_SCRUB, ICHAIN_CONTINUE), ICHAIN_F32(gravity, -1, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2600, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 2600, ICHAIN_STOP), }; void EnShopnuts_Init(Actor* thisx, PlayState* play) { 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 a7073ca83d..231b2e795c 100644 --- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c +++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c @@ -149,7 +149,7 @@ void EnSkb_SpawnDebris(PlayState* play, EnSkb* this, Vec3f* spawnPos) { } static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index fb7f81433a..72b2bdec32 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -278,8 +278,8 @@ static EnSkjActionFunc sActionFuncs[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 30, ICHAIN_STOP), }; static s32 D_80B01EA0; // gets set if ACTOR_FLAG_TALK is set @@ -416,7 +416,7 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) { } if ((type > 0) && (type < 3)) { - this->actor.targetMode = 7; + this->actor.attentionRangeType = ATTENTION_RANGE_7; this->posCopy = this->actor.world.pos; sOcarinaMinigameSkullKids[type - 1].unk_0 = 1; sOcarinaMinigameSkullKids[type - 1].skullkid = this; diff --git a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c index b9a79880db..9d40c44ed6 100644 --- a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c +++ b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c @@ -48,8 +48,8 @@ static ColliderCylinderInitType1 sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 30, ICHAIN_STOP), }; void EnSkjneedle_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c index 1cf1a2c1a6..881a17fe90 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -131,7 +131,7 @@ void EnSth_Init(Actor* thisx, PlayState* play) { EnSth_SetupAction(this, EnSth_WaitForObject); this->actor.draw = NULL; this->unk_2B2 = 0; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; } void EnSth_SetupShapeColliderUpdate2AndDraw(EnSth* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index 2189f7a317..f906f8fb0e 100644 --- a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -160,7 +160,7 @@ void EnSyatekiMan_Init(Actor* thisx, PlayState* play) { PRINTF("\n\n"); // "Old man appeared!! Muhohohohohohohon" PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 親父登場!!むほほほほほほほーん ☆☆☆☆☆ \n" VT_RST); - this->actor.targetMode = TARGET_MODE_1; + this->actor.attentionRangeType = ATTENTION_RANGE_1; Actor_SetScale(&this->actor, 0.01f); SkelAnime_InitFlex(play, &this->skelAnime, &gObjectOssanSkel, &gObjectOssanAnim_000338, this->jointTable, this->morphTable, 9); diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c index b5983113fd..04b1f13618 100644 --- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c +++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c @@ -59,9 +59,9 @@ static ColliderCylinderInit sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_1, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_1, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; void EnSyatekiNiw_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index 6d52e4ed9b..b76e71f43a 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -148,7 +148,7 @@ void EnTa_Init(Actor* thisx, PlayState* play2) { this->blinkTimer = 20; this->blinkFunc = EnTa_BlinkWaitUntilNext; Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actor.velocity.y = -4.0f; this->actor.minVelocityY = -4.0f; this->actor.gravity = -1.0f; diff --git a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c index 41041818c0..4210979ae7 100644 --- a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c +++ b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c @@ -66,7 +66,7 @@ void EnTakaraMan_Init(Actor* thisx, PlayState* play) { this->originalRoomNum = thisx->room; thisx->room = -1; thisx->world.rot.y = thisx->shape.rot.y = -0x4E20; - thisx->targetMode = TARGET_MODE_1; + thisx->attentionRangeType = ATTENTION_RANGE_1; this->actionFunc = func_80B176E0; } 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 15ca70b247..060b25db1b 100644 --- a/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -243,7 +243,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_STALFOS, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 500, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 500, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 15, ICHAIN_CONTINUE), ICHAIN_F32(scale.y, 0, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1500, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/src/overlays/actors/ovl_En_Tg/z_en_tg.c index e18b58f0fc..9baf1800f1 100644 --- a/src/overlays/actors/ovl_En_Tg/z_en_tg.c +++ b/src/overlays/actors/ovl_En_Tg/z_en_tg.c @@ -115,7 +115,7 @@ void EnTg_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; Actor_SetScale(&this->actor, 0.01f); this->nextDialogue = play->state.frames % 2; this->actionFunc = EnTg_SpinIfNotTalking; 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 9c67db8ede..6533739312 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -150,7 +150,7 @@ static DamageTable sDamageTable[] = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_RED_TEKTITE, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_F32(minVelocityY, -40, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_STOP), }; @@ -177,7 +177,7 @@ void EnTite_Init(Actor* thisx, PlayState* play) { EnTite* this = (EnTite*)thisx; Actor_ProcessInitChain(thisx, sInitChain); - thisx->targetMode = TARGET_MODE_3; + thisx->attentionRangeType = ATTENTION_RANGE_3; Actor_SetScale(thisx, 0.01f); SkelAnime_Init(play, &this->skelAnime, &object_tite_Skel_003A20, &object_tite_Anim_0012E4, this->jointTable, this->morphTable, 25); diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index b7d8b8971d..87fecc292c 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -497,7 +497,7 @@ void EnTk_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actor.gravity = -0.1f; this->currentReward = -1; this->currentSpot = NULL; diff --git a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c index 91bfa379ec..1cf867f61a 100644 --- a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c +++ b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c @@ -127,7 +127,7 @@ void EnToryo_Init(Actor* thisx, PlayState* play) { Animation_GetLastFrame(sEnToryoAnimation.animation), sEnToryoAnimation.mode, sEnToryoAnimation.morphFrames); this->stateFlags |= 8; - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actionFunc = EnToryo_Idle; } diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c index 85ffcdb5c8..89480d2213 100644 --- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c +++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c @@ -121,7 +121,7 @@ static DamageTable sDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 10, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 10, ICHAIN_STOP), }; void EnTp_SetupAction(EnTp* this, EnTpActionFunc actionFunc) { @@ -136,7 +136,7 @@ void EnTp_Init(Actor* thisx, PlayState* play2) { s32 i; Actor_ProcessInitChain(&this->actor, sInitChain); - this->actor.targetMode = TARGET_MODE_3; + this->actor.attentionRangeType = ATTENTION_RANGE_3; this->actor.colChkInfo.damageTable = &sDamageTable; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 0.14f); this->unk_150 = 0; diff --git a/src/overlays/actors/ovl_En_Trap/z_en_trap.c b/src/overlays/actors/ovl_En_Trap/z_en_trap.c index a4aebe5869..5157cdf20f 100644 --- a/src/overlays/actors/ovl_En_Trap/z_en_trap.c +++ b/src/overlays/actors/ovl_En_Trap/z_en_trap.c @@ -112,7 +112,7 @@ void EnTrap_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, thisx, &sCylinderInit); ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 0.0f); - thisx->targetMode = TARGET_MODE_3; + thisx->attentionRangeType = ATTENTION_RANGE_3; thisx->colChkInfo.mass = 0xFF; } diff --git a/src/overlays/actors/ovl_En_Vali/z_en_vali.c b/src/overlays/actors/ovl_En_Vali/z_en_vali.c index 96b6ef9db2..b6509f6d4e 100644 --- a/src/overlays/actors/ovl_En_Vali/z_en_vali.c +++ b/src/overlays/actors/ovl_En_Vali/z_en_vali.c @@ -130,7 +130,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BARI, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 5000, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 5000, ICHAIN_STOP), }; void EnVali_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index ae4cc3f89e..8bcb2b4e6d 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -109,7 +109,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_WALLMASTER, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 5500, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 5500, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1500, ICHAIN_STOP), }; 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 d7e1a835d3..35d7d22e86 100644 --- a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c +++ b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c @@ -98,7 +98,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_STINGER, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 3, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 2500, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 2500, ICHAIN_STOP), }; void EnWeiyer_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c index acd0730c48..bc7d78e8ff 100644 --- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -200,7 +200,7 @@ ActorProfile En_Wf_Profile = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -3000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c index 1054574ded..94e576c06d 100644 --- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c +++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c @@ -131,7 +131,7 @@ void EnWonderItem_Init(Actor* thisx, PlayState* play) { if (this->switchFlag == 0x3F) { this->switchFlag = -1; } - this->actor.targetMode = TARGET_MODE_1; + this->actor.attentionRangeType = ATTENTION_RANGE_1; if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) { PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ You are Shock! ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); Actor_Kill(&this->actor); diff --git a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c index 95687a2964..40bbd6779f 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c @@ -45,7 +45,7 @@ void EnWonderTalk_Init(Actor* thisx, PlayState* play) { if (this->switchFlag == 0x3F) { this->switchFlag = -1; } - this->actor.targetMode = TARGET_MODE_1; + this->actor.attentionRangeType = ATTENTION_RANGE_1; if (this->switchFlag >= 0) { if (Flags_GetSwitch(play, this->switchFlag)) { PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ You are Shock! ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); diff --git a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c index b03e704756..918b07b256 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c @@ -58,13 +58,13 @@ void EnWonderTalk2_Init(Actor* thisx, PlayState* play) { rangeIndex = 0; } - this->actor.targetMode = D_80B3A8E0[rangeIndex]; + this->actor.attentionRangeType = D_80B3A8E0[rangeIndex]; PRINTF("\n\n"); // "originally?" PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ 元は? ☆☆☆☆☆ %d\n" VT_RST, this->actor.world.rot.z); // "The range is?" - PRINTF(VT_FGCOL(MAGENTA) "☆☆☆☆☆ レンジは? ☆☆☆☆☆ %d\n" VT_RST, this->actor.targetMode); + PRINTF(VT_FGCOL(MAGENTA) "☆☆☆☆☆ レンジは? ☆☆☆☆☆ %d\n" VT_RST, this->actor.attentionRangeType); // "Is the range?" PRINTF(VT_FGCOL(CYAN) "☆☆☆☆☆ は、範囲わ? ☆☆☆☆☆ %f\n" VT_RST, this->triggerRange); PRINTF("\n\n"); @@ -235,7 +235,7 @@ void func_80B3A4F8(EnWonderTalk2* this, PlayState* play) { // "Processing range" PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ 処理範囲 %f\n" VT_RST, this->triggerRange); // "What is your range?" - PRINTF(VT_FGCOL(MAGENTA) "☆☆☆☆☆ レンジは? \t\t %d\n" VT_RST, this->actor.targetMode); + PRINTF(VT_FGCOL(MAGENTA) "☆☆☆☆☆ レンジは? \t\t %d\n" VT_RST, this->actor.attentionRangeType); PRINTF("\n\n"); PRINTF("\n\n"); switch (this->talkMode) { diff --git a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c index df2da294b7..434cf729aa 100644 --- a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c +++ b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c @@ -70,7 +70,7 @@ static f32 sSpawnDistance[] = { 707.0f, 525.0f, 510.0f, 500.0f, 566.0f, 141.0f } static s16 sSpawnAngle[] = { 0x1FFF, 0x4C9E, 0x77F5, 0xA5C9, 0xD6C3, 0xA000 }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 5600, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 5600, ICHAIN_STOP), }; static Gfx* D_80B3BF54[] = { diff --git a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c index b2c44c0b69..45c57482d2 100644 --- a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c +++ b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c @@ -82,7 +82,7 @@ void EnYabusameMark_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ やぶさめまと ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); this->actor.flags &= ~ACTOR_FLAG_0; this->typeIndex = this->actor.params; - this->actor.targetMode = TARGET_MODE_5; + this->actor.attentionRangeType = ATTENTION_RANGE_5; PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 種類インデックス \t ☆☆☆☆☆ %d\n" VT_RST, this->typeIndex); switch (this->typeIndex) { case 0: diff --git a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c index fc1541d8c5..7dfc68bebd 100644 --- a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c +++ b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c @@ -52,7 +52,7 @@ static ColliderCylinderInit sCylinderInit = { static InitChainEntry sInitChain[] = { ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 16, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 16, ICHAIN_STOP), }; static void* D_80B43F64[] = { gFloorTileEnemyTopTex, gFloorTileEnemyBottomTex }; diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index e030cef735..bc52b230de 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -195,7 +195,7 @@ static DamageTable sDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 15, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -3500, ICHAIN_STOP), }; @@ -282,7 +282,7 @@ void EnZf_Init(Actor* thisx, PlayState* play) { f32 posDiff; Actor_ProcessInitChain(thisx, sInitChain); - thisx->targetMode = TARGET_MODE_3; + thisx->attentionRangeType = ATTENTION_RANGE_3; this->clearFlag = PARAMS_GET_S(thisx->params, 8, 8); /* Strip the top byte of params */ thisx->params &= 0xFF; 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 735f5380ad..2701f49a6e 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -85,7 +85,7 @@ void EnZl1_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); Actor_SetScale(&this->actor, 0.01f); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 24.0f); - this->actor.targetMode = TARGET_MODE_0; + this->actor.attentionRangeType = ATTENTION_RANGE_0; if (IS_CUTSCENE_LAYER) { frameCount = Animation_GetLastFrame(&gChildZelda1Anim_00438); 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 949935663e..477dffb9dd 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -367,7 +367,7 @@ void EnZl4_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actor.textId = -1; this->eyeExpression = this->mouthExpression = ZL4_MOUTH_NEUTRAL; 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 20d595c206..fb45d20bc4 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -588,7 +588,7 @@ void EnZo_Init(Actor* thisx, PlayState* play) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENZO_ANIM_2); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = TARGET_MODE_6; + this->actor.attentionRangeType = ATTENTION_RANGE_6; this->dialogRadius = this->collider.dim.radius + 30.0f; this->trackingMode = NPC_TRACKING_NONE; this->canSpeak = false; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 9ca7dfebb6..d7d65652e4 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -829,8 +829,8 @@ static FishingFishInit sFishInits[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_5, ICHAIN_CONTINUE), + ICHAIN_F32(lockOnArrowOffset, 0, ICHAIN_STOP), }; void Fishing_Init(Actor* thisx, PlayState* play2) { @@ -1029,7 +1029,7 @@ void Fishing_Init(Actor* thisx, PlayState* play2) { if (thisx->params == EN_FISH_AQUARIUM) { this->fishState = 100; Actor_ChangeCategory(play, &play->actorCtx, thisx, ACTORCAT_PROP); - thisx->targetMode = TARGET_MODE_0; + thisx->attentionRangeType = ATTENTION_RANGE_0; thisx->flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; this->lightNode = LightContext_InsertLight(play, &play->lightCtx, &this->lightInfo); } else { diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c index eb2bec5252..70b09b053b 100644 --- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c +++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c @@ -316,7 +316,7 @@ void ObjSwitch_Init(Actor* thisx, PlayState* play) { if (type == OBJSWITCH_TYPE_CRYSTAL_TARGETABLE) { this->dyna.actor.flags |= ACTOR_FLAG_0; - this->dyna.actor.targetMode = TARGET_MODE_4; + this->dyna.actor.attentionRangeType = ATTENTION_RANGE_4; } this->dyna.actor.colChkInfo.mass = MASS_IMMOVABLE; diff --git a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c index 3fec89915e..bef529675f 100644 --- a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c +++ b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c @@ -51,7 +51,7 @@ static ObjTimeblockSizeOptions sSizeOptions[] = { static f32 sRanges[] = { 60.0, 100.0, 140.0, 180.0, 220.0, 260.0, 300.0, 300.0 }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), + ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_2, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 1800, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 2bd876a32d..04988730fb 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3480,7 +3480,7 @@ void Player_UpdateShapeYaw(Player* this, PlayState* play) { Actor* focusActor = this->focusActor; if ((focusActor != NULL) && - ((play->actorCtx.targetCtx.reticleSpinCounter != 0) || (this->actor.category != ACTORCAT_PLAYER))) { + ((play->actorCtx.attention.reticleSpinCounter != 0) || (this->actor.category != ACTORCAT_PLAYER))) { Math_ScaledStepToS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &focusActor->focus.pos), 4000); } else if ((this->stateFlags1 & PLAYER_STATE1_17) && @@ -3578,7 +3578,7 @@ void func_80836BEC(Player* this, PlayState* play) { CHECK_BTN_ALL(sControlInput->press.button, BTN_Z)) { if (this->actor.category == ACTORCAT_PLAYER) { - actorToTarget = play->actorCtx.targetCtx.naviHoverActor; + actorToTarget = play->actorCtx.attention.naviHoverActor; } else { actorToTarget = &GET_PLAYER(play)->actor; } @@ -3588,7 +3588,7 @@ void func_80836BEC(Player* this, PlayState* play) { if ((actorToTarget != NULL) && !(actorToTarget->flags & ACTOR_FLAG_27)) { if ((actorToTarget == this->focusActor) && (this->actor.category == ACTORCAT_PLAYER)) { - actorToTarget = play->actorCtx.targetCtx.arrowHoverActor; + actorToTarget = play->actorCtx.attention.arrowHoverActor; } if (actorToTarget != this->focusActor) { @@ -3614,11 +3614,11 @@ void func_80836BEC(Player* this, PlayState* play) { if (this->focusActor != NULL) { if ((this->actor.category == ACTORCAT_PLAYER) && (this->focusActor != this->unk_684) && - Target_ShouldReleaseLockOn(this->focusActor, this, ignoreLeash)) { + Attention_ShouldReleaseLockOn(this->focusActor, this, ignoreLeash)) { func_8008EDF0(this); this->stateFlags1 |= PLAYER_STATE1_30; } else if (this->focusActor != NULL) { - this->focusActor->targetPriority = 40; + this->focusActor->attentionPriority = 40; } } else if (this->unk_684 != NULL) { this->focusActor = this->unk_684; @@ -3749,7 +3749,7 @@ s32 Player_GetMovementSpeedAndYaw(Player* this, f32* outSpeedTarget, s16* outYaw *outYawTarget = this->actor.shape.rot.y; if (this->focusActor != NULL) { - if ((play->actorCtx.targetCtx.reticleSpinCounter != 0) && !(this->stateFlags2 & PLAYER_STATE2_6)) { + if ((play->actorCtx.attention.reticleSpinCounter != 0) && !(this->stateFlags2 & PLAYER_STATE2_6)) { *outYawTarget = Math_Vec3f_Yaw(&this->actor.world.pos, &this->focusActor->focus.pos); return false; } @@ -10023,7 +10023,7 @@ void func_80846A68(PlayState* play, Player* this) { } static InitChainEntry sInitChain[] = { - ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), + ICHAIN_F32(lockOnArrowOffset, 500, ICHAIN_STOP), }; static EffectBlureInit2 D_8085470C = { @@ -10360,7 +10360,7 @@ void Player_UpdateInterface(PlayState* play, Player* this) { doAction = DO_ACTION_JUMP; } else if ((this->heldItemAction >= PLAYER_IA_SWORD_MASTER) || ((this->stateFlags2 & PLAYER_STATE2_20) && - (play->actorCtx.targetCtx.naviHoverActor == NULL))) { + (play->actorCtx.attention.naviHoverActor == NULL))) { doAction = DO_ACTION_PUTAWAY; } } @@ -10804,9 +10804,9 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { seqMode = SEQ_MODE_STILL; } - if (play->actorCtx.targetCtx.bgmEnemy != NULL) { + if (play->actorCtx.attention.bgmEnemy != NULL) { seqMode = SEQ_MODE_ENEMY; - Audio_SetBgmEnemyVolume(sqrtf(play->actorCtx.targetCtx.bgmEnemy->xyzDistToPlayerSq)); + Audio_SetBgmEnemyVolume(sqrtf(play->actorCtx.attention.bgmEnemy->xyzDistToPlayerSq)); } if (play->sceneId != SCENE_FISHING_POND) { diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 9548af197a..766a3dbbef 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -319,12 +319,12 @@ ActorShadow_DrawFoot = 0x8001F6B4; // type:func ActorShadow_DrawFeet = 0x8001F8C0; // type:func Actor_SetFeetPos = 0x8001FD8C; // type:func Actor_ProjectPos = 0x8001FDE0; // type:func -Target_SetReticlePos = 0x8001FE44; // type:func -Target_InitReticle = 0x8001FE7C; // type:func -Target_SetNaviState = 0x8001FF44; // type:func -Target_Init = 0x800200A8; // type:func -Target_Draw = 0x8002010C; // type:func -Target_Update = 0x80020748; // type:func +Attention_SetReticlePos = 0x8001FE44; // type:func +Attention_InitReticle = 0x8001FE7C; // type:func +Attention_SetNaviState = 0x8001FF44; // type:func +Attention_Init = 0x800200A8; // type:func +Attention_Draw = 0x8002010C; // type:func +Attention_Update = 0x80020748; // type:func Flags_GetSwitch = 0x80020ADC; // type:func Flags_SetSwitch = 0x80020B10; // type:func Flags_UnsetSwitch = 0x80020B50; // type:func @@ -408,9 +408,9 @@ func_8002ED80 = 0x80022B94; // type:func Actor_GetFocus = 0x80022CB0; // type:func Actor_GetWorld = 0x80022CE4; // type:func Actor_GetWorldPosShapeRot = 0x80022D18; // type:func -Target_WeightedDistToPlayerSq = 0x80022D94; // type:func -Target_ActorIsInRange = 0x80022E64; // type:func -Target_ShouldReleaseLockOn = 0x80022EA0; // type:func +Attention_WeightedDistToPlayerSq = 0x80022D94; // type:func +Attention_ActorIsInRange = 0x80022E64; // type:func +Attention_ShouldReleaseLockOn = 0x80022EA0; // type:func Actor_TalkOfferAccepted = 0x80022F70; // type:func Actor_OfferTalkExchange = 0x80022FA0; // type:func Actor_OfferTalkExchangeEquiCylinder = 0x80023074; // type:func @@ -469,9 +469,9 @@ Actor_SpawnAsChild = 0x80025A30; // type:func Actor_SpawnTransitionActors = 0x80025AC8; // type:func Actor_SpawnEntry = 0x80025C04; // type:func Actor_Delete = 0x80025C88; // type:func -Target_InTargetableScreenRegion = 0x80025D8C; // type:func -Target_FindTargetableActorInCategory = 0x80025DE0; // type:func -Target_FindTargetableActor = 0x80025FFC; // type:func +Attention_ActorOnScreen = 0x80025D8C; // type:func +Attention_FindActorInCategory = 0x80025DE0; // type:func +Attention_FindActor = 0x80025FFC; // type:func Actor_Find = 0x8002614C; // type:func Enemy_StartFinishingBlow = 0x8002618C; // type:func FaceChange_UpdateBlinking = 0x800261C4; // type:func From 96914a25c8e61f697cc0e2839deaa2decfecf505 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sat, 7 Sep 2024 10:26:56 -0700 Subject: [PATCH 39/86] Match more GC button colors (#2156) --- src/code/z_message.c | 110 ++++++++++++++---- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 26 ++++- 2 files changed, 113 insertions(+), 23 deletions(-) diff --git a/src/code/z_message.c b/src/code/z_message.c index 45edcc6428..ea603ac425 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -11,13 +11,83 @@ #pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" #if !PLATFORM_GC -#define OCARINA_BUTTON_A_PRIM_R 80 -#define OCARINA_BUTTON_A_PRIM_G 150 -#define OCARINA_BUTTON_A_PRIM_B 255 +#define OCARINA_BUTTON_A_PRIM_1_R 80 +#define OCARINA_BUTTON_A_PRIM_1_G 150 +#define OCARINA_BUTTON_A_PRIM_1_B 255 #else -#define OCARINA_BUTTON_A_PRIM_R 80 -#define OCARINA_BUTTON_A_PRIM_G 255 -#define OCARINA_BUTTON_A_PRIM_B 150 +#define OCARINA_BUTTON_A_PRIM_1_R 80 +#define OCARINA_BUTTON_A_PRIM_1_G 255 +#define OCARINA_BUTTON_A_PRIM_1_B 150 +#endif + +#if !PLATFORM_GC +#define OCARINA_BUTTON_A_PRIM_2_R 100 +#define OCARINA_BUTTON_A_PRIM_2_G 200 +#define OCARINA_BUTTON_A_PRIM_2_B 255 +#else +#define OCARINA_BUTTON_A_PRIM_2_R 100 +#define OCARINA_BUTTON_A_PRIM_2_G 255 +#define OCARINA_BUTTON_A_PRIM_2_B 200 +#endif + +#if !PLATFORM_GC +#define OCARINA_BUTTON_A_ENV_1_R 10 +#define OCARINA_BUTTON_A_ENV_1_G 10 +#define OCARINA_BUTTON_A_ENV_1_B 10 +#else +#define OCARINA_BUTTON_A_ENV_1_R 10 +#define OCARINA_BUTTON_A_ENV_1_G 10 +#define OCARINA_BUTTON_A_ENV_1_B 10 +#endif + +#if !PLATFORM_GC +#define OCARINA_BUTTON_A_ENV_2_R 50 +#define OCARINA_BUTTON_A_ENV_2_G 50 +#define OCARINA_BUTTON_A_ENV_2_B 255 +#else +#define OCARINA_BUTTON_A_ENV_2_R 50 +#define OCARINA_BUTTON_A_ENV_2_G 255 +#define OCARINA_BUTTON_A_ENV_2_B 50 +#endif + +#if !PLATFORM_GC +#define OCARINA_ICON_PRIM_1_R 0 +#define OCARINA_ICON_PRIM_1_G 80 +#define OCARINA_ICON_PRIM_1_B 200 +#else +#define OCARINA_ICON_PRIM_1_R 0 +#define OCARINA_ICON_PRIM_1_G 200 +#define OCARINA_ICON_PRIM_1_B 80 +#endif + +#if !PLATFORM_GC +#define OCARINA_ICON_PRIM_2_R 50 +#define OCARINA_ICON_PRIM_2_G 130 +#define OCARINA_ICON_PRIM_2_B 255 +#else +#define OCARINA_ICON_PRIM_2_R 50 +#define OCARINA_ICON_PRIM_2_G 255 +#define OCARINA_ICON_PRIM_2_B 130 +#endif + +#if !PLATFORM_GC +#define OCARINA_ICON_ENV_1_R 0 +#define OCARINA_ICON_ENV_1_G 0 +#define OCARINA_ICON_ENV_1_B 0 +#else +#define OCARINA_ICON_ENV_1_R 0 +#define OCARINA_ICON_ENV_1_G 0 +#define OCARINA_ICON_ENV_1_B 0 +#endif + +#if !PLATFORM_GC +#define OCARINA_ICON_ENV_2_R 0 +#define OCARINA_ICON_ENV_2_G 130 +#define OCARINA_ICON_ENV_2_B 255 +#else +#define OCARINA_ICON_ENV_2_R 0 +#define OCARINA_ICON_ENV_2_G 255 +#define OCARINA_ICON_ENV_2_B 130 #endif s16 sTextFade = false; // original name: key_off_flag ? @@ -205,9 +275,9 @@ void Message_ResetOcarinaNoteState(void) { sOcarinaButtonAlphaValues[0] = sOcarinaButtonAlphaValues[1] = sOcarinaButtonAlphaValues[2] = sOcarinaButtonAlphaValues[3] = sOcarinaButtonAlphaValues[4] = sOcarinaButtonAlphaValues[5] = sOcarinaButtonAlphaValues[6] = sOcarinaButtonAlphaValues[7] = sOcarinaButtonAlphaValues[8] = 0; - sOcarinaButtonAPrimR = OCARINA_BUTTON_A_PRIM_R; - sOcarinaButtonAPrimG = OCARINA_BUTTON_A_PRIM_G; - sOcarinaButtonAPrimB = OCARINA_BUTTON_A_PRIM_B; + sOcarinaButtonAPrimR = OCARINA_BUTTON_A_PRIM_1_R; + sOcarinaButtonAPrimG = OCARINA_BUTTON_A_PRIM_1_G; + sOcarinaButtonAPrimB = OCARINA_BUTTON_A_PRIM_1_B; sOcarinaButtonAEnvR = 10; sOcarinaButtonAEnvG = 10; sOcarinaButtonAEnvB = 10; @@ -627,16 +697,16 @@ void Message_SetTextColor(MessageContext* msgCtx, u16 colorParameter) { void Message_DrawTextboxIcon(PlayState* play, Gfx** p, s16 x, s16 y) { static s16 sIconPrimColors[][3] = { - { 0, 200, 80 }, - { 50, 255, 130 }, + { OCARINA_ICON_PRIM_1_R, OCARINA_ICON_PRIM_1_G, OCARINA_ICON_PRIM_1_B }, + { OCARINA_ICON_PRIM_2_R, OCARINA_ICON_PRIM_2_G, OCARINA_ICON_PRIM_2_B }, }; static s16 sIconEnvColors[][3] = { - { 0, 0, 0 }, - { 0, 255, 130 }, + { OCARINA_ICON_ENV_1_R, OCARINA_ICON_ENV_1_G, OCARINA_ICON_ENV_1_B }, + { OCARINA_ICON_ENV_2_R, OCARINA_ICON_ENV_2_G, OCARINA_ICON_ENV_2_B }, }; - static s16 sIconPrimR = 0; - static s16 sIconPrimG = 200; - static s16 sIconPrimB = 80; + static s16 sIconPrimR = OCARINA_ICON_PRIM_1_R; + static s16 sIconPrimG = OCARINA_ICON_PRIM_1_G; + static s16 sIconPrimB = OCARINA_ICON_PRIM_1_B; static s16 sIconFlashTimer = 12; static s16 sIconFlashColorIdx = 0; static s16 sIconEnvR = 0; @@ -2839,12 +2909,12 @@ void Message_DrawMain(PlayState* play, Gfx** p) { gOcarinaBtnIconCUpTex, // OCARINA_BTN_C_UP }; static s16 sOcarinaButtonAPrimColors[][3] = { - { 80, 255, 150 }, - { 100, 255, 200 }, + { OCARINA_BUTTON_A_PRIM_1_R, OCARINA_BUTTON_A_PRIM_1_G, OCARINA_BUTTON_A_PRIM_1_B }, + { OCARINA_BUTTON_A_PRIM_2_R, OCARINA_BUTTON_A_PRIM_2_G, OCARINA_BUTTON_A_PRIM_2_B }, }; static s16 sOcarinaButtonAEnvColors[][3] = { - { 10, 10, 10 }, - { 50, 255, 50 }, + { OCARINA_BUTTON_A_ENV_1_R, OCARINA_BUTTON_A_ENV_1_G, OCARINA_BUTTON_A_ENV_1_B }, + { OCARINA_BUTTON_A_ENV_2_R, OCARINA_BUTTON_A_ENV_2_G, OCARINA_BUTTON_A_ENV_2_B }, }; static s16 sOcarinaButtonCPrimColors[][3] = { { 255, 255, 50 }, diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index 98c9653689..2f1eeca581 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -25,6 +25,16 @@ #define KALEIDO_COLOR_PROMPT_UNK_B 100 #endif +#if !PLATFORM_GC +#define KALEIDO_COLOR_CURSOR_UNK_R 0 +#define KALEIDO_COLOR_CURSOR_UNK_G 50 +#define KALEIDO_COLOR_CURSOR_UNK_B 255 +#else +#define KALEIDO_COLOR_CURSOR_UNK_R 0 +#define KALEIDO_COLOR_CURSOR_UNK_G 255 +#define KALEIDO_COLOR_CURSOR_UNK_B 50 +#endif + typedef enum { /* 0 */ VTX_PAGE_ITEM, /* 1 */ VTX_PAGE_EQUIP, @@ -866,7 +876,7 @@ static void* sCursorTexs[] = { static s16 sCursorColors[][3] = { { 255, 255, 255 }, { 255, 255, 0 }, - { 0, 255, 50 }, + { KALEIDO_COLOR_CURSOR_UNK_R, KALEIDO_COLOR_CURSOR_UNK_G, KALEIDO_COLOR_CURSOR_UNK_B }, }; static void* sSavePromptTexs[] = @@ -1178,8 +1188,18 @@ Gfx* KaleidoScope_DrawPageSections(Gfx* gfx, Vtx* vertices, void** textures) { void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { static s16 D_8082ACF4[][3] = { - { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 255, 255, 0 }, { 0, 0, 0 }, - { 0, 0, 0 }, { 255, 255, 0 }, { 0, 255, 50 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 255, 50 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 255, 255, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 255, 255, 0 }, + { KALEIDO_COLOR_CURSOR_UNK_R, KALEIDO_COLOR_CURSOR_UNK_G, KALEIDO_COLOR_CURSOR_UNK_B }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { KALEIDO_COLOR_CURSOR_UNK_R, KALEIDO_COLOR_CURSOR_UNK_G, KALEIDO_COLOR_CURSOR_UNK_B }, }; static s16 D_8082AD3C = 20; static s16 D_8082AD40 = 0; From c27b83ac29a7c143ab8193682355cfab44f86f63 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sat, 7 Sep 2024 10:49:21 -0700 Subject: [PATCH 40/86] N64 ROM header (#2157) --- src/makerom/rom_header.s | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/makerom/rom_header.s b/src/makerom/rom_header.s index 06694ae35e..525bee6e88 100644 --- a/src/makerom/rom_header.s +++ b/src/makerom/rom_header.s @@ -1,11 +1,16 @@ #include "rom_header.h" #include "region.h" +#include "versions.h" /* 0x00 */ ENDIAN_IDENTIFIER /* 0x01 */ PI_DOMAIN_1_CFG(64, 18, 7, 3) /* 0x04 */ SYSTEM_CLOCK_RATE_SETTING(0xF) /* 0x08 */ ENTRYPOINT(0x80000400) +#if PLATFORM_N64 +/* 0x0C */ LIBULTRA_VERSION(2, 0, I) +#else /* 0x0C */ LIBULTRA_VERSION(2, 0, L) +#endif /* 0x10 */ CHECKSUM() /* 0x18 */ PADDING(8) /* 0x20 */ ROM_NAME("THE LEGEND OF ZELDA") @@ -23,4 +28,12 @@ #elif OOT_REGION == REGION_EU /* 0x3E */ REGION(PAL) #endif +#if OOT_VERSION == NTSC_1_0 || OOT_VERSION == PAL_1_0 +/* 0x3F */ GAME_REVISION(0) +#elif OOT_VERSION == NTSC_1_1 || OOT_VERSION == PAL_1_1 +/* 0x3F */ GAME_REVISION(1) +#elif OOT_VERSION == NTSC_1_2 +/* 0x3F */ GAME_REVISION(2) +#else /* 0x3F */ GAME_REVISION(15) +#endif From e52d135e15be227326b58d75d6779fbb1db6f232 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sat, 7 Sep 2024 11:37:15 -0700 Subject: [PATCH 41/86] [ntsc-1.2] Import n64dd code from Decompollaborate/n64dd (#2136) * Import n64dd code from Decompollaborate/n64dd Co-authored-by: Anghelo Carvajal Co-authored-by: Elliptic Ellipsis * Don't stub out missing textures * Remove @brief * Add low-effort file comments * Match OoT if style * Fix n64dd matching due to int vs long * Fix English n64dd error textures * Compress n64dd segment * Align n64dd to 0x40 --------- Co-authored-by: Anghelo Carvajal Co-authored-by: Elliptic Ellipsis --- assets/xml/n64dd/error_textures.xml | 8 + baseroms/ntsc-1.2/config.yml | 4 + extract_assets.py | 2 +- include/functions.h | 2 + include/n64dd.h | 80 +++ include/variables.h | 1 + include/z64.h | 4 + spec | 13 +- src/n64dd/n64dd_801C8000.c | 345 ++++++++++++ src/n64dd/n64dd_801C8940.c | 398 +++++++++++++ src/n64dd/n64dd_801C9440.c | 263 +++++++++ src/n64dd/n64dd_801C9B70.c | 172 ++++++ src/n64dd/n64dd_801CA0B0.c | 243 ++++++++ src/n64dd/n64dd_data_buffer.c | 5 + src/n64dd/n64dd_error_bodies.c | 47 ++ src/n64dd/n64dd_error_headers.c | 5 + src/n64dd/n64dd_error_textures.c | 23 + src/n64dd/z_n64dd.c | 584 ++++++++++++++++++++ src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- tools/disasm/ntsc-1.2/variables.txt | 2 - tools/fix_bss.py | 1 + undefined_syms.txt | 25 - 22 files changed, 2199 insertions(+), 30 deletions(-) create mode 100644 assets/xml/n64dd/error_textures.xml create mode 100644 src/n64dd/n64dd_801C8000.c create mode 100644 src/n64dd/n64dd_801C8940.c create mode 100644 src/n64dd/n64dd_801C9440.c create mode 100644 src/n64dd/n64dd_801C9B70.c create mode 100644 src/n64dd/n64dd_801CA0B0.c create mode 100644 src/n64dd/n64dd_data_buffer.c create mode 100644 src/n64dd/n64dd_error_bodies.c create mode 100644 src/n64dd/n64dd_error_headers.c create mode 100644 src/n64dd/n64dd_error_textures.c create mode 100644 src/n64dd/z_n64dd.c diff --git a/assets/xml/n64dd/error_textures.xml b/assets/xml/n64dd/error_textures.xml new file mode 100644 index 0000000000..6db2ab37d5 --- /dev/null +++ b/assets/xml/n64dd/error_textures.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/baseroms/ntsc-1.2/config.yml b/baseroms/ntsc-1.2/config.yml index a64d9547ec..306b953484 100644 --- a/baseroms/ntsc-1.2/config.yml +++ b/baseroms/ntsc-1.2/config.yml @@ -75,6 +75,10 @@ assets: xml_path: assets/xml/code/fbdemo_wipe1.xml start_offset: 0xEB610 end_offset: 0xEBFA0 +- name: n64dd/error_textures + xml_path: assets/xml/n64dd/error_textures.xml + start_offset: 0xC120 + end_offset: 0x11D20 - name: misc/link_animetion xml_path: assets/xml/misc/link_animetion.xml - name: misc/z_select_static diff --git a/extract_assets.py b/extract_assets.py index 905004cfd1..da9715a5ac 100755 --- a/extract_assets.py +++ b/extract_assets.py @@ -32,7 +32,7 @@ def ExtractFile(assetConfig: version_config.AssetConfig, outputPath: Path, outpu execStr = f"{zapdPath} e -eh -i {xmlPath} -b {globalBaseromSegmentsDir} -o {outputPath} -osf {outputSourcePath} -gsf 1 -rconf {configPath} --cs-float both {ZAPDArgs}" - if name.startswith("code/") or name.startswith("overlays/"): + if name.startswith("code/") or name.startswith("n64dd/") or name.startswith("overlays/"): assert assetConfig.start_offset is not None assert assetConfig.end_offset is not None diff --git a/include/functions.h b/include/functions.h index 403cd89b26..ee7a203a62 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1395,6 +1395,8 @@ void Audio_SetCutsceneFlag(s8 flag); void Audio_PlaySfxIfNotInCutscene(u16 sfxId); void func_800F6964(u16); void Audio_StopBgmAndFanfare(u16 fadeOutDuration); +void func_800F6B3C(void); +void func_800F6BDC(void); void Audio_PreNMI(void); void Audio_SetNatureAmbienceChannelIO(u8 channelIdxRange, u8 ioPort, u8 ioData); void Audio_PlayNatureAmbienceSequence(u8 natureAmbienceId); diff --git a/include/n64dd.h b/include/n64dd.h index 4f117f682d..6931eac26c 100644 --- a/include/n64dd.h +++ b/include/n64dd.h @@ -2,6 +2,7 @@ #define N64DD_H #include "ultra64.h" +#include "ultra64/leo.h" #include "z64pause.h" #include "z64scene.h" #include "z64map_mark.h" @@ -59,6 +60,35 @@ typedef struct n64ddStruct_80121220 { s32 (*unk_78)(struct PlayState*, void*, void*); } n64ddStruct_80121220; // size = ? +typedef struct struct_801E0D18 { + /* 0x00 */ LEOCmd unk_00; + /* 0x1C */ OSMesgQueue unk_1C; + /* 0x38 */ LEODiskID diskId; + /* 0x58 */ UNK_TYPE unk_58; + /* 0x5C */ UNK_TYPE unk_5C; + /* 0x60 */ u32 unk_60; + /* 0x64 */ u8 unk_64; + /* 0x65 */ u8 unk_65; + /* 0x66 */ u8 unk_66; + /* 0x68 */ s32 unk_68; + /* 0x6C */ s32 unk_6C; +} struct_801E0D18; // size = 0x70 + +typedef struct struct_801D9D50 { + /* 0x00 */ u8 unk_00; // command enum + /* 0x04 */ s32 unk_04; + /* 0x08 */ u8 unk_08; + /* 0x0C */ void (*unk_0C)(void*, void*, void*); + /* 0x10 */ s32 unk_10; + /* 0x14 */ void (*unk_14)(void*, uintptr_t, size_t); + /* 0x18 */ void* unk_18; + /* 0x1C */ void* unk_1C; // either OSMesgQueue* (command 0) or integer LBA (commands 2 and 3) + /* 0x20 */ void* unk_20; // either OSMesgQueue* (command 0) or integer byte size (commands 3 and 4) + /* 0x24 */ OSId unk_24; + /* 0x28 */ void* unk_28; + /* 0x2C */ OSPri unk_2C; +} struct_801D9D50; // size = 0x30 + void func_800AD410(void); void func_800AD488(void); n64ddStruct_80121220* func_800AD4C0(n64ddStruct_80121220* arg0); @@ -77,6 +107,35 @@ void func_801C7C1C(void* dest, s32 offset, s32 size); void func_801C7E78(void); void n64dd_SetDiskVersion(s32 arg0); +s32 func_801C8000(struct_801D9D50* arg0); +s32 func_801C81C4(void); +void func_801C81EC(struct_801E0D18* arg0); +void func_801C8298(struct_801E0D18* arg0); +void func_801C82E0(struct_801E0D18* arg0); +void func_801C832C(struct_801E0D18* arg0); +void func_801C83A0(struct_801E0D18* arg0); +void func_801C8414(struct_801E0D18* arg0); +s32 func_801C873C(struct_801E0D18* arg0); + +void func_801C8AA8(void); +s32 func_801C91E0(struct_801E0D18*); +s32 func_801C9260(struct_801E0D18*); +s32 func_801C9334(struct_801E0D18*); +s32 func_801C93C4(struct_801E0D18*); + +void func_801C94F8(u8* arg0, u16 arg1); +void func_801C9A10(u8* arg0, s32 arg1, u8* str); +void func_801C9B50(s32 arg0, void (*arg1)(void*, uintptr_t, size_t)); + +u8* func_801C9E28(s32 errorNum); +u8* func_801C9EC0(void); +u8* func_801C9F90(s32 errorNum); +u8* func_801C9FFC(void); +u8* func_801CA030(s32 errorNum); +u8* func_801CA070(void); + +void func_801CA1F0(void* charTexBuf, s32 posX, s32 posY, s32 dx, s32 dy, s32 cy, void* frameBuf, s32 screenWidth); + extern n64ddStruct_800FEE70_pointers D_800FEE70; extern n64ddStruct_80121220* B_80121220; @@ -86,4 +145,25 @@ extern u8 D_80121212; extern vu8 D_80121213; extern vu8 D_80121214; +extern s32 (*D_801D2E54)(struct_801E0D18*); + +extern u8 B_801DC000[]; + +extern s32 D_801D2E90; +extern OSMesgQueue* B_801E0D10[2]; + +extern s32 D_801D2EA0; +extern s32 D_801D2EA8; +extern s32 B_801E0F60; +extern s32 B_801E0F64; +extern void (*D_801D2EB4)(void*, void*, void*); + +// Error messages +extern const char* D_801D2ED0[]; // "Error Number " array +extern const char* D_801D2EE0[2][8][4]; // Array of error message strings + +// Error textures +extern u64 gN64DDError41Texs[2][0x600 / sizeof(u64)]; +extern u64 gN64DDPleaseReadManualTexs[2][0x2800 / sizeof(u64)]; + #endif diff --git a/include/variables.h b/include/variables.h index bf4fb15c52..dc01f712da 100644 --- a/include/variables.h +++ b/include/variables.h @@ -203,6 +203,7 @@ extern PreNmiBuff* gAppNmiBufferPtr; extern uintptr_t gSegments[NUM_SEGMENTS]; extern Scheduler gScheduler; extern PadMgr gPadMgr; +extern IrqMgr gIrqMgr; extern volatile OSTime gAudioThreadUpdateTimeTotalPerGfxTask; extern volatile OSTime gGfxTaskSentToNextReadyMinusAudioThreadUpdateTime; extern volatile OSTime gRSPAudioTimeTotal; diff --git a/include/z64.h b/include/z64.h index 7a6187a485..377a760ce5 100644 --- a/include/z64.h +++ b/include/z64.h @@ -76,6 +76,8 @@ #define THREAD_PRI_DMAMGR_LOW 10 // Used when decompressing files #define THREAD_PRI_GRAPH 11 #define THREAD_PRI_AUDIOMGR 12 +#define THREAD_PRI_N64DD 13 +#define THREAD_PRI_DDMSG 13 #define THREAD_PRI_PADMGR 14 #define THREAD_PRI_MAIN 15 #define THREAD_PRI_SCHED 15 @@ -90,6 +92,8 @@ #define THREAD_ID_GRAPH 4 #define THREAD_ID_SCHED 5 #define THREAD_ID_PADMGR 7 +#define THREAD_ID_N64DD 8 +#define THREAD_ID_DDMSG 9 #define THREAD_ID_AUDIOMGR 10 #define THREAD_ID_DMAMGR 18 #define THREAD_ID_IRQMGR 19 diff --git a/spec b/spec index 378485e84b..0f9befd969 100644 --- a/spec +++ b/spec @@ -788,7 +788,18 @@ endseg #if PLATFORM_N64 beginseg name "n64dd" - // TODO: remaining n64dd files + compress + align 0x40 + include "$(BUILD_DIR)/src/n64dd/z_n64dd.o" + include "$(BUILD_DIR)/src/n64dd/n64dd_data_buffer.o" + include "$(BUILD_DIR)/src/n64dd/n64dd_801C8000.o" + include "$(BUILD_DIR)/src/n64dd/n64dd_801C8940.o" + include "$(BUILD_DIR)/src/n64dd/n64dd_801C9440.o" + include "$(BUILD_DIR)/src/n64dd/n64dd_801C9B70.o" + include "$(BUILD_DIR)/src/n64dd/n64dd_error_headers.o" + include "$(BUILD_DIR)/src/n64dd/n64dd_error_bodies.o" + include "$(BUILD_DIR)/src/n64dd/n64dd_error_textures.o" + include "$(BUILD_DIR)/src/n64dd/n64dd_801CA0B0.o" include "$(BUILD_DIR)/src/libleo/api/readwrite.o" include "$(BUILD_DIR)/src/libleo/leo/leofunc.o" include "$(BUILD_DIR)/src/libleo/leo/leoram.o" diff --git a/src/n64dd/n64dd_801C8000.c b/src/n64dd/n64dd_801C8000.c new file mode 100644 index 0000000000..3bf7159aab --- /dev/null +++ b/src/n64dd/n64dd_801C8000.c @@ -0,0 +1,345 @@ +// Does some command processing +#include "global.h" +#include "n64dd.h" +#include "versions.h" + +void func_801C8554(void); +void func_801C8578(void* arg0, void* arg1, OSId id, void* sp, OSPri pri); +void func_801C8638(void (*arg0)(void*, void*, void*), s32 arg1, void (*arg2)(void*, uintptr_t, size_t)); +void func_801C868C(void* arg0, void* arg1, void* arg2, u8 arg3); +s8 func_801C8770(void); +s32 func_801C87C0(void); +s32 func_801C87FC(void); +s32 func_801C8844(void); +s32 func_801C885C(void); +s32 func_801C88AC(void); +s32 func_801C88FC(void); + +s32 D_801D2E60 = 0; +s32 D_801D2E64 = 0; + +typedef struct struct_801D2E68 { + /* 0x0 */ void (*unk_0)(struct_801E0D18*); + /* 0x4 */ s32 (*unk_4)(struct_801E0D18*); +} struct_801D2E68; // size = 0x8 + +struct_801D2E68 D_801D2E68[5] = { + { func_801C81EC, func_801C91E0 }, { func_801C832C, func_801C9260 }, { func_801C83A0, func_801C9260 }, + { func_801C8414, func_801C9334 }, { func_801C8414, func_801C93C4 }, +}; + +s32 D_801D2E90 = 0; + +OSMesgQueue* B_801E0D10[2]; +struct_801E0D18 B_801E0D18; +OSMesg B_801E0D88[1]; +OSMesg B_801E0D90[8]; +OSThread B_801E0DB0; + +s32 func_801C8000(struct_801D9D50* arg0) { + switch (arg0->unk_00) { + case 0: + if (func_801C8844() != 0) { + return 1; + } + func_801C8554(); + break; + case 1: + func_801C8578(arg0->unk_1C, arg0->unk_20, arg0->unk_24, arg0->unk_28, arg0->unk_2C); + break; + case 2: + func_801C8638(arg0->unk_0C, arg0->unk_10, arg0->unk_14); + break; + case 3: + if (func_801C8844() != 0) { + return 1; + } + func_801C868C(arg0->unk_18, arg0->unk_1C, arg0->unk_20, 1); + break; + case 4: + if (func_801C8844() != 0) { + return 1; + } + func_801C868C(arg0->unk_18, arg0->unk_1C, arg0->unk_20, 2); + break; + case 5: + arg0->unk_08 = func_801C8770(); + return arg0->unk_08; + case 7: + return func_801C87FC(); + case 6: + return func_801C8844(); + case 8: + arg0->unk_04 = func_801C87C0(); + return arg0->unk_04; + case 9: + return func_801C885C(); + case 10: + return func_801C88AC(); + case 11: + return func_801C88FC(); + case 12: + D_801D2EA0 = 0; + break; + case 13: + D_801D2EA0 = 1; + break; + } + return 0; +} + +void func_801C819C(UNK_TYPE arg0) { + if (arg0 != 0) { + D_801D2E60 = 1; + } else { + D_801D2E60 = 2; + } +} + +s32 func_801C81C4(void) { + return D_801D2E60; +} + +s32 func_801C81D4(void) { + return D_801D2E64 == 1; +} + +void func_801C81EC(struct_801E0D18* arg0) { + osCreateMesgQueue(&arg0->unk_1C, B_801E0D88, ARRAY_COUNT(B_801E0D88)); + + if (gCurrentRegion == 1) { + arg0->unk_68 = LeoCJCreateLeoManager(LEO_PRIORITY_WRK, LEO_PRIORITY_INT, B_801E0D90, ARRAY_COUNT(B_801E0D90)); + } else { + arg0->unk_68 = LeoCACreateLeoManager(LEO_PRIORITY_WRK, LEO_PRIORITY_INT, B_801E0D90, ARRAY_COUNT(B_801E0D90)); + } + + if ((arg0->unk_68 == LEO_ERROR_DEVICE_COMMUNICATION_FAILURE) || (arg0->unk_68 == LEO_ERROR_GOOD)) { + D_801D2E64 = 1; + } +} + +void func_801C8298(struct_801E0D18* arg0) { + LEOCmd sp1C; + + // TODO: passing a pointer as a logical block address? + LeoSeek(&sp1C, (u32)&arg0->diskId, &arg0->unk_1C); + osRecvMesg(&arg0->unk_1C, (OSMesg*)&arg0->unk_68, OS_MESG_BLOCK); +} + +void func_801C82E0(struct_801E0D18* arg0) { + LEOCmd sp1C; + + LeoSpdlMotor(&sp1C, 4, &arg0->unk_1C); + osRecvMesg(&arg0->unk_1C, (OSMesg*)&arg0->unk_68, OS_MESG_BLOCK); +} + +void func_801C832C(struct_801E0D18* arg0) { + s32 sp34; + s32 startLBA = arg0->unk_5C; + + if (LeoByteToLBA(startLBA, arg0->unk_60, &sp34) == LEO_ERROR_GOOD) { + OSMesgQueue* sp28 = &arg0->unk_1C; + + LeoReadWrite(&arg0->unk_00, OS_READ, startLBA, (void*)arg0->unk_58, sp34, sp28); + osRecvMesg(sp28, (OSMesg*)&arg0->unk_68, OS_MESG_BLOCK); + } +} + +void func_801C83A0(struct_801E0D18* arg0) { + s32 sp34; + s32 startLBA = arg0->unk_58; + + if (LeoByteToLBA(startLBA, arg0->unk_60, &sp34) == LEO_ERROR_GOOD) { + OSMesgQueue* sp28 = &arg0->unk_1C; + + LeoReadWrite(&arg0->unk_00, OS_WRITE, startLBA, (void*)arg0->unk_5C, sp34, sp28); + osRecvMesg(sp28, (OSMesg*)&arg0->unk_68, OS_MESG_BLOCK); + } +} + +void func_801C8414(struct_801E0D18* arg0) { + arg0->unk_68 = 9; +} + +void func_801C8424(struct_801E0D18* arg0) { + struct_801D2E68* temp_v0; + s32 (*temp_s2)(struct_801E0D18*); + void (*aux)(struct_801E0D18*); + s32 temp_v0_2; + + arg0->unk_68 = -1; + if ((func_801C81D4() != 0) || (arg0->unk_64 == 0)) { + arg0->unk_66 = 1; + temp_v0 = &D_801D2E68[arg0->unk_64]; + aux = temp_v0->unk_0; + temp_s2 = temp_v0->unk_4; + do { + aux(arg0); + temp_v0_2 = temp_s2(arg0); + } while (temp_v0_2 == 2); + arg0->unk_6C = temp_v0_2; + if (arg0->unk_64 == 0) { + func_801C819C(temp_v0_2); + } + arg0->unk_66 = 0; + } +} + +void func_801C84D4(void* arg) { + while (true) { + struct_801E0D18* sp24; + + osRecvMesg(B_801E0D10[0], (OSMesg*)&sp24, OS_MESG_BLOCK); + func_801C8424(sp24); + osSendMesg(B_801E0D10[1], NULL, OS_MESG_BLOCK); + } +} + +void func_801C8554(void) { + osDestroyThread(&B_801E0DB0); +} + +void func_801C8578(void* arg0, void* arg1, OSId id, void* sp, OSPri pri) { + B_801E0D10[0] = (OSMesgQueue*)arg0; + B_801E0D10[1] = (OSMesgQueue*)arg1; + osCreateThread(&B_801E0DB0, id, &func_801C84D4, NULL, sp, pri); + osStartThread(&B_801E0DB0); +} + +void func_801C85F0(struct_801E0D18* arg0, s32 arg1) { + if (arg1 == 1) { + func_801C8424(arg0); + } else { + osSendMesg(B_801E0D10[0], arg0, OS_MESG_BLOCK); + } +} + +void func_801C8638(void (*arg0)(void*, void*, void*), s32 arg1, void (*arg2)(void*, uintptr_t, size_t)) { + s32 var0 = 0; + + func_801C9B50(arg1, arg2); + D_801D2EB4 = arg0; + B_801E0D18.unk_64 = var0; + B_801E0D18.unk_65 = var0; + func_801C85F0(&B_801E0D18, 0); +} + +void func_801C868C(void* arg0, void* arg1, void* arg2, u8 arg3) { + s32 var0 = (s32)arg0; + s32 var1 = (s32)arg1; + s32 var2 = (s32)arg2; + s32 var3 = arg3; + s32 var4 = 4; + + if (D_801D2E90 == 1) { + D_801D2E90 = 0; + B_801E0D18.unk_64 = var4; + func_801C85F0(&B_801E0D18, 1); + if (B_801E0D18.unk_6C == 3 || B_801E0D18.unk_6C == 4) { + return; + } + } + + B_801E0D18.unk_58 = var0; + B_801E0D18.unk_5C = var1; + B_801E0D18.unk_60 = var2; + B_801E0D18.unk_64 = var3; + func_801C85F0(&B_801E0D18, 0); +} + +s32 func_801C873C(struct_801E0D18* arg0) { + u8 sp1F; + + arg0->unk_68 = LeoTestUnitReady(&sp1F); + return !(sp1F & LEO_TEST_UNIT_MR); +} + +s8 func_801C8770(void) { + s32 temp = func_801C873C(&B_801E0D18); + + if (B_801E0D18.unk_68 == LEO_ERROR_BUSY) { + return 0; + } + + if (!temp) { + return 2; + } + + return 1; +} + +s32 func_801C87C0(void) { + if (func_801C8844() == 0) { + if (B_801E0D18.unk_68 != 0) { + return B_801E0D18.unk_68; + } + } + + return -1; +} + +s32 func_801C87FC(void) { + s32* new_var = &B_801E0D18.unk_68; + s32 temp_v0; + + if (func_801C8844() == 0) { + temp_v0 = B_801E0D18.unk_6C; + + if ((temp_v0 == 3) || (temp_v0 == 4)) { + return *new_var; + } + } + + return 0; +} + +s32 func_801C8844(void) { + return B_801E0D18.unk_66 == 1; +} + +s32 func_801C885C(void) { + B_801E0D18.unk_64 = 3; + func_801C85F0(&B_801E0D18, 1); + +#if OOT_VERSION > NTSC_1_0 + D_801D2E90 = 0; +#endif + + if ((B_801E0D18.unk_6C == 3) || (B_801E0D18.unk_6C == 4)) { + return -1; + } + return B_801E0D18.unk_6C == 0; +} + +s32 func_801C88AC(void) { + s32 phi_v0; + + B_801E0D18.unk_64 = 4; + func_801C85F0(&B_801E0D18, 1); + +#if OOT_VERSION > NTSC_1_0 + D_801D2E90 = 0; +#endif + + if ((B_801E0D18.unk_6C == 3) || (B_801E0D18.unk_6C == 4)) { + return -1; + } + return B_801E0D18.unk_6C == 0; +} + +s32 func_801C88FC(void) { + s32 temp = 0; + s32 phi_v1; + + if (LeoDriveExist()) { + phi_v1 = 8; + } else { + phi_v1 = 0; + } + + temp = phi_v1 == temp; + + B_801E0D18.unk_68 = phi_v1; + + return temp; +} diff --git a/src/n64dd/n64dd_801C8940.c b/src/n64dd/n64dd_801C8940.c new file mode 100644 index 0000000000..437a23dcf2 --- /dev/null +++ b/src/n64dd/n64dd_801C8940.c @@ -0,0 +1,398 @@ +// Lower-level command processing in a background thread +#include "global.h" +#include "n64dd.h" + +s32 D_801D2EA0 = 0; +u8* D_801D2EA4 = NULL; +s32 D_801D2EA8 = 0; +u8* D_801D2EAC = NULL; +u8* D_801D2EB0 = NULL; +void (*D_801D2EB4)(void*, void*, void*) = NULL; + +s32 B_801E0F60; +s32 B_801E0F64; + +// Set error message title texture? +void func_801C8940(s32 errorNum) { + D_801D2EA4 = func_801C9E28(errorNum); + D_801D2EA8 = 1; +} + +// Clear error message title texture? +void func_801C8974(void) { + if (D_801D2EA8 == 1) { + D_801D2EA4 = func_801C9EC0(); + D_801D2EA8 = 0; + } +} + +// Set error message something +void func_801C89B8(s32 errorNum) { + D_801D2EAC = func_801C9F90(errorNum); + B_801E0F60 = 1; +} + +// Clear error message something +void func_801C89EC(void) { + if (B_801E0F60 == 1) { + D_801D2EAC = func_801C9FFC(); + B_801E0F60 = 0; + } +} + +// Set error message something +void func_801C8A30(s32 errorNum) { + D_801D2EB0 = func_801CA030(errorNum); + B_801E0F64 = 1; +} + +// Clear error message something +void func_801C8A64(void) { + if (B_801E0F64 == 1) { + D_801D2EB0 = func_801CA070(); + B_801E0F64 = 0; + } +} + +void func_801C8AA8(void) { + osRecvMesg(B_801E0D10[1], NULL, OS_MESG_NOBLOCK); + + if ((D_801D2EB4 != NULL) && (D_801D2EA0 == 0)) { + u32 temp_v0 = osSetIntMask(OS_IM_NONE); + void* sp20 = D_801D2EA4; + void* sp1C = D_801D2EAC; + void* sp18 = D_801D2EB0; + + D_801D2EA4 = NULL; + D_801D2EAC = NULL; + D_801D2EB0 = NULL; + osSetIntMask(temp_v0); + D_801D2EB4(sp20, sp1C, sp18); + } +} + +void func_801C8B58(s32 arg0, s32 arg1, s32 arg2) { + func_801C8940(arg0); + func_801C89B8(arg1); + func_801C8A30(arg2); +} + +void func_801C8B90(void) { + func_801C8974(); + func_801C89EC(); + func_801C8A64(); +} + +s32 func_801C8BC0(struct_801E0D18* arg0) { + if ((arg0->unk_68 < 0x25) || (arg0->unk_68 >= 0x29)) { + if ((arg0->unk_68 != 0x1F) && (arg0->unk_68 != 0x20)) { + func_801C8940(arg0->unk_68); + func_801C89B8(3); + } + } + LeoClearQueue(); + return 4; +} + +s32 func_801C8C1C(struct_801E0D18* arg0) { + s32 var_s0; + + do { + var_s0 = 0; + Sleep_Msec(60); + func_801C82E0(arg0); + + switch (arg0->unk_68) { + case 0x2A: + func_801C8A64(); + return 0; + case 0x22: + func_801C8A64(); + LeoClearQueue(); + return 3; + case 0: + func_801C8A30(6); + FALLTHROUGH; + case 0x23: + var_s0 = 1; + break; + } + } while (var_s0 != 0); + + func_801C8A64(); + return func_801C8BC0(arg0); +} + +s32 func_801C8CEC(struct_801E0D18* arg0) { + switch (arg0->unk_68) { + case 0x22: + func_801C8B90(); + LeoClearQueue(); + return 3; + case 0x2: + func_801C8940(arg0->unk_68); + func_801C8A30(5); + return 9; + case 0x0: + func_801C8B90(); + return 0; + case 0x2B: + if (arg0->unk_65 == 0) { + func_801C8B90(); + arg0->unk_65 = 2; + return 1; + } + FALLTHROUGH; + default: + func_801C8B90(); + return func_801C8BC0(arg0); + case 0x23: + return 9; + } +} + +s32 func_801C8DC0(struct_801E0D18* arg0) { + s32 temp_v0; + + while (true) { + func_801C8298(arg0); + switch (arg0->unk_68) { + case 0x31: + func_801C8940(arg0->unk_68); + func_801C89B8(2); + return 5; + case 0x2A: + func_801C8B90(); + return 5; + } + temp_v0 = func_801C8CEC(arg0); + if (temp_v0 != 9) { + return temp_v0; + } + Sleep_Msec(60); + } +} + +s32 func_801C8E70(struct_801E0D18* arg0) { + s32 temp_a0; + s32 temp_v0; + + while (true) { + Sleep_Msec(60); + func_801C8298(arg0); + + switch (arg0->unk_68) { + case 0x23: + continue; + case 0x31: + func_801C8940(arg0->unk_68); + func_801C89B8(2); + FALLTHROUGH; + case 0x2A: + func_801C8A30(4); + continue; + } + + temp_v0 = func_801C8CEC(arg0); + if (temp_v0 != 9) { + return temp_v0; + } + } +} + +s32 func_801C8F1C(struct_801E0D18* arg0) { + if (D_801D2E54 != NULL) { + return D_801D2E54(arg0); + } + return 1; +} + +s32 func_801C8F58(struct_801E0D18* arg0) { + s32 temp_v0; + + while (true) { + temp_v0 = func_801C8E70(arg0); + if (temp_v0 == 3 || temp_v0 == 4) { + return temp_v0; + } + + // Fake match? + if ((temp_v0 & 0xFFFFFFFF) == 0) { + if (func_801C8F1C(arg0) != 0) { + return 2; + } + func_801C89B8(1); + temp_v0 = func_801C8C1C(arg0); + if (temp_v0 != 0) { + return temp_v0; + } + func_801C89EC(); + } + } +} + +s32 func_801C9000(struct_801E0D18* arg0) { + s32 phi_s0; + s32 temp_s4; + + while (true) { + phi_s0 = func_801C8E70(arg0); + if (phi_s0 == 3 || phi_s0 == 4) { + return phi_s0; + } + + // Fake match? + if ((phi_s0 & 0xFFFFFFFF) == 0) { + func_801C8B90(); + + temp_s4 = func_801C8F1C(arg0); + if (temp_s4 == 3 || temp_s4 == 4) {} + if (temp_s4 != 0) { + return 2; + } + + func_801C89B8(1); + + phi_s0 = func_801C8C1C(arg0); + if (phi_s0 == 3 || phi_s0 == 4) {} + if (phi_s0 != 0) { + return phi_s0; + } + + func_801C89EC(); + if (temp_s4 != 0) { + return phi_s0; + } + } + } +} + +s32 func_801C90C4(struct_801E0D18* arg0) { + func_801C8940(arg0->unk_68); + func_801C89B8(2); + return func_801C9000(arg0); +} + +s32 func_801C90FC(struct_801E0D18* arg0) { + func_801C8940(arg0->unk_68); + return func_801C9000(arg0); +} + +s32 func_801C912C(struct_801E0D18* arg0) { + s32 i = 0; + s32 temp_v0; + + do { + LeoResetClear(); + + temp_v0 = func_801C8DC0(arg0); + if (temp_v0 == 3 || temp_v0 == 4) { + return temp_v0; + } + if (temp_v0 != 1) { + if (temp_v0 == 0) { + return temp_v0; + } else { + return temp_v0; + } + } + + Sleep_Msec(250); + } while (i++ < 30); + + return func_801C8BC0(arg0); +} + +s32 func_801C91E0(struct_801E0D18* arg0) { + if (arg0->unk_68 == 0x29) { + return func_801C8BC0(arg0); + } + + if (osMemSize < 0x800000) { + // LEO_ERROR_RAMPACK_NOT_CONNECTED? + func_801C8B58(0x2C, 0, 3); + return 4; + } + + if (func_801C912C(arg0) == 0) { + D_801D2E90 = 1; + } + return 0; +} + +s32 func_801C9260(struct_801E0D18* arg0) { + s32 temp_v0; + + switch (arg0->unk_68) { + case 0x17: + func_801C873C(arg0); + temp_v0 = func_801C8C1C(arg0); + if (temp_v0 != 0) { + return temp_v0; + } + func_801C8B90(); + return 2; + + case 0x2: + return func_801C8F58(arg0); + + case 0x22: + LeoClearQueue(); + return 3; + + case 0x31: + return func_801C90C4(arg0); + + case 0x2F: + return func_801C9000(arg0); + + case 0x2A: + return func_801C90FC(arg0); + + case 0x0: + return 0; + + case 0x23: + return 2; + } + + return func_801C8BC0(arg0); +} + +s32 func_801C9334(struct_801E0D18* arg0) { + while (true) { + u32 temp_v0 = func_801C8DC0(arg0); + + if (temp_v0 == 3 || temp_v0 == 4 || temp_v0 == 5) { + return temp_v0; + } + + // Fake match? + if ((temp_v0 & 0xFFFFFFFF) == 0) { + if (func_801C8F1C(arg0) != 0) { + return 0; + } + return 7; + } + + if (1) {} + } +} + +s32 func_801C93C4(struct_801E0D18* arg0) { + s32 temp_v0; + s32 temp_v0_2; + + while (true) { + temp_v0_2 = func_801C9334(arg0); + if (temp_v0_2 != 7) { + return temp_v0_2; + } + func_801C89B8(1); + temp_v0 = func_801C8C1C(arg0); + if (temp_v0 != 0) { + return temp_v0; + } + func_801C89EC(); + } +} diff --git a/src/n64dd/n64dd_801C9440.c b/src/n64dd/n64dd_801C9440.c new file mode 100644 index 0000000000..28ab8b5625 --- /dev/null +++ b/src/n64dd/n64dd_801C9440.c @@ -0,0 +1,263 @@ +// Some text-handling functions +#include "global.h" +#include "n64dd.h" + +void (*D_801D2EC0)(void*, uintptr_t, size_t) = NULL; + +s32 B_801E0F70; + +/** + * Seems to work out if a pair of bytes is a valid EUC-JP character, although there may be additions to the font that + * make the strange first check make more sense. + * + * @param bytes Array 2 bytes to test + * @return boolean + */ +int func_801C9440(u8* bytes) { + // This is every possible first byte. May make more sense what was intended with the font files? + if (((*bytes >= 0x8E) && (*bytes <= 0xFE)) || ((*bytes != 0x8F) && (*bytes != 0xA0))) { + bytes++; + return (*bytes >= 0xA0) && (*bytes <= 0xFE); + } + return false; +} + +/** + * A crude check for a valid 2-byte Shift-JIS character + * + * @param bytes Array containing a pair of bytes to test + * @return boolean + */ +int func_801C9494(u8* bytes) { + // Allowable first bytes. + if (((*bytes >= 0x81) && (*bytes <= 0x9F)) || ((*bytes >= 0xE0) && (*bytes <= 0xFC))) { + bytes++; + // Allowable second bytes. + return (*bytes >= 0x40) && (*bytes <= 0xFC) && *bytes != 0x7F; + } + return false; +} + +// Extracts 2 bytes from a bytepacked big-endian short. +void func_801C94F8(u8* arg0, u16 arg1) { + arg0[0] = arg1 >> 8; + arg0[1] = arg1 & 0xFF; +} + +// Convert EUC-JP to JIS X 0208 +u16 func_801C9514(u16 eucjpCh) { + return eucjpCh - 0x8080; +} + +/** + * Converts a JIS X 0208 codepoint to a Shift-JIS one. + * + * @param jisCodepoint Two bytes, each between 0x21 and 0x7E, packed big-endian into a short. + * @return u16 Shift-JIS character representation (expected to be big-endian) + */ +u16 func_801C9534(u16 jisCodepoint) { + u8 hiByte = (jisCodepoint >> 8) & 0xFF; + u8 loByte = jisCodepoint & 0xFF; + + if (hiByte & 1) { + loByte += 0x1F; + if (loByte >= 0x7F) { + loByte++; + } + } else { + loByte += 0x7E; + } + + hiByte = (hiByte - 0x21) / 2 + 0x81; + if (hiByte >= 0xA0) { + hiByte += 0x40; + } + + return (hiByte << 8) + loByte; +} + +void func_801C95C0(void* arg0, uintptr_t arg1, size_t arg2) { + if (D_801D2EC0 != NULL) { + D_801D2EC0(arg0, arg1, arg2); + } +} + +s32 func_801C95F0(u8* arg0) { + return LeoGetKAdr(func_801C9534(func_801C9514((arg0[0] << 8) | arg0[1]))) + DDROM_FONT_START; +} + +s32 func_801C963C(s32* arg0, int* dx, int* dy, int* cy, u8 arg4) { + s32 temp_v0; + s32 temp_v1; + + u16 temp = arg4 - 0x20; + temp += 0xC0 * B_801E0F70; + + temp_v0 = LeoGetAAdr(temp, dx, dy, cy); + temp_v1 = temp_v0 & 0xF; + *arg0 = (temp_v0 - temp_v1) + DDROM_FONT_START; + return temp_v1; +} + +s32 func_801C969C(void* arg0, int* dx, int* dy, int* cy, u8* arg4) { + s32 sp24; + s32 phi_v1; + + if (func_801C9440(arg4)) { + sp24 = func_801C95F0(arg4); + *dx = 16; + *dy = 16; + *cy = 11; + phi_v1 = 0; + } else { + phi_v1 = func_801C963C(&sp24, dx, dy, cy, *arg4); + } + + func_801C95C0(arg0, sp24, 0x80); + return phi_v1; +} + +// return boolean +s32 func_801C9740(u8* arg0, s32 arg1, u8 arg2) { + if (arg1 == 1) { + *arg0 = arg2 << 4; + return false; + } else { + *arg0 |= arg2; + return true; + } +} + +u8* func_801C9778(u8* arg0, s32* arg1, s32 arg2) { + arg0 += (arg2 >> 1); + + if (((*arg1 == 1) && !(arg2 & 1)) || ((*arg1 == 0) && (arg2 & 1))) { + arg0 += arg2 & 1; + *arg1 = 1; + } else { + *arg1 = 0; + } + return arg0; +} + +s32 func_801C97C4(u8** arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, u8* arg5, s32 dx, s32 dy, s32 cy) { + u8* var_fp; + u8* var_s0; + s32 var_s1; + s32 x; + s32 sp4C; + s32 var_s4; + s32 sp44; + + sp4C = arg2; + sp44 = dx + arg3 + arg4; + var_s4 = 1; + var_fp = func_801C9778(*arg0, &sp4C, arg3); + arg1 >>= 1; + var_fp += ((11 - cy) * arg1); + if (dx & 1) { + dx++; + } + while (dy--) { + var_s0 = var_fp; + var_s1 = sp4C; + for (x = 0; x < dx; x++) { + if (var_s4 == 1) { + if (func_801C9740(var_s0, var_s1, *arg5 >> 4)) { + var_s0++; + } + } else { + if (func_801C9740(var_s0, var_s1, *arg5 & 0xF)) { + var_s0++; + } + arg5++; + } + var_s4 ^= 1; + var_s1 ^= 1; + } + var_fp += arg1; + } + *arg0 = func_801C9778(*arg0, &arg2, sp44); + return arg2; +} + +void func_801C9954(u8* bytes, s32* arg1, s32* arg2) { + u8 prevCh; + u8 nextCh; + + if (func_801C9440(bytes)) { + *arg1 = *arg2 = 0; + return; + } + + *arg1 = *arg2 = 0; + + prevCh = bytes[-1]; + nextCh = bytes[1]; + + switch (bytes[0]) { + case ' ': + *arg1 = *arg2 = 0; + return; + + case 'I': + case 'i': +#if OOT_NTSC + *arg2 = 2; + if (1) {} +#endif + + *arg1 = 2; + *arg2 = 2; + + if (prevCh == ' ') { + *arg1 = 0; + } + if (nextCh == ' ') { + *arg2 = 0; + } + return; + } + +#if OOT_NTSC + *arg2 = 1; + if (1) {} +#endif + + *arg1 = 1; + *arg2 = 1; +} + +void func_801C9A10(u8* arg0, s32 arg1, u8* str) { + u8 sp80[0xA0]; + u8* temp_s1; + int dx; + int dy; + int cy; + s32 var_s2; + s32 sp68; + s32 sp64; + s32 temp_v1; + + temp_s1 = (u8*)((((uintptr_t)&sp80 + 0xF) / 0x10) * 0x10); + var_s2 = 1; + if (str != NULL) { + while (*str != '\0') { + func_801C9954(str, &sp68, &sp64); + temp_v1 = func_801C969C(temp_s1, &dx, &dy, &cy, str); + if (dx & 1) { + dx++; + } + var_s2 = func_801C97C4(&arg0, arg1, var_s2, sp68, sp64, &temp_s1[temp_v1], dx, dy, cy); + if (func_801C9440(str)) { + str++; + } + str++; + } + } +} + +void func_801C9B50(s32 arg0, void (*arg1)(void*, uintptr_t, size_t)) { + B_801E0F70 = arg0; + D_801D2EC0 = arg1; +} diff --git a/src/n64dd/n64dd_801C9B70.c b/src/n64dd/n64dd_801C9B70.c new file mode 100644 index 0000000000..d7d2f63849 --- /dev/null +++ b/src/n64dd/n64dd_801C9B70.c @@ -0,0 +1,172 @@ +// User-facing error handling +#include "global.h" +#include "n64dd.h" + +u8 B_801E0F80[0x600]; +u8 B_801E1580[0x2800]; +u8 B_801E3D80[0x1400]; + +/** + * Converts a number in decimal to a hexadecimal number with the same digits, e.g. 1234 -> 0x1234. + * + * Will only work on nonnegative numbers. + * + * @param decNumber Number in decimal to convert, e.g. 1234 + * @return s32 Hexadecimal number with the same digits as decNumber, e.g. 0x1234 + */ +s32 func_801C9B70(s32 decNumber) { + s32 currPlaceValue; + s32 currExponent = 0; + s32 accumulatedHexDigits = 0; + s32 remainingDecDigits; + + // Nothing to do if only one digit. + if (decNumber < 10) { + return decNumber; + } + + // Find the place value / exponent of the most significant digit in decNumber. + for (currPlaceValue = 1; 10 * currPlaceValue <= decNumber; currPlaceValue *= 10) { + currExponent++; + } + + remainingDecDigits = decNumber; + + // Transfer the digits to hex one at a time. + while (currExponent--) { + // Place the most significant remaining digit at the end of the hex output. + accumulatedHexDigits |= remainingDecDigits / currPlaceValue; + accumulatedHexDigits *= 0x10; // Shift left one hex digit. + + remainingDecDigits %= currPlaceValue; // Remove most significant of the remaining digits. + + currPlaceValue /= 10; + } + + accumulatedHexDigits += remainingDecDigits; // Only one digit left in the remainingDecDigits. + return accumulatedHexDigits; +} + +// n64ddError_GetLanguage +s32 func_801C9C48(void) { + return (gCurrentRegion == 1) ? 0 : 1; +} + +// n64ddError_Memset +void func_801C9C74(u8* dest, u8 value, u32 count) { + while (count--) { + *dest++ = value; + } +} + +// n64ddError_GetErrorHeader +const char* func_801C9CA4(void) { + return D_801D2ED0[func_801C9C48()]; +} + +// n64ddError_WriteNumberJP +// Writes a 2-digit number to the char buffer provided +// Character indices for numbers in the error code (EUC-JP) +void func_801C9CD4(u8* buf, s32 number) { + s32 temp_v0 = func_801C9B70(number); + u16 character; + + if (number >= 10) { + character = ((temp_v0 >> 4) + 0xA3B0); // '0' + } else { + character = 0xA1A1; // ' ' + } + + func_801C94F8(buf, character); + buf += 2; + func_801C94F8(buf, ((temp_v0 & 0xF) + 0xA3B0)); // '0' +} + +// n64ddError_WriteNumberEN +// Writes a 2-digit number to the char buffer provided +// Character indices for numbers in the error code (ASCII) +void func_801C9D54(u8* buf, s32 number) { + s32 temp_v0 = func_801C9B70(number); + + if (number >= 10) { + *buf = (temp_v0 >> 4) + '0'; + } else { + *buf = ' '; + } + buf++; + *buf = (temp_v0 & 0xF) + '0'; +} + +void func_801C9DB8(u8* arg0, s32 errorNum) { + u8* errorHeader = (u8*)func_801C9CA4(); + + //! @bug: both of these functions will write to the pointer target, but errorHeader points to a string literal, + //! which is meant to be const. + if (gCurrentRegion == 1) { + func_801C9CD4(&errorHeader[12], errorNum); + } else { + func_801C9D54(&errorHeader[13], errorNum); + } + func_801C9A10(arg0, 192, errorHeader); +} + +u8* func_801C9E28(s32 errorNum) { + func_801C9EC0(); + + if (errorNum == 41) { + return (u8*)gN64DDError41Texs[func_801C9C48()]; + } + + // 31,32, 37,38,39,40 + if (((errorNum >= 37) && (errorNum < 41)) || (errorNum == 31) || (errorNum == 32)) { + return B_801E0F80; + } else { + func_801C9DB8(B_801E0F80, errorNum); + return B_801E0F80; + } +} + +// Clear something +u8* func_801C9EC0(void) { + func_801C9C74(B_801E0F80, 0, 0x600); + return B_801E0F80; +} + +// Prints the error message body (?) +void func_801C9EF4(u8* arg0, s32 errorNum, s32 lineCount) { + s32 i; + + for (i = 0; i < lineCount; i++, arg0 += 0xA00) { + u8* line = (u8*)D_801D2EE0[func_801C9C48()][errorNum][i]; + + if (1) {} + func_801C9A10(arg0, 320, line); + } +} + +u8* func_801C9F90(s32 errorNum) { + func_801C9FFC(); + if (errorNum == 3) { + return (u8*)gN64DDPleaseReadManualTexs[func_801C9C48()]; + } + func_801C9EF4(B_801E1580, errorNum, 4); + return B_801E1580; +} + +// Clear something +u8* func_801C9FFC(void) { + func_801C9C74(B_801E1580, 0, 0x2800); + return B_801E1580; +} + +u8* func_801CA030(s32 errorNum) { + func_801CA070(); + func_801C9EF4(B_801E3D80, errorNum, 2); + return B_801E3D80; +} + +// Clear something +u8* func_801CA070(void) { + func_801C9C74(B_801E3D80, 0, 0x1400); + return B_801E3D80; +} diff --git a/src/n64dd/n64dd_801CA0B0.c b/src/n64dd/n64dd_801CA0B0.c new file mode 100644 index 0000000000..8758e0fd62 --- /dev/null +++ b/src/n64dd/n64dd_801CA0B0.c @@ -0,0 +1,243 @@ +#include "global.h" +#include "n64dd.h" + +// Draws text to framebuffer +typedef struct struct_801CA704 { + /* 0x00 */ PrintCallback callback; + /* 0x04 */ void* charTexBuf; + /* 0x08 */ u16 unk_08; + /* 0x0A */ u16 posX; + /* 0x0C */ u16 posY; + /* 0x10 */ Color_RGBA8_u32 color; + /* 0x14 */ u16 baseX; + /* 0x16 */ u16 baseY; + /* 0x18 */ u16 endX; + /* 0x1A */ u16 endY; + /* 0x1C */ u8 sjisPrevByte; + /* 0x20 */ void* frameBuf; + /* 0x24 */ u16 screenWidth; + /* 0x26 */ u16 screenHeight; +} struct_801CA704; + +// clang-format off +u32 D_801D8BE0[0x5F] = { + 0x00009D14, 0x00232A14, 0x00296314, 0x002F8A14, 0x00457E18, 0x0063CA14, 0x0084AA14, 0x00A03314, + 0x00A45E14, 0x00BB4E14, 0x00CA6514, 0x00D3770E, 0x00E33302, 0x00E78108, 0x00EB2102, 0x00EC6C14, + 0x01008A14, 0x01163A14, 0x01217A14, 0x01377A14, 0x014D8A14, 0x01638A14, 0x01798A14, 0x018F7A14, + 0x01A58A14, 0x01BB8A14, 0x01D1170E, 0x01D5490E, 0x01DF770E, 0x01EF740A, 0x01F9770E, 0x02097A14, + 0x021FDC16, 0x024DBA14, 0x026E7A14, 0x0284BA14, 0x02A59A14, 0x02C16A14, 0x02D26A14, 0x02E3BA14, + 0x03048A14, 0x031A1A14, 0x03206A14, 0x03318A14, 0x03476A14, 0x0358CA14, 0x03799A14, 0x0395CA14, + 0x03B67A14, 0x03CCCA14, 0x03ED8A14, 0x04037A14, 0x04196A14, 0x042A8A14, 0x0440AA14, 0x045CDA14, + 0x04839A14, 0x049F9A14, 0x04BB7A14, 0x04D14D14, 0x04DF5C14, 0x04F33D14, 0x05015216, 0x050681FA, + 0x050A9D14, 0x052D9810, 0x05449A14, 0x05609810, 0x05779A14, 0x05939810, 0x05AA5A14, 0x05BB9C10, + 0x05DC7A14, 0x05F22A14, 0x05F83D14, 0x06067A14, 0x061C2A14, 0x0622D810, 0x06427810, 0x06549810, + 0x066B9B10, 0x06899B10, 0x06A74810, 0x06B06810, 0x06BE5A14, 0x06CF770E, 0x06DF870E, 0x06EFB70E, + 0x0707670E, 0x07138A0E, 0x0729670E, 0x07356D14, 0x074A1F16, 0x07526D14, 0x07675216, +}; +// clang-format on + +// Loads character texture to buffer +s32 func_801CA0B0(s32 charCode, void* charTexBuf, int* dx, int* dy, int* cy) { + s32 offset; + OSPiHandle* handle; + OSMesgQueue queue; + OSMesg msgBuf[1]; + OSIoMesg mesg; + + handle = osDriveRomInit(); + if (charCode >= 0x20 && charCode < 0x7F) { // ASCII + offset = LeoGetAAdr2(D_801D8BE0[charCode - 0x20], dx, dy, cy); + } else if (charCode >= 0x8140) { // Shift-JIS + offset = LeoGetKAdr(charCode); + *dx = 16; + *dy = 16; + *cy = 11; + } else { + return -1; + } + + osCreateMesgQueue(&queue, msgBuf, ARRAY_COUNT(msgBuf)); + + // clang-format off + mesg.hdr.retQueue = &queue; \ + mesg.devAddr = offset + DDROM_FONT_START; \ + mesg.dramAddr = charTexBuf; \ + mesg.size = 0x80; \ + mesg.hdr.pri = 0; + // clang-format on + + handle->transferInfo.cmdType = 2; + osEPiStartDma(handle, &mesg, 0); + osRecvMesg(&queue, NULL, OS_MESG_BLOCK); + + return 0; +} + +const u16 D_801D9390[16] = { + 0x0001, 0x1085, 0x2109, 0x318D, 0x4211, 0x5295, 0x6319, 0x739D, + 0x8C63, 0x9CE7, 0xAD6B, 0xBDEF, 0xCE73, 0xDEF7, 0xEF7B, 0xFFFF, +}; + +// Maps 4-bit intensity to a 16-bit color +u16 func_801CA1D4(u32 arg0) { + return D_801D9390[arg0 % ARRAY_COUNT(D_801D9390)]; +} + +void func_801CA1F0(void* charTexBuf, s32 posX, s32 posY, s32 dx, s32 dy, s32 cy, void* frameBuf, s32 screenWidth) { + s32 intensity; + s32 x; + s32 y; + u8* src = charTexBuf; + u16* dst = frameBuf; + + for (y = 0; y < dy; y++) { + for (x = 0; x < dx; x++) { + if (!(x & 1)) { + intensity = *src >> 4; + } else { + intensity = *src & 0xF; + src++; + } + dst[posX + x + ((posY + (11 - cy) + y) * screenWidth)] = func_801CA1D4(intensity); + } + if (dx & 1) { + src++; + } + } +} + +void func_801CA2F8(struct_801CA704* arg0, u32 r, u32 g, u32 b, u32 a) { + arg0->color.r = r; + arg0->color.g = g; + arg0->color.b = b; + arg0->color.a = a; +} + +void func_801CA314(struct_801CA704* arg0, s32 arg1, s32 arg2) { + arg0->posX = arg0->baseX + arg1; + arg0->posY = arg0->baseY + arg2; +} + +void func_801CA334(struct_801CA704* arg0, s32 baseX, s32 baseY, s32 endX, s32 endY) { + arg0->baseX = baseX; + arg0->baseY = baseY; + arg0->endX = endX; + arg0->endY = endY; +} + +void func_801CA350(struct_801CA704* arg0, void* frameBuf, s32 screenWidth, s32 screenHeight) { + arg0->frameBuf = (u8*)frameBuf + 0x20000000; + arg0->screenWidth = screenWidth; + arg0->screenHeight = screenHeight; + func_801CA334(arg0, 0, 0, screenWidth - 1, screenHeight - 1); +} + +void func_801CA3B4(struct_801CA704* arg0, void* charTexBuf, s32 arg2) { + arg0->charTexBuf = (u8*)charTexBuf + 0x20000000; + arg0->unk_08 = arg2; +} + +void func_801CA3CC(struct_801CA704* arg0, char c) { + s32 charCode; + int dx; + int dy; + int cy; + + if (arg0->sjisPrevByte != 0) { + charCode = (arg0->sjisPrevByte << 8) | c; + } else { + if (c >= 0x80 && c < 0x99) { + arg0->sjisPrevByte = c; + return; + } + charCode = c; + } + + arg0->sjisPrevByte = 0; + if (func_801CA0B0(charCode, arg0->charTexBuf, &dx, &dy, &cy) == 0) { + if (arg0->posX + dx > arg0->endX) { + arg0->posX = arg0->baseX; + if (arg0->posY + 16 > arg0->endY) { + arg0->posY = arg0->baseY; + } else { + arg0->posY += 16; + } + } + func_801CA1F0(arg0->charTexBuf, arg0->posX, arg0->posY, dx, dy, cy, arg0->frameBuf, arg0->screenWidth); + arg0->posX += (dx == 16 ? dx : dx + 2); + } +} + +void func_801CA4F4(struct_801CA704* arg0, char c) { + if (c >= ' ' && c <= 0xFF) { + func_801CA3CC(arg0, c); + } else { + switch (c) { + case '\n': + arg0->posY += 32; + FALLTHROUGH; + case '\r': + arg0->posX = arg0->baseX; + break; + case '\t': + do { + func_801CA3CC(arg0, ' '); + } while ((arg0->posX - arg0->baseX) % 256); + break; + case '\0': + break; + } + } +} + +void func_801CA5BC(struct_801CA704* arg0, const char* str, s32 arg2, size_t count) { + const char* s = str; + s32 n = arg2 * count; + + while (n != 0) { + func_801CA4F4(arg0, *s++); + n--; + } +} + +void func_801CA618(struct_801CA704* arg0, const char* str) { + while (*str != 0) { + func_801CA4F4(arg0, *str++); + } +} + +void* func_801CA670(void* arg, const char* str, size_t count) { + func_801CA5BC(arg, str, 1, count); + return arg; +} + +void func_801CA6A0(struct_801CA704* arg0) { + arg0->callback = &func_801CA670; + arg0->posX = 0; + arg0->posY = 0; + arg0->baseX = 0; + arg0->baseY = 0; + arg0->endX = 0; + arg0->endY = 0; + arg0->color.rgba = 0; + arg0->sjisPrevByte = 0; + arg0->charTexBuf = NULL; +} + +void func_801CA6D8(struct_801CA704* arg0) { +} + +s32 func_801CA6E4(struct_801CA704* arg0, const char* fmt, va_list args) { + return PrintUtils_VPrintf(&arg0->callback, fmt, args); +} + +s32 func_801CA704(struct_801CA704* arg0, const char* fmt, ...) { + s32 ret; + va_list args; + + va_start(args, fmt); + ret = func_801CA6E4(arg0, fmt, args); + va_end(args); + + return ret; +} diff --git a/src/n64dd/n64dd_data_buffer.c b/src/n64dd/n64dd_data_buffer.c new file mode 100644 index 0000000000..6aacae2d57 --- /dev/null +++ b/src/n64dd/n64dd_data_buffer.c @@ -0,0 +1,5 @@ +#include "global.h" +#include "n64dd.h" + +// Buffer used for reading from the disk? +u8 B_801DC000[0x4D10]; diff --git a/src/n64dd/n64dd_error_bodies.c b/src/n64dd/n64dd_error_bodies.c new file mode 100644 index 0000000000..757e1afb6b --- /dev/null +++ b/src/n64dd/n64dd_error_bodies.c @@ -0,0 +1,47 @@ +#include "global.h" +#include "n64dd.h" + +const char* D_801D2EE0[2][8][4] = { + { + { "  メモリー拡張パックが正しく差し込", "  んでありますか?        ", NULL, NULL }, + { "  間違ったディスクが差し込まれてい", "  る可能性があります。正しいディス", + "  クに交換してください。     ", NULL }, + { "  注意:アクセスランプ点滅中にディ", "  スクを抜かないでください。詳しく", + "  は、取扱説明書をお読みください。", NULL }, + { "  詳しくは、取扱説明書をお読みくだ", "  さい。             ", NULL, NULL }, + { "   ディスクを差し込んでください。", NULL, NULL, NULL }, + { "  ディスクを差し込み直してください。", NULL, NULL, NULL }, + { "   ディスクを取り出してください。", NULL, NULL, NULL }, + { NULL, NULL, NULL, NULL }, + }, + { + { + " Are you sure the Expansion", + " Pak is inserted correctly?", + NULL, + NULL, + }, + { + " Check to see if the proper", + " disk is inserted.", + " Please insert the disk the", + " correct disk.", + }, + { + " Do not remove the disk when", + " the access light is flashing.", + " Please read the instruction", + " manual for details.", + }, + { + " Please read the instruction", + " manual for details.", + NULL, + NULL, + }, + { " Please insert a disk.", NULL, NULL, NULL }, + { " Please insert the disk again.", NULL, NULL, NULL }, + { " Please remove the disk.", NULL, NULL, NULL }, + { NULL, NULL, NULL, NULL }, + }, +}; diff --git a/src/n64dd/n64dd_error_headers.c b/src/n64dd/n64dd_error_headers.c new file mode 100644 index 0000000000..b14d80fba5 --- /dev/null +++ b/src/n64dd/n64dd_error_headers.c @@ -0,0 +1,5 @@ +#include "global.h" +#include "n64dd.h" + +// Padding in .rodata suggests that these are in a separate file +const char* D_801D2ED0[4] = { "エラー番号   ", "Error Number ", NULL, NULL }; diff --git a/src/n64dd/n64dd_error_textures.c b/src/n64dd/n64dd_error_textures.c new file mode 100644 index 0000000000..037ed7835b --- /dev/null +++ b/src/n64dd/n64dd_error_textures.c @@ -0,0 +1,23 @@ +#include "ultra64.h" + +#if PLATFORM_N64 + +u64 gN64DDError41Texs[2][0x600 / sizeof(u64)] = { + { +#include "assets/n64dd/error_textures/n64dd_error_41_jpn.i4.inc.c" + }, + { +#include "assets/n64dd/error_textures/n64dd_error_41_eng.i4.inc.c" + }, +}; + +u64 gN64DDPleaseReadManualTexs[2][0x2800 / sizeof(u64)] = { + { +#include "assets/n64dd/error_textures/n64dd_please_read_manual_jpn.i4.inc.c" + }, + { +#include "assets/n64dd/error_textures/n64dd_please_read_manual_eng.i4.inc.c" + }, +}; + +#endif diff --git a/src/n64dd/z_n64dd.c b/src/n64dd/z_n64dd.c new file mode 100644 index 0000000000..4e90806e9a --- /dev/null +++ b/src/n64dd/z_n64dd.c @@ -0,0 +1,584 @@ +// Main interface for the 64DD from the rest of the game. Starts background +// threads and provides functions to submit commands to them. +#include "global.h" +#include "fault.h" +#include "n64dd.h" +#include "stack.h" +#include "versions.h" + +typedef struct struct_801D9C30 { + /* 0x000 */ s32 unk_000; // disk start + /* 0x004 */ s32 unk_004; // disk end + /* 0x008 */ uintptr_t unk_008; // ram start + /* 0x00C */ uintptr_t unk_00C; // ram end + /* 0x010 */ UNK_PTR unk_010; + /* 0x014 */ char unk_014[0x104]; +} struct_801D9C30; // size = 0x118 + +typedef struct struct_801D9B90 { + /* 0x00 */ OSMesg unk_00[30]; + /* 0x78 */ OSMesgQueue unk_78; + /* 0x90 */ IrqMgrClient unk_90; + /* 0x98 */ IrqMgr* unk_98; +} struct_801D9B90; // size = 0x9C + +s32 func_801C7A1C(struct_801E0D18* arg0); + +void* D_801D2E50 = &B_801DC000; +s32 (*D_801D2E54)(struct_801E0D18*) = func_801C7A1C; + +struct_801D9B90 B_801D9B90; +struct_801D9C30 B_801D9C30; +struct_801D9C30* B_801D9D48; +struct_801D9D50 B_801D9D50; +OSMesgQueue B_801D9D80; +OSMesgQueue B_801D9D98; +OSMesg B_801D9DB0[1]; +OSMesg B_801D9DB4[1]; +volatile u8 B_801D9DB8; +volatile OSTime B_801D9DC0; +s32 B_801D9DC8; // 1 if disk gameName is correct, 2 otherwise +void* B_801D9DCC; +void* B_801D9DD0; +void* B_801D9DD4; +OSThread B_801D9DD8; +STACK(B_801D9F88, 0x1000); +StackEntry B_801DAF88; +STACK(B_801DAFA8, 0x1000); +StackEntry B_801DBFA8; +UNK_TYPE B_801DBFC4; // unused? + +u32 func_801C6E80(void) { +#if OOT_NTSC + return LeoDriveExist(); +#else + return 0; +#endif +} + +void func_801C6EA0(Gfx** gfxP) { +} + +void func_801C6EAC(void) { + if (D_80121214 == 0) { + func_800F6BDC(); + D_80121214 = 1; + } +} + +s32 func_801C6EF0(void) { + return D_80121214 != 0; +} + +s32 func_801C6F08(void) { + if (D_80121214 != 0) { + return 1; + } + return 1; +} + +void func_801C6F30(void) { + func_801C6EAC(); + while (func_801C6F08() == 0) { + Sleep_Usec(16666); // 100000 / 6 + } +} + +void func_801C6F78(void) { + if (D_80121214 != 0) { + D_80121214 = 0; + func_800F6B3C(); + } +} + +// boolean +s32 func_801C6FAC(void) { + if (D_80121213 == 0) { + return false; + } else { + D_80121213 = 0; + return true; + } +} + +void func_801C6FD8(void) { + while (!func_801C6FAC()) { + Sleep_Usec(16666); // 100000 / 6 + } +} + +// Adds a HungupAndCrash +void func_801C7018(void) { + if (D_80121213 != 0) { +#if OOT_VERSION == NTSC_1_0 + Fault_AddHungupAndCrash("../z_n64dd.c", 503); +#elif OOT_VERSION == NTSC_1_1 + Fault_AddHungupAndCrash("../z_n64dd.c", 551); +#else + Fault_AddHungupAndCrash("../z_n64dd.c", 573); +#endif + } + D_80121213 = 1; +} + +s32 func_801C7064(void) { + B_801D9D50.unk_00 = 5; + return (&func_801C8000)(&B_801D9D50); +} + +s32 func_801C7098(void) { + s32 phi_v1; + +#if OOT_VERSION <= NTSC_1_1 + if (0) {} +#endif + + B_801D9D50.unk_00 = 10; + phi_v1 = (&func_801C8000)(&B_801D9D50); + if (phi_v1 < 0) { + func_800D31A0(); + } + return phi_v1; +} + +s32 func_801C70E4(void) { + return B_801D9DC8 == 1; +} + +// Used by EnMag and FileChoose +s32 func_801C70FC(void) { + return func_801C70E4(); +} + +void func_801C711C(void* arg) { + static void* B_801DBFC8; + struct_801D9B90* arg0 = (struct_801D9B90*)arg; + s16* sp58; + s32 var_s0; + void* temp_v0; + + sp58 = NULL; + arg0->unk_98 = &gIrqMgr; + osCreateMesgQueue(&arg0->unk_78, arg0->unk_00, ARRAY_COUNT(arg0->unk_00)); + IrqMgr_AddClient(arg0->unk_98, &arg0->unk_90, &arg0->unk_78); + var_s0 = 0; + do { + osRecvMesg(&arg0->unk_78, (OSMesg*)&sp58, OS_MESG_BLOCK); + switch (*sp58) { + case 1: + temp_v0 = osViGetNextFramebuffer(); + if (B_801DBFC8 != temp_v0) { + B_801DBFC8 = temp_v0; + B_801D9DB8 = 1; + } + func_801C8AA8(); + break; + case 4: + LeoReset(); + break; + case 3: + var_s0 = 1; + break; + } + } while (var_s0 == 0); + IrqMgr_RemoveClient(arg0->unk_98, &arg0->unk_90); +} + +#if OOT_VERSION > NTSC_1_0 +void func_801C7B28_ne2(void) { + s32 temp; + + if (B_801D9DC0 != 0) { + temp = (osGetTime() - B_801D9DC0) * 64 / 3000; + if (1000000 - temp > 0) { + Sleep_Usec(1000000 - temp); + } + } +} +#endif + +void func_801C7268(void) { + s32 pad; + s32 sp20; + s32 sp1C; + + sp20 = func_801C6EF0(); + if (sp20 == 0) { + func_801C6F30(); + } + B_801D9DB8 = 1; + B_801D9DC0 = 0; + if (func_801C7064() == 1) { + func_801C7098(); + } else if (B_801D9DC8 != 0) { + B_801D9DC8 = 0; + } +#if OOT_VERSION == NTSC_1_0 + if (B_801D9DC0 != 0) { + sp1C = (osGetTime() - B_801D9DC0) * 64 / 3000; + + // Remnants from debug statements? + (void)(osGetTime() - B_801D9DC0); + (void)((osGetTime() - B_801D9DC0) * 64 / 3000); + (void)((osGetTime() - B_801D9DC0) * 64 / 3000); + + if (1000000 - sp1C > 0) { + Sleep_Usec(1000000 - sp1C); + } + } +#else + if (D_801D2EA8 == 1 || B_801E0F60 == 1 || B_801E0F64 == 1) { + B_801D9DC0 = osGetTime(); + } + func_801C7B28_ne2(); +#endif + if (sp20 == 0) { + func_801C6F78(); + } +} + +// Clears framebuffer +void func_801C7438(void* arg0) { + u16* var_v0; + + for (var_v0 = (u16*)arg0; var_v0 < (u16*)arg0 + SCREEN_WIDTH * SCREEN_HEIGHT; var_v0++) { + *var_v0 = 1; + } +} + +void func_801C746C(void* arg0, void* arg1, void* arg2) { + void* sp2C; + + if (arg0 != NULL || arg1 != NULL || arg2 != NULL) { + sp2C = (u8*)osViGetNextFramebuffer() + 0x20000000; + if ((u32)sp2C & 0xFFFFFF) { + if (B_801D9DB8 != 0) { + B_801D9DB8 = 0; + func_801C7438(sp2C); + B_801D9DC0 = osGetTime(); + } + if (arg0 != NULL) { + func_801CA1F0(arg0, 96, 32, 192, 16, 11, sp2C, SCREEN_WIDTH); + } + if (arg1 != NULL) { + func_801CA1F0(arg1, 0, 80, 320, 64, 11, sp2C, SCREEN_WIDTH); + } + if (arg2 != NULL) { + func_801CA1F0(arg2, 0, 176, 320, 32, 11, sp2C, SCREEN_WIDTH); + } +#if OOT_VERSION <= NTSC_1_1 + osViBlack(0); +#endif + } + } +} + +void func_801C75BC(void* arg0, void* arg1, void* arg2) { + s32 temp; + + if (arg0 == NULL && arg1 == NULL && arg2 == NULL) { + return; + } + + if (B_801D9DB8) {} + + if (arg0 != 0) { + B_801D9DCC = arg0; + } + if (arg1 != 0) { + B_801D9DD0 = arg1; + } + if (arg2 != 0) { + B_801D9DD4 = arg2; + } + func_801C746C(arg0, arg1, arg2); +} + +void func_801C761C(void) { + Sleep_Msec(100); + func_801C746C(B_801D9DCC, B_801D9DD0, B_801D9DD4); +} + +s32 func_801C7658(void) { + if (D_80121212 != 0) { + return 0; + } + +#if OOT_VERSION <= NTSC_1_1 + StackCheck_Init(&B_801DAF88, B_801D9F88, STACK_TOP(B_801D9F88), 0, 0x100, "ddmsg"); + osCreateThread(&B_801D9DD8, THREAD_ID_DDMSG, &func_801C711C, &B_801D9B90, STACK_TOP(B_801D9F88), THREAD_PRI_DDMSG); + osStartThread(&B_801D9DD8); +#endif + + osCreateMesgQueue(&B_801D9D80, B_801D9DB0, ARRAY_COUNT(B_801D9DB0)); + osCreateMesgQueue(&B_801D9D98, B_801D9DB4, ARRAY_COUNT(B_801D9DB4)); + + StackCheck_Init(&B_801DBFA8, B_801DAFA8, STACK_TOP(B_801DAFA8), 0, 0x100, "n64dd"); + + B_801D9D50.unk_1C = &B_801D9D80; + B_801D9D50.unk_20 = &B_801D9D98; + B_801D9D50.unk_24 = THREAD_ID_N64DD; + B_801D9D50.unk_28 = STACK_TOP(B_801DAFA8); + B_801D9D50.unk_2C = THREAD_PRI_N64DD; + B_801D9D50.unk_00 = 1; + + (&func_801C8000)(&B_801D9D50); + + D_80121213 = 1; + func_801C6FD8(); + + B_801D9D50.unk_00 = 2; + B_801D9D50.unk_10 = 6; + B_801D9D50.unk_14 = &DmaMgr_DmaFromDriveRom; + B_801D9D50.unk_0C = &func_801C75BC; + (&func_801C8000)(&B_801D9D50); + + B_801D9D50.unk_00 = 13; + (&func_801C8000)(&B_801D9D50); + +#if OOT_VERSION > NTSC_1_1 + StackCheck_Init(&B_801DAF88, B_801D9F88, STACK_TOP(B_801D9F88), 0, 0x100, "ddmsg"); + osCreateThread(&B_801D9DD8, THREAD_ID_DDMSG, &func_801C711C, &B_801D9B90, STACK_TOP(B_801D9F88), THREAD_PRI_DDMSG); + osStartThread(&B_801D9DD8); +#endif + + return 0; +} + +s32 func_801C7818(void) { +#if OOT_VERSION > NTSC_1_0 + B_801D9DB8 = 1; + B_801D9DC0 = 0; +#endif + + B_801D9D50.unk_00 = 12; + (&func_801C8000)(&B_801D9D50); + + while (func_801C81C4() == 0) { + // the number 16666 sounds like it could be 1 frame (at 60 frames per second) + Sleep_Usec(1000000 * 1 / 60); + } + +#if OOT_VERSION > NTSC_1_0 + if (D_801D2EA8 == 1 || B_801E0F60 == 1 || B_801E0F64 == 1) { + B_801D9DC0 = osGetTime(); + } + func_801C7B28_ne2(); +#endif + + if (func_801C81C4() != 2) { + func_801C761C(); + func_800D31A0(); + return -3; + } + + func_801C7018(); + D_80121212 = 1; + return 0; +} + +s32 func_801C78B8(void) { + s32 phi_v1 = func_801C7658(); + + if (phi_v1 == 0) { + phi_v1 = func_801C7818(); + } + return phi_v1; +} + +s32 func_801C78F0(void) { + B_801D9D50.unk_00 = 0; + return (&func_801C8000)(&B_801D9D50); +} + +void func_801C7920(s32 arg0, void* arg1, s32 arg2) { + B_801D9D50.unk_18 = arg1; + B_801D9D50.unk_1C = (void*)arg0; + B_801D9D50.unk_20 = (void*)arg2; + B_801D9D50.unk_00 = 3; + (&func_801C8000)(&B_801D9D50); + osGetTime(); + B_801D9D50.unk_00 = 6; + while ((&func_801C8000)(&B_801D9D50) != 0) { + Sleep_Usec(16666); // 100000 / 6 + } + B_801D9D50.unk_00 = 7; + if ((&func_801C8000)(&B_801D9D50) != 0) { + func_800D31A0(); + } +} + +void func_801C79CC(void* arg0, s32 arg1, s32 arg2) { + B_801D9D50.unk_18 = arg0; + B_801D9D50.unk_1C = (void*)arg1; + B_801D9D50.unk_20 = (void*)arg2; + B_801D9D50.unk_00 = 4; + (&func_801C8000)(&B_801D9D50); +} + +void func_801C7A10(LEODiskID* arg0) { +} + +// Checks diskId, sets B_801D9DC8 and returns true if diskId is correct +s32 func_801C7A1C(struct_801E0D18* arg0) { + static LEODiskID B_801DBFD0; + static s32 B_801DBFF0; // bool + + func_801C7A10(&arg0->diskId); + if (!B_801DBFF0) { +#if OOT_NTSC + if (bcmp(arg0->diskId.gameName, "EZLJ", 4) == 0 || bcmp(arg0->diskId.gameName, "EZLE", 4) == 0) +#else + if (bcmp(arg0->diskId.gameName, "EZLP", 4) == 0) +#endif + { + B_801DBFD0 = arg0->diskId; + B_801DBFF0 = true; + B_801D9DC8 = 1; + } else { + B_801D9DC8 = 2; + } + } else if (bcmp(&B_801DBFD0, &arg0->diskId, sizeof(LEODiskID)) == 0) { + B_801D9DC8 = 1; + } else { + B_801D9DC8 = 2; + } + return B_801D9DC8 == 1; +} + +// Translates byte position to LBA and byte offset +s32 func_801C7B48(s32 arg0, s32* arg1, s32* arg2) { + s32 sp2C; + s32 temp_v0_2; + s32 sp24; + s32 sp20; + s32 temp_v0; + + temp_v0_2 = LeoByteToLBA(1, arg0 + 1, &sp2C); + if (temp_v0_2 != LEO_ERROR_GOOD) { + return temp_v0_2; + } + sp24 = sp2C - 1; + if (sp2C == 1) { + sp20 = 0; + } else { + temp_v0 = LeoLBAToByte(1, sp24, &sp20); + if (temp_v0 != LEO_ERROR_GOOD) { + return temp_v0; + } + } + *arg1 = sp24 + 1; + *arg2 = arg0 - sp20; + return LEO_ERROR_GOOD; +} + +s32 func_801C7BEC(s32 startLBA) { + s32 bytes; + + if (LeoLBAToByte(startLBA, 1, &bytes) == LEO_ERROR_GOOD) { + return bytes; + } + return 0; +} + +// Copies bytes from disk to arg0 +void func_801C7C1C(void* dest, s32 offset, s32 size) { + s32 sp5C; + s32 sp58; + s32 sp54; + s32 sp50; + void* sp4C; + s32 var_s0; + s32 var_s1; + s32 temp_v1_2; + + func_801C6FD8(); + func_801C6F30(); + B_801D9DB8 = 1; + B_801D9DC0 = 0; + func_801C7B48(offset, &sp5C, &sp54); + func_801C7B48(offset + size, &sp58, &sp50); + sp4C = D_801D2E50; + if (sp5C == sp58) { + func_801C7920(sp5C, sp4C, func_801C7BEC(sp5C)); + bcopy((u8*)sp4C + sp54, dest, size); + } else { + var_s1 = 0; + func_801C7920(sp5C, sp4C, func_801C7BEC(sp5C)); + bcopy((u8*)sp4C + sp54, dest, func_801C7BEC(sp5C) - sp54); + if (sp5C + 1 < sp58) { + for (var_s0 = sp5C + 1; var_s0 < sp58; var_s0++) { + var_s1 += func_801C7BEC(var_s0); + } + func_801C7920(sp5C + 1, (u8*)dest + func_801C7BEC(sp5C) - sp54, var_s1); + } + if (sp50 > 0) { + func_801C7920(sp58, sp4C, func_801C7BEC(sp58)); + bcopy((u8*)sp4C, (u8*)dest + func_801C7BEC(sp5C) - sp54 + var_s1, sp50); + } + } +#if OOT_VERSION == NTSC_1_0 + if (B_801D9DC0 != 0) { + temp_v1_2 = (osGetTime() - B_801D9DC0) * 64 / 3000; + if (1000000 - temp_v1_2 > 0) { + Sleep_Usec(1000000 - temp_v1_2); + } + } +#else + func_801C7B28_ne2(); +#endif + func_801C7018(); + func_801C6F78(); +} + +void func_801C7E78(void) { +} + +s32 func_801C7E80(void) { + s32 sp24; + s32 sp20; + s32 sp1C; + uintptr_t sp18; + + if (B_801D9D48 != NULL) { + return -1; + } + B_801D9D48 = &B_801D9C30; + func_801C7C1C(B_801D9D48, 0x1060, 0x118); + sp24 = B_801D9D48->unk_004 - B_801D9D48->unk_000; + sp20 = B_801D9D48->unk_00C - B_801D9D48->unk_008; + sp18 = B_801D9D48->unk_008 + sp24; + func_801C7C1C((void*)B_801D9D48->unk_008, B_801D9D48->unk_000, sp24); + bzero((void*)sp18, sp20 - sp24); + func_800AD4C0(B_801D9D48->unk_010); + return 0; +} + +s32 func_801C7F24(void) { + uintptr_t temp_a0; + struct_801D9C30* temp_v0; + + if (B_801D9D48 == 0) { + return -1; + } + + // Function from code + func_800AD51C(); + + temp_v0 = B_801D9D48; + temp_a0 = temp_v0->unk_008; + bzero((void*)temp_a0, temp_v0->unk_00C - temp_a0); + bzero(B_801D9D48, sizeof(struct_801D9C30)); + B_801D9D48 = 0; + return 0; +} + +void n64dd_SetDiskVersion(s32 arg0) { + if (arg0 != 0) { + if (B_801D9D48 == 0) { + func_801C7E80(); + } + } else if (B_801D9D48 != 0) { + func_801C7F24(); + } +} diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index d7d65652e4..d59c379b4d 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:149 gc-eu-mq:149 gc-jp:151 gc-jp-ce:151 gc-jp-mq:151 gc-us:151 gc-us-mq:151" +#pragma increment_block_number "gc-eu:148 gc-eu-mq:148 gc-jp:150 gc-jp-ce:150 gc-jp-mq:150 gc-us:150 gc-us-mq:150" #define FLAGS ACTOR_FLAG_4 diff --git a/tools/disasm/ntsc-1.2/variables.txt b/tools/disasm/ntsc-1.2/variables.txt index ce115492fd..d657081ebd 100644 --- a/tools/disasm/ntsc-1.2/variables.txt +++ b/tools/disasm/ntsc-1.2/variables.txt @@ -19,8 +19,6 @@ D_80121212 = 0x80121AE2; // size:0x1 type:u8 _n64ddSegmentStart = 0x801C7740; _n64ddSegmentRomStart = 0x00B8ADA0; _n64ddSegmentRomEnd = 0x00B9DA70; -D_801DA410 = 0x801DA410; -D_801E8090 = 0x801E8090; D_800FEE70 = 0x800FF4B0; // size:0xB0 type:n64ddStruct_800FEE70_pointers gPadMgr = 0x8011DBD0; // size:0x468 type:PadMgr gFaultMgr = 0x80121B60; // size:0x5D8 type:FaultMgr_v1 diff --git a/tools/fix_bss.py b/tools/fix_bss.py index 8f5f16436c..6217e822fc 100755 --- a/tools/fix_bss.py +++ b/tools/fix_bss.py @@ -189,6 +189,7 @@ def compare_pointers(version: str) -> dict[Path, BssSection]: if not ( mapfile_segment.name.startswith("..boot") or mapfile_segment.name.startswith("..code") + or mapfile_segment.name.startswith("..n64dd") or mapfile_segment.name.startswith("..ovl_") ): continue diff --git a/undefined_syms.txt b/undefined_syms.txt index b5b1b772f7..deba8affd0 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -9,28 +9,3 @@ D_0F000000 = 0x0F000000; // z_bg_mjin D_06000000 = 0x06000000; - -#if PLATFORM_N64 - -// code_n64dd_800AD410.c -func_801C6E80 = 0x801C7740; -func_801C7C1C = 0x801C8510; -D_801DA410 = 0x801DA410; -D_801E8090 = 0x801E8090; - -// game.c -func_801C7E78 = 0x801C86F0; -func_801C6EA0 = 0x801C7760; - -// z_en_mag.c -func_801C70FC = 0x801C79BC; - -// z_setup.c -n64dd_SetDiskVersion = 0x801C8808; - -// z_title.c -func_801C7818 = 0x801C8090; -func_801C7268 = 0x801C7BC4; -func_801C7658 = 0x801C7ED0; - -#endif From fa39da2a57d4e588e31ebcebcc38bdef41da2737 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Sep 2024 21:31:57 +0200 Subject: [PATCH 42/86] Pause doc: Trade quest marker (#2158) * Pause doc: Trade quest location * trade quest location -> marker * comment on tradeQuestMarker --- include/z64pause.h | 4 +- .../misc/ovl_kaleido_scope/z_kaleido_map.c | 4 +- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 62 ++++++++++--------- .../misc/ovl_kaleido_scope/z_kaleido_scope.h | 2 +- 4 files changed, 39 insertions(+), 33 deletions(-) diff --git a/include/z64pause.h b/include/z64pause.h index be38d7dd01..12921fcd9f 100644 --- a/include/z64pause.h +++ b/include/z64pause.h @@ -112,6 +112,8 @@ typedef enum WorldMapPoint { /* 12 */ WORLD_MAP_POINT_MAX } WorldMapPoint; +#define TRADE_QUEST_MARKER_NONE 0xFF + typedef enum WorldMapPointState { /* 0 */ WORLD_MAP_POINT_STATE_HIDE, /* 1 */ WORLD_MAP_POINT_STATE_SHOW, @@ -184,7 +186,7 @@ typedef struct PauseContext { /* 0x0262 */ s16 promptChoice; // save/continue choice: 0 = yes; 4 = no /* 0x0264 */ s16 ocarinaSongIdx; /* 0x0266 */ u8 worldMapPoints[20]; // indices: `WorldMapPoint` enum, values: `WorldMapPointState` enum - /* 0x027A */ u8 tradeQuestLocation; + /* 0x027A */ u8 tradeQuestMarker; // Can be either a `WorldMapPoint` value or `TRADE_QUEST_MARKER_NONE` /* 0x027C */ SkelAnime playerSkelAnime; } PauseContext; // size = 0x2C0 diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c index c9e176b66c..efb6e0f553 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c @@ -873,9 +873,9 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { KaleidoScope_DrawCursor(play, PAUSE_MAP); } - gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[176], 16, 0); + gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[(PAGE_BG_QUADS + QUAD_MAP_TRADE_QUEST_MARKER) * 4], 16, 0); - if (pauseCtx->tradeQuestLocation != 0xFF) { + if (pauseCtx->tradeQuestMarker != TRADE_QUEST_MARKER_NONE) { gDPPipeSync(POLY_OPA_DISP++); gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, pointPulsePrimColor[0], 0, pauseCtx->alpha); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index 2f1eeca581..b1349a495b 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -580,7 +580,7 @@ s16 gVtxPageMapWorldQuadsWidth[VTX_PAGE_MAP_WORLD_QUADS] = { 8, // WORLD_MAP_POINT_KOKIRI_FOREST 8, // WORLD_MAP_POINT_ZORAS_DOMAIN 8, // QUAD_MAP_28 - 8, // QUAD_MAP_29 + 8, // QUAD_MAP_TRADE_QUEST_MARKER 80, // QUAD_MAP_30 64, // QUAD_MAP_31 }; @@ -615,7 +615,7 @@ s16 gVtxPageMapWorldQuadsHeight[VTX_PAGE_MAP_WORLD_QUADS] = { 8, // WORLD_MAP_POINT_KOKIRI_FOREST 8, // WORLD_MAP_POINT_ZORAS_DOMAIN 8, // QUAD_MAP_28 - 16, // QUAD_MAP_29 + 16, // QUAD_MAP_TRADE_QUEST_MARKER 32, // QUAD_MAP_30 8, // QUAD_MAP_31 }; @@ -2225,7 +2225,7 @@ static s16 sVtxPageMapWorldQuadsX[VTX_PAGE_MAP_WORLD_QUADS] = { 74, // WORLD_MAP_POINT_KOKIRI_FOREST 89, // WORLD_MAP_POINT_ZORAS_DOMAIN 0, // QUAD_MAP_28 - -58, // QUAD_MAP_29 + -58, // QUAD_MAP_TRADE_QUEST_MARKER 19, // QUAD_MAP_30 28, // QUAD_MAP_31 }; @@ -2279,7 +2279,7 @@ static s16 sVtxPageMapWorldQuadsY[VTX_PAGE_MAP_WORLD_QUADS] = { -9, // WORLD_MAP_POINT_KOKIRI_FOREST 25, // WORLD_MAP_POINT_ZORAS_DOMAIN 0, // QUAD_MAP_28 - 1, // QUAD_MAP_29 + 1, // QUAD_MAP_TRADE_QUEST_MARKER -32, // QUAD_MAP_30 -26, // QUAD_MAP_31 }; @@ -2434,9 +2434,9 @@ static s16 sVtxMapWorldAreaHeight[] = { }; s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 numQuads) { - static s16 D_8082B110 = 0; - static s16 D_8082B114 = 1; - static s16 D_8082B118 = 0; + static s16 sTradeQuestMarkerBobY = 0; + static s16 sTradeQuestMarkerBobTimer = 1; + static s16 sTradeQuestMarkerBobState = 0; PauseContext* pauseCtx = &play->pauseCtx; s16* quadsX; s16* quadsWidth; @@ -2556,32 +2556,32 @@ s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 num bufI += 12; - if (pauseCtx->tradeQuestLocation != 0xFF) { - if (D_8082B114 == 0) { - D_8082B118++; - switch (D_8082B118) { + if (pauseCtx->tradeQuestMarker != TRADE_QUEST_MARKER_NONE) { + if (sTradeQuestMarkerBobTimer == 0) { + sTradeQuestMarkerBobState++; + switch (sTradeQuestMarkerBobState) { case 1: - D_8082B110 = 3; - D_8082B114 = 8; + sTradeQuestMarkerBobY = 3; + sTradeQuestMarkerBobTimer = 8; break; case 2: - D_8082B110 = 0; - D_8082B114 = 6; - D_8082B118 = 0; + sTradeQuestMarkerBobY = 0; + sTradeQuestMarkerBobTimer = 6; + sTradeQuestMarkerBobState = 0; break; } } else { - D_8082B114--; + sTradeQuestMarkerBobTimer--; } - j = bufIAfterPageSections + (pauseCtx->tradeQuestLocation * 4) + 64; - i = bufIAfterPageSections + 116; + j = bufIAfterPageSections + ((QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->tradeQuestMarker) * 4); + i = bufIAfterPageSections + (QUAD_MAP_TRADE_QUEST_MARKER * 4); vtx[i + 0].v.ob[0] = vtx[i + 2].v.ob[0] = vtx[j + 0].v.ob[0]; vtx[i + 1].v.ob[0] = vtx[i + 3].v.ob[0] = vtx[i + 0].v.ob[0] + 8; - vtx[i + 0].v.ob[1] = vtx[i + 1].v.ob[1] = vtx[j + 0].v.ob[1] - D_8082B110 + 10; + vtx[i + 0].v.ob[1] = vtx[i + 1].v.ob[1] = vtx[j + 0].v.ob[1] - sTradeQuestMarkerBobY + 10; vtx[i + 0].v.ob[2] = vtx[i + 1].v.ob[2] = vtx[i + 2].v.ob[2] = vtx[i + 3].v.ob[2] = 0; @@ -3699,33 +3699,37 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_SHOW; } - pauseCtx->tradeQuestLocation = 0xFF; + // Trade quest marker + + pauseCtx->tradeQuestMarker = TRADE_QUEST_MARKER_NONE; i = INV_CONTENT(ITEM_TRADE_ADULT); if (LINK_AGE_IN_YEARS == YEARS_ADULT) { if ((i <= ITEM_POCKET_CUCCO) || (i == ITEM_ODD_MUSHROOM)) { - pauseCtx->tradeQuestLocation = 8; + pauseCtx->tradeQuestMarker = WORLD_MAP_POINT_KAKARIKO_VILLAGE; } if ((i == ITEM_COJIRO) || (i == ITEM_ODD_POTION)) { - pauseCtx->tradeQuestLocation = 9; + pauseCtx->tradeQuestMarker = WORLD_MAP_POINT_LOST_WOODS; } if (i == ITEM_POACHERS_SAW) { - pauseCtx->tradeQuestLocation = 2; + pauseCtx->tradeQuestMarker = WORLD_MAP_POINT_GERUDO_VALLEY; } if ((i == ITEM_BROKEN_GORONS_SWORD) || (i == ITEM_EYE_DROPS)) { - pauseCtx->tradeQuestLocation = 7; + pauseCtx->tradeQuestMarker = WORLD_MAP_POINT_DEATH_MOUNTAIN; } if (i == ITEM_PRESCRIPTION) { - pauseCtx->tradeQuestLocation = 11; + pauseCtx->tradeQuestMarker = WORLD_MAP_POINT_ZORAS_DOMAIN; } if (i == ITEM_EYEBALL_FROG) { - pauseCtx->tradeQuestLocation = 3; + pauseCtx->tradeQuestMarker = WORLD_MAP_POINT_LAKE_HYLIA; } - if ((i == ITEM_CLAIM_CHECK) && (gSaveContext.save.info.playerData.bgsFlag == 0)) { - pauseCtx->tradeQuestLocation = 7; + if ((i == ITEM_CLAIM_CHECK) && !gSaveContext.save.info.playerData.bgsFlag) { + pauseCtx->tradeQuestMarker = WORLD_MAP_POINT_DEATH_MOUNTAIN; } } + // Next state + pauseCtx->state = PAUSE_STATE_OPENING_1; break; diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h index 1ada2645a9..945e7efa8c 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h @@ -63,7 +63,7 @@ typedef enum MapQuad { // 16 to 27 follows the `WorldMapPoint` enum /* 27 */ QUAD_MAP_WORLD_POINT_LAST = QUAD_MAP_WORLD_POINT_FIRST + WORLD_MAP_POINT_MAX - 1, /* 28 */ QUAD_MAP_28, - /* 29 */ QUAD_MAP_29, + /* 29 */ QUAD_MAP_TRADE_QUEST_MARKER, /* 30 */ QUAD_MAP_30, /* 31 */ QUAD_MAP_31, /* 32 */ QUAD_MAP_WORLD_IMAGE_FIRST, From 27533a150780934296e992c8975c7ea96e0148d4 Mon Sep 17 00:00:00 2001 From: fig02 Date: Sat, 7 Sep 2024 16:02:01 -0400 Subject: [PATCH 43/86] rename gBuildTeam to gBuildCreator (#2160) --- include/variables.h | 2 +- src/boot/build.c | 4 ++-- src/boot/cic6105.c | 4 ++-- src/boot/idle.c | 2 +- src/overlays/gamestates/ovl_title/z_title.c | 2 +- tools/disasm/ntsc-1.2/variables.txt | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/variables.h b/include/variables.h index dc01f712da..9c4521c5b5 100644 --- a/include/variables.h +++ b/include/variables.h @@ -41,7 +41,7 @@ extern OSViContext* __osViCurr; extern OSViContext* __osViNext; extern OSViMode osViModeFpalLan1; extern u32 __additional_scanline; -extern const char gBuildTeam[]; +extern const char gBuildCreator[]; extern const char gBuildDate[]; extern const char gBuildMakeOption[]; extern OSMesgQueue gPiMgrCmdQueue; diff --git a/src/boot/build.c b/src/boot/build.c index aeaa398362..3782c43da6 100644 --- a/src/boot/build.c +++ b/src/boot/build.c @@ -1,9 +1,9 @@ #include "versions.h" #if PLATFORM_N64 -const char gBuildTeam[] = "zelda@srd44"; +const char gBuildCreator[] = "zelda@srd44"; #else -const char gBuildTeam[] = "zelda@srd022j"; +const char gBuildCreator[] = "zelda@srd022j"; #endif #if OOT_VERSION == NTSC_1_2 diff --git a/src/boot/cic6105.c b/src/boot/cic6105.c index ca5747c9cf..bd50096b71 100644 --- a/src/boot/cic6105.c +++ b/src/boot/cic6105.c @@ -5,7 +5,7 @@ s32 func_80001714(void); OSTask D_800067C0_unknown = { - 4, 0, rspbootTextStart, 0x3E8, cic6105TextStart, 0x20, (u64*)gBuildTeam, 8, NULL, 0, NULL, 0, NULL, 0, NULL, 0, + 4, 0, rspbootTextStart, 0x3E8, cic6105TextStart, 0x20, (u64*)gBuildCreator, 8, NULL, 0, NULL, 0, NULL, 0, NULL, 0, }; s32 B_80008EE0; @@ -34,7 +34,7 @@ void CIC6105_FaultClient(void) { } Fault_SetCursor(40, 184); Fault_Printf("ROM_F"); - Fault_Printf(" [Creator:%s]", gBuildTeam); + Fault_Printf(" [Creator:%s]", gBuildCreator); Fault_SetCursor(56, 192); Fault_Printf("[Date:%s]", gBuildDate); Fault_SetCursor(96, 32); diff --git a/src/boot/idle.c b/src/boot/idle.c index d88a75cb00..d698b8cef9 100644 --- a/src/boot/idle.c +++ b/src/boot/idle.c @@ -39,7 +39,7 @@ void Main_ThreadEntry(void* arg) { void Idle_ThreadEntry(void* arg) { PRINTF(T("アイドルスレッド(idleproc)実行開始\n", "Idle thread (idleproc) execution started\n")); - PRINTF(T("作製者 : %s\n", "Created by: %s\n"), gBuildTeam); + PRINTF(T("作製者 : %s\n", "Created by: %s\n"), gBuildCreator); PRINTF(T("作成日時 : %s\n", "Created : %s\n"), gBuildDate); PRINTF("MAKEOPTION: %s\n", gBuildMakeOption); PRINTF(VT_FGCOL(GREEN)); diff --git a/src/overlays/gamestates/ovl_title/z_title.c b/src/overlays/gamestates/ovl_title/z_title.c index c082e6f72f..36cb0d36ed 100644 --- a/src/overlays/gamestates/ovl_title/z_title.c +++ b/src/overlays/gamestates/ovl_title/z_title.c @@ -30,7 +30,7 @@ void ConsoleLogo_PrintBuildInfo(Gfx** gfxP) { GfxPrint_Printf(printer, "NOT MARIO CLUB VERSION"); GfxPrint_SetColor(printer, 255, 255, 255, 255); GfxPrint_SetPos(printer, 7, 23); - GfxPrint_Printf(printer, "[Creator:%s]", gBuildTeam); + GfxPrint_Printf(printer, "[Creator:%s]", gBuildCreator); GfxPrint_SetPos(printer, 7, 24); GfxPrint_Printf(printer, "[Date:%s]", gBuildDate); gfx = GfxPrint_Close(printer); diff --git a/tools/disasm/ntsc-1.2/variables.txt b/tools/disasm/ntsc-1.2/variables.txt index d657081ebd..497a427118 100644 --- a/tools/disasm/ntsc-1.2/variables.txt +++ b/tools/disasm/ntsc-1.2/variables.txt @@ -56,5 +56,5 @@ sGraphThread = 0x8011E2B8; rspbootTextStart = 0x800065C0; rspbootTextEnd = 0x80006720; cic6105TextStart = 0x80006720; -gBuildTeam = 0x80006D30; +gBuildCreator = 0x80006D30; gBuildDate = 0x80006D3C; From 277ce1c0d3a9ab46315a0de61d5bb3b36e5f1b76 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Sep 2024 22:55:06 +0200 Subject: [PATCH 44/86] [headers 8] Add `main.h`, `segmented_address.h`, and changes for `main.c` symbols (#2151) * [headers 8] Add main.h and changes for main.c symbols * fix gSystemHeapSize is size_t only in MM * segmented_address.h * rm now useless include * actually commit segmented_address.h, oops * rm gGraphThread (faulty copypaste from MM) * bss --- include/macros.h | 1 - include/main.h | 12 +++++++++++ include/padmgr.h | 2 ++ include/sched.h | 2 ++ include/segmented_address.h | 11 ++++++++++ include/variables.h | 3 --- include/z64.h | 2 ++ src/code/fault_gc.c | 2 +- src/code/main.c | 20 ++++++++++++------- src/code/sys_math3d.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../actors/ovl_player_actor/z_player.c | 2 +- 12 files changed, 46 insertions(+), 15 deletions(-) create mode 100644 include/main.h create mode 100644 include/segmented_address.h diff --git a/include/macros.h b/include/macros.h index e39e64b76c..913be31989 100644 --- a/include/macros.h +++ b/include/macros.h @@ -19,7 +19,6 @@ #define PHYSICAL_TO_VIRTUAL(addr) (void*)((uintptr_t)(addr) + 0x80000000) #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 ABS(x) ((x) >= 0 ? (x) : -(x)) #define DECR(x) ((x) == 0 ? 0 : --(x)) diff --git a/include/main.h b/include/main.h new file mode 100644 index 0000000000..495a0b9a9c --- /dev/null +++ b/include/main.h @@ -0,0 +1,12 @@ +#ifndef MAIN_H +#define MAIN_H + +#include "ultra64.h" + +extern s32 gScreenWidth; +extern s32 gScreenHeight; +extern u32 gSystemHeapSize; + +void Main(void* arg); + +#endif diff --git a/include/padmgr.h b/include/padmgr.h index 7078c90078..d22762a2f4 100644 --- a/include/padmgr.h +++ b/include/padmgr.h @@ -101,4 +101,6 @@ void PadMgr_RumbleSet(PadMgr* padMgr, u8* enable); } \ (void)0 +extern PadMgr gPadMgr; + #endif diff --git a/include/sched.h b/include/sched.h index 86db3e66f7..e170817015 100644 --- a/include/sched.h +++ b/include/sched.h @@ -67,4 +67,6 @@ typedef struct Scheduler { void Sched_Notify(Scheduler* sc); void Sched_Init(Scheduler* sc, void* stack, OSPri priority, u8 viModeType, UNK_TYPE arg4, IrqMgr* irqMgr); +extern Scheduler gScheduler; + #endif diff --git a/include/segmented_address.h b/include/segmented_address.h new file mode 100644 index 0000000000..a4d05c74f3 --- /dev/null +++ b/include/segmented_address.h @@ -0,0 +1,11 @@ +#ifndef SEGMENTED_ADDRESS_H +#define SEGMENTED_ADDRESS_H + +#include "ultra64.h" +#include "stdint.h" + +extern uintptr_t gSegments[NUM_SEGMENTS]; + +#define SEGMENTED_TO_VIRTUAL(addr) (void*)(gSegments[SEGMENT_NUMBER(addr)] + SEGMENT_OFFSET(addr) + K0BASE) + +#endif diff --git a/include/variables.h b/include/variables.h index 9c4521c5b5..c0bf4acb5b 100644 --- a/include/variables.h +++ b/include/variables.h @@ -102,8 +102,6 @@ extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[KALEIDO_OVL_MAX]; extern KaleidoMgrOverlay* gKaleidoMgrCurOvl; extern u8 gBossMarkState; -extern s32 gScreenWidth; -extern s32 gScreenHeight; #if OOT_DEBUG extern u32 gIsCtrlr2Valid; #endif @@ -200,7 +198,6 @@ extern u32 D_8016139C; extern PauseMapMarksData* gLoadedPauseMarkDataTable; extern PreNmiBuff* gAppNmiBufferPtr; -extern uintptr_t gSegments[NUM_SEGMENTS]; extern Scheduler gScheduler; extern PadMgr gPadMgr; extern IrqMgr gIrqMgr; diff --git a/include/z64.h b/include/z64.h index 377a760ce5..03354915d0 100644 --- a/include/z64.h +++ b/include/z64.h @@ -67,6 +67,8 @@ #include "sys_math3d.h" #include "fp_math.h" #include "sys_matrix.h" +#include "main.h" +#include "segmented_address.h" #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 240 diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c index 857cc4b885..67dbb34569 100644 --- a/src/code/fault_gc.c +++ b/src/code/fault_gc.c @@ -42,7 +42,7 @@ */ #if PLATFORM_GC -#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-eu-mq-dbg:208 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224" \ +#pragma increment_block_number "gc-eu:208 gc-eu-mq:208 gc-eu-mq-dbg:208 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224" \ "gc-us-mq:224" #include "global.h" diff --git a/src/code/main.c b/src/code/main.c index ab274c40ea..34b0bfaf1a 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -1,3 +1,16 @@ +#include "ultra64.h" + +#pragma increment_block_number "gc-eu:80 gc-eu-mq:80 gc-jp:80 gc-jp-ce:80 gc-jp-mq:80 gc-us:80 gc-us-mq:80" + +struct PreNmiBuff* gAppNmiBufferPtr; + +#include "segmented_address.h" + +struct Scheduler gScheduler; +struct PadMgr gPadMgr; +struct IrqMgr gIrqMgr; +uintptr_t gSegments[NUM_SEGMENTS]; + #include "global.h" #include "fault.h" #include "stack.h" @@ -14,13 +27,6 @@ s32 gScreenWidth = SCREEN_WIDTH; s32 gScreenHeight = SCREEN_HEIGHT; u32 gSystemHeapSize = 0; -#pragma increment_block_number "gc-eu:208 gc-eu-mq:208 gc-jp:208 gc-jp-ce:208 gc-jp-mq:208 gc-us:208 gc-us-mq:208" - -PreNmiBuff* gAppNmiBufferPtr; -Scheduler gScheduler; -PadMgr gPadMgr; -IrqMgr gIrqMgr; -uintptr_t gSegments[NUM_SEGMENTS]; OSThread sGraphThread; STACK(sGraphStack, 0x1800); STACK(sSchedStack, 0x600); diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index 570da1ab01..1e81ad6f86 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -5,7 +5,7 @@ #include "macros.h" #include "sys_math3d.h" -#pragma increment_block_number "gc-eu:106 gc-eu-mq:106 gc-jp:106 gc-jp-ce:106 gc-jp-mq:106 gc-us:106 gc-us-mq:106" +#pragma increment_block_number "gc-eu:105 gc-eu-mq:105 gc-jp:105 gc-jp-ce:105 gc-jp-mq:105 gc-us:105 gc-us-mq:105" s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index d59c379b4d..ecef2cf48d 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:148 gc-eu-mq:148 gc-jp:150 gc-jp-ce:150 gc-jp-mq:150 gc-us:150 gc-us-mq:150" +#pragma increment_block_number "gc-eu:145 gc-eu-mq:145 gc-jp:147 gc-jp-ce:147 gc-jp-mq:147 gc-us:147 gc-us-mq:147" #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 04988730fb..6317f9c5e9 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -366,7 +366,7 @@ static s32 D_80858AA4; static Vec3f sInteractWallCheckResult; static Input* sControlInput; -#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" +#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" // .data From a039aeffb7ba72911da093ae77e6a583939e9afc Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Sep 2024 23:23:25 +0200 Subject: [PATCH 45/86] [headers 5] Misc small headers untangling (#2147) * Misc small headers untangling * mv gSaveContext to where it is in MM in the header * newline police * move rand functions back to functions.h --- include/color.h | 2 ++ include/functions.h | 11 ----------- include/seqcmd.h | 2 ++ include/sequence.h | 16 ++++++++++++++++ include/variables.h | 6 ------ include/z64environment.h | 5 +++++ include/z64play.h | 11 ++++++----- include/z64save.h | 1 + src/overlays/actors/ovl_En_Kanban/z_en_kanban.c | 1 + src/overlays/actors/ovl_En_Kanban/z_en_kanban.h | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 1 + 11 files changed, 35 insertions(+), 23 deletions(-) diff --git a/include/color.h b/include/color.h index 0d6eff3233..816d38349d 100644 --- a/include/color.h +++ b/include/color.h @@ -1,6 +1,8 @@ #ifndef COLOR_H #define COLOR_H +#include "ultra64/ultratypes.h" + typedef struct Color_RGB8 { u8 r, g, b; } Color_RGB8; diff --git a/include/functions.h b/include/functions.h index ee7a203a62..6608ce1814 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1405,17 +1405,6 @@ void Audio_InitSound(void); void func_800F7170(void); void func_800F71BC(s32 arg0); -void Audio_StartSequence(u8 seqPlayerIndex, u8 seqId, u8 seqArgs, u16 fadeInDuration); -void Audio_StopSequence(u8 seqPlayerIndex, u16 fadeOutDuration); -void Audio_QueueSeqCmd(u32 cmd); -void Audio_ProcessSeqCmds(void); -u16 Audio_GetActiveSeqId(u8 seqPlayerIndex); -s32 Audio_IsSeqCmdNotQueued(u32 cmdVal, u32 cmdMask); -void Audio_SetVolumeScale(u8 seqPlayerIndex, u8 scaleIndex, u8 targetVol, u8 volFadeTimer); -void Audio_UpdateActiveSequences(void); -u8 func_800FAD34(void); -void Audio_ResetActiveSequences(void); -void Audio_ResetActiveSequencesAndVolume(void); void GfxPrint_SetColor(GfxPrint* this, u32 r, u32 g, u32 b, u32 a); void GfxPrint_SetPosPx(GfxPrint* this, s32 x, s32 y); void GfxPrint_SetPos(GfxPrint* this, s32 x, s32 y); diff --git a/include/seqcmd.h b/include/seqcmd.h index b351346fee..5acce7c493 100644 --- a/include/seqcmd.h +++ b/include/seqcmd.h @@ -1,6 +1,8 @@ #ifndef SEQCMD_H #define SEQCMD_H +#include "sequence.h" + // ==== Primary commands ==== #define SEQCMD_OP_MASK 0xF0000000 diff --git a/include/sequence.h b/include/sequence.h index 673242a800..e994ef3574 100644 --- a/include/sequence.h +++ b/include/sequence.h @@ -1,6 +1,8 @@ #ifndef SEQUENCE_H #define SEQUENCE_H +#include "ultra64.h" + typedef enum SeqId { /* 0x00 */ NA_BGM_GENERAL_SFX, // General Sound Effects /* 0x01 */ NA_BGM_NATURE_AMBIENCE, // Environmental nature background sounds @@ -323,4 +325,18 @@ typedef enum NatureAmimalId { #define NATURE_IO_ENTRIES_END 0xFF +// functions in sequence.c + +void Audio_StartSequence(u8 seqPlayerIndex, u8 seqId, u8 seqArgs, u16 fadeInDuration); +void Audio_StopSequence(u8 seqPlayerIndex, u16 fadeOutDuration); +void Audio_QueueSeqCmd(u32 cmd); +void Audio_ProcessSeqCmds(void); +u16 Audio_GetActiveSeqId(u8 seqPlayerIndex); +s32 Audio_IsSeqCmdNotQueued(u32 cmdVal, u32 cmdMask); +void Audio_SetVolumeScale(u8 seqPlayerIndex, u8 scaleIndex, u8 targetVol, u8 volFadeTimer); +void Audio_UpdateActiveSequences(void); +u8 func_800FAD34(void); +void Audio_ResetActiveSequences(void); +void Audio_ResetActiveSequencesAndVolume(void); + #endif diff --git a/include/variables.h b/include/variables.h index c0bf4acb5b..a242ec05c2 100644 --- a/include/variables.h +++ b/include/variables.h @@ -60,10 +60,6 @@ extern ActorOverlay gActorOverlayTable[ACTOR_ID_MAX]; // original name: "actor_d extern s32 gMaxActorId; // original name: "MaxProfile" extern s32 gDebugCamEnabled; extern GameStateOverlay gGameStateOverlayTable[GAMESTATE_ID_MAX]; -extern u8 gWeatherMode; -extern u8 gLightConfigAfterUnderwater; -extern u8 gInterruptSongOfStorms; -extern u16 gTimeSpeed; extern s32 gZeldaArenaLogSeverity; extern MapData gMapDataTable; extern s16 gSpoilingItems[3]; @@ -170,8 +166,6 @@ extern u8 gSequenceFontTable[]; extern u8 gSequenceTable[]; extern AudioTable gSampleBankTable; -extern SaveContext gSaveContext; - extern u8 gUseCutsceneCam; extern u16 D_8015FCCC; extern char D_8015FCD0[20]; diff --git a/include/z64environment.h b/include/z64environment.h index ad08ff5d0e..79d34bbff5 100644 --- a/include/z64environment.h +++ b/include/z64environment.h @@ -233,6 +233,11 @@ typedef struct EnvironmentContext { extern u8 gSkyboxIsChanging; extern TimeBasedSkyboxEntry gTimeBasedSkyboxConfigs[][9]; +extern u8 gWeatherMode; +extern u8 gLightConfigAfterUnderwater; +extern u8 gInterruptSongOfStorms; +extern u16 gTimeSpeed; + void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, struct SkyboxContext* skyboxCtx); void Environment_DrawSkyboxFilters(struct PlayState* play); diff --git a/include/z64play.h b/include/z64play.h index 432ecc2b19..562ad756d4 100644 --- a/include/z64play.h +++ b/include/z64play.h @@ -26,6 +26,7 @@ #include "z64view.h" union Color_RGBA8_u32; +struct Player; struct QuestHintCmd; struct VisMono; @@ -64,13 +65,13 @@ typedef struct PlayState { /* 0x117A4 */ ObjectContext objectCtx; /* 0x11CBC */ RoomContext roomCtx; /* 0x11D34 */ TransitionActorList transitionActors; - /* 0x11D3C */ void (*playerInit)(Player* player, struct PlayState* play, FlexSkeletonHeader* skelHeader); - /* 0x11D40 */ void (*playerUpdate)(Player* player, struct PlayState* play, Input* input); + /* 0x11D3C */ void (*playerInit)(struct Player* player, struct PlayState* play, FlexSkeletonHeader* skelHeader); + /* 0x11D40 */ void (*playerUpdate)(struct Player* player, struct PlayState* play, Input* input); /* 0x11D44 */ int (*isPlayerDroppingFish)(struct PlayState* play); /* 0x11D48 */ s32 (*startPlayerFishing)(struct PlayState* play); - /* 0x11D4C */ s32 (*grabPlayer)(struct PlayState* play, Player* player); + /* 0x11D4C */ s32 (*grabPlayer)(struct PlayState* play, struct Player* player); /* 0x11D50 */ s32 (*tryPlayerCsAction)(struct PlayState* play, Actor* actor, s32 csAction); - /* 0x11D54 */ void (*func_11D54)(Player* player, struct PlayState* play); + /* 0x11D54 */ void (*func_11D54)(struct Player* player, struct PlayState* play); /* 0x11D58 */ s32 (*damagePlayer)(struct PlayState* play, s32 damage); /* 0x11D5C */ void (*talkWithPlayer)(struct PlayState* play, Actor* actor); /* 0x11D60 */ MtxF viewProjectionMtxF; @@ -139,7 +140,7 @@ s32 Play_SetCameraAtEyeUp(PlayState* this, s16 camId, Vec3f* at, Vec3f* eye, Vec s32 Play_SetCameraFov(PlayState* this, s16 camId, f32 fov); s32 Play_SetCameraRoll(PlayState* this, s16 camId, s16 roll); void Play_CopyCamera(PlayState* this, s16 destCamId, s16 srcCamId); -s32 Play_InitCameraDataUsingPlayer(PlayState* this, s16 camId, Player* player, s16 setting); +s32 Play_InitCameraDataUsingPlayer(PlayState* this, s16 camId, struct Player* player, s16 setting); s32 Play_RequestCameraSetting(PlayState* this, s16 camId, s16 setting); void Play_ReturnToMainCam(PlayState* this, s16 camId, s16 duration); void Play_SaveSceneFlags(PlayState* this); diff --git a/include/z64save.h b/include/z64save.h index 12491072ce..33066fdd12 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -891,5 +891,6 @@ typedef enum EventInfHorsesState { #define EVENTINF_30 0x30 +extern SaveContext gSaveContext; #endif 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 f9d140c3ce..a767d19e89 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -5,6 +5,7 @@ */ #include "z_en_kanban.h" +#include "global.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_kanban/object_kanban.h" #include "terminal.h" diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.h b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.h index 15e8781750..36efa211df 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.h +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.h @@ -2,7 +2,7 @@ #define Z_EN_KANBAN_H #include "ultra64.h" -#include "global.h" +#include "z64actor.h" struct EnKanban; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index ecef2cf48d..f6e0f2875a 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -5,6 +5,7 @@ */ #include "z_fishing.h" +#include "global.h" #include "overlays/actors/ovl_En_Kanban/z_en_kanban.h" #include "assets/objects/object_fish/object_fish.h" From 2056ae5f1a0ddb618997e143a9d0ae9fc7d909eb Mon Sep 17 00:00:00 2001 From: fig02 Date: Sat, 7 Sep 2024 17:53:48 -0400 Subject: [PATCH 46/86] Document Attention/Lock-on Related Actor Flags (#2161) * document actor flags 0, 2, 3, and 27 * format * fly -> hover * wodring --- include/z64actor.h | 22 +++++---- src/code/z_actor.c | 27 ++++++----- src/code/z_en_a_keep.c | 4 +- src/code/z_player_call.c | 3 +- .../ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c | 2 +- .../ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c | 4 +- .../z_bg_jya_bombchuiwa.c | 4 +- .../ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c | 2 +- .../ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c | 2 +- .../actors/ovl_Bg_Treemouth/z_bg_treemouth.c | 4 +- .../actors/ovl_Boss_Dodongo/z_boss_dodongo.c | 8 ++-- src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c | 6 +-- src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c | 8 ++-- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 10 ++-- .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 8 ++-- .../ovl_Boss_Ganondrof/z_boss_ganondrof.c | 12 ++--- .../actors/ovl_Boss_Goma/z_boss_goma.c | 8 ++-- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 30 ++++++------ src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 20 ++++---- src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 20 ++++---- src/overlays/actors/ovl_Boss_Va/z_boss_va.c | 46 +++++++++---------- src/overlays/actors/ovl_Demo_Im/z_demo_im.c | 10 ++-- src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c | 5 +- src/overlays/actors/ovl_En_Am/z_en_am.c | 8 ++-- src/overlays/actors/ovl_En_Ani/z_en_ani.c | 2 +- .../actors/ovl_En_Anubice/z_en_anubice.c | 10 ++-- .../ovl_En_Attack_Niw/z_en_attack_niw.c | 2 +- src/overlays/actors/ovl_En_Ba/z_en_ba.c | 6 +-- src/overlays/actors/ovl_En_Bb/z_en_bb.c | 16 +++---- .../actors/ovl_En_Bigokuta/z_en_bigokuta.c | 6 +-- src/overlays/actors/ovl_En_Bili/z_en_bili.c | 6 +-- .../ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c | 3 +- .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 2 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 12 ++--- src/overlays/actors/ovl_En_Brob/z_en_brob.c | 4 +- .../actors/ovl_En_Bubble/z_en_bubble.c | 6 +-- src/overlays/actors/ovl_En_Bw/z_en_bw.c | 4 +- .../actors/ovl_En_Changer/z_en_changer.c | 2 +- .../actors/ovl_En_Clear_Tag/z_en_clear_tag.c | 6 +-- src/overlays/actors/ovl_En_Cow/z_en_cow.c | 4 +- src/overlays/actors/ovl_En_Crow/z_en_crow.c | 6 +-- src/overlays/actors/ovl_En_Cs/z_en_cs.c | 2 +- src/overlays/actors/ovl_En_Daiku/z_en_daiku.c | 6 +-- .../z_en_daiku_kakariko.c | 2 +- .../actors/ovl_En_Dekubaba/z_en_dekubaba.c | 4 +- .../actors/ovl_En_Dekunuts/z_en_dekunuts.c | 4 +- src/overlays/actors/ovl_En_Dh/z_en_dh.c | 10 ++-- src/overlays/actors/ovl_En_Dha/z_en_dha.c | 4 +- .../ovl_En_Diving_Game/z_en_diving_game.c | 2 +- src/overlays/actors/ovl_En_Dns/z_en_dns.c | 8 ++-- .../actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c | 2 +- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 8 ++-- .../actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c | 2 +- .../actors/ovl_En_Dodojr/z_en_dodojr.c | 12 ++--- .../actors/ovl_En_Dodongo/z_en_dodongo.c | 8 ++-- src/overlays/actors/ovl_En_Door/z_en_door.c | 2 +- src/overlays/actors/ovl_En_Ds/z_en_ds.c | 4 +- src/overlays/actors/ovl_En_Du/z_en_du.c | 2 +- src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c | 12 ++--- .../actors/ovl_En_Encount1/z_en_encount1.c | 4 +- .../actors/ovl_En_Ex_Item/z_en_ex_item.c | 2 +- .../actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c | 8 ++-- src/overlays/actors/ovl_En_Fd/z_en_fd.c | 10 ++-- .../actors/ovl_En_Fd_Fire/z_en_fd_fire.c | 4 +- .../actors/ovl_En_Firefly/z_en_firefly.c | 4 +- .../actors/ovl_En_Floormas/z_en_floormas.c | 14 +++--- src/overlays/actors/ovl_En_Fr/z_en_fr.c | 6 +-- src/overlays/actors/ovl_En_Fu/z_en_fu.c | 2 +- src/overlays/actors/ovl_En_Fw/z_en_fw.c | 2 +- src/overlays/actors/ovl_En_Fz/z_en_fz.c | 14 +++--- .../ovl_En_Ganon_Mant/z_en_ganon_mant.c | 2 +- .../ovl_En_Ganon_Organ/z_en_ganon_organ.c | 2 +- src/overlays/actors/ovl_En_Gb/z_en_gb.c | 2 +- src/overlays/actors/ovl_En_Ge1/z_en_ge1.c | 2 +- src/overlays/actors/ovl_En_Ge2/z_en_ge2.c | 4 +- src/overlays/actors/ovl_En_Ge3/z_en_ge3.c | 2 +- src/overlays/actors/ovl_En_GeldB/z_en_geldb.c | 8 ++-- src/overlays/actors/ovl_En_GirlA/z_en_girla.c | 4 +- src/overlays/actors/ovl_En_Gm/z_en_gm.c | 2 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 2 +- src/overlays/actors/ovl_En_Go2/z_en_go2.c | 16 +++---- src/overlays/actors/ovl_En_Goma/z_en_goma.c | 8 ++-- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 2 +- src/overlays/actors/ovl_En_Guest/z_en_guest.c | 2 +- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 8 ++-- .../actors/ovl_En_Heishi4/z_en_heishi4.c | 2 +- .../actors/ovl_En_Hintnuts/z_en_hintnuts.c | 16 +++---- src/overlays/actors/ovl_En_Hs/z_en_hs.c | 2 +- src/overlays/actors/ovl_En_Hs2/z_en_hs2.c | 2 +- src/overlays/actors/ovl_En_Hy/z_en_hy.c | 2 +- .../actors/ovl_En_Ice_Hono/z_en_ice_hono.c | 2 +- src/overlays/actors/ovl_En_Ik/z_en_ik.c | 6 +-- src/overlays/actors/ovl_En_In/z_en_in.c | 4 +- src/overlays/actors/ovl_En_Js/z_en_js.c | 2 +- .../actors/ovl_En_Jsjutan/z_en_jsjutan.c | 4 +- .../actors/ovl_En_Kakasi/z_en_kakasi.c | 2 +- .../actors/ovl_En_Kakasi2/z_en_kakasi2.c | 6 +-- .../actors/ovl_En_Kakasi3/z_en_kakasi3.c | 2 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 12 ++--- .../actors/ovl_En_Karebaba/z_en_karebaba.c | 6 +-- src/overlays/actors/ovl_En_Ko/z_en_ko.c | 6 +-- src/overlays/actors/ovl_En_Kz/z_en_kz.c | 6 +-- src/overlays/actors/ovl_En_Ma1/z_en_ma1.c | 2 +- src/overlays/actors/ovl_En_Ma2/z_en_ma2.c | 2 +- src/overlays/actors/ovl_En_Ma3/z_en_ma3.c | 2 +- src/overlays/actors/ovl_En_Mb/z_en_mb.c | 14 +++--- src/overlays/actors/ovl_En_Md/z_en_md.c | 2 +- src/overlays/actors/ovl_En_Mk/z_en_mk.c | 2 +- src/overlays/actors/ovl_En_Mm/z_en_mm.c | 2 +- src/overlays/actors/ovl_En_Mm2/z_en_mm2.c | 2 +- src/overlays/actors/ovl_En_Ms/z_en_ms.c | 2 +- src/overlays/actors/ovl_En_Mu/z_en_mu.c | 2 +- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 14 +++--- src/overlays/actors/ovl_En_Niw/z_en_niw.c | 14 +++--- .../actors/ovl_En_Niw_Girl/z_en_niw_girl.c | 6 +-- .../actors/ovl_En_Niw_Lady/z_en_niw_lady.c | 2 +- src/overlays/actors/ovl_En_Ny/z_en_ny.c | 4 +- src/overlays/actors/ovl_En_OE2/z_en_oe2.c | 2 +- .../ovl_En_Okarina_Tag/z_en_okarina_tag.c | 6 +-- src/overlays/actors/ovl_En_Okuta/z_en_okuta.c | 10 ++-- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 4 +- src/overlays/actors/ovl_En_Owl/z_en_owl.c | 2 +- .../actors/ovl_En_Peehat/z_en_peehat.c | 8 ++-- .../actors/ovl_En_Po_Desert/z_en_po_desert.c | 4 +- .../actors/ovl_En_Po_Field/z_en_po_field.c | 13 +++--- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 7 +-- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 16 ++++--- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 12 ++--- src/overlays/actors/ovl_En_Rd/z_en_rd.c | 10 ++-- src/overlays/actors/ovl_En_Reeba/z_en_reeba.c | 16 +++---- src/overlays/actors/ovl_En_Rr/z_en_rr.c | 8 ++-- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 16 +++---- src/overlays/actors/ovl_En_Sa/z_en_sa.c | 2 +- src/overlays/actors/ovl_En_Sb/z_en_sb.c | 2 +- .../actors/ovl_En_Shopnuts/z_en_shopnuts.c | 2 +- src/overlays/actors/ovl_En_Si/z_en_si.c | 2 +- src/overlays/actors/ovl_En_Skb/z_en_skb.c | 10 ++-- src/overlays/actors/ovl_En_Skj/z_en_skj.c | 14 +++--- .../actors/ovl_En_Skjneedle/z_en_skjneedle.c | 4 +- src/overlays/actors/ovl_En_Ssh/z_en_ssh.c | 2 +- src/overlays/actors/ovl_En_St/z_en_st.c | 4 +- src/overlays/actors/ovl_En_Sth/z_en_sth.c | 2 +- src/overlays/actors/ovl_En_Sw/z_en_sw.c | 6 +-- .../ovl_En_Syateki_Man/z_en_syateki_man.c | 4 +- .../ovl_En_Syateki_Niw/z_en_syateki_niw.c | 2 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 2 +- .../ovl_En_Takara_Man/z_en_takara_man.c | 7 +-- src/overlays/actors/ovl_En_Tana/z_en_tana.c | 4 +- src/overlays/actors/ovl_En_Test/z_en_test.c | 22 ++++----- src/overlays/actors/ovl_En_Tg/z_en_tg.c | 2 +- src/overlays/actors/ovl_En_Tite/z_en_tite.c | 2 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 2 +- .../actors/ovl_En_Torch2/z_en_torch2.c | 12 ++--- src/overlays/actors/ovl_En_Toryo/z_en_toryo.c | 2 +- src/overlays/actors/ovl_En_Tp/z_en_tp.c | 12 ++--- .../actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c | 2 +- src/overlays/actors/ovl_En_Vali/z_en_vali.c | 16 +++---- src/overlays/actors/ovl_En_Vm/z_en_vm.c | 2 +- .../actors/ovl_En_Wallmas/z_en_wallmas.c | 10 ++-- .../ovl_En_Weather_Tag/z_en_weather_tag.c | 2 +- .../actors/ovl_En_Weiyer/z_en_weiyer.c | 4 +- src/overlays/actors/ovl_En_Wf/z_en_wf.c | 8 ++-- .../ovl_En_Wonder_Item/z_en_wonder_item.c | 2 +- .../ovl_En_Wonder_Talk/z_en_wonder_talk.c | 6 +-- .../ovl_En_Wonder_Talk2/z_en_wonder_talk2.c | 12 ++--- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 4 +- .../ovl_En_Yabusame_Mark/z_en_yabusame_mark.c | 2 +- .../actors/ovl_En_Yukabyun/z_en_yukabyun.c | 4 +- src/overlays/actors/ovl_En_Zf/z_en_zf.c | 10 ++-- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 2 +- src/overlays/actors/ovl_En_Zl3/z_en_zl3.c | 46 +++++++++---------- src/overlays/actors/ovl_En_Zl4/z_en_zl4.c | 2 +- src/overlays/actors/ovl_En_Zo/z_en_zo.c | 8 ++-- src/overlays/actors/ovl_Fishing/z_fishing.c | 24 +++++----- .../actors/ovl_Item_Inbox/z_item_inbox.c | 2 +- .../actors/ovl_Obj_Dekujr/z_obj_dekujr.c | 2 +- .../actors/ovl_Obj_Switch/z_obj_switch.c | 2 +- .../ovl_Obj_Timeblock/z_obj_timeblock.c | 2 +- .../ovl_Obj_Warp2block/z_obj_warp2block.c | 2 +- src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c | 6 +-- .../actors/ovl_player_actor/z_player.c | 20 ++++---- 181 files changed, 616 insertions(+), 597 deletions(-) diff --git a/include/z64actor.h b/include/z64actor.h index c076ece293..91e715e5a5 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -107,14 +107,19 @@ typedef struct ActorShape { /* 0x18 */ Vec3f feetPos[2]; // Update by using `Actor_SetFeetPos` in PostLimbDraw } ActorShape; // size = 0x30 -// -#define ACTOR_FLAG_0 (1 << 0) +// Actor is discoverable by the Attention System. This enables Navi to hover over the actor when it is in range. +// The actor can also be locked onto (as long as `ACTOR_FLAG_LOCK_ON_DISABLED` is not set). +#define ACTOR_FLAG_ATTENTION_ENABLED (1 << 0) -// -#define ACTOR_FLAG_2 (1 << 2) +// Actor is hostile toward the Player. Player has specific "battle" behavior when locked onto hostile actors. +// Enemy background music will also be played when the player is close enough to a hostile actor. +// Note: This must be paired with `ACTOR_FLAG_ATTENTION_ENABLED` to have any effect. +#define ACTOR_FLAG_HOSTILE (1 << 2) -// -#define ACTOR_FLAG_3 (1 << 3) +// Actor is not hostile toward the player; Opposite flag of `ACTOR_FLAG_HOSTILE`. +// Note that this flag doesn't have any effect on either the actor, or Player's behvaior. +// What actually matters is the presence or lack of `ACTOR_FLAG_HOSTILE`. +#define ACTOR_FLAG_NEUTRAL (1 << 3) // #define ACTOR_FLAG_4 (1 << 4) @@ -187,8 +192,9 @@ typedef struct ActorShape { // #define ACTOR_FLAG_26 (1 << 26) -// -#define ACTOR_FLAG_27 (1 << 27) +// Player is not able to lock onto the actor. +// Navi will still be able to hover over the actor, assuming `ACTOR_FLAG_ATTENTION_ENABLED` is set. +#define ACTOR_FLAG_LOCK_ON_DISABLED (1 << 27) // #define ACTOR_FLAG_28 (1 << 28) diff --git a/src/code/z_actor.c b/src/code/z_actor.c index fd5eb6806c..069bca7fa9 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -431,7 +431,7 @@ void Attention_Draw(Attention* attention, PlayState* play) { actor = attention->arrowHoverActor; - if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_27)) { + if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { AttentionColor* attentionColor = &sAttentionColors[actor->category]; POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_7); @@ -545,8 +545,9 @@ void Attention_Update(Attention* attention, Player* player, Actor* playerFocusAc attention->reticleFadeAlphaControl = 0; } - lockOnSfxId = CHECK_FLAG_ALL(playerFocusActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2) ? NA_SE_SY_LOCK_ON - : NA_SE_SY_LOCK_ON_HUMAN; + lockOnSfxId = CHECK_FLAG_ALL(playerFocusActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) + ? NA_SE_SY_LOCK_ON + : NA_SE_SY_LOCK_ON_HUMAN; Sfx_PlaySfxCentered(lockOnSfxId); } @@ -848,7 +849,7 @@ s32 TitleCard_Clear(PlayState* play, TitleCardContext* titleCtx) { void Actor_Kill(Actor* actor) { actor->draw = NULL; actor->update = NULL; - actor->flags &= ~ACTOR_FLAG_0; + actor->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void Actor_SetWorldToHome(Actor* actor) { @@ -1589,7 +1590,7 @@ f32 Attention_WeightedDistToPlayerSq(Actor* actor, Player* player, s16 playerSha s16 yawTempAbs = ABS(yawTemp); if (player->focusActor != NULL) { - if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_27)) { + if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { return MAXFLOAT; } else { f32 adjDistSq; @@ -1650,14 +1651,14 @@ u32 Attention_ActorIsInRange(Actor* actor, f32 distSq) { * Returns true if an actor lock-on should be released. * This function does not actually release the lock-on, as that is Player's responsibility. * - * If an actor's update function is NULL or `ACTOR_FLAG_0` is unset, the lock-on should be released. + * If an actor's update function is NULL or `ACTOR_FLAG_ATTENTION_ENABLED` is unset, the lock-on should be released. * * There is also a check for Player exceeding the lock-on leash distance. * Note that this check will be ignored if `ignoreLeash` is true. * */ s32 Attention_ShouldReleaseLockOn(Actor* actor, Player* player, s32 ignoreLeash) { - if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_0)) { + if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_ATTENTION_ENABLED)) { return true; } @@ -3208,7 +3209,7 @@ s16 sAttentionPlayerRotY; * To be considered an attention actor the actor needs to: * - Have a non-NULL update function (still active) * - Not be player (this is technically a redundant check because the PLAYER category is never searched) - * - Have `ACTOR_FLAG_0` set + * - Have `ACTOR_FLAG_ATTENTION_ENABLED` set * - Not be the current focus actor * - Be the closest attention actor found so far * - Be within range, specified by attentionRangeType @@ -3233,8 +3234,10 @@ void Attention_FindActorInCategory(PlayState* play, ActorContext* actorCtx, Play playerFocusActor = player->focusActor; while (actor != NULL) { - if ((actor->update != NULL) && ((Player*)actor != player) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_0)) { - if ((actorCategory == ACTORCAT_ENEMY) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2) && + if ((actor->update != NULL) && ((Player*)actor != player) && + CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_ATTENTION_ENABLED)) { + if ((actorCategory == ACTORCAT_ENEMY) && + CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) && (actor->xyzDistToPlayerSq < SQ(500.0f)) && (actor->xyzDistToPlayerSq < sBgmEnemyDistSq)) { actorCtx->attention.bgmEnemy = actor; sBgmEnemyDistSq = actor->xyzDistToPlayerSq; @@ -4335,10 +4338,10 @@ s16 func_80034DD4(Actor* actor, PlayState* play, s16 arg2, f32 arg3) { } if (arg3 < var) { - actor->flags &= ~ACTOR_FLAG_0; + actor->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Math_SmoothStepToS(&arg2, 0, 6, 0x14, 1); } else { - actor->flags |= ACTOR_FLAG_0; + actor->flags |= ACTOR_FLAG_ATTENTION_ENABLED; Math_SmoothStepToS(&arg2, 0xFF, 6, 0x14, 1); } diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index 80e49121e5..b6b513ce65 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -132,7 +132,7 @@ void EnAObj_Init(Actor* thisx, PlayState* play) { break; case A_OBJ_UNKNOWN_6: this->focusYoffset = 10.0f; - thisx->flags |= ACTOR_FLAG_0; + thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->dyna.bgId = 5; thisx->gravity = -2.0f; EnAObj_SetupWaitTalk(this, thisx->params); @@ -146,7 +146,7 @@ void EnAObj_Init(Actor* thisx, PlayState* play) { case A_OBJ_SIGNPOST_ARROW: thisx->textId = (this->textId & 0xFF) | 0x300; thisx->lockOnArrowOffset = 500.0f; - thisx->flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; this->focusYoffset = 45.0f; EnAObj_SetupWaitTalk(this, thisx->params); Collider_InitCylinder(play, &this->collider); diff --git a/src/code/z_player_call.c b/src/code/z_player_call.c index 2235c8b3d8..7b44d6afec 100644 --- a/src/code/z_player_call.c +++ b/src/code/z_player_call.c @@ -1,6 +1,7 @@ #include "global.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25 | ACTOR_FLAG_26) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25 | ACTOR_FLAG_26) #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" diff --git a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c index 780592cde5..cd4eb5ef8d 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c @@ -164,7 +164,7 @@ void BgBdanSwitch_Init(Actor* thisx, PlayState* play) { case YELLOW_TALL_1: case YELLOW_TALL_2: BgBdanSwitch_InitCollision(this, play); - this->dyna.actor.flags |= ACTOR_FLAG_0; + this->dyna.actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->dyna.actor.attentionRangeType = ATTENTION_RANGE_4; break; } diff --git a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c index f9875ae0a4..bf908cd4bc 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c +++ b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c @@ -8,7 +8,7 @@ #include "assets/objects/object_haka_objects/object_haka_objects.h" #include "assets/objects/object_ice_objects/object_ice_objects.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4) typedef enum SpinningScytheTrapMode { /* 0 */ SCYTHE_TRAP_SHADOW_TEMPLE, @@ -170,7 +170,7 @@ void BgHakaSgami_Init(Actor* thisx, PlayState* play) { if (thisx->params == SCYTHE_TRAP_SHADOW_TEMPLE) { this->requiredObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_HAKA_OBJECTS); - thisx->flags &= ~ACTOR_FLAG_0; + thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { this->requiredObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_ICE_OBJECTS); this->colliderScytheCenter.dim.radius = 30; diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c index e768e31e85..f1f3fcd6c5 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c @@ -1,7 +1,7 @@ #include "z_bg_jya_bombchuiwa.h" #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" #include "assets/objects/object_jya_obj/object_jya_obj.h" -#define FLAGS ACTOR_FLAG_0 +#define FLAGS ACTOR_FLAG_ATTENTION_ENABLED void BgJyaBombchuiwa_Init(Actor* thisx, PlayState* play); void BgJyaBombchuiwa_Destroy(Actor* thisx, PlayState* play2); @@ -162,7 +162,7 @@ void BgJyaBombchuiwa_CleanUpAfterExplosion(BgJyaBombchuiwa* this, PlayState* pla BgJyaBombchuiwa_SetDrawFlags(this, 4); this->lightRayIntensity = 0.3f; this->timer = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void func_808949B8(BgJyaBombchuiwa* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c b/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c index fa3812cb94..c2d7cfff8d 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c @@ -330,7 +330,7 @@ void BgMizuMovebg_UpdateMain(BgMizuMovebg* this, PlayState* play) { this->dyna.actor.child->world.pos.x = this->dyna.actor.world.pos.x + offsetPos.x; this->dyna.actor.child->world.pos.y = this->dyna.actor.world.pos.y + offsetPos.y; this->dyna.actor.child->world.pos.z = this->dyna.actor.world.pos.z + offsetPos.z; - this->dyna.actor.child->flags &= ~ACTOR_FLAG_0; + this->dyna.actor.child->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } break; } diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c index 5c5bf9f21a..9fa983e961 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c @@ -138,7 +138,7 @@ s32 BgMoriHashigo_SpawnLadder(BgMoriHashigo* this, PlayState* play) { s32 BgMoriHashigo_InitClasp(BgMoriHashigo* this, PlayState* play) { Actor_ProcessInitChain(&this->dyna.actor, sInitChainClasp); - this->dyna.actor.flags |= ACTOR_FLAG_0; + this->dyna.actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Actor_SetFocus(&this->dyna.actor, 55.0f); BgMoriHashigo_InitCollider(this, play); if ((this->dyna.actor.params == HASHIGO_CLASP) && !BgMoriHashigo_SpawnLadder(this, play)) { diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c index d6ed4698ce..fab8eb3fa2 100644 --- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c +++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c @@ -142,9 +142,9 @@ void func_808BC8B8(BgTreemouth* this, PlayState* play) { if (!LINK_IS_ADULT) { if (Flags_GetEventChkInf(EVENTCHKINF_0C)) { if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 1658.0f, 0x7530)) { - this->dyna.actor.flags |= ACTOR_FLAG_0; + this->dyna.actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; if (this->dyna.actor.isLockedOn) { - this->dyna.actor.flags &= ~ACTOR_FLAG_0; + this->dyna.actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; play->csCtx.script = D_808BD2A0; gSaveContext.cutsceneTrigger = 1; BgTreemouth_SetupAction(this, func_808BC9EC); diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c index 356772eeef..d15f60ac4f 100644 --- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c +++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c @@ -3,7 +3,7 @@ #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" #include "assets/scenes/dungeons/ddan_boss/ddan_boss_room_1.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) void BossDodongo_Init(Actor* thisx, PlayState* play); void BossDodongo_Destroy(Actor* thisx, PlayState* play); @@ -217,7 +217,7 @@ void BossDodongo_Init(Actor* thisx, PlayState* play) { } } - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void BossDodongo_Destroy(Actor* thisx, PlayState* play) { @@ -476,7 +476,7 @@ void BossDodongo_SetupWalk(BossDodongo* this) { this->unk_1AA = 0; this->actionFunc = BossDodongo_Walk; this->unk_1DA = 0; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->unk_1E4 = 0.0f; } @@ -1279,7 +1279,7 @@ void BossDodongo_SetupDeathCutscene(BossDodongo* this) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_K_DEAD); this->unk_1DA = 0; this->csState = 0; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); this->unk_1BC = 1; SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 1); } diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c index d467695c69..758c5d7ca8 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c @@ -12,7 +12,7 @@ #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) typedef enum BossFdIntroFlyState { /* 0 */ INTRO_FLY_EMERGE, @@ -1277,9 +1277,9 @@ void BossFd_Effects(BossFd* this, PlayState* play) { } if ((this->actor.world.pos.y < 90.0f) || (700.0f < this->actor.world.pos.y) || (this->actionFunc == BossFd_Wait)) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } } diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index 61f455a6aa..879a5d56df 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -10,7 +10,7 @@ #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) typedef enum BossFd2CutsceneState { /* 0 */ DEATH_START, @@ -612,7 +612,7 @@ void BossFd2_SetupDeath(BossFd2* this, PlayState* play) { Animation_Change(&this->skelAnime, &gHoleVolvagiaDamagedAnim, 1.0f, 0.0f, this->fwork[FD2_END_FRAME], ANIMMODE_ONCE_INTERP, -3.0f); this->actionFunc = BossFd2_Death; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->deathState = DEATH_START; } @@ -995,9 +995,9 @@ void BossFd2_Update(Actor* thisx, PlayState* play2) { this->fwork[FD2_TEX2_SCROLL_X] += 3.0f; this->fwork[FD2_TEX2_SCROLL_Y] -= 2.0f; if (this->actor.focus.pos.y < 90.0f) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } } 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 56ba3ec7dd..ee46aa17cb 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -9,7 +9,7 @@ #include "assets/objects/object_ganon_anime2/object_ganon_anime2.h" #include "assets/scenes/dungeons/ganon_boss/ganon_boss_scene.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) void BossGanon_Init(Actor* thisx, PlayState* play2); void BossGanon_Destroy(Actor* thisx, PlayState* play); @@ -392,7 +392,7 @@ void BossGanon_Init(Actor* thisx, PlayState* play2) { 0, 0, 1); Actor_ChangeCategory(play, &play->actorCtx, thisx, ACTORCAT_BOSS); } else { - thisx->flags &= ~ACTOR_FLAG_0; + thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->fwork[GDF_FWORK_1] = 255.0f; if (thisx->params >= 0xC8) { @@ -2521,7 +2521,7 @@ void BossGanon_Vulnerable(BossGanon* this, PlayState* play) { Vec3f sp40; if (this->timers[3] == 0) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } SkelAnime_Update(&this->skelAnime); @@ -2671,7 +2671,7 @@ void BossGanon_SetupDamaged(BossGanon* this, PlayState* play) { } void BossGanon_Damaged(BossGanon* this, PlayState* play) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; SkelAnime_Update(&this->skelAnime); @@ -2832,7 +2832,7 @@ void BossGanon_Update(Actor* thisx, PlayState* play2) { this->collider.base.colType = 3; sCape->gravity = -3.0f; this->shockGlow = false; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unk_1A2++; this->unk_1A4++; diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index 2a87600073..8168c80586 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -7,7 +7,7 @@ #include "assets/objects/object_ganon_anime3/object_ganon_anime3.h" #include "assets/objects/object_geff/object_geff.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) void BossGanon2_Init(Actor* thisx, PlayState* play); void BossGanon2_Destroy(Actor* thisx, PlayState* play); @@ -175,7 +175,7 @@ void func_808FD4D4(BossGanon2* this, PlayState* play, s16 arg2, s16 arg3) { void func_808FD5C4(BossGanon2* this, PlayState* play) { this->actionFunc = func_808FD5F4; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.world.pos.y = -3000.0f; } @@ -882,7 +882,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { this->unk_337 = 1; func_808FFDB0(this, play); this->unk_1A2[1] = 50; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; sZelda->unk_3C8 = 7; } break; @@ -1054,7 +1054,7 @@ void func_808FFDB0(BossGanon2* this, PlayState* play) { } this->unk_336 = 1; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->unk_228 = 1.0f; this->unk_224 = 1.0f; } else { diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index 80a02a7593..5f34b94ddc 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -12,7 +12,7 @@ #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) typedef enum BossGanondrofDeathState { /* 0 */ NOT_DEAD, @@ -296,7 +296,7 @@ void BossGanondrof_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->colliderSpear); Collider_SetCylinder(play, &this->colliderBody, &this->actor, &sCylinderInitBody); Collider_SetCylinder(play, &this->colliderSpear, &this->actor, &sCylinderInitSpear); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (Flags_GetClear(play, play->roomCtx.curRoom.num)) { Actor_Kill(&this->actor); Actor_Spawn(&play->actorCtx, play, ACTOR_DOOR_WARP1, GND_BOSSROOM_CENTER_X, GND_BOSSROOM_CENTER_Y, @@ -438,7 +438,7 @@ void BossGanondrof_Paintings(BossGanondrof* this, PlayState* play) { EnfHG* horseTemp; Animation_MorphToPlayOnce(&this->skelAnime, &gPhantomGanonRideSpearRaiseAnim, -2.0f); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; horseTemp = (EnfHG*)this->actor.child; Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_FHG_FIRE, this->spearTip.x, this->spearTip.y, this->spearTip.z, 30, FHGFIRE_LIGHT_GREEN, 0, FHGFIRE_SPEAR_LIGHT); @@ -449,7 +449,7 @@ void BossGanondrof_Paintings(BossGanondrof* this, PlayState* play) { Animation_MorphToPlayOnce(&this->skelAnime, &gPhantomGanonRideSpearResetAnim, -2.0f); } else if (horse->bossGndSignal == FHG_RIDE) { Animation_MorphToLoop(&this->skelAnime, &gPhantomGanonRideAnim, -2.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } PRINTF("RUN 3\n"); @@ -476,7 +476,7 @@ void BossGanondrof_Paintings(BossGanondrof* this, PlayState* play) { void BossGanondrof_SetupNeutral(BossGanondrof* this, f32 arg1) { Animation_MorphToLoop(&this->skelAnime, &gPhantomGanonNeutralAnim, arg1); this->actionFunc = BossGanondrof_Neutral; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->fwork[GND_FLOAT_SPEED] = 0.0f; this->timers[0] = (s16)(Rand_ZeroOne() * 64.0f) + 30; } @@ -931,7 +931,7 @@ void BossGanondrof_SetupDeath(BossGanondrof* this, PlayState* play) { SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 1); Actor_PlaySfx(&this->actor, NA_SE_EN_FANTOM_DEAD); this->deathState = DEATH_START; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->work[GND_VARIANCE_TIMER] = 0; this->shockTimer = 50; } diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index 0ed382f3d9..fe72e733d3 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -4,7 +4,7 @@ #include "overlays/actors/ovl_Door_Shutter/z_door_shutter.h" #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) // IRIS_FOLLOW: gohma looks towards the player (iris rotation) // BONUS_IFRAMES: gain invincibility frames when the player does something (throwing things?), or @@ -404,7 +404,7 @@ void BossGoma_SetupDefeated(BossGoma* this, PlayState* play) { this->noBackfaceCulling = false; this->framesUntilNextAction = 1200; this->actionState = 0; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); this->actor.speed = 0.0f; this->actor.shape.shadowScale = 0.0f; SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 1); @@ -627,7 +627,7 @@ void BossGoma_SetupEncounterState4(BossGoma* this, PlayState* play) { player = GET_PLAYER(play); this->actionState = 4; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Cutscene_StartManual(play, &play->csCtx); Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1); this->subCamId = Play_CreateSubCamera(play); @@ -718,7 +718,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) { this->framesUntilNextAction = 50; this->timer = 80; this->frameCount = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; FALLTHROUGH; case 2: // zoom on player from room center // room entrance, towards center diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index 5b920b71d3..2e3ddd1c23 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -12,7 +12,7 @@ #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) #define MO_WATER_LEVEL(play) play->colCtx.colHeader->waterBoxes[0].ySurface @@ -526,7 +526,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { } switch (this->work[MO_TENT_ACTION_STATE]) { case MO_TENT_WAIT: - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (this == sMorphaTent2) { this->work[MO_TENT_ACTION_STATE] = MO_TENT_SPAWN; this->timers[0] = 70; @@ -919,7 +919,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { Vec3f spFC; Vec3f spF0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Math_ApproachF(&this->baseAlpha, 0.0, 1.0f, 5.0f); for (indS1 = 0; indS1 < 40; indS1++) { indS0 = sTentSpawnIndex[(s16)Rand_ZeroFloat(20.9f)]; @@ -963,7 +963,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { } break; case MO_TENT_DESPAWN: - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Math_ApproachF(&this->baseAlpha, 0, 1.0f, 5.0f); if ((this->baseAlpha <= 0.5f) && (this->timers[0] == 0)) { this->meltIndex = 0; @@ -990,7 +990,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { case MO_TENT_DEATH_3: this->baseBubblesTimer = 20; Math_ApproachF(&sMorphaCore->waterLevel, -300.0f, 0.1f, 0.8f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; for (indS1 = 0; indS1 < 41; indS1++) { sin = Math_SinS(((s16)this->fwork[MO_TENT_SWING_LAG_X] * indS1) + this->xSwing); tempf1 = this->fwork[MO_TENT_SWING_SIZE_X] * (indS1 * 0.025f * sin); @@ -1357,8 +1357,8 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) { this->subCamFov = 60.0f; this->actor.world.pos = sMorphaTent1->actor.world.pos; this->work[MO_TENT_ACTION_STATE] = MO_CORE_INTRO_REVEAL; - this->actor.flags &= ~ACTOR_FLAG_0; - sMorphaTent1->actor.flags |= ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; + sMorphaTent1->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; goto intro_reveal; } sMorphaTent1->xSwing = 0xCEC; @@ -1569,7 +1569,7 @@ void BossMo_DeathCs(BossMo* this, PlayState* play) { Rand_ZeroFloat(0.08f) + 0.13f); } this->drawActor = false; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_PlaySfx(&this->actor, NA_SE_EN_MOFER_CORE_JUMP); SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 70, NA_SE_EN_MOFER_LASTVOICE); } @@ -1810,7 +1810,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) { sMorphaTent1->cutScale = 1.0f; sMorphaTent1->work[MO_TENT_ACTION_STATE] = MO_TENT_CUT; sMorphaTent1->timers[0] = 40; - sMorphaTent1->actor.flags &= ~ACTOR_FLAG_0; + sMorphaTent1->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (player->actor.parent == &sMorphaTent1->actor) { player->av2.actionVar2 = 0x65; player->actor.parent = NULL; @@ -1877,7 +1877,7 @@ void BossMo_Core(BossMo* this, PlayState* play) { if ((this->csState != MO_BATTLE) && (this->csState < MO_DEATH_START)) { BossMo_IntroCs(this, play); if (this->work[MO_TENT_ACTION_STATE] == MO_CORE_INTRO_WAIT) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; return; } } else if (this->csState >= MO_DEATH_START) { @@ -1910,7 +1910,7 @@ void BossMo_Core(BossMo* this, PlayState* play) { } switch (this->work[MO_TENT_ACTION_STATE]) { case MO_CORE_MOVE: - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; if ((this->timers[0] == 0) && ((sMorphaTent1->work[MO_TENT_ACTION_STATE] == MO_TENT_WAIT) || (sMorphaTent1->work[MO_TENT_ACTION_STATE] == MO_TENT_READY)) && @@ -1949,7 +1949,7 @@ void BossMo_Core(BossMo* this, PlayState* play) { } break; case MO_CORE_STUNNED: - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; if (this->timers[0] == 0) { this->work[MO_TENT_ACTION_STATE] = MO_CORE_MOVE; this->timers[0] = 30; @@ -1966,7 +1966,7 @@ void BossMo_Core(BossMo* this, PlayState* play) { if (this->timers[0] == 0) { switch (this->work[MO_TENT_ACTION_STATE]) { case MO_CORE_ATTACK: - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->work[MO_CORE_POS_IN_TENT]++; if (sMorphaTent1->work[MO_TENT_ACTION_STATE] == MO_TENT_ATTACK) { temp = (s16)(Math_SinS(this->work[MO_TENT_MOVE_TIMER] * 0x300) * 10.0f) + 15; @@ -1991,7 +1991,7 @@ void BossMo_Core(BossMo* this, PlayState* play) { this->timers[0] = 0; break; case MO_CORE_INTRO_REVEAL: - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->work[MO_CORE_POS_IN_TENT]++; temp = (s16)(Math_SinS(this->work[MO_TENT_MOVE_TIMER] * 0x500) * 10.0f) + 15; if (this->work[MO_CORE_POS_IN_TENT] >= temp) { @@ -2258,7 +2258,7 @@ void BossMo_UpdateCore(Actor* thisx, PlayState* play) { } BossMo_UpdateEffects(this, play); if (player->actor.parent != NULL) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } #if !PLATFORM_N64 diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index d349a6a2b0..58dc8e6ccc 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -12,7 +12,7 @@ #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_10) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_10) #define vParity actionVar #define vVanish actionVar @@ -304,7 +304,7 @@ void BossSst_Init(Actor* thisx, PlayState* play2) { sHands[LEFT]->actor.child = &sHands[RIGHT]->actor; sHands[RIGHT]->actor.child = &sHands[LEFT]->actor; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.update = BossSst_UpdateHead; this->actor.draw = BossSst_DrawHead; this->radius = -650.0f; @@ -329,7 +329,7 @@ void BossSst_Init(Actor* thisx, PlayState* play2) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 95.0f); this->handZPosMod = -3500; this->actor.lockOnArrowOffset = 5000.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; BossSst_HandSetupWait(this); } } @@ -403,8 +403,8 @@ void BossSst_HeadIntro(BossSst* this, PlayState* play) { } if (this->timer == 0) { - sHands[RIGHT]->actor.flags |= ACTOR_FLAG_0; - sHands[LEFT]->actor.flags |= ACTOR_FLAG_0; + sHands[RIGHT]->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; + sHands[LEFT]->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; player->stateFlags1 &= ~PLAYER_STATE1_5; Cutscene_StopManual(play, &play->csCtx); Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_7); @@ -1401,7 +1401,7 @@ void BossSst_HandSetupRetreat(BossSst* this) { Animation_MorphToPlayOnce(&this->skelAnime, sHandHangPoses[this->actor.params], 10.0f); this->colliderJntSph.base.atFlags &= ~(AT_ON | AT_HIT); this->colliderJntSph.base.acFlags |= AC_ON; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; BossSst_HandSetInvulnerable(this, false); this->timer = 0; this->actionFunc = BossSst_HandRetreat; @@ -2055,7 +2055,7 @@ void BossSst_HandShake(BossSst* this, PlayState* play) { this->timer = 80; } } else if (this->timer == 0) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; BossSst_HandSetupSlam(this); } } @@ -2536,7 +2536,7 @@ void BossSst_HandCollisionCheck(BossSst* this, PlayState* play) { BossSst_HandSetupRetreat(OTHER_HAND(this)); } - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (this->actor.colChkInfo.damageEffect == 3) { BossSst_HandSetupFrozen(this); } else { @@ -2678,9 +2678,9 @@ void BossSst_UpdateHead(Actor* thisx, PlayState* play) { ((this->actionFunc == BossSst_HeadReadyCharge) || (this->actionFunc == BossSst_HeadCharge) || (this->actionFunc == BossSst_HeadFrozenHand) || (this->actionFunc == BossSst_HeadStunned) || (this->actionFunc == BossSst_HeadVulnerable) || (this->actionFunc == BossSst_HeadDamage))) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } else { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } if (this->actionFunc == BossSst_HeadCharge) { diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 2c9efc6e67..9d1ae9c259 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -3,7 +3,7 @@ #include "assets/objects/object_tw/object_tw.h" #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) typedef enum TwEffType { /* 0 */ TWEFF_NONE, @@ -457,7 +457,7 @@ void BossTw_Init(Actor* thisx, PlayState* play2) { Actor_SetScale(&this->actor, 0.01f); this->actor.update = BossTw_BlastUpdate; this->actor.draw = BossTw_BlastDraw; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInitBlasts); @@ -646,7 +646,7 @@ void BossTw_SetupFlyTo(BossTw* this, PlayState* play) { BossTw* otherTw = (BossTw*)this->actor.parent; this->unk_5F8 = 1; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = BossTw_FlyTo; this->rotateSpeed = 0.0f; Animation_MorphToLoop(&this->skelAnime, &gTwinrovaKotakeKoumeFlyAnim, -10.0f); @@ -1470,7 +1470,7 @@ void BossTw_SetupWait(BossTw* this, PlayState* play) { this->actionFunc = BossTw_Wait; this->visible = false; this->actor.world.pos.y = -2000.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void BossTw_Wait(BossTw* this, PlayState* play) { @@ -1632,7 +1632,7 @@ void BossTw_TwinrovaMergeCS(BossTw* this, PlayState* play) { this->csState1 = 1; this->visible = true; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.shape.rot.y = 0; BossTw_SetupWait(sKotakePtr, play); BossTw_SetupWait(sKoumePtr, play); @@ -1753,7 +1753,7 @@ void BossTw_SetupCSWait(BossTw* this, PlayState* play) { this->actionFunc = BossTw_CSWait; this->visible = false; this->actor.world.pos.y = -2000.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } /** @@ -1766,7 +1766,7 @@ void BossTw_TwinrovaSetupIntroCS(BossTw* this, PlayState* play) { this->actionFunc = BossTw_TwinrovaIntroCS; this->visible = false; this->actor.world.pos.y = -2000.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void BossTw_TwinrovaIntroCS(BossTw* this, PlayState* play) { @@ -2372,7 +2372,7 @@ void BossTw_TwinrovaSetupDeathCS(BossTw* this, PlayState* play) { this->actionFunc = BossTw_TwinrovaDeathCS; Animation_MorphToLoop(&this->skelAnime, &gTwinrovaDamageAnim, -3.0f); this->actor.world.rot.y = this->actor.shape.rot.y; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->csState2 = this->csState1 = 0; this->work[CS_TIMER_1] = this->work[CS_TIMER_2] = 0; this->work[INVINC_TIMER] = 10000; @@ -2670,7 +2670,7 @@ void BossTw_TwinrovaDeathCS(BossTw* this, PlayState* play) { this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, TW_DEATHBALL_KOUME); Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_BOSS_TW, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, TW_DEATHBALL_KOTAKE); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } Actor_SetScale(&this->actor, this->actor.scale.x); @@ -2723,7 +2723,7 @@ void BossTw_TwinrovaDeathCS(BossTw* this, PlayState* play) { sKoumePtr->work[YAW_TGT] = sKotakePtr->work[YAW_TGT] = sKoumePtr->actor.shape.rot.x = sKotakePtr->actor.shape.rot.x = sKoumePtr->actor.shape.rot.y = sKotakePtr->actor.shape.rot.y = 0; Player_SetCsActionWithHaltedActors(play, &sKoumePtr->actor, PLAYER_CSACTION_1); - sKoumePtr->actor.flags |= ACTOR_FLAG_0; + sKoumePtr->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } break; case 2: diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index c4887b6e99..6dccaf33d6 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Boom/z_en_boom.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) #define GET_BODY(this) ((BossVa*)(this)->actor.parent) #define vaGorePulse offset.x @@ -756,7 +756,7 @@ void BossVa_SetupIntro(BossVa* this) { Animation_Change(&this->skelAnime, &gBarinadeBodyAnim, 1.0f, lastFrame, lastFrame, ANIMMODE_ONCE, 0.0f); this->actor.shape.yOffset = -450.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; BossVa_SetupAction(this, BossVa_BodyIntro); } @@ -1048,7 +1048,7 @@ void BossVa_SetupBodyPhase1(BossVa* this) { Animation_Change(&this->skelAnime, &gBarinadeBodyAnim, 1.0f, lastFrame, lastFrame, ANIMMODE_ONCE, 0.0f); this->actor.shape.yOffset = -450.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->timer = 25; sBodyState = 0x80; BossVa_SetupAction(this, BossVa_BodyPhase1); @@ -1115,7 +1115,7 @@ void BossVa_SetupBodyPhase2(BossVa* this, PlayState* play) { } this->invincibilityTimer = 0; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; BossVa_SetupAction(this, BossVa_BodyPhase2); } @@ -1181,10 +1181,10 @@ void BossVa_BodyPhase2(BossVa* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.z, this->actor.world.rot.z, 1, 0xC8, 0); Math_SmoothStepToF(&this->actor.shape.yOffset, -1000.0f, 1.0f, 20.0f, 0.0f); if (!(sPhase2Timer & 0x100)) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 1.0f; } else { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; } @@ -1247,7 +1247,7 @@ void BossVa_BodyPhase3(BossVa* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_BALINADE_FAINT); sBodyState = 1; this->timer = 131; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { sBodyState = 0; if (this->timer == 0) { @@ -1257,7 +1257,7 @@ void BossVa_BodyPhase3(BossVa* this, PlayState* play) { } Math_SmoothStepToF(&this->actor.speed, 3.0f, 1.0f, 0.15f, 0.0f); } - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } else { this->timer--; if (this->timer < 35) { @@ -1332,7 +1332,7 @@ void BossVa_BodyPhase3(BossVa* this, PlayState* play) { void BossVa_SetupBodyPhase4(BossVa* this, PlayState* play) { this->unk_1AC = 0; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->vaBodySpinRate = this->unk_1AC; this->actor.world.rot.y = this->actor.yawTowardsPlayer; this->timer2 = (s16)(Rand_ZeroOne() * 150.0f) + 300; @@ -1511,7 +1511,7 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) { void BossVa_SetupBodyDeath(BossVa* this, PlayState* play) { func_800F436C(&this->actor.projectedPos, NA_SE_EN_BALINADE_LEVEL - SFX_FLAG, 1.0f); - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 1); this->vaCamRotMod = 0xC31; sCsState = DEATH_START; @@ -1800,7 +1800,7 @@ void BossVa_SupportCut(BossVa* this, PlayState* play) { lastFrame = Animation_GetLastFrame(&gBarinadeSupportDetachedAnim); Animation_Change(&this->skelAnime, &gBarinadeSupportDetachedAnim, 1.0f, 0.0f, lastFrame, ANIMMODE_LOOP_INTERP, 0.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } if ((this->timer == 0) && (sCsState < DEATH_START)) { @@ -1854,7 +1854,7 @@ void BossVa_SupportCut(BossVa* this, PlayState* play) { void BossVa_SetupStump(BossVa* this, PlayState* play) { Animation_Change(&this->skelAnime, &gBarinadeStumpAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gBarinadeStumpAnim), ANIMMODE_ONCE, 0.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; BossVa_SetupAction(this, BossVa_Stump); } @@ -1873,7 +1873,7 @@ void BossVa_SetupZapperIntro(BossVa* this, PlayState* play) { Animation_Change(&this->skelAnime, &gBarinadeZapperIdleAnim, 1.0f, lastFrame - 1.0f, lastFrame, ANIMMODE_LOOP_INTERP, -6.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; BossVa_SetupAction(this, BossVa_ZapperIntro); } @@ -1900,7 +1900,7 @@ void BossVa_SetupZapperAttack(BossVa* this, PlayState* play) { Animation_Change(&this->skelAnime, &gBarinadeZapperIdleAnim, 1.0f, lastFrame - 1.0f, lastFrame, ANIMMODE_LOOP_INTERP, -6.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; BossVa_SetupAction(this, BossVa_ZapperAttack); } @@ -2399,7 +2399,7 @@ void BossVa_SetupBariIntro(BossVa* this, PlayState* play) { this->actor.world.pos.y = sInitPosOffsets[this->actor.params + 10].y + this->actor.home.pos.y; this->actor.world.pos.z = sInitPosOffsets[this->actor.params + 10].z + this->actor.home.pos.z; this->timer = 45; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; BossVa_SetupAction(this, BossVa_BariIntro); } @@ -2521,7 +2521,7 @@ void BossVa_SetupBariPhase3Attack(BossVa* this, PlayState* play) { this->unk_1F0 = 0x78; this->unk_1A0 = 60.0f; this->unk_1A8 = 0.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; BossVa_SetupAction(this, BossVa_BariPhase3Attack); } @@ -2608,7 +2608,7 @@ void BossVa_SetupBariPhase2Attack(BossVa* this, PlayState* play) { this->unk_1F0 = 0x78; this->unk_1A0 = 60.0f; this->unk_1A8 = 0.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; BossVa_SetupAction(this, BossVa_BariPhase2Attack); } @@ -2658,7 +2658,7 @@ void BossVa_BariPhase2Attack(BossVa* this, PlayState* play) { if (!(sPhase2Timer & 0x100) && (GET_BODY(this)->actor.colorFilterTimer == 0)) { sp4C = 200.0f; BossVa_Spark(play, this, 1, 125, 15.0f, 7.0f, SPARK_TETHER, 1.0f, true); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (PARAMS_GET_U(this->actor.params, 0, 1)) { sp4C = -200.0f; } @@ -2681,7 +2681,7 @@ void BossVa_BariPhase2Attack(BossVa* this, PlayState* play) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->colliderLightning.base); CollisionCheck_SetAT(play, &play->colChkCtx, &this->colliderSph.base); } else { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Math_SmoothStepToS(&this->unk_1AC, sp50 + 150, 1, 0x3C, 0); if (GET_BODY(this)->actor.colorFilterTimer == 0) { Math_SmoothStepToF(&this->unk_1A0, 180.0f, 1.0f, 1.5f, 0.0f); @@ -2722,7 +2722,7 @@ void BossVa_BariPhase2Attack(BossVa* this, PlayState* play) { } void BossVa_SetupBariPhase3Stunned(BossVa* this, PlayState* play) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->timer = GET_BODY(this)->timer; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_XLU, this->timer); BossVa_SetupAction(this, BossVa_BariPhase3Stunned); @@ -2755,7 +2755,7 @@ void BossVa_BariPhase3Stunned(BossVa* this, PlayState* play) { } else { BossVa_Spark(play, this, 1, 85, 15.0f, 0.0f, SPARK_TETHER, 1.0f, true); if (this->timer2 >= 0x10) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->timer2 = 0x80; BossVa_SetupAction(this, BossVa_BariPhase3Attack); } @@ -2764,7 +2764,7 @@ void BossVa_BariPhase3Stunned(BossVa* this, PlayState* play) { } void BossVa_SetupBariDeath(BossVa* this) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->timer = 30; Actor_PlaySfx(&this->actor, NA_SE_EN_BALINADE_BL_DEAD); this->isDead++; @@ -2782,7 +2782,7 @@ void BossVa_SetupDoor(BossVa* this, PlayState* play) { if (sCsState >= INTRO_SPAWN_BARI) { sDoorState = 100; } - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; BossVa_SetupAction(this, BossVa_Door); } diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c index 37226cc591..4eafb3aec8 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c @@ -11,7 +11,7 @@ #include "assets/objects/object_im/object_im.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4) void DemoIm_Init(Actor* thisx, PlayState* play); void DemoIm_Destroy(Actor* thisx, PlayState* play); @@ -861,7 +861,7 @@ s32 func_80986A5C(DemoIm* this, PlayState* play) { } s32 func_80986AD0(DemoIm* this, PlayState* play) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; if (!Actor_TalkOfferAccepted(&this->actor, play)) { this->actor.textId = 0x708E; Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); @@ -957,7 +957,7 @@ void func_80986DC8(DemoIm* this, PlayState* play) { DemoIm_UpdateSkelAnime(this); func_80984BE0(this); func_80984E58(this, play); - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); } void func_80986E20(DemoIm* this, PlayState* play) { @@ -1004,7 +1004,7 @@ void func_80986FA8(DemoIm* this, PlayState* play) { DemoIm_UpdateSkelAnime(this); func_80984BE0(this); func_80984E58(this, play); - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); DemoIm_UpdateCollider(this, play); func_80986CFC(this, play); } @@ -1122,7 +1122,7 @@ void DemoIm_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f); DemoIm_InitCollider(thisx, play); SkelAnime_InitFlex(play, &this->skelAnime, &gImpaSkel, NULL, this->jointTable, this->morphTable, 17); - thisx->flags &= ~ACTOR_FLAG_0; + thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; switch (this->actor.params) { case 2: diff --git a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c index 4723acd318..348f57ddbe 100644 --- a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c +++ b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c @@ -88,7 +88,8 @@ void ElfMsg2_Init(Actor* thisx, PlayState* play) { ElfMsg2_SetupAction(this, ElfMsg2_WaitUntilActivated); } else { ElfMsg2_SetupAction(this, ElfMsg2_WaitForTextRead); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_18; // Make actor targetable and Navi-checkable + this->actor.flags |= + ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_18; // Make actor targetable and Navi-checkable this->actor.textId = ElfMsg2_GetMessageId(this); } this->actor.shape.rot.x = this->actor.shape.rot.y = this->actor.shape.rot.z = 0; @@ -140,7 +141,7 @@ void ElfMsg2_WaitUntilActivated(ElfMsg2* this, PlayState* play) { if ((this->actor.world.rot.y >= 0x41) && (this->actor.world.rot.y <= 0x80) && (Flags_GetSwitch(play, (this->actor.world.rot.y - 0x41)))) { ElfMsg2_SetupAction(this, ElfMsg2_WaitForTextRead); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_18; // Make actor targetable and Navi-checkable + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_18; // Make actor targetable and Navi-checkable this->actor.textId = ElfMsg2_GetMessageId(this); } } diff --git a/src/overlays/actors/ovl_En_Am/z_en_am.c b/src/overlays/actors/ovl_En_Am/z_en_am.c index a90dcfd1a3..48625a2e4d 100644 --- a/src/overlays/actors/ovl_En_Am/z_en_am.c +++ b/src/overlays/actors/ovl_En_Am/z_en_am.c @@ -8,7 +8,7 @@ #include "assets/objects/object_am/object_am.h" #include "overlays/actors/ovl_En_Bom/z_en_bom.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_26) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_26) void EnAm_Init(Actor* thisx, PlayState* play); void EnAm_Destroy(Actor* thisx, PlayState* play); @@ -284,7 +284,7 @@ void EnAm_SetupStatue(EnAm* this) { f32 lastFrame = Animation_GetLastFrame(&gArmosRicochetAnim); Animation_Change(&this->skelAnime, &gArmosRicochetAnim, 0.0f, lastFrame, lastFrame, ANIMMODE_LOOP, 0.0f); - this->dyna.actor.flags &= ~ACTOR_FLAG_0; + this->dyna.actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->behavior = AM_BEHAVIOR_DO_NOTHING; this->dyna.actor.speed = 0.0f; EnAm_SetupAction(this, EnAm_Statue); @@ -385,7 +385,7 @@ void EnAm_Sleep(EnAm* this, PlayState* play) { if (this->textureBlend >= 240) { this->attackTimer = 200; this->textureBlend = 255; - this->dyna.actor.flags |= ACTOR_FLAG_0; + this->dyna.actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->dyna.actor.shape.yOffset = 0.0f; EnAm_SetupLunge(this); } else { @@ -406,7 +406,7 @@ void EnAm_Sleep(EnAm* this, PlayState* play) { this->textureBlend -= 10; } else { this->textureBlend = 0; - this->dyna.actor.flags &= ~ACTOR_FLAG_0; + this->dyna.actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (this->dyna.bgId < 0) { this->unk_264 = 0; diff --git a/src/overlays/actors/ovl_En_Ani/z_en_ani.c b/src/overlays/actors/ovl_En_Ani/z_en_ani.c index aca4646244..65f421de0b 100644 --- a/src/overlays/actors/ovl_En_Ani/z_en_ani.c +++ b/src/overlays/actors/ovl_En_Ani/z_en_ani.c @@ -7,7 +7,7 @@ #include "z_en_ani.h" #include "assets/objects/object_ani/object_ani.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnAni_Init(Actor* thisx, PlayState* play); void EnAni_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c index 2cb9e30b9f..d5889a5196 100644 --- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c +++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c @@ -10,7 +10,7 @@ #include "overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) void EnAnubice_Init(Actor* thisx, PlayState* play); void EnAnubice_Destroy(Actor* thisx, PlayState* play); @@ -146,7 +146,7 @@ void EnAnubice_Init(Actor* thisx, PlayState* play) { this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->actor.shape.yOffset = -4230.0f; this->focusHeightOffset = 0.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->home = this->actor.world.pos; this->actor.attentionRangeType = ATTENTION_RANGE_3; this->actionFunc = EnAnubice_FindFlameCircles; @@ -193,7 +193,7 @@ void EnAnubice_FindFlameCircles(EnAnubice* this, PlayState* play) { } this->hasSearchedForFlameCircles = true; } - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnAnubice_SetupIdle; } } @@ -374,7 +374,7 @@ void EnAnubice_Update(Actor* thisx, PlayState* play) { (fabsf(this->flameCircles[i]->actor.world.pos.z - this->actor.world.pos.z) < 60.0f) && (flameCircle->timer != 0)) { Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_PROP); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Enemy_StartFinishingBlow(play, &this->actor); Actor_PlaySfx(&this->actor, NA_SE_EN_ANUBIS_DEAD); this->actionFunc = EnAnubice_SetupDie; @@ -386,7 +386,7 @@ void EnAnubice_Update(Actor* thisx, PlayState* play) { this->collider.base.acFlags &= ~AC_HIT; if (this->actor.colChkInfo.damageEffect == ANUBICE_DMGEFF_FIRE) { Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_PROP); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Enemy_StartFinishingBlow(play, &this->actor); Actor_PlaySfx(&this->actor, NA_SE_EN_ANUBIS_DEAD); this->actionFunc = EnAnubice_SetupDie; 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 6fa2b853d8..2461948d31 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 @@ -53,7 +53,7 @@ void EnAttackNiw_Init(Actor* thisx, PlayState* play) { this->unk_298.y = Rand_CenteredFloat(10.0f); this->unk_298.z = Rand_CenteredFloat(100.0f); Actor_SetScale(&this->actor, 0.01f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.shape.rot.y = this->actor.world.rot.y = (Rand_ZeroOne() - 0.5f) * 60000.0f; this->actionFunc = func_809B5670; } diff --git a/src/overlays/actors/ovl_En_Ba/z_en_ba.c b/src/overlays/actors/ovl_En_Ba/z_en_ba.c index 8d667bc49d..e42bb4fa17 100644 --- a/src/overlays/actors/ovl_En_Ba/z_en_ba.c +++ b/src/overlays/actors/ovl_En_Ba/z_en_ba.c @@ -7,7 +7,7 @@ #include "z_en_ba.h" #include "assets/objects/object_bxa/object_bxa.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) void EnBa_Init(Actor* thisx, PlayState* play); void EnBa_Destroy(Actor* thisx, PlayState* play); @@ -146,7 +146,7 @@ void EnBa_Idle(EnBa* this, PlayState* play) { if ((this->actor.colChkInfo.mass == MASS_IMMOVABLE) && (this->actor.xzDistToPlayer > 175.0f)) { Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.home.pos.y + 330.0f, 1.0f, 7.0f, 0.0f); } else { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.home.pos.y + 100.0f, 1.0f, 10.0f, 0.0f); } this->unk_2FC = this->actor.world.pos; @@ -402,7 +402,7 @@ void func_809B75A0(EnBa* this, PlayState* play2) { Matrix_Translate(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, MTXMODE_NEW); Matrix_RotateZYX(this->actor.shape.rot.x - 0x8000, this->actor.shape.rot.y, 0, MTXMODE_APPLY); Matrix_MultVec3f(&D_809B8080, &this->unk_158[0]); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; for (i = 5; i < 13; i++) { Math_SmoothStepToS(&this->unk_2A8[i].x, this->unk_2A8[5].x, 1, this->unk_31C, 0); Math_SmoothStepToS(&this->unk_2A8[i].y, this->unk_2A8[5].y, 1, this->unk_31C, 0); diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index af2cf4c380..52002c445d 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -8,7 +8,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_Bb/object_Bb.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_24) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_24) #define vBombHopPhase actionVar1 #define vTrailIdx actionVar1 @@ -412,7 +412,7 @@ void EnBb_SetupFlameTrail(EnBb* this) { this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; this->actor.speed = 0.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnBb_SetupAction(this, EnBb_FlameTrail); } @@ -700,7 +700,7 @@ void EnBb_Down(EnBb* this, PlayState* play) { this->moveMode = BBMOVE_HIDDEN; this->timer = 10; this->actionState++; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->action = BB_RED; EnBb_SetupAction(this, EnBb_Red); return; @@ -765,7 +765,7 @@ void EnBb_SetupRed(PlayState* play, EnBb* this) { this->actor.home.pos = this->actor.world.pos; this->actor.velocity.y = this->actor.gravity = this->actor.speed = 0.0f; this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } this->action = BB_RED; EnBb_SetupAction(this, EnBb_Red); @@ -799,7 +799,7 @@ void EnBb_Red(EnBb* this, PlayState* play) { case BBRED_ATTACK: if (this->timer == 0) { this->moveMode = BBMOVE_NORMAL; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } this->bobPhase += Rand_ZeroOne(); Math_SmoothStepToF(&this->flameScaleY, 80.0f, 1.0f, 10.0f, 0.0f); @@ -818,7 +818,7 @@ void EnBb_Red(EnBb* this, PlayState* play) { this->moveMode = BBMOVE_HIDDEN; this->timer = 10; this->actionState++; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { this->actor.velocity.y *= -1.06f; if (this->actor.velocity.y > 13.0f) { @@ -1128,7 +1128,7 @@ void EnBb_Stunned(EnBb* this, PlayState* play) { EnBb_SetupDown(this); } } else { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnBb_SetupDeath(this, play); } } @@ -1194,7 +1194,7 @@ void EnBb_CollisionCheck(EnBb* this, PlayState* play) { } } if (this->actor.colChkInfo.health == 0) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (this->actor.params == ENBB_RED) { EnBb_KillFlameTrail(this); } diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index 8e1217358c..d1ee18c4d1 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -1,7 +1,7 @@ #include "z_en_bigokuta.h" #include "assets/objects/object_bigokuta/object_bigokuta.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) void EnBigokuta_Init(Actor* thisx, PlayState* play); void EnBigokuta_Destroy(Actor* thisx, PlayState* play); @@ -383,7 +383,7 @@ void func_809BD6B8(EnBigokuta* this) { void func_809BD768(EnBigokuta* this) { this->unk_194 = Rand_ZeroOne() < 0.5f ? -1 : 1; this->unk_19A = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->cylinder[0].base.atFlags &= ~AT_ON; Actor_PlaySfx(&this->actor, NA_SE_EN_DAIOCTA_SINK); this->actionFunc = func_809BE4A4; @@ -684,7 +684,7 @@ void func_809BE4A4(EnBigokuta* this, PlayState* play) { void func_809BE518(EnBigokuta* this, PlayState* play) { if (Math_StepToF(&this->actor.world.pos.y, this->actor.home.pos.y, 10.0f)) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; func_809BD3F8(this); } } diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.c b/src/overlays/actors/ovl_En_Bili/z_en_bili.c index 83ca17633c..dac6872172 100644 --- a/src/overlays/actors/ovl_En_Bili/z_en_bili.c +++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.c @@ -7,7 +7,7 @@ #include "z_en_bili.h" #include "assets/objects/object_bl/object_bl.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_14) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_14) void EnBili_Init(Actor* thisx, PlayState* play); void EnBili_Destroy(Actor* thisx, PlayState* play); @@ -227,7 +227,7 @@ void EnBili_SetupBurnt(EnBili* this) { void EnBili_SetupDie(EnBili* this) { this->timer = 18; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnBili_Die; this->actor.speed = 0.0f; } @@ -555,7 +555,7 @@ void EnBili_UpdateDamage(EnBili* this, PlayState* play) { if (Actor_ApplyDamage(&this->actor) == 0) { Actor_PlaySfx(&this->actor, NA_SE_EN_BIRI_DEAD); Enemy_StartFinishingBlow(play, &this->actor); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } damageEffect = this->actor.colChkInfo.damageEffect; diff --git a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c index b62e41ccda..80b4830015 100644 --- a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c +++ b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c @@ -4,7 +4,8 @@ #include "overlays/actors/ovl_En_Ex_Item/z_en_ex_item.h" #include "assets/objects/object_bg/object_bg.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_27) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_LOCK_ON_DISABLED) typedef enum BombchuGirlEyeMode { /* 0 */ CHU_GIRL_EYES_ASLEEP, 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 33c62c3f06..27b8af3059 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 @@ -234,7 +234,7 @@ void EnBomChu_WaitForRelease(EnBomChu* this, PlayState* play) { //! @bug there is no NULL check on the floor poly. If the player is out of bounds the floor poly will be NULL //! and will cause a crash inside this function. EnBomChu_UpdateFloorPoly(this, this->actor.floorPoly, play); - this->actor.flags |= ACTOR_FLAG_0; // make chu targetable + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; // make chu targetable func_8002F850(play, &this->actor); this->actionFunc = EnBomChu_Move; } 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 eaaf3bf66f..8127fd4622 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -8,7 +8,7 @@ #include "assets/objects/object_bombf/object_bombf.h" #include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4) void EnBombf_Init(Actor* thisx, PlayState* play); void EnBombf_Destroy(Actor* thisx, PlayState* play); @@ -117,7 +117,7 @@ void EnBombf_Init(Actor* thisx, PlayState* play) { thisx->gravity = -1.5f; Actor_ChangeCategory(play, &play->actorCtx, thisx, ACTORCAT_EXPLOSIVE); thisx->colChkInfo.mass = 200; - thisx->flags &= ~ACTOR_FLAG_0; + thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnBombf_SetupAction(this, EnBombf_Move); } else { thisx->colChkInfo.mass = MASS_IMMOVABLE; @@ -157,7 +157,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) { this->timer = 180; this->flowerBombScale = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_PL_PULL_UP_ROCK); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { player->actor.child = NULL; player->heldActor = NULL; @@ -175,7 +175,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) { bombFlower->isFuseEnabled = true; bombFlower->timer = 0; this->timer = 180; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->flowerBombScale = 0.0f; } } @@ -186,7 +186,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) { if (bombFlower != NULL) { bombFlower->timer = 100; this->timer = 180; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->flowerBombScale = 0.0f; } } else { @@ -206,7 +206,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) { if (this->timer == 0) { this->flowerBombScale += 0.05f; if (this->flowerBombScale >= 1.0f) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } } diff --git a/src/overlays/actors/ovl_En_Brob/z_en_brob.c b/src/overlays/actors/ovl_En_Brob/z_en_brob.c index 948414a1dc..1238cceb84 100644 --- a/src/overlays/actors/ovl_En_Brob/z_en_brob.c +++ b/src/overlays/actors/ovl_En_Brob/z_en_brob.c @@ -7,7 +7,7 @@ #include "z_en_brob.h" #include "assets/objects/object_brob/object_brob.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnBrob_Init(Actor* thisx, PlayState* play); void EnBrob_Destroy(Actor* thisx, PlayState* play); @@ -91,7 +91,7 @@ void EnBrob_Init(Actor* thisx, PlayState* play) { this->colliders[1].dim.height *= thisx->scale.y; this->colliders[1].dim.yShift *= thisx->scale.y; this->actionFunc = NULL; - thisx->flags &= ~ACTOR_FLAG_0; + thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnBrob_SetupIdle(this, play); } diff --git a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c index 7d4c610481..dd45e05ef7 100644 --- a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c +++ b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c @@ -1,7 +1,7 @@ #include "z_en_bubble.h" #include "assets/objects/object_bubble/object_bubble.h" -#define FLAGS ACTOR_FLAG_0 +#define FLAGS ACTOR_FLAG_ATTENTION_ENABLED void EnBubble_Init(Actor* thisx, PlayState* play); void EnBubble_Destroy(Actor* thisx, PlayState* play); @@ -76,7 +76,7 @@ void EnBubble_SetDimensions(EnBubble* this, f32 dim) { f32 c; f32 d; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Actor_SetScale(&this->actor, 1.0f); this->actor.shape.yOffset = 16.0f; this->graphicRotSpeed = 16.0f; @@ -145,7 +145,7 @@ s32 EnBubble_Explosion(EnBubble* this, PlayState* play) { &sEffectEnvColor, Rand_S16Offset(100, 50), 0x19, 0); } Item_DropCollectibleRandom(play, NULL, &this->actor.world.pos, 0x50); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; return Rand_S16Offset(90, 60); } diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.c b/src/overlays/actors/ovl_En_Bw/z_en_bw.c index e9f062e153..01a10a2636 100644 --- a/src/overlays/actors/ovl_En_Bw/z_en_bw.c +++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.c @@ -8,7 +8,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_bw/object_bw.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) void EnBw_Init(Actor* thisx, PlayState* play); void EnBw_Destroy(Actor* thisx, PlayState* play); @@ -573,7 +573,7 @@ void func_809CFF98(EnBw* this, PlayState* play) { void func_809D00F4(EnBw* this) { this->unk_220 = 0; this->unk_222 = 40; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLEWALK_DEAD); EnBw_SetupAction(this, func_809D014C); diff --git a/src/overlays/actors/ovl_En_Changer/z_en_changer.c b/src/overlays/actors/ovl_En_Changer/z_en_changer.c index d473d3f585..58b4d9e9a2 100644 --- a/src/overlays/actors/ovl_En_Changer/z_en_changer.c +++ b/src/overlays/actors/ovl_En_Changer/z_en_changer.c @@ -194,7 +194,7 @@ void EnChanger_Init(Actor* thisx, PlayState* play2) { ((this->rightChestNum & 0x1F) << 8) + (rightChestItem & 0xFF)); } - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnChanger_Wait; } diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c index cdba3e9eaa..aefa8ea5ee 100644 --- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c +++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c @@ -1,6 +1,6 @@ #include "z_en_clear_tag.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) void EnClearTag_Init(Actor* thisx, PlayState* play); void EnClearTag_Destroy(Actor* thisx, PlayState* play); @@ -250,7 +250,7 @@ void EnClearTag_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sLaserCylinderInit); Actor_PlaySfx(&this->actor, NA_SE_IT_SWORD_REFLECT_MG); } else { // Initialize the Arwing. - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.attentionRangeType = ATTENTION_RANGE_5; Collider_SetCylinder(play, &this->collider, &this->actor, &sArwingCylinderInit); this->actor.colChkInfo.health = 3; @@ -537,7 +537,7 @@ void EnClearTag_Update(Actor* thisx, PlayState* play2) { if (this->drawMode != CLEAR_TAG_DRAW_MODE_ARWING) { this->drawMode = CLEAR_TAG_DRAW_MODE_EFFECT; this->deathTimer = 70; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { Actor_Kill(&this->actor); } diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index 0bdb89b3a6..6b6c80339b 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -6,7 +6,7 @@ #include "z_en_cow.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnCow_Init(Actor* thisx, PlayState* play); void EnCow_Destroy(Actor* thisx, PlayState* play); @@ -158,7 +158,7 @@ void EnCow_Init(Actor* thisx, PlayState* play) { this->actor.draw = EnCow_DrawTail; this->actionFunc = EnCow_IdleTail; EnCow_SetTailPos(this); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->animationTimer = (u16)Rand_ZeroFloat(1000.0f) + 40.0f; break; } 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 a9332385d8..6c78f8f505 100644 --- a/src/overlays/actors/ovl_En_Crow/z_en_crow.c +++ b/src/overlays/actors/ovl_En_Crow/z_en_crow.c @@ -1,7 +1,7 @@ #include "z_en_crow.h" #include "assets/objects/object_crow/object_crow.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_14) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_14) void EnCrow_Init(Actor* thisx, PlayState* play); void EnCrow_Destroy(Actor* thisx, PlayState* play); @@ -400,7 +400,7 @@ void EnCrow_Respawn(EnCrow* this, PlayState* play) { target = 0.01f; } if (Math_StepToF(&this->actor.scale.x, target, target * 0.1f)) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.flags &= ~ACTOR_FLAG_4; this->actor.colChkInfo.health = 1; EnCrow_SetupFlyIdle(this); @@ -418,7 +418,7 @@ void EnCrow_UpdateDamage(EnCrow* this, PlayState* play) { EnCrow_SetupTurnAway(this); } else { Actor_ApplyDamage(&this->actor); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Enemy_StartFinishingBlow(play, &this->actor); EnCrow_SetupDamaged(this, play); } diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index 1acaaa8e41..e4f69fdc8a 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -2,7 +2,7 @@ #include "assets/objects/object_cs/object_cs.h" #include "assets/objects/object_link_child/object_link_child.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnCs_Init(Actor* thisx, PlayState* play); void EnCs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c index 2345bada28..48215978c4 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -2,7 +2,7 @@ #include "overlays/actors/ovl_En_GeldB/z_en_geldb.h" #include "assets/objects/object_daiku/object_daiku.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) typedef struct EnDaikuEscapeSubCamParam { Vec3f eyePosDeltaLocal; @@ -367,7 +367,7 @@ void EnDaiku_Jailed(EnDaiku* this, PlayState* play) { this->actionFunc = EnDaiku_WaitFreedom; } else if (!(this->stateFlags & ENDAIKU_STATEFLAG_GERUDOFIGHTING) && !gerudo->invisible) { this->stateFlags |= ENDAIKU_STATEFLAG_GERUDOFIGHTING; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); } } @@ -379,7 +379,7 @@ void EnDaiku_WaitFreedom(EnDaiku* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); if (Flags_GetSwitch(play, PARAMS_GET_U(this->actor.params, 8, 6))) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; EnDaiku_UpdateText(this, play); } } diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index 3a244bb82c..9116940a63 100644 --- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -7,7 +7,7 @@ #include "z_en_daiku_kakariko.h" #include "assets/objects/object_daiku/object_daiku.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) typedef enum KakarikoCarpenterType { /* 0x0 */ CARPENTER_ICHIRO, // Red and purple pants, normal hair diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index f954f2b8d8..d4c29f173e 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -3,7 +3,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnDekubaba_Init(Actor* thisx, PlayState* play); void EnDekubaba_Destroy(Actor* thisx, PlayState* play); @@ -955,7 +955,7 @@ void EnDekubaba_PrunedSomersault(EnDekubaba* this, PlayState* play) { ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) || (this->actor.bgCheckFlags & BGCHECKFLAG_WALL))) { this->actor.scale.x = this->actor.scale.y = this->actor.scale.z = 0.0f; this->actor.speed = 0.0f; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); EffectSsHahen_SpawnBurst(play, &this->actor.world.pos, this->size * 3.0f, 0, this->size * 12.0f, this->size * 5.0f, 15, HAHEN_OBJECT_DEFAULT, 10, NULL); } diff --git a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c index 332407e4ed..ff005e5895 100644 --- a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c +++ b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c @@ -8,7 +8,7 @@ #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" #include "assets/objects/object_dekunuts/object_dekunuts.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) #define DEKUNUTS_FLOWER 10 @@ -111,7 +111,7 @@ void EnDekunuts_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChain); if (thisx->params == DEKUNUTS_FLOWER) { - thisx->flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + thisx->flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); } else { ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 35.0f); SkelAnime_Init(play, &this->skelAnime, &gDekuNutsSkel, &gDekuNutsStandAnim, this->jointTable, this->morphTable, diff --git a/src/overlays/actors/ovl_En_Dh/z_en_dh.c b/src/overlays/actors/ovl_En_Dh/z_en_dh.c index 0ad0136d8f..ffc94d20de 100644 --- a/src/overlays/actors/ovl_En_Dh/z_en_dh.c +++ b/src/overlays/actors/ovl_En_Dh/z_en_dh.c @@ -1,7 +1,7 @@ #include "z_en_dh.h" #include "assets/objects/object_dh/object_dh.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_10) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_10) typedef enum EnDhAction { /* 0 */ DH_WAIT, @@ -148,7 +148,7 @@ void EnDh_Init(Actor* thisx, PlayState* play) { this->actor.colChkInfo.mass = MASS_HEAVY; this->actor.colChkInfo.health = LINK_IS_ADULT ? 14 : 20; this->alpha = this->unk_258 = 255; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Collider_InitCylinder(play, &this->collider1); Collider_SetCylinder(play, &this->collider1, &this->actor, &sCylinderInit); Collider_InitJntSph(play, &this->collider2); @@ -206,7 +206,7 @@ void EnDh_Wait(EnDh* this, PlayState* play) { if ((this->actor.params >= ENDH_START_ATTACK_GRAB) || (this->actor.params <= ENDH_HANDS_KILLED_4)) { switch (this->actionState) { case 0: - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.shape.rot.y = this->actor.yawTowardsPlayer; this->actor.flags &= ~ACTOR_FLAG_REACT_TO_LENS; this->actionState++; @@ -366,7 +366,7 @@ void EnDh_SetupBurrow(EnDh* this) { this->actor.world.rot.y = this->actor.shape.rot.y; this->dirtWavePhase = 0; this->actionState = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_PlaySfx(&this->actor, NA_SE_EN_DEADHAND_HIDE); EnDh_SetupAction(this, EnDh_Burrow); } @@ -437,7 +437,7 @@ void EnDh_SetupDeath(EnDh* this) { Animation_MorphToPlayOnce(&this->skelAnime, &object_dh_Anim_0032BC, -1.0f); this->curAction = DH_DEATH; this->timer = 300; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; func_800F5B58(); this->actor.params = ENDH_DEATH; diff --git a/src/overlays/actors/ovl_En_Dha/z_en_dha.c b/src/overlays/actors/ovl_En_Dha/z_en_dha.c index a48fdfdd6a..e193d17db8 100644 --- a/src/overlays/actors/ovl_En_Dha/z_en_dha.c +++ b/src/overlays/actors/ovl_En_Dha/z_en_dha.c @@ -8,7 +8,7 @@ #include "overlays/actors/ovl_En_Dh/z_en_dh.h" #include "assets/objects/object_dh/object_dh.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) void EnDha_Init(Actor* thisx, PlayState* play); void EnDha_Destroy(Actor* thisx, PlayState* play); @@ -166,7 +166,7 @@ void EnDha_Init(Actor* thisx, PlayState* play) { this->limbAngleX[0] = -0x4000; Collider_InitJntSph(play, &this->collider); Collider_SetJntSph(play, &this->collider, &this->actor, &sJntSphInit, this->colliderItem); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnDha_SetupWait(this); } diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c index 6a758c454c..9a40d4a927 100644 --- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c +++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c @@ -9,7 +9,7 @@ #include "assets/objects/object_zo/object_zo.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnDivingGame_Init(Actor* thisx, PlayState* play); void EnDivingGame_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index c1b8eea2f3..e7a082260e 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -7,7 +7,7 @@ #include "z_en_dns.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnDns_Init(Actor* thisx, PlayState* play); void EnDns_Destroy(Actor* thisx, PlayState* play); @@ -435,7 +435,7 @@ void EnDns_SetupBurrow(EnDns* this, PlayState* play) { this->dnsItemEntry->payment(this); this->dropCollectible = true; this->isColliderEnabled = false; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnDns_ChangeAnim(this, DNS_ANIM_BURROW); this->actionFunc = EnDns_Burrow; } @@ -443,7 +443,7 @@ void EnDns_SetupBurrow(EnDns* this, PlayState* play) { this->dnsItemEntry->payment(this); this->dropCollectible = true; this->isColliderEnabled = false; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnDns_ChangeAnim(this, DNS_ANIM_BURROW); this->actionFunc = EnDns_Burrow; } @@ -452,7 +452,7 @@ void EnDns_SetupBurrow(EnDns* this, PlayState* play) { void EnDns_SetupNoSaleBurrow(EnDns* this, PlayState* play) { if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) { this->isColliderEnabled = false; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnDns_ChangeAnim(this, DNS_ANIM_BURROW); this->actionFunc = EnDns_Burrow; } diff --git a/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c b/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c index e2af5e3d84..15ba4bb788 100644 --- a/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c +++ b/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c @@ -98,7 +98,7 @@ void EnDntDemo_Init(Actor* thisx, PlayState* play2) { PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ じじじじじじじじじじい ☆☆☆☆☆ %x\n" VT_RST, this->leader); } this->subCamId = SUB_CAM_ID_DONE; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnDntDemo_Judge; } diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index 0cca8f1ca6..ac1b1e91db 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -10,7 +10,7 @@ #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnDntJiji_Init(Actor* thisx, PlayState* play); void EnDntJiji_Destroy(Actor* thisx, PlayState* play); @@ -82,7 +82,7 @@ void EnDntJiji_Init(Actor* thisx, PlayState* play) { PRINTF("\n\n"); // "Deku Scrub mask show elder" PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ デグナッツお面品評会長老 ☆☆☆☆☆ %x\n" VT_RST, this->stage); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.colChkInfo.mass = 0xFF; this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actionFunc = EnDntJiji_SetFlower; @@ -221,7 +221,7 @@ void EnDntJiji_SetupCower(EnDntJiji* this, PlayState* play) { } else { this->getItemId = GI_DEKU_NUT_UPGRADE_40; } - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.textId = 0x10DB; this->unused = 5; this->actionFunc = EnDntJiji_Cower; @@ -302,7 +302,7 @@ void EnDntJiji_GivePrize(EnDntJiji* this, PlayState* play) { this->stage->leaderSignal = DNT_SIGNAL_RETURN; } } - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (!this->unburrow) { this->actionFunc = EnDntJiji_SetupHide; } else { diff --git a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c index eb215b32c2..1e62d2e0d9 100644 --- a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c +++ b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c @@ -122,7 +122,7 @@ void EnDntNomal_Init(Actor* thisx, PlayState* play) { if (this->type < ENDNTNOMAL_TARGET) { this->type = ENDNTNOMAL_TARGET; } - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.colChkInfo.mass = 0xFF; this->objectId = -1; if (this->type == ENDNTNOMAL_TARGET) { diff --git a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c index 0a882fe0cb..468d9cf7e4 100644 --- a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c +++ b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c @@ -8,7 +8,7 @@ #include "overlays/actors/ovl_En_Bom/z_en_bom.h" #include "assets/objects/object_dodojr/object_dodojr.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnDodojr_Init(Actor* thisx, PlayState* play); void EnDodojr_Destroy(Actor* thisx, PlayState* play); @@ -76,7 +76,7 @@ void EnDodojr_Init(Actor* thisx, PlayState* play) { CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(4), &sColChkInit); this->actor.naviEnemyId = NAVI_ENEMY_BABY_DODONGO; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_SetScale(&this->actor, 0.02f); @@ -203,7 +203,7 @@ void EnDodojr_SetupJumpAttackBounce(EnDodojr* this) { void EnDodojr_SetupDespawn(EnDodojr* this) { this->actor.shape.shadowDraw = NULL; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.home.pos = this->actor.world.pos; this->actor.speed = 0.0f; this->actor.gravity = -0.8f; @@ -315,7 +315,7 @@ s32 EnDodojr_IsPlayerWithinAttackRange(EnDodojr* this) { void EnDodojr_SetupStandardDeathBounce(EnDodojr* this) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_DEAD); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnDodojr_SetupFlipBounce(this); this->actionFunc = EnDodojr_StandardDeathBounce; } @@ -400,7 +400,7 @@ void EnDodojr_WaitUnderground(EnDodojr* this, PlayState* play) { -10.0f); Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_UP); this->actor.world.pos.y -= 60.0f; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.world.rot.x -= 0x4000; this->actor.shape.rot.x = this->actor.world.rot.x; this->dustPos = this->actor.world.pos; @@ -477,7 +477,7 @@ void EnDodojr_EatBomb(EnDodojr* this, PlayState* play) { void EnDodojr_SwallowBomb(EnDodojr* this, PlayState* play) { if (DECR(this->timer) == 0) { EnDodojr_DoSwallowedBombEffects(this); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnDodojr_SetupFlipBounce(this); this->actionFunc = EnDodojr_SwallowedBombDeathBounce; } diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index 1f3ba0cfa4..ef09744a7c 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -3,7 +3,7 @@ #include "overlays/actors/ovl_En_Bombf/z_en_bombf.h" #include "assets/objects/object_dodongo/object_dodongo.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) typedef enum EnDodongoActionState { DODONGO_SWEEP_TAIL, @@ -563,12 +563,12 @@ void EnDodongo_Walk(EnDodongo* this, PlayState* play) { if (Math_Vec3f_DistXZ(&this->actor.home.pos, &player->actor.world.pos) < 400.0f) { Math_SmoothStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 1, 0x1F4, 0); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; if ((this->actor.xzDistToPlayer < 100.0f) && (yawDiff < 0x1388) && (this->actor.yDistToPlayer < 60.0f)) { EnDodongo_SetupBreatheFire(this); } } else { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if ((Math_Vec3f_DistXZ(&this->actor.world.pos, &this->actor.home.pos) > 150.0f) || (this->retreatTimer != 0)) { s16 yawToHome = Math_Vec3f_Yaw(&this->actor.world.pos, &this->actor.home.pos); @@ -663,7 +663,7 @@ void EnDodongo_SetupDeath(EnDodongo* this, PlayState* play) { this->timer = 0; Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_J_DEAD); this->actionState = DODONGO_DEATH; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; EnDodongo_SetupAction(this, EnDodongo_Death); } diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index 25f237d298..b9a6e9ea9d 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -206,7 +206,7 @@ void EnDoor_SetupType(EnDoor* this, PlayState* play) { doorType = DOOR_SCENEEXIT; } else { this->actionFunc = EnDoor_WaitForCheck; - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_27; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_LOCK_ON_DISABLED; } } // Replace the door type it was loaded with by the new type diff --git a/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/src/overlays/actors/ovl_En_Ds/z_en_ds.c index d07d7937a6..3ba350174d 100644 --- a/src/overlays/actors/ovl_En_Ds/z_en_ds.c +++ b/src/overlays/actors/ovl_En_Ds/z_en_ds.c @@ -7,7 +7,7 @@ #include "z_en_ds.h" #include "assets/objects/object_ds/object_ds.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnDs_Init(Actor* thisx, PlayState* play); void EnDs_Destroy(Actor* thisx, PlayState* play); @@ -43,7 +43,7 @@ void EnDs_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnDs_Wait; this->actor.attentionRangeType = ATTENTION_RANGE_1; this->unk_1E8 = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unk_1E4 = 0.0f; } diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index d1994135b6..d6ca5252df 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -2,7 +2,7 @@ #include "assets/objects/object_du/object_du.h" #include "assets/scenes/overworld/spot18/spot18_scene.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_25) void EnDu_Init(Actor* thisx, PlayState* play); void EnDu_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c index 2b93c1d6a5..dc9bf033a3 100644 --- a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c +++ b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c @@ -1,7 +1,7 @@ #include "z_en_eiyer.h" #include "assets/objects/object_ei/object_ei.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnEiyer_Init(Actor* thisx, PlayState* play); void EnEiyer_Destroy(Actor* thisx, PlayState* play); @@ -200,7 +200,7 @@ void EnEiyer_SetupAppearFromGround(EnEiyer* this) { this->collider.base.atFlags &= ~AT_ON; this->collider.base.acFlags &= ~AC_ON; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_IGNORE_QUAKE); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_IGNORE_QUAKE); this->actor.shape.shadowScale = 0.0f; this->actor.shape.yOffset = 0.0f; this->actionFunc = EnEiyer_AppearFromGround; @@ -216,11 +216,11 @@ void EnEiyer_SetupUnderground(EnEiyer* this) { this->collider.base.acFlags |= AC_ON; this->actor.flags &= ~ACTOR_FLAG_4; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } void EnEiyer_SetupInactive(EnEiyer* this) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.world.rot.y = this->actor.shape.rot.y; this->actionFunc = EnEiyer_Inactive; } @@ -608,7 +608,7 @@ void EnEiyer_UpdateDamage(EnEiyer* this, PlayState* play) { if (Actor_ApplyDamage(&this->actor) == 0) { Enemy_StartFinishingBlow(play, &this->actor); Actor_PlaySfx(&this->actor, NA_SE_EN_EIER_DEAD); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } // If underground, one hit kill @@ -672,7 +672,7 @@ void EnEiyer_Update(Actor* thisx, PlayState* play) { } } - if (this->actor.flags & ACTOR_FLAG_0) { + if (this->actor.flags & ACTOR_FLAG_ATTENTION_ENABLED) { this->actor.focus.pos.x = this->actor.world.pos.x + Math_SinS(this->actor.shape.rot.y) * 12.5f; this->actor.focus.pos.z = this->actor.world.pos.z + Math_CosS(this->actor.shape.rot.y) * 12.5f; this->actor.focus.pos.y = this->actor.world.pos.y; 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 ed34f4537a..2854fd88dd 100644 --- a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c +++ b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c @@ -2,7 +2,7 @@ #include "terminal.h" #include "overlays/actors/ovl_En_Tite/z_en_tite.h" -#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_27) +#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_LOCK_ON_DISABLED) void EnEncount1_Init(Actor* thisx, PlayState* play); void EnEncount1_Update(Actor* thisx, PlayState* play); @@ -66,7 +66,7 @@ void EnEncount1_Init(Actor* thisx, PlayState* play) { this->spawnRange); PRINTF("\n\n"); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; switch (this->spawnType) { case SPAWNER_LEEVER: this->timer = 30; diff --git a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c index 54ed4e8621..f84adf216e 100644 --- a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c +++ b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c @@ -51,7 +51,7 @@ void EnExItem_Init(Actor* thisx, PlayState* play) { s32 pad; EnExItem* this = (EnExItem*)thisx; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->type = PARAMS_GET_U(this->actor.params, 0, 8); this->unusedParam = PARAMS_GET_U(this->actor.params, 8, 8); PRINTF("\n\n"); 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 0704ac3de1..4d2f66ba20 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 @@ -105,7 +105,7 @@ void EnExRuppy_Init(Actor* thisx, PlayState* play) { this->unk_15A = this->actor.world.rot.z; this->actor.world.rot.z = 0; this->timer = 30; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnExRuppy_DropIntoWater; break; @@ -123,7 +123,7 @@ void EnExRuppy_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ わーなーコイン ☆☆☆☆☆ \n" VT_RST); this->actor.shape.shadowScale = 6.0f; this->actor.shape.yOffset = 700.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnExRuppy_WaitToBlowUp; break; @@ -145,13 +145,13 @@ void EnExRuppy_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ ノーマルルピー ☆☆☆☆☆ \n" VT_RST); this->actor.shape.shadowScale = 6.0f; this->actor.shape.yOffset = 700.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnExRuppy_WaitAsCollectible; break; case 4: // Progress markers in the shooting gallery this->actor.gravity = -3.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_SetScale(&this->actor, 0.01f); this->actor.shape.shadowScale = 6.0f; this->actor.shape.yOffset = -700.0f; diff --git a/src/overlays/actors/ovl_En_Fd/z_en_fd.c b/src/overlays/actors/ovl_En_Fd/z_en_fd.c index 10bf1520b3..cb62c9d622 100644 --- a/src/overlays/actors/ovl_En_Fd/z_en_fd.c +++ b/src/overlays/actors/ovl_En_Fd/z_en_fd.c @@ -8,7 +8,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_fw/object_fw.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_9) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_9) void EnFd_Init(Actor* thisx, PlayState* play); void EnFd_Destroy(Actor* thisx, PlayState* play); @@ -288,7 +288,7 @@ s32 EnFd_ColliderCheck(EnFd* this, PlayState* play) { return false; } this->invincibilityTimer = 30; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_PlaySfx(&this->actor, NA_SE_EN_FLAME_DAMAGE); Enemy_StartFinishingBlow(play, &this->actor); return true; @@ -452,7 +452,7 @@ void EnFd_Init(Actor* thisx, PlayState* play) { Collider_InitJntSph(play, &this->collider); Collider_SetJntSph(play, &this->collider, &this->actor, &sJntSphInit, this->colSphs); CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0xF), &sColChkInit); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.flags |= ACTOR_FLAG_24; Actor_SetScale(&this->actor, 0.01f); this->firstUpdateFlag = true; @@ -485,7 +485,7 @@ void EnFd_SpinAndGrow(EnFd* this, PlayState* play) { this->actor.velocity.y = 6.0f; this->actor.scale.y = 0.01f; this->actor.world.rot.y ^= 0x8000; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 8.0f; Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENFD_ANIM_1); this->actionFunc = EnFd_JumpToGround; @@ -663,7 +663,7 @@ void EnFd_Update(Actor* thisx, PlayState* play) { if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_13)) { // has been hookshoted if (EnFd_SpawnCore(this, play)) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->invincibilityTimer = 30; Actor_PlaySfx(&this->actor, NA_SE_EN_FLAME_DAMAGE); Enemy_StartFinishingBlow(play, &this->actor); diff --git a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c index f3c9f148d0..a98ba9e08f 100644 --- a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c +++ b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c @@ -1,7 +1,7 @@ #include "z_en_fd_fire.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) void EnFdFire_Init(Actor* thisx, PlayState* play); void EnFdFire_Destroy(Actor* thisx, PlayState* play); @@ -128,7 +128,7 @@ void EnFdFire_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInit); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.gravity = -0.6f; this->actor.speed = 5.0f; this->actor.velocity.y = 12.0f; diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index 00be9adeae..0e2c334179 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -8,7 +8,7 @@ #include "assets/objects/object_firefly/object_firefly.h" #include "overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_14) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_14) void EnFirefly_Init(Actor* thisx, PlayState* play); void EnFirefly_Destroy(Actor* thisx, PlayState* play); @@ -625,7 +625,7 @@ void EnFirefly_UpdateDamage(EnFirefly* this, PlayState* play) { if ((this->actor.colChkInfo.damageEffect != 0) || (this->actor.colChkInfo.damage != 0)) { if (Actor_ApplyDamage(&this->actor) == 0) { Enemy_StartFinishingBlow(play, &this->actor); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } damageEffect = this->actor.colChkInfo.damageEffect; diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index 4ae4598081..516a2ed6aa 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -7,7 +7,7 @@ #include "z_en_floormas.h" #include "assets/objects/object_wallmaster/object_wallmaster.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_10) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10) #define SPAWN_INVISIBLE 0x8000 #define SPAWN_SMALL 0x10 @@ -144,7 +144,7 @@ void EnFloormas_Init(Actor* thisx, PlayState* play2) { if (this->actor.params == SPAWN_SMALL) { this->actor.draw = NULL; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnFloormas_SmallWait; } else { // spawn first small floormaster @@ -345,7 +345,7 @@ void EnFloormas_SetupGrabLink(EnFloormas* this, Player* player) { f32 xzDelta; Animation_Change(&this->skelAnime, &gWallmasterJumpAnim, 1.0f, 36.0f, 45.0f, ANIMMODE_ONCE, -3.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; EnFloormas_MakeInvulnerable(this); @@ -384,7 +384,7 @@ void EnFloormas_SetupSmallWait(EnFloormas* this) { } this->actor.draw = NULL; this->actionFunc = EnFloormas_SmallWait; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_4); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4); } void EnFloormas_SetupTakeDamage(EnFloormas* this) { @@ -662,7 +662,7 @@ void EnFloormas_Land(EnFloormas* this, PlayState* play) { void EnFloormas_Split(EnFloormas* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { if (SkelAnime_Update(&this->skelAnime)) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->smallActionTimer = 50; EnFloormas_SetupStand(this); } @@ -804,7 +804,7 @@ void EnFloormas_GrabLink(EnFloormas* this, PlayState* play) { this->actor.shape.rot.x = 0; this->actor.velocity.y = 6.0f; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = -3.0f; EnFloormas_SetupLand(this); } else { @@ -996,7 +996,7 @@ void EnFloormas_ColliderCheck(EnFloormas* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_FALL_DEAD); } Enemy_StartFinishingBlow(play, &this->actor); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else if (this->actor.colChkInfo.damage != 0) { Actor_PlaySfx(&this->actor, NA_SE_EN_FALL_DAMAGE); } diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index f8943dcd8c..08943b92fb 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -3,7 +3,7 @@ #include "terminal.h" #include "assets/objects/object_fr/object_fr.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_25) void EnFr_Init(Actor* thisx, PlayState* play); void EnFr_Destroy(Actor* thisx, PlayState* play); @@ -236,7 +236,7 @@ void EnFr_Init(Actor* thisx, PlayState* play) { this->actor.destroy = NULL; this->actor.draw = NULL; this->actor.update = EnFr_UpdateIdle; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_4); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4); this->actor.flags &= ~0; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_PROP); this->actor.textId = 0x40AC; @@ -321,7 +321,7 @@ void EnFr_Update(Actor* thisx, PlayState* play) { this->posButterflyLight.x = this->posButterfly.x = this->posLogSpot.x; this->posButterflyLight.y = this->posButterfly.y = this->posLogSpot.y + 50.0f; this->posButterflyLight.z = this->posButterfly.z = this->posLogSpot.z; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 5056d0b7c6..5c65d7bf41 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -8,7 +8,7 @@ #include "assets/objects/object_fu/object_fu.h" #include "assets/scenes/indoors/hakasitarelay/hakasitarelay_scene.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_25) #define FU_RESET_LOOK_ANGLE (1 << 0) #define FU_WAIT (1 << 1) diff --git a/src/overlays/actors/ovl_En_Fw/z_en_fw.c b/src/overlays/actors/ovl_En_Fw/z_en_fw.c index fbe16442c8..98799ac9a0 100644 --- a/src/overlays/actors/ovl_En_Fw/z_en_fw.c +++ b/src/overlays/actors/ovl_En_Fw/z_en_fw.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Bom/z_en_bom.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_9) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_9) void EnFw_Init(Actor* thisx, PlayState* play); void EnFw_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index 492b42158e..f3f0165a9a 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -1,7 +1,7 @@ #include "z_en_fz.h" #include "assets/objects/object_fz/object_fz.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_10) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_10) void EnFz_Init(Actor* thisx, PlayState* play); void EnFz_Destroy(Actor* thisx, PlayState* play); @@ -173,7 +173,7 @@ void EnFz_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.008f); this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unusedTimer1 = 0; this->unusedCounter = 0; this->updateBgInfo = true; @@ -389,7 +389,7 @@ void EnFz_SetYawTowardsPlayer(EnFz* this) { void EnFz_SetupDisappear(EnFz* this) { this->state = 2; this->isFreezing = false; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnFz_Disappear; } @@ -447,7 +447,7 @@ void EnFz_SetupAimForMove(EnFz* this) { this->timer = 40; this->updateBgInfo = true; this->isFreezing = true; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnFz_AimForMove; this->actor.gravity = -1.0f; } @@ -554,7 +554,7 @@ void EnFz_SetupDespawn(EnFz* this, PlayState* play) { this->updateBgInfo = true; this->isFreezing = false; this->isDespawning = true; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->isActive = false; this->timer = 60; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_PROP); @@ -572,7 +572,7 @@ void EnFz_SetupMelt(EnFz* this) { this->state = 3; this->isFreezing = false; this->isDespawning = true; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; this->speedXZ = 0.0f; this->actionFunc = EnFz_Melt; @@ -603,7 +603,7 @@ void EnFz_SetupBlowSmokeStationary(EnFz* this) { this->timer = 40; this->updateBgInfo = true; this->isFreezing = true; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnFz_BlowSmokeStationary; this->actor.gravity = -1.0f; } diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c index 1b106d6726..efae964b29 100644 --- a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c +++ b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c @@ -102,7 +102,7 @@ static u64 sForceAlignment = 0; void EnGanonMant_Init(Actor* thisx, PlayState* play) { EnGanonMant* this = (EnGanonMant*)thisx; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void EnGanonMant_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c b/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c index 572152575c..66c4b15333 100644 --- a/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c +++ b/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c @@ -31,7 +31,7 @@ static u64 sForceAlignment = 0; #include "assets/overlays/ovl_En_Ganon_Organ/ovl_En_Ganon_Organ.c" void EnGanonOrgan_Init(Actor* thisx, PlayState* play) { - thisx->flags &= ~ACTOR_FLAG_0; + thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void EnGanonOrgan_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index ffb3bb2051..699bdafb42 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -7,7 +7,7 @@ #include "z_en_gb.h" #include "assets/objects/object_ps/object_ps.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnGb_Init(Actor* thisx, PlayState* play); void EnGb_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index 0583aae68f..56fb1dd27e 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_ge1/object_ge1.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) #define GE1_STATE_TALKING (1 << 0) #define GE1_STATE_GIVE_QUIVER (1 << 1) diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index 5d52081e20..a5903e21f0 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_gla/object_gla.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) #define GE2_STATE_ANIMCOMPLETE (1 << 1) #define GE2_STATE_KO (1 << 2) @@ -298,7 +298,7 @@ void EnGe2_KnockedOut(EnGe2* this, PlayState* play) { s32 effectAngle; Vec3f effectPos; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (this->stateFlags & GE2_STATE_ANIMCOMPLETE) { effectAngle = (play->state.frames) * 0x2800; effectPos.x = this->actor.focus.pos.x + (Math_CosS(effectAngle) * 5.0f); diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c index 4eaf327282..68be541e7a 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c @@ -8,7 +8,7 @@ #include "assets/objects/object_geldb/object_geldb.h" #include "versions.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnGe3_Init(Actor* thisx, PlayState* play2); void EnGe3_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c index d81e358799..d9fed96d1e 100644 --- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c +++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c @@ -7,7 +7,7 @@ #include "z_en_geldb.h" #include "assets/objects/object_geldb/object_geldb.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) typedef enum EnGeldBAction { /* 0 */ GELDB_WAIT, @@ -355,7 +355,7 @@ void EnGeldB_SetupWait(EnGeldB* this) { this->action = GELDB_WAIT; this->actor.bgCheckFlags &= ~(BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH); this->actor.gravity = -2.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnGeldB_SetupAction(this, EnGeldB_Wait); } @@ -372,7 +372,7 @@ void EnGeldB_Wait(EnGeldB* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_DOWN); this->skelAnime.playSpeed = 1.0f; this->actor.world.pos.y = this->actor.floorHeight; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.focus.pos = this->actor.world.pos; this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH; this->actor.velocity.y = 0.0f; @@ -1328,7 +1328,7 @@ void EnGeldB_SetupDefeated(EnGeldB* this) { this->invisible = true; } this->action = GELDB_DEFEAT; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_PlaySfx(&this->actor, NA_SE_EN_GERUDOFT_DEAD); EnGeldB_SetupAction(this, EnGeldB_Defeated); } diff --git a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c index 2426fdd174..a2a437ef43 100644 --- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c +++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c @@ -7,7 +7,7 @@ #include "z_en_girla.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnGirlA_Init(Actor* thisx, PlayState* play); void EnGirlA_Destroy(Actor* thisx, PlayState* play); @@ -1058,7 +1058,7 @@ void EnGirlA_WaitForObject(EnGirlA* this, PlayState* play) { this->hiliteFunc = itemEntry->hiliteFunc; this->giDrawId = itemEntry->giDrawId; PRINTF("%s(%2d)\n", sShopItemDescriptions[params], params); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_SetScale(&this->actor, 0.25f); this->actor.shape.yOffset = 24.0f; this->actor.shape.shadowScale = 4.0f; diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index a71831496e..68fca33fdd 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -9,7 +9,7 @@ #include "assets/objects/object_gm/object_gm.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnGm_Init(Actor* thisx, PlayState* play); void EnGm_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index 380f5f938c..42dd76fde4 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -3,7 +3,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_oF1d_map/object_oF1d_map.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5) void EnGo_Init(Actor* thisx, PlayState* play); void EnGo_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index fd39536714..4ba779c80f 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -5,7 +5,7 @@ #include "quake.h" #include "versions.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5) /* FLAGS @@ -961,10 +961,10 @@ s32 EnGo2_IsWakingUp(EnGo2* this) { if (PARAMS_GET_S(this->actor.params, 0, 5) == GORON_DMT_BIGGORON) { if (!(this->collider.base.ocFlags2 & OC2_HIT_PLAYER)) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; return false; } else { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; return true; } } @@ -1296,7 +1296,7 @@ void EnGo2_GetDustData(EnGo2* this, s32 index2) { void EnGo2_RollingAnimation(EnGo2* this, PlayState* play) { if (PARAMS_GET_S(this->actor.params, 0, 5) == GORON_DMT_BIGGORON) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_10); this->skelAnime.playSpeed = -0.5f; } else { @@ -1601,7 +1601,7 @@ void EnGo2_Init(Actor* thisx, PlayState* play) { break; case GORON_DMT_BIGGORON: this->actor.shape.shadowDraw = NULL; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if ((INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_BROKEN_GORONS_SWORD) && (INV_CONTENT(ITEM_TRADE_ADULT) <= ITEM_EYE_DROPS)) { this->eyeMouthTexState = 1; @@ -1680,7 +1680,7 @@ void func_80A46B40(EnGo2* this, PlayState* play) { } else { if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { if (PARAMS_GET_S(this->actor.params, 0, 5) == GORON_DMT_BIGGORON) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } func_80A454CC(this); this->unk_211 = true; @@ -1828,7 +1828,7 @@ void EnGo2_BiggoronEyedrops(EnGo2* this, PlayState* play) { switch (this->goronState) { case 0: Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_5); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.shape.rot.y += 0x5B0; this->trackingMode = NPC_TRACKING_NONE; this->animTimer = this->skelAnime.endFrame + 60.0f + 60.0f; // eyeDrops animation timer @@ -1859,7 +1859,7 @@ void EnGo2_BiggoronEyedrops(EnGo2* this, PlayState* play) { } if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_1); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->trackingMode = NPC_TRACKING_HEAD_AND_TORSO; this->skelAnime.playSpeed = 0.0f; this->skelAnime.curFrame = this->skelAnime.endFrame; diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c index 7a1f370f18..abeb85fa9a 100644 --- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -4,7 +4,7 @@ #include "overlays/actors/ovl_Boss_Goma/z_boss_goma.h" #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) void EnGoma_Init(Actor* thisx, PlayState* play); void EnGoma_Destroy(Actor* thisx, PlayState* play); @@ -119,10 +119,10 @@ void EnGoma_Init(Actor* thisx, PlayState* play) { this->gomaType = ENGOMA_BOSSLIMB; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 0.0f); this->actionTimer = this->actor.params + 150; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else if (params >= 10) { // Debris when hatching this->actor.gravity = -1.3f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionTimer = 50; this->gomaType = ENGOMA_HATCH_DEBRIS; this->eggScale = 1.0f; @@ -366,7 +366,7 @@ void EnGoma_SetupDie(EnGoma* this) { } this->invincibilityTimer = 100; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void EnGoma_Die(EnGoma* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index c008c007fe..28d8779629 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Elf/z_en_elf.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_25) void EnGs_Init(Actor* thisx, PlayState* play); void EnGs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Guest/z_en_guest.c b/src/overlays/actors/ovl_En_Guest/z_en_guest.c index a2b5e695a1..41fd2d9439 100644 --- a/src/overlays/actors/ovl_En_Guest/z_en_guest.c +++ b/src/overlays/actors/ovl_En_Guest/z_en_guest.c @@ -9,7 +9,7 @@ #include "assets/objects/object_boj/object_boj.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnGuest_Init(Actor* thisx, PlayState* play); void EnGuest_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index 7e76139bfc..8c43bf2c14 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -12,7 +12,7 @@ #include "overlays/actors/ovl_En_Bom/z_en_bom.h" #include "overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnHeishi2_Init(Actor* thisx, PlayState* play); void EnHeishi2_Destroy(Actor* thisx, PlayState* play); @@ -92,7 +92,7 @@ void EnHeishi2_Init(Actor* thisx, PlayState* play) { if ((this->type == 6) || (this->type == 9)) { this->actor.draw = EnHeishi2_DrawKingGuard; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_PROP); if (this->type == 6) { this->actionFunc = EnHeishi2_DoNothing1; @@ -112,7 +112,7 @@ void EnHeishi2_Init(Actor* thisx, PlayState* play) { this->actor.shape.rot.y = this->actor.world.rot.y; Collider_DestroyCylinder(play, &this->collider); Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_8); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_4; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4; this->actionFunc = func_80A544AC; } } else { @@ -143,7 +143,7 @@ void EnHeishi2_Init(Actor* thisx, PlayState* play) { // "Peep hole soldier!" PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ 覗き穴奥兵士ふぃ〜 ☆☆☆☆☆ \n" VT_RST); Collider_DestroyCylinder(play, collider); - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); this->actionFunc = EnHeishi_DoNothing2; break; } diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c index 40a046d94a..ec04d982b5 100644 --- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c +++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c @@ -2,7 +2,7 @@ #include "assets/objects/object_sd/object_sd.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnHeishi4_Init(Actor* thisx, PlayState* play); void EnHeishi4_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index 61260ee834..af3083c97a 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -7,7 +7,7 @@ #include "z_en_hintnuts.h" #include "assets/objects/object_hintnuts/object_hintnuts.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnHintnuts_Init(Actor* thisx, PlayState* play); void EnHintnuts_Destroy(Actor* thisx, PlayState* play); @@ -75,7 +75,7 @@ void EnHintnuts_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChain); if (this->actor.params == 0xA) { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); } else { ActorShape_Init(&this->actor.shape, 0x0, ActorShadow_DrawCircle, 35.0f); SkelAnime_Init(play, &this->skelAnime, &gHintNutsSkel, &gHintNutsStandAnim, this->jointTable, this->morphTable, @@ -110,8 +110,8 @@ void EnHintnuts_Destroy(Actor* thisx, PlayState* play) { void EnHintnuts_HitByScrubProjectile1(EnHintnuts* this, PlayState* play) { if (this->actor.textId != 0 && this->actor.category == ACTORCAT_ENEMY && ((this->actor.params == 0) || (sPuzzleCounter == 2))) { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_BG); } } @@ -204,7 +204,7 @@ void EnHintnuts_SetupLeave(EnHintnuts* this, PlayState* play) { void EnHintnuts_SetupFreeze(EnHintnuts* this) { Animation_PlayLoop(&this->skelAnime, &gHintNutsFreezeAnim); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 100); this->actor.colorFilterTimer = 1; this->animFlagAndTimer = 0; @@ -377,8 +377,8 @@ void EnHintnuts_Run(EnHintnuts* this, PlayState* play) { fabsf(this->actor.world.pos.y - this->actor.home.pos.y) < 2.0f) { this->actor.speed = 0.0f; if (this->actor.category == ACTORCAT_BG) { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_16); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_16); + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_ENEMY); } EnHintnuts_SetupBurrow(this); @@ -449,7 +449,7 @@ void EnHintnuts_Freeze(EnHintnuts* this, PlayState* play) { if (this->animFlagAndTimer == 1) { Actor_Kill(&this->actor); } else { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.flags &= ~ACTOR_FLAG_4; this->actor.colChkInfo.health = sColChkInfoInit.health; this->actor.colorFilterTimer = 0; diff --git a/src/overlays/actors/ovl_En_Hs/z_en_hs.c b/src/overlays/actors/ovl_En_Hs/z_en_hs.c index 2bfd15c386..f5f07ff45e 100644 --- a/src/overlays/actors/ovl_En_Hs/z_en_hs.c +++ b/src/overlays/actors/ovl_En_Hs/z_en_hs.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_hs/object_hs.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnHs_Init(Actor* thisx, PlayState* play); void EnHs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c index c260b9159f..267258ee7a 100644 --- a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c +++ b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_hs/object_hs.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnHs2_Init(Actor* thisx, PlayState* play); void EnHs2_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/src/overlays/actors/ovl_En_Hy/z_en_hy.c index 0257fd3565..b5d86df314 100644 --- a/src/overlays/actors/ovl_En_Hy/z_en_hy.c +++ b/src/overlays/actors/ovl_En_Hy/z_en_hy.c @@ -15,7 +15,7 @@ #include "assets/objects/object_cob/object_cob.h" #include "assets/objects/object_os_anime/object_os_anime.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnHy_Init(Actor* thisx, PlayState* play); void EnHy_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index 50547cb7b7..64a4b02589 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -105,7 +105,7 @@ void EnIceHono_InitCapturableFlame(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChainCapturableFlame); Actor_SetScale(&this->actor, 0.0074f); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Actor_SetFocus(&this->actor, 10.0f); Collider_InitCylinder(play, &this->collider); diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c index 307ff68496..494bfc3b28 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -313,7 +313,7 @@ void EnIk_StandUp(EnIk* this, PlayState* play) { } if (SkelAnime_Update(&this->skelAnime)) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE; EnIk_SetupWalkOrRun(this); } } @@ -321,7 +321,7 @@ void EnIk_StandUp(EnIk* this, PlayState* play) { void EnIk_SetupIdle(EnIk* this) { f32 endFrame = Animation_GetLastFrame(&object_ik_Anim_00DD50); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE; this->unk_2F8 = 4; this->actor.speed = 0.0f; Animation_Change(&this->skelAnime, &object_ik_Anim_00DD50, 0.0f, 0.0f, endFrame, ANIMMODE_LOOP, 4.0f); @@ -1522,7 +1522,7 @@ void EnIk_CsInit(EnIk* this, PlayState* play) { void EnIk_ChangeToEnemy(EnIk* this, PlayState* play) { this->actor.update = EnIk_UpdateEnemy; this->actor.draw = EnIk_DrawEnemy; - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE; SET_EVENTCHKINF(EVENTCHKINF_3B); Actor_SetScale(&this->actor, 0.012f); EnIk_SetupIdle(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 2e1b2a7ed1..3b63d0434c 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -2,7 +2,7 @@ #include "overlays/actors/ovl_En_Horse/z_en_horse.h" #include "assets/objects/object_in/object_in.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnIn_Init(Actor* thisx, PlayState* play); void EnIn_Destroy(Actor* thisx, PlayState* play); @@ -467,7 +467,7 @@ void func_80A79C78(EnIn* this, PlayState* play) { player->rideActor->freezeTimer = 10; } player->actor.freezeTimer = 10; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Letterbox_SetSizeTarget(32); Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT); } diff --git a/src/overlays/actors/ovl_En_Js/z_en_js.c b/src/overlays/actors/ovl_En_Js/z_en_js.c index aec212f0ff..17c4b041b4 100644 --- a/src/overlays/actors/ovl_En_Js/z_en_js.c +++ b/src/overlays/actors/ovl_En_Js/z_en_js.c @@ -7,7 +7,7 @@ #include "z_en_js.h" #include "assets/objects/object_js/object_js.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnJs_Init(Actor* thisx, PlayState* play); void EnJs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c b/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c index 607ccb17a2..cfae60a130 100644 --- a/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c +++ b/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c @@ -7,7 +7,7 @@ #include "z_en_jsjutan.h" #include "overlays/actors/ovl_En_Bom/z_en_bom.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnJsjutan_Init(Actor* thisx, PlayState* play); void EnJsjutan_Destroy(Actor* thisx, PlayState* play); @@ -40,7 +40,7 @@ void EnJsjutan_Init(Actor* thisx, PlayState* play) { s32 pad; CollisionHeader* header = NULL; - this->dyna.actor.flags &= ~ACTOR_FLAG_0; + this->dyna.actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; DynaPolyActor_Init(&this->dyna, 0); CollisionHeader_GetVirtual(&sCol, &header); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, header); diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index e829b9b8c0..91f6149099 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_ka/object_ka.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_25) void EnKakasi_Init(Actor* thisx, PlayState* play); void EnKakasi_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c index c74de73295..ae3e104f62 100644 --- a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c +++ b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_ka/object_ka.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25 | ACTOR_FLAG_27) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25 | ACTOR_FLAG_LOCK_ON_DISABLED) static ColliderCylinderInit sCylinderInit = { { @@ -124,7 +124,7 @@ void func_80A90264(EnKakasi2* this, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); SkelAnime_InitFlex(play, &this->skelAnime, &object_ka_Skel_0065B0, &object_ka_Anim_000214, NULL, NULL, 0); OnePointCutscene_Attention(play, &this->actor); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_27; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_LOCK_ON_DISABLED; Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME); if (this->switchFlag >= 0) { @@ -151,7 +151,7 @@ void func_80A90264(EnKakasi2* this, PlayState* play) { OnePointCutscene_Attention(play, &this->actor); Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_27; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_LOCK_ON_DISABLED; this->actionFunc = func_80A904D8; } } diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index 306b341d39..bca4a7f43e 100644 --- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_ka/object_ka.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_25) void EnKakasi3_Init(Actor* thisx, PlayState* play); void EnKakasi3_Destroy(Actor* thisx, PlayState* play); 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 a767d19e89..0462b4a3c7 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -10,7 +10,7 @@ #include "assets/objects/object_kanban/object_kanban.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) #define PART_UPPER_LEFT (1 << 0) #define PART_LEFT_UPPER (1 << 1) @@ -215,7 +215,7 @@ void EnKanban_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); if (this->actor.params != ENKANBAN_PIECE) { this->actor.attentionRangeType = ATTENTION_RANGE_0; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); PRINTF("KANBAN ARG %x\n", this->actor.params); @@ -287,7 +287,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { this->zTargetTimer--; } if (this->zTargetTimer == 1) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } if (this->partFlags == 0xFFFF) { EnKanban_Message(this, play); @@ -405,7 +405,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { piece->direction = -1; } piece->airTimer = 100; - piece->actor.flags &= ~ACTOR_FLAG_0; + piece->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; piece->actor.flags |= ACTOR_FLAG_25; this->cutMarkTimer = 5; Actor_PlaySfx(&this->actor, NA_SE_IT_SWORD_STRIKE); @@ -417,7 +417,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base); CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); if (this->actor.xzDistToPlayer > 500.0f) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->partFlags = 0xFFFF; } if (this->cutMarkTimer != 0) { @@ -780,7 +780,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { ((pDiff + yDiff + rDiff + this->spinRot.x + this->spinRot.z) == 0) && (this->floorRot.x == 0.0f) && (this->floorRot.z == 0.0f)) { signpost->partFlags |= this->partFlags; - signpost->actor.flags |= ACTOR_FLAG_0; + signpost->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Actor_Kill(&this->actor); } } break; diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index 8094cf8aee..a071219e00 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -9,7 +9,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnKarebaba_Init(Actor* thisx, PlayState* play); void EnKarebaba_Destroy(Actor* thisx, PlayState* play); @@ -328,7 +328,7 @@ void EnKarebaba_Dying(EnKarebaba* this, PlayState* play) { ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) || (this->actor.bgCheckFlags & BGCHECKFLAG_WALL))) { this->actor.scale.x = this->actor.scale.y = this->actor.scale.z = 0.0f; this->actor.speed = 0.0f; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); EffectSsHahen_SpawnBurst(play, &this->actor.world.pos, 3.0f, 0, 12, 5, 15, HAHEN_OBJECT_DEFAULT, 10, NULL); } @@ -400,7 +400,7 @@ void EnKarebaba_Regrow(EnKarebaba* this, PlayState* play) { if (this->actor.params == 20) { this->actor.flags &= ~ACTOR_FLAG_4; - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_ENEMY); EnKarebaba_SetupIdle(this); } diff --git a/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/src/overlays/actors/ovl_En_Ko/z_en_ko.c index 74c3ea22e7..0c738afefe 100644 --- a/src/overlays/actors/ovl_En_Ko/z_en_ko.c +++ b/src/overlays/actors/ovl_En_Ko/z_en_ko.c @@ -11,7 +11,7 @@ #include "assets/objects/object_kw1/object_kw1.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) #define ENKO_TYPE PARAMS_GET_S(this->actor.params, 0, 8) #define ENKO_PATH PARAMS_GET_S(this->actor.params, 8, 8) @@ -1105,9 +1105,9 @@ void func_80A98DB4(EnKo* this, PlayState* play) { Math_SmoothStepToF(&this->modelAlpha, (this->appearDist < dist) ? 0.0f : 255.0f, 0.3f, 40.0f, 1.0f); if (this->modelAlpha < 10.0f) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } } diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c index 86f7ef4800..43c72e7149 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -7,7 +7,7 @@ #include "z_en_kz.h" #include "assets/objects/object_kz/object_kz.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnKz_Init(Actor* thisx, PlayState* play); void EnKz_Destroy(Actor* thisx, PlayState* play); @@ -214,11 +214,11 @@ s32 EnKz_UpdateTalking(PlayState* play, Actor* thisx, s16* talkState, f32 intera yaw = Math_Vec3f_Yaw(&thisx->home.pos, &player->actor.world.pos); yaw -= thisx->shape.rot.y; if ((fabsf(yaw) > 1638.0f) || (thisx->xzDistToPlayer < 265.0f)) { - thisx->flags &= ~ACTOR_FLAG_0; + thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; return false; } - thisx->flags |= ACTOR_FLAG_0; + thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED; Actor_GetScreenPos(play, thisx, &x, &y); if (!((x >= -30) && (x < 361) && (y >= -10) && (y < 241))) { diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index fcc3179f57..caf06ced84 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -7,7 +7,7 @@ #include "z_en_ma1.h" #include "assets/objects/object_ma1/object_ma1.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25) void EnMa1_Init(Actor* thisx, PlayState* play); void EnMa1_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index bd992587c0..1f56ab1d71 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -1,7 +1,7 @@ #include "z_en_ma2.h" #include "assets/objects/object_ma2/object_ma2.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25) void EnMa2_Init(Actor* thisx, PlayState* play); void EnMa2_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c index c65dba93ae..f547ba3251 100644 --- a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c +++ b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c @@ -7,7 +7,7 @@ #include "z_en_ma3.h" #include "assets/objects/object_ma2/object_ma2.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5) void EnMa3_Init(Actor* thisx, PlayState* play); void EnMa3_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Mb/z_en_mb.c b/src/overlays/actors/ovl_En_Mb/z_en_mb.c index ca6597b593..8796955aa6 100644 --- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c +++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c @@ -14,7 +14,7 @@ * - "Spear Patrol" (variable 0xPP00 PP=pathId): uses a spear, patrols following a path, charges */ -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) typedef enum EnMbType { /* -1 */ ENMB_TYPE_SPEAR_GUARD = -1, @@ -307,7 +307,7 @@ void EnMb_Init(Actor* thisx, PlayState* play) { } ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFeet, 90.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.naviEnemyId += NAVI_ENEMY_MOBLIN_CLUB - NAVI_ENEMY_MOBLIN; EnMb_SetupClubWaitPlayerNear(this); break; @@ -323,7 +323,7 @@ void EnMb_Init(Actor* thisx, PlayState* play) { this->actor.colChkInfo.mass = MASS_HEAVY; this->maxHomeDist = 350.0f; this->playerDetectionRange = 1750.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnMb_SetupSpearPatrolTurnTowardsWaypoint(this, play); break; } @@ -574,7 +574,7 @@ void EnMb_SetupClubDamagedWhileKneeling(EnMb* this) { void EnMb_SetupClubDead(EnMb* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gEnMbClubFallOnItsBackAnim, -4.0f); this->state = ENMB_STATE_CLUB_DEAD; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->bodyCollider.dim.height = 80; this->bodyCollider.dim.radius = 95; this->timer1 = 30; @@ -1134,12 +1134,12 @@ void EnMb_SpearGuardWalk(EnMb* this, PlayState* play) { if (this->timer3 == 0 && Math_Vec3f_DistXZ(&this->actor.home.pos, &player->actor.world.pos) < this->playerDetectionRange) { Math_SmoothStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 1, 0x2EE, 0); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; if (this->actor.xzDistToPlayer < 500.0f && relYawTowardsPlayer < 0x1388) { EnMb_SetupSpearPrepareAndCharge(this); } } else { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (Math_Vec3f_DistXZ(&this->actor.world.pos, &this->actor.home.pos) > this->maxHomeDist || this->timer2 != 0) { yawTowardsHome = Math_Vec3f_Yaw(&this->actor.world.pos, &this->actor.home.pos); Math_SmoothStepToS(&this->actor.world.rot.y, yawTowardsHome, 1, 0x2EE, 0); @@ -1286,7 +1286,7 @@ void EnMb_SetupSpearDead(EnMb* this) { this->timer1 = 30; this->state = ENMB_STATE_SPEAR_SPEARPATH_DAMAGED; Actor_PlaySfx(&this->actor, NA_SE_EN_MORIBLIN_DEAD); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnMb_SetupAction(this, EnMb_SpearDead); } diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c index fc9f902ade..04f5e03ce0 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -8,7 +8,7 @@ #include "assets/objects/object_md/object_md.h" #include "overlays/actors/ovl_En_Elf/z_en_elf.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_25) void EnMd_Init(Actor* thisx, PlayState* play); void EnMd_Destroy(Actor* thisx, PlayState* play); 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 9c40c24141..31e89655ce 100644 --- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c +++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c @@ -7,7 +7,7 @@ #include "z_en_mk.h" #include "assets/objects/object_mk/object_mk.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnMk_Init(Actor* thisx, PlayState* play); void EnMk_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index e8ac9f176a..e9f8387fc0 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -8,7 +8,7 @@ #include "assets/objects/object_mm/object_mm.h" #include "assets/objects/object_link_child/object_link_child.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) typedef enum RunningManAnimIndex { /* 0 */ RM_ANIM_RUN, diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c index f3307daf59..d5cb108400 100644 --- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c +++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_mm/object_mm.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) typedef enum RunningManAnimIndex { /* 0 */ RM2_ANIM_RUN, diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c index 1cd83280b1..3f8ad8d7ca 100644 --- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c +++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c @@ -7,7 +7,7 @@ #include "z_en_ms.h" #include "assets/objects/object_ms/object_ms.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnMs_Init(Actor* thisx, PlayState* play); void EnMs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c index 112e884f5f..af1c6d32ef 100644 --- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c +++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c @@ -7,7 +7,7 @@ #include "z_en_mu.h" #include "assets/objects/object_mu/object_mu.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnMu_Init(Actor* thisx, PlayState* play); void EnMu_Destroy(Actor* thisx, PlayState* play); 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 cb5563cfbf..270e59bbcc 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -1134,7 +1134,7 @@ void EnNb_CrawlspaceSpawnCheck(EnNb* this, PlayState* play) { EnNb_SetCurrentAnim(this, &gNabooruStandingHandsOnHipsAnim, 0, 0.0f, 0); this->headTurnFlag = 1; - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; this->actor.world.pos = this->finalPos; this->action = NB_IDLE_AFTER_TALK; this->drawMode = NB_DRAW_DEFAULT; @@ -1214,7 +1214,7 @@ void EnNb_SetupIdleCrawlspace(EnNb* this, s32 animFinished) { if (animFinished) { EnNb_SetCurrentAnim(this, &gNabooruStandingHandsOnHipsAnim, 0, -8.0f, 0); this->headTurnFlag = 1; - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; this->action = NB_IDLE_CRAWLSPACE; } } @@ -1225,7 +1225,7 @@ void func_80AB3838(EnNb* this, PlayState* play) { this->action = NB_IN_DIALOG; } else { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; if (!GET_INFTABLE(INFTABLE_16C)) { this->actor.textId = 0x601D; @@ -1241,7 +1241,7 @@ void EnNb_SetupPathMovement(EnNb* this, PlayState* play) { EnNb_SetCurrentAnim(this, &gNabooruStandingToWalkingTransitionAnim, 2, -8.0f, 0); SET_EVENTCHKINF(EVENTCHKINF_94); this->action = NB_IN_PATH; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); } void EnNb_SetTextIdAsChild(EnNb* this, PlayState* play) { @@ -1261,7 +1261,7 @@ void EnNb_SetTextIdAsChild(EnNb* this, PlayState* play) { } this->action = NB_IDLE_CRAWLSPACE; } - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); } else if ((Message_GetState(&play->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(play)) { choiceIndex = play->msgCtx.choiceIndex; @@ -1319,7 +1319,7 @@ void func_80AB3B04(EnNb* this, PlayState* play) { this->action = NB_ACTION_30; } else { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; this->actor.textId = MaskReaction_GetTextId(play, MASK_REACTION_SET_NABOORU); if (this->actor.textId == 0) { @@ -1333,7 +1333,7 @@ void func_80AB3B04(EnNb* this, PlayState* play) { void func_80AB3B7C(EnNb* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { this->action = NB_IDLE_AFTER_TALK; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); } } 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 2f021ed3e6..84f56859f0 100644 --- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -151,7 +151,7 @@ void EnNiw_Init(Actor* thisx, PlayState* play) { } Actor_ProcessInitChain(&this->actor, sInitChain); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f); SkelAnime_InitFlex(play, &this->skelAnime, &gCuccoSkel, &gCuccoAnim, this->jointTable, this->morphTable, 16); @@ -213,7 +213,7 @@ void EnNiw_Init(Actor* thisx, PlayState* play) { FALLTHROUGH; case 0xE: this->actor.colChkInfo.mass = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; break; case 4: this->actor.gravity = 0.0f; @@ -461,7 +461,7 @@ void func_80AB6450(EnNiw* this, PlayState* play) { this->sfxTimer1 = 30; this->path = 0; this->timer4 = 30; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; this->actionFunc = func_80AB6BF8; } else { @@ -483,7 +483,7 @@ void func_80AB6570(EnNiw* this, PlayState* play) { this->sfxTimer1 = 30; this->path = 0; this->timer4 = 30; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; this->actionFunc = func_80AB6BF8; return; @@ -644,7 +644,7 @@ void func_80AB6BF8(EnNiw* this, PlayState* play) { this->actor.shape.rot.z = 0; this->actor.shape.rot.y = this->actor.shape.rot.z; this->actor.shape.rot.x = this->actor.shape.rot.z; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = func_80AB6D08; } func_80AB5BF8(this, play, 2); @@ -692,7 +692,7 @@ void func_80AB6D08(EnNiw* this, PlayState* play) { this->sfxTimer1 = 30; this->path = 0; this->timer4 = 30; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; this->actionFunc = func_80AB6BF8; } else { @@ -799,7 +799,7 @@ void func_80AB714C(EnNiw* this, PlayState* play) { if (this->timer5 == 0) { this->timer7 = 10; this->unk_2E4 = this->actor.yawTowardsPlayer; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = func_80AB7204; } diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index 89d37ad3b1..066ef78c62 100644 --- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -8,7 +8,7 @@ #include "assets/objects/object_gr/object_gr.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnNiwGirl_Init(Actor* thisx, PlayState* play); void EnNiwGirl_Destroy(Actor* thisx, PlayState* play); @@ -96,7 +96,7 @@ void EnNiwGirl_Destroy(Actor* thisx, PlayState* play) { void EnNiwGirl_Jump(EnNiwGirl* this, PlayState* play) { f32 frameCount = Animation_GetLastFrame(&gNiwGirlRunAnim); Animation_Change(&this->skelAnime, &gNiwGirlRunAnim, 1.0f, 0.0f, frameCount, 0, -10.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = func_80AB9210; } @@ -137,7 +137,7 @@ void func_80AB9210(EnNiwGirl* this, PlayState* play) { void EnNiwGirl_Talk(EnNiwGirl* this, PlayState* play) { Animation_Change(&this->skelAnime, &gNiwGirlJumpAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gNiwGirlJumpAnim), 0, -10.0f); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.textId = 0x7000; if (GET_EVENTCHKINF(EVENTCHKINF_80) && (this->unk_27A == 0)) { this->actor.textId = 0x70EA; diff --git a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index c54da3b643..439af090f9 100644 --- a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -4,7 +4,7 @@ #include "overlays/actors/ovl_En_Niw/z_en_niw.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnNiwLady_Init(Actor* thisx, PlayState* play); void EnNiwLady_Destroy(Actor* thisx, PlayState* play); 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 b76655be8a..d0eac54fa0 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -1,7 +1,7 @@ #include "z_en_ny.h" #include "assets/objects/object_ny/object_ny.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnNy_Init(Actor* thisx, PlayState* play); void EnNy_Destroy(Actor* thisx, PlayState* play); @@ -331,7 +331,7 @@ s32 EnNy_CollisionCheck(EnNy* this, PlayState* play) { this->stoneTimer = 0; if (this->actor.colChkInfo.health == 0) { this->actor.shape.shadowAlpha = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unk_1D0 = sp3F; Enemy_StartFinishingBlow(play, &this->actor); return 1; diff --git a/src/overlays/actors/ovl_En_OE2/z_en_oe2.c b/src/overlays/actors/ovl_En_OE2/z_en_oe2.c index cfd4f7377f..ec67cf0c50 100644 --- a/src/overlays/actors/ovl_En_OE2/z_en_oe2.c +++ b/src/overlays/actors/ovl_En_OE2/z_en_oe2.c @@ -6,7 +6,7 @@ #include "z_en_oe2.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnOE2_Init(Actor* thisx, PlayState* play); void EnOE2_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c index 9059d41dea..3fe68d7218 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c @@ -46,7 +46,7 @@ void EnOkarinaTag_Init(Actor* thisx, PlayState* play) { PRINTF("\n\n"); // "Ocarina tag outbreak" PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ オカリナタグ発生 ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->type = PARAMS_GET_U(this->actor.params, 10, 6); this->ocarinaSong = PARAMS_GET_U(this->actor.params, 6, 4); this->switchFlag = PARAMS_GET_U(this->actor.params, 0, 6); @@ -112,7 +112,7 @@ void func_80ABEF2C(EnOkarinaTag* this, PlayState* play) { player = GET_PLAYER(play); this->unk_15A++; if ((this->switchFlag >= 0) && (Flags_GetSwitch(play, this->switchFlag))) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { if ((this->ocarinaSong != 6) || (gSaveContext.save.info.scarecrowSpawnSongSet)) { if (player->stateFlags2 & PLAYER_STATE2_24) { @@ -189,7 +189,7 @@ void func_80ABF28C(EnOkarinaTag* this, PlayState* play) { this->unk_15A++; if ((this->ocarinaSong != 6) || (gSaveContext.save.info.scarecrowSpawnSongSet)) { if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else if (((this->type != 4) || !GET_EVENTCHKINF(EVENTCHKINF_4B)) && ((this->type != 6) || !GET_EVENTCHKINF(EVENTCHKINF_1D)) && (this->actor.xzDistToPlayer < (90.0f + this->interactRange)) && diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index 6639663bae..a25f0632ab 100644 --- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -1,7 +1,7 @@ #include "z_en_okuta.h" #include "assets/objects/object_okuta/object_okuta.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnOkuta_Init(Actor* thisx, PlayState* play); void EnOkuta_Destroy(Actor* thisx, PlayState* play); @@ -145,7 +145,7 @@ void EnOkuta_Init(Actor* thisx, PlayState* play) { EnOkuta_SetupWaitToAppear(this); } else { ActorShape_Init(&thisx->shape, 1100.0f, ActorShadow_DrawCircle, 18.0f); - thisx->flags &= ~ACTOR_FLAG_0; + thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; thisx->flags |= ACTOR_FLAG_4; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, thisx, &sProjectileColliderInit); @@ -197,7 +197,7 @@ void EnOkuta_SpawnRipple(EnOkuta* this, PlayState* play) { void EnOkuta_SetupWaitToAppear(EnOkuta* this) { this->actor.draw = NULL; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnOkuta_WaitToAppear; this->actor.world.pos.y = this->actor.home.pos.y; } @@ -205,7 +205,7 @@ void EnOkuta_SetupWaitToAppear(EnOkuta* this) { void EnOkuta_SetupAppear(EnOkuta* this, PlayState* play) { this->actor.draw = EnOkuta_Draw; this->actor.shape.rot.y = this->actor.yawTowardsPlayer; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Animation_PlayOnce(&this->skelAnime, &gOctorokAppearAnim); EnOkuta_SpawnBubbles(this, play); this->actionFunc = EnOkuta_Appear; @@ -559,7 +559,7 @@ void EnOkuta_ColliderCheck(EnOkuta* this, PlayState* play) { if ((this->actor.colChkInfo.damageEffect != 0) || (this->actor.colChkInfo.damage != 0)) { Enemy_StartFinishingBlow(play, &this->actor); this->actor.colChkInfo.health = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (this->actor.colChkInfo.damageEffect == 3) { EnOkuta_SetupFreeze(this); } else { diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index 2b185c9c41..e8a86a7d3f 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -14,7 +14,7 @@ #include "assets/objects/object_masterzoora/object_masterzoora.h" #include "assets/objects/object_masterkokirihead/object_masterkokirihead.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) #if !PLATFORM_GC #define CURSOR_COLOR_R 0 @@ -2205,7 +2205,7 @@ void EnOssan_InitActionFunc(EnOssan* this, PlayState* play) { this->blinkTimer = 20; this->eyeTextureIdx = 0; this->blinkFunc = EnOssan_WaitForBlink; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnOssan_SetupAction(this, EnOssan_MainActionFunc); } } diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index bb4407209a..7cdc19b979 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -10,7 +10,7 @@ #include "assets/scenes/overworld/spot16/spot16_scene.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnOwl_Init(Actor* thisx, PlayState* play); void EnOwl_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c index d97d5f2082..db6419abdf 100644 --- a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c +++ b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c @@ -3,7 +3,7 @@ #include "overlays/actors/ovl_En_Bom/z_en_bom.h" #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_24) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_24) #define GROUND_HOVER_HEIGHT 75.0f #define MAX_LARVA 3 @@ -223,7 +223,7 @@ void EnPeehat_Init(Actor* thisx, PlayState* play) { this->xzDistToRise = 2800.0f; this->xzDistMax = 1400.0f; EnPeehat_Flying_SetStateGround(this); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; break; case PEAHAT_TYPE_LARVA: this->actor.scale.x = this->actor.scale.z = 0.006f; @@ -322,7 +322,7 @@ void EnPeehat_Ground_SetStateGround(EnPeehat* this) { void EnPeehat_Ground_StateGround(EnPeehat* this, PlayState* play) { if (IS_DAY) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; if (this->riseDelayTimer == 0) { if (this->actor.xzDistToPlayer < this->xzDistToRise) { EnPeehat_Ground_SetStateRise(this); @@ -332,7 +332,7 @@ void EnPeehat_Ground_StateGround(EnPeehat* this, PlayState* play) { this->riseDelayTimer--; } } else { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Math_SmoothStepToF(&this->actor.shape.yOffset, -1000.0f, 1.0f, 50.0f, 0.0f); if (this->unk_2D4 != 0) { this->unk_2D4--; diff --git a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c index e866ffe13c..626b9e880a 100644 --- a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c +++ b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c @@ -197,11 +197,11 @@ void EnPoDesert_Update(Actor* thisx, PlayState* play) { Collider_UpdateCylinder(&this->actor, &this->collider); CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); if (play->actorCtx.lensActive) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_REACT_TO_LENS; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_REACT_TO_LENS; this->actor.shape.shadowDraw = ActorShadow_DrawCircle; } else { this->actor.shape.shadowDraw = NULL; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_REACT_TO_LENS); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_REACT_TO_LENS); } } diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index 14df53b27c..a0946648c6 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -8,7 +8,8 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_po_field/object_po_field.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_IGNORE_QUAKE) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_IGNORE_QUAKE) void EnPoField_Init(Actor* thisx, PlayState* play); void EnPoField_Destroy(Actor* thisx, PlayState* play); @@ -192,7 +193,7 @@ void EnPoField_SetupWaitForSpawn(EnPoField* this, PlayState* play) { Lights_PointSetColorAndRadius(&this->lightInfo, 0, 0, 0, 0); this->actionTimer = 200; Actor_SetScale(&this->actor, 0.0f); - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_16); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_16); this->collider.base.acFlags &= ~AC_ON; this->collider.base.ocFlags1 = OC1_ON | OC1_TYPE_ALL; this->actor.colChkInfo.health = D_80AD70D8.health; @@ -241,7 +242,7 @@ void EnPoField_SetupCirclePlayer(EnPoField* this, PlayState* play) { Math_Vec3f_Copy(&this->actor.home.pos, &player->actor.world.pos); this->actor.world.rot.y = this->actor.yawTowardsPlayer; if (this->actionFunc != EnPoField_Damage) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionTimer = 600; this->unk_194 = 32; } @@ -254,7 +255,7 @@ void EnPoField_SetupFlee(EnPoField* this) { this->actionFunc = EnPoField_Flee; this->actor.speed = 12.0f; if (this->actionFunc != EnPoField_Damage) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.world.rot.y = this->actor.shape.rot.y + 0x8000; this->actionTimer = 2000; this->unk_194 = 32; @@ -276,7 +277,7 @@ void EnPoField_SetupDamage(EnPoField* this) { void EnPoField_SetupDeath(EnPoField* this) { this->actionTimer = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; this->actor.naviEnemyId = NAVI_ENEMY_NONE; @@ -342,7 +343,7 @@ void func_80AD4384(EnPoField* this) { this->actor.textId = 0x5005; this->actionTimer = 400; this->unk_194 = 32; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = func_80AD58D4; } diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index 24983e306b..54b3fadb85 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -8,7 +8,8 @@ #include "overlays/actors/ovl_En_Honotrap/z_en_honotrap.h" #include "assets/objects/object_tk/object_tk.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_16) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_16) void EnPoRelay_Init(Actor* thisx, PlayState* play); void EnPoRelay_Destroy(Actor* thisx, PlayState* play); @@ -140,14 +141,14 @@ void EnPoRelay_SetupRace(EnPoRelay* this) { Interface_SetTimer(0); this->hookshotSlotFull = INV_CONTENT(ITEM_HOOKSHOT) != ITEM_NONE; this->unk_19A = Actor_WorldYawTowardPoint(&this->actor, &vec); - this->actor.flags |= ACTOR_FLAG_27; + this->actor.flags |= ACTOR_FLAG_LOCK_ON_DISABLED; Actor_PlaySfx(&this->actor, NA_SE_EN_PO_LAUGH); this->actionFunc = EnPoRelay_Race; } void EnPoRelay_SetupEndRace(EnPoRelay* this) { this->actor.world.rot.y = this->actor.home.rot.y + 0xC000; - this->actor.flags &= ~ACTOR_FLAG_27; + this->actor.flags &= ~ACTOR_FLAG_LOCK_ON_DISABLED; this->actor.speed = 0.0f; this->actionFunc = EnPoRelay_EndRace; } diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index c460dc37b9..70a6114653 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -8,7 +8,9 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_po_sisters/object_po_sisters.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_9 | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_14) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_9 | ACTOR_FLAG_IGNORE_QUAKE | \ + ACTOR_FLAG_14) void EnPoSisters_Init(Actor* thisx, PlayState* play); void EnPoSisters_Destroy(Actor* thisx, PlayState* play); @@ -200,7 +202,7 @@ void EnPoSisters_Init(Actor* thisx, PlayState* play) { this->unk_198 = 1; this->unk_199 = 32; this->unk_294 = 110.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (PARAMS_GET_NOSHIFT(this->actor.params, 12, 1)) { func_80ADA094(this, play); } else if (this->unk_194 == 0) { @@ -376,7 +378,7 @@ void func_80AD99D4(EnPoSisters* this, PlayState* play) { this->actor.speed = 0.0f; this->actor.world.pos.y += 42.0f; this->actor.shape.yOffset = -6000.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unk_199 = 0; this->actionFunc = func_80ADAFC0; OnePointCutscene_Init(play, 3190, 999, &this->actor, CAM_ID_MAIN); @@ -426,7 +428,7 @@ void func_80AD9C24(EnPoSisters* this, PlayState* play) { Vec3f vec; this->actor.draw = NULL; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unk_19C = 100; this->unk_199 = 32; this->collider.base.colType = COLTYPE_HIT3; @@ -485,7 +487,7 @@ void func_80AD9F1C(EnPoSisters* this) { this->unk_19A = 300; this->unk_19C = 3; this->unk_199 |= 9; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = func_80ADB770; } @@ -507,7 +509,7 @@ void func_80ADA028(EnPoSisters* this) { Animation_MorphToLoop(&this->skelAnime, &gPoeSistersSwayAnim, -3.0f); this->unk_22E.a = 255; this->unk_199 |= 0x15; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = func_80ADBBF4; this->actor.speed = 0.0f; } @@ -997,7 +999,7 @@ void func_80ADB9F0(EnPoSisters* this, PlayState* play) { if (SkelAnime_Update(&this->skelAnime)) { this->unk_22E.a = 255; if (this->unk_194 == 3) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.home.pos.x = 1992.0f; this->actor.home.pos.z = -1440.0f; this->unk_199 |= 0x18; diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index 7c533e632c..fafee9e204 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -8,7 +8,7 @@ #include "assets/objects/object_poh/object_poh.h" #include "assets/objects/object_po_composer/object_po_composer.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_IGNORE_QUAKE) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_IGNORE_QUAKE) void EnPoh_Init(Actor* thisx, PlayState* play); void EnPoh_Destroy(Actor* thisx, PlayState* play); @@ -315,7 +315,7 @@ void func_80ADE368(EnPoh* this) { void EnPoh_SetupInitialAction(EnPoh* this) { this->lightColor.a = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (this->infoIdx == EN_POH_INFO_NORMAL) { Animation_PlayOnceSetSpeed(&this->skelAnime, &gPoeAppearAnim, 0.0f); this->actionFunc = func_80ADEF38; @@ -333,7 +333,7 @@ void func_80ADE48C(EnPoh* this) { this->actor.world.rot.y = this->actor.shape.rot.y; this->unk_198 = 0; this->actor.naviEnemyId = NAVI_ENEMY_NONE; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = func_80ADF15C; } @@ -435,7 +435,7 @@ void EnPoh_Talk(EnPoh* this, PlayState* play) { } this->unk_198 = 200; this->unk_195 = 32; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = func_80ADFE80; } @@ -578,7 +578,7 @@ void func_80ADEF38(EnPoh* this, PlayState* play) { if (SkelAnime_Update(&this->skelAnime)) { this->lightColor.a = 255; this->visibilityTimer = Rand_S16Offset(700, 300); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; EnPoh_SetupIdle(this); } else if (this->skelAnime.curFrame > 10.0f) { this->lightColor.a = ((this->skelAnime.curFrame - 10.0f) * 0.05f) * 255.0f; @@ -593,7 +593,7 @@ void EnPoh_ComposerAppear(EnPoh* this, PlayState* play) { if (SkelAnime_Update(&this->skelAnime)) { this->lightColor.a = 255; this->visibilityTimer = Rand_S16Offset(700, 300); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; EnPoh_SetupIdle(this); } else { this->lightColor.a = CLAMP_MAX((s32)(this->skelAnime.curFrame * 25.5f), 255); diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index 29aca4779d..5e9af39bea 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -1,7 +1,7 @@ #include "z_en_rd.h" #include "assets/objects/object_rd/object_rd.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_10) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_10) void EnRd_Init(Actor* thisx, PlayState* play); void EnRd_Destroy(Actor* thisx, PlayState* play); @@ -382,7 +382,7 @@ void EnRd_WalkToPlayer(EnRd* this, PlayState* play) { Actor_IsFacingPlayer(&this->actor, 0x38E3)) { player->actor.freezeTimer = 0; if (play->grabPlayer(play, player)) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnRd_SetupGrab(this); } } else if (this->actor.params > REDEAD_TYPE_DOES_NOT_MOURN_IF_WALKING) { @@ -580,7 +580,7 @@ void EnRd_Grab(EnRd* this, PlayState* play) { Math_SmoothStepToF(&this->actor.shape.yOffset, 0, 1.0f, 400.0f, 0.0f); } this->actor.attentionRangeType = ATTENTION_RANGE_0; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->playerStunWaitTimer = 0xA; this->grabWaitTimer = 0xF; EnRd_SetupWalkToPlayer(this, play); @@ -650,7 +650,7 @@ void EnRd_SetupDamaged(EnRd* this) { this->actor.speed = -2.0f; } - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Actor_PlaySfx(&this->actor, NA_SE_EN_REDEAD_DAMAGE); this->action = REDEAD_ACTION_DAMAGED; EnRd_SetupAction(this, EnRd_Damaged); @@ -685,7 +685,7 @@ void EnRd_SetupDead(EnRd* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gGibdoRedeadDeathAnim, -1.0f); this->action = REDEAD_ACTION_DEAD; this->timer = 300; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_REDEAD_DEAD); EnRd_SetupAction(this, EnRd_Dead); diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c index 73ca41eeb7..75a3e49eec 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c @@ -10,7 +10,7 @@ #include "terminal.h" #include "assets/objects/object_reeba/object_reeba.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_27) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_LOCK_ON_DISABLED) void EnReeba_Init(Actor* thisx, PlayState* play); void EnReeba_Destroy(Actor* thisx, PlayState* play); @@ -192,7 +192,7 @@ void EnReeba_SetupSurface(EnReeba* this, PlayState* play) { this->waitTimer = 20; } - this->actor.flags &= ~ACTOR_FLAG_27; + this->actor.flags &= ~ACTOR_FLAG_LOCK_ON_DISABLED; this->actor.world.pos.y = this->actor.floorHeight; if (this->type != LEEVER_TYPE_SMALL) { @@ -278,7 +278,7 @@ void EnReeba_Move(EnReeba* this, PlayState* play) { } void EnReeba_SetupMoveBig(EnReeba* this, PlayState* play) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE; this->actionfunc = EnReeba_MoveBig; } @@ -341,8 +341,8 @@ void EnReeba_Recoiled(EnReeba* this, PlayState* play) { void EnReeba_SetupSink(EnReeba* this, PlayState* play) { this->stunType = LEEVER_STUN_NONE; Actor_PlaySfx(&this->actor, NA_SE_EN_AKINDONUTS_HIDE); - this->actor.flags |= ACTOR_FLAG_27; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags |= ACTOR_FLAG_LOCK_ON_DISABLED; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); this->actionfunc = EnReeba_Sink; } @@ -393,8 +393,8 @@ void EnReeba_SetupStunned(EnReeba* this, PlayState* play) { this->waitTimer = 14; this->actor.world.rot.y = this->actor.yawTowardsPlayer; this->actor.speed = -8.0f; - this->actor.flags |= ACTOR_FLAG_27; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags |= ACTOR_FLAG_LOCK_ON_DISABLED; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); this->actionfunc = EnReeba_Stunned; } @@ -463,7 +463,7 @@ void EnReeba_SetupDie(EnReeba* this, PlayState* play) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8); this->waitTimer = 14; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionfunc = EnReeba_Die; } diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index 08bc057d96..779c54c52c 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -8,7 +8,7 @@ #include "assets/objects/object_rr/object_rr.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_10) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_10) #define RR_MESSAGE_SHIELD (1 << 0) #define RR_MESSAGE_TUNIC (1 << 1) @@ -254,7 +254,7 @@ void EnRr_SetupGrabPlayer(EnRr* this, Player* player) { s32 i; this->grabTimer = 100; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->ocTimer = 8; this->hasPlayer = true; this->reachState = 0; @@ -289,7 +289,7 @@ void EnRr_SetupReleasePlayer(EnRr* this, PlayState* play) { u8 shield; u8 tunic; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->hasPlayer = false; this->ocTimer = 110; this->segMoveRate = 0.0f; @@ -381,7 +381,7 @@ void EnRr_SetupDeath(EnRr* this) { } this->actionFunc = EnRr_Death; Actor_PlaySfx(&this->actor, NA_SE_EN_LIKE_DEAD); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void EnRr_SetupStunned(EnRr* 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 e6abcb837b..1a80885f30 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -9,7 +9,7 @@ #include "terminal.h" #include "overlays/actors/ovl_Demo_Effect/z_demo_effect.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_4 | ACTOR_FLAG_26) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4 | ACTOR_FLAG_26) void EnRu1_Init(Actor* thisx, PlayState* play); void EnRu1_Destroy(Actor* thisx, PlayState* play); @@ -1505,7 +1505,7 @@ void func_80AEE050(EnRu1* this) { s32 func_80AEE264(EnRu1* this, PlayState* play) { if (!Actor_TalkOfferAccepted(&this->actor, play)) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; if (GET_INFTABLE(INFTABLE_143)) { this->actor.textId = 0x404E; Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); @@ -1837,7 +1837,7 @@ s32 func_80AEF0BC(EnRu1* this, PlayState* play) { Animation_Change(&this->skelAnime, &gRutoChildSitAnim, 1.0f, 0, frameCount, ANIMMODE_ONCE, -8.0f); play->msgCtx.msgMode = MSGMODE_PAUSED; this->action = 26; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); return true; } return false; @@ -1877,7 +1877,7 @@ void func_80AEF29C(EnRu1* this, PlayState* play) { void func_80AEF2AC(EnRu1* this, PlayState* play) { this->action = 24; this->drawConfig = 1; - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; } void func_80AEF2D0(EnRu1* this, PlayState* play) { @@ -2034,7 +2034,7 @@ void func_80AEF890(EnRu1* this, PlayState* play) { void func_80AEF930(EnRu1* this, PlayState* play) { if (func_80AEB104(this) == 3) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; this->actor.textId = 0x4048; Message_ContinueTextbox(play, this->actor.textId); func_80AEF4A8(this, play); @@ -2132,7 +2132,7 @@ void func_80AEFC54(EnRu1* this, PlayState* play) { this->action = 41; this->unk_28C = EnRu1_FindSwitch(play); func_80AEB0EC(this, 1); - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); } else { Actor_Kill(&this->actor); } @@ -2160,7 +2160,7 @@ void func_80AEFD38(EnRu1* this, PlayState* play) { s32 func_80AEFDC0(EnRu1* this, PlayState* play) { if (!Actor_TalkOfferAccepted(&this->actor, play)) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; this->actor.textId = MaskReaction_GetTextId(play, MASK_REACTION_SET_RUTO); if (this->actor.textId == 0) { this->actor.textId = 0x402C; @@ -2173,7 +2173,7 @@ s32 func_80AEFDC0(EnRu1* this, PlayState* play) { s32 func_80AEFE38(EnRu1* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); return true; } return false; diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index 45a8a53698..70c12a09f8 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -4,7 +4,7 @@ #include "assets/scenes/overworld/spot04/spot04_scene.h" #include "assets/scenes/overworld/spot05/spot05_scene.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_25) void EnSa_Init(Actor* thisx, PlayState* play); void EnSa_Destroy(Actor* thisx, PlayState* play); 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 e0cb490811..108c6663a5 100644 --- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c +++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_sb/object_sb.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnSb_Init(Actor* thisx, PlayState* play); void EnSb_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c index 6389b8a0fd..ab0af7d2f1 100644 --- a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c +++ b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c @@ -6,7 +6,7 @@ #include "z_en_shopnuts.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnShopnuts_Init(Actor* thisx, PlayState* play); void EnShopnuts_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Si/z_en_si.c b/src/overlays/actors/ovl_En_Si/z_en_si.c index eb0a7acfb8..50a8a1479d 100644 --- a/src/overlays/actors/ovl_En_Si/z_en_si.c +++ b/src/overlays/actors/ovl_En_Si/z_en_si.c @@ -6,7 +6,7 @@ #include "z_en_si.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_9) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_9) void EnSi_Init(Actor* thisx, PlayState* play); void EnSi_Destroy(Actor* thisx, PlayState* play); 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 231b2e795c..2d1a4aad6c 100644 --- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c +++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c @@ -8,7 +8,7 @@ #include "overlays/actors/ovl_En_Encount1/z_en_encount1.h" #include "assets/objects/object_skb/object_skb.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) typedef enum StalchildBehavior { SKB_BEHAVIOR_BURIED, @@ -210,7 +210,7 @@ void EnSkb_DecideNextAction(EnSkb* this) { void EnSkb_SetupRiseFromGround(EnSkb* this) { Animation_PlayOnceSetSpeed(&this->skelAnime, &gStalchildUncurlingAnim, 1.0f); this->actionState = SKB_BEHAVIOR_BURIED; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_PlaySfx(&this->actor, NA_SE_EN_RIVA_APPEAR); EnSkb_SetupAction(this, EnSkb_RiseFromGround); } @@ -220,7 +220,7 @@ void EnSkb_RiseFromGround(EnSkb* this, PlayState* play) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; this->actor.shape.rot.y = this->actor.yawTowardsPlayer; } else { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } Math_SmoothStepToF(&this->actor.shape.yOffset, 0.0f, 1.0f, 800.0f, 0.0f); Math_SmoothStepToF(&this->actor.shape.shadowScale, 25.0f, 1.0f, 2.5f, 0.0f); @@ -237,7 +237,7 @@ void EnSkb_SetupDespawn(EnSkb* this) { Animation_GetLastFrame(&gStalchildUncurlingAnim), 0.0f, ANIMMODE_ONCE, -4.0f); this->actionState = SKB_BEHAVIOR_BURIED; this->setColliderAT = false; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_AKINDONUTS_HIDE); EnSkb_SetupAction(this, EnSkb_Despawn); @@ -416,7 +416,7 @@ void EnSkb_SetupDeath(EnSkb* this, PlayState* play) { this->actor.speed = -6.0f; } this->actionState = SKB_BEHAVIOR_DYING; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; BodyBreak_Alloc(&this->bodyBreak, 18, play); this->breakFlags |= 4; EffectSsDeadSound_SpawnStationary(play, &this->actor.projectedPos, NA_SE_EN_STALKID_DEAD, 1, 1, 0x28); diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index 72b2bdec32..2524166278 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -2,7 +2,7 @@ #include "overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.h" #include "assets/objects/object_skj/object_skj.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_25) void EnSkj_Init(Actor* thisx, PlayState* play2); void EnSkj_Destroy(Actor* thisx, PlayState* play); @@ -373,7 +373,7 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) { this->actor.destroy = NULL; this->actor.draw = NULL; this->actor.update = EnSkj_SariasSongShortStumpUpdate; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); this->actor.flags |= 0; Actor_ChangeCategory(play, &play->actorCtx, thisx, ACTORCAT_PROP); break; @@ -384,7 +384,7 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) { this->actor.destroy = NULL; this->actor.draw = NULL; this->actor.update = EnSkj_OcarinaMinigameShortStumpUpdate; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); this->actor.flags |= 0; Actor_ChangeCategory(play, &play->actorCtx, thisx, ACTORCAT_PROP); this->actor.focus.pos.x = 1230.0f; @@ -406,8 +406,8 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) { SkelAnime_InitFlex(play, &this->skelAnime, &gSkullKidSkel, &gSkullKidPlayFluteAnim, this->jointTable, this->morphTable, 19); if ((type >= 0) && (type < 3)) { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_NPC); } @@ -1211,14 +1211,14 @@ void EnSkj_SariasSongWaitForTextClear(EnSkj* this, PlayState* play) { } void EnSkj_OcarinaGameSetupWaitForPlayer(EnSkj* this) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnSkj_ChangeAnim(this, SKJ_ANIM_WAIT); EnSkj_SetupAction(this, SKJ_ACTION_OCARINA_GAME_WAIT_FOR_PLAYER); } void EnSkj_OcarinaGameWaitForPlayer(EnSkj* this, PlayState* play) { if (this->playerInRange) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; EnSkj_SetupAction(this, SKJ_ACTION_OCARINA_GAME_IDLE); } } diff --git a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c index 9d40c44ed6..131b09f360 100644 --- a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c +++ b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c @@ -7,7 +7,7 @@ #include "z_en_skjneedle.h" #include "assets/objects/object_skj/object_skj.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_9) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_9) void EnSkjneedle_Init(Actor* thisx, PlayState* play); void EnSkjneedle_Destroy(Actor* thisx, PlayState* play); @@ -59,7 +59,7 @@ void EnSkjneedle_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinderType1(play, &this->collider, &this->actor, &sCylinderInit); ActorShape_Init(&this->actor.shape, 0, ActorShadow_DrawCircle, 20.0f); - thisx->flags &= ~ACTOR_FLAG_0; + thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Actor_SetScale(&this->actor, 0.01f); } diff --git a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c index cd0918a955..d976720575 100644 --- a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c +++ b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c @@ -1,7 +1,7 @@ #include "z_en_ssh.h" #include "assets/objects/object_ssh/object_ssh.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) #define SSH_STATE_STUNNED (1 << 0) #define SSH_STATE_GROUND_START (1 << 2) diff --git a/src/overlays/actors/ovl_En_St/z_en_st.c b/src/overlays/actors/ovl_En_St/z_en_st.c index 744048e52e..d70fd9b3fe 100644 --- a/src/overlays/actors/ovl_En_St/z_en_st.c +++ b/src/overlays/actors/ovl_En_St/z_en_st.c @@ -7,7 +7,7 @@ #include "z_en_st.h" #include "assets/objects/object_st/object_st.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) void EnSt_Init(Actor* thisx, PlayState* play); void EnSt_Destroy(Actor* thisx, PlayState* play); @@ -467,7 +467,7 @@ s32 EnSt_CheckHitBackside(EnSt* this, PlayState* play) { return false; } Enemy_StartFinishingBlow(play, &this->actor); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->groundBounces = 3; this->deathTimer = 20; this->actor.gravity = -1.0f; diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c index 881a17fe90..d70c5e1694 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -9,7 +9,7 @@ #include "assets/objects/object_ahg/object_ahg.h" #include "assets/objects/object_boj/object_boj.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnSth_Init(Actor* thisx, PlayState* play); void EnSth_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Sw/z_en_sw.c b/src/overlays/actors/ovl_En_Sw/z_en_sw.c index 2b2d3632e6..5846ecc09e 100644 --- a/src/overlays/actors/ovl_En_Sw/z_en_sw.c +++ b/src/overlays/actors/ovl_En_Sw/z_en_sw.c @@ -1,7 +1,7 @@ #include "z_en_sw.h" #include "assets/objects/object_st/object_st.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) void EnSw_Init(Actor* thisx, PlayState* play); void EnSw_Destroy(Actor* thisx, PlayState* play); @@ -286,7 +286,7 @@ void EnSw_Init(Actor* thisx, PlayState* play) { this->collider.elements[0].base.atDmgInfo.damage *= 2; this->actor.naviEnemyId = NAVI_ENEMY_GOLD_SKULLTULA; this->actor.colChkInfo.health *= 2; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; break; default: Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_ENEMY); @@ -353,7 +353,7 @@ s32 func_80B0C9F0(EnSw* this, PlayState* play) { this->unk_38A = 2; this->actor.shape.shadowScale = 16.0f; this->actor.gravity = -1.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = func_80B0DB00; } diff --git a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index f906f8fb0e..1e4f0261f9 100644 --- a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -3,7 +3,7 @@ #include "overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.h" #include "assets/objects/object_ossan/object_ossan.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_27) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_LOCK_ON_DISABLED) typedef enum EnSyatekiManGameResult { /* 0 */ SYATEKI_RESULT_NONE, @@ -415,7 +415,7 @@ void EnSyatekiMan_FinishPrize(EnSyatekiMan* this, PlayState* play) { } this->gameResult = SYATEKI_RESULT_NONE; this->actor.parent = this->tempGallery; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnSyatekiMan_SetupIdle; } } diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c index 04b1f13618..1b94e675d3 100644 --- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c +++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c @@ -68,7 +68,7 @@ void EnSyatekiNiw_Init(Actor* thisx, PlayState* play) { EnSyatekiNiw* this = (EnSyatekiNiw*)thisx; Actor_ProcessInitChain(&this->actor, sInitChain); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f); SkelAnime_InitFlex(play, &this->skelAnime, &gCuccoSkel, &gCuccoAnim, this->jointTable, this->morphTable, 16); diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index b76e71f43a..17eb0b3b3a 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_ta/object_ta.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) #define TALON_STATE_FLAG_TRACKING_PLAYER (1 << 0) #define TALON_STATE_FLAG_GIVING_MILK_REFILL (1 << 1) diff --git a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c index 4210979ae7..2da5672688 100644 --- a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c +++ b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c @@ -8,7 +8,8 @@ #include "terminal.h" #include "assets/objects/object_ts/object_ts.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_27) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_LOCK_ON_DISABLED) void EnTakaraMan_Init(Actor* thisx, PlayState* play); void EnTakaraMan_Destroy(Actor* thisx, PlayState* play); @@ -113,11 +114,11 @@ void func_80B1778C(EnTakaraMan* this, PlayState* play) { absYawDiff = ABS(yawDiff); if (absYawDiff < 0x4300) { if (play->roomCtx.curRoom.num != this->originalRoomNum) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unk_218 = 0; } else { if (!this->unk_218) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->unk_218 = 1; } Actor_OfferTalk(&this->actor, play, 100.0f); diff --git a/src/overlays/actors/ovl_En_Tana/z_en_tana.c b/src/overlays/actors/ovl_En_Tana/z_en_tana.c index 1bb12bd048..76fa8b7019 100644 --- a/src/overlays/actors/ovl_En_Tana/z_en_tana.c +++ b/src/overlays/actors/ovl_En_Tana/z_en_tana.c @@ -7,7 +7,7 @@ #include "z_en_tana.h" #include "assets/objects/object_shop_dungen/object_shop_dungen.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnTana_Init(Actor* thisx, PlayState* play); void EnTana_Destroy(Actor* thisx, PlayState* play); @@ -63,7 +63,7 @@ void EnTana_Init(Actor* thisx, PlayState* play) { PRINTF("☆☆☆ %s ☆☆☆\n", sShelfTypes[thisx->params]); Actor_SetScale(thisx, 1.0f); - thisx->flags &= ~ACTOR_FLAG_0; + thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; thisx->draw = sDrawFuncs[thisx->params]; } 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 060b25db1b..44db5bb080 100644 --- a/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -7,7 +7,7 @@ #include "z_en_test.h" #include "assets/objects/object_sk2/object_sk2.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) void EnTest_Init(Actor* thisx, PlayState* play); void EnTest_Destroy(Actor* thisx, PlayState* play); @@ -429,7 +429,7 @@ void EnTest_SetupWaitGround(EnTest* this) { this->timer = 15; this->actor.scale.y = 0.0f; this->actor.world.pos.y = this->actor.home.pos.y - 3.5f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnTest_SetupAction(this, EnTest_WaitGround); } @@ -459,7 +459,7 @@ void EnTest_SetupWaitAbove(EnTest* this) { this->unk_7C8 = 0; this->actor.world.pos.y = this->actor.home.pos.y + 150.0f; Actor_SetScale(&this->actor, 0.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnTest_SetupAction(this, EnTest_WaitAbove); } @@ -469,7 +469,7 @@ void EnTest_WaitAbove(EnTest* this, PlayState* play) { if ((this->actor.xzDistToPlayer < 200.0f) && (ABS(this->actor.yDistToPlayer) < 450.0f)) { EnTest_SetupAction(this, EnTest_Fall); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer; Actor_SetScale(&this->actor, 0.015f); } @@ -1067,7 +1067,7 @@ void EnTest_JumpBack(EnTest* this, PlayState* play) { this->timer = (Rand_ZeroOne() * 5.0f) + 5.0f; } } - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } } else if (this->skelAnime.curFrame == (this->skelAnime.endFrame - 4.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); @@ -1489,7 +1489,7 @@ void func_80862DBC(EnTest* this, PlayState* play) { this->swordState = -1; } - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (this->actor.params == STALFOS_TYPE_5) { Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_PROP); @@ -1518,7 +1518,7 @@ void func_80862E6C(EnTest* this, PlayState* play) { } this->actor.child = NULL; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; EnTest_SetupJumpBack(this); } else if ((this->actor.params == STALFOS_TYPE_5) && !Actor_FindNearby(play, &this->actor, ACTOR_EN_TEST, ACTORCAT_ENEMY, 8000.0f)) { @@ -1537,7 +1537,7 @@ void func_80862FA8(EnTest* this, PlayState* play) { Animation_PlayOnce(&this->skelAnime, &gStalfosFallOverBackwardsAnim); Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_DEAD); this->unk_7DE = 0; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.colorFilterTimer = 0; this->actor.speed = 0.0f; @@ -1571,7 +1571,7 @@ void func_808630F0(EnTest* this, PlayState* play) { this->actor.speed = 0.0f; if (this->actor.params <= STALFOS_TYPE_CEILING) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnTest_SetupAction(this, func_8086318C); } else { func_80862DBC(this, play); @@ -1811,10 +1811,10 @@ void EnTest_Update(Actor* thisx, PlayState* play) { if (this->actor.params == STALFOS_TYPE_INVISIBLE) { if (play->actorCtx.lensActive) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_REACT_TO_LENS; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_REACT_TO_LENS; this->actor.shape.shadowDraw = ActorShadow_DrawFeet; } else { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_REACT_TO_LENS); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_REACT_TO_LENS); this->actor.shape.shadowDraw = NULL; } } diff --git a/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/src/overlays/actors/ovl_En_Tg/z_en_tg.c index 9baf1800f1..edd86bd1a5 100644 --- a/src/overlays/actors/ovl_En_Tg/z_en_tg.c +++ b/src/overlays/actors/ovl_En_Tg/z_en_tg.c @@ -7,7 +7,7 @@ #include "z_en_tg.h" #include "assets/objects/object_mu/object_mu.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnTg_Init(Actor* thisx, PlayState* play); void EnTg_Destroy(Actor* thisx, PlayState* 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 6533739312..09914205a0 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -10,7 +10,7 @@ #include "terminal.h" #include "assets/objects/object_tite/object_tite.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) // EnTite_Idle #define vIdleTimer actionVar1 diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 87fecc292c..27eb74355d 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -8,7 +8,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_tk/object_tk.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnTk_Init(Actor* thisx, PlayState* play); void EnTk_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c index 5153837a76..9d88eda5b8 100644 --- a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c +++ b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c @@ -7,7 +7,7 @@ #include "z_en_torch2.h" #include "assets/objects/object_torch2/object_torch2.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) typedef enum EnTorch2ActionStates { /* 0 */ ENTORCH2_WAIT, @@ -327,7 +327,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { player->skelAnime.curFrame = 3.0f; sStickAngle = this->actor.yawTowardsPlayer + 0x8000; sSwordJumpTimer = sSwordJumpState = 0; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } else if (sSwordJumpState == 1) { if (sSwordJumpTimer < 16) { EnTorch2_SwingSword(play, input, this); @@ -360,7 +360,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { sStickTilt = 0.0f; sSwordJumpState = 1; player->stateFlags3 |= PLAYER_STATE3_2; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; sSwordJumpTimer = 27; player->meleeWeaponState = 0; player->speedXZ = 0.0f; @@ -486,7 +486,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { input->cur.stick_x = input->cur.stick_y = 0; if ((this->invincibilityTimer > 0) && (this->actor.world.pos.y < (this->actor.floorHeight - 160.0f))) { this->stateFlags3 &= ~PLAYER_STATE3_0; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->invincibilityTimer = 0; this->actor.velocity.y = 0.0f; this->actor.world.pos.y = sSpawnPoint.y + 40.0f; @@ -572,7 +572,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { if (!Actor_ApplyDamage(&this->actor)) { func_800F5B58(); - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); this->unk_8A1 = 2; this->unk_8A4 = 6.0f; this->unk_8A8 = 6.0f; @@ -592,7 +592,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_XLU, 80); } } else { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unk_8A0 = this->actor.colChkInfo.damage; this->unk_8A1 = 1; this->unk_8A8 = 6.0f; diff --git a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c index 1cf867f61a..d450acc0bd 100644 --- a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c +++ b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c @@ -7,7 +7,7 @@ #include "z_en_toryo.h" #include "assets/objects/object_toryo/object_toryo.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void EnToryo_Init(Actor* thisx, PlayState* play); void EnToryo_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c index 89480d2213..1257b7b62e 100644 --- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c +++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c @@ -153,7 +153,7 @@ void EnTp_Init(Actor* thisx, PlayState* play2) { this->collider.elements[0].dim.modelSphere.radius = this->collider.elements[0].dim.worldSphere.radius = 8; EnTp_Head_SetupWait(this); this->actor.focus.pos = this->actor.world.pos; - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4; Actor_SetScale(&this->actor, 1.5f); for (i = 0; i <= 6; i++) { @@ -170,7 +170,7 @@ void EnTp_Init(Actor* thisx, PlayState* play2) { Actor_SetScale(&next->actor, 0.3f); if (i == 2) { - next->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4; + next->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4; next->unk_150 = 1; // Why? } @@ -211,13 +211,13 @@ void EnTp_Tail_FollowHead(EnTp* this, PlayState* play) { } } else { if (this->unk_150 != 0) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; } if (this->head->unk_150 != 0) { this->actor.speed = this->red = this->actor.velocity.y = this->heightPhase = 0.0f; if (this->actor.world.pos.y < this->head->actor.home.pos.y) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } this->actor.world.pos = this->actor.parent->prevPos; @@ -350,7 +350,7 @@ void EnTp_Fragment_SetupFade(EnTp* this) { this->actor.velocity.x = (Rand_ZeroOne() - 0.5f) * 1.5f; this->actor.velocity.y = (Rand_ZeroOne() - 0.5f) * 1.5f; this->actor.velocity.z = (Rand_ZeroOne() - 0.5f) * 1.5f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; EnTp_SetupAction(this, EnTp_Fragment_Fade); } @@ -594,7 +594,7 @@ void EnTp_UpdateDamage(EnTp* this, PlayState* play) { } if (this->actor.colChkInfo.health == 0) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; head = this->head; if (head->actor.params <= TAILPASARAN_HEAD) { 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 ddf25dac22..e32db45969 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 @@ -229,7 +229,7 @@ void EnTuboTrap_WaitForProximity(EnTuboTrap* this, PlayState* play) { if (this->actor.xzDistToPlayer < 200.0f && this->actor.world.pos.y <= player->actor.world.pos.y) { Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_ENEMY); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; targetHeight = 40.0f + -10.0f * gSaveContext.save.linkAge; this->targetY = player->actor.world.pos.y + targetHeight; diff --git a/src/overlays/actors/ovl_En_Vali/z_en_vali.c b/src/overlays/actors/ovl_En_Vali/z_en_vali.c index b6509f6d4e..8654a0dc08 100644 --- a/src/overlays/actors/ovl_En_Vali/z_en_vali.c +++ b/src/overlays/actors/ovl_En_Vali/z_en_vali.c @@ -7,7 +7,7 @@ #include "z_en_vali.h" #include "assets/objects/object_vali/object_vali.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_IGNORE_QUAKE) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_IGNORE_QUAKE) void EnVali_Init(Actor* thisx, PlayState* play); void EnVali_Destroy(Actor* thisx, PlayState* play); @@ -154,7 +154,7 @@ void EnVali_Init(Actor* thisx, PlayState* play) { EnVali_SetupLurk(this); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.floorHeight = BgCheck_EntityRaycastDown4(&play->colCtx, &this->actor.floorPoly, &bgId, &this->actor, &this->actor.world.pos); this->actor.params = BARI_TYPE_NORMAL; @@ -181,7 +181,7 @@ void EnVali_SetupLurk(EnVali* this) { void EnVali_SetupDropAppear(EnVali* this) { this->actor.draw = EnVali_Draw; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.velocity.y = 1.0f; this->actionFunc = EnVali_DropAppear; } @@ -209,7 +209,7 @@ void EnVali_SetupFloatIdle(EnVali* this) { */ void EnVali_SetupAttacked(EnVali* this) { this->lightningTimer = 20; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->bodyCollider.base.acFlags &= ~AC_ON; this->actionFunc = EnVali_Attacked; } @@ -248,7 +248,7 @@ void EnVali_SetupDivideAndDie(EnVali* this, PlayState* play) { this->timer = Rand_S16Offset(10, 10); this->bodyCollider.base.acFlags &= ~AC_ON; SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 40, NA_SE_EN_BARI_SPLIT); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.draw = NULL; this->actionFunc = EnVali_DivideAndDie; } @@ -275,7 +275,7 @@ void EnVali_SetupFrozen(EnVali* this) { void EnVali_SetupReturnToLurk(EnVali* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gBariLurkingAnim, 10.0f); this->actor.flags |= ACTOR_FLAG_4; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnVali_ReturnToLurk; } @@ -361,7 +361,7 @@ void EnVali_Attacked(EnVali* this, PlayState* play) { EnVali_DischargeLightning(this, play); if (this->lightningTimer == 0) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->bodyCollider.base.acFlags |= AC_ON; if (this->actor.params == BARI_TYPE_SWORD_DAMAGE) { EnVali_SetupRetaliate(this); @@ -502,7 +502,7 @@ void EnVali_UpdateDamage(EnVali* this, PlayState* play) { if (Actor_ApplyDamage(&this->actor) == 0) { Actor_PlaySfx(&this->actor, NA_SE_EN_BARI_DEAD); Enemy_StartFinishingBlow(play, &this->actor); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else if ((this->actor.colChkInfo.damageEffect != BARI_DMGEFF_STUN) && (this->actor.colChkInfo.damageEffect != BARI_DMGEFF_SLINGSHOT)) { Actor_PlaySfx(&this->actor, NA_SE_EN_BARI_DAMAGE); diff --git a/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/src/overlays/actors/ovl_En_Vm/z_en_vm.c index f03b0b3500..d2e94c1e4e 100644 --- a/src/overlays/actors/ovl_En_Vm/z_en_vm.c +++ b/src/overlays/actors/ovl_En_Vm/z_en_vm.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Bom/z_en_bom.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4) void EnVm_Init(Actor* thisx, PlayState* play); void EnVm_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index 8bcb2b4e6d..51751a2f53 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -8,7 +8,7 @@ #include "assets/objects/object_wallmaster/object_wallmaster.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) #define TIMER_SCALE ((f32)OS_CLOCK_RATE / 10000000000) @@ -150,7 +150,7 @@ void EnWallmas_Destroy(Actor* thisx, PlayState* play) { void EnWallmas_TimerInit(EnWallmas* this, PlayState* play) { Player* player = GET_PLAYER(play); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.flags |= ACTOR_FLAG_5; this->timer = 0x82; this->actor.velocity.y = 0.0f; @@ -171,7 +171,7 @@ void EnWallmas_SetupDrop(EnWallmas* this, PlayState* play) { this->actor.world.pos.y = player->actor.world.pos.y + 300.0f; this->actor.world.rot.y = player->actor.shape.rot.y + 0x8000; this->actor.floorHeight = player->actor.floorHeight; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.flags &= ~ACTOR_FLAG_5; this->actionFunc = EnWallmas_Drop; } @@ -266,7 +266,7 @@ void EnWallmas_SetupTakePlayer(EnWallmas* this, PlayState* play) { void EnWallmas_ProximityOrSwitchInit(EnWallmas* this) { this->timer = 0; this->actor.draw = NULL; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (this->actor.params == WMT_PROXIMITY) { this->actionFunc = EnWallmas_WaitForProximity; } else { @@ -512,7 +512,7 @@ void EnWallmas_ColUpdate(EnWallmas* this, PlayState* play) { if (Actor_ApplyDamage(&this->actor) == 0) { Enemy_StartFinishingBlow(play, &this->actor); Actor_PlaySfx(&this->actor, NA_SE_EN_FALL_DEAD); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { if (this->actor.colChkInfo.damage != 0) { Actor_PlaySfx(&this->actor, NA_SE_EN_FALL_DAMAGE); diff --git a/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c b/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c index 254d105224..908a0d93d0 100644 --- a/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c +++ b/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c @@ -53,7 +53,7 @@ void EnWeatherTag_Destroy(Actor* thisx, PlayState* play) { void EnWeatherTag_Init(Actor* thisx, PlayState* play) { EnWeatherTag* this = (EnWeatherTag*)thisx; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; switch (PARAMS_GET_U(this->actor.params, 0, 4)) { case EN_WEATHER_TAG_TYPE_CLOUDY_MARKET: 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 35d7d22e86..2a710a3643 100644 --- a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c +++ b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c @@ -7,7 +7,7 @@ #include "z_en_weiyer.h" #include "assets/objects/object_ei/object_ei.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) void EnWeiyer_Init(Actor* thisx, PlayState* play); void EnWeiyer_Destroy(Actor* thisx, PlayState* play); @@ -571,7 +571,7 @@ void func_80B3368C(EnWeiyer* this, PlayState* play) { } else if (Actor_ApplyDamage(&this->actor) == 0) { Enemy_StartFinishingBlow(play, &this->actor); Actor_PlaySfx(&this->actor, NA_SE_EN_EIER_DEAD); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; func_80B32724(this); } else { func_80B325A0(this); diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c index bc7d78e8ff..aff693da0e 100644 --- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Encount1/z_en_encount1.h" #include "assets/objects/object_wf/object_wf.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) void EnWf_Init(Actor* thisx, PlayState* play); void EnWf_Destroy(Actor* thisx, PlayState* play); @@ -372,7 +372,7 @@ void EnWf_SetupWaitToAppear(EnWf* this) { this->actionTimer = 20; this->unk_300 = false; this->action = WOLFOS_ACTION_WAIT_TO_APPEAR; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.scale.y = 0.0f; this->actor.gravity = 0.0f; EnWf_SetupAction(this, EnWf_WaitToAppear); @@ -384,7 +384,7 @@ void EnWf_WaitToAppear(EnWf* this, PlayState* play) { if (this->actor.xzDistToPlayer < 240.0f) { this->actionTimer = 5; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; if ((this->actor.params != WOLFOS_NORMAL) && (this->switchFlag != 0xFF)) { func_800F5ACC(NA_BGM_MINI_BOSS); @@ -1191,7 +1191,7 @@ void EnWf_SetupDie(EnWf* this) { } this->action = WOLFOS_ACTION_DIE; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionTimer = this->skelAnime.animLength; Actor_PlaySfx(&this->actor, NA_SE_EN_WOLFOS_DEAD); EnWf_SetupAction(this, EnWf_Die); diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c index 94e576c06d..f95aae46b1 100644 --- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c +++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c @@ -123,7 +123,7 @@ void EnWonderItem_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(GREEN) T("☆☆☆☆☆ 不思議不思議まか不思議 \t ☆☆☆☆☆ %x\n", "☆☆☆☆☆ Mysterious mystery, very mysterious \t ☆☆☆☆☆ %x\n") VT_RST, this->actor.params); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->wonderMode = PARAMS_GET_U(this->actor.params, 11, 5); this->itemDrop = PARAMS_GET_U(this->actor.params, 6, 5); diff --git a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c index 40bbd6779f..ffda29fcd5 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c @@ -7,7 +7,7 @@ #include "z_en_wonder_talk.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_27) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_LOCK_ON_DISABLED) void EnWonderTalk_Init(Actor* thisx, PlayState* play); void EnWonderTalk_Destroy(Actor* thisx, PlayState* play); @@ -143,7 +143,7 @@ void func_80B3943C(EnWonderTalk* this, PlayState* play) { this->actionFunc = func_80B395F0; } else { if (this->switchFlag >= 0) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Flags_SetSwitch(play, this->switchFlag); } this->actionFunc = func_80B391CC; @@ -175,7 +175,7 @@ void func_80B3943C(EnWonderTalk* this, PlayState* play) { void func_80B395F0(EnWonderTalk* this, PlayState* play) { if (this->unk_156 == Message_GetState(&play->msgCtx) && Message_ShouldAdvance(play)) { if (this->switchFlag >= 0) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Flags_SetSwitch(play, this->switchFlag); } switch (this->unk_150) { diff --git a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c index 918b07b256..cd012962a5 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c @@ -7,7 +7,7 @@ #include "z_en_wonder_talk2.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_27) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_LOCK_ON_DISABLED) void EnWonderTalk2_Init(Actor* thisx, PlayState* play); void EnWonderTalk2_Destroy(Actor* thisx, PlayState* play); @@ -91,7 +91,7 @@ void EnWonderTalk2_Init(Actor* thisx, PlayState* play) { this->talkMode = 4; } if (this->talkMode == 3) { - this->actor.flags &= ~ACTOR_FLAG_27; + this->actor.flags &= ~ACTOR_FLAG_LOCK_ON_DISABLED; this->actionFunc = EnWonderTalk2_DoNothing; } else { this->actionFunc = func_80B3A10C; @@ -114,7 +114,7 @@ void func_80B3A15C(EnWonderTalk2* this, PlayState* play) { this->unk_158++; if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) { if (!this->unk_15A) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unk_15A = true; } } else if (Actor_TalkOfferAccepted(&this->actor, play)) { @@ -193,7 +193,7 @@ void func_80B3A3D4(EnWonderTalk2* this, PlayState* play) { if (this->talkMode == 4) { this->unk_15A = true; } - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_4); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4); Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_7); this->unk_156 = true; this->actionFunc = func_80B3A4F8; @@ -208,7 +208,7 @@ void func_80B3A4F8(EnWonderTalk2* this, PlayState* play) { this->unk_158++; if (this->switchFlag >= 0 && Flags_GetSwitch(play, this->switchFlag)) { if (!this->unk_15A) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unk_15A = true; } } else if ((this->talkMode != 4) || !this->unk_15A) { @@ -256,7 +256,7 @@ void func_80B3A4F8(EnWonderTalk2* this, PlayState* play) { if (!this->unk_156) { Message_StartTextbox(play, this->actor.textId, NULL); Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_8); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_4; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4; this->actionFunc = func_80B3A3D4; } 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 03a7ffd32d..d3f45ab15a 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -2207,7 +2207,7 @@ void EnXc_SetupDialogueAction(EnXc* this, PlayState* play) { this->action = SHEIK_ACTION_IN_DIALOGUE; } else { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; if (INV_CONTENT(ITEM_HOOKSHOT) != ITEM_NONE) { this->actor.textId = 0x7010; } else { @@ -2220,7 +2220,7 @@ void EnXc_SetupDialogueAction(EnXc* this, PlayState* play) { void func_80B41798(EnXc* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { this->action = SHEIK_ACTION_BLOCK_PEDESTAL; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); } } diff --git a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c index 45c57482d2..e45d92ba27 100644 --- a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c +++ b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c @@ -80,7 +80,7 @@ void EnYabusameMark_Init(Actor* thisx, PlayState* play) { PRINTF("\n\n"); PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ やぶさめまと ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->typeIndex = this->actor.params; this->actor.attentionRangeType = ATTENTION_RANGE_5; PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 種類インデックス \t ☆☆☆☆☆ %d\n" VT_RST, this->typeIndex); diff --git a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c index 7dfc68bebd..02196544f2 100644 --- a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c +++ b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c @@ -80,7 +80,7 @@ void func_80B43A94(EnYukabyun* this, PlayState* play) { this->unk_150--; } if (this->unk_150 == 0) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_IGNORE_QUAKE; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_IGNORE_QUAKE; this->actionfunc = func_80B43AD4; } } @@ -122,7 +122,7 @@ void EnYukabyun_Update(Actor* thisx, PlayState* play) { this->collider.base.atFlags &= ~AT_HIT; this->collider.base.acFlags &= ~AC_HIT; this->collider.base.ocFlags1 &= ~OC1_HIT; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 30, NA_SE_EN_OCTAROCK_ROCK); this->actionfunc = EnYukabyun_Break; } diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index bc52b230de..f945ac7a35 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -7,7 +7,7 @@ #include "z_en_zf.h" #include "assets/objects/object_zf/object_zf.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4) void EnZf_Init(Actor* thisx, PlayState* play); void EnZf_Destroy(Actor* thisx, PlayState* play); @@ -648,7 +648,7 @@ void EnZf_SetupDropIn(EnZf* this) { this->hopAnimIndex = 1; this->action = ENZF_ACTION_DROP_IN; this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer; EnZf_SetupAction(this, EnZf_DropIn); } @@ -656,7 +656,7 @@ void EnZf_SetupDropIn(EnZf* this) { void EnZf_DropIn(EnZf* this, PlayState* play) { if (this->unk_3F0 == 1) { Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_CRY); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; if (this->actor.params == ENZF_TYPE_LIZALFOS_MINIBOSS_A) { func_800F5ACC(NA_BGM_MINI_BOSS); @@ -668,7 +668,7 @@ void EnZf_DropIn(EnZf* this, PlayState* play) { this->unk_3F0--; } else if (this->actor.xzDistToPlayer <= 160.0f) { this->unk_3F0 = 0; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_CRY); } @@ -1926,7 +1926,7 @@ void EnZf_SetupDie(EnZf* this) { } this->action = ENZF_ACTION_DIE; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; if (D_80B4A1B4 != -1) { if (this->actor.prev != NULL) { 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 2701f49a6e..5c756b5bb5 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -7,7 +7,7 @@ #include "z_en_zl1.h" #include "assets/objects/object_zl1/object_zl1.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) void EnZl1_Init(Actor* thisx, PlayState* play); void EnZl1_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c index 52c65cbca6..cd177f338d 100644 --- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c +++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c @@ -1013,7 +1013,7 @@ void func_80B55780(EnZl3* this, PlayState* play) { this->drawConfig = 1; PRINTF("ゼルダ姫のEn_Zl3_Actor_inFinal2_Initは通った!!!!!!!!!!!!!!!!!!!!!!!!!\n"); EnZl3_setMouthIndex(this, 1); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void func_80B55808(EnZl3* this) { @@ -1112,8 +1112,8 @@ void func_80B55C4C(EnZl3* this, s32 arg1) { void func_80B55C70(EnZl3* this) { func_80B54E14(this, &gZelda2Anime2Anim_008684, 2, -8.0f, 0); this->action = 12; - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } void func_80B55CCC(EnZl3* this, s32 arg1) { @@ -1126,20 +1126,20 @@ void func_80B55D00(EnZl3* this, PlayState* play) { if (Actor_TalkOfferAccepted(&this->actor, play)) { this->action = 13; } else if (ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) <= 0x4300) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.textId = 0x70D5; Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); } else { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } void func_80B55DB0(EnZl3* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->action = 12; } } @@ -1185,14 +1185,14 @@ void func_80B55F6C(EnZl3* this, PlayState* play) { BossGanon2* bossGanon2 = func_80B53488(this, play); if ((bossGanon2 != NULL) && (bossGanon2->unk_324 <= (10.0f / 81.0f))) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.textId = 0x7059; Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); } } else { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } @@ -1217,8 +1217,8 @@ void func_80B56090(EnZl3* this, s32 arg1) { void func_80B56108(EnZl3* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->action = 16; } } @@ -1247,22 +1247,22 @@ void func_80B56214(EnZl3* this, PlayState* play) { if (bossGanon2 != NULL) { if (bossGanon2->unk_324 <= (10.0f / 81.0f)) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.textId = 0x7059; Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); } } } else { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } void func_80B562F4(EnZl3* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { - this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->action = 20; } } @@ -1701,7 +1701,7 @@ void func_80B57350(EnZl3* this, PlayState* play) { s16 temp_v0 = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; if (ABS(temp_v0) <= 0x4300) { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; this->actor.textId = func_80B572F0(play); Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); } @@ -2542,7 +2542,7 @@ void func_80B59828(EnZl3* this, PlayState* play) { if (func_80B59698(this, play) || (!func_80B56EE4(this, play) && func_80B57890(this, play))) { func_80B54E14(this, &gZelda2Anime2Anim_009FBC, 0, 0.0f, 0); - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; func_80B56F10(this, play); newRotY = func_80B571A8(this); this->actor.shape.rot.y = newRotY; 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 477dffb9dd..05317ed7ae 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -8,7 +8,7 @@ #include "assets/objects/object_zl4/object_zl4.h" #include "assets/scenes/indoors/nakaniwa/nakaniwa_scene.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) typedef enum EnZl4CutsceneState { /* 0 */ ZL4_CS_WAIT, 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 fb45d20bc4..38fbdb3013 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -7,7 +7,7 @@ #include "z_en_zo.h" #include "assets/objects/object_zo/object_zo.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) typedef enum EnZoEffectType { /* 0 */ ENZO_EFFECT_NONE, @@ -604,7 +604,7 @@ void EnZo_Init(Actor* thisx, PlayState* play) { this->alpha = 255.0f; this->actionFunc = EnZo_Standing; } else { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnZo_Submerged; } } @@ -646,7 +646,7 @@ void EnZo_Surface(EnZo* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EV_OUT_OF_WATER); EnZo_SpawnSplashes(this); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENZO_ANIM_3); - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actionFunc = EnZo_TreadWater; this->actor.velocity.y = 0.0f; this->alpha = 255.0f; @@ -696,7 +696,7 @@ void EnZo_Dive(EnZo* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { Actor_PlaySfx(&this->actor, NA_SE_EV_DIVE_WATER); EnZo_SpawnSplashes(this); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.velocity.y = -4.0f; this->skelAnime.playSpeed = 0.0f; } diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index f6e0f2875a..a6822e4a47 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -885,7 +885,7 @@ void Fishing_Init(Actor* thisx, PlayState* play2) { thisx->focus.pos = thisx->world.pos; thisx->focus.pos.y += 75.0f; - thisx->flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; if (sLinkAge != LINK_AGE_CHILD) { if (HIGH_SCORE(HS_FISHING) & HS_FISH_STOLE_HAT) { @@ -1031,7 +1031,7 @@ void Fishing_Init(Actor* thisx, PlayState* play2) { this->fishState = 100; Actor_ChangeCategory(play, &play->actorCtx, thisx, ACTORCAT_PROP); thisx->attentionRangeType = ATTENTION_RANGE_0; - thisx->flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; + thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; this->lightNode = LightContext_InsertLight(play, &play->lightCtx, &this->lightInfo); } else { this->fishState = 10; @@ -2908,7 +2908,7 @@ void Fishing_HandleAquariumDialog(Fishing* this, PlayState* play) { if (!this->isAquariumMessage) { if (this->aquariumWaitTimer == 0) { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; if (Actor_TalkOfferAccepted(&this->actor, play)) { sFishLengthToWeigh = sFishingRecordLength; @@ -2918,7 +2918,7 @@ void Fishing_HandleAquariumDialog(Fishing* this, PlayState* play) { } } else { this->aquariumWaitTimer--; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } else if (Actor_TextboxIsClosing(&this->actor, play)) { this->isAquariumMessage = false; @@ -2971,9 +2971,9 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { if ((D_80B7E0B0 != 0) || (sSubCamId != SUB_CAM_ID_DONE) || ((player->actor.world.pos.z > 1150.0f) && (this->fishState != 100))) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; if (sRodCastState != 0) { if (D_80B7E0B2 == 0) { this->actor.focus.pos = sLurePos; @@ -3195,7 +3195,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { if (sLureEquipped == FS_LURE_SINKING) { func_80B70ED4(this, input); } else { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } break; @@ -3232,7 +3232,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { if (sLureEquipped == FS_LURE_SINKING) { func_80B70ED4(this, input); } else { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } break; @@ -3278,7 +3278,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { this->fishTargetPos.z = Rand_ZeroFloat(50.0f); } - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; break; case -2: @@ -3316,7 +3316,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { } Math_ApproachF(&this->rotationStep, 2048.0f, 1.0f, 128.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } break; @@ -5196,9 +5196,9 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { SkelAnime_Update(&this->skelAnime); if ((sOwnerTheftTimer != 0) || (Message_GetState(&play->msgCtx) != TEXT_STATE_NONE)) { - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } else { - this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_5; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_5; } if ((this->actor.xzDistToPlayer < 120.0f) || (Message_GetState(&play->msgCtx) != TEXT_STATE_NONE)) { diff --git a/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c b/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c index f621c3c831..5803b0baf0 100644 --- a/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c +++ b/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c @@ -6,7 +6,7 @@ #include "z_item_inbox.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void ItemInbox_Init(Actor* thisx, PlayState* play); void ItemInbox_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c index e698b55d38..4c52b516e8 100644 --- a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c +++ b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c @@ -7,7 +7,7 @@ #include "z_obj_dekujr.h" #include "assets/objects/object_dekujr/object_dekujr.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void ObjDekujr_Init(Actor* thisx, PlayState* play); void ObjDekujr_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c index 70b09b053b..a1c5c95a1d 100644 --- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c +++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c @@ -315,7 +315,7 @@ void ObjSwitch_Init(Actor* thisx, PlayState* play) { } if (type == OBJSWITCH_TYPE_CRYSTAL_TARGETABLE) { - this->dyna.actor.flags |= ACTOR_FLAG_0; + this->dyna.actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->dyna.actor.attentionRangeType = ATTENTION_RANGE_4; } diff --git a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c index bef529675f..7e62bbb93b 100644 --- a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c +++ b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c @@ -7,7 +7,7 @@ #include "z_obj_timeblock.h" #include "assets/objects/object_timeblock/object_timeblock.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_4 | ACTOR_FLAG_25 | ACTOR_FLAG_27) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4 | ACTOR_FLAG_25 | ACTOR_FLAG_LOCK_ON_DISABLED) void ObjTimeblock_Init(Actor* thisx, PlayState* play); void ObjTimeblock_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c index 0deb125538..ed2eaa2df8 100644 --- a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c +++ b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c @@ -8,7 +8,7 @@ #include "assets/objects/object_timeblock/object_timeblock.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_4 | ACTOR_FLAG_25 | ACTOR_FLAG_27) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4 | ACTOR_FLAG_25 | ACTOR_FLAG_LOCK_ON_DISABLED) void ObjWarp2block_Init(Actor* thisx, PlayState* play2); void ObjWarp2block_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c index 34820860a5..b89dfcd5ef 100644 --- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c +++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c @@ -10,7 +10,7 @@ #include "assets/scenes/overworld/spot06/spot06_scene.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) void ShotSun_Init(Actor* thisx, PlayState* play); void ShotSun_Destroy(Actor* thisx, PlayState* play); @@ -71,12 +71,12 @@ void ShotSun_Init(Actor* thisx, PlayState* play) { this->actor.flags |= ACTOR_FLAG_4; this->actor.flags |= ACTOR_FLAG_25; this->actionFunc = ShotSun_UpdateFairySpawner; - this->actor.flags |= ACTOR_FLAG_27; + this->actor.flags |= ACTOR_FLAG_LOCK_ON_DISABLED; } else { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->actionFunc = ShotSun_UpdateHyliaSun; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 6317f9c5e9..5e72907780 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -2322,7 +2322,8 @@ s32 func_80833B2C(Player* this) { } s32 func_80833B54(Player* this) { - if ((this->focusActor != NULL) && CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2)) { + if ((this->focusActor != NULL) && + CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE)) { this->stateFlags1 |= PLAYER_STATE1_4; return 1; } @@ -3586,7 +3587,7 @@ void func_80836BEC(Player* this, PlayState* play) { holdTarget = (gSaveContext.zTargetSetting != 0) || (this->actor.category != ACTORCAT_PLAYER); this->stateFlags1 |= PLAYER_STATE1_15; - if ((actorToTarget != NULL) && !(actorToTarget->flags & ACTOR_FLAG_27)) { + if ((actorToTarget != NULL) && !(actorToTarget->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { if ((actorToTarget == this->focusActor) && (this->actor.category == ACTORCAT_PLAYER)) { actorToTarget = play->actorCtx.attention.arrowHoverActor; } @@ -3628,7 +3629,7 @@ void func_80836BEC(Player* this, PlayState* play) { if (this->focusActor != NULL) { this->stateFlags1 &= ~(PLAYER_STATE1_16 | PLAYER_STATE1_17); if ((this->stateFlags1 & PLAYER_STATE1_11) || - !CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2)) { + !CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE)) { this->stateFlags1 |= PLAYER_STATE1_16; } } else { @@ -5751,8 +5752,8 @@ s32 Player_ActionChange_4(Player* this, PlayState* play) { s32 sp28 = 0; s32 sp24; - sp24 = (sp30 != NULL) && - (CHECK_FLAG_ALL(sp30->flags, ACTOR_FLAG_0 | ACTOR_FLAG_18) || (sp30->naviEnemyId != NAVI_ENEMY_NONE)); + sp24 = (sp30 != NULL) && (CHECK_FLAG_ALL(sp30->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_18) || + (sp30->naviEnemyId != NAVI_ENEMY_NONE)); if (sp24 || (this->naviTextId != 0)) { sp28 = (this->naviTextId < 0) && ((ABS(this->naviTextId) & 0xFF00) != 0x200); @@ -5835,8 +5836,9 @@ s32 Player_ActionChange_0(Player* this, PlayState* play) { return 1; } - if ((this->focusActor != NULL) && (CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_18) || - (this->focusActor->naviEnemyId != NAVI_ENEMY_NONE))) { + if ((this->focusActor != NULL) && + (CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_18) || + (this->focusActor->naviEnemyId != NAVI_ENEMY_NONE))) { this->stateFlags2 |= PLAYER_STATE2_21; } else if ((this->naviTextId == 0) && !func_8008E9C4(this) && CHECK_BTN_ALL(sControlInput->press.button, BTN_CUP) && (R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && @@ -11923,7 +11925,7 @@ void Player_Action_8084B530(Player* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { this->actor.flags &= ~ACTOR_FLAG_TALK; - if (!CHECK_FLAG_ALL(this->talkActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2)) { + if (!CHECK_FLAG_ALL(this->talkActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE)) { this->stateFlags2 &= ~PLAYER_STATE2_13; } @@ -15434,7 +15436,7 @@ void func_80853148(PlayState* play, Actor* actor) { s32 pad; if ((this->talkActor != NULL) || (actor == this->naviActor) || - CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_18)) { + CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_18)) { actor->flags |= ACTOR_FLAG_TALK; } From 40372d72b71cbe3720e528a7ae762497c42c26f1 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 8 Sep 2024 03:00:05 +0200 Subject: [PATCH 47/86] Move some function declarations to `z64{interface,light,message}.h` (#2166) --- include/functions.h | 65 ++---------------------------------------- include/z64interface.h | 34 ++++++++++++++++++++++ include/z64light.h | 25 ++++++++++++++++ include/z64message.h | 14 +++++++++ 4 files changed, 75 insertions(+), 63 deletions(-) diff --git a/include/functions.h b/include/functions.h index 6608ce1814..e134758eab 100644 --- a/include/functions.h +++ b/include/functions.h @@ -741,27 +741,7 @@ void Health_UpdateMeter(PlayState* play); void Health_DrawMeter(PlayState* play); void Health_UpdateBeatingHeart(PlayState* play); u32 Health_IsCritical(void); -void Lights_PointSetInfo(LightInfo* info, s16 x, s16 y, s16 z, u8 r, u8 g, u8 b, s16 radius, s32 type); -void Lights_PointNoGlowSetInfo(LightInfo* info, s16 x, s16 y, s16 z, u8 r, u8 g, u8 b, s16 radius); -void Lights_PointGlowSetInfo(LightInfo* info, s16 x, s16 y, s16 z, u8 r, u8 g, u8 b, s16 radius); -void Lights_PointSetColorAndRadius(LightInfo* info, u8 r, u8 g, u8 b, s16 radius); -void Lights_DirectionalSetInfo(LightInfo* info, s8 x, s8 y, s8 z, u8 r, u8 g, u8 b); -void Lights_Reset(Lights* lights, u8 ambentR, u8 ambentG, u8 ambentB); -void Lights_Draw(Lights* lights, GraphicsContext* gfxCtx); -void Lights_BindAll(Lights* lights, LightNode* listHead, Vec3f* vec); -void LightContext_Init(PlayState* play, LightContext* lightCtx); -void LightContext_SetAmbientColor(LightContext* lightCtx, u8 r, u8 g, u8 b); -void LightContext_SetFog(LightContext* lightCtx, u8 r, u8 g, u8 b, s16 fogNear, s16 zFar); -Lights* LightContext_NewLights(LightContext* lightCtx, GraphicsContext* gfxCtx); -void LightContext_InitList(PlayState* play, LightContext* lightCtx); -void LightContext_DestroyList(PlayState* play, LightContext* lightCtx); -LightNode* LightContext_InsertLight(PlayState* play, LightContext* lightCtx, LightInfo* info); -void LightContext_RemoveLight(PlayState* play, LightContext* lightCtx, LightNode* node); -Lights* Lights_NewAndDraw(GraphicsContext* gfxCtx, u8 ambientR, u8 ambientG, u8 ambientB, u8 numLights, u8 r, u8 g, - u8 b, s8 x, s8 y, s8 z); -Lights* Lights_New(GraphicsContext* gfxCtx, u8 ambientR, u8 ambientG, u8 ambientB); -void Lights_GlowCheck(PlayState* play); -void Lights_DrawGlow(PlayState* play); + void* ZeldaArena_Malloc(u32 size); void* ZeldaArena_MallocR(u32 size); void* ZeldaArena_Realloc(void* ptr, u32 newSize); @@ -813,36 +793,7 @@ void Map_Destroy(PlayState* play); void Map_Init(PlayState* play); void Minimap_Draw(PlayState* play); void Map_Update(PlayState* play); -void Interface_ChangeHudVisibilityMode(u16 hudVisibilityMode); -void Interface_SetSceneRestrictions(PlayState* play); -void Inventory_SwapAgeEquipment(void); -void Interface_InitHorsebackArchery(PlayState* play); -void func_800849EC(PlayState* play); -void Interface_LoadItemIcon1(PlayState* play, u16 button); -void Interface_LoadItemIcon2(PlayState* play, u16 button); -void func_80084BF4(PlayState* play, u16 flag); -u8 Item_Give(PlayState* play, u8 item); -u8 Item_CheckObtainability(u8 item); -void Inventory_DeleteItem(u16 item, u16 invSlot); -s32 Inventory_ReplaceItem(PlayState* play, u16 oldItem, u16 newItem); -s32 Inventory_HasEmptyBottle(void); -s32 Inventory_HasSpecificBottle(u8 bottleItem); -void Inventory_UpdateBottleItem(PlayState* play, u8 item, u8 button); -s32 Inventory_ConsumeFairy(PlayState* play); -void Interface_SetDoAction(PlayState* play, u16 action); -void Interface_SetNaviCall(PlayState* play, u16 naviCallState); -void Interface_LoadActionLabelB(PlayState* play, u16 action); -s32 Health_ChangeBy(PlayState* play, s16 amount); -void Rupees_ChangeBy(s16 rupeeChange); -void Inventory_ChangeAmmo(s16 item, s16 ammoChange); -void Magic_Fill(PlayState* play); -void Magic_Reset(PlayState* play); -s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type); -void Interface_SetSubTimer(s16 seconds); -void Interface_SetSubTimerToFinalSecond(PlayState* play); -void Interface_SetTimer(s16 seconds); -void Interface_Draw(PlayState* play); -void Interface_Update(PlayState* play); + Path* Path_GetByIndex(PlayState* play, s16 index, s16 max); f32 Path_OrientAndGetDistSq(Actor* actor, Path* path, s16 waypoint, s16* yaw); void Path_CopyLastPoint(Path* path, Vec3f* dest); @@ -1583,21 +1534,9 @@ s32 __osSpSetPc(void* pc); f32 absf(f32); void* memset(void* dest, int val, size_t len); void* memmove(void* dest, const void* src, size_t len); -void Message_UpdateOcarinaMemoryGame(PlayState* play); -u8 Message_ShouldAdvance(PlayState* play); -void Message_CloseTextbox(PlayState*); -void Message_StartTextbox(PlayState* play, u16 textId, Actor* actor); -void Message_ContinueTextbox(PlayState* play, u16 textId); -void Message_StartOcarina(PlayState* play, u16 ocarinaActionId); -void Message_StartOcarinaSunsSongDisabled(PlayState* play, u16 ocarinaActionId); -u8 Message_GetState(MessageContext* msgCtx); -void Message_Draw(PlayState* play); -void Message_Update(PlayState* play); -void Message_SetTables(void); void Interface_Destroy(PlayState* play); void Interface_Init(PlayState* play); -void Message_Init(PlayState* play); void Regs_InitData(PlayState* play); void Setup_Init(GameState* thisx); diff --git a/include/z64interface.h b/include/z64interface.h index ac5bfc8153..6ee09afe9b 100644 --- a/include/z64interface.h +++ b/include/z64interface.h @@ -1,8 +1,11 @@ #ifndef Z64INTERFACE_H #define Z64INTERFACE_H +#include "z64dma.h" #include "z64view.h" +struct PlayState; + extern u8 _icon_item_staticSegmentRomStart[]; extern u8 _icon_item_24_staticSegmentRomStart[]; @@ -242,4 +245,35 @@ typedef struct InterfaceContext { #define HEARTS_DROWN_ENV_G 0 #define HEARTS_DROWN_ENV_B 255 +void Interface_ChangeHudVisibilityMode(u16 hudVisibilityMode); +void Interface_SetSceneRestrictions(struct PlayState* play); +void Inventory_SwapAgeEquipment(void); +void Interface_InitHorsebackArchery(struct PlayState* play); +void func_800849EC(struct PlayState* play); +void Interface_LoadItemIcon1(struct PlayState* play, u16 button); +void Interface_LoadItemIcon2(struct PlayState* play, u16 button); +void func_80084BF4(struct PlayState* play, u16 flag); +u8 Item_Give(struct PlayState* play, u8 item); +u8 Item_CheckObtainability(u8 item); +void Inventory_DeleteItem(u16 item, u16 invSlot); +s32 Inventory_ReplaceItem(struct PlayState* play, u16 oldItem, u16 newItem); +s32 Inventory_HasEmptyBottle(void); +s32 Inventory_HasSpecificBottle(u8 bottleItem); +void Inventory_UpdateBottleItem(struct PlayState* play, u8 item, u8 button); +s32 Inventory_ConsumeFairy(struct PlayState* play); +void Interface_SetDoAction(struct PlayState* play, u16 action); +void Interface_SetNaviCall(struct PlayState* play, u16 naviCallState); +void Interface_LoadActionLabelB(struct PlayState* play, u16 action); +s32 Health_ChangeBy(struct PlayState* play, s16 amount); +void Rupees_ChangeBy(s16 rupeeChange); +void Inventory_ChangeAmmo(s16 item, s16 ammoChange); +void Magic_Fill(struct PlayState* play); +void Magic_Reset(struct PlayState* play); +s32 Magic_RequestChange(struct PlayState* play, s16 amount, s16 type); +void Interface_SetSubTimer(s16 seconds); +void Interface_SetSubTimerToFinalSecond(struct PlayState* play); +void Interface_SetTimer(s16 seconds); +void Interface_Draw(struct PlayState* play); +void Interface_Update(struct PlayState* play); + #endif diff --git a/include/z64light.h b/include/z64light.h index 5b20af3142..cb666ff752 100644 --- a/include/z64light.h +++ b/include/z64light.h @@ -6,6 +6,9 @@ #include "z64math.h" #include "color.h" +struct GraphicsContext; +struct PlayState; + typedef struct LightPoint { /* 0x0 */ s16 x; /* 0x2 */ s16 y; @@ -62,4 +65,26 @@ typedef enum LightType { typedef void (*LightsBindFunc)(Lights* lights, LightParams* params, Vec3f* vec); +void Lights_PointSetInfo(LightInfo* info, s16 x, s16 y, s16 z, u8 r, u8 g, u8 b, s16 radius, s32 type); +void Lights_PointNoGlowSetInfo(LightInfo* info, s16 x, s16 y, s16 z, u8 r, u8 g, u8 b, s16 radius); +void Lights_PointGlowSetInfo(LightInfo* info, s16 x, s16 y, s16 z, u8 r, u8 g, u8 b, s16 radius); +void Lights_PointSetColorAndRadius(LightInfo* info, u8 r, u8 g, u8 b, s16 radius); +void Lights_DirectionalSetInfo(LightInfo* info, s8 x, s8 y, s8 z, u8 r, u8 g, u8 b); +void Lights_Reset(Lights* lights, u8 ambentR, u8 ambentG, u8 ambentB); +void Lights_Draw(Lights* lights, struct GraphicsContext* gfxCtx); +void Lights_BindAll(Lights* lights, LightNode* listHead, Vec3f* vec); +void LightContext_Init(struct PlayState* play, LightContext* lightCtx); +void LightContext_SetAmbientColor(LightContext* lightCtx, u8 r, u8 g, u8 b); +void LightContext_SetFog(LightContext* lightCtx, u8 r, u8 g, u8 b, s16 fogNear, s16 zFar); +Lights* LightContext_NewLights(LightContext* lightCtx, struct GraphicsContext* gfxCtx); +void LightContext_InitList(struct PlayState* play, LightContext* lightCtx); +void LightContext_DestroyList(struct PlayState* play, LightContext* lightCtx); +LightNode* LightContext_InsertLight(struct PlayState* play, LightContext* lightCtx, LightInfo* info); +void LightContext_RemoveLight(struct PlayState* play, LightContext* lightCtx, LightNode* node); +Lights* Lights_NewAndDraw(struct GraphicsContext* gfxCtx, u8 ambientR, u8 ambientG, u8 ambientB, u8 numLights, u8 r, u8 g, + u8 b, s8 x, s8 y, s8 z); +Lights* Lights_New(struct GraphicsContext* gfxCtx, u8 ambientR, u8 ambientG, u8 ambientB); +void Lights_GlowCheck(struct PlayState* play); +void Lights_DrawGlow(struct PlayState* play); + #endif diff --git a/include/z64message.h b/include/z64message.h index d0df11a16a..9a073cfa03 100644 --- a/include/z64message.h +++ b/include/z64message.h @@ -5,6 +5,7 @@ struct OcarinaStaff; struct Actor; +struct PlayState; typedef enum TextBoxIcon { /* 0 */ TEXTBOX_ICON_TRIANGLE, @@ -278,4 +279,17 @@ typedef struct MessageContext { /* 0xE410 */ u8 lastOcarinaButtonIndex; } MessageContext; // size = 0xE418 +void Message_UpdateOcarinaMemoryGame(struct PlayState* play); +u8 Message_ShouldAdvance(struct PlayState* play); +void Message_CloseTextbox(struct PlayState*); +void Message_StartTextbox(struct PlayState* play, u16 textId, struct Actor* actor); +void Message_ContinueTextbox(struct PlayState* play, u16 textId); +void Message_StartOcarina(struct PlayState* play, u16 ocarinaActionId); +void Message_StartOcarinaSunsSongDisabled(struct PlayState* play, u16 ocarinaActionId); +u8 Message_GetState(MessageContext* msgCtx); +void Message_Draw(struct PlayState* play); +void Message_Update(struct PlayState* play); +void Message_SetTables(void); +void Message_Init(struct PlayState* play); + #endif From 1332356e5c6c7f925a519fc8760149aa86d67f19 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 8 Sep 2024 04:28:46 +0200 Subject: [PATCH 48/86] Pause doc: Cursor drawing (#2159) * Pause doc: Cursor drawing * bss --- include/z64pause.h | 9 ++ src/code/z_parameter.c | 6 +- src/overlays/actors/ovl_Boss_Va/z_boss_va.c | 2 + src/overlays/actors/ovl_En_Xc/z_en_xc.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../ovl_kaleido_scope/z_kaleido_collect.c | 10 +- .../ovl_kaleido_scope/z_kaleido_equipment.c | 4 +- .../misc/ovl_kaleido_scope/z_kaleido_item.c | 10 +- .../misc/ovl_kaleido_scope/z_kaleido_map.c | 12 +- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 148 ++++++++++-------- .../misc/ovl_kaleido_scope/z_kaleido_scope.h | 2 +- tools/disasm/ntsc-1.2/functions.txt | 6 +- 12 files changed, 121 insertions(+), 92 deletions(-) diff --git a/include/z64pause.h b/include/z64pause.h index 12921fcd9f..d560963a12 100644 --- a/include/z64pause.h +++ b/include/z64pause.h @@ -96,6 +96,15 @@ typedef enum PauseMainState { /* 9 */ PAUSE_MAIN_STATE_9 } PauseMainState; +typedef enum PauseCursorQuad { + /* 0 */ PAUSE_QUAD_CURSOR_TL, + /* 1 */ PAUSE_QUAD_CURSOR_TR, + /* 2 */ PAUSE_QUAD_CURSOR_BL, + /* 3 */ PAUSE_QUAD_CURSOR_BR, + /* 4 */ PAUSE_QUAD_CURSOR_4, + /* 5 */ PAUSE_QUAD_CURSOR_MAX +} PauseCursorQuad; + typedef enum WorldMapPoint { /* 0 */ WORLD_MAP_POINT_HAUNTED_WASTELAND, /* 1 */ WORLD_MAP_POINT_GERUDOS_FORTRESS, diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 47ced85959..9cae1b69ee 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -3393,6 +3393,7 @@ void Interface_Draw(PlayState* play) { gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATERGBA_PRIM, G_CC_MODULATERGBA_PRIM); gSPMatrix(OVERLAY_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD); + // PAUSE_QUAD_CURSOR_4 pauseCtx->cursorVtx[16].v.ob[0] = pauseCtx->cursorVtx[18].v.ob[0] = pauseCtx->equipAnimX / 10; pauseCtx->cursorVtx[17].v.ob[0] = pauseCtx->cursorVtx[19].v.ob[0] = pauseCtx->cursorVtx[16].v.ob[0] + WREG(90) / 10; @@ -3403,7 +3404,7 @@ void Interface_Draw(PlayState* play) { if (pauseCtx->equipTargetItem < 0xBF) { // Normal Equip (icon goes from the inventory slot to the C button when equipping it) gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, pauseCtx->equipAnimAlpha); - gSPVertex(OVERLAY_DISP++, &pauseCtx->cursorVtx[16], 4, 0); + gSPVertex(OVERLAY_DISP++, &pauseCtx->cursorVtx[PAUSE_QUAD_CURSOR_4 * 4], 4, 0); gDPLoadTextureBlock(OVERLAY_DISP++, gItemIcons[pauseCtx->equipTargetItem], G_IM_FMT_RGBA, G_IM_SIZ_32b, ITEM_ICON_WIDTH, ITEM_ICON_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP, @@ -3416,6 +3417,7 @@ void Interface_Draw(PlayState* play) { if ((pauseCtx->equipAnimAlpha > 0) && (pauseCtx->equipAnimAlpha < 255)) { svar1 = (pauseCtx->equipAnimAlpha / 8) / 2; + // PAUSE_QUAD_CURSOR_4 pauseCtx->cursorVtx[16].v.ob[0] = pauseCtx->cursorVtx[18].v.ob[0] = pauseCtx->cursorVtx[16].v.ob[0] - svar1; pauseCtx->cursorVtx[17].v.ob[0] = pauseCtx->cursorVtx[19].v.ob[0] = @@ -3426,7 +3428,7 @@ void Interface_Draw(PlayState* play) { pauseCtx->cursorVtx[16].v.ob[1] - svar1 * 2 - 32; } - gSPVertex(OVERLAY_DISP++, &pauseCtx->cursorVtx[16], 4, 0); + gSPVertex(OVERLAY_DISP++, &pauseCtx->cursorVtx[PAUSE_QUAD_CURSOR_4 * 4], 4, 0); gDPLoadTextureBlock(OVERLAY_DISP++, gMagicArrowEquipEffectTex, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index 6dccaf33d6..5072670e7d 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -9,6 +9,8 @@ #include "overlays/actors/ovl_En_Boom/z_en_boom.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" +#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" + #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) #define GET_BODY(this) ((BossVa*)(this)->actor.parent) 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 d3f45ab15a..bd424121e2 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -1395,7 +1395,7 @@ void func_80B3F3D8(void) { Sfx_PlaySfxCentered2(NA_SE_PL_SKIP); } -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:64 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { static Vec3f D_80B42DA0; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index a6822e4a47..e446b7f8b8 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -15,7 +15,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:145 gc-eu-mq:145 gc-jp:147 gc-jp-ce:147 gc-jp-mq:147 gc-us:147 gc-us-mq:147" +#pragma increment_block_number "gc-eu:142 gc-eu-mq:142 gc-jp:144 gc-jp-ce:144 gc-jp-mq:144 gc-us:144 gc-us-mq:144" #define FLAGS ACTOR_FLAG_4 diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c index 1f5dcba140..7856b520b0 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c @@ -186,7 +186,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorSlot[pauseCtx->pageIndex] = sp216; } - KaleidoScope_SetCursorVtx(pauseCtx, sp216 * 4, pauseCtx->questVtx); + KaleidoScope_SetCursorPos(pauseCtx, sp216 * 4, pauseCtx->questVtx); if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE) && (pauseCtx->cursorSpecialPos == 0)) { @@ -234,7 +234,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->nameDisplayTimer = 0; pauseCtx->cursorSpecialPos = 0; sp216 = pauseCtx->cursorPoint[PAUSE_QUEST]; - KaleidoScope_SetCursorVtx(pauseCtx, sp216 * 4, pauseCtx->questVtx); + KaleidoScope_SetCursorPos(pauseCtx, sp216 * 4, pauseCtx->questVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) { @@ -252,7 +252,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->nameDisplayTimer = 0; pauseCtx->cursorSpecialPos = 0; sp216 = pauseCtx->cursorPoint[PAUSE_QUEST]; - KaleidoScope_SetCursorVtx(pauseCtx, sp216 * 4, pauseCtx->questVtx); + KaleidoScope_SetCursorPos(pauseCtx, sp216 * 4, pauseCtx->questVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) { @@ -297,11 +297,11 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); pauseCtx->ocarinaStaff->pos = 0; sp216 = pauseCtx->cursorSlot[PAUSE_QUEST]; - KaleidoScope_SetCursorVtx(pauseCtx, sp216 * 4, pauseCtx->questVtx); + KaleidoScope_SetCursorPos(pauseCtx, sp216 * 4, pauseCtx->questVtx); } } else { sp216 = pauseCtx->cursorSlot[PAUSE_QUEST]; - KaleidoScope_SetCursorVtx(pauseCtx, sp216 * 4, pauseCtx->questVtx); + KaleidoScope_SetCursorPos(pauseCtx, sp216 * 4, pauseCtx->questVtx); } } diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c index e40b9be294..33c98159c9 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c @@ -456,7 +456,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) { } } - KaleidoScope_SetCursorVtx(pauseCtx, cursorSlot * 4, pauseCtx->equipVtx); + KaleidoScope_SetCursorPos(pauseCtx, cursorSlot * 4, pauseCtx->equipVtx); if ((pauseCtx->cursorSpecialPos == 0) && (cursorItem != PAUSE_ITEM_NONE) && (pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE) && @@ -502,7 +502,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) { &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } } else if ((pauseCtx->mainState == PAUSE_MAIN_STATE_7) && (pauseCtx->pageIndex == PAUSE_EQUIP)) { - KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_EQUIP] * 4, pauseCtx->equipVtx); + KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_EQUIP] * 4, pauseCtx->equipVtx); pauseCtx->cursorColorSet = 8; sEquipTimer--; diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c index c51530df83..9b62bf51db 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c @@ -68,13 +68,13 @@ void KaleidoScope_DrawAmmoCount(PauseContext* pauseCtx, GraphicsContext* gfxCtx, CLOSE_DISPS(gfxCtx, "../z_kaleido_item.c", 116); } -void KaleidoScope_SetCursorVtx(PauseContext* pauseCtx, u16 index, Vtx* vtx) { +void KaleidoScope_SetCursorPos(PauseContext* pauseCtx, u16 index, Vtx* vtx) { pauseCtx->cursorVtx[0].v.ob[0] = vtx[index].v.ob[0]; pauseCtx->cursorVtx[0].v.ob[1] = vtx[index].v.ob[1]; } -void KaleidoScope_SetItemCursorVtx(PauseContext* pauseCtx) { - KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_ITEM] * 4, pauseCtx->itemVtx); +void KaleidoScope_SetItemCursorPos(PauseContext* pauseCtx) { + KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_ITEM] * 4, pauseCtx->itemVtx); } void KaleidoScope_DrawItemSelect(PlayState* play) { @@ -334,7 +334,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { if (cursorItem != PAUSE_ITEM_NONE) { index = cursorSlot * 4; // required to match? - KaleidoScope_SetCursorVtx(pauseCtx, index, pauseCtx->itemVtx); + KaleidoScope_SetCursorPos(pauseCtx, index, pauseCtx->itemVtx); if ((pauseCtx->debugState == 0) && (pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) { @@ -401,7 +401,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { } } else if ((pauseCtx->mainState == PAUSE_MAIN_STATE_3) && (pauseCtx->pageIndex == PAUSE_ITEM)) { //! @bug cursorSlot is uninitialized - KaleidoScope_SetCursorVtx(pauseCtx, cursorSlot * 4, pauseCtx->itemVtx); + KaleidoScope_SetCursorPos(pauseCtx, cursorSlot * 4, pauseCtx->itemVtx); pauseCtx->cursorColorSet = 4; } diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c index efb6e0f553..9d46f54041 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c @@ -150,7 +150,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_MAP] = pauseCtx->dungeonMapSlot; pauseCtx->cursorX[PAUSE_MAP] = 0; j = 72 + (pauseCtx->cursorSlot[PAUSE_MAP] * 4); - KaleidoScope_SetCursorVtx(pauseCtx, j, pauseCtx->mapPageVtx); + KaleidoScope_SetCursorPos(pauseCtx, j, pauseCtx->mapPageVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } @@ -181,7 +181,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { PRINTF("kscope->cursor_point====%d\n", pauseCtx->cursorPoint[PAUSE_MAP]); j = 72 + (pauseCtx->cursorSlot[PAUSE_MAP] * 4); - KaleidoScope_SetCursorVtx(pauseCtx, j, pauseCtx->mapPageVtx); + KaleidoScope_SetCursorPos(pauseCtx, j, pauseCtx->mapPageVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } @@ -203,7 +203,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_MAP]; j = 72 + (pauseCtx->cursorSlot[PAUSE_MAP] * 4); - KaleidoScope_SetCursorVtx(pauseCtx, j, pauseCtx->mapPageVtx); + KaleidoScope_SetCursorPos(pauseCtx, j, pauseCtx->mapPageVtx); if (pauseCtx->cursorX[PAUSE_MAP] == 0) { pauseCtx->mapPageVtx[j + 0].v.ob[0] = pauseCtx->mapPageVtx[j + 2].v.ob[0] = @@ -578,7 +578,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; pauseCtx->cursorSlot[PAUSE_MAP] = PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; - KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); + KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); } else { pauseCtx->cursorItem[PAUSE_MAP] = gSaveContext.worldMapArea + 0x18; if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) { @@ -594,7 +594,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; pauseCtx->cursorSlot[PAUSE_MAP] = PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; - KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); + KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); D_8082A6D4 = 0; @@ -612,7 +612,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; pauseCtx->cursorSlot[PAUSE_MAP] = PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; - KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); + KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); D_8082A6D4 = 0; diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index b1349a495b..886824111a 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -867,10 +867,10 @@ u8 gAreaGsFlags[] = { }; static void* sCursorTexs[] = { - gPauseMenuCursorTopLeftTex, - gPauseMenuCursorTopRightTex, - gPauseMenuCursorBottomLeftTex, - gPauseMenuCursorBottomRightTex, + gPauseMenuCursorTopLeftTex, // PAUSE_QUAD_CURSOR_TL + gPauseMenuCursorTopRightTex, // PAUSE_QUAD_CURSOR_TR + gPauseMenuCursorBottomLeftTex, // PAUSE_QUAD_CURSOR_BL + gPauseMenuCursorBottomRightTex, // PAUSE_QUAD_CURSOR_BR }; static s16 sCursorColors[][3] = { @@ -1124,6 +1124,8 @@ void KaleidoScope_DrawCursor(PlayState* play, u16 pageIndex) { if (pauseCtx->pageIndex == pageIndex) { + // Draw PAUSE_QUAD_CURSOR_TL, PAUSE_QUAD_CURSOR_TR, PAUSE_QUAD_CURSOR_BL, PAUSE_QUAD_CURSOR_BR + gDPPipeSync(POLY_OPA_DISP++); gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); @@ -2706,9 +2708,9 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->questPageVtx = GRAPH_ALLOC(gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_QUEST_QUADS) * 4) * sizeof(Vtx)); KaleidoScope_SetPageVertices(play, pauseCtx->questPageVtx, VTX_PAGE_QUEST, VTX_PAGE_QUEST_QUADS); - pauseCtx->cursorVtx = GRAPH_ALLOC(gfxCtx, 20 * sizeof(Vtx)); + pauseCtx->cursorVtx = GRAPH_ALLOC(gfxCtx, PAUSE_QUAD_CURSOR_MAX * 4 * sizeof(Vtx)); - for (i = 0; i < 20; i++) { + for (i = 0; i < (PAUSE_QUAD_CURSOR_MAX * 4); i++) { pauseCtx->cursorVtx[i].v.ob[0] = pauseCtx->cursorVtx[i].v.ob[1] = pauseCtx->cursorVtx[i].v.ob[2] = 0; pauseCtx->cursorVtx[i].v.flag = 0; @@ -2719,15 +2721,21 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorVtx[i].v.cn[3] = 255; } + // PAUSE_QUAD_CURSOR_TL pauseCtx->cursorVtx[1].v.tc[0] = pauseCtx->cursorVtx[2].v.tc[1] = pauseCtx->cursorVtx[3].v.tc[0] = - pauseCtx->cursorVtx[3].v.tc[1] = pauseCtx->cursorVtx[5].v.tc[0] = pauseCtx->cursorVtx[6].v.tc[1] = - pauseCtx->cursorVtx[7].v.tc[0] = pauseCtx->cursorVtx[7].v.tc[1] = pauseCtx->cursorVtx[9].v.tc[0] = - pauseCtx->cursorVtx[10].v.tc[1] = pauseCtx->cursorVtx[11].v.tc[0] = pauseCtx->cursorVtx[11].v.tc[1] = - pauseCtx->cursorVtx[13].v.tc[0] = pauseCtx->cursorVtx[14].v.tc[1] = - pauseCtx->cursorVtx[15].v.tc[0] = pauseCtx->cursorVtx[15].v.tc[1] = 0x200; - + pauseCtx->cursorVtx[3].v.tc[1] + // PAUSE_QUAD_CURSOR_TR + = pauseCtx->cursorVtx[5].v.tc[0] = pauseCtx->cursorVtx[6].v.tc[1] = pauseCtx->cursorVtx[7].v.tc[0] = + pauseCtx->cursorVtx[7].v.tc[1] + // PAUSE_QUAD_CURSOR_BL + = pauseCtx->cursorVtx[9].v.tc[0] = pauseCtx->cursorVtx[10].v.tc[1] = pauseCtx->cursorVtx[11].v.tc[0] = + pauseCtx->cursorVtx[11].v.tc[1] + // PAUSE_QUAD_CURSOR_BR + = pauseCtx->cursorVtx[13].v.tc[0] = pauseCtx->cursorVtx[14].v.tc[1] = pauseCtx->cursorVtx[15].v.tc[0] = + pauseCtx->cursorVtx[15].v.tc[1] = 16 * (1 << 5); + // PAUSE_QUAD_CURSOR_4 pauseCtx->cursorVtx[17].v.tc[0] = pauseCtx->cursorVtx[18].v.tc[1] = pauseCtx->cursorVtx[19].v.tc[0] = - pauseCtx->cursorVtx[19].v.tc[1] = 0x400; + pauseCtx->cursorVtx[19].v.tc[1] = 32 * (1 << 5); pauseCtx->itemVtx = GRAPH_ALLOC(gfxCtx, 164 * sizeof(Vtx)); @@ -3192,88 +3200,96 @@ void KaleidoScope_UpdateOpening(PlayState* play) { } } -void KaleidoScope_UpdateCursorSize(PlayState* play) { +void KaleidoScope_UpdateCursorVtx(PlayState* play) { PauseContext* pauseCtx = &play->pauseCtx; - s32 temp1; - s32 temp2; - s32 temp3; - s32 temp4; + s32 tlOffsetX; + s32 tlOffsetY; + s32 rightOffsetX; + s32 bottomOffsetY; if (pauseCtx->cursorSpecialPos == 0) { - temp1 = -1; - temp2 = 1; - temp3 = 14; - temp4 = 14; + tlOffsetX = -1; + tlOffsetY = 1; + rightOffsetX = 14; + bottomOffsetY = 14; if (pauseCtx->pageIndex == PAUSE_MAP) { if (!sInDungeonScene) { - temp1 = -6; - temp2 = 6; - temp3 = 4; - temp4 = 4; + tlOffsetX = -6; + tlOffsetY = 6; + rightOffsetX = 4; + bottomOffsetY = 4; } else if (pauseCtx->cursorSlot[pauseCtx->pageIndex] >= 3) { - temp1 = -6; - temp2 = 5; - temp4 = 7; - temp3 = 19; + tlOffsetX = -6; + tlOffsetY = 5; + bottomOffsetY = 7; + rightOffsetX = 19; } else { - temp1 = -3; - temp2 = 3; - temp3 = 13; - temp4 = 13; + tlOffsetX = -3; + tlOffsetY = 3; + rightOffsetX = 13; + bottomOffsetY = 13; } } else if (pauseCtx->pageIndex == PAUSE_QUEST) { - temp1 = -4; - temp2 = 4; - temp3 = 12; - temp4 = 12; + tlOffsetX = -4; + tlOffsetY = 4; + rightOffsetX = 12; + bottomOffsetY = 12; if (pauseCtx->cursorSlot[pauseCtx->pageIndex] == 0x18) { - temp1 = -2; - temp2 = 2; - temp3 = 32; - temp4 = 32; + tlOffsetX = -2; + tlOffsetY = 2; + rightOffsetX = 32; + bottomOffsetY = 32; } else if (pauseCtx->cursorSlot[pauseCtx->pageIndex] == 0x17) { - temp1 = -4; - temp2 = 4; - temp4 = 13; - temp3 = 34; + tlOffsetX = -4; + tlOffsetY = 4; + bottomOffsetY = 13; + rightOffsetX = 34; } else if (pauseCtx->cursorSlot[pauseCtx->pageIndex] < 6) { - temp1 = -1; - temp2 = 1; - temp3 = 10; - temp4 = 10; + tlOffsetX = -1; + tlOffsetY = 1; + rightOffsetX = 10; + bottomOffsetY = 10; } else if ((pauseCtx->cursorSlot[pauseCtx->pageIndex] >= 6) && (pauseCtx->cursorSlot[pauseCtx->pageIndex] < 0x12)) { - temp1 = -5; - temp2 = 3; - temp3 = 8; - temp4 = 8; + tlOffsetX = -5; + tlOffsetY = 3; + rightOffsetX = 8; + bottomOffsetY = 8; } } } else { - temp1 = -4; - temp2 = 4; - temp3 = 16; - temp4 = 16; + tlOffsetX = -4; + tlOffsetY = 4; + rightOffsetX = 16; + bottomOffsetY = 16; } - pauseCtx->cursorVtx[0].v.ob[0] = pauseCtx->cursorVtx[2].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + temp1; + // Move the quads according to the offsets set above, + // and the position of the cursor in `pauseCtx->cursorVtx[0].v.ob` + // (see `KaleidoScope_SetCursorPos` and other `PAUSE_QUAD_CURSOR_TL` uses) + + // PAUSE_QUAD_CURSOR_TL + pauseCtx->cursorVtx[0].v.ob[0] = pauseCtx->cursorVtx[2].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + tlOffsetX; pauseCtx->cursorVtx[1].v.ob[0] = pauseCtx->cursorVtx[3].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + 16; - pauseCtx->cursorVtx[0].v.ob[1] = pauseCtx->cursorVtx[1].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] + temp2; + pauseCtx->cursorVtx[0].v.ob[1] = pauseCtx->cursorVtx[1].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] + tlOffsetY; pauseCtx->cursorVtx[2].v.ob[1] = pauseCtx->cursorVtx[3].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] - 16; - pauseCtx->cursorVtx[4].v.ob[0] = pauseCtx->cursorVtx[6].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + temp3; + // PAUSE_QUAD_CURSOR_TR + pauseCtx->cursorVtx[4].v.ob[0] = pauseCtx->cursorVtx[6].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + rightOffsetX; pauseCtx->cursorVtx[5].v.ob[0] = pauseCtx->cursorVtx[7].v.ob[0] = pauseCtx->cursorVtx[4].v.ob[0] + 16; pauseCtx->cursorVtx[4].v.ob[1] = pauseCtx->cursorVtx[5].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1]; pauseCtx->cursorVtx[6].v.ob[1] = pauseCtx->cursorVtx[7].v.ob[1] = pauseCtx->cursorVtx[4].v.ob[1] - 16; + // PAUSE_QUAD_CURSOR_BL pauseCtx->cursorVtx[8].v.ob[0] = pauseCtx->cursorVtx[10].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0]; pauseCtx->cursorVtx[9].v.ob[0] = pauseCtx->cursorVtx[11].v.ob[0] = pauseCtx->cursorVtx[8].v.ob[0] + 16; - pauseCtx->cursorVtx[8].v.ob[1] = pauseCtx->cursorVtx[9].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] - temp4; + pauseCtx->cursorVtx[8].v.ob[1] = pauseCtx->cursorVtx[9].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] - bottomOffsetY; pauseCtx->cursorVtx[10].v.ob[1] = pauseCtx->cursorVtx[11].v.ob[1] = pauseCtx->cursorVtx[8].v.ob[1] - 16; - pauseCtx->cursorVtx[12].v.ob[0] = pauseCtx->cursorVtx[14].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + temp3; + // PAUSE_QUAD_CURSOR_BR + pauseCtx->cursorVtx[12].v.ob[0] = pauseCtx->cursorVtx[14].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + rightOffsetX; pauseCtx->cursorVtx[13].v.ob[0] = pauseCtx->cursorVtx[15].v.ob[0] = pauseCtx->cursorVtx[12].v.ob[0] + 16; - pauseCtx->cursorVtx[12].v.ob[1] = pauseCtx->cursorVtx[13].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] - temp4; + pauseCtx->cursorVtx[12].v.ob[1] = pauseCtx->cursorVtx[13].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] - bottomOffsetY; pauseCtx->cursorVtx[14].v.ob[1] = pauseCtx->cursorVtx[15].v.ob[1] = pauseCtx->cursorVtx[12].v.ob[1] - 16; } @@ -3352,11 +3368,11 @@ void KaleidoScope_Update(PlayState* play) { (pauseCtx->state == PAUSE_STATE_MAIN)) { pauseCtx->stickAdjX = input->rel.stick_x; pauseCtx->stickAdjY = input->rel.stick_y; - KaleidoScope_UpdateCursorSize(play); + KaleidoScope_UpdateCursorVtx(play); KaleidoScope_HandlePageToggles(pauseCtx, input); } else if ((pauseCtx->pageIndex == PAUSE_QUEST) && ((pauseCtx->mainState < PAUSE_MAIN_STATE_3) || (pauseCtx->mainState == PAUSE_MAIN_STATE_5))) { - KaleidoScope_UpdateCursorSize(play); + KaleidoScope_UpdateCursorVtx(play); } if (pauseCtx->state == PAUSE_STATE_MAIN) { diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h index 945e7efa8c..c0c65e5bea 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h @@ -75,7 +75,7 @@ s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point); void KaleidoScope_DrawDebugEditor(PlayState* play); void KaleidoScope_DrawPlayerWork(PlayState* play); void KaleidoScope_DrawEquipment(PlayState* play); -void KaleidoScope_SetCursorVtx(PauseContext* pauseCtx, u16 index, Vtx* vtx); +void KaleidoScope_SetCursorPos(PauseContext* pauseCtx, u16 index, Vtx* vtx); void KaleidoScope_DrawItemSelect(PlayState* play); void KaleidoScope_UpdateItemEquip(PlayState* play); void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx); diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 766a3dbbef..72e0f6c122 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -3215,8 +3215,8 @@ KaleidoScope_DrawEquipmentImage = 0x80817BA0; // type:func KaleidoScope_DrawPlayerWork = 0x80817FE8; // type:func KaleidoScope_DrawEquipment = 0x8081818C; // type:func KaleidoScope_DrawAmmoCount = 0x80819670; // type:func -KaleidoScope_SetCursorVtx = 0x80819BF4; // type:func -KaleidoScope_SetItemCursorVtx = 0x80819C24; // type:func +KaleidoScope_SetCursorPos = 0x80819BF4; // type:func +KaleidoScope_SetItemCursorPos = 0x80819C24; // type:func KaleidoScope_DrawItemSelect = 0x80819C50; // type:func KaleidoScope_UpdateItemEquip = 0x8081AA60; // type:func KaleidoScope_DrawDungeonMap = 0x8081B660; // type:func @@ -3245,7 +3245,7 @@ KaleidoScope_DrawGameOver = 0x8082536C; // type:func KaleidoScope_Draw = 0x80825A00; // type:func KaleidoScope_GrayOutTextureRGBA32 = 0x80825C1C; // type:func KaleidoScope_UpdateOpening = 0x80825CD0; // type:func -KaleidoScope_UpdateCursorSize = 0x80825EC0; // type:func +KaleidoScope_UpdateCursorVtx = 0x80825EC0; // type:func KaleidoScope_LoadDungeonMap = 0x80826204; // type:func KaleidoScope_UpdateDungeonMap = 0x808262A0; // type:func KaleidoScope_Update = 0x808263C0; // type:func From 0168b096289febc1ccb12b055dcaeafabe8588be Mon Sep 17 00:00:00 2001 From: fig02 Date: Sun, 8 Sep 2024 08:57:28 -0400 Subject: [PATCH 49/86] Player Docs - Parallel (#2167) * name func and flag * rest of the docs * format and comment change * comment --- include/z64player.h | 4 +- src/code/z_player_lib.c | 2 +- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 4 +- .../actors/ovl_player_actor/z_player.c | 41 ++++++++++--------- tools/disasm/ntsc-1.2/functions.txt | 2 +- 5 files changed, 27 insertions(+), 26 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index c7b6ae48d5..248b3bdfec 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -665,7 +665,7 @@ typedef struct WeaponInfo { #define PLAYER_STATE1_14 (1 << 14) #define PLAYER_STATE1_15 (1 << 15) #define PLAYER_STATE1_16 (1 << 16) -#define PLAYER_STATE1_17 (1 << 17) +#define PLAYER_STATE1_PARALLEL (1 << 17) // "Parallel" mode, Z-Target without an actor lock-on #define PLAYER_STATE1_18 (1 << 18) #define PLAYER_STATE1_19 (1 << 19) #define PLAYER_STATE1_20 (1 << 20) @@ -838,7 +838,7 @@ typedef struct Player { /* 0x0837 */ u8 unk_837; /* 0x0838 */ f32 speedXZ; // Controls horizontal speed, used for `actor.speed`. Current or target value depending on context. /* 0x083C */ s16 yaw; // General yaw value, used both for world and shape rotation. Current or target value depending on context. - /* 0x083E */ s16 zTargetYaw; // yaw relating to Z targeting/"parallel" mode + /* 0x083E */ s16 parallelYaw; // yaw in "parallel" mode, Z-Target without an actor lock-on /* 0x0840 */ u16 underwaterTimer; /* 0x0842 */ s8 meleeWeaponAnimation; /* 0x0843 */ s8 meleeWeaponState; diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index d57cf2ed49..1eeaf0d206 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -611,7 +611,7 @@ void func_8008EE08(Player* this) { (this->stateFlags1 & (PLAYER_STATE1_21 | PLAYER_STATE1_23 | PLAYER_STATE1_27)) || (!(this->stateFlags1 & (PLAYER_STATE1_18 | PLAYER_STATE1_19)) && ((this->actor.world.pos.y - this->actor.floorHeight) < 100.0f))) { - this->stateFlags1 &= ~(PLAYER_STATE1_15 | PLAYER_STATE1_16 | PLAYER_STATE1_17 | PLAYER_STATE1_18 | + this->stateFlags1 &= ~(PLAYER_STATE1_15 | PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL | PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_30); } else if (!(this->stateFlags1 & (PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_21))) { this->stateFlags1 |= PLAYER_STATE1_19; diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index 58dc8e6ccc..0733975b37 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -367,7 +367,7 @@ void BossSst_HeadSetupIntro(BossSst* this, PlayState* play) { player->actor.world.pos.z = sRoomCenter.z; player->speedXZ = 0.0f; player->actor.shape.rot.y = -0x8000; - player->zTargetYaw = -0x8000; + player->parallelYaw = -0x8000; player->yaw = -0x8000; player->actor.velocity.y = 0.0f; player->fallStartHeight = 0; @@ -427,7 +427,7 @@ void BossSst_HeadIntro(BossSst* this, PlayState* play) { player->actor.world.pos.z = sRoomCenter.z; player->speedXZ = 0; player->actor.shape.rot.y = -0x8000; - player->zTargetYaw = -0x8000; + player->parallelYaw = -0x8000; player->yaw = -0x8000; } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 5e72907780..14f1e1dff8 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -2314,7 +2314,7 @@ void func_80833A20(Player* this, s32 newMeleeWeaponState) { } s32 func_80833B2C(Player* this) { - if (this->stateFlags1 & (PLAYER_STATE1_16 | PLAYER_STATE1_17 | PLAYER_STATE1_30)) { + if (this->stateFlags1 & (PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL | PLAYER_STATE1_30)) { return 1; } else { return 0; @@ -2983,15 +2983,16 @@ s32 func_80835588(Player* this, PlayState* play) { return true; } -void func_808355DC(Player* this) { - this->stateFlags1 |= PLAYER_STATE1_17; +void Player_SetParallel(Player* this) { + this->stateFlags1 |= PLAYER_STATE1_PARALLEL; if (!(this->skelAnime.moveFlags & ANIM_FLAG_OVERRIDE_MOVEMENT) && (this->actor.bgCheckFlags & BGCHECKFLAG_PLAYER_WALL_INTERACT) && (sShapeYawToTouchedWall < 0x2000)) { + // snap to the wall this->yaw = this->actor.shape.rot.y = this->actor.wallYaw + 0x8000; } - this->zTargetYaw = this->actor.shape.rot.y; + this->parallelYaw = this->actor.shape.rot.y; } s32 func_80835644(PlayState* play, Player* this, Actor* arg2) { @@ -3108,7 +3109,7 @@ s32 func_808359FC(Player* this, PlayState* play) { boomerang->returnTimer = 20; this->stateFlags1 |= PLAYER_STATE1_25; if (!func_8008E9C4(this)) { - func_808355DC(this); + Player_SetParallel(this); } this->unk_A73 = 4; Player_PlaySfx(this, NA_SE_IT_BOOMERANG_THROW); @@ -3470,8 +3471,8 @@ s32 Player_SetupWaitForPutAway(PlayState* play, Player* this, AfterPutAwayFunc a * 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. + * - Lock on: Rotates Player to face the current lock on target. + * - Parallel: Rotates Player to face the current Parallel angle, set when Z-Targeting without an actor lock-on * - Normal: Rotates Player to face `this->yaw`, the direction he is currently moving */ void Player_UpdateShapeYaw(Player* this, PlayState* play) { @@ -3484,9 +3485,9 @@ void Player_UpdateShapeYaw(Player* this, PlayState* play) { ((play->actorCtx.attention.reticleSpinCounter != 0) || (this->actor.category != ACTORCAT_PLAYER))) { Math_ScaledStepToS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &focusActor->focus.pos), 4000); - } else if ((this->stateFlags1 & PLAYER_STATE1_17) && + } else if ((this->stateFlags1 & PLAYER_STATE1_PARALLEL) && !(this->stateFlags2 & (PLAYER_STATE2_5 | PLAYER_STATE2_6))) { - Math_ScaledStepToS(&this->actor.shape.rot.y, this->zTargetYaw, 4000); + Math_ScaledStepToS(&this->actor.shape.rot.y, this->parallelYaw, 4000); } } else if (!(this->stateFlags2 & PLAYER_STATE2_6)) { Math_ScaledStepToS(&this->actor.shape.rot.y, this->yaw, 2000); @@ -3561,7 +3562,7 @@ void func_80836BEC(Player* this, PlayState* play) { } else { this->unk_66C--; } - } else if (this->stateFlags1 & PLAYER_STATE1_17) { + } else if (this->stateFlags1 & PLAYER_STATE1_PARALLEL) { this->unk_66C = 0; } else if (this->unk_66C != 0) { this->unk_66C--; @@ -3607,8 +3608,8 @@ void func_80836BEC(Player* this, PlayState* play) { this->stateFlags1 &= ~PLAYER_STATE1_30; } else { - if (!(this->stateFlags1 & (PLAYER_STATE1_17 | PLAYER_STATE1_30))) { - func_808355DC(this); + if (!(this->stateFlags1 & (PLAYER_STATE1_PARALLEL | PLAYER_STATE1_30))) { + Player_SetParallel(this); } } } @@ -3627,13 +3628,13 @@ void func_80836BEC(Player* this, PlayState* play) { } if (this->focusActor != NULL) { - this->stateFlags1 &= ~(PLAYER_STATE1_16 | PLAYER_STATE1_17); + this->stateFlags1 &= ~(PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL); if ((this->stateFlags1 & PLAYER_STATE1_11) || !CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE)) { this->stateFlags1 |= PLAYER_STATE1_16; } } else { - if (this->stateFlags1 & PLAYER_STATE1_17) { + if (this->stateFlags1 & PLAYER_STATE1_PARALLEL) { this->stateFlags2 &= ~PLAYER_STATE2_13; } else { func_8008EE08(this); @@ -3755,7 +3756,7 @@ s32 Player_GetMovementSpeedAndYaw(Player* this, f32* outSpeedTarget, s16* outYaw return false; } } else if (func_80833B2C(this)) { - *outYawTarget = this->zTargetYaw; + *outYawTarget = this->parallelYaw; } return false; @@ -5377,7 +5378,7 @@ s32 func_8083A6AC(Player* this, PlayState* play) { this->av1.actionVar1 = sp50; } else { this->stateFlags1 |= PLAYER_STATE1_13; - this->stateFlags1 &= ~PLAYER_STATE1_17; + this->stateFlags1 &= ~PLAYER_STATE1_PARALLEL; } Player_PlaySfx(this, NA_SE_PL_SLIPDOWN); @@ -7411,7 +7412,7 @@ s32 func_8083FC68(Player* this, f32 arg1, s16 arg2) { } s32 func_8083FD78(Player* this, f32* arg1, s16* arg2, PlayState* play) { - s16 sp2E = *arg2 - this->zTargetYaw; + s16 sp2E = *arg2 - this->parallelYaw; u16 sp2C = ABS(sp2E); if ((func_8002DD78(this) || func_808334B4(this)) && (this->focusActor == NULL)) { @@ -9294,8 +9295,8 @@ void Player_Action_80844E68(Player* this, PlayState* play) { if (LinkAnimation_Update(play, &this->skelAnime)) { func_80832DBC(this); - func_808355DC(this); - this->stateFlags1 &= ~PLAYER_STATE1_17; + Player_SetParallel(this); + this->stateFlags1 &= ~PLAYER_STATE1_PARALLEL; Player_AnimPlayLoop(play, this, D_80854360[Player_HoldsTwoHandedWeapon(this)]); this->av2.actionVar2 = -1; } @@ -10772,7 +10773,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { } else { camMode = CAM_MODE_LEDGE_HANG; } - } else if (this->stateFlags1 & (PLAYER_STATE1_17 | PLAYER_STATE1_30)) { + } else if (this->stateFlags1 & (PLAYER_STATE1_PARALLEL | PLAYER_STATE1_30)) { if (func_8002DD78(this) || func_808334B4(this)) { camMode = CAM_MODE_Z_AIM; } else if (this->stateFlags1 & PLAYER_STATE1_21) { diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 72e0f6c122..03469ea75e 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -3365,7 +3365,7 @@ func_808350A4 = 0x80833120; // type:func func_808351D4 = 0x80833254; // type:func func_808353D8 = 0x80833460; // type:func func_80835588 = 0x80833610; // type:func -func_808355DC = 0x8083366C; // type:func +Player_SetParallel = 0x8083366C; // type:func func_80835644 = 0x808336D8; // type:func func_80835688 = 0x80833720; // type:func Player_UpperAction_CarryActor = 0x80833780; // type:func From 2d96f001db8969d9454b19cd9d86d576e89c4d1c Mon Sep 17 00:00:00 2001 From: cadmic Date: Sun, 8 Sep 2024 07:27:18 -0700 Subject: [PATCH 50/86] Reorder spec segments for N64 versions (#2163) --- spec | 7180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 7180 insertions(+) diff --git a/spec b/spec index 0f9befd969..13a77dec9a 100644 --- a/spec +++ b/spec @@ -397,6 +397,15 @@ beginseg number 11 endseg +#if PLATFORM_N64 +beginseg + name "map_i_static" + romalign 0x1000 + include "$(BUILD_DIR)/assets/textures/map_i_static/map_i_static.o" + number 11 +endseg +#endif + beginseg name "map_48x85_static" romalign 0x1000 @@ -404,12 +413,14 @@ beginseg number 11 endseg +#if !PLATFORM_N64 beginseg name "map_i_static" romalign 0x1000 include "$(BUILD_DIR)/assets/textures/map_i_static/map_i_static.o" number 11 endseg +#endif beginseg name "code" @@ -919,6 +930,3253 @@ beginseg include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Test/ovl_En_Test_reloc.o" endseg +// Overlays for most actors and effects are reordered between versions. On N64 and iQue, +// the overlays are in some arbitrary order, while on GameCube they are sorted alphabetically. +#if !PLATFORM_GC + +beginseg + name "ovl_En_GirlA" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GirlA/z_en_girla.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GirlA/ovl_En_GirlA_reloc.o" +endseg + +beginseg + name "ovl_En_Part" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Part/z_en_part.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Part/ovl_En_Part_reloc.o" +endseg + +beginseg + name "ovl_En_Light" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Light/z_en_light.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Light/ovl_En_Light_reloc.o" +endseg + +beginseg + name "ovl_En_Door" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Door/z_en_door.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Door/ovl_En_Door_reloc.o" +endseg + +beginseg + name "ovl_En_Box" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Box/z_en_box.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Box/ovl_En_Box_reloc.o" +endseg + +beginseg + name "ovl_En_Poh" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Poh/z_en_poh.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Poh/ovl_En_Poh_reloc.o" +endseg + +beginseg + name "ovl_En_Okuta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okuta/z_en_okuta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okuta/ovl_En_Okuta_reloc.o" +endseg + +beginseg + name "ovl_En_Bom" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom/z_en_bom.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom/ovl_En_Bom_reloc.o" +endseg + +beginseg + name "ovl_En_Wallmas" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wallmas/ovl_En_Wallmas_reloc.o" +endseg + +beginseg + name "ovl_En_Dodongo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodongo/ovl_En_Dodongo_reloc.o" +endseg + +beginseg + name "ovl_En_Firefly" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Firefly/z_en_firefly.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Firefly/ovl_En_Firefly_reloc.o" +endseg + +beginseg + name "ovl_En_Horse" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse/z_en_horse.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse/ovl_En_Horse_reloc.o" +endseg + +beginseg + name "ovl_En_Arrow" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arrow/z_en_arrow.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arrow/ovl_En_Arrow_reloc.o" +endseg + +beginseg + name "ovl_En_Elf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Elf/z_en_elf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Elf/ovl_En_Elf_reloc.o" +endseg + +beginseg + name "ovl_En_Niw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw/z_en_niw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw/ovl_En_Niw_reloc.o" +endseg + +beginseg + name "ovl_En_Tite" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tite/z_en_tite.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tite/ovl_En_Tite_reloc.o" +endseg + +beginseg + name "ovl_En_Reeba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Reeba/z_en_reeba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Reeba/ovl_En_Reeba_reloc.o" +endseg + +beginseg + name "ovl_En_Peehat" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Peehat/z_en_peehat.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Peehat/ovl_En_Peehat_reloc.o" +endseg + +beginseg + name "ovl_En_Holl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Holl/z_en_holl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Holl/ovl_En_Holl_reloc.o" +endseg + +beginseg + name "ovl_En_Scene_Change" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Scene_Change/z_en_scene_change.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Scene_Change/ovl_En_Scene_Change_reloc.o" +endseg + +beginseg + name "ovl_En_Zf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zf/z_en_zf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zf/ovl_En_Zf_reloc.o" +endseg + +beginseg + name "ovl_En_Hata" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hata/z_en_hata.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hata/ovl_En_Hata_reloc.o" +endseg + +beginseg + name "ovl_Boss_Dodongo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Dodongo/ovl_Boss_Dodongo_reloc.o" +endseg + +beginseg + name "ovl_Boss_Goma" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Goma/ovl_Boss_Goma_reloc.o" +endseg + +beginseg + name "ovl_En_Zl1" + compress +include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/z_en_zl1_cutscene_data.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/z_en_zl1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/ovl_En_Zl1_reloc.o" +endseg + +beginseg + name "ovl_En_Viewer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Viewer/z_en_viewer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Viewer/ovl_En_Viewer_reloc.o" +endseg + +beginseg + name "ovl_En_Goma" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goma/z_en_goma.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goma/ovl_En_Goma_reloc.o" +endseg + +beginseg + name "ovl_Bg_Pushbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Pushbox/ovl_Bg_Pushbox_reloc.o" +endseg + +beginseg + name "ovl_En_Bubble" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bubble/z_en_bubble.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bubble/ovl_En_Bubble_reloc.o" +endseg + +beginseg + name "ovl_Door_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Shutter/ovl_Door_Shutter_reloc.o" +endseg + +beginseg + name "ovl_En_Dodojr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodojr/ovl_En_Dodojr_reloc.o" +endseg + +beginseg + name "ovl_En_Bdfire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bdfire/ovl_En_Bdfire_reloc.o" +endseg + +beginseg + name "ovl_En_Boom" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Boom/z_en_boom.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Boom/ovl_En_Boom_reloc.o" +endseg + +beginseg + name "ovl_En_Torch2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch2/z_en_torch2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch2/ovl_En_Torch2_reloc.o" +endseg + +beginseg + name "ovl_En_Bili" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bili/z_en_bili.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bili/ovl_En_Bili_reloc.o" +endseg + +beginseg + name "ovl_En_Tp" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tp/z_en_tp.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tp/ovl_En_Tp_reloc.o" +endseg + +beginseg + name "ovl_En_St" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_St/z_en_st.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_St/ovl_En_St_reloc.o" +endseg + +beginseg + name "ovl_En_Bw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bw/z_en_bw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bw/ovl_En_Bw_reloc.o" +endseg + +beginseg + name "ovl_En_Eiyer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eiyer/ovl_En_Eiyer_reloc.o" +endseg + +beginseg + name "ovl_En_River_Sound" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_River_Sound/z_en_river_sound.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_River_Sound/ovl_En_River_Sound_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Normal" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Normal/ovl_En_Horse_Normal_reloc.o" +endseg + +beginseg + name "ovl_En_Ossan" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ossan/z_en_ossan.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ossan/ovl_En_Ossan_reloc.o" +endseg + +beginseg + name "ovl_Bg_Treemouth" + compress +include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth_cutscene_data.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/ovl_Bg_Treemouth_reloc.o" +endseg + +beginseg + name "ovl_Bg_Dodoago" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dodoago/ovl_Bg_Dodoago_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Dalm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Dalm/ovl_Bg_Hidan_Dalm_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Hrock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hrock/ovl_Bg_Hidan_Hrock_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Ganon" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Ganon/ovl_En_Horse_Ganon_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Rock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rock/ovl_Bg_Hidan_Rock_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Rsekizou" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/ovl_Bg_Hidan_Rsekizou_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Sekizou" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sekizou/ovl_Bg_Hidan_Sekizou_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Sima" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sima/ovl_Bg_Hidan_Sima_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Syoku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Syoku/ovl_Bg_Hidan_Syoku_reloc.o" +endseg + +beginseg + name "ovl_En_Xc" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Xc/z_en_xc.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Xc/ovl_En_Xc_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Curtain" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Curtain/ovl_Bg_Hidan_Curtain_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot00_Hanebasi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/ovl_Bg_Spot00_Hanebasi_reloc.o" +endseg + +beginseg + name "ovl_En_Mb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mb/z_en_mb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mb/ovl_En_Mb_reloc.o" +endseg + +beginseg + name "ovl_En_Bombf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bombf/z_en_bombf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bombf/ovl_En_Bombf_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Firewall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Firewall/ovl_Bg_Hidan_Firewall_reloc.o" +endseg + +beginseg + name "ovl_Bg_Dy_Yoseizo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dy_Yoseizo/ovl_Bg_Dy_Yoseizo_reloc.o" +endseg + +beginseg + name "ovl_En_Zl2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl2/z_en_zl2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl2/ovl_En_Zl2_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Fslift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fslift/ovl_Bg_Hidan_Fslift_reloc.o" +endseg + +beginseg + name "ovl_En_OE2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_OE2/z_en_oe2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_OE2/ovl_En_OE2_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ydan_Hasi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Hasi/ovl_Bg_Ydan_Hasi_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ydan_Maruta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Maruta/ovl_Bg_Ydan_Maruta_reloc.o" +endseg + +beginseg + name "ovl_Boss_Ganondrof" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganondrof/ovl_Boss_Ganondrof_reloc.o" +endseg + +beginseg + name "ovl_En_Am" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Am/z_en_am.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Am/ovl_En_Am_reloc.o" +endseg + +beginseg + name "ovl_En_Dekubaba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekubaba/ovl_En_Dekubaba_reloc.o" +endseg + +beginseg + name "ovl_En_M_Fire1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Fire1/ovl_En_M_Fire1_reloc.o" +endseg + +beginseg + name "ovl_En_M_Thunder" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Thunder/ovl_En_M_Thunder_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ddan_Jd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Jd/ovl_Bg_Ddan_Jd_reloc.o" +endseg + +beginseg + name "ovl_Bg_Breakwall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Breakwall/ovl_Bg_Breakwall_reloc.o" +endseg + +beginseg + name "ovl_En_Jj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/z_en_jj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/ovl_En_Jj_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Zelda" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Zelda/ovl_En_Horse_Zelda_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ddan_Kd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Kd/ovl_Bg_Ddan_Kd_reloc.o" +endseg + +beginseg + name "ovl_Door_Warp1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Warp1/ovl_Door_Warp1_reloc.o" +endseg + +beginseg + name "ovl_Obj_Syokudai" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Syokudai/ovl_Obj_Syokudai_reloc.o" +endseg + +beginseg + name "ovl_Item_B_Heart" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_B_Heart/ovl_Item_B_Heart_reloc.o" +endseg + +beginseg + name "ovl_En_Dekunuts" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekunuts/ovl_En_Dekunuts_reloc.o" +endseg + +beginseg + name "ovl_Bg_Menkuri_Kaiten" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/ovl_Bg_Menkuri_Kaiten_reloc.o" +endseg + +beginseg + name "ovl_Bg_Menkuri_Eye" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Eye/ovl_Bg_Menkuri_Eye_reloc.o" +endseg + +beginseg + name "ovl_En_Vali" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vali/z_en_vali.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vali/ovl_En_Vali_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Movebg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Movebg/ovl_Bg_Mizu_Movebg_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Water" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Water/ovl_Bg_Mizu_Water_reloc.o" +endseg + +beginseg + name "ovl_Arms_Hook" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arms_Hook/ovl_Arms_Hook_reloc.o" +endseg + +beginseg + name "ovl_En_fHG" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_fHG/z_en_fhg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_fHG/ovl_En_fHG_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Hineri" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hineri/ovl_Bg_Mori_Hineri_reloc.o" +endseg + +beginseg + name "ovl_En_Bb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bb/z_en_bb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bb/ovl_En_Bb_reloc.o" +endseg + +beginseg + name "ovl_Bg_Toki_Hikari" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Hikari/ovl_Bg_Toki_Hikari_reloc.o" +endseg + +beginseg + name "ovl_En_Yukabyun" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yukabyun/ovl_En_Yukabyun_reloc.o" +endseg + +beginseg + name "ovl_Bg_Toki_Swd" + compress +include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_1.o" +include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_2.o" +include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/ovl_Bg_Toki_Swd_reloc.o" +endseg + +beginseg + name "ovl_En_Fhg_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fhg_Fire/ovl_En_Fhg_Fire_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mjin" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mjin/ovl_Bg_Mjin_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Kousi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kousi/ovl_Bg_Hidan_Kousi_reloc.o" +endseg + +beginseg + name "ovl_Door_Toki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Toki/z_door_toki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Toki/ovl_Door_Toki_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Hamstep" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hamstep/ovl_Bg_Hidan_Hamstep_reloc.o" +endseg + +beginseg + name "ovl_En_Bird" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bird/z_en_bird.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bird/ovl_En_Bird_reloc.o" +endseg + +beginseg + name "ovl_En_Wood02" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wood02/z_en_wood02.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wood02/ovl_En_Wood02_reloc.o" +endseg + +beginseg + name "ovl_En_Lightbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Lightbox/ovl_En_Lightbox_reloc.o" +endseg + +beginseg + name "ovl_En_Pu_box" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Pu_box/ovl_En_Pu_box_reloc.o" +endseg + +beginseg + name "ovl_En_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Trap/z_en_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Trap/ovl_En_Trap_reloc.o" +endseg + +beginseg + name "ovl_En_Arow_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arow_Trap/ovl_En_Arow_Trap_reloc.o" +endseg + +beginseg + name "ovl_En_Vase" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vase/z_en_vase.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vase/ovl_En_Vase_reloc.o" +endseg + +beginseg + name "ovl_En_Ta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ta/z_en_ta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ta/ovl_En_Ta_reloc.o" +endseg + +beginseg + name "ovl_En_Tk" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tk/z_en_tk.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tk/ovl_En_Tk_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Bigst" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Bigst/ovl_Bg_Mori_Bigst_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Elevator" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Elevator/ovl_Bg_Mori_Elevator_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Kaitenkabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/ovl_Bg_Mori_Kaitenkabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Rakkatenjo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/ovl_Bg_Mori_Rakkatenjo_reloc.o" +endseg + +beginseg + name "ovl_En_Vm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vm/z_en_vm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vm/ovl_En_Vm_reloc.o" +endseg + +beginseg + name "ovl_Demo_Effect" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Effect/ovl_Demo_Effect_reloc.o" +endseg + +beginseg + name "ovl_Demo_Kankyo" + compress +include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data1.o" +include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data2.o" +include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data3.o" +include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data4.o" +include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data5.o" +include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data6.o" +include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data7.o" +include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data8.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/ovl_Demo_Kankyo_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Fwbig" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fwbig/ovl_Bg_Hidan_Fwbig_reloc.o" +endseg + +beginseg + name "ovl_En_Floormas" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Floormas/z_en_floormas.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Floormas/ovl_En_Floormas_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi1/ovl_En_Heishi1_reloc.o" +endseg + +beginseg + name "ovl_En_Rd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rd/z_en_rd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rd/ovl_En_Rd_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Sisters" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Sisters/ovl_En_Po_Sisters_reloc.o" +endseg + +beginseg + name "ovl_Bg_Heavy_Block" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Heavy_Block/ovl_Bg_Heavy_Block_reloc.o" +endseg + +beginseg + name "ovl_Bg_Po_Event" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Event/ovl_Bg_Po_Event_reloc.o" +endseg + +beginseg + name "ovl_Obj_Mure" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure/ovl_Obj_Mure_reloc.o" +endseg + +beginseg + name "ovl_En_Sw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sw/z_en_sw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sw/ovl_En_Sw_reloc.o" +endseg + +beginseg + name "ovl_Boss_Fd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd/ovl_Boss_Fd_reloc.o" +endseg + +beginseg + name "ovl_Object_Kankyo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Object_Kankyo/ovl_Object_Kankyo_reloc.o" +endseg + +beginseg + name "ovl_En_Du" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Du/z_en_du.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Du/ovl_En_Du_reloc.o" +endseg + +beginseg + name "ovl_En_Fd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd/z_en_fd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd/ovl_En_Fd_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Link_Child" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Link_Child/ovl_En_Horse_Link_Child_reloc.o" +endseg + +beginseg + name "ovl_Door_Ana" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Ana/z_door_ana.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Ana/ovl_Door_Ana_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot02_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot02_Objects/ovl_Bg_Spot02_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka/ovl_Bg_Haka_reloc.o" +endseg + +beginseg + name "ovl_Magic_Wind" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Wind/ovl_Magic_Wind_reloc.o" +endseg + +beginseg + name "ovl_Magic_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Fire/ovl_Magic_Fire_reloc.o" +endseg + +beginseg + name "ovl_En_Ru1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru1/z_en_ru1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru1/ovl_En_Ru1_reloc.o" +endseg + +beginseg + name "ovl_Boss_Fd2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd2/ovl_Boss_Fd2_reloc.o" +endseg + +beginseg + name "ovl_En_Fd_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd_Fire/ovl_En_Fd_Fire_reloc.o" +endseg + +beginseg + name "ovl_En_Dh" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dh/z_en_dh.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dh/ovl_En_Dh_reloc.o" +endseg + +beginseg + name "ovl_En_Dha" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dha/z_en_dha.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dha/ovl_En_Dha_reloc.o" +endseg + +beginseg + name "ovl_En_Rl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rl/z_en_rl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rl/ovl_En_Rl_reloc.o" +endseg + +beginseg + name "ovl_En_Encount1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount1/z_en_encount1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount1/ovl_En_Encount1_reloc.o" +endseg + +beginseg + name "ovl_Demo_Du" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Du/z_demo_du.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Du/ovl_Demo_Du_reloc.o" +endseg + +beginseg + name "ovl_Demo_Im" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Im/z_demo_im.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Im/ovl_Demo_Im_reloc.o" +endseg + +beginseg + name "ovl_Demo_Tre_Lgt" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Tre_Lgt/ovl_Demo_Tre_Lgt_reloc.o" +endseg + +beginseg + name "ovl_En_Fw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fw/z_en_fw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fw/ovl_En_Fw_reloc.o" +endseg + +beginseg + name "ovl_Bg_Vb_Sima" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Vb_Sima/ovl_Bg_Vb_Sima_reloc.o" +endseg + +beginseg + name "ovl_En_Vb_Ball" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vb_Ball/ovl_En_Vb_Ball_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Megane" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Megane/ovl_Bg_Haka_Megane_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_MeganeBG" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_MeganeBG/ovl_Bg_Haka_MeganeBG_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Ship" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Ship/ovl_Bg_Haka_Ship_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Sgami" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Sgami/ovl_Bg_Haka_Sgami_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi2/ovl_En_Heishi2_reloc.o" +endseg + +beginseg + name "ovl_En_Encount2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount2/z_en_encount2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount2/ovl_En_Encount2_reloc.o" +endseg + +beginseg + name "ovl_En_Fire_Rock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fire_Rock/ovl_En_Fire_Rock_reloc.o" +endseg + +beginseg + name "ovl_En_Brob" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Brob/z_en_brob.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Brob/ovl_En_Brob_reloc.o" +endseg + +beginseg + name "ovl_Mir_Ray" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Mir_Ray/ovl_Mir_Ray_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot09_Obj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot09_Obj/ovl_Bg_Spot09_Obj_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Obj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Obj/ovl_Bg_Spot18_Obj_reloc.o" +endseg + +beginseg + name "ovl_Boss_Va" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Va/z_boss_va.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Va/ovl_Boss_Va_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Tubo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Tubo/ovl_Bg_Haka_Tubo_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Trap/ovl_Bg_Haka_Trap_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Huta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Huta/ovl_Bg_Haka_Huta_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Zou" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Zou/ovl_Bg_Haka_Zou_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot17_Funen" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Funen/ovl_Bg_Spot17_Funen_reloc.o" +endseg + +beginseg + name "ovl_En_Syateki_Itm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Itm/ovl_En_Syateki_Itm_reloc.o" +endseg + +beginseg + name "ovl_En_Syateki_Man" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Man/ovl_En_Syateki_Man_reloc.o" +endseg + +beginseg + name "ovl_En_Tana" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tana/z_en_tana.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tana/ovl_En_Tana_reloc.o" +endseg + +beginseg + name "ovl_En_Nb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nb/z_en_nb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nb/ovl_En_Nb_reloc.o" +endseg + +beginseg + name "ovl_Boss_Mo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Mo/ovl_Boss_Mo_reloc.o" +endseg + +beginseg + name "ovl_En_Sb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sb/z_en_sb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sb/ovl_En_Sb_reloc.o" +endseg + +beginseg + name "ovl_En_Bigokuta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bigokuta/ovl_En_Bigokuta_reloc.o" +endseg + +beginseg + name "ovl_En_Karebaba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Karebaba/ovl_En_Karebaba_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bdan_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Objects/ovl_Bg_Bdan_Objects_reloc.o" +endseg + +beginseg + name "ovl_Demo_Sa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Sa/ovl_Demo_Sa_reloc.o" +endseg + +beginseg + name "ovl_Demo_Go" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Go/z_demo_go.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Go/ovl_Demo_Go_reloc.o" +endseg + +beginseg + name "ovl_En_In" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_In/z_en_in.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_In/ovl_En_In_reloc.o" +endseg + +beginseg + name "ovl_En_Tr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tr/z_en_tr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tr/ovl_En_Tr_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot16_Bombstone" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Bombstone/ovl_Bg_Spot16_Bombstone_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Kowarerukabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/ovl_Bg_Hidan_Kowarerukabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bombwall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bombwall/ovl_Bg_Bombwall_reloc.o" +endseg + +beginseg + name "ovl_En_Ru2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru2/z_en_ru2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru2/ovl_En_Ru2_reloc.o" +endseg + +beginseg + name "ovl_Obj_Dekujr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Dekujr/ovl_Obj_Dekujr_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Uzu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Uzu/ovl_Bg_Mizu_Uzu_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot06_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot06_Objects/ovl_Bg_Spot06_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Objects/ovl_Bg_Ice_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Water" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Water/ovl_Bg_Haka_Water_reloc.o" +endseg + +beginseg + name "ovl_En_Ma2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma2/z_en_ma2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma2/ovl_En_Ma2_reloc.o" +endseg + +beginseg + name "ovl_En_Bom_Chu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Chu/ovl_En_Bom_Chu_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Game_Check" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Game_Check/ovl_En_Horse_Game_Check_reloc.o" +endseg + +beginseg + name "ovl_Boss_Tw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Tw/ovl_Boss_Tw_reloc.o" +endseg + +beginseg + name "ovl_En_Rr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rr/z_en_rr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rr/ovl_En_Rr_reloc.o" +endseg + +beginseg + name "ovl_En_Ba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ba/z_en_ba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ba/ovl_En_Ba_reloc.o" +endseg + +beginseg + name "ovl_En_Bx" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bx/z_en_bx.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bx/ovl_En_Bx_reloc.o" +endseg + +beginseg + name "ovl_En_Anubice" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice/z_en_anubice.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice/ovl_En_Anubice_reloc.o" +endseg + +beginseg + name "ovl_En_Anubice_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Fire/ovl_En_Anubice_Fire_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Hashigo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashigo/ovl_Bg_Mori_Hashigo_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Hashira4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashira4/ovl_Bg_Mori_Hashira4_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Idomizu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Idomizu/ovl_Bg_Mori_Idomizu_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot16_Doughnut" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Doughnut/ovl_Bg_Spot16_Doughnut_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bdan_Switch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Switch/ovl_Bg_Bdan_Switch_reloc.o" +endseg + +beginseg + name "ovl_En_Ma1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma1/z_en_ma1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma1/ovl_En_Ma1_reloc.o" +endseg + +beginseg + name "ovl_Boss_Ganon" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon/ovl_Boss_Ganon_reloc.o" +endseg + +beginseg + name "ovl_Boss_Sst" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Sst/ovl_Boss_Sst_reloc.o" +endseg + +beginseg + name "ovl_En_Ny" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ny/z_en_ny.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ny/ovl_En_Ny_reloc.o" +endseg + +beginseg + name "ovl_En_Fr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fr/z_en_fr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fr/ovl_En_Fr_reloc.o" +endseg + +beginseg + name "ovl_Item_Shield" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Shield/z_item_shield.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Shield/ovl_Item_Shield_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Shelter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shelter/ovl_Bg_Ice_Shelter_reloc.o" +endseg + +beginseg + name "ovl_En_Ice_Hono" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ice_Hono/ovl_En_Ice_Hono_reloc.o" +endseg + +beginseg + name "ovl_Item_Ocarina" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Ocarina/ovl_Item_Ocarina_reloc.o" +endseg + +beginseg + name "ovl_Magic_Dark" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Dark/ovl_Magic_Dark_reloc.o" +endseg + +beginseg + name "ovl_Demo_6K" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_6K/z_demo_6k.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_6K/ovl_Demo_6K_reloc.o" +endseg + +beginseg + name "ovl_En_Anubice_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Tag/ovl_En_Anubice_Tag_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Gate" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Gate/ovl_Bg_Haka_Gate_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot15_Saku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Saku/ovl_Bg_Spot15_Saku_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Goroiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Goroiwa/ovl_Bg_Jya_Goroiwa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Zurerukabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/ovl_Bg_Jya_Zurerukabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Cobra" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Cobra/ovl_Bg_Jya_Cobra_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Kanaami" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Kanaami/ovl_Bg_Jya_Kanaami_reloc.o" +endseg + +beginseg + name "ovl_Fishing" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Fishing/z_fishing.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Fishing/ovl_Fishing_reloc.o" +endseg + +beginseg + name "ovl_Obj_Oshihiki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Oshihiki/ovl_Obj_Oshihiki_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gate_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gate_Shutter/ovl_Bg_Gate_Shutter_reloc.o" +endseg + +beginseg + name "ovl_Eff_Dust" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Eff_Dust/ovl_Eff_Dust_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Fusya" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Fusya/ovl_Bg_Spot01_Fusya_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Idohashira" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idohashira/ovl_Bg_Spot01_Idohashira_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Idomizu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idomizu/ovl_Bg_Spot01_Idomizu_reloc.o" +endseg + +beginseg + name "ovl_Bg_Po_Syokudai" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Syokudai/ovl_Bg_Po_Syokudai_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ganon_Otyuka" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ganon_Otyuka/ovl_Bg_Ganon_Otyuka_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot15_Rrbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Rrbox/ovl_Bg_Spot15_Rrbox_reloc.o" +endseg + +beginseg + name "ovl_Bg_Umajump" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Umajump/ovl_Bg_Umajump_reloc.o" +endseg + +beginseg + name "ovl_En_Insect" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Insect/z_en_insect.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Insect/ovl_En_Insect_reloc.o" +endseg + +beginseg + name "ovl_En_Butte" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Butte/z_en_butte.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Butte/ovl_En_Butte_reloc.o" +endseg + +beginseg + name "ovl_En_Fish" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fish/z_en_fish.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fish/ovl_En_Fish_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot08_Iceblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Iceblock/ovl_Bg_Spot08_Iceblock_reloc.o" +endseg + +beginseg + name "ovl_Item_Etcetera" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Etcetera/ovl_Item_Etcetera_reloc.o" +endseg + +beginseg + name "ovl_Arrow_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Fire/ovl_Arrow_Fire_reloc.o" +endseg + +beginseg + name "ovl_Arrow_Ice" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Ice/ovl_Arrow_Ice_reloc.o" +endseg + +beginseg + name "ovl_Arrow_Light" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Light/ovl_Arrow_Light_reloc.o" +endseg + +beginseg + name "ovl_Obj_Kibako" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako/ovl_Obj_Kibako_reloc.o" +endseg + +beginseg + name "ovl_Obj_Tsubo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Tsubo/ovl_Obj_Tsubo_reloc.o" +endseg + +beginseg + name "ovl_En_Wonder_Item" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Item/ovl_En_Wonder_Item_reloc.o" +endseg + +beginseg + name "ovl_En_Ik" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ik/z_en_ik.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ik/ovl_En_Ik_reloc.o" +endseg + +beginseg + name "ovl_Demo_Ik" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ik/ovl_Demo_Ik_reloc.o" +endseg + +beginseg + name "ovl_En_Skj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skj/z_en_skj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skj/ovl_En_Skj_reloc.o" +endseg + +beginseg + name "ovl_En_Skjneedle" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skjneedle/ovl_En_Skjneedle_reloc.o" +endseg + +beginseg + name "ovl_En_G_Switch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_G_Switch/ovl_En_G_Switch_reloc.o" +endseg + +beginseg + name "ovl_Demo_Ext" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ext/ovl_Demo_Ext_reloc.o" +endseg + +beginseg + name "ovl_Demo_Shd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Shd/ovl_Demo_Shd_reloc.o" +endseg + +beginseg + name "ovl_En_Dns" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dns/z_en_dns.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dns/ovl_En_Dns_reloc.o" +endseg + +beginseg + name "ovl_Elf_Msg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg/ovl_Elf_Msg_reloc.o" +endseg + +beginseg + name "ovl_En_Honotrap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Honotrap/ovl_En_Honotrap_reloc.o" +endseg + +beginseg + name "ovl_En_Tubo_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tubo_Trap/ovl_En_Tubo_Trap_reloc.o" +endseg + +beginseg + name "ovl_Obj_Ice_Poly" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Ice_Poly/ovl_Obj_Ice_Poly_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot03_Taki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot03_Taki/ovl_Bg_Spot03_Taki_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot07_Taki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot07_Taki/ovl_Bg_Spot07_Taki_reloc.o" +endseg + +beginseg + name "ovl_En_Fz" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fz/z_en_fz.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fz/ovl_En_Fz_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Relay" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Relay/ovl_En_Po_Relay_reloc.o" +endseg + +beginseg + name "ovl_Bg_Relay_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Relay_Objects/ovl_Bg_Relay_Objects_reloc.o" +endseg + +beginseg + name "ovl_En_Diving_Game" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Diving_Game/ovl_En_Diving_Game_reloc.o" +endseg + +beginseg + name "ovl_En_Kusa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kusa/z_en_kusa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kusa/ovl_En_Kusa_reloc.o" +endseg + +beginseg + name "ovl_Obj_Bean" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bean/ovl_Obj_Bean_reloc.o" +endseg + +beginseg + name "ovl_Obj_Bombiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bombiwa/ovl_Obj_Bombiwa_reloc.o" +endseg + +beginseg + name "ovl_Obj_Switch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Switch/ovl_Obj_Switch_reloc.o" +endseg + +beginseg + name "ovl_Obj_Elevator" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Elevator/ovl_Obj_Elevator_reloc.o" +endseg + +beginseg + name "ovl_Obj_Lift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lift/ovl_Obj_Lift_reloc.o" +endseg + +beginseg + name "ovl_Obj_Hsblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hsblock/ovl_Obj_Hsblock_reloc.o" +endseg + +beginseg + name "ovl_En_Okarina_Tag" + compress +include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag_cutscene_data.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/ovl_En_Okarina_Tag_reloc.o" +endseg + +beginseg + name "ovl_En_Yabusame_Mark" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yabusame_Mark/ovl_En_Yabusame_Mark_reloc.o" +endseg + +beginseg + name "ovl_En_Goroiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goroiwa/ovl_En_Goroiwa_reloc.o" +endseg + +beginseg + name "ovl_En_Ex_Ruppy" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Ruppy/ovl_En_Ex_Ruppy_reloc.o" +endseg + +beginseg + name "ovl_En_Toryo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Toryo/z_en_toryo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Toryo/ovl_En_Toryo_reloc.o" +endseg + +beginseg + name "ovl_En_Daiku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku/z_en_daiku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku/ovl_En_Daiku_reloc.o" +endseg + +beginseg + name "ovl_En_Nwc" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nwc/z_en_nwc.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nwc/ovl_En_Nwc_reloc.o" +endseg + +beginseg + name "ovl_En_Blkobj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Blkobj/ovl_En_Blkobj_reloc.o" +endseg + +beginseg + name "ovl_Item_Inbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Inbox/ovl_Item_Inbox_reloc.o" +endseg + +beginseg + name "ovl_En_Ge1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge1/z_en_ge1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge1/ovl_En_Ge1_reloc.o" +endseg + +beginseg + name "ovl_Obj_Blockstop" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Blockstop/ovl_Obj_Blockstop_reloc.o" +endseg + +beginseg + name "ovl_En_Sda" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sda/z_en_sda.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sda/ovl_En_Sda_reloc.o" +endseg + +beginseg + name "ovl_En_Clear_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Clear_Tag/ovl_En_Clear_Tag_reloc.o" +endseg + +beginseg + name "ovl_En_Niw_Lady" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Lady/ovl_En_Niw_Lady_reloc.o" +endseg + +beginseg + name "ovl_En_Gm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gm/z_en_gm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gm/ovl_En_Gm_reloc.o" +endseg + +beginseg + name "ovl_En_Ms" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ms/z_en_ms.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ms/ovl_En_Ms_reloc.o" +endseg + +beginseg + name "ovl_En_Hs" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs/z_en_hs.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs/ovl_En_Hs_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ingate" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ingate/ovl_Bg_Ingate_reloc.o" +endseg + +beginseg + name "ovl_En_Kanban" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kanban/z_en_kanban.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kanban/ovl_En_Kanban_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi3/ovl_En_Heishi3_reloc.o" +endseg + +beginseg + name "ovl_En_Syateki_Niw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Niw/ovl_En_Syateki_Niw_reloc.o" +endseg + +beginseg + name "ovl_En_Attack_Niw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Attack_Niw/ovl_En_Attack_Niw_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Idosoko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idosoko/ovl_Bg_Spot01_Idosoko_reloc.o" +endseg + +beginseg + name "ovl_En_Sa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sa/z_en_sa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sa/ovl_En_Sa_reloc.o" +endseg + +beginseg + name "ovl_En_Wonder_Talk" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk/ovl_En_Wonder_Talk_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gjyo_Bridge" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gjyo_Bridge/ovl_Bg_Gjyo_Bridge_reloc.o" +endseg + +beginseg + name "ovl_En_Ds" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ds/z_en_ds.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ds/ovl_En_Ds_reloc.o" +endseg + +beginseg + name "ovl_En_Mk" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mk/z_en_mk.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mk/ovl_En_Mk_reloc.o" +endseg + +beginseg + name "ovl_En_Bom_Bowl_Man" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Man/ovl_En_Bom_Bowl_Man_reloc.o" +endseg + +beginseg + name "ovl_En_Bom_Bowl_Pit" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Pit/ovl_En_Bom_Bowl_Pit_reloc.o" +endseg + +beginseg + name "ovl_En_Owl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Owl/z_en_owl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Owl/ovl_En_Owl_reloc.o" +endseg + +beginseg + name "ovl_En_Ishi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ishi/z_en_ishi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ishi/ovl_En_Ishi_reloc.o" +endseg + +beginseg + name "ovl_Obj_Hana" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hana/ovl_Obj_Hana_reloc.o" +endseg + +beginseg + name "ovl_Obj_Lightswitch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lightswitch/ovl_Obj_Lightswitch_reloc.o" +endseg + +beginseg + name "ovl_Obj_Mure2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure2/z_obj_mure2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure2/ovl_Obj_Mure2_reloc.o" +endseg + +beginseg + name "ovl_En_Go" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go/z_en_go.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go/ovl_En_Go_reloc.o" +endseg + +beginseg + name "ovl_En_Fu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fu/z_en_fu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fu/ovl_En_Fu_reloc.o" +endseg + +beginseg + name "ovl_En_Changer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Changer/z_en_changer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Changer/ovl_En_Changer_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Megami" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Megami/ovl_Bg_Jya_Megami_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Lift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Lift/ovl_Bg_Jya_Lift_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Bigmirror" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bigmirror/ovl_Bg_Jya_Bigmirror_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Bombchuiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/ovl_Bg_Jya_Bombchuiwa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Amishutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Amishutter/ovl_Bg_Jya_Amishutter_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Bombiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombiwa/ovl_Bg_Jya_Bombiwa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Basket" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Basket/ovl_Bg_Spot18_Basket_reloc.o" +endseg + +beginseg + name "ovl_En_Ganon_Organ" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Organ/ovl_En_Ganon_Organ_reloc.o" +endseg + +beginseg + name "ovl_En_Siofuki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Siofuki/ovl_En_Siofuki_reloc.o" +endseg + +beginseg + name "ovl_En_Stream" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Stream/z_en_stream.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Stream/ovl_En_Stream_reloc.o" +endseg + +beginseg + name "ovl_En_Mm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm/z_en_mm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm/ovl_En_Mm_reloc.o" +endseg + +beginseg + name "ovl_En_Ko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ko/z_en_ko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ko/ovl_En_Ko_reloc.o" +endseg + +beginseg + name "ovl_En_Kz" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kz/z_en_kz.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kz/ovl_En_Kz_reloc.o" +endseg + +beginseg + name "ovl_En_Weather_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weather_Tag/ovl_En_Weather_Tag_reloc.o" +endseg + +beginseg + name "ovl_Bg_Sst_Floor" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Sst_Floor/ovl_Bg_Sst_Floor_reloc.o" +endseg + +beginseg + name "ovl_En_Ani" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ani/z_en_ani.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ani/ovl_En_Ani_reloc.o" +endseg + +beginseg + name "ovl_En_Ex_Item" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Item/ovl_En_Ex_Item_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Ironobj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Ironobj/ovl_Bg_Jya_Ironobj_reloc.o" +endseg + +beginseg + name "ovl_En_Js" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Js/z_en_js.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Js/ovl_En_Js_reloc.o" +endseg + +beginseg + name "ovl_En_Jsjutan" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jsjutan/ovl_En_Jsjutan_reloc.o" +endseg + +beginseg + name "ovl_En_Cs" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cs/z_en_cs.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cs/ovl_En_Cs_reloc.o" +endseg + +beginseg + name "ovl_En_Md" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Md/z_en_md.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Md/ovl_En_Md_reloc.o" +endseg + +beginseg + name "ovl_En_Hy" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hy/z_en_hy.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hy/ovl_En_Hy_reloc.o" +endseg + +beginseg + name "ovl_En_Ganon_Mant" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Mant/ovl_En_Ganon_Mant_reloc.o" +endseg + +beginseg + name "ovl_En_Okarina_Effect" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Effect/ovl_En_Okarina_Effect_reloc.o" +endseg + +beginseg + name "ovl_En_Mag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/z_en_mag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/ovl_En_Mag_reloc.o" +endseg + +beginseg + name "ovl_Door_Gerudo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Gerudo/ovl_Door_Gerudo_reloc.o" +endseg + +beginseg + name "ovl_Elf_Msg2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg2/ovl_Elf_Msg2_reloc.o" +endseg + +beginseg + name "ovl_Demo_Gt" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gt/ovl_Demo_Gt_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Field" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Field/ovl_En_Po_Field_reloc.o" +endseg + +beginseg + name "ovl_Efc_Erupc" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Efc_Erupc/ovl_Efc_Erupc_reloc.o" +endseg + +beginseg + name "ovl_Bg_Zg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Zg/ovl_Bg_Zg_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi4/ovl_En_Heishi4_reloc.o" +endseg + +beginseg + name "ovl_En_Zl3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl3/z_en_zl3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl3/ovl_En_Zl3_reloc.o" +endseg + +beginseg + name "ovl_Boss_Ganon2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon2/ovl_Boss_Ganon2_reloc.o" +endseg + +beginseg + name "ovl_En_Kakasi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi/ovl_En_Kakasi_reloc.o" +endseg + +beginseg + name "ovl_En_Takara_Man" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Takara_Man/ovl_En_Takara_Man_reloc.o" +endseg + +beginseg + name "ovl_Obj_Makeoshihiki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makeoshihiki/ovl_Obj_Makeoshihiki_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Spot" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Spot/ovl_Oceff_Spot_reloc.o" +endseg + +beginseg + name "ovl_End_Title" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_End_Title/z_end_title.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_End_Title/ovl_End_Title_reloc.o" +endseg + +beginseg + name "ovl_En_Torch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch/z_en_torch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch/ovl_En_Torch_reloc.o" +endseg + +beginseg + name "ovl_Demo_Ec" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ec/ovl_Demo_Ec_reloc.o" +endseg + +beginseg + name "ovl_Shot_Sun" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/ovl_Shot_Sun_reloc.o" +endseg + +beginseg + name "ovl_En_Dy_Extra" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dy_Extra/ovl_En_Dy_Extra_reloc.o" +endseg + +beginseg + name "ovl_En_Wonder_Talk2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk2/ovl_En_Wonder_Talk2_reloc.o" +endseg + +beginseg + name "ovl_En_Ge2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge2/z_en_ge2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge2/ovl_En_Ge2_reloc.o" +endseg + +beginseg + name "ovl_Obj_Roomtimer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Roomtimer/ovl_Obj_Roomtimer_reloc.o" +endseg + +beginseg + name "ovl_En_Ssh" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ssh/z_en_ssh.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ssh/ovl_En_Ssh_reloc.o" +endseg + +beginseg + name "ovl_En_Sth" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sth/z_en_sth.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sth/ovl_En_Sth_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe/ovl_Oceff_Wipe_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dust" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dust/ovl_Effect_Ss_Dust_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_KiraKira" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_KiraKira/ovl_Effect_Ss_KiraKira_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Bomb" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb/ovl_Effect_Ss_Bomb_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Bomb2" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb2/ovl_Effect_Ss_Bomb2_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Blast" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Blast/ovl_Effect_Ss_Blast_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Spk" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Spk/ovl_Effect_Ss_G_Spk_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_D_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_D_Fire/ovl_Effect_Ss_D_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Bubble" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bubble/ovl_Effect_Ss_Bubble_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Ripple" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Ripple/ovl_Effect_Ss_G_Ripple_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Splash" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Splash/ovl_Effect_Ss_G_Splash_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Magma" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma/ovl_Effect_Ss_G_Magma_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Fire/ovl_Effect_Ss_G_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Lightning" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Lightning/ovl_Effect_Ss_Lightning_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dt_Bubble" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/ovl_Effect_Ss_Dt_Bubble_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Hahen" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Hahen/ovl_Effect_Ss_Hahen_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Stick" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stick/ovl_Effect_Ss_Stick_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Sibuki" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki/ovl_Effect_Ss_Sibuki_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Sibuki2" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki2/ovl_Effect_Ss_Sibuki2_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Magma2" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma2/ovl_Effect_Ss_G_Magma2_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Stone1" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stone1/ovl_Effect_Ss_Stone1_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_HitMark" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_HitMark/ovl_Effect_Ss_HitMark_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Fhg_Flash" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/ovl_Effect_Ss_Fhg_Flash_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_K_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_K_Fire/ovl_Effect_Ss_K_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Solder_Srch_Ball" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/ovl_Effect_Ss_Solder_Srch_Ball_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Kakera" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Kakera/ovl_Effect_Ss_Kakera_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Ice_Piece" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/ovl_Effect_Ss_Ice_Piece_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_En_Ice" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Ice/ovl_Effect_Ss_En_Ice_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Fire_Tail" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/ovl_Effect_Ss_Fire_Tail_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_En_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Fire/ovl_Effect_Ss_En_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Extra" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Extra/ovl_Effect_Ss_Extra_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Fcircle" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fcircle/ovl_Effect_Ss_Fcircle_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Db" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Db/ovl_Effect_Ss_Dead_Db_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Dd" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/ovl_Effect_Ss_Dead_Dd_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Ds" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/ovl_Effect_Ss_Dead_Ds_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Sound" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/ovl_Effect_Ss_Dead_Sound_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Storm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Storm/ovl_Oceff_Storm_reloc.o" +endseg + +beginseg + name "ovl_En_Weiyer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weiyer/ovl_En_Weiyer_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot05_Soko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot05_Soko/ovl_Bg_Spot05_Soko_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_1flift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_1flift/ovl_Bg_Jya_1flift_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Haheniron" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Haheniron/ovl_Bg_Jya_Haheniron_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot12_Gate" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Gate/ovl_Bg_Spot12_Gate_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot12_Saku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Saku/ovl_Bg_Spot12_Saku_reloc.o" +endseg + +beginseg + name "ovl_En_Hintnuts" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hintnuts/ovl_En_Hintnuts_reloc.o" +endseg + +beginseg + name "ovl_En_Nutsball" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nutsball/ovl_En_Nutsball_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot00_Break" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Break/z_bg_spot00_break.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Break/ovl_Bg_Spot00_Break_reloc.o" +endseg + +beginseg + name "ovl_En_Shopnuts" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Shopnuts/ovl_En_Shopnuts_reloc.o" +endseg + +beginseg + name "ovl_En_It" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_It/z_en_it.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_It/ovl_En_It_reloc.o" +endseg + +beginseg + name "ovl_En_GeldB" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GeldB/z_en_geldb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GeldB/ovl_En_GeldB_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe2/ovl_Oceff_Wipe2_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe3/ovl_Oceff_Wipe3_reloc.o" +endseg + +beginseg + name "ovl_En_Niw_Girl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Girl/ovl_En_Niw_Girl_reloc.o" +endseg + +beginseg + name "ovl_En_Dog" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dog/z_en_dog.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dog/ovl_En_Dog_reloc.o" +endseg + +beginseg + name "ovl_En_Si" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Si/z_en_si.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Si/ovl_En_Si_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Objects2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Objects2/z_bg_spot01_objects2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Objects2/ovl_Bg_Spot01_Objects2_reloc.o" +endseg + +beginseg + name "ovl_Obj_Comb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Comb/ovl_Obj_Comb_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot11_Bakudankabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/ovl_Bg_Spot11_Bakudankabe_reloc.o" +endseg + +beginseg + name "ovl_Obj_Kibako2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako2/ovl_Obj_Kibako2_reloc.o" +endseg + +beginseg + name "ovl_En_Dnt_Demo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Demo/ovl_En_Dnt_Demo_reloc.o" +endseg + +beginseg + name "ovl_En_Dnt_Jiji" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Jiji/ovl_En_Dnt_Jiji_reloc.o" +endseg + +beginseg + name "ovl_En_Dnt_Nomal" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Nomal/ovl_En_Dnt_Nomal_reloc.o" +endseg + +beginseg + name "ovl_En_Guest" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Guest/z_en_guest.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Guest/ovl_En_Guest_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bom_Guard" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bom_Guard/ovl_Bg_Bom_Guard_reloc.o" +endseg + +beginseg + name "ovl_En_Hs2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs2/z_en_hs2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs2/ovl_En_Hs2_reloc.o" +endseg + +beginseg + name "ovl_Demo_Kekkai" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kekkai/ovl_Demo_Kekkai_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot08_Bakudankabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/ovl_Bg_Spot08_Bakudankabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot17_Bakudankabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/ovl_Bg_Spot17_Bakudankabe_reloc.o" +endseg + +beginseg + name "ovl_Obj_Mure3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure3/ovl_Obj_Mure3_reloc.o" +endseg + +beginseg + name "ovl_En_Tg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/z_en_tg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/ovl_En_Tg_reloc.o" +endseg + +beginseg + name "ovl_En_Mu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mu/z_en_mu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mu/ovl_En_Mu_reloc.o" +endseg + +beginseg + name "ovl_En_Go2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go2/z_en_go2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go2/ovl_En_Go2_reloc.o" +endseg + +beginseg + name "ovl_En_Wf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wf/z_en_wf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wf/ovl_En_Wf_reloc.o" +endseg + +beginseg + name "ovl_En_Skb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skb/z_en_skb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skb/ovl_En_Skb_reloc.o" +endseg + +beginseg + name "ovl_Demo_Gj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gj/ovl_Demo_Gj_reloc.o" +endseg + +beginseg + name "ovl_Demo_Geff" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Geff/ovl_Demo_Geff_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Firemeiro" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/ovl_Bg_Gnd_Firemeiro_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Darkmeiro" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/ovl_Bg_Gnd_Darkmeiro_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Soulmeiro" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/ovl_Bg_Gnd_Soulmeiro_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Nisekabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/ovl_Bg_Gnd_Nisekabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Iceblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Iceblock/ovl_Bg_Gnd_Iceblock_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ydan_Sp" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Sp/ovl_Bg_Ydan_Sp_reloc.o" +endseg + +beginseg + name "ovl_En_Gb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gb/z_en_gb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gb/ovl_En_Gb_reloc.o" +endseg + +beginseg + name "ovl_En_Gs" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gs/z_en_gs.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gs/ovl_En_Gs_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Bwall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Bwall/ovl_Bg_Mizu_Bwall_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Shutter/ovl_Bg_Mizu_Shutter_reloc.o" +endseg + +beginseg + name "ovl_En_Daiku_Kakariko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku_Kakariko/ovl_En_Daiku_Kakariko_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bowl_Wall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bowl_Wall/ovl_Bg_Bowl_Wall_reloc.o" +endseg + +beginseg + name "ovl_En_Wall_Tubo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wall_Tubo/ovl_En_Wall_Tubo_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Desert" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Desert/ovl_En_Po_Desert_reloc.o" +endseg + +beginseg + name "ovl_En_Crow" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Crow/z_en_crow.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Crow/ovl_En_Crow_reloc.o" +endseg + +beginseg + name "ovl_Door_Killer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Killer/z_door_killer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Killer/ovl_Door_Killer_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot11_Oasis" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Oasis/ovl_Bg_Spot11_Oasis_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Futa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Futa/z_bg_spot18_futa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Futa/ovl_Bg_Spot18_Futa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Shutter/ovl_Bg_Spot18_Shutter_reloc.o" +endseg + +beginseg + name "ovl_En_Ma3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma3/z_en_ma3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma3/ovl_En_Ma3_reloc.o" +endseg + +beginseg + name "ovl_En_Cow" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cow/z_en_cow.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cow/ovl_En_Cow_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Turara" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Turara/ovl_Bg_Ice_Turara_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shutter/ovl_Bg_Ice_Shutter_reloc.o" +endseg + +beginseg + name "ovl_En_Kakasi2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi2/ovl_En_Kakasi2_reloc.o" +endseg + +beginseg + name "ovl_En_Kakasi3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi3/ovl_En_Kakasi3_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe4/ovl_Oceff_Wipe4_reloc.o" +endseg + +beginseg + name "ovl_En_Eg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eg/z_en_eg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eg/ovl_En_Eg_reloc.o" +endseg + +beginseg + name "ovl_Bg_Menkuri_Nisekabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/z_bg_menkuri_nisekabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/ovl_Bg_Menkuri_Nisekabe_reloc.o" +endseg + +beginseg + name "ovl_En_Zo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zo/z_en_zo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zo/ovl_En_Zo_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Ice_Smoke" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/ovl_Effect_Ss_Ice_Smoke_reloc.o" +endseg + +beginseg + name "ovl_Obj_Makekinsuta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makekinsuta/ovl_Obj_Makekinsuta_reloc.o" +endseg + +beginseg + name "ovl_En_Ge3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge3/z_en_ge3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge3/ovl_En_Ge3_reloc.o" +endseg + +beginseg + name "ovl_Obj_Timeblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Timeblock/ovl_Obj_Timeblock_reloc.o" +endseg + +beginseg + name "ovl_Obj_Hamishi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hamishi/ovl_Obj_Hamishi_reloc.o" +endseg + +beginseg + name "ovl_En_Zl4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl4/z_en_zl4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl4/ovl_En_Zl4_reloc.o" +endseg + +beginseg + name "ovl_En_Mm2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm2/z_en_mm2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm2/ovl_En_Mm2_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Block" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Block/ovl_Bg_Jya_Block_reloc.o" +endseg + +beginseg + name "ovl_Obj_Warp2block" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Warp2block/ovl_Obj_Warp2block_reloc.o" +endseg + +#else + beginseg name "ovl_Arms_Hook" compress @@ -4160,6 +7418,8 @@ beginseg include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/ovl_Shot_Sun_reloc.o" endseg +#endif + beginseg name "gameplay_keep" compress @@ -8078,6 +11338,3924 @@ beginseg number 0 endseg +// Scene files are reordered between versions. On GameCube and iQue, dungeon scenes +// have been moved to the beginning. +#if PLATFORM_N64 + +beginseg + name "ddan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_scene.o" + number 2 +endseg + +beginseg + name "ddan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_0.o" + number 3 +endseg + +beginseg + name "ddan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_1.o" + number 3 +endseg + +beginseg + name "ddan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_2.o" + number 3 +endseg + +beginseg + name "ddan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_3.o" + number 3 +endseg + +beginseg + name "ddan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_4.o" + number 3 +endseg + +beginseg + name "ddan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_5.o" + number 3 +endseg + +beginseg + name "ddan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_6.o" + number 3 +endseg + +beginseg + name "ddan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_7.o" + number 3 +endseg + +beginseg + name "ddan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_8.o" + number 3 +endseg + +beginseg + name "ddan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_9.o" + number 3 +endseg + +beginseg + name "ddan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_10.o" + number 3 +endseg + +beginseg + name "ddan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_11.o" + number 3 +endseg + +beginseg + name "ddan_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_12.o" + number 3 +endseg + +beginseg + name "ddan_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_13.o" + number 3 +endseg + +beginseg + name "ddan_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_14.o" + number 3 +endseg + +beginseg + name "ddan_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_15.o" + number 3 +endseg + +beginseg + name "ddan_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_16.o" + number 3 +endseg + +beginseg + name "spot00_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot00/spot00_scene.o" + number 2 +endseg + +beginseg + name "spot00_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot00/spot00_room_0.o" + number 3 +endseg + +beginseg + name "spot01_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot01/spot01_scene.o" + number 2 +endseg + +beginseg + name "spot01_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot01/spot01_room_0.o" + number 3 +endseg + +beginseg + name "spot02_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_scene.o" + number 2 +endseg + +beginseg + name "spot02_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_room_0.o" + number 3 +endseg + +beginseg + name "spot02_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_room_1.o" + number 3 +endseg + +beginseg + name "spot03_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_scene.o" + number 2 +endseg + +beginseg + name "spot03_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_room_0.o" + number 3 +endseg + +beginseg + name "spot03_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_room_1.o" + number 3 +endseg + +beginseg + name "spot04_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_scene.o" + number 2 +endseg + +beginseg + name "spot04_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_0.o" + number 3 +endseg + +beginseg + name "spot04_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_1.o" + number 3 +endseg + +beginseg + name "spot04_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_2.o" + number 3 +endseg + +beginseg + name "spot05_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot05/spot05_scene.o" + number 2 +endseg + +beginseg + name "spot05_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot05/spot05_room_0.o" + number 3 +endseg + +beginseg + name "spot06_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot06/spot06_scene.o" + number 2 +endseg + +beginseg + name "spot06_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot06/spot06_room_0.o" + number 3 +endseg + +beginseg + name "spot07_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_scene.o" + number 2 +endseg + +beginseg + name "spot07_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_room_0.o" + number 3 +endseg + +beginseg + name "spot07_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_room_1.o" + number 3 +endseg + +beginseg + name "spot08_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot08/spot08_scene.o" + number 2 +endseg + +beginseg + name "spot08_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot08/spot08_room_0.o" + number 3 +endseg + +beginseg + name "spot09_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot09/spot09_scene.o" + number 2 +endseg + +beginseg + name "spot09_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot09/spot09_room_0.o" + number 3 +endseg + +beginseg + name "spot10_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_scene.o" + number 2 +endseg + +beginseg + name "spot10_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_0.o" + number 3 +endseg + +beginseg + name "spot10_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_1.o" + number 3 +endseg + +beginseg + name "spot10_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_2.o" + number 3 +endseg + +beginseg + name "spot10_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_3.o" + number 3 +endseg + +beginseg + name "spot10_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_4.o" + number 3 +endseg + +beginseg + name "spot10_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_5.o" + number 3 +endseg + +beginseg + name "spot10_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_6.o" + number 3 +endseg + +beginseg + name "spot10_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_7.o" + number 3 +endseg + +beginseg + name "spot10_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_8.o" + number 3 +endseg + +beginseg + name "spot10_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_9.o" + number 3 +endseg + +beginseg + name "spot11_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot11/spot11_scene.o" + number 2 +endseg + +beginseg + name "spot11_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot11/spot11_room_0.o" + number 3 +endseg + +beginseg + name "spot12_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_scene.o" + number 2 +endseg + +beginseg + name "spot12_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_room_0.o" + number 3 +endseg + +beginseg + name "spot12_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_room_1.o" + number 3 +endseg + +beginseg + name "spot13_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_scene.o" + number 2 +endseg + +beginseg + name "spot13_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_room_0.o" + number 3 +endseg + +beginseg + name "spot13_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_room_1.o" + number 3 +endseg + +beginseg + name "spot15_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot15/spot15_scene.o" + number 2 +endseg + +beginseg + name "spot15_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot15/spot15_room_0.o" + number 3 +endseg + +beginseg + name "spot16_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot16/spot16_scene.o" + number 2 +endseg + +beginseg + name "spot16_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot16/spot16_room_0.o" + number 3 +endseg + +beginseg + name "spot17_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_scene.o" + number 2 +endseg + +beginseg + name "spot17_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_room_0.o" + number 3 +endseg + +beginseg + name "spot17_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_room_1.o" + number 3 +endseg + +beginseg + name "spot18_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_scene.o" + number 2 +endseg + +beginseg + name "spot18_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_0.o" + number 3 +endseg + +beginseg + name "spot18_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_1.o" + number 3 +endseg + +beginseg + name "spot18_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_2.o" + number 3 +endseg + +beginseg + name "spot18_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_3.o" + number 3 +endseg + +beginseg + name "market_day_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_day/market_day_scene.o" + number 2 +endseg + +beginseg + name "market_day_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_day/market_day_room_0.o" + number 3 +endseg + +beginseg + name "market_night_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_night/market_night_scene.o" + number 2 +endseg + +beginseg + name "market_night_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_night/market_night_room_0.o" + number 3 +endseg + +beginseg + name "HIDAN_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_scene.o" + number 2 +endseg + +beginseg + name "HIDAN_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_0.o" + number 3 +endseg + +beginseg + name "HIDAN_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_1.o" + number 3 +endseg + +beginseg + name "HIDAN_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_2.o" + number 3 +endseg + +beginseg + name "HIDAN_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_3.o" + number 3 +endseg + +beginseg + name "HIDAN_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_4.o" + number 3 +endseg + +beginseg + name "HIDAN_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_5.o" + number 3 +endseg + +beginseg + name "HIDAN_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_6.o" + number 3 +endseg + +beginseg + name "HIDAN_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_7.o" + number 3 +endseg + +beginseg + name "HIDAN_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_8.o" + number 3 +endseg + +beginseg + name "HIDAN_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_9.o" + number 3 +endseg + +beginseg + name "HIDAN_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_10.o" + number 3 +endseg + +beginseg + name "HIDAN_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_11.o" + number 3 +endseg + +beginseg + name "HIDAN_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_12.o" + number 3 +endseg + +beginseg + name "HIDAN_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_13.o" + number 3 +endseg + +beginseg + name "HIDAN_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_14.o" + number 3 +endseg + +beginseg + name "HIDAN_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_15.o" + number 3 +endseg + +beginseg + name "HIDAN_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_16.o" + number 3 +endseg + +beginseg + name "HIDAN_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_17.o" + number 3 +endseg + +beginseg + name "HIDAN_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_18.o" + number 3 +endseg + +beginseg + name "HIDAN_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_19.o" + number 3 +endseg + +beginseg + name "HIDAN_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_20.o" + number 3 +endseg + +beginseg + name "HIDAN_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_21.o" + number 3 +endseg + +beginseg + name "HIDAN_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_22.o" + number 3 +endseg + +beginseg + name "HIDAN_room_23" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_23.o" + number 3 +endseg + +beginseg + name "HIDAN_room_24" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_24.o" + number 3 +endseg + +beginseg + name "HIDAN_room_25" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_25.o" + number 3 +endseg + +beginseg + name "HIDAN_room_26" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_26.o" + number 3 +endseg + +beginseg + name "Bmori1_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_scene.o" + number 2 +endseg + +beginseg + name "Bmori1_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_0.o" + number 3 +endseg + +beginseg + name "Bmori1_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_1.o" + number 3 +endseg + +beginseg + name "Bmori1_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_2.o" + number 3 +endseg + +beginseg + name "Bmori1_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_3.o" + number 3 +endseg + +beginseg + name "Bmori1_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_4.o" + number 3 +endseg + +beginseg + name "Bmori1_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_5.o" + number 3 +endseg + +beginseg + name "Bmori1_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_6.o" + number 3 +endseg + +beginseg + name "Bmori1_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_7.o" + number 3 +endseg + +beginseg + name "Bmori1_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_8.o" + number 3 +endseg + +beginseg + name "Bmori1_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_9.o" + number 3 +endseg + +beginseg + name "Bmori1_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_10.o" + number 3 +endseg + +beginseg + name "Bmori1_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_11.o" + number 3 +endseg + +beginseg + name "Bmori1_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_12.o" + number 3 +endseg + +beginseg + name "Bmori1_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_13.o" + number 3 +endseg + +beginseg + name "Bmori1_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_14.o" + number 3 +endseg + +beginseg + name "Bmori1_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_15.o" + number 3 +endseg + +beginseg + name "Bmori1_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_16.o" + number 3 +endseg + +beginseg + name "Bmori1_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_17.o" + number 3 +endseg + +beginseg + name "Bmori1_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_18.o" + number 3 +endseg + +beginseg + name "Bmori1_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_19.o" + number 3 +endseg + +beginseg + name "Bmori1_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_20.o" + number 3 +endseg + +beginseg + name "Bmori1_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_21.o" + number 3 +endseg + +beginseg + name "Bmori1_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_22.o" + number 3 +endseg + +beginseg + name "ydan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_scene.o" + number 2 +endseg + +beginseg + name "ydan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_0.o" + number 3 +endseg + +beginseg + name "ydan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_1.o" + number 3 +endseg + +beginseg + name "ydan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_2.o" + number 3 +endseg + +beginseg + name "ydan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_3.o" + number 3 +endseg + +beginseg + name "ydan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_4.o" + number 3 +endseg + +beginseg + name "ydan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_5.o" + number 3 +endseg + +beginseg + name "ydan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_6.o" + number 3 +endseg + +beginseg + name "ydan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_7.o" + number 3 +endseg + +beginseg + name "ydan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_8.o" + number 3 +endseg + +beginseg + name "ydan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_9.o" + number 3 +endseg + +beginseg + name "ydan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_10.o" + number 3 +endseg + +beginseg + name "ydan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_11.o" + number 3 +endseg + +beginseg + name "kenjyanoma_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kenjyanoma/kenjyanoma_scene.o" + number 2 +endseg + +beginseg + name "kenjyanoma_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kenjyanoma/kenjyanoma_room_0.o" + number 3 +endseg + +beginseg + name "tokinoma_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_scene.o" + number 2 +endseg + +beginseg + name "tokinoma_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_room_0.o" + number 3 +endseg + +beginseg + name "tokinoma_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_room_1.o" + number 3 +endseg + +beginseg + name "link_home_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/link_home/link_home_scene.o" + number 2 +endseg + +beginseg + name "link_home_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/link_home/link_home_room_0.o" + number 3 +endseg + +beginseg + name "kokiri_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/kokiri_shop/kokiri_shop_scene.o" + number 2 +endseg + +beginseg + name "kokiri_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/kokiri_shop/kokiri_shop_room_0.o" + number 3 +endseg + +beginseg + name "MIZUsin_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_scene.o" + number 2 +endseg + +beginseg + name "MIZUsin_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_0.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_1.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_2.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_3.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_4.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_5.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_6.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_7.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_8.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_9.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_10.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_11.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_12.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_13.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_14.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_15.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_16.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_17.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_18.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_19.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_20.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_21.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_22.o" + number 3 +endseg + +beginseg + name "kokiri_home_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home/kokiri_home_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home/kokiri_home_room_0.o" + number 3 +endseg + +beginseg + name "kakusiana_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_scene.o" + number 2 +endseg + +beginseg + name "kakusiana_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_0.o" + number 3 +endseg + +beginseg + name "kakusiana_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_1.o" + number 3 +endseg + +beginseg + name "kakusiana_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_2.o" + number 3 +endseg + +beginseg + name "kakusiana_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_3.o" + number 3 +endseg + +beginseg + name "kakusiana_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_4.o" + number 3 +endseg + +beginseg + name "kakusiana_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_5.o" + number 3 +endseg + +beginseg + name "kakusiana_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_6.o" + number 3 +endseg + +beginseg + name "kakusiana_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_7.o" + number 3 +endseg + +beginseg + name "kakusiana_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_8.o" + number 3 +endseg + +beginseg + name "kakusiana_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_9.o" + number 3 +endseg + +beginseg + name "kakusiana_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_10.o" + number 3 +endseg + +beginseg + name "kakusiana_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_11.o" + number 3 +endseg + +beginseg + name "kakusiana_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_12.o" + number 3 +endseg + +beginseg + name "kakusiana_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_13.o" + number 3 +endseg + +beginseg + name "entra_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_scene.o" + number 2 +endseg + +beginseg + name "entra_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_room_0.o" + number 3 +endseg + +beginseg + name "bdan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_scene.o" + number 2 +endseg + +beginseg + name "bdan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_0.o" + number 3 +endseg + +beginseg + name "bdan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_1.o" + number 3 +endseg + +beginseg + name "bdan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_2.o" + number 3 +endseg + +beginseg + name "bdan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_3.o" + number 3 +endseg + +beginseg + name "bdan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_4.o" + number 3 +endseg + +beginseg + name "bdan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_5.o" + number 3 +endseg + +beginseg + name "bdan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_6.o" + number 3 +endseg + +beginseg + name "bdan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_7.o" + number 3 +endseg + +beginseg + name "bdan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_8.o" + number 3 +endseg + +beginseg + name "bdan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_9.o" + number 3 +endseg + +beginseg + name "bdan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_10.o" + number 3 +endseg + +beginseg + name "bdan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_11.o" + number 3 +endseg + +beginseg + name "bdan_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_12.o" + number 3 +endseg + +beginseg + name "bdan_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_13.o" + number 3 +endseg + +beginseg + name "bdan_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_14.o" + number 3 +endseg + +beginseg + name "bdan_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_15.o" + number 3 +endseg + +beginseg + name "HAKAdan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_scene.o" + number 2 +endseg + +beginseg + name "HAKAdan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_0.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_1.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_2.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_3.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_4.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_5.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_6.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_7.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_8.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_9.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_10.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_11.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_12.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_13.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_14.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_15.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_16.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_17.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_18.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_19.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_20.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_21.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_22.o" + number 3 +endseg + +beginseg + name "moribossroom_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_scene.o" + number 2 +endseg + +beginseg + name "moribossroom_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_room_0.o" + number 3 +endseg + +beginseg + name "moribossroom_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_room_1.o" + number 3 +endseg + +beginseg + name "syatekijyou_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/syatekijyou/syatekijyou_scene.o" + number 2 +endseg + +beginseg + name "syatekijyou_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/syatekijyou/syatekijyou_room_0.o" + number 3 +endseg + +beginseg + name "men_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_scene.o" + number 2 +endseg + +beginseg + name "men_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_0.o" + number 3 +endseg + +beginseg + name "men_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_1.o" + number 3 +endseg + +beginseg + name "men_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_2.o" + number 3 +endseg + +beginseg + name "men_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_3.o" + number 3 +endseg + +beginseg + name "men_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_4.o" + number 3 +endseg + +beginseg + name "men_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_5.o" + number 3 +endseg + +beginseg + name "men_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_6.o" + number 3 +endseg + +beginseg + name "men_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_7.o" + number 3 +endseg + +beginseg + name "men_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_8.o" + number 3 +endseg + +beginseg + name "men_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_9.o" + number 3 +endseg + +beginseg + name "men_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_10.o" + number 3 +endseg + +beginseg + name "shop1_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/shop1/shop1_scene.o" + number 2 +endseg + +beginseg + name "shop1_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/shop1/shop1_room_0.o" + number 3 +endseg + +beginseg + name "hairal_niwa_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa/hairal_niwa_scene.o" + number 2 +endseg + +beginseg + name "hairal_niwa_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa/hairal_niwa_room_0.o" + number 3 +endseg + +beginseg + name "ganon_tou_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_scene.o" + number 2 +endseg + +beginseg + name "ganon_tou_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_room_0.o" + number 3 +endseg + +beginseg + name "market_alley_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley/market_alley_scene.o" + number 2 +endseg + +beginseg + name "market_alley_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley/market_alley_room_0.o" + number 3 +endseg + +beginseg + name "spot20_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot20/spot20_scene.o" + number 2 +endseg + +beginseg + name "spot20_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot20/spot20_room_0.o" + number 3 +endseg + +beginseg + name "market_ruins_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_ruins/market_ruins_scene.o" + number 2 +endseg + +beginseg + name "market_ruins_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_ruins/market_ruins_room_0.o" + number 3 +endseg + +beginseg + name "entra_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra_n/entra_n_scene.o" + number 2 +endseg + +beginseg + name "entra_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra_n/entra_n_room_0.o" + number 3 +endseg + +beginseg + name "enrui_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/enrui/enrui_scene.o" + number 2 +endseg + +beginseg + name "enrui_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/enrui/enrui_room_0.o" + number 3 +endseg + +beginseg + name "market_alley_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley_n/market_alley_n_scene.o" + number 2 +endseg + +beginseg + name "market_alley_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley_n/market_alley_n_room_0.o" + number 3 +endseg + +beginseg + name "hiral_demo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hiral_demo/hiral_demo_scene.o" + number 2 +endseg + +beginseg + name "hiral_demo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hiral_demo/hiral_demo_room_0.o" + number 3 +endseg + +beginseg + name "kokiri_home3_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home3/kokiri_home3_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home3_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home3/kokiri_home3_room_0.o" + number 3 +endseg + +beginseg + name "jyasinzou_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_scene.o" + number 2 +endseg + +beginseg + name "jyasinzou_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_0.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_1.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_2.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_3.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_4.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_5.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_6.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_7.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_8.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_9.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_10.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_11.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_12.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_13.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_14.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_15.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_16.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_17.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_18.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_19.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_20.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_21.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_22.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_23" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_23.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_24" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_24.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_25" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_25.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_26" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_26.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_27" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_27.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_28" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_28.o" + number 3 +endseg + +beginseg + name "ice_doukutu_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.o" + number 2 +endseg + +beginseg + name "ice_doukutu_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_0.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_1.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_2.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_3.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_4.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_5.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_6.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_7.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_8.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_9.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_10.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_11.o" + number 3 +endseg + +beginseg + name "malon_stable_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/malon_stable/malon_stable_scene.o" + number 2 +endseg + +beginseg + name "malon_stable_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/malon_stable/malon_stable_room_0.o" + number 3 +endseg + +beginseg + name "kakariko_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kakariko/kakariko_scene.o" + number 2 +endseg + +beginseg + name "kakariko_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kakariko/kakariko_room_0.o" + number 3 +endseg + +beginseg + name "bdan_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_scene.o" + number 2 +endseg + +beginseg + name "bdan_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_room_0.o" + number 3 +endseg + +beginseg + name "bdan_boss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_room_1.o" + number 3 +endseg + +beginseg + name "FIRE_bs_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_scene.o" + number 2 +endseg + +beginseg + name "FIRE_bs_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_room_0.o" + number 3 +endseg + +beginseg + name "FIRE_bs_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_room_1.o" + number 3 +endseg + +beginseg + name "hut_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hut/hut_scene.o" + number 2 +endseg + +beginseg + name "hut_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hut/hut_room_0.o" + number 3 +endseg + +beginseg + name "daiyousei_izumi_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_scene.o" + number 2 +endseg + +beginseg + name "daiyousei_izumi_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_room_0.o" + number 3 +endseg + +beginseg + name "hakaana_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana/hakaana_scene.o" + number 2 +endseg + +beginseg + name "hakaana_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana/hakaana_room_0.o" + number 3 +endseg + +beginseg + name "yousei_izumi_tate_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_tate/yousei_izumi_tate_scene.o" + number 2 +endseg + +beginseg + name "yousei_izumi_tate_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_tate/yousei_izumi_tate_room_0.o" + number 3 +endseg + +beginseg + name "yousei_izumi_yoko_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_scene.o" + number 2 +endseg + +beginseg + name "yousei_izumi_yoko_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_room_0.o" + number 3 +endseg + +beginseg + name "golon_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/golon/golon_scene.o" + number 2 +endseg + +beginseg + name "golon_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/golon/golon_room_0.o" + number 3 +endseg + +beginseg + name "zoora_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/zoora/zoora_scene.o" + number 2 +endseg + +beginseg + name "zoora_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/zoora/zoora_room_0.o" + number 3 +endseg + +beginseg + name "drag_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/drag/drag_scene.o" + number 2 +endseg + +beginseg + name "drag_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/drag/drag_room_0.o" + number 3 +endseg + +beginseg + name "alley_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/alley_shop/alley_shop_scene.o" + number 2 +endseg + +beginseg + name "alley_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/alley_shop/alley_shop_room_0.o" + number 3 +endseg + +beginseg + name "night_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/night_shop/night_shop_scene.o" + number 2 +endseg + +beginseg + name "night_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/night_shop/night_shop_room_0.o" + number 3 +endseg + +beginseg + name "impa_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/impa/impa_scene.o" + number 2 +endseg + +beginseg + name "impa_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/impa/impa_room_0.o" + number 3 +endseg + +beginseg + name "labo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/labo/labo_scene.o" + number 2 +endseg + +beginseg + name "labo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/labo/labo_room_0.o" + number 3 +endseg + +beginseg + name "tent_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tent/tent_scene.o" + number 2 +endseg + +beginseg + name "tent_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tent/tent_room_0.o" + number 3 +endseg + +beginseg + name "nakaniwa_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/nakaniwa/nakaniwa_scene.o" + number 2 +endseg + +beginseg + name "nakaniwa_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/nakaniwa/nakaniwa_room_0.o" + number 3 +endseg + +beginseg + name "ddan_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_scene.o" + number 2 +endseg + +beginseg + name "ddan_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_room_0.o" + number 3 +endseg + +beginseg + name "ddan_boss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_room_1.o" + number 3 +endseg + +beginseg + name "ydan_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_scene.o" + number 2 +endseg + +beginseg + name "ydan_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_room_0.o" + number 3 +endseg + +beginseg + name "ydan_boss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_room_1.o" + number 3 +endseg + +beginseg + name "HAKAdan_bs_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_scene.o" + number 2 +endseg + +beginseg + name "HAKAdan_bs_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_room_0.o" + number 3 +endseg + +beginseg + name "HAKAdan_bs_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_room_1.o" + number 3 +endseg + +beginseg + name "MIZUsin_bs_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_scene.o" + number 2 +endseg + +beginseg + name "MIZUsin_bs_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_room_0.o" + number 3 +endseg + +beginseg + name "MIZUsin_bs_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_room_1.o" + number 3 +endseg + +beginseg + name "ganon_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_scene.o" + number 2 +endseg + +beginseg + name "ganon_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_0.o" + number 3 +endseg + +beginseg + name "ganon_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_1.o" + number 3 +endseg + +beginseg + name "ganon_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_2.o" + number 3 +endseg + +beginseg + name "ganon_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_3.o" + number 3 +endseg + +beginseg + name "ganon_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_4.o" + number 3 +endseg + +beginseg + name "ganon_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_5.o" + number 3 +endseg + +beginseg + name "ganon_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_6.o" + number 3 +endseg + +beginseg + name "ganon_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_7.o" + number 3 +endseg + +beginseg + name "ganon_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_8.o" + number 3 +endseg + +beginseg + name "ganon_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_9.o" + number 3 +endseg + +beginseg + name "ganon_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_boss/ganon_boss_scene.o" + number 2 +endseg + +beginseg + name "ganon_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_boss/ganon_boss_room_0.o" + number 3 +endseg + +beginseg + name "jyasinboss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_scene.o" + number 2 +endseg + +beginseg + name "jyasinboss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_0.o" + number 3 +endseg + +beginseg + name "jyasinboss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_1.o" + number 3 +endseg + +beginseg + name "jyasinboss_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_2.o" + number 3 +endseg + +beginseg + name "jyasinboss_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_3.o" + number 3 +endseg + +beginseg + name "kokiri_home4_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home4/kokiri_home4_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home4_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home4/kokiri_home4_room_0.o" + number 3 +endseg + +beginseg + name "kokiri_home5_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home5/kokiri_home5_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home5_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home5/kokiri_home5_room_0.o" + number 3 +endseg + +beginseg + name "ganon_final_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_final/ganon_final_scene.o" + number 2 +endseg + +beginseg + name "ganon_final_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_final/ganon_final_room_0.o" + number 3 +endseg + +beginseg + name "kakariko3_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakariko3/kakariko3_scene.o" + number 2 +endseg + +beginseg + name "kakariko3_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakariko3/kakariko3_room_0.o" + number 3 +endseg + +beginseg + name "hakasitarelay_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_scene.o" + number 2 +endseg + +beginseg + name "hakasitarelay_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_0.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_1.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_2.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_3.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_4.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_5.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_6.o" + number 3 +endseg + +beginseg + name "shrine_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine/shrine_scene.o" + number 2 +endseg + +beginseg + name "shrine_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine/shrine_room_0.o" + number 3 +endseg + +beginseg + name "turibori_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/turibori/turibori_scene.o" + number 2 +endseg + +beginseg + name "turibori_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/turibori/turibori_room_0.o" + number 3 +endseg + +beginseg + name "shrine_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_n/shrine_n_scene.o" + number 2 +endseg + +beginseg + name "shrine_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_n/shrine_n_room_0.o" + number 3 +endseg + +beginseg + name "shrine_r_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_r/shrine_r_scene.o" + number 2 +endseg + +beginseg + name "shrine_r_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_r/shrine_r_room_0.o" + number 3 +endseg + +beginseg + name "ganontika_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_scene.o" + number 2 +endseg + +beginseg + name "ganontika_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_0.o" + number 3 +endseg + +beginseg + name "ganontika_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_1.o" + number 3 +endseg + +beginseg + name "ganontika_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_2.o" + number 3 +endseg + +beginseg + name "ganontika_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_3.o" + number 3 +endseg + +beginseg + name "ganontika_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_4.o" + number 3 +endseg + +beginseg + name "ganontika_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_5.o" + number 3 +endseg + +beginseg + name "ganontika_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_6.o" + number 3 +endseg + +beginseg + name "ganontika_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_7.o" + number 3 +endseg + +beginseg + name "ganontika_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_8.o" + number 3 +endseg + +beginseg + name "ganontika_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_9.o" + number 3 +endseg + +beginseg + name "ganontika_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_10.o" + number 3 +endseg + +beginseg + name "ganontika_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_11.o" + number 3 +endseg + +beginseg + name "ganontika_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_12.o" + number 3 +endseg + +beginseg + name "ganontika_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_13.o" + number 3 +endseg + +beginseg + name "ganontika_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_14.o" + number 3 +endseg + +beginseg + name "ganontika_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_15.o" + number 3 +endseg + +beginseg + name "ganontika_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_16.o" + number 3 +endseg + +beginseg + name "ganontika_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_17.o" + number 3 +endseg + +beginseg + name "ganontika_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_18.o" + number 3 +endseg + +beginseg + name "ganontika_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_19.o" + number 3 +endseg + +beginseg + name "hakaana2_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana2/hakaana2_scene.o" + number 2 +endseg + +beginseg + name "hakaana2_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana2/hakaana2_room_0.o" + number 3 +endseg + +beginseg + name "gerudoway_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_scene.o" + number 2 +endseg + +beginseg + name "gerudoway_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_0.o" + number 3 +endseg + +beginseg + name "gerudoway_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_1.o" + number 3 +endseg + +beginseg + name "gerudoway_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_2.o" + number 3 +endseg + +beginseg + name "gerudoway_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_3.o" + number 3 +endseg + +beginseg + name "gerudoway_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_4.o" + number 3 +endseg + +beginseg + name "gerudoway_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_5.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_scene.o" + number 2 +endseg + +beginseg + name "HAKAdanCH_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_0.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_1.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_2.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_3.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_4.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_5.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_6.o" + number 3 +endseg + +beginseg + name "hairal_niwa_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa_n/hairal_niwa_n_scene.o" + number 2 +endseg + +beginseg + name "hairal_niwa_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa_n/hairal_niwa_n_room_0.o" + number 3 +endseg + +beginseg + name "bowling_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/bowling/bowling_scene.o" + number 2 +endseg + +beginseg + name "bowling_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/bowling/bowling_room_0.o" + number 3 +endseg + +beginseg + name "hakaana_ouke_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_scene.o" + number 2 +endseg + +beginseg + name "hakaana_ouke_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_0.o" + number 3 +endseg + +beginseg + name "hakaana_ouke_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_1.o" + number 3 +endseg + +beginseg + name "hakaana_ouke_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_2.o" + number 3 +endseg + +beginseg + name "hylia_labo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hylia_labo/hylia_labo_scene.o" + number 2 +endseg + +beginseg + name "hylia_labo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hylia_labo/hylia_labo_room_0.o" + number 3 +endseg + +beginseg + name "souko_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_scene.o" + number 2 +endseg + +beginseg + name "souko_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_0.o" + number 3 +endseg + +beginseg + name "souko_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_1.o" + number 3 +endseg + +beginseg + name "souko_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_2.o" + number 3 +endseg + +beginseg + name "miharigoya_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/miharigoya/miharigoya_scene.o" + number 2 +endseg + +beginseg + name "miharigoya_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/miharigoya/miharigoya_room_0.o" + number 3 +endseg + +beginseg + name "mahouya_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/mahouya/mahouya_scene.o" + number 2 +endseg + +beginseg + name "mahouya_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/mahouya/mahouya_room_0.o" + number 3 +endseg + +beginseg + name "takaraya_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_scene.o" + number 2 +endseg + +beginseg + name "takaraya_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_0.o" + number 3 +endseg + +beginseg + name "takaraya_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_1.o" + number 3 +endseg + +beginseg + name "takaraya_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_2.o" + number 3 +endseg + +beginseg + name "takaraya_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_3.o" + number 3 +endseg + +beginseg + name "takaraya_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_4.o" + number 3 +endseg + +beginseg + name "takaraya_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_5.o" + number 3 +endseg + +beginseg + name "takaraya_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_6.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_scene.o" + number 2 +endseg + +beginseg + name "ganon_sonogo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_0.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_1.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_2.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_3.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_4.o" + number 3 +endseg + +beginseg + name "ganon_demo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_demo/ganon_demo_scene.o" + number 2 +endseg + +beginseg + name "ganon_demo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_demo/ganon_demo_room_0.o" + number 3 +endseg + +beginseg + name "face_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/face_shop/face_shop_scene.o" + number 2 +endseg + +beginseg + name "face_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/face_shop/face_shop_room_0.o" + number 3 +endseg + +beginseg + name "kinsuta_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kinsuta/kinsuta_scene.o" + number 2 +endseg + +beginseg + name "kinsuta_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kinsuta/kinsuta_room_0.o" + number 3 +endseg + +beginseg + name "ganontikasonogo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_scene.o" + number 2 +endseg + +beginseg + name "ganontikasonogo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_room_0.o" + number 3 +endseg + +beginseg + name "ganontikasonogo_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_room_1.o" + number 3 +endseg + +#else + beginseg name "ydan_scene" compress @@ -12158,6 +19336,8 @@ beginseg endseg #endif +#endif + beginseg name "bump_texture_static" compress From c39323a3368d54fd00479fd51eefcf0ac82606e1 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sun, 8 Sep 2024 08:13:24 -0700 Subject: [PATCH 51/86] fix_bss.py: Subtract addend for relocations against global symbols (#2169) --- tools/fix_bss.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/tools/fix_bss.py b/tools/fix_bss.py index 6217e822fc..d5907cbc2a 100755 --- a/tools/fix_bss.py +++ b/tools/fix_bss.py @@ -152,7 +152,19 @@ def get_file_pointers( else: assert False, "Invalid relocation" - pointers.append(Pointer(reloc.name, reloc.addend, base_value, build_value)) + # For relocations against a global symbol, subtract the addend so that the pointer + # is for the start of the symbol. This can help deal with things like STACK_TOP + # (where the pointer is past the end of the symbol) or negative addends. If the + # relocation is against a section however, it's not useful to subtract the addend, + # so we keep it as-is and hope for the best. + if reloc.name.startswith("."): # section + addend = reloc.addend + else: # symbol + addend = 0 + base_value -= reloc.addend + build_value -= reloc.addend + + pointers.append(Pointer(reloc.name, addend, base_value, build_value)) return pointers @@ -774,14 +786,8 @@ def main(): for file, bss_section in bss_sections.items(): if not bss_section.pointers: continue - # The following heuristic doesn't work for z_locale, since the first pointer into BSS is not - # at the start of the section. Fortunately z_locale either has one BSS variable (in GC versions) - # or none (in N64 versions), so we can just skip it. - if str(file) == "src/boot/z_locale.c": - continue # For the baserom, assume that the lowest address is the start of the BSS section. This might - # not be true if the first BSS variable is not referenced, but in practice this doesn't happen - # (except for z_locale above). + # not be true if the first BSS variable is not referenced, but in practice this doesn't happen. base_min_address = min(p.base_value for p in bss_section.pointers) build_min_address = bss_section.start_address if not all( @@ -798,7 +804,8 @@ def main(): print("No BSS reordering found.") if args.files: - files_to_fix = args.files + # Ignore files that don't have a BSS section in the ROM + files_to_fix = [file for file in args.files if file in bss_sections] else: files_to_fix = files_with_reordering if not files_to_fix: From de1a08c0612c36ca7528b9208a5a28d47d6b830a Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 8 Sep 2024 18:02:38 +0200 Subject: [PATCH 52/86] [headers 11] stackcheck.h, jpeg functions (#2171) * [headers 11] stackcheck.h, jpeg functions * bss --- include/functions.h | 19 ++------------- include/jpeg.h | 7 ++++++ include/stack.h | 2 ++ include/stackcheck.h | 27 +++++++++++++++++++++ include/z64.h | 17 +------------ src/code/fault_gc.c | 4 +-- src/code/jpegdecoder.c | 4 +++ src/overlays/actors/ovl_En_Xc/z_en_xc.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- 9 files changed, 47 insertions(+), 37 deletions(-) create mode 100644 include/stackcheck.h diff --git a/include/functions.h b/include/functions.h index e134758eab..ada903e586 100644 --- a/include/functions.h +++ b/include/functions.h @@ -25,10 +25,6 @@ NORETURN void func_80002384(const char* exp, const char* file, int line); #endif OSPiHandle* osDriveRomInit(void); void Mio0_Decompress(u8* src, u8* dst); -void StackCheck_Init(StackEntry* entry, void* stackBottom, void* stackTop, u32 initValue, s32 minSpace, - const char* name); -void StackCheck_Cleanup(StackEntry* entry); -u32 StackCheck_Check(StackEntry* entry); #if OOT_DEBUG void LogUtils_LogHexDump(void* ptr, s32 size0); void LogUtils_CheckNullPointer(const char* exp, void* ptr, const char* file, int line); @@ -687,7 +683,7 @@ void func_8006D0EC(PlayState* play, Player* player); void func_8006D684(PlayState* play, Player* player); void func_8006DC68(PlayState* play, Player* player); void func_8006DD9C(Actor* actor, Vec3f* arg1, s16 arg2); -s32 Jpeg_Decode(void* data, void* zbuffer, void* work, u32 workSize); + void KaleidoSetup_Update(PlayState* play); void KaleidoSetup_Init(PlayState* play); void KaleidoSetup_Destroy(PlayState* play); @@ -1419,18 +1415,7 @@ void Sleep_Nsec(u32 nsec); void Sleep_Usec(u32 usec); void Sleep_Msec(u32 ms); void Sleep_Sec(u32 sec); -void JpegUtils_ProcessQuantizationTable(u8* dqt, JpegQuantizationTable* qt, u8 count); -s32 JpegUtils_ParseHuffmanCodesLengths(u8* ptr, u8* codesLengths); -s32 JpegUtils_GetHuffmanCodes(u8* codesLengths, u16* codes); -s32 JpegUtils_SetHuffmanTable(u8* data, JpegHuffmanTable* ht, u16* codes); -u32 JpegUtils_ProcessHuffmanTableImpl(u8* data, JpegHuffmanTable* ht, u8* codesLengths, u16* codes, u8 isAc); -u32 JpegUtils_ProcessHuffmanTable(u8* dht, JpegHuffmanTable* ht, u8* codesLengths, u16* codes, u8 count); -void JpegUtils_SetHuffmanTableOld(u8* data, JpegHuffmanTableOld* ht, u8* codesLengths, u16* codes, s16 count, u8 isAc); -u32 JpegUtils_ProcessHuffmanTableImplOld(u8* dht, JpegHuffmanTableOld* ht, u8* codesLengths, u16* codes); -s32 JpegDecoder_Decode(JpegDecoder* decoder, u16* mcuBuff, s32 count, u8 isFollowing, JpegDecoderState* state); -s32 JpegDecoder_ProcessMcu(JpegHuffmanTable* hTable0, JpegHuffmanTable* hTable1, u16* mcu, s16* unk); -s32 JpegDecoder_ParseNextSymbol(JpegHuffmanTable* hTable, s16* outCoeff, s8* outZeroCount); -u16 JpegDecoder_ReadBits(u8 len); + s32 osPfsFreeBlocks(OSPfs* pfs, s32* leftoverBytes); void guScale(Mtx* m, f32 x, f32 y, f32 z); OSTask* _VirtualToPhysicalTask(OSTask* intp); diff --git a/include/jpeg.h b/include/jpeg.h index 85b048baf3..4dab27632a 100644 --- a/include/jpeg.h +++ b/include/jpeg.h @@ -77,4 +77,11 @@ typedef struct JpegDecoderState { /* 0x10 */ s16 unk_10; } JpegDecoderState; // size = 0x14 +s32 Jpeg_Decode(void* data, void* zbuffer, void* work, u32 workSize); + +void JpegUtils_ProcessQuantizationTable(u8* dqt, JpegQuantizationTable* qt, u8 count); +u32 JpegUtils_ProcessHuffmanTable(u8* dht, JpegHuffmanTable* ht, u8* codesLengths, u16* codes, u8 count); + +s32 JpegDecoder_Decode(JpegDecoder* decoder, u16* mcuBuff, s32 count, u8 isFollowing, JpegDecoderState* state); + #endif diff --git a/include/stack.h b/include/stack.h index 231f0d061b..3667862cb6 100644 --- a/include/stack.h +++ b/include/stack.h @@ -1,6 +1,8 @@ #ifndef STACK_H #define STACK_H +#include "alignment.h" + #define STACK(stack, size) \ u64 stack[ALIGN8(size) / sizeof(u64)] diff --git a/include/stackcheck.h b/include/stackcheck.h new file mode 100644 index 0000000000..33b4a674c9 --- /dev/null +++ b/include/stackcheck.h @@ -0,0 +1,27 @@ +#ifndef STACKCHECK_H +#define STACKCHECK_H + +#include "ultra64.h" + +typedef enum StackStatus { + /* 0 */ STACK_STATUS_OK, + /* 1 */ STACK_STATUS_WARNING, + /* 2 */ STACK_STATUS_OVERFLOW +} StackStatus; + +typedef struct StackEntry { + /* 0x00 */ struct StackEntry* next; + /* 0x04 */ struct StackEntry* prev; + /* 0x08 */ u32* head; + /* 0x0C */ u32* tail; + /* 0x10 */ u32 initValue; + /* 0x14 */ s32 minSpace; + /* 0x18 */ const char* name; +} StackEntry; + +void StackCheck_Init(StackEntry* entry, void* stackBottom, void* stackTop, u32 initValue, s32 minSpace, + const char* name); +void StackCheck_Cleanup(StackEntry* entry); +u32 StackCheck_Check(StackEntry* entry); + +#endif diff --git a/include/z64.h b/include/z64.h index 03354915d0..9fbb9b6a94 100644 --- a/include/z64.h +++ b/include/z64.h @@ -69,6 +69,7 @@ #include "sys_matrix.h" #include "main.h" #include "segmented_address.h" +#include "stackcheck.h" #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 240 @@ -397,22 +398,6 @@ typedef struct DebugDispObject { /* 0x28 */ struct DebugDispObject* next; } DebugDispObject; // size = 0x2C -typedef struct StackEntry { - /* 0x00 */ struct StackEntry* next; - /* 0x04 */ struct StackEntry* prev; - /* 0x08 */ u32* head; - /* 0x0C */ u32* tail; - /* 0x10 */ u32 initValue; - /* 0x14 */ s32 minSpace; - /* 0x18 */ const char* name; -} StackEntry; - -typedef enum StackStatus { - /* 0 */ STACK_STATUS_OK, - /* 1 */ STACK_STATUS_WARNING, - /* 2 */ STACK_STATUS_OVERFLOW -} StackStatus; - typedef struct ISVDbg { /* 0x00 */ u32 magic; // IS64 /* 0x04 */ u32 get; diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c index 67dbb34569..32d99f368b 100644 --- a/src/code/fault_gc.c +++ b/src/code/fault_gc.c @@ -42,8 +42,8 @@ */ #if PLATFORM_GC -#pragma increment_block_number "gc-eu:208 gc-eu-mq:208 gc-eu-mq-dbg:208 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224" \ - "gc-us-mq:224" +#pragma increment_block_number "gc-eu:208 gc-eu-mq:208 gc-eu-mq-dbg:208 gc-jp:208 gc-jp-ce:208 gc-jp-mq:208 gc-us:208" \ + "gc-us-mq:208" #include "global.h" #include "alloca.h" diff --git a/src/code/jpegdecoder.c b/src/code/jpegdecoder.c index c0c772abd6..a29752511c 100644 --- a/src/code/jpegdecoder.c +++ b/src/code/jpegdecoder.c @@ -1,5 +1,9 @@ #include "global.h" +s32 JpegDecoder_ProcessMcu(JpegHuffmanTable* hTable0, JpegHuffmanTable* hTable1, u16* mcu, s16* unk); +s32 JpegDecoder_ParseNextSymbol(JpegHuffmanTable* hTable, s16* outCoeff, s8* outZeroCount); +u16 JpegDecoder_ReadBits(u8 len); + u8* sJpegBitStreamPtr; u32 sJpegBitStreamByteIdx; u8 sJpegBitStreamBitIdx; 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 bd424121e2..b8f9cf9d5f 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -1395,7 +1395,7 @@ void func_80B3F3D8(void) { Sfx_PlaySfxCentered2(NA_SE_PL_SKIP); } -#pragma increment_block_number "gc-eu:128 gc-eu-mq:64 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:64 gc-jp:128 gc-jp-ce:128 gc-jp-mq:64 gc-us:128 gc-us-mq:64" void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { static Vec3f D_80B42DA0; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index e446b7f8b8..b60c3ee476 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -15,7 +15,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:142 gc-eu-mq:142 gc-jp:144 gc-jp-ce:144 gc-jp-mq:144 gc-us:144 gc-us-mq:144" +#pragma increment_block_number "gc-eu:141 gc-eu-mq:141 gc-jp:143 gc-jp-ce:143 gc-jp-mq:143 gc-us:143 gc-us-mq:143" #define FLAGS ACTOR_FLAG_4 From a903f8b8bcc32d8f6c0a76ce5eeead271c297772 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 8 Sep 2024 22:26:01 +0200 Subject: [PATCH 53/86] Document `ACTOR_FLAG_SFX_` flags and functions (#2162) * Document `ACTOR_FLAG_SFX_` flags and functions * format --- include/functions.h | 12 ++-- include/z64actor.h | 16 ++---- src/code/z_actor.c | 55 ++++++++++++------- .../actors/ovl_Arms_Hook/z_arms_hook.c | 2 +- .../actors/ovl_Arrow_Fire/z_arrow_fire.c | 2 +- .../actors/ovl_Arrow_Ice/z_arrow_ice.c | 2 +- .../actors/ovl_Arrow_Light/z_arrow_light.c | 2 +- .../ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c | 14 ++--- .../actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c | 2 +- .../ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c | 2 +- .../ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c | 2 +- .../ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c | 2 +- src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c | 2 +- .../actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c | 4 +- .../ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c | 8 +-- .../ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c | 2 +- .../actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c | 2 +- .../actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c | 10 ++-- .../ovl_Bg_Haka_Water/z_bg_haka_water.c | 4 +- .../ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c | 4 +- .../z_bg_hidan_firewall.c | 2 +- .../ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c | 4 +- .../ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c | 6 +- .../ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c | 4 +- .../ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c | 2 +- .../z_bg_hidan_rsekizou.c | 2 +- .../ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c | 4 +- .../ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c | 2 +- .../ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c | 4 +- .../ovl_Bg_Ice_Objects/z_bg_ice_objects.c | 2 +- .../ovl_Bg_Jya_1flift/z_bg_jya_1flift.c | 2 +- .../z_bg_jya_amishutter.c | 4 +- .../actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c | 2 +- .../actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c | 2 +- .../ovl_Bg_Jya_Megami/z_bg_jya_megami.c | 2 +- .../z_bg_jya_zurerukabe.c | 2 +- .../z_bg_menkuri_kaiten.c | 2 +- .../ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c | 8 +-- .../ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c | 2 +- .../ovl_Bg_Mizu_Water/z_bg_mizu_water.c | 4 +- .../ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c | 2 +- .../actors/ovl_Bg_Po_Event/z_bg_po_event.c | 2 +- .../ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c | 2 +- .../ovl_Bg_Relay_Objects/z_bg_relay_objects.c | 2 +- .../z_bg_spot00_hanebasi.c | 4 +- .../z_bg_spot02_objects.c | 2 +- .../z_bg_spot06_objects.c | 4 +- .../ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c | 2 +- .../ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c | 2 +- .../ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c | 2 +- .../ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c | 2 +- .../z_bg_spot18_shutter.c | 4 +- .../actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c | 12 ++-- .../ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c | 4 +- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 20 +++---- src/overlays/actors/ovl_Demo_6K/z_demo_6k.c | 12 ++-- .../actors/ovl_Demo_Effect/z_demo_effect.c | 10 ++-- .../actors/ovl_Demo_Kekkai/z_demo_kekkai.c | 6 +- .../actors/ovl_En_Bigokuta/z_en_bigokuta.c | 2 +- src/overlays/actors/ovl_En_Bili/z_en_bili.c | 2 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 2 +- .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 4 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 2 +- src/overlays/actors/ovl_En_Boom/z_en_boom.c | 2 +- src/overlays/actors/ovl_En_Box/z_en_box.c | 2 +- src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c | 6 +- src/overlays/actors/ovl_En_Fd/z_en_fd.c | 6 +- .../actors/ovl_En_Floormas/z_en_floormas.c | 4 +- src/overlays/actors/ovl_En_Fz/z_en_fz.c | 4 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 4 +- .../actors/ovl_En_Ice_Hono/z_en_ice_hono.c | 4 +- src/overlays/actors/ovl_En_Ny/z_en_ny.c | 2 +- .../actors/ovl_En_Po_Desert/z_en_po_desert.c | 4 +- .../actors/ovl_En_Po_Field/z_en_po_field.c | 6 +- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 10 ++-- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 6 +- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 12 ++-- .../actors/ovl_En_Siofuki/z_en_siofuki.c | 2 +- .../actors/ovl_En_Stream/z_en_stream.c | 2 +- src/overlays/actors/ovl_En_Tr/z_en_tr.c | 8 +-- src/overlays/actors/ovl_En_Vali/z_en_vali.c | 2 +- .../actors/ovl_En_Yukabyun/z_en_yukabyun.c | 4 +- .../actors/ovl_Magic_Dark/z_magic_dark.c | 6 +- src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c | 2 +- src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c | 6 +- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.c | 2 +- .../actors/ovl_player_actor/z_player.c | 8 +-- tools/disasm/ntsc-1.2/functions.txt | 14 ++--- 88 files changed, 227 insertions(+), 218 deletions(-) diff --git a/include/functions.h b/include/functions.h index ada903e586..4bcd52766b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -404,12 +404,12 @@ void func_8002F758(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4, void func_8002F7A0(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4); void Player_PlaySfx(Player* player, u16 sfxId); void Actor_PlaySfx(Actor* actor, u16 sfxId); -void func_8002F850(PlayState* play, Actor* actor); -void func_8002F8F0(Actor* actor, u16 sfxId); -void func_8002F91C(Actor* actor, u16 sfxId); -void func_8002F948(Actor* actor, u16 sfxId); -void func_8002F974(Actor* actor, u16 sfxId); -void func_8002F994(Actor* actor, s32 timer); +void Actor_PlaySfx_SurfaceBomb(PlayState* play, Actor* actor); +void Actor_PlaySfx_Flagged2(Actor* actor, u16 sfxId); +void Actor_PlaySfx_FlaggedCentered1(Actor* actor, u16 sfxId); +void Actor_PlaySfx_FlaggedCentered2(Actor* actor, u16 sfxId); +void Actor_PlaySfx_Flagged(Actor* actor, u16 sfxId); +void Actor_PlaySfx_FlaggedTimer(Actor* actor, s32 timer); s32 func_8002F9EC(PlayState* play, Actor* actor, CollisionPoly* poly, s32 bgId, Vec3f* pos); void Actor_DisableLens(PlayState* play); void Actor_InitContext(PlayState* play, ActorContext* actorCtx, ActorEntry* playerEntry); diff --git a/include/z64actor.h b/include/z64actor.h index 91e715e5a5..42ac0c3bef 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -168,14 +168,10 @@ typedef struct ActorShape { // #define ACTOR_FLAG_18 (1 << 18) -// -#define ACTOR_FLAG_19 (1 << 19) - -// -#define ACTOR_FLAG_20 (1 << 20) - -// -#define ACTOR_FLAG_21 (1 << 21) +// Flags controlling the use of `Actor.sfx`. Do not use directly. +#define ACTOR_FLAG_SFX_ACTOR_POS_2 (1 << 19) // see Actor_PlaySfx_Flagged2 +#define ACTOR_AUDIO_FLAG_SFX_CENTERED_1 (1 << 20) // see Actor_PlaySfx_FlaggedCentered1 +#define ACTOR_AUDIO_FLAG_SFX_CENTERED_2 (1 << 21) // see Actor_PlaySfx_FlaggedCentered2 // ignores point lights but not directional lights (such as environment lights) #define ACTOR_FLAG_IGNORE_POINT_LIGHTS (1 << 22) @@ -196,8 +192,8 @@ typedef struct ActorShape { // Navi will still be able to hover over the actor, assuming `ACTOR_FLAG_ATTENTION_ENABLED` is set. #define ACTOR_FLAG_LOCK_ON_DISABLED (1 << 27) -// -#define ACTOR_FLAG_28 (1 << 28) +// Flag controlling the use of `Actor.sfx`. Do not use directly. See Actor_PlaySfx_FlaggedTimer +#define ACTOR_FLAG_SFX_TIMER (1 << 28) #define COLORFILTER_GET_COLORINTENSITY(colorFilterParams) (((colorFilterParams) & 0x1F00) >> 5) #define COLORFILTER_GET_DURATION(colorFilterParams) ((colorFilterParams) & 0xFF) diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 069bca7fa9..e45d96552e 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1938,7 +1938,7 @@ void Actor_PlaySfx(Actor* actor, u16 sfxId) { Sfx_PlaySfxAtPos(&actor->projectedPos, sfxId); } -void func_8002F850(PlayState* play, Actor* actor) { +void Actor_PlaySfx_SurfaceBomb(PlayState* play, Actor* actor) { s32 surfaceSfxOffset; if (actor->bgCheckFlags & BGCHECKFLAG_WATER) { @@ -1955,32 +1955,45 @@ void func_8002F850(PlayState* play, Actor* actor) { Sfx_PlaySfxAtPos(&actor->projectedPos, NA_SE_PL_WALK_GROUND + surfaceSfxOffset); } -void func_8002F8F0(Actor* actor, u16 sfxId) { +/** + * Play a sfx at the actor's position using the shared flagged audio system + */ +void Actor_PlaySfx_Flagged2(Actor* actor, u16 sfxId) { actor->sfx = sfxId; - actor->flags |= ACTOR_FLAG_19; - actor->flags &= ~(ACTOR_FLAG_20 | ACTOR_FLAG_21 | ACTOR_FLAG_28); + actor->flags |= ACTOR_FLAG_SFX_ACTOR_POS_2; + actor->flags &= ~(ACTOR_AUDIO_FLAG_SFX_CENTERED_1 | ACTOR_AUDIO_FLAG_SFX_CENTERED_2 | ACTOR_FLAG_SFX_TIMER); } -void func_8002F91C(Actor* actor, u16 sfxId) { +/** + * Play a sfx at the center of the screen using the shared flagged audio system + */ +void Actor_PlaySfx_FlaggedCentered1(Actor* actor, u16 sfxId) { actor->sfx = sfxId; - actor->flags |= ACTOR_FLAG_20; - actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_21 | ACTOR_FLAG_28); + actor->flags |= ACTOR_AUDIO_FLAG_SFX_CENTERED_1; + actor->flags &= ~(ACTOR_FLAG_SFX_ACTOR_POS_2 | ACTOR_AUDIO_FLAG_SFX_CENTERED_2 | ACTOR_FLAG_SFX_TIMER); } -void func_8002F948(Actor* actor, u16 sfxId) { +/** + * Play a sfx at the center of the screen using the shared flagged audio system + */ +void Actor_PlaySfx_FlaggedCentered2(Actor* actor, u16 sfxId) { actor->sfx = sfxId; - actor->flags |= ACTOR_FLAG_21; - actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_20 | ACTOR_FLAG_28); + actor->flags |= ACTOR_AUDIO_FLAG_SFX_CENTERED_2; + actor->flags &= ~(ACTOR_FLAG_SFX_ACTOR_POS_2 | ACTOR_AUDIO_FLAG_SFX_CENTERED_1 | ACTOR_FLAG_SFX_TIMER); } -void func_8002F974(Actor* actor, u16 sfxId) { - actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_20 | ACTOR_FLAG_21 | ACTOR_FLAG_28); +/** + * Play a sfx at the actor's position using the shared flagged audio system + */ +void Actor_PlaySfx_Flagged(Actor* actor, u16 sfxId) { + actor->flags &= ~(ACTOR_FLAG_SFX_ACTOR_POS_2 | ACTOR_AUDIO_FLAG_SFX_CENTERED_1 | ACTOR_AUDIO_FLAG_SFX_CENTERED_2 | + ACTOR_FLAG_SFX_TIMER); actor->sfx = sfxId; } -void func_8002F994(Actor* actor, s32 timer) { - actor->flags |= ACTOR_FLAG_28; - actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_20 | ACTOR_FLAG_21); +void Actor_PlaySfx_FlaggedTimer(Actor* actor, s32 timer) { + actor->flags |= ACTOR_FLAG_SFX_TIMER; + actor->flags &= ~(ACTOR_FLAG_SFX_ACTOR_POS_2 | ACTOR_AUDIO_FLAG_SFX_CENTERED_1 | ACTOR_AUDIO_FLAG_SFX_CENTERED_2); // The sfx field is not used for an actual sound effect here. // Instead, it controls the tick speed of the timer sound effect. @@ -2507,15 +2520,15 @@ void Actor_Draw(PlayState* play, Actor* actor) { Fault_RemoveClient(&faultClient); } -void func_80030ED8(Actor* actor) { - if (actor->flags & ACTOR_FLAG_19) { +void Actor_UpdateFlaggedAudio(Actor* actor) { + if (actor->flags & ACTOR_FLAG_SFX_ACTOR_POS_2) { Audio_PlaySfxGeneral(actor->sfx, &actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - } else if (actor->flags & ACTOR_FLAG_20) { + } else if (actor->flags & ACTOR_AUDIO_FLAG_SFX_CENTERED_1) { Sfx_PlaySfxCentered(actor->sfx); - } else if (actor->flags & ACTOR_FLAG_21) { + } else if (actor->flags & ACTOR_AUDIO_FLAG_SFX_CENTERED_2) { Sfx_PlaySfxCentered2(actor->sfx); - } else if (actor->flags & ACTOR_FLAG_28) { + } else if (actor->flags & ACTOR_FLAG_SFX_TIMER) { func_800F4C58(&gSfxDefaultPos, NA_SE_SY_TIMER - SFX_FLAG, (s8)(actor->sfx - 1)); } else { Sfx_PlaySfxAtPos(&actor->projectedPos, actor->sfx); @@ -2687,7 +2700,7 @@ void func_800315AC(PlayState* play, ActorContext* actorCtx) { if (!OOT_DEBUG || (HREG(64) != 1) || ((HREG(65) != -1) && (HREG(65) != HREG(66))) || (HREG(69) == 0)) { if (actor->sfx != 0) { - func_80030ED8(actor); + Actor_UpdateFlaggedAudio(actor); } } diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index 48b2a6c4d5..a2d9d98149 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -146,7 +146,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) { return; } - func_8002F8F0(&player->actor, NA_SE_IT_HOOKSHOT_CHAIN - SFX_FLAG); + Actor_PlaySfx_Flagged2(&player->actor, NA_SE_IT_HOOKSHOT_CHAIN - SFX_FLAG); ArmsHook_CheckForCancel(this); if ((this->timer != 0) && (this->collider.base.atFlags & AT_HIT) && diff --git a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c index 2dde5c416c..2cecc071cf 100644 --- a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c +++ b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c @@ -74,7 +74,7 @@ void ArrowFire_Charge(ArrowFire* this, PlayState* play) { this->actor.world.pos = arrow->actor.world.pos; this->actor.shape.rot = arrow->actor.shape.rot; - func_8002F974(&this->actor, NA_SE_PL_ARROW_CHARGE_FIRE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_PL_ARROW_CHARGE_FIRE - SFX_FLAG); // if arrow has no parent, player has fired the arrow if (arrow->actor.parent == NULL) { diff --git a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c index da5e1bc000..e75e5f288a 100644 --- a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c +++ b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c @@ -75,7 +75,7 @@ void ArrowIce_Charge(ArrowIce* this, PlayState* play) { this->actor.world.pos = arrow->actor.world.pos; this->actor.shape.rot = arrow->actor.shape.rot; - func_8002F974(&this->actor, NA_SE_PL_ARROW_CHARGE_ICE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_PL_ARROW_CHARGE_ICE - SFX_FLAG); // if arrow has no parent, player has fired the arrow if (arrow->actor.parent == NULL) { diff --git a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c index 87546c713f..c330c0aa5c 100644 --- a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c +++ b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c @@ -74,7 +74,7 @@ void ArrowLight_Charge(ArrowLight* this, PlayState* play) { this->actor.world.pos = arrow->actor.world.pos; this->actor.shape.rot = arrow->actor.shape.rot; - func_8002F974(&this->actor, NA_SE_PL_ARROW_CHARGE_LIGHT - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_PL_ARROW_CHARGE_LIGHT - SFX_FLAG); // if arrow has no parent, player has fired the arrow if (arrow->actor.parent == NULL) { diff --git a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c index 9b30e3bbb6..8ff123e07e 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c @@ -232,7 +232,7 @@ void BgBdanObjects_OctoPlatform_RaiseToUpperPosition(BgBdanObjects* this, PlaySt Rumble_Request(0.0f, 120, 20, 10); this->timer = 11; } - func_8002F974(&this->dyna.actor, NA_SE_EV_BUYOSTAND_RISING - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_BUYOSTAND_RISING - SFX_FLAG); } } @@ -283,7 +283,7 @@ void BgBdanObjects_OctoPlatform_DescendWithBigOcto(BgBdanObjects* this, PlayStat player->actor.world.rot.y = player->actor.shape.rot.y; Rumble_Request(0.0f, 255, 30, 150); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_BUYOSTAND_FALL - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_BUYOSTAND_FALL - SFX_FLAG); if (this->timer != 0) { this->timer--; } @@ -360,7 +360,7 @@ void BgBdanObjects_RaiseToUpperPosition(BgBdanObjects* this, PlayState* play) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BUYOSTAND_STOP_A); this->actionFunc = BgBdanObjects_DoNothing; } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_BUYOSTAND_RISING - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_BUYOSTAND_RISING - SFX_FLAG); } } @@ -411,12 +411,12 @@ void BgBdanObjects_ChangeWaterBoxLevel(BgBdanObjects* this, PlayState* play) { Flags_UnsetSwitch(play, this->var.switchFlag); this->actionFunc = BgBdanObjects_WaitForSwitch; } - func_8002F948(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); } else { if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y + 75.0f, 0.5f)) { this->actionFunc = BgBdanObjects_WaitForTimerExpired; } - func_8002F948(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); } play->colCtx.colHeader->waterBoxes[7].ySurface = this->dyna.actor.world.pos.y; } @@ -425,7 +425,7 @@ void BgBdanObjects_WaitForTimerExpired(BgBdanObjects* this, PlayState* play) { if (this->timer != 0) { this->timer--; } - func_8002F994(&this->dyna.actor, this->timer); // play ticking sound effect + Actor_PlaySfx_FlaggedTimer(&this->dyna.actor, this->timer); // play ticking sound effect if (this->timer == 0) { this->actionFunc = BgBdanObjects_ChangeWaterBoxLevel; } @@ -454,7 +454,7 @@ void BgBdanObjects_FallToLowerPos(BgBdanObjects* this, PlayState* play) { // Using `CAM_ID_NONE` here defaults to the active camera Play_CopyCamera(play, CAM_ID_MAIN, CAM_ID_NONE); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_BUYOSTAND_FALL - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_BUYOSTAND_FALL - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c b/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c index 783ea51244..dc5a1cba23 100644 --- a/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c +++ b/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c @@ -146,7 +146,7 @@ void BgDdanJd_MoveEffects(BgDdanJd* this, PlayState* play) { func_80033480(play, &dustPos, 5.0f, 1, 20, 60, 1); } if (this->ySpeed == SHORTCUT_Y_SPEED) { - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c index 7195811d4e..801475e3f3 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c @@ -147,7 +147,7 @@ void BgGndDarkmeiro_UpdateBlockTimer(BgGndDarkmeiro* this, PlayState* play) { timeLeft = CLAMP_MIN(this->timer1, this->timer2); if (timeLeft > 0) { - func_8002F994(&this->dyna.actor, timeLeft); + Actor_PlaySfx_FlaggedTimer(&this->dyna.actor, timeLeft); } if ((this->timer1 >= 64) || (this->timer2 >= 64)) { Flags_SetSwitch(play, PARAMS_GET_U(this->dyna.actor.params, 8, 6)); diff --git a/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c index 8773496bb4..46501d8b72 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c @@ -72,7 +72,7 @@ void BgGndFiremeiro_Sink(BgGndFiremeiro* this, PlayState* play) { this->dyna.actor.world.pos.y = sunkHeight; } - func_8002F948(&this->dyna.actor, NA_SE_EV_ROLL_STAND_2 - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_ROLL_STAND_2 - SFX_FLAG); } if (this->timer > 0) { diff --git a/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c b/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c index 441455f3d1..75e44cb218 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c @@ -339,7 +339,7 @@ void BgGndIceblock_Slide(BgGndIceblock* this, PlayState* play) { pos.x = thisx->world.pos.x - (60.0f * Math_SinS(this->dyna.unk_158)) + (Math_CosS(this->dyna.unk_158) * spread); pos.z = thisx->world.pos.z - (60.0f * Math_CosS(this->dyna.unk_158)) - (Math_SinS(this->dyna.unk_158) * spread); func_8002829C(play, &pos, &velocity, &sZeroVec, &sWhite, &sGray, 250, Rand_S16Offset(40, 15)); - func_8002F974(thisx, NA_SE_PL_SLIP_ICE_LEVEL - SFX_FLAG); + Actor_PlaySfx_Flagged(thisx, NA_SE_PL_SLIP_ICE_LEVEL - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c b/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c index 563a67e3da..0ad951eab2 100644 --- a/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c +++ b/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c @@ -111,7 +111,7 @@ void BgHaka_Pull(BgHaka* this, PlayState* play) { } this->actionFunc = BgHaka_IdleOpened; } - func_8002F974(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); } void BgHaka_IdleOpened(BgHaka* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c b/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c index ce41d4717c..f4333df608 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c +++ b/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c @@ -215,7 +215,7 @@ void BgHakaGate_StatueTurn(BgHakaGate* this, PlayState* play) { this->actionFunc = BgHakaGate_StatueIdle; this->dyna.unk_150 = 0.0f; } - func_8002F974(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); } void BgHakaGate_FloorClosed(BgHakaGate* this, PlayState* play) { @@ -277,7 +277,7 @@ void BgHakaGate_GateOpen(BgHakaGate* this, PlayState* play) { this->dyna.actor.flags &= ~ACTOR_FLAG_4; this->actionFunc = BgHakaGate_DoNothing; } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c b/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c index 5171623cbe..3bcaac0071 100644 --- a/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c +++ b/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c @@ -147,7 +147,7 @@ void func_8087E10C(BgHakaMeganeBG* this, PlayState* play) { if (!Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y - 640.0f, this->dyna.actor.velocity.y)) { - func_8002F974(&this->dyna.actor, NA_SE_EV_CHINETRAP_DOWN - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_CHINETRAP_DOWN - SFX_FLAG); } if (this->unk_16A == 0) { @@ -159,7 +159,7 @@ void func_8087E10C(BgHakaMeganeBG* this, PlayState* play) { void func_8087E1E0(BgHakaMeganeBG* this, PlayState* play) { Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, 16.0f / 3.0f); - func_8002F974(&this->dyna.actor, NA_SE_EV_BRIDGE_CLOSE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_BRIDGE_CLOSE - SFX_FLAG); if (this->unk_16A != 0) { this->unk_16A--; @@ -173,7 +173,7 @@ void func_8087E1E0(BgHakaMeganeBG* this, PlayState* play) { void func_8087E258(BgHakaMeganeBG* this, PlayState* play) { this->dyna.actor.shape.rot.y += 0x180; - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); } void func_8087E288(BgHakaMeganeBG* this, PlayState* play) { @@ -190,7 +190,7 @@ void func_8087E2D8(BgHakaMeganeBG* this, PlayState* play) { Actor_SetFocus(&this->dyna.actor, 50.0f); this->actionFunc = func_8087E34C; } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_OPEN); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_METALDOOR_OPEN); } } diff --git a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c index bf908cd4bc..a86d14723b 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c +++ b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c @@ -282,7 +282,7 @@ void BgHakaSgami_Spin(BgHakaSgami* this, PlayState* play) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->colliderScythe.base); CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliderScytheCenter.base); - func_8002F974(&this->actor, NA_SE_EV_ROLLCUTTER_MOTOR - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_ROLLCUTTER_MOTOR - SFX_FLAG); } void BgHakaSgami_Update(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c b/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c index e24478584e..c2f1616ea8 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c +++ b/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c @@ -164,7 +164,7 @@ void BgHakaShip_CrashShake(BgHakaShip* this, PlayState* play) { this->dyna.actor.gravity = -1.0f; this->actionFunc = BgHakaShip_CrashFall; } - func_8002F974(&this->dyna.actor, NA_SE_EV_BLOCKSINK - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_BLOCKSINK - SFX_FLAG); } void BgHakaShip_CrashFall(BgHakaShip* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c index a017dcf17e..e914e070bf 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c +++ b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c @@ -232,7 +232,7 @@ void func_808801B8(BgHakaTrap* this, PlayState* play) { if ((D_80880F30 == 0) && (!Player_InCsMode(play))) { if (!Math_StepToF(&this->dyna.actor.world.pos.x, this->dyna.actor.home.pos.x, 0.5f)) { - func_8002F974(&this->dyna.actor, NA_SE_EV_TRAP_OBJ_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_TRAP_OBJ_SLIDE - SFX_FLAG); } else if (this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL) { D_80881018 |= 1; } else if (this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL_2) { @@ -262,7 +262,7 @@ void func_808802D8(BgHakaTrap* this, PlayState* play) { this->timer--; } - func_8002F974(&this->dyna.actor, NA_SE_EV_BURN_OUT - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_BURN_OUT - SFX_FLAG); for (i = 0; i < 2; i++) { f32 rand = Rand_ZeroOne(); @@ -385,7 +385,7 @@ void func_808806BC(BgHakaTrap* this, PlayState* play) { } if (this->dyna.actor.velocity.y >= 0.01f) { - func_8002F974(&this->dyna.actor, NA_SE_EV_CHINETRAP_DOWN - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_CHINETRAP_DOWN - SFX_FLAG); } if (this->timer == 0) { @@ -455,7 +455,7 @@ void func_80880AE8(BgHakaTrap* this, PlayState* play) { this->dyna.actor.shape.rot.z += this->dyna.actor.world.rot.z; if (this->dyna.actor.world.rot.z >= 0x1801) { - func_8002F974(&this->dyna.actor, NA_SE_EV_WIND_TRAP - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_WIND_TRAP - SFX_FLAG); } func_808809E4(this, play, this->dyna.actor.world.rot.z); @@ -466,7 +466,7 @@ void func_80880C0C(BgHakaTrap* this, PlayState* play) { this->timer--; } - func_8002F974(&this->dyna.actor, NA_SE_EV_WIND_TRAP - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_WIND_TRAP - SFX_FLAG); if (this->timer == 0) { this->timer = 1; diff --git a/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c b/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c index 588fddb5ed..d65e4a0519 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c +++ b/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c @@ -85,9 +85,9 @@ void BgHakaWater_ChangeWaterLevel(BgHakaWater* this, PlayState* play) { } if (this->actor.home.pos.y < this->actor.world.pos.y) { - func_8002F948(&this->actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); } else { - func_8002F948(&this->actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); } if (Math_StepToF(&this->actor.world.pos.y, this->actor.home.pos.y, 0.5f) != 0) { diff --git a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c index 2195ec4ea6..832965b176 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c @@ -196,7 +196,7 @@ void BgHidanCurtain_WaitForTimer(BgHidanCurtain* this, PlayState* play) { this->actionFunc = BgHidanCurtain_TurnOn; } if ((this->type == 1) || (this->type == 3)) { - func_8002F994(&this->actor, this->timer); + Actor_PlaySfx_FlaggedTimer(&this->actor, this->timer); } } @@ -230,7 +230,7 @@ void BgHidanCurtain_Update(Actor* thisx, PlayState* play2) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); if (!IS_CUTSCENE_LAYER) { - func_8002F974(&this->actor, NA_SE_EV_FIRE_PILLAR_S - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_FIRE_PILLAR_S - SFX_FLAG); } } else if ((this->type == 1) && Flags_GetTreasure(play, this->treasureFlag)) { Actor_Kill(&this->actor); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c index cd89e1fd16..559e7d5ec9 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c @@ -188,7 +188,7 @@ void BgHidanFirewall_Update(Actor* thisx, PlayState* play) { BgHidanFirewall_ColliderFollowPlayer(this, play); CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); - func_8002F974(&this->actor, NA_SE_EV_FIRE_PLATE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_FIRE_PLATE - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c b/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c index 202eea4241..1b4ecb10eb 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c @@ -102,7 +102,7 @@ void BgHidanFslift_Descend(BgHidanFslift* this, PlayState* play) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND); BgHidanFslift_SetupIdle(this); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE3 - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE3 - SFX_FLAG); } BgHidanFslift_SetHookshotTargetPos(this); } @@ -113,7 +113,7 @@ void BgHidanFslift_Ascend(BgHidanFslift* this, PlayState* play) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND); BgHidanFslift_SetupIdle(this); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE3 - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE3 - SFX_FLAG); } } else { BgHidanFslift_SetupIdle(this); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c index e33330d8d1..6cd66ab586 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c @@ -170,7 +170,7 @@ void BgHidanFwbig_WaitForTimer(BgHidanFwbig* this, PlayState* play) { if (this->timer == 0) { this->actionFunc = BgHidanFwbig_Rise; } - func_8002F994(&this->actor, this->timer); + Actor_PlaySfx_FlaggedTimer(&this->actor, this->timer); } void BgHidanFwbig_WaitForPlayer(BgHidanFwbig* this, PlayState* play) { @@ -236,9 +236,9 @@ void BgHidanFwbig_Update(Actor* thisx, PlayState* play) { if ((this->actor.home.pos.y - 200.0f) < this->actor.world.pos.y) { if (!IS_CUTSCENE_LAYER) { - func_8002F974(&this->actor, NA_SE_EV_BURNING - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_BURNING - SFX_FLAG); } else if ((s16)this->actor.world.pos.x == -513) { - func_8002F974(&this->actor, NA_SE_EV_FLAME_OF_FIRE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_FLAME_OF_FIRE - SFX_FLAG); } BgHidanFwbig_MoveCollider(this, play); CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c b/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c index 0a4309f112..5c71725bc8 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c @@ -128,7 +128,7 @@ void func_80889C18(BgHidanKousi* this, PlayState* play) { BgHidanKousi_SetupAction(this, func_80889C90); } Actor_MoveXZGravity(&this->dyna.actor); - func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); } void func_80889C90(BgHidanKousi* this, PlayState* play) { @@ -139,7 +139,7 @@ void func_80889C90(BgHidanKousi* this, PlayState* play) { BgHidanKousi_SetupAction(this, func_80889D28); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_METALDOOR_STOP); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c index 8ea9f48b9d..ce4a6eb25b 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c @@ -157,7 +157,7 @@ void func_8088B268(BgHidanRock* this, PlayState* play) { this->timer = 5; } - func_8002F974(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); } else { player->stateFlags2 &= ~PLAYER_STATE2_4; this->dyna.unk_150 = 0.0f; diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c index f170e28115..06c6346401 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c @@ -178,7 +178,7 @@ void BgHidanRsekizou_Update(Actor* thisx, PlayState* play) { } CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); - func_8002F974(&this->dyna.actor, NA_SE_EV_FIRE_PILLAR - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_FIRE_PILLAR - SFX_FLAG); } Gfx* BgHidanRsekizou_DrawFireball(PlayState* play, BgHidanRsekizou* this, s16 frame, MtxF* mf, s32 a, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c index d0b7310bff..9b52993671 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c @@ -284,13 +284,13 @@ void BgHidanSekizou_Update(Actor* thisx, PlayState* play2) { if (this->unk_168[0] > 0) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); - func_8002F974(&this->dyna.actor, NA_SE_EV_FIRE_PILLAR - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_FIRE_PILLAR - SFX_FLAG); } } else { if ((this->unk_168[0] > 0) || (this->unk_168[1] > 0) || (this->unk_168[2] > 0) || (this->unk_168[3] > 0)) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); - func_8002F974(&this->dyna.actor, NA_SE_EV_FIRE_PILLAR - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_FIRE_PILLAR - SFX_FLAG); } } } diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c index b736d24e4c..1c20c4bf6a 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c @@ -188,7 +188,7 @@ void func_8088E7A8(BgHidanSima* this, PlayState* play) { this->timer = 20; this->actionFunc = func_8088E760; } - func_8002F974(&this->dyna.actor, NA_SE_EV_FIRE_PILLAR - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_FIRE_PILLAR - SFX_FLAG); } void func_8088E90C(BgHidanSima* this) { diff --git a/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c b/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c index 0714a51c6c..b5d5f4f372 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c @@ -74,7 +74,7 @@ void func_8088F514(BgHidanSyoku* this, PlayState* play) { if (this->timer == 0) { func_8088F47C(this); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE3 - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE3 - SFX_FLAG); } } @@ -86,7 +86,7 @@ void func_8088F5A0(BgHidanSyoku* this, PlayState* play) { if (this->timer == 0) { func_8088F47C(this); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE3 - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE3 - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c b/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c index fc8bc31925..f257aa5ef4 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c +++ b/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c @@ -192,7 +192,7 @@ void BgIceObjects_Slide(BgIceObjects* this, PlayState* play) { pos.x = thisx->world.pos.x - (60.0f * Math_SinS(this->dyna.unk_158)) + (Math_CosS(this->dyna.unk_158) * spread); pos.z = thisx->world.pos.z - (60.0f * Math_CosS(this->dyna.unk_158)) - (Math_SinS(this->dyna.unk_158) * spread); func_8002829C(play, &pos, &velocity, &sZeroVec, &sWhite, &sGray, 250, Rand_S16Offset(40, 15)); - func_8002F974(thisx, NA_SE_PL_SLIP_ICE_LEVEL - SFX_FLAG); + Actor_PlaySfx_Flagged(thisx, NA_SE_PL_SLIP_ICE_LEVEL - SFX_FLAG); } BgIceObjects_CheckPits(this, play); } diff --git a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c index 83df9766dd..0f81ee9373 100644 --- a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c +++ b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c @@ -165,7 +165,7 @@ void BgJya1flift_Move(BgJya1flift* this, PlayState* play) { BgJya1flift_ResetMoveDelay(this); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE3 - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE3 - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c b/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c index b610da9e42..10548a1d16 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c +++ b/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c @@ -93,7 +93,7 @@ void func_80893438(BgJyaAmishutter* this) { func_808934B0(this); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_METALDOOR_STOP); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); } } @@ -116,7 +116,7 @@ void func_8089350C(BgJyaAmishutter* this) { BgJyaAmishutter_SetupWaitForPlayer(this); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_METALDOOR_STOP); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c b/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c index 0c6a191db9..d234c42ab3 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c +++ b/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c @@ -517,7 +517,7 @@ void func_80896ABC(BgJyaCobra* this, PlayState* play) { } this->dyna.unk_150 = 0.0f; - func_8002F974(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); } void BgJyaCobra_Update(Actor* thisx, PlayState* play2) { diff --git a/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c b/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c index d26f9e400e..8b3375967e 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c +++ b/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c @@ -119,7 +119,7 @@ void BgJyaLift_Move(BgJyaLift* this, PlayState* play) { BgJyaLift_SetFinalPosY(this); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_ELEVATOR_STOP); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_BRIDGE_OPEN - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_BRIDGE_OPEN - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c index e0486556ca..212a74515a 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c +++ b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c @@ -190,7 +190,7 @@ void BgJyaMegami_DetectLight(BgJyaMegami* this, PlayState* play) { if (play->gameplayFrames % 4 == 0) { BgJyaMegami_SetupSpawnEffect(this, play, (this->crumbleIndex * 0.04f) + 0.05f); } - func_8002F974(&this->dyna.actor, NA_SE_EV_FACE_CRUMBLE_SLOW - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_FACE_CRUMBLE_SLOW - SFX_FLAG); } else if (this->lightTimer > 0) { this->lightTimer--; } diff --git a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c index 2786512bc6..1baa36c389 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c +++ b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c @@ -170,7 +170,7 @@ void func_8089B870(BgJyaZurerukabe* this, PlayState* play) { } D_8089B9C0[this->unk_168] = D_8089BA08[this->unk_168] * this->unk_16E; - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); } void BgJyaZurerukabe_Update(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.c b/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.c index 7b3e0b5b44..95b9bbb95d 100644 --- a/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.c +++ b/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.c @@ -51,7 +51,7 @@ void BgMenkuriKaiten_Update(Actor* thisx, PlayState* play) { BgMenkuriKaiten* this = (BgMenkuriKaiten*)thisx; if (!Flags_GetSwitch(play, this->dyna.actor.params) && DynaPolyActor_IsPlayerAbove(&this->dyna)) { - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); this->dyna.actor.shape.rot.y += 0x80; } } diff --git a/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c b/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c index c2d7cfff8d..9dbf6f317e 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c @@ -290,9 +290,9 @@ void BgMizuMovebg_UpdateMain(BgMizuMovebg* this, PlayState* play) { } if (this->sfxFlags & 2) { if (this->dyna.actor.room == 0) { - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); } else { - func_8002F948(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); } } } @@ -312,7 +312,7 @@ void BgMizuMovebg_UpdateMain(BgMizuMovebg* this, PlayState* play) { this->sfxFlags |= 2; } if (this->sfxFlags & 2) { - func_8002F948(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); } } break; @@ -367,7 +367,7 @@ void BgMizuMovebg_UpdateHookshotPlatform(BgMizuMovebg* this, PlayState* play) { this->sfxFlags |= 1; } if (this->sfxFlags & 1) { - func_8002F948(&this->dyna.actor, NA_SE_EV_ROLL_STAND_2 - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_ROLL_STAND_2 - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c b/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c index b92f747655..8805462c43 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c @@ -138,7 +138,7 @@ void BgMizuShutter_Move(BgMizuShutter* this, PlayState* play) { void BgMizuShutter_WaitForTimer(BgMizuShutter* this, PlayState* play) { if (this->timerMax != 0x3F * 20) { this->timer--; - func_8002F994(&this->dyna.actor, this->timer); + Actor_PlaySfx_FlaggedTimer(&this->dyna.actor, this->timer); if (this->timer == 0) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_METALDOOR_CLOSE); Flags_UnsetSwitch(play, BGMIZUSHUTTER_GET_SWITCH(&this->dyna.actor)); diff --git a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c index 141a4617bd..2a34e9862d 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c @@ -286,10 +286,10 @@ void BgMizuWater_ChangeWaterLevel(BgMizuWater* this, PlayState* play) { if (this->targetY < this->actor.world.pos.y) { Rumble_Request(0.0f, 120, 20, 10); - func_8002F948(&this->actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); } else if (this->targetY > this->actor.world.pos.y) { Rumble_Request(0.0f, 120, 20, 10); - func_8002F948(&this->actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c b/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c index a1222249ca..67a1d8bc39 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c @@ -211,7 +211,7 @@ void func_808A3E54(BgMoriHineri* this, PlayState* play) { } } if ((sSubCamId >= CAM_ID_SUB_FIRST) && ((GET_ACTIVE_CAM(play)->eye.z - this->dyna.actor.world.pos.z) < 1100.0f)) { - func_8002F948(&this->dyna.actor, NA_SE_EV_FLOOR_ROLLING - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_FLOOR_ROLLING - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c index 67fedc30b6..f2dbe45664 100644 --- a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c +++ b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c @@ -410,7 +410,7 @@ void BgPoEvent_BlockPush(BgPoEvent* this, PlayState* play) { BgPoEvent_CheckBlock(this); BgPoEvent_CheckBlock((BgPoEvent*)this->dyna.actor.parent); } - func_8002F974(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); } void BgPoEvent_BlockReset(BgPoEvent* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c index ec97d9a604..9b99aec877 100644 --- a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c +++ b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c @@ -135,7 +135,7 @@ void BgPoSyokudai_Update(Actor* thisx, PlayState* play) { CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base); CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); if (Flags_GetSwitch(play, this->actor.params)) { - func_8002F974(&this->actor, NA_SE_EV_TORCH - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_TORCH - SFX_FLAG); } this->flameTextureScroll++; } diff --git a/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c b/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c index caa1c6e897..3b1f559479 100644 --- a/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c +++ b/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c @@ -134,7 +134,7 @@ void func_808A91AC(BgRelayObjects* this, PlayState* play) { if (this->timer != 0) { this->timer--; } - func_8002F994(&this->dyna.actor, this->timer); + Actor_PlaySfx_FlaggedTimer(&this->dyna.actor, this->timer); } if ((this->timer == 0) || (this->unk_169 == play->roomCtx.curRoom.num)) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_SLIDE_DOOR_CLOSE); diff --git a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c index c4e9946972..d2d7b8f08c 100644 --- a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c +++ b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c @@ -177,13 +177,13 @@ void BgSpot00Hanebasi_DrawbridgeRiseAndFall(BgSpot00Hanebasi* this, PlayState* p if (this->actionFunc == BgSpot00Hanebasi_DrawbridgeWait) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BRIDGE_CLOSE_STOP); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_BRIDGE_CLOSE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_BRIDGE_CLOSE - SFX_FLAG); } } else { if (this->actionFunc == BgSpot00Hanebasi_DrawbridgeWait) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BRIDGE_OPEN_STOP); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_BRIDGE_OPEN - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_BRIDGE_OPEN - SFX_FLAG); } } } diff --git a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c index 1d7cbed6ca..56f8649b10 100644 --- a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c +++ b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c @@ -178,7 +178,7 @@ void func_808ACB58(BgSpot02Objects* this, PlayState* play) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_STONEDOOR_STOP); this->actionFunc = func_808AC8FC; } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_WALL_MOVE_SP - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_WALL_MOVE_SP - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c index d55b4e6ad7..c3dde47f41 100644 --- a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c +++ b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c @@ -256,7 +256,7 @@ void BgSpot06Objects_GateOpen(BgSpot06Objects* this, PlayState* play) { this->timer = 0; Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_METALDOOR_STOP); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG); } } @@ -506,5 +506,5 @@ void BgSpot06Objects_WaterPlaneCutsceneRise(BgSpot06Objects* this, PlayState* pl play->colCtx.colHeader->waterBoxes[LHWB_MAIN_2].ySurface = this->dyna.actor.world.pos.y; } - func_8002F948(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); } diff --git a/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c b/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c index f38397020b..113fdfad9e 100644 --- a/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c +++ b/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c @@ -125,7 +125,7 @@ void func_808B318C(BgSpot12Gate* this, PlayState* play) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BRIDGE_OPEN_STOP); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_METALGATE_OPEN - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_METALGATE_OPEN - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c b/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c index ef9e86b905..abbb7bd80b 100644 --- a/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c +++ b/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c @@ -109,7 +109,7 @@ void func_808B3604(BgSpot12Saku* this, PlayState* play) { func_808B3714(this); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BRIDGE_OPEN_STOP); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_METALGATE_OPEN - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_METALGATE_OPEN - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c index 4aafd3439f..1289560e2d 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c @@ -230,7 +230,7 @@ void func_808B7BCC(BgSpot18Basket* this, PlayState* play) { } } } - func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); } void func_808B7D38(BgSpot18Basket* this) { diff --git a/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c b/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c index fed7a4263e..4156815ddf 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c @@ -259,7 +259,7 @@ void func_808B8F08(BgSpot18Obj* this, PlayState* play) { Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND); } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c b/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c index af649f2e79..789921509e 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c @@ -109,7 +109,7 @@ void func_808B9698(BgSpot18Shutter* this, PlayState* play) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_STONEDOOR_STOP); this->actionFunc = func_808B95AC; } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_STONE_STATUE_OPEN - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_STONE_STATUE_OPEN - SFX_FLAG); } } @@ -125,7 +125,7 @@ void func_808B971C(BgSpot18Shutter* this, PlayState* play) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_STONEDOOR_STOP); this->actionFunc = func_808B95AC; } else { - func_8002F974(&this->dyna.actor, NA_SE_EV_STONE_STATUE_OPEN - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_STONE_STATUE_OPEN - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c b/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c index 2574e5640c..3673771efa 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c @@ -113,12 +113,12 @@ void BgYdanHasi_MoveWater(BgYdanHasi* this, PlayState* play) { Flags_UnsetSwitch(play, this->type); this->actionFunc = BgYdanHasi_InitWater; } - func_8002F948(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); } else { if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y - 47.0f, 0.5f)) { this->actionFunc = BgYdanHasi_DecWaterTimer; } - func_8002F948(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); } waterBox = &play->colCtx.colHeader->waterBoxes[1]; waterBox->ySurface = this->dyna.actor.world.pos.y; @@ -128,7 +128,7 @@ void BgYdanHasi_DecWaterTimer(BgYdanHasi* this, PlayState* play) { if (this->timer != 0) { this->timer--; } - func_8002F994(&this->dyna.actor, this->timer); + Actor_PlaySfx_FlaggedTimer(&this->dyna.actor, this->timer); if (this->timer == 0) { this->actionFunc = BgYdanHasi_MoveWater; } @@ -153,13 +153,13 @@ void BgYdanHasi_UpdateThreeBlocks(BgYdanHasi* this, PlayState* play) { this->dyna.actor.draw = NULL; this->actionFunc = BgYdanHasi_SetupThreeBlocks; } else { - func_8002F948(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); } } else if (!Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y + 120.0f, 3.0f)) { - func_8002F948(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); } else { - func_8002F994(&this->dyna.actor, this->timer); + Actor_PlaySfx_FlaggedTimer(&this->dyna.actor, this->timer); } } diff --git a/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c b/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c index 3fe00945b0..fd0f8ac0b1 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c @@ -141,7 +141,7 @@ void func_808BEFF4(BgYdanMaruta* this, PlayState* play) { } this->dyna.actor.shape.rot.x += 0x360; CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); - func_8002F974(&this->dyna.actor, NA_SE_EV_TOGE_STICK_ROLLING - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_TOGE_STICK_ROLLING - SFX_FLAG); } void func_808BF078(BgYdanMaruta* this, PlayState* play) { @@ -178,7 +178,7 @@ void func_808BF108(BgYdanMaruta* this, PlayState* play) { this->dyna.actor.world.pos.x = (Math_CosS(this->dyna.actor.shape.rot.y) * temp) + this->dyna.actor.home.pos.x; this->dyna.actor.world.pos.z = (Math_SinS(this->dyna.actor.shape.rot.y) * temp) + this->dyna.actor.home.pos.z; - func_8002F974(&this->dyna.actor, NA_SE_EV_TRAP_OBJ_SLIDE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_TRAP_OBJ_SLIDE - SFX_FLAG); } void func_808BF1EC(BgYdanMaruta* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index 0733975b37..e7aee5729e 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -1433,7 +1433,7 @@ void BossSst_HandRetreat(BossSst* this, PlayState* play) { inPosition = Math_ScaledStepToS(&this->actor.shape.rot.y, this->actor.home.rot.y, 0x200); inPosition &= Math_ScaledStepToS(&this->actor.shape.rot.z, this->actor.home.rot.z, 0x200); inPosition &= Math_ScaledStepToS(&this->handYRotMod, 0, 0x800); - func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); if ((Math_SmoothStepToF(&this->actor.world.pos.y, ROOM_CENTER_Y + 250.0f, 0.5f, 70.0f, 5.0f) < 1.0f) && inPosition && (diff < 10.0f)) { this->timer = 8; @@ -1468,7 +1468,7 @@ void BossSst_HandReadySlam(BossSst* this, PlayState* play) { Math_ScaledStepToS(&this->actor.shape.rot.x, -0x1000, 0x100); Math_ApproachF(&this->actor.world.pos.x, player->actor.world.pos.x, 0.5f, 40.0f); Math_ApproachF(&this->actor.world.pos.z, player->actor.world.pos.z, 0.5f, 40.0f); - func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); } } @@ -1553,7 +1553,7 @@ void BossSst_HandReadySweep(BossSst* this, PlayState* play) { if (inPosition) { BossSst_HandSetupSweep(this); } else { - func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); } } @@ -1646,7 +1646,7 @@ void BossSst_HandPunch(BossSst* this, PlayState* play) { BossSst_HandSetupRetreat(this); } - func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); } void BossSst_HandSetupReadyClap(BossSst* this) { @@ -1746,7 +1746,7 @@ void BossSst_HandClap(BossSst* this, PlayState* play) { } this->ready = true; } else { - func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); } this->actor.world.pos.x = (Math_SinS(this->actor.shape.rot.y) * this->radius) + sHead->actor.world.pos.x; @@ -1837,7 +1837,7 @@ void BossSst_HandGrab(BossSst* this, PlayState* play) { } else { this->actor.speed *= 1.26f; this->actor.speed = CLAMP_MAX(this->actor.speed, 70.0f); - func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); } if (this->colliderJntSph.base.atFlags & AT_HIT) { @@ -1964,7 +1964,7 @@ void BossSst_HandSwing(BossSst* this, PlayState* play) { Player_PlaySfx(player, NA_SE_PL_BODY_HIT); } - func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); } void BossSst_HandSetupReel(BossSst* this) { @@ -2025,7 +2025,7 @@ void BossSst_HandReadyShake(BossSst* this, PlayState* play) { if ((diff < 30.0f) && inPosition) { BossSst_HandSetupShake(this); } else { - func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); } } @@ -2280,7 +2280,7 @@ void BossSst_HandRecover(BossSst* this, PlayState* play) { this->ready = true; } } - func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); } void BossSst_HandSetupFrozen(BossSst* this) { @@ -2406,7 +2406,7 @@ void BossSst_HandBreakIce(BossSst* this, PlayState* play) { BossSst_HandSetupRetreat(this); } - func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); } void BossSst_HandGrabPlayer(BossSst* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c index d3c65de390..5d7e6e9144 100644 --- a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c +++ b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c @@ -207,11 +207,11 @@ void Demo6K_WaitForObject(Demo6K* this, PlayState* play) { void func_80966E04(Demo6K* this, PlayState* play) { if (play->csCtx.curFrame > 214) { - func_8002F948(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); } if (play->csCtx.curFrame > 264) { - func_8002F948(&this->actor, NA_SE_EV_GOD_LIGHTBALL_2 - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_GOD_LIGHTBALL_2 - SFX_FLAG); } if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[6] != NULL) && @@ -222,8 +222,8 @@ void func_80966E04(Demo6K* this, PlayState* play) { void func_80966E98(Demo6K* this, PlayState* play) { if (play->csCtx.curFrame < 353) { - func_8002F948(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); - func_8002F948(&this->actor, NA_SE_EV_GOD_LIGHTBALL_2 - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_GOD_LIGHTBALL_2 - SFX_FLAG); } if (play->csCtx.curFrame == 342) { @@ -300,7 +300,7 @@ void func_8096712C(Demo6K* this, PlayState* play) { this->timer2++; if ((play->sceneId == SCENE_INSIDE_GANONS_CASTLE) && (play->csCtx.curFrame < D_8096932C[this->actor.params - 3])) { - func_8002F974(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); } } @@ -465,7 +465,7 @@ void func_80967AD0(Demo6K* this, PlayState* play) { if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[1] != NULL)) { if (play->csCtx.actorCues[1]->id == 2) { this->unk_170++; - func_8002F948(&this->actor, NA_SE_EV_RAINBOW_SHOWER - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_RAINBOW_SHOWER - SFX_FLAG); } func_809691BC(this, play, 1); diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index 4639979c7b..001af32b89 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -756,7 +756,7 @@ void DemoEffect_UpdateTimeWarpReturnFromChamberOfSages(DemoEffect* this, PlaySta DemoEffect_TimewarpShrink(shrinkProgress * 5.0f); } - func_8002F948(&this->actor, NA_SE_EV_TIMETRIP_LIGHT - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_TIMETRIP_LIGHT - SFX_FLAG); } /** @@ -780,7 +780,7 @@ void DemoEffect_UpdateTimeWarpTimeblock(DemoEffect* this, PlayState* play) { this->actor.scale.x = scale; this->actor.scale.z = scale; DemoEffect_TimewarpShrink(shrinkProgress); - func_8002F948(&this->actor, NA_SE_EV_TIMETRIP_LIGHT - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_TIMETRIP_LIGHT - SFX_FLAG); return; } @@ -793,7 +793,7 @@ void DemoEffect_UpdateTimeWarpTimeblock(DemoEffect* this, PlayState* play) { * This is an Update Func that is only ran for one frame. */ void DemoEffect_InitTimeWarpTimeblock(DemoEffect* this, PlayState* play) { - func_8002F948(&this->actor, NA_SE_EV_TIMETRIP_LIGHT - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_EV_TIMETRIP_LIGHT - SFX_FLAG); if (SkelCurve_Update(play, &this->skelCurve)) { SkelCurve_SetAnim(&this->skelCurve, &gTimeWarpAnim, 1.0f, 60.0f, 59.0f, 0.0f); @@ -1494,10 +1494,10 @@ void DemoEffect_JewelSparkle(DemoEffect* this, PlayState* play, s32 spawnerCount void DemoEffect_PlayJewelSfx(DemoEffect* this, PlayState* play) { if (!DemoEffect_CheckForCue(this, play, 1)) { if (this->actor.params == sSfxJewelId[0]) { - func_8002F974(&this->actor, NA_SE_EV_SPIRIT_STONE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_SPIRIT_STONE - SFX_FLAG); } else if (sSfxJewelId[0] == 0) { sSfxJewelId[0] = this->actor.params; - func_8002F974(&this->actor, NA_SE_EV_SPIRIT_STONE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_SPIRIT_STONE - SFX_FLAG); } } } diff --git a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c index a51816bee3..fa10cef753 100644 --- a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c +++ b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c @@ -178,7 +178,7 @@ void DemoKekkai_TowerBarrier(DemoKekkai* this, PlayState* play) { } } if (!(this->sfxFlag & 1)) { - func_8002F974(&this->actor, NA_SE_EV_TOWER_BARRIER - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_TOWER_BARRIER - SFX_FLAG); } } @@ -226,7 +226,7 @@ void DemoKekkai_TrialBarrierDispel(Actor* thisx, PlayState* play) { this->orbScale = 0.0f; } if (this->orbScale != 0.0f) { - func_8002F974(&this->actor, NA_SE_EV_TOWER_ENERGY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_TOWER_ENERGY - SFX_FLAG); } this->timer++; } @@ -260,7 +260,7 @@ void DemoKekkai_TrialBarrierIdle(Actor* thisx, PlayState* play) { gSaveContext.cutsceneTrigger = 1; } CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider2.base); - func_8002F974(&this->actor, NA_SE_EV_TOWER_ENERGY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_TOWER_ENERGY - SFX_FLAG); } void DemoKekkai_DrawTrialBarrier(Actor* thisx, PlayState* play2) { diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index d1ee18c4d1..fef2174361 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -244,7 +244,7 @@ void func_809BCF68(EnBigokuta* this, PlayState* play) { } EffectSsGSplash_Spawn(play, &effectPos, NULL, NULL, 1, 800); if (this->actionFunc != func_809BE4A4) { - func_8002F974(&this->actor, NA_SE_EN_DAIOCTA_SPLASH - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_DAIOCTA_SPLASH - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.c b/src/overlays/actors/ovl_En_Bili/z_en_bili.c index dac6872172..d3c0271f0d 100644 --- a/src/overlays/actors/ovl_En_Bili/z_en_bili.c +++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.c @@ -374,7 +374,7 @@ void EnBili_DischargeLightning(EnBili* this, PlayState* play) { } SkelAnime_Update(&this->skelAnime); - func_8002F974(&this->actor, NA_SE_EN_BIRI_SPARK - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_BIRI_SPARK - SFX_FLAG); if (this->timer != 0) { this->timer--; 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 962f50e34c..6aba2ef11a 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -147,7 +147,7 @@ void EnBom_Move(EnBom* this, PlayState* play) { } else { Math_StepToF(&this->actor.speed, 0.0f, 1.0f); if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) && (this->actor.velocity.y < -3.0f)) { - func_8002F850(play, &this->actor); + Actor_PlaySfx_SurfaceBomb(play, &this->actor); this->actor.velocity.y *= -0.3f; this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH; } else if (this->timer >= 4) { 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 27b8af3059..47b7da4c80 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 @@ -235,7 +235,7 @@ void EnBomChu_WaitForRelease(EnBomChu* this, PlayState* play) { //! and will cause a crash inside this function. EnBomChu_UpdateFloorPoly(this, this->actor.floorPoly, play); this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; // make chu targetable - func_8002F850(play, &this->actor); + Actor_PlaySfx_SurfaceBomb(play, &this->actor); this->actionFunc = EnBomChu_Move; } } @@ -342,7 +342,7 @@ void EnBomChu_Move(EnBomChu* this, PlayState* play) { Math_ScaledStepToS(&this->actor.shape.rot.y, this->actor.world.rot.y, 0x800); Math_ScaledStepToS(&this->actor.shape.rot.z, this->actor.world.rot.z, 0x800); - func_8002F8F0(&this->actor, NA_SE_IT_BOMBCHU_MOVE - SFX_FLAG); + Actor_PlaySfx_Flagged2(&this->actor, NA_SE_IT_BOMBCHU_MOVE - SFX_FLAG); } void EnBomChu_WaitForKill(EnBomChu* this, PlayState* play) { 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 8127fd4622..2eb859805b 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -238,7 +238,7 @@ void EnBombf_Move(EnBombf* this, PlayState* play) { } else { Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 1.5f, 0.0f); if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) && (this->actor.velocity.y < -6.0f)) { - func_8002F850(play, &this->actor); + Actor_PlaySfx_SurfaceBomb(play, &this->actor); this->actor.velocity.y *= -0.5f; } else if (this->timer >= 4) { Actor_OfferCarry(&this->actor, play); diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index 9940d74c13..ba2e6e2909 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -150,7 +150,7 @@ void EnBoom_Fly(EnBoom* this, PlayState* play) { // Set xyz speed, move forward, and play the boomerang sound effect Actor_SetProjectileSpeed(&this->actor, 12.0f); Actor_MoveXZGravity(&this->actor); - func_8002F974(&this->actor, NA_SE_IT_BOOMERANG_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_IT_BOOMERANG_FLY - SFX_FLAG); // If the boomerang collides with EnItem00 or a Skulltula token, set grabbed pointer to pick it up collided = this->collider.base.atFlags & AT_HIT; diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c index 890bcf256d..f8f31956a9 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -486,7 +486,7 @@ void EnBox_SpawnIceSmoke(EnBox* this, PlayState* play) { f32 f0; this->iceSmokeTimer++; - func_8002F974(&this->dyna.actor, NA_SE_EN_MIMICK_BREATH - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EN_MIMICK_BREATH - SFX_FLAG); if (Rand_ZeroOne() < 0.3f) { f0 = 2.0f * Rand_ZeroOne() - 1.0f; pos = this->dyna.actor.world.pos; diff --git a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c index dc9bf033a3..d9b561492e 100644 --- a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c +++ b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c @@ -445,7 +445,7 @@ void EnEiyer_Glide(EnEiyer* this, PlayState* play) { EnEiyer_SetupStartAttack(this); } - func_8002F974(&this->actor, NA_SE_EN_EIER_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_EIER_FLY - SFX_FLAG); } void EnEiyer_StartAttack(EnEiyer* this, PlayState* play) { @@ -469,7 +469,7 @@ void EnEiyer_StartAttack(EnEiyer* this, PlayState* play) { this->actor.world.rot.x = -this->actor.shape.rot.x; Math_StepToF(&this->actor.speed, 5.0f, 0.3f); Math_ApproachS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 2, 0x71C); - func_8002F974(&this->actor, NA_SE_EN_EIER_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_EIER_FLY - SFX_FLAG); } void EnEiyer_DiveAttack(EnEiyer* this, PlayState* play) { @@ -484,7 +484,7 @@ void EnEiyer_DiveAttack(EnEiyer* this, PlayState* play) { this->collider.base.atFlags &= ~(AT_ON | AT_HIT); } - func_8002F974(&this->actor, NA_SE_EN_EIER_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_EIER_FLY - SFX_FLAG); } void EnEiyer_Land(EnEiyer* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Fd/z_en_fd.c b/src/overlays/actors/ovl_En_Fd/z_en_fd.c index cb62c9d622..57659f2dea 100644 --- a/src/overlays/actors/ovl_En_Fd/z_en_fd.c +++ b/src/overlays/actors/ovl_En_Fd/z_en_fd.c @@ -526,9 +526,9 @@ void EnFd_SpinAndSpawnFire(EnFd* this, PlayState* play) { f32 rotSpeed; if ((this->spinTimer < 31) && (this->invincibilityTimer == 0)) { - func_8002F974(&this->actor, NA_SE_EN_FLAME_FIRE_ATTACK - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_FLAME_FIRE_ATTACK - SFX_FLAG); } else { - func_8002F974(&this->actor, NA_SE_EN_FLAME_ROLL - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_FLAME_ROLL - SFX_FLAG); } if (DECR(this->spinTimer) != 0) { @@ -617,7 +617,7 @@ void EnFd_Run(EnFd* this, PlayState* play) { EnFd_GetPosAdjAroundCircle(&adjPos, this, this->runRadius, this->runDir); Math_SmoothStepToS(&this->actor.shape.rot.y, RAD_TO_BINANG(Math_FAtan2F(adjPos.x, adjPos.z)), 4, 0xFA0, 1); this->actor.world.rot = this->actor.shape.rot; - func_8002F974(&this->actor, NA_SE_EN_FLAME_RUN - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_FLAME_RUN - SFX_FLAG); if (this->skelAnime.curFrame == 6.0f || this->skelAnime.curFrame == 13.0f || this->skelAnime.curFrame == 28.0f) { Actor_PlaySfx(&this->actor, NA_SE_EN_FLAME_KICK); } diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index 516a2ed6aa..997d40d1b4 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -580,7 +580,7 @@ void EnFloormas_Slide(EnFloormas* this, PlayState* play) { func_800286CC(play, &pos, &velocity, &accel, 450, 100); - func_8002F974(&this->actor, NA_SE_EN_FLOORMASTER_SLIDING - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_FLOORMASTER_SLIDING - SFX_FLAG); } void EnFloormas_Charge(EnFloormas* this, PlayState* play) { @@ -927,7 +927,7 @@ void EnFloormas_Merge(EnFloormas* this, PlayState* play) { } } } - func_8002F974(&this->actor, NA_SE_EN_FLOORMASTER_RESTORE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_FLOORMASTER_RESTORE - SFX_FLAG); } void EnFloormas_SmallWait(EnFloormas* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index f3f0165a9a..4b460e5797 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -510,7 +510,7 @@ void EnFz_BlowSmoke(EnFz* this, PlayState* play) { } else if (this->timer >= 11) { isTimerMod8 = false; primAlpha = 150; - func_8002F974(&this->actor, NA_SE_EN_FREEZAD_BREATH - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_FREEZAD_BREATH - SFX_FLAG); if ((this->timer - 10) < 16) { // t < 26 primAlpha = (this->timer * 10) - 100; @@ -622,7 +622,7 @@ void EnFz_BlowSmokeStationary(EnFz* this, PlayState* play) { } else { isTimerMod8 = false; primAlpha = 150; - func_8002F974(&this->actor, NA_SE_EN_FREEZAD_BREATH - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_FREEZAD_BREATH - SFX_FLAG); if ((this->counter & 0x3F) >= 48) { primAlpha = 630 - ((this->counter & 0x3F) * 10); diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index 28d8779629..0c5e3cf4e4 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -353,7 +353,7 @@ void func_80A4ED34(EnGs* this, PlayState* play) { (s16)Rand_ZeroFloat(50.0f) + 200, 40, 15); } - func_8002F974(&this->actor, NA_SE_EV_FIRE_PILLAR - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_FIRE_PILLAR - SFX_FLAG); if (this->unk_200++ >= 40) { this->unk_19E |= 0x10; this->actor.flags |= ACTOR_FLAG_4; @@ -380,7 +380,7 @@ void func_80A4ED34(EnGs* this, PlayState* play) { this->unk_19E |= 8; this->actionFunc = func_80A4F700; } else { - func_8002F974(&this->actor, NA_SE_EV_STONE_LAUNCH - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_STONE_LAUNCH - SFX_FLAG); } Actor_MoveXZGravity(&this->actor); diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index 64a4b02589..82bd1b700d 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -221,7 +221,7 @@ void EnIceHono_CapturableFlame(EnIceHono* this, PlayState* play) { if (this->actor.xzDistToPlayer < 200.0f) { CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); } - func_8002F8F0(&this->actor, NA_SE_EV_FIRE_PILLAR_S - SFX_FLAG); + Actor_PlaySfx_Flagged2(&this->actor, NA_SE_EV_FIRE_PILLAR_S - SFX_FLAG); } void EnIceHono_SetupActionDroppedFlame(EnIceHono* this) { @@ -348,7 +348,7 @@ void EnIceHono_Update(Actor* thisx, PlayState* play) { this->timer--; } if (this->actor.params == 0) { - func_8002F8F0(&this->actor, NA_SE_IT_FLAME - SFX_FLAG); + Actor_PlaySfx_Flagged2(&this->actor, NA_SE_IT_FLAME - SFX_FLAG); } if ((this->actor.params == -1) || (this->actor.params == 0)) { this->unk_154 += 0x1111; 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 d0eac54fa0..1a06442304 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -225,7 +225,7 @@ void EnNy_Move(EnNy* this, PlayState* play) { s32 stoneTimer; if (!(this->unk_1F0 < this->actor.depthInWater)) { - func_8002F974(&this->actor, NA_SE_EN_NYU_MOVE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_NYU_MOVE - SFX_FLAG); } func_80ABCD40(this); stoneTimer = this->stoneTimer; diff --git a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c index 626b9e880a..0764411926 100644 --- a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c +++ b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c @@ -130,7 +130,7 @@ void EnPoDesert_UpdateSpeedModifier(EnPoDesert* this) { } void EnPoDesert_WaitForPlayer(EnPoDesert* this, PlayState* play) { - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); if (this->actor.xzDistToPlayer < 200.0f && (this->currentPathPoint != 2 || play->actorCtx.lensActive)) { if (this->currentPathPoint == 2) { if (Play_InCsMode(play)) { @@ -161,7 +161,7 @@ void EnPoDesert_MoveToNextPoint(EnPoDesert* this, PlayState* play) { this->actor.world.rot.y = Actor_WorldYawTowardPoint(&this->actor, &this->actor.home.pos); Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y + 0x8000, 5, 0x400); this->actor.speed = sinf(this->speedModifier * (M_PI / 32.0f)) * 2.5f + 5.5f; - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); this->targetY = this->actor.home.pos.y - ((temp_f20 * this->yDiff) / this->initDistToNextPoint); if (temp_f20 < 40.0f) { if (this->currentPathPoint != 0) { diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index a0946648c6..e65fec05a1 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -495,7 +495,7 @@ void EnPoField_CirclePlayer(EnPoField* this, PlayState* play) { EnPoField_SpawnFlame(this); } EnPoField_CorrectYPos(this, play); - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); } void EnPoField_Flee(EnPoField* this, PlayState* play) { @@ -523,7 +523,7 @@ void EnPoField_Flee(EnPoField* this, PlayState* play) { } else { EnPoField_CorrectYPos(this, play); } - func_8002F974(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG); } void EnPoField_Damage(EnPoField* this, PlayState* play) { @@ -690,7 +690,7 @@ void EnPoField_SoulInteract(EnPoField* this, PlayState* play) { if (this->actor.textId != 0x5005) { EnPoField_SoulUpdateProperties(this, -13); } else { - func_8002F974(&this->actor, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); } if (Message_GetState(&play->msgCtx) == TEXT_STATE_CHOICE) { if (Message_ShouldAdvance(play)) { diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index 54b3fadb85..63b4311d15 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -168,7 +168,7 @@ void EnPoRelay_Idle(EnPoRelay* this, PlayState* play) { this->actor.textId = this->textId; Actor_OfferTalk(&this->actor, play, 250.0f); } - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); } void EnPoRelay_Talk(EnPoRelay* this, PlayState* play) { @@ -178,7 +178,7 @@ void EnPoRelay_Talk(EnPoRelay* this, PlayState* play) { this->textId = this->actor.textId; EnPoRelay_SetupRace(this); } - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); } void EnPoRelay_Race(EnPoRelay* this, PlayState* play) { @@ -250,7 +250,7 @@ void EnPoRelay_Race(EnPoRelay* this, PlayState* play) { } } this->unk_19A = Actor_WorldYawTowardPoint(&this->actor, &vec); - func_8002F974(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG); } void EnPoRelay_EndRace(EnPoRelay* this, PlayState* play) { @@ -264,7 +264,7 @@ void EnPoRelay_EndRace(EnPoRelay* this, PlayState* play) { this->actor.textId = this->textId; Actor_OfferTalk(&this->actor, play, 250.0f); } - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); } void EnPoRelay_Talk2(EnPoRelay* this, PlayState* play) { @@ -284,7 +284,7 @@ void EnPoRelay_Talk2(EnPoRelay* this, PlayState* play) { this->actionTimer = 0; this->actionFunc = EnPoRelay_DisappearAndReward; } - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); } void EnPoRelay_DisappearAndReward(EnPoRelay* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 70a6114653..9606a85cf0 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -591,9 +591,9 @@ void func_80ADA35C(EnPoSisters* this, PlayState* play) { this->actor.world.pos.y += (2.0f + 0.5f * Rand_ZeroOne()) * Math_SinS(this->unk_196 * 0x800); if (this->unk_22E.a == 255 && this->actionFunc != func_80ADA8C0 && this->actionFunc != func_80ADA7F0) { if (this->actionFunc == func_80ADAC70) { - func_8002F974(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG); } else { - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); } } } @@ -1050,7 +1050,7 @@ void func_80ADBC88(EnPoSisters* this, PlayState* play) { func_80ADA10C(this); } } - func_8002F974(&this->actor, NA_SE_EV_TORCH - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_TORCH - SFX_FLAG); } void func_80ADBD38(EnPoSisters* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index fafee9e204..6205aaac94 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -488,7 +488,7 @@ void func_80ADEAC4(EnPoh* this, PlayState* play) { EnPoh_SetupIdle(this); } if (this->lightColor.a == 255) { - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); } } @@ -510,7 +510,7 @@ void EnPoh_Idle(EnPoh* this, PlayState* play) { } } if (this->lightColor.a == 255) { - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); } } @@ -539,7 +539,7 @@ void func_80ADEC9C(EnPoh* this, PlayState* play) { EnPoh_SetupAttack(this); } if (this->lightColor.a == 255) { - func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); } } @@ -708,7 +708,7 @@ void func_80ADF894(EnPoh* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; EnPoh_SetupIdle(this); } - func_8002F974(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG); } void EnPoh_Death(EnPoh* this, PlayState* play) { @@ -808,7 +808,7 @@ void EnPoh_TalkRegular(EnPoh* this, PlayState* play) { if (this->actor.textId != 0x5005) { func_80ADFA90(this, -13); } else { - func_8002F974(&this->actor, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); } if (Message_GetState(&play->msgCtx) == TEXT_STATE_CHOICE) { if (Message_ShouldAdvance(play)) { @@ -834,7 +834,7 @@ void EnPoh_TalkRegular(EnPoh* this, PlayState* play) { } void EnPoh_TalkComposer(EnPoh* this, PlayState* play) { - func_8002F974(&this->actor, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_BIG_CRY - SFX_FLAG); if (Message_GetState(&play->msgCtx) == TEXT_STATE_CHOICE) { if (Message_ShouldAdvance(play)) { if (play->msgCtx.choiceIndex == 0) { diff --git a/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c b/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c index 6d6f5baba0..44e7410969 100644 --- a/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c +++ b/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c @@ -202,7 +202,7 @@ void func_80AFC218(EnSiofuki* this, PlayState* play) { break; } } else { - func_8002F994(&this->dyna.actor, this->timer); + Actor_PlaySfx_FlaggedTimer(&this->dyna.actor, this->timer); } if ((PARAMS_GET_U((u16)this->dyna.actor.params, 12, 4) == EN_SIOFUKI_LOWERING) && diff --git a/src/overlays/actors/ovl_En_Stream/z_en_stream.c b/src/overlays/actors/ovl_En_Stream/z_en_stream.c index c5c3a56494..3d094eb73f 100644 --- a/src/overlays/actors/ovl_En_Stream/z_en_stream.c +++ b/src/overlays/actors/ovl_En_Stream/z_en_stream.c @@ -124,7 +124,7 @@ void EnStream_Update(Actor* thisx, PlayState* play) { EnStream* this = (EnStream*)thisx; this->actionFunc(this, play); - func_8002F948(thisx, NA_SE_EV_WHIRLPOOL - SFX_FLAG); + Actor_PlaySfx_FlaggedCentered2(thisx, NA_SE_EV_WHIRLPOOL - SFX_FLAG); } void EnStream_Draw(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Tr/z_en_tr.c b/src/overlays/actors/ovl_En_Tr/z_en_tr.c index 8908dad6c8..e2d612d61b 100644 --- a/src/overlays/actors/ovl_En_Tr/z_en_tr.c +++ b/src/overlays/actors/ovl_En_Tr/z_en_tr.c @@ -135,7 +135,7 @@ void EnTr_CrySpellcast(EnTr* this, PlayState* play) { } else if (this->actor.child != NULL) { this->actor.child = NULL; } - func_8002F974(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG); } void EnTr_DoNothing(EnTr* this, PlayState* play) { @@ -170,7 +170,7 @@ void EnTr_ChooseAction2(EnTr* this, PlayState* play) { EnTr_SetRotFromCue(this, play, this->cueChannel); break; } - func_8002F974(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG); } } } @@ -200,7 +200,7 @@ void EnTr_FlyKidnapCutscene(EnTr* this, PlayState* play) { } if (play->csCtx.curFrame < 670) { - func_8002F974(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG); } } } @@ -291,7 +291,7 @@ void EnTr_Reappear(EnTr* this, PlayState* play) { if (this->timer > 0) { this->timer--; } - func_8002F974(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG); } void EnTr_WaitToReappear(EnTr* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Vali/z_en_vali.c b/src/overlays/actors/ovl_En_Vali/z_en_vali.c index 8654a0dc08..28b40fe9c9 100644 --- a/src/overlays/actors/ovl_En_Vali/z_en_vali.c +++ b/src/overlays/actors/ovl_En_Vali/z_en_vali.c @@ -301,7 +301,7 @@ void EnVali_DischargeLightning(EnVali* this, PlayState* play) { } } - func_8002F974(&this->actor, NA_SE_EN_BIRI_SPARK - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_BIRI_SPARK - SFX_FLAG); } void EnVali_Lurk(EnVali* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c index 02196544f2..a3317eef79 100644 --- a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c +++ b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c @@ -94,7 +94,7 @@ void func_80B43AD4(EnYukabyun* this, PlayState* play) { this->actionfunc = func_80B43B6C; } Math_StepToF(&this->actor.world.pos.y, this->actor.home.pos.y + 30.0f, 1.0f); - func_8002F974(&this->actor, NA_SE_EN_YUKABYUN_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_YUKABYUN_FLY - SFX_FLAG); } void func_80B43B6C(EnYukabyun* this, PlayState* play) { @@ -103,7 +103,7 @@ void func_80B43B6C(EnYukabyun* this, PlayState* play) { Actor_Kill(&this->actor); return; } - func_8002F974(&this->actor, NA_SE_EN_YUKABYUN_FLY - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_YUKABYUN_FLY - SFX_FLAG); } void EnYukabyun_Break(EnYukabyun* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c index cab83bbb76..bbf6a50bba 100644 --- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c +++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c @@ -133,9 +133,9 @@ void MagicDark_DiamondUpdate(Actor* thisx, PlayState* play) { gSaveContext.nayrusLoveTimer = nayrusLoveTimer + 1; if (nayrusLoveTimer < 1100) { - func_8002F974(thisx, NA_SE_PL_MAGIC_SOUL_NORMAL - SFX_FLAG); + Actor_PlaySfx_Flagged(thisx, NA_SE_PL_MAGIC_SOUL_NORMAL - SFX_FLAG); } else { - func_8002F974(thisx, NA_SE_PL_MAGIC_SOUL_FLASH - SFX_FLAG); + Actor_PlaySfx_Flagged(thisx, NA_SE_PL_MAGIC_SOUL_FLASH - SFX_FLAG); } } @@ -178,7 +178,7 @@ void MagicDark_OrbUpdate(Actor* thisx, PlayState* play) { s32 pad; Player* player = GET_PLAYER(play); - func_8002F974(&this->actor, NA_SE_PL_MAGIC_SOUL_BALL - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_PL_MAGIC_SOUL_BALL - SFX_FLAG); if (this->timer < 35) { MagicDark_DimLighting(play, this->timer * (1 / 45.0f)); Math_SmoothStepToF(&thisx->scale.x, this->scale * (1 / 12.000001f), 0.05f, 0.01f, 0.0001f); diff --git a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c index 981b869447..ee4e7acc75 100644 --- a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c +++ b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c @@ -256,7 +256,7 @@ void MirRay_Update(Actor* thisx, PlayState* play) { MirRay_MakeShieldLight(this, play); if (this->reflectIntensity > 0.0f) { - func_8002F8F0(&player->actor, NA_SE_IT_SHIELD_BEAM - SFX_FLAG); + Actor_PlaySfx_Flagged2(&player->actor, NA_SE_IT_SHIELD_BEAM - SFX_FLAG); } } } diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c index 664b1a87fa..9157deeeeb 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -580,7 +580,7 @@ void func_80B8FEAC(ObjBean* this, PlayState* play) { } else { this->timer = 1; } - func_8002F974(&this->dyna.actor, NA_SE_PL_PLANT_GROW_UP - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_PL_PLANT_GROW_UP - SFX_FLAG); } void func_80B8FF50(ObjBean* this) { @@ -676,7 +676,7 @@ void ObjBean_GrowWaterPhase2(ObjBean* this, PlayState* play) { if (this->stalkSizeMultiplier >= 0.1f) { // 100 Frames ObjBean_SetupGrowWaterPhase3(this); } - func_8002F974(&this->dyna.actor, NA_SE_PL_PLANT_TALLER - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_PL_PLANT_TALLER - SFX_FLAG); } void ObjBean_SetupGrowWaterPhase3(ObjBean* this) { @@ -785,7 +785,7 @@ void ObjBean_Fly(ObjBean* this, PlayState* play) { } else if (DynaPolyActor_IsPlayerOnTop(&this->dyna)) { - func_8002F974(&this->dyna.actor, NA_SE_PL_PLANT_MOVE - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_PL_PLANT_MOVE - SFX_FLAG); if (play->sceneId == SCENE_LOST_WOODS) { Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BEAN_LOST_WOODS); diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index 5450d8650d..6d9318525c 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -252,7 +252,7 @@ void ObjSyokudai_Update(Actor* thisx, PlayState* play2) { lightRadius = (this->litTimer * 200.0f) / 20.0f; } brightness = (u8)(Rand_ZeroOne() * 127.0f) + 128; - func_8002F974(&this->actor, NA_SE_EV_TORCH - SFX_FLAG); + Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_TORCH - SFX_FLAG); } Lights_PointSetColorAndRadius(&this->lightInfo, brightness, brightness, 0, lightRadius); this->flameTexScroll++; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 14f1e1dff8..0a82afeed2 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -7530,7 +7530,7 @@ void func_8084029C(Player* this, f32 arg1) { if ((this->currentBoots == PLAYER_BOOTS_HOVER) && !(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && (this->hoverBootsTimer != 0)) { - func_8002F8F0(&this->actor, NA_SE_PL_HOBBERBOOTS_LV - SFX_FLAG); + Actor_PlaySfx_Flagged2(&this->actor, NA_SE_PL_HOBBERBOOTS_LV - SFX_FLAG); } else if (func_8084021C(this->unk_868, arg1, 29.0f, 10.0f) || func_8084021C(this->unk_868, arg1, 29.0f, 24.0f)) { Player_PlaySteppingSfx(this, this->speedXZ); if (this->speedXZ > 4.0f) { @@ -9181,7 +9181,7 @@ void Player_Action_80844708(Player* this, PlayState* play) { func_8083DF68(this, speedTarget, this->actor.shape.rot.y); if (func_8084269C(play, this)) { - func_8002F8F0(&this->actor, NA_SE_PL_ROLL_DUST - SFX_FLAG); + Actor_PlaySfx_Flagged2(&this->actor, NA_SE_PL_ROLL_DUST - SFX_FLAG); } Player_ProcessAnimSfxList(this, D_8085460C); @@ -10871,7 +10871,7 @@ void Player_UpdateBodyShock(PlayState* play, Player* this) { shockPos.z = (Rand_CenteredFloat(5.0f) + randBodyPart->z) - this->actor.world.pos.z; EffectSsFhgFlash_SpawnShock(play, &this->actor, &shockPos, shockScale, FHGFLASH_SHOCK_PLAYER); - func_8002F8F0(&this->actor, NA_SE_PL_SPARK - SFX_FLAG); + Actor_PlaySfx_Flagged2(&this->actor, NA_SE_PL_SPARK - SFX_FLAG); } } @@ -13792,7 +13792,7 @@ void Player_Action_8084FBF4(Player* this, PlayState* play) { } this->bodyShockTimer = 40; - func_8002F8F0(&this->actor, NA_SE_VO_LI_TAKEN_AWAY - SFX_FLAG + this->ageProperties->unk_92); + Actor_PlaySfx_Flagged2(&this->actor, NA_SE_VO_LI_TAKEN_AWAY - SFX_FLAG + this->ageProperties->unk_92); } #if OOT_DEBUG diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 03469ea75e..2d9b9f38af 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -436,12 +436,12 @@ func_8002F758 = 0x80023540; // type:func func_8002F7A0 = 0x80023588; // type:func Player_PlaySfx = 0x800235C4; // type:func Actor_PlaySfx = 0x80023610; // type:func -func_8002F850 = 0x8002363C; // type:func -func_8002F8F0 = 0x800236E0; // type:func -func_8002F91C = 0x80023714; // type:func -func_8002F948 = 0x80023748; // type:func -func_8002F974 = 0x8002377C; // type:func -func_8002F994 = 0x800237A4; // type:func +Actor_PlaySfx_SurfaceBomb = 0x8002363C; // type:func +Actor_PlaySfx_Flagged2 = 0x800236E0; // type:func +Actor_PlaySfx_FlaggedCentered1 = 0x80023714; // type:func +Actor_PlaySfx_FlaggedCentered2 = 0x80023748; // type:func +Actor_PlaySfx_Flagged = 0x8002377C; // type:func +Actor_PlaySfx_FlaggedTimer = 0x800237A4; // type:func func_8002F9EC = 0x800237FC; // type:func func_8002FA60 = 0x80023874; // type:func Actor_DrawFaroresWindPointer = 0x800239C4; // type:func @@ -451,7 +451,7 @@ Actor_InitContext = 0x8002425C; // type:func Actor_UpdateAll = 0x800243B0; // type:func Actor_FaultPrint = 0x8002484C; // type:func Actor_Draw = 0x800248C0; // type:func -func_80030ED8 = 0x80024B80; // type:func +Actor_UpdateFlaggedAudio = 0x80024B80; // type:func Actor_DrawLensOverlay = 0x80024C50; // type:func Actor_DrawLensActors = 0x80024DC4; // type:func func_800314B0 = 0x80024FF8; // type:func From c7ec814d7897456ecdf1772e395a13f048b5133d Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 8 Sep 2024 23:11:41 +0200 Subject: [PATCH 54/86] [headers 9] Add src/libc64/ and new "z64" rand.h (#2164) * rand.h -> libc64/qrand.h * Add rand.h with z64 rand wrappers * yeet comment * code/rand.c -> libc64/qrand.c * fixup * move libc64 source to src/libc64/ * fix * bss * update file splits disasm metadata --- Makefile | 10 ++----- include/functions.h | 2 -- include/libc64/qrand.h | 18 +++++++++++++ include/rand.h | 15 +++-------- include/z64.h | 1 + spec | 22 ++++++++-------- src/code/z_actor.c | 1 + src/{code => libc64}/__osMalloc_gc.c | 0 src/{code => libc64}/__osMalloc_n64.c | 0 src/{code/printutils.c => libc64/aprintf.c} | 0 src/{code => libc64}/fp.s | 0 src/{code/system_malloc.c => libc64/malloc.c} | 0 src/{code/fp_math.c => libc64/math64.c} | 0 src/{code/rand.c => libc64/qrand.c} | 2 +- src/{boot => libc64}/sleep.c | 0 src/{boot => libc64}/sprintf.c | 0 src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- tools/disasm/ntsc-1.2/files_boot.csv | 2 +- tools/disasm/ntsc-1.2/files_code.csv | 26 +++++++++---------- 19 files changed, 52 insertions(+), 49 deletions(-) create mode 100644 include/libc64/qrand.h rename src/{code => libc64}/__osMalloc_gc.c (100%) rename src/{code => libc64}/__osMalloc_n64.c (100%) rename src/{code/printutils.c => libc64/aprintf.c} (100%) rename src/{code => libc64}/fp.s (100%) rename src/{code/system_malloc.c => libc64/malloc.c} (100%) rename src/{code/fp_math.c => libc64/math64.c} (100%) rename src/{code/rand.c => libc64/qrand.c} (99%) rename src/{boot => libc64}/sleep.c (100%) rename src/{boot => libc64}/sprintf.c (100%) diff --git a/Makefile b/Makefile index 8f1cba73d9..2b098b6726 100644 --- a/Makefile +++ b/Makefile @@ -421,15 +421,9 @@ endif ifeq ($(COMPILER),ido) $(BUILD_DIR)/src/boot/driverominit.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/boot/logutils.o: OPTFLAGS := -O2 -$(BUILD_DIR)/src/boot/sleep.o: OPTFLAGS := -O2 -$(BUILD_DIR)/src/boot/sprintf.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/boot/stackcheck.o: OPTFLAGS := -O2 -$(BUILD_DIR)/src/code/__osMalloc_n64.o: OPTFLAGS := -O2 -$(BUILD_DIR)/src/code/__osMalloc_gc.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/code_800FC620.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 $(BUILD_DIR)/src/code/jpegdecoder.o: OPTFLAGS := -O2 @@ -439,9 +433,7 @@ $(BUILD_DIR)/src/code/loadfragment2_gc.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/mtxuty-cvt.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/padsetup.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/padutils.o: OPTFLAGS := -O2 -$(BUILD_DIR)/src/code/printutils.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/relocation_gc.o: OPTFLAGS := -O2 -$(BUILD_DIR)/src/code/system_malloc.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/fault_n64.o: CFLAGS += -trapuv $(BUILD_DIR)/src/code/fault_gc.o: CFLAGS += -trapuv @@ -464,6 +456,8 @@ else $(BUILD_DIR)/src/libc/%.o: OPTFLAGS := -O2 endif +$(BUILD_DIR)/src/libc64/%.o: OPTFLAGS := -O2 + $(BUILD_DIR)/src/audio/%.o: OPTFLAGS := -O2 # Use signed chars instead of unsigned for this audio file (needed to match AudioDebug_ScrPrt) diff --git a/include/functions.h b/include/functions.h index 4bcd52766b..6e2dbe87e6 100644 --- a/include/functions.h +++ b/include/functions.h @@ -450,8 +450,6 @@ void func_80033C30(Vec3f* arg0, Vec3f* arg1, u8 alpha, PlayState* play); void Actor_RequestQuake(PlayState* play, s16 y, s16 duration); void Actor_RequestQuakeWithSpeed(PlayState* play, s16 y, s16 duration, s16 speed); void Actor_RequestQuakeAndRumble(Actor* actor, PlayState* play, s16 quakeY, s16 quakeDuration); -f32 Rand_ZeroFloat(f32 f); -f32 Rand_CenteredFloat(f32 f); void Actor_DrawDoorLock(PlayState* play, s32 frame, s32 type); void func_8003424C(PlayState* play, Vec3f* arg1); void Actor_SetColorFilter(Actor* actor, s16 colorFlag, s16 colorIntensityMax, s16 bufFlag, s16 duration); diff --git a/include/libc64/qrand.h b/include/libc64/qrand.h new file mode 100644 index 0000000000..cc66d4f43b --- /dev/null +++ b/include/libc64/qrand.h @@ -0,0 +1,18 @@ +#ifndef LIBC64_QRAND_H +#define LIBC64_QRAND_H + +#include "ultra64.h" + +u32 Rand_Next(void); +void Rand_Seed(u32 seed); +f32 Rand_ZeroOne(void); +void Rand_Seed_Variable(u32* rndNum, u32 seed); +u32 Rand_Next_Variable(u32* rndNum); +f32 Rand_ZeroOne_Variable(u32* rndNum); + +#if !PLATFORM_N64 +f32 Rand_Centered(void); +f32 Rand_Centered_Variable(u32* rndNum); +#endif + +#endif diff --git a/include/rand.h b/include/rand.h index 0f4f4d9cd3..d6844f4b74 100644 --- a/include/rand.h +++ b/include/rand.h @@ -1,18 +1,9 @@ #ifndef RAND_H #define RAND_H -#include "ultra64.h" +#include "libc64/qrand.h" -u32 Rand_Next(void); -void Rand_Seed(u32 seed); -f32 Rand_ZeroOne(void); -void Rand_Seed_Variable(u32* rndNum, u32 seed); -u32 Rand_Next_Variable(u32* rndNum); -f32 Rand_ZeroOne_Variable(u32* rndNum); - -#if !PLATFORM_N64 -f32 Rand_Centered(void); -f32 Rand_Centered_Variable(u32* rndNum); -#endif +f32 Rand_ZeroFloat(f32 f); +f32 Rand_CenteredFloat(f32 f); #endif diff --git a/include/z64.h b/include/z64.h index 9fbb9b6a94..a4871aa830 100644 --- a/include/z64.h +++ b/include/z64.h @@ -63,6 +63,7 @@ #include "jpeg.h" #include "prerender.h" #include "rand.h" +#include "libc64/qrand.h" #include "sys_math.h" #include "sys_math3d.h" #include "fp_math.h" diff --git a/spec b/spec index 13a77dec9a..ecb96a20d9 100644 --- a/spec +++ b/spec @@ -33,10 +33,10 @@ beginseg include "$(BUILD_DIR)/src/boot/stackcheck.o" include "$(BUILD_DIR)/src/boot/logutils.o" #if PLATFORM_N64 - include "$(BUILD_DIR)/src/boot/sleep.o" + include "$(BUILD_DIR)/src/libc64/sleep.o" #endif #if OOT_DEBUG - include "$(BUILD_DIR)/src/boot/sprintf.o" + include "$(BUILD_DIR)/src/libc64/sprintf.o" #endif include "$(BUILD_DIR)/src/libultra/io/piacs.o" include "$(BUILD_DIR)/src/libultra/os/sendmesg.o" @@ -614,21 +614,21 @@ beginseg include "$(BUILD_DIR)/src/code/padutils.o" include "$(BUILD_DIR)/src/code/padsetup.o" #endif - 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" + include "$(BUILD_DIR)/src/libc64/math64.o" + include "$(BUILD_DIR)/src/libc64/fp.o" + include "$(BUILD_DIR)/src/libc64/malloc.o" + include "$(BUILD_DIR)/src/libc64/qrand.o" #if PLATFORM_N64 - include "$(BUILD_DIR)/src/code/__osMalloc_n64.o" + include "$(BUILD_DIR)/src/libc64/__osMalloc_n64.o" #else - include "$(BUILD_DIR)/src/code/__osMalloc_gc.o" + include "$(BUILD_DIR)/src/libc64/__osMalloc_gc.o" #endif #if !OOT_DEBUG - include "$(BUILD_DIR)/src/boot/sprintf.o" + include "$(BUILD_DIR)/src/libc64/sprintf.o" #endif - include "$(BUILD_DIR)/src/code/printutils.o" + include "$(BUILD_DIR)/src/libc64/aprintf.o" #if !PLATFORM_N64 - include "$(BUILD_DIR)/src/boot/sleep.o" + include "$(BUILD_DIR)/src/libc64/sleep.o" #endif include "$(BUILD_DIR)/src/code/jpegutils.o" include "$(BUILD_DIR)/src/code/jpegdecoder.o" diff --git a/src/code/z_actor.c b/src/code/z_actor.c index e45d96552e..8e1e39f78d 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1,6 +1,7 @@ #include "global.h" #include "fault.h" #include "quake.h" +#include "rand.h" #include "terminal.h" #include "overlays/actors/ovl_Arms_Hook/z_arms_hook.h" diff --git a/src/code/__osMalloc_gc.c b/src/libc64/__osMalloc_gc.c similarity index 100% rename from src/code/__osMalloc_gc.c rename to src/libc64/__osMalloc_gc.c diff --git a/src/code/__osMalloc_n64.c b/src/libc64/__osMalloc_n64.c similarity index 100% rename from src/code/__osMalloc_n64.c rename to src/libc64/__osMalloc_n64.c diff --git a/src/code/printutils.c b/src/libc64/aprintf.c similarity index 100% rename from src/code/printutils.c rename to src/libc64/aprintf.c diff --git a/src/code/fp.s b/src/libc64/fp.s similarity index 100% rename from src/code/fp.s rename to src/libc64/fp.s diff --git a/src/code/system_malloc.c b/src/libc64/malloc.c similarity index 100% rename from src/code/system_malloc.c rename to src/libc64/malloc.c diff --git a/src/code/fp_math.c b/src/libc64/math64.c similarity index 100% rename from src/code/fp_math.c rename to src/libc64/math64.c diff --git a/src/code/rand.c b/src/libc64/qrand.c similarity index 99% rename from src/code/rand.c rename to src/libc64/qrand.c index d6199b1890..69bfa11d72 100644 --- a/src/code/rand.c +++ b/src/libc64/qrand.c @@ -41,7 +41,7 @@ * * @note Original name: qrand.c */ -#include "rand.h" +#include "libc64/qrand.h" #include "z64math.h" #define RAND_MULTIPLIER 1664525 diff --git a/src/boot/sleep.c b/src/libc64/sleep.c similarity index 100% rename from src/boot/sleep.c rename to src/libc64/sleep.c diff --git a/src/boot/sprintf.c b/src/libc64/sprintf.c similarity index 100% rename from src/boot/sprintf.c rename to src/libc64/sprintf.c diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index b60c3ee476..f862b6aec2 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -15,7 +15,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:141 gc-eu-mq:141 gc-jp:143 gc-jp-ce:143 gc-jp-mq:143 gc-us:143 gc-us-mq:143" +#pragma increment_block_number "gc-eu:140 gc-eu-mq:140 gc-jp:142 gc-jp-ce:142 gc-jp-mq:142 gc-us:142 gc-us-mq:142" #define FLAGS ACTOR_FLAG_4 diff --git a/tools/disasm/ntsc-1.2/files_boot.csv b/tools/disasm/ntsc-1.2/files_boot.csv index dcb6f0bf87..66aaa08b36 100644 --- a/tools/disasm/ntsc-1.2/files_boot.csv +++ b/tools/disasm/ntsc-1.2/files_boot.csv @@ -11,7 +11,7 @@ FD0,80001430,src/boot/z_locale 1530,80001990,src/boot/mio0 15E0,80001A40,src/boot/stackcheck 17F0,80001C50,src/boot/logutils -1910,80001D70,src/boot/sleep +1910,80001D70,src/libc64/sleep 1AB0,80001F10,src/libultra/io/piacs 1B70,80001FD0,src/libultra/os/sendmesg 1CC0,80002120,src/libultra/os/stopthread diff --git a/tools/disasm/ntsc-1.2/files_code.csv b/tools/disasm/ntsc-1.2/files_code.csv index dd1ac65e8b..6b8f61f0a2 100644 --- a/tools/disasm/ntsc-1.2/files_code.csv +++ b/tools/disasm/ntsc-1.2/files_code.csv @@ -128,13 +128,13 @@ BBA50,800CD130,src/code/loadfragment2_n64 BBF00,800CD5E0,src/code/padutils BC110,800CD7F0,src/code/code_800FC620 BC530,800CDC10,src/code/padsetup -BC670,800CDD50,src/code/fp_math -BCA20,800CE100,src/code/fp -BCB80,800CE260,src/code/system_malloc -BCDF0,800CE4D0,src/code/rand -BCEF0,800CE5D0,src/code/__osMalloc_n64 -BD8A0,800CEF80,src/boot/sprintf -BD970,800CF050,src/code/printutils +BC670,800CDD50,src/libc64/math64 +BCA20,800CE100,src/libc64/fp +BCB80,800CE260,src/libc64/malloc +BCDF0,800CE4D0,src/libc64/qrand +BCEF0,800CE5D0,src/libc64/__osMalloc_n64 +BD8A0,800CEF80,src/libc64/sprintf +BD970,800CF050,src/libc64/aprintf BD9D0,800CF0B0,src/code/jpegutils BDEE0,800CF5C0,src/code/jpegdecoder BE4D0,800CFBB0,src/libultra/os/getintmask @@ -291,9 +291,9 @@ F3330,80104A10,src/audio/session_config F3AD0,801051B0,src/code/gfxprint F4380,80105A60,src/code/loadfragment2_n64 F4390,80105A70,src/code/code_800FC620 -F43A0,80105A80,src/code/rand -F43B0,80105A90,src/code/__osMalloc_n64 -F43C0,80105AA0,src/boot/sprintf +F43A0,80105A80,src/libc64/qrand +F43B0,80105A90,src/libc64/__osMalloc_n64 +F43C0,80105AA0,src/libc64/sprintf F4400,80105AE0,src/libultra/gu/sins F4C00,801062E0,src/libultra/io/siacs F4C10,801062F0,src/libultra/io/controller @@ -379,8 +379,8 @@ F9180,8010A860,src/audio/session_config F9190,8010A870,src/code/gfxprint F91D0,8010A8B0,src/code/rcp_utils F9320,8010AA00,src/code/loadfragment2_n64 -F94C0,8010ABA0,src/code/fp_math -F94E0,8010ABC0,src/code/__osMalloc_n64 +F94C0,8010ABA0,src/libc64/math64 +F94E0,8010ABC0,src/libc64/__osMalloc_n64 F9690,8010AD70,src/libultra/gu/sinf F96E0,8010ADC0,src/libultra/gu/perspective F96F0,8010ADD0,src/libultra/gu/lookathil @@ -449,7 +449,7 @@ offset,vram,.bss 1139C0,801250A0,src/audio/sequence 114780,80125E60,src/audio/data 114820,80125F00,src/audio/session_config -11AC90,8012C370,src/code/system_malloc +11AC90,8012C370,src/libc64/malloc 11ACA0,8012C380,src/code/jpegdecoder 11ACB0,8012C390,src/libultra/io/sptask 11ACF0,8012C3D0,src/libultra/io/motor From 900c2f0f686fc391a50d24f391d7a1cb4e2ed614 Mon Sep 17 00:00:00 2001 From: fig02 Date: Sun, 8 Sep 2024 17:43:27 -0400 Subject: [PATCH 55/86] Name `PLAYER_STATE1_ACTOR_CARRY` (#2173) * actor carry flag * format and add comments * comment changes --- include/z64player.h | 10 +-- src/code/z_actor.c | 6 +- src/code/z_camera.c | 2 +- src/code/z_player_lib.c | 2 +- .../z_bg_spot16_bombstone.c | 2 +- .../actors/ovl_Door_Shutter/z_door_shutter.c | 2 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 4 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 10 +-- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 2 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 4 +- .../actors/ovl_player_actor/z_player.c | 88 ++++++++++--------- 11 files changed, 67 insertions(+), 65 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index 248b3bdfec..5fc1eca57e 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -649,17 +649,17 @@ typedef struct WeaponInfo { #define LEDGE_DIST_MAX 399.96002f #define PLAYER_STATE1_0 (1 << 0) -#define PLAYER_STATE1_SWINGING_BOTTLE (1 << 1) +#define PLAYER_STATE1_SWINGING_BOTTLE (1 << 1) // Bottle is swung; Bottle is active and can catch things #define PLAYER_STATE1_2 (1 << 2) #define PLAYER_STATE1_3 (1 << 3) #define PLAYER_STATE1_4 (1 << 4) #define PLAYER_STATE1_5 (1 << 5) #define PLAYER_STATE1_6 (1 << 6) #define PLAYER_STATE1_7 (1 << 7) -#define PLAYER_STATE1_START_CHANGING_HELD_ITEM (1 << 8) +#define PLAYER_STATE1_START_CHANGING_HELD_ITEM (1 << 8) // Item change process has begun #define PLAYER_STATE1_9 (1 << 9) #define PLAYER_STATE1_10 (1 << 10) -#define PLAYER_STATE1_11 (1 << 11) +#define PLAYER_STATE1_ACTOR_CARRY (1 << 11) // Currently carrying an actor #define PLAYER_STATE1_12 (1 << 12) #define PLAYER_STATE1_13 (1 << 13) #define PLAYER_STATE1_14 (1 << 14) @@ -690,14 +690,14 @@ typedef struct WeaponInfo { #define PLAYER_STATE2_6 (1 << 6) #define PLAYER_STATE2_7 (1 << 7) #define PLAYER_STATE2_8 (1 << 8) -#define PLAYER_STATE2_FORCE_SAND_FLOOR_SOUND (1 << 9) +#define PLAYER_STATE2_FORCE_SAND_FLOOR_SOUND (1 << 9) // Forces sand footstep sounds regardless of current floor type #define PLAYER_STATE2_10 (1 << 10) #define PLAYER_STATE2_11 (1 << 11) #define PLAYER_STATE2_12 (1 << 12) #define PLAYER_STATE2_13 (1 << 13) #define PLAYER_STATE2_14 (1 << 14) #define PLAYER_STATE2_15 (1 << 15) -#define PLAYER_STATE2_DO_ACTION_ENTER (1 << 16) // Turns on the "Enter On A" DoAction +#define PLAYER_STATE2_DO_ACTION_ENTER (1 << 16) // Sets the "Enter On A" DoAction #define PLAYER_STATE2_17 (1 << 17) #define PLAYER_STATE2_CRAWLING (1 << 18) // Crawling through a crawlspace #define PLAYER_STATE2_19 (1 << 19) diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 8e1e39f78d..3469ee567c 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1103,7 +1103,7 @@ int func_8002DD78(Player* player) { int func_8002DDA8(PlayState* play) { Player* player = GET_PLAYER(play); - return (player->stateFlags1 & PLAYER_STATE1_11) || func_8002DD78(player); + return (player->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) || func_8002DD78(player); } s32 func_8002DDE4(PlayState* play) { @@ -1811,7 +1811,7 @@ s32 Actor_OfferGetItem(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange Player_GetExplosiveHeld(player) < 0) { if ((((player->heldActor != NULL) || (actor == player->talkActor)) && (getItemId > GI_NONE) && (getItemId < GI_MAX)) || - (!(player->stateFlags1 & (PLAYER_STATE1_11 | PLAYER_STATE1_29)))) { + (!(player->stateFlags1 & (PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_29)))) { if ((actor->xzDistToPlayer < xzRange) && (fabsf(actor->yDistToPlayer) < yRange)) { s16 yawDiff = actor->yawTowardsPlayer - player->actor.shape.rot.y; s32 absYawDiff = ABS(yawDiff); @@ -1880,7 +1880,7 @@ u32 Actor_SetRideActor(PlayState* play, Actor* horse, s32 mountSide) { Player* player = GET_PLAYER(play); if (!(player->stateFlags1 & - (PLAYER_STATE1_7 | PLAYER_STATE1_11 | PLAYER_STATE1_12 | PLAYER_STATE1_13 | PLAYER_STATE1_14 | + (PLAYER_STATE1_7 | PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_12 | PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_20 | PLAYER_STATE1_21))) { player->rideActor = horse; player->mountSide = mountSide; diff --git a/src/code/z_camera.c b/src/code/z_camera.c index 41210ff4e4..ce22019150 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -6607,7 +6607,7 @@ s32 Camera_Demo5(Camera* camera) { sp4A = playerhead.rot.y - playerTargetGeo.yaw; if (camera->target->category == ACTORCAT_PLAYER) { framesDiff = camera->play->state.frames - sDemo5PrevAction12Frame; - if (player->stateFlags1 & PLAYER_STATE1_11) { + if (player->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) { // holding object over head. Player_SetCsActionWithHaltedActors(camera->play, camera->target, PLAYER_CSACTION_8); } else if (ABS(framesDiff) > 3000) { diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 1eeaf0d206..b75a8a7581 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -1552,7 +1552,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve Matrix_Get(&sp14C); Matrix_MtxFToYXZRotS(&sp14C, &hookedActor->world.rot, 0); hookedActor->shape.rot = hookedActor->world.rot; - } else if (this->stateFlags1 & PLAYER_STATE1_11) { + } else if (this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) { Vec3s spB8; Matrix_Get(&sp14C); diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c index ced99d7824..8e459f8d84 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c +++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c @@ -416,7 +416,7 @@ void func_808B57E0(BgSpot16Bombstone* this, PlayState* play) { OnePointCutscene_Init(play, 4180, sTimer, NULL, CAM_ID_MAIN); } } - } else if (player->stateFlags1 & PLAYER_STATE1_11) { + } else if (player->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) { playerHeldActor = player->heldActor; if (playerHeldActor != NULL && playerHeldActor->category == ACTORCAT_EXPLOSIVE && playerHeldActor->id == ACTOR_EN_BOMBF) { diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c index 64be9c8321..5ddf5f572e 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -816,7 +816,7 @@ void DoorShutter_SetupClosed(DoorShutter* this, PlayState* play) { } this->isActive = false; this->dyna.actor.velocity.y = 0.0f; - if (DoorShutter_SetupDoor(this, play) && !(player->stateFlags1 & PLAYER_STATE1_11)) { + if (DoorShutter_SetupDoor(this, play) && !(player->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY)) { // The door is barred behind the player DoorShutter_SetupAction(this, DoorShutter_WaitPlayerSurprised); Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_2); 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 6aba2ef11a..2b4b8f6a2c 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -207,11 +207,11 @@ void EnBom_Explode(EnBom* this, PlayState* play) { if (this->timer == 0) { player = GET_PLAYER(play); - if ((player->stateFlags1 & PLAYER_STATE1_11) && (player->heldActor == &this->actor)) { + if ((player->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) && (player->heldActor == &this->actor)) { player->actor.child = NULL; player->heldActor = NULL; player->interactRangeActor = NULL; - player->stateFlags1 &= ~PLAYER_STATE1_11; + player->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; } Actor_Kill(&this->actor); 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 2eb859805b..89e4157a4f 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -163,7 +163,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) { player->heldActor = NULL; player->interactRangeActor = NULL; this->actor.parent = NULL; - player->stateFlags1 &= ~PLAYER_STATE1_11; + player->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; } } else if (this->bombCollider.base.acFlags & AC_HIT) { this->bombCollider.base.acFlags &= ~AC_HIT; @@ -197,7 +197,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) { player->heldActor = NULL; player->interactRangeActor = NULL; this->actor.parent = NULL; - player->stateFlags1 &= ~PLAYER_STATE1_11; + player->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; this->actor.world.pos = this->actor.home.pos; } } @@ -215,7 +215,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) { player->heldActor = NULL; player->interactRangeActor = NULL; this->actor.parent = NULL; - player->stateFlags1 &= ~PLAYER_STATE1_11; + player->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; this->actor.world.pos = this->actor.home.pos; } } @@ -299,11 +299,11 @@ void EnBombf_Explode(EnBombf* this, PlayState* play) { if (this->timer == 0) { player = GET_PLAYER(play); - if ((player->stateFlags1 & PLAYER_STATE1_11) && (player->heldActor == &this->actor)) { + if ((player->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) && (player->heldActor == &this->actor)) { player->actor.child = NULL; player->heldActor = NULL; player->interactRangeActor = NULL; - player->stateFlags1 &= ~PLAYER_STATE1_11; + player->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; } Actor_Kill(&this->actor); diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index ac1b1e91db..dd34c42a2d 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -116,7 +116,7 @@ void EnDntJiji_Wait(EnDntJiji* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); if ((this->timer == 1) && (this->actor.xzDistToPlayer < 150.0f) && !Play_InCsMode(play) && - !(player->stateFlags1 & PLAYER_STATE1_11)) { + !(player->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY)) { OnePointCutscene_Init(play, 2230, -99, &this->actor, CAM_ID_MAIN); this->timer = 0; Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_8); diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index 17eb0b3b3a..45e449992f 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -622,7 +622,7 @@ s32 EnTa_IsPlayerHoldingSuperCucco(EnTa* this, PlayState* play, s32 cuccoIdx) { Player* player = GET_PLAYER(play); Actor* interactRangeActor; - if (player->stateFlags1 & PLAYER_STATE1_11) { + if (player->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) { interactRangeActor = player->interactRangeActor; if (interactRangeActor != NULL && interactRangeActor->id == ACTOR_EN_NIW && interactRangeActor == &this->superCuccos[cuccoIdx]->actor) { @@ -658,7 +658,7 @@ void EnTa_TalkFoundSuperCucco(EnTa* this, PlayState* play) { if (player->heldActor == &this->superCuccos[lastFoundSuperCuccoIdx]->actor) { player->heldActor = NULL; } - player->stateFlags1 &= ~PLAYER_STATE1_11; + player->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; this->superCuccos[lastFoundSuperCuccoIdx] = NULL; } this->stateFlags |= TALON_STATE_FLAG_TRACKING_PLAYER; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 0a82afeed2..460f69884f 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -1682,7 +1682,7 @@ void Player_DetachHeldActor(PlayState* play, Player* this) { this->heldActor = NULL; this->interactRangeActor = NULL; heldActor->parent = NULL; - this->stateFlags1 &= ~PLAYER_STATE1_11; + this->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; } if (Player_GetExplosiveHeld(this) >= 0) { @@ -1692,14 +1692,14 @@ void Player_DetachHeldActor(PlayState* play, Player* this) { } void func_80832440(PlayState* play, Player* this) { - if ((this->stateFlags1 & PLAYER_STATE1_11) && (this->heldActor == NULL)) { + if ((this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) && (this->heldActor == NULL)) { if (this->interactRangeActor != NULL) { if (this->getItemId == GI_NONE) { - this->stateFlags1 &= ~PLAYER_STATE1_11; + this->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; this->interactRangeActor = NULL; } } else { - this->stateFlags1 &= ~PLAYER_STATE1_11; + this->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; } } @@ -2220,7 +2220,7 @@ void Player_InitExplosiveIA(PlayState* play, Player* this) { ExplosiveInfo* explosiveInfo; Actor* spawnedActor; - if (this->stateFlags1 & PLAYER_STATE1_11) { + if (this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) { Player_PutAwayHeldItem(play, this); return; } @@ -2245,7 +2245,7 @@ void Player_InitExplosiveIA(PlayState* play, Player* this) { this->heldActor = spawnedActor; this->getItemId = GI_NONE; this->unk_3BC.y = spawnedActor->shape.rot.y - this->actor.shape.rot.y; - this->stateFlags1 |= PLAYER_STATE1_11; + this->stateFlags1 |= PLAYER_STATE1_ACTOR_CARRY; } } @@ -2406,7 +2406,7 @@ void Player_ProcessItemButtons(Player* this, PlayState* play) { } } - if (!(this->stateFlags1 & (PLAYER_STATE1_11 | PLAYER_STATE1_29)) && !func_8008F128(this)) { + if (!(this->stateFlags1 & (PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_29)) && !func_8008F128(this)) { if (this->itemAction >= PLAYER_IA_FISHING_POLE) { if (!Player_ItemIsInUse(this, B_BTN_ITEM) && !Player_ItemIsInUse(this, C_BTN_ITEM(0)) && !Player_ItemIsInUse(this, C_BTN_ITEM(1)) && !Player_ItemIsInUse(this, C_BTN_ITEM(2))) { @@ -3023,7 +3023,7 @@ s32 Player_UpperAction_CarryActor(Player* this, PlayState* play) { return true; } - if (this->stateFlags1 & PLAYER_STATE1_11) { + if (this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) { if (LinkAnimation_Update(play, &this->upperSkelAnime)) { LinkAnimation_PlayLoop(play, &this->upperSkelAnime, &gPlayerAnim_link_normal_carryB_wait); } @@ -3164,7 +3164,7 @@ s32 Player_SetupAction(PlayState* play, Player* this, PlayerActionFunc actionFun func_8008EC70(this); } - if (!(flags & 1) && !(this->stateFlags1 & PLAYER_STATE1_11)) { + if (!(flags & 1) && !(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY)) { func_80834644(play, this); this->stateFlags1 &= ~PLAYER_STATE1_22; } @@ -3629,7 +3629,7 @@ void func_80836BEC(Player* this, PlayState* play) { if (this->focusActor != NULL) { this->stateFlags1 &= ~(PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL); - if ((this->stateFlags1 & PLAYER_STATE1_11) || + if ((this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) || !CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE)) { this->stateFlags1 |= PLAYER_STATE1_16; } @@ -4584,7 +4584,7 @@ s32 Player_ActionChange_12(Player* this, PlayState* play) { f32 sp34; f32 temp; - if (!(this->stateFlags1 & PLAYER_STATE1_11) && (this->ledgeClimbType >= PLAYER_LEDGE_CLIMB_2) && + if (!(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) && (this->ledgeClimbType >= PLAYER_LEDGE_CLIMB_2) && (!(this->stateFlags1 & PLAYER_STATE1_27) || (this->ageProperties->unk_14 > this->yDistToLedge))) { sp3C = 0; @@ -4958,7 +4958,7 @@ s32 Player_ActionChange_1(Player* this, PlayState* play) { s32 frontRoom; if ((this->doorType != PLAYER_DOORTYPE_NONE) && - (!(this->stateFlags1 & PLAYER_STATE1_11) || + (!(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) || ((this->heldActor != NULL) && (this->heldActor->id == ACTOR_EN_RU1)))) { if (CHECK_BTN_ALL(sControlInput->press.button, BTN_A) || (Player_Action_8084F9A0 == this->actionFunc)) { doorActor = this->doorActor; @@ -5225,7 +5225,7 @@ void func_8083A0F4(PlayState* play, Player* this) { } } else { func_80839F90(this, play); - this->stateFlags1 &= ~PLAYER_STATE1_11; + this->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; } } @@ -5444,7 +5444,7 @@ void func_8083AA10(Player* this, PlayState* play) { (sYDistToFloor > 20.0f) && (this->meleeWeaponState == 0) && (ABS(sp5C) < 0x2000) && (this->speedXZ > 3.0f)) { - if ((sPrevFloorProperty == FLOOR_PROPERTY_11) && !(this->stateFlags1 & PLAYER_STATE1_11)) { + if ((sPrevFloorProperty == FLOOR_PROPERTY_11) && !(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY)) { sp40 = func_808396F4(play, this, &D_8085451C, &sp44, &sp58, &sp54); sp3C = this->actor.world.pos.y; @@ -5771,7 +5771,7 @@ s32 Player_ActionChange_4(Player* this, PlayState* play) { if ((sp34 != NULL) || (sp2C != NULL)) { if ((sp30 == NULL) || (sp30 == sp34) || (sp30 == sp2C)) { - if (!(this->stateFlags1 & PLAYER_STATE1_11) || + if (!(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) || ((this->heldActor != NULL) && (sp28 || (sp34 == this->heldActor) || (sp2C == this->heldActor) || ((sp34 != NULL) && (sp34->flags & ACTOR_FLAG_16))))) { if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (this->stateFlags1 & PLAYER_STATE1_23) || @@ -5819,7 +5819,7 @@ s32 Player_ActionChange_4(Player* this, PlayState* play) { } s32 func_8083B8F4(Player* this, PlayState* play) { - if (!(this->stateFlags1 & (PLAYER_STATE1_11 | PLAYER_STATE1_23)) && + if (!(this->stateFlags1 & (PLAYER_STATE1_ACTOR_CARRY | 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.depthInWater < this->ageProperties->unk_2C))) { @@ -6391,7 +6391,7 @@ s32 func_8083D12C(PlayState* play, Player* this, Input* arg2) { Player_SetupAction(play, this, Player_Action_8084E1EC, 1); if (this->stateFlags1 & PLAYER_STATE1_10) { - this->stateFlags1 |= PLAYER_STATE1_10 | PLAYER_STATE1_11 | PLAYER_STATE1_29; + this->stateFlags1 |= PLAYER_STATE1_10 | PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_29; } this->av2.actionVar2 = 2; @@ -6399,7 +6399,7 @@ s32 func_8083D12C(PlayState* play, Player* this, Input* arg2) { func_80832340(play, this); Player_AnimChangeOnceMorph(play, this, - (this->stateFlags1 & PLAYER_STATE1_11) + (this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) ? &gPlayerAnim_link_swimer_swim_get : &gPlayerAnim_link_swimer_swim_deep_end); @@ -6859,7 +6859,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) { func_80835EA4(play, 9); } - this->stateFlags1 |= PLAYER_STATE1_10 | PLAYER_STATE1_11 | PLAYER_STATE1_29; + this->stateFlags1 |= PLAYER_STATE1_10 | PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_29; func_80832224(this); return 1; } @@ -6867,8 +6867,8 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) { func_8083E4C4(play, this, giEntry); this->getItemId = GI_NONE; } - } else if (CHECK_BTN_ALL(sControlInput->press.button, BTN_A) && !(this->stateFlags1 & PLAYER_STATE1_11) && - !(this->stateFlags2 & PLAYER_STATE2_10)) { + } else if (CHECK_BTN_ALL(sControlInput->press.button, BTN_A) && + !(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) && !(this->stateFlags2 & PLAYER_STATE2_10)) { if (this->getItemId != GI_NONE) { GetItemEntry* giEntry = &sGetItemTable[-this->getItemId - 1]; EnBox* chest = (EnBox*)interactedActor; @@ -6882,7 +6882,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) { } Player_SetupWaitForPutAway(play, this, func_8083A434); - this->stateFlags1 |= PLAYER_STATE1_10 | PLAYER_STATE1_11 | PLAYER_STATE1_29; + this->stateFlags1 |= PLAYER_STATE1_10 | PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_29; func_8083AE40(this, giEntry->objectId); this->actor.world.pos.x = chest->dyna.actor.world.pos.x - (Math_SinS(chest->dyna.actor.shape.rot.y) * 29.4343f); @@ -6935,7 +6935,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) { } func_80832224(this); - this->stateFlags1 |= PLAYER_STATE1_11; + this->stateFlags1 |= PLAYER_STATE1_ACTOR_CARRY; return 1; } } @@ -6959,7 +6959,7 @@ s32 func_8083EAF0(Player* this, Actor* actor) { } s32 Player_ActionChange_9(Player* this, PlayState* play) { - if ((this->stateFlags1 & PLAYER_STATE1_11) && (this->heldActor != NULL) && + if ((this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) && (this->heldActor != NULL) && CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_CLEFT | BTN_CDOWN | BTN_CRIGHT)) { if (!func_80835644(play, this, this->heldActor)) { if (!func_8083EAF0(this, this->heldActor)) { @@ -7288,8 +7288,8 @@ void func_8083F72C(Player* this, LinkAnimationHeader* anim, PlayState* play) { s32 Player_ActionChange_5(Player* this, PlayState* play) { DynaPolyActor* wallPolyActor; - if (!(this->stateFlags1 & PLAYER_STATE1_11) && (this->actor.bgCheckFlags & BGCHECKFLAG_PLAYER_WALL_INTERACT) && - (sShapeYawToTouchedWall < 0x3000)) { + if (!(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) && + (this->actor.bgCheckFlags & BGCHECKFLAG_PLAYER_WALL_INTERACT) && (sShapeYawToTouchedWall < 0x3000)) { if (((this->speedXZ > 0.0f) && func_8083EC18(this, play, sTouchedWallFlags)) || Player_TryEnteringCrawlspace(this, play, sTouchedWallFlags)) { @@ -7313,7 +7313,7 @@ s32 Player_ActionChange_5(Player* this, PlayState* play) { } Player_SetupWaitForPutAway(play, this, func_8083A0F4); - this->stateFlags1 |= PLAYER_STATE1_11; + this->stateFlags1 |= PLAYER_STATE1_ACTOR_CARRY; this->interactRangeActor = &wallPolyActor->actor; this->getItemId = GI_NONE; this->yaw = this->actor.wallYaw + 0x8000; @@ -7706,7 +7706,7 @@ void func_808409CC(PlayState* play, Player* this) { anim = func_80833338(this); } else { this->stateFlags2 |= PLAYER_STATE2_28; - if (this->stateFlags1 & PLAYER_STATE1_11) { + if (this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) { anim = func_80833338(this); } else { sp38 = play->roomCtx.curRoom.behaviorType2; @@ -8998,7 +8998,7 @@ void Player_Action_8084411C(Player* this, PlayState* play) { if (!(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { Actor* heldActor; - if (this->stateFlags1 & PLAYER_STATE1_11) { + if (this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) { heldActor = this->heldActor; if (!func_80835644(play, this, heldActor) && (heldActor->id == ACTOR_EN_NIW) && @@ -9037,7 +9037,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)) { + !(this->stateFlags1 & (PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_27)) && + (this->speedXZ > 0.0f)) { if ((this->yDistToLedge >= 150.0f) && (this->controlStickDirections[this->controlStickDataIndex] == PLAYER_STICK_DIR_FORWARD)) { func_8083EC18(this, play, sTouchedWallFlags); @@ -9079,7 +9080,7 @@ void Player_Action_8084411C(Player* this, PlayState* play) { anim = GET_PLAYER_ANIM(PLAYER_ANIMGROUP_short_landing, this->modelAnimType); } else if ((this->fallDistance < 800) && (this->controlStickDirections[this->controlStickDataIndex] == PLAYER_STICK_DIR_FORWARD) && - !(this->stateFlags1 & PLAYER_STATE1_11)) { + !(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY)) { func_8083BC04(this, play); return; } @@ -9556,7 +9557,8 @@ void Player_Action_WaitForPutAway(Player* this, PlayState* play) { // 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)) || + if (((this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) && (this->heldActor != NULL) && + (this->getItemId == GI_NONE)) || !Player_UpdateUpperBody(this, play)) { this->afterPutAwayFunc(play, this); } @@ -9684,7 +9686,7 @@ void Player_Action_80845CA4(Player* this, PlayState* play) { } } - if (this->stateFlags1 & PLAYER_STATE1_11) { + if (this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) { Player_UpdateUpperBody(this, play); } } @@ -9823,7 +9825,7 @@ void Player_Action_80846408(Player* this, PlayState* play) { this->av2.actionVar2--; if (this->av2.actionVar2 == 0) { func_8083A098(this, &gPlayerAnim_link_normal_nocarry_free_end, play); - this->stateFlags1 &= ~PLAYER_STATE1_11; + this->stateFlags1 &= ~PLAYER_STATE1_ACTOR_CARRY; Player_PlayVoiceSfx(this, NA_SE_VO_LI_DAMAGE_S); } } @@ -10286,10 +10288,10 @@ void Player_UpdateInterface(PlayState* play, Player* this) { } } else if ((Player_Action_8084E3C4 != this->actionFunc) && !(this->stateFlags2 & PLAYER_STATE2_CRAWLING)) { if ((this->doorType != PLAYER_DOORTYPE_NONE) && - (!(this->stateFlags1 & PLAYER_STATE1_11) || + (!(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) || ((heldActor != NULL) && (heldActor->id == ACTOR_EN_RU1)))) { doAction = DO_ACTION_OPEN; - } else if ((!(this->stateFlags1 & PLAYER_STATE1_11) || (heldActor == NULL)) && + } else if ((!(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) || (heldActor == NULL)) && (interactRangeActor != NULL) && ((!sp1C && (this->getItemId == GI_NONE)) || ((this->getItemId < 0) && !(this->stateFlags1 & PLAYER_STATE1_27)))) { @@ -10327,7 +10329,7 @@ void Player_UpdateInterface(PlayState* play, Player* this) { doAction = DO_ACTION_DOWN; } else if (this->stateFlags2 & PLAYER_STATE2_DO_ACTION_ENTER) { doAction = DO_ACTION_ENTER; - } else if ((this->stateFlags1 & PLAYER_STATE1_11) && (this->getItemId == GI_NONE) && + } else if ((this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) && (this->getItemId == GI_NONE) && (heldActor != NULL)) { if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (heldActor->id == ACTOR_EN_NIW)) { if (func_8083EAF0(this, heldActor) == 0) { @@ -11377,7 +11379,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { this->exchangeItemId = EXCH_ITEM_NONE; } - if (!(this->stateFlags1 & PLAYER_STATE1_11)) { + if (!(this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY)) { this->interactRangeActor = NULL; this->getItemDirection = 0x6000; } @@ -13015,7 +13017,7 @@ void Player_Action_8084DC48(Player* this, PlayState* play) { } else if (!func_8083D12C(play, this, sControlInput)) { sp2C = (this->av2.actionVar2 * 0.018f) + 4.0f; - if (this->stateFlags1 & PLAYER_STATE1_11) { + if (this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) { sControlInput = NULL; } @@ -13033,7 +13035,7 @@ void Player_Action_8084DC48(Player* this, PlayState* play) { void func_8084DF6C(PlayState* play, Player* this) { this->unk_862 = 0; - this->stateFlags1 &= ~(PLAYER_STATE1_10 | PLAYER_STATE1_11); + this->stateFlags1 &= ~(PLAYER_STATE1_10 | PLAYER_STATE1_ACTOR_CARRY); this->getItemId = GI_NONE; Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN)); } @@ -13254,7 +13256,7 @@ void Player_Action_8084E6D4(Player* this, PlayState* play) { func_80832DBC(this); if (this->getItemId == GI_ICE_TRAP) { - this->stateFlags1 &= ~(PLAYER_STATE1_10 | PLAYER_STATE1_11); + this->stateFlags1 &= ~(PLAYER_STATE1_10 | PLAYER_STATE1_ACTOR_CARRY); if (this->getItemId != GI_ICE_TRAP) { Actor_Spawn(&play->actorCtx, play, ACTOR_EN_CLEAR_TAG, this->actor.world.pos.x, @@ -14680,7 +14682,7 @@ void func_808514C0(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); - if (func_8008F128(this) || (this->stateFlags1 & PLAYER_STATE1_11)) { + if (func_8008F128(this) || (this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY)) { Player_UpdateUpperBody(this, play); return; } @@ -14729,7 +14731,7 @@ void func_80851688(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); - if (func_8008F128(this) || (this->stateFlags1 & PLAYER_STATE1_11)) { + if (func_8008F128(this) || (this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY)) { Player_UpdateUpperBody(this, play); } } From fb37d7c6cd930ebe170874eb88abc32678403669 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 8 Sep 2024 23:47:25 +0200 Subject: [PATCH 56/86] [headers 13] osMalloc.h -> include/libc64/os_malloc.h (#2175) * [headers 13] osMalloc.h -> include/libc64/os_malloc.h * also update the #includes :) --- osMalloc.h => include/libc64/os_malloc.h | 4 ++-- include/variables.h | 2 +- src/code/code_800FC620.c | 2 +- src/code/debug_malloc.c | 2 +- src/code/fault_n64.c | 2 +- src/code/game.c | 2 +- src/code/z_malloc.c | 2 +- src/libc64/__osMalloc_gc.c | 2 +- src/libc64/__osMalloc_n64.c | 2 +- src/libc64/malloc.c | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) rename osMalloc.h => include/libc64/os_malloc.h (97%) diff --git a/osMalloc.h b/include/libc64/os_malloc.h similarity index 97% rename from osMalloc.h rename to include/libc64/os_malloc.h index 73f310fa17..e31a6f08fa 100644 --- a/osMalloc.h +++ b/include/libc64/os_malloc.h @@ -1,5 +1,5 @@ -#ifndef OSMALLOC_H -#define OSMALLOC_H +#ifndef LIBC64_OS_MALLOC_H +#define LIBC64_OS_MALLOC_H #include "ultra64.h" diff --git a/include/variables.h b/include/variables.h index a242ec05c2..92f68735b2 100644 --- a/include/variables.h +++ b/include/variables.h @@ -2,7 +2,7 @@ #define VARIABLES_H #include "z64.h" -#include "osMalloc.h" +#include "libc64/os_malloc.h" #include "segment_symbols.h" extern Mtx D_01000000; diff --git a/src/code/code_800FC620.c b/src/code/code_800FC620.c index 373f1d53c6..8bed1af23c 100644 --- a/src/code/code_800FC620.c +++ b/src/code/code_800FC620.c @@ -1,5 +1,5 @@ #include "global.h" -#include "osMalloc.h" +#include "libc64/os_malloc.h" typedef void (*arg3_800FC868)(void*); typedef void (*arg3_800FC8D8)(void*, u32); diff --git a/src/code/debug_malloc.c b/src/code/debug_malloc.c index 5be04b23c0..a1def050ae 100644 --- a/src/code/debug_malloc.c +++ b/src/code/debug_malloc.c @@ -1,5 +1,5 @@ #include "global.h" -#include "osMalloc.h" +#include "libc64/os_malloc.h" #define LOG_SEVERITY_NOLOG 0 #define LOG_SEVERITY_ERROR 2 diff --git a/src/code/fault_n64.c b/src/code/fault_n64.c index 92b1976aa2..eb3019d33e 100644 --- a/src/code/fault_n64.c +++ b/src/code/fault_n64.c @@ -1,6 +1,6 @@ #include "global.h" #include "fault.h" -#include "osMalloc.h" +#include "libc64/os_malloc.h" #include "stack.h" #include "terminal.h" diff --git a/src/code/game.c b/src/code/game.c index af22e79498..45362fb586 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -1,6 +1,6 @@ #include "global.h" #include "fault.h" -#include "osMalloc.h" +#include "libc64/os_malloc.h" #include "terminal.h" #if PLATFORM_N64 #include "n64dd.h" diff --git a/src/code/z_malloc.c b/src/code/z_malloc.c index 5b1c5637fa..901e7b4e73 100644 --- a/src/code/z_malloc.c +++ b/src/code/z_malloc.c @@ -1,5 +1,5 @@ #include "global.h" -#include "osMalloc.h" +#include "libc64/os_malloc.h" #define LOG_SEVERITY_NOLOG 0 #define LOG_SEVERITY_ERROR 2 diff --git a/src/libc64/__osMalloc_gc.c b/src/libc64/__osMalloc_gc.c index 45e19532f1..8d903f5ae5 100644 --- a/src/libc64/__osMalloc_gc.c +++ b/src/libc64/__osMalloc_gc.c @@ -1,6 +1,6 @@ #include "global.h" #include "fault.h" -#include "osMalloc.h" +#include "libc64/os_malloc.h" #include "terminal.h" #if PLATFORM_GC diff --git a/src/libc64/__osMalloc_n64.c b/src/libc64/__osMalloc_n64.c index bd9c358aff..8efb4ec6c8 100644 --- a/src/libc64/__osMalloc_n64.c +++ b/src/libc64/__osMalloc_n64.c @@ -1,6 +1,6 @@ #include "global.h" #include "fault.h" -#include "osMalloc.h" +#include "libc64/os_malloc.h" #if PLATFORM_N64 diff --git a/src/libc64/malloc.c b/src/libc64/malloc.c index de6a56b30a..a5bd8032ba 100644 --- a/src/libc64/malloc.c +++ b/src/libc64/malloc.c @@ -1,5 +1,5 @@ #include "global.h" -#include "osMalloc.h" +#include "libc64/os_malloc.h" #define LOG_SEVERITY_NOLOG 0 #define LOG_SEVERITY_ERROR 2 From 37efc27162cb3e7b084a80cdc0c572f4d693a23d Mon Sep 17 00:00:00 2001 From: cadmic Date: Sun, 8 Sep 2024 15:27:36 -0700 Subject: [PATCH 57/86] Run fix_bss.py in Jenkins and generate a patch (#2168) * fix_bss.py: Disable colors if stdout is not a tty * Run fix_bss.py in CI and output a patch * Wording tweaks --- Jenkinsfile | 93 +++++++++++++++++----------- tools/fix_bss.py | 78 +++++++++++++---------- tools/generate_patch_from_jenkins.sh | 11 ++++ 3 files changed, 114 insertions(+), 68 deletions(-) create mode 100755 tools/generate_patch_from_jenkins.sh diff --git a/Jenkinsfile b/Jenkinsfile index e3ec037c0c..2cf1549e88 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -20,8 +20,10 @@ pipeline { } } steps { - echo 'Checking formatting on modified files...' - sh 'python3 tools/check_format.py --verbose --compare-to origin/main' + catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { + echo 'Checking formatting on modified files...' + sh 'python3 tools/check_format.py --verbose --compare-to origin/main' + } } } stage('Build ntsc-1.2, check disasm metadata') { @@ -38,66 +40,70 @@ pipeline { // NTSC/PAL/MQ/DEBUG as quickly as possible. stage('Build gc-jp') { steps { - sh 'ln -s /usr/local/etc/roms/oot-gc-jp.z64 baseroms/gc-jp/baserom.z64' - sh 'make -j$(nproc) setup VERSION=gc-jp' - sh 'make -j$(nproc) VERSION=gc-jp' - sh 'make clean assetclean VERSION=gc-jp' - } + script { + build('gc-jp') + } + } } stage('Build gc-eu-mq') { steps { - sh 'ln -s /usr/local/etc/roms/oot-gc-eu-mq.z64 baseroms/gc-eu-mq/baserom.z64' - sh 'make -j$(nproc) setup VERSION=gc-eu-mq' - sh 'make -j$(nproc) VERSION=gc-eu-mq' - sh 'make clean assetclean VERSION=gc-eu-mq' + script { + build('gc-eu-mq') + } } } stage('Build gc-eu-mq-dbg') { steps { - sh 'ln -s /usr/local/etc/roms/oot-gc-eu-mq-dbg.z64 baseroms/gc-eu-mq-dbg/baserom.z64' - sh 'make -j$(nproc) setup VERSION=gc-eu-mq-dbg' - sh 'make -j$(nproc) VERSION=gc-eu-mq-dbg' - sh 'make clean assetclean VERSION=gc-eu-mq-dbg' + script { + build('gc-eu-mq-dbg') + } } } stage('Build gc-us') { steps { - sh 'ln -s /usr/local/etc/roms/oot-gc-us.z64 baseroms/gc-us/baserom.z64' - sh 'make -j$(nproc) setup VERSION=gc-us' - sh 'make -j$(nproc) VERSION=gc-us' - sh 'make clean assetclean VERSION=gc-us' + script { + build('gc-us') + } } } stage('Build gc-jp-ce') { steps { - sh 'ln -s /usr/local/etc/roms/oot-gc-jp-ce.z64 baseroms/gc-jp-ce/baserom.z64' - sh 'make -j$(nproc) setup VERSION=gc-jp-ce' - sh 'make -j$(nproc) VERSION=gc-jp-ce' - sh 'make clean assetclean VERSION=gc-jp-ce' + script { + build('gc-jp-ce') + } } } stage('Build gc-eu') { steps { - sh 'ln -s /usr/local/etc/roms/oot-gc-eu.z64 baseroms/gc-eu/baserom.z64' - sh 'make -j$(nproc) setup VERSION=gc-eu' - sh 'make -j$(nproc) VERSION=gc-eu' - sh 'make clean assetclean VERSION=gc-eu' + script { + build('gc-eu') + } } } stage('Build gc-jp-mq') { steps { - sh 'ln -s /usr/local/etc/roms/oot-gc-jp-mq.z64 baseroms/gc-jp-mq/baserom.z64' - sh 'make -j$(nproc) setup VERSION=gc-jp-mq' - sh 'make -j$(nproc) VERSION=gc-jp-mq' - sh 'make clean assetclean VERSION=gc-jp-mq' + script { + build('gc-jp-mq') + } } } stage('Build gc-us-mq') { steps { - sh 'ln -s /usr/local/etc/roms/oot-gc-us-mq.z64 baseroms/gc-us-mq/baserom.z64' - sh 'make -j$(nproc) setup VERSION=gc-us-mq' - sh 'make -j$(nproc) VERSION=gc-us-mq' - sh 'make clean assetclean VERSION=gc-us-mq' + script { + build('gc-us-mq') + } + } + } + stage('Generate patch') { + when { + not { + branch 'main' + } + } + steps { + sh 'git diff' + echo 'Generating patch...' + sh 'tools/generate_patch_from_jenkins.sh' } } } @@ -115,3 +121,20 @@ pipeline { } } } + +def build(String version) { + sh "ln -s /usr/local/etc/roms/oot-${version}.z64 baseroms/${version}/baserom.z64" + sh "make -j\$(nproc) setup VERSION=${version}" + try { + sh "make -j\$(nproc) VERSION=${version}" + } catch (e) { + echo "Build failed, attempting to fix BSS ordering..." + sh ".venv/bin/python3 tools/fix_bss.py -v ${version}" + // If fix_bss.py succeeds, continue the build, but ensure both the build and current stage are marked as failed + catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { + sh 'exit 1' + } + } finally { + sh "make clean assetclean VERSION=${version}" + } +} diff --git a/tools/fix_bss.py b/tools/fix_bss.py index d5907cbc2a..8e633a2f72 100755 --- a/tools/fix_bss.py +++ b/tools/fix_bss.py @@ -19,7 +19,7 @@ import shlex import sys import time import traceback -from typing import BinaryIO, Iterator, Tuple +from typing import BinaryIO, Iterator, Optional, Tuple from ido_block_numbers import ( generate_make_log, @@ -33,6 +33,17 @@ import elftools.elf.elffile import mapfile_parser.mapfile +# Set on program start since we replace sys.stdout in worker processes +stdout_isatty = sys.stdout.isatty() + + +def output(message: str = "", color: Optional[str] = None, end: str = "\n"): + if color and stdout_isatty: + print(f"{color}{message}{colorama.Fore.RESET}", end=end) + else: + print(message, end=end) + + def read_u32(f: BinaryIO, offset: int) -> int: f.seek(offset) return int.from_bytes(f.read(4), "big") @@ -208,8 +219,8 @@ def compare_pointers(version: str) -> dict[Path, BssSection]: source_code_segments.append(mapfile_segment) # Find all pointers with different values - if not sys.stdout.isatty(): - print(f"Comparing pointers between baserom and build ...") + if not stdout_isatty: + output(f"Comparing pointers between baserom and build ...") pointers = [] file_results = [] with multiprocessing.Pool( @@ -230,22 +241,22 @@ def compare_pointers(version: str) -> dict[Path, BssSection]: while True: time.sleep(0.010) num_files_done = sum(file_result.ready() for file_result in file_results) - if sys.stdout.isatty(): - print( + if stdout_isatty: + output( f"Comparing pointers between baserom and build ... {num_files_done:>{len(f'{num_files}')}}/{num_files}", end="\r", ) if num_files_done == num_files: break - if sys.stdout.isatty(): - print("") + if stdout_isatty: + output("") # Collect results and check for errors for file_result in file_results: try: pointers.extend(file_result.get()) except FixBssException as e: - print(f"{colorama.Fore.RED}Error: {str(e)}{colorama.Fore.RESET}") + output(f"Error: {str(e)}", color=colorama.Fore.RED) sys.exit(1) # Remove duplicates and sort by baserom address @@ -674,27 +685,27 @@ def process_file( dry_run: bool, version: str, ): - print(f"{colorama.Fore.CYAN}Processing {file} ...{colorama.Fore.RESET}") + output(f"Processing {file} ...", color=colorama.Fore.CYAN) command_line = find_compiler_command_line(make_log, file) if command_line is None: raise FixBssException(f"Could not determine compiler command line for {file}") - print(f"Compiler command: {shlex.join(command_line)}") + output(f"Compiler command: {shlex.join(command_line)}") symbol_table, ucode = run_cfe(command_line, keep_files=False) bss_variables = find_bss_variables(symbol_table, ucode) - print("BSS variables:") + output("BSS variables:") for var in bss_variables: i = var.block_number - print( + output( f" {i:>6} [{i%256:>3}]: size=0x{var.size:04X} align=0x{var.align:X} referenced_in_data={str(var.referenced_in_data):<5} {var.name}" ) build_bss_symbols = predict_bss_ordering(bss_variables) - print("Current build BSS ordering:") + output("Current build BSS ordering:") for symbol in build_bss_symbols: - print( + output( f" offset=0x{symbol.offset:04X} size=0x{symbol.size:04X} align=0x{symbol.align:X} referenced_in_data={str(symbol.referenced_in_data):<5} {symbol.name}" ) @@ -702,9 +713,9 @@ def process_file( raise FixBssException(f"No pointers to BSS found in ROM for {file}") base_bss_symbols = determine_base_bss_ordering(build_bss_symbols, bss_section) - print("Baserom BSS ordering:") + output("Baserom BSS ordering:") for symbol in base_bss_symbols: - print( + output( f" offset=0x{symbol.offset:04X} size=0x{symbol.size:04X} align=0x{symbol.align:X} referenced_in_data={str(symbol.referenced_in_data):<5} {symbol.name}" ) @@ -717,15 +728,15 @@ def process_file( f"Too many increment_block_number pragmas found in {file} (found {len(pragmas)}, max {max_pragmas})" ) - print("Solving BSS ordering ...") + output("Solving BSS ordering ...") new_pragmas = solve_bss_ordering(pragmas, bss_variables, base_bss_symbols) - print("New increment_block_number amounts:") + output("New increment_block_number amounts:") for pragma in new_pragmas: - print(f" line {pragma.line_number}: {pragma.amount}") + output(f" line {pragma.line_number}: {pragma.amount}") if not dry_run: update_source_file(version, file, new_pragmas) - print(f"{colorama.Fore.GREEN}Updated {file}{colorama.Fore.RESET}") + output(f"Updated {file}", color=colorama.Fore.GREEN) def process_file_worker(*x): @@ -737,17 +748,17 @@ def process_file_worker(*x): process_file(*x) except FixBssException as e: # exception with a message for the user - print(f"{colorama.Fore.RED}Error: {str(e)}{colorama.Fore.RESET}") + output(f"Error: {str(e)}", color=colorama.Fore.RED) raise except Exception as e: # "unexpected" exception, also print a trace for devs - print(f"{colorama.Fore.RED}Error: {str(e)}{colorama.Fore.RESET}") + output(f"Error: {str(e)}", color=colorama.Fore.RED) traceback.print_exc(file=sys.stdout) raise finally: sys.stdout = old_stdout - print() - print(fake_stdout.getvalue(), end="") + output() + output(fake_stdout.getvalue(), end="") def main(): @@ -797,11 +808,11 @@ def main(): files_with_reordering.append(file) if files_with_reordering: - print("Files with BSS reordering:") + output("Files with BSS reordering:") for file in files_with_reordering: - print(f" {file}") + output(f" {file}") else: - print("No BSS reordering found.") + output("No BSS reordering found.") if args.files: # Ignore files that don't have a BSS section in the ROM @@ -811,7 +822,7 @@ def main(): if not files_to_fix: return - print(f"Running make to find compiler command line ...") + output(f"Running make to find compiler command line ...") make_log = generate_make_log(version) with multiprocessing.Pool() as p: @@ -836,12 +847,13 @@ def main(): # Collect results and check for errors num_successes = sum(file_result.successful() for file_result in file_results) if num_successes == len(file_results): - print() - print(f"Processed {num_successes}/{len(file_results)} files.") + output() + output(f"Processed {num_successes}/{len(file_results)} files.") else: - print() - print( - f"{colorama.Fore.RED}Processed {num_successes}/{len(file_results)} files.{colorama.Fore.RESET}" + output() + output( + f"Processed {num_successes}/{len(file_results)} files.", + color=colorama.Fore.RED, ) sys.exit(1) diff --git a/tools/generate_patch_from_jenkins.sh b/tools/generate_patch_from_jenkins.sh new file mode 100755 index 0000000000..4eb98cd3af --- /dev/null +++ b/tools/generate_patch_from_jenkins.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -euo pipefail + +PATCH=$(git diff | base64 -w 0) +if [ -n "$PATCH" ]; then + echo "Jenkins made some fixes to your PR. To apply these changes to your working directory," + echo "copy and run the following command (triple-click to select the entire line):" + echo + echo "echo -n $PATCH | base64 -d | git apply -" + echo +fi From 2232f679170d05b2d2ac5eb25b4a465024f02c25 Mon Sep 17 00:00:00 2001 From: fig02 Date: Sun, 8 Sep 2024 19:19:04 -0400 Subject: [PATCH 58/86] [Player ZTarget] Some func_80836BEC docs (#2172) * some func_80836BEC docs * review * fix * newline * linbreak * format * usingHoldTargeting --- .../actors/ovl_player_actor/z_player.c | 56 ++++++++++++------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 460f69884f..f8f60de1be 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3540,23 +3540,23 @@ s32 func_80836AB8(Player* this, s32 arg1) { return var; } -// Update things related to Z Targeting +// Player_UpdateZTargeting void func_80836BEC(Player* this, PlayState* play) { s32 ignoreLeash = false; - s32 zTrigPressed = CHECK_BTN_ALL(sControlInput->cur.button, BTN_Z); - Actor* actorToTarget; + s32 zButtonHeld = CHECK_BTN_ALL(sControlInput->cur.button, BTN_Z); + Actor* nextLockOnActor; s32 pad; - s32 holdTarget; - s32 cond; + s32 usingHoldTargeting; + s32 isTalking; - if (!zTrigPressed) { + if (!zButtonHeld) { this->stateFlags1 &= ~PLAYER_STATE1_30; } if ((play->csCtx.state != CS_STATE_IDLE) || (this->csAction != PLAYER_CSACTION_NONE) || (this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || (this->stateFlags3 & PLAYER_STATE3_7)) { this->unk_66C = 0; - } else if (zTrigPressed || (this->stateFlags2 & PLAYER_STATE2_13) || (this->unk_684 != NULL)) { + } else if (zButtonHeld || (this->stateFlags2 & PLAYER_STATE2_13) || (this->unk_684 != NULL)) { if (this->unk_66C <= 5) { this->unk_66C = 5; } else { @@ -3572,36 +3572,49 @@ void func_80836BEC(Player* this, PlayState* play) { ignoreLeash = true; } - cond = func_8083224C(play); - if (cond || (this->unk_66C != 0) || (this->stateFlags1 & (PLAYER_STATE1_12 | PLAYER_STATE1_25))) { - if (!cond) { + isTalking = func_8083224C(play); + + if (isTalking || (this->unk_66C != 0) || (this->stateFlags1 & (PLAYER_STATE1_12 | PLAYER_STATE1_25))) { + if (!isTalking) { if (!(this->stateFlags1 & PLAYER_STATE1_25) && ((this->heldItemAction != PLAYER_IA_FISHING_POLE) || (this->unk_860 == 0)) && CHECK_BTN_ALL(sControlInput->press.button, BTN_Z)) { - if (this->actor.category == ACTORCAT_PLAYER) { - actorToTarget = play->actorCtx.attention.naviHoverActor; + // The next lock-on actor defaults to the actor Navi is hovering over. + // This may change to the arrow hover actor below. + nextLockOnActor = play->actorCtx.attention.naviHoverActor; } else { - actorToTarget = &GET_PLAYER(play)->actor; + // Dark Link will always lock onto the player. + nextLockOnActor = &GET_PLAYER(play)->actor; } - holdTarget = (gSaveContext.zTargetSetting != 0) || (this->actor.category != ACTORCAT_PLAYER); + // Get saved Z Target setting. + // Dark Link uses Hold Targeting. + usingHoldTargeting = (gSaveContext.zTargetSetting != 0) || (this->actor.category != ACTORCAT_PLAYER); + this->stateFlags1 |= PLAYER_STATE1_15; - if ((actorToTarget != NULL) && !(actorToTarget->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { - if ((actorToTarget == this->focusActor) && (this->actor.category == ACTORCAT_PLAYER)) { - actorToTarget = play->actorCtx.attention.arrowHoverActor; + if ((nextLockOnActor != NULL) && !(nextLockOnActor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { + + // Navi hovers over the current lock-on actor, so `nextLockOnActor` and `focusActor` + // will be the same if already locked on. + // In this case, `nextLockOnActor` will be the arrow hover actor instead. + if ((nextLockOnActor == this->focusActor) && (this->actor.category == ACTORCAT_PLAYER)) { + nextLockOnActor = play->actorCtx.attention.arrowHoverActor; } - if (actorToTarget != this->focusActor) { - if (!holdTarget) { + if (nextLockOnActor != this->focusActor) { + // Set new lock-on + + if (!usingHoldTargeting) { this->stateFlags2 |= PLAYER_STATE2_13; } - this->focusActor = actorToTarget; + + this->focusActor = nextLockOnActor; this->unk_66C = 15; this->stateFlags2 &= ~(PLAYER_STATE2_1 | PLAYER_STATE2_21); } else { - if (!holdTarget) { + if (!usingHoldTargeting) { func_8008EDF0(this); } } @@ -3629,6 +3642,7 @@ void func_80836BEC(Player* this, PlayState* play) { if (this->focusActor != NULL) { this->stateFlags1 &= ~(PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL); + if ((this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) || !CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE)) { this->stateFlags1 |= PLAYER_STATE1_16; From 6fcaa51832e8abe62485fb2a78f709846ce5bb6b Mon Sep 17 00:00:00 2001 From: cadmic Date: Sun, 8 Sep 2024 18:37:55 -0700 Subject: [PATCH 59/86] fix_bss.py: Restore z_locale special case (#2179) --- tools/fix_bss.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/fix_bss.py b/tools/fix_bss.py index 8e633a2f72..da6b6547a3 100755 --- a/tools/fix_bss.py +++ b/tools/fix_bss.py @@ -797,8 +797,14 @@ def main(): for file, bss_section in bss_sections.items(): if not bss_section.pointers: continue + # The following heuristic doesn't work for z_locale, since the first pointer into BSS is not + # at the start of the section. Fortunately z_locale either has one BSS variable (in GC versions) + # or none (in N64 versions), so we can just skip it. + if str(file) == "src/boot/z_locale.c": + continue # For the baserom, assume that the lowest address is the start of the BSS section. This might - # not be true if the first BSS variable is not referenced, but in practice this doesn't happen. + # not be true if the first BSS variable is not referenced, but in practice this doesn't happen + # (except for z_locale above). base_min_address = min(p.base_value for p in bss_section.pointers) build_min_address = bss_section.start_address if not all( From 6e0288d155f5319366968a870f0c766ca97e022b Mon Sep 17 00:00:00 2001 From: fig02 Date: Mon, 9 Sep 2024 21:58:22 -0400 Subject: [PATCH 60/86] Boomerang related state flags (#2180) * boomerang state flags * finish comment --- include/z64player.h | 4 +-- src/code/z_player_lib.c | 3 +- src/overlays/actors/ovl_En_Boom/z_en_boom.c | 2 +- .../actors/ovl_player_actor/z_player.c | 32 +++++++++++-------- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index 5fc1eca57e..c8758b0b39 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -672,8 +672,8 @@ typedef struct WeaponInfo { #define PLAYER_STATE1_21 (1 << 21) #define PLAYER_STATE1_22 (1 << 22) #define PLAYER_STATE1_23 (1 << 23) -#define PLAYER_STATE1_24 (1 << 24) -#define PLAYER_STATE1_25 (1 << 25) +#define PLAYER_STATE1_USING_BOOMERANG (1 << 24) // Currently using the boomerang. This includes all phases (aiming, throwing, and catching). +#define PLAYER_STATE1_BOOMERANG_THROWN (1 << 25) // Boomerang has been thrown and is flying in the air #define PLAYER_STATE1_26 (1 << 26) #define PLAYER_STATE1_27 (1 << 27) #define PLAYER_STATE1_28 (1 << 28) diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index b75a8a7581..e33b9ad594 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -1199,7 +1199,8 @@ s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx** if ((sLeftHandType == PLAYER_MODELTYPE_LH_BGS) && (gSaveContext.save.info.playerData.swordHealth <= 0.0f)) { dLists += 4; - } else if ((sLeftHandType == PLAYER_MODELTYPE_LH_BOOMERANG) && (this->stateFlags1 & PLAYER_STATE1_25)) { + } else if ((sLeftHandType == PLAYER_MODELTYPE_LH_BOOMERANG) && + (this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN)) { dLists = gPlayerLeftHandOpenDLs + gSaveContext.save.linkAge; sLeftHandType = PLAYER_MODELTYPE_LH_OPEN; } else if ((this->leftHandType == PLAYER_MODELTYPE_LH_OPEN) && (this->actor.speed > 2.0f) && diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index ba2e6e2909..a2fee4a165 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -186,7 +186,7 @@ void EnBoom_Fly(EnBoom* this, PlayState* play) { } } // Set player flags and kill the boomerang beacause Link caught it. - player->stateFlags1 &= ~PLAYER_STATE1_25; + player->stateFlags1 &= ~PLAYER_STATE1_BOOMERANG_THROWN; Actor_Kill(&this->actor); } } else { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index f8f60de1be..e5cd07cbc2 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -2065,7 +2065,7 @@ int func_808332B8(Player* this) { } s32 func_808332E4(Player* this) { - return (this->stateFlags1 & PLAYER_STATE1_24); + return (this->stateFlags1 & PLAYER_STATE1_USING_BOOMERANG); } void func_808332F4(Player* this, PlayState* play) { @@ -2167,7 +2167,9 @@ void Player_InitItemActionWithAnim(PlayState* play, Player* this, s8 itemAction) LinkAnimationHeader** iter = D_80853914 + this->modelAnimType; u32 animGroup; - this->stateFlags1 &= ~(PLAYER_STATE1_3 | PLAYER_STATE1_24); + // This is redundant, the same two flags get unset in + // `Player_InitItemAction` called below. + this->stateFlags1 &= ~(PLAYER_STATE1_3 | PLAYER_STATE1_USING_BOOMERANG); for (animGroup = 0; animGroup < PLAYER_ANIMGROUP_MAX; animGroup++) { if (current == *iter) { @@ -2259,7 +2261,7 @@ void Player_InitHookshotIA(PlayState* play, Player* this) { } void Player_InitBoomerangIA(PlayState* play, Player* this) { - this->stateFlags1 |= PLAYER_STATE1_24; + this->stateFlags1 |= PLAYER_STATE1_USING_BOOMERANG; } void Player_InitItemAction(PlayState* play, Player* this, s8 itemAction) { @@ -2270,7 +2272,7 @@ void Player_InitItemAction(PlayState* play, Player* this, s8 itemAction) { this->heldItemAction = this->itemAction = itemAction; this->modelGroup = this->nextModelGroup; - this->stateFlags1 &= ~(PLAYER_STATE1_3 | PLAYER_STATE1_24); + this->stateFlags1 &= ~(PLAYER_STATE1_3 | PLAYER_STATE1_USING_BOOMERANG); sItemActionInitFuncs[itemAction](play, this); @@ -2806,7 +2808,7 @@ s32 func_80834EB8(Player* this, PlayState* play) { } s32 func_80834F2C(Player* this, PlayState* play) { - if ((this->doorType == PLAYER_DOORTYPE_NONE) && !(this->stateFlags1 & PLAYER_STATE1_25)) { + if ((this->doorType == PLAYER_DOORTYPE_NONE) && !(this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN)) { if (sUseHeldItem || func_80834E44(play)) { if (func_80834D2C(this, play)) { return func_80834EB8(this, play); @@ -3049,7 +3051,7 @@ s32 func_80835800(Player* this, PlayState* play) { return true; } - if (this->stateFlags1 & PLAYER_STATE1_25) { + if (this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) { Player_SetUpperActionFunc(this, func_80835B60); } else if (func_80834F2C(this, play)) { return true; @@ -3104,13 +3106,16 @@ s32 func_808359FC(Player* this, PlayState* play) { this->actor.focus.rot.x, yaw, 0, 0); this->boomerangActor = &boomerang->actor; + if (boomerang != NULL) { boomerang->moveTo = this->focusActor; boomerang->returnTimer = 20; - this->stateFlags1 |= PLAYER_STATE1_25; + this->stateFlags1 |= PLAYER_STATE1_BOOMERANG_THROWN; + if (!func_8008E9C4(this)) { Player_SetParallel(this); } + this->unk_A73 = 4; Player_PlaySfx(this, NA_SE_IT_BOOMERANG_THROW); Player_PlayVoiceSfx(this, NA_SE_VO_LI_SWORD_N); @@ -3125,7 +3130,7 @@ s32 func_80835B60(Player* this, PlayState* play) { return true; } - if (!(this->stateFlags1 & PLAYER_STATE1_25)) { + if (!(this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN)) { Player_SetUpperActionFunc(this, func_80835C08); LinkAnimation_PlayOnce(play, &this->upperSkelAnime, &gPlayerAnim_link_boom_catch); func_808357E8(this, gPlayerLeftHandBoomerangDLs); @@ -3574,9 +3579,10 @@ void func_80836BEC(Player* this, PlayState* play) { isTalking = func_8083224C(play); - if (isTalking || (this->unk_66C != 0) || (this->stateFlags1 & (PLAYER_STATE1_12 | PLAYER_STATE1_25))) { + if (isTalking || (this->unk_66C != 0) || + (this->stateFlags1 & (PLAYER_STATE1_12 | PLAYER_STATE1_BOOMERANG_THROWN))) { if (!isTalking) { - if (!(this->stateFlags1 & PLAYER_STATE1_25) && + if (!(this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) && ((this->heldItemAction != PLAYER_IA_FISHING_POLE) || (this->unk_860 == 0)) && CHECK_BTN_ALL(sControlInput->press.button, BTN_Z)) { if (this->actor.category == ACTORCAT_PLAYER) { @@ -10769,7 +10775,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_TALK)) { camMode = CAM_MODE_TALK; } else if (this->stateFlags1 & PLAYER_STATE1_16) { - if (this->stateFlags1 & PLAYER_STATE1_25) { + if (this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) { camMode = CAM_MODE_FOLLOW_BOOMERANG; } else { camMode = CAM_MODE_Z_TARGET_FRIENDLY; @@ -10780,7 +10786,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, focusActor); } else if (this->stateFlags1 & PLAYER_STATE1_12) { camMode = CAM_MODE_CHARGE; - } else if (this->stateFlags1 & PLAYER_STATE1_25) { + } else if (this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) { camMode = CAM_MODE_FOLLOW_BOOMERANG; Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, this->boomerangActor); } else if (this->stateFlags1 & (PLAYER_STATE1_13 | PLAYER_STATE1_14)) { @@ -14762,7 +14768,7 @@ void func_80851750(PlayState* play, Player* this, CsCmdActorCue* cue) { } void func_80851788(PlayState* play, Player* this, CsCmdActorCue* cue) { - this->stateFlags1 &= ~PLAYER_STATE1_25; + this->stateFlags1 &= ~PLAYER_STATE1_BOOMERANG_THROWN; this->yaw = this->actor.shape.rot.y = this->actor.world.rot.y = Math_Vec3f_Yaw(&this->actor.world.pos, &this->unk_450); From 58d8abfe03f09ad0cbeee238f16f8ed68e5c9af1 Mon Sep 17 00:00:00 2001 From: AJ Otto Date: Tue, 10 Sep 2024 12:53:49 -0500 Subject: [PATCH 61/86] Added eye texture offsets for extraction for object_oE5.xml (#2181) * Blob object_oE5_Blob_003A40 corrected to extract eye half open and eye closed textures for object_oE5 * Fixed spacing in object_oE5 xml file for commit --- assets/xml/objects/object_oE5.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/xml/objects/object_oE5.xml b/assets/xml/objects/object_oE5.xml index f5edf745aa..040fb8d733 100644 --- a/assets/xml/objects/object_oE5.xml +++ b/assets/xml/objects/object_oE5.xml @@ -49,7 +49,8 @@ - + + From 2e79b83bb81b1fd65a12a2b2a018de27271611a0 Mon Sep 17 00:00:00 2001 From: fig02 Date: Tue, 10 Sep 2024 22:00:41 -0400 Subject: [PATCH 62/86] More target related state flags (#2184) * name some more flags * format * cdi suggestion --- include/z64player.h | 8 ++--- src/code/z_player_lib.c | 8 ++--- .../actors/ovl_player_actor/z_player.c | 35 ++++++++++--------- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index c8758b0b39..de15c9b691 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -663,7 +663,7 @@ typedef struct WeaponInfo { #define PLAYER_STATE1_12 (1 << 12) #define PLAYER_STATE1_13 (1 << 13) #define PLAYER_STATE1_14 (1 << 14) -#define PLAYER_STATE1_15 (1 << 15) +#define PLAYER_STATE1_Z_TARGETING (1 << 15) // Either lock-on or parallel is active. This flag is never checked for and is practically unused. #define PLAYER_STATE1_16 (1 << 16) #define PLAYER_STATE1_PARALLEL (1 << 17) // "Parallel" mode, Z-Target without an actor lock-on #define PLAYER_STATE1_18 (1 << 18) @@ -678,7 +678,7 @@ typedef struct WeaponInfo { #define PLAYER_STATE1_27 (1 << 27) #define PLAYER_STATE1_28 (1 << 28) #define PLAYER_STATE1_29 (1 << 29) -#define PLAYER_STATE1_30 (1 << 30) +#define PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE (1 << 30) // Lock-on was released automatically, for example by leaving the lock-on leash range #define PLAYER_STATE1_31 (1 << 31) #define PLAYER_STATE2_0 (1 << 0) @@ -694,7 +694,7 @@ typedef struct WeaponInfo { #define PLAYER_STATE2_10 (1 << 10) #define PLAYER_STATE2_11 (1 << 11) #define PLAYER_STATE2_12 (1 << 12) -#define PLAYER_STATE2_13 (1 << 13) +#define PLAYER_STATE2_LOCK_ON_WITH_SWITCH (1 << 13) // Actor lock-on is active, specifically with Switch Targeting. Hold Targeting checks the state of the Z button instead of this flag. #define PLAYER_STATE2_14 (1 << 14) #define PLAYER_STATE2_15 (1 << 15) #define PLAYER_STATE2_DO_ACTION_ENTER (1 << 16) // Sets the "Enter On A" DoAction @@ -721,7 +721,7 @@ typedef struct WeaponInfo { #define PLAYER_STATE3_4 (1 << 4) #define PLAYER_STATE3_5 (1 << 5) #define PLAYER_STATE3_RESTORE_NAYRUS_LOVE (1 << 6) // Set by ocarina effects actors when destroyed to signal Nayru's Love may be restored (see `ACTOROVL_ALLOC_ABSOLUTE`) -#define PLAYER_STATE3_7 (1 << 7) +#define PLAYER_STATE3_FLYING_WITH_HOOKSHOT (1 << 7) // Flying in the air with the hookshot as it pulls Player toward its destination typedef void (*PlayerActionFunc)(struct Player*, struct PlayState*); typedef s32 (*UpperActionFunc)(struct Player*, struct PlayState*); diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index e33b9ad594..a3fa204ec4 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -492,7 +492,7 @@ void Player_SetBootData(PlayState* play, Player* this) { int Player_InBlockingCsMode(PlayState* play, Player* this) { return (this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || (this->csAction != PLAYER_CSACTION_NONE) || (play->transitionTrigger == TRANS_TRIGGER_START) || (this->stateFlags1 & PLAYER_STATE1_0) || - (this->stateFlags3 & PLAYER_STATE3_7) || + (this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT) || ((gSaveContext.magicState != MAGIC_STATE_IDLE) && (Player_ActionToMagicSpell(this, this->itemAction) >= 0)); } @@ -603,7 +603,7 @@ void Player_UpdateBottleHeld(PlayState* play, Player* this, s32 item, s32 itemAc void func_8008EDF0(Player* this) { this->focusActor = NULL; - this->stateFlags2 &= ~PLAYER_STATE2_13; + this->stateFlags2 &= ~PLAYER_STATE2_LOCK_ON_WITH_SWITCH; } void func_8008EE08(Player* this) { @@ -611,8 +611,8 @@ void func_8008EE08(Player* this) { (this->stateFlags1 & (PLAYER_STATE1_21 | PLAYER_STATE1_23 | PLAYER_STATE1_27)) || (!(this->stateFlags1 & (PLAYER_STATE1_18 | PLAYER_STATE1_19)) && ((this->actor.world.pos.y - this->actor.floorHeight) < 100.0f))) { - this->stateFlags1 &= ~(PLAYER_STATE1_15 | PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL | PLAYER_STATE1_18 | - PLAYER_STATE1_19 | PLAYER_STATE1_30); + this->stateFlags1 &= ~(PLAYER_STATE1_Z_TARGETING | PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL | + PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE); } else if (!(this->stateFlags1 & (PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_21))) { this->stateFlags1 |= PLAYER_STATE1_19; } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index e5cd07cbc2..9df85e5ff1 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -2316,7 +2316,7 @@ void func_80833A20(Player* this, s32 newMeleeWeaponState) { } s32 func_80833B2C(Player* this) { - if (this->stateFlags1 & (PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL | PLAYER_STATE1_30)) { + if (this->stateFlags1 & (PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL | PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE)) { return 1; } else { return 0; @@ -3179,7 +3179,7 @@ s32 Player_SetupAction(PlayState* play, Player* this, PlayerActionFunc actionFun this->stateFlags1 &= ~(PLAYER_STATE1_2 | PLAYER_STATE1_6 | PLAYER_STATE1_26 | PLAYER_STATE1_28 | PLAYER_STATE1_29 | PLAYER_STATE1_31); this->stateFlags2 &= ~(PLAYER_STATE2_19 | PLAYER_STATE2_27 | PLAYER_STATE2_28); - this->stateFlags3 &= ~(PLAYER_STATE3_1 | PLAYER_STATE3_3 | PLAYER_STATE3_7); + this->stateFlags3 &= ~(PLAYER_STATE3_1 | PLAYER_STATE3_3 | PLAYER_STATE3_FLYING_WITH_HOOKSHOT); this->av1.actionVar1 = 0; this->av2.actionVar2 = 0; @@ -3404,7 +3404,7 @@ int Player_CanUpdateItems(Player* this) { 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); - this->stateFlags3 |= PLAYER_STATE3_7; + this->stateFlags3 |= PLAYER_STATE3_FLYING_WITH_HOOKSHOT; Player_AnimPlayOnce(play, this, &gPlayerAnim_link_hook_fly_start); Player_AnimReplaceApplyFlags(play, this, ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE | @@ -3555,13 +3555,14 @@ void func_80836BEC(Player* this, PlayState* play) { s32 isTalking; if (!zButtonHeld) { - this->stateFlags1 &= ~PLAYER_STATE1_30; + this->stateFlags1 &= ~PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE; } if ((play->csCtx.state != CS_STATE_IDLE) || (this->csAction != PLAYER_CSACTION_NONE) || - (this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || (this->stateFlags3 & PLAYER_STATE3_7)) { + (this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || + (this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT)) { this->unk_66C = 0; - } else if (zButtonHeld || (this->stateFlags2 & PLAYER_STATE2_13) || (this->unk_684 != NULL)) { + } else if (zButtonHeld || (this->stateFlags2 & PLAYER_STATE2_LOCK_ON_WITH_SWITCH) || (this->unk_684 != NULL)) { if (this->unk_66C <= 5) { this->unk_66C = 5; } else { @@ -3598,7 +3599,7 @@ void func_80836BEC(Player* this, PlayState* play) { // Dark Link uses Hold Targeting. usingHoldTargeting = (gSaveContext.zTargetSetting != 0) || (this->actor.category != ACTORCAT_PLAYER); - this->stateFlags1 |= PLAYER_STATE1_15; + this->stateFlags1 |= PLAYER_STATE1_Z_TARGETING; if ((nextLockOnActor != NULL) && !(nextLockOnActor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { @@ -3613,7 +3614,7 @@ void func_80836BEC(Player* this, PlayState* play) { // Set new lock-on if (!usingHoldTargeting) { - this->stateFlags2 |= PLAYER_STATE2_13; + this->stateFlags2 |= PLAYER_STATE2_LOCK_ON_WITH_SWITCH; } this->focusActor = nextLockOnActor; @@ -3625,9 +3626,9 @@ void func_80836BEC(Player* this, PlayState* play) { } } - this->stateFlags1 &= ~PLAYER_STATE1_30; + this->stateFlags1 &= ~PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE; } else { - if (!(this->stateFlags1 & (PLAYER_STATE1_PARALLEL | PLAYER_STATE1_30))) { + if (!(this->stateFlags1 & (PLAYER_STATE1_PARALLEL | PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE))) { Player_SetParallel(this); } } @@ -3637,7 +3638,7 @@ void func_80836BEC(Player* this, PlayState* play) { if ((this->actor.category == ACTORCAT_PLAYER) && (this->focusActor != this->unk_684) && Attention_ShouldReleaseLockOn(this->focusActor, this, ignoreLeash)) { func_8008EDF0(this); - this->stateFlags1 |= PLAYER_STATE1_30; + this->stateFlags1 |= PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE; } else if (this->focusActor != NULL) { this->focusActor->attentionPriority = 40; } @@ -3655,7 +3656,7 @@ void func_80836BEC(Player* this, PlayState* play) { } } else { if (this->stateFlags1 & PLAYER_STATE1_PARALLEL) { - this->stateFlags2 &= ~PLAYER_STATE2_13; + this->stateFlags2 &= ~PLAYER_STATE2_LOCK_ON_WITH_SWITCH; } else { func_8008EE08(this); } @@ -6020,7 +6021,7 @@ void func_8083C0E8(Player* this, PlayState* play) { } void func_8083C148(Player* this, PlayState* play) { - if (!(this->stateFlags3 & PLAYER_STATE3_7)) { + if (!(this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT)) { func_8083B010(this); if (this->stateFlags1 & PLAYER_STATE1_27) { func_80838F18(play, this); @@ -10764,7 +10765,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { if (this->csAction != PLAYER_CSACTION_NONE) { Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_NORMAL); } else if (!(this->stateFlags1 & PLAYER_STATE1_20)) { - if ((this->actor.parent != NULL) && (this->stateFlags3 & PLAYER_STATE3_7)) { + if ((this->actor.parent != NULL) && (this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT)) { camMode = CAM_MODE_HOOKSHOT_FLY; Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, this->actor.parent); } else if (Player_Action_8084377C == this->actionFunc) { @@ -10795,7 +10796,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { } else { camMode = CAM_MODE_LEDGE_HANG; } - } else if (this->stateFlags1 & (PLAYER_STATE1_PARALLEL | PLAYER_STATE1_30)) { + } else if (this->stateFlags1 & (PLAYER_STATE1_PARALLEL | PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE)) { if (func_8002DD78(this) || func_808334B4(this)) { camMode = CAM_MODE_Z_AIM; } else if (this->stateFlags1 & PLAYER_STATE1_21) { @@ -11949,7 +11950,7 @@ void Player_Action_8084B530(Player* this, PlayState* play) { this->actor.flags &= ~ACTOR_FLAG_TALK; if (!CHECK_FLAG_ALL(this->talkActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE)) { - this->stateFlags2 &= ~PLAYER_STATE2_13; + this->stateFlags2 &= ~PLAYER_STATE2_LOCK_ON_WITH_SWITCH; } Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN)); @@ -15400,7 +15401,7 @@ s32 Player_StartFishing(PlayState* play) { s32 func_80852F38(PlayState* play, Player* this) { if (!Player_InBlockingCsMode(play, this) && (this->invincibilityTimer >= 0) && !func_8008F128(this) && - !(this->stateFlags3 & PLAYER_STATE3_7)) { + !(this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT)) { func_80832564(play, this); Player_SetupAction(play, this, Player_Action_8084F308, 0); Player_AnimPlayOnce(play, this, &gPlayerAnim_link_normal_re_dead_attack); From 5441559b30d4419eb25e77abc4ff2eb1f34027aa Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 11 Sep 2024 09:59:23 +0200 Subject: [PATCH 63/86] Cleanup gSPMatrix, rename `Matrix_New` -> `Matrix_Finalize`, add `MATRIX_FINALIZE_AND_LOAD` (#1983) * clean up gSPMatrix usage * add weird hybrid macro gSPMATRIX_SET_NEW * Matrix_NewMtx, MATRIX_NEW -> Matrix_Finalize, MATRIX_FINALIZE * gSPMATRIX_SET_NEW -> MATRIX_FINALIZE_AND_LOAD * format --- include/functions.h | 1 - include/macros.h | 3 + include/sys_matrix.h | 8 +- src/code/sys_matrix.c | 4 +- src/code/z_actor.c | 22 ++-- src/code/z_cheap_proc.inc.c | 4 +- src/code/z_debug_display.c | 6 +- src/code/z_draw.c | 82 +++++++------- src/code/z_en_a_keep.c | 2 +- src/code/z_en_item00.c | 10 +- src/code/z_fbdemo_circle.c | 6 +- src/code/z_fbdemo_triforce.c | 8 +- src/code/z_fbdemo_wipe1.c | 4 +- src/code/z_fcurve_data_skelanime.c | 9 +- src/code/z_kankyo.c | 16 ++- src/code/z_lifemeter.c | 2 +- src/code/z_lights.c | 3 +- src/code/z_map_exp.c | 6 +- src/code/z_parameter.c | 7 +- src/code/z_player_lib.c | 12 +-- src/code/z_room.c | 16 +-- src/code/z_sample.c | 2 +- src/code/z_scene_table.c | 2 +- src/code/z_skelanime.c | 24 ++--- .../actors/ovl_Arms_Hook/z_arms_hook.c | 6 +- .../actors/ovl_Arrow_Fire/z_arrow_fire.c | 3 +- .../actors/ovl_Arrow_Ice/z_arrow_ice.c | 3 +- .../actors/ovl_Arrow_Light/z_arrow_light.c | 3 +- .../actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c | 3 +- .../actors/ovl_Bg_Breakwall/z_bg_breakwall.c | 3 +- .../actors/ovl_Bg_Dodoago/z_bg_dodoago.c | 3 +- .../ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c | 3 +- .../ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c | 9 +- .../ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c | 3 +- .../ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c | 3 +- .../ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c | 3 +- .../ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c | 3 +- src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c | 6 +- .../actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c | 9 +- .../actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c | 12 +-- .../actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c | 3 +- .../ovl_Bg_Haka_Water/z_bg_haka_water.c | 6 +- .../ovl_Bg_Heavy_Block/z_bg_heavy_block.c | 3 +- .../ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c | 3 +- .../z_bg_hidan_firewall.c | 3 +- .../ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c | 3 +- .../ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c | 3 +- .../ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c | 3 +- .../z_bg_hidan_kowarerukabe.c | 3 +- .../ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c | 3 +- .../z_bg_hidan_rsekizou.c | 3 +- .../ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c | 3 +- .../ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c | 3 +- .../ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c | 3 +- .../actors/ovl_Bg_Ingate/z_bg_ingate.c | 3 +- .../ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c | 6 +- .../actors/ovl_Bg_Jya_Block/z_bg_jya_block.c | 3 +- .../z_bg_jya_bombchuiwa.c | 6 +- .../actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c | 9 +- .../ovl_Bg_Jya_Megami/z_bg_jya_megami.c | 6 +- .../ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c | 3 +- .../ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c | 2 +- .../ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c | 3 +- .../ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c | 3 +- .../ovl_Bg_Mizu_Water/z_bg_mizu_water.c | 3 +- src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c | 3 +- .../ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c | 3 +- .../ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c | 3 +- .../ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c | 3 +- .../ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c | 3 +- .../ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c | 12 +-- .../ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c | 3 +- .../z_bg_mori_kaitenkabe.c | 3 +- .../z_bg_mori_rakkatenjo.c | 3 +- .../actors/ovl_Bg_Po_Event/z_bg_po_event.c | 3 +- .../ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c | 6 +- .../actors/ovl_Bg_Pushbox/z_bg_pushbox.c | 3 +- .../z_bg_spot00_hanebasi.c | 6 +- .../ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c | 3 +- .../z_bg_spot01_idohashira.c | 3 +- .../z_bg_spot01_idomizu.c | 3 +- .../z_bg_spot01_idosoko.c | 3 +- .../z_bg_spot02_objects.c | 6 +- .../ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c | 3 +- .../z_bg_spot06_objects.c | 3 +- .../ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c | 6 +- .../ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c | 3 +- .../ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c | 3 +- .../ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c | 3 +- .../z_bg_spot16_bombstone.c | 3 +- .../z_bg_spot16_doughnut.c | 6 +- .../z_bg_spot17_bakudankabe.c | 6 +- .../ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c | 3 +- .../actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c | 3 +- .../ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c | 15 +-- .../actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c | 3 +- .../actors/ovl_Bg_Treemouth/z_bg_treemouth.c | 3 +- .../actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c | 3 +- .../actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c | 3 +- .../actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c | 12 +-- src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c | 3 +- .../actors/ovl_Boss_Dodongo/z_boss_dodongo.c | 6 +- src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c | 21 ++-- src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c | 3 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 78 +++++--------- .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 51 +++------ .../actors/ovl_Boss_Goma/z_boss_goma.c | 6 +- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 30 ++---- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 12 +-- src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 102 ++++++------------ src/overlays/actors/ovl_Boss_Va/z_boss_va.c | 45 +++----- src/overlays/actors/ovl_Demo_6K/z_demo_6k.c | 24 ++--- .../actors/ovl_Demo_Effect/z_demo_effect.c | 51 +++------ .../actors/ovl_Demo_Geff/z_demo_geff.c | 3 +- src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c | 2 +- src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c | 6 +- src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c | 18 ++-- .../actors/ovl_Demo_Kankyo/z_demo_kankyo.c | 24 ++--- .../actors/ovl_Demo_Kekkai/z_demo_kekkai.c | 9 +- src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c | 3 +- src/overlays/actors/ovl_Door_Ana/z_door_ana.c | 3 +- .../actors/ovl_Door_Gerudo/z_door_gerudo.c | 3 +- .../actors/ovl_Door_Shutter/z_door_shutter.c | 12 +-- .../actors/ovl_Door_Warp1/z_door_warp1.c | 6 +- .../actors/ovl_Efc_Erupc/z_efc_erupc.c | 9 +- src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c | 6 +- src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c | 3 +- src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c | 3 +- .../actors/ovl_En_Anubice/z_en_anubice.c | 3 +- .../ovl_En_Anubice_Fire/z_en_anubice_fire.c | 3 +- src/overlays/actors/ovl_En_Arrow/z_en_arrow.c | 3 +- src/overlays/actors/ovl_En_Ba/z_en_ba.c | 6 +- src/overlays/actors/ovl_En_Bb/z_en_bb.c | 3 +- .../actors/ovl_En_Bdfire/z_en_bdfire.c | 3 +- .../actors/ovl_En_Blkobj/z_en_blkobj.c | 3 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 6 +- .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 3 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 9 +- src/overlays/actors/ovl_En_Boom/z_en_boom.c | 3 +- src/overlays/actors/ovl_En_Box/z_en_box.c | 6 +- .../actors/ovl_En_Bubble/z_en_bubble.c | 3 +- src/overlays/actors/ovl_En_Butte/z_en_butte.c | 3 +- src/overlays/actors/ovl_En_Bw/z_en_bw.c | 6 +- src/overlays/actors/ovl_En_Bx/z_en_bx.c | 3 +- .../actors/ovl_En_Clear_Tag/z_en_clear_tag.c | 30 ++---- src/overlays/actors/ovl_En_Cs/z_en_cs.c | 2 +- .../actors/ovl_En_Dekubaba/z_en_dekubaba.c | 18 ++-- src/overlays/actors/ovl_En_Dh/z_en_dh.c | 3 +- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 3 +- .../actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c | 6 +- .../actors/ovl_En_Dy_Extra/z_en_dy_extra.c | 3 +- .../actors/ovl_En_Encount2/z_en_encount2.c | 3 +- .../actors/ovl_En_Ex_Item/z_en_ex_item.c | 3 +- .../actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c | 3 +- src/overlays/actors/ovl_En_Fd/z_en_fd.c | 6 +- .../actors/ovl_En_Fd_Fire/z_en_fd_fire.c | 3 +- .../actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c | 12 +-- .../actors/ovl_En_Fire_Rock/z_en_fire_rock.c | 3 +- .../actors/ovl_En_Floormas/z_en_floormas.c | 2 +- src/overlays/actors/ovl_En_Fr/z_en_fr.c | 3 +- src/overlays/actors/ovl_En_Fw/z_en_fw.c | 3 +- src/overlays/actors/ovl_En_Fz/z_en_fz.c | 6 +- .../actors/ovl_En_G_Switch/z_en_g_switch.c | 9 +- .../ovl_En_Ganon_Mant/z_en_ganon_mant.c | 3 +- .../ovl_En_Ganon_Organ/z_en_ganon_organ.c | 3 +- src/overlays/actors/ovl_En_Gb/z_en_gb.c | 3 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 9 +- src/overlays/actors/ovl_En_Go2/z_en_go2.c | 9 +- src/overlays/actors/ovl_En_Goma/z_en_goma.c | 9 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 6 +- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 5 +- src/overlays/actors/ovl_En_Holl/z_en_holl.c | 3 +- .../actors/ovl_En_Honotrap/z_en_honotrap.c | 6 +- .../ovl_En_Horse_Normal/z_en_horse_normal.c | 2 +- .../actors/ovl_En_Ice_Hono/z_en_ice_hono.c | 3 +- src/overlays/actors/ovl_En_Ik/z_en_ik.c | 45 +++----- src/overlays/actors/ovl_En_Ishi/z_en_ishi.c | 3 +- .../actors/ovl_En_Jsjutan/z_en_jsjutan.c | 6 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 12 +-- .../actors/ovl_En_Karebaba/z_en_karebaba.c | 15 +-- src/overlays/actors/ovl_En_Light/z_en_light.c | 3 +- .../actors/ovl_En_M_Thunder/z_en_m_thunder.c | 6 +- src/overlays/actors/ovl_En_Mm/z_en_mm.c | 2 +- src/overlays/actors/ovl_En_Niw/z_en_niw.c | 3 +- .../actors/ovl_En_Nutsball/z_en_nutsball.c | 2 +- src/overlays/actors/ovl_En_Nwc/z_en_nwc.c | 5 +- src/overlays/actors/ovl_En_Ny/z_en_ny.c | 9 +- src/overlays/actors/ovl_En_Okuta/z_en_okuta.c | 3 +- src/overlays/actors/ovl_En_Part/z_en_part.c | 3 +- .../actors/ovl_En_Peehat/z_en_peehat.c | 6 +- .../actors/ovl_En_Po_Desert/z_en_po_desert.c | 3 +- .../actors/ovl_En_Po_Field/z_en_po_field.c | 15 +-- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 3 +- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 9 +- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 15 +-- src/overlays/actors/ovl_En_Rr/z_en_rr.c | 3 +- src/overlays/actors/ovl_En_Sda/z_en_sda.c | 6 +- .../actors/ovl_En_Shopnuts/z_en_shopnuts.c | 3 +- .../actors/ovl_En_Siofuki/z_en_siofuki.c | 3 +- src/overlays/actors/ovl_En_Skj/z_en_skj.c | 3 +- .../actors/ovl_En_Skjneedle/z_en_skjneedle.c | 3 +- .../actors/ovl_En_Stream/z_en_stream.c | 3 +- .../ovl_En_Syateki_Niw/z_en_syateki_niw.c | 3 +- src/overlays/actors/ovl_En_Tana/z_en_tana.c | 6 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 3 +- src/overlays/actors/ovl_En_Tp/z_en_tp.c | 6 +- src/overlays/actors/ovl_En_Vali/z_en_vali.c | 15 +-- .../actors/ovl_En_Vb_Ball/z_en_vb_ball.c | 6 +- .../actors/ovl_En_Viewer/z_en_viewer.c | 6 +- src/overlays/actors/ovl_En_Vm/z_en_vm.c | 9 +- .../actors/ovl_En_Wallmas/z_en_wallmas.c | 4 +- .../actors/ovl_En_Wood02/z_en_wood02.c | 6 +- .../actors/ovl_En_Yukabyun/z_en_yukabyun.c | 3 +- src/overlays/actors/ovl_En_Zl2/z_en_zl2.c | 3 +- src/overlays/actors/ovl_En_Zo/z_en_zo.c | 9 +- .../actors/ovl_End_Title/z_end_title.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 78 +++++--------- .../actors/ovl_Item_B_Heart/z_item_b_heart.c | 6 +- .../actors/ovl_Item_Shield/z_item_shield.c | 3 +- .../actors/ovl_Magic_Dark/z_magic_dark.c | 9 +- .../actors/ovl_Magic_Fire/z_magic_fire.c | 3 +- src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c | 6 +- src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c | 3 +- .../actors/ovl_Obj_Dekujr/z_obj_dekujr.c | 6 +- .../actors/ovl_Obj_Hamishi/z_obj_hamishi.c | 3 +- .../actors/ovl_Obj_Hsblock/z_obj_hsblock.c | 3 +- .../actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c | 3 +- .../ovl_Obj_Lightswitch/z_obj_lightswitch.c | 18 ++-- .../actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c | 3 +- .../actors/ovl_Obj_Switch/z_obj_switch.c | 9 +- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.c | 6 +- .../ovl_Obj_Timeblock/z_obj_timeblock.c | 3 +- .../ovl_Obj_Warp2block/z_obj_warp2block.c | 3 +- .../ovl_Object_Kankyo/z_object_kankyo.c | 14 +-- .../actors/ovl_Oceff_Spot/z_oceff_spot.c | 3 +- .../actors/ovl_Oceff_Storm/z_oceff_storm.c | 3 +- .../actors/ovl_Oceff_Wipe/z_oceff_wipe.c | 3 +- .../actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c | 3 +- .../actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c | 3 +- .../actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c | 3 +- .../actors/ovl_player_actor/z_player.c | 6 +- .../ovl_Effect_Ss_Blast/z_eff_ss_blast.c | 3 +- .../ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c | 3 +- .../ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c | 3 +- .../ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c | 3 +- .../z_eff_ss_dt_bubble.c | 3 +- .../ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c | 3 +- .../ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c | 3 +- .../ovl_Effect_Ss_Extra/z_eff_ss_extra.c | 3 +- .../ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c | 3 +- .../z_eff_ss_fhg_flash.c | 6 +- .../z_eff_ss_fire_tail.c | 3 +- .../z_eff_ss_g_magma2.c | 3 +- .../ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c | 6 +- .../z_eff_ss_ice_piece.c | 3 +- .../z_eff_ss_ice_smoke.c | 2 +- .../ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c | 3 +- .../ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c | 6 +- .../ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c | 3 +- .../ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c | 3 +- .../ovl_Effect_Ss_Stick/z_eff_ss_stick.c | 3 +- .../ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c | 3 +- .../ovl_file_choose/z_file_choose.c | 12 +-- .../ovl_file_choose/z_file_nameset.c | 9 +- src/overlays/gamestates/ovl_title/z_title.c | 2 +- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 30 ++---- .../misc/ovl_kaleido_scope/z_lmap_mark.c | 3 +- tools/disasm/ntsc-1.2/functions.txt | 2 +- 268 files changed, 702 insertions(+), 1272 deletions(-) diff --git a/include/functions.h b/include/functions.h index 6e2dbe87e6..0072baf4b4 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1120,7 +1120,6 @@ void* SysCfb_GetFbEnd(void); void Math3D_DrawSphere(PlayState* play, Sphere16* sph); void Math3D_DrawCylinder(PlayState* play, Cylinder16* cyl); - u64* SysUcode_GetUCodeBoot(void); size_t SysUcode_GetUCodeBootSize(void); u64* SysUcode_GetUCode(void); diff --git a/include/macros.h b/include/macros.h index 913be31989..48bc94c8a5 100644 --- a/include/macros.h +++ b/include/macros.h @@ -203,6 +203,9 @@ #define HUNGUP_AND_CRASH(file, line) LogUtils_HungupThread(file, line) #endif +#define MATRIX_FINALIZE_AND_LOAD(pkt, gfxCtx, file, line) \ + gSPMatrix(pkt, MATRIX_FINALIZE(gfxCtx, file, line), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW) + #if OOT_NTSC #define LANGUAGE_ARRAY(jpn, eng, ger, fra) { jpn, eng } #else diff --git a/include/sys_matrix.h b/include/sys_matrix.h index 91a2285d77..daf3aa39ca 100644 --- a/include/sys_matrix.h +++ b/include/sys_matrix.h @@ -46,20 +46,20 @@ Mtx* Matrix_MtxFToMtx(MtxF* src, Mtx* dest); #if OOT_DEBUG Mtx* Matrix_ToMtx(Mtx* dest, const char* file, int line); -Mtx* Matrix_NewMtx(struct GraphicsContext* gfxCtx, const char* file, int line); +Mtx* Matrix_Finalize(struct GraphicsContext* gfxCtx, const char* file, int line); MtxF* Matrix_CheckFloats(MtxF* mf, const char* file, int line); #define MATRIX_TO_MTX(gfxCtx, file, line) Matrix_ToMtx(gfxCtx, file, line) -#define MATRIX_NEW(gfxCtx, file, line) Matrix_NewMtx(gfxCtx, file, line) +#define MATRIX_FINALIZE(gfxCtx, file, line) Matrix_Finalize(gfxCtx, file, line) #define MATRIX_CHECK_FLOATS(mtx, file, line) Matrix_CheckFloats(mtx, file, line) #else Mtx* Matrix_ToMtx(Mtx* dest); -Mtx* Matrix_NewMtx(struct GraphicsContext* gfxCtx); +Mtx* Matrix_Finalize(struct GraphicsContext* gfxCtx); #define MATRIX_TO_MTX(gfxCtx, file, line) Matrix_ToMtx(gfxCtx) -#define MATRIX_NEW(gfxCtx, file, line) Matrix_NewMtx(gfxCtx) +#define MATRIX_FINALIZE(gfxCtx, file, line) Matrix_Finalize(gfxCtx) #define MATRIX_CHECK_FLOATS(mtx, file, line) (mtx) #endif diff --git a/src/code/sys_matrix.c b/src/code/sys_matrix.c index 08fb315792..1a47079299 100644 --- a/src/code/sys_matrix.c +++ b/src/code/sys_matrix.c @@ -614,7 +614,7 @@ Mtx* Matrix_ToMtx(Mtx* dest, const char* file, int line) { return Matrix_MtxFToMtx(MATRIX_CHECK_FLOATS(sCurrentMatrix, file, line), dest); } -Mtx* Matrix_NewMtx(GraphicsContext* gfxCtx, const char* file, int line) { +Mtx* Matrix_Finalize(GraphicsContext* gfxCtx, const char* file, int line) { return Matrix_ToMtx(GRAPH_ALLOC(gfxCtx, sizeof(Mtx)), file, line); } @@ -624,7 +624,7 @@ Mtx* Matrix_ToMtx(Mtx* dest) { return Matrix_MtxFToMtx(sCurrentMatrix, dest); } -Mtx* Matrix_NewMtx(GraphicsContext* gfxCtx) { +Mtx* Matrix_Finalize(GraphicsContext* gfxCtx) { return Matrix_ToMtx(GRAPH_ALLOC(gfxCtx, sizeof(Mtx))); } diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 3469ee567c..273add47c5 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -71,7 +71,7 @@ void ActorShadow_Draw(Actor* actor, Lights* lights, PlayState* play, Gfx* dlist, temp2 = (1.0f - (temp1 * (1.0f / 350))) * actor->shape.shadowScale; Matrix_Scale(actor->scale.x * temp2, 1.0f, actor->scale.z * temp2, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 1588), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_actor.c", 1588); gSPDisplayList(POLY_OPA_DISP++, dlist); CLOSE_DISPS(play->state.gfxCtx, "../z_actor.c", 1594); @@ -109,7 +109,7 @@ void ActorShadow_DrawFoot(PlayState* play, Light* light, MtxF* arg2, s32 arg3, f Matrix_RotateY(sp58, MTXMODE_APPLY); Matrix_Scale(arg5, 1.0f, arg5 * arg6, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 1687), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_actor.c", 1687); gSPDisplayList(POLY_OPA_DISP++, gFootShadowDL); CLOSE_DISPS(play->state.gfxCtx, "../z_actor.c", 1693); @@ -414,8 +414,7 @@ void Attention_Draw(Attention* attention, PlayState* play) { Matrix_RotateZ(M_PI / 2, MTXMODE_APPLY); Matrix_Push(); Matrix_Translate(reticle->radius, reticle->radius, 0.0f, MTXMODE_APPLY); - gSPMatrix(OVERLAY_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 2116), - G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(OVERLAY_DISP++, play->state.gfxCtx, "../z_actor.c", 2116); gSPDisplayList(OVERLAY_DISP++, gLockOnReticleTriangleDL); Matrix_Pop(); } @@ -444,7 +443,7 @@ void Attention_Draw(Attention* attention, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, attentionColor->primary.r, attentionColor->primary.g, attentionColor->primary.b, 255); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 2153), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_actor.c", 2153); gSPDisplayList(POLY_XLU_DISP++, gLockOnArrowDL); } @@ -2188,15 +2187,13 @@ void Actor_DrawFaroresWindPointer(PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, 100, 200, 0, 255); Matrix_RotateZ(BINANG_TO_RAD_ALT2((play->gameplayFrames * 1500) & 0xFFFF), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 5458), - G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_actor.c", 5458); gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); Matrix_Pop(); Matrix_RotateZ(BINANG_TO_RAD_ALT2(~((play->gameplayFrames * 1200) & 0xFFFF)), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 5463), - G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_actor.c", 5463); gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); } @@ -3857,7 +3854,7 @@ void func_80033C30(Vec3f* arg0, Vec3f* arg1, u8 alpha, PlayState* play) { Matrix_Scale(arg1->x, 1.0f, arg1->z, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 8149), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_actor.c", 8149); gSPDisplayList(POLY_OPA_DISP++, gCircleShadowDL); CLOSE_DISPS(play->state.gfxCtx, "../z_actor.c", 8155); @@ -3949,8 +3946,7 @@ void Actor_DrawDoorLock(PlayState* play, s32 frame, s32 type) { Matrix_Scale(entry->chainsScale, entry->chainsScale, entry->chainsScale, MTXMODE_APPLY); } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 8299), - G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_actor.c", 8299); gSPDisplayList(POLY_OPA_DISP++, entry->chainDL); if (i % 2) { @@ -3966,7 +3962,7 @@ void Actor_DrawDoorLock(PlayState* play, s32 frame, s32 type) { Matrix_Put(&baseMtxF); Matrix_Scale(frame * 0.1f, frame * 0.1f, frame * 0.1f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_actor.c", 8314), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_actor.c", 8314); gSPDisplayList(POLY_OPA_DISP++, entry->lockDL); CLOSE_DISPS(play->state.gfxCtx, "../z_actor.c", 8319); diff --git a/src/code/z_cheap_proc.inc.c b/src/code/z_cheap_proc.inc.c index db646129f4..059f67c02b 100644 --- a/src/code/z_cheap_proc.inc.c +++ b/src/code/z_cheap_proc.inc.c @@ -4,7 +4,7 @@ void Gfx_DrawDListOpa(PlayState* play, Gfx* dlist) { OPEN_DISPS(play->state.gfxCtx, "../z_cheap_proc.c", 214); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_cheap_proc.c", 216), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_cheap_proc.c", 216); gSPDisplayList(POLY_OPA_DISP++, dlist); CLOSE_DISPS(play->state.gfxCtx, "../z_cheap_proc.c", 219); @@ -14,7 +14,7 @@ void Gfx_DrawDListXlu(PlayState* play, Gfx* dlist) { OPEN_DISPS(play->state.gfxCtx, "../z_cheap_proc.c", 228); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_cheap_proc.c", 230), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_cheap_proc.c", 230); gSPDisplayList(POLY_XLU_DISP++, dlist); CLOSE_DISPS(play->state.gfxCtx, "../z_cheap_proc.c", 233); diff --git a/src/code/z_debug_display.c b/src/code/z_debug_display.c index 41ac98f86f..d6b6e0aabc 100644 --- a/src/code/z_debug_display.c +++ b/src/code/z_debug_display.c @@ -81,8 +81,7 @@ void DebugDisplay_DrawSpriteI8(DebugDispObject* dispObj, void* texture, PlayStat gDPLoadTextureBlock(POLY_XLU_DISP++, texture, G_IM_FMT_I, G_IM_SIZ_8b, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_debug_display.c", 189), - G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_debug_display.c", 189); gSPDisplayList(POLY_XLU_DISP++, gDebugSpriteDL); CLOSE_DISPS(play->state.gfxCtx, "../z_debug_display.c", 192); @@ -100,8 +99,7 @@ void DebugDisplay_DrawPolygon(DebugDispObject* dispObj, void* dlist, PlayState* Matrix_SetTranslateRotateYXZ(dispObj->pos.x, dispObj->pos.y, dispObj->pos.z, &dispObj->rot); Matrix_Scale(dispObj->scale.x, dispObj->scale.y, dispObj->scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_debug_display.c", 228), - G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_debug_display.c", 228); gSPDisplayList(POLY_XLU_DISP++, dlist); CLOSE_DISPS(play->state.gfxCtx, "../z_debug_display.c", 231); diff --git a/src/code/z_draw.c b/src/code/z_draw.c index b4ecd2ffaf..89b49faf4a 100644 --- a/src/code/z_draw.c +++ b/src/code/z_draw.c @@ -385,7 +385,7 @@ void GetItem_DrawMaskOrBombchu(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 556); Gfx_SetupDL_26Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 560), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 560); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 565); @@ -397,7 +397,7 @@ void GetItem_DrawSoldOut(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 572); POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_5); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 576), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 576); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[0]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 581); @@ -409,7 +409,7 @@ void GetItem_DrawBlueFire(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 588); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 592), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 592); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); @@ -420,7 +420,7 @@ void GetItem_DrawBlueFire(PlayState* play, s16 drawId) { Matrix_Push(); Matrix_Translate(-8.0f, -2.0f, 0.0f, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 615), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 615); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]); Matrix_Pop(); @@ -433,11 +433,11 @@ void GetItem_DrawPoes(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 628); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 632), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 632); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 641), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 641); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0 * (play->state.frames * 0), @@ -445,7 +445,7 @@ void GetItem_DrawPoes(PlayState* play, s16 drawId) { 1 * -(play->state.frames * 6), 16, 32)); Matrix_Push(); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 656), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 656); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[3]); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[2]); Matrix_Pop(); @@ -459,11 +459,11 @@ void GetItem_DrawFairy(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 670); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 674), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 674); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 683), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 683); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0 * (play->state.frames * 0), @@ -471,7 +471,7 @@ void GetItem_DrawFairy(PlayState* play, s16 drawId) { 1 * -(play->state.frames * 6), 32, 32)); Matrix_Push(); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 698), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 698); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[2]); Matrix_Pop(); @@ -488,11 +488,11 @@ void GetItem_DrawMirrorShield(PlayState* play, s16 drawId) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0 * (play->state.frames * 0) % 256, 1 * (play->state.frames * 2) % 256, 64, 64, 1, 0 * (play->state.frames * 0) % 128, 1 * (play->state.frames * 1) % 128, 32, 32)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 723), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 723); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 730), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 730); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 735); @@ -504,7 +504,7 @@ void GetItem_DrawSkullToken(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 742); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 746), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 746); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); @@ -512,7 +512,7 @@ void GetItem_DrawSkullToken(PlayState* play, s16 drawId) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0 * (play->state.frames * 0), 1 * -(play->state.frames * 5), 32, 32, 1, 0 * (play->state.frames * 0), 0 * (play->state.frames * 0), 32, 64)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 760), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 760); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 765); @@ -524,7 +524,7 @@ void GetItem_DrawEggOrMedallion(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 772); Gfx_SetupDL_26Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 776), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 776); gSPDisplayList(POLY_OPA_DISP++, entry->dlists[0]); gSPDisplayList(POLY_OPA_DISP++, entry->dlists[1]); @@ -537,11 +537,11 @@ void GetItem_DrawCompass(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 811); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 815), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 815); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_5); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 822), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 822); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 827); @@ -557,14 +557,14 @@ void GetItem_DrawPotion(PlayState* play, s16 drawId) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, -1 * (play->state.frames * 1), 1 * (play->state.frames * 1), 32, 32, 1, -1 * (play->state.frames * 1), 1 * (play->state.frames * 1), 32, 32)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 845), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 845); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[1]); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[2]); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[3]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 855), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 855); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[4]); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[5]); @@ -581,7 +581,7 @@ void GetItem_DrawGoronSword(PlayState* play, s16 drawId) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 1 * (play->state.frames * 1), 0 * (play->state.frames * 1), 32, 32, 1, 0 * (play->state.frames * 1), 0 * (play->state.frames * 1), 32, 32)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 878), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 878); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 883); @@ -597,7 +597,7 @@ void GetItem_DrawDekuNuts(PlayState* play, s16 drawId) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 1 * (play->state.frames * 6), 1 * (play->state.frames * 6), 32, 32, 1, 1 * (play->state.frames * 6), 1 * (play->state.frames * 6), 32, 32)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 901), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 901); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 906); @@ -613,7 +613,7 @@ void GetItem_DrawRecoveryHeart(PlayState* play, s16 drawId) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0 * (play->state.frames * 1), 1 * -(play->state.frames * 3), 32, 32, 1, 0 * (play->state.frames * 1), 1 * -(play->state.frames * 2), 32, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 924), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 924); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[0]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 929); @@ -629,7 +629,7 @@ void GetItem_DrawFish(PlayState* play, s16 drawId) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0 * (play->state.frames * 0), 1 * (play->state.frames * 1), 32, 32, 1, 0 * (play->state.frames * 0), 1 * (play->state.frames * 1), 32, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 947), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 947); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[0]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 952); @@ -641,7 +641,7 @@ void GetItem_DrawOpa0(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 959); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 963), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 963); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 968); @@ -653,11 +653,11 @@ void GetItem_DrawOpa0Xlu1(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 975); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 979), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 979); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 986), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 986); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 991); @@ -669,7 +669,7 @@ void GetItem_DrawXlu01(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 998); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1002), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 1002); gSPDisplayList(POLY_XLU_DISP++, entry->dlists[0]); gSPDisplayList(POLY_XLU_DISP++, entry->dlists[1]); @@ -682,12 +682,12 @@ void GetItem_DrawOpa10Xlu2(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 1015); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1019), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 1019); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[1]); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1027), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 1027); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[2]); CLOSE_DISPS(play->state.gfxCtx, "../z_draw.c", 1032); @@ -699,11 +699,11 @@ void GetItem_DrawMagicArrow(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 1039); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1043), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 1043); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1050), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 1050); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[2]); @@ -720,7 +720,7 @@ void GetItem_DrawMagicSpell(PlayState* play, s16 drawId) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 1 * (play->state.frames * 2), 1 * -(play->state.frames * 6), 32, 32, 1, 1 * (play->state.frames * 1), -1 * (play->state.frames * 2), 32, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1074), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 1074); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[0]); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[2]); @@ -734,7 +734,7 @@ void GetItem_DrawOpa1023(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 1088); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1092), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 1092); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[1]); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[2]); @@ -749,12 +749,12 @@ void GetItem_DrawOpa10Xlu32(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 1108); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1112), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 1112); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[1]); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1120), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 1120); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[3]); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[2]); @@ -769,12 +769,12 @@ void GetItem_DrawSmallRupee(PlayState* play, s16 drawId) { Matrix_Scale(0.7f, 0.7f, 0.7f, MTXMODE_APPLY); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1140), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 1140); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[1]); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1148), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 1148); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[3]); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[2]); @@ -791,7 +791,7 @@ void GetItem_DrawScale(PlayState* play, s16 drawId) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 1 * (play->state.frames * 2), -1 * (play->state.frames * 2), 64, 64, 1, 1 * (play->state.frames * 4), 1 * -(play->state.frames * 4), 32, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1173), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 1173); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[2]); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[3]); gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]); @@ -806,12 +806,12 @@ void GetItem_DrawBulletBag(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 1188); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1192), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 1192); gSPDisplayList(POLY_OPA_DISP++, entry->dlists[1]); gSPDisplayList(POLY_OPA_DISP++, entry->dlists[0]); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1200), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_draw.c", 1200); gSPDisplayList(POLY_XLU_DISP++, entry->dlists[2]); gSPDisplayList(POLY_XLU_DISP++, entry->dlists[3]); gSPDisplayList(POLY_XLU_DISP++, entry->dlists[4]); @@ -825,7 +825,7 @@ void GetItem_DrawWallet(PlayState* play, s16 drawId) { OPEN_DISPS(play->state.gfxCtx, "../z_draw.c", 1214); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_draw.c", 1218), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_draw.c", 1218); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[1]); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[0]); gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].dlists[2]); diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index b6b513ce65..f99d4714cb 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -353,7 +353,7 @@ void EnAObj_Draw(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 1, 60, 60, 60, 50); } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_a_keep.c", 712), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_a_keep.c", 712); gSPDisplayList(POLY_OPA_DISP++, sDLists[type]); CLOSE_DISPS(play->state.gfxCtx, "../z_en_a_keep.c", 715); diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index 2e3150ec0f..94cd617756 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -831,7 +831,7 @@ void EnItem00_DrawRupee(EnItem00* this, PlayState* play) { texIndex = this->actor.params - 0x10; } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_item00.c", 1562), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_item00.c", 1562); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sRupeeTex[texIndex])); @@ -860,7 +860,7 @@ void EnItem00_DrawCollectible(EnItem00* this, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sItemDropTex[texIndex])); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_item00.c", 1607), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_item00.c", 1607); gSPDisplayList(POLY_OPA_DISP++, gItemDropDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_item00.c", 1611); @@ -876,12 +876,12 @@ void EnItem00_DrawHeartContainer(EnItem00* this, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); func_8002EBCC(&this->actor, play, 0); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_item00.c", 1634), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_item00.c", 1634); gSPDisplayList(POLY_OPA_DISP++, gHeartPieceExteriorDL); Gfx_SetupDL_25Xlu(play->state.gfxCtx); func_8002ED80(&this->actor, play, 0); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_item00.c", 1644), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_item00.c", 1644); gSPDisplayList(POLY_XLU_DISP++, gHeartContainerInteriorDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_item00.c", 1647); @@ -897,7 +897,7 @@ void EnItem00_DrawHeartPiece(EnItem00* this, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); func_8002ED80(&this->actor, play, 0); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_item00.c", 1670), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_item00.c", 1670); gSPDisplayList(POLY_XLU_DISP++, gHeartPieceInteriorDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_item00.c", 1673); diff --git a/src/code/z_fbdemo_circle.c b/src/code/z_fbdemo_circle.c index 06f4d9ce3b..59f019e952 100644 --- a/src/code/z_fbdemo_circle.c +++ b/src/code/z_fbdemo_circle.c @@ -159,13 +159,13 @@ void TransitionCircle_Draw(void* thisx, Gfx** gfxP) { gSPSegment(gfx++, 8, this->texture); gDPSetColor(gfx++, G_SETPRIMCOLOR, this->color.rgba); gDPSetColor(gfx++, G_SETENVCOLOR, this->color.rgba); - gSPMatrix(gfx++, &this->projection, G_MTX_PROJECTION | G_MTX_LOAD); + gSPMatrix(gfx++, &this->projection, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); gSPPerspNormalize(gfx++, this->normal); - gSPMatrix(gfx++, &this->lookAt, G_MTX_PROJECTION | G_MTX_NOPUSH | G_MTX_MUL); + gSPMatrix(gfx++, &this->lookAt, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); if (scale != 1.0f) { guScale(&modelView[0], scale, scale, 1.0f); - gSPMatrix(gfx++, &modelView[0], G_MTX_LOAD); + gSPMatrix(gfx++, &modelView[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } if (rot != 0.0f) { diff --git a/src/code/z_fbdemo_triforce.c b/src/code/z_fbdemo_triforce.c index b131d209d9..7bb8862b2d 100644 --- a/src/code/z_fbdemo_triforce.c +++ b/src/code/z_fbdemo_triforce.c @@ -88,10 +88,10 @@ void TransitionTriforce_Draw(void* thisx, Gfx** gfxP) { gSPDisplayList(gfx++, sTransTriforceDL); gDPSetColor(gfx++, G_SETPRIMCOLOR, this->color.rgba); gDPSetCombineMode(gfx++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - gSPMatrix(gfx++, &this->projection, G_MTX_LOAD | G_MTX_PROJECTION); - gSPMatrix(gfx++, &modelView[0], G_MTX_LOAD); - gSPMatrix(gfx++, &modelView[1], G_MTX_NOPUSH | G_MTX_MODELVIEW | G_MTX_MUL); - gSPMatrix(gfx++, &modelView[2], G_MTX_NOPUSH | G_MTX_MODELVIEW | G_MTX_MUL); + gSPMatrix(gfx++, &this->projection, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); + gSPMatrix(gfx++, &modelView[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(gfx++, &modelView[1], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPMatrix(gfx++, &modelView[2], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPVertex(gfx++, sTransTriforceVtx, 10, 0); if (!TransitionTriforce_IsDone(this)) { diff --git a/src/code/z_fbdemo_wipe1.c b/src/code/z_fbdemo_wipe1.c index ba7635b231..e008f68613 100644 --- a/src/code/z_fbdemo_wipe1.c +++ b/src/code/z_fbdemo_wipe1.c @@ -107,9 +107,9 @@ void TransitionWipe_Draw(void* thisx, Gfx** gfxP) { color = &this->color; gDPSetPrimColor(gfx++, 0, 0x80, color->r, color->g, color->b, 255); - gSPMatrix(gfx++, &this->projection, G_MTX_LOAD | G_MTX_PROJECTION); + gSPMatrix(gfx++, &this->projection, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); gSPPerspNormalize(gfx++, this->normal); - gSPMatrix(gfx++, &this->lookAt, G_MTX_MUL | G_MTX_PROJECTION); + gSPMatrix(gfx++, &this->lookAt, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); gSPMatrix(gfx++, &modelView[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(gfx++, &modelView[1], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPMatrix(gfx++, &modelView[2], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); diff --git a/src/code/z_fcurve_data_skelanime.c b/src/code/z_fcurve_data_skelanime.c index 600db19796..1086adb2ec 100644 --- a/src/code/z_fcurve_data_skelanime.c +++ b/src/code/z_fcurve_data_skelanime.c @@ -192,8 +192,7 @@ void SkelCurve_DrawLimb(PlayState* play, s32 limbIndex, SkelCurve* skelCurve, Ov dList = limb->dList[0]; if (dList != NULL) { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fcurve_data_skelanime.c", 321), - G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fcurve_data_skelanime.c", 321); gSPDisplayList(POLY_OPA_DISP++, dList); } } else if (lod == 1) { @@ -201,14 +200,12 @@ void SkelCurve_DrawLimb(PlayState* play, s32 limbIndex, SkelCurve* skelCurve, Ov dList = limb->dList[0]; if (dList != NULL) { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fcurve_data_skelanime.c", 332), - G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fcurve_data_skelanime.c", 332); gSPDisplayList(POLY_OPA_DISP++, dList); } dList = limb->dList[1]; if (dList != NULL) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fcurve_data_skelanime.c", 338), - G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fcurve_data_skelanime.c", 338); gSPDisplayList(POLY_XLU_DISP++, dList); } } else { diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 6a8026cdb9..ea27b5edc4 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -1443,7 +1443,7 @@ void Environment_DrawSunAndMoon(PlayState* play) { scale = (color * 2.0f) + 10.0f; Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_kankyo.c", 2364), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_kankyo.c", 2364); Gfx_SetupDL_54Opa(play->state.gfxCtx); gSPDisplayList(POLY_OPA_DISP++, gSunDL); @@ -1462,7 +1462,7 @@ void Environment_DrawSunAndMoon(PlayState* play) { alpha = temp * 255.0f; if (alpha > 0.0f) { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_kankyo.c", 2406), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_kankyo.c", 2406); Gfx_SetupDL_51Opa(play->state.gfxCtx); gDPPipeSync(POLY_OPA_DISP++); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 240, 255, 180, alpha); @@ -1636,8 +1636,7 @@ void Environment_DrawLensFlare(PlayState* play, EnvironmentContext* envCtx, View POLY_XLU_DISP = func_800947AC(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, lensFlareColors[i].r, lensFlareColors[i].g, lensFlareColors[i].b, alpha * envCtx->lensFlareAlphaScale); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_kankyo.c", 2662), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_kankyo.c", 2662); gDPSetCombineLERP(POLY_XLU_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0); gDPSetAlphaDither(POLY_XLU_DISP++, G_AD_DISABLE); @@ -1770,8 +1769,7 @@ void Environment_DrawRain(PlayState* play, View* view, GraphicsContext* gfxCtx) Matrix_RotateY(-rotY, MTXMODE_APPLY); Matrix_RotateX(M_PI / 2 - rotX, MTXMODE_APPLY); Matrix_Scale(0.4f, 1.2f, 0.4f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_kankyo.c", 2887), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_kankyo.c", 2887); gSPDisplayList(POLY_XLU_DISP++, gRaindropDL); } @@ -1797,8 +1795,7 @@ void Environment_DrawRain(PlayState* play, View* view, GraphicsContext* gfxCtx) Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY); } - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_kankyo.c", 2940), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_kankyo.c", 2940); gSPDisplayList(POLY_XLU_DISP++, gEffShockwaveDL); } } @@ -2041,8 +2038,7 @@ void Environment_DrawLightning(PlayState* play, s32 unused) { Matrix_Scale(22.0f, 100.0f, 22.0f, MTXMODE_APPLY); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 128); gDPSetEnvColor(POLY_XLU_DISP++, 0, 255, 255, 128); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_kankyo.c", 3333), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_kankyo.c", 3333); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(lightningTextures[sLightningBolts[i].textureIndex])); Gfx_SetupDL_61Xlu(play->state.gfxCtx); gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); diff --git a/src/code/z_lifemeter.c b/src/code/z_lifemeter.c index 6f3617d240..efe7b92b83 100644 --- a/src/code/z_lifemeter.c +++ b/src/code/z_lifemeter.c @@ -479,7 +479,7 @@ void Health_DrawMeter(PlayState* play) { Matrix_SetTranslateScaleMtx2( matrix, 1.0f - (0.32f * beatingHeartPulsingSize), 1.0f - (0.32f * beatingHeartPulsingSize), 1.0f - (0.32f * beatingHeartPulsingSize), -130.0f + offsetX, 94.5f - offsetY, 0.0f); - gSPMatrix(OVERLAY_DISP++, matrix, G_MTX_MODELVIEW | G_MTX_LOAD); + gSPMatrix(OVERLAY_DISP++, matrix, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPVertex(OVERLAY_DISP++, beatingHeartVtx, 4, 0); gSP1Quadrangle(OVERLAY_DISP++, 0, 2, 3, 1, 0); } diff --git a/src/code/z_lights.c b/src/code/z_lights.c index e9af22cd5c..1d04a59a81 100644 --- a/src/code/z_lights.c +++ b/src/code/z_lights.c @@ -379,8 +379,7 @@ void Lights_DrawGlow(PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, params->color[0], params->color[1], params->color[2], 50); Matrix_Translate(params->x, params->y, params->z, MTXMODE_NEW); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_lights.c", 918), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_lights.c", 918); gSPDisplayList(POLY_XLU_DISP++, gGlowCircleDL); } } diff --git a/src/code/z_map_exp.c b/src/code/z_map_exp.c index cf37a91646..ee72c9a501 100644 --- a/src/code/z_map_exp.c +++ b/src/code/z_map_exp.c @@ -371,8 +371,7 @@ void Minimap_DrawCompassIcons(PlayState* play) { Matrix_RotateX(-1.6f, MTXMODE_APPLY); tempX = (0x7FFF - player->actor.shape.rot.y) / 0x400; Matrix_RotateY(tempX / 10.0f, MTXMODE_APPLY); - gSPMatrix(OVERLAY_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_map_exp.c", 585), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(OVERLAY_DISP++, play->state.gfxCtx, "../z_map_exp.c", 585); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 200, 255, 0, 255); gSPDisplayList(OVERLAY_DISP++, gCompassArrowDL); @@ -385,8 +384,7 @@ void Minimap_DrawCompassIcons(PlayState* play) { Matrix_Scale(VREG(9) / 100.0f, VREG(9) / 100.0f, VREG(9) / 100.0f, MTXMODE_APPLY); Matrix_RotateX(VREG(52) / 10.0f, MTXMODE_APPLY); Matrix_RotateY(sPlayerInitialDirection / 10.0f, MTXMODE_APPLY); - gSPMatrix(OVERLAY_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_map_exp.c", 603), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(OVERLAY_DISP++, play->state.gfxCtx, "../z_map_exp.c", 603); gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, 200, 0, 0, 255); gSPDisplayList(OVERLAY_DISP++, gCompassArrowDL); diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 9cae1b69ee..1a2bb99242 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -3005,7 +3005,7 @@ void Interface_DrawActionButton(PlayState* play) { Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); Matrix_RotateX(interfaceCtx->unk_1F4 / 10000.0f, MTXMODE_APPLY); - gSPMatrix(OVERLAY_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_parameter.c", 3177), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(OVERLAY_DISP++, play->state.gfxCtx, "../z_parameter.c", 3177); gSPVertex(OVERLAY_DISP++, &interfaceCtx->actionVtx[0], 4, 0); gDPLoadTextureBlock(OVERLAY_DISP++, gButtonBackgroundTex, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, @@ -3372,8 +3372,7 @@ void Interface_Draw(PlayState* play) { Matrix_Translate(0.0f, 0.0f, R_A_LABEL_Z(gSaveContext.language) / 10.0f, MTXMODE_NEW); Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); Matrix_RotateX(interfaceCtx->unk_1F4 / 10000.0f, MTXMODE_APPLY); - gSPMatrix(OVERLAY_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_parameter.c", 3701), - G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(OVERLAY_DISP++, play->state.gfxCtx, "../z_parameter.c", 3701); gSPVertex(OVERLAY_DISP++, &interfaceCtx->actionVtx[4], 4, 0); if ((interfaceCtx->unk_1EC < 2) || (interfaceCtx->unk_1EC == 3)) { @@ -3391,7 +3390,7 @@ void Interface_Draw(PlayState* play) { gSPSegment(OVERLAY_DISP++, 0x08, pauseCtx->iconItemSegment); Gfx_SetupDL_42Overlay(play->state.gfxCtx); gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATERGBA_PRIM, G_CC_MODULATERGBA_PRIM); - gSPMatrix(OVERLAY_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD); + gSPMatrix(OVERLAY_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); // PAUSE_QUAD_CURSOR_4 pauseCtx->cursorVtx[16].v.ob[0] = pauseCtx->cursorVtx[18].v.ob[0] = pauseCtx->equipAnimX / 10; diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index a3fa204ec4..b5a9a72c1a 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -1438,8 +1438,7 @@ void Player_DrawHookshotReticle(PlayState* play, Player* this, f32 arg2) { Matrix_Translate(sp74.x, sp74.y, sp74.z, MTXMODE_NEW); Matrix_Scale(sp60, sp60, sp60, MTXMODE_APPLY); - gSPMatrix(OVERLAY_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_player_lib.c", 2587), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(OVERLAY_DISP++, play->state.gfxCtx, "../z_player_lib.c", 2587); gSPSegment(OVERLAY_DISP++, 0x06, play->objectCtx.slots[this->actor.objectSlot].segment); gSPDisplayList(OVERLAY_DISP++, gLinkAdultHookshotReticleDL); @@ -1509,8 +1508,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve Matrix_RotateZYX(-0x8000, 0, 0x4000, MTXMODE_APPLY); Matrix_Scale(1.0f, this->unk_85C, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_player_lib.c", 2653), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_player_lib.c", 2653); gSPDisplayList(POLY_OPA_DISP++, gLinkChildLinkDekuStickDL); CLOSE_DISPS(play->state.gfxCtx, "../z_player_lib.c", 2656); @@ -1535,8 +1533,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve OPEN_DISPS(play->state.gfxCtx, "../z_player_lib.c", 2710); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_player_lib.c", 2712), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_player_lib.c", 2712); gDPSetEnvColor(POLY_XLU_DISP++, bottleColor->r, bottleColor->g, bottleColor->b, 0); gSPDisplayList(POLY_XLU_DISP++, sBottleDLists[((void)0, gSaveContext.save.linkAge)]); @@ -1614,8 +1611,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve Matrix_RotateZ(this->unk_858 * -0.2f, MTXMODE_APPLY); } - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_player_lib.c", 2804), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_player_lib.c", 2804); gSPDisplayList(POLY_XLU_DISP++, stringData->dList); Matrix_Pop(); diff --git a/src/code/z_room.c b/src/code/z_room.c index e0906de17e..a9fa462fda 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -46,14 +46,14 @@ void Room_DrawNormal(PlayState* play, Room* room, u32 flags) { func_800342EC(&D_801270A0, play); gSPSegment(POLY_OPA_DISP++, 0x03, room->segment); func_80093C80(play); - gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD); + gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } if (flags & ROOM_DRAW_XLU) { func_8003435C(&D_801270A0, play); gSPSegment(POLY_XLU_DISP++, 0x03, room->segment); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD); + gSPMatrix(POLY_XLU_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } roomShape = &room->roomShape->normal; @@ -120,7 +120,7 @@ void Room_DrawCullable(PlayState* play, Room* room, u32 flags) { func_800342EC(&D_801270A0, play); gSPSegment(POLY_OPA_DISP++, 0x03, room->segment); func_80093C80(play); - gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD); + gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } if (1) {} @@ -129,7 +129,7 @@ void Room_DrawCullable(PlayState* play, Room* room, u32 flags) { func_8003435C(&D_801270A0, play); gSPSegment(POLY_XLU_DISP++, 0x03, room->segment); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD); + gSPMatrix(POLY_XLU_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } roomShape = &room->roomShape->cullable; @@ -380,7 +380,7 @@ void Room_DrawImageSingle(PlayState* play, Room* room, u32 flags) { if (drawOpa) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD); + gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, entry->opa); } @@ -408,7 +408,7 @@ void Room_DrawImageSingle(PlayState* play, Room* room, u32 flags) { if (drawXlu) { gSPSegment(POLY_XLU_DISP++, 0x03, room->segment); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD); + gSPMatrix(POLY_XLU_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, entry->xlu); } @@ -485,7 +485,7 @@ void Room_DrawImageMulti(PlayState* play, Room* room, u32 flags) { if (drawOpa) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD); + gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, dListsEntry->opa); } @@ -513,7 +513,7 @@ void Room_DrawImageMulti(PlayState* play, Room* room, u32 flags) { if (drawXlu) { gSPSegment(POLY_XLU_DISP++, 0x03, room->segment); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD); + gSPMatrix(POLY_XLU_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, dListsEntry->xlu); } diff --git a/src/code/z_sample.c b/src/code/z_sample.c index d2469cf404..541771432b 100644 --- a/src/code/z_sample.c +++ b/src/code/z_sample.c @@ -25,7 +25,7 @@ void Sample_Draw(SampleState* this) { Mtx* mtx = GRAPH_ALLOC(gfxCtx, sizeof(Mtx)); guPosition(mtx, SREG(37), SREG(38), SREG(39), 1.0f, SREG(40), SREG(41), SREG(42)); - gSPMatrix(POLY_OPA_DISP++, mtx, G_MTX_LOAD); + gSPMatrix(POLY_OPA_DISP++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } POLY_OPA_DISP = Gfx_SetFog2(POLY_OPA_DISP, 255, 255, 255, 0, 0, 0); diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c index a2fc170e8e..2a7082b783 100644 --- a/src/code/z_scene_table.c +++ b/src/code/z_scene_table.c @@ -1633,7 +1633,7 @@ void Scene_DrawConfigJabuJabu(PlayState* play) { Matrix_Scale(1.005f, sinf(D_8012A398) * 0.8f, 1.005f, MTXMODE_NEW); } - gSPSegment(POLY_OPA_DISP++, 0x0D, MATRIX_NEW(play->state.gfxCtx, "../z_scene_table.c", 7809)); + gSPSegment(POLY_OPA_DISP++, 0x0D, MATRIX_FINALIZE(play->state.gfxCtx, "../z_scene_table.c", 7809)); CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7811); } diff --git a/src/code/z_skelanime.c b/src/code/z_skelanime.c index 5d6d65f300..f8929d6cd4 100644 --- a/src/code/z_skelanime.c +++ b/src/code/z_skelanime.c @@ -36,7 +36,7 @@ void SkelAnime_DrawLimbLod(PlayState* play, s32 limbIndex, void** skeleton, Vec3 if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, limbIndex, &dList, &pos, &rot, arg)) { Matrix_TranslateRotateZYX(&pos, &rot); if (dList != NULL) { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_skelanime.c", 805), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_skelanime.c", 805); gSPDisplayList(POLY_OPA_DISP++, dList); } } @@ -92,7 +92,7 @@ void SkelAnime_DrawLod(PlayState* play, void** skeleton, Vec3s* jointTable, Over if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, 1, &dList, &pos, &rot, arg)) { Matrix_TranslateRotateZYX(&pos, &rot); if (dList != NULL) { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_skelanime.c", 881), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_skelanime.c", 881); gSPDisplayList(POLY_OPA_DISP++, dList); } } @@ -141,7 +141,7 @@ void SkelAnime_DrawFlexLimbLod(PlayState* play, s32 limbIndex, void** skeleton, MATRIX_TO_MTX(*mtx, "../z_skelanime.c", 945); { OPEN_DISPS(play->state.gfxCtx, "../z_skelanime.c", 946); - gSPMatrix(POLY_OPA_DISP++, *mtx, G_MTX_LOAD); + gSPMatrix(POLY_OPA_DISP++, *mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, newDList); CLOSE_DISPS(play->state.gfxCtx, "../z_skelanime.c", 949); } @@ -208,7 +208,7 @@ void SkelAnime_DrawFlexLod(PlayState* play, void** skeleton, Vec3s* jointTable, Matrix_TranslateRotateZYX(&pos, &rot); if (newDList != NULL) { MATRIX_TO_MTX(mtx, "../z_skelanime.c", 1033); - gSPMatrix(POLY_OPA_DISP++, mtx, G_MTX_LOAD); + gSPMatrix(POLY_OPA_DISP++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, newDList); mtx++; } else if (limbDList != NULL) { @@ -254,7 +254,7 @@ void SkelAnime_DrawLimbOpa(PlayState* play, s32 limbIndex, void** skeleton, Vec3 if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, limbIndex, &dList, &pos, &rot, arg)) { Matrix_TranslateRotateZYX(&pos, &rot); if (dList != NULL) { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_skelanime.c", 1103), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_skelanime.c", 1103); gSPDisplayList(POLY_OPA_DISP++, dList); } } @@ -308,7 +308,7 @@ void SkelAnime_DrawOpa(PlayState* play, void** skeleton, Vec3s* jointTable, Over if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, 1, &dList, &pos, &rot, arg)) { Matrix_TranslateRotateZYX(&pos, &rot); if (dList != NULL) { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_skelanime.c", 1176), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_skelanime.c", 1176); gSPDisplayList(POLY_OPA_DISP++, dList); } } @@ -356,7 +356,7 @@ void SkelAnime_DrawFlexLimbOpa(PlayState* play, s32 limbIndex, void** skeleton, Matrix_TranslateRotateZYX(&pos, &rot); if (newDList != NULL) { MATRIX_TO_MTX(*limbMatrices, "../z_skelanime.c", 1242); - gSPMatrix(POLY_OPA_DISP++, *limbMatrices, G_MTX_LOAD); + gSPMatrix(POLY_OPA_DISP++, *limbMatrices, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, newDList); (*limbMatrices)++; } else if (limbDList != NULL) { @@ -426,7 +426,7 @@ void SkelAnime_DrawFlexOpa(PlayState* play, void** skeleton, Vec3s* jointTable, Matrix_TranslateRotateZYX(&pos, &rot); if (newDList != NULL) { MATRIX_TO_MTX(mtx, "../z_skelanime.c", 1327); - gSPMatrix(POLY_OPA_DISP++, mtx, G_MTX_LOAD); + gSPMatrix(POLY_OPA_DISP++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, newDList); mtx++; } else if (limbDList != NULL) { @@ -519,7 +519,7 @@ Gfx* SkelAnime_DrawLimb(PlayState* play, s32 limbIndex, void** skeleton, Vec3s* if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, limbIndex, &dList, &pos, &rot, arg, &gfx)) { Matrix_TranslateRotateZYX(&pos, &rot); if (dList != NULL) { - gSPMatrix(gfx++, MATRIX_NEW(play->state.gfxCtx, "../z_skelanime.c", 1489), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(gfx++, play->state.gfxCtx, "../z_skelanime.c", 1489); gSPDisplayList(gfx++, dList); } } @@ -574,7 +574,7 @@ Gfx* SkelAnime_Draw(PlayState* play, void** skeleton, Vec3s* jointTable, Overrid if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, 1, &dList, &pos, &rot, arg, &gfx)) { Matrix_TranslateRotateZYX(&pos, &rot); if (dList != NULL) { - gSPMatrix(gfx++, MATRIX_NEW(play->state.gfxCtx, "../z_skelanime.c", 1558), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(gfx++, play->state.gfxCtx, "../z_skelanime.c", 1558); gSPDisplayList(gfx++, dList); } } @@ -619,7 +619,7 @@ Gfx* SkelAnime_DrawFlexLimb(PlayState* play, s32 limbIndex, void** skeleton, Vec Matrix_TranslateRotateZYX(&pos, &rot); if (newDList != NULL) { MATRIX_TO_MTX(*mtx, "../z_skelanime.c", 1623); - gSPMatrix(gfx++, *mtx, G_MTX_LOAD); + gSPMatrix(gfx++, *mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gfx++, newDList); (*mtx)++; } else if (limbDList != NULL) { @@ -683,7 +683,7 @@ Gfx* SkelAnime_DrawFlex(PlayState* play, void** skeleton, Vec3s* jointTable, s32 Matrix_TranslateRotateZYX(&pos, &rot); if (newDList != NULL) { MATRIX_TO_MTX(mtx, "../z_skelanime.c", 1710); - gSPMatrix(gfx++, mtx, G_MTX_LOAD); + gSPMatrix(gfx++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gfx++, newDList); mtx++; } else if (limbDList != NULL) { diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index a2d9d98149..0156456874 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -328,8 +328,7 @@ void ArmsHook_Draw(Actor* thisx, PlayState* play) { func_80090480(play, &this->collider, &this->hookInfo, &hookNewTip, &hookNewBase); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_arms_hook.c", 895), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_arms_hook.c", 895); gSPDisplayList(POLY_OPA_DISP++, gLinkAdultHookshotTipDL); Matrix_Translate(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, MTXMODE_NEW); Math_Vec3f_Diff(&player->unk_3C8, &this->actor.world.pos, &sp78); @@ -338,8 +337,7 @@ void ArmsHook_Draw(Actor* thisx, PlayState* play) { Matrix_RotateY(Math_FAtan2F(sp78.x, sp78.z), MTXMODE_APPLY); Matrix_RotateX(Math_FAtan2F(-sp78.y, sp5C), MTXMODE_APPLY); Matrix_Scale(0.015f, 0.015f, sqrtf(SQ(sp78.y) + sp58) * 0.01f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_arms_hook.c", 910), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_arms_hook.c", 910); gSPDisplayList(POLY_OPA_DISP++, gLinkAdultHookshotChainDL); CLOSE_DISPS(play->state.gfxCtx, "../z_arms_hook.c", 913); diff --git a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c index 2cecc071cf..d75efab0c9 100644 --- a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c +++ b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c @@ -241,8 +241,7 @@ void ArrowFire_Draw(Actor* thisx, PlayState* play2) { } Matrix_Scale(this->radius * 0.2f, this->unk_158 * 4.0f, this->radius * 0.2f, MTXMODE_APPLY); Matrix_Translate(0.0f, -700.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_arrow_fire.c", 666), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_arrow_fire.c", 666); gSPDisplayList(POLY_XLU_DISP++, sMaterialDL); gSPDisplayList(POLY_XLU_DISP++, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 255 - (stateFrames * 2) % 256, 0, 64, 32, 1, diff --git a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c index e75e5f288a..010a110a13 100644 --- a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c +++ b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c @@ -239,8 +239,7 @@ void ArrowIce_Draw(Actor* thisx, PlayState* play) { } Matrix_Scale(this->radius * 0.2f, this->unk_160 * 3.0f, this->radius * 0.2f, MTXMODE_APPLY); Matrix_Translate(0.0f, -700.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_arrow_ice.c", 660), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_arrow_ice.c", 660); gSPDisplayList(POLY_XLU_DISP++, sMaterialDL); gSPDisplayList(POLY_XLU_DISP++, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 511 - (stateFrames * 5) % 512, 0, 128, 32, 1, diff --git a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c index c330c0aa5c..9a0691649b 100644 --- a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c +++ b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c @@ -237,8 +237,7 @@ void ArrowLight_Draw(Actor* thisx, PlayState* play) { } Matrix_Scale(this->radius * 0.2f, this->unk_160 * 4.0f, this->radius * 0.2f, MTXMODE_APPLY); Matrix_Translate(0.0f, -700.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_arrow_light.c", 648), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_arrow_light.c", 648); gSPDisplayList(POLY_XLU_DISP++, sMaterialDL); gSPDisplayList(POLY_XLU_DISP++, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 511 - (stateFrames * 5) % 512, 0, 4, 32, 1, diff --git a/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c b/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c index 1278f8c569..fa3de785f4 100644 --- a/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c +++ b/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c @@ -207,8 +207,7 @@ void BgBowlWall_Draw(Actor* thisx, PlayState* play2) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x8, Gfx_TexScroll(play->state.gfxCtx, 0, -2 * (frames = play->state.frames), 16, 16)); gDPPipeSync(POLY_OPA_DISP++); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_bowl_wall.c", 453), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_bowl_wall.c", 453); if (this->dyna.actor.params == 0) { gSPDisplayList(POLY_OPA_DISP++, gBowlingRound1WallDL); diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c index cbb95c608c..fc012fa459 100644 --- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c +++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c @@ -297,8 +297,7 @@ void BgBreakwall_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_breakwall.c", 767); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_breakwall.c", 771), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_breakwall.c", 771); gSPDisplayList(POLY_OPA_DISP++, this->bombableWallDList); if (this->colType >= 0) { diff --git a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c index 0c1b1b564e..b97a063646 100644 --- a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c +++ b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c @@ -314,8 +314,7 @@ void BgDodoago_Draw(Actor* thisx, PlayState* play) { if (Flags_GetEventChkInf(EVENTCHKINF_B0)) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_dodoago.c", 677), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_dodoago.c", 677); gSPDisplayList(POLY_OPA_DISP++, gDodongoLowerJawDL); } diff --git a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c index 9e79bf7ac9..e9f6bec20e 100644 --- a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c +++ b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c @@ -1029,8 +1029,7 @@ void BgDyYoseizo_DrawEffects(BgDyYoseizo* this, PlayState* play) { Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); Matrix_RotateZ(effect->roll, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_bg_dy_yoseizo.c", 1810), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_bg_dy_yoseizo.c", 1810); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGreatFairyParticleModelDL)); } } diff --git a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c index 9fa132e0f8..edfb09d522 100644 --- a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c +++ b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c @@ -297,8 +297,7 @@ void BgGanonOtyuka_Draw(Actor* thisx, PlayState* play) { phi_s1 = sPlatformTopDL; } } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_ganon_otyuka.c", 766), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_ganon_otyuka.c", 766); gSPDisplayList(POLY_OPA_DISP++, phi_s2); if (phi_s1 != NULL) { @@ -310,8 +309,7 @@ void BgGanonOtyuka_Draw(Actor* thisx, PlayState* play) { Matrix_Push(); Matrix_Translate(sSideCenters[i].x, 0.0f, sSideCenters[i].z, MTXMODE_APPLY); Matrix_RotateY(sSideAngles[i], MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_ganon_otyuka.c", 785), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_ganon_otyuka.c", 785); gSPDisplayList(POLY_OPA_DISP++, sPlatformSideDL); Matrix_Pop(); } @@ -345,8 +343,7 @@ void BgGanonOtyuka_Draw(Actor* thisx, PlayState* play) { Matrix_Translate(sSideCenters[i].x, 0.0f, sSideCenters[i].z, MTXMODE_APPLY); Matrix_RotateY(sSideAngles[i], MTXMODE_APPLY); Matrix_Scale(0.3f, platform->flashYScale * 0.3f, 0.3f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_ganon_otyuka.c", 847), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_ganon_otyuka.c", 847); gSPDisplayList(POLY_XLU_DISP++, sFlashDL); Matrix_Pop(); } diff --git a/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c b/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c index 27b71b28d2..8988aea020 100644 --- a/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c +++ b/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c @@ -126,8 +126,7 @@ void BgGateShutter_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_gate_shutter.c", 328), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_gate_shutter.c", 328); gSPDisplayList(POLY_OPA_DISP++, gKakarikoGuardGateDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_gate_shutter.c", 333); 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 f280634d9a..4a67c02d13 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 @@ -110,8 +110,7 @@ void BgGjyoBridge_Draw(Actor* thisx, PlayState* play) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, -play2->gameplayFrames & 127, 32, 32, 1, 0, play2->gameplayFrames & 127, 32, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_gjyo_bridge.c", 281), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_gjyo_bridge.c", 281); gSPDisplayList(POLY_XLU_DISP++, gRainbowBridgeDL); diff --git a/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c index 46501d8b72..9f97b57541 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c @@ -143,8 +143,7 @@ void BgGndFiremeiro_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_gnd_firemeiro.c", 280); Gfx_SetupDL_37Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_gnd_firemeiro.c", 282), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_gnd_firemeiro.c", 282); gSPDisplayList(POLY_OPA_DISP++, gFireTrialPlatformDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_gnd_firemeiro.c", 285); diff --git a/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c index 572eb88bb7..6f531fd6f1 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c @@ -206,8 +206,7 @@ void BgGndSoulmeiro_Draw(Actor* thisx, PlayState* play) { case 0: OPEN_DISPS(play->state.gfxCtx, "../z_bg_gnd_soulmeiro.c", 398); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_gnd_soulmeiro.c", 400), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_gnd_soulmeiro.c", 400); gSPDisplayList(POLY_XLU_DISP++, dLists[params]); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_gnd_soulmeiro.c", 403); break; diff --git a/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c b/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c index 0ad951eab2..7e2401acb1 100644 --- a/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c +++ b/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c @@ -152,12 +152,10 @@ void BgHaka_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka.c", 406), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_haka.c", 406); gSPDisplayList(POLY_OPA_DISP++, gGravestoneStoneDL); Matrix_Translate(0.0f, 0.0f, thisx->minVelocityY * 10.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka.c", 416), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_haka.c", 416); gSPDisplayList(POLY_XLU_DISP++, gGravestoneEarthDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_haka.c", 421); diff --git a/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c b/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c index f4333df608..3b5985d8f1 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c +++ b/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c @@ -327,8 +327,7 @@ void BgHakaGate_DrawFlame(BgHakaGate* this, PlayState* play) { scale = this->vFlameScale * 0.00001f; Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka_gate.c", 744), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_haka_gate.c", 744); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_haka_gate.c", 749); } @@ -354,15 +353,13 @@ void BgHakaGate_Draw(Actor* thisx, PlayState* play) { Matrix_Translate(0.0f, 0.0f, -2000.0f, MTXMODE_APPLY); Matrix_RotateX(BINANG_TO_RAD(this->vOpenAngle), MTXMODE_APPLY); Matrix_Translate(0.0f, 0.0f, 2000.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka_gate.c", 788), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_haka_gate.c", 788); gSPDisplayList(POLY_OPA_DISP++, object_haka_objects_DL_010A10); Matrix_Put(¤tMtxF); Matrix_Translate(0.0f, 0.0f, 2000.0f, MTXMODE_APPLY); Matrix_RotateX(BINANG_TO_RAD(-this->vOpenAngle), MTXMODE_APPLY); Matrix_Translate(0.0f, 0.0f, -2000.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka_gate.c", 796), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_haka_gate.c", 796); gSPDisplayList(POLY_OPA_DISP++, object_haka_objects_DL_010C10); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_haka_gate.c", 800); } else { diff --git a/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c b/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c index c2f1616ea8..2a8eadb18e 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c +++ b/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c @@ -205,23 +205,19 @@ void BgHakaShip_Draw(Actor* thisx, PlayState* play) { if (1) {} if (this->dyna.actor.params == 0) { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka_ship.c", 534), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_haka_ship.c", 534); gSPDisplayList(POLY_OPA_DISP++, object_haka_objects_DL_00D330); angleTemp = BINANG_TO_RAD(this->yOffset); Matrix_Translate(-3670.0f, 620.0f, 1150.0f, MTXMODE_APPLY); Matrix_RotateZ(angleTemp, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka_ship.c", 547), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_haka_ship.c", 547); gSPDisplayList(POLY_OPA_DISP++, object_haka_objects_DL_005A70); Matrix_Translate(0.0f, 0.0f, -2300.0f, MTXMODE_APPLY); Matrix_RotateZ(-(2.0f * angleTemp), MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka_ship.c", 556), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_haka_ship.c", 556); gSPDisplayList(POLY_OPA_DISP++, object_haka_objects_DL_005A70); } else { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka_ship.c", 562), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_haka_ship.c", 562); gSPDisplayList(POLY_OPA_DISP++, object_haka_objects_DL_00E910); } diff --git a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c index cd4e4de62d..c4e543af40 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c +++ b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c @@ -233,8 +233,7 @@ void BgHakaTubo_DrawFlameCircle(BgHakaTubo* this, PlayState* play) { gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, this->fireScroll & 127, 0, 32, 64, 1, 0, (this->fireScroll * -15) & 0xFF, 32, 64)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka_tubo.c", 497), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_haka_tubo.c", 497); gSPDisplayList(POLY_XLU_DISP++, gEffFireCircleDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_haka_tubo.c", 501); diff --git a/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c b/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c index d65e4a0519..be7a79332d 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c +++ b/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c @@ -125,8 +125,7 @@ void BgHakaWater_Draw(Actor* thisx, PlayState* play) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->gameplayFrames % 128, play->gameplayFrames % 128, 32, 32, 1, 0, (0 - play->gameplayFrames) % 128, 32, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka_water.c", 312), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_haka_water.c", 312); gSPDisplayList(POLY_XLU_DISP++, gBotwWaterRingDL); Matrix_Translate(0.0f, 92.0f, -1680.0f, MTXMODE_NEW); @@ -138,8 +137,7 @@ void BgHakaWater_Draw(Actor* thisx, PlayState* play) { gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (u8)(5.1f * temp)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_haka_water.c", 328), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_haka_water.c", 328); gSPDisplayList(POLY_XLU_DISP++, gBotwWaterFallDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_haka_water.c", 332); diff --git a/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c b/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c index 8a0288dabb..8d8be7bbda 100644 --- a/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c +++ b/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c @@ -505,8 +505,7 @@ void BgHeavyBlock_Draw(Actor* thisx, PlayState* play) { Matrix_MultVec3f(&D_80884ED4, &thisx->home.pos); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_heavy_block.c", 931), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_heavy_block.c", 931); gSPDisplayList(POLY_OPA_DISP++, gHeavyBlockEntirePillarDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_heavy_block.c", 935); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c index 832965b176..7201e8e6e0 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c @@ -253,8 +253,7 @@ void BgHidanCurtain_Draw(Actor* thisx, PlayState* play) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, this->texScroll & 0x7F, 0, 0x20, 0x40, 1, 0, (this->texScroll * -0xF) & 0xFF, 0x20, 0x40)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_hidan_curtain.c", 698), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_hidan_curtain.c", 698); gSPDisplayList(POLY_XLU_DISP++, gEffFireCircleDL); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c index 559e7d5ec9..493072c369 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c @@ -207,8 +207,7 @@ void BgHidanFirewall_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sFireballTexs[this->unk_150])); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x01, 255, 255, 0, 150); gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 255); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_hidan_firewall.c", 458), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_hidan_firewall.c", 458); gSPDisplayList(POLY_XLU_DISP++, gFireTempleFireballUpperHalfDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_hidan_firewall.c", 463); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c index 6cd66ab586..db86da3173 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c @@ -268,8 +268,7 @@ void BgHidanFwbig_Draw(Actor* thisx, PlayState* play) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->gameplayFrames % 0x80, 0, 0x20, 0x40, 1, 0, (u8)(play->gameplayFrames * -15), 0x20, 0x40)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_hidan_fwbig.c", 660), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_hidan_fwbig.c", 660); gSPDisplayList(POLY_XLU_DISP++, gFireTempleBigFireWallDL); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c index ae69ffc58a..053e5382a6 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c @@ -403,8 +403,7 @@ void BgHidanHamstep_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_hidan_hamstep.c", 787), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_hidan_hamstep.c", 787); if (PARAMS_GET_U(thisx->params, 0, 8) == 0) { gSPDisplayList(POLY_OPA_DISP++, gFireTempleStoneStep1DL); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c b/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c index 5c71725bc8..a4f1b187c8 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c @@ -157,8 +157,7 @@ void BgHidanKousi_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_hidan_kousi.c", 354), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_hidan_kousi.c", 354); gSPDisplayList(POLY_OPA_DISP++, sMetalFencesDLs[PARAMS_GET_U(thisx->params, 0, 8)]); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_hidan_kousi.c", 359); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c index 494119b2ad..5f4d7457a5 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c @@ -328,8 +328,7 @@ void BgHidanKowarerukabe_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_hidan_kowarerukabe.c", 568), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_hidan_kowarerukabe.c", 568); gSPDisplayList(POLY_OPA_DISP++, sBreakableWallDLists[PARAMS_GET_U(this->dyna.actor.params, 0, 8)]); Collider_UpdateSpheres(0, &this->collider); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c index ce4a6eb25b..0f40dd3470 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c @@ -369,8 +369,7 @@ void func_8088BC40(PlayState* play, BgHidanRock* this) { Matrix_Scale(6.0f, this->unk_16C, 6.0f, MTXMODE_APPLY); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sVerticalFlamesTexs[play->gameplayFrames & 7])); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_hidan_rock.c", 853), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_hidan_rock.c", 853); gSPDisplayList(POLY_XLU_DISP++, gFireTempleBigVerticalFlameDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_hidan_rock.c", 857); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c index 06c6346401..e08e64df98 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c @@ -232,8 +232,7 @@ void BgHidanRsekizou_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_hidan_rsekizou.c", 568), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_hidan_rsekizou.c", 568); gSPDisplayList(POLY_OPA_DISP++, gFireTempleSpinningFlamethrowerDL); Matrix_MtxFCopy(&mf, &gMtxFClear); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c index 9b52993671..91a32c7de3 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c @@ -398,8 +398,7 @@ void BgHidanSekizou_Draw(Actor* thisx, PlayState* play2) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_hidan_sekizou.c", 827); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_hidan_sekizou.c", 831), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_hidan_sekizou.c", 831); if (this->dyna.actor.params == 0) { gSPDisplayList(POLY_OPA_DISP++, gFireTempleStationaryFlamethrowerShortDL); } else { diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c index 1c20c4bf6a..eb38ad2326 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c @@ -280,8 +280,7 @@ void BgHidanSima_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_hidan_sima.c", 641); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_hidan_sima.c", 645), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_hidan_sima.c", 645); if (this->dyna.actor.params == 0) { gSPDisplayList(POLY_OPA_DISP++, gFireTempleStonePlatform1DL); } else { diff --git a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c index ce609e765c..fa5554f8d1 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c +++ b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c @@ -458,8 +458,7 @@ void BgIceShelter_Draw(Actor* thisx, PlayState* play2) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_ice_shelter.c", 751), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_ice_shelter.c", 751); switch (BGICESHELTER_GET_TYPE(&this->dyna.actor)) { case RED_ICE_LARGE: diff --git a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c index 626bfa6505..a9dd2adfa5 100644 --- a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c +++ b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c @@ -108,8 +108,7 @@ void BgInGate_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_ingate.c", 245), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_ingate.c", 245); gSPDisplayList(POLY_OPA_DISP++, gIngoGateDL); diff --git a/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c b/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c index 4eddd4a3f8..d705c08bb5 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c @@ -220,15 +220,13 @@ void BgJyaBigmirror_DrawLightBeam(Actor* thisx, PlayState* play) { Matrix_SetTranslateRotateYXZ(this->actor.world.pos.x, this->actor.world.pos.y + 40.0f, this->actor.world.pos.z, &this->actor.shape.rot); Matrix_Scale(0.1f, (this->liftHeight * -(1.0f / 1280.0f)) + (1779.4f / 1280.0f), 0.1f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_jya_bigmirror.c", 457), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_jya_bigmirror.c", 457); gSPDisplayList(POLY_XLU_DISP++, gBigMirror1DL); if (lift != NULL) { Matrix_SetTranslateRotateYXZ(lift->world.pos.x, lift->world.pos.y, lift->world.pos.z, &D_80893F4C); Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_jya_bigmirror.c", 467), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_jya_bigmirror.c", 467); gSPDisplayList(POLY_XLU_DISP++, gBigMirror2DL); } diff --git a/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c b/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c index 4481c99f09..d7aaafba54 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c +++ b/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c @@ -68,8 +68,7 @@ void BgJyaBlock_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gPushBlockGrayTex)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_jya_block.c", 153), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_jya_block.c", 153); gDPSetEnvColor(POLY_OPA_DISP++, 232, 210, 176, 255); gSPDisplayList(POLY_OPA_DISP++, gPushBlockDL); diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c index f1f3fcd6c5..59ecf2b27d 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c @@ -198,8 +198,7 @@ void BgJyaBombchuiwa_Update(Actor* thisx, PlayState* play) { void BgJyaBombchuiwa_DrawRock(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_jya_bombchuiwa.c", 436); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_jya_bombchuiwa.c", 439), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_jya_bombchuiwa.c", 439); gSPDisplayList(POLY_XLU_DISP++, gBombchuiwa2DL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_jya_bombchuiwa.c", 443); } @@ -209,8 +208,7 @@ void BgJyaBombchuiwa_DrawLight(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_jya_bombchuiwa.c", 453); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_jya_bombchuiwa.c", 457), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_jya_bombchuiwa.c", 457); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, CLAMP_MAX((u32)(this->lightRayIntensity * 153.0f), 153)); gSPDisplayList(POLY_XLU_DISP++, gBombchuiwaLight1DL); gDPPipeSync(POLY_XLU_DISP++); diff --git a/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c b/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c index d234c42ab3..117878f8bf 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c +++ b/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c @@ -538,8 +538,7 @@ void func_80896CB4(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_jya_cobra.c", 864); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_jya_cobra.c", 867), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_jya_cobra.c", 867); gSPDisplayList(POLY_XLU_DISP++, gCobra2DL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_jya_cobra.c", 872); @@ -558,8 +557,7 @@ void func_80896D78(BgJyaCobra* this, PlayState* play) { Matrix_SetTranslateRotateYXZ(this->unk_180.x, this->unk_180.y, this->unk_180.z, &sp44); Matrix_Scale(0.1f, 0.1f, this->unk_190, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_jya_cobra.c", 939), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_jya_cobra.c", 939); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (s32)(this->unk_18C * 140.0f)); gSPDisplayList(POLY_XLU_DISP++, gCobra3DL); @@ -597,8 +595,7 @@ void BgJyaCobra_DrawShadow(BgJyaCobra* this, PlayState* play) { Matrix_Translate(0.0f, 0.0f, 40.0f, MTXMODE_APPLY); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 0, 0, 120); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_jya_cobra.c", 994), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_jya_cobra.c", 994); gDPLoadTextureBlock(POLY_XLU_DISP++, COBRA_SHADOW_TEX_PTR(this), G_IM_FMT_I, G_IM_SIZ_8b, COBRA_SHADOW_TEX_WIDTH, COBRA_SHADOW_TEX_HEIGHT, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, diff --git a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c index 212a74515a..e54bc92040 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c +++ b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c @@ -308,8 +308,7 @@ void BgJyaMegami_DrawFace(BgJyaMegami* this, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sRightSideCrumbles[this->crumbleIndex])); gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sLeftSideCrumbles[this->crumbleIndex])); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_jya_megami.c", 716), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_jya_megami.c", 716); gSPDisplayList(POLY_OPA_DISP++, gMegami1DL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_jya_megami.c", 720); @@ -340,8 +339,7 @@ void BgJyaMegami_DrawExplode(BgJyaMegami* this, PlayState* play) { Matrix_Translate(sPiecesInit[i].unk_00.x * -10.0f, sPiecesInit[i].unk_00.y * -10.0f, sPiecesInit[i].unk_00.z * -10.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_jya_megami.c", 778), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_jya_megami.c", 778); gSPDisplayList(POLY_OPA_DISP++, sDLists[i]); } diff --git a/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c b/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c index da6e9c60c9..12117cbf7e 100644 --- a/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c +++ b/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c @@ -133,8 +133,7 @@ void BgMenkuriEye_Draw(Actor* thisx, PlayState* play) { Matrix_Translate(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, MTXMODE_NEW); Matrix_RotateZYX(this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, MTXMODE_APPLY); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_menkuri_eye.c", 331), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_menkuri_eye.c", 331); gSPDisplayList(POLY_XLU_DISP++, gGTGEyeStatueEyeDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_menkuri_eye.c", 335); diff --git a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c index 49ec76cda0..3af6a730d4 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c @@ -537,7 +537,7 @@ void BgMizuBwall_Draw(Actor* thisx, PlayState* play2) { gSPSegment(POLY_OPA_DISP++, 0x0B, Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, G_TX_RENDERTILE, 3 * frames, 0, 0x20, 0x20, 1, 0, 0, 0x20, 0x20, 0, 0, 0, this->scrollAlpha4)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mizu_bwall.c", 1129), 2); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mizu_bwall.c", 1129); if (this->dList != NULL) { gSPDisplayList(POLY_OPA_DISP++, this->dList); diff --git a/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c b/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c index 9dbf6f317e..96583b843f 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c @@ -403,8 +403,7 @@ void BgMizuMovebg_Draw(Actor* thisx, PlayState* play2) { Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, G_TX_RENDERTILE, frames * 3, 0, 32, 32, 1, 0, 0, 32, 32, 0, 0, 0, this->scrollAlpha4)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mizu_movebg.c", 788), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mizu_movebg.c", 788); if (this->dList != NULL) { gSPDisplayList(POLY_OPA_DISP++, this->dList); diff --git a/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c b/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c index 8805462c43..44a2f7cce6 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c @@ -160,8 +160,7 @@ void BgMizuShutter_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_mizu_shutter.c", 410); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mizu_shutter.c", 415), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mizu_shutter.c", 415); if (this->displayList != NULL) { gSPDisplayList(POLY_OPA_DISP++, this->displayList); diff --git a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c index 2a34e9862d..ade2f41741 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c @@ -341,8 +341,7 @@ void BgMizuWater_Draw(Actor* thisx, PlayState* play) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, -gameplayFrames * 1, gameplayFrames * 1, 32, 32, 1, 0, -gameplayFrames * 1, 32, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mizu_water.c", 749), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_mizu_water.c", 749); gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, 128); diff --git a/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c b/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c index a615c5598a..7dd37baf58 100644 --- a/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c +++ b/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c @@ -119,8 +119,7 @@ void BgMjin_Draw(Actor* thisx, PlayState* play) { } Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mjin.c", 285), - G_MTX_NOPUSH | G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mjin.c", 285); gSPDisplayList(POLY_OPA_DISP++, dlist); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_mjin.c", 288); diff --git a/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c b/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c index 074323a043..a7d44a34b8 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c +++ b/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c @@ -253,8 +253,7 @@ void BgMoriBigst_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, play->objectCtx.slots[this->moriTexObjectSlot].segment); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_bigst.c", 548), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mori_bigst.c", 548); gSPDisplayList(POLY_OPA_DISP++, gMoriBigstDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_mori_bigst.c", 553); diff --git a/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c b/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c index 5ef566f145..28087ca671 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c +++ b/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c @@ -260,8 +260,7 @@ void BgMoriElevator_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, play->objectCtx.slots[this->moriTexObjectSlot].segment); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_elevator.c", 580), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mori_elevator.c", 580); gSPDisplayList(POLY_OPA_DISP++, gMoriElevatorDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_mori_elevator.c", 584); diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c index 9fa983e961..adab13681e 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c @@ -291,8 +291,7 @@ void BgMoriHashigo_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, play->objectCtx.slots[this->moriTexObjectSlot].segment); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_hashigo.c", 521), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mori_hashigo.c", 521); switch (this->dyna.actor.params) { case HASHIGO_CLASP: diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c b/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c index 03c49720d6..b52a0feb70 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c @@ -167,8 +167,7 @@ void BgMoriHashira4_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, play->objectCtx.slots[this->moriTexObjectSlot].segment); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_hashira4.c", 344), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mori_hashira4.c", 344); gSPDisplayList(POLY_OPA_DISP++, sDisplayLists[this->dyna.actor.params]); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_mori_hashira4.c", 348); diff --git a/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c b/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c index 67a1d8bc39..d8d6de0665 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c @@ -230,8 +230,7 @@ void BgMoriHineri_DrawHallAndRoom(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, play2->objectCtx.slots[this->moriTexObjectSlot].segment); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_hineri.c", 618), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play2->state.gfxCtx, "../z_bg_mori_hineri.c", 618); gSPDisplayList(POLY_OPA_DISP++, sDLists[this->dyna.actor.params]); if (this->boxObjectSlot > 0) { Matrix_Get(&mtx); @@ -245,8 +244,7 @@ void BgMoriHineri_DrawHallAndRoom(Actor* thisx, PlayState* play) { } Matrix_RotateZYX(0, -0x8000, this->dyna.actor.shape.rot.z, MTXMODE_APPLY); Matrix_Translate(0.0f, -50.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_hineri.c", 652), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mori_hineri.c", 652); gSPDisplayList(POLY_OPA_DISP++, gDungeonDoorDL); } if ((this->boxObjectSlot > 0) && ((this->boxObjectSlot = Object_GetSlot(&play2->objectCtx, OBJECT_BOX)) > 0) && @@ -257,8 +255,7 @@ void BgMoriHineri_DrawHallAndRoom(Actor* thisx, PlayState* play) { Matrix_Translate(147.0f, -245.0f, -453.0f, MTXMODE_APPLY); Matrix_RotateY(M_PI / 2, MTXMODE_APPLY); Matrix_Scale(0.01f, 0.01f, 0.01f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_hineri.c", 689), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mori_hineri.c", 689); gSPDisplayList(POLY_OPA_DISP++, gTreasureChestBossKeyChestFrontDL); Matrix_Put(&mtx); Matrix_Translate(167.0f, -218.0f, -453.0f, MTXMODE_APPLY); @@ -268,8 +265,7 @@ void BgMoriHineri_DrawHallAndRoom(Actor* thisx, PlayState* play) { Matrix_RotateZ(M_PI, MTXMODE_APPLY); } Matrix_Scale(0.01f, 0.01f, 0.01f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_hineri.c", 703), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mori_hineri.c", 703); gSPDisplayList(POLY_OPA_DISP++, gTreasureChestBossKeyChestSideAndTopDL); } diff --git a/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c b/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c index 5b89be9abb..507f92e73c 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c +++ b/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c @@ -165,8 +165,7 @@ void BgMoriIdomizu_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_idomizu.c", 360), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_mori_idomizu.c", 360); gSPSegment(POLY_XLU_DISP++, 0x08, play->objectCtx.slots[this->moriTexObjectSlot].segment); diff --git a/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.c b/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.c index a46a332f34..e974aa2df9 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.c +++ b/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.c @@ -165,8 +165,7 @@ void BgMoriKaitenkabe_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, play->objectCtx.slots[this->moriTexObjectSlot].segment); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_kaitenkabe.c", 352), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mori_kaitenkabe.c", 352); gSPDisplayList(POLY_OPA_DISP++, gMoriKaitenkabeDL); diff --git a/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c b/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c index 1cb084f290..63173262e7 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c @@ -232,8 +232,7 @@ void BgMoriRakkatenjo_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, play->objectCtx.slots[this->moriTexObjectSlot].segment); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_mori_rakkatenjo.c", 502), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_mori_rakkatenjo.c", 502); gSPDisplayList(POLY_OPA_DISP++, gMoriRakkatenjoDL); diff --git a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c index f2dbe45664..04fb0eb782 100644 --- a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c +++ b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c @@ -612,8 +612,7 @@ void BgPoEvent_Draw(Actor* thisx, PlayState* play) { } gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, alpha); } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_po_event.c", 1501), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_po_event.c", 1501); gSPDisplayList(POLY_OPA_DISP++, displayLists[this->type]); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_po_event.c", 1508); diff --git a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c index 9b99aec877..d02a9ddeb3 100644 --- a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c +++ b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c @@ -150,8 +150,7 @@ void BgPoSyokudai_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_po_syokudai.c", 315); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_po_syokudai.c", 319), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_po_syokudai.c", 319); gSPDisplayList(POLY_OPA_DISP++, gGoldenTorchDL); if (Flags_GetSwitch(play, this->actor.params)) { @@ -180,8 +179,7 @@ void BgPoSyokudai_Draw(Actor* thisx, PlayState* play) { MTXMODE_APPLY); Matrix_Scale(0.0027f, 0.0027f, 0.0027f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_po_syokudai.c", 368), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_po_syokudai.c", 368); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); } CLOSE_DISPS(play->state.gfxCtx, "../z_bg_po_syokudai.c", 373); diff --git a/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c b/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c index 78104fa503..7d9ef63e60 100644 --- a/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c +++ b/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c @@ -81,8 +81,7 @@ void BgPushbox_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_pushbox.c", 263); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_pushbox.c", 269), - G_MTX_NOPUSH | G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_pushbox.c", 269); gSPDisplayList(POLY_OPA_DISP++, gBlockSmallDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_pushbox.c", 272); diff --git a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c index d2d7b8f08c..501d0f430b 100644 --- a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c +++ b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c @@ -277,8 +277,7 @@ void BgSpot00Hanebasi_DrawTorches(Actor* thisx, PlayState* play2) { Matrix_RotateY(angle, MTXMODE_APPLY); Matrix_Scale(sTorchFlameScale, sTorchFlameScale, sTorchFlameScale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot00_hanebasi.c", 674), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot00_hanebasi.c", 674); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); } @@ -293,8 +292,7 @@ void BgSpot00Hanebasi_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot00_hanebasi.c", 702), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_spot00_hanebasi.c", 702); if (thisx->params == DT_DRAWBRIDGE) { gSPDisplayList(POLY_OPA_DISP++, gHyruleFieldCastleDrawbridgeDL); diff --git a/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c b/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c index d01ec3a349..9dde534fa8 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c @@ -79,8 +79,7 @@ void BgSpot01Fusya_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot01_fusya.c", 214), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_spot01_fusya.c", 214); gSPDisplayList(POLY_OPA_DISP++, gKakarikoWindmillSailsDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_spot01_fusya.c", 219); diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c index 3542b77147..475940dd53 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c @@ -324,8 +324,7 @@ void func_808AB700(BgSpot01Idohashira* this, PlayState* play) { Gfx_SetupDL_25Opa(localGfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(localGfxCtx, "../z_bg_spot01_idohashira.c", 699), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, localGfxCtx, "../z_bg_spot01_idohashira.c", 699); func_808AAF34(this, play); gSPDisplayList(POLY_OPA_DISP++, gKakarikoWellArchDL); diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c b/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c index 994a2d2bbb..b709fc11e3 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c @@ -73,8 +73,7 @@ void BgSpot01Idomizu_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot01_idomizu.c", 232), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot01_idomizu.c", 232); frames = play->state.frames; gSPSegment(POLY_XLU_DISP++, 0x08, diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.c b/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.c index 8623e2dd74..964416c0b0 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.c @@ -73,8 +73,7 @@ void BgSpot01Idosoko_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot01_idosoko.c", 166), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_spot01_idosoko.c", 166); gSPDisplayList(POLY_OPA_DISP++, gKakarikoBOTWStoneDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_spot01_idosoko.c", 171); diff --git a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c index 56f8649b10..811ce475ce 100644 --- a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c +++ b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c @@ -255,8 +255,7 @@ void func_808ACCB8(Actor* thisx, PlayState* play2) { gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, redPrim, greenPrim, bluePrim, 255); gDPSetEnvColor(POLY_XLU_DISP++, redEnv, greenEnv, blueEnv, 255); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot02_objects.c", 679), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot02_objects.c", 679); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_808AD850[this->unk_16A])); gDPPipeSync(POLY_XLU_DISP++); gSPDisplayList(POLY_XLU_DISP++, object_spot02_objects_DL_0126F0); @@ -315,8 +314,7 @@ void func_808AD450(Actor* thisx, PlayState* play2) { gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 170, 128); gDPSetEnvColor(POLY_XLU_DISP++, 150, 120, 0, 128); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot02_objects.c", 795), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot02_objects.c", 795); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 2 * this->timer, -3 * this->timer, 32, 64, 1, 4 * this->timer, -6 * this->timer, 32, 64)); diff --git a/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c b/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c index a71fce5a55..12d6cced10 100644 --- a/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c +++ b/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c @@ -122,8 +122,7 @@ void BgSpot03Taki_Draw(Actor* thisx, PlayState* play) { gameplayFrames = play->gameplayFrames; - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot03_taki.c", 325), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot03_taki.c", 325); Gfx_SetupDL_25Xlu(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c index c3dde47f41..916a977c27 100644 --- a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c +++ b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c @@ -432,8 +432,7 @@ void BgSpot06Objects_DrawLakeHyliaWater(BgSpot06Objects* this, PlayState* play) Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot06_objects.c", 850), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot06_objects.c", 850); gameplayFrames = play->state.frames; diff --git a/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c b/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c index a40daf01fc..a98f3428da 100644 --- a/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c +++ b/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c @@ -73,8 +73,7 @@ void BgSpot07Taki_Draw(Actor* thisx, PlayState* play) { frames = play->gameplayFrames; if (LINK_IS_ADULT) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot07_taki.c", 177), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_spot07_taki.c", 177); if (this->dyna.actor.params == 0) { gSPDisplayList(POLY_OPA_DISP++, object_spot07_object_DL_001CF0); } else { @@ -83,8 +82,7 @@ void BgSpot07Taki_Draw(Actor* thisx, PlayState* play) { } Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot07_taki.c", 191), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot07_taki.c", 191); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, ((frames * -1) & 0x7F), ((frames * 1) & 0x7F), 32, diff --git a/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c b/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c index 8c25f125e2..2cce032344 100644 --- a/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c +++ b/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c @@ -173,8 +173,7 @@ void BgSpot09Obj_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot09_obj.c", 391), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot09_obj.c", 391); gSPDisplayList(POLY_XLU_DISP++, gCarpentersTentEntranceDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_spot09_obj.c", 396); diff --git a/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c b/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c index e5d37c33ab..4218cc79fd 100644 --- a/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c +++ b/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c @@ -153,8 +153,7 @@ void BgSpot11Oasis_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_spot11_oasis.c", 327); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot11_oasis.c", 331), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot11_oasis.c", 331); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 127 - (gameplayFrames % 128), (gameplayFrames * 1) % 128, 32, 32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, diff --git a/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c b/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c index e414a3e512..ca52b057bb 100644 --- a/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c +++ b/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c @@ -98,8 +98,7 @@ void BgSpot15Saku_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot15_saku.c", 263), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot15_saku.c", 263); gSPDisplayList(POLY_XLU_DISP++, gLonLonCorralFenceDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_spot15_saku.c", 268); diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c index 8e459f8d84..a9429e4c62 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c +++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c @@ -543,8 +543,7 @@ void BgSpot16Bombstone_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot16_bombstone.c", 1257), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_spot16_bombstone.c", 1257); if (this->actor.params == 0xFF) { // The boulder is intact diff --git a/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c b/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c index 23c3cb1692..ece0d3d6d4 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c +++ b/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c @@ -125,8 +125,7 @@ void BgSpot16Doughnut_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot16_doughnut.c", 213), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot16_doughnut.c", 213); if (this->fireFlag & 1) { gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, scroll * (-1), 0, 16, 32, 1, scroll, @@ -150,8 +149,7 @@ void BgSpot16Doughnut_DrawExpanding(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot16_doughnut.c", 248), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot16_doughnut.c", 248); gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->envColorAlpha); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255); gSPDisplayList(POLY_XLU_DISP++, gDeathMountainCloudCircleNormalDL); diff --git a/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.c index 28376b557c..7d2166dd73 100644 --- a/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.c +++ b/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.c @@ -131,8 +131,7 @@ void BgSpot17Bakudankabe_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot17_bakudankabe.c", 273), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_spot17_bakudankabe.c", 273); r = (r >> 1) + 0xC0; g = (g >> 1) + 0xC0; @@ -147,8 +146,7 @@ void BgSpot17Bakudankabe_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot17_bakudankabe.c", 290), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot17_bakudankabe.c", 290); gSPDisplayList(POLY_XLU_DISP++, gCraterBombableWallCracksDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_spot17_bakudankabe.c", 295); diff --git a/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c b/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c index 9c5134bb0f..8fbdd14048 100644 --- a/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c +++ b/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c @@ -60,8 +60,7 @@ void func_808B7478(Actor* thisx, PlayState* play) { Matrix_RotateY((s16)(Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)) - thisx->shape.rot.y + 0x8000) * 9.58738019108e-05f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_spot17_funen.c", 161), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_spot17_funen.c", 161); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, (0 - play->gameplayFrames) & 0x7F, 0x20, 0x20, 1, 0, (0 - play->gameplayFrames) & 0x7F, 0x20, 0x20)); diff --git a/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c b/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c index b0bdaa8549..d328a2379b 100644 --- a/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c +++ b/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c @@ -128,8 +128,7 @@ void BgSstFloor_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); Matrix_Scale(1.0f, this->drumHeight * -0.0025f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_sst_floor.c", 283), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_sst_floor.c", 283); gSPDisplayList(POLY_OPA_DISP++, gBongoDrumDL); diff --git a/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c b/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c index 61a3603baa..f24ed0c28a 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c +++ b/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c @@ -84,8 +84,7 @@ void func_808BA018(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_toki_hikari.c", 246); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_toki_hikari.c", 252), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_toki_hikari.c", 252); if (LINK_IS_ADULT) { gSPDisplayList(POLY_OPA_DISP++, object_toki_objects_DL_008190); @@ -96,8 +95,7 @@ void func_808BA018(Actor* thisx, PlayState* play) { gSPSegment(POLY_XLU_DISP++, 9, Gfx_TexScroll(play->state.gfxCtx, 0, play2->gameplayFrames % 128, 64, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_toki_hikari.c", 278), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_toki_hikari.c", 278); gSPDisplayList(POLY_XLU_DISP++, object_toki_objects_DL_007EE0); } @@ -144,8 +142,7 @@ void func_808BA2CC(Actor* thisx, PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, (u8)(this->unk_14C * 155.0f) + 100, (u8)(255.0f * this->unk_14C), 0, 128); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_toki_hikari.c", 382), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_toki_hikari.c", 382); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, -2 * (play->gameplayFrames & 0x7F), 0, 0x20, 0x40, @@ -160,8 +157,7 @@ void func_808BA2CC(Actor* thisx, PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, (u8)(this->unk_14C * 255.0f), (u8)(this->unk_14C * 255.0f), (u8)(this->unk_14C * 255.0f), (u8)(200.0f * this->unk_14C)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_toki_hikari.c", 415), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_toki_hikari.c", 415); gSPDisplayList(POLY_XLU_DISP++, object_toki_objects_DL_0009C0); Matrix_Pop(); @@ -172,8 +168,7 @@ void func_808BA2CC(Actor* thisx, PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, (u8)(this->unk_14C * 255.0f), (u8)(this->unk_14C * 255.0f), (u8)(this->unk_14C * 255.0f), (u8)(200.0f * this->unk_14C)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_toki_hikari.c", 437), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_toki_hikari.c", 437); gSPDisplayList(POLY_XLU_DISP++, &object_toki_objects_DL_0009C0[10]); Matrix_Pop(); diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c index e4106619a6..a13d872ab8 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c @@ -170,8 +170,7 @@ void BgTokiSwd_Draw(Actor* thisx, PlayState* play2) { func_8002EBCC(&this->actor, play, 0); gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 0, -(play->gameplayFrames % 0x80), 32, 32)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_toki_swd.c", 742), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_toki_swd.c", 742); gSPDisplayList(POLY_OPA_DISP++, object_toki_objects_DL_001BD0); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_toki_swd.c", 776); diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c index fab8eb3fa2..78c7ede03d 100644 --- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c +++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c @@ -247,8 +247,7 @@ void BgTreemouth_Draw(Actor* thisx, PlayState* play) { } gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, alpha * 0.1f); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_treemouth.c", 932), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_treemouth.c", 932); gSPDisplayList(POLY_OPA_DISP++, gDekuTreeMouthDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_treemouth.c", 937); diff --git a/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c b/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c index fa566bb370..87e6c54ed4 100644 --- a/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c +++ b/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c @@ -151,8 +151,7 @@ void BgVbSima_Update(Actor* thisx, PlayState* play) { void BgVbSima_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_vb_sima.c", 285); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_vb_sima.c", 291), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_bg_vb_sima.c", 291); gSPDisplayList(POLY_OPA_DISP++, gVolvagiaPlatformDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_vb_sima.c", 296); } diff --git a/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c b/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c index 3673771efa..020b056bb4 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c @@ -183,8 +183,7 @@ void BgYdanHasi_Draw(Actor* thisx, PlayState* play) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, -play->gameplayFrames % 128, play->gameplayFrames % 128, 0x20, 0x20, 1, play->gameplayFrames % 128, play->gameplayFrames % 128, 0x20, 0x20)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_ydan_hasi.c", 592), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_ydan_hasi.c", 592); gSPDisplayList(POLY_XLU_DISP++, gDTWaterPlaneDL); CLOSE_DISPS(play->state.gfxCtx, "../z_bg_ydan_hasi.c", 597); diff --git a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c index 50f47d37a2..de0ccd7a91 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c @@ -420,16 +420,14 @@ void BgYdanSp_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); if (thisx->params == WEB_WALL) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_ydan_sp.c", 787), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_ydan_sp.c", 787); gSPDisplayList(POLY_XLU_DISP++, gDTWebWallDL); } else if (this->actionFunc == BgYdanSp_FloorWebBroken) { Matrix_Get(&mtxF); if (this->timer == 40) { Matrix_Translate(0.0f, (thisx->home.pos.y - thisx->world.pos.y) * 10.0f, 0.0f, MTXMODE_APPLY); Matrix_Scale(1.0f, ((thisx->home.pos.y - thisx->world.pos.y) + 10.0f) * 0.1f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_ydan_sp.c", 808), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_ydan_sp.c", 808); gSPDisplayList(POLY_XLU_DISP++, gDTWebFloorDL); } for (i = 0; i < 8; i++) { @@ -437,15 +435,13 @@ void BgYdanSp_Draw(Actor* thisx, PlayState* play) { Matrix_RotateZYX(-0x5A0, i * 0x2000, 0, MTXMODE_APPLY); Matrix_Translate(0.0f, 700.0f, -900.0f, MTXMODE_APPLY); Matrix_Scale(3.5f, 5.0f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_ydan_sp.c", 830), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_ydan_sp.c", 830); gSPDisplayList(POLY_XLU_DISP++, gDTUnknownWebDL); } } else { Matrix_Translate(0.0f, (thisx->home.pos.y - thisx->world.pos.y) * 10.0f, 0.0f, MTXMODE_APPLY); Matrix_Scale(1.0f, ((thisx->home.pos.y - thisx->world.pos.y) + 10.0f) * 0.1f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_bg_ydan_sp.c", 849), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_bg_ydan_sp.c", 849); gSPDisplayList(POLY_XLU_DISP++, gDTWebFloorDL); } diff --git a/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c b/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c index e10ede8d2f..d5d3244348 100644 --- a/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c +++ b/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c @@ -135,8 +135,7 @@ void func_808C0EEC(BgZg* this, PlayState* play) { OPEN_DISPS(localGfxCtx, "../z_bg_zg.c", 311); Gfx_SetupDL_25Opa(localGfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(localGfxCtx, "../z_bg_zg.c", 315), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, localGfxCtx, "../z_bg_zg.c", 315); gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseBarsDL); CLOSE_DISPS(localGfxCtx, "../z_bg_zg.c", 320); diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c index d15f60ac4f..53c58c143f 100644 --- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c +++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c @@ -1085,8 +1085,7 @@ s32 BossDodongo_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Ve Matrix_RotateX(-(this->unk_25C[limbIndex] * 0.115f), MTXMODE_APPLY); } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_dodongo.c", 3822), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_dodongo.c", 3822); gSPDisplayList(POLY_OPA_DISP++, *dList); Matrix_Pop(); @@ -1693,8 +1692,7 @@ void BossDodongo_DrawEffects(PlayState* play) { Matrix_Translate(eff->unk_00.x, eff->unk_00.y, eff->unk_00.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(eff->unk_2C, eff->unk_2C, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_dodongo.c", 5253), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_dodongo.c", 5253); gSPDisplayList(POLY_XLU_DISP++, object_kingdodongo_DL_009DD0); } } diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c index 758c5d7ca8..6042ccd718 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c @@ -1545,8 +1545,7 @@ void BossFd_DrawEffects(BossFdEffect* effect, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_fd.c", 4046), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_fd.c", 4046); gSPDisplayList(POLY_XLU_DISP++, gVolvagiaEmberModelDL); } } @@ -1566,8 +1565,7 @@ void BossFd_DrawEffects(BossFdEffect* effect, PlayState* play) { Matrix_RotateX(effect->vFdFxRotX, MTXMODE_APPLY); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_fd.c", 4068), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_boss_fd.c", 4068); gSPDisplayList(POLY_OPA_DISP++, gVolvagiaDebrisModelDL); } } @@ -1588,8 +1586,7 @@ void BossFd_DrawEffects(BossFdEffect* effect, PlayState* play) { Matrix_Scale(effect->scale, effect->scale, effect->scale, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_fd.c", 4104), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_fd.c", 4104); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(dustTex[effect->timer2])); gSPDisplayList(POLY_XLU_DISP++, gVolvagiaDustModelDL); } @@ -1611,8 +1608,7 @@ void BossFd_DrawEffects(BossFdEffect* effect, PlayState* play) { Matrix_Scale(effect->scale, effect->scale, effect->scale, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_fd.c", 4154), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_fd.c", 4154); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(dustTex[effect->timer2])); gSPDisplayList(POLY_XLU_DISP++, gVolvagiaDustModelDL); } @@ -1633,8 +1629,7 @@ void BossFd_DrawEffects(BossFdEffect* effect, PlayState* play) { Matrix_RotateX(effect->vFdFxRotX, MTXMODE_APPLY); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_fd.c", 4192), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_fd.c", 4192); gSPDisplayList(POLY_XLU_DISP++, gVolvagiaSkullPieceModelDL); } } @@ -1768,8 +1763,7 @@ void BossFd_DrawMane(PlayState* play, BossFd* this, Vec3f* manePos, Vec3f* maneR Matrix_Scale(maneScale[maneIndex] * (0.01f - (i * 0.0008f)), maneScale[maneIndex] * (0.01f - (i * 0.0008f)), 0.01f, MTXMODE_APPLY); Matrix_RotateX(-M_PI / 2.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_fd.c", 4480), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_fd.c", 4480); gSPDisplayList(POLY_XLU_DISP++, gVolvagiaManeModelDL); } @@ -1910,8 +1904,7 @@ void BossFd_DrawBody(PlayState* play, BossFd* this) { spD4 = spD8 = spD8 * sp84; } Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_fd.c", 4768), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_fd.c", 4768); gSPDisplayList(POLY_OPA_DISP++, gVolvagiaRibsDL); if (this->bodyFallApart[i] == 1) { diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index 879a5d56df..4e043faa3a 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -1147,8 +1147,7 @@ void BossFd2_UpdateMane(BossFd2* this, PlayState* play, Vec3f* head, Vec3f* pos, xyScale = (0.01f - (i * 0.0009f)) * spE8[i] * scale[i]; Matrix_Scale(xyScale, xyScale, 0.01f * spE8[i], MTXMODE_APPLY); Matrix_RotateX(M_PI / 2.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_fd2.c", 2498), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_fd2.c", 2498); gSPDisplayList(POLY_XLU_DISP++, gHoleVolvagiaManeModelDL); } Matrix_Pop(); 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 ee46aa17cb..6ee60c2159 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -3270,8 +3270,7 @@ void BossGanon_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* OPEN_DISPS(play->state.gfxCtx, "../z_boss_ganon.c", 7191); Matrix_MultVec3f(&D_808E4DB8, &this->unk_208); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon.c", 7196), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_ganon.c", 7196); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanondorfEyesDL)); CLOSE_DISPS(play->state.gfxCtx, "../z_boss_ganon.c", 7198); @@ -3364,8 +3363,7 @@ void BossGanon_DrawShock(BossGanon* this, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(this->unk_49C[i], this->unk_49C[i], this->unk_49C[i], MTXMODE_APPLY); Matrix_RotateZ(Rand_CenteredFloat(M_PI), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 7384), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 7384); gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } } else { @@ -3378,8 +3376,7 @@ void BossGanon_DrawShock(BossGanon* this, PlayState* play) { Matrix_RotateZ(Rand_CenteredFloat(M_PI), MTXMODE_APPLY); } - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 7401), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 7401); if (this->shockGlow) { gSPSegment(POLY_XLU_DISP++, 0x08, @@ -3421,8 +3418,7 @@ void BossGanon_DrawHandLightBall(BossGanon* this, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(this->handLightBallScale, this->handLightBallScale, this->handLightBallScale, MTXMODE_APPLY); Matrix_RotateZ(this->unk_258, 1); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 7510), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 7510); gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); alpha = ((this->unk_1A2 % 2) != 0) ? 100 : 80; @@ -3430,8 +3426,7 @@ void BossGanon_DrawHandLightBall(BossGanon* this, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 155, alpha); Matrix_Translate(this->unk_260.x, 0.0f, this->unk_260.z, MTXMODE_NEW); Matrix_Scale(this->handLightBallScale * 0.75f, 1.0f, this->handLightBallScale * 0.75f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon.c", 7531), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon.c", 7531); gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightCoreDL); CLOSE_DISPS(gfxCtx, "../z_boss_ganon.c", 7534); @@ -3458,16 +3453,14 @@ void BossGanon_DrawBigMagicCharge(BossGanon* this, PlayState* play) { Matrix_Translate(this->unk_278.x, this->unk_278.y, this->unk_278.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(this->unk_28C, this->unk_28C, this->unk_28C, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 7588), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 7588); gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightFlecksDL); // background circle texture Matrix_Translate(this->unk_278.x, this->unk_278.y, this->unk_278.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(this->unk_284, this->unk_284, this->unk_284, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 7601), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 7601); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 0, 100, (s8)this->unk_288); gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TwoTexScroll(gameState->gfxCtx, G_TX_RENDERTILE, 0, 0, 0x20, 0x20, 1, 0, this->unk_1A2 * -4, @@ -3491,8 +3484,7 @@ void BossGanon_DrawBigMagicCharge(BossGanon* this, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(this->unk_2D0, this->unk_2D0, this->unk_2D0, MTXMODE_APPLY); Matrix_RotateZ((this->unk_1A2 * 10.0f) / 1000.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 7673), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 7673); gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); BossGanon_InitRand(this->unk_1AA + 1, 0x71AC, 0x263A); @@ -3512,8 +3504,7 @@ void BossGanon_DrawBigMagicCharge(BossGanon* this, PlayState* play) { Matrix_RotateZ(xzRot, MTXMODE_APPLY); Matrix_Translate(0.0f, 0.0f, 50.0f, MTXMODE_APPLY); Matrix_Scale(4.0f, 4.0f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 7713), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 7713); gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightRayTriDL); Matrix_Pop(); @@ -3565,8 +3556,7 @@ void BossGanon_DrawTriforce(BossGanon* this, PlayState* play) { } Matrix_Scale(this->fwork[GDF_TRIFORCE_SCALE], this->fwork[GDF_TRIFORCE_SCALE], 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon.c", 7779), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon.c", 7779); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanondorfTriforceDL)); Matrix_Pop(); @@ -3600,8 +3590,7 @@ void BossGanon_DrawDarkVortex(BossGanon* this, PlayState* play) { Matrix_Scale(this->fwork[GDF_VORTEX_SCALE], this->fwork[GDF_VORTEX_SCALE], this->fwork[GDF_VORTEX_SCALE], MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon.c", 7841), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon.c", 7841); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanondorfVortexDL)); Matrix_Pop(); @@ -3774,8 +3763,7 @@ void BossGanon_DrawShadowTexture(void* tex, BossGanon* this, PlayState* play) { } Matrix_Scale(0.95000005f, 1.0f, 0.95000005f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon.c", 8396), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gameState->gfxCtx, "../z_boss_ganon.c", 8396); gSPDisplayList(POLY_OPA_DISP++, gGanondorfShadowSetupDL); gDPLoadTextureBlock(POLY_OPA_DISP++, tex, G_IM_FMT_I, G_IM_SIZ_8b, 64, 64, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 6, 6, G_TX_NOLOD, G_TX_NOLOD); @@ -4145,8 +4133,7 @@ void BossGanon_LightBall_Draw(Actor* thisx, PlayState* play) { Matrix_Push(); Matrix_Translate(this->actor.world.pos.x, this->actor.floorHeight, this->actor.world.pos.z, MTXMODE_NEW); Matrix_Scale(this->actor.scale.x * 0.75f, 1.0f, this->actor.scale.z * 0.75f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon.c", 9875), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_ganon.c", 9875); gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightCoreDL); Matrix_Pop(); @@ -4161,8 +4148,7 @@ void BossGanon_LightBall_Draw(Actor* thisx, PlayState* play) { Matrix_Push(); Matrix_RotateY(i * (M_PI / 8), MTXMODE_APPLY); Matrix_RotateZ(this->fwork[GDF_FWORK_0], MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon.c", 9899), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_ganon.c", 9899); gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); Matrix_Pop(); @@ -4170,8 +4156,7 @@ void BossGanon_LightBall_Draw(Actor* thisx, PlayState* play) { } else if (this->unk_1A8 == 0) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_RotateZ((this->actor.shape.rot.z / (f32)0x8000) * 3.1416f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon.c", 9907), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_ganon.c", 9907); gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } @@ -4296,8 +4281,7 @@ void func_808E229C(Actor* thisx, PlayState* play2) { this->actor.scale.z * (1.0f - (i * 0.07000001f)), MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_RotateZ(((2.0f * (i * M_PI)) / 10.0f) + BINANG_TO_RAD_ALT(this->actor.shape.rot.z), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon.c", 10109), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_ganon.c", 10109); gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } @@ -4589,8 +4573,7 @@ void func_808E324C(Actor* thisx, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(10.0f, 10.0f, 10.0f, MTXMODE_APPLY); Matrix_RotateZ(Rand_CenteredFloat(M_PI), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon.c", 10534), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_ganon.c", 10534); gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightBallMaterialDL); gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); @@ -4846,8 +4829,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_Scale(eff->scale, eff->scale, eff->scale, MTXMODE_APPLY); Matrix_RotateY(eff->unk_48, MTXMODE_APPLY); Matrix_RotateX(eff->unk_44, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 10898), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_boss_ganon.c", 10898); gSPDisplayList(POLY_OPA_DISP++, gGanondorfWindowShardModelDL); } } @@ -4868,8 +4850,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(eff->scale, eff->scale, 1.0f, MTXMODE_APPLY); Matrix_RotateZ(eff->unk_3C, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 10932), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 10932); gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } } @@ -4892,8 +4873,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_RotateZ(eff->unk_3C, MTXMODE_APPLY); Matrix_Scale(eff->scale, eff->scale, eff->unk_38 * eff->scale, MTXMODE_APPLY); Matrix_RotateX(M_PI / 2, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 10971), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 10971); gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } } @@ -4918,8 +4898,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_Scale(eff->scale, eff->scale, 1.0f, MTXMODE_APPLY); Matrix_RotateX(eff->unk_3C * 1.3f, MTXMODE_APPLY); Matrix_RotateZ(eff->unk_3C, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 11023), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 11023); gSPDisplayList(POLY_XLU_DISP++, gGanondorfShockDL); } } @@ -4938,8 +4917,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_RotateZ(eff->unk_3C, MTXMODE_APPLY); Matrix_Scale(eff->scale, eff->scale, eff->scale, MTXMODE_APPLY); Matrix_RotateY(eff->unk_44, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 11074), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 11074); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sLightningTextures[eff->timer])); gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightningDL); } @@ -4957,8 +4935,7 @@ void BossGanon_DrawEffects(PlayState* play) { eff->timer * 2, eff->timer * -20, 32, 32)); Matrix_Translate(eff->pos.x, eff->pos.y, eff->pos.z, MTXMODE_NEW); Matrix_Scale(eff->scale, eff->unk_40 * eff->scale, eff->scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 11121), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 11121); gSPDisplayList(POLY_XLU_DISP++, gGanondorfImpactDarkDL); } } @@ -4975,8 +4952,7 @@ void BossGanon_DrawEffects(PlayState* play) { eff->timer * 2, eff->timer * -20, 32, 32)); Matrix_Translate(eff->pos.x, eff->pos.y, eff->pos.z, MTXMODE_NEW); Matrix_Scale(eff->scale, eff->unk_40 * eff->scale, eff->scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 11165), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 11165); gSPDisplayList(POLY_XLU_DISP++, gGanondorfImpactLightDL); } } @@ -4994,8 +4970,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_Translate(eff->pos.x, eff->pos.y, eff->pos.z, MTXMODE_NEW); Matrix_Scale((eff->scale * 200.0f) / 1500.0f, (eff->unk_40 * 200.0f) / 1500.0f, (eff->scale * 200.0f) / 1500.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 11209), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 11209); gSPDisplayList(POLY_XLU_DISP++, gGanondorfShockwaveDL); } } @@ -5013,8 +4988,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_Translate(eff->pos.x, eff->pos.y, eff->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(eff->scale, eff->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_ganon.c", 11250), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_ganon.c", 11250); gSPDisplayList(POLY_XLU_DISP++, gGanondorfDotDL); } } diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index 8168c80586..1081d2685a 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -2408,8 +2408,7 @@ void func_80903F38(BossGanon2* this, PlayState* play) { gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, D_80907080); Matrix_Translate(0.0f, 0.0f, 0.0f, MTXMODE_NEW); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon2.c", 5117), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_ganon2.c", 5117); gSPDisplayList(POLY_XLU_DISP++, gGanonSwordTrailDL); } @@ -2431,8 +2430,7 @@ void func_80904108(BossGanon2* this, PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 128); Matrix_Translate(-200.0f, 1086.0f, -200.0f, MTXMODE_NEW); Matrix_Scale(0.098000005f, 0.1f, 0.098000005f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon2.c", 5183), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon2.c", 5183); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanonFireRingDL)); Matrix_Pop(); @@ -2479,8 +2477,7 @@ void func_80904340(BossGanon2* this, PlayState* play) { Matrix_RotateY(M_PI, MTXMODE_APPLY); } - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon2.c", 5250), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon2.c", 5250); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanonLightningDL)); } } @@ -2503,8 +2500,7 @@ void func_8090464C(BossGanon2* this, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_RotateZ(-0.2f, MTXMODE_APPLY); Matrix_Scale(0.6f, 0.6f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon2.c", 5290), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon2.c", 5290); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanonTriforceDL)); Matrix_Pop(); @@ -2581,15 +2577,13 @@ void BossGanon2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* if ((limbIndex == GANON_LIMB_LEFT_SWORD) || (limbIndex == GANON_LIMB_RIGHT_SWORD)) { Matrix_Push(); Matrix_Scale(this->unk_224, this->unk_224, this->unk_224, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon2.c", 5522), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_ganon2.c", 5522); gSPDisplayList(POLY_OPA_DISP++, *dList); Matrix_Pop(); } else if ((limbIndex == GANON_LIMB_LEFT_HORN) || (limbIndex == GANON_LIMB_RIGHT_HORN)) { Matrix_Push(); Matrix_Scale(this->unk_228, this->unk_228, this->unk_228, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon2.c", 5533), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_ganon2.c", 5533); gSPDisplayList(POLY_OPA_DISP++, *dList); Matrix_Pop(); } @@ -2633,8 +2627,7 @@ void func_80904D88(BossGanon2* this, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(this->unk_30C, this->unk_30C, this->unk_30C, MTXMODE_APPLY); Matrix_RotateZ(Rand_CenteredFloat(M_PI), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon2.c", 5618), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon2.c", 5618); gSPDisplayList(POLY_XLU_DISP++, gGanonLightOrbModelDL); } } @@ -2657,12 +2650,10 @@ void func_80904FC8(BossGanon2* this, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(this->unk_384, this->unk_384, this->unk_384, MTXMODE_APPLY); Matrix_RotateZ(this->unk_388, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon2.c", 5661), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon2.c", 5661); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanonLightOrbModelDL)); Matrix_RotateZ(this->unk_388 * -2.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon2.c", 5664), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon2.c", 5664); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanonLightOrbModelDL)); } @@ -2698,8 +2689,7 @@ void func_8090523C(BossGanon2* this, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(200.0f * phi_f20, 200.0f * phi_f20, 1.0f, MTXMODE_APPLY); Matrix_RotateZ(Rand_ZeroFloat(2.0f * M_PI), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon2.c", 5721), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon2.c", 5721); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanonLightOrbModelDL)); } } @@ -2717,8 +2707,7 @@ void BossGanon2_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s if (limbIndex == GANONDORF_LIMB_JEWEL) { OPEN_DISPS(play->state.gfxCtx, "../z_boss_ganon2.c", 5749); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon2.c", 5752), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_ganon2.c", 5752); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanondorfEyesDL)); CLOSE_DISPS(play->state.gfxCtx, "../z_boss_ganon2.c", 5754); @@ -2745,8 +2734,7 @@ void func_80905674(BossGanon2* this, PlayState* play) { Matrix_RotateY(-M_PI / 4.0f, MTXMODE_APPLY); Matrix_Scale(0.040000003f, 0.040000003f, this->unk_380, MTXMODE_APPLY); Matrix_RotateX(M_PI / 2.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon2.c", 5814), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gameState->gfxCtx, "../z_boss_ganon2.c", 5814); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanonZeldaMagicDL)); Matrix_Pop(); @@ -2785,8 +2773,7 @@ void BossGanon2_Draw(Actor* thisx, PlayState* play) { Matrix_Translate(0.0f, -4000.0f, 4000.0f, MTXMODE_APPLY); Matrix_RotateX(this->unk_394, MTXMODE_APPLY); Matrix_Translate(0.0f, 4000.0f, -4000.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon2.c", 5910), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_ganon2.c", 5910); SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, BossGanon2_OverrideLimbDraw, BossGanon2_PostLimbDraw, this); @@ -2925,8 +2912,7 @@ void BossGanon2_DrawEffects(PlayState* play) { Matrix_Scale(0.03f, 0.03f, 0.03f, MTXMODE_APPLY); Matrix_RotateY(effect->unk_38.z, MTXMODE_APPLY); Matrix_RotateX(effect->unk_38.y, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon2.c", 6116), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_ganon2.c", 6116); gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 0, 0 - (play->gameplayFrames & 0x7F), 32, 32)); gSPDisplayList(POLY_OPA_DISP++, gGanonMasterSwordDL); @@ -2943,8 +2929,7 @@ void BossGanon2_DrawEffects(PlayState* play) { Matrix_Translate(effect->position.x + temp_f0, 1086.0f, (effect->position.z - 1.0f) + temp_f0, MTXMODE_NEW); Matrix_RotateY(angle, MTXMODE_APPLY); Matrix_Scale(1.0f, 0.0f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon2.c", 6155), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_ganon2.c", 6155); gSPDisplayList(POLY_XLU_DISP++, gGanonMasterSwordShadowDL); } } @@ -2962,8 +2947,7 @@ void BossGanon2_DrawEffects(PlayState* play) { Matrix_RotateY(effect->unk_38.z, MTXMODE_APPLY); Matrix_RotateX(effect->unk_38.y, MTXMODE_APPLY); Matrix_RotateZ(effect->unk_38.x, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_ganon2.c", 6179), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_ganon2.c", 6179); gSPDisplayList(POLY_OPA_DISP++, gGanonRubbleDL); } } @@ -3082,8 +3066,7 @@ void BossGanon2_DrawShadowTexture(void* shadowTexture, BossGanon2* this, PlaySta gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 0); Matrix_Translate(this->actor.world.pos.x, this->actor.floorHeight, this->actor.world.pos.z - 20.0f, MTXMODE_NEW); Matrix_Scale(1.65f, 1.0f, 1.65f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gameState->gfxCtx, "../z_boss_ganon2.c", 6457), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gameState->gfxCtx, "../z_boss_ganon2.c", 6457); gSPDisplayList(POLY_OPA_DISP++, gGanonShadowMaterialDL); gDPLoadTextureBlock(POLY_OPA_DISP++, shadowTexture, G_IM_FMT_I, G_IM_SIZ_8b, 64, 64, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 6, 6, G_TX_NOLOD, G_TX_NOLOD); diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index fe72e733d3..6c6bb04d34 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -2005,8 +2005,7 @@ s32 BossGoma_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f if (*dList != NULL) { Matrix_Push(); Matrix_Scale(this->eyeIrisScaleX, this->eyeIrisScaleY, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_goma.c", 4815), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_goma.c", 4815); gSPDisplayList(POLY_OPA_DISP++, *dList); Matrix_Pop(); } @@ -2026,8 +2025,7 @@ s32 BossGoma_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f Matrix_Scale(this->tailLimbsScale[limbIndex - BOSSGOMA_LIMB_TAIL4], this->tailLimbsScale[limbIndex - BOSSGOMA_LIMB_TAIL4], this->tailLimbsScale[limbIndex - BOSSGOMA_LIMB_TAIL4], MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_goma.c", 4836), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_goma.c", 4836); gSPDisplayList(POLY_OPA_DISP++, *dList); Matrix_Pop(); } diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index 2e3ddd1c23..7bbc960cce 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -2537,8 +2537,7 @@ void BossMo_DrawTentacle(BossMo* this, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(phi_f22, phi_f22, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_mo.c", 6511), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_mo.c", 6511); gSPDisplayList(POLY_OPA_DISP++, gMorphaBubbleDL); @@ -2597,8 +2596,7 @@ void BossMo_DrawWater(BossMo* this, PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, 80); Matrix_Scale(0.5f, 1.0f, 0.5f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_mo.c", 6675), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_mo.c", 6675); gSPDisplayList(POLY_XLU_DISP++, gMorphaWaterDL); @@ -2628,8 +2626,7 @@ void BossMo_DrawCore(Actor* thisx, PlayState* play) { Matrix_RotateX(this->work[MO_TENT_MOVE_TIMER] * 0.5f, MTXMODE_APPLY); Matrix_RotateZ(this->work[MO_TENT_MOVE_TIMER] * 0.8f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_mo.c", 6735), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_mo.c", 6735); gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 255, 255, (s8)this->baseAlpha); @@ -2666,8 +2663,7 @@ void BossMo_DrawCore(Actor* thisx, PlayState* play) { Matrix_Translate(this->actor.world.pos.x, groundLevel, this->actor.world.pos.z, MTXMODE_NEW); Matrix_Scale(0.23f, 1.0f, 0.23f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_mo.c", 6820), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_mo.c", 6820); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gCircleShadowDL)); } @@ -2725,8 +2721,7 @@ void BossMo_DrawCore(Actor* thisx, PlayState* play) { Matrix_RotateX(M_PI / 2.0f, MTXMODE_APPLY); Matrix_Scale(0.05f, 1.0f, 0.05f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_mo.c", 6941), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_mo.c", 6941); gSPDisplayList(POLY_XLU_DISP++, gMorphaWaterDL); } @@ -2938,8 +2933,7 @@ void BossMo_DrawEffects(BossMoEffect* effect, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_Scale(effect->scale, 1.0f, effect->scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_mo.c", 7294), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_mo.c", 7294); gSPDisplayList(POLY_XLU_DISP++, gEffWaterRippleDL); } @@ -2961,8 +2955,7 @@ void BossMo_DrawEffects(BossMoEffect* effect, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_Scale(effect->scale, 1.0f, effect->scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_mo.c", 7330), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_mo.c", 7330); gSPDisplayList(POLY_XLU_DISP++, gEffShockwaveDL); } @@ -2990,8 +2983,7 @@ void BossMo_DrawEffects(BossMoEffect* effect, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale / effect->fwork[MO_FX_STRETCH], effect->fwork[MO_FX_STRETCH] * effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_mo.c", 7373), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_mo.c", 7373); gSPDisplayList(POLY_XLU_DISP++, gMorphaDropletModelDL); } @@ -3016,8 +3008,7 @@ void BossMo_DrawEffects(BossMoEffect* effect, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_Scale(effect->scale, 1.0f, effect->scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_mo.c", 7441), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_mo.c", 7441); gSPDisplayList(POLY_XLU_DISP++, gMorphaWetSpotModelDL); } @@ -3040,8 +3031,7 @@ void BossMo_DrawEffects(BossMoEffect* effect, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_mo.c", 7476), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_boss_mo.c", 7476); gSPDisplayList(POLY_OPA_DISP++, gMorphaBubbleDL); } diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index e7aee5729e..26cac6647b 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -2916,8 +2916,7 @@ void BossSst_DrawHead(Actor* thisx, PlayState* play) { this->actor.world.pos.z + vanishMaskOffset.z, MTXMODE_NEW); Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_sst.c", 6934), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_sst.c", 6934); gSPDisplayList(POLY_XLU_DISP++, sIntroVanishDList); } @@ -3183,8 +3182,7 @@ void BossSst_DrawEffects(Actor* thisx, PlayState* play) { Matrix_RotateZYX(effect->rot.x, effect->rot.y, effect->rot.z, MTXMODE_APPLY); Matrix_Scale(effect->scale * 0.001f, effect->scale * 0.001f, effect->scale * 0.001f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_sst.c", 7350), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_sst.c", 7350); gSPDisplayList(POLY_XLU_DISP++, gBongoIceShardDL); } } @@ -3206,8 +3204,7 @@ void BossSst_DrawEffects(Actor* thisx, PlayState* play) { gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 30, 0, 30, effect->alpha * effect->move); gDPSetEnvColor(POLY_XLU_DISP++, 30, 0, 30, 0); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_sst.c", 7396), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_sst.c", 7396); gSPDisplayList(POLY_XLU_DISP++, gEffFireCircleDL); } } @@ -3220,8 +3217,7 @@ void BossSst_DrawEffects(Actor* thisx, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_Scale(effect->scale * 0.001f, 1.0f, effect->scale * 0.001f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_sst.c", 7423), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_sst.c", 7423); gSPDisplayList(POLY_XLU_DISP++, sShadowDList); effect++; } diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 9d1ae9c259..8c372064be 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -3223,8 +3223,7 @@ void BossTw_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot Matrix_MultVec3f(&D_8094A950, &this->crownPos); if (this->unk_5F8 != 0) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6190), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6190); if (this->actor.params == TW_KOTAKE) { gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaKotakeIceHairDL)); } else { @@ -3241,8 +3240,7 @@ void BossTw_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot Matrix_MultVec3f(&D_8094A95C[4], &this->scepterFlamePos[4]); if (this->scepterAlpha > 0.0f) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6221), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6221); if (this->actor.params == TW_KOTAKE) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 225, 255, (s16)this->scepterAlpha); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaKotakeIceBroomHeadDL)); @@ -3270,8 +3268,7 @@ void func_80941BC0(BossTw* this, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); Matrix_Translate(this->groundBlastPos2.x, this->groundBlastPos2.y, this->groundBlastPos2.z, MTXMODE_NEW); Matrix_Scale(this->workf[UNK_F12], this->workf[UNK_F12], this->workf[UNK_F12], MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6358), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6358); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (s16)this->workf[UNK_F11]); gDPSetEnvColor(POLY_XLU_DISP++, 0, 40, 30, 80); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaIcePoolDL)); @@ -3282,12 +3279,10 @@ void func_80941BC0(BossTw* this, PlayState* play) { (u32)this->workf[UNK_F16] & 0x3F, (this->work[CS_TIMER_2] * 4) & 0x3F, 0x10, 0x10)); Matrix_Push(); Matrix_RotateY(this->workf[UNK_F15], MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6423), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6423); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaIcePoolShineDL)); Matrix_Pop(); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6427), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6427); gSPSegment(POLY_XLU_DISP++, 0xD, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, this->work[CS_TIMER_2] & 0x7F, (this->work[CS_TIMER_2] * 8) & 0xFF, 0x20, 0x40, 1, @@ -3315,16 +3310,14 @@ void func_80942180(BossTw* this, PlayState* play) { gSPSegment(POLY_XLU_DISP++, 8, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, (-this->work[CS_TIMER_1]) & 0x7F, 0, 0x20, 0x20, 1, (this->work[CS_TIMER_1] * 2) & 0x7F, 0, 0x20, 0x20)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6497), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6497); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 100, 40, 00, (s16)this->workf[KM_GRND_CRTR_A]); gDPPipeSync(POLY_XLU_DISP++); gDPSetEnvColor(POLY_XLU_DISP++, 255, 245, 255, 128); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaFirePoolDL)); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6514), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6514); gSPSegment(POLY_XLU_DISP++, 8, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, this->work[CS_TIMER_1] & 0x7F, (-this->work[CS_TIMER_1] * 6) & 0xFF, 0x20, 0x40, 1, @@ -3341,8 +3334,7 @@ void func_80942180(BossTw* this, PlayState* play) { gDPPipeSync(POLY_XLU_DISP++); gDPSetEnvColor(POLY_XLU_DISP++, 200, 235, 240, 128); Matrix_Scale(this->workf[KM_GD_FLM_SCL], this->workf[KM_GD_FLM_SCL], this->workf[KM_GD_FLM_SCL], MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6575), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6575); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaBigFlameDL)); Matrix_Pop(); @@ -3364,8 +3356,7 @@ void func_809426F0(BossTw* this, PlayState* play) { Matrix_Scale(this->spawnPortalScale / 2000.0f, this->spawnPortalScale / 2000.0f, this->spawnPortalScale / 2000.0f, MTXMODE_APPLY); Matrix_RotateZ(this->portalRotation, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6614), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6614); if (this->actor.params == TW_KOTAKE) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 135, 175, 165, (s16)this->spawnPortalAlpha); @@ -3396,8 +3387,7 @@ void func_809426F0(BossTw* this, PlayState* play) { (u8)((-this->work[CS_TIMER_2] * 15) + (i * 50)), 0x20, 0x40, 1, 0, 0, 0x20, 0x20)); Matrix_Scale(0.4f, 0.4f, 0.4f, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6751), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6751); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaFireDL)); Matrix_Pop(); } @@ -3433,8 +3423,7 @@ void func_80942C70(Actor* thisx, PlayState* play) { Matrix_RotateX(this->beamPitch, MTXMODE_APPLY); Matrix_RotateZ(this->beamRoll, MTXMODE_APPLY); Matrix_Scale(this->beamScale, this->beamScale, (this->beamDist * 0.01f * 98.0f) / 20000.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6846), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6846); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaBeamDL)); if (this->beamReflectionDist > 10.0f) { @@ -3445,8 +3434,7 @@ void func_80942C70(Actor* thisx, PlayState* play) { Matrix_RotateZ(this->beamRoll, MTXMODE_APPLY); Matrix_Scale(this->beamScale, this->beamScale, (this->beamReflectionDist * 0.01f * 100.0f) / 20000.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6870), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6870); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaBeamDL)); } @@ -3465,16 +3453,14 @@ void func_80943028(Actor* thisx, PlayState* play) { Matrix_Translate(this->actor.world.pos.x, this->actor.world.pos.y + 57.0f, this->actor.world.pos.z, MTXMODE_NEW); Matrix_Scale(this->workf[UNK_F17], this->workf[UNK_F17], this->workf[UNK_F17], MTXMODE_APPLY); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6908), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6908); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaHaloDL)); Gfx_SetupDL_44Xlu(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 0, 0, 200); Matrix_Translate(this->actor.world.pos.x, 240.0f, this->actor.world.pos.z, MTXMODE_NEW); Matrix_Scale((this->actor.scale.x * 4000.0f) / 100.0f, 1.0f, (this->actor.scale.x * 4000.0f) / 100.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 6926), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 6926); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gCircleShadowDL)); Matrix_Pop(); @@ -3667,8 +3653,7 @@ void BossTw_TwinrovaPostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Ve case TWINROVA_LIMB_BROOM_FIRE_TRAIL: Matrix_Push(); Matrix_Scale(this->workf[UNK_F12], this->workf[UNK_F12], this->workf[UNK_F12], MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 7295), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 7295); Matrix_Pop(); gSPDisplayList(POLY_XLU_DISP++, *dList); break; @@ -3718,8 +3703,7 @@ void BossTw_ShieldChargeDraw(BossTw* this, PlayState* play) { if (temp_t0 != 0) { Matrix_Mult(&player->shieldMf, MTXMODE_NEW); Matrix_RotateX(M_PI / 2.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 7362), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 7362); temp_a0 = (Math_SinS(this->work[CS_TIMER_1] * 2730 * temp_t0) * D_8094C854 * 0.5f) + (D_8094C854 * 0.5f); if (sShieldFireCharge != 0) { gDPSetEnvColor(POLY_XLU_DISP++, 255, 245, 255, temp_a0); @@ -3759,8 +3743,7 @@ void BossTw_ShieldChargeDraw(BossTw* this, PlayState* play) { Matrix_Mult(&player->shieldMf, MTXMODE_NEW); Matrix_RotateX(M_PI / 2.0f, MTXMODE_APPLY); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 7486), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 7486); if (sShieldFireCharge != 0) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 220, 20, (s16)D_8094C858); gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 20, 110); @@ -3795,29 +3778,25 @@ void BossTw_SpawnPortalDraw(BossTw* this, PlayState* play) { Matrix_Translate(0.0f, 232.0f, -600.0f, MTXMODE_NEW); Matrix_Scale(this->spawnPortalScale, this->spawnPortalScale, this->spawnPortalScale, MTXMODE_APPLY); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 0, 0, (s16)this->spawnPortalAlpha); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 7582), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 7582); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaSpawnPortalShadowDL)); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 135, 175, 165, (s16)this->spawnPortalAlpha); Matrix_Translate(0.0f, 2.0f, 0.0f, MTXMODE_APPLY); Matrix_RotateX(M_PI / 2.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 7596), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 7596); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaKotakeMagicSigilDL)); Matrix_Translate(0.0f, 232.0f, 600.0f, MTXMODE_NEW); Matrix_Scale(this->spawnPortalScale, this->spawnPortalScale, this->spawnPortalScale, MTXMODE_APPLY); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 0, 0, (s16)this->spawnPortalAlpha); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 7617), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 7617); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaSpawnPortalShadowDL)); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 0, (s16)this->spawnPortalAlpha); Matrix_Translate(0.0f, 2.0f, 0.0f, MTXMODE_APPLY); Matrix_RotateX(M_PI / 2.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 7631), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 7631); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaKoumeMagicSigilDL)); Matrix_Pop(); @@ -3836,8 +3815,7 @@ void func_80944C50(BossTw* this, PlayState* play) { Matrix_Scale(0.35f, 0.35f, 0.35f, MTXMODE_APPLY); Matrix_Push(); Matrix_Scale(this->workf[UNK_F19], this->workf[UNK_F19], this->workf[UNK_F19], MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 7671), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 7671); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaLightCircleDL)); Matrix_Pop(); @@ -3845,8 +3823,7 @@ void func_80944C50(BossTw* this, PlayState* play) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, -sKoumePtr->work[CS_TIMER_1] * 2, 0, 0x20, 0x20, 1, -sKoumePtr->work[CS_TIMER_1] * 2, 0, 0x20, 0x40)); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (s16)this->workf[UNK_F18] / 2); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 7694), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 7694); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaLightRaysDL)); gSPSegment(POLY_XLU_DISP++, 8, @@ -3859,8 +3836,7 @@ void func_80944C50(BossTw* this, PlayState* play) { scale = CLAMP_MAX(scale, 1.0f); Matrix_Scale(scale, 1.0f, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 7728), - G_MTX_LOAD | G_MTX_MODELVIEW | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 7728); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaLightPillarDL)); Matrix_Pop(); @@ -4463,8 +4439,7 @@ void BossTw_BlastDraw(Actor* thisx, PlayState* play2) { Matrix_Scale(this->actor.scale.x * scaleFactor, this->actor.scale.y * scaleFactor, this->actor.scale.z * scaleFactor, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 8865), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 8865); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaFireDL)); } break; @@ -4487,8 +4462,7 @@ void BossTw_BlastDraw(Actor* thisx, PlayState* play2) { Matrix_Scale(this->actor.scale.x * scaleFactor, this->actor.scale.y * scaleFactor, this->actor.scale.z * scaleFactor, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 9004), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 9004); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaIceModelDL)); } break; @@ -4527,8 +4501,7 @@ void BossTw_DrawDeathBall(Actor* thisx, PlayState* play2) { Matrix_Scale(this->actor.scale.x * scaleFactor, this->actor.scale.y * scaleFactor, this->actor.scale.z * scaleFactor, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 9071), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 9071); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaFireDL)); } } else { @@ -4547,8 +4520,7 @@ void BossTw_DrawDeathBall(Actor* thisx, PlayState* play2) { Matrix_Scale(this->actor.scale.x * scaleFactor, this->actor.scale.y * scaleFactor, this->actor.scale.z * scaleFactor, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_tw.c", 9107), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_tw.c", 9107); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaIceModelDL)); } } @@ -4925,8 +4897,7 @@ void BossTw_DrawEffects(PlayState* play) { Matrix_Translate(currentEffect->pos.x, currentEffect->pos.y, currentEffect->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(currentEffect->workf[EFF_SCALE], currentEffect->workf[EFF_SCALE], 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_tw.c", 9617), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_tw.c", 9617); gSPDisplayList(POLY_XLU_DISP++, gTwinrovaMagicParticleModelDL); } @@ -4950,8 +4921,7 @@ void BossTw_DrawEffects(PlayState* play) { Matrix_Translate(currentEffect->pos.x, currentEffect->pos.y, currentEffect->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(currentEffect->workf[EFF_SCALE], currentEffect->workf[EFF_SCALE], 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_tw.c", 9660), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_tw.c", 9660); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaIceModelDL)); } currentEffect++; @@ -4975,8 +4945,7 @@ void BossTw_DrawEffects(PlayState* play) { Matrix_Translate(currentEffect->pos.x, currentEffect->pos.y, currentEffect->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(currentEffect->workf[EFF_SCALE], currentEffect->workf[EFF_SCALE], 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_tw.c", 9709), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_tw.c", 9709); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaFireDL)); } @@ -5018,8 +4987,7 @@ void BossTw_DrawEffects(PlayState* play) { Matrix_RotateZ(currentEffect->workf[EFF_ROLL], MTXMODE_APPLY); Matrix_RotateX(M_PI / 2.0f, MTXMODE_APPLY); Matrix_Scale(currentEffect->workf[EFF_SCALE], 1.0f, currentEffect->workf[EFF_SCALE], MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_tw.c", 9775), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_tw.c", 9775); gDPSetRenderMode(POLY_XLU_DISP++, G_RM_PASS, G_RM_AA_ZB_XLU_SURF2); gSPClearGeometryMode(POLY_XLU_DISP++, G_CULL_BACK | G_FOG); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaEffectHaloDL)); @@ -5066,8 +5034,7 @@ void BossTw_DrawEffects(PlayState* play) { currentEffect->workf[EFF_SCALE], MTXMODE_APPLY); Matrix_RotateY(BossTw_RandZeroOne() * M_PI, MTXMODE_APPLY); Matrix_RotateX((BossTw_RandZeroOne() - 0.5f) * M_PI * 0.5f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_tw.c", 9855), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_tw.c", 9855); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaIceModelDL)); } } @@ -5095,8 +5062,7 @@ void BossTw_DrawEffects(PlayState* play) { Matrix_Translate(currentEffect->pos.x, currentEffect->pos.y, currentEffect->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(currentEffect->workf[EFF_SCALE], currentEffect->workf[EFF_SCALE], 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_tw.c", 9911), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_tw.c", 9911); if (currentEffect->work[EFF_ARGS] == 0) { gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gTwinrovaIceModelDL)); diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index 5072670e7d..ccd5466034 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -2896,12 +2896,10 @@ void BossVa_BodyPostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* Matrix_MultVec3f(&sp78, &this->unk_1D8); } else if ((limbIndex >= 10) && (limbIndex < 20) && (sBodyBari[limbIndex - 10] != 0)) { if (((limbIndex >= 16) || (limbIndex == 10)) && (sFightPhase <= PHASE_3)) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_va.c", 4208), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_va.c", 4208); gSPDisplayList(POLY_XLU_DISP++, gBarinadeDL_008BB8); } else if ((limbIndex >= 11) && (sFightPhase <= PHASE_2)) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_va.c", 4212), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_va.c", 4212); gSPDisplayList(POLY_XLU_DISP++, gBarinadeDL_008BB8); } @@ -2915,12 +2913,10 @@ void BossVa_BodyPostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, (play->gameplayFrames * 10) % 128, 16, 32, 1, 0, (play->gameplayFrames * 5) % 128, 16, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_va.c", 4232), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_va.c", 4232); gSPDisplayList(POLY_XLU_DISP++, gBarinadeDL_008D70); } else if ((*dList != NULL) && (limbIndex >= 29) && (limbIndex < 56)) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_va.c", 4236), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_va.c", 4236); gSPDisplayList(POLY_XLU_DISP++, *dList); } else if ((limbIndex == 24) && (sCsState < DEATH_START)) { sp78.x = (this->actor.shape.yOffset + 450.0f) + -140.0f; @@ -3142,12 +3138,10 @@ void BossVa_BariPostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* gSPSegment(POLY_XLU_DISP++, 0x0A, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, (play->gameplayFrames * 10) % 32, 16, 32, 1, 0, (play->gameplayFrames * -5) % 32, 16, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_va.c", 4508), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_va.c", 4508); gSPDisplayList(POLY_XLU_DISP++, gBarinadeDL_000FA0); } else if ((limbIndex == 3) || (limbIndex == 4)) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_va.c", 4512), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_va.c", 4512); gSPDisplayList(POLY_XLU_DISP++, *dList); } @@ -3512,8 +3506,7 @@ void BossVa_DrawEffects(BossVaEffect* effect, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_RotateZ((effect->rot.z / (f32)0x8000) * 3.1416f, MTXMODE_APPLY); Matrix_Scale(effect->scale * 0.0185f, effect->scale * 0.0185f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_va.c", 4976), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_va.c", 4976); gSPDisplayList(POLY_XLU_DISP++, gBarinadeDL_015710); } } @@ -3531,8 +3524,7 @@ void BossVa_DrawEffects(BossVaEffect* effect, PlayState* play) { Matrix_Scale(effect->scale, effect->scale, effect->scale, MTXMODE_APPLY); Matrix_RotateZ((effect->rot.z / (f32)0x8000) * 3.1416f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_va.c", 5002), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_va.c", 5002); gDPPipeSync(POLY_XLU_DISP++); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sSparkBallTex[effect->mode])); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, effect->primColor[0], effect->primColor[1], effect->primColor[2], @@ -3568,8 +3560,7 @@ void BossVa_DrawEffects(BossVaEffect* effect, PlayState* play) { Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); gDPPipeSync(POLY_XLU_DISP++); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_va.c", 5052), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_va.c", 5052); gSPDisplayList(POLY_XLU_DISP++, gBarinadeDL_009468); } } @@ -3591,8 +3582,7 @@ void BossVa_DrawEffects(BossVaEffect* effect, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_Scale(effect->scale, effect->scale, effect->scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_va.c", 5080), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_boss_va.c", 5080); gSPDisplayList(POLY_OPA_DISP++, gBarinadeDL_012948); } } @@ -3623,8 +3613,7 @@ void BossVa_DrawEffects(BossVaEffect* effect, PlayState* play) { Matrix_RotateY(-(effect->offset.x * 0.13f), MTXMODE_APPLY); Matrix_RotateX(-(effect->offset.x * 0.115f), MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_va.c", 5124), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_boss_va.c", 5124); gSPDisplayList(POLY_OPA_DISP++, gBarinadeDL_012C50); } } @@ -3646,8 +3635,7 @@ void BossVa_DrawEffects(BossVaEffect* effect, PlayState* play) { Matrix_RotateZYX(effect->rot.x, effect->rot.y, 0, MTXMODE_APPLY); Matrix_Scale(effect->scale, effect->scale, effect->scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_va.c", 5152), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_va.c", 5152); gSPDisplayList(POLY_XLU_DISP++, gBarinadeDL_013638); } } @@ -3668,8 +3656,7 @@ void BossVa_DrawEffects(BossVaEffect* effect, PlayState* play) { Matrix_RotateZ((effect->rot.z / (f32)0x8000) * 3.1416f, MTXMODE_APPLY); Matrix_Scale(effect->scale * 0.02f, effect->scale * 0.02f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_va.c", 5180), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_va.c", 5180); gSPDisplayList(POLY_XLU_DISP++, gBarinadeDL_015710); } } @@ -3690,8 +3677,7 @@ void BossVa_DrawEffects(BossVaEffect* effect, PlayState* play) { Matrix_RotateY((effect->rot.y / (f32)0x8000) * 3.1416f, MTXMODE_APPLY); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_boss_va.c", 5208), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_boss_va.c", 5208); gSPDisplayList(POLY_XLU_DISP++, gBarinadeDL_008F70); } } @@ -3986,8 +3972,7 @@ void BossVa_DrawDoor(PlayState* play, s16 scale) { Matrix_RotateZ(segAngle, MTXMODE_APPLY); Matrix_Translate(0.0f, doorPieceLength[i] * yScale, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_boss_va.c", 5621), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_boss_va.c", 5621); gSPDisplayList(POLY_OPA_DISP++, doorPieceDispList[i]); segAngle -= M_PI / 4; } diff --git a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c index 5d7e6e9144..1887f64672 100644 --- a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c +++ b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c @@ -581,8 +581,7 @@ void func_80967FFC(Actor* thisx, PlayState* play) { for (i = 0, j = 0; i < 6; i++, j += 2) { Matrix_RotateZ(M_PI / 3, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_6k.c", 1115), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_6k.c", 1115); gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, colors[j + 0].r, colors[j + 0].g, colors[j + 0].b, 255); gDPSetEnvColor(POLY_XLU_DISP++, colors[j + 1].r, colors[j + 1].g, colors[j + 1].b, 255); @@ -624,8 +623,7 @@ void func_80968298(Actor* thisx, PlayState* play) { } Matrix_RotateX(-M_PI / 2, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_6k.c", 1170), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_6k.c", 1170); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 210, 210, 210, 255); gDPSetEnvColor(POLY_XLU_DISP++, 100, 100, 100, 255); gSPSegment(POLY_XLU_DISP++, 0x08, @@ -634,8 +632,7 @@ void func_80968298(Actor* thisx, PlayState* play) { (timer1 * 12) & 0xFFF, 64, 32)); gSPDisplayList(POLY_XLU_DISP++, object_demo_6k_DL_0039D0); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_6k.c", 1189), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_6k.c", 1189); Gfx_SetupDL_25Xlu(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255); gDPSetEnvColor(POLY_XLU_DISP++, 50, 50, 50, 255); @@ -665,13 +662,11 @@ void func_8096865C(Actor* thisx, PlayState* play) { Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); Matrix_Push(); Matrix_RotateZ(DEG_TO_RAD(this->timer2 * 6), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_6k.c", 1230), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_6k.c", 1230); gSPDisplayList(POLY_XLU_DISP++, displayList); Matrix_Pop(); Matrix_RotateZ(DEG_TO_RAD(-(f32)(this->timer2 * 6)), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_6k.c", 1236), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_6k.c", 1236); gSPDisplayList(POLY_XLU_DISP++, displayList); } @@ -702,8 +697,7 @@ void func_809688C4(Actor* thisx, PlayState* play2) { this->unk_234[i] * D_8096931C[(frames + i) & 3], this->unk_234[i] * D_8096931C[(frames + i) & 3], MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_6k.c", 1297), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_6k.c", 1297); gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); Matrix_Pop(); } @@ -726,8 +720,7 @@ void func_80968B70(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); Matrix_RotateX(M_PI / 2, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_6k.c", 1322), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_6k.c", 1322); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0xFF - ((timer2 * 2) & 0xFF), 0, 32, 32, 1, 0xFF - ((timer2 * 2) & 0xFF), (timer2 * 15) & 0x3FF, 16, 64)); @@ -775,8 +768,7 @@ void func_80968FB0(Actor* thisx, PlayState* play) { scaleFactor = ((s16)D_809693CC[(frames * 4) & 0xF] * 0.01f) + 1.0f; Matrix_Scale(this->actor.scale.x * scaleFactor, this->actor.scale.y * scaleFactor, this->actor.scale.z * scaleFactor, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_6k.c", 1394), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_6k.c", 1394); gSPSegment(POLY_XLU_DISP++, 0x08, displayList); gDPPipeSync(displayList++); gDPSetPrimColor(displayList++, 0, 0x80, 255, 255, 255, this->unk_293); diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index 001af32b89..63087d7425 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -1662,10 +1662,8 @@ void DemoEffect_DrawJewel(Actor* thisx, PlayState* play2) { if (!frames) {} gSPSegment(POLY_OPA_DISP++, 8, Gfx_TexScroll(play->state.gfxCtx, (u8)frames, (u8)frames, 16, 16)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2597), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2599), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2597); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2599); Gfx_SetupDL_25Xlu(play->state.gfxCtx); func_8002ED80(&this->actor, play, 0); gDPSetPrimColor(POLY_XLU_DISP++, 0, 128, this->primXluColor[0], this->primXluColor[1], @@ -1706,24 +1704,21 @@ void DemoEffect_DrawCrystalLight(Actor* thisx, PlayState* play) { Matrix_RotateY(0.0f, MTXMODE_APPLY); Matrix_RotateX(DEG_TO_RAD(11), MTXMODE_APPLY); Matrix_Translate(0.0f, 150.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2661), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2661); gSPDisplayList(POLY_XLU_DISP++, gCrystalLightDL); Matrix_Pop(); Matrix_Push(); Matrix_RotateY(DEG_TO_RAD(120), MTXMODE_APPLY); Matrix_RotateX(DEG_TO_RAD(11), MTXMODE_APPLY); Matrix_Translate(0.0f, 150.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2672), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2672); gSPDisplayList(POLY_XLU_DISP++, gCrystalLightDL); Matrix_Pop(); Matrix_Push(); Matrix_RotateY(DEG_TO_RAD(240), MTXMODE_APPLY); Matrix_RotateX(DEG_TO_RAD(11), MTXMODE_APPLY); Matrix_Translate(0.0f, 150.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2683), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2683); gSPDisplayList(POLY_XLU_DISP++, gCrystalLightDL); Matrix_Pop(); CLOSE_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2688); @@ -1737,8 +1732,7 @@ void DemoEffect_DrawFireBall(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 64, 64, 255, 200, 0, 255); gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 255); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2709), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2709); gSPMatrix(POLY_XLU_DISP++, play->billboardMtx, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPSegment(POLY_XLU_DISP++, 8, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 0, 32, 32, 1, 0, @@ -1781,8 +1775,7 @@ void DemoEffect_DrawGodLgt(Actor* thisx, PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, this->envXluColor[0], this->envXluColor[1], this->envXluColor[2], 255); Gfx_SetupDL_25Xlu(play->state.gfxCtx); Matrix_Push(); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2801), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2801); gSPDisplayList(POLY_XLU_DISP++, gGoldenGoddessAuraDL); Gfx_SetupDL_25Opa(play->state.gfxCtx); func_8002EBCC(&this->actor, play, 0); @@ -1798,8 +1791,7 @@ void DemoEffect_DrawGodLgt(Actor* thisx, PlayState* play) { Matrix_RotateX(M_PI / 2.0f, MTXMODE_APPLY); Matrix_Translate(0.0f, -140.0f, 0.0f, MTXMODE_APPLY); Matrix_Scale(0.03f, 0.03f, 0.03f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2824), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2824); gSPDisplayList(POLY_OPA_DISP++, gGoldenGoddessBodyDL); } @@ -1829,14 +1821,12 @@ void DemoEffect_DrawLightEffect(Actor* thisx, PlayState* play) { Matrix_Push(); Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); Matrix_RotateZ(DEG_TO_RAD(this->light.rotation), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2866), - G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2866); gSPDisplayList(POLY_XLU_DISP++, flashDList); Matrix_Pop(); Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); Matrix_RotateZ(DEG_TO_RAD(-(f32)this->light.rotation), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2874), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2874); gSPDisplayList(POLY_XLU_DISP++, flashDList); } } @@ -1854,8 +1844,7 @@ void DemoEffect_DrawBlueOrb(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); Matrix_RotateZ(BINANG_TO_RAD(this->blueOrb.rotation), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2901), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2901); this->blueOrb.rotation += 0x01F4; gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); CLOSE_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2907); @@ -1870,8 +1859,7 @@ void DemoEffect_DrawLgtShower(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 64, 64, 255, 255, 160, this->lgtShower.alpha); gDPSetEnvColor(POLY_XLU_DISP++, 50, 200, 0, 255); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2927), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2927); gSPSegment(POLY_XLU_DISP++, 8, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, (frames * 5) % 1024, 0, 256, 64, 1, (frames * 10) % 128, 512 - ((frames * 50) % 512), 32, 16)); @@ -1889,8 +1877,7 @@ void DemoEffect_DrawLightRing(Actor* thisx, PlayState* play2) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 128, 128, 170, 255, 255, this->lightRing.alpha); gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, 255); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2963), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 2963); gSPSegment(POLY_XLU_DISP++, 8, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, (frames * 5) % 64, 512 - ((frames * 2) % 512) - 1, 16, 128, 1, 0, 0, 8, 1024)); @@ -1913,8 +1900,7 @@ void DemoEffect_DrawTriforceSpot(Actor* thisx, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EV_AURORA - SFX_FLAG); Matrix_Push(); Matrix_Scale(1.0f, 2.4f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 3011), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 3011); gSPSegment(POLY_XLU_DISP++, 9, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 256 - ((frames * 4) % 256) - 1, 64, 64, 1, 0, 256 - ((frames * 2) % 256) - 1, 64, 32)); @@ -1928,16 +1914,14 @@ void DemoEffect_DrawTriforceSpot(Actor* thisx, PlayState* play) { if (this->triforceSpot.triforceSpotOpacity != 0) { Actor_PlaySfx(&this->actor, NA_SE_EV_TRIFORCE - SFX_FLAG); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 3042), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 3042); if (this->triforceSpot.triforceSpotOpacity < 250) { func_8002ED80(&this->actor, play, 0); Gfx_SetupDL_25Xlu(play->state.gfxCtx); gDPSetRenderMode(POLY_XLU_DISP++, G_RM_PASS, G_RM_AA_ZB_XLU_SURF2); Matrix_RotateY(BINANG_TO_RAD(this->triforceSpot.rotation), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 3053), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 3053); gSPSegment(POLY_XLU_DISP++, 8, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 0, 32, 16, 1, 0, 0, 16, 8)); gDPSetPrimColor(POLY_XLU_DISP++, 128, 128, 255, 255, 160, this->triforceSpot.triforceSpotOpacity); @@ -1948,8 +1932,7 @@ void DemoEffect_DrawTriforceSpot(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gDPSetRenderMode(POLY_OPA_DISP++, G_RM_PASS, G_RM_AA_ZB_OPA_SURF2); Matrix_RotateY(BINANG_TO_RAD(this->triforceSpot.rotation), MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 3085), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_demo_effect.c", 3085); gSPSegment(POLY_OPA_DISP++, 8, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 0, 32, 16, 1, 0, 0, 16, 8)); gDPSetPrimColor(POLY_OPA_DISP++, 128, 128, 255, 255, 160, 255); diff --git a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c index c18e18d8a9..99bc65fbe3 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c @@ -76,7 +76,8 @@ void func_80977EA8(PlayState* play, Gfx* dlist) { Gfx_SetupDL_25Opa(gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_demo_geff.c", 183), G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_OPA_DISP++, MATRIX_FINALIZE(gfxCtx, "../z_demo_geff.c", 183), + G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, dlist); gSPPopMatrix(POLY_OPA_DISP++, G_MTX_MODELVIEW); diff --git a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c index d0186dafb8..fa28e7cc80 100644 --- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c +++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c @@ -270,7 +270,7 @@ void DemoGj_DrawCommon(DemoGj* this, PlayState* play, Gfx* displayList) { Gfx_SetupDL_25Opa(gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_demo_gj.c", 1165), + gSPMatrix(POLY_OPA_DISP++, MATRIX_FINALIZE(gfxCtx, "../z_demo_gj.c", 1165), G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, displayList); diff --git a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c index fba91ea3fb..2c0967f456 100644 --- a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c +++ b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c @@ -874,7 +874,7 @@ void DemoGt_Draw2(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TwoTexScrollEnvColor(gfxCtx, 0, 0, unk198[0], 0x20, 0x40, 1, 0, unk198[1], 0x20, 0x40, unk178[0], unk178[1], unk178[2], 128)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_demo_gt_part2.c", 485), + gSPMatrix(POLY_OPA_DISP++, MATRIX_FINALIZE(gfxCtx, "../z_demo_gt_part2.c", 485), G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsCollapsedStructureInnerDL); gSPPopMatrix(POLY_OPA_DISP++, G_MTX_MODELVIEW); @@ -1186,7 +1186,7 @@ void DemoGt_Draw3(Actor* thisx, PlayState* play) { OPEN_DISPS(gfxCtx, "../z_demo_gt_part3.c", 1026); Gfx_SetupDL_25Opa(gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_demo_gt_part3.c", 1028), + gSPMatrix(POLY_OPA_DISP++, MATRIX_FINALIZE(gfxCtx, "../z_demo_gt_part3.c", 1028), G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsCollapsedStructureOuterDL); gSPPopMatrix(POLY_OPA_DISP++, G_MTX_MODELVIEW); @@ -1309,7 +1309,7 @@ void DemoGt_Draw4(Actor* thisx, PlayState* play2) { Matrix_Pop(); Gfx_SetupDL_25Opa(gfxCtx); - gSPMatrix(POLY_OPA_DISP++, sp60, (G_MTX_PUSH | G_MTX_LOAD) | G_MTX_MODELVIEW); + gSPMatrix(POLY_OPA_DISP++, sp60, G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsStandalonePillarDL); gSPPopMatrix(POLY_OPA_DISP++, G_MTX_MODELVIEW); 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 05ef28a1b3..aefca0b560 100644 --- a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c +++ b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c @@ -266,13 +266,11 @@ void DemoIk_Type1PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s if (limbIndex == 1) { switch (this->actor.params) { case 0: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_demo_ik_inArmer.c", 390), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_demo_ik_inArmer.c", 390); gSPDisplayList(POLY_XLU_DISP++, gIronKnuckleArmorRivetAndSymbolDL); break; case 2: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_demo_ik_inArmer.c", 396), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_demo_ik_inArmer.c", 396); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016F88); break; } @@ -423,23 +421,19 @@ void DemoIk_Type2PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s if (limbIndex == 1 && (frame >= 30.0f)) { switch (this->actor.params) { case 3: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_demo_ik_inFace.c", 274), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_demo_ik_inFace.c", 274); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_017028); break; case 4: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_demo_ik_inFace.c", 280), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_demo_ik_inFace.c", 280); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_017170); break; case 5: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_demo_ik_inFace.c", 286), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_demo_ik_inFace.c", 286); gSPDisplayList(POLY_XLU_DISP++, gIronKnuckleArmorRivetAndSymbolDL); break; default: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_demo_ik_inFace.c", 292), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_demo_ik_inFace.c", 292); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016CD8); break; } diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c index 16d4fa28c9..f46760673e 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c @@ -625,8 +625,7 @@ void DemoKankyo_DrawRain(Actor* thisx, PlayState* play) { } Matrix_Translate(translateX, translateY, translateZ, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kankyo.c", 1344), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_kankyo.c", 1344); POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_20); gSPDisplayList(POLY_XLU_DISP++, object_efc_star_field_DL_000080); } @@ -648,8 +647,7 @@ void DemoKankyo_DrawRock(Actor* thisx, PlayState* play) { Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 155, 55, 255); gDPSetEnvColor(POLY_OPA_DISP++, 155, 255, 55, 255); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kankyo.c", 1404), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_demo_kankyo.c", 1404); gSPDisplayList(POLY_OPA_DISP++, object_efc_star_field_DL_000DE0); CLOSE_DISPS(play->state.gfxCtx, "../z_demo_kankyo.c", 1409); @@ -679,8 +677,7 @@ void DemoKankyo_DrawClouds(Actor* thisx, PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, 255); gDPSetColorDither(POLY_XLU_DISP++, G_CD_DISABLE); gDPSetColorDither(POLY_XLU_DISP++, G_AD_NOTPATTERN | G_CD_MAGICSQ); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kankyo.c", 1461), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_kankyo.c", 1461); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gDust5Tex)); Gfx_SetupDL_61Xlu(play->state.gfxCtx); @@ -700,12 +697,10 @@ void DemoKankyo_DrawDoorOfTime(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); Matrix_Translate(-this->unk_150[0].unk_18, 0.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kankyo.c", 1492), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_demo_kankyo.c", 1492); gSPDisplayList(POLY_OPA_DISP++, object_toki_objects_DL_007440); Matrix_Translate(this->unk_150[0].unk_18 + this->unk_150[0].unk_18, 0.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kankyo.c", 1497), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_demo_kankyo.c", 1497); gSPDisplayList(POLY_OPA_DISP++, object_toki_objects_DL_007578); CLOSE_DISPS(play->state.gfxCtx, "../z_demo_kankyo.c", 1501); @@ -721,8 +716,7 @@ void DemoKankyo_DrawLightPlane(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 0, play->state.frames & 0x7F, 64, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kankyo.c", 1529), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_kankyo.c", 1529); gSPDisplayList(POLY_XLU_DISP++, object_toki_objects_DL_008390); } @@ -884,8 +878,7 @@ void DemoKankyo_DrawWarpSparkles(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); Matrix_Mult(&play2->billboardMtxF, MTXMODE_APPLY); Matrix_RotateZ(DEG_TO_RAD(this->unk_150[i].unk_24), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kankyo.c", 2011), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_kankyo.c", 2011); gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); this->unk_150[i].unk_24 += 0x190; } @@ -988,8 +981,7 @@ void DemoKankyo_DrawSparkles(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); Matrix_RotateZ(DEG_TO_RAD(this->unk_150[i].unk_24), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kankyo.c", 2572), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_kankyo.c", 2572); gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); this->unk_150[i].unk_24 += 0x190; } diff --git a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c index fa10cef753..92c22e925f 100644 --- a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c +++ b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c @@ -298,15 +298,13 @@ void DemoKekkai_DrawTrialBarrier(Actor* thisx, PlayState* play2) { Matrix_Translate(0.0f, 1200.0f, 0.0f, MTXMODE_APPLY); Matrix_Scale(this->orbScale, this->orbScale, this->orbScale, MTXMODE_APPLY); Matrix_Translate(0.0f, -1200.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kekkai.c", 639), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_kekkai.c", 639); gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, frames * 5, frames * -10, 0x20, 0x20, 1, frames * 5, frames * -10, 0x20, 0x20)); gSPDisplayList(POLY_XLU_DISP++, gTrialBarrierOrbDL); Matrix_Pop(); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kekkai.c", 656), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_kekkai.c", 656); gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0x00, 0x80, 50, 0, 100, 255); gSPSegment(POLY_XLU_DISP++, 0x0A, @@ -333,8 +331,7 @@ void DemoKekkai_DrawTowerBarrier(Actor* thisx, PlayState* play) { scroll = (s32)this->barrierScroll & 0xFFFF; OPEN_DISPS(play->state.gfxCtx, "../z_demo_kekkai.c", 705); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_kekkai.c", 707), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_kekkai.c", 707); gDPSetPrimColor(POLY_XLU_DISP++, 0x00, 0x80, 255, 170, 255, 255); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, scroll * 2, scroll * -4, 0x20, 0x40, 1, scroll * 2, diff --git a/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c b/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c index 0e1fce9315..2b373bec30 100644 --- a/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c +++ b/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c @@ -101,8 +101,7 @@ void DemoShd_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_shd.c", 729), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_demo_shd.c", 729); gSPDisplayList(POLY_XLU_DISP++, D_809932D0); if (this->unk_14C & 1) { diff --git a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c index 0a4d6c30d9..8208e7c6e1 100644 --- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c +++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c @@ -177,8 +177,7 @@ void DoorAna_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_door_ana.c", 440); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_door_ana.c", 446), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_door_ana.c", 446); gSPDisplayList(POLY_XLU_DISP++, gGrottoDL); CLOSE_DISPS(play->state.gfxCtx, "../z_door_ana.c", 449); diff --git a/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.c b/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.c index 323c09dabf..360f4aedec 100644 --- a/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.c +++ b/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.c @@ -147,8 +147,7 @@ void DoorGerudo_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_door_gerudo.c", 365), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_door_gerudo.c", 365); gSPDisplayList(POLY_OPA_DISP++, gGerudoCellDoorDL); if (this->unk_166 != 0) { diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c index 5ddf5f572e..6b76670eea 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -935,8 +935,7 @@ Gfx* DoorShutter_DrawJabuJabuDoor(PlayState* play, DoorShutter* this, Gfx* gfx) Matrix_Scale(1.0f, yScale, 1.0f, MTXMODE_APPLY); } - gSPMatrix(gfx++, MATRIX_NEW(play->state.gfxCtx, "../z_door_shutter.c", 1991), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(gfx++, play->state.gfxCtx, "../z_door_shutter.c", 1991); gSPDisplayList(gfx++, sJabuDoorDLists[i]); angle -= 2 * M_PI / ARRAY_COUNT(sJabuDoorDLists); @@ -1005,8 +1004,7 @@ void DoorShutter_Draw(Actor* thisx, PlayState* play) { gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255.0f * scale); // no purpose? Matrix_Translate(0, 0, gfxInfo->barsOffsetZ, MTXMODE_APPLY); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_door_shutter.c", 2069), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_door_shutter.c", 2069); gSPDisplayList(POLY_OPA_DISP++, gfxInfo->barsDL); } } else { @@ -1027,14 +1025,12 @@ void DoorShutter_Draw(Actor* thisx, PlayState* play) { } else if (this->doorType == SHUTTER_BOSS) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sBossDoorTextures[this->bossDoorTexIndex])); } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_door_shutter.c", 2109), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_door_shutter.c", 2109); gSPDisplayList(POLY_OPA_DISP++, gfxInfo->doorDL); if (this->barsClosedAmount != 0.0f && gfxInfo->barsDL != NULL) { Matrix_Translate(0, gfxInfo->barsOpenOffsetY * (1.0f - this->barsClosedAmount), gfxInfo->barsOffsetZ, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_door_shutter.c", 2119), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_door_shutter.c", 2119); gSPDisplayList(POLY_OPA_DISP++, gfxInfo->barsDL); } } diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c index eab6346b66..b5ff0dbaaf 100644 --- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c +++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c @@ -960,7 +960,7 @@ void DoorWarp1_DrawWarp(DoorWarp1* this, PlayState* play) { gDPSetColorDither(POLY_XLU_DISP++, G_AD_NOTPATTERN | G_CD_MAGICSQ); Matrix_Translate(this->actor.world.pos.x, this->actor.world.pos.y + 1.0f, this->actor.world.pos.z, MTXMODE_NEW); - gSPSegment(POLY_XLU_DISP++, 0x0A, MATRIX_NEW(play->state.gfxCtx, "../z_door_warp1.c", 2247)); + gSPSegment(POLY_XLU_DISP++, 0x0A, MATRIX_FINALIZE(play->state.gfxCtx, "../z_door_warp1.c", 2247)); Matrix_Push(); gSPSegment(POLY_XLU_DISP++, 0x08, @@ -971,7 +971,7 @@ void DoorWarp1_DrawWarp(DoorWarp1* this, PlayState* play) { Matrix_Translate(0.0f, this->unk_194 * 230.0f, 0.0f, MTXMODE_APPLY); xzScale = (((f32)this->unk_1AE * spE8) / 100.0f) + 1.0f; Matrix_Scale(xzScale, 1.0f, xzScale, MTXMODE_APPLY); - gSPSegment(POLY_XLU_DISP++, 0x09, MATRIX_NEW(play->state.gfxCtx, "../z_door_warp1.c", 2267)); + gSPSegment(POLY_XLU_DISP++, 0x09, MATRIX_FINALIZE(play->state.gfxCtx, "../z_door_warp1.c", 2267)); gSPDisplayList(POLY_XLU_DISP++, gWarpPortalDL); Matrix_Pop(); @@ -1009,7 +1009,7 @@ void DoorWarp1_DrawWarp(DoorWarp1* this, PlayState* play) { xzScale = (((f32)this->unk_1B0 * spE4) / 100.0f) + 1.0f; Matrix_Scale(xzScale, 1.0f, xzScale, MTXMODE_APPLY); - gSPSegment(POLY_XLU_DISP++, 0x09, MATRIX_NEW(play->state.gfxCtx, "../z_door_warp1.c", 2336)); + gSPSegment(POLY_XLU_DISP++, 0x09, MATRIX_FINALIZE(play->state.gfxCtx, "../z_door_warp1.c", 2336)); gSPDisplayList(POLY_XLU_DISP++, gWarpPortalDL); } diff --git a/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c b/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c index 33e718a059..3aa35ec587 100644 --- a/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c +++ b/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c @@ -132,8 +132,7 @@ void EfcErupc_Draw(Actor* thisx, PlayState* play) { Matrix_Push(); Matrix_Scale(0.8f, 0.8f, 0.8f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_efc_erupc.c", 321), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_efc_erupc.c", 321); if (play->csCtx.state != CS_STATE_IDLE) { if ((play->csCtx.actorCues[1] != NULL) && (play->csCtx.actorCues[1]->id == 2)) { @@ -142,8 +141,7 @@ void EfcErupc_Draw(Actor* thisx, PlayState* play) { } Matrix_Pop(); Matrix_Scale(3.4f, 3.4f, 3.4f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_efc_erupc.c", 333), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_efc_erupc.c", 333); if (play->csCtx.state != CS_STATE_IDLE) { CsCmdActorCue* cue = play->csCtx.actorCues[2]; @@ -177,8 +175,7 @@ void EfcErupc_DrawEffects(EfcErupcEffect* effect, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_efc_erupc.c", 393), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_efc_erupc.c", 393); gSPDisplayList(POLY_XLU_DISP++, object_efc_erupc_DL_0027D8); } } diff --git a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c index de97ec8444..35363c4aae 100644 --- a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c +++ b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c @@ -294,8 +294,7 @@ void EffDust_DrawFunc_8099E4F4(Actor* thisx, PlayState* play2) { Matrix_Scale(this->scalingFactor, this->scalingFactor, this->scalingFactor, MTXMODE_APPLY); Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_dust.c", 449), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_dust.c", 449); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gEffSparklesDL)); } @@ -351,8 +350,7 @@ void EffDust_DrawFunc_8099E784(Actor* thisx, PlayState* play2) { Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_dust.c", 506), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_dust.c", 506); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gEffSparklesDL)); } diff --git a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c index 8cbdb05334..36c2b4b9d7 100644 --- a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c +++ b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c @@ -186,8 +186,7 @@ void ElfMsg_Draw(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, R_NAVI_MSG_REGION_ALPHA); } - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_elf_msg.c", 448), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_elf_msg.c", 448); gSPDisplayList(POLY_XLU_DISP++, D_809AD278); if (PARAMS_GET_NOSHIFT(thisx->params, 14, 1)) { diff --git a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c index 348f57ddbe..db594cfac5 100644 --- a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c +++ b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c @@ -166,8 +166,7 @@ void ElfMsg2_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 100, 100, 255, R_NAVI_MSG_REGION_ALPHA); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_elf_msg2.c", 362), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_elf_msg2.c", 362); gSPDisplayList(POLY_XLU_DISP++, D_809ADC38); gSPDisplayList(POLY_XLU_DISP++, sCubeDL); diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c index d5889a5196..13a326f939 100644 --- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c +++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c @@ -484,8 +484,7 @@ void EnAnubice_PostLimbDraw(struct PlayState* play, s32 limbIndex, Gfx** dList, if (limbIndex == ANUBICE_LIMB_HEAD) { OPEN_DISPS(play->state.gfxCtx, "../z_en_anubice.c", 853); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_anubice.c", 856), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_anubice.c", 856); gSPDisplayList(POLY_XLU_DISP++, gAnubiceEyesDL); Matrix_MultVec3f(&pos, &this->headPos); diff --git a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c index 480dc15804..82b124a833 100644 --- a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c +++ b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c @@ -243,8 +243,7 @@ void EnAnubiceFire_Draw(Actor* thisx, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_RotateZ(this->actor.world.rot.z + i * 1000.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_anubice_fire.c", 546), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_anubice_fire.c", 546); gSPDisplayList(POLY_XLU_DISP++, gAnubiceFireAttackDL); } diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index 573b15d833..4fc29db648 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -482,8 +482,7 @@ void EnArrow_Draw(Actor* thisx, PlayState* play) { Matrix_RotateZ((this->actor.speed == 0.0f) ? 0.0f : BINANG_TO_RAD((play->gameplayFrames & 0xFF) * 4000), MTXMODE_APPLY); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_arrow.c", 1374), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_arrow.c", 1374); gSPDisplayList(POLY_XLU_DISP++, gEffSparklesDL); Matrix_Pop(); Matrix_RotateY(BINANG_TO_RAD(this->actor.world.rot.y), MTXMODE_APPLY); diff --git a/src/overlays/actors/ovl_En_Ba/z_en_ba.c b/src/overlays/actors/ovl_En_Ba/z_en_ba.c index e42bb4fa17..6becbc72f9 100644 --- a/src/overlays/actors/ovl_En_Ba/z_en_ba.c +++ b/src/overlays/actors/ovl_En_Ba/z_en_ba.c @@ -509,8 +509,7 @@ void EnBa_Draw(Actor* thisx, PlayState* play) { MATRIX_TO_MTX(mtx, "../z_en_ba.c", 970); } Matrix_Pop(); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ba.c", 973), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_ba.c", 973); gSPDisplayList(POLY_OPA_DISP++, object_bxa_DL_000890); } else { gSPSegment(POLY_OPA_DISP++, 0x08, @@ -518,8 +517,7 @@ void EnBa_Draw(Actor* thisx, PlayState* play) { (play->gameplayFrames * 2) % 128, 32, 32, 1, (play->gameplayFrames * -5) % 128, (play->gameplayFrames * -5) % 128, 32, 32)); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 125, 100, 255); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ba.c", 991), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_ba.c", 991); gSPDisplayList(POLY_OPA_DISP++, object_bxa_DL_001D80); } CLOSE_DISPS(play->state.gfxCtx, "../z_en_ba.c", 995); diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index 52002c445d..6bf75bba55 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -1339,8 +1339,7 @@ void EnBb_Draw(Actor* thisx, PlayState* play) { BINANG_TO_RAD((s16)(Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)) - this->actor.shape.rot.y + 0x8000)), MTXMODE_APPLY); Matrix_Scale(this->flameScaleX * 0.01f, this->flameScaleY * 0.01f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bb.c", 2106), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_bb.c", 2106); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); } else { Matrix_MultVec3f(&blureBase1, &blureVtx1); diff --git a/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c b/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c index 7137c04212..407bc8cef0 100644 --- a/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c +++ b/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c @@ -207,8 +207,7 @@ void EnBdfire_DrawFire(EnBdfire* this, PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, 200, 0, 0, 0); gSPSegment(POLY_XLU_DISP++, 8, SEGMENTED_TO_VIRTUAL(D_809BCB10[texIndex])); Matrix_Translate(0.0f, 11.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bdfire.c", 647), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_bdfire.c", 647); gSPDisplayList(POLY_XLU_DISP++, object_kingdodongo_DL_01D950); CLOSE_DISPS(play->state.gfxCtx, "../z_en_bdfire.c", 651); } diff --git a/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.c b/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.c index d2c008fec6..a42e48252a 100644 --- a/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.c +++ b/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.c @@ -159,8 +159,7 @@ void EnBlkobj_Draw(Actor* thisx, PlayState* play) { gSPSegment( POLY_XLU_DISP++, 0x0D, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, gameplayFrames, 0, 32, 32, 1, gameplayFrames, 0, 32, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_blkobj.c", 363), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_blkobj.c", 363); if (this->alpha != 0) { EnBlkobj_DrawAlpha(play, gIllusionRoomNormalDL, this->alpha); 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 2b4b8f6a2c..9cdfaf7e0f 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -366,12 +366,10 @@ void EnBom_Draw(Actor* thisx, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); func_8002EBCC(thisx, play, 0); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bom.c", 928), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_bom.c", 928); gSPDisplayList(POLY_OPA_DISP++, gBombCapDL); Matrix_RotateZYX(0x4000, 0, 0, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bom.c", 934), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_bom.c", 934); gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, (s16)this->flashIntensity, 0, 40, 255); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, (s16)this->flashIntensity, 0, 40, 255); 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 47b7da4c80..30eda27b5d 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 @@ -508,8 +508,7 @@ void EnBomChu_Draw(Actor* thisx, PlayState* play) { gDPSetEnvColor(POLY_OPA_DISP++, 9.0f + (colorIntensity * 209.0f), 9.0f + (colorIntensity * 34.0f), 35.0f + (colorIntensity * -35.0f), 255); Matrix_Translate(this->visualJitter * (1.0f / BOMBCHU_SCALE), 0.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bom_chu.c", 956), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_bom_chu.c", 956); gSPDisplayList(POLY_OPA_DISP++, gBombchuDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_bom_chu.c", 961); 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 89e4157a4f..c148ea4e0d 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -472,8 +472,7 @@ Gfx* EnBombf_NewMtxDList(GraphicsContext* gfxCtx, PlayState* play) { displayList = GRAPH_ALLOC(gfxCtx, 5 * sizeof(Gfx)); displayListHead = displayList; Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(displayListHead++, MATRIX_NEW(gfxCtx, "../z_en_bombf.c", 1021), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(displayListHead++, gfxCtx, "../z_en_bombf.c", 1021); gSPEndDisplayList(displayListHead++); return displayList; } @@ -488,8 +487,7 @@ void EnBombf_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); if (thisx->params != BOMBFLOWER_BODY) { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bombf.c", 1041), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_bombf.c", 1041); gSPDisplayList(POLY_OPA_DISP++, gBombFlowerLeavesDL); gSPDisplayList(POLY_OPA_DISP++, gBombFlowerBaseLeavesDL); @@ -500,8 +498,7 @@ void EnBombf_Draw(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 200, 255, 200, 255); gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, (s16)this->flashIntensity, 20, 10, 0); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bombf.c", 1054), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_bombf.c", 1054); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(EnBombf_NewMtxDList(play->state.gfxCtx, play))); gSPDisplayList(POLY_OPA_DISP++, gBombFlowerBombAndSparkDL); } else { diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index a2fee4a165..fc9a9c110c 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -268,8 +268,7 @@ void EnBoom_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); Matrix_RotateY(BINANG_TO_RAD(this->activeTimer * 12000), MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_boom.c", 601), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_boom.c", 601); gSPDisplayList(POLY_OPA_DISP++, gBoomerangRefDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_boom.c", 604); diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c index f8f31956a9..770132358a 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -548,16 +548,14 @@ void EnBox_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, s32 pad; if (limbIndex == 1) { - gSPMatrix((*gfx)++, MATRIX_NEW(play->state.gfxCtx, "../z_en_box.c", 1492), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD((*gfx)++, play->state.gfxCtx, "../z_en_box.c", 1492); if (this->type != ENBOX_TYPE_DECORATED_BIG) { gSPDisplayList((*gfx)++, gTreasureChestChestFrontDL); } else { gSPDisplayList((*gfx)++, gTreasureChestBossKeyChestFrontDL); } } else if (limbIndex == 3) { - gSPMatrix((*gfx)++, MATRIX_NEW(play->state.gfxCtx, "../z_en_box.c", 1502), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD((*gfx)++, play->state.gfxCtx, "../z_en_box.c", 1502); if (this->type != ENBOX_TYPE_DECORATED_BIG) { gSPDisplayList((*gfx)++, gTreasureChestChestSideAndLidDL); } else { diff --git a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c index dd45e05ef7..b883a52378 100644 --- a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c +++ b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c @@ -420,8 +420,7 @@ void EnBubble_Draw(Actor* thisx, PlayState* play) { Matrix_Scale(this->graphicEccentricity + 1.0f, 1.0f, 1.0f, MTXMODE_APPLY); Matrix_RotateZ(DEG_TO_RAD(-(f32)play->state.frames) * this->graphicRotSpeed, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bubble.c", 1220), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_bubble.c", 1220); gSPDisplayList(POLY_XLU_DISP++, gBubbleDL); } diff --git a/src/overlays/actors/ovl_En_Butte/z_en_butte.c b/src/overlays/actors/ovl_En_Butte/z_en_butte.c index 12e5850de8..98c3100602 100644 --- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c +++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c @@ -129,8 +129,7 @@ void EnButte_DrawTransformationEffect(EnButte* this, PlayState* play) { Matrix_SetTranslateRotateYXZ(this->actor.focus.pos.x + sp5C.x, this->actor.focus.pos.y + sp5C.y, this->actor.focus.pos.z + sp5C.z, &camDir); Matrix_Scale(sTransformationEffectScale, sTransformationEffectScale, sTransformationEffectScale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_choo.c", 317), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_choo.c", 317); gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 200, 200, 180, alpha); gDPSetEnvColor(POLY_XLU_DISP++, 200, 200, 210, 255); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gEffFlash1DL)); diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.c b/src/overlays/actors/ovl_En_Bw/z_en_bw.c index 01a10a2636..c6d0d17183 100644 --- a/src/overlays/actors/ovl_En_Bw/z_en_bw.c +++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.c @@ -828,8 +828,7 @@ s32 EnBw_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po Matrix_RotateZ(-(this->unk_258 * 0.1f), MTXMODE_APPLY); Matrix_RotateY(-(this->unk_258 * 0.13f), MTXMODE_APPLY); Matrix_RotateX(-(this->unk_258 * 0.115f), MTXMODE_APPLY); - gSPMatrix((*gfx)++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bw.c", 1388), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD((*gfx)++, play->state.gfxCtx, "../z_en_bw.c", 1388); gSPDisplayList((*gfx)++, *dList); Matrix_Pop(); return 1; @@ -890,8 +889,7 @@ void EnBw_Draw(Actor* thisx, PlayState* play2) { gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 255, 0, 255); Matrix_Scale(this->unk_248 * 0.01f, this->unk_248 * 0.01f, this->unk_248 * 0.01f, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bw.c", 1500), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_bw.c", 1500); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); if (this->iceTimer != 0) { diff --git a/src/overlays/actors/ovl_En_Bx/z_en_bx.c b/src/overlays/actors/ovl_En_Bx/z_en_bx.c index b480cdf858..cc3f881b7d 100644 --- a/src/overlays/actors/ovl_En_Bx/z_en_bx.c +++ b/src/overlays/actors/ovl_En_Bx/z_en_bx.c @@ -216,8 +216,7 @@ void EnBx_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 0, 16, 16, 1, 0, (play->gameplayFrames * -10) % 128, 32, 32)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_bx.c", 478), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_bx.c", 478); if (PARAMS_GET_NOSHIFT(this->actor.params, 7, 1)) { func_809D1D0C(&this->actor, play); diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c index aefa8ea5ee..1350ebc8d0 100644 --- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c +++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c @@ -695,13 +695,11 @@ void EnClearTag_Draw(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 255, 0, 255); Matrix_Translate(25.0f, 0.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_clear_tag.c", 1004), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_clear_tag.c", 1004); gSPDisplayList(POLY_XLU_DISP++, gArwingLaserDL); Matrix_Translate(-50.0f, 0.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_clear_tag.c", 1011), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_clear_tag.c", 1011); gSPDisplayList(POLY_XLU_DISP++, gArwingLaserDL); } else { // Draw the Arwing itself. @@ -718,8 +716,7 @@ void EnClearTag_Draw(Actor* thisx, PlayState* play) { Matrix_RotateY(yRotation, MTXMODE_APPLY); } Matrix_RotateZ(this->roll, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_clear_tag.c", 1030), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_clear_tag.c", 1030); gSPDisplayList(POLY_OPA_DISP++, gArwingDL); // Draw the Arwing Backfire @@ -732,8 +729,7 @@ void EnClearTag_Draw(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 200, 155); gDPPipeSync(POLY_XLU_DISP++); gDPSetEnvColor(POLY_XLU_DISP++, 255, 50, 0, 0); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_clear_tag.c", 1067), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_clear_tag.c", 1067); gSPDisplayList(POLY_XLU_DISP++, gArwingBackfireDL); // Draw the Arwing shadow. @@ -756,8 +752,7 @@ void EnClearTag_Draw(Actor* thisx, PlayState* play) { Matrix_RotateY(yRotation, MTXMODE_APPLY); } Matrix_RotateZ(this->roll, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_clear_tag.c", 1104), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_clear_tag.c", 1104); gSPDisplayList(POLY_XLU_DISP++, gArwingShadowDL); } } @@ -914,8 +909,7 @@ void EnClearTag_DrawEffects(PlayState* play) { Matrix_Scale(effect->scale, effect->scale, effect->scale, MTXMODE_APPLY); Matrix_RotateY(effect->rotationY, MTXMODE_APPLY); Matrix_RotateX(effect->rotationX, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_en_clear_tag.c", 1307), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_en_clear_tag.c", 1307); gSPDisplayList(POLY_OPA_DISP++, gArwingDebrisEffectDL); } } @@ -938,8 +932,7 @@ void EnClearTag_DrawEffects(PlayState* play) { Matrix_RotateX(effect->floorTangent.x, MTXMODE_APPLY); Matrix_RotateZ(effect->floorTangent.z, MTXMODE_APPLY); Matrix_Scale(effect->scale + effect->scale, 1.0f, effect->scale * 2.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_clear_tag.c", 1342), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_clear_tag.c", 1342); gSPDisplayList(POLY_XLU_DISP++, gArwingFlashEffectGroundDL); } } @@ -968,8 +961,7 @@ void EnClearTag_DrawEffects(PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); Matrix_Translate(0.0f, 20.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_clear_tag.c", 1392), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_clear_tag.c", 1392); gSPDisplayList(POLY_XLU_DISP++, gArwingFireEffectDL); } } @@ -994,8 +986,7 @@ void EnClearTag_DrawEffects(PlayState* play) { Matrix_Translate(effect->position.x, effect->position.y, effect->position.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_clear_tag.c", 1439), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_clear_tag.c", 1439); gSPDisplayList(POLY_XLU_DISP++, gArwingFireEffectDL); } } @@ -1017,8 +1008,7 @@ void EnClearTag_DrawEffects(PlayState* play) { Matrix_Translate(effect->position.x, effect->position.y, effect->position.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_clear_tag.c", 1470), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_clear_tag.c", 1470); gSPDisplayList(POLY_XLU_DISP++, gArwingFlashEffectDL); } } diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index e4f69fdc8a..85ae528bb4 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -477,7 +477,7 @@ void EnCs_Draw(Actor* thisx, PlayState* play) { Mtx* mtx; Matrix_Put(&this->spookyMaskMtx); - mtx = MATRIX_NEW(play->state.gfxCtx, "../z_en_cs.c", 1000); + mtx = MATRIX_FINALIZE(play->state.gfxCtx, "../z_en_cs.c", 1000); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[linkChildObjectSlot].segment); gSPSegment(POLY_OPA_DISP++, 0x0D, mtx - 7); gSPDisplayList(POLY_OPA_DISP++, gLinkChildSpookyMaskDL); diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index d4c29f173e..04dd2e24bf 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -1157,8 +1157,7 @@ void EnDekubaba_DrawStemRetracted(EnDekubaba* this, PlayState* play) { MTXMODE_NEW); Matrix_RotateZYX(this->stemSectionAngle[0], this->actor.shape.rot.y, 0, MTXMODE_APPLY); Matrix_Scale(horizontalScale, horizontalScale, horizontalScale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dekubaba.c", 2461), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_dekubaba.c", 2461); gSPDisplayList(POLY_OPA_DISP++, gDekuBabaStemTopDL); Actor_SetFocus(&this->actor, 0.0f); @@ -1202,8 +1201,7 @@ void EnDekubaba_DrawStemExtended(EnDekubaba* this, PlayState* play) { Matrix_Put(&mtx); Matrix_RotateZYX(this->stemSectionAngle[i], this->actor.shape.rot.y, 0, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dekubaba.c", 2533), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_dekubaba.c", 2533); gSPDisplayList(POLY_OPA_DISP++, stemDLists[i]); @@ -1237,8 +1235,7 @@ void EnDekubaba_DrawStemBasePruned(EnDekubaba* this, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_dekubaba.c", 2579); Matrix_RotateZYX(this->stemSectionAngle[2], this->actor.shape.rot.y, 0, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dekubaba.c", 2586), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_dekubaba.c", 2586); gSPDisplayList(POLY_OPA_DISP++, gDekuBabaStemBaseDL); Collider_UpdateSpheres(55, &this->collider); @@ -1260,8 +1257,7 @@ void EnDekubaba_DrawBaseShadow(EnDekubaba* this, PlayState* play) { horizontalScale = this->size * 0.15f; Matrix_Scale(horizontalScale, 1.0f, horizontalScale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dekubaba.c", 2710), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_dekubaba.c", 2710); gSPDisplayList(POLY_XLU_DISP++, gCircleShadowDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_dekubaba.c", 2715); } @@ -1295,8 +1291,7 @@ void EnDekubaba_Draw(Actor* thisx, PlayState* play) { Matrix_Translate(this->actor.home.pos.x, this->actor.home.pos.y, this->actor.home.pos.z, MTXMODE_NEW); Matrix_RotateY(BINANG_TO_RAD(this->actor.home.rot.y), MTXMODE_APPLY); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dekubaba.c", 2780), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_dekubaba.c", 2780); gSPDisplayList(POLY_OPA_DISP++, gDekuBabaBaseLeavesDL); if (this->actionFunc == EnDekubaba_PrunedSomersault) { @@ -1310,8 +1305,7 @@ void EnDekubaba_Draw(Actor* thisx, PlayState* play) { // Display solid until 40 frames left, then blink until killed. } else if ((this->timer > 40) || ((this->timer % 2) != 0)) { Matrix_Translate(0.0f, 0.0f, 200.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dekubaba.c", 2797), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_dekubaba.c", 2797); gSPDisplayList(POLY_OPA_DISP++, gDekuBabaStickDropDL); } diff --git a/src/overlays/actors/ovl_En_Dh/z_en_dh.c b/src/overlays/actors/ovl_En_Dh/z_en_dh.c index ffc94d20de..fd224646d2 100644 --- a/src/overlays/actors/ovl_En_Dh/z_en_dh.c +++ b/src/overlays/actors/ovl_En_Dh/z_en_dh.c @@ -579,8 +579,7 @@ void EnDh_Draw(Actor* thisx, PlayState* play) { Matrix_Translate(0.0f, -this->actor.shape.yOffset, 0.0f, MTXMODE_APPLY); Matrix_Scale(this->dirtWaveSpread * 0.01f, this->dirtWaveHeight * 0.01f, this->dirtWaveSpread * 0.01f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dh.c", 1160), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_dh.c", 1160); gSPDisplayList(POLY_XLU_DISP++, object_dh_DL_007FC0); } CLOSE_DISPS(play->state.gfxCtx, "../z_en_dh.c", 1166); diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index dd34c42a2d..057bc5bdd7 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -439,8 +439,7 @@ void EnDntJiji_Draw(Actor* thisx, PlayState* play) { Matrix_Pop(); Matrix_Translate(this->flowerPos.x, this->flowerPos.y, this->flowerPos.z, MTXMODE_NEW); Matrix_Scale(0.01f, 0.01f, 0.01f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dnt_jiji.c", 1040), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_dnt_jiji.c", 1040); gSPDisplayList(POLY_OPA_DISP++, gDntJijiFlowerDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_dnt_jiji.c", 1043); } diff --git a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c index 1e62d2e0d9..94a6531c52 100644 --- a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c +++ b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c @@ -869,8 +869,7 @@ void EnDntNomal_DrawStageScrub(Actor* thisx, PlayState* play) { gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, sLeafColors[this->type - ENDNTNOMAL_STAGE].r, sLeafColors[this->type - ENDNTNOMAL_STAGE].g, sLeafColors[this->type - ENDNTNOMAL_STAGE].b, 255); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dnt_nomal.c", 1814), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_dnt_nomal.c", 1814); gSPDisplayList(POLY_OPA_DISP++, gDntStageFlowerDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_dnt_nomal.c", 1817); if (this->actionFunc == EnDntNomal_StageCelebrate) { @@ -886,8 +885,7 @@ void EnDntNomal_DrawTargetScrub(Actor* thisx, PlayState* play) { SkelAnime_DrawOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, NULL, EnDntNomal_PostLimbDraw, this); Matrix_Translate(this->flowerPos.x, this->flowerPos.y, this->flowerPos.z, MTXMODE_NEW); Matrix_Scale(0.01f, 0.01f, 0.01f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dnt_nomal.c", 1848), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_dnt_nomal.c", 1848); gSPDisplayList(POLY_OPA_DISP++, gHintNutsFlowerDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_dnt_nomal.c", 1851); } diff --git a/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c b/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c index 591eb82c75..784e28e072 100644 --- a/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c +++ b/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c @@ -116,8 +116,7 @@ void EnDyExtra_Draw(Actor* thisx, PlayState* play) { Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->state.frames * 2, 0, 0x20, 0x40, 1, play->state.frames, play->state.frames * -8, 0x10, 0x10)); gDPPipeSync(POLY_XLU_DISP++); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_dy_extra.c", 307), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_dy_extra.c", 307); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, primColors[this->type].r, primColors[this->type].g, primColors[this->type].b, 255); gDPSetEnvColor(POLY_XLU_DISP++, envColors[this->type].r, envColors[this->type].g, envColors[this->type].b, 128); diff --git a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c index f4b95fab40..972f06b6f7 100644 --- a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c +++ b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c @@ -361,8 +361,7 @@ void EnEncount2_DrawEffects(Actor* thisx, PlayState* play) { Matrix_Scale(effect->scale, effect->scale, effect->scale, MTXMODE_APPLY); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 155, 55, 255); gDPSetEnvColor(POLY_OPA_DISP++, 155, 255, 55, 255); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_encount2.c", 669), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_encount2.c", 669); gSPDisplayList(POLY_OPA_DISP++, object_efc_star_field_DL_000DE0); } } diff --git a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c index f84adf216e..53507b0e39 100644 --- a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c +++ b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c @@ -503,8 +503,7 @@ void EnExItem_DrawKey(EnExItem* this, PlayState* play, s32 index) { OPEN_DISPS(play->state.gfxCtx, "../z_en_ex_item.c", 880); Gfx_SetupDL_41Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ex_item.c", 887), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_ex_item.c", 887); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(keySegments[index])); gSPDisplayList(POLY_OPA_DISP++, gItemDropDL); 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 4d2f66ba20..62c0faf5ff 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 @@ -387,8 +387,7 @@ void EnExRuppy_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); func_8002EBCC(thisx, play, 0); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ex_ruppy.c", 780), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_ex_ruppy.c", 780); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(rupeeTextures[this->colorIdx])); gSPDisplayList(POLY_OPA_DISP++, gRupeeDL); diff --git a/src/overlays/actors/ovl_En_Fd/z_en_fd.c b/src/overlays/actors/ovl_En_Fd/z_en_fd.c index 57659f2dea..c8796a5cda 100644 --- a/src/overlays/actors/ovl_En_Fd/z_en_fd.c +++ b/src/overlays/actors/ovl_En_Fd/z_en_fd.c @@ -905,8 +905,7 @@ void EnFd_DrawEffectsFlames(EnFd* this, PlayState* play) { Matrix_Translate(eff->pos.x, eff->pos.y, eff->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(eff->scale, eff->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fd.c", 2006), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_fd.c", 2006); idx = eff->timer * (8.0f / eff->initialTimer); gSPSegment(POLY_XLU_DISP++, 0x8, SEGMENTED_TO_VIRTUAL(dustTextures[idx])); gSPDisplayList(POLY_XLU_DISP++, gFlareDancerSquareParticleDL); @@ -942,8 +941,7 @@ void EnFd_DrawEffectsDots(EnFd* this, PlayState* play) { Matrix_Translate(eff->pos.x, eff->pos.y, eff->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(eff->scale, eff->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fd.c", 2064), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_fd.c", 2064); gSPDisplayList(POLY_XLU_DISP++, gFlareDancerTriangleParticleDL); } diff --git a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c index a98ba9e08f..8fc3fc29fc 100644 --- a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c +++ b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c @@ -262,8 +262,7 @@ void EnFdFire_Draw(Actor* thisx, PlayState* play) { sp84 = 0.1f; } Matrix_Scale(1.0f, sp84, 1.0f / sp84, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fd_fire.c", 623), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_fd_fire.c", 623); Gfx_SetupDL_25Xlu(play->state.gfxCtx); gSPSegment(POLY_XLU_DISP++, 0x8, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 0, 0x20, 0x40, 1, 0, diff --git a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c index 05d934e0a2..b606f65302 100644 --- a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c +++ b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c @@ -713,8 +713,7 @@ void EnFhgFire_Draw(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (s8)this->fwork[FHGFIRE_ALPHA]); gDPSetEnvColor(POLY_XLU_DISP++, 165, 255, 75, 0); gDPPipeSync(POLY_XLU_DISP++); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fhg_fire.c", 1745), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_fhg_fire.c", 1745); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gPhantomLightningBlastDL)); } else if ((this->actor.params == FHGFIRE_SPEAR_LIGHT) || (this->actor.params == FHGFIRE_ENERGY_BALL)) { PRINTF("yari hikari draw 1\n"); @@ -729,8 +728,7 @@ void EnFhgFire_Draw(Actor* thisx, PlayState* play) { } gDPPipeSync(POLY_XLU_DISP++); Matrix_RotateZ((this->actor.shape.rot.z / (f32)0x8000) * 3.1416f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fhg_fire.c", 1801), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_fhg_fire.c", 1801); gSPDisplayList(POLY_XLU_DISP++, gPhantomEnergyBallDL); } else if ((this->actor.params == FHGFIRE_WARP_EMERGE) || (this->actor.params == FHGFIRE_WARP_RETREAT) || (this->actor.params == FHGFIRE_WARP_DEATH)) { @@ -738,8 +736,7 @@ void EnFhgFire_Draw(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 0, 0, (u8)this->fwork[FHGFIRE_WARP_ALPHA]); gDPSetEnvColor(POLY_XLU_DISP++, 90, 50, 95, (s8)(this->fwork[FHGFIRE_WARP_ALPHA] * 0.5f)); gDPPipeSync(POLY_XLU_DISP++); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fhg_fire.c", 1833), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_fhg_fire.c", 1833); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, (s16)this->fwork[FHGFIRE_WARP_TEX_1_X], (s16)this->fwork[FHGFIRE_WARP_TEX_1_Y], 0x40, 0x40, 1, @@ -753,8 +750,7 @@ void EnFhgFire_Draw(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (s8)this->fwork[FHGFIRE_ALPHA]); gDPSetEnvColor(POLY_XLU_DISP++, 0, 255, 30, 0); gDPPipeSync(POLY_XLU_DISP++); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fhg_fire.c", 1892), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_fhg_fire.c", 1892); gSPDisplayList(POLY_XLU_DISP++, gPhantomLightningDL); PRINTF("FF DRAW 2\n"); } diff --git a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c index 229e0a9171..aa629e33a2 100644 --- a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c +++ b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c @@ -396,8 +396,7 @@ void EnFireRock_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 155, 55, 255); gDPSetEnvColor(POLY_OPA_DISP++, 155, 255, 55, 255); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fire_rock.c", 768), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_fire_rock.c", 768); gSPDisplayList(POLY_OPA_DISP++, object_efc_star_field_DL_000DE0); CLOSE_DISPS(play->state.gfxCtx, "../z_en_fire_rock.c", 773); } diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index 997d40d1b4..b7515210d2 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -1092,7 +1092,7 @@ void EnFloormas_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* Matrix_RotateY(DEG_TO_RAD(60), MTXMODE_APPLY); Matrix_RotateZ(DEG_TO_RAD(15), MTXMODE_APPLY); Matrix_Scale(2.0f, 2.0f, 2.0f, MTXMODE_APPLY); - gSPMatrix((*gfx)++, MATRIX_NEW(play->state.gfxCtx, "../z_en_floormas.c", 2299), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD((*gfx)++, play->state.gfxCtx, "../z_en_floormas.c", 2299); gSPDisplayList((*gfx)++, gWallmasterFingerDL); Matrix_Pop(); } diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index 08943b92fb..5b47590874 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -1053,8 +1053,7 @@ void EnFr_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, OPEN_DISPS(play->state.gfxCtx, "../z_en_fr.c", 1735); Matrix_Push(); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fr.c", 1738), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_fr.c", 1738); gSPDisplayList(POLY_OPA_DISP++, *dList); Matrix_Pop(); CLOSE_DISPS(play->state.gfxCtx, "../z_en_fr.c", 1741); diff --git a/src/overlays/actors/ovl_En_Fw/z_en_fw.c b/src/overlays/actors/ovl_En_Fw/z_en_fw.c index 98799ac9a0..cc20ea25a5 100644 --- a/src/overlays/actors/ovl_En_Fw/z_en_fw.c +++ b/src/overlays/actors/ovl_En_Fw/z_en_fw.c @@ -480,8 +480,7 @@ void EnFw_DrawEffects(EnFw* this, PlayState* play) { Matrix_Translate(eff->pos.x, eff->pos.y, eff->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(eff->scale, eff->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fw.c", 1229), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_fw.c", 1229); idx = eff->timer * (8.0f / eff->initialTimer); gSPSegment(POLY_XLU_DISP++, 0x8, SEGMENTED_TO_VIRTUAL(dustTextures[idx])); gSPDisplayList(POLY_XLU_DISP++, gFlareDancerSquareParticleDL); diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index 4b460e5797..6aec8f9126 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -732,8 +732,7 @@ void EnFz_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, play->state.frames & 0x7F, 32, 32, 1, 0, (2 * play->state.frames) & 0x7F, 32, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_fz.c", 1183), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_fz.c", 1183); gDPSetCombineLERP(POLY_XLU_DISP++, TEXEL1, PRIMITIVE, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, PRIMITIVE, TEXEL0, PRIMITIVE, ENVIRONMENT, COMBINED, ENVIRONMENT, COMBINED, 0, ENVIRONMENT, 0); gDPSetPrimColor(POLY_XLU_DISP++, 0, 128, 155, 255, 255, 255); @@ -882,8 +881,7 @@ void EnFz_DrawEffects(EnFz* this, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->xyScale, effect->xyScale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_fz.c", 1424), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_fz.c", 1424); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gFreezardSteamDL)); } diff --git a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c index 663991c54e..12659edf68 100644 --- a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c +++ b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c @@ -463,8 +463,7 @@ void EnGSwitch_DrawPot(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_g_switch.c", 918); Gfx_SetupDL_25Opa(play2->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_g_switch.c", 925), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_g_switch.c", 925); gSPDisplayList(POLY_OPA_DISP++, object_tsubo_DL_0017C0); CLOSE_DISPS(play->state.gfxCtx, "../z_en_g_switch.c", 928); } @@ -482,8 +481,7 @@ void EnGSwitch_DrawRupee(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_g_switch.c", 951); Gfx_SetupDL_25Opa(play->state.gfxCtx); func_8002EBCC(&this->actor, play, 0); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_g_switch.c", 957), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_g_switch.c", 957); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sRupeeTextures[this->colorIdx])); gSPDisplayList(POLY_OPA_DISP++, gRupeeDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_g_switch.c", 961); @@ -566,8 +564,7 @@ void EnGSwitch_DrawEffects(EnGSwitch* this, PlayState* play) { Matrix_RotateX(effect->rot.x, MTXMODE_APPLY); Matrix_RotateY(effect->rot.y, MTXMODE_APPLY); Matrix_RotateZ(effect->rot.z, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_g_switch.c", 1088), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_g_switch.c", 1088); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sRupeeTextures[effect->colorIdx])); gSPDisplayList(POLY_OPA_DISP++, gRupeeDL); } diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c index efae964b29..c8fd6d8fba 100644 --- a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c +++ b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c @@ -361,8 +361,7 @@ void EnGanonMant_DrawCloak(PlayState* play, EnGanonMant* this) { Matrix_Translate(0.0f, 0.0f, 0.0f, MTXMODE_NEW); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ganon_mant.c", 572), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_ganon_mant.c", 572); // set texture gSPDisplayList(POLY_OPA_DISP++, gMantMaterialDL); diff --git a/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c b/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c index 66c4b15333..1a36f849ac 100644 --- a/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c +++ b/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c @@ -99,8 +99,7 @@ void EnGanonOrgan_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x09, EnGanonOrgan_EmptyDList(play->state.gfxCtx)); } Matrix_Translate(0.0f, 0.0f, 0.0f, MTXMODE_NEW); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ganon_organ.c", 221), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_ganon_organ.c", 221); gSPDisplayList(POLY_OPA_DISP++, sRoomOrganAndFloorDL); gSPDisplayList(POLY_OPA_DISP++, sRoomStatuesDL); diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index 699bdafb42..e63259cb92 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -545,8 +545,7 @@ void EnGb_DrawCagedSouls(EnGb* this, PlayState* play) { } Matrix_Scale(0.007f, 0.007f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_gb.c", 955), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_gb.c", 955); gSPDisplayList(POLY_XLU_DISP++, gPoeSellerCagedSoulDL); Matrix_Pop(); diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index 42dd76fde4..95cf647b3a 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -1057,8 +1057,7 @@ void EnGo_DrawCurledUp(EnGo* this, PlayState* play) { Matrix_Push(); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_go.c", 2326), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_go.c", 2326); gSPDisplayList(POLY_OPA_DISP++, gGoronDL_00BD80); @@ -1077,8 +1076,7 @@ void EnGo_DrawRolling(EnGo* this, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); Matrix_RotateZYX((s16)(play->state.frames * ((s16)this->actor.speed * 1400)), 0, this->actor.shape.rot.z, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_go.c", 2368), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_go.c", 2368); gSPDisplayList(POLY_OPA_DISP++, gGoronDL_00C140); Matrix_MultVec3f(&D_80A41BC0, &this->actor.focus.pos); Matrix_Pop(); @@ -1226,8 +1224,7 @@ void EnGo_DrawEffects(EnGo* this, PlayState* play) { Matrix_Translate(dustEffect->pos.x, dustEffect->pos.y, dustEffect->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(dustEffect->scale, dustEffect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_go.c", 2664), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_go.c", 2664); index = dustEffect->timer * (8.0f / dustEffect->initialTimer); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(dustTex[index])); diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index 4ba779c80f..0b2a31e00c 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -234,8 +234,7 @@ void EnGo2_DrawEffects(EnGo2* this, PlayState* play) { Matrix_Translate(dustEffect->pos.x, dustEffect->pos.y, dustEffect->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(dustEffect->scale, dustEffect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_go2_eff.c", 137), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_go2_eff.c", 137); index = dustEffect->timer * (8.0f / dustEffect->initialTimer); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sDustTex[index])); gSPDisplayList(POLY_XLU_DISP++, gGoronDL_00FD50); @@ -1998,8 +1997,7 @@ s32 EnGo2_DrawCurledUp(EnGo2* this, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_go2.c", 2881); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_go2.c", 2884), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_go2.c", 2884); gSPDisplayList(POLY_OPA_DISP++, gGoronDL_00BD80); CLOSE_DISPS(play->state.gfxCtx, "../z_en_go2.c", 2889); Matrix_MultVec3f(&D_80A48554, &this->actor.focus.pos); @@ -2016,8 +2014,7 @@ s32 EnGo2_DrawRolling(EnGo2* this, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); speedXZ = this->actionFunc == EnGo2_ReverseRolling ? 0.0f : this->actor.speed; Matrix_RotateZYX((play->state.frames * ((s16)speedXZ * 1400)), 0, this->actor.shape.rot.z, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_go2.c", 2926), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_go2.c", 2926); gSPDisplayList(POLY_OPA_DISP++, gGoronDL_00C140); CLOSE_DISPS(play->state.gfxCtx, "../z_en_go2.c", 2930); Matrix_MultVec3f(&D_80A48560, &this->actor.focus.pos); diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c index abeb85fa9a..747a46f8a0 100644 --- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -820,23 +820,20 @@ void EnGoma_Draw(Actor* thisx, PlayState* play) { Matrix_RotateY(-(this->eggSquishAngle * 0.15f), MTXMODE_APPLY); Matrix_Translate(0.0f, this->eggYOffset, 0.0f, MTXMODE_APPLY); Matrix_RotateX(this->eggPitch, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_goma.c", 2101), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_goma.c", 2101); gSPDisplayList(POLY_OPA_DISP++, gObjectGolEggDL); Matrix_Pop(); break; case ENGOMA_HATCH_DEBRIS: - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_goma.c", 2107), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_goma.c", 2107); gSPDisplayList(POLY_OPA_DISP++, gBrownFragmentDL); break; case ENGOMA_BOSSLIMB: if (this->bossLimbDL != NULL) { gSPSegment(POLY_OPA_DISP++, 0x08, EnGoma_NoBackfaceCullingDlist(play->state.gfxCtx)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_goma.c", 2114), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_goma.c", 2114); gSPDisplayList(POLY_OPA_DISP++, this->bossLimbDL); } break; diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index 0c5e3cf4e4..d5a2e2eb57 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -587,8 +587,7 @@ void EnGs_Draw(Actor* thisx, PlayState* play) { Matrix_RotateZ(BINANG_TO_RAD(this->unk_1A0[1].z), MTXMODE_APPLY); } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_gs.c", 1064), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_gs.c", 1064); gSPDisplayList(POLY_OPA_DISP++, gGossipStoneMaterialDL); if (this->unk_19E & 4) { @@ -607,8 +606,7 @@ void EnGs_Draw(Actor* thisx, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(0.05f, -0.05f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_gs.c", 1087), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_gs.c", 1087); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 0, 0x20, 0x40, 1, 0, -frames * 0x14, 0x20, 0x80)); diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index 8c43bf2c14..ac47fef992 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -831,8 +831,7 @@ void EnHeishi2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* void EnHeishi2_DrawKingGuard(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_heishi2.c", 1772); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_heishi2.c", 1774), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_heishi2.c", 1774); gSPDisplayList(POLY_OPA_DISP++, gHeishiKingGuardDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_heishi2.c", 1777); @@ -857,7 +856,7 @@ void EnHeishi2_Draw(Actor* thisx, PlayState* play2) { Matrix_Put(&this->mtxf_330); Matrix_Translate(-570.0f, 0.0f, 0.0f, MTXMODE_APPLY); Matrix_RotateZ(DEG_TO_RAD(70), MTXMODE_APPLY); - mtx = MATRIX_NEW(play->state.gfxCtx, "../z_en_heishi2.c", 1820) - 7; + mtx = MATRIX_FINALIZE(play->state.gfxCtx, "../z_en_heishi2.c", 1820) - 7; gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[linkChildObjectSlot].segment); gSPSegment(POLY_OPA_DISP++, 0x0D, mtx); diff --git a/src/overlays/actors/ovl_En_Holl/z_en_holl.c b/src/overlays/actors/ovl_En_Holl/z_en_holl.c index 9b6619730a..c9af4d3b58 100644 --- a/src/overlays/actors/ovl_En_Holl/z_en_holl.c +++ b/src/overlays/actors/ovl_En_Holl/z_en_holl.c @@ -429,8 +429,7 @@ void EnHoll_Draw(Actor* thisx, PlayState* play) { Matrix_RotateY(M_PI, MTXMODE_APPLY); } - gSPMatrix(gfxP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_holl.c", 824), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(gfxP++, play->state.gfxCtx, "../z_en_holl.c", 824); gDPSetPrimColor(gfxP++, 0, 0, 0, 0, 0, (u8)this->planeAlpha); gSPDisplayList(gfxP++, sPlaneDL); diff --git a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c index b6ed63175c..507b521607 100644 --- a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c +++ b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c @@ -500,8 +500,7 @@ void EnHonotrap_DrawEye(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sSilverEyeTextures[this->eyeState])); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_honotrap.c", 987), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_honotrap.c", 987); gSPDisplayList(POLY_OPA_DISP++, gEyeSwitch2DL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_honotrap.c", 991); @@ -522,8 +521,7 @@ void EnHonotrap_DrawFlame(Actor* thisx, PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 0); Matrix_RotateY(BINANG_TO_RAD((s16)(Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)) - this->actor.shape.rot.y + 0x8000)), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_honotrap.c", 1024), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_honotrap.c", 1024); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_honotrap.c", 1028); diff --git a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c index 2aa6fba140..278039ed43 100644 --- a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c +++ b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c @@ -720,7 +720,7 @@ void EnHorseNormal_Draw(Actor* thisx, PlayState* play2) { temp_f0_4 = (1.0f - (distFromGround * 0.01f)) * this->actor.shape.shadowScale; Matrix_Scale(this->actor.scale.x * temp_f0_4, 1.0f, this->actor.scale.z * temp_f0_4, MTXMODE_APPLY); Matrix_RotateY(BINANG_TO_RAD(cloneRotY), MTXMODE_APPLY); - mtx = MATRIX_NEW(play->state.gfxCtx, "../z_en_horse_normal.c", 2329); + mtx = MATRIX_FINALIZE(play->state.gfxCtx, "../z_en_horse_normal.c", 2329); if (mtx != NULL) { gSPMatrix(POLY_XLU_DISP++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, gHorseShadowDL); diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index 82bd1b700d..2ae77026e1 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -391,8 +391,7 @@ void EnIceHono_Draw(Actor* thisx, PlayState* play) { Matrix_RotateY(BINANG_TO_RAD((s16)(Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)) - this->actor.shape.rot.y + 0x8000)), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ice_hono.c", 718), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_ice_hono.c", 718); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_ice_hono.c", 722); diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c index 494bfc3b28..4dd20ca3c9 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -931,8 +931,7 @@ void EnIk_PostLimbDrawEnemy(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* BODYBREAK_OBJECT_SLOT_DEFAULT); } if (limbIndex == IRON_KNUCKLE_LIMB_HELMET_ARMOR) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ik_inFight.c", 1217), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_ik_inFight.c", 1217); if (this->actor.params != IK_TYPE_NABOORU) { gSPDisplayList(POLY_XLU_DISP++, gIronKnuckleHelmetMarkingDL); } else { @@ -970,29 +969,25 @@ void EnIk_PostLimbDrawEnemy(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* switch (limbIndex) { case IRON_KNUCKLE_LIMB_UPPER_LEFT_PAULDRON: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ik_inFight.c", 1270), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_ik_inFight.c", 1270); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016F88); break; case IRON_KNUCKLE_LIMB_UPPER_RIGHT_PAULDRON: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ik_inFight.c", 1275), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_ik_inFight.c", 1275); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016EE8); break; case IRON_KNUCKLE_LIMB_CHEST_ARMOR_FRONT: if (!(this->drawArmorFlag & ARMOR_BROKEN)) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ik_inFight.c", 1281), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_ik_inFight.c", 1281); gSPDisplayList(POLY_XLU_DISP++, gIronKnuckleArmorRivetAndSymbolDL); } break; case IRON_KNUCKLE_LIMB_CHEST_ARMOR_BACK: if (!(this->drawArmorFlag & ARMOR_BROKEN)) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ik_inFight.c", 1288), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_ik_inFight.c", 1288); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016CD8); } break; @@ -1262,21 +1257,18 @@ void EnIk_PostLimbDrawDefeat(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* EnIk* this = (EnIk*)thisx; if (EnIk_GetAnimCurFrame(&this->actor) < 30.0f) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_ik_inAwake.c", 267), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_ik_inAwake.c", 267); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016D88); } } break; case IRON_KNUCKLE_DEFEAT_LIMB_UPPER_LEFT_PAULDRON: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_ik_inAwake.c", 274), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_ik_inAwake.c", 274); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016F88); break; case IRON_KNUCKLE_DEFEAT_LIMB_UPPER_RIGHT_PAULDRON: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_ik_inAwake.c", 280), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_ik_inAwake.c", 280); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016EE8); break; @@ -1284,8 +1276,7 @@ void EnIk_PostLimbDrawDefeat(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* EnIk* this = (EnIk*)thisx; if (EnIk_GetAnimCurFrame(&this->actor) < 30.0f) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_ik_inAwake.c", 288), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_ik_inAwake.c", 288); gSPDisplayList(POLY_XLU_DISP++, gIronKnuckleArmorRivetAndSymbolDL); } } break; @@ -1294,8 +1285,7 @@ void EnIk_PostLimbDrawDefeat(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* EnIk* this = (EnIk*)thisx; if (EnIk_GetAnimCurFrame(&this->actor) < 30.0f) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_ik_inAwake.c", 297), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_ik_inAwake.c", 297); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016CD8); } } break; @@ -1435,32 +1425,27 @@ void EnIk_PostLimbDrawIntro(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* switch (limbIndex) { case IRON_KNUCKLE_LIMB_HELMET_ARMOR: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_ik_inConfrontion.c", 575), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_ik_inConfrontion.c", 575); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016D88); break; case IRON_KNUCKLE_LIMB_UPPER_LEFT_PAULDRON: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_ik_inConfrontion.c", 581), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_ik_inConfrontion.c", 581); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016F88); break; case IRON_KNUCKLE_LIMB_UPPER_RIGHT_PAULDRON: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_ik_inConfrontion.c", 587), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_ik_inConfrontion.c", 587); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016EE8); break; case IRON_KNUCKLE_LIMB_CHEST_ARMOR_FRONT: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_ik_inConfrontion.c", 593), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_ik_inConfrontion.c", 593); gSPDisplayList(POLY_XLU_DISP++, gIronKnuckleArmorRivetAndSymbolDL); break; case IRON_KNUCKLE_LIMB_CHEST_ARMOR_BACK: - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_ik_inConfrontion.c", 599), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_ik_inConfrontion.c", 599); gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016CD8); break; } 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 365df1e74a..441bc3064e 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -487,8 +487,7 @@ void EnIshi_DrawLarge(EnIshi* this, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_ishi.c", 1050); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ishi.c", 1055), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_ishi.c", 1055); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255); gSPDisplayList(POLY_OPA_DISP++, gSilverRockDL); diff --git a/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c b/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c index cfae60a130..130644e565 100644 --- a/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c +++ b/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c @@ -407,8 +407,7 @@ void EnJsjutan_Draw(Actor* thisx, PlayState* play2) { Matrix_Translate(thisx->world.pos.x, 3.0f, thisx->world.pos.z, MTXMODE_NEW); Matrix_Scale(thisx->scale.x, 1.0f, thisx->scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_jsjutan.c", 782), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_jsjutan.c", 782); // Draws the carpet's shadow texture. gSPDisplayList(POLY_OPA_DISP++, sShadowMaterialDL); @@ -426,8 +425,7 @@ void EnJsjutan_Draw(Actor* thisx, PlayState* play2) { Matrix_Translate(thisx->world.pos.x, this->unk_168 + 3.0f, thisx->world.pos.z, MTXMODE_NEW); Matrix_Scale(thisx->scale.x, thisx->scale.y, thisx->scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_jsjutan.c", 805), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_jsjutan.c", 805); // Draws the carpet's texture. gSPDisplayList(POLY_OPA_DISP++, sCarpetMaterialDL); 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 0462b4a3c7..2989f8e088 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -835,8 +835,7 @@ void EnKanban_Draw(Actor* thisx, PlayState* play) { Matrix_RotateX(BINANG_TO_RAD_ALT(this->spinRot.x), MTXMODE_APPLY); Matrix_RotateY(BINANG_TO_RAD_ALT(this->spinRot.z), MTXMODE_APPLY); Matrix_Translate(this->offset.x, this->offset.y, this->offset.z - 100.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_kanban.c", 1715), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_kanban.c", 1715); for (i = 0; i < ARRAY_COUNT(sPartFlags); i++) { if (sPartFlags[i] & this->partFlags) { gSPDisplayList(POLY_OPA_DISP++, sDisplayLists[i]); @@ -844,8 +843,7 @@ void EnKanban_Draw(Actor* thisx, PlayState* play) { } } else { Matrix_Translate(0.0f, 0.0f, -100.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_kanban.c", 1725), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_kanban.c", 1725); if (this->partFlags == 0xFFFF) { gSPDisplayList(POLY_OPA_DISP++, gSignRectangularDL); } else { @@ -864,8 +862,7 @@ void EnKanban_Draw(Actor* thisx, PlayState* play) { gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0x00, 0x00, 255, 255, 255, this->cutMarkAlpha); gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 150, 0); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_kanban.c", 1773), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_kanban.c", 1773); gSPDisplayList(POLY_XLU_DISP++, object_kanban_DL_001630); } } @@ -903,8 +900,7 @@ void EnKanban_Draw(Actor* thisx, PlayState* play) { Matrix_RotateX(BINANG_TO_RAD_ALT(this->spinRot.x), MTXMODE_APPLY); Matrix_RotateY(BINANG_TO_RAD_ALT(this->spinRot.z), MTXMODE_APPLY); Matrix_Translate(this->offset.x, this->offset.y, this->offset.z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_kanban.c", 1833), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_kanban.c", 1833); for (i = 0; i < 0x400; i++) { if (sShadowTexFlags[i] & this->partFlags) { diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index a071219e00..705f98b38f 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -450,8 +450,7 @@ void EnKarebaba_DrawBaseShadow(EnKarebaba* this, PlayState* play) { func_80038A28(this->boundFloor, this->actor.home.pos.x, this->actor.home.pos.y, this->actor.home.pos.z, &mf); Matrix_Mult(&mf, MTXMODE_NEW); Matrix_Scale(0.15f, 1.0f, 0.15f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_karebaba.c", 1029), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_karebaba.c", 1029); gSPDisplayList(POLY_XLU_DISP++, gCircleShadowDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_karebaba.c", 1034); @@ -473,8 +472,7 @@ void EnKarebaba_Draw(Actor* thisx, PlayState* play) { if (this->actionFunc == EnKarebaba_DeadItemDrop) { if (this->actor.params > 40 || PARAMS_GET_U(this->actor.params, 0, 1)) { Matrix_Translate(0.0f, 0.0f, 200.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_karebaba.c", 1066), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_karebaba.c", 1066); gSPDisplayList(POLY_OPA_DISP++, gDekuBabaStickDropDL); } } else if (this->actionFunc != EnKarebaba_Dead) { @@ -499,8 +497,7 @@ void EnKarebaba_Draw(Actor* thisx, PlayState* play) { for (i = 0; i < stemSections; i++) { Matrix_Translate(0.0f, 0.0f, -2000.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_karebaba.c", 1116), - G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_karebaba.c", 1116); gSPDisplayList(POLY_OPA_DISP++, stemDLists[i]); if (i == 0 && this->actionFunc == EnKarebaba_Dying) { @@ -520,14 +517,12 @@ void EnKarebaba_Draw(Actor* thisx, PlayState* play) { Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); Matrix_RotateY(BINANG_TO_RAD(this->actor.home.rot.y), MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_karebaba.c", 1144), - G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_karebaba.c", 1144); gSPDisplayList(POLY_OPA_DISP++, gDekuBabaBaseLeavesDL); if (this->actionFunc == EnKarebaba_Dying) { Matrix_RotateZYX(-0x4000, (s16)(this->actor.shape.rot.y - this->actor.home.rot.y), 0, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_karebaba.c", 1155), - G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_karebaba.c", 1155); gSPDisplayList(POLY_OPA_DISP++, gDekuBabaStemBaseDL); } diff --git a/src/overlays/actors/ovl_En_Light/z_en_light.c b/src/overlays/actors/ovl_En_Light/z_en_light.c index 5f6939117e..33d671a95f 100644 --- a/src/overlays/actors/ovl_En_Light/z_en_light.c +++ b/src/overlays/actors/ovl_En_Light/z_en_light.c @@ -189,8 +189,7 @@ void EnLight_Draw(Actor* thisx, PlayState* play) { } Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_light.c", 488), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_light.c", 488); gSPDisplayList(POLY_XLU_DISP++, dList); CLOSE_DISPS(play->state.gfxCtx, "../z_en_light.c", 491); diff --git a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c index e703f4b94f..6303391a6e 100644 --- a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c +++ b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c @@ -330,8 +330,7 @@ void EnMThunder_Draw(Actor* thisx, PlayState* play2) { OPEN_DISPS(play->state.gfxCtx, "../z_en_m_thunder.c", 844); Gfx_SetupDL_25Xlu(play->state.gfxCtx); Matrix_Scale(0.02f, 0.02f, 0.02f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_m_thunder.c", 853), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_m_thunder.c", 853); switch (this->unk_1C6) { case 0: @@ -388,8 +387,7 @@ void EnMThunder_Draw(Actor* thisx, PlayState* play2) { phi_t1 = 0x14; } Matrix_Scale(1.0f, phi_f14, phi_f14, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_m_thunder.c", 960), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_m_thunder.c", 960); gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, (play->gameplayFrames * 5) & 0xFF, 0, 0x20, 0x20, diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index e9f8387fc0..7606f8d9e3 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -531,7 +531,7 @@ void EnMm_Draw(Actor* thisx, PlayState* play) { mtx = GRAPH_ALLOC(play->state.gfxCtx, sizeof(Mtx) * 2); Matrix_Put(&this->unk_208); - mtx2 = MATRIX_NEW(play->state.gfxCtx, "../z_en_mm.c", 1111); + mtx2 = MATRIX_FINALIZE(play->state.gfxCtx, "../z_en_mm.c", 1111); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[linkChildObjectSlot].segment); gSPSegment(POLY_OPA_DISP++, 0x0B, mtx); 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 84f56859f0..430012ebf6 100644 --- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -1200,8 +1200,7 @@ void EnNiw_DrawEffects(EnNiw* this, PlayState* play) { Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); Matrix_RotateZ(effect->unk_30, MTXMODE_APPLY); Matrix_Translate(0.0f, -1000.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_niw.c", 1913), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_niw.c", 1913); gSPDisplayList(POLY_XLU_DISP++, gCuccoEffectFeatherModelDL); } } diff --git a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c index 151b4e746c..18b98fbc16 100644 --- a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c +++ b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c @@ -172,7 +172,7 @@ void EnNutsball_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); Matrix_RotateZ(this->actor.home.rot.z * 9.58738e-05f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_nutsball.c", 333), G_MTX_MODELVIEW | G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_nutsball.c", 333); gSPDisplayList(POLY_OPA_DISP++, sDLists[NUTSBALL_GET_TYPE(&this->actor)]); CLOSE_DISPS(play->state.gfxCtx, "../z_en_nutsball.c", 337); diff --git a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c index ff791ec984..c95daad746 100644 --- a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c +++ b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c @@ -171,7 +171,7 @@ void EnNwc_DrawChicks(EnNwc* this, PlayState* play) { Matrix_SetTranslateRotateYXZ(chick->pos.x, chick->pos.y + chick->height, chick->pos.z, &chick->rot); Matrix_Scale(0.01f, 0.01f, 0.01f, MTXMODE_APPLY); - mtx = MATRIX_NEW(play->state.gfxCtx, "../z_en_nwc.c", 346); + mtx = MATRIX_FINALIZE(play->state.gfxCtx, "../z_en_nwc.c", 346); gDPSetEnvColor(dList1++, 0, 100, 255, 255); gSPMatrix(dList1++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(dList1++, gCuccoChickBodyDL); @@ -193,8 +193,7 @@ void EnNwc_DrawChicks(EnNwc* this, PlayState* play) { Matrix_Put(&floorMat); Matrix_RotateY(BINANG_TO_RAD(chick->rot.y), MTXMODE_APPLY); Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_nwc.c", 388), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_nwc.c", 388); gSPDisplayList(POLY_XLU_DISP++, gCuccoChickShadowDL); } } 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 1a06442304..dadd2359eb 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -531,8 +531,7 @@ void EnNy_Draw(Actor* thisx, PlayState* play) { Collider_UpdateSpheres(0, &this->collider); func_8002ED80(&this->actor, play, 1); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ny.c", 845), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_ny.c", 845); gDPPipeSync(POLY_XLU_DISP++); gDPSetRenderMode(POLY_XLU_DISP++, G_RM_PASS, G_RM_AA_ZB_XLU_SURF2); gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, this->unk_1D8); @@ -545,8 +544,7 @@ void EnNy_Draw(Actor* thisx, PlayState* play) { Matrix_Scale(this->unk_1E0, this->unk_1E0, this->unk_1E0, MTXMODE_APPLY); func_8002EBCC(&this->actor, play, 1); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ny.c", 868), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_ny.c", 868); gSPDisplayList(POLY_OPA_DISP++, gEnNySpikeDL); } CLOSE_DISPS(play->state.gfxCtx, "../z_en_ny.c", 872); @@ -584,8 +582,7 @@ void EnNy_DrawDeathEffect(Actor* thisx, PlayState* play) { Matrix_Translate(temp->x, temp->y, temp->z, MTXMODE_NEW); scale = this->actor.scale.x * 0.4f * (1.0f + (i * 0.04f)); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_ny.c", 912), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_ny.c", 912); gSPDisplayList(POLY_OPA_DISP++, gEnNyRockBodyDL); } } diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index a25f0632ab..f20ed91de4 100644 --- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -715,8 +715,7 @@ void EnOkuta_Draw(Actor* thisx, PlayState* play) { Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); Matrix_RotateZ(BINANG_TO_RAD(this->actor.home.rot.z), MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_okuta.c", 1657), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_okuta.c", 1657); gSPDisplayList(POLY_OPA_DISP++, gOctorokProjectileDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_okuta.c", 1662); diff --git a/src/overlays/actors/ovl_En_Part/z_en_part.c b/src/overlays/actors/ovl_En_Part/z_en_part.c index 8ff94c65bc..1d3eb0fd42 100644 --- a/src/overlays/actors/ovl_En_Part/z_en_part.c +++ b/src/overlays/actors/ovl_En_Part/z_en_part.c @@ -313,8 +313,7 @@ void EnPart_Draw(Actor* thisx, PlayState* play) { } if (this->displayList != NULL) { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_part.c", 696), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_part.c", 696); gSPDisplayList(POLY_OPA_DISP++, this->displayList); } diff --git a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c index db6419abdf..0a21d5d386 100644 --- a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c +++ b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c @@ -1021,8 +1021,7 @@ s32 EnPeehat_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f Matrix_RotateZ(-(this->jiggleRot * 0.1f), MTXMODE_APPLY); Matrix_RotateY(-(this->jiggleRot * 0.13f), MTXMODE_APPLY); Matrix_RotateX(-(this->jiggleRot * 0.115f), MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_peehat.c", 1959), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_peehat.c", 1959); gSPDisplayList(POLY_OPA_DISP++, *dList); Matrix_Pop(); CLOSE_DISPS(play->state.gfxCtx, "../z_en_peehat.c", 1963); @@ -1055,8 +1054,7 @@ void EnPeehat_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* r } Matrix_RotateY(3.2f + damageYRot, MTXMODE_APPLY); Matrix_Scale(0.3f, 0.2f, 0.2f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_peehat.c", 1990), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_peehat.c", 1990); gSPDisplayList(POLY_OPA_DISP++, *dList); Matrix_Pop(); CLOSE_DISPS(play->state.gfxCtx, "../z_en_peehat.c", 1994); diff --git a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c index 0764411926..768bbcb279 100644 --- a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c +++ b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c @@ -237,8 +237,7 @@ void EnPoDesert_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_REACT_TO_LENS)) { gDPPipeSync((*gfxP)++); gDPSetEnvColor((*gfxP)++, color.r, color.g, color.b, 255); - gSPMatrix((*gfxP)++, MATRIX_NEW(play->state.gfxCtx, "../z_en_po_desert.c", 523), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD((*gfxP)++, play->state.gfxCtx, "../z_en_po_desert.c", 523); gSPDisplayList((*gfxP)++, gPoeFieldLanternDL); gSPDisplayList((*gfxP)++, gPoeFieldLanternTopDL); gDPPipeSync((*gfxP)++); diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index e65fec05a1..36ea062472 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -793,8 +793,7 @@ void EnPoField_DrawFlame(EnPoField* this, PlayState* play) { Matrix_Scale((this->flameScale * 0.7f) + 0.00090000004f, (0.003f - this->flameScale) + 0.003f, 0.003f, MTXMODE_APPLY); } - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_po_field.c", 1709), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_po_field.c", 1709); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_po_field.c", 1712); @@ -896,8 +895,7 @@ void EnPoField_PostLimDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* EnPoField* this = (EnPoField*)thisx; if (this->actionFunc == EnPoField_Death && this->actionTimer >= 2 && limbIndex == 8) { - gSPMatrix((*gfxP)++, MATRIX_NEW(play->state.gfxCtx, "../z_en_po_field.c", 1916), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD((*gfxP)++, play->state.gfxCtx, "../z_en_po_field.c", 1916); gSPDisplayList((*gfxP)++, gPoeFieldBurnDL); } if (limbIndex == 7) { @@ -948,8 +946,7 @@ void EnPoField_Draw(Actor* thisx, PlayState* play) { gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, this->soulColor.r, this->soulColor.g, this->soulColor.b, 255); Matrix_Put(&sLimb7Mtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_po_field.c", 2033), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_po_field.c", 2033); gSPDisplayList(POLY_OPA_DISP++, gPoeFieldLanternDL); gSPDisplayList(POLY_OPA_DISP++, gPoeFieldLanternTopDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_po_field.c", 2039); @@ -980,8 +977,7 @@ void EnPoField_DrawSoul(Actor* thisx, PlayState* play) { Lights_PointGlowSetInfo(&this->lightInfo, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, this->soulColor.r, this->soulColor.g, this->soulColor.b, 200); gDPSetEnvColor(POLY_OPA_DISP++, this->soulColor.r, this->soulColor.g, this->soulColor.b, 255); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_po_field.c", 2104), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_po_field.c", 2104); gSPDisplayList(POLY_OPA_DISP++, gPoeFieldLanternDL); gSPDisplayList(POLY_OPA_DISP++, gPoeFieldLanternTopDL); } else { @@ -994,8 +990,7 @@ void EnPoField_DrawSoul(Actor* thisx, PlayState* play) { this->lightColor.a); gDPSetEnvColor(POLY_XLU_DISP++, this->lightColor.r, this->lightColor.g, this->lightColor.b, 255); Matrix_RotateY((s16)(Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)) + 0x8000) * 9.58738e-05f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_po_field.c", 2143), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_po_field.c", 2143); gSPDisplayList(POLY_XLU_DISP++, gPoeFieldSoulDL); } diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index 63b4311d15..2ab6611aa1 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -392,8 +392,7 @@ void EnPoRelay_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* this->lightColor.b, 200); } else if (limbIndex == 8) { OPEN_DISPS(play->state.gfxCtx, "../z_en_po_relay.c", 916); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_po_relay.c", 918), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_po_relay.c", 918); gSPDisplayList(POLY_OPA_DISP++, gDampeHaloDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_po_relay.c", 922); } diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 9606a85cf0..739e137cfe 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -1304,8 +1304,7 @@ void EnPoSisters_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s s32 pad; if (this->actionFunc == func_80ADAFC0 && this->unk_19A >= 8 && limbIndex == 9) { - gSPMatrix((*gfxP)++, MATRIX_NEW(play->state.gfxCtx, "../z_en_po_sisters.c", 2876), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD((*gfxP)++, play->state.gfxCtx, "../z_en_po_sisters.c", 2876); gSPDisplayList((*gfxP)++, gPoSistersBurnDL); } if (limbIndex == 8 && this->actionFunc != func_80ADB2B8) { @@ -1369,8 +1368,7 @@ void EnPoSisters_Draw(Actor* thisx, PlayState* play) { } if (!(this->unk_199 & 0x80)) { Matrix_Put(&this->unk_2F8); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_po_sisters.c", 3034), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_po_sisters.c", 3034); gSPDisplayList(POLY_OPA_DISP++, gPoSistersTorchDL); } gSPSegment(POLY_XLU_DISP++, 0x08, @@ -1412,8 +1410,7 @@ void EnPoSisters_Draw(Actor* thisx, PlayState* play) { phi_f20 = CLAMP(phi_f20, 0.5f, 0.8f) * 0.007f; } Matrix_Scale(phi_f20, phi_f20, phi_f20, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_po_sisters.c", 3132), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_po_sisters.c", 3132); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); } CLOSE_DISPS(play->state.gfxCtx, "../z_en_po_sisters.c", 3139); diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index 6205aaac94..1092ecabce 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -1045,8 +1045,7 @@ void EnPoh_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Collider_UpdateSpheres(limbIndex, &this->colliderSph); if (this->actionFunc == func_80ADF15C && this->unk_198 >= 2 && limbIndex == this->info->unk_7) { - gSPMatrix((*gfxP)++, MATRIX_NEW(play->state.gfxCtx, "../z_en_poh.c", 2460), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD((*gfxP)++, play->state.gfxCtx, "../z_en_poh.c", 2460); gSPDisplayList((*gfxP)++, this->info->burnDisplayList); } if (limbIndex == this->info->unk_6) { @@ -1088,8 +1087,7 @@ void EnPoh_DrawRegular(Actor* thisx, PlayState* play) { gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, this->envColor.r, this->envColor.g, this->envColor.b, 255); Matrix_Put(&this->unk_368); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_poh.c", 2676), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_poh.c", 2676); gSPDisplayList(POLY_OPA_DISP++, this->info->lanternDisplayList); CLOSE_DISPS(play->state.gfxCtx, "../z_en_poh.c", 2681); } @@ -1139,8 +1137,7 @@ void EnPoh_DrawComposer(Actor* thisx, PlayState* play) { gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, this->envColor.r, this->envColor.g, this->envColor.b, 255); Matrix_Put(&this->unk_368); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_poh.c", 2787), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_poh.c", 2787); gSPDisplayList(POLY_OPA_DISP++, this->info->lanternDisplayList); gSPDisplayList(POLY_OPA_DISP++, gPoeComposerLanternBottomDL); gDPPipeSync(POLY_OPA_DISP++); @@ -1169,8 +1166,7 @@ void EnPoh_DrawSoul(Actor* thisx, PlayState* play) { gDPSetEnvColor(POLY_OPA_DISP++, this->envColor.r, this->envColor.g, this->envColor.b, 255); Lights_PointGlowSetInfo(&this->lightInfo, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, this->envColor.r, this->envColor.g, this->envColor.b, 200); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_poh.c", 2854), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_poh.c", 2854); gSPDisplayList(POLY_OPA_DISP++, this->info->lanternDisplayList); if (this->infoIdx == EN_POH_INFO_COMPOSER) { Color_RGBA8* envColor = (this->actor.params == EN_POH_SHARP) ? &D_80AE1B4C : &D_80AE1B50; @@ -1190,8 +1186,7 @@ void EnPoh_DrawSoul(Actor* thisx, PlayState* play) { this->info->primColor.b, this->lightColor.a); gDPSetEnvColor(POLY_XLU_DISP++, this->lightColor.r, this->lightColor.g, this->lightColor.b, 255); Matrix_RotateY((s16)(Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)) + 0x8000) * 9.58738e-05f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_poh.c", 2910), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_poh.c", 2910); gSPDisplayList(POLY_XLU_DISP++, this->info->soulDisplayList); } CLOSE_DISPS(play->state.gfxCtx, "../z_en_poh.c", 2916); diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index 779c54c52c..6abb326ed8 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -866,8 +866,7 @@ void EnRr_Draw(Actor* thisx, PlayState* play) { Matrix_Scale((1.0f + this->bodySegs[RR_BASE].scaleMod.x) * this->bodySegs[RR_BASE].scale.x, (1.0f + this->bodySegs[RR_BASE].scaleMod.y) * this->bodySegs[RR_BASE].scale.y, (1.0f + this->bodySegs[RR_BASE].scaleMod.z) * this->bodySegs[RR_BASE].scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_rr.c", 1501), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_rr.c", 1501); Matrix_Pop(); zeroVec.x = 0.0f; diff --git a/src/overlays/actors/ovl_En_Sda/z_en_sda.c b/src/overlays/actors/ovl_En_Sda/z_en_sda.c index 6e90040a56..4452c86610 100644 --- a/src/overlays/actors/ovl_En_Sda/z_en_sda.c +++ b/src/overlays/actors/ovl_En_Sda/z_en_sda.c @@ -351,8 +351,7 @@ void func_80AF9C70(u8* shadowTexture, Player* player, PlayState* play) { 20.0f; Matrix_Translate(tempx, 0.0f, tempz, MTXMODE_APPLY); Matrix_Scale(((BREG(56) - 250) / 1000.0f) + 0.6f, 1.0f, ((BREG(59) - 250) / 1000.0f) + 0.6f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_sda.c", 860), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_sda.c", 860); gSPDisplayList(POLY_XLU_DISP++, D_80AFA3D8); gDPLoadTextureBlock(POLY_XLU_DISP++, shadowTexture, G_IM_FMT_I, G_IM_SIZ_8b, 0x40, 0x40, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 6, 6, G_TX_NOLOD, G_TX_NOLOD); @@ -360,8 +359,7 @@ void func_80AF9C70(u8* shadowTexture, Player* player, PlayState* play) { for (phi_s1 = 0; phi_s1 < KREG(78); phi_s1++) { Matrix_Scale((KREG(79) / 100.0f) + 1.0f, 1.0f, (KREG(79) / 100.0f) + 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_sda.c", 877), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_sda.c", 877); gSPDisplayList(POLY_XLU_DISP++, D_80AFA3F8); } PRINTF("SDA D 2\n"); diff --git a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c index ab0af7d2f1..602dbe0d32 100644 --- a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c +++ b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c @@ -322,8 +322,7 @@ void EnShopnuts_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* } Matrix_Scale(x, y, z, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_shopnuts.c", 714), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_shopnuts.c", 714); gSPDisplayList(POLY_OPA_DISP++, gBusinessScrubNoseDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_shopnuts.c", 717); diff --git a/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c b/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c index 44e7410969..20a655101a 100644 --- a/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c +++ b/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c @@ -286,8 +286,7 @@ void EnSiofuki_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); Matrix_Translate(0.0f, this->unk_170, 0.0f, MTXMODE_APPLY); Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_siofuki.c", 662), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_siofuki.c", 662); x = gameplayFrames * 15; y = gameplayFrames * -15; gSPSegment(POLY_XLU_DISP++, 0x08, diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index 2524166278..a630995c9e 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -1616,8 +1616,7 @@ void EnSkj_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Gfx_SetupDL_25Opa(play->state.gfxCtx); Matrix_Push(); Matrix_RotateZYX(-0x4000, 0, 0, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_skj.c", 2430), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_skj.c", 2430); gSPDisplayList(POLY_OPA_DISP++, gSkullKidSkullMaskDL); Matrix_Pop(); } diff --git a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c index 131b09f360..a893e4766b 100644 --- a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c +++ b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c @@ -104,8 +104,7 @@ void EnSkjneedle_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_skj_needle.c", 200); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_skj_needle.c", 205), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_skj_needle.c", 205); gSPDisplayList(POLY_OPA_DISP++, gSkullKidNeedleDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_skj_needle.c", 210); diff --git a/src/overlays/actors/ovl_En_Stream/z_en_stream.c b/src/overlays/actors/ovl_En_Stream/z_en_stream.c index 3d094eb73f..57ff345d61 100644 --- a/src/overlays/actors/ovl_En_Stream/z_en_stream.c +++ b/src/overlays/actors/ovl_En_Stream/z_en_stream.c @@ -133,8 +133,7 @@ void EnStream_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_stream.c", 295); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_stream.c", 299), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_stream.c", 299); multipliedFrames = frames * 20; gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, frames * 30, -multipliedFrames, 0x40, 0x40, 1, diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c index 1b94e675d3..31a28f9744 100644 --- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c +++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c @@ -782,8 +782,7 @@ void EnSyatekiNiw_DrawEffects(EnSyatekiNiw* this, PlayState* play) { Matrix_RotateZ(effect->rot, MTXMODE_APPLY); Matrix_Translate(0.0f, -1000.0f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_syateki_niw.c", 1251), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_syateki_niw.c", 1251); gSPDisplayList(POLY_XLU_DISP++, gCuccoEffectFeatherModelDL); } } diff --git a/src/overlays/actors/ovl_En_Tana/z_en_tana.c b/src/overlays/actors/ovl_En_Tana/z_en_tana.c index 76fa8b7019..3171198069 100644 --- a/src/overlays/actors/ovl_En_Tana/z_en_tana.c +++ b/src/overlays/actors/ovl_En_Tana/z_en_tana.c @@ -79,8 +79,7 @@ void EnTana_DrawWoodenShelves(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_tana.c", 148); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_tana.c", 152), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_tana.c", 152); gSPDisplayList(POLY_OPA_DISP++, sShelfDLists[thisx->params]); CLOSE_DISPS(play->state.gfxCtx, "../z_en_tana.c", 157); @@ -93,8 +92,7 @@ void EnTana_DrawStoneShelves(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sStoneTextures[thisx->params])); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_tana.c", 169), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_tana.c", 169); gSPDisplayList(POLY_OPA_DISP++, sShelfDLists[thisx->params]); CLOSE_DISPS(play->state.gfxCtx, "../z_en_tana.c", 174); diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 27eb74355d..7a1dd4b8a7 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -112,8 +112,7 @@ void EnTkEff_Draw(EnTk* this, PlayState* play) { Matrix_Translate(eff->pos.x, eff->pos.y, eff->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(eff->size, eff->size, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_tk_eff.c", 140), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_tk_eff.c", 140); imageIdx = eff->timeLeft * ((f32)ARRAY_COUNT(dustTextures) / eff->timeTotal); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(dustTextures[imageIdx])); diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c index 1257b7b62e..6319ac9b1e 100644 --- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c +++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c @@ -744,8 +744,7 @@ void EnTp_Draw(Actor* thisx, PlayState* play) { if ((thisx->params <= TAILPASARAN_HEAD) || (thisx->params == TAILPASARAN_HEAD_DYING)) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_tp.c", 1459), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_tp.c", 1459); gSPDisplayList(POLY_OPA_DISP++, gTailpasaranHeadDL); Matrix_Translate(0.0f, 0.0f, 8.0f, MTXMODE_APPLY); @@ -761,8 +760,7 @@ void EnTp_Draw(Actor* thisx, PlayState* play) { gDPPipeSync(POLY_XLU_DISP++); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gTailpasaranTailSegmentTex)); gDPPipeSync(POLY_XLU_DISP++); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_tp.c", 1480), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_tp.c", 1480); gSPDisplayList(POLY_XLU_DISP++, gTailpasaranTailSegmentDL); } } diff --git a/src/overlays/actors/ovl_En_Vali/z_en_vali.c b/src/overlays/actors/ovl_En_Vali/z_en_vali.c index 28b40fe9c9..bc98ba6cf3 100644 --- a/src/overlays/actors/ovl_En_Vali/z_en_vali.c +++ b/src/overlays/actors/ovl_En_Vali/z_en_vali.c @@ -729,8 +729,7 @@ void EnVali_DrawBody(EnVali* this, PlayState* play) { EnVali_PulseInsides(this, curFrame, &scale); Matrix_Scale(scale.x, scale.y, scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_vali.c", 1436), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_vali.c", 1436); gSPDisplayList(POLY_XLU_DISP++, gBariInnerHoodDL); Matrix_Put(&mtx); @@ -739,20 +738,17 @@ void EnVali_DrawBody(EnVali* this, PlayState* play) { cos = Math_CosS(this->actor.shape.rot.y); sin = Math_SinS(this->actor.shape.rot.y); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_vali.c", 1446), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_vali.c", 1446); gSPDisplayList(POLY_XLU_DISP++, gBariNucleusDL); Matrix_Translate((506.0f * cos) + (372.0f * sin), 1114.0f, (372.0f * cos) - (506.0f * sin), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_vali.c", 1455), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_vali.c", 1455); gSPDisplayList(POLY_XLU_DISP++, gBariNucleusDL); Matrix_Translate((-964.0f * cos) - (804.0f * sin), -108.0f, (-804.0f * cos) + (964.0f * sin), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_vali.c", 1463), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_vali.c", 1463); gSPDisplayList(POLY_XLU_DISP++, gBariNucleusDL); Matrix_Put(&mtx); @@ -762,8 +758,7 @@ void EnVali_DrawBody(EnVali* this, PlayState* play) { EnVali_PulseOutside(this, curFrame, &scale); Matrix_Scale(scale.x, scale.y, scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_vali.c", 1471), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_vali.c", 1471); gSPDisplayList(POLY_XLU_DISP++, gBariOuterHoodDL); Matrix_Put(&mtx); diff --git a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c index 5954f121d5..8553fcad22 100644 --- a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c +++ b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c @@ -303,8 +303,7 @@ void EnVbBall_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_vb_ball.c", 604); if (1) {} // needed for match Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_vb_ball.c", 607), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_vb_ball.c", 607); if (this->actor.params >= 200) { gSPDisplayList(POLY_OPA_DISP++, SEGMENTED_TO_VIRTUAL(gVolvagiaRibsDL)); @@ -315,8 +314,7 @@ void EnVbBall_Draw(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 0, 0, (s8)this->shadowOpacity); Matrix_Translate(this->actor.world.pos.x, 100.0f, this->actor.world.pos.z, MTXMODE_NEW); Matrix_Scale(this->shadowSize, 1.0f, this->shadowSize, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_vb_ball.c", 626), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_vb_ball.c", 626); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gCircleShadowDL)); } diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c index 077bc517c6..0b0594ed86 100644 --- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c +++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c @@ -513,8 +513,7 @@ void EnViewer_Ganondorf9PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList if (limbIndex == GANONDORF_LIMB_JEWEL) { OPEN_DISPS(play->state.gfxCtx, "../z_en_viewer.c", 1365); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_viewer.c", 1370), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_viewer.c", 1370); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanondorfEyesDL)); CLOSE_DISPS(play->state.gfxCtx, "../z_en_viewer.c", 1372); } @@ -859,8 +858,7 @@ void EnViewer_DrawFireEffects(EnViewer* this2, PlayState* play) { (10 * i - 20 * play->state.frames) % 512, 32, 128)); gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 255, 170, 255); gDPSetEnvColor(POLY_XLU_DISP++, 255, 50, 00, 255); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_viewer.c", 2027), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_viewer.c", 2027); gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); } diff --git a/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/src/overlays/actors/ovl_En_Vm/z_en_vm.c index d2e94c1e4e..c938fec0f9 100644 --- a/src/overlays/actors/ovl_En_Vm/z_en_vm.c +++ b/src/overlays/actors/ovl_En_Vm/z_en_vm.c @@ -529,16 +529,14 @@ void EnVm_Draw(Actor* thisx, PlayState* play2) { if (this->unk_260 >= 3) { Matrix_Translate(this->beamPos3.x, this->beamPos3.y + 10.0f, this->beamPos3.z, MTXMODE_NEW); Matrix_Scale(0.8f, 0.8f, 0.8f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_vm.c", 1033), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_vm.c", 1033); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 168); Gfx_SetupDL_60NoCDXlu(play->state.gfxCtx); gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 255, 0); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80B2EB88[play->gameplayFrames % 8])); gSPDisplayList(POLY_XLU_DISP++, gEffEnemyDeathFlameDL); Matrix_RotateY(32767.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_vm.c", 1044), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_vm.c", 1044); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80B2EB88[(play->gameplayFrames + 4) % 8])); gSPDisplayList(POLY_XLU_DISP++, gEffEnemyDeathFlameDL); } @@ -546,8 +544,7 @@ void EnVm_Draw(Actor* thisx, PlayState* play2) { Matrix_Translate(this->beamPos1.x, this->beamPos1.y, this->beamPos1.z, MTXMODE_NEW); Matrix_RotateZYX(this->beamRot.x, this->beamRot.y, this->beamRot.z, MTXMODE_APPLY); Matrix_Scale(this->beamScale.x * 0.1f, this->beamScale.x * 0.1f, this->beamScale.z * 0.0015f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_vm.c", 1063), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_vm.c", 1063); gSPDisplayList(POLY_OPA_DISP++, gBeamosLaserDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_vm.c", 1068); diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index 51751a2f53..b50c55776f 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -606,7 +606,7 @@ void EnWallmas_DrawXlu(EnWallmas* this, PlayState* play) { } Matrix_Scale(xzScale, 1.0f, xzScale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_wallmas.c", 1421), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_wallmas.c", 1421); gSPDisplayList(POLY_XLU_DISP++, gCircleShadowDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_wallmas.c", 1426); @@ -635,7 +635,7 @@ void EnWallMas_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* Matrix_RotateZ(DEG_TO_RAD(15), MTXMODE_APPLY); Matrix_Scale(2.0f, 2.0f, 2.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_wallmas.c", 1489), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_wallmas.c", 1489); gSPDisplayList(POLY_OPA_DISP++, gWallmasterFingerDL); Matrix_Pop(); diff --git a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c index 434cf729aa..0fb8813a9a 100644 --- a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c +++ b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c @@ -446,13 +446,11 @@ void EnWood02_Draw(Actor* thisx, PlayState* play) { } else if (D_80B3BF70[this->drawType & 0xF] != NULL) { Gfx_DrawDListOpa(play, D_80B3BF54[this->drawType & 0xF]); gDPSetEnvColor(POLY_XLU_DISP++, red, green, blue, 0); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_wood02.c", 808), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_wood02.c", 808); gSPDisplayList(POLY_XLU_DISP++, D_80B3BF70[this->drawType & 0xF]); } else { Gfx_SetupDL_25Xlu(gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_en_wood02.c", 814), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_en_wood02.c", 814); gSPDisplayList(POLY_XLU_DISP++, D_80B3BF54[this->drawType & 0xF]); } diff --git a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c index a3317eef79..ba5cc91a8d 100644 --- a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c +++ b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c @@ -150,8 +150,7 @@ void EnYukabyun_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80B43F64[this->unk_152])); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_yukabyun.c", 373), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_yukabyun.c", 373); gSPDisplayList(POLY_OPA_DISP++, gFloorTileEnemyDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_yukabyun.c", 378); diff --git a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c index f06b5fbd1a..670568d122 100644 --- a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c +++ b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c @@ -568,8 +568,7 @@ void EnZl2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Matrix_Translate(180.0f, 979.0f, -375.0f, MTXMODE_APPLY); Matrix_RotateZYX(-0x5DE7, -0x53E9, 0x3333, MTXMODE_APPLY); Matrix_Scale(1.2f, 1.2f, 1.2f, MTXMODE_APPLY); - gSPMatrix((*gfx)++, MATRIX_NEW(play->state.gfxCtx, "../z_en_zl2.c", 1253), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD((*gfx)++, play->state.gfxCtx, "../z_en_zl2.c", 1253); gSPDisplayList((*gfx)++, gZelda2OcarinaDL); } Matrix_Pop(); 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 38fbdb3013..0af3e70f74 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -194,8 +194,7 @@ void EnZo_DrawEffectsRipples(EnZo* this, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, effect->color.a); Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_Scale(effect->scale, 1.0f, effect->scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_zo_eff.c", 242), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_zo_eff.c", 242); gSPDisplayList(POLY_XLU_DISP++, gZoraRipplesModelDL); } @@ -229,8 +228,7 @@ void EnZo_DrawEffectsBubbles(EnZo* this, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_zo_eff.c", 281), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_zo_eff.c", 281); gSPDisplayList(POLY_XLU_DISP++, gZoraBubblesModelDL); } CLOSE_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 286); @@ -260,8 +258,7 @@ void EnZo_DrawEffectsSplashes(EnZo* this, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_zo_eff.c", 325), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_zo_eff.c", 325); gSPDisplayList(POLY_XLU_DISP++, gZoraSplashesModelDL); } diff --git a/src/overlays/actors/ovl_End_Title/z_end_title.c b/src/overlays/actors/ovl_End_Title/z_end_title.c index 7117be63a3..f5c53ee0e2 100644 --- a/src/overlays/actors/ovl_End_Title/z_end_title.c +++ b/src/overlays/actors/ovl_End_Title/z_end_title.c @@ -62,7 +62,7 @@ void EndTitle_DrawFull(Actor* thisx, PlayState* play) { Matrix_RotateX(BINANG_TO_RAD(0xBB8), MTXMODE_APPLY); Matrix_RotateY(0.0f, MTXMODE_APPLY); Matrix_RotateZ(0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_end_title.c", 412), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_end_title.c", 412); gSPDisplayList(POLY_XLU_DISP++, sTriforceDL); CLOSE_DISPS(play->state.gfxCtx, "../z_end_title.c", 417); diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index f862b6aec2..77f1c0325d 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -1246,8 +1246,7 @@ void Fishing_DrawEffects(FishingEffect* effect, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_Scale(effect->scale, 1.0f, effect->scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 2305), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 2305); gSPDisplayList(POLY_XLU_DISP++, gFishingRippleModelDL); } @@ -1270,8 +1269,7 @@ void Fishing_DrawEffects(FishingEffect* effect, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 2346), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 2346); gSPDisplayList(POLY_XLU_DISP++, gFishingDustSplashModelDL); } @@ -1298,8 +1296,7 @@ void Fishing_DrawEffects(FishingEffect* effect, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 2394), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 2394); gSPDisplayList(POLY_OPA_DISP++, gFishingWaterDustModelDL); } @@ -1321,8 +1318,7 @@ void Fishing_DrawEffects(FishingEffect* effect, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 2423), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 2423); gSPDisplayList(POLY_XLU_DISP++, gFishingBubbleModelDL); } @@ -1346,8 +1342,7 @@ void Fishing_DrawEffects(FishingEffect* effect, PlayState* play) { Matrix_RotateZ(effect->rot.z, MTXMODE_APPLY); Matrix_Scale(0.002f, 1.0f, 0.1f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 2467), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 2467); gSPDisplayList(POLY_XLU_DISP++, gFishingRainDropModelDL); } @@ -1370,8 +1365,7 @@ void Fishing_DrawEffects(FishingEffect* effect, PlayState* play) { Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_Scale(effect->scale, 1.0f, effect->scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 2504), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 2504); gSPDisplayList(POLY_XLU_DISP++, gFishingRippleModelDL); } @@ -1399,8 +1393,7 @@ void Fishing_DrawEffects(FishingEffect* effect, PlayState* play) { Matrix_RotateY(rotY, MTXMODE_APPLY); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 2541), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 2541); gSPDisplayList(POLY_XLU_DISP++, gFishingRainSplashModelDL); } @@ -1416,8 +1409,7 @@ void Fishing_DrawEffects(FishingEffect* effect, PlayState* play) { Matrix_Scale(effect->scale, effect->scale, effect->scale, MTXMODE_APPLY); Matrix_Translate(-1250.0f, 0.0f, 0.0f, MTXMODE_APPLY); Matrix_RotateX(M_PI / 2, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 2560), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 2560); gSPDisplayList(POLY_OPA_DISP++, gFishingOwnerHatDL); } @@ -1441,8 +1433,7 @@ void Fishing_DrawStreamSplash(PlayState* play) { Matrix_Translate(670.0f, -24.0f, -600.0f, MTXMODE_NEW); Matrix_Scale(0.02f, 1.0f, 0.02f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 2598), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 2598); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gFishingStreamSplashDL)); CLOSE_DISPS(play->state.gfxCtx, "../z_fishing.c", 2613); @@ -1672,14 +1663,12 @@ void Fishing_DrawLureHook(PlayState* play, Vec3f* pos, Vec3f* refPos, u8 hookInd Matrix_Scale(0.0039999997f, 0.0039999997f, 0.005f, MTXMODE_APPLY); Matrix_RotateY(M_PI, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 3029), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 3029); gSPDisplayList(POLY_OPA_DISP++, gFishingLureHookDL); Matrix_RotateZ(M_PI / 2, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 3034), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 3034); gSPDisplayList(POLY_OPA_DISP++, gFishingLureHookDL); if ((hookIndex == 1) && (sIsOwnersHatHooked)) { @@ -1708,8 +1697,7 @@ void Fishing_DrawLureHook(PlayState* play, Vec3f* pos, Vec3f* refPos, u8 hookInd Matrix_Translate(-1250.0f, 0.0f, 0.0f, MTXMODE_APPLY); Matrix_RotateX(M_PI / 2, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 3085), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 3085); gSPDisplayList(POLY_OPA_DISP++, gFishingOwnerHatDL); } @@ -1809,8 +1797,7 @@ void Fishing_DrawSinkingLure(PlayState* play) { Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 3239), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 3239); gSPDisplayList(POLY_OPA_DISP++, gFishingSinkingLureSegmentModelDL); } } @@ -1826,8 +1813,7 @@ void Fishing_DrawSinkingLure(PlayState* play) { Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 3265), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 3265); gSPDisplayList(POLY_XLU_DISP++, gFishingSinkingLureSegmentModelDL); } } @@ -1891,8 +1877,7 @@ void Fishing_DrawLureAndLine(PlayState* play, Vec3f* linePos, Vec3f* lineRot) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 3369), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 3369); gSPDisplayList(POLY_OPA_DISP++, gFishingLureFloatDL); posSrc.x = -850.0f; @@ -1939,8 +1924,7 @@ void Fishing_DrawLureAndLine(PlayState* play, Vec3f* linePos, Vec3f* lineRot) { Matrix_RotateX(rx, MTXMODE_APPLY); Matrix_Scale(sFishingLineScale, 1.0f, dist, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 3444), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 3444); gSPDisplayList(POLY_XLU_DISP++, gFishingLineModelDL); } else { for (i = spooled; i < LINE_SEG_COUNT - 1; i++) { @@ -1967,8 +1951,7 @@ void Fishing_DrawLureAndLine(PlayState* play, Vec3f* linePos, Vec3f* lineRot) { Matrix_RotateX(rx, MTXMODE_APPLY); Matrix_Scale(sFishingLineScale, 1.0f, dist, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 3475), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 3475); gSPDisplayList(POLY_XLU_DISP++, gFishingLineModelDL); break; } @@ -1978,8 +1961,7 @@ void Fishing_DrawLureAndLine(PlayState* play, Vec3f* linePos, Vec3f* lineRot) { Matrix_RotateX((lineRot + i)->x, MTXMODE_APPLY); Matrix_Scale(sFishingLineScale, 1.0f, 0.005f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 3492), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 3492); gSPDisplayList(POLY_XLU_DISP++, gFishingLineModelDL); } } @@ -2116,8 +2098,7 @@ void Fishing_DrawRod(PlayState* play) { Matrix_Push(); Matrix_Scale(sRodScales[i], sRodScales[i], 0.52f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 3809), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 3809); if (i < 5) { gDPLoadTextureBlock(POLY_OPA_DISP++, gFishingRodSegmentBlackTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 8, 0, @@ -4485,8 +4466,7 @@ void Fishing_DrawPondProps(PlayState* play) { Matrix_RotateX(prop->rotX, MTXMODE_APPLY); Matrix_RotateY(prop->reedAngle, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 7726), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 7726); gSPDisplayList(POLY_XLU_DISP++, gFishingReedModelDL); } } @@ -4507,8 +4487,7 @@ void Fishing_DrawPondProps(PlayState* play) { Matrix_Translate(prop->pos.x, prop->pos.y, prop->pos.z, MTXMODE_NEW); Matrix_Scale(prop->scale, prop->scale, prop->scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 7748), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 7748); gSPDisplayList(POLY_OPA_DISP++, gFishingWoodPostModelDL); } } @@ -4532,8 +4511,7 @@ void Fishing_DrawPondProps(PlayState* play) { Matrix_Translate(0.0f, 0.0f, 20.0f, MTXMODE_APPLY); Matrix_RotateY(prop->rotY, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 7774), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 7774); gSPDisplayList(POLY_XLU_DISP++, gFishingLilyPadModelDL); } } @@ -4555,8 +4533,7 @@ void Fishing_DrawPondProps(PlayState* play) { Matrix_Scale(prop->scale, prop->scale, prop->scale, MTXMODE_APPLY); Matrix_RotateY(prop->rotY, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 7798), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 7798); gSPDisplayList(POLY_OPA_DISP++, gFishingRockModelDL); } } @@ -4784,8 +4761,7 @@ void Fishing_DrawGroupFishes(PlayState* play) { Matrix_RotateX(BINANG_TO_RAD_ALT2(-(f32)fish->unk_3C), MTXMODE_APPLY); Matrix_Scale(fish->scaleX * scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 8093), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 8093); gSPDisplayList(POLY_OPA_DISP++, gFishingGroupFishModelDL); } } @@ -5874,10 +5850,8 @@ void Fishing_DrawOwner(Actor* thisx, PlayState* play) { Matrix_Translate(130.0f, 40.0f, 1300.0f, MTXMODE_NEW); Matrix_Scale(0.08f, 0.12f, 0.14f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 9297), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_fishing.c", 9298), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_fishing.c", 9297); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_fishing.c", 9298); gSPDisplayList(POLY_OPA_DISP++, gFishingAquariumBottomDL); gSPDisplayList(POLY_XLU_DISP++, gFishingAquariumContainerDL); diff --git a/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c b/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c index 52545ba6aa..bd581b2aa1 100644 --- a/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c +++ b/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c @@ -94,14 +94,12 @@ void ItemBHeart_Draw(Actor* thisx, PlayState* play) { if (flag) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_item_b_heart.c", 551), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_item_b_heart.c", 551); gSPDisplayList(POLY_XLU_DISP++, gGiHeartBorderDL); gSPDisplayList(POLY_XLU_DISP++, gGiHeartContainerDL); } else { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_item_b_heart.c", 557), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_item_b_heart.c", 557); gSPDisplayList(POLY_OPA_DISP++, gGiHeartBorderDL); gSPDisplayList(POLY_OPA_DISP++, gGiHeartContainerDL); } diff --git a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c index 32587360d0..fb4618a12b 100644 --- a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c +++ b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c @@ -220,8 +220,7 @@ void ItemShield_Draw(Actor* thisx, PlayState* play) { if (!(this->unk_19C & 2)) { OPEN_DISPS(play->state.gfxCtx, "../z_item_shield.c", 457); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_item_shield.c", 460), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_item_shield.c", 460); gSPDisplayList(POLY_OPA_DISP++, SEGMENTED_TO_VIRTUAL(gLinkChildDekuShieldDL)); CLOSE_DISPS(play->state.gfxCtx, "../z_item_shield.c", 465); } diff --git a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c index bbf6a50bba..e47a059953 100644 --- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c +++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c @@ -225,8 +225,7 @@ void MagicDark_DiamondDraw(Actor* thisx, PlayState* play) { Matrix_Translate(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, MTXMODE_NEW); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); Matrix_RotateY(BINANG_TO_RAD(this->actor.shape.rot.y), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_magic_dark.c", 553), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_magic_dark.c", 553); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 170, 255, 255, (s32)(this->primAlpha * 0.6f) & 0xFF); gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, 128); gSPDisplayList(POLY_XLU_DISP++, sDiamondMaterialDL); @@ -278,14 +277,12 @@ void MagicDark_OrbDraw(Actor* thisx, PlayState* play) { Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); Matrix_Mult(&play2->billboardMtxF, MTXMODE_APPLY); Matrix_Push(); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_magic_dark.c", 632), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_magic_dark.c", 632); Matrix_RotateZ(sp6C * (M_PI / 32), MTXMODE_APPLY); gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); Matrix_Pop(); Matrix_RotateZ(-sp6C * (M_PI / 32), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_magic_dark.c", 639), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_magic_dark.c", 639); gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); CLOSE_DISPS(play->state.gfxCtx, "../z_magic_dark.c", 643); diff --git a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c index 6af9e712e7..1986ddba96 100644 --- a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c +++ b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c @@ -237,8 +237,7 @@ void MagicFire_Draw(Actor* thisx, PlayState* play) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 128, 255, 200, 0, (u8)(this->alphaMultiplier * 255)); gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, (u8)(this->alphaMultiplier * 255)); Matrix_Scale(0.15f, 0.15f, 0.15f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_magic_fire.c", 715), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_magic_fire.c", 715); gDPPipeSync(POLY_XLU_DISP++); gSPTexture(POLY_XLU_DISP++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); gDPSetTextureLUT(POLY_XLU_DISP++, G_TT_NONE); diff --git a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c index ee4e7acc75..8867ae1b84 100644 --- a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c +++ b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c @@ -483,8 +483,7 @@ void MirRay_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); Matrix_Scale(1.0f, 1.0f, this->reflectIntensity * 5.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_mir_ray.c", 972), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_mir_ray.c", 972); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 150, (s32)(this->reflectIntensity * 100.0f) & 0xFF); gSPDisplayList(POLY_XLU_DISP++, gShieldBeamGlowDL); MirRay_SetupReflectionPolys(this, play, reflection); @@ -506,8 +505,7 @@ void MirRay_Draw(Actor* thisx, PlayState* play) { Matrix_Translate(reflection[i].pos.x, reflection[i].pos.y, reflection[i].pos.z, MTXMODE_NEW); Matrix_Scale(0.01f, 0.01f, 0.01f, MTXMODE_APPLY); Matrix_Mult(&reflection[i].mtx, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_mir_ray.c", 1006), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_mir_ray.c", 1006); gDPSetRenderMode(POLY_XLU_DISP++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 150, reflection[0].opacity); gSPDisplayList(POLY_XLU_DISP++, gShieldBeamImageDL); diff --git a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c index 3bf36e799d..b1536273b9 100644 --- a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c +++ b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c @@ -216,8 +216,7 @@ void ObjComb_Draw(Actor* thisx, PlayState* play) { Matrix_Translate(0, -(this->actor.scale.y * 118.0f), 0, MTXMODE_APPLY); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_comb.c", 394), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_comb.c", 394); gSPDisplayList(POLY_OPA_DISP++, gFieldBeehiveDL); diff --git a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c index 4c52b516e8..e979f137e5 100644 --- a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c +++ b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c @@ -163,16 +163,14 @@ void ObjDekujr_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_dekujr.c", 379), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_dekujr.c", 379); gSPDisplayList(POLY_OPA_DISP++, object_dekujr_DL_0030D0); frameCount = play->state.frames; gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, frameCount % 128, 0, 32, 32, 1, frameCount % 128, 0, 32, 32)); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_dekujr.c", 399), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_obj_dekujr.c", 399); gSPDisplayList(POLY_XLU_DISP++, object_dekujr_DL_0032D8); CLOSE_DISPS(play->state.gfxCtx, "../z_obj_dekujr.c", 409); diff --git a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c index 8647a52fc1..91d25e4467 100644 --- a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c +++ b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c @@ -198,8 +198,7 @@ void ObjHamishi_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_hamishi.c", 404), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_hamishi.c", 404); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 170, 130, 255); gSPDisplayList(POLY_OPA_DISP++, gSilverRockDL); diff --git a/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c b/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c index 08cc347fd1..04f29dff57 100644 --- a/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c +++ b/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c @@ -158,8 +158,7 @@ void ObjHsblock_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_hsblock.c", 369), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_hsblock.c", 369); if (play->sceneId == SCENE_FIRE_TEMPLE) { color = &sFireTempleColor; diff --git a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c index ea3f8273b0..1c35eef865 100644 --- a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c +++ b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c @@ -197,8 +197,7 @@ void ObjIcePoly_Draw(Actor* thisx, PlayState* play) { func_8002ED80(&this->actor, play, 0); Matrix_RotateZYX(0x500, 0, -0x500, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_ice_poly.c", 428), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_obj_ice_poly.c", 428); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, play->gameplayFrames % 0x100, 0x20, 0x10, 1, 0, (play->gameplayFrames * 2) % 0x100, 0x40, 0x20)); diff --git a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c index e3e63eb72e..050d6226ca 100644 --- a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c +++ b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c @@ -417,8 +417,7 @@ void ObjLightswitch_DrawOpa(Actor* thisx, PlayState* play) { pos.z = thisx->world.pos.z; } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_lightswitch.c", 841), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_lightswitch.c", 841); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sFaceTextures[this->faceTextureIndex])); gSPDisplayList(POLY_OPA_DISP++, object_lightswitch_DL_000260); @@ -427,15 +426,13 @@ void ObjLightswitch_DrawOpa(Actor* thisx, PlayState* play) { rot.z = thisx->shape.rot.z + this->flameRingRot; Matrix_SetTranslateRotateYXZ(pos.x, pos.y, pos.z, &rot); Matrix_Scale(thisx->scale.x, thisx->scale.y, thisx->scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_lightswitch.c", 859), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_lightswitch.c", 859); gSPDisplayList(POLY_OPA_DISP++, object_lightswitch_DL_000398); rot.z = thisx->shape.rot.z - this->flameRingRot; Matrix_SetTranslateRotateYXZ(pos.x, pos.y, pos.z, &rot); Matrix_Scale(thisx->scale.x, thisx->scale.y, thisx->scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_lightswitch.c", 873), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_lightswitch.c", 873); gSPDisplayList(POLY_OPA_DISP++, object_lightswitch_DL_000408); CLOSE_DISPS(play->state.gfxCtx, "../z_obj_lightswitch.c", 878); @@ -457,8 +454,7 @@ void ObjLightswitch_DrawXlu(Actor* thisx, PlayState* play) { sp68.y = thisx->world.pos.y + (thisx->shape.yOffset * thisx->scale.y); sp68.z = thisx->world.pos.z; - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_lightswitch.c", 912), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_obj_lightswitch.c", 912); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sFaceTextures[this->faceTextureIndex])); gSPDisplayList(POLY_XLU_DISP++, object_lightswitch_DL_000260); @@ -468,15 +464,13 @@ void ObjLightswitch_DrawXlu(Actor* thisx, PlayState* play) { Matrix_SetTranslateRotateYXZ(sp68.x, sp68.y, sp68.z, &sp60); Matrix_Scale(thisx->scale.x, thisx->scale.y, thisx->scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_lightswitch.c", 930), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_obj_lightswitch.c", 930); gSPDisplayList(POLY_XLU_DISP++, object_lightswitch_DL_000398); sp60.z = thisx->shape.rot.z - this->flameRingRot; Matrix_SetTranslateRotateYXZ(sp68.x, sp68.y, sp68.z, &sp60); Matrix_Scale(thisx->scale.x, thisx->scale.y, thisx->scale.z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_lightswitch.c", 944), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_obj_lightswitch.c", 944); gSPDisplayList(POLY_XLU_DISP++, object_lightswitch_DL_000408); CLOSE_DISPS(play->state.gfxCtx, "../z_obj_lightswitch.c", 949); diff --git a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c index 9bd23876e5..45c60f74fb 100644 --- a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c +++ b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c @@ -644,8 +644,7 @@ void ObjOshihiki_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(this->texture)); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_oshihiki.c", 1308), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_oshihiki.c", 1308); #if OOT_DEBUG switch (play->sceneId) { diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c index a1c5c95a1d..cffb07fd4f 100644 --- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c +++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c @@ -771,8 +771,7 @@ void ObjSwitch_DrawEye(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_obj_switch.c", 1459); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_switch.c", 1462), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_switch.c", 1462); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(eyeTextures[subType][this->eyeTexIndex])); gSPDisplayList(POLY_OPA_DISP++, eyeSwitchDLs[subType]); @@ -803,8 +802,7 @@ void ObjSwitch_DrawCrystal(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_obj_switch.c", 1494); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_switch.c", 1497), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_obj_switch.c", 1497); gSPDisplayList(POLY_XLU_DISP++, xluDLists[subType]); CLOSE_DISPS(play->state.gfxCtx, "../z_obj_switch.c", 1502); @@ -812,8 +810,7 @@ void ObjSwitch_DrawCrystal(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_obj_switch.c", 1507); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_switch.c", 1511), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_switch.c", 1511); if (subType == OBJSWITCH_SUBTYPE_TOGGLE) { gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(this->crystalSubtype1texture)); diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index 6d9318525c..9c8a3ef213 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -269,8 +269,7 @@ void ObjSyokudai_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_obj_syokudai.c", 707); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_syokudai.c", 714), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_syokudai.c", 714); gSPDisplayList(POLY_OPA_DISP++, displayLists[PARAMS_GET_NOMASK((u16)this->actor.params, 12)]); @@ -300,8 +299,7 @@ void ObjSyokudai_Draw(Actor* thisx, PlayState* play) { MTXMODE_APPLY); Matrix_Scale(flameScale, flameScale, flameScale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_syokudai.c", 745), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_obj_syokudai.c", 745); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); } diff --git a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c index 7e62bbb93b..c29b73daa2 100644 --- a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c +++ b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c @@ -338,8 +338,7 @@ void ObjTimeblock_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_obj_timeblock.c", 762); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_timeblock.c", 766), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_timeblock.c", 766); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, primColor->r, primColor->g, primColor->b, 255); gSPDisplayList(POLY_OPA_DISP++, gSongOfTimeBlockDL); diff --git a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c index ed2eaa2df8..dcb3428672 100644 --- a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c +++ b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c @@ -309,8 +309,7 @@ void ObjWarp2block_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_obj_warp2block.c", 584); Gfx_SetupDL_25Opa(play->state.gfxCtx); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_obj_warp2block.c", 588), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_obj_warp2block.c", 588); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sp44->r, sp44->g, sp44->b, 255); gSPDisplayList(POLY_OPA_DISP++, gSongOfTimeBlockDL); diff --git a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c index 2bf024ec2b..ca6b10c04a 100644 --- a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c +++ b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c @@ -571,7 +571,7 @@ void ObjectKankyo_DrawFairies(Actor* thisx, PlayState* play2) { Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); Matrix_RotateZ(DEG_TO_RAD(play->state.frames * 20.0f), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_object_kankyo.c", 913), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_object_kankyo.c", 913); gSPDisplayList(POLY_XLU_DISP++, gKokiriDustMoteModelDL); } CLOSE_DISPS(play->state.gfxCtx, "../z_object_kankyo.c", 922); @@ -702,12 +702,12 @@ void ObjectKankyo_DrawSnow(Actor* thisx, PlayState* play2) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 200, 200, 200, 180); gDPSetEnvColor(POLY_XLU_DISP++, 200, 200, 200, 180); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_object_kankyo.c", 1107), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_object_kankyo.c", 1107); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gDust5Tex)); Gfx_SetupDL_61Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_MODELVIEW | G_MTX_NOPUSH | G_MTX_MUL); + gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gDPPipeSync(POLY_XLU_DISP++); @@ -762,10 +762,10 @@ void ObjectKankyo_DrawLightning(Actor* thisx, PlayState* play) { Matrix_Scale(2.0f, 5.0f, 2.0f, MTXMODE_APPLY); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 128); gDPSetEnvColor(POLY_XLU_DISP++, 0, 255, 255, 128); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_object_kankyo.c", 1213), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_object_kankyo.c", 1213); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEffLightningTextures[this->effects[0].timer])); Gfx_SetupDL_61Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_MODELVIEW | G_MTX_NOPUSH | G_MTX_MUL); + gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gDPPipeSync(POLY_XLU_DISP++); gSPDisplayList(POLY_XLU_DISP++, gEffLightningDL); gDPPipeSync(POLY_XLU_DISP++); @@ -860,7 +860,7 @@ void ObjectKankyo_DrawSunGraveSpark(Actor* thisx, PlayState* play2) { this->effects[0].alpha); Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_object_kankyo.c", 1416), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_object_kankyo.c", 1416); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80BA5900[this->effects[0].timer])); gDPPipeSync(POLY_XLU_DISP++); @@ -938,7 +938,7 @@ void ObjectKankyo_DrawBeams(Actor* thisx, PlayState* play2) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 128, sBeamPrimColors[i].r, sBeamPrimColors[i].g, sBeamPrimColors[i].b, 128); gDPSetEnvColor(POLY_XLU_DISP++, sBeamEnvColors[i].r, sBeamEnvColors[i].g, sBeamEnvColors[i].b, 128); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_object_kankyo.c", 1586), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_object_kankyo.c", 1586); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->state.frames * 5, play->state.frames * 10, 32, 64, 1, play->state.frames * 5, diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c index 671325b5b0..dd421a8128 100644 --- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c +++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c @@ -154,8 +154,7 @@ void OceffSpot_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_oceff_spot.c", 469), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_oceff_spot.c", 469); gSPDisplayList(POLY_XLU_DISP++, sCylinderMaterialDL); gSPDisplayList(POLY_XLU_DISP++, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, scroll * 2, scroll * (-2), 32, 32, 1, 0, scroll * (-8), 32, 32)); diff --git a/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c b/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c index 8babfbf40b..931b67930f 100644 --- a/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c +++ b/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c @@ -162,8 +162,7 @@ void OceffStorm_Draw(Actor* thisx, PlayState* play) { vtxPtr[0].v.cn[3] = vtxPtr[6].v.cn[3] = vtxPtr[16].v.cn[3] = vtxPtr[25].v.cn[3] = this->vtxAlpha >> 1; vtxPtr[10].v.cn[3] = vtxPtr[22].v.cn[3] = this->vtxAlpha; - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_oceff_storm.c", 498), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_oceff_storm.c", 498); gSPDisplayList(POLY_XLU_DISP++, sCylinderMaterialDL); gSPDisplayList(POLY_XLU_DISP++, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, scroll * 4, (0 - scroll) * 8, diff --git a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c index c717123538..986abc8b17 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c +++ b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c @@ -108,8 +108,7 @@ void OceffWipe_Draw(Actor* thisx, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Translate(0.0f, 0.0f, -z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_oceff_wipe.c", 375), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_oceff_wipe.c", 375); if (this->actor.params != OCEFF_WIPE_ZL) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 170, 255, 255, 255); diff --git a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c index 6b1419f363..1c07cdbf1f 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c +++ b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c @@ -96,8 +96,7 @@ void OceffWipe2_Draw(Actor* thisx, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Translate(0.0f, 0.0f, -z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_oceff_wipe2.c", 400), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_oceff_wipe2.c", 400); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 170, 255); gDPSetEnvColor(POLY_XLU_DISP++, 255, 100, 0, 128); diff --git a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c index cded21fce0..5473c3da47 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c +++ b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c @@ -97,8 +97,7 @@ void OceffWipe3_Draw(Actor* thisx, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Translate(0.0f, 0.0f, -z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_oceff_wipe3.c", 353), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_oceff_wipe3.c", 353); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 170, 255); gDPSetEnvColor(POLY_XLU_DISP++, 100, 200, 0, 128); diff --git a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c index 2d05d06bf4..445e395ff0 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c +++ b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c @@ -95,8 +95,7 @@ void OceffWipe4_Draw(Actor* thisx, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Translate(0.0f, 0.0f, -z, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_oceff_wipe4.c", 324), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_oceff_wipe4.c", 324); if (this->actor.params == OCEFF_WIPE4_UNUSED) { gSPDisplayList(POLY_XLU_DISP++, sUnusedMaterialDL); diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 9df85e5ff1..3d594f31d8 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -11627,8 +11627,7 @@ void Player_DrawGameplay(PlayState* play, Player* this, s32 lod, Gfx* cullDList, this->actor.world.pos.z, &D_80854864); Matrix_Scale(4.0f, 4.0f, 4.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_player.c", 19317), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_player.c", 19317); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 0, 16, 32, 1, 0, (play->gameplayFrames * -15) % 128, 16, 32)); @@ -11724,8 +11723,7 @@ void Player_Draw(Actor* thisx, PlayState* play2) { 32, 1, 0, (play->gameplayFrames * -2) % 128, 32, 32)); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_player.c", 19459), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_player.c", 19459); gDPSetEnvColor(POLY_XLU_DISP++, 0, 50, 100, 255); gSPDisplayList(POLY_XLU_DISP++, gEffIceFragment3DL); } diff --git a/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c b/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c index de5b094525..f107473306 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c +++ b/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c @@ -72,8 +72,7 @@ void EffectSsBlast_Draw(PlayState* play, u32 index, EffectSs* this) { this->rInnerColorA); Matrix_Put(&mf); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_ss_blast.c", 199), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_ss_blast.c", 199); gSPDisplayList(POLY_XLU_DISP++, this->gfx); CLOSE_DISPS(gfxCtx, "../z_eff_ss_blast.c", 204); diff --git a/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c b/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c index 34b9546fce..e848dd47b8 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c +++ b/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c @@ -149,8 +149,7 @@ void EffectSsBomb2_DrawLayered(PlayState* play, u32 index, EffectSs* this) { Matrix_Translate(0.0f, 0.0f, depth, MTXMODE_APPLY); Matrix_RotateZ((this->life * 0.02f) + 180.0f, MTXMODE_APPLY); Matrix_Scale(layer2Scale, layer2Scale, layer2Scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_eff_ss_bomb2.c", 448), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_eff_ss_bomb2.c", 448); gSPDisplayList(POLY_XLU_DISP++, gEffBombExplosion3DL); layer2Scale -= 0.15f; } diff --git a/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c b/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c index 70fd02ea01..be7d160712 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c +++ b/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c @@ -45,8 +45,7 @@ void EffectSsBubble_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_ss_bubble.c", 167), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_eff_ss_bubble.c", 167); Gfx_SetupDL_25Opa(gfxCtx); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255); gDPSetEnvColor(POLY_OPA_DISP++, 150, 150, 150, 0); diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c index 780a729c6a..9d9c695d88 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c @@ -99,8 +99,7 @@ void EffectSsDeadDs_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_RotateZYX(this->rRoll, this->rPitch, this->rYaw, MTXMODE_APPLY); Matrix_RotateX(1.57f, MTXMODE_APPLY); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_eff_ss_dead_ds.c", 246), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_eff_ss_dead_ds.c", 246); gDPSetCombineLERP(POLY_XLU_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0); gSPDisplayList(POLY_XLU_DISP++, gLensFlareCircleDL); diff --git a/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c b/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c index fb7db2f3ff..07335e2488 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c @@ -81,8 +81,7 @@ void EffectSsDtBubble_Draw(PlayState* play, u32 index, EffectSs* this) { scale = this->rScale * 0.004f; Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_ss_dt_bubble.c", 213), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_ss_dt_bubble.c", 213); Gfx_SetupDL_25Xlu2(gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, this->rPrimColorR, this->rPrimColorG, this->rPrimColorB, (this->rPrimColorA * this->life) / this->rLifespan); diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c b/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c index b6f5868b99..73795ab2d4 100644 --- a/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c +++ b/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c @@ -79,8 +79,7 @@ void EffectSsEnFire_Draw(PlayState* play, u32 index, EffectSs* this) { scale = Math_SinS(this->life * 0x333) * (this->rScale * 0.00005f); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_eff_en_fire.c", 180), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_eff_en_fire.c", 180); intensity = this->life - 5; diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c index a1c117bc3e..5351e864ab 100644 --- a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c +++ b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c @@ -113,8 +113,7 @@ void EffectSsEnIce_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); Matrix_RotateY(BINANG_TO_RAD(this->rYaw), MTXMODE_APPLY); Matrix_RotateX(BINANG_TO_RAD(this->rPitch), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_en_ice.c", 261), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_en_ice.c", 261); hiliteLightDir.x = 89.8f; hiliteLightDir.y = 0.0f; diff --git a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c index 0b9ff7c67e..e3506295da 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c +++ b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c @@ -69,8 +69,7 @@ void EffectSsExtra_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); Gfx_SetupDL_25Xlu(play->state.gfxCtx); Matrix_ReplaceRotation(&play->billboardMtxF); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_eff_ss_extra.c", 186), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_eff_ss_extra.c", 186); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sTextures[this->rScoreIdx])); gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(object_yabusame_point_DL_000DC0)); diff --git a/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c b/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c index 296c2f73b2..6b07df0582 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c +++ b/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c @@ -58,8 +58,7 @@ void EffectSsFcircle_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); Matrix_Scale(xzScale, yScale, xzScale, MTXMODE_APPLY); Matrix_RotateY(BINANG_TO_RAD(this->rYaw), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_fcircle.c", 163), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_fcircle.c", 163); Gfx_SetupDL_25Xlu(play->state.gfxCtx); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->gameplayFrames % 128, 0, 32, 64, 1, 0, diff --git a/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c b/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c index c637e1a9b8..c4ab534692 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c +++ b/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c @@ -107,8 +107,7 @@ void EffectSsFhgFlash_DrawLightBall(PlayState* play, u32 index, EffectSs* this) gDPPipeSync(POLY_XLU_DISP++); Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_RotateZ((this->rXZRot / (f32)0x8000) * 3.1416f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_fhg_flash.c", 326), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_fhg_flash.c", 326); gSPDisplayList(POLY_XLU_DISP++, this->gfx); CLOSE_DISPS(gfxCtx, "../z_eff_fhg_flash.c", 330); @@ -140,8 +139,7 @@ void EffectSsFhgFlash_DrawShock(PlayState* play, u32 index, EffectSs* this) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, this->rAlpha); gDPSetEnvColor(POLY_XLU_DISP++, 0, 255, 155, 0); Matrix_RotateZ((this->rXZRot / (f32)0x8000) * 3.1416f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_fhg_flash.c", 395), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_fhg_flash.c", 395); gSPDisplayList(POLY_XLU_DISP++, this->gfx); CLOSE_DISPS(gfxCtx, "../z_eff_fhg_flash.c", 399); diff --git a/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c b/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c index 1fab3c757b..089c7f73eb 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c +++ b/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c @@ -119,8 +119,7 @@ void EffectSsFireTail_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_Scale(1.0f, temp1, 1.0f / temp1, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_eff_fire_tail.c", 238), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_eff_fire_tail.c", 238); Gfx_SetupDL_25Xlu(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, this->rPrimColorR, this->rPrimColorG, this->rPrimColorB, 255); gDPSetEnvColor(POLY_XLU_DISP++, this->rEnvColorR, this->rEnvColorG, this->rEnvColorB, 0); diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c b/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c index eb0ae6122c..11fc08606b 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c @@ -86,8 +86,7 @@ void EffectSsGMagma2_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); gSegments[6] = VIRTUAL_TO_PHYSICAL(objectPtr); gSPSegment(POLY_XLU_DISP++, 0x06, objectPtr); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_ss_g_magma2.c", 282), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_ss_g_magma2.c", 282); if (this->rDrawMode == 0) { POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_61); diff --git a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c index dac0311068..9b27081773 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c +++ b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c @@ -81,8 +81,7 @@ void EffectSsHahen_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_RotateY(this->rYaw * 0.01f, MTXMODE_APPLY); Matrix_RotateX(this->rPitch * 0.01f, MTXMODE_APPLY); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_hahen.c", 228), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_eff_hahen.c", 228); Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPDisplayList(POLY_OPA_DISP++, this->gfx); @@ -105,8 +104,7 @@ void EffectSsHahen_DrawGray(PlayState* play, u32 index, EffectSs* this) { Matrix_RotateY(this->rYaw * 0.01f, MTXMODE_APPLY); Matrix_RotateX(this->rPitch * 0.01f, MTXMODE_APPLY); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_hahen.c", 271), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_eff_hahen.c", 271); Gfx_SetupDL_25Opa(play->state.gfxCtx); gDPSetCombineLERP(POLY_OPA_DISP++, SHADE, 0, PRIMITIVE, 0, SHADE, 0, PRIMITIVE, 0, SHADE, 0, PRIMITIVE, 0, SHADE, 0, PRIMITIVE, 0); diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c index 6c05462586..7f0fc02fa1 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c +++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c @@ -65,8 +65,7 @@ void EffectSsIcePiece_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); Matrix_RotateY(BINANG_TO_RAD(this->rYaw), MTXMODE_APPLY); Matrix_RotateX(BINANG_TO_RAD(this->rPitch), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_ice_piece.c", 185), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_ice_piece.c", 185); Gfx_SetupDL_25Xlu(play->state.gfxCtx); gDPSetEnvColor(POLY_XLU_DISP++, 0, 50, 100, (s32)alpha & 0xFF); func_8003435C(&this->pos, play); diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c b/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c index 135d2ff43a..9997240be7 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c +++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c @@ -79,7 +79,7 @@ void EffectSsIceSmoke_Draw(PlayState* play, u32 index, EffectSs* this) { scale = this->rScale * 0.0001f; Matrix_Scale(scale, scale, 1.0f, MTXMODE_APPLY); - mtx = MATRIX_NEW(play->state.gfxCtx, "../z_eff_ss_ice_smoke.c", 196); + mtx = MATRIX_FINALIZE(play->state.gfxCtx, "../z_eff_ss_ice_smoke.c", 196); if (mtx != NULL) { if (1) {} diff --git a/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c b/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c index 00371cf3c9..10a3b668ab 100644 --- a/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c +++ b/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c @@ -75,8 +75,7 @@ void EffectSsKFire_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_RotateY(M_PI, MTXMODE_APPLY); } - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_eff_k_fire.c", 215), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_eff_k_fire.c", 215); gSPDisplayList(POLY_XLU_DISP++, gEffFire1DL); CLOSE_DISPS(gfxCtx, "../z_eff_k_fire.c", 220); diff --git a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c index d861f234a4..27d536e1d0 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c +++ b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c @@ -114,8 +114,7 @@ void EffectSsKakera_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); if ((((this->rReg4 >> 7) & 1) << 7) == 0x80) { - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_kakera.c", 268), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_kakera.c", 268); Gfx_SetupDL_25Xlu(play->state.gfxCtx); if (colorIdx >= 0) { @@ -124,8 +123,7 @@ void EffectSsKakera_Draw(PlayState* play, u32 index, EffectSs* this) { gSPDisplayList(POLY_XLU_DISP++, this->gfx); } else { - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_kakera.c", 286), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_eff_kakera.c", 286); Gfx_SetupDL_25Opa(play->state.gfxCtx); if (colorIdx >= 0) { diff --git a/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c b/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c index f22efbbfe2..f707251cba 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c +++ b/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c @@ -67,8 +67,7 @@ void EffectSsSibuki_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_ss_sibuki.c", 176), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_eff_ss_sibuki.c", 176); Gfx_SetupDL_25Opa(gfxCtx); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->rPrimColorR, this->rPrimColorG, this->rPrimColorB, this->rPrimColorA); gDPSetEnvColor(POLY_OPA_DISP++, this->rEnvColorR, this->rEnvColorG, this->rEnvColorB, this->rEnvColorA); diff --git a/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c b/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c index 4fbb881e02..e85a53e890 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c +++ b/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c @@ -63,8 +63,7 @@ void EffectSsSibuki2_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_ss_sibuki2.c", 171), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_ss_sibuki2.c", 171); Gfx_SetupDL_25Opa(gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, this->rPrimColorR, this->rPrimColorG, this->rPrimColorB, this->rPrimColorA); gDPSetEnvColor(POLY_XLU_DISP++, this->rEnvColorR, this->rEnvColorG, this->rEnvColorB, this->rEnvColorA); diff --git a/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c b/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c index 77e907b295..ba327e465a 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c +++ b/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c @@ -64,8 +64,7 @@ void EffectSsStick_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_RotateZYX(0, this->rYaw, play->state.frames * 10000, MTXMODE_APPLY); } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_ss_stick.c", 176), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_eff_ss_stick.c", 176); Gfx_SetupDL_25Opa(gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->rObjectSlot].segment); gSPSegment(POLY_OPA_DISP++, 0x0C, gCullBackDList); diff --git a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c index d876ab0cf1..e1083373b8 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c +++ b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c @@ -62,8 +62,7 @@ void EffectSsStone1_Draw(PlayState* play, u32 index, EffectSs* this) { scale = (mfW < 1500.0f) ? 3.0f : (mfW / 1500.0f) * 3.0f; Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(gfxCtx, "../z_eff_ss_stone1.c", 168), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gfxCtx, "../z_eff_ss_stone1.c", 168); Gfx_SetupDL_61Xlu(gfxCtx); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(drawParams->texture)); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, drawParams->primColor.r, drawParams->primColor.g, drawParams->primColor.b, diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c index c8462f53de..0d8115921b 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c @@ -1205,8 +1205,7 @@ void FileSelect_ConfigModeDraw(GameState* thisx) { Matrix_RotateX(this->windowRot / 100.0f, MTXMODE_APPLY); } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(this->state.gfxCtx, "../z_file_choose.c", 2282), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_file_choose.c", 2282); gSPVertex(POLY_OPA_DISP++, &this->windowVtx[0], 32, 0); gSPDisplayList(POLY_OPA_DISP++, gFileSelWindow1DL); @@ -1233,8 +1232,7 @@ void FileSelect_ConfigModeDraw(GameState* thisx) { Matrix_Translate(0.0f, 0.0f, -93.6f, MTXMODE_NEW); Matrix_Scale(0.78f, 0.78f, 0.78f, MTXMODE_APPLY); Matrix_RotateX((this->windowRot - 314.0f) / 100.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(this->state.gfxCtx, "../z_file_choose.c", 2316), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_file_choose.c", 2316); gSPVertex(POLY_OPA_DISP++, &this->windowVtx[0], 32, 0); gSPDisplayList(POLY_OPA_DISP++, gFileSelWindow1DL); @@ -1262,8 +1260,7 @@ void FileSelect_ConfigModeDraw(GameState* thisx) { Matrix_Scale(0.78f, 0.78f, 0.78f, MTXMODE_APPLY); Matrix_RotateX((this->windowRot - 314.0f) / 100.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(this->state.gfxCtx, "../z_file_choose.c", 2337), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_file_choose.c", 2337); gSPVertex(POLY_OPA_DISP++, &this->windowVtx[0], 32, 0); gSPDisplayList(POLY_OPA_DISP++, gFileSelWindow1DL); @@ -1624,8 +1621,7 @@ void FileSelect_SelectModeDraw(GameState* thisx) { Matrix_Translate(0.0f, 0.0f, -93.6f, MTXMODE_NEW); Matrix_Scale(0.78f, 0.78f, 0.78f, MTXMODE_APPLY); Matrix_RotateX(this->windowRot / 100.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(this->state.gfxCtx, "../z_file_choose.c", 2810), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_file_choose.c", 2810); gSPVertex(POLY_OPA_DISP++, &this->windowVtx[0], 32, 0); gSPDisplayList(POLY_OPA_DISP++, gFileSelWindow1DL); diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c index fc307208c1..1e5e12505a 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c @@ -1665,16 +1665,14 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { Matrix_Push(); Matrix_Translate(0.0f, 0.1f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(this->state.gfxCtx, "../z_file_nameset_PAL.c", 1009), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_file_nameset_PAL.c", 1009); gSPVertex(POLY_OPA_DISP++, gOptionsDividerTopVtx, 4, 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); Matrix_Pop(); Matrix_Push(); Matrix_Translate(0.0f, 0.2f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(this->state.gfxCtx, "../z_file_nameset_PAL.c", 1021), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_file_nameset_PAL.c", 1021); gSPVertex(POLY_OPA_DISP++, gOptionsDividerMiddleVtx, 4, 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); @@ -1682,8 +1680,7 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { Matrix_Push(); Matrix_Translate(0.0f, 0.4f, 0.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(this->state.gfxCtx, "../z_file_nameset_PAL.c", 1033), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_file_nameset_PAL.c", 1033); gSPVertex(POLY_OPA_DISP++, gOptionsDividerBottomVtx, 4, 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); Matrix_Pop(); diff --git a/src/overlays/gamestates/ovl_title/z_title.c b/src/overlays/gamestates/ovl_title/z_title.c index 36cb0d36ed..6814e24da8 100644 --- a/src/overlays/gamestates/ovl_title/z_title.c +++ b/src/overlays/gamestates/ovl_title/z_title.c @@ -114,7 +114,7 @@ void ConsoleLogo_Draw(ConsoleLogoState* this) { Matrix_Scale(1.0, 1.0, 1.0, MTXMODE_APPLY); Matrix_RotateZYX(0, sTitleRotY, 0, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(this->state.gfxCtx, "../z_title.c", 424), G_MTX_LOAD); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_title.c", 424); gSPDisplayList(POLY_OPA_DISP++, gNintendo64LogoDL); Gfx_SetupDL_39Opa(this->state.gfxCtx); gDPPipeSync(POLY_OPA_DISP++); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index 886824111a..6becfde51b 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -1314,8 +1314,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { Matrix_Scale(0.78f, 0.78f, 0.78f, MTXMODE_APPLY); Matrix_RotateX(-pauseCtx->unk_1F4 / 100.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_kaleido_scope_PAL.c", 1173), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_kaleido_scope_PAL.c", 1173); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->itemPageVtx, SELECT_ITEM_TEXS(gSaveContext.language)); @@ -1332,8 +1331,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { Matrix_RotateZ(pauseCtx->unk_1F8 / 100.0f, MTXMODE_APPLY); Matrix_RotateY(1.57f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_kaleido_scope_PAL.c", 1196), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_kaleido_scope_PAL.c", 1196); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->equipPageVtx, EQUIPMENT_TEXS(gSaveContext.language)); @@ -1351,8 +1349,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { Matrix_RotateX(pauseCtx->unk_200 / 100.0f, MTXMODE_APPLY); Matrix_RotateY(3.14f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_kaleido_scope_PAL.c", 1220), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_kaleido_scope_PAL.c", 1220); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->questPageVtx, QUEST_STATUS_TEXS(gSaveContext.language)); @@ -1370,8 +1367,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { Matrix_RotateZ(-pauseCtx->unk_1FC / 100.0f, MTXMODE_APPLY); Matrix_RotateY(-1.57f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_kaleido_scope_PAL.c", 1243), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_kaleido_scope_PAL.c", 1243); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->mapPageVtx, MAP_TEXS(gSaveContext.language)); @@ -1399,8 +1395,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { Matrix_Scale(0.78f, 0.78f, 0.78f, MTXMODE_APPLY); Matrix_RotateX(-pauseCtx->unk_1F4 / 100.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_kaleido_scope_PAL.c", 1281), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_kaleido_scope_PAL.c", 1281); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->itemPageVtx, SELECT_ITEM_TEXS(gSaveContext.language)); @@ -1414,8 +1409,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { Matrix_RotateZ(-pauseCtx->unk_1FC / 100.0f, MTXMODE_APPLY); Matrix_RotateY(-1.57f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_kaleido_scope_PAL.c", 1303), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_kaleido_scope_PAL.c", 1303); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->mapPageVtx, MAP_TEXS(gSaveContext.language)); @@ -1446,8 +1440,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { Matrix_RotateX(pauseCtx->unk_200 / 100.0f, MTXMODE_APPLY); Matrix_RotateY(3.14f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_kaleido_scope_PAL.c", 1343), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_kaleido_scope_PAL.c", 1343); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->questPageVtx, QUEST_STATUS_TEXS(gSaveContext.language)); @@ -1465,8 +1458,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { Matrix_RotateZ(pauseCtx->unk_1F8 / 100.0f, MTXMODE_APPLY); Matrix_RotateY(1.57f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_kaleido_scope_PAL.c", 1367), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_kaleido_scope_PAL.c", 1367); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->equipPageVtx, EQUIPMENT_TEXS(gSaveContext.language)); @@ -1516,8 +1508,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { Matrix_RotateY(1.57f, MTXMODE_APPLY); } - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(gfxCtx, "../z_kaleido_scope_PAL.c", 1424), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_kaleido_scope_PAL.c", 1424); if (IS_PAUSE_STATE_GAMEOVER(pauseCtx)) { POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->saveVtx, sGameOverTexs); @@ -1779,8 +1770,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { Matrix_Translate(0.0f, 0.0f, -144.0f, MTXMODE_NEW); Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_kaleido_scope_PAL.c", 1755), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_kaleido_scope_PAL.c", 1755); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 90, 100, 130, 255); gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[0], 16, 0); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c b/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c index 8b9d5b7891..3f079430f8 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c @@ -138,8 +138,7 @@ void PauseMapMark_DrawForDungeon(PlayState* play) { #endif Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_lmap_mark.c", 272), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_lmap_mark.c", 272); Matrix_Pop(); gSPVertex(POLY_OPA_DISP++, mapMarkData->vtx, mapMarkData->vtxCount, 0); diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt index 2d9b9f38af..6612cd624d 100644 --- a/tools/disasm/ntsc-1.2/functions.txt +++ b/tools/disasm/ntsc-1.2/functions.txt @@ -2269,7 +2269,7 @@ Matrix_TranslateRotateZYX = 0x800AB78C; // type:func Matrix_SetTranslateRotateYXZ = 0x800ABAE0; // type:func Matrix_MtxFToMtx = 0x800ABC8C; // type:func Matrix_ToMtx = 0x800ABEA8; // type:func -Matrix_NewMtx = 0x800ABED0; // type:func +Matrix_Finalize = 0x800ABED0; // type:func Matrix_MtxFToNewMtx = 0x800ABEFC; // type:func Matrix_MultVec3f = 0x800ABF28; // type:func Matrix_MtxFCopy = 0x800ABFE0; // type:func From cbf9eacf42c25f887589ba50d4ef2cd41cdc9030 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 11 Sep 2024 10:17:47 +0200 Subject: [PATCH 64/86] [headers 12] Add kaleido_manager.h, move various protos to headers (#2174) * [headers 12] add kaleido_manager.h, move various protos to headers * BSS * bss --- include/functions.h | 26 -------------- include/gfxprint.h | 10 ++++++ include/kaleido_manager.h | 39 +++++++++++++++++++++ include/libc/string.h | 2 ++ include/variables.h | 2 -- include/z64.h | 16 +-------- include/z64interface.h | 2 ++ include/z64pause.h | 5 +++ src/code/z_kankyo.c | 2 +- src/libc/memmove.c | 6 ++-- src/libc/memset.c | 4 +-- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- 12 files changed, 66 insertions(+), 50 deletions(-) create mode 100644 include/kaleido_manager.h diff --git a/include/functions.h b/include/functions.h index 0072baf4b4..c056003523 100644 --- a/include/functions.h +++ b/include/functions.h @@ -682,9 +682,6 @@ void func_8006D684(PlayState* play, Player* player); void func_8006DC68(PlayState* play, Player* player); void func_8006DD9C(Actor* actor, Vec3f* arg1, s16 arg2); -void KaleidoSetup_Update(PlayState* play); -void KaleidoSetup_Init(PlayState* play); -void KaleidoSetup_Destroy(PlayState* play); s32 Kanji_OffsetFromShiftJIS(s32 character); void Font_LoadCharWide(Font* font, u16 character, u16 codePointIndex); void Font_LoadChar(Font* font, u8 character, u16 codePointIndex); @@ -1052,16 +1049,6 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam); void DebugCamera_Reset(Camera* cam, DebugCam* debugCam); void func_800BB0A0(f32 u, Vec3f* pos, f32* roll, f32* viewAngle, f32* point0, f32* point1, f32* point2, f32* point3); s32 func_800BB2B4(Vec3f* pos, f32* roll, f32* fov, CutsceneCameraPoint* point, s16* keyFrame, f32* curFrame); -void KaleidoManager_LoadOvl(KaleidoMgrOverlay* ovl); -void KaleidoManager_ClearOvl(KaleidoMgrOverlay* ovl); -void KaleidoManager_Init(PlayState* play); -void KaleidoManager_Destroy(void); -void* KaleidoManager_GetRamAddr(void* vram); -void KaleidoScopeCall_LoadPlayer(void); -void KaleidoScopeCall_Init(PlayState* play); -void KaleidoScopeCall_Destroy(PlayState* play); -void KaleidoScopeCall_Update(PlayState* play); -void KaleidoScopeCall_Draw(PlayState* play); s32 func_800C0D34(PlayState* this, Actor* actor, s16* yaw); s32 func_800C0DB4(PlayState* this, Vec3f* pos); @@ -1349,15 +1336,6 @@ void Audio_InitSound(void); void func_800F7170(void); void func_800F71BC(s32 arg0); -void GfxPrint_SetColor(GfxPrint* this, u32 r, u32 g, u32 b, u32 a); -void GfxPrint_SetPosPx(GfxPrint* this, s32 x, s32 y); -void GfxPrint_SetPos(GfxPrint* this, s32 x, s32 y); -void GfxPrint_SetBasePosPx(GfxPrint* this, s32 x, s32 y); -void GfxPrint_Init(GfxPrint* this); -void GfxPrint_Destroy(GfxPrint* this); -void GfxPrint_Open(GfxPrint* this, Gfx* dList); -Gfx* GfxPrint_Close(GfxPrint* this); -s32 GfxPrint_Printf(GfxPrint* this, const char* fmt, ...); void RcpUtils_PrintRegisterStatus(void); void RcpUtils_Reset(void); void* Overlay_AllocateAndLoad(uintptr_t vromStart, uintptr_t vromEnd, void* vramStart, void* vramEnd); @@ -1514,11 +1492,7 @@ void guMtxF2L(f32 mf[4][4], Mtx* m); void* osViGetCurrentFramebuffer(void); s32 __osSpSetPc(void* pc); f32 absf(f32); -void* memset(void* dest, int val, size_t len); -void* memmove(void* dest, const void* src, size_t len); -void Interface_Destroy(PlayState* play); -void Interface_Init(PlayState* play); void Regs_InitData(PlayState* play); void Setup_Init(GameState* thisx); diff --git a/include/gfxprint.h b/include/gfxprint.h index 86879c4805..039b564b4b 100644 --- a/include/gfxprint.h +++ b/include/gfxprint.h @@ -39,4 +39,14 @@ typedef struct GfxPrint { #endif #define GFXP_FLAG_OPEN (1 << 7) +void GfxPrint_SetColor(GfxPrint* this, u32 r, u32 g, u32 b, u32 a); +void GfxPrint_SetPosPx(GfxPrint* this, s32 x, s32 y); +void GfxPrint_SetPos(GfxPrint* this, s32 x, s32 y); +void GfxPrint_SetBasePosPx(GfxPrint* this, s32 x, s32 y); +void GfxPrint_Init(GfxPrint* this); +void GfxPrint_Destroy(GfxPrint* this); +void GfxPrint_Open(GfxPrint* this, Gfx* dList); +Gfx* GfxPrint_Close(GfxPrint* this); +s32 GfxPrint_Printf(GfxPrint* this, const char* fmt, ...); + #endif diff --git a/include/kaleido_manager.h b/include/kaleido_manager.h new file mode 100644 index 0000000000..ce116752a4 --- /dev/null +++ b/include/kaleido_manager.h @@ -0,0 +1,39 @@ +#ifndef KALEIDO_MANAGER_H +#define KALEIDO_MANAGER_H + +#include "ultra64.h" +#include "romfile.h" + +struct PlayState; + +typedef struct KaleidoMgrOverlay { + /* 0x00 */ void* loadedRamAddr; + /* 0x04 */ RomFile file; + /* 0x0C */ void* vramStart; + /* 0x10 */ void* vramEnd; + /* 0x14 */ u32 offset; // loadedRamAddr - vramStart + /* 0x18 */ const char* name; +} KaleidoMgrOverlay; // size = 0x1C + +typedef enum KaleidoOverlayType { + /* 0 */ KALEIDO_OVL_KALEIDO_SCOPE, + /* 1 */ KALEIDO_OVL_PLAYER_ACTOR, + /* 2 */ KALEIDO_OVL_MAX +} KaleidoOverlayType; + +void KaleidoManager_LoadOvl(KaleidoMgrOverlay* ovl); +void KaleidoManager_ClearOvl(KaleidoMgrOverlay* ovl); +void KaleidoManager_Init(struct PlayState* play); +void KaleidoManager_Destroy(void); +void* KaleidoManager_GetRamAddr(void* vram); + +extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[KALEIDO_OVL_MAX]; +extern KaleidoMgrOverlay* gKaleidoMgrCurOvl; + +void KaleidoScopeCall_LoadPlayer(void); +void KaleidoScopeCall_Init(struct PlayState* play); +void KaleidoScopeCall_Destroy(struct PlayState* play); +void KaleidoScopeCall_Update(struct PlayState* play); +void KaleidoScopeCall_Draw(struct PlayState* play); + +#endif diff --git a/include/libc/string.h b/include/libc/string.h index 3f9a5cee71..3e2e6be592 100644 --- a/include/libc/string.h +++ b/include/libc/string.h @@ -7,5 +7,7 @@ char* strchr(const char*, int); size_t strlen(const char*); void* memcpy(void*, const void*, size_t); +void* memmove(void* dest, const void* src, size_t len); +void* memset(void* dest, int val, size_t len); #endif diff --git a/include/variables.h b/include/variables.h index 92f68735b2..269f455373 100644 --- a/include/variables.h +++ b/include/variables.h @@ -94,8 +94,6 @@ extern u16 gSramSlotOffsets[]; // 4 16-colors palettes extern u64 gMojiFontTLUTs[4][4]; // original name: "moji_tlut" extern u64 gMojiFontTex[]; // original name: "font_ff" -extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[KALEIDO_OVL_MAX]; -extern KaleidoMgrOverlay* gKaleidoMgrCurOvl; extern u8 gBossMarkState; #if OOT_DEBUG diff --git a/include/z64.h b/include/z64.h index a4871aa830..4c797ffaed 100644 --- a/include/z64.h +++ b/include/z64.h @@ -71,6 +71,7 @@ #include "main.h" #include "segmented_address.h" #include "stackcheck.h" +#include "kaleido_manager.h" #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 240 @@ -102,21 +103,6 @@ #define THREAD_ID_DMAMGR 18 #define THREAD_ID_IRQMGR 19 -typedef struct KaleidoMgrOverlay { - /* 0x00 */ void* loadedRamAddr; - /* 0x04 */ RomFile file; - /* 0x0C */ void* vramStart; - /* 0x10 */ void* vramEnd; - /* 0x14 */ u32 offset; // loadedRamAddr - vramStart - /* 0x18 */ const char* name; -} KaleidoMgrOverlay; // size = 0x1C - -typedef enum KaleidoOverlayType { - /* 0 */ KALEIDO_OVL_KALEIDO_SCOPE, - /* 1 */ KALEIDO_OVL_PLAYER_ACTOR, - /* 2 */ KALEIDO_OVL_MAX -} KaleidoOverlayType; - typedef enum LensMode { /* 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) diff --git a/include/z64interface.h b/include/z64interface.h index 6ee09afe9b..e9284499ab 100644 --- a/include/z64interface.h +++ b/include/z64interface.h @@ -275,5 +275,7 @@ void Interface_SetSubTimerToFinalSecond(struct PlayState* play); void Interface_SetTimer(s16 seconds); void Interface_Draw(struct PlayState* play); void Interface_Update(struct PlayState* play); +void Interface_Destroy(struct PlayState* play); +void Interface_Init(struct PlayState* play); #endif diff --git a/include/z64pause.h b/include/z64pause.h index d560963a12..8802521787 100644 --- a/include/z64pause.h +++ b/include/z64pause.h @@ -6,6 +6,7 @@ #include "z64view.h" struct OcarinaStaff; +struct PlayState; #define PAUSE_ITEM_NONE 999 @@ -229,4 +230,8 @@ typedef struct PauseMapMarkData { typedef PauseMapMarkData PauseMapMarksData[3]; +void KaleidoSetup_Update(struct PlayState* play); +void KaleidoSetup_Init(struct PlayState* play); +void KaleidoSetup_Destroy(struct PlayState* play); + #endif diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index ea27b5edc4..ea5bf96722 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -212,7 +212,7 @@ s16 sLightningFlashAlpha; s16 sSunDepthTestX; s16 sSunDepthTestY; -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:96 gc-jp-ce:96 gc-jp-mq:96 gc-us:96 gc-us-mq:96" +#pragma increment_block_number "gc-eu:112 gc-eu-mq:112 gc-jp:96 gc-jp-ce:96 gc-jp-mq:96 gc-us:96 gc-us-mq:96" LightNode* sNGameOverLightNode; LightInfo sNGameOverLightInfo; diff --git a/src/libc/memmove.c b/src/libc/memmove.c index 8ff5ec5f6c..302981f580 100644 --- a/src/libc/memmove.c +++ b/src/libc/memmove.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "string.h" /** * memmove: copies `len` bytes from memory starting at `src` to memory starting at `dest`. @@ -12,8 +12,8 @@ * @return dest */ void* memmove(void* dest, const void* src, size_t len) { - u8* d = dest; - const u8* s = src; + char* d = dest; + const char* s = src; if (d == s) { return dest; diff --git a/src/libc/memset.c b/src/libc/memset.c index ec699c7ce3..31dba02ed8 100644 --- a/src/libc/memset.c +++ b/src/libc/memset.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "string.h" /** * memset: sets `len` bytes to `val` starting at address `dest`. @@ -12,7 +12,7 @@ * @return dest */ void* memset(void* dest, int val, size_t len) { - u8* ptr = dest; + char* ptr = dest; while (len--) { *ptr++ = val; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 77f1c0325d..dc3691ef03 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -15,7 +15,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:140 gc-eu-mq:140 gc-jp:142 gc-jp-ce:142 gc-jp-mq:142 gc-us:142 gc-us-mq:142" +#pragma increment_block_number "gc-eu:139 gc-eu-mq:139 gc-jp:141 gc-jp-ce:141 gc-jp-mq:141 gc-us:141 gc-us-mq:141" #define FLAGS ACTOR_FLAG_4 From 76d97ac18acc37a73b4ae627f2f84fe2bae44fd6 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 11 Sep 2024 11:02:42 +0200 Subject: [PATCH 65/86] [headers 14] libc64 headers (#2177) * [headers 14] libc64 headers * bss * bss --- include/functions.h | 25 ------------------ include/libc64/aprintf.h | 11 ++++++++ include/libc64/malloc.h | 28 +++++++++++++++++++++ include/{fp_math.h => libc64/math64.h} | 4 +-- include/libc64/sleep.h | 12 +++++++++ include/{libc/stdio.h => libc64/sprintf.h} | 8 +++--- include/ultra64.h | 1 - include/variables.h | 1 - include/z64.h | 6 ++++- src/code/sys_math3d.c | 2 +- src/code/z_olib.c | 2 +- src/libc64/aprintf.c | 3 ++- src/libc64/malloc.c | 4 ++- src/libc64/sprintf.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- 16 files changed, 73 insertions(+), 40 deletions(-) create mode 100644 include/libc64/aprintf.h create mode 100644 include/libc64/malloc.h rename include/{fp_math.h => libc64/math64.h} (85%) create mode 100644 include/libc64/sleep.h rename include/{libc/stdio.h => libc64/sprintf.h} (64%) diff --git a/include/functions.h b/include/functions.h index c056003523..f11bea990b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1366,31 +1366,6 @@ s8 PadUtils_GetRelY(Input* input); void PadUtils_UpdateRelXY(Input* input); s32 PadSetup_Init(OSMesgQueue* mq, u8* outMask, OSContStatus* status); -void* SystemArena_Malloc(u32 size); -void* SystemArena_MallocR(u32 size); -void* SystemArena_Realloc(void* ptr, u32 newSize); -void SystemArena_Free(void* ptr); -void* SystemArena_Calloc(u32 num, u32 size); -void SystemArena_GetSizes(u32* outMaxFree, u32* outFree, u32* outAlloc); -void SystemArena_Check(void); -void SystemArena_Init(void* start, u32 size); -void SystemArena_Cleanup(void); -s32 SystemArena_IsInitialized(void); -#if OOT_DEBUG -void* SystemArena_MallocDebug(u32 size, const char* file, int line); -void* SystemArena_MallocRDebug(u32 size, const char* file, int line); -void* SystemArena_ReallocDebug(void* ptr, u32 newSize, const char* file, int line); -void SystemArena_FreeDebug(void* ptr, const char* file, int line); -void SystemArena_Display(void); -#endif -s32 PrintUtils_VPrintf(PrintCallback* pfn, const char* fmt, va_list args); -s32 PrintUtils_Printf(PrintCallback* pfn, const char* fmt, ...); -void Sleep_Cycles(OSTime cycles); -void Sleep_Nsec(u32 nsec); -void Sleep_Usec(u32 usec); -void Sleep_Msec(u32 ms); -void Sleep_Sec(u32 sec); - s32 osPfsFreeBlocks(OSPfs* pfs, s32* leftoverBytes); void guScale(Mtx* m, f32 x, f32 y, f32 z); OSTask* _VirtualToPhysicalTask(OSTask* intp); diff --git a/include/libc64/aprintf.h b/include/libc64/aprintf.h new file mode 100644 index 0000000000..e6aad4bc79 --- /dev/null +++ b/include/libc64/aprintf.h @@ -0,0 +1,11 @@ +#ifndef LIBC64_APRINTF_H +#define LIBC64_APRINTF_H + +#include "ultra64.h" + +#include "stdarg.h" + +s32 PrintUtils_VPrintf(PrintCallback* pfn, const char* fmt, va_list args); +s32 PrintUtils_Printf(PrintCallback* pfn, const char* fmt, ...); + +#endif diff --git a/include/libc64/malloc.h b/include/libc64/malloc.h new file mode 100644 index 0000000000..b9ae324b96 --- /dev/null +++ b/include/libc64/malloc.h @@ -0,0 +1,28 @@ +#ifndef LIBC64_MALLOC_H +#define LIBC64_MALLOC_H + +#include "ultra64.h" +#include "libc64/os_malloc.h" + +void* SystemArena_Malloc(u32 size); +void* SystemArena_MallocR(u32 size); +void* SystemArena_Realloc(void* ptr, u32 newSize); +void SystemArena_Free(void* ptr); +void* SystemArena_Calloc(u32 num, u32 size); +void SystemArena_GetSizes(u32* outMaxFree, u32* outFree, u32* outAlloc); +void SystemArena_Check(void); +void SystemArena_Init(void* start, u32 size); +void SystemArena_Cleanup(void); +s32 SystemArena_IsInitialized(void); + +#if OOT_DEBUG +void* SystemArena_MallocDebug(u32 size, const char* file, int line); +void* SystemArena_MallocRDebug(u32 size, const char* file, int line); +void* SystemArena_ReallocDebug(void* ptr, u32 newSize, const char* file, int line); +void SystemArena_FreeDebug(void* ptr, const char* file, int line); +void SystemArena_Display(void); +#endif + +extern Arena gSystemArena; + +#endif diff --git a/include/fp_math.h b/include/libc64/math64.h similarity index 85% rename from include/fp_math.h rename to include/libc64/math64.h index 26f9b171b7..acd6992b77 100644 --- a/include/fp_math.h +++ b/include/libc64/math64.h @@ -1,5 +1,5 @@ -#ifndef FP_MATH_H -#define FP_MATH_H +#ifndef LIBC64_MATH64_H +#define LIBC64_MATH64_H #include "ultra64.h" diff --git a/include/libc64/sleep.h b/include/libc64/sleep.h new file mode 100644 index 0000000000..88eba0a785 --- /dev/null +++ b/include/libc64/sleep.h @@ -0,0 +1,12 @@ +#ifndef LIBC64_SLEEP_H +#define LIBC64_SLEEP_H + +#include "ultra64.h" + +void Sleep_Cycles(OSTime cycles); +void Sleep_Nsec(u32 nsec); +void Sleep_Usec(u32 usec); +void Sleep_Msec(u32 ms); +void Sleep_Sec(u32 sec); + +#endif diff --git a/include/libc/stdio.h b/include/libc64/sprintf.h similarity index 64% rename from include/libc/stdio.h rename to include/libc64/sprintf.h index ce91816145..485f938f58 100644 --- a/include/libc/stdio.h +++ b/include/libc64/sprintf.h @@ -1,9 +1,11 @@ -#ifndef STDIO_H -#define STDIO_H +#ifndef LIBC64_SPRINTF_H +#define LIBC64_SPRINTF_H + +#include "ultra64.h" #include "stdarg.h" -int sprintf(char* dst, const char* fmt, ...); int vsprintf(char* dst, const char* fmt, va_list args); +int sprintf(char* dst, const char* fmt, ...); #endif diff --git a/include/ultra64.h b/include/ultra64.h index f6460c5834..ed88bcb0f6 100644 --- a/include/ultra64.h +++ b/include/ultra64.h @@ -7,7 +7,6 @@ #include "libc/stdbool.h" #include "libc/stddef.h" #include "libc/stdint.h" -#include "libc/stdio.h" #include "libc/stdlib.h" #include "libc/string.h" diff --git a/include/variables.h b/include/variables.h index 269f455373..2f96222d58 100644 --- a/include/variables.h +++ b/include/variables.h @@ -223,7 +223,6 @@ extern ActiveSequence gActiveSeqs[4]; extern AudioContext gAudioCtx; extern AudioCustomUpdateFunction gAudioCustomUpdateFunction; -extern Arena gSystemArena; extern OSPifRam __osContPifRam; extern u8 __osContLastCmd; extern u8 __osMaxControllers; diff --git a/include/z64.h b/include/z64.h index 4c797ffaed..a6e4cc4d4a 100644 --- a/include/z64.h +++ b/include/z64.h @@ -66,12 +66,16 @@ #include "libc64/qrand.h" #include "sys_math.h" #include "sys_math3d.h" -#include "fp_math.h" +#include "libc64/math64.h" #include "sys_matrix.h" #include "main.h" #include "segmented_address.h" #include "stackcheck.h" #include "kaleido_manager.h" +#include "libc64/aprintf.h" +#include "libc64/malloc.h" +#include "libc64/sleep.h" +#include "libc64/sprintf.h" #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 240 diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index 1e81ad6f86..570da1ab01 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -5,7 +5,7 @@ #include "macros.h" #include "sys_math3d.h" -#pragma increment_block_number "gc-eu:105 gc-eu-mq:105 gc-jp:105 gc-jp-ce:105 gc-jp-mq:105 gc-us:105 gc-us-mq:105" +#pragma increment_block_number "gc-eu:106 gc-eu-mq:106 gc-jp:106 gc-jp-ce:106 gc-jp-mq:106 gc-us:106 gc-us-mq:106" s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); diff --git a/src/code/z_olib.c b/src/code/z_olib.c index c1f93a0522..298f151e2c 100644 --- a/src/code/z_olib.c +++ b/src/code/z_olib.c @@ -1,5 +1,5 @@ #include "z64math.h" -#include "fp_math.h" +#include "libc64/math64.h" #include "z_lib.h" /** diff --git a/src/libc64/aprintf.c b/src/libc64/aprintf.c index 3fb8cf3672..44cedac975 100644 --- a/src/libc64/aprintf.c +++ b/src/libc64/aprintf.c @@ -1,4 +1,5 @@ -#include "global.h" +#include "libc64/aprintf.h" +#include "ultra64.h" s32 PrintUtils_VPrintf(PrintCallback* pfn, const char* fmt, va_list args) { return _Printf(*pfn, pfn, fmt, args); diff --git a/src/libc64/malloc.c b/src/libc64/malloc.c index a5bd8032ba..57dd88e282 100644 --- a/src/libc64/malloc.c +++ b/src/libc64/malloc.c @@ -1,4 +1,6 @@ -#include "global.h" +#include "libc64/malloc.h" +#include "ultra64.h" +#include "macros.h" #include "libc64/os_malloc.h" #define LOG_SEVERITY_NOLOG 0 diff --git a/src/libc64/sprintf.c b/src/libc64/sprintf.c index d4af36356d..12286697c9 100644 --- a/src/libc64/sprintf.c +++ b/src/libc64/sprintf.c @@ -1,5 +1,5 @@ +#include "libc64/sprintf.h" #include "stdarg.h" -#include "stdio.h" #include "string.h" #include "ultra64/xstdio.h" 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 b8f9cf9d5f..0671dfc6fa 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -1395,7 +1395,7 @@ void func_80B3F3D8(void) { Sfx_PlaySfxCentered2(NA_SE_PL_SKIP); } -#pragma increment_block_number "gc-eu:128 gc-eu-mq:64 gc-jp:128 gc-jp-ce:128 gc-jp-mq:64 gc-us:128 gc-us-mq:64" +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:128 gc-jp-ce:128 gc-jp-mq:64 gc-us:128 gc-us-mq:64" void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { static Vec3f D_80B42DA0; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index dc3691ef03..087e9dfc2f 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -15,7 +15,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:139 gc-eu-mq:139 gc-jp:141 gc-jp-ce:141 gc-jp-mq:141 gc-us:141 gc-us-mq:141" +#pragma increment_block_number "gc-eu:136 gc-eu-mq:136 gc-jp:138 gc-jp-ce:138 gc-jp-mq:138 gc-us:138 gc-us-mq:138" #define FLAGS ACTOR_FLAG_4 From fd7b92dac81a93945683c24782e03269925890bb Mon Sep 17 00:00:00 2001 From: cadmic Date: Wed, 11 Sep 2024 03:07:25 -0700 Subject: [PATCH 66/86] [ntsc-1.2] Match remaining functions (#2182) * Match remaining ntsc-1.2 functions * "fake" -> "Fake match?" --- src/code/PreRender.c | 21 ++++++++++++++------ src/code/gfxprint.c | 46 ++++++++++++++++++++++++++++++++------------ src/code/z_kankyo.c | 6 +++++- 3 files changed, 54 insertions(+), 19 deletions(-) diff --git a/src/code/PreRender.c b/src/code/PreRender.c index aedc0d07a0..441dddade5 100644 --- a/src/code/PreRender.c +++ b/src/code/PreRender.c @@ -80,7 +80,9 @@ void PreRender_CopyImage(PreRender* this, Gfx** gfxP, void* img, void* imgDst) { s32 lrt; // Make sure that we don't load past the end of the source image - nRows = MIN(rowsRemaining, nRows); + if (nRows > rowsRemaining) { + nRows = rowsRemaining; + } // Determine the upper and lower bounds of the rect to draw ult = curRow; @@ -215,7 +217,9 @@ void func_800C170C(PreRender* this, Gfx** gfxP, void* buf, void* bufSave, u32 r, s32 lrt; // Make sure that we don't load past the end of the source image - nRows = MIN(rowsRemaining, nRows); + if (nRows > rowsRemaining) { + nRows = rowsRemaining; + } // Determine the upper and lower bounds of the rect to draw ult = curRow; @@ -457,15 +461,16 @@ void func_800C213C(PreRender* this, Gfx** gfxP) { curRow = 0; while (rowsRemaining > 0) { s32 uls = 0; + s32 ult = curRow; s32 lrs = this->width - 1; - s32 ult; s32 lrt; // Make sure that we don't load past the end of the source image - nRows = MIN(rowsRemaining, nRows); + if (nRows > rowsRemaining) { + nRows = rowsRemaining; + } - // Determine the upper and lower bounds of the rect to draw - ult = curRow; + // Determine the lower bound of the rect to draw lrt = curRow + nRows - 1; // Load the frame buffer line @@ -473,11 +478,15 @@ void func_800C213C(PreRender* this, Gfx** gfxP) { this->height, uls, ult, lrs, lrt, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + rtile = rtile; // Fake match? + // Load the coverage line gDPLoadMultiTile(gfx++, this->cvgSave, 0x0160, rtile, G_IM_FMT_I, G_IM_SIZ_8b, this->width, this->height, uls, ult, lrs, lrt, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + rtile = rtile; // Fake match? + // Draw a texture for which the rgb channels come from the framebuffer and the alpha channel comes from // coverage, modulated by env color gSPTextureRectangle(gfx++, uls << 2, ult << 2, (lrs + 1) << 2, (lrt + 1) << 2, G_TX_RENDERTILE, uls << 5, diff --git a/src/code/gfxprint.c b/src/code/gfxprint.c index dd80bcfd19..db586a8513 100644 --- a/src/code/gfxprint.c +++ b/src/code/gfxprint.c @@ -132,9 +132,17 @@ static u8 sDefaultSpecialFlags; #endif void GfxPrint_Setup(GfxPrint* this) { - s32 width = 16; - s32 height = 256; + s32 width; + s32 height; s32 i; + s32 pal; + s32 cm; + s32 masks; + s32 maskt; + s32 shift; + s32 line; + s32 tmem = 0; + s32 fmt = G_IM_FMT_CI; gDPPipeSync(this->dList++); gDPSetOtherMode(this->dList++, @@ -142,27 +150,41 @@ void GfxPrint_Setup(GfxPrint* this) { G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, G_AC_NONE | G_ZS_PRIM | G_RM_XLU_SURF | G_RM_XLU_SURF2); gDPSetCombineMode(this->dList++, G_CC_DECALRGBA, G_CC_DECALRGBA); - gDPLoadTextureBlock_4b(this->dList++, sGfxPrintFontData, G_IM_FMT_CI, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + width = 16; + height = 256; + cm = G_TX_NOMIRROR | G_TX_WRAP; + masks = G_TX_NOMASK; + maskt = G_TX_NOMASK; + shift = G_TX_NOLOD; + + gDPLoadMultiBlock_4b(this->dList++, sGfxPrintFontData, 0, G_TX_RENDERTILE, G_IM_FMT_CI, width, height, 0, cm, cm, + masks, maskt, shift, shift); gDPLoadTLUT(this->dList++, 64, 0x100, sGfxPrintFontTLUT); for (i = 1; i < 4; i++) { - gDPSetTile(this->dList++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2, i, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); - gDPSetTileSize(this->dList++, i * 2, 0, 0, 15 << 2, 255 << 2); + gDPSetTile(this->dList++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2, i, cm, maskt, shift, cm, masks, shift); + gDPSetTileSize(this->dList++, i * 2, 0 << 2, 0 << 2, (width - 1) << 2, (height - 1) << 2); } gDPSetColor(this->dList++, G_SETPRIMCOLOR, this->color.rgba); - gDPLoadMultiTile_4b(this->dList++, sGfxPrintRainbowData, 0, 1, G_IM_FMT_CI, 2, 8, 0, 0, 1, 7, 4, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 1, 3, G_TX_NOLOD, G_TX_NOLOD); + width = 2; + height = 8; + cm = G_TX_NOMIRROR | G_TX_WRAP; + masks = 1; + maskt = 3; + shift = G_TX_NOLOD; + pal = 4; + line = 1; + gDPLoadMultiTile_4b(this->dList++, sGfxPrintRainbowData, 0, 1, G_IM_FMT_CI, width, height, 0, 0, width - 1, + height - 1, pal, cm, cm, masks, maskt, shift, shift); gDPLoadTLUT(this->dList++, 16, 0x140, sGfxPrintRainbowTLUT); for (i = 1; i < 4; i++) { - gDPSetTile(this->dList++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2 + 1, 4, G_TX_NOMIRROR | G_TX_WRAP, 3, - G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 1, G_TX_NOLOD); - gDPSetTileSize(this->dList++, i * 2 + 1, 0, 0, 1 << 2, 7 << 2); + gDPSetTile(this->dList++, fmt, G_IM_SIZ_4b, line, tmem, i * 2 + 1, pal, cm, maskt, shift, cm, masks, shift); + gDPSetTileSize(this->dList++, i * 2 + 1, 0 << 2, 0 << 2, (width - 1) << 2, (height - 1) << 2); } } diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index ea5bf96722..52be77e440 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -1577,7 +1577,9 @@ void Environment_DrawLensFlare(PlayState* play, EnvironmentContext* envCtx, View sqrtf((SQ(lookDirX) + SQ(lookDirY) + SQ(lookDirZ)) * (SQ(posDirX) + SQ(posDirY) + SQ(posDirZ))); lensFlareAlphaScaleTarget = cosAngle * 3.5f; - lensFlareAlphaScaleTarget = CLAMP_MAX(lensFlareAlphaScaleTarget, 1.0f); + if (lensFlareAlphaScaleTarget > 1.0f) { + lensFlareAlphaScaleTarget = 1.0f; + } if (!isSun) { lensFlareAlphaScaleTarget = cosAngle; @@ -1625,7 +1627,9 @@ void Environment_DrawLensFlare(PlayState* play, EnvironmentContext* envCtx, View alpha *= 1.0f - fogInfluence; +#if !PLATFORM_N64 if (1) {} +#endif if (!(isOffScreen ^ 0)) { Math_SmoothStepToF(&envCtx->lensFlareAlphaScale, lensFlareAlphaScaleTarget, 0.5f, 0.05f, 0.001f); From 5419a18d7917f6c33367cbc5b72b280f97b37e65 Mon Sep 17 00:00:00 2001 From: cadmic Date: Wed, 11 Sep 2024 03:31:54 -0700 Subject: [PATCH 67/86] [ntsc-1.2] Match N64 audio tables (#2183) * Match N64 audio tables * ifdef PERMANENT_POOL_SIZE rather than EXTRA_SIZE --- include/tables/sfx/enemybank_table.h | 4 ++++ include/tables/sfx/environmentbank_table.h | 8 ++++++++ include/tables/sfx/itembank_table.h | 4 ++++ src/audio/general.c | 6 +++++- src/audio/session_config.c | 4 ++++ 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/include/tables/sfx/enemybank_table.h b/include/tables/sfx/enemybank_table.h index 6ad17f6ad2..253a807392 100644 --- a/include/tables/sfx/enemybank_table.h +++ b/include/tables/sfx/enemybank_table.h @@ -335,7 +335,11 @@ /* 0x3942 */ DEFINE_SFX(NA_SE_EN_BALINADE_THUNDER, 0x34, 3, 0, 0) /* 0x3943 */ DEFINE_SFX(NA_SE_EN_BALINADE_BL_SPARK, 0x20, 2, 0, 0) /* 0x3944 */ DEFINE_SFX(NA_SE_EN_BALINADE_BL_DEAD, 0x34, 3, 0, 0) +#if PLATFORM_N64 +/* 0x3945 */ DEFINE_SFX(NA_SE_EN_BALINADE_BREAK2, 0x34, 3, 0, 0) +#else /* 0x3945 */ DEFINE_SFX(NA_SE_EN_BALINADE_BREAK2, 0x30, 3, 0, 0) +#endif /* 0x3946 */ DEFINE_SFX(NA_SE_EN_BALINADE_HIT_RINK, 0x38, 3, 0, 0) /* 0x3947 */ DEFINE_SFX(NA_SE_EN_GANON_WAVE_GND, 0x20, 3, 0, 0) /* 0x3948 */ DEFINE_SFX(NA_SE_EN_AWA_BOUND, 0x14, 0, 0, 0) diff --git a/include/tables/sfx/environmentbank_table.h b/include/tables/sfx/environmentbank_table.h index 58bffcee8f..57d0f3ebd6 100644 --- a/include/tables/sfx/environmentbank_table.h +++ b/include/tables/sfx/environmentbank_table.h @@ -44,7 +44,11 @@ /* 0x281F */ DEFINE_SFX(NA_SE_EV_TBOX_UNLOCK, 0x30, 0, 0, 0) /* 0x2820 */ DEFINE_SFX(NA_SE_EV_TBOX_OPEN, 0x30, 0, 0, 0) /* 0x2821 */ DEFINE_SFX(NA_SE_SY_TIMER, 0xA0, 0, 0, SFX_FLAG_13 | SFX_FLAG_3) +#if PLATFORM_N64 +/* 0x2822 */ DEFINE_SFX(NA_SE_EV_FLAME_IGNITION, 0x2D, 2, 0, 0) +#else /* 0x2822 */ DEFINE_SFX(NA_SE_EV_FLAME_IGNITION, 0x20, 2, 0, 0) +#endif /* 0x2823 */ DEFINE_SFX(NA_SE_EV_SPEAR_HIT, 0x30, 0, 0, 0) /* 0x2824 */ DEFINE_SFX(NA_SE_EV_ELEVATOR_MOVE, 0x30, 0, 0, SFX_FLAG_11) /* 0x2825 */ DEFINE_SFX(NA_SE_EV_WARP_HOLE, 0x30, 0, 0, SFX_FLAG_15 | SFX_FLAG_11) @@ -105,7 +109,11 @@ /* 0x285C */ DEFINE_SFX(NA_SE_EV_BLOCKSINK, 0x30, 2, 0, 0) /* 0x285D */ DEFINE_SFX(NA_SE_EV_CROWD, 0x30, 0, 0, SFX_FLAG_13 | SFX_FLAG_12 | SFX_FLAG_11) /* 0x285E */ DEFINE_SFX(NA_SE_EV_WATER_LEVEL_DOWN, 0x30, 0, 0, 0) +#if PLATFORM_N64 +/* 0x285F */ DEFINE_SFX(NA_SE_EV_NAVY_VANISH, 0x2C, 0, 0, 0) +#else /* 0x285F */ DEFINE_SFX(NA_SE_EV_NAVY_VANISH, 0x30, 0, 0, 0) +#endif /* 0x2860 */ DEFINE_SFX(NA_SE_EV_LADDER_DOUND, 0x30, 3, 0, 0) /* 0x2861 */ DEFINE_SFX(NA_SE_EV_WEB_VIBRATION, 0x30, 0, 0, 0) /* 0x2862 */ DEFINE_SFX(NA_SE_EV_WEB_BROKEN, 0x30, 0, 0, 0) diff --git a/include/tables/sfx/itembank_table.h b/include/tables/sfx/itembank_table.h index 91c074496c..64eabe2662 100644 --- a/include/tables/sfx/itembank_table.h +++ b/include/tables/sfx/itembank_table.h @@ -29,7 +29,11 @@ /* 0x1810 */ DEFINE_SFX(NA_SE_IT_BOOMERANG_FLY, 0x30, 0, 0, SFX_FLAG_10) /* 0x1811 */ DEFINE_SFX(NA_SE_IT_SWORD_STRIKE, 0x40, 2, 0, 0) /* 0x1812 */ DEFINE_SFX(NA_SE_IT_HAMMER_SWING, 0x30, 0, 1, 0) +#if PLATFORM_N64 +/* 0x1813 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_REFLECT, 0x20, 0, 0, 0) +#else /* 0x1813 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_REFLECT, 0x30, 0, 0, 0) +#endif /* 0x1814 */ DEFINE_SFX(NA_SE_IT_ARROW_STICK_CRE, 0x30, 0, 0, 0) /* 0x1815 */ DEFINE_SFX(NA_SE_IT_ARROW_STICK_OBJ, 0x34, 0, 0, 0) /* 0x1816 */ DEFINE_SFX(NA_SE_IT_DUMMY, 0x30, 0, 0, 0) diff --git a/src/audio/general.c b/src/audio/general.c index 528b16a197..8fb70bc463 100644 --- a/src/audio/general.c +++ b/src/audio/general.c @@ -169,7 +169,11 @@ u8 sSeqModeInput = 0; #define SEQ_FLAG_NO_AMBIENCE (1 << 7) u8 sSeqFlags[] = { - SEQ_FLAG_FANFARE, // NA_BGM_GENERAL_SFX +#if PLATFORM_N64 + SEQ_FLAG_FANFARE | SEQ_FLAG_ENEMY, // NA_BGM_GENERAL_SFX +#else + SEQ_FLAG_FANFARE, // NA_BGM_GENERAL_SFX +#endif SEQ_FLAG_ENEMY, // NA_BGM_NATURE_BACKGROUND 0, // NA_BGM_FIELD_LOGIC 0, // NA_BGM_FIELD_INIT diff --git a/src/audio/session_config.c b/src/audio/session_config.c index c8966ad95c..8d1d97ca0c 100644 --- a/src/audio/session_config.c +++ b/src/audio/session_config.c @@ -18,7 +18,11 @@ const TempoData gTempoData = { // Sizes of everything on the init pool #define AI_BUFFERS_SIZE (AIBUF_SIZE * ARRAY_COUNT(gAudioCtx.aiBuffers)) #define SOUNDFONT_LIST_SIZE (NUM_SOUNDFONTS * sizeof(SoundFont)) +#if PLATFORM_N64 +#define PERMANENT_POOL_SIZE (SFX_SEQ_SIZE + SFX_SOUNDFONT_1_SIZE + SFX_SOUNDFONT_2_SIZE + 0x10) +#else #define PERMANENT_POOL_SIZE (SFX_SEQ_SIZE + SFX_SOUNDFONT_1_SIZE + SFX_SOUNDFONT_2_SIZE) +#endif const AudioHeapInitSizes gAudioHeapInitSizes = { ALIGN16(sizeof(gAudioHeap) - 0x100), // audio heap size From d9af701b88db6219954939e47c3eb0f4d1df8051 Mon Sep 17 00:00:00 2001 From: Derek Hensley Date: Wed, 11 Sep 2024 07:51:53 -0600 Subject: [PATCH 68/86] Make needed extracted directories in extract scripts (#2185) --- Makefile | 4 ++-- extract_assets.py | 2 ++ tools/msgdis.py | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 2b098b6726..8c5c0159a9 100644 --- a/Makefile +++ b/Makefile @@ -353,8 +353,8 @@ SOUNDFONT_O_FILES := $(foreach f,$(SOUNDFONT_BUILD_XMLS),$(f:.xml=.o)) SOUNDFONT_HEADERS := $(foreach f,$(SOUNDFONT_BUILD_XMLS),$(f:.xml=.h)) SOUNDFONT_DEP_FILES := $(foreach f,$(SOUNDFONT_O_FILES),$(f:.o=.d)) -# create extracted directories -$(shell mkdir -p $(EXTRACTED_DIR) $(EXTRACTED_DIR)/assets $(EXTRACTED_DIR)/text) +# create extracted directory +$(shell mkdir -p $(EXTRACTED_DIR)) ASSET_BIN_DIRS_EXTRACTED := $(shell find $(EXTRACTED_DIR)/assets -type d) ASSET_BIN_DIRS_COMMITTED := $(shell find assets -type d -not -path "assets/xml*" -not -path assets/text) diff --git a/extract_assets.py b/extract_assets.py index da9715a5ac..2188cfcc0b 100755 --- a/extract_assets.py +++ b/extract_assets.py @@ -137,6 +137,8 @@ def main(): version: str = args.oot_version outputDir: Path = args.output_dir + args.output_dir.mkdir(parents=True, exist_ok=True) + versionConfig = version_config.load_version_config(version) global ZAPDArgs diff --git a/tools/msgdis.py b/tools/msgdis.py index 9171db69ac..3422988a6c 100755 --- a/tools/msgdis.py +++ b/tools/msgdis.py @@ -2060,6 +2060,8 @@ def main(): version : str = args.oot_version output_dir : Path = args.output_dir + args.output_dir.mkdir(parents=True, exist_ok=True) + config = version_config.load_version_config(version) code_vram = config.dmadata_segments["code"].vram From 64570e871f08e64d2a2fd1e6b8fa32009dc78e88 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 11 Sep 2024 18:58:33 +0200 Subject: [PATCH 69/86] Pause doc: Prompt page and save prompt state (#2170) * Pause doc: Prompt page and save prompt state * bss * `QUAD_PROMPT_` -> `PROMPT_QUAD_` * `QUAD_MAP_WORLD_`, `QUAD_MAP_` -> `WORLD_MAP_QUAD_` * `PAUSE_QUAD_CURSOR_` -> `PAUSE_CURSOR_QUAD_` * `PAUSE_SAVE_PROMPT_STATE_RETURN_TO_MENU_ALT` -> `_2` * bss * bss * add comments to help clarify save prompt vs prompt --- include/regs.h | 4 + include/z64pause.h | 27 +- src/code/fault_gc.c | 2 +- src/code/z_construct.c | 8 +- src/code/z_kaleido_scope_call.c | 4 +- src/code/z_parameter.c | 8 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../misc/ovl_kaleido_scope/z_kaleido_map.c | 76 ++-- .../misc/ovl_kaleido_scope/z_kaleido_prompt.c | 26 +- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 343 ++++++++++-------- .../misc/ovl_kaleido_scope/z_kaleido_scope.h | 61 ++-- 12 files changed, 308 insertions(+), 255 deletions(-) diff --git a/include/regs.h b/include/regs.h index 4f8968a0c4..9d98e971e9 100644 --- a/include/regs.h +++ b/include/regs.h @@ -226,6 +226,10 @@ #define R_TEXT_ADJUST_COLOR_2_B VREG(38) #define R_OCARINA_BUTTONS_YPOS(note) VREG(45 + (note)) #define R_OCARINA_BUTTONS_YPOS_OFFSET VREG(51) +#define R_KALEIDO_PROMPT_CURSOR_ALPHA_TIMER_BASE VREG(60) +#define R_KALEIDO_PROMPT_CURSOR_ALPHA VREG(61) +#define R_KALEIDO_PROMPT_CURSOR_ALPHA_STATE VREG(62) +#define R_KALEIDO_PROMPT_CURSOR_ALPHA_TIMER VREG(63) #define R_ITEM_AMMO_X(i) VREG(64 + (i)) #define R_ITEM_AMMO_Y(i) VREG(68 + (i)) #define R_ITEM_ICON_WIDTH(i) VREG(76 + (i)) diff --git a/include/z64pause.h b/include/z64pause.h index 8802521787..c9485a1e20 100644 --- a/include/z64pause.h +++ b/include/z64pause.h @@ -97,13 +97,24 @@ typedef enum PauseMainState { /* 9 */ PAUSE_MAIN_STATE_9 } PauseMainState; +// Sub-states of PAUSE_STATE_SAVE_PROMPT +typedef enum PauseSavePromptState { + /* 0 */ PAUSE_SAVE_PROMPT_STATE_APPEARING, + /* 1 */ PAUSE_SAVE_PROMPT_STATE_WAIT_CHOICE, + /* 2 */ PAUSE_SAVE_PROMPT_STATE_CLOSING, + /* 3 */ PAUSE_SAVE_PROMPT_STATE_RETURN_TO_MENU, + /* 4 */ PAUSE_SAVE_PROMPT_STATE_SAVED, + /* 5 */ PAUSE_SAVE_PROMPT_STATE_CLOSING_AFTER_SAVED, + /* 6 */ PAUSE_SAVE_PROMPT_STATE_RETURN_TO_MENU_2 // unused +} PauseSavePromptState; + typedef enum PauseCursorQuad { - /* 0 */ PAUSE_QUAD_CURSOR_TL, - /* 1 */ PAUSE_QUAD_CURSOR_TR, - /* 2 */ PAUSE_QUAD_CURSOR_BL, - /* 3 */ PAUSE_QUAD_CURSOR_BR, - /* 4 */ PAUSE_QUAD_CURSOR_4, - /* 5 */ PAUSE_QUAD_CURSOR_MAX + /* 0 */ PAUSE_CURSOR_QUAD_TL, + /* 1 */ PAUSE_CURSOR_QUAD_TR, + /* 2 */ PAUSE_CURSOR_QUAD_BL, + /* 3 */ PAUSE_CURSOR_QUAD_BR, + /* 4 */ PAUSE_CURSOR_QUAD_4, + /* 5 */ PAUSE_CURSOR_QUAD_MAX } PauseCursorQuad; typedef enum WorldMapPoint { @@ -149,7 +160,7 @@ typedef struct PauseContext { /* 0x0160 */ char unk_160[0x04]; /* 0x0164 */ Vtx* questVtx; /* 0x0168 */ Vtx* cursorVtx; - /* 0x016C */ Vtx* saveVtx; + /* 0x016C */ Vtx* promptPageVtx; // Used by both the pause menu save prompt and the gameover prompt /* 0x0170 */ char unk_170[0x24]; /* 0x0194 */ struct OcarinaStaff* ocarinaStaff; /* 0x0198 */ char unk_198[0x20]; @@ -162,7 +173,7 @@ typedef struct PauseContext { /* 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 pageSwitchTimer; - /* 0x01EC */ u16 unk_1EC; + /* 0x01EC */ u16 savePromptState; /* 0x01F0 */ f32 unk_1F0; /* 0x01F4 */ f32 unk_1F4; /* 0x01F8 */ f32 unk_1F8; diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c index 32d99f368b..30ffc53099 100644 --- a/src/code/fault_gc.c +++ b/src/code/fault_gc.c @@ -42,7 +42,7 @@ */ #if PLATFORM_GC -#pragma increment_block_number "gc-eu:208 gc-eu-mq:208 gc-eu-mq-dbg:208 gc-jp:208 gc-jp-ce:208 gc-jp-mq:208 gc-us:208" \ +#pragma increment_block_number "gc-eu:208 gc-eu-mq:208 gc-eu-mq-dbg:192 gc-jp:208 gc-jp-ce:208 gc-jp-mq:208 gc-us:208" \ "gc-us-mq:208" #include "global.h" diff --git a/src/code/z_construct.c b/src/code/z_construct.c index 8c1be3c70d..e758757774 100644 --- a/src/code/z_construct.c +++ b/src/code/z_construct.c @@ -647,10 +647,10 @@ void Regs_InitDataImpl(void) { VREG(57) = 255; VREG(58) = 255; VREG(59) = 255; - VREG(60) = 20; - VREG(61) = 100; - VREG(62) = 0; - VREG(63) = 10; + R_KALEIDO_PROMPT_CURSOR_ALPHA_TIMER_BASE = 20; + R_KALEIDO_PROMPT_CURSOR_ALPHA = 100; + R_KALEIDO_PROMPT_CURSOR_ALPHA_STATE = 0; + R_KALEIDO_PROMPT_CURSOR_ALPHA_TIMER = 10; R_ITEM_AMMO_X(1) = C_LEFT_BUTTON_X + 1; R_ITEM_AMMO_X(2) = C_DOWN_BUTTON_X + 1; R_ITEM_AMMO_X(3) = C_RIGHT_BUTTON_X + 1; diff --git a/src/code/z_kaleido_scope_call.c b/src/code/z_kaleido_scope_call.c index 4e4eca0a8d..1f4ea9a508 100644 --- a/src/code/z_kaleido_scope_call.c +++ b/src/code/z_kaleido_scope_call.c @@ -66,7 +66,7 @@ void KaleidoScopeCall_Update(PlayState* play) { R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_SETUP; pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE; - pauseCtx->unk_1EC = 0; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_APPEARING; pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_WAIT_BG_PRERENDER } } else if (pauseCtx->state == PAUSE_STATE_8) { @@ -77,7 +77,7 @@ void KaleidoScopeCall_Update(PlayState* play) { R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_SETUP; pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE; - pauseCtx->unk_1EC = 0; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_APPEARING; pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_9 } else if ((pauseCtx->state == PAUSE_STATE_WAIT_BG_PRERENDER) || (pauseCtx->state == PAUSE_STATE_9)) { PRINTF("PR_KAREIDOSCOPE_MODE=%d\n", R_PAUSE_BG_PRERENDER_STATE); diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 1a2bb99242..9e4a009936 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -3392,7 +3392,7 @@ void Interface_Draw(PlayState* play) { gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATERGBA_PRIM, G_CC_MODULATERGBA_PRIM); gSPMatrix(OVERLAY_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - // PAUSE_QUAD_CURSOR_4 + // PAUSE_CURSOR_QUAD_4 pauseCtx->cursorVtx[16].v.ob[0] = pauseCtx->cursorVtx[18].v.ob[0] = pauseCtx->equipAnimX / 10; pauseCtx->cursorVtx[17].v.ob[0] = pauseCtx->cursorVtx[19].v.ob[0] = pauseCtx->cursorVtx[16].v.ob[0] + WREG(90) / 10; @@ -3403,7 +3403,7 @@ void Interface_Draw(PlayState* play) { if (pauseCtx->equipTargetItem < 0xBF) { // Normal Equip (icon goes from the inventory slot to the C button when equipping it) gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, pauseCtx->equipAnimAlpha); - gSPVertex(OVERLAY_DISP++, &pauseCtx->cursorVtx[PAUSE_QUAD_CURSOR_4 * 4], 4, 0); + gSPVertex(OVERLAY_DISP++, &pauseCtx->cursorVtx[PAUSE_CURSOR_QUAD_4 * 4], 4, 0); gDPLoadTextureBlock(OVERLAY_DISP++, gItemIcons[pauseCtx->equipTargetItem], G_IM_FMT_RGBA, G_IM_SIZ_32b, ITEM_ICON_WIDTH, ITEM_ICON_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP, @@ -3416,7 +3416,7 @@ void Interface_Draw(PlayState* play) { if ((pauseCtx->equipAnimAlpha > 0) && (pauseCtx->equipAnimAlpha < 255)) { svar1 = (pauseCtx->equipAnimAlpha / 8) / 2; - // PAUSE_QUAD_CURSOR_4 + // PAUSE_CURSOR_QUAD_4 pauseCtx->cursorVtx[16].v.ob[0] = pauseCtx->cursorVtx[18].v.ob[0] = pauseCtx->cursorVtx[16].v.ob[0] - svar1; pauseCtx->cursorVtx[17].v.ob[0] = pauseCtx->cursorVtx[19].v.ob[0] = @@ -3427,7 +3427,7 @@ void Interface_Draw(PlayState* play) { pauseCtx->cursorVtx[16].v.ob[1] - svar1 * 2 - 32; } - gSPVertex(OVERLAY_DISP++, &pauseCtx->cursorVtx[PAUSE_QUAD_CURSOR_4 * 4], 4, 0); + gSPVertex(OVERLAY_DISP++, &pauseCtx->cursorVtx[PAUSE_CURSOR_QUAD_4 * 4], 4, 0); gDPLoadTextureBlock(OVERLAY_DISP++, gMagicArrowEquipEffectTex, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); 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 0671dfc6fa..89907ee1c6 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -1395,7 +1395,7 @@ void func_80B3F3D8(void) { Sfx_PlaySfxCentered2(NA_SE_PL_SKIP); } -#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:128 gc-jp-ce:128 gc-jp-mq:64 gc-us:128 gc-us-mq:64" +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64" void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { static Vec3f D_80B42DA0; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 087e9dfc2f..4550308e56 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -15,7 +15,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:136 gc-eu-mq:136 gc-jp:138 gc-jp-ce:138 gc-jp-mq:138 gc-us:138 gc-us-mq:138" +#pragma increment_block_number "gc-eu:133 gc-eu-mq:133 gc-jp:135 gc-jp-ce:135 gc-jp-mq:135 gc-us:135 gc-us-mq:135" #define FLAGS ACTOR_FLAG_4 diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c index 9d46f54041..f5ad9e16bc 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c @@ -358,40 +358,40 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { static void* cloudTexs[] = { - gWorldMapCloudSacredForestMeadowTex, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW - gWorldMapCloudHyruleFieldTex, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD - gWorldMapCloudLonLonRanchTex, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH - gWorldMapCloudMarketTex, // QUAD_MAP_WORLD_CLOUDS_MARKET - gWorldMapCloudHyruleCastleTex, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE - gWorldMapCloudKakarikoVillageTex, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE - gWorldMapCloudGraveyardTex, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD - gWorldMapCloudDeathMountainTrailTex, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL - gWorldMapCloudGoronCityTex, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY - gWorldMapCloudZorasRiverTex, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER - gWorldMapCloudZorasDomainTex, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN - gWorldMapCloudZorasFountainTex, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN - gWorldMapCloudGerudoValleyTex, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY - gWorldMapCloudGerudosFortressTex, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS - gWorldMapCloudDesertColossusTex, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS - gWorldMapCloudLakeHyliaTex, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA + gWorldMapCloudSacredForestMeadowTex, // WORLD_MAP_QUAD_CLOUDS_SACRED_FOREST_MEADOW + gWorldMapCloudHyruleFieldTex, // WORLD_MAP_QUAD_CLOUDS_HYRULE_FIELD + gWorldMapCloudLonLonRanchTex, // WORLD_MAP_QUAD_CLOUDS_LON_LON_RANCH + gWorldMapCloudMarketTex, // WORLD_MAP_QUAD_CLOUDS_MARKET + gWorldMapCloudHyruleCastleTex, // WORLD_MAP_QUAD_CLOUDS_HYRULE_CASTLE + gWorldMapCloudKakarikoVillageTex, // WORLD_MAP_QUAD_CLOUDS_KAKARIKO_VILLAGE + gWorldMapCloudGraveyardTex, // WORLD_MAP_QUAD_CLOUDS_GRAVEYARD + gWorldMapCloudDeathMountainTrailTex, // WORLD_MAP_QUAD_CLOUDS_DEATH_MOUNTAIN_TRAIL + gWorldMapCloudGoronCityTex, // WORLD_MAP_QUAD_CLOUDS_GORON_CITY + gWorldMapCloudZorasRiverTex, // WORLD_MAP_QUAD_CLOUDS_ZORAS_RIVER + gWorldMapCloudZorasDomainTex, // WORLD_MAP_QUAD_CLOUDS_ZORAS_DOMAIN + gWorldMapCloudZorasFountainTex, // WORLD_MAP_QUAD_CLOUDS_ZORAS_FOUNTAIN + gWorldMapCloudGerudoValleyTex, // WORLD_MAP_QUAD_CLOUDS_GERUDO_VALLEY + gWorldMapCloudGerudosFortressTex, // WORLD_MAP_QUAD_CLOUDS_GERUDOS_FORTRESS + gWorldMapCloudDesertColossusTex, // WORLD_MAP_QUAD_CLOUDS_DESERT_COLOSSUS + gWorldMapCloudLakeHyliaTex, // WORLD_MAP_QUAD_CLOUDS_LAKE_HYLIA }; static u16 cloudFlagNums[] = { - WORLD_MAP_AREA_SACRED_FOREST_MEADOW, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW - WORLD_MAP_AREA_HYRULE_FIELD, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD - WORLD_MAP_AREA_LON_LON_RANCH, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH - WORLD_MAP_AREA_MARKET, // QUAD_MAP_WORLD_CLOUDS_MARKET - WORLD_MAP_AREA_HYRULE_CASTLE, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE - WORLD_MAP_AREA_KAKARIKO_VILLAGE, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE - WORLD_MAP_AREA_GRAVEYARD, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD - WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL - WORLD_MAP_AREA_GORON_CITY, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY - WORLD_MAP_AREA_ZORAS_RIVER, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER - WORLD_MAP_AREA_ZORAS_DOMAIN, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN - WORLD_MAP_AREA_ZORAS_FOUNTAIN, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN - WORLD_MAP_AREA_GERUDO_VALLEY, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY - WORLD_MAP_AREA_GERUDOS_FORTRESS, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS - WORLD_MAP_AREA_DESERT_COLOSSUS, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS - WORLD_MAP_AREA_LAKE_HYLIA, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA + WORLD_MAP_AREA_SACRED_FOREST_MEADOW, // WORLD_MAP_QUAD_CLOUDS_SACRED_FOREST_MEADOW + WORLD_MAP_AREA_HYRULE_FIELD, // WORLD_MAP_QUAD_CLOUDS_HYRULE_FIELD + WORLD_MAP_AREA_LON_LON_RANCH, // WORLD_MAP_QUAD_CLOUDS_LON_LON_RANCH + WORLD_MAP_AREA_MARKET, // WORLD_MAP_QUAD_CLOUDS_MARKET + WORLD_MAP_AREA_HYRULE_CASTLE, // WORLD_MAP_QUAD_CLOUDS_HYRULE_CASTLE + WORLD_MAP_AREA_KAKARIKO_VILLAGE, // WORLD_MAP_QUAD_CLOUDS_KAKARIKO_VILLAGE + WORLD_MAP_AREA_GRAVEYARD, // WORLD_MAP_QUAD_CLOUDS_GRAVEYARD + WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL, // WORLD_MAP_QUAD_CLOUDS_DEATH_MOUNTAIN_TRAIL + WORLD_MAP_AREA_GORON_CITY, // WORLD_MAP_QUAD_CLOUDS_GORON_CITY + WORLD_MAP_AREA_ZORAS_RIVER, // WORLD_MAP_QUAD_CLOUDS_ZORAS_RIVER + WORLD_MAP_AREA_ZORAS_DOMAIN, // WORLD_MAP_QUAD_CLOUDS_ZORAS_DOMAIN + WORLD_MAP_AREA_ZORAS_FOUNTAIN, // WORLD_MAP_QUAD_CLOUDS_ZORAS_FOUNTAIN + WORLD_MAP_AREA_GERUDO_VALLEY, // WORLD_MAP_QUAD_CLOUDS_GERUDO_VALLEY + WORLD_MAP_AREA_GERUDOS_FORTRESS, // WORLD_MAP_QUAD_CLOUDS_GERUDOS_FORTRESS + WORLD_MAP_AREA_DESERT_COLOSSUS, // WORLD_MAP_QUAD_CLOUDS_DESERT_COLOSSUS + WORLD_MAP_AREA_LAKE_HYLIA, // WORLD_MAP_QUAD_CLOUDS_LAKE_HYLIA }; static s16 pointPulsePrimColor[] = { 0, 0, 255 }; static s16 pointPrimColors[][3] = { @@ -577,7 +577,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; pauseCtx->cursorSlot[PAUSE_MAP] = - PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; + PAGE_BG_QUADS + WORLD_MAP_QUAD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); } else { pauseCtx->cursorItem[PAUSE_MAP] = gSaveContext.worldMapArea + 0x18; @@ -593,7 +593,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; pauseCtx->cursorSlot[PAUSE_MAP] = - PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; + PAGE_BG_QUADS + WORLD_MAP_QUAD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -611,7 +611,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; pauseCtx->cursorSlot[PAUSE_MAP] = - PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; + PAGE_BG_QUADS + WORLD_MAP_QUAD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -754,7 +754,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gDPPipeSync(POLY_OPA_DISP++); gDPSetTextureFilter(POLY_OPA_DISP++, G_TF_POINT); - // Quad PAGE_BG_QUADS + QUAD_MAP_28 + // Quad PAGE_BG_QUADS + WORLD_MAP_QUAD_28 pauseCtx->mapPageVtx[172].v.ob[0] = pauseCtx->mapPageVtx[174].v.ob[0] = areaBoxPosX[((void)0, gSaveContext.worldMapArea)]; @@ -862,7 +862,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gDPSetEnvColor(POLY_OPA_DISP++, pointPulseEnvColor[0], pointPulseEnvColor[1], pointPulseEnvColor[2], 0); } - gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[(PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + i) * 4], 4, + gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[(PAGE_BG_QUADS + WORLD_MAP_QUAD_POINT_FIRST + i) * 4], 4, 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); @@ -873,7 +873,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { KaleidoScope_DrawCursor(play, PAUSE_MAP); } - gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[(PAGE_BG_QUADS + QUAD_MAP_TRADE_QUEST_MARKER) * 4], 16, 0); + gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[(PAGE_BG_QUADS + WORLD_MAP_QUAD_TRADE_QUEST_MARKER) * 4], 16, 0); if (pauseCtx->tradeQuestMarker != TRADE_QUEST_MARKER_NONE) { gDPPipeSync(POLY_OPA_DISP++); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.c index ca2017e335..2ef5079a44 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.c @@ -1,6 +1,6 @@ #include "z_kaleido_scope.h" -static s16 D_8082A6E0[] = { 100, 255 }; +static s16 sKaleidoPromptCursorAlphaVals[] = { 100, 255 }; void KaleidoScope_UpdatePrompt(PlayState* play) { PauseContext* pauseCtx = &play->pauseCtx; @@ -8,8 +8,10 @@ void KaleidoScope_UpdatePrompt(PlayState* play) { s8 stickAdjX = input->rel.stick_x; s16 step; - if (((pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) && (pauseCtx->unk_1EC == 1)) || + if (((pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) && + (pauseCtx->savePromptState == PAUSE_SAVE_PROMPT_STATE_WAIT_CHOICE)) || (pauseCtx->state == PAUSE_STATE_14) || (pauseCtx->state == PAUSE_STATE_16)) { + if ((pauseCtx->promptChoice == 0) && (stickAdjX >= 30)) { Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -20,18 +22,20 @@ void KaleidoScope_UpdatePrompt(PlayState* play) { pauseCtx->promptChoice = 0; } - step = ABS(VREG(61) - D_8082A6E0[VREG(62)]) / VREG(63); - if (VREG(61) >= D_8082A6E0[VREG(62)]) { - VREG(61) -= step; + step = ABS(R_KALEIDO_PROMPT_CURSOR_ALPHA - sKaleidoPromptCursorAlphaVals[R_KALEIDO_PROMPT_CURSOR_ALPHA_STATE]) / + R_KALEIDO_PROMPT_CURSOR_ALPHA_TIMER; + if (R_KALEIDO_PROMPT_CURSOR_ALPHA >= sKaleidoPromptCursorAlphaVals[R_KALEIDO_PROMPT_CURSOR_ALPHA_STATE]) { + R_KALEIDO_PROMPT_CURSOR_ALPHA -= step; } else { - VREG(61) += step; + R_KALEIDO_PROMPT_CURSOR_ALPHA += step; } - VREG(63)--; - if (VREG(63) == 0) { - VREG(61) = D_8082A6E0[VREG(62)]; - VREG(63) = VREG(60) + VREG(62); - VREG(62) ^= 1; + R_KALEIDO_PROMPT_CURSOR_ALPHA_TIMER--; + if (R_KALEIDO_PROMPT_CURSOR_ALPHA_TIMER == 0) { + R_KALEIDO_PROMPT_CURSOR_ALPHA = sKaleidoPromptCursorAlphaVals[R_KALEIDO_PROMPT_CURSOR_ALPHA_STATE]; + R_KALEIDO_PROMPT_CURSOR_ALPHA_TIMER = + R_KALEIDO_PROMPT_CURSOR_ALPHA_TIMER_BASE + R_KALEIDO_PROMPT_CURSOR_ALPHA_STATE; + R_KALEIDO_PROMPT_CURSOR_ALPHA_STATE ^= 1; } } } diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index 6becfde51b..505876aa2e 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -16,13 +16,13 @@ #include "terminal.h" #if !PLATFORM_GC -#define KALEIDO_COLOR_PROMPT_UNK_R 100 -#define KALEIDO_COLOR_PROMPT_UNK_G 100 -#define KALEIDO_COLOR_PROMPT_UNK_B 255 +#define KALEIDO_PROMPT_CURSOR_R 100 +#define KALEIDO_PROMPT_CURSOR_G 100 +#define KALEIDO_PROMPT_CURSOR_B 255 #else -#define KALEIDO_COLOR_PROMPT_UNK_R 100 -#define KALEIDO_COLOR_PROMPT_UNK_G 255 -#define KALEIDO_COLOR_PROMPT_UNK_B 100 +#define KALEIDO_PROMPT_CURSOR_R 100 +#define KALEIDO_PROMPT_CURSOR_G 255 +#define KALEIDO_PROMPT_CURSOR_B 100 #endif #if !PLATFORM_GC @@ -44,12 +44,12 @@ typedef enum { /* 5 */ VTX_PAGE_PROMPT } VtxPageInit; -#define VTX_PAGE_ITEM_QUADS 0 // VTX_PAGE_ITEM -#define VTX_PAGE_EQUIP_QUADS 0 // VTX_PAGE_EQUIP -#define VTX_PAGE_MAP_DUNGEON_QUADS 17 // VTX_PAGE_MAP_DUNGEON -#define VTX_PAGE_QUEST_QUADS 0 // VTX_PAGE_QUEST -#define VTX_PAGE_MAP_WORLD_QUADS 32 // VTX_PAGE_MAP_WORLD -#define VTX_PAGE_PROMPT_QUADS 5 // VTX_PAGE_PROMPT +#define VTX_PAGE_ITEM_QUADS 0 // VTX_PAGE_ITEM +#define VTX_PAGE_EQUIP_QUADS 0 // VTX_PAGE_EQUIP +#define VTX_PAGE_MAP_DUNGEON_QUADS 17 // VTX_PAGE_MAP_DUNGEON +#define VTX_PAGE_QUEST_QUADS 0 // VTX_PAGE_QUEST +#define VTX_PAGE_MAP_WORLD_QUADS 32 // VTX_PAGE_MAP_WORLD +#define VTX_PAGE_PROMPT_QUADS PROMPT_QUAD_MAX // VTX_PAGE_PROMPT #if OOT_NTSC @@ -551,22 +551,22 @@ static void* sSavePromptBgQuadsTexs[] = { #endif s16 gVtxPageMapWorldQuadsWidth[VTX_PAGE_MAP_WORLD_QUADS] = { - 32, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW - 112, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD - 32, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH - 48, // QUAD_MAP_WORLD_CLOUDS_MARKET - 32, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE - 32, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE - 32, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD - 48, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL - 32, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY - 64, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER - 32, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN - 48, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN - 48, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY - 48, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS - 48, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS - 64, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA + 32, // WORLD_MAP_QUAD_CLOUDS_SACRED_FOREST_MEADOW + 112, // WORLD_MAP_QUAD_CLOUDS_HYRULE_FIELD + 32, // WORLD_MAP_QUAD_CLOUDS_LON_LON_RANCH + 48, // WORLD_MAP_QUAD_CLOUDS_MARKET + 32, // WORLD_MAP_QUAD_CLOUDS_HYRULE_CASTLE + 32, // WORLD_MAP_QUAD_CLOUDS_KAKARIKO_VILLAGE + 32, // WORLD_MAP_QUAD_CLOUDS_GRAVEYARD + 48, // WORLD_MAP_QUAD_CLOUDS_DEATH_MOUNTAIN_TRAIL + 32, // WORLD_MAP_QUAD_CLOUDS_GORON_CITY + 64, // WORLD_MAP_QUAD_CLOUDS_ZORAS_RIVER + 32, // WORLD_MAP_QUAD_CLOUDS_ZORAS_DOMAIN + 48, // WORLD_MAP_QUAD_CLOUDS_ZORAS_FOUNTAIN + 48, // WORLD_MAP_QUAD_CLOUDS_GERUDO_VALLEY + 48, // WORLD_MAP_QUAD_CLOUDS_GERUDOS_FORTRESS + 48, // WORLD_MAP_QUAD_CLOUDS_DESERT_COLOSSUS + 64, // WORLD_MAP_QUAD_CLOUDS_LAKE_HYLIA 8, // WORLD_MAP_POINT_HAUNTED_WASTELAND 8, // WORLD_MAP_POINT_GERUDOS_FORTRESS 8, // WORLD_MAP_POINT_GERUDO_VALLEY @@ -579,29 +579,29 @@ s16 gVtxPageMapWorldQuadsWidth[VTX_PAGE_MAP_WORLD_QUADS] = { 8, // WORLD_MAP_POINT_LOST_WOODS 8, // WORLD_MAP_POINT_KOKIRI_FOREST 8, // WORLD_MAP_POINT_ZORAS_DOMAIN - 8, // QUAD_MAP_28 - 8, // QUAD_MAP_TRADE_QUEST_MARKER - 80, // QUAD_MAP_30 - 64, // QUAD_MAP_31 + 8, // WORLD_MAP_QUAD_28 + 8, // WORLD_MAP_QUAD_TRADE_QUEST_MARKER + 80, // WORLD_MAP_QUAD_30 + 64, // WORLD_MAP_QUAD_31 }; s16 gVtxPageMapWorldQuadsHeight[VTX_PAGE_MAP_WORLD_QUADS] = { - 24, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW - 72, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD - 13, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH - 22, // QUAD_MAP_WORLD_CLOUDS_MARKET - 19, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE - 20, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE - 19, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD - 27, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL - 14, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY - 26, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER - 22, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN - 21, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN - 49, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY - 32, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS - 45, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS - 60, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA + 24, // WORLD_MAP_QUAD_CLOUDS_SACRED_FOREST_MEADOW + 72, // WORLD_MAP_QUAD_CLOUDS_HYRULE_FIELD + 13, // WORLD_MAP_QUAD_CLOUDS_LON_LON_RANCH + 22, // WORLD_MAP_QUAD_CLOUDS_MARKET + 19, // WORLD_MAP_QUAD_CLOUDS_HYRULE_CASTLE + 20, // WORLD_MAP_QUAD_CLOUDS_KAKARIKO_VILLAGE + 19, // WORLD_MAP_QUAD_CLOUDS_GRAVEYARD + 27, // WORLD_MAP_QUAD_CLOUDS_DEATH_MOUNTAIN_TRAIL + 14, // WORLD_MAP_QUAD_CLOUDS_GORON_CITY + 26, // WORLD_MAP_QUAD_CLOUDS_ZORAS_RIVER + 22, // WORLD_MAP_QUAD_CLOUDS_ZORAS_DOMAIN + 21, // WORLD_MAP_QUAD_CLOUDS_ZORAS_FOUNTAIN + 49, // WORLD_MAP_QUAD_CLOUDS_GERUDO_VALLEY + 32, // WORLD_MAP_QUAD_CLOUDS_GERUDOS_FORTRESS + 45, // WORLD_MAP_QUAD_CLOUDS_DESERT_COLOSSUS + 60, // WORLD_MAP_QUAD_CLOUDS_LAKE_HYLIA 8, // WORLD_MAP_POINT_HAUNTED_WASTELAND 8, // WORLD_MAP_POINT_GERUDOS_FORTRESS 8, // WORLD_MAP_POINT_GERUDO_VALLEY @@ -614,10 +614,10 @@ s16 gVtxPageMapWorldQuadsHeight[VTX_PAGE_MAP_WORLD_QUADS] = { 8, // WORLD_MAP_POINT_LOST_WOODS 8, // WORLD_MAP_POINT_KOKIRI_FOREST 8, // WORLD_MAP_POINT_ZORAS_DOMAIN - 8, // QUAD_MAP_28 - 16, // QUAD_MAP_TRADE_QUEST_MARKER - 32, // QUAD_MAP_30 - 8, // QUAD_MAP_31 + 8, // WORLD_MAP_QUAD_28 + 16, // WORLD_MAP_QUAD_TRADE_QUEST_MARKER + 32, // WORLD_MAP_QUAD_30 + 8, // WORLD_MAP_QUAD_31 }; /** @@ -867,10 +867,10 @@ u8 gAreaGsFlags[] = { }; static void* sCursorTexs[] = { - gPauseMenuCursorTopLeftTex, // PAUSE_QUAD_CURSOR_TL - gPauseMenuCursorTopRightTex, // PAUSE_QUAD_CURSOR_TR - gPauseMenuCursorBottomLeftTex, // PAUSE_QUAD_CURSOR_BL - gPauseMenuCursorBottomRightTex, // PAUSE_QUAD_CURSOR_BR + gPauseMenuCursorTopLeftTex, // PAUSE_CURSOR_QUAD_TL + gPauseMenuCursorTopRightTex, // PAUSE_CURSOR_QUAD_TR + gPauseMenuCursorBottomLeftTex, // PAUSE_CURSOR_QUAD_BL + gPauseMenuCursorBottomRightTex, // PAUSE_CURSOR_QUAD_BR }; static s16 sCursorColors[][3] = { @@ -879,7 +879,7 @@ static s16 sCursorColors[][3] = { { KALEIDO_COLOR_CURSOR_UNK_R, KALEIDO_COLOR_CURSOR_UNK_G, KALEIDO_COLOR_CURSOR_UNK_B }, }; -static void* sSavePromptTexs[] = +static void* sSavePromptMessageTexs[] = LANGUAGE_ARRAY(gPauseSavePromptJPNTex, gPauseSavePromptENGTex, gPauseSavePromptGERTex, gPauseSavePromptFRATex); static void* sSaveConfirmationTexs[] = LANGUAGE_ARRAY(gPauseSaveConfirmationJPNTex, gPauseSaveConfirmationENGTex, @@ -1124,7 +1124,7 @@ void KaleidoScope_DrawCursor(PlayState* play, u16 pageIndex) { if (pauseCtx->pageIndex == pageIndex) { - // Draw PAUSE_QUAD_CURSOR_TL, PAUSE_QUAD_CURSOR_TR, PAUSE_QUAD_CURSOR_BL, PAUSE_QUAD_CURSOR_BR + // Draw PAUSE_CURSOR_QUAD_TL, PAUSE_CURSOR_QUAD_TR, PAUSE_CURSOR_QUAD_BL, PAUSE_CURSOR_QUAD_BR gDPPipeSync(POLY_OPA_DISP++); gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, @@ -1511,27 +1511,31 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, gfxCtx, "../z_kaleido_scope_PAL.c", 1424); if (IS_PAUSE_STATE_GAMEOVER(pauseCtx)) { - POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->saveVtx, sGameOverTexs); + POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->promptPageVtx, sGameOverTexs); } else { // PAUSE_STATE_SAVE_PROMPT POLY_OPA_DISP = - KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->saveVtx, SAVE_TEXS(gSaveContext.language)); + KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->promptPageVtx, SAVE_TEXS(gSaveContext.language)); } - gSPVertex(POLY_OPA_DISP++, &pauseCtx->saveVtx[60], 32, 0); + //! @bug Loads 32 vertices, but there are only 20 to load + gSPVertex(POLY_OPA_DISP++, &pauseCtx->promptPageVtx[PAGE_BG_QUADS * 4], 32, 0); - if (((pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) && (pauseCtx->unk_1EC < 4)) || + if (((pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) && + (pauseCtx->savePromptState < PAUSE_SAVE_PROMPT_STATE_SAVED)) || (pauseCtx->state == PAUSE_STATE_14)) { - POLY_OPA_DISP = - KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sSavePromptTexs[gSaveContext.language], 152, 16, 0); + POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sSavePromptMessageTexs[gSaveContext.language], + 152, 16, PROMPT_QUAD_MESSAGE * 4); gDPSetCombineLERP(POLY_OPA_DISP++, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0); - gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, KALEIDO_COLOR_PROMPT_UNK_R, KALEIDO_COLOR_PROMPT_UNK_G, - KALEIDO_COLOR_PROMPT_UNK_B, VREG(61)); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, KALEIDO_PROMPT_CURSOR_R, KALEIDO_PROMPT_CURSOR_G, + KALEIDO_PROMPT_CURSOR_B, R_KALEIDO_PROMPT_CURSOR_ALPHA); if (pauseCtx->promptChoice == 0) { + // PROMPT_QUAD_CURSOR_LEFT gSPDisplayList(POLY_OPA_DISP++, gPromptCursorLeftDL); } else { + // PROMPT_QUAD_CURSOR_RIGHT gSPDisplayList(POLY_OPA_DISP++, gPromptCursorRightDL); } @@ -1539,29 +1543,32 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA, G_CC_MODULATEIA); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha); - POLY_OPA_DISP = - KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sPromptChoiceTexs[gSaveContext.language][0], 48, 16, 12); + POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sPromptChoiceTexs[gSaveContext.language][0], 48, + 16, PROMPT_QUAD_CHOICE_YES * 4); - POLY_OPA_DISP = - KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sPromptChoiceTexs[gSaveContext.language][1], 48, 16, 16); - } else if (((pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) && (pauseCtx->unk_1EC >= 4)) || + POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sPromptChoiceTexs[gSaveContext.language][1], 48, + 16, PROMPT_QUAD_CHOICE_NO * 4); + } else if (((pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) && + (pauseCtx->savePromptState >= PAUSE_SAVE_PROMPT_STATE_SAVED)) || pauseCtx->state == PAUSE_STATE_15) { #if PLATFORM_N64 - POLY_OPA_DISP = - KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sSaveConfirmationTexs[gSaveContext.language], 152, 16, 0); + POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sSaveConfirmationTexs[gSaveContext.language], + 152, 16, PROMPT_QUAD_MESSAGE * 4); #endif } else if (((pauseCtx->state == PAUSE_STATE_16) || (pauseCtx->state == PAUSE_STATE_17))) { - POLY_OPA_DISP = - KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sContinuePromptTexs[gSaveContext.language], 152, 16, 0); + POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sContinuePromptTexs[gSaveContext.language], 152, + 16, PROMPT_QUAD_MESSAGE * 4); gDPSetCombineLERP(POLY_OPA_DISP++, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0); - gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, KALEIDO_COLOR_PROMPT_UNK_R, KALEIDO_COLOR_PROMPT_UNK_G, - KALEIDO_COLOR_PROMPT_UNK_B, VREG(61)); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, KALEIDO_PROMPT_CURSOR_R, KALEIDO_PROMPT_CURSOR_G, + KALEIDO_PROMPT_CURSOR_B, R_KALEIDO_PROMPT_CURSOR_ALPHA); if (pauseCtx->promptChoice == 0) { + // PROMPT_QUAD_CURSOR_LEFT gSPDisplayList(POLY_OPA_DISP++, gPromptCursorLeftDL); } else { + // PROMPT_QUAD_CURSOR_RIGHT gSPDisplayList(POLY_OPA_DISP++, gPromptCursorRightDL); } @@ -1569,11 +1576,11 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA, G_CC_MODULATEIA); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha); - POLY_OPA_DISP = - KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sPromptChoiceTexs[gSaveContext.language][0], 48, 16, 12); + POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sPromptChoiceTexs[gSaveContext.language][0], 48, + 16, PROMPT_QUAD_CHOICE_YES * 4); - POLY_OPA_DISP = - KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sPromptChoiceTexs[gSaveContext.language][1], 48, 16, 16); + POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sPromptChoiceTexs[gSaveContext.language][1], 48, + 16, PROMPT_QUAD_CHOICE_NO * 4); } gDPPipeSync(POLY_OPA_DISP++); @@ -2188,22 +2195,22 @@ static s16 sVtxPageMapDungeonQuadsX[VTX_PAGE_MAP_DUNGEON_QUADS] = { }; static s16 sVtxPageQuestQuadsX[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 }; static s16 sVtxPageMapWorldQuadsX[VTX_PAGE_MAP_WORLD_QUADS] = { - 47, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW - -49, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD - -17, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH - -15, // QUAD_MAP_WORLD_CLOUDS_MARKET - -9, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE - 24, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE - 43, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD - 14, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL - 9, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY - 38, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER - 82, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN - 71, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN - -76, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY - -87, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS - -108, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS - -54, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA + 47, // WORLD_MAP_QUAD_CLOUDS_SACRED_FOREST_MEADOW + -49, // WORLD_MAP_QUAD_CLOUDS_HYRULE_FIELD + -17, // WORLD_MAP_QUAD_CLOUDS_LON_LON_RANCH + -15, // WORLD_MAP_QUAD_CLOUDS_MARKET + -9, // WORLD_MAP_QUAD_CLOUDS_HYRULE_CASTLE + 24, // WORLD_MAP_QUAD_CLOUDS_KAKARIKO_VILLAGE + 43, // WORLD_MAP_QUAD_CLOUDS_GRAVEYARD + 14, // WORLD_MAP_QUAD_CLOUDS_DEATH_MOUNTAIN_TRAIL + 9, // WORLD_MAP_QUAD_CLOUDS_GORON_CITY + 38, // WORLD_MAP_QUAD_CLOUDS_ZORAS_RIVER + 82, // WORLD_MAP_QUAD_CLOUDS_ZORAS_DOMAIN + 71, // WORLD_MAP_QUAD_CLOUDS_ZORAS_FOUNTAIN + -76, // WORLD_MAP_QUAD_CLOUDS_GERUDO_VALLEY + -87, // WORLD_MAP_QUAD_CLOUDS_GERUDOS_FORTRESS + -108, // WORLD_MAP_QUAD_CLOUDS_DESERT_COLOSSUS + -54, // WORLD_MAP_QUAD_CLOUDS_LAKE_HYLIA -93, // WORLD_MAP_POINT_HAUNTED_WASTELAND -67, // WORLD_MAP_POINT_GERUDOS_FORTRESS -56, // WORLD_MAP_POINT_GERUDO_VALLEY @@ -2216,13 +2223,17 @@ static s16 sVtxPageMapWorldQuadsX[VTX_PAGE_MAP_WORLD_QUADS] = { 58, // WORLD_MAP_POINT_LOST_WOODS 74, // WORLD_MAP_POINT_KOKIRI_FOREST 89, // WORLD_MAP_POINT_ZORAS_DOMAIN - 0, // QUAD_MAP_28 - -58, // QUAD_MAP_TRADE_QUEST_MARKER - 19, // QUAD_MAP_30 - 28, // QUAD_MAP_31 + 0, // WORLD_MAP_QUAD_28 + -58, // WORLD_MAP_QUAD_TRADE_QUEST_MARKER + 19, // WORLD_MAP_QUAD_30 + 28, // WORLD_MAP_QUAD_31 }; static s16 sVtxPagePromptQuadsX[VTX_PAGE_PROMPT_QUADS] = { - 0xFFB4, 0xFFC6, 0x000A, 0xFFC6, 0x000A, + -76, // PROMPT_QUAD_MESSAGE + -58, // PROMPT_QUAD_CURSOR_LEFT + 10, // PROMPT_QUAD_CURSOR_RIGHT + -58, // PROMPT_QUAD_CHOICE_YES + 10, // PROMPT_QUAD_CHOICE_NO }; static s16 sVtxPageItemQuadsWidth[CLAMP_MIN(VTX_PAGE_ITEM_QUADS, 1)] = { 0 }; static s16 sVtxPageEquipQuadsWidth[CLAMP_MIN(VTX_PAGE_EQUIP_QUADS, 1)] = { 0 }; @@ -2232,7 +2243,11 @@ static s16 sVtxPageMapDungeonQuadsWidth[VTX_PAGE_MAP_DUNGEON_QUADS] = { }; static s16 sVtxPageQuestQuadsWidth[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 }; static s16 sVtxPagePromptQuadsWidth[VTX_PAGE_PROMPT_QUADS] = { - 0x0098, 0x0030, 0x0030, 0x0030, 0x0030, + 152, // PROMPT_QUAD_MESSAGE + 48, // PROMPT_QUAD_CURSOR_LEFT + 48, // PROMPT_QUAD_CURSOR_RIGHT + 48, // PROMPT_QUAD_CHOICE_YES + 48, // PROMPT_QUAD_CHOICE_NO }; static s16 sVtxPageItemQuadsY[CLAMP_MIN(VTX_PAGE_ITEM_QUADS, 1)] = { 0 }; static s16 sVtxPageEquipQuadsY[CLAMP_MIN(VTX_PAGE_EQUIP_QUADS, 1)] = { 0 }; @@ -2242,22 +2257,22 @@ static s16 sVtxPageMapDungeonQuadsY[VTX_PAGE_MAP_DUNGEON_QUADS] = { }; static s16 sVtxPageQuestQuadsY[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 }; static s16 sVtxPageMapWorldQuadsY[VTX_PAGE_MAP_WORLD_QUADS] = { - 15, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW - 40, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD - 11, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH - 45, // QUAD_MAP_WORLD_CLOUDS_MARKET - 52, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE - 37, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE - 36, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD - 57, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL - 54, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY - 33, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER - 31, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN - 45, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN - 32, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY - 42, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS - 49, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS - -10, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA + 15, // WORLD_MAP_QUAD_CLOUDS_SACRED_FOREST_MEADOW + 40, // WORLD_MAP_QUAD_CLOUDS_HYRULE_FIELD + 11, // WORLD_MAP_QUAD_CLOUDS_LON_LON_RANCH + 45, // WORLD_MAP_QUAD_CLOUDS_MARKET + 52, // WORLD_MAP_QUAD_CLOUDS_HYRULE_CASTLE + 37, // WORLD_MAP_QUAD_CLOUDS_KAKARIKO_VILLAGE + 36, // WORLD_MAP_QUAD_CLOUDS_GRAVEYARD + 57, // WORLD_MAP_QUAD_CLOUDS_DEATH_MOUNTAIN_TRAIL + 54, // WORLD_MAP_QUAD_CLOUDS_GORON_CITY + 33, // WORLD_MAP_QUAD_CLOUDS_ZORAS_RIVER + 31, // WORLD_MAP_QUAD_CLOUDS_ZORAS_DOMAIN + 45, // WORLD_MAP_QUAD_CLOUDS_ZORAS_FOUNTAIN + 32, // WORLD_MAP_QUAD_CLOUDS_GERUDO_VALLEY + 42, // WORLD_MAP_QUAD_CLOUDS_GERUDOS_FORTRESS + 49, // WORLD_MAP_QUAD_CLOUDS_DESERT_COLOSSUS + -10, // WORLD_MAP_QUAD_CLOUDS_LAKE_HYLIA 31, // WORLD_MAP_POINT_HAUNTED_WASTELAND 27, // WORLD_MAP_POINT_GERUDOS_FORTRESS 15, // WORLD_MAP_POINT_GERUDO_VALLEY @@ -2270,13 +2285,17 @@ static s16 sVtxPageMapWorldQuadsY[VTX_PAGE_MAP_WORLD_QUADS] = { 1, // WORLD_MAP_POINT_LOST_WOODS -9, // WORLD_MAP_POINT_KOKIRI_FOREST 25, // WORLD_MAP_POINT_ZORAS_DOMAIN - 0, // QUAD_MAP_28 - 1, // QUAD_MAP_TRADE_QUEST_MARKER - -32, // QUAD_MAP_30 - -26, // QUAD_MAP_31 + 0, // WORLD_MAP_QUAD_28 + 1, // WORLD_MAP_QUAD_TRADE_QUEST_MARKER + -32, // WORLD_MAP_QUAD_30 + -26, // WORLD_MAP_QUAD_31 }; static s16 sVtxPagePromptQuadsY[VTX_PAGE_PROMPT_QUADS] = { - 0x0024, 0x000A, 0x000A, 0xFFFA, 0xFFFA, + 36, // PROMPT_QUAD_MESSAGE + 10, // PROMPT_QUAD_CURSOR_LEFT + 10, // PROMPT_QUAD_CURSOR_RIGHT + -6, // PROMPT_QUAD_CHOICE_YES + -6, // PROMPT_QUAD_CHOICE_NO }; static s16 sVtxPageItemQuadsHeight[CLAMP_MIN(VTX_PAGE_ITEM_QUADS, 1)] = { 0 }; static s16 sVtxPageEquipQuadsHeight[CLAMP_MIN(VTX_PAGE_EQUIP_QUADS, 1)] = { 0 }; @@ -2286,7 +2305,11 @@ static s16 sVtxPageMapDungeonQuadsHeight[VTX_PAGE_MAP_DUNGEON_QUADS] = { }; static s16 sVtxPageQuestQuadsHeight[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 }; static s16 sVtxPagePromptQuadsHeight[VTX_PAGE_PROMPT_QUADS] = { - 0x0010, 0x0030, 0x0030, 0x0010, 0x0010, + 16, // PROMPT_QUAD_MESSAGE + 48, // PROMPT_QUAD_CURSOR_LEFT + 48, // PROMPT_QUAD_CURSOR_RIGHT + 16, // PROMPT_QUAD_CHOICE_YES + 16, // PROMPT_QUAD_CHOICE_NO }; static s16* sVtxPageQuadsX[] = { @@ -2566,8 +2589,8 @@ s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 num sTradeQuestMarkerBobTimer--; } - j = bufIAfterPageSections + ((QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->tradeQuestMarker) * 4); - i = bufIAfterPageSections + (QUAD_MAP_TRADE_QUEST_MARKER * 4); + j = bufIAfterPageSections + ((WORLD_MAP_QUAD_POINT_FIRST + pauseCtx->tradeQuestMarker) * 4); + i = bufIAfterPageSections + (WORLD_MAP_QUAD_TRADE_QUEST_MARKER * 4); vtx[i + 0].v.ob[0] = vtx[i + 2].v.ob[0] = vtx[j + 0].v.ob[0]; @@ -2632,7 +2655,9 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->offsetY = 0; if ((pauseCtx->state == PAUSE_STATE_OPENING_1) || (pauseCtx->state >= PAUSE_STATE_CLOSING) || - ((pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) && ((pauseCtx->unk_1EC == 2) || (pauseCtx->unk_1EC == 5))) || + ((pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) && + ((pauseCtx->savePromptState == PAUSE_SAVE_PROMPT_STATE_CLOSING) || + (pauseCtx->savePromptState == PAUSE_SAVE_PROMPT_STATE_CLOSING_AFTER_SAVED))) || ((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state <= PAUSE_STATE_13))) { pauseCtx->offsetY = 80; } @@ -2698,9 +2723,9 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->questPageVtx = GRAPH_ALLOC(gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_QUEST_QUADS) * 4) * sizeof(Vtx)); KaleidoScope_SetPageVertices(play, pauseCtx->questPageVtx, VTX_PAGE_QUEST, VTX_PAGE_QUEST_QUADS); - pauseCtx->cursorVtx = GRAPH_ALLOC(gfxCtx, PAUSE_QUAD_CURSOR_MAX * 4 * sizeof(Vtx)); + pauseCtx->cursorVtx = GRAPH_ALLOC(gfxCtx, PAUSE_CURSOR_QUAD_MAX * 4 * sizeof(Vtx)); - for (i = 0; i < (PAUSE_QUAD_CURSOR_MAX * 4); i++) { + for (i = 0; i < (PAUSE_CURSOR_QUAD_MAX * 4); i++) { pauseCtx->cursorVtx[i].v.ob[0] = pauseCtx->cursorVtx[i].v.ob[1] = pauseCtx->cursorVtx[i].v.ob[2] = 0; pauseCtx->cursorVtx[i].v.flag = 0; @@ -2711,19 +2736,19 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorVtx[i].v.cn[3] = 255; } - // PAUSE_QUAD_CURSOR_TL + // PAUSE_CURSOR_QUAD_TL pauseCtx->cursorVtx[1].v.tc[0] = pauseCtx->cursorVtx[2].v.tc[1] = pauseCtx->cursorVtx[3].v.tc[0] = pauseCtx->cursorVtx[3].v.tc[1] - // PAUSE_QUAD_CURSOR_TR + // PAUSE_CURSOR_QUAD_TR = pauseCtx->cursorVtx[5].v.tc[0] = pauseCtx->cursorVtx[6].v.tc[1] = pauseCtx->cursorVtx[7].v.tc[0] = pauseCtx->cursorVtx[7].v.tc[1] - // PAUSE_QUAD_CURSOR_BL + // PAUSE_CURSOR_QUAD_BL = pauseCtx->cursorVtx[9].v.tc[0] = pauseCtx->cursorVtx[10].v.tc[1] = pauseCtx->cursorVtx[11].v.tc[0] = pauseCtx->cursorVtx[11].v.tc[1] - // PAUSE_QUAD_CURSOR_BR + // PAUSE_CURSOR_QUAD_BR = pauseCtx->cursorVtx[13].v.tc[0] = pauseCtx->cursorVtx[14].v.tc[1] = pauseCtx->cursorVtx[15].v.tc[0] = pauseCtx->cursorVtx[15].v.tc[1] = 16 * (1 << 5); - // PAUSE_QUAD_CURSOR_4 + // PAUSE_CURSOR_QUAD_4 pauseCtx->cursorVtx[17].v.tc[0] = pauseCtx->cursorVtx[18].v.tc[1] = pauseCtx->cursorVtx[19].v.tc[0] = pauseCtx->cursorVtx[19].v.tc[1] = 32 * (1 << 5); @@ -3041,8 +3066,8 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->infoPanelVtx = GRAPH_ALLOC(gfxCtx, 28 * sizeof(Vtx)); - pauseCtx->saveVtx = GRAPH_ALLOC(gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_PROMPT_QUADS) * 4) * sizeof(Vtx)); - KaleidoScope_SetPageVertices(play, pauseCtx->saveVtx, VTX_PAGE_PROMPT, VTX_PAGE_PROMPT_QUADS); + pauseCtx->promptPageVtx = GRAPH_ALLOC(gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_PROMPT_QUADS) * 4) * sizeof(Vtx)); + KaleidoScope_SetPageVertices(play, pauseCtx->promptPageVtx, VTX_PAGE_PROMPT, VTX_PAGE_PROMPT_QUADS); } void KaleidoScope_DrawGameOver(PlayState* play) { @@ -3256,27 +3281,27 @@ void KaleidoScope_UpdateCursorVtx(PlayState* play) { // Move the quads according to the offsets set above, // and the position of the cursor in `pauseCtx->cursorVtx[0].v.ob` - // (see `KaleidoScope_SetCursorPos` and other `PAUSE_QUAD_CURSOR_TL` uses) + // (see `KaleidoScope_SetCursorPos` and other `PAUSE_CURSOR_QUAD_TL` uses) - // PAUSE_QUAD_CURSOR_TL + // PAUSE_CURSOR_QUAD_TL pauseCtx->cursorVtx[0].v.ob[0] = pauseCtx->cursorVtx[2].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + tlOffsetX; pauseCtx->cursorVtx[1].v.ob[0] = pauseCtx->cursorVtx[3].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + 16; pauseCtx->cursorVtx[0].v.ob[1] = pauseCtx->cursorVtx[1].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] + tlOffsetY; pauseCtx->cursorVtx[2].v.ob[1] = pauseCtx->cursorVtx[3].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] - 16; - // PAUSE_QUAD_CURSOR_TR + // PAUSE_CURSOR_QUAD_TR pauseCtx->cursorVtx[4].v.ob[0] = pauseCtx->cursorVtx[6].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + rightOffsetX; pauseCtx->cursorVtx[5].v.ob[0] = pauseCtx->cursorVtx[7].v.ob[0] = pauseCtx->cursorVtx[4].v.ob[0] + 16; pauseCtx->cursorVtx[4].v.ob[1] = pauseCtx->cursorVtx[5].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1]; pauseCtx->cursorVtx[6].v.ob[1] = pauseCtx->cursorVtx[7].v.ob[1] = pauseCtx->cursorVtx[4].v.ob[1] - 16; - // PAUSE_QUAD_CURSOR_BL + // PAUSE_CURSOR_QUAD_BL pauseCtx->cursorVtx[8].v.ob[0] = pauseCtx->cursorVtx[10].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0]; pauseCtx->cursorVtx[9].v.ob[0] = pauseCtx->cursorVtx[11].v.ob[0] = pauseCtx->cursorVtx[8].v.ob[0] + 16; pauseCtx->cursorVtx[8].v.ob[1] = pauseCtx->cursorVtx[9].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] - bottomOffsetY; pauseCtx->cursorVtx[10].v.ob[1] = pauseCtx->cursorVtx[11].v.ob[1] = pauseCtx->cursorVtx[8].v.ob[1] - 16; - // PAUSE_QUAD_CURSOR_BR + // PAUSE_CURSOR_QUAD_BR pauseCtx->cursorVtx[12].v.ob[0] = pauseCtx->cursorVtx[14].v.ob[0] = pauseCtx->cursorVtx[0].v.ob[0] + rightOffsetX; pauseCtx->cursorVtx[13].v.ob[0] = pauseCtx->cursorVtx[15].v.ob[0] = pauseCtx->cursorVtx[12].v.ob[0] + 16; pauseCtx->cursorVtx[12].v.ob[1] = pauseCtx->cursorVtx[13].v.ob[1] = pauseCtx->cursorVtx[0].v.ob[1] - bottomOffsetY; @@ -3794,7 +3819,7 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.buttonStatus[4] = BTN_ENABLED; gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE; Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL); - pauseCtx->unk_1EC = 0; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_APPEARING; pauseCtx->state = PAUSE_STATE_SAVE_PROMPT; } break; @@ -3841,7 +3866,7 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.buttonStatus[4] = BTN_ENABLED; gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE; Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL); - pauseCtx->unk_1EC = 0; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_APPEARING; pauseCtx->state = PAUSE_STATE_SAVE_PROMPT; } else if (pauseCtx->ocarinaStaff->state == pauseCtx->ocarinaSongIdx) { Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, @@ -3891,7 +3916,7 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.buttonStatus[4] = BTN_ENABLED; gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE; Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL); - pauseCtx->unk_1EC = 0; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_APPEARING; pauseCtx->state = PAUSE_STATE_SAVE_PROMPT; } break; @@ -3906,18 +3931,18 @@ void KaleidoScope_Update(PlayState* play) { break; case PAUSE_STATE_SAVE_PROMPT: - switch (pauseCtx->unk_1EC) { - case 0: + switch (pauseCtx->savePromptState) { + case PAUSE_SAVE_PROMPT_STATE_APPEARING: pauseCtx->unk_204 -= 314.0f / WREG(6); WREG(16) -= WREG(25) / WREG(6); WREG(17) -= WREG(26) / WREG(6); if (pauseCtx->unk_204 <= -628.0f) { pauseCtx->unk_204 = -628.0f; - pauseCtx->unk_1EC = 1; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_WAIT_CHOICE; } break; - case 1: + case PAUSE_SAVE_PROMPT_STATE_WAIT_CHOICE: if (CHECK_BTN_ALL(input->press.button, BTN_A)) { if (pauseCtx->promptChoice != 0) { Interface_SetDoAction(play, DO_ACTION_NONE); @@ -3925,7 +3950,7 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.buttonStatus[3] = BTN_ENABLED; gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE; Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL); - pauseCtx->unk_1EC = 2; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_CLOSING; WREG(2) = -6240; YREG(8) = pauseCtx->unk_204; func_800F64E0(0); @@ -3939,7 +3964,7 @@ void KaleidoScope_Update(PlayState* play) { Play_SaveSceneFlags(play); gSaveContext.save.info.playerData.savedSceneId = play->sceneId; Sram_WriteSave(&play->sramCtx); - pauseCtx->unk_1EC = 4; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_SAVED; #if PLATFORM_N64 D_8082B25C = 90; #else @@ -3949,7 +3974,7 @@ void KaleidoScope_Update(PlayState* play) { } else if (CHECK_BTN_ALL(input->press.button, BTN_START) || CHECK_BTN_ALL(input->press.button, BTN_B)) { Interface_SetDoAction(play, DO_ACTION_NONE); - pauseCtx->unk_1EC = 2; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_CLOSING; WREG(2) = -6240; YREG(8) = pauseCtx->unk_204; func_800F64E0(0); @@ -3963,7 +3988,7 @@ void KaleidoScope_Update(PlayState* play) { } break; - case 4: + case PAUSE_SAVE_PROMPT_STATE_SAVED: if (CHECK_BTN_ALL(input->press.button, BTN_B) || CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_START) || (--D_8082B25C == 0)) { Interface_SetDoAction(play, DO_ACTION_NONE); @@ -3971,28 +3996,28 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.buttonStatus[3] = BTN_ENABLED; gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE; Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL); - pauseCtx->unk_1EC = 5; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_CLOSING_AFTER_SAVED; WREG(2) = -6240; YREG(8) = pauseCtx->unk_204; func_800F64E0(0); } break; - case 3: - case 6: + case PAUSE_SAVE_PROMPT_STATE_RETURN_TO_MENU: + case PAUSE_SAVE_PROMPT_STATE_RETURN_TO_MENU_2: pauseCtx->unk_204 += 314.0f / WREG(6); WREG(16) += WREG(25) / WREG(6); WREG(17) += WREG(26) / WREG(6); if (pauseCtx->unk_204 >= -314.0f) { pauseCtx->state = PAUSE_STATE_MAIN; - pauseCtx->unk_1EC = 0; + pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_APPEARING; pauseCtx->unk_1F4 = pauseCtx->unk_1F8 = pauseCtx->unk_1FC = pauseCtx->unk_200 = 0.0f; pauseCtx->unk_204 = -314.0f; } break; - case 2: - case 5: + case PAUSE_SAVE_PROMPT_STATE_CLOSING: + case PAUSE_SAVE_PROMPT_STATE_CLOSING_AFTER_SAVED: if (pauseCtx->unk_204 != (YREG(8) + 160.0f)) { pauseCtx->unk_1F4 = pauseCtx->unk_1F8 = pauseCtx->unk_1FC = pauseCtx->unk_200 += 160.0f / WREG(6); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h index c0c65e5bea..aca4271853 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h @@ -42,33 +42,42 @@ extern u8 gAreaGsFlags[]; // Clouds quads cover undiscovered areas. // Point quads are location markers. They can also be highlighted as a hint of where to go. -typedef enum MapQuad { - /* 0 */ QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW, - /* 1 */ QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD, - /* 2 */ QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH, - /* 3 */ QUAD_MAP_WORLD_CLOUDS_MARKET, - /* 4 */ QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE, - /* 5 */ QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE, - /* 6 */ QUAD_MAP_WORLD_CLOUDS_GRAVEYARD, - /* 7 */ QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL, - /* 8 */ QUAD_MAP_WORLD_CLOUDS_GORON_CITY, - /* 9 */ QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER, - /* 10 */ QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN, - /* 11 */ QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN, - /* 12 */ QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY, - /* 13 */ QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS, - /* 14 */ QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS, - /* 15 */ QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA, - /* 16 */ QUAD_MAP_WORLD_POINT_FIRST, +typedef enum WorldMapQuad { + /* 0 */ WORLD_MAP_QUAD_CLOUDS_SACRED_FOREST_MEADOW, + /* 1 */ WORLD_MAP_QUAD_CLOUDS_HYRULE_FIELD, + /* 2 */ WORLD_MAP_QUAD_CLOUDS_LON_LON_RANCH, + /* 3 */ WORLD_MAP_QUAD_CLOUDS_MARKET, + /* 4 */ WORLD_MAP_QUAD_CLOUDS_HYRULE_CASTLE, + /* 5 */ WORLD_MAP_QUAD_CLOUDS_KAKARIKO_VILLAGE, + /* 6 */ WORLD_MAP_QUAD_CLOUDS_GRAVEYARD, + /* 7 */ WORLD_MAP_QUAD_CLOUDS_DEATH_MOUNTAIN_TRAIL, + /* 8 */ WORLD_MAP_QUAD_CLOUDS_GORON_CITY, + /* 9 */ WORLD_MAP_QUAD_CLOUDS_ZORAS_RIVER, + /* 10 */ WORLD_MAP_QUAD_CLOUDS_ZORAS_DOMAIN, + /* 11 */ WORLD_MAP_QUAD_CLOUDS_ZORAS_FOUNTAIN, + /* 12 */ WORLD_MAP_QUAD_CLOUDS_GERUDO_VALLEY, + /* 13 */ WORLD_MAP_QUAD_CLOUDS_GERUDOS_FORTRESS, + /* 14 */ WORLD_MAP_QUAD_CLOUDS_DESERT_COLOSSUS, + /* 15 */ WORLD_MAP_QUAD_CLOUDS_LAKE_HYLIA, + /* 16 */ WORLD_MAP_QUAD_POINT_FIRST, // 16 to 27 follows the `WorldMapPoint` enum - /* 27 */ QUAD_MAP_WORLD_POINT_LAST = QUAD_MAP_WORLD_POINT_FIRST + WORLD_MAP_POINT_MAX - 1, - /* 28 */ QUAD_MAP_28, - /* 29 */ QUAD_MAP_TRADE_QUEST_MARKER, - /* 30 */ QUAD_MAP_30, - /* 31 */ QUAD_MAP_31, - /* 32 */ QUAD_MAP_WORLD_IMAGE_FIRST, - /* 46 */ QUAD_MAP_WORLD_IMAGE_LAST = QUAD_MAP_WORLD_IMAGE_FIRST + WORLD_MAP_IMAGE_FRAG_NUM - 1 -} MapQuad; + /* 27 */ WORLD_MAP_QUAD_POINT_LAST = WORLD_MAP_QUAD_POINT_FIRST + WORLD_MAP_POINT_MAX - 1, + /* 28 */ WORLD_MAP_QUAD_28, + /* 29 */ WORLD_MAP_QUAD_TRADE_QUEST_MARKER, + /* 30 */ WORLD_MAP_QUAD_30, + /* 31 */ WORLD_MAP_QUAD_31, + /* 32 */ WORLD_MAP_QUAD_IMAGE_FIRST, + /* 46 */ WORLD_MAP_QUAD_IMAGE_LAST = WORLD_MAP_QUAD_IMAGE_FIRST + WORLD_MAP_IMAGE_FRAG_NUM - 1 +} WorldMapQuad; + +typedef enum PromptQuad { + /* 0 */ PROMPT_QUAD_MESSAGE, + /* 1 */ PROMPT_QUAD_CURSOR_LEFT, + /* 2 */ PROMPT_QUAD_CURSOR_RIGHT, + /* 3 */ PROMPT_QUAD_CHOICE_YES, + /* 4 */ PROMPT_QUAD_CHOICE_NO, + /* 5 */ PROMPT_QUAD_MAX +} PromptQuad; void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx); s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point); From f19331101321afb83c0d026c1b1a4df2b4cb4e6a Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Thu, 12 Sep 2024 03:18:46 +0200 Subject: [PATCH 70/86] Colliders: colType -> colMaterial (#2186) * colType -> colMaterial * fixups --- include/z64collision_check.h | 40 ++++++------- src/code/z_collision_check.c | 60 +++++++++---------- src/code/z_en_a_keep.c | 2 +- src/code/z_en_item00.c | 2 +- src/code/z_player_lib.c | 12 ++-- .../actors/ovl_Arms_Hook/z_arms_hook.c | 2 +- .../ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c | 2 +- .../ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c | 2 +- .../actors/ovl_Bg_Bombwall/z_bg_bombwall.c | 2 +- .../actors/ovl_Bg_Breakwall/z_bg_breakwall.c | 2 +- .../actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c | 2 +- .../actors/ovl_Bg_Dodoago/z_bg_dodoago.c | 4 +- .../ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c | 2 +- .../ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c | 4 +- .../actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c | 4 +- .../actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c | 4 +- .../actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c | 2 +- .../ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c | 2 +- .../ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c | 2 +- .../z_bg_hidan_firewall.c | 2 +- .../ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c | 2 +- .../ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c | 2 +- .../ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c | 2 +- .../z_bg_hidan_kowarerukabe.c | 2 +- .../ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c | 2 +- .../z_bg_hidan_rsekizou.c | 2 +- .../ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c | 2 +- .../ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c | 2 +- .../ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c | 4 +- .../ovl_Bg_Ice_Turara/z_bg_ice_turara.c | 2 +- .../ovl_Bg_Jya_1flift/z_bg_jya_1flift.c | 2 +- .../z_bg_jya_bombchuiwa.c | 2 +- .../ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c | 2 +- .../ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c | 2 +- .../ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c | 2 +- .../ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c | 2 +- .../ovl_Bg_Jya_Megami/z_bg_jya_megami.c | 2 +- .../ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c | 2 +- .../ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c | 8 +-- .../ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c | 2 +- .../actors/ovl_Bg_Po_Event/z_bg_po_event.c | 2 +- .../ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c | 2 +- .../z_bg_spot06_objects.c | 2 +- .../z_bg_spot08_bakudankabe.c | 2 +- .../z_bg_spot11_bakudankabe.c | 2 +- .../z_bg_spot16_bombstone.c | 4 +- .../ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c | 2 +- .../actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c | 2 +- .../ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c | 2 +- .../actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c | 2 +- .../z_boss_dodongo_data.inc.c | 2 +- .../actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c | 2 +- src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c | 4 +- .../ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c | 2 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 8 +-- .../ovl_Boss_Ganon2/z_boss_ganon2_data.inc.c | 4 +- .../ovl_Boss_Ganondrof/z_boss_ganondrof.c | 10 ++-- .../actors/ovl_Boss_Goma/z_boss_goma.c | 2 +- .../actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c | 4 +- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 6 +- .../ovl_Boss_Sst/z_boss_sst_colchk.inc.c | 8 +-- src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 14 ++--- src/overlays/actors/ovl_Boss_Va/z_boss_va.c | 8 +-- src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c | 6 +- src/overlays/actors/ovl_Demo_Im/z_demo_im.c | 2 +- .../actors/ovl_Demo_Kekkai/z_demo_kekkai.c | 2 +- src/overlays/actors/ovl_Door_Ana/z_door_ana.c | 2 +- .../actors/ovl_Door_Killer/z_door_killer.c | 4 +- src/overlays/actors/ovl_En_Am/z_en_am.c | 6 +- src/overlays/actors/ovl_En_Ani/z_en_ani.c | 2 +- .../actors/ovl_En_Anubice/z_en_anubice.c | 2 +- .../ovl_En_Anubice_Fire/z_en_anubice_fire.c | 2 +- src/overlays/actors/ovl_En_Arrow/z_en_arrow.c | 2 +- src/overlays/actors/ovl_En_Ba/z_en_ba.c | 2 +- src/overlays/actors/ovl_En_Bb/z_en_bb.c | 2 +- .../actors/ovl_En_Bigokuta/z_en_bigokuta.c | 6 +- src/overlays/actors/ovl_En_Bili/z_en_bili.c | 2 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 4 +- .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 2 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 4 +- src/overlays/actors/ovl_En_Boom/z_en_boom.c | 2 +- src/overlays/actors/ovl_En_Brob/z_en_brob.c | 2 +- .../actors/ovl_En_Bubble/z_en_bubble.c | 2 +- src/overlays/actors/ovl_En_Butte/z_en_butte.c | 2 +- src/overlays/actors/ovl_En_Bw/z_en_bw.c | 4 +- src/overlays/actors/ovl_En_Bx/z_en_bx.c | 4 +- .../actors/ovl_En_Clear_Tag/z_en_clear_tag.c | 4 +- src/overlays/actors/ovl_En_Cow/z_en_cow.c | 2 +- src/overlays/actors/ovl_En_Crow/z_en_crow.c | 2 +- src/overlays/actors/ovl_En_Cs/z_en_cs.c | 2 +- src/overlays/actors/ovl_En_Daiku/z_en_daiku.c | 2 +- .../z_en_daiku_kakariko.c | 2 +- .../actors/ovl_En_Dekubaba/z_en_dekubaba.c | 10 ++-- .../actors/ovl_En_Dekunuts/z_en_dekunuts.c | 2 +- src/overlays/actors/ovl_En_Dh/z_en_dh.c | 4 +- src/overlays/actors/ovl_En_Dha/z_en_dha.c | 2 +- .../ovl_En_Diving_Game/z_en_diving_game.c | 2 +- src/overlays/actors/ovl_En_Dns/z_en_dns.c | 2 +- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 2 +- .../actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c | 4 +- .../actors/ovl_En_Dodojr/z_en_dodojr.c | 2 +- .../actors/ovl_En_Dodongo/z_en_dodongo.c | 6 +- src/overlays/actors/ovl_En_Dog/z_en_dog.c | 2 +- src/overlays/actors/ovl_En_Du/z_en_du.c | 2 +- src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c | 2 +- src/overlays/actors/ovl_En_Fd/z_en_fd.c | 2 +- .../actors/ovl_En_Fd_Fire/z_en_fd_fire.c | 2 +- .../actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c | 2 +- .../actors/ovl_En_Fire_Rock/z_en_fire_rock.c | 4 +- .../actors/ovl_En_Firefly/z_en_firefly.c | 2 +- src/overlays/actors/ovl_En_Fish/z_en_fish.c | 2 +- .../actors/ovl_En_Floormas/z_en_floormas.c | 18 +++--- src/overlays/actors/ovl_En_Fu/z_en_fu.c | 2 +- src/overlays/actors/ovl_En_Fw/z_en_fw.c | 2 +- src/overlays/actors/ovl_En_Fz/z_en_fz.c | 6 +- .../actors/ovl_En_G_Switch/z_en_g_switch.c | 2 +- src/overlays/actors/ovl_En_Gb/z_en_gb.c | 8 +-- src/overlays/actors/ovl_En_Ge1/z_en_ge1.c | 2 +- src/overlays/actors/ovl_En_Ge2/z_en_ge2.c | 2 +- src/overlays/actors/ovl_En_Ge3/z_en_ge3.c | 2 +- src/overlays/actors/ovl_En_GeldB/z_en_geldb.c | 6 +- src/overlays/actors/ovl_En_Gm/z_en_gm.c | 2 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 2 +- src/overlays/actors/ovl_En_Go2/z_en_go2.c | 2 +- src/overlays/actors/ovl_En_Goma/z_en_goma.c | 4 +- .../actors/ovl_En_Goroiwa/z_en_goroiwa.c | 2 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 2 +- src/overlays/actors/ovl_En_Guest/z_en_guest.c | 2 +- src/overlays/actors/ovl_En_Hata/z_en_hata.c | 2 +- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 2 +- .../actors/ovl_En_Heishi3/z_en_heishi3.c | 2 +- .../actors/ovl_En_Heishi4/z_en_heishi4.c | 2 +- .../actors/ovl_En_Hintnuts/z_en_hintnuts.c | 2 +- .../actors/ovl_En_Honotrap/z_en_honotrap.c | 4 +- src/overlays/actors/ovl_En_Horse/z_en_horse.c | 6 +- .../ovl_En_Horse_Ganon/z_en_horse_ganon.c | 4 +- .../z_en_horse_link_child.c | 4 +- .../ovl_En_Horse_Normal/z_en_horse_normal.c | 6 +- .../ovl_En_Horse_Zelda/z_en_horse_zelda.c | 4 +- src/overlays/actors/ovl_En_Hs/z_en_hs.c | 2 +- src/overlays/actors/ovl_En_Hs2/z_en_hs2.c | 2 +- src/overlays/actors/ovl_En_Hy/z_en_hy.c | 2 +- .../actors/ovl_En_Ice_Hono/z_en_ice_hono.c | 4 +- src/overlays/actors/ovl_En_Ik/z_en_ik.c | 6 +- src/overlays/actors/ovl_En_In/z_en_in.c | 2 +- .../actors/ovl_En_Insect/z_en_insect.c | 2 +- src/overlays/actors/ovl_En_Ishi/z_en_ishi.c | 4 +- src/overlays/actors/ovl_En_It/z_en_it.c | 2 +- src/overlays/actors/ovl_En_Jj/z_en_jj.c | 2 +- src/overlays/actors/ovl_En_Js/z_en_js.c | 2 +- .../actors/ovl_En_Kakasi/z_en_kakasi.c | 2 +- .../actors/ovl_En_Kakasi2/z_en_kakasi2.c | 2 +- .../actors/ovl_En_Kakasi3/z_en_kakasi3.c | 2 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 2 +- .../actors/ovl_En_Karebaba/z_en_karebaba.c | 8 +-- src/overlays/actors/ovl_En_Ko/z_en_ko.c | 2 +- src/overlays/actors/ovl_En_Kusa/z_en_kusa.c | 2 +- src/overlays/actors/ovl_En_Kz/z_en_kz.c | 2 +- .../actors/ovl_En_M_Fire1/z_en_m_fire1.c | 2 +- .../actors/ovl_En_M_Thunder/z_en_m_thunder.c | 2 +- src/overlays/actors/ovl_En_Ma1/z_en_ma1.c | 2 +- src/overlays/actors/ovl_En_Ma2/z_en_ma2.c | 2 +- src/overlays/actors/ovl_En_Ma3/z_en_ma3.c | 2 +- src/overlays/actors/ovl_En_Mb/z_en_mb.c | 6 +- src/overlays/actors/ovl_En_Md/z_en_md.c | 2 +- src/overlays/actors/ovl_En_Mk/z_en_mk.c | 2 +- src/overlays/actors/ovl_En_Mm/z_en_mm.c | 2 +- src/overlays/actors/ovl_En_Mm2/z_en_mm2.c | 2 +- src/overlays/actors/ovl_En_Ms/z_en_ms.c | 2 +- src/overlays/actors/ovl_En_Mu/z_en_mu.c | 2 +- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 2 +- src/overlays/actors/ovl_En_Niw/z_en_niw.c | 4 +- .../actors/ovl_En_Niw_Girl/z_en_niw_girl.c | 2 +- .../actors/ovl_En_Niw_Lady/z_en_niw_lady.c | 2 +- .../actors/ovl_En_Nutsball/z_en_nutsball.c | 2 +- src/overlays/actors/ovl_En_Nwc/z_en_nwc.c | 2 +- src/overlays/actors/ovl_En_Ny/z_en_ny.c | 4 +- src/overlays/actors/ovl_En_Okuta/z_en_okuta.c | 4 +- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 2 +- src/overlays/actors/ovl_En_Owl/z_en_owl.c | 2 +- .../actors/ovl_En_Peehat/z_en_peehat.c | 6 +- .../actors/ovl_En_Po_Desert/z_en_po_desert.c | 2 +- .../actors/ovl_En_Po_Field/z_en_po_field.c | 4 +- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 2 +- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 14 ++--- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 4 +- src/overlays/actors/ovl_En_Rd/z_en_rd.c | 2 +- src/overlays/actors/ovl_En_Reeba/z_en_reeba.c | 2 +- src/overlays/actors/ovl_En_Rr/z_en_rr.c | 4 +- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 4 +- src/overlays/actors/ovl_En_Ru2/z_en_ru2.c | 2 +- src/overlays/actors/ovl_En_Sa/z_en_sa.c | 2 +- src/overlays/actors/ovl_En_Sb/z_en_sb.c | 2 +- .../actors/ovl_En_Shopnuts/z_en_shopnuts.c | 2 +- src/overlays/actors/ovl_En_Si/z_en_si.c | 2 +- src/overlays/actors/ovl_En_Skb/z_en_skb.c | 2 +- src/overlays/actors/ovl_En_Skj/z_en_skj.c | 2 +- .../actors/ovl_En_Skjneedle/z_en_skjneedle.c | 2 +- src/overlays/actors/ovl_En_Ssh/z_en_ssh.c | 8 +-- src/overlays/actors/ovl_En_St/z_en_st.c | 8 +-- src/overlays/actors/ovl_En_Sth/z_en_sth.c | 2 +- src/overlays/actors/ovl_En_Sw/z_en_sw.c | 2 +- .../ovl_En_Syateki_Niw/z_en_syateki_niw.c | 2 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 2 +- src/overlays/actors/ovl_En_Test/z_en_test.c | 6 +- src/overlays/actors/ovl_En_Tg/z_en_tg.c | 2 +- src/overlays/actors/ovl_En_Tite/z_en_tite.c | 2 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 2 +- .../actors/ovl_En_Torch2/z_en_torch2.c | 6 +- src/overlays/actors/ovl_En_Toryo/z_en_toryo.c | 2 +- src/overlays/actors/ovl_En_Tp/z_en_tp.c | 2 +- src/overlays/actors/ovl_En_Trap/z_en_trap.c | 2 +- .../actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c | 2 +- src/overlays/actors/ovl_En_Vali/z_en_vali.c | 4 +- .../actors/ovl_En_Vb_Ball/z_en_vb_ball.c | 2 +- src/overlays/actors/ovl_En_Vm/z_en_vm.c | 6 +- .../actors/ovl_En_Wallmas/z_en_wallmas.c | 2 +- .../actors/ovl_En_Weiyer/z_en_weiyer.c | 2 +- src/overlays/actors/ovl_En_Wf/z_en_wf.c | 6 +- .../ovl_En_Wonder_Item/z_en_wonder_item.c | 2 +- .../actors/ovl_En_Wood02/z_en_wood02.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 2 +- .../ovl_En_Yabusame_Mark/z_en_yabusame_mark.c | 2 +- .../actors/ovl_En_Yukabyun/z_en_yukabyun.c | 2 +- src/overlays/actors/ovl_En_Zf/z_en_zf.c | 4 +- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 2 +- src/overlays/actors/ovl_En_Zl3/z_en_zl3.c | 2 +- src/overlays/actors/ovl_En_Zl4/z_en_zl4.c | 2 +- src/overlays/actors/ovl_En_Zo/z_en_zo.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../actors/ovl_Item_Shield/z_item_shield.c | 2 +- .../actors/ovl_Magic_Fire/z_magic_fire.c | 2 +- src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c | 4 +- src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c | 2 +- .../actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c | 2 +- src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c | 2 +- .../actors/ovl_Obj_Hamishi/z_obj_hamishi.c | 2 +- src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c | 2 +- .../actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c | 4 +- .../actors/ovl_Obj_Kibako/z_obj_kibako.c | 2 +- .../actors/ovl_Obj_Kibako2/z_obj_kibako2.c | 2 +- .../ovl_Obj_Lightswitch/z_obj_lightswitch.c | 2 +- .../actors/ovl_Obj_Switch/z_obj_switch.c | 6 +- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.c | 8 +-- .../actors/ovl_Obj_Tsubo/z_obj_tsubo.c | 2 +- src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c | 2 +- .../actors/ovl_player_actor/z_player.c | 6 +- tools/namefixer.py | 14 ++--- tools/overlayhelpers/colliderinit.py | 28 ++++----- 249 files changed, 448 insertions(+), 448 deletions(-) diff --git a/include/z64collision_check.h b/include/z64collision_check.h index 99ad7aa76b..5e56a1c028 100644 --- a/include/z64collision_check.h +++ b/include/z64collision_check.h @@ -17,23 +17,6 @@ struct PlayState; * Bases for all shapes of colliders */ -typedef enum ColliderType { - /* 0 */ COLTYPE_HIT0, // Blue blood, white hitmark - /* 1 */ COLTYPE_HIT1, // No blood, dust hitmark - /* 2 */ COLTYPE_HIT2, // Green blood, dust hitmark - /* 3 */ COLTYPE_HIT3, // No blood, white hitmark - /* 4 */ COLTYPE_HIT4, // Water burst, no hitmark - /* 5 */ COLTYPE_HIT5, // No blood, red hitmark - /* 6 */ COLTYPE_HIT6, // Green blood, white hitmark - /* 7 */ COLTYPE_HIT7, // Red blood, white hitmark - /* 8 */ COLTYPE_HIT8, // Blue blood, red hitmark - /* 9 */ COLTYPE_METAL, - /* 10 */ COLTYPE_NONE, - /* 11 */ COLTYPE_WOOD, - /* 12 */ COLTYPE_HARD, - /* 13 */ COLTYPE_TREE -} ColliderType; - typedef enum ColliderShape { /* 0 */ COLSHAPE_JNTSPH, /* 1 */ COLSHAPE_CYLINDER, @@ -42,6 +25,23 @@ typedef enum ColliderShape { /* 4 */ COLSHAPE_MAX } ColliderShape; +typedef enum ColliderMaterial { + /* 0 */ COL_MATERIAL_HIT0, // Blue blood, white hitmark + /* 1 */ COL_MATERIAL_HIT1, // No blood, dust hitmark + /* 2 */ COL_MATERIAL_HIT2, // Green blood, dust hitmark + /* 3 */ COL_MATERIAL_HIT3, // No blood, white hitmark + /* 4 */ COL_MATERIAL_HIT4, // Water burst, no hitmark + /* 5 */ COL_MATERIAL_HIT5, // No blood, red hitmark + /* 6 */ COL_MATERIAL_HIT6, // Green blood, white hitmark + /* 7 */ COL_MATERIAL_HIT7, // Red blood, white hitmark + /* 8 */ COL_MATERIAL_HIT8, // Blue blood, red hitmark + /* 9 */ COL_MATERIAL_METAL, + /* 10 */ COL_MATERIAL_NONE, + /* 11 */ COL_MATERIAL_WOOD, + /* 12 */ COL_MATERIAL_HARD, + /* 13 */ COL_MATERIAL_TREE +} ColliderMaterial; + typedef struct Collider { /* 0x00 */ struct Actor* actor; // Attached actor /* 0x04 */ struct Actor* at; // Actor attached to what it collided with as an AT collider. @@ -51,12 +51,12 @@ typedef struct Collider { /* 0x11 */ u8 acFlags; /* 0x12 */ u8 ocFlags1; /* 0x13 */ u8 ocFlags2; // Flags related to which colliders it can OC collide with. - /* 0x14 */ u8 colType; // Determines hitmarks and sound effects during AC collisions. See `ColliderType` enum + /* 0x14 */ u8 colMaterial; // Determines hitmarks and sound effects during AC collisions. See `ColliderMaterial` enum /* 0x15 */ u8 shape; // See `ColliderShape` enum } Collider; // size = 0x18 typedef struct ColliderInit { - /* 0x00 */ u8 colType; + /* 0x00 */ u8 colMaterial; /* 0x01 */ u8 atFlags; /* 0x02 */ u8 acFlags; /* 0x03 */ u8 ocFlags1; @@ -65,7 +65,7 @@ typedef struct ColliderInit { } ColliderInit; // size = 0x06 typedef struct ColliderInitType1 { - /* 0x00 */ u8 colType; + /* 0x00 */ u8 colMaterial; /* 0x01 */ u8 atFlags; /* 0x02 */ u8 acFlags; /* 0x03 */ u8 ocFlags1; diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 2c0b19d3ef..4d5ccbc95d 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -81,7 +81,7 @@ void Collider_DrawPoly(GraphicsContext* gfxCtx, Vec3f* vA, Vec3f* vB, Vec3f* vC, s32 Collider_InitBase(PlayState* play, Collider* col) { static Collider init = { - NULL, NULL, NULL, NULL, AT_NONE, AC_NONE, OC1_NONE, OC2_NONE, COLTYPE_HIT3, COLSHAPE_MAX, + NULL, NULL, NULL, NULL, AT_NONE, AC_NONE, OC1_NONE, OC2_NONE, COL_MATERIAL_HIT3, COLSHAPE_MAX, }; *col = init; @@ -93,7 +93,7 @@ s32 Collider_DestroyBase(PlayState* play, Collider* col) { } /** - * Uses default OC2_TYPE_1 and COLTYPE_HIT0 + * Uses default OC2_TYPE_1 and COL_MATERIAL_HIT0 */ s32 Collider_SetBaseToActor(PlayState* play, Collider* col, ColliderInitToActor* src) { col->actor = src->actor; @@ -110,7 +110,7 @@ s32 Collider_SetBaseToActor(PlayState* play, Collider* col, ColliderInitToActor* */ s32 Collider_SetBaseType1(PlayState* play, Collider* col, Actor* actor, ColliderInitType1* src) { col->actor = actor; - col->colType = src->colType; + col->colMaterial = src->colMaterial; col->atFlags = src->atFlags; col->acFlags = src->acFlags; col->ocFlags1 = src->ocFlags1; @@ -121,7 +121,7 @@ s32 Collider_SetBaseType1(PlayState* play, Collider* col, Actor* actor, Collider s32 Collider_SetBase(PlayState* play, Collider* col, Actor* actor, ColliderInit* src) { col->actor = actor; - col->colType = src->colType; + col->colMaterial = src->colMaterial; col->atFlags = src->atFlags; col->acFlags = src->acFlags; col->ocFlags1 = src->ocFlags1; @@ -339,7 +339,7 @@ s32 Collider_DestroyJntSph(PlayState* play, ColliderJntSph* jntSph) { /** * Sets up the ColliderJntSph using the values in src, sets it to the actor specified in src, and dynamically allocates - * the element array. Uses default OC2_TYPE_1 and COLTYPE_HIT0. Unused. + * the element array. Uses default OC2_TYPE_1 and COL_MATERIAL_HIT0. Unused. */ s32 Collider_SetJntSphToActor(PlayState* play, ColliderJntSph* dest, ColliderJntSphInitToActor* src) { ColliderJntSphElement* destElem; @@ -524,7 +524,7 @@ s32 Collider_DestroyCylinder(PlayState* play, ColliderCylinder* cyl) { /** * Sets up the ColliderCylinder using the values in src and sets it to the actor specified in src. Uses default - * OC2_TYPE_1 and COLTYPE_0. Used only by DekuJr, who sets it to himself anyways. + * OC2_TYPE_1 and COL_MATERIAL_0. Used only by DekuJr, who sets it to himself anyways. */ s32 Collider_SetCylinderToActor(PlayState* play, ColliderCylinder* dest, ColliderCylinderInitToActor* src) { Collider_SetBaseToActor(play, &dest->base, &src->base); @@ -1546,7 +1546,7 @@ void CollisionCheck_RedBloodUnused(PlayState* play, Collider* collider, Vec3f* v void CollisionCheck_HitSolid(PlayState* play, ColliderElement* elem, Collider* collider, Vec3f* hitPos) { s32 flags = elem->atElemFlags & ATELEM_SFX_MASK; - if (flags == ATELEM_SFX_NORMAL && collider->colType != COLTYPE_METAL) { + if (flags == ATELEM_SFX_NORMAL && collider->colMaterial != COL_MATERIAL_METAL) { EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_WHITE, hitPos); if (collider->actor == NULL) { Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, @@ -1555,7 +1555,7 @@ void CollisionCheck_HitSolid(PlayState* play, ColliderElement* elem, Collider* c Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &collider->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } - } else if (flags == ATELEM_SFX_NORMAL) { // collider->colType == COLTYPE_METAL + } else if (flags == ATELEM_SFX_NORMAL) { // collider->colMaterial == COL_MATERIAL_METAL EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_METAL, hitPos); if (collider->actor == NULL) { CollisionCheck_SpawnShieldParticlesMetal(play, hitPos); @@ -1640,24 +1640,24 @@ static ColChkBloodFunc sBloodFuncs[] = { }; static HitInfo sHitInfo[] = { - { BLOOD_BLUE, HIT_WHITE }, // COLTYPE_HIT0 - { BLOOD_NONE, HIT_DUST }, // COLTYPE_HIT1 - { BLOOD_GREEN, HIT_DUST }, // COLTYPE_HIT2 - { BLOOD_NONE, HIT_WHITE }, // COLTYPE_HIT3 - { BLOOD_WATER, HIT_NONE }, // COLTYPE_HIT4 - { BLOOD_NONE, HIT_RED }, // COLTYPE_HIT5 - { BLOOD_GREEN, HIT_WHITE }, // COLTYPE_HIT6 - { BLOOD_RED, HIT_WHITE }, // COLTYPE_HIT7 - { BLOOD_BLUE, HIT_RED }, // COLTYPE_HIT8 - { BLOOD_NONE, HIT_SOLID }, // COLTYPE_METAL - { BLOOD_NONE, HIT_NONE }, // COLTYPE_NONE - { BLOOD_NONE, HIT_SOLID }, // COLTYPE_WOOD - { BLOOD_NONE, HIT_SOLID }, // COLTYPE_HARD - { BLOOD_NONE, HIT_WOOD }, // COLTYPE_TREE + { BLOOD_BLUE, HIT_WHITE }, // COL_MATERIAL_HIT0 + { BLOOD_NONE, HIT_DUST }, // COL_MATERIAL_HIT1 + { BLOOD_GREEN, HIT_DUST }, // COL_MATERIAL_HIT2 + { BLOOD_NONE, HIT_WHITE }, // COL_MATERIAL_HIT3 + { BLOOD_WATER, HIT_NONE }, // COL_MATERIAL_HIT4 + { BLOOD_NONE, HIT_RED }, // COL_MATERIAL_HIT5 + { BLOOD_GREEN, HIT_WHITE }, // COL_MATERIAL_HIT6 + { BLOOD_RED, HIT_WHITE }, // COL_MATERIAL_HIT7 + { BLOOD_BLUE, HIT_RED }, // COL_MATERIAL_HIT8 + { BLOOD_NONE, HIT_SOLID }, // COL_MATERIAL_METAL + { BLOOD_NONE, HIT_NONE }, // COL_MATERIAL_NONE + { BLOOD_NONE, HIT_SOLID }, // COL_MATERIAL_WOOD + { BLOOD_NONE, HIT_SOLID }, // COL_MATERIAL_HARD + { BLOOD_NONE, HIT_WOOD }, // COL_MATERIAL_TREE }; /** - * Handles hitmarks, blood, and sound effects for each AC collision, determined by the AC collider's colType + * Handles hitmarks, blood, and sound effects for each AC collision, determined by the AC collider's colMaterial */ void CollisionCheck_HitEffects(PlayState* play, Collider* atCol, ColliderElement* atElem, Collider* acCol, ColliderElement* acElem, Vec3f* hitPos) { @@ -1668,12 +1668,12 @@ void CollisionCheck_HitEffects(PlayState* play, Collider* atCol, ColliderElement return; } if (acCol->actor != NULL) { - sBloodFuncs[sHitInfo[acCol->colType].blood](play, acCol, hitPos); + sBloodFuncs[sHitInfo[acCol->colMaterial].blood](play, acCol, hitPos); } if (acCol->actor != NULL) { - if (sHitInfo[acCol->colType].effect == HIT_SOLID) { + if (sHitInfo[acCol->colMaterial].effect == HIT_SOLID) { CollisionCheck_HitSolid(play, atElem, acCol, hitPos); - } else if (sHitInfo[acCol->colType].effect == HIT_WOOD) { + } else if (sHitInfo[acCol->colMaterial].effect == HIT_WOOD) { if (atCol->actor == NULL) { CollisionCheck_SpawnShieldParticles(play, hitPos); Audio_PlaySfxGeneral(NA_SE_IT_REFLECTION_WOOD, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, @@ -1681,8 +1681,8 @@ void CollisionCheck_HitEffects(PlayState* play, Collider* atCol, ColliderElement } else { CollisionCheck_SpawnShieldParticlesWood(play, hitPos, &atCol->actor->projectedPos); } - } else if (sHitInfo[acCol->colType].effect != HIT_NONE) { - EffectSsHitMark_SpawnFixedScale(play, sHitInfo[acCol->colType].effect, hitPos); + } else if (sHitInfo[acCol->colMaterial].effect != HIT_NONE) { + EffectSsHitMark_SpawnFixedScale(play, sHitInfo[acCol->colMaterial].effect, hitPos); if (!(acElem->acElemFlags & ACELEM_NO_SWORD_SFX)) { CollisionCheck_SwordHitAudio(atCol, acElem); } @@ -1736,8 +1736,8 @@ s32 CollisionCheck_SetATvsAC(PlayState* play, Collider* atCol, ColliderElement* acElem->acDmgInfo.hitPos.x = hitPos->x; acElem->acDmgInfo.hitPos.y = hitPos->y; acElem->acDmgInfo.hitPos.z = hitPos->z; - if (!(atElem->atElemFlags & ATELEM_AT_HITMARK) && acCol->colType != COLTYPE_METAL && - acCol->colType != COLTYPE_WOOD && acCol->colType != COLTYPE_HARD) { + if (!(atElem->atElemFlags & ATELEM_AT_HITMARK) && acCol->colMaterial != COL_MATERIAL_METAL && + acCol->colMaterial != COL_MATERIAL_WOOD && acCol->colMaterial != COL_MATERIAL_HARD) { acElem->acElemFlags |= ACELEM_DRAW_HITMARK; } else { CollisionCheck_HitEffects(play, atCol, atElem, acCol, acElem, hitPos); diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index f99d4714cb..39cee208bf 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -34,7 +34,7 @@ ActorProfile En_A_Obj_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ALL, OC1_ON | OC1_TYPE_ALL, diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index 94cd617756..22aefff8b1 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -34,7 +34,7 @@ ActorProfile En_Item00_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index b5a9a72c1a..608423b42a 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -1312,17 +1312,17 @@ u8 func_80090480(PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo } void Player_UpdateShieldCollider(PlayState* play, Player* this, ColliderQuad* collider, Vec3f* quadSrc) { - static u8 shieldColTypes[PLAYER_SHIELD_MAX] = { - COLTYPE_METAL, - COLTYPE_WOOD, - COLTYPE_METAL, - COLTYPE_METAL, + static u8 shieldColMaterials[PLAYER_SHIELD_MAX] = { + COL_MATERIAL_METAL, + COL_MATERIAL_WOOD, + COL_MATERIAL_METAL, + COL_MATERIAL_METAL, }; if (this->stateFlags1 & PLAYER_STATE1_22) { Vec3f quadDest[4]; - this->shieldQuad.base.colType = shieldColTypes[this->currentShield]; + this->shieldQuad.base.colMaterial = shieldColMaterials[this->currentShield]; Matrix_MultVec3f(&quadSrc[0], &quadDest[0]); Matrix_MultVec3f(&quadSrc[1], &quadDest[1]); diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index 0156456874..ffdd8d78d8 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -25,7 +25,7 @@ ActorProfile Arms_Hook_Profile = { static ColliderQuadInit sQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_PLAYER, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c index 8ff123e07e..7e15bf0a43 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c @@ -57,7 +57,7 @@ ActorProfile Bg_Bdan_Objects_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c index cd4eb5ef8d..9789bba219 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c @@ -70,7 +70,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c b/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c index db99f735dc..e3121e7187 100644 --- a/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c @@ -58,7 +58,7 @@ static ColliderTrisElementInit sTrisElementsInit[3] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c index fc012fa459..13eccb0849 100644 --- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c +++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c @@ -40,7 +40,7 @@ ActorProfile Bg_Breakwall_Profile = { static ColliderQuadInit sQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER | AC_TYPE_OTHER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c b/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c index 1909b801e6..b2bbad929c 100644 --- a/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c +++ b/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c @@ -32,7 +32,7 @@ ActorProfile Bg_Ddan_Kd_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ALL, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c index b97a063646..6a3e3351ba 100644 --- a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c +++ b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c @@ -34,7 +34,7 @@ ActorProfile Bg_Dodoago_Profile = { static ColliderCylinderInit sColCylinderInitMain = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ALL, OC1_NONE, @@ -54,7 +54,7 @@ static ColliderCylinderInit sColCylinderInitMain = { static ColliderCylinderInit sColCylinderInitLeftRight = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_NO_PUSH | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c index 6f531fd6f1..98df39ebb8 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c @@ -33,7 +33,7 @@ ActorProfile Bg_Gnd_Soulmeiro_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c index a86d14723b..464dad2107 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c +++ b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c @@ -87,7 +87,7 @@ static ColliderTrisElementInit sTrisElementsInit[4] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, @@ -100,7 +100,7 @@ static ColliderTrisInit sTrisInit = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c index e914e070bf..76d74ba1ab 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c +++ b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c @@ -43,7 +43,7 @@ ActorProfile Bg_Haka_Trap_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, @@ -88,7 +88,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c index c4e543af40..32f48dc7d6 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c +++ b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c @@ -32,7 +32,7 @@ ActorProfile Bg_Haka_Tubo_Profile = { static ColliderCylinderInit sPotColliderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -52,7 +52,7 @@ static ColliderCylinderInit sPotColliderInit = { static ColliderCylinderInit sFlamesColliderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c index 33629f1427..473afc9850 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c +++ b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c @@ -34,7 +34,7 @@ void BgHakaZou_DoNothing(BgHakaZou* this, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c index 7201e8e6e0..dbfe9fc044 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c @@ -31,7 +31,7 @@ typedef struct BgHidanCurtainParams { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c b/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c index 028f2e4a23..aed9aac707 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c @@ -78,7 +78,7 @@ static ColliderTrisElementInit sTrisElementInit[4] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c index 493072c369..f00cf589ca 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c @@ -35,7 +35,7 @@ ActorProfile Bg_Hidan_Firewall_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c index db86da3173..d50b40c9fd 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c @@ -45,7 +45,7 @@ ActorProfile Bg_Hidan_Fwbig_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c index 053e5382a6..286b69e86c 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c @@ -52,7 +52,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c b/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c index b59e5a3fd9..9eef214e5c 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c @@ -57,7 +57,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c index 5f4d7457a5..b3f6abe0c8 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c @@ -56,7 +56,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c index 0f40dd3470..e38c7a0efc 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c @@ -43,7 +43,7 @@ ActorProfile Bg_Hidan_Rock_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c index e08e64df98..397cd8e4fb 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c @@ -97,7 +97,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c index 91a32c7de3..d12449e437 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c @@ -100,7 +100,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c index eb38ad2326..6a944dfe07 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c @@ -60,7 +60,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c index fa5554f8d1..d55f7e870f 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c +++ b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c @@ -42,7 +42,7 @@ static Color_RGBA8 sSteamEnvColor = { 180, 180, 180, 255 }; static ColliderCylinderInit sCylinderInit1 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_OTHER, OC1_ON | OC1_TYPE_ALL, @@ -62,7 +62,7 @@ static ColliderCylinderInit sCylinderInit1 = { static ColliderCylinderInit sCylinderInit2 = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c b/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c index 59eeb3190a..79fad6ffca 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c +++ b/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c @@ -22,7 +22,7 @@ void BgIceTurara_Regrow(BgIceTurara* this, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c index 0f81ee9373..a5ac412728 100644 --- a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c +++ b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c @@ -39,7 +39,7 @@ ActorProfile Bg_Jya_1flift_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c index 59ecf2b27d..c0c728c440 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c @@ -42,7 +42,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_2, diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c index bacf471b9b..775b689bfd 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c @@ -44,7 +44,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c index 5a4898763e..6fe8f9e463 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c @@ -51,7 +51,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c b/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c index 670bbef007..d65aded035 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c +++ b/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c @@ -50,7 +50,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c index ccfb377a4a..b2e6d3f887 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c +++ b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c @@ -40,7 +40,7 @@ static Gfx* sOpaDL[] = { gPillarDL, gThroneDL }; static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c index e54bc92040..e0c64ea00f 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c +++ b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c @@ -48,7 +48,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c b/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c index 12117cbf7e..b475b8c782 100644 --- a/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c +++ b/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c @@ -44,7 +44,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c index 3af6a730d4..e6a2c73381 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c @@ -58,7 +58,7 @@ static ColliderTrisElementInit sTrisElementInitFloor[2] = { static ColliderTrisInit sTrisInitFloor = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -85,7 +85,7 @@ static ColliderTrisElementInit sTrisElementInitRutoWall[1] = { static ColliderTrisInit sTrisInitRutoWall = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -123,7 +123,7 @@ static ColliderTrisElementInit sTrisElementInitWall[2] = { static ColliderTrisInit sTrisInitUnusedWall = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -136,7 +136,7 @@ static ColliderTrisInit sTrisInitUnusedWall = { static ColliderTrisInit sTrisInitStingerWall = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c index adab13681e..203854cd63 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c @@ -52,7 +52,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c index 04fb0eb782..16d0d5612e 100644 --- a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c +++ b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c @@ -67,7 +67,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c index d02a9ddeb3..ca5b223bca 100644 --- a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c +++ b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c @@ -26,7 +26,7 @@ void BgPoSyokudai_Draw(Actor* thisx, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c index 916a977c27..3d7234e09a 100644 --- a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c +++ b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c @@ -72,7 +72,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c index 4427ebd827..874cf1ac96 100644 --- a/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c +++ b/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c @@ -69,7 +69,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c index 465740952f..0ffc200397 100644 --- a/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c +++ b/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c @@ -30,7 +30,7 @@ ActorProfile Bg_Spot11_Bakudankabe_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c index a9429e4c62..1d1a7fdee7 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c +++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c @@ -49,7 +49,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -62,7 +62,7 @@ static ColliderJntSphInit sJntSphInit = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c index 1289560e2d..159f0b7521 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c @@ -61,7 +61,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c index a13d872ab8..5d76a1b8c4 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c @@ -36,7 +36,7 @@ ActorProfile Bg_Toki_Swd_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c b/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c index fd0f8ac0b1..9a59098e25 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c @@ -59,7 +59,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c index de0ccd7a91..383af93a7b 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c @@ -63,7 +63,7 @@ static ColliderTrisElementInit sTrisItemsInit[2] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c index 189b0b94fc..a3b4c22c67 100644 --- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c +++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c @@ -224,7 +224,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c index 2e437fdf83..4a63c372a1 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c @@ -214,7 +214,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index 4e043faa3a..84e44c5e16 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -823,10 +823,10 @@ void BossFd2_CollisionCheck(BossFd2* this, PlayState* play) { } if (!bossFd->faceExposed) { this->collider.elements[0].base.elemType = ELEMTYPE_UNK2; - this->collider.base.colType = COLTYPE_METAL; + this->collider.base.colMaterial = COL_MATERIAL_METAL; } else { this->collider.elements[0].base.elemType = ELEMTYPE_UNK3; - this->collider.base.colType = COLTYPE_HIT3; + this->collider.base.colMaterial = COL_MATERIAL_HIT3; } if (this->collider.elements[0].base.acElemFlags & ACELEM_HIT) { diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c index 4ec5065401..be0ff944e6 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c @@ -104,7 +104,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, 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 6ee60c2159..4d4bcb6493 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -59,7 +59,7 @@ ActorProfile Boss_Ganon_Profile = { static ColliderCylinderInit sDorfCylinderInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -79,7 +79,7 @@ static ColliderCylinderInit sDorfCylinderInit = { static ColliderCylinderInit sLightBallCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -2378,7 +2378,7 @@ void BossGanon_SetupBlock(BossGanon* this, PlayState* play) { } void BossGanon_Block(BossGanon* this, PlayState* play) { - this->collider.base.colType = 9; + this->collider.base.colMaterial = COL_MATERIAL_METAL; SkelAnime_Update(&this->skelAnime); sCape->backPush = -9.0f; sCape->backSwayMagnitude = 0.25f; @@ -2829,7 +2829,7 @@ void BossGanon_Update(Actor* thisx, PlayState* play2) { } } - this->collider.base.colType = 3; + this->collider.base.colMaterial = COL_MATERIAL_HIT3; sCape->gravity = -3.0f; this->shockGlow = false; this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.inc.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.inc.c index bcb07e383d..3f290f318a 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.inc.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.inc.c @@ -204,7 +204,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { static ColliderJntSphInit sJntSphInit1 = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, @@ -242,7 +242,7 @@ static ColliderJntSphElementInit sJntSphItemsInit2[] = { static ColliderJntSphInit sJntSphInit2 = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index 5f34b94ddc..e3b1ef8b2f 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -83,7 +83,7 @@ ActorProfile Boss_Ganondrof_Profile = { static ColliderCylinderInit sCylinderInitBody = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -103,7 +103,7 @@ static ColliderCylinderInit sCylinderInitBody = { static ColliderCylinderInit sCylinderInitSpear = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -773,7 +773,7 @@ void BossGanondrof_SetupBlock(BossGanondrof* this, PlayState* play) { } void BossGanondrof_Block(BossGanondrof* this, PlayState* play) { - this->colliderBody.base.colType = COLTYPE_METAL; + this->colliderBody.base.colMaterial = COL_MATERIAL_METAL; SkelAnime_Update(&this->skelAnime); this->actor.world.pos.x += this->actor.velocity.x; this->actor.world.pos.z += this->actor.velocity.z; @@ -802,7 +802,7 @@ void BossGanondrof_Charge(BossGanondrof* this, PlayState* play) { f32 dxCenter = thisx->world.pos.x - GND_BOSSROOM_CENTER_X; f32 dzCenter = thisx->world.pos.z - GND_BOSSROOM_CENTER_Z; - this->colliderBody.base.colType = COLTYPE_METAL; + this->colliderBody.base.colMaterial = COL_MATERIAL_METAL; SkelAnime_Update(&this->skelAnime); switch (this->work[GND_ACTION_STATE]) { case CHARGE_WINDUP: @@ -1298,7 +1298,7 @@ void BossGanondrof_Update(Actor* thisx, PlayState* play) { PRINTF("MOVE START %d\n", this->actor.params); this->actor.flags &= ~ACTOR_FLAG_10; - this->colliderBody.base.colType = COLTYPE_HIT3; + this->colliderBody.base.colMaterial = COL_MATERIAL_HIT3; if (this->killActor) { Actor_Kill(&this->actor); return; diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index 6c6bb04d34..302b1beda5 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -209,7 +209,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { static ColliderJntSphInit sColliderJntSphInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c index 0ae73dadb6..e17babd24b 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c @@ -215,7 +215,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, @@ -228,7 +228,7 @@ static ColliderJntSphInit sJntSphInit = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index 26cac6647b..db08bc13f2 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -2509,10 +2509,10 @@ void BossSst_HandSetDamage(BossSst* this, s32 damage) { void BossSst_HandSetInvulnerable(BossSst* this, s32 isInv) { this->colliderJntSph.base.acFlags &= ~AC_HIT; if (isInv) { - this->colliderJntSph.base.colType = COLTYPE_HARD; + this->colliderJntSph.base.colMaterial = COL_MATERIAL_HARD; this->colliderJntSph.base.acFlags |= AC_HARD; } else { - this->colliderJntSph.base.colType = COLTYPE_HIT0; + this->colliderJntSph.base.colMaterial = COL_MATERIAL_HIT0; this->colliderJntSph.base.acFlags &= ~AC_HARD; } } @@ -2522,7 +2522,7 @@ void BossSst_HeadSfx(BossSst* this, u16 sfxId) { } void BossSst_HandCollisionCheck(BossSst* this, PlayState* play) { - if ((this->colliderJntSph.base.acFlags & AC_HIT) && (this->colliderJntSph.base.colType != COLTYPE_HARD)) { + if ((this->colliderJntSph.base.acFlags & AC_HIT) && (this->colliderJntSph.base.colMaterial != COL_MATERIAL_HARD)) { s32 bothHands = true; this->colliderJntSph.base.acFlags &= ~AC_HIT; diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c index f73bfac8ec..8b8eb9b219 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c @@ -126,7 +126,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { static ColliderJntSphInit sJntSphInitHand = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_TYPE_ALL, @@ -263,7 +263,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { static ColliderJntSphInit sJntSphInitHead = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_TYPE_ENEMY, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_TYPE_ALL, @@ -276,7 +276,7 @@ static ColliderJntSphInit sJntSphInitHead = { static ColliderCylinderInit sCylinderInitHead = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_NONE | AC_TYPE_PLAYER, OC1_NONE, @@ -296,7 +296,7 @@ static ColliderCylinderInit sCylinderInitHead = { static ColliderCylinderInit sCylinderInitHand = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 8c372064be..607563b92a 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -133,7 +133,7 @@ static Vec3f sZeroVector = { 0.0f, 0.0f, 0.0f }; static ColliderCylinderInit sCylinderInitBlasts = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ALL, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, @@ -153,7 +153,7 @@ static ColliderCylinderInit sCylinderInitBlasts = { static ColliderCylinderInit sCylinderInitKoumeKotake = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, @@ -173,7 +173,7 @@ static ColliderCylinderInit sCylinderInitKoumeKotake = { static ColliderCylinderInit sCylinderInitTwinrova = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -1438,7 +1438,7 @@ void BossTw_SetupSpin(BossTw* this, PlayState* play) { void BossTw_Spin(BossTw* this, PlayState* play) { if (this->timers[0] != 0) { - this->collider.base.colType = COLTYPE_METAL; + this->collider.base.colMaterial = COL_MATERIAL_METAL; this->actor.shape.rot.y -= 0x3000; if ((this->timers[0] % 4) == 0) { @@ -2848,7 +2848,7 @@ void BossTw_Update(Actor* thisx, PlayState* play) { s16 i; s32 pad; - this->collider.base.colType = COLTYPE_HIT3; + this->collider.base.colMaterial = COL_MATERIAL_HIT3; Math_ApproachF(&this->fogR, play->lightCtx.fogColor[0], 1.0f, 10.0f); Math_ApproachF(&this->fogG, play->lightCtx.fogColor[1], 1.0f, 10.0f); Math_ApproachF(&this->fogB, play->lightCtx.fogColor[2], 1.0f, 10.0f); @@ -2976,7 +2976,7 @@ void BossTw_TwinrovaUpdate(Actor* thisx, PlayState* play2) { this->actor.flags &= ~ACTOR_FLAG_10; this->unk_5F8 = 0; - this->collider.base.colType = COLTYPE_HIT3; + this->collider.base.colMaterial = COL_MATERIAL_HIT3; Math_ApproachF(&this->fogR, play->lightCtx.fogColor[0], 1.0f, 10.0f); Math_ApproachF(&this->fogG, play->lightCtx.fogColor[1], 1.0f, 10.0f); @@ -5397,7 +5397,7 @@ void BossTw_TwinrovaSetupSpin(BossTw* this, PlayState* play) { void BossTw_TwinrovaSpin(BossTw* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); if (this->timers[0] != 0) { - this->collider.base.colType = COLTYPE_METAL; + this->collider.base.colMaterial = COL_MATERIAL_METAL; this->actor.shape.rot.y -= 0x3000; if ((this->timers[0] % 4) == 0) { diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index ccd5466034..a07d358dae 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -204,7 +204,7 @@ ActorProfile Boss_Va_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -238,7 +238,7 @@ static ColliderJntSphElementInit sJntSphElementsInitSupport[1] = { static ColliderJntSphInit sJntSphInitSupport = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -265,7 +265,7 @@ static ColliderJntSphElementInit sJntSphElementsInitBari[1] = { static ColliderJntSphInit sJntSphInitBari = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -278,7 +278,7 @@ static ColliderJntSphInit sJntSphInitBari = { static ColliderQuadInit sQuadInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c index fa28e7cc80..302a9617fa 100644 --- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c +++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c @@ -17,7 +17,7 @@ void DemoGj_Draw(Actor* thisx, PlayState* play); static ColliderCylinderInitType1 sCylinderInit1 = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -36,7 +36,7 @@ static ColliderCylinderInitType1 sCylinderInit1 = { static ColliderCylinderInitType1 sCylinderInit2 = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -55,7 +55,7 @@ static ColliderCylinderInitType1 sCylinderInit2 = { static ColliderCylinderInitType1 sCylinderInit3 = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c index 4eafb3aec8..b126337e95 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c @@ -64,7 +64,7 @@ static u32 D_8098783C = 0; static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c index 92c22e925f..182837ddf6 100644 --- a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c +++ b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c @@ -35,7 +35,7 @@ ActorProfile Demo_Kekkai_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c index 8208e7c6e1..4a0553bded 100644 --- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c +++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c @@ -32,7 +32,7 @@ ActorProfile Door_Ana_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Door_Killer/z_door_killer.c b/src/overlays/actors/ovl_Door_Killer/z_door_killer.c index 711b861183..22dc281bb9 100644 --- a/src/overlays/actors/ovl_Door_Killer/z_door_killer.c +++ b/src/overlays/actors/ovl_Door_Killer/z_door_killer.c @@ -43,7 +43,7 @@ ActorProfile Door_Killer_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -77,7 +77,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Am/z_en_am.c b/src/overlays/actors/ovl_En_Am/z_en_am.c index 48625a2e4d..f2145ed020 100644 --- a/src/overlays/actors/ovl_En_Am/z_en_am.c +++ b/src/overlays/actors/ovl_En_Am/z_en_am.c @@ -53,7 +53,7 @@ ActorProfile En_Am_Profile = { static ColliderCylinderInit sHurtCylinderInit = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -73,7 +73,7 @@ static ColliderCylinderInit sHurtCylinderInit = { static ColliderCylinderInit sBlockCylinderInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, @@ -93,7 +93,7 @@ static ColliderCylinderInit sBlockCylinderInit = { static ColliderQuadInit sQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Ani/z_en_ani.c b/src/overlays/actors/ovl_En_Ani/z_en_ani.c index 65f421de0b..339d115b3a 100644 --- a/src/overlays/actors/ovl_En_Ani/z_en_ani.c +++ b/src/overlays/actors/ovl_En_Ani/z_en_ani.c @@ -40,7 +40,7 @@ ActorProfile En_Ani_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c index 13a326f939..0736677648 100644 --- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c +++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c @@ -39,7 +39,7 @@ ActorProfile En_Anubice_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c index 82b124a833..9a865e33fe 100644 --- a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c +++ b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c @@ -33,7 +33,7 @@ ActorProfile En_Anubice_Fire_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index 4fc29db648..ca7363a714 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -33,7 +33,7 @@ ActorProfile En_Arrow_Profile = { static ColliderQuadInit sColliderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_PLAYER, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Ba/z_en_ba.c b/src/overlays/actors/ovl_En_Ba/z_en_ba.c index 6becbc72f9..0afc8d3d53 100644 --- a/src/overlays/actors/ovl_En_Ba/z_en_ba.c +++ b/src/overlays/actors/ovl_En_Ba/z_en_ba.c @@ -64,7 +64,7 @@ static ColliderJntSphElementInit sJntSphElementInit[2] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index 6bf75bba55..b7eea260a7 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -223,7 +223,7 @@ static ColliderJntSphElementInit sJntSphElementInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index fef2174361..085f035c40 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -58,7 +58,7 @@ static ColliderJntSphElementInit sJntSphElementInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -71,7 +71,7 @@ static ColliderJntSphInit sJntSphInit = { static ColliderCylinderInit sCylinderInit[] = { { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -88,7 +88,7 @@ static ColliderCylinderInit sCylinderInit[] = { }, { 50, 100, 0, { 30, 0, 12 } } }, { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.c b/src/overlays/actors/ovl_En_Bili/z_en_bili.c index d3c0271f0d..3d22811065 100644 --- a/src/overlays/actors/ovl_En_Bili/z_en_bili.c +++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.c @@ -42,7 +42,7 @@ ActorProfile En_Bili_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT8, + COL_MATERIAL_HIT8, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, 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 9cdfaf7e0f..de103f4426 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -32,7 +32,7 @@ ActorProfile En_Bom_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER | AC_TYPE_OTHER, OC1_ON | OC1_TYPE_ALL, @@ -66,7 +66,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_ON | AT_TYPE_ALL, AC_NONE, OC1_NONE, 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 30eda27b5d..cbaf6c4678 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 @@ -43,7 +43,7 @@ static ColliderJntSphElementInit sJntSphElemInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_1 | OC1_TYPE_2, 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 c148ea4e0d..9b2888c07f 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -35,7 +35,7 @@ ActorProfile En_Bombf_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER | AC_TYPE_OTHER, OC1_ON | OC1_TYPE_ALL, @@ -69,7 +69,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ALL, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index fc9a9c110c..a2cbca24f9 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -30,7 +30,7 @@ ActorProfile En_Boom_Profile = { static ColliderQuadInit sQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_PLAYER, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Brob/z_en_brob.c b/src/overlays/actors/ovl_En_Brob/z_en_brob.c index 1238cceb84..785881e771 100644 --- a/src/overlays/actors/ovl_En_Brob/z_en_brob.c +++ b/src/overlays/actors/ovl_En_Brob/z_en_brob.c @@ -36,7 +36,7 @@ ActorProfile En_Brob_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c index b883a52378..68845bca93 100644 --- a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c +++ b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c @@ -51,7 +51,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Butte/z_en_butte.c b/src/overlays/actors/ovl_En_Butte/z_en_butte.c index 98c3100602..444e2a7e49 100644 --- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c +++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c @@ -38,7 +38,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { }; static ColliderJntSphInit sColliderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_PLAYER | OC1_TYPE_1, diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.c b/src/overlays/actors/ovl_En_Bw/z_en_bw.c index c6d0d17183..994e2e9fa5 100644 --- a/src/overlays/actors/ovl_En_Bw/z_en_bw.c +++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.c @@ -47,7 +47,7 @@ ActorProfile En_Bw_Profile = { static ColliderCylinderInit sCylinderInit1 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, @@ -67,7 +67,7 @@ static ColliderCylinderInit sCylinderInit1 = { static ColliderCylinderInit sCylinderInit2 = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_En_Bx/z_en_bx.c b/src/overlays/actors/ovl_En_Bx/z_en_bx.c index cc3f881b7d..bf8c1bbd1d 100644 --- a/src/overlays/actors/ovl_En_Bx/z_en_bx.c +++ b/src/overlays/actors/ovl_En_Bx/z_en_bx.c @@ -28,7 +28,7 @@ ActorProfile En_Bx_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -48,7 +48,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderQuadInit sQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c index 1350ebc8d0..b8df8c855c 100644 --- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c +++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c @@ -36,7 +36,7 @@ static Vec3f sZeroVector = { 0.0f, 0.0f, 0.0f }; static ColliderCylinderInit sArwingCylinderInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -56,7 +56,7 @@ static ColliderCylinderInit sArwingCylinderInit = { static ColliderCylinderInit sLaserCylinderInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index 6b6c80339b..7d62048ede 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -40,7 +40,7 @@ ActorProfile En_Cow_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, 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 6c78f8f505..8bbbef431d 100644 --- a/src/overlays/actors/ovl_En_Crow/z_en_crow.c +++ b/src/overlays/actors/ovl_En_Crow/z_en_crow.c @@ -46,7 +46,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index 85ae528bb4..813822eecc 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -29,7 +29,7 @@ ActorProfile En_Cs_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c index 48215978c4..e496ea6c23 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -55,7 +55,7 @@ ActorProfile En_Daiku_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index 9116940a63..1e45d7010b 100644 --- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -38,7 +38,7 @@ ActorProfile En_Daiku_Kakariko_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index 04dd2e24bf..08cbf17d18 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -123,7 +123,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -299,7 +299,7 @@ void EnDekubaba_SetupWait(EnDekubaba* this) { Actor_SetScale(&this->actor, this->size * 0.01f * 0.5f); - this->collider.base.colType = COLTYPE_HARD; + this->collider.base.colMaterial = COL_MATERIAL_HARD; this->collider.base.acFlags |= AC_HARD; this->timer = 45; @@ -326,7 +326,7 @@ void EnDekubaba_SetupGrow(EnDekubaba* this) { this->collider.elements[i].base.ocElemFlags |= OCELEM_ON; } - this->collider.base.colType = COLTYPE_HIT6; + this->collider.base.colMaterial = COL_MATERIAL_HIT6; this->collider.base.acFlags &= ~AC_HARD; Actor_PlaySfx(&this->actor, NA_SE_EN_DUMMY482); this->actionFunc = EnDekubaba_Grow; @@ -1034,7 +1034,7 @@ void EnDekubaba_UpdateDamage(EnDekubaba* this, PlayState* play) { this->collider.base.acFlags &= ~AC_HIT; Actor_SetDropFlagJntSph(&this->actor, &this->collider, true); - if ((this->collider.base.colType != COLTYPE_HARD) && + if ((this->collider.base.colMaterial != COL_MATERIAL_HARD) && ((this->actor.colChkInfo.damageEffect != DEKUBABA_DMGEFF_NONE) || (this->actor.colChkInfo.damage != 0))) { phi_s0 = this->actor.colChkInfo.health - this->actor.colChkInfo.damage; @@ -1082,7 +1082,7 @@ void EnDekubaba_UpdateDamage(EnDekubaba* this, PlayState* play) { } else { return; } - } else if ((play->actorCtx.unk_02 != 0) && (this->collider.base.colType != COLTYPE_HARD) && + } else if ((play->actorCtx.unk_02 != 0) && (this->collider.base.colMaterial != COL_MATERIAL_HARD) && (this->actionFunc != EnDekubaba_StunnedVertical) && (this->actionFunc != EnDekubaba_Hit) && (this->actor.colChkInfo.health != 0)) { this->actor.colChkInfo.health--; diff --git a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c index ff005e5895..fdd6042d36 100644 --- a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c +++ b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c @@ -44,7 +44,7 @@ ActorProfile En_Dekunuts_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Dh/z_en_dh.c b/src/overlays/actors/ovl_En_Dh/z_en_dh.c index fd224646d2..4a8afd7fc9 100644 --- a/src/overlays/actors/ovl_En_Dh/z_en_dh.c +++ b/src/overlays/actors/ovl_En_Dh/z_en_dh.c @@ -45,7 +45,7 @@ ActorProfile En_Dh_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, @@ -79,7 +79,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_En_Dha/z_en_dha.c b/src/overlays/actors/ovl_En_Dha/z_en_dha.c index e193d17db8..ffaf055780 100644 --- a/src/overlays/actors/ovl_En_Dha/z_en_dha.c +++ b/src/overlays/actors/ovl_En_Dha/z_en_dha.c @@ -130,7 +130,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER | OC1_TYPE_1, diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c index 9a40d4a927..74ddbbbc59 100644 --- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c +++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c @@ -50,7 +50,7 @@ static u8 D_809EF0B0 = false; static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index e7a082260e..fa86849dbb 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -56,7 +56,7 @@ ActorProfile En_Dns_Profile = { static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index 057bc5bdd7..d2f5ec58ea 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -53,7 +53,7 @@ ActorProfile En_Dnt_Jiji_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c index 94a6531c52..65c56052f8 100644 --- a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c +++ b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c @@ -70,7 +70,7 @@ ActorProfile En_Dnt_Nomal_Profile = { static ColliderCylinderInit sBodyCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -90,7 +90,7 @@ static ColliderCylinderInit sBodyCylinderInit = { static ColliderQuadInit sTargetQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c index 468d9cf7e4..df7de3fb2e 100644 --- a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c +++ b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c @@ -45,7 +45,7 @@ ActorProfile En_Dodojr_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index ef09744a7c..8b3c3a1b0b 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -119,7 +119,7 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = { static ColliderJntSphInit sBodyJntSphInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -168,7 +168,7 @@ static ColliderTrisElementInit sHardElementsInit[3] = { static ColliderTrisInit sHardTrisInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, @@ -181,7 +181,7 @@ static ColliderTrisInit sHardTrisInit = { static ColliderQuadInit sAttackQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Dog/z_en_dog.c b/src/overlays/actors/ovl_En_Dog/z_en_dog.c index 320bfbc98b..8a656adb29 100644 --- a/src/overlays/actors/ovl_En_Dog/z_en_dog.c +++ b/src/overlays/actors/ovl_En_Dog/z_en_dog.c @@ -35,7 +35,7 @@ ActorProfile En_Dog_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index d6ca5252df..6822749123 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -36,7 +36,7 @@ ActorProfile En_Du_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c index d9b561492e..03337e4a57 100644 --- a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c +++ b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c @@ -49,7 +49,7 @@ ActorProfile En_Eiyer_Profile = { static ColliderCylinderInit sColCylInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Fd/z_en_fd.c b/src/overlays/actors/ovl_En_Fd/z_en_fd.c index c8796a5cda..816b6a73df 100644 --- a/src/overlays/actors/ovl_En_Fd/z_en_fd.c +++ b/src/overlays/actors/ovl_En_Fd/z_en_fd.c @@ -176,7 +176,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c index 8fc3fc29fc..4986f442d0 100644 --- a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c +++ b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c @@ -26,7 +26,7 @@ ActorProfile En_Fd_Fire_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c index b606f65302..9a31deab26 100644 --- a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c +++ b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c @@ -58,7 +58,7 @@ ActorProfile En_Fhg_Fire_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c index aa629e33a2..2c4f71b2ce 100644 --- a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c +++ b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c @@ -29,7 +29,7 @@ ActorProfile En_Fire_Rock_Profile = { static ColliderCylinderInit D_80A12CA0 = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -49,7 +49,7 @@ static ColliderCylinderInit D_80A12CA0 = { static ColliderCylinderInit D_80A12CCC = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index 0e2c334179..09e9d23e35 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -62,7 +62,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Fish/z_en_fish.c b/src/overlays/actors/ovl_En_Fish/z_en_fish.c index 757eddd05c..ac45aca806 100644 --- a/src/overlays/actors/ovl_En_Fish/z_en_fish.c +++ b/src/overlays/actors/ovl_En_Fish/z_en_fish.c @@ -53,7 +53,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index b7515210d2..d692dfe44a 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -58,7 +58,7 @@ ActorProfile En_Floormas_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -181,13 +181,13 @@ void EnFloormas_Destroy(Actor* thisx, PlayState* play) { } void EnFloormas_MakeInvulnerable(EnFloormas* this) { - this->collider.base.colType = COLTYPE_HARD; + this->collider.base.colMaterial = COL_MATERIAL_HARD; this->collider.base.acFlags |= AC_HARD; this->actionTarget = 0x28; } void EnFloormas_MakeVulnerable(EnFloormas* this) { - this->collider.base.colType = COLTYPE_HIT0; + this->collider.base.colMaterial = COL_MATERIAL_HIT0; this->actionTarget = 0; this->collider.base.acFlags &= ~AC_HARD; } @@ -980,7 +980,7 @@ void EnFloormas_ColliderCheck(EnFloormas* this, PlayState* play) { this->collider.base.acFlags &= ~AC_HIT; Actor_SetDropFlag(&this->actor, &this->collider.elem, true); if ((this->actor.colChkInfo.damageEffect != 0) || (this->actor.colChkInfo.damage != 0)) { - if (this->collider.base.colType != COLTYPE_HARD) { + if (this->collider.base.colMaterial != COL_MATERIAL_HARD) { isSmall = false; if (this->actor.scale.x < 0.01f) { isSmall = true; @@ -1063,7 +1063,7 @@ void EnFloormas_Update(Actor* thisx, PlayState* play) { Actor_SetFocus(&this->actor, this->actor.scale.x * 2500.0f); - if (this->collider.base.colType == COLTYPE_HARD) { + if (this->collider.base.colMaterial == COL_MATERIAL_HARD) { if (this->actionTarget != 0) { this->actionTarget--; } @@ -1106,14 +1106,14 @@ void EnFloormas_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_floormas.c", 2318); Gfx_SetupDL_25Opa(play->state.gfxCtx); - if (this->collider.base.colType == COLTYPE_HARD) { + if (this->collider.base.colMaterial == COL_MATERIAL_HARD) { func_80026230(play, &sMergeColor, this->actionTarget % 0x28, 0x28); } POLY_OPA_DISP = SkelAnime_DrawFlex(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, EnFloormas_OverrideLimbDraw, EnFloormas_PostLimbDraw, this, POLY_OPA_DISP); - if (this->collider.base.colType == COLTYPE_HARD) { + if (this->collider.base.colMaterial == COL_MATERIAL_HARD) { func_80026608(play); } @@ -1126,13 +1126,13 @@ void EnFloormas_DrawHighlighted(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_floormas.c", 2352); Gfx_SetupDL_25Xlu(play->state.gfxCtx); - if (this->collider.base.colType == COLTYPE_HARD) { + if (this->collider.base.colMaterial == COL_MATERIAL_HARD) { func_80026690(play, &sMergeColor, this->actionTarget % 0x28, 0x28); } POLY_XLU_DISP = SkelAnime_DrawFlex(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, EnFloormas_OverrideLimbDraw, EnFloormas_PostLimbDraw, this, POLY_XLU_DISP); - if (this->collider.base.colType == COLTYPE_HARD) { + if (this->collider.base.colMaterial == COL_MATERIAL_HARD) { func_80026A6C(play); } diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 5c65d7bf41..45e84423b9 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -42,7 +42,7 @@ ActorProfile En_Fu_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Fw/z_en_fw.c b/src/overlays/actors/ovl_En_Fw/z_en_fw.c index cc20ea25a5..467b4eaf3f 100644 --- a/src/overlays/actors/ovl_En_Fw/z_en_fw.c +++ b/src/overlays/actors/ovl_En_Fw/z_en_fw.c @@ -52,7 +52,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index 6aec8f9126..47f3e1a7b6 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -59,7 +59,7 @@ ActorProfile En_Fz_Profile = { static ColliderCylinderInitType1 sCylinderInit1 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -78,7 +78,7 @@ static ColliderCylinderInitType1 sCylinderInit1 = { static ColliderCylinderInitType1 sCylinderInit2 = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, @@ -97,7 +97,7 @@ static ColliderCylinderInitType1 sCylinderInit2 = { static ColliderCylinderInitType1 sCylinderInit3 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c index 12659edf68..8045aac430 100644 --- a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c +++ b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c @@ -41,7 +41,7 @@ static s16 sCollectedCount = 0; static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index e63259cb92..a03d2f1053 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -46,7 +46,7 @@ static EnGbCagedSoulInfo sCagedSoulInfo[] = { static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -66,7 +66,7 @@ static ColliderCylinderInitType1 sCylinderInit = { static ColliderCylinderInitType1 sBottlesCylindersInit[] = { { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -84,7 +84,7 @@ static ColliderCylinderInitType1 sBottlesCylindersInit[] = { }, { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -102,7 +102,7 @@ static ColliderCylinderInitType1 sBottlesCylindersInit[] = { }, { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index 56fb1dd27e..dc818d6292 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -53,7 +53,7 @@ ActorProfile En_Ge1_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index a5903e21f0..49f343855b 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -69,7 +69,7 @@ ActorProfile En_Ge2_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c index 68be541e7a..a0799822a3 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c @@ -33,7 +33,7 @@ ActorProfile En_Ge3_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c index d9fed96d1e..9aa057d69d 100644 --- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c +++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c @@ -83,7 +83,7 @@ ActorProfile En_GeldB_Profile = { static ColliderCylinderInit sBodyCylInit = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -128,7 +128,7 @@ static ColliderTrisElementInit sBlockTrisElementsInit[2] = { static ColliderTrisInit sBlockTrisInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, @@ -141,7 +141,7 @@ static ColliderTrisInit sBlockTrisInit = { static ColliderQuadInit sSwordQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index 68fca33fdd..7c6e2ac6bf 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -40,7 +40,7 @@ ActorProfile En_Gm_Profile = { static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index 95cf647b3a..52f9bc125a 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -48,7 +48,7 @@ ActorProfile En_Go_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index 0b2a31e00c..7e44845803 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -66,7 +66,7 @@ static Vec3f sAccel = { 0.0f, 0.3f, 0.0f }; static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c index 747a46f8a0..29bab5103f 100644 --- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -56,7 +56,7 @@ ActorProfile En_Goma_Profile = { static ColliderCylinderInit D_80A4B7A0 = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -76,7 +76,7 @@ static ColliderCylinderInit D_80A4B7A0 = { static ColliderCylinderInit D_80A4B7CC = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c index 71cdfb185c..2e1da985e2 100644 --- a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c +++ b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c @@ -71,7 +71,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index d5a2e2eb57..e488dba55c 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -35,7 +35,7 @@ ActorProfile En_Gs_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Guest/z_en_guest.c b/src/overlays/actors/ovl_En_Guest/z_en_guest.c index 41fd2d9439..79c27bec42 100644 --- a/src/overlays/actors/ovl_En_Guest/z_en_guest.c +++ b/src/overlays/actors/ovl_En_Guest/z_en_guest.c @@ -34,7 +34,7 @@ ActorProfile En_Guest_Profile = { static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Hata/z_en_hata.c b/src/overlays/actors/ovl_En_Hata/z_en_hata.c index 0151dc7877..74b765e2ad 100644 --- a/src/overlays/actors/ovl_En_Hata/z_en_hata.c +++ b/src/overlays/actors/ovl_En_Hata/z_en_hata.c @@ -29,7 +29,7 @@ ActorProfile En_Hata_Profile = { // Unused Collider and CollisionCheck data static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index ac47fef992..0cedc0e6d2 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -64,7 +64,7 @@ ActorProfile En_Heishi2_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c index 4b22137ce3..f2ea414148 100644 --- a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c +++ b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c @@ -39,7 +39,7 @@ ActorProfile En_Heishi3_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c index ec04d982b5..be4a9e2f0c 100644 --- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c +++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c @@ -37,7 +37,7 @@ static u32 sMaskReactionSets[] = { MASK_REACTION_SET_HEISHI4_1, MASK_REACTION_SE static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index af3083c97a..a4a87b209a 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -41,7 +41,7 @@ ActorProfile En_Hintnuts_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c index 507b521607..2cc7d72e55 100644 --- a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c +++ b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c @@ -87,7 +87,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -100,7 +100,7 @@ static ColliderTrisInit sTrisInit = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/src/overlays/actors/ovl_En_Horse/z_en_horse.c index 6b1c908785..a734c1abab 100644 --- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c +++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c @@ -80,7 +80,7 @@ ActorProfile En_Horse_Profile = { static ColliderCylinderInit sCylinderInit1 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_TYPE_PLAYER, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -100,7 +100,7 @@ static ColliderCylinderInit sCylinderInit1 = { static ColliderCylinderInit sCylinderInit2 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -134,7 +134,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c b/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c index a02efe9342..9f94a571af 100644 --- a/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c +++ b/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c @@ -44,7 +44,7 @@ static f32 splaySpeeds[] = { 2.0f / 3.0f, 2.0f / 3.0f, 1.0f, 1.0f, 1.0f, 2.0f / static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -78,7 +78,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c index ff33ecbe37..9b4d55015e 100644 --- a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c +++ b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c @@ -38,7 +38,7 @@ static AnimationHeader* sAnimations[] = { static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -71,7 +71,7 @@ static ColliderJntSphElementInit sJntSphElementInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c index 278039ed43..99ccff9a14 100644 --- a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c +++ b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c @@ -59,7 +59,7 @@ static AnimationHeader* sAnimations[] = { static ColliderCylinderInit sCylinderInit1 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -79,7 +79,7 @@ static ColliderCylinderInit sCylinderInit1 = { static ColliderCylinderInit sCylinderInit2 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -113,7 +113,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c index acfa90aa60..691eb7eb69 100644 --- a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c +++ b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c @@ -36,7 +36,7 @@ static f32 splaySpeeds[] = { 2.0f / 3.0f }; static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -69,7 +69,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Hs/z_en_hs.c b/src/overlays/actors/ovl_En_Hs/z_en_hs.c index f5f07ff45e..ccfbf80a90 100644 --- a/src/overlays/actors/ovl_En_Hs/z_en_hs.c +++ b/src/overlays/actors/ovl_En_Hs/z_en_hs.c @@ -32,7 +32,7 @@ ActorProfile En_Hs_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c index 267258ee7a..d890734a28 100644 --- a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c +++ b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c @@ -30,7 +30,7 @@ ActorProfile En_Hs2_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/src/overlays/actors/ovl_En_Hy/z_en_hy.c index b5d86df314..72a438e04f 100644 --- a/src/overlays/actors/ovl_En_Hy/z_en_hy.c +++ b/src/overlays/actors/ovl_En_Hy/z_en_hy.c @@ -46,7 +46,7 @@ ActorProfile En_Hy_Profile = { static ColliderCylinderInit sColCylInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index 2ae77026e1..b2eaa14c33 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -38,7 +38,7 @@ ActorProfile En_Ice_Hono_Profile = { static ColliderCylinderInit sCylinderInitCapturableFlame = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -58,7 +58,7 @@ static ColliderCylinderInit sCylinderInitCapturableFlame = { static ColliderCylinderInit sCylinderInitDroppedFlame = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_OTHER, AC_NONE, OC1_ON | OC1_TYPE_2, diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c index 4dd20ca3c9..189c0ba2ee 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -67,7 +67,7 @@ void EnIk_StartDefeatCutscene(Actor* thisx, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -112,7 +112,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { static ColliderTrisInit sTrisInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, @@ -125,7 +125,7 @@ static ColliderTrisInit sTrisInit = { static ColliderQuadInit sQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, 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 3b63d0434c..6e6ee75fbd 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -38,7 +38,7 @@ ActorProfile En_In_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, 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 7ad1fe0d80..b40d6b9ee9 100644 --- a/src/overlays/actors/ovl_En_Insect/z_en_insect.c +++ b/src/overlays/actors/ovl_En_Insect/z_en_insect.c @@ -70,7 +70,7 @@ static ColliderJntSphElementInit sColliderItemInit[1] = { static ColliderJntSphInit sColliderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_PLAYER | OC1_TYPE_1, 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 441bc3064e..759469f06b 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -62,7 +62,7 @@ static EnIshiEffectSpawnFunc sDustSpawnFuncs[] = { EnIshi_SpawnDustSmall, EnIshi static ColliderCylinderInit sCylinderInits[] = { { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -81,7 +81,7 @@ static ColliderCylinderInit sCylinderInits[] = { }, { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_It/z_en_it.c b/src/overlays/actors/ovl_En_It/z_en_it.c index 8445812f79..e47ab03255 100644 --- a/src/overlays/actors/ovl_En_It/z_en_it.c +++ b/src/overlays/actors/ovl_En_It/z_en_it.c @@ -14,7 +14,7 @@ void EnIt_Update(Actor* thisx, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_NO_PUSH, diff --git a/src/overlays/actors/ovl_En_Jj/z_en_jj.c b/src/overlays/actors/ovl_En_Jj/z_en_jj.c index 02ed7fa2b3..2ce58860ee 100644 --- a/src/overlays/actors/ovl_En_Jj/z_en_jj.c +++ b/src/overlays/actors/ovl_En_Jj/z_en_jj.c @@ -48,7 +48,7 @@ static s32 sUnused2[] = { 0, 0 }; static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Js/z_en_js.c b/src/overlays/actors/ovl_En_Js/z_en_js.c index 17c4b041b4..370ed29352 100644 --- a/src/overlays/actors/ovl_En_Js/z_en_js.c +++ b/src/overlays/actors/ovl_En_Js/z_en_js.c @@ -30,7 +30,7 @@ ActorProfile En_Js_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index 91f6149099..8ed2e27c32 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -24,7 +24,7 @@ void func_80A8FAA4(EnKakasi* this, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c index ae3e104f62..83cdc9b6cb 100644 --- a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c +++ b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c @@ -12,7 +12,7 @@ static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index bca4a7f43e..23da94a291 100644 --- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -28,7 +28,7 @@ void func_80A91A90(EnKakasi3* this, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, 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 2989f8e088..53a4cfc6a0 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -90,7 +90,7 @@ ActorProfile En_Kanban_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index 705f98b38f..ff9f487194 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -43,7 +43,7 @@ ActorProfile En_Karebaba_Profile = { static ColliderCylinderInit sBodyColliderInit = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -63,7 +63,7 @@ static ColliderCylinderInit sBodyColliderInit = { static ColliderCylinderInit sHeadColliderInit = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -123,7 +123,7 @@ void EnKarebaba_Destroy(Actor* thisx, PlayState* play) { void EnKarebaba_ResetCollider(EnKarebaba* this) { this->bodyCollider.dim.radius = 7; this->bodyCollider.dim.height = 25; - this->bodyCollider.base.colType = COLTYPE_HARD; + this->bodyCollider.base.colMaterial = COL_MATERIAL_HARD; this->bodyCollider.base.acFlags |= AC_HARD; this->bodyCollider.elem.acDmgInfo.dmgFlags = DMG_DEFAULT; this->headCollider.dim.height = 25; @@ -153,7 +153,7 @@ void EnKarebaba_SetupAwaken(EnKarebaba* this) { void EnKarebaba_SetupUpright(EnKarebaba* this) { if (this->actionFunc != EnKarebaba_Spin) { Actor_SetScale(&this->actor, 0.01f); - this->bodyCollider.base.colType = COLTYPE_HIT6; + this->bodyCollider.base.colMaterial = COL_MATERIAL_HIT6; this->bodyCollider.base.acFlags &= ~AC_HARD; this->bodyCollider.elem.acDmgInfo.dmgFlags = !LINK_IS_ADULT ? ((DMG_SWORD | DMG_BOOMERANG) & ~DMG_JUMP_MASTER) : (DMG_SWORD | DMG_BOOMERANG); diff --git a/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/src/overlays/actors/ovl_En_Ko/z_en_ko.c index 0c738afefe..89c828a4ff 100644 --- a/src/overlays/actors/ovl_En_Ko/z_en_ko.c +++ b/src/overlays/actors/ovl_En_Ko/z_en_ko.c @@ -44,7 +44,7 @@ ActorProfile En_Ko_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, 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 48f0043d9d..c87ad1147d 100644 --- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c +++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c @@ -57,7 +57,7 @@ static s16 sObjectIds[] = { OBJECT_GAMEPLAY_FIELD_KEEP, OBJECT_KUSA, OBJECT_KUSA static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER | OC1_TYPE_2, diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c index 43c72e7149..3de640cdec 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -36,7 +36,7 @@ ActorProfile En_Kz_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c b/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c index 74bc53af1f..e510b0d987 100644 --- a/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c +++ b/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c @@ -26,7 +26,7 @@ ActorProfile En_M_Fire1_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_PLAYER, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c index 6303391a6e..4c81a52a1e 100644 --- a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c +++ b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c @@ -26,7 +26,7 @@ ActorProfile En_M_Thunder_Profile = { static ColliderCylinderInit D_80AA0420 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_PLAYER, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index caf06ced84..044367361e 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -37,7 +37,7 @@ ActorProfile En_Ma1_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index 1f56ab1d71..f297f92965 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -31,7 +31,7 @@ ActorProfile En_Ma2_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c index f547ba3251..182b2d1539 100644 --- a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c +++ b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c @@ -34,7 +34,7 @@ ActorProfile En_Ma3_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Mb/z_en_mb.c b/src/overlays/actors/ovl_En_Mb/z_en_mb.c index 8796955aa6..12c21757db 100644 --- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c +++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c @@ -91,7 +91,7 @@ void EnMb_ClubDamaged(EnMb* this, PlayState* play); static ColliderCylinderInit sBodyColliderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -136,7 +136,7 @@ static ColliderTrisElementInit sFrontShieldingTrisInit[2] = { static ColliderTrisInit sFrontShieldingInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, @@ -149,7 +149,7 @@ static ColliderTrisInit sFrontShieldingInit = { static ColliderQuadInit sAttackColliderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c index 04f5e03ce0..39f1e5a535 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -35,7 +35,7 @@ ActorProfile En_Md_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, 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 31e89655ce..e15bd1ed49 100644 --- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c +++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c @@ -30,7 +30,7 @@ ActorProfile En_Mk_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index 7606f8d9e3..c571153880 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -53,7 +53,7 @@ ActorProfile En_Mm_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c index d5cb108400..424b7877ee 100644 --- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c +++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c @@ -49,7 +49,7 @@ ActorProfile En_Mm2_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c index 3f8ad8d7ca..f8d17a043d 100644 --- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c +++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c @@ -34,7 +34,7 @@ ActorProfile En_Ms_Profile = { static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c index af1c6d32ef..77ebf7a5e2 100644 --- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c +++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c @@ -19,7 +19,7 @@ s16 EnMu_UpdateTalkState(PlayState* play, Actor* thisx); static ColliderCylinderInit D_80AB0BD0 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, 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 270e59bbcc..f7f288f2ef 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -60,7 +60,7 @@ void EnNb_Draw(Actor* thisx, PlayState* play); static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, 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 430012ebf6..a0ab483e2d 100644 --- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -75,7 +75,7 @@ static u8 sUpperRiverSpawned = false; static ColliderCylinderInit sCylinderInit1 = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON, @@ -95,7 +95,7 @@ static ColliderCylinderInit sCylinderInit1 = { static ColliderCylinderInit sCylinderInit2 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index 066ef78c62..c5a2090f7c 100644 --- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -33,7 +33,7 @@ ActorProfile En_Niw_Girl_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index 439af090f9..fa650587dc 100644 --- a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -48,7 +48,7 @@ static s16 D_80ABB3B4[] = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c index 18b98fbc16..b905f6cb18 100644 --- a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c +++ b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c @@ -36,7 +36,7 @@ ActorProfile En_Nutsball_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c index c95daad746..a56940493d 100644 --- a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c +++ b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c @@ -56,7 +56,7 @@ static ColliderJntSphElementInit sJntSphElementInit = { static ColliderJntSphInitType1 sJntSphInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, 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 dadd2359eb..720f9cc4c3 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -51,7 +51,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sColliderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -140,7 +140,7 @@ void EnNy_Init(Actor* thisx, PlayState* play) { PRINTF("En_Ny_actor_move2[ %x ] !!\n", EnNy_UpdateUnused); this->actor.colChkInfo.mass = 0xFF; this->actor.update = EnNy_UpdateUnused; - this->collider.base.colType = COLTYPE_METAL; + this->collider.base.colMaterial = COL_MATERIAL_METAL; } } diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index f20ed91de4..48f9bc6964 100644 --- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -33,7 +33,7 @@ ActorProfile En_Okuta_Profile = { static ColliderCylinderInit sProjectileColliderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -53,7 +53,7 @@ static ColliderCylinderInit sProjectileColliderInit = { static ColliderCylinderInit sOctorockColliderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index e8a86a7d3f..1041f02ebc 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -127,7 +127,7 @@ ActorProfile En_Ossan_Profile = { // Unused collider static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index 7cdc19b979..076715d55d 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -79,7 +79,7 @@ ActorProfile En_Owl_Profile = { static ColliderCylinderInit sOwlCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c index 0a21d5d386..2214b49ae3 100644 --- a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c +++ b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c @@ -54,7 +54,7 @@ ActorProfile En_Peehat_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_WOOD, + COL_MATERIAL_WOOD, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, @@ -88,7 +88,7 @@ static ColliderJntSphElementInit sJntSphElemInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, @@ -101,7 +101,7 @@ static ColliderJntSphInit sJntSphInit = { static ColliderQuadInit sQuadInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c index 768bbcb279..a219e5d402 100644 --- a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c +++ b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c @@ -33,7 +33,7 @@ ActorProfile En_Po_Desert_Profile = { static ColliderCylinderInit sColliderInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index 36ea062472..a04a1df018 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -48,7 +48,7 @@ ActorProfile En_Po_Field_Profile = { static ColliderCylinderInit D_80AD7080 = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -68,7 +68,7 @@ static ColliderCylinderInit D_80AD7080 = { static ColliderCylinderInit D_80AD70AC = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index 2ab6611aa1..6c6c8f2bfc 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -48,7 +48,7 @@ ActorProfile En_Po_Relay_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 739e137cfe..2ce612b027 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -77,7 +77,7 @@ ActorProfile En_Po_Sisters_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -267,7 +267,7 @@ void func_80AD943C(EnPoSisters* this) { void func_80AD944C(EnPoSisters* this) { if (this->unk_22E.a != 0) { - this->collider.base.colType = COLTYPE_METAL; + this->collider.base.colMaterial = COL_MATERIAL_METAL; this->collider.base.acFlags |= AC_HARD; } Animation_MorphToLoop(&this->skelAnime, &gPoeSistersAttackAnim, -5.0f); @@ -280,7 +280,7 @@ void func_80AD944C(EnPoSisters* this) { void func_80AD94E0(EnPoSisters* this) { this->actor.speed = 5.0f; if (this->unk_194 == 0) { - this->collider.base.colType = COLTYPE_METAL; + this->collider.base.colMaterial = COL_MATERIAL_METAL; this->collider.base.acFlags |= AC_HARD; Animation_MorphToLoop(&this->skelAnime, &gPoeSistersAttackAnim, -5.0f); } @@ -294,7 +294,7 @@ void func_80AD9568(EnPoSisters* this) { Animation_MorphToLoop(&this->skelAnime, &gPoeSistersFloatAnim, -3.0f); this->actor.world.rot.y = this->actor.yawTowardsPlayer + 0x8000; if (this->unk_194 != 0) { - this->collider.base.colType = COLTYPE_HIT3; + this->collider.base.colMaterial = COL_MATERIAL_HIT3; this->collider.base.acFlags &= ~AC_HARD; } this->actionFunc = func_80ADA9E8; @@ -431,7 +431,7 @@ void func_80AD9C24(EnPoSisters* this, PlayState* play) { this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->unk_19C = 100; this->unk_199 = 32; - this->collider.base.colType = COLTYPE_HIT3; + this->collider.base.colMaterial = COL_MATERIAL_HIT3; this->collider.base.acFlags &= ~AC_HARD; if (play != NULL) { vec.x = this->actor.world.pos.x; @@ -673,7 +673,7 @@ void func_80ADA8C0(EnPoSisters* this, PlayState* play) { this->actor.shape.rot.y += (384.0f * this->skelAnime.endFrame) * 3.0f; if (this->unk_19A == 0 && ABS((s16)(this->actor.shape.rot.y - this->actor.world.rot.y)) < 0x1000) { if (this->unk_194 != 0) { - this->collider.base.colType = COLTYPE_HIT3; + this->collider.base.colMaterial = COL_MATERIAL_HIT3; this->collider.base.acFlags &= ~AC_HARD; func_80AD93C4(this); } else { @@ -1147,7 +1147,7 @@ void func_80ADC10C(EnPoSisters* this, PlayState* play) { sp24.z = this->actor.world.pos.z; Item_DropCollectible(play, &sp24, ITEM00_ARROWS_SMALL); } - } else if (this->collider.base.colType == 9 || + } else if (this->collider.base.colMaterial == COL_MATERIAL_METAL || (this->actor.colChkInfo.damageEffect == 0 && this->actor.colChkInfo.damage == 0)) { if (this->unk_194 == 0) { this->actor.freezeTimer = 0; diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index 1092ecabce..14d63fc0cf 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -56,7 +56,7 @@ ActorProfile En_Poh_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -90,7 +90,7 @@ static ColliderJntSphElementInit D_80AE1AA0[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT3, + COL_MATERIAL_HIT3, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index 5e9af39bea..ff6e7dc1a4 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -66,7 +66,7 @@ ActorProfile En_Rd_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c index 75a3e49eec..2a84f263aa 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c @@ -89,7 +89,7 @@ ActorProfile En_Reeba_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index 6abb326ed8..b9bc67984b 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -85,7 +85,7 @@ static char* sDropNames[] = { static ColliderCylinderInitType1 sCylinderInit1 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, @@ -104,7 +104,7 @@ static ColliderCylinderInitType1 sCylinderInit1 = { static ColliderCylinderInitType1 sCylinderInit2 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_NO_PUSH | OC1_TYPE_PLAYER, 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 1a80885f30..c0443bf119 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -71,7 +71,7 @@ void EnRu1_DrawXlu(EnRu1* this, PlayState* play); static ColliderCylinderInitType1 sCylinderInit1 = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, @@ -83,7 +83,7 @@ static ColliderCylinderInitType1 sCylinderInit1 = { static ColliderCylinderInitType1 sCylinderInit2 = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_ON | AT_TYPE_PLAYER, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c index 9bcb6c8d72..733aefd47d 100644 --- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c +++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c @@ -45,7 +45,7 @@ void func_80AF2AB4(EnRu2* this, PlayState* play); static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index 70c12a09f8..b36ba4d058 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -47,7 +47,7 @@ ActorProfile En_Sa_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, 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 108c6663a5..647d321273 100644 --- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c +++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c @@ -39,7 +39,7 @@ ActorProfile En_Sb_Profile = { static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c index 602dbe0d32..bfe5cccb32 100644 --- a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c +++ b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c @@ -35,7 +35,7 @@ ActorProfile En_Shopnuts_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Si/z_en_si.c b/src/overlays/actors/ovl_En_Si/z_en_si.c index 50a8a1479d..c7d86b18ab 100644 --- a/src/overlays/actors/ovl_En_Si/z_en_si.c +++ b/src/overlays/actors/ovl_En_Si/z_en_si.c @@ -20,7 +20,7 @@ void func_80AFB950(EnSi* this, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_NO_PUSH | OC1_TYPE_ALL, 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 2d1a4aad6c..c0410bb881 100644 --- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c +++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c @@ -67,7 +67,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index a630995c9e..566afcdadf 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -173,7 +173,7 @@ ActorProfile En_Skj_Profile = { static ColliderCylinderInitType1 D_80B01678 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c index a893e4766b..7209f3aace 100644 --- a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c +++ b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c @@ -30,7 +30,7 @@ ActorProfile En_Skjneedle_Profile = { static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_HIT1, + COL_MATERIAL_HIT1, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c index d976720575..c77228e084 100644 --- a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c +++ b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c @@ -44,7 +44,7 @@ ActorProfile En_Ssh_Profile = { static ColliderCylinderInit sCylinderInit1 = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -66,7 +66,7 @@ static CollisionCheckInfoInit2 sColChkInfoInit = { 1, 0, 0, 0, MASS_IMMOVABLE }; static ColliderCylinderInit sCylinderInit2 = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -100,7 +100,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -205,7 +205,7 @@ void EnSsh_InitColliders(EnSsh* this, PlayState* play) { this->colCylinder[1].elem.acDmgInfo.dmgFlags = DMG_DEFAULT & ~(DMG_ARROW | DMG_MAGIC_FIRE | DMG_HOOKSHOT | DMG_HAMMER_SWING | DMG_EXPLOSIVE | DMG_DEKU_NUT) & ~(DMG_MAGIC_LIGHT | DMG_MAGIC_ICE); - this->colCylinder[2].base.colType = COLTYPE_METAL; + this->colCylinder[2].base.colMaterial = COL_MATERIAL_METAL; this->colCylinder[2].elem.acElemFlags = ACELEM_ON | ACELEM_HOOKABLE | ACELEM_NO_AT_INFO; this->colCylinder[2].elem.elemType = ELEMTYPE_UNK2; this->colCylinder[2].elem.acDmgInfo.dmgFlags = diff --git a/src/overlays/actors/ovl_En_St/z_en_st.c b/src/overlays/actors/ovl_En_St/z_en_st.c index d70fd9b3fe..50284e761a 100644 --- a/src/overlays/actors/ovl_En_St/z_en_st.c +++ b/src/overlays/actors/ovl_En_St/z_en_st.c @@ -37,7 +37,7 @@ ActorProfile En_St_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -59,7 +59,7 @@ static CollisionCheckInfoInit2 sColChkInit = { 2, 0, 0, 0, MASS_IMMOVABLE }; static ColliderCylinderInit sCylinderInit2 = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -93,7 +93,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_ON | OC1_TYPE_ALL, @@ -291,7 +291,7 @@ void EnSt_InitColliders(EnSt* this, PlayState* play) { DMG_DEFAULT & ~(DMG_MAGIC_FIRE | DMG_ARROW | DMG_HOOKSHOT | DMG_HAMMER_SWING | DMG_BOOMERANG | DMG_EXPLOSIVE | DMG_DEKU_NUT) & ~(DMG_MAGIC_LIGHT | DMG_MAGIC_ICE); - this->colCylinder[2].base.colType = COLTYPE_METAL; + this->colCylinder[2].base.colMaterial = COL_MATERIAL_METAL; this->colCylinder[2].elem.acElemFlags = ACELEM_ON | ACELEM_HOOKABLE | ACELEM_NO_AT_INFO; this->colCylinder[2].elem.elemType = ELEMTYPE_UNK2; this->colCylinder[2].elem.acDmgInfo.dmgFlags = diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c index d70c5e1694..7618defb00 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -38,7 +38,7 @@ ActorProfile En_Sth_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Sw/z_en_sw.c b/src/overlays/actors/ovl_En_Sw/z_en_sw.c index 5846ecc09e..0322690da7 100644 --- a/src/overlays/actors/ovl_En_Sw/z_en_sw.c +++ b/src/overlays/actors/ovl_En_Sw/z_en_sw.c @@ -40,7 +40,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[1] = { }; static ColliderJntSphInit sJntSphInit = { - { COLTYPE_HIT6, 0x11, 0x09, 0x39, 0x10, COLSHAPE_JNTSPH }, + { COL_MATERIAL_HIT6, 0x11, 0x09, 0x39, 0x10, COLSHAPE_JNTSPH }, 1, sJntSphItemsInit, }; diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c index 31a28f9744..26ec5b8672 100644 --- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c +++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c @@ -40,7 +40,7 @@ ActorProfile En_Syateki_Niw_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index 45e449992f..47e2ed2679 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -71,7 +71,7 @@ ActorProfile En_Ta_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, 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 44db5bb080..6db22e5266 100644 --- a/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -139,7 +139,7 @@ ActorProfile En_Test_Profile = { static ColliderCylinderInit sBodyColliderInit = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -159,7 +159,7 @@ static ColliderCylinderInit sBodyColliderInit = { static ColliderCylinderInit sShieldColliderInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, @@ -179,7 +179,7 @@ static ColliderCylinderInit sShieldColliderInit = { static ColliderQuadInit sSwordColliderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/src/overlays/actors/ovl_En_Tg/z_en_tg.c index edd86bd1a5..24b48a5f43 100644 --- a/src/overlays/actors/ovl_En_Tg/z_en_tg.c +++ b/src/overlays/actors/ovl_En_Tg/z_en_tg.c @@ -18,7 +18,7 @@ void EnTg_SpinIfNotTalking(EnTg* this, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, 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 09914205a0..163ed17edb 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -102,7 +102,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT6, + COL_MATERIAL_HIT6, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 7a1dd4b8a7..84c7baf20c 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -138,7 +138,7 @@ s32 EnTkEff_CreateDflt(EnTk* this, Vec3f* pos, u8 duration, f32 size, f32 growth static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c index 9d88eda5b8..287a5912f0 100644 --- a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c +++ b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c @@ -103,7 +103,7 @@ void EnTorch2_Init(Actor* thisx, PlayState* play2) { this->cylinder.base.acFlags = AC_ON | AC_TYPE_PLAYER; this->meleeWeaponQuads[0].base.atFlags = this->meleeWeaponQuads[1].base.atFlags = AT_ON | AT_TYPE_ENEMY; this->meleeWeaponQuads[0].base.acFlags = this->meleeWeaponQuads[1].base.acFlags = AC_ON | AC_HARD | AC_TYPE_PLAYER; - this->meleeWeaponQuads[0].base.colType = this->meleeWeaponQuads[1].base.colType = COLTYPE_METAL; + this->meleeWeaponQuads[0].base.colMaterial = this->meleeWeaponQuads[1].base.colMaterial = COL_MATERIAL_METAL; this->meleeWeaponQuads[0].elem.atDmgInfo.damage = this->meleeWeaponQuads[1].elem.atDmgInfo.damage = 8; this->meleeWeaponQuads[0].elem.acElemFlags = this->meleeWeaponQuads[1].elem.acElemFlags = ACELEM_ON; this->shieldQuad.base.atFlags = AT_ON | AT_TYPE_ENEMY; @@ -697,10 +697,10 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { sDodgeRollState = (this->invincibilityTimer > 0) ? 2 : 0; } if (this->invincibilityTimer != 0) { - this->cylinder.base.colType = COLTYPE_NONE; + this->cylinder.base.colMaterial = COL_MATERIAL_NONE; this->cylinder.elem.elemType = ELEMTYPE_UNK5; } else { - this->cylinder.base.colType = COLTYPE_HIT5; + this->cylinder.base.colMaterial = COL_MATERIAL_HIT5; this->cylinder.elem.elemType = ELEMTYPE_UNK1; } /* diff --git a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c index d450acc0bd..f4e44742ee 100644 --- a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c +++ b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c @@ -32,7 +32,7 @@ ActorProfile En_Toryo_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c index 6319ac9b1e..effc903c7e 100644 --- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c +++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c @@ -67,7 +67,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_HIT1, + COL_MATERIAL_HIT1, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Trap/z_en_trap.c b/src/overlays/actors/ovl_En_Trap/z_en_trap.c index 5157cdf20f..6abc575158 100644 --- a/src/overlays/actors/ovl_En_Trap/z_en_trap.c +++ b/src/overlays/actors/ovl_En_Trap/z_en_trap.c @@ -48,7 +48,7 @@ ActorProfile En_Trap_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_NO_PUSH | OC1_TYPE_1 | OC1_TYPE_2, 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 e32db45969..a0f6a6a723 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 @@ -22,7 +22,7 @@ void EnTuboTrap_Fly(EnTuboTrap* this, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Vali/z_en_vali.c b/src/overlays/actors/ovl_En_Vali/z_en_vali.c index bc98ba6cf3..b94a9d3704 100644 --- a/src/overlays/actors/ovl_En_Vali/z_en_vali.c +++ b/src/overlays/actors/ovl_En_Vali/z_en_vali.c @@ -43,7 +43,7 @@ ActorProfile En_Vali_Profile = { static ColliderQuadInit sQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, @@ -63,7 +63,7 @@ static ColliderQuadInit sQuadInit = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT8, + COL_MATERIAL_HIT8, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c index 8553fcad22..d838dcb6cd 100644 --- a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c +++ b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c @@ -30,7 +30,7 @@ ActorProfile En_Vb_Ball_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/src/overlays/actors/ovl_En_Vm/z_en_vm.c index c938fec0f9..c29b23636d 100644 --- a/src/overlays/actors/ovl_En_Vm/z_en_vm.c +++ b/src/overlays/actors/ovl_En_Vm/z_en_vm.c @@ -37,7 +37,7 @@ ActorProfile En_Vm_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -57,7 +57,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderQuadInit sQuadInit1 = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_NONE, OC1_NONE, @@ -77,7 +77,7 @@ static ColliderQuadInit sQuadInit1 = { static ColliderQuadInit sQuadInit2 = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index b50c55776f..893eda3176 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -52,7 +52,7 @@ ActorProfile En_Wallmas_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, 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 2a710a3643..66dcb02e71 100644 --- a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c +++ b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c @@ -40,7 +40,7 @@ ActorProfile En_Weiyer_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c index aff693da0e..05dbe9a297 100644 --- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -92,7 +92,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[4] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -105,7 +105,7 @@ static ColliderJntSphInit sJntSphInit = { static ColliderCylinderInit sBodyCylinderInit = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -125,7 +125,7 @@ static ColliderCylinderInit sBodyCylinderInit = { static ColliderCylinderInit sTailCylinderInit = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c index f95aae46b1..3b112cc8ad 100644 --- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c +++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c @@ -23,7 +23,7 @@ void EnWonderItem_RollDrop(EnWonderItem* this, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c index 0fb8813a9a..0bfd791d54 100644 --- a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c +++ b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c @@ -47,7 +47,7 @@ ActorProfile En_Wood02_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_TREE, + COL_MATERIAL_TREE, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, 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 89907ee1c6..bc71fe7dd6 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -32,7 +32,7 @@ void EnXc_DrawSquintingEyes(Actor* thisx, PlayState* play); static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c index e45d92ba27..3c90f3f69f 100644 --- a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c +++ b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c @@ -16,7 +16,7 @@ void func_80B42F74(EnYabusameMark* this, PlayState* play); static ColliderQuadInit sQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c index ba5cc91a8d..b5df6984ba 100644 --- a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c +++ b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c @@ -32,7 +32,7 @@ ActorProfile En_Yukabyun_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_NO_PUSH | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index f945ac7a35..5f7ddb2793 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -113,7 +113,7 @@ ActorProfile En_Zf_Profile = { static ColliderCylinderInit sBodyCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, @@ -133,7 +133,7 @@ static ColliderCylinderInit sBodyCylinderInit = { static ColliderQuadInit sSwordQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, 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 5c756b5bb5..b029314ed1 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -41,7 +41,7 @@ ActorProfile En_Zl1_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c index cd177f338d..dc87b8cd78 100644 --- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c +++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c @@ -25,7 +25,7 @@ void func_80B59AD0(EnZl3* this, PlayState* play); static ColliderCylinderInitType1 sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, 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 05317ed7ae..3480fd7cb3 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -72,7 +72,7 @@ ActorProfile En_Zl4_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, 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 0af3e70f74..c5a4a0379b 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -276,7 +276,7 @@ void EnZo_TreadWaterRipples(EnZo* this, f32 scale, f32 targetScale, u8 alpha) { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 4550308e56..23f356bae2 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -338,7 +338,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_TYPE_ENEMY, AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c index fb4618a12b..f96a8a44ec 100644 --- a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c +++ b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c @@ -20,7 +20,7 @@ void func_80B86BC8(ItemShield* this, PlayState* play); static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c index 1986ddba96..ca8917cbd1 100644 --- a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c +++ b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c @@ -46,7 +46,7 @@ ActorProfile Magic_Fire_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_PLAYER, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c index 8867ae1b84..e81ddf89a5 100644 --- a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c +++ b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c @@ -46,7 +46,7 @@ static u8 D_80B8E670 = 0; static ColliderQuadInit sQuadInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_PLAYER, AC_NONE, OC1_NONE, @@ -80,7 +80,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_PLAYER, AC_NONE, OC1_NONE, diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c index 9157deeeeb..b8c908354a 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -86,7 +86,7 @@ ActorProfile Obj_Bean_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c index d728309122..16706d0e05 100644 --- a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c +++ b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c @@ -32,7 +32,7 @@ ActorProfile Obj_Bombiwa_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c index b1536273b9..673f90092b 100644 --- a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c +++ b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c @@ -48,7 +48,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = { static ColliderJntSphInit sJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_PLAYER, diff --git a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c index 91d25e4467..850e18a252 100644 --- a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c +++ b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c @@ -28,7 +28,7 @@ ActorProfile Obj_Hamishi_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c index 0d7737401b..86af604567 100644 --- a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c +++ b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c @@ -28,7 +28,7 @@ ActorProfile Obj_Hana_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c index 1c35eef865..954c9d3f87 100644 --- a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c +++ b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c @@ -31,7 +31,7 @@ ActorProfile Obj_Ice_Poly_Profile = { static ColliderCylinderInit sCylinderInitIce = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -51,7 +51,7 @@ static ColliderCylinderInit sCylinderInitIce = { static ColliderCylinderInit sCylinderInitHard = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_NONE, 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 dedcb559b3..b7320faa64 100644 --- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c +++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c @@ -36,7 +36,7 @@ ActorProfile Obj_Kibako_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_PLAYER, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c index f1300c3c98..272133bae3 100644 --- a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c +++ b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c @@ -31,7 +31,7 @@ ActorProfile Obj_Kibako2_Profile = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, diff --git a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c index 050d6226ca..b567b3b994 100644 --- a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c +++ b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c @@ -62,7 +62,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[] = { }; static ColliderJntSphInit sColliderJntSphInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c index cffb07fd4f..c44d78ae90 100644 --- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c +++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c @@ -98,7 +98,7 @@ static ColliderTrisElementInit sRustyFloorTrisElementsInit[2] = { static ColliderTrisInit sRustyFloorTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -136,7 +136,7 @@ static ColliderTrisElementInit sEyeTrisElementsInit[2] = { static ColliderTrisInit sEyeTrisInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -163,7 +163,7 @@ static ColliderJntSphElementInit sCrystalJntSphElementInit[1] = { static ColliderJntSphInit sCrystalJntSphInit = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index 9c8a3ef213..bc6b4bff31 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -30,7 +30,7 @@ ActorProfile Obj_Syokudai_Profile = { static ColliderCylinderInit sCylInitStand = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -50,7 +50,7 @@ static ColliderCylinderInit sCylInitStand = { static ColliderCylinderInit sCylInitFlame = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -78,7 +78,7 @@ static InitChainEntry sInitChain[] = { static s32 sLitTorchCount; void ObjSyokudai_Init(Actor* thisx, PlayState* play) { - static u8 sColTypesStand[] = { 0x09, 0x0B, 0x0B }; + static u8 sColMaterialsStand[] = { COL_MATERIAL_METAL, COL_MATERIAL_WOOD, COL_MATERIAL_WOOD }; s32 pad; ObjSyokudai* this = (ObjSyokudai*)thisx; s32 torchType = PARAMS_GET_NOSHIFT(this->actor.params, 12, 4); @@ -88,7 +88,7 @@ void ObjSyokudai_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->colliderStand); Collider_SetCylinder(play, &this->colliderStand, &this->actor, &sCylInitStand); - this->colliderStand.base.colType = sColTypesStand[PARAMS_GET_NOMASK(this->actor.params, 12)]; + this->colliderStand.base.colMaterial = sColMaterialsStand[PARAMS_GET_NOMASK(this->actor.params, 12)]; Collider_InitCylinder(play, &this->colliderFlame); Collider_SetCylinder(play, &this->colliderFlame, &this->actor, &sCylInitFlame); 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 ab73a0c9fa..01c0cf25d6 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -56,7 +56,7 @@ static Gfx* D_80BA1B8C[] = { gPotFragmentDL, object_tsubo_DL_001960 }; static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HARD, + COL_MATERIAL_HARD, AT_ON | AT_TYPE_PLAYER, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c index b89dfcd5ef..b4f3e8b417 100644 --- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c +++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c @@ -41,7 +41,7 @@ typedef enum FairySpawnerState { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 3d594f31d8..6844e76727 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -9894,7 +9894,7 @@ void Player_Action_80846578(Player* this, PlayState* play) { static ColliderCylinderInit D_80854624 = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_NONE, AC_ON | AC_TYPE_ENEMY, OC1_ON | OC1_TYPE_ALL, @@ -9914,7 +9914,7 @@ static ColliderCylinderInit D_80854624 = { static ColliderQuadInit D_80854650 = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_PLAYER, AC_NONE, OC1_NONE, @@ -9934,7 +9934,7 @@ static ColliderQuadInit D_80854650 = { static ColliderQuadInit D_808546A0 = { { - COLTYPE_METAL, + COL_MATERIAL_METAL, AT_ON | AT_TYPE_PLAYER, AC_ON | AC_HARD | AC_TYPE_ENEMY, OC1_NONE, diff --git a/tools/namefixer.py b/tools/namefixer.py index 150d094c44..761146e774 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -216,13 +216,13 @@ wordReplace = { "bumper.flags":"bumper.dmgFlags", "maskA ":"ocFlags1 ", "maskB ":"ocFlags2 ", - ".base.type":".base.colType", - "COLTYPE_UNK11":"COLTYPE_HARD", - "COLTYPE_UNK12":"COLTYPE_WOOD", - "COLTYPE_UNK13":"COLTYPE_TREE", - "COLTYPE_METAL_SHIELD":"COLTYPE_METAL", - "COLTYPE_UNK10":"COLTYPE_NONE", - "COLTYPE_UNK":"COLTYPE_HIT", + ".base.type":".base.colMaterial", + "COLTYPE_UNK11":"COL_MATERIAL_HARD", + "COLTYPE_UNK12":"COL_MATERIAL_WOOD", + "COLTYPE_UNK13":"COL_MATERIAL_TREE", + "COLTYPE_METAL_SHIELD":"COL_MATERIAL_METAL", + "COLTYPE_UNK10":"COL_MATERIAL_NONE", + "COLTYPE_UNK":"COL_MATERIAL_HIT", "info.flags":"info.elemtype", "ColliderBody":"ColliderInfo", "ColliderJntSphItem":"ColliderJntSphElement", diff --git a/tools/overlayhelpers/colliderinit.py b/tools/overlayhelpers/colliderinit.py index b82b781d83..f05785bcc4 100755 --- a/tools/overlayhelpers/colliderinit.py +++ b/tools/overlayhelpers/colliderinit.py @@ -10,20 +10,20 @@ TType1 = 'Type1' T_ACTOR = '_Actor' TYPE_ENUM = [ - "COLTYPE_HIT0", - "COLTYPE_HIT1", - "COLTYPE_HIT2", - "COLTYPE_HIT3", - "COLTYPE_HIT4", - "COLTYPE_HIT5", - "COLTYPE_HIT6", - "COLTYPE_HIT7", - "COLTYPE_HIT8", - "COLTYPE_METAL", - "COLTYPE_NONE", - "COLTYPE_WOOD", - "COLTYPE_HARD", - "COLTYPE_TREE" ] + "COL_MATERIAL_HIT0", + "COL_MATERIAL_HIT1", + "COL_MATERIAL_HIT2", + "COL_MATERIAL_HIT3", + "COL_MATERIAL_HIT4", + "COL_MATERIAL_HIT5", + "COL_MATERIAL_HIT6", + "COL_MATERIAL_HIT7", + "COL_MATERIAL_HIT8", + "COL_MATERIAL_METAL", + "COL_MATERIAL_NONE", + "COL_MATERIAL_WOOD", + "COL_MATERIAL_HARD", + "COL_MATERIAL_TREE" ] SHAPE_ENUM = [ "COLSHAPE_JNTSPH", From 09c1816e2d6c4da8468c59d69454aa3e6a9ef27f Mon Sep 17 00:00:00 2001 From: cadmic Date: Thu, 12 Sep 2024 02:24:31 -0700 Subject: [PATCH 71/86] Add OOT_PAL_N64 and move other shorthands to versions.h (#2188) * Move definitions of OOT_NTSC/OOT_PAL/OOT_MQ to versions.h * Add PAL_N64 shorthand --- Makefile | 30 ------------------- assets/text/nes_message_data_static.c | 1 + docs/c_cpp_properties.json | 18 ----------- docs/vscode.md | 2 -- include/macros.h | 2 ++ include/message_data_static.h | 1 + include/regs.h | 2 ++ include/segment_symbols.h | 1 + include/versions.h | 23 ++++++++++++++ include/z64.h | 1 + include/z64message.h | 1 + include/z64save.h | 1 + src/code/z_actor.c | 1 + src/code/z_construct.c | 1 + src/code/z_kanfont.c | 1 + src/code/z_parameter.c | 1 + src/code/z_scene_table.c | 2 +- src/code/z_sram.c | 1 + src/n64dd/n64dd_801C9440.c | 1 + src/overlays/actors/ovl_Fishing/z_fishing.c | 1 + .../ovl_file_choose/z_file_nameset.c | 1 + 21 files changed, 42 insertions(+), 51 deletions(-) diff --git a/Makefile b/Makefile index 8c5c0159a9..eac3532953 100644 --- a/Makefile +++ b/Makefile @@ -51,57 +51,39 @@ ifeq ($(VERSION),ntsc-1.2) REGIONAL_CHECKSUM := 1 REGION ?= JP PLATFORM := N64 - PAL := 0 - MQ := 0 DEBUG := 0 COMPARE := 0 else ifeq ($(VERSION),gc-jp) REGION ?= JP PLATFORM := GC - PAL := 0 - MQ := 0 DEBUG := 0 else ifeq ($(VERSION),gc-jp-mq) REGION ?= JP PLATFORM := GC - PAL := 0 - MQ := 1 DEBUG := 0 else ifeq ($(VERSION),gc-jp-ce) REGION ?= JP PLATFORM := GC - PAL := 0 - MQ := 0 DEBUG := 0 else ifeq ($(VERSION),gc-us) REGION ?= US PLATFORM := GC - PAL := 0 - MQ := 0 DEBUG := 0 else ifeq ($(VERSION),gc-us-mq) REGION ?= US PLATFORM := GC - PAL := 0 - MQ := 1 DEBUG := 0 else ifeq ($(VERSION),gc-eu) REGION ?= EU PLATFORM := GC - PAL := 1 - MQ := 0 DEBUG := 0 else ifeq ($(VERSION),gc-eu-mq) REGION ?= EU PLATFORM := GC - PAL := 1 - MQ := 1 DEBUG := 0 else ifeq ($(VERSION),gc-eu-mq-dbg) REGION ?= EU PLATFORM := GC - PAL := 1 - MQ := 1 DEBUG := 1 else $(error Unsupported version $(VERSION)) @@ -147,18 +129,6 @@ else $(error Unsupported platform $(PLATFORM)) endif -ifeq ($(PAL),0) - CPP_DEFINES += -DOOT_NTSC=1 -else - CPP_DEFINES += -DOOT_PAL=1 -endif - -ifeq ($(MQ),0) - CPP_DEFINES += -DOOT_MQ=0 -else - CPP_DEFINES += -DOOT_MQ=1 -endif - ifeq ($(DEBUG),1) CPP_DEFINES += -DOOT_DEBUG=1 OPTFLAGS := -O2 diff --git a/assets/text/nes_message_data_static.c b/assets/text/nes_message_data_static.c index 6124e07f75..06c415118b 100644 --- a/assets/text/nes_message_data_static.c +++ b/assets/text/nes_message_data_static.c @@ -1,6 +1,7 @@ #define MESSAGE_DATA_STATIC #include "message_data_fmt.h" +#include "versions.h" #define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ const char _message_##textId##_nes[] = nesMessage; diff --git a/docs/c_cpp_properties.json b/docs/c_cpp_properties.json index 8f3d0ea556..b863d21c63 100644 --- a/docs/c_cpp_properties.json +++ b/docs/c_cpp_properties.json @@ -19,8 +19,6 @@ "OOT_REGION=REGION_JP", "PLATFORM_N64=1", "PLATFORM_GC=0", - "OOT_NTSC=1", - "OOT_MQ=0", "OOT_DEBUG=0", "NDEBUG", "F3DEX_GBI_2" @@ -46,8 +44,6 @@ "OOT_REGION=REGION_JP", "PLATFORM_N64=0", "PLATFORM_GC=1", - "OOT_NTSC=1", - "OOT_MQ=0", "OOT_DEBUG=0", "NDEBUG", "F3DEX_GBI_2", @@ -75,8 +71,6 @@ "OOT_REGION=REGION_JP", "PLATFORM_N64=0", "PLATFORM_GC=1", - "OOT_NTSC=1", - "OOT_MQ=1", "OOT_DEBUG=0", "NDEBUG", "F3DEX_GBI_2", @@ -104,8 +98,6 @@ "OOT_REGION=REGION_US", "PLATFORM_N64=0", "PLATFORM_GC=1", - "OOT_NTSC=1", - "OOT_MQ=0", "OOT_DEBUG=0", "NDEBUG", "F3DEX_GBI_2", @@ -133,8 +125,6 @@ "OOT_REGION=REGION_US", "PLATFORM_N64=0", "PLATFORM_GC=1", - "OOT_NTSC=1", - "OOT_MQ=1", "OOT_DEBUG=0", "NDEBUG", "F3DEX_GBI_2", @@ -162,8 +152,6 @@ "OOT_REGION=REGION_EU", "PLATFORM_N64=0", "PLATFORM_GC=1", - "OOT_PAL=1", - "OOT_MQ=1", "OOT_DEBUG=1", "F3DEX_GBI_2", "F3DEX_GBI_PL", @@ -191,8 +179,6 @@ "OOT_REGION=REGION_EU", "PLATFORM_N64=0", "PLATFORM_GC=1", - "OOT_PAL=1", - "OOT_MQ=0", "OOT_DEBUG=0", "NDEBUG", "F3DEX_GBI_2", @@ -220,8 +206,6 @@ "OOT_REGION=REGION_EU", "PLATFORM_N64=0", "PLATFORM_GC=1", - "OOT_PAL=1", - "OOT_MQ=1", "OOT_DEBUG=0", "NDEBUG", "F3DEX_GBI_2", @@ -249,8 +233,6 @@ "OOT_REGION=REGION_JP", "PLATFORM_N64=0", "PLATFORM_GC=1", - "OOT_NTSC=1", - "OOT_MQ=0", "OOT_DEBUG=0", "NDEBUG", "F3DEX_GBI_2", diff --git a/docs/vscode.md b/docs/vscode.md index 44b1e6837f..6450e0020e 100644 --- a/docs/vscode.md +++ b/docs/vscode.md @@ -64,8 +64,6 @@ A more complete `c_cpp_properties.json` with configurations for all supported ve "OOT_REGION=REGION_EU", "PLATFORM_N64=0", "PLATFORM_GC=1", - "OOT_PAL=1", - "OOT_MQ=1", "OOT_DEBUG=1", "F3DEX_GBI_2", "F3DEX_GBI_PL", diff --git a/include/macros.h b/include/macros.h index 48bc94c8a5..5a34933c9d 100644 --- a/include/macros.h +++ b/include/macros.h @@ -1,6 +1,8 @@ #ifndef MACROS_H #define MACROS_H +#include "versions.h" + #ifndef AVOID_UB #define BAD_RETURN(type) type #else diff --git a/include/message_data_static.h b/include/message_data_static.h index 6b6824966a..2b08302731 100644 --- a/include/message_data_static.h +++ b/include/message_data_static.h @@ -3,6 +3,7 @@ #include "ultra64.h" #include "message_data_fmt.h" +#include "versions.h" typedef enum TextBoxType { /* 0 */ TEXTBOX_TYPE_BLACK, diff --git a/include/regs.h b/include/regs.h index 9d98e971e9..8abc2e3f04 100644 --- a/include/regs.h +++ b/include/regs.h @@ -1,6 +1,8 @@ #ifndef REGS_H #define REGS_H +#include "versions.h" + #define REG_GROUPS 29 // number of REG groups, i.e. REG, SREG, OREG, etc. #define REG_PAGES 6 #define REGS_PER_PAGE 16 diff --git a/include/segment_symbols.h b/include/segment_symbols.h index 9a03e3c575..95e44a51b5 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -1,6 +1,7 @@ #ifndef SEGMENT_SYMBOLS_H #define SEGMENT_SYMBOLS_H +#include "versions.h" #include "z64.h" #define DECLARE_SEGMENT(name) \ diff --git a/include/versions.h b/include/versions.h index b135ae390c..6362545b96 100644 --- a/include/versions.h +++ b/include/versions.h @@ -16,4 +16,27 @@ #define GC_EU_MQ 12 #define GC_JP_CE 13 +// NTSC/PAL +#if OOT_VERSION == PAL_1_0 || OOT_VERSION == PAL_1_1 || OOT_VERSION == GC_EU || OOT_VERSION == GC_EU_MQ || OOT_VERSION == GC_EU_MQ_DBG +#define OOT_NTSC 0 +#define OOT_PAL 1 +#else +#define OOT_NTSC 1 +#define OOT_PAL 0 +#endif + +// PAL N64 (50 Hz) +#if OOT_VERSION == PAL_1_0 || OOT_VERSION == PAL_1_1 +#define OOT_PAL_N64 1 +#else +#define OOT_PAL_N64 0 +#endif + +// Master Quest +#if OOT_VERSION == GC_JP_MQ || OOT_VERSION == GC_US_MQ || OOT_VERSION == GC_EU_MQ || OOT_VERSION == GC_EU_MQ_DBG +#define OOT_MQ 1 +#else +#define OOT_MQ 0 +#endif + #endif diff --git a/include/z64.h b/include/z64.h index a6e4cc4d4a..2d36ccd436 100644 --- a/include/z64.h +++ b/include/z64.h @@ -6,6 +6,7 @@ #include "attributes.h" #include "audiomgr.h" #include "controller.h" +#include "versions.h" #include "z64save.h" #include "z64light.h" #include "z64bgcheck.h" diff --git a/include/z64message.h b/include/z64message.h index 9a073cfa03..609f737fb7 100644 --- a/include/z64message.h +++ b/include/z64message.h @@ -2,6 +2,7 @@ #define Z64MESSAGE_H #include "z64view.h" +#include "versions.h" struct OcarinaStaff; struct Actor; diff --git a/include/z64save.h b/include/z64save.h index 33066fdd12..4b7513e53a 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -2,6 +2,7 @@ #define Z64SAVE_H #include "ultra64.h" +#include "versions.h" #include "z64math.h" typedef enum Language { diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 273add47c5..e0d1c50420 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -3,6 +3,7 @@ #include "quake.h" #include "rand.h" #include "terminal.h" +#include "versions.h" #include "overlays/actors/ovl_Arms_Hook/z_arms_hook.h" #include "overlays/actors/ovl_En_Part/z_en_part.h" diff --git a/src/code/z_construct.c b/src/code/z_construct.c index e758757774..104b048fd5 100644 --- a/src/code/z_construct.c +++ b/src/code/z_construct.c @@ -1,4 +1,5 @@ #include "global.h" +#include "versions.h" void Interface_Destroy(PlayState* play) { Map_Destroy(play); diff --git a/src/code/z_kanfont.c b/src/code/z_kanfont.c index 81c83ce346..a4ae98c5b1 100644 --- a/src/code/z_kanfont.c +++ b/src/code/z_kanfont.c @@ -1,5 +1,6 @@ #include "global.h" #include "message_data_static.h" +#include "versions.h" /** * Loads a texture from kanji for the requested `character` into the character texture buffer diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 9e4a009936..b1bbf7c8a3 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -1,5 +1,6 @@ #include "global.h" #include "terminal.h" +#include "versions.h" #include "assets/textures/parameter_static/parameter_static.h" #include "assets/textures/do_action_static/do_action_static.h" #include "assets/textures/icon_item_static/icon_item_static.h" diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c index 2a7082b783..d9e238e759 100644 --- a/src/code/z_scene_table.c +++ b/src/code/z_scene_table.c @@ -1,6 +1,6 @@ #include "global.h" #include "quake.h" - +#include "versions.h" #include "z64frame_advance.h" #if PLATFORM_N64 #include "n64dd.h" diff --git a/src/code/z_sram.c b/src/code/z_sram.c index ffcd516d42..b5d93f9902 100644 --- a/src/code/z_sram.c +++ b/src/code/z_sram.c @@ -1,5 +1,6 @@ #include "global.h" #include "terminal.h" +#include "versions.h" #define SLOT_SIZE (sizeof(SaveContext) + 0x28) #define CHECKSUM_SIZE (sizeof(Save) / 2) diff --git a/src/n64dd/n64dd_801C9440.c b/src/n64dd/n64dd_801C9440.c index 28ab8b5625..2d0b1b5c01 100644 --- a/src/n64dd/n64dd_801C9440.c +++ b/src/n64dd/n64dd_801C9440.c @@ -1,6 +1,7 @@ // Some text-handling functions #include "global.h" #include "n64dd.h" +#include "versions.h" void (*D_801D2EC0)(void*, uintptr_t, size_t) = NULL; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 23f356bae2..0c6c4d5b0e 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -11,6 +11,7 @@ #include "assets/objects/object_fish/object_fish.h" #include "ichain.h" #include "terminal.h" +#include "versions.h" #if PLATFORM_N64 #include "cic6105.h" #endif diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c index 1e5e12505a..634c0e3679 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c @@ -1,5 +1,6 @@ #include "file_select.h" #include "terminal.h" +#include "versions.h" #include "assets/textures/title_static/title_static.h" #include "assets/overlays/ovl_file_choose/ovl_file_choose.h" From f089adf20c0f285925e67800723254a80c67db6e Mon Sep 17 00:00:00 2001 From: cadmic Date: Thu, 12 Sep 2024 11:10:43 -0700 Subject: [PATCH 72/86] [ntsc-1.2] Match ntsc-1.2 BSS and add to CI (#2187) * Match ntsc-1.2 * Add ntsc-1.2 to CI * Apply fixes from Jenkins * Promote ntsc-1.2 to "supported" in Makefile * Declare D_80858AD8 as a u64 array * Tweak wording * Hopefully make ntsc-1.2 bss more stable * Restore segmented_address.h include --- Jenkinsfile | 38 ++++--- Makefile | 4 +- include/fault.h | 2 + src/audio/general.c | 1 - src/boot/boot_main.c | 3 +- src/boot/cic6105.c | 2 + src/boot/idle.c | 2 +- src/boot/yaz0.c | 3 +- src/boot/z_std_dma.c | 20 ++-- src/code/fault_n64.c | 28 ++--- src/code/graph.c | 102 +++++++++--------- src/code/main.c | 32 ++++-- src/code/speed_meter.c | 3 +- src/code/sys_math3d.c | 3 +- src/code/z_actor.c | 5 +- src/code/z_bgcheck.c | 2 + src/code/z_camera.c | 6 +- src/code/z_collision_check.c | 5 +- src/code/z_common_data.c | 3 +- src/code/z_debug.c | 3 +- src/code/z_demo.c | 3 +- src/code/z_kaleido_scope_call.c | 3 +- src/code/z_kankyo.c | 6 +- src/code/z_message.c | 8 +- src/code/z_player_call.c | 3 +- src/n64dd/z_n64dd.c | 2 + .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 8 +- src/overlays/actors/ovl_Boss_Va/z_boss_va.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 5 +- .../actors/ovl_player_actor/z_player.c | 22 ++-- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 2 + tools/disasm/ntsc-1.2/variables.txt | 2 +- 32 files changed, 191 insertions(+), 142 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2cf1549e88..8a8345e992 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -26,71 +26,69 @@ pipeline { } } } - stage('Build ntsc-1.2, check disasm metadata') { - steps { - sh 'ln -s /usr/local/etc/roms/oot-ntsc-1.2-us.z64 baseroms/ntsc-1.2/baserom.z64' - sh 'make -j$(nproc) setup VERSION=ntsc-1.2' - sh 'make -j$(nproc) VERSION=ntsc-1.2' - sh '.venv/bin/python3 tools/check_disasm_metadata_unksyms.py -v ntsc-1.2' - sh 'make clean assetclean VERSION=ntsc-1.2' - } - } // The ROMs are built in an order that maximizes compiler flags coverage in a "fail fast" approach. // Specifically we start with a retail ROM for BSS ordering, and make sure we cover all of - // NTSC/PAL/MQ/DEBUG as quickly as possible. + // N64/GC/NTSC/PAL/MQ/DEBUG as quickly as possible. + stage('Build ntsc-1.2') { + steps { + script { + build('ntsc-1.2', 'oot-ntsc-1.2-us.z64') + } + } + } stage('Build gc-jp') { steps { script { - build('gc-jp') + build('gc-jp', 'oot-gc-jp.z64') } } } stage('Build gc-eu-mq') { steps { script { - build('gc-eu-mq') + build('gc-eu-mq', 'oot-gc-eu-mq.z64') } } } stage('Build gc-eu-mq-dbg') { steps { script { - build('gc-eu-mq-dbg') + build('gc-eu-mq-dbg', 'oot-gc-eu-mq-dbg.z64') } } } stage('Build gc-us') { steps { script { - build('gc-us') + build('gc-us', 'oot-gc-us.z64') } } } stage('Build gc-jp-ce') { steps { script { - build('gc-jp-ce') + build('gc-jp-ce', 'oot-gc-jp-ce.z64') } } } stage('Build gc-eu') { steps { script { - build('gc-eu') + build('gc-eu', 'oot-gc-eu.z64') } } } stage('Build gc-jp-mq') { steps { script { - build('gc-jp-mq') + build('gc-jp-mq', 'oot-gc-jp-mq.z64') } } } stage('Build gc-us-mq') { steps { script { - build('gc-us-mq') + build('gc-us-mq', 'oot-gc-us-mq.z64') } } } @@ -122,8 +120,8 @@ pipeline { } } -def build(String version) { - sh "ln -s /usr/local/etc/roms/oot-${version}.z64 baseroms/${version}/baserom.z64" +def build(String version, String rom) { + sh "ln -s /usr/local/etc/roms/${rom} baseroms/${version}/baserom.z64" sh "make -j\$(nproc) setup VERSION=${version}" try { sh "make -j\$(nproc) VERSION=${version}" diff --git a/Makefile b/Makefile index eac3532953..295bb66993 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ ORIG_COMPILER ?= 0 # If COMPILER is "gcc", compile with GCC instead of IDO. COMPILER ?= ido # Target game version. Currently the following versions are supported: +# ntsc-1.2 N64 NTSC 1.2 (Japan/US depending on REGION) # gc-jp GameCube Japan # gc-jp-mq GameCube Japan Master Quest # gc-jp-ce GameCube Japan (Collector's Edition disc) @@ -27,7 +28,7 @@ COMPILER ?= ido # 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: -# ntsc-1.2 N64 NTSC 1.2 (Japan/US depending on REGION) +# (none currently) VERSION ?= gc-eu-mq-dbg # Number of threads to extract and compress with N_THREADS ?= $(shell nproc) @@ -52,7 +53,6 @@ ifeq ($(VERSION),ntsc-1.2) REGION ?= JP PLATFORM := N64 DEBUG := 0 - COMPARE := 0 else ifeq ($(VERSION),gc-jp) REGION ?= JP PLATFORM := GC diff --git a/include/fault.h b/include/fault.h index c398a003cd..a95ae59064 100644 --- a/include/fault.h +++ b/include/fault.h @@ -91,7 +91,9 @@ s32 Fault_VPrintf(const char* fmt, va_list args); #if PLATFORM_N64 +extern vs32 gFaultExit; extern vs32 gFaultMsgId; +extern vs32 gFaultDisplayEnable; extern volatile OSThread* gFaultFaultedThread; #define FAULT_MSG_ID gFaultMsgId diff --git a/src/audio/general.c b/src/audio/general.c index 8fb70bc463..fadbed0a9a 100644 --- a/src/audio/general.c +++ b/src/audio/general.c @@ -1273,7 +1273,6 @@ u8 sFanfareStartTimer; u16 sFanfareSeqId; #if PLATFORM_N64 -// TODO: Unsure where in bss this is located u16 sPrevAmbienceSeqId; #endif diff --git a/src/boot/boot_main.c b/src/boot/boot_main.c index d12a87512c..d485a5b1f9 100644 --- a/src/boot/boot_main.c +++ b/src/boot/boot_main.c @@ -5,7 +5,8 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:128" StackEntry sBootThreadInfo; OSThread sIdleThread; diff --git a/src/boot/cic6105.c b/src/boot/cic6105.c index bd50096b71..e0ddcb2c49 100644 --- a/src/boot/cic6105.c +++ b/src/boot/cic6105.c @@ -1,3 +1,5 @@ +#pragma increment_block_number "ntsc-1.2:128" + #include "global.h" #include "cic6105.h" #include "fault.h" diff --git a/src/boot/idle.c b/src/boot/idle.c index d698b8cef9..9f11e3a3a0 100644 --- a/src/boot/idle.c +++ b/src/boot/idle.c @@ -2,7 +2,7 @@ #include "stack.h" #include "terminal.h" -#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64" +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64 ntsc-1.2:64" OSThread sMainThread; STACK(sMainStack, 0x900); diff --git a/src/boot/yaz0.c b/src/boot/yaz0.c index 6e56fbbe36..cbd6a87a1d 100644 --- a/src/boot/yaz0.c +++ b/src/boot/yaz0.c @@ -1,6 +1,7 @@ #include "global.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:128" ALIGNED(16) u8 sYaz0DataBuffer[0x400]; u8* sYaz0DataBufferEnd; diff --git a/src/boot/z_std_dma.c b/src/boot/z_std_dma.c index 1bd0f71701..c3e97aa190 100644 --- a/src/boot/z_std_dma.c +++ b/src/boot/z_std_dma.c @@ -26,30 +26,32 @@ #include "n64dd.h" #endif -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:111" StackEntry sDmaMgrStackInfo; OSMesgQueue sDmaMgrMsgQueue; OSMesg sDmaMgrMsgBuf[32]; -OSThread sDmaMgrThread; -STACK(sDmaMgrStack, 0x500); - -#if OOT_DEBUG -const char* sDmaMgrCurFileName; -s32 sDmaMgrCurFileLine; -#endif u32 gDmaMgrVerbose = 0; size_t gDmaMgrDmaBuffSize = DMAMGR_DEFAULT_BUFSIZE; u32 sDmaMgrIsRomCompressed = false; +OSThread sDmaMgrThread; +STACK(sDmaMgrStack, 0x500); + +#if OOT_DEBUG + +const char* sDmaMgrCurFileName; +s32 sDmaMgrCurFileLine; + // dmadata filenames #define DEFINE_DMA_ENTRY(_0, nameString) nameString, -#if OOT_DEBUG const char* sDmaMgrFileNames[] = { #include "tables/dmadata_table.h" }; + #endif #undef DEFINE_DMA_ENTRY diff --git a/src/code/fault_n64.c b/src/code/fault_n64.c index eb3019d33e..762301b562 100644 --- a/src/code/fault_n64.c +++ b/src/code/fault_n64.c @@ -1,10 +1,14 @@ +#if PLATFORM_N64 + +#pragma increment_block_number "ntsc-1.2:128" + #include "global.h" #include "fault.h" #include "libc64/os_malloc.h" #include "stack.h" #include "terminal.h" -#if PLATFORM_N64 +#pragma increment_block_number "ntsc-1.2:96" typedef struct FaultMgr { OSThread thread; @@ -80,7 +84,7 @@ const char* sFpExceptionNames[] = { }; u16 sFaultFontColor = GPACK_RGBA5551(255, 255, 255, 1); -s32 D_800FF9C4[7] = { 0 }; // Unused (file padding?) +s32 D_800FF9C4[7] = { 0 }; // Unused Input sFaultInputs[MAXCONTROLLERS]; @@ -90,12 +94,10 @@ STACK(sFaultStack, 0x400); StackEntry sFaultStackInfo; FaultCursorCoords sFaultCursorPos; -vs32 sFaultExit; +vs32 gFaultExit; vs32 gFaultMsgId; -vs32 sFaultDisplayEnable; +vs32 gFaultDisplayEnable; volatile OSThread* gFaultFaultedThread; -s32 B_80122570[16]; -s32 B_801225B0[8]; // Unused (file padding?) void Fault_SleepImpl(u32 ms) { Sleep_Msec(ms); @@ -653,6 +655,8 @@ void Fault_DrawMemDumpSP(OSThread* thread) { } void func_800AF3DC(void) { + static s32 B_80122570[16]; + static s32 B_801225B0[8]; // Unused s32 i; Fault_DrawRecBlack(22, 16, 276, 208); @@ -773,8 +777,8 @@ void Fault_ThreadEntry(void* arg0) { gFaultFaultedThread = faultedThread; Fault_LogThreadContext(faultedThread); osSyncPrintf("%d %s %d:%s = %d\n", osGetThreadId(NULL), "fault.c", 1454, "fault_display_enable", - sFaultDisplayEnable); - while (!sFaultDisplayEnable) { + gFaultDisplayEnable); + while (!gFaultDisplayEnable) { Fault_SleepImpl(1000); } Fault_SleepImpl(500); @@ -793,8 +797,8 @@ void Fault_ThreadEntry(void* arg0) { Fault_DrawMemDumpPC(faultedThread); Fault_WaitForInput(); Fault_ProcessClients(); - } while (!sFaultExit); - while (!sFaultExit) {} + } while (!gFaultExit); + while (!gFaultExit) {} Fault_ResumeThread(faultedThread); } } @@ -806,7 +810,7 @@ void Fault_SetFrameBuffer(void* fb, u16 w, u16 h) { } void Fault_Init(void) { - sFaultDisplayEnable = 1; + gFaultDisplayEnable = 1; gFaultMgr.fb = (u16*)(PHYS_TO_K0(osMemSize) - sizeof(u16[SCREEN_HEIGHT][SCREEN_WIDTH])); gFaultMgr.fbWidth = SCREEN_WIDTH; gFaultMgr.fbDepth = 16; @@ -823,7 +827,7 @@ void Fault_AddHungupAndCrashImpl(const char* exp1, const char* exp2) { osSyncPrintf("HungUp on Thread %d", osGetThreadId(NULL)); osSyncPrintf("%s\n", exp1 != NULL ? exp1 : "(NULL)"); osSyncPrintf("%s\n", exp2 != NULL ? exp2 : "(NULL)"); - while (sFaultDisplayEnable == 0) { + while (gFaultDisplayEnable == 0) { Fault_SleepImpl(1000); } Fault_SleepImpl(500); diff --git a/src/code/graph.c b/src/code/graph.c index 2b4777ea63..7c562f160b 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -5,7 +5,8 @@ #define GFXPOOL_HEAD_MAGIC 0x1234 #define GFXPOOL_TAIL_MAGIC 0x5678 -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:223" /** * The time at which the previous `Graph_Update` ended. @@ -19,12 +20,6 @@ OSTime sGraphPrevTaskTimeStart; #if OOT_DEBUG FaultClient sGraphFaultClient; -#endif - -CfbInfo sGraphCfbInfos[3]; - -#if OOT_DEBUG -FaultClient sGraphUcodeFaultClient; UCodeInfo D_8012D230[3] = { { UCODE_F3DZEX, gspF3DZEX2_NoN_PosLight_fifoTextStart }, @@ -165,11 +160,6 @@ void Graph_TaskSet00(GraphicsContext* gfxCtx) { #if OOT_DEBUG static Gfx* sPrevTaskWorkBuffer = NULL; #endif - static s32 sGraphCfbInfoIdx = 0; - - OSTime timeNow; - OSTimer timer; - OSMesg msg; OSTask_t* task = &gfxCtx->task.list.t; OSScTask* scTask = &gfxCtx->task; @@ -177,7 +167,8 @@ void Graph_TaskSet00(GraphicsContext* gfxCtx) { osGetTime() - sGraphPrevTaskTimeStart - gAudioThreadUpdateTimeAcc; { - CfbInfo* cfb; + OSTimer timer; + OSMesg msg; // Schedule a message to be handled in 3 seconds, for RCP timeout osSetTimer(&timer, OS_USEC_TO_CYCLES(3000000), 0, &gfxCtx->queue, (OSMesg)666); @@ -212,12 +203,15 @@ void Graph_TaskSet00(GraphicsContext* gfxCtx) { #if OOT_DEBUG sPrevTaskWorkBuffer = gfxCtx->workBuffer; #endif + } - if (gfxCtx->callback != NULL) { - gfxCtx->callback(gfxCtx, gfxCtx->callbackParam); - } + if (gfxCtx->callback != NULL) { + gfxCtx->callback(gfxCtx, gfxCtx->callbackParam); + } + + { + OSTime timeNow = osGetTime(); - timeNow = osGetTime(); if (gAudioThreadUpdateTimeStart != 0) { // The audio thread update is running // Add the time already spent to the accumulator and leave the rest for the next cycle @@ -229,41 +223,45 @@ void Graph_TaskSet00(GraphicsContext* gfxCtx) { gAudioThreadUpdateTimeAcc = 0; sGraphPrevTaskTimeStart = osGetTime(); + } - task->type = M_GFXTASK; - task->flags = OS_SC_DRAM_DLIST; - task->ucode_boot = SysUcode_GetUCodeBoot(); - task->ucode_boot_size = SysUcode_GetUCodeBootSize(); - task->ucode = SysUcode_GetUCode(); - task->ucode_data = SysUcode_GetUCodeData(); - task->ucode_size = SP_UCODE_SIZE; - task->ucode_data_size = SP_UCODE_DATA_SIZE; - task->dram_stack = gGfxSPTaskStack; - task->dram_stack_size = sizeof(gGfxSPTaskStack); - task->output_buff = gGfxSPTaskOutputBuffer; - task->output_buff_size = gGfxSPTaskOutputBuffer + ARRAY_COUNT(gGfxSPTaskOutputBuffer); - task->data_ptr = (u64*)gfxCtx->workBuffer; + task->type = M_GFXTASK; + task->flags = OS_SC_DRAM_DLIST; + task->ucode_boot = SysUcode_GetUCodeBoot(); + task->ucode_boot_size = SysUcode_GetUCodeBootSize(); + task->ucode = SysUcode_GetUCode(); + task->ucode_data = SysUcode_GetUCodeData(); + task->ucode_size = SP_UCODE_SIZE; + task->ucode_data_size = SP_UCODE_DATA_SIZE; + task->dram_stack = gGfxSPTaskStack; + task->dram_stack_size = sizeof(gGfxSPTaskStack); + task->output_buff = gGfxSPTaskOutputBuffer; + task->output_buff_size = gGfxSPTaskOutputBuffer + ARRAY_COUNT(gGfxSPTaskOutputBuffer); + task->data_ptr = (u64*)gfxCtx->workBuffer; - OPEN_DISPS(gfxCtx, "../graph.c", 828); - task->data_size = (uintptr_t)WORK_DISP - (uintptr_t)gfxCtx->workBuffer; - CLOSE_DISPS(gfxCtx, "../graph.c", 830); + OPEN_DISPS(gfxCtx, "../graph.c", 828); + task->data_size = (uintptr_t)WORK_DISP - (uintptr_t)gfxCtx->workBuffer; + CLOSE_DISPS(gfxCtx, "../graph.c", 830); - task->yield_data_ptr = gGfxSPTaskYieldBuffer; + task->yield_data_ptr = gGfxSPTaskYieldBuffer; - task->yield_data_size = sizeof(gGfxSPTaskYieldBuffer); + task->yield_data_size = sizeof(gGfxSPTaskYieldBuffer); - scTask->next = NULL; - scTask->flags = OS_SC_NEEDS_RSP | OS_SC_NEEDS_RDP | OS_SC_SWAPBUFFER | OS_SC_LAST_TASK; - if (R_GRAPH_TASKSET00_FLAGS & 1) { - R_GRAPH_TASKSET00_FLAGS &= ~1; - scTask->flags &= ~OS_SC_SWAPBUFFER; - gfxCtx->fbIdx--; - } + scTask->next = NULL; + scTask->flags = OS_SC_NEEDS_RSP | OS_SC_NEEDS_RDP | OS_SC_SWAPBUFFER | OS_SC_LAST_TASK; + if (R_GRAPH_TASKSET00_FLAGS & 1) { + R_GRAPH_TASKSET00_FLAGS &= ~1; + scTask->flags &= ~OS_SC_SWAPBUFFER; + gfxCtx->fbIdx--; + } - scTask->msgQueue = &gfxCtx->queue; - scTask->msg = NULL; + scTask->msgQueue = &gfxCtx->queue; + scTask->msg = NULL; - { s16 pad; } + { + static CfbInfo sGraphCfbInfos[3]; + static s32 sGraphCfbInfoIdx = 0; + CfbInfo* cfb; cfb = &sGraphCfbInfos[sGraphCfbInfoIdx]; @@ -279,14 +277,12 @@ void Graph_TaskSet00(GraphicsContext* gfxCtx) { cfb->updateRate = R_UPDATE_RATE; scTask->framebuffer = cfb; - - { s16 pad2; } - - gfxCtx->schedMsgQueue = &gScheduler.cmdQueue; - - osSendMesg(&gScheduler.cmdQueue, (OSMesg)scTask, OS_MESG_BLOCK); - Sched_Notify(&gScheduler); } + + gfxCtx->schedMsgQueue = &gScheduler.cmdQueue; + + osSendMesg(&gScheduler.cmdQueue, (OSMesg)scTask, OS_MESG_BLOCK); + Sched_Notify(&gScheduler); } void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) { @@ -339,6 +335,8 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) { } if (R_HREG_MODE == HREG_MODE_UCODE_DISAS && R_UCODE_DISAS_TOGGLE != 0) { + static FaultClient sGraphUcodeFaultClient; + if (R_UCODE_DISAS_LOG_MODE == 3) { Fault_AddClient(&sGraphUcodeFaultClient, Graph_UCodeFaultClient, gfxCtx->workBuffer, "do_count_fault"); } diff --git a/src/code/main.c b/src/code/main.c index 34b0bfaf1a..8024db9412 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -1,18 +1,19 @@ #include "ultra64.h" -#pragma increment_block_number "gc-eu:80 gc-eu-mq:80 gc-jp:80 gc-jp-ce:80 gc-jp-mq:80 gc-us:80 gc-us-mq:80" +// Declared before including other headers for BSS ordering +extern uintptr_t gSegments[NUM_SEGMENTS]; -struct PreNmiBuff* gAppNmiBufferPtr; +#pragma increment_block_number "gc-eu:252 gc-eu-mq:252 gc-jp:252 gc-jp-ce:252 gc-jp-mq:252 gc-us:252 gc-us-mq:252" \ + "ntsc-1.2:128" -#include "segmented_address.h" - -struct Scheduler gScheduler; -struct PadMgr gPadMgr; -struct IrqMgr gIrqMgr; -uintptr_t gSegments[NUM_SEGMENTS]; +extern struct PreNmiBuff* gAppNmiBufferPtr; +extern struct Scheduler gScheduler; +extern struct PadMgr gPadMgr; +extern struct IrqMgr gIrqMgr; #include "global.h" #include "fault.h" +#include "segmented_address.h" #include "stack.h" #include "terminal.h" #include "versions.h" @@ -21,12 +22,21 @@ uintptr_t gSegments[NUM_SEGMENTS]; #include "n64dd.h" #endif +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ + "ntsc-1.2:168" + extern u8 _buffersSegmentEnd[]; s32 gScreenWidth = SCREEN_WIDTH; s32 gScreenHeight = SCREEN_HEIGHT; u32 gSystemHeapSize = 0; +PreNmiBuff* gAppNmiBufferPtr; +Scheduler gScheduler; +PadMgr gPadMgr; +IrqMgr gIrqMgr; +uintptr_t gSegments[NUM_SEGMENTS]; + OSThread sGraphThread; STACK(sGraphStack, 0x1800); STACK(sSchedStack, 0x600); @@ -38,7 +48,7 @@ StackEntry sSchedStackInfo; StackEntry sAudioStackInfo; StackEntry sPadMgrStackInfo; StackEntry sIrqMgrStackInfo; -AudioMgr gAudioMgr; +AudioMgr sAudioMgr; OSMesgQueue sSerialEventQueue; OSMesg sSerialMsgBuf[1]; @@ -130,12 +140,12 @@ void Main(void* arg) { IrqMgr_AddClient(&gIrqMgr, &irqClient, &irqMgrMsgQueue); StackCheck_Init(&sAudioStackInfo, sAudioStack, STACK_TOP(sAudioStack), 0, 0x100, "audio"); - AudioMgr_Init(&gAudioMgr, STACK_TOP(sAudioStack), THREAD_PRI_AUDIOMGR, THREAD_ID_AUDIOMGR, &gScheduler, &gIrqMgr); + AudioMgr_Init(&sAudioMgr, STACK_TOP(sAudioStack), THREAD_PRI_AUDIOMGR, THREAD_ID_AUDIOMGR, &gScheduler, &gIrqMgr); StackCheck_Init(&sPadMgrStackInfo, sPadMgrStack, STACK_TOP(sPadMgrStack), 0, 0x100, "padmgr"); PadMgr_Init(&gPadMgr, &sSerialEventQueue, &gIrqMgr, THREAD_ID_PADMGR, THREAD_PRI_PADMGR, STACK_TOP(sPadMgrStack)); - AudioMgr_WaitForInit(&gAudioMgr); + AudioMgr_WaitForInit(&sAudioMgr); StackCheck_Init(&sGraphStackInfo, sGraphStack, STACK_TOP(sGraphStack), 0, 0x100, "graph"); osCreateThread(&sGraphThread, THREAD_ID_GRAPH, Graph_ThreadEntry, arg, STACK_TOP(sGraphStack), THREAD_PRI_GRAPH); diff --git a/src/code/speed_meter.c b/src/code/speed_meter.c index 903cd0fc76..b3bfa6d7ce 100644 --- a/src/code/speed_meter.c +++ b/src/code/speed_meter.c @@ -1,4 +1,5 @@ -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:128" #include "global.h" #include "terminal.h" diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index 570da1ab01..c0ebcea868 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -5,7 +5,8 @@ #include "macros.h" #include "sys_math3d.h" -#pragma increment_block_number "gc-eu:106 gc-eu-mq:106 gc-jp:106 gc-jp-ce:106 gc-jp-mq:106 gc-us:106 gc-us-mq:106" +#pragma increment_block_number "gc-eu:106 gc-eu-mq:106 gc-jp:106 gc-jp-ce:106 gc-jp-mq:106 gc-us:106 gc-us-mq:106" \ + "ntsc-1.2:79" 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 e0d1c50420..e36110e79b 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -11,7 +11,8 @@ #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "assets/objects/object_bdoor/object_bdoor.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:0" static CollisionPoly* sCurCeilingPoly; static s32 sCurCeilingBgId; @@ -2019,7 +2020,7 @@ s32 func_8002F9EC(PlayState* play, Actor* actor, CollisionPoly* poly, s32 bgId, return false; } -#pragma increment_block_number "gc-eu:22 gc-eu-mq:22 gc-jp:22 gc-jp-ce:22 gc-jp-mq:22 gc-us:22 gc-us-mq:22" +#pragma increment_block_number "gc-eu:22 gc-eu-mq:22 gc-jp:22 gc-jp-ce:22 gc-jp-mq:22 gc-us:22 gc-us-mq:22 ntsc-1.2:22" // Local data used for Farore's Wind light (stored in BSS) LightInfo D_8015BC00; diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c index 415dcd4741..dcc2a0df33 100644 --- a/src/code/z_bgcheck.c +++ b/src/code/z_bgcheck.c @@ -1,6 +1,8 @@ #include "global.h" #include "terminal.h" +#pragma increment_block_number "ntsc-1.2:152" + u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList* nodeList); void BgCheck_GetStaticLookupIndicesFromPos(CollisionContext* colCtx, Vec3f* pos, Vec3i* sector); s32 BgCheck_PosInStaticBoundingBox(CollisionContext* colCtx, Vec3f* pos); diff --git a/src/code/z_camera.c b/src/code/z_camera.c index ce22019150..58c6c87ee5 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -4,7 +4,8 @@ #include "terminal.h" #include "overlays/actors/ovl_En_Horse/z_en_horse.h" -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ + "ntsc-1.2:192" s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags); s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange); @@ -3636,7 +3637,8 @@ s32 Camera_KeepOn3(Camera* camera) { return 1; } -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:112" s32 Camera_KeepOn4(Camera* camera) { static Vec3f D_8015BD50; diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 4d5ccbc95d..922b7e0521 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -5,7 +5,7 @@ #include "overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.2:224" typedef s32 (*ColChkResetFunc)(PlayState*, Collider*); typedef void (*ColChkApplyFunc)(PlayState*, CollisionCheckContext*, Collider*); @@ -2195,7 +2195,8 @@ void CollisionCheck_ATTrisVsACCyl(PlayState* play, CollisionCheckContext* colChk } } -#pragma increment_block_number "gc-eu:252 gc-eu-mq:252 gc-jp:252 gc-jp-ce:252 gc-jp-mq:252 gc-us:252 gc-us-mq:252" +#pragma increment_block_number "gc-eu:252 gc-eu-mq:252 gc-jp:252 gc-jp-ce:252 gc-jp-mq:252 gc-us:252 gc-us-mq:252" \ + "ntsc-1.2:252" void CollisionCheck_ATCylVsACQuad(PlayState* play, CollisionCheckContext* colChkCtx, Collider* atCol, Collider* acCol) { static TriNorm tri1; diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c index 30a1398dff..dcd0ee4d2e 100644 --- a/src/code/z_common_data.c +++ b/src/code/z_common_data.c @@ -2,7 +2,8 @@ #include "region.h" #include "versions.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:192" ALIGNED(16) SaveContext gSaveContext; u32 D_8015FA88; diff --git a/src/code/z_debug.c b/src/code/z_debug.c index 963e934ff3..4ca9b2071f 100644 --- a/src/code/z_debug.c +++ b/src/code/z_debug.c @@ -12,7 +12,8 @@ typedef struct InputCombo { /* 0x2 */ u16 press; } InputCombo; // size = 0x4 -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:128" RegEditor* gRegEditor; diff --git a/src/code/z_demo.c b/src/code/z_demo.c index f46e33a552..29e18394e1 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -123,7 +123,8 @@ u16 gCamAtSplinePointsAppliedFrame; u16 gCamEyePointAppliedFrame; u16 gCamAtPointAppliedFrame; -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ + "ntsc-1.2:96" // Cam ID to return to when a scripted cutscene is finished s16 sReturnToCamId; diff --git a/src/code/z_kaleido_scope_call.c b/src/code/z_kaleido_scope_call.c index 1f4ea9a508..e97c8a8cf0 100644 --- a/src/code/z_kaleido_scope_call.c +++ b/src/code/z_kaleido_scope_call.c @@ -1,7 +1,8 @@ #include "global.h" #include "terminal.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:128" void (*sKaleidoScopeUpdateFunc)(PlayState* play); void (*sKaleidoScopeDrawFunc)(PlayState* play); diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 52be77e440..16ccf3b47b 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -7,7 +7,8 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/gameplay_field_keep/gameplay_field_keep.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:0" typedef enum LightningBoltState { /* 0x00 */ LIGHTNING_BOLT_START, @@ -212,7 +213,8 @@ s16 sLightningFlashAlpha; s16 sSunDepthTestX; s16 sSunDepthTestY; -#pragma increment_block_number "gc-eu:112 gc-eu-mq:112 gc-jp:96 gc-jp-ce:96 gc-jp-mq:96 gc-us:96 gc-us-mq:96" +#pragma increment_block_number "gc-eu:112 gc-eu-mq:112 gc-jp:96 gc-jp-ce:96 gc-jp-mq:96 gc-us:96 gc-us-mq:96" \ + "ntsc-1.2:224" LightNode* sNGameOverLightNode; LightInfo sNGameOverLightInfo; diff --git a/src/code/z_message.c b/src/code/z_message.c index ea603ac425..86b1e20709 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -8,7 +8,8 @@ #include "n64dd.h" #endif -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:112" #if !PLATFORM_GC #define OCARINA_BUTTON_A_PRIM_1_R 80 @@ -90,6 +91,9 @@ #define OCARINA_ICON_ENV_2_B 130 #endif +s32 sCharTexSize; +s32 sCharTexScale; + s16 sTextFade = false; // original name: key_off_flag ? u8 D_8014B2F4 = 0; @@ -250,8 +254,6 @@ s16 gOcarinaSongItemMap[] = { OCARINA_SONG_SARIAS, OCARINA_SONG_SUNS, OCARINA_SONG_TIME, OCARINA_SONG_STORMS, }; -s32 sCharTexSize; -s32 sCharTexScale; s16 sOcarinaButtonAPrimR; s16 sOcarinaButtonAPrimB; s16 sOcarinaButtonAPrimG; diff --git a/src/code/z_player_call.c b/src/code/z_player_call.c index 7b44d6afec..a004f0b534 100644 --- a/src/code/z_player_call.c +++ b/src/code/z_player_call.c @@ -3,7 +3,8 @@ #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25 | ACTOR_FLAG_26) -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:128" void (*sPlayerCallInitFunc)(Actor* thisx, PlayState* play); void (*sPlayerCallDestroyFunc)(Actor* thisx, PlayState* play); diff --git a/src/n64dd/z_n64dd.c b/src/n64dd/z_n64dd.c index 4e90806e9a..fd06d02526 100644 --- a/src/n64dd/z_n64dd.c +++ b/src/n64dd/z_n64dd.c @@ -6,6 +6,8 @@ #include "stack.h" #include "versions.h" +#pragma increment_block_number "ntsc-1.2:128" + typedef struct struct_801D9C30 { /* 0x000 */ s32 unk_000; // disk start /* 0x004 */ s32 unk_004; // disk end 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 4d4bcb6493..e7d19d1453 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -100,19 +100,21 @@ 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 }; -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.2:0" static EnGanonMant* sCape; // TODO: There's probably a way to match BSS ordering 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 "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ + "ntsc-1.2:128" static s32 sSeed1; static s32 sSeed2; static s32 sSeed3; -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ + "ntsc-1.2:128" static BossGanon* sGanondorf; diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index a07d358dae..0b993fa463 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Boom/z_en_boom.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128 ntsc-1.2:128" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) 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 bc71fe7dd6..b6444ad3d5 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -14,7 +14,7 @@ #include "assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.h" #include "terminal.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.2:0" #define FLAGS ACTOR_FLAG_4 @@ -1395,7 +1395,8 @@ void func_80B3F3D8(void) { Sfx_PlaySfxCentered2(NA_SE_PL_SKIP); } -#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64" +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64" \ + "ntsc-1.2:128" void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { static Vec3f D_80B42DA0; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 6844e76727..31a638ed3e 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -354,19 +354,22 @@ void Player_Action_CsAction(Player* this, PlayState* play); // .bss part 1 -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.2:128" static s32 D_80858AA0; // TODO: There's probably a way to match BSS ordering 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 "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ + "ntsc-1.2:192" static s32 D_80858AA4; static Vec3f sInteractWallCheckResult; static Input* sControlInput; -#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ + "ntsc-1.2:128" // .data @@ -4744,7 +4747,7 @@ s32 func_80838FB8(PlayState* play, Player* this) { * * Note: grottos and normal fairy fountains use `ENTR_RETURN_GROTTO` */ -s16 sReturnEntranceGroupData[] = { +static s16 sReturnEntranceGroupData[] = { // ENTR_RETURN_GREAT_FAIRYS_FOUNTAIN_MAGIC /* 0 */ ENTR_DEATH_MOUNTAIN_TRAIL_4, // from Magic Fairy Fountain /* 1 */ ENTR_DEATH_MOUNTAIN_CRATER_3, // from Double Magic Fairy Fountain @@ -4775,7 +4778,7 @@ s16 sReturnEntranceGroupData[] = { /** * The values are indices into `sReturnEntranceGroupData` marking the start of each group */ -u8 sReturnEntranceGroupIndices[] = { +static u8 sReturnEntranceGroupIndices[] = { 11, // ENTR_RETURN_GREAT_FAIRYS_FOUNTAIN_SPELLS 9, // ENTR_RETURN_SHOOTING_GALLERY 3, // ENTR_RETURN_2 @@ -14262,7 +14265,12 @@ 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]; + // 144-byte buffer, declared as a u64 array for 8-byte alignment. LinkAnimation_BlendToMorph will round up + // the buffer address to the nearest 16-byte alignment before passing it to AnimTaskQueue_AddLoadPlayerFrame, + // and AnimTaskQueue_AddLoadPlayerFrame requires space for `sizeof(Vec3s) * limbCount + 2` bytes. Link's + // skeleton has 22 limbs (including the root limb) so we need 134 bytes of space, plus 8 bytes of margin for + // the 16-byte alignment operation. + static u64 D_80858AD8[18]; f32 updateScale = R_UPDATE_RATE * 0.5f; this->skelAnime.curFrame += this->skelAnime.playSpeed * updateScale; @@ -14277,7 +14285,7 @@ void Player_Action_80850C68(Player* this, PlayState* play) { LinkAnimation_BlendToMorph(play, &this->skelAnime, &gPlayerAnim_link_fishing_wait, this->skelAnime.curFrame, (this->unk_85C < 0.0f) ? &gPlayerAnim_link_fishing_reel_up : &gPlayerAnim_link_fishing_reel_down, - 5.0f, fabsf(this->unk_85C), D_80858AD8); + 5.0f, fabsf(this->unk_85C), (Vec3s*)D_80858AD8); LinkAnimation_InterpJointMorph(play, &this->skelAnime, 0.5f); } else if (LinkAnimation_Update(play, &this->skelAnime)) { this->unk_860 = 2; diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index 505876aa2e..6fa15a382f 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -15,6 +15,8 @@ #include "assets/textures/icon_item_gameover_static/icon_item_gameover_static.h" #include "terminal.h" +#pragma increment_block_number "ntsc-1.2:128" + #if !PLATFORM_GC #define KALEIDO_PROMPT_CURSOR_R 100 #define KALEIDO_PROMPT_CURSOR_G 100 diff --git a/tools/disasm/ntsc-1.2/variables.txt b/tools/disasm/ntsc-1.2/variables.txt index 497a427118..7dddb10d3c 100644 --- a/tools/disasm/ntsc-1.2/variables.txt +++ b/tools/disasm/ntsc-1.2/variables.txt @@ -45,7 +45,7 @@ gScheduler = 0x8011D978; // size:0x258 type:Scheduler gViConfigModeType = 0x80008350; // size:0x1 type:u8 sAudioStackInfo = 0x801214A8; sAudioStack = 0x80120268; -gAudioMgr = 0x80121548; // size:0x298 type:AudioMgr +sAudioMgr = 0x80121548; // size:0x298 type:AudioMgr sPadMgrStackInfo = 0x801214C8; sPadMgrStack = 0x80120A68; gPadMgr = 0x8011DBD0; // size:0x468 type:PadMgr From 77df04ab1c6539c7461d0474bea072f5ff0b0606 Mon Sep 17 00:00:00 2001 From: cadmic Date: Thu, 12 Sep 2024 12:00:43 -0700 Subject: [PATCH 73/86] Delete disassembly data for ntsc-1.2 (#2178) --- tools/disasm/ntsc-1.2/file_addresses.csv | 472 - tools/disasm/ntsc-1.2/files_boot.csv | 138 - tools/disasm/ntsc-1.2/files_code.csv | 463 - tools/disasm/ntsc-1.2/files_makerom.csv | 2 - .../disasm/ntsc-1.2/files_ovl_file_choose.csv | 22 - .../ntsc-1.2/files_ovl_kaleido_scope.csv | 34 - tools/disasm/ntsc-1.2/functions.txt | 13148 ---------------- tools/disasm/ntsc-1.2/variables.txt | 60 - 8 files changed, 14339 deletions(-) delete mode 100644 tools/disasm/ntsc-1.2/file_addresses.csv delete mode 100644 tools/disasm/ntsc-1.2/files_boot.csv delete mode 100644 tools/disasm/ntsc-1.2/files_code.csv delete mode 100644 tools/disasm/ntsc-1.2/files_makerom.csv delete mode 100644 tools/disasm/ntsc-1.2/files_ovl_file_choose.csv delete mode 100644 tools/disasm/ntsc-1.2/files_ovl_kaleido_scope.csv delete mode 100644 tools/disasm/ntsc-1.2/functions.txt delete mode 100644 tools/disasm/ntsc-1.2/variables.txt diff --git a/tools/disasm/ntsc-1.2/file_addresses.csv b/tools/disasm/ntsc-1.2/file_addresses.csv deleted file mode 100644 index a774468775..0000000000 --- a/tools/disasm/ntsc-1.2/file_addresses.csv +++ /dev/null @@ -1,472 +0,0 @@ -name,vrom_start,vrom_end,rom_start,rom_end,vram_start,overlay_dir -boot,1060,7960,1060,0,80000460, -code,A87000,B8ADA0,A62D40,AFDE00,800116E0, -ovl_title,B9DA70,B9E430,B07AF0,B082B0,80800000,gamestates -ovl_select,B9E430,BA1190,B082B0,B09E10,808009C0,gamestates -ovl_opening,BA1190,BA12F0,B09E10,B09F40,80803720,gamestates -ovl_file_choose,BA12F0,BB1210,B09F40,B12D60,80803880,gamestates -ovl_kaleido_scope,BB1210,BCDBA0,B12D60,B21DA0,808137C0,misc -ovl_player_actor,BCDBA0,BF4210,B21DA0,B3B090,808301C0,actors -ovl_map_mark_data,BF4210,BFAD70,B3B090,B3B440,80856900,misc -ovl_En_Test,BFAD70,C00620,B3B440,B3E910,8085D460,actors -ovl_En_GirlA,C00620,C02F40,B3E910,B3FD80,80862D10,actors -ovl_En_Part,C02F40,C04550,B3FD80,B40DA0,80865630,actors -ovl_En_Light,C04550,C05340,B40DA0,B41760,80866C40,actors -ovl_En_Door,C05340,C06180,B41760,B42330,80867A30,actors -ovl_En_Box,C06180,C07CB0,B42330,B43610,80868870,actors -ovl_En_Poh,C07CB0,C0BE40,B43610,B46090,8086A3B0,actors -ovl_En_Okuta,C0BE40,C0E420,B46090,B47AE0,8086E540,actors -ovl_En_Bom,C0E420,C0F2F0,B47AE0,B48690,80870B20,actors -ovl_En_Wallmas,C0F2F0,C10D00,B48690,B49830,808719F0,actors -ovl_En_Dodongo,C10D00,C13AA0,B49830,B4B770,80873400,actors -ovl_En_Firefly,C13AA0,C15C10,B4B770,B4CDE0,808761A0,actors -ovl_En_Horse,C15C10,C21E70,B4CDE0,B545E0,80878310,actors -ovl_En_Arrow,C21E70,C23560,B545E0,B55660,80884570,actors -ovl_En_Elf,C23560,C27F20,B55660,B58610,80885C60,actors -ovl_En_Niw,C27F20,C2B250,B58610,B5AAF0,8088A620,actors -ovl_En_Tite,C2B250,C2DFF0,B5AAF0,B5C5B0,8088D950,actors -ovl_En_Reeba,C2DFF0,C2FA60,B5C5B0,B5D8B0,808906F0,actors -ovl_En_Peehat,C2FA60,C33160,B5D8B0,B5FB80,80892160,actors -ovl_En_Holl,C33160,C34130,B5FB80,B60720,80895860,actors -ovl_En_Scene_Change,C34130,C34260,B60720,B60810,80896830,actors -ovl_En_Zf,C34260,C3AD50,B60810,B64C80,80896960,actors -ovl_En_Hata,C3AD50,C3B2E0,B64C80,B65180,8089D460,actors -ovl_Boss_Dodongo,C3B2E0,C44DC0,B65180,B6B430,8089D9F0,actors -ovl_Boss_Goma,C44DC0,C4AD40,B6B430,B6EDE0,808A74D0,actors -ovl_En_Zl1,C4AD40,C4EB40,B6EDE0,B70D10,808AD450,actors -ovl_En_Viewer,C4EB40,C519F0,B70D10,B72C40,808B1250,actors -ovl_En_Goma,C519F0,C54680,B72C40,B749E0,808B4120,actors -ovl_Bg_Pushbox,C54680,C54980,B749E0,B74C70,808B6DB0,actors -ovl_En_Bubble,C54980,C55DA0,B74C70,B75BD0,808B70B0,actors -ovl_Door_Shutter,C55DA0,C58020,B75BD0,B77490,808B84D0,actors -ovl_En_Dodojr,C58020,C59EC0,B77490,B789E0,808BA750,actors -ovl_En_Bdfire,C59EC0,C5AA50,B789E0,B792D0,808BC5F0,actors -ovl_En_Boom,C5AA50,C5B310,B792D0,B79A10,808BD180,actors -ovl_En_Torch2,C5B310,C5DA70,B79A10,B7B6B0,808BDA40,actors -ovl_En_Bili,C5DA70,C5FD40,B7B6B0,B7CEE0,808C01E0,actors -ovl_En_Tp,C5FD40,C61B90,B7CEE0,B7E500,808C24B0,actors -ovl_En_St,C61B90,C64800,B7E500,B803E0,808C4300,actors -ovl_En_Bw,C64800,C67B70,B803E0,B82680,808C6F70,actors -ovl_En_Eiyer,C67B70,C697D0,B82680,B83AA0,808CA2E0,actors -ovl_En_River_Sound,C697D0,C6A160,B83AA0,B84270,808CBF40,actors -ovl_En_Horse_Normal,C6A160,C6C780,B84270,B85AD0,808CC8D0,actors -ovl_En_Ossan,C6C780,C72D60,B85AD0,B892B0,808CEEF0,actors -ovl_Bg_Treemouth,C72D60,C743C0,B892B0,B89EB0,808D54D0,actors -ovl_Bg_Dodoago,C743C0,C75100,B89EB0,B8A910,808D6B30,actors -ovl_Bg_Hidan_Dalm,C75100,C75950,B8A910,B8AF80,808D78E0,actors -ovl_Bg_Hidan_Hrock,C75950,C76180,B8AF80,B8B5F0,808D8130,actors -ovl_En_Horse_Ganon,C76180,C76F00,B8B5F0,B8C060,808D8960,actors -ovl_Bg_Hidan_Rock,C76F00,C77FF0,B8C060,B8CD20,808D96E0,actors -ovl_Bg_Hidan_Rsekizou,C77FF0,C78BD0,B8CD20,B8D610,808DA7D0,actors -ovl_Bg_Hidan_Sekizou,C78BD0,C7A020,B8D610,B8E590,808DB3B0,actors -ovl_Bg_Hidan_Sima,C7A020,C7AF40,B8E590,B8F180,808DC800,actors -ovl_Bg_Hidan_Syoku,C7AF40,C7B3A0,B8F180,B8F490,808DD720,actors -ovl_En_Xc,C7B3A0,C81B00,B8F490,B92920,808DDB80,actors -ovl_Bg_Hidan_Curtain,C81B00,C825A0,B92920,B93160,808E4310,actors -ovl_Bg_Spot00_Hanebasi,C825A0,C836B0,B93160,B93F30,808E4DB0,actors -ovl_En_Mb,C836B0,C878E0,B93F30,B96A20,808E5EC0,actors -ovl_En_Bombf,C878E0,C88D50,B96A20,B97A10,808EA0F0,actors -ovl_Bg_Hidan_Firewall,C88D50,C894B0,B97A10,B98030,808EB560,actors -ovl_Bg_Dy_Yoseizo,C894B0,C8C2B0,B98030,B99F70,808EBCC0,actors -ovl_En_Zl2,C8C2B0,C909E0,B99F70,B9C340,808EEAC0,actors -ovl_Bg_Hidan_Fslift,C909E0,C90EB0,B9C340,B9C6F0,808F31F0,actors -ovl_En_OE2,C90EB0,C90F90,B9C6F0,B9C790,808F36C0,actors -ovl_Bg_Ydan_Hasi,C90F90,C91740,B9C790,B9CDB0,808F37A0,actors -ovl_Bg_Ydan_Maruta,C91740,C91E20,B9CDB0,B9D330,808F3F50,actors -ovl_Boss_Ganondrof,C91E20,C96B90,B9D330,BA0690,808F4630,actors -ovl_En_Am,C96B90,C98F90,BA0690,BA1EC0,808F93A0,actors -ovl_En_Dekubaba,C98F90,C9CA30,BA1EC0,BA44B0,808FB7A0,actors -ovl_En_M_Fire1,C9CA30,C9CBD0,BA44B0,BA4600,808FF240,actors -ovl_En_M_Thunder,C9CBD0,C9E1C0,BA4600,BA55F0,808FF3E0,actors -ovl_Bg_Ddan_Jd,C9E1C0,C9E810,BA55F0,BA5AF0,809009D0,actors -ovl_Bg_Breakwall,C9E810,C9F680,BA5AF0,BA6650,80901020,actors -ovl_En_Jj,C9F680,CA0C50,BA6650,BA72A0,80901E90,actors -ovl_En_Horse_Zelda,CA0C50,CA1740,BA72A0,BA7B70,80903460,actors -ovl_Bg_Ddan_Kd,CA1740,CA2030,BA7B70,BA8250,80903F50,actors -ovl_Door_Warp1,CA2030,CA62D0,BA8250,BAA9A0,80904840,actors -ovl_Obj_Syokudai,CA62D0,CA6F00,BAA9A0,BAB3D0,80908AF0,actors -ovl_Item_B_Heart,CA6F00,CA72F0,BAB3D0,BAB730,80909730,actors -ovl_En_Dekunuts,CA72F0,CA8AF0,BAB730,BAC6E0,80909B20,actors -ovl_Bg_Menkuri_Kaiten,CA8AF0,CA8C80,BAC6E0,BAC840,8090B320,actors -ovl_Bg_Menkuri_Eye,CA8C80,CA9110,BAC840,BACC30,8090B4B0,actors -ovl_En_Vali,CA9110,CAB7B0,BACC30,BAE6D0,8090B950,actors -ovl_Bg_Mizu_Movebg,CAB7B0,CAC940,BAE6D0,BAF3B0,8090DFF0,actors -ovl_Bg_Mizu_Water,CAC940,CAD610,BAF3B0,BAFCB0,8090F190,actors -ovl_Arms_Hook,CAD610,CAE370,BAFCB0,BB0740,8090FE60,actors -ovl_En_fHG,CAE370,CB0CA0,BB0740,BB2280,80910BC0,actors -ovl_Bg_Mori_Hineri,CB0CA0,CB19A0,BB2280,BB2C10,809134F0,actors -ovl_En_Bb,CB19A0,CB5670,BB2C10,BB57B0,809141F0,actors -ovl_Bg_Toki_Hikari,CB5670,CB6410,BB57B0,BB5FF0,80917EC0,actors -ovl_En_Yukabyun,CB6410,CB6A20,BB5FF0,BB6540,80918C60,actors -ovl_Bg_Toki_Swd,CB6A20,CB8070,BB6540,BB6F80,80919270,actors -ovl_En_Fhg_Fire,CB8070,CBA690,BB6F80,BB8B00,8091A8C0,actors -ovl_Bg_Mjin,CBA690,CBAA70,BB8B00,BB8E60,8091CEE0,actors -ovl_Bg_Hidan_Kousi,CBAA70,CBAFF0,BB8E60,BB9290,8091D2C0,actors -ovl_Door_Toki,CBAFF0,CBB150,BB9290,BB93B0,8091D840,actors -ovl_Bg_Hidan_Hamstep,CBB150,CBC000,BB93B0,BB9EE0,8091D9A0,actors -ovl_En_Bird,CBC000,CBC4C0,BB9EE0,BBA2C0,8091E850,actors -ovl_En_Wood02,CBC4C0,CBD690,BBA2C0,BBB100,8091ED10,actors -ovl_En_Lightbox,CBD690,CBDB10,BBB100,BBB4D0,8091FEF0,actors -ovl_En_Pu_box,CBDB10,CBDE50,BBB4D0,BBB7B0,80920370,actors -ovl_En_Trap,CBDE50,CBF0F0,BBB7B0,BBC3F0,809206B0,actors -ovl_En_Arow_Trap,CBF0F0,CBF240,BBC3F0,BBC530,80921950,actors -ovl_En_Vase,CBF240,CBF340,BBC530,BBC610,80921AA0,actors -ovl_En_Ta,CBF340,CC2D00,BBC610,BBE950,80921BA0,actors -ovl_En_Tk,CC2D00,CC4B30,BBE950,BBFF80,80925560,actors -ovl_Bg_Mori_Bigst,CC4B30,CC5460,BBFF80,BC05F0,80927390,actors -ovl_Bg_Mori_Elevator,CC5460,CC5F50,BC05F0,BC0D40,80927CC0,actors -ovl_Bg_Mori_Kaitenkabe,CC5F50,CC65B0,BC0D40,BC1290,809287B0,actors -ovl_Bg_Mori_Rakkatenjo,CC65B0,CC6F20,BC1290,BC1950,80928E10,actors -ovl_En_Vm,CC6F20,CC87D0,BC1950,BC2AE0,80929780,actors -ovl_Demo_Effect,CC87D0,CCE2C0,BC2AE0,BC6670,8092B030,actors -ovl_Demo_Kankyo,CCE2C0,CD1F70,BC6670,BC8B20,80930B20,actors -ovl_Bg_Hidan_Fwbig,CD1F70,CD2C50,BC8B20,BC9570,80934820,actors -ovl_En_Floormas,CD2C50,CD6030,BC9570,BCB570,80935500,actors -ovl_En_Heishi1,CD6030,CD7540,BCB570,BCC3C0,809388E0,actors -ovl_En_Rd,CD7540,CD9DF0,BCC3C0,BCDDE0,80939DF0,actors -ovl_En_Po_Sisters,CD9DF0,CDEAE0,BCDDE0,BD1000,8093C6A0,actors -ovl_Bg_Heavy_Block,CDEAE0,CE03D0,BD1000,BD2230,80941390,actors -ovl_Bg_Po_Event,CE03D0,CE2200,BD2230,BD3880,80942C80,actors -ovl_Obj_Mure,CE2200,CE3210,BD3880,BD43B0,80944AC0,actors -ovl_En_Sw,CE3210,CE6980,BD43B0,BD6C00,80945AD0,actors -ovl_Boss_Fd,CE6980,CEDCB0,BD6C00,BDB900,809492C0,actors -ovl_Object_Kankyo,CEDCB0,CF0ED0,BDB900,BDDCC0,809505F0,actors -ovl_En_Du,CF0ED0,CF2970,BDDCC0,BDEEC0,80953810,actors -ovl_En_Fd,CF2970,CF5630,BDEEC0,BE0FB0,809552B0,actors -ovl_En_Horse_Link_Child,CF5630,CF7430,BE0FB0,BE21B0,80957F70,actors -ovl_Door_Ana,CF7430,CF7AA0,BE21B0,BE2700,80959D70,actors -ovl_Bg_Spot02_Objects,CF7AA0,CF8DF0,BE2700,BE34A0,8095A3E0,actors -ovl_Bg_Haka,CF8DF0,CF94B0,BE34A0,BE3A50,8095B730,actors -ovl_Magic_Wind,CF94B0,CFB1B0,BE3A50,BE53E0,8095BDF0,actors -ovl_Magic_Fire,CFB1B0,CFD480,BE53E0,BE7300,8095DAF0,actors -ovl_En_Ru1,CFD480,D04B20,BE7300,BEB0B0,8095FDC0,actors -ovl_Boss_Fd2,D04B20,D08850,BEB0B0,BEDC20,80967460,actors -ovl_En_Fd_Fire,D08850,D09560,BEDC20,BEE6F0,8096B190,actors -ovl_En_Dh,D09560,D0B030,BEE6F0,BEFA70,8096BEA0,actors -ovl_En_Dha,D0B030,D0C030,BEFA70,BF0640,8096D970,actors -ovl_En_Rl,D0C030,D0CF10,BF0640,BF0F70,8096E970,actors -ovl_En_Encount1,D0CF10,D0DA70,BF0F70,BF18D0,8096F850,actors -ovl_Demo_Du,D0DA70,D11250,BF18D0,BF3410,809703B0,actors -ovl_Demo_Im,D11250,D151C0,BF3410,BF53B0,80973B90,actors -ovl_Demo_Tre_Lgt,D151C0,D158D0,BF53B0,BF59A0,80977B00,actors -ovl_En_Fw,D158D0,D17080,BF59A0,BF6CD0,80978210,actors -ovl_Bg_Vb_Sima,D17080,D17790,BF6CD0,BF7310,809799C0,actors -ovl_En_Vb_Ball,D17790,D18930,BF7310,BF8070,8097A0D0,actors -ovl_Bg_Haka_Megane,D18930,D18D30,BF8070,BF83C0,8097B270,actors -ovl_Bg_Haka_MeganeBG,D18D30,D193F0,BF83C0,BF8910,8097B670,actors -ovl_Bg_Haka_Ship,D193F0,D19E30,BF8910,BF9120,8097BD30,actors -ovl_Bg_Haka_Sgami,D19E30,D1AA50,BF9120,BF9AA0,8097C770,actors -ovl_En_Heishi2,D1AA50,D1CC50,BF9AA0,BFAF50,8097D390,actors -ovl_En_Encount2,D1CC50,D1DE80,BFAF50,BFBD50,8097F590,actors -ovl_En_Fire_Rock,D1DE80,D1EF90,BFBD50,BFC9C0,809807C0,actors -ovl_En_Brob,D1EF90,D20080,BFC9C0,BFD600,809818D0,actors -ovl_Mir_Ray,D20080,D21940,BFD600,BFEA00,809829C0,actors -ovl_Bg_Spot09_Obj,D21940,D21E50,BFEA00,BFEDD0,80984280,actors -ovl_Bg_Spot18_Obj,D21E50,D22720,BFEDD0,BFF420,80984790,actors -ovl_Boss_Va,D22720,D30F10,BFF420,C08A70,80985060,actors -ovl_Bg_Haka_Tubo,D30F10,D31930,C08A70,C092B0,8099C250,actors -ovl_Bg_Haka_Trap,D31930,D32F00,C092B0,C0A2C0,8099CC70,actors -ovl_Bg_Haka_Huta,D32F00,D339A0,C0A2C0,C0AB30,8099E240,actors -ovl_Bg_Haka_Zou,D339A0,D34B90,C0AB30,C0B8B0,8099ECE0,actors -ovl_Bg_Spot17_Funen,D34B90,D34DE0,C0B8B0,C0BAD0,8099FED0,actors -ovl_En_Syateki_Itm,D34DE0,D35B80,C0BAD0,C0C530,809A0120,actors -ovl_En_Syateki_Man,D35B80,D36940,C0C530,C0CF60,809A0EC0,actors -ovl_En_Tana,D36940,D36BE0,C0CF60,C0D1A0,809A1C80,actors -ovl_En_Nb,D36BE0,D3B1B0,C0D1A0,C0F610,809A1F20,actors -ovl_Boss_Mo,D3B1B0,D46750,C0F610,C17390,809A64F0,actors -ovl_En_Sb,D46750,D47B90,C17390,C18110,809B65A0,actors -ovl_En_Bigokuta,D47B90,D4A6A0,C18110,C19E60,809B79E0,actors -ovl_En_Karebaba,D4A6A0,D4BF90,C19E60,C1AFD0,809BA4F0,actors -ovl_Bg_Bdan_Objects,D4BF90,D4D260,C1AFD0,C1BCF0,809BBDE0,actors -ovl_Demo_Sa,D4D260,D4FD80,C1BCF0,C1D250,809BD0B0,actors -ovl_Demo_Go,D4FD80,D50AE0,C1D250,C1DB90,809BFBD0,actors -ovl_En_In,D50AE0,D53880,C1DB90,C1FC60,809C0930,actors -ovl_En_Tr,D53880,D55180,C1FC60,C20E70,809C36D0,actors -ovl_Bg_Spot16_Bombstone,D55180,D566C0,C20E70,C21F40,809C4FD0,actors -ovl_Bg_Hidan_Kowarerukabe,D566C0,D57590,C21F40,C22920,809C6510,actors -ovl_Bg_Bombwall,D57590,D57E50,C22920,C23000,809C73E0,actors -ovl_En_Ru2,D57E50,D5ABD0,C23000,C24660,809C7CA0,actors -ovl_Obj_Dekujr,D5ABD0,D5B210,C24660,C24BB0,809CAA20,actors -ovl_Bg_Mizu_Uzu,D5B210,D5B3E0,C24BB0,C24D40,809CB060,actors -ovl_Bg_Spot06_Objects,D5B3E0,D5C7F0,C24D40,C25C40,809CB230,actors -ovl_Bg_Ice_Objects,D5C7F0,D5D730,C25C40,C26680,809CC640,actors -ovl_Bg_Haka_Water,D5D730,D5DF10,C26680,C26C60,809CD580,actors -ovl_En_Ma2,D5DF10,D5EF70,C26C60,C278F0,809CDD60,actors -ovl_En_Bom_Chu,D5EF70,D60610,C278F0,C28AE0,809CEDC0,actors -ovl_En_Horse_Game_Check,D60610,D616E0,C28AE0,C29700,809D0460,actors -ovl_Boss_Tw,D616E0,D74760,C29700,C35CE0,809D1530,actors -ovl_En_Rr,D74760,D76C90,C35CE0,C377F0,809E7030,actors -ovl_En_Ba,D76C90,D78B60,C377F0,C38C50,809E9560,actors -ovl_En_Bx,D78B60,D79650,C38C50,C39600,809EB430,actors -ovl_En_Anubice,D79650,D7A900,C39600,C3A3D0,809EBF20,actors -ovl_En_Anubice_Fire,D7A900,D7B6C0,C3A3D0,C3AF30,809ED1D0,actors -ovl_Bg_Mori_Hashigo,D7B6C0,D7BF80,C3AF30,C3B5B0,809EDF90,actors -ovl_Bg_Mori_Hashira4,D7BF80,D7C500,C3B5B0,C3BA00,809EE850,actors -ovl_Bg_Mori_Idomizu,D7C500,D7CB40,C3BA00,C3BEE0,809EEDE0,actors -ovl_Bg_Spot16_Doughnut,D7CB40,D7D0F0,C3BEE0,C3C3B0,809EF420,actors -ovl_Bg_Bdan_Switch,D7D0F0,D7E520,C3C3B0,C3CF60,809EF9D0,actors -ovl_En_Ma1,D7E520,D7F800,C3CF60,C3DD60,809F0E00,actors -ovl_Boss_Ganon,D7F800,DA1A60,C3DD60,C53470,809F20E0,actors -ovl_Boss_Sst,DA1A60,DADFE0,C53470,C5AFB0,80A17EC0,actors -ovl_En_Ny,DADFE0,DAF910,C5AFB0,C5C200,80A24480,actors -ovl_En_Fr,DAF910,DB23A0,C5C200,C5E060,80A25DB0,actors -ovl_Item_Shield,DB23A0,DB2DB0,C5E060,C5E860,80A28840,actors -ovl_Bg_Ice_Shelter,DB2DB0,DB3FE0,C5E860,C5F630,80A29250,actors -ovl_En_Ice_Hono,DB3FE0,DB51D0,C5F630,C60300,80A2A480,actors -ovl_Item_Ocarina,DB51D0,DB59A0,C60300,C608C0,80A2B670,actors -ovl_Magic_Dark,DB59A0,DB71F0,C608C0,C61C00,80A2BE40,actors -ovl_Demo_6K,DB71F0,DB9F00,C61C00,C63D40,80A2D690,actors -ovl_En_Anubice_Tag,DB9F00,DBA1D0,C63D40,C63FB0,80A303A0,actors -ovl_Bg_Haka_Gate,DBA1D0,DBB250,C63FB0,C64C80,80A30670,actors -ovl_Bg_Spot15_Saku,DBB250,DBB590,C64C80,C64F50,80A31700,actors -ovl_Bg_Jya_Goroiwa,DBB590,DBBD10,C64F50,C655B0,80A31A40,actors -ovl_Bg_Jya_Zurerukabe,DBBD10,DBC3C0,C655B0,C65B00,80A321C0,actors -ovl_Bg_Jya_Cobra,DBC3C0,DBE0E0,C65B00,C67070,80A32870,actors -ovl_Bg_Jya_Kanaami,DBE0E0,DBE490,C67070,C67360,80A34590,actors -ovl_Fishing,DBE490,DD1E60,C67360,C74890,80A34940,actors -ovl_Obj_Oshihiki,DD1E60,DD3910,C74890,C75B30,80A4F3F0,actors -ovl_Bg_Gate_Shutter,DD3910,DD3D90,C75B30,C75EB0,80A50EA0,actors -ovl_Eff_Dust,DD3D90,DD5170,C75EB0,C76A80,80A51320,actors -ovl_Bg_Spot01_Fusya,DD5170,DD5410,C76A80,C76CC0,80A52700,actors -ovl_Bg_Spot01_Idohashira,DD5410,DD6010,C76CC0,C775F0,80A529A0,actors -ovl_Bg_Spot01_Idomizu,DD6010,DD6320,C775F0,C778C0,80A535A0,actors -ovl_Bg_Po_Syokudai,DD6320,DD6C70,C778C0,C78060,80A538B0,actors -ovl_Bg_Ganon_Otyuka,DD6C70,DD92B0,C78060,C79D90,80A54200,actors -ovl_Bg_Spot15_Rrbox,DD92B0,DDA090,C79D90,C7A7A0,80A56840,actors -ovl_Bg_Umajump,DDA090,DDA220,C7A7A0,C7A910,80A57620,actors -ovl_En_Insect,DDA220,DDC740,C7A910,C7C1B0,80A577B0,actors -ovl_En_Butte,DDC740,DDDD10,C7C1B0,C7D180,80A59CD0,actors -ovl_En_Fish,DDDD10,DDFE20,C7D180,C7E640,80A5B2A0,actors -ovl_Bg_Spot08_Iceblock,DDFE20,DE0E60,C7E640,C7F1E0,80A5D3B0,actors -ovl_Item_Etcetera,DE0E60,DE1730,C7F1E0,C7F870,80A5E3F0,actors -ovl_Arrow_Fire,DE1730,DE35F0,C7F870,C81320,80A5ECC0,actors -ovl_Arrow_Ice,DE35F0,DE54D0,C81320,C82B80,80A60B80,actors -ovl_Arrow_Light,DE54D0,DE73C0,C82B80,C84470,80A62A60,actors -ovl_Obj_Kibako,DE73C0,DE80C0,C84470,C84D50,80A64950,actors -ovl_Obj_Tsubo,DE80C0,DE90B0,C84D50,C858B0,80A65650,actors -ovl_En_Wonder_Item,DE90B0,DE9D00,C858B0,C86170,80A66640,actors -ovl_En_Ik,DE9D00,DEE330,C86170,C88A90,80A67370,actors -ovl_Demo_Ik,DEE330,DEF840,C88A90,C897A0,80A6B9B0,actors -ovl_En_Skj,DEF840,DF3170,C897A0,C8BB60,80A6CEC0,actors -ovl_En_Skjneedle,DF3170,DF3480,C8BB60,C8BE10,80A70800,actors -ovl_En_G_Switch,DF3480,DF4CB0,C8BE10,C8D0D0,80A70B10,actors -ovl_Demo_Ext,DF4CB0,DF55F0,C8D0D0,C8D7F0,80A72340,actors -ovl_Demo_Shd,DF55F0,DF7A00,C8D7F0,C8F030,80A72C80,actors -ovl_En_Dns,DF7A00,DF8D90,C8F030,C8FD00,80A75090,actors -ovl_Elf_Msg,DF8D90,DF9380,C8FD00,C90160,80A76420,actors -ovl_En_Honotrap,DF9380,DFA8D0,C90160,C91130,80A76A10,actors -ovl_En_Tubo_Trap,DFA8D0,DFB570,C91130,C91A40,80A77F60,actors -ovl_Obj_Ice_Poly,DFB570,DFBF20,C91A40,C92230,80A78C00,actors -ovl_Bg_Spot03_Taki,DFBF20,DFC810,C92230,C92900,80A795B0,actors -ovl_Bg_Spot07_Taki,DFC810,DFCDD0,C92900,C92D70,80A79EA0,actors -ovl_En_Fz,DFCDD0,DFEDE0,C92D70,C94460,80A7A460,actors -ovl_En_Po_Relay,DFEDE0,E004F0,C94460,C955D0,80A7C470,actors -ovl_Bg_Relay_Objects,E004F0,E00CA0,C955D0,C95BF0,80A7DB80,actors -ovl_En_Diving_Game,E00CA0,E02650,C95BF0,C96DE0,80A7E330,actors -ovl_En_Kusa,E02650,E03B30,C96DE0,C97D30,80A7FCE0,actors -ovl_Obj_Bean,E03B30,E062C0,C97D30,C99600,80A811C0,actors -ovl_Obj_Bombiwa,E062C0,E06830,C99600,C99AB0,80A83950,actors -ovl_Obj_Switch,E06830,E085F0,C99AB0,C9AD90,80A83EC0,actors -ovl_Obj_Elevator,E085F0,E089B0,C9AD90,C9B080,80A85C80,actors -ovl_Obj_Lift,E089B0,E093D0,C9B080,C9B8C0,80A86040,actors -ovl_Obj_Hsblock,E093D0,E099A0,C9B8C0,C9BD70,80A86A60,actors -ovl_En_Okarina_Tag,E099A0,E0AEA0,C9BD70,C9C970,80A87030,actors -ovl_En_Yabusame_Mark,E0AEA0,E0B570,C9C970,C9CED0,80A88530,actors -ovl_En_Goroiwa,E0B570,E0D930,C9CED0,C9E7F0,80A88C00,actors -ovl_En_Ex_Ruppy,E0D930,E0E9F0,C9E7F0,C9F4B0,80A8AFC0,actors -ovl_En_Toryo,E0E9F0,E0F680,C9F4B0,C9FDF0,80A8C080,actors -ovl_En_Daiku,E0F680,E10DC0,C9FDF0,CA0FE0,80A8CD10,actors -ovl_En_Nwc,E10DC0,E11800,CA0FE0,CA1890,80A8E450,actors -ovl_En_Blkobj,E11800,E11D60,CA1890,CA1D10,80A8EE90,actors -ovl_Item_Inbox,E11D60,E11EC0,CA1D10,CA1E20,80A8F3F0,actors -ovl_En_Ge1,E11EC0,E13EF0,CA1E20,CA3250,80A8F550,actors -ovl_Obj_Blockstop,E13EF0,E14090,CA3250,CA33D0,80A91580,actors -ovl_En_Sda,E14090,E156D0,CA33D0,CA4260,80A91720,actors -ovl_En_Clear_Tag,E156D0,E1E240,CA4260,CA86A0,80A92E20,actors -ovl_En_Niw_Lady,E1E240,E1FB40,CA86A0,CA9890,80A9E3C0,actors -ovl_En_Gm,E1FB40,E20870,CA9890,CAA2A0,80A9FCC0,actors -ovl_En_Ms,E20870,E20F60,CAA2A0,CAA850,80AA09F0,actors -ovl_En_Hs,E20F60,E21B00,CAA850,CAB090,80AA10E0,actors -ovl_Bg_Ingate,E21B00,E21E90,CAB090,CAB3A0,80AA1C80,actors -ovl_En_Kanban,E21E90,E24FE0,CAB3A0,CAD1B0,80AA2010,actors -ovl_En_Heishi3,E24FE0,E259B0,CAD1B0,CAD8E0,80AA5160,actors -ovl_En_Syateki_Niw,E259B0,E27A40,CAD8E0,CAF0B0,80AA5B30,actors -ovl_En_Attack_Niw,E27A40,E28CA0,CAF0B0,CAFE10,80AA7BC0,actors -ovl_Bg_Spot01_Idosoko,E28CA0,E28EB0,CAFE10,CAFFD0,80AA8E20,actors -ovl_En_Sa,E28EB0,E2B120,CAFFD0,CB15E0,80AA9030,actors -ovl_En_Wonder_Talk,E2B120,E2B7B0,CB15E0,CB1B30,80AAB2A0,actors -ovl_Bg_Gjyo_Bridge,E2B7B0,E2BCB0,CB1B30,CB1F70,80AAB930,actors -ovl_En_Ds,E2BCB0,E2C8D0,CB1F70,CB27D0,80AABE30,actors -ovl_En_Mk,E2C8D0,E2D760,CB27D0,CB31C0,80AACA50,actors -ovl_En_Bom_Bowl_Man,E2D760,E2ECA0,CB31C0,CB4160,80AAD8E0,actors -ovl_En_Bom_Bowl_Pit,E2ECA0,E2F610,CB4160,CB48C0,80AAEE20,actors -ovl_En_Owl,E2F610,E331B0,CB48C0,CB6B40,80AAF790,actors -ovl_En_Ishi,E331B0,E3C300,CB6B40,CB7E90,80AB3330,actors -ovl_Obj_Hana,E3C300,E3C610,CB7E90,CB8100,80ABC480,actors -ovl_Obj_Lightswitch,E3C610,E3DA40,CB8100,CB8F00,80ABC790,actors -ovl_Obj_Mure2,E3DA40,E3E460,CB8F00,CB9680,80ABDBC0,actors -ovl_En_Go,E3E460,E42AA0,CB9680,CBC3E0,80ABE5E0,actors -ovl_En_Fu,E42AA0,E437E0,CBC3E0,CBCE50,80AC2C20,actors -ovl_En_Changer,E437E0,E441C0,CBCE50,CBD5A0,80AC3970,actors -ovl_Bg_Jya_Megami,E441C0,E453A0,CBD5A0,CBE480,80AC4350,actors -ovl_Bg_Jya_Lift,E453A0,E458F0,CBE480,CBE8D0,80AC5530,actors -ovl_Bg_Jya_Bigmirror,E458F0,E46130,CBE8D0,CBEFE0,80AC5A80,actors -ovl_Bg_Jya_Bombchuiwa,E46130,E46C60,CBEFE0,CBF8B0,80AC62C0,actors -ovl_Bg_Jya_Amishutter,E46C60,E46FF0,CBF8B0,CBFB00,80AC6DF0,actors -ovl_Bg_Jya_Bombiwa,E46FF0,E475B0,CBFB00,CBFFE0,80AC7180,actors -ovl_Bg_Spot18_Basket,E475B0,E485A0,CBFFE0,CC0BF0,80AC7740,actors -ovl_En_Ganon_Organ,E485A0,E4F5A0,CC0BF0,CC4250,80AC8730,actors -ovl_En_Siofuki,E4F5A0,E50350,CC4250,CC4C90,80ACF730,actors -ovl_En_Stream,E50350,E508E0,CC4C90,CC5160,80AD04E0,actors -ovl_En_Mm,E508E0,E51F00,CC5160,CC6270,80AD0A70,actors -ovl_En_Ko,E51F00,E56040,CC6270,CC87F0,80AD2090,actors -ovl_En_Kz,E56040,E575E0,CC87F0,CC97F0,80AD61D0,actors -ovl_En_Weather_Tag,E575E0,E584D0,CC97F0,CC9F40,80AD7770,actors -ovl_Bg_Sst_Floor,E584D0,E58A30,CC9F40,CCA430,80AD8660,actors -ovl_En_Ani,E58A30,E597A0,CCA430,CCADC0,80AD8BC0,actors -ovl_En_Ex_Item,E597A0,E5A910,CCADC0,CCBA80,80AD9930,actors -ovl_Bg_Jya_Ironobj,E5A910,E5B6C0,CCBA80,CCC3F0,80ADAAA0,actors -ovl_En_Js,E5B6C0,E5C090,CCC3F0,CCCB10,80ADB850,actors -ovl_En_Jsjutan,E5C090,E60E50,CCCB10,CCE880,80ADC220,actors -ovl_En_Cs,E60E50,E62080,CCE880,CCF660,80AE1B40,actors -ovl_En_Md,E62080,E646F0,CCF660,CD0D60,80AE2D70,actors -ovl_En_Hy,E646F0,E68030,CD0D60,CD3170,80AE53E0,actors -ovl_En_Ganon_Mant,E68030,E6C250,CD3170,CD4EA0,80AE8D20,actors -ovl_En_Okarina_Effect,E6C250,E6C610,CD4EA0,CD5190,80AECF40,actors -ovl_En_Mag,E6C610,E6F520,CD5190,CD7250,80AED300,actors -ovl_Door_Gerudo,E6F520,E6FB10,CD7250,CD7740,80AF2210,actors -ovl_Elf_Msg2,E6FB10,E6FF80,CD7740,CD7A30,80AF2800,actors -ovl_Demo_Gt,E6FF80,E75580,CD7A30,CDA570,80AF2C70,actors -ovl_En_Po_Field,E75580,E78F60,CDA570,CDCE60,80AF8270,actors -ovl_Efc_Erupc,E78F60,E79A40,CDCE60,CDD780,80AFBCE0,actors -ovl_Bg_Zg,E79A40,E79EB0,CDD780,CDDB10,80AFC7C0,actors -ovl_En_Heishi4,E79EB0,E7ADB0,CDDB10,CDE5A0,80AFCC30,actors -ovl_En_Zl3,E7ADB0,E82C00,CDE5A0,CE2610,80AFDB30,actors -ovl_Boss_Ganon2,E82C00,E93F00,CE2610,CECC30,80B05980,actors -ovl_En_Kakasi,E93F00,E94C40,CECC30,CED650,80B187A0,actors -ovl_En_Takara_Man,E94C40,E95500,CED650,CEDDD0,80B194E0,actors -ovl_Obj_Makeoshihiki,E95500,E95990,CEDDD0,CEE1B0,80B19DA0,actors -ovl_Oceff_Spot,E95990,E968C0,CEE1B0,CEEEA0,80B1A230,actors -ovl_End_Title,E968C0,E9A9F0,CEEEA0,CF0910,80B1B160,actors -ovl_En_Torch,E9A9F0,E9AAE0,CF0910,CF09F0,80B1F290,actors -ovl_Demo_Ec,E9AAE0,E9E340,CF09F0,CF2100,80B1F380,actors -ovl_Shot_Sun,E9E340,E9EA00,CF2100,CF26A0,80B22BE0,actors -ovl_En_Dy_Extra,E9EA00,E9EF80,CF26A0,CF2B80,80B232A0,actors -ovl_En_Wonder_Talk2,E9EF80,E9F620,CF2B80,CF3120,80B23820,actors -ovl_En_Ge2,E9F620,EA0FC0,CF3120,CF42B0,80B23EC0,actors -ovl_Obj_Roomtimer,EA0FC0,EA1210,CF42B0,CF44B0,80B25860,actors -ovl_En_Ssh,EA1210,EA3800,CF44B0,CF5F00,80B25AB0,actors -ovl_En_Sth,EA3800,EA78B0,CF5F00,CF8AC0,80B280A0,actors -ovl_Oceff_Wipe,EA78B0,EA8600,CF8AC0,CF9690,80B2C150,actors -ovl_Effect_Ss_Dust,EA8600,EA8E30,CF9690,CF9D40,80B2CEA0,effects -ovl_Effect_Ss_KiraKira,EA8E30,EA94A0,CF9D40,CFA2E0,80B2D6D0,effects -ovl_Effect_Ss_Bomb,EA94A0,EA98C0,CFA2E0,CFA6B0,80B2DD40,effects -ovl_Effect_Ss_Bomb2,EA98C0,EAA1F0,CFA6B0,CFAE20,80B2E160,effects -ovl_Effect_Ss_Blast,EAA1F0,EAA580,CFAE20,CFB190,80B2EA90,effects -ovl_Effect_Ss_G_Spk,EAA580,EAAB30,CFB190,CFB6B0,80B2EE20,effects -ovl_Effect_Ss_D_Fire,EAAB30,EAB020,CFB6B0,CFBB50,80B2F3D0,effects -ovl_Effect_Ss_Bubble,EAB020,EAB4A0,CFBB50,CFBF50,80B2F8C0,effects -ovl_Effect_Ss_G_Ripple,EAB4A0,EABA00,CFBF50,CFC440,80B2FD40,effects -ovl_Effect_Ss_G_Splash,EABA00,EABEB0,CFC440,CFC810,80B302A0,effects -ovl_Effect_Ss_G_Magma,EABEB0,EAC110,CFC810,CFCA50,80B30750,effects -ovl_Effect_Ss_G_Fire,EAC110,EAC3A0,CFCA50,CFCCB0,80B309B0,effects -ovl_Effect_Ss_Lightning,EAC3A0,EACA70,CFCCB0,CFD300,80B30C40,effects -ovl_Effect_Ss_Dt_Bubble,EACA70,EAD000,CFD300,CFD7E0,80B31310,effects -ovl_Effect_Ss_Hahen,EAD000,EAD640,CFD7E0,CFDCC0,80B318A0,effects -ovl_Effect_Ss_Stick,EAD640,EAD9E0,CFDCC0,CFE010,80B31EE0,effects -ovl_Effect_Ss_Sibuki,EAD9E0,EAE0B0,CFE010,CFE620,80B32280,effects -ovl_Effect_Ss_Sibuki2,EAE0B0,EAE3E0,CFE620,CFE930,80B32950,effects -ovl_Effect_Ss_G_Magma2,EAE3E0,EAE8F0,CFE930,CFEDF0,80B32C80,effects -ovl_Effect_Ss_Stone1,EAE8F0,EAEC80,CFEDF0,CFF140,80B33190,effects -ovl_Effect_Ss_HitMark,EAEC80,EAF1D0,CFF140,CFF600,80B33520,effects -ovl_Effect_Ss_Fhg_Flash,EAF1D0,EB0150,CFF600,D00020,80B33A70,effects -ovl_Effect_Ss_K_Fire,EB0150,EB0580,D00020,D00410,80B349F0,effects -ovl_Effect_Ss_Solder_Srch_Ball,EB0580,EB0730,D00410,D005B0,80B34E20,effects -ovl_Effect_Ss_Kakera,EB0730,EB17C0,D005B0,D011F0,80B34FD0,effects -ovl_Effect_Ss_Ice_Piece,EB17C0,EB1C00,D011F0,D01600,80B36060,effects -ovl_Effect_Ss_En_Ice,EB1C00,EB24C0,D01600,D01DC0,80B364A0,effects -ovl_Effect_Ss_Fire_Tail,EB24C0,EB2BC0,D01DC0,D02420,80B36D60,effects -ovl_Effect_Ss_En_Fire,EB2BC0,EB3300,D02420,D02A90,80B37460,effects -ovl_Effect_Ss_Extra,EB3300,EB36C0,D02A90,D02E40,80B37BA0,effects -ovl_Effect_Ss_Fcircle,EB36C0,EB3B70,D02E40,D032B0,80B37F60,effects -ovl_Effect_Ss_Dead_Db,EB3B70,EB4050,D032B0,D03770,80B38410,effects -ovl_Effect_Ss_Dead_Dd,EB4050,EB45E0,D03770,D03C90,80B388F0,effects -ovl_Effect_Ss_Dead_Ds,EB45E0,EB4A60,D03C90,D040C0,80B38E80,effects -ovl_Effect_Ss_Dead_Sound,EB4A60,EB4BA0,D040C0,D04200,80B39300,effects -ovl_Oceff_Storm,EB4BA0,EB6740,D04200,D05C60,80B39440,actors -ovl_En_Weiyer,EB6740,EB8140,D05C60,D06D90,80B3AFE0,actors -ovl_Bg_Spot05_Soko,EB8140,EB8460,D06D90,D07020,80B3C9E0,actors -ovl_Bg_Jya_1flift,EB8460,EB8AF0,D07020,D07520,80B3CD00,actors -ovl_Bg_Jya_Haheniron,EB8AF0,EB92E0,D07520,D07BA0,80B3D390,actors -ovl_Bg_Spot12_Gate,EB92E0,EB96F0,D07BA0,D07EB0,80B3DB80,actors -ovl_Bg_Spot12_Saku,EB96F0,EB9BB0,D07EB0,D08270,80B3DF90,actors -ovl_En_Hintnuts,EB9BB0,EBB5E0,D08270,D09410,80B3E450,actors -ovl_En_Nutsball,EBB5E0,EBBC00,D09410,D09990,80B3FE80,actors -ovl_Bg_Spot00_Break,EBBC00,EBBDA0,D09990,D09B00,80B404A0,actors -ovl_En_Shopnuts,EBBDA0,EBCCB0,D09B00,D0A560,80B40640,actors -ovl_En_It,EBCCB0,EBCE40,D0A560,D0A690,80B41550,actors -ovl_En_GeldB,EBCE40,EC21F0,D0A690,D0DA70,80B416E0,actors -ovl_Oceff_Wipe2,EC21F0,EC3960,D0DA70,D0E8C0,80B46A90,actors -ovl_Oceff_Wipe3,EC3960,EC50B0,D0E8C0,D0FB50,80B48200,actors -ovl_En_Niw_Girl,EC50B0,EC5B80,D0FB50,D104A0,80B49950,actors -ovl_En_Dog,EC5B80,EC6D30,D104A0,D11120,80B4A420,actors -ovl_En_Si,EC6D30,EC7230,D11120,D11540,80B4B5D0,actors -ovl_Bg_Spot01_Objects2,EC7230,EC76F0,D11540,D11950,80B4BAD0,actors -ovl_Obj_Comb,EC76F0,EC7F50,D11950,D12090,80B4BF90,actors -ovl_Bg_Spot11_Bakudankabe,EC7F50,EC8590,D12090,D125F0,80B4C7F0,actors -ovl_Obj_Kibako2,EC8590,EC8C50,D125F0,D12BB0,80B4CE30,actors -ovl_En_Dnt_Demo,EC8C50,EC9970,D12BB0,D13600,80B4D4F0,actors -ovl_En_Dnt_Jiji,EC9970,ECAE80,D13600,D142B0,80B4E210,actors -ovl_En_Dnt_Nomal,ECAE80,ECDC90,D142B0,D15E70,80B4F720,actors -ovl_En_Guest,ECDC90,ECE630,D15E70,D16680,80B52530,actors -ovl_Bg_Bom_Guard,ECE630,ECE850,D16680,D16870,80B52ED0,actors -ovl_En_Hs2,ECE850,ECEE30,D16870,D16D50,80B530F0,actors -ovl_Demo_Kekkai,ECEE30,ED0110,D16D50,D17BF0,80B536D0,actors -ovl_Bg_Spot08_Bakudankabe,ED0110,ED07B0,D17BF0,D181A0,80B549B0,actors -ovl_Bg_Spot17_Bakudankabe,ED07B0,ED0E90,D181A0,D18780,80B55050,actors -ovl_Obj_Mure3,ED0E90,ED1660,D18780,D18DB0,80B55730,actors -ovl_En_Tg,ED1660,ED1D30,D18DB0,D19380,80B55F00,actors -ovl_En_Mu,ED1D30,ED2650,D19380,D19B40,80B565D0,actors -ovl_En_Go2,ED2650,ED8670,D19B40,D1D940,80B56EF0,actors -ovl_En_Wf,ED8670,EDC980,D1D940,D204A0,80B5CF10,actors -ovl_En_Skb,EDC980,EDE270,D204A0,D216C0,80B61220,actors -ovl_Demo_Gj,EDE270,EE1F20,D216C0,D23330,80B62B10,actors -ovl_Demo_Geff,EE1F20,EE2740,D23330,D23920,80B667C0,actors -ovl_Bg_Gnd_Firemeiro,EE2740,EE2C80,D23920,D23D80,80B66FE0,actors -ovl_Bg_Gnd_Darkmeiro,EE2C80,EE3440,D23D80,D24340,80B67520,actors -ovl_Bg_Gnd_Soulmeiro,EE3440,EE3CA0,D24340,D24A30,80B67CE0,actors -ovl_Bg_Gnd_Nisekabe,EE3CA0,EE3E10,D24A30,D24B80,80B68540,actors -ovl_Bg_Gnd_Iceblock,EE3E10,EE4F00,D24B80,D256C0,80B686B0,actors -ovl_Bg_Ydan_Sp,EE4F00,EE6670,D256C0,D267E0,80B697B0,actors -ovl_En_Gb,EE6670,EE7DA0,D267E0,D27910,80B6AF20,actors -ovl_En_Gs,EE7DA0,EE9C40,D27910,D28F90,80B6C650,actors -ovl_Bg_Mizu_Bwall,EE9C40,EEB110,D28F90,D29D70,80B6E4F0,actors -ovl_Bg_Mizu_Shutter,EEB110,EEB910,D29D70,D2A3A0,80B6F9C0,actors -ovl_En_Daiku_Kakariko,EEB910,EECCD0,D2A3A0,D2B290,80B701C0,actors -ovl_Bg_Bowl_Wall,EECCD0,EED650,D2B290,D2BAB0,80B71580,actors -ovl_En_Wall_Tubo,EED650,EEDB40,D2BAB0,D2BED0,80B71F00,actors -ovl_En_Po_Desert,EEDB40,EEE900,D2BED0,D2CA30,80B723F0,actors -ovl_En_Crow,EEE900,EEFFA0,D2CA30,D2DB00,80B731B0,actors -ovl_Door_Killer,EEFFA0,EF1510,D2DB00,D2EB80,80B74850,actors -ovl_Bg_Spot11_Oasis,EF1510,EF1C40,D2EB80,D2F1B0,80B75DC0,actors -ovl_Bg_Spot18_Futa,EF1C40,EF1DE0,D2F1B0,D2F310,80B764F0,actors -ovl_Bg_Spot18_Shutter,EF1DE0,EF2330,D2F310,D2F730,80B76690,actors -ovl_En_Ma3,EF2330,EF32E0,D2F730,D30360,80B76BE0,actors -ovl_En_Cow,EF32E0,EF4740,D30360,D31080,80B77B90,actors -ovl_Bg_Ice_Turara,EF4740,EF4F70,D31080,D31740,80B78FF0,actors -ovl_Bg_Ice_Shutter,EF4F70,EF53E0,D31740,D31AA0,80B79820,actors -ovl_En_Kakasi2,EF53E0,EF5B00,D31AA0,D32040,80B79C90,actors -ovl_En_Kakasi3,EF5B00,EF6BE0,D32040,D32C80,80B7A3B0,actors -ovl_Oceff_Wipe4,EF6BE0,EF7BC0,D32C80,D33850,80B7B490,actors -ovl_En_Eg,EF7BC0,EF7D70,D33850,D339B0,80B7C470,actors -ovl_Bg_Menkuri_Nisekabe,EF7D70,EF7EC0,D339B0,D33AD0,80B7C620,actors -ovl_En_Zo,EF7EC0,EFA470,D33AD0,D35540,80B7C770,actors -ovl_Effect_Ss_Ice_Smoke,EFA470,EFA930,D35540,D35980,80B7ED20,effects -ovl_Obj_Makekinsuta,EFA930,EFAA80,D35980,D35AC0,80B7F1E0,actors -ovl_En_Ge3,EFAA80,EFB5D0,D35AC0,D36340,80B7F330,actors -ovl_Obj_Timeblock,EFB5D0,EFC210,D36340,D36C30,80B7FE80,actors -ovl_Obj_Hamishi,EFC210,EFCA60,D36C30,D37330,80B80AC0,actors -ovl_En_Zl4,EFCA60,F01490,D37330,D39930,80B81310,actors -ovl_En_Mm2,F01490,F02250,D39930,D3A3A0,80B85D40,actors -ovl_Bg_Jya_Block,F02250,F024C0,D3A3A0,D3A600,80B86B00,actors -ovl_Obj_Warp2block,F024C0,F02FF0,D3A600,D3AED0,80B86D70,actors diff --git a/tools/disasm/ntsc-1.2/files_boot.csv b/tools/disasm/ntsc-1.2/files_boot.csv deleted file mode 100644 index 66aaa08b36..0000000000 --- a/tools/disasm/ntsc-1.2/files_boot.csv +++ /dev/null @@ -1,138 +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 -C90,800010F0,src/boot/yaz0 -FD0,80001430,src/boot/z_locale -1070,800014D0,src/boot/cic6105 -12F0,80001750,src/boot/is_debug -1350,800017B0,src/boot/driverominit -1530,80001990,src/boot/mio0 -15E0,80001A40,src/boot/stackcheck -17F0,80001C50,src/boot/logutils -1910,80001D70,src/libc64/sleep -1AB0,80001F10,src/libultra/io/piacs -1B70,80001FD0,src/libultra/os/sendmesg -1CC0,80002120,src/libultra/os/stopthread -1D80,800021E0,src/libultra/io/viextendvstart -1D90,800021F0,src/libultra/os/recvmesg -1ED0,80002330,src/libultra/libc/ll -2190,800025F0,src/libultra/os/exceptasm -2A90,80002EF0,src/libultra/os/thread -2AD0,80002F30,src/libultra/os/destroythread -2BE0,80003040,src/libultra/libc/bzero -2C80,800030E0,src/libultra/os/createthread -2DD0,80003230,src/libultra/os/initialize -3120,80003580,src/libultra/os/parameters -3180,800035E0,src/libultra/os/setsr -3190,800035F0,src/libultra/os/getsr -31A0,80003600,src/libultra/os/writebackdcache -3220,80003680,src/libultra/io/vigetnextframebuf -3260,800036C0,src/libultra/io/pimgr -33E0,80003840,src/libultra/io/devmgr -37F0,80003C50,src/libultra/io/pirawdma -38C0,80003D20,src/libultra/os/virtualtophysical -3940,80003DA0,src/libultra/io/viblack -39B0,80003E10,src/libultra/io/sirawread -3A00,80003E60,src/libultra/os/getthreadid -3A20,80003E80,src/libultra/os/setintmask -3AC0,80003F20,src/libultra/io/visetmode -3B30,80003F90,src/libultra/os/probetlb -3BF0,80004050,src/libultra/os/getmemsize -3D10,80004170,src/libultra/os/seteventmesg -3DD0,80004230,src/libultra/os/unmaptlball -3E20,80004280,src/libultra/io/epidma -3F00,80004360,src/libultra/os/invalicache -3F80,800043E0,src/libultra/os/createmesgqueue -3FB0,80004410,src/libultra/os/invaldcache -4060,800044C0,src/libultra/io/si -4090,800044F0,src/libultra/os/jammesg -41E0,80004640,src/libultra/os/setthreadpri -42C0,80004720,src/libultra/os/getthreadpri -42E0,80004740,src/libultra/io/epirawread -4440,800048A0,src/libultra/io/viswapbuf -4490,800048F0,src/libultra/io/epirawdma -4670,80004AD0,src/libultra/os/gettime -4700,80004B60,src/libultra/os/timerintr -4B00,80004F60,src/libultra/os/getcount -4B10,80004F70,src/libultra/os/setglobalintmask -4B60,80004FC0,src/libultra/os/setcompare -4B70,80004FD0,src/libultra/libc/bcopy -4E80,800052E0,src/libultra/os/resetglobalintmask -4EE0,80005340,src/libultra/os/interrupt -4F70,800053D0,src/libultra/io/vi -50B0,80005510,src/libultra/io/viswapcontext -53B0,80005810,src/libultra/io/pigetcmdq -53E0,80005840,src/libultra/io/epiread -5430,80005890,src/libultra/io/visetspecial -5590,800059F0,src/libultra/io/cartrominit -56F0,80005B50,src/libultra/os/setfpccsr -5700,80005B60,src/libultra/os/getfpccsr -5710,80005B70,src/libultra/io/epiwrite -5760,80005BC0,src/libultra/os/maptlbrdb -57C0,80005C20,src/libultra/os/yieldthread -5810,80005C70,src/libultra/os/getcause -5820,80005C80,src/libultra/io/epirawwrite -5980,80005DE0,src/libultra/os/settimer -5A60,80005EC0,src/libultra/io/sirawwrite -5AC0,80005F20,src/libultra/io/vimgr -5DD0,80006230,src/libultra/io/vigetcurrcontext -5DE0,80006240,src/libultra/os/startthread -5F30,80006390,src/libultra/io/visetyscale -5F90,800063F0,src/libultra/io/visetxscale -60C0,80006520,src/libultra/os/sethwintrroutine -6130,80006590,src/libultra/os/gethwintrroutine -6160,800065C0,data/rsp_boot.text -62E0,80006740,data/cic6105.text - -offset,vram,.data -6310,80006770,src/boot/idle -6330,80006790,src/boot/viconfig -6340,800067A0,src/boot/z_std_dma -6350,800067B0,src/boot/z_locale -6360,800067C0,src/boot/cic6105 -63A0,80006800,src/boot/driverominit -63B0,80006810,src/boot/stackcheck -63C0,80006820,src/libultra/io/piacs -63D0,80006830,src/libultra/io/vimodepallan1 -6420,80006880,src/libultra/os/exceptasm -6450,800068B0,src/libultra/os/thread -6470,800068D0,src/libultra/os/initialize -6490,800068F0,src/libultra/io/pimgr -64C0,80006920,src/libultra/os/seteventmesg -64D0,80006930,src/libultra/os/timerintr -64E0,80006940,src/libultra/io/vimodentsclan1 -6530,80006990,src/libultra/io/vimodempallan1 -6580,800069E0,src/libultra/io/vi -65F0,80006A50,src/libultra/io/cartrominit -6600,80006A60,src/libultra/io/vimgr - -offset,vram,.rodata -6620,80006A80,src/boot/boot_main -6630,80006A90,src/boot/idle -6640,80006AA0,src/boot/z_std_dma -66C0,80006B20,src/boot/z_locale -66D0,80006B30,src/boot/cic6105 -6730,80006B90,src/boot/stackcheck -6770,80006BD0,src/boot/logutils -67E0,80006C40,src/libultra/os/exceptasm -6830,80006C90,src/libultra/io/devmgr -6850,80006CB0,src/libultra/os/setintmask -68D0,80006D30,src/boot/build - -offset,vram,.bss -6900,80006D60,src/boot/boot_main -72F0,80007750,src/boot/idle -7F00,80008360,src/boot/z_std_dma -8670,80008AD0,src/boot/yaz0 -8A80,80008EE0,src/boot/cic6105 -8AA0,80008F00,src/boot/driverominit -8B20,80008F80,src/libultra/io/piacs -8B40,80008FA0,src/libultra/os/initialize -8B50,80008FB0,src/libultra/io/pimgr -9FC0,8000A420,src/libultra/os/seteventmesg -A040,8000A4A0,src/libultra/os/timerintr -A080,8000A4E0,src/libultra/io/cartrominit -A100,8000A560,src/libultra/io/vimgr -B320,8000B780,.end diff --git a/tools/disasm/ntsc-1.2/files_code.csv b/tools/disasm/ntsc-1.2/files_code.csv deleted file mode 100644 index 6b8f61f0a2..0000000000 --- a/tools/disasm/ntsc-1.2/files_code.csv +++ /dev/null @@ -1,463 +0,0 @@ -offset,vram,.text -0,800116E0,src/code/z_en_a_keep -AA0,80012180,src/code/z_en_item00 -2E90,80014570,src/code/z_eff_blure -6310,800179F0,src/code/z_eff_shield_particle -7980,80019060,src/code/z_eff_spark -9040,8001A720,src/code/z_eff_ss_dead -97E0,8001AEC0,src/code/z_effect -9F60,8001B640,src/code/z_effect_soft_sprite -AA00,8001C0E0,src/code/z_effect_soft_sprite_old_init -D520,8001EC00,src/code/flg_set -D930,8001F010,src/code/z_DLF -DB80,8001F260,src/code/z_actor -1A0C0,8002B7A0,src/code/z_actor_dlftbls -1A2C0,8002B9A0,src/code/z_bgcheck -23EA0,80035580,src/code/code_800430A0 -241C0,800358A0,src/code/code_80043480 -24550,80035C30,src/code/z_camera -38D70,8004A450,src/code/z_collision_btltbls -38DD0,8004A4B0,src/code/z_collision_check -40A50,80052130,src/code/z_common_data -40B00,800521E0,src/code/z_debug -40E10,800524F0,src/code/z_debug_display -412C0,800529A0,src/code/z_demo -45FE0,800576C0,src/code/code_80069420 -46070,80057750,src/code/z_draw -47ED0,800595B0,src/code/z_sfx_source -48090,80059770,src/code/z_elf_message -48770,80059E50,src/code/z_face_reaction -487C0,80059EA0,src/code/code_8006C3A0 -48940,8005A020,src/code/z_fcurve_data -48B80,8005A260,src/code/z_fcurve_data_skelanime -49370,8005AA50,src/code/z_horse -4A050,8005B730,src/code/z_jpeg -4A810,8005BEF0,src/code/z_kaleido_setup -4AC40,8005C320,src/code/z_kanfont -4AE50,8005C530,src/code/z_kankyo -52610,80063CF0,src/code/z_lib -537B0,80064E90,src/code/z_lifemeter -54B50,80066230,src/code/z_lights -55BF0,800672D0,src/code/z_malloc -55DD0,800674B0,src/code/z_map_mark -56420,80067B00,src/code/z_prenmi_buff -564E0,80067BC0,src/code/z_nulltask -56560,80067C40,src/code/z_olib -56C50,80068330,src/code/z_onepointdemo -5ABF0,8006C2D0,src/code/z_map_exp -5C860,8006DF40,src/code/z_parameter -67F30,80079610,src/code/z_path -68100,800797E0,src/code/z_frame_advance -681B0,80079890,src/code/z_player_lib -6BBE0,8007D2C0,src/code/z_prenmi -6BD80,8007D460,src/code/z_quake -6CBF0,8007E2D0,src/code/z_rcp -6E4F0,8007FBD0,src/code/z_room -6FC80,80081360,src/code/z_sample -70080,80081760,src/code/code_80097A00 -70240,80081920,src/code/z_scene -716F0,80082DD0,src/code/z_scene_table -77D60,80089440,src/code/z_skelanime -7C6E0,8008DDC0,src/code/z_skin -7D280,8008E960,src/code/z_skin_awb -7DB90,8008F270,src/code/z_skin_matrix -7EF30,80090610,src/code/z_sram -80270,80091950,src/code/z_ss_sram -80440,80091B20,src/code/z_rumble -806E0,80091DC0,src/code/z_view -81E10,800934F0,src/code/z_vimode -82980,80094060,src/code/z_viscvg -82B20,80094200,src/code/z_vismono -83380,80094A60,src/code/z_viszbuf -83670,80094D50,src/code/z_vr_box -85F60,80097640,src/code/z_vr_box_draw -86660,80097D40,src/code/z_player_call -867D0,80097EB0,src/code/z_fbdemo -871F0,800988D0,src/code/z_fbdemo_triforce -877A0,80098E80,src/code/z_fbdemo_wipe1 -87C10,800992F0,src/code/z_fbdemo_circle -882D0,800999B0,src/code/z_fbdemo_fade -88630,80099D10,src/code/shrink_window -887A0,80099E80,src/code/code_800BB0A0 -88C70,8009A350,src/code/z_kaleido_manager -88EA0,8009A580,src/code/z_kaleido_scope_call -89180,8009A860,src/code/z_play -8CCB0,8009E390,src/code/PreRender -8EED0,800A05B0,src/code/TwoHeadGfxArena -8F0E0,800A07C0,src/code/TwoHeadArena -8F2A0,800A0980,src/code/audio_stop_all_sfx -8F2F0,800A09D0,src/code/audio_thread_manager -8F710,800A0DF0,src/code/title_setup -8F780,800A0E60,src/code/game -8FFC0,800A16A0,src/code/gamealloc -90100,800A17E0,src/code/graph -90AA0,800A2180,src/code/gfxalloc -90B00,800A21E0,src/code/listalloc -90C50,800A2330,src/code/main -91000,800A26E0,src/code/padmgr -91B20,800A3200,src/code/sched -927A0,800A3E80,src/code/speed_meter -931E0,800A48C0,src/code/sys_cfb -93300,800A49E0,src/code/sys_math -935A0,800A4C80,src/code/sys_math3d -99370,800AAA50,src/code/sys_math_atan -995A0,800AAC80,src/code/sys_matrix -9B9A0,800AD080,src/code/sys_ucode -9B9F0,800AD0D0,src/code/sys_rumble -9BD50,800AD430,src/code/code_800D31A0 -9BD80,800AD460,src/code/irqmgr -9C3A0,800ADA80,src/code/code_n64dd_800AD410 -9C450,800ADB30,src/code/code_n64dd_800AD4C0 -9C540,800ADC20,src/code/fault_n64 -9E710,800AFDF0,src/code/kanread -9F1F0,800B08D0,src/audio/lib/synthesis -A2380,800B3A60,src/audio/lib/heap -A5750,800B6E30,src/audio/lib/load -A9540,800BAC20,src/audio/lib/thread -AADA0,800BC480,src/audio/lib/dcache -AAE20,800BC500,src/audio/lib/aisetnextbuf -AAEA0,800BC580,src/audio/lib/playback -ACE20,800BE500,src/audio/lib/effects -AD8A0,800BEF80,src/audio/lib/seqplayer -B0EF0,800C25D0,src/audio/general -B70B0,800C8790,src/audio/sfx -B8F00,800CA5E0,src/audio/sequence -BAB20,800CC200,src/code/gfxprint -BB720,800CCE00,src/code/rcp_utils -BBA50,800CD130,src/code/loadfragment2_n64 -BBF00,800CD5E0,src/code/padutils -BC110,800CD7F0,src/code/code_800FC620 -BC530,800CDC10,src/code/padsetup -BC670,800CDD50,src/libc64/math64 -BCA20,800CE100,src/libc64/fp -BCB80,800CE260,src/libc64/malloc -BCDF0,800CE4D0,src/libc64/qrand -BCEF0,800CE5D0,src/libc64/__osMalloc_n64 -BD8A0,800CEF80,src/libc64/sprintf -BD970,800CF050,src/libc64/aprintf -BD9D0,800CF0B0,src/code/jpegutils -BDEE0,800CF5C0,src/code/jpegdecoder -BE4D0,800CFBB0,src/libultra/os/getintmask -BE530,800CFC10,src/libultra/gu/scale -BE5D0,800CFCB0,src/libultra/gu/sinf -BE790,800CFE70,src/libultra/gu/sins -BE800,800CFEE0,src/libultra/io/sptask -BEAF0,800D01D0,src/libultra/io/motor -BEEC0,800D05A0,src/libultra/io/siacs -BEF80,800D0660,src/libultra/io/controller -BF2C0,800D09A0,src/libultra/io/contreaddata -BF4A0,800D0B80,src/libultra/gu/perspective -BF730,800D0E10,src/libultra/io/sprawdma -BF7C0,800D0EA0,src/libultra/io/sirawdma -BF870,800D0F50,src/libultra/io/sptaskyield -BF890,800D0F70,src/libultra/gu/mtxutil -BFB00,800D11E0,src/libultra/gu/lookat -BFE30,800D1510,src/libultra/os/stoptimer -BFF20,800D1600,src/libultra/gu/sqrtf -BFF30,800D1610,src/libultra/os/afterprenmi -BFF50,800D1630,src/libultra/io/contquery -C0000,800D16E0,src/libultra/gu/lookathil -C07F0,800D1ED0,src/libultra/libc/xprintf -C14B0,800D2B90,src/libultra/libc/string -C1550,800D2C30,src/libultra/io/sp -C1580,800D2C60,src/libultra/gu/position -C17A0,800D2E80,src/libultra/io/sptaskyielded -C1820,800D2F00,src/libultra/gu/rotate -C1A10,800D30F0,src/libultra/io/aisetfreq -C1B60,800D3240,src/libultra/os/getactivequeue -C1B70,800D3250,src/libultra/gu/normalize -C1C00,800D32E0,src/libultra/io/dpgetstat -C1C10,800D32F0,src/libultra/io/dpsetstat -C1C20,800D3300,src/libultra/gu/ortho -C1DE0,800D34C0,src/libultra/gu/cosf -C1F50,800D3630,src/libultra/gu/coss -C1F80,800D3660,src/libultra/os/settime -C1FB0,800D3690,src/libultra/io/visetevent -C2020,800D3700,src/libultra/gu/us2dex -C21A0,800D3880,src/libultra/io/pfsselectbank -C2220,800D3900,src/libultra/io/contsetch -C2290,800D3970,src/libultra/io/aigetlen -C22A0,800D3980,src/libultra/gu/translate -C2340,800D3A20,src/libultra/io/contramwrite -C2590,800D3C70,src/libultra/io/pfsgetstatus -C27C0,800D3EA0,src/libultra/io/contpfs -C3340,800D4A20,src/libultra/libc/bcmp -C3460,800D4B40,src/libultra/io/contramread -C3690,800D4D70,src/libultra/io/crc -C3800,800D4EE0,src/libultra/io/pfsisplug -C3B40,800D5220,src/libultra/libc/xlitob -C3DE0,800D54C0,src/libultra/libc/ldiv -C3F70,800D5650,src/libultra/libc/xldtob -C4A30,800D6110,src/libultra/io/spgetstat -C4A40,800D6120,src/libultra/io/spsetstat -C4A50,800D6130,src/libultra/os/writebackdcacheall -C4A80,800D6160,src/libultra/os/getcurrfaultedthread -C4A90,800D6170,src/libultra/libc/llcvt -C4CA0,800D6380,src/libultra/io/vigetcurrframebuf -C4CE0,800D63C0,src/libultra/io/spsetpc -C4D20,800D6400,src/libc/sqrt -C4D30,800D6410,src/libc/fmodf -C4D80,800D6460,src/libc/memset -C4DB0,800D6490,src/libc/memmove -C4E40,800D6520,src/code/z_message -D0620,800E1D00,src/code/z_game_over -D0B60,800E2240,src/code/z_construct -D1F20,800E3600,data/rsp.text - -offset,vram,.data -D6610,800E7CF0,src/code/z_en_a_keep -D66B0,800E7D90,src/code/z_en_item00 -D6950,800E8030,src/code/z_eff_blure -D6A00,800E80E0,src/code/z_eff_shield_particle -D6A50,800E8130,src/code/z_effect -D6AA0,800E8180,src/code/z_effect_soft_sprite -D6AB0,800E8190,src/code/z_effect_soft_sprite_old_init -D6BA0,800E8280,src/code/z_effect_soft_sprite_dlftbls -D6FB0,800E8690,src/code/flg_set -D7170,800E8850,src/code/z_actor -D7490,800E8B70,src/code/z_actor_dlftbls -DAF80,800EC660,src/code/z_bgcheck -DB0D0,800EC7B0,src/code/z_camera -DE620,800EFD00,src/code/z_collision_btltbls -DE900,800EFFE0,src/code/z_collision_check -DEBB0,800F0290,src/code/z_debug -DEBE0,800F02C0,src/code/z_debug_display -DEC30,800F0310,src/code/z_demo -DED90,800F0470,src/code/z_draw -DFE10,800F14F0,src/code/z_elf_message -DFE60,800F1540,src/code/z_face_reaction -E02A0,800F1980,src/code/z_game_dlftbls -E03C0,800F1AA0,src/code/z_horse -E04D0,800F1BB0,src/code/z_jpeg -E0510,800F1BF0,src/code/z_kaleido_setup -E0560,800F1C40,src/code/z_kankyo -E0950,800F2030,src/code/z_lib -E0980,800F2060,src/code/z_lifemeter -E0AA0,800F2180,src/code/z_lights -E0AB0,800F2190,src/code/z_map_mark -E0B70,800F2250,src/code/z_onepointdemo -E4490,800F5B70,src/code/z_map_exp -E44B0,800F5B90,src/code/z_map_data -E62B0,800F7990,src/code/z_parameter -E65B0,800F7C90,src/code/z_player_lib -E6C90,800F8370,src/code/z_quake -E6CC0,800F83A0,src/code/z_rcp -E7AE0,800F91C0,src/code/z_room -E7B60,800F9240,src/code/code_80097A00 -E7EE0,800F95C0,src/code/z_scene -E7F60,800F9640,src/code/object_table -E8C00,800FA2E0,src/code/z_scene_table -EAE10,800FC4F0,src/code/z_skelanime -EAE30,800FC510,src/code/z_skin_matrix -EAE70,800FC550,src/code/z_sram -EB020,800FC700,src/code/z_ss_sram -EB0D0,800FC7B0,data/unk_8012ABC0.data -EB100,800FC7E0,src/code/z_view -EB110,800FC7F0,src/code/z_viscvg -EB1A0,800FC880,src/code/z_vr_box -EB4A0,800FCB80,src/code/z_player_call -EB4C0,800FCBA0,src/code/z_fbdemo -EB540,800FCC20,src/code/z_fbdemo_triforce -EB610,800FCCF0,src/code/z_fbdemo_wipe1 -EC0B0,800FD790,src/code/z_fbdemo_circle -ED3B0,800FEA90,src/code/z_fbdemo_fade -ED3E0,800FEAC0,src/code/shrink_window -ED3F0,800FEAD0,src/code/z_kaleido_manager -ED440,800FEB20,src/code/z_play -ED450,800FEB30,src/code/audio_stop_all_sfx -ED460,800FEB40,src/code/graph -ED470,800FEB50,src/code/main -ED480,800FEB60,src/code/padmgr -ED490,800FEB70,src/code/speed_meter -ED4C0,800FEBA0,src/code/sys_math -ED500,800FEBE0,src/code/sys_math_atan -EDD10,800FF3F0,src/code/sys_matrix -EDD90,800FF470,src/code/sys_ucode -EDDA0,800FF480,src/code/sys_rumble -EDDB0,800FF490,src/code/irqmgr -EDDD0,800FF4B0,src/code/code_n64dd_800AD4C0 -EDE80,800FF560,src/code/fault_n64 -EE300,800FF9E0,src/audio/lib/data -F0710,80101DF0,src/audio/lib/synthesis -F0740,80101E20,src/audio/lib/load -F0750,80101E30,src/audio/lib/thread -F0770,80101E50,src/audio/lib/aisetnextbuf -F0780,80101E60,src/audio/lib/effects -F0790,80101E70,src/audio/lib/seqplayer -F07E0,80101EC0,src/audio/general -F1EF0,801035D0,src/audio/sfx_params -F32C0,801049A0,src/audio/data -F3330,80104A10,src/audio/session_config -F3AD0,801051B0,src/code/gfxprint -F4380,80105A60,src/code/loadfragment2_n64 -F4390,80105A70,src/code/code_800FC620 -F43A0,80105A80,src/libc64/qrand -F43B0,80105A90,src/libc64/__osMalloc_n64 -F43C0,80105AA0,src/libc64/sprintf -F4400,80105AE0,src/libultra/gu/sins -F4C00,801062E0,src/libultra/io/siacs -F4C10,801062F0,src/libultra/io/controller -F4C20,80106300,src/libultra/libc/xprintf -F4C70,80106350,src/libultra/io/vimodefpallan1 -F4CC0,801063A0,src/libultra/io/contpfs -F4CD0,801063B0,src/libultra/io/contramread -F4CE0,801063C0,src/libultra/libc/xlitob - -offset,vram,.rodata -F4D10,801063F0,src/code/z_en_a_keep -F4D60,80106440,src/code/z_en_item00 -F4FD0,801066B0,src/code/z_eff_blure -F5000,801066E0,src/code/z_eff_shield_particle -F5010,801066F0,src/code/z_eff_spark -F5020,80106700,src/code/z_eff_ss_dead -F5030,80106710,src/code/z_effect_soft_sprite_old_init -F5050,80106730,src/code/flg_set -F53E0,80106AC0,src/code/z_actor -F5990,80107070,src/code/z_actor_dlftbls -F5A00,801070E0,src/code/z_bgcheck -F5AA0,80107180,src/code/code_80043480 -F5AB0,80107190,src/code/z_camera -F6230,80107910,src/code/z_collision_check -F6280,80107960,src/code/z_debug -F6290,80107970,src/code/z_demo -F6770,80107E50,src/code/z_draw -F6780,80107E60,src/code/z_elf_message -F68A0,80107F80,src/code/z_fcurve_data -F68B0,80107F90,src/code/z_fcurve_data_skelanime -F68C0,80107FA0,src/code/z_horse -F68D0,80107FB0,src/code/z_jpeg -F6960,80108040,src/code/z_kankyo -F6A10,801080F0,src/code/z_lib -F6A20,80108100,src/code/z_lifemeter -F6A40,80108120,src/code/z_lights -F6A50,80108130,src/code/z_map_mark -F6AB0,80108190,src/code/z_olib -F6AD0,801081B0,src/code/z_onepointdemo -F7390,80108A70,src/code/z_map_exp -F76B0,80108D90,src/code/z_parameter -F78C0,80108FA0,src/code/z_path -F78D0,80108FB0,src/code/z_player_lib -F7930,80109010,src/code/z_quake -F79C0,801090A0,src/code/z_room -F7A00,801090E0,src/code/z_sample -F7A10,801090F0,src/code/z_scene_table -F7A50,80109130,src/code/z_skelanime -F7A70,80109150,src/code/z_skin -F7A80,80109160,src/code/z_skin_matrix -F7A90,80109170,src/code/z_sram -F7B00,801091E0,src/code/z_rumble -F7B10,801091F0,src/code/z_view -F7B20,80109200,src/code/z_vr_box -F7C10,801092F0,src/code/z_fbdemo_triforce -F7C20,80109300,src/code/z_fbdemo_wipe1 -F7C30,80109310,src/code/z_fbdemo_circle -F7C40,80109320,src/code/code_800BB0A0 -F7C50,80109330,src/code/z_kaleido_manager -F7C70,80109350,src/code/z_play -F7D30,80109410,src/code/game -F7D50,80109430,src/code/graph -F7DA0,80109480,src/code/main -F7DD0,801094B0,src/code/padmgr -F7DE0,801094C0,src/code/sys_cfb -F7DF0,801094D0,src/code/sys_math -F7E00,801094E0,src/code/sys_math3d -F7E90,80109570,src/code/sys_math_atan -F7EA0,80109580,src/code/sys_matrix -F7ED0,801095B0,src/code/irqmgr -F7EF0,801095D0,src/code/fault_n64 -F8780,80109E60,src/audio/lib/synthesis -F87A0,80109E80,src/audio/lib/heap -F87D0,80109EB0,src/audio/lib/load -F8840,80109F20,src/audio/lib/thread -F8970,8010A050,src/audio/lib/playback -F89A0,8010A080,src/audio/lib/effects -F89D0,8010A0B0,src/audio/lib/seqplayer -F9010,8010A6F0,src/audio/general -F90E0,8010A7C0,src/audio/sfx -F9100,8010A7E0,src/audio/sequence -F9180,8010A860,src/audio/session_config -F9190,8010A870,src/code/gfxprint -F91D0,8010A8B0,src/code/rcp_utils -F9320,8010AA00,src/code/loadfragment2_n64 -F94C0,8010ABA0,src/libc64/math64 -F94E0,8010ABC0,src/libc64/__osMalloc_n64 -F9690,8010AD70,src/libultra/gu/sinf -F96E0,8010ADC0,src/libultra/gu/perspective -F96F0,8010ADD0,src/libultra/gu/lookathil -F9700,8010ADE0,src/libultra/libc/xprintf -F9800,8010AEE0,src/libultra/gu/position -F9810,8010AEF0,src/libultra/gu/rotate -F9820,8010AF00,src/libultra/gu/cosf -F9870,8010AF50,src/libultra/gu/libm_vals -F9880,8010AF60,src/libultra/libc/xldtob -F98E0,8010AFC0,src/libultra/libc/llcvt - -offset,vram,.data -F98F0,8010AFD0,src/code/z_message -102280,80113960,src/code/z_game_over - -offset,vram,.rodata -102290,80113970,src/code/z_message -1026B0,80113D90,src/code/z_game_over -102710,80113DF0,data/audio_tables.rodata -1032B0,80114990,data/rsp.rodata - -offset,vram,.bss -103DA0,80115480,src/code/z_en_item00 -103DB0,80115490,src/code/z_effect -107BA0,80119280,src/code/flg_set -107BB0,80119290,src/code/z_actor -107C30,80119310,src/code/z_actor_dlftbls -107C40,80119320,src/code/z_bgcheck -107D60,80119440,src/code/z_camera -107E40,80119520,src/code/z_collision_check -1095A0,8011AC80,src/code/z_common_data -10A9D0,8011C0B0,src/code/z_debug -10ABF0,8011C2D0,src/code/z_debug_display -10AC00,8011C2E0,src/code/z_demo -10AC30,8011C310,src/code/z_kankyo -10AD00,8011C3E0,src/code/z_lifemeter -10AD30,8011C410,src/code/z_lights -10AEC0,8011C5A0,src/code/z_malloc -10AED0,8011C5B0,src/code/z_map_mark -10AEE0,8011C5C0,src/code/z_map_exp -10AEF0,8011C5D0,src/code/z_parameter -10AF10,8011C5F0,src/code/z_player_lib -10AF30,8011C610,src/code/z_quake -10AFC0,8011C6A0,src/code/z_skelanime -10AFD0,8011C6B0,src/code/z_skin -10BEE0,8011D5C0,src/code/z_rumble -10BFF0,8011D6D0,src/code/z_vr_box_draw -10C000,8011D6E0,src/code/z_player_call -10C010,8011D6F0,src/code/z_kaleido_scope_call -10C030,8011D710,src/code/z_play -10C140,8011D820,src/code/game -10C220,8011D900,src/code/graph -10C290,8011D970,src/code/main -110120,80121800,src/code/padmgr -110130,80121810,src/code/sched -110150,80121830,src/code/speed_meter -1101C0,801218A0,src/code/sys_cfb -1101D0,801218B0,src/code/sys_math3d -1103F0,80121AD0,src/code/sys_matrix -110400,80121AE0,src/code/code_n64dd_800AD410 -110410,80121AF0,src/code/code_n64dd_800AD4C0 -110420,80121B00,src/code/fault_n64 -110EF0,801225D0,src/audio/lib/load -110FB0,80122690,src/audio/general -1111B0,80122890,src/audio/sfx -1139C0,801250A0,src/audio/sequence -114780,80125E60,src/audio/data -114820,80125F00,src/audio/session_config -11AC90,8012C370,src/libc64/malloc -11ACA0,8012C380,src/code/jpegdecoder -11ACB0,8012C390,src/libultra/io/sptask -11ACF0,8012C3D0,src/libultra/io/motor -11ADF0,8012C4D0,src/libultra/io/siacs -11AE10,8012C4F0,src/libultra/io/controller -11AEA0,8012C580,src/libultra/gu/position -11AEB0,8012C590,src/libultra/gu/rotate -11AEC0,8012C5A0,src/libultra/io/contpfs -11AFC0,8012C6A0,src/libultra/io/pfsisplug -11B000,8012C6E0,src/code/z_message -11B020,8012C700,.end diff --git a/tools/disasm/ntsc-1.2/files_makerom.csv b/tools/disasm/ntsc-1.2/files_makerom.csv deleted file mode 100644 index 087a04f528..0000000000 --- a/tools/disasm/ntsc-1.2/files_makerom.csv +++ /dev/null @@ -1,2 +0,0 @@ -offset,vram,.text -1000,80000400,entry diff --git a/tools/disasm/ntsc-1.2/files_ovl_file_choose.csv b/tools/disasm/ntsc-1.2/files_ovl_file_choose.csv deleted file mode 100644 index ab21a34f0c..0000000000 --- a/tools/disasm/ntsc-1.2/files_ovl_file_choose.csv +++ /dev/null @@ -1,22 +0,0 @@ -offset,vram,.text -0,80803880,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase -3040,808068C0,src/overlays/gamestates/ovl_file_choose/z_file_nameset -8440,8080BCC0,src/overlays/gamestates/ovl_file_choose/z_file_choose - -offset,vram,.data -EC50,808124D0,src/overlays/gamestates/ovl_file_choose/z_file_nameset_data -F330,80812BB0,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase -F370,80812BF0,src/overlays/gamestates/ovl_file_choose/z_file_nameset -F510,80812D90,src/overlays/gamestates/ovl_file_choose/z_file_choose - -offset,vram,.rodata -F800,80813080,src/overlays/gamestates/ovl_file_choose/z_file_nameset -F810,80813090,src/overlays/gamestates/ovl_file_choose/z_file_choose - -offset,vram,.ovl -F830,808130B0,src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc - -offset,vram,.bss -FF20,808137A0,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase -FF30,808137B0,src/overlays/gamestates/ovl_file_choose/z_file_nameset -FF40,808137C0,.end diff --git a/tools/disasm/ntsc-1.2/files_ovl_kaleido_scope.csv b/tools/disasm/ntsc-1.2/files_ovl_kaleido_scope.csv deleted file mode 100644 index aac6f5c29b..0000000000 --- a/tools/disasm/ntsc-1.2/files_ovl_kaleido_scope.csv +++ /dev/null @@ -1,34 +0,0 @@ -offset,vram,.text -0,808137C0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect -2450,80815C10,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug -43E0,80817BA0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment -5EB0,80819670,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item -7EA0,8081B660,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map -B1B0,8081E970,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt -B3B0,8081EB70,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope -15440,80828C00,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark - -offset,vram,.data -15B90,80829350,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect -15D40,80829500,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug -15F10,808296D0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment -15F40,80829700,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item -15FB0,80829770,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map -16200,808299C0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt -16210,808299D0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope -16BD0,8082A390,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark -16C20,8082A3E0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data - -offset,vram,.rodata -1AD80,8082E540,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug -1AE60,8082E620,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment -1AE70,8082E630,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope -1B150,8082E910,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark -1B200,8082E9C0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data - -offset,vram,.ovl -1B280,8082EA40,src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc - -offset,vram,.bss -1C990,80830150,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope -1CA00,8082FDA0,.end diff --git a/tools/disasm/ntsc-1.2/functions.txt b/tools/disasm/ntsc-1.2/functions.txt deleted file mode 100644 index 6612cd624d..0000000000 --- a/tools/disasm/ntsc-1.2/functions.txt +++ /dev/null @@ -1,13148 +0,0 @@ -entrypoint = 0x80000400; // type:func -bootclear = 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_StrCmp = 0x80000980; // type:func -DmaMgr_DmaRomToRam = 0x800009EC; // type:func -DmaMgr_AudioDmaHandler = 0x80000B70; // type:func -DmaMgr_DmaFromDriveRom = 0x80000BE4; // type:func -DmaMgr_GetFileName = 0x80000C88; // type:func -DmaMgr_ProcessRequest = 0x80000C9C; // type:func -DmaMgr_ThreadEntry = 0x80000E38; // type:func -DmaMgr_RequestAsync = 0x80000EB8; // type:func -DmaMgr_RequestSync = 0x80000F80; // type:func -DmaMgr_Init = 0x80000FFC; // type:func -Yaz0_FirstDMA = 0x800010F0; // type:func -Yaz0_NextDMA = 0x80001190; // type:func -Yaz0_DecompressImpl = 0x8000127C; // type:func -Yaz0_Decompress = 0x800013E4; // type:func -Locale_Init = 0x80001430; // type:func -Locale_ResetRegion = 0x800014BC; // type:func -func_800014D0 = 0x800014D0; // type:func -func_800014E8 = 0x800014E8; // type:func -CIC6105_FaultClient = 0x800014FC; // type:func -CIC6105_AddFaultClient = 0x800015E8; // type:func -CIC6105_RemoveFaultClient = 0x8000161C; // type:func -func_80001640 = 0x80001640; // type:func -func_80001714 = 0x80001714; // type:func -func_80001720 = 0x80001720; // type:func -osSyncPrintfUnused = 0x80001750; // type:func -osSyncPrintf = 0x8000176C; // type:func -rmonPrintf = 0x80001788; // type:func -osDriveRomInit = 0x800017B0; // type:func -Mio0_Decompress = 0x80001990; // type:func -StackCheck_Init = 0x80001A40; // type:func -StackCheck_Cleanup = 0x80001AF8; // type:func -StackCheck_Check = 0x80001B3C; // type:func -LogUtils_CheckFloatRange = 0x80001C50; // type:func -LogUtils_HungupThread = 0x80001CE8; // type:func -LogUtils_ResetHungup = 0x80001D34; // type:func -Sleep_Cycles = 0x80001D70; // type:func -Sleep_Nsec = 0x80001DDC; // type:func -Sleep_Usec = 0x80001E2C; // type:func -Sleep_Msec = 0x80001E7C; // type:func -Sleep_Sec = 0x80001ED0; // type:func -__osPiCreateAccessQueue = 0x80001F10; // type:func -__osPiGetAccess = 0x80001F60; // type:func -__osPiRelAccess = 0x80001FA4; // type:func -osSendMesg = 0x80001FD0; // type:func -osStopThread = 0x80002120; // type:func -osViExtendVStart = 0x800021E0; // type:func -osRecvMesg = 0x800021F0; // type:func -__ull_rshift = 0x80002330; // type:func -__ull_rem = 0x8000235C; // type:func -__ull_div = 0x80002398; // type:func -__ll_lshift = 0x800023D4; // type:func -__ll_rem = 0x80002400; // type:func -__ll_div = 0x8000243C; // type:func -__ll_mul = 0x80002498; // type:func -__ull_divremi = 0x800024C8; // type:func -__ll_mod = 0x80002528; // type:func -__ll_rshift = 0x800025C4; // type:func -__osExceptionPreamble = 0x800025F0; // type:func -__osException = 0x80002600; // type:func -__osEnqueueAndYield = 0x80002C0C; // type:func -__osEnqueueThread = 0x80002D0C; // type:func -__osPopThread = 0x80002D54; // type:func -__osDispatchThread = 0x80002D64; // type:func -__osCleanupThread = 0x80002EE0; // type:func -__osDequeueThread = 0x80002EF0; // type:func -osDestroyThread = 0x80002F30; // type:func -bzero = 0x80003040; // type:func -osCreateThread = 0x800030E0; // type:func -osInitialize = 0x80003230; // type:func -createSpeedParam = 0x800034D8; // type:func -__osSetSR = 0x800035E0; // type:func -__osGetSR = 0x800035F0; // type:func -osWritebackDCache = 0x80003600; // type:func -osViGetNextFramebuffer = 0x80003680; // type:func -osCreatePiManager = 0x800036C0; // type:func -__osDevMgrMain = 0x80003840; // type:func -__osPiRawStartDma = 0x80003C50; // type:func -osVirtualToPhysical = 0x80003D20; // type:func -osViBlack = 0x80003DA0; // type:func -__osSiRawReadIo = 0x80003E10; // type:func -osGetThreadId = 0x80003E60; // type:func -osSetIntMask = 0x80003E80; // type:func -osViSetMode = 0x80003F20; // type:func -__osProbeTLB = 0x80003F90; // type:func -osGetMemSize = 0x80004050; // type:func -osSetEventMesg = 0x80004170; // type:func -osUnmapTLBAll = 0x80004230; // type:func -osEPiStartDma = 0x80004280; // type:func -osInvalICache = 0x80004360; // type:func -osCreateMesgQueue = 0x800043E0; // type:func -osInvalDCache = 0x80004410; // type:func -__osSiDeviceBusy = 0x800044C0; // type:func -osJamMesg = 0x800044F0; // type:func -osSetThreadPri = 0x80004640; // type:func -osGetThreadPri = 0x80004720; // type:func -__osEPiRawReadIo = 0x80004740; // type:func -osViSwapBuffer = 0x800048A0; // type:func -__osEPiRawStartDma = 0x800048F0; // type:func -osGetTime = 0x80004AD0; // type:func -__osTimerServicesInit = 0x80004B60; // type:func -__osTimerInterrupt = 0x80004BEC; // type:func -__osSetTimerIntr = 0x80004D64; // type:func -__osInsertTimer = 0x80004DD8; // type:func -osGetCount = 0x80004F60; // type:func -__osSetGlobalIntMask = 0x80004F70; // type:func -__osSetCompare = 0x80004FC0; // type:func -bcopy = 0x80004FD0; // type:func -__osResetGlobalIntMask = 0x800052E0; // type:func -__osDisableInt = 0x80005340; // type:func -__osRestoreInt = 0x800053B0; // type:func -__osViInit = 0x800053D0; // type:func -__osViSwapContext = 0x80005510; // type:func -osPiGetCmdQueue = 0x80005810; // type:func -osEPiReadIo = 0x80005840; // type:func -osViSetSpecialFeatures = 0x80005890; // type:func -osCartRomInit = 0x800059F0; // type:func -__osSetFpcCsr = 0x80005B50; // type:func -__osGetFpcCsr = 0x80005B60; // type:func -osEPiWriteIo = 0x80005B70; // type:func -osMapTLBRdb = 0x80005BC0; // type:func -osYieldThread = 0x80005C20; // type:func -__osGetCause = 0x80005C70; // type:func -__osEPiRawWriteIo = 0x80005C80; // type:func -osSetTimer = 0x80005DE0; // type:func -__osSiRawWriteIo = 0x80005EC0; // type:func -osCreateViManager = 0x80005F20; // type:func -viMgrMain = 0x800060A0; // type:func -__osViGetCurrentContext = 0x80006230; // type:func -osStartThread = 0x80006240; // type:func -osViSetYScale = 0x80006390; // type:func -osViSetXScale = 0x800063F0; // type:func -__osSetHWIntrRoutine = 0x80006520; // type:func -__osGetHWIntrRoutine = 0x80006590; // type:func -EnAObj_SetupAction = 0x800116E0; // type:func -EnAObj_Init = 0x800116EC; // type:func -EnAObj_Destroy = 0x80011A2C; // type:func -EnAObj_WaitFinishedTalking = 0x80011A88; // type:func -EnAObj_SetupWaitTalk = 0x80011AB8; // type:func -EnAObj_WaitTalk = 0x80011AE0; // type:func -EnAObj_SetupBlockRot = 0x80011B94; // type:func -EnAObj_BlockRot = 0x80011BE4; // type:func -EnAObj_SetupBoulderFragment = 0x80011D04; // type:func -EnAObj_BoulderFragment = 0x80011D2C; // type:func -EnAObj_SetupBlock = 0x80011E4C; // type:func -EnAObj_Block = 0x80011E8C; // type:func -EnAObj_Update = 0x80011F74; // type:func -EnAObj_Draw = 0x80012090; // type:func -EnItem00_SetupAction = 0x80012180; // type:func -EnItem00_Init = 0x8001218C; // type:func -EnItem00_Destroy = 0x800127F4; // type:func -func_8001DFC8 = 0x80012820; // type:func -func_8001E1C8 = 0x80012A20; // type:func -func_8001E304 = 0x80012B5C; // type:func -EnItem00_Collected = 0x80012E20; // type:func -EnItem00_Update = 0x80012F78; // type:func -EnItem00_Draw = 0x800135F8; // type:func -EnItem00_DrawRupee = 0x80013790; // type:func -EnItem00_DrawCollectible = 0x800138A8; // type:func -EnItem00_DrawHeartContainer = 0x800139E0; // type:func -EnItem00_DrawHeartPiece = 0x80013AD8; // type:func -func_8001F404 = 0x80013B70; // type:func -Item_DropCollectible = 0x80013CB8; // type:func -Item_DropCollectible2 = 0x80013EF0; // type:func -Item_DropCollectibleRandom = 0x800140C4; // type:func -EffectBlure_AddVertex = 0x80014570; // type:func -EffectBlure_AddSpace = 0x80014894; // type:func -EffectBlure_InitElements = 0x800148D8; // type:func -EffectBlure_Init1 = 0x80014990; // type:func -EffectBlure_Init2 = 0x80014AA0; // type:func -EffectBlure_Destroy = 0x80014BD4; // type:func -EffectBlure_Update = 0x80014BE0; // type:func -EffectBlure_UpdateFlags = 0x80015044; // type:func -EffectBlure_GetComputedValues = 0x800151B4; // type:func -EffectBlure_SetupSmooth = 0x800156C8; // type:func -EffectBlure_DrawElemNoInterpolation = 0x800156FC; // type:func -EffectBlure_DrawElemHermiteInterpolation = 0x80015BD0; // type:func -EffectBlure_DrawSmooth = 0x800165A4; // type:func -EffectBlure_SetupSimple = 0x80016874; // type:func -EffectBlure_SetupSimpleAlt = 0x800168AC; // type:func -EffectBlure_DrawSimpleVertices = 0x80016B08; // type:func -EffectBlure_DrawSimple = 0x80016FF4; // type:func -EffectBlure_Draw = 0x80017500; // type:func -EffectShieldParticle_Init = 0x800179F0; // type:func -EffectShieldParticle_Destroy = 0x80017C28; // type:func -EffectShieldParticle_Update = 0x80017CB4; // type:func -EffectShieldParticle_GetColors = 0x80017E18; // type:func -EffectShieldParticle_Draw = 0x80018B38; // type:func -EffectSpark_Init = 0x80019060; // type:func -EffectSpark_Destroy = 0x8001943C; // type:func -EffectSpark_Update = 0x80019448; // type:func -EffectSpark_Draw = 0x8001950C; // type:func -func_80026230 = 0x8001A720; // type:func -func_80026400 = 0x8001A8C8; // type:func -func_80026608 = 0x8001AAA8; // type:func -func_80026690 = 0x8001AAEC; // type:func -func_80026860 = 0x8001AC94; // type:func -func_80026A6C = 0x8001AE7C; // type:func -Effect_GetPlayState = 0x8001AEC0; // type:func -Effect_GetByIndex = 0x8001AED0; // type:func -Effect_InitStatus = 0x8001AFE0; // type:func -Effect_InitContext = 0x8001AFF4; // type:func -Effect_Add = 0x8001B09C; // type:func -Effect_DrawAll = 0x8001B21C; // type:func -Effect_UpdateAll = 0x8001B318; // type:func -Effect_Delete = 0x8001B444; // type:func -Effect_DeleteAll = 0x8001B550; // type:func -EffectSs_InitInfo = 0x8001B640; // type:func -EffectSs_ClearAll = 0x8001B724; // type:func -EffectSs_Delete = 0x8001B7E4; // type:func -EffectSs_Reset = 0x8001B844; // type:func -EffectSs_FindSlot = 0x8001B8D8; // type:func -EffectSs_Insert = 0x8001BA10; // type:func -EffectSs_Spawn = 0x8001BAA8; // type:func -EffectSs_Update = 0x8001BC50; // type:func -EffectSs_UpdateAll = 0x8001BCF0; // type:func -EffectSs_Draw = 0x8001BDAC; // type:func -EffectSs_DrawAll = 0x8001BDF0; // type:func -EffectSs_LerpInv = 0x8001BF3C; // type:func -EffectSs_LerpS16 = 0x8001BFA0; // type:func -EffectSs_LerpU8 = 0x8001BFF4; // type:func -EffectSs_DrawGEffect = 0x8001C0E0; // type:func -EffectSsDust_Spawn = 0x8001C320; // type:func -func_8002829C = 0x8001C3D4; // type:func -func_80028304 = 0x8001C43C; // type:func -func_8002836C = 0x8001C4A4; // type:func -func_800283D4 = 0x8001C50C; // type:func -func_8002843C = 0x8001C574; // type:func -func_800284A4 = 0x8001C5DC; // type:func -func_80028510 = 0x8001C648; // type:func -func_8002857C = 0x8001C6B4; // type:func -func_800285EC = 0x8001C724; // type:func -func_8002865C = 0x8001C794; // type:func -func_800286CC = 0x8001C804; // type:func -func_8002873C = 0x8001C874; // type:func -func_800287AC = 0x8001C8E4; // type:func -func_8002881C = 0x8001C954; // type:func -func_80028858 = 0x8001C990; // type:func -func_80028894 = 0x8001C9CC; // type:func -func_80028990 = 0x8001CAC8; // type:func -func_80028A54 = 0x8001CB8C; // type:func -EffectSsKiraKira_SpawnSmallYellow = 0x8001CC50; // type:func -EffectSsKiraKira_SpawnSmall = 0x8001CCAC; // type:func -EffectSsKiraKira_SpawnDispersed = 0x8001CCE8; // type:func -EffectSsKiraKira_SpawnFocused = 0x8001CE24; // type:func -EffectSsBomb_Spawn = 0x8001CEFC; // type:func -EffectSsBomb2_SpawnFade = 0x8001CF54; // type:func -EffectSsBomb2_SpawnLayered = 0x8001CFBC; // type:func -EffectSsBlast_Spawn = 0x8001D02C; // type:func -EffectSsBlast_SpawnWhiteShockwaveSetScale = 0x8001D0BC; // type:func -EffectSsBlast_SpawnShockwaveSetColor = 0x8001D110; // type:func -EffectSsBlast_SpawnWhiteShockwave = 0x8001D15C; // type:func -EffectSsGSpk_SpawnAccel = 0x8001D198; // type:func -EffectSsGSpk_SpawnNoAccel = 0x8001D228; // type:func -EffectSsGSpk_SpawnFuse = 0x8001D2BC; // type:func -EffectSsGSpk_SpawnRandColor = 0x8001D310; // type:func -EffectSsGSpk_SpawnSmall = 0x8001D414; // type:func -EffectSsDFire_Spawn = 0x8001D458; // type:func -EffectSsDFire_SpawnFixedScale = 0x8001D4D8; // type:func -EffectSsBubble_Spawn = 0x8001D51C; // type:func -EffectSsGRipple_Spawn = 0x8001D57C; // type:func -EffectSsGSplash_Spawn = 0x8001D5D4; // type:func -EffectSsGMagma_Spawn = 0x8001D668; // type:func -EffectSsGFire_Spawn = 0x8001D6A0; // type:func -EffectSsLightning_Spawn = 0x8001D6D8; // type:func -EffectSsDtBubble_SpawnColorProfile = 0x8001D750; // type:func -EffectSsDtBubble_SpawnCustomColor = 0x8001D7CC; // type:func -EffectSsHahen_Spawn = 0x8001D85C; // type:func -EffectSsHahen_SpawnBurst = 0x8001D8DC; // type:func -EffectSsStick_Spawn = 0x8001DA24; // type:func -EffectSsSibuki_Spawn = 0x8001DA78; // type:func -EffectSsSibuki_SpawnBurst = 0x8001DAE8; // type:func -EffectSsSibuki2_Spawn = 0x8001DC6C; // type:func -EffectSsGMagma2_Spawn = 0x8001DCCC; // type:func -EffectSsStone1_Spawn = 0x8001DD3C; // type:func -EffectSsHitMark_Spawn = 0x8001DD90; // type:func -EffectSsHitMark_SpawnFixedScale = 0x8001DDE8; // type:func -EffectSsHitMark_SpawnCustomScale = 0x8001DE0C; // type:func -EffectSsFhgFlash_SpawnLightBall = 0x8001DE38; // type:func -EffectSsFhgFlash_SpawnShock = 0x8001DEA4; // type:func -EffectSsKFire_Spawn = 0x8001DF08; // type:func -EffectSsSolderSrchBall_Spawn = 0x8001DF70; // type:func -EffectSsKakera_Spawn = 0x8001DFD8; // type:func -EffectSsIcePiece_Spawn = 0x8001E090; // type:func -EffectSsIcePiece_SpawnBurst = 0x8001E0F8; // type:func -EffectSsEnIce_SpawnFlyingVec3f = 0x8001E28C; // type:func -EffectSsEnIce_SpawnFlyingVec3s = 0x8001E32C; // type:func -EffectSsEnIce_Spawn = 0x8001E3F8; // type:func -EffectSsFireTail_Spawn = 0x8001E480; // type:func -EffectSsFireTail_SpawnFlame = 0x8001E518; // type:func -EffectSsFireTail_SpawnFlameOnPlayer = 0x8001E5DC; // type:func -EffectSsEnFire_SpawnVec3f = 0x8001E62C; // type:func -EffectSsEnFire_SpawnVec3s = 0x8001E6A4; // type:func -EffectSsExtra_Spawn = 0x8001E750; // type:func -EffectSsFCircle_Spawn = 0x8001E7B8; // type:func -EffectSsDeadDb_Spawn = 0x8001E814; // type:func -EffectSsDeadDd_Spawn = 0x8001E8CC; // type:func -EffectSsDeadDd_SpawnRandYellow = 0x8001E980; // type:func -EffectSsDeadDs_Spawn = 0x8001E9F0; // type:func -EffectSsDeadDs_SpawnStationary = 0x8001EA68; // type:func -EffectSsDeadSound_Spawn = 0x8001EAB8; // type:func -EffectSsDeadSound_SpawnStationary = 0x8001EB50; // type:func -EffectSsIceSmoke_Spawn = 0x8001EBA0; // type:func -FlagSet_Update = 0x8001EC00; // type:func -Overlay_LoadGameState = 0x8001F010; // type:func -Overlay_FreeGameState = 0x8001F138; // type:func -ActorShape_Init = 0x8001F260; // type:func -ActorShadow_Draw = 0x8001F284; // type:func -ActorShadow_DrawCircle = 0x8001F634; // type:func -ActorShadow_DrawWhiteCircle = 0x8001F65C; // type:func -ActorShadow_DrawHorse = 0x8001F68C; // type:func -ActorShadow_DrawFoot = 0x8001F6B4; // type:func -ActorShadow_DrawFeet = 0x8001F8C0; // type:func -Actor_SetFeetPos = 0x8001FD8C; // type:func -Actor_ProjectPos = 0x8001FDE0; // type:func -Attention_SetReticlePos = 0x8001FE44; // type:func -Attention_InitReticle = 0x8001FE7C; // type:func -Attention_SetNaviState = 0x8001FF44; // type:func -Attention_Init = 0x800200A8; // type:func -Attention_Draw = 0x8002010C; // type:func -Attention_Update = 0x80020748; // type:func -Flags_GetSwitch = 0x80020ADC; // type:func -Flags_SetSwitch = 0x80020B10; // type:func -Flags_UnsetSwitch = 0x80020B50; // type:func -Flags_GetUnknown = 0x80020B94; // type:func -Flags_SetUnknown = 0x80020BC8; // type:func -Flags_UnsetUnknown = 0x80020C08; // type:func -Flags_GetTreasure = 0x80020C4C; // type:func -Flags_SetTreasure = 0x80020C64; // type:func -Flags_GetClear = 0x80020C80; // type:func -Flags_SetClear = 0x80020C98; // type:func -Flags_UnsetClear = 0x80020CB4; // type:func -Flags_GetTempClear = 0x80020CD4; // type:func -Flags_SetTempClear = 0x80020CEC; // type:func -Flags_UnsetTempClear = 0x80020D08; // type:func -Flags_GetCollectible = 0x80020D28; // type:func -Flags_SetCollectible = 0x80020D5C; // type:func -TitleCard_Init = 0x80020DA0; // type:func -TitleCard_InitBossName = 0x80020DC0; // type:func -TitleCard_InitPlaceName = 0x80020E04; // type:func -TitleCard_Update = 0x80020EA0; // type:func -TitleCard_Draw = 0x80020F5C; // type:func -TitleCard_Clear = 0x800214C0; // type:func -Actor_Kill = 0x800214F4; // type:func -Actor_SetWorldToHome = 0x80021514; // type:func -Actor_SetFocus = 0x80021544; // type:func -Actor_SetWorldRotToShape = 0x80021588; // type:func -Actor_SetShapeRotToWorld = 0x800215A8; // type:func -Actor_SetScale = 0x800215C8; // type:func -Actor_SetObjectDependency = 0x800215E4; // type:func -Actor_Init = 0x8002161C; // type:func -Actor_Destroy = 0x80021730; // type:func -Actor_UpdatePos = 0x80021764; // type:func -Actor_UpdateVelocityXZGravity = 0x800217E4; // type:func -Actor_MoveXZGravity = 0x8002185C; // type:func -Actor_UpdateVelocityXYZ = 0x80021888; // type:func -Actor_MoveXYZ = 0x800218F8; // type:func -Actor_SetProjectileSpeed = 0x80021924; // type:func -Actor_UpdatePosByAnimation = 0x80021978; // type:func -Actor_WorldYawTowardActor = 0x800219F4; // type:func -Actor_FocusYawTowardActor = 0x80021A20; // type:func -Actor_WorldYawTowardPoint = 0x80021A4C; // type:func -Actor_WorldPitchTowardActor = 0x80021A70; // type:func -Actor_FocusPitchTowardActor = 0x80021A9C; // type:func -Actor_WorldPitchTowardPoint = 0x80021AC8; // type:func -Actor_WorldDistXYZToActor = 0x80021AEC; // type:func -Actor_WorldDistXYZToPoint = 0x80021B18; // type:func -Actor_WorldDistXZToActor = 0x80021B3C; // type:func -Actor_WorldDistXZToPoint = 0x80021B68; // type:func -Actor_WorldToActorCoords = 0x80021B8C; // type:func -Actor_HeightDiff = 0x80021C2C; // type:func -Player_GetHeight = 0x80021C40; // type:func -func_8002DCE4 = 0x80021CA0; // type:func -func_8002DD6C = 0x80021D28; // type:func -func_8002DD78 = 0x80021D38; // type:func -func_8002DDA8 = 0x80021D6C; // type:func -func_8002DDE4 = 0x80021DA8; // type:func -func_8002DDF4 = 0x80021DBC; // type:func -func_8002DE04 = 0x80021DD0; // type:func -func_8002DE74 = 0x80021E40; // type:func -Actor_MountHorse = 0x80021E98; // type:func -func_8002DEEC = 0x80021EBC; // type:func -func_8002DF18 = 0x80021EE8; // type:func -Player_SetCsAction = 0x80021F08; // type:func -Player_SetCsActionWithHaltedActors = 0x80021F2C; // type:func -func_8002DF90 = 0x80021F68; // type:func -func_8002DFA4 = 0x80021F80; // type:func -Player_IsFacingActor = 0x80021FA8; // type:func -Actor_ActorBIsFacingActorA = 0x80022000; // type:func -Actor_IsFacingPlayer = 0x80022068; // type:func -Actor_ActorAIsFacingActorB = 0x800220B4; // type:func -Actor_IsFacingAndNearPlayer = 0x80022114; // type:func -Actor_ActorAIsFacingAndNearActorB = 0x80022194; // type:func -func_8002E234 = 0x80022228; // type:func -func_8002E2AC = 0x800222A0; // type:func -Actor_UpdateBgCheckInfo = 0x800224AC; // type:func -func_8002E830 = 0x8002282C; // type:func -func_8002EABC = 0x80022A08; // type:func -func_8002EB44 = 0x80022A40; // type:func -func_8002EBCC = 0x80022A78; // type:func -func_8002ED80 = 0x80022B94; // type:func -Actor_GetFocus = 0x80022CB0; // type:func -Actor_GetWorld = 0x80022CE4; // type:func -Actor_GetWorldPosShapeRot = 0x80022D18; // type:func -Attention_WeightedDistToPlayerSq = 0x80022D94; // type:func -Attention_ActorIsInRange = 0x80022E64; // type:func -Attention_ShouldReleaseLockOn = 0x80022EA0; // type:func -Actor_TalkOfferAccepted = 0x80022F70; // type:func -Actor_OfferTalkExchange = 0x80022FA0; // type:func -Actor_OfferTalkExchangeEquiCylinder = 0x80023074; // type:func -Actor_OfferTalk = 0x800230A8; // type:func -Actor_OfferTalkNearColChkInfoCylinder = 0x800230D0; // type:func -Actor_TextboxIsClosing = 0x80023110; // type:func -func_8002F368 = 0x80023144; // type:func -Actor_GetScreenPos = 0x80023154; // type:func -Actor_HasParent = 0x800231F0; // type:func -Actor_OfferGetItem = 0x80023214; // type:func -Actor_OfferGetItemNearby = 0x80023334; // type:func -Actor_OfferCarry = 0x80023360; // type:func -Actor_HasNoParent = 0x80023380; // type:func -func_8002F5C4 = 0x800233A4; // type:func -Actor_SetClosestSecretDistance = 0x800233D4; // type:func -Actor_IsMounted = 0x800233FC; // type:func -Actor_SetRideActor = 0x80023420; // type:func -Actor_NotMounted = 0x80023458; // type:func -func_8002F698 = 0x8002347C; // type:func -func_8002F6D4 = 0x800234BC; // type:func -func_8002F71C = 0x80023504; // type:func -func_8002F758 = 0x80023540; // type:func -func_8002F7A0 = 0x80023588; // type:func -Player_PlaySfx = 0x800235C4; // type:func -Actor_PlaySfx = 0x80023610; // type:func -Actor_PlaySfx_SurfaceBomb = 0x8002363C; // type:func -Actor_PlaySfx_Flagged2 = 0x800236E0; // type:func -Actor_PlaySfx_FlaggedCentered1 = 0x80023714; // type:func -Actor_PlaySfx_FlaggedCentered2 = 0x80023748; // type:func -Actor_PlaySfx_Flagged = 0x8002377C; // type:func -Actor_PlaySfx_FlaggedTimer = 0x800237A4; // type:func -func_8002F9EC = 0x800237FC; // type:func -func_8002FA60 = 0x80023874; // type:func -Actor_DrawFaroresWindPointer = 0x800239C4; // type:func -func_80030488 = 0x80024208; // type:func -Actor_DisableLens = 0x80024230; // type:func -Actor_InitContext = 0x8002425C; // type:func -Actor_UpdateAll = 0x800243B0; // type:func -Actor_FaultPrint = 0x8002484C; // type:func -Actor_Draw = 0x800248C0; // type:func -Actor_UpdateFlaggedAudio = 0x80024B80; // type:func -Actor_DrawLensOverlay = 0x80024C50; // type:func -Actor_DrawLensActors = 0x80024DC4; // type:func -func_800314B0 = 0x80024FF8; // type:func -func_800314D4 = 0x8002501C; // type:func -func_800315AC = 0x800250F4; // type:func -Actor_KillAllWithMissingObject = 0x8002530C; // type:func -Actor_FreezeAllEnemies = 0x800253A8; // type:func -func_80031B14 = 0x800253F8; // type:func -func_80031C3C = 0x80025520; // type:func -Actor_AddToCategory = 0x800255D8; // type:func -Actor_RemoveFromCategory = 0x80025620; // type:func -Actor_FreeOverlay = 0x800256EC; // type:func -Actor_Spawn = 0x80025750; // type:func -Actor_SpawnAsChild = 0x80025A30; // type:func -Actor_SpawnTransitionActors = 0x80025AC8; // type:func -Actor_SpawnEntry = 0x80025C04; // type:func -Actor_Delete = 0x80025C88; // type:func -Attention_ActorOnScreen = 0x80025D8C; // type:func -Attention_FindActorInCategory = 0x80025DE0; // type:func -Attention_FindActor = 0x80025FFC; // type:func -Actor_Find = 0x8002614C; // type:func -Enemy_StartFinishingBlow = 0x8002618C; // type:func -FaceChange_UpdateBlinking = 0x800261C4; // type:func -FaceChange_UpdateRandomSet = 0x80026278; // type:func -BodyBreak_Alloc = 0x80026344; // type:func -BodyBreak_SetInfo = 0x8002643C; // type:func -BodyBreak_SpawnParts = 0x80026544; // type:func -Actor_SpawnFloorDustRing = 0x80026728; // type:func -func_80033480 = 0x80026948; // type:func -Actor_GetCollidedExplosive = 0x80026B08; // type:func -func_80033684 = 0x80026B4C; // type:func -Actor_ChangeCategory = 0x80026C14; // type:func -Actor_GetProjectileActor = 0x80026C54; // type:func -Actor_SetTextWithPrefix = 0x80026E14; // type:func -Actor_TestFloorInDirection = 0x80026E90; // type:func -Actor_IsLockedOn = 0x80026F5C; // type:func -Actor_OtherIsLockedOn = 0x80026F90; // type:func -func_80033AEC = 0x80026FC4; // type:func -func_80033C30 = 0x80027110; // type:func -Actor_RequestQuake = 0x8002725C; // type:func -Actor_RequestQuakeWithSpeed = 0x800272C4; // type:func -Actor_RequestQuakeAndRumble = 0x80027334; // type:func -Rand_ZeroFloat = 0x800273A4; // type:func -Rand_CenteredFloat = 0x800273D0; // type:func -Actor_DrawDoorLock = 0x80027408; // type:func -func_8003424C = 0x800276B0; // type:func -Actor_SetColorFilter = 0x800276D0; // type:func -func_800342EC = 0x80027754; // type:func -func_8003435C = 0x800277C8; // type:func -Npc_UpdateTalking = 0x8002783C; // type:func -Npc_TrackPointWithLimits = 0x8002792C; // type:func -Npc_GetTrackingPresetMaxPlayerYaw = 0x80027C60; // type:func -Npc_UpdateAutoTurn = 0x80027C8C; // type:func -Npc_TrackPoint = 0x80027E94; // type:func -func_80034B28 = 0x80027FAC; // type:func -func_80034B54 = 0x80027FD0; // type:func -func_80034BA0 = 0x8002800C; // type:func -func_80034CC4 = 0x80028104; // type:func -func_80034DD4 = 0x800281E8; // type:func -Animation_ChangeByInfo = 0x800282D8; // type:func -func_80034F54 = 0x80028370; // type:func -Actor_Noop = 0x80028534; // type:func -func_80035124 = 0x80028544; // type:func -Gfx_DrawDListOpa = 0x80028688; // type:func -Gfx_DrawDListXlu = 0x80028708; // type:func -func_800353E8 = 0x80028788; // type:func -Actor_FindNearby = 0x80028798; // type:func -func_800354B4 = 0x8002885C; // type:func -func_8003555C = 0x80028904; // type:func -func_800355B8 = 0x80028960; // type:func -func_800355E4 = 0x8002898C; // type:func -Actor_ApplyDamage = 0x800289D0; // type:func -Actor_SetDropFlag = 0x800289FC; // type:func -Actor_SetDropFlagJntSph = 0x80028AE8; // type:func -func_80035844 = 0x80028BF0; // type:func -func_800358DC = 0x80028C84; // type:func -func_800359B8 = 0x80028D60; // type:func -func_80035B18 = 0x80028EC4; // type:func -Flags_GetEventChkInf = 0x80028EF4; // type:func -Flags_SetEventChkInf = 0x80028F20; // type:func -Flags_GetInfTable = 0x80028F54; // type:func -Flags_SetInfTable = 0x80028F80; // type:func -func_80035BFC = 0x80028FB4; // type:func -func_80036E50 = 0x8002A208; // type:func -func_800374E0 = 0x8002A898; // type:func -func_80037C30 = 0x8002AFEC; // type:func -func_80037C5C = 0x8002B01C; // type:func -func_80037C94 = 0x8002B058; // type:func -func_80037CB8 = 0x8002B07C; // type:func -func_80037D98 = 0x8002B160; // type:func -Actor_TrackNone = 0x8002B2F8; // type:func -Actor_TrackPoint = 0x8002B394; // type:func -Actor_TrackPlayerSetFocusHeight = 0x8002B528; // type:func -Actor_TrackPlayer = 0x8002B664; // type:func -ActorOverlayTable_LogPrint = 0x8002B7A0; // type:func -ActorOverlayTable_FaultPrint = 0x8002B7A8; // type:func -ActorOverlayTable_Init = 0x8002B92C; // type:func -ActorOverlayTable_Cleanup = 0x8002B96C; // type:func -SSNode_SetValue = 0x8002B9A0; // type:func -SSList_SetNull = 0x8002B9BC; // type:func -SSNodeList_SetSSListHead = 0x8002B9CC; // type:func -DynaSSNodeList_SetSSListHead = 0x8002BA24; // type:func -DynaSSNodeList_Initialize = 0x8002BA7C; // type:func -DynaSSNodeList_Alloc = 0x8002BA90; // type:func -DynaSSNodeList_ResetCount = 0x8002BAE0; // type:func -DynaSSNodeList_GetNextNodeIdx = 0x8002BAEC; // type:func -BgCheck_Vec3sToVec3f = 0x8002BB1C; // type:func -BgCheck_Vec3fToVec3s = 0x8002BB60; // type:func -CollisionPoly_GetMinY = 0x8002BBA4; // type:func -CollisionPoly_GetNormalF = 0x8002BC50; // type:func -func_80038A28 = 0x8002BCA8; // type:func -CollisionPoly_GetPointDistanceFromPlane = 0x8002BDFC; // type:func -CollisionPoly_GetVertices = 0x8002BE64; // type:func -CollisionPoly_GetVerticesByBgId = 0x8002BF04; // type:func -CollisionPoly_CheckYIntersectApprox1 = 0x8002BF84; // type:func -CollisionPoly_CheckYIntersect = 0x8002C0B8; // type:func -CollisionPoly_CheckYIntersectApprox2 = 0x8002C164; // type:func -CollisionPoly_CheckXIntersectApprox = 0x8002C1A4; // type:func -CollisionPoly_CheckZIntersectApprox = 0x8002C248; // type:func -CollisionPoly_LineVsPoly = 0x8002C2EC; // type:func -CollisionPoly_SphVsPoly = 0x8002C5CC; // type:func -StaticLookup_AddPolyToSSList = 0x8002C69C; // type:func -StaticLookup_AddPoly = 0x8002C8BC; // type:func -BgCheck_RaycastDownStaticList = 0x8002C950; // type:func -BgCheck_RaycastDownStatic = 0x8002CB8C; // type:func -BgCheck_ComputeWallDisplacement = 0x8002CCA4; // type:func -BgCheck_SphVsStaticWall = 0x8002CD54; // type:func -BgCheck_CheckStaticCeiling = 0x8002D5E8; // type:func -BgCheck_CheckLineAgainstSSList = 0x8002D7C0; // type:func -BgCheck_CheckLineInSubdivision = 0x8002D9E4; // type:func -BgCheck_SphVsFirstStaticPolyList = 0x8002DB70; // type:func -BgCheck_SphVsFirstStaticPoly = 0x8002DD40; // type:func -BgCheck_GetNearestStaticLookup = 0x8002DE78; // type:func -BgCheck_GetStaticLookup = 0x8002DF2C; // type:func -BgCheck_GetStaticLookupIndicesFromPos = 0x8002DFF8; // type:func -BgCheck_GetSubdivisionMinBounds = 0x8002E0D8; // type:func -BgCheck_GetSubdivisionMaxBounds = 0x8002E27C; // type:func -BgCheck_GetPolySubdivisionBounds = 0x8002E448; // type:func -BgCheck_PolyIntersectsSubdivision = 0x8002E5F8; // type:func -BgCheck_InitializeStaticLookup = 0x8002ED4C; // type:func -BgCheck_IsSpotScene = 0x8002F14C; // type:func -BgCheck_TryGetCustomMemsize = 0x8002F190; // type:func -BgCheck_SetSubdivisionDimension = 0x8002F228; // type:func -BgCheck_Allocate = 0x8002F2B0; // type:func -BgCheck_GetCollisionHeader = 0x8002F694; // type:func -BgCheck_PosInStaticBoundingBox = 0x8002F6FC; // type:func -BgCheck_RaycastDownImpl = 0x8002F7B8; // type:func -BgCheck_CameraRaycastDown1 = 0x8002F988; // type:func -BgCheck_EntityRaycastDown1 = 0x8002F9E4; // type:func -BgCheck_EntityRaycastDown2 = 0x8002FA40; // type:func -BgCheck_EntityRaycastDown3 = 0x8002FA94; // type:func -BgCheck_EntityRaycastDown4 = 0x8002FAF8; // type:func -BgCheck_EntityRaycastDown5 = 0x8002FB60; // type:func -BgCheck_EntityRaycastDown6 = 0x8002FBB8; // type:func -BgCheck_EntityRaycastDown7 = 0x8002FC1C; // type:func -BgCheck_AnyRaycastDown1 = 0x8002FC84; // type:func -BgCheck_AnyRaycastDown2 = 0x8002FD38; // type:func -BgCheck_CameraRaycastDown2 = 0x8002FDF0; // type:func -BgCheck_EntityRaycastDownWalls = 0x8002FE54; // type:func -BgCheck_EntityRaycastDown9 = 0x8002FEBC; // type:func -BgCheck_CheckWallImpl = 0x8002FF20; // type:func -BgCheck_EntitySphVsWall1 = 0x8003055C; // type:func -BgCheck_EntitySphVsWall2 = 0x800305C0; // type:func -BgCheck_EntitySphVsWall3 = 0x80030624; // type:func -BgCheck_EntitySphVsWall4 = 0x8003068C; // type:func -BgCheck_CheckCeilingImpl = 0x800306F8; // type:func -BgCheck_AnyCheckCeiling = 0x80030818; // type:func -BgCheck_EntityCheckCeiling = 0x80030864; // type:func -BgCheck_CheckLineImpl = 0x800308B4; // type:func -BgCheck_GetBccFlags = 0x80030D94; // type:func -BgCheck_CameraLineTest1 = 0x80030DDC; // type:func -BgCheck_CameraLineTest2 = 0x80030E68; // type:func -BgCheck_EntityLineTest1 = 0x80030EF4; // type:func -BgCheck_EntityLineTest2 = 0x80030F80; // type:func -BgCheck_EntityLineTest3 = 0x80031010; // type:func -BgCheck_ProjectileLineTest = 0x8003109C; // type:func -BgCheck_AnyLineTest1 = 0x80031128; // type:func -BgCheck_AnyLineTest2 = 0x8003116C; // type:func -BgCheck_AnyLineTest3 = 0x800311F8; // type:func -BgCheck_SphVsFirstPolyImpl = 0x80031284; // type:func -BgCheck_SphVsFirstPoly = 0x80031348; // type:func -BgCheck_SphVsFirstWall = 0x8003138C; // type:func -SSNodeList_Initialize = 0x800313D4; // type:func -SSNodeList_Alloc = 0x800313EC; // type:func -SSNodeList_GetNextNode = 0x8003145C; // type:func -SSNodeList_GetNextNodeIdx = 0x80031498; // type:func -ScaleRotPos_Initialize = 0x800314AC; // type:func -ScaleRotPos_SetValue = 0x800314EC; // type:func -ScaleRotPos_Equals = 0x8003153C; // type:func -DynaLookup_ResetLists = 0x80031610; // type:func -DynaLookup_Reset = 0x80031650; // type:func -DynaLookup_ResetVtxStartIndex = 0x80031670; // type:func -BgActor_Initialize = 0x8003167C; // type:func -BgActor_SetActor = 0x800316DC; // type:func -BgActor_IsTransformUnchanged = 0x80031794; // type:func -DynaPoly_NullPolyList = 0x800317BC; // type:func -DynaPoly_AllocPolyList = 0x800317C8; // type:func -DynaPoly_NullVtxList = 0x80031804; // type:func -DynaPoly_AllocVtxList = 0x80031810; // type:func -DynaPoly_SetBgActorPrevTransform = 0x80031858; // type:func -DynaPoly_IsBgIdBgActor = 0x800318A4; // type:func -DynaPoly_Init = 0x800318C4; // type:func -DynaPoly_Alloc = 0x80031910; // type:func -DynaPoly_SetBgActor = 0x800319E4; // type:func -DynaPoly_GetActor = 0x80031AA4; // type:func -DynaPoly_DisableCollision = 0x80031B18; // type:func -DynaPoly_EnableCollision = 0x80031B70; // type:func -DynaPoly_DisableCeilingCollision = 0x80031BC8; // type:func -DynaPoly_EnableCeilingCollision = 0x80031C20; // type:func -DynaPoly_DeleteBgActor = 0x80031C78; // type:func -DynaPoly_InvalidateLookup = 0x80031D00; // type:func -DynaPoly_AddBgActorToLookup = 0x80031D18; // type:func -DynaPoly_UnsetAllInteractFlags = 0x80032664; // type:func -DynaPoly_UpdateContext = 0x800326FC; // type:func -DynaPoly_UpdateBgActorTransforms = 0x80032868; // type:func -BgCheck_RaycastDownDynaList = 0x800328F8; // type:func -BgCheck_RaycastDownDyna = 0x80032AE0; // type:func -BgCheck_SphVsDynaWallInBgActor = 0x80032F88; // type:func -BgCheck_SphVsDynaWall = 0x8003364C; // type:func -BgCheck_CheckDynaCeilingList = 0x80033888; // type:func -BgCheck_CheckDynaCeiling = 0x80033AE4; // type:func -BgCheck_CheckLineAgainstBgActorSSList = 0x80033C48; // type:func -BgCheck_CheckLineAgainstBgActor = 0x80033DCC; // type:func -BgCheck_CheckLineAgainstDyna = 0x80033EE8; // type:func -BgCheck_SphVsFirstDynaPolyList = 0x800340A0; // type:func -BgCheck_SphVsFirstDynaPolyInBgActor = 0x800341B8; // type:func -BgCheck_SphVsFirstDynaPoly = 0x800342F8; // type:func -CollisionHeader_SegmentedToVirtual = 0x80034450; // type:func -CollisionHeader_GetVirtual = 0x80034534; // type:func -func_800418D0 = 0x80034588; // type:func -BgCheck_ResetPolyCheckTbl = 0x80034630; // type:func -SurfaceType_GetData = 0x80034668; // type:func -SurfaceType_GetBgCamIndex = 0x800346E0; // type:func -BgCheck_GetBgCamSettingImpl = 0x80034704; // type:func -BgCheck_GetBgCamSetting = 0x8003474C; // type:func -BgCheck_GetBgCamCountImpl = 0x800347E0; // type:func -BgCheck_GetBgCamCount = 0x8003483C; // type:func -BgCheck_GetBgCamFuncDataImpl = 0x800348D0; // type:func -BgCheck_GetBgCamFuncData = 0x80034958; // type:func -SurfaceType_GetExitIndex = 0x800349EC; // type:func -SurfaceType_GetFloorType = 0x80034A14; // type:func -func_80041D70 = 0x80034A3C; // type:func -SurfaceType_GetWallType = 0x80034A64; // type:func -SurfaceType_GetWallFlags = 0x80034A8C; // type:func -SurfaceType_CheckWallFlag0 = 0x80034ABC; // type:func -SurfaceType_CheckWallFlag1 = 0x80034AF0; // type:func -SurfaceType_CheckWallFlag2 = 0x80034B24; // type:func -SurfaceType_GetFloorProperty2 = 0x80034B58; // type:func -SurfaceType_GetFloorProperty = 0x80034B80; // type:func -SurfaceType_IsSoft = 0x80034BA8; // type:func -SurfaceType_IsHorseBlocked = 0x80034BD0; // type:func -SurfaceType_GetMaterial = 0x80034BF8; // type:func -SurfaceType_GetSfxOffset = 0x80034C1C; // type:func -SurfaceType_GetFloorEffect = 0x80034C64; // type:func -SurfaceType_GetLightSetting = 0x80034C8C; // type:func -SurfaceType_GetEcho = 0x80034CB4; // type:func -SurfaceType_CanHookshot = 0x80034CDC; // type:func -SurfaceType_IsIgnoredByEntities = 0x80034D04; // type:func -SurfaceType_IsIgnoredByProjectiles = 0x80034D40; // type:func -SurfaceType_IsFloorConveyor = 0x80034D7C; // type:func -SurfaceType_GetConveyorSpeed = 0x80034DB8; // type:func -SurfaceType_GetConveyorDirection = 0x80034DE0; // type:func -func_80042108 = 0x80034E08; // type:func -WaterBox_GetSurface1 = 0x80034E3C; // type:func -WaterBox_GetSurfaceImpl = 0x80034F48; // type:func -WaterBox_GetSurface2 = 0x800350A0; // type:func -WaterBox_GetBgCamIndex = 0x8003523C; // type:func -WaterBox_GetBgCamSetting = 0x80035250; // type:func -WaterBox_GetLightIndex = 0x800352A8; // type:func -func_800425B0 = 0x800352C0; // type:func -func_80042708 = 0x80035418; // type:func -func_800427B4 = 0x800354C8; // type:func -DynaPolyActor_UpdateCarriedActorPos = 0x80035580; // type:func -DynaPolyActor_UpdateCarriedActorRotY = 0x800356BC; // type:func -func_80043334 = 0x80035750; // type:func -DynaPolyActor_TransformCarriedActor = 0x800357C0; // type:func -DynaPolyActor_Init = 0x800358A0; // type:func -DynaPolyActor_UnsetAllInteractFlags = 0x800358C4; // type:func -DynaPolyActor_SetActorOnTop = 0x800358D0; // type:func -DynaPolyActor_SetPlayerOnTop = 0x800358E4; // type:func -DynaPoly_SetPlayerOnTop = 0x800358F8; // type:func -DynaPolyActor_SetPlayerAbove = 0x80035928; // type:func -DynaPoly_SetPlayerAbove = 0x8003593C; // type:func -func_80043538 = 0x8003596C; // type:func -DynaPolyActor_IsActorOnTop = 0x80035980; // type:func -DynaPolyActor_IsPlayerOnTop = 0x800359A4; // type:func -DynaPolyActor_IsPlayerAbove = 0x800359C8; // type:func -func_800435B4 = 0x800359EC; // type:func -func_800435D8 = 0x80035A10; // type:func -Camera_InterpolateCurve = 0x80035C30; // type:func -Camera_LERPCeilF = 0x80035CDC; // type:func -Camera_LERPFloorF = 0x80035D20; // type:func -Camera_LERPCeilS = 0x80035D64; // type:func -Camera_LERPFloorS = 0x80035DF8; // type:func -Camera_LERPCeilVec3f = 0x80035E8C; // type:func -func_80043ABC = 0x80035F10; // type:func -func_80043B60 = 0x80035F50; // type:func -Camera_Vec3sToVec3f = 0x80035F80; // type:func -Camera_AddVecGeoToVec3f = 0x80035FE8; // type:func -Camera_Vec3fTranslateByUnitVector = 0x80036068; // type:func -Camera_BGCheckInfo = 0x800360D4; // type:func -Camera_BGCheck = 0x800362FC; // type:func -func_80043F94 = 0x80036358; // type:func -func_80044340 = 0x80036710; // type:func -Camera_CheckOOB = 0x8003676C; // type:func -Camera_GetFloorYNorm = 0x80036808; // type:func -Camera_GetFloorY = 0x800368EC; // type:func -Camera_GetFloorYLayer = 0x80036948; // type:func -Camera_GetBgCamSetting = 0x80036B0C; // type:func -Camera_GetBgCamFuncData = 0x80036B40; // type:func -Camera_GetBgCamIndex = 0x80036B70; // type:func -Camera_GetBgCamFuncDataUnderPlayer = 0x80036BF0; // type:func -Camera_GetWaterBoxBgCamIndex = 0x80036CA0; // type:func -Camera_GetWaterSurface = 0x80036D80; // type:func -Camera_XZAngle = 0x80036E48; // type:func -Camera_GetPitchAdjFromFloorHeightDiffs = 0x80036EB0; // type:func -Camera_CalcUpFromPitchYawRoll = 0x800371DC; // type:func -Camera_ClampLERPScale = 0x80037418; // type:func -Camera_CopyDataToRegs = 0x80037470; // type:func -Camera_UpdateInterface = 0x80037480; // type:func -Camera_BGCheckCorner = 0x8003758C; // type:func -func_80045508 = 0x800375F4; // type:func -Camera_CalcSlopeYAdj = 0x80037804; // type:func -Camera_CalcAtDefault = 0x80037898; // type:func -func_800458D4 = 0x800379B0; // type:func -func_80045B08 = 0x80037B68; // type:func -Camera_CalcAtForParallel = 0x80037CC8; // type:func -Camera_CalcAtForLockOn = 0x8003802C; // type:func -Camera_CalcAtForHorse = 0x800384E4; // type:func -Camera_LERPClampDist = 0x800386A0; // type:func -Camera_ClampDist = 0x80038758; // type:func -Camera_CalcDefaultPitch = 0x8003886C; // type:func -Camera_CalcDefaultYaw = 0x800389CC; // type:func -func_80046E20 = 0x80038B20; // type:func -Camera_Noop = 0x80039044; // type:func -Camera_Normal1 = 0x80039054; // type:func -Camera_Normal2 = 0x80039AAC; // type:func -Camera_Normal3 = 0x8003A23C; // type:func -Camera_Normal4 = 0x8003A8E4; // type:func -Camera_Normal0 = 0x8003A904; // type:func -Camera_Parallel1 = 0x8003A924; // type:func -Camera_Parallel2 = 0x8003B1B0; // type:func -Camera_Parallel3 = 0x8003B1D0; // type:func -Camera_Parallel4 = 0x8003B234; // type:func -Camera_Parallel0 = 0x8003B254; // type:func -Camera_Jump1 = 0x8003B274; // type:func -Camera_Jump2 = 0x8003B8B4; // type:func -Camera_Jump3 = 0x8003C1A0; // type:func -Camera_Jump4 = 0x8003C90C; // type:func -Camera_Jump0 = 0x8003C92C; // type:func -Camera_Battle1 = 0x8003C94C; // type:func -Camera_Battle2 = 0x8003D688; // type:func -Camera_Battle3 = 0x8003D6A8; // type:func -Camera_Battle4 = 0x8003D6C8; // type:func -Camera_Battle0 = 0x8003DA20; // type:func -Camera_KeepOn1 = 0x8003DA40; // type:func -Camera_KeepOn2 = 0x8003E790; // type:func -Camera_KeepOn3 = 0x8003E7B0; // type:func -Camera_KeepOn4 = 0x8003F204; // type:func -Camera_KeepOn0 = 0x8004001C; // type:func -Camera_Fixed1 = 0x800402BC; // type:func -Camera_Fixed2 = 0x800405A8; // type:func -Camera_Fixed3 = 0x8004095C; // type:func -Camera_Fixed4 = 0x80040B5C; // type:func -Camera_Fixed0 = 0x80040EE8; // type:func -Camera_Subj1 = 0x80040F08; // type:func -Camera_Subj2 = 0x80040F28; // type:func -Camera_Subj3 = 0x80040F48; // type:func -Camera_Subj4 = 0x8004154C; // type:func -Camera_Subj0 = 0x80041B80; // type:func -Camera_Data0 = 0x80041BA0; // type:func -Camera_Data1 = 0x80041BC0; // type:func -Camera_Data2 = 0x80041BE0; // type:func -Camera_Data3 = 0x80041C00; // type:func -Camera_Data4 = 0x80041C20; // type:func -Camera_Unique1 = 0x80041F0C; // type:func -Camera_Unique2 = 0x80042390; // type:func -Camera_Unique3 = 0x80042748; // type:func -Camera_Unique0 = 0x80042C4C; // type:func -Camera_Unique4 = 0x80043200; // type:func -Camera_Unique5 = 0x80043220; // type:func -Camera_Unique6 = 0x80043240; // type:func -Camera_Unique7 = 0x80043370; // type:func -Camera_Unique8 = 0x80043574; // type:func -Camera_Unique9 = 0x80043594; // type:func -Camera_Vec3fCopy = 0x800449F0; // type:func -Camera_RotateAroundPoint = 0x80044A10; // type:func -Camera_Demo1 = 0x80044A6C; // type:func -Camera_Demo2 = 0x80044C44; // type:func -Camera_Demo3 = 0x80044C64; // type:func -Camera_Demo4 = 0x80045750; // type:func -Camera_Demo5 = 0x80045770; // type:func -Camera_Demo6 = 0x80046148; // type:func -Camera_Demo7 = 0x800463EC; // type:func -Camera_Demo8 = 0x80046420; // type:func -Camera_Demo9 = 0x80046440; // type:func -Camera_Demo0 = 0x80046860; // type:func -Camera_Special0 = 0x80046880; // type:func -Camera_Special1 = 0x800469C8; // type:func -Camera_Special2 = 0x800469E8; // type:func -Camera_Special3 = 0x80046A08; // type:func -Camera_Special4 = 0x80046A28; // type:func -Camera_Special5 = 0x80046BCC; // type:func -Camera_Special7 = 0x80046F70; // type:func -Camera_Special6 = 0x800472BC; // type:func -Camera_Special8 = 0x8004772C; // type:func -Camera_Special9 = 0x8004774C; // type:func -Camera_Create = 0x80047E80; // type:func -Camera_Destroy = 0x80047ED0; // type:func -Camera_Init = 0x80047EF8; // type:func -func_80057FC4 = 0x80048118; // type:func -Camera_Stub80058140 = 0x8004826C; // type:func -Camera_InitDataUsingPlayer = 0x80048278; // type:func -Camera_ChangeStatus = 0x80048474; // type:func -Camera_UpdateWater = 0x80048490; // type:func -Camera_UpdateHotRoom = 0x800488AC; // type:func -Camera_UpdateDistortion = 0x800488EC; // type:func -Camera_Update = 0x80048C4C; // type:func -Camera_Finish = 0x8004947C; // type:func -Camera_SetNewModeStateFlags = 0x800495E8; // type:func -Camera_RequestModeImpl = 0x8004960C; // type:func -Camera_RequestMode = 0x80049970; // type:func -Camera_CheckValidMode = 0x8004999C; // type:func -Camera_RequestSettingImpl = 0x80049A08; // type:func -Camera_RequestSetting = 0x80049BFC; // type:func -Camera_RequestBgCam = 0x80049C28; // type:func -Camera_GetInputDir = 0x80049CFC; // type:func -Camera_GetInputDirPitch = 0x80049D20; // type:func -Camera_GetInputDirYaw = 0x80049D48; // type:func -Camera_GetCamDir = 0x80049D70; // type:func -Camera_GetCamDirPitch = 0x80049D94; // type:func -Camera_GetCamDirYaw = 0x80049DBC; // type:func -Camera_RequestQuake = 0x80049DE4; // type:func -Camera_SetViewParam = 0x80049E58; // type:func -Camera_UnsetViewFlag = 0x80049FEC; // type:func -Camera_OverwriteStateFlags = 0x8004A014; // type:func -Camera_ResetAnim = 0x8004A030; // type:func -Camera_SetCSParams = 0x8004A040; // type:func -Camera_SetStateFlag = 0x8004A0D4; // type:func -Camera_UnsetStateFlag = 0x8004A0F8; // type:func -Camera_ChangeDoorCam = 0x8004A120; // type:func -Camera_Copy = 0x8004A220; // type:func -Camera_IsDebugCamEnabled = 0x8004A368; // type:func -Camera_GetQuakeOffset = 0x8004A374; // type:func -Camera_SetCameraData = 0x8004A398; // type:func -func_8005B198 = 0x8004A3E4; // type:func -Camera_SetFinishedFlag = 0x8004A3F4; // type:func -DamageTable_Get = 0x8004A450; // type:func -DamageTable_Clear = 0x8004A47C; // type:func -Collider_InitBase = 0x8004A4B0; // type:func -Collider_DestroyBase = 0x8004A4F8; // type:func -Collider_SetBaseToActor = 0x8004A50C; // type:func -Collider_SetBaseType1 = 0x8004A54C; // type:func -Collider_SetBase = 0x8004A590; // type:func -Collider_ResetATBase = 0x8004A5D4; // type:func -Collider_ResetACBase = 0x8004A5F0; // type:func -Collider_ResetOCBase = 0x8004A60C; // type:func -Collider_InitElementDamageInfoAT = 0x8004A634; // type:func -Collider_DestroyElementDamageInfoAT = 0x8004A65C; // type:func -Collider_SetElementDamageInfoAT = 0x8004A670; // type:func -Collider_ResetATElement_Unk = 0x8004A698; // type:func -Collider_InitElementDamageInfoAC = 0x8004A6A8; // type:func -Collider_DestroyElementDamageInfoAC = 0x8004A6D8; // type:func -Collider_SetElementDamageInfoAC = 0x8004A6EC; // type:func -Collider_InitElement = 0x8004A714; // type:func -Collider_DestroyElement = 0x8004A794; // type:func -Collider_SetElement = 0x8004A7D4; // type:func -Collider_ResetATElement = 0x8004A84C; // type:func -Collider_ResetACElement = 0x8004A884; // type:func -Collider_ResetOCElement = 0x8004A8BC; // type:func -Collider_InitJntSphElementDim = 0x8004A8D4; // type:func -Collider_DestroyJntSphElementDim = 0x8004A91C; // type:func -Collider_SetJntSphElementDim = 0x8004A930; // type:func -Collider_InitJntSphElement = 0x8004A988; // type:func -Collider_DestroyJntSphElement = 0x8004A9C8; // type:func -Collider_SetJntSphElement = 0x8004AA08; // type:func -Collider_ResetJntSphElementAT = 0x8004AA58; // type:func -Collider_ResetJntSphElementAC = 0x8004AA7C; // type:func -Collider_ResetJntSphElementOC = 0x8004AAA0; // type:func -Collider_InitJntSph = 0x8004AAC4; // type:func -Collider_FreeJntSph = 0x8004AAF0; // type:func -Collider_DestroyJntSph = 0x8004AB90; // type:func -Collider_SetJntSphToActor = 0x8004AC20; // type:func -Collider_SetJntSphAllocType1 = 0x8004ACFC; // type:func -Collider_SetJntSphAlloc = 0x8004ADD8; // type:func -Collider_SetJntSph = 0x8004AEB4; // type:func -Collider_ResetJntSphAT = 0x8004AF68; // type:func -Collider_ResetJntSphAC = 0x8004AFF4; // type:func -Collider_ResetJntSphOC = 0x8004B080; // type:func -Collider_InitCylinderDim = 0x8004B10C; // type:func -Collider_DestroyCylinderDim = 0x8004B168; // type:func -Collider_SetCylinderDim = 0x8004B17C; // type:func -Collider_InitCylinder = 0x8004B1BC; // type:func -Collider_DestroyCylinder = 0x8004B20C; // type:func -Collider_SetCylinderToActor = 0x8004B25C; // type:func -Collider_SetCylinderType1 = 0x8004B2C4; // type:func -Collider_SetCylinder = 0x8004B32C; // type:func -Collider_ResetCylinderAT = 0x8004B394; // type:func -Collider_ResetCylinderAC = 0x8004B3D4; // type:func -Collider_ResetCylinderOC = 0x8004B414; // type:func -Collider_InitTrisElementDim = 0x8004B454; // type:func -Collider_DestroyTrisElementDim = 0x8004B4A0; // type:func -Collider_SetTrisElementDim = 0x8004B4B4; // type:func -Collider_InitTrisElement = 0x8004B568; // type:func -Collider_DestroyTrisElement = 0x8004B5A8; // type:func -Collider_SetTrisElement = 0x8004B5E8; // type:func -Collider_ResetTrisElementAT = 0x8004B638; // type:func -Collider_ResetTrisElementAC = 0x8004B65C; // type:func -Collider_ResetTrisElementOC = 0x8004B680; // type:func -Collider_InitTris = 0x8004B6A4; // type:func -Collider_FreeTris = 0x8004B6D0; // type:func -Collider_DestroyTris = 0x8004B788; // type:func -Collider_SetTrisAllocType1 = 0x8004B82C; // type:func -Collider_SetTrisAlloc = 0x8004B92C; // type:func -Collider_SetTris = 0x8004BA2C; // type:func -Collider_ResetTrisAT = 0x8004BAF8; // type:func -Collider_ResetTrisAC = 0x8004BB98; // type:func -Collider_ResetTrisOC = 0x8004BC38; // type:func -Collider_InitQuadDim = 0x8004BCD8; // type:func -Collider_DestroyQuadDim = 0x8004BD24; // type:func -Collider_ResetQuadACDist = 0x8004BD38; // type:func -Collider_SetQuadMidpoints = 0x8004BD54; // type:func -Collider_SetQuadDim = 0x8004BE10; // type:func -Collider_InitQuad = 0x8004BE98; // type:func -Collider_DestroyQuad = 0x8004BEE8; // type:func -Collider_SetQuadType1 = 0x8004BF38; // type:func -Collider_SetQuad = 0x8004BFA0; // type:func -Collider_ResetQuadAT = 0x8004C008; // type:func -Collider_ResetQuadAC = 0x8004C058; // type:func -Collider_ResetQuadOC = 0x8004C098; // type:func -Collider_QuadSetNearestAC = 0x8004C0D8; // type:func -Collider_InitLine = 0x8004C188; // type:func -Collider_DestroyLine = 0x8004C1E8; // type:func -Collider_SetLinePoints = 0x8004C1FC; // type:func -Collider_SetLine = 0x8004C240; // type:func -Collider_ResetLineOC = 0x8004C26C; // type:func -CollisionCheck_InitContext = 0x8004C288; // type:func -CollisionCheck_DestroyContext = 0x8004C2A8; // type:func -CollisionCheck_ClearContext = 0x8004C2B8; // type:func -CollisionCheck_EnableSAC = 0x8004C360; // type:func -CollisionCheck_DisableSAC = 0x8004C378; // type:func -CollisionCheck_SetAT = 0x8004C390; // type:func -CollisionCheck_SetAT_SAC = 0x8004C470; // type:func -CollisionCheck_SetAC = 0x8004C580; // type:func -CollisionCheck_SetAC_SAC = 0x8004C660; // type:func -CollisionCheck_SetOC = 0x8004C770; // type:func -CollisionCheck_SetOC_SAC = 0x8004C850; // type:func -CollisionCheck_SetOCLine = 0x8004C960; // type:func -CollisionCheck_IsElementNotAT = 0x8004C9EC; // type:func -CollisionCheck_IsElementNotAC = 0x8004CA10; // type:func -CollisionCheck_NoSharedFlags = 0x8004CA34; // type:func -CollisionCheck_NoBlood = 0x8004CA5C; // type:func -CollisionCheck_BlueBlood = 0x8004CA70; // type:func -CollisionCheck_GreenBlood = 0x8004CBDC; // type:func -CollisionCheck_WaterBurst = 0x8004CD48; // type:func -CollisionCheck_RedBlood = 0x8004CD84; // type:func -CollisionCheck_RedBloodUnused = 0x8004CDA8; // type:func -CollisionCheck_HitSolid = 0x8004CDCC; // type:func -CollisionCheck_SwordHitAudio = 0x8004CFDC; // type:func -CollisionCheck_HitEffects = 0x8004D0E8; // type:func -CollisionCheck_SetBounce = 0x8004D2E8; // type:func -CollisionCheck_SetATvsAC = 0x8004D308; // type:func -CollisionCheck_ATJntSphVsACJntSph = 0x8004D4B0; // type:func -CollisionCheck_ATJntSphVsACCyl = 0x8004D75C; // type:func -CollisionCheck_ATCylVsACJntSph = 0x8004D9D0; // type:func -CollisionCheck_ATJntSphVsACTris = 0x8004DC70; // type:func -CollisionCheck_ATTrisVsACJntSph = 0x8004DE90; // type:func -CollisionCheck_ATJntSphVsACQuad = 0x8004E0A4; // type:func -CollisionCheck_ATQuadVsACJntSph = 0x8004E2C4; // type:func -CollisionCheck_ATCylVsACCyl = 0x8004E528; // type:func -CollisionCheck_ATCylVsACTris = 0x8004E6FC; // type:func -CollisionCheck_ATTrisVsACCyl = 0x8004E8C0; // type:func -CollisionCheck_ATCylVsACQuad = 0x8004EA80; // type:func -CollisionCheck_ATQuadVsACCyl = 0x8004ECF4; // type:func -CollisionCheck_ATTrisVsACTris = 0x8004EFA0; // type:func -CollisionCheck_ATTrisVsACQuad = 0x8004F1F4; // type:func -CollisionCheck_ATQuadVsACTris = 0x8004F484; // type:func -CollisionCheck_ATQuadVsACQuad = 0x8004F71C; // type:func -CollisionCheck_SetJntSphHitFX = 0x8004F9AC; // type:func -CollisionCheck_SetCylHitFX = 0x8004FA8C; // type:func -CollisionCheck_SetTrisHitFX = 0x8004FB24; // type:func -CollisionCheck_SetQuadHitFX = 0x8004FC0C; // type:func -CollisionCheck_SetHitEffects = 0x8004FCA4; // type:func -CollisionCheck_AC = 0x8004FD78; // type:func -CollisionCheck_AT = 0x8004FEA0; // type:func -CollisionCheck_GetMassType = 0x8004FF70; // type:func -CollisionCheck_SetOCvsOC = 0x8004FFAC; // type:func -CollisionCheck_OC_JntSphVsJntSph = 0x800502DC; // type:func -CollisionCheck_OC_JntSphVsCyl = 0x800504AC; // type:func -CollisionCheck_OC_CylVsJntSph = 0x8005060C; // type:func -CollisionCheck_OC_CylVsCyl = 0x80050638; // type:func -CollisionCheck_SkipOC = 0x80050708; // type:func -CollisionCheck_Incompatible = 0x8005072C; // type:func -CollisionCheck_OC = 0x800507AC; // type:func -CollisionCheck_InitInfo = 0x8005093C; // type:func -CollisionCheck_ResetDamage = 0x80050984; // type:func -CollisionCheck_SetInfoNoDamageTable = 0x800509B0; // type:func -CollisionCheck_SetInfo = 0x800509D8; // type:func -CollisionCheck_SetInfo2 = 0x80050A04; // type:func -CollisionCheck_SetInfoGetDamageTable = 0x80050A38; // type:func -CollisionCheck_ApplyDamage = 0x80050A70; // type:func -CollisionCheck_ApplyDamageJntSph = 0x80050C30; // type:func -CollisionCheck_ApplyDamageCyl = 0x80050CD8; // type:func -CollisionCheck_ApplyDamageTris = 0x80050CF8; // type:func -CollisionCheck_ApplyDamageQuad = 0x80050D8C; // type:func -CollisionCheck_Damage = 0x80050DAC; // type:func -CollisionCheck_LineOC_JntSph = 0x80050E6C; // type:func -CollisionCheck_LineOC_Cyl = 0x80050F84; // type:func -CollisionCheck_LineOC = 0x80050FFC; // type:func -CollisionCheck_LineOCCheckAll = 0x80051144; // type:func -CollisionCheck_LineOCCheck = 0x80051168; // type:func -Collider_UpdateCylinder = 0x80051194; // type:func -Collider_SetCylinderPosition = 0x800511D8; // type:func -Collider_SetQuadVertices = 0x800511F8; // type:func -Collider_SetTrisVertices = 0x80051268; // type:func -Collider_SetTrisDim = 0x80051328; // type:func -Collider_UpdateSpheres = 0x80051378; // type:func -CollisionCheck_SpawnRedBlood = 0x800514FC; // type:func -CollisionCheck_SpawnWaterDroplets = 0x8005165C; // type:func -CollisionCheck_SpawnShieldParticles = 0x800517B8; // type:func -CollisionCheck_SpawnShieldParticlesMetal = 0x8005184C; // type:func -CollisionCheck_SpawnShieldParticlesMetalSfx = 0x80051898; // type:func -CollisionCheck_SpawnShieldParticlesMetal2 = 0x800518E4; // type:func -CollisionCheck_SpawnShieldParticlesWood = 0x80051904; // type:func -CollisionCheck_CylSideVsLineSeg = 0x800519C4; // type:func -CollisionCheck_GetSwordDamage = 0x800520C8; // type:func -SaveContext_Init = 0x80052130; // type:func -Regs_Init = 0x800521E0; // type:func -DebugCamera_ScreenText = 0x80052270; // type:func -DebugCamera_ScreenTextColored = 0x80052284; // type:func -DebugCamera_DrawScreenText = 0x80052340; // type:func -Debug_DrawText = 0x80052424; // type:func -DebugDisplay_Init = 0x800524F0; // type:func -DebugDisplay_AddObject = 0x80052500; // type:func -DebugDisplay_DrawObjects = 0x800525DC; // type:func -DebugDisplay_DrawSpriteI8 = 0x8005266C; // type:func -DebugDisplay_DrawPolygon = 0x8005284C; // type:func -Cutscene_InitContext = 0x800529A0; // type:func -Cutscene_StartManual = 0x800529B8; // type:func -Cutscene_StopManual = 0x800529D0; // type:func -Cutscene_UpdateManual = 0x800529F4; // type:func -Cutscene_UpdateScripted = 0x80052A40; // type:func -CutsceneHandler_DoNothing = 0x80052AF4; // type:func -Cutscene_StepTimer = 0x80052B04; // type:func -CutsceneHandler_StartManual = 0x80052B3C; // type:func -CutsceneHandler_StartScript = 0x80052B9C; // type:func -CutsceneCmd_Misc = 0x80052C08; // type:func -CutsceneCmd_SetLightSetting = 0x800533A4; // type:func -CutsceneCmd_StartSequence = 0x800533E4; // type:func -CutsceneCmd_StopSequence = 0x80053420; // type:func -CutsceneCmd_FadeOutSequence = 0x8005345C; // type:func -CutsceneCmd_RumbleController = 0x800534DC; // type:func -CutsceneCmd_SetTime = 0x80053520; // type:func -CutsceneCmd_Destination = 0x800535C4; // type:func -CutsceneCmd_Transition = 0x800552E0; // type:func -CutsceneCmd_UpdateCamEyeSpline = 0x80055CC0; // type:func -CutsceneCmd_UpdateCamAtSpline = 0x80055E14; // type:func -CutsceneCmd_SetCamEye = 0x80055F70; // type:func -CutsceneCmd_SetCamAt = 0x8005614C; // type:func -CutsceneCmd_Text = 0x800562F4; // type:func -Cutscene_ProcessScript = 0x800565C8; // type:func -CutsceneHandler_RunScript = 0x80056F98; // type:func -CutsceneHandler_StopManual = 0x80056FDC; // type:func -CutsceneHandler_StopScript = 0x8005701C; // type:func -Cutscene_SetupScripted = 0x80057124; // type:func -func_80069048 = 0x800572A4; // type:func -func_8006907C = 0x800572DC; // type:func -Cutscene_HandleEntranceTriggers = 0x80057300; // type:func -Cutscene_HandleConditionalTriggers = 0x80057420; // type:func -Cutscene_SetScript = 0x80057628; // type:func -MemCpy = 0x800576C0; // type:func -MemSet = 0x800576F0; // type:func -GetItem_Draw = 0x80057750; // type:func -GetItem_DrawMaskOrBombchu = 0x80057794; // type:func -GetItem_DrawSoldOut = 0x8005782C; // type:func -GetItem_DrawBlueFire = 0x800578C8; // type:func -GetItem_DrawPoes = 0x80057A6C; // type:func -GetItem_DrawFairy = 0x80057C60; // type:func -GetItem_DrawMirrorShield = 0x80057E38; // type:func -GetItem_DrawSkullToken = 0x80057FA8; // type:func -GetItem_DrawEggOrMedallion = 0x80058110; // type:func -GetItem_DrawCompass = 0x800581C4; // type:func -GetItem_DrawPotion = 0x800582BC; // type:func -GetItem_DrawGoronSword = 0x8005847C; // type:func -GetItem_DrawDekuNuts = 0x80058584; // type:func -GetItem_DrawRecoveryHeart = 0x80058698; // type:func -GetItem_DrawFish = 0x800587B0; // type:func -GetItem_DrawOpa0 = 0x800588B8; // type:func -GetItem_DrawOpa0Xlu1 = 0x80058950; // type:func -GetItem_DrawXlu01 = 0x80058A4C; // type:func -GetItem_DrawOpa10Xlu2 = 0x80058B00; // type:func -GetItem_DrawMagicArrow = 0x80058C14; // type:func -GetItem_DrawMagicSpell = 0x80058D28; // type:func -GetItem_DrawOpa1023 = 0x80058E78; // type:func -GetItem_DrawOpa10Xlu32 = 0x80058F5C; // type:func -GetItem_DrawSmallRupee = 0x80059088; // type:func -GetItem_DrawScale = 0x800591C4; // type:func -GetItem_DrawBulletBag = 0x80059324; // type:func -GetItem_DrawWallet = 0x80059468; // type:func -SfxSource_InitAll = 0x800595B0; // type:func -SfxSource_UpdateAll = 0x800595E0; // type:func -SfxSource_PlaySfxAtFixedWorldPos = 0x80059688; // type:func -QuestHint_CheckCondition = 0x80059770; // type:func -QuestHint_CheckConditionChain = 0x800599EC; // type:func -QuestHint_CheckRandomCondition = 0x80059A80; // type:func -QuestHint_GetTextIdFromScript = 0x80059C60; // type:func -QuestHint_GetSariaTextId = 0x80059DA4; // type:func -QuestHint_GetNaviTextId = 0x80059E0C; // type:func -MaskReaction_GetTextId = 0x80059E50; // type:func -CutsceneFlags_UnsetAll = 0x80059EA0; // type:func -CutsceneFlags_Set = 0x80059ED0; // type:func -CutsceneFlags_Unset = 0x80059F3C; // type:func -CutsceneFlags_Get = 0x80059FAC; // type:func -Curve_CubicHermiteSpline = 0x8005A020; // type:func -Curve_Interpolate = 0x8005A0B8; // type:func -SkelCurve_Clear = 0x8005A260; // type:func -SkelCurve_Init = 0x8005A290; // type:func -SkelCurve_Destroy = 0x8005A340; // type:func -SkelCurve_SetAnim = 0x8005A370; // type:func -SkelCurve_Update = 0x8005A3A8; // type:func -SkelCurve_DrawLimb = 0x8005A698; // type:func -SkelCurve_Draw = 0x8005A9FC; // type:func -func_8006CFC0 = 0x8005AA50; // type:func -func_8006D074 = 0x8005AB04; // type:func -func_8006D0AC = 0x8005AB40; // type:func -func_8006D0EC = 0x8005AB80; // type:func -func_8006D684 = 0x8005B018; // type:func -func_8006DC68 = 0x8005B58C; // type:func -func_8006DD9C = 0x8005B69C; // type:func -Jpeg_ScheduleDecoderTask = 0x8005B730; // type:func -Jpeg_CopyToZbuffer = 0x8005B86C; // type:func -Jpeg_GetUnalignedU16 = 0x8005B9A4; // type:func -Jpeg_ParseMarkers = 0x8005B9F0; // type:func -Jpeg_Decode = 0x8005BBBC; // type:func -KaleidoSetup_Update = 0x8005BEF0; // type:func -KaleidoSetup_Init = 0x8005C15C; // type:func -KaleidoSetup_Destroy = 0x8005C2D4; // type:func -Font_LoadCharWide = 0x8005C320; // type:func -Font_LoadChar = 0x8005C374; // type:func -Font_LoadMessageBoxIcon = 0x8005C3C4; // type:func -Font_LoadOrderedFont = 0x8005C408; // type:func -Environment_ZBufValToFixedPoint = 0x8005C530; // type:func -Environment_GetPixelDepth = 0x8005C568; // type:func -Environment_GraphCallback = 0x8005C594; // type:func -Environment_Init = 0x8005C5D8; // type:func -Environment_SmoothStepToU8 = 0x8005CAA8; // type:func -Environment_SmoothStepToS8 = 0x8005CBE0; // type:func -Environment_LerpWeight = 0x8005CD20; // type:func -Environment_LerpWeightAccelDecel = 0x8005CDA4; // type:func -Environment_UpdateStorm = 0x8005CF64; // type:func -Environment_UpdateSkybox = 0x8005D058; // type:func -Environment_EnableUnderwaterLights = 0x8005D944; // type:func -Environment_DisableUnderwaterLights = 0x8005D9BC; // type:func -Environment_Update = 0x8005DA34; // type:func -Environment_DrawSunAndMoon = 0x8005F890; // type:func -Environment_DrawSunLensFlare = 0x800600D4; // type:func -Environment_DrawLensFlare = 0x800601A8; // type:func -Environment_RandCentered = 0x80060DEC; // type:func -Environment_DrawRain = 0x80060E14; // type:func -Environment_ChangeLightSetting = 0x800613B0; // type:func -Environment_DrawSkyboxFilters = 0x80061434; // type:func -Environment_DrawLightningFlash = 0x80061654; // type:func -Environment_UpdateLightningStrike = 0x800616EC; // type:func -Environment_AddLightningBolts = 0x800619F4; // type:func -Environment_DrawLightning = 0x80061A5C; // type:func -Environment_PlaySceneSequence = 0x80061EA4; // type:func -Environment_PlayTimeBasedSequence = 0x80062094; // type:func -Environment_DrawCustomLensFlare = 0x800623AC; // type:func -Environment_InitGameOverLights = 0x80062458; // type:func -Environment_FadeInGameOverLights = 0x80062640; // type:func -Environment_FadeOutGameOverLights = 0x800628F4; // type:func -Environment_UpdateRain = 0x80062C10; // type:func -Environment_FillScreen = 0x80062C78; // type:func -Environment_DrawSandstorm = 0x80062E48; // type:func -Environment_AdjustLights = 0x800638A0; // type:func -Environment_GetBgsDayCount = 0x80063ACC; // type:func -Environment_ClearBgsDayCount = 0x80063ADC; // type:func -Environment_GetTotalDays = 0x80063AEC; // type:func -Environment_ForcePlaySequence = 0x80063AFC; // type:func -Environment_IsForcedSequenceDisabled = 0x80063B14; // type:func -Environment_PlayStormNatureAmbience = 0x80063B3C; // type:func -Environment_StopStormNatureAmbience = 0x80063B9C; // type:func -Environment_WarpSongLeave = 0x80063BFC; // type:func -Lib_MemSet = 0x80063CF0; // type:func -Math_CosS = 0x80063D44; // type:func -Math_SinS = 0x80063D84; // type:func -Math_ScaledStepToS = 0x80063DC4; // type:func -Math_StepToS = 0x80063E94; // type:func -Math_StepToF = 0x80063F1C; // type:func -Math_StepUntilAngleS = 0x80063FB0; // type:func -Math_StepUntilS = 0x80064018; // type:func -Math_StepToAngleS = 0x80064078; // type:func -Math_StepUntilF = 0x8006413C; // type:func -Math_AsymStepToF = 0x8006418C; // type:func -Lib_GetControlStickData = 0x80064234; // type:func -Rand_S16Offset = 0x800642B0; // type:func -Rand_S16OffsetStride = 0x80064304; // type:func -Math_Vec3f_Copy = 0x8006436C; // type:func -Math_Vec3s_ToVec3f = 0x8006438C; // type:func -Math_Vec3f_Sum = 0x800643D0; // type:func -Math_Vec3f_Diff = 0x80064408; // type:func -Math_Vec3s_DiffToVec3f = 0x80064440; // type:func -Math_Vec3f_Scale = 0x8006449C; // type:func -Math_Vec3f_DistXYZ = 0x800644D8; // type:func -Math_Vec3f_DistXYZAndStoreDiff = 0x8006451C; // type:func -Math_Vec3f_DistXZ = 0x80064578; // type:func -Math_Vec3f_DiffY = 0x800645AC; // type:func -Math_Vec3f_Yaw = 0x800645C0; // type:func -Math_Vec3f_Pitch = 0x800645F4; // type:func -Actor_ProcessInitChain = 0x8006463C; // type:func -IChain_Apply_u8 = 0x800646B4; // type:func -IChain_Apply_s8 = 0x800646D0; // type:func -IChain_Apply_u16 = 0x800646EC; // type:func -IChain_Apply_s16 = 0x80064708; // type:func -IChain_Apply_u32 = 0x80064724; // type:func -IChain_Apply_s32 = 0x80064740; // type:func -IChain_Apply_f32 = 0x8006475C; // type:func -IChain_Apply_f32div1000 = 0x80064780; // type:func -IChain_Apply_Vec3f = 0x800647B0; // type:func -IChain_Apply_Vec3fdiv1000 = 0x800647DC; // type:func -IChain_Apply_Vec3s = 0x80064814; // type:func -Math_SmoothStepToF = 0x80064838; // type:func -Math_ApproachF = 0x80064940; // type:func -Math_ApproachZeroF = 0x800649B0; // type:func -Math_SmoothStepToDegF = 0x80064A04; // type:func -Math_SmoothStepToS = 0x80064BC8; // type:func -Math_ApproachS = 0x80064CE4; // type:func -Color_RGBA8_Copy = 0x80064D88; // type:func -Sfx_PlaySfxCentered = 0x80064DB0; // type:func -Sfx_PlaySfxCentered2 = 0x80064DF8; // type:func -Sfx_PlaySfxAtPos = 0x80064E40; // type:func -Health_InitMeter = 0x80064E90; // type:func -Health_UpdateMeter = 0x80064F6C; // type:func -func_80078E18 = 0x80065350; // type:func -func_80078E34 = 0x80065370; // type:func -func_80078E84 = 0x800653C0; // type:func -Health_DrawMeter = 0x80065458; // type:func -Health_UpdateBeatingHeart = 0x800660D4; // type:func -Health_IsCritical = 0x800661C0; // type:func -Lights_PointSetInfo = 0x80066230; // type:func -Lights_PointNoGlowSetInfo = 0x8006628C; // type:func -Lights_PointGlowSetInfo = 0x800662F0; // type:func -Lights_PointSetColorAndRadius = 0x80066358; // type:func -Lights_DirectionalSetInfo = 0x8006638C; // type:func -Lights_Reset = 0x800663E4; // type:func -Lights_Draw = 0x80066420; // type:func -Lights_FindSlot = 0x80066564; // type:func -Lights_BindPoint = 0x80066594; // type:func -Lights_BindDirectional = 0x800668F0; // type:func -Lights_BindAll = 0x80066958; // type:func -Lights_FindBufSlot = 0x800669F4; // type:func -Lights_FreeNode = 0x80066A80; // type:func -LightContext_Init = 0x80066AF8; // type:func -LightContext_SetAmbientColor = 0x80066B64; // type:func -LightContext_SetFog = 0x80066B90; // type:func -LightContext_NewLights = 0x80066BCC; // type:func -LightContext_InitList = 0x80066C04; // type:func -LightContext_DestroyList = 0x80066C14; // type:func -LightContext_InsertLight = 0x80066C70; // type:func -LightContext_RemoveLight = 0x80066CD0; // type:func -Lights_NewAndDraw = 0x80066D34; // type:func -Lights_New = 0x80066E7C; // type:func -Lights_GlowCheck = 0x80066EC4; // type:func -Lights_DrawGlow = 0x800670C8; // type:func -ZeldaArena_Malloc = 0x800672D0; // type:func -ZeldaArena_MallocR = 0x800672F8; // type:func -ZeldaArena_Realloc = 0x80067320; // type:func -ZeldaArena_Free = 0x80067350; // type:func -ZeldaArena_Calloc = 0x80067378; // type:func -ZeldaArena_GetSizes = 0x800673D0; // type:func -ZeldaArena_Check = 0x80067408; // type:func -ZeldaArena_Init = 0x8006742C; // type:func -ZeldaArena_Cleanup = 0x8006745C; // type:func -ZeldaArena_IsInitialized = 0x80067480; // type:func -MapMark_Init = 0x800674B0; // type:func -MapMark_ClearPointers = 0x80067580; // type:func -MapMark_DrawForDungeon = 0x800675D4; // type:func -MapMark_Draw = 0x80067AB0; // type:func -PreNmiBuff_Init = 0x80067B00; // type:func -PreNmiBuff_SetReset = 0x80067B78; // type:func -PreNmiBuff_IsResetting = 0x80067BAC; // type:func -Sched_FlushTaskQueue = 0x80067BC0; // type:func -OLib_Vec3fDist = 0x80067C40; // type:func -OLib_Vec3fDistOutDiff = 0x80067C84; // type:func -OLib_Vec3fDistXZ = 0x80067CE0; // type:func -OLib_ClampMinDist = 0x80067D14; // type:func -OLib_ClampMaxDist = 0x80067D64; // type:func -OLib_Vec3fDistNormalize = 0x80067DB4; // type:func -OLib_VecSphToVec3f = 0x80067E64; // type:func -OLib_VecGeoToVec3f = 0x80067F10; // type:func -OLib_Vec3fToVecSph = 0x80067F54; // type:func -OLib_Vec3fToVecGeo = 0x800680A8; // type:func -OLib_Vec3fDiffToVecSph = 0x800680F0; // type:func -OLib_Vec3fDiffToVecGeo = 0x80068144; // type:func -OLib_Vec3fDiffRad = 0x80068198; // type:func -OLib_Vec3fDiffDegF = 0x80068228; // type:func -OLib_Vec3fDiffBinAng = 0x80068290; // type:func -OnePointCutscene_AddVecGeoToVec3f = 0x80068330; // type:func -OnePointCutscene_Vec3fYaw = 0x800683B0; // type:func -OnePointCutscene_Vec3sToVec3f = 0x80068418; // type:func -OnePointCutscene_BgCheckLineTest = 0x8006845C; // type:func -OnePointCutscene_RaycastDown = 0x800684AC; // type:func -OnePointCutscene_SetCsCamPoints = 0x800684D4; // type:func -OnePointCutscene_SetInfo = 0x80068508; // type:func -OnePointCutscene_SetAsChild = 0x8006BC44; // type:func -OnePointCutscene_RemoveCamera = 0x8006BC8C; // type:func -OnePointCutscene_Init = 0x8006BD60; // type:func -OnePointCutscene_EndCutscene = 0x8006C018; // type:func -OnePointCutscene_Attention = 0x8006C074; // type:func -OnePointCutscene_AttentionSetSfx = 0x8006C1E0; // type:func -OnePointCutscene_EnableAttention = 0x8006C234; // type:func -OnePointCutscene_DisableAttention = 0x8006C244; // type:func -OnePointCutscene_CheckForCategory = 0x8006C258; // type:func -OnePointCutscene_Noop = 0x8006C2B8; // type:func -Map_SavePlayerInitialInfo = 0x8006C2D0; // type:func -Map_SetPaletteData = 0x8006C330; // type:func -Map_SetFloorPalettesData = 0x8006C3AC; // type:func -Map_InitData = 0x8006C564; // type:func -Map_InitRoomData = 0x8006C850; // type:func -Map_Destroy = 0x8006C92C; // type:func -Map_Init = 0x8006C9A0; // type:func -Minimap_DrawCompassIcons = 0x8006CC80; // type:func -Minimap_Draw = 0x8006D0C4; // type:func -Map_GetFloorTextIndexOffset = 0x8006DBEC; // type:func -Map_Update = 0x8006DC14; // type:func -Interface_ChangeHudVisibilityMode = 0x8006DF40; // type:func -Interface_RaiseButtonAlphas = 0x8006DF74; // type:func -Interface_DimButtonAlphas = 0x8006E0AC; // type:func -Interface_UpdateHudAlphas = 0x8006E180; // type:func -func_80083108 = 0x8006E9A0; // type:func -Interface_SetSceneRestrictions = 0x8006F8BC; // type:func -Gfx_TextureIA8 = 0x8006FA04; // type:func -Gfx_TextureI8 = 0x8006FC34; // type:func -Inventory_SwapAgeEquipment = 0x8006FE64; // type:func -Interface_InitHorsebackArchery = 0x800700E8; // type:func -func_800849EC = 0x80070130; // type:func -Interface_LoadItemIcon1 = 0x800701B0; // type:func -Interface_LoadItemIcon2 = 0x80070260; // type:func -func_80084BF4 = 0x80070310; // type:func -Item_Give = 0x8007042C; // type:func -Item_CheckObtainability = 0x80071AA8; // type:func -Inventory_DeleteItem = 0x80071FE8; // type:func -Inventory_ReplaceItem = 0x80072068; // type:func -Inventory_HasEmptyBottle = 0x8007211C; // type:func -Inventory_HasSpecificBottle = 0x8007218C; // type:func -Inventory_UpdateBottleItem = 0x80072204; // type:func -Inventory_ConsumeFairy = 0x8007229C; // type:func -func_80086D5C = 0x80072374; // type:func -Interface_LoadActionLabel = 0x800723AC; // type:func -Interface_SetDoAction = 0x80072510; // type:func -Interface_SetNaviCall = 0x80072598; // type:func -Interface_LoadActionLabelB = 0x8007269C; // type:func -Health_ChangeBy = 0x80072774; // type:func -Health_GiveHearts = 0x80072858; // type:func -Rupees_ChangeBy = 0x80072884; // type:func -Inventory_ChangeAmmo = 0x800728AC; // type:func -Magic_Fill = 0x80072BB8; // type:func -Magic_Reset = 0x80072C00; // type:func -Magic_RequestChange = 0x80072C40; // type:func -Magic_Update = 0x80072EF8; // type:func -Magic_DrawMeter = 0x800737A4; // type:func -Interface_SetSubTimer = 0x80073FA0; // type:func -Interface_SetSubTimerToFinalSecond = 0x80073FF0; // type:func -Interface_SetTimer = 0x80074034; // type:func -Interface_DrawActionLabel = 0x80074084; // type:func -Interface_DrawItemButtons = 0x8007416C; // type:func -Interface_DrawItemIconTexture = 0x80074F4C; // type:func -Interface_DrawAmmoCount = 0x800750F4; // type:func -Interface_DrawActionButton = 0x80075594; // type:func -Interface_InitVertices = 0x80075778; // type:func -func_8008A8B8 = 0x80075C38; // type:func -func_8008A994 = 0x80075D18; // type:func -Interface_Draw = 0x80075D60; // type:func -Interface_Update = 0x80078904; // type:func -Path_GetByIndex = 0x80079610; // type:func -Path_OrientAndGetDistSq = 0x80079654; // type:func -Path_CopyLastPoint = 0x80079740; // type:func -FrameAdvance_Init = 0x800797E0; // type:func -FrameAdvance_Update = 0x800797F0; // type:func -Player_SetBootData = 0x80079890; // type:func -Player_InBlockingCsMode = 0x80079A1C; // type:func -Player_InCsMode = 0x80079ACC; // type:func -func_8008E9C4 = 0x80079B08; // type:func -Player_IsChildWithHylianShield = 0x80079B18; // type:func -Player_ActionToModelGroup = 0x80079B40; // type:func -Player_SetModelsForHoldingShield = 0x80079B8C; // type:func -Player_SetModels = 0x80079C78; // type:func -Player_SetModelGroup = 0x80079D50; // type:func -func_8008EC70 = 0x80079DBC; // type:func -Player_SetEquipmentData = 0x80079DF4; // type:func -Player_UpdateBottleHeld = 0x80079EE4; // type:func -func_8008EDF0 = 0x80079F38; // type:func -func_8008EE08 = 0x80079F54; // type:func -func_8008EEAC = 0x80079FF8; // type:func -func_8008EF30 = 0x8007A07C; // type:func -func_8008EF44 = 0x8007A094; // type:func -Player_IsBurningStickInRange = 0x8007A0B0; // type:func -Player_GetStrength = 0x8007A188; // type:func -Player_GetMask = 0x8007A1D4; // type:func -Player_UnsetMask = 0x8007A1E4; // type:func -Player_HasMirrorShieldEquipped = 0x8007A1F4; // type:func -Player_HasMirrorShieldSetToDraw = 0x8007A20C; // type:func -Player_ActionToMagicSpell = 0x8007A238; // type:func -Player_HoldsHookshot = 0x8007A264; // type:func -func_8008F128 = 0x8007A288; // type:func -Player_ActionToMeleeWeapon = 0x8007A2BC; // type:func -Player_GetMeleeWeaponHeld = 0x8007A2E4; // type:func -Player_HoldsTwoHandedWeapon = 0x8007A308; // type:func -Player_HoldsBrokenKnife = 0x8007A334; // type:func -Player_ActionToBottle = 0x8007A38C; // type:func -Player_GetBottleHeld = 0x8007A3B8; // type:func -Player_ActionToExplosive = 0x8007A3D8; // type:func -Player_GetExplosiveHeld = 0x8007A404; // type:func -func_8008F2BC = 0x8007A424; // type:func -Player_GetEnvironmentalHazard = 0x8007A460; // type:func -Player_DrawImpl = 0x8007A5D8; // type:func -func_8008F87C = 0x8007A984; // type:func -Player_OverrideLimbDrawGameplayCommon = 0x8007ADD0; // type:func -Player_OverrideLimbDrawGameplayDefault = 0x8007B124; // type:func -Player_OverrideLimbDrawGameplayFirstPerson = 0x8007B410; // type:func -Player_OverrideLimbDrawGameplayCrawling = 0x8007B560; // type:func -func_80090480 = 0x8007B5A4; // type:func -Player_UpdateShieldCollider = 0x8007B72C; // type:func -func_800906D4 = 0x8007B800; // type:func -Player_DrawGetItemImpl = 0x8007B910; // type:func -Player_DrawGetItem = 0x8007BAA4; // type:func -func_80090A28 = 0x8007BB1C; // type:func -Player_DrawHookshotReticle = 0x8007BBF0; // type:func -Player_PostLimbDrawGameplay = 0x8007BDC4; // type:func -Player_InitPauseDrawData = 0x8007C72C; // type:func -Player_OverrideLimbDrawPause = 0x8007C858; // type:func -Player_DrawPauseImpl = 0x8007C9FC; // type:func -Player_DrawPause = 0x8007D0E4; // type:func -func_80092320 = 0x8007D2C0; // type:func -PreNMI_Update = 0x8007D2D4; // type:func -PreNMI_Draw = 0x8007D31C; // type:func -PreNMI_Main = 0x8007D3D4; // type:func -PreNMI_Destroy = 0x8007D408; // type:func -PreNMI_Init = 0x8007D414; // type:func -Quake_AddVecGeoToVec3f = 0x8007D460; // type:func -Quake_UpdateShakeInfo = 0x8007D4E0; // type:func -Quake_CallbackType1 = 0x8007D708; // type:func -Quake_CallbackType5 = 0x8007D790; // type:func -Quake_CallbackType6 = 0x8007D804; // type:func -Quake_CallbackType3 = 0x8007D888; // type:func -Quake_CallbackType2 = 0x8007D920; // type:func -Quake_CallbackType4 = 0x8007D990; // type:func -Quake_GetFreeIndex = 0x8007DA28; // type:func -Quake_RequestImpl = 0x8007DA8C; // type:func -Quake_Remove = 0x8007DB44; // type:func -Quake_GetRequest = 0x8007DB6C; // type:func -Quake_SetValue = 0x8007DBC8; // type:func -Quake_SetSpeed = 0x8007DCF8; // type:func -Quake_SetDuration = 0x8007DD40; // type:func -Quake_GetTimeLeft = 0x8007DD90; // type:func -Quake_SetPerturbations = 0x8007DDC8; // type:func -Quake_SetOrientation = 0x8007DE30; // type:func -Quake_Init = 0x8007DE98; // type:func -Quake_Request = 0x8007DEEC; // type:func -Quake_RemoveRequest = 0x8007DF10; // type:func -Quake_Update = 0x8007DF58; // type:func -Gfx_SetFog = 0x8007E2D0; // type:func -Gfx_SetFogWithSync = 0x8007E44C; // type:func -Gfx_SetFog2 = 0x8007E5DC; // type:func -Gfx_SetupDLImpl = 0x8007E610; // type:func -Gfx_SetupDL = 0x8007E64C; // type:func -Gfx_SetupDLAtPtr = 0x8007E66C; // type:func -Gfx_SetupDL_57 = 0x8007E698; // type:func -Gfx_SetupDL_57b = 0x8007E6C0; // type:func -Gfx_SetupDL_52NoCD = 0x8007E6E8; // type:func -Gfx_SetupDL_58Opa = 0x8007E72C; // type:func -Gfx_SetupDL_57Opa = 0x8007E754; // type:func -Gfx_SetupDL_50Opa = 0x8007E77C; // type:func -Gfx_SetupDL_51Opa = 0x8007E7A4; // type:func -Gfx_SetupDL_52Xlu = 0x8007E7CC; // type:func -Gfx_SetupDL_53Opa = 0x8007E7F4; // type:func -Gfx_SetupDL_54Opa = 0x8007E81C; // type:func -Gfx_SetupDL_55Xlu = 0x8007E844; // type:func -Gfx_SetupDL_26Opa = 0x8007E86C; // type:func -Gfx_SetupDL_25Xlu2 = 0x8007E894; // type:func -func_80093C80 = 0x8007E8BC; // type:func -Gfx_SetupDL_25Opa = 0x8007E928; // type:func -Gfx_SetupDL_25Xlu = 0x8007E950; // type:func -Gfx_SetupDL_31Opa = 0x8007E978; // type:func -Gfx_SetupDL_32Opa = 0x8007E9A0; // type:func -Gfx_SetupDL_33Opa = 0x8007E9C8; // type:func -Gfx_SetupDL_64 = 0x8007E9F0; // type:func -Gfx_SetupDL_34 = 0x8007EA18; // type:func -Gfx_SetupDL_34Opa = 0x8007EA40; // type:func -Gfx_SetupDL_35Opa = 0x8007EA6C; // type:func -Gfx_SetupDL_44Xlu = 0x8007EA94; // type:func -Gfx_SetupDL_36Opa = 0x8007EABC; // type:func -Gfx_SetupDL_28 = 0x8007EAE4; // type:func -Gfx_SetupDL_28Opa = 0x8007EB0C; // type:func -Gfx_SetupDL_43Opa = 0x8007EB34; // type:func -Gfx_SetupDL_45Opa = 0x8007EB5C; // type:func -Gfx_SetupDL_46Overlay = 0x8007EB84; // type:func -Gfx_SetupDL_38Xlu = 0x8007EBAC; // type:func -Gfx_SetupDL_4Xlu = 0x8007EBD4; // type:func -Gfx_SetupDL_37Opa = 0x8007EBFC; // type:func -Gfx_SetupDL_2Opa = 0x8007EC24; // type:func -Gfx_SetupDL_39 = 0x8007EC4C; // type:func -Gfx_SetupDL_39Opa = 0x8007EC74; // type:func -Gfx_SetupDL_39Overlay = 0x8007ECA0; // type:func -Gfx_SetupDL_39Ptr = 0x8007ECCC; // type:func -Gfx_SetupDL_40Opa = 0x8007ECF8; // type:func -Gfx_SetupDL_41Opa = 0x8007ED20; // type:func -Gfx_SetupDL_47Xlu = 0x8007ED48; // type:func -Gfx_SetupDL_66 = 0x8007ED70; // type:func -Gfx_SetupDL_67 = 0x8007ED98; // type:func -Gfx_SetupDL_68NoCD = 0x8007EDC0; // type:func -Gfx_SetupDL_69NoCD = 0x8007EE04; // type:func -func_800947AC = 0x8007EE48; // type:func -Gfx_SetupDL_70 = 0x8007EE8C; // type:func -Gfx_SetupDL_20NoCD = 0x8007EEB4; // type:func -Gfx_SetupDL_42Opa = 0x8007EEF8; // type:func -Gfx_SetupDL_42Overlay = 0x8007EF20; // type:func -Gfx_SetupDL_48Opa = 0x8007EF48; // type:func -Gfx_SetupDL_49Xlu = 0x8007EF70; // type:func -Gfx_SetupDL_27Xlu = 0x8007EF98; // type:func -Gfx_SetupDL_60NoCDXlu = 0x8007EFC0; // type:func -Gfx_SetupDL_61Xlu = 0x8007F008; // type:func -Gfx_SetupDL_56Opa = 0x8007F030; // type:func -Gfx_SetupDL_56Ptr = 0x8007F058; // type:func -Gfx_SetupDL_59Opa = 0x8007F084; // type:func -Gfx_BranchTexScroll = 0x8007F0AC; // type:func -func_80094E54 = 0x8007F148; // type:func -func_80094E78 = 0x8007F16C; // type:func -Gfx_TexScroll = 0x8007F190; // type:func -Gfx_TwoTexScroll = 0x8007F214; // type:func -Gfx_TwoTexScrollEnvColor = 0x8007F334; // type:func -Gfx_EnvColor = 0x8007F494; // type:func -Gfx_SetupFrame = 0x8007F4EC; // type:func -func_80095974 = 0x8007FAEC; // type:func -func_80095AA0 = 0x8007FBD0; // type:func -Room_DrawNormal = 0x8007FBE8; // type:func -Room_DrawCullable = 0x8007FDD4; // type:func -Room_DecodeJpeg = 0x8008025C; // type:func -Room_DrawBackground2D = 0x800802E4; // type:func -Room_DrawImageSingle = 0x800805E0; // type:func -Room_GetImageMultiBgEntry = 0x80080990; // type:func -Room_DrawImageMulti = 0x80080A7C; // type:func -Room_DrawImage = 0x80080E48; // type:func -Room_Init = 0x80080EB0; // type:func -Room_SetupFirstRoom = 0x80080EC8; // type:func -Room_RequestNewRoom = 0x80081064; // type:func -Room_ProcessRoomRequest = 0x800811CC; // type:func -Room_Draw = 0x80081270; // type:func -Room_FinishRoomChange = 0x800812C0; // type:func -Sample_HandleStateChange = 0x80081360; // type:func -Sample_Draw = 0x80081394; // type:func -Sample_Main = 0x80081580; // type:func -Sample_Destroy = 0x800815AC; // type:func -Sample_SetupView = 0x800815B8; // type:func -Sample_LoadTitleStatic = 0x80081670; // type:func -Sample_Init = 0x800816D0; // type:func -Inventory_ChangeEquipment = 0x80081760; // type:func -Inventory_DeleteEquipment = 0x800817B8; // type:func -Inventory_ChangeUpgrade = 0x800818C4; // type:func -Object_SpawnPersistent = 0x80081920; // type:func -Object_InitContext = 0x80081A04; // type:func -Object_UpdateEntries = 0x80081B60; // type:func -Object_GetSlot = 0x80081C58; // type:func -Object_IsLoaded = 0x80081CB8; // type:func -func_800981B8 = 0x80081CE8; // type:func -func_800982FC = 0x80081D70; // type:func -Scene_ExecuteCommands = 0x80081DD0; // type:func -Scene_CommandPlayerEntryList = 0x80081E54; // type:func -Scene_CommandActorEntryList = 0x80081F30; // type:func -Scene_CommandUnused2 = 0x80081F88; // type:func -Scene_CommandCollisionHeader = 0x80081FD0; // type:func -Scene_CommandRoomList = 0x80082100; // type:func -Scene_CommandSpawnList = 0x80082158; // type:func -Scene_CommandSpecialFiles = 0x800821A0; // type:func -Scene_CommandRoomBehavior = 0x80082268; // type:func -Scene_CommandRoomShape = 0x800822C0; // type:func -Scene_CommandObjectList = 0x80082308; // type:func -Scene_CommandLightList = 0x800824BC; // type:func -Scene_CommandPathList = 0x8008256C; // type:func -Scene_CommandTransitionActorEntryList = 0x800825B4; // type:func -Scene_ResetTransitionActorList = 0x8008260C; // type:func -Scene_CommandLightSettingsList = 0x8008261C; // type:func -Scene_CommandSkyboxSettings = 0x80082674; // type:func -Scene_CommandSkyboxDisables = 0x800826B8; // type:func -Scene_CommandTimeSettings = 0x800826E0; // type:func -Scene_CommandWindSettings = 0x800829F4; // type:func -Scene_CommandExitList = 0x80082A58; // type:func -Scene_CommandUndefined9 = 0x80082AA0; // type:func -Scene_CommandSoundSettings = 0x80082AB0; // type:func -Scene_CommandEchoSettings = 0x80082AFC; // type:func -Scene_CommandAlternateHeaderList = 0x80082B14; // type:func -Scene_CommandCutsceneData = 0x80082C10; // type:func -Scene_CommandMiscSettings = 0x80082C50; // type:func -Scene_SetTransitionForNextEntrance = 0x80082D14; // type:func -Scene_Draw = 0x80082DD0; // type:func -Scene_DrawConfigDefault = 0x80082E34; // type:func -Scene_DrawConfigDekuTree = 0x80082E74; // type:func -Scene_DrawConfigDekuTreeBoss = 0x80082FBC; // type:func -Scene_DrawConfigDodongosCavern = 0x800830A0; // type:func -Scene_DrawConfigTempleOfTime = 0x800833C8; // type:func -Scene_DrawConfigGrottos = 0x80083C2C; // type:func -Scene_DrawConfigChamberOfTheSages = 0x80083F2C; // type:func -Scene_DrawConfigGreatFairyFountain = 0x80084134; // type:func -Scene_DrawConfigGraveExitLightShining = 0x800842C4; // type:func -Scene_DrawConfigFairysFountain = 0x8008439C; // type:func -Scene_DrawConfigShadowTempleAndWell = 0x800844F8; // type:func -Scene_DrawConfigThievesHideout = 0x80084684; // type:func -Scene_DrawConfigWaterTemple = 0x8008476C; // type:func -Scene_DrawConfigWaterTempleBoss = 0x80084ED4; // type:func -Scene_DrawConfigShootingGallery = 0x80084FF0; // type:func -Scene_DrawConfigCastleCourtyardGuards = 0x800850A4; // type:func -Scene_DrawConfigOutsideGanonsCastle = 0x8008521C; // type:func -func_8009BEEC = 0x80085488; // type:func -Scene_DrawConfigGanonsTowerCollapseExterior = 0x80085648; // type:func -Scene_DrawConfigIceCavern = 0x80085918; // type:func -Scene_DrawConfigRoyalFamilysTomb = 0x80085AFC; // type:func -Scene_DrawConfigLakesideLaboratory = 0x80085D68; // type:func -Scene_DrawConfigCalmWater = 0x80085F40; // type:func -Scene_DrawConfigGerudoTrainingGround = 0x80086044; // type:func -Gfx_TwoTexScrollPrimColor = 0x80086228; // type:func -Scene_DrawConfigFishingPond = 0x80086388; // type:func -Scene_DrawConfigBombchuBowlingAlley = 0x800864B0; // type:func -Scene_DrawConfigLonLonBuildings = 0x800866A8; // type:func -Scene_DrawConfigMarketGuardHouse = 0x80086778; // type:func -Scene_DrawConfigPotionShopGranny = 0x800868AC; // type:func -Scene_DrawConfigForestTemple = 0x80086A28; // type:func -Scene_DrawConfigSpiritTemple = 0x80086C0C; // type:func -Scene_DrawConfigHyruleField = 0x80086C7C; // type:func -Scene_DrawConfigKakarikoVillage = 0x80086F2C; // type:func -Scene_DrawConfigZorasRiver = 0x80086FFC; // type:func -Scene_DrawConfigKokiriForest = 0x8008720C; // type:func -Scene_DrawConfigLakeHylia = 0x80087648; // type:func -Scene_DrawConfigZorasDomain = 0x80087804; // type:func -Scene_DrawConfigZorasFountain = 0x80087960; // type:func -Scene_DrawConfigGerudoValley = 0x80087B48; // type:func -Scene_DrawConfigLostWoods = 0x80087E8C; // type:func -Scene_DrawConfigDesertColossus = 0x80088070; // type:func -Scene_DrawConfigGerudosFortress = 0x8008817C; // type:func -Scene_DrawConfigHauntedWasteland = 0x800881EC; // type:func -Scene_DrawConfigHyruleCastle = 0x80088358; // type:func -Scene_DrawConfigDeathMountainTrail = 0x800884F0; // type:func -Scene_DrawConfigDeathMountainCrater = 0x800886AC; // type:func -Scene_DrawConfigGoronCity = 0x80088860; // type:func -Scene_DrawConfigLonLonRanch = 0x800889C8; // type:func -Scene_DrawConfigFireTemple = 0x80088A98; // type:func -Scene_DrawConfigJabuJabu = 0x80088C2C; // type:func -Scene_DrawConfigInsideGanonsCastle = 0x800890C8; // type:func -Scene_DrawConfigInsideGanonsCastleCollapse = 0x800892C0; // type:func -Scene_DrawConfigGanonsTowerCollapseInterior = 0x800892E0; // type:func -Scene_DrawConfigBesitu = 0x80089300; // type:func -SkelAnime_DrawLimbLod = 0x80089440; // type:func -SkelAnime_DrawLod = 0x8008967C; // type:func -SkelAnime_DrawFlexLimbLod = 0x8008986C; // type:func -SkelAnime_DrawFlexLod = 0x80089AF4; // type:func -SkelAnime_DrawLimbOpa = 0x80089D6C; // type:func -SkelAnime_DrawOpa = 0x80089F8C; // type:func -SkelAnime_DrawFlexLimbOpa = 0x8008A16C; // type:func -SkelAnime_DrawFlexOpa = 0x8008A3DC; // type:func -SkelAnime_GetFrameData = 0x8008A640; // type:func -Animation_GetLength = 0x8008A7A8; // type:func -Animation_GetLastFrame = 0x8008A7E4; // type:func -SkelAnime_DrawLimb = 0x8008A82C; // type:func -SkelAnime_Draw = 0x8008AA64; // type:func -SkelAnime_DrawFlexLimb = 0x8008AC58; // type:func -SkelAnime_DrawFlex = 0x8008AEDC; // type:func -SkelAnime_GetFrameDataLegacy = 0x8008B144; // type:func -Animation_GetLimbCountLegacy = 0x8008B548; // type:func -Animation_GetLengthLegacy = 0x8008B584; // type:func -Animation_GetLastFrameLegacy = 0x8008B5C0; // type:func -SkelAnime_InterpFrameTable = 0x8008B608; // type:func -AnimTaskQueue_Reset = 0x8008BA88; // type:func -AnimTaskQueue_SetNextGroup = 0x8008BA94; // type:func -AnimTaskQueue_DisableTransformTasksForGroup = 0x8008BAB4; // type:func -AnimTaskQueue_NewTask = 0x8008BADC; // type:func -AnimTaskQueue_AddLoadPlayerFrame = 0x8008BB14; // type:func -AnimTaskQueue_AddCopy = 0x8008BC10; // type:func -AnimTaskQueue_AddInterp = 0x8008BC78; // type:func -AnimTaskQueue_AddCopyUsingMap = 0x8008BCE8; // type:func -AnimTaskQueue_AddCopyUsingMapInverted = 0x8008BD58; // type:func -AnimTaskQueue_AddActorMove = 0x8008BDC8; // type:func -AnimTask_LoadPlayerFrame = 0x8008BE24; // type:func -AnimTask_Copy = 0x8008BE54; // type:func -AnimTask_Interp = 0x8008BEC4; // type:func -AnimTask_CopyUsingMap = 0x8008BF20; // type:func -AnimTask_CopyUsingMapInverted = 0x8008BFA0; // type:func -AnimTask_ActorMove = 0x8008C024; // type:func -AnimTaskQueue_Update = 0x8008C0B8; // type:func -SkelAnime_InitLink = 0x8008C158; // type:func -LinkAnimation_SetUpdateFunction = 0x8008C2BC; // type:func -LinkAnimation_Update = 0x8008C2F4; // type:func -LinkAnimation_Morph = 0x8008C318; // type:func -LinkAnimation_AnimateFrame = 0x8008C3D4; // type:func -LinkAnimation_Loop = 0x8008C4B0; // type:func -LinkAnimation_Once = 0x8008C550; // type:func -Animation_SetMorph = 0x8008C62C; // type:func -LinkAnimation_Change = 0x8008C650; // type:func -LinkAnimation_PlayOnce = 0x8008C7C8; // type:func -LinkAnimation_PlayOnceSetSpeed = 0x8008C828; // type:func -LinkAnimation_PlayLoop = 0x8008C88C; // type:func -LinkAnimation_PlayLoopSetSpeed = 0x8008C8E8; // type:func -LinkAnimation_CopyJointToMorph = 0x8008C948; // type:func -LinkAnimation_CopyMorphToJoint = 0x8008C978; // type:func -LinkAnimation_LoadToMorph = 0x8008C9A8; // type:func -LinkAnimation_LoadToJoint = 0x8008C9EC; // type:func -LinkAnimation_InterpJointMorph = 0x8008CA30; // type:func -LinkAnimation_BlendToJoint = 0x8008CA68; // type:func -LinkAnimation_BlendToMorph = 0x8008CB08; // type:func -LinkAnimation_EndLoop = 0x8008CBA8; // type:func -Animation_OnFrameImpl = 0x8008CBCC; // type:func -LinkAnimation_OnFrame = 0x8008CC84; // type:func -SkelAnime_Init = 0x8008CCD4; // type:func -SkelAnime_InitFlex = 0x8008CDD8; // type:func -SkelAnime_InitSkin = 0x8008CEE4; // type:func -SkelAnime_SetUpdate = 0x8008CFC4; // type:func -SkelAnime_Update = 0x8008D010; // type:func -SkelAnime_Morph = 0x8008D034; // type:func -SkelAnime_MorphTaper = 0x8008D0F4; // type:func -SkelAnime_AnimateFrame = 0x8008D27C; // type:func -SkelAnime_LoopFull = 0x8008D3C4; // type:func -SkelAnime_LoopPartial = 0x8008D464; // type:func -SkelAnime_Once = 0x8008D50C; // type:func -Animation_ChangeImpl = 0x8008D610; // type:func -Animation_Change = 0x8008D7CC; // type:func -Animation_PlayOnce = 0x8008D814; // type:func -Animation_MorphToPlayOnce = 0x8008D86C; // type:func -Animation_PlayOnceSetSpeed = 0x8008D8C8; // type:func -Animation_PlayLoop = 0x8008D924; // type:func -Animation_MorphToLoop = 0x8008D978; // type:func -Animation_PlayLoopSetSpeed = 0x8008D9B0; // type:func -Animation_EndLoop = 0x8008DA08; // type:func -Animation_Reverse = 0x8008DA34; // type:func -SkelAnime_CopyFrameTableTrue = 0x8008DA58; // type:func -SkelAnime_CopyFrameTableFalse = 0x8008DAC0; // type:func -SkelAnime_UpdateTranslation = 0x8008DB2C; // type:func -Animation_OnFrame = 0x8008DCF8; // type:func -SkelAnime_Free = 0x8008DD20; // type:func -SkelAnime_CopyFrameTable = 0x8008DD6C; // type:func -Skin_UpdateVertices = 0x8008DDC0; // type:func -Skin_ApplyLimbModifications = 0x8008DF8C; // type:func -Skin_DrawAnimatedLimb = 0x8008E3FC; // type:func -Skin_DrawLimb = 0x8008E4D8; // type:func -Skin_DrawImpl = 0x8008E5F8; // type:func -func_800A6330 = 0x8008E824; // type:func -func_800A6360 = 0x8008E854; // type:func -func_800A6394 = 0x8008E888; // type:func -func_800A63CC = 0x8008E8C0; // type:func -Skin_GetLimbPos = 0x8008E8FC; // type:func -Skin_InitAnimatedLimb = 0x8008E960; // type:func -Skin_Init = 0x8008EB3C; // type:func -Skin_Free = 0x8008ED0C; // type:func -func_800A698C = 0x8008EDE0; // type:func -Skin_ApplyAnimTransformations = 0x8008EF1C; // type:func -SkinMatrix_Vec3fMtxFMultXYZW = 0x8008F270; // type:func -SkinMatrix_Vec3fMtxFMultXYZ = 0x8008F358; // type:func -SkinMatrix_MtxFMtxFMult = 0x8008F408; // type:func -SkinMatrix_GetClear = 0x8008F764; // type:func -SkinMatrix_Clear = 0x8008F778; // type:func -SkinMatrix_MtxFCopy = 0x8008F7D0; // type:func -SkinMatrix_Invert = 0x8008F858; // type:func -SkinMatrix_SetScale = 0x8008FAF8; // type:func -SkinMatrix_SetRotateZYX = 0x8008FB5C; // type:func -SkinMatrix_SetRotateYXZ = 0x8008FCEC; // type:func -SkinMatrix_SetTranslate = 0x8008FE7C; // type:func -SkinMatrix_SetTranslateRotateZYXScale = 0x8008FEE0; // type:func -SkinMatrix_SetTranslateRotateYXZScale = 0x8008FF64; // type:func -SkinMatrix_SetTranslateRotateZYX = 0x8008FFE8; // type:func -SkinMatrix_Vec3fToVec3s = 0x80090048; // type:func -SkinMatrix_Vec3sToVec3f = 0x8009008C; // type:func -SkinMatrix_MtxFToMtx = 0x800900D0; // type:func -SkinMatrix_MtxFToNewMtx = 0x800902E8; // type:func -SkinMatrix_SetRotateAxis = 0x80090330; // type:func -func_800A8030 = 0x800904A0; // type:func -Sram_InitNewSave = 0x80090610; // type:func -Sram_InitDebugSave = 0x8009073C; // type:func -Sram_OpenSave = 0x800908FC; // type:func -Sram_WriteSave = 0x80090C40; // type:func -Sram_VerifyAndLoadAllSaves = 0x80090D8C; // type:func -Sram_InitSave = 0x80091258; // type:func -Sram_EraseSave = 0x800914F8; // type:func -Sram_CopySave = 0x80091610; // type:func -Sram_WriteSramHeader = 0x80091800; // type:func -Sram_InitSram = 0x80091834; // type:func -Sram_Alloc = 0x80091904; // type:func -Sram_Init = 0x80091934; // type:func -SsSram_Init = 0x80091950; // type:func -SsSram_Dma = 0x80091A28; // type:func -SsSram_ReadWrite = 0x80091AB4; // type:func -Rumble_Update = 0x80091B20; // type:func -Rumble_Override = 0x80091B5C; // type:func -Rumble_Request = 0x80091C0C; // type:func -Rumble_Init = 0x80091CDC; // type:func -Rumble_Destroy = 0x80091D18; // type:func -Rumble_Controller1HasRumblePak = 0x80091D70; // type:func -Rumble_Reset = 0x80091D88; // type:func -Rumble_ClearRequests = 0x80091D9C; // type:func -Rumble_SetUpdateEnabled = 0x80091DAC; // type:func -View_ViewportToVp = 0x80091DC0; // type:func -View_New = 0x80091E2C; // type:func -View_Free = 0x80091E78; // type:func -View_Init = 0x80091E98; // type:func -View_LookAt = 0x80091F58; // type:func -View_LookAtUnsafe = 0x80091FF4; // type:func -View_SetScale = 0x80092044; // type:func -View_GetScale = 0x80092064; // type:func -View_SetPerspective = 0x80092074; // type:func -View_GetPerspective = 0x800920A4; // type:func -View_SetOrtho = 0x800920C4; // type:func -View_GetOrtho = 0x80092100; // type:func -View_SetViewport = 0x80092120; // type:func -View_GetViewport = 0x80092154; // type:func -View_ApplyLetterbox = 0x8009217C; // type:func -View_SetDistortionOrientation = 0x800922D4; // type:func -View_SetDistortionScale = 0x800922F8; // type:func -View_SetDistortionSpeed = 0x8009231C; // type:func -View_InitDistortion = 0x80092330; // type:func -View_ClearDistortion = 0x80092394; // type:func -View_SetDistortion = 0x800923C8; // type:func -View_StepDistortion = 0x8009241C; // type:func -View_Apply = 0x800925D4; // type:func -View_ApplyPerspective = 0x80092620; // type:func -View_ApplyOrtho = 0x80092914; // type:func -View_ApplyOrthoToOverlay = 0x80092AD0; // type:func -View_ApplyPerspectiveToOverlay = 0x80092D10; // type:func -View_UpdateViewingMatrix = 0x8009305C; // type:func -View_ApplyTo = 0x800930C8; // type:func -ViMode_LogPrint = 0x800934F0; // type:func -ViMode_Configure = 0x800934FC; // type:func -ViMode_Save = 0x80093AA4; // type:func -ViMode_Load = 0x80093B84; // type:func -ViMode_Init = 0x80093C0C; // type:func -ViMode_Destroy = 0x80093C74; // type:func -ViMode_ConfigureFeatures = 0x80093C80; // type:func -ViMode_Update = 0x80093CE4; // type:func -VisCvg_Init = 0x80094060; // type:func -VisCvg_Destroy = 0x80094084; // type:func -VisCvg_Draw = 0x80094090; // type:func -VisMono_Init = 0x80094200; // type:func -VisMono_Destroy = 0x80094250; // type:func -VisMono_DesaturateTLUT = 0x80094274; // type:func -VisMono_DesaturateDList = 0x80094588; // type:func -VisMono_Draw = 0x80094804; // type:func -VisMono_DrawOld = 0x800949F0; // type:func -VisZBuf_Init = 0x80094A60; // type:func -VisZBuf_Destroy = 0x80094A94; // type:func -VisZBuf_Draw = 0x80094AA0; // type:func -Skybox_CalculateFace256 = 0x80094D50; // type:func -Skybox_CalculateFace128 = 0x80095464; // type:func -Skybox_Calculate256 = 0x8009618C; // type:func -Skybox_Calculate128 = 0x8009633C; // type:func -Skybox_Setup = 0x800963DC; // type:func -Skybox_Init = 0x80097530; // type:func -Skybox_UpdateMatrix = 0x80097640; // type:func -Skybox_Draw = 0x800976C8; // type:func -Skybox_Update = 0x80097D2C; // type:func -PlayerCall_InitFuncPtrs = 0x80097D40; // type:func -PlayerCall_Init = 0x80097DA8; // type:func -PlayerCall_Destroy = 0x80097DF0; // type:func -PlayerCall_Update = 0x80097E30; // type:func -PlayerCall_Draw = 0x80097E70; // type:func -TransitionTile_InitGraphics = 0x80097EB0; // type:func -TransitionTile_InitVtxData = 0x80098278; // type:func -TransitionTile_Destroy = 0x80098338; // type:func -TransitionTile_Init = 0x800983C4; // type:func -TransitionTile_SetVtx = 0x8009853C; // type:func -TransitionTile_Draw = 0x80098650; // type:func -TransitionTile_Suck = 0x8009877C; // type:func -TransitionTile_Update = 0x800988B0; // type:func -func_800B23F0 = 0x800988BC; // type:func -TransitionTriforce_Start = 0x800988D0; // type:func -TransitionTriforce_Init = 0x80098908; // type:func -TransitionTriforce_Destroy = 0x800989A8; // type:func -TransitionTriforce_Update = 0x800989B4; // type:func -TransitionTriforce_SetColor = 0x80098AC8; // type:func -TransitionTriforce_SetType = 0x80098AD4; // type:func -TransitionTriforce_SetState = 0x80098AE0; // type:func -TransitionTriforce_Draw = 0x80098AEC; // type:func -TransitionTriforce_IsDone = 0x80098DF0; // type:func -TransitionWipe_Start = 0x80098E80; // type:func -TransitionWipe_Init = 0x80098F38; // type:func -TransitionWipe_Destroy = 0x80098F64; // type:func -TransitionWipe_Update = 0x80098F70; // type:func -TransitionWipe_Draw = 0x80099050; // type:func -TransitionWipe_IsDone = 0x8009928C; // type:func -TransitionWipe_SetType = 0x80099298; // type:func -TransitionWipe_SetColor = 0x800992D8; // type:func -TransitionWipe_SetUnkColor = 0x800992E4; // type:func -TransitionCircle_Start = 0x800992F0; // type:func -TransitionCircle_Init = 0x800994DC; // type:func -TransitionCircle_Destroy = 0x80099508; // type:func -TransitionCircle_Update = 0x80099514; // type:func -TransitionCircle_Draw = 0x80099698; // type:func -TransitionCircle_IsDone = 0x80099934; // type:func -TransitionCircle_SetType = 0x80099940; // type:func -TransitionCircle_SetColor = 0x80099998; // type:func -TransitionCircle_SetUnkColor = 0x800999A4; // type:func -TransitionFade_Start = 0x800999B0; // type:func -TransitionFade_Init = 0x80099A0C; // type:func -TransitionFade_Destroy = 0x80099A38; // type:func -TransitionFade_Update = 0x80099A44; // type:func -TransitionFade_Draw = 0x80099BD4; // type:func -TransitionFade_IsDone = 0x80099CA0; // type:func -TransitionFade_SetColor = 0x80099CAC; // type:func -TransitionFade_SetType = 0x80099CB8; // type:func -Letterbox_SetSizeTarget = 0x80099D10; // type:func -Letterbox_GetSizeTarget = 0x80099D20; // type:func -Letterbox_SetSize = 0x80099D30; // type:func -Letterbox_GetSize = 0x80099D40; // type:func -Letterbox_Init = 0x80099D50; // type:func -Letterbox_Destroy = 0x80099D70; // type:func -Letterbox_Update = 0x80099D80; // type:func -func_800BB0A0 = 0x80099E80; // type:func -func_800BB2B4 = 0x8009A094; // type:func -KaleidoManager_LoadOvl = 0x8009A350; // type:func -KaleidoManager_ClearOvl = 0x8009A3AC; // type:func -KaleidoManager_Init = 0x8009A3FC; // type:func -KaleidoManager_Destroy = 0x8009A46C; // type:func -KaleidoManager_GetRamAddr = 0x8009A4AC; // type:func -KaleidoScopeCall_LoadPlayer = 0x8009A580; // type:func -KaleidoScopeCall_Init = 0x8009A5CC; // type:func -KaleidoScopeCall_Destroy = 0x8009A618; // type:func -KaleidoScopeCall_Update = 0x8009A638; // type:func -KaleidoScopeCall_Draw = 0x8009A7D8; // type:func -Play_RequestViewpointBgCam = 0x8009A860; // type:func -Play_SetViewpoint = 0x8009A8A0; // type:func -Play_CheckViewpoint = 0x8009A94C; // type:func -Play_SetShopBrowsingViewpoint = 0x8009A974; // type:func -Play_SetupTransition = 0x8009A9A0; // type:func -func_800BC88C = 0x8009AC4C; // type:func -Play_SetFog = 0x8009AC64; // type:func -Play_Destroy = 0x8009ACB0; // type:func -Play_Init = 0x8009AE40; // type:func -Play_Update = 0x8009B60C; // type:func -Play_DrawOverlayElements = 0x8009C700; // type:func -Play_Draw = 0x8009C798; // type:func -Play_Main = 0x8009D1B8; // type:func -Play_InCsMode = 0x8009D1F8; // type:func -func_800BFCB8 = 0x8009D22C; // type:func -Play_LoadFile = 0x8009D3D8; // type:func -Play_LoadFileFromDiskDrive = 0x8009D434; // type:func -Play_InitEnvironment = 0x8009D490; // type:func -Play_InitScene = 0x8009D4D8; // type:func -Play_SpawnScene = 0x8009D5DC; // type:func -Play_GetScreenPos = 0x8009D71C; // type:func -Play_CreateSubCamera = 0x8009D7E0; // type:func -Play_GetActiveCamId = 0x8009D890; // type:func -Play_ChangeCameraStatus = 0x8009D89C; // type:func -Play_ClearCamera = 0x8009D90C; // type:func -Play_ClearAllSubCameras = 0x8009D974; // type:func -Play_GetCamera = 0x8009D9E0; // type:func -Play_SetCameraAtEye = 0x8009DA18; // type:func -Play_SetCameraAtEyeUp = 0x8009DB28; // type:func -Play_SetCameraFov = 0x8009DC4C; // type:func -Play_SetCameraRoll = 0x8009DC94; // type:func -Play_CopyCamera = 0x8009DCE0; // type:func -Play_InitCameraDataUsingPlayer = 0x8009DD5C; // type:func -Play_RequestCameraSetting = 0x8009DDCC; // type:func -Play_ReturnToMainCam = 0x8009DE08; // type:func -Play_GetCameraUID = 0x8009DEE4; // type:func -func_800C09D8 = 0x8009DF18; // type:func -Play_SaveSceneFlags = 0x8009DF84; // type:func -Play_SetRespawnData = 0x8009DFCC; // type:func -Play_SetupRespawnPoint = 0x8009E03C; // type:func -Play_TriggerVoidOut = 0x8009E0A8; // type:func -Play_LoadToLastEntrance = 0x8009E100; // type:func -Play_TriggerRespawn = 0x8009E1A0; // type:func -Play_CamIsNotFixed = 0x8009E1D4; // type:func -FrameAdvance_IsEnabled = 0x8009E244; // type:func -func_800C0D34 = 0x8009E254; // type:func -func_800C0DB4 = 0x8009E2D4; // type:func -PreRender_SetValuesSave = 0x8009E390; // type:func -PreRender_Init = 0x8009E3CC; // type:func -PreRender_SetValues = 0x8009E400; // type:func -PreRender_Destroy = 0x8009E434; // type:func -PreRender_CopyImage = 0x8009E458; // type:func -PreRender_CopyImageRegionImpl = 0x8009E764; // type:func -func_800C170C = 0x8009EBFC; // type:func -func_800C1AE8 = 0x8009EFB8; // type:func -PreRender_CoverageRgba16ToI8 = 0x8009EFF4; // type:func -PreRender_SaveZBuffer = 0x8009F344; // type:func -PreRender_SaveFramebuffer = 0x8009F37C; // type:func -PreRender_FetchFbufCoverage = 0x8009F3B4; // type:func -PreRender_DrawCoverage = 0x8009F4C8; // type:func -PreRender_RestoreZBuffer = 0x8009F50C; // type:func -func_800C213C = 0x8009F530; // type:func -PreRender_RestoreFramebuffer = 0x8009F884; // type:func -PreRender_CopyImageRegion = 0x8009F8A8; // type:func -PreRender_AntiAliasFilter = 0x8009F8C8; // type:func -PreRender_DivotFilter = 0x800A0388; // type:func -PreRender_ApplyFilters = 0x800A04DC; // type:func -THGA_Init = 0x800A05B0; // type:func -THGA_Destroy = 0x800A05D0; // type:func -THGA_IsCrash = 0x800A05F0; // type:func -THGA_Reset = 0x800A0610; // type:func -THGA_GetRemaining = 0x800A0630; // type:func -THGA_GetHead = 0x800A0650; // type:func -THGA_SetHead = 0x800A0670; // type:func -THGA_GetTail = 0x800A0690; // type:func -THGA_AllocDisplayList = 0x800A06B0; // type:func -THGA_AllocGfx = 0x800A06D4; // type:func -THGA_AllocGfx2 = 0x800A06F4; // type:func -THGA_AllocTail = 0x800A0714; // type:func -THGA_AllocMtxArray = 0x800A0734; // type:func -THGA_AllocMtx = 0x800A0758; // type:func -THGA_AllocVtxArray = 0x800A0778; // type:func -THGA_AllocVtx = 0x800A079C; // type:func -THA_GetHead = 0x800A07C0; // type:func -THA_SetHead = 0x800A07CC; // type:func -THA_GetTail = 0x800A07D8; // type:func -THA_AllocHead = 0x800A07E4; // type:func -THA_AllocHeadByte = 0x800A07F8; // type:func -THA_AllocTail = 0x800A0818; // type:func -THA_AllocTailAlign16 = 0x800A08A8; // type:func -THA_AllocTailAlign = 0x800A08C8; // type:func -THA_GetRemaining = 0x800A08E4; // type:func -THA_IsCrash = 0x800A08F8; // type:func -THA_Reset = 0x800A091C; // type:func -THA_Init = 0x800A0938; // type:func -THA_Destroy = 0x800A095C; // type:func -AudioMgr_StopAllSfx = 0x800A0980; // type:func -AudioMgr_NotifyTaskDone = 0x800A09D0; // type:func -AudioMgr_HandleRetrace = 0x800A0A08; // type:func -AudioMgr_HandlePreNMI = 0x800A0B90; // type:func -AudioMgr_ThreadEntry = 0x800A0BB4; // type:func -AudioMgr_WaitForInit = 0x800A0CE4; // type:func -AudioMgr_Init = 0x800A0D10; // type:func -Setup_InitImpl = 0x800A0DF0; // type:func -Setup_Destroy = 0x800A0E2C; // type:func -Setup_Init = 0x800A0E38; // type:func -GameState_SetFBFilter = 0x800A0E60; // type:func -func_800C4344 = 0x800A0FB4; // type:func -GameState_Draw = 0x800A0FE8; // type:func -GameState_SetFrameBuffer = 0x800A10E0; // type:func -func_800C49F4 = 0x800A11FC; // type:func -GameState_ReqPadData = 0x800A1290; // type:func -GameState_Update = 0x800A12C0; // type:func -GameState_InitArena = 0x800A1378; // type:func -GameState_Realloc = 0x800A13E8; // type:func -GameState_Init = 0x800A14A8; // type:func -GameState_Destroy = 0x800A15A0; // type:func -GameState_GetInit = 0x800A1650; // type:func -GameState_GetSize = 0x800A165C; // type:func -GameState_IsRunning = 0x800A1668; // type:func -GameState_GetArenaSize = 0x800A1674; // type:func -GameAlloc_Log = 0x800A16A0; // type:func -GameAlloc_Malloc = 0x800A16C0; // type:func -GameAlloc_Free = 0x800A172C; // type:func -GameAlloc_Cleanup = 0x800A1778; // type:func -GameAlloc_Init = 0x800A17C8; // type:func -Graph_InitTHGA = 0x800A17E0; // type:func -Graph_GetNextGameState = 0x800A18F8; // type:func -Graph_Init = 0x800A19A8; // type:func -Graph_Destroy = 0x800A1A18; // type:func -Graph_TaskSet00 = 0x800A1A24; // type:func -Graph_Update = 0x800A1D68; // type:func -Graph_ThreadEntry = 0x800A2014; // type:func -Graph_Alloc = 0x800A210C; // type:func -Graph_Alloc2 = 0x800A2140; // type:func -Gfx_Open = 0x800A2180; // type:func -Gfx_Close = 0x800A218C; // type:func -Gfx_Alloc = 0x800A21A4; // type:func -ListAlloc_Init = 0x800A21E0; // type:func -ListAlloc_Alloc = 0x800A21F4; // type:func -ListAlloc_Free = 0x800A2260; // type:func -ListAlloc_FreeAll = 0x800A22E0; // type:func -Main = 0x800A2330; // type:func -PadMgr_AcquireSerialEventQueue = 0x800A26E0; // type:func -PadMgr_ReleaseSerialEventQueue = 0x800A2710; // type:func -PadMgr_LockPadData = 0x800A2738; // type:func -PadMgr_UnlockPadData = 0x800A2764; // type:func -PadMgr_UpdateRumble = 0x800A2790; // type:func -PadMgr_RumbleStop = 0x800A29E0; // type:func -PadMgr_RumbleReset = 0x800A2A84; // type:func -PadMgr_RumbleSetSingle = 0x800A2A94; // type:func -PadMgr_RumbleSet = 0x800A2AAC; // type:func -PadMgr_UpdateInputs = 0x800A2ADC; // type:func -PadMgr_HandleRetrace = 0x800A2CBC; // type:func -PadMgr_HandlePreNMI = 0x800A2E58; // type:func -PadMgr_RequestPadData = 0x800A2E7C; // type:func -PadMgr_ThreadEntry = 0x800A2FF8; // type:func -PadMgr_Init = 0x800A30F4; // type:func -Sched_SwapFrameBufferImpl = 0x800A3200; // type:func -Sched_SwapFrameBuffer = 0x800A3270; // type:func -Sched_HandlePreNMI = 0x800A32C0; // type:func -Sched_HandleNMI = 0x800A32CC; // type:func -Sched_QueueTask = 0x800A32F0; // type:func -Sched_Yield = 0x800A335C; // type:func -Sched_GfxTaskFramebufferValid = 0x800A3390; // type:func -Sched_Schedule = 0x800A3454; // type:func -Sched_SetNextFramebufferFromTask = 0x800A3588; // type:func -Sched_TaskComplete = 0x800A35D4; // type:func -Sched_RunTask = 0x800A364C; // type:func -Sched_HandleNotification = 0x800A37B0; // type:func -Sched_HandleRetrace = 0x800A38A0; // type:func -Sched_HandleRSPDone = 0x800A3978; // type:func -Sched_HandleRDPDone = 0x800A3B8C; // type:func -Sched_Notify = 0x800A3C54; // type:func -Sched_ThreadEntry = 0x800A3C78; // type:func -Sched_Init = 0x800A3DAC; // type:func -SpeedMeter_InitImpl = 0x800A3E80; // type:func -SpeedMeter_Init = 0x800A3E90; // type:func -SpeedMeter_Destroy = 0x800A3EB4; // type:func -SpeedMeter_DrawTimeEntries = 0x800A3EC0; // type:func -SpeedMeter_InitAllocEntry = 0x800A4384; // type:func -SpeedMeter_DrawAllocEntry = 0x800A43C8; // type:func -SpeedMeter_DrawAllocEntries = 0x800A461C; // type:func -SysCfb_Init = 0x800A48C0; // type:func -SysCfb_Reset = 0x800A4988; // type:func -SysCfb_GetFbPtr = 0x800A49A8; // type:func -SysCfb_GetFbEnd = 0x800A49D0; // type:func -Math_FactorialF = 0x800A49E0; // type:func -Math_Factorial = 0x800A4AE0; // type:func -Math_PowF = 0x800A4BA4; // type:func -Math_SinF = 0x800A4BCC; // type:func -Math_CosF = 0x800A4C20; // type:func -Math3D_PlaneVsLineSegClosestPoint = 0x800A4C80; // type:func -Math3D_LineVsLineClosestTwoPoints = 0x800A4DA0; // type:func -Math3D_LineClosestToPoint = 0x800A504C; // type:func -Math3D_FindPointOnPlaneIntersect = 0x800A5138; // type:func -Math3D_PlaneVsPlaneNewLine = 0x800A5198; // type:func -Math3D_PlaneVsPlaneVsLineClosestPoint = 0x800A5378; // type:func -Math3D_PointOnInfiniteLine = 0x800A53F4; // type:func -Math3D_LineSplitRatio = 0x800A5440; // type:func -Math3D_Cos = 0x800A548C; // type:func -Math3D_CosOut = 0x800A54B0; // type:func -Math3D_Vec3fReflect = 0x800A5568; // type:func -Math3D_PointInSquare2D = 0x800A563C; // type:func -Math3D_CirSquareVsTriSquare = 0x800A56A0; // type:func -Math3D_SphCubeVsTriCube = 0x800A57E0; // type:func -Math3D_Dist1DSq = 0x800A5A04; // type:func -Math3D_Dist1D = 0x800A5A1C; // type:func -Math3D_Dist2DSq = 0x800A5A40; // type:func -Math3D_Dist2D = 0x800A5A84; // type:func -Math3D_Vec3fMagnitudeSq = 0x800A5AB4; // type:func -Math3D_Vec3fMagnitude = 0x800A5AE0; // type:func -Math3D_Vec3fDistSq = 0x800A5B08; // type:func -Math3D_Vec3f_DistXYZ = 0x800A5B30; // type:func -Math3D_DistXYZ16toF = 0x800A5B50; // type:func -Math3D_Vec3fDiff_CrossZ = 0x800A5BC8; // type:func -Math3D_Vec3fDiff_CrossX = 0x800A5C08; // type:func -Math3D_Vec3fDiff_CrossY = 0x800A5C48; // type:func -Math3D_Vec3f_Cross = 0x800A5C88; // type:func -Math3D_SurfaceNorm = 0x800A5CFC; // type:func -Math3D_PointRelativeToCubeFaces = 0x800A5D64; // type:func -Math3D_PointRelativeToCubeEdges = 0x800A5E10; // type:func -Math3D_PointRelativeToCubeVertices = 0x800A5FC0; // type:func -Math3D_LineVsCube = 0x800A613C; // type:func -Math3D_LineVsCubeShort = 0x800A6BB4; // type:func -Math3D_RotateXZPlane = 0x800A6D20; // type:func -Math3D_DefPlane = 0x800A6DAC; // type:func -Math3D_Planef = 0x800A6EC0; // type:func -Math3D_Plane = 0x800A6F00; // type:func -Math3D_UDistPlaneToPos = 0x800A6F3C; // type:func -Math3D_DistPlaneToPos = 0x800A6F74; // type:func -Math3D_TriChkPointParaYImpl = 0x800A6FF8; // type:func -Math3D_TriChkPointParaYDeterminate = 0x800A7314; // type:func -Math3D_TriChkPointParaYSlopedY = 0x800A735C; // type:func -Math3D_TriChkPointParaYIntersectDist = 0x800A73AC; // type:func -Math3D_TriChkPointParaYIntersectInsideTri = 0x800A745C; // type:func -Math3D_TriChkPointParaY = 0x800A7508; // type:func -Math3D_TriChkLineSegParaYIntersect = 0x800A7584; // type:func -Math3D_TriChkPointParaYDist = 0x800A76F8; // type:func -Math3D_TriChkPointParaXImpl = 0x800A776C; // type:func -Math3D_TriChkPointParaXDeterminate = 0x800A7A88; // type:func -Math3D_TriChkPointParaXIntersect = 0x800A7AD0; // type:func -Math3D_TriChkPointParaX = 0x800A7B84; // type:func -Math3D_TriChkLineSegParaXIntersect = 0x800A7C00; // type:func -Math3D_TriChkPointParaXDist = 0x800A7D88; // type:func -Math3D_TriChkPointParaZImpl = 0x800A7DFC; // type:func -Math3D_TriChkPointParaZDeterminate = 0x800A8144; // type:func -Math3D_TriChkPointParaZIntersect = 0x800A818C; // type:func -Math3D_TriChkPointParaZ = 0x800A8240; // type:func -Math3D_TriChkLineSegParaZIntersect = 0x800A82BC; // type:func -Math3D_TriChkLineSegParaZDist = 0x800A8448; // type:func -Math3D_LineSegFindPlaneIntersect = 0x800A84BC; // type:func -Math3D_LineSegVsPlane = 0x800A8598; // type:func -Math3D_TriLineIntersect = 0x800A86A0; // type:func -Math3D_TriNorm = 0x800A8804; // type:func -Math3D_PointInSph = 0x800A88B4; // type:func -Math3D_PointDistSqToLine2D = 0x800A8904; // type:func -Math3D_LineVsSph = 0x800A8A4C; // type:func -Math3D_GetSphVsTriIntersectPoint = 0x800A8C54; // type:func -Math3D_TriVsSphIntersect = 0x800A8D94; // type:func -Math3D_PointInCyl = 0x800A91B4; // type:func -Math3D_CylVsLineSeg = 0x800A9270; // type:func -Math3D_CylTriVsIntersect = 0x800A9C38; // type:func -Math3D_CylVsTri = 0x800AA0B8; // type:func -Math3D_SphVsSph = 0x800AA0D8; // type:func -Math3D_SphVsSphOverlap = 0x800AA0F8; // type:func -Math3D_SphVsSphOverlapCenterDist = 0x800AA118; // type:func -Math3D_SphVsCylOverlap = 0x800AA1F0; // type:func -Math3D_SphVsCylOverlapCenterDist = 0x800AA210; // type:func -Math3D_CylVsCylOverlap = 0x800AA380; // type:func -Math3D_CylVsCylOverlapCenterDist = 0x800AA3A0; // type:func -Math3D_TriVsTriIntersect = 0x800AA570; // type:func -Math3D_XZInSphere = 0x800AA8F0; // type:func -Math3D_XYInSphere = 0x800AA964; // type:func -Math3D_YZInSphere = 0x800AA9D8; // type:func -Math_GetAtan2Tbl = 0x800AAA50; // type:func -Math_Atan2S = 0x800AAAC8; // type:func -Math_Atan2F = 0x800AAC40; // type:func -Matrix_Init = 0x800AAC80; // type:func -Matrix_Push = 0x800AACBC; // type:func -Matrix_Pop = 0x800AACF4; // type:func -Matrix_Get = 0x800AAD10; // type:func -Matrix_Put = 0x800AAD34; // type:func -Matrix_GetCurrent = 0x800AAD5C; // type:func -Matrix_Mult = 0x800AAD6C; // type:func -Matrix_Translate = 0x800AADC4; // type:func -Matrix_Scale = 0x800AAECC; // type:func -Matrix_RotateX = 0x800AAFB0; // type:func -Matrix_RotateY = 0x800AB164; // type:func -Matrix_RotateZ = 0x800AB31C; // type:func -Matrix_RotateZYX = 0x800AB4D0; // type:func -Matrix_TranslateRotateZYX = 0x800AB78C; // type:func -Matrix_SetTranslateRotateYXZ = 0x800ABAE0; // type:func -Matrix_MtxFToMtx = 0x800ABC8C; // type:func -Matrix_ToMtx = 0x800ABEA8; // type:func -Matrix_Finalize = 0x800ABED0; // type:func -Matrix_MtxFToNewMtx = 0x800ABEFC; // type:func -Matrix_MultVec3f = 0x800ABF28; // type:func -Matrix_MtxFCopy = 0x800ABFE0; // type:func -Matrix_MtxToMtxF = 0x800AC0E8; // type:func -Matrix_MultVec3fExt = 0x800AC33C; // type:func -Matrix_Transpose = 0x800AC3EC; // type:func -Matrix_ReplaceRotation = 0x800AC424; // type:func -Matrix_MtxFToYXZRotS = 0x800AC520; // type:func -Matrix_MtxFToZYXRotS = 0x800AC6B8; // type:func -Matrix_RotateAxis = 0x800AC850; // type:func -Matrix_SetTranslateUniformScaleMtxF = 0x800ACCB8; // type:func -Matrix_SetTranslateUniformScaleMtx = 0x800ACD20; // type:func -Matrix_SetTranslateUniformScaleMtx2 = 0x800ACD70; // type:func -Matrix_SetTranslateScaleMtx1 = 0x800ACE60; // type:func -Matrix_SetTranslateScaleMtx2 = 0x800ACF80; // type:func -SysUcode_GetUCodeBoot = 0x800AD080; // type:func -SysUcode_GetUCodeBootSize = 0x800AD090; // type:func -SysUcode_GetUCode = 0x800AD0AC; // type:func -SysUcode_GetUCodeData = 0x800AD0BC; // type:func -RumbleMgr_Update = 0x800AD0D0; // type:func -RumbleMgr_Init = 0x800AD3E0; // type:func -RumbleMgr_Destroy = 0x800AD418; // type:func -func_800D31A0 = 0x800AD430; // type:func -IrqMgr_AddClient = 0x800AD460; // type:func -IrqMgr_RemoveClient = 0x800AD4EC; // type:func -IrqMgr_SendMesgToClients = 0x800AD578; // type:func -IrqMgr_JamMesgToClients = 0x800AD5DC; // type:func -IrqMgr_HandlePreNMI = 0x800AD640; // type:func -IrqMgr_CheckStacks = 0x800AD6D8; // type:func -IrqMgr_HandlePreNMI450 = 0x800AD6F8; // type:func -IrqMgr_HandlePreNMI480 = 0x800AD774; // type:func -IrqMgr_HandlePreNMI500 = 0x800AD808; // type:func -IrqMgr_HandleRetrace = 0x800AD82C; // type:func -IrqMgr_ThreadEntry = 0x800AD8E4; // type:func -IrqMgr_Init = 0x800AD9B8; // type:func -func_800AD410 = 0x800ADA80; // type:func -func_800AD488 = 0x800ADAF8; // type:func -func_800AD4C0 = 0x800ADB30; // type:func -func_800AD51C = 0x800ADB8C; // type:func -func_800AD560 = 0x800ADBD0; // type:func -func_800AD590 = 0x800ADC00; // type:func -func_800AD598 = 0x800ADC08; // type:func -Fault_SleepImpl = 0x800ADC20; // type:func -Fault_WaitForInputImpl = 0x800ADC5C; // type:func -Fault_WaitForInput = 0x800ADCD8; // type:func -Fault_DrawRec = 0x800ADD14; // type:func -Fault_DrawRecBlack = 0x800ADDF0; // type:func -Fault_DrawCharImpl = 0x800ADE30; // type:func -Fault_DrawChar = 0x800ADF4C; // type:func -Fault_DrawCornerRec = 0x800ADF90; // type:func -Fault_DrawCornerRecRed = 0x800ADFE4; // type:func -Fault_DrawCornerRecYellow = 0x800AE020; // type:func -func_800AE05C = 0x800AE05C; // type:func -Fault_PrintCallbackDraw = 0x800AE064; // type:func -Fault_DrawText = 0x800AE170; // type:func -Fault_SetCursor = 0x800AE1E0; // type:func -func_800AE1F8 = 0x800AE1F8; // type:func -Fault_Printf = 0x800AE258; // type:func -Fault_PrintFReg = 0x800AE2B8; // type:func -Fault_LogFReg = 0x800AE35C; // type:func -Fault_PrintFPCSR = 0x800AE408; // type:func -Fault_LogFPCSR = 0x800AE4C0; // type:func -Fault_PrintThreadContext = 0x800AE558; // type:func -Fault_LogThreadContext = 0x800AE998; // type:func -Fault_FindFaultedThread = 0x800AEC94; // type:func -Fault_WaitForButtonCombo = 0x800AED1C; // type:func -func_800AF0E0 = 0x800AF0E0; // type:func -Fault_DrawMemDumpContents = 0x800AF1C4; // type:func -Fault_DrawMemDumpPC = 0x800AF304; // type:func -Fault_DrawMemDumpSP = 0x800AF370; // type:func -func_800AF3DC = 0x800AF3DC; // type:func -Fault_ResumeThread = 0x800AF4DC; // type:func -func_800AF558 = 0x800AF558; // type:func -Fault_AddClient = 0x800AF5EC; // type:func -Fault_RemoveClient = 0x800AF674; // type:func -Fault_ProcessClients = 0x800AF720; // type:func -Fault_ThreadEntry = 0x800AF7F0; // type:func -Fault_SetFrameBuffer = 0x800AFA90; // type:func -Fault_Init = 0x800AFABC; // type:func -Fault_AddHungupAndCrashImpl = 0x800AFBC4; // type:func -Fault_AddHungupAndCrash = 0x800AFD94; // type:func -Kanji_OffsetFromShiftJIS = 0x800AFDF0; // type:func -AudioSynth_InitNextRingBuf = 0x800B08D0; // type:func -func_800DB03C = 0x800B0C4C; // type:func -AudioSynth_Update = 0x800B0CD4; // type:func -func_800DB2C0 = 0x800B0ED0; // type:func -AudioSynth_LoadRingBuffer1AtTemp = 0x800B0F40; // type:func -AudioSynth_SaveRingBuffer1AtTemp = 0x800B0FE8; // type:func -AudioSynth_LeakReverb = 0x800B1090; // type:func -func_800DB4E4 = 0x800B10F4; // type:func -func_800DB680 = 0x800B1290; // type:func -func_800DB828 = 0x800B1438; // type:func -AudioSynth_FilterReverb = 0x800B1650; // type:func -AudioSynth_MaybeMixRingBuffer1 = 0x800B16F8; // type:func -func_800DBB94 = 0x800B17A4; // type:func -AudioSynth_ClearBuffer = 0x800B17AC; // type:func -func_800DBBBC = 0x800B17CC; // type:func -func_800DBBC4 = 0x800B17D4; // type:func -func_800DBBCC = 0x800B17DC; // type:func -AudioSynth_Mix = 0x800B17E4; // type:func -func_800DBC08 = 0x800B1818; // type:func -func_800DBC10 = 0x800B1820; // type:func -func_800DBC18 = 0x800B1828; // type:func -AudioSynth_SetBuffer = 0x800B1830; // type:func -func_800DBC54 = 0x800B1864; // type:func -func_800DBC5C = 0x800B186C; // type:func -AudioSynth_DMemMove = 0x800B1874; // type:func -func_800DBC90 = 0x800B18A0; // type:func -func_800DBC98 = 0x800B18A8; // type:func -func_800DBCA0 = 0x800B18B0; // type:func -func_800DBCA8 = 0x800B18B8; // type:func -AudioSynth_InterL = 0x800B18C0; // type:func -AudioSynth_EnvSetup1 = 0x800B18E4; // type:func -func_800DBD08 = 0x800B1918; // type:func -AudioSynth_LoadBuffer = 0x800B1920; // type:func -AudioSynth_SaveBuffer = 0x800B1948; // type:func -AudioSynth_EnvSetup2 = 0x800B1970; // type:func -func_800DBD7C = 0x800B198C; // type:func -func_800DBD84 = 0x800B1994; // type:func -func_800DBD8C = 0x800B199C; // type:func -AudioSynth_S8Dec = 0x800B19A4; // type:func -AudioSynth_HiLoGain = 0x800B19C0; // type:func -AudioSynth_UnkCmd19 = 0x800B19F4; // type:func -func_800DBE18 = 0x800B1A28; // type:func -func_800DBE20 = 0x800B1A30; // type:func -func_800DBE28 = 0x800B1A38; // type:func -func_800DBE30 = 0x800B1A40; // type:func -AudioSynth_UnkCmd3 = 0x800B1A48; // type:func -func_800DBE5C = 0x800B1A6C; // type:func -func_800DBE64 = 0x800B1A74; // type:func -func_800DBE6C = 0x800B1A7C; // type:func -AudioSynth_LoadFilterBuffer = 0x800B1A84; // type:func -AudioSynth_LoadFilterSize = 0x800B1AA8; // type:func -AudioSynth_LoadRingBuffer1 = 0x800B1AC0; // type:func -AudioSynth_LoadRingBuffer2 = 0x800B1B6C; // type:func -AudioSynth_LoadRingBufferPart = 0x800B1C18; // type:func -AudioSynth_SaveRingBufferPart = 0x800B1C84; // type:func -AudioSynth_SaveBufferOffset = 0x800B1CF0; // type:func -AudioSynth_MaybeLoadRingBuffer2 = 0x800B1D34; // type:func -AudioSynth_LoadReverbSamples = 0x800B1D74; // type:func -AudioSynth_SaveReverbSamples = 0x800B1DE8; // type:func -AudioSynth_SaveRingBuffer2 = 0x800B1EEC; // type:func -AudioSynth_DoOneAudioUpdate = 0x800B1F94; // type:func -AudioSynth_ProcessNote = 0x800B2530; // type:func -AudioSynth_FinalResample = 0x800B3270; // type:func -AudioSynth_ProcessEnvelope = 0x800B3310; // type:func -AudioSynth_LoadWaveSamples = 0x800B3638; // type:func -AudioSynth_ApplyHaasEffect = 0x800B37A8; // type:func -AudioHeap_CalculateAdsrDecay = 0x800B3A60; // type:func -AudioHeap_InitAdsrDecayTable = 0x800B3A7C; // type:func -AudioHeap_ResetLoadStatus = 0x800B3BC0; // type:func -AudioHeap_DiscardFont = 0x800B3C88; // type:func -AudioHeap_ReleaseNotesForFont = 0x800B3D6C; // type:func -AudioHeap_DiscardSequence = 0x800B3DF4; // type:func -AudioHeap_WritebackDCache = 0x800B3E78; // type:func -AudioHeap_AllocZeroedAttemptExternal = 0x800B3E98; // type:func -AudioHeap_AllocAttemptExternal = 0x800B3EF0; // type:func -AudioHeap_AllocDmaMemory = 0x800B3F48; // type:func -AudioHeap_AllocDmaMemoryZeroed = 0x800B3F84; // type:func -AudioHeap_AllocZeroed = 0x800B3FC0; // type:func -AudioHeap_Alloc = 0x800B401C; // type:func -AudioHeap_InitPool = 0x800B4074; // type:func -AudioHeap_InitPersistentCache = 0x800B409C; // type:func -AudioHeap_InitTemporaryCache = 0x800B40B0; // type:func -AudioHeap_ResetPool = 0x800B40E0; // type:func -AudioHeap_PopPersistentCache = 0x800B40F0; // type:func -AudioHeap_InitMainPools = 0x800B4230; // type:func -AudioHeap_InitSessionPools = 0x800B4290; // type:func -AudioHeap_InitCachePools = 0x800B4314; // type:func -AudioHeap_InitPersistentPoolsAndCaches = 0x800B4398; // type:func -AudioHeap_InitTemporaryPoolsAndCaches = 0x800B445C; // type:func -AudioHeap_AllocCached = 0x800B4520; // type:func -AudioHeap_SearchCaches = 0x800B4CB4; // type:func -AudioHeap_SearchRegularCaches = 0x800B4D0C; // type:func -func_800DF1D8 = 0x800B4E18; // type:func -AudioHeap_ClearFilter = 0x800B51EC; // type:func -AudioHeap_LoadLowPassFilter = 0x800B521C; // type:func -AudioHeap_LoadHighPassFilter = 0x800B5270; // type:func -AudioHeap_LoadFilter = 0x800B52C8; // type:func -AudioHeap_UpdateReverb = 0x800B53FC; // type:func -AudioHeap_UpdateReverbs = 0x800B5404; // type:func -AudioHeap_ClearCurrentAiBuffer = 0x800B54C8; // type:func -AudioHeap_ResetStep = 0x800B5534; // type:func -AudioHeap_Init = 0x800B5838; // type:func -AudioHeap_SearchPermanentCache = 0x800B6128; // type:func -AudioHeap_AllocPermanent = 0x800B6180; // type:func -AudioHeap_AllocSampleCache = 0x800B6204; // type:func -AudioHeap_InitSampleCaches = 0x800B6274; // type:func -AudioHeap_AllocTemporarySampleCacheEntry = 0x800B630C; // type:func -AudioHeap_UnapplySampleCacheForFont = 0x800B65A4; // type:func -AudioHeap_DiscardSampleCacheEntry = 0x800B6718; // type:func -AudioHeap_UnapplySampleCache = 0x800B67F4; // type:func -AudioHeap_AllocPersistentSampleCacheEntry = 0x800B6838; // type:func -AudioHeap_DiscardSampleCacheForFont = 0x800B68C0; // type:func -AudioHeap_DiscardSampleCaches = 0x800B68FC; // type:func -AudioHeap_ChangeStorage = 0x800B6A4C; // type:func -AudioHeap_DiscardSampleBank = 0x800B6AAC; // type:func -AudioHeap_ApplySampleBankCache = 0x800B6AD0; // type:func -AudioHeap_ApplySampleBankCacheInternal = 0x800B6AF4; // type:func -AudioHeap_DiscardSampleBanks = 0x800B6D88; // type:func -AudioLoad_DecreaseSampleDmaTtls = 0x800B6E30; // type:func -AudioLoad_DmaSampleData = 0x800B6F1C; // type:func -AudioLoad_InitSampleDmaBuffers = 0x800B7258; // type:func -AudioLoad_IsFontLoadComplete = 0x800B74F0; // type:func -AudioLoad_IsSeqLoadComplete = 0x800B7568; // type:func -AudioLoad_IsSampleLoadComplete = 0x800B75E0; // type:func -AudioLoad_SetFontLoadStatus = 0x800B7658; // type:func -AudioLoad_SetSeqLoadStatus = 0x800B7688; // type:func -AudioLoad_SetSampleFontLoadStatusAndApplyCaches = 0x800B76B8; // type:func -AudioLoad_SetSampleFontLoadStatus = 0x800B7718; // type:func -AudioLoad_InitTable = 0x800B7748; // type:func -AudioLoad_SyncLoadSeqFonts = 0x800B77A8; // type:func -AudioLoad_SyncLoadSeqParts = 0x800B7858; // type:func -AudioLoad_SyncLoadSample = 0x800B78B8; // type:func -AudioLoad_SyncLoadInstrument = 0x800B79A4; // type:func -AudioLoad_AsyncLoad = 0x800B7A74; // type:func -AudioLoad_AsyncLoadSeq = 0x800B7AAC; // type:func -AudioLoad_AsyncLoadSampleBank = 0x800B7AF0; // type:func -AudioLoad_AsyncLoadFont = 0x800B7B34; // type:func -AudioLoad_GetFontsForSequence = 0x800B7B78; // type:func -AudioLoad_DiscardSeqFonts = 0x800B7BBC; // type:func -AudioLoad_DiscardFont = 0x800B7C6C; // type:func -AudioLoad_SyncInitSeqPlayer = 0x800B7D14; // type:func -AudioLoad_SyncInitSeqPlayerSkipTicks = 0x800B7D64; // type:func -AudioLoad_SyncInitSeqPlayerInternal = 0x800B7DBC; // type:func -AudioLoad_SyncLoadSeq = 0x800B7F04; // type:func -AudioLoad_GetSampleBank = 0x800B7F58; // type:func -AudioLoad_TrySyncLoadSampleBank = 0x800B7F78; // type:func -AudioLoad_SyncLoadFont = 0x800B8094; // type:func -AudioLoad_SyncLoad = 0x800B8198; // type:func -AudioLoad_GetRealTableIndex = 0x800B83A8; // type:func -AudioLoad_SearchCaches = 0x800B83E4; // type:func -AudioLoad_GetLoadTable = 0x800B8438; // type:func -AudioLoad_RelocateFont = 0x800B847C; // type:func -AudioLoad_SyncDma = 0x800B86E8; // type:func -AudioLoad_SyncDmaUnkMedium = 0x800B880C; // type:func -AudioLoad_Dma = 0x800B8820; // type:func -AudioLoad_Unused1 = 0x800B88F8; // type:func -AudioLoad_SyncLoadSimple = 0x800B8900; // type:func -AudioLoad_AsyncLoadInner = 0x800B8920; // type:func -AudioLoad_ProcessLoads = 0x800B8C2C; // type:func -AudioLoad_SetDmaHandler = 0x800B8C5C; // type:func -AudioLoad_SetUnusedHandler = 0x800B8C68; // type:func -AudioLoad_InitSoundFont = 0x800B8C74; // type:func -AudioLoad_Init = 0x800B8CD4; // type:func -AudioLoad_InitSlowLoads = 0x800B9040; // type:func -AudioLoad_SlowLoadSample = 0x800B9054; // type:func -AudioLoad_GetFontSample = 0x800B9220; // type:func -AudioLoad_Unused2 = 0x800B92B0; // type:func -AudioLoad_FinishSlowLoad = 0x800B92B8; // type:func -AudioLoad_ProcessSlowLoads = 0x800B932C; // type:func -AudioLoad_DmaSlowCopy = 0x800B94B4; // type:func -AudioLoad_DmaSlowCopyUnkMedium = 0x800B9538; // type:func -AudioLoad_SlowLoadSeq = 0x800B954C; // type:func -AudioLoad_InitAsyncLoads = 0x800B9654; // type:func -AudioLoad_StartAsyncLoadUnkMedium = 0x800B9684; // type:func -AudioLoad_StartAsyncLoad = 0x800B9708; // type:func -AudioLoad_ProcessAsyncLoads = 0x800B982C; // type:func -AudioLoad_ProcessAsyncLoadUnkMedium = 0x800B9950; // type:func -AudioLoad_FinishAsyncLoad = 0x800B995C; // type:func -AudioLoad_ProcessAsyncLoad = 0x800B9A98; // type:func -AudioLoad_AsyncDma = 0x800B9BF4; // type:func -AudioLoad_AsyncDmaUnkMedium = 0x800B9C84; // type:func -AudioLoad_RelocateSample = 0x800B9C98; // type:func -AudioLoad_RelocateFontAndPreloadSamples = 0x800B9DD8; // type:func -AudioLoad_ProcessSamplePreloads = 0x800BA1D0; // type:func -AudioLoad_AddToSampleSet = 0x800BA384; // type:func -AudioLoad_GetSamplesForFont = 0x800BA3CC; // type:func -AudioLoad_AddUsedSample = 0x800BA500; // type:func -AudioLoad_PreloadSamplesForFont = 0x800BA558; // type:func -AudioLoad_LoadPermanentSamples = 0x800BA9D4; // type:func -AudioLoad_Unused3 = 0x800BAB14; // type:func -AudioLoad_Unused4 = 0x800BAB1C; // type:func -AudioLoad_Unused5 = 0x800BAB24; // type:func -AudioLoad_ScriptLoad = 0x800BAB2C; // type:func -AudioLoad_ProcessScriptLoads = 0x800BAB98; // type:func -AudioLoad_InitScriptLoads = 0x800BABF0; // type:func -AudioThread_Update = 0x800BAC20; // type:func -AudioThread_UpdateImpl = 0x800BAC40; // type:func -AudioThread_ProcessGlobalCmd = 0x800BB1C8; // type:func -AudioThread_SetFadeOutTimer = 0x800BB59C; // type:func -AudioThread_SetFadeInTimer = 0x800BB5F0; // type:func -AudioThread_InitMesgQueuesImpl = 0x800BB638; // type:func -AudioThread_QueueCmd = 0x800BB6D0; // type:func -AudioThread_QueueCmdF32 = 0x800BB71C; // type:func -AudioThread_QueueCmdS32 = 0x800BB740; // type:func -AudioThread_QueueCmdS8 = 0x800BB764; // type:func -AudioThread_QueueCmdU16 = 0x800BB794; // type:func -AudioThread_ScheduleProcessCmds = 0x800BB7C4; // type:func -AudioThread_ResetCmdQueue = 0x800BB854; // type:func -AudioThread_ProcessCmd = 0x800BB86C; // type:func -AudioThread_ProcessCmds = 0x800BB9B0; // type:func -func_800E5E20 = 0x800BBA64; // type:func -AudioThread_GetFontsForSequence = 0x800BBAC8; // type:func -Audio_GetSampleBankIdsOfFont = 0x800BBAE8; // type:func -func_800E5EDC = 0x800BBB20; // type:func -func_800E5F34 = 0x800BBB78; // type:func -AudioThread_ResetAudioHeap = 0x800BBBCC; // type:func -AudioThread_PreNMIInternal = 0x800BBC68; // type:func -AudioThread_GetChannelIO = 0x800BBCB4; // type:func -AudioThread_GetSeqPlayerIO = 0x800BBD08; // type:func -AudioThread_InitExternalPool = 0x800BBD30; // type:func -AudioThread_ResetExternalPool = 0x800BBD60; // type:func -AudioThread_ProcessSeqPlayerCmd = 0x800BBD6C; // type:func -AudioThread_ProcessChannelCmd = 0x800BBF44; // type:func -AudioThread_Noop1Cmd = 0x800BC0F4; // type:func -AudioThread_Noop1CmdZeroed = 0x800BC13C; // type:func -AudioThread_Noop2Cmd = 0x800BC160; // type:func -AudioThread_WaitForAudioTask = 0x800BC194; // type:func -func_800E6590 = 0x800BC1D4; // type:func -func_800E6680 = 0x800BC2C4; // type:func -func_800E66A0 = 0x800BC2E4; // type:func -func_800E66C0 = 0x800BC304; // type:func -AudioThread_NextRandom = 0x800BC404; // type:func -AudioThread_InitMesgQueues = 0x800BC45C; // type:func -Audio_InvalDCache = 0x800BC480; // type:func -Audio_WritebackDCache = 0x800BC4C0; // type:func -osAiSetNextBuffer = 0x800BC500; // type:func -Audio_InitNoteSub = 0x800BC580; // type:func -Audio_NoteSetResamplingRate = 0x800BC9F8; // type:func -Audio_NoteInit = 0x800BCAA8; // type:func -Audio_NoteDisable = 0x800BCB68; // type:func -Audio_ProcessNotes = 0x800BCBCC; // type:func -Audio_GetInstrumentTunedSample = 0x800BD09C; // type:func -Audio_GetInstrumentInner = 0x800BD0D8; // type:func -Audio_GetDrum = 0x800BD1AC; // type:func -Audio_GetSoundEffect = 0x800BD290; // type:func -Audio_SetFontInstrument = 0x800BD384; // type:func -Audio_SeqLayerDecayRelease = 0x800BD4C8; // type:func -Audio_SeqLayerNoteDecay = 0x800BD7A0; // type:func -Audio_SeqLayerNoteRelease = 0x800BD7C0; // type:func -Audio_BuildSyntheticWave = 0x800BD7E0; // type:func -Audio_InitSyntheticWave = 0x800BD8E4; // type:func -Audio_InitNoteList = 0x800BD93C; // type:func -Audio_InitNoteLists = 0x800BD94C; // type:func -Audio_InitNoteFreeList = 0x800BD99C; // type:func -Audio_NotePoolClear = 0x800BDA40; // type:func -Audio_NotePoolFill = 0x800BDBA0; // type:func -Audio_AudioListPushFront = 0x800BDCDC; // type:func -Audio_AudioListRemove = 0x800BDD1C; // type:func -Audio_FindNodeWithPrioLessThan = 0x800BDD48; // type:func -Audio_NoteInitForLayer = 0x800BDDC8; // type:func -func_800E82C0 = 0x800BDF00; // type:func -Audio_NoteReleaseAndTakeOwnership = 0x800BDF34; // type:func -Audio_AllocNoteFromDisabled = 0x800BDF60; // type:func -Audio_AllocNoteFromDecaying = 0x800BDFAC; // type:func -Audio_AllocNoteFromActive = 0x800BDFFC; // type:func -Audio_AllocNote = 0x800BE0F4; // type:func -Audio_NoteInitAll = 0x800BE3C8; // type:func -Audio_SequenceChannelProcessSound = 0x800BE500; // type:func -Audio_SequencePlayerProcessSound = 0x800BE6C8; // type:func -Audio_GetPortamentoFreqScale = 0x800BE814; // type:func -Audio_GetVibratoPitchChange = 0x800BE870; // type:func -Audio_GetVibratoFreqScale = 0x800BE8A8; // type:func -Audio_NoteVibratoUpdate = 0x800BEAE4; // type:func -Audio_NoteVibratoInit = 0x800BEB40; // type:func -Audio_NotePortamentoInit = 0x800BEBF8; // type:func -Audio_AdsrInit = 0x800BEC24; // type:func -Audio_AdsrUpdate = 0x800BEC44; // type:func -AudioSeq_GetScriptControlFlowArgument = 0x800BEF80; // type:func -AudioSeq_HandleScriptFlowControl = 0x800BEFE8; // type:func -AudioSeq_InitSequenceChannel = 0x800BF1C4; // type:func -AudioSeq_SeqChannelSetLayer = 0x800BF318; // type:func -AudioSeq_SeqLayerDisable = 0x800BF43C; // type:func -AudioSeq_SeqLayerFree = 0x800BF4B8; // type:func -AudioSeq_SequenceChannelDisable = 0x800BF508; // type:func -AudioSeq_SequencePlayerSetupChannels = 0x800BF574; // type:func -AudioSeq_SequencePlayerDisableChannels = 0x800BF66C; // type:func -AudioSeq_SequenceChannelEnable = 0x800BF6EC; // type:func -AudioSeq_SequencePlayerDisableAsFinished = 0x800BF784; // type:func -AudioSeq_SequencePlayerDisable = 0x800BF7AC; // type:func -AudioSeq_AudioListPushBack = 0x800BF8A4; // type:func -AudioSeq_AudioListPopBack = 0x800BF8E4; // type:func -AudioSeq_InitLayerFreelist = 0x800BF924; // type:func -AudioSeq_ScriptReadU8 = 0x800BF9C4; // type:func -AudioSeq_ScriptReadS16 = 0x800BF9D8; // type:func -AudioSeq_ScriptReadCompressedU16 = 0x800BFA10; // type:func -AudioSeq_SeqLayerProcessScript = 0x800BFA50; // type:func -AudioSeq_SeqLayerProcessScriptStep1 = 0x800BFB54; // type:func -AudioSeq_SeqLayerProcessScriptStep5 = 0x800BFBE0; // type:func -AudioSeq_SeqLayerProcessScriptStep2 = 0x800BFD3C; // type:func -AudioSeq_SeqLayerProcessScriptStep4 = 0x800C00BC; // type:func -AudioSeq_SeqLayerProcessScriptStep3 = 0x800C075C; // type:func -AudioSeq_SetChannelPriorities = 0x800C0B70; // type:func -AudioSeq_GetInstrument = 0x800C0BA0; // type:func -AudioSeq_SetInstrument = 0x800C0C14; // type:func -AudioSeq_SequenceChannelSetVolume = 0x800C0CC0; // type:func -AudioSeq_SequenceChannelProcessScript = 0x800C0CE4; // type:func -AudioSeq_SequencePlayerProcessSequence = 0x800C19D4; // type:func -AudioSeq_ProcessSequences = 0x800C21E0; // type:func -AudioSeq_SkipForwardSequence = 0x800C2294; // type:func -AudioSeq_ResetSequencePlayer = 0x800C22E4; // type:func -AudioSeq_InitSequencePlayerChannels = 0x800C23B0; // type:func -AudioSeq_InitSequencePlayer = 0x800C2488; // type:func -AudioSeq_InitSequencePlayers = 0x800C2558; // type:func -AudioOcarina_ReadControllerInput = 0x800C25D0; // type:func -AudioOcarina_BendPitchTwoSemitones = 0x800C2630; // type:func -AudioOcarina_GetPlayingState = 0x800C26C0; // type:func -AudioOcarina_MapNoteToButton = 0x800C2704; // type:func -AudioOcarina_MapNotesToScarecrowButtons = 0x800C274C; // type:func -AudioOcarina_Start = 0x800C27D4; // type:func -AudioOcarina_CheckIfStartedSong = 0x800C298C; // type:func -AudioOcarina_CheckSongsWithMusicStaff = 0x800C29C8; // type:func -AudioOcarina_CheckSongsWithoutMusicStaff = 0x800C2DD0; // type:func -AudioOcarina_PlayControllerInput = 0x800C301C; // type:func -AudioOcarina_EnableInput = 0x800C333C; // type:func -AudioOcarina_SetInstrument = 0x800C334C; // type:func -AudioOcarina_SetPlaybackSong = 0x800C3430; // type:func -AudioOcarina_PlaybackSong = 0x800C3530; // type:func -AudioOcarina_SetRecordingSong = 0x800C3854; // type:func -AudioOcarina_SetRecordingState = 0x800C3C5C; // type:func -AudioOcarina_UpdateRecordingStaff = 0x800C3D88; // type:func -AudioOcarina_UpdatePlayingStaff = 0x800C3DC0; // type:func -AudioOcarina_UpdatePlaybackStaff = 0x800C3E04; // type:func -AudioOcarina_GetRecordingStaff = 0x800C3EB4; // type:func -AudioOcarina_GetPlayingStaff = 0x800C3EC0; // type:func -AudioOcarina_GetPlaybackStaff = 0x800C3EE4; // type:func -AudioOcarina_RecordSong = 0x800C3EF0; // type:func -AudioOcarina_MemoryGameInit = 0x800C407C; // type:func -AudioOcarina_MemoryGameNextNote = 0x800C40EC; // type:func -AudioOcarina_Update = 0x800C41F4; // type:func -AudioOcarina_PlayLongScarecrowSong = 0x800C4324; // type:func -AudioOcarina_ResetStaffs = 0x800C4430; // type:func -AudioDebug_Draw = 0x800C447C; // type:func -AudioDebug_ScrPrt = 0x800C4484; // type:func -Audio_Update = 0x800C4490; // type:func -func_800F3138 = 0x800C4534; // type:func -func_800F3140 = 0x800C453C; // type:func -func_800F314C = 0x800C4548; // type:func -Audio_ComputeSfxVolume = 0x800C4584; // type:func -Audio_ComputeSfxReverb = 0x800C46EC; // type:func -Audio_ComputeSfxPanSigned = 0x800C4864; // type:func -Audio_ComputeSfxFreqScale = 0x800C49E8; // type:func -func_800F37B8 = 0x800C4C00; // type:func -func_800F3990 = 0x800C4DD8; // type:func -Audio_SetSfxProperties = 0x800C4E50; // type:func -Audio_ResetSfxChannelState = 0x800C5344; // type:func -Audio_PlayCutsceneEffectsSequence = 0x800C53AC; // type:func -func_800F3F84 = 0x800C53F4; // type:func -func_800F4010 = 0x800C5480; // type:func -func_800F4138 = 0x800C55A0; // type:func -func_800F4190 = 0x800C55F8; // type:func -Audio_PlaySfxRandom = 0x800C5648; // type:func -func_800F4254 = 0x800C56BC; // type:func -func_800F436C = 0x800C57D4; // type:func -func_800F4414 = 0x800C587C; // type:func -func_800F44EC = 0x800C5954; // type:func -func_800F4524 = 0x800C598C; // type:func -func_800F4578 = 0x800C59E0; // type:func -func_800F45D0 = 0x800C5A38; // type:func -Audio_PlaySfxRiver = 0x800C5A9C; // type:func -Audio_PlaySfxWaterfall = 0x800C5B48; // type:func -Audio_StepFreqLerp = 0x800C5BEC; // type:func -Audio_SetBgmVolumeOffDuringFanfare = 0x800C5C24; // type:func -Audio_SetBgmVolumeOnDuringFanfare = 0x800C5C64; // type:func -Audio_SetMainBgmVolume = 0x800C5CA4; // type:func -Audio_SetGanonsTowerBgmVolumeLevel = 0x800C5CD8; // type:func -Audio_SetGanonsTowerBgmVolume = 0x800C5D84; // type:func -Audio_LowerMainBgmVolume = 0x800C5EBC; // type:func -Audio_UpdateRiverSoundVolumes = 0x800C5ED8; // type:func -Audio_PlaySfxIncreasinglyTransposed = 0x800C5FC0; // type:func -Audio_ResetIncreasingTranspose = 0x800C6050; // type:func -Audio_PlaySfxTransposed = 0x800C605C; // type:func -func_800F4C58 = 0x800C60C0; // type:func -func_800F4E30 = 0x800C6298; // type:func -Audio_ClearSariaBgm = 0x800C6534; // type:func -Audio_ClearSariaBgmAtPos = 0x800C6554; // type:func -Audio_SplitBgmChannels = 0x800C6574; // type:func -Audio_PlaySariaBgm = 0x800C6708; // type:func -Audio_ClearSariaBgm2 = 0x800C6980; // type:func -Audio_PlayMorningSceneSequence = 0x800C698C; // type:func -Audio_PlaySceneSequence = 0x800C69CC; // type:func -Audio_UpdateSceneSequenceResumePoint = 0x800C6B4C; // type:func -Audio_PlayWindmillBgm = 0x800C6BBC; // type:func -Audio_SetMainBgmTempoFreqAfterFanfare = 0x800C6BF0; // type:func -Audio_SetFastTempoForTimedMinigame = 0x800C6DBC; // type:func -Audio_PlaySequenceInCutscene = 0x800C6E00; // type:func -Audio_StopSequenceInCutscene = 0x800C6E8C; // type:func -Audio_IsSequencePlaying = 0x800C6EFC; // type:func -func_800F5ACC = 0x800C6F70; // type:func -func_800F5B58 = 0x800C6FE4; // type:func -func_800F5BF0 = 0x800C7094; // type:func -func_800F5C2C = 0x800C70D0; // type:func -Audio_PlayFanfare = 0x800C7108; // type:func -Audio_UpdateFanfare = 0x800C719C; // type:func -Audio_PlaySequenceWithSeqPlayerIO = 0x800C72BC; // type:func -Audio_SetSequenceMode = 0x800C7334; // type:func -Audio_SetBgmEnemyVolume = 0x800C7618; // type:func -Audio_UpdateMalonSinging = 0x800C776C; // type:func -func_800F64E0 = 0x800C79D0; // type:func -Audio_ToggleMalonSinging = 0x800C7A74; // type:func -Audio_SetEnvReverb = 0x800C7BB0; // type:func -Audio_SetCodeReverb = 0x800C7BCC; // type:func -func_800F6700 = 0x800C7BF0; // type:func -Audio_SetBaseFilter = 0x800C7C90; // type:func -Audio_SetExtraFilter = 0x800C7D18; // type:func -Audio_SetCutsceneFlag = 0x800C7DAC; // type:func -Audio_PlaySfxGeneralIfNotInCutscene = 0x800C7DC4; // type:func -Audio_PlaySfxIfNotInCutscene = 0x800C7E0C; // type:func -func_800F6964 = 0x800C7E54; // type:func -Audio_StopBgmAndFanfare = 0x800C7FA0; // type:func -func_800F6B3C = 0x800C802C; // type:func -Audio_DisableAllSeq = 0x800C8058; // type:func -func_800F6BB8 = 0x800C80A8; // type:func -func_800F6BDC = 0x800C80CC; // type:func -Audio_PreNMI = 0x800C8104; // type:func -func_800F6C34 = 0x800C8124; // type:func -Audio_SetNatureAmbienceChannelIO = 0x800C8254; // type:func -Audio_StartNatureAmbienceSequence = 0x800C8368; // type:func -Audio_PlayNatureAmbienceSequence = 0x800C84CC; // type:func -Audio_Init = 0x800C8624; // type:func -Audio_InitSound = 0x800C8648; // type:func -func_800F7170 = 0x800C869C; // type:func -func_800F71BC = 0x800C86E8; // type:func -func_800F7208 = 0x800C8734; // type:func -Audio_SetSfxBanksMute = 0x800C8790; // type:func -Audio_QueueSeqCmdMute = 0x800C87E8; // type:func -Audio_ClearBGMMute = 0x800C884C; // type:func -Audio_PlaySfxGeneral = 0x800C88BC; // type:func -Audio_RemoveMatchingSfxRequests = 0x800C893C; // type:func -Audio_ProcessSfxRequest = 0x800C8ADC; // type:func -Audio_RemoveSfxBankEntry = 0x800C8F78; // type:func -Audio_ChooseActiveSfx = 0x800C9110; // type:func -Audio_PlayActiveSfx = 0x800C9844; // type:func -Audio_StopSfxByBank = 0x800C9B64; // type:func -Audio_RemoveSfxFromBankByPos = 0x800C9C48; // type:func -Audio_StopSfxByPosAndBank = 0x800C9D64; // type:func -Audio_StopSfxByPos = 0x800C9DAC; // type:func -Audio_StopSfxByPosAndId = 0x800C9E08; // type:func -Audio_StopSfxByTokenAndId = 0x800C9F64; // type:func -Audio_StopSfxById = 0x800CA0C8; // type:func -Audio_ProcessSfxRequests = 0x800CA200; // type:func -Audio_SetUnusedBankLerp = 0x800CA264; // type:func -Audio_StepUnusedBankLerp = 0x800CA2F8; // type:func -func_800F8F88 = 0x800CA34C; // type:func -Audio_IsSfxPlaying = 0x800CA3B8; // type:func -Audio_ResetSfx = 0x800CA420; // type:func -Audio_StartSequence = 0x800CA5E0; // type:func -Audio_StopSequence = 0x800CA764; // type:func -Audio_ProcessSeqCmd = 0x800CA7EC; // type:func -Audio_QueueSeqCmd = 0x800CB2B0; // type:func -Audio_ProcessSeqCmds = 0x800CB2D8; // type:func -Audio_GetActiveSeqId = 0x800CB358; // type:func -Audio_IsSeqCmdNotQueued = 0x800CB3C0; // type:func -Audio_ResetSequenceRequests = 0x800CB418; // type:func -Audio_ReplaceSeqCmdSetupOpVolRestore = 0x800CB430; // type:func -Audio_SetVolumeScale = 0x800CB4E4; // type:func -Audio_UpdateActiveSequences = 0x800CB680; // type:func -func_800FAD34 = 0x800CBFD8; // type:func -Audio_ResetActiveSequences = 0x800CC09C; // type:func -Audio_ResetActiveSequencesAndVolume = 0x800CC158; // type:func -GfxPrint_Setup = 0x800CC200; // type:func -GfxPrint_SetColor = 0x800CC698; // type:func -GfxPrint_SetPosPx = 0x800CC6E4; // type:func -GfxPrint_SetPos = 0x800CC708; // type:func -GfxPrint_SetBasePosPx = 0x800CC730; // type:func -GfxPrint_PrintCharImpl = 0x800CC744; // type:func -GfxPrint_PrintChar = 0x800CCA50; // type:func -GfxPrint_PrintStringWithSize = 0x800CCC0C; // type:func -GfxPrint_PrintString = 0x800CCC68; // type:func -GfxPrint_Callback = 0x800CCCC0; // type:func -GfxPrint_Init = 0x800CCCEC; // type:func -GfxPrint_Destroy = 0x800CCD40; // type:func -GfxPrint_Open = 0x800CCD48; // type:func -GfxPrint_Close = 0x800CCD90; // type:func -GfxPrint_VPrintf = 0x800CCDA8; // type:func -GfxPrint_Printf = 0x800CCDC8; // type:func -RcpUtils_PrintRegisterStatus = 0x800CCE00; // type:func -RcpUtils_Reset = 0x800CD0F8; // type:func -Overlay_Relocate = 0x800CD130; // type:func -Overlay_Load = 0x800CD3F8; // type:func -Overlay_AllocateAndLoad = 0x800CD578; // type:func -PadUtils_Init = 0x800CD5E0; // type:func -func_800FCB70 = 0x800CD600; // type:func -PadUtils_ResetPressRel = 0x800CD608; // type:func -PadUtils_CheckCurExact = 0x800CD61C; // type:func -PadUtils_CheckCur = 0x800CD634; // type:func -PadUtils_CheckPressed = 0x800CD650; // type:func -PadUtils_CheckReleased = 0x800CD66C; // type:func -PadUtils_GetCurButton = 0x800CD688; // type:func -PadUtils_GetPressButton = 0x800CD690; // type:func -PadUtils_GetCurX = 0x800CD698; // type:func -PadUtils_GetCurY = 0x800CD6A0; // type:func -PadUtils_SetRelXY = 0x800CD6A8; // type:func -PadUtils_GetRelXImpl = 0x800CD6B4; // type:func -PadUtils_GetRelYImpl = 0x800CD6BC; // type:func -PadUtils_GetRelX = 0x800CD6C4; // type:func -PadUtils_GetRelY = 0x800CD6E4; // type:func -PadUtils_GetPressX = 0x800CD704; // type:func -PadUtils_GetPressY = 0x800CD70C; // type:func -PadUtils_UpdateRelXY = 0x800CD714; // type:func -func_800FC800 = 0x800CD7F0; // type:func -func_800FC83C = 0x800CD848; // type:func -func_800FC868 = 0x800CD894; // type:func -func_800FC8D8 = 0x800CD928; // type:func -func_800FC948 = 0x800CD9C0; // type:func -func_800FCA18 = 0x800CDAA4; // type:func -func_800FCB34 = 0x800CDB60; // type:func -SystemHeap_Init = 0x800CDBD0; // type:func -PadSetup_Init = 0x800CDC10; // type:func -Math_FTanF = 0x800CDD50; // type:func -Math_FFloorF = 0x800CDD84; // type:func -Math_FCeilF = 0x800CDDA4; // type:func -Math_FAbs = 0x800CDDC4; // type:func -Math_FAbsF = 0x800CDDF8; // type:func -Math_FRoundF = 0x800CDE28; // type:func -Math_FTruncF = 0x800CDE48; // type:func -Math_FNearbyIntF = 0x800CDE68; // type:func -Math_FAtanContFracF = 0x800CDE88; // type:func -Math_FAtan2F = 0x800CDFAC; // type:func -Math_FAsinF = 0x800CE0A0; // type:func -Math_FAcosF = 0x800CE0D0; // type:func -floorf = 0x800CE100; // type:func -floor = 0x800CE10C; // type:func -lfloorf = 0x800CE118; // type:func -lfloor = 0x800CE128; // type:func -ceilf = 0x800CE138; // type:func -ceil = 0x800CE144; // type:func -lceilf = 0x800CE150; // type:func -lceil = 0x800CE160; // type:func -truncf = 0x800CE170; // type:func -trunc = 0x800CE17C; // type:func -ltruncf = 0x800CE188; // type:func -ltrunc = 0x800CE198; // type:func -nearbyintf = 0x800CE1A8; // type:func -nearbyint = 0x800CE1B4; // type:func -lnearbyintf = 0x800CE1C0; // type:func -lnearbyint = 0x800CE1D0; // type:func -roundf = 0x800CE1E0; // type:func -round = 0x800CE1FC; // type:func -lroundf = 0x800CE21C; // type:func -lround = 0x800CE23C; // type:func -SystemArena_Malloc = 0x800CE260; // type:func -SystemArena_MallocR = 0x800CE2A8; // type:func -SystemArena_Realloc = 0x800CE2F0; // type:func -SystemArena_Free = 0x800CE340; // type:func -SystemArena_Calloc = 0x800CE380; // type:func -SystemArena_GetSizes = 0x800CE3F8; // type:func -SystemArena_Check = 0x800CE430; // type:func -SystemArena_Init = 0x800CE454; // type:func -SystemArena_Cleanup = 0x800CE484; // type:func -SystemArena_IsInitialized = 0x800CE4A8; // type:func -Rand_Next = 0x800CE4D0; // type:func -Rand_Seed = 0x800CE500; // type:func -Rand_ZeroOne = 0x800CE50C; // type:func -Rand_Seed_Variable = 0x800CE550; // type:func -Rand_Next_Variable = 0x800CE558; // type:func -Rand_ZeroOne_Variable = 0x800CE580; // type:func -__osMallocInit = 0x800CE5D0; // type:func -__osMallocCleanup = 0x800CE618; // type:func -__osMallocIsInitialized = 0x800CE638; // type:func -__osMallocDebug = 0x800CE644; // type:func -__osMallocRDebug = 0x800CE760; // type:func -__osMalloc = 0x800CE8A0; // type:func -__osMallocR = 0x800CE9BC; // type:func -__osFree = 0x800CEAF4; // type:func -__osFreeDebug = 0x800CEC24; // type:func -__osRealloc = 0x800CED54; // type:func -__osReallocDebug = 0x800CEEA8; // type:func -ArenaImpl_GetSizes = 0x800CEEC8; // type:func -__osCheckArena = 0x800CEF3C; // type:func -ArenaImpl_GetAllocFailures = 0x800CEF78; // type:func -proutSprintf = 0x800CEF80; // type:func -vsprintf = 0x800CEFA4; // type:func -sprintf = 0x800CEFF4; // type:func -PrintUtils_VPrintf = 0x800CF050; // type:func -PrintUtils_Printf = 0x800CF084; // type:func -JpegUtils_ProcessQuantizationTable = 0x800CF0B0; // type:func -JpegUtils_ParseHuffmanCodesLengths = 0x800CF118; // type:func -JpegUtils_GetHuffmanCodes = 0x800CF19C; // type:func -JpegUtils_SetHuffmanTable = 0x800CF208; // type:func -JpegUtils_ProcessHuffmanTableImpl = 0x800CF2B0; // type:func -JpegUtils_ProcessHuffmanTable = 0x800CF36C; // type:func -JpegUtils_SetHuffmanTableOld = 0x800CF444; // type:func -JpegUtils_ProcessHuffmanTableImplOld = 0x800CF4EC; // type:func -JpegDecoder_Decode = 0x800CF5C0; // type:func -JpegDecoder_ProcessMcu = 0x800CF7E8; // type:func -JpegDecoder_ParseNextSymbol = 0x800CF984; // type:func -JpegDecoder_ReadBits = 0x800CFAC0; // type:func -osGetIntMask = 0x800CFBB0; // type:func -guScaleF = 0x800CFC10; // type:func -guScale = 0x800CFC64; // type:func -sinf = 0x800CFCB0; // type:func -sins = 0x800CFE70; // type:func -_VirtualToPhysicalTask = 0x800CFEE0; // type:func -osSpTaskLoad = 0x800CFFFC; // type:func -osSpTaskStartGo = 0x800D018C; // type:func -__osMotorAccess = 0x800D01D0; // type:func -_MakeMotorData = 0x800D0338; // type:func -osMotorInit = 0x800D0444; // type:func -__osSiCreateAccessQueue = 0x800D05A0; // type:func -__osSiGetAccess = 0x800D05F0; // type:func -__osSiRelAccess = 0x800D0634; // type:func -osContInit = 0x800D0660; // type:func -__osContGetInitData = 0x800D07D0; // type:func -__osPackRequestData = 0x800D08A0; // type:func -osContStartReadData = 0x800D09A0; // type:func -osContGetReadData = 0x800D0A24; // type:func -__osPackReadData = 0x800D0AB0; // type:func -guPerspectiveF = 0x800D0B80; // type:func -guPerspective = 0x800D0DB0; // type:func -__osSpRawStartDma = 0x800D0E10; // type:func -__osSiRawStartDma = 0x800D0EA0; // type:func -osSpTaskYield = 0x800D0F50; // type:func -guMtxF2L = 0x800D0F70; // type:func -guMtxIdentF = 0x800D1070; // type:func -guMtxIdent = 0x800D10F8; // type:func -guMtxL2F = 0x800D1128; // type:func -guLookAtF = 0x800D11E0; // type:func -guLookAt = 0x800D1498; // type:func -osStopTimer = 0x800D1510; // type:func -sqrtf = 0x800D1600; // type:func -osAfterPreNMI = 0x800D1610; // type:func -osContStartQuery = 0x800D1630; // type:func -osContGetQuery = 0x800D16B4; // type:func -guLookAtHiliteF = 0x800D16E0; // type:func -guLookAtHilite = 0x800D1E18; // type:func -_Putfld = 0x800D1ED0; // type:func -_Printf = 0x800D2540; // type:func -memcpy = 0x800D2B90; // type:func -strlen = 0x800D2BBC; // type:func -strchr = 0x800D2BE4; // type:func -__osSpDeviceBusy = 0x800D2C30; // type:func -guPositionF = 0x800D2C60; // type:func -guPosition = 0x800D2E10; // type:func -osSpTaskYielded = 0x800D2E80; // type:func -guRotateF = 0x800D2F00; // type:func -guRotate = 0x800D3094; // type:func -osAiSetFrequency = 0x800D30F0; // type:func -__osGetActiveQueue = 0x800D3240; // type:func -guNormalize = 0x800D3250; // type:func -osDpGetStatus = 0x800D32E0; // type:func -osDpSetStatus = 0x800D32F0; // type:func -guOrthoF = 0x800D3300; // type:func -guOrtho = 0x800D3454; // type:func -cosf = 0x800D34C0; // type:func -coss = 0x800D3630; // type:func -osSetTime = 0x800D3660; // type:func -osViSetEvent = 0x800D3690; // type:func -guS2DInitBg = 0x800D3700; // type:func -__osPfsSelectBank = 0x800D3880; // type:func -osContSetCh = 0x800D3900; // type:func -osAiGetLength = 0x800D3970; // type:func -guTranslateF = 0x800D3980; // type:func -guTranslate = 0x800D39C8; // type:func -__osContRamWrite = 0x800D3A20; // type:func -__osPfsGetStatus = 0x800D3C70; // type:func -__osPfsRequestOneChannel = 0x800D3D40; // type:func -__osPfsGetOneChannelData = 0x800D3E04; // type:func -__osSumcalc = 0x800D3EA0; // type:func -__osIdCheckSum = 0x800D3F14; // type:func -__osRepairPackId = 0x800D4010; // type:func -__osCheckPackId = 0x800D4360; // type:func -__osGetId = 0x800D44C4; // type:func -__osCheckId = 0x800D4670; // type:func -__osPfsRWInode = 0x800D4744; // type:func -bcmp = 0x800D4A20; // type:func -__osContRamRead = 0x800D4B40; // type:func -__osContAddressCrc = 0x800D4D70; // type:func -__osContDataCrc = 0x800D4E40; // type:func -osPfsIsPlug = 0x800D4EE0; // type:func -__osPfsRequestData = 0x800D5080; // type:func -__osPfsGetInitData = 0x800D5150; // type:func -_Litob = 0x800D5220; // type:func -lldiv = 0x800D54C0; // type:func -ldiv = 0x800D55C0; // type:func -_Genld = 0x800D5650; // type:func -_Ldunscale = 0x800D5BB8; // type:func -_Ldtob = 0x800D5BC0; // type:func -__osSpGetStatus = 0x800D6110; // type:func -__osSpSetStatus = 0x800D6120; // type:func -osWritebackDCacheAll = 0x800D6130; // type:func -__osGetCurrFaultedThread = 0x800D6160; // type:func -__d_to_ll = 0x800D6170; // type:func -__f_to_ll = 0x800D618C; // type:func -__d_to_ull = 0x800D61A8; // type:func -__f_to_ull = 0x800D6248; // type:func -__ll_to_d = 0x800D62E4; // type:func -__ll_to_f = 0x800D62FC; // type:func -__ull_to_d = 0x800D6314; // type:func -__ull_to_f = 0x800D6348; // type:func -osViGetCurrentFramebuffer = 0x800D6380; // type:func -__osSpSetPc = 0x800D63C0; // type:func -sqrt = 0x800D6400; // type:func -fmodf = 0x800D6410; // type:func -memset = 0x800D6460; // type:func -memmove = 0x800D6490; // type:func -Message_ResetOcarinaNoteState = 0x800D6520; // type:func -Message_UpdateOcarinaMemoryGame = 0x800D661C; // type:func -Message_ShouldAdvance = 0x800D6740; // type:func -Message_ShouldAdvanceSilent = 0x800D6800; // type:func -Message_CloseTextbox = 0x800D6848; // type:func -Message_HandleChoiceSelection = 0x800D68C0; // type:func -Message_DrawTextChar = 0x800D6AA0; // type:func -Message_GrowTextbox = 0x800D6E18; // type:func -Message_FindMessageJPN = 0x800D701C; // type:func -Message_FindMessageNES = 0x800D70C0; // type:func -Message_FindCreditsMessage = 0x800D7164; // type:func -Message_SetTextColor = 0x800D71D8; // type:func -Message_DrawTextboxIcon = 0x800D748C; // type:func -Message_DrawItemIcon = 0x800D7BD4; // type:func -Message_HandleOcarina = 0x800D7F20; // type:func -Message_DrawTextWide = 0x800D8130; // type:func -Message_DrawText = 0x800D9524; // type:func -Message_LoadItemIcon = 0x800DA79C; // type:func -Message_Decode = 0x800DA93C; // type:func -Message_OpenText = 0x800DCE64; // type:func -Message_StartTextbox = 0x800DD440; // type:func -Message_ContinueTextbox = 0x800DD4AC; // type:func -Message_StartOcarinaImpl = 0x800DD57C; // type:func -Message_StartOcarina = 0x800DDA2C; // type:func -Message_StartOcarinaSunsSongDisabled = 0x800DDA5C; // type:func -Message_GetState = 0x800DDA90; // type:func -Message_DrawTextBox = 0x800DDBB0; // type:func -Message_SetView = 0x800DE050; // type:func -Message_DrawMain = 0x800DE098; // type:func -Message_Draw = 0x800E1074; // type:func -Message_Update = 0x800E1100; // type:func -Message_SetTables = 0x800E1C88; // type:func -GameOver_Init = 0x800E1D00; // type:func -GameOver_FadeInLights = 0x800E1D14; // type:func -GameOver_Update = 0x800E1D7C; // type:func -Interface_Destroy = 0x800E2240; // type:func -Interface_Init = 0x800E2260; // type:func -Message_Init = 0x800E2660; // type:func -Regs_InitDataImpl = 0x800E2704; // type:func -Regs_InitData = 0x800E35D0; // type:func -njpgdspMainTextStart = 0x800E7200; // type:func -func_801C6E80 = 0x801C7740; // type:func -func_801C70FC = 0x801C79BC; // type:func -func_801C7268 = 0x801C7BC4; // type:func -func_801C7C1C = 0x801C8510; // type:func -n64dd_SetDiskVersion = 0x801C8808; // type:func -ConsoleLogo_Calc = 0x80800000; // type:func -ConsoleLogo_SetupView = 0x8080009C; // type:func -ConsoleLogo_Draw = 0x80800134; // type:func -ConsoleLogo_Main = 0x80800690; // type:func -ConsoleLogo_Destroy = 0x80800750; // type:func -ConsoleLogo_Init = 0x808007B0; // type:func -MapSelect_LoadTitle = 0x808009C0; // type:func -MapSelect_LoadGame = 0x808009E0; // type:func -func_80800AD0_unknown = 0x80800AD0; // type:func -func_80800B08_unknown = 0x80800B08; // type:func -MapSelect_UpdateMenu = 0x80800B40; // type:func -MapSelect_PrintMenu = 0x808014A0; // type:func -MapSelect_PrintLoadingMessage = 0x8080167C; // type:func -MapSelect_PrintAgeSetting = 0x80801708; // type:func -MapSelect_PrintCutsceneSetting = 0x8080177C; // type:func -MapSelect_DrawMenu = 0x80801938; // type:func -MapSelect_DrawLoadingScreen = 0x80801A4C; // type:func -MapSelect_Draw = 0x80801B34; // type:func -MapSelect_Main = 0x80801BDC; // type:func -MapSelect_Destroy = 0x80801C08; // type:func -MapSelect_Init = 0x80801C14; // type:func -TitleSetup_SetupTitleScreen = 0x80803720; // type:func -func_80803C5C = 0x8080378C; // type:func -TitleSetup_Main = 0x80803798; // type:func -TitleSetup_Destroy = 0x808037DC; // type:func -TitleSetup_Init = 0x808037E8; // type:func -FileSelect_SetupCopySource = 0x80803880; // type:func -FileSelect_SelectCopySource = 0x80803A18; // type:func -FileSelect_SetupCopyDest1 = 0x80803D88; // type:func -FileSelect_SetupCopyDest2 = 0x80803F18; // type:func -FileSelect_SelectCopyDest = 0x80803FE0; // type:func -FileSelect_ExitToCopySource1 = 0x80804398; // type:func -FileSelect_ExitToCopySource2 = 0x80804464; // type:func -FileSelect_SetupCopyConfirm1 = 0x80804590; // type:func -FileSelect_SetupCopyConfirm2 = 0x808047B4; // type:func -FileSelect_CopyConfirm = 0x80804810; // type:func -FileSelect_ReturnToCopyDest = 0x80804A18; // type:func -FileSelect_CopyAnim1 = 0x80804C4C; // type:func -FileSelect_CopyAnim2 = 0x80804CC8; // type:func -FileSelect_CopyAnim3 = 0x80804E18; // type:func -FileSelect_CopyAnim4 = 0x80804F34; // type:func -FileSelect_CopyAnim5 = 0x80805024; // type:func -FileSelect_ExitCopyToMain = 0x80805324; // type:func -FileSelect_SetupEraseSelect = 0x80805460; // type:func -FileSelect_EraseSelect = 0x80805630; // type:func -FileSelect_SetupEraseConfirm1 = 0x808059BC; // type:func -FileSelect_SetupEraseConfirm2 = 0x80805C84; // type:func -FileSelect_EraseConfirm = 0x80805D60; // type:func -FileSelect_ExitToEraseSelect1 = 0x80805F48; // type:func -FileSelect_ExitToEraseSelect2 = 0x80805FF8; // type:func -FileSelect_EraseAnim1 = 0x80806214; // type:func -FileSelect_EraseAnim2 = 0x808063F4; // type:func -FileSelect_EraseAnim3 = 0x808064B8; // type:func -FileSelect_ExitEraseToMain = 0x80806724; // type:func -FileSelect_DrawCharacter = 0x808068C0; // type:func -FileSelect_DrawCharacterTransition = 0x80806A18; // type:func -FileSelect_SetKeyboardVtx = 0x80806C24; // type:func -FileSelect_SetNameEntryVtx = 0x80806EE8; // type:func -FileSelect_DrawKeyboard = 0x80807BBC; // type:func -FileSelect_ApplyDiacriticToCharacter = 0x80808480; // type:func -FileSelect_ApplyDiacriticToFilename = 0x80808688; // type:func -FileSelect_DrawNameEntry = 0x80808708; // type:func -FileSelect_StartNameEntry = 0x80809B64; // type:func -FileSelect_UpdateKeyboardCursor = 0x80809C18; // type:func -FileSelect_StartOptions = 0x8080A5F8; // type:func -FileSelect_UpdateOptionsMenu = 0x8080A688; // type:func -FileSelect_DrawOptionsImpl = 0x8080A900; // type:func -FileSelect_DrawOptions = 0x8080BCA0; // type:func -FileSelect_SetView = 0x8080BCC0; // type:func -FileSelect_QuadTextureIA8 = 0x8080BD44; // type:func -FileSelect_InitModeUpdate = 0x8080BF30; // type:func -FileSelect_InitModeDraw = 0x8080BF88; // type:func -FileSelect_FadeInMenuElements = 0x8080BF94; // type:func -FileSelect_SplitNumber = 0x8080C0FC; // type:func -FileSelect_StartFadeIn = 0x8080C170; // type:func -FileSelect_FinishFadeIn = 0x8080C1F8; // type:func -FileSelect_UpdateMainMenu = 0x8080C290; // type:func -FileSelect_UnusedCM31 = 0x8080CB6C; // type:func -FileSelect_UnusedCMDelay = 0x8080CB78; // type:func -FileSelect_RotateToNameEntry = 0x8080CBCC; // type:func -FileSelect_RotateToOptions = 0x8080CC40; // type:func -FileSelect_RotateToMain = 0x8080CCB4; // type:func -FileSelect_PulsateCursor = 0x8080CD2C; // type:func -FileSelect_ConfigModeUpdate = 0x8080CE28; // type:func -FileSelect_SetWindowVtx = 0x8080CE64; // type:func -FileSelect_SetWindowContentVtx = 0x8080D138; // type:func -FileSelect_DrawFileInfo = 0x8080E3FC; // type:func -FileSelect_DrawWindowContents = 0x8080EB78; // type:func -FileSelect_ConfigModeDraw = 0x8081004C; // type:func -FileSelect_FadeMainToSelect = 0x808108B0; // type:func -FileSelect_MoveSelectedFileToTop = 0x80810A1C; // type:func -FileSelect_FadeInFileInfo = 0x80810B20; // type:func -FileSelect_ConfirmFile = 0x80810C04; // type:func -FileSelect_FadeOutFileInfo = 0x80810DD8; // type:func -FileSelect_MoveSelectedFileToSlot = 0x80810EC8; // type:func -FileSelect_FadeOut = 0x80811120; // type:func -FileSelect_LoadGame = 0x8081117C; // type:func -FileSelect_SelectModeUpdate = 0x80811370; // type:func -FileSelect_SelectModeDraw = 0x808113AC; // type:func -FileSelect_Main = 0x80811760; // type:func -FileSelect_InitContext = 0x80811D5C; // type:func -FileSelect_Destroy = 0x80812388; // type:func -FileSelect_Init = 0x80812394; // type:func -KaleidoScope_DrawQuestStatus = 0x808137C0; // type:func -KaleidoScope_UpdateQuestStatusPoint = 0x80815BF4; // type:func -KaleidoScope_DrawDebugEditorText = 0x80815C10; // type:func -KaleidoScope_DrawDigit = 0x80815F04; // type:func -KaleidoScope_DrawDebugEditor = 0x80816078; // type:func -KaleidoScope_DrawEquipmentImage = 0x80817BA0; // type:func -KaleidoScope_DrawPlayerWork = 0x80817FE8; // type:func -KaleidoScope_DrawEquipment = 0x8081818C; // type:func -KaleidoScope_DrawAmmoCount = 0x80819670; // type:func -KaleidoScope_SetCursorPos = 0x80819BF4; // type:func -KaleidoScope_SetItemCursorPos = 0x80819C24; // type:func -KaleidoScope_DrawItemSelect = 0x80819C50; // type:func -KaleidoScope_UpdateItemEquip = 0x8081AA60; // type:func -KaleidoScope_DrawDungeonMap = 0x8081B660; // type:func -KaleidoScope_DrawWorldMap = 0x8081CE54; // type:func -KaleidoScope_UpdatePrompt = 0x8081E970; // type:func -KaleidoScope_SetupPlayerPreRender = 0x8081EB70; // type:func -KaleidoScope_ProcessPlayerPreRender = 0x8081EC48; // type:func -KaleidoScope_QuadTextureIA4 = 0x8081EC80; // type:func -KaleidoScope_QuadTextureIA8 = 0x8081EE60; // type:func -KaleidoScope_OverridePalIndexCI4 = 0x8081F04C; // type:func -KaleidoScope_MoveCursorToSpecialPos = 0x8081F184; // type:func -KaleidoScope_DrawQuadTextureRGBA32 = 0x8081F1E8; // type:func -KaleidoScope_SetDefaultCursor = 0x8081F3F8; // type:func -KaleidoScope_SetupPageSwitch = 0x8081F4B8; // type:func -KaleidoScope_HandlePageToggles = 0x8081F630; // type:func -KaleidoScope_DrawCursor = 0x8081F760; // type:func -KaleidoScope_DrawPageSections = 0x8081FAD8; // type:func -KaleidoScope_DrawPages = 0x8081FD98; // type:func -KaleidoScope_DrawInfoPanel = 0x80821594; // type:func -KaleidoScope_UpdateNamePanel = 0x80822D48; // type:func -KaleidoScope_UpdatePageSwitch = 0x80822F40; // type:func -KaleidoScope_SetView = 0x80823120; // type:func -KaleidoScope_SetPageVertices = 0x8082319C; // type:func -KaleidoScope_SetVertices = 0x8082382C; // type:func -KaleidoScope_DrawGameOver = 0x8082536C; // type:func -KaleidoScope_Draw = 0x80825A00; // type:func -KaleidoScope_GrayOutTextureRGBA32 = 0x80825C1C; // type:func -KaleidoScope_UpdateOpening = 0x80825CD0; // type:func -KaleidoScope_UpdateCursorVtx = 0x80825EC0; // type:func -KaleidoScope_LoadDungeonMap = 0x80826204; // type:func -KaleidoScope_UpdateDungeonMap = 0x808262A0; // type:func -KaleidoScope_Update = 0x808263C0; // type:func -PauseMapMark_Init = 0x80828C00; // type:func -PauseMapMark_Clear = 0x80828C6C; // type:func -PauseMapMark_DrawForDungeon = 0x80828CB8; // type:func -PauseMapMark_Draw = 0x808292E8; // type:func -Player_ZeroSpeedXZ = 0x808301C0; // type:func -func_80832224 = 0x808301D8; // type:func -func_8083224C = 0x80830200; // type:func -Player_AnimPlayOnce = 0x8083021C; // type:func -Player_AnimPlayLoop = 0x80830240; // type:func -Player_AnimPlayLoopAdjusted = 0x80830264; // type:func -Player_AnimPlayOnceAdjusted = 0x80830294; // type:func -func_808322FC = 0x808302C4; // type:func -func_80832318 = 0x808302E4; // type:func -func_80832340 = 0x80830310; // type:func -Player_DetachHeldActor = 0x80830380; // type:func -func_80832440 = 0x8083040C; // type:func -Player_PutAwayHeldItem = 0x808304F4; // type:func -func_80832564 = 0x80830530; // type:func -func_80832594 = 0x80830568; // type:func -func_80832630 = 0x80830608; // type:func -Player_RequestRumble = 0x80830624; // type:func -Player_PlayVoiceSfx = 0x80830670; // type:func -func_808326F0 = 0x808306D0; // type:func -Player_ApplyFloorSfxOffset = 0x8083073C; // type:func -Player_PlayFloorSfx = 0x80830758; // type:func -Player_ApplyFloorAndAgeSfxOffsets = 0x80830790; // type:func -Player_PlayFloorSfxByAge = 0x808307B8; // type:func -Player_PlaySteppingSfx = 0x808307F0; // type:func -Player_PlayJumpingSfx = 0x8083084C; // type:func -Player_PlayLandingSfx = 0x80830898; // type:func -func_808328EC = 0x808308E4; // type:func -Player_ProcessAnimSfxList = 0x80830918; // type:func -Player_AnimChangeOnceMorph = 0x80830B00; // type:func -Player_AnimChangeOnceMorphAdjusted = 0x80830B6C; // type:func -Player_AnimChangeLoopMorph = 0x80830BDC; // type:func -Player_AnimChangeFreeze = 0x80830C24; // type:func -Player_AnimChangeLoopSlowMorph = 0x80830C68; // type:func -func_80832CB0 = 0x80830CB0; // type:func -Player_SkelAnimeResetPrevTranslRot = 0x80830D04; // type:func -Player_SkelAnimeResetPrevTranslRotAgeScale = 0x80830D2C; // type:func -Player_ZeroRootLimbYaw = 0x80830DB8; // type:func -func_80832DBC = 0x80830DC8; // type:func -func_80832E48 = 0x80830E54; // type:func -Player_AnimReplaceApplyFlags = 0x80830F64; // type:func -Player_AnimReplacePlayOnceSetSpeed = 0x8083100C; // type:func -Player_AnimReplacePlayOnce = 0x80831054; // type:func -Player_AnimReplacePlayOnceAdjusted = 0x8083107C; // type:func -Player_AnimReplaceNormalPlayOnceAdjusted = 0x808310A4; // type:func -Player_AnimReplacePlayLoopSetSpeed = 0x808310C4; // type:func -Player_AnimReplacePlayLoop = 0x8083110C; // type:func -Player_AnimReplacePlayLoopAdjusted = 0x80831134; // type:func -Player_AnimReplaceNormalPlayLoopAdjusted = 0x8083115C; // type:func -Player_ProcessControlStick = 0x8083117C; // type:func -func_8083328C = 0x808312A8; // type:func -func_808332B8 = 0x808312D8; // type:func -func_808332E4 = 0x80831304; // type:func -func_808332F4 = 0x80831318; // type:func -func_80833338 = 0x8083135C; // type:func -func_80833350 = 0x80831378; // type:func -func_808333FC = 0x8083142C; // type:func -func_80833438 = 0x80831468; // type:func -func_808334B4 = 0x808314E4; // type:func -func_808334E4 = 0x80831518; // type:func -func_80833528 = 0x80831560; // type:func -func_8083356C = 0x808315A8; // type:func -func_808335B0 = 0x808315F0; // type:func -func_808335F4 = 0x80831638; // type:func -Player_SetUpperActionFunc = 0x80831680; // type:func -Player_InitItemActionWithAnim = 0x808316AC; // type:func -Player_ItemToItemAction = 0x8083176C; // type:func -Player_InitDefaultIA = 0x808317B8; // type:func -Player_InitDekuStickIA = 0x808317C8; // type:func -Player_InitHammerIA = 0x808317E4; // type:func -Player_InitBowOrSlingshotIA = 0x808317F4; // type:func -Player_InitExplosiveIA = 0x8083182C; // type:func -Player_InitHookshotIA = 0x8083196C; // type:func -Player_InitBoomerangIA = 0x808319DC; // type:func -Player_InitItemAction = 0x808319F8; // type:func -func_80833A20 = 0x80831A84; // type:func -func_80833B2C = 0x80831B8C; // type:func -func_80833B54 = 0x80831BB4; // type:func -func_80833BCC = 0x80831C2C; // type:func -func_80833C04 = 0x80831C68; // type:func -func_80833C3C = 0x80831CA4; // type:func -Player_ItemIsInUse = 0x80831CBC; // type:func -Player_ItemIsItemAction = 0x80831D08; // type:func -Player_GetItemOnButton = 0x80831D50; // type:func -Player_ProcessItemButtons = 0x80831E6C; // type:func -Player_StartChangingHeldItem = 0x8083214C; // type:func -Player_UpdateItems = 0x80832304; // type:func -func_80834380 = 0x808323EC; // type:func -func_8083442C = 0x80832498; // type:func -Player_FinishItemChange = 0x80832600; // type:func -func_80834644 = 0x808326B0; // type:func -func_808346C4 = 0x80832730; // type:func -func_80834758 = 0x808327C4; // type:func -func_8083485C = 0x808328CC; // type:func -func_80834894 = 0x80832904; // type:func -Player_WaitToFinishItemChange = 0x80832960; // type:func -func_8083499C = 0x80832A10; // type:func -Player_UpperAction_Sword = 0x80832A50; // type:func -Player_UpperAction_ChangeHeldItem = 0x80832AA0; // type:func -func_80834B5C = 0x80832BD0; // type:func -func_80834BD4 = 0x80832C4C; // type:func -func_80834C74 = 0x80832CF0; // type:func -func_80834D2C = 0x80832DA8; // type:func -func_80834E44 = 0x80832EC0; // type:func -func_80834E7C = 0x80832EF8; // type:func -func_80834EB8 = 0x80832F34; // type:func -func_80834F2C = 0x80832FA8; // type:func -func_80834FBC = 0x80833038; // type:func -func_8083501C = 0x80833098; // type:func -func_808350A4 = 0x80833120; // type:func -func_808351D4 = 0x80833254; // type:func -func_808353D8 = 0x80833460; // type:func -func_80835588 = 0x80833610; // type:func -Player_SetParallel = 0x8083366C; // type:func -func_80835644 = 0x808336D8; // type:func -func_80835688 = 0x80833720; // type:func -Player_UpperAction_CarryActor = 0x80833780; // type:func -func_808357E8 = 0x80833880; // type:func -func_80835800 = 0x8083389C; // type:func -func_80835884 = 0x80833920; // type:func -func_808358F0 = 0x8083398C; // type:func -func_808359FC = 0x80833AA0; // type:func -func_80835B60 = 0x80833C08; // type:func -func_80835C08 = 0x80833CB0; // type:func -Player_SetupAction = 0x80833D08; // type:func -func_80835DAC = 0x80833E64; // type:func -func_80835DE4 = 0x80833E98; // type:func -func_80835E44 = 0x80833EFC; // type:func -func_80835EA4 = 0x80833F60; // type:func -Player_DestroyHookshot = 0x80833FBC; // type:func -Player_UseItem = 0x8083400C; // type:func -func_80836448 = 0x80834514; // type:func -Player_CanUpdateItems = 0x80834694; // type:func -Player_UpdateUpperBody = 0x80834740; // type:func -Player_SetupWaitForPutAway = 0x80834968; // type:func -Player_UpdateShapeYaw = 0x808349C0; // type:func -func_808369C8 = 0x80834A9C; // type:func -func_80836AB8 = 0x80834B88; // type:func -func_80836BEC = 0x80834CBC; // type:func -Player_CalcSpeedAndYawFromControlStick = 0x80835080; // type:func -func_8083721C = 0x808352F0; // type:func -Player_GetMovementSpeedAndYaw = 0x80835344; // type:func -Player_TryActionChangeList = 0x80835424; // type:func -Player_TryActionInterrupt = 0x80835580; // type:func -func_80837530 = 0x80835618; // type:func -Player_CanSpinAttack = 0x808356C8; // type:func -func_80837704 = 0x808357F8; // type:func -func_808377DC = 0x808358D0; // type:func -func_80837818 = 0x80835914; // type:func -func_80837918 = 0x80835A14; // type:func -func_80837948 = 0x80835A44; // type:func -func_80837AE0 = 0x80835BE4; // type:func -func_80837AFC = 0x80835C00; // type:func -func_80837B18 = 0x80835C20; // type:func -func_80837B60 = 0x80835C68; // type:func -func_80837B9C = 0x80835CA4; // type:func -func_80837C0C = 0x80835D14; // type:func -func_80838144 = 0x8083624C; // type:func -func_8083816C = 0x80836274; // type:func -func_8083819C = 0x808362A4; // type:func -func_8083821C = 0x80836328; // type:func -func_80838280 = 0x8083638C; // type:func -func_808382BC = 0x808363C8; // type:func -func_808382DC = 0x808363E8; // type:func -func_80838940 = 0x80836A4C; // type:func -func_808389E8 = 0x80836AF0; // type:func -Player_ActionChange_12 = 0x80836B1C; // type:func -func_80838E70 = 0x80836F70; // type:func -func_80838F18 = 0x80837020; // type:func -func_80838F5C = 0x8083706C; // type:func -func_80838FB8 = 0x808370D0; // type:func -Player_HandleExitsAndVoids = 0x8083714C; // type:func -Player_GetRelativePosition = 0x808376F0; // type:func -Player_SpawnFairy = 0x80837794; // type:func -func_808396F4 = 0x80837808; // type:func -func_8083973C = 0x80837854; // type:func -Player_PosVsWallLineTest = 0x80837880; // type:func -Player_ActionChange_1 = 0x8083791C; // type:func -func_80839E88 = 0x80837FB0; // type:func -func_80839F30 = 0x80838054; // type:func -func_80839F90 = 0x808380B0; // type:func -func_80839FFC = 0x8083811C; // type:func -func_8083A060 = 0x80838184; // type:func -func_8083A098 = 0x808381C0; // type:func -func_8083A0D4 = 0x80838200; // type:func -func_8083A0F4 = 0x80838220; // type:func -func_8083A2F8 = 0x80838424; // type:func -func_8083A360 = 0x80838494; // type:func -func_8083A388 = 0x808384BC; // type:func -func_8083A3B0 = 0x808384E4; // type:func -func_8083A40C = 0x8083853C; // type:func -func_8083A434 = 0x80838564; // type:func -func_8083A4A8 = 0x808385D8; // type:func -func_8083A5C4 = 0x808386F4; // type:func -func_8083A6AC = 0x808387E8; // type:func -func_8083A9B8 = 0x80838AF0; // type:func -func_8083AA10 = 0x80838B48; // type:func -func_8083AD4C = 0x80838E84; // type:func -Player_StartCsAction = 0x80838F0C; // type:func -func_8083AE40 = 0x80838F78; // type:func -func_8083AF44 = 0x80839000; // type:func -func_8083B010 = 0x808390D4; // type:func -Player_ActionChange_13 = 0x80839108; // type:func -Player_ActionChange_4 = 0x8083970C; // type:func -func_8083B8F4 = 0x808399B8; // type:func -Player_ActionChange_0 = 0x80839A60; // type:func -func_8083BA90 = 0x80839B58; // type:func -func_8083BB20 = 0x80839BF0; // type:func -func_8083BBA0 = 0x80839C70; // type:func -func_8083BC04 = 0x80839CD8; // type:func -func_8083BC7C = 0x80839D50; // type:func -func_8083BCD0 = 0x80839DA4; // type:func -Player_ActionChange_10 = 0x80839E90; // type:func -func_8083BF50 = 0x8083A024; // type:func -func_8083C0B8 = 0x8083A188; // type:func -func_8083C0E8 = 0x8083A1C0; // type:func -func_8083C148 = 0x8083A21C; // type:func -Player_ActionChange_6 = 0x8083A2B8; // type:func -Player_ActionChange_11 = 0x8083A390; // type:func -func_8083C484 = 0x8083A568; // type:func -func_8083C50C = 0x8083A5F0; // type:func -Player_ActionChange_8 = 0x8083A628; // type:func -func_8083C61C = 0x8083A704; // type:func -func_8083C6B8 = 0x8083A7A0; // type:func -func_8083C858 = 0x8083A944; // type:func -func_8083C8DC = 0x8083A9C8; // type:func -func_8083C910 = 0x8083A9FC; // type:func -func_8083CA20 = 0x8083AB10; // type:func -func_8083CA54 = 0x8083AB48; // type:func -func_8083CA9C = 0x8083AB90; // type:func -func_8083CB2C = 0x8083AC24; // type:func -func_8083CB94 = 0x8083AC88; // type:func -func_8083CBF0 = 0x8083ACE4; // type:func -func_8083CC9C = 0x8083AD8C; // type:func -func_8083CD00 = 0x8083ADEC; // type:func -func_8083CD54 = 0x8083AE40; // type:func -func_8083CE0C = 0x8083AEFC; // type:func -func_8083CEAC = 0x8083AF98; // type:func -func_8083CF10 = 0x8083AFF8; // type:func -func_8083CF5C = 0x8083B040; // type:func -func_8083CFA8 = 0x8083B088; // type:func -func_8083D0A8 = 0x8083B190; // type:func -func_8083D12C = 0x8083B218; // type:func -func_8083D330 = 0x8083B41C; // type:func -func_8083D36C = 0x8083B458; // type:func -func_8083D53C = 0x8083B62C; // type:func -func_8083D6EC = 0x8083B7DC; // type:func -func_8083DB98 = 0x8083BC8C; // type:func -func_8083DC54 = 0x8083BD48; // type:func -func_8083DDC8 = 0x8083BEBC; // type:func -func_8083DF68 = 0x8083C064; // type:func -func_8083DFE0 = 0x8083C0E0; // type:func -Player_ActionChange_3 = 0x8083C200; // type:func -Player_GetSlopeDirection = 0x8083C39C; // type:func -Player_HandleSlopes = 0x8083C418; // type:func -func_8083E4C4 = 0x8083C5CC; // type:func -Player_ActionChange_2 = 0x8083C6B4; // type:func -func_8083EA94 = 0x8083CB48; // type:func -func_8083EAF0 = 0x8083CBA4; // type:func -Player_ActionChange_9 = 0x8083CBF8; // type:func -func_8083EC18 = 0x8083CCCC; // type:func -func_8083F070 = 0x8083D128; // type:func -Player_TryEnteringCrawlspace = 0x8083D180; // type:func -func_8083F360 = 0x8083D418; // type:func -func_8083F524 = 0x8083D5DC; // type:func -Player_TryLeavingCrawlspace = 0x8083D628; // type:func -func_8083F72C = 0x8083D7E4; // type:func -Player_ActionChange_5 = 0x8083D870; // type:func -func_8083F9D0 = 0x8083DA84; // type:func -func_8083FAB8 = 0x8083DB68; // type:func -func_8083FB14 = 0x8083DBC4; // type:func -func_8083FB7C = 0x8083DC2C; // type:func -func_8083FBC0 = 0x8083DC6C; // type:func -func_8083FC68 = 0x8083DD18; // type:func -func_8083FD78 = 0x8083DE28; // type:func -func_8083FFB8 = 0x8083E06C; // type:func -func_80840058 = 0x8083E10C; // type:func -func_80840138 = 0x8083E1F4; // type:func -func_808401B0 = 0x8083E26C; // type:func -func_8084021C = 0x8083E2D8; // type:func -func_8084029C = 0x8083E358; // type:func -Player_Action_80840450 = 0x8083E510; // type:func -Player_Action_808407CC = 0x8083E88C; // type:func -func_808409CC = 0x8083EA8C; // type:func -Player_Action_80840BC8 = 0x8083EC88; // type:func -Player_Action_80840DE4 = 0x8083EEA8; // type:func -func_80841138 = 0x8083F1FC; // type:func -func_8084140C = 0x8083F4D8; // type:func -func_80841458 = 0x8083F524; // type:func -Player_Action_808414F8 = 0x8083F5C4; // type:func -func_808416C0 = 0x8083F798; // type:func -Player_Action_8084170C = 0x8083F7E4; // type:func -Player_Action_808417FC = 0x8083F8D4; // type:func -func_80841860 = 0x8083F938; // type:func -Player_Action_8084193C = 0x8083FA14; // type:func -Player_Action_80841BA8 = 0x8083FC78; // type:func -func_80841CC4 = 0x8083FD94; // type:func -func_80841EE4 = 0x8083FFB8; // type:func -Player_Action_80842180 = 0x8084025C; // type:func -Player_Action_8084227C = 0x80840360; // type:func -Player_Action_808423EC = 0x808404D4; // type:func -Player_Action_8084251C = 0x80840604; // type:func -func_8084260C = 0x808406F4; // type:func -func_8084269C = 0x80840784; // type:func -Player_Action_8084279C = 0x80840884; // type:func -func_8084285C = 0x80840944; // type:func -func_808428D8 = 0x808409C0; // type:func -func_80842964 = 0x80840A50; // type:func -Player_RequestQuake = 0x80840AA8; // type:func -func_80842A28 = 0x80840B1C; // type:func -func_80842A88 = 0x80840B80; // type:func -func_80842AC4 = 0x80840BBC; // type:func -func_80842B7C = 0x80840C78; // type:func -func_80842CF0 = 0x80840DF0; // type:func -func_80842D20 = 0x80840E28; // type:func -func_80842DF4 = 0x80840F00; // type:func -Player_Action_80843188 = 0x80841294; // type:func -Player_Action_808435C4 = 0x808416D0; // type:func -Player_Action_8084370C = 0x8084181C; // type:func -Player_Action_8084377C = 0x80841890; // type:func -Player_Action_80843954 = 0x80841A6C; // type:func -Player_Action_80843A38 = 0x80841B54; // type:func -func_80843AE8 = 0x80841C08; // type:func -Player_Action_80843CEC = 0x80841E0C; // type:func -func_80843E14 = 0x80841F38; // type:func -func_80843E64 = 0x80841F8C; // type:func -func_8084409C = 0x808421C4; // type:func -Player_Action_8084411C = 0x8084224C; // type:func -Player_Action_80844708 = 0x80842840; // type:func -Player_Action_80844A44 = 0x80842B7C; // type:func -Player_Action_80844AF4 = 0x80842C2C; // type:func -func_80844BE4 = 0x80842D1C; // type:func -func_80844CF8 = 0x80842E34; // type:func -func_80844D30 = 0x80842E6C; // type:func -func_80844D68 = 0x80842EA4; // type:func -func_80844DC8 = 0x80842F08; // type:func -func_80844E3C = 0x80842F7C; // type:func -Player_Action_80844E68 = 0x80842FAC; // type:func -Player_Action_80845000 = 0x80843144; // type:func -Player_Action_80845308 = 0x8084344C; // type:func -Player_Action_80845668 = 0x808437AC; // type:func -Player_Action_WaitForPutAway = 0x80843A18; // type:func -func_80845964 = 0x80843AAC; // type:func -func_80845BA0 = 0x80843CF0; // type:func -func_80845C68 = 0x80843DBC; // type:func -Player_Action_80845CA4 = 0x80843DFC; // type:func -Player_Action_80845EF8 = 0x8084405C; // type:func -Player_Action_80846050 = 0x808441B4; // type:func -Player_Action_80846120 = 0x8084428C; // type:func -Player_Action_80846260 = 0x808443CC; // type:func -Player_Action_80846358 = 0x808444CC; // type:func -Player_Action_80846408 = 0x8084457C; // type:func -Player_Action_808464B0 = 0x80844624; // type:func -Player_Action_80846578 = 0x808446F0; // type:func -func_8084663C = 0x808447B8; // type:func -func_80846648 = 0x808447C8; // type:func -func_80846660 = 0x808447E4; // type:func -func_80846720 = 0x808448A4; // type:func -func_808467D4 = 0x80844958; // type:func -func_808468A8 = 0x80844A34; // type:func -func_808468E8 = 0x80844A7C; // type:func -func_80846978 = 0x80844B0C; // type:func -func_808469BC = 0x80844B50; // type:func -Player_SpawnMagicSpell = 0x80844B90; // type:func -func_80846A68 = 0x80844BFC; // type:func -Player_InitCommon = 0x80844C3C; // type:func -Player_Init = 0x80844E6C; // type:func -func_808471F4 = 0x8084537C; // type:func -func_80847298 = 0x80845420; // type:func -Player_UpdateInterface = 0x8084555C; // type:func -Player_UpdateHoverBoots = 0x80845C0C; // type:func -Player_ProcessSceneCollision = 0x80845D34; // type:func -Player_UpdateCamAndSeqModes = 0x8084683C; // type:func -Player_UpdateBurningDekuStick = 0x80846B9C; // type:func -Player_UpdateBodyShock = 0x80846CE4; // type:func -Player_UpdateBodyBurn = 0x80846E14; // type:func -Player_DetectRumbleSecrets = 0x80847098; // type:func -Player_UpdateCommon = 0x80847140; // type:func -Player_Update = 0x8084804C; // type:func -Player_DrawGameplay = 0x80848284; // type:func -Player_Draw = 0x80848704; // type:func -Player_Destroy = 0x80848C38; // type:func -func_8084ABD8 = 0x80848CBC; // type:func -func_8084AEEC = 0x80848FD0; // type:func -func_8084B000 = 0x808490EC; // type:func -func_8084B158 = 0x8084924C; // type:func -Player_Action_8084B1D8 = 0x808492CC; // type:func -func_8084B3CC = 0x808494BC; // type:func -func_8084B498 = 0x80849590; // type:func -func_8084B4D4 = 0x808495CC; // type:func -Player_Action_8084B530 = 0x8084962C; // type:func -Player_Action_8084B78C = 0x80849894; // type:func -func_8084B840 = 0x80849948; // type:func -Player_Action_8084B898 = 0x808499A4; // type:func -Player_Action_8084B9E4 = 0x80849AF0; // type:func -Player_Action_8084BBE4 = 0x80849CF4; // type:func -Player_Action_8084BDFC = 0x80849F08; // type:func -func_8084BEE4 = 0x80849FF0; // type:func -Player_Action_8084BF1C = 0x8084A028; // type:func -Player_Action_8084C5F8 = 0x8084A708; // type:func -Player_Action_8084C760 = 0x8084A870; // type:func -Player_Action_8084C81C = 0x8084A92C; // type:func -func_8084C89C = 0x8084A9AC; // type:func -func_8084C9BC = 0x8084AAD8; // type:func -func_8084CBF4 = 0x8084AD10; // type:func -Player_Action_8084CC98 = 0x8084ADB8; // type:func -Player_Action_8084D3E4 = 0x8084B508; // type:func -func_8084D530 = 0x8084B65C; // type:func -func_8084D574 = 0x8084B6A4; // type:func -func_8084D5CC = 0x8084B700; // type:func -Player_Action_8084D610 = 0x8084B74C; // type:func -Player_Action_8084D7C4 = 0x8084B8FC; // type:func -Player_Action_8084D84C = 0x8084B98C; // type:func -func_8084D980 = 0x8084BAC0; // type:func -Player_Action_8084DAB4 = 0x8084BBF8; // type:func -func_8084DBC4 = 0x8084BD08; // type:func -Player_Action_8084DC48 = 0x8084BD8C; // type:func -func_8084DF6C = 0x8084C0B0; // type:func -func_8084DFAC = 0x8084C0F4; // type:func -func_8084DFF4 = 0x8084C140; // type:func -Player_Action_8084E1EC = 0x8084C338; // type:func -Player_Action_8084E30C = 0x8084C458; // type:func -Player_Action_8084E368 = 0x8084C4B8; // type:func -Player_Action_8084E3C4 = 0x8084C518; // type:func -Player_Action_8084E604 = 0x8084C758; // type:func -Player_Action_8084E6D4 = 0x8084C828; // type:func -func_8084E988 = 0x8084CADC; // type:func -Player_Action_8084E9AC = 0x8084CB00; // type:func -Player_Action_8084EAC0 = 0x8084CC14; // type:func -Player_Action_8084ECA4 = 0x8084CE00; // type:func -Player_Action_8084EED8 = 0x8084D038; // type:func -Player_Action_8084EFC0 = 0x8084D120; // type:func -Player_Action_8084F104 = 0x8084D268; // type:func -Player_Action_8084F308 = 0x8084D470; // type:func -Player_Action_8084F390 = 0x8084D4F8; // type:func -Player_Action_8084F608 = 0x8084D770; // type:func -Player_Action_8084F698 = 0x8084D800; // type:func -Player_Action_8084F710 = 0x8084D878; // type:func -Player_Action_8084F88C = 0x8084D9F4; // type:func -Player_Action_8084F9A0 = 0x8084DB08; // type:func -Player_Action_8084F9C0 = 0x8084DB28; // type:func -Player_Action_8084FA54 = 0x8084DBBC; // type:func -Player_Action_8084FB10 = 0x8084DC78; // type:func -Player_Action_8084FBF4 = 0x8084DD5C; // type:func -func_8084FF7C = 0x8084DE14; // type:func -Player_UpdateBunnyEars = 0x8084DEC8; // type:func -Player_ActionChange_7 = 0x8084E0C0; // type:func -Player_Action_808502D0 = 0x8084E16C; // type:func -Player_Action_808505DC = 0x8084E47C; // type:func -Player_Action_8085063C = 0x8084E4DC; // type:func -Player_Action_8085076C = 0x8084E60C; // type:func -Player_Action_808507F4 = 0x8084E694; // type:func -Player_Action_80850AEC = 0x8084E990; // type:func -Player_Action_80850C68 = 0x8084EB10; // type:func -Player_Action_80850E84 = 0x8084ED2C; // type:func -Player_AnimChangeOnceMorphZeroRootYawSpeed = 0x8084ED80; // type:func -Player_AnimChangeOnceMorphAdjustedZeroRootYawSpeed = 0x8084EDC4; // type:func -Player_AnimChangeLoopMorphAdjustedZeroRootYawSpeed = 0x8084EE44; // type:func -func_80851008 = 0x8084EEB0; // type:func -func_80851030 = 0x8084EED8; // type:func -func_80851050 = 0x8084EEF8; // type:func -func_80851094 = 0x8084EF3C; // type:func -func_808510B4 = 0x8084EF5C; // type:func -func_808510D4 = 0x8084EF7C; // type:func -func_808510F4 = 0x8084EF9C; // type:func -func_80851114 = 0x8084EFBC; // type:func -func_80851134 = 0x8084EFDC; // type:func -func_80851154 = 0x8084EFFC; // type:func -func_80851174 = 0x8084F01C; // type:func -func_80851194 = 0x8084F03C; // type:func -func_808511B4 = 0x8084F05C; // type:func -func_808511D4 = 0x8084F07C; // type:func -func_808511FC = 0x8084F0A8; // type:func -func_80851248 = 0x8084F0FC; // type:func -func_80851294 = 0x8084F150; // type:func -func_808512E0 = 0x8084F1A4; // type:func -func_80851314 = 0x8084F1DC; // type:func -func_80851368 = 0x8084F230; // type:func -func_808513BC = 0x8084F284; // type:func -func_808514C0 = 0x8084F38C; // type:func -func_8085157C = 0x8084F448; // type:func -func_808515A4 = 0x8084F474; // type:func -func_80851688 = 0x8084F558; // type:func -func_80851750 = 0x8084F628; // type:func -func_80851788 = 0x8084F664; // type:func -func_80851828 = 0x8084F704; // type:func -func_808518DC = 0x8084F7BC; // type:func -func_8085190C = 0x8084F7F0; // type:func -func_80851998 = 0x8084F87C; // type:func -func_808519C0 = 0x8084F8A4; // type:func -func_808519EC = 0x8084F8D0; // type:func -func_80851A50 = 0x8084F934; // type:func -func_80851B90 = 0x8084FA74; // type:func -func_80851BE8 = 0x8084FAD0; // type:func -func_80851CA4 = 0x8084FB90; // type:func -func_80851D2C = 0x8084FC1C; // type:func -func_80851D80 = 0x8084FC74; // type:func -func_80851DEC = 0x8084FCE8; // type:func -func_80851E28 = 0x8084FD28; // type:func -func_80851E64 = 0x8084FD68; // type:func -func_80851E90 = 0x8084FD94; // type:func -func_80851ECC = 0x8084FDD4; // type:func -func_80851F14 = 0x8084FE24; // type:func -func_80851F84 = 0x8084FE98; // type:func -func_80851FB0 = 0x8084FEC4; // type:func -func_80852048 = 0x8084FF60; // type:func -func_80852080 = 0x8084FF9C; // type:func -func_808520BC = 0x8084FFDC; // type:func -func_80852174 = 0x80850094; // type:func -func_808521B8 = 0x808500E0; // type:func -func_808521F4 = 0x80850120; // type:func -func_80852234 = 0x80850160; // type:func -func_8085225C = 0x8085018C; // type:func -func_80852280 = 0x808501B0; // type:func -func_80852298 = 0x808501CC; // type:func -func_80852328 = 0x80850260; // type:func -func_80852358 = 0x80850290; // type:func -func_80852388 = 0x808502C0; // type:func -func_80852414 = 0x80850350; // type:func -func_80852450 = 0x80850390; // type:func -func_80852480 = 0x808503C0; // type:func -func_808524B0 = 0x808503F0; // type:func -func_808524D0 = 0x80850414; // type:func -func_80852514 = 0x8085045C; // type:func -func_80852544 = 0x80850490; // type:func -func_80852554 = 0x808504A4; // type:func -func_80852564 = 0x808504B8; // type:func -func_808525C0 = 0x8085051C; // type:func -func_80852608 = 0x80850568; // type:func -func_80852648 = 0x808505B0; // type:func -func_808526EC = 0x80850658; // type:func -func_8085283C = 0x808507B0; // type:func -func_808528C8 = 0x80850840; // type:func -func_80852944 = 0x808508C0; // type:func -func_808529D0 = 0x8085094C; // type:func -func_80852A54 = 0x808509D4; // type:func -func_80852B4C = 0x80850ACC; // type:func -func_80852C0C = 0x80850B8C; // type:func -func_80852C50 = 0x80850BD0; // type:func -Player_Action_CsAction = 0x80850D8C; // type:func -Player_IsDroppingFish = 0x80850E34; // type:func -Player_StartFishing = 0x80850E68; // type:func -func_80852F38 = 0x80850EA4; // type:func -Player_TryCsAction = 0x80850F70; // type:func -func_80853080 = 0x80850FF4; // type:func -Player_InflictDamage = 0x80851050; // type:func -func_80853148 = 0x808510B8; // type:func -EnTest_SetupAction = 0x8085D460; // type:func -EnTest_Init = 0x8085D46C; // type:func -EnTest_Destroy = 0x8085D6B8; // type:func -EnTest_ChooseRandomAction = 0x8085D750; // type:func -EnTest_ChooseAction = 0x8085D8CC; // type:func -EnTest_SetupWaitGround = 0x8085DBEC; // type:func -EnTest_WaitGround = 0x8085DC64; // type:func -EnTest_SetupWaitAbove = 0x8085DD44; // type:func -EnTest_WaitAbove = 0x8085DDB8; // type:func -EnTest_SetupIdle = 0x8085DE84; // type:func -EnTest_Idle = 0x8085DF08; // type:func -EnTest_Fall = 0x8085E138; // type:func -EnTest_Land = 0x8085E1EC; // type:func -EnTest_SetupWalkAndBlock = 0x8085E25C; // type:func -EnTest_WalkAndBlock = 0x8085E320; // type:func -func_80860BDC = 0x8085EA04; // type:func -func_80860C24 = 0x8085EA4C; // type:func -func_80860EC0 = 0x8085ECE8; // type:func -func_80860F84 = 0x8085EDAC; // type:func -EnTest_SetupSlashDown = 0x8085F240; // type:func -EnTest_SlashDown = 0x8085F2C4; // type:func -EnTest_SetupSlashDownEnd = 0x8085F3D0; // type:func -EnTest_SlashDownEnd = 0x8085F420; // type:func -EnTest_SetupSlashUp = 0x8085F64C; // type:func -EnTest_SlashUp = 0x8085F6C8; // type:func -EnTest_SetupJumpBack = 0x8085F780; // type:func -EnTest_JumpBack = 0x8085F820; // type:func -EnTest_SetupJumpslash = 0x8085F9C8; // type:func -EnTest_Jumpslash = 0x8085FA74; // type:func -EnTest_SetupJumpUp = 0x8085FB84; // type:func -EnTest_JumpUp = 0x8085FBFC; // type:func -EnTest_SetupStopAndBlock = 0x8085FCF4; // type:func -EnTest_StopAndBlock = 0x8085FDB4; // type:func -EnTest_SetupIdleFromBlock = 0x8085FE84; // type:func -EnTest_IdleFromBlock = 0x8085FED0; // type:func -func_80862154 = 0x8085FF88; // type:func -func_808621D4 = 0x80860008; // type:func -func_80862398 = 0x808601D0; // type:func -func_80862418 = 0x80860250; // type:func -EnTest_SetupStunned = 0x808603B4; // type:func -EnTest_Stunned = 0x80860490; // type:func -func_808627C4 = 0x80860608; // type:func -func_808628C8 = 0x8086070C; // type:func -func_80862DBC = 0x80860C04; // type:func -func_80862E6C = 0x80860CB8; // type:func -func_80862FA8 = 0x80860DF4; // type:func -func_80863044 = 0x80860E90; // type:func -func_808630F0 = 0x80860F3C; // type:func -func_8086318C = 0x80860FD8; // type:func -EnTest_SetupRecoil = 0x8086108C; // type:func -EnTest_Recoil = 0x808610E0; // type:func -EnTest_Rise = 0x808611AC; // type:func -func_808633E8 = 0x80861234; // type:func -EnTest_UpdateHeadRot = 0x808612B0; // type:func -EnTest_UpdateDamage = 0x80861348; // type:func -EnTest_Update = 0x808614E8; // type:func -EnTest_OverrideLimbDraw = 0x80861914; // type:func -EnTest_PostLimbDraw = 0x80861AE8; // type:func -EnTest_Draw = 0x80861E70; // type:func -func_80864158 = 0x80861F84; // type:func -EnTest_ReactToProjectile = 0x80862014; // type:func -EnGirlA_SetupAction = 0x80862D10; // type:func -EnGirlA_TryChangeShopItem = 0x80862D1C; // type:func -EnGirlA_InitItem = 0x80862E94; // type:func -EnGirlA_Init = 0x80862F38; // type:func -EnGirlA_Destroy = 0x80862F6C; // type:func -EnGirlA_CanBuy_Arrows = 0x80862F9C; // type:func -EnGirlA_CanBuy_Bombs = 0x8086304C; // type:func -EnGirlA_CanBuy_DekuNuts = 0x808630EC; // type:func -EnGirlA_CanBuy_DekuSticks = 0x808631A4; // type:func -EnGirlA_CanBuy_Fish = 0x8086325C; // type:func -EnGirlA_CanBuy_RedPotion = 0x808632D4; // type:func -EnGirlA_CanBuy_GreenPotion = 0x8086334C; // type:func -EnGirlA_CanBuy_BluePotion = 0x808633C4; // type:func -EnGirlA_CanBuy_Longsword = 0x8086343C; // type:func -EnGirlA_CanBuy_HylianShield = 0x808634D0; // type:func -EnGirlA_CanBuy_DekuShield = 0x80863550; // type:func -EnGirlA_CanBuy_GoronTunic = 0x808635D0; // type:func -EnGirlA_CanBuy_ZoraTunic = 0x80863678; // type:func -EnGirlA_CanBuy_RecoveryHeart = 0x80863720; // type:func -EnGirlA_CanBuy_MilkBottle = 0x8086376C; // type:func -EnGirlA_CanBuy_WeirdEgg = 0x808637C8; // type:func -EnGirlA_CanBuy_Unk19 = 0x80863824; // type:func -EnGirlA_CanBuy_Unk20 = 0x80863838; // type:func -EnGirlA_CanBuy_Bombchus = 0x8086384C; // type:func -EnGirlA_CanBuy_DekuSeeds = 0x808638D0; // type:func -EnGirlA_CanBuy_SoldOut = 0x80863980; // type:func -EnGirlA_CanBuy_BlueFire = 0x80863994; // type:func -EnGirlA_CanBuy_Bugs = 0x80863A0C; // type:func -EnGirlA_CanBuy_Poe = 0x80863A84; // type:func -EnGirlA_CanBuy_Fairy = 0x80863AFC; // type:func -EnGirlA_ItemGive_Arrows = 0x80863B74; // type:func -EnGirlA_ItemGive_Bombs = 0x80863BBC; // type:func -EnGirlA_ItemGive_DekuNuts = 0x80863C5C; // type:func -EnGirlA_ItemGive_DekuSticks = 0x80863CCC; // type:func -EnGirlA_ItemGive_Longsword = 0x80863D08; // type:func -EnGirlA_ItemGive_HylianShield = 0x80863D50; // type:func -EnGirlA_ItemGive_DekuShield = 0x80863D8C; // type:func -EnGirlA_ItemGive_GoronTunic = 0x80863DC8; // type:func -EnGirlA_ItemGive_ZoraTunic = 0x80863E04; // type:func -EnGirlA_ItemGive_Health = 0x80863E40; // type:func -EnGirlA_ItemGive_MilkBottle = 0x80863E80; // type:func -EnGirlA_ItemGive_WeirdEgg = 0x80863EBC; // type:func -EnGirlA_ItemGive_Unk19 = 0x80863EF8; // type:func -EnGirlA_ItemGive_Unk20 = 0x80863F28; // type:func -EnGirlA_ItemGive_DekuSeeds = 0x80863F58; // type:func -EnGirlA_ItemGive_BottledItem = 0x80863F94; // type:func -EnGirlA_BuyEvent_ShieldDiscount = 0x808640C4; // type:func -EnGirlA_BuyEvent_GoronTunic = 0x80864164; // type:func -EnGirlA_BuyEvent_ZoraTunic = 0x80864194; // type:func -EnGirlA_BuyEvent_ObtainBombchuPack = 0x808641C4; // type:func -EnGirlA_Noop = 0x808642D8; // type:func -EnGirlA_SetItemDescription = 0x808642E8; // type:func -EnGirlA_SetItemOutOfStock = 0x80864410; // type:func -EnGirlA_UpdateStockedItem = 0x80864444; // type:func -EnGirlA_TrySetMaskItemDescription = 0x808644BC; // type:func -EnGirlA_WaitForObject = 0x8086454C; // type:func -EnGirlA_Update2 = 0x808648FC; // type:func -EnGirlA_Update = 0x808649B8; // type:func -func_80A3C498 = 0x808649DC; // type:func -EnGirlA_Draw = 0x80864A20; // type:func -EnPart_Init = 0x80865630; // type:func -EnPart_Destroy = 0x80865640; // type:func -func_80ACDDE8 = 0x80865650; // type:func -func_80ACE13C = 0x808659A4; // type:func -func_80ACE5B8 = 0x80865E20; // type:func -func_80ACE5C8 = 0x80865E34; // type:func -func_80ACE7E8 = 0x80866058; // type:func -EnPart_Update = 0x80866254; // type:func -func_80ACEAC0 = 0x80866334; // type:func -EnPart_Draw = 0x808663D8; // type:func -EnLight_Init = 0x80866C40; // type:func -EnLight_Destroy = 0x80866E20; // type:func -EnLight_UpdatePosRot = 0x80866E54; // type:func -EnLight_Update = 0x80866ED0; // type:func -EnLight_UpdateSwitch = 0x80867174; // type:func -EnLight_Draw = 0x808675AC; // type:func -EnDoor_Init = 0x80867A30; // type:func -EnDoor_Destroy = 0x80867C4C; // type:func -EnDoor_SetupType = 0x80867C80; // type:func -EnDoor_Idle = 0x80867E38; // type:func -EnDoor_WaitForCheck = 0x808680F0; // type:func -EnDoor_Check = 0x8086813C; // type:func -EnDoor_AjarWait = 0x80868174; // type:func -EnDoor_AjarOpen = 0x808681A8; // type:func -EnDoor_AjarClose = 0x80868218; // type:func -EnDoor_Open = 0x80868260; // type:func -EnDoor_Update = 0x808684B4; // type:func -EnDoor_OverrideLimbDraw = 0x808684D8; // type:func -EnDoor_Draw = 0x8086860C; // type:func -EnBox_SetupAction = 0x80868870; // type:func -EnBox_ClipToGround = 0x8086887C; // type:func -EnBox_Init = 0x80868908; // type:func -EnBox_Destroy = 0x80868D78; // type:func -EnBox_RandomDustKinematic = 0x80868DAC; // type:func -EnBox_SpawnDust = 0x80868EB0; // type:func -EnBox_Fall = 0x80868F64; // type:func -EnBox_FallOnSwitchFlag = 0x808690E8; // type:func -func_809C9700 = 0x808691B8; // type:func -EnBox_AppearOnSwitchFlag = 0x80869348; // type:func -EnBox_AppearOnRoomClear = 0x808693C8; // type:func -EnBox_AppearInit = 0x80869480; // type:func -EnBox_AppearAnimation = 0x8086953C; // type:func -EnBox_WaitOpen = 0x808695E8; // type:func -EnBox_Open = 0x8086981C; // type:func -EnBox_SpawnIceSmoke = 0x808699A4; // type:func -EnBox_Update = 0x80869C50; // type:func -EnBox_PostLimbDraw = 0x80869D8C; // type:func -EnBox_EmptyDList = 0x80869EEC; // type:func -func_809CA4A0 = 0x80869F10; // type:func -func_809CA518 = 0x80869F4C; // type:func -EnBox_Draw = 0x80869F88; // type:func -EnPoh_Init = 0x8086A3B0; // type:func -EnPoh_Destroy = 0x8086A6F8; // type:func -func_80ADE114 = 0x8086A778; // type:func -EnPoh_SetupIdle = 0x8086A7D0; // type:func -func_80ADE1BC = 0x8086A820; // type:func -EnPoh_SetupAttack = 0x8086A870; // type:func -func_80ADE28C = 0x8086A8F0; // type:func -func_80ADE368 = 0x8086A9CC; // type:func -EnPoh_SetupInitialAction = 0x8086AA40; // type:func -func_80ADE48C = 0x8086AAF0; // type:func -func_80ADE4C8 = 0x8086AB30; // type:func -func_80ADE514 = 0x8086AB7C; // type:func -EnPoh_SetupDisappear = 0x8086ABD4; // type:func -EnPoh_SetupAppear = 0x8086AC2C; // type:func -EnPoh_SetupDeath = 0x8086AC78; // type:func -func_80ADE6D4 = 0x8086AD44; // type:func -EnPoh_Talk = 0x8086AE30; // type:func -func_80ADE950 = 0x8086AFC8; // type:func -func_80ADE998 = 0x8086B014; // type:func -func_80ADE9BC = 0x8086B03C; // type:func -EnPoh_MoveTowardsPlayerHeight = 0x8086B050; // type:func -func_80ADEA5C = 0x8086B0E4; // type:func -func_80ADEAC4 = 0x8086B154; // type:func -EnPoh_Idle = 0x8086B210; // type:func -func_80ADEC9C = 0x8086B32C; // type:func -EnPoh_Attack = 0x8086B490; // type:func -func_80ADEECC = 0x8086B560; // type:func -func_80ADEF38 = 0x8086B5CC; // type:func -EnPoh_ComposerAppear = 0x8086B74C; // type:func -func_80ADF15C = 0x8086B7F0; // type:func -func_80ADF574 = 0x8086BC08; // type:func -func_80ADF5E0 = 0x8086BC74; // type:func -EnPoh_Disappear = 0x8086BCF4; // type:func -EnPoh_Appear = 0x8086BE10; // type:func -func_80ADF894 = 0x8086BF30; // type:func -EnPoh_Death = 0x8086C030; // type:func -func_80ADFA90 = 0x8086C130; // type:func -func_80ADFE28 = 0x8086C4C8; // type:func -func_80ADFE80 = 0x8086C520; // type:func -func_80AE009C = 0x8086C73C; // type:func -EnPoh_TalkRegular = 0x8086C77C; // type:func -EnPoh_TalkComposer = 0x8086C8A8; // type:func -func_80AE032C = 0x8086C9D4; // type:func -EnPoh_UpdateVisibility = 0x8086CA6C; // type:func -EnPoh_Update = 0x8086CBDC; // type:func -func_80AE067C = 0x8086CD28; // type:func -func_80AE089C = 0x8086CF48; // type:func -EnPoh_UpdateLiving = 0x8086D0C8; // type:func -EnPoh_OverrideLimbDraw = 0x8086D2A8; // type:func -EnPoh_PostLimbDraw = 0x8086D39C; // type:func -EnPoh_DrawRegular = 0x8086D58C; // type:func -EnPoh_DrawComposer = 0x8086D7AC; // type:func -EnPoh_UpdateDead = 0x8086DBD4; // type:func -EnPoh_DrawSoul = 0x8086DC28; // type:func -EnOkuta_Init = 0x8086E540; // type:func -EnOkuta_Destroy = 0x8086E74C; // type:func -EnOkuta_SpawnBubbles = 0x8086E778; // type:func -EnOkuta_SpawnDust = 0x8086E824; // type:func -EnOkuta_SpawnSplash = 0x8086E88C; // type:func -EnOkuta_SpawnRipple = 0x8086E8D0; // type:func -EnOkuta_SetupWaitToAppear = 0x8086E974; // type:func -EnOkuta_SetupAppear = 0x8086E9A4; // type:func -EnOkuta_SetupHide = 0x8086EA14; // type:func -EnOkuta_SetupWaitToShoot = 0x8086EA54; // type:func -EnOkuta_SetupShoot = 0x8086EAB4; // type:func -EnOkuta_SetupWaitToDie = 0x8086EBA0; // type:func -EnOkuta_SetupDie = 0x8086EC28; // type:func -EnOkuta_SetupFreeze = 0x8086EC70; // type:func -EnOkuta_SpawnProjectile = 0x8086ECBC; // type:func -EnOkuta_WaitToAppear = 0x8086EDFC; // type:func -EnOkuta_Appear = 0x8086EE58; // type:func -EnOkuta_Hide = 0x8086EF9C; // type:func -EnOkuta_WaitToShoot = 0x8086F09C; // type:func -EnOkuta_Shoot = 0x8086F1CC; // type:func -EnOkuta_WaitToDie = 0x8086F34C; // type:func -EnOkuta_Die = 0x8086F3A0; // type:func -EnOkuta_Freeze = 0x8086F6B4; // type:func -EnOkuta_ProjectileFly = 0x8086F830; // type:func -EnOkuta_UpdateHeadScale = 0x8086FA7C; // type:func -EnOkuta_ColliderCheck = 0x8086FE24; // type:func -EnOkuta_Update = 0x8086FED4; // type:func -EnOkuta_GetSnoutScale = 0x80870254; // type:func -EnOkuta_OverrideLimbDraw = 0x808704DC; // type:func -EnOkuta_Draw = 0x808705D8; // type:func -EnBom_SetupAction = 0x80870B20; // type:func -EnBom_Init = 0x80870B2C; // type:func -EnBom_Destroy = 0x80870C44; // type:func -EnBom_Move = 0x80870C84; // type:func -EnBom_WaitForRelease = 0x80870E54; // type:func -EnBom_Explode = 0x80870EA0; // type:func -EnBom_Update = 0x80870FF0; // type:func -EnBom_Draw = 0x80871680; // type:func -EnWallmas_Init = 0x808719F0; // type:func -EnWallmas_Destroy = 0x80871B30; // type:func -EnWallmas_TimerInit = 0x80871B5C; // type:func -EnWallmas_SetupDrop = 0x80871BB8; // type:func -EnWallmas_SetupLand = 0x80871C7C; // type:func -EnWallmas_SetupStand = 0x80871D40; // type:func -EnWallmas_SetupWalk = 0x80871D80; // type:func -EnWallmas_SetupJumpToCeiling = 0x80871DD0; // type:func -EnWallmas_SetupReturnToCeiling = 0x80871E18; // type:func -EnWallmas_SetupTakeDamage = 0x80871E9C; // type:func -EnWallmas_SetupCooldown = 0x80871F58; // type:func -EnWallmas_SetupDie = 0x80871FAC; // type:func -EnWallmas_SetupTakePlayer = 0x80872074; // type:func -EnWallmas_ProximityOrSwitchInit = 0x808720FC; // type:func -EnWallmas_SetupStun = 0x80872144; // type:func -EnWallmas_WaitToDrop = 0x80872214; // type:func -EnWallmas_Drop = 0x80872320; // type:func -EnWallmas_Land = 0x808723EC; // type:func -EnWallmas_Stand = 0x80872428; // type:func -EnWallmas_Walk = 0x80872488; // type:func -EnWallmas_JumpToCeiling = 0x8087253C; // type:func -EnWallmas_ReturnToCeiling = 0x80872578; // type:func -EnWallmas_TakeDamage = 0x80872694; // type:func -EnWallmas_Cooldown = 0x80872728; // type:func -EnWallmas_Die = 0x80872764; // type:func -EnWallmas_TakePlayer = 0x808727D8; // type:func -EnWallmas_WaitForProximity = 0x808729FC; // type:func -EnWallmas_WaitForSwitchFlag = 0x80872A58; // type:func -EnWallmas_Stun = 0x80872AA4; // type:func -EnWallmas_ColUpdate = 0x80872B18; // type:func -EnWallmas_Update = 0x80872C34; // type:func -EnWallmas_DrawXlu = 0x80872DFC; // type:func -EnWallMas_OverrideLimbDraw = 0x80872F90; // type:func -EnWallMas_PostLimbDraw = 0x80873004; // type:func -EnWallmas_Draw = 0x808730F4; // type:func -EnDodongo_SetupAction = 0x80873400; // type:func -EnDodongo_SpawnBombSmoke = 0x8087340C; // type:func -EnDodongo_Init = 0x808738FC; // type:func -EnDodongo_Destroy = 0x80873B24; // type:func -EnDodongo_SetupIdle = 0x80873B84; // type:func -EnDodongo_SetupWalk = 0x80873BEC; // type:func -EnDodongo_SetupBreatheFire = 0x80873C90; // type:func -EnDodongo_SetupEndBreatheFire = 0x80873CE4; // type:func -EnDodongo_SetupSwallowBomb = 0x80873D34; // type:func -EnDodongo_SetupStunned = 0x80873DB4; // type:func -EnDodongo_Idle = 0x80873E4C; // type:func -EnDodongo_EndBreatheFire = 0x80873EC4; // type:func -EnDodongo_BreatheFire = 0x80873F14; // type:func -EnDodongo_SwallowBomb = 0x808740EC; // type:func -EnDodongo_Walk = 0x808745E4; // type:func -EnDodongo_SetupSweepTail = 0x80874924; // type:func -EnDodongo_SweepTail = 0x80874984; // type:func -EnDodongo_SetupDeath = 0x80874C48; // type:func -EnDodongo_Death = 0x80874CC0; // type:func -EnDodongo_Stunned = 0x80874E0C; // type:func -EnDodongo_CollisionCheck = 0x80874E70; // type:func -EnDodongo_UpdateQuad = 0x80874F98; // type:func -EnDodongo_Update = 0x80875104; // type:func -EnDodongo_OverrideLimbDraw = 0x808752D0; // type:func -EnDodongo_PostLimbDraw = 0x80875324; // type:func -EnDodongo_Draw = 0x80875760; // type:func -EnDodongo_ShiftVecRadial = 0x80875850; // type:func -EnDodongo_AteBomb = 0x808758B0; // type:func -EnFirefly_Extinguish = 0x808761A0; // type:func -EnFirefly_Ignite = 0x808761CC; // type:func -EnFirefly_Init = 0x8087620C; // type:func -EnFirefly_Destroy = 0x80876404; // type:func -EnFirefly_SetupFlyIdle = 0x80876430; // type:func -EnFirefly_SetupFall = 0x808764DC; // type:func -EnFirefly_SetupDie = 0x80876580; // type:func -EnFirefly_SetupRebound = 0x808765A4; // type:func -EnFirefly_SetupDiveAttack = 0x808765E0; // type:func -EnFirefly_SetupFlyAway = 0x80876650; // type:func -EnFirefly_SetupStunned = 0x80876680; // type:func -EnFirefly_SetupFrozenFall = 0x808766F0; // type:func -EnFirefly_SetupPerch = 0x80876890; // type:func -EnFirefly_SetupDisturbDiveAttack = 0x808768B4; // type:func -EnFirefly_ReturnToPerch = 0x808768F0; // type:func -EnFirefly_SeekTorch = 0x80876A0C; // type:func -EnFirefly_FlyIdle = 0x80876B5C; // type:func -EnFirefly_Fall = 0x80876DEC; // type:func -EnFirefly_Die = 0x80876EBC; // type:func -EnFirefly_DiveAttack = 0x80876F38; // type:func -EnFirefly_Rebound = 0x8087714C; // type:func -EnFirefly_FlyAway = 0x808771E0; // type:func -EnFirefly_Stunned = 0x80877348; // type:func -EnFirefly_FrozenFall = 0x808773EC; // type:func -EnFirefly_Perch = 0x8087744C; // type:func -EnFirefly_DisturbDiveAttack = 0x8087750C; // type:func -EnFirefly_Combust = 0x808775E4; // type:func -EnFirefly_UpdateDamage = 0x80877664; // type:func -EnFirefly_Update = 0x80877814; // type:func -EnFirefly_OverrideLimbDraw = 0x80877ABC; // type:func -EnFirefly_PostLimbDraw = 0x80877B10; // type:func -EnFirefly_Draw = 0x80877EA0; // type:func -EnFirefly_DrawInvisible = 0x80877F54; // type:func -EnHorse_BgCheckBridgeJumpPoint = 0x80878310; // type:func -EnHorse_CheckBridgeJumps = 0x80878470; // type:func -EnHorse_RaceWaypointPos = 0x808785B0; // type:func -EnHorse_RotateToPoint = 0x80878604; // type:func -EnHorse_UpdateIngoRaceInfo = 0x80878640; // type:func -EnHorse_PlayWalkingSfx = 0x808789F4; // type:func -EnHorse_PlayTrottingSfx = 0x80878AB0; // type:func -EnHorse_PlayGallopingSfx = 0x80878AF8; // type:func -EnHorse_SlopeSpeedMultiplier = 0x80878B40; // type:func -func_80A5BB90 = 0x80878BC0; // type:func -func_80A5BBBC = 0x80878BF0; // type:func -EnHorse_IdleAnimSounds = 0x80878CA0; // type:func -EnHorse_Spawn = 0x80878DCC; // type:func -EnHorse_ResetCutscene = 0x80879010; // type:func -EnHorse_ResetRace = 0x80879028; // type:func -EnHorse_PlayerCanMove = 0x80879038; // type:func -EnHorse_ResetHorsebackArchery = 0x808790F4; // type:func -EnHorse_ClearDustFlags = 0x8087910C; // type:func -EnHorse_Init = 0x80879118; // type:func -EnHorse_Destroy = 0x80879848; // type:func -EnHorse_RotateToPlayer = 0x808798B8; // type:func -EnHorse_Freeze = 0x80879928; // type:func -EnHorse_Frozen = 0x808799A8; // type:func -EnHorse_UpdateSpeed = 0x80879B18; // type:func -EnHorse_StartMountedIdleResetAnim = 0x80879F5C; // type:func -EnHorse_StartMountedIdle = 0x80879F98; // type:func -EnHorse_MountedIdle = 0x8087A0D4; // type:func -EnHorse_MountedIdleAnim = 0x8087A1D4; // type:func -EnHorse_MountedIdleWhinney = 0x8087A1F8; // type:func -EnHorse_MountedIdleWhinneying = 0x8087A2F4; // type:func -EnHorse_StartTurning = 0x8087A3F4; // type:func -EnHorse_MountedTurn = 0x8087A49C; // type:func -EnHorse_StartWalkingFromIdle = 0x8087A660; // type:func -EnHorse_StartWalkingInterruptable = 0x8087A6B0; // type:func -EnHorse_StartWalking = 0x8087A6D4; // type:func -EnHorse_MountedWalkingReset = 0x8087A780; // type:func -EnHorse_MountedWalk = 0x8087A7D4; // type:func -EnHorse_StartTrotting = 0x8087AAA4; // type:func -EnHorse_MountedTrotReset = 0x8087AB48; // type:func -EnHorse_MountedTrot = 0x8087AB94; // type:func -EnHorse_StartGallopingInterruptable = 0x8087ACCC; // type:func -EnHorse_StartGalloping = 0x8087ACF0; // type:func -EnHorse_MountedGallopReset = 0x8087AD98; // type:func -EnHorse_JumpLanding = 0x8087ADF0; // type:func -EnHorse_MountedGallop = 0x8087AE74; // type:func -EnHorse_StartRearing = 0x8087B048; // type:func -EnHorse_MountedRearing = 0x8087B16C; // type:func -EnHorse_StartBraking = 0x8087B2E8; // type:func -EnHorse_Stopping = 0x8087B3D8; // type:func -EnHorse_StartReversingInterruptable = 0x8087B5C4; // type:func -EnHorse_StartReversing = 0x8087B5E8; // type:func -EnHorse_Reverse = 0x8087B68C; // type:func -EnHorse_LowJumpInit = 0x8087BA3C; // type:func -EnHorse_StartLowJump = 0x8087BA60; // type:func -EnHorse_Stub1 = 0x8087BB90; // type:func -EnHorse_LowJump = 0x8087BB9C; // type:func -EnHorse_HighJumpInit = 0x8087BD60; // type:func -EnHorse_StartHighJump = 0x8087BD84; // type:func -EnHorse_Stub2 = 0x8087BEC0; // type:func -EnHorse_HighJump = 0x8087BECC; // type:func -EnHorse_InitInactive = 0x8087C090; // type:func -EnHorse_Inactive = 0x8087C0E0; // type:func -EnHorse_PlayIdleAnimation = 0x8087C20C; // type:func -EnHorse_ChangeIdleAnimation = 0x8087C3DC; // type:func -EnHorse_ResetIdleAnimation = 0x8087C404; // type:func -EnHorse_StartIdleRidable = 0x8087C438; // type:func -EnHorse_Idle = 0x8087C46C; // type:func -EnHorse_StartMovingAnimation = 0x8087C654; // type:func -EnHorse_SetFollowAnimation = 0x8087C7BC; // type:func -EnHorse_FollowPlayer = 0x8087C8F0; // type:func -EnHorse_InitIngoHorse = 0x8087CD14; // type:func -EnHorse_SetIngoAnimation = 0x8087CD98; // type:func -EnHorse_UpdateIngoHorseAnim = 0x8087CE3C; // type:func -EnHorse_UpdateIngoRace = 0x8087D150; // type:func -EnHorse_CsMoveInit = 0x8087D300; // type:func -EnHorse_CsMoveToPoint = 0x8087D36C; // type:func -EnHorse_CsSetAnimHighJump = 0x8087D4BC; // type:func -EnHorse_CsPlayHighJumpAnim = 0x8087D4E0; // type:func -EnHorse_CsJumpInit = 0x8087D614; // type:func -EnHorse_CsJump = 0x8087D64C; // type:func -EnHorse_CsRearingInit = 0x8087D8A4; // type:func -EnHorse_CsRearing = 0x8087D9C4; // type:func -EnHorse_WarpMoveInit = 0x8087DB6C; // type:func -EnHorse_CsWarpMoveToPoint = 0x8087DC54; // type:func -EnHorse_CsWarpRearingInit = 0x8087DDA4; // type:func -EnHorse_CsWarpRearing = 0x8087DF2C; // type:func -EnHorse_InitCutscene = 0x8087E0D4; // type:func -EnHorse_GetCutsceneFunctionIndex = 0x8087E0F8; // type:func -EnHorse_CutsceneUpdate = 0x8087E148; // type:func -EnHorse_UpdateHbaRaceInfo = 0x8087E2A0; // type:func -EnHorse_InitHorsebackArchery = 0x8087E490; // type:func -EnHorse_UpdateHbaAnim = 0x8087E4C4; // type:func -EnHorse_UpdateHorsebackArchery = 0x8087E7FC; // type:func -EnHorse_InitFleePlayer = 0x8087EA88; // type:func -EnHorse_FleePlayer = 0x8087EAB0; // type:func -EnHorse_BridgeJumpInit = 0x8087F304; // type:func -EnHorse_StartBridgeJump = 0x8087F53C; // type:func -EnHorse_BridgeJumpMove = 0x8087F5EC; // type:func -EnHorse_CheckBridgeJumpLanding = 0x8087F748; // type:func -EnHorse_BridgeJump = 0x8087F834; // type:func -EnHorse_Vec3fOffset = 0x8087F878; // type:func -EnHorse_CalcFloorHeight = 0x8087F8F4; // type:func -EnHorse_ObstructMovement = 0x8087FA34; // type:func -EnHorse_CheckFloors = 0x8087FB5C; // type:func -EnHorse_MountDismount = 0x808800DC; // type:func -EnHorse_StickDirection = 0x808801E0; // type:func -EnHorse_UpdateStick = 0x8088026C; // type:func -EnHorse_ResolveCollision = 0x808802AC; // type:func -EnHorse_BgCheckSlowMoving = 0x80880404; // type:func -EnHorse_UpdateBgCheckInfo = 0x80880544; // type:func -EnHorse_CheckBoost = 0x80881050; // type:func -EnHorse_RegenBoost = 0x808811F8; // type:func -EnHorse_UpdatePlayerDir = 0x80881424; // type:func -EnHorse_TiltBody = 0x80881530; // type:func -EnHorse_UpdateConveyors = 0x8088162C; // type:func -EnHorse_RandInt = 0x80881734; // type:func -EnHorse_Update = 0x80881768; // type:func -EnHorse_PlayerDirToMountSide = 0x80881F94; // type:func -EnHorse_MountSideCheck = 0x80881FD4; // type:func -EnHorse_GetMountSide = 0x808820D8; // type:func -EnHorse_RandomOffset = 0x80882130; // type:func -EnHorse_PostDraw = 0x808821CC; // type:func -EnHorse_OverrideLimbDraw = 0x80882CC4; // type:func -EnHorse_Draw = 0x80882DC4; // type:func -EnArrow_SetupAction = 0x80884570; // type:func -EnArrow_Init = 0x8088457C; // type:func -EnArrow_Destroy = 0x80884784; // type:func -EnArrow_Shoot = 0x8088480C; // type:func -func_809B3CEC = 0x80884924; // type:func -EnArrow_CarryActor = 0x80884A0C; // type:func -EnArrow_Fly = 0x80884C10; // type:func -func_809B45E0 = 0x80885218; // type:func -func_809B4640 = 0x80885278; // type:func -EnArrow_Update = 0x808852E0; // type:func -func_809B4800 = 0x8088543C; // type:func -EnArrow_Draw = 0x808855A4; // type:func -EnElf_SetupAction = 0x80885C60; // type:func -func_80A01C38 = 0x80885C6C; // type:func -func_80A01F90 = 0x80885FC4; // type:func -func_80A01FE0 = 0x80886018; // type:func -func_80A020A4 = 0x808860E0; // type:func -func_80A0214C = 0x8088618C; // type:func -func_80A0232C = 0x8088636C; // type:func -EnElf_GetColorValue = 0x808863E4; // type:func -EnElf_Init = 0x80886454; // type:func -func_80A0299C = 0x808869C0; // type:func -func_80A029A8 = 0x808869D0; // type:func -EnElf_Destroy = 0x808869F8; // type:func -func_80A02A20 = 0x80886A48; // type:func -func_80A02AA4 = 0x80886ACC; // type:func -func_80A02B38 = 0x80886B60; // type:func -func_80A02BD8 = 0x80886BFC; // type:func -func_80A02C98 = 0x80886CBC; // type:func -func_80A02E30 = 0x80886E54; // type:func -func_80A02EC0 = 0x80886EE0; // type:func -func_80A02F2C = 0x80886F4C; // type:func -func_80A03018 = 0x80887038; // type:func -func_80A03148 = 0x8088716C; // type:func -func_80A0329C = 0x808872C4; // type:func -func_80A0353C = 0x80887568; // type:func -func_80A03604 = 0x80887630; // type:func -func_80A03610 = 0x80887640; // type:func -func_80A03814 = 0x80887848; // type:func -func_80A03990 = 0x808879C8; // type:func -func_80A03AB0 = 0x80887AEC; // type:func -EnElf_UpdateLights = 0x80887B50; // type:func -func_80A03CF8 = 0x80887D24; // type:func -EnElf_ChangeColor = 0x808883BC; // type:func -func_80A04414 = 0x80888448; // type:func -func_80A0461C = 0x80888654; // type:func -EnElf_SpawnSparkles = 0x808889F0; // type:func -func_80A04D90 = 0x80888DD0; // type:func -func_80A04DE4 = 0x80888E24; // type:func -func_80A04F94 = 0x80888FD8; // type:func -func_80A05040 = 0x80889088; // type:func -func_80A05114 = 0x80889164; // type:func -func_80A05188 = 0x808891E0; // type:func -func_80A05208 = 0x80889268; // type:func -func_80A052F4 = 0x8088935C; // type:func -func_80A053F0 = 0x80889460; // type:func -EnElf_Update = 0x808896DC; // type:func -EnElf_OverrideLimbDraw = 0x80889738; // type:func -EnElf_Draw = 0x8088985C; // type:func -EnElf_GetCuePos = 0x80889EE0; // type:func -EnNiw_Init = 0x8088A620; // type:func -EnNiw_Destroy = 0x8088AB24; // type:func -func_80AB5BF8 = 0x8088AB50; // type:func -EnNiw_SpawnAttackCucco = 0x8088AEF8; // type:func -func_80AB6100 = 0x8088B040; // type:func -EnNiw_ResetAction = 0x8088B1BC; // type:func -func_80AB6324 = 0x8088B264; // type:func -func_80AB63A8 = 0x8088B2E8; // type:func -func_80AB6450 = 0x8088B390; // type:func -func_80AB6570 = 0x8088B4B0; // type:func -func_80AB6A38 = 0x8088B97C; // type:func -func_80AB6BF8 = 0x8088BB3C; // type:func -func_80AB6D08 = 0x8088BC4C; // type:func -func_80AB6EB4 = 0x8088BDF8; // type:func -func_80AB6F04 = 0x8088BE48; // type:func -func_80AB70A0 = 0x8088BFE8; // type:func -func_80AB70F8 = 0x8088C040; // type:func -func_80AB714C = 0x8088C094; // type:func -func_80AB7204 = 0x8088C14C; // type:func -func_80AB7290 = 0x8088C1DC; // type:func -func_80AB7328 = 0x8088C274; // type:func -func_80AB7420 = 0x8088C370; // type:func -func_80AB747C = 0x8088C3CC; // type:func -EnNiw_Update = 0x8088C484; // type:func -EnNiw_OverrideLimbDraw = 0x8088CD30; // type:func -EnNiw_Draw = 0x8088CE88; // type:func -EnNiw_SpawnFeather = 0x8088CF38; // type:func -EnNiw_UpdateEffects = 0x8088D028; // type:func -EnNiw_DrawEffects = 0x8088D1DC; // type:func -EnTite_SetupAction = 0x8088D950; // type:func -EnTite_Init = 0x8088D95C; // type:func -EnTite_Destroy = 0x8088DAB4; // type:func -EnTite_SetupIdle = 0x8088DAFC; // type:func -EnTite_Idle = 0x8088DB64; // type:func -EnTite_SetupAttack = 0x8088DCA8; // type:func -EnTite_Attack = 0x8088DD1C; // type:func -EnTite_SetupTurnTowardPlayer = 0x8088E3C4; // type:func -EnTite_TurnTowardPlayer = 0x8088E460; // type:func -EnTite_SetupMoveTowardPlayer = 0x8088E6FC; // type:func -EnTite_MoveTowardPlayer = 0x8088E7B8; // type:func -EnTite_SetupRecoil = 0x8088ECC8; // type:func -EnTite_Recoil = 0x8088ED34; // type:func -EnTite_SetupStunned = 0x8088F08C; // type:func -EnTite_Stunned = 0x8088F140; // type:func -EnTite_SetupDeathCry = 0x8088F4DC; // type:func -EnTite_DeathCry = 0x8088F510; // type:func -EnTite_FallApart = 0x8088F584; // type:func -EnTite_SetupFlipOnBack = 0x8088F610; // type:func -EnTite_FlipOnBack = 0x8088F72C; // type:func -EnTite_SetupFlipUpright = 0x8088F8E8; // type:func -EnTite_FlipUpright = 0x8088F938; // type:func -EnTite_CheckDamage = 0x8088FA60; // type:func -EnTite_Update = 0x8088FC38; // type:func -EnTite_PostLimbDraw = 0x80890024; // type:func -EnTite_Draw = 0x80890114; // type:func -EnReeba_Init = 0x808906F0; // type:func -EnReeba_Destroy = 0x808908CC; // type:func -EnReeba_SetupSurface = 0x80890944; // type:func -EnReeba_Surface = 0x80890A58; // type:func -EnReeba_Move = 0x80890C78; // type:func -EnReeba_SetupMoveBig = 0x80890D94; // type:func -EnReeba_MoveBig = 0x80890DB8; // type:func -EnReeba_Recoiled = 0x80891028; // type:func -EnReeba_SetupSink = 0x80891094; // type:func -EnReeba_Sink = 0x808910EC; // type:func -EnReeba_SetupDamaged = 0x808911FC; // type:func -EnReeba_Damaged = 0x80891260; // type:func -EnReeba_SetupStunned = 0x808912F8; // type:func -EnReeba_Stunned = 0x80891348; // type:func -EnReeba_StunDie = 0x808914AC; // type:func -EnReeba_SetupDie = 0x808915D4; // type:func -EnReeba_Die = 0x80891648; // type:func -EnReeba_StunRecover = 0x80891828; // type:func -EnReeba_CheckDamage = 0x808918BC; // type:func -EnReeba_Update = 0x80891AF8; // type:func -EnReeba_Draw = 0x80891DA8; // type:func -EnPeehat_SetupAction = 0x80892160; // type:func -EnPeehat_Init = 0x8089216C; // type:func -EnPeehat_Destroy = 0x808923DC; // type:func -EnPeehat_SpawnDust = 0x80892450; // type:func -EnPeehat_HitWhenGrounded = 0x808925E8; // type:func -EnPeehat_Ground_SetStateGround = 0x80892804; // type:func -EnPeehat_Ground_StateGround = 0x8089289C; // type:func -EnPeehat_Flying_SetStateGround = 0x808929F0; // type:func -EnPeehat_Flying_StateGrounded = 0x80892A7C; // type:func -EnPeehat_Flying_SetStateFly = 0x80892B80; // type:func -EnPeehat_Flying_StateFly = 0x80892BC8; // type:func -EnPeehat_Ground_SetStateRise = 0x80892D40; // type:func -EnPeehat_Ground_StateRise = 0x80892DE8; // type:func -EnPeehat_Flying_SetStateRise = 0x80892FB0; // type:func -EnPeehat_Flying_StateRise = 0x80893058; // type:func -EnPeehat_Ground_SetStateSeekPlayer = 0x80893220; // type:func -EnPeehat_Ground_StateSeekPlayer = 0x80893270; // type:func -EnPeehat_Larva_SetStateSeekPlayer = 0x808933EC; // type:func -EnPeehat_Larva_StateSeekPlayer = 0x80893438; // type:func -EnPeehat_Ground_SetStateLanding = 0x80893810; // type:func -EnPeehat_Ground_StateLanding = 0x80893858; // type:func -EnPeehat_Flying_SetStateLanding = 0x80893A0C; // type:func -EnPeehat_Flying_StateLanding = 0x80893A54; // type:func -EnPeehat_Ground_SetStateHover = 0x80893C04; // type:func -EnPeehat_Ground_StateHover = 0x80893C94; // type:func -EnPeehat_Ground_SetStateReturnHome = 0x80893EF0; // type:func -EnPeehat_Ground_StateReturnHome = 0x80893F28; // type:func -EnPeehat_SetStateAttackRecoil = 0x80894114; // type:func -EnPeehat_StateAttackRecoil = 0x80894174; // type:func -EnPeehat_SetStateBoomerangStunned = 0x80894350; // type:func -EnPeehat_StateBoomerangStunned = 0x808943D4; // type:func -EnPeehat_Adult_SetStateDie = 0x80894450; // type:func -EnPeehat_Adult_StateDie = 0x808944BC; // type:func -EnPeehat_SetStateExplode = 0x8089477C; // type:func -EnPeehat_StateExplode = 0x808947D4; // type:func -EnPeehat_Adult_CollisionCheck = 0x808948AC; // type:func -EnPeehat_Update = 0x80894A98; // type:func -EnPeehat_OverrideLimbDraw = 0x80894EFC; // type:func -EnPeehat_PostLimbDraw = 0x808950D0; // type:func -EnPeehat_Draw = 0x80895284; // type:func -EnHoll_SetupAction = 0x80895860; // type:func -EnHoll_IsKokiriLayer8 = 0x8089586C; // type:func -EnHoll_ChooseAction = 0x8089589C; // type:func -EnHoll_Init = 0x80895904; // type:func -EnHoll_Destroy = 0x80895940; // type:func -EnHoll_SwapRooms = 0x80895970; // type:func -EnHoll_HorizontalVisibleNarrow = 0x80895A2C; // type:func -EnHoll_HorizontalInvisible = 0x80895C6C; // type:func -EnHoll_VerticalDownBgCoverLarge = 0x80895E1C; // type:func -EnHoll_VerticalBgCover = 0x80896008; // type:func -EnHoll_VerticalInvisible = 0x80896188; // type:func -EnHoll_HorizontalBgCoverSwitchFlag = 0x80896280; // type:func -EnHoll_WaitRoomLoaded = 0x80896490; // type:func -EnHoll_Update = 0x80896508; // type:func -EnHoll_Draw = 0x8089652C; // type:func -EnSceneChange_SetupAction = 0x80896830; // type:func -EnSceneChange_Init = 0x8089683C; // type:func -EnSceneChange_Destroy = 0x80896864; // type:func -EnSceneChange_DoNothing = 0x80896874; // type:func -EnSceneChange_Update = 0x80896884; // type:func -EnSceneChange_Draw = 0x808968A8; // type:func -EnZf_SetupAction = 0x80896960; // type:func -EnZf_PrimaryFloorCheck = 0x8089696C; // type:func -EnZf_SecondaryFloorCheck = 0x80896ADC; // type:func -EnZf_Init = 0x80896C0C; // type:func -EnZf_Destroy = 0x80896F44; // type:func -EnZf_FindPlatform = 0x80896FC8; // type:func -EnZf_FindNextPlatformAwayFromPlayer = 0x80897190; // type:func -EnZf_FindNextPlatformTowardsPlayer = 0x80897434; // type:func -EnZf_CanAttack = 0x80897610; // type:func -func_80B44DC4 = 0x808976E4; // type:func -EnZf_ChooseAction = 0x808977B0; // type:func -EnZf_SetupDropIn = 0x808979D0; // type:func -EnZf_DropIn = 0x80897A98; // type:func -func_80B45384 = 0x80897CA8; // type:func -func_80B4543C = 0x80897D60; // type:func -EnZf_SetupApproachPlayer = 0x80897FDC; // type:func -EnZf_ApproachPlayer = 0x80898070; // type:func -EnZf_SetupJumpForward = 0x8089875C; // type:func -EnZf_JumpForward = 0x8089881C; // type:func -func_80B4604C = 0x80898978; // type:func -func_80B46098 = 0x808989C4; // type:func -func_80B462E4 = 0x80898C10; // type:func -func_80B463E4 = 0x80898D18; // type:func -EnZf_SetupSlash = 0x8089935C; // type:func -EnZf_Slash = 0x80899418; // type:func -EnZf_SetupRecoilFromBlockedSlash = 0x808996A4; // type:func -EnZf_RecoilFromBlockedSlash = 0x80899718; // type:func -EnZf_SetupJumpBack = 0x808997D0; // type:func -EnZf_JumpBack = 0x80899870; // type:func -EnZf_SetupStunned = 0x80899994; // type:func -EnZf_Stunned = 0x80899A64; // type:func -EnZf_SetupSheatheSword = 0x80899CA4; // type:func -EnZf_SheatheSword = 0x80899D80; // type:func -EnZf_SetupHopAndTaunt = 0x80899E2C; // type:func -EnZf_HopAndTaunt = 0x80899E8C; // type:func -EnZf_SetupHopAway = 0x8089A0E4; // type:func -EnZf_HopAway = 0x8089A164; // type:func -EnZf_SetupDrawSword = 0x8089A5B0; // type:func -EnZf_DrawSword = 0x8089A644; // type:func -EnZf_SetupDamaged = 0x8089A6F4; // type:func -EnZf_Damaged = 0x8089A800; // type:func -EnZf_SetupJumpUp = 0x8089AB60; // type:func -EnZf_JumpUp = 0x8089AC08; // type:func -func_80B483E4 = 0x8089AD34; // type:func -EnZf_CircleAroundPlayer = 0x8089AED0; // type:func -EnZf_SetupDie = 0x8089B650; // type:func -EnZf_Die = 0x8089B7B4; // type:func -EnZf_UpdateHeadRotation = 0x8089B8F4; // type:func -EnZf_UpdateDamage = 0x8089BA18; // type:func -EnZf_Update = 0x8089BBB0; // type:func -EnZf_OverrideLimbDraw = 0x8089BF68; // type:func -EnZf_PostLimbDraw = 0x8089BFF4; // type:func -EnZf_Draw = 0x8089C248; // type:func -EnZf_SetupCircleAroundPlayer = 0x8089C49C; // type:func -EnZf_DodgeRangedEngaging = 0x8089C568; // type:func -EnZf_DodgeRangedWaiting = 0x8089C794; // type:func -EnHata_Init = 0x8089D460; // type:func -EnHata_Destroy = 0x8089D598; // type:func -EnHata_Update = 0x8089D5E0; // type:func -EnHata_OverrideLimbDraw = 0x8089D7FC; // type:func -EnHata_PostLimbDraw = 0x8089D880; // type:func -EnHata_Draw = 0x8089D898; // type:func -func_808C1190 = 0x8089D9F0; // type:func -func_808C11D0 = 0x8089DA30; // type:func -func_808C1200 = 0x8089DA60; // type:func -func_808C1230 = 0x8089DA90; // type:func -func_808C1278 = 0x8089DAD8; // type:func -func_808C12C4 = 0x8089DB24; // type:func -func_808C1554 = 0x8089DDB4; // type:func -func_808C17C8 = 0x8089E034; // type:func -BossDodongo_AteExplosive = 0x8089E11C; // type:func -BossDodongo_Init = 0x8089E1DC; // type:func -BossDodongo_Destroy = 0x8089E4B8; // type:func -BossDodongo_SetupIntroCutscene = 0x8089E4F8; // type:func -BossDodongo_IntroCutscene = 0x8089E578; // type:func -BossDodongo_SetupDamaged = 0x8089F0F4; // type:func -BossDodongo_SetupExplode = 0x8089F188; // type:func -BossDodongo_SetupWalk = 0x8089F22C; // type:func -BossDodongo_SetupRoll = 0x8089F2BC; // type:func -BossDodongo_SetupBlowFire = 0x8089F330; // type:func -BossDodongo_SetupInhale = 0x8089F3B8; // type:func -BossDodongo_Damaged = 0x8089F448; // type:func -BossDodongo_Explode = 0x8089F4FC; // type:func -BossDodongo_LayDown = 0x8089F750; // type:func -BossDodongo_Vulnerable = 0x8089F830; // type:func -BossDodongo_GetUp = 0x8089F91C; // type:func -BossDodongo_BlowFire = 0x8089F980; // type:func -BossDodongo_Inhale = 0x8089FAB0; // type:func -BossDodongo_Walk = 0x8089FB84; // type:func -BossDodongo_Roll = 0x8089FF94; // type:func -BossDodongo_Update = 0x808A0390; // type:func -BossDodongo_OverrideLimbDraw = 0x808A11D0; // type:func -BossDodongo_PostLimbDraw = 0x808A13D4; // type:func -BossDodongo_Draw = 0x808A14B8; // type:func -func_808C4F6C = 0x808A1780; // type:func -func_808C50A8 = 0x808A18BC; // type:func -BossDodongo_PlayerYawCheck = 0x808A1A08; // type:func -BossDodongo_PlayerPosCheck = 0x808A1A64; // type:func -BossDodongo_SpawnFire = 0x808A1AF8; // type:func -BossDodongo_UpdateDamage = 0x808A1B6C; // type:func -BossDodongo_SetupDeathCutscene = 0x808A1CD8; // type:func -BossDodongo_DeathCutscene = 0x808A1D90; // type:func -BossDodongo_UpdateEffects = 0x808A34D0; // type:func -BossDodongo_DrawEffects = 0x808A3604; // type:func -BossGoma_ClearPixels16x16Rgba16 = 0x808A74D0; // type:func -BossGoma_ClearPixels32x32Rgba16 = 0x808A7500; // type:func -BossGoma_ClearPixels = 0x808A7554; // type:func -BossGoma_Init = 0x808A7704; // type:func -BossGoma_PlayEffectsAndSfx = 0x808A78BC; // type:func -BossGoma_Destroy = 0x808A79C4; // type:func -BossGoma_SetupDefeated = 0x808A7A04; // type:func -BossGoma_SetupEncounter = 0x808A7ACC; // type:func -BossGoma_SetupFloorIdle = 0x808A7B70; // type:func -BossGoma_SetupCeilingIdle = 0x808A7BF8; // type:func -BossGoma_SetupFallJump = 0x808A7C7C; // type:func -BossGoma_SetupFallStruckDown = 0x808A7CF8; // type:func -BossGoma_SetupCeilingSpawnGohmas = 0x808A7D74; // type:func -BossGoma_SetupCeilingPrepareSpawnGohmas = 0x808A7DE8; // type:func -BossGoma_SetupWallClimb = 0x808A7E60; // type:func -BossGoma_SetupCeilingMoveToCenter = 0x808A7EE4; // type:func -BossGoma_SetupFloorMain = 0x808A7F78; // type:func -BossGoma_SetupFloorLand = 0x808A7FF8; // type:func -BossGoma_SetupFloorLandStruckDown = 0x808A8084; // type:func -BossGoma_SetupFloorStunned = 0x808A8128; // type:func -BossGoma_SetupFloorAttackPosture = 0x808A8198; // type:func -BossGoma_SetupFloorPrepareAttack = 0x808A820C; // type:func -BossGoma_SetupFloorAttack = 0x808A8280; // type:func -BossGoma_SetupFloorDamaged = 0x808A82FC; // type:func -BossGoma_UpdateCeilingMovement = 0x808A8370; // type:func -BossGoma_SetupEncounterState4 = 0x808A85AC; // type:func -BossGoma_Encounter = 0x808A875C; // type:func -BossGoma_Defeated = 0x808A9854; // type:func -BossGoma_FloorAttackPosture = 0x808AA6C4; // type:func -BossGoma_FloorPrepareAttack = 0x808AA7CC; // type:func -BossGoma_FloorAttack = 0x808AA828; // type:func -BossGoma_FloorDamaged = 0x808AAA78; // type:func -BossGoma_FloorLandStruckDown = 0x808AAB10; // type:func -BossGoma_FloorLand = 0x808AABB4; // type:func -BossGoma_FloorStunned = 0x808AAC10; // type:func -BossGoma_FallJump = 0x808AAD3C; // type:func -BossGoma_FallStruckDown = 0x808AADF0; // type:func -BossGoma_CeilingSpawnGohmas = 0x808AAEB0; // type:func -BossGoma_CeilingPrepareSpawnGohmas = 0x808AB00C; // type:func -BossGoma_FloorIdle = 0x808AB068; // type:func -BossGoma_CeilingIdle = 0x808AB0D0; // type:func -BossGoma_FloorMain = 0x808AB1C8; // type:func -BossGoma_WallClimb = 0x808AB438; // type:func -BossGoma_CeilingMoveToCenter = 0x808AB504; // type:func -BossGoma_UpdateEye = 0x808AB700; // type:func -BossGoma_UpdateTailLimbsScale = 0x808AB948; // type:func -BossGoma_UpdateHit = 0x808ABA54; // type:func -BossGoma_UpdateMainEnvColor = 0x808ABC34; // type:func -BossGoma_UpdateEyeEnvColor = 0x808ABDB0; // type:func -BossGoma_Update = 0x808ABE58; // type:func -BossGoma_OverrideLimbDraw = 0x808AC028; // type:func -BossGoma_PostLimbDraw = 0x808AC468; // type:func -BossGoma_EmptyDlist = 0x808AC66C; // type:func -BossGoma_NoBackfaceCullingDlist = 0x808AC690; // type:func -BossGoma_Draw = 0x808AC6E8; // type:func -BossGoma_SpawnChildGohma = 0x808AC7D8; // type:func -func_80B4AB40 = 0x808AD450; // type:func -func_80B4AB48 = 0x808AD458; // type:func -EnZl1_Init = 0x808AD460; // type:func -EnZl1_Destroy = 0x808AD6F0; // type:func -func_80B4AE18 = 0x808AD730; // type:func -func_80B4AF18 = 0x808AD830; // type:func -func_80B4B010 = 0x808AD928; // type:func -func_80B4B240 = 0x808ADB60; // type:func -func_80B4B7F4 = 0x808AE114; // type:func -func_80B4B834 = 0x808AE158; // type:func -func_80B4B874 = 0x808AE19C; // type:func -func_80B4B8B4 = 0x808AE1DC; // type:func -func_80B4BBC4 = 0x808AE4EC; // type:func -func_80B4BC78 = 0x808AE5A0; // type:func -func_80B4BF2C = 0x808AE854; // type:func -EnZl1_Update = 0x808AEB48; // type:func -EnZl1_OverrideLimbDraw = 0x808AEC6C; // type:func -EnZl1_PostLimbDraw = 0x808AED2C; // type:func -EnZl1_Draw = 0x808AED88; // type:func -EnViewer_SetupAction = 0x808B1250; // type:func -EnViewer_Init = 0x808B125C; // type:func -EnViewer_Destroy = 0x808B1330; // type:func -EnViewer_InitAnimGanondorfOrZelda = 0x808B135C; // type:func -EnViewer_InitAnimImpa = 0x808B14A8; // type:func -EnViewer_InitAnimHorse = 0x808B1538; // type:func -EnViewer_InitImpl = 0x808B15D0; // type:func -EnViewer_UpdateImpl = 0x808B178C; // type:func -EnViewer_Update = 0x808B22E4; // type:func -EnViewer_Ganondorf3OverrideLimbDraw = 0x808B2338; // type:func -EnViewer_Ganondorf9PostLimbDraw = 0x808B23A8; // type:func -EnViewer_GanondorfPostLimbDrawUpdateCapeVec = 0x808B246C; // type:func -EnViewer_DrawGanondorf = 0x808B24AC; // type:func -EnViewer_DrawHorse = 0x808B28DC; // type:func -EnViewer_ZeldaOverrideLimbDraw = 0x808B2908; // type:func -EnViewer_ZeldaPostLimbDraw = 0x808B2988; // type:func -EnViewer_DrawZelda = 0x808B29D0; // type:func -EnViewer_ImpaOverrideLimbDraw = 0x808B3078; // type:func -EnViewer_DrawImpa = 0x808B30A0; // type:func -EnViewer_Draw = 0x808B31B4; // type:func -EnViewer_UpdatePosition = 0x808B32A4; // type:func -EnViewer_InitFireEffect = 0x808B3674; // type:func -EnViewer_DrawFireEffects = 0x808B37BC; // type:func -EnViewer_UpdateGanondorfCape = 0x808B3B00; // type:func -EnGoma_Init = 0x808B4120; // type:func -EnGoma_Destroy = 0x808B44AC; // type:func -EnGoma_SetupFlee = 0x808B44FC; // type:func -EnGoma_Flee = 0x808B45A0; // type:func -EnGoma_EggFallToGround = 0x808B4640; // type:func -EnGoma_Egg = 0x808B48CC; // type:func -EnGoma_SetupHatch = 0x808B4B0C; // type:func -EnGoma_Hatch = 0x808B4BD4; // type:func -EnGoma_SetupHurt = 0x808B4C1C; // type:func -EnGoma_Hurt = 0x808B4D08; // type:func -EnGoma_SetupDie = 0x808B4D90; // type:func -EnGoma_Die = 0x808B4E50; // type:func -EnGoma_SetupDead = 0x808B4EF4; // type:func -EnGoma_Dead = 0x808B4F6C; // type:func -EnGoma_SetupStand = 0x808B50DC; // type:func -EnGoma_SetupChasePlayer = 0x808B5168; // type:func -EnGoma_SetupPrepareJump = 0x808B51E8; // type:func -EnGoma_PrepareJump = 0x808B5264; // type:func -EnGoma_SetupLand = 0x808B52FC; // type:func -EnGoma_Land = 0x808B5374; // type:func -EnGoma_SetupJump = 0x808B53E0; // type:func -EnGoma_Jump = 0x808B5488; // type:func -EnGoma_Stand = 0x808B5540; // type:func -EnGoma_ChasePlayer = 0x808B55BC; // type:func -EnGoma_SetupStunned = 0x808B56C4; // type:func -EnGoma_Stunned = 0x808B5760; // type:func -EnGoma_LookAtPlayer = 0x808B5860; // type:func -EnGoma_UpdateHit = 0x808B590C; // type:func -EnGoma_UpdateEyeEnvColor = 0x808B5B3C; // type:func -EnGoma_SetFloorRot = 0x808B5BCC; // type:func -EnGoma_Update = 0x808B5CE0; // type:func -EnGoma_OverrideLimbDraw = 0x808B5F2C; // type:func -EnGoma_NoBackfaceCullingDlist = 0x808B6088; // type:func -EnGoma_Draw = 0x808B60E0; // type:func -EnGoma_Debris = 0x808B6564; // type:func -EnGoma_SpawnHatchDebris = 0x808B65A8; // type:func -EnGoma_BossLimb = 0x808B670C; // type:func -BgPushbox_SetupAction = 0x808B6DB0; // type:func -BgPushbox_Init = 0x808B6DBC; // type:func -BgPushbox_Destroy = 0x808B6E54; // type:func -BgPushbox_UpdateImpl = 0x808B6E88; // type:func -BgPushbox_Update = 0x808B6F64; // type:func -BgPushbox_Draw = 0x808B6F94; // type:func -EnBubble_SetDimensions = 0x808B70B0; // type:func -func_809CBCBC = 0x808B716C; // type:func -func_809CBCEC = 0x808B71A0; // type:func -EnBubble_DamagePlayer = 0x808B71C4; // type:func -EnBubble_Explosion = 0x808B7230; // type:func -func_809CBFD4 = 0x808B748C; // type:func -func_809CC020 = 0x808B74D8; // type:func -EnBubble_Vec3fNormalizedReflect = 0x808B752C; // type:func -EnBubble_Vec3fNormalize = 0x808B75B4; // type:func -EnBubble_Fly = 0x808B762C; // type:func -func_809CC648 = 0x808B7B08; // type:func -EnBubble_DetectPop = 0x808B7BA4; // type:func -func_809CC774 = 0x808B7C34; // type:func -EnBubble_Init = 0x808B7D48; // type:func -EnBubble_Destroy = 0x808B7E48; // type:func -EnBubble_Wait = 0x808B7E74; // type:func -EnBubble_Pop = 0x808B7F28; // type:func -EnBubble_Disappear = 0x808B7F78; // type:func -EnBubble_Regrow = 0x808B7FC0; // type:func -EnBubble_Update = 0x808B8030; // type:func -EnBubble_Draw = 0x808B80AC; // type:func -DoorShutter_SetupAction = 0x808B84D0; // type:func -DoorShutter_SetupDoor = 0x808B84E0; // type:func -DoorShutter_Init = 0x808B86C8; // type:func -DoorShutter_Destroy = 0x808B88E0; // type:func -DoorShutter_WaitForObject = 0x808B8950; // type:func -DoorShutter_GetPlayerDistance = 0x808B8A8C; // type:func -DoorShutter_GetPlayerSide = 0x808B8B24; // type:func -DoorShutter_WaitClear = 0x808B8CA4; // type:func -DoorShutter_Unopenable = 0x808B8D50; // type:func -DoorShutter_Idle = 0x808B8D60; // type:func -DoorShutter_InitOpeningDoorCam = 0x808B8EB4; // type:func -DoorShutter_UpdateOpening = 0x808B8F6C; // type:func -DoorShutter_UpdateBarsClosed = 0x808B9064; // type:func -DoorShutter_BarAndWaitSwitchFlag = 0x808B9148; // type:func -DoorShutter_UnbarredCheckSwitchFlag = 0x808B9200; // type:func -DoorShutter_Open = 0x808B926C; // type:func -DoorShutter_Unbar = 0x808B93BC; // type:func -DoorShutter_SetupClosed = 0x808B948C; // type:func -DoorShutter_Close = 0x808B9658; // type:func -DoorShutter_JabuDoorClose = 0x808B979C; // type:func -DoorShutter_WaitPlayerSurprised = 0x808B97E0; // type:func -DoorShutter_GohmaBlockFall = 0x808B9838; // type:func -DoorShutter_GohmaBlockBounce = 0x808B9934; // type:func -DoorShutter_PhantomGanonBarsRaise = 0x808B99C0; // type:func -DoorShutter_Update = 0x808B9A50; // type:func -DoorShutter_DrawJabuJabuDoor = 0x808B9AA4; // type:func -DoorShutter_ShouldDraw = 0x808B9C94; // type:func -DoorShutter_Draw = 0x808B9D40; // type:func -DoorShutter_RequestQuakeAndRumble = 0x808BA248; // type:func -EnDodojr_Init = 0x808BA750; // type:func -EnDodojr_Destroy = 0x808BA838; // type:func -EnDodojr_DoSwallowedBombEffects = 0x808BA864; // type:func -EnDodojr_SpawnLargeDust = 0x808BA8A8; // type:func -EnDodojr_SpawnSmallDust = 0x808BAAC8; // type:func -EnDodojr_UpdateBounces = 0x808BAC48; // type:func -EnDodojr_SetupCrawlTowardsTarget = 0x808BAD2C; // type:func -EnDodojr_SetupFlipBounce = 0x808BADB4; // type:func -EnDodojr_SetupSwallowedBombDeathSequence = 0x808BAE58; // type:func -EnDodojr_SetupJumpAttackBounce = 0x808BAEC8; // type:func -EnDodojr_SetupDespawn = 0x808BAF4C; // type:func -EnDodojr_SetupEatBomb = 0x808BAFB8; // type:func -EnDodojr_CheckNearbyBombs = 0x808BB034; // type:func -EnDodojr_TryEatBomb = 0x808BB160; // type:func -EnDodojr_UpdateCrawl = 0x808BB1E4; // type:func -EnDodojr_IsPlayerWithinAttackRange = 0x808BB3F8; // type:func -EnDodojr_SetupStandardDeathBounce = 0x808BB428; // type:func -EnDodojr_CheckDamaged = 0x808BB474; // type:func -EnDodojr_UpdateCollider = 0x808BB630; // type:func -EnDodojr_WaitUnderground = 0x808BB740; // type:func -EnDodojr_EmergeFromGround = 0x808BB858; // type:func -EnDodojr_CrawlTowardsTarget = 0x808BB920; // type:func -EnDodojr_EatBomb = 0x808BBA24; // type:func -EnDodojr_SwallowBomb = 0x808BBAD4; // type:func -EnDodojr_SwallowedBombDeathBounce = 0x808BBB44; // type:func -EnDodojr_SwallowedBombDeathSequence = 0x808BBBE4; // type:func -EnDodojr_StunnedBounce = 0x808BBC04; // type:func -EnDodojr_Stunned = 0x808BBC84; // type:func -EnDodojr_JumpAttackBounce = 0x808BBD34; // type:func -EnDodojr_Despawn = 0x808BBD9C; // type:func -EnDodojr_StandardDeathBounce = 0x808BBE54; // type:func -EnDodojr_DeathSequence = 0x808BBEDC; // type:func -EnDodojr_DropItem = 0x808BBF88; // type:func -EnDodojr_WaitFreezeFrames = 0x808BBFEC; // type:func -EnDodojr_Update = 0x808BC034; // type:func -EnDodojr_OverrideLimbDraw = 0x808BC0F4; // type:func -EnDodojr_PostLimbDraw = 0x808BC1A0; // type:func -EnDodojr_Draw = 0x808BC1B8; // type:func -EnBdfire_SetupAction = 0x808BC5F0; // type:func -EnbdFire_SetupDraw = 0x808BC5FC; // type:func -EnBdfire_Init = 0x808BC608; // type:func -EnBdfire_Destroy = 0x808BC838; // type:func -func_809BC2A4 = 0x808BC870; // type:func -func_809BC598 = 0x808BCB64; // type:func -EnBdfire_Update = 0x808BCE54; // type:func -EnBdfire_DrawFire = 0x808BCE90; // type:func -EnBdfire_Draw = 0x808BD048; // type:func -EnBoom_SetupAction = 0x808BD180; // type:func -EnBoom_Init = 0x808BD18C; // type:func -EnBoom_Destroy = 0x808BD2A8; // type:func -EnBoom_Fly = 0x808BD2E8; // type:func -EnBoom_Update = 0x808BD728; // type:func -EnBoom_Draw = 0x808BD780; // type:func -EnTorch2_Init = 0x808BDA40; // type:func -EnTorch2_Destroy = 0x808BDBE8; // type:func -EnTorch2_GetAttackItem = 0x808BDC58; // type:func -EnTorch2_SwingSword = 0x808BDCA0; // type:func -EnTorch2_Backflip = 0x808BDE38; // type:func -EnTorch2_Update = 0x808BDE90; // type:func -EnTorch2_OverrideLimbDraw = 0x808BF878; // type:func -EnTorch2_PostLimbDraw = 0x808BF8A4; // type:func -EnTorch2_Draw = 0x808BF8C8; // type:func -EnBili_Init = 0x808C01E0; // type:func -EnBili_Destroy = 0x808C02D8; // type:func -EnBili_SetupFloatIdle = 0x808C0304; // type:func -EnBili_SetupSpawnedFlyApart = 0x808C0360; // type:func -EnBili_SetupDischargeLightning = 0x808C03D8; // type:func -EnBili_SetupClimb = 0x808C0434; // type:func -EnBili_SetupApproachPlayer = 0x808C048C; // type:func -EnBili_SetupSetNewHomeHeight = 0x808C04AC; // type:func -EnBili_SetupRecoil = 0x808C0514; // type:func -EnBili_SetupBurnt = 0x808C059C; // type:func -EnBili_SetupDie = 0x808C063C; // type:func -EnBili_SetupStunned = 0x808C0670; // type:func -EnBili_SetupFrozen = 0x808C06E8; // type:func -EnBili_UpdateTentaclesIndex = 0x808C08C0; // type:func -EnBili_UpdateFloating = 0x808C09E0; // type:func -EnBili_FloatIdle = 0x808C0AC8; // type:func -EnBili_SpawnedFlyApart = 0x808C0BB4; // type:func -EnBili_DischargeLightning = 0x808C0C0C; // type:func -EnBili_Climb = 0x808C0E08; // type:func -EnBili_ApproachPlayer = 0x808C0EC4; // type:func -EnBili_SetNewHomeHeight = 0x808C0F54; // type:func -EnBili_Recoil = 0x808C0FD0; // type:func -EnBili_Burnt = 0x808C1034; // type:func -EnBili_Die = 0x808C10A8; // type:func -EnBili_Stunned = 0x808C12D0; // type:func -EnBili_Frozen = 0x808C1330; // type:func -EnBili_UpdateDamage = 0x808C13C0; // type:func -EnBili_Update = 0x808C158C; // type:func -EnBili_PulseLimb3 = 0x808C1760; // type:func -EnBili_PulseLimb2 = 0x808C1978; // type:func -EnBili_PulseLimb4 = 0x808C1B98; // type:func -EnBili_OverrideLimbDraw = 0x808C1D00; // type:func -EnBili_Draw = 0x808C1DF0; // type:func -EnTp_SetupAction = 0x808C24B0; // type:func -EnTp_Init = 0x808C24BC; // type:func -EnTp_Destroy = 0x808C2734; // type:func -EnTp_Tail_SetupFollowHead = 0x808C2760; // type:func -EnTp_Tail_FollowHead = 0x808C278C; // type:func -EnTp_Head_SetupApproachPlayer = 0x808C2968; // type:func -EnTp_Head_ApproachPlayer = 0x808C299C; // type:func -EnTp_SetupDie = 0x808C2B38; // type:func -EnTp_Die = 0x808C2BB0; // type:func -EnTp_Fragment_SetupFade = 0x808C2EE0; // type:func -EnTp_Fragment_Fade = 0x808C2FE4; // type:func -EnTp_Head_SetupTakeOff = 0x808C3030; // type:func -EnTp_Head_TakeOff = 0x808C308C; // type:func -EnTp_Head_SetupWait = 0x808C3274; // type:func -EnTp_Head_Wait = 0x808C32C0; // type:func -EnTp_Head_SetupBurrowReturnHome = 0x808C35CC; // type:func -EnTp_Head_BurrowReturnHome = 0x808C35FC; // type:func -EnTp_UpdateDamage = 0x808C38CC; // type:func -EnTp_Update = 0x808C3B24; // type:func -EnTp_Draw = 0x808C3E90; // type:func -EnSt_SetupAction = 0x808C4300; // type:func -EnSt_SpawnDust = 0x808C430C; // type:func -EnSt_SpawnBlastEffect = 0x808C452C; // type:func -EnSt_SpawnDeadEffect = 0x808C45B4; // type:func -EnSt_CreateBlureEffect = 0x808C46F0; // type:func -EnSt_CheckCeilingPos = 0x808C47EC; // type:func -EnSt_AddBlurVertex = 0x808C48BC; // type:func -EnSt_AddBlurSpace = 0x808C49C4; // type:func -EnSt_SetWaitingAnimation = 0x808C49F0; // type:func -EnSt_SetReturnToCeilingAnimation = 0x808C4A20; // type:func -EnSt_SetLandAnimation = 0x808C4A60; // type:func -EnSt_SetDropAnimAndVel = 0x808C4ABC; // type:func -EnSt_InitColliders = 0x808C4B1C; // type:func -EnSt_CheckBodyStickHit = 0x808C4C5C; // type:func -EnSt_SetBodyCylinderAC = 0x808C4CD0; // type:func -EnSt_SetLegsCylinderAC = 0x808C4D14; // type:func -EnSt_SetCylinderOC = 0x808C4DCC; // type:func -EnSt_UpdateCylinders = 0x808C4FA4; // type:func -EnSt_CheckHitPlayer = 0x808C5068; // type:func -EnSt_CheckHitFrontside = 0x808C5154; // type:func -EnSt_CheckHitBackside = 0x808C5194; // type:func -EnSt_CheckColliders = 0x808C5384; // type:func -EnSt_SetColliderScale = 0x808C540C; // type:func -EnSt_SetTeethColor = 0x808C5578; // type:func -EnSt_DecrStunTimer = 0x808C56A8; // type:func -EnSt_UpdateYaw = 0x808C56C8; // type:func -EnSt_IsDoneBouncing = 0x808C5968; // type:func -EnSt_Bob = 0x808C5A30; // type:func -EnSt_IsCloseToPlayer = 0x808C5A9C; // type:func -EnSt_IsCloseToInitalPos = 0x808C5B44; // type:func -EnSt_IsCloseToGround = 0x808C5B7C; // type:func -EnSt_Sway = 0x808C5BBC; // type:func -EnSt_Init = 0x808C5D8C; // type:func -EnSt_Destroy = 0x808C5EB0; // type:func -EnSt_WaitOnCeiling = 0x808C5F30; // type:func -EnSt_WaitOnGround = 0x808C5F8C; // type:func -EnSt_LandOnGround = 0x808C6084; // type:func -EnSt_MoveToGround = 0x808C6188; // type:func -EnSt_ReturnToCeiling = 0x808C6280; // type:func -EnSt_BounceAround = 0x808C6354; // type:func -EnSt_FinishBouncing = 0x808C6428; // type:func -EnSt_Die = 0x808C659C; // type:func -EnSt_StartOnCeilingOrGround = 0x808C6614; // type:func -EnSt_Update = 0x808C6698; // type:func -EnSt_OverrideLimbDraw = 0x808C6818; // type:func -EnSt_PostLimbDraw = 0x808C68F8; // type:func -EnSt_Draw = 0x808C6934; // type:func -EnBw_SetupAction = 0x808C6F70; // type:func -EnBw_Init = 0x808C6F7C; // type:func -EnBw_Destroy = 0x808C70DC; // type:func -func_809CE884 = 0x808C711C; // type:func -func_809CE9A8 = 0x808C7240; // type:func -func_809CEA24 = 0x808C72BC; // type:func -func_809CF72C = 0x808C7FC4; // type:func -func_809CF7AC = 0x808C8044; // type:func -func_809CF8F0 = 0x808C8188; // type:func -func_809CF984 = 0x808C821C; // type:func -func_809CFBA8 = 0x808C8444; // type:func -func_809CFC4C = 0x808C84E8; // type:func -func_809CFF10 = 0x808C87AC; // type:func -func_809CFF98 = 0x808C8834; // type:func -func_809D00F4 = 0x808C8990; // type:func -func_809D014C = 0x808C89E8; // type:func -func_809D01CC = 0x808C8A68; // type:func -func_809D0268 = 0x808C8B04; // type:func -func_809D03CC = 0x808C8C68; // type:func -func_809D0424 = 0x808C8CC0; // type:func -func_809D0584 = 0x808C8E20; // type:func -EnBw_Update = 0x808C912C; // type:func -EnBw_OverrideLimbDraw = 0x808C95BC; // type:func -EnBw_Draw = 0x808C97CC; // type:func -EnEiyer_Init = 0x808CA2E0; // type:func -EnEiyer_Destroy = 0x808CA4C0; // type:func -EnEiyer_RotateAroundHome = 0x808CA4EC; // type:func -EnEiyer_SetupAppearFromGround = 0x808CA55C; // type:func -EnEiyer_SetupUnderground = 0x808CA69C; // type:func -EnEiyer_SetupInactive = 0x808CA6FC; // type:func -EnEiyer_SetupAmbush = 0x808CA728; // type:func -EnEiyer_SetupGlide = 0x808CA808; // type:func -EnEiyer_SetupStartAttack = 0x808CA884; // type:func -EnEiyer_SetupDiveAttack = 0x808CA898; // type:func -EnEiyer_SetupLand = 0x808CA8E0; // type:func -EnEiyer_SetupHurt = 0x808CA958; // type:func -EnEiyer_SetupDie = 0x808CAA08; // type:func -EnEiyer_SetupDead = 0x808CAAC8; // type:func -EnEiyer_SetupStunned = 0x808CAAF4; // type:func -EnEiyer_AppearFromGround = 0x808CABB8; // type:func -EnEiyer_CheckPlayerCollision = 0x808CAC08; // type:func -EnEiyer_CircleUnderground = 0x808CAC38; // type:func -EnEiyer_WanderUnderground = 0x808CACB4; // type:func -EnEiyer_Inactive = 0x808CADE8; // type:func -EnEiyer_Ambush = 0x808CAE7C; // type:func -EnEiyer_Glide = 0x808CAFD4; // type:func -EnEiyer_StartAttack = 0x808CB1F0; // type:func -EnEiyer_DiveAttack = 0x808CB2EC; // type:func -EnEiyer_Land = 0x808CB378; // type:func -EnEiyer_Hurt = 0x808CB46C; // type:func -EnEiyer_Die = 0x808CB5A4; // type:func -EnEiyer_Dead = 0x808CB658; // type:func -EnEiyer_Stunned = 0x808CB6D8; // type:func -EnEiyer_UpdateDamage = 0x808CB790; // type:func -EnEiyer_Update = 0x808CB8D8; // type:func -EnEiyer_OverrideLimbDraw = 0x808CBAFC; // type:func -EnEiyer_Draw = 0x808CBB50; // type:func -EnRiverSound_Init = 0x808CBF40; // type:func -EnRiverSound_Destroy = 0x808CC010; // type:func -EnRiverSound_FindClosestPointOnLineSegment = 0x808CC068; // type:func -EnRiverSound_GetSfxPos = 0x808CC1D4; // type:func -EnRiverSound_Update = 0x808CC4D0; // type:func -EnRiverSound_Draw = 0x808CC6A0; // type:func -func_80A6B250 = 0x808CC8D0; // type:func -func_80A6B30C = 0x808CC98C; // type:func -EnHorseNormal_Init = 0x808CCA54; // type:func -EnHorseNormal_Destroy = 0x808CCF44; // type:func -func_80A6B91C = 0x808CCFA4; // type:func -EnHorseNormal_FollowPath = 0x808CD05C; // type:func -EnHorseNormal_NextAnimation = 0x808CD238; // type:func -EnHorseNormal_CycleAnimations = 0x808CD28C; // type:func -func_80A6BC48 = 0x808CD2D4; // type:func -func_80A6BCEC = 0x808CD37C; // type:func -func_80A6BD7C = 0x808CD40C; // type:func -EnHorseNormal_Wander = 0x808CD500; // type:func -func_80A6C4CC = 0x808CDB64; // type:func -EnHorseNormal_Wait = 0x808CDC0C; // type:func -func_80A6C6B0 = 0x808CDD4C; // type:func -EnHorseNormal_WaitClone = 0x808CDE00; // type:func -func_80A6C8E0 = 0x808CDF84; // type:func -EnHorseNormal_Update = 0x808CE048; // type:func -EnHorseNormal_PostDraw = 0x808CE1A4; // type:func -func_80A6CC88 = 0x808CE330; // type:func -EnHorseNormal_Draw = 0x808CE518; // type:func -EnOssan_SetupAction = 0x808CEEF0; // type:func -ShopItemDisp_Default = 0x808CEEFC; // type:func -ShopItemDisp_SpookyMask = 0x808CEF14; // type:func -ShopItemDisp_SkullMask = 0x808CEF48; // type:func -ShopItemDisp_BunnyHood = 0x808CEF7C; // type:func -ShopItemDisp_ZoraMask = 0x808CEFB0; // type:func -ShopItemDisp_GoronMask = 0x808CEFE4; // type:func -ShopItemDisp_GerudoMask = 0x808CF018; // type:func -EnOssan_SpawnItemsOnShelves = 0x808CF04C; // type:func -EnOssan_UpdateShopOfferings = 0x808CF1A0; // type:func -EnOssan_TalkDefaultShopkeeper = 0x808CF30C; // type:func -EnOssan_TalkKakarikoPotionShopkeeper = 0x808CF32C; // type:func -EnOssan_TalkMarketPotionShopkeeper = 0x808CF370; // type:func -EnOssan_TalkKokiriShopkeeper = 0x808CF390; // type:func -EnOssan_TalkBazaarShopkeeper = 0x808CF3B0; // type:func -EnOssan_TalkBombchuShopkeeper = 0x808CF3F4; // type:func -EnOssan_TalkZoraShopkeeper = 0x808CF414; // type:func -EnOssan_TalkGoronShopkeeper = 0x808CF46C; // type:func -EnOssan_TalkHappyMaskShopkeeper = 0x808CF540; // type:func -EnOssan_UpdateCameraDirection = 0x808CF5CC; // type:func -EnOssan_TryGetObjBankIndices = 0x808CF630; // type:func -EnOssan_Init = 0x808CF6F4; // type:func -EnOssan_Destroy = 0x808CF8C0; // type:func -EnOssan_UpdateCursorPos = 0x808CF900; // type:func -EnOssan_EndInteraction = 0x808CF964; // type:func -EnOssan_TestEndInteraction = 0x808CFA28; // type:func -EnOssan_TestCancelOption = 0x808CFA70; // type:func -EnOssan_SetStateStartShopping = 0x808CFAD4; // type:func -EnOssan_StartShopping = 0x808CFB58; // type:func -EnOssan_ChooseTalkToOwner = 0x808CFC30; // type:func -EnOssan_SetLookToShopkeeperFromShelf = 0x808CFC90; // type:func -EnOssan_State_Idle = 0x808CFCC4; // type:func -EnOssan_UpdateJoystickInputState = 0x808CFD74; // type:func -EnOssan_SetCursorIndexFromNeutral = 0x808CFEC0; // type:func -EnOssan_CursorRight = 0x808CFFF8; // type:func -EnOssan_CursorLeft = 0x808D0084; // type:func -EnOssan_TryPaybackMask = 0x808D00EC; // type:func -EnOssan_State_StartConversation = 0x808D0228; // type:func -EnOssan_FacingShopkeeperDialogResult = 0x808D03D0; // type:func -EnOssan_State_FacingShopkeeper = 0x808D043C; // type:func -EnOssan_State_TalkingToShopkeeper = 0x808D0554; // type:func -EnOssan_State_LookToLeftShelf = 0x808D05A8; // type:func -EnOssan_State_LookToRightShelf = 0x808D0694; // type:func -EnOssan_CursorUpDown = 0x808D0780; // type:func -EnOssan_HasPlayerSelectedItem = 0x808D0994; // type:func -EnOssan_State_BrowseLeftShelf = 0x808D0B30; // type:func -EnOssan_State_BrowseRightShelf = 0x808D0CF0; // type:func -EnOssan_State_LookFromShelfToShopkeeper = 0x808D0EB0; // type:func -EnOssan_State_DisplayOnlyBombDialog = 0x808D0F6C; // type:func -EnOssan_GiveItemWithFanfare = 0x808D103C; // type:func -EnOssan_SetStateCantGetItem = 0x808D1108; // type:func -EnOssan_SetStateQuickBuyDialog = 0x808D113C; // type:func -EnOssan_HandleCanBuyItem = 0x808D1170; // type:func -EnOssan_HandleCanBuyLonLonMilk = 0x808D1318; // type:func -EnOssan_HandleCanBuyWeirdEgg = 0x808D1424; // type:func -EnOssan_HandleCanBuyBombs = 0x808D155C; // type:func -EnOssan_BuyGoronCityBombs = 0x808D1660; // type:func -EnOssan_State_ItemSelected = 0x808D1704; // type:func -EnOssan_State_SelectMilkBottle = 0x808D17D8; // type:func -EnOssan_State_SelectWeirdEgg = 0x808D18AC; // type:func -EnOssan_State_SelectUnimplementedItem = 0x808D1980; // type:func -EnOssan_State_SelectBombs = 0x808D1A10; // type:func -EnOssan_State_SelectMaskItem = 0x808D1B08; // type:func -EnOssan_State_CantGetItem = 0x808D1CE4; // type:func -EnOssan_State_QuickBuyDialog = 0x808D1D60; // type:func -EnOssan_State_GiveItemWithFanfare = 0x808D1E08; // type:func -EnOssan_State_ItemPurchased = 0x808D1E78; // type:func -EnOssan_State_ContinueShoppingPrompt = 0x808D1FBC; // type:func -EnOssan_State_WaitForDisplayOnlyBombDialog = 0x808D219C; // type:func -EnOssan_State_21 = 0x808D2204; // type:func -EnOssan_State_22 = 0x808D2278; // type:func -EnOssan_State_GiveLonLonMilk = 0x808D22CC; // type:func -EnOssan_State_LendMaskOfTruth = 0x808D2320; // type:func -EnOssan_SetStateGiveDiscountDialog = 0x808D2390; // type:func -EnOssan_State_GiveDiscountDialog = 0x808D23BC; // type:func -EnOssan_PositionSelectedItem = 0x808D2450; // type:func -EnOssan_ResetItemPosition = 0x808D2538; // type:func -EnOssan_TakeItemOffShelf = 0x808D255C; // type:func -EnOssan_ReturnItemToShelf = 0x808D25F8; // type:func -EnOssan_UpdateItemSelectedProperty = 0x808D2684; // type:func -EnOssan_UpdateCursorAnim = 0x808D27C0; // type:func -EnOssan_UpdateStickDirectionPromptAnim = 0x808D288C; // type:func -EnOssan_WaitForBlink = 0x808D2A3C; // type:func -EnOssan_Blink = 0x808D2A70; // type:func -EnOssan_AreShopkeeperObjectsLoaded = 0x808D2B10; // type:func -EnOssan_InitBazaarShopkeeper = 0x808D2BAC; // type:func -EnOssan_InitKokiriShopkeeper = 0x808D2C0C; // type:func -EnOssan_InitGoronShopkeeper = 0x808D2D24; // type:func -EnOssan_InitZoraShopkeeper = 0x808D2E00; // type:func -EnOssan_InitPotionShopkeeper = 0x808D2EDC; // type:func -EnOssan_InitHappyMaskShopkeeper = 0x808D2F3C; // type:func -EnOssan_InitBombchuShopkeeper = 0x808D2F9C; // type:func -EnOssan_SetupHelloDialog = 0x808D2FFC; // type:func -EnOssan_InitActionFunc = 0x808D3164; // type:func -EnOssan_Obj3ToSeg6 = 0x808D341C; // type:func -EnOssan_MainActionFunc = 0x808D3454; // type:func -EnOssan_Update = 0x808D3570; // type:func -EnOssan_OverrideLimbDrawDefaultShopkeeper = 0x808D359C; // type:func -EnOssan_DrawCursor = 0x808D35D4; // type:func -EnOssan_DrawTextRec = 0x808D3840; // type:func -EnOssan_DrawStickDirectionPrompts = 0x808D39DC; // type:func -EnOssan_DrawBazaarShopkeeper = 0x808D3D84; // type:func -EnOssan_OverrideLimbDrawKokiriShopkeeper = 0x808D3E78; // type:func -EnOssan_EmptyDList = 0x808D3F70; // type:func -EnOssan_SetEnvColor = 0x808D3F94; // type:func -EnOssan_DrawKokiriShopkeeper = 0x808D4000; // type:func -EnOssan_DrawGoronShopkeeper = 0x808D4160; // type:func -EnOssan_OverrideLimbDrawZoraShopkeeper = 0x808D4294; // type:func -EnOssan_DrawZoraShopkeeper = 0x808D42CC; // type:func -EnOssan_DrawPotionShopkeeper = 0x808D440C; // type:func -EnOssan_DrawHappyMaskShopkeeper = 0x808D44F8; // type:func -EnOssan_DrawBombchuShopkeeper = 0x808D45E4; // type:func -BgTreemouth_SetupAction = 0x808D54D0; // type:func -BgTreemouth_Init = 0x808D54DC; // type:func -BgTreemouth_Destroy = 0x808D5604; // type:func -func_808BC65C = 0x808D5638; // type:func -func_808BC6F8 = 0x808D56D4; // type:func -func_808BC80C = 0x808D57E8; // type:func -func_808BC864 = 0x808D5840; // type:func -func_808BC8B8 = 0x808D5894; // type:func -func_808BC9EC = 0x808D59C8; // type:func -func_808BCAF0 = 0x808D5AD0; // type:func -BgTreemouth_DoNothing = 0x808D5B6C; // type:func -BgTreemouth_Update = 0x808D5B7C; // type:func -BgTreemouth_Draw = 0x808D5BFC; // type:func -BgDodoago_SetupAction = 0x808D6B30; // type:func -BgDodoago_SpawnSparkles = 0x808D6B3C; // type:func -BgDodoago_Init = 0x808D6C5C; // type:func -BgDodoago_Destroy = 0x808D6DC0; // type:func -BgDodoago_WaitExplosives = 0x808D6E2C; // type:func -BgDodoago_OpenJaw = 0x808D70F0; // type:func -BgDodoago_DoNothing = 0x808D73B4; // type:func -BgDodoago_LightOneEye = 0x808D73C4; // type:func -BgDodoago_Update = 0x808D7428; // type:func -BgDodoago_Draw = 0x808D7580; // type:func -BgHidanDalm_Init = 0x808D78E0; // type:func -BgHidanDalm_Destroy = 0x808D79C8; // type:func -BgHidanDalm_Wait = 0x808D7A10; // type:func -BgHidanDalm_Shrink = 0x808D7B94; // type:func -BgHidanDalm_Update = 0x808D7D44; // type:func -BgHidanDalm_UpdateCollider = 0x808D7DA4; // type:func -BgHidanDalm_Draw = 0x808D7ED0; // type:func -BgHidanHrock_Init = 0x808D8130; // type:func -BgHidanHrock_Destroy = 0x808D8460; // type:func -func_808894A4 = 0x808D84A8; // type:func -func_808894B0 = 0x808D84B8; // type:func -func_8088960C = 0x808D8614; // type:func -func_808896B8 = 0x808D86C0; // type:func -BgHidanHrock_Update = 0x808D87A0; // type:func -BgHidanHrock_Draw = 0x808D87C4; // type:func -func_80A68660 = 0x808D8960; // type:func -func_80A686A8 = 0x808D89AC; // type:func -func_80A68870 = 0x808D8B74; // type:func -EnHorseGanon_Init = 0x808D8C30; // type:func -EnHorseGanon_Destroy = 0x808D8D7C; // type:func -func_80A68AC4 = 0x808D8DCC; // type:func -func_80A68AF0 = 0x808D8DFC; // type:func -func_80A68B20 = 0x808D8E30; // type:func -func_80A68DB0 = 0x808D90C0; // type:func -func_80A68E14 = 0x808D9124; // type:func -EnHorseGanon_Update = 0x808D91E8; // type:func -EnHorseGanon_PostDraw = 0x808D92BC; // type:func -EnHorseGanon_Draw = 0x808D9448; // type:func -BgHidanRock_Init = 0x808D96E0; // type:func -BgHidanRock_Destroy = 0x808D985C; // type:func -func_8088B24C = 0x808D98B0; // type:func -func_8088B268 = 0x808D98D0; // type:func -func_8088B5F4 = 0x808D9C60; // type:func -func_8088B634 = 0x808D9CA0; // type:func -func_8088B69C = 0x808D9D0C; // type:func -func_8088B79C = 0x808D9E0C; // type:func -func_8088B90C = 0x808D9F7C; // type:func -func_8088B954 = 0x808D9FC4; // type:func -func_8088B990 = 0x808DA000; // type:func -BgHidanRock_Update = 0x808DA1EC; // type:func -func_8088BC40 = 0x808DA2BC; // type:func -BgHidanRock_Draw = 0x808DA4B8; // type:func -BgHidanRsekizou_Init = 0x808DA7D0; // type:func -BgHidanRsekizou_Destroy = 0x808DA8D4; // type:func -BgHidanRsekizou_Update = 0x808DA91C; // type:func -BgHidanRsekizou_DrawFireball = 0x808DACE0; // type:func -BgHidanRsekizou_Draw = 0x808DB000; // type:func -func_8088CEC0 = 0x808DB3B0; // type:func -BgHidanSekizou_Init = 0x808DB76C; // type:func -BgHidanSekizou_Destroy = 0x808DB8E0; // type:func -func_8088D434 = 0x808DB928; // type:func -func_8088D720 = 0x808DBC14; // type:func -func_8088D750 = 0x808DBC44; // type:func -BgHidanSekizou_Update = 0x808DBDB0; // type:func -func_8088D9F4 = 0x808DBEEC; // type:func -func_8088DC50 = 0x808DC134; // type:func -func_8088DE08 = 0x808DC2EC; // type:func -BgHidanSekizou_Draw = 0x808DC3CC; // type:func -BgHidanSima_Init = 0x808DC800; // type:func -BgHidanSima_Destroy = 0x808DC904; // type:func -func_8088E518 = 0x808DC94C; // type:func -func_8088E5D0 = 0x808DCA08; // type:func -func_8088E6D0 = 0x808DCB0C; // type:func -func_8088E760 = 0x808DCBA4; // type:func -func_8088E7A8 = 0x808DCBEC; // type:func -func_8088E90C = 0x808DCD50; // type:func -BgHidanSima_Update = 0x808DCEB0; // type:func -func_8088EB54 = 0x808DCFA0; // type:func -BgHidanSima_Draw = 0x808DD438; // type:func -BgHidanSyoku_Init = 0x808DD720; // type:func -BgHidanSyoku_Destroy = 0x808DD7AC; // type:func -func_8088F47C = 0x808DD7E0; // type:func -func_8088F4B8 = 0x808DD81C; // type:func -func_8088F514 = 0x808DD87C; // type:func -func_8088F5A0 = 0x808DD908; // type:func -func_8088F62C = 0x808DD994; // type:func -BgHidanSyoku_Update = 0x808DD9F0; // type:func -BgHidanSyoku_Draw = 0x808DDA98; // type:func -EnXc_InitCollider = 0x808DDB80; // type:func -EnXc_UpdateCollider = 0x808DDBCC; // type:func -EnXc_Destroy = 0x808DDC10; // type:func -EnXc_CalculateHeadTurn = 0x808DDC3C; // type:func -EnXc_SetEyePattern = 0x808DDCC4; // type:func -EnXc_SpawnNut = 0x808DDD4C; // type:func -EnXc_BgCheck = 0x808DDE14; // type:func -EnXc_AnimIsFinished = 0x808DDE5C; // type:func -EnXc_GetCue = 0x808DDE80; // type:func -EnXc_CheckForCue = 0x808DDEA4; // type:func -EnXc_CheckForNoCue = 0x808DDEF0; // type:func -func_80B3C588 = 0x808DDF3C; // type:func -func_80B3C620 = 0x808DDFD4; // type:func -EnXc_ChangeAnimation = 0x808DE0B4; // type:func -EnXc_CheckAndSetAction = 0x808DE170; // type:func -func_80B3C7D4 = 0x808DE188; // type:func -func_80B3C8CC = 0x808DE1B4; // type:func -func_80B3C924 = 0x808DE210; // type:func -func_80B3C964 = 0x808DE250; // type:func -func_80B3C9DC = 0x808DE2C8; // type:func -func_80B3C9EC = 0x808DE2DC; // type:func -func_80B3CA38 = 0x808DE328; // type:func -EnXc_MinuetCS = 0x808DE37C; // type:func -func_80B3CB58 = 0x808DE454; // type:func -EnXc_BoleroCS = 0x808DE4A8; // type:func -EnXc_SetupSerenadeAction = 0x808DE608; // type:func -EnXc_SerenadeCS = 0x808DE660; // type:func -EnXc_DoNothing = 0x808DE728; // type:func -EnXc_SetWalkingSFX = 0x808DE738; // type:func -EnXc_SetNutThrowSFX = 0x808DE7B8; // type:func -EnXc_SetLandingSFX = 0x808DE844; // type:func -EnXc_SetColossusAppearSFX = 0x808DE8C4; // type:func -func_80B3D118 = 0x808DE9D0; // type:func -EnXc_SetColossusWindSFX = 0x808DEA14; // type:func -EnXc_SpawnFlame = 0x808DEB1C; // type:func -EnXc_SetupFlamePos = 0x808DEBC0; // type:func -EnXc_DestroyFlame = 0x808DEC3C; // type:func -EnXc_InitFlame = 0x808DEC7C; // type:func -func_80B3D48C = 0x808DED18; // type:func -EnXc_GetCurrentHarpAnim = 0x808DED68; // type:func -EnXc_CalcXZAccel = 0x808DEDFC; // type:func -func_80B3D644 = 0x808DEED4; // type:func -EnXc_CalcXZSpeed = 0x808DEEF4; // type:func -func_80B3D6F0 = 0x808DEF80; // type:func -func_80B3D710 = 0x808DEFA0; // type:func -func_80B3D730 = 0x808DEFC0; // type:func -func_80B3D750 = 0x808DEFE0; // type:func -EnXc_SetupFallFromSkyAction = 0x808DF02C; // type:func -func_80B3D8A4 = 0x808DF13C; // type:func -EnXc_SetupWalkAction = 0x808DF22C; // type:func -EnXc_SetupHaltAction = 0x808DF29C; // type:func -EnXc_SetupStoppedAction = 0x808DF348; // type:func -func_80B3DAF0 = 0x808DF390; // type:func -EnXc_SetupInitialHarpAction = 0x808DF450; // type:func -EnXc_SetupPlayingHarpAction = 0x808DF4C8; // type:func -func_80B3DCA8 = 0x808DF550; // type:func -EnXc_SetupHarpPutawayAction = 0x808DF5E4; // type:func -func_80B3DE00 = 0x808DF6B4; // type:func -func_80B3DE78 = 0x808DF72C; // type:func -EnXc_SetupReverseAccel = 0x808DF7A8; // type:func -EnXc_SetupReverseWalkAction = 0x808DF858; // type:func -EnXc_SetupReverseHaltAction = 0x808DF8C8; // type:func -EnXc_SetupNutThrow = 0x808DF974; // type:func -func_80B3E164 = 0x808DFA1C; // type:func -EnXc_SetupDisappear = 0x808DFA70; // type:func -EnXc_ActionFunc0 = 0x808DFAE0; // type:func -EnXc_ActionFunc1 = 0x808DFB20; // type:func -EnXc_GracefulFall = 0x808DFB60; // type:func -EnXc_Accelerate = 0x808DFBDC; // type:func -EnXc_Walk = 0x808DFC3C; // type:func -EnXc_Stopped = 0x808DFC9C; // type:func -EnXc_ActionFunc6 = 0x808DFCFC; // type:func -EnXc_ActionFunc7 = 0x808DFD44; // type:func -EnXc_ActionFunc8 = 0x808DFD90; // type:func -EnXc_ActionFunc9 = 0x808DFDE0; // type:func -EnXc_ActionFunc10 = 0x808DFE28; // type:func -EnXc_ActionFunc11 = 0x808DFE70; // type:func -EnXc_ActionFunc12 = 0x808DFEBC; // type:func -EnXc_ActionFunc13 = 0x808DFF08; // type:func -EnXc_ReverseAccelerate = 0x808DFF64; // type:func -EnXc_ActionFunc15 = 0x808DFFD0; // type:func -EnXc_HaltAndWaitToThrowNut = 0x808E003C; // type:func -EnXc_ThrowNut = 0x808E00A8; // type:func -EnXc_Delete = 0x808E0110; // type:func -EnXc_Fade = 0x808E016C; // type:func -func_80B3E87C = 0x808E018C; // type:func -EnXc_PullingOutHarpOverrideLimbDraw = 0x808E01BC; // type:func -EnXc_HarpOverrideLimbDraw = 0x808E01F8; // type:func -EnXc_DrawPullingOutHarp = 0x808E0220; // type:func -EnXc_DrawHarp = 0x808E035C; // type:func -func_80B3EBF0 = 0x808E0498; // type:func -func_80B3EC00 = 0x808E04AC; // type:func -func_80B3EC0C = 0x808E04BC; // type:func -func_80B3EC90 = 0x808E0540; // type:func -func_80B3ECD8 = 0x808E0588; // type:func -EnXc_ActionFunc20 = 0x808E05F8; // type:func -EnXc_ActionFunc21 = 0x808E061C; // type:func -EnXc_ActionFunc22 = 0x808E063C; // type:func -EnXc_ActionFunc23 = 0x808E0684; // type:func -EnXc_ActionFunc24 = 0x808E06E4; // type:func -EnXc_ActionFunc25 = 0x808E06F4; // type:func -EnXc_ActionFunc26 = 0x808E0704; // type:func -EnXc_ActionFunc27 = 0x808E0714; // type:func -EnXc_ActionFunc28 = 0x808E0724; // type:func -func_80B3EE64 = 0x808E0734; // type:func -func_80B3EE74 = 0x808E0748; // type:func -func_80B3EEA4 = 0x808E077C; // type:func -func_80B3EEC8 = 0x808E07A0; // type:func -func_80B3EEEC = 0x808E07C4; // type:func -func_80B3EF10 = 0x808E07E8; // type:func -func_80B3EF34 = 0x808E080C; // type:func -func_80B3EF58 = 0x808E0830; // type:func -func_80B3EF80 = 0x808E0858; // type:func -func_80B3EFA4 = 0x808E087C; // type:func -func_80B3EFC8 = 0x808E08A0; // type:func -func_80B3EFEC = 0x808E08C4; // type:func -func_80B3F010 = 0x808E08E8; // type:func -func_80B3F0B8 = 0x808E0994; // type:func -func_80B3F0DC = 0x808E09B8; // type:func -func_80B3F100 = 0x808E09DC; // type:func -EnXc_Serenade = 0x808E0A00; // type:func -EnXc_ActionFunc30 = 0x808E0A20; // type:func -EnXc_ActionFunc31 = 0x808E0A4C; // type:func -EnXc_ActionFunc32 = 0x808E0A90; // type:func -EnXc_ActionFunc33 = 0x808E0ABC; // type:func -EnXc_ActionFunc34 = 0x808E0AE8; // type:func -EnXc_ActionFunc35 = 0x808E0B14; // type:func -EnXc_ActionFunc36 = 0x808E0B40; // type:func -EnXc_ActionFunc37 = 0x808E0B6C; // type:func -EnXc_ActionFunc38 = 0x808E0B98; // type:func -EnXc_ActionFunc39 = 0x808E0BC4; // type:func -EnXc_ActionFunc40 = 0x808E0BF0; // type:func -EnXc_ActionFunc41 = 0x808E0C50; // type:func -EnXc_ActionFunc42 = 0x808E0C7C; // type:func -EnXc_ActionFunc43 = 0x808E0CA8; // type:func -EnXc_ActionFunc44 = 0x808E0CD4; // type:func -func_80B3F3C8 = 0x808E0CE4; // type:func -func_80B3F3D8 = 0x808E0CF8; // type:func -EnXc_PlayDiveSFX = 0x808E0D18; // type:func -EnXc_LakeHyliaDive = 0x808E0D6C; // type:func -func_80B3F534 = 0x808E0E58; // type:func -func_80B3F59C = 0x808E0EC0; // type:func -func_80B3F620 = 0x808E0F44; // type:func -func_80B3F644 = 0x808E0F68; // type:func -func_80B3F668 = 0x808E0F8C; // type:func -func_80B3F6DC = 0x808E1000; // type:func -EnXc_SetupKneelAction = 0x808E1024; // type:func -func_80B3F754 = 0x808E107C; // type:func -func_80B3F7BC = 0x808E10EC; // type:func -EnXc_ActionFunc45 = 0x808E1128; // type:func -EnXc_ActionFunc46 = 0x808E1154; // type:func -EnXc_ActionFunc47 = 0x808E1180; // type:func -EnXc_ActionFunc48 = 0x808E11D8; // type:func -EnXc_ActionFunc49 = 0x808E1204; // type:func -EnXc_Kneel = 0x808E1268; // type:func -EnXc_ActionFunc51 = 0x808E12CC; // type:func -EnXc_ActionFunc52 = 0x808E1330; // type:func -func_80B3FA08 = 0x808E1350; // type:func -func_80B3FA2C = 0x808E1378; // type:func -EnXc_PlayTriforceSFX = 0x808E1398; // type:func -func_80B3FAE0 = 0x808E1430; // type:func -EnXc_CalcTriforce = 0x808E1478; // type:func -func_80B3FF0C = 0x808E1870; // type:func -EnXc_SetupShowTriforceAction = 0x808E1918; // type:func -EnXc_SetupShowTriforceIdleAction = 0x808E19A8; // type:func -func_80B400AC = 0x808E1A14; // type:func -EnXc_ActionFunc53 = 0x808E1A50; // type:func -EnXc_ActionFunc54 = 0x808E1A70; // type:func -EnXc_ShowTriforce = 0x808E1AB8; // type:func -EnXc_ShowTriforceIdle = 0x808E1B20; // type:func -EnXc_TriforceOverrideLimbDraw = 0x808E1B7C; // type:func -EnXc_TriforcePostLimbDraw = 0x808E1BA4; // type:func -EnXc_DrawTriforce = 0x808E1C20; // type:func -func_80B40590 = 0x808E1EB4; // type:func -EnXc_SetThrownAroundSFX = 0x808E1ED0; // type:func -EnXc_PlayLinkScreamSFX = 0x808E1F94; // type:func -EnXc_SetCrySFX = 0x808E1FC8; // type:func -func_80B406F8 = 0x808E2024; // type:func -EnXc_SetupIdleInNocturne = 0x808E203C; // type:func -EnXc_SetupDefenseStance = 0x808E20D8; // type:func -EnXc_SetupContortions = 0x808E2150; // type:func -EnXc_SetupFallInNocturne = 0x808E21EC; // type:func -EnXc_SetupHittingGroundInNocturne = 0x808E22C8; // type:func -func_80B40A78 = 0x808E2368; // type:func -EnXc_SetupKneelInNocturne = 0x808E2408; // type:func -func_80B40BB4 = 0x808E24A4; // type:func -func_80B40C50 = 0x808E2540; // type:func -func_80B40C74 = 0x808E2564; // type:func -func_80B40C98 = 0x808E2588; // type:func -func_80B40CBC = 0x808E25AC; // type:func -func_80B40CE0 = 0x808E25D0; // type:func -func_80B40D08 = 0x808E25F8; // type:func -func_80B40D2C = 0x808E261C; // type:func -func_80B40D50 = 0x808E2640; // type:func -func_80B40D74 = 0x808E2664; // type:func -EnXc_SetupReverseHaltInNocturneCS = 0x808E2688; // type:func -func_80B40E40 = 0x808E2734; // type:func -func_80B40E64 = 0x808E2758; // type:func -func_80B40E88 = 0x808E277C; // type:func -EnXc_SetupNocturneState = 0x808E27A0; // type:func -EnXc_InitialNocturneAction = 0x808E28E0; // type:func -EnXc_IdleInNocturne = 0x808E2900; // type:func -EnXc_DefenseStance = 0x808E2950; // type:func -EnXc_Contort = 0x808E2998; // type:func -EnXc_FallInNocturne = 0x808E2A04; // type:func -EnXc_HitGroundInNocturne = 0x808E2A6C; // type:func -EnXc_ActionFunc63 = 0x808E2AAC; // type:func -EnXc_KneelInNocturneCS = 0x808E2B08; // type:func -EnXc_ActionFunc65 = 0x808E2B50; // type:func -EnXc_ActionFunc66 = 0x808E2B94; // type:func -EnXc_ActionFunc67 = 0x808E2BC0; // type:func -EnXc_ActionFunc68 = 0x808E2BEC; // type:func -EnXc_ActionFunc69 = 0x808E2C18; // type:func -EnXc_ActionFunc70 = 0x808E2C44; // type:func -EnXc_ActionFunc71 = 0x808E2C70; // type:func -EnXc_ActionFunc72 = 0x808E2C9C; // type:func -EnXc_ReverseAccelInNocturneCS = 0x808E2CC8; // type:func -EnXc_ReverseWalkInNocturneCS = 0x808E2CF4; // type:func -EnXc_ReverseHaltInNocturneCS = 0x808E2D48; // type:func -EnXc_ThrowNutInNocturneCS = 0x808E2D74; // type:func -EnXc_DeleteInNocturneCS = 0x808E2DA0; // type:func -EnXc_KillInNocturneCS = 0x808E2DCC; // type:func -EnXc_DrawSquintingEyes = 0x808E2DF0; // type:func -EnXc_InitTempleOfTime = 0x808E2ED0; // type:func -EnXc_SetupDialogueAction = 0x808E303C; // type:func -func_80B41798 = 0x808E30C4; // type:func -EnXc_BlockingPedestalAction = 0x808E3110; // type:func -EnXc_ActionFunc80 = 0x808E3178; // type:func -EnXc_Update = 0x808E31E0; // type:func -EnXc_Init = 0x808E3228; // type:func -EnXc_OverrideLimbDraw = 0x808E3394; // type:func -EnXc_PostLimbDraw = 0x808E341C; // type:func -EnXc_DrawNothing = 0x808E34A8; // type:func -EnXc_DrawDefault = 0x808E34B8; // type:func -EnXc_Draw = 0x808E35C0; // type:func -BgHidanCurtain_Init = 0x808E4310; // type:func -BgHidanCurtain_Destroy = 0x808E4524; // type:func -BgHidanCurtain_WaitForSwitchOn = 0x808E4550; // type:func -BgHidanCurtain_WaitForCutscene = 0x808E4604; // type:func -BgHidanCurtain_WaitForClear = 0x808E4630; // type:func -BgHidanCurtain_WaitForSwitchOff = 0x808E4674; // type:func -BgHidanCurtain_TurnOn = 0x808E46B8; // type:func -BgHidanCurtain_TurnOff = 0x808E472C; // type:func -BgHidanCurtain_WaitForTimer = 0x808E481C; // type:func -BgHidanCurtain_Update = 0x808E4880; // type:func -BgHidanCurtain_Draw = 0x808E4B14; // type:func -BgSpot00Hanebasi_Init = 0x808E4DB0; // type:func -BgSpot00Hanebasi_Destroy = 0x808E51C0; // type:func -BgSpot00Hanebasi_DrawbridgeWait = 0x808E521C; // type:func -BgSpot00Hanebasi_DoNothing = 0x808E534C; // type:func -BgSpot00Hanebasi_DrawbridgeRiseAndFall = 0x808E535C; // type:func -BgSpot00Hanebasi_SetTorchLightInfo = 0x808E5490; // type:func -BgSpot00Hanebasi_Update = 0x808E55E8; // type:func -BgSpot00Hanebasi_DrawTorches = 0x808E58F8; // type:func -BgSpot00Hanebasi_Draw = 0x808E5BA0; // type:func -EnMb_SetupAction = 0x808E5EC0; // type:func -EnMb_Init = 0x808E5ECC; // type:func -EnMb_Destroy = 0x808E6230; // type:func -EnMb_FaceWaypoint = 0x808E6280; // type:func -EnMb_NextWaypoint = 0x808E62B8; // type:func -EnMb_IsPlayerInCorridor = 0x808E63A4; // type:func -EnMb_FindWaypointTowardsPlayer = 0x808E6518; // type:func -EnMb_SetupSpearGuardLookAround = 0x808E66A8; // type:func -EnMb_SetupClubWaitPlayerNear = 0x808E6710; // type:func -EnMb_SetupSpearPatrolTurnTowardsWaypoint = 0x808E6774; // type:func -EnMb_SetupSpearGuardWalk = 0x808E67EC; // type:func -EnMb_SetupSpearPatrolWalkTowardsWaypoint = 0x808E6890; // type:func -EnMb_SetupSpearPrepareAndCharge = 0x808E6940; // type:func -EnMb_SetupSpearPatrolImmediateCharge = 0x808E69F8; // type:func -EnMb_SetupClubAttack = 0x808E6A68; // type:func -EnMb_SetupSpearEndChargeQuick = 0x808E6B38; // type:func -EnMb_SetupSpearPatrolEndCharge = 0x808E6B98; // type:func -EnMb_SetupClubWaitAfterAttack = 0x808E6C1C; // type:func -EnMb_SetupClubDamaged = 0x808E6C94; // type:func -EnMb_SetupClubDamagedWhileKneeling = 0x808E6CF4; // type:func -EnMb_SetupClubDead = 0x808E6D7C; // type:func -EnMb_SetupStunned = 0x808E6E04; // type:func -EnMb_Stunned = 0x808E6EA8; // type:func -EnMb_SpearGuardLookAround = 0x808E6FB4; // type:func -EnMb_SpearPatrolTurnTowardsWaypoint = 0x808E702C; // type:func -EnMb_SpearEndChargeQuick = 0x808E7190; // type:func -EnMb_ClubWaitAfterAttack = 0x808E72F8; // type:func -EnMb_SpearPatrolEndCharge = 0x808E733C; // type:func -EnMb_SpearGuardPrepareAndCharge = 0x808E7654; // type:func -EnMb_ClubAttack = 0x808E77BC; // type:func -EnMb_SpearPatrolPrepareAndCharge = 0x808E7B34; // type:func -EnMb_SpearPatrolImmediateCharge = 0x808E7E98; // type:func -EnMb_ClubDamaged = 0x808E8208; // type:func -EnMb_ClubDamagedWhileKneeling = 0x808E829C; // type:func -EnMb_ClubDead = 0x808E83A8; // type:func -EnMb_SpearGuardWalk = 0x808E866C; // type:func -EnMb_SpearPatrolWalkTowardsWaypoint = 0x808E897C; // type:func -EnMb_ClubWaitPlayerNear = 0x808E8C68; // type:func -EnMb_SetupSpearDamaged = 0x808E8D18; // type:func -EnMb_SpearDamaged = 0x808E8DE0; // type:func -EnMb_SetupSpearDead = 0x808E8E58; // type:func -EnMb_SpearDead = 0x808E8F30; // type:func -EnMb_SpearUpdateAttackCollider = 0x808E9148; // type:func -EnMb_ClubUpdateAttackCollider = 0x808E92D4; // type:func -EnMb_CheckColliding = 0x808E936C; // type:func -EnMb_Update = 0x808E9538; // type:func -EnMb_PostLimbDraw = 0x808E970C; // type:func -EnMb_Draw = 0x808E98A8; // type:func -EnBombf_SetupAction = 0x808EA0F0; // type:func -EnBombf_Init = 0x808EA0FC; // type:func -EnBombf_Destroy = 0x808EA2D8; // type:func -EnBombf_SetupGrowBomb = 0x808EA318; // type:func -EnBombf_GrowBomb = 0x808EA340; // type:func -EnBombf_Move = 0x808EA650; // type:func -EnBombf_WaitForRelease = 0x808EA774; // type:func -EnBombf_Explode = 0x808EA7D8; // type:func -EnBombf_Update = 0x808EA92C; // type:func -EnBombf_NewMtxDList = 0x808EB0D8; // type:func -EnBombf_Draw = 0x808EB160; // type:func -BgHidanFirewall_Init = 0x808EB560; // type:func -BgHidanFirewall_Destroy = 0x808EB600; // type:func -BgHidanFirewall_CheckProximity = 0x808EB62C; // type:func -BgHidanFirewall_Wait = 0x808EB69C; // type:func -BgHidanFirewall_Countdown = 0x808EB6E4; // type:func -BgHidanFirewall_Erupt = 0x808EB718; // type:func -BgHidanFirewall_Collide = 0x808EB7A8; // type:func -BgHidanFirewall_ColliderFollowPlayer = 0x808EB810; // type:func -BgHidanFirewall_Update = 0x808EB974; // type:func -BgHidanFirewall_Draw = 0x808EBA4C; // type:func -BgDyYoseizo_Init = 0x808EBCC0; // type:func -BgDyYoseizo_Destroy = 0x808EBDC4; // type:func -BgDyYoseizo_SpawnEffects = 0x808EBDD4; // type:func -BgDyYoseizo_Bob = 0x808EC0D0; // type:func -BgDyYoseizo_CheckMagicAcquired = 0x808EC198; // type:func -BgDyYoseizo_ChooseType = 0x808EC25C; // type:func -BgDyYoseizo_SetupSpinGrow_NoReward = 0x808EC658; // type:func -BgDyYoseizo_SpinGrow_NoReward = 0x808EC754; // type:func -BgDyYoseizo_CompleteSpinGrow_NoReward = 0x808EC8B0; // type:func -BgDyYoseizo_SetupGreetPlayer_NoReward = 0x808EC960; // type:func -BgDyYoseizo_GreetPlayer_NoReward = 0x808ECA78; // type:func -BgDyYoseizo_SetupHealPlayer_NoReward = 0x808ECB54; // type:func -BgDyYoseizo_HealPlayer_NoReward = 0x808ECC40; // type:func -BgDyYoseizo_SayFarewell_NoReward = 0x808ECF18; // type:func -BgDyYoseizo_SetupSpinShrink = 0x808ECFF4; // type:func -BgDyYoseizo_SpinShrink = 0x808ED0F8; // type:func -BgDyYoseizo_Vanish = 0x808ED1E8; // type:func -BgDyYoseizo_SetupSpinGrow_Reward = 0x808ED28C; // type:func -BgDyYoseizo_SpinGrowSetupGive_Reward = 0x808ED3C0; // type:func -BgDyYoseizo_Give_Reward = 0x808ED6EC; // type:func -BgDyYoseizo_Update = 0x808EDD3C; // type:func -BgDyYoseizo_OverrideLimbDraw = 0x808EDF68; // type:func -BgDyYoseizo_Draw = 0x808EDFD0; // type:func -BgDyYoseizo_SpawnEffect = 0x808EE158; // type:func -BgDyYoseizo_UpdateEffects = 0x808EE268; // type:func -BgDyYoseizo_DrawEffects = 0x808EE55C; // type:func -EnZl2_Destroy = 0x808EEAC0; // type:func -EnZl2_UpdateEyes = 0x808EEAE4; // type:func -func_80B4EA40 = 0x808EEB74; // type:func -func_80B4EAF4 = 0x808EEC28; // type:func -func_80B4EBB8 = 0x808EECEC; // type:func -func_80B4EC48 = 0x808EED7C; // type:func -EnZl2_setEyesIndex = 0x808EEE1C; // type:func -EnZl2_setEyeIndex2 = 0x808EEE3C; // type:func -EnZl2_setMouthIndex = 0x808EEE54; // type:func -func_80B4ED2C = 0x808EEE6C; // type:func -EnZl2_UpdateSkelAnime = 0x808EEEB4; // type:func -EnZl2_GetCue = 0x808EEED8; // type:func -func_80B4EDB8 = 0x808EEF00; // type:func -func_80B4EE38 = 0x808EEF80; // type:func -func_80B4EF64 = 0x808EF0B0; // type:func -func_80B4F230 = 0x808EF380; // type:func -func_80B4F45C = 0x808EF5B0; // type:func -EnZl2_PostLimbDraw = 0x808EFCAC; // type:func -func_80B4FCCC = 0x808EFDF8; // type:func -func_80B4FD00 = 0x808EFE30; // type:func -func_80B4FD90 = 0x808EFEC0; // type:func -func_80B4FDD4 = 0x808EFF04; // type:func -func_80B4FE10 = 0x808EFF44; // type:func -func_80B4FE48 = 0x808EFF7C; // type:func -func_80B4FE6C = 0x808EFFA4; // type:func -func_80B4FE90 = 0x808EFFCC; // type:func -func_80B4FEB4 = 0x808EFFF4; // type:func -func_80B4FED8 = 0x808F001C; // type:func -EnZl2_GiveLightArrows = 0x808F0044; // type:func -func_80B4FF84 = 0x808F00D4; // type:func -func_80B4FFF0 = 0x808F0140; // type:func -func_80B5008C = 0x808F01E0; // type:func -func_80B500E0 = 0x808F0234; // type:func -func_80B501C4 = 0x808F0318; // type:func -func_80B501E8 = 0x808F033C; // type:func -func_80B50260 = 0x808F03B4; // type:func -func_80B50278 = 0x808F03D0; // type:func -func_80B50304 = 0x808F045C; // type:func -func_80B503DC = 0x808F0534; // type:func -func_80B5042C = 0x808F0584; // type:func -func_80B50488 = 0x808F05E0; // type:func -func_80B504D4 = 0x808F062C; // type:func -func_80B5053C = 0x808F0690; // type:func -func_80B50580 = 0x808F06D8; // type:func -func_80B505D4 = 0x808F072C; // type:func -func_80B50618 = 0x808F0774; // type:func -func_80B50644 = 0x808F07A0; // type:func -func_80B50670 = 0x808F07CC; // type:func -func_80B506C4 = 0x808F0820; // type:func -func_80B5073C = 0x808F089C; // type:func -func_80B50780 = 0x808F08E4; // type:func -func_80B507E8 = 0x808F094C; // type:func -func_80B5082C = 0x808F0994; // type:func -func_80B50880 = 0x808F09E8; // type:func -func_80B508C8 = 0x808F0A30; // type:func -func_80B50928 = 0x808F0A8C; // type:func -func_80B50970 = 0x808F0AD4; // type:func -func_80B50980 = 0x808F0AE8; // type:func -func_80B509A0 = 0x808F0B0C; // type:func -func_80B50A04 = 0x808F0B70; // type:func -func_80B50BBC = 0x808F0D14; // type:func -func_80B50BEC = 0x808F0D4C; // type:func -func_80B50C40 = 0x808F0DA8; // type:func -func_80B50CA8 = 0x808F0E18; // type:func -func_80B50CFC = 0x808F0E74; // type:func -func_80B50D50 = 0x808F0ED0; // type:func -func_80B50D94 = 0x808F0F1C; // type:func -func_80B50DE8 = 0x808F0F78; // type:func -func_80B50E3C = 0x808F0FD4; // type:func -func_80B50E90 = 0x808F1030; // type:func -func_80B50EE4 = 0x808F108C; // type:func -func_80B50F38 = 0x808F10E8; // type:func -func_80B50F8C = 0x808F1144; // type:func -func_80B50FE8 = 0x808F11A8; // type:func -func_80B51034 = 0x808F11FC; // type:func -func_80B51080 = 0x808F1250; // type:func -func_80B510CC = 0x808F12A4; // type:func -func_80B51118 = 0x808F12F8; // type:func -func_80B51164 = 0x808F134C; // type:func -func_80B511B0 = 0x808F13A0; // type:func -func_80B511FC = 0x808F13F4; // type:func -func_80B51250 = 0x808F1450; // type:func -func_80B512B8 = 0x808F14C0; // type:func -func_80B51310 = 0x808F1520; // type:func -func_80B5135C = 0x808F1570; // type:func -func_80B513A8 = 0x808F15BC; // type:func -func_80B51418 = 0x808F1630; // type:func -func_80B5146C = 0x808F1684; // type:func -func_80B5149C = 0x808F16B8; // type:func -func_80B514F8 = 0x808F1718; // type:func -func_80B5154C = 0x808F176C; // type:func -func_80B515C4 = 0x808F17E4; // type:func -func_80B515D8 = 0x808F17FC; // type:func -func_80B51644 = 0x808F1868; // type:func -func_80B51678 = 0x808F189C; // type:func -func_80B516D0 = 0x808F18F4; // type:func -func_80B51704 = 0x808F1928; // type:func -func_80B5175C = 0x808F1980; // type:func -func_80B51790 = 0x808F19B4; // type:func -func_80B517E0 = 0x808F1A04; // type:func -func_80B51824 = 0x808F1A4C; // type:func -func_80B5187C = 0x808F1AA4; // type:func -func_80B518C0 = 0x808F1AEC; // type:func -func_80B51948 = 0x808F1B74; // type:func -func_80B51A5C = 0x808F1C74; // type:func -func_80B51A8C = 0x808F1CAC; // type:func -func_80B51AE4 = 0x808F1D0C; // type:func -func_80B51B44 = 0x808F1D74; // type:func -func_80B51BA8 = 0x808F1DE0; // type:func -func_80B51C0C = 0x808F1E4C; // type:func -func_80B51C64 = 0x808F1EAC; // type:func -func_80B51CA8 = 0x808F1EF8; // type:func -func_80B51D0C = 0x808F1F64; // type:func -func_80B51D24 = 0x808F1F80; // type:func -func_80B51DA4 = 0x808F2000; // type:func -func_80B51EA8 = 0x808F2104; // type:func -func_80B51EBC = 0x808F211C; // type:func -func_80B51F38 = 0x808F219C; // type:func -func_80B51FA8 = 0x808F220C; // type:func -func_80B52068 = 0x808F22B8; // type:func -func_80B52098 = 0x808F22F0; // type:func -func_80B52108 = 0x808F2368; // type:func -func_80B52114 = 0x808F2378; // type:func -func_80B521A0 = 0x808F23D8; // type:func -EnZl2_Update = 0x808F2464; // type:func -EnZl2_Init = 0x808F24AC; // type:func -EnZl2_OverrideLimbDraw = 0x808F2558; // type:func -func_80B523BC = 0x808F25C0; // type:func -func_80B523C8 = 0x808F25D0; // type:func -func_80B525D4 = 0x808F27AC; // type:func -EnZl2_Draw = 0x808F2954; // type:func -BgHidanFslift_Init = 0x808F31F0; // type:func -BgHidanFslift_SetHookshotTargetPos = 0x808F32D8; // type:func -BgHidanFslift_Destroy = 0x808F3338; // type:func -BgHidanFslift_SetupIdle = 0x808F336C; // type:func -BgHidanFslift_Idle = 0x808F3388; // type:func -BgHidanFslift_Descend = 0x808F3428; // type:func -BgHidanFslift_Ascend = 0x808F3494; // type:func -BgHidanFslift_Update = 0x808F3530; // type:func -BgHidanFslift_Draw = 0x808F35D8; // type:func -EnOE2_SetupAction = 0x808F36C0; // type:func -EnOE2_Init = 0x808F36CC; // type:func -EnOE2_Destroy = 0x808F36F4; // type:func -EnOE2_DoNothing = 0x808F3704; // type:func -EnOE2_Update = 0x808F3714; // type:func -EnOE2_Draw = 0x808F3724; // type:func -BgYdanHasi_Init = 0x808F37A0; // type:func -BgYdanHasi_Destroy = 0x808F3904; // type:func -BgYdanHasi_UpdateFloatingBlock = 0x808F3938; // type:func -BgYdanHasi_InitWater = 0x808F3A70; // type:func -BgYdanHasi_MoveWater = 0x808F3ABC; // type:func -BgYdanHasi_DecWaterTimer = 0x808F3B8C; // type:func -BgYdanHasi_SetupThreeBlocks = 0x808F3BE0; // type:func -BgYdanHasi_UpdateThreeBlocks = 0x808F3C4C; // type:func -BgYdanHasi_Update = 0x808F3D1C; // type:func -BgYdanHasi_Draw = 0x808F3D40; // type:func -BgYdanMaruta_Init = 0x808F3F50; // type:func -BgYdanMaruta_Destroy = 0x808F41B4; // type:func -func_808BEFF4 = 0x808F4208; // type:func -func_808BF078 = 0x808F428C; // type:func -func_808BF108 = 0x808F431C; // type:func -func_808BF1EC = 0x808F4400; // type:func -BgYdanMaruta_DoNothing = 0x808F4470; // type:func -BgYdanMaruta_Update = 0x808F4480; // type:func -BgYdanMaruta_Draw = 0x808F44A4; // type:func -BossGanondrof_ClearPixels8x8 = 0x808F4630; // type:func -BossGanondrof_ClearPixels16x8 = 0x808F4670; // type:func -BossGanondrof_ClearPixels16x16 = 0x808F46B0; // type:func -BossGanondrof_ClearPixels32x16 = 0x808F46E0; // type:func -BossGanondrof_ClearPixels16x32 = 0x808F4728; // type:func -BossGanondrof_ClearPixels = 0x808F4774; // type:func -BossGanondrof_SetColliderPos = 0x808F4A24; // type:func -BossGanondrof_Init = 0x808F4A68; // type:func -BossGanondrof_Destroy = 0x808F4CF8; // type:func -BossGanondrof_SetupIntro = 0x808F4D64; // type:func -BossGanondrof_Intro = 0x808F4DB0; // type:func -BossGanondrof_SetupPaintings = 0x808F5268; // type:func -BossGanondrof_Paintings = 0x808F52AC; // type:func -BossGanondrof_SetupNeutral = 0x808F5480; // type:func -BossGanondrof_Neutral = 0x808F5500; // type:func -BossGanondrof_SetupThrow = 0x808F5C48; // type:func -BossGanondrof_Throw = 0x808F5D70; // type:func -BossGanondrof_SetupReturn = 0x808F5F7C; // type:func -BossGanondrof_Return = 0x808F601C; // type:func -BossGanondrof_SetupStunned = 0x808F6128; // type:func -BossGanondrof_Stunned = 0x808F61EC; // type:func -BossGanondrof_SetupBlock = 0x808F6300; // type:func -BossGanondrof_Block = 0x808F6374; // type:func -BossGanondrof_SetupCharge = 0x808F6450; // type:func -BossGanondrof_Charge = 0x808F64C0; // type:func -BossGanondrof_SetupDeath = 0x808F6BA4; // type:func -BossGanondrof_Death = 0x808F6C3C; // type:func -BossGanondrof_CollisionCheck = 0x808F7B2C; // type:func -BossGanondrof_Update = 0x808F7D58; // type:func -BossGanondrof_OverrideLimbDraw = 0x808F8160; // type:func -BossGanondrof_PostLimbDraw = 0x808F853C; // type:func -BossGanondrof_GetClearPixelDList = 0x808F8600; // type:func -BossGanondrof_EmptyDList = 0x808F8658; // type:func -BossGanondrof_Draw = 0x808F867C; // type:func -EnAm_SetupAction = 0x808F93A0; // type:func -EnAm_CanMove = 0x808F93AC; // type:func -EnAm_Init = 0x808F94D8; // type:func -EnAm_Destroy = 0x808F96A4; // type:func -EnAm_SpawnEffects = 0x808F96FC; // type:func -EnAm_SetupSleep = 0x808F9898; // type:func -EnAm_SetupStatue = 0x808F9934; // type:func -EnAm_SetupLunge = 0x808F99C4; // type:func -EnAm_SetupCooldown = 0x808F9A28; // type:func -EnAm_SetupMoveToHome = 0x808F9A94; // type:func -EnAm_SetupRotateToInit = 0x808F9AF0; // type:func -EnAm_SetupRotateToHome = 0x808F9B4C; // type:func -EnAm_SetupRecoilFromDamage = 0x808F9BA8; // type:func -EnAm_SetupRicochet = 0x808F9C80; // type:func -EnAm_Sleep = 0x808F9D34; // type:func -EnAm_RotateToHome = 0x808F9FA0; // type:func -EnAm_RotateToInit = 0x808FA0A4; // type:func -EnAm_MoveToHome = 0x808FA210; // type:func -EnAm_RecoilFromDamage = 0x808FA380; // type:func -EnAm_Cooldown = 0x808FA424; // type:func -EnAm_Lunge = 0x808FA55C; // type:func -EnAm_Statue = 0x808FA790; // type:func -EnAm_SetupStunned = 0x808FA9E0; // type:func -EnAm_Stunned = 0x808FAACC; // type:func -EnAm_Ricochet = 0x808FABA0; // type:func -EnAm_TransformSwordHitbox = 0x808FAC54; // type:func -EnAm_UpdateDamage = 0x808FACEC; // type:func -EnAm_Update = 0x808FAE84; // type:func -EnAm_PostLimbDraw = 0x808FB228; // type:func -EnAm_Draw = 0x808FB270; // type:func -EnDekubaba_Init = 0x808FB7A0; // type:func -EnDekubaba_Destroy = 0x808FB9E4; // type:func -EnDekubaba_DisableACColliderElems = 0x808FBA10; // type:func -EnDekubaba_SetupWait = 0x808FBA98; // type:func -EnDekubaba_SetupGrow = 0x808FBD00; // type:func -EnDekubaba_SetupRetract = 0x808FBE30; // type:func -EnDekubaba_SetupDecideLunge = 0x808FBF18; // type:func -EnDekubaba_SetupPrepareLunge = 0x808FBF70; // type:func -EnDekubaba_SetupLunge = 0x808FBF94; // type:func -EnDekubaba_SetupPullBack = 0x808FBFD8; // type:func -EnDekubaba_SetupRecover = 0x808FC050; // type:func -EnDekubaba_SetupHit = 0x808FC084; // type:func -EnDekubaba_SetupPrunedSomersault = 0x808FC14C; // type:func -EnDekubaba_SetupShrinkDie = 0x808FC1C0; // type:func -EnDekubaba_SetupStunnedVertical = 0x808FC240; // type:func -EnDekubaba_SetupSway = 0x808FC3C4; // type:func -EnDekubaba_SetupDeadStickDrop = 0x808FC430; // type:func -EnDekubaba_Wait = 0x808FC4D0; // type:func -EnDekubaba_Grow = 0x808FC57C; // type:func -EnDekubaba_Retract = 0x808FC9E4; // type:func -EnDekubaba_UpdateHeadPosition = 0x808FCDAC; // type:func -EnDekubaba_DecideLunge = 0x808FCEB0; // type:func -EnDekubaba_Lunge = 0x808FD0E0; // type:func -EnDekubaba_PrepareLunge = 0x808FD368; // type:func -EnDekubaba_PullBack = 0x808FD434; // type:func -EnDekubaba_Recover = 0x808FD7C0; // type:func -EnDekubaba_Hit = 0x808FD8B8; // type:func -EnDekubaba_StunnedVertical = 0x808FD9C8; // type:func -EnDekubaba_Sway = 0x808FDA64; // type:func -EnDekubaba_PrunedSomersault = 0x808FDB8C; // type:func -EnDekubaba_ShrinkDie = 0x808FDEF0; // type:func -EnDekubaba_DeadStickDrop = 0x808FE0B4; // type:func -EnDekubaba_UpdateDamage = 0x808FE11C; // type:func -EnDekubaba_Update = 0x808FE3D0; // type:func -EnDekubaba_DrawStemRetracted = 0x808FE570; // type:func -EnDekubaba_DrawStemExtended = 0x808FE660; // type:func -EnDekubaba_DrawStemBasePruned = 0x808FE950; // type:func -EnDekubaba_DrawBaseShadow = 0x808FEA0C; // type:func -EnDekubaba_PostLimbDraw = 0x808FEAFC; // type:func -EnDekubaba_Draw = 0x808FEB38; // type:func -EnMFire1_Init = 0x808FF240; // type:func -EnMFire1_Destroy = 0x808FF2AC; // type:func -EnMFire1_Update = 0x808FF2D8; // type:func -func_80A9EFE0 = 0x808FF3E0; // type:func -EnMThunder_Init = 0x808FF3EC; // type:func -EnMThunder_Destroy = 0x808FF6AC; // type:func -func_80A9F314 = 0x808FF71C; // type:func -func_80A9F350 = 0x808FF758; // type:func -func_80A9F408 = 0x808FF810; // type:func -func_80A9F938 = 0x808FFD44; // type:func -func_80A9F9B4 = 0x808FFDC0; // type:func -EnMThunder_Update = 0x808FFF2C; // type:func -EnMThunder_Draw = 0x80900100; // type:func -BgDdanJd_Init = 0x809009D0; // type:func -BgDdanJd_Destroy = 0x80900A7C; // type:func -BgDdanJd_Idle = 0x80900AB0; // type:func -BgDdanJd_MoveEffects = 0x80900C54; // type:func -BgDdanJd_Move = 0x80900E2C; // type:func -BgDdanJd_Update = 0x80900F30; // type:func -BgDdanJd_Draw = 0x80900F54; // type:func -BgBreakwall_SetupAction = 0x80901020; // type:func -BgBreakwall_Init = 0x8090102C; // type:func -BgBreakwall_Destroy = 0x809011D8; // type:func -BgBreakwall_SpawnFragments = 0x8090120C; // type:func -BgBreakwall_WaitForObject = 0x809016DC; // type:func -BgBreakwall_Wait = 0x809017E4; // type:func -BgBreakwall_LavaCoverMove = 0x809019B4; // type:func -BgBreakwall_Update = 0x80901A08; // type:func -BgBreakwall_Draw = 0x80901A2C; // type:func -EnJj_SetupAction = 0x80901E90; // type:func -EnJj_Init = 0x80901E9C; // type:func -EnJj_Destroy = 0x8090212C; // type:func -EnJj_Blink = 0x809021BC; // type:func -EnJj_OpenMouth = 0x8090223C; // type:func -EnJj_WaitToOpenMouth = 0x80902290; // type:func -EnJj_WaitForFish = 0x809022D4; // type:func -EnJj_BeginCutscene = 0x80902390; // type:func -EnJj_CutsceneUpdate = 0x80902438; // type:func -EnJj_RemoveDust = 0x80902594; // type:func -EnJj_UpdateStaticCollision = 0x809025EC; // type:func -EnJj_Update = 0x809025FC; // type:func -EnJj_Draw = 0x809026A8; // type:func -EnHorseZelda_GetFieldPosition = 0x80903460; // type:func -EnHorseZelda_Move = 0x809034AC; // type:func -EnHorseZelda_Init = 0x80903674; // type:func -EnHorseZelda_Destroy = 0x809037C4; // type:func -EnHorseZelda_SetupStop = 0x80903814; // type:func -EnHorseZelda_Stop = 0x80903864; // type:func -EnHorseZelda_Spur = 0x809038AC; // type:func -EnHorseZelda_Gallop = 0x80903994; // type:func -EnHorseZelda_SetRotate = 0x809039D4; // type:func -EnHorseZelda_Update = 0x80903A98; // type:func -EnHorseZelda_PostDraw = 0x80903B74; // type:func -EnHorseZelda_Draw = 0x80903D00; // type:func -BgDdanKd_SetupAction = 0x80903F50; // type:func -BgDdanKd_Init = 0x80903F5C; // type:func -BgDdanKd_Destroy = 0x80904054; // type:func -BgDdanKd_CheckForExplosions = 0x8090409C; // type:func -BgDdanKd_LowerStairs = 0x809041B4; // type:func -BgDdanKd_DoNothing = 0x80904688; // type:func -BgDdanKd_Update = 0x80904698; // type:func -BgDdanKd_Draw = 0x809046BC; // type:func -DoorWarp1_SetupAction = 0x80904840; // type:func -DoorWarp1_Init = 0x8090484C; // type:func -DoorWarp1_Destroy = 0x809049BC; // type:func -DoorWarp1_SetupWarp = 0x80904A44; // type:func -DoorWarp1_SetupAdultDungeonWarp = 0x80904D4C; // type:func -DoorWarp1_SetupBlueCrystal = 0x80904F18; // type:func -DoorWarp1_SetupPurpleCrystal = 0x809050B0; // type:func -DoorWarp1_SetPlayerPos = 0x80905250; // type:func -DoorWarp1_BlueCrystal = 0x80905288; // type:func -func_80999214 = 0x809052D4; // type:func -func_80999348 = 0x80905408; // type:func -DoorWarp1_FloatPlayer = 0x809054D0; // type:func -DoorWarp1_PurpleCrystal = 0x809054EC; // type:func -DoorWarp1_ChooseInitialAction = 0x809055CC; // type:func -DoorWarp1_AwaitClearFlag = 0x80905644; // type:func -func_809995D4 = 0x8090569C; // type:func -DoorWarp1_WarpAppear = 0x809057EC; // type:func -func_809998A4 = 0x80905970; // type:func -DoorWarp1_PlayerInRange = 0x80905A08; // type:func -DoorWarp1_ChildWarpIdle = 0x80905A74; // type:func -DoorWarp1_ChildWarpOut = 0x80905B40; // type:func -DoorWarp1_RutoWarpIdle = 0x80905F34; // type:func -func_80999EE0 = 0x80905FB4; // type:func -func_80999FE4 = 0x809060BC; // type:func -DoorWarp1_RutoWarpOut = 0x80906174; // type:func -func_8099A3A4 = 0x80906480; // type:func -DoorWarp1_AdultWarpIdle = 0x8090654C; // type:func -func_8099A508 = 0x809065EC; // type:func -DoorWarp1_AdultWarpOut = 0x809066D0; // type:func -DoorWarp1_Destination = 0x80906FB4; // type:func -DoorWarp1_DoNothing = 0x809070E4; // type:func -func_8099B020 = 0x809070F4; // type:func -DoorWarp1_Update = 0x809071B0; // type:func -DoorWarp1_DrawBlueCrystal = 0x80907214; // type:func -DoorWarp1_DrawPurpleCrystal = 0x809073E0; // type:func -DoorWarp1_DrawWarp = 0x80907664; // type:func -DoorWarp1_Draw = 0x809084AC; // type:func -ObjSyokudai_Init = 0x80908AF0; // type:func -ObjSyokudai_Destroy = 0x80908CB4; // type:func -ObjSyokudai_Update = 0x80908D08; // type:func -ObjSyokudai_Draw = 0x80909324; // type:func -ItemBHeart_Init = 0x80909730; // type:func -ItemBHeart_Destroy = 0x8090979C; // type:func -ItemBHeart_Update = 0x809097AC; // type:func -func_80B85264 = 0x80909854; // type:func -ItemBHeart_Draw = 0x80909940; // type:func -EnDekunuts_Init = 0x80909B20; // type:func -EnDekunuts_Destroy = 0x80909C8C; // type:func -EnDekunuts_SetupWait = 0x80909CC8; // type:func -EnDekunuts_SetupLookAround = 0x80909D3C; // type:func -EnDekunuts_SetupThrowNut = 0x80909D84; // type:func -EnDekunuts_SetupStand = 0x80909DC8; // type:func -EnDekunuts_SetupBurrow = 0x80909E30; // type:func -EnDekunuts_SetupBeginRun = 0x80909E80; // type:func -EnDekunuts_SetupRun = 0x80909EE8; // type:func -EnDekunuts_SetupGasp = 0x80909F40; // type:func -EnDekunuts_SetupBeDamaged = 0x80909FA0; // type:func -EnDekunuts_SetupBeStunned = 0x8090A07C; // type:func -EnDekunuts_SetupDie = 0x8090A110; // type:func -EnDekunuts_Wait = 0x8090A160; // type:func -EnDekunuts_LookAround = 0x8090A3C4; // type:func -EnDekunuts_Stand = 0x8090A448; // type:func -EnDekunuts_ThrowNut = 0x8090A534; // type:func -EnDekunuts_Burrow = 0x8090A68C; // type:func -EnDekunuts_BeginRun = 0x8090A7A0; // type:func -EnDekunuts_Run = 0x8090A808; // type:func -EnDekunuts_Gasp = 0x8090AA48; // type:func -EnDekunuts_BeDamaged = 0x8090AAB0; // type:func -EnDekunuts_BeStunned = 0x8090AB00; // type:func -EnDekunuts_Die = 0x8090AB7C; // type:func -EnDekunuts_ColliderCheck = 0x8090ACD8; // type:func -EnDekunuts_Update = 0x8090ADFC; // type:func -EnDekunuts_OverrideLimbDraw = 0x8090AF64; // type:func -EnDekunuts_Draw = 0x8090B098; // type:func -BgMenkuriKaiten_Init = 0x8090B320; // type:func -BgMenkuriKaiten_Destroy = 0x8090B388; // type:func -BgMenkuriKaiten_Update = 0x8090B3BC; // type:func -BgMenkuriKaiten_Draw = 0x8090B41C; // type:func -BgMenkuriEye_Init = 0x8090B4B0; // type:func -BgMenkuriEye_Destroy = 0x8090B58C; // type:func -BgMenkuriEye_Update = 0x8090B5B8; // type:func -BgMenkuriEye_Draw = 0x8090B728; // type:func -EnVali_Init = 0x8090B950; // type:func -EnVali_Destroy = 0x8090BACC; // type:func -EnVali_SetupLurk = 0x8090BB1C; // type:func -EnVali_SetupDropAppear = 0x8090BB6C; // type:func -EnVali_SetupFloatIdle = 0x8090BBA4; // type:func -EnVali_SetupAttacked = 0x8090BDBC; // type:func -EnVali_SetupRetaliate = 0x8090BDF4; // type:func -EnVali_SetupMoveArmsDown = 0x8090BE64; // type:func -EnVali_SetupBurnt = 0x8090BEA4; // type:func -EnVali_SetupDivideAndDie = 0x8090BEFC; // type:func -EnVali_SetupStunned = 0x8090C000; // type:func -EnVali_SetupFrozen = 0x8090C08C; // type:func -EnVali_SetupReturnToLurk = 0x8090C0EC; // type:func -EnVali_DischargeLightning = 0x8090C148; // type:func -EnVali_Lurk = 0x8090C344; // type:func -EnVali_DropAppear = 0x8090C384; // type:func -EnVali_FloatIdle = 0x8090C418; // type:func -EnVali_Attacked = 0x8090C5C4; // type:func -EnVali_Retaliate = 0x8090C67C; // type:func -EnVali_MoveArmsDown = 0x8090C6D8; // type:func -EnVali_Burnt = 0x8090C714; // type:func -EnVali_DivideAndDie = 0x8090C750; // type:func -EnVali_Stunned = 0x8090C904; // type:func -EnVali_Frozen = 0x8090C9C0; // type:func -EnVali_ReturnToLurk = 0x8090CB50; // type:func -EnVali_UpdateDamage = 0x8090CBC0; // type:func -EnVali_Update = 0x8090CD78; // type:func -EnVali_PulseOutside = 0x8090CED4; // type:func -EnVali_PulseInsides = 0x8090D0F0; // type:func -EnVali_SetArmLength = 0x8090D30C; // type:func -EnVali_OverrideLimbDraw = 0x8090D4AC; // type:func -EnVali_PostLimbDraw = 0x8090D53C; // type:func -EnVali_DrawBody = 0x8090D600; // type:func -EnVali_Draw = 0x8090D948; // type:func -BgMizuMovebg_GetDragonStatueBossRoomOffsetIndex = 0x8090DFF0; // type:func -BgMizuMovebg_Init = 0x8090E05C; // type:func -BgMizuMovebg_Destroy = 0x8090E424; // type:func -BgMizuMovebg_SetPosFromPath = 0x8090E4D8; // type:func -BgMizuMovebg_SetScrollAlphas = 0x8090E56C; // type:func -BgMizuMovebg_UpdateMain = 0x8090E6F0; // type:func -BgMizuMovebg_UpdateHookshotPlatform = 0x8090EA2C; // type:func -BgMizuMovebg_Update = 0x8090EBE8; // type:func -BgMizuMovebg_Draw = 0x8090EC0C; // type:func -BgMizuWater_GetWaterLevelActionIndex = 0x8090F190; // type:func -BgMizuWater_SetWaterBoxesHeight = 0x8090F230; // type:func -BgMizuWater_Init = 0x8090F29C; // type:func -BgMizuWater_Destroy = 0x8090F4F8; // type:func -BgMizuWater_WaitForAction = 0x8090F508; // type:func -BgMizuWater_ChangeWaterLevel = 0x8090F6D4; // type:func -BgMizuWater_Update = 0x8090F9E4; // type:func -BgMizuWater_Draw = 0x8090FB3C; // type:func -ArmsHook_SetupAction = 0x8090FE60; // type:func -ArmsHook_Init = 0x8090FE6C; // type:func -ArmsHook_Destroy = 0x8090FEE0; // type:func -ArmsHook_Wait = 0x8090FF28; // type:func -func_80865044 = 0x8090FFA8; // type:func -ArmsHook_AttachToPlayer = 0x8090FFBC; // type:func -ArmsHook_DetachHookFromActor = 0x8090FFEC; // type:func -ArmsHook_CheckForCancel = 0x80910014; // type:func -ArmsHook_AttachHookToActor = 0x809100B0; // type:func -ArmsHook_Shoot = 0x809100F8; // type:func -ArmsHook_Update = 0x80910764; // type:func -ArmsHook_Draw = 0x809107A4; // type:func -EnfHG_Init = 0x80910BC0; // type:func -EnfHG_Destroy = 0x80910CC0; // type:func -EnfHG_SetupIntro = 0x80910CEC; // type:func -EnfHG_Intro = 0x80910D50; // type:func -EnfHG_SetupApproach = 0x80911F5C; // type:func -EnfHG_Approach = 0x809121A8; // type:func -EnfHG_Attack = 0x8091234C; // type:func -EnfHG_Damage = 0x809127D0; // type:func -EnfHG_Retreat = 0x80912B00; // type:func -EnfHG_Done = 0x80912D34; // type:func -EnfHG_Update = 0x80912D44; // type:func -EnfHG_PostDraw = 0x80912ED8; // type:func -EnfHG_Draw = 0x80912EEC; // type:func -BgMoriHineri_Init = 0x809134F0; // type:func -BgMoriHineri_Destroy = 0x809136F0; // type:func -func_808A39FC = 0x80913724; // type:func -BgMoriHineri_DoNothing = 0x8091391C; // type:func -BgMoriHineri_SpawnBossKeyChest = 0x8091392C; // type:func -func_808A3C8C = 0x809139BC; // type:func -func_808A3D58 = 0x80913A88; // type:func -func_808A3E54 = 0x80913B84; // type:func -BgMoriHineri_Update = 0x80913C64; // type:func -BgMoriHineri_DrawHallAndRoom = 0x80913C88; // type:func -EnBb_SetupAction = 0x809141F0; // type:func -EnBb_FindExplosive = 0x809141FC; // type:func -EnBb_SpawnFlameTrail = 0x80914290; // type:func -EnBb_KillFlameTrail = 0x8091442C; // type:func -EnBb_Init = 0x80914478; // type:func -EnBb_Destroy = 0x80914820; // type:func -EnBb_SetupFlameTrail = 0x8091484C; // type:func -EnBb_FlameTrail = 0x809148A0; // type:func -EnBb_SetupDeath = 0x80914A1C; // type:func -EnBb_Death = 0x80914AB0; // type:func -EnBb_SetupDamage = 0x80914C2C; // type:func -EnBb_Damage = 0x80914CEC; // type:func -EnBb_SetupBlue = 0x80914D58; // type:func -EnBb_Blue = 0x80914E18; // type:func -EnBb_SetupDown = 0x8091560C; // type:func -EnBb_Down = 0x8091569C; // type:func -EnBb_SetupRed = 0x80915970; // type:func -EnBb_Red = 0x80915A80; // type:func -EnBb_FaceWaypoint = 0x80915E48; // type:func -EnBb_SetWaypoint = 0x80915E7C; // type:func -EnBb_SetupWhite = 0x80915F48; // type:func -EnBb_White = 0x80915FF8; // type:func -EnBb_InitGreen = 0x8091637C; // type:func -EnBb_SetupGreen = 0x809164B4; // type:func -EnBb_Green = 0x8091654C; // type:func -EnBb_SetupStunned = 0x80916BBC; // type:func -EnBb_Stunned = 0x80916CD0; // type:func -EnBb_CollisionCheck = 0x80916E74; // type:func -EnBb_Update = 0x809171A8; // type:func -EnBb_PostLimbDraw = 0x80917428; // type:func -EnBb_Draw = 0x80917478; // type:func -BgTokiHikari_Init = 0x80917EC0; // type:func -BgTokiHikari_Destroy = 0x80917F4C; // type:func -BgTokiHikari_DoNothing = 0x80917F5C; // type:func -BgTokiHikari_Update = 0x80917F6C; // type:func -BgTokiHikari_Draw = 0x80917F90; // type:func -func_808BA018 = 0x80917FE0; // type:func -func_808BA204 = 0x8091818C; // type:func -func_808BA22C = 0x809181B4; // type:func -func_808BA274 = 0x809181FC; // type:func -func_808BA2CC = 0x80918254; // type:func -EnYukabyun_Init = 0x80918C60; // type:func -EnYukabyun_Destroy = 0x80918D10; // type:func -func_80B43A94 = 0x80918D3C; // type:func -func_80B43AD4 = 0x80918D7C; // type:func -func_80B43B6C = 0x80918E14; // type:func -EnYukabyun_Break = 0x80918E74; // type:func -EnYukabyun_Update = 0x80918EE8; // type:func -EnYukabyun_Draw = 0x80919088; // type:func -BgTokiSwd_SetupAction = 0x80919270; // type:func -BgTokiSwd_Init = 0x8091927C; // type:func -BgTokiSwd_Destroy = 0x80919350; // type:func -func_808BAF40 = 0x8091937C; // type:func -func_808BB0AC = 0x809194F0; // type:func -func_808BB128 = 0x80919570; // type:func -BgTokiSwd_Update = 0x809195C4; // type:func -BgTokiSwd_Draw = 0x80919618; // type:func -EnFhgFire_SetUpdate = 0x8091A8C0; // type:func -EnFhgFire_Init = 0x8091A8CC; // type:func -EnFhgFire_Destroy = 0x8091ACDC; // type:func -EnFhgFire_LightningStrike = 0x8091AD4C; // type:func -EnFhgFire_LightningTrail = 0x8091B0E4; // type:func -EnFhgFire_LightningShock = 0x8091B284; // type:func -EnFhgFire_LightningBurst = 0x8091B3C8; // type:func -EnFhgFire_SpearLight = 0x8091B644; // type:func -EnFhgFire_EnergyBall = 0x8091B838; // type:func -EnFhgFire_PhantomWarp = 0x8091C4E4; // type:func -EnFhgFire_Update = 0x8091C6A0; // type:func -EnFhgFire_Draw = 0x8091C6F0; // type:func -BgMjin_SetupAction = 0x8091CEE0; // type:func -BgMjin_Init = 0x8091CEEC; // type:func -BgMjin_Destroy = 0x8091CF8C; // type:func -func_808A0850 = 0x8091CFC0; // type:func -BgMjin_DoNothing = 0x8091D094; // type:func -BgMjin_Update = 0x8091D0A4; // type:func -BgMjin_Draw = 0x8091D0C8; // type:func -BgHidanKousi_SetupAction = 0x8091D2C0; // type:func -BgHidanKousi_Init = 0x8091D2CC; // type:func -BgHidanKousi_Destroy = 0x8091D3C4; // type:func -func_80889ACC = 0x8091D3F8; // type:func -func_80889B5C = 0x8091D484; // type:func -func_80889BC0 = 0x8091D4E8; // type:func -func_80889C18 = 0x8091D540; // type:func -func_80889C90 = 0x8091D5B8; // type:func -func_80889D28 = 0x8091D654; // type:func -BgHidanKousi_Update = 0x8091D664; // type:func -BgHidanKousi_Draw = 0x8091D688; // type:func -DoorToki_Init = 0x8091D840; // type:func -DoorToki_Destroy = 0x8091D8A8; // type:func -DoorToki_Update = 0x8091D8DC; // type:func -BgHidanHamstep_SetupAction = 0x8091D9A0; // type:func -BgHidanHamstep_SpawnChildren = 0x8091D9C0; // type:func -BgHidanHamstep_Init = 0x8091DB3C; // type:func -BgHidanHamstep_Destroy = 0x8091DDAC; // type:func -func_808884C8 = 0x8091DE00; // type:func -func_80888638 = 0x8091DF70; // type:func -func_80888694 = 0x8091DFCC; // type:func -func_80888734 = 0x8091E06C; // type:func -func_808887C4 = 0x8091E100; // type:func -func_80888860 = 0x8091E19C; // type:func -func_808889B8 = 0x8091E2E8; // type:func -func_80888A58 = 0x8091E388; // type:func -BgHidanHamstep_DoNothing = 0x8091E520; // type:func -BgHidanHamstep_Update = 0x8091E530; // type:func -BgHidanHamstep_Draw = 0x8091E554; // type:func -EnBird_SetupAction = 0x8091E850; // type:func -EnBird_Init = 0x8091E85C; // type:func -EnBird_Destroy = 0x8091E948; // type:func -EnBird_SetupIdle = 0x8091E958; // type:func -EnBird_Idle = 0x8091EA0C; // type:func -EnBird_SetupMove = 0x8091EAAC; // type:func -EnBird_Move = 0x8091EAEC; // type:func -EnBird_Update = 0x8091EC08; // type:func -EnBird_Draw = 0x8091EC38; // type:func -EnWood02_SpawnZoneCheck = 0x8091ED10; // type:func -EnWood02_SpawnOffspring = 0x8091EE38; // type:func -EnWood02_Init = 0x8091F050; // type:func -EnWood02_Destroy = 0x8091F48C; // type:func -EnWood02_Update = 0x8091F4C8; // type:func -EnWood02_Draw = 0x8091F9C0; // type:func -EnLightbox_Init = 0x8091FEF0; // type:func -EnLightbox_Destroy = 0x8092001C; // type:func -EnLightbox_Update = 0x80920050; // type:func -EnLightbox_Draw = 0x809202D8; // type:func -EnPubox_Init = 0x80920370; // type:func -EnPubox_Destroy = 0x809204A8; // type:func -EnPubox_Update = 0x809204DC; // type:func -EnPubox_Draw = 0x8092062C; // type:func -EnTrap_Init = 0x809206B0; // type:func -EnTrap_Destroy = 0x80920A6C; // type:func -EnTrap_Update = 0x80920A98; // type:func -EnTrap_Draw = 0x8092182C; // type:func -EnArowTrap_Init = 0x80921950; // type:func -EnArowTrap_Destroy = 0x809219A0; // type:func -EnArowTrap_Update = 0x809219B0; // type:func -EnVase_Init = 0x80921AA0; // type:func -EnVase_Destroy = 0x80921B04; // type:func -EnVase_Draw = 0x80921B14; // type:func -EnTa_SetupAction = 0x80921BA0; // type:func -EnTa_SetTextForTalkInLonLonHouse = 0x80921BB0; // type:func -EnTa_Init = 0x80921C90; // type:func -EnTa_DecreaseShadowSize = 0x80922314; // type:func -EnTa_Destroy = 0x80922348; // type:func -EnTa_RequestTalk = 0x809223C0; // type:func -EnTa_SleepTalkInKakariko = 0x80922468; // type:func -EnTa_SleepTalkInLonLonHouse = 0x809224A8; // type:func -EnTa_SetupAwake = 0x809224E8; // type:func -EnTa_TalkWakingUp2 = 0x80922564; // type:func -EnTa_TalkWakingUp1 = 0x809225B0; // type:func -EnTa_WakeUp = 0x8092264C; // type:func -EnTa_SleepTalkInCastle = 0x809226D8; // type:func -EnTa_IdleAsleepInCastle = 0x80922718; // type:func -EnTa_IdleAsleepInLonLonHouse = 0x809227E0; // type:func -EnTa_IdleAsleepInKakariko = 0x80922844; // type:func -EnTa_RunWithAccelerationAndSfx = 0x8092290C; // type:func -EnTa_RunAwayRunOutOfGate = 0x8092298C; // type:func -EnTa_RunAwayTurnTowardsGate = 0x80922A00; // type:func -EnTa_RunAwayRunWest = 0x80922A60; // type:func -EnTa_RunAwayTurnWest = 0x80922AE8; // type:func -EnTa_RunAwayRunSouth = 0x80922B48; // type:func -EnTa_RunAwayStart = 0x80922BE8; // type:func -EnTa_TalkAwakeInCastle = 0x80922C60; // type:func -EnTa_IdleAwakeInCastle = 0x80922D0C; // type:func -EnTa_TalkAwakeInKakariko = 0x80922D58; // type:func -EnTa_IdleAwakeInKakariko = 0x80922DA4; // type:func -EnTa_TalkAtRanch = 0x80922E4C; // type:func -EnTa_IdleAtRanch = 0x80922E98; // type:func -EnTa_CheckCanBuyMilk = 0x80922EDC; // type:func -EnTa_CreateFloorCamera = 0x80922F2C; // type:func -EnTa_RemoveFloorCamera = 0x80922FE0; // type:func -EnTa_SetupActionWithSleepAnimation = 0x80923024; // type:func -EnTa_SetupActionWithWakeUpAnimation = 0x809230B4; // type:func -EnTa_TalkNotEnoughRupees = 0x80923140; // type:func -EnTa_IsPlayerHoldingSuperCucco = 0x809231B8; // type:func -EnTa_TalkFoundSuperCucco = 0x8092320C; // type:func -EnTa_IdleFoundSuperCucco = 0x8092336C; // type:func -EnTa_GetSuperCuccosCount = 0x809233DC; // type:func -EnTa_AnimateHandsUpDown = 0x80923418; // type:func -EnTa_TransitionToPostCuccoGame = 0x809234E4; // type:func -EnTa_TalkCuccoGameEnd = 0x80923534; // type:func -EnTa_RunCuccoGame = 0x80923610; // type:func -EnTa_ThrowSuperCuccos = 0x80923970; // type:func -EnTa_StartingCuccoGame3 = 0x80923BE8; // type:func -EnTa_StartingCuccoGame2 = 0x80923D0C; // type:func -EnTa_StartingCuccoGame1 = 0x80923DDC; // type:func -EnTa_StartCuccoGame = 0x80923EA4; // type:func -EnTa_TalkGeneralInLonLonHouse = 0x80923F3C; // type:func -EnTa_GiveItemInLonLonHouse = 0x80923F98; // type:func -EnTa_TalkAfterCuccoGameFirstWon = 0x8092406C; // type:func -EnTa_WaitBuyMilkOrPlayCuccoGameResponse = 0x80924104; // type:func -EnTa_WaitForPlayCuccoGameResponse = 0x809242E0; // type:func -EnTa_WaitForMarryMalonResponse = 0x80924408; // type:func -EnTa_ContinueTalkInLonLonHouse = 0x80924488; // type:func -EnTa_TalkAfterCuccoGameWon = 0x80924554; // type:func -EnTa_IdleSittingInLonLonHouse = 0x8092462C; // type:func -EnTa_IdleAfterCuccoGameFinished = 0x8092472C; // type:func -EnTa_BlinkWaitUntilNext = 0x809247F0; // type:func -EnTa_BlinkAdvanceState = 0x80924824; // type:func -EnTa_AnimRepeatCurrent = 0x809248E4; // type:func -EnTa_AnimSleeping = 0x80924924; // type:func -EnTa_AnimSitSleeping = 0x80924978; // type:func -EnTa_AnimRunToEnd = 0x80924A58; // type:func -EnTa_Update = 0x80924AB0; // type:func -EnTa_OverrideLimbDraw = 0x80924C40; // type:func -EnTa_PostLimbDraw = 0x80924DC4; // type:func -EnTa_Draw = 0x80924E04; // type:func -EnTkEff_Create = 0x80925560; // type:func -EnTkEff_Update = 0x80925604; // type:func -EnTkEff_Draw = 0x80925710; // type:func -EnTkEff_CreateDflt = 0x80925A00; // type:func -EnTk_RestAnim = 0x80925AB8; // type:func -EnTk_WalkAnim = 0x80925B34; // type:func -EnTk_DigAnim = 0x80925BA8; // type:func -EnTk_UpdateEyes = 0x80925C28; // type:func -EnTk_CheckFacingPlayer = 0x80925CEC; // type:func -EnTk_CheckNextSpot = 0x80925D70; // type:func -EnTk_CheckCurrentSpot = 0x80925E58; // type:func -EnTk_Step = 0x80925ED0; // type:func -EnTk_Orient = 0x80925FF8; // type:func -EnTk_GetTextId = 0x80926168; // type:func -EnTk_UpdateTalkState = 0x809261BC; // type:func -EnTk_ChooseReward = 0x80926358; // type:func -EnTk_DigEff = 0x80926514; // type:func -EnTk_Init = 0x80926684; // type:func -EnTk_Destroy = 0x80926800; // type:func -EnTk_Rest = 0x8092682C; // type:func -EnTk_Walk = 0x80926A54; // type:func -EnTk_Dig = 0x80926B24; // type:func -EnTk_Update = 0x80926D88; // type:func -func_80B1D200 = 0x80926E34; // type:func -EnTk_OverrideLimbDraw = 0x80926E60; // type:func -EnTk_PostLimbDraw = 0x80926ECC; // type:func -EnTk_Draw = 0x80926F80; // type:func -BgMoriBigst_SetupAction = 0x80927390; // type:func -BgMoriBigst_InitDynapoly = 0x8092739C; // type:func -BgMoriBigst_Init = 0x809273F4; // type:func -BgMoriBigst_Destroy = 0x809274CC; // type:func -BgMoriBigst_SetupWaitForMoriTex = 0x80927500; // type:func -BgMoriBigst_WaitForMoriTex = 0x80927528; // type:func -BgMoriBigst_SetupNoop = 0x809275F4; // type:func -BgMoriBigst_SetupStalfosFight = 0x80927618; // type:func -BgMoriBigst_StalfosFight = 0x809276CC; // type:func -BgMoriBigst_SetupFall = 0x80927744; // type:func -BgMoriBigst_Fall = 0x8092776C; // type:func -BgMoriBigst_SetupLanding = 0x809277F8; // type:func -BgMoriBigst_Landing = 0x8092788C; // type:func -BgMoriBigst_SetupStalfosPairFight = 0x809278B8; // type:func -BgMoriBigst_StalfosPairFight = 0x809279D0; // type:func -BgMoriBigst_SetupDone = 0x80927A30; // type:func -BgMoriBigst_Update = 0x80927A54; // type:func -BgMoriBigst_Draw = 0x80927AC8; // type:func -func_808A1800 = 0x80927CC0; // type:func -func_808A18FC = 0x80927DB8; // type:func -BgMoriElevator_Init = 0x80927E40; // type:func -BgMoriElevator_Destroy = 0x80927F24; // type:func -BgMoriElevator_IsPlayerRiding = 0x80927F64; // type:func -BgMoriElevator_SetupWaitAfterInit = 0x80927FC4; // type:func -BgMoriElevator_WaitAfterInit = 0x80927FD8; // type:func -func_808A1C30 = 0x8092807C; // type:func -BgMoriElevator_MoveIntoGround = 0x80928090; // type:func -func_808A1CF4 = 0x80928144; // type:func -BgMoriElevator_MoveAboveGround = 0x809281A0; // type:func -BgMoriElevator_SetupSetPosition = 0x80928254; // type:func -BgMoriElevator_SetPosition = 0x80928268; // type:func -BgMoriElevator_StopMovement = 0x80928430; // type:func -func_808A2008 = 0x8092844C; // type:func -BgMoriElevator_Update = 0x80928500; // type:func -BgMoriElevator_Draw = 0x80928558; // type:func -BgMoriKaitenkabe_CrossProduct = 0x809287B0; // type:func -BgMoriKaitenkabe_Init = 0x80928824; // type:func -BgMoriKaitenkabe_Destroy = 0x809288D8; // type:func -BgMoriKaitenkabe_WaitForMoriTex = 0x8092890C; // type:func -BgMoriKaitenkabe_SetupWait = 0x80928964; // type:func -BgMoriKaitenkabe_Wait = 0x8092897C; // type:func -BgMoriKaitenkabe_SetupRotate = 0x80928ADC; // type:func -BgMoriKaitenkabe_Rotate = 0x80928AFC; // type:func -BgMoriKaitenkabe_Update = 0x80928C68; // type:func -BgMoriKaitenkabe_Draw = 0x80928C8C; // type:func -BgMoriRakkatenjo_Init = 0x80928E10; // type:func -BgMoriRakkatenjo_Destroy = 0x80928EC8; // type:func -BgMoriRakkatenjo_IsLinkUnder = 0x80928EFC; // type:func -BgMoriRakkatenjo_IsLinkClose = 0x80928FAC; // type:func -BgMoriRakkatenjo_SetupWaitForMoriTex = 0x8092905C; // type:func -BgMoriRakkatenjo_WaitForMoriTex = 0x80929070; // type:func -BgMoriRakkatenjo_SetupWait = 0x809290C8; // type:func -BgMoriRakkatenjo_Wait = 0x80929104; // type:func -BgMoriRakkatenjo_SetupFall = 0x809291D4; // type:func -BgMoriRakkatenjo_Fall = 0x809291F4; // type:func -BgMoriRakkatenjo_SetupRest = 0x8092936C; // type:func -BgMoriRakkatenjo_Rest = 0x80929394; // type:func -BgMoriRakkatenjo_SetupRise = 0x809293C4; // type:func -BgMoriRakkatenjo_Rise = 0x809293E4; // type:func -BgMoriRakkatenjo_Update = 0x80929464; // type:func -BgMoriRakkatenjo_Draw = 0x8092953C; // type:func -EnVm_SetupAction = 0x80929780; // type:func -EnVm_Init = 0x8092978C; // type:func -EnVm_Destroy = 0x809298FC; // type:func -EnVm_SetupWait = 0x80929928; // type:func -EnVm_Wait = 0x809299B4; // type:func -EnVm_SetupAttack = 0x80929D08; // type:func -EnVm_Attack = 0x80929DAC; // type:func -EnVm_SetupStun = 0x80929FFC; // type:func -EnVm_Stun = 0x8092A0A4; // type:func -EnVm_SetupDie = 0x8092A1B0; // type:func -EnVm_Die = 0x8092A2B8; // type:func -EnVm_CheckHealth = 0x8092A36C; // type:func -EnVm_Update = 0x8092A468; // type:func -EnVm_OverrideLimbDraw = 0x8092A5FC; // type:func -EnVm_PostLimbDraw = 0x8092A664; // type:func -EnVm_Draw = 0x8092A93C; // type:func -DemoEffect_SetupUpdate = 0x8092B030; // type:func -DemoEffect_InterpolateCsFrames = 0x8092B03C; // type:func -DemoEffect_InitJewel = 0x8092B09C; // type:func -DemoEffect_InitGetItem = 0x8092B15C; // type:func -DemoEffect_Init = 0x8092B1A8; // type:func -DemoEffect_Destroy = 0x8092B9A8; // type:func -DemoEffect_WaitForObject = 0x8092B9F8; // type:func -DemoEffect_UpdatePositionToParent = 0x8092BA50; // type:func -DemoEffect_UpdateCrystalLight = 0x8092BA80; // type:func -DemoEffect_MedalSparkle = 0x8092BAB4; // type:func -DemoEffect_UpdateGetItem = 0x8092BC4C; // type:func -DemoEffect_InitTimeWarp = 0x8092BE8C; // type:func -DemoEffect_UpdateTimeWarpPullMasterSword = 0x8092C048; // type:func -DemoEffect_TimewarpShrink = 0x8092C0EC; // type:func -DemoEffect_UpdateTimeWarpReturnFromChamberOfSages = 0x8092C210; // type:func -DemoEffect_UpdateTimeWarpTimeblock = 0x8092C2C8; // type:func -DemoEffect_InitTimeWarpTimeblock = 0x8092C384; // type:func -DemoEffect_UpdateTriforceSpot = 0x8092C408; // type:func -DemoEffect_UpdateLightRingShrinking = 0x8092C6F0; // type:func -DemoEffect_UpdateLightRingExpanding = 0x8092C780; // type:func -DemoEffect_UpdateLightRingTriforce = 0x8092C7F4; // type:func -DemoEffect_UpdateCreationFireball = 0x8092C8B0; // type:func -DemoEffect_InitCreationFireball = 0x8092CA04; // type:func -DemoEffect_UpdateBlueOrbShrink = 0x8092CA54; // type:func -DemoEffect_UpdateBlueOrbGrow = 0x8092CABC; // type:func -DemoEffect_UpdateLightEffect = 0x8092CB9C; // type:func -DemoEffect_UpdateLgtShower = 0x8092CE94; // type:func -DemoEffect_UpdateGodLgtDin = 0x8092CF00; // type:func -DemoEffect_UpdateGodLgtNayru = 0x8092D09C; // type:func -DemoEffect_UpdateGodLgtFarore = 0x8092D294; // type:func -DemoEffect_MoveTowardTarget = 0x8092D438; // type:func -DemoEffect_InitJewelColor = 0x8092D498; // type:func -DemoEffect_SetJewelColor = 0x8092D598; // type:func -DemoEffect_MoveJewelSplit = 0x8092DD0C; // type:func -DemoEffect_MoveJewelSpherical = 0x8092DD68; // type:func -DemoEffect_MoveJewelActivateDoorOfTime = 0x8092DF4C; // type:func -DemoEffect_JewelSparkle = 0x8092E1B8; // type:func -DemoEffect_PlayJewelSfx = 0x8092E31C; // type:func -DemoEffect_UpdateJewelAdult = 0x8092E380; // type:func -DemoEffect_UpdateJewelChild = 0x8092E3C4; // type:func -DemoEffect_UpdateDust = 0x8092E5D8; // type:func -DemoEffect_Update = 0x8092E6FC; // type:func -DemoEffect_CheckForCue = 0x8092E720; // type:func -DemoEffect_DrawJewel = 0x8092E764; // type:func -DemoEffect_DrawCrystalLight = 0x8092EB6C; // type:func -DemoEffect_DrawFireBall = 0x8092EE38; // type:func -DemoEffect_DrawGodLgt = 0x8092EFBC; // type:func -DemoEffect_DrawLightEffect = 0x8092F378; // type:func -DemoEffect_DrawBlueOrb = 0x8092F5A8; // type:func -DemoEffect_DrawLgtShower = 0x8092F6D0; // type:func -DemoEffect_DrawLightRing = 0x8092F858; // type:func -DemoEffect_DrawTriforceSpot = 0x8092F9C0; // type:func -DemoEffect_DrawGetItem = 0x8092FF00; // type:func -DemoEffect_OverrideLimbDrawTimeWarp = 0x8092FF98; // type:func -DemoEffect_DrawTimeWarp = 0x80930118; // type:func -DemoEffect_FaceTowardPoint = 0x809301F0; // type:func -DemoEffect_SetPosRotFromCue = 0x809302A0; // type:func -DemoEffect_MoveTowardCuePos = 0x80930400; // type:func -DemoEffect_SetStartPosFromCue = 0x809304AC; // type:func -DemoKankyo_SetupAction = 0x80930B20; // type:func -DemoKankyo_Init = 0x80930B2C; // type:func -DemoKankyo_Destroy = 0x80930F10; // type:func -DemoKankyo_SetupType = 0x80930F1C; // type:func -DemoKankyo_DoNothing = 0x80931354; // type:func -DemoKankyo_DoNothing2 = 0x80931364; // type:func -DemoKankyo_SetPosFromCue = 0x8093138C; // type:func -DemoKankyo_UpdateRock = 0x8093147C; // type:func -DemoKankyo_UpdateClouds = 0x809314F4; // type:func -DemoKankyo_UpdateDoorOfTime = 0x80931540; // type:func -DemoKankyo_KillDoorOfTimeCollision = 0x809315DC; // type:func -DemoKankyo_Update = 0x80931608; // type:func -DemoKankyo_Draw = 0x8093162C; // type:func -func_80989B54 = 0x809317D4; // type:func -DemoKankyo_DrawRain = 0x809319A4; // type:func -DemoKankyo_DrawRock = 0x80931FA4; // type:func -DemoKankyo_DrawClouds = 0x809320E4; // type:func -DemoKankyo_DrawDoorOfTime = 0x80932424; // type:func -DemoKankyo_DrawLightPlane = 0x80932538; // type:func -DemoKankyo_Vec3fCopy = 0x80932620; // type:func -DemoKankyo_AddVecGeoToVec3f = 0x80932640; // type:func -DemoKankyo_Vec3fAddPosRot = 0x809326C0; // type:func -DemoKankyo_DrawWarpSparkles = 0x8093271C; // type:func -DemoKankyo_DrawSparkles = 0x80932E7C; // type:func -BgHidanFwbig_Init = 0x80934820; // type:func -BgHidanFwbig_Destroy = 0x809349C0; // type:func -BgHidanFwbig_UpdatePosition = 0x809349EC; // type:func -BgHidanFwbig_WaitForSwitch = 0x80934A6C; // type:func -BgHidanFwbig_WaitForCs = 0x80934AD0; // type:func -BgHidanFwbig_Rise = 0x80934AFC; // type:func -BgHidanFwbig_Lower = 0x80934B70; // type:func -BgHidanFwbig_WaitForTimer = 0x80934C50; // type:func -BgHidanFwbig_WaitForPlayer = 0x80934CA0; // type:func -BgHidanFwbig_Move = 0x80934D04; // type:func -BgHidanFwbig_MoveCollider = 0x80934DA4; // type:func -BgHidanFwbig_Update = 0x80934FA4; // type:func -BgHidanFwbig_Draw = 0x8093511C; // type:func -EnFloormas_Init = 0x80935500; // type:func -EnFloormas_Destroy = 0x80935714; // type:func -EnFloormas_MakeInvulnerable = 0x80935740; // type:func -EnFloormas_MakeVulnerable = 0x80935764; // type:func -EnFloormas_SetupBigDecideAction = 0x80935780; // type:func -EnFloormas_SetupStand = 0x809357C8; // type:func -EnFloormas_SetupBigWalk = 0x8093580C; // type:func -EnFloormas_SetupBigStopWalk = 0x80935898; // type:func -EnFloormas_SetupRun = 0x809358E0; // type:func -EnFloormas_SetupTurn = 0x80935910; // type:func -EnFloormas_SetupHover = 0x80935A40; // type:func -EnFloormas_SetupCharge = 0x80935B18; // type:func -EnFloormas_SetupLand = 0x80935B4C; // type:func -EnFloormas_SetupSplit = 0x80935BF8; // type:func -EnFloormas_SetupSmallWalk = 0x80935D58; // type:func -EnFloormas_SetupSmallDecideAction = 0x80935DA8; // type:func -EnFloormas_SetupSmallShrink = 0x80935E08; // type:func -EnFloormas_SetupSmallFollowerJumpAtLeader = 0x80935EE0; // type:func -EnFloormas_SetupJumpAtLink = 0x80935F4C; // type:func -EnFloormas_SetupGrabLink = 0x80935FB8; // type:func -EnFloormas_SetupMerge = 0x8093618C; // type:func -EnFloormas_SetupSmallWait = 0x809361E4; // type:func -EnFloormas_SetupTakeDamage = 0x80936268; // type:func -EnFloormas_SetupRecover = 0x80936324; // type:func -EnFloormas_SetupFreeze = 0x80936378; // type:func -EnFloormas_Die = 0x80936478; // type:func -EnFloormas_BigDecideAction = 0x80936514; // type:func -EnFloormas_Stand = 0x809365D8; // type:func -EnFloormas_BigWalk = 0x80936664; // type:func -EnFloormas_BigStopWalk = 0x809367C0; // type:func -EnFloormas_Run = 0x809367FC; // type:func -EnFloormas_Turn = 0x80936908; // type:func -EnFloormas_Hover = 0x80936ACC; // type:func -EnFloormas_Slide = 0x80936B50; // type:func -EnFloormas_Charge = 0x80936C90; // type:func -EnFloormas_Land = 0x80936D80; // type:func -EnFloormas_Split = 0x80936F68; // type:func -EnFloormas_SmallWalk = 0x80936FF0; // type:func -EnFloormas_SmallDecideAction = 0x809370E0; // type:func -EnFloormas_SmallShrink = 0x80937248; // type:func -EnFloormas_JumpAtLink = 0x809372A0; // type:func -EnFloormas_GrabLink = 0x809373DC; // type:func -EnFloormas_SmallFollowerJumpAtLeader = 0x809376F8; // type:func -EnFloormas_Merge = 0x80937908; // type:func -EnFloormas_SmallWait = 0x80937BB8; // type:func -EnFloormas_TakeDamage = 0x80937BC8; // type:func -EnFloormas_Recover = 0x80937C8C; // type:func -EnFloormas_Freeze = 0x80937CC8; // type:func -EnFloormas_ColliderCheck = 0x80937D3C; // type:func -EnFloormas_Update = 0x80937EEC; // type:func -EnFloormas_OverrideLimbDraw = 0x80938154; // type:func -EnFloormas_PostLimbDraw = 0x80938190; // type:func -EnFloormas_Draw = 0x80938280; // type:func -EnFloormas_DrawHighlighted = 0x8093834C; // type:func -EnHeishi1_Init = 0x809388E0; // type:func -EnHeishi1_Destroy = 0x80938AF8; // type:func -EnHeishi1_SetupWalk = 0x80938B08; // type:func -EnHeishi1_Walk = 0x80938BBC; // type:func -EnHeishi1_SetupMoveToLink = 0x80938EDC; // type:func -EnHeishi1_MoveToLink = 0x80938F98; // type:func -EnHeishi1_SetupWait = 0x80939090; // type:func -EnHeishi1_Wait = 0x80939158; // type:func -EnHeishi1_SetupTurnTowardLink = 0x80939314; // type:func -EnHeishi1_TurnTowardLink = 0x809393B0; // type:func -EnHeishi1_SetupKick = 0x8093945C; // type:func -EnHeishi1_Kick = 0x809394F0; // type:func -EnHeishi1_SetupWaitNight = 0x809395C4; // type:func -EnHeishi1_WaitNight = 0x80939658; // type:func -EnHeishi1_Update = 0x809396D8; // type:func -EnHeishi1_OverrideLimbDraw = 0x809399EC; // type:func -EnHeishi1_Draw = 0x80939A30; // type:func -EnRd_SetupAction = 0x80939DF0; // type:func -EnRd_Init = 0x80939DFC; // type:func -EnRd_Destroy = 0x80939FE8; // type:func -EnRd_UpdateMourningTarget = 0x8093A02C; // type:func -EnRd_SetupIdle = 0x8093A098; // type:func -EnRd_Idle = 0x8093A140; // type:func -EnRd_SetupRiseFromCoffin = 0x8093A36C; // type:func -EnRd_RiseFromCoffin = 0x8093A40C; // type:func -EnRd_SetupWalkToPlayer = 0x8093A58C; // type:func -EnRd_WalkToPlayer = 0x8093A618; // type:func -EnRd_SetupWalkToHome = 0x8093A94C; // type:func -EnRd_WalkToHome = 0x8093A9CC; // type:func -EnRd_SetupWalkToParent = 0x8093ABE0; // type:func -EnRd_WalkToParent = 0x8093AC64; // type:func -EnRd_SetupGrab = 0x8093ADF8; // type:func -EnRd_Grab = 0x8093AE5C; // type:func -EnRd_SetupAttemptPlayerFreeze = 0x8093B1C8; // type:func -EnRd_AttemptPlayerFreeze = 0x8093B240; // type:func -EnRd_SetupStandUp = 0x8093B338; // type:func -EnRd_StandUp = 0x8093B384; // type:func -EnRd_SetupCrouch = 0x8093B3E0; // type:func -EnRd_Crouch = 0x8093B460; // type:func -EnRd_SetupDamaged = 0x8093B49C; // type:func -EnRd_Damaged = 0x8093B528; // type:func -EnRd_SetupDead = 0x8093B638; // type:func -EnRd_Dead = 0x8093B6B0; // type:func -EnRd_SetupStunned = 0x8093B7FC; // type:func -EnRd_Stunned = 0x8093B8E8; // type:func -EnRd_TurnTowardsPlayer = 0x8093B9BC; // type:func -EnRd_UpdateDamage = 0x8093BB34; // type:func -EnRd_Update = 0x8093BD00; // type:func -EnRd_OverrideLimbDraw = 0x8093BEEC; // type:func -EnRd_PostLimbDraw = 0x8093BF48; // type:func -EnRd_Draw = 0x8093C090; // type:func -EnPoSisters_Init = 0x8093C6A0; // type:func -EnPoSisters_Destroy = 0x8093C8EC; // type:func -func_80AD9240 = 0x8093C954; // type:func -func_80AD9368 = 0x8093CA80; // type:func -func_80AD93C4 = 0x8093CADC; // type:func -func_80AD943C = 0x8093CB54; // type:func -func_80AD944C = 0x8093CB68; // type:func -func_80AD94E0 = 0x8093CBFC; // type:func -func_80AD9568 = 0x8093CC84; // type:func -func_80AD95D8 = 0x8093CCF4; // type:func -func_80AD96A4 = 0x8093CDC0; // type:func -func_80AD9718 = 0x8093CE34; // type:func -func_80AD97C8 = 0x8093CEE4; // type:func -func_80AD98F4 = 0x8093D010; // type:func -func_80AD99D4 = 0x8093D0F0; // type:func -func_80AD9A54 = 0x8093D170; // type:func -func_80AD9AA8 = 0x8093D1C4; // type:func -func_80AD9C24 = 0x8093D340; // type:func -func_80AD9D44 = 0x8093D460; // type:func -func_80AD9DF0 = 0x8093D50C; // type:func -func_80AD9E60 = 0x8093D57C; // type:func -func_80AD9F1C = 0x8093D638; // type:func -func_80AD9F90 = 0x8093D6AC; // type:func -func_80ADA028 = 0x8093D744; // type:func -func_80ADA094 = 0x8093D7B0; // type:func -func_80ADA10C = 0x8093D828; // type:func -func_80ADA1B8 = 0x8093D8D8; // type:func -func_80ADA25C = 0x8093D97C; // type:func -func_80ADA2BC = 0x8093D9DC; // type:func -func_80ADA35C = 0x8093DA7C; // type:func -func_80ADA4A8 = 0x8093DBC8; // type:func -func_80ADA530 = 0x8093DC50; // type:func -func_80ADA6A0 = 0x8093DDC0; // type:func -func_80ADA7F0 = 0x8093DF10; // type:func -func_80ADA8C0 = 0x8093DFE0; // type:func -func_80ADA9E8 = 0x8093E108; // type:func -func_80ADAAA4 = 0x8093E1C4; // type:func -func_80ADAC70 = 0x8093E390; // type:func -func_80ADAD54 = 0x8093E474; // type:func -func_80ADAE6C = 0x8093E58C; // type:func -func_80ADAFC0 = 0x8093E6E0; // type:func -func_80ADB17C = 0x8093E89C; // type:func -func_80ADB2B8 = 0x8093E9D8; // type:func -func_80ADB338 = 0x8093EA54; // type:func -func_80ADB4B0 = 0x8093EBD0; // type:func -func_80ADB51C = 0x8093EC3C; // type:func -func_80ADB770 = 0x8093EE90; // type:func -func_80ADB9F0 = 0x8093F110; // type:func -func_80ADBB6C = 0x8093F28C; // type:func -func_80ADBBF4 = 0x8093F314; // type:func -func_80ADBC88 = 0x8093F3A8; // type:func -func_80ADBD38 = 0x8093F45C; // type:func -func_80ADBD8C = 0x8093F4B0; // type:func -func_80ADBEE8 = 0x8093F610; // type:func -func_80ADBF58 = 0x8093F680; // type:func -func_80ADC034 = 0x8093F75C; // type:func -func_80ADC10C = 0x8093F834; // type:func -EnPoSisters_Update = 0x8093F9F8; // type:func -func_80ADC55C = 0x8093FC8C; // type:func -EnPoSisters_OverrideLimbDraw = 0x8093FEAC; // type:func -EnPoSisters_PostLimbDraw = 0x8094009C; // type:func -EnPoSisters_Draw = 0x8094076C; // type:func -BgHeavyBlock_SetPieceRandRot = 0x80941390; // type:func -BgHeavyBlock_InitPiece = 0x80941420; // type:func -BgHeavyBlock_SetupDynapoly = 0x8094159C; // type:func -BgHeavyBlock_Init = 0x80941610; // type:func -BgHeavyBlock_Destroy = 0x80941854; // type:func -BgHeavyBlock_MovePiece = 0x8094189C; // type:func -BgHeavyBlock_SpawnDust = 0x80941A60; // type:func -BgHeavyBlock_SpawnPieces = 0x80941DC4; // type:func -BgHeavyBlock_Wait = 0x80941FBC; // type:func -BgHeavyBlock_LiftedUp = 0x809420E4; // type:func -BgHeavyBlock_Fly = 0x8094224C; // type:func -BgHeavyBlock_DoNothing = 0x80942564; // type:func -BgHeavyBlock_Land = 0x80942574; // type:func -BgHeavyBlock_Update = 0x809427E4; // type:func -BgHeavyBlock_Draw = 0x80942808; // type:func -BgHeavyBlock_DrawPiece = 0x8094296C; // type:func -BgPoEvent_InitPaintings = 0x80942C80; // type:func -BgPoEvent_InitBlocks = 0x80942FFC; // type:func -BgPoEvent_Init = 0x809431AC; // type:func -BgPoEvent_Destroy = 0x809432BC; // type:func -BgPoEvent_BlockWait = 0x80943340; // type:func -BgPoEvent_BlockShake = 0x8094344C; // type:func -BgPoEvent_CheckBlock = 0x80943504; // type:func -BgPoEvent_BlockFall = 0x8094363C; // type:func -BgPoEvent_BlockIdle = 0x80943740; // type:func -BgPoEvent_BlockPush = 0x809439F4; // type:func -BgPoEvent_BlockReset = 0x80943BB4; // type:func -BgPoEvent_BlockSolved = 0x80943CB4; // type:func -BgPoEvent_AmyWait = 0x80943D2C; // type:func -BgPoEvent_AmyPuzzle = 0x80943DA8; // type:func -BgPoEvent_NextPainting = 0x80943EC4; // type:func -BgPoEvent_PaintingEmpty = 0x80943F80; // type:func -BgPoEvent_PaintingAppear = 0x80943FB0; // type:func -BgPoEvent_PaintingVanish = 0x80943FE8; // type:func -BgPoEvent_PaintingPresent = 0x80944038; // type:func -BgPoEvent_PaintingBurn = 0x80944294; // type:func -BgPoEvent_Update = 0x80944440; // type:func -BgPoEvent_Draw = 0x809444B0; // type:func -ObjMure_SetCullingImpl = 0x80944AC0; // type:func -ObjMure_SetCulling = 0x80944B18; // type:func -ObjMure_Init = 0x80944B44; // type:func -ObjMure_Destroy = 0x80944BF4; // type:func -ObjMure_GetMaxChildSpawns = 0x80944C04; // type:func -ObjMure_GetSpawnPos = 0x80944C30; // type:func -ObjMure_SpawnActors0 = 0x80944C58; // type:func -ObjMure_SpawnActors1 = 0x80944E20; // type:func -ObjMure_SpawnActors = 0x80944F6C; // type:func -ObjMure_KillActorsImpl = 0x80944FBC; // type:func -ObjMure_KillActors = 0x809450B4; // type:func -ObjMure_CheckChildren = 0x809450D4; // type:func -ObjMure_InitialAction = 0x80945198; // type:func -ObjMure_CulledState = 0x809451B0; // type:func -ObjMure_SetFollowTargets = 0x80945210; // type:func -ObjMure_SetChildToFollowPlayer = 0x809452E8; // type:func -ObjMure_GroupBehavior0 = 0x80945468; // type:func -ObjMure_GroupBehavior1 = 0x80945690; // type:func -ObjMure_ActiveState = 0x80945814; // type:func -ObjMure_Update = 0x809458BC; // type:func -EnSw_CrossProduct = 0x80945AD0; // type:func -func_80B0BE20 = 0x80945B44; // type:func -func_80B0C020 = 0x80945D44; // type:func -func_80B0C0CC = 0x80945DF4; // type:func -EnSw_Init = 0x80946228; // type:func -EnSw_Destroy = 0x809466F0; // type:func -func_80B0C9F0 = 0x8094671C; // type:func -func_80B0CBE8 = 0x80946918; // type:func -func_80B0CCF4 = 0x80946A24; // type:func -func_80B0CEA8 = 0x80946BD8; // type:func -func_80B0CF44 = 0x80946C78; // type:func -func_80B0D14C = 0x80946E80; // type:func -func_80B0D364 = 0x80947098; // type:func -func_80B0D3AC = 0x809470E0; // type:func -func_80B0D590 = 0x809472C8; // type:func -func_80B0D878 = 0x809475B0; // type:func -func_80B0DB00 = 0x80947838; // type:func -func_80B0DC7C = 0x809479B8; // type:func -func_80B0DE34 = 0x80947B74; // type:func -func_80B0DEA8 = 0x80947BF0; // type:func -func_80B0DFFC = 0x80947D44; // type:func -func_80B0E314 = 0x8094805C; // type:func -func_80B0E430 = 0x80948174; // type:func -func_80B0E5E0 = 0x80948324; // type:func -func_80B0E728 = 0x80948470; // type:func -func_80B0E90C = 0x80948654; // type:func -func_80B0E9BC = 0x80948704; // type:func -EnSw_Update = 0x809487B4; // type:func -EnSw_OverrideLimbDraw = 0x80948810; // type:func -EnSw_PostLimbDraw = 0x80948AB4; // type:func -func_80B0EDB8 = 0x80948ACC; // type:func -func_80B0EEA4 = 0x80948B84; // type:func -EnSw_Draw = 0x80948BB0; // type:func -BossFd_SpawnEmber = 0x809492C0; // type:func -BossFd_SpawnDebris = 0x8094938C; // type:func -BossFd_SpawnDust = 0x8094945C; // type:func -BossFd_SpawnFireBreath = 0x809494F4; // type:func -BossFd_SetCameraSpeed = 0x80949600; // type:func -BossFd_UpdateCamera = 0x809496A0; // type:func -BossFd_Init = 0x8094980C; // type:func -BossFd_Destroy = 0x80949B2C; // type:func -BossFd_IsFacingLink = 0x80949B8C; // type:func -BossFd_SetupFly = 0x80949BBC; // type:func -BossFd_Fly = 0x80949C2C; // type:func -BossFd_Wait = 0x8094C2B4; // type:func -BossFd_Effects = 0x8094C4A4; // type:func -BossFd_CollisionCheck = 0x8094D0C4; // type:func -BossFd_Update = 0x8094D178; // type:func -BossFd_UpdateEffects = 0x8094D8B8; // type:func -BossFd_DrawEffects = 0x8094DD10; // type:func -BossFd_Draw = 0x8094E388; // type:func -BossFd_OverrideRightArmDraw = 0x8094E440; // type:func -BossFd_OverrideLeftArmDraw = 0x8094E560; // type:func -BossFd_DrawMane = 0x8094E680; // type:func -BossFd_OverrideHeadDraw = 0x8094EB00; // type:func -BossFd_PostHeadDraw = 0x8094EBF8; // type:func -BossFd_DrawBody = 0x8094EC4C; // type:func -ObjectKankyo_SetupAction = 0x809505F0; // type:func -ObjectKankyo_Init = 0x809505FC; // type:func -ObjectKankyo_Destroy = 0x809508FC; // type:func -ObjectKankyo_Snow = 0x80950920; // type:func -ObjectKankyo_Fairies = 0x80950930; // type:func -ObjectKankyo_Update = 0x80951748; // type:func -ObjectKankyo_Draw = 0x8095176C; // type:func -ObjectKankyo_DrawFairies = 0x809517F0; // type:func -ObjectKankyo_DrawSnow = 0x80951C70; // type:func -ObjectKankyo_Lightning = 0x80952408; // type:func -ObjectKankyo_DrawLightning = 0x809524B0; // type:func -ObjectKankyo_SunGraveSparkInit = 0x809526AC; // type:func -ObjectKankyo_WaitForSunGraveSparkObject = 0x809526F8; // type:func -ObjectKankyo_SunGraveSpark = 0x80952768; // type:func -ObjectKankyo_DrawSunGraveSpark = 0x80952814; // type:func -ObjectKankyo_InitBeams = 0x80952D44; // type:func -ObjectKankyo_WaitForBeamObject = 0x80952D90; // type:func -ObjectKankyo_Beams = 0x80952DF0; // type:func -ObjectKankyo_DrawBeams = 0x80952ED0; // type:func -EnDu_SetupAction = 0x80953810; // type:func -EnDu_GetTextId = 0x8095381C; // type:func -EnDu_UpdateTalkState = 0x809538C0; // type:func -func_809FDDB4 = 0x8095399C; // type:func -func_809FDE24 = 0x80953A0C; // type:func -func_809FDE9C = 0x80953A84; // type:func -func_809FDFC0 = 0x80953BA8; // type:func -func_809FE000 = 0x80953BEC; // type:func -func_809FE040 = 0x80953C30; // type:func -func_809FE104 = 0x80953CF4; // type:func -EnDu_Init = 0x80953D9C; // type:func -EnDu_Destroy = 0x80953F6C; // type:func -func_809FE3B4 = 0x80953FAC; // type:func -func_809FE3C0 = 0x80953FBC; // type:func -func_809FE4A4 = 0x809540A4; // type:func -func_809FE638 = 0x8095423C; // type:func -func_809FE6CC = 0x809542D4; // type:func -func_809FE740 = 0x80954348; // type:func -func_809FE798 = 0x809543A0; // type:func -func_809FE890 = 0x80954498; // type:func -func_809FEB08 = 0x80954714; // type:func -func_809FEC14 = 0x80954820; // type:func -func_809FEC70 = 0x8095487C; // type:func -func_809FECE4 = 0x809548F4; // type:func -EnDu_Update = 0x8095492C; // type:func -EnDu_OverrideLimbDraw = 0x80954AB8; // type:func -EnDu_PostLimbDraw = 0x80954C34; // type:func -EnDu_Draw = 0x80954C90; // type:func -EnFd_SpawnCore = 0x809552B0; // type:func -EnFd_SpawnChildFire = 0x809553A8; // type:func -EnFd_SpawnDot = 0x809554C8; // type:func -EnFd_CheckHammer = 0x80955634; // type:func -EnFd_ColliderCheck = 0x809556D0; // type:func -EnFd_CanSeeActor = 0x80955868; // type:func -EnFd_FindBomb = 0x80955978; // type:func -EnFd_FindPotentialTheat = 0x80955A38; // type:func -EnFd_GetPosAdjAroundCircle = 0x80955AAC; // type:func -EnFd_ShouldStopRunning = 0x80955B74; // type:func -EnFd_Fade = 0x80955CA8; // type:func -EnFd_Init = 0x80955DB8; // type:func -EnFd_Destroy = 0x80955EF4; // type:func -EnFd_Reappear = 0x80955F20; // type:func -EnFd_SpinAndGrow = 0x80955FB0; // type:func -EnFd_JumpToGround = 0x80956084; // type:func -EnFd_Land = 0x80956100; // type:func -EnFd_SpinAndSpawnFire = 0x809561E0; // type:func -EnFd_Run = 0x80956400; // type:func -EnFd_WaitForCore = 0x80956660; // type:func -EnFd_Update = 0x809566D8; // type:func -EnFd_OverrideLimbDraw = 0x809568D4; // type:func -EnFd_PostLimbDraw = 0x80956910; // type:func -EnFd_Draw = 0x80956C3C; // type:func -EnFd_SpawnEffect = 0x80957008; // type:func -EnFd_UpdateEffectsFlames = 0x809570F8; // type:func -EnFd_UpdateEffectsDots = 0x80957210; // type:func -EnFd_DrawEffectsFlames = 0x8095732C; // type:func -EnFd_DrawEffectsDots = 0x809576F8; // type:func -func_80A693D0 = 0x80957F70; // type:func -func_80A6948C = 0x8095802C; // type:func -func_80A695A4 = 0x80958144; // type:func -EnHorseLinkChild_Init = 0x8095820C; // type:func -EnHorseLinkChild_Destroy = 0x809583E4; // type:func -func_80A6988C = 0x80958434; // type:func -func_80A698F4 = 0x80958498; // type:func -func_80A6993C = 0x809584E0; // type:func -func_80A699FC = 0x809585A0; // type:func -func_80A69B7C = 0x80958728; // type:func -func_80A69C18 = 0x809587C8; // type:func -func_80A69EC0 = 0x80958A70; // type:func -func_80A69F5C = 0x80958B10; // type:func -func_80A6A068 = 0x80958C1C; // type:func -func_80A6A4DC = 0x80959098; // type:func -func_80A6A5A4 = 0x80959160; // type:func -func_80A6A724 = 0x809592E0; // type:func -func_80A6A7D0 = 0x80959390; // type:func -EnHorseLinkChild_Update = 0x8095966C; // type:func -EnHorseLinkChild_PostDraw = 0x809597C4; // type:func -EnHorseLinkChild_OverrideLimbDraw = 0x80959950; // type:func -EnHorseLinkChild_Draw = 0x809599D8; // type:func -DoorAna_SetupAction = 0x80959D70; // type:func -DoorAna_Init = 0x80959D7C; // type:func -DoorAna_Destroy = 0x80959E38; // type:func -DoorAna_WaitClosed = 0x80959E74; // type:func -DoorAna_WaitOpen = 0x80959FAC; // type:func -DoorAna_GrabPlayer = 0x8095A160; // type:func -DoorAna_Update = 0x8095A20C; // type:func -DoorAna_Draw = 0x8095A260; // type:func -BgSpot02Objects_Init = 0x8095A3E0; // type:func -BgSpot02Objects_Destroy = 0x8095A650; // type:func -func_808AC8FC = 0x8095A684; // type:func -func_808AC908 = 0x8095A694; // type:func -func_808ACA08 = 0x8095A794; // type:func -func_808ACAFC = 0x8095A88C; // type:func -func_808ACB58 = 0x8095A8E8; // type:func -BgSpot02Objects_Update = 0x8095A968; // type:func -BgSpot02Objects_Draw = 0x8095A98C; // type:func -func_808ACC34 = 0x8095A9C8; // type:func -func_808ACCB8 = 0x8095AA4C; // type:func -func_808AD3D4 = 0x8095B12C; // type:func -func_808AD450 = 0x8095B1A8; // type:func -BgHaka_Init = 0x8095B730; // type:func -BgHaka_Destroy = 0x8095B7AC; // type:func -BgHaka_CheckPlayerOnDirtPatch = 0x8095B7E0; // type:func -BgHaka_IdleClosed = 0x8095B870; // type:func -BgHaka_Pull = 0x8095B9C4; // type:func -BgHaka_IdleOpened = 0x8095BB3C; // type:func -BgHaka_IdleLockedClosed = 0x8095BB78; // type:func -BgHaka_Update = 0x8095BBF0; // type:func -BgHaka_Draw = 0x8095BC14; // type:func -MagicWind_SetupAction = 0x8095BDF0; // type:func -MagicWind_Init = 0x8095BDFC; // type:func -MagicWind_Destroy = 0x8095BF08; // type:func -MagicWind_UpdateAlpha = 0x8095BF3C; // type:func -MagicWind_WaitForTimer = 0x8095C05C; // type:func -MagicWind_Grow = 0x8095C0D8; // type:func -MagicWind_WaitAtFullSize = 0x8095C128; // type:func -MagicWind_FadeOut = 0x8095C174; // type:func -MagicWind_Shrink = 0x8095C1D8; // type:func -MagicWind_Update = 0x8095C218; // type:func -MagicWind_OverrideLimbDraw = 0x8095C26C; // type:func -MagicWind_Draw = 0x8095C3F0; // type:func -MagicFire_Init = 0x8095DAF0; // type:func -MagicFire_Destroy = 0x8095DB9C; // type:func -MagicFire_UpdateBeforeCast = 0x8095DBC0; // type:func -MagicFire_Update = 0x8095DC64; // type:func -MagicFire_Draw = 0x8095DFF8; // type:func -func_80AEAC10 = 0x8095FDC0; // type:func -func_80AEAC54 = 0x8095FE04; // type:func -func_80AEACDC = 0x8095FE8C; // type:func -func_80AEAD20 = 0x8095FED0; // type:func -EnRu1_DestroyColliders = 0x8095FF48; // type:func -func_80AEADD8 = 0x8095FF88; // type:func -func_80AEADE0 = 0x8095FF94; // type:func -func_80AEADF0 = 0x8095FFA8; // type:func -EnRu1_Destroy = 0x8095FFB8; // type:func -EnRu1_UpdateEyes = 0x8095FFD8; // type:func -EnRu1_SetEyeIndex = 0x80960060; // type:func -EnRu1_SetMouthIndex = 0x80960078; // type:func -func_80AEAECC = 0x80960090; // type:func -EnRu1_IsCsStateIdle = 0x809600F8; // type:func -EnRu1_GetCue = 0x80960118; // type:func -func_80AEAFA0 = 0x80960164; // type:func -func_80AEAFE0 = 0x809601A4; // type:func -func_80AEB020 = 0x809601E4; // type:func -EnRu1_FindSwitch = 0x8096024C; // type:func -func_80AEB0EC = 0x80960294; // type:func -func_80AEB104 = 0x809602AC; // type:func -func_80AEB124 = 0x809602CC; // type:func -func_80AEB174 = 0x8096031C; // type:func -func_80AEB1B4 = 0x80960360; // type:func -func_80AEB264 = 0x8096038C; // type:func -EnRu1_UpdateSkelAnime = 0x80960448; // type:func -func_80AEB364 = 0x8096048C; // type:func -func_80AEB3A4 = 0x809604CC; // type:func -func_80AEB3CC = 0x809604F4; // type:func -func_80AEB3DC = 0x80960508; // type:func -EnRu1_GetCueChannel3 = 0x80960564; // type:func -func_80AEB458 = 0x80960584; // type:func -func_80AEB480 = 0x809605AC; // type:func -EnRu1_SpawnRipple = 0x809605D4; // type:func -func_80AEB50C = 0x8096063C; // type:func -func_80AEB59C = 0x809606CC; // type:func -EnRu1_SpawnSplash = 0x809607B8; // type:func -func_80AEB6E0 = 0x8096081C; // type:func -func_80AEB738 = 0x80960878; // type:func -func_80AEB7D0 = 0x80960910; // type:func -func_80AEB7E0 = 0x80960924; // type:func -func_80AEB87C = 0x809609C0; // type:func -func_80AEB89C = 0x809609E4; // type:func -func_80AEB914 = 0x80960A5C; // type:func -func_80AEB934 = 0x80960A7C; // type:func -func_80AEB954 = 0x80960A9C; // type:func -func_80AEB974 = 0x80960ABC; // type:func -func_80AEBA0C = 0x80960B54; // type:func -func_80AEBA2C = 0x80960B74; // type:func -func_80AEBAFC = 0x80960C44; // type:func -func_80AEBB3C = 0x80960C88; // type:func -func_80AEBB78 = 0x80960CC8; // type:func -func_80AEBBF4 = 0x80960D48; // type:func -func_80AEBC30 = 0x80960D88; // type:func -func_80AEBC84 = 0x80960DE0; // type:func -func_80AEBCB8 = 0x80960E18; // type:func -func_80AEBD1C = 0x80960E7C; // type:func -func_80AEBD94 = 0x80960EF4; // type:func -func_80AEBE3C = 0x80960F9C; // type:func -func_80AEBEC8 = 0x8096102C; // type:func -func_80AEBF60 = 0x809610C4; // type:func -func_80AEBFD8 = 0x80961140; // type:func -func_80AEC070 = 0x809611D8; // type:func -func_80AEC0B4 = 0x80961220; // type:func -func_80AEC100 = 0x80961274; // type:func -func_80AEC130 = 0x809612A8; // type:func -func_80AEC17C = 0x809612F8; // type:func -func_80AEC1D4 = 0x80961358; // type:func -func_80AEC244 = 0x809613CC; // type:func -func_80AEC2C0 = 0x8096144C; // type:func -func_80AEC320 = 0x809614B0; // type:func -func_80AEC40C = 0x809615A4; // type:func -func_80AEC4CC = 0x80961664; // type:func -func_80AEC4F4 = 0x8096168C; // type:func -func_80AEC5FC = 0x80961794; // type:func -func_80AEC650 = 0x809617E8; // type:func -func_80AEC6B0 = 0x8096184C; // type:func -func_80AEC6E4 = 0x80961884; // type:func -func_80AEC780 = 0x80961924; // type:func -func_80AEC81C = 0x809619C4; // type:func -func_80AEC8B8 = 0x80961A60; // type:func -func_80AEC93C = 0x80961AE8; // type:func -func_80AEC9C4 = 0x80961B70; // type:func -func_80AECA18 = 0x80961BC4; // type:func -func_80AECA44 = 0x80961BF4; // type:func -func_80AECA94 = 0x80961C48; // type:func -func_80AECAB4 = 0x80961C68; // type:func -func_80AECAD4 = 0x80961C88; // type:func -func_80AECB18 = 0x80961CD0; // type:func -func_80AECB60 = 0x80961D1C; // type:func -func_80AECBB8 = 0x80961D78; // type:func -func_80AECC1C = 0x80961DE0; // type:func -func_80AECC84 = 0x80961E4C; // type:func -func_80AECCB0 = 0x80961E78; // type:func -func_80AECDA0 = 0x80961F68; // type:func -func_80AECE04 = 0x80961FCC; // type:func -func_80AECE20 = 0x80961FEC; // type:func -func_80AECEB4 = 0x8096207C; // type:func -func_80AECF6C = 0x80962134; // type:func -func_80AED084 = 0x8096224C; // type:func -func_80AED0B0 = 0x80962278; // type:func -func_80AED0C8 = 0x80962290; // type:func -func_80AED0D8 = 0x809622A4; // type:func -func_80AED110 = 0x809622DC; // type:func -func_80AED154 = 0x80962320; // type:func -func_80AED19C = 0x80962368; // type:func -func_80AED218 = 0x809623E4; // type:func -func_80AED304 = 0x809624D4; // type:func -func_80AED324 = 0x809624F4; // type:func -func_80AED344 = 0x80962514; // type:func -func_80AED374 = 0x80962548; // type:func -func_80AED3A4 = 0x8096257C; // type:func -func_80AED3E0 = 0x809625BC; // type:func -func_80AED414 = 0x809625F4; // type:func -func_80AED44C = 0x80962634; // type:func -func_80AED4FC = 0x809626E8; // type:func -func_80AED520 = 0x80962710; // type:func -func_80AED57C = 0x80962770; // type:func -func_80AED5B8 = 0x809627B0; // type:func -func_80AED5DC = 0x809627D8; // type:func -func_80AED600 = 0x80962800; // type:func -func_80AED624 = 0x80962828; // type:func -func_80AED6DC = 0x809628E0; // type:func -func_80AED6F8 = 0x80962900; // type:func -func_80AED738 = 0x80962940; // type:func -func_80AED83C = 0x80962A48; // type:func -func_80AED8DC = 0x80962AEC; // type:func -func_80AEDAE0 = 0x80962CF0; // type:func -func_80AEDB30 = 0x80962D44; // type:func -func_80AEDEF4 = 0x80963104; // type:func -func_80AEDFF4 = 0x80963208; // type:func -func_80AEE02C = 0x80963248; // type:func -func_80AEE050 = 0x80963270; // type:func -func_80AEE264 = 0x8096348C; // type:func -func_80AEE2F8 = 0x80963520; // type:func -func_80AEE394 = 0x809635BC; // type:func -func_80AEE488 = 0x809636B0; // type:func -func_80AEE568 = 0x80963790; // type:func -func_80AEE628 = 0x80963854; // type:func -func_80AEE6D0 = 0x809638F8; // type:func -func_80AEE7C4 = 0x809639EC; // type:func -func_80AEEA48_unknown = 0x80AEEA48; // type:func -func_80AEEAC8 = 0x80963D0C; // type:func -func_80AEEB24 = 0x80963D68; // type:func -func_80AEEBB4 = 0x80963DF8; // type:func -func_80AEEBD4 = 0x80963E18; // type:func -func_80AEEC5C = 0x80963EA4; // type:func -func_80AEECF0 = 0x80963F3C; // type:func -func_80AEED58 = 0x80963FA8; // type:func -func_80AEEDCC = 0x80964020; // type:func -func_80AEEE34 = 0x8096408C; // type:func -func_80AEEE9C = 0x809640F8; // type:func -func_80AEEF08 = 0x80964168; // type:func -func_80AEEF5C = 0x809641C0; // type:func -func_80AEEF68 = 0x809641D0; // type:func -func_80AEEFEC = 0x80964258; // type:func -func_80AEF080 = 0x809642EC; // type:func -func_80AEF0BC = 0x8096432C; // type:func -func_80AEF170 = 0x809643E4; // type:func -func_80AEF188 = 0x809643FC; // type:func -func_80AEF1F0 = 0x80964464; // type:func -func_80AEF29C = 0x80964510; // type:func -func_80AEF2AC = 0x80964524; // type:func -func_80AEF2D0 = 0x8096454C; // type:func -func_80AEF354 = 0x809645D8; // type:func -func_80AEF3A8 = 0x80964634; // type:func -func_80AEF40C = 0x8096469C; // type:func -func_80AEF4A8 = 0x8096473C; // type:func -func_80AEF4E0 = 0x80964774; // type:func -func_80AEF51C = 0x809647B4; // type:func -func_80AEF540 = 0x809647DC; // type:func -func_80AEF5B8 = 0x80964858; // type:func -func_80AEF624 = 0x809648C8; // type:func -func_80AEF728 = 0x809649CC; // type:func -func_80AEF79C = 0x80964A40; // type:func -func_80AEF820 = 0x80964AC8; // type:func -func_80AEF890 = 0x80964B38; // type:func -func_80AEF930 = 0x80964BC4; // type:func -func_80AEF99C = 0x80964C34; // type:func -func_80AEF9D8 = 0x80964C70; // type:func -func_80AEFA2C = 0x80964CB4; // type:func -func_80AEFAAC = 0x80964D2C; // type:func -func_80AEFB04 = 0x80964D74; // type:func -func_80AEFB68 = 0x80964DD0; // type:func -func_80AEFBC8 = 0x80964E28; // type:func -func_80AEFC24 = 0x80964E88; // type:func -func_80AEFC54 = 0x80964EBC; // type:func -func_80AEFCE8 = 0x80964F58; // type:func -func_80AEFD38 = 0x80964FA8; // type:func -func_80AEFDC0 = 0x80965034; // type:func -func_80AEFE38 = 0x809650B8; // type:func -func_80AEFE84 = 0x80965104; // type:func -func_80AEFE9C = 0x8096511C; // type:func -func_80AEFECC = 0x80965150; // type:func -func_80AEFF40 = 0x809651CC; // type:func -func_80AEFF94 = 0x80965228; // type:func -EnRu1_Update = 0x809652C4; // type:func -EnRu1_Init = 0x8096530C; // type:func -func_80AF0278 = 0x80965448; // type:func -EnRu1_OverrideLimbDraw = 0x809654B8; // type:func -EnRu1_PostLimbDraw = 0x80965524; // type:func -EnRu1_DrawNothing = 0x809655B0; // type:func -EnRu1_DrawOpa = 0x809655C0; // type:func -EnRu1_DrawXlu = 0x80965764; // type:func -EnRu1_Draw = 0x80965904; // type:func -BossFd2_SpawnDebris = 0x80967460; // type:func -BossFd2_SpawnFireBreath = 0x80967538; // type:func -BossFd2_SpawnEmber = 0x8096764C; // type:func -BossFd2_SpawnSkullPiece = 0x80967720; // type:func -BossFd2_SpawnDust = 0x809677F8; // type:func -BossFd2_Init = 0x80967890; // type:func -BossFd2_Destroy = 0x8096798C; // type:func -BossFd2_SetupEmerge = 0x809679CC; // type:func -BossFd2_Emerge = 0x80967AC4; // type:func -BossFd2_SetupIdle = 0x80967E04; // type:func -BossFd2_Idle = 0x80967EAC; // type:func -BossFd2_SetupBurrow = 0x80968000; // type:func -BossFd2_Burrow = 0x80968078; // type:func -BossFd2_SetupBreatheFire = 0x80968148; // type:func -BossFd2_BreatheFire = 0x809681AC; // type:func -BossFd2_SetupClawSwipe = 0x809686F0; // type:func -BossFd2_ClawSwipe = 0x80968750; // type:func -BossFd2_SetupVulnerable = 0x809687C8; // type:func -BossFd2_Vulnerable = 0x80968824; // type:func -BossFd2_SetupDamaged = 0x80968A7C; // type:func -BossFd2_Damaged = 0x80968AD8; // type:func -BossFd2_SetupDeath = 0x80968C08; // type:func -BossFd2_UpdateCamera = 0x80968C98; // type:func -BossFd2_Death = 0x80968E08; // type:func -BossFd2_Wait = 0x8096948C; // type:func -BossFd2_CollisionCheck = 0x809694D4; // type:func -BossFd2_UpdateFace = 0x80969974; // type:func -BossFd2_Update = 0x80969AE0; // type:func -BossFd2_OverrideLimbDraw = 0x80969C94; // type:func -BossFd2_PostLimbDraw = 0x80969E88; // type:func -BossFd2_UpdateMane = 0x80969F30; // type:func -BossFd2_DrawMane = 0x8096A500; // type:func -BossFd2_Draw = 0x8096A944; // type:func -EnFdFire_UpdatePos = 0x8096B190; // type:func -EnFdFire_CheckCollider = 0x8096B258; // type:func -EnFdFire_Init = 0x8096B2BC; // type:func -EnFdFire_Destroy = 0x8096B3C4; // type:func -func_80A0E70C = 0x8096B3F0; // type:func -EnFdFire_WaitToDie = 0x8096B52C; // type:func -EnFdFire_DanceTowardsPlayer = 0x8096B568; // type:func -EnFdFire_Disappear = 0x8096B718; // type:func -EnFdFire_Update = 0x8096B7CC; // type:func -EnFdFire_Draw = 0x8096B8C8; // type:func -EnDh_SetupAction = 0x8096BEA0; // type:func -EnDh_Init = 0x8096BEAC; // type:func -EnDh_Destroy = 0x8096BFE8; // type:func -EnDh_SpawnDebris = 0x8096C030; // type:func -EnDh_SetupWait = 0x8096C1C8; // type:func -EnDh_Wait = 0x8096C27C; // type:func -EnDh_SetupWalk = 0x8096C4A0; // type:func -EnDh_Walk = 0x8096C53C; // type:func -EnDh_SetupRetreat = 0x8096C644; // type:func -EnDh_Retreat = 0x8096C6A8; // type:func -EnDh_SetupAttack = 0x8096C734; // type:func -EnDh_Attack = 0x8096C794; // type:func -EnDh_SetupBurrow = 0x8096CAA4; // type:func -EnDh_Burrow = 0x8096CB28; // type:func -EnDh_SetupDamage = 0x8096CCB8; // type:func -EnDh_Damage = 0x8096CD38; // type:func -EnDh_SetupDeath = 0x8096CE60; // type:func -EnDh_Death = 0x8096CEE8; // type:func -EnDh_CollisionCheck = 0x8096D018; // type:func -EnDh_Update = 0x8096D168; // type:func -EnDh_PostLimbDraw = 0x8096D318; // type:func -EnDh_Draw = 0x8096D3A8; // type:func -EnDha_SetupAction = 0x8096D970; // type:func -EnDha_Init = 0x8096D97C; // type:func -EnDha_Destroy = 0x8096DA98; // type:func -EnDha_SetupWait = 0x8096DAC4; // type:func -EnDha_Wait = 0x8096DB4C; // type:func -EnDha_SetupTakeDamage = 0x8096E05C; // type:func -EnDha_TakeDamage = 0x8096E088; // type:func -EnDha_SetupDeath = 0x8096E150; // type:func -EnDha_Die = 0x8096E1C0; // type:func -EnDha_UpdateHealth = 0x8096E37C; // type:func -EnDha_Update = 0x8096E470; // type:func -EnDha_OverrideLimbDraw = 0x8096E518; // type:func -EnDha_PostLimbDraw = 0x8096E5B8; // type:func -EnDha_Draw = 0x8096E6D0; // type:func -EnRl_Destroy = 0x8096E970; // type:func -func_80AE72D0 = 0x8096E994; // type:func -func_80AE744C = 0x8096EA1C; // type:func -func_80AE7494 = 0x8096EA64; // type:func -func_80AE74B4 = 0x8096EA88; // type:func -func_80AE74FC = 0x8096EAD4; // type:func -func_80AE7544 = 0x8096EB20; // type:func -func_80AE7590 = 0x8096EB6C; // type:func -func_80AE7668 = 0x8096EC4C; // type:func -func_80AE7698 = 0x8096EC80; // type:func -func_80AE772C = 0x8096ED14; // type:func -func_80AE7798 = 0x8096ED80; // type:func -func_80AE77B8 = 0x8096EDA0; // type:func -func_80AE77F8 = 0x8096EDE8; // type:func -func_80AE7838 = 0x8096EE2C; // type:func -func_80AE7878 = 0x8096EE74; // type:func -func_80AE78D4 = 0x8096EECC; // type:func -func_80AE7954 = 0x8096EF4C; // type:func -func_80AE79A4 = 0x8096EF9C; // type:func -func_80AE7AF8 = 0x8096F0F0; // type:func -func_80AE7BF8 = 0x8096F1FC; // type:func -func_80AE7C64 = 0x8096F268; // type:func -func_80AE7C94 = 0x8096F288; // type:func -func_80AE7CE8 = 0x8096F2D0; // type:func -func_80AE7D40 = 0x8096F314; // type:func -func_80AE7D94 = 0x8096F35C; // type:func -EnRl_Update = 0x8096F4A4; // type:func -EnRl_Init = 0x8096F4EC; // type:func -func_80AE7FD0 = 0x8096F558; // type:func -func_80AE7FDC = 0x8096F568; // type:func -EnRl_Draw = 0x8096F69C; // type:func -EnEncount1_Init = 0x8096F850; // type:func -EnEncount1_SpawnLeevers = 0x8096F984; // type:func -EnEncount1_SpawnTektites = 0x8096FCE0; // type:func -EnEncount1_SpawnStalchildOrWolfos = 0x8096FE78; // type:func -EnEncount1_Update = 0x809702CC; // type:func -DemoDu_Destroy = 0x809703B0; // type:func -DemoDu_UpdateEyes = 0x809703D4; // type:func -DemoDu_SetEyeTexIndex = 0x8097045C; // type:func -DemoDu_SetMouthTexIndex = 0x80970474; // type:func -DemoDu_UpdateSkelAnime = 0x8097048C; // type:func -DemoDu_UpdateBgCheckInfo = 0x809704B0; // type:func -DemoDu_GetCue = 0x809704F8; // type:func -DemoDu_CheckForCue = 0x80970520; // type:func -DemoDu_CheckForNoCue = 0x8097056C; // type:func -DemoDu_SetStartPosRotFromCue = 0x809705B8; // type:func -func_80969DDC = 0x80970638; // type:func -DemoDu_InitCs_FireMedallion = 0x809706C8; // type:func -DemoDu_CsFireMedallion_SpawnDoorWarp = 0x80970738; // type:func -func_80969F38 = 0x80970794; // type:func -func_80969FB4 = 0x80970810; // type:func -DemoDu_CsFireMedallion_AdvanceTo01 = 0x80970830; // type:func -DemoDu_CsFireMedallion_AdvanceTo02 = 0x809708C8; // type:func -DemoDu_CsFireMedallion_AdvanceTo03 = 0x80970918; // type:func -DemoDu_CsFireMedallion_AdvanceTo04 = 0x80970944; // type:func -DemoDu_CsFireMedallion_AdvanceTo05 = 0x809709D8; // type:func -DemoDu_CsFireMedallion_AdvanceTo06 = 0x80970A44; // type:func -DemoDu_UpdateCs_FM_00 = 0x80970A90; // type:func -DemoDu_UpdateCs_FM_01 = 0x80970AB0; // type:func -DemoDu_UpdateCs_FM_02 = 0x80970AD0; // type:func -DemoDu_UpdateCs_FM_03 = 0x80970B04; // type:func -DemoDu_UpdateCs_FM_04 = 0x80970B44; // type:func -DemoDu_UpdateCs_FM_05 = 0x80970B7C; // type:func -DemoDu_UpdateCs_FM_06 = 0x80970BBC; // type:func -DemoDu_InitCs_GoronsRuby = 0x80970BE8; // type:func -DemoDu_CsPlaySfx_GoronLanding = 0x80970C38; // type:func -DemoDu_CsPlaySfx_DaruniaFalling = 0x80970C60; // type:func -DemoDu_CsPlaySfx_DaruniaHitsLink = 0x80970C90; // type:func -DemoDu_CsPlaySfx_HitBreast = 0x80970CE8; // type:func -DemoDu_CsPlaySfx_LinkEscapeFromGorons = 0x80970D10; // type:func -DemoDu_CsPlaySfx_LinkSurprised = 0x80970D68; // type:func -DemoDu_CsGoronsRuby_UpdateFaceTextures = 0x80970DC0; // type:func -func_8096A630 = 0x80970EC8; // type:func -DemoDu_CsGoronsRuby_SpawnDustWhenHittingLink = 0x80970F7C; // type:func -DemoDu_CsGoronsRuby_DaruniaFalling = 0x80971210; // type:func -DemoDu_CsGoronsRuby_AdvanceTo01 = 0x809712EC; // type:func -DemoDu_CsGoronsRuby_AdvanceTo02 = 0x80971300; // type:func -DemoDu_CsGoronsRuby_AdvanceTo03 = 0x809713A4; // type:func -DemoDu_CsGoronsRuby_AdvanceTo04 = 0x809713F8; // type:func -DemoDu_CsGoronsRuby_AdvanceTo05 = 0x80971430; // type:func -DemoDu_CsGoronsRuby_AdvanceTo06 = 0x8097149C; // type:func -DemoDu_CsGoronsRuby_AdvanceTo07 = 0x80971534; // type:func -DemoDu_CsGoronsRuby_AdvanceTo08 = 0x809715A0; // type:func -DemoDu_CsGoronsRuby_AdvanceTo09 = 0x80971634; // type:func -DemoDu_CsGoronsRuby_AdvanceTo10 = 0x809716A4; // type:func -DemoDu_CsGoronsRuby_AdvanceTo11 = 0x80971710; // type:func -DemoDu_CsGoronsRuby_AdvanceTo12 = 0x809717A4; // type:func -DemoDu_CsGoronsRuby_AdvanceTo13 = 0x80971810; // type:func -DemoDu_UpdateCs_GR_00 = 0x809718A0; // type:func -DemoDu_UpdateCs_GR_01 = 0x809718D4; // type:func -DemoDu_UpdateCs_GR_02 = 0x80971910; // type:func -DemoDu_UpdateCs_GR_03 = 0x8097196C; // type:func -DemoDu_UpdateCs_GR_04 = 0x809719AC; // type:func -DemoDu_UpdateCs_GR_05 = 0x809719FC; // type:func -DemoDu_UpdateCs_GR_06 = 0x80971A48; // type:func -DemoDu_UpdateCs_GR_07 = 0x80971AA8; // type:func -DemoDu_UpdateCs_GR_08 = 0x80971AF4; // type:func -DemoDu_UpdateCs_GR_09 = 0x80971B58; // type:func -DemoDu_UpdateCs_GR_10 = 0x80971BB8; // type:func -DemoDu_UpdateCs_GR_11 = 0x80971C04; // type:func -DemoDu_UpdateCs_GR_12 = 0x80971C54; // type:func -DemoDu_UpdateCs_GR_13 = 0x80971CA0; // type:func -DemoDu_InitCs_AfterGanon = 0x80971CE8; // type:func -DemoDu_CsPlaySfx_WhiteOut = 0x80971D88; // type:func -DemoDu_CsAfterGanon_SpawnDemo6K = 0x80971DA8; // type:func -DemoDu_CsAfterGanon_AdvanceTo01 = 0x80971E28; // type:func -DemoDu_CsAfterGanon_AdvanceTo02 = 0x80971E7C; // type:func -DemoDu_CsAfterGanon_BackTo01 = 0x80971FD0; // type:func -DemoDu_UpdateCs_AG_00 = 0x8097206C; // type:func -DemoDu_UpdateCs_AG_01 = 0x8097208C; // type:func -DemoDu_UpdateCs_AG_02 = 0x809720D4; // type:func -DemoDu_Draw_02 = 0x8097211C; // type:func -DemoDu_InitCs_Credits = 0x809722D8; // type:func -DemoDu_CsCredits_UpdateShadowAlpha = 0x80972344; // type:func -DemoDu_CsCredits_AdvanceTo01 = 0x809723D0; // type:func -DemoDu_CsCredits_AdvanceTo02 = 0x80972408; // type:func -DemoDu_CsCredits_AdvanceTo03 = 0x80972454; // type:func -DemoDu_CsCredits_AdvanceTo04 = 0x80972494; // type:func -DemoDu_CsCredits_BackTo02 = 0x809724D4; // type:func -DemoDu_CsCredits_HandleCues = 0x8097251C; // type:func -DemoDu_UpdateCs_CR_00 = 0x809725C8; // type:func -DemoDu_UpdateCs_CR_01 = 0x809725E8; // type:func -DemoDu_UpdateCs_CR_02 = 0x80972634; // type:func -DemoDu_UpdateCs_CR_03 = 0x8097267C; // type:func -DemoDu_UpdateCs_CR_04 = 0x809726C4; // type:func -DemoDu_Update = 0x80972708; // type:func -DemoDu_Init = 0x80972750; // type:func -DemoDu_Draw_NoDraw = 0x809727F4; // type:func -DemoDu_Draw_01 = 0x80972804; // type:func -DemoDu_Draw = 0x809729AC; // type:func -func_80984BE0 = 0x80973B90; // type:func -DemoIm_InitCollider = 0x80973C18; // type:func -DemoIm_DestroyCollider = 0x80973C64; // type:func -DemoIm_UpdateCollider = 0x80973C90; // type:func -func_80984DB8 = 0x80973CD4; // type:func -func_80984E58 = 0x80973D78; // type:func -func_80984F10 = 0x80973E30; // type:func -func_80984F94 = 0x80973EB8; // type:func -DemoIm_UpdateBgCheckInfo = 0x80973F40; // type:func -DemoIm_UpdateSkelAnime = 0x80973F88; // type:func -DemoIm_IsCutsceneIdle = 0x80973FAC; // type:func -DemoIm_GetCue = 0x80973FCC; // type:func -func_809850E8 = 0x80974018; // type:func -func_80985134 = 0x80974064; // type:func -func_80985180 = 0x809740B0; // type:func -func_80985200 = 0x80974130; // type:func -DemoIm_ChangeAnim = 0x809741B0; // type:func -func_80985310 = 0x80974240; // type:func -func_80985358 = 0x80974288; // type:func -func_809853B4 = 0x809742E4; // type:func -func_80985430 = 0x80974360; // type:func -func_8098544C = 0x80974380; // type:func -func_809854DC = 0x8097441C; // type:func -func_8098557C = 0x809744BC; // type:func -func_809855A8 = 0x809744E8; // type:func -func_80985640 = 0x80974580; // type:func -func_809856AC = 0x809745EC; // type:func -func_809856F8 = 0x80974638; // type:func -func_80985718 = 0x80974658; // type:func -func_80985738 = 0x80974678; // type:func -func_80985770 = 0x809746B4; // type:func -func_809857B0 = 0x809746FC; // type:func -func_809857F0 = 0x80974740; // type:func -func_80985830 = 0x80974788; // type:func -func_80985860 = 0x809747BC; // type:func -func_809858A8 = 0x80974800; // type:func -DemoIm_SpawnLightBall = 0x80974820; // type:func -func_80985948 = 0x809748A0; // type:func -func_809859E0 = 0x8097493C; // type:func -func_80985B34 = 0x80974A90; // type:func -func_80985C10 = 0x80974B74; // type:func -func_80985C40 = 0x80974B94; // type:func -func_80985C94 = 0x80974BDC; // type:func -DemoIm_DrawTranslucent = 0x80974C24; // type:func -func_80985E60 = 0x80974D6C; // type:func -func_80985EAC = 0x80974DB8; // type:func -func_80985EF4 = 0x80974E00; // type:func -func_80985F54 = 0x80974E60; // type:func -func_80985F64 = 0x80974E74; // type:func -func_80985FE8 = 0x80974EF8; // type:func -func_8098604C = 0x80974F5C; // type:func -func_809860C8 = 0x80974FD8; // type:func -func_809860DC = 0x80974FF0; // type:func -func_80986148 = 0x8097505C; // type:func -func_809861C4 = 0x809750D8; // type:func -func_8098629C = 0x8097519C; // type:func -func_809862E0 = 0x809751E0; // type:func -func_809863BC = 0x809752A8; // type:func -func_809863DC = 0x809752C8; // type:func -func_80986430 = 0x80975324; // type:func -func_80986494 = 0x80975390; // type:func -func_809864D4 = 0x809753D8; // type:func -func_8098652C = 0x80975438; // type:func -func_80986570 = 0x8097547C; // type:func -func_809865F8 = 0x80975504; // type:func -func_80986700 = 0x80975614; // type:func -func_80986710 = 0x80975628; // type:func -func_80986794 = 0x809756AC; // type:func -func_8098680C = 0x80975724; // type:func -func_809868E8 = 0x809757EC; // type:func -func_80986908 = 0x8097580C; // type:func -func_80986948 = 0x80975854; // type:func -func_809869B0 = 0x809758C4; // type:func -func_809869F8 = 0x80975908; // type:func -func_80986A5C = 0x8097596C; // type:func -func_80986AD0 = 0x809759E0; // type:func -func_80986B2C = 0x80975A3C; // type:func -func_80986BA0 = 0x80975AB0; // type:func -func_80986BE4 = 0x80975AF4; // type:func -func_80986BF8 = 0x80975B08; // type:func -func_80986C30 = 0x80975B40; // type:func -func_80986CC8 = 0x80975BE4; // type:func -func_80986CFC = 0x80975C18; // type:func -func_80986D40 = 0x80975C60; // type:func -func_80986DC8 = 0x80975CC8; // type:func -func_80986E20 = 0x80975D24; // type:func -func_80986E40 = 0x80975D44; // type:func -func_80986EAC = 0x80975DB8; // type:func -func_80986F08 = 0x80975E1C; // type:func -func_80986F28 = 0x80975E3C; // type:func -func_80986F88 = 0x80975EA4; // type:func -func_80986FA8 = 0x80975EC8; // type:func -func_80987018 = 0x80975F40; // type:func -func_80987064 = 0x80975F88; // type:func -func_809870F0 = 0x80976014; // type:func -func_80987128 = 0x8097604C; // type:func -func_80987174 = 0x80976098; // type:func -func_809871B4 = 0x809760D8; // type:func -func_809871E8 = 0x8097610C; // type:func -func_80987288 = 0x80976198; // type:func -func_809872A8 = 0x809761B8; // type:func -func_809872F0 = 0x80976204; // type:func -func_80987330 = 0x8097624C; // type:func -DemoIm_Update = 0x80976290; // type:func -DemoIm_Init = 0x809762D8; // type:func -DemoIm_Destroy = 0x80976400; // type:func -DemoIm_OverrideLimbDraw = 0x80976420; // type:func -DemoIm_PostLimbDraw = 0x809764D0; // type:func -DemoIm_DrawNothing = 0x8097655C; // type:func -DemoIm_DrawSolid = 0x8097656C; // type:func -DemoIm_Draw = 0x809766B0; // type:func -DemoTreLgt_Init = 0x80977B00; // type:func -DemoTreLgt_Destroy = 0x80977B5C; // type:func -func_80993754 = 0x80977B88; // type:func -func_8099375C = 0x80977B94; // type:func -func_809937B4 = 0x80977BEC; // type:func -func_80993848 = 0x80977C84; // type:func -DemoTreLgt_Update = 0x80977F38; // type:func -DemoTreLgt_OverrideLimbDraw = 0x80977F6C; // type:func -DemoTreLgt_Draw = 0x809780C0; // type:func -EnFw_DoBounce = 0x80978210; // type:func -EnFw_PlayerInRange = 0x809782D8; // type:func -EnFw_GetPosAdjAroundCircle = 0x809783D4; // type:func -EnFw_CheckCollider = 0x809784A8; // type:func -EnFw_SpawnDust = 0x80978568; // type:func -EnFw_Init = 0x809787B0; // type:func -EnFw_Destroy = 0x809788B8; // type:func -EnFw_Bounce = 0x809788E4; // type:func -EnFw_Run = 0x80978950; // type:func -EnFw_TurnToParentInitPos = 0x80978F24; // type:func -EnFw_JumpToParentInitPos = 0x80979018; // type:func -EnFw_Update = 0x809790CC; // type:func -EnFw_OverrideLimbDraw = 0x809791AC; // type:func -EnFw_PostLimbDraw = 0x809791C8; // type:func -EnFw_Draw = 0x80979264; // type:func -EnFw_SpawnEffectDust = 0x809792EC; // type:func -EnFw_UpdateEffects = 0x80979390; // type:func -EnFw_DrawEffects = 0x8097949C; // type:func -BgVbSima_Init = 0x809799C0; // type:func -BgVbSima_Destroy = 0x80979A28; // type:func -BgVbSima_SpawnEmber = 0x80979A5C; // type:func -BgVbSima_Update = 0x80979B28; // type:func -BgVbSima_Draw = 0x80979F88; // type:func -EnVbBall_Init = 0x8097A0D0; // type:func -EnVbBall_Destroy = 0x8097A250; // type:func -EnVbBall_SpawnDebris = 0x8097A28C; // type:func -EnVbBall_SpawnDust = 0x8097A364; // type:func -EnVbBall_UpdateBones = 0x8097A404; // type:func -EnVbBall_Update = 0x8097A6E8; // type:func -EnVbBall_Draw = 0x8097AEB4; // type:func -BgHakaMegane_Init = 0x8097B270; // type:func -BgHakaMegane_Destroy = 0x8097B328; // type:func -func_8087DB24 = 0x8097B35C; // type:func -func_8087DBF0 = 0x8097B42C; // type:func -BgHakaMegane_DoNothing = 0x8097B4A0; // type:func -BgHakaMegane_Update = 0x8097B4B0; // type:func -BgHakaMegane_Draw = 0x8097B4D4; // type:func -BgHakaMeganeBG_Init = 0x8097B670; // type:func -BgHakaMeganeBG_Destroy = 0x8097B80C; // type:func -func_8087DFF8 = 0x8097B840; // type:func -func_8087E040 = 0x8097B888; // type:func -func_8087E10C = 0x8097B954; // type:func -func_8087E1E0 = 0x8097BA28; // type:func -func_8087E258 = 0x8097BAA0; // type:func -func_8087E288 = 0x8097BAD0; // type:func -func_8087E2D8 = 0x8097BB20; // type:func -func_8087E34C = 0x8097BB94; // type:func -BgHakaMeganeBG_Update = 0x8097BBA4; // type:func -BgHakaMeganeBG_Draw = 0x8097BBC8; // type:func -BgHakaShip_Init = 0x8097BD30; // type:func -BgHakaShip_Destroy = 0x8097BE74; // type:func -BgHakaShip_ChildUpdatePosition = 0x8097BEB4; // type:func -BgHakaShip_WaitForSong = 0x8097BF10; // type:func -BgHakaShip_CutsceneStationary = 0x8097BF88; // type:func -BgHakaShip_Move = 0x8097C024; // type:func -BgHakaShip_SetupCrash = 0x8097C1E8; // type:func -BgHakaShip_CrashShake = 0x8097C244; // type:func -BgHakaShip_CrashFall = 0x8097C2D4; // type:func -BgHakaShip_Update = 0x8097C394; // type:func -BgHakaShip_Draw = 0x8097C3D4; // type:func -BgHakaSgami_Init = 0x8097C770; // type:func -BgHakaSgami_Destroy = 0x8097CA18; // type:func -BgHakaSgami_SetupSpin = 0x8097CA78; // type:func -BgHakaSgami_Spin = 0x8097CAF0; // type:func -BgHakaSgami_Update = 0x8097D004; // type:func -BgHakaSgami_Draw = 0x8097D058; // type:func -EnHeishi2_Init = 0x8097D390; // type:func -EnHeishi2_Destroy = 0x8097D610; // type:func -EnHeishi2_DoNothing1 = 0x8097D654; // type:func -EnHeishi_DoNothing2 = 0x8097D664; // type:func -func_80A531E4 = 0x8097D674; // type:func -func_80A53278 = 0x8097D708; // type:func -func_80A5344C = 0x8097D888; // type:func -func_80A53538 = 0x8097D974; // type:func -func_80A535BC = 0x8097D9FC; // type:func -func_80A53638 = 0x8097DA78; // type:func -func_80A5372C = 0x8097DB64; // type:func -func_80A53850 = 0x8097DC88; // type:func -func_80A53908 = 0x8097DD40; // type:func -func_80A5399C = 0x8097DDD4; // type:func -func_80A53AD4 = 0x8097DEF8; // type:func -func_80A53C0C = 0x8097E034; // type:func -func_80A53C90 = 0x8097E0BC; // type:func -func_80A53D0C = 0x8097E138; // type:func -func_80A53DF8 = 0x8097E21C; // type:func -func_80A53F30 = 0x8097E354; // type:func -func_80A54038 = 0x8097E45C; // type:func -func_80A540C0 = 0x8097E4E8; // type:func -func_80A541FC = 0x8097E624; // type:func -func_80A5427C = 0x8097E6A8; // type:func -func_80A54320 = 0x8097E74C; // type:func -func_80A543A0 = 0x8097E7CC; // type:func -func_80A544AC = 0x8097E8D8; // type:func -func_80A5455C = 0x8097E988; // type:func -func_80A546DC = 0x8097EAFC; // type:func -func_80A5475C = 0x8097EB7C; // type:func -func_80A54954 = 0x8097ED74; // type:func -func_80A549E8 = 0x8097EE08; // type:func -EnHeishi2_Update = 0x8097EE98; // type:func -EnHeishi2_OverrideLimbDraw = 0x8097EFE4; // type:func -EnHeishi2_PostLimbDraw = 0x8097F05C; // type:func -EnHeishi2_DrawKingGuard = 0x8097F094; // type:func -EnHeishi2_Draw = 0x8097F108; // type:func -EnEncount2_Init = 0x8097F590; // type:func -EnEncount2_Wait = 0x8097F604; // type:func -EnEncount2_SpawnRocks = 0x8097F85C; // type:func -EnEncount2_Update = 0x8097FE24; // type:func -EnEncount2_Draw = 0x809801F0; // type:func -EnEncount2_SpawnEffect = 0x80980210; // type:func -EnEncount2_UpdateEffects = 0x809802C4; // type:func -EnEncount2_DrawEffects = 0x80980498; // type:func -EnFireRock_Init = 0x809807C0; // type:func -EnFireRock_Destroy = 0x80980BB0; // type:func -EnFireRock_Fall = 0x80980C14; // type:func -EnFireRock_SpawnMoreBrokenPieces = 0x80980F68; // type:func -FireRock_WaitSpawnRocksFromCeiling = 0x809810E8; // type:func -FireRock_WaitOnFloor = 0x809811D8; // type:func -EnFireRock_Update = 0x809812BC; // type:func -EnFireRock_Draw = 0x80981568; // type:func -EnBrob_Init = 0x809818D0; // type:func -EnBrob_Destroy = 0x80981B44; // type:func -EnBrob_SetupIdle = 0x80981B9C; // type:func -EnBrob_SetupMoveUp = 0x80981C04; // type:func -EnBrob_SetupWobble = 0x80981C64; // type:func -EnBrob_SetupStunned = 0x80981CB8; // type:func -EnBrob_SetupMoveDown = 0x80981D4C; // type:func -EnBrob_SetupShock = 0x80981DCC; // type:func -EnBrob_Idle = 0x80981E18; // type:func -EnBrob_MoveUp = 0x80981ED8; // type:func -EnBrob_Wobble = 0x80981FDC; // type:func -EnBrob_Stunned = 0x8098207C; // type:func -EnBrob_MoveDown = 0x80982118; // type:func -EnBrob_Shock = 0x8098221C; // type:func -EnBrob_Update = 0x80982434; // type:func -EnBrob_PostLimbDraw = 0x809826D0; // type:func -EnBrob_Draw = 0x809827A4; // type:func -MirRay_SetupCollider = 0x809829C0; // type:func -MirRay_MakeShieldLight = 0x80982A88; // type:func -MirRay_Init = 0x80982C2C; // type:func -MirRay_Destroy = 0x80982EC4; // type:func -MirRay_Update = 0x80982F3C; // type:func -MirRay_SetIntensity = 0x80983028; // type:func -MirRay_SetupReflectionPolys = 0x809831DC; // type:func -MirRay_RemoveSimilarReflections = 0x809833B8; // type:func -MirRay_ReflectedBeam = 0x809834BC; // type:func -MirRay_Draw = 0x80983A2C; // type:func -MirRay_CheckInFrustum = 0x80983D1C; // type:func -func_808B1AE0 = 0x80984280; // type:func -func_808B1BA0 = 0x80984340; // type:func -func_808B1BEC = 0x8098438C; // type:func -func_808B1C70 = 0x80984418; // type:func -func_808B1CEC = 0x80984494; // type:func -func_808B1D18 = 0x809844C0; // type:func -func_808B1D44 = 0x809844EC; // type:func -BgSpot09Obj_Init = 0x8098452C; // type:func -BgSpot09Obj_Destroy = 0x80984594; // type:func -BgSpot09Obj_Update = 0x809845D4; // type:func -BgSpot09Obj_Draw = 0x809845E4; // type:func -func_808B8910 = 0x80984790; // type:func -func_808B8A5C = 0x80984848; // type:func -func_808B8A98 = 0x80984884; // type:func -func_808B8B08 = 0x809848F4; // type:func -func_808B8B38 = 0x80984928; // type:func -func_808B8BB4 = 0x809849A4; // type:func -func_808B8C90 = 0x80984A88; // type:func -func_808B8CC8 = 0x80984AC4; // type:func -BgSpot18Obj_Init = 0x80984B18; // type:func -BgSpot18Obj_Destroy = 0x80984B74; // type:func -func_808B8DC0 = 0x80984BA8; // type:func -func_808B8DD0 = 0x80984BBC; // type:func -func_808B8DDC = 0x80984BCC; // type:func -func_808B8E20 = 0x80984C10; // type:func -func_808B8E64 = 0x80984C54; // type:func -func_808B8E7C = 0x80984C70; // type:func -func_808B8EE0 = 0x80984CD4; // type:func -func_808B8F08 = 0x80984D00; // type:func -func_808B9030 = 0x80984E2C; // type:func -func_808B9040 = 0x80984E40; // type:func -BgSpot18Obj_Update = 0x80984E60; // type:func -BgSpot18Obj_Draw = 0x80984E94; // type:func -BossVa_SetupAction = 0x80985060; // type:func -BossVa_AttachToBody = 0x8098506C; // type:func -BossVa_BloodDroplets = 0x809852B0; // type:func -BossVa_BloodSplatter = 0x809853B0; // type:func -BossVa_Gore = 0x809854DC; // type:func -BossVa_Spark = 0x8098560C; // type:func -BossVa_Tumor = 0x80985790; // type:func -BossVa_SetSparkEnv = 0x80985914; // type:func -BossVa_SetDeathEnv = 0x80985960; // type:func -BossVa_FindBoomerang = 0x809859E0; // type:func -BossVa_KillBari = 0x80985A20; // type:func -BossVa_Init = 0x80985C0C; // type:func -BossVa_Destroy = 0x8098645C; // type:func -BossVa_SetupIntro = 0x809864AC; // type:func -BossVa_BodyIntro = 0x8098653C; // type:func -BossVa_SetupBodyPhase1 = 0x8098755C; // type:func -BossVa_BodyPhase1 = 0x80987600; // type:func -BossVa_SetupBodyPhase2 = 0x80987898; // type:func -BossVa_BodyPhase2 = 0x809879C4; // type:func -BossVa_SetupBodyPhase3 = 0x80987EC8; // type:func -BossVa_BodyPhase3 = 0x80987F04; // type:func -BossVa_SetupBodyPhase4 = 0x8098856C; // type:func -BossVa_BodyPhase4 = 0x80988620; // type:func -BossVa_SetupBodyDeath = 0x80989128; // type:func -BossVa_BodyDeath = 0x809891C0; // type:func -BossVa_SetupSupportIntro = 0x80989D18; // type:func -BossVa_SupportIntro = 0x80989D90; // type:func -BossVa_SetupSupportAttached = 0x80989EB4; // type:func -BossVa_SupportAttached = 0x80989F38; // type:func -BossVa_SetupSupportCut = 0x8098A160; // type:func -BossVa_SupportCut = 0x8098A228; // type:func -BossVa_SetupStump = 0x8098A6FC; // type:func -BossVa_Stump = 0x8098A780; // type:func -BossVa_SetupZapperIntro = 0x8098A818; // type:func -BossVa_ZapperIntro = 0x8098A8AC; // type:func -BossVa_SetupZapperAttack = 0x8098A96C; // type:func -BossVa_ZapperAttack = 0x8098AA00; // type:func -BossVa_SetupZapperDamaged = 0x8098B434; // type:func -BossVa_ZapperDamaged = 0x8098B53C; // type:func -BossVa_SetupZapperDeath = 0x8098B650; // type:func -BossVa_ZapperDeath = 0x8098B724; // type:func -BossVa_SetupZapperEnraged = 0x8098BC4C; // type:func -BossVa_ZapperEnraged = 0x8098BCD4; // type:func -BossVa_SetupZapperHold = 0x8098C42C; // type:func -BossVa_ZapperHold = 0x8098C4AC; // type:func -BossVa_SetupBariIntro = 0x8098C5B8; // type:func -BossVa_BariIntro = 0x8098C6C8; // type:func -BossVa_SetupBariPhase3Attack = 0x8098CC20; // type:func -BossVa_BariPhase3Attack = 0x8098CCC8; // type:func -BossVa_SetupBariPhase2Attack = 0x8098D0C8; // type:func -BossVa_BariPhase2Attack = 0x8098D170; // type:func -BossVa_SetupBariPhase3Stunned = 0x8098D788; // type:func -BossVa_BariPhase3Stunned = 0x8098D7E4; // type:func -BossVa_SetupBariDeath = 0x8098DA00; // type:func -BossVa_BariDeath = 0x8098DA58; // type:func -BossVa_SetupDoor = 0x8098DA8C; // type:func -BossVa_Door = 0x8098DADC; // type:func -BossVa_Update = 0x8098DB50; // type:func -BossVa_BodyOverrideLimbDraw = 0x8098DD5C; // type:func -BossVa_BodyPostLimbDraw = 0x8098DF00; // type:func -BossVa_SupportOverrideLimbDraw = 0x8098E400; // type:func -BossVa_SupportPostLimbDraw = 0x8098E444; // type:func -BossVa_ZapperOverrideLimbDraw = 0x8098E694; // type:func -BossVa_ZapperPostLimbDraw = 0x8098E870; // type:func -BossVa_BariOverrideLimbDraw = 0x8098ECD0; // type:func -BossVa_BariPostLimbDraw = 0x8098ED60; // type:func -BossVa_Draw = 0x8098EEE8; // type:func -BossVa_UpdateEffects = 0x8098F4DC; // type:func -BossVa_DrawEffects = 0x8098FE7C; // type:func -BossVa_SpawnSpark = 0x80990C20; // type:func -BossVa_SpawnSparkBall = 0x80990F10; // type:func -BossVa_SpawnBloodDroplets = 0x8099109C; // type:func -BossVa_SpawnBloodSplatter = 0x80991268; // type:func -BossVa_SpawnTumor = 0x80991404; // type:func -BossVa_SpawnGore = 0x809915A8; // type:func -BossVa_SpawnZapperCharge = 0x809917C8; // type:func -BossVa_DrawDoor = 0x8099191C; // type:func -BgHakaTubo_Init = 0x8099C250; // type:func -BgHakaTubo_Destroy = 0x8099C34C; // type:func -BgHakaTubo_Idle = 0x8099C3A4; // type:func -BgHakaTubo_DropCollectible = 0x8099C610; // type:func -BgHakaTubo_Update = 0x8099C8D4; // type:func -BgHakaTubo_DrawFlameCircle = 0x8099C908; // type:func -BgHakaTubo_Draw = 0x8099CAAC; // type:func -BgHakaTrap_Init = 0x8099CC70; // type:func -BgHakaTrap_Destroy = 0x8099CF10; // type:func -func_8087FFC0 = 0x8099CF94; // type:func -func_808801B8 = 0x8099D194; // type:func -func_808802D8 = 0x8099D2B8; // type:func -func_80880484 = 0x8099D464; // type:func -func_808805C0 = 0x8099D5A0; // type:func -func_808806BC = 0x8099D69C; // type:func -func_808808F4 = 0x8099D8D4; // type:func -func_808809B0 = 0x8099D994; // type:func -func_808809E4 = 0x8099D9C8; // type:func -func_80880AE8 = 0x8099DAD4; // type:func -func_80880C0C = 0x8099DBF8; // type:func -BgHakaTrap_Update = 0x8099DC6C; // type:func -func_80880D68 = 0x8099DD5C; // type:func -BgHakaTrap_Draw = 0x8099DDF8; // type:func -BgHakaHuta_Init = 0x8099E240; // type:func -BgHakaHuta_Destroy = 0x8099E300; // type:func -BgHakaHuta_SpawnDust = 0x8099E334; // type:func -BgHakaHuta_PlaySfx = 0x8099E4F0; // type:func -BgHakaHuta_SpawnEnemies = 0x8099E57C; // type:func -BgHakaHuta_Open = 0x8099E844; // type:func -BgHakaHuta_SlideOpen = 0x8099E8F8; // type:func -func_8087D720 = 0x8099E9AC; // type:func -BgHakaHuta_DoNothing = 0x8099EB50; // type:func -BgHakaHuta_Update = 0x8099EB60; // type:func -BgHakaHuta_Draw = 0x8099EB84; // type:func -BgHakaZou_Init = 0x8099ECE0; // type:func -BgHakaZou_Destroy = 0x8099EFC8; // type:func -func_808828F4 = 0x8099F018; // type:func -BgHakaZou_Wait = 0x8099F194; // type:func -func_80882BDC = 0x8099F304; // type:func -func_80882CC4 = 0x8099F3EC; // type:func -func_80882E54 = 0x8099F57C; // type:func -func_80883000 = 0x8099F72C; // type:func -func_80883104 = 0x8099F830; // type:func -func_80883144 = 0x8099F870; // type:func -func_80883254 = 0x8099F980; // type:func -func_80883328 = 0x8099FA58; // type:func -func_808834D8 = 0x8099FC08; // type:func -BgHakaZou_DoNothing = 0x8099FC98; // type:func -BgHakaZou_Update = 0x8099FCA8; // type:func -BgHakaZou_Draw = 0x8099FCEC; // type:func -BgSpot17Funen_Init = 0x8099FED0; // type:func -BgSpot17Funen_Destroy = 0x8099FEF8; // type:func -BgSpot17Funen_Update = 0x8099FF08; // type:func -func_808B746C = 0x8099FF2C; // type:func -func_808B7478 = 0x8099FF3C; // type:func -EnSyatekiItm_Init = 0x809A0120; // type:func -EnSyatekiItm_Destroy = 0x809A0284; // type:func -EnSyatekiItm_Idle = 0x809A0294; // type:func -EnSyatekiItm_StartRound = 0x809A03A4; // type:func -EnSyatekiItm_SpawnTargets = 0x809A0520; // type:func -EnSyatekiItm_CheckTargets = 0x809A09A0; // type:func -EnSyatekiItm_CleanupGame = 0x809A0A44; // type:func -EnSyatekiItm_EndGame = 0x809A0ACC; // type:func -EnSyatekiItm_Update = 0x809A0B18; // type:func -EnSyatekiMan_Init = 0x809A0EC0; // type:func -EnSyatekiMan_Destroy = 0x809A0F74; // type:func -EnSyatekiMan_Start = 0x809A0F84; // type:func -EnSyatekiMan_SetupIdle = 0x809A1018; // type:func -EnSyatekiMan_Idle = 0x809A1070; // type:func -EnSyatekiMan_Talk = 0x809A10CC; // type:func -EnSyatekiMan_StopTalk = 0x809A1274; // type:func -EnSyatekiMan_StartGame = 0x809A131C; // type:func -EnSyatekiMan_WaitForGame = 0x809A13DC; // type:func -EnSyatekiMan_EndGame = 0x809A14F8; // type:func -EnSyatekiMan_GivePrize = 0x809A1748; // type:func -EnSyatekiMan_FinishPrize = 0x809A17B8; // type:func -EnSyatekiMan_RestartGame = 0x809A187C; // type:func -EnSyatekiMan_BlinkWait = 0x809A18E4; // type:func -EnSyatekiMan_Blink = 0x809A1918; // type:func -EnSyatekiMan_Update = 0x809A19B8; // type:func -EnSyatekiMan_OverrideLimbDraw = 0x809A1A58; // type:func -EnSyatekiMan_Draw = 0x809A1AE8; // type:func -EnTana_Init = 0x809A1C80; // type:func -EnTana_Destroy = 0x809A1CD0; // type:func -EnTana_Update = 0x809A1CE0; // type:func -EnTana_DrawWoodenShelves = 0x809A1CF0; // type:func -EnTana_DrawStoneShelves = 0x809A1D84; // type:func -EnNb_GetPath = 0x809A1F20; // type:func -EnNb_GetType = 0x809A1F34; // type:func -EnNb_UpdatePath = 0x809A1F44; // type:func -EnNb_SetupCollider = 0x809A2070; // type:func -EnNb_UpdateCollider = 0x809A20BC; // type:func -EnNb_Destroy = 0x809A2100; // type:func -func_80AB0FBC = 0x809A212C; // type:func -func_80AB1040 = 0x809A21B4; // type:func -func_80AB10C4 = 0x809A223C; // type:func -EnNb_UpdateEyes = 0x809A22E0; // type:func -func_80AB1284 = 0x809A2368; // type:func -EnNb_UpdateSkelAnime = 0x809A23B0; // type:func -EnNb_GetCue = 0x809A23D4; // type:func -EnNb_SetStartPosRotFromCue1 = 0x809A23FC; // type:func -func_80AB1390 = 0x809A247C; // type:func -func_80AB13D8 = 0x809A24C8; // type:func -EnNb_SetStartPosRotFromCue2 = 0x809A2514; // type:func -EnNb_SetCurrentAnim = 0x809A2594; // type:func -EnNb_SetChamberAnim = 0x809A2624; // type:func -EnNb_SpawnBlueWarp = 0x809A266C; // type:func -EnNb_GiveMedallion = 0x809A26C8; // type:func -EnNb_ComeUpImpl = 0x809A2744; // type:func -EnNb_SetupChamberCsImpl = 0x809A2764; // type:func -EnNb_SetupChamberWarpImpl = 0x809A2800; // type:func -EnNb_SetupDefaultChamberIdle = 0x809A2850; // type:func -EnNb_SetupArmRaise = 0x809A287C; // type:func -EnNb_SetupRaisedArmTransition = 0x809A2910; // type:func -EnNb_SetupMedallion = 0x809A297C; // type:func -EnNb_SetupChamberCs = 0x809A29C8; // type:func -EnNb_SetupChamberWarp = 0x809A29E8; // type:func -EnNb_ComeUp = 0x809A2A08; // type:func -func_80AB193C = 0x809A2A44; // type:func -EnNb_RaiseArm = 0x809A2A8C; // type:func -func_80AB19BC = 0x809A2AD0; // type:func -func_80AB19FC = 0x809A2B18; // type:func -EnNb_SetupLightArrowOrSealingCs = 0x809A2B4C; // type:func -EnNb_PlaySealingSfx = 0x809A2B90; // type:func -EnNb_InitializeDemo6K = 0x809A2BB0; // type:func -EnNb_SetupHide = 0x809A2C30; // type:func -EnNb_CheckToFade = 0x809A2C84; // type:func -EnNb_SetupLightOrb = 0x809A2DD8; // type:func -EnNb_Hide = 0x809A2E74; // type:func -EnNb_Fade = 0x809A2E94; // type:func -EnNb_CreateLightOrb = 0x809A2EDC; // type:func -EnNb_DrawTransparency = 0x809A2F24; // type:func -EnNb_InitKidnap = 0x809A306C; // type:func -EnNb_PlayCrySFX = 0x809A30C4; // type:func -EnNb_PlayAgonySFX = 0x809A30FC; // type:func -EnNb_SetPosInPortal = 0x809A3134; // type:func -EnNb_SetupCaptureCutsceneState = 0x809A3218; // type:func -EnNb_SetRaisedArmCaptureAnim = 0x809A324C; // type:func -EnNb_SetupLookAroundInKidnap = 0x809A32AC; // type:func -EnNb_SetupKidnap = 0x809A3320; // type:func -EnNb_CheckKidnapCsMode = 0x809A3398; // type:func -func_80AB23A8 = 0x809A3460; // type:func -EnNb_MovingInPortal = 0x809A3498; // type:func -EnNb_SuckedInByPortal = 0x809A34F4; // type:func -EnNb_SetupConfrontation = 0x809A3550; // type:func -EnNb_PlayKnuckleDefeatSFX = 0x809A3594; // type:func -EnNb_PlayKneelingOnGroundSFX = 0x809A35D8; // type:func -EnNb_PlayLookRightSFX = 0x809A363C; // type:func -EnNb_PlayLookLeftSFX = 0x809A3688; // type:func -EnNb_InitDemo6KInConfrontation = 0x809A36E0; // type:func -func_80AB2688 = 0x809A3758; // type:func -func_80AB26C8 = 0x809A3798; // type:func -func_80AB26DC = 0x809A37B0; // type:func -EnNb_SetupKneel = 0x809A3848; // type:func -EnNb_CheckIfKneeling = 0x809A38C4; // type:func -EnNb_SetupLookRight = 0x809A3930; // type:func -EnNb_CheckIfLookingRight = 0x809A39B0; // type:func -EnNb_SetupLookLeft = 0x809A3A1C; // type:func -EnNb_CheckIfLookLeft = 0x809A3A9C; // type:func -EnNb_SetupDemo6KInConfrontation = 0x809A3AFC; // type:func -EnNb_SetupRun = 0x809A3B3C; // type:func -EnNb_SetupConfrontationDestroy = 0x809A3BBC; // type:func -EnNb_CheckConfrontationCsMode = 0x809A3BD4; // type:func -EnNb_CheckConfrontationCsModeWrapper = 0x809A3CBC; // type:func -func_80AB2C18 = 0x809A3CDC; // type:func -EnNb_Kneel = 0x809A3D28; // type:func -EnNb_LookRight = 0x809A3D98; // type:func -EnNb_LookLeft = 0x809A3E08; // type:func -EnNb_Run = 0x809A3E70; // type:func -EnNb_ConfrontationDestroy = 0x809A3EF8; // type:func -func_80AB2E70 = 0x809A3F4C; // type:func -func_80AB2FC0 = 0x809A4068; // type:func -func_80AB2FE4 = 0x809A4090; // type:func -EnNb_SetupCreditsSpawn = 0x809A41CC; // type:func -EnNb_SetAlphaInCredits = 0x809A4214; // type:func -EnNb_SetupCreditsFadeIn = 0x809A42A0; // type:func -EnNb_SetupCreditsSit = 0x809A42D8; // type:func -EnNb_SetupCreditsHeadTurn = 0x809A4324; // type:func -EnNb_CheckIfLookingUp = 0x809A4364; // type:func -EnNb_CheckCreditsCsModeImpl = 0x809A4398; // type:func -EnNb_CheckCreditsCsMode = 0x809A4424; // type:func -EnNb_CreditsFade = 0x809A4444; // type:func -func_80AB3428 = 0x809A4490; // type:func -EnNb_LookUp = 0x809A44D8; // type:func -EnNb_CrawlspaceSpawnCheck = 0x809A451C; // type:func -func_80AB359C = 0x809A4618; // type:func -EnNb_SetNoticeSFX = 0x809A46DC; // type:func -EnNb_GetNoticedStatus = 0x809A4704; // type:func -func_80AB36DC = 0x809A475C; // type:func -EnNb_CheckNoticed = 0x809A480C; // type:func -EnNb_SetupIdleCrawlspace = 0x809A4864; // type:func -func_80AB3838 = 0x809A48BC; // type:func -EnNb_SetupPathMovement = 0x809A4938; // type:func -EnNb_SetTextIdAsChild = 0x809A49A0; // type:func -func_80AB3A7C = 0x809A4B0C; // type:func -func_80AB3B04 = 0x809A4B98; // type:func -func_80AB3B7C = 0x809A4C20; // type:func -EnNb_WaitForNotice = 0x809A4C6C; // type:func -EnNb_StandUpAfterNotice = 0x809A4CC8; // type:func -EnNb_BlockCrawlspace = 0x809A4D28; // type:func -EnNb_InitCrawlspaceDialogue = 0x809A4D90; // type:func -EnNb_FollowPath = 0x809A4DF8; // type:func -func_80AB3DB0 = 0x809A4E78; // type:func -func_80AB3E10 = 0x809A4EE0; // type:func -EnNb_Update = 0x809A4F48; // type:func -EnNb_Init = 0x809A4F90; // type:func -EnNb_OverrideLimbDraw = 0x809A50AC; // type:func -EnNb_PostLimbDraw = 0x809A513C; // type:func -EnNb_DrawNothing = 0x809A51C8; // type:func -EnNb_DrawDefault = 0x809A51D8; // type:func -EnNb_Draw = 0x809A531C; // type:func -BossMo_InitRand = 0x809A64F0; // type:func -BossMo_RandZeroOne = 0x809A6510; // type:func -BossMo_NearLand = 0x809A6638; // type:func -BossMo_SpawnRipple = 0x809A6730; // type:func -BossMo_SpawnDroplet = 0x809A6850; // type:func -BossMo_SpawnStillDroplet = 0x809A692C; // type:func -BossMo_SpawnBubble = 0x809A69F0; // type:func -BossMo_Init = 0x809A6AA4; // type:func -BossMo_Destroy = 0x809A6E8C; // type:func -BossMo_SetupTentacle = 0x809A6EDC; // type:func -BossMo_Tentacle = 0x809A6F30; // type:func -BossMo_TentCollisionCheck = 0x809A9CEC; // type:func -BossMo_IntroCs = 0x809A9F98; // type:func -BossMo_DeathCs = 0x809AB0B0; // type:func -BossMo_CoreCollisionCheck = 0x809ABC6C; // type:func -BossMo_Core = 0x809AC074; // type:func -BossMo_UpdateCore = 0x809AD6D8; // type:func -BossMo_UpdateTent = 0x809AD900; // type:func -BossMo_UpdateTentColliders = 0x809AE138; // type:func -BossMo_DrawTentacle = 0x809AE1E4; // type:func -BossMo_DrawWater = 0x809AE910; // type:func -BossMo_DrawCore = 0x809AEB18; // type:func -BossMo_DrawTent = 0x809AF370; // type:func -BossMo_UpdateEffects = 0x809AF5A4; // type:func -BossMo_DrawEffects = 0x809AFCB4; // type:func -EnSb_Init = 0x809B65A0; // type:func -EnSb_Destroy = 0x809B6688; // type:func -EnSb_SpawnBubbles = 0x809B66C8; // type:func -EnSb_SetupWaitClosed = 0x809B6778; // type:func -EnSb_SetupOpen = 0x809B67F0; // type:func -EnSb_SetupWaitOpen = 0x809B686C; // type:func -EnSb_SetupLunge = 0x809B68E0; // type:func -EnSb_SetupBounce = 0x809B6988; // type:func -EnSb_SetupCooldown = 0x809B6A00; // type:func -EnSb_WaitClosed = 0x809B6B04; // type:func -EnSb_Open = 0x809B6B84; // type:func -EnSb_WaitOpen = 0x809B6C4C; // type:func -EnSb_TurnAround = 0x809B6D00; // type:func -EnSb_Lunge = 0x809B6DEC; // type:func -EnSb_Bounce = 0x809B6E94; // type:func -EnSb_Cooldown = 0x809B6FC8; // type:func -EnSb_IsVulnerable = 0x809B7030; // type:func -EnSb_UpdateDamage = 0x809B7178; // type:func -EnSb_Update = 0x809B7454; // type:func -EnSb_PostLimbDraw = 0x809B75D4; // type:func -EnSb_Draw = 0x809B7624; // type:func -EnBigokuta_Init = 0x809B79E0; // type:func -EnBigokuta_Destroy = 0x809B7B4C; // type:func -func_809BCE3C = 0x809B7BC0; // type:func -func_809BCEBC = 0x809B7C3C; // type:func -func_809BCF68 = 0x809B7CEC; // type:func -func_809BD1C8 = 0x809B7F54; // type:func -func_809BD2E4 = 0x809B8070; // type:func -func_809BD318 = 0x809B80A4; // type:func -func_809BD370 = 0x809B80FC; // type:func -func_809BD3AC = 0x809B8138; // type:func -func_809BD3E0 = 0x809B8170; // type:func -func_809BD3F8 = 0x809B818C; // type:func -func_809BD47C = 0x809B8210; // type:func -func_809BD4A4 = 0x809B823C; // type:func -func_809BD524 = 0x809B82BC; // type:func -func_809BD5E0 = 0x809B8378; // type:func -func_809BD658 = 0x809B83F0; // type:func -func_809BD6B8 = 0x809B8450; // type:func -func_809BD768 = 0x809B8500; // type:func -func_809BD7F0 = 0x809B8588; // type:func -func_809BD84C = 0x809B85E8; // type:func -func_809BD8DC = 0x809B8678; // type:func -func_809BDAE8 = 0x809B8884; // type:func -func_809BDB90 = 0x809B892C; // type:func -func_809BDC08 = 0x809B89A4; // type:func -func_809BDF34 = 0x809B8CD4; // type:func -func_809BDFC8 = 0x809B8D68; // type:func -func_809BE058 = 0x809B8DF8; // type:func -func_809BE180 = 0x809B8F20; // type:func -func_809BE26C = 0x809B900C; // type:func -func_809BE3E4 = 0x809B9184; // type:func -func_809BE4A4 = 0x809B9244; // type:func -func_809BE518 = 0x809B92B8; // type:func -func_809BE568 = 0x809B9308; // type:func -func_809BE798 = 0x809B9538; // type:func -EnBigokuta_UpdateDamage = 0x809B967C; // type:func -EnBigokuta_Update = 0x809B976C; // type:func -EnBigokuta_OverrideLimbDraw = 0x809B9964; // type:func -EnBigokuta_Draw = 0x809B9DE4; // type:func -EnKarebaba_Init = 0x809BA4F0; // type:func -EnKarebaba_Destroy = 0x809BA624; // type:func -EnKarebaba_ResetCollider = 0x809BA664; // type:func -EnKarebaba_SetupGrow = 0x809BA6A0; // type:func -EnKarebaba_SetupIdle = 0x809BA6F0; // type:func -EnKarebaba_SetupAwaken = 0x809BA744; // type:func -EnKarebaba_SetupUpright = 0x809BA7C0; // type:func -EnKarebaba_SetupSpin = 0x809BA860; // type:func -EnKarebaba_SetupDying = 0x809BA87C; // type:func -EnKarebaba_SetupDeadItemDrop = 0x809BA8F0; // type:func -EnKarebaba_SetupRetract = 0x809BA990; // type:func -EnKarebaba_SetupDead = 0x809BAA10; // type:func -EnKarebaba_SetupRegrow = 0x809BAA9C; // type:func -EnKarebaba_Grow = 0x809BAAF0; // type:func -EnKarebaba_Idle = 0x809BAB88; // type:func -EnKarebaba_Awaken = 0x809BABE8; // type:func -EnKarebaba_Upright = 0x809BACBC; // type:func -EnKarebaba_Spin = 0x809BADB0; // type:func -EnKarebaba_Dying = 0x809BAF44; // type:func -EnKarebaba_DeadItemDrop = 0x809BB1FC; // type:func -EnKarebaba_Retract = 0x809BB264; // type:func -EnKarebaba_Dead = 0x809BB338; // type:func -EnKarebaba_Regrow = 0x809BB390; // type:func -EnKarebaba_Update = 0x809BB45C; // type:func -EnKarebaba_DrawBaseShadow = 0x809BB610; // type:func -EnKarebaba_Draw = 0x809BB6FC; // type:func -BgBdanObjects_GetProperty = 0x809BBDE0; // type:func -BgBdanObjects_SetProperty = 0x809BBE34; // type:func -BgBdanObjects_Init = 0x809BBE88; // type:func -BgBdanObjects_Destroy = 0x809BC10C; // type:func -BgBdanObjects_OctoPlatform_WaitForRutoToStartCutscene = 0x809BC15C; // type:func -BgBdanObjects_OctoPlatform_RaiseToUpperPosition = 0x809BC2B0; // type:func -BgBdanObjects_OctoPlatform_WaitForRutoToAdvanceCutscene = 0x809BC3AC; // type:func -BgBdanObjects_OctoPlatform_DescendWithBigOcto = 0x809BC4E8; // type:func -BgBdanObjects_OctoPlatform_PauseBeforeDescending = 0x809BC66C; // type:func -BgBdanObjects_OctoPlatform_WaitForBigOctoToStartBattle = 0x809BC6D0; // type:func -BgBdanObjects_OctoPlatform_BattleInProgress = 0x809BC72C; // type:func -BgBdanObjects_SinkToFloorHeight = 0x809BC804; // type:func -BgBdanObjects_WaitForPlayerInRange = 0x809BC884; // type:func -BgBdanObjects_RaiseToUpperPosition = 0x809BC8F0; // type:func -BgBdanObjects_DoNothing = 0x809BC988; // type:func -BgBdanObjects_ElevatorOscillate = 0x809BC998; // type:func -BgBdanObjects_WaitForSwitch = 0x809BCACC; // type:func -BgBdanObjects_ChangeWaterBoxLevel = 0x809BCB18; // type:func -BgBdanObjects_WaitForTimerExpired = 0x809BCBE0; // type:func -BgBdanObjects_WaitForPlayerOnTop = 0x809BCC34; // type:func -BgBdanObjects_FallToLowerPos = 0x809BCCB8; // type:func -BgBdanObjects_Update = 0x809BCD74; // type:func -BgBdanObjects_Draw = 0x809BCDB0; // type:func -DemoSa_Destroy = 0x809BD0B0; // type:func -func_8098E480 = 0x809BD0D4; // type:func -DemoSa_SetEyeIndex = 0x809BD15C; // type:func -DemoSa_SetMouthIndex = 0x809BD174; // type:func -func_8098E5C8 = 0x809BD18C; // type:func -DemoSa_UpdateSkelAnime = 0x809BD1D4; // type:func -DemoSa_GetCue = 0x809BD1F8; // type:func -func_8098E654 = 0x809BD220; // type:func -func_8098E6A0 = 0x809BD26C; // type:func -func_8098E6EC = 0x809BD2B8; // type:func -func_8098E76C = 0x809BD338; // type:func -func_8098E7FC = 0x809BD3C8; // type:func -func_8098E86C = 0x809BD438; // type:func -func_8098E8C8 = 0x809BD494; // type:func -func_8098E944 = 0x809BD510; // type:func -func_8098E960 = 0x809BD530; // type:func -func_8098E9EC = 0x809BD5C8; // type:func -func_8098EA3C = 0x809BD618; // type:func -func_8098EA68 = 0x809BD644; // type:func -func_8098EB00 = 0x809BD6DC; // type:func -func_8098EB6C = 0x809BD748; // type:func -func_8098EBB8 = 0x809BD794; // type:func -func_8098EBD8 = 0x809BD7B4; // type:func -func_8098EBF8 = 0x809BD7D4; // type:func -func_8098EC28 = 0x809BD808; // type:func -func_8098EC60 = 0x809BD848; // type:func -func_8098EC94 = 0x809BD880; // type:func -func_8098ECCC = 0x809BD8C0; // type:func -func_8098ECF4 = 0x809BD8EC; // type:func -func_8098EDB0 = 0x809BD9A8; // type:func -func_8098EE08 = 0x809BDA00; // type:func -func_8098EE28 = 0x809BDA20; // type:func -func_8098EEA8 = 0x809BDAA0; // type:func -func_8098EEFC = 0x809BDAF4; // type:func -func_8098F050 = 0x809BDC48; // type:func -func_8098F0E8 = 0x809BDCE4; // type:func -func_8098F118 = 0x809BDD04; // type:func -func_8098F16C = 0x809BDD4C; // type:func -DemoSa_DrawXlu = 0x809BDD94; // type:func -func_8098F390 = 0x809BDF34; // type:func -func_8098F3F0 = 0x809BDF94; // type:func -func_8098F420 = 0x809BDFC8; // type:func -func_8098F480 = 0x809BE024; // type:func -func_8098F50C = 0x809BE0B0; // type:func -func_8098F544 = 0x809BE0E8; // type:func -func_8098F590 = 0x809BE134; // type:func -func_8098F5D0 = 0x809BE174; // type:func -func_8098F610 = 0x809BE1B4; // type:func -func_8098F654 = 0x809BE1FC; // type:func -func_8098F714 = 0x809BE2A8; // type:func -func_8098F734 = 0x809BE2C8; // type:func -func_8098F77C = 0x809BE314; // type:func -func_8098F7BC = 0x809BE35C; // type:func -func_8098F7FC = 0x809BE3A4; // type:func -func_8098F83C = 0x809BE3E8; // type:func -func_8098F8F8 = 0x809BE4A4; // type:func -func_8098F984 = 0x809BE530; // type:func -func_8098F998 = 0x809BE548; // type:func -func_8098FA2C = 0x809BE5DC; // type:func -func_8098FA84 = 0x809BE634; // type:func -func_8098FAE0 = 0x809BE690; // type:func -func_8098FB34 = 0x809BE6E4; // type:func -func_8098FB68 = 0x809BE718; // type:func -func_8098FC44 = 0x809BE7E0; // type:func -func_8098FC64 = 0x809BE800; // type:func -func_8098FC9C = 0x809BE83C; // type:func -func_8098FCD4 = 0x809BE87C; // type:func -func_8098FD0C = 0x809BE8BC; // type:func -DemoSa_Update = 0x809BE908; // type:func -DemoSa_Init = 0x809BE950; // type:func -DemoSa_OverrideLimbDraw = 0x809BEA18; // type:func -DemoSa_DrawNothing = 0x809BEA50; // type:func -DemoSa_DrawOpa = 0x809BEA60; // type:func -DemoSa_Draw = 0x809BEBF4; // type:func -DemoGo_GetCueChannel = 0x809BFBD0; // type:func -func_8097C8A8 = 0x809BFC0C; // type:func -DemoGo_Destroy = 0x809BFC78; // type:func -func_8097C930 = 0x809BFC9C; // type:func -func_8097C9B8 = 0x809BFD24; // type:func -func_8097C9DC = 0x809BFD4C; // type:func -func_8097CA30 = 0x809BFDA4; // type:func -func_8097CA78 = 0x809BFDEC; // type:func -func_8097CB0C = 0x809BFE84; // type:func -func_8097CC08 = 0x809BFF84; // type:func -func_8097CCC0 = 0x809C003C; // type:func -func_8097CCE0 = 0x809C005C; // type:func -DemoGo_UpdateSkelAnime = 0x809C0114; // type:func -func_8097CDB0 = 0x809C0138; // type:func -func_8097CE10 = 0x809C01A4; // type:func -func_8097CE20 = 0x809C01B8; // type:func -func_8097CE78 = 0x809C0214; // type:func -func_8097CEEC = 0x809C028C; // type:func -func_8097CF20 = 0x809C02C4; // type:func -func_8097CF9C = 0x809C0340; // type:func -func_8097CFDC = 0x809C0380; // type:func -func_8097CFFC = 0x809C03A0; // type:func -func_8097D01C = 0x809C03C0; // type:func -func_8097D058 = 0x809C0404; // type:func -func_8097D088 = 0x809C043C; // type:func -func_8097D0D0 = 0x809C048C; // type:func -func_8097D130 = 0x809C04F4; // type:func -DemoGo_Update = 0x809C0554; // type:func -DemoGo_Init = 0x809C059C; // type:func -func_8097D290 = 0x809C0648; // type:func -func_8097D29C = 0x809C0658; // type:func -DemoGo_Draw = 0x809C076C; // type:func -EnIn_GetTextIdChild = 0x809C0930; // type:func -EnIn_GetTextIdAdult = 0x809C0990; // type:func -EnIn_GetTextId = 0x809C0AE8; // type:func -EnIn_UpdateTalkStateOnClosing = 0x809C0B4C; // type:func -EnIn_UpdateTalkStateOnChoice = 0x809C0BC0; // type:func -EnIn_UpdateTalkStateOnEvent = 0x809C0E10; // type:func -EnIn_UpdateTalkState = 0x809C0E7C; // type:func -func_80A795C8 = 0x809C0F44; // type:func -func_80A79690 = 0x809C100C; // type:func -EnIn_ChangeAnim = 0x809C1068; // type:func -func_80A7975C = 0x809C10D8; // type:func -func_80A79830 = 0x809C11AC; // type:func -EnIn_UpdateEyes = 0x809C13A8; // type:func -func_80A79AB4 = 0x809C1430; // type:func -func_80A79BAC = 0x809C1528; // type:func -func_80A79C78 = 0x809C15F4; // type:func -EnIn_Init = 0x809C17E8; // type:func -EnIn_Destroy = 0x809C18F4; // type:func -EnIn_WaitForObject = 0x809C1938; // type:func -func_80A7A304 = 0x809C1C90; // type:func -func_80A7A4BC = 0x809C1E48; // type:func -func_80A7A4C8 = 0x809C1E58; // type:func -func_80A7A568 = 0x809C1EFC; // type:func -func_80A7A770 = 0x809C2104; // type:func -func_80A7A848 = 0x809C21DC; // type:func -func_80A7A940 = 0x809C22D4; // type:func -func_80A7AA40 = 0x809C23D4; // type:func -func_80A7ABD4 = 0x809C2568; // type:func -func_80A7AE84 = 0x809C281C; // type:func -func_80A7AEF0 = 0x809C2888; // type:func -func_80A7B018 = 0x809C29B4; // type:func -func_80A7B024 = 0x809C29C4; // type:func -EnIn_Update = 0x809C2AB0; // type:func -EnIn_OverrideLimbDraw = 0x809C2CC4; // type:func -EnIn_PostLimbDraw = 0x809C2F18; // type:func -EnIn_Draw = 0x809C3028; // type:func -EnTr_SetupAction = 0x809C36D0; // type:func -EnTr_Init = 0x809C36DC; // type:func -EnTr_Destroy = 0x809C382C; // type:func -EnTr_CrySpellcast = 0x809C383C; // type:func -EnTr_DoNothing = 0x809C38EC; // type:func -EnTr_ChooseAction2 = 0x809C38FC; // type:func -EnTr_FlyKidnapCutscene = 0x809C3AAC; // type:func -func_80B23254 = 0x809C3C28; // type:func -EnTr_ShrinkVanish = 0x809C3EA8; // type:func -EnTr_Reappear = 0x809C4064; // type:func -EnTr_WaitToReappear = 0x809C41FC; // type:func -EnTr_TakeOff = 0x809C42BC; // type:func -EnTr_TurnLookOverShoulder = 0x809C4384; // type:func -EnTr_ChooseAction1 = 0x809C4464; // type:func -EnTr_Update = 0x809C4598; // type:func -EnTr_OverrideLimbDraw = 0x809C4750; // type:func -EnTr_Draw = 0x809C4880; // type:func -func_80B23FDC = 0x809C498C; // type:func -func_80B24038 = 0x809C49EC; // type:func -EnTr_SetRotFromCue = 0x809C4BE8; // type:func -EnTr_SetStartPosRotFromCue = 0x809C4C70; // type:func -func_808B4C30 = 0x809C4FD0; // type:func -func_808B4C4C = 0x809C4FF0; // type:func -func_808B4D04 = 0x809C50A4; // type:func -func_808B4D9C = 0x809C5138; // type:func -func_808B4E58 = 0x809C51E8; // type:func -BgSpot16Bombstone_Init = 0x809C53E4; // type:func -BgSpot16Bombstone_Destroy = 0x809C5498; // type:func -BgSpot16Bombstone_SpawnDust = 0x809C54E4; // type:func -func_808B5240 = 0x809C5580; // type:func -BgSpot16Bombstone_SpawnFragments = 0x809C56E8; // type:func -func_808B561C = 0x809C5960; // type:func -func_808B56BC = 0x809C5A00; // type:func -func_808B57E0 = 0x809C5AFC; // type:func -func_808B5934 = 0x809C5C54; // type:func -func_808B5950 = 0x809C5C74; // type:func -func_808B5A78 = 0x809C5D60; // type:func -func_808B5A94 = 0x809C5D80; // type:func -func_808B5AF0 = 0x809C5DE4; // type:func -func_808B5B04 = 0x809C5DFC; // type:func -func_808B5B58 = 0x809C5E54; // type:func -func_808B5B6C = 0x809C5E6C; // type:func -BgSpot16Bombstone_Update = 0x809C5F68; // type:func -BgSpot16Bombstone_Draw = 0x809C5F9C; // type:func -BgHidanKowarerukabe_InitDynaPoly = 0x809C6510; // type:func -BgHidanKowarerukabe_InitColliderSphere = 0x809C65AC; // type:func -BgHidanKowarerukabe_OffsetActorYPos = 0x809C6640; // type:func -BgHidanKowarerukabe_Init = 0x809C666C; // type:func -BgHidanKowarerukabe_Destroy = 0x809C671C; // type:func -BgHidanKowarerukabe_SpawnDust = 0x809C6764; // type:func -BgHidanKowarerukabe_FloorBreak = 0x809C6888; // type:func -func_8088A67C = 0x809C6B54; // type:func -BgHidanKowarerukabe_LargeWallBreak = 0x809C6DEC; // type:func -BgHidanKowarerukabe_Break = 0x809C7078; // type:func -BgHidanKowarerukabe_Update = 0x809C7108; // type:func -BgHidanKowarerukabe_Draw = 0x809C71D8; // type:func -BgBombwall_InitDynapoly = 0x809C73E0; // type:func -BgBombwall_RotateVec = 0x809C7438; // type:func -BgBombwall_Init = 0x809C748C; // type:func -BgBombwall_DestroyCollision = 0x809C769C; // type:func -BgBombwall_Destroy = 0x809C7718; // type:func -func_8086EB5C = 0x809C7738; // type:func -func_8086ED50 = 0x809C792C; // type:func -func_8086ED70 = 0x809C7950; // type:func -func_8086EDFC = 0x809C79E0; // type:func -func_8086EE40 = 0x809C7A24; // type:func -func_8086EE94 = 0x809C7A78; // type:func -BgBombwall_Update = 0x809C7AA8; // type:func -BgBombwall_Draw = 0x809C7AD4; // type:func -func_80AF2550 = 0x809C7CA0; // type:func -func_80AF259C = 0x809C7CEC; // type:func -EnRu2_Destroy = 0x809C7D30; // type:func -func_80AF2608 = 0x809C7D5C; // type:func -func_80AF2690 = 0x809C7DE4; // type:func -func_80AF26A0 = 0x809C7DF8; // type:func -func_80AF2744 = 0x809C7E08; // type:func -EnRu2_UpdateSkelAnime = 0x809C7E50; // type:func -EnRu2_GetCue = 0x809C7E74; // type:func -func_80AF27D0 = 0x809C7E9C; // type:func -func_80AF281C = 0x809C7EE8; // type:func -func_80AF2868 = 0x809C7F34; // type:func -func_80AF28E8 = 0x809C7FB4; // type:func -func_80AF2978 = 0x809C8044; // type:func -func_80AF2994 = 0x809C8064; // type:func -func_80AF29DC = 0x809C80AC; // type:func -func_80AF2A38 = 0x809C8108; // type:func -func_80AF2AB4 = 0x809C8184; // type:func -func_80AF2B44 = 0x809C8220; // type:func -func_80AF2B94 = 0x809C8270; // type:func -func_80AF2BC0 = 0x809C829C; // type:func -func_80AF2C54 = 0x809C8330; // type:func -func_80AF2C68 = 0x809C8344; // type:func -func_80AF2CB4 = 0x809C8390; // type:func -func_80AF2CD4 = 0x809C83B0; // type:func -func_80AF2CF4 = 0x809C83D0; // type:func -func_80AF2D2C = 0x809C840C; // type:func -func_80AF2D6C = 0x809C8454; // type:func -func_80AF2DAC = 0x809C8498; // type:func -func_80AF2DEC = 0x809C84E0; // type:func -func_80AF2E1C = 0x809C8514; // type:func -func_80AF2E64 = 0x809C8558; // type:func -func_80AF2E84 = 0x809C8578; // type:func -func_80AF2F04 = 0x809C85F8; // type:func -func_80AF2F58 = 0x809C864C; // type:func -func_80AF30AC = 0x809C87A0; // type:func -func_80AF3144 = 0x809C883C; // type:func -func_80AF3174 = 0x809C885C; // type:func -func_80AF31C8 = 0x809C88A4; // type:func -func_80AF321C = 0x809C88EC; // type:func -func_80AF3394 = 0x809C8A34; // type:func -func_80AF33E0 = 0x809C8A7C; // type:func -func_80AF346C = 0x809C8B08; // type:func -func_80AF34A4 = 0x809C8B40; // type:func -func_80AF34F0 = 0x809C8B8C; // type:func -func_80AF3530 = 0x809C8BCC; // type:func -func_80AF3564 = 0x809C8C00; // type:func -func_80AF3604 = 0x809C8C8C; // type:func -func_80AF3624 = 0x809C8CAC; // type:func -func_80AF366C = 0x809C8CF8; // type:func -func_80AF36AC = 0x809C8D40; // type:func -func_80AF36EC = 0x809C8D84; // type:func -func_80AF3718 = 0x809C8DB4; // type:func -func_80AF3744 = 0x809C8DE4; // type:func -func_80AF37AC = 0x809C8E4C; // type:func -func_80AF37CC = 0x809C8E6C; // type:func -func_80AF383C = 0x809C8ED8; // type:func -func_80AF3878 = 0x809C8F14; // type:func -func_80AF38D0 = 0x809C8F74; // type:func -func_80AF390C = 0x809C8FB0; // type:func -func_80AF39DC = 0x809C9080; // type:func -func_80AF3ADC = 0x809C916C; // type:func -func_80AF3B74 = 0x809C9204; // type:func -func_80AF3BC8 = 0x809C9258; // type:func -func_80AF3C04 = 0x809C929C; // type:func -func_80AF3C64 = 0x809C9304; // type:func -func_80AF3CB8 = 0x809C9360; // type:func -func_80AF3D0C = 0x809C93BC; // type:func -func_80AF3D60 = 0x809C9418; // type:func -EnRu2_Update = 0x809C947C; // type:func -EnRu2_Init = 0x809C94C4; // type:func -func_80AF3F14 = 0x809C95BC; // type:func -func_80AF3F20 = 0x809C95CC; // type:func -EnRu2_Draw = 0x809C9700; // type:func -ObjDekujr_Init = 0x809CAA20; // type:func -ObjDekujr_Destroy = 0x809CAB2C; // type:func -ObjDekujr_GetCueStartPos = 0x809CAB3C; // type:func -ObjDekujr_GetCueEndPos = 0x809CAB80; // type:func -ObjDekujr_ComeUp = 0x809CABC4; // type:func -ObjDekujr_Update = 0x809CAD74; // type:func -ObjDekujr_Draw = 0x809CAE64; // type:func -BgMizuUzu_Init = 0x809CB060; // type:func -BgMizuUzu_Destroy = 0x809CB0DC; // type:func -func_8089F788 = 0x809CB110; // type:func -BgMizuUzu_Update = 0x809CB188; // type:func -BgMizuUzu_Draw = 0x809CB1AC; // type:func -BgSpot06Objects_Init = 0x809CB230; // type:func -BgSpot06Objects_Destroy = 0x809CB5FC; // type:func -BgSpot06Objects_GateSpawnBubbles = 0x809CB664; // type:func -BgSpot06Objects_GateWaitForSwitch = 0x809CB75C; // type:func -BgSpot06Objects_GateWaitToOpen = 0x809CB7F0; // type:func -BgSpot06Objects_GateOpen = 0x809CB824; // type:func -BgSpot06Objects_DoNothing = 0x809CB8B0; // type:func -BgSpot06Objects_LockSpawnWaterRipples = 0x809CB8C0; // type:func -BgSpot06Objects_LockSpawnBubbles = 0x809CB924; // type:func -BgSpot06Objects_LockWait = 0x809CB9B8; // type:func -BgSpot06Objects_LockPullOutward = 0x809CBBDC; // type:func -BgSpot06Objects_LockSwimToSurface = 0x809CBC94; // type:func -BgSpot06Objects_LockFloat = 0x809CBF0C; // type:func -BgSpot06Objects_Update = 0x809CBF8C; // type:func -BgSpot06Objects_DrawLakeHyliaWater = 0x809CBFEC; // type:func -BgSpot06Objects_Draw = 0x809CC1D8; // type:func -BgSpot06Objects_WaterPlaneCutsceneWait = 0x809CC29C; // type:func -BgSpot06Objects_WaterPlaneCutsceneRise = 0x809CC2C8; // type:func -BgIceObjects_Init = 0x809CC640; // type:func -BgIceObjects_Destroy = 0x809CC6CC; // type:func -BgIceObjects_SetNextTarget = 0x809CC700; // type:func -BgIceObjects_CheckPits = 0x809CCB80; // type:func -BgIceObjects_Idle = 0x809CCD08; // type:func -BgIceObjects_Slide = 0x809CCE0C; // type:func -BgIceObjects_Reset = 0x809CD19C; // type:func -BgIceObjects_Stuck = 0x809CD238; // type:func -BgIceObjects_Update = 0x809CD274; // type:func -BgIceObjects_Draw = 0x809CD298; // type:func -BgHakaWater_Init = 0x809CD580; // type:func -BgHakaWater_Destroy = 0x809CD60C; // type:func -BgHakaWater_LowerWater = 0x809CD61C; // type:func -BgHakaWater_Wait = 0x809CD764; // type:func -BgHakaWater_ChangeWaterLevel = 0x809CD820; // type:func -BgHakaWater_Update = 0x809CD928; // type:func -BgHakaWater_Draw = 0x809CD94C; // type:func -EnMa2_GetTextId = 0x809CDD60; // type:func -EnMa2_UpdateTalkState = 0x809CDDF8; // type:func -func_80AA1AE4 = 0x809CDEA8; // type:func -func_80AA1B58 = 0x809CDF1C; // type:func -func_80AA1C68 = 0x809CE02C; // type:func -EnMa2_UpdateEyes = 0x809CE084; // type:func -EnMa2_ChangeAnim = 0x809CE110; // type:func -func_80AA1DB4 = 0x809CE180; // type:func -EnMa2_Init = 0x809CE20C; // type:func -EnMa2_Destroy = 0x809CE3B0; // type:func -func_80AA2018 = 0x809CE3F0; // type:func -func_80AA204C = 0x809CE424; // type:func -func_80AA20E4 = 0x809CE4C0; // type:func -func_80AA21C8 = 0x809CE5AC; // type:func -EnMa2_Update = 0x809CE64C; // type:func -EnMa2_OverrideLimbDraw = 0x809CE73C; // type:func -EnMa2_PostLimbDraw = 0x809CE97C; // type:func -EnMa2_Draw = 0x809CEA30; // type:func -EnBomChu_Init = 0x809CEDC0; // type:func -EnBomChu_Destroy = 0x809CEF60; // type:func -EnBomChu_Explode = 0x809CEFB0; // type:func -EnBomChu_CrossProduct = 0x809CF0D0; // type:func -EnBomChu_UpdateFloorPoly = 0x809CF144; // type:func -EnBomChu_WaitForRelease = 0x809CF378; // type:func -EnBomChu_Move = 0x809CF4E8; // type:func -EnBomChu_WaitForKill = 0x809CFA00; // type:func -EnBomChu_ModelToWorld = 0x809CFA40; // type:func -EnBomChu_SpawnRipples = 0x809CFAF0; // type:func -EnBomChu_Update = 0x809CFB7C; // type:func -EnBomChu_Draw = 0x809CFF40; // type:func -EnHorseGameCheck_InitIngoRace = 0x809D0460; // type:func -EnHorseGameCheck_DestroyIngoRace = 0x809D051C; // type:func -EnHorseGameCheck_FinishIngoRace = 0x809D0530; // type:func -EnHorseGameCheck_UpdateIngoRace = 0x809D067C; // type:func -EnHorseGameCheck_InitGerudoArchery = 0x809D0AF4; // type:func -EnHorseGameCheck_DestroyGerudoArchery = 0x809D0B14; // type:func -EnHorseGameCheck_UpdateGerudoArchery = 0x809D0B28; // type:func -EnHorseGameCheck_InitType3 = 0x809D0B70; // type:func -EnHorseGameCheck_DestroyType3 = 0x809D0B8C; // type:func -EnHorseGameCheck_UpdateType3 = 0x809D0BA0; // type:func -EnHorseGameCheck_InitMalonRace = 0x809D0BB4; // type:func -EnHorseGameCheck_DestroyMalonRace = 0x809D0C04; // type:func -EnHorseGameCheck_FinishMalonRace = 0x809D0C18; // type:func -EnHorseGameCheck_UpdateMalonRace = 0x809D0D0C; // type:func -EnHorseGameCheck_Init = 0x809D1224; // type:func -EnHorseGameCheck_Destroy = 0x809D12A8; // type:func -EnHorseGameCheck_Update = 0x809D12E4; // type:func -EnHorseGameCheck_Draw = 0x809D1320; // type:func -BossTw_AddDotEffect = 0x809D1530; // type:func -BossTw_AddDmgCloud = 0x809D1624; // type:func -BossTw_AddRingEffect = 0x809D1720; // type:func -BossTw_AddPlayerFreezeEffect = 0x809D1824; // type:func -BossTw_AddFlameEffect = 0x809D18D0; // type:func -BossTw_AddMergeFlameEffect = 0x809D19A8; // type:func -BossTw_AddShieldBlastEffect = 0x809D1AB0; // type:func -BossTw_AddShieldDeflectEffect = 0x809D1B98; // type:func -BossTw_AddShieldHitEffect = 0x809D1D60; // type:func -BossTw_Init = 0x809D1F28; // type:func -BossTw_Destroy = 0x809D2744; // type:func -BossTw_SetupTurnToPlayer = 0x809D27AC; // type:func -BossTw_TurnToPlayer = 0x809D27FC; // type:func -BossTw_SetupFlyTo = 0x809D291C; // type:func -BossTw_FlyTo = 0x809D2B20; // type:func -BossTw_SetupShootBeam = 0x809D2D54; // type:func -BossTw_SpawnGroundBlast = 0x809D2E3C; // type:func -BossTw_BeamHitPlayerCheck = 0x809D31B8; // type:func -BossTw_CheckBeamReflection = 0x809D33B0; // type:func -BossTw_BeamReflHitCheck = 0x809D3638; // type:func -BossTw_GetFloorY = 0x809D3760; // type:func -BossTw_ShootBeam = 0x809D3A34; // type:func -BossTw_SetupFinishBeamShoot = 0x809D49EC; // type:func -BossTw_FinishBeamShoot = 0x809D4A48; // type:func -BossTw_SetupHitByBeam = 0x809D4AE0; // type:func -BossTw_HitByBeam = 0x809D4B48; // type:func -BossTw_SetupLaugh = 0x809D4E10; // type:func -BossTw_Laugh = 0x809D4E74; // type:func -BossTw_SetupSpin = 0x809D4F04; // type:func -BossTw_Spin = 0x809D4F80; // type:func -BossTw_SetupMergeCS = 0x809D5020; // type:func -BossTw_MergeCS = 0x809D506C; // type:func -BossTw_SetupWait = 0x809D50B0; // type:func -BossTw_Wait = 0x809D50E8; // type:func -BossTw_TwinrovaSetupMergeCS = 0x809D518C; // type:func -BossTw_TwinrovaMergeCS = 0x809D51AC; // type:func -BossTw_SetupDeathCS = 0x809D5C78; // type:func -BossTw_DeathCS = 0x809D5CE0; // type:func -BossTw_SetupCSWait = 0x809D5DE8; // type:func -BossTw_CSWait = 0x809D5E20; // type:func -BossTw_TwinrovaSetupIntroCS = 0x809D5E30; // type:func -BossTw_TwinrovaIntroCS = 0x809D5E68; // type:func -BossTw_DeathBall = 0x809D76BC; // type:func -BossTw_TwinrovaSetupDeathCS = 0x809D79B8; // type:func -BossTw_DeathCSMsgSfx = 0x809D7A74; // type:func -BossTw_TwinrovaDeathCS = 0x809D8294; // type:func -BossTw_Update = 0x809D8F88; // type:func -BossTw_TwinrovaUpdate = 0x809D95FC; // type:func -BossTw_OverrideLimbDraw = 0x809D9F78; // type:func -BossTw_PostLimbDraw = 0x809DA02C; // type:func -func_80941BC0 = 0x809DA430; // type:func -func_80942180 = 0x809DA988; // type:func -func_809426F0 = 0x809DAE68; // type:func -func_80942C70 = 0x809DB3CC; // type:func -func_80943028 = 0x809DB738; // type:func -BossTw_Draw = 0x809DB93C; // type:func -BossTw_TwinrovaOverrideLimbDraw = 0x809DBFEC; // type:func -BossTw_TwinrovaPostLimbDraw = 0x809DC418; // type:func -BossTw_ShieldChargeDraw = 0x809DC554; // type:func -BossTw_SpawnPortalDraw = 0x809DCDB4; // type:func -func_80944C50 = 0x809DD1C4; // type:func -BossTw_TwinrovaDraw = 0x809DD59C; // type:func -BossTw_BlastFire = 0x809DD8D4; // type:func -BossTw_BlastIce = 0x809DE20C; // type:func -BossTw_BlastShieldCheck = 0x809DED80; // type:func -BossTw_BlastUpdate = 0x809DF010; // type:func -BossTw_BlastDraw = 0x809DF18C; // type:func -BossTw_DrawDeathBall = 0x809DF6E8; // type:func -BossTw_UpdateEffects = 0x809DFC30; // type:func -BossTw_InitRand = 0x809E0988; // type:func -BossTw_RandZeroOne = 0x809E09A8; // type:func -BossTw_DrawEffects = 0x809E0AD0; // type:func -BossTw_TwinrovaSetupArriveAtTarget = 0x809E1904; // type:func -BossTw_TwinrovaArriveAtTarget = 0x809E1978; // type:func -BossTw_TwinrovaSetupChargeBlast = 0x809E1AA4; // type:func -BossTw_TwinrovaChargeBlast = 0x809E1B04; // type:func -BossTw_TwinrovaSetupShootBlast = 0x809E1CF0; // type:func -BossTw_TwinrovaShootBlast = 0x809E1D78; // type:func -BossTw_TwinrovaSetupDoneBlastShoot = 0x809E1FC8; // type:func -BossTw_TwinrovaDoneBlastShoot = 0x809E2014; // type:func -BossTw_TwinrovaDamage = 0x809E20AC; // type:func -BossTw_TwinrovaStun = 0x809E21D8; // type:func -BossTw_TwinrovaSetupGetUp = 0x809E248C; // type:func -BossTw_TwinrovaGetUp = 0x809E24F0; // type:func -BossTw_TwinrovaSetupFly = 0x809E2584; // type:func -BossTw_TwinrovaFly = 0x809E275C; // type:func -BossTw_TwinrovaSetupSpin = 0x809E29D0; // type:func -BossTw_TwinrovaSpin = 0x809E2A28; // type:func -BossTw_TwinrovaSetupLaugh = 0x809E2AA0; // type:func -BossTw_TwinrovaLaugh = 0x809E2B04; // type:func -EnRr_Init = 0x809E7030; // type:func -EnRr_Destroy = 0x809E71D0; // type:func -EnRr_Move = 0x809E7210; // type:func -EnRr_SetupReach = 0x809E7238; // type:func -EnRr_SetupNeutral = 0x809E7338; // type:func -EnRr_SetupGrabPlayer = 0x809E7404; // type:func -EnRr_GetMessage = 0x809E750C; // type:func -EnRr_SetupReleasePlayer = 0x809E7560; // type:func -EnRr_SetupDamage = 0x809E775C; // type:func -EnRr_SetupApproach = 0x809E7828; // type:func -EnRr_SetupDeath = 0x809E78E0; // type:func -EnRr_SetupStunned = 0x809E7980; // type:func -EnRr_CollisionCheck = 0x809E7A8C; // type:func -EnRr_InitBodySegments = 0x809E7E1C; // type:func -EnRr_UpdateBodySegments = 0x809E7FDC; // type:func -EnRr_Approach = 0x809E8160; // type:func -EnRr_Reach = 0x809E8220; // type:func -EnRr_GrabPlayer = 0x809E833C; // type:func -EnRr_Damage = 0x809E8434; // type:func -EnRr_Death = 0x809E84AC; // type:func -EnRr_Retreat = 0x809E8820; // type:func -EnRr_Stunned = 0x809E88B4; // type:func -EnRr_Update = 0x809E891C; // type:func -EnRr_Draw = 0x809E8D48; // type:func -EnBa_SetupAction = 0x809E9560; // type:func -EnBa_Init = 0x809E956C; // type:func -EnBa_Destroy = 0x809E9758; // type:func -EnBa_SetupIdle = 0x809E9784; // type:func -EnBa_Idle = 0x809E97C4; // type:func -EnBa_SetupFallAsBlob = 0x809E9BF0; // type:func -EnBa_FallAsBlob = 0x809E9C60; // type:func -EnBa_SetupSwingAtPlayer = 0x809E9D20; // type:func -EnBa_SwingAtPlayer = 0x809E9D74; // type:func -func_809B7174 = 0x809EA394; // type:func -EnBa_RecoilFromDamage = 0x809EA410; // type:func -func_809B75A0 = 0x809EA7C4; // type:func -EnBa_Die = 0x809EAA40; // type:func -EnBa_Update = 0x809EAD70; // type:func -EnBa_Draw = 0x809EAE50; // type:func -EnBx_Init = 0x809EB430; // type:func -EnBx_Destroy = 0x809EB638; // type:func -func_809D1D0C = 0x809EB664; // type:func -EnBx_Update = 0x809EB734; // type:func -EnBx_Draw = 0x809EBA58; // type:func -EnAnubice_Hover = 0x809EBF20; // type:func -EnAnubice_AimFireball = 0x809EBFC4; // type:func -EnAnubice_Init = 0x809EC0A4; // type:func -EnAnubice_Destroy = 0x809EC1BC; // type:func -EnAnubice_FindFlameCircles = 0x809EC218; // type:func -EnAnubice_SetupIdle = 0x809EC2A0; // type:func -EnAnubice_Idle = 0x809EC348; // type:func -EnAnubice_GoToHome = 0x809EC428; // type:func -EnAnubice_SetupShootFireball = 0x809EC578; // type:func -EnAnubice_ShootFireball = 0x809EC600; // type:func -EnAnubice_SetupDie = 0x809EC700; // type:func -EnAnubice_Die = 0x809EC7D0; // type:func -EnAnubice_Update = 0x809ECA84; // type:func -EnAnubice_OverrideLimbDraw = 0x809ECE88; // type:func -EnAnubice_PostLimbDraw = 0x809ECED4; // type:func -EnAnubice_Draw = 0x809ECF90; // type:func -EnAnubiceFire_Init = 0x809ED1D0; // type:func -EnAnubiceFire_Destroy = 0x809ED2F0; // type:func -func_809B26EC = 0x809ED31C; // type:func -func_809B27D8 = 0x809ED408; // type:func -func_809B2B48 = 0x809ED778; // type:func -EnAnubiceFire_Update = 0x809ED924; // type:func -EnAnubiceFire_Draw = 0x809EDB20; // type:func -BgMoriHashigo_InitDynapoly = 0x809EDF90; // type:func -BgMoriHashigo_InitCollider = 0x809EDFE8; // type:func -BgMoriHashigo_SpawnLadder = 0x809EE094; // type:func -BgMoriHashigo_InitClasp = 0x809EE14C; // type:func -BgMoriHashigo_InitLadder = 0x809EE1D8; // type:func -BgMoriHashigo_Init = 0x809EE21C; // type:func -BgMoriHashigo_Destroy = 0x809EE2E0; // type:func -BgMoriHashigo_SetupWaitForMoriTex = 0x809EE338; // type:func -BgMoriHashigo_WaitForMoriTex = 0x809EE34C; // type:func -BgMoriHashigo_SetupClasp = 0x809EE3CC; // type:func -BgMoriHashigo_Clasp = 0x809EE3E0; // type:func -BgMoriHashigo_SetupLadderWait = 0x809EE444; // type:func -BgMoriHashigo_LadderWait = 0x809EE458; // type:func -BgMoriHashigo_SetupLadderFall = 0x809EE48C; // type:func -BgMoriHashigo_LadderFall = 0x809EE4C8; // type:func -BgMoriHashigo_SetupLadderRest = 0x809EE5A8; // type:func -BgMoriHashigo_Update = 0x809EE5CC; // type:func -BgMoriHashigo_Draw = 0x809EE608; // type:func -BgMoriHashira4_SetupAction = 0x809EE850; // type:func -BgMoriHashira4_InitDynaPoly = 0x809EE85C; // type:func -BgMoriHashira4_Init = 0x809EE8B4; // type:func -BgMoriHashira4_Destroy = 0x809EE9C8; // type:func -BgMoriHashira4_SetupWaitForMoriTex = 0x809EE9FC; // type:func -BgMoriHashira4_WaitForMoriTex = 0x809EEA20; // type:func -BgMoriHashira4_SetupPillarsRotate = 0x809EEA9C; // type:func -BgMoriHashira4_PillarsRotate = 0x809EEAC0; // type:func -BgMoriHashira4_GateWait = 0x809EEAF8; // type:func -BgMoriHashira4_GateOpen = 0x809EEBA4; // type:func -BgMoriHashira4_Update = 0x809EEBFC; // type:func -BgMoriHashira4_Draw = 0x809EEC28; // type:func -BgMoriIdomizu_SetupAction = 0x809EEDE0; // type:func -BgMoriIdomizu_SetWaterLevel = 0x809EEDEC; // type:func -BgMoriIdomizu_Init = 0x809EEE14; // type:func -BgMoriIdomizu_Destroy = 0x809EEF38; // type:func -BgMoriIdomizu_SetupWaitForMoriTex = 0x809EEF58; // type:func -BgMoriIdomizu_WaitForMoriTex = 0x809EEF7C; // type:func -BgMoriIdomizu_SetupMain = 0x809EEFD4; // type:func -BgMoriIdomizu_Main = 0x809EEFF8; // type:func -BgMoriIdomizu_Update = 0x809EF1BC; // type:func -BgMoriIdomizu_Draw = 0x809EF1E8; // type:func -BgSpot16Doughnut_Init = 0x809EF420; // type:func -BgSpot16Doughnut_Destroy = 0x809EF594; // type:func -BgSpot16Doughnut_Update = 0x809EF5A4; // type:func -BgSpot16Doughnut_UpdateExpanding = 0x809EF638; // type:func -BgSpot16Doughnut_Draw = 0x809EF6A0; // type:func -BgSpot16Doughnut_DrawExpanding = 0x809EF850; // type:func -BgBdanSwitch_InitDynaPoly = 0x809EF9D0; // type:func -BgBdanSwitch_InitCollision = 0x809EFA28; // type:func -func_8086D0EC = 0x809EFA7C; // type:func -BgBdanSwitch_Init = 0x809EFBE8; // type:func -BgBdanSwitch_Destroy = 0x809EFDA4; // type:func -func_8086D4B4 = 0x809EFE10; // type:func -func_8086D548 = 0x809EFEA4; // type:func -func_8086D5C4 = 0x809EFF20; // type:func -func_8086D5E0 = 0x809EFF40; // type:func -func_8086D67C = 0x809EFFDC; // type:func -func_8086D694 = 0x809EFFF8; // type:func -func_8086D730 = 0x809F0098; // type:func -func_8086D754 = 0x809F00C0; // type:func -func_8086D7FC = 0x809F0168; // type:func -func_8086D80C = 0x809F017C; // type:func -func_8086D86C = 0x809F01DC; // type:func -func_8086D888 = 0x809F01FC; // type:func -func_8086D8BC = 0x809F0234; // type:func -func_8086D8CC = 0x809F0248; // type:func -func_8086D944 = 0x809F02C0; // type:func -func_8086D95C = 0x809F02DC; // type:func -func_8086D9F8 = 0x809F037C; // type:func -func_8086DA1C = 0x809F03A4; // type:func -func_8086DAB4 = 0x809F0440; // type:func -func_8086DAC4 = 0x809F0454; // type:func -func_8086DB24 = 0x809F04B4; // type:func -func_8086DB40 = 0x809F04D4; // type:func -func_8086DB4C = 0x809F04E4; // type:func -func_8086DB68 = 0x809F0504; // type:func -func_8086DC30 = 0x809F05CC; // type:func -func_8086DC48 = 0x809F05E8; // type:func -func_8086DCCC = 0x809F066C; // type:func -func_8086DCE8 = 0x809F068C; // type:func -func_8086DDA8 = 0x809F074C; // type:func -func_8086DDC0 = 0x809F0768; // type:func -BgBdanSwitch_Update = 0x809F07FC; // type:func -func_8086DF58 = 0x809F0900; // type:func -BgBdanSwitch_Draw = 0x809F0970; // type:func -EnMa1_GetTextId = 0x809F0E00; // type:func -EnMa1_UpdateTalkState = 0x809F0EE8; // type:func -EnMa1_ShouldSpawn = 0x809F1034; // type:func -EnMa1_UpdateEyes = 0x809F1180; // type:func -EnMa1_ChangeAnim = 0x809F11F8; // type:func -EnMa1_UpdateTracking = 0x809F1268; // type:func -EnMa1_UpdateSinging = 0x809F12E8; // type:func -EnMa1_Init = 0x809F1360; // type:func -EnMa1_Destroy = 0x809F14C8; // type:func -EnMa1_Idle = 0x809F1508; // type:func -EnMa1_GiveWeirdEgg = 0x809F1620; // type:func -EnMa1_FinishGivingWeirdEgg = 0x809F1680; // type:func -EnMa1_IdleTeachSong = 0x809F16C8; // type:func -EnMa1_StartTeachSong = 0x809F17F4; // type:func -EnMa1_TeachSong = 0x809F1878; // type:func -EnMa1_WaitForPlayback = 0x809F18E0; // type:func -EnMa1_DoNothing = 0x809F1958; // type:func -EnMa1_Update = 0x809F1968; // type:func -EnMa1_OverrideLimbDraw = 0x809F1A54; // type:func -EnMa1_PostLimbDraw = 0x809F1BE4; // type:func -EnMa1_Draw = 0x809F1C40; // type:func -BossGanonEff_SpawnWindowShard = 0x809F20E0; // type:func -BossGanonEff_SpawnSparkle = 0x809F2220; // type:func -BossGanonEff_SpawnLightRay = 0x809F231C; // type:func -BossGanonEff_SpawnShock = 0x809F2460; // type:func -BossGanonEff_SpawnLightning = 0x809F252C; // type:func -BossGanonEff_SpawnDustDark = 0x809F25D0; // type:func -BossGanonEff_SpawnDustLight = 0x809F26C4; // type:func -BossGanonEff_SpawnShockwave = 0x809F27A8; // type:func -BossGanonEff_SpawnBlackDot = 0x809F28A0; // type:func -BossGanon_SetColliderPos = 0x809F295C; // type:func -BossGanon_SetAnimationObject = 0x809F29A0; // type:func -BossGanon_Init = 0x809F2A10; // type:func -BossGanon_Destroy = 0x809F2FB4; // type:func -BossGanon_SetupIntroCutscene = 0x809F3018; // type:func -BossGanon_SetIntroCsCamera = 0x809F30FC; // type:func -BossGanon_IntroCutscene = 0x809F319C; // type:func -BossGanon_SetupDeathCutscene = 0x809F489C; // type:func -BossGanon_SetupTowerCutscene = 0x809F4980; // type:func -BossGanon_ShatterWindows = 0x809F4A84; // type:func -BossGanon_DeathAndTowerCutscene = 0x809F4BC8; // type:func -BossGanon_SetupPoundFloor = 0x809F6570; // type:func -BossGanon_PoundFloor = 0x809F65AC; // type:func -BossGanon_SetupChargeBigMagic = 0x809F6B00; // type:func -BossGanon_ChargeBigMagic = 0x809F6B70; // type:func -BossGanon_SetupWait = 0x809F7378; // type:func -BossGanon_Wait = 0x809F7400; // type:func -BossGanon_SetupChargeLightBall = 0x809F774C; // type:func -BossGanon_ChargeLightBall = 0x809F77BC; // type:func -BossGanon_SetupPlayTennis = 0x809F7970; // type:func -BossGanon_PlayTennis = 0x809F79D8; // type:func -BossGanon_SetupBlock = 0x809F7CA8; // type:func -BossGanon_Block = 0x809F7D60; // type:func -BossGanon_SetupHitByLightBall = 0x809F7EF0; // type:func -BossGanon_HitByLightBall = 0x809F7FE4; // type:func -BossGanon_SetupVulnerable = 0x809F823C; // type:func -BossGanon_Vulnerable = 0x809F840C; // type:func -BossGanon_SetupDamaged = 0x809F8978; // type:func -BossGanon_Damaged = 0x809F89E0; // type:func -BossGanon_UpdateDamage = 0x809F8AA0; // type:func -BossGanon_Update = 0x809F8E68; // type:func -BossGanon_OverrideLimbDraw = 0x809F9FD0; // type:func -BossGanon_PostLimbDraw = 0x809FA210; // type:func -BossGanon_InitRand = 0x809FA568; // type:func -BossGanon_RandZeroOne = 0x809FA588; // type:func -BossGanon_DrawShock = 0x809FA6B0; // type:func -BossGanon_DrawHandLightBall = 0x809FAA48; // type:func -BossGanon_DrawBigMagicCharge = 0x809FAC94; // type:func -BossGanon_DrawTriforce = 0x809FB318; // type:func -BossGanon_DrawDarkVortex = 0x809FB6D8; // type:func -func_808E0254 = 0x809FB924; // type:func -BossGanon_GenShadowTexture = 0x809FBDCC; // type:func -BossGanon_DrawShadowTexture = 0x809FC10C; // type:func -BossGanon_Draw = 0x809FC36C; // type:func -BossGanon_CheckFallingPlatforms = 0x809FC5B4; // type:func -BossGanon_LightBall_Update = 0x809FC69C; // type:func -BossGanon_LightBall_Draw = 0x809FD1BC; // type:func -func_808E1EB4 = 0x809FD4D0; // type:func -func_808E229C = 0x809FD8C0; // type:func -func_808E2544 = 0x809FDB00; // type:func -func_808E324C = 0x809FE814; // type:func -BossGanon_UpdateEffects = 0x809FEAE8; // type:func -BossGanon_DrawEffects = 0x809FF310; // type:func -BossSst_Init = 0x80A17EC0; // type:func -BossSst_Destroy = 0x80A18348; // type:func -BossSst_HeadSetupLurk = 0x80A18394; // type:func -BossSst_HeadLurk = 0x80A183C8; // type:func -BossSst_HeadSetupIntro = 0x80A18404; // type:func -BossSst_HeadIntro = 0x80A18550; // type:func -BossSst_HeadSetupWait = 0x80A19368; // type:func -BossSst_HeadWait = 0x80A193B8; // type:func -BossSst_HeadSetupNeutral = 0x80A19434; // type:func -BossSst_HeadNeutral = 0x80A19454; // type:func -BossSst_HeadSetupDamagedHand = 0x80A195F8; // type:func -BossSst_HeadDamagedHand = 0x80A19660; // type:func -BossSst_HeadSetupReadyCharge = 0x80A19758; // type:func -BossSst_HeadReadyCharge = 0x80A197B0; // type:func -BossSst_HeadSetupCharge = 0x80A19854; // type:func -BossSst_HeadCharge = 0x80A19910; // type:func -BossSst_HeadSetupEndCharge = 0x80A19B70; // type:func -BossSst_HeadEndCharge = 0x80A19BF4; // type:func -BossSst_HeadSetupFrozenHand = 0x80A19C64; // type:func -BossSst_HeadFrozenHand = 0x80A19CB8; // type:func -BossSst_HeadSetupUnfreezeHand = 0x80A19D00; // type:func -BossSst_HeadUnfreezeHand = 0x80A19D4C; // type:func -BossSst_HeadSetupStunned = 0x80A19D88; // type:func -BossSst_HeadStunned = 0x80A19E28; // type:func -BossSst_HeadSetupVulnerable = 0x80A1A0AC; // type:func -BossSst_HeadVulnerable = 0x80A1A14C; // type:func -BossSst_HeadSetupDamage = 0x80A1A24C; // type:func -BossSst_HeadDamage = 0x80A1A31C; // type:func -BossSst_HeadSetupRecover = 0x80A1A36C; // type:func -BossSst_HeadRecover = 0x80A1A3F8; // type:func -BossSst_SetCameraTargets = 0x80A1A58C; // type:func -BossSst_UpdateDeathCamera = 0x80A1A6B8; // type:func -BossSst_HeadSetupDeath = 0x80A1A844; // type:func -BossSst_HeadDeath = 0x80A1A9D8; // type:func -BossSst_HeadSetupThrash = 0x80A1AC28; // type:func -BossSst_HeadThrash = 0x80A1AC90; // type:func -BossSst_HeadSetupDarken = 0x80A1AD0C; // type:func -BossSst_HeadDarken = 0x80A1AD54; // type:func -BossSst_HeadSetupFall = 0x80A1AF7C; // type:func -BossSst_HeadFall = 0x80A1B014; // type:func -BossSst_HeadSetupMelt = 0x80A1B0B0; // type:func -BossSst_HeadMelt = 0x80A1B100; // type:func -BossSst_HeadSetupFinish = 0x80A1B1B8; // type:func -BossSst_HeadFinish = 0x80A1B214; // type:func -BossSst_HandSetupWait = 0x80A1B50C; // type:func -BossSst_HandWait = 0x80A1B588; // type:func -BossSst_HandSetupDownbeat = 0x80A1B6F8; // type:func -BossSst_HandDownbeat = 0x80A1B76C; // type:func -BossSst_HandSetupDownbeatEnd = 0x80A1B8BC; // type:func -BossSst_HandDownbeatEnd = 0x80A1B918; // type:func -BossSst_HandSetupOffbeat = 0x80A1BA0C; // type:func -BossSst_HandOffbeat = 0x80A1BA80; // type:func -BossSst_HandSetupOffbeatEnd = 0x80A1BB60; // type:func -BossSst_HandOffbeatEnd = 0x80A1BBAC; // type:func -BossSst_HandSetupEndSlam = 0x80A1BCF0; // type:func -BossSst_HandEndSlam = 0x80A1BD64; // type:func -BossSst_HandSetupRetreat = 0x80A1BDA0; // type:func -BossSst_HandRetreat = 0x80A1BE48; // type:func -BossSst_HandSetupReadySlam = 0x80A1C074; // type:func -BossSst_HandReadySlam = 0x80A1C0E0; // type:func -BossSst_HandSetupSlam = 0x80A1C1D0; // type:func -BossSst_HandSlam = 0x80A1C260; // type:func -BossSst_HandSetupReadySweep = 0x80A1C444; // type:func -BossSst_HandReadySweep = 0x80A1C4EC; // type:func -BossSst_HandSetupSweep = 0x80A1C610; // type:func -BossSst_HandSweep = 0x80A1C69C; // type:func -BossSst_HandSetupReadyPunch = 0x80A1C8AC; // type:func -BossSst_HandReadyPunch = 0x80A1C914; // type:func -BossSst_HandSetupPunch = 0x80A1C970; // type:func -BossSst_HandPunch = 0x80A1C9F8; // type:func -BossSst_HandSetupReadyClap = 0x80A1CB3C; // type:func -BossSst_HandReadyClap = 0x80A1CC2C; // type:func -BossSst_HandSetupClap = 0x80A1CE1C; // type:func -BossSst_HandClap = 0x80A1CE8C; // type:func -BossSst_HandSetupEndClap = 0x80A1D0B8; // type:func -BossSst_HandEndClap = 0x80A1D124; // type:func -BossSst_HandSetupReadyGrab = 0x80A1D1C8; // type:func -BossSst_HandReadyGrab = 0x80A1D24C; // type:func -BossSst_HandSetupGrab = 0x80A1D2F4; // type:func -BossSst_HandGrab = 0x80A1D380; // type:func -BossSst_HandSetupCrush = 0x80A1D62C; // type:func -BossSst_HandCrush = 0x80A1D684; // type:func -BossSst_HandSetupEndCrush = 0x80A1D79C; // type:func -BossSst_HandEndCrush = 0x80A1D7EC; // type:func -BossSst_HandSetupSwing = 0x80A1D828; // type:func -BossSst_HandSwing = 0x80A1D8B0; // type:func -BossSst_HandSetupReel = 0x80A1DBE4; // type:func -BossSst_HandReel = 0x80A1DC7C; // type:func -BossSst_HandSetupReadyShake = 0x80A1DDD4; // type:func -BossSst_HandReadyShake = 0x80A1DE24; // type:func -BossSst_HandSetupShake = 0x80A1DF8C; // type:func -BossSst_HandShake = 0x80A1DFA8; // type:func -BossSst_HandSetupReadyCharge = 0x80A1E13C; // type:func -BossSst_HandReadyCharge = 0x80A1E190; // type:func -BossSst_HandSetupStunned = 0x80A1E308; // type:func -BossSst_HandStunned = 0x80A1E3B4; // type:func -BossSst_HandSetupDamage = 0x80A1E510; // type:func -BossSst_HandDamage = 0x80A1E56C; // type:func -BossSst_HandSetupThrash = 0x80A1E644; // type:func -BossSst_HandThrash = 0x80A1E6E0; // type:func -BossSst_HandSetupDarken = 0x80A1E8D4; // type:func -BossSst_HandDarken = 0x80A1E924; // type:func -BossSst_HandSetupFall = 0x80A1E998; // type:func -BossSst_HandFall = 0x80A1E9E8; // type:func -BossSst_HandSetupMelt = 0x80A1EA6C; // type:func -BossSst_HandMelt = 0x80A1EAA8; // type:func -BossSst_HandSetupFinish = 0x80A1EB20; // type:func -BossSst_HandFinish = 0x80A1EB4C; // type:func -BossSst_HandSetupRecover = 0x80A1EB78; // type:func -BossSst_HandRecover = 0x80A1EBCC; // type:func -BossSst_HandSetupFrozen = 0x80A1EC64; // type:func -BossSst_HandFrozen = 0x80A1ED30; // type:func -BossSst_HandSetupReadyBreakIce = 0x80A1EE90; // type:func -BossSst_HandReadyBreakIce = 0x80A1EF44; // type:func -BossSst_HandSetupBreakIce = 0x80A1F060; // type:func -BossSst_HandBreakIce = 0x80A1F088; // type:func -BossSst_HandGrabPlayer = 0x80A1F21C; // type:func -BossSst_HandReleasePlayer = 0x80A1F2BC; // type:func -BossSst_MoveAround = 0x80A1F340; // type:func -BossSst_HandSelectAttack = 0x80A1F4CC; // type:func -BossSst_HandSetDamage = 0x80A1F5C8; // type:func -BossSst_HandSetInvulnerable = 0x80A1F634; // type:func -BossSst_HeadSfx = 0x80A1F674; // type:func -BossSst_HandCollisionCheck = 0x80A1F6A0; // type:func -BossSst_HeadCollisionCheck = 0x80A1F82C; // type:func -BossSst_UpdateHand = 0x80A1F978; // type:func -BossSst_UpdateHead = 0x80A1FC88; // type:func -BossSst_OverrideHandDraw = 0x80A1FEF8; // type:func -BossSst_PostHandDraw = 0x80A1FF48; // type:func -BossSst_OverrideHandTrailDraw = 0x80A1FF84; // type:func -BossSst_DrawHand = 0x80A1FFC8; // type:func -BossSst_OverrideHeadDraw = 0x80A20374; // type:func -BossSst_PostHeadDraw = 0x80A20B78; // type:func -BossSst_DrawHead = 0x80A20C20; // type:func -BossSst_SpawnHeadShadow = 0x80A21070; // type:func -BossSst_SpawnHandShadow = 0x80A2119C; // type:func -BossSst_SpawnShockwave = 0x80A21250; // type:func -BossSst_SpawnIceCrystal = 0x80A2132C; // type:func -BossSst_SpawnIceShard = 0x80A215E8; // type:func -BossSst_IceShatter = 0x80A2183C; // type:func -BossSst_UpdateEffects = 0x80A21A08; // type:func -BossSst_DrawEffects = 0x80A21CAC; // type:func -EnNy_Init = 0x80A24480; // type:func -EnNy_Destroy = 0x80A245BC; // type:func -func_80ABCD40 = 0x80A245E8; // type:func -func_80ABCD84 = 0x80A24630; // type:func -func_80ABCD94 = 0x80A24644; // type:func -func_80ABCDAC = 0x80A24660; // type:func -func_80ABCDBC = 0x80A24674; // type:func -EnNy_SetupTurnToStone = 0x80A246B8; // type:func -func_80ABCE38 = 0x80A246F4; // type:func -func_80ABCE50 = 0x80A24710; // type:func -func_80ABCE90 = 0x80A24750; // type:func -func_80ABCEEC = 0x80A247AC; // type:func -EnNy_Move = 0x80A2480C; // type:func -EnNy_TurnToStone = 0x80A24920; // type:func -func_80ABD11C = 0x80A249E0; // type:func -EnNy_CollisionCheck = 0x80A24A54; // type:func -func_80ABD3B8 = 0x80A24C7C; // type:func -EnNy_Update = 0x80A24D64; // type:func -EnNy_SetupDie = 0x80A24FF0; // type:func -EnNy_Die = 0x80A25274; // type:func -EnNy_UpdateDeath = 0x80A25480; // type:func -EnNy_UpdateUnused = 0x80A254C0; // type:func -EnNy_Draw = 0x80A255F0; // type:func -EnNy_DrawDeathEffect = 0x80A258B8; // type:func -EnFr_OrientUnderwater = 0x80A25DB0; // type:func -EnFr_Init = 0x80A25EC4; // type:func -EnFr_DrawIdle = 0x80A25F7C; // type:func -EnFr_DrawActive = 0x80A25FA4; // type:func -EnFr_Update = 0x80A25FB8; // type:func -EnFr_Destroy = 0x80A262B0; // type:func -EnFr_IsDivingIntoWater = 0x80A262E4; // type:func -EnFr_DivingIntoWater = 0x80A26368; // type:func -EnFr_IsBelowLogSpot = 0x80A26414; // type:func -EnFr_IsAboveAndWithin30DistXZ = 0x80A26470; // type:func -EnFr_DecrementBlinkTimer = 0x80A264EC; // type:func -EnFr_DecrementBlinkTimerUpdate = 0x80A26514; // type:func -EnFr_SetupJumpingOutOfWater = 0x80A265A4; // type:func -EnFr_JumpingOutOfWater = 0x80A26644; // type:func -EnFr_OrientOnLogSpot = 0x80A267E4; // type:func -EnFr_ChooseJumpFromLogSpot = 0x80A268A4; // type:func -EnFr_JumpingUp = 0x80A269B8; // type:func -EnFr_JumpingBackIntoWater = 0x80A26AF8; // type:func -EnFr_SetScaleActive = 0x80A26C50; // type:func -EnFr_ButterflyPath = 0x80A26D58; // type:func -EnFr_UpdateActive = 0x80A26EB4; // type:func -EnFr_SetupJumpingUp = 0x80A26F98; // type:func -EnFr_Idle = 0x80A27038; // type:func -EnFr_Activate = 0x80A27118; // type:func -EnFr_ActivateCheckFrogSong = 0x80A27180; // type:func -func_80A1BE98 = 0x80A27224; // type:func -EnFr_ListeningToOcarinaNotes = 0x80A2729C; // type:func -EnFr_ChildSong = 0x80A273E8; // type:func -EnFr_ChildSongFirstTime = 0x80A27520; // type:func -EnFr_TalkBeforeFrogSong = 0x80A27578; // type:func -EnFr_CheckOcarinaInputFrogSong = 0x80A275E0; // type:func -EnFr_DeactivateButterfly = 0x80A276DC; // type:func -EnFr_GetNextNoteFrogSong = 0x80A27724; // type:func -EnFr_SetupFrogSong = 0x80A277A0; // type:func -EnFr_IsFrogSongComplete = 0x80A27814; // type:func -EnFr_OcarinaMistake = 0x80A278C4; // type:func -EnFr_ContinueFrogSong = 0x80A27920; // type:func -EnFr_SetupReward = 0x80A27AC4; // type:func -EnFr_PrintTextBox = 0x80A27B40; // type:func -EnFr_TalkBeforeReward = 0x80A27B80; // type:func -EnFr_SetReward = 0x80A27BE8; // type:func -EnFr_Deactivate = 0x80A27CFC; // type:func -EnFr_GiveReward = 0x80A27DFC; // type:func -EnFr_SetIdle = 0x80A27E5C; // type:func -EnFr_UpdateIdle = 0x80A27EB0; // type:func -EnFr_OverrideLimbDraw = 0x80A27EDC; // type:func -EnFr_PostLimbDraw = 0x80A27F08; // type:func -EnFr_Draw = 0x80A27FC0; // type:func -ItemShield_SetupAction = 0x80A28840; // type:func -ItemShield_Init = 0x80A2884C; // type:func -ItemShield_Destroy = 0x80A289B4; // type:func -func_80B86AC8 = 0x80A289E0; // type:func -func_80B86BC8 = 0x80A28AE4; // type:func -func_80B86CA8 = 0x80A28BCC; // type:func -func_80B86F68 = 0x80A28E90; // type:func -ItemShield_Update = 0x80A28F9C; // type:func -ItemShield_Draw = 0x80A28FC0; // type:func -BgIceShelter_InitColliders = 0x80A29250; // type:func -BgIceShelter_InitDynaPoly = 0x80A29384; // type:func -BgIceShelter_RotateY = 0x80A293DC; // type:func -BgIceShelter_Init = 0x80A2945C; // type:func -BgIceShelter_Destroy = 0x80A295D8; // type:func -BgIceShelter_SpawnSteamAround = 0x80A29664; // type:func -BgIceShelter_SpawnSteamAlong = 0x80A298D8; // type:func -BgIceShelter_SetupIdle = 0x80A29B3C; // type:func -BgIceShelter_Idle = 0x80A29B58; // type:func -BgIceShelter_SetupMelt = 0x80A29C98; // type:func -BgIceShelter_Melt = 0x80A29CB4; // type:func -BgIceShelter_Update = 0x80A29E78; // type:func -BgIceShelter_Draw = 0x80A29E9C; // type:func -EnIceHono_XZDistanceSquared = 0x80A2A480; // type:func -EnIceHono_InitCapturableFlame = 0x80A2A4B0; // type:func -EnIceHono_InitDroppedFlame = 0x80A2A554; // type:func -EnIceHono_InitSmallFlame = 0x80A2A65C; // type:func -EnIceHono_Init = 0x80A2A6C4; // type:func -EnIceHono_Destroy = 0x80A2A824; // type:func -EnIceHono_InBottleRange = 0x80A2A87C; // type:func -EnIceHono_SetupActionCapturableFlame = 0x80A2A96C; // type:func -EnIceHono_CapturableFlame = 0x80A2A994; // type:func -EnIceHono_SetupActionDroppedFlame = 0x80A2AA44; // type:func -EnIceHono_DropFlame = 0x80A2AA68; // type:func -EnIceHono_SetupActionSpreadFlames = 0x80A2AC28; // type:func -EnIceHono_SpreadFlames = 0x80A2AC4C; // type:func -EnIceHono_SetupActionSmallFlame = 0x80A2AEA8; // type:func -EnIceHono_SmallFlameMove = 0x80A2AF7C; // type:func -EnIceHono_Update = 0x80A2B0D4; // type:func -EnIceHono_Draw = 0x80A2B268; // type:func -ItemOcarina_SetupAction = 0x80A2B670; // type:func -ItemOcarina_Init = 0x80A2B67C; // type:func -ItemOcarina_Destroy = 0x80A2B804; // type:func -ItemOcarina_Fly = 0x80A2B814; // type:func -ItemOcarina_GetThrown = 0x80A2B9C0; // type:func -func_80B864EC = 0x80A2BA18; // type:func -func_80B865E0 = 0x80A2BB0C; // type:func -ItemOcarina_DoNothing = 0x80A2BB6C; // type:func -ItemOcarina_StartSoTCutscene = 0x80A2BB7C; // type:func -ItemOcarina_WaitInWater = 0x80A2BBF0; // type:func -ItemOcarina_Update = 0x80A2BCC4; // type:func -ItemOcarina_Draw = 0x80A2BCE8; // type:func -MagicDark_Init = 0x80A2BE40; // type:func -MagicDark_Destroy = 0x80A2BF24; // type:func -MagicDark_DiamondUpdate = 0x80A2BF5C; // type:func -MagicDark_DimLighting = 0x80A2C1A4; // type:func -MagicDark_OrbUpdate = 0x80A2C2F0; // type:func -MagicDark_DiamondDraw = 0x80A2C498; // type:func -MagicDark_OrbDraw = 0x80A2C700; // type:func -Demo6K_SetupAction = 0x80A2D690; // type:func -Demo6K_Init = 0x80A2D69C; // type:func -Demo6K_Destroy = 0x80A2DA84; // type:func -Demo6K_WaitForObject = 0x80A2DAB8; // type:func -func_80966E04 = 0x80A2DB10; // type:func -func_80966E98 = 0x80A2DBA8; // type:func -func_80966F84 = 0x80A2DC9C; // type:func -func_809670AC = 0x80A2DDC4; // type:func -func_8096712C = 0x80A2DE44; // type:func -func_80967244 = 0x80A2DF5C; // type:func -func_80967410 = 0x80A2E128; // type:func -func_809674E0 = 0x80A2E1F8; // type:func -func_809676A4 = 0x80A2E3BC; // type:func -func_8096784C = 0x80A2E564; // type:func -func_80967A04 = 0x80A2E720; // type:func -func_80967AD0 = 0x80A2E7EC; // type:func -func_80967BF8 = 0x80A2E918; // type:func -func_80967DBC = 0x80A2EADC; // type:func -func_80967F10 = 0x80A2EC28; // type:func -Demo6K_Update = 0x80A2ECF4; // type:func -func_80967FFC = 0x80A2ED18; // type:func -func_80968298 = 0x80A2EF64; // type:func -func_8096865C = 0x80A2F2C4; // type:func -func_809688C4 = 0x80A2F4D0; // type:func -func_80968B70 = 0x80A2F74C; // type:func -func_80968FB0 = 0x80A2FB4C; // type:func -func_809691BC = 0x80A2FD04; // type:func -EnAnubiceTag_Init = 0x80A303A0; // type:func -EnAnubiceTag_Destroy = 0x80A303F0; // type:func -EnAnubiceTag_SpawnAnubis = 0x80A30400; // type:func -EnAnubiceTag_ManageAnubis = 0x80A30478; // type:func -EnAnubiceTag_Update = 0x80A305DC; // type:func -EnAnubiceTag_Draw = 0x80A30600; // type:func -BgHakaGate_Init = 0x80A30670; // type:func -BgHakaGate_Destroy = 0x80A30940; // type:func -BgHakaGate_DoNothing = 0x80A3099C; // type:func -BgHakaGate_StatueInactive = 0x80A309AC; // type:func -BgHakaGate_StatueIdle = 0x80A309E8; // type:func -BgHakaGate_StatueTurn = 0x80A30B00; // type:func -BgHakaGate_FloorClosed = 0x80A30CE4; // type:func -BgHakaGate_FloorOpen = 0x80A30E6C; // type:func -BgHakaGate_GateWait = 0x80A30EF8; // type:func -BgHakaGate_GateOpen = 0x80A30F48; // type:func -BgHakaGate_SkullOfTruth = 0x80A30FD8; // type:func -BgHakaGate_FalseSkull = 0x80A31034; // type:func -BgHakaGate_Update = 0x80A310B4; // type:func -BgHakaGate_DrawFlame = 0x80A310FC; // type:func -BgHakaGate_Draw = 0x80A312C8; // type:func -BgSpot15Saku_Init = 0x80A31700; // type:func -BgSpot15Saku_Destroy = 0x80A317B4; // type:func -func_808B4930 = 0x80A317E8; // type:func -func_808B4978 = 0x80A31830; // type:func -func_808B4A04 = 0x80A318BC; // type:func -BgSpot15Saku_Update = 0x80A318EC; // type:func -BgSpot15Saku_Draw = 0x80A31920; // type:func -BgJyaGoroiwa_UpdateCollider = 0x80A31A40; // type:func -BgJyaGoroiwa_InitCollider = 0x80A31A98; // type:func -BgJyaGoroiwa_UpdateRotation = 0x80A31B00; // type:func -BgJyaGoroiwa_Init = 0x80A31B40; // type:func -BgJyaGoroiwa_Destroy = 0x80A31BD4; // type:func -BgJyaGoroiwa_SetupMove = 0x80A31C00; // type:func -BgJyaGoroiwa_Move = 0x80A31C30; // type:func -BgJyaGoroiwa_SetupWait = 0x80A31EC4; // type:func -BgJyaGoroiwa_Wait = 0x80A31EDC; // type:func -BgJyaGoroiwa_Update = 0x80A31F2C; // type:func -BgJyaGoroiwa_Draw = 0x80A32018; // type:func -BgJyaZurerukabe_InitDynaPoly = 0x80A321C0; // type:func -func_8089B4C8 = 0x80A32218; // type:func -BgJyaZurerukabe_Init = 0x80A323B4; // type:func -BgJyaZurerukabe_Destroy = 0x80A32474; // type:func -func_8089B7B4 = 0x80A324C0; // type:func -func_8089B7C4 = 0x80A324D4; // type:func -func_8089B80C = 0x80A32520; // type:func -func_8089B870 = 0x80A32588; // type:func -BgJyaZurerukabe_Update = 0x80A32650; // type:func -BgJyaZurerukabe_Draw = 0x80A326A8; // type:func -func_808958F0 = 0x80A32870; // type:func -BgJyaCobra_InitDynapoly = 0x80A328C4; // type:func -BgJyaCobra_SpawnRay = 0x80A3291C; // type:func -func_80895A70 = 0x80A32984; // type:func -func_80895BEC = 0x80A32B04; // type:func -func_80895C74 = 0x80A32B88; // type:func -BgJyaCobra_UpdateShadowFromSide = 0x80A32E08; // type:func -BgJyaCobra_UpdateShadowFromTop = 0x80A33430; // type:func -BgJyaCobra_Init = 0x80A336EC; // type:func -BgJyaCobra_Destroy = 0x80A337D8; // type:func -func_80896918 = 0x80A3380C; // type:func -func_80896950 = 0x80A33848; // type:func -func_808969F8 = 0x80A338F0; // type:func -func_80896ABC = 0x80A339B8; // type:func -BgJyaCobra_Update = 0x80A33B4C; // type:func -func_80896CB4 = 0x80A33BC0; // type:func -func_80896D78 = 0x80A33C44; // type:func -BgJyaCobra_DrawShadow = 0x80A33D70; // type:func -BgJyaCobra_Draw = 0x80A33FDC; // type:func -BgJyaKanaami_InitDynaPoly = 0x80A34590; // type:func -BgJyaKanaami_Init = 0x80A345E8; // type:func -BgJyaKanaami_Destroy = 0x80A34668; // type:func -func_80899880 = 0x80A3469C; // type:func -func_80899894 = 0x80A346B4; // type:func -func_8089993C = 0x80A3475C; // type:func -func_80899950 = 0x80A34774; // type:func -func_80899A08 = 0x80A3482C; // type:func -BgJyaKanaami_Update = 0x80A34840; // type:func -BgJyaKanaami_Draw = 0x80A34874; // type:func -Fishing_SetColliderElement = 0x80A34940; // type:func -Fishing_SeedRand = 0x80A349F0; // type:func -Fishing_RandZeroOne = 0x80A34A10; // type:func -Fishing_SmoothStepToS = 0x80A34B38; // type:func -Fishing_SpawnRipple = 0x80A34BE4; // type:func -Fishing_SpawnDustSplash = 0x80A34D3C; // type:func -Fishing_SpawnWaterDust = 0x80A34E84; // type:func -Fishing_SpawnBubble = 0x80A34FBC; // type:func -Fishing_SpawnRainDrop = 0x80A350EC; // type:func -Fishing_InitPondProps = 0x80A351E4; // type:func -Fishing_Init = 0x80A354F8; // type:func -Fishing_Destroy = 0x80A35DE0; // type:func -Fishing_UpdateEffects = 0x80A35E58; // type:func -Fishing_DrawEffects = 0x80A3659C; // type:func -Fishing_DrawStreamSplash = 0x80A36FFC; // type:func -Fishing_IsAboveCounter = 0x80A37180; // type:func -Fishing_UpdateLine = 0x80A37274; // type:func -Fishing_UpdateLinePos = 0x80A37800; // type:func -Fishing_DrawLureHook = 0x80A37998; // type:func -Fishing_UpdateSinkingLure = 0x80A37E7C; // type:func -Fishing_DrawSinkingLure = 0x80A38180; // type:func -Fishing_DrawLureAndLine = 0x80A3844C; // type:func -Fishing_DrawRod = 0x80A38C3C; // type:func -Fishing_UpdateLure = 0x80A39698; // type:func -Fishing_SplashBySize = 0x80A3B64C; // type:func -Fishing_SplashBySize2 = 0x80A3B914; // type:func -func_80B70ED4 = 0x80A3BAF8; // type:func -Fishing_FishLeapSfx = 0x80A3BE98; // type:func -Fishing_HandleAquariumDialog = 0x80A3C058; // type:func -Fishing_UpdateFish = 0x80A3C218; // type:func -Fishing_FishOverrideLimbDraw = 0x80A40650; // type:func -Fishing_FishPostLimbDraw = 0x80A40770; // type:func -Fishing_LoachOverrideLimbDraw = 0x80A407B0; // type:func -Fishing_LoachPostLimbDraw = 0x80A40830; // type:func -Fishing_DrawFish = 0x80A40870; // type:func -Fishing_HandleReedContact = 0x80A40AB8; // type:func -Fishing_HandleLilyPadContact = 0x80A40B64; // type:func -Fishing_UpdatePondProps = 0x80A40C4C; // type:func -Fishing_DrawPondProps = 0x80A40F08; // type:func -Fishing_UpdateGroupFishes = 0x80A4134C; // type:func -Fishing_DrawGroupFishes = 0x80A41C1C; // type:func -Fishing_HandleOwnerDialog = 0x80A41E0C; // type:func -Fishing_UpdateOwner = 0x80A42C90; // type:func -Fishing_OwnerOverrideLimbDraw = 0x80A44998; // type:func -Fishing_OwnerPostLimbDraw = 0x80A449D0; // type:func -Fishing_DrawOwner = 0x80A44AE0; // type:func -ObjOshihiki_InitDynapoly = 0x80A4F3F0; // type:func -ObjOshihiki_RotateXZ = 0x80A4F448; // type:func -ObjOshihiki_StrongEnough = 0x80A4F49C; // type:func -ObjOshihiki_ResetFloors = 0x80A4F520; // type:func -ObjOshihiki_GetBlockUnder = 0x80A4F54C; // type:func -ObjOshihiki_UpdateInitPos = 0x80A4F5DC; // type:func -ObjOshihiki_NoSwitchPress = 0x80A4F70C; // type:func -ObjOshihiki_CheckType = 0x80A4F7D8; // type:func -ObjOshihiki_SetScale = 0x80A4F828; // type:func -ObjOshihiki_SetTexture = 0x80A4F860; // type:func -ObjOshihiki_SetColor = 0x80A4F8C0; // type:func -ObjOshihiki_Init = 0x80A4F968; // type:func -ObjOshihiki_Destroy = 0x80A4FA90; // type:func -ObjOshihiki_SetFloors = 0x80A4FAC4; // type:func -ObjOshihiki_GetHighestFloor = 0x80A4FC24; // type:func -ObjOshihiki_SetGround = 0x80A4FD70; // type:func -ObjOshihiki_CheckFloor = 0x80A4FDC8; // type:func -ObjOshihiki_CheckGround = 0x80A4FE20; // type:func -ObjOshihiki_CheckWall = 0x80A4FE98; // type:func -ObjOshihiki_MoveWithBlockUnder = 0x80A500EC; // type:func -ObjOshihiki_SetupOnScene = 0x80A501E8; // type:func -ObjOshihiki_OnScene = 0x80A50220; // type:func -ObjOshihiki_SetupOnActor = 0x80A5030C; // type:func -ObjOshihiki_OnActor = 0x80A5034C; // type:func -ObjOshihiki_SetupPush = 0x80A50544; // type:func -ObjOshihiki_Push = 0x80A50570; // type:func -ObjOshihiki_SetupFall = 0x80A5078C; // type:func -ObjOshihiki_Fall = 0x80A507E4; // type:func -ObjOshihiki_Update = 0x80A508E8; // type:func -ObjOshihiki_Draw = 0x80A50970; // type:func -BgGateShutter_Init = 0x80A50EA0; // type:func -BgGateShutter_Destroy = 0x80A50F88; // type:func -func_8087828C = 0x80A50FBC; // type:func -func_80878300 = 0x80A51030; // type:func -func_808783AC = 0x80A510E0; // type:func -func_808783D4 = 0x80A51108; // type:func -BgGateShutter_Update = 0x80A511C4; // type:func -BgGateShutter_Draw = 0x80A511F8; // type:func -EffDust_SetupAction = 0x80A51320; // type:func -EffDust_SetupDraw = 0x80A5132C; // type:func -EffDust_InitPosAndDistance = 0x80A51338; // type:func -EffDust_Init = 0x80A513B0; // type:func -EffDust_Destroy = 0x80A51570; // type:func -EffDust_UpdateFunc_8099DB28 = 0x80A51580; // type:func -EffDust_UpdateFunc_8099DD74 = 0x80A517CC; // type:func -EffDust_UpdateFunc_8099DFC0 = 0x80A51A18; // type:func -EffDust_Update = 0x80A51F2C; // type:func -EffDust_DrawFunc_8099E4F4 = 0x80A51F50; // type:func -EffDust_DrawFunc_8099E784 = 0x80A521AC; // type:func -EffDust_Draw = 0x80A52510; // type:func -BgSpot01Fusya_SetupAction = 0x80A52700; // type:func -BgSpot01Fusya_Init = 0x80A5270C; // type:func -BgSpot01Fusya_Destroy = 0x80A52788; // type:func -func_808AAA50 = 0x80A52798; // type:func -BgSpot01Fusya_Update = 0x80A52858; // type:func -BgSpot01Fusya_Draw = 0x80A5287C; // type:func -BgSpot01Idohashira_PlayBreakSfx1 = 0x80A529A0; // type:func -BgSpot01Idohashira_PlayBreakSfx2 = 0x80A529C8; // type:func -func_808AAD3C = 0x80A52A00; // type:func -func_808AAE6C = 0x80A52B38; // type:func -func_808AAF34 = 0x80A52C04; // type:func -BgSpot01Idohashira_Destroy = 0x80A52DC8; // type:func -BgSpot01Idohashira_NotInCsMode = 0x80A52DFC; // type:func -BgSpot01Idohashira_GetCue = 0x80A52E1C; // type:func -func_808AB18C = 0x80A52E68; // type:func -func_808AB1DC = 0x80A52EBC; // type:func -func_808AB29C = 0x80A52F60; // type:func -func_808AB3E8 = 0x80A530AC; // type:func -func_808AB3F8 = 0x80A530C0; // type:func -func_808AB414 = 0x80A530E0; // type:func -func_808AB444 = 0x80A5310C; // type:func -func_808AB504 = 0x80A531B8; // type:func -func_808AB510 = 0x80A531C8; // type:func -func_808AB530 = 0x80A531E8; // type:func -func_808AB570 = 0x80A5322C; // type:func -BgSpot01Idohashira_Update = 0x80A5324C; // type:func -BgSpot01Idohashira_Init = 0x80A53294; // type:func -func_808AB700 = 0x80A533AC; // type:func -BgSpot01Idohashira_Draw = 0x80A5343C; // type:func -BgSpot01Idomizu_Init = 0x80A535A0; // type:func -BgSpot01Idomizu_Destroy = 0x80A53638; // type:func -func_808ABB84 = 0x80A53648; // type:func -BgSpot01Idomizu_Update = 0x80A536FC; // type:func -BgSpot01Idomizu_Draw = 0x80A53720; // type:func -BgPoSyokudai_Init = 0x80A538B0; // type:func -BgPoSyokudai_Destroy = 0x80A53B50; // type:func -BgPoSyokudai_Update = 0x80A53BC0; // type:func -BgPoSyokudai_Draw = 0x80A53C40; // type:func -BgGanonOtyuka_Init = 0x80A54200; // type:func -BgGanonOtyuka_Destroy = 0x80A5429C; // type:func -BgGanonOtyuka_WaitToFall = 0x80A542D0; // type:func -BgGanonOtyuka_Fall = 0x80A54520; // type:func -BgGanonOtyuka_DoNothing = 0x80A54960; // type:func -BgGanonOtyuka_Update = 0x80A54970; // type:func -BgGanonOtyuka_Draw = 0x80A549B8; // type:func -func_808B3960 = 0x80A56840; // type:func -BgSpot15Rrbox_RotatePoint = 0x80A56898; // type:func -func_808B3A34 = 0x80A568EC; // type:func -func_808B3A40 = 0x80A568FC; // type:func -func_808B3AAC = 0x80A5696C; // type:func -BgSpot15Rrbox_Init = 0x80A56A54; // type:func -BgSpot15Rrbox_Destroy = 0x80A56B24; // type:func -BgSpot15Rrbox_TrySnapToCheckedPoint = 0x80A56B60; // type:func -BgSpot15Rrbox_GetFloorHeight = 0x80A56CA0; // type:func -BgSpot15Rrbox_TrySnapToFloor = 0x80A56E20; // type:func -func_808B4010 = 0x80A56EE0; // type:func -func_808B4084 = 0x80A56F54; // type:func -func_808B40AC = 0x80A56F80; // type:func -func_808B4178 = 0x80A5704C; // type:func -func_808B4194 = 0x80A5706C; // type:func -func_808B4380 = 0x80A57258; // type:func -func_808B43D0 = 0x80A572A8; // type:func -func_808B44B8 = 0x80A57374; // type:func -func_808B44CC = 0x80A5738C; // type:func -BgSpot15Rrbox_Update = 0x80A573B0; // type:func -BgSpot15Rrbox_Draw = 0x80A5741C; // type:func -BgUmaJump_Init = 0x80A57620; // type:func -BgUmaJump_Destroy = 0x80A576DC; // type:func -BgUmaJump_Update = 0x80A57710; // type:func -BgUmaJump_Draw = 0x80A57720; // type:func -EnInsect_InitFlags = 0x80A577B0; // type:func -EnInsect_XZDistanceSquared = 0x80A577D4; // type:func -EnInsect_InBottleRange = 0x80A57804; // type:func -EnInsect_SetCrawlAnim = 0x80A578F4; // type:func -EnInsect_TryFindNearbySoil = 0x80A57940; // type:func -EnInsect_UpdateCrawlSfx = 0x80A579F8; // type:func -EnInsect_Init = 0x80A57A8C; // type:func -EnInsect_Destroy = 0x80A57CD8; // type:func -EnInsect_SetupSlowDown = 0x80A57D48; // type:func -EnInsect_SlowDown = 0x80A57D98; // type:func -EnInsect_SetupCrawl = 0x80A57F3C; // type:func -EnInsect_Crawl = 0x80A57F8C; // type:func -EnInsect_SetupRunFromPlayer = 0x80A581B8; // type:func -EnInsect_RunFromPlayer = 0x80A58208; // type:func -EnInsect_SetupCaught = 0x80A58400; // type:func -EnInsect_Caught = 0x80A5846C; // type:func -EnInsect_SetupDig = 0x80A58564; // type:func -EnInsect_Dig = 0x80A585DC; // type:func -EnInsect_SetupWalkOnWater = 0x80A58800; // type:func -EnInsect_WalkOnWater = 0x80A58860; // type:func -EnInsect_SetupDrown = 0x80A58B94; // type:func -EnInsect_Drown = 0x80A58C0C; // type:func -EnInsect_SetupDropped = 0x80A58D3C; // type:func -EnInsect_Dropped = 0x80A58E04; // type:func -EnInsect_Update = 0x80A59534; // type:func -EnInsect_Draw = 0x80A5977C; // type:func -EnButte_SelectFlightParams = 0x80A59CD0; // type:func -EnButte_ResetTransformationEffect = 0x80A59D54; // type:func -EnButte_UpdateTransformationEffect = 0x80A59D70; // type:func -EnButte_DrawTransformationEffect = 0x80A59DA8; // type:func -EnButte_Init = 0x80A59FE4; // type:func -EnButte_Destroy = 0x80A5A158; // type:func -func_809CD56C = 0x80A5A184; // type:func -func_809CD634 = 0x80A5A24C; // type:func -EnButte_Turn = 0x80A5A314; // type:func -EnButte_SetupFlyAround = 0x80A5A3B0; // type:func -EnButte_FlyAround = 0x80A5A3FC; // type:func -EnButte_SetupFollowLink = 0x80A5A7E0; // type:func -EnButte_FollowLink = 0x80A5A82C; // type:func -EnButte_SetupTransformIntoFairy = 0x80A5ABE0; // type:func -EnButte_TransformIntoFairy = 0x80A5AC30; // type:func -EnButte_SetupWaitToDie = 0x80A5ACEC; // type:func -EnButte_WaitToDie = 0x80A5AD0C; // type:func -EnButte_Update = 0x80A5AD3C; // type:func -EnButte_Draw = 0x80A5AE7C; // type:func -EnFish_XZDistanceSquared = 0x80A5B2A0; // type:func -EnFish_SetInWaterAnimation = 0x80A5B2D0; // type:func -EnFish_SetOutOfWaterAnimation = 0x80A5B334; // type:func -EnFish_BeginRespawn = 0x80A5B398; // type:func -EnFish_SetCutsceneData = 0x80A5B3CC; // type:func -EnFish_ClearCutsceneData = 0x80A5B464; // type:func -EnFish_Init = 0x80A5B48C; // type:func -EnFish_Destroy = 0x80A5B5D0; // type:func -EnFish_SetYOffset = 0x80A5B5FC; // type:func -EnFish_InBottleRange = 0x80A5B6B4; // type:func -EnFish_CheckXZDistanceToPlayer = 0x80A5B7A4; // type:func -EnFish_Respawning_SetupSlowDown = 0x80A5B7D4; // type:func -EnFish_Respawning_SlowDown = 0x80A5B82C; // type:func -EnFish_Respawning_SetupFollowChild = 0x80A5B920; // type:func -EnFish_Respawning_FollowChild = 0x80A5B978; // type:func -EnFish_Respawning_SetupFleePlayer = 0x80A5BB0C; // type:func -EnFish_Respawning_FleePlayer = 0x80A5BB64; // type:func -EnFish_Respawning_SetupApproachPlayer = 0x80A5BD54; // type:func -EnFish_Respawning_ApproachPlayer = 0x80A5BDAC; // type:func -EnFish_Dropped_SetupFall = 0x80A5BF70; // type:func -EnFish_Dropped_Fall = 0x80A5BFD0; // type:func -EnFish_Dropped_SetupFlopOnGround = 0x80A5C0D8; // type:func -EnFish_Dropped_FlopOnGround = 0x80A5C21C; // type:func -EnFish_Dropped_SetupSwimAway = 0x80A5C3F8; // type:func -EnFish_Dropped_SwimAway = 0x80A5C46C; // type:func -EnFish_Unique_SetupSwimIdle = 0x80A5C634; // type:func -EnFish_Unique_SwimIdle = 0x80A5C68C; // type:func -EnFish_Cutscene_FlopOnGround = 0x80A5C8B4; // type:func -EnFish_Cutscene_WiggleFlyingThroughAir = 0x80A5C9E4; // type:func -EnFish_UpdateCutscene = 0x80A5CA80; // type:func -EnFish_OrdinaryUpdate = 0x80A5CC40; // type:func -EnFish_RespawningUpdate = 0x80A5CDC4; // type:func -EnFish_Update = 0x80A5CED8; // type:func -EnFish_Draw = 0x80A5CF84; // type:func -BgSpot08Iceblock_SetupAction = 0x80A5D3B0; // type:func -BgSpot08Iceblock_InitDynaPoly = 0x80A5D3BC; // type:func -BgSpot08Iceblock_CheckParams = 0x80A5D414; // type:func -BgSpot08Iceblock_Bobbing = 0x80A5D474; // type:func -BgSpot08Iceblock_SinkUnderPlayer = 0x80A5D4D0; // type:func -BgSpot08Iceblock_SetWaterline = 0x80A5D580; // type:func -BgSpot08Iceblock_MultVectorScalar = 0x80A5D5A0; // type:func -BgSpot08Iceblock_CrossProduct = 0x80A5D5D4; // type:func -BgSpot08Iceblock_NormalizeVector = 0x80A5D648; // type:func -BgSpot08Iceblock_Roll = 0x80A5D6E4; // type:func -BgSpot08Iceblock_SpawnTwinFloe = 0x80A5DA58; // type:func -BgSpot08Iceblock_Init = 0x80A5DB58; // type:func -BgSpot08Iceblock_Destroy = 0x80A5DD4C; // type:func -BgSpot08Iceblock_SetupFloatNonrotating = 0x80A5DD80; // type:func -BgSpot08Iceblock_FloatNonrotating = 0x80A5DDA4; // type:func -BgSpot08Iceblock_SetupFloatRotating = 0x80A5DDF8; // type:func -BgSpot08Iceblock_FloatRotating = 0x80A5DE1C; // type:func -BgSpot08Iceblock_SetupFloatOrbitingTwins = 0x80A5DE7C; // type:func -BgSpot08Iceblock_FloatOrbitingTwins = 0x80A5DEA0; // type:func -BgSpot08Iceblock_SetupNoAction = 0x80A5DF78; // type:func -BgSpot08Iceblock_Update = 0x80A5DF98; // type:func -BgSpot08Iceblock_Draw = 0x80A5E034; // type:func -ItemEtcetera_SetupAction = 0x80A5E3F0; // type:func -ItemEtcetera_Init = 0x80A5E3FC; // type:func -ItemEtcetera_Destroy = 0x80A5E57C; // type:func -ItemEtcetera_WaitForObject = 0x80A5E58C; // type:func -func_80B85824 = 0x80A5E5E4; // type:func -func_80B858B4 = 0x80A5E67C; // type:func -ItemEtcetera_SpawnSparkles = 0x80A5E75C; // type:func -ItemEtcetera_MoveFireArrowDown = 0x80A5E86C; // type:func -func_80B85B28 = 0x80A5E8FC; // type:func -ItemEtcetera_UpdateFireArrow = 0x80A5E944; // type:func -ItemEtcetera_Update = 0x80A5E9C4; // type:func -ItemEtcetera_DrawThroughLens = 0x80A5E9E8; // type:func -ItemEtcetera_Draw = 0x80A5EA40; // type:func -ArrowFire_SetupAction = 0x80A5ECC0; // type:func -ArrowFire_Init = 0x80A5ECCC; // type:func -ArrowFire_Destroy = 0x80A5ED48; // type:func -ArrowFire_Charge = 0x80A5ED6C; // type:func -func_80865ECC = 0x80A5EE60; // type:func -ArrowFire_Hit = 0x80A5EEB8; // type:func -ArrowFire_Fly = 0x80A5F084; // type:func -ArrowFire_Update = 0x80A5F1D8; // type:func -ArrowFire_Draw = 0x80A5F22C; // type:func -ArrowIce_SetupAction = 0x80A60B80; // type:func -ArrowIce_Init = 0x80A60B8C; // type:func -ArrowIce_Destroy = 0x80A60C08; // type:func -ArrowIce_Charge = 0x80A60C2C; // type:func -func_80867E8C = 0x80A60D20; // type:func -ArrowIce_Hit = 0x80A60D78; // type:func -ArrowIce_Fly = 0x80A60F44; // type:func -ArrowIce_Update = 0x80A61098; // type:func -ArrowIce_Draw = 0x80A610EC; // type:func -ArrowLight_SetupAction = 0x80A62A60; // type:func -ArrowLight_Init = 0x80A62A6C; // type:func -ArrowLight_Destroy = 0x80A62AE8; // type:func -ArrowLight_Charge = 0x80A62B0C; // type:func -func_80869E6C = 0x80A62C00; // type:func -ArrowLight_Hit = 0x80A62C58; // type:func -ArrowLight_Fly = 0x80A62E24; // type:func -ArrowLight_Update = 0x80A62F78; // type:func -ArrowLight_Draw = 0x80A62FCC; // type:func -ObjKibako_SpawnCollectible = 0x80A64950; // type:func -ObjKibako_ApplyGravity = 0x80A649B0; // type:func -ObjKibako_InitCollider = 0x80A649E4; // type:func -ObjKibako_Init = 0x80A64A3C; // type:func -ObjKibako_Destroy = 0x80A64AB4; // type:func -ObjKibako_AirBreak = 0x80A64AE0; // type:func -ObjKibako_WaterBreak = 0x80A64D60; // type:func -ObjKibako_SetupIdle = 0x80A64FE0; // type:func -ObjKibako_Idle = 0x80A64FFC; // type:func -ObjKibako_SetupHeld = 0x80A651F8; // type:func -ObjKibako_Held = 0x80A6522C; // type:func -ObjKibako_SetupThrown = 0x80A652F8; // type:func -ObjKibako_Thrown = 0x80A65358; // type:func -ObjKibako_Update = 0x80A65494; // type:func -ObjKibako_Draw = 0x80A654B8; // type:func -ObjTsubo_SpawnCollectible = 0x80A65650; // type:func -ObjTsubo_ApplyGravity = 0x80A656B0; // type:func -ObjTsubo_SnapToFloor = 0x80A656E4; // type:func -ObjTsubo_InitCollider = 0x80A65780; // type:func -ObjTsubo_Init = 0x80A657D8; // type:func -ObjTsubo_Destroy = 0x80A658A8; // type:func -ObjTsubo_AirBreak = 0x80A658D4; // type:func -ObjTsubo_WaterBreak = 0x80A65B5C; // type:func -ObjTsubo_SetupWaitForObject = 0x80A65DF4; // type:func -ObjTsubo_WaitForObject = 0x80A65E08; // type:func -ObjTsubo_SetupIdle = 0x80A65E7C; // type:func -ObjTsubo_Idle = 0x80A65E90; // type:func -ObjTsubo_SetupLiftedUp = 0x80A660A0; // type:func -ObjTsubo_LiftedUp = 0x80A660E4; // type:func -ObjTsubo_SetupThrown = 0x80A6616C; // type:func -ObjTsubo_Thrown = 0x80A66234; // type:func -ObjTsubo_Update = 0x80A663C8; // type:func -ObjTsubo_Draw = 0x80A663EC; // type:func -EnWonderItem_Destroy = 0x80A66640; // type:func -EnWonderItem_DropCollectible = 0x80A66684; // type:func -EnWonderItem_Init = 0x80A667E0; // type:func -EnWonderItem_MultitagFree = 0x80A66B2C; // type:func -EnWonderItem_ProximityDrop = 0x80A66C74; // type:func -EnWonderItem_InteractSwitch = 0x80A66CDC; // type:func -EnWonderItem_ProximitySwitch = 0x80A66D10; // type:func -EnWonderItem_MultitagOrdered = 0x80A66D9C; // type:func -EnWonderItem_BombSoldier = 0x80A66EF8; // type:func -EnWonderItem_RollDrop = 0x80A66F88; // type:func -EnWonderItem_Update = 0x80A66FFC; // type:func -EnIk_Destroy = 0x80A67370; // type:func -EnIk_SetupAction = 0x80A673F0; // type:func -EnIk_InitImpl = 0x80A673FC; // type:func -EnIk_HandleBlocking = 0x80A67648; // type:func -EnIk_FindBreakableProp = 0x80A676D8; // type:func -EnIk_SetupStandUp = 0x80A67778; // type:func -EnIk_StandUp = 0x80A67824; // type:func -EnIk_SetupIdle = 0x80A67904; // type:func -EnIk_Idle = 0x80A67994; // type:func -EnIk_SetupWalkOrRun = 0x80A67B14; // type:func -EnIk_WalkOrRun = 0x80A67C0C; // type:func -EnIk_SetupVerticalAttack = 0x80A67E94; // type:func -EnIk_VerticalAttack = 0x80A67F24; // type:func -EnIk_SetupPullOutAxe = 0x80A680D8; // type:func -EnIk_PullOutAxe = 0x80A68178; // type:func -EnIk_SetupDoubleHorizontalAttack = 0x80A68234; // type:func -EnIk_DoubleHorizontalAttack = 0x80A682CC; // type:func -EnIk_SetupRecoverFromHorizontalAttack = 0x80A6843C; // type:func -EnIk_RecoverFromHorizontalAttack = 0x80A684C8; // type:func -EnIk_SetupSingleHorizontalAttack = 0x80A68510; // type:func -EnIk_SingleHorizontalAttack = 0x80A685A0; // type:func -EnIk_SetupStopAndBlock = 0x80A68660; // type:func -EnIk_StopAndBlock = 0x80A686EC; // type:func -EnIk_SetupReactToAttack = 0x80A68800; // type:func -EnIk_ReactToAttack = 0x80A68920; // type:func -EnIk_SetupDie = 0x80A689FC; // type:func -EnIk_Die = 0x80A68AA8; // type:func -EnIk_UpdateDamage = 0x80A68CA4; // type:func -EnIk_UpdateEnemy = 0x80A69010; // type:func -EnIk_SetPrimEnvColors = 0x80A69228; // type:func -EnIk_OverrideLimbDrawEnemy = 0x80A692CC; // type:func -EnIk_PostLimbDrawEnemy = 0x80A6938C; // type:func -EnIk_DrawEnemy = 0x80A6978C; // type:func -EnIk_StartMinibossBgm = 0x80A69BCC; // type:func -EnIk_UpdateAction2Sfx = 0x80A69BEC; // type:func -EnIk_PlayAxeSpawnSfx = 0x80A69DB8; // type:func -EnIk_SpawnAxeSmoke = 0x80A69E08; // type:func -EnIk_UpdateBgCheckInfo = 0x80A6A014; // type:func -EnIk_UpdateSkelAnime = 0x80A6A05C; // type:func -EnIk_GetCue = 0x80A6A080; // type:func -EnIk_SetStartPosRotFromCue = 0x80A6A0A8; // type:func -EnIk_GetAnimCurFrame = 0x80A6A128; // type:func -EnIk_SetupCsAction0 = 0x80A6A134; // type:func -EnIk_SetupCsAction1 = 0x80A6A148; // type:func -EnIk_SetupCsAction2 = 0x80A6A1D4; // type:func -EnIk_HandleEnemyChange = 0x80A6A254; // type:func -EnIk_PlayArmorFallSfx = 0x80A6A294; // type:func -EnIk_PlayDeathSfx = 0x80A6A2DC; // type:func -EnIk_SetupCsAction3 = 0x80A6A350; // type:func -EnIk_SetupCsAction4 = 0x80A6A428; // type:func -EnIk_SetupCsAction5 = 0x80A6A464; // type:func -EnIk_CsAction3 = 0x80A6A480; // type:func -EnIk_CsAction4 = 0x80A6A4B8; // type:func -EnIk_CsAction5 = 0x80A6A4F8; // type:func -EnIk_OverrideLimbDrawDefeat = 0x80A6A534; // type:func -EnIk_PostLimbDrawDefeat = 0x80A6A5A0; // type:func -EnIk_CsDrawDefeat = 0x80A6A7F0; // type:func -EnIk_HandleCsCues = 0x80A6A954; // type:func -EnIk_CsAction0 = 0x80A6AA50; // type:func -EnIk_CsAction1 = 0x80A6AA70; // type:func -EnIk_CsAction2 = 0x80A6AAA8; // type:func -EnIk_UpdateCutscene = 0x80A6AB0C; // type:func -EnIk_OverrideLimbDrawIntro = 0x80A6AB54; // type:func -EnIk_PostLimbDrawIntro = 0x80A6ABD8; // type:func -EnIk_CsDrawNothing = 0x80A6ADC8; // type:func -EnIk_CsDrawIntro = 0x80A6ADD8; // type:func -EnIk_DrawCutscene = 0x80A6AF3C; // type:func -EnIk_CsInit = 0x80A6AF84; // type:func -EnIk_ChangeToEnemy = 0x80A6AFF4; // type:func -EnIk_StartDefeatCutscene = 0x80A6B060; // type:func -EnIk_Init = 0x80A6B0F4; // type:func -DemoIk_Destroy = 0x80A6B9B0; // type:func -DemoIk_BgCheck = 0x80A6B9C0; // type:func -DemoIk_UpdateSkelAnime = 0x80A6BA08; // type:func -DemoIk_GetCue = 0x80A6BA2C; // type:func -DemoIk_CheckForCue = 0x80A6BA54; // type:func -DemoIk_SetMove = 0x80A6BA94; // type:func -DemoIk_EndMove = 0x80A6BAD4; // type:func -DemoIk_GetCurFrame = 0x80A6BAE8; // type:func -DemoIk_SetColors = 0x80A6BAF4; // type:func -DemoIk_GetCueChannel = 0x80A6BB8C; // type:func -DemoIk_Type1PlaySfx = 0x80A6BBB8; // type:func -DemoIk_SpawnDeadDb = 0x80A6BCB8; // type:func -DemoIk_MoveToStartPos = 0x80A6BE5C; // type:func -DemoIk_Type1Init = 0x80A6BEDC; // type:func -func_8098393C = 0x80A6BFF8; // type:func -func_8098394C = 0x80A6C00C; // type:func -func_809839AC = 0x80A6C070; // type:func -func_809839D0 = 0x80A6C098; // type:func -DemoIk_Type1Action0 = 0x80A6C158; // type:func -DemoIk_Type1Action1 = 0x80A6C178; // type:func -DemoIk_Type1Action2 = 0x80A6C1B0; // type:func -DemoIk_Type1PostLimbDraw = 0x80A6C218; // type:func -DemoIk_Type1Draw = 0x80A6C314; // type:func -DemoIk_Type2Init = 0x80A6C46C; // type:func -DemoIk_Type2PlaySfxOnFrame = 0x80A6C574; // type:func -DemoIk_Type2PlaySfx = 0x80A6C5D4; // type:func -func_80983FDC = 0x80A6C624; // type:func -func_80983FEC = 0x80A6C638; // type:func -func_8098402C = 0x80A6C678; // type:func -func_80984048 = 0x80A6C698; // type:func -DemoIk_Type2Action0 = 0x80A6C760; // type:func -DemoIk_Type2Action1 = 0x80A6C780; // type:func -DemoIk_Type2Action2 = 0x80A6C7A0; // type:func -DemoIk_Type2OverrideLimbDraw = 0x80A6C7DC; // type:func -DemoIk_Type2PostLimbDraw = 0x80A6C838; // type:func -DemoIk_Type2Draw = 0x80A6CA10; // type:func -DemoIk_Update = 0x80A6CB74; // type:func -DemoIk_DrawNothing = 0x80A6CBBC; // type:func -DemoIk_Draw = 0x80A6CBCC; // type:func -DemoIk_Init = 0x80A6CC14; // type:func -EnSkj_ChangeAnim = 0x80A6CEC0; // type:func -EnSkj_SetupAction = 0x80A6CF48; // type:func -EnSkj_CalculateCenter = 0x80A6CFA0; // type:func -EnSkj_SetNaviId = 0x80A6D038; // type:func -EnSkj_Init = 0x80A6D0BC; // type:func -EnSkj_Destroy = 0x80A6D408; // type:func -EnSkj_RangeCheck = 0x80A6D434; // type:func -EnSkj_GetItemXzRange = 0x80A6D4B0; // type:func -EnSkj_GetItemYRange = 0x80A6D4F8; // type:func -EnSkj_ShootNeedle = 0x80A6D524; // type:func -EnSkj_SpawnBlood = 0x80A6D63C; // type:func -EnSkj_CollisionCheck = 0x80A6D794; // type:func -func_80AFEDF8 = 0x80A6D950; // type:func -EnSkj_Backflip = 0x80A6D9DC; // type:func -EnSkj_Fade = 0x80A6DA24; // type:func -EnSkj_SetupWaitToShootNeedle = 0x80A6DAB4; // type:func -EnSkj_WaitToShootNeedle = 0x80A6DAF0; // type:func -EnSkj_SetupResetFight = 0x80A6DB90; // type:func -EnSkj_SariasSongKidIdle = 0x80A6DBD4; // type:func -EnSkj_SetupDie = 0x80A6DCCC; // type:func -EnSkj_WaitForDeathAnim = 0x80A6DD00; // type:func -func_80AFF1F0 = 0x80A6DD54; // type:func -EnSkj_PickNextFightAction = 0x80A6DD88; // type:func -func_80AFF2A0 = 0x80A6DE08; // type:func -EnSkj_WaitForLandAnim = 0x80A6DE4C; // type:func -func_80AFF334 = 0x80A6DEA0; // type:func -EnSkj_ResetFight = 0x80A6DEEC; // type:func -EnSkj_SetupStand = 0x80A6DF3C; // type:func -EnSkj_Fight = 0x80A6DF90; // type:func -EnSkj_SetupNeedleRecover = 0x80A6E15C; // type:func -EnSkj_NeedleRecover = 0x80A6E190; // type:func -EnSkj_SetupSpawnDeathEffect = 0x80A6E1CC; // type:func -EnSkj_SpawnDeathEffect = 0x80A6E1F4; // type:func -EnSkj_SetupWaitInRange = 0x80A6E30C; // type:func -EnSkj_WaitInRange = 0x80A6E344; // type:func -EnSkj_SetupWaitForSong = 0x80A6E558; // type:func -EnSkj_WaitForSong = 0x80A6E57C; // type:func -EnSkj_SetupAfterSong = 0x80A6E850; // type:func -EnSkj_AfterSong = 0x80A6E884; // type:func -EnSkj_SetupTalk = 0x80A6E8D8; // type:func -EnSkj_SariaSongTalk = 0x80A6E8F8; // type:func -func_80AFFE24 = 0x80A6E99C; // type:func -func_80AFFE44 = 0x80A6E9BC; // type:func -EnSkj_SetupPostSariasSong = 0x80A6EA34; // type:func -EnSkj_ChangeModeAfterSong = 0x80A6EA54; // type:func -EnSkj_SetupMaskTrade = 0x80A6EABC; // type:func -EnSkj_StartMaskTrade = 0x80A6EADC; // type:func -EnSkj_JumpFromStump = 0x80A6EB44; // type:func -EnSkj_WaitForLanding = 0x80A6EBA8; // type:func -EnSkj_SetupWaitForLandAnimFinish = 0x80A6EBF8; // type:func -EnSkj_WaitForLandAnimFinish = 0x80A6EC2C; // type:func -EnSkj_SetupWalkToPlayer = 0x80A6EC80; // type:func -EnSkj_WalkToPlayer = 0x80A6ECC4; // type:func -EnSkj_SetupAskForMask = 0x80A6ED60; // type:func -EnSkj_AskForMask = 0x80A6EDA8; // type:func -EnSkj_SetupTakeMask = 0x80A6EE40; // type:func -EnSkj_TakeMask = 0x80A6EE78; // type:func -EnSkj_SetupWaitForMaskTextClear = 0x80A6EF10; // type:func -EnSkj_WaitForMaskTextClear = 0x80A6EF30; // type:func -EnSkj_SetupWrongSong = 0x80A6EF98; // type:func -EnSkj_WrongSong = 0x80A6EFD0; // type:func -EnSkj_SetupWaitForTextClear = 0x80A6F024; // type:func -EnSkj_SariasSongWaitForTextClear = 0x80A6F044; // type:func -EnSkj_OcarinaGameSetupWaitForPlayer = 0x80A6F0BC; // type:func -EnSkj_OcarinaGameWaitForPlayer = 0x80A6F0FC; // type:func -EnSkj_IsLeavingGame = 0x80A6F138; // type:func -EnSkj_SetupIdle = 0x80A6F188; // type:func -EnSkj_Appear = 0x80A6F1BC; // type:func -EnSkj_OcarinaGameIdle = 0x80A6F1E4; // type:func -EnSkj_SetupPlayOcarinaGame = 0x80A6F230; // type:func -EnSkj_PlayOcarinaGame = 0x80A6F264; // type:func -EnSkj_SetupLeaveOcarinaGame = 0x80A6F2B0; // type:func -EnSkj_LeaveOcarinaGame = 0x80A6F2F8; // type:func -EnSkj_Update = 0x80A6F340; // type:func -EnSkj_SariasSongShortStumpUpdate = 0x80A6F524; // type:func -EnSkj_TurnPlayer = 0x80A6F54C; // type:func -EnSkj_SetupWaitForOcarina = 0x80A6F598; // type:func -EnSkj_WaitForOcarina = 0x80A6F654; // type:func -EnSkj_StartOcarinaMinigame = 0x80A6F6FC; // type:func -EnSkj_WaitForPlayback = 0x80A6F788; // type:func -EnSkj_FailedMiniGame = 0x80A6F9F8; // type:func -EnSkj_WaitForNextRound = 0x80A6FA38; // type:func -EnSkj_OfferNextRound = 0x80A6FA88; // type:func -EnSkj_WaitForOfferResponse = 0x80A6FAC4; // type:func -EnSkj_WonOcarinaMiniGame = 0x80A6FB6C; // type:func -EnSkj_WaitToGiveReward = 0x80A6FBAC; // type:func -EnSkj_GiveOcarinaGameReward = 0x80A6FC34; // type:func -EnSkj_FinishOcarinaGameRound = 0x80A6FCA8; // type:func -EnSkj_CleanupOcarinaGame = 0x80A6FD44; // type:func -EnSkj_OcarinaMinigameShortStumpUpdate = 0x80A6FDC0; // type:func -EnSkj_OverrideLimbDraw = 0x80A6FE44; // type:func -EnSkj_PostLimbDraw = 0x80A6FE60; // type:func -EnSkj_TranslucentDL = 0x80A6FF30; // type:func -EnSkj_OpaqueDL = 0x80A6FF7C; // type:func -EnSkj_Draw = 0x80A6FFB0; // type:func -EnSkjneedle_Init = 0x80A70800; // type:func -EnSkjneedle_Destroy = 0x80A70898; // type:func -EnSkjNeedle_CollisionCheck = 0x80A708C4; // type:func -EnSkjneedle_Update = 0x80A708F4; // type:func -EnSkjneedle_Draw = 0x80A709E4; // type:func -EnGSwitch_Init = 0x80A70B10; // type:func -EnGSwitch_Destroy = 0x80A70DA8; // type:func -EnGSwitch_Break = 0x80A70DD4; // type:func -EnGSwitch_WaitForObject = 0x80A70F7C; // type:func -EnGSwitch_SilverRupeeTracker = 0x80A71014; // type:func -EnGSwitch_SilverRupeeIdle = 0x80A710F8; // type:func -EnGSwitch_SilverRupeeCollected = 0x80A711E0; // type:func -EnGSwitch_GalleryRupee = 0x80A712C4; // type:func -EnGSwitch_ArcheryPot = 0x80A71664; // type:func -EnGSwitch_Kill = 0x80A7194C; // type:func -EnGSwitch_Update = 0x80A7197C; // type:func -EnGSwitch_DrawPot = 0x80A71AB0; // type:func -EnGSwitch_DrawRupee = 0x80A71B40; // type:func -EnGSwitch_SpawnEffects = 0x80A71C68; // type:func -EnGSwitch_UpdateEffects = 0x80A71D7C; // type:func -EnGSwitch_DrawEffects = 0x80A71F3C; // type:func -DemoExt_Destroy = 0x80A72340; // type:func -DemoExt_Init = 0x80A72350; // type:func -DemoExt_PlayVortexSFX = 0x80A72408; // type:func -DemoExt_GetCue = 0x80A72490; // type:func -DemoExt_SetupWait = 0x80A724B8; // type:func -DemoExt_SetupMaintainVortex = 0x80A724C8; // type:func -DemoExt_SetupDispellVortex = 0x80A72554; // type:func -DemoExt_FinishClosing = 0x80A7256C; // type:func -DemoExt_HandleCues = 0x80A725D8; // type:func -DemoExt_SetScrollAndRotation = 0x80A72684; // type:func -DemoExt_SetColorsAndScales = 0x80A726D4; // type:func -DemoExt_Wait = 0x80A72810; // type:func -DemoExt_MaintainVortex = 0x80A72830; // type:func -DemoExt_DispellVortex = 0x80A7286C; // type:func -DemoExt_Update = 0x80A728AC; // type:func -DemoExt_DrawNothing = 0x80A728F4; // type:func -DemoExt_DrawVortex = 0x80A72904; // type:func -DemoExt_Draw = 0x80A72B74; // type:func -DemoShd_SetupAction = 0x80A72C80; // type:func -DemoShd_Init = 0x80A72C8C; // type:func -DemoShd_Destroy = 0x80A72CDC; // type:func -func_80991298 = 0x80A72CEC; // type:func -DemoShd_Update = 0x80A72E44; // type:func -DemoShd_Draw = 0x80A72E68; // type:func -EnDns_Init = 0x80A75090; // type:func -EnDns_Destroy = 0x80A75204; // type:func -EnDns_ChangeAnim = 0x80A75230; // type:func -EnDns_CanBuyDekuNuts = 0x80A752B8; // type:func -EnDns_CanBuyDekuSticks = 0x80A75370; // type:func -EnDns_CanBuyPrice = 0x80A75428; // type:func -EnDns_CanBuyDekuSeeds = 0x80A75458; // type:func -EnDns_CanBuyDekuShield = 0x80A75520; // type:func -EnDns_CanBuyBombs = 0x80A75574; // type:func -EnDns_CanBuyArrows = 0x80A75614; // type:func -EnDns_CanBuyBottle = 0x80A756C4; // type:func -EnDns_PayPrice = 0x80A7571C; // type:func -EnDns_PayForDekuNuts = 0x80A75750; // type:func -EnDns_PayForHeartPiece = 0x80A75784; // type:func -EnDns_PayForBombs = 0x80A757CC; // type:func -EnDns_PayForArrows = 0x80A75800; // type:func -EnDns_PayForDekuStickUpgrade = 0x80A75834; // type:func -EnDns_PayForDekuNutUpgrade = 0x80A7587C; // type:func -EnDns_SetupIdle = 0x80A758C4; // type:func -EnDns_Idle = 0x80A75908; // type:func -EnDns_Talk = 0x80A759DC; // type:func -EnDns_OfferSaleItem = 0x80A75B14; // type:func -EnDns_SetupSale = 0x80A75C2C; // type:func -EnDns_Sale = 0x80A75C98; // type:func -EnDns_SetupBurrow = 0x80A75CE4; // type:func -EnDns_SetupNoSaleBurrow = 0x80A75DD8; // type:func -EnDns_Burrow = 0x80A75E50; // type:func -EnDns_PostBurrow = 0x80A75ECC; // type:func -EnDns_Update = 0x80A75FD0; // type:func -EnDns_Draw = 0x80A760C0; // type:func -ElfMsg_SetupAction = 0x80A76420; // type:func -ElfMsg_KillCheck = 0x80A7642C; // type:func -ElfMsg_Init = 0x80A76564; // type:func -ElfMsg_Destroy = 0x80A76658; // type:func -ElfMsg_GetMessageId = 0x80A76668; // type:func -ElfMsg_CallNaviCuboid = 0x80A76694; // type:func -ElfMsg_WithinXZDistance = 0x80A76764; // type:func -ElfMsg_CallNaviCylinder = 0x80A767B8; // type:func -ElfMsg_Update = 0x80A76880; // type:func -EnHonotrap_FlameCollisionCheck = 0x80A76A10; // type:func -EnHonotrap_GetNormal = 0x80A76AA4; // type:func -EnHonotrap_InitEye = 0x80A76B38; // type:func -EnHonotrap_InitFlame = 0x80A76CD4; // type:func -EnHonotrap_Init = 0x80A76E14; // type:func -EnHonotrap_Destroy = 0x80A76E6C; // type:func -EnHonotrap_SetupEyeIdle = 0x80A76EB8; // type:func -EnHonotrap_EyeIdle = 0x80A76ED4; // type:func -EnHonotrap_SetupEyeOpen = 0x80A76F8C; // type:func -EnHonotrap_EyeOpen = 0x80A76FE0; // type:func -EnHonotrap_SetupEyeAttack = 0x80A770B0; // type:func -EnHonotrap_EyeAttack = 0x80A770C8; // type:func -EnHonotrap_SetupEyeClose = 0x80A770F8; // type:func -EnHonotrap_EyeClose = 0x80A7710C; // type:func -EnHonotrap_SetupFlameGrow = 0x80A77158; // type:func -EnHonotrap_FlameGrow = 0x80A7716C; // type:func -EnHonotrap_SetupFlameDrop = 0x80A77200; // type:func -EnHonotrap_FlameDrop = 0x80A77268; // type:func -EnHonotrap_SetupFlameMove = 0x80A773AC; // type:func -EnHonotrap_FlameMove = 0x80A77438; // type:func -EnHonotrap_SetupFlameChase = 0x80A77604; // type:func -EnHonotrap_FlameChase = 0x80A77644; // type:func -EnHonotrap_SetupFlameVanish = 0x80A777F8; // type:func -EnHonotrap_FlameVanish = 0x80A7780C; // type:func -EnHonotrap_Update = 0x80A7789C; // type:func -EnHonotrap_DrawEye = 0x80A779E4; // type:func -EnHonotrap_DrawFlame = 0x80A77AD0; // type:func -EnHonotrap_Draw = 0x80A77C64; // type:func -EnTuboTrap_Init = 0x80A77F60; // type:func -EnTuboTrap_Destroy = 0x80A77FE4; // type:func -EnTuboTrap_DropCollectible = 0x80A78010; // type:func -EnTuboTrap_SpawnEffectsOnLand = 0x80A78070; // type:func -EnTuboTrap_SpawnEffectsInWater = 0x80A782E4; // type:func -EnTuboTrap_HandleImpact = 0x80A78564; // type:func -EnTuboTrap_WaitForProximity = 0x80A7878C; // type:func -EnTuboTrap_Levitate = 0x80A78898; // type:func -EnTuboTrap_Fly = 0x80A78924; // type:func -EnTuboTrap_Update = 0x80A789F4; // type:func -EnTuboTrap_Draw = 0x80A78AB4; // type:func -ObjIcePoly_Init = 0x80A78C00; // type:func -ObjIcePoly_Destroy = 0x80A78DC0; // type:func -ObjIcePoly_Idle = 0x80A78E10; // type:func -ObjIcePoly_Melt = 0x80A79040; // type:func -ObjIcePoly_Update = 0x80A792F8; // type:func -ObjIcePoly_Draw = 0x80A7931C; // type:func -BgSpot03Taki_ApplyOpeningAlpha = 0x80A795B0; // type:func -BgSpot03Taki_Init = 0x80A798EC; // type:func -BgSpot03Taki_Destroy = 0x80A7999C; // type:func -func_808ADEF0 = 0x80A799D0; // type:func -BgSpot03Taki_Update = 0x80A79BA4; // type:func -BgSpot03Taki_Draw = 0x80A79BC8; // type:func -BgSpot07Taki_Init = 0x80A79EA0; // type:func -BgSpot07Taki_Destroy = 0x80A79F4C; // type:func -BgSpot07Taki_DoNothing = 0x80A79F80; // type:func -BgSpot07Taki_Update = 0x80A79F90; // type:func -BgSpot07Taki_Draw = 0x80A79FB4; // type:func -EnFz_Init = 0x80A7A460; // type:func -EnFz_Destroy = 0x80A7A5E0; // type:func -EnFz_UpdateTargetPos = 0x80A7A630; // type:func -EnFz_ReachedTarget = 0x80A7A750; // type:func -EnFz_Damaged = 0x80A7A7A0; // type:func -EnFz_SpawnIceSmokeHiddenState = 0x80A7A994; // type:func -EnFz_SpawnIceSmokeGrowingState = 0x80A7A9A0; // type:func -EnFz_SpawnIceSmokeActiveState = 0x80A7AA80; // type:func -EnFz_ApplyDamage = 0x80A7AB44; // type:func -EnFz_SetYawTowardsPlayer = 0x80A7ADAC; // type:func -EnFz_SetupDisappear = 0x80A7ADEC; // type:func -EnFz_Disappear = 0x80A7AE1C; // type:func -EnFz_SetupWait = 0x80A7AE9C; // type:func -EnFz_Wait = 0x80A7AEDC; // type:func -EnFz_SetupAppear = 0x80A7AF2C; // type:func -EnFz_Appear = 0x80A7AF58; // type:func -EnFz_SetupAimForMove = 0x80A7AFE8; // type:func -EnFz_AimForMove = 0x80A7B02C; // type:func -EnFz_SetupMoveTowardsPlayer = 0x80A7B068; // type:func -EnFz_MoveTowardsPlayer = 0x80A7B09C; // type:func -EnFz_SetupAimForFreeze = 0x80A7B0D8; // type:func -EnFz_AimForFreeze = 0x80A7B108; // type:func -EnFz_SetupBlowSmoke = 0x80A7B144; // type:func -EnFz_BlowSmoke = 0x80A7B17C; // type:func -EnFz_SetupDespawn = 0x80A7B368; // type:func -EnFz_Despawn = 0x80A7B408; // type:func -EnFz_SetupMelt = 0x80A7B438; // type:func -EnFz_Melt = 0x80A7B47C; // type:func -EnFz_SetupBlowSmokeStationary = 0x80A7B544; // type:func -EnFz_BlowSmokeStationary = 0x80A7B588; // type:func -EnFz_Update = 0x80A7B780; // type:func -EnFz_Draw = 0x80A7B910; // type:func -EnFz_SpawnIceSmokeNoFreeze = 0x80A7BAD4; // type:func -EnFz_SpawnIceSmokeFreeze = 0x80A7BB78; // type:func -EnFz_UpdateIceSmoke = 0x80A7BC34; // type:func -EnFz_DrawEffects = 0x80A7BF20; // type:func -EnPoRelay_Init = 0x80A7C470; // type:func -EnPoRelay_Destroy = 0x80A7C5F8; // type:func -EnPoRelay_SetupIdle = 0x80A7C640; // type:func -EnPoRelay_Vec3sToVec3f = 0x80A7C67C; // type:func -EnPoRelay_SetupRace = 0x80A7C6C0; // type:func -EnPoRelay_SetupEndRace = 0x80A7C788; // type:func -EnPoRelay_CorrectY = 0x80A7C7C8; // type:func -EnPoRelay_Idle = 0x80A7C870; // type:func -EnPoRelay_Talk = 0x80A7C92C; // type:func -EnPoRelay_Race = 0x80A7C9A0; // type:func -EnPoRelay_EndRace = 0x80A7CEB4; // type:func -EnPoRelay_Talk2 = 0x80A7CF74; // type:func -EnPoRelay_DisappearAndReward = 0x80A7D04C; // type:func -EnPoRelay_Update = 0x80A7D518; // type:func -EnPoRelay_PostLimbDraw = 0x80A7D60C; // type:func -EnPoRelay_Draw = 0x80A7D800; // type:func -BgRelayObjects_Init = 0x80A7DB80; // type:func -BgRelayObjects_Destroy = 0x80A7DDC0; // type:func -func_808A90F4 = 0x80A7DE2C; // type:func -func_808A91AC = 0x80A7DEE8; // type:func -func_808A9234 = 0x80A7DF70; // type:func -BgRelayObjects_DoNothing = 0x80A7E05C; // type:func -func_808A932C = 0x80A7E06C; // type:func -func_808A939C = 0x80A7E0DC; // type:func -BgRelayObjects_Update = 0x80A7E1B0; // type:func -BgRelayObjects_Draw = 0x80A7E1D4; // type:func -EnDivingGame_Init = 0x80A7E330; // type:func -EnDivingGame_Destroy = 0x80A7E44C; // type:func -EnDivingGame_SpawnRuppy = 0x80A7E48C; // type:func -EnDivingGame_HasMinigameFinished = 0x80A7E5B8; // type:func -func_809EDCB0 = 0x80A7E764; // type:func -EnDivingGame_Talk = 0x80A7E800; // type:func -EnDivingGame_HandlePlayChoice = 0x80A7E990; // type:func -func_809EE048 = 0x80A7EAFC; // type:func -func_809EE0FC = 0x80A7EBB0; // type:func -func_809EE194 = 0x80A7EC48; // type:func -EnDivingGame_SetupRupeeThrow = 0x80A7ECA8; // type:func -EnDivingGame_RupeeThrow = 0x80A7EEBC; // type:func -EnDivingGame_SetupUnderwaterViewCs = 0x80A7F17C; // type:func -func_809EE780 = 0x80A7F234; // type:func -func_809EE800 = 0x80A7F2B4; // type:func -func_809EE8F0 = 0x80A7F3A4; // type:func -func_809EE96C = 0x80A7F424; // type:func -func_809EEA00 = 0x80A7F4B8; // type:func -func_809EEA90 = 0x80A7F548; // type:func -func_809EEAF8 = 0x80A7F5B4; // type:func -EnDivingGame_Update = 0x80A7F644; // type:func -EnDivingGame_EmptyDList = 0x80A7F870; // type:func -EnDivingGame_OverrideLimbDraw = 0x80A7F894; // type:func -EnDivingGame_Draw = 0x80A7F9F4; // type:func -EnKusa_SetupAction = 0x80A7FCE0; // type:func -EnKusa_SnapToFloor = 0x80A7FCF0; // type:func -EnKusa_DropCollectible = 0x80A7FD94; // type:func -EnKusa_UpdateVelY = 0x80A7FE60; // type:func -EnKusa_RandScaleVecToZero = 0x80A7FE94; // type:func -EnKusa_SetScaleSmall = 0x80A7FF18; // type:func -EnKusa_SpawnFragments = 0x80A7FF3C; // type:func -EnKusa_SpawnBugs = 0x80A80294; // type:func -EnKusa_InitCollider = 0x80A80350; // type:func -EnKusa_Init = 0x80A803A8; // type:func -EnKusa_Destroy = 0x80A804D0; // type:func -EnKusa_SetupWaitForObject = 0x80A804FC; // type:func -EnKusa_WaitForObject = 0x80A80520; // type:func -EnKusa_SetupMain = 0x80A805B0; // type:func -EnKusa_Main = 0x80A805E8; // type:func -EnKusa_SetupLiftedUp = 0x80A807B0; // type:func -EnKusa_LiftedUp = 0x80A807EC; // type:func -EnKusa_SetupFall = 0x80A808CC; // type:func -EnKusa_Fall = 0x80A80938; // type:func -EnKusa_SetupCut = 0x80A80BC8; // type:func -EnKusa_CutWaitRegrow = 0x80A80C18; // type:func -EnKusa_DoNothing = 0x80A80C4C; // type:func -EnKusa_SetupUprootedWaitRegrow = 0x80A80C5C; // type:func -EnKusa_UprootedWaitRegrow = 0x80A80CC8; // type:func -EnKusa_SetupRegrow = 0x80A80D2C; // type:func -EnKusa_Regrow = 0x80A80D84; // type:func -EnKusa_Update = 0x80A80E1C; // type:func -EnKusa_Draw = 0x80A80E80; // type:func -ObjBean_InitCollider = 0x80A811C0; // type:func -ObjBean_InitDynaPoly = 0x80A81218; // type:func -ObjBean_FindFloor = 0x80A81270; // type:func -func_80B8EBC8 = 0x80A812D8; // type:func -ObjBean_UpdatePosition = 0x80A812F8; // type:func -func_80B8EDF4 = 0x80A81508; // type:func -func_80B8EE24 = 0x80A81538; // type:func -ObjBean_Move = 0x80A81610; // type:func -ObjBean_SetDrawMode = 0x80A81640; // type:func -ObjBean_SetupPathCount = 0x80A81664; // type:func -ObjBean_SetupPath = 0x80A816A4; // type:func -ObjBean_FollowPath = 0x80A81720; // type:func -ObjBean_CheckForHorseTrample = 0x80A819C8; // type:func -ObjBean_Break = 0x80A81A58; // type:func -ObjBean_UpdateLeaves = 0x80A81CD0; // type:func -ObjBean_SetupLeavesStill = 0x80A81D8C; // type:func -ObjBean_LeavesStill = 0x80A81DFC; // type:func -ObjBean_SetupShakeLeaves = 0x80A81E40; // type:func -ObjBean_ShakeLeaves = 0x80A81EB8; // type:func -ObjBean_SetupShakeLeavesFast = 0x80A81F3C; // type:func -ObjBean_ShakeLeavesFast = 0x80A81F80; // type:func -ObjBean_SetupGrow = 0x80A82008; // type:func -ObjBean_Grow = 0x80A8201C; // type:func -ObjBean_SetupFlattenLeaves = 0x80A82080; // type:func -ObjBean_FlattenLeaves = 0x80A8209C; // type:func -ObjBean_SetupGrown = 0x80A82118; // type:func -ObjBean_Grown = 0x80A8215C; // type:func -ObjBean_Init = 0x80A821B8; // type:func -ObjBean_Destroy = 0x80A82374; // type:func -ObjBean_SetupWaitForBean = 0x80A823F0; // type:func -ObjBean_WaitForBean = 0x80A82428; // type:func -func_80B8FE00 = 0x80A824A4; // type:func -func_80B8FE3C = 0x80A824DC; // type:func -func_80B8FE6C = 0x80A8250C; // type:func -func_80B8FEAC = 0x80A8254C; // type:func -func_80B8FF50 = 0x80A825F0; // type:func -func_80B8FF8C = 0x80A82628; // type:func -func_80B90010 = 0x80A826AC; // type:func -func_80B90050 = 0x80A826E8; // type:func -ObjBean_SetupWaitForWater = 0x80A827A8; // type:func -ObjBean_WaitForWater = 0x80A827F0; // type:func -ObjBean_SetupGrowWaterPhase1 = 0x80A828E8; // type:func -ObjBean_GrowWaterPhase1 = 0x80A82928; // type:func -ObjBean_SetupGrowWaterPhase2 = 0x80A8296C; // type:func -ObjBean_GrowWaterPhase2 = 0x80A829A8; // type:func -ObjBean_SetupGrowWaterPhase3 = 0x80A82A58; // type:func -ObjBean_GrowWaterPhase3 = 0x80A82A90; // type:func -ObjBean_SetupGrowWaterPhase4 = 0x80A82BA4; // type:func -ObjBean_GrowWaterPhase4 = 0x80A82BDC; // type:func -ObjBean_SetupGrowWaterPhase5 = 0x80A82C78; // type:func -ObjBean_GrowWaterPhase5 = 0x80A82CB0; // type:func -ObjBean_SetupWaitForPlayer = 0x80A82D08; // type:func -ObjBean_WaitForPlayer = 0x80A82D34; // type:func -ObjBean_SetupFly = 0x80A82DA8; // type:func -ObjBean_Fly = 0x80A82DEC; // type:func -ObjBean_SetupWaitForStepOff = 0x80A82F1C; // type:func -ObjBean_WaitForStepOff = 0x80A82F48; // type:func -func_80B908EC = 0x80A82F88; // type:func -func_80B90918 = 0x80A82FB4; // type:func -func_80B90970 = 0x80A83010; // type:func -func_80B909B0 = 0x80A83050; // type:func -func_80B909F8 = 0x80A83098; // type:func -func_80B90A34 = 0x80A830D0; // type:func -ObjBean_Update = 0x80A83170; // type:func -ObjBean_DrawSoftSoilSpot = 0x80A83300; // type:func -ObjBean_DrawBeanstalk = 0x80A83388; // type:func -ObjBean_Draw = 0x80A83414; // type:func -ObjBombiwa_InitCollision = 0x80A83950; // type:func -ObjBombiwa_Init = 0x80A839A8; // type:func -ObjBombiwa_Destroy = 0x80A83A74; // type:func -ObjBombiwa_Break = 0x80A83AA0; // type:func -ObjBombiwa_Update = 0x80A83CA0; // type:func -ObjBombiwa_Draw = 0x80A83DB0; // type:func -ObjSwitch_RotateY = 0x80A83EC0; // type:func -ObjSwitch_InitDynaPoly = 0x80A83F40; // type:func -ObjSwitch_InitJntSphCollider = 0x80A83F98; // type:func -ObjSwitch_InitTrisCollider = 0x80A84034; // type:func -ObjSwitch_SpawnIce = 0x80A84154; // type:func -ObjSwitch_SetOn = 0x80A841C8; // type:func -ObjSwitch_SetOff = 0x80A84274; // type:func -ObjSwitch_UpdateTwoTexScrollXY = 0x80A842FC; // type:func -ObjSwitch_Init = 0x80A84344; // type:func -ObjSwitch_Destroy = 0x80A845DC; // type:func -ObjSwitch_FloorUpInit = 0x80A84680; // type:func -ObjSwitch_FloorUp = 0x80A846A0; // type:func -ObjSwitch_FloorPressInit = 0x80A84810; // type:func -ObjSwitch_FloorPress = 0x80A8482C; // type:func -ObjSwitch_FloorDownInit = 0x80A848EC; // type:func -ObjSwitch_FloorDown = 0x80A84914; // type:func -ObjSwitch_FloorReleaseInit = 0x80A84A60; // type:func -ObjSwitch_FloorRelease = 0x80A84A7C; // type:func -ObjSwitch_EyeIsHit = 0x80A84B60; // type:func -ObjSwitch_EyeFrozenInit = 0x80A84BD0; // type:func -ObjSwitch_EyeInit = 0x80A84BE4; // type:func -ObjSwitch_EyeOpenInit = 0x80A84C3C; // type:func -ObjSwitch_EyeOpen = 0x80A84C54; // type:func -ObjSwitch_EyeClosingInit = 0x80A84CC0; // type:func -ObjSwitch_EyeClosing = 0x80A84CDC; // type:func -ObjSwitch_EyeClosedInit = 0x80A84D58; // type:func -ObjSwitch_EyeClosed = 0x80A84D74; // type:func -ObjSwitch_EyeOpeningInit = 0x80A84E34; // type:func -ObjSwitch_EyeOpening = 0x80A84E50; // type:func -ObjSwitch_CrystalOffInit = 0x80A84EE0; // type:func -ObjSwitch_CrystalOff = 0x80A84F0C; // type:func -ObjSwitch_CrystalTurnOnInit = 0x80A85044; // type:func -ObjSwitch_CrystalTurnOn = 0x80A85060; // type:func -ObjSwitch_CrystalOnInit = 0x80A850E8; // type:func -ObjSwitch_CrystalOn = 0x80A85118; // type:func -ObjSwitch_CrystalTurnOffInit = 0x80A851E0; // type:func -ObjSwitch_CrystalTurnOff = 0x80A851FC; // type:func -ObjSwitch_Update = 0x80A85284; // type:func -ObjSwitch_DrawFloor = 0x80A853C0; // type:func -ObjSwitch_DrawFloorRusty = 0x80A85404; // type:func -ObjSwitch_DrawEye = 0x80A85434; // type:func -ObjSwitch_DrawCrystal = 0x80A85544; // type:func -ObjSwitch_Draw = 0x80A8577C; // type:func -ObjElevator_SetupAction = 0x80A85C80; // type:func -func_80B92B08 = 0x80A85C8C; // type:func -ObjElevator_Init = 0x80A85CE4; // type:func -ObjElevator_Destroy = 0x80A85D74; // type:func -func_80B92C5C = 0x80A85DA8; // type:func -func_80B92C80 = 0x80A85DCC; // type:func -func_80B92D20 = 0x80A85E6C; // type:func -func_80B92D44 = 0x80A85E90; // type:func -ObjElevator_Update = 0x80A85F14; // type:func -ObjElevator_Draw = 0x80A85F48; // type:func -ObjLift_SetupAction = 0x80A86040; // type:func -ObjLift_InitDynaPoly = 0x80A8604C; // type:func -ObjLift_SpawnFragments = 0x80A860A4; // type:func -ObjLift_Init = 0x80A86328; // type:func -ObjLift_Destroy = 0x80A86428; // type:func -ObjLift_SetupWait = 0x80A8645C; // type:func -ObjLift_Wait = 0x80A864A0; // type:func -ObjLift_SetupShake = 0x80A86590; // type:func -ObjLift_Shake = 0x80A865BC; // type:func -ObjLift_SetupFall = 0x80A86704; // type:func -ObjLift_Fall = 0x80A86788; // type:func -ObjLift_Update = 0x80A8688C; // type:func -ObjLift_Draw = 0x80A868C0; // type:func -ObjHsblock_SetupAction = 0x80A86A60; // type:func -func_80B93B68 = 0x80A86A6C; // type:func -func_80B93BF0 = 0x80A86AC4; // type:func -ObjHsblock_Init = 0x80A86B48; // type:func -ObjHsblock_Destroy = 0x80A86C18; // type:func -func_80B93D90 = 0x80A86C4C; // type:func -func_80B93DB0 = 0x80A86C6C; // type:func -func_80B93DF4 = 0x80A86CB0; // type:func -func_80B93E38 = 0x80A86CF8; // type:func -func_80B93E5C = 0x80A86D1C; // type:func -ObjHsblock_Update = 0x80A86DC4; // type:func -ObjHsblock_Draw = 0x80A86E10; // type:func -EnOkarinaTag_Destroy = 0x80A87030; // type:func -EnOkarinaTag_Init = 0x80A87040; // type:func -func_80ABEF2C = 0x80A871A8; // type:func -func_80ABF0CC = 0x80A8730C; // type:func -func_80ABF28C = 0x80A874CC; // type:func -func_80ABF4C8 = 0x80A87714; // type:func -func_80ABF708 = 0x80A87954; // type:func -func_80ABF7CC = 0x80A87A1C; // type:func -EnOkarinaTag_Update = 0x80A87AE0; // type:func -EnYabusameMark_Destroy = 0x80A88530; // type:func -EnYabusameMark_Init = 0x80A8855C; // type:func -func_80B42F74 = 0x80A8869C; // type:func -EnYabusameMark_Update = 0x80A888E0; // type:func -EnGoroiwa_UpdateCollider = 0x80A88C00; // type:func -EnGoroiwa_InitCollider = 0x80A88C6C; // type:func -EnGoroiwa_UpdateFlags = 0x80A88CD4; // type:func -EnGoroiwa_Vec3fNormalize = 0x80A88CF8; // type:func -EnGoroiwa_SetSpeed = 0x80A88D7C; // type:func -EnGoroiwa_FaceNextWaypoint = 0x80A88DA4; // type:func -EnGoroiwa_GetPrevWaypointDiff = 0x80A88E7C; // type:func -EnGoroiw_CheckEndOfPath = 0x80A88FD8; // type:func -EnGoroiwa_SetNextWaypoint = 0x80A8908C; // type:func -EnGoroiwa_ReverseDirection = 0x80A890BC; // type:func -EnGoroiwa_InitPath = 0x80A890E4; // type:func -EnGoroiwa_TeleportToWaypoint = 0x80A89124; // type:func -EnGoroiwa_InitRotation = 0x80A891C8; // type:func -EnGoroiwa_GetAscendDirection = 0x80A891E4; // type:func -EnGoroiwa_SpawnDust = 0x80A892A8; // type:func -EnGoroiwa_SpawnWaterEffects = 0x80A89498; // type:func -EnGoroiwa_MoveAndFall = 0x80A895CC; // type:func -EnGoroiwa_Move = 0x80A89700; // type:func -EnGoroiwa_MoveUpToNextWaypoint = 0x80A8992C; // type:func -EnGoroiwa_MoveDownToNextWaypoint = 0x80A89A4C; // type:func -EnGoroiwa_UpdateRotation = 0x80A89DAC; // type:func -EnGoroiwa_NextWaypoint = 0x80A89F4C; // type:func -EnGoroiwa_SpawnFragments = 0x80A89FD4; // type:func -EnGoroiwa_Init = 0x80A8A2F0; // type:func -EnGoroiwa_Destroy = 0x80A8A420; // type:func -EnGoroiwa_SetupRoll = 0x80A8A44C; // type:func -EnGoroiwa_Roll = 0x80A8A48C; // type:func -EnGoroiwa_SetupMoveAndFallToGround = 0x80A8A710; // type:func -EnGoroiwa_MoveAndFallToGround = 0x80A8A784; // type:func -EnGoroiwa_SetupWait = 0x80A8A824; // type:func -EnGoroiwa_Wait = 0x80A8A880; // type:func -EnGoroiwa_SetupMoveUp = 0x80A8A8C0; // type:func -EnGoroiwa_MoveUp = 0x80A8A910; // type:func -EnGoroiwa_SetupMoveDown = 0x80A8A9D0; // type:func -EnGoroiwa_MoveDown = 0x80A8AA3C; // type:func -EnGoroiwa_Update = 0x80A8AB04; // type:func -EnGoroiwa_Draw = 0x80A8AC64; // type:func -EnExRuppy_Init = 0x80A8AFC0; // type:func -EnExRuppy_Destroy = 0x80A8B398; // type:func -EnExRuppy_SpawnSparkles = 0x80A8B3A8; // type:func -EnExRuppy_DropIntoWater = 0x80A8B5C4; // type:func -EnExRuppy_EnterWater = 0x80A8B6A4; // type:func -EnExRuppy_Sink = 0x80A8B810; // type:func -EnExRuppy_WaitInGame = 0x80A8B910; // type:func -EnExRuppy_Kill = 0x80A8BA68; // type:func -EnExRuppy_WaitToBlowUp = 0x80A8BAAC; // type:func -EnExRuppy_WaitAsCollectible = 0x80A8BBD8; // type:func -EnExRuppy_GalleryTarget = 0x80A8BC5C; // type:func -EnExRuppy_Update = 0x80A8BCBC; // type:func -EnExRuppy_Draw = 0x80A8BD48; // type:func -EnToryo_Init = 0x80A8C080; // type:func -EnToryo_Destroy = 0x80A8C2C4; // type:func -EnToryo_TalkRespond = 0x80A8C2F0; // type:func -EnToryo_DoneTalking = 0x80A8C4E4; // type:func -EnToryo_ReactToExchangeItem = 0x80A8C550; // type:func -EnToryo_GetTextId = 0x80A8C5BC; // type:func -EnToryo_HandleTalking = 0x80A8C688; // type:func -EnToryo_Idle = 0x80A8C838; // type:func -EnToryo_Update = 0x80A8C89C; // type:func -EnToryo_Draw = 0x80A8C9D4; // type:func -EnToryo_OverrideLimbDraw = 0x80A8CA34; // type:func -EnToryo_PostLimbDraw = 0x80A8CAC4; // type:func -EnDaiku_ChangeAnim = 0x80A8CD10; // type:func -EnDaiku_Init = 0x80A8CDC4; // type:func -EnDaiku_Destroy = 0x80A8D10C; // type:func -EnDaiku_UpdateTalking = 0x80A8D138; // type:func -EnDaiku_UpdateText = 0x80A8D254; // type:func -EnDaiku_TentIdle = 0x80A8D524; // type:func -EnDaiku_Jailed = 0x80A8D55C; // type:func -EnDaiku_WaitFreedom = 0x80A8D62C; // type:func -EnDaiku_InitEscape = 0x80A8D690; // type:func -EnDaiku_EscapeRotate = 0x80A8D898; // type:func -EnDaiku_InitSubCamera = 0x80A8D904; // type:func -EnDaiku_UpdateSubCamera = 0x80A8DA90; // type:func -EnDaiku_EscapeSuccess = 0x80A8DB48; // type:func -EnDaiku_EscapeRun = 0x80A8DC84; // type:func -EnDaiku_Update = 0x80A8DE90; // type:func -EnDaiku_Draw = 0x80A8DFA8; // type:func -EnDaiku_OverrideLimbDraw = 0x80A8E0D0; // type:func -EnDaiku_PostLimbDraw = 0x80A8E154; // type:func -EnNwc_SetUpdate = 0x80A8E450; // type:func -EnNwc_ChickNoop = 0x80A8E45C; // type:func -EnNwc_ChickBgCheck = 0x80A8E470; // type:func -EnNwc_ChickFall = 0x80A8E56C; // type:func -EnNwc_UpdateChicks = 0x80A8E5D8; // type:func -EnNwc_DrawChicks = 0x80A8E7D8; // type:func -EnNwc_Init = 0x80A8EB54; // type:func -EnNwc_Destroy = 0x80A8ECE0; // type:func -EnNwc_Idle = 0x80A8ED0C; // type:func -EnNwc_Update = 0x80A8ED2C; // type:func -EnNwc_Draw = 0x80A8ED80; // type:func -EnBlkobj_SetupAction = 0x80A8EE90; // type:func -EnBlkobj_Init = 0x80A8EEA0; // type:func -EnBlkobj_Destroy = 0x80A8EF50; // type:func -EnBlkobj_Wait = 0x80A8EF84; // type:func -EnBlkobj_SpawnDarkLink = 0x80A8EFD8; // type:func -EnBlkobj_DarkLinkFight = 0x80A8F050; // type:func -EnBlkobj_DoNothing = 0x80A8F12C; // type:func -EnBlkobj_Update = 0x80A8F13C; // type:func -EnBlkobj_DrawAlpha = 0x80A8F160; // type:func -EnBlkobj_Draw = 0x80A8F1E0; // type:func -ItemInbox_Init = 0x80A8F3F0; // type:func -ItemInbox_Destroy = 0x80A8F424; // type:func -ItemInbox_Wait = 0x80A8F434; // type:func -ItemInbox_Update = 0x80A8F47C; // type:func -ItemInbox_Draw = 0x80A8F4A0; // type:func -EnGe1_Init = 0x80A8F550; // type:func -EnGe1_Destroy = 0x80A8F814; // type:func -EnGe1_SetTalkAction = 0x80A8F840; // type:func -EnGe1_SetAnimationIdle = 0x80A8F920; // type:func -EnGe1_CheckCarpentersFreed = 0x80A8F9A4; // type:func -EnGe1_KickPlayer = 0x80A8F9E0; // type:func -EnGe1_SpotPlayer = 0x80A8FAC0; // type:func -EnGe1_WatchForPlayerFrontOnly = 0x80A8FB20; // type:func -EnGe1_ChooseActionFromTextId = 0x80A8FBD8; // type:func -EnGe1_SetNormalText = 0x80A8FC6C; // type:func -EnGe1_WatchForAndSensePlayer = 0x80A8FC9C; // type:func -EnGe1_GetReaction_ValleyFloor = 0x80A8FD68; // type:func -EnGe1_WaitTillOpened_GTGGuard = 0x80A8FDBC; // type:func -EnGe1_Open_GTGGuard = 0x80A8FE0C; // type:func -EnGe1_SetupOpen_GTGGuard = 0x80A8FEBC; // type:func -EnGe1_RefuseEntryTooPoor_GTGGuard = 0x80A8FF7C; // type:func -EnGe1_OfferOpen_GTGGuard = 0x80A8FFBC; // type:func -EnGe1_RefuseOpenNoCard_GTGGuard = 0x80A900AC; // type:func -EnGe1_CheckForCard_GTGGuard = 0x80A900F0; // type:func -EnGe1_WaitGateOpen_GateOp = 0x80A90158; // type:func -EnGe1_WaitUntilGateOpened_GateOp = 0x80A901CC; // type:func -EnGe1_OpenGate_GateOp = 0x80A9021C; // type:func -EnGe1_SetupOpenGate_GateOp = 0x80A902CC; // type:func -EnGe1_CheckGate_GateOp = 0x80A90398; // type:func -EnGe1_Talk_GateGuard = 0x80A90414; // type:func -EnGe1_GetReaction_GateGuard = 0x80A90458; // type:func -EnGe1_SetupWait_Archery = 0x80A9050C; // type:func -EnGe1_WaitTillItemGiven_Archery = 0x80A90544; // type:func -EnGe1_BeginGiveItem_Archery = 0x80A90638; // type:func -EnGe1_TalkWinPrize_Archery = 0x80A90700; // type:func -EnGe1_TalkTooPoor_Archery = 0x80A90760; // type:func -EnGe1_WaitDoNothing = 0x80A907C4; // type:func -EnGe1_BeginGame_Archery = 0x80A907D4; // type:func -EnGe1_TalkOfferPlay_Archery = 0x80A90974; // type:func -EnGe1_TalkNoPrize_Archery = 0x80A909D4; // type:func -EnGe1_TalkAfterGame_Archery = 0x80A90A20; // type:func -EnGe1_TalkNoHorse_Archery = 0x80A90B24; // type:func -EnGe1_Wait_Archery = 0x80A90B68; // type:func -EnGe1_TurnToFacePlayer = 0x80A90C00; // type:func -EnGe1_LookAtPlayer = 0x80A90D18; // type:func -EnGe1_Update = 0x80A90DF4; // type:func -EnGe1_CueUpAnimation = 0x80A90F3C; // type:func -EnGe1_StopFidget = 0x80A90F7C; // type:func -EnGe1_OverrideLimbDraw = 0x80A90FD4; // type:func -EnGe1_PostLimbDraw = 0x80A91128; // type:func -EnGe1_Draw = 0x80A91194; // type:func -ObjBlockstop_Init = 0x80A91580; // type:func -ObjBlockstop_Destroy = 0x80A915DC; // type:func -ObjBlockstop_Update = 0x80A915EC; // type:func -EnSda_Init = 0x80A91720; // type:func -EnSda_Destroy = 0x80A91730; // type:func -EnSda_Update = 0x80A91740; // type:func -EnSda_Draw = 0x80A9177C; // type:func -func_80AF8F60 = 0x80A91810; // type:func -func_80AF95C4 = 0x80A91E74; // type:func -func_80AF9C70 = 0x80A924F0; // type:func -EnClearTag_CreateDebrisEffect = 0x80A92E20; // type:func -EnClearTag_CreateFireEffect = 0x80A92F18; // type:func -EnClearTag_CreateSmokeEffect = 0x80A93008; // type:func -EnClearTag_CreateFlashEffect = 0x80A9312C; // type:func -EnClearTag_Destroy = 0x80A93204; // type:func -EnClearTag_Init = 0x80A93230; // type:func -EnClearTag_CalculateFloorTangent = 0x80A933F4; // type:func -EnClearTag_Update = 0x80A934B0; // type:func -EnClearTag_Draw = 0x80A94264; // type:func -EnClearTag_UpdateEffects = 0x80A947F8; // type:func -EnClearTag_DrawEffects = 0x80A94BC0; // type:func -EnNiwLady_Init = 0x80A9E3C0; // type:func -EnNiwLady_Destroy = 0x80A9E4A8; // type:func -EnNiwLady_ChoseAnimation = 0x80A9E4D4; // type:func -func_80AB9F24 = 0x80A9E69C; // type:func -func_80ABA21C = 0x80A9E998; // type:func -func_80ABA244 = 0x80A9E9C4; // type:func -func_80ABA654 = 0x80A9ED44; // type:func -func_80ABA778 = 0x80A9EE3C; // type:func -func_80ABA878 = 0x80A9EF10; // type:func -func_80ABA9B8 = 0x80A9F054; // type:func -func_80ABAA9C = 0x80A9F138; // type:func -func_80ABAB08 = 0x80A9F1A8; // type:func -func_80ABAC00 = 0x80A9F2A0; // type:func -func_80ABAC84 = 0x80A9F328; // type:func -func_80ABAD38 = 0x80A9F3D0; // type:func -func_80ABAD7C = 0x80A9F3F0; // type:func -EnNiwLady_Update = 0x80A9F4B4; // type:func -EnNiwLady_EmptyDList = 0x80A9F71C; // type:func -EnNiwLady_OverrideLimbDraw = 0x80A9F740; // type:func -EnNiwLady_Draw = 0x80A9F89C; // type:func -EnGm_Init = 0x80A9FCC0; // type:func -EnGm_Destroy = 0x80A9FD20; // type:func -func_80A3D7C8 = 0x80A9FD4C; // type:func -func_80A3D838 = 0x80A9FDBC; // type:func -EnGm_UpdateEye = 0x80A9FF5C; // type:func -EnGm_SetTextID = 0x80A9FFD4; // type:func -func_80A3DB04 = 0x80AA0088; // type:func -func_80A3DBF4 = 0x80AA0178; // type:func -func_80A3DC44 = 0x80AA01CC; // type:func -func_80A3DD7C = 0x80AA0308; // type:func -EnGm_ProcessChoiceIndex = 0x80AA03A0; // type:func -func_80A3DF00 = 0x80AA0490; // type:func -func_80A3DF60 = 0x80AA04F4; // type:func -func_80A3DFBC = 0x80AA0554; // type:func -EnGm_Update = 0x80AA0608; // type:func -func_80A3E090 = 0x80AA062C; // type:func -EnGm_Draw = 0x80AA078C; // type:func -EnMs_SetOfferText = 0x80AA09F0; // type:func -EnMs_Init = 0x80AA0A6C; // type:func -EnMs_Destroy = 0x80AA0B90; // type:func -EnMs_Wait = 0x80AA0BBC; // type:func -EnMs_Talk = 0x80AA0C68; // type:func -EnMs_Sell = 0x80AA0D84; // type:func -EnMs_TalkAfterPurchase = 0x80AA0E20; // type:func -EnMs_Update = 0x80AA0E80; // type:func -EnMs_Draw = 0x80AA0F78; // type:func -func_80A6E3A0 = 0x80AA10E0; // type:func -EnHs_Init = 0x80AA10EC; // type:func -EnHs_Destroy = 0x80AA1230; // type:func -func_80A6E53C = 0x80AA125C; // type:func -func_80A6E5EC = 0x80AA1310; // type:func -func_80A6E630 = 0x80AA1354; // type:func -func_80A6E6B0 = 0x80AA13D4; // type:func -func_80A6E6D8 = 0x80AA13FC; // type:func -func_80A6E70C = 0x80AA1434; // type:func -func_80A6E740 = 0x80AA146C; // type:func -func_80A6E7BC = 0x80AA14EC; // type:func -func_80A6E8CC = 0x80AA15FC; // type:func -func_80A6E9AC = 0x80AA16D8; // type:func -EnHs_Update = 0x80AA1820; // type:func -EnHs_OverrideLimbDraw = 0x80AA198C; // type:func -EnHs_PostLimbDraw = 0x80AA1A48; // type:func -EnHs_Draw = 0x80AA1A88; // type:func -BgInGate_SetupAction = 0x80AA1C80; // type:func -BgInGate_Init = 0x80AA1C8C; // type:func -BgInGate_Destroy = 0x80AA1DA8; // type:func -func_80892890 = 0x80AA1DDC; // type:func -BgInGate_DoNothing = 0x80AA1EDC; // type:func -BgInGate_Update = 0x80AA1EEC; // type:func -BgInGate_Draw = 0x80AA1F10; // type:func -EnKanban_SetFloorRot = 0x80AA2010; // type:func -EnKanban_Init = 0x80AA20CC; // type:func -EnKanban_Destroy = 0x80AA21F4; // type:func -EnKanban_Message = 0x80AA222C; // type:func -EnKanban_Update = 0x80AA22E4; // type:func -EnKanban_Draw = 0x80AA3B60; // type:func -EnHeishi3_Init = 0x80AA5160; // type:func -EnHeishi3_Destroy = 0x80AA528C; // type:func -EnHeishi3_SetupGuardType = 0x80AA52B8; // type:func -EnHeishi3_StandSentinelInGrounds = 0x80AA5368; // type:func -EnHeishi3_StandSentinelInCastle = 0x80AA54C4; // type:func -EnHeishi3_CatchStart = 0x80AA5634; // type:func -func_80A55BD4 = 0x80AA56DC; // type:func -EnHeishi3_ResetAnimationToIdle = 0x80AA5774; // type:func -func_80A55D00 = 0x80AA5808; // type:func -EnHeishi3_Update = 0x80AA58B8; // type:func -EnHeishi3_OverrideLimbDraw = 0x80AA5998; // type:func -EnHeishi3_Draw = 0x80AA5A00; // type:func -EnSyatekiNiw_Init = 0x80AA5B30; // type:func -EnSyatekiNiw_Destroy = 0x80AA5C78; // type:func -EnSyatekiNiw_UpdateRotations = 0x80AA5CA4; // type:func -EnSyatekiNiw_SetupDefault = 0x80AA6000; // type:func -EnSyatekiNiw_Default = 0x80AA608C; // type:func -EnSyatekiNiw_SetupArchery = 0x80AA65BC; // type:func -EnSyatekiNiw_Archery = 0x80AA6674; // type:func -EnSyatekiNiw_ExitArchery = 0x80AA6AF0; // type:func -EnSyatekiNiw_SetupRemove = 0x80AA6B10; // type:func -EnSyatekiNiw_Remove = 0x80AA6C08; // type:func -EnSyatekiNiw_CheckHit = 0x80AA6DC4; // type:func -EnSyatekiNiw_Update = 0x80AA6E94; // type:func -SyatekiNiw_OverrideLimbDraw = 0x80AA7204; // type:func -EnSyatekiNiw_Draw = 0x80AA7334; // type:func -EnSyatekiNiw_SpawnFeather = 0x80AA73E0; // type:func -EnSyatekiNiw_UpdateEffects = 0x80AA74D0; // type:func -EnSyatekiNiw_DrawEffects = 0x80AA768C; // type:func -EnAttackNiw_Init = 0x80AA7BC0; // type:func -EnAttackNiw_Destroy = 0x80AA7CF4; // type:func -func_809B5268 = 0x80AA7D28; // type:func -func_809B55EC = 0x80AA80B0; // type:func -func_809B5670 = 0x80AA8134; // type:func -func_809B59B0 = 0x80AA8474; // type:func -func_809B5C18 = 0x80AA86E4; // type:func -EnAttackNiw_Update = 0x80AA87A8; // type:func -func_809B5F98 = 0x80AA8A6C; // type:func -EnAttackNiw_Draw = 0x80AA8BC4; // type:func -BgSpot01Idosoko_SetupAction = 0x80AA8E20; // type:func -BgSpot01Idosoko_Init = 0x80AA8E2C; // type:func -BgSpot01Idosoko_Destroy = 0x80AA8ECC; // type:func -func_808ABF54 = 0x80AA8F00; // type:func -BgSpot01Idosoko_Update = 0x80AA8F10; // type:func -BgSpot01Idosoko_Draw = 0x80AA8F34; // type:func -func_80AF5560 = 0x80AA9030; // type:func -EnSa_GetTextId = 0x80AA90B0; // type:func -EnSa_UpdateTalkState = 0x80AA91C4; // type:func -func_80AF57D8 = 0x80AA92A8; // type:func -func_80AF5894 = 0x80AA9368; // type:func -func_80AF58B8 = 0x80AA9390; // type:func -func_80AF594C = 0x80AA9424; // type:func -func_80AF59E0 = 0x80AA94B8; // type:func -func_80AF5A74 = 0x80AA954C; // type:func -func_80AF5B10 = 0x80AA95E8; // type:func -func_80AF5BA4 = 0x80AA967C; // type:func -func_80AF5C40 = 0x80AA9718; // type:func -func_80AF5CD4 = 0x80AA97AC; // type:func -func_80AF5CE4 = 0x80AA97C4; // type:func -EnSa_ChangeAnim = 0x80AA986C; // type:func -func_80AF5DFC = 0x80AA98DC; // type:func -func_80AF5F34 = 0x80AA9A14; // type:func -func_80AF603C = 0x80AA9B1C; // type:func -func_80AF609C = 0x80AA9B7C; // type:func -func_80AF6130 = 0x80AA9C18; // type:func -func_80AF6170 = 0x80AA9C5C; // type:func -EnSa_Init = 0x80AA9CA0; // type:func -EnSa_Destroy = 0x80AA9F10; // type:func -func_80AF6448 = 0x80AA9F3C; // type:func -func_80AF67D0 = 0x80AAA2C8; // type:func -func_80AF683C = 0x80AAA33C; // type:func -func_80AF68E4 = 0x80AAA3E4; // type:func -func_80AF6B20 = 0x80AAA624; // type:func -EnSa_Update = 0x80AAA6E4; // type:func -EnSa_OverrideLimbDraw = 0x80AAA874; // type:func -EnSa_PostLimbDraw = 0x80AAAA1C; // type:func -EnSa_Draw = 0x80AAAA78; // type:func -EnWonderTalk_Destroy = 0x80AAB2A0; // type:func -EnWonderTalk_Init = 0x80AAB2B0; // type:func -func_80B391CC = 0x80AAB358; // type:func -func_80B3943C = 0x80AAB4E8; // type:func -func_80B395F0 = 0x80AAB63C; // type:func -EnWonderTalk_Update = 0x80AAB82C; // type:func -BgGjyoBridge_Init = 0x80AAB930; // type:func -BgGjyoBridge_Destroy = 0x80AAB9E8; // type:func -func_808787A4 = 0x80AABA1C; // type:func -BgGjyoBridge_TriggerCutscene = 0x80AABA2C; // type:func -BgGjyoBridge_SpawnBridge = 0x80AABB84; // type:func -BgGjyoBridge_Update = 0x80AABC00; // type:func -BgGjyoBridge_Draw = 0x80AABC24; // type:func -EnDs_Init = 0x80AABE30; // type:func -EnDs_Destroy = 0x80AABF00; // type:func -EnDs_Talk = 0x80AABF10; // type:func -EnDs_TalkNoEmptyBottle = 0x80AABF60; // type:func -EnDs_TalkAfterGiveOddPotion = 0x80AABFCC; // type:func -EnDs_DisplayOddPotionText = 0x80AAC028; // type:func -EnDs_GiveOddPotion = 0x80AAC088; // type:func -EnDs_TalkAfterBrewOddPotion = 0x80AAC0F4; // type:func -EnDs_BrewOddPotion3 = 0x80AAC174; // type:func -EnDs_BrewOddPotion2 = 0x80AAC218; // type:func -EnDs_BrewOddPotion1 = 0x80AAC26C; // type:func -EnDs_OfferOddPotion = 0x80AAC30C; // type:func -EnDs_CheckRupeesAndBottle = 0x80AAC3D8; // type:func -EnDs_GiveBluePotion = 0x80AAC428; // type:func -EnDs_OfferBluePotion = 0x80AAC48C; // type:func -EnDs_Wait = 0x80AAC5C4; // type:func -EnDs_Update = 0x80AAC748; // type:func -EnDs_OverrideLimbDraw = 0x80AAC850; // type:func -EnDs_PostLimbDraw = 0x80AAC898; // type:func -EnDs_Draw = 0x80AAC8D8; // type:func -EnMk_Init = 0x80AACA50; // type:func -EnMk_Destroy = 0x80AACB68; // type:func -func_80AACA40 = 0x80AACB94; // type:func -func_80AACA94 = 0x80AACBE4; // type:func -func_80AACB14 = 0x80AACC6C; // type:func -func_80AACB6C = 0x80AACCC8; // type:func -func_80AACBAC = 0x80AACD04; // type:func -func_80AACC04 = 0x80AACD5C; // type:func -func_80AACCA0 = 0x80AACDF8; // type:func -func_80AACD48 = 0x80AACEA0; // type:func -func_80AACE2C = 0x80AACF84; // type:func -func_80AACEE8 = 0x80AAD040; // type:func -func_80AACFA0 = 0x80AAD0F8; // type:func -func_80AAD014 = 0x80AAD170; // type:func -EnMk_Wait = 0x80AAD1DC; // type:func -EnMk_Update = 0x80AAD430; // type:func -EnMk_OverrideLimbDraw = 0x80AAD67C; // type:func -EnMk_PostLimbDraw = 0x80AAD6C4; // type:func -EnMk_Draw = 0x80AAD704; // type:func -EnBomBowlMan_Init = 0x80AAD8E0; // type:func -EnBomBowlMan_Destroy = 0x80AADAA0; // type:func -EnBomBowlMan_SetupWaitAsleep = 0x80AADAB0; // type:func -EnBomBowlMan_WaitAsleep = 0x80AADB38; // type:func -EnBomBowlMan_TalkAsleep = 0x80AADBEC; // type:func -EnBomBowlMan_WakeUp = 0x80AADC64; // type:func -EnBomBowlMan_BlinkAwake = 0x80AADCE8; // type:func -EnBomBowlMan_CheckBeatenDC = 0x80AADDE4; // type:func -EnBomBowlMan_WaitNotBeatenDC = 0x80AADF10; // type:func -EnBomBowlMan_TalkNotBeatenDC = 0x80AADF6C; // type:func -EnBomBowlMan_SetupRunGame = 0x80AADFDC; // type:func -EnBomBowlMan_RunGame = 0x80AAE060; // type:func -EnBomBowlMan_HandlePlayChoice = 0x80AAE270; // type:func -func_809C41FC = 0x80AAE42C; // type:func -EnBomBowlMan_SetupChooseShowPrize = 0x80AAE548; // type:func -EnBomBowlMan_ChooseShowPrize = 0x80AAE64C; // type:func -EnBomBowlMan_BeginPlayGame = 0x80AAE894; // type:func -EnBomBowlMan_Update = 0x80AAE950; // type:func -EnBomBowlMan_OverrideLimbDraw = 0x80AAEAC8; // type:func -EnBomBowlMan_Draw = 0x80AAEB10; // type:func -EnBomBowlPit_Init = 0x80AAEE20; // type:func -EnBomBowlPit_Destroy = 0x80AAEE38; // type:func -EnBomBowlPit_SetupDetectHit = 0x80AAEE48; // type:func -EnBomBowlPit_DetectHit = 0x80AAEE74; // type:func -EnBomBowlPit_CameraDollyIn = 0x80AAF16C; // type:func -EnBomBowlPit_SpawnPrize = 0x80AAF348; // type:func -EnBomBowlPit_SetupGivePrize = 0x80AAF3D8; // type:func -EnBomBowlPit_GivePrize = 0x80AAF490; // type:func -EnBomBowlPit_WaitTillPrizeGiven = 0x80AAF594; // type:func -EnBomBowlPit_Reset = 0x80AAF5F0; // type:func -EnBomBowlPit_Update = 0x80AAF670; // type:func -EnOwl_Init = 0x80AAF790; // type:func -EnOwl_Destroy = 0x80AAFB74; // type:func -EnOwl_LookAtLink = 0x80AAFBA0; // type:func -EnOwl_CheckInitTalk = 0x80AAFBDC; // type:func -func_80ACA558 = 0x80AAFD48; // type:func -func_80ACA5C8 = 0x80AAFDBC; // type:func -func_80ACA62C = 0x80AAFE1C; // type:func -func_80ACA690 = 0x80AAFE68; // type:func -func_80ACA6C0 = 0x80AAFE98; // type:func -func_80ACA71C = 0x80AAFEF4; // type:func -func_80ACA76C = 0x80AAFF40; // type:func -func_80ACA7E0 = 0x80AAFFB4; // type:func -EnOwl_ConfirmKokiriMessage = 0x80AB0060; // type:func -EnOwl_WaitOutsideKokiri = 0x80AB0100; // type:func -func_80ACA998 = 0x80AB0178; // type:func -func_80ACAA54 = 0x80AB0238; // type:func -func_80ACAAC0 = 0x80AB02A8; // type:func -EnOwl_WaitHyruleCastle = 0x80AB0318; // type:func -func_80ACAB88 = 0x80AB037C; // type:func -func_80ACAC6C = 0x80AB0464; // type:func -EnOwl_WaitKakariko = 0x80AB04D4; // type:func -func_80ACAD34 = 0x80AB0538; // type:func -func_80ACADF0 = 0x80AB05F8; // type:func -EnOwl_WaitGerudo = 0x80AB0668; // type:func -func_80ACAEB8 = 0x80AB06CC; // type:func -func_80ACAF74 = 0x80AB078C; // type:func -EnOwl_WaitLakeHylia = 0x80AB07FC; // type:func -func_80ACB03C = 0x80AB0860; // type:func -EnOwl_WaitZoraRiver = 0x80AB08D4; // type:func -func_80ACB148 = 0x80AB0974; // type:func -EnOwl_WaitHyliaShortcut = 0x80AB09D4; // type:func -func_80ACB22C = 0x80AB0A60; // type:func -func_80ACB274 = 0x80AB0AAC; // type:func -EnOwl_WaitDeathMountainShortcut = 0x80AB0AF0; // type:func -func_80ACB344 = 0x80AB0B84; // type:func -func_80ACB3E0 = 0x80AB0C24; // type:func -func_80ACB440 = 0x80AB0C8C; // type:func -func_80ACB4FC = 0x80AB0D4C; // type:func -EnOwl_WaitLWPreSaria = 0x80AB0DBC; // type:func -func_80ACB5C4 = 0x80AB0E20; // type:func -func_80ACB680 = 0x80AB0EE0; // type:func -EnOwl_WaitLWPostSaria = 0x80AB0F50; // type:func -func_80ACB748 = 0x80AB0FB4; // type:func -func_80ACB904 = 0x80AB1170; // type:func -func_80ACB994 = 0x80AB1208; // type:func -EnOwl_WaitDefault = 0x80AB12A0; // type:func -func_80ACBAB8 = 0x80AB1334; // type:func -func_80ACBC0C = 0x80AB1488; // type:func -func_80ACBD4C = 0x80AB15C4; // type:func -func_80ACBEA0 = 0x80AB1718; // type:func -func_80ACBF50 = 0x80AB17C8; // type:func -func_80ACC00C = 0x80AB1884; // type:func -func_80ACC23C = 0x80AB1A48; // type:func -func_80ACC30C = 0x80AB1B14; // type:func -func_80ACC390 = 0x80AB1B98; // type:func -func_80ACC460 = 0x80AB1C68; // type:func -func_80ACC540 = 0x80AB1D48; // type:func -func_80ACC5CC = 0x80AB1DD4; // type:func -func_80ACC624 = 0x80AB1E2C; // type:func -EnOwl_Update = 0x80AB1EA8; // type:func -EnOwl_OverrideLimbDraw = 0x80AB25F8; // type:func -EnOwl_PostLimbUpdate = 0x80AB2724; // type:func -EnOwl_Draw = 0x80AB27A8; // type:func -EnOwl_ChangeMode = 0x80AB2874; // type:func -func_80ACD130 = 0x80AB28EC; // type:func -func_80ACD1C4 = 0x80AB2980; // type:func -func_80ACD220 = 0x80AB29E0; // type:func -func_80ACD2CC = 0x80AB2A8C; // type:func -func_80ACD4D4 = 0x80AB2C94; // type:func -EnIshi_InitCollider = 0x80AB3330; // type:func -EnIshi_SnapToFloor = 0x80AB33A8; // type:func -EnIshi_SpawnFragmentsSmall = 0x80AB344C; // type:func -EnIshi_SpawnFragmentsLarge = 0x80AB36C8; // type:func -EnIshi_SpawnDustSmall = 0x80AB39B4; // type:func -EnIshi_SpawnDustLarge = 0x80AB3AA8; // type:func -EnIshi_DropCollectible = 0x80AB3B9C; // type:func -EnIshi_Fall = 0x80AB3C0C; // type:func -func_80A7ED94 = 0x80AB3C40; // type:func -EnIshi_SpawnBugs = 0x80AB3CC4; // type:func -EnIshi_Init = 0x80AB3D80; // type:func -EnIshi_Destroy = 0x80AB3F1C; // type:func -EnIshi_SetupWait = 0x80AB3F48; // type:func -EnIshi_Wait = 0x80AB3F5C; // type:func -EnIshi_SetupLiftedUp = 0x80AB41B4; // type:func -EnIshi_LiftedUp = 0x80AB41DC; // type:func -EnIshi_SetupFly = 0x80AB42B0; // type:func -EnIshi_Fly = 0x80AB43DC; // type:func -EnIshi_Update = 0x80AB4748; // type:func -EnIshi_DrawSmall = 0x80AB476C; // type:func -EnIshi_DrawLarge = 0x80AB479C; // type:func -EnIshi_Draw = 0x80AB4840; // type:func -ObjHana_Init = 0x80ABC480; // type:func -ObjHana_Destroy = 0x80ABC57C; // type:func -ObjHana_Update = 0x80ABC5C8; // type:func -ObjHana_Draw = 0x80ABC638; // type:func -ObjLightswitch_InitCollider = 0x80ABC790; // type:func -ObjLightswitch_SetSwitchFlag = 0x80ABC82C; // type:func -ObjLightswitch_ClearSwitchFlag = 0x80ABC8F0; // type:func -ObjLightswitch_SpawnDisappearEffects = 0x80ABC970; // type:func -ObjLightswitch_Init = 0x80ABCB98; // type:func -ObjLightswitch_Destroy = 0x80ABCD2C; // type:func -ObjLightswitch_SetupOff = 0x80ABCD58; // type:func -ObjLightswitch_Off = 0x80ABCD8C; // type:func -ObjLightswitch_SetupTurnOn = 0x80ABCE6C; // type:func -ObjLightswitch_TurnOn = 0x80ABCE90; // type:func -ObjLightswitch_SetupOn = 0x80ABCF84; // type:func -ObjLightswitch_On = 0x80ABCFC0; // type:func -ObjLightswitch_SetupTurnOff = 0x80ABD0D4; // type:func -ObjLightswitch_TurnOff = 0x80ABD100; // type:func -ObjLightswitch_SetupDisappearDelay = 0x80ABD1F0; // type:func -ObjLightswitch_DisappearDelay = 0x80ABD20C; // type:func -ObjLightswitch_SetupDisappear = 0x80ABD254; // type:func -ObjLightswitch_Disappear = 0x80ABD270; // type:func -ObjLightswitch_Update = 0x80ABD2B4; // type:func -ObjLightswitch_DrawOpa = 0x80ABD398; // type:func -ObjLightswitch_DrawXlu = 0x80ABD6C4; // type:func -ObjLightswitch_Draw = 0x80ABD978; // type:func -ObjMure2_SetPosShrubCircle = 0x80ABDBC0; // type:func -ObjMure2_SetPosShrubScattered = 0x80ABDCDC; // type:func -ObjMure2_SetPosRockCircle = 0x80ABDDDC; // type:func -ObjMure2_SetActorSpawnParams = 0x80ABDEE8; // type:func -ObjMure2_SpawnActors = 0x80ABDF3C; // type:func -ObjMure2_CleanupAndDie = 0x80ABE098; // type:func -func_80B9A534 = 0x80ABE198; // type:func -ObjMure2_Init = 0x80ABE22C; // type:func -ObjMure2_SetupWait = 0x80ABE28C; // type:func -ObjMure2_Wait = 0x80ABE2A0; // type:func -func_80B9A658 = 0x80ABE2C4; // type:func -func_80B9A668 = 0x80ABE2D8; // type:func -func_80B9A6E8 = 0x80ABE358; // type:func -func_80B9A6F8 = 0x80ABE36C; // type:func -ObjMure2_Update = 0x80ABE3FC; // type:func -EnGo_SetupAction = 0x80ABE5E0; // type:func -EnGo_GetTextID = 0x80ABE5EC; // type:func -EnGo_UpdateTalkState = 0x80ABE97C; // type:func -EnGo_UpdateTalking = 0x80ABED9C; // type:func -EnGo_ChangeAnim = 0x80ABEE5C; // type:func -EnGo_IsActorSpawned = 0x80ABEF0C; // type:func -EnGo_GetPlayerTrackingYOffset = 0x80ABF06C; // type:func -func_80A3F060 = 0x80ABF0E4; // type:func -func_80A3F0E4 = 0x80ABF168; // type:func -EnGo_IsCameraModified = 0x80ABF1E0; // type:func -EnGo_ReverseAnimation = 0x80ABF2E4; // type:func -EnGo_UpdateShadow = 0x80ABF2FC; // type:func -EnGo_FollowPath = 0x80ABF388; // type:func -EnGo_SetMovedPos = 0x80ABF544; // type:func -EnGo_SpawnDust = 0x80ABF61C; // type:func -EnGo_IsRollingOnGround = 0x80ABF848; // type:func -func_80A3F908 = 0x80ABF994; // type:func -EnGo_Init = 0x80ABFBC4; // type:func -EnGo_Destroy = 0x80ABFF14; // type:func -func_80A3FEB4 = 0x80ABFF54; // type:func -EnGo_StopRolling = 0x80ABFF98; // type:func -func_80A4008C = 0x80AC012C; // type:func -EnGo_GoronLinkRolling = 0x80AC01BC; // type:func -EnGo_FireGenericActionFunc = 0x80AC02B4; // type:func -EnGo_CurledUp = 0x80AC02C4; // type:func -EnGo_WakeUp = 0x80AC03C4; // type:func -func_80A40494 = 0x80AC0540; // type:func -func_80A405CC = 0x80AC0678; // type:func -EnGo_BiggoronActionFunc = 0x80AC078C; // type:func -func_80A408D8 = 0x80AC0984; // type:func -func_80A40A54 = 0x80AC0B00; // type:func -func_80A40B1C = 0x80AC0BC8; // type:func -EnGo_GetItem = 0x80AC0C20; // type:func -func_80A40C78 = 0x80AC0D28; // type:func -EnGo_Eyedrops = 0x80AC0E10; // type:func -func_80A40DCC = 0x80AC0E80; // type:func -EnGo_Update = 0x80AC0F04; // type:func -EnGo_DrawCurledUp = 0x80AC1014; // type:func -EnGo_DrawRolling = 0x80AC10E0; // type:func -EnGo_OverrideLimbDraw = 0x80AC120C; // type:func -EnGo_PostLimbDraw = 0x80AC1428; // type:func -EnGo_Draw = 0x80AC1484; // type:func -EnGo_SpawnEffectDust = 0x80AC1624; // type:func -EnGo_UpdateEffects = 0x80AC16C8; // type:func -EnGo_DrawEffects = 0x80AC17D4; // type:func -EnFu_Init = 0x80AC2C20; // type:func -EnFu_Destroy = 0x80AC2D34; // type:func -func_80A1D94C = 0x80AC2D60; // type:func -func_80A1DA04 = 0x80AC2E1C; // type:func -EnFu_WaitChild = 0x80AC2EB8; // type:func -func_80A1DB60 = 0x80AC2F7C; // type:func -func_80A1DBA0 = 0x80AC2FBC; // type:func -func_80A1DBD4 = 0x80AC2FF4; // type:func -EnFu_WaitForPlayback = 0x80AC3164; // type:func -EnFu_TeachSong = 0x80AC31CC; // type:func -EnFu_WaitAdult = 0x80AC3248; // type:func -EnFu_Update = 0x80AC3398; // type:func -EnFu_OverrideLimbDraw = 0x80AC3540; // type:func -EnFu_PostLimbDraw = 0x80AC369C; // type:func -EnFu_Draw = 0x80AC36DC; // type:func -EnChanger_Destroy = 0x80AC3970; // type:func -EnChanger_Init = 0x80AC3980; // type:func -EnChanger_Wait = 0x80AC3E9C; // type:func -EnChanger_OpenChests = 0x80AC3F40; // type:func -EnChanger_SetHeartPieceFlag = 0x80AC40F0; // type:func -EnChanger_Update = 0x80AC4140; // type:func -BgJyaMegami_InitDynaPoly = 0x80AC4350; // type:func -BgJyaMegami_InitCollider = 0x80AC43A8; // type:func -BgJyaMegami_SpawnEffect = 0x80AC43FC; // type:func -BgJyaMegami_SetupSpawnEffect = 0x80AC4640; // type:func -BgJyaMegami_Init = 0x80AC473C; // type:func -BgJyaMegami_Destroy = 0x80AC47D0; // type:func -BgJyaMegami_SetupDetectLight = 0x80AC4818; // type:func -BgJyaMegami_DetectLight = 0x80AC4834; // type:func -BgJyaMegami_SetupExplode = 0x80AC49C0; // type:func -BgJyaMegami_Explode = 0x80AC4A58; // type:func -BgJyaMegami_Update = 0x80AC4DE0; // type:func -BgJyaMegami_DrawFace = 0x80AC4E04; // type:func -BgJyaMegami_DrawExplode = 0x80AC4F44; // type:func -BgJyaMegami_Draw = 0x80AC510C; // type:func -BgJyaLift_InitDynapoly = 0x80AC5530; // type:func -BgJyaLift_Init = 0x80AC5588; // type:func -BgJyaLift_Destroy = 0x80AC5644; // type:func -BgJyaLift_SetInitPosY = 0x80AC5688; // type:func -BgJyaLift_DelayMove = 0x80AC56AC; // type:func -BgJyaLift_SetupMove = 0x80AC5730; // type:func -BgJyaLift_Move = 0x80AC5744; // type:func -BgJyaLift_SetFinalPosY = 0x80AC5868; // type:func -BgJyaLift_Update = 0x80AC5880; // type:func -BgJyaLift_Draw = 0x80AC5970; // type:func -BgJyaBigmirror_SetRoomFlag = 0x80AC5A80; // type:func -BgJyaBigmirror_HandleCobra = 0x80AC5AF0; // type:func -BgJyaBigmirror_SetBombiwaFlag = 0x80AC5C88; // type:func -BgJyaBigmirror_HandleMirRay = 0x80AC5CDC; // type:func -BgJyaBigmirror_Init = 0x80AC5E84; // type:func -BgJyaBigmirror_Destroy = 0x80AC5F08; // type:func -BgJyaBigmirror_Update = 0x80AC5F28; // type:func -BgJyaBigmirror_DrawLightBeam = 0x80AC5F78; // type:func -BgJyaBigmirror_Draw = 0x80AC60F4; // type:func -BgJyaBombchuiwa_SetupCollider = 0x80AC62C0; // type:func -BgJyaBombchuiwa_SetDrawFlags = 0x80AC6314; // type:func -BgJyaBombchuiwa_Init = 0x80AC6338; // type:func -BgJyaBombchuiwa_Destroy = 0x80AC63B8; // type:func -BgJyaBombchuiwa_Break = 0x80AC63E4; // type:func -BgJyaBombchuiwa_SetupWaitForExplosion = 0x80AC6670; // type:func -BgJyaBombchuiwa_WaitForExplosion = 0x80AC66A8; // type:func -BgJyaBombchuiwa_CleanUpAfterExplosion = 0x80AC678C; // type:func -func_808949B8 = 0x80AC67E4; // type:func -BgJyaBombchuiwa_SpawnLightRay = 0x80AC6870; // type:func -BgJyaBombchuiwa_Update = 0x80AC68E8; // type:func -BgJyaBombchuiwa_DrawRock = 0x80AC6914; // type:func -BgJyaBombchuiwa_DrawLight = 0x80AC6998; // type:func -BgJyaBombchuiwa_Draw = 0x80AC6BE8; // type:func -BgJyaAmishutter_InitDynaPoly = 0x80AC6DF0; // type:func -BgJyaAmishutter_Init = 0x80AC6E48; // type:func -BgJyaAmishutter_Destroy = 0x80AC6E90; // type:func -BgJyaAmishutter_SetupWaitForPlayer = 0x80AC6EC4; // type:func -BgJyaAmishutter_WaitForPlayer = 0x80AC6ED8; // type:func -func_80893428 = 0x80AC6F34; // type:func -func_80893438 = 0x80AC6F48; // type:func -func_808934B0 = 0x80AC6FC0; // type:func -func_808934C0 = 0x80AC6FD4; // type:func -func_808934FC = 0x80AC7010; // type:func -func_8089350C = 0x80AC7024; // type:func -BgJyaAmishutter_Update = 0x80AC7088; // type:func -BgJyaAmishutter_Draw = 0x80AC70B0; // type:func -BgJyaBombiwa_SetupDynaPoly = 0x80AC7180; // type:func -BgJyaBombiwa_InitCollider = 0x80AC71D8; // type:func -BgJyaBombiwa_Init = 0x80AC722C; // type:func -BgJyaBombiwa_Destroy = 0x80AC72AC; // type:func -BgJyaBombiwa_Break = 0x80AC72F4; // type:func -BgJyaBombiwa_Update = 0x80AC7588; // type:func -BgJyaBombiwa_Draw = 0x80AC7618; // type:func -func_808B7710 = 0x80AC7740; // type:func -func_808B7770 = 0x80AC779C; // type:func -BgSpot18Basket_Init = 0x80AC7958; // type:func -BgSpot18Basket_Destroy = 0x80AC7AA4; // type:func -func_808B7AEC = 0x80AC7AEC; // type:func -func_808B7AFC = 0x80AC7B00; // type:func -func_808B7B58 = 0x80AC7B5C; // type:func -func_808B7B6C = 0x80AC7B74; // type:func -func_808B7BB0 = 0x80AC7BB8; // type:func -func_808B7BCC = 0x80AC7BD8; // type:func -func_808B7D38 = 0x80AC7D44; // type:func -func_808B7D50 = 0x80AC7D60; // type:func -func_808B7F74 = 0x80AC7F84; // type:func -func_808B7FC0 = 0x80AC7FD4; // type:func -func_808B818C = 0x80AC81A0; // type:func -func_808B81A0 = 0x80AC81B8; // type:func -BgSpot18Basket_Update = 0x80AC8450; // type:func -BgSpot18Basket_Draw = 0x80AC8514; // type:func -EnGanonOrgan_Init = 0x80AC8730; // type:func -EnGanonOrgan_Destroy = 0x80AC874C; // type:func -EnGanonOrgan_Update = 0x80AC875C; // type:func -EnGanonOrgan_EmptyDList = 0x80AC87A0; // type:func -func_80A280BC = 0x80AC87C4; // type:func -func_80A28148 = 0x80AC8828; // type:func -EnGanonOrgan_Draw = 0x80AC8884; // type:func -EnSiofuki_Init = 0x80ACF730; // type:func -EnSiofuki_Destroy = 0x80ACF94C; // type:func -func_80AFBDC8 = 0x80ACF980; // type:func -func_80AFBE8C = 0x80ACFA40; // type:func -func_80AFC1D0 = 0x80ACFD8C; // type:func -func_80AFC218 = 0x80ACFDD4; // type:func -func_80AFC34C = 0x80ACFF10; // type:func -func_80AFC3C8 = 0x80ACFF94; // type:func -func_80AFC478 = 0x80AD004C; // type:func -func_80AFC544 = 0x80AD0120; // type:func -EnSiofuki_Update = 0x80AD0158; // type:func -EnSiofuki_Draw = 0x80AD017C; // type:func -EnStream_SetupAction = 0x80AD04E0; // type:func -EnStream_Init = 0x80AD04EC; // type:func -EnStream_Destroy = 0x80AD0554; // type:func -func_80B0B81C = 0x80AD0564; // type:func -EnStream_SuckPlayer = 0x80AD0684; // type:func -EnStream_WaitForPlayer = 0x80AD081C; // type:func -EnStream_Update = 0x80AD0870; // type:func -EnStream_Draw = 0x80AD08A4; // type:func -EnMm_ChangeAnim = 0x80AD0A70; // type:func -EnMm_Init = 0x80AD0B94; // type:func -EnMm_Destroy = 0x80AD0D50; // type:func -func_80AADA70 = 0x80AD0D7C; // type:func -func_80AADAA0 = 0x80AD0DB0; // type:func -EnMm_GetTextId = 0x80AD0F44; // type:func -func_80AADCD0 = 0x80AD0FE4; // type:func -EnMm_GetPointCount = 0x80AD1164; // type:func -func_80AADE60 = 0x80AD1178; // type:func -func_80AADEF0 = 0x80AD120C; // type:func -func_80AAE224 = 0x80AD151C; // type:func -func_80AAE294 = 0x80AD158C; // type:func -func_80AAE50C = 0x80AD1804; // type:func -func_80AAE598 = 0x80AD1890; // type:func -EnMm_Update = 0x80AD1938; // type:func -EnMm_Draw = 0x80AD19AC; // type:func -EnMm_OverrideLimbDraw = 0x80AD1C24; // type:func -EnMm_PostLimbDraw = 0x80AD1CB8; // type:func -EnKo_AreObjectsAvailable = 0x80AD2090; // type:func -EnKo_AreObjectsLoaded = 0x80AD21A8; // type:func -EnKo_IsOsAnimeAvailable = 0x80AD2230; // type:func -EnKo_IsOsAnimeLoaded = 0x80AD2280; // type:func -EnKo_GetTextIdChild = 0x80AD22C0; // type:func -EnKo_GetTextIdAdult = 0x80AD2628; // type:func -EnKo_GetTextId = 0x80AD2900; // type:func -EnKo_UpdateTalkState = 0x80AD2A2C; // type:func -EnKo_GetForestQuestState = 0x80AD2E2C; // type:func -func_80A97BC0 = 0x80AD2EB4; // type:func -func_80A97C7C = 0x80AD2F70; // type:func -EnKo_IsWithinTalkAngle = 0x80AD2FF4; // type:func -func_80A97D68 = 0x80AD3060; // type:func -func_80A97E18 = 0x80AD3110; // type:func -func_80A97EB0 = 0x80AD31AC; // type:func -func_80A97F20 = 0x80AD3220; // type:func -func_80A97F70 = 0x80AD3270; // type:func -func_80A98034 = 0x80AD3334; // type:func -func_80A98124 = 0x80AD3428; // type:func -func_80A98174 = 0x80AD3478; // type:func -EnKo_ChildStart = 0x80AD355C; // type:func -EnKo_ChildStone = 0x80AD3664; // type:func -EnKo_ChildSaria = 0x80AD376C; // type:func -EnKo_AdultEnemy = 0x80AD3874; // type:func -EnKo_AdultSaved = 0x80AD397C; // type:func -func_80A9877C = 0x80AD3A84; // type:func -EnKo_CanSpawn = 0x80AD3C40; // type:func -EnKo_Blink = 0x80AD3F24; // type:func -func_80A98CD8 = 0x80AD3FE4; // type:func -EnKo_GetForestQuestState2 = 0x80AD403C; // type:func -func_80A98DB4 = 0x80AD40C8; // type:func -func_80A98ECC = 0x80AD41E0; // type:func -EnKo_Init = 0x80AD42A8; // type:func -EnKo_Destroy = 0x80AD4338; // type:func -func_80A99048 = 0x80AD4364; // type:func -func_80A99384 = 0x80AD4694; // type:func -func_80A99438 = 0x80AD4748; // type:func -func_80A99504 = 0x80AD4814; // type:func -func_80A99560 = 0x80AD4874; // type:func -func_80A995CC = 0x80AD48E4; // type:func -EnKo_Update = 0x80AD4A20; // type:func -EnKo_OverrideLimbDraw = 0x80AD4B84; // type:func -EnKo_PostLimbDraw = 0x80AD4EEC; // type:func -EnKo_SetEnvColor = 0x80AD4FBC; // type:func -EnKo_Draw = 0x80AD5028; // type:func -EnKz_GetTextIdChild = 0x80AD61D0; // type:func -EnKz_GetTextIdAdult = 0x80AD622C; // type:func -EnKz_GetTextId = 0x80AD62DC; // type:func -EnKz_UpdateTalkState = 0x80AD6344; // type:func -EnKz_UpdateEyes = 0x80AD6568; // type:func -EnKz_UpdateTalking = 0x80AD65E0; // type:func -func_80A9CB18 = 0x80AD679C; // type:func -EnKz_FollowPath = 0x80AD695C; // type:func -EnKz_SetMovedPos = 0x80AD6AC8; // type:func -EnKz_Init = 0x80AD6B90; // type:func -EnKz_Destroy = 0x80AD6D1C; // type:func -EnKz_PreMweepWait = 0x80AD6D48; // type:func -EnKz_SetupMweep = 0x80AD6DB8; // type:func -EnKz_Mweep = 0x80AD6EE4; // type:func -EnKz_StopMweep = 0x80AD7050; // type:func -EnKz_Wait = 0x80AD70B4; // type:func -EnKz_SetupGetItem = 0x80AD711C; // type:func -EnKz_StartTimer = 0x80AD71B0; // type:func -EnKz_Update = 0x80AD7248; // type:func -EnKz_OverrideLimbDraw = 0x80AD7304; // type:func -EnKz_PostLimbDraw = 0x80AD73D4; // type:func -EnKz_Draw = 0x80AD7430; // type:func -EnWeatherTag_SetupAction = 0x80AD7770; // type:func -EnWeatherTag_Destroy = 0x80AD777C; // type:func -EnWeatherTag_Init = 0x80AD778C; // type:func -WeatherTag_CheckEnableWeatherEffect = 0x80AD7960; // type:func -WeatherTag_CheckRestoreWeather = 0x80AD7B38; // type:func -EnWeatherTag_DisabledCloudyHyruleMarket = 0x80AD7CF8; // type:func -EnWeatherTag_EnabledCloudyHyruleMarket = 0x80AD7D54; // type:func -EnWeatherTag_DisabledCloudyLonLonRanch = 0x80AD7DA8; // type:func -EnWeatherTag_EnabledCloudyLonLonRanch = 0x80AD7E04; // type:func -EnWeatherTag_DisabledCloudyDeathMountain = 0x80AD7E58; // type:func -EnWeatherTag_EnabledCloudyDeathMountain = 0x80AD7EB4; // type:func -EnWeatherTag_DisabledCloudySnow = 0x80AD7F08; // type:func -EnWeatherTag_EnabledCloudySnow = 0x80AD7F80; // type:func -EnWeatherTag_DisabledRainLakeHylia = 0x80AD7FEC; // type:func -EnWeatherTag_EnabledRainLakeHylia = 0x80AD8070; // type:func -EnWeatherTag_DisabledCloudyRainThunderKakariko = 0x80AD80E8; // type:func -EnWeatherTag_EnabledCloudyRainThunderKakariko = 0x80AD8180; // type:func -EnWeatherTag_SetSandstormIntensity = 0x80AD820C; // type:func -EnWeatherTag_DisabledRainThunder = 0x80AD8308; // type:func -EnWeatherTag_EnabledRainThunder = 0x80AD83AC; // type:func -EnWeatherTag_Update = 0x80AD8460; // type:func -BgSstFloor_Init = 0x80AD8660; // type:func -BgSstFloor_Destroy = 0x80AD86C8; // type:func -BgSstFloor_Update = 0x80AD86FC; // type:func -BgSstFloor_Draw = 0x80AD8A70; // type:func -EnAni_SetupAction = 0x80AD8BC0; // type:func -EnAni_Init = 0x80AD8BCC; // type:func -EnAni_Destroy = 0x80AD8CE4; // type:func -EnAni_SetText = 0x80AD8D10; // type:func -func_809B04F0 = 0x80AD8D4C; // type:func -func_809B0524 = 0x80AD8D84; // type:func -func_809B0558 = 0x80AD8DBC; // type:func -func_809B05F0 = 0x80AD8E58; // type:func -func_809B064C = 0x80AD8EBC; // type:func -func_809B07F8 = 0x80AD9068; // type:func -func_809B0988 = 0x80AD91F8; // type:func -func_809B0994 = 0x80AD9208; // type:func -func_809B0A28 = 0x80AD929C; // type:func -func_809B0A6C = 0x80AD92E0; // type:func -EnAni_Update = 0x80AD938C; // type:func -EnAni_OverrideLimbDraw = 0x80AD9608; // type:func -EnAni_PostLimbDraw = 0x80AD9650; // type:func -EnAni_Draw = 0x80AD9690; // type:func -EnExItem_Destroy = 0x80AD9930; // type:func -EnExItem_Init = 0x80AD9940; // type:func -EnExItem_WaitForObject = 0x80AD9A9C; // type:func -EnExItem_BowlPrize = 0x80AD9E18; // type:func -EnExItem_SetupBowlCounter = 0x80ADA004; // type:func -EnExItem_BowlCounter = 0x80ADA02C; // type:func -EnExItem_ExitChest = 0x80ADA064; // type:func -EnExItem_FairyMagic = 0x80ADA0CC; // type:func -EnExItem_TargetPrizeApproach = 0x80ADA0E4; // type:func -EnExItem_TargetPrizeGive = 0x80ADA338; // type:func -EnExItem_TargetPrizeFinish = 0x80ADA3C4; // type:func -EnExItem_Update = 0x80ADA424; // type:func -EnExItem_Draw = 0x80ADA478; // type:func -EnExItem_DrawItems = 0x80ADA528; // type:func -EnExItem_DrawHeartPiece = 0x80ADA58C; // type:func -EnExItem_DrawMagic = 0x80ADA5C0; // type:func -EnExItem_DrawKey = 0x80ADA608; // type:func -EnExItem_DrawRupee = 0x80ADA6F4; // type:func -BgJyaIronobj_InitCylinder = 0x80ADAAA0; // type:func -BgJyaIronobj_SpawnPillarParticles = 0x80ADAB20; // type:func -BgJyaIronobj_SpawnThroneParticles = 0x80ADAF9C; // type:func -BgJyaIronobj_Init = 0x80ADB3C8; // type:func -BgJyaIronobj_Destroy = 0x80ADB45C; // type:func -func_808992D8 = 0x80ADB4A4; // type:func -func_808992E8 = 0x80ADB4B8; // type:func -BgJyaIronobj_Update = 0x80ADB5F8; // type:func -BgJyaIronobj_Draw = 0x80ADB61C; // type:func -En_Js_SetupAction = 0x80ADB850; // type:func -EnJs_Init = 0x80ADB85C; // type:func -EnJs_Destroy = 0x80ADB980; // type:func -func_80A88F64 = 0x80ADB9AC; // type:func -func_80A89008 = 0x80ADBA54; // type:func -func_80A89078 = 0x80ADBAC8; // type:func -func_80A890C0 = 0x80ADBB14; // type:func -func_80A8910C = 0x80ADBB64; // type:func -func_80A89160 = 0x80ADBBB8; // type:func -func_80A891C4 = 0x80ADBC20; // type:func -func_80A89294 = 0x80ADBCF4; // type:func -func_80A89304 = 0x80ADBD68; // type:func -EnJs_Update = 0x80ADBDA0; // type:func -EnJs_OverrideLimbDraw = 0x80ADC02C; // type:func -EnJs_PostLimbDraw = 0x80ADC064; // type:func -EnJs_Draw = 0x80ADC0A4; // type:func -EnJsjutan_Init = 0x80ADC220; // type:func -EnJsjutan_Destroy = 0x80ADC2B4; // type:func -func_80A89860 = 0x80ADC2E8; // type:func -func_80A89A6C = 0x80ADC4F4; // type:func -EnJsjutan_Update = 0x80ADCFD4; // type:func -EnJsjutan_Draw = 0x80ADD0AC; // type:func -EnCs_ChangeAnim = 0x80AE1B40; // type:func -EnCs_Init = 0x80AE1C64; // type:func -EnCs_Destroy = 0x80AE1DF8; // type:func -EnCs_GetTalkState = 0x80AE1E24; // type:func -EnCs_GetTextId = 0x80AE1F58; // type:func -EnCs_HandleTalking = 0x80AE1FDC; // type:func -EnCs_GetwaypointCount = 0x80AE2128; // type:func -EnCs_GetPathPoint = 0x80AE213C; // type:func -EnCs_HandleWalking = 0x80AE21D0; // type:func -EnCs_Walk = 0x80AE23E8; // type:func -EnCs_Wait = 0x80AE2588; // type:func -EnCs_Talk = 0x80AE2614; // type:func -EnCs_Update = 0x80AE26D8; // type:func -EnCs_Draw = 0x80AE2848; // type:func -EnCs_OverrideLimbDraw = 0x80AE29FC; // type:func -EnCs_PostLimbDraw = 0x80AE2A8C; // type:func -func_80AAA250 = 0x80AE2D70; // type:func -func_80AAA274 = 0x80AE2D98; // type:func -func_80AAA308 = 0x80AE2E2C; // type:func -func_80AAA39C = 0x80AE2EC0; // type:func -func_80AAA474 = 0x80AE2F98; // type:func -func_80AAA508 = 0x80AE302C; // type:func -func_80AAA5A4 = 0x80AE30C8; // type:func -func_80AAA638 = 0x80AE315C; // type:func -func_80AAA6D4 = 0x80AE31F8; // type:func -func_80AAA768 = 0x80AE328C; // type:func -func_80AAA7FC = 0x80AE3320; // type:func -func_80AAA890 = 0x80AE33B4; // type:func -func_80AAA92C = 0x80AE3450; // type:func -func_80AAA93C = 0x80AE3468; // type:func -func_80AAAA24 = 0x80AE3550; // type:func -func_80AAAC78 = 0x80AE37A4; // type:func -EnMd_GetTextIdKokiriForest = 0x80AE3824; // type:func -EnMd_GetTextIdMidosHouse = 0x80AE390C; // type:func -EnMd_GetTextIdLostWoods = 0x80AE3940; // type:func -EnMd_GetTextId = 0x80AE39C0; // type:func -EnMd_UpdateTalkState = 0x80AE3A30; // type:func -EnMd_ShouldSpawn = 0x80AE3B68; // type:func -EnMd_UpdateEyes = 0x80AE3C0C; // type:func -func_80AAB158 = 0x80AE3C84; // type:func -EnMd_FollowPath = 0x80AE3EA0; // type:func -EnMd_SetMovedPos = 0x80AE400C; // type:func -func_80AAB5A4 = 0x80AE40D4; // type:func -EnMd_Init = 0x80AE4180; // type:func -EnMd_Destroy = 0x80AE437C; // type:func -func_80AAB874 = 0x80AE43A8; // type:func -func_80AAB8F8 = 0x80AE442C; // type:func -func_80AAB948 = 0x80AE447C; // type:func -func_80AABC10 = 0x80AE474C; // type:func -func_80AABD0C = 0x80AE4848; // type:func -EnMd_Update = 0x80AE4970; // type:func -EnMd_OverrideLimbDraw = 0x80AE4A30; // type:func -EnMd_PostLimbDraw = 0x80AE4C4C; // type:func -EnMd_Draw = 0x80AE4CA8; // type:func -EnHy_FindSkelAndHeadObjects = 0x80AE53E0; // type:func -EnHy_AreSkelAndHeadObjectsLoaded = 0x80AE54F4; // type:func -EnHy_FindOsAnimeObject = 0x80AE557C; // type:func -EnHy_IsOsAnimeObjectLoaded = 0x80AE55CC; // type:func -func_80A6F7CC = 0x80AE560C; // type:func -EnHy_GetTextId = 0x80AE5650; // type:func -EnHy_UpdateTalkState = 0x80AE5E98; // type:func -EnHy_UpdateEyes = 0x80AE63E4; // type:func -EnHy_InitCollider = 0x80AE64A0; // type:func -EnHy_InitSetProperties = 0x80AE64DC; // type:func -EnHy_UpdateCollider = 0x80AE6574; // type:func -func_80A70834 = 0x80AE6678; // type:func -func_80A70978 = 0x80AE67C0; // type:func -EnHy_ShouldSpawn = 0x80AE6930; // type:func -EnHy_Init = 0x80AE6BCC; // type:func -EnHy_Destroy = 0x80AE6C5C; // type:func -EnHy_InitImpl = 0x80AE6C88; // type:func -func_80A710F8 = 0x80AE6F54; // type:func -func_80A711B4 = 0x80AE7010; // type:func -func_80A7127C = 0x80AE70DC; // type:func -EnHy_DoNothing = 0x80AE7114; // type:func -func_80A712C0 = 0x80AE7124; // type:func -func_80A7134C = 0x80AE71B0; // type:func -func_80A714C4 = 0x80AE732C; // type:func -func_80A71530 = 0x80AE739C; // type:func -EnHy_Update = 0x80AE744C; // type:func -EnHy_OverrideLimbDraw = 0x80AE752C; // type:func -EnHy_PostLimbDraw = 0x80AE7898; // type:func -EnHy_SetEnvColor = 0x80AE79A4; // type:func -EnHy_Draw = 0x80AE7A10; // type:func -EnGanonMant_Init = 0x80AE8D20; // type:func -EnGanonMant_Destroy = 0x80AE8D3C; // type:func -EnGanonMant_Tear = 0x80AE8D4C; // type:func -EnGanonMant_UpdateStrand = 0x80AE8FA8; // type:func -EnGanonMant_UpdateVertices = 0x80AE956C; // type:func -EnGanonMant_Update = 0x80AE9790; // type:func -EnGanonMant_DrawCloak = 0x80AE984C; // type:func -EnGanonMant_Draw = 0x80AE9964; // type:func -EnOkarinaEffect_SetupAction = 0x80AECF40; // type:func -EnOkarinaEffect_Destroy = 0x80AECF4C; // type:func -EnOkarinaEffect_Init = 0x80AECFCC; // type:func -EnOkarinaEffect_TriggerStorm = 0x80AED014; // type:func -EnOkarinaEffect_ManageStorm = 0x80AED0A0; // type:func -EnOkarinaEffect_Update = 0x80AED270; // type:func -EnMag_ResetSram = 0x80AED300; // type:func -EnMag_Init = 0x80AED4C8; // type:func -EnMag_Destroy = 0x80AED750; // type:func -EnMag_CheckSramResetCode = 0x80AED760; // type:func -EnMag_Update = 0x80AED88C; // type:func -EnMag_DrawTextureI8 = 0x80AEDF68; // type:func -EnMag_DrawEffectTextures = 0x80AEE1A4; // type:func -EnMag_DrawImageRGBA32 = 0x80AEE608; // type:func -EnMag_DrawCharTexture = 0x80AEEC98; // type:func -EnMag_DrawInner = 0x80AEEE5C; // type:func -EnMag_Draw = 0x80AEFF98; // type:func -DoorGerudo_Init = 0x80AF2210; // type:func -DoorGerudo_Destroy = 0x80AF22C0; // type:func -func_809946BC = 0x80AF22F4; // type:func -func_80994750 = 0x80AF238C; // type:func -func_8099485C = 0x80AF2498; // type:func -func_8099496C = 0x80AF25A8; // type:func -func_809949C8 = 0x80AF2604; // type:func -DoorGerudo_Update = 0x80AF2660; // type:func -DoorGerudo_Draw = 0x80AF2684; // type:func -ElfMsg2_SetupAction = 0x80AF2800; // type:func -ElfMsg2_KillCheck = 0x80AF280C; // type:func -ElfMsg2_Init = 0x80AF2944; // type:func -ElfMsg2_Destroy = 0x80AF2A04; // type:func -ElfMsg2_GetMessageId = 0x80AF2A14; // type:func -ElfMsg2_WaitForTextClose = 0x80AF2A28; // type:func -ElfMsg2_WaitForTextRead = 0x80AF2AA8; // type:func -ElfMsg2_WaitUntilActivated = 0x80AF2AE0; // type:func -ElfMsg2_Update = 0x80AF2B5C; // type:func -DemoGt_Destroy = 0x80AF2C70; // type:func -DemoGt_PlayEarthquakeSfx = 0x80AF2CB8; // type:func -DemoGt_PlayExplosion1Sfx = 0x80AF2CD8; // type:func -DemoGt_PlayExplosion2Sfx = 0x80AF2CFC; // type:func -DemoGt_Rumble = 0x80AF2D20; // type:func -DemoGt_SpawnDust = 0x80AF2D50; // type:func -func_8097D7D8 = 0x80AF2DE0; // type:func -DemoGt_SpawnCloudRing = 0x80AF2F68; // type:func -DemoGt_SpawnExplosionWithSound = 0x80AF2FC8; // type:func -DemoGt_SpawnExplosionNoSound = 0x80AF307C; // type:func -func_8097DAC8 = 0x80AF30D0; // type:func -func_8097DD28 = 0x80AF3330; // type:func -func_8097DF70 = 0x80AF3578; // type:func -func_8097E1D4 = 0x80AF37DC; // type:func -func_8097E454 = 0x80AF3A5C; // type:func -DemoGt_IsCutsceneIdle = 0x80AF3CAC; // type:func -DemoGt_GetCue = 0x80AF3CCC; // type:func -func_8097E704 = 0x80AF3D18; // type:func -func_8097E744 = 0x80AF3D58; // type:func -func_8097E824 = 0x80AF3E38; // type:func -func_8097ED64 = 0x80AF4374; // type:func -DemoGt_IsCutsceneLayer = 0x80AF43AC; // type:func -func_8097EDD8 = 0x80AF43D4; // type:func -func_8097EE44 = 0x80AF444C; // type:func -func_8097EEA8_Init0 = 0x80AF44B0; // type:func -func_8097EF00 = 0x80AF4508; // type:func -func_8097EF34 = 0x80AF453C; // type:func -func_8097EF40 = 0x80AF454C; // type:func -func_8097F0AC = 0x80AF46A4; // type:func -func_8097F19C = 0x80AF4788; // type:func -func_8097F1D8 = 0x80AF47CC; // type:func -func_8097F280 = 0x80AF4874; // type:func -func_8097F3EC = 0x80AF49E8; // type:func -DemoGt_Update0 = 0x80AF4A28; // type:func -DemoGt_Update8 = 0x80AF4AA0; // type:func -DemoGt_Draw1 = 0x80AF4B18; // type:func -func_8097F904_Init1 = 0x80AF4EC8; // type:func -func_8097F960 = 0x80AF4F24; // type:func -func_8097F96C = 0x80AF4F34; // type:func -func_8097FA1C = 0x80AF4FC8; // type:func -func_8097FAFC = 0x80AF5090; // type:func -func_8097FC1C = 0x80AF5198; // type:func -func_8097FCE4 = 0x80AF524C; // type:func -func_8097FD70 = 0x80AF52C8; // type:func -func_8097FDDC = 0x80AF533C; // type:func -func_8097FED8 = 0x80AF543C; // type:func -DemoGt_Update1 = 0x80AF547C; // type:func -DemoGt_Update9 = 0x80AF54CC; // type:func -DemoGt_Draw2 = 0x80AF5514; // type:func -func_80980110_Init2 = 0x80AF5648; // type:func -func_8098016C = 0x80AF56A4; // type:func -func_80980178 = 0x80AF56B4; // type:func -func_80980184 = 0x80AF56C4; // type:func -func_80980218 = 0x80AF5758; // type:func -func_809802AC = 0x80AF57EC; // type:func -func_8098036C = 0x80AF58B0; // type:func -func_80980430 = 0x80AF5978; // type:func -func_80980504 = 0x80AF5A38; // type:func -func_809805D8 = 0x80AF5AF8; // type:func -func_809806B8 = 0x80AF5BC0; // type:func -func_8098078C = 0x80AF5C80; // type:func -func_8098085C = 0x80AF5D3C; // type:func -func_809809C0 = 0x80AF5E88; // type:func -func_80980AD4 = 0x80AF5F8C; // type:func -func_80980B68 = 0x80AF600C; // type:func -func_80980BFC = 0x80AF608C; // type:func -func_80980C90 = 0x80AF610C; // type:func -func_80980D74 = 0x80AF61F8; // type:func -DemoGt_Update2 = 0x80AF6238; // type:func -DemoGt_Update10 = 0x80AF627C; // type:func -DemoGt_Draw3 = 0x80AF62B8; // type:func -func_80980F00_Init5 = 0x80AF6350; // type:func -func_80980F58 = 0x80AF63A8; // type:func -func_80980F8C = 0x80AF63E0; // type:func -func_8098103C = 0x80AF6494; // type:func -DemoGt_Update3 = 0x80AF64F8; // type:func -DemoGt_Update11 = 0x80AF653C; // type:func -DemoGt_Update16 = 0x80AF6578; // type:func -DemoGt_Draw4 = 0x80AF6610; // type:func -func_809813CC_Init6 = 0x80AF67F8; // type:func -func_80981424 = 0x80AF6850; // type:func -func_80981458 = 0x80AF6888; // type:func -func_80981524 = 0x80AF6940; // type:func -DemoGt_Update4 = 0x80AF69A4; // type:func -DemoGt_Update12 = 0x80AF69E8; // type:func -DemoGt_Update17 = 0x80AF6A24; // type:func -DemoGt_Draw5 = 0x80AF6ABC; // type:func -func_809818A4_Init7 = 0x80AF6C98; // type:func -func_809818FC = 0x80AF6CF0; // type:func -func_80981930 = 0x80AF6D28; // type:func -DemoGt_Update5 = 0x80AF6D8C; // type:func -DemoGt_Update13 = 0x80AF6DD0; // type:func -DemoGt_Update18 = 0x80AF6E0C; // type:func -DemoGt_Draw6 = 0x80AF6EA4; // type:func -func_80981C94_Init23 = 0x80AF705C; // type:func -func_80981CEC = 0x80AF70B4; // type:func -func_80981D20 = 0x80AF70EC; // type:func -func_80981DC8 = 0x80AF7194; // type:func -DemoGt_Update6 = 0x80AF71D4; // type:func -DemoGt_Update14 = 0x80AF7218; // type:func -DemoGt_Draw7 = 0x80AF725C; // type:func -func_80982054_Init24 = 0x80AF73F4; // type:func -func_809820AC = 0x80AF744C; // type:func -func_809820E0 = 0x80AF7484; // type:func -func_80982188 = 0x80AF752C; // type:func -DemoGt_Update7 = 0x80AF756C; // type:func -DemoGt_Update15 = 0x80AF75B0; // type:func -DemoGt_Draw8 = 0x80AF75F4; // type:func -DemoGt_Update = 0x80AF7790; // type:func -DemoGt_Init = 0x80AF77D8; // type:func -DemoGt_Draw0 = 0x80AF789C; // type:func -DemoGt_Draw = 0x80AF78AC; // type:func -EnPoField_Init = 0x80AF8270; // type:func -EnPoField_Destroy = 0x80AF8478; // type:func -EnPoField_SetupWaitForSpawn = 0x80AF84D8; // type:func -EnPoField_SetupAppear = 0x80AF859C; // type:func -EnPoField_SetupCirclePlayer = 0x80AF86BC; // type:func -EnPoField_SetupFlee = 0x80AF8764; // type:func -EnPoField_SetupDamage = 0x80AF87F8; // type:func -EnPoField_SetupDeath = 0x80AF88B4; // type:func -EnPoField_SetupDisappear = 0x80AF8908; // type:func -EnPoField_SetupSoulIdle = 0x80AF8980; // type:func -func_80AD42B0 = 0x80AF8A30; // type:func -func_80AD4384 = 0x80AF8B04; // type:func -EnPoField_SetupSoulDisappear = 0x80AF8BBC; // type:func -EnPoField_SetupInteractWithSoul = 0x80AF8BD0; // type:func -EnPoField_CorrectYPos = 0x80AF8BF8; // type:func -EnPoField_SetFleeSpeed = 0x80AF8CDC; // type:func -EnPoField_WaitForSpawn = 0x80AF8DEC; // type:func -EnPoField_Appear = 0x80AF9054; // type:func -EnPoField_CirclePlayer = 0x80AF91F0; // type:func -EnPoField_Flee = 0x80AF9430; // type:func -EnPoField_Damage = 0x80AF95D4; // type:func -EnPoField_Death = 0x80AF9664; // type:func -EnPoField_Disappear = 0x80AF9A7C; // type:func -EnPoField_SoulIdle = 0x80AF9B7C; // type:func -EnPoField_SoulUpdateProperties = 0x80AF9C60; // type:func -func_80AD587C = 0x80AFA008; // type:func -func_80AD58D4 = 0x80AFA060; // type:func -EnPoField_SoulDisappear = 0x80AFA264; // type:func -EnPoField_SoulInteract = 0x80AFA2A4; // type:func -EnPoField_TestForDamage = 0x80AFA404; // type:func -EnPoField_SpawnFlame = 0x80AFA49C; // type:func -EnPoField_UpdateFlame = 0x80AFA4F0; // type:func -EnPoField_DrawFlame = 0x80AFA61C; // type:func -func_80AD619C = 0x80AFA8F4; // type:func -func_80AD6330 = 0x80AFAA88; // type:func -EnPoField_Update = 0x80AFABFC; // type:func -EnPoField_OverrideLimbDraw2 = 0x80AFAD28; // type:func -EnPoField_PostLimDraw2 = 0x80AFAE30; // type:func -EnPoField_Draw = 0x80AFB040; // type:func -EnPoField_UpdateDead = 0x80AFB31C; // type:func -EnPoField_DrawSoul = 0x80AFB378; // type:func -EfcErupc_SetupAction = 0x80AFBCE0; // type:func -EfcErupc_Init = 0x80AFBCEC; // type:func -EfcErupc_Destroy = 0x80AFBD58; // type:func -EfcErupc_UpdateAction = 0x80AFBD68; // type:func -EfcErupc_Update = 0x80AFBFB4; // type:func -EfcErupc_Draw = 0x80AFBFF0; // type:func -EfcErupc_DrawEffects = 0x80AFC330; // type:func -EfcErupc_UpdateEffects = 0x80AFC4E8; // type:func -EfcErupc_SpawnEffect = 0x80AFC60C; // type:func -EfcErupc_InitEffects = 0x80AFC6D8; // type:func -BgZg_Destroy = 0x80AFC7C0; // type:func -func_808C0C50 = 0x80AFC7F4; // type:func -func_808C0C98 = 0x80AFC83C; // type:func -func_808C0CC8 = 0x80AFC870; // type:func -func_808C0CD4 = 0x80AFC880; // type:func -func_808C0D08 = 0x80AFC8CC; // type:func -BgZg_Update = 0x80AFC970; // type:func -BgZg_Init = 0x80AFC9B8; // type:func -func_808C0EEC = 0x80AFCAA4; // type:func -BgZg_Draw = 0x80AFCB1C; // type:func -EnHeishi4_Init = 0x80AFCC30; // type:func -EnHeishi4_Destroy = 0x80AFCE10; // type:func -func_80A56328 = 0x80AFCE3C; // type:func -func_80A563BC = 0x80AFCED0; // type:func -func_80A56544 = 0x80AFD058; // type:func -func_80A56614 = 0x80AFD11C; // type:func -func_80A5673C = 0x80AFD244; // type:func -func_80A56874 = 0x80AFD358; // type:func -func_80A56900 = 0x80AFD3E4; // type:func -func_80A56994 = 0x80AFD478; // type:func -func_80A56A50 = 0x80AFD534; // type:func -func_80A56ACC = 0x80AFD5B0; // type:func -func_80A56B40 = 0x80AFD624; // type:func -EnHeishi4_Update = 0x80AFD798; // type:func -EnHeishi_OverrideLimbDraw = 0x80AFD8FC; // type:func -EnHeishi4_Draw = 0x80AFD964; // type:func -func_80B533B0 = 0x80AFDB30; // type:func -func_80B533FC = 0x80AFDB7C; // type:func -EnZl3_Destroy = 0x80AFDBC0; // type:func -func_80B53468 = 0x80AFDBEC; // type:func -func_80B53488 = 0x80AFDC0C; // type:func -EnZl3_UpdateEyes = 0x80AFDC58; // type:func -EnZl3_setEyeIndex = 0x80AFDCE0; // type:func -EnZl3_setMouthIndex = 0x80AFDCF8; // type:func -func_80B5357C = 0x80AFDD10; // type:func -func_80B53614 = 0x80AFDDAC; // type:func -func_80B5366C = 0x80AFDE04; // type:func -func_80B536B4 = 0x80AFDE4C; // type:func -func_80B536C4 = 0x80AFDE60; // type:func -func_80B53764 = 0x80AFDF04; // type:func -func_80B537E8 = 0x80AFDF8C; // type:func -func_80B538B0 = 0x80AFE054; // type:func -EnZl3_UpdateSkelAnime = 0x80AFE0F0; // type:func -func_80B5396C = 0x80AFE114; // type:func -func_80B53974 = 0x80AFE120; // type:func -func_80B53980 = 0x80AFE134; // type:func -func_80B53B64 = 0x80AFE31C; // type:func -func_80B54360 = 0x80AFEB2C; // type:func -func_80B5458C = 0x80AFED5C; // type:func -EnZl3_PostLimbDraw = 0x80AFF458; // type:func -func_80B54DB4 = 0x80AFF524; // type:func -func_80B54DC4 = 0x80AFF538; // type:func -func_80B54DD4 = 0x80AFF54C; // type:func -func_80B54DE0 = 0x80AFF55C; // type:func -func_80B54E14 = 0x80AFF594; // type:func -func_80B54EA4 = 0x80AFF624; // type:func -func_80B54EF4 = 0x80AFF678; // type:func -func_80B54F18 = 0x80AFF6A0; // type:func -func_80B54FB4 = 0x80AFF740; // type:func -func_80B55054 = 0x80AFF7C4; // type:func -func_80B550F0 = 0x80AFF864; // type:func -func_80B55144 = 0x80AFF8B8; // type:func -func_80B551E0 = 0x80AFF958; // type:func -func_80B55220 = 0x80AFF998; // type:func -func_80B55268 = 0x80AFF9E0; // type:func -func_80B552A8 = 0x80AFFA20; // type:func -func_80B552DC = 0x80AFFA54; // type:func -func_80B55334 = 0x80AFFAB0; // type:func -func_80B55368 = 0x80AFFAE4; // type:func -func_80B553B4 = 0x80AFFB30; // type:func -func_80B553E8 = 0x80AFFB64; // type:func -func_80B55408 = 0x80AFFB84; // type:func -func_80B55444 = 0x80AFFBC0; // type:func -func_80B55550 = 0x80AFFCC4; // type:func -func_80B555A4 = 0x80AFFD20; // type:func -func_80B55604 = 0x80AFFD88; // type:func -func_80B5566C = 0x80AFFDF8; // type:func -func_80B556CC = 0x80AFFE60; // type:func -func_80B5572C = 0x80AFFEC8; // type:func -func_80B55780 = 0x80AFFF24; // type:func -func_80B55808 = 0x80AFFF88; // type:func -func_80B5582C = 0x80AFFFB0; // type:func -func_80B5585C = 0x80AFFFE0; // type:func -func_80B558A8 = 0x80B0002C; // type:func -func_80B559C4 = 0x80B0014C; // type:func -func_80B55A58 = 0x80B001DC; // type:func -func_80B55A84 = 0x80B00208; // type:func -func_80B55AC4 = 0x80B00248; // type:func -func_80B55B04 = 0x80B00288; // type:func -func_80B55B38 = 0x80B002BC; // type:func -func_80B55B78 = 0x80B002FC; // type:func -func_80B55BAC = 0x80B00330; // type:func -func_80B55C0C = 0x80B00394; // type:func -func_80B55C4C = 0x80B003D4; // type:func -func_80B55C70 = 0x80B003FC; // type:func -func_80B55CCC = 0x80B00454; // type:func -func_80B55D00 = 0x80B00488; // type:func -func_80B55DB0 = 0x80B0053C; // type:func -func_80B55E08 = 0x80B00594; // type:func -func_80B55E48 = 0x80B005D4; // type:func -func_80B55E7C = 0x80B00608; // type:func -func_80B55EBC = 0x80B00648; // type:func -func_80B55EF0 = 0x80B0067C; // type:func -func_80B55F38 = 0x80B006C4; // type:func -func_80B55F6C = 0x80B006F8; // type:func -func_80B5604C = 0x80B007DC; // type:func -func_80B56090 = 0x80B00820; // type:func -func_80B56108 = 0x80B0089C; // type:func -func_80B56160 = 0x80B008F4; // type:func -func_80B561A0 = 0x80B00934; // type:func -func_80B561E0 = 0x80B00974; // type:func -func_80B56214 = 0x80B009A8; // type:func -func_80B562F4 = 0x80B00A8C; // type:func -func_80B5634C = 0x80B00AE4; // type:func -func_80B5638C = 0x80B00B24; // type:func -func_80B563C0 = 0x80B00B58; // type:func -func_80B56400 = 0x80B00B98; // type:func -func_80B56434 = 0x80B00BCC; // type:func -func_80B56474 = 0x80B00C0C; // type:func -func_80B564A8 = 0x80B00C40; // type:func -func_80B56658 = 0x80B00DE0; // type:func -func_80B566AC = 0x80B00E3C; // type:func -func_80B5670C = 0x80B00EA4; // type:func -func_80B5676C = 0x80B00F0C; // type:func -func_80B567CC = 0x80B00F74; // type:func -func_80B5682C = 0x80B00FDC; // type:func -func_80B568B4 = 0x80B0106C; // type:func -func_80B5691C = 0x80B010DC; // type:func -func_80B5697C = 0x80B01144; // type:func -func_80B569E4 = 0x80B011B4; // type:func -func_80B56A68 = 0x80B01240; // type:func -func_80B56AE0 = 0x80B012C0; // type:func -func_80B56B54 = 0x80B0133C; // type:func -func_80B56BA8 = 0x80B01398; // type:func -func_80B56C24 = 0x80B0141C; // type:func -func_80B56C84 = 0x80B01484; // type:func -func_80B56CE4 = 0x80B014EC; // type:func -func_80B56D44 = 0x80B01554; // type:func -func_80B56DA4 = 0x80B015BC; // type:func -func_80B56DC8 = 0x80B015E0; // type:func -func_80B56DEC = 0x80B01608; // type:func -func_80B56E38 = 0x80B01654; // type:func -func_80B56EB8 = 0x80B016D4; // type:func -func_80B56EE4 = 0x80B01704; // type:func -func_80B56F10 = 0x80B01734; // type:func -func_80B56F8C = 0x80B01788; // type:func -func_80B56FAC = 0x80B017A8; // type:func -func_80B57034 = 0x80B01834; // type:func -func_80B57104 = 0x80B01908; // type:func -func_80B571A8 = 0x80B019B0; // type:func -func_80B571FC = 0x80B01A04; // type:func -func_80B57240 = 0x80B01A48; // type:func -func_80B57298 = 0x80B01AA0; // type:func -func_80B572F0 = 0x80B01AF8; // type:func -func_80B57324 = 0x80B01B30; // type:func -func_80B57350 = 0x80B01B5C; // type:func -func_80B573C8 = 0x80B01BD4; // type:func -func_80B573FC = 0x80B01C08; // type:func -func_80B57458 = 0x80B01C64; // type:func -func_80B57564 = 0x80B01D74; // type:func -func_80B575B0 = 0x80B01DC8; // type:func -func_80B575D0 = 0x80B01DE8; // type:func -func_80B575F0 = 0x80B01E08; // type:func -func_80B5764C = 0x80B01E64; // type:func -func_80B576C8 = 0x80B01EE4; // type:func -func_80B57704 = 0x80B01F28; // type:func -func_80B5772C = 0x80B01F54; // type:func -func_80B57754 = 0x80B01F80; // type:func -func_80B577BC = 0x80B01FEC; // type:func -func_80B57858 = 0x80B0208C; // type:func -func_80B57890 = 0x80B020C8; // type:func -func_80B57A74 = 0x80B022B0; // type:func -func_80B57AAC = 0x80B022E8; // type:func -func_80B57AE0 = 0x80B0231C; // type:func -func_80B57C54 = 0x80B02494; // type:func -func_80B57C7C = 0x80B024BC; // type:func -func_80B57C8C = 0x80B024D0; // type:func -func_80B57CB4 = 0x80B024F8; // type:func -func_80B57D60 = 0x80B025A0; // type:func -func_80B57D80 = 0x80B025C4; // type:func -func_80B57EAC = 0x80B026FC; // type:func -func_80B57EEC = 0x80B02744; // type:func -func_80B57F1C = 0x80B02778; // type:func -func_80B57F84 = 0x80B027E4; // type:func -func_80B58014 = 0x80B0287C; // type:func -func_80B58214 = 0x80B02A88; // type:func -func_80B58268 = 0x80B02AE0; // type:func -func_80B582C8 = 0x80B02B40; // type:func -func_80B584B4 = 0x80B02D2C; // type:func -func_80B58624 = 0x80B02E9C; // type:func -func_80B5884C = 0x80B030CC; // type:func -func_80B58898 = 0x80B03118; // type:func -func_80B588E8 = 0x80B03168; // type:func -func_80B58938 = 0x80B031B8; // type:func -func_80B5899C = 0x80B03220; // type:func -func_80B58A1C = 0x80B032A0; // type:func -func_80B58A50 = 0x80B032DC; // type:func -func_80B58AAC = 0x80B0333C; // type:func -func_80B58C08 = 0x80B03498; // type:func -func_80B58D50 = 0x80B035E0; // type:func -func_80B58DB0 = 0x80B03648; // type:func -func_80B58E10 = 0x80B036B0; // type:func -func_80B58E7C = 0x80B03724; // type:func -func_80B58EF4 = 0x80B037A4; // type:func -func_80B58F6C = 0x80B03824; // type:func -func_80B58FDC = 0x80B0389C; // type:func -func_80B5904C = 0x80B03914; // type:func -func_80B590BC = 0x80B0398C; // type:func -func_80B5912C = 0x80B03A04; // type:func -func_80B591BC = 0x80B03A9C; // type:func -func_80B5922C = 0x80B03B14; // type:func -func_80B592A8 = 0x80B03B98; // type:func -func_80B59340 = 0x80B03C38; // type:func -func_80B593D0 = 0x80B03CD0; // type:func -func_80B5944C = 0x80B03D54; // type:func -func_80B59698 = 0x80B03F50; // type:func -func_80B59768 = 0x80B04020; // type:func -func_80B59828 = 0x80B040E0; // type:func -func_80B59A80 = 0x80B04340; // type:func -func_80B59AD0 = 0x80B04390; // type:func -func_80B59B6C = 0x80B0442C; // type:func -func_80B59DB8 = 0x80B04674; // type:func -EnZl3_Update = 0x80B046E4; // type:func -EnZl3_Init = 0x80B0472C; // type:func -EnZl3_OverrideLimbDraw = 0x80B047EC; // type:func -func_80B59FE8 = 0x80B04854; // type:func -func_80B59FF4 = 0x80B04864; // type:func -func_80B5A1D0 = 0x80B04A10; // type:func -EnZl3_Draw = 0x80B04BB8; // type:func -BossGanon2_InitRand = 0x80B05980; // type:func -BossGanon2_RandZeroOne = 0x80B059A0; // type:func -func_808FD080 = 0x80B05AC8; // type:func -BossGanon2_SetObjectSegment = 0x80B05B58; // type:func -func_808FD210 = 0x80B05C0C; // type:func -func_808FD27C = 0x80B05C7C; // type:func -BossGanon2_Init = 0x80B05D5C; // type:func -BossGanon2_Destroy = 0x80B05E8C; // type:func -func_808FD4D4 = 0x80B05EDC; // type:func -func_808FD5C4 = 0x80B05FCC; // type:func -func_808FD5F4 = 0x80B06000; // type:func -func_808FF898 = 0x80B082B0; // type:func -func_808FFA24 = 0x80B0843C; // type:func -func_808FFAC8 = 0x80B084E0; // type:func -func_808FFBBC = 0x80B085D8; // type:func -func_808FFC84 = 0x80B086A4; // type:func -func_808FFCFC = 0x80B0871C; // type:func -func_808FFDB0 = 0x80B087D0; // type:func -func_808FFEBC = 0x80B088E0; // type:func -func_808FFF90 = 0x80B089B4; // type:func -func_808FFFE0 = 0x80B08A04; // type:func -func_809000A0 = 0x80B08AC4; // type:func -func_80900104 = 0x80B08B24; // type:func -func_80900210 = 0x80B08C30; // type:func -func_8090026C = 0x80B08C8C; // type:func -func_809002CC = 0x80B08CF0; // type:func -func_80900344 = 0x80B08D64; // type:func -func_80900580 = 0x80B08FA0; // type:func -func_80900650 = 0x80B09070; // type:func -func_80900818 = 0x80B09238; // type:func -func_80900890 = 0x80B092B0; // type:func -func_80901020 = 0x80B09A44; // type:func -func_8090109C = 0x80B09AC0; // type:func -func_8090120C = 0x80B09C30; // type:func -func_80902348 = 0x80B0AD74; // type:func -BossGanon2_CollisionCheck = 0x80B0AF54; // type:func -BossGanon2_Update = 0x80B0B248; // type:func -func_809034E4 = 0x80B0BF14; // type:func -func_80903F38 = 0x80B0C968; // type:func -func_80904108 = 0x80B0CAF8; // type:func -func_80904340 = 0x80B0CCF8; // type:func -func_8090464C = 0x80B0CFEC; // type:func -BossGanon2_OverrideLimbDraw = 0x80B0D178; // type:func -BossGanon2_PostLimbDraw = 0x80B0D2B0; // type:func -func_80904D88 = 0x80B0D674; // type:func -func_80904FC8 = 0x80B0D878; // type:func -func_8090523C = 0x80B0DA90; // type:func -BossGanon2_PostLimbDraw2 = 0x80B0DD1C; // type:func -func_80905674 = 0x80B0DE44; // type:func -BossGanon2_Draw = 0x80B0E08C; // type:func -BossGanon2_UpdateEffects = 0x80B0E4F0; // type:func -BossGanon2_DrawEffects = 0x80B0E834; // type:func -func_80906538 = 0x80B0EC24; // type:func -BossGanon2_GenShadowTexture = 0x80B0F0E4; // type:func -BossGanon2_DrawShadowTexture = 0x80B0F19C; // type:func -EnKakasi_Destroy = 0x80B187A0; // type:func -EnKakasi_Init = 0x80B187CC; // type:func -func_80A8F28C = 0x80B18894; // type:func -func_80A8F320 = 0x80B18928; // type:func -func_80A8F660 = 0x80B18C68; // type:func -func_80A8F75C = 0x80B18D64; // type:func -func_80A8F8D0 = 0x80B18EE0; // type:func -func_80A8F9C8 = 0x80B18FCC; // type:func -func_80A8FAA4 = 0x80B190AC; // type:func -func_80A8FBB8 = 0x80B191B0; // type:func -EnKakasi_Update = 0x80B19248; // type:func -EnKakasi_Draw = 0x80B1934C; // type:func -EnTakaraMan_Destroy = 0x80B194E0; // type:func -EnTakaraMan_Init = 0x80B194F0; // type:func -func_80B176E0 = 0x80B1963C; // type:func -func_80B1778C = 0x80B196E8; // type:func -func_80B17934 = 0x80B19890; // type:func -func_80B17A6C = 0x80B199C8; // type:func -func_80B17AC4 = 0x80B19A24; // type:func -func_80B17B14 = 0x80B19A78; // type:func -EnTakaraMan_Update = 0x80B19ADC; // type:func -EnTakaraMan_OverrideLimbDraw = 0x80B19BB4; // type:func -EnTakaraMan_Draw = 0x80B19C1C; // type:func -ObjMakeoshihiki_Init = 0x80B19DA0; // type:func -ObjMakeoshihiki_Draw = 0x80B19F14; // type:func -OceffSpot_SetupAction = 0x80B1A230; // type:func -OceffSpot_Init = 0x80B1A23C; // type:func -OceffSpot_Destroy = 0x80B1A398; // type:func -OceffSpot_End = 0x80B1A428; // type:func -OceffSpot_Wait = 0x80B1A4F0; // type:func -OceffSpot_GrowCylinder = 0x80B1A52C; // type:func -OceffSpot_Update = 0x80B1A590; // type:func -OceffSpot_Draw = 0x80B1A868; // type:func -EndTitle_Init = 0x80B1B160; // type:func -EndTitle_Destroy = 0x80B1B190; // type:func -EndTitle_Update = 0x80B1B1A0; // type:func -EndTitle_DrawFull = 0x80B1B1B0; // type:func -EndTitle_DrawNintendoLogo = 0x80B1B78C; // type:func -EnTorch_Init = 0x80B1F290; // type:func -DemoEc_Destroy = 0x80B1F380; // type:func -DemoEc_Init = 0x80B1F3A4; // type:func -DemoEc_UpdateSkelAnime = 0x80B1F3EC; // type:func -DemoEc_UpdateBgFlags = 0x80B1F410; // type:func -func_8096D594 = 0x80B1F458; // type:func -func_8096D5D4 = 0x80B1F498; // type:func -func_8096D64C = 0x80B1F510; // type:func -DemoEc_UpdateEyes = 0x80B1F550; // type:func -DemoEc_SetEyeTexIndex = 0x80B1F5D8; // type:func -DemoEc_InitSkelAnime = 0x80B1F5F0; // type:func -DemoEc_ChangeAnimation = 0x80B1F668; // type:func -DemoEc_AllocColorDList = 0x80B1F724; // type:func -DemoEc_DrawSkeleton = 0x80B1F77C; // type:func -DemoEc_DrawSkeletonCustomColor = 0x80B1F90C; // type:func -DemoEc_UseDrawObject = 0x80B1FB6C; // type:func -DemoEc_UseAnimationObject = 0x80B1FBC8; // type:func -DemoEc_GetCue = 0x80B1FC00; // type:func -DemoEc_SetStartPosRotFromCue = 0x80B1FC28; // type:func -DemoEc_InitIngo = 0x80B1FCA8; // type:func -DemoEc_UpdateIngo = 0x80B1FD48; // type:func -DemoEc_DrawIngo = 0x80B1FD88; // type:func -DemoEc_InitTalon = 0x80B1FDBC; // type:func -DemoEc_UpdateTalon = 0x80B1FE5C; // type:func -DemoEc_DrawTalon = 0x80B1FE9C; // type:func -DemoEc_InitWindmillMan = 0x80B1FED0; // type:func -DemoEc_UpdateWindmillMan = 0x80B1FF70; // type:func -DemoEc_DrawWindmillMan = 0x80B1FFB0; // type:func -DemoEc_InitKokiriBoy = 0x80B1FFE4; // type:func -DemoEc_InitDancingKokiriBoy = 0x80B20084; // type:func -DemoEc_UpdateKokiriBoy = 0x80B20128; // type:func -DemoEc_UpdateDancingKokiriBoy = 0x80B20168; // type:func -DemoEc_DrawKokiriBoy = 0x80B20188; // type:func -DemoEc_InitKokiriGirl = 0x80B201CC; // type:func -DemoEc_InitDancingKokiriGirl = 0x80B2026C; // type:func -DemoEc_UpdateKokiriGirl = 0x80B20310; // type:func -DemoEc_UpdateDancingKokiriGirl = 0x80B20358; // type:func -DemoEc_DrawKokiriGirl = 0x80B20378; // type:func -DemoEc_InitOldMan = 0x80B203CC; // type:func -DemoEc_UpdateOldMan = 0x80B2046C; // type:func -DemoEc_DrawOldMan = 0x80B204B4; // type:func -DemoEc_InitBeardedMan = 0x80B20508; // type:func -DemoEc_UpdateBeardedMan = 0x80B205A8; // type:func -DemoEc_DrawBeardedMan = 0x80B205F0; // type:func -DemoEc_InitWoman = 0x80B20644; // type:func -DemoEc_UpdateWoman = 0x80B206E4; // type:func -DemoEc_DrawWoman = 0x80B2072C; // type:func -DemoEc_InitOldWoman = 0x80B20768; // type:func -DemoEc_UpdateOldWoman = 0x80B20808; // type:func -DemoEc_DrawOldWoman = 0x80B20848; // type:func -DemoEc_InitBossCarpenter = 0x80B20878; // type:func -DemoEc_UpdateBossCarpenter = 0x80B20918; // type:func -DemoEc_DrawBossCarpenter = 0x80B20958; // type:func -DemoEc_InitCarpenter = 0x80B20984; // type:func -DemoEc_UpdateCarpenter = 0x80B20A24; // type:func -DemoEc_CarpenterOverrideLimbDraw = 0x80B20A64; // type:func -DemoEc_GetCarpenterPostLimbDList = 0x80B20B68; // type:func -DemoEc_CarpenterPostLimbDraw = 0x80B20BD0; // type:func -DemoEc_DrawCarpenter = 0x80B20C54; // type:func -DemoEc_InitGerudo = 0x80B20C90; // type:func -DemoEc_UpdateGerudo = 0x80B20D34; // type:func -DemoEc_GetGerudoPostLimbDList = 0x80B20D7C; // type:func -DemoEc_GerudoPostLimbDraw = 0x80B20DD0; // type:func -DemoEc_DrawGerudo = 0x80B20E54; // type:func -DemoEc_InitDancingZora = 0x80B20E98; // type:func -DemoEc_UpdateDancingZora = 0x80B20F3C; // type:func -DemoEc_DrawDancingZora = 0x80B20F84; // type:func -DemoEc_InitKingZora = 0x80B20FC0; // type:func -func_8096F1D4 = 0x80B21070; // type:func -func_8096F224 = 0x80B210C0; // type:func -func_8096F26C = 0x80B21108; // type:func -func_8096F2B0 = 0x80B21150; // type:func -DemoEc_UpdateKingZora = 0x80B211B4; // type:func -func_8096F378 = 0x80B2121C; // type:func -func_8096F3D4 = 0x80B2127C; // type:func -DemoEc_DrawKingZora = 0x80B212C4; // type:func -DemoEc_InitMido = 0x80B21300; // type:func -func_8096F4FC = 0x80B213B0; // type:func -func_8096F544 = 0x80B213F8; // type:func -func_8096F578 = 0x80B2142C; // type:func -DemoEc_UpdateMido = 0x80B21490; // type:func -func_8096F640 = 0x80B214F8; // type:func -DemoEc_DrawMido = 0x80B21558; // type:func -DemoEc_InitCucco = 0x80B21594; // type:func -DemoEc_UpdateCucco = 0x80B21664; // type:func -DemoEc_DrawCucco = 0x80B216A4; // type:func -DemoEc_InitCuccoLady = 0x80B216D0; // type:func -DemoEc_UpdateCuccoLady = 0x80B21774; // type:func -DemoEc_DrawCuccoLady = 0x80B217BC; // type:func -DemoEc_InitPotionShopOwner = 0x80B217F8; // type:func -DemoEc_UpdatePotionShopOwner = 0x80B2189C; // type:func -DemoEc_DrawPotionShopOwner = 0x80B218E4; // type:func -DemoEc_InitMaskShopOwner = 0x80B21920; // type:func -DemoEc_UpdateMaskShopOwner = 0x80B219C4; // type:func -DemoEc_DrawMaskShopOwner = 0x80B21A04; // type:func -DemoEc_InitFishingOwner = 0x80B21A34; // type:func -DemoEc_UpdateFishingOwner = 0x80B21AD8; // type:func -DemoEc_FishingOwnerPostLimbDraw = 0x80B21B20; // type:func -DemoEc_DrawFishingOwner = 0x80B21BA0; // type:func -DemoEc_InitBombchuShopOwner = 0x80B21BE4; // type:func -DempEc_UpdateBombchuShopOwner = 0x80B21C88; // type:func -DemoEc_DrawBombchuShopOwner = 0x80B21CD0; // type:func -DemoEc_InitGorons = 0x80B21D0C; // type:func -DemoEc_UpdateGorons = 0x80B21E44; // type:func -DemoEc_DrawGorons = 0x80B21E8C; // type:func -DemoEc_InitMalon = 0x80B21ECC; // type:func -DemoEc_UpdateMalon = 0x80B21F70; // type:func -DemoEc_DrawMalon = 0x80B21FB8; // type:func -DemoEc_InitNpc = 0x80B21FF8; // type:func -DemoEc_InitCommon = 0x80B22044; // type:func -DemoEc_Update = 0x80B22118; // type:func -DemoEc_DrawCommon = 0x80B22190; // type:func -DemoEc_Draw = 0x80B221A0; // type:func -ShotSun_Init = 0x80B22BE0; // type:func -ShotSun_Destroy = 0x80B22C9C; // type:func -ShotSun_SpawnFairy = 0x80B22CE0; // type:func -ShotSun_TriggerFairy = 0x80B22D88; // type:func -ShotSun_UpdateFairySpawner = 0x80B22E24; // type:func -ShotSun_UpdateHyliaSun = 0x80B22F74; // type:func -ShotSun_Update = 0x80B231AC; // type:func -EnDyExtra_Destroy = 0x80B232A0; // type:func -EnDyExtra_Init = 0x80B232B0; // type:func -EnDyExtra_WaitForTrigger = 0x80B23324; // type:func -EnDyExtra_FallAndKill = 0x80B233B8; // type:func -EnDyExtra_Update = 0x80B23470; // type:func -EnDyExtra_Draw = 0x80B234DC; // type:func -EnWonderTalk2_Destroy = 0x80B23820; // type:func -EnWonderTalk2_Init = 0x80B23830; // type:func -func_80B3A10C = 0x80B239C0; // type:func -func_80B3A15C = 0x80B23A10; // type:func -func_80B3A3D4 = 0x80B23B90; // type:func -func_80B3A4F8 = 0x80B23C78; // type:func -EnWonderTalk2_DoNothing = 0x80B23DC8; // type:func -EnWonderTalk2_Update = 0x80B23DD8; // type:func -EnGe2_ChangeAction = 0x80B23EC0; // type:func -EnGe2_Init = 0x80B23F68; // type:func -EnGe2_Destroy = 0x80B24180; // type:func -Ge2_DetectPlayerInAction = 0x80B241AC; // type:func -Ge2_DetectPlayerInUpdate = 0x80B24258; // type:func -EnGe2_CheckCarpentersFreed = 0x80B24388; // type:func -EnGe2_CaptureClose = 0x80B243B4; // type:func -EnGe2_CaptureCharge = 0x80B24488; // type:func -EnGe2_CaptureTurn = 0x80B245BC; // type:func -EnGe2_KnockedOut = 0x80B24634; // type:func -EnGe2_TurnPlayerSpotted = 0x80B2472C; // type:func -EnGe2_AboutTurn = 0x80B24834; // type:func -EnGe2_Walk = 0x80B248EC; // type:func -EnGe2_Stand = 0x80B249B4; // type:func -EnGe2_TurnToFacePlayer = 0x80B249F4; // type:func -EnGe2_LookAtPlayer = 0x80B24B0C; // type:func -EnGe2_SetActionAfterTalk = 0x80B24C20; // type:func -EnGe2_WaitLookAtPlayer = 0x80B24CE4; // type:func -EnGe2_WaitTillCardGiven = 0x80B24D04; // type:func -EnGe2_GiveCard = 0x80B24D68; // type:func -EnGe2_ForceTalk = 0x80B24DFC; // type:func -EnGe2_SetupCapturePlayer = 0x80B24E80; // type:func -EnGe2_MaintainColliderAndSetAnimState = 0x80B24EF0; // type:func -EnGe2_MoveAndBlink = 0x80B24F98; // type:func -EnGe2_UpdateFriendly = 0x80B25024; // type:func -EnGe2_UpdateAfterTalk = 0x80B250FC; // type:func -EnGe2_Update = 0x80B25150; // type:func -EnGe2_UpdateStunned = 0x80B25338; // type:func -EnGe2_OverrideLimbDraw = 0x80B2546C; // type:func -EnGe2_PostLimbDraw = 0x80B254B4; // type:func -EnGe2_Draw = 0x80B254F4; // type:func -ObjRoomtimer_Init = 0x80B25860; // type:func -ObjRoomtimer_Destroy = 0x80B258B4; // type:func -func_80B9D054 = 0x80B258E8; // type:func -func_80B9D0B0 = 0x80B25948; // type:func -ObjRoomtimer_Update = 0x80B25A24; // type:func -EnSsh_SetupAction = 0x80B25AB0; // type:func -EnSsh_SpawnShockwave = 0x80B25ABC; // type:func -EnSsh_CreateBlureEffect = 0x80B25B44; // type:func -EnSsh_CheckCeilingPos = 0x80B25C40; // type:func -EnSsh_AddBlureVertex = 0x80B25CD8; // type:func -EnSsh_AddBlureSpace = 0x80B25DE0; // type:func -EnSsh_InitColliders = 0x80B25E0C; // type:func -EnSsh_SetAnimation = 0x80B25F4C; // type:func -EnSsh_SetWaitAnimation = 0x80B26080; // type:func -EnSsh_SetReturnAnimation = 0x80B260A0; // type:func -EnSsh_SetLandAnimation = 0x80B260D4; // type:func -EnSsh_SetDropAnimation = 0x80B26118; // type:func -EnSsh_SetStunned = 0x80B26168; // type:func -EnSsh_SetColliderScale = 0x80B26194; // type:func -EnSsh_Damaged = 0x80B26308; // type:func -EnSsh_Turn = 0x80B263E4; // type:func -EnSsh_Stunned = 0x80B264B8; // type:func -EnSsh_UpdateYaw = 0x80B26558; // type:func -EnSsh_Bob = 0x80B26594; // type:func -EnSsh_IsCloseToLink = 0x80B26600; // type:func -EnSsh_IsCloseToHome = 0x80B266E8; // type:func -EnSsh_IsCloseToGround = 0x80B26720; // type:func -EnSsh_Sway = 0x80B26760; // type:func -EnSsh_CheckBodyStickHit = 0x80B268A4; // type:func -EnSsh_CheckHitPlayer = 0x80B26918; // type:func -EnSsh_CheckHitFront = 0x80B26A20; // type:func -EnSsh_CheckHitBack = 0x80B26A7C; // type:func -EnSsh_CollisionCheck = 0x80B26B54; // type:func -EnSsh_SetBodyCylinderAC = 0x80B26C08; // type:func -EnSsh_SetLegsCylinderAC = 0x80B26C4C; // type:func -EnSsh_SetCylinderOC = 0x80B26D04; // type:func -EnSsh_SetColliders = 0x80B26EDC; // type:func -EnSsh_Init = 0x80B26FA4; // type:func -EnSsh_Destroy = 0x80B27138; // type:func -EnSsh_Wait = 0x80B271B8; // type:func -EnSsh_Talk = 0x80B27214; // type:func -EnSsh_Idle = 0x80B27260; // type:func -EnSsh_Land = 0x80B274F8; // type:func -EnSsh_Drop = 0x80B275E0; // type:func -EnSsh_Return = 0x80B276E0; // type:func -EnSsh_UpdateColliderScale = 0x80B277B4; // type:func -EnSsh_Start = 0x80B2785C; // type:func -EnSsh_Update = 0x80B278E4; // type:func -EnSsh_OverrideLimbDraw = 0x80B27A04; // type:func -EnSsh_PostLimbDraw = 0x80B27AF4; // type:func -EnSsh_Draw = 0x80B27B30; // type:func -EnSth_SetupAction = 0x80B280A0; // type:func -EnSth_Init = 0x80B280AC; // type:func -EnSth_SetupShapeColliderUpdate2AndDraw = 0x80B281A8; // type:func -EnSth_SetupAfterObjectLoaded = 0x80B2822C; // type:func -EnSth_Destroy = 0x80B28350; // type:func -EnSth_WaitForObject = 0x80B2837C; // type:func -EnSth_FacePlayer = 0x80B283D0; // type:func -EnSth_LookAtPlayer = 0x80B284E8; // type:func -EnSth_RewardObtainedTalk = 0x80B285FC; // type:func -EnSth_ParentRewardObtainedWait = 0x80B28678; // type:func -EnSth_GivePlayerItem = 0x80B28704; // type:func -EnSth_GiveReward = 0x80B287A0; // type:func -EnSth_RewardUnobtainedTalk = 0x80B28820; // type:func -EnSth_RewardUnobtainedWait = 0x80B2889C; // type:func -EnSth_ChildRewardObtainedWait = 0x80B28940; // type:func -EnSth_Update = 0x80B289EC; // type:func -EnSth_Update2 = 0x80B28A10; // type:func -EnSth_OverrideLimbDraw = 0x80B28B14; // type:func -EnSth_PostLimbDraw = 0x80B28C70; // type:func -EnSth_AllocColorDList = 0x80B28CE8; // type:func -EnSth_Draw = 0x80B28D54; // type:func -OceffWipe_Init = 0x80B2C150; // type:func -OceffWipe_Destroy = 0x80B2C1AC; // type:func -OceffWipe_Update = 0x80B2C1F8; // type:func -OceffWipe_Draw = 0x80B2C258; // type:func -EffectSsDust_Init = 0x80B2CEA0; // type:func -EffectSsDust_Draw = 0x80B2D054; // type:func -EffectSsDust_Update = 0x80B2D398; // type:func -EffectSsDust_UpdateFire = 0x80B2D490; // type:func -EffectSsKiraKira_Init = 0x80B2D6D0; // type:func -EffectSsKiraKira_Draw = 0x80B2D870; // type:func -func_809AABF0 = 0x80B2DA8C; // type:func -func_809AACAC = 0x80B2DB44; // type:func -func_809AAD6C = 0x80B2DC00; // type:func -EffectSsBomb_Init = 0x80B2DD40; // type:func -EffectSsBomb_Draw = 0x80B2DE08; // type:func -EffectSsBomb_Update = 0x80B2E034; // type:func -EffectSsBomb2_Init = 0x80B2E160; // type:func -EffectSsBomb2_DrawFade = 0x80B2E258; // type:func -EffectSsBomb2_DrawLayered = 0x80B2E448; // type:func -EffectSsBomb2_Update = 0x80B2E7A4; // type:func -EffectSsBlast_Init = 0x80B2EA90; // type:func -EffectSsBlast_Draw = 0x80B2EBEC; // type:func -EffectSsBlast_Update = 0x80B2ED58; // type:func -EffectSsGSpk_Init = 0x80B2EE20; // type:func -EffectSsGSpk_Draw = 0x80B2EF90; // type:func -EffectSsGSpk_Update = 0x80B2F184; // type:func -EffectSsGSpk_UpdateNoAccel = 0x80B2F28C; // type:func -EffectSsDFire_Init = 0x80B2F3D0; // type:func -EffectSsDFire_Draw = 0x80B2F51C; // type:func -EffectSsDFire_Update = 0x80B2F764; // type:func -EffectSsBubble_Init = 0x80B2F8C0; // type:func -EffectSsBubble_Draw = 0x80B2FA50; // type:func -EffectSsBubble_Update = 0x80B2FBA4; // type:func -EffectSsGRipple_Init = 0x80B2FD40; // type:func -EffectSsGRipple_DrawRipple = 0x80B2FEBC; // type:func -EffectSsGRipple_Draw = 0x80B300B8; // type:func -EffectSsGRipple_Update = 0x80B300F0; // type:func -EffectSsGSplash_Init = 0x80B302A0; // type:func -EffectSsGSplash_Draw = 0x80B304C0; // type:func -EffectSsGSplash_Update = 0x80B305C8; // type:func -EffectSsGMagma_Init = 0x80B30750; // type:func -EffectSsGMagma_Draw = 0x80B308A8; // type:func -EffectSsGMagma_Update = 0x80B30904; // type:func -EffectSsGFire_Init = 0x80B309B0; // type:func -EffectSsGFire_Draw = 0x80B30AF0; // type:func -EffectSsGFire_Update = 0x80B30B98; // type:func -EffectSsLightning_Init = 0x80B30C40; // type:func -EffectSsLightning_NewLightning = 0x80B30D28; // type:func -EffectSsLightning_Draw = 0x80B30DCC; // type:func -EffectSsLightning_Update = 0x80B31064; // type:func -EffectSsDtBubble_Init = 0x80B31310; // type:func -EffectSsDtBubble_Draw = 0x80B31564; // type:func -EffectSsDtBubble_Update = 0x80B317A4; // type:func -EffectSsHahen_CheckForObject = 0x80B318A0; // type:func -EffectSsHahen_Init = 0x80B31914; // type:func -EffectSsHahen_Draw = 0x80B31AB0; // type:func -EffectSsHahen_DrawGray = 0x80B31C10; // type:func -EffectSsHahen_Update = 0x80B31DB8; // type:func -EffectSsStick_Init = 0x80B31EE0; // type:func -EffectSsStick_Draw = 0x80B32040; // type:func -EffectSsStick_Update = 0x80B321E0; // type:func -EffectSsSibuki_Init = 0x80B32280; // type:func -EffectSsSibuki_Draw = 0x80B32438; // type:func -EffectSsSibuki_Update = 0x80B325E8; // type:func -EffectSsSibuki2_Init = 0x80B32950; // type:func -EffectSsSibuki2_Draw = 0x80B32A00; // type:func -EffectSsSibuki2_Update = 0x80B32BE4; // type:func -EffectSsGMagma2_Init = 0x80B32C80; // type:func -EffectSsGMagma2_Draw = 0x80B32E4C; // type:func -EffectSsGMagma2_Update = 0x80B33064; // type:func -EffectSsStone1_Init = 0x80B33190; // type:func -EffectSsStone1_Draw = 0x80B3321C; // type:func -EffectSsStone1_Update = 0x80B3341C; // type:func -EffectSsHitMark_Init = 0x80B33520; // type:func -EffectSsHitMark_Draw = 0x80B33620; // type:func -EffectSsHitMark_Update = 0x80B33830; // type:func -EffectSsFhgFlash_Init = 0x80B33A70; // type:func -EffectSsFhgFlash_DrawLightBall = 0x80B33DBC; // type:func -EffectSsFhgFlash_DrawShock = 0x80B33FB0; // type:func -EffectSsFhgFlash_UpdateLightBall = 0x80B341BC; // type:func -EffectSsFhgFlash_UpdateShock = 0x80B34254; // type:func -EffectSsKFire_Init = 0x80B349F0; // type:func -EffectSsKFire_Draw = 0x80B34AC0; // type:func -EffectSsKFire_Update = 0x80B34D1C; // type:func -EffectSsSolderSrchBall_Init = 0x80B34E20; // type:func -EffectSsSolderSrchBall_Update = 0x80B34EA0; // type:func -EffectSsKakera_Init = 0x80B34FD0; // type:func -func_809A9818 = 0x80B3515C; // type:func -EffectSsKakera_Draw = 0x80B35198; // type:func -func_809A9BA8 = 0x80B35484; // type:func -func_809A9C10 = 0x80B354F0; // type:func -func_809A9DC0 = 0x80B356A0; // type:func -func_809A9DD8 = 0x80B356BC; // type:func -func_809A9DEC = 0x80B356D8; // type:func -func_809A9E28 = 0x80B35714; // type:func -func_809A9E68 = 0x80B35754; // type:func -func_809A9E88 = 0x80B35774; // type:func -func_809A9F10 = 0x80B35804; // type:func -func_809A9F4C = 0x80B35844; // type:func -func_809A9FD8 = 0x80B358D8; // type:func -func_809AA0B8 = 0x80B359B4; // type:func -func_809AA0EC = 0x80B359EC; // type:func -func_809AA230 = 0x80B35B34; // type:func -EffectSsKakera_Update = 0x80B35D34; // type:func -EffectSsIcePiece_Init = 0x80B36060; // type:func -EffectSsIcePiece_Draw = 0x80B361AC; // type:func -EffectSsIcePiece_Update = 0x80B363D8; // type:func -EffectSsEnIce_Init = 0x80B364A0; // type:func -EffectSsEnIce_Draw = 0x80B36748; // type:func -EffectSsEnIce_UpdateFlying = 0x80B36AB4; // type:func -EffectSsEnIce_Update = 0x80B36C8C; // type:func -EffectSsFireTail_Init = 0x80B36D60; // type:func -EffectSsFireTail_Draw = 0x80B36E7C; // type:func -EffectSsFireTail_Update = 0x80B37384; // type:func -EffectSsEnFire_Init = 0x80B37460; // type:func -EffectSsEnFire_Draw = 0x80B37628; // type:func -EffectSsEnFire_Update = 0x80B37924; // type:func -EffectSsExtra_Init = 0x80B37BA0; // type:func -EffectSsExtra_Draw = 0x80B37CE4; // type:func -EffectSsExtra_Update = 0x80B37E98; // type:func -EffectSsFcircle_Init = 0x80B37F60; // type:func -EffectSsFcircle_Draw = 0x80B38020; // type:func -EffectSsFcircle_Update = 0x80B382EC; // type:func -EffectSsDeadDb_Init = 0x80B38410; // type:func -EffectSsDeadDb_Draw = 0x80B3852C; // type:func -EffectSsDeadDb_Update = 0x80B38700; // type:func -EffectSsDeadDd_Init = 0x80B388F0; // type:func -EffectSsDeadDd_Draw = 0x80B38BB8; // type:func -EffectSsDeadDd_Update = 0x80B38D88; // type:func -EffectSsDeadDs_Init = 0x80B38E80; // type:func -EffectSsDeadDs_Draw = 0x80B38F68; // type:func -EffectSsDeadDs_Update = 0x80B39238; // type:func -EffectSsDeadSound_Init = 0x80B39300; // type:func -EffectSsDeadSound_Update = 0x80B3938C; // type:func -OceffStorm_SetupAction = 0x80B39440; // type:func -OceffStorm_Init = 0x80B3944C; // type:func -OceffStorm_Destroy = 0x80B3951C; // type:func -OceffStorm_DefaultAction = 0x80B39568; // type:func -OceffStorm_UnkAction = 0x80B3972C; // type:func -OceffStorm_Update = 0x80B3974C; // type:func -OceffStorm_Draw2 = 0x80B397B8; // type:func -OceffStorm_Draw = 0x80B39960; // type:func -EnWeiyer_Init = 0x80B3AFE0; // type:func -EnWeiyer_Destroy = 0x80B3B0B0; // type:func -func_80B32384 = 0x80B3B0DC; // type:func -func_80B32434 = 0x80B3B190; // type:func -func_80B32494 = 0x80B3B1F0; // type:func -func_80B32508 = 0x80B3B264; // type:func -func_80B32538 = 0x80B3B298; // type:func -func_80B325A0 = 0x80B3B304; // type:func -func_80B32660 = 0x80B3B3C4; // type:func -func_80B32724 = 0x80B3B488; // type:func -func_80B327B0 = 0x80B3B514; // type:func -func_80B327D8 = 0x80B3B540; // type:func -func_80B32804 = 0x80B3B570; // type:func -func_80B328E8 = 0x80B3B654; // type:func -func_80B32C2C = 0x80B3B998; // type:func -func_80B32D30 = 0x80B3BA9C; // type:func -func_80B32DEC = 0x80B3BB58; // type:func -func_80B32E34 = 0x80B3BBA4; // type:func -func_80B33018 = 0x80B3BD8C; // type:func -func_80B331CC = 0x80B3BF40; // type:func -func_80B332B4 = 0x80B3C028; // type:func -func_80B33338 = 0x80B3C0AC; // type:func -func_80B333B8 = 0x80B3C12C; // type:func -func_80B3349C = 0x80B3C210; // type:func -func_80B3368C = 0x80B3C404; // type:func -EnWeiyer_Update = 0x80B3C4E4; // type:func -EnWeiyer_OverrideLimbDraw = 0x80B3C658; // type:func -EnWeiyer_Draw = 0x80B3C688; // type:func -BgSpot05Soko_Init = 0x80B3C9E0; // type:func -BgSpot05Soko_Destroy = 0x80B3CAEC; // type:func -func_808AE5A8 = 0x80B3CB20; // type:func -func_808AE5B4 = 0x80B3CB30; // type:func -func_808AE630 = 0x80B3CBAC; // type:func -BgSpot05Soko_Update = 0x80B3CC14; // type:func -BgSpot05Soko_Draw = 0x80B3CC38; // type:func -BgJya1flift_InitDynapoly = 0x80B3CD00; // type:func -BgJya1flift_InitCollision = 0x80B3CD58; // type:func -BgJya1flift_Init = 0x80B3CDAC; // type:func -BgJya1flift_Destroy = 0x80B3CEA4; // type:func -BgJya1flift_SetupWaitForSwitch = 0x80B3CEFC; // type:func -BgJya1flift_WaitForSwitch = 0x80B3CF1C; // type:func -BgJya1flift_SetupDoNothing = 0x80B3CF60; // type:func -BgJya1flift_DoNothing = 0x80B3CF80; // type:func -BgJya1flift_ChangeDirection = 0x80B3CF90; // type:func -BgJya1flift_Move = 0x80B3CFB8; // type:func -BgJya1flift_ResetMoveDelay = 0x80B3D09C; // type:func -BgJya1flift_DelayMove = 0x80B3D0B4; // type:func -BgJya1flift_Update = 0x80B3D0F4; // type:func -BgJya1flift_Draw = 0x80B3D210; // type:func -BgJyaHaheniron_ColliderInit = 0x80B3D390; // type:func -BgJyaHaheniron_SpawnFragments = 0x80B3D3E4; // type:func -BgJyaHaheniron_Init = 0x80B3D610; // type:func -BgJyaHaheniron_Destroy = 0x80B3D6DC; // type:func -BgJyaHaheniron_SetupChairCrumble = 0x80B3D714; // type:func -BgJyaHaheniron_ChairCrumble = 0x80B3D728; // type:func -BgJyaHaheniron_SetupPillarCrumble = 0x80B3D864; // type:func -BgJyaHaheniron_PillarCrumble = 0x80B3D878; // type:func -BgJyaHaheniron_SetupRubbleCollide = 0x80B3D8F8; // type:func -BgJyaHaheniron_RubbleCollide = 0x80B3D90C; // type:func -BgJyaHaheniron_Update = 0x80B3D970; // type:func -BgJyaHaheniron_Draw = 0x80B3D99C; // type:func -BgSpot12Gate_InitDynaPoly = 0x80B3DB80; // type:func -BgSpot12Gate_Init = 0x80B3DBD8; // type:func -BgSpot12Gate_Destroy = 0x80B3DC58; // type:func -func_808B30C0 = 0x80B3DC8C; // type:func -func_808B30D8 = 0x80B3DCA8; // type:func -func_808B3134 = 0x80B3DD04; // type:func -func_808B314C = 0x80B3DD20; // type:func -func_808B317C = 0x80B3DD50; // type:func -func_808B318C = 0x80B3DD64; // type:func -func_808B3274 = 0x80B3DE4C; // type:func -func_808B3298 = 0x80B3DE74; // type:func -BgSpot12Gate_Update = 0x80B3DE84; // type:func -BgSpot12Gate_Draw = 0x80B3DEB8; // type:func -func_808B3420 = 0x80B3DF90; // type:func -BgSpot12Saku_Init = 0x80B3DFE8; // type:func -BgSpot12Saku_Destroy = 0x80B3E068; // type:func -func_808B3550 = 0x80B3E09C; // type:func -func_808B357C = 0x80B3E0CC; // type:func -func_808B35E4 = 0x80B3E134; // type:func -func_808B3604 = 0x80B3E154; // type:func -func_808B3714 = 0x80B3E264; // type:func -func_808B37AC = 0x80B3E2F8; // type:func -BgSpot12Saku_Update = 0x80B3E308; // type:func -BgSpot12Saku_Draw = 0x80B3E33C; // type:func -EnHintnuts_Init = 0x80B3E450; // type:func -EnHintnuts_Destroy = 0x80B3E5F0; // type:func -EnHintnuts_HitByScrubProjectile1 = 0x80B3E62C; // type:func -EnHintnuts_SetupWait = 0x80B3E6B0; // type:func -EnHintnuts_SetupLookAround = 0x80B3E730; // type:func -EnHintnuts_SetupThrowScrubProjectile = 0x80B3E778; // type:func -EnHintnuts_SetupStand = 0x80B3E7B8; // type:func -EnHintnuts_SetupBurrow = 0x80B3E820; // type:func -EnHintnuts_HitByScrubProjectile2 = 0x80B3E870; // type:func -EnHintnuts_SetupRun = 0x80B3E960; // type:func -EnHintnuts_SetupTalk = 0x80B3E9A8; // type:func -EnHintnuts_SetupLeave = 0x80B3E9F4; // type:func -EnHintnuts_SetupFreeze = 0x80B3EAB4; // type:func -EnHintnuts_Wait = 0x80B3EB60; // type:func -EnHintnuts_LookAround = 0x80B3EDC4; // type:func -EnHintnuts_Stand = 0x80B3EE48; // type:func -EnHintnuts_ThrowNut = 0x80B3EF0C; // type:func -EnHintnuts_Burrow = 0x80B3F048; // type:func -EnHintnuts_BeginRun = 0x80B3F15C; // type:func -EnHintnuts_BeginFreeze = 0x80B3F1C0; // type:func -EnHintnuts_CheckProximity = 0x80B3F1FC; // type:func -EnHintnuts_Run = 0x80B3F290; // type:func -EnHintnuts_Talk = 0x80B3F520; // type:func -EnHintnuts_Leave = 0x80B3F58C; // type:func -EnHintnuts_Freeze = 0x80B3F748; // type:func -EnHintnuts_ColliderCheck = 0x80B3F874; // type:func -EnHintnuts_Update = 0x80B3F928; // type:func -EnHintnuts_OverrideLimbDraw = 0x80B3FAB0; // type:func -EnHintnuts_Draw = 0x80B3FBE4; // type:func -EnNutsball_Init = 0x80B3FE80; // type:func -EnNutsball_Destroy = 0x80B3FF3C; // type:func -func_80ABBB34 = 0x80B3FF68; // type:func -func_80ABBBA8 = 0x80B3FFE0; // type:func -EnNutsball_Update = 0x80B401B0; // type:func -EnNutsball_Draw = 0x80B402CC; // type:func -BgSpot00Break_Init = 0x80B404A0; // type:func -BgSpot00Break_Destroy = 0x80B4054C; // type:func -BgSpot00Break_Update = 0x80B40580; // type:func -BgSpot00Break_Draw = 0x80B40590; // type:func -EnShopnuts_Init = 0x80B40640; // type:func -EnShopnuts_Destroy = 0x80B4077C; // type:func -EnShopnuts_SetupIdle = 0x80B407A8; // type:func -EnShopnuts_SetupLookAround = 0x80B40810; // type:func -EnShopnuts_SetupThrowNut = 0x80B40858; // type:func -EnShopnuts_SetupPeek = 0x80B40898; // type:func -EnShopnuts_SetupBurrow = 0x80B40900; // type:func -EnShopnuts_SetupSpawnSalesman = 0x80B40950; // type:func -EnShopnuts_Idle = 0x80B409A8; // type:func -EnShopnuts_LookAround = 0x80B40C0C; // type:func -EnShopnuts_Peek = 0x80B40C90; // type:func -EnShopnuts_ThrowNut = 0x80B40D54; // type:func -EnShopnuts_Burrow = 0x80B40E90; // type:func -EnShopnuts_SpawnSalesman = 0x80B40F54; // type:func -EnShopnuts_ColliderCheck = 0x80B40FF0; // type:func -EnShopnuts_Update = 0x80B41050; // type:func -EnShopnuts_OverrideLimbDraw = 0x80B41190; // type:func -EnShopnuts_PostLimbDraw = 0x80B411C8; // type:func -EnShopnuts_Draw = 0x80B41364; // type:func -EnIt_Init = 0x80B41550; // type:func -EnIt_Destroy = 0x80B415BC; // type:func -EnIt_Update = 0x80B415E8; // type:func -EnGeldB_SetupAction = 0x80B416E0; // type:func -EnGeldB_Init = 0x80B416EC; // type:func -EnGeldB_Destroy = 0x80B41910; // type:func -EnGeldB_ReactToPlayer = 0x80B41978; // type:func -EnGeldB_SetupWait = 0x80B41D50; // type:func -EnGeldB_Wait = 0x80B41DE4; // type:func -EnGeldB_SetupFlee = 0x80B41F68; // type:func -EnGeldB_Flee = 0x80B42000; // type:func -EnGeldB_SetupReady = 0x80B42128; // type:func -EnGeldB_Ready = 0x80B421B0; // type:func -EnGeldB_SetupAdvance = 0x80B42494; // type:func -EnGeldB_Advance = 0x80B42514; // type:func -EnGeldB_SetupRollForward = 0x80B429C0; // type:func -EnGeldB_RollForward = 0x80B42A74; // type:func -EnGeldB_SetupPivot = 0x80B42BCC; // type:func -EnGeldB_Pivot = 0x80B42C18; // type:func -EnGeldB_SetupCircle = 0x80B42DF8; // type:func -EnGeldB_Circle = 0x80B42ECC; // type:func -EnGeldB_SetupSpinDodge = 0x80B434A8; // type:func -EnGeldB_SpinDodge = 0x80B43610; // type:func -EnGeldB_SetupSlash = 0x80B43A60; // type:func -EnGeldB_Slash = 0x80B43AD0; // type:func -EnGeldB_SetupSpinAttack = 0x80B43D20; // type:func -EnGeldB_SpinAttack = 0x80B43DB4; // type:func -EnGeldB_SetupRollBack = 0x80B44168; // type:func -EnGeldB_RollBack = 0x80B441E4; // type:func -EnGeldB_SetupStunned = 0x80B442E8; // type:func -EnGeldB_Stunned = 0x80B44394; // type:func -EnGeldB_SetupDamaged = 0x80B44450; // type:func -EnGeldB_Damaged = 0x80B444E8; // type:func -EnGeldB_SetupJump = 0x80B44690; // type:func -EnGeldB_Jump = 0x80B44748; // type:func -EnGeldB_SetupBlock = 0x80B44830; // type:func -EnGeldB_Block = 0x80B448E8; // type:func -EnGeldB_SetupSidestep = 0x80B44BD4; // type:func -EnGeldB_Sidestep = 0x80B44D64; // type:func -EnGeldB_SetupDefeated = 0x80B45484; // type:func -EnGeldB_Defeated = 0x80B45528; // type:func -EnGeldB_TurnHead = 0x80B455E4; // type:func -EnGeldB_CollisionCheck = 0x80B456E4; // type:func -EnGeldB_Update = 0x80B458B0; // type:func -EnGeldB_OverrideLimbDraw = 0x80B45A9C; // type:func -EnGeldB_PostLimbDraw = 0x80B45BE4; // type:func -EnGeldB_Draw = 0x80B45E5C; // type:func -EnGeldB_DodgeRanged = 0x80B461CC; // type:func -OceffWipe2_Init = 0x80B46A90; // type:func -OceffWipe2_Destroy = 0x80B46AEC; // type:func -OceffWipe2_Update = 0x80B46B38; // type:func -OceffWipe2_Draw = 0x80B46B98; // type:func -OceffWipe3_Init = 0x80B48200; // type:func -OceffWipe3_Destroy = 0x80B4825C; // type:func -OceffWipe3_Update = 0x80B482A8; // type:func -OceffWipe3_Draw = 0x80B48308; // type:func -EnNiwGirl_Init = 0x80B49950; // type:func -EnNiwGirl_Destroy = 0x80B49AF0; // type:func -EnNiwGirl_Jump = 0x80B49B00; // type:func -func_80AB9210 = 0x80B49B84; // type:func -EnNiwGirl_Talk = 0x80B49D38; // type:func -func_80AB94D0 = 0x80B49E48; // type:func -EnNiwGirl_Update = 0x80B49F3C; // type:func -EnNiwGirlOverrideLimbDraw = 0x80B4A164; // type:func -EnNiwGirl_Draw = 0x80B4A1CC; // type:func -EnDog_PlayWalkSFX = 0x80B4A420; // type:func -EnDog_PlayRunSFX = 0x80B4A488; // type:func -EnDog_PlayBarkSFX = 0x80B4A4F0; // type:func -EnDog_PlayAnimAndSFX = 0x80B4A558; // type:func -EnDog_CanFollow = 0x80B4A6F0; // type:func -EnDog_UpdateWaypoint = 0x80B4A774; // type:func -EnDog_Orient = 0x80B4A800; // type:func -EnDog_Init = 0x80B4A8A4; // type:func -EnDog_Destroy = 0x80B4AAF4; // type:func -EnDog_FollowPath = 0x80B4AB20; // type:func -EnDog_ChooseMovement = 0x80B4ACB8; // type:func -EnDog_FollowPlayer = 0x80B4ADA8; // type:func -EnDog_RunAway = 0x80B4AF28; // type:func -EnDog_FaceLink = 0x80B4AFCC; // type:func -EnDog_Wait = 0x80B4B0D4; // type:func -EnDog_Update = 0x80B4B12C; // type:func -EnDog_OverrideLimbDraw = 0x80B4B1F8; // type:func -EnDog_PostLimbDraw = 0x80B4B214; // type:func -EnDog_Draw = 0x80B4B22C; // type:func -EnSi_Init = 0x80B4B5D0; // type:func -EnSi_Destroy = 0x80B4B660; // type:func -func_80AFB748 = 0x80B4B68C; // type:func -func_80AFB768 = 0x80B4B6B0; // type:func -func_80AFB89C = 0x80B4B7E4; // type:func -func_80AFB950 = 0x80B4B89C; // type:func -EnSi_Update = 0x80B4B930; // type:func -EnSi_Draw = 0x80B4B9A4; // type:func -BgSpot01Objects2_Init = 0x80B4BAD0; // type:func -BgSpot01Objects2_Destroy = 0x80B4BBAC; // type:func -func_808AC22C = 0x80B4BBBC; // type:func -func_808AC2BC = 0x80B4BC50; // type:func -func_808AC474 = 0x80B4BE00; // type:func -BgSpot01Objects2_Update = 0x80B4BE10; // type:func -func_808AC4A4 = 0x80B4BE34; // type:func -ObjComb_Break = 0x80B4BF90; // type:func -ObjComb_ChooseItemDrop = 0x80B4C280; // type:func -ObjComb_Init = 0x80B4C350; // type:func -ObjComb_Destroy = 0x80B4C3C0; // type:func -ObjComb_SetupWait = 0x80B4C3EC; // type:func -ObjComb_Wait = 0x80B4C400; // type:func -ObjComb_Update = 0x80B4C4EC; // type:func -ObjComb_Draw = 0x80B4C564; // type:func -func_808B2180 = 0x80B4C7F0; // type:func -func_808B2218 = 0x80B4C884; // type:func -BgSpot11Bakudankabe_Init = 0x80B4CB9C; // type:func -BgSpot11Bakudankabe_Destroy = 0x80B4CC38; // type:func -BgSpot11Bakudankabe_Update = 0x80B4CC80; // type:func -BgSpot11Bakudankabe_Draw = 0x80B4CD1C; // type:func -ObjKibako2_InitCollider = 0x80B4CE30; // type:func -ObjKibako2_Break = 0x80B4CE88; // type:func -ObjKibako2_SpawnCollectible = 0x80B4D104; // type:func -ObjKibako2_Init = 0x80B4D154; // type:func -ObjKibako2_Destroy = 0x80B4D200; // type:func -ObjKibako2_Idle = 0x80B4D248; // type:func -ObjKibako2_Kill = 0x80B4D320; // type:func -ObjKibako2_Update = 0x80B4D3A4; // type:func -ObjKibako2_Draw = 0x80B4D3C8; // type:func -EnDntDemo_Destroy = 0x80B4D4F0; // type:func -EnDntDemo_Init = 0x80B4D500; // type:func -EnDntDemo_Judge = 0x80B4D670; // type:func -EnDntDemo_Results = 0x80B4DC90; // type:func -EnDntDemo_Prize = 0x80B4DF04; // type:func -EnDntDemo_Update = 0x80B4DFE0; // type:func -EnDntJiji_Init = 0x80B4E210; // type:func -EnDntJiji_Destroy = 0x80B4E2F0; // type:func -EnDntJiji_SetFlower = 0x80B4E31C; // type:func -EnDntJiji_SetupWait = 0x80B4E35C; // type:func -EnDntJiji_Wait = 0x80B4E40C; // type:func -EnDntJiji_SetupUp = 0x80B4E4C4; // type:func -EnDntJiji_Up = 0x80B4E5A8; // type:func -EnDntJiji_SetupUnburrow = 0x80B4E618; // type:func -EnDntJiji_Unburrow = 0x80B4E6FC; // type:func -EnDntJiji_SetupWalk = 0x80B4E784; // type:func -EnDntJiji_Walk = 0x80B4E834; // type:func -EnDntJiji_SetupBurrow = 0x80B4E970; // type:func -EnDntJiji_Burrow = 0x80B4EA60; // type:func -EnDntJiji_SetupCower = 0x80B4EA8C; // type:func -EnDntJiji_Cower = 0x80B4EBCC; // type:func -EnDntJiji_SetupTalk = 0x80B4EC70; // type:func -EnDntJiji_Talk = 0x80B4ED04; // type:func -EnDntJiji_SetupGivePrize = 0x80B4EDD0; // type:func -EnDntJiji_GivePrize = 0x80B4EE40; // type:func -EnDntJiji_SetupHide = 0x80B4EF50; // type:func -EnDntJiji_Hide = 0x80B4EFE8; // type:func -EnDntJiji_SetupReturn = 0x80B4F054; // type:func -EnDntJiji_Return = 0x80B4F104; // type:func -EnDntJiji_Update = 0x80B4F27C; // type:func -EnDntJiji_Draw = 0x80B4F454; // type:func -EnDntNomal_Init = 0x80B4F720; // type:func -EnDntNomal_Destroy = 0x80B4F848; // type:func -EnDntNomal_WaitForObject = 0x80B4F894; // type:func -EnDntNomal_SetFlower = 0x80B4F9E4; // type:func -EnDntNomal_SetupTargetWait = 0x80B4FA3C; // type:func -EnDntNomal_TargetWait = 0x80B4FAE4; // type:func -EnDntNomal_SetupTargetUnburrow = 0x80B4FDC0; // type:func -EnDntNomal_TargetUnburrow = 0x80B4FEDC; // type:func -EnDntNomal_SetupTargetWalk = 0x80B4FF48; // type:func -EnDntNomal_TargetWalk = 0x80B4FFEC; // type:func -EnDntNomal_TargetFacePlayer = 0x80B500D8; // type:func -EnDntNomal_SetupTargetTalk = 0x80B5018C; // type:func -EnDntNomal_TargetTalk = 0x80B50238; // type:func -EnDntNomal_SetupTargetGivePrize = 0x80B502E0; // type:func -EnDntNomal_TargetGivePrize = 0x80B50378; // type:func -EnDntNomal_TargetReturn = 0x80B504E0; // type:func -EnDntNomal_TargetBurrow = 0x80B506B0; // type:func -EnDntNomal_SetupStageWait = 0x80B5071C; // type:func -EnDntNomal_StageWait = 0x80B507D4; // type:func -EnDntNomal_SetupStageUp = 0x80B50800; // type:func -EnDntNomal_StageUp = 0x80B5090C; // type:func -EnDntNomal_SetupStageUnburrow = 0x80B50B40; // type:func -EnDntNomal_StageUnburrow = 0x80B50C34; // type:func -EnDntNomal_SetupStageCelebrate = 0x80B50D0C; // type:func -EnDntNomal_StageCelebrate = 0x80B50DB4; // type:func -EnDntNomal_SetupStageDance = 0x80B50FBC; // type:func -EnDntNomal_StageDance = 0x80B510CC; // type:func -EnDntNomal_SetupStageHide = 0x80B51230; // type:func -EnDntNomal_StageHide = 0x80B5130C; // type:func -EnDntNomal_StageAttackHide = 0x80B514D0; // type:func -EnDntNomal_SetupStageAttack = 0x80B51504; // type:func -EnDntNomal_StageAttack = 0x80B515D0; // type:func -EnDntNomal_StageSetupReturn = 0x80B51894; // type:func -EnDntNomal_StageReturn = 0x80B51938; // type:func -EnDntNomal_Update = 0x80B51A3C; // type:func -EnDntNomal_OverrideLimbDraw = 0x80B51D00; // type:func -EnDntNomal_PostLimbDraw = 0x80B51DB0; // type:func -EnDntNomal_DrawStageScrub = 0x80B51E38; // type:func -EnDntNomal_DrawTargetScrub = 0x80B52028; // type:func -EnGuest_Init = 0x80B52530; // type:func -EnGuest_Destroy = 0x80B52590; // type:func -EnGuest_Update = 0x80B525BC; // type:func -func_80A5046C = 0x80B5272C; // type:func -func_80A50518 = 0x80B527D8; // type:func -func_80A5057C = 0x80B52840; // type:func -func_80A505CC = 0x80B52894; // type:func -func_80A50708 = 0x80B529D4; // type:func -EnGuest_OverrideLimbDraw = 0x80B52A40; // type:func -EnGuest_Draw = 0x80B52C68; // type:func -BgBomGuard_SetupAction = 0x80B52ED0; // type:func -BgBomGuard_Init = 0x80B52EDC; // type:func -BgBomGuard_Destroy = 0x80B52F78; // type:func -func_8086E638 = 0x80B52FAC; // type:func -BgBomGuard_Update = 0x80B53078; // type:func -EnHs2_Init = 0x80B530F0; // type:func -EnHs2_Destroy = 0x80B531D0; // type:func -func_80A6F0B4 = 0x80B531FC; // type:func -func_80A6F164 = 0x80B532B0; // type:func -func_80A6F1A4 = 0x80B532EC; // type:func -EnHs2_Update = 0x80B53338; // type:func -EnHs2_OverrideLimbDraw = 0x80B534A4; // type:func -EnHs2_PostLimbDraw = 0x80B5352C; // type:func -EnHs2_Draw = 0x80B5356C; // type:func -DemoKekkai_CheckEventFlag = 0x80B536D0; // type:func -DemoKekkai_Init = 0x80B53714; // type:func -DemoKekkai_Destroy = 0x80B53944; // type:func -DemoKekkai_SpawnParticles = 0x80B53984; // type:func -DemoKekkai_TowerBarrier = 0x80B53BD8; // type:func -DemoKekkai_Update = 0x80B53CF4; // type:func -DemoKekkai_TrialBarrierDispel = 0x80B53E20; // type:func -DemoKekkai_TrialBarrierIdle = 0x80B53F80; // type:func -DemoKekkai_DrawTrialBarrier = 0x80B540A4; // type:func -DemoKekkai_DrawTowerBarrier = 0x80B545A0; // type:func -func_808B02D0 = 0x80B549B0; // type:func -func_808B0324 = 0x80B54A04; // type:func -BgSpot08Bakudankabe_Init = 0x80B54CFC; // type:func -BgSpot08Bakudankabe_Destroy = 0x80B54D9C; // type:func -BgSpot08Bakudankabe_Update = 0x80B54DE4; // type:func -BgSpot08Bakudankabe_Draw = 0x80B54E98; // type:func -func_808B6BC0 = 0x80B55050; // type:func -BgSpot17Bakudankabe_Init = 0x80B55380; // type:func -BgSpot17Bakudankabe_Destroy = 0x80B55414; // type:func -BgSpot17Bakudankabe_Update = 0x80B55448; // type:func -BgSpot17Bakudankabe_Draw = 0x80B554DC; // type:func -func_80B9A9D0 = 0x80B55730; // type:func -func_80B9AA90 = 0x80B557F0; // type:func -func_80B9ABA0 = 0x80B55900; // type:func -func_80B9ACE4 = 0x80B55A44; // type:func -func_80B9ADCC = 0x80B55B30; // type:func -ObjMure3_Init = 0x80B55C24; // type:func -ObjMure3_Destroy = 0x80B55C84; // type:func -func_80B9AF24 = 0x80B55C94; // type:func -func_80B9AF34 = 0x80B55CA8; // type:func -func_80B9AF54 = 0x80B55CCC; // type:func -func_80B9AF64 = 0x80B55CE0; // type:func -func_80B9AFEC = 0x80B55D68; // type:func -func_80B9AFFC = 0x80B55D7C; // type:func -ObjMure3_Update = 0x80B55DF8; // type:func -EnTg_GetTextId = 0x80B55F00; // type:func -EnTg_UpdateTalkState = 0x80B55F9C; // type:func -EnTg_Init = 0x80B56058; // type:func -EnTg_Destroy = 0x80B5612C; // type:func -EnTg_SpinIfNotTalking = 0x80B5616C; // type:func -EnTg_Update = 0x80B56190; // type:func -EnTg_OverrideLimbDraw = 0x80B562B0; // type:func -EnTg_PostLimbDraw = 0x80B562CC; // type:func -EnTg_SetColor = 0x80B56328; // type:func -EnTg_Draw = 0x80B56394; // type:func -EnMu_SetupAction = 0x80B565D0; // type:func -EnMu_Interact = 0x80B565DC; // type:func -EnMu_GetTextId = 0x80B5673C; // type:func -EnMu_UpdateTalkState = 0x80B56780; // type:func -EnMu_Init = 0x80B567EC; // type:func -EnMu_Destroy = 0x80B568C4; // type:func -EnMu_Pose = 0x80B568E8; // type:func -EnMu_Update = 0x80B56920; // type:func -EnMu_OverrideLimbDraw = 0x80B56A68; // type:func -EnMu_PostLimbDraw = 0x80B56B54; // type:func -EnMu_DisplayListSetColor = 0x80B56B6C; // type:func -EnMu_Draw = 0x80B56BD8; // type:func -EnGo2_SpawnEffectDust = 0x80B56EF0; // type:func -EnGo2_UpdateEffects = 0x80B56F94; // type:func -EnGo2_DrawEffects = 0x80B570A0; // type:func -EnGo2_SpawnDust = 0x80B57390; // type:func -EnGo2_GetItem = 0x80B575A8; // type:func -EnGo2_GetDialogState = 0x80B575EC; // type:func -EnGo2_GoronFireGenericGetTextId = 0x80B5766C; // type:func -EnGo2_GetTextIdGoronCityRollingBig = 0x80B576E8; // type:func -EnGo2_UpdateTalkStateGoronCityRollingBig = 0x80B57770; // type:func -EnGo2_GetTextIdGoronDmtBombFlower = 0x80B57868; // type:func -EnGo2_UpdateTalkStateGoronDmtBombFlower = 0x80B578A4; // type:func -EnGo2_GetTextIdGoronDmtRollingSmall = 0x80B579BC; // type:func -EnGo2_UpdateTalkStateGoronDmtRollingSmall = 0x80B57A14; // type:func -EnGo2_GetTextIdGoronDmtDcEntrance = 0x80B57A50; // type:func -EnGo2_UpdateTalkStateGoronDmtDcEntrance = 0x80B57AEC; // type:func -EnGo2_GetTextIdGoronCityEntrance = 0x80B57B4C; // type:func -EnGo2_UpdateTalkStateGoronCityEntrance = 0x80B57BCC; // type:func -EnGo2_GetTextIdGoronCityIsland = 0x80B57C2C; // type:func -EnGo2_UpdateTalkStateGoronCityIsland = 0x80B57CAC; // type:func -EnGo2_GetTextIdGoronCityLowestFloor = 0x80B57D0C; // type:func -EnGo2_UpdateTalkStateGoronCityLowestFloor = 0x80B57DE8; // type:func -EnGo2_GetTextIdGoronCityLink = 0x80B57E48; // type:func -EnGo2_UpdateTalkStateGoronCityLink = 0x80B57F24; // type:func -EnGo2_GetTextIdGoronDmtBiggoron = 0x80B5813C; // type:func -EnGo2_UpdateTalkStateGoronDmtBiggoron = 0x80B581BC; // type:func -EnGo2_GetTextIdGoronFireGeneric = 0x80B583D0; // type:func -EnGo2_UpdateTalkStateGoronFireGeneric = 0x80B58408; // type:func -EnGo2_GetTextIdGoronCityStairwell = 0x80B584A4; // type:func -EnGo2_UpdateTalkStateGoronCityStairwell = 0x80B584F4; // type:func -EnGo2_GetTextIdGoronMarketBazaar = 0x80B58554; // type:func -EnGo2_UpdateTalkStateGoronMarketBazaar = 0x80B58568; // type:func -EnGo2_GetTextIdGoronCityLostWoods = 0x80B585A4; // type:func -EnGo2_UpdateTalkStateGoronCityLostWoods = 0x80B58614; // type:func -EnGo2_GetTextIdGoronDmtFairyHint = 0x80B58674; // type:func -EnGo2_UpdateTalkStateGoronDmtFairyHint = 0x80B586CC; // type:func -EnGo2_GetTextId = 0x80B58708; // type:func -EnGo2_UpdateTalkState = 0x80B5884C; // type:func -func_80A44790 = 0x80B58964; // type:func -EnGo2_SetColliderDim = 0x80B58A60; // type:func -EnGo2_SetShape = 0x80B58A9C; // type:func -EnGo2_CheckCollision = 0x80B58B14; // type:func -EnGo2_SwapInitialFrameAnimFrameCount = 0x80B58C70; // type:func -func_80A44AB0 = 0x80B58C88; // type:func -EnGo2_UpdateWaypoint = 0x80B58E44; // type:func -EnGo2_Orient = 0x80B58EC0; // type:func -func_80A44D84 = 0x80B58F64; // type:func -EnGo2_IsWakingUp = 0x80B58F9C; // type:func -EnGo2_IsRollingOnGround = 0x80B590CC; // type:func -EnGo2_BiggoronSetTextId = 0x80B59268; // type:func -func_80A45288 = 0x80B59468; // type:func -func_80A45360 = 0x80B59544; // type:func -EnGo2_RollForward = 0x80B59650; // type:func -func_80A454CC = 0x80B596B0; // type:func -EnGo2_GetTargetXZSpeed = 0x80B5975C; // type:func -EnGo2_IsCameraModified = 0x80B59800; // type:func -EnGo2_DefaultWakingUp = 0x80B5991C; // type:func -EnGo2_WakingUp = 0x80B59974; // type:func -EnGo2_BiggoronWakingUp = 0x80B599E4; // type:func -EnGo2_SelectGoronWakingUp = 0x80B59A34; // type:func -EnGo2_EyeMouthTexState = 0x80B59B18; // type:func -EnGo2_SitDownAnimation = 0x80B59BEC; // type:func -EnGo2_GetDustData = 0x80B59D04; // type:func -EnGo2_RollingAnimation = 0x80B59D8C; // type:func -EnGo2_WakeUp = 0x80B59E40; // type:func -EnGo2_GetItemAnimation = 0x80B59F34; // type:func -EnGo2_SetupRolling = 0x80B59F98; // type:func -EnGo2_StopRolling = 0x80B5A040; // type:func -EnGo2_IsFreeingGoronInFire = 0x80B5A100; // type:func -EnGo2_IsGoronDmtBombFlower = 0x80B5A198; // type:func -EnGo2_IsGoronRollingBig = 0x80B5A218; // type:func -EnGo2_IsGoronFireGeneric = 0x80B5A278; // type:func -EnGo2_IsGoronLinkReversing = 0x80B5A2B4; // type:func -EnGo2_IsRolling = 0x80B5A310; // type:func -EnGo2_GoronLinkAnimation = 0x80B5A3A4; // type:func -EnGo2_GoronFireCamera = 0x80B5A4D8; // type:func -EnGo2_GoronFireClearCamera = 0x80B5A5D8; // type:func -EnGo2_BiggoronAnimation = 0x80B5A618; // type:func -EnGo2_Init = 0x80B5A6CC; // type:func -EnGo2_Destroy = 0x80B5AB4C; // type:func -EnGo2_CurledUp = 0x80B5AB5C; // type:func -func_80A46B40 = 0x80B5AD30; // type:func -EnGo2_GoronDmtBombFlowerAnimation = 0x80B5AEC8; // type:func -EnGo2_GoronRollingBigContinueRolling = 0x80B5AF4C; // type:func -EnGo2_ContinueRolling = 0x80B5AFAC; // type:func -EnGo2_SlowRolling = 0x80B5B044; // type:func -EnGo2_GroundRolling = 0x80B5B17C; // type:func -EnGo2_ReverseRolling = 0x80B5B218; // type:func -EnGo2_SetupGetItem = 0x80B5B2E0; // type:func -EnGo2_SetGetItem = 0x80B5B354; // type:func -EnGo2_BiggoronEyedrops = 0x80B5B45C; // type:func -EnGo2_GoronLinkStopRolling = 0x80B5B690; // type:func -EnGo2_GoronFireGenericAction = 0x80B5B780; // type:func -EnGo2_Update = 0x80B5BAAC; // type:func -EnGo2_DrawCurledUp = 0x80B5BBC0; // type:func -EnGo2_DrawRolling = 0x80B5BC80; // type:func -EnGo2_OverrideLimbDraw = 0x80B5BDBC; // type:func -EnGo2_PostLimbDraw = 0x80B5BFD8; // type:func -EnGo2_Draw = 0x80B5C034; // type:func -EnWf_SetupAction = 0x80B5CF10; // type:func -EnWf_Init = 0x80B5CF1C; // type:func -EnWf_Destroy = 0x80B5D150; // type:func -EnWf_ChangeAction = 0x80B5D1EC; // type:func -EnWf_SetupWaitToAppear = 0x80B5D5BC; // type:func -EnWf_WaitToAppear = 0x80B5D664; // type:func -EnWf_SetupWait = 0x80B5D798; // type:func -EnWf_Wait = 0x80B5D820; // type:func -EnWf_SetupRunAtPlayer = 0x80B5DA3C; // type:func -EnWf_RunAtPlayer = 0x80B5DABC; // type:func -EnWf_SetupSearchForPlayer = 0x80B5DF3C; // type:func -EnWf_SearchForPlayer = 0x80B5DF88; // type:func -EnWf_SetupRunAroundPlayer = 0x80B5E168; // type:func -EnWf_RunAroundPlayer = 0x80B5E264; // type:func -EnWf_SetupSlash = 0x80B5E784; // type:func -EnWf_Slash = 0x80B5E800; // type:func -EnWf_SetupRecoilFromBlockedSlash = 0x80B5EB54; // type:func -EnWf_RecoilFromBlockedSlash = 0x80B5EBF0; // type:func -EnWf_SetupBackflipAway = 0x80B5EDE8; // type:func -EnWf_BackflipAway = 0x80B5EE64; // type:func -EnWf_SetupStunned = 0x80B5EF6C; // type:func -EnWf_Stunned = 0x80B5EFE4; // type:func -EnWf_SetupDamaged = 0x80B5F0A0; // type:func -EnWf_Damaged = 0x80B5F138; // type:func -EnWf_SetupSomersaultAndAttack = 0x80B5F340; // type:func -EnWf_SomersaultAndAttack = 0x80B5F3F8; // type:func -EnWf_SetupBlocking = 0x80B5F4E0; // type:func -EnWf_Blocking = 0x80B5F580; // type:func -EnWf_SetupSidestep = 0x80B5F804; // type:func -EnWf_Sidestep = 0x80B5F99C; // type:func -EnWf_SetupDie = 0x80B5FEEC; // type:func -EnWf_Die = 0x80B5FF9C; // type:func -func_80B36F40 = 0x80B601A4; // type:func -EnWf_UpdateDamage = 0x80B6029C; // type:func -EnWf_Update = 0x80B6046C; // type:func -EnWf_OverrideLimbDraw = 0x80B606C0; // type:func -EnWf_PostLimbDraw = 0x80B60704; // type:func -EnWf_Draw = 0x80B608AC; // type:func -EnWf_DodgeRanged = 0x80B60A68; // type:func -EnSkb_SetupAction = 0x80B61220; // type:func -EnSkb_SpawnDebris = 0x80B6122C; // type:func -EnSkb_Init = 0x80B613DC; // type:func -EnSkb_Destroy = 0x80B61594; // type:func -EnSkb_DecideNextAction = 0x80B615EC; // type:func -EnSkb_SetupRiseFromGround = 0x80B61688; // type:func -EnSkb_RiseFromGround = 0x80B616EC; // type:func -EnSkb_SetupDespawn = 0x80B617D8; // type:func -EnSkb_Despawn = 0x80B61880; // type:func -EnSkb_SetupWalkForward = 0x80B61934; // type:func -EnSkb_WalkForward = 0x80B619CC; // type:func -EnSkb_SetupAttack = 0x80B61BCC; // type:func -EnSkb_Attack = 0x80B61C64; // type:func -EnSkb_SetupRecoil = 0x80B61D10; // type:func -EnSkb_Recoil = 0x80B61D9C; // type:func -EnSkb_SetupStunned = 0x80B61DD8; // type:func -EnSkb_Stunned = 0x80B61E34; // type:func -EnSkb_SetupTakeDamage = 0x80B61EDC; // type:func -EnSkb_TakeDamage = 0x80B61F64; // type:func -EnSkb_SetupDeath = 0x80B62050; // type:func -EnSkb_Death = 0x80B6211C; // type:func -EnSkb_CheckDamage = 0x80B62208; // type:func -EnSkb_Update = 0x80B624B8; // type:func -EnSkb_OverrideLimbDraw = 0x80B625E0; // type:func -EnSkb_PostLimbDraw = 0x80B627B0; // type:func -EnSkb_Draw = 0x80B62858; // type:func -DemoGj_GetCollectibleType = 0x80B62B10; // type:func -DemoGj_GetCollectibleAmount = 0x80B62B24; // type:func -DemoGj_GetType = 0x80B62B38; // type:func -DemoGj_InitCylinder = 0x80B62B48; // type:func -DemoGj_HitByExplosion = 0x80B62B90; // type:func -DemoGj_DestroyCylinder = 0x80B62BC8; // type:func -DemoGj_Destroy = 0x80B62C80; // type:func -DemoGj_PlayExplosionSfx = 0x80B62CC4; // type:func -DemoGj_SpawnSmoke = 0x80B62CFC; // type:func -DemoGj_DropCollectible = 0x80B62D90; // type:func -DemoGj_Explode = 0x80B62E24; // type:func -DemoGj_IsCutsceneLayer = 0x80B630C0; // type:func -DemoGj_FindGanon = 0x80B630E8; // type:func -DemoGj_InitCommon = 0x80B63134; // type:func -DemoGj_InitSetIndices = 0x80B631AC; // type:func -DemoGj_DrawCommon = 0x80B63210; // type:func -DemoGj_DrawRotated = 0x80B632A8; // type:func -DemoGj_SetupRotation = 0x80B63384; // type:func -func_809797E4 = 0x80B6391C; // type:func -DemoGj_IsGanondorfRisingFromRubble = 0x80B63950; // type:func -DemoGj_IsGanondorfFloatingInAir = 0x80B63974; // type:func -DemoGj_SetupMovement = 0x80B63998; // type:func -DemoGj_CheckIfTransformedIntoGanon = 0x80B640BC; // type:func -DemoGj_InitRubblePile1 = 0x80B640F4; // type:func -func_8097A000 = 0x80B64124; // type:func -DemoGj_SpawnSmokePreBattle1 = 0x80B641A0; // type:func -func_8097A0E4 = 0x80B6420C; // type:func -func_8097A130 = 0x80B64260; // type:func -DemoGj_Update01 = 0x80B64294; // type:func -DemoGj_Update08 = 0x80B642CC; // type:func -DemoGj_DrawRubble2 = 0x80B64304; // type:func -DemoGj_DrawRotatedRubble2 = 0x80B64328; // type:func -DemoGj_InitRubblePile2 = 0x80B6434C; // type:func -func_8097A238 = 0x80B6437C; // type:func -DemoGj_SpawnSmokePreBattle2 = 0x80B643F8; // type:func -func_8097A320 = 0x80B64468; // type:func -func_8097A36C = 0x80B644BC; // type:func -DemoGj_Update02 = 0x80B644F0; // type:func -DemoGj_Update09 = 0x80B64528; // type:func -DemoGj_DrawRubble3 = 0x80B64560; // type:func -DemoGj_DrawRotatedRubble3 = 0x80B64584; // type:func -DemoGj_InitRubblePile3 = 0x80B645A8; // type:func -func_8097A474 = 0x80B645D8; // type:func -func_8097A4F0 = 0x80B64654; // type:func -func_8097A53C = 0x80B646A8; // type:func -DemoGj_Update03 = 0x80B646DC; // type:func -DemoGj_Update10 = 0x80B64714; // type:func -DemoGj_DrawRubble4 = 0x80B6474C; // type:func -DemoGj_DrawRotatedRubble4 = 0x80B64770; // type:func -DemoGj_InitRubblePile4 = 0x80B64794; // type:func -func_8097A644 = 0x80B647C4; // type:func -func_8097A6C0 = 0x80B64840; // type:func -func_8097A70C = 0x80B64894; // type:func -DemoGj_Update04 = 0x80B648C8; // type:func -DemoGj_Update11 = 0x80B64900; // type:func -DemoGj_DrawRubble5 = 0x80B64938; // type:func -DemoGj_DrawRotatedRubble5 = 0x80B6495C; // type:func -DemoGj_InitRubblePile5 = 0x80B64980; // type:func -func_8097A814 = 0x80B649B0; // type:func -func_8097A890 = 0x80B64A2C; // type:func -func_8097A8DC = 0x80B64A80; // type:func -DemoGj_Update05 = 0x80B64AB4; // type:func -DemoGj_Update12 = 0x80B64AEC; // type:func -DemoGj_DrawRubble6 = 0x80B64B24; // type:func -DemoGj_DrawRotatedRubble6 = 0x80B64B48; // type:func -DemoGj_InitRubblePile6 = 0x80B64B6C; // type:func -func_8097A9E4 = 0x80B64B9C; // type:func -func_8097AA60 = 0x80B64C18; // type:func -func_8097AAAC = 0x80B64C6C; // type:func -DemoGj_Update06 = 0x80B64CA0; // type:func -DemoGj_Update13 = 0x80B64CD8; // type:func -DemoGj_DrawRubble7 = 0x80B64D10; // type:func -DemoGj_DrawRotatedRubble7 = 0x80B64D34; // type:func -DemoGj_InitRubblePile7 = 0x80B64D58; // type:func -func_8097ABB4 = 0x80B64D88; // type:func -DemoGj_SpawnSmokePreBattle3 = 0x80B64E04; // type:func -func_8097AC9C = 0x80B64E74; // type:func -func_8097ACE8 = 0x80B64EC8; // type:func -DemoGj_Update07 = 0x80B64EFC; // type:func -DemoGj_Update14 = 0x80B64F34; // type:func -DemoGj_DrawRubbleTall = 0x80B64F6C; // type:func -DemoGj_DrawRotatedRubbleTall = 0x80B64F90; // type:func -DemoGj_InitRubbleAroundArena = 0x80B64FB4; // type:func -DemoGj_UpdateRubbleAroundArena = 0x80B64FE4; // type:func -DemoGj_DrawRubbleAroundArena = 0x80B65034; // type:func -DemoGj_InitDestructableRubble1 = 0x80B65058; // type:func -func_8097AEE8 = 0x80B650E0; // type:func -DemoGj_SetCylindersAsAC = 0x80B65274; // type:func -DemoGj_DirectedExplosion = 0x80B652E0; // type:func -func_8097B128 = 0x80B6531C; // type:func -DemoGj_HasCylinderAnyExploded = 0x80B653AC; // type:func -func_8097B22C = 0x80B65428; // type:func -DemoGj_Update15 = 0x80B65540; // type:func -DemoGj_Update18 = 0x80B65578; // type:func -DemoGj_DrawDestructableRubble1 = 0x80B65598; // type:func -DemoGj_InitDestructableRubble2 = 0x80B655BC; // type:func -func_8097B450 = 0x80B65644; // type:func -DemoGj_SetCylindersAsAC2 = 0x80B65794; // type:func -DemoGj_HasCylinderAnyExploded2 = 0x80B65800; // type:func -DemoGj_DirectedExplosion2 = 0x80B6587C; // type:func -func_8097B6C4 = 0x80B658B8; // type:func -func_8097B750 = 0x80B65948; // type:func -DemoGj_Update16 = 0x80B65A60; // type:func -DemoGj_Update19 = 0x80B65A98; // type:func -DemoGj_DemoGj_InitDestructableRubble2 = 0x80B65AB8; // type:func -DemoGj_InitDestructableRubbleTall = 0x80B65ADC; // type:func -DemoGj_DirectedDoubleExplosion = 0x80B65B28; // type:func -func_8097B9BC = 0x80B65BAC; // type:func -func_8097BA48 = 0x80B65C3C; // type:func -DemoGj_Update17 = 0x80B65D70; // type:func -DemoGj_Update20 = 0x80B65DA8; // type:func -DemoGj_DemoGj_InitDestructableRubbleTall = 0x80B65DC8; // type:func -DemoGj_Update = 0x80B65DEC; // type:func -DemoGj_Init = 0x80B65E34; // type:func -DemoGj_DrawNothing = 0x80B65F3C; // type:func -DemoGj_Draw = 0x80B65F4C; // type:func -DemoGeff_Destroy = 0x80B667C0; // type:func -DemoGeff_Init = 0x80B667D0; // type:func -func_80977EA8 = 0x80B66818; // type:func -func_80977F80 = 0x80B668B0; // type:func -func_80978030 = 0x80B6690C; // type:func -func_809781FC = 0x80B66AD8; // type:func -func_809782A0 = 0x80B66B7C; // type:func -func_80978308 = 0x80B66BE4; // type:func -func_80978344 = 0x80B66C1C; // type:func -func_80978370 = 0x80B66C4C; // type:func -func_809783D4 = 0x80B66C98; // type:func -DemoGeff_Update = 0x80B66D34; // type:func -func_809784D4 = 0x80B66D7C; // type:func -DemoGeff_Draw = 0x80B66D8C; // type:func -BgGndFiremeiro_Init = 0x80B66FE0; // type:func -BgGndFiremeiro_Destroy = 0x80B67094; // type:func -BgGndFiremeiro_Sink = 0x80B670D4; // type:func -BgGndFiremeiro_Shake = 0x80B67190; // type:func -BgGndFiremeiro_Rise = 0x80B67334; // type:func -BgGndFiremeiro_Update = 0x80B673F4; // type:func -BgGndFiremeiro_Draw = 0x80B67418; // type:func -BgGndDarkmeiro_ToggleBlock = 0x80B67520; // type:func -BgGndDarkmeiro_Init = 0x80B675AC; // type:func -BgGndDarkmeiro_Destroy = 0x80B677D8; // type:func -BgGndDarkmeiro_Noop = 0x80B67820; // type:func -BgGndDarkmeiro_UpdateBlockTimer = 0x80B67830; // type:func -BgGndDarkmeiro_UpdateStaticBlock = 0x80B67A24; // type:func -BgGndDarkmeiro_UpdateSwitchBlock = 0x80B67A34; // type:func -BgGndDarkmeiro_Update = 0x80B67A98; // type:func -BgGndDarkmeiro_DrawInvisiblePath = 0x80B67ABC; // type:func -BgGndDarkmeiro_DrawSwitchBlock = 0x80B67AEC; // type:func -BgGndDarkmeiro_DrawStaticBlock = 0x80B67C04; // type:func -BgGndSoulmeiro_Init = 0x80B67CE0; // type:func -BgGndSoulmeiro_Destroy = 0x80B67E24; // type:func -func_8087AF38 = 0x80B67E60; // type:func -func_8087B284 = 0x80B681AC; // type:func -func_8087B350 = 0x80B68278; // type:func -BgGndSoulmeiro_Update = 0x80B682CC; // type:func -BgGndSoulmeiro_Draw = 0x80B682F8; // type:func -BgGndNisekabe_Init = 0x80B68540; // type:func -BgGndNisekabe_Destroy = 0x80B6857C; // type:func -BgGndNisekabe_Update = 0x80B6858C; // type:func -BgGndNisekabe_Draw = 0x80B685C0; // type:func -BgGndIceblock_Init = 0x80B686B0; // type:func -BgGndIceblock_Destroy = 0x80B6879C; // type:func -BgGndIceblock_SetPosition = 0x80B687D0; // type:func -BgGndIceblock_CheckForBlock = 0x80B688DC; // type:func -BgGndIceblock_NextAction = 0x80B68918; // type:func -BgGndIceblock_SetNextPosition = 0x80B68964; // type:func -BgGndIceblock_Idle = 0x80B68C94; // type:func -BgGndIceblock_Reset = 0x80B68D50; // type:func -BgGndIceblock_Fall = 0x80B68E14; // type:func -BgGndIceblock_Hole = 0x80B68ECC; // type:func -BgGndIceblock_Slide = 0x80B68F68; // type:func -BgGndIceblock_Update = 0x80B69298; // type:func -BgGndIceblock_Draw = 0x80B692BC; // type:func -BgYdanSp_Init = 0x80B697B0; // type:func -BgYdanSp_Destroy = 0x80B69B98; // type:func -BgYdanSp_UpdateFloorWebCollision = 0x80B69BE0; // type:func -BgYdanSp_BurnWeb = 0x80B69CB4; // type:func -BgYdanSp_BurnFloorWeb = 0x80B69D24; // type:func -BgYdanSp_FloorWebBroken = 0x80B69FF8; // type:func -BgYdanSp_FloorWebBreaking = 0x80B6A038; // type:func -BgYdanSp_FloorWebIdle = 0x80B6A1F8; // type:func -BgYdanSp_BurnWallWeb = 0x80B6A4D4; // type:func -BgYdanSp_WallWebIdle = 0x80B6A80C; // type:func -BgYdanSp_Update = 0x80B6A94C; // type:func -BgYdanSp_Draw = 0x80B6A970; // type:func -func_80A2F180 = 0x80B6AF20; // type:func -EnGb_Init = 0x80B6AF50; // type:func -EnGb_Destroy = 0x80B6B350; // type:func -func_80A2F608 = 0x80B6B3AC; // type:func -func_80A2F760 = 0x80B6B504; // type:func -func_80A2F7C0 = 0x80B6B564; // type:func -func_80A2F83C = 0x80B6B5E0; // type:func -func_80A2F94C = 0x80B6B6FC; // type:func -func_80A2F9C0 = 0x80B6B774; // type:func -func_80A2FA50 = 0x80B6B808; // type:func -func_80A2FB40 = 0x80B6B8F8; // type:func -func_80A2FBB0 = 0x80B6B96C; // type:func -func_80A2FC0C = 0x80B6B9CC; // type:func -func_80A2FC70 = 0x80B6BA34; // type:func -EnGb_Update = 0x80B6BB38; // type:func -EnGb_Draw = 0x80B6BC70; // type:func -EnGb_UpdateCagedSouls = 0x80B6BD90; // type:func -EnGb_DrawCagedSouls = 0x80B6C0E8; // type:func -EnGs_Init = 0x80B6C650; // type:func -EnGs_Destroy = 0x80B6C714; // type:func -func_80A4E3EC = 0x80B6C724; // type:func -func_80A4E470 = 0x80B6C7AC; // type:func -func_80A4E648 = 0x80B6C96C; // type:func -func_80A4E754 = 0x80B6CA7C; // type:func -func_80A4E910 = 0x80B6CC3C; // type:func -func_80A4EA08 = 0x80B6CD38; // type:func -func_80A4EB3C = 0x80B6CE6C; // type:func -func_80A4ED34 = 0x80B6D064; // type:func -func_80A4F13C = 0x80B6D470; // type:func -func_80A4F700 = 0x80B6DA64; // type:func -func_80A4F734 = 0x80B6DA98; // type:func -func_80A4F77C = 0x80B6DAE0; // type:func -EnGs_Update = 0x80B6DB5C; // type:func -EnGs_Draw = 0x80B6DCF4; // type:func -BgMizuBwall_RotateVec3f = 0x80B6E4F0; // type:func -BgMizuBwall_Init = 0x80B6E544; // type:func -BgMizuBwall_Destroy = 0x80B6EDC0; // type:func -BgMizuBwall_SetAlpha = 0x80B6EE08; // type:func -BgMizuBwall_SpawnDebris = 0x80B6EF8C; // type:func -BgMizuBwall_Idle = 0x80B6F260; // type:func -BgMizuBwall_Break = 0x80B6F360; // type:func -BgMizuBwall_DoNothing = 0x80B6F38C; // type:func -BgMizuBwall_Update = 0x80B6F39C; // type:func -BgMizuBwall_Draw = 0x80B6F3C0; // type:func -BgMizuShutter_Init = 0x80B6F9C0; // type:func -BgMizuShutter_Destroy = 0x80B6FC20; // type:func -BgMizuShutter_WaitForSwitch = 0x80B6FC54; // type:func -BgMizuShutter_WaitForCutscene = 0x80B6FCE8; // type:func -BgMizuShutter_Move = 0x80B6FD34; // type:func -BgMizuShutter_WaitForTimer = 0x80B6FF20; // type:func -BgMizuShutter_Update = 0x80B6FFA0; // type:func -BgMizuShutter_Draw = 0x80B6FFC4; // type:func -EnDaikuKakariko_ChangeAnim = 0x80B701C0; // type:func -EnDaikuKakariko_Init = 0x80B70274; // type:func -EnDaikuKakariko_Destroy = 0x80B705CC; // type:func -EnDaikuKakariko_GetTalkState = 0x80B705F8; // type:func -EnDaikuKakariko_HandleTalking = 0x80B7069C; // type:func -EnDaikuKakariko_Talk = 0x80B70858; // type:func -EnDaikuKakariko_Wait = 0x80B7092C; // type:func -EnDaikuKakariko_StopRunning = 0x80B709C8; // type:func -EnDaikuKakariko_Run = 0x80B70A78; // type:func -EnDaikuKakariko_Update = 0x80B70DF8; // type:func -EnDaikuKakariko_OverrideLimbDraw = 0x80B70F70; // type:func -EnDaikuKakariko_PostLimbDraw = 0x80B71130; // type:func -EnDaikuKakariko_Draw = 0x80B711AC; // type:func -BgBowlWall_Init = 0x80B71580; // type:func -BgBowlWall_Destroy = 0x80B71638; // type:func -BgBowlWall_SpawnBullseyes = 0x80B7166C; // type:func -BgBowlWall_WaitForHit = 0x80B7183C; // type:func -BgBowlWall_FallDoEffects = 0x80B71860; // type:func -BgBowlWall_FinishFall = 0x80B71B14; // type:func -BgBowlWall_Reset = 0x80B71BF4; // type:func -BgBowlWall_Update = 0x80B71C8C; // type:func -BgBowlWall_Draw = 0x80B71CC0; // type:func -EnWallTubo_Init = 0x80B71F00; // type:func -EnWallTubo_Destroy = 0x80B71F30; // type:func -EnWallTubo_FindGirl = 0x80B71F40; // type:func -EnWallTubo_DetectChu = 0x80B71F84; // type:func -EnWallTubo_SetWallFall = 0x80B721A0; // type:func -EnWallTubo_Update = 0x80B7230C; // type:func -EnPoDesert_Init = 0x80B723F0; // type:func -EnPoDesert_Destroy = 0x80B72560; // type:func -EnPoDesert_SetNextPathPoint = 0x80B725A8; // type:func -EnPoDesert_SetupMoveToNextPoint = 0x80B72704; // type:func -EnPoDesert_SetupDisappear = 0x80B72748; // type:func -EnPoDesert_UpdateSpeedModifier = 0x80B727A8; // type:func -EnPoDesert_WaitForPlayer = 0x80B72818; // type:func -EnPoDesert_MoveToNextPoint = 0x80B728E4; // type:func -EnPoDesert_Disappear = 0x80B72A78; // type:func -EnPoDesert_Update = 0x80B72B60; // type:func -EnPoDesert_OverrideLimbDraw = 0x80B72C54; // type:func -EnPoDesert_PostLimbDraw = 0x80B72CE0; // type:func -EnPoDesert_Draw = 0x80B72F34; // type:func -EnCrow_Init = 0x80B731B0; // type:func -EnCrow_Destroy = 0x80B732A0; // type:func -EnCrow_SetupFlyIdle = 0x80B732CC; // type:func -EnCrow_SetupDiveAttack = 0x80B73300; // type:func -EnCrow_SetupDamaged = 0x80B73334; // type:func -EnCrow_SetupDie = 0x80B73654; // type:func -EnCrow_SetupTurnAway = 0x80B7366C; // type:func -EnCrow_SetupRespawn = 0x80B736F4; // type:func -EnCrow_FlyIdle = 0x80B737E8; // type:func -EnCrow_DiveAttack = 0x80B73C14; // type:func -EnCrow_Damaged = 0x80B73DB8; // type:func -EnCrow_Die = 0x80B73EE0; // type:func -EnCrow_TurnAway = 0x80B73F90; // type:func -EnCrow_Respawn = 0x80B74034; // type:func -EnCrow_UpdateDamage = 0x80B74100; // type:func -EnCrow_Update = 0x80B741B0; // type:func -EnCrow_OverrideLimbDraw = 0x80B743CC; // type:func -EnCrow_PostLimbDraw = 0x80B744B8; // type:func -EnCrow_Draw = 0x80B74578; // type:func -DoorKiller_Init = 0x80B74850; // type:func -DoorKiller_Destroy = 0x80B74BA8; // type:func -DoorKiller_SpawnRubble = 0x80B74BF8; // type:func -DoorKiller_FallAsRubble = 0x80B74DA0; // type:func -DoorKiller_IsHit = 0x80B74E60; // type:func -DoorKiller_SetAC = 0x80B74E94; // type:func -DoorKiller_Die = 0x80B74EF4; // type:func -DoorKiller_RiseBackUp = 0x80B74F44; // type:func -DoorKiller_FallOver = 0x80B750F4; // type:func -DoorKiller_Wobble = 0x80B754C0; // type:func -DoorKiller_WaitBeforeWobble = 0x80B75630; // type:func -DoorKiller_Wait = 0x80B75664; // type:func -DoorKiller_UpdateTexture = 0x80B758C4; // type:func -DoorKiller_WaitForObject = 0x80B75958; // type:func -DoorKiller_Update = 0x80B75A0C; // type:func -DoorKiller_SetTexture = 0x80B75A30; // type:func -DoorKiller_DrawDoor = 0x80B75A5C; // type:func -DoorKiller_DrawRubble = 0x80B75AB8; // type:func -func_808B27F0 = 0x80B75DC0; // type:func -func_808B280C = 0x80B75DE0; // type:func -BgSpot11Oasis_Init = 0x80B75EF4; // type:func -func_808B2970 = 0x80B75F48; // type:func -func_808B2980 = 0x80B75F5C; // type:func -func_808B29E0 = 0x80B75FBC; // type:func -func_808B29F0 = 0x80B75FD0; // type:func -func_808B2AA8 = 0x80B76088; // type:func -func_808B2AB8 = 0x80B7609C; // type:func -BgSpot11Oasis_Update = 0x80B760AC; // type:func -BgSpot11Oasis_Draw = 0x80B762A0; // type:func -BgSpot18Futa_Init = 0x80B764F0; // type:func -BgSpot18Futa_Destroy = 0x80B7655C; // type:func -BgSpot18Futa_Update = 0x80B76590; // type:func -BgSpot18Futa_Draw = 0x80B765F4; // type:func -BgSpot18Shutter_Init = 0x80B76690; // type:func -BgSpot18Shutter_Destroy = 0x80B76840; // type:func -func_808B95AC = 0x80B76874; // type:func -func_808B95B8 = 0x80B76884; // type:func -func_808B9618 = 0x80B768E4; // type:func -func_808B9698 = 0x80B7696C; // type:func -func_808B971C = 0x80B769F0; // type:func -BgSpot18Shutter_Update = 0x80B76ACC; // type:func -BgSpot18Shutter_Draw = 0x80B76AF0; // type:func -EnMa3_GetTextId = 0x80B76BE0; // type:func -EnMa3_UpdateTalkState = 0x80B76D18; // type:func -func_80AA2E54 = 0x80B76F98; // type:func -func_80AA2EC8 = 0x80B7700C; // type:func -func_80AA2F28 = 0x80B77070; // type:func -EnMa3_UpdateEyes = 0x80B770C8; // type:func -EnMa3_ChangeAnim = 0x80B77154; // type:func -EnMa3_Init = 0x80B771C4; // type:func -EnMa3_Destroy = 0x80B77318; // type:func -func_80AA3200 = 0x80B77358; // type:func -EnMa3_Update = 0x80B7738C; // type:func -EnMa3_OverrideLimbDraw = 0x80B774A0; // type:func -EnMa3_PostLimbDraw = 0x80B776E0; // type:func -EnMa3_Draw = 0x80B77794; // type:func -EnCow_RotateY = 0x80B77B90; // type:func -EnCow_SetColliderPos = 0x80B77C28; // type:func -EnCow_SetTailPos = 0x80B77D1C; // type:func -EnCow_Init = 0x80B77D98; // type:func -EnCow_Destroy = 0x80B781D0; // type:func -EnCow_UpdateAnimation = 0x80B7821C; // type:func -EnCow_TalkEnd = 0x80B78444; // type:func -EnCow_GiveMilkEnd = 0x80B784BC; // type:func -EnCow_GiveMilkWait = 0x80B78504; // type:func -EnCow_GiveMilk = 0x80B78568; // type:func -EnCow_CheckForEmptyBottle = 0x80B78604; // type:func -EnCow_Talk = 0x80B78694; // type:func -EnCow_Idle = 0x80B78708; // type:func -EnCow_IdleTail = 0x80B78824; // type:func -EnCow_Update = 0x80B789BC; // type:func -EnCow_UpdateTail = 0x80B78C38; // type:func -EnCow_OverrideLimbDraw = 0x80B78D24; // type:func -EnCow_PostLimbDraw = 0x80B78D74; // type:func -EnCow_Draw = 0x80B78DB4; // type:func -EnCow_DrawTail = 0x80B78E14; // type:func -BgIceTurara_Init = 0x80B78FF0; // type:func -BgIceTurara_Destroy = 0x80B790CC; // type:func -BgIceTurara_Break = 0x80B79114; // type:func -BgIceTurara_Stalagmite = 0x80B792F4; // type:func -BgIceTurara_Wait = 0x80B7935C; // type:func -BgIceTurara_Shiver = 0x80B79394; // type:func -BgIceTurara_Fall = 0x80B79500; // type:func -BgIceTurara_Regrow = 0x80B79658; // type:func -BgIceTurara_Update = 0x80B796A8; // type:func -BgIceTurara_Draw = 0x80B796CC; // type:func -func_80891AC0 = 0x80B79820; // type:func -BgIceShutter_Init = 0x80B798A8; // type:func -BgIceShutter_Destroy = 0x80B79A28; // type:func -func_80891CF4 = 0x80B79A5C; // type:func -func_80891D6C = 0x80B79AD4; // type:func -func_80891DD4 = 0x80B79B3C; // type:func -BgIceShutter_Update = 0x80B79BA4; // type:func -BgIceShutter_Draw = 0x80B79BC8; // type:func -EnKakasi2_Init = 0x80B79C90; // type:func -EnKakasi2_Destroy = 0x80B79DEC; // type:func -func_80A90264 = 0x80B79E18; // type:func -func_80A904D8 = 0x80B79F70; // type:func -func_80A90578 = 0x80B7A010; // type:func -func_80A9062C = 0x80B7A0C4; // type:func -func_80A906C4 = 0x80B7A15C; // type:func -EnKakasi2_Update = 0x80B7A1CC; // type:func -func_80A90948 = 0x80B7A28C; // type:func -EnKakasi3_Destroy = 0x80B7A3B0; // type:func -EnKakasi3_Init = 0x80B7A3DC; // type:func -func_80A90E28 = 0x80B7A4A4; // type:func -func_80A90EBC = 0x80B7A538; // type:func -func_80A911F0 = 0x80B7A86C; // type:func -func_80A91284 = 0x80B7A900; // type:func -func_80A91348 = 0x80B7A9C4; // type:func -func_80A915B8 = 0x80B7AC3C; // type:func -func_80A91620 = 0x80B7ACA8; // type:func -func_80A91760 = 0x80B7ADE8; // type:func -func_80A917FC = 0x80B7AE88; // type:func -func_80A9187C = 0x80B7AF10; // type:func -func_80A918E4 = 0x80B7AF7C; // type:func -func_80A91A90 = 0x80B7B0C0; // type:func -EnKakasi3_Update = 0x80B7B1C0; // type:func -EnKakasi3_Draw = 0x80B7B2B8; // type:func -OceffWipe4_Init = 0x80B7B490; // type:func -OceffWipe4_Destroy = 0x80B7B4EC; // type:func -OceffWipe4_Update = 0x80B7B510; // type:func -OceffWipe4_Draw = 0x80B7B570; // type:func -EnEg_PlayVoidOutSFX = 0x80B7C470; // type:func -EnEg_Destroy = 0x80B7C490; // type:func -EnEg_Init = 0x80B7C4A0; // type:func -func_809FFDC8 = 0x80B7C4B0; // type:func -EnEg_Update = 0x80B7C548; // type:func -EnEg_Draw = 0x80B7C590; // type:func -BgMenkuriNisekabe_Init = 0x80B7C620; // type:func -BgMenkuriNisekabe_Destroy = 0x80B7C648; // type:func -BgMenkuriNisekabe_Update = 0x80B7C658; // type:func -BgMenkuriNisekabe_Draw = 0x80B7C68C; // type:func -EnZo_SpawnRipple = 0x80B7C770; // type:func -EnZo_SpawnBubble = 0x80B7C804; // type:func -EnZo_SpawnSplash = 0x80B7C934; // type:func -EnZo_UpdateEffectsRipples = 0x80B7CAA0; // type:func -EnZo_UpdateEffectsBubbles = 0x80B7CB5C; // type:func -EnZo_UpdateEffectsSplashes = 0x80B7CC8C; // type:func -EnZo_DrawEffectsRipples = 0x80B7CDC4; // type:func -EnZo_DrawEffectsBubbles = 0x80B7CF74; // type:func -EnZo_DrawEffectsSplashes = 0x80B7D11C; // type:func -EnZo_TreadWaterRipples = 0x80B7D2D0; // type:func -EnZo_SpawnSplashes = 0x80B7D34C; // type:func -EnZo_GetTextId = 0x80B7D4C0; // type:func -EnZo_UpdateTalkState = 0x80B7D734; // type:func -EnZo_Blink = 0x80B7D898; // type:func -EnZo_Dialog = 0x80B7D910; // type:func -EnZo_PlayerInProximity = 0x80B7D9F0; // type:func -EnZo_SetAnimation = 0x80B7DA90; // type:func -EnZo_Init = 0x80B7DB88; // type:func -EnZo_Destroy = 0x80B7DD90; // type:func -EnZo_Standing = 0x80B7DDA0; // type:func -EnZo_Submerged = 0x80B7DE84; // type:func -EnZo_Surface = 0x80B7DEC4; // type:func -EnZo_TreadWater = 0x80B7DFA8; // type:func -EnZo_Dive = 0x80B7E158; // type:func -EnZo_Update = 0x80B7E2A0; // type:func -EnZo_OverrideLimbDraw = 0x80B7E480; // type:func -EnZo_PostLimbDraw = 0x80B7E6A0; // type:func -EnZo_Draw = 0x80B7E6FC; // type:func -EffectSsIceSmoke_Init = 0x80B7ED20; // type:func -EffectSsIceSmoke_Draw = 0x80B7EE40; // type:func -EffectSsIceSmoke_Update = 0x80B7F100; // type:func -ObjMakekinsuta_Init = 0x80B7F1E0; // type:func -func_80B98320 = 0x80B7F1F8; // type:func -ObjMakekinsuta_DoNothing = 0x80B7F2AC; // type:func -ObjMakekinsuta_Update = 0x80B7F2BC; // type:func -EnGe3_ChangeAction = 0x80B7F330; // type:func -EnGe3_Init = 0x80B7F3D8; // type:func -EnGe3_Destroy = 0x80B7F4E0; // type:func -EnGe3_TurnToFacePlayer = 0x80B7F50C; // type:func -EnGe3_LookAtPlayer = 0x80B7F624; // type:func -EnGe3_Wait = 0x80B7F738; // type:func -EnGe3_WaitLookAtPlayer = 0x80B7F79C; // type:func -EnGe3_WaitTillCardGiven = 0x80B7F7BC; // type:func -EnGe3_GiveCard = 0x80B7F820; // type:func -EnGe3_ForceTalk = 0x80B7F8B4; // type:func -EnGe3_UpdateCollision = 0x80B7F96C; // type:func -EnGe3_MoveAndBlink = 0x80B7FA14; // type:func -EnGe3_UpdateWhenNotTalking = 0x80B7FAA0; // type:func -EnGe3_Update = 0x80B7FB54; // type:func -EnGe3_OverrideLimbDraw = 0x80B7FBA0; // type:func -EnGe3_PostLimbDraw = 0x80B7FBFC; // type:func -EnGe3_Draw = 0x80B7FC58; // type:func -ObjTimeblock_CalculateIsVisible = 0x80B7FE80; // type:func -ObjTimeblock_SpawnDemoEffect = 0x80B7FF40; // type:func -ObjTimeblock_ToggleSwitchFlag = 0x80B7FFB4; // type:func -ObjTimeblock_Init = 0x80B7FFFC; // type:func -ObjTimeblock_Destroy = 0x80B801B0; // type:func -ObjTimeblock_PlayerIsInRange = 0x80B801E4; // type:func -ObjTimeblock_WaitForOcarina = 0x80B802C4; // type:func -ObjTimeblock_WaitForSong = 0x80B80344; // type:func -ObjTimeblock_SetupDoNothing = 0x80B803BC; // type:func -ObjTimeblock_DoNothing = 0x80B803D0; // type:func -ObjTimeblock_SetupNormal = 0x80B803E0; // type:func -ObjTimeblock_Normal = 0x80B803F4; // type:func -func_80BA06AC = 0x80B80570; // type:func -ObjTimeblock_SetupAltBehaviorVisible = 0x80B80620; // type:func -ObjTimeblock_AltBehaviorVisible = 0x80B80634; // type:func -ObjTimeblock_SetupAltBehaviourNotVisible = 0x80B80700; // type:func -ObjTimeblock_AltBehaviourNotVisible = 0x80B80714; // type:func -ObjTimeblock_Update = 0x80B807E4; // type:func -ObjTimeblock_Draw = 0x80B8086C; // type:func -ObjHamishi_InitCollision = 0x80B80AC0; // type:func -ObjHamishi_Shake = 0x80B80B18; // type:func -ObjHamishi_Break = 0x80B80C94; // type:func -ObjHamishi_Init = 0x80B80F40; // type:func -ObjHamishi_Destroy = 0x80B81028; // type:func -ObjHamishi_Update = 0x80B81054; // type:func -ObjHamishi_Draw = 0x80B81184; // type:func -EnZl4_SetActiveCamDir = 0x80B81310; // type:func -EnZl4_SetActiveCamMove = 0x80B813E8; // type:func -EnZl4_GetTextId = 0x80B8146C; // type:func -EnZl4_UpdateTalkState = 0x80B81510; // type:func -EnZl4_UpdateFace = 0x80B8154C; // type:func -EnZl4_SetMove = 0x80B8169C; // type:func -func_80B5BB78 = 0x80B816DC; // type:func -EnZl4_GetCueStartPos = 0x80B81728; // type:func -EnZl4_SetupFromLegendCs = 0x80B8176C; // type:func -EnZl4_InMovingAnim = 0x80B81844; // type:func -EnZl4_Init = 0x80B81914; // type:func -EnZl4_Destroy = 0x80B81AD0; // type:func -EnZl4_SetNextAnim = 0x80B81AFC; // type:func -EnZl4_ReverseAnimation = 0x80B81B50; // type:func -EnZl4_CsWaitForPlayer = 0x80B81B78; // type:func -EnZl4_CsMeetPlayer = 0x80B81CD8; // type:func -EnZl4_CsAskStone = 0x80B81FD0; // type:func -EnZl4_CsAskName = 0x80B824FC; // type:func -EnZl4_CsTellLegend = 0x80B82AE8; // type:func -EnZl4_CsLookWindow = 0x80B82F44; // type:func -EnZl4_CsWarnAboutGanon = 0x80B83188; // type:func -EnZl4_CsMakePlan = 0x80B83650; // type:func -EnZl4_Cutscene = 0x80B83994; // type:func -EnZl4_Idle = 0x80B83C0C; // type:func -EnZl4_TheEnd = 0x80B83C84; // type:func -EnZl4_Update = 0x80B83E34; // type:func -EnZl4_OverrideLimbDraw = 0x80B83EE4; // type:func -EnZl4_PostLimbDraw = 0x80B84074; // type:func -EnZl4_Draw = 0x80B840D0; // type:func -EnMm2_ChangeAnim = 0x80B85D40; // type:func -func_80AAEF70 = 0x80B85E64; // type:func -EnMm2_Init = 0x80B85F34; // type:func -EnMm2_Destroy = 0x80B860EC; // type:func -func_80AAF224 = 0x80B86118; // type:func -func_80AAF2BC = 0x80B861B4; // type:func -func_80AAF330 = 0x80B86228; // type:func -func_80AAF3C0 = 0x80B862B8; // type:func -func_80AAF57C = 0x80B86474; // type:func -func_80AAF5EC = 0x80B864E8; // type:func -func_80AAF668 = 0x80B86564; // type:func -EnMm2_Update = 0x80B86658; // type:func -EnMm2_Draw = 0x80B867A0; // type:func -EnMm2_OverrideLimbDraw = 0x80B8686C; // type:func -EnMm2_PostLimbDraw = 0x80B868F4; // type:func -BgJyaBlock_Init = 0x80B86B00; // type:func -BgJyaBlock_Destroy = 0x80B86BB8; // type:func -BgJyaBlock_Update = 0x80B86BEC; // type:func -BgJyaBlock_Draw = 0x80B86C10; // type:func -ObjWarp2block_Spawn = 0x80B86D70; // type:func -func_80BA1ECC = 0x80B86E4C; // type:func -ObjWarp2block_SwapWithChild = 0x80B86FCC; // type:func -func_80BA2218 = 0x80B8719C; // type:func -func_80BA228C = 0x80B8721C; // type:func -func_80BA2304 = 0x80B87294; // type:func -ObjWarp2block_Init = 0x80B872D8; // type:func -ObjWarp2block_Destroy = 0x80B873F8; // type:func -ObjWarp2block_SetInactive = 0x80B87438; // type:func -ObjWarp2block_DoNothing = 0x80B87450; // type:func -func_80BA24E8 = 0x80B87460; // type:func -func_80BA24F8 = 0x80B87474; // type:func -func_80BA2600 = 0x80B87558; // type:func -func_80BA2610 = 0x80B8756C; // type:func -ObjWarp2block_Update = 0x80B8761C; // type:func -ObjWarp2block_Draw = 0x80B87658; // type:func diff --git a/tools/disasm/ntsc-1.2/variables.txt b/tools/disasm/ntsc-1.2/variables.txt deleted file mode 100644 index 7dddb10d3c..0000000000 --- a/tools/disasm/ntsc-1.2/variables.txt +++ /dev/null @@ -1,60 +0,0 @@ -njpgdspMainDataStart = 0x08011542; // -gActorOverlayTable = 0x800E8B70; // size:0x3AE0 -gMaxActorId = 0x800EC650; // size:0x4 -sJpegTask = 0x800F1BB0; // size:0x40 type:OSTask -gSramSlotOffsets = 0x800FC550; // size:0xC type:u16 -Player_Profile = 0x800FCB80; // size:0x20 -gKaleidoMgrOverlayTable = 0x800FEAD0; // size:0x38 type:KaleidoMgrOverlay -gScreenWidth = 0x800FEB50; // size:0x4 type:s32 -gScreenHeight = 0x800FEB54; // size:0x4 type:s32 -gSystemHeapSize = 0x800FEB58; // size:0x4 type:u32 -gSaveContext = 0x8011AC80; // size:0x1428 type:SaveContext -gRegEditor = 0x8011C0B0; // size:0x4 type:RegEditor* -gSegments = 0x80121508; // size:0x40 -_string_n64dd_c = 0x801D9680; // size:0x1 type:char -B_80121220 = 0x80121AF0; // size:0x4 type:n64ddStruct_80121220* -D_80121210 = 0x80121AE0; // size:0x1 type:u8 -D_80121211 = 0x80121AE1; // size:0x1 type:s8 -D_80121212 = 0x80121AE2; // size:0x1 type:u8 -_n64ddSegmentStart = 0x801C7740; -_n64ddSegmentRomStart = 0x00B8ADA0; -_n64ddSegmentRomEnd = 0x00B9DA70; -D_800FEE70 = 0x800FF4B0; // size:0xB0 type:n64ddStruct_800FEE70_pointers -gPadMgr = 0x8011DBD0; // size:0x468 type:PadMgr -gFaultMgr = 0x80121B60; // size:0x5D8 type:FaultMgr_v1 -sFaultInputs = 0x80121B00; // size:0x60 type:Input[4] -gTotalAllocFailures = 0x80105A90; // size:0x4 type:u32 -gBitFlags = 0x800F9240; // size:0x80 type:u32[32] -gSfxDefaultPos = 0x801049D4; // size:0xC type:Vec3f -gSfxDefaultFreqAndVolScale = 0x801049E0; // size:0x4 type:f32 -gSfxDefaultReverb = 0x801049E8; // size:0x1 type:s8 -B_80008EE0 = 0x80008EE0; // size:0x4 type:s32 -B_80008EE4 = 0x80008EE4; // size:0x4 type:s32 -sCIC6105FaultClient = 0x80008EE8; // size:0x10 type:FaultClient -B_80008EF8 = 0x80008EF8; // size:0x4 type:s32 -B_80008EFC = 0x80008EFC; // size:0x4 type:s32 -gAppNmiBufferPtr = 0x8011D970; // size:0x4 type:PreNmiBuff* -sSerialEventQueue = 0x801217E0; // size:0x18 type:OSMesgQueue -sSerialMsgBuf = 0x801217F8; // size:0x4 type:OSMesg[1] -sIrqMgrStackInfo = 0x801214E8; -sIrqMgrStack = 0x80120F68; -gIrqMgr = 0x8011E038; // size:0x280 type:IrqMgr -sSchedStackInfo = 0x80121488; -sSchedStack = 0x8011FC68; -gScheduler = 0x8011D978; // size:0x258 type:Scheduler -gViConfigModeType = 0x80008350; // size:0x1 type:u8 -sAudioStackInfo = 0x801214A8; -sAudioStack = 0x80120268; -sAudioMgr = 0x80121548; // size:0x298 type:AudioMgr -sPadMgrStackInfo = 0x801214C8; -sPadMgrStack = 0x80120A68; -gPadMgr = 0x8011DBD0; // size:0x468 type:PadMgr -sSerialEventQueue = 0x801217E0; -sGraphStackInfo = 0x80121468; -sGraphStack = 0x8011E468; -sGraphThread = 0x8011E2B8; -rspbootTextStart = 0x800065C0; -rspbootTextEnd = 0x80006720; -cic6105TextStart = 0x80006720; -gBuildCreator = 0x80006D30; -gBuildDate = 0x80006D3C; From cb7fe4943aa1628bd0bc690c65edfd6cd2898c3b Mon Sep 17 00:00:00 2001 From: cadmic Date: Thu, 12 Sep 2024 13:37:13 -0700 Subject: [PATCH 74/86] Fix find command error (#2192) --- Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 295bb66993..c1ff3df25e 100644 --- a/Makefile +++ b/Makefile @@ -326,7 +326,11 @@ SOUNDFONT_DEP_FILES := $(foreach f,$(SOUNDFONT_O_FILES),$(f:.o=.d)) # create extracted directory $(shell mkdir -p $(EXTRACTED_DIR)) -ASSET_BIN_DIRS_EXTRACTED := $(shell find $(EXTRACTED_DIR)/assets -type d) +ifneq ($(wildcard $(EXTRACTED_DIR)/assets),) + ASSET_BIN_DIRS_EXTRACTED := $(shell find $(EXTRACTED_DIR)/assets -type d) +else + ASSET_BIN_DIRS_EXTRACTED := +endif ASSET_BIN_DIRS_COMMITTED := $(shell find assets -type d -not -path "assets/xml*" -not -path assets/text) ASSET_BIN_DIRS := $(ASSET_BIN_DIRS_EXTRACTED) $(ASSET_BIN_DIRS_COMMITTED) From e6e067428e227204ddb2d459064439bfd89d7362 Mon Sep 17 00:00:00 2001 From: fig02 Date: Fri, 13 Sep 2024 10:07:16 -0400 Subject: [PATCH 75/86] change flag name (#2194) --- include/z64actor.h | 4 ++-- src/code/z_en_a_keep.c | 2 +- src/overlays/actors/ovl_Demo_Im/z_demo_im.c | 6 ++--- src/overlays/actors/ovl_En_Ani/z_en_ani.c | 2 +- .../ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c | 2 +- src/overlays/actors/ovl_En_Cow/z_en_cow.c | 2 +- src/overlays/actors/ovl_En_Cs/z_en_cs.c | 2 +- src/overlays/actors/ovl_En_Daiku/z_en_daiku.c | 6 ++--- .../z_en_daiku_kakariko.c | 2 +- .../ovl_En_Diving_Game/z_en_diving_game.c | 2 +- src/overlays/actors/ovl_En_Dns/z_en_dns.c | 2 +- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 2 +- src/overlays/actors/ovl_En_Door/z_en_door.c | 2 +- src/overlays/actors/ovl_En_Ds/z_en_ds.c | 2 +- src/overlays/actors/ovl_En_Du/z_en_du.c | 2 +- src/overlays/actors/ovl_En_Fr/z_en_fr.c | 2 +- src/overlays/actors/ovl_En_Fu/z_en_fu.c | 2 +- src/overlays/actors/ovl_En_Gb/z_en_gb.c | 2 +- src/overlays/actors/ovl_En_Ge1/z_en_ge1.c | 2 +- src/overlays/actors/ovl_En_Ge2/z_en_ge2.c | 2 +- src/overlays/actors/ovl_En_Ge3/z_en_ge3.c | 2 +- src/overlays/actors/ovl_En_GirlA/z_en_girla.c | 2 +- src/overlays/actors/ovl_En_Gm/z_en_gm.c | 2 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 2 +- src/overlays/actors/ovl_En_Go2/z_en_go2.c | 2 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 2 +- src/overlays/actors/ovl_En_Guest/z_en_guest.c | 2 +- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 4 ++-- .../actors/ovl_En_Heishi4/z_en_heishi4.c | 2 +- .../actors/ovl_En_Hintnuts/z_en_hintnuts.c | 4 ++-- src/overlays/actors/ovl_En_Hs/z_en_hs.c | 2 +- src/overlays/actors/ovl_En_Hs2/z_en_hs2.c | 2 +- src/overlays/actors/ovl_En_Hy/z_en_hy.c | 2 +- src/overlays/actors/ovl_En_In/z_en_in.c | 2 +- src/overlays/actors/ovl_En_Js/z_en_js.c | 2 +- .../actors/ovl_En_Jsjutan/z_en_jsjutan.c | 2 +- .../actors/ovl_En_Kakasi/z_en_kakasi.c | 2 +- .../actors/ovl_En_Kakasi3/z_en_kakasi3.c | 2 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 2 +- src/overlays/actors/ovl_En_Ko/z_en_ko.c | 2 +- src/overlays/actors/ovl_En_Kz/z_en_kz.c | 2 +- src/overlays/actors/ovl_En_Ma1/z_en_ma1.c | 2 +- src/overlays/actors/ovl_En_Ma2/z_en_ma2.c | 2 +- src/overlays/actors/ovl_En_Ma3/z_en_ma3.c | 2 +- src/overlays/actors/ovl_En_Md/z_en_md.c | 2 +- src/overlays/actors/ovl_En_Mk/z_en_mk.c | 2 +- src/overlays/actors/ovl_En_Mm/z_en_mm.c | 2 +- src/overlays/actors/ovl_En_Mm2/z_en_mm2.c | 2 +- src/overlays/actors/ovl_En_Ms/z_en_ms.c | 2 +- src/overlays/actors/ovl_En_Mu/z_en_mu.c | 2 +- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 14 +++++------ .../actors/ovl_En_Niw_Girl/z_en_niw_girl.c | 2 +- .../actors/ovl_En_Niw_Lady/z_en_niw_lady.c | 2 +- src/overlays/actors/ovl_En_OE2/z_en_oe2.c | 2 +- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 2 +- src/overlays/actors/ovl_En_Owl/z_en_owl.c | 2 +- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 2 +- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 14 +++++------ src/overlays/actors/ovl_En_Sa/z_en_sa.c | 2 +- src/overlays/actors/ovl_En_Skj/z_en_skj.c | 2 +- src/overlays/actors/ovl_En_Sth/z_en_sth.c | 2 +- .../ovl_En_Syateki_Man/z_en_syateki_man.c | 2 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 2 +- .../ovl_En_Takara_Man/z_en_takara_man.c | 2 +- src/overlays/actors/ovl_En_Tana/z_en_tana.c | 2 +- src/overlays/actors/ovl_En_Tg/z_en_tg.c | 2 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 2 +- src/overlays/actors/ovl_En_Toryo/z_en_toryo.c | 2 +- .../ovl_En_Wonder_Talk/z_en_wonder_talk.c | 2 +- .../ovl_En_Wonder_Talk2/z_en_wonder_talk2.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 4 ++-- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 2 +- src/overlays/actors/ovl_En_Zl3/z_en_zl3.c | 24 +++++++++---------- src/overlays/actors/ovl_En_Zl4/z_en_zl4.c | 2 +- src/overlays/actors/ovl_En_Zo/z_en_zo.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 4 ++-- .../actors/ovl_Item_Inbox/z_item_inbox.c | 2 +- .../actors/ovl_Obj_Dekujr/z_obj_dekujr.c | 2 +- src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c | 2 +- 79 files changed, 111 insertions(+), 111 deletions(-) diff --git a/include/z64actor.h b/include/z64actor.h index 42ac0c3bef..1cc67ffec2 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -116,10 +116,10 @@ typedef struct ActorShape { // Note: This must be paired with `ACTOR_FLAG_ATTENTION_ENABLED` to have any effect. #define ACTOR_FLAG_HOSTILE (1 << 2) -// Actor is not hostile toward the player; Opposite flag of `ACTOR_FLAG_HOSTILE`. +// Actor is considered "friendly"; Opposite flag of `ACTOR_FLAG_HOSTILE`. // Note that this flag doesn't have any effect on either the actor, or Player's behvaior. // What actually matters is the presence or lack of `ACTOR_FLAG_HOSTILE`. -#define ACTOR_FLAG_NEUTRAL (1 << 3) +#define ACTOR_FLAG_FRIENDLY (1 << 3) // #define ACTOR_FLAG_4 (1 << 4) diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index 39cee208bf..bfa7c383c2 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -146,7 +146,7 @@ void EnAObj_Init(Actor* thisx, PlayState* play) { case A_OBJ_SIGNPOST_ARROW: thisx->textId = (this->textId & 0xFF) | 0x300; thisx->lockOnArrowOffset = 500.0f; - thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->focusYoffset = 45.0f; EnAObj_SetupWaitTalk(this, thisx->params); Collider_InitCylinder(play, &this->collider); diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c index b126337e95..302bd6411e 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c @@ -861,7 +861,7 @@ s32 func_80986A5C(DemoIm* this, PlayState* play) { } s32 func_80986AD0(DemoIm* this, PlayState* play) { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; if (!Actor_TalkOfferAccepted(&this->actor, play)) { this->actor.textId = 0x708E; Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); @@ -957,7 +957,7 @@ void func_80986DC8(DemoIm* this, PlayState* play) { DemoIm_UpdateSkelAnime(this); func_80984BE0(this); func_80984E58(this, play); - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); } void func_80986E20(DemoIm* this, PlayState* play) { @@ -1004,7 +1004,7 @@ void func_80986FA8(DemoIm* this, PlayState* play) { DemoIm_UpdateSkelAnime(this); func_80984BE0(this); func_80984E58(this, play); - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); DemoIm_UpdateCollider(this, play); func_80986CFC(this, play); } diff --git a/src/overlays/actors/ovl_En_Ani/z_en_ani.c b/src/overlays/actors/ovl_En_Ani/z_en_ani.c index 339d115b3a..15834acc34 100644 --- a/src/overlays/actors/ovl_En_Ani/z_en_ani.c +++ b/src/overlays/actors/ovl_En_Ani/z_en_ani.c @@ -7,7 +7,7 @@ #include "z_en_ani.h" #include "assets/objects/object_ani/object_ani.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnAni_Init(Actor* thisx, PlayState* play); void EnAni_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c index 80b4830015..0b8c1a725a 100644 --- a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c +++ b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c @@ -5,7 +5,7 @@ #include "assets/objects/object_bg/object_bg.h" #define FLAGS \ - (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_LOCK_ON_DISABLED) + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_LOCK_ON_DISABLED) typedef enum BombchuGirlEyeMode { /* 0 */ CHU_GIRL_EYES_ASLEEP, diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index 7d62048ede..7e6e4ca52e 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -6,7 +6,7 @@ #include "z_en_cow.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnCow_Init(Actor* thisx, PlayState* play); void EnCow_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index 813822eecc..24bfb2d9a3 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -2,7 +2,7 @@ #include "assets/objects/object_cs/object_cs.h" #include "assets/objects/object_link_child/object_link_child.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnCs_Init(Actor* thisx, PlayState* play); void EnCs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c index e496ea6c23..98200fadc8 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -2,7 +2,7 @@ #include "overlays/actors/ovl_En_GeldB/z_en_geldb.h" #include "assets/objects/object_daiku/object_daiku.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) typedef struct EnDaikuEscapeSubCamParam { Vec3f eyePosDeltaLocal; @@ -367,7 +367,7 @@ void EnDaiku_Jailed(EnDaiku* this, PlayState* play) { this->actionFunc = EnDaiku_WaitFreedom; } else if (!(this->stateFlags & ENDAIKU_STATEFLAG_GERUDOFIGHTING) && !gerudo->invisible) { this->stateFlags |= ENDAIKU_STATEFLAG_GERUDOFIGHTING; - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); } } @@ -379,7 +379,7 @@ void EnDaiku_WaitFreedom(EnDaiku* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); if (Flags_GetSwitch(play, PARAMS_GET_U(this->actor.params, 8, 6))) { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; EnDaiku_UpdateText(this, play); } } diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index 1e45d7010b..6bc4db0a9f 100644 --- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -7,7 +7,7 @@ #include "z_en_daiku_kakariko.h" #include "assets/objects/object_daiku/object_daiku.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) typedef enum KakarikoCarpenterType { /* 0x0 */ CARPENTER_ICHIRO, // Red and purple pants, normal hair diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c index 74ddbbbc59..4a8c61119f 100644 --- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c +++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c @@ -9,7 +9,7 @@ #include "assets/objects/object_zo/object_zo.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnDivingGame_Init(Actor* thisx, PlayState* play); void EnDivingGame_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index fa86849dbb..b975349d1c 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -7,7 +7,7 @@ #include "z_en_dns.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnDns_Init(Actor* thisx, PlayState* play); void EnDns_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index d2f5ec58ea..413e2b0d59 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -10,7 +10,7 @@ #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnDntJiji_Init(Actor* thisx, PlayState* play); void EnDntJiji_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index b9a6e9ea9d..bf1dc7ea2b 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -206,7 +206,7 @@ void EnDoor_SetupType(EnDoor* this, PlayState* play) { doorType = DOOR_SCENEEXIT; } else { this->actionFunc = EnDoor_WaitForCheck; - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_LOCK_ON_DISABLED; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_LOCK_ON_DISABLED; } } // Replace the door type it was loaded with by the new type diff --git a/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/src/overlays/actors/ovl_En_Ds/z_en_ds.c index 3ba350174d..eaf1fd0d01 100644 --- a/src/overlays/actors/ovl_En_Ds/z_en_ds.c +++ b/src/overlays/actors/ovl_En_Ds/z_en_ds.c @@ -7,7 +7,7 @@ #include "z_en_ds.h" #include "assets/objects/object_ds/object_ds.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnDs_Init(Actor* thisx, PlayState* play); void EnDs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index 6822749123..d98a1c9a6b 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -2,7 +2,7 @@ #include "assets/objects/object_du/object_du.h" #include "assets/scenes/overworld/spot18/spot18_scene.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_25) void EnDu_Init(Actor* thisx, PlayState* play); void EnDu_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index 5b47590874..443bbfc722 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -3,7 +3,7 @@ #include "terminal.h" #include "assets/objects/object_fr/object_fr.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_25) void EnFr_Init(Actor* thisx, PlayState* play); void EnFr_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 45e84423b9..7f4512dc89 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -8,7 +8,7 @@ #include "assets/objects/object_fu/object_fu.h" #include "assets/scenes/indoors/hakasitarelay/hakasitarelay_scene.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_25) #define FU_RESET_LOOK_ANGLE (1 << 0) #define FU_WAIT (1 << 1) diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index a03d2f1053..cd769ac99f 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -7,7 +7,7 @@ #include "z_en_gb.h" #include "assets/objects/object_ps/object_ps.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnGb_Init(Actor* thisx, PlayState* play); void EnGb_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index dc818d6292..c2f90782c9 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_ge1/object_ge1.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) #define GE1_STATE_TALKING (1 << 0) #define GE1_STATE_GIVE_QUIVER (1 << 1) diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index 49f343855b..6679aa4c10 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_gla/object_gla.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) #define GE2_STATE_ANIMCOMPLETE (1 << 1) #define GE2_STATE_KO (1 << 2) diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c index a0799822a3..9cac0605d0 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c @@ -8,7 +8,7 @@ #include "assets/objects/object_geldb/object_geldb.h" #include "versions.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnGe3_Init(Actor* thisx, PlayState* play2); void EnGe3_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c index a2a437ef43..c02438a6e9 100644 --- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c +++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c @@ -7,7 +7,7 @@ #include "z_en_girla.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnGirlA_Init(Actor* thisx, PlayState* play); void EnGirlA_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index 7c6e2ac6bf..01cbeb38d7 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -9,7 +9,7 @@ #include "assets/objects/object_gm/object_gm.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnGm_Init(Actor* thisx, PlayState* play); void EnGm_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index 52f9bc125a..a5d96938c6 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -3,7 +3,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_oF1d_map/object_oF1d_map.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_5) void EnGo_Init(Actor* thisx, PlayState* play); void EnGo_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index 7e44845803..c267023b13 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -5,7 +5,7 @@ #include "quake.h" #include "versions.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_5) /* FLAGS diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index e488dba55c..3ada233a1c 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Elf/z_en_elf.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_25) void EnGs_Init(Actor* thisx, PlayState* play); void EnGs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Guest/z_en_guest.c b/src/overlays/actors/ovl_En_Guest/z_en_guest.c index 79c27bec42..a5cfc07103 100644 --- a/src/overlays/actors/ovl_En_Guest/z_en_guest.c +++ b/src/overlays/actors/ovl_En_Guest/z_en_guest.c @@ -9,7 +9,7 @@ #include "assets/objects/object_boj/object_boj.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnGuest_Init(Actor* thisx, PlayState* play); void EnGuest_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index 0cedc0e6d2..53a2e3ee2b 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -12,7 +12,7 @@ #include "overlays/actors/ovl_En_Bom/z_en_bom.h" #include "overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnHeishi2_Init(Actor* thisx, PlayState* play); void EnHeishi2_Destroy(Actor* thisx, PlayState* play); @@ -143,7 +143,7 @@ void EnHeishi2_Init(Actor* thisx, PlayState* play) { // "Peep hole soldier!" PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ 覗き穴奥兵士ふぃ〜 ☆☆☆☆☆ \n" VT_RST); Collider_DestroyCylinder(play, collider); - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actionFunc = EnHeishi_DoNothing2; break; } diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c index be4a9e2f0c..cafe699bc7 100644 --- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c +++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c @@ -2,7 +2,7 @@ #include "assets/objects/object_sd/object_sd.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnHeishi4_Init(Actor* thisx, PlayState* play); void EnHeishi4_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index a4a87b209a..d40cbaf7f7 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -111,7 +111,7 @@ void EnHintnuts_HitByScrubProjectile1(EnHintnuts* this, PlayState* play) { if (this->actor.textId != 0 && this->actor.category == ACTORCAT_ENEMY && ((this->actor.params == 0) || (sPuzzleCounter == 2))) { this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_BG); } } @@ -377,7 +377,7 @@ void EnHintnuts_Run(EnHintnuts* this, PlayState* play) { fabsf(this->actor.world.pos.y - this->actor.home.pos.y) < 2.0f) { this->actor.speed = 0.0f; if (this->actor.category == ACTORCAT_BG) { - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_16); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_16); this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_ENEMY); } diff --git a/src/overlays/actors/ovl_En_Hs/z_en_hs.c b/src/overlays/actors/ovl_En_Hs/z_en_hs.c index ccfbf80a90..5a678d2624 100644 --- a/src/overlays/actors/ovl_En_Hs/z_en_hs.c +++ b/src/overlays/actors/ovl_En_Hs/z_en_hs.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_hs/object_hs.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnHs_Init(Actor* thisx, PlayState* play); void EnHs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c index d890734a28..383411a9da 100644 --- a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c +++ b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_hs/object_hs.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnHs2_Init(Actor* thisx, PlayState* play); void EnHs2_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/src/overlays/actors/ovl_En_Hy/z_en_hy.c index 72a438e04f..6ebdbabd89 100644 --- a/src/overlays/actors/ovl_En_Hy/z_en_hy.c +++ b/src/overlays/actors/ovl_En_Hy/z_en_hy.c @@ -15,7 +15,7 @@ #include "assets/objects/object_cob/object_cob.h" #include "assets/objects/object_os_anime/object_os_anime.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnHy_Init(Actor* thisx, PlayState* play); void EnHy_Destroy(Actor* thisx, PlayState* play); 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 6e6ee75fbd..30b8bf6cbe 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -2,7 +2,7 @@ #include "overlays/actors/ovl_En_Horse/z_en_horse.h" #include "assets/objects/object_in/object_in.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnIn_Init(Actor* thisx, PlayState* play); void EnIn_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Js/z_en_js.c b/src/overlays/actors/ovl_En_Js/z_en_js.c index 370ed29352..998dd27311 100644 --- a/src/overlays/actors/ovl_En_Js/z_en_js.c +++ b/src/overlays/actors/ovl_En_Js/z_en_js.c @@ -7,7 +7,7 @@ #include "z_en_js.h" #include "assets/objects/object_js/object_js.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnJs_Init(Actor* thisx, PlayState* play); void EnJs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c b/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c index 130644e565..6650e31715 100644 --- a/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c +++ b/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c @@ -7,7 +7,7 @@ #include "z_en_jsjutan.h" #include "overlays/actors/ovl_En_Bom/z_en_bom.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnJsjutan_Init(Actor* thisx, PlayState* play); void EnJsjutan_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index 8ed2e27c32..c02f2b70b5 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_ka/object_ka.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_25) void EnKakasi_Init(Actor* thisx, PlayState* play); void EnKakasi_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index 23da94a291..a61bc07b90 100644 --- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_ka/object_ka.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_25) void EnKakasi3_Init(Actor* thisx, PlayState* play); void EnKakasi3_Destroy(Actor* thisx, PlayState* play); 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 53a4cfc6a0..4de1b6d223 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -10,7 +10,7 @@ #include "assets/objects/object_kanban/object_kanban.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) #define PART_UPPER_LEFT (1 << 0) #define PART_LEFT_UPPER (1 << 1) diff --git a/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/src/overlays/actors/ovl_En_Ko/z_en_ko.c index 89c828a4ff..4c89130ac2 100644 --- a/src/overlays/actors/ovl_En_Ko/z_en_ko.c +++ b/src/overlays/actors/ovl_En_Ko/z_en_ko.c @@ -11,7 +11,7 @@ #include "assets/objects/object_kw1/object_kw1.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) #define ENKO_TYPE PARAMS_GET_S(this->actor.params, 0, 8) #define ENKO_PATH PARAMS_GET_S(this->actor.params, 8, 8) diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c index 3de640cdec..9d298eb533 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -7,7 +7,7 @@ #include "z_en_kz.h" #include "assets/objects/object_kz/object_kz.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnKz_Init(Actor* thisx, PlayState* play); void EnKz_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index 044367361e..89e8b05372 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -7,7 +7,7 @@ #include "z_en_ma1.h" #include "assets/objects/object_ma1/object_ma1.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25) void EnMa1_Init(Actor* thisx, PlayState* play); void EnMa1_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index f297f92965..4609d040cd 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -1,7 +1,7 @@ #include "z_en_ma2.h" #include "assets/objects/object_ma2/object_ma2.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25) void EnMa2_Init(Actor* thisx, PlayState* play); void EnMa2_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c index 182b2d1539..db4fc8b4c0 100644 --- a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c +++ b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c @@ -7,7 +7,7 @@ #include "z_en_ma3.h" #include "assets/objects/object_ma2/object_ma2.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_5) void EnMa3_Init(Actor* thisx, PlayState* play); void EnMa3_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c index 39f1e5a535..c5046d0789 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -8,7 +8,7 @@ #include "assets/objects/object_md/object_md.h" #include "overlays/actors/ovl_En_Elf/z_en_elf.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_25) void EnMd_Init(Actor* thisx, PlayState* play); void EnMd_Destroy(Actor* thisx, PlayState* play); 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 e15bd1ed49..72fc28f2b8 100644 --- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c +++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c @@ -7,7 +7,7 @@ #include "z_en_mk.h" #include "assets/objects/object_mk/object_mk.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnMk_Init(Actor* thisx, PlayState* play); void EnMk_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index c571153880..01e750267a 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -8,7 +8,7 @@ #include "assets/objects/object_mm/object_mm.h" #include "assets/objects/object_link_child/object_link_child.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) typedef enum RunningManAnimIndex { /* 0 */ RM_ANIM_RUN, diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c index 424b7877ee..9fe34382d8 100644 --- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c +++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_mm/object_mm.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) typedef enum RunningManAnimIndex { /* 0 */ RM2_ANIM_RUN, diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c index f8d17a043d..35796e1eb7 100644 --- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c +++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c @@ -7,7 +7,7 @@ #include "z_en_ms.h" #include "assets/objects/object_ms/object_ms.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnMs_Init(Actor* thisx, PlayState* play); void EnMs_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c index 77ebf7a5e2..c57cb95700 100644 --- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c +++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c @@ -7,7 +7,7 @@ #include "z_en_mu.h" #include "assets/objects/object_mu/object_mu.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnMu_Init(Actor* thisx, PlayState* play); void EnMu_Destroy(Actor* thisx, PlayState* play); 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 f7f288f2ef..9a82cb7141 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -1134,7 +1134,7 @@ void EnNb_CrawlspaceSpawnCheck(EnNb* this, PlayState* play) { EnNb_SetCurrentAnim(this, &gNabooruStandingHandsOnHipsAnim, 0, 0.0f, 0); this->headTurnFlag = 1; - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->actor.world.pos = this->finalPos; this->action = NB_IDLE_AFTER_TALK; this->drawMode = NB_DRAW_DEFAULT; @@ -1214,7 +1214,7 @@ void EnNb_SetupIdleCrawlspace(EnNb* this, s32 animFinished) { if (animFinished) { EnNb_SetCurrentAnim(this, &gNabooruStandingHandsOnHipsAnim, 0, -8.0f, 0); this->headTurnFlag = 1; - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->action = NB_IDLE_CRAWLSPACE; } } @@ -1225,7 +1225,7 @@ void func_80AB3838(EnNb* this, PlayState* play) { this->action = NB_IN_DIALOG; } else { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; if (!GET_INFTABLE(INFTABLE_16C)) { this->actor.textId = 0x601D; @@ -1241,7 +1241,7 @@ void EnNb_SetupPathMovement(EnNb* this, PlayState* play) { EnNb_SetCurrentAnim(this, &gNabooruStandingToWalkingTransitionAnim, 2, -8.0f, 0); SET_EVENTCHKINF(EVENTCHKINF_94); this->action = NB_IN_PATH; - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); } void EnNb_SetTextIdAsChild(EnNb* this, PlayState* play) { @@ -1261,7 +1261,7 @@ void EnNb_SetTextIdAsChild(EnNb* this, PlayState* play) { } this->action = NB_IDLE_CRAWLSPACE; } - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); } else if ((Message_GetState(&play->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(play)) { choiceIndex = play->msgCtx.choiceIndex; @@ -1319,7 +1319,7 @@ void func_80AB3B04(EnNb* this, PlayState* play) { this->action = NB_ACTION_30; } else { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->actor.textId = MaskReaction_GetTextId(play, MASK_REACTION_SET_NABOORU); if (this->actor.textId == 0) { @@ -1333,7 +1333,7 @@ void func_80AB3B04(EnNb* this, PlayState* play) { void func_80AB3B7C(EnNb* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { this->action = NB_IDLE_AFTER_TALK; - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); } } diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index c5a2090f7c..d492a53d1b 100644 --- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -8,7 +8,7 @@ #include "assets/objects/object_gr/object_gr.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnNiwGirl_Init(Actor* thisx, PlayState* play); void EnNiwGirl_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index fa650587dc..8ff0cc1f43 100644 --- a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -4,7 +4,7 @@ #include "overlays/actors/ovl_En_Niw/z_en_niw.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnNiwLady_Init(Actor* thisx, PlayState* play); void EnNiwLady_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_OE2/z_en_oe2.c b/src/overlays/actors/ovl_En_OE2/z_en_oe2.c index ec67cf0c50..f89eb3ce99 100644 --- a/src/overlays/actors/ovl_En_OE2/z_en_oe2.c +++ b/src/overlays/actors/ovl_En_OE2/z_en_oe2.c @@ -6,7 +6,7 @@ #include "z_en_oe2.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnOE2_Init(Actor* thisx, PlayState* play); void EnOE2_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index 1041f02ebc..dac45da114 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -14,7 +14,7 @@ #include "assets/objects/object_masterzoora/object_masterzoora.h" #include "assets/objects/object_masterkokirihead/object_masterkokirihead.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) #if !PLATFORM_GC #define CURSOR_COLOR_R 0 diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index 076715d55d..e297d8f248 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -10,7 +10,7 @@ #include "assets/scenes/overworld/spot16/spot16_scene.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnOwl_Init(Actor* thisx, PlayState* play); void EnOwl_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index 6c6c8f2bfc..ff08fb027b 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -9,7 +9,7 @@ #include "assets/objects/object_tk/object_tk.h" #define FLAGS \ - (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_16) + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_16) void EnPoRelay_Init(Actor* thisx, PlayState* play); void EnPoRelay_Destroy(Actor* thisx, PlayState* play); 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 c0443bf119..e07536cbde 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -1505,7 +1505,7 @@ void func_80AEE050(EnRu1* this) { s32 func_80AEE264(EnRu1* this, PlayState* play) { if (!Actor_TalkOfferAccepted(&this->actor, play)) { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; if (GET_INFTABLE(INFTABLE_143)) { this->actor.textId = 0x404E; Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); @@ -1837,7 +1837,7 @@ s32 func_80AEF0BC(EnRu1* this, PlayState* play) { Animation_Change(&this->skelAnime, &gRutoChildSitAnim, 1.0f, 0, frameCount, ANIMMODE_ONCE, -8.0f); play->msgCtx.msgMode = MSGMODE_PAUSED; this->action = 26; - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); return true; } return false; @@ -1877,7 +1877,7 @@ void func_80AEF29C(EnRu1* this, PlayState* play) { void func_80AEF2AC(EnRu1* this, PlayState* play) { this->action = 24; this->drawConfig = 1; - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; } void func_80AEF2D0(EnRu1* this, PlayState* play) { @@ -2034,7 +2034,7 @@ void func_80AEF890(EnRu1* this, PlayState* play) { void func_80AEF930(EnRu1* this, PlayState* play) { if (func_80AEB104(this) == 3) { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->actor.textId = 0x4048; Message_ContinueTextbox(play, this->actor.textId); func_80AEF4A8(this, play); @@ -2132,7 +2132,7 @@ void func_80AEFC54(EnRu1* this, PlayState* play) { this->action = 41; this->unk_28C = EnRu1_FindSwitch(play); func_80AEB0EC(this, 1); - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); } else { Actor_Kill(&this->actor); } @@ -2160,7 +2160,7 @@ void func_80AEFD38(EnRu1* this, PlayState* play) { s32 func_80AEFDC0(EnRu1* this, PlayState* play) { if (!Actor_TalkOfferAccepted(&this->actor, play)) { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->actor.textId = MaskReaction_GetTextId(play, MASK_REACTION_SET_RUTO); if (this->actor.textId == 0) { this->actor.textId = 0x402C; @@ -2173,7 +2173,7 @@ s32 func_80AEFDC0(EnRu1* this, PlayState* play) { s32 func_80AEFE38(EnRu1* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); return true; } return false; diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index b36ba4d058..3b6bb128ea 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -4,7 +4,7 @@ #include "assets/scenes/overworld/spot04/spot04_scene.h" #include "assets/scenes/overworld/spot05/spot05_scene.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_25) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_25) void EnSa_Init(Actor* thisx, PlayState* play); void EnSa_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index 566afcdadf..6faf037418 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -407,7 +407,7 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) { this->morphTable, 19); if ((type >= 0) && (type < 3)) { this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_NPC); } diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c index 7618defb00..37bd5ac04e 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -9,7 +9,7 @@ #include "assets/objects/object_ahg/object_ahg.h" #include "assets/objects/object_boj/object_boj.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnSth_Init(Actor* thisx, PlayState* play); void EnSth_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index 1e4f0261f9..4db0f056c9 100644 --- a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -3,7 +3,7 @@ #include "overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.h" #include "assets/objects/object_ossan/object_ossan.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_LOCK_ON_DISABLED) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_LOCK_ON_DISABLED) typedef enum EnSyatekiManGameResult { /* 0 */ SYATEKI_RESULT_NONE, diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index 47e2ed2679..0e240fffaa 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -8,7 +8,7 @@ #include "terminal.h" #include "assets/objects/object_ta/object_ta.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) #define TALON_STATE_FLAG_TRACKING_PLAYER (1 << 0) #define TALON_STATE_FLAG_GIVING_MILK_REFILL (1 << 1) diff --git a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c index 2da5672688..b90485149a 100644 --- a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c +++ b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c @@ -9,7 +9,7 @@ #include "assets/objects/object_ts/object_ts.h" #define FLAGS \ - (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_LOCK_ON_DISABLED) + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_LOCK_ON_DISABLED) void EnTakaraMan_Init(Actor* thisx, PlayState* play); void EnTakaraMan_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Tana/z_en_tana.c b/src/overlays/actors/ovl_En_Tana/z_en_tana.c index 3171198069..1c3e4b2ab7 100644 --- a/src/overlays/actors/ovl_En_Tana/z_en_tana.c +++ b/src/overlays/actors/ovl_En_Tana/z_en_tana.c @@ -7,7 +7,7 @@ #include "z_en_tana.h" #include "assets/objects/object_shop_dungen/object_shop_dungen.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnTana_Init(Actor* thisx, PlayState* play); void EnTana_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/src/overlays/actors/ovl_En_Tg/z_en_tg.c index 24b48a5f43..f8b53051ca 100644 --- a/src/overlays/actors/ovl_En_Tg/z_en_tg.c +++ b/src/overlays/actors/ovl_En_Tg/z_en_tg.c @@ -7,7 +7,7 @@ #include "z_en_tg.h" #include "assets/objects/object_mu/object_mu.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnTg_Init(Actor* thisx, PlayState* play); void EnTg_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 84c7baf20c..aa6953782d 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -8,7 +8,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_tk/object_tk.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnTk_Init(Actor* thisx, PlayState* play); void EnTk_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c index f4e44742ee..a456256a26 100644 --- a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c +++ b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c @@ -7,7 +7,7 @@ #include "z_en_toryo.h" #include "assets/objects/object_toryo/object_toryo.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void EnToryo_Init(Actor* thisx, PlayState* play); void EnToryo_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c index ffda29fcd5..769947d5b5 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c @@ -7,7 +7,7 @@ #include "z_en_wonder_talk.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_LOCK_ON_DISABLED) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_LOCK_ON_DISABLED) void EnWonderTalk_Init(Actor* thisx, PlayState* play); void EnWonderTalk_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c index cd012962a5..f3cde9606f 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c @@ -7,7 +7,7 @@ #include "z_en_wonder_talk2.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_LOCK_ON_DISABLED) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_LOCK_ON_DISABLED) void EnWonderTalk2_Init(Actor* thisx, PlayState* play); void EnWonderTalk2_Destroy(Actor* thisx, 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 b6444ad3d5..3061631f96 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -2208,7 +2208,7 @@ void EnXc_SetupDialogueAction(EnXc* this, PlayState* play) { this->action = SHEIK_ACTION_IN_DIALOGUE; } else { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; if (INV_CONTENT(ITEM_HOOKSHOT) != ITEM_NONE) { this->actor.textId = 0x7010; } else { @@ -2221,7 +2221,7 @@ void EnXc_SetupDialogueAction(EnXc* this, PlayState* play) { void func_80B41798(EnXc* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { this->action = SHEIK_ACTION_BLOCK_PEDESTAL; - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); } } 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 b029314ed1..08749a5bef 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -7,7 +7,7 @@ #include "z_en_zl1.h" #include "assets/objects/object_zl1/object_zl1.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) void EnZl1_Init(Actor* thisx, PlayState* play); void EnZl1_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c index dc87b8cd78..fbd648e7f7 100644 --- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c +++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c @@ -1112,7 +1112,7 @@ void func_80B55C4C(EnZl3* this, s32 arg1) { void func_80B55C70(EnZl3* this) { func_80B54E14(this, &gZelda2Anime2Anim_008684, 2, -8.0f, 0); this->action = 12; - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } @@ -1126,19 +1126,19 @@ void func_80B55D00(EnZl3* this, PlayState* play) { if (Actor_TalkOfferAccepted(&this->actor, play)) { this->action = 13; } else if (ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) <= 0x4300) { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.textId = 0x70D5; Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); } else { - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } void func_80B55DB0(EnZl3* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->action = 12; } @@ -1185,13 +1185,13 @@ void func_80B55F6C(EnZl3* this, PlayState* play) { BossGanon2* bossGanon2 = func_80B53488(this, play); if ((bossGanon2 != NULL) && (bossGanon2->unk_324 <= (10.0f / 81.0f))) { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.textId = 0x7059; Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); } } else { - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } @@ -1217,7 +1217,7 @@ void func_80B56090(EnZl3* this, s32 arg1) { void func_80B56108(EnZl3* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->action = 16; } @@ -1247,21 +1247,21 @@ void func_80B56214(EnZl3* this, PlayState* play) { if (bossGanon2 != NULL) { if (bossGanon2->unk_324 <= (10.0f / 81.0f)) { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.textId = 0x7059; Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); } } } else { - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; } } void func_80B562F4(EnZl3* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->action = 20; } @@ -1701,7 +1701,7 @@ void func_80B57350(EnZl3* this, PlayState* play) { s16 temp_v0 = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; if (ABS(temp_v0) <= 0x4300) { - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->actor.textId = func_80B572F0(play); Actor_OfferTalkNearColChkInfoCylinder(&this->actor, play); } @@ -2542,7 +2542,7 @@ void func_80B59828(EnZl3* this, PlayState* play) { if (func_80B59698(this, play) || (!func_80B56EE4(this, play) && func_80B57890(this, play))) { func_80B54E14(this, &gZelda2Anime2Anim_009FBC, 0, 0.0f, 0); - this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; func_80B56F10(this, play); newRotY = func_80B571A8(this); this->actor.shape.rot.y = newRotY; 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 3480fd7cb3..bf9c3874d9 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -8,7 +8,7 @@ #include "assets/objects/object_zl4/object_zl4.h" #include "assets/scenes/indoors/nakaniwa/nakaniwa_scene.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL | ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4) typedef enum EnZl4CutsceneState { /* 0 */ ZL4_CS_WAIT, 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 c5a4a0379b..6e5fd9aa7c 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -7,7 +7,7 @@ #include "z_en_zo.h" #include "assets/objects/object_zo/object_zo.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) typedef enum EnZoEffectType { /* 0 */ ENZO_EFFECT_NONE, diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 0c6c4d5b0e..5744dce321 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -886,7 +886,7 @@ void Fishing_Init(Actor* thisx, PlayState* play2) { thisx->focus.pos = thisx->world.pos; thisx->focus.pos.y += 75.0f; - thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; if (sLinkAge != LINK_AGE_CHILD) { if (HIGH_SCORE(HS_FISHING) & HS_FISH_STOLE_HAT) { @@ -1032,7 +1032,7 @@ void Fishing_Init(Actor* thisx, PlayState* play2) { this->fishState = 100; Actor_ChangeCategory(play, &play->actorCtx, thisx, ACTORCAT_PROP); thisx->attentionRangeType = ATTENTION_RANGE_0; - thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL; + thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->lightNode = LightContext_InsertLight(play, &play->lightCtx, &this->lightInfo); } else { this->fishState = 10; diff --git a/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c b/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c index 5803b0baf0..e1b21b2a85 100644 --- a/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c +++ b/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c @@ -6,7 +6,7 @@ #include "z_item_inbox.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void ItemInbox_Init(Actor* thisx, PlayState* play); void ItemInbox_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c index e979f137e5..3a0d603aae 100644 --- a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c +++ b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c @@ -7,7 +7,7 @@ #include "z_obj_dekujr.h" #include "assets/objects/object_dekujr/object_dekujr.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void ObjDekujr_Init(Actor* thisx, PlayState* play); void ObjDekujr_Destroy(Actor* thisx, PlayState* play); diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c index b4f3e8b417..8c08bcad49 100644 --- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c +++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c @@ -10,7 +10,7 @@ #include "assets/scenes/overworld/spot06/spot06_scene.h" #include "terminal.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_NEUTRAL) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) void ShotSun_Init(Actor* thisx, PlayState* play); void ShotSun_Destroy(Actor* thisx, PlayState* play); From e658bed27e104df46d201c81232d4dcb9d01a00f Mon Sep 17 00:00:00 2001 From: fig02 Date: Fri, 13 Sep 2024 14:49:55 -0400 Subject: [PATCH 76/86] Hostile Lock-On (#2193) * document flag and functions * format * adjust comment * make the comment more public-facing-friendly --- include/functions.h | 2 +- include/z64player.h | 2 +- src/code/z_actor.c | 4 +- src/code/z_player_lib.c | 11 ++- src/overlays/actors/ovl_En_Test/z_en_test.c | 6 +- src/overlays/actors/ovl_En_Zf/z_en_zf.c | 3 +- .../actors/ovl_player_actor/z_player.c | 98 +++++++++++-------- 7 files changed, 75 insertions(+), 51 deletions(-) diff --git a/include/functions.h b/include/functions.h index f11bea990b..903af90b6f 100644 --- a/include/functions.h +++ b/include/functions.h @@ -792,7 +792,7 @@ void Path_CopyLastPoint(Path* path, Vec3f* dest); void Player_SetBootData(PlayState* play, Player* this); int Player_InBlockingCsMode(PlayState* play, Player* this); int Player_InCsMode(PlayState* play); -s32 func_8008E9C4(Player* this); +s32 Player_CheckHostileLockOn(Player* this); int Player_IsChildWithHylianShield(Player* this); s32 Player_ActionToModelGroup(Player* this, s32 itemAction); void Player_SetModelsForHoldingShield(Player* this); diff --git a/include/z64player.h b/include/z64player.h index de15c9b691..a9d360d27b 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -652,7 +652,7 @@ typedef struct WeaponInfo { #define PLAYER_STATE1_SWINGING_BOTTLE (1 << 1) // Bottle is swung; Bottle is active and can catch things #define PLAYER_STATE1_2 (1 << 2) #define PLAYER_STATE1_3 (1 << 3) -#define PLAYER_STATE1_4 (1 << 4) +#define PLAYER_STATE1_HOSTILE_LOCK_ON (1 << 4) // Currently locked onto a hostile actor. Triggers a "battle" variant of many actions. #define PLAYER_STATE1_5 (1 << 5) #define PLAYER_STATE1_6 (1 << 6) #define PLAYER_STATE1_7 (1 << 7) diff --git a/src/code/z_actor.c b/src/code/z_actor.c index e36110e79b..b7b9e31b01 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -3793,7 +3793,7 @@ s16 Actor_TestFloorInDirection(Actor* actor, PlayState* play, f32 distance, s16 s32 Actor_IsLockedOn(PlayState* play, Actor* actor) { Player* player = GET_PLAYER(play); - if ((player->stateFlags1 & PLAYER_STATE1_4) && actor->isLockedOn) { + if ((player->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) && actor->isLockedOn) { return true; } else { return false; @@ -3806,7 +3806,7 @@ s32 Actor_IsLockedOn(PlayState* play, Actor* actor) { s32 Actor_OtherIsLockedOn(PlayState* play, Actor* actor) { Player* player = GET_PLAYER(play); - if ((player->stateFlags1 & PLAYER_STATE1_4) && !actor->isLockedOn) { + if ((player->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) && !actor->isLockedOn) { return true; } else { return false; diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 608423b42a..f520685079 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -502,8 +502,15 @@ int Player_InCsMode(PlayState* play) { return Player_InBlockingCsMode(play, this) || (this->unk_6AD == 4); } -s32 func_8008E9C4(Player* this) { - return (this->stateFlags1 & PLAYER_STATE1_4); +/** + * Checks if Player is currently locked onto a hostile actor. + * `PLAYER_STATE1_HOSTILE_LOCK_ON` controls Player's "battle" response to hostile actors. + * + * Note that within Player, `Player_UpdateHostileLockOn` exists, which updates the flag and also returns the check. + * Player can use this function instead if the flag should be checked, but not updated. + */ +s32 Player_CheckHostileLockOn(Player* this) { + return (this->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON); } int Player_IsChildWithHylianShield(Player* this) { 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 6db22e5266..873ea78e11 100644 --- a/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -404,7 +404,7 @@ void EnTest_ChooseAction(EnTest* this, PlayState* play) { } else { if (this->actor.xzDistToPlayer < 110.0f) { if (Rand_ZeroOne() > 0.2f) { - if (player->stateFlags1 & PLAYER_STATE1_4) { + if (player->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) { if (this->actor.isLockedOn) { EnTest_SetupSlashDown(this); } else { @@ -690,7 +690,7 @@ void EnTest_WalkAndBlock(EnTest* this, PlayState* play) { if (this->actor.xzDistToPlayer < 110.0f) { if (Rand_ZeroOne() > 0.2f) { - if (player->stateFlags1 & PLAYER_STATE1_4) { + if (player->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) { if (this->actor.isLockedOn) { EnTest_SetupSlashDown(this); } else { @@ -975,7 +975,7 @@ void EnTest_SlashDownEnd(EnTest* this, PlayState* play) { if ((ABS(yawDiff) > 0x3E80) && (this->actor.params != STALFOS_TYPE_CEILING)) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; EnTest_SetupJumpBack(this); - } else if (player->stateFlags1 & PLAYER_STATE1_4) { + } else if (player->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) { if (this->actor.isLockedOn) { EnTest_SetupSlashDown(this); } else if ((play->gameplayFrames % 2) != 0) { diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index 5f7ddb2793..b9c5e45d3b 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -1223,7 +1223,8 @@ void EnZf_Slash(EnZf* this, PlayState* play) { if (yawDiff > 16000) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; func_80B483E4(this, play); - } else if (player->stateFlags1 & (PLAYER_STATE1_4 | PLAYER_STATE1_13 | PLAYER_STATE1_14)) { + } else if (player->stateFlags1 & + (PLAYER_STATE1_HOSTILE_LOCK_ON | PLAYER_STATE1_13 | PLAYER_STATE1_14)) { if (this->actor.isLockedOn) { EnZf_SetupSlash(this); } else { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 31a638ed3e..0b956c86ac 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -2320,35 +2320,49 @@ void func_80833A20(Player* this, s32 newMeleeWeaponState) { s32 func_80833B2C(Player* this) { if (this->stateFlags1 & (PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL | PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE)) { - return 1; + return true; } else { - return 0; + return false; } } -s32 func_80833B54(Player* this) { +/** + * Checks the current state of `focusActor` and if it is a hostile actor (if applicable). + * If so, sets `PLAYER_STATE1_HOSTILE_LOCK_ON` which will control Player's "battle" response to + * hostile actors. This includes affecting how movement is handled, and enabling a "fighting" set + * of animations. + * + * Note that `Player_CheckHostileLockOn` also exists to check if there is currently a hostile lock-on actor. + * This function differs in that it first updates the flag if appropriate, then returns the same information. + * + * @return true if there is curerntly a hostile lock-on actor, false otherwise + */ +s32 Player_UpdateHostileLockOn(Player* this) { if ((this->focusActor != NULL) && CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE)) { - this->stateFlags1 |= PLAYER_STATE1_4; - return 1; - } + this->stateFlags1 |= PLAYER_STATE1_HOSTILE_LOCK_ON; - if (this->stateFlags1 & PLAYER_STATE1_4) { - this->stateFlags1 &= ~PLAYER_STATE1_4; - if (this->speedXZ == 0.0f) { - this->yaw = this->actor.shape.rot.y; + return true; + } else { + if (this->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) { + this->stateFlags1 &= ~PLAYER_STATE1_HOSTILE_LOCK_ON; + + // sync world and shape yaw when not moving + if (this->speedXZ == 0.0f) { + this->yaw = this->actor.shape.rot.y; + } } - } - return 0; + return false; + } } int func_80833BCC(Player* this) { - return func_8008E9C4(this) || func_80833B2C(this); + return Player_CheckHostileLockOn(this) || func_80833B2C(this); } int func_80833C04(Player* this) { - return func_80833B54(this) || func_80833B2C(this); + return Player_UpdateHostileLockOn(this) || func_80833B2C(this); } void func_80833C3C(Player* this) { @@ -2665,7 +2679,7 @@ void Player_WaitToFinishItemChange(PlayState* play, Player* this) { Player_FinishItemChange(play, this); } - func_80833B54(this); + Player_UpdateHostileLockOn(this); } s32 func_8083499C(Player* this, PlayState* play) { @@ -2781,7 +2795,7 @@ s32 func_80834D2C(Player* this, PlayState* play) { if (this->stateFlags1 & PLAYER_STATE1_23) { Player_AnimPlayLoop(play, this, &gPlayerAnim_link_uma_anim_walk); - } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && !func_80833B54(this)) { + } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && !Player_UpdateHostileLockOn(this)) { Player_AnimPlayLoop(play, this, GET_PLAYER_ANIM(PLAYER_ANIMGROUP_wait, this->modelAnimType)); } @@ -3115,7 +3129,7 @@ s32 func_808359FC(Player* this, PlayState* play) { boomerang->returnTimer = 20; this->stateFlags1 |= PLAYER_STATE1_BOOMERANG_THROWN; - if (!func_8008E9C4(this)) { + if (!Player_CheckHostileLockOn(this)) { Player_SetParallel(this); } @@ -3309,7 +3323,7 @@ void Player_UseItem(PlayState* play, Player* this, s32 item) { } else if (((itemAction >= PLAYER_IA_OCARINA_FAIRY) && (itemAction <= PLAYER_IA_OCARINA_OF_TIME)) || (itemAction >= PLAYER_IA_BOTTLE_FISH)) { // Handle "cutscene items" - if (!func_8008E9C4(this) || + if (!Player_CheckHostileLockOn(this) || ((itemAction >= PLAYER_IA_BOTTLE_POTION_RED) && (itemAction <= PLAYER_IA_BOTTLE_FAIRY))) { TitleCard_Clear(play, &play->actorCtx.titleCtx); this->unk_6AD = 4; @@ -4327,7 +4341,7 @@ void func_80837C0C(PlayState* play, Player* this, s32 arg2, f32 arg3, f32 arg4, this->hoverBootsTimer = 0; this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; } else { - if ((this->speedXZ > 4.0f) && !func_8008E9C4(this)) { + if ((this->speedXZ > 4.0f) && !Player_CheckHostileLockOn(this)) { this->unk_890 = 20; Player_RequestRumble(this, 120, 20, 10, 0); Player_PlayVoiceSfx(this, NA_SE_VO_LI_DAMAGE_S); @@ -4351,7 +4365,7 @@ void func_80837C0C(PlayState* play, Player* this, s32 arg2, f32 arg3, f32 arg4, sp28 += 2; } - if (func_8008E9C4(this)) { + if (Player_CheckHostileLockOn(this)) { sp28 += 1; } @@ -5173,7 +5187,7 @@ void func_80839F30(Player* this, PlayState* play) { } void func_80839F90(Player* this, PlayState* play) { - if (func_8008E9C4(this)) { + if (Player_CheckHostileLockOn(this)) { func_80839E88(this, play); } else if (func_80833B2C(this)) { func_80839F30(this, play); @@ -5185,7 +5199,7 @@ void func_80839F90(Player* this, PlayState* play) { void func_80839FFC(Player* this, PlayState* play) { PlayerActionFunc actionFunc; - if (func_8008E9C4(this)) { + if (Player_CheckHostileLockOn(this)) { actionFunc = Player_Action_80840450; } else if (func_80833B2C(this)) { actionFunc = Player_Action_808407CC; @@ -5198,7 +5212,7 @@ void func_80839FFC(Player* this, PlayState* play) { void func_8083A060(Player* this, PlayState* play) { func_80839FFC(this, play); - if (func_8008E9C4(this)) { + if (Player_CheckHostileLockOn(this)) { this->av2.actionVar2 = 1; } } @@ -5865,7 +5879,8 @@ s32 Player_ActionChange_0(Player* this, PlayState* play) { (CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_18) || (this->focusActor->naviEnemyId != NAVI_ENEMY_NONE))) { this->stateFlags2 |= PLAYER_STATE2_21; - } else if ((this->naviTextId == 0) && !func_8008E9C4(this) && CHECK_BTN_ALL(sControlInput->press.button, BTN_CUP) && + } else if ((this->naviTextId == 0) && !Player_CheckHostileLockOn(this) && + CHECK_BTN_ALL(sControlInput->press.button, BTN_CUP) && (R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && (R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_TOGGLE_VIEWPOINT) && !func_8083B8F4(this, play)) { Sfx_PlaySfxCentered(NA_SE_SY_ERROR); @@ -6040,7 +6055,7 @@ void func_8083C148(Player* this, PlayState* play) { } s32 Player_ActionChange_6(Player* this, PlayState* play) { - if (!func_80833B54(this) && !sUpperBodyIsBusy && !(this->stateFlags1 & PLAYER_STATE1_23) && + if (!Player_UpdateHostileLockOn(this) && !sUpperBodyIsBusy && !(this->stateFlags1 & PLAYER_STATE1_23) && CHECK_BTN_ALL(sControlInput->press.button, BTN_A)) { if (func_8083BC7C(this, play)) { return 1; @@ -6077,7 +6092,7 @@ s32 Player_ActionChange_11(Player* this, PlayState* play) { } if (anim != this->skelAnime.animation) { - if (func_8008E9C4(this)) { + if (Player_CheckHostileLockOn(this)) { this->unk_86C = 1.0f; } else { this->unk_86C = 0.0f; @@ -7602,7 +7617,7 @@ void Player_Action_80840450(Player* this, PlayState* play) { func_8083721C(this); if (!Player_TryActionChangeList(play, this, sActionChangeList1, true)) { - if (!func_80833B54(this) && (!func_80833B2C(this) || (func_80834B5C != this->upperActionFunc))) { + if (!Player_UpdateHostileLockOn(this) && (!func_80833B2C(this) || (func_80834B5C != this->upperActionFunc))) { func_8083CF10(this, play); return; } @@ -7668,7 +7683,7 @@ void Player_Action_808407CC(Player* this, PlayState* play) { func_8083721C(this); if (!Player_TryActionChangeList(play, this, sActionChangeList2, true)) { - if (func_80833B54(this)) { + if (Player_UpdateHostileLockOn(this)) { func_8083CEAC(this, play); return; } @@ -7796,7 +7811,7 @@ void Player_Action_80840BC8(Player* this, PlayState* play) { if (this->av2.actionVar2 == 0) { if (!Player_TryActionChangeList(play, this, sActionChangeList7, true)) { - if (func_80833B54(this)) { + if (Player_UpdateHostileLockOn(this)) { func_8083CEAC(this, play); return; } @@ -7869,7 +7884,7 @@ void Player_Action_80840DE4(Player* this, PlayState* play) { } if (!Player_TryActionChangeList(play, this, sActionChangeList3, true)) { - if (func_80833B54(this)) { + if (Player_UpdateHostileLockOn(this)) { func_8083CEAC(this, play); return; } @@ -8106,7 +8121,7 @@ void Player_Action_8084193C(Player* this, PlayState* play) { func_8083CBF0(this, yawTarget, play); } } else if ((this->speedXZ < 3.6f) && (speedTarget < 4.0f)) { - if (!func_8008E9C4(this) && func_80833B2C(this)) { + if (!Player_CheckHostileLockOn(this) && func_80833B2C(this)) { func_8083CB94(this, play); } else { func_80839F90(this, play); @@ -8511,7 +8526,7 @@ void func_80842D20(PlayState* play, Player* this) { func_80832440(play, this); Player_SetupAction(play, this, Player_Action_808505DC, 0); - if (func_8008E9C4(this)) { + if (Player_CheckHostileLockOn(this)) { sp28 = 2; } else { sp28 = 0; @@ -9013,7 +9028,7 @@ void Player_Action_8084411C(Player* this, PlayState* play) { if (gSaveContext.respawn[RESPAWN_MODE_TOP].data > 40) { this->actor.gravity = 0.0f; - } else if (func_8008E9C4(this)) { + } else if (Player_CheckHostileLockOn(this)) { this->actor.gravity = -1.2f; } @@ -9090,14 +9105,14 @@ void Player_Action_8084411C(Player* this, PlayState* play) { s32 sp3C; if (this->stateFlags2 & PLAYER_STATE2_19) { - if (func_8008E9C4(this)) { + if (Player_CheckHostileLockOn(this)) { anim = D_80853D4C[this->av1.actionVar1][2]; } else { anim = D_80853D4C[this->av1.actionVar1][1]; } } else if (this->skelAnime.animation == &gPlayerAnim_link_normal_run_jump) { anim = &gPlayerAnim_link_normal_run_jump_end; - } else if (func_8008E9C4(this)) { + } else if (Player_CheckHostileLockOn(this)) { anim = &gPlayerAnim_link_anchor_landingR; func_80833C3C(this); } else if (this->fallDistance <= 80) { @@ -10378,7 +10393,7 @@ void Player_UpdateInterface(PlayState* play, Player* this) { !Player_IsChildWithHylianShield(this))) { if ((!(this->stateFlags1 & PLAYER_STATE1_14) && (controlStickDirection <= PLAYER_STICK_DIR_FORWARD) && - (func_8008E9C4(this) || + (Player_CheckHostileLockOn(this) || ((sFloorType != FLOOR_TYPE_7) && (func_80833B2C(this) || ((play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_2) && !(this->stateFlags1 & PLAYER_STATE1_22) && @@ -11654,7 +11669,7 @@ void Player_Draw(Actor* thisx, PlayState* play2) { s32 lod; s32 pad; - if ((this->csAction != PLAYER_CSACTION_NONE) || (func_8008E9C4(this) && 0) || + if ((this->csAction != PLAYER_CSACTION_NONE) || (Player_CheckHostileLockOn(this) && 0) || (this->actor.projectedPos.z < 160.0f)) { lod = 0; } else { @@ -11888,7 +11903,8 @@ void Player_Action_8084B1D8(Player* this, PlayState* play) { } if ((this->csAction != PLAYER_CSACTION_NONE) || (this->unk_6AD == 0) || (this->unk_6AD >= 4) || - func_80833B54(this) || (this->focusActor != NULL) || (func_8083AD4C(play, this) == CAM_MODE_NORMAL) || + Player_UpdateHostileLockOn(this) || (this->focusActor != NULL) || + (func_8083AD4C(play, this) == CAM_MODE_NORMAL) || (((this->unk_6AD == 2) && (CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_R) || func_80833B2C(this) || (!func_8002DD78(this) && !func_808334B4(this)))) || ((this->unk_6AD == 1) && @@ -11978,7 +11994,7 @@ void Player_Action_8084B530(Player* this, PlayState* play) { Player_Action_8084CC98(this, play); } else if (func_808332B8(this)) { Player_Action_8084D610(this, play); - } else if (!func_8008E9C4(this) && LinkAnimation_Update(play, &this->skelAnime)) { + } else if (!Player_CheckHostileLockOn(this) && LinkAnimation_Update(play, &this->skelAnime)) { if (this->skelAnime.moveFlags != 0) { func_80832DBC(this); if ((this->talkActor->category == ACTORCAT_NPC) && (this->heldItemAction != PLAYER_IA_FISHING_POLE)) { @@ -14017,7 +14033,7 @@ void Player_Action_808502D0(Player* this, PlayState* play) { u8 sp43 = this->skelAnime.moveFlags; LinkAnimationHeader* sp3C; - if (func_8008E9C4(this)) { + if (Player_CheckHostileLockOn(this)) { sp3C = sp44->unk_08; } else { sp3C = sp44->unk_04; @@ -15499,7 +15515,7 @@ void func_80853148(PlayState* play, Actor* actor) { } else if ((actor->category != ACTORCAT_NPC) || (this->heldItemAction == PLAYER_IA_FISHING_POLE)) { func_8083A2F8(play, this); - if (!func_8008E9C4(this)) { + if (!Player_CheckHostileLockOn(this)) { if ((actor != this->naviActor) && (actor->xzDistToPlayer < 40.0f)) { Player_AnimPlayOnceAdjusted(play, this, &gPlayerAnim_link_normal_backspace); } else { From 65cc42a71737e945fa8f7d3917aaae2efc474e0d Mon Sep 17 00:00:00 2001 From: cadmic Date: Fri, 13 Sep 2024 13:38:16 -0700 Subject: [PATCH 77/86] Use gSpiritBossNabooruKnuckleDefeatCs instead of gMinuetCs in sCutscenesUnknownList (#2195) --- src/code/z_demo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 29e18394e1..5ae1767b53 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -115,7 +115,8 @@ EntranceCutscene sEntranceCutsceneTable[] = { }; void* sCutscenesUnknownList[] = { - gDekuTreeIntroCs, gJabuJabuIntroCs, gDcOpeningCs, gMinuetCs, gIceCavernSerenadeCs, gTowerBarrierCs, + gDekuTreeIntroCs, gJabuJabuIntroCs, gDcOpeningCs, gSpiritBossNabooruKnuckleDefeatCs, + gIceCavernSerenadeCs, gTowerBarrierCs, }; // Stores the frame the relevant cam data was last applied on From 03a15027063f643ff238266745aabc707e650608 Mon Sep 17 00:00:00 2001 From: fig02 Date: Sat, 14 Sep 2024 16:42:28 -0400 Subject: [PATCH 78/86] More Player Z Target documentation (#2196) * document flag * Player_FriendlyLockOnOrParallel * quirk * z target functions * more comments * more comment changes * format * comment change --- include/z64player.h | 2 +- src/code/z_player_lib.c | 4 +- .../actors/ovl_player_actor/z_player.c | 138 +++++++++++------- 3 files changed, 92 insertions(+), 52 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index a9d360d27b..ebd5220e88 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -664,7 +664,7 @@ typedef struct WeaponInfo { #define PLAYER_STATE1_13 (1 << 13) #define PLAYER_STATE1_14 (1 << 14) #define PLAYER_STATE1_Z_TARGETING (1 << 15) // Either lock-on or parallel is active. This flag is never checked for and is practically unused. -#define PLAYER_STATE1_16 (1 << 16) +#define PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS (1 << 16) // Currently focusing on a friendly actor. Includes friendly lock-on, talking, and more. Usually does not include hostile actor lock-on, see `PLAYER_STATE1_HOSTILE_LOCK_ON`. #define PLAYER_STATE1_PARALLEL (1 << 17) // "Parallel" mode, Z-Target without an actor lock-on #define PLAYER_STATE1_18 (1 << 18) #define PLAYER_STATE1_19 (1 << 19) diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index f520685079..e6d11311f4 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -618,7 +618,7 @@ void func_8008EE08(Player* this) { (this->stateFlags1 & (PLAYER_STATE1_21 | PLAYER_STATE1_23 | PLAYER_STATE1_27)) || (!(this->stateFlags1 & (PLAYER_STATE1_18 | PLAYER_STATE1_19)) && ((this->actor.world.pos.y - this->actor.floorHeight) < 100.0f))) { - this->stateFlags1 &= ~(PLAYER_STATE1_Z_TARGETING | PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL | + this->stateFlags1 &= ~(PLAYER_STATE1_Z_TARGETING | PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS | PLAYER_STATE1_PARALLEL | PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE); } else if (!(this->stateFlags1 & (PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_21))) { this->stateFlags1 |= PLAYER_STATE1_19; @@ -633,7 +633,7 @@ void func_8008EEAC(PlayState* play, Actor* actor) { func_8008EE08(this); this->focusActor = actor; this->unk_684 = actor; - this->stateFlags1 |= PLAYER_STATE1_16; + this->stateFlags1 |= PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS; Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, actor); Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_Z_TARGET_FRIENDLY); } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 0b956c86ac..65deb1994c 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -2318,8 +2318,25 @@ void func_80833A20(Player* this, s32 newMeleeWeaponState) { this->meleeWeaponState = newMeleeWeaponState; } -s32 func_80833B2C(Player* this) { - if (this->stateFlags1 & (PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL | PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE)) { +/** + * This function checks for friendly (non-hostile) Z-Target related states. + * For hostile related lock-on states, see `Player_UpdateHostileLockOn` and `Player_CheckHostileLockOn`. + * + * Note that `PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS` will include all `focusActor` use cases that relate to + * friendly actors. This function can return true when talking to an actor, for example. + * Despite that, this function is only relevant in the context of actor lock-on, which is a subset of actor focus. + * This is why the function name states `FriendlyLockOn` instead of `FriendlyActorFocus`. + * + * There is a special case that allows hostile actors to be treated as "friendly" if Player is carrying another actor + * See relevant code in `func_80836BEC` for more details. + * + * Additionally, `PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE` will be set very briefly in some conditions when + * a lock-on is forced to release. In these niche cases, this function will apply to both friendly and hostile actors. + * Overall, it is safe to assume that this specific state flag is not very relevant for this function's use cases. + */ +s32 Player_FriendlyLockOnOrParallel(Player* this) { + if (this->stateFlags1 & + (PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS | PLAYER_STATE1_PARALLEL | PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE)) { return true; } else { return false; @@ -2335,7 +2352,7 @@ s32 func_80833B2C(Player* this) { * Note that `Player_CheckHostileLockOn` also exists to check if there is currently a hostile lock-on actor. * This function differs in that it first updates the flag if appropriate, then returns the same information. * - * @return true if there is curerntly a hostile lock-on actor, false otherwise + * @return true if there is currently a hostile lock-on actor, false otherwise */ s32 Player_UpdateHostileLockOn(Player* this) { if ((this->focusActor != NULL) && @@ -2357,12 +2374,26 @@ s32 Player_UpdateHostileLockOn(Player* this) { } } -int func_80833BCC(Player* this) { - return Player_CheckHostileLockOn(this) || func_80833B2C(this); +/** + * Returns true if currently Z-Targeting, false if not. + * Z-Targeting here is a blanket term that covers both the "actor lock-on" and "parallel" states. + * + * This variant of the function calls `Player_CheckHostileLockOn`, which does not update the hostile + * lock-on actor state. + */ +int Player_IsZTargeting(Player* this) { + return Player_CheckHostileLockOn(this) || Player_FriendlyLockOnOrParallel(this); } -int func_80833C04(Player* this) { - return Player_UpdateHostileLockOn(this) || func_80833B2C(this); +/** + * Returns true if currently Z-Targeting, false if not. + * Z-Targeting here is a blanket term that covers both the "actor lock-on" and "parallel" states. + * + * This variant of the function calls `Player_UpdateHostileLockOn`, which updates the hostile + * lock-on actor state before checking its state. + */ +int Player_IsZTargetingWithHostileUpdate(Player* this) { + return Player_UpdateHostileLockOn(this) || Player_FriendlyLockOnOrParallel(this); } void func_80833C3C(Player* this) { @@ -2635,8 +2666,8 @@ s32 func_80834758(PlayState* play, Player* this) { if (!(this->stateFlags1 & (PLAYER_STATE1_22 | PLAYER_STATE1_23 | PLAYER_STATE1_29)) && (play->shootingGalleryStatus == 0) && (this->heldItemAction == this->itemAction) && - (this->currentShield != PLAYER_SHIELD_NONE) && !Player_IsChildWithHylianShield(this) && func_80833BCC(this) && - CHECK_BTN_ALL(sControlInput->cur.button, BTN_R)) { + (this->currentShield != PLAYER_SHIELD_NONE) && !Player_IsChildWithHylianShield(this) && + Player_IsZTargeting(this) && CHECK_BTN_ALL(sControlInput->cur.button, BTN_R)) { anim = func_808346C4(play, this); frame = Animation_GetLastFrame(anim); @@ -2814,7 +2845,7 @@ int func_80834E7C(PlayState* play) { s32 func_80834EB8(Player* this, PlayState* play) { if ((this->unk_6AD == 0) || (this->unk_6AD == 2)) { - if (func_80833BCC(this) || + if (Player_IsZTargeting(this) || (Camera_CheckValidMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_AIM_ADULT) == 0)) { return 1; } @@ -2973,7 +3004,7 @@ s32 func_808353D8(Player* this, PlayState* play) { this->unk_834--; } - if (func_80833BCC(this) || (this->unk_6AD != 0) || (this->stateFlags1 & PLAYER_STATE1_20)) { + if (Player_IsZTargeting(this) || (this->unk_6AD != 0) || (this->stateFlags1 & PLAYER_STATE1_20)) { if (this->unk_834 == 0) { this->unk_834++; } @@ -3665,11 +3696,16 @@ void func_80836BEC(Player* this, PlayState* play) { } if (this->focusActor != NULL) { - this->stateFlags1 &= ~(PLAYER_STATE1_16 | PLAYER_STATE1_PARALLEL); + this->stateFlags1 &= ~(PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS | PLAYER_STATE1_PARALLEL); + // Check if an actor is not hostile, aka "friendly", to set `PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS`. + // + // When carrying another actor, `PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS` will be set even if the actor + // is hostile. This is a special case to allow Player to have more freedom of movement and be able + // to throw a carried actor at the lock-on actor, even if it is hostile. if ((this->stateFlags1 & PLAYER_STATE1_ACTOR_CARRY) || !CHECK_FLAG_ALL(this->focusActor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE)) { - this->stateFlags1 |= PLAYER_STATE1_16; + this->stateFlags1 |= PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS; } } else { if (this->stateFlags1 & PLAYER_STATE1_PARALLEL) { @@ -3793,7 +3829,7 @@ s32 Player_GetMovementSpeedAndYaw(Player* this, f32* outSpeedTarget, s16* outYaw *outYawTarget = Math_Vec3f_Yaw(&this->actor.world.pos, &this->focusActor->focus.pos); return false; } - } else if (func_80833B2C(this)) { + } else if (Player_FriendlyLockOnOrParallel(this)) { *outYawTarget = this->parallelYaw; } @@ -4116,7 +4152,7 @@ s32 func_80837818(Player* this) { sp18 = PLAYER_MWA_SPIN_ATTACK_1H; } else { if (controlStickDirection <= PLAYER_STICK_DIR_NONE) { - if (func_80833BCC(this)) { + if (Player_IsZTargeting(this)) { sp18 = PLAYER_MWA_FORWARD_SLASH_1H; } else { sp18 = PLAYER_MWA_RIGHT_SLASH_1H; @@ -4127,7 +4163,7 @@ s32 func_80837818(Player* this) { if (sp18 == PLAYER_MWA_STAB_1H) { this->stateFlags2 |= PLAYER_STATE2_30; - if (!func_80833BCC(this)) { + if (!Player_IsZTargeting(this)) { sp18 = PLAYER_MWA_FORWARD_SLASH_1H; } } @@ -5189,7 +5225,7 @@ void func_80839F30(Player* this, PlayState* play) { void func_80839F90(Player* this, PlayState* play) { if (Player_CheckHostileLockOn(this)) { func_80839E88(this, play); - } else if (func_80833B2C(this)) { + } else if (Player_FriendlyLockOnOrParallel(this)) { func_80839F30(this, play); } else { func_80853080(this, play); @@ -5201,7 +5237,7 @@ void func_80839FFC(Player* this, PlayState* play) { if (Player_CheckHostileLockOn(this)) { actionFunc = Player_Action_80840450; - } else if (func_80833B2C(this)) { + } else if (Player_FriendlyLockOnOrParallel(this)) { actionFunc = Player_Action_808407CC; } else { actionFunc = Player_Action_80840BC8; @@ -5970,7 +6006,7 @@ s32 Player_ActionChange_10(Player* this, PlayState* play) { controlStickDirection = this->controlStickDirections[this->controlStickDataIndex]; if (controlStickDirection <= PLAYER_STICK_DIR_FORWARD) { - if (func_80833BCC(this)) { + if (Player_IsZTargeting(this)) { if (this->actor.category != ACTORCAT_PLAYER) { if (controlStickDirection <= PLAYER_STICK_DIR_NONE) { func_808389E8(this, &gPlayerAnim_link_normal_jump, REG(69) / 100.0f, play); @@ -6076,7 +6112,8 @@ s32 Player_ActionChange_11(Player* this, PlayState* play) { if ((play->shootingGalleryStatus == 0) && (this->currentShield != PLAYER_SHIELD_NONE) && CHECK_BTN_ALL(sControlInput->cur.button, BTN_R) && - (Player_IsChildWithHylianShield(this) || (!func_80833B2C(this) && (this->focusActor == NULL)))) { + (Player_IsChildWithHylianShield(this) || + (!Player_FriendlyLockOnOrParallel(this) && (this->focusActor == NULL)))) { func_80832318(this); Player_DetachHeldActor(play, this); @@ -6215,7 +6252,7 @@ s32 func_8083C6B8(PlayState* play, Player* this) { void func_8083C858(Player* this, PlayState* play) { PlayerActionFunc actionFunc; - if (func_80833BCC(this)) { + if (Player_IsZTargeting(this)) { actionFunc = Player_Action_8084227C; } else { actionFunc = Player_Action_80842180; @@ -7617,7 +7654,8 @@ void Player_Action_80840450(Player* this, PlayState* play) { func_8083721C(this); if (!Player_TryActionChangeList(play, this, sActionChangeList1, true)) { - if (!Player_UpdateHostileLockOn(this) && (!func_80833B2C(this) || (func_80834B5C != this->upperActionFunc))) { + if (!Player_UpdateHostileLockOn(this) && + (!Player_FriendlyLockOnOrParallel(this) || (func_80834B5C != this->upperActionFunc))) { func_8083CF10(this, play); return; } @@ -7688,7 +7726,7 @@ void Player_Action_808407CC(Player* this, PlayState* play) { return; } - if (!func_80833B2C(this)) { + if (!Player_FriendlyLockOnOrParallel(this)) { func_80835DAC(play, this, Player_Action_80840BC8, 1); this->yaw = this->actor.shape.rot.y; return; @@ -7816,7 +7854,7 @@ void Player_Action_80840BC8(Player* this, PlayState* play) { return; } - if (func_80833B2C(this)) { + if (Player_FriendlyLockOnOrParallel(this)) { func_80839F30(this, play); return; } @@ -7889,7 +7927,7 @@ void Player_Action_80840DE4(Player* this, PlayState* play) { return; } - if (!func_80833B2C(this)) { + if (!Player_FriendlyLockOnOrParallel(this)) { func_80853080(this, play); return; } @@ -8007,7 +8045,7 @@ void Player_Action_808414F8(Player* this, PlayState* play) { func_80841138(this, play); if (!Player_TryActionChangeList(play, this, sActionChangeList4, true)) { - if (!func_80833C04(this)) { + if (!Player_IsZTargetingWithHostileUpdate(this)) { func_8083C8DC(this, play, this->yaw); return; } @@ -8099,14 +8137,14 @@ void Player_Action_8084193C(Player* this, PlayState* play) { func_80841860(play, this); if (!Player_TryActionChangeList(play, this, sActionChangeList5, true)) { - if (!func_80833C04(this)) { + if (!Player_IsZTargetingWithHostileUpdate(this)) { func_8083C858(this, play); return; } Player_GetMovementSpeedAndYaw(this, &speedTarget, &yawTarget, SPEED_MODE_LINEAR, play); - if (func_80833B2C(this)) { + if (Player_FriendlyLockOnOrParallel(this)) { temp1 = func_8083FD78(this, &speedTarget, &yawTarget, play); } else { temp1 = func_8083FC68(this, speedTarget, yawTarget); @@ -8115,13 +8153,13 @@ void Player_Action_8084193C(Player* this, PlayState* play) { if (temp1 > 0) { func_8083C858(this, play); } else if (temp1 < 0) { - if (func_80833B2C(this)) { + if (Player_FriendlyLockOnOrParallel(this)) { func_8083CB2C(this, yawTarget, play); } else { func_8083CBF0(this, yawTarget, play); } } else if ((this->speedXZ < 3.6f) && (speedTarget < 4.0f)) { - if (!Player_CheckHostileLockOn(this) && func_80833B2C(this)) { + if (!Player_CheckHostileLockOn(this) && Player_FriendlyLockOnOrParallel(this)) { func_8083CB94(this, play); } else { func_80839F90(this, play); @@ -8282,7 +8320,7 @@ void Player_Action_80842180(Player* this, PlayState* play) { func_80841EE4(this, play); if (!Player_TryActionChangeList(play, this, sActionChangeList8, true)) { - if (func_80833C04(this)) { + if (Player_IsZTargetingWithHostileUpdate(this)) { func_8083C858(this, play); return; } @@ -8308,7 +8346,7 @@ void Player_Action_8084227C(Player* this, PlayState* play) { func_80841EE4(this, play); if (!Player_TryActionChangeList(play, this, sActionChangeList9, true)) { - if (!func_80833C04(this)) { + if (!Player_IsZTargetingWithHostileUpdate(this)) { func_8083C858(this, play); return; } @@ -8316,9 +8354,9 @@ void Player_Action_8084227C(Player* this, PlayState* play) { Player_GetMovementSpeedAndYaw(this, &speedTarget, &yawTarget, SPEED_MODE_LINEAR, play); if (!func_8083C484(this, &speedTarget, &yawTarget)) { - if ((func_80833B2C(this) && (speedTarget != 0.0f) && + if ((Player_FriendlyLockOnOrParallel(this) && (speedTarget != 0.0f) && (func_8083FD78(this, &speedTarget, &yawTarget, play) <= 0)) || - (!func_80833B2C(this) && (func_8083FC68(this, speedTarget, yawTarget) <= 0))) { + (!Player_FriendlyLockOnOrParallel(this) && (func_8083FC68(this, speedTarget, yawTarget) <= 0))) { func_80839F90(this, play); return; } @@ -8341,7 +8379,7 @@ void Player_Action_808423EC(Player* this, PlayState* play) { sp34 = LinkAnimation_Update(play, &this->skelAnime); if (!Player_TryActionChangeList(play, this, sActionChangeList5, true)) { - if (!func_80833C04(this)) { + if (!Player_IsZTargetingWithHostileUpdate(this)) { func_8083C858(this, play); return; } @@ -10389,18 +10427,19 @@ void Player_UpdateInterface(PlayState* play, Player* this) { 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) || + } else if (!sp1C && (!(this->stateFlags1 & PLAYER_STATE1_22) || Player_IsZTargeting(this) || !Player_IsChildWithHylianShield(this))) { if ((!(this->stateFlags1 & PLAYER_STATE1_14) && (controlStickDirection <= PLAYER_STICK_DIR_FORWARD) && (Player_CheckHostileLockOn(this) || ((sFloorType != FLOOR_TYPE_7) && - (func_80833B2C(this) || ((play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_2) && - !(this->stateFlags1 & PLAYER_STATE1_22) && - (controlStickDirection == PLAYER_STICK_DIR_FORWARD))))))) { + (Player_FriendlyLockOnOrParallel(this) || + ((play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_2) && + !(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) && - (controlStickDirection >= PLAYER_STICK_DIR_LEFT)) { + } else if ((play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_2) && + Player_IsZTargeting(this) && (controlStickDirection >= PLAYER_STICK_DIR_LEFT)) { doAction = DO_ACTION_JUMP; } else if ((this->heldItemAction >= PLAYER_IA_SWORD_MASTER) || ((this->stateFlags2 & PLAYER_STATE2_20) && @@ -10793,7 +10832,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { } else if ((focusActor = this->focusActor) != NULL) { if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_TALK)) { camMode = CAM_MODE_TALK; - } else if (this->stateFlags1 & PLAYER_STATE1_16) { + } else if (this->stateFlags1 & PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS) { if (this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) { camMode = CAM_MODE_FOLLOW_BOOMERANG; } else { @@ -10809,7 +10848,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { camMode = CAM_MODE_FOLLOW_BOOMERANG; Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, this->boomerangActor); } else if (this->stateFlags1 & (PLAYER_STATE1_13 | PLAYER_STATE1_14)) { - if (func_80833B2C(this)) { + if (Player_FriendlyLockOnOrParallel(this)) { camMode = CAM_MODE_Z_LEDGE_HANG; } else { camMode = CAM_MODE_LEDGE_HANG; @@ -11905,8 +11944,9 @@ void Player_Action_8084B1D8(Player* this, PlayState* play) { if ((this->csAction != PLAYER_CSACTION_NONE) || (this->unk_6AD == 0) || (this->unk_6AD >= 4) || Player_UpdateHostileLockOn(this) || (this->focusActor != NULL) || (func_8083AD4C(play, this) == CAM_MODE_NORMAL) || - (((this->unk_6AD == 2) && (CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_R) || - func_80833B2C(this) || (!func_8002DD78(this) && !func_808334B4(this)))) || + (((this->unk_6AD == 2) && + (CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_R) || Player_FriendlyLockOnOrParallel(this) || + (!func_8002DD78(this) && !func_808334B4(this)))) || ((this->unk_6AD == 1) && CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT)))) { @@ -12765,7 +12805,7 @@ void Player_Action_8084CC98(Player* this, PlayState* play) { if (this->stateFlags1 & PLAYER_STATE1_20) { if ((func_8083AD4C(play, this) == CAM_MODE_NORMAL) || CHECK_BTN_ANY(sControlInput->press.button, BTN_A) || - func_80833BCC(this)) { + Player_IsZTargeting(this)) { this->unk_6AD = 0; this->stateFlags1 &= ~PLAYER_STATE1_20; } else { @@ -12886,7 +12926,7 @@ void Player_Action_8084D610(Player* this, PlayState* play) { return; } - if (func_80833C04(this)) { + if (Player_IsZTargetingWithHostileUpdate(this)) { func_8084D5CC(play, this); } else { func_8084D574(play, this, yawTarget); @@ -12928,7 +12968,7 @@ void Player_Action_8084D84C(Player* this, PlayState* play) { temp = this->actor.shape.rot.y - yawTarget; if ((speedTarget == 0.0f) || (ABS(temp) > 0x6000) || (this->currentBoots == PLAYER_BOOTS_IRON)) { func_80838F18(play, this); - } else if (func_80833C04(this)) { + } else if (Player_IsZTargetingWithHostileUpdate(this)) { func_8084D5CC(play, this); } @@ -12987,7 +13027,7 @@ void Player_Action_8084DAB4(Player* this, PlayState* play) { if (speedTarget == 0.0f) { func_80838F18(play, this); - } else if (!func_80833C04(this)) { + } else if (!Player_IsZTargetingWithHostileUpdate(this)) { func_8084D574(play, this, yawTarget); } else { func_8084D980(play, this, &speedTarget, &yawTarget); From dbbeb656f8634c3aec9308eeb9555babd3e3a57d Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Sun, 15 Sep 2024 23:26:27 +0100 Subject: [PATCH 79/86] [Audio 8/?] Check-in handwritten sequences, build sequences, automate various sfx arrays (#2137) * [Audio 8/?] Check-in handwritten sequences, build sequences, automate various sfx arrays * Fix whitespace in aseq.h * Fix sequence 0 sfx id generator * Suggested changes, adjust some MML syntax and add more instruction descriptions * Correct some formatting in aseq.h * Add the dir of the input .seq file to the list of includes to sequence assembling so that assembler-level includes like .include or .incbin work intuitively * aseq.h tweaks * MM review suggestions, aseq.h adjustments --- .gitattributes | 4 + Makefile | 67 +- assets/audio/sequences/seq_0.prg.seq | 15302 ++++++++++++++++ assets/audio/sequences/seq_1.prg.seq | 1961 ++ assets/audio/sequences/seq_109.prg.seq | 1137 ++ assets/audio/sequences/seq_2.prg.seq | 208 + baseroms/gc-eu-mq-dbg/config.yml | 8 - baseroms/gc-eu-mq/config.yml | 8 - baseroms/gc-eu/config.yml | 8 - baseroms/gc-jp-ce/config.yml | 8 - baseroms/gc-jp-mq/config.yml | 8 - baseroms/gc-jp/config.yml | 8 - baseroms/gc-us-mq/config.yml | 8 - baseroms/gc-us/config.yml | 8 - baseroms/ntsc-1.2/config.yml | 8 - data/audio_tables.rodata.s | 16 - include/audio/aseq.h | 2344 +++ include/sequence.h | 127 +- include/sfx.h | 2 +- include/tables/sequence_table.h | 132 + include/tables/sfx/enemybank_table.h | 1003 +- include/tables/sfx/environmentbank_table.h | 503 +- include/tables/sfx/itembank_table.h | 165 +- include/tables/sfx/ocarinabank_table.h | 19 +- include/tables/sfx/playerbank_table.h | 451 +- include/tables/sfx/systembank_table.h | 147 +- include/tables/sfx/voicebank_table.h | 262 +- spec | 114 +- src/audio/general.c | 145 +- src/audio/sfx_params.c | 2 +- src/audio/tables/sequence_table.c | 51 + tools/audio/audio_tablegen.c | 340 +- tools/audio/extraction/audio_extract.py | 2 +- .../audio/extraction/disassemble_sequence.py | 64 +- 34 files changed, 22983 insertions(+), 1657 deletions(-) create mode 100644 assets/audio/sequences/seq_0.prg.seq create mode 100644 assets/audio/sequences/seq_1.prg.seq create mode 100644 assets/audio/sequences/seq_109.prg.seq create mode 100644 assets/audio/sequences/seq_2.prg.seq delete mode 100644 data/audio_tables.rodata.s create mode 100644 include/audio/aseq.h create mode 100644 include/tables/sequence_table.h create mode 100644 src/audio/tables/sequence_table.c diff --git a/.gitattributes b/.gitattributes index dfe0770424..cbd25a6bf4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,6 @@ # Auto detect text files and perform LF normalization * text=auto +# Set browser syntax highlighting for certain files +*.inc linguist-language=gas +*.seq linguist-language=gas +include/audio/aseq.h linguist-language=gas diff --git a/Makefile b/Makefile index c1ff3df25e..7c45c4b626 100644 --- a/Makefile +++ b/Makefile @@ -210,6 +210,9 @@ SBC := tools/audio/sbc SFC := tools/audio/sfc SFPATCH := tools/audio/sfpatch ATBLGEN := tools/audio/atblgen +# We want linemarkers in sequence assembly files for better assembler error messages +SEQ_CPP := $(CPP) -x assembler-with-cpp -fno-dollars-in-identifiers +SEQ_CPPFLAGS := -D_LANGUAGE_ASEQ -DMML_VERSION=MML_VERSION_OOT -I include -I include/audio -I include/tables/sfx -I $(BUILD_DIR)/assets/audio/soundfonts SBCFLAGS := --matching SFCFLAGS := --matching @@ -282,10 +285,12 @@ ifneq ($(wildcard $(EXTRACTED_DIR)/assets/audio),) SAMPLE_EXTRACT_DIRS := $(shell find $(EXTRACTED_DIR)/assets/audio/samples -type d) SAMPLEBANK_EXTRACT_DIRS := $(shell find $(EXTRACTED_DIR)/assets/audio/samplebanks -type d) SOUNDFONT_EXTRACT_DIRS := $(shell find $(EXTRACTED_DIR)/assets/audio/soundfonts -type d) + SEQUENCE_EXTRACT_DIRS := $(shell find $(EXTRACTED_DIR)/assets/audio/sequences -type d) else SAMPLE_EXTRACT_DIRS := SAMPLEBANK_EXTRACT_DIRS := SOUNDFONT_EXTRACT_DIRS := + SEQUENCE_EXTRACT_DIRS := endif ifneq ($(wildcard assets/audio/samples),) @@ -306,6 +311,12 @@ else SOUNDFONT_DIRS := endif +ifneq ($(wildcard assets/audio/sequences),) + SEQUENCE_DIRS := $(shell find assets/audio/sequences -type d) +else + SEQUENCE_DIRS := +endif + SAMPLE_FILES := $(foreach dir,$(SAMPLE_DIRS),$(wildcard $(dir)/*.wav)) SAMPLE_EXTRACT_FILES := $(foreach dir,$(SAMPLE_EXTRACT_DIRS),$(wildcard $(dir)/*.wav)) AIFC_FILES := $(foreach f,$(SAMPLE_FILES),$(BUILD_DIR)/$(f:.wav=.aifc)) $(foreach f,$(SAMPLE_EXTRACT_FILES:.wav=.aifc),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) @@ -323,6 +334,13 @@ SOUNDFONT_O_FILES := $(foreach f,$(SOUNDFONT_BUILD_XMLS),$(f:.xml=.o)) SOUNDFONT_HEADERS := $(foreach f,$(SOUNDFONT_BUILD_XMLS),$(f:.xml=.h)) SOUNDFONT_DEP_FILES := $(foreach f,$(SOUNDFONT_O_FILES),$(f:.o=.d)) +SEQUENCE_FILES := $(foreach dir,$(SEQUENCE_DIRS),$(wildcard $(dir)/*.seq)) +SEQUENCE_EXTRACT_FILES := $(foreach dir,$(SEQUENCE_EXTRACT_DIRS),$(wildcard $(dir)/*.seq)) +SEQUENCE_O_FILES := $(foreach f,$(SEQUENCE_FILES),$(BUILD_DIR)/$(f:.seq=.o)) $(foreach f,$(SEQUENCE_EXTRACT_FILES:.seq=.o),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) +SEQUENCE_DEP_FILES := $(foreach f,$(SEQUENCE_O_FILES),$(f:.o=.d)) + +SEQUENCE_TABLE := include/tables/sequence_table.h + # create extracted directory $(shell mkdir -p $(EXTRACTED_DIR)) @@ -331,7 +349,7 @@ ifneq ($(wildcard $(EXTRACTED_DIR)/assets),) else ASSET_BIN_DIRS_EXTRACTED := endif -ASSET_BIN_DIRS_COMMITTED := $(shell find assets -type d -not -path "assets/xml*" -not -path assets/text) +ASSET_BIN_DIRS_COMMITTED := $(shell find assets -type d -not -path "assets/xml*" -not -path "assets/audio*" -not -path assets/text) ASSET_BIN_DIRS := $(ASSET_BIN_DIRS_EXTRACTED) $(ASSET_BIN_DIRS_COMMITTED) ASSET_FILES_BIN_EXTRACTED := $(foreach dir,$(ASSET_BIN_DIRS_EXTRACTED),$(wildcard $(dir)/*.bin)) @@ -381,6 +399,7 @@ $(shell mkdir -p $(foreach dir, \ $(SAMPLE_DIRS) \ $(SAMPLEBANK_DIRS) \ $(SOUNDFONT_DIRS) \ + $(SEQUENCE_DIRS) \ $(ASSET_BIN_DIRS_COMMITTED), \ $(BUILD_DIR)/$(dir))) ifneq ($(wildcard $(EXTRACTED_DIR)/assets),) @@ -388,6 +407,7 @@ $(shell mkdir -p $(foreach dir, \ $(SAMPLE_EXTRACT_DIRS) \ $(SAMPLEBANK_EXTRACT_DIRS) \ $(SOUNDFONT_EXTRACT_DIRS) \ + $(SEQUENCE_EXTRACT_DIRS) \ $(ASSET_BIN_DIRS_EXTRACTED), \ $(dir:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%))) endif @@ -594,8 +614,8 @@ $(ROMC): $(ROM) $(ELF) $(BUILD_DIR)/compress_ranges.txt $(PYTHON) -m ipl3checksum sum --cic 6105 --update $@ $(ELF): $(TEXTURE_FILES_OUT) $(ASSET_FILES_OUT) $(O_FILES) $(OVL_RELOC_FILES) $(LDSCRIPT) $(BUILD_DIR)/undefined_syms.txt \ - $(SAMPLEBANK_O_FILES) $(SOUNDFONT_O_FILES) \ - $(BUILD_DIR)/assets/audio/audiobank_padding.o + $(SAMPLEBANK_O_FILES) $(SOUNDFONT_O_FILES) $(SEQUENCE_O_FILES) \ + $(BUILD_DIR)/assets/audio/sequence_font_table.o $(BUILD_DIR)/assets/audio/audiobank_padding.o $(LD) -T $(LDSCRIPT) -T $(BUILD_DIR)/undefined_syms.txt --no-check-sections --accept-unknown-input-arch --emit-relocs -Map $(MAP) -o $@ ## Order-only prerequisites @@ -681,6 +701,8 @@ $(BUILD_DIR)/src/code/z_actor_dlftbls.o: include/tables/actor_table.h $(BUILD_DIR)/src/code/z_effect_soft_sprite_dlftbls.o: include/tables/effect_ss_table.h $(BUILD_DIR)/src/code/z_game_dlftbls.o: include/tables/gamestate_table.h $(BUILD_DIR)/src/code/z_scene_table.o: include/tables/scene_table.h include/tables/entrance_table.h +$(BUILD_DIR)/src/audio/general.o: $(SEQUENCE_TABLE) include/tables/sfx/*.h +$(BUILD_DIR)/src/audio/sfx_params.o: include/tables/sfx/*.h $(BUILD_DIR)/src/%.o: src/%.c ifneq ($(RUN_CC_CHECK),0) @@ -814,6 +836,22 @@ ifeq ($(AUDIO_BUILD_DEBUG),1) @(cmp $(@:.o=.bin) $(patsubst $(BUILD_DIR)/assets/audio/soundfonts/%,$(EXTRACTED_DIR)/baserom_audiotest/audiobank_files/%,$(@:.o=.bin)) && echo "$( rodata $(BUILD_DIR)/src/audio/tables/samplebank_table.o: src/audio/tables/samplebank_table.c $(BUILD_DIR)/assets/audio/samplebank_table.h +$(BUILD_DIR)/src/audio/tables/soundfont_table.o: src/audio/tables/soundfont_table.c $(BUILD_DIR)/assets/audio/soundfont_table.h $(SOUNDFONT_HEADERS) +$(BUILD_DIR)/src/audio/tables/sequence_table.o: src/audio/tables/sequence_table.c $(SEQUENCE_TABLE) + +$(BUILD_DIR)/src/audio/tables/sequence_table.o: CFLAGS += -I include/tables + +$(BUILD_DIR)/src/audio/tables/%.o: src/audio/tables/%.c ifneq ($(RUN_CC_CHECK),0) $(CC_CHECK) $< endif @@ -832,13 +884,8 @@ endif $(LD) -r -T linker_scripts/data_with_rodata.ld $(@:.o=.tmp) -o $@ @$(RM) $(@:.o=.tmp) -$(BUILD_DIR)/src/audio/tables/soundfont_table.o: src/audio/tables/soundfont_table.c $(BUILD_DIR)/assets/audio/soundfont_table.h $(SOUNDFONT_HEADERS) -ifneq ($(RUN_CC_CHECK),0) - $(CC_CHECK) $< -endif - $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $(@:.o=.tmp) $< - $(LD) -r -T linker_scripts/data_with_rodata.ld $(@:.o=.tmp) -o $@ - @$(RM) $(@:.o=.tmp) +$(BUILD_DIR)/assets/audio/sequence_font_table.o: $(BUILD_DIR)/assets/audio/sequence_font_table.s + $(AS) $(ASFLAGS) $< -o $@ # Extra audiobank padding that doesn't belong to any soundfont file $(BUILD_DIR)/assets/audio/audiobank_padding.o: diff --git a/assets/audio/sequences/seq_0.prg.seq b/assets/audio/sequences/seq_0.prg.seq new file mode 100644 index 0000000000..370dc9b3c6 --- /dev/null +++ b/assets/audio/sequences/seq_0.prg.seq @@ -0,0 +1,15302 @@ +#include "aseq.h" +#include "Soundfont_1.h" +#include "Soundfont_0.h" + +#define IO_PORT_SFX_INDEX_LOBITS IO_PORT_4 +#define IO_PORT_SFX_INDEX_HIBITS IO_PORT_5 + +// Provide the sfx ids for use as constants +#define DEFINE_SFX(channel, sfxId, importance, distParam, randParam, flags) \ + .internal sfxId; \ + .set sfxId, __SFX_ID_CTR; \ + .set __SFX_ID_CTR, __SFX_ID_CTR + 1 + +.set NA_SE_NONE, 0 +.internal NA_SE_NONE + +.set __SFX_ID_CTR, 0x0800 +#include "playerbank_table.h" +.set PLAYERBANK_TABLE_SIZE, __SFX_ID_CTR - 0x0800 +.set __SFX_ID_CTR, 0x1800 +#include "itembank_table.h" +.set ITEMBANK_TABLE_SIZE, __SFX_ID_CTR - 0x1800 +.set __SFX_ID_CTR, 0x2800 +#include "environmentbank_table.h" +.set ENVIRONMENTBANK_TABLE_SIZE, __SFX_ID_CTR - 0x2800 +.set __SFX_ID_CTR, 0x3800 +#include "enemybank_table.h" +.set ENEMYBANK_TABLE_SIZE, __SFX_ID_CTR - 0x3800 +.set __SFX_ID_CTR, 0x4800 +#include "systembank_table.h" +.set SYSTEMBANK_TABLE_SIZE, __SFX_ID_CTR - 0x4800 +.set __SFX_ID_CTR, 0x5800 +#include "ocarinabank_table.h" +.set OCARINABANK_TABLE_SIZE, __SFX_ID_CTR - 0x5800 +.set __SFX_ID_CTR, 0x6800 +#include "voicebank_table.h" +.set VOICEBANK_TABLE_SIZE, __SFX_ID_CTR - 0x6800 +.internal __SFX_ID_CTR + +#undef DEFINE_SFX + +.startseq Sequence_0 + +.sequence SEQ_0000 +/* 0x0000 [0xD3 0x60 ] */ mutebhv 0x60 +/* 0x0002 [0xD5 0x00 ] */ mutescale 0 +/* 0x0004 [0xDB 0x7F ] */ vol 127 +/* 0x0006 [0xDD 0x78 ] */ tempo 120 +/* 0x0008 [0xD7 0x0F 0xFF ] */ initchan 0b0000111111111111 +/* 0x000B [0x90 0x00 0x8E ] */ ldchan 0, playerbank_handler_1 +/* 0x000E [0x91 0x00 0x93 ] */ ldchan 1, playerbank_handler_2 +/* 0x0011 [0x92 0x00 0x98 ] */ ldchan 2, playerbank_handler_3 +/* 0x0014 [0x93 0x0E 0xA0 ] */ ldchan 3, itembank_handler_1 +/* 0x0017 [0x94 0x0E 0xA5 ] */ ldchan 4, itembank_handler_2 +/* 0x001A [0x95 0x16 0x80 ] */ ldchan 5, environmentbank_handler_1 +/* 0x001D [0x96 0x16 0x85 ] */ ldchan 6, environmentbank_handler_2 +/* 0x0020 [0x97 0x16 0x8A ] */ ldchan 7, environmentbank_handler_3 +/* 0x0023 [0x98 0x30 0xF0 ] */ ldchan 8, enemybank_handler_1 +/* 0x0026 [0x99 0x30 0xF5 ] */ ldchan 9, enemybank_handler_2 +/* 0x0029 [0x9A 0x30 0xFA ] */ ldchan 10, enemybank_handler_3 +/* 0x002C [0x9B 0x56 0xF0 ] */ ldchan 11, systembank_handler_1 +/* 0x002F [0x9C 0x56 0xF0 ] */ ldchan 12, systembank_handler_1 +/* 0x0032 [0x9D 0x5E 0x9D ] */ ldchan 13, ocarinabank_handler_1 +/* 0x0035 [0x9E 0x5F 0xA0 ] */ ldchan 14, voicebank_handler_1 +/* 0x0038 [0x9F 0x5F 0xA5 ] */ ldchan 15, voicebank_handler_2 +forever: +/* 0x003B [0xFD 0xFF 0xD0 ] */ delay 32720 +/* 0x003E [0xF4 0xFB ] */ rjump forever + +.channel CHAN_0040 +/* 0x0040 [0xC7 0x00 0x00 0x45 ] */ stseq 0, STSEQ_HERE + STSEQ_LOOP_COUNT +/* 0x0044 [0xF8 0x14 ] */ loop 20 +/* 0x0046 [0xF4 0x16 ] */ rjump CHAN_005E + +.channel CHAN_0048 +/* 0x0048 [0xC7 0x00 0x00 0x4D ] */ stseq 0, STSEQ_HERE + STSEQ_LOOP_COUNT +/* 0x004C [0xF8 0x14 ] */ loop 20 +/* 0x004E [0x63 ] */ ldio IO_PORT_3 +/* 0x004F [0xC7 0x00 0x00 0x54 ] */ stseq 0, STSEQ_HERE + STSEQ_FILTER_IDX +/* 0x0053 [0xB3 0x00 ] */ filter 0, 0 +/* 0x0055 [0x62 ] */ ldio IO_PORT_2 +/* 0x0056 [0xF2 0x06 ] */ rbltz CHAN_005E +/* 0x0058 [0xC7 0x00 0x00 0x5D ] */ stseq 0, STSEQ_HERE + STSEQ_VOL +/* 0x005C [0xDF 0x7F ] */ vol 127 +CHAN_005E: +/* 0x005E [0xFE ] */ delay1 +/* 0x005F [0x60 ] */ ldio IO_PORT_0 +/* 0x0060 [0x70 ] */ stio IO_PORT_0 +/* 0x0061 [0xC8 0xFF ] */ sub 255 +/* 0x0063 [0xF3 0x02 ] */ rbeqz CHAN_0067 +/* 0x0065 [0xF4 0x02 ] */ rjump CHAN_0069 + +CHAN_0067: +/* 0x0067 [0xF7 ] */ loopend +/* 0x0068 [0xFF ] */ end + +CHAN_0069: +/* 0x0069 [0x60 ] */ ldio IO_PORT_0 +/* 0x006A [0x70 ] */ stio IO_PORT_0 +/* 0x006B [0xF6 ] */ break +/* 0x006C [0xF6 ] */ break +/* 0x006D [0x90 ] */ dellayer 0 +/* 0x006E [0x91 ] */ dellayer 1 +/* 0x006F [0x92 ] */ dellayer 2 +/* 0x0070 [0x93 ] */ dellayer 3 +/* 0x0071 [0xFF ] */ end + +.channel CHAN_0072 +/* 0x0072 [0xC4 ] */ noshort +/* 0x0073 [0xCA 0x20 ] */ mutebhv 0x20 +/* 0x0075 [0xD0 0x80 ] */ effects TRUE, 0, 0, 0, 0, 0 +/* 0x0077 [0xE9 0x0E ] */ notepri 0, 14 +/* 0x0079 [0xE5 0x01 ] */ reverbidx 1 +/* 0x007B [0xFF ] */ end + +.channel CHAN_007C +/* 0x007C [0x90 ] */ dellayer 0 +/* 0x007D [0x91 ] */ dellayer 1 +/* 0x007E [0xCC 0x00 ] */ ldi 0 +/* 0x0080 [0xED 0x00 ] */ gain 0 +/* 0x0082 [0x71 ] */ stio IO_PORT_1 +/* 0x0083 [0xFF ] */ end + +.channel CHAN_0084 +/* 0x0084 [0x62 ] */ ldio IO_PORT_2 +/* 0x0085 [0xF2 0x06 ] */ rbltz CHAN_008D +/* 0x0087 [0xC7 0x00 0x00 0x8C ] */ stseq 0, STSEQ_HERE + STSEQ_VOL +/* 0x008B [0xDF 0x7F ] */ vol 127 +CHAN_008D: +/* 0x008D [0xFF ] */ end + +.channel playerbank_handler_1 +/* 0x008E [0xB0 0x0E 0x70 ] */ ldfilter FILTER_0E70 +/* 0x0091 [0xF4 0x08 ] */ rjump playerbank_handler_impl + +.channel playerbank_handler_2 +/* 0x0093 [0xB0 0x0E 0x80 ] */ ldfilter FILTER_0E80 +/* 0x0096 [0xF4 0x03 ] */ rjump playerbank_handler_impl + +.channel playerbank_handler_3 +/* 0x0098 [0xB0 0x0E 0x90 ] */ ldfilter FILTER_0E90 +playerbank_handler_impl: +/* 0x009B [0xFC 0x00 0x72 ] */ call CHAN_0072 +/* 0x009E [0xB3 0x00 ] */ filter 0, 0 +/* 0x00A0 [0xC6 0x00 ] */ font Soundfont_0_ID +/* 0x00A2 [0xDC 0x7F ] */ panweight 127 +CHAN_00A4: +/* 0x00A4 [0xFE ] */ delay1 +/* 0x00A5 [0x60 ] */ ldio IO_PORT_0 +/* 0x00A6 [0xC8 0x01 ] */ sub 1 +/* 0x00A8 [0xFA 0x00 0xAE ] */ beqz CHAN_00AE +/* 0x00AB [0xFB 0x00 0xA4 ] */ jump CHAN_00A4 + +CHAN_00AE: +/* 0x00AE [0xFC 0x00 0x7C ] */ call CHAN_007C +/* 0x00B1 [0x92 ] */ dellayer 2 +/* 0x00B2 [0xD8 0x00 ] */ vibdepth 0 +/* 0x00B4 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x00B5 [0xF5 0x00 0xC0 ] */ bgez CHAN_00C0 +/* 0x00B8 [0xC9 0x7F ] */ and 127 +/* 0x00BA [0xC2 0x01 0xE1 ] */ dyntbl playerbank_table + 2 * 1 * 128 +/* 0x00BD [0xFB 0x00 0xC3 ] */ jump CHAN_00C3 + +CHAN_00C0: +/* 0x00C0 [0xC2 0x00 0xE1 ] */ dyntbl playerbank_table + 2 * 0 * 128 +CHAN_00C3: +/* 0x00C3 [0xE4 ] */ dyncall +CHAN_00C4: +/* 0x00C4 [0x63 ] */ ldio IO_PORT_3 +/* 0x00C5 [0xC7 0x00 0x00 0xCA ] */ stseq 0, STSEQ_HERE + STSEQ_FILTER_IDX +/* 0x00C9 [0xB3 0x0F ] */ filter 0, 15 +/* 0x00CB [0xFC 0x00 0x84 ] */ call CHAN_0084 +/* 0x00CE [0xFE ] */ delay1 +/* 0x00CF [0x60 ] */ ldio IO_PORT_0 +/* 0x00D0 [0xF3 0x0A ] */ rbeqz CHAN_00DC +/* 0x00D2 [0xF2 0x02 ] */ rbltz CHAN_00D6 +/* 0x00D4 [0xF4 0xD8 ] */ rjump CHAN_00AE + +CHAN_00D6: +/* 0x00D6 [0x80 ] */ testlayer 0 +/* 0x00D7 [0xF3 0xEB ] */ rbeqz CHAN_00C4 +/* 0x00D9 [0xCC 0xFF ] */ ldi 255 +/* 0x00DB [0x71 ] */ stio IO_PORT_1 +CHAN_00DC: +/* 0x00DC [0x90 ] */ dellayer 0 +/* 0x00DD [0x91 ] */ dellayer 1 +/* 0x00DE [0x92 ] */ dellayer 2 +/* 0x00DF [0xF4 0xC3 ] */ rjump CHAN_00A4 + +#define DEFINE_SFX(lblName, sfxId, priority, decay, rand, flags) \ + entry lblName + +.table_unaligned playerbank_table + #include "playerbank_table.h" + +#undef DEFINE_SFX + +.channel CHAN_02A1 +/* 0x02A1 [0x88 0x02 0xA7 ] */ ldlayer 0, LAYER_02A7 +/* 0x02A4 [0xFF ] */ end + +.layer LAYER_02A5 +/* 0x02A5 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_02A7 +/* 0x02A7 [0xC6 0x00 ] */ instr SF0_INST_0 +/* 0x02A9 [0x5F 0x15 0x38 ] */ notedv PITCH_E3, 21, 56 +/* 0x02AC [0xFF ] */ end + +.layer LAYER_02AD +/* 0x02AD [0xC2 0xFA ] */ transpose -6 +/* 0x02AF [0xC0 0x0D ] */ ldelay 13 +/* 0x02B1 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x02B3 [0x29 0x04 0x24 0x7F ] */ notedvg PITCH_D4, 4, 36, 127 +/* 0x02B7 [0xC6 0x17 ] */ instr SF0_INST_23 +/* 0x02B9 [0x62 0x04 0x38 ] */ notedv PITCH_G3, 4, 56 +/* 0x02BC [0xFF ] */ end + +.channel CHAN_02BD +/* 0x02BD [0x88 0x02 0xC3 ] */ ldlayer 0, LAYER_02C3 +/* 0x02C0 [0xFF ] */ end + +.layer LAYER_02C1 +/* 0x02C1 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_02C3 +/* 0x02C3 [0xC6 0x01 ] */ instr SF0_INST_1 +/* 0x02C5 [0x64 0x15 0x38 ] */ notedv PITCH_A3, 21, 56 +/* 0x02C8 [0xFF ] */ end + +.channel CHAN_02C9 +/* 0x02C9 [0xCC 0x14 ] */ ldi 20 +/* 0x02CB [0x71 ] */ stio IO_PORT_1 +/* 0x02CC [0x88 0x02 0xD2 ] */ ldlayer 0, LAYER_02D2 +/* 0x02CF [0xFF ] */ end + +.layer LAYER_02D0 +/* 0x02D0 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_02D2 +/* 0x02D2 [0xC6 0x02 ] */ instr SF0_INST_2 +/* 0x02D4 [0x61 0x15 0x5F ] */ notedv PITCH_GF3, 21, 95 +/* 0x02D7 [0xFF ] */ end + +.channel CHAN_02D8 +/* 0x02D8 [0x88 0x02 0xDE ] */ ldlayer 0, LAYER_02DE +/* 0x02DB [0xFF ] */ end + +.layer LAYER_02DC +/* 0x02DC [0xC2 0xFE ] */ transpose -2 +.layer LAYER_02DE +/* 0x02DE [0xC6 0x03 ] */ instr SF0_INST_3 +/* 0x02E0 [0xC7 0x82 0x1F 0xFF ] */ portamento 0x82, PITCH_E3, 255 +/* 0x02E4 [0x64 0x2D 0x5D ] */ notedv PITCH_A3, 45, 93 +/* 0x02E7 [0xFF ] */ end + +.channel CHAN_02E8 +/* 0x02E8 [0x88 0x02 0xEE ] */ ldlayer 0, LAYER_02EE +/* 0x02EB [0xFF ] */ end + +.layer LAYER_02EC +/* 0x02EC [0xC2 0xFE ] */ transpose -2 +.layer LAYER_02EE +/* 0x02EE [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x02F0 [0x64 0x1E 0x38 ] */ notedv PITCH_A3, 30, 56 +/* 0x02F3 [0xFF ] */ end + +.channel CHAN_02F4 +/* 0x02F4 [0x88 0x02 0xFA ] */ ldlayer 0, LAYER_02FA +/* 0x02F7 [0xFF ] */ end + +.layer LAYER_02F8 +/* 0x02F8 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_02FA +/* 0x02FA [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x02FC [0x60 0x1E 0x38 ] */ notedv PITCH_F3, 30, 56 +/* 0x02FF [0xFF ] */ end + +.channel CHAN_0300 +/* 0x0300 [0x88 0x03 0x06 ] */ ldlayer 0, LAYER_0306 +/* 0x0303 [0xFF ] */ end + +.layer LAYER_0304 +/* 0x0304 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0306 +/* 0x0306 [0xC6 0x05 ] */ instr SF0_INST_5 +/* 0x0308 [0x60 0x06 0x50 ] */ notedv PITCH_F3, 6, 80 +/* 0x030B [0xC6 0x07 ] */ instr SF0_INST_7 +/* 0x030D [0xCF 0xEB ] */ releaserate 235 +/* 0x030F [0x66 0x30 0x50 ] */ notedv PITCH_B3, 48, 80 +/* 0x0312 [0xFF ] */ end + +.channel CHAN_0313 +/* 0x0313 [0x88 0x03 0x19 ] */ ldlayer 0, LAYER_0319 +/* 0x0316 [0xFF ] */ end + +.layer LAYER_0317 +/* 0x0317 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0319 +/* 0x0319 [0xC6 0x00 ] */ instr SF0_INST_0 +/* 0x031B [0x5B 0x04 0x2A ] */ notedv PITCH_C3, 4, 42 +/* 0x031E [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x0320 [0x55 0x06 0x38 ] */ notedv PITCH_GF2, 6, 56 +/* 0x0323 [0xC6 0x23 ] */ instr SF0_INST_35 +/* 0x0325 [0xC7 0x81 0x2C 0xFF ] */ portamento 0x81, PITCH_F4, 255 +/* 0x0329 [0x60 0x16 0x40 ] */ notedv PITCH_F3, 22, 64 +/* 0x032C [0xFF ] */ end + +.channel CHAN_032D +/* 0x032D [0x88 0x03 0x33 ] */ ldlayer 0, LAYER_0333 +/* 0x0330 [0xFF ] */ end + +.layer LAYER_0331 +/* 0x0331 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0333 +/* 0x0333 [0xC6 0x05 ] */ instr SF0_INST_5 +/* 0x0335 [0xCB 0x66 0xB0 0xFA ] */ env ENVELOPE_66B0, 250 +/* 0x0339 [0x64 0x15 0x46 ] */ notedv PITCH_A3, 21, 70 +/* 0x033C [0xFF ] */ end + +.channel CHAN_033D +/* 0x033D [0x88 0x03 0x43 ] */ ldlayer 0, LAYER_0343 +/* 0x0340 [0xFF ] */ end + +.layer LAYER_0341 +/* 0x0341 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0343 +/* 0x0343 [0xC6 0x06 ] */ instr SF0_INST_6 +/* 0x0345 [0x6D 0x00 0x50 ] */ notedv PITCH_GF4, 0, 80 +/* 0x0348 [0xFF ] */ end + +.channel CHAN_0349 +/* 0x0349 [0x88 0x03 0x4F ] */ ldlayer 0, LAYER_034F +/* 0x034C [0xFF ] */ end + +.layer LAYER_034D +/* 0x034D [0xC2 0xFE ] */ transpose -2 +.layer LAYER_034F +/* 0x034F [0xC6 0x0B ] */ instr SF0_INST_11 +/* 0x0351 [0x63 0x14 0x56 ] */ notedv PITCH_AF3, 20, 86 +/* 0x0354 [0xFF ] */ end + +.channel CHAN_0355 +/* 0x0355 [0x88 0x03 0x5B ] */ ldlayer 0, LAYER_035B +/* 0x0358 [0xFF ] */ end + +.layer LAYER_0359 +/* 0x0359 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_035B +/* 0x035B [0xC6 0x16 ] */ instr SF0_INST_22 +/* 0x035D [0x5B 0x18 0x4C ] */ notedv PITCH_C3, 24, 76 +/* 0x0360 [0xFF ] */ end + +.channel CHAN_0361 +/* 0x0361 [0x88 0x03 0x6A ] */ ldlayer 0, LAYER_036A +/* 0x0364 [0x89 0x02 0xAD ] */ ldlayer 1, LAYER_02AD +/* 0x0367 [0xFF ] */ end + +.layer LAYER_0368 +/* 0x0368 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_036A +/* 0x036A [0xC6 0x01 ] */ instr SF0_INST_1 +/* 0x036C [0x1C 0x06 0x6E 0x7F ] */ notedvg PITCH_DF3, 6, 110, 127 +/* 0x0370 [0x47 0x0A 0x6E ] */ notedv PITCH_E1, 10, 110 +/* 0x0373 [0xC0 0x05 ] */ ldelay 5 +/* 0x0375 [0xFF ] */ end + +.channel CHAN_0376 +/* 0x0376 [0xC1 0x18 ] */ instr SF0_INST_24 +/* 0x0378 [0x88 0x03 0x7C ] */ ldlayer 0, LAYER_037C +/* 0x037B [0xFF ] */ end + +.layer LAYER_037C +/* 0x037C [0x5F 0x28 0x60 ] */ notedv PITCH_E3, 40, 96 +/* 0x037F [0xFF ] */ end + +.channel CHAN_0380 +/* 0x0380 [0x88 0x03 0x84 ] */ ldlayer 0, LAYER_0384 +/* 0x0383 [0xFF ] */ end + +.layer LAYER_0384 +/* 0x0384 [0xC6 0x01 ] */ instr SF0_INST_1 +/* 0x0386 [0x58 0x2A 0x38 ] */ notedv PITCH_A2, 42, 56 +/* 0x0389 [0xFF ] */ end + +.channel CHAN_038A +/* 0x038A [0x88 0x03 0x90 ] */ ldlayer 0, LAYER_0390 +/* 0x038D [0xFF ] */ end + +.layer LAYER_038E +/* 0x038E [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0390 +/* 0x0390 [0xC6 0x19 ] */ instr SF0_INST_25 +/* 0x0392 [0x64 0x15 0x55 ] */ notedv PITCH_A3, 21, 85 +/* 0x0395 [0xFF ] */ end + +.channel CHAN_0396 +/* 0x0396 [0xC1 0x00 ] */ instr SF0_INST_0 +/* 0x0398 [0x88 0x03 0xA1 ] */ ldlayer 0, LAYER_03A1 +/* 0x039B [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x039E [0xFF ] */ end + +.layer LAYER_039F +/* 0x039F [0xC2 0xFE ] */ transpose -2 +.layer LAYER_03A1 +/* 0x03A1 [0x5F 0x0A 0x3F ] */ notedv PITCH_E3, 10, 63 +/* 0x03A4 [0x67 0x0A 0x3F ] */ notedv PITCH_C4, 10, 63 +/* 0x03A7 [0xC0 0x07 ] */ ldelay 7 +/* 0x03A9 [0xFF ] */ end + +.layer LAYER_03AA +/* 0x03AA [0xC0 0x07 ] */ ldelay 7 +/* 0x03AC [0xC6 0x20 ] */ instr SF0_INST_32 +/* 0x03AE [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x03B2 [0x33 0x06 0x3C 0x7F ] */ notedvg PITCH_C5, 6, 60, 127 +/* 0x03B6 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x03B8 [0x2C 0x04 0x30 0x7F ] */ notedvg PITCH_F4, 4, 48, 127 +/* 0x03BC [0xC6 0x17 ] */ instr SF0_INST_23 +/* 0x03BE [0x60 0x05 0x37 ] */ notedv PITCH_F3, 5, 55 +/* 0x03C1 [0x66 0x05 0x37 ] */ notedv PITCH_B3, 5, 55 +/* 0x03C4 [0xFF ] */ end + +.channel CHAN_03C5 +/* 0x03C5 [0x88 0x03 0xCE ] */ ldlayer 0, LAYER_03CE +/* 0x03C8 [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x03CB [0xFF ] */ end + +.layer LAYER_03CC +/* 0x03CC [0xC2 0xFE ] */ transpose -2 +.layer LAYER_03CE +/* 0x03CE [0xC6 0x01 ] */ instr SF0_INST_1 +/* 0x03D0 [0x64 0x0A 0x3F ] */ notedv PITCH_A3, 10, 63 +/* 0x03D3 [0x6C 0x0A 0x3F ] */ notedv PITCH_F4, 10, 63 +/* 0x03D6 [0xC0 0x07 ] */ ldelay 7 +/* 0x03D8 [0xFF ] */ end + +.channel CHAN_03D9 +/* 0x03D9 [0xCC 0x14 ] */ ldi 20 +/* 0x03DB [0x71 ] */ stio IO_PORT_1 +/* 0x03DC [0x88 0x03 0xE5 ] */ ldlayer 0, LAYER_03E5 +/* 0x03DF [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x03E2 [0xFF ] */ end + +.layer LAYER_03E3 +/* 0x03E3 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_03E5 +/* 0x03E5 [0xC6 0x02 ] */ instr SF0_INST_2 +/* 0x03E7 [0x21 0x0A 0x5F 0x7F ] */ notedvg PITCH_GF3, 10, 95, 127 +/* 0x03EB [0x26 0x0A 0x5F 0x7F ] */ notedvg PITCH_B3, 10, 95, 127 +/* 0x03EF [0xC0 0x07 ] */ ldelay 7 +/* 0x03F1 [0xFF ] */ end + +.channel CHAN_03F2 +/* 0x03F2 [0x88 0x03 0xFB ] */ ldlayer 0, LAYER_03FB +/* 0x03F5 [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x03F8 [0xFF ] */ end + +.layer LAYER_03F9 +/* 0x03F9 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_03FB +/* 0x03FB [0xC6 0x03 ] */ instr SF0_INST_3 +/* 0x03FD [0x60 0x0A 0x3F ] */ notedv PITCH_F3, 10, 63 +/* 0x0400 [0x69 0x0A 0x3F ] */ notedv PITCH_D4, 10, 63 +/* 0x0403 [0xC0 0x07 ] */ ldelay 7 +/* 0x0405 [0xFF ] */ end + +.channel CHAN_0406 +/* 0x0406 [0x88 0x04 0x0F ] */ ldlayer 0, LAYER_040F +/* 0x0409 [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x040C [0xFF ] */ end + +.layer LAYER_040D +/* 0x040D [0xC2 0xFE ] */ transpose -2 +.layer LAYER_040F +/* 0x040F [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x0411 [0x64 0x0A 0x3F ] */ notedv PITCH_A3, 10, 63 +/* 0x0414 [0x6C 0x1E 0x3F ] */ notedv PITCH_F4, 30, 63 +/* 0x0417 [0xFF ] */ end + +.channel CHAN_0418 +/* 0x0418 [0x88 0x04 0x21 ] */ ldlayer 0, LAYER_0421 +/* 0x041B [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x041E [0xFF ] */ end + +.layer LAYER_041F +/* 0x041F [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0421 +/* 0x0421 [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x0423 [0x60 0x0A 0x3F ] */ notedv PITCH_F3, 10, 63 +/* 0x0426 [0x69 0x1E 0x3F ] */ notedv PITCH_D4, 30, 63 +/* 0x0429 [0xFF ] */ end + +.channel CHAN_042A +/* 0x042A [0x88 0x04 0x33 ] */ ldlayer 0, LAYER_0433 +/* 0x042D [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x0430 [0xFF ] */ end + +.layer LAYER_0431 +/* 0x0431 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0433 +/* 0x0433 [0xC6 0x05 ] */ instr SF0_INST_5 +/* 0x0435 [0x5F 0x06 0x50 ] */ notedv PITCH_E3, 6, 80 +/* 0x0438 [0xC6 0x07 ] */ instr SF0_INST_7 +/* 0x043A [0xCF 0xE1 ] */ releaserate 225 +/* 0x043C [0x64 0x0A 0x4B ] */ notedv PITCH_A3, 10, 75 +/* 0x043F [0x6B 0x30 0x50 ] */ notedv PITCH_E4, 48, 80 +/* 0x0442 [0xFF ] */ end + +.channel CHAN_0443 +/* 0x0443 [0x88 0x04 0x4C ] */ ldlayer 0, LAYER_044C +/* 0x0446 [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x0449 [0xFF ] */ end + +.layer LAYER_044A +/* 0x044A [0xC2 0xFE ] */ transpose -2 +.layer LAYER_044C +/* 0x044C [0xC6 0x00 ] */ instr SF0_INST_0 +/* 0x044E [0x59 0x04 0x2D ] */ notedv PITCH_BF2, 4, 45 +/* 0x0451 [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x0453 [0x56 0x06 0x3F ] */ notedv PITCH_G2, 6, 63 +/* 0x0456 [0xC6 0x23 ] */ instr SF0_INST_35 +/* 0x0458 [0xC7 0x81 0x2A 0xFF ] */ portamento 0x81, PITCH_EF4, 255 +/* 0x045C [0x5F 0x0E 0x31 ] */ notedv PITCH_E3, 14, 49 +/* 0x045F [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x0461 [0x5E 0x0E 0x3F ] */ notedv PITCH_EF3, 14, 63 +/* 0x0464 [0xFF ] */ end + +.channel CHAN_0465 +/* 0x0465 [0x88 0x04 0x6E ] */ ldlayer 0, LAYER_046E +/* 0x0468 [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x046B [0xFF ] */ end + +.layer LAYER_046C +/* 0x046C [0xC2 0xFE ] */ transpose -2 +.layer LAYER_046E +/* 0x046E [0xC6 0x05 ] */ instr SF0_INST_5 +/* 0x0470 [0x62 0x0A 0x3F ] */ notedv PITCH_G3, 10, 63 +/* 0x0473 [0x6C 0x0A 0x3F ] */ notedv PITCH_F4, 10, 63 +/* 0x0476 [0xC0 0x07 ] */ ldelay 7 +/* 0x0478 [0xFF ] */ end + +.channel CHAN_0479 +/* 0x0479 [0x88 0x04 0x82 ] */ ldlayer 0, LAYER_0482 +/* 0x047C [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x047F [0xFF ] */ end + +.layer LAYER_0480 +/* 0x0480 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0482 +/* 0x0482 [0xC6 0x06 ] */ instr SF0_INST_6 +/* 0x0484 [0x67 0x0A 0x4E ] */ notedv PITCH_C4, 10, 78 +/* 0x0487 [0x70 0x0A 0x4E ] */ notedv PITCH_A4, 10, 78 +/* 0x048A [0xC0 0x07 ] */ ldelay 7 +/* 0x048C [0xFF ] */ end + +.channel CHAN_048D +/* 0x048D [0x88 0x04 0x96 ] */ ldlayer 0, LAYER_0496 +/* 0x0490 [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x0493 [0xFF ] */ end + +.layer LAYER_0494 +/* 0x0494 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0496 +/* 0x0496 [0xC6 0x0B ] */ instr SF0_INST_11 +/* 0x0498 [0x63 0x0A 0x49 ] */ notedv PITCH_AF3, 10, 73 +/* 0x049B [0x6C 0x1E 0x49 ] */ notedv PITCH_F4, 30, 73 +/* 0x049E [0xFF ] */ end + +.channel CHAN_049F +/* 0x049F [0x88 0x04 0xA8 ] */ ldlayer 0, LAYER_04A8 +/* 0x04A2 [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x04A5 [0xFF ] */ end + +.layer LAYER_04A6 +/* 0x04A6 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_04A8 +/* 0x04A8 [0xC6 0x16 ] */ instr SF0_INST_22 +/* 0x04AA [0x60 0x0A 0x3F ] */ notedv PITCH_F3, 10, 63 +/* 0x04AD [0x66 0x19 0x3F ] */ notedv PITCH_B3, 25, 63 +/* 0x04B0 [0xFF ] */ end + +.channel CHAN_04B1 +/* 0x04B1 [0xC1 0x18 ] */ instr SF0_INST_24 +/* 0x04B3 [0x88 0x04 0xB7 ] */ ldlayer 0, LAYER_04B7 +/* 0x04B6 [0xFF ] */ end + +.layer LAYER_04B7 +/* 0x04B7 [0x5E 0x0A 0x60 ] */ notedv PITCH_EF3, 10, 96 +/* 0x04BA [0x64 0x18 0x60 ] */ notedv PITCH_A3, 24, 96 +/* 0x04BD [0xFF ] */ end + +/* 0x04BE [0xC2 0x02 ] */ transpose 2 +/* 0x04C0 [0xC7 0x85 0x1A 0xFF ] */ portamento 0x85, PITCH_B2, 255 +/* 0x04C4 [0x52 0x0A 0x50 ] */ notedv PITCH_EF2, 10, 80 +/* 0x04C7 [0xC4 ] */ legato +/* 0x04C8 [0xC2 0x05 ] */ transpose 5 +/* 0x04CA [0xC7 0x85 0x1A 0xFF ] */ portamento 0x85, PITCH_B2, 255 +/* 0x04CE [0x52 0x0F 0x50 ] */ notedv PITCH_EF2, 15, 80 +/* 0x04D1 [0x52 0x12 0x50 ] */ notedv PITCH_EF2, 18, 80 +/* 0x04D4 [0x56 0x0F 0x50 ] */ notedv PITCH_G2, 15, 80 +/* 0x04D7 [0xFF ] */ end + +.channel CHAN_04D8 +/* 0x04D8 [0x88 0x04 0xDF ] */ ldlayer 0, LAYER_04DF +/* 0x04DB [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x04DE [0xFF ] */ end + +.layer LAYER_04DF +/* 0x04DF [0xC6 0x01 ] */ instr SF0_INST_1 +/* 0x04E1 [0x58 0x12 0x3F ] */ notedv PITCH_A2, 18, 63 +/* 0x04E4 [0x60 0x12 0x3F ] */ notedv PITCH_F3, 18, 63 +/* 0x04E7 [0xC0 0x07 ] */ ldelay 7 +/* 0x04E9 [0xFF ] */ end + +.channel CHAN_04EA +/* 0x04EA [0x88 0x04 0xF3 ] */ ldlayer 0, LAYER_04F3 +/* 0x04ED [0x89 0x03 0xAA ] */ ldlayer 1, LAYER_03AA +/* 0x04F0 [0xFF ] */ end + +.layer LAYER_04F1 +/* 0x04F1 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_04F3 +/* 0x04F3 [0xC6 0x19 ] */ instr SF0_INST_25 +/* 0x04F5 [0x5F 0x07 0x5F ] */ notedv PITCH_E3, 7, 95 +/* 0x04F8 [0x72 0x12 0x5F ] */ notedv PITCH_B4, 18, 95 +/* 0x04FB [0xC0 0x07 ] */ ldelay 7 +/* 0x04FD [0xFF ] */ end + +.channel CHAN_04FE +/* 0x04FE [0x88 0x05 0x07 ] */ ldlayer 0, LAYER_0507 +/* 0x0501 [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x0504 [0xFF ] */ end + +.layer LAYER_0505 +/* 0x0505 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0507 +/* 0x0507 [0xC6 0x00 ] */ instr SF0_INST_0 +/* 0x0509 [0x6B 0x0A 0x4B ] */ notedv PITCH_E4, 10, 75 +/* 0x050C [0x5F 0x0A 0x4B ] */ notedv PITCH_E3, 10, 75 +/* 0x050F [0xC0 0x07 ] */ ldelay 7 +/* 0x0511 [0xFF ] */ end + +.layer LAYER_0512 +/* 0x0512 [0xC0 0x07 ] */ ldelay 7 +/* 0x0514 [0xC6 0x20 ] */ instr SF0_INST_32 +/* 0x0516 [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x051A [0x33 0x06 0x27 0x7F ] */ notedvg PITCH_C5, 6, 39, 127 +/* 0x051E [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x0520 [0x29 0x04 0x31 0x7F ] */ notedvg PITCH_D4, 4, 49, 127 +/* 0x0524 [0xC6 0x17 ] */ instr SF0_INST_23 +/* 0x0526 [0x66 0x05 0x27 ] */ notedv PITCH_B3, 5, 39 +/* 0x0529 [0x60 0x05 0x27 ] */ notedv PITCH_F3, 5, 39 +/* 0x052C [0xFF ] */ end + +.channel CHAN_052D +/* 0x052D [0x88 0x05 0x36 ] */ ldlayer 0, LAYER_0536 +/* 0x0530 [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x0533 [0xFF ] */ end + +.layer LAYER_0534 +/* 0x0534 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0536 +/* 0x0536 [0xC6 0x01 ] */ instr SF0_INST_1 +/* 0x0538 [0x70 0x0A 0x4B ] */ notedv PITCH_A4, 10, 75 +/* 0x053B [0x64 0x0A 0x4B ] */ notedv PITCH_A3, 10, 75 +/* 0x053E [0xFF ] */ end + +.channel CHAN_053F +/* 0x053F [0xCC 0x14 ] */ ldi 20 +/* 0x0541 [0x71 ] */ stio IO_PORT_1 +/* 0x0542 [0x88 0x05 0x4B ] */ ldlayer 0, LAYER_054B +/* 0x0545 [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x0548 [0xFF ] */ end + +.layer LAYER_0549 +/* 0x0549 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_054B +/* 0x054B [0xC6 0x02 ] */ instr SF0_INST_2 +/* 0x054D [0x2D 0x0A 0x65 0x40 ] */ notedvg PITCH_GF4, 10, 101, 64 +/* 0x0551 [0x21 0x0A 0x65 0x40 ] */ notedvg PITCH_GF3, 10, 101, 64 +/* 0x0555 [0xC0 0x07 ] */ ldelay 7 +/* 0x0557 [0xFF ] */ end + +.channel CHAN_0558 +/* 0x0558 [0x88 0x05 0x61 ] */ ldlayer 0, LAYER_0561 +/* 0x055B [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x055E [0xFF ] */ end + +.layer LAYER_055F +/* 0x055F [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0561 +/* 0x0561 [0xC6 0x03 ] */ instr SF0_INST_3 +/* 0x0563 [0x6C 0x0A 0x4B ] */ notedv PITCH_F4, 10, 75 +/* 0x0566 [0x60 0x0A 0x4B ] */ notedv PITCH_F3, 10, 75 +/* 0x0569 [0xC0 0x07 ] */ ldelay 7 +/* 0x056B [0xFF ] */ end + +.channel CHAN_056C +/* 0x056C [0x88 0x05 0x75 ] */ ldlayer 0, LAYER_0575 +/* 0x056F [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x0572 [0xFF ] */ end + +.layer LAYER_0573 +/* 0x0573 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0575 +/* 0x0575 [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x0577 [0x70 0x0A 0x4B ] */ notedv PITCH_A4, 10, 75 +/* 0x057A [0x64 0x1E 0x4B ] */ notedv PITCH_A3, 30, 75 +/* 0x057D [0xFF ] */ end + +.channel CHAN_057E +/* 0x057E [0x88 0x05 0x87 ] */ ldlayer 0, LAYER_0587 +/* 0x0581 [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x0584 [0xFF ] */ end + +.layer LAYER_0585 +/* 0x0585 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0587 +/* 0x0587 [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x0589 [0x6C 0x0A 0x4B ] */ notedv PITCH_F4, 10, 75 +/* 0x058C [0x60 0x1E 0x4B ] */ notedv PITCH_F3, 30, 75 +/* 0x058F [0xFF ] */ end + +.channel CHAN_0590 +/* 0x0590 [0x88 0x05 0x99 ] */ ldlayer 0, LAYER_0599 +/* 0x0593 [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x0596 [0xFF ] */ end + +.layer LAYER_0597 +/* 0x0597 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_0599 +/* 0x0599 [0xC6 0x05 ] */ instr SF0_INST_5 +/* 0x059B [0x64 0x06 0x38 ] */ notedv PITCH_A3, 6, 56 +/* 0x059E [0xC6 0x07 ] */ instr SF0_INST_7 +/* 0x05A0 [0xCF 0xE1 ] */ releaserate 225 +/* 0x05A2 [0x6C 0x0A 0x50 ] */ notedv PITCH_F4, 10, 80 +/* 0x05A5 [0x64 0x30 0x50 ] */ notedv PITCH_A3, 48, 80 +/* 0x05A8 [0xFF ] */ end + +.channel CHAN_05A9 +/* 0x05A9 [0x88 0x05 0xB2 ] */ ldlayer 0, LAYER_05B2 +/* 0x05AC [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x05AF [0xFF ] */ end + +.layer LAYER_05B0 +/* 0x05B0 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_05B2 +/* 0x05B2 [0xC6 0x00 ] */ instr SF0_INST_0 +/* 0x05B4 [0x5A 0x04 0x44 ] */ notedv PITCH_B2, 4, 68 +/* 0x05B7 [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x05B9 [0x60 0x06 0x4B ] */ notedv PITCH_F3, 6, 75 +/* 0x05BC [0x56 0x0A 0x4B ] */ notedv PITCH_G2, 10, 75 +/* 0x05BF [0xC6 0x23 ] */ instr SF0_INST_35 +/* 0x05C1 [0xC7 0x81 0x26 0xFF ] */ portamento 0x81, PITCH_B3, 255 +/* 0x05C5 [0x5B 0x16 0x46 ] */ notedv PITCH_C3, 22, 70 +/* 0x05C8 [0xFF ] */ end + +.channel CHAN_05C9 +/* 0x05C9 [0x88 0x05 0xD2 ] */ ldlayer 0, LAYER_05D2 +/* 0x05CC [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x05CF [0xFF ] */ end + +.layer LAYER_05D0 +/* 0x05D0 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_05D2 +/* 0x05D2 [0xC6 0x05 ] */ instr SF0_INST_5 +/* 0x05D4 [0x6B 0x0A 0x4B ] */ notedv PITCH_E4, 10, 75 +/* 0x05D7 [0x62 0x0A 0x4B ] */ notedv PITCH_G3, 10, 75 +/* 0x05DA [0xC0 0x07 ] */ ldelay 7 +/* 0x05DC [0xFF ] */ end + +.channel CHAN_05DD +/* 0x05DD [0x88 0x05 0xE6 ] */ ldlayer 0, LAYER_05E6 +/* 0x05E0 [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x05E3 [0xFF ] */ end + +.layer LAYER_05E4 +/* 0x05E4 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_05E6 +/* 0x05E6 [0xC6 0x06 ] */ instr SF0_INST_6 +/* 0x05E8 [0x72 0x0A 0x5A ] */ notedv PITCH_B4, 10, 90 +/* 0x05EB [0x60 0x0A 0x5A ] */ notedv PITCH_F3, 10, 90 +/* 0x05EE [0xC0 0x07 ] */ ldelay 7 +/* 0x05F0 [0xFF ] */ end + +.channel CHAN_05F1 +/* 0x05F1 [0x88 0x05 0xFA ] */ ldlayer 0, LAYER_05FA +/* 0x05F4 [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x05F7 [0xFF ] */ end + +.layer LAYER_05F8 +/* 0x05F8 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_05FA +/* 0x05FA [0xC6 0x0B ] */ instr SF0_INST_11 +/* 0x05FC [0x6F 0x0A 0x55 ] */ notedv PITCH_AF4, 10, 85 +/* 0x05FF [0x63 0x1E 0x55 ] */ notedv PITCH_AF3, 30, 85 +/* 0x0602 [0xFF ] */ end + +.channel CHAN_0603 +/* 0x0603 [0x88 0x06 0x0C ] */ ldlayer 0, LAYER_060C +/* 0x0606 [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x0609 [0xFF ] */ end + +.layer LAYER_060A +/* 0x060A [0xC2 0xFE ] */ transpose -2 +.layer LAYER_060C +/* 0x060C [0xC6 0x16 ] */ instr SF0_INST_22 +/* 0x060E [0x6C 0x0A 0x4B ] */ notedv PITCH_F4, 10, 75 +/* 0x0611 [0x60 0x1E 0x4B ] */ notedv PITCH_F3, 30, 75 +/* 0x0614 [0xFF ] */ end + +.channel CHAN_0615 +/* 0x0615 [0xC1 0x18 ] */ instr SF0_INST_24 +/* 0x0617 [0x88 0x06 0x1B ] */ ldlayer 0, LAYER_061B +/* 0x061A [0xFF ] */ end + +.layer LAYER_061B +/* 0x061B [0x66 0x0A 0x60 ] */ notedv PITCH_B3, 10, 96 +/* 0x061E [0x60 0x18 0x60 ] */ notedv PITCH_F3, 24, 96 +/* 0x0621 [0xFF ] */ end + +.channel CHAN_0622 +/* 0x0622 [0x88 0x06 0x29 ] */ ldlayer 0, LAYER_0629 +/* 0x0625 [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x0628 [0xFF ] */ end + +.layer LAYER_0629 +/* 0x0629 [0xC6 0x01 ] */ instr SF0_INST_1 +/* 0x062B [0x64 0x12 0x4B ] */ notedv PITCH_A3, 18, 75 +/* 0x062E [0x58 0x12 0x4B ] */ notedv PITCH_A2, 18, 75 +/* 0x0631 [0xFF ] */ end + +.channel CHAN_0632 +/* 0x0632 [0x88 0x06 0x3B ] */ ldlayer 0, LAYER_063B +/* 0x0635 [0x89 0x05 0x12 ] */ ldlayer 1, LAYER_0512 +/* 0x0638 [0xFF ] */ end + +.layer LAYER_0639 +/* 0x0639 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_063B +/* 0x063B [0xC6 0x19 ] */ instr SF0_INST_25 +/* 0x063D [0x6E 0x05 0x62 ] */ notedv PITCH_G4, 5, 98 +/* 0x0640 [0x5F 0x12 0x62 ] */ notedv PITCH_E3, 18, 98 +/* 0x0643 [0xFF ] */ end + +.channel CHAN_0644 +/* 0x0644 [0xC1 0x0A ] */ instr SF0_INST_10 +/* 0x0646 [0xDA 0x66 0x7C ] */ env ENVELOPE_667C +/* 0x0649 [0x88 0x06 0x4D ] */ ldlayer 0, LAYER_064D +/* 0x064C [0xFF ] */ end + +.layer LAYER_064D +/* 0x064D [0xC7 0x01 0x30 0x10 ] */ portamento 0x01, PITCH_A4, 16 +/* 0x0651 [0x69 0x18 0x64 ] */ notedv PITCH_D4, 24, 100 +/* 0x0654 [0xFF ] */ end + +.channel CHAN_0655 +/* 0x0655 [0xC1 0x09 ] */ instr SF0_INST_9 +/* 0x0657 [0xDA 0x66 0x94 ] */ env ENVELOPE_6694 +/* 0x065A [0x88 0x06 0x5E ] */ ldlayer 0, LAYER_065E +/* 0x065D [0xFF ] */ end + +.layer LAYER_065E +/* 0x065E [0x70 0x16 0x7F ] */ notedv PITCH_A4, 22, 127 +/* 0x0661 [0xFF ] */ end + +.channel CHAN_0662 +/* 0x0662 [0xC1 0x05 ] */ instr SF0_INST_5 +/* 0x0664 [0xDA 0x66 0x74 ] */ env ENVELOPE_6674 +/* 0x0667 [0x88 0x06 0x6B ] */ ldlayer 0, LAYER_066B +/* 0x066A [0xFF ] */ end + +.layer LAYER_066B +/* 0x066B [0x58 0x0A 0x69 ] */ notedv PITCH_A2, 10, 105 +/* 0x066E [0xFF ] */ end + +.channel CHAN_066F +/* 0x066F [0xC1 0x09 ] */ instr SF0_INST_9 +/* 0x0671 [0xDA 0x66 0x94 ] */ env ENVELOPE_6694 +/* 0x0674 [0x88 0x06 0x78 ] */ ldlayer 0, LAYER_0678 +/* 0x0677 [0xFF ] */ end + +.layer LAYER_0678 +/* 0x0678 [0xC7 0x81 0x30 0xFF ] */ portamento 0x81, PITCH_A4, 255 +/* 0x067C [0x67 0x20 0x3C ] */ notedv PITCH_C4, 32, 60 +/* 0x067F [0xFF ] */ end + +.channel CHAN_0680 +/* 0x0680 [0xC1 0x09 ] */ instr SF0_INST_9 +/* 0x0682 [0xDA 0x66 0x88 ] */ env ENVELOPE_6688 +/* 0x0685 [0x88 0x06 0x93 ] */ ldlayer 0, LAYER_0693 +/* 0x0688 [0x89 0x06 0x8C ] */ ldlayer 1, LAYER_068C +/* 0x068B [0xFF ] */ end + +.layer LAYER_068C +/* 0x068C [0x54 0x06 0x73 ] */ notedv PITCH_F2, 6, 115 +/* 0x068F [0x5B 0x0C 0x73 ] */ notedv PITCH_C3, 12, 115 +/* 0x0692 [0xFF ] */ end + +.layer LAYER_0693 +/* 0x0693 [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x0695 [0xC7 0x81 0x14 0xFF ] */ portamento 0x81, PITCH_F2, 255 +/* 0x0699 [0x5F 0x19 0x5A ] */ notedv PITCH_E3, 25, 90 +/* 0x069C [0xFF ] */ end + +.channel CHAN_069D +/* 0x069D [0xC1 0x09 ] */ instr SF0_INST_9 +/* 0x069F [0xDA 0x66 0xE0 ] */ env ENVELOPE_66E0 +/* 0x06A2 [0x88 0x06 0xA9 ] */ ldlayer 0, LAYER_06A9 +/* 0x06A5 [0x89 0x06 0xB5 ] */ ldlayer 1, LAYER_06B5 +/* 0x06A8 [0xFF ] */ end + +.layer LAYER_06A9 +/* 0x06A9 [0x62 0x06 0x73 ] */ notedv PITCH_G3, 6, 115 +/* 0x06AC [0x5B 0x0C 0x73 ] */ notedv PITCH_C3, 12, 115 +/* 0x06AF [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x06B1 [0x69 0x0F 0x5A ] */ notedv PITCH_D4, 15, 90 +/* 0x06B4 [0xFF ] */ end + +.layer LAYER_06B5 +/* 0x06B5 [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x06B7 [0xC7 0x81 0x1F 0xFF ] */ portamento 0x81, PITCH_E3, 255 +/* 0x06BB [0x54 0x19 0x5A ] */ notedv PITCH_F2, 25, 90 +/* 0x06BE [0xFF ] */ end + +.channel CHAN_06BF +/* 0x06BF [0xC1 0x00 ] */ instr SF0_INST_0 +/* 0x06C1 [0x88 0x06 0xC5 ] */ ldlayer 0, LAYER_06C5 +/* 0x06C4 [0xFF ] */ end + +.layer LAYER_06C5 +/* 0x06C5 [0xC7 0x81 0x1B 0xC8 ] */ portamento 0x81, PITCH_C3, 200 +/* 0x06C9 [0x60 0x07 0x7F ] */ notedv PITCH_F3, 7, 127 +/* 0x06CC [0xFF ] */ end + +.channel CHAN_06CD +/* 0x06CD [0xC1 0x13 ] */ instr SF0_INST_19 +/* 0x06CF [0xDA 0x65 0xFC ] */ env ENVELOPE_65FC +/* 0x06D2 [0xD9 0x7F ] */ releaserate 127 +/* 0x06D4 [0x88 0x06 0xD8 ] */ ldlayer 0, LAYER_06D8 +/* 0x06D7 [0xFF ] */ end + +.layer LAYER_06D8 +/* 0x06D8 [0xC7 0x81 0x27 0xC8 ] */ portamento 0x81, PITCH_C4, 200 +/* 0x06DC [0x60 0x80 0x91 0x64 ] */ notedv PITCH_F3, 145, 100 +/* 0x06E0 [0xFF ] */ end + +.channel CHAN_06E1 +/* 0x06E1 [0xC1 0x13 ] */ instr SF0_INST_19 +/* 0x06E3 [0xDA 0x66 0x10 ] */ env ENVELOPE_6610 +/* 0x06E6 [0x88 0x06 0xEA ] */ ldlayer 0, LAYER_06EA +/* 0x06E9 [0xFF ] */ end + +.layer LAYER_06EA +/* 0x06EA [0xC7 0x81 0x22 0x30 ] */ portamento 0x81, PITCH_G3, 48 +/* 0x06EE [0x64 0x50 0x69 ] */ notedv PITCH_A3, 80, 105 +/* 0x06F1 [0xFF ] */ end + +.channel CHAN_06F2 +/* 0x06F2 [0x88 0x06 0xF8 ] */ ldlayer 0, LAYER_06F8 +/* 0x06F5 [0xFF ] */ end + +.layer LAYER_06F6 +/* 0x06F6 [0x2C 0xFA ] */ transpose -6 +.layer LAYER_06F8 +/* 0x06F8 [0xC6 0x14 ] */ instr SF0_INST_20 +/* 0x06FA [0xCB 0x66 0x24 0xFB ] */ env ENVELOPE_6624, 251 +/* 0x06FE [0xC7 0x81 0x24 0xC8 ] */ portamento 0x81, PITCH_A3, 200 +/* 0x0702 [0x5B 0x30 0x69 ] */ notedv PITCH_C3, 48, 105 +/* 0x0705 [0xFF ] */ end + +.channel CHAN_0706 +/* 0x0706 [0xC1 0x1B ] */ instr SF0_INST_27 +/* 0x0708 [0x88 0x07 0x0C ] */ ldlayer 0, LAYER_070C +/* 0x070B [0xFF ] */ end + +.layer LAYER_070C +/* 0x070C [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x0710 [0x4F 0x18 0x64 ] */ notedv PITCH_C2, 24, 100 +/* 0x0713 [0xFF ] */ end + +.channel CHAN_0714 +/* 0x0714 [0xED 0x0F ] */ gain 15 +/* 0x0716 [0x88 0x07 0x1A ] */ ldlayer 0, LAYER_071A +/* 0x0719 [0xFF ] */ end + +.layer LAYER_071A +/* 0x071A [0xFC 0x07 0x25 ] */ call LAYER_0725 +/* 0x071D [0xC7 0x81 0x2D 0xFF ] */ portamento 0x81, PITCH_GF4, 255 +/* 0x0721 [0x5A 0x0E 0x73 ] */ notedv PITCH_B2, 14, 115 +/* 0x0724 [0xFF ] */ end + +.layer LAYER_0725 +/* 0x0725 [0xC6 0x15 ] */ instr SF0_INST_21 +/* 0x0727 [0xCB 0x66 0xB0 0xF5 ] */ env ENVELOPE_66B0, 245 +/* 0x072B [0xFF ] */ end + +/* 0x072C [0xC2 0x02 ] */ transpose 2 +/* 0x072E [0xFB 0x08 0x00 ] */ jump LAYER_0800 + +.channel CHAN_0731 +/* 0x0731 [0xC1 0x1B ] */ instr SF0_INST_27 +/* 0x0733 [0x88 0x07 0x37 ] */ ldlayer 0, LAYER_0737 +/* 0x0736 [0xFF ] */ end + +.layer LAYER_0737 +/* 0x0737 [0xC4 ] */ legato +/* 0x0738 [0xC7 0x85 0x1D 0xE1 ] */ portamento 0x85, PITCH_D3, 225 +/* 0x073C [0x51 0x08 0x64 ] */ notedv PITCH_D2, 8, 100 +/* 0x073F [0x45 0x14 0x64 ] */ notedv PITCH_D1, 20, 100 +/* 0x0742 [0xFF ] */ end + +.channel CHAN_0743 +/* 0x0743 [0x88 0x07 0x47 ] */ ldlayer 0, LAYER_0747 +/* 0x0746 [0xFF ] */ end + +.layer LAYER_0747 +/* 0x0747 [0xC6 0x1B ] */ instr SF0_INST_27 +/* 0x0749 [0xCF 0xF8 ] */ releaserate 248 +/* 0x074B [0xC7 0x81 0x1A 0xE1 ] */ portamento 0x81, PITCH_B2, 225 +/* 0x074F [0x49 0x0C 0x64 ] */ notedv PITCH_GF1, 12, 100 +/* 0x0752 [0xFF ] */ end + +.channel CHAN_0753 +/* 0x0753 [0xED 0x14 ] */ gain 20 +/* 0x0755 [0x88 0x1B 0x3F ] */ ldlayer 0, LAYER_1B3F +/* 0x0758 [0x89 0x07 0x1A ] */ ldlayer 1, LAYER_071A +/* 0x075B [0x8A 0x07 0x5F ] */ ldlayer 2, LAYER_075F +/* 0x075E [0xFF ] */ end + +.layer LAYER_075F +/* 0x075F [0xFC 0x07 0x25 ] */ call LAYER_0725 +/* 0x0762 [0xC7 0x85 0x22 0xFF ] */ portamento 0x85, PITCH_G3, 255 +/* 0x0766 [0x65 0x07 0x6E ] */ notedv PITCH_BF3, 7, 110 +/* 0x0769 [0xFF ] */ end + +.channel CHAN_076A +/* 0x076A [0xC1 0x1E ] */ instr SF0_INST_30 +/* 0x076C [0xDA 0x66 0xC8 ] */ env ENVELOPE_66C8 +/* 0x076F [0x88 0x07 0x76 ] */ ldlayer 0, LAYER_0776 +/* 0x0772 [0x89 0x07 0x85 ] */ ldlayer 1, LAYER_0785 +/* 0x0775 [0xFF ] */ end + +.layer LAYER_0776 +/* 0x0776 [0xC7 0x81 0x37 0x7F ] */ portamento 0x81, PITCH_E5, 127 +/* 0x077A [0x44 0x08 0x73 ] */ notedv PITCH_DF1, 8, 115 +/* 0x077D [0xC7 0x81 0x06 0xFF ] */ portamento 0x81, PITCH_EF1, 255 +/* 0x0781 [0x63 0x0B 0x69 ] */ notedv PITCH_AF3, 11, 105 +/* 0x0784 [0xFF ] */ end + +.layer LAYER_0785 +/* 0x0785 [0xC6 0x1F ] */ instr SF0_INST_31 +/* 0x0787 [0xC7 0x81 0x31 0xDE ] */ portamento 0x81, PITCH_BF4, 222 +/* 0x078B [0x59 0x08 0x73 ] */ notedv PITCH_BF2, 8, 115 +/* 0x078E [0xC7 0x81 0x13 0xFF ] */ portamento 0x81, PITCH_E2, 255 +/* 0x0792 [0x60 0x0C 0x73 ] */ notedv PITCH_F3, 12, 115 +/* 0x0795 [0xFF ] */ end + +.channel CHAN_0796 +/* 0x0796 [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x0799 [0x89 0x0E 0x0C ] */ ldlayer 1, LAYER_0E0C +/* 0x079C [0xFF ] */ end + +.layer LAYER_079D +/* 0x079D [0xC0 0x30 ] */ ldelay 48 +/* 0x079F [0xFF ] */ end + +.channel CHAN_07A0 +/* 0x07A0 [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07A3 [0x89 0x0E 0x1C ] */ ldlayer 1, LAYER_0E1C +/* 0x07A6 [0xFF ] */ end + +.channel CHAN_07A7 +/* 0x07A7 [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07AA [0x89 0x0E 0x24 ] */ ldlayer 1, LAYER_0E24 +/* 0x07AD [0xFF ] */ end + +.channel CHAN_07AE +/* 0x07AE [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07B1 [0x89 0x0E 0x34 ] */ ldlayer 1, LAYER_0E34 +/* 0x07B4 [0xFF ] */ end + +.channel CHAN_07B5 +/* 0x07B5 [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07B8 [0x89 0x0E 0x34 ] */ ldlayer 1, LAYER_0E34 +/* 0x07BB [0xFF ] */ end + +.channel CHAN_07BC +/* 0x07BC [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07BF [0x89 0x0E 0x34 ] */ ldlayer 1, LAYER_0E34 +/* 0x07C2 [0xFF ] */ end + +.channel CHAN_07C3 +/* 0x07C3 [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07C6 [0x89 0x0E 0x3C ] */ ldlayer 1, LAYER_0E3C +/* 0x07C9 [0xFF ] */ end + +.channel CHAN_07CA +/* 0x07CA [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07CD [0x89 0x0E 0x34 ] */ ldlayer 1, LAYER_0E34 +/* 0x07D0 [0xFF ] */ end + +.channel CHAN_07D1 +/* 0x07D1 [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07D4 [0x89 0x0E 0x4C ] */ ldlayer 1, LAYER_0E4C +/* 0x07D7 [0xFF ] */ end + +.channel CHAN_07D8 +/* 0x07D8 [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07DB [0x89 0x0E 0x0C ] */ ldlayer 1, LAYER_0E0C +/* 0x07DE [0xFF ] */ end + +.channel CHAN_07DF +/* 0x07DF [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07E2 [0x89 0x0E 0x54 ] */ ldlayer 1, LAYER_0E54 +/* 0x07E5 [0xFF ] */ end + +.channel CHAN_07E6 +/* 0x07E6 [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07E9 [0x89 0x0E 0x54 ] */ ldlayer 1, LAYER_0E54 +/* 0x07EC [0xFF ] */ end + +.channel CHAN_07ED +/* 0x07ED [0x88 0x07 0x9D ] */ ldlayer 0, LAYER_079D +/* 0x07F0 [0x89 0x0E 0x64 ] */ ldlayer 1, LAYER_0E64 +/* 0x07F3 [0xFF ] */ end + +.channel CHAN_07F4 +/* 0x07F4 [0x89 0x08 0x0C ] */ ldlayer 1, LAYER_080C +CHAN_07F7: +/* 0x07F7 [0xED 0x19 ] */ gain 25 +/* 0x07F9 [0x8A 0x05 0x12 ] */ ldlayer 2, LAYER_0512 +.channel CHAN_07FC +/* 0x07FC [0x88 0x08 0x00 ] */ ldlayer 0, LAYER_0800 +/* 0x07FF [0xFF ] */ end + +.layer LAYER_0800 +/* 0x0800 [0xFC 0x07 0x25 ] */ call LAYER_0725 +/* 0x0803 [0xC7 0x81 0x26 0xC8 ] */ portamento 0x81, PITCH_B3, 200 +/* 0x0807 [0x25 0x24 0x73 0x64 ] */ notedvg PITCH_BF3, 36, 115, 100 +/* 0x080B [0xFF ] */ end + +.layer LAYER_080C +/* 0x080C [0xC2 0xFA ] */ transpose -6 +/* 0x080E [0xFB 0x05 0x07 ] */ jump LAYER_0507 + +.channel CHAN_0811 +/* 0x0811 [0x89 0x08 0x16 ] */ ldlayer 1, LAYER_0816 +/* 0x0814 [0xF4 0xE1 ] */ rjump CHAN_07F7 + +.layer LAYER_0816 +/* 0x0816 [0xC2 0xFA ] */ transpose -6 +/* 0x0818 [0xFB 0x05 0x36 ] */ jump LAYER_0536 + +.channel CHAN_081B +/* 0x081B [0x89 0x08 0x20 ] */ ldlayer 1, LAYER_0820 +/* 0x081E [0xF4 0xD7 ] */ rjump CHAN_07F7 + +.layer LAYER_0820 +/* 0x0820 [0xC2 0xFA ] */ transpose -6 +/* 0x0822 [0xFB 0x05 0x4B ] */ jump LAYER_054B + +.channel CHAN_0825 +/* 0x0825 [0x89 0x08 0x2A ] */ ldlayer 1, LAYER_082A +/* 0x0828 [0xF4 0xCD ] */ rjump CHAN_07F7 + +.layer LAYER_082A +/* 0x082A [0xC2 0xFA ] */ transpose -6 +/* 0x082C [0xFB 0x05 0x61 ] */ jump LAYER_0561 + +.channel CHAN_082F +/* 0x082F [0x89 0x08 0x34 ] */ ldlayer 1, LAYER_0834 +/* 0x0832 [0xF4 0xC3 ] */ rjump CHAN_07F7 + +.layer LAYER_0834 +/* 0x0834 [0xC2 0xFA ] */ transpose -6 +/* 0x0836 [0xFB 0x05 0x75 ] */ jump LAYER_0575 + +/* 0x0839 [0xF4 0xBC ] */ rjump CHAN_07F7 + +.channel CHAN_083B +/* 0x083B [0x89 0x08 0x40 ] */ ldlayer 1, LAYER_0840 +/* 0x083E [0xF4 0xB7 ] */ rjump CHAN_07F7 + +.layer LAYER_0840 +/* 0x0840 [0xC2 0xFA ] */ transpose -6 +/* 0x0842 [0xFB 0x05 0x87 ] */ jump LAYER_0587 + +.channel CHAN_0845 +/* 0x0845 [0x89 0x08 0x4A ] */ ldlayer 1, LAYER_084A +/* 0x0848 [0xF4 0xAD ] */ rjump CHAN_07F7 + +.layer LAYER_084A +/* 0x084A [0xC2 0xFA ] */ transpose -6 +/* 0x084C [0xFB 0x05 0x99 ] */ jump LAYER_0599 + +.channel CHAN_084F +/* 0x084F [0x89 0x08 0x54 ] */ ldlayer 1, LAYER_0854 +/* 0x0852 [0xF4 0xA3 ] */ rjump CHAN_07F7 + +.layer LAYER_0854 +/* 0x0854 [0xC2 0xFA ] */ transpose -6 +/* 0x0856 [0xFB 0x05 0xB2 ] */ jump LAYER_05B2 + +.channel CHAN_0859 +/* 0x0859 [0x89 0x08 0x5E ] */ ldlayer 1, LAYER_085E +/* 0x085C [0xF4 0x99 ] */ rjump CHAN_07F7 + +.layer LAYER_085E +/* 0x085E [0xC2 0xFA ] */ transpose -6 +/* 0x0860 [0xFB 0x05 0xD2 ] */ jump LAYER_05D2 + +.channel CHAN_0863 +/* 0x0863 [0x89 0x08 0x68 ] */ ldlayer 1, LAYER_0868 +/* 0x0866 [0xF4 0x8F ] */ rjump CHAN_07F7 + +.layer LAYER_0868 +/* 0x0868 [0xC2 0xFA ] */ transpose -6 +/* 0x086A [0xFB 0x05 0xE6 ] */ jump LAYER_05E6 + +.channel CHAN_086D +/* 0x086D [0x89 0x08 0x72 ] */ ldlayer 1, LAYER_0872 +/* 0x0870 [0xF4 0x85 ] */ rjump CHAN_07F7 + +.layer LAYER_0872 +/* 0x0872 [0xC2 0xFA ] */ transpose -6 +/* 0x0874 [0xFB 0x05 0xFA ] */ jump LAYER_05FA + +.channel CHAN_0877 +/* 0x0877 [0x89 0x08 0x7D ] */ ldlayer 1, LAYER_087D +/* 0x087A [0xFB 0x07 0xF7 ] */ jump CHAN_07F7 + +.layer LAYER_087D +/* 0x087D [0xC2 0xFA ] */ transpose -6 +/* 0x087F [0xFB 0x06 0x0C ] */ jump LAYER_060C + +.channel CHAN_0882 +/* 0x0882 [0x89 0x08 0x88 ] */ ldlayer 1, LAYER_0888 +/* 0x0885 [0xFB 0x07 0xF7 ] */ jump CHAN_07F7 + +.layer LAYER_0888 +/* 0x0888 [0xC2 0xFA ] */ transpose -6 +/* 0x088A [0xFB 0x06 0x29 ] */ jump LAYER_0629 + +.channel CHAN_088D +/* 0x088D [0x89 0x08 0x93 ] */ ldlayer 1, LAYER_0893 +/* 0x0890 [0xFB 0x07 0xF7 ] */ jump CHAN_07F7 + +.layer LAYER_0893 +/* 0x0893 [0xC2 0xFA ] */ transpose -6 +/* 0x0895 [0xFB 0x06 0x3B ] */ jump LAYER_063B + +.channel CHAN_0898 +/* 0x0898 [0x88 0x08 0x9C ] */ ldlayer 0, LAYER_089C +/* 0x089B [0xFF ] */ end + +.layer LAYER_089C +/* 0x089C [0xC6 0x3E ] */ instr SF0_INST_62 +/* 0x089E [0xCB 0x66 0xEC 0xFB ] */ env ENVELOPE_66EC, 251 +/* 0x08A2 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x08A6 [0x73 0x18 0x64 ] */ notedv PITCH_C5, 24, 100 +/* 0x08A9 [0xC6 0x13 ] */ instr SF0_INST_19 +/* 0x08AB [0xCB 0x67 0xA4 0xDD ] */ env ENVELOPE_67A4, 221 +/* 0x08AF [0xC7 0x81 0x20 0xC8 ] */ portamento 0x81, PITCH_F3, 200 +/* 0x08B3 [0x67 0x3C 0x64 ] */ notedv PITCH_C4, 60, 100 +/* 0x08B6 [0xFF ] */ end + +.channel CHAN_08B7 +/* 0x08B7 [0x88 0x08 0xBB ] */ ldlayer 0, LAYER_08BB +/* 0x08BA [0xFF ] */ end + +.layer LAYER_08BB +/* 0x08BB [0xC6 0x48 ] */ instr SF0_INST_72 +/* 0x08BD [0xCB 0x65 0xFC 0xDD ] */ env ENVELOPE_65FC, 221 +/* 0x08C1 [0xC7 0x01 0x2E 0x48 ] */ portamento 0x01, PITCH_G4, 72 +/* 0x08C5 [0x62 0x80 0xDC 0x64 ] */ notedv PITCH_G3, 220, 100 +/* 0x08C9 [0xFF ] */ end + +.channel CHAN_08CA +/* 0x08CA [0x88 0x08 0xCE ] */ ldlayer 0, LAYER_08CE +/* 0x08CD [0xFF ] */ end + +.layer LAYER_08CE +/* 0x08CE [0xC6 0x48 ] */ instr SF0_INST_72 +/* 0x08D0 [0xCB 0x65 0xD8 0xFB ] */ env ENVELOPE_65D8, 251 +/* 0x08D4 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x08D8 [0x6B 0x60 0x64 ] */ notedv PITCH_E4, 96, 100 +/* 0x08DB [0xFF ] */ end + +.channel CHAN_08DC +/* 0x08DC [0x88 0x02 0xAD ] */ ldlayer 0, LAYER_02AD +/* 0x08DF [0xFF ] */ end + +.channel CHAN_08E0 +/* 0x08E0 [0x88 0x0B 0x7D ] */ ldlayer 0, LAYER_0B7D +/* 0x08E3 [0xFF ] */ end + +.channel CHAN_08E4 +/* 0x08E4 [0xC1 0x46 ] */ instr SF0_INST_70 +/* 0x08E6 [0xDA 0x66 0x74 ] */ env ENVELOPE_6674 +/* 0x08E9 [0x88 0x09 0x03 ] */ ldlayer 0, LAYER_0903 +CHAN_08EC: +/* 0x08EC [0xB8 0x0A ] */ rand 10 +/* 0x08EE [0xC7 0x02 0x09 0x04 ] */ stseq 2, LAYER_0903 + STSEQ_NOTEDV_DELAY_HI +/* 0x08F2 [0xC7 0x02 0x08 0xFD ] */ stseq 2, CHAN_08FC + STSEQ_LDI_IMM +/* 0x08F6 [0xB8 0x0C ] */ rand 12 +/* 0x08F8 [0xC7 0x5C 0x09 0x03 ] */ stseq (NOTEDV_OPCODE | PITCH_DF3), LAYER_0903 + STSEQ_NOTEDV_OPCODE_PITCH +CHAN_08FC: +/* 0x08FC [0xCC 0x01 ] */ ldi 1 +/* 0x08FE [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0901 [0xF4 0xE9 ] */ rjump CHAN_08EC + +.layer LAYER_0903 +/* 0x0903 [0x5B 0x50 0x50 ] */ notedv PITCH_C3, 80, 80 +/* 0x0906 [0xC0 0x05 ] */ ldelay 5 +/* 0x0908 [0xF4 0xF9 ] */ rjump LAYER_0903 + +.channel CHAN_090A +/* 0x090A [0x89 0x09 0x36 ] */ ldlayer 1, LAYER_0936 +/* 0x090D [0x88 0x09 0x11 ] */ ldlayer 0, LAYER_0911 +/* 0x0910 [0xFF ] */ end + +.layer LAYER_0911 +/* 0x0911 [0xC6 0x00 ] */ instr SF0_INST_0 +/* 0x0913 [0x64 0x0A 0x40 ] */ notedv PITCH_A3, 10, 64 +/* 0x0916 [0xC6 0x07 ] */ instr SF0_INST_7 +/* 0x0918 [0x69 0x18 0x5A ] */ notedv PITCH_D4, 24, 90 +/* 0x091B [0xFF ] */ end + +.channel CHAN_091C +/* 0x091C [0xED 0x14 ] */ gain 20 +/* 0x091E [0x88 0x09 0x27 ] */ ldlayer 0, LAYER_0927 +/* 0x0921 [0x89 0x09 0x36 ] */ ldlayer 1, LAYER_0936 +/* 0x0924 [0xFF ] */ end + +.layer LAYER_0925 +/* 0x0925 [0xC2 0xFC ] */ transpose -4 +.layer LAYER_0927 +/* 0x0927 [0xC6 0x00 ] */ instr SF0_INST_0 +/* 0x0929 [0xC7 0x83 0x1B 0xFF ] */ portamento 0x83, PITCH_C3, 255 +/* 0x092D [0x53 0x06 0x50 ] */ notedv PITCH_E2, 6, 80 +/* 0x0930 [0xC6 0x05 ] */ instr SF0_INST_5 +/* 0x0932 [0x5F 0x0F 0x5F ] */ notedv PITCH_E3, 15, 95 +/* 0x0935 [0xFF ] */ end + +.layer LAYER_0936 +/* 0x0936 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x0938 [0xC7 0x81 0x16 0xFF ] */ portamento 0x81, PITCH_G2, 255 +/* 0x093C [0x7C 0x1E 0x32 ] */ notedv PITCH_A5, 30, 50 +/* 0x093F [0xFF ] */ end + +.channel CHAN_0940 +/* 0x0940 [0x88 0x09 0x44 ] */ ldlayer 0, LAYER_0944 +/* 0x0943 [0xFF ] */ end + +.layer LAYER_0944 +/* 0x0944 [0xC6 0x48 ] */ instr SF0_INST_72 +/* 0x0946 [0xC4 ] */ legato +LAYER_0947: +/* 0x0947 [0xC7 0x81 0x0F 0xFF ] */ portamento 0x81, PITCH_C2, 255 +/* 0x094B [0x53 0x60 0x4B ] */ notedv PITCH_E2, 96, 75 +/* 0x094E [0xF4 0xF7 ] */ rjump LAYER_0947 + +.channel CHAN_0950 +/* 0x0950 [0xED 0x14 ] */ gain 20 +/* 0x0952 [0x88 0x09 0x25 ] */ ldlayer 0, LAYER_0925 +/* 0x0955 [0x89 0x2D 0x55 ] */ ldlayer 1, LAYER_2D55 +/* 0x0958 [0xFF ] */ end + +.channel CHAN_0959 +/* 0x0959 [0xC1 0x08 ] */ instr SF0_INST_8 +/* 0x095B [0xDA 0x66 0xEC ] */ env ENVELOPE_66EC +/* 0x095E [0x88 0x09 0x62 ] */ ldlayer 0, LAYER_0962 +/* 0x0961 [0xFF ] */ end + +.layer LAYER_0962 +/* 0x0962 [0xC7 0x81 0x24 0xFF ] */ portamento 0x81, PITCH_A3, 255 +/* 0x0966 [0x67 0x64 0x5F ] */ notedv PITCH_C4, 100, 95 +/* 0x0969 [0xFF ] */ end + +.channel CHAN_096A +/* 0x096A [0xED 0x1E ] */ gain 30 +/* 0x096C [0x88 0x09 0x73 ] */ ldlayer 0, LAYER_0973 +/* 0x096F [0x89 0x09 0x7E ] */ ldlayer 1, LAYER_097E +/* 0x0972 [0xFF ] */ end + +.layer LAYER_0973 +/* 0x0973 [0xC6 0x0F ] */ instr SF0_INST_15 +/* 0x0975 [0xC7 0x81 0x2B 0xFF ] */ portamento 0x81, PITCH_E4, 255 +/* 0x0979 [0x5F 0x80 0xB4 0x69 ] */ notedv PITCH_E3, 180, 105 +/* 0x097D [0xFF ] */ end + +.layer LAYER_097E +/* 0x097E [0xC6 0x50 ] */ instr SF0_INST_80 +/* 0x0980 [0xC7 0x81 0x14 0xFF ] */ portamento 0x81, PITCH_F2, 255 +/* 0x0984 [0x4E 0x80 0xB4 0x58 ] */ notedv PITCH_B1, 180, 88 +/* 0x0988 [0xFF ] */ end + +.channel CHAN_0989 +/* 0x0989 [0x88 0x09 0x90 ] */ ldlayer 0, LAYER_0990 +/* 0x098C [0x89 0x09 0x9A ] */ ldlayer 1, LAYER_099A +/* 0x098F [0xFF ] */ end + +.layer LAYER_0990 +/* 0x0990 [0xC2 0x32 ] */ transpose 50 +LAYER_0992: +/* 0x0992 [0xC6 0x46 ] */ instr SF0_INST_70 +/* 0x0994 [0x4F 0x06 0x48 ] */ notedv PITCH_C2, 6, 72 +/* 0x0997 [0xFF ] */ end + +.layer LAYER_0998 +/* 0x0998 [0xC2 0xFC ] */ transpose -4 +.layer LAYER_099A +/* 0x099A [0xC6 0x18 ] */ instr SF0_INST_24 +/* 0x099C [0x66 0x03 0x6E ] */ notedv PITCH_B3, 3, 110 +/* 0x099F [0xFF ] */ end + +.channel CHAN_09A0 +/* 0x09A0 [0x88 0x09 0xA4 ] */ ldlayer 0, LAYER_09A4 +/* 0x09A3 [0xFF ] */ end + +.layer LAYER_09A4 +/* 0x09A4 [0xC6 0x15 ] */ instr SF0_INST_21 +/* 0x09A6 [0xCB 0x66 0x4C 0xFD ] */ env ENVELOPE_664C, 253 +/* 0x09AA [0x65 0x05 0x64 ] */ notedv PITCH_BF3, 5, 100 +/* 0x09AD [0xFF ] */ end + +.channel CHAN_09AE +/* 0x09AE [0x88 0x09 0xB2 ] */ ldlayer 0, LAYER_09B2 +/* 0x09B1 [0xFF ] */ end + +.layer LAYER_09B2 +/* 0x09B2 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x09B4 [0xCB 0x66 0xE0 0xFB ] */ env ENVELOPE_66E0, 251 +/* 0x09B8 [0x5E 0x0A 0x50 ] */ notedv PITCH_EF3, 10, 80 +/* 0x09BB [0xFF ] */ end + +.channel CHAN_09BC +/* 0x09BC [0x88 0x09 0xC0 ] */ ldlayer 0, LAYER_09C0 +/* 0x09BF [0xFF ] */ end + +.layer LAYER_09C0 +/* 0x09C0 [0xC6 0x13 ] */ instr SF0_INST_19 +/* 0x09C2 [0xCB 0x66 0xE0 0xFB ] */ env ENVELOPE_66E0, 251 +/* 0x09C6 [0x5B 0x15 0x50 ] */ notedv PITCH_C3, 21, 80 +/* 0x09C9 [0xFF ] */ end + +.channel CHAN_09CA +/* 0x09CA [0x88 0x09 0xCE ] */ ldlayer 0, LAYER_09CE +/* 0x09CD [0xFF ] */ end + +.layer LAYER_09CE +/* 0x09CE [0xC6 0x3E ] */ instr SF0_INST_62 +/* 0x09D0 [0xCB 0x66 0xEC 0xFB ] */ env ENVELOPE_66EC, 251 +/* 0x09D4 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x09D8 [0x5B 0x0C 0x64 ] */ notedv PITCH_C3, 12, 100 +/* 0x09DB [0xC6 0x13 ] */ instr SF0_INST_19 +/* 0x09DD [0xCB 0x67 0xA4 0xDD ] */ env ENVELOPE_67A4, 221 +/* 0x09E1 [0xC7 0x81 0x24 0xC8 ] */ portamento 0x81, PITCH_A3, 200 +/* 0x09E5 [0x5B 0x3C 0x64 ] */ notedv PITCH_C3, 60, 100 +/* 0x09E8 [0xFF ] */ end + +.channel CHAN_09E9 +/* 0x09E9 [0xED 0x1E ] */ gain 30 +/* 0x09EB [0x88 0x09 0xF2 ] */ ldlayer 0, LAYER_09F2 +/* 0x09EE [0x89 0x09 0xFC ] */ ldlayer 1, LAYER_09FC +/* 0x09F1 [0xFF ] */ end + +.layer LAYER_09F2 +/* 0x09F2 [0xC6 0x0F ] */ instr SF0_INST_15 +/* 0x09F4 [0xC7 0x81 0x2B 0xFF ] */ portamento 0x81, PITCH_E4, 255 +/* 0x09F8 [0x5F 0x1C 0x69 ] */ notedv PITCH_E3, 28, 105 +/* 0x09FB [0xFF ] */ end + +.layer LAYER_09FC +/* 0x09FC [0xC6 0x50 ] */ instr SF0_INST_80 +/* 0x09FE [0xC7 0x81 0x14 0xFF ] */ portamento 0x81, PITCH_F2, 255 +/* 0x0A02 [0x4E 0x1C 0x58 ] */ notedv PITCH_B1, 28, 88 +/* 0x0A05 [0xFF ] */ end + +.channel CHAN_0A06 +/* 0x0A06 [0x88 0x0A 0x0A ] */ ldlayer 0, LAYER_0A0A +/* 0x0A09 [0xFF ] */ end + +.layer LAYER_0A0A +/* 0x0A0A [0xC6 0x4F ] */ instr SF0_INST_79 +/* 0x0A0C [0xC2 0x30 ] */ transpose 48 +/* 0x0A0E [0x60 0x14 0x64 ] */ notedv PITCH_F3, 20, 100 +/* 0x0A11 [0x64 0x00 0x69 ] */ notedv PITCH_A3, 0, 105 +/* 0x0A14 [0xFF ] */ end + +.channel CHAN_0A15 +/* 0x0A15 [0xC1 0x0E ] */ instr SF0_INST_14 +/* 0x0A17 [0xDA 0x66 0xFC ] */ env ENVELOPE_66FC +/* 0x0A1A [0x88 0x0A 0x1E ] */ ldlayer 0, LAYER_0A1E +/* 0x0A1D [0xFF ] */ end + +.layer LAYER_0A1E +/* 0x0A1E [0x68 0xFD 0x00 0x40 ] */ notedv PITCH_DF4, 32000, 64 +/* 0x0A22 [0xFF ] */ end + +.channel CHAN_0A23 +/* 0x0A23 [0xC1 0x09 ] */ instr SF0_INST_9 +/* 0x0A25 [0xDA 0x66 0xEC ] */ env ENVELOPE_66EC +/* 0x0A28 [0x88 0x0A 0x2C ] */ ldlayer 0, LAYER_0A2C +/* 0x0A2B [0xFF ] */ end + +.layer LAYER_0A2C +/* 0x0A2C [0x60 0x05 0x4B ] */ notedv PITCH_F3, 5, 75 +/* 0x0A2F [0x59 0x0A 0x4B ] */ notedv PITCH_BF2, 10, 75 +/* 0x0A32 [0x59 0x11 0x4B ] */ notedv PITCH_BF2, 17, 75 +/* 0x0A35 [0xFF ] */ end + +.channel CHAN_0A36 +/* 0x0A36 [0x88 0x0A 0x3A ] */ ldlayer 0, LAYER_0A3A +/* 0x0A39 [0xFF ] */ end + +.layer LAYER_0A3A +/* 0x0A3A [0xC6 0x3F ] */ instr SF0_INST_63 +/* 0x0A3C [0x58 0x06 0x64 ] */ notedv PITCH_A2, 6, 100 +/* 0x0A3F [0xFF ] */ end + +.channel CHAN_0A40 +/* 0x0A40 [0x88 0x0A 0x4C ] */ ldlayer 0, LAYER_0A4C +/* 0x0A43 [0x89 0x0A 0x5D ] */ ldlayer 1, LAYER_0A5D +/* 0x0A46 [0x8A 0x0A 0x6E ] */ ldlayer 2, LAYER_0A6E +/* 0x0A49 [0xFB 0x11 0x8F ] */ jump CHAN_118F + +.layer LAYER_0A4C +/* 0x0A4C [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x0A4E [0xCF 0xDD ] */ releaserate 221 +/* 0x0A50 [0xC4 ] */ legato +/* 0x0A51 [0xC7 0x85 0x00 0xFF ] */ portamento 0x85, PITCH_A0, 255 +/* 0x0A55 [0x58 0x80 0xFA 0x4A ] */ notedv PITCH_A2, 250, 74 +/* 0x0A59 [0x70 0x64 0x4A ] */ notedv PITCH_A4, 100, 74 +/* 0x0A5C [0xFF ] */ end + +.layer LAYER_0A5D +/* 0x0A5D [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x0A5F [0xCF 0xDD ] */ releaserate 221 +/* 0x0A61 [0x64 0x80 0x1E 0x64 ] */ noteldv PITCH_A3, 30, 100 +/* 0x0A65 [0xC7 0x81 0x00 0xFF ] */ portamento 0x81, PITCH_A0, 255 +/* 0x0A69 [0x64 0x81 0x40 0x55 ] */ notedv PITCH_A3, 320, 85 +/* 0x0A6D [0xFF ] */ end + +.layer LAYER_0A6E +/* 0x0A6E [0xC6 0x45 ] */ instr SF0_INST_69 +/* 0x0A70 [0xCF 0xDD ] */ releaserate 221 +/* 0x0A72 [0xC7 0x81 0x00 0xFF ] */ portamento 0x81, PITCH_A0, 255 +/* 0x0A76 [0x70 0x81 0x5E 0x50 ] */ notedv PITCH_A4, 350, 80 +/* 0x0A7A [0xFF ] */ end + +.channel CHAN_0A7B +/* 0x0A7B [0x88 0x0A 0x85 ] */ ldlayer 0, LAYER_0A85 +/* 0x0A7E [0x89 0x0A 0x9E ] */ ldlayer 1, LAYER_0A9E +/* 0x0A81 [0x8A 0x0A 0xAF ] */ ldlayer 2, LAYER_0AAF +/* 0x0A84 [0xFF ] */ end + +.layer LAYER_0A85 +/* 0x0A85 [0xFC 0x0A 0x95 ] */ call LAYER_0A95 +/* 0x0A88 [0xC4 ] */ legato +/* 0x0A89 [0xC7 0x85 0x3E 0xFF ] */ portamento 0x85, PITCH_B5, 255 +/* 0x0A8D [0x67 0x3C 0x55 ] */ notedv PITCH_C4, 60, 85 +/* 0x0A90 [0x78 0x81 0xF4 0x55 ] */ notedv PITCH_F5, 500, 85 +/* 0x0A94 [0xFF ] */ end + +.layer LAYER_0A95 +/* 0x0A95 [0xC6 0x3C ] */ instr SF0_INST_60 +/* 0x0A97 [0xCB 0x68 0x08 0xC8 ] */ env ENVELOPE_6808, 200 +/* 0x0A9B [0xC2 0x0C ] */ transpose 12 +/* 0x0A9D [0xFF ] */ end + +.layer LAYER_0A9E +/* 0x0A9E [0xC7 0x81 0x20 0xFF ] */ portamento 0x81, PITCH_F3, 255 +/* 0x0AA2 [0xC6 0x0D ] */ instr SF0_INST_13 +/* 0x0AA4 [0xC2 0x18 ] */ transpose 24 +/* 0x0AA6 [0xCB 0x66 0xF4 0xC8 ] */ env ENVELOPE_66F4, 200 +/* 0x0AAA [0x78 0x82 0x30 0x28 ] */ notedv PITCH_F5, 560, 40 +/* 0x0AAE [0xFF ] */ end + +.layer LAYER_0AAF +/* 0x0AAF [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x0AB1 [0xC2 0x0C ] */ transpose 12 +/* 0x0AB3 [0xCB 0x67 0xD8 0xC8 ] */ env ENVELOPE_67D8, 200 +/* 0x0AB7 [0x78 0x82 0x30 0x46 ] */ notedv PITCH_F5, 560, 70 +/* 0x0ABB [0xFF ] */ end + +.channel CHAN_0ABC +/* 0x0ABC [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x0ABE [0xED 0x0F ] */ gain 15 +/* 0x0AC0 [0x88 0x21 0x30 ] */ ldlayer 0, LAYER_2130 +/* 0x0AC3 [0x89 0x21 0x24 ] */ ldlayer 1, LAYER_2124 +/* 0x0AC6 [0x8A 0x2D 0x3A ] */ ldlayer 2, LAYER_2D3A +/* 0x0AC9 [0xCC 0x50 ] */ ldi 80 +/* 0x0ACB [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0ACE [0x88 0x0A 0xD5 ] */ ldlayer 0, LAYER_0AD5 +/* 0x0AD1 [0x8A 0x21 0x0B ] */ ldlayer 2, LAYER_210B +/* 0x0AD4 [0xFF ] */ end + +.layer LAYER_0AD5 +/* 0x0AD5 [0xC0 0x30 ] */ ldelay 48 +/* 0x0AD7 [0xFF ] */ end + +.channel CHAN_0AD8 +/* 0x0AD8 [0xCC 0x00 ] */ ldi 0 +CHAN_0ADA: +/* 0x0ADA [0xC7 0xF4 0x0A 0xFE ] */ stseq 244, LAYER_0AFD + STSEQ_TRANSPOSITION +/* 0x0ADE [0xC7 0x0C 0x0A 0xF3 ] */ stseq 12, LAYER_0AF2 + STSEQ_TRANSPOSITION +/* 0x0AE2 [0xD7 0xFF ] */ vibfreq 255 +/* 0x0AE4 [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x0AE6 [0xDA 0x68 0x18 ] */ env ENVELOPE_6818 +/* 0x0AE9 [0xD9 0xEB ] */ releaserate 235 +/* 0x0AEB [0x88 0x0A 0xFD ] */ ldlayer 0, LAYER_0AFD +/* 0x0AEE [0x89 0x0A 0xF2 ] */ ldlayer 1, LAYER_0AF2 +/* 0x0AF1 [0xFF ] */ end + +.layer LAYER_0AF2 +/* 0x0AF2 [0xC2 0x24 ] */ transpose 36 +/* 0x0AF4 [0xC7 0x83 0x2C 0x7F ] */ portamento 0x83, PITCH_F4, 127 +LAYER_0AF8: +/* 0x0AF8 [0x70 0x60 0x40 ] */ notedv PITCH_A4, 96, 64 +/* 0x0AFB [0xF4 0xFB ] */ rjump LAYER_0AF8 + +.layer LAYER_0AFD +/* 0x0AFD [0xC2 0x0C ] */ transpose 12 +/* 0x0AFF [0xC7 0x83 0x2C 0x7F ] */ portamento 0x83, PITCH_F4, 127 +LAYER_0B03: +/* 0x0B03 [0x70 0x60 0x40 ] */ notedv PITCH_A4, 96, 64 +/* 0x0B06 [0xF4 0xFB ] */ rjump LAYER_0B03 + +.channel CHAN_0B08 +/* 0x0B08 [0x88 0x0B 0x23 ] */ ldlayer 0, LAYER_0B23 +/* 0x0B0B [0x8A 0x0B 0x1D ] */ ldlayer 2, LAYER_0B1D +/* 0x0B0E [0xCC 0x01 ] */ ldi 1 +/* 0x0B10 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0B13 [0x89 0x0B 0x2F ] */ ldlayer 1, LAYER_0B2F +/* 0x0B16 [0xD7 0x60 ] */ vibfreq 96 +/* 0x0B18 [0xE2 0x80 0x80 0x00 ] */ vibdepthgrad 128, 128, 0 +/* 0x0B1C [0xFF ] */ end + +.layer LAYER_0B1D +/* 0x0B1D [0xC6 0x43 ] */ instr SF0_INST_67 +/* 0x0B1F [0x64 0x00 0x6E ] */ notedv PITCH_A3, 0, 110 +/* 0x0B22 [0xFF ] */ end + +.layer LAYER_0B23 +/* 0x0B23 [0xC6 0x3C ] */ instr SF0_INST_60 +/* 0x0B25 [0xCB 0x66 0xFC 0xF5 ] */ env ENVELOPE_66FC, 245 +/* 0x0B29 [0xC4 ] */ legato +LAYER_0B2A: +/* 0x0B2A [0x64 0x64 0x4A ] */ notedv PITCH_A3, 100, 74 +/* 0x0B2D [0xF4 0xFB ] */ rjump LAYER_0B2A + +.layer LAYER_0B2F +/* 0x0B2F [0xC6 0x45 ] */ instr SF0_INST_69 +/* 0x0B31 [0xC4 ] */ legato +LAYER_0B32: +/* 0x0B32 [0x5D 0x00 0x23 ] */ notedv PITCH_D3, 0, 35 +/* 0x0B35 [0xF4 0xFB ] */ rjump LAYER_0B32 + +.channel CHAN_0B37 +/* 0x0B37 [0x88 0x0B 0x47 ] */ ldlayer 0, LAYER_0B47 +/* 0x0B3A [0x89 0x0B 0x41 ] */ ldlayer 1, LAYER_0B41 +/* 0x0B3D [0x8A 0x0B 0x57 ] */ ldlayer 2, LAYER_0B57 +/* 0x0B40 [0xFF ] */ end + +.layer LAYER_0B41 +/* 0x0B41 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x0B43 [0xC2 0x10 ] */ transpose 16 +/* 0x0B45 [0xF4 0x02 ] */ rjump LAYER_0B49 + +.layer LAYER_0B47 +/* 0x0B47 [0xC6 0x2E ] */ instr SF0_INST_46 +LAYER_0B49: +/* 0x0B49 [0xCB 0x68 0x18 0xF5 ] */ env ENVELOPE_6818, 245 +/* 0x0B4D [0xC4 ] */ legato +/* 0x0B4E [0xC7 0x81 0x27 0xC8 ] */ portamento 0x81, PITCH_C4, 200 +LAYER_0B52: +/* 0x0B52 [0x6B 0x3C 0x3C ] */ notedv PITCH_E4, 60, 60 +/* 0x0B55 [0xF4 0xFB ] */ rjump LAYER_0B52 + +.layer LAYER_0B57 +/* 0x0B57 [0xC6 0x43 ] */ instr SF0_INST_67 +/* 0x0B59 [0x6C 0x00 0x6E ] */ notedv PITCH_F4, 0, 110 +/* 0x0B5C [0xFF ] */ end + +.channel CHAN_0B5D +/* 0x0B5D [0x88 0x0B 0x6D ] */ ldlayer 0, LAYER_0B6D +/* 0x0B60 [0x89 0x0B 0x67 ] */ ldlayer 1, LAYER_0B67 +/* 0x0B63 [0x8A 0x0B 0x57 ] */ ldlayer 2, LAYER_0B57 +/* 0x0B66 [0xFF ] */ end + +.layer LAYER_0B67 +/* 0x0B67 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x0B69 [0xC2 0x10 ] */ transpose 16 +/* 0x0B6B [0xF4 0x02 ] */ rjump LAYER_0B6F + +.layer LAYER_0B6D +/* 0x0B6D [0xC6 0x40 ] */ instr SF0_INST_64 +LAYER_0B6F: +/* 0x0B6F [0xCB 0x66 0xC8 0xF0 ] */ env ENVELOPE_66C8, 240 +/* 0x0B73 [0xC4 ] */ legato +LAYER_0B74: +/* 0x0B74 [0x6E 0x51 0x2A ] */ notedv PITCH_G4, 81, 42 +/* 0x0B77 [0xF4 0xFB ] */ rjump LAYER_0B74 + +.channel CHAN_0B79 +/* 0x0B79 [0x88 0x02 0xA5 ] */ ldlayer 0, LAYER_02A5 +/* 0x0B7C [0xFF ] */ end + +.layer LAYER_0B7D +/* 0x0B7D [0xC0 0x08 ] */ ldelay 8 +/* 0x0B7F [0xC2 0xFA ] */ transpose -6 +/* 0x0B81 [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x0B83 [0xCF 0xFF ] */ releaserate 255 +/* 0x0B85 [0x25 0x04 0x40 0x40 ] */ notedvg PITCH_BF3, 4, 64, 64 +/* 0x0B89 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x0B8B [0x5C 0x05 0x18 ] */ notedv PITCH_DF3, 5, 24 +/* 0x0B8E [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x0B90 [0xC2 0x30 ] */ transpose 48 +/* 0x0B92 [0x63 0x04 0x26 ] */ notedv PITCH_AF3, 4, 38 +/* 0x0B95 [0xFF ] */ end + +.channel CHAN_0B96 +/* 0x0B96 [0x88 0x02 0xC1 ] */ ldlayer 0, LAYER_02C1 +/* 0x0B99 [0xFF ] */ end + +.channel CHAN_0B9A +/* 0x0B9A [0x88 0x02 0xD0 ] */ ldlayer 0, LAYER_02D0 +/* 0x0B9D [0xFF ] */ end + +.channel CHAN_0B9E +/* 0x0B9E [0x88 0x02 0xDC ] */ ldlayer 0, LAYER_02DC +/* 0x0BA1 [0xFF ] */ end + +.channel CHAN_0BA2 +/* 0x0BA2 [0x88 0x02 0xEC ] */ ldlayer 0, LAYER_02EC +/* 0x0BA5 [0xFF ] */ end + +.channel CHAN_0BA6 +/* 0x0BA6 [0x88 0x02 0xF8 ] */ ldlayer 0, LAYER_02F8 +/* 0x0BA9 [0xFF ] */ end + +.channel CHAN_0BAA +/* 0x0BAA [0x88 0x03 0x04 ] */ ldlayer 0, LAYER_0304 +/* 0x0BAD [0xFF ] */ end + +.channel CHAN_0BAE +/* 0x0BAE [0x88 0x03 0x17 ] */ ldlayer 0, LAYER_0317 +/* 0x0BB1 [0xFF ] */ end + +.channel CHAN_0BB2 +/* 0x0BB2 [0x88 0x03 0x31 ] */ ldlayer 0, LAYER_0331 +/* 0x0BB5 [0xFF ] */ end + +.channel CHAN_0BB6 +/* 0x0BB6 [0x88 0x03 0x41 ] */ ldlayer 0, LAYER_0341 +/* 0x0BB9 [0xFF ] */ end + +.channel CHAN_0BBA +/* 0x0BBA [0x88 0x03 0x4D ] */ ldlayer 0, LAYER_034D +/* 0x0BBD [0xFF ] */ end + +.channel CHAN_0BBE +/* 0x0BBE [0x88 0x03 0x59 ] */ ldlayer 0, LAYER_0359 +/* 0x0BC1 [0xFF ] */ end + +.channel CHAN_0BC2 +/* 0x0BC2 [0x88 0x03 0x68 ] */ ldlayer 0, LAYER_0368 +/* 0x0BC5 [0x89 0x0B 0x7D ] */ ldlayer 1, LAYER_0B7D +/* 0x0BC8 [0xFF ] */ end + +.channel CHAN_0BC9 +/* 0x0BC9 [0x88 0x03 0x8E ] */ ldlayer 0, LAYER_038E +/* 0x0BCC [0xFF ] */ end + +.channel CHAN_0BCD +/* 0x0BCD [0xC1 0x00 ] */ instr SF0_INST_0 +/* 0x0BCF [0x88 0x03 0x9F ] */ ldlayer 0, LAYER_039F +/* 0x0BD2 [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0BD5 [0xFF ] */ end + +.layer LAYER_0BD6 +/* 0x0BD6 [0xC0 0x08 ] */ ldelay 8 +/* 0x0BD8 [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x0BDA [0xCF 0xFF ] */ releaserate 255 +/* 0x0BDC [0x27 0x04 0x5A 0x40 ] */ notedvg PITCH_C4, 4, 90, 64 +/* 0x0BE0 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x0BE2 [0x5F 0x05 0x26 ] */ notedv PITCH_E3, 5, 38 +/* 0x0BE5 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x0BE7 [0xC2 0x30 ] */ transpose 48 +/* 0x0BE9 [0x67 0x04 0x37 ] */ notedv PITCH_C4, 4, 55 +/* 0x0BEC [0xFF ] */ end + +.channel CHAN_0BED +/* 0x0BED [0x88 0x03 0xCC ] */ ldlayer 0, LAYER_03CC +/* 0x0BF0 [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0BF3 [0xFF ] */ end + +.channel CHAN_0BF4 +/* 0x0BF4 [0x88 0x03 0xE3 ] */ ldlayer 0, LAYER_03E3 +/* 0x0BF7 [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0BFA [0xFF ] */ end + +.channel CHAN_0BFB +/* 0x0BFB [0x88 0x03 0xF9 ] */ ldlayer 0, LAYER_03F9 +/* 0x0BFE [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0C01 [0xFF ] */ end + +.channel CHAN_0C02 +/* 0x0C02 [0x88 0x04 0x0D ] */ ldlayer 0, LAYER_040D +/* 0x0C05 [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0C08 [0xFF ] */ end + +.channel CHAN_0C09 +/* 0x0C09 [0x88 0x04 0x1F ] */ ldlayer 0, LAYER_041F +/* 0x0C0C [0xFF ] */ end + +.channel CHAN_0C0D +/* 0x0C0D [0x88 0x04 0x31 ] */ ldlayer 0, LAYER_0431 +/* 0x0C10 [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0C13 [0xFF ] */ end + +.channel CHAN_0C14 +/* 0x0C14 [0x88 0x04 0x4A ] */ ldlayer 0, LAYER_044A +/* 0x0C17 [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0C1A [0xFF ] */ end + +.channel CHAN_0C1B +/* 0x0C1B [0x88 0x04 0x6C ] */ ldlayer 0, LAYER_046C +/* 0x0C1E [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0C21 [0xFF ] */ end + +.channel CHAN_0C22 +/* 0x0C22 [0x88 0x04 0x80 ] */ ldlayer 0, LAYER_0480 +/* 0x0C25 [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0C28 [0xFF ] */ end + +.channel CHAN_0C29 +/* 0x0C29 [0x88 0x04 0x94 ] */ ldlayer 0, LAYER_0494 +/* 0x0C2C [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0C2F [0xFF ] */ end + +.channel CHAN_0C30 +/* 0x0C30 [0x88 0x04 0xA6 ] */ ldlayer 0, LAYER_04A6 +/* 0x0C33 [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0C36 [0xFF ] */ end + +.channel CHAN_0C37 +/* 0x0C37 [0x88 0x04 0xF1 ] */ ldlayer 0, LAYER_04F1 +/* 0x0C3A [0x89 0x0B 0xD6 ] */ ldlayer 1, LAYER_0BD6 +/* 0x0C3D [0xFF ] */ end + +.channel CHAN_0C3E +/* 0x0C3E [0x88 0x05 0x05 ] */ ldlayer 0, LAYER_0505 +/* 0x0C41 [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0C44 [0xFF ] */ end + +.layer LAYER_0C45 +/* 0x0C45 [0xC0 0x08 ] */ ldelay 8 +/* 0x0C47 [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x0C49 [0xCF 0xFF ] */ releaserate 255 +/* 0x0C4B [0x29 0x04 0x5A 0x40 ] */ notedvg PITCH_D4, 4, 90, 64 +/* 0x0C4F [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x0C51 [0x5D 0x05 0x26 ] */ notedv PITCH_D3, 5, 38 +/* 0x0C54 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x0C56 [0xC2 0x30 ] */ transpose 48 +/* 0x0C58 [0x65 0x04 0x37 ] */ notedv PITCH_BF3, 4, 55 +/* 0x0C5B [0xFF ] */ end + +.channel CHAN_0C5C +/* 0x0C5C [0x88 0x05 0x34 ] */ ldlayer 0, LAYER_0534 +/* 0x0C5F [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0C62 [0xFF ] */ end + +.channel CHAN_0C63 +/* 0x0C63 [0x88 0x05 0x49 ] */ ldlayer 0, LAYER_0549 +/* 0x0C66 [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0C69 [0xFF ] */ end + +.channel CHAN_0C6A +/* 0x0C6A [0x88 0x05 0x5F ] */ ldlayer 0, LAYER_055F +/* 0x0C6D [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0C70 [0xFF ] */ end + +.channel CHAN_0C71 +/* 0x0C71 [0x88 0x05 0x73 ] */ ldlayer 0, LAYER_0573 +/* 0x0C74 [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0C77 [0xFF ] */ end + +.channel CHAN_0C78 +/* 0x0C78 [0x88 0x05 0x85 ] */ ldlayer 0, LAYER_0585 +/* 0x0C7B [0xFF ] */ end + +.channel CHAN_0C7C +/* 0x0C7C [0x88 0x05 0x97 ] */ ldlayer 0, LAYER_0597 +/* 0x0C7F [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0C82 [0xFF ] */ end + +.channel CHAN_0C83 +/* 0x0C83 [0x88 0x05 0xB0 ] */ ldlayer 0, LAYER_05B0 +/* 0x0C86 [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0C89 [0xFF ] */ end + +.channel CHAN_0C8A +/* 0x0C8A [0x88 0x05 0xD0 ] */ ldlayer 0, LAYER_05D0 +/* 0x0C8D [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0C90 [0xFF ] */ end + +.channel CHAN_0C91 +/* 0x0C91 [0x88 0x05 0xE4 ] */ ldlayer 0, LAYER_05E4 +/* 0x0C94 [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0C97 [0xFF ] */ end + +.channel CHAN_0C98 +/* 0x0C98 [0x88 0x05 0xF8 ] */ ldlayer 0, LAYER_05F8 +/* 0x0C9B [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0C9E [0xFF ] */ end + +.channel CHAN_0C9F +/* 0x0C9F [0x88 0x06 0x0A ] */ ldlayer 0, LAYER_060A +/* 0x0CA2 [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0CA5 [0xFF ] */ end + +.channel CHAN_0CA6 +/* 0x0CA6 [0x88 0x06 0x39 ] */ ldlayer 0, LAYER_0639 +/* 0x0CA9 [0x89 0x0C 0x45 ] */ ldlayer 1, LAYER_0C45 +/* 0x0CAC [0xFF ] */ end + +.channel CHAN_0CAD +/* 0x0CAD [0x88 0x02 0xA5 ] */ ldlayer 0, LAYER_02A5 +/* 0x0CB0 [0xCC 0x02 ] */ ldi 2 +/* 0x0CB2 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0CB5 [0xFB 0x07 0x96 ] */ jump CHAN_0796 + +.channel CHAN_0CB8 +/* 0x0CB8 [0x88 0x02 0xC1 ] */ ldlayer 0, LAYER_02C1 +/* 0x0CBB [0xCC 0x05 ] */ ldi 5 +/* 0x0CBD [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0CC0 [0xFB 0x07 0xA0 ] */ jump CHAN_07A0 + +.channel CHAN_0CC3 +/* 0x0CC3 [0x88 0x02 0xD0 ] */ ldlayer 0, LAYER_02D0 +/* 0x0CC6 [0xCC 0x02 ] */ ldi 2 +/* 0x0CC8 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0CCB [0xFB 0x07 0xA7 ] */ jump CHAN_07A7 + +.channel CHAN_0CCE +/* 0x0CCE [0x88 0x02 0xDC ] */ ldlayer 0, LAYER_02DC +/* 0x0CD1 [0xCC 0x05 ] */ ldi 5 +/* 0x0CD3 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0CD6 [0xFB 0x07 0xAE ] */ jump CHAN_07AE + +.channel CHAN_0CD9 +/* 0x0CD9 [0x88 0x02 0xEC ] */ ldlayer 0, LAYER_02EC +/* 0x0CDC [0xCC 0x05 ] */ ldi 5 +/* 0x0CDE [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0CE1 [0xFB 0x07 0xB5 ] */ jump CHAN_07B5 + +.channel CHAN_0CE4 +/* 0x0CE4 [0x88 0x02 0xF8 ] */ ldlayer 0, LAYER_02F8 +/* 0x0CE7 [0xCC 0x05 ] */ ldi 5 +/* 0x0CE9 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0CEC [0xFB 0x07 0xBC ] */ jump CHAN_07BC + +.channel CHAN_0CEF +/* 0x0CEF [0x88 0x03 0x04 ] */ ldlayer 0, LAYER_0304 +/* 0x0CF2 [0xCC 0x05 ] */ ldi 5 +/* 0x0CF4 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0CF7 [0xFB 0x07 0xC3 ] */ jump CHAN_07C3 + +.channel CHAN_0CFA +/* 0x0CFA [0x88 0x03 0x17 ] */ ldlayer 0, LAYER_0317 +/* 0x0CFD [0xCC 0x05 ] */ ldi 5 +/* 0x0CFF [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0D02 [0xFB 0x07 0xCA ] */ jump CHAN_07CA + +.channel CHAN_0D05 +/* 0x0D05 [0x88 0x03 0x31 ] */ ldlayer 0, LAYER_0331 +/* 0x0D08 [0xCC 0x05 ] */ ldi 5 +/* 0x0D0A [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0D0D [0xFB 0x07 0xD1 ] */ jump CHAN_07D1 + +.channel CHAN_0D10 +/* 0x0D10 [0x88 0x03 0x41 ] */ ldlayer 0, LAYER_0341 +/* 0x0D13 [0xCC 0x05 ] */ ldi 5 +/* 0x0D15 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0D18 [0xFB 0x07 0xD8 ] */ jump CHAN_07D8 + +.channel CHAN_0D1B +/* 0x0D1B [0x88 0x03 0x4D ] */ ldlayer 0, LAYER_034D +/* 0x0D1E [0xCC 0x05 ] */ ldi 5 +/* 0x0D20 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0D23 [0xFB 0x07 0xDF ] */ jump CHAN_07DF + +.channel CHAN_0D26 +/* 0x0D26 [0x88 0x03 0x59 ] */ ldlayer 0, LAYER_0359 +/* 0x0D29 [0xCC 0x01 ] */ ldi 1 +/* 0x0D2B [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0D2E [0xFB 0x07 0xE6 ] */ jump CHAN_07E6 + +.channel CHAN_0D31 +/* 0x0D31 [0x88 0x03 0x8E ] */ ldlayer 0, LAYER_038E +/* 0x0D34 [0xCC 0x05 ] */ ldi 5 +/* 0x0D36 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x0D39 [0xFB 0x07 0xA7 ] */ jump CHAN_07A7 + +.channel CHAN_0D3C +/* 0x0D3C [0xD8 0x14 ] */ vibdepth 20 +/* 0x0D3E [0xCC 0x04 ] */ ldi 4 +/* 0x0D40 [0xFB 0x0A 0xDA ] */ jump CHAN_0ADA + +.channel CHAN_0D43 +/* 0x0D43 [0x88 0x0D 0x47 ] */ ldlayer 0, LAYER_0D47 +/* 0x0D46 [0xFF ] */ end + +.layer LAYER_0D47 +/* 0x0D47 [0xC6 0x0C ] */ instr SF0_INST_12 +/* 0x0D49 [0xCB 0x66 0xA0 0xEB ] */ env ENVELOPE_66A0, 235 +/* 0x0D4D [0x6C 0x0A 0x5A ] */ notedv PITCH_F4, 10, 90 +/* 0x0D50 [0x6E 0x0E 0x5A ] */ notedv PITCH_G4, 14, 90 +/* 0x0D53 [0x72 0x7F 0x4B ] */ notedv PITCH_B4, 127, 75 +/* 0x0D56 [0xFF ] */ end + +.channel CHAN_0D57 +/* 0x0D57 [0x88 0x0D 0x5E ] */ ldlayer 0, LAYER_0D5E +/* 0x0D5A [0x89 0x1B 0x3F ] */ ldlayer 1, LAYER_1B3F +/* 0x0D5D [0xFF ] */ end + +.layer LAYER_0D5E +/* 0x0D5E [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x0D60 [0xCB 0x65 0xD8 0xE4 ] */ env ENVELOPE_65D8, 228 +/* 0x0D64 [0x73 0x64 0x64 ] */ notedv PITCH_C5, 100, 100 +/* 0x0D67 [0xFF ] */ end + +.channel CHAN_0D68 +/* 0x0D68 [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x0D6A [0x88 0x0D 0x74 ] */ ldlayer 0, LAYER_0D74 +/* 0x0D6D [0x89 0x29 0xFC ] */ ldlayer 1, LAYER_29FC +/* 0x0D70 [0x8A 0x2A 0x01 ] */ ldlayer 2, LAYER_2A01 +/* 0x0D73 [0xFF ] */ end + +.layer LAYER_0D74 +/* 0x0D74 [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x0D76 [0xC7 0x81 0x27 0x2D ] */ portamento 0x81, PITCH_C4, 45 +/* 0x0D7A [0x6B 0x81 0x18 0x3C ] */ notedv PITCH_E4, 280, 60 +/* 0x0D7E [0xFF ] */ end + +.channel CHAN_0D7F +/* 0x0D7F [0x88 0x0D 0x8A ] */ ldlayer 0, LAYER_0D8A +/* 0x0D82 [0x89 0x0D 0x9A ] */ ldlayer 1, LAYER_0D9A +/* 0x0D85 [0xD7 0xC0 ] */ vibfreq 192 +/* 0x0D87 [0xD8 0x20 ] */ vibdepth 32 +/* 0x0D89 [0xFF ] */ end + +.layer LAYER_0D8A +/* 0x0D8A [0xC6 0x83 ] */ instr FONTANY_INSTR_SQUARE +/* 0x0D8C [0xCB 0x68 0x18 0xDD ] */ env ENVELOPE_6818, 221 +/* 0x0D90 [0xC4 ] */ legato +/* 0x0D91 [0xC7 0x81 0x24 0x40 ] */ portamento 0x81, PITCH_A3, 64 +LAYER_0D95: +/* 0x0D95 [0x70 0x78 0x22 ] */ notedv PITCH_A4, 120, 34 +/* 0x0D98 [0xF4 0xFB ] */ rjump LAYER_0D95 + +.layer LAYER_0D9A +/* 0x0D9A [0xC6 0x40 ] */ instr SF0_INST_64 +/* 0x0D9C [0xCB 0x66 0xFC 0xED ] */ env ENVELOPE_66FC, 237 +/* 0x0DA0 [0xC7 0x83 0x24 0xFF ] */ portamento 0x83, PITCH_A3, 255 +LAYER_0DA4: +/* 0x0DA4 [0x67 0x14 0x55 ] */ notedv PITCH_C4, 20, 85 +/* 0x0DA7 [0xF4 0xFB ] */ rjump LAYER_0DA4 + +.channel CHAN_0DA9 +/* 0x0DA9 [0x88 0x0D 0xB8 ] */ ldlayer 0, LAYER_0DB8 +/* 0x0DAC [0x89 0x0D 0xB6 ] */ ldlayer 1, LAYER_0DB6 +CHAN_0DAF: +/* 0x0DAF [0xE1 0x0A 0x64 0x08 ] */ vibfreqgrad 10, 100, 8 +/* 0x0DB3 [0xD8 0x0F ] */ vibdepth 15 +/* 0x0DB5 [0xFF ] */ end + +.layer LAYER_0DB6 +/* 0x0DB6 [0xC2 0x18 ] */ transpose 24 +.layer LAYER_0DB8 +/* 0x0DB8 [0xC7 0x81 0x0F 0xFF ] */ portamento 0x81, PITCH_C2, 255 +.layer LAYER_0DBC +/* 0x0DBC [0xC6 0x87 ] */ instr FONTANY_INSTR_4PULSE +/* 0x0DBE [0xCB 0x66 0x74 0xFB ] */ env ENVELOPE_6674, 251 +/* 0x0DC2 [0xC4 ] */ legato +LAYER_0DC3: +/* 0x0DC3 [0x67 0x81 0xF4 0x23 ] */ notedv PITCH_C4, 500, 35 +/* 0x0DC7 [0xF4 0xFA ] */ rjump LAYER_0DC3 + +.channel CHAN_0DC9 +/* 0x0DC9 [0x88 0x0D 0xB6 ] */ ldlayer 0, LAYER_0DB6 +/* 0x0DCC [0xF4 0xE1 ] */ rjump CHAN_0DAF + +.channel CHAN_0DCE +/* 0x0DCE [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x0DD0 [0x88 0x0D 0xD7 ] */ ldlayer 0, LAYER_0DD7 +/* 0x0DD3 [0x89 0x2A 0x01 ] */ ldlayer 1, LAYER_2A01 +/* 0x0DD6 [0xFF ] */ end + +.layer LAYER_0DD7 +/* 0x0DD7 [0xC2 0x1E ] */ transpose 30 +/* 0x0DD9 [0xC4 ] */ legato +/* 0x0DDA [0xC7 0x81 0x2B 0x40 ] */ portamento 0x81, PITCH_E4, 64 +/* 0x0DDE [0x69 0x80 0xAA 0x50 ] */ notedv PITCH_D4, 170, 80 +/* 0x0DE2 [0xFF ] */ end + +.channel CHAN_0DE3 +/* 0x0DE3 [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x0DE5 [0xD8 0x09 ] */ vibdepth 9 +/* 0x0DE7 [0xD7 0x80 ] */ vibfreq 128 +/* 0x0DE9 [0xDA 0x68 0x18 ] */ env ENVELOPE_6818 +/* 0x0DEC [0xD9 0xEB ] */ releaserate 235 +/* 0x0DEE [0x88 0x0D 0xF2 ] */ ldlayer 0, LAYER_0DF2 +/* 0x0DF1 [0xFF ] */ end + +.layer LAYER_0DF2 +/* 0x0DF2 [0xC4 ] */ legato +LAYER_0DF3: +/* 0x0DF3 [0x77 0xFD 0x00 0x5F ] */ notedv PITCH_E5, 32000, 95 +/* 0x0DF7 [0xF4 0xFA ] */ rjump LAYER_0DF3 + +.channel CHAN_0DF9 +/* 0x0DF9 [0x88 0x0D 0xBC ] */ ldlayer 0, LAYER_0DBC +/* 0x0DFC [0x89 0x0E 0x04 ] */ ldlayer 1, LAYER_0E04 +/* 0x0DFF [0xD7 0x64 ] */ vibfreq 100 +/* 0x0E01 [0xD8 0x0F ] */ vibdepth 15 +/* 0x0E03 [0xFF ] */ end + +.layer LAYER_0E04 +/* 0x0E04 [0xC2 0x18 ] */ transpose 24 +/* 0x0E06 [0xF4 0xB4 ] */ rjump LAYER_0DBC + +.channel CHAN_0E08 +/* 0x0E08 [0x88 0x0E 0x0C ] */ ldlayer 0, LAYER_0E0C +/* 0x0E0B [0xFF ] */ end + +.layer LAYER_0E0C +/* 0x0E0C [0xC6 0x0C ] */ instr SF0_INST_12 +LAYER_0E0E: +/* 0x0E0E [0xCB 0x67 0x04 0xFB ] */ env ENVELOPE_6704, 251 +/* 0x0E12 [0xC4 ] */ legato +LAYER_0E13: +/* 0x0E13 [0x67 0x7F 0x58 ] */ notedv PITCH_C4, 127, 88 +/* 0x0E16 [0xF4 0xFB ] */ rjump LAYER_0E13 + +.channel CHAN_0E18 +/* 0x0E18 [0x88 0x0E 0x1C ] */ ldlayer 0, LAYER_0E1C +/* 0x0E1B [0xFF ] */ end + +.layer LAYER_0E1C +/* 0x0E1C [0xC6 0x0D ] */ instr SF0_INST_13 +/* 0x0E1E [0xF4 0xEE ] */ rjump LAYER_0E0E + +.channel CHAN_0E20 +/* 0x0E20 [0x88 0x0E 0x24 ] */ ldlayer 0, LAYER_0E24 +/* 0x0E23 [0xFF ] */ end + +.layer LAYER_0E24 +/* 0x0E24 [0xC6 0x0E ] */ instr SF0_INST_14 +/* 0x0E26 [0xCB 0x67 0x04 0xFB ] */ env ENVELOPE_6704, 251 +/* 0x0E2A [0xC4 ] */ legato +LAYER_0E2B: +/* 0x0E2B [0x6C 0x7F 0x50 ] */ notedv PITCH_F4, 127, 80 +/* 0x0E2E [0xF4 0xFB ] */ rjump LAYER_0E2B + +.channel CHAN_0E30 +/* 0x0E30 [0x88 0x0E 0x34 ] */ ldlayer 0, LAYER_0E34 +/* 0x0E33 [0xFF ] */ end + +.layer LAYER_0E34 +/* 0x0E34 [0xC6 0x10 ] */ instr SF0_INST_16 +/* 0x0E36 [0xF4 0xD6 ] */ rjump LAYER_0E0E + +.channel CHAN_0E38 +/* 0x0E38 [0x88 0x0E 0x3C ] */ ldlayer 0, LAYER_0E3C +/* 0x0E3B [0xFF ] */ end + +.layer LAYER_0E3C +/* 0x0E3C [0xC6 0x10 ] */ instr SF0_INST_16 +/* 0x0E3E [0xCB 0x67 0x04 0xFB ] */ env ENVELOPE_6704, 251 +/* 0x0E42 [0xC4 ] */ legato +LAYER_0E43: +/* 0x0E43 [0x67 0x7F 0x56 ] */ notedv PITCH_C4, 127, 86 +/* 0x0E46 [0xF4 0xFB ] */ rjump LAYER_0E43 + +.channel CHAN_0E48 +/* 0x0E48 [0x88 0x0E 0x4C ] */ ldlayer 0, LAYER_0E4C +/* 0x0E4B [0xFF ] */ end + +.layer LAYER_0E4C +/* 0x0E4C [0xC6 0x11 ] */ instr SF0_INST_17 +/* 0x0E4E [0xF4 0xBE ] */ rjump LAYER_0E0E + +.channel CHAN_0E50 +/* 0x0E50 [0x88 0x0E 0x54 ] */ ldlayer 0, LAYER_0E54 +/* 0x0E53 [0xFF ] */ end + +.layer LAYER_0E54 +/* 0x0E54 [0xC6 0x0E ] */ instr SF0_INST_14 +/* 0x0E56 [0xCB 0x67 0x04 0xFB ] */ env ENVELOPE_6704, 251 +/* 0x0E5A [0xC4 ] */ legato +LAYER_0E5B: +/* 0x0E5B [0x63 0x7F 0x50 ] */ notedv PITCH_AF3, 127, 80 +/* 0x0E5E [0xF4 0xFB ] */ rjump LAYER_0E5B + +.channel CHAN_0E60 +/* 0x0E60 [0x88 0x0E 0x64 ] */ ldlayer 0, LAYER_0E64 +/* 0x0E63 [0xFF ] */ end + +.layer LAYER_0E64 +/* 0x0E64 [0xC6 0x0D ] */ instr SF0_INST_13 +/* 0x0E66 [0xCB 0x67 0x04 0xFB ] */ env ENVELOPE_6704, 251 +/* 0x0E6A [0xC4 ] */ legato +LAYER_0E6B: +/* 0x0E6B [0x5C 0x7F 0x5F ] */ notedv PITCH_DF3, 127, 95 +/* 0x0E6E [0xF4 0xFB ] */ rjump LAYER_0E6B + +.filter FILTER_0E70 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.filter FILTER_0E80 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.filter FILTER_0E90 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.channel itembank_handler_1 +/* 0x0EA0 [0xB0 0x16 0x60 ] */ ldfilter FILTER_1660 +/* 0x0EA3 [0xF4 0x03 ] */ rjump CHAN_0EA8 + +.channel itembank_handler_2 +/* 0x0EA5 [0xB0 0x16 0x70 ] */ ldfilter FILTER_1670 +CHAN_0EA8: +/* 0x0EA8 [0xC2 0x0E 0xE3 ] */ dyntbl itembank_table +/* 0x0EAB [0xFC 0x00 0x72 ] */ call CHAN_0072 +/* 0x0EAE [0xC6 0x00 ] */ font Soundfont_0_ID +/* 0x0EB0 [0xDC 0x7F ] */ panweight 127 +/* 0x0EB2 [0xB3 0x00 ] */ filter 0, 0 +CHAN_0EB4: +/* 0x0EB4 [0xFE ] */ delay1 +/* 0x0EB5 [0x60 ] */ ldio IO_PORT_0 +/* 0x0EB6 [0xC8 0x01 ] */ sub 1 +/* 0x0EB8 [0xF3 0x02 ] */ rbeqz CHAN_0EBC +/* 0x0EBA [0xF4 0xF8 ] */ rjump CHAN_0EB4 + +CHAN_0EBC: +/* 0x0EBC [0xFC 0x00 0x7C ] */ call CHAN_007C +/* 0x0EBF [0x92 ] */ dellayer 2 +/* 0x0EC0 [0xD8 0x00 ] */ vibdepth 0 +/* 0x0EC2 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x0EC3 [0xE4 ] */ dyncall +CHAN_0EC4: +/* 0x0EC4 [0x63 ] */ ldio IO_PORT_3 +/* 0x0EC5 [0xC7 0x00 0x0E 0xCA ] */ stseq 0, STSEQ_HERE + STSEQ_FILTER_IDX +CHAN_0EC9: +/* 0x0EC9 [0xB3 0x0F ] */ filter 0, 15 +/* 0x0ECB [0xFC 0x00 0x84 ] */ call CHAN_0084 +/* 0x0ECE [0xFE ] */ delay1 +/* 0x0ECF [0x60 ] */ ldio IO_PORT_0 +/* 0x0ED0 [0xF3 0x0A ] */ rbeqz CHAN_0EDC +/* 0x0ED2 [0xF2 0x02 ] */ rbltz CHAN_0ED6 +/* 0x0ED4 [0xF4 0xE6 ] */ rjump CHAN_0EBC + +CHAN_0ED6: +/* 0x0ED6 [0x80 ] */ testlayer 0 +/* 0x0ED7 [0xF3 0xEB ] */ rbeqz CHAN_0EC4 +/* 0x0ED9 [0xCC 0xFF ] */ ldi 255 +/* 0x0EDB [0x71 ] */ stio IO_PORT_1 +CHAN_0EDC: +/* 0x0EDC [0x90 ] */ dellayer 0 +/* 0x0EDD [0x91 ] */ dellayer 1 +/* 0x0EDE [0x92 ] */ dellayer 2 +/* 0x0EDF [0xCC 0x00 ] */ ldi 0 +/* 0x0EE1 [0xF4 0xD1 ] */ rjump CHAN_0EB4 + +#define DEFINE_SFX(lblName, sfxId, priority, decay, rand, flags) \ + entry lblName + +.table_unaligned itembank_table + #include "itembank_table.h" + +#undef DEFINE_SFX + +.channel CHAN_0F83 +/* 0x0F83 [0xC1 0x1A ] */ instr SF0_INST_26 +/* 0x0F85 [0x88 0x0F 0x89 ] */ ldlayer 0, LAYER_0F89 +/* 0x0F88 [0xFF ] */ end + +.layer LAYER_0F89 +/* 0x0F89 [0x6C 0x18 0x6E ] */ notedv PITCH_F4, 24, 110 +/* 0x0F8C [0xFF ] */ end + +.channel CHAN_0F8D +/* 0x0F8D [0x88 0x0F 0x91 ] */ ldlayer 0, LAYER_0F91 +/* 0x0F90 [0xFF ] */ end + +.layer LAYER_0F91 +/* 0x0F91 [0xC6 0x1B ] */ instr SF0_INST_27 +/* 0x0F93 [0xC7 0x81 0x1D 0xFF ] */ portamento 0x81, PITCH_D3, 255 +/* 0x0F97 [0x51 0x2A 0x64 ] */ notedv PITCH_D2, 42, 100 +/* 0x0F9A [0xFF ] */ end + +.channel CHAN_0F9B +/* 0x0F9B [0xC1 0x1C ] */ instr SF0_INST_28 +/* 0x0F9D [0x88 0x0F 0xA1 ] */ ldlayer 0, LAYER_0FA1 +/* 0x0FA0 [0xFF ] */ end + +.layer LAYER_0FA1 +/* 0x0FA1 [0x64 0x30 0x64 ] */ notedv PITCH_A3, 48, 100 +/* 0x0FA4 [0xFF ] */ end + +.channel CHAN_0FA5 +/* 0x0FA5 [0xC1 0x1D ] */ instr SF0_INST_29 +/* 0x0FA7 [0x88 0x0F 0xAB ] */ ldlayer 0, LAYER_0FAB +/* 0x0FAA [0xFF ] */ end + +.layer LAYER_0FAB +/* 0x0FAB [0x64 0x30 0x64 ] */ notedv PITCH_A3, 48, 100 +/* 0x0FAE [0xFF ] */ end + +.channel CHAN_0FAF +/* 0x0FAF [0x88 0x0F 0xB3 ] */ ldlayer 0, LAYER_0FB3 +/* 0x0FB2 [0xFF ] */ end + +.layer LAYER_0FB3 +/* 0x0FB3 [0xC6 0x1E ] */ instr SF0_INST_30 +/* 0x0FB5 [0x64 0x30 0x64 ] */ notedv PITCH_A3, 48, 100 +/* 0x0FB8 [0xFF ] */ end + +.channel CHAN_0FB9 +/* 0x0FB9 [0xC1 0x1F ] */ instr SF0_INST_31 +/* 0x0FBB [0x88 0x0F 0xBF ] */ ldlayer 0, LAYER_0FBF +/* 0x0FBE [0xFF ] */ end + +.layer LAYER_0FBF +/* 0x0FBF [0xC4 ] */ legato +/* 0x0FC0 [0xC7 0x85 0x00 0xFF ] */ portamento 0x85, PITCH_A0, 255 +/* 0x0FC4 [0x64 0x0C 0x50 ] */ notedv PITCH_A3, 12, 80 +/* 0x0FC7 [0x54 0x19 0x50 ] */ notedv PITCH_F2, 25, 80 +/* 0x0FCA [0xFF ] */ end + +.channel CHAN_0FCB +/* 0x0FCB [0xC1 0x20 ] */ instr SF0_INST_32 +/* 0x0FCD [0xDA 0x66 0x4C ] */ env ENVELOPE_664C +/* 0x0FD0 [0x88 0x0F 0xD4 ] */ ldlayer 0, LAYER_0FD4 +/* 0x0FD3 [0xFF ] */ end + +.layer LAYER_0FD4 +/* 0x0FD4 [0x66 0x06 0x52 ] */ notedv PITCH_B3, 6, 82 +/* 0x0FD7 [0x5F 0x00 0x52 ] */ notedv PITCH_E3, 0, 82 +/* 0x0FDA [0xFF ] */ end + +.channel CHAN_0FDB +/* 0x0FDB [0xC1 0x21 ] */ instr SF0_INST_33 +/* 0x0FDD [0x88 0x0F 0xE1 ] */ ldlayer 0, LAYER_0FE1 +/* 0x0FE0 [0xFF ] */ end + +.layer LAYER_0FE1 +/* 0x0FE1 [0xC7 0x81 0x2B 0xFF ] */ portamento 0x81, PITCH_E4, 255 +/* 0x0FE5 [0x6D 0x0E 0x6E ] */ notedv PITCH_GF4, 14, 110 +/* 0x0FE8 [0xFF ] */ end + +.channel CHAN_0FE9 +/* 0x0FE9 [0xC1 0x20 ] */ instr SF0_INST_32 +/* 0x0FEB [0xDA 0x65 0xE8 ] */ env ENVELOPE_65E8 +/* 0x0FEE [0x88 0x0F 0xF5 ] */ ldlayer 0, LAYER_0FF5 +/* 0x0FF1 [0x89 0x0F 0xF9 ] */ ldlayer 1, LAYER_0FF9 +/* 0x0FF4 [0xFF ] */ end + +.layer LAYER_0FF5 +/* 0x0FF5 [0x67 0x24 0x69 ] */ notedv PITCH_C4, 36, 105 +/* 0x0FF8 [0xFF ] */ end + +.layer LAYER_0FF9 +/* 0x0FF9 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x0FFB [0xC2 0x30 ] */ transpose 48 +/* 0x0FFD [0x5C 0x00 0x64 ] */ notedv PITCH_DF3, 0, 100 +/* 0x1000 [0xFF ] */ end + +.channel CHAN_1001 +/* 0x1001 [0xC1 0x26 ] */ instr SF0_INST_38 +/* 0x1003 [0x88 0x10 0x07 ] */ ldlayer 0, LAYER_1007 +/* 0x1006 [0xFF ] */ end + +.layer LAYER_1007 +/* 0x1007 [0x67 0x45 0x64 ] */ notedv PITCH_C4, 69, 100 +/* 0x100A [0xFF ] */ end + +.channel CHAN_100B +/* 0x100B [0xED 0x14 ] */ gain 20 +/* 0x100D [0x88 0x10 0x11 ] */ ldlayer 0, LAYER_1011 +/* 0x1010 [0xFF ] */ end + +.layer LAYER_1011 +/* 0x1011 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x1013 [0xCF 0xEC ] */ releaserate 236 +/* 0x1015 [0x44 0x06 0x4C ] */ notedv PITCH_DF1, 6, 76 +/* 0x1018 [0xC6 0x24 ] */ instr SF0_INST_36 +/* 0x101A [0xCB 0x65 0xE8 0xF0 ] */ env ENVELOPE_65E8, 240 +/* 0x101E [0x66 0x24 0x6E ] */ notedv PITCH_B3, 36, 110 +/* 0x1021 [0xFF ] */ end + +.channel CHAN_1022 +/* 0x1022 [0x88 0x10 0x33 ] */ ldlayer 0, LAYER_1033 +/* 0x1025 [0x89 0x10 0x29 ] */ ldlayer 1, LAYER_1029 +/* 0x1028 [0xFF ] */ end + +.layer LAYER_1029 +/* 0x1029 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x102B [0xCB 0x66 0x4C 0xFF ] */ env ENVELOPE_664C, 255 +/* 0x102F [0x7E 0x0C 0x6C ] */ notedv PITCH_B5, 12, 108 +/* 0x1032 [0xFF ] */ end + +.layer LAYER_1033 +/* 0x1033 [0xC6 0x22 ] */ instr SF0_INST_34 +LAYER_1035: +/* 0x1035 [0x72 0x07 0x5D ] */ notedv PITCH_B4, 7, 93 +/* 0x1038 [0xF4 0xFB ] */ rjump LAYER_1035 + +.channel CHAN_103A +/* 0x103A [0xED 0x0F ] */ gain 15 +/* 0x103C [0x88 0x10 0x45 ] */ ldlayer 0, LAYER_1045 +/* 0x103F [0x89 0x10 0x5C ] */ ldlayer 1, LAYER_105C +/* 0x1042 [0xFF ] */ end + +.layer LAYER_1043 +/* 0x1043 [0xC2 0xF7 ] */ transpose -9 +.layer LAYER_1045 +/* 0x1045 [0xC6 0x20 ] */ instr SF0_INST_32 +/* 0x1047 [0xCB 0x65 0xE8 0xFB ] */ env ENVELOPE_65E8, 251 +/* 0x104B [0xC7 0x81 0x10 0x64 ] */ portamento 0x81, PITCH_DF2, 100 +/* 0x104F [0x6C 0x06 0x66 ] */ notedv PITCH_F4, 6, 102 +/* 0x1052 [0xC7 0x81 0x14 0x64 ] */ portamento 0x81, PITCH_F2, 100 +/* 0x1056 [0x77 0x28 0x6E ] */ notedv PITCH_E5, 40, 110 +/* 0x1059 [0xFF ] */ end + +.layer LAYER_105A +/* 0x105A [0xC2 0xF7 ] */ transpose -9 +.layer LAYER_105C +/* 0x105C [0xC6 0x2A ] */ instr SF0_INST_42 +/* 0x105E [0xCB 0x66 0x10 0xFB ] */ env ENVELOPE_6610, 251 +/* 0x1062 [0xC7 0x81 0x20 0xD0 ] */ portamento 0x81, PITCH_F3, 208 +/* 0x1066 [0x7E 0x28 0x50 ] */ notedv PITCH_B5, 40, 80 +/* 0x1069 [0xFF ] */ end + +.channel CHAN_106A +/* 0x106A [0xC1 0x23 ] */ instr SF0_INST_35 +/* 0x106C [0x88 0x10 0x70 ] */ ldlayer 0, LAYER_1070 +/* 0x106F [0xFF ] */ end + +.layer LAYER_1070 +/* 0x1070 [0xC4 ] */ legato +LAYER_1071: +/* 0x1071 [0x64 0x30 0x50 ] */ notedv PITCH_A3, 48, 80 +/* 0x1074 [0xF4 0xFB ] */ rjump LAYER_1071 + +.channel CHAN_1076 +/* 0x1076 [0x88 0x10 0x7A ] */ ldlayer 0, LAYER_107A +/* 0x1079 [0xFF ] */ end + +.layer LAYER_107A +/* 0x107A [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x107C [0xCB 0x66 0xD0 0xE1 ] */ env ENVELOPE_66D0, 225 +/* 0x1080 [0x6C 0x80 0xA0 0x6E ] */ notedv PITCH_F4, 160, 110 +/* 0x1084 [0xFF ] */ end + +.channel CHAN_1085 +/* 0x1085 [0x88 0x10 0x89 ] */ ldlayer 0, LAYER_1089 +/* 0x1088 [0xFF ] */ end + +.layer LAYER_1089 +/* 0x1089 [0xC6 0x23 ] */ instr SF0_INST_35 +/* 0x108B [0xCB 0x65 0xE8 0xF5 ] */ env ENVELOPE_65E8, 245 +/* 0x108F [0xC7 0x85 0x22 0xFF ] */ portamento 0x85, PITCH_G3, 255 +/* 0x1093 [0x6B 0x08 0x69 ] */ notedv PITCH_E4, 8, 105 +/* 0x1096 [0x60 0x18 0x69 ] */ notedv PITCH_F3, 24, 105 +/* 0x1099 [0xFF ] */ end + +/* 0x109A [0xC7 0x81 0x20 0xFF ] */ portamento 0x81, PITCH_F3, 255 +/* 0x109E [0x54 0x1E 0x69 ] */ notedv PITCH_F2, 30, 105 +/* 0x10A1 [0xFF ] */ end + +.channel CHAN_10A2 +/* 0x10A2 [0xC1 0x1E ] */ instr SF0_INST_30 +/* 0x10A4 [0xDA 0x66 0x88 ] */ env ENVELOPE_6688 +/* 0x10A7 [0x88 0x10 0xAB ] */ ldlayer 0, LAYER_10AB +/* 0x10AA [0xFF ] */ end + +.layer LAYER_10AB +/* 0x10AB [0xC4 ] */ legato +/* 0x10AC [0xC7 0x85 0x08 0xFF ] */ portamento 0x85, PITCH_F1, 255 +/* 0x10B0 [0x54 0x18 0x5A ] */ notedv PITCH_F2, 24, 90 +/* 0x10B3 [0x66 0x0E 0x5A ] */ notedv PITCH_B3, 14, 90 +/* 0x10B6 [0xC5 ] */ nolegato +/* 0x10B7 [0xC4 ] */ legato +/* 0x10B8 [0xC7 0x85 0x0A 0xFF ] */ portamento 0x85, PITCH_G1, 255 +/* 0x10BC [0x56 0x14 0x5A ] */ notedv PITCH_G2, 20, 90 +/* 0x10BF [0x67 0x0C 0x5A ] */ notedv PITCH_C4, 12, 90 +/* 0x10C2 [0xC5 ] */ nolegato +LAYER_10C3: +/* 0x10C3 [0xC4 ] */ legato +/* 0x10C4 [0xC7 0x85 0x0C 0xFF ] */ portamento 0x85, PITCH_A1, 255 +/* 0x10C8 [0x58 0x11 0x5A ] */ notedv PITCH_A2, 17, 90 +/* 0x10CB [0x69 0x0A 0x5A ] */ notedv PITCH_D4, 10, 90 +/* 0x10CE [0xC5 ] */ nolegato +/* 0x10CF [0xFB 0x10 0xC3 ] */ jump LAYER_10C3 + +.channel CHAN_10D2 +/* 0x10D2 [0xC1 0x2B ] */ instr SF0_INST_43 +/* 0x10D4 [0xDA 0x66 0xC8 ] */ env ENVELOPE_66C8 +/* 0x10D7 [0x88 0x10 0xDB ] */ ldlayer 0, LAYER_10DB +/* 0x10DA [0xFF ] */ end + +.layer LAYER_10DB +/* 0x10DB [0x55 0x03 0x6E ] */ notedv PITCH_GF2, 3, 110 +/* 0x10DE [0xC7 0x02 0x0B 0x0C ] */ portamento 0x02, PITCH_AF1, 12 +/* 0x10E2 [0x63 0x06 0x6E ] */ notedv PITCH_AF3, 6, 110 +/* 0x10E5 [0xFF ] */ end + +.channel CHAN_10E6 +/* 0x10E6 [0x88 0x10 0xEA ] */ ldlayer 0, LAYER_10EA +/* 0x10E9 [0xFF ] */ end + +.layer LAYER_10EA +/* 0x10EA [0xC6 0x1B ] */ instr SF0_INST_27 +/* 0x10EC [0xC7 0x81 0x13 0xFF ] */ portamento 0x81, PITCH_E2, 255 +/* 0x10F0 [0x47 0x60 0x64 ] */ notedv PITCH_E1, 96, 100 +/* 0x10F3 [0xFF ] */ end + +.channel CHAN_10F4 +/* 0x10F4 [0x88 0x10 0xF8 ] */ ldlayer 0, LAYER_10F8 +/* 0x10F7 [0xFF ] */ end + +.layer LAYER_10F8 +/* 0x10F8 [0xFC 0x11 0x03 ] */ call LAYER_1103 +/* 0x10FB [0xC7 0x01 0x22 0x18 ] */ portamento 0x01, PITCH_G3, 24 +/* 0x10FF [0x69 0x48 0x64 ] */ notedv PITCH_D4, 72, 100 +/* 0x1102 [0xFF ] */ end + +.layer LAYER_1103 +/* 0x1103 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x1105 [0xC2 0xEE ] */ transpose -18 +/* 0x1107 [0x5F 0x09 0x64 ] */ notedv PITCH_E3, 9, 100 +/* 0x110A [0xFF ] */ end + +.channel CHAN_110B +/* 0x110B [0xC1 0x1E ] */ instr SF0_INST_30 +/* 0x110D [0x88 0x11 0x11 ] */ ldlayer 0, LAYER_1111 +/* 0x1110 [0xFF ] */ end + +.layer LAYER_1111 +/* 0x1111 [0xC7 0x81 0x26 0x7F ] */ portamento 0x81, PITCH_B3, 127 +/* 0x1115 [0x47 0x14 0x69 ] */ notedv PITCH_E1, 20, 105 +/* 0x1118 [0xC7 0x81 0x03 0x7F ] */ portamento 0x81, PITCH_C1, 127 +/* 0x111C [0x60 0x0A 0x69 ] */ notedv PITCH_F3, 10, 105 +/* 0x111F [0xFF ] */ end + +.channel CHAN_1120 +/* 0x1120 [0xFB 0x10 0x01 ] */ jump CHAN_1001 + +.channel CHAN_1123 +/* 0x1123 [0x88 0x11 0x2A ] */ ldlayer 0, LAYER_112A +/* 0x1126 [0x89 0x11 0x3A ] */ ldlayer 1, LAYER_113A +/* 0x1129 [0xFF ] */ end + +.layer LAYER_112A +/* 0x112A [0xC2 0xFE ] */ transpose -2 +/* 0x112C [0xC6 0x1E ] */ instr SF0_INST_30 +/* 0x112E [0xC4 ] */ legato +/* 0x112F [0xC7 0x85 0x03 0xFF ] */ portamento 0x85, PITCH_C1, 255 +/* 0x1133 [0x4F 0x09 0x5A ] */ notedv PITCH_C2, 9, 90 +/* 0x1136 [0x65 0x12 0x5A ] */ notedv PITCH_BF3, 18, 90 +/* 0x1139 [0xFF ] */ end + +.layer LAYER_113A +/* 0x113A [0xC2 0xFF ] */ transpose -1 +/* 0x113C [0xC6 0x25 ] */ instr SF0_INST_37 +/* 0x113E [0xC7 0x81 0x22 0xFF ] */ portamento 0x81, PITCH_G3, 255 +/* 0x1142 [0x5B 0x1B 0x50 ] */ notedv PITCH_C3, 27, 80 +/* 0x1145 [0xFF ] */ end + +.channel CHAN_1146 +/* 0x1146 [0x88 0x11 0x4D ] */ ldlayer 0, LAYER_114D +/* 0x1149 [0x89 0x11 0x5D ] */ ldlayer 1, LAYER_115D +/* 0x114C [0xFF ] */ end + +.layer LAYER_114D +/* 0x114D [0xC2 0x04 ] */ transpose 4 +/* 0x114F [0xC6 0x1E ] */ instr SF0_INST_30 +/* 0x1151 [0xC4 ] */ legato +/* 0x1152 [0xC7 0x85 0x03 0xFF ] */ portamento 0x85, PITCH_C1, 255 +/* 0x1156 [0x54 0x0C 0x67 ] */ notedv PITCH_F2, 12, 103 +/* 0x1159 [0x6C 0x18 0x67 ] */ notedv PITCH_F4, 24, 103 +/* 0x115C [0xFF ] */ end + +.layer LAYER_115D +/* 0x115D [0xC2 0x04 ] */ transpose 4 +/* 0x115F [0xC6 0x25 ] */ instr SF0_INST_37 +/* 0x1161 [0xC7 0x81 0x22 0xFF ] */ portamento 0x81, PITCH_G3, 255 +/* 0x1165 [0x5B 0x28 0x57 ] */ notedv PITCH_C3, 40, 87 +/* 0x1168 [0xFF ] */ end + +.channel CHAN_1169 +/* 0x1169 [0x88 0x11 0x70 ] */ ldlayer 0, LAYER_1170 +/* 0x116C [0x89 0x11 0x7C ] */ ldlayer 1, LAYER_117C +/* 0x116F [0xFF ] */ end + +.layer LAYER_1170 +/* 0x1170 [0xC6 0x1B ] */ instr SF0_INST_27 +/* 0x1172 [0xC7 0x81 0x20 0xFF ] */ portamento 0x81, PITCH_F3, 255 +/* 0x1176 [0x54 0x24 0x69 ] */ notedv PITCH_F2, 36, 105 +/* 0x1179 [0xC0 0x68 ] */ ldelay 104 +/* 0x117B [0xFF ] */ end + +.layer LAYER_117C +/* 0x117C [0xC6 0x27 ] */ instr SF0_INST_39 +/* 0x117E [0xC7 0x81 0x2E 0x2C ] */ portamento 0x81, PITCH_G4, 44 +/* 0x1182 [0x62 0x80 0x8C 0x4B ] */ notedv PITCH_G3, 140, 75 +/* 0x1186 [0xFF ] */ end + +.channel CHAN_1187 +/* 0x1187 [0xC1 0x1A ] */ instr SF0_INST_26 +/* 0x1189 [0xDA 0x66 0x74 ] */ env ENVELOPE_6674 +/* 0x118C [0x88 0x11 0x96 ] */ ldlayer 0, LAYER_1196 +CHAN_118F: +/* 0x118F [0xD7 0x7F ] */ vibfreq 127 +/* 0x1191 [0xE2 0x00 0x80 0x38 ] */ vibdepthgrad 0, 128, 56 +/* 0x1195 [0xFF ] */ end + +.layer LAYER_1196 +/* 0x1196 [0x53 0x60 0x6E ] */ notedv PITCH_E2, 96, 110 +/* 0x1199 [0xFF ] */ end + +.channel CHAN_119A +/* 0x119A [0xC1 0x1A ] */ instr SF0_INST_26 +/* 0x119C [0x88 0x11 0xA3 ] */ ldlayer 0, LAYER_11A3 +/* 0x119F [0x89 0x11 0xAF ] */ ldlayer 1, LAYER_11AF +/* 0x11A2 [0xFF ] */ end + +.layer LAYER_11A3 +/* 0x11A3 [0xCB 0x66 0x74 0xFB ] */ env ENVELOPE_6674, 251 +/* 0x11A7 [0xC7 0x01 0x1B 0x1E ] */ portamento 0x01, PITCH_C3, 30 +/* 0x11AB [0x64 0x60 0x64 ] */ notedv PITCH_A3, 96, 100 +/* 0x11AE [0xFF ] */ end + +.layer LAYER_11AF +/* 0x11AF [0x5B 0x60 0x60 ] */ notedv PITCH_C3, 96, 96 +/* 0x11B2 [0xFF ] */ end + +.channel CHAN_11B3 +/* 0x11B3 [0x88 0x11 0xB7 ] */ ldlayer 0, LAYER_11B7 +/* 0x11B6 [0xFF ] */ end + +.layer LAYER_11B7 +/* 0x11B7 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x11B9 [0xCB 0x66 0x10 0xFB ] */ env ENVELOPE_6610, 251 +/* 0x11BD [0x4C 0x08 0x6E ] */ notedv PITCH_A1, 8, 110 +/* 0x11C0 [0x48 0x30 0x6E ] */ notedv PITCH_F1, 48, 110 +/* 0x11C3 [0xFF ] */ end + +.channel CHAN_11C4 +/* 0x11C4 [0xC1 0x28 ] */ instr SF0_INST_40 +/* 0x11C6 [0xDA 0x66 0x60 ] */ env ENVELOPE_6660 +/* 0x11C9 [0x88 0x11 0xCD ] */ ldlayer 0, LAYER_11CD +/* 0x11CC [0xFF ] */ end + +.layer LAYER_11CD +/* 0x11CD [0x17 0x07 0x5D 0x7F ] */ notedvg PITCH_AF2, 7, 93, 127 +/* 0x11D1 [0x62 0x05 0x5A ] */ notedv PITCH_G3, 5, 90 +/* 0x11D4 [0xFF ] */ end + +.channel CHAN_11D5 +/* 0x11D5 [0x88 0x11 0xD9 ] */ ldlayer 0, LAYER_11D9 +/* 0x11D8 [0xFF ] */ end + +.layer LAYER_11D9 +/* 0x11D9 [0xC6 0x1E ] */ instr SF0_INST_30 +/* 0x11DB [0x64 0x08 0x69 ] */ notedv PITCH_A3, 8, 105 +/* 0x11DE [0xC6 0x29 ] */ instr SF0_INST_41 +/* 0x11E0 [0xCB 0x66 0x24 0xFF ] */ env ENVELOPE_6624, 255 +/* 0x11E4 [0x61 0x16 0x57 ] */ notedv PITCH_GF3, 22, 87 +/* 0x11E7 [0xFF ] */ end + +.channel CHAN_11E8 +/* 0x11E8 [0x88 0x11 0xEF ] */ ldlayer 0, LAYER_11EF +/* 0x11EB [0x89 0x11 0xF5 ] */ ldlayer 1, LAYER_11F5 +/* 0x11EE [0xFF ] */ end + +.layer LAYER_11EF +/* 0x11EF [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x11F1 [0x60 0x12 0x6E ] */ notedv PITCH_F3, 18, 110 +/* 0x11F4 [0xFF ] */ end + +.layer LAYER_11F5 +/* 0x11F5 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x11F7 [0xC2 0x30 ] */ transpose 48 +/* 0x11F9 [0xCB 0x67 0x20 0xFB ] */ env ENVELOPE_6720, 251 +/* 0x11FD [0x5B 0x0A 0x4B ] */ notedv PITCH_C3, 10, 75 +/* 0x1200 [0x1F 0x04 0x4B 0x7F ] */ notedvg PITCH_E3, 4, 75, 127 +/* 0x1204 [0x5F 0x04 0x4B ] */ notedv PITCH_E3, 4, 75 +/* 0x1207 [0xFF ] */ end + +.channel CHAN_1208 +/* 0x1208 [0xC1 0x1E ] */ instr SF0_INST_30 +/* 0x120A [0x88 0x12 0x0E ] */ ldlayer 0, LAYER_120E +/* 0x120D [0xFF ] */ end + +.layer LAYER_120E +/* 0x120E [0xC7 0x81 0x30 0xFF ] */ portamento 0x81, PITCH_A4, 255 +/* 0x1212 [0x40 0x12 0x64 ] */ notedv PITCH_A0, 18, 100 +/* 0x1215 [0xFF ] */ end + +.channel CHAN_1216 +/* 0x1216 [0xC1 0x21 ] */ instr SF0_INST_33 +/* 0x1218 [0x88 0x12 0x1C ] */ ldlayer 0, LAYER_121C +/* 0x121B [0xFF ] */ end + +.layer LAYER_121C +/* 0x121C [0xC7 0x81 0x27 0x7F ] */ portamento 0x81, PITCH_C4, 127 +/* 0x1220 [0x72 0x07 0x6E ] */ notedv PITCH_B4, 7, 110 +/* 0x1223 [0xFF ] */ end + +.channel CHAN_1224 +/* 0x1224 [0xCC 0x18 ] */ ldi 24 +/* 0x1226 [0x71 ] */ stio IO_PORT_1 +/* 0x1227 [0x88 0x12 0x4B ] */ ldlayer 0, LAYER_124B +/* 0x122A [0x89 0x12 0x34 ] */ ldlayer 1, LAYER_1234 +/* 0x122D [0xD7 0x7F ] */ vibfreq 127 +/* 0x122F [0xE2 0x00 0xA0 0x09 ] */ vibdepthgrad 0, 160, 9 +/* 0x1233 [0xFF ] */ end + +.layer LAYER_1234 +/* 0x1234 [0xC6 0x86 ] */ instr FONTANY_INSTR_8PULSE +/* 0x1236 [0xC7 0x81 0x03 0xFF ] */ portamento 0x81, PITCH_C1, 255 +/* 0x123A [0x6E 0x64 0x1E ] */ notedv PITCH_G4, 100, 30 +/* 0x123D [0xC7 0x81 0x0F 0xFF ] */ portamento 0x81, PITCH_C2, 255 +/* 0x1241 [0x7A 0x64 0x1E ] */ notedv PITCH_G5, 100, 30 +/* 0x1244 [0xC4 ] */ legato +LAYER_1245: +/* 0x1245 [0x7A 0x80 0xC8 0x1E ] */ notedv PITCH_G5, 200, 30 +/* 0x1249 [0xF4 0xFA ] */ rjump LAYER_1245 + +.layer LAYER_124B +/* 0x124B [0xC6 0x2A ] */ instr SF0_INST_42 +/* 0x124D [0xC4 ] */ legato +/* 0x124E [0xC2 0x09 ] */ transpose 9 +/* 0x1250 [0xC7 0x81 0x03 0xFF ] */ portamento 0x81, PITCH_C1, 255 +LAYER_1254: +/* 0x1254 [0x7A 0x80 0xC8 0x32 ] */ notedv PITCH_G5, 200, 50 +/* 0x1258 [0xF4 0xFA ] */ rjump LAYER_1254 + +.channel CHAN_125A +/* 0x125A [0x88 0x12 0x66 ] */ ldlayer 0, LAYER_1266 +/* 0x125D [0x89 0x12 0x64 ] */ ldlayer 1, LAYER_1264 +/* 0x1260 [0x8A 0x11 0x70 ] */ ldlayer 2, LAYER_1170 +/* 0x1263 [0xFF ] */ end + +.layer LAYER_1264 +/* 0x1264 [0xC2 0xFC ] */ transpose -4 +.layer LAYER_1266 +/* 0x1266 [0xC6 0x27 ] */ instr SF0_INST_39 +/* 0x1268 [0xC7 0x81 0x33 0x2C ] */ portamento 0x81, PITCH_C5, 44 +/* 0x126C [0x60 0x80 0x8C 0x5A ] */ notedv PITCH_F3, 140, 90 +/* 0x1270 [0xFF ] */ end + +.channel CHAN_1271 +/* 0x1271 [0xC1 0x2B ] */ instr SF0_INST_43 +/* 0x1273 [0xDA 0x66 0xC8 ] */ env ENVELOPE_66C8 +/* 0x1276 [0x88 0x12 0x7D ] */ ldlayer 0, LAYER_127D +/* 0x1279 [0x89 0x11 0x3A ] */ ldlayer 1, LAYER_113A +/* 0x127C [0xFF ] */ end + +.layer LAYER_127D +/* 0x127D [0x58 0x03 0x6E ] */ notedv PITCH_A2, 3, 110 +/* 0x1280 [0xC7 0x02 0x0E 0x0C ] */ portamento 0x02, PITCH_B1, 12 +/* 0x1284 [0x66 0x06 0x6E ] */ notedv PITCH_B3, 6, 110 +/* 0x1287 [0xC0 0x07 ] */ ldelay 7 +/* 0x1289 [0xFF ] */ end + +.channel CHAN_128A +/* 0x128A [0x88 0x12 0x8E ] */ ldlayer 0, LAYER_128E +/* 0x128D [0xFF ] */ end + +.layer LAYER_128E +/* 0x128E [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x1290 [0xC2 0x30 ] */ transpose 48 +/* 0x1292 [0x18 0x03 0x64 0x7F ] */ notedvg PITCH_A2, 3, 100, 127 +/* 0x1296 [0xCF 0xFB ] */ releaserate 251 +/* 0x1298 [0xC7 0x81 0x0F 0x30 ] */ portamento 0x81, PITCH_C2, 48 +/* 0x129C [0x5C 0x24 0x64 ] */ notedv PITCH_DF3, 36, 100 +/* 0x129F [0xFF ] */ end + +.channel CHAN_12A0 +/* 0x12A0 [0x88 0x12 0xA7 ] */ ldlayer 0, LAYER_12A7 +/* 0x12A3 [0x89 0x12 0xAD ] */ ldlayer 1, LAYER_12AD +/* 0x12A6 [0xFF ] */ end + +.layer LAYER_12A7 +/* 0x12A7 [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x12A9 [0x64 0x12 0x6E ] */ notedv PITCH_A3, 18, 110 +/* 0x12AC [0xFF ] */ end + +.layer LAYER_12AD +/* 0x12AD [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x12AF [0xC2 0x30 ] */ transpose 48 +/* 0x12B1 [0xCB 0x67 0x20 0xFB ] */ env ENVELOPE_6720, 251 +/* 0x12B5 [0x60 0x0A 0x4B ] */ notedv PITCH_F3, 10, 75 +/* 0x12B8 [0x1F 0x04 0x4B 0x7F ] */ notedvg PITCH_E3, 4, 75, 127 +/* 0x12BC [0x53 0x04 0x4B ] */ notedv PITCH_E2, 4, 75 +/* 0x12BF [0xFF ] */ end + +.channel CHAN_12C0 +/* 0x12C0 [0x88 0x12 0xC7 ] */ ldlayer 0, LAYER_12C7 +/* 0x12C3 [0x89 0x12 0xCD ] */ ldlayer 1, LAYER_12CD +/* 0x12C6 [0xFF ] */ end + +.layer LAYER_12C7 +/* 0x12C7 [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x12C9 [0x6A 0x10 0x69 ] */ notedv PITCH_EF4, 16, 105 +/* 0x12CC [0xFF ] */ end + +.layer LAYER_12CD +/* 0x12CD [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x12CF [0xCB 0x66 0x4C 0xFB ] */ env ENVELOPE_664C, 251 +/* 0x12D3 [0x63 0x04 0x56 ] */ notedv PITCH_AF3, 4, 86 +/* 0x12D6 [0x58 0x04 0x40 ] */ notedv PITCH_A2, 4, 64 +/* 0x12D9 [0xFF ] */ end + +.channel CHAN_12DA +/* 0x12DA [0x88 0x12 0xE7 ] */ ldlayer 0, LAYER_12E7 +/* 0x12DD [0x89 0x12 0xE1 ] */ ldlayer 1, LAYER_12E1 +/* 0x12E0 [0xFF ] */ end + +.layer LAYER_12E1 +/* 0x12E1 [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x12E3 [0x58 0x28 0x69 ] */ notedv PITCH_A2, 40, 105 +/* 0x12E6 [0xFF ] */ end + +.layer LAYER_12E7 +/* 0x12E7 [0xC6 0x22 ] */ instr SF0_INST_34 +/* 0x12E9 [0xCF 0xEE ] */ releaserate 238 +/* 0x12EB [0x75 0x08 0x56 ] */ notedv PITCH_D5, 8, 86 +/* 0x12EE [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x12F0 [0x6D 0x18 0x64 ] */ notedv PITCH_GF4, 24, 100 +/* 0x12F3 [0xFF ] */ end + +.channel CHAN_12F4 +/* 0x12F4 [0x88 0x12 0xFB ] */ ldlayer 0, LAYER_12FB +/* 0x12F7 [0x89 0x13 0x09 ] */ ldlayer 1, LAYER_1309 +/* 0x12FA [0xFF ] */ end + +.layer LAYER_12FB +/* 0x12FB [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x12FD [0xCB 0x66 0x24 0xFB ] */ env ENVELOPE_6624, 251 +/* 0x1301 [0xC7 0x81 0x32 0x90 ] */ portamento 0x81, PITCH_B4, 144 +/* 0x1305 [0x5A 0x20 0x6E ] */ notedv PITCH_B2, 32, 110 +/* 0x1308 [0xFF ] */ end + +.layer LAYER_1309 +/* 0x1309 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x130B [0xCB 0x66 0x4C 0xF1 ] */ env ENVELOPE_664C, 241 +/* 0x130F [0x57 0x04 0x40 ] */ notedv PITCH_AF2, 4, 64 +/* 0x1312 [0x64 0x0C 0x38 ] */ notedv PITCH_A3, 12, 56 +/* 0x1315 [0xFF ] */ end + +.channel CHAN_1316 +/* 0x1316 [0xCC 0x18 ] */ ldi 24 +/* 0x1318 [0x71 ] */ stio IO_PORT_1 +/* 0x1319 [0x88 0x13 0x20 ] */ ldlayer 0, LAYER_1320 +/* 0x131C [0x89 0x11 0x7C ] */ ldlayer 1, LAYER_117C +/* 0x131F [0xFF ] */ end + +.layer LAYER_1320 +/* 0x1320 [0xC6 0x2A ] */ instr SF0_INST_42 +/* 0x1322 [0xC4 ] */ legato +/* 0x1323 [0xC2 0x0C ] */ transpose 12 +/* 0x1325 [0xC7 0x81 0x38 0x7F ] */ portamento 0x81, PITCH_F5, 127 +/* 0x1329 [0x6C 0x24 0x50 ] */ notedv PITCH_F4, 36, 80 +/* 0x132C [0xFF ] */ end + +.channel CHAN_132D +/* 0x132D [0x88 0x13 0x34 ] */ ldlayer 0, LAYER_1334 +/* 0x1330 [0x89 0x13 0x44 ] */ ldlayer 1, LAYER_1344 +/* 0x1333 [0xFF ] */ end + +.layer LAYER_1334 +/* 0x1334 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x1336 [0xC2 0x30 ] */ transpose 48 +/* 0x1338 [0xCB 0x66 0xD0 0xE8 ] */ env ENVELOPE_66D0, 232 +/* 0x133C [0xC7 0x81 0x13 0x48 ] */ portamento 0x81, PITCH_E2, 72 +/* 0x1340 [0x55 0x04 0x53 ] */ notedv PITCH_GF2, 4, 83 +/* 0x1343 [0xFF ] */ end + +.layer LAYER_1344 +/* 0x1344 [0xC6 0x29 ] */ instr SF0_INST_41 +/* 0x1346 [0xCF 0xE1 ] */ releaserate 225 +/* 0x1348 [0xC7 0x81 0x2D 0xC8 ] */ portamento 0x81, PITCH_GF4, 200 +/* 0x134C [0x5C 0x04 0x6E ] */ notedv PITCH_DF3, 4, 110 +/* 0x134F [0xFF ] */ end + +.channel CHAN_1350 +/* 0x1350 [0xCC 0x20 ] */ ldi 32 +/* 0x1352 [0x71 ] */ stio IO_PORT_1 +/* 0x1353 [0x88 0x13 0x7F ] */ ldlayer 0, LAYER_137F +/* 0x1356 [0x89 0x13 0x73 ] */ ldlayer 1, LAYER_1373 +/* 0x1359 [0x8A 0x13 0x61 ] */ ldlayer 2, LAYER_1361 +CHAN_135C: +/* 0x135C [0xD7 0x64 ] */ vibfreq 100 +/* 0x135E [0xD8 0x54 ] */ vibdepth 84 +/* 0x1360 [0xFF ] */ end + +.layer LAYER_1361 +/* 0x1361 [0xC4 ] */ legato +/* 0x1362 [0xC6 0x34 ] */ instr SF0_INST_52 +/* 0x1364 [0xCB 0x66 0x74 0xFB ] */ env ENVELOPE_6674, 251 +/* 0x1368 [0xC7 0x85 0x0B 0xFF ] */ portamento 0x85, PITCH_AF1, 255 +/* 0x136C [0x57 0x24 0x3C ] */ notedv PITCH_AF2, 36, 60 +/* 0x136F [0x4B 0x24 0x3C ] */ notedv PITCH_AF1, 36, 60 +/* 0x1372 [0xFF ] */ end + +.layer LAYER_1373 +/* 0x1373 [0xC6 0x25 ] */ instr SF0_INST_37 +/* 0x1375 [0xC7 0x82 0x0F 0xFF ] */ portamento 0x82, PITCH_C2, 255 +/* 0x1379 [0x5B 0x3E 0x69 ] */ notedv PITCH_C3, 62, 105 +/* 0x137C [0xFF ] */ end + +.layer LAYER_137D +/* 0x137D [0xC2 0xFA ] */ transpose -6 +.layer LAYER_137F +/* 0x137F [0xC0 0x01 ] */ ldelay 1 +/* 0x1381 [0xC6 0x51 ] */ instr SF0_INST_81 +/* 0x1383 [0xCB 0x65 0xD8 0xFB ] */ env ENVELOPE_65D8, 251 +/* 0x1387 [0xC7 0x81 0x14 0xFF ] */ portamento 0x81, PITCH_F2, 255 +/* 0x138B [0x57 0x08 0x55 ] */ notedv PITCH_AF2, 8, 85 +/* 0x138E [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x1392 [0x4F 0x60 0x55 ] */ notedv PITCH_C2, 96, 85 +/* 0x1395 [0xFF ] */ end + +.channel CHAN_1396 +/* 0x1396 [0xC1 0x1D ] */ instr SF0_INST_29 +/* 0x1398 [0x88 0x13 0x9C ] */ ldlayer 0, LAYER_139C +/* 0x139B [0xFF ] */ end + +.layer LAYER_139C +/* 0x139C [0xC7 0x83 0x20 0x7F ] */ portamento 0x83, PITCH_F3, 127 +/* 0x13A0 [0x62 0x08 0x64 ] */ notedv PITCH_G3, 8, 100 +/* 0x13A3 [0x6A 0x18 0x64 ] */ notedv PITCH_EF4, 24, 100 +/* 0x13A6 [0xFF ] */ end + +.channel CHAN_13A7 +/* 0x13A7 [0x88 0x13 0xC5 ] */ ldlayer 0, LAYER_13C5 +/* 0x13AA [0x89 0x13 0xB1 ] */ ldlayer 1, LAYER_13B1 +/* 0x13AD [0x8A 0x11 0x70 ] */ ldlayer 2, LAYER_1170 +/* 0x13B0 [0xFF ] */ end + +.layer LAYER_13B1 +/* 0x13B1 [0xC2 0x11 ] */ transpose 17 +LAYER_13B3: +/* 0x13B3 [0xC6 0x2A ] */ instr SF0_INST_42 +/* 0x13B5 [0xCB 0x66 0x38 0xFB ] */ env ENVELOPE_6638, 251 +/* 0x13B9 [0xC4 ] */ legato +/* 0x13BA [0xC7 0x85 0x2C 0xFF ] */ portamento 0x85, PITCH_F4, 255 +/* 0x13BE [0x78 0x10 0x44 ] */ notedv PITCH_F5, 16, 68 +/* 0x13C1 [0x45 0x2C 0x44 ] */ notedv PITCH_D1, 44, 68 +/* 0x13C4 [0xFF ] */ end + +.layer LAYER_13C5 +/* 0x13C5 [0xC2 0xFE ] */ transpose -2 +/* 0x13C7 [0xFB 0x12 0x66 ] */ jump LAYER_1266 + +.channel CHAN_13CA +/* 0x13CA [0x88 0x12 0x66 ] */ ldlayer 0, LAYER_1266 +/* 0x13CD [0x89 0x13 0xD4 ] */ ldlayer 1, LAYER_13D4 +/* 0x13D0 [0x8A 0x13 0xD8 ] */ ldlayer 2, LAYER_13D8 +/* 0x13D3 [0xFF ] */ end + +.layer LAYER_13D4 +/* 0x13D4 [0xC2 0x14 ] */ transpose 20 +/* 0x13D6 [0xF4 0xDB ] */ rjump LAYER_13B3 + +.layer LAYER_13D8 +/* 0x13D8 [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x13DA [0xCF 0xDD ] */ releaserate 221 +/* 0x13DC [0xC4 ] */ legato +/* 0x13DD [0xC7 0x85 0x1C 0xFF ] */ portamento 0x85, PITCH_DF3, 255 +/* 0x13E1 [0x68 0x10 0x4A ] */ notedv PITCH_DF4, 16, 74 +/* 0x13E4 [0x64 0x44 0x4A ] */ notedv PITCH_A3, 68, 74 +/* 0x13E7 [0xFF ] */ end + +.channel CHAN_13E8 +/* 0x13E8 [0xED 0x16 ] */ gain 22 +/* 0x13EA [0x88 0x13 0xEE ] */ ldlayer 0, LAYER_13EE +/* 0x13ED [0xFF ] */ end + +.layer LAYER_13EE +/* 0x13EE [0xC6 0x21 ] */ instr SF0_INST_33 +/* 0x13F0 [0xCB 0x65 0xD8 0xFB ] */ env ENVELOPE_65D8, 251 +/* 0x13F4 [0xC2 0x30 ] */ transpose 48 +/* 0x13F6 [0xC7 0x81 0x2B 0x7F ] */ portamento 0x81, PITCH_E4, 127 +/* 0x13FA [0x6F 0x60 0x5F ] */ notedv PITCH_AF4, 96, 95 +/* 0x13FD [0xFF ] */ end + +.channel CHAN_13FE +/* 0x13FE [0x88 0x14 0x02 ] */ ldlayer 0, LAYER_1402 +/* 0x1401 [0xFF ] */ end + +.layer LAYER_1402 +/* 0x1402 [0xC6 0x23 ] */ instr SF0_INST_35 +/* 0x1404 [0xC2 0x30 ] */ transpose 48 +/* 0x1406 [0xC4 ] */ legato +/* 0x1407 [0xC7 0x01 0x24 0x38 ] */ portamento 0x01, PITCH_A3, 56 +LAYER_140B: +/* 0x140B [0x6B 0xFD 0x00 0x50 ] */ notedv PITCH_E4, 32000, 80 +/* 0x140F [0xF4 0xFA ] */ rjump LAYER_140B + +.channel CHAN_1411 +/* 0x1411 [0xCC 0x00 ] */ ldi 0 +/* 0x1413 [0x76 ] */ stio IO_PORT_6 +CHAN_1414: +/* 0x1414 [0xCB 0x14 0x2D ] */ ldseq UNK_142D +/* 0x1417 [0xC7 0x00 0x14 0x5B ] */ stseq 0, LAYER_145A + STSEQ_TRANSPOSITION +/* 0x141B [0x66 ] */ ldio IO_PORT_6 +/* 0x141C [0xCB 0x14 0x31 ] */ ldseq UNK_1431 +/* 0x141F [0xC7 0x00 0x14 0x56 ] */ stseq 0, LAYER_1455 + STSEQ_NOTEDV_DELAY_HI +/* 0x1423 [0xCC 0x18 ] */ ldi 24 +/* 0x1425 [0x71 ] */ stio IO_PORT_1 +/* 0x1426 [0x88 0x14 0x48 ] */ ldlayer 0, LAYER_1448 +/* 0x1429 [0x89 0x14 0x35 ] */ ldlayer 1, LAYER_1435 +/* 0x142C [0xFF ] */ end + +UNK_142D: + .byte 0x00, 0x04, 0x08, 0x00 + +UNK_1431: + .byte 0x60, 0x30, 0x18, 0x60 + +.layer LAYER_1435 +/* 0x1435 [0xFC 0x14 0x5A ] */ call LAYER_145A +.layer LAYER_1438 +/* 0x1438 [0xC6 0x08 ] */ instr SF0_INST_8 +/* 0x143A [0xC4 ] */ legato +/* 0x143B [0xC7 0x85 0x18 0xFF ] */ portamento 0x85, PITCH_A2, 255 +/* 0x143F [0x4F 0x06 0x5A ] */ notedv PITCH_C2, 6, 90 +/* 0x1442 [0x72 0x50 0x5A ] */ notedv PITCH_B4, 80, 90 +/* 0x1445 [0xC0 0x21 ] */ ldelay 33 +/* 0x1447 [0xFF ] */ end + +.layer LAYER_1448 +/* 0x1448 [0xFC 0x14 0x5A ] */ call LAYER_145A +/* 0x144B [0xC6 0x08 ] */ instr SF0_INST_8 +/* 0x144D [0xCB 0x66 0xC8 0xFB ] */ env ENVELOPE_66C8, 251 +LAYER_1451: +/* 0x1451 [0xC7 0x81 0x03 0xFF ] */ portamento 0x81, PITCH_C1, 255 +LAYER_1455: +/* 0x1455 [0x58 0x60 0x58 ] */ notedv PITCH_A2, 96, 88 +/* 0x1458 [0xF4 0xF7 ] */ rjump LAYER_1451 + +.layer LAYER_145A +/* 0x145A [0xC2 0x00 ] */ transpose 0 +/* 0x145C [0xFF ] */ end + +.channel CHAN_145D +/* 0x145D [0xCC 0x01 ] */ ldi 1 +/* 0x145F [0x76 ] */ stio IO_PORT_6 +/* 0x1460 [0xF4 0xB2 ] */ rjump CHAN_1414 + +.channel CHAN_1462 +/* 0x1462 [0xCC 0x02 ] */ ldi 2 +/* 0x1464 [0x76 ] */ stio IO_PORT_6 +/* 0x1465 [0xF4 0xAD ] */ rjump CHAN_1414 + +.channel CHAN_1467 +/* 0x1467 [0xC1 0x21 ] */ instr SF0_INST_33 +/* 0x1469 [0xDA 0x67 0xBC ] */ env ENVELOPE_67BC +/* 0x146C [0xED 0x08 ] */ gain 8 +/* 0x146E [0x88 0x14 0x72 ] */ ldlayer 0, LAYER_1472 +/* 0x1471 [0xFF ] */ end + +.layer LAYER_1472 +/* 0x1472 [0xC2 0x30 ] */ transpose 48 +/* 0x1474 [0xC7 0x81 0x30 0x7F ] */ portamento 0x81, PITCH_A4, 127 +/* 0x1478 [0x74 0x30 0x69 ] */ notedv PITCH_DF5, 48, 105 +/* 0x147B [0xFF ] */ end + +.channel CHAN_147C +/* 0x147C [0x88 0x14 0x83 ] */ ldlayer 0, LAYER_1483 +/* 0x147F [0x89 0x14 0x8D ] */ ldlayer 1, LAYER_148D +/* 0x1482 [0xFF ] */ end + +.layer LAYER_1483 +/* 0x1483 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x1485 [0xC7 0x81 0x30 0x90 ] */ portamento 0x81, PITCH_A4, 144 +/* 0x1489 [0x54 0x0E 0x60 ] */ notedv PITCH_F2, 14, 96 +/* 0x148C [0xFF ] */ end + +.layer LAYER_148D +/* 0x148D [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x148F [0x59 0x0E 0x48 ] */ notedv PITCH_BF2, 14, 72 +/* 0x1492 [0xFF ] */ end + +.channel CHAN_1493 +/* 0x1493 [0x88 0x14 0x9A ] */ ldlayer 0, LAYER_149A +/* 0x1496 [0x89 0x14 0xA4 ] */ ldlayer 1, LAYER_14A4 +/* 0x1499 [0xFF ] */ end + +.layer LAYER_149A +/* 0x149A [0xC6 0x3F ] */ instr SF0_INST_63 +/* 0x149C [0xCB 0x65 0xE8 0xF4 ] */ env ENVELOPE_65E8, 244 +/* 0x14A0 [0x6D 0x08 0x6E ] */ notedv PITCH_GF4, 8, 110 +/* 0x14A3 [0xFF ] */ end + +.layer LAYER_14A4 +/* 0x14A4 [0xC6 0x16 ] */ instr SF0_INST_22 +/* 0x14A6 [0xC0 0x03 ] */ ldelay 3 +/* 0x14A8 [0xCB 0x65 0xE8 0xF4 ] */ env ENVELOPE_65E8, 244 +/* 0x14AC [0x55 0x05 0x6E ] */ notedv PITCH_GF2, 5, 110 +/* 0x14AF [0xFF ] */ end + +.channel CHAN_14B0 +/* 0x14B0 [0xED 0x0F ] */ gain 15 +/* 0x14B2 [0x88 0x10 0x43 ] */ ldlayer 0, LAYER_1043 +/* 0x14B5 [0x89 0x10 0x5A ] */ ldlayer 1, LAYER_105A +/* 0x14B8 [0xFF ] */ end + +.channel CHAN_14B9 +/* 0x14B9 [0x88 0x14 0xC0 ] */ ldlayer 0, LAYER_14C0 +/* 0x14BC [0x89 0x0F 0xB3 ] */ ldlayer 1, LAYER_0FB3 +/* 0x14BF [0xFF ] */ end + +.layer LAYER_14C0 +/* 0x14C0 [0xC6 0x27 ] */ instr SF0_INST_39 +/* 0x14C2 [0xC7 0x81 0x0F 0x28 ] */ portamento 0x81, PITCH_C2, 40 +/* 0x14C6 [0x6C 0x40 0x50 ] */ notedv PITCH_F4, 64, 80 +/* 0x14C9 [0xFF ] */ end + +.channel CHAN_14CA +/* 0x14CA [0x88 0x14 0xD6 ] */ ldlayer 0, LAYER_14D6 +CHAN_14CD: +/* 0x14CD [0x89 0x14 0xE0 ] */ ldlayer 1, LAYER_14E0 +/* 0x14D0 [0x8A 0x15 0xB1 ] */ ldlayer 2, LAYER_15B1 +/* 0x14D3 [0xED 0x14 ] */ gain 20 +/* 0x14D5 [0xFF ] */ end + +.layer LAYER_14D6 +/* 0x14D6 [0xC6 0x43 ] */ instr SF0_INST_67 +/* 0x14D8 [0xCB 0x66 0x88 0xC8 ] */ env ENVELOPE_6688, 200 +/* 0x14DC [0x5B 0x44 0x64 ] */ notedv PITCH_C3, 68, 100 +/* 0x14DF [0xFF ] */ end + +.layer LAYER_14E0 +/* 0x14E0 [0xC2 0x30 ] */ transpose 48 +/* 0x14E2 [0xFB 0x2A 0x06 ] */ jump LAYER_2A06 + +.channel CHAN_14E5 +/* 0x14E5 [0x88 0x14 0xEA ] */ ldlayer 0, LAYER_14EA +/* 0x14E8 [0xF4 0xE3 ] */ rjump CHAN_14CD + +.layer LAYER_14EA +/* 0x14EA [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x14EC [0xC2 0x0A ] */ transpose 10 +/* 0x14EE [0xCB 0x66 0x88 0xC8 ] */ env ENVELOPE_6688, 200 +/* 0x14F2 [0x73 0x44 0x64 ] */ notedv PITCH_C5, 68, 100 +/* 0x14F5 [0xFF ] */ end + +.channel CHAN_14F6 +/* 0x14F6 [0x88 0x14 0xFB ] */ ldlayer 0, LAYER_14FB +/* 0x14F9 [0xF4 0xD2 ] */ rjump CHAN_14CD + +.layer LAYER_14FB +/* 0x14FB [0xC6 0x40 ] */ instr SF0_INST_64 +/* 0x14FD [0xCB 0x66 0x7C 0xC8 ] */ env ENVELOPE_667C, 200 +/* 0x1501 [0x70 0x44 0x36 ] */ notedv PITCH_A4, 68, 54 +/* 0x1504 [0xFF ] */ end + +.channel CHAN_1505 +/* 0x1505 [0xC1 0x21 ] */ instr SF0_INST_33 +/* 0x1507 [0x88 0x15 0x0B ] */ ldlayer 0, LAYER_150B +/* 0x150A [0xFF ] */ end + +.layer LAYER_150B +/* 0x150B [0x6C 0x06 0x66 ] */ notedv PITCH_F4, 6, 102 +/* 0x150E [0xF4 0xFB ] */ rjump LAYER_150B + +.channel CHAN_1510 +/* 0x1510 [0xC1 0x21 ] */ instr SF0_INST_33 +/* 0x1512 [0x88 0x15 0x16 ] */ ldlayer 0, LAYER_1516 +/* 0x1515 [0xFF ] */ end + +.layer LAYER_1516 +/* 0x1516 [0x70 0x03 0x66 ] */ notedv PITCH_A4, 3, 102 +/* 0x1519 [0xF4 0xFB ] */ rjump LAYER_1516 + +.channel CHAN_151B +/* 0x151B [0xFC 0x28 0x23 ] */ call CHAN_2823 +/* 0x151E [0x88 0x15 0x28 ] */ ldlayer 0, LAYER_1528 +/* 0x1521 [0x89 0x15 0x32 ] */ ldlayer 1, LAYER_1532 +/* 0x1524 [0x8A 0x15 0x3C ] */ ldlayer 2, LAYER_153C +/* 0x1527 [0xFF ] */ end + +.layer LAYER_1528 +/* 0x1528 [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x152A [0xC7 0x81 0x37 0xFF ] */ portamento 0x81, PITCH_E5, 255 +/* 0x152E [0x5F 0x48 0x41 ] */ notedv PITCH_E3, 72, 65 +/* 0x1531 [0xFF ] */ end + +.layer LAYER_1532 +/* 0x1532 [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x1534 [0xC7 0x81 0x37 0xE7 ] */ portamento 0x81, PITCH_E5, 231 +/* 0x1538 [0x6B 0x48 0x3A ] */ notedv PITCH_E4, 72, 58 +/* 0x153B [0xFF ] */ end + +.layer LAYER_153C +/* 0x153C [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x153E [0xCB 0x66 0xD0 0xE7 ] */ env ENVELOPE_66D0, 231 +/* 0x1542 [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x1546 [0x58 0x30 0x48 ] */ notedv PITCH_A2, 48, 72 +/* 0x1549 [0xFF ] */ end + +.channel CHAN_154A +/* 0x154A [0xFC 0x28 0x23 ] */ call CHAN_2823 +/* 0x154D [0x88 0x15 0x57 ] */ ldlayer 0, LAYER_1557 +/* 0x1550 [0x89 0x15 0x61 ] */ ldlayer 1, LAYER_1561 +/* 0x1553 [0x8A 0x15 0x6F ] */ ldlayer 2, LAYER_156F +/* 0x1556 [0xFF ] */ end + +.layer LAYER_1557 +/* 0x1557 [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x1559 [0xC7 0x82 0x2C 0xE7 ] */ portamento 0x82, PITCH_F4, 231 +/* 0x155D [0x53 0x48 0x55 ] */ notedv PITCH_E2, 72, 85 +/* 0x1560 [0xFF ] */ end + +.layer LAYER_1561 +/* 0x1561 [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x1563 [0xCB 0x66 0xF4 0xE7 ] */ env ENVELOPE_66F4, 231 +/* 0x1567 [0xC7 0x82 0x33 0xFF ] */ portamento 0x82, PITCH_C5, 255 +/* 0x156B [0x69 0x48 0x70 ] */ notedv PITCH_D4, 72, 112 +/* 0x156E [0xFF ] */ end + +.layer LAYER_156F +/* 0x156F [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x1571 [0xCB 0x66 0xD0 0xE7 ] */ env ENVELOPE_66D0, 231 +/* 0x1575 [0xC7 0x82 0x33 0xFF ] */ portamento 0x82, PITCH_C5, 255 +/* 0x1579 [0x58 0x30 0x55 ] */ notedv PITCH_A2, 48, 85 +/* 0x157C [0xFF ] */ end + +.channel CHAN_157D +/* 0x157D [0xCC 0x1E ] */ ldi 30 +/* 0x157F [0x71 ] */ stio IO_PORT_1 +/* 0x1580 [0x88 0x15 0x8A ] */ ldlayer 0, LAYER_158A +/* 0x1583 [0x89 0x15 0xA2 ] */ ldlayer 1, LAYER_15A2 +/* 0x1586 [0x8A 0x15 0xB1 ] */ ldlayer 2, LAYER_15B1 +/* 0x1589 [0xFF ] */ end + +.layer LAYER_158A +/* 0x158A [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x158C [0xC7 0x81 0x30 0xE7 ] */ portamento 0x81, PITCH_A4, 231 +/* 0x1590 [0x58 0x18 0x4B ] */ notedv PITCH_A2, 24, 75 +/* 0x1593 [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x1595 [0xCB 0x67 0x40 0xE7 ] */ env ENVELOPE_6740, 231 +/* 0x1599 [0xC7 0x81 0x26 0xFF ] */ portamento 0x81, PITCH_B3, 255 +/* 0x159D [0x5A 0x80 0xE8 0x69 ] */ notedv PITCH_B2, 232, 105 +/* 0x15A1 [0xFF ] */ end + +.layer LAYER_15A2 +/* 0x15A2 [0xC6 0x11 ] */ instr SF0_INST_17 +/* 0x15A4 [0xCB 0x67 0xCC 0xE7 ] */ env ENVELOPE_67CC, 231 +/* 0x15A8 [0xC7 0x81 0x0E 0xFF ] */ portamento 0x81, PITCH_B1, 255 +/* 0x15AC [0x5A 0x80 0xE8 0x5F ] */ notedv PITCH_B2, 232, 95 +/* 0x15B0 [0xFF ] */ end + +.layer LAYER_15B1 +/* 0x15B1 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x15B3 [0xCB 0x66 0x10 0xE7 ] */ env ENVELOPE_6610, 231 +/* 0x15B7 [0x64 0x48 0x69 ] */ notedv PITCH_A3, 72, 105 +/* 0x15BA [0xFF ] */ end + +.channel CHAN_15BB +/* 0x15BB [0x88 0x15 0xC7 ] */ ldlayer 0, LAYER_15C7 +/* 0x15BE [0x89 0x15 0xC5 ] */ ldlayer 1, LAYER_15C5 +/* 0x15C1 [0x8A 0x21 0x85 ] */ ldlayer 2, LAYER_2185 +/* 0x15C4 [0xFF ] */ end + +.layer LAYER_15C5 +/* 0x15C5 [0xC2 0xEE ] */ transpose -18 +.layer LAYER_15C7 +/* 0x15C7 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x15C9 [0xCF 0xDD ] */ releaserate 221 +/* 0x15CB [0x72 0x80 0xC8 0x55 ] */ notedv PITCH_B4, 200, 85 +/* 0x15CF [0xFF ] */ end + +.channel CHAN_15D0 +/* 0x15D0 [0x88 0x15 0xD7 ] */ ldlayer 0, LAYER_15D7 +/* 0x15D3 [0x89 0x1E 0xF0 ] */ ldlayer 1, LAYER_1EF0 +/* 0x15D6 [0xFF ] */ end + +.layer LAYER_15D7 +/* 0x15D7 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x15D9 [0xCF 0xF0 ] */ releaserate 240 +/* 0x15DB [0x72 0x7F 0x55 ] */ notedv PITCH_B4, 127, 85 +/* 0x15DE [0xFF ] */ end + +.channel CHAN_15DF +/* 0x15DF [0x88 0x15 0xE3 ] */ ldlayer 0, LAYER_15E3 +/* 0x15E2 [0xFF ] */ end + +.layer LAYER_15E3 +/* 0x15E3 [0xC6 0x21 ] */ instr SF0_INST_33 +/* 0x15E5 [0xCB 0x65 0xD8 0xFB ] */ env ENVELOPE_65D8, 251 +/* 0x15E9 [0xC2 0x30 ] */ transpose 48 +/* 0x15EB [0xC7 0x81 0x13 0xFF ] */ portamento 0x81, PITCH_E2, 255 +/* 0x15EF [0x6F 0x30 0x50 ] */ notedv PITCH_AF4, 48, 80 +/* 0x15F2 [0xFF ] */ end + +.channel CHAN_15F3 +/* 0x15F3 [0x88 0x2C 0x60 ] */ ldlayer 0, LAYER_2C60 +/* 0x15F6 [0x89 0x1B 0xEF ] */ ldlayer 1, LAYER_1BEF +/* 0x15F9 [0xFF ] */ end + +.channel CHAN_15FA +/* 0x15FA [0x88 0x16 0x01 ] */ ldlayer 0, LAYER_1601 +/* 0x15FD [0x89 0x16 0x0C ] */ ldlayer 1, LAYER_160C +/* 0x1600 [0xFF ] */ end + +.layer LAYER_1601 +/* 0x1601 [0xC6 0x29 ] */ instr SF0_INST_41 +/* 0x1603 [0xCF 0xE0 ] */ releaserate 224 +/* 0x1605 [0x6E 0x06 0x64 ] */ notedv PITCH_G4, 6, 100 +/* 0x1608 [0x63 0x00 0x64 ] */ notedv PITCH_AF3, 0, 100 +/* 0x160B [0xFF ] */ end + +.layer LAYER_160C +/* 0x160C [0xC6 0x27 ] */ instr SF0_INST_39 +/* 0x160E [0x6A 0x14 0x4C ] */ notedv PITCH_EF4, 20, 76 +/* 0x1611 [0xC6 0x21 ] */ instr SF0_INST_33 +/* 0x1613 [0x76 0x0A 0x66 ] */ notedv PITCH_EF5, 10, 102 +/* 0x1616 [0xFF ] */ end + +.channel CHAN_1617 +/* 0x1617 [0xC1 0x2F ] */ instr SF0_INST_47 +/* 0x1619 [0xDA 0x66 0xD0 ] */ env ENVELOPE_66D0 +/* 0x161C [0x88 0x16 0x20 ] */ ldlayer 0, LAYER_1620 +/* 0x161F [0xFF ] */ end + +.layer LAYER_1620 +/* 0x1620 [0x62 0x00 0x5F ] */ notedv PITCH_G3, 0, 95 +/* 0x1623 [0xFF ] */ end + +.channel CHAN_1624 +/* 0x1624 [0xC1 0x20 ] */ instr SF0_INST_32 +/* 0x1626 [0xDA 0x66 0x10 ] */ env ENVELOPE_6610 +/* 0x1629 [0x88 0x16 0x33 ] */ ldlayer 0, LAYER_1633 +/* 0x162C [0x89 0x10 0x5A ] */ ldlayer 1, LAYER_105A +/* 0x162F [0x8A 0x11 0xB7 ] */ ldlayer 2, LAYER_11B7 +/* 0x1632 [0xFF ] */ end + +.layer LAYER_1633 +/* 0x1633 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x1635 [0xC2 0x24 ] */ transpose 36 +/* 0x1637 [0x5F 0x08 0x64 ] */ notedv PITCH_E3, 8, 100 +/* 0x163A [0x64 0x00 0x64 ] */ notedv PITCH_A3, 0, 100 +/* 0x163D [0xFF ] */ end + +.channel CHAN_163E +/* 0x163E [0x88 0x16 0x42 ] */ ldlayer 0, LAYER_1642 +/* 0x1641 [0xFF ] */ end + +.layer LAYER_1642 +/* 0x1642 [0xC6 0x29 ] */ instr SF0_INST_41 +/* 0x1644 [0x62 0x0D 0x60 ] */ notedv PITCH_G3, 13, 96 +/* 0x1647 [0xFF ] */ end + +.channel CHAN_1648 +/* 0x1648 [0xCC 0x10 ] */ ldi 16 +/* 0x164A [0x71 ] */ stio IO_PORT_1 +/* 0x164B [0x89 0x16 0x51 ] */ ldlayer 1, LAYER_1651 +/* 0x164E [0xFB 0x10 0xE6 ] */ jump CHAN_10E6 + +.layer LAYER_1651 +/* 0x1651 [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x1653 [0xCB 0x66 0x10 0xEB ] */ env ENVELOPE_6610, 235 +/* 0x1657 [0xC7 0x82 0x1D 0x7F ] */ portamento 0x82, PITCH_D3, 127 +/* 0x165B [0x55 0x28 0x4A ] */ notedv PITCH_GF2, 40, 74 +/* 0x165E [0xFF ] */ end + +.filter FILTER_1660 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.filter FILTER_1670 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.channel environmentbank_handler_1 +/* 0x1680 [0xB0 0x30 0xC0 ] */ ldfilter FILTER_30C0 +/* 0x1683 [0xF4 0x08 ] */ rjump CHAN_168D + +.channel environmentbank_handler_2 +/* 0x1685 [0xB0 0x30 0xD0 ] */ ldfilter FILTER_30D0 +/* 0x1688 [0xF4 0x03 ] */ rjump CHAN_168D + +.channel environmentbank_handler_3 +/* 0x168A [0xB0 0x30 0xE0 ] */ ldfilter FILTER_30E0 +CHAN_168D: +/* 0x168D [0xFC 0x00 0x72 ] */ call CHAN_0072 +/* 0x1690 [0xC6 0x00 ] */ font Soundfont_0_ID +/* 0x1692 [0xB3 0x00 ] */ filter 0, 0 +/* 0x1694 [0xE3 0x00 ] */ vibdelay 0 +CHAN_1696: +/* 0x1696 [0xFE ] */ delay1 +/* 0x1697 [0x60 ] */ ldio IO_PORT_0 +/* 0x1698 [0xC8 0x01 ] */ sub 1 +/* 0x169A [0xF3 0x02 ] */ rbeqz CHAN_169E +/* 0x169C [0xF4 0xF8 ] */ rjump CHAN_1696 + +CHAN_169E: +/* 0x169E [0xD8 0x00 ] */ vibdepth 0 +/* 0x16A0 [0xD1 0x00 ] */ notealloc 0 +/* 0x16A2 [0xF0 ] */ freenotelist +/* 0x16A3 [0xDC 0x7F ] */ panweight 127 +/* 0x16A5 [0xFC 0x00 0x7C ] */ call CHAN_007C +/* 0x16A8 [0x92 ] */ dellayer 2 +/* 0x16A9 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x16AA [0xF5 0x16 0xB4 ] */ bgez CHAN_16B4 +/* 0x16AD [0xC9 0x7F ] */ and 127 +/* 0x16AF [0xC2 0x17 0xD5 ] */ dyntbl environmentbank_table + 2 * 1 * 128 +/* 0x16B2 [0xF4 0x03 ] */ rjump CHAN_16B7 + +CHAN_16B4: +/* 0x16B4 [0xC2 0x16 0xD5 ] */ dyntbl environmentbank_table + 2 * 0 * 128 +CHAN_16B7: +/* 0x16B7 [0xE4 ] */ dyncall +CHAN_16B8: +/* 0x16B8 [0x63 ] */ ldio IO_PORT_3 +/* 0x16B9 [0xC7 0x00 0x16 0xBE ] */ stseq 0, STSEQ_HERE + STSEQ_FILTER_IDX +/* 0x16BD [0xB3 0x00 ] */ filter 0, 0 +/* 0x16BF [0xFC 0x00 0x84 ] */ call CHAN_0084 +/* 0x16C2 [0xFE ] */ delay1 +/* 0x16C3 [0x60 ] */ ldio IO_PORT_0 +/* 0x16C4 [0xF3 0x0A ] */ rbeqz CHAN_16D0 +/* 0x16C6 [0xF2 0x02 ] */ rbltz CHAN_16CA +/* 0x16C8 [0xF4 0xD4 ] */ rjump CHAN_169E + +CHAN_16CA: +/* 0x16CA [0x80 ] */ testlayer 0 +/* 0x16CB [0xF3 0xEB ] */ rbeqz CHAN_16B8 +/* 0x16CD [0xCC 0xFF ] */ ldi 255 +/* 0x16CF [0x71 ] */ stio IO_PORT_1 +CHAN_16D0: +/* 0x16D0 [0x90 ] */ dellayer 0 +/* 0x16D1 [0x91 ] */ dellayer 1 +/* 0x16D2 [0x92 ] */ dellayer 2 +/* 0x16D3 [0xF4 0xC1 ] */ rjump CHAN_1696 + +#define DEFINE_SFX(lblName, sfxId, priority, decay, rand, flags) \ + entry lblName + +.table_unaligned environmentbank_table + #include "environmentbank_table.h" + +#undef DEFINE_SFX + +.channel CHAN_18C5 +/* 0x18C5 [0xE5 0x01 ] */ reverbidx 1 +/* 0x18C7 [0xCC 0x00 ] */ ldi 0 +/* 0x18C9 [0x71 ] */ stio IO_PORT_1 +.channel CHAN_18CA +/* 0x18CA [0x88 0x18 0xCE ] */ ldlayer 0, LAYER_18CE +/* 0x18CD [0xFF ] */ end + +.layer LAYER_18CE +/* 0x18CE [0xC6 0x2D ] */ instr SF0_INST_45 +/* 0x18D0 [0x64 0x30 0x64 ] */ notedv PITCH_A3, 48, 100 +/* 0x18D3 [0xC6 0x42 ] */ instr SF0_INST_66 +/* 0x18D5 [0x64 0x30 0x4B ] */ notedv PITCH_A3, 48, 75 +/* 0x18D8 [0xFF ] */ end + +.channel CHAN_18D9 +/* 0x18D9 [0x88 0x18 0xDD ] */ ldlayer 0, LAYER_18DD +/* 0x18DC [0xFF ] */ end + +.layer LAYER_18DD +/* 0x18DD [0xC6 0x2D ] */ instr SF0_INST_45 +/* 0x18DF [0xC2 0x30 ] */ transpose 48 +/* 0x18E1 [0x64 0x60 0x64 ] */ notedv PITCH_A3, 96, 100 +/* 0x18E4 [0xFF ] */ end + +.channel CHAN_18E5 +/* 0x18E5 [0x88 0x18 0xE9 ] */ ldlayer 0, LAYER_18E9 +/* 0x18E8 [0xFF ] */ end + +.layer LAYER_18E9 +/* 0x18E9 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x18EB [0xCB 0x65 0xE8 0xFB ] */ env ENVELOPE_65E8, 251 +/* 0x18EF [0x70 0x0C 0x6E ] */ notedv PITCH_A4, 12, 110 +/* 0x18F2 [0x64 0x7F 0x6E ] */ notedv PITCH_A3, 127, 110 +/* 0x18F5 [0xFF ] */ end + +.channel CHAN_18F6 +/* 0x18F6 [0xC1 0x30 ] */ instr SF0_INST_48 +/* 0x18F8 [0x88 0x18 0xFC ] */ ldlayer 0, LAYER_18FC +/* 0x18FB [0xFF ] */ end + +.layer LAYER_18FC +/* 0x18FC [0x62 0x18 0x6E ] */ notedv PITCH_G3, 24, 110 +/* 0x18FF [0xFF ] */ end + +.channel CHAN_1900 +/* 0x1900 [0xC1 0x30 ] */ instr SF0_INST_48 +/* 0x1902 [0x88 0x19 0x06 ] */ ldlayer 0, LAYER_1906 +/* 0x1905 [0xFF ] */ end + +.layer LAYER_1906 +/* 0x1906 [0x67 0x25 0x6E ] */ notedv PITCH_C4, 37, 110 +/* 0x1909 [0xFF ] */ end + +.channel CHAN_190A +/* 0x190A [0xC1 0x32 ] */ instr SF0_INST_50 +/* 0x190C [0x88 0x19 0x10 ] */ ldlayer 0, LAYER_1910 +/* 0x190F [0xFF ] */ end + +.layer LAYER_1910 +/* 0x1910 [0x67 0x80 0xAF 0x6E ] */ notedv PITCH_C4, 175, 110 +/* 0x1914 [0xFF ] */ end + +.channel CHAN_1915 +/* 0x1915 [0xC1 0x33 ] */ instr SF0_INST_51 +/* 0x1917 [0xDC 0x30 ] */ panweight 48 +/* 0x1919 [0x88 0x19 0x22 ] */ ldlayer 0, LAYER_1922 +/* 0x191C [0x89 0x19 0x20 ] */ ldlayer 1, LAYER_1920 +/* 0x191F [0xFF ] */ end + +.layer LAYER_1920 +/* 0x1920 [0xC2 0x07 ] */ transpose 7 +.layer LAYER_1922 +/* 0x1922 [0xC4 ] */ legato +LAYER_1923: +/* 0x1923 [0x5B 0xFD 0x00 0x4B ] */ notedv PITCH_C3, 32000, 75 +/* 0x1927 [0xF4 0xFA ] */ rjump LAYER_1923 + +.channel CHAN_1929 +/* 0x1929 [0xDC 0x30 ] */ panweight 48 +/* 0x192B [0x88 0x19 0x36 ] */ ldlayer 0, LAYER_1936 +/* 0x192E [0x89 0x19 0x32 ] */ ldlayer 1, LAYER_1932 +/* 0x1931 [0xFF ] */ end + +.layer LAYER_1932 +/* 0x1932 [0xC2 0x36 ] */ transpose 54 +/* 0x1934 [0xF4 0x02 ] */ rjump LAYER_1938 + +.layer LAYER_1936 +/* 0x1936 [0xC2 0x30 ] */ transpose 48 +LAYER_1938: +/* 0x1938 [0xC6 0x33 ] */ instr SF0_INST_51 +/* 0x193A [0xCB 0x66 0xF4 0xDC ] */ env ENVELOPE_66F4, 220 +/* 0x193E [0xC4 ] */ legato +LAYER_193F: +/* 0x193F [0x67 0xFD 0x00 0x5C ] */ notedv PITCH_C4, 32000, 92 +/* 0x1943 [0xF4 0xFA ] */ rjump LAYER_193F + +.channel CHAN_1945 +/* 0x1945 [0xC1 0x13 ] */ instr SF0_INST_19 +/* 0x1947 [0xDA 0x66 0x10 ] */ env ENVELOPE_6610 +/* 0x194A [0x88 0x19 0x4E ] */ ldlayer 0, LAYER_194E +/* 0x194D [0xFF ] */ end + +.layer LAYER_194E +/* 0x194E [0x72 0x06 0x64 ] */ notedv PITCH_B4, 6, 100 +/* 0x1951 [0xC7 0x81 0x30 0xC8 ] */ portamento 0x81, PITCH_A4, 200 +/* 0x1955 [0x6B 0x48 0x5A ] */ notedv PITCH_E4, 72, 90 +/* 0x1958 [0xFF ] */ end + +.channel CHAN_1959 +/* 0x1959 [0x88 0x19 0x5D ] */ ldlayer 0, LAYER_195D +/* 0x195C [0xFF ] */ end + +.layer LAYER_195D +/* 0x195D [0xC6 0x13 ] */ instr SF0_INST_19 +/* 0x195F [0xCB 0x65 0xFC 0x7F ] */ env ENVELOPE_65FC, 127 +/* 0x1963 [0xC7 0x81 0x24 0xC8 ] */ portamento 0x81, PITCH_A3, 200 +/* 0x1967 [0x58 0x7F 0x5A ] */ notedv PITCH_A2, 127, 90 +/* 0x196A [0xFF ] */ end + +.channel CHAN_196B +/* 0x196B [0x88 0x19 0x6F ] */ ldlayer 0, LAYER_196F +/* 0x196E [0xFF ] */ end + +.layer LAYER_196F +/* 0x196F [0xC6 0x37 ] */ instr SF0_INST_55 +/* 0x1971 [0xCF 0xF5 ] */ releaserate 245 +/* 0x1973 [0xC4 ] */ legato +/* 0x1974 [0xC7 0x01 0x0F 0x30 ] */ portamento 0x01, PITCH_C2, 48 +LAYER_1978: +/* 0x1978 [0x5B 0xFF 0xBC 0x64 ] */ notedv PITCH_C3, 32700, 100 +/* 0x197C [0xF4 0xFA ] */ rjump LAYER_1978 + +.channel CHAN_197E +/* 0x197E [0xC1 0x38 ] */ instr SF0_INST_56 +/* 0x1980 [0xDC 0x30 ] */ panweight 48 +/* 0x1982 [0xD9 0x70 ] */ releaserate 112 +/* 0x1984 [0x88 0x19 0x88 ] */ ldlayer 0, LAYER_1988 +/* 0x1987 [0xFF ] */ end + +.layer LAYER_1988 +/* 0x1988 [0xC4 ] */ legato +LAYER_1989: +/* 0x1989 [0x5F 0xFF 0xBC 0x64 ] */ notedv PITCH_E3, 32700, 100 +/* 0x198D [0xF4 0xFA ] */ rjump LAYER_1989 + +.channel CHAN_198F +/* 0x198F [0x88 0x19 0x96 ] */ ldlayer 0, LAYER_1996 +/* 0x1992 [0x89 0x19 0xB0 ] */ ldlayer 1, LAYER_19B0 +/* 0x1995 [0xFF ] */ end + +.layer LAYER_1996 +/* 0x1996 [0xC6 0x22 ] */ instr SF0_INST_34 +/* 0x1998 [0xCF 0xEB ] */ releaserate 235 +/* 0x199A [0x20 0x19 0x38 0x0A ] */ notedvg PITCH_F3, 25, 56, 10 +/* 0x199E [0x22 0x17 0x38 0x0A ] */ notedvg PITCH_G3, 23, 56, 10 +/* 0x19A2 [0x24 0x15 0x38 0x0A ] */ notedvg PITCH_A3, 21, 56, 10 +/* 0x19A6 [0x25 0x13 0x38 0x0A ] */ notedvg PITCH_BF3, 19, 56, 10 +LAYER_19AA: +/* 0x19AA [0x27 0x13 0x38 0x0A ] */ notedvg PITCH_C4, 19, 56, 10 +/* 0x19AE [0xF4 0xFA ] */ rjump LAYER_19AA + +.layer LAYER_19B0 +/* 0x19B0 [0xC6 0x39 ] */ instr SF0_INST_57 +/* 0x19B2 [0xC4 ] */ legato +/* 0x19B3 [0xC7 0x85 0x12 0xFF ] */ portamento 0x85, PITCH_EF2, 255 +/* 0x19B7 [0x59 0x14 0x5A ] */ notedv PITCH_BF2, 20, 90 +/* 0x19BA [0x5E 0x0A 0x5A ] */ notedv PITCH_EF3, 10, 90 +LAYER_19BD: +/* 0x19BD [0x5E 0xFF 0xBC 0x5A ] */ notedv PITCH_EF3, 32700, 90 +/* 0x19C1 [0xF4 0xFA ] */ rjump LAYER_19BD + +.channel CHAN_19C3 +/* 0x19C3 [0xC1 0x39 ] */ instr SF0_INST_57 +/* 0x19C5 [0x88 0x19 0xCC ] */ ldlayer 0, LAYER_19CC +/* 0x19C8 [0x89 0x19 0xDD ] */ ldlayer 1, LAYER_19DD +/* 0x19CB [0xFF ] */ end + +.layer LAYER_19CC +/* 0x19CC [0xC4 ] */ legato +/* 0x19CD [0xC7 0x85 0x14 0xFF ] */ portamento 0x85, PITCH_F2, 255 +/* 0x19D1 [0x58 0x1E 0x5A ] */ notedv PITCH_A2, 30, 90 +/* 0x19D4 [0x5F 0x0F 0x5A ] */ notedv PITCH_E3, 15, 90 +LAYER_19D7: +/* 0x19D7 [0x5F 0xFF 0xBC 0x5A ] */ notedv PITCH_E3, 32700, 90 +/* 0x19DB [0xF4 0xFA ] */ rjump LAYER_19D7 + +.layer LAYER_19DD +/* 0x19DD [0xC6 0x22 ] */ instr SF0_INST_34 +/* 0x19DF [0xCF 0xEB ] */ releaserate 235 +/* 0x19E1 [0x22 0x19 0x38 0x0A ] */ notedvg PITCH_G3, 25, 56, 10 +/* 0x19E5 [0x24 0x17 0x38 0x0A ] */ notedvg PITCH_A3, 23, 56, 10 +/* 0x19E9 [0x26 0x15 0x38 0x0A ] */ notedvg PITCH_B3, 21, 56, 10 +/* 0x19ED [0x27 0x13 0x38 0x0A ] */ notedvg PITCH_C4, 19, 56, 10 +LAYER_19F1: +/* 0x19F1 [0x29 0x11 0x38 0x0A ] */ notedvg PITCH_D4, 17, 56, 10 +/* 0x19F5 [0xF4 0xFA ] */ rjump LAYER_19F1 + +.channel CHAN_19F7 +/* 0x19F7 [0xDA 0x65 0xE8 ] */ env ENVELOPE_65E8 +/* 0x19FA [0x88 0x1A 0x07 ] */ ldlayer 0, LAYER_1A07 +/* 0x19FD [0x89 0x1A 0x01 ] */ ldlayer 1, LAYER_1A01 +/* 0x1A00 [0xFF ] */ end + +.layer LAYER_1A01 +/* 0x1A01 [0xC6 0x24 ] */ instr SF0_INST_36 +/* 0x1A03 [0x5A 0x64 0x4B ] */ notedv PITCH_B2, 100, 75 +/* 0x1A06 [0xFF ] */ end + +.layer LAYER_1A07 +/* 0x1A07 [0xC6 0x3B ] */ instr SF0_INST_59 +/* 0x1A09 [0x45 0x80 0xB4 0x6E ] */ notedv PITCH_D1, 180, 110 +/* 0x1A0D [0xFF ] */ end + +.channel CHAN_1A0E +/* 0x1A0E [0xDA 0x65 0xE8 ] */ env ENVELOPE_65E8 +/* 0x1A11 [0x88 0x1A 0x1E ] */ ldlayer 0, LAYER_1A1E +/* 0x1A14 [0x89 0x1A 0x18 ] */ ldlayer 1, LAYER_1A18 +/* 0x1A17 [0xFF ] */ end + +.layer LAYER_1A18 +/* 0x1A18 [0xC6 0x24 ] */ instr SF0_INST_36 +/* 0x1A1A [0x5A 0x64 0x4B ] */ notedv PITCH_B2, 100, 75 +/* 0x1A1D [0xFF ] */ end + +.layer LAYER_1A1E +/* 0x1A1E [0xC6 0x3B ] */ instr SF0_INST_59 +/* 0x1A20 [0x4B 0x80 0xB4 0x6E ] */ notedv PITCH_AF1, 180, 110 +/* 0x1A24 [0xFF ] */ end + +.channel CHAN_1A25 +/* 0x1A25 [0x88 0x1A 0x36 ] */ ldlayer 0, LAYER_1A36 +/* 0x1A28 [0x89 0x1B 0x41 ] */ ldlayer 1, LAYER_1B41 +/* 0x1A2B [0xFF ] */ end + +CHAN_1A2C: +/* 0x1A2C [0x89 0x1A 0x34 ] */ ldlayer 1, LAYER_1A34 +/* 0x1A2F [0xFF ] */ end + +.layer LAYER_1A30 +/* 0x1A30 [0xC2 0xF4 ] */ transpose -12 +/* 0x1A32 [0xF4 0x02 ] */ rjump LAYER_1A36 + +.layer LAYER_1A34 +/* 0x1A34 [0xC2 0xE8 ] */ transpose -24 +.layer LAYER_1A36 +/* 0x1A36 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x1A38 [0xCB 0x66 0x88 0xE6 ] */ env ENVELOPE_6688, 230 +/* 0x1A3C [0xC7 0x81 0x3A 0x7F ] */ portamento 0x81, PITCH_G5, 127 +/* 0x1A40 [0x67 0x52 0x5F ] */ notedv PITCH_C4, 82, 95 +/* 0x1A43 [0xC7 0x81 0x33 0x7F ] */ portamento 0x81, PITCH_C5, 127 +/* 0x1A47 [0x60 0x80 0xB9 0x46 ] */ notedv PITCH_F3, 185, 70 +/* 0x1A4B [0xFF ] */ end + +.channel CHAN_1A4C +/* 0x1A4C [0xC1 0x3A ] */ instr SF0_INST_58 +/* 0x1A4E [0x88 0x1A 0x52 ] */ ldlayer 0, LAYER_1A52 +/* 0x1A51 [0xFF ] */ end + +.layer LAYER_1A52 +/* 0x1A52 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x1A56 [0x68 0x80 0xA0 0x69 ] */ notedv PITCH_DF4, 160, 105 +/* 0x1A5A [0xFF ] */ end + +.channel CHAN_1A5B +/* 0x1A5B [0x88 0x1A 0x5F ] */ ldlayer 0, LAYER_1A5F +/* 0x1A5E [0xFF ] */ end + +.layer LAYER_1A5F +/* 0x1A5F [0xC6 0x3D ] */ instr SF0_INST_61 +/* 0x1A61 [0x23 0x0C 0x5F 0x0A ] */ notedvg PITCH_AF3, 12, 95, 10 +/* 0x1A65 [0xC6 0x3A ] */ instr SF0_INST_58 +/* 0x1A67 [0xCB 0x65 0xD8 0xFB ] */ env ENVELOPE_65D8, 251 +/* 0x1A6B [0xC7 0x81 0x33 0x7F ] */ portamento 0x81, PITCH_C5, 127 +/* 0x1A6F [0x6B 0x48 0x69 ] */ notedv PITCH_E4, 72, 105 +/* 0x1A72 [0xFF ] */ end + +.channel CHAN_1A73 +/* 0x1A73 [0xC1 0x3D ] */ instr SF0_INST_61 +/* 0x1A75 [0x88 0x1A 0x79 ] */ ldlayer 0, LAYER_1A79 +/* 0x1A78 [0xFF ] */ end + +.layer LAYER_1A79 +/* 0x1A79 [0x67 0x80 0xA6 0x69 ] */ notedv PITCH_C4, 166, 105 +/* 0x1A7D [0xFF ] */ end + +.channel CHAN_1A7E +/* 0x1A7E [0xC1 0x36 ] */ instr SF0_INST_54 +/* 0x1A80 [0xDA 0x66 0x10 ] */ env ENVELOPE_6610 +/* 0x1A83 [0x88 0x1A 0x87 ] */ ldlayer 0, LAYER_1A87 +/* 0x1A86 [0xFF ] */ end + +.layer LAYER_1A87 +/* 0x1A87 [0xC7 0x81 0x20 0xAF ] */ portamento 0x81, PITCH_F3, 175 +/* 0x1A8B [0x66 0x30 0x73 ] */ notedv PITCH_B3, 48, 115 +/* 0x1A8E [0xFF ] */ end + +.channel CHAN_1A8F +/* 0x1A8F [0x88 0x1A 0x96 ] */ ldlayer 0, LAYER_1A96 +/* 0x1A92 [0x89 0x1A 0xA5 ] */ ldlayer 1, LAYER_1AA5 +/* 0x1A95 [0xFF ] */ end + +.layer LAYER_1A96 +/* 0x1A96 [0xC6 0x3F ] */ instr SF0_INST_63 +/* 0x1A98 [0x67 0x04 0x69 ] */ notedv PITCH_C4, 4, 105 +/* 0x1A9B [0xC6 0x3B ] */ instr SF0_INST_59 +/* 0x1A9D [0xCB 0x66 0x4C 0xFF ] */ env ENVELOPE_664C, 255 +/* 0x1AA1 [0x4D 0x28 0x69 ] */ notedv PITCH_BF1, 40, 105 +/* 0x1AA4 [0xFF ] */ end + +.layer LAYER_1AA5 +/* 0x1AA5 [0xC6 0x3B ] */ instr SF0_INST_59 +/* 0x1AA7 [0xCB 0x66 0x4C 0xFB ] */ env ENVELOPE_664C, 251 +/* 0x1AAB [0x1B 0x04 0x66 0x60 ] */ notedvg PITCH_C3, 4, 102, 96 +/* 0x1AAF [0x4D 0x28 0x66 ] */ notedv PITCH_BF1, 40, 102 +/* 0x1AB2 [0xFF ] */ end + +.channel CHAN_1AB3 +/* 0x1AB3 [0x88 0x1A 0xB7 ] */ ldlayer 0, LAYER_1AB7 +/* 0x1AB6 [0xFF ] */ end + +.layer LAYER_1AB7 +/* 0x1AB7 [0xC2 0x30 ] */ transpose 48 +LAYER_1AB9: +/* 0x1AB9 [0xC6 0x32 ] */ instr SF0_INST_50 +/* 0x1ABB [0xC4 ] */ legato +/* 0x1ABC [0xC7 0x85 0x22 0xFF ] */ portamento 0x85, PITCH_G3, 255 +/* 0x1AC0 [0x63 0x06 0x55 ] */ notedv PITCH_AF3, 6, 85 +/* 0x1AC3 [0x5E 0x08 0x55 ] */ notedv PITCH_EF3, 8, 85 +/* 0x1AC6 [0x5A 0x73 0x55 ] */ notedv PITCH_B2, 115, 85 +/* 0x1AC9 [0xFF ] */ end + +.channel CHAN_1ACA +/* 0x1ACA [0x88 0x1A 0xD0 ] */ ldlayer 0, LAYER_1AD0 +/* 0x1ACD [0xFF ] */ end + +.layer LAYER_1ACE +/* 0x1ACE [0xC2 0x06 ] */ transpose 6 +.layer LAYER_1AD0 +/* 0x1AD0 [0xC6 0x3E ] */ instr SF0_INST_62 +/* 0x1AD2 [0x6C 0x5C 0x73 ] */ notedv PITCH_F4, 92, 115 +/* 0x1AD5 [0xFF ] */ end + +.channel CHAN_1AD6 +/* 0x1AD6 [0xC1 0x30 ] */ instr SF0_INST_48 +/* 0x1AD8 [0x88 0x1A 0xDC ] */ ldlayer 0, LAYER_1ADC +/* 0x1ADB [0xFF ] */ end + +.layer LAYER_1ADC +/* 0x1ADC [0x69 0x08 0x6E ] */ notedv PITCH_D4, 8, 110 +/* 0x1ADF [0x6B 0x0F 0x6E ] */ notedv PITCH_E4, 15, 110 +/* 0x1AE2 [0xFF ] */ end + +.channel CHAN_1AE3 +/* 0x1AE3 [0xC1 0x30 ] */ instr SF0_INST_48 +/* 0x1AE5 [0x88 0x1A 0xE9 ] */ ldlayer 0, LAYER_1AE9 +/* 0x1AE8 [0xFF ] */ end + +.layer LAYER_1AE9 +/* 0x1AE9 [0x6C 0x0A 0x6E ] */ notedv PITCH_F4, 10, 110 +/* 0x1AEC [0x69 0x12 0x6E ] */ notedv PITCH_D4, 18, 110 +/* 0x1AEF [0xFF ] */ end + +.channel CHAN_1AF0 +/* 0x1AF0 [0xC1 0x0C ] */ instr SF0_INST_12 +/* 0x1AF2 [0xDA 0x66 0x7C ] */ env ENVELOPE_667C +/* 0x1AF5 [0x88 0x1A 0xF9 ] */ ldlayer 0, LAYER_1AF9 +/* 0x1AF8 [0xFF ] */ end + +.layer LAYER_1AF9 +/* 0x1AF9 [0xC7 0x81 0x26 0xFF ] */ portamento 0x81, PITCH_B3, 255 +/* 0x1AFD [0x5B 0x3C 0x50 ] */ notedv PITCH_C3, 60, 80 +/* 0x1B00 [0xFF ] */ end + +.channel CHAN_1B01 +/* 0x1B01 [0x88 0x1B 0x05 ] */ ldlayer 0, LAYER_1B05 +/* 0x1B04 [0xFF ] */ end + +.layer LAYER_1B05 +/* 0x1B05 [0xC6 0x45 ] */ instr SF0_INST_69 +/* 0x1B07 [0xCB 0x67 0x94 0xFB ] */ env ENVELOPE_6794, 251 +/* 0x1B0B [0xC7 0x01 0x34 0x81 0x00] */ portamento 0x01, PITCH_DF5, 256 +/* 0x1B10 [0x7E 0x48 0x41 ] */ notedv PITCH_B5, 72, 65 +/* 0x1B13 [0xFF ] */ end + +.channel CHAN_1B14 +/* 0x1B14 [0xC1 0x36 ] */ instr SF0_INST_54 +/* 0x1B16 [0xDA 0x66 0x10 ] */ env ENVELOPE_6610 +/* 0x1B19 [0x88 0x1B 0x1D ] */ ldlayer 0, LAYER_1B1D +/* 0x1B1C [0xFF ] */ end + +.layer LAYER_1B1D +/* 0x1B1D [0xC7 0x81 0x26 0xAF ] */ portamento 0x81, PITCH_B3, 175 +/* 0x1B21 [0x60 0x30 0x73 ] */ notedv PITCH_F3, 48, 115 +/* 0x1B24 [0xFF ] */ end + +.channel CHAN_1B25 +/* 0x1B25 [0xED 0x14 ] */ gain 20 +/* 0x1B27 [0x88 0x1B 0x2E ] */ ldlayer 0, LAYER_1B2E +/* 0x1B2A [0x89 0x1B 0x41 ] */ ldlayer 1, LAYER_1B41 +/* 0x1B2D [0xFF ] */ end + +.layer LAYER_1B2E +/* 0x1B2E [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x1B30 [0xCF 0xA0 ] */ releaserate 160 +/* 0x1B32 [0x6B 0x32 0x66 ] */ notedv PITCH_E4, 50, 102 +LAYER_1B35: +/* 0x1B35 [0xC6 0x41 ] */ instr SF0_INST_65 +/* 0x1B37 [0xCB 0x67 0x40 0xF5 ] */ env ENVELOPE_6740, 245 +/* 0x1B3B [0x53 0x64 0x50 ] */ notedv PITCH_E2, 100, 80 +/* 0x1B3E [0xFF ] */ end + +.layer LAYER_1B3F +/* 0x1B3F [0xC2 0x04 ] */ transpose 4 +.layer LAYER_1B41 +/* 0x1B41 [0xC6 0x41 ] */ instr SF0_INST_65 +/* 0x1B43 [0x5F 0x64 0x6E ] */ notedv PITCH_E3, 100, 110 +/* 0x1B46 [0xFF ] */ end + +.channel CHAN_1B47 +/* 0x1B47 [0xC1 0x36 ] */ instr SF0_INST_54 +/* 0x1B49 [0xDA 0x66 0x74 ] */ env ENVELOPE_6674 +/* 0x1B4C [0x88 0x1B 0x57 ] */ ldlayer 0, LAYER_1B57 +/* 0x1B4F [0x89 0x1B 0x53 ] */ ldlayer 1, LAYER_1B53 +/* 0x1B52 [0xFF ] */ end + +.layer LAYER_1B53 +/* 0x1B53 [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x1B55 [0xC2 0x16 ] */ transpose 22 +.layer LAYER_1B57 +/* 0x1B57 [0xC4 ] */ legato +/* 0x1B58 [0xC7 0x81 0x22 0xAF ] */ portamento 0x81, PITCH_G3, 175 +LAYER_1B5C: +/* 0x1B5C [0x58 0x60 0x73 ] */ notedv PITCH_A2, 96, 115 +/* 0x1B5F [0xF4 0xFB ] */ rjump LAYER_1B5C + +.channel CHAN_1B61 +/* 0x1B61 [0x88 0x1B 0x71 ] */ ldlayer 0, LAYER_1B71 +/* 0x1B64 [0x89 0x1B 0x68 ] */ ldlayer 1, LAYER_1B68 +/* 0x1B67 [0xFF ] */ end + +.layer LAYER_1B68 +/* 0x1B68 [0xC6 0x2D ] */ instr SF0_INST_45 +/* 0x1B6A [0x70 0x03 0x73 ] */ notedv PITCH_A4, 3, 115 +/* 0x1B6D [0x77 0x06 0x73 ] */ notedv PITCH_E5, 6, 115 +/* 0x1B70 [0xFF ] */ end + +.layer LAYER_1B71 +/* 0x1B71 [0xC0 0x19 ] */ ldelay 25 +/* 0x1B73 [0xC6 0x42 ] */ instr SF0_INST_66 +/* 0x1B75 [0xC7 0x81 0x1F 0xFF ] */ portamento 0x81, PITCH_E3, 255 +/* 0x1B79 [0x62 0x18 0x64 ] */ notedv PITCH_G3, 24, 100 +/* 0x1B7C [0xFF ] */ end + +.channel CHAN_1B7D +/* 0x1B7D [0x88 0x1B 0x81 ] */ ldlayer 0, LAYER_1B81 +/* 0x1B80 [0xFF ] */ end + +.layer LAYER_1B81 +/* 0x1B81 [0xC6 0x42 ] */ instr SF0_INST_66 +/* 0x1B83 [0xCB 0x65 0xFC 0xFA ] */ env ENVELOPE_65FC, 250 +/* 0x1B87 [0xC7 0x83 0x20 0xFF ] */ portamento 0x83, PITCH_F3, 255 +/* 0x1B8B [0x1D 0x18 0x64 0x7F ] */ notedvg PITCH_D3, 24, 100, 127 +/* 0x1B8F [0x67 0x48 0x64 ] */ notedv PITCH_C4, 72, 100 +/* 0x1B92 [0xFF ] */ end + +.channel CHAN_1B93 +/* 0x1B93 [0xC1 0x21 ] */ instr SF0_INST_33 +/* 0x1B95 [0xCC 0x07 ] */ ldi 7 +/* 0x1B97 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x1B9A [0xD1 0x02 ] */ notealloc 2 +/* 0x1B9C [0xF1 0x02 ] */ allocnotelist 2 +/* 0x1B9E [0x88 0x1B 0xBA ] */ ldlayer 0, LAYER_1BBA +CHAN_1BA1: +/* 0x1BA1 [0x66 ] */ ldio IO_PORT_6 +/* 0x1BA2 [0xC9 0x03 ] */ and 3 +/* 0x1BA4 [0xCB 0x1B 0xB6 ] */ ldseq UNK_1BB6 +/* 0x1BA7 [0xC7 0x00 0x1B 0xE7 ] */ stseq 0, LAYER_1BE6 + STSEQ_LDELAY +/* 0x1BAB [0xC7 0x08 0x1B 0xB0 ] */ stseq 8, STSEQ_HERE + STSEQ_LDI_IMM +/* 0x1BAF [0xCC 0x30 ] */ ldi 48 +/* 0x1BB1 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x1BB4 [0xF4 0xEB ] */ rjump CHAN_1BA1 + +UNK_1BB6: + .byte 0x20, 0x0E, 0x05, 0x20 + +.layer LAYER_1BBA +/* 0x1BBA [0xC2 0x30 ] */ transpose 48 +LAYER_1BBC: +/* 0x1BBC [0x26 0x02 0x46 0x7F ] */ notedvg PITCH_B3, 2, 70, 127 +/* 0x1BC0 [0x5B 0x02 0x46 ] */ notedv PITCH_C3, 2, 70 +/* 0x1BC3 [0xFC 0x1B 0xE6 ] */ call LAYER_1BE6 +/* 0x1BC6 [0x20 0x02 0x46 0x7F ] */ notedvg PITCH_F3, 2, 70, 127 +/* 0x1BCA [0x55 0x02 0x46 ] */ notedv PITCH_GF2, 2, 70 +/* 0x1BCD [0xFC 0x1B 0xE6 ] */ call LAYER_1BE6 +/* 0x1BD0 [0x32 0x02 0x46 0x7F ] */ notedvg PITCH_B4, 2, 70, 127 +/* 0x1BD4 [0x67 0x02 0x46 ] */ notedv PITCH_C4, 2, 70 +/* 0x1BD7 [0xFC 0x1B 0xE6 ] */ call LAYER_1BE6 +/* 0x1BDA [0x2C 0x02 0x46 0x7F ] */ notedvg PITCH_F4, 2, 70, 127 +/* 0x1BDE [0x61 0x02 0x46 ] */ notedv PITCH_GF3, 2, 70 +/* 0x1BE1 [0xFC 0x1B 0xE6 ] */ call LAYER_1BE6 +/* 0x1BE4 [0xF4 0xD6 ] */ rjump LAYER_1BBC + +.layer LAYER_1BE6 +/* 0x1BE6 [0xC0 0x14 ] */ ldelay 20 +/* 0x1BE8 [0xFF ] */ end + +.channel CHAN_1BE9 +/* 0x1BE9 [0xED 0x0F ] */ gain 15 +/* 0x1BEB [0x88 0x1B 0xEF ] */ ldlayer 0, LAYER_1BEF +/* 0x1BEE [0xFF ] */ end + +.layer LAYER_1BEF +/* 0x1BEF [0xC6 0x43 ] */ instr SF0_INST_67 +/* 0x1BF1 [0xC7 0x81 0x1B 0x98 ] */ portamento 0x81, PITCH_C3, 152 +/* 0x1BF5 [0x67 0x3C 0x64 ] */ notedv PITCH_C4, 60, 100 +/* 0x1BF8 [0xFF ] */ end + +.channel CHAN_1BF9 +/* 0x1BF9 [0xC1 0x1A ] */ instr SF0_INST_26 +/* 0x1BFB [0x88 0x1C 0x05 ] */ ldlayer 0, LAYER_1C05 +/* 0x1BFE [0x89 0x1C 0x0B ] */ ldlayer 1, LAYER_1C0B +/* 0x1C01 [0x8A 0x1C 0x0F ] */ ldlayer 2, LAYER_1C0F +/* 0x1C04 [0xFF ] */ end + +.layer LAYER_1C05 +/* 0x1C05 [0xC0 0x02 ] */ ldelay 2 +/* 0x1C07 [0x67 0x1E 0x5A ] */ notedv PITCH_C4, 30, 90 +/* 0x1C0A [0xFF ] */ end + +.layer LAYER_1C0B +/* 0x1C0B [0x6B 0x1E 0x5A ] */ notedv PITCH_E4, 30, 90 +/* 0x1C0E [0xFF ] */ end + +.layer LAYER_1C0F +/* 0x1C0F [0xC2 0xF4 ] */ transpose -12 +/* 0x1C11 [0xFB 0x12 0xE7 ] */ jump LAYER_12E7 + +.channel CHAN_1C14 +/* 0x1C14 [0x88 0x1C 0x1D ] */ ldlayer 0, LAYER_1C1D +/* 0x1C17 [0x89 0x1C 0x1B ] */ ldlayer 1, LAYER_1C1B +/* 0x1C1A [0xFF ] */ end + +.layer LAYER_1C1B +/* 0x1C1B [0xC2 0xF4 ] */ transpose -12 +.layer LAYER_1C1D +/* 0x1C1D [0xC6 0x36 ] */ instr SF0_INST_54 +/* 0x1C1F [0xCB 0x66 0x74 0xFB ] */ env ENVELOPE_6674, 251 +/* 0x1C23 [0xC4 ] */ legato +/* 0x1C24 [0xC7 0x01 0x1A 0x3C ] */ portamento 0x01, PITCH_B2, 60 +LAYER_1C28: +/* 0x1C28 [0x64 0xFF 0xBC 0x5F ] */ notedv PITCH_A3, 32700, 95 +/* 0x1C2C [0xF4 0xFA ] */ rjump LAYER_1C28 + +.channel CHAN_1C2E +/* 0x1C2E [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x1C30 [0xD9 0xB6 ] */ releaserate 182 +/* 0x1C32 [0x88 0x1C 0x65 ] */ ldlayer 0, LAYER_1C65 +/* 0x1C35 [0x89 0x1C 0x6F ] */ ldlayer 1, LAYER_1C6F +/* 0x1C38 [0x8A 0x1C 0x61 ] */ ldlayer 2, LAYER_1C61 +CHAN_1C3B: +/* 0x1C3B [0x63 ] */ ldio IO_PORT_3 +/* 0x1C3C [0xC9 0xF0 ] */ and 240 +/* 0x1C3E [0xF3 0x0E ] */ rbeqz CHAN_1C4E +/* 0x1C40 [0xCE 0x00 0x00 ] */ ldptr SEQ_0000 +/* 0x1C43 [0xCF 0x1C 0x80 ] */ stptrtoseq ENVELOPE_1C7A + STSEQ_ENVELOPE_POINT(3) +/* 0x1C46 [0xCE 0x7F 0xBC ] */ ldptr SEQ_0_END + 0x1538 +/* 0x1C49 [0xCF 0x1C 0x8C ] */ stptrtoseq ENVELOPE_1C86 + STSEQ_ENVELOPE_POINT(3) +/* 0x1C4C [0xF4 0x0C ] */ rjump CHAN_1C5A + +CHAN_1C4E: +/* 0x1C4E [0xCE 0x00 0x00 ] */ ldptr SEQ_0000 +/* 0x1C51 [0xCF 0x1C 0x8C ] */ stptrtoseq ENVELOPE_1C86 + STSEQ_ENVELOPE_POINT(3) +/* 0x1C54 [0xCE 0x7F 0xBC ] */ ldptr SEQ_0_END + 0x1538 +/* 0x1C57 [0xCF 0x1C 0x80 ] */ stptrtoseq ENVELOPE_1C7A + STSEQ_ENVELOPE_POINT(3) +CHAN_1C5A: +/* 0x1C5A [0xCC 0x01 ] */ ldi 1 +/* 0x1C5C [0xFC 0x00 0x40 ] */ call CHAN_0040 +/* 0x1C5F [0xF4 0xDA ] */ rjump CHAN_1C3B + +.layer LAYER_1C61 +/* 0x1C61 [0xCD 0x14 ] */ stereo 1, 0, 1, 0, 0 +/* 0x1C63 [0xF4 0x00 ] */ rjump LAYER_1C65 + +.layer LAYER_1C65 +/* 0x1C65 [0xC4 ] */ legato +/* 0x1C66 [0x6F 0x0C 0x4B ] */ notedv PITCH_AF4, 12, 75 +LAYER_1C69: +/* 0x1C69 [0x71 0xFF 0xBC 0x4B ] */ notedv PITCH_BF4, 32700, 75 +/* 0x1C6D [0xF4 0xFA ] */ rjump LAYER_1C69 + +.layer LAYER_1C6F +/* 0x1C6F [0xC4 ] */ legato +/* 0x1C70 [0x75 0x0C 0x4B ] */ notedv PITCH_D5, 12, 75 +LAYER_1C73: +/* 0x1C73 [0x75 0xFF 0xBC 0x4B ] */ notedv PITCH_D5, 32700, 75 +/* 0x1C77 [0xF4 0xFA ] */ rjump LAYER_1C73 + +.balign 2 +.envelope ENVELOPE_1C7A + point 1, 32700 + point 80, 32700 + goto 1 + +.envelope ENVELOPE_1C86 + point 1, 0 + point 80, 32700 + goto 1 + +.envelope ENVELOPE_1C92 + point 1, 32700 + point 80, 32700 + goto 1 + +.channel CHAN_1C9E +/* 0x1C9E [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x1CA0 [0xDC 0x30 ] */ panweight 48 +/* 0x1CA2 [0xCC 0x19 ] */ ldi 25 +/* 0x1CA4 [0x71 ] */ stio IO_PORT_1 +/* 0x1CA5 [0xDA 0x67 0x50 ] */ env ENVELOPE_6750 +/* 0x1CA8 [0xD9 0xE8 ] */ releaserate 232 +/* 0x1CAA [0x88 0x1C 0xB4 ] */ ldlayer 0, LAYER_1CB4 +/* 0x1CAD [0x89 0x1C 0xCB ] */ ldlayer 1, LAYER_1CCB +/* 0x1CB0 [0x8A 0x1C 0xE7 ] */ ldlayer 2, LAYER_1CE7 +/* 0x1CB3 [0xFF ] */ end + +.layer LAYER_1CB4 +/* 0x1CB4 [0xCA 0x18 ] */ notepan 24 +/* 0x1CB6 [0xC2 0x0C ] */ transpose 12 +/* 0x1CB8 [0x69 0x18 0x4B ] */ notedv PITCH_D4, 24, 75 +/* 0x1CBB [0xC4 ] */ legato +/* 0x1CBC [0xCF 0xFB ] */ releaserate 251 +/* 0x1CBE [0xC7 0x85 0x35 0xFF ] */ portamento 0x85, PITCH_D5, 255 +/* 0x1CC2 [0x75 0x81 0x90 0x5A ] */ notedv PITCH_D5, 400, 90 +/* 0x1CC6 [0x77 0x81 0xF4 0x5A ] */ notedv PITCH_E5, 500, 90 +/* 0x1CCA [0xFF ] */ end + +.layer LAYER_1CCB +/* 0x1CCB [0xCA 0x40 ] */ notepan 64 +/* 0x1CCD [0xC2 0x0C ] */ transpose 12 +/* 0x1CCF [0x69 0x18 0x4B ] */ notedv PITCH_D4, 24, 75 +/* 0x1CD2 [0x75 0x81 0x90 0x4B ] */ notedv PITCH_D5, 400, 75 +/* 0x1CD6 [0xC2 0x00 ] */ transpose 0 +/* 0x1CD8 [0xC6 0x40 ] */ instr SF0_INST_64 +/* 0x1CDA [0xCB 0x67 0x78 0xFB ] */ env ENVELOPE_6778, 251 +/* 0x1CDE [0xC7 0x81 0x39 0xFF ] */ portamento 0x81, PITCH_GF5, 255 +/* 0x1CE2 [0x7D 0x81 0xF4 0x32 ] */ notedv PITCH_BF5, 500, 50 +/* 0x1CE6 [0xFF ] */ end + +.layer LAYER_1CE7 +/* 0x1CE7 [0xCA 0x68 ] */ notepan 104 +/* 0x1CE9 [0xC2 0x18 ] */ transpose 24 +/* 0x1CEB [0x65 0x18 0x4B ] */ notedv PITCH_BF3, 24, 75 +/* 0x1CEE [0xC4 ] */ legato +/* 0x1CEF [0xCF 0xFB ] */ releaserate 251 +/* 0x1CF1 [0xC7 0x85 0x31 0xFF ] */ portamento 0x85, PITCH_BF4, 255 +/* 0x1CF5 [0x71 0x81 0x90 0x5A ] */ notedv PITCH_BF4, 400, 90 +/* 0x1CF9 [0x73 0x81 0xF4 0x5A ] */ notedv PITCH_C5, 500, 90 +/* 0x1CFD [0xFF ] */ end + +.channel CHAN_1CFE +/* 0x1CFE [0xC1 0x2F ] */ instr SF0_INST_47 +/* 0x1D00 [0xDC 0x48 ] */ panweight 72 +/* 0x1D02 [0x88 0x1D 0x0C ] */ ldlayer 0, LAYER_1D0C +/* 0x1D05 [0x89 0x1D 0x70 ] */ ldlayer 1, LAYER_1D70 +/* 0x1D08 [0x8A 0x1D 0x44 ] */ ldlayer 2, LAYER_1D44 +/* 0x1D0B [0xFF ] */ end + +.layer LAYER_1D0C +/* 0x1D0C [0xCB 0x65 0xE8 0xC8 ] */ env ENVELOPE_65E8, 200 +/* 0x1D10 [0xC2 0xF8 ] */ transpose -8 +LAYER_1D12: +/* 0x1D12 [0xCA 0x22 ] */ notepan 34 +/* 0x1D14 [0x70 0x08 0x64 ] */ notedv PITCH_A4, 8, 100 +/* 0x1D17 [0x64 0x18 0x64 ] */ notedv PITCH_A3, 24, 100 +/* 0x1D1A [0xCA 0x4A ] */ notepan 74 +/* 0x1D1C [0x72 0x06 0x55 ] */ notedv PITCH_B4, 6, 85 +/* 0x1D1F [0x66 0x15 0x55 ] */ notedv PITCH_B3, 21, 85 +/* 0x1D22 [0xCA 0x36 ] */ notepan 54 +/* 0x1D24 [0x6C 0x09 0x5B ] */ notedv PITCH_F4, 9, 91 +/* 0x1D27 [0x62 0x1A 0x5B ] */ notedv PITCH_G3, 26, 91 +/* 0x1D2A [0xCA 0x5E ] */ notepan 94 +/* 0x1D2C [0x70 0x07 0x66 ] */ notedv PITCH_A4, 7, 102 +/* 0x1D2F [0x60 0x0B 0x66 ] */ notedv PITCH_F3, 11, 102 +/* 0x1D32 [0xCA 0x2C ] */ notepan 44 +/* 0x1D34 [0x6E 0x09 0x56 ] */ notedv PITCH_G4, 9, 86 +/* 0x1D37 [0x60 0x1D 0x56 ] */ notedv PITCH_F3, 29, 86 +/* 0x1D3A [0xCA 0x40 ] */ notepan 64 +/* 0x1D3C [0x6E 0x05 0x58 ] */ notedv PITCH_G4, 5, 88 +/* 0x1D3F [0x64 0x1B 0x58 ] */ notedv PITCH_A3, 27, 88 +/* 0x1D42 [0xF4 0xCE ] */ rjump LAYER_1D12 + +.layer LAYER_1D44 +/* 0x1D44 [0xCB 0x65 0xE8 0x7F ] */ env ENVELOPE_65E8, 127 +/* 0x1D48 [0xC2 0xF8 ] */ transpose -8 +LAYER_1D4A: +/* 0x1D4A [0x62 0x09 0x49 ] */ notedv PITCH_G3, 9, 73 +/* 0x1D4D [0x54 0x22 0x49 ] */ notedv PITCH_F2, 34, 73 +/* 0x1D50 [0x64 0x09 0x4F ] */ notedv PITCH_A3, 9, 79 +/* 0x1D53 [0x54 0x1D 0x4F ] */ notedv PITCH_F2, 29, 79 +/* 0x1D56 [0x64 0x09 0x57 ] */ notedv PITCH_A3, 9, 87 +/* 0x1D59 [0x54 0x1B 0x57 ] */ notedv PITCH_F2, 27, 87 +/* 0x1D5C [0x5F 0x07 0x51 ] */ notedv PITCH_E3, 7, 81 +/* 0x1D5F [0x51 0x0F 0x51 ] */ notedv PITCH_D2, 15, 81 +/* 0x1D62 [0x64 0x09 0x44 ] */ notedv PITCH_A3, 9, 68 +/* 0x1D65 [0x4F 0x18 0x44 ] */ notedv PITCH_C2, 24, 68 +/* 0x1D68 [0x62 0x05 0x46 ] */ notedv PITCH_G3, 5, 70 +/* 0x1D6B [0x4F 0x21 0x46 ] */ notedv PITCH_C2, 33, 70 +/* 0x1D6E [0xF4 0xDA ] */ rjump LAYER_1D4A + +.layer LAYER_1D70 +/* 0x1D70 [0xC6 0x36 ] */ instr SF0_INST_54 +LAYER_1D72: +/* 0x1D72 [0x5C 0x1C 0x66 ] */ notedv PITCH_DF3, 28, 102 +/* 0x1D75 [0xF4 0xFB ] */ rjump LAYER_1D72 + +.channel CHAN_1D77 +/* 0x1D77 [0xC1 0x33 ] */ instr SF0_INST_51 +/* 0x1D79 [0xDC 0x30 ] */ panweight 48 +/* 0x1D7B [0xD9 0xD3 ] */ releaserate 211 +/* 0x1D7D [0x88 0x1D 0x86 ] */ ldlayer 0, LAYER_1D86 +/* 0x1D80 [0x89 0x1D 0x84 ] */ ldlayer 1, LAYER_1D84 +/* 0x1D83 [0xFF ] */ end + +.layer LAYER_1D84 +/* 0x1D84 [0xC2 0x0A ] */ transpose 10 +.layer LAYER_1D86 +/* 0x1D86 [0xC4 ] */ legato +LAYER_1D87: +/* 0x1D87 [0x64 0xFD 0x00 0x4B ] */ notedv PITCH_A3, 32000, 75 +/* 0x1D8B [0xF4 0xFA ] */ rjump LAYER_1D87 + +.channel CHAN_1D8D +/* 0x1D8D [0xC1 0x33 ] */ instr SF0_INST_51 +/* 0x1D8F [0xDC 0x40 ] */ panweight 64 +/* 0x1D91 [0x88 0x1D 0x9A ] */ ldlayer 0, LAYER_1D9A +/* 0x1D94 [0x89 0x1D 0x98 ] */ ldlayer 1, LAYER_1D98 +/* 0x1D97 [0xFF ] */ end + +.layer LAYER_1D98 +/* 0x1D98 [0xC2 0x04 ] */ transpose 4 +.layer LAYER_1D9A +/* 0x1D9A [0xC4 ] */ legato +LAYER_1D9B: +/* 0x1D9B [0x56 0xFD 0x00 0x3C ] */ notedv PITCH_G2, 32000, 60 +/* 0x1D9F [0xF4 0xFA ] */ rjump LAYER_1D9B + +.channel CHAN_1DA1 +/* 0x1DA1 [0xC1 0x33 ] */ instr SF0_INST_51 +/* 0x1DA3 [0xDC 0x40 ] */ panweight 64 +/* 0x1DA5 [0x88 0x1D 0xAE ] */ ldlayer 0, LAYER_1DAE +/* 0x1DA8 [0x89 0x1D 0xAC ] */ ldlayer 1, LAYER_1DAC +/* 0x1DAB [0xFF ] */ end + +.layer LAYER_1DAC +/* 0x1DAC [0xC2 0x07 ] */ transpose 7 +.layer LAYER_1DAE +/* 0x1DAE [0xC4 ] */ legato +LAYER_1DAF: +/* 0x1DAF [0x62 0xFD 0x00 0x4B ] */ notedv PITCH_G3, 32000, 75 +/* 0x1DB3 [0xF4 0xFA ] */ rjump LAYER_1DAF + +.channel CHAN_1DB5 +/* 0x1DB5 [0xC1 0x30 ] */ instr SF0_INST_48 +/* 0x1DB7 [0x88 0x1D 0xBB ] */ ldlayer 0, LAYER_1DBB +/* 0x1DBA [0xFF ] */ end + +.layer LAYER_1DBB +/* 0x1DBB [0x66 0x12 0x6E ] */ notedv PITCH_B3, 18, 110 +/* 0x1DBE [0xFF ] */ end + +.channel CHAN_1DBF +/* 0x1DBF [0xC1 0x0C ] */ instr SF0_INST_12 +/* 0x1DC1 [0xDA 0x66 0x7C ] */ env ENVELOPE_667C +/* 0x1DC4 [0x88 0x1D 0xC8 ] */ ldlayer 0, LAYER_1DC8 +/* 0x1DC7 [0xFF ] */ end + +.layer LAYER_1DC8 +/* 0x1DC8 [0xC7 0x81 0x26 0xFF ] */ portamento 0x81, PITCH_B3, 255 +/* 0x1DCC [0x67 0x20 0x50 ] */ notedv PITCH_C4, 32, 80 +/* 0x1DCF [0xFF ] */ end + +.channel CHAN_1DD0 +/* 0x1DD0 [0xC1 0x46 ] */ instr SF0_INST_70 +/* 0x1DD2 [0xCC 0x20 ] */ ldi 32 +/* 0x1DD4 [0x71 ] */ stio IO_PORT_1 +/* 0x1DD5 [0xD9 0xF5 ] */ releaserate 245 +/* 0x1DD7 [0x88 0x1D 0xE6 ] */ ldlayer 0, LAYER_1DE6 +/* 0x1DDA [0x89 0x1D 0xDE ] */ ldlayer 1, LAYER_1DDE +/* 0x1DDD [0xFF ] */ end + +.layer LAYER_1DDE +/* 0x1DDE [0xC7 0x81 0x16 0xFF ] */ portamento 0x81, PITCH_G2, 255 +/* 0x1DE2 [0x62 0x78 0x46 ] */ notedv PITCH_G3, 120, 70 +/* 0x1DE5 [0xFF ] */ end + +.layer LAYER_1DE6 +/* 0x1DE6 [0xC7 0x01 0x22 0x30 ] */ portamento 0x01, PITCH_G3, 48 +/* 0x1DEA [0x6E 0x78 0x46 ] */ notedv PITCH_G4, 120, 70 +/* 0x1DED [0xFF ] */ end + +.channel CHAN_1DEE +/* 0x1DEE [0xED 0x0F ] */ gain 15 +/* 0x1DF0 [0x88 0x1D 0xFE ] */ ldlayer 0, LAYER_1DFE +/* 0x1DF3 [0x89 0x1D 0xFA ] */ ldlayer 1, LAYER_1DFA +/* 0x1DF6 [0x8A 0x1E 0x0A ] */ ldlayer 2, LAYER_1E0A +/* 0x1DF9 [0xFF ] */ end + +.layer LAYER_1DFA +/* 0x1DFA [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x1DFC [0xF4 0x04 ] */ rjump LAYER_1E02 + +.layer LAYER_1DFE +/* 0x1DFE [0xC2 0x2A ] */ transpose 42 +/* 0x1E00 [0xC6 0x4A ] */ instr SF0_INST_74 +LAYER_1E02: +/* 0x1E02 [0xCB 0x65 0xFC 0xC8 ] */ env ENVELOPE_65FC, 200 +/* 0x1E06 [0x68 0x00 0x6E ] */ notedv PITCH_DF4, 0, 110 +/* 0x1E09 [0xFF ] */ end + +.layer LAYER_1E0A +/* 0x1E0A [0xC6 0x46 ] */ instr SF0_INST_70 +/* 0x1E0C [0x62 0x32 0x32 ] */ notedv PITCH_G3, 50, 50 +/* 0x1E0F [0xFF ] */ end + +.channel CHAN_1E10 +/* 0x1E10 [0x88 0x1E 0x14 ] */ ldlayer 0, LAYER_1E14 +/* 0x1E13 [0xFF ] */ end + +.layer LAYER_1E14 +/* 0x1E14 [0xC6 0x24 ] */ instr SF0_INST_36 +/* 0x1E16 [0xCB 0x66 0x60 0xFB ] */ env ENVELOPE_6660, 251 +/* 0x1E1A [0xC4 ] */ legato +/* 0x1E1B [0xC7 0x85 0x30 0xFF ] */ portamento 0x85, PITCH_A4, 255 +/* 0x1E1F [0x5B 0x04 0x5F ] */ notedv PITCH_C3, 4, 95 +/* 0x1E22 [0x65 0x05 0x5F ] */ notedv PITCH_BF3, 5, 95 +/* 0x1E25 [0xFF ] */ end + +.channel CHAN_1E26 +/* 0x1E26 [0xC1 0x47 ] */ instr SF0_INST_71 +/* 0x1E28 [0xDA 0x66 0x24 ] */ env ENVELOPE_6624 +/* 0x1E2B [0xD9 0xC9 ] */ releaserate 201 +/* 0x1E2D [0xCC 0x14 ] */ ldi 20 +/* 0x1E2F [0x71 ] */ stio IO_PORT_1 +/* 0x1E30 [0xDC 0x00 ] */ panweight 0 +/* 0x1E32 [0x88 0x1E 0x3C ] */ ldlayer 0, LAYER_1E3C +/* 0x1E35 [0x89 0x1E 0x57 ] */ ldlayer 1, LAYER_1E57 +/* 0x1E38 [0x8A 0x1E 0x74 ] */ ldlayer 2, LAYER_1E74 +/* 0x1E3B [0xFF ] */ end + +.layer LAYER_1E3C +/* 0x1E3C [0xCA 0x4A ] */ notepan 74 +/* 0x1E3E [0xFC 0x1E 0x7F ] */ call LAYER_1E7F +/* 0x1E41 [0xCA 0x54 ] */ notepan 84 +/* 0x1E43 [0xFC 0x1E 0x88 ] */ call LAYER_1E88 +/* 0x1E46 [0xCA 0x59 ] */ notepan 89 +/* 0x1E48 [0xFC 0x1E 0x91 ] */ call LAYER_1E91 +/* 0x1E4B [0xCA 0x45 ] */ notepan 69 +/* 0x1E4D [0xFC 0x1E 0x96 ] */ call LAYER_1E96 +/* 0x1E50 [0xCA 0x4E ] */ notepan 78 +/* 0x1E52 [0xFC 0x1E 0x9F ] */ call LAYER_1E9F +/* 0x1E55 [0xF4 0xE5 ] */ rjump LAYER_1E3C + +.layer LAYER_1E57 +/* 0x1E57 [0xC0 0x44 ] */ ldelay 68 +/* 0x1E59 [0xCA 0x22 ] */ notepan 34 +/* 0x1E5B [0xFC 0x1E 0x9F ] */ call LAYER_1E9F +/* 0x1E5E [0xCA 0x2C ] */ notepan 44 +/* 0x1E60 [0xFC 0x1E 0x96 ] */ call LAYER_1E96 +/* 0x1E63 [0xCA 0x36 ] */ notepan 54 +/* 0x1E65 [0xFC 0x1E 0x91 ] */ call LAYER_1E91 +/* 0x1E68 [0xCA 0x2F ] */ notepan 47 +/* 0x1E6A [0xFC 0x1E 0x88 ] */ call LAYER_1E88 +/* 0x1E6D [0xCA 0x29 ] */ notepan 41 +/* 0x1E6F [0xFC 0x1E 0x7F ] */ call LAYER_1E7F +/* 0x1E72 [0xF4 0xE3 ] */ rjump LAYER_1E57 + +.layer LAYER_1E74 +/* 0x1E74 [0xFC 0x1E 0xA8 ] */ call LAYER_1EA8 +/* 0x1E77 [0xC0 0x80 0x64 ] */ lldelay 100 +/* 0x1E7A [0xFC 0x1E 0x7F ] */ call LAYER_1E7F +/* 0x1E7D [0xF4 0xD8 ] */ rjump LAYER_1E57 + +.layer LAYER_1E7F +/* 0x1E7F [0x67 0x81 0x72 0x62 ] */ notedv PITCH_C4, 370, 98 +/* 0x1E83 [0x63 0x81 0x0C 0x38 ] */ notedv PITCH_AF3, 268, 56 +/* 0x1E87 [0xFF ] */ end + +.layer LAYER_1E88 +/* 0x1E88 [0x64 0x81 0x13 0x41 ] */ notedv PITCH_A3, 275, 65 +/* 0x1E8C [0x65 0x81 0x40 0x5C ] */ notedv PITCH_BF3, 320, 92 +/* 0x1E90 [0xFF ] */ end + +.layer LAYER_1E91 +/* 0x1E91 [0x66 0x81 0x59 0x4C ] */ notedv PITCH_B3, 345, 76 +/* 0x1E95 [0xFF ] */ end + +.layer LAYER_1E96 +/* 0x1E96 [0x62 0x80 0xD7 0x62 ] */ notedv PITCH_G3, 215, 98 +/* 0x1E9A [0x69 0x81 0xCC 0x6A ] */ notedv PITCH_D4, 460, 106 +/* 0x1E9E [0xFF ] */ end + +.layer LAYER_1E9F +/* 0x1E9F [0x64 0x81 0x20 0x5C ] */ notedv PITCH_A3, 288, 92 +/* 0x1EA3 [0x65 0x81 0x3B 0x58 ] */ notedv PITCH_BF3, 315, 88 +/* 0x1EA7 [0xFF ] */ end + +.layer LAYER_1EA8 +/* 0x1EA8 [0xCD 0x14 ] */ stereo 1, 0, 1, 0, 0 +/* 0x1EAA [0xFF ] */ end + +.channel CHAN_1EAB +/* 0x1EAB [0xC1 0x49 ] */ instr SF0_INST_73 +/* 0x1EAD [0xED 0x0A ] */ gain 10 +/* 0x1EAF [0x88 0x1E 0xB3 ] */ ldlayer 0, LAYER_1EB3 +/* 0x1EB2 [0xFF ] */ end + +.layer LAYER_1EB3 +/* 0x1EB3 [0xC4 ] */ legato +LAYER_1EB4: +/* 0x1EB4 [0x65 0xFF 0xBC 0x64 ] */ notedv PITCH_BF3, 32700, 100 +/* 0x1EB8 [0xF4 0xFA ] */ rjump LAYER_1EB4 + +.channel CHAN_1EBA +/* 0x1EBA [0xDC 0x30 ] */ panweight 48 +/* 0x1EBC [0x88 0x1E 0xC3 ] */ ldlayer 0, LAYER_1EC3 +/* 0x1EBF [0x89 0x1E 0xD4 ] */ ldlayer 1, LAYER_1ED4 +/* 0x1EC2 [0xFF ] */ end + +.layer LAYER_1EC3 +/* 0x1EC3 [0xC6 0x38 ] */ instr SF0_INST_56 +/* 0x1EC5 [0xC4 ] */ legato +/* 0x1EC6 [0xC7 0x85 0x20 0xC8 ] */ portamento 0x85, PITCH_F3, 200 +LAYER_1ECA: +/* 0x1ECA [0x64 0x81 0xF4 0x69 ] */ notedv PITCH_A3, 500, 105 +/* 0x1ECE [0x60 0x81 0xF4 0x69 ] */ notedv PITCH_F3, 500, 105 +/* 0x1ED2 [0xF4 0xF6 ] */ rjump LAYER_1ECA + +.layer LAYER_1ED4 +/* 0x1ED4 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x1ED6 [0xCB 0x66 0x7C 0xDD ] */ env ENVELOPE_667C, 221 +LAYER_1EDA: +/* 0x1EDA [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x1EDE [0x54 0x81 0x90 0x41 ] */ notedv PITCH_F2, 400, 65 +/* 0x1EE2 [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x1EE6 [0x6C 0x82 0xBC 0x41 ] */ notedv PITCH_F4, 700, 65 +/* 0x1EEA [0xF4 0xEE ] */ rjump LAYER_1EDA + +.channel CHAN_1EEC +/* 0x1EEC [0x88 0x1E 0xF0 ] */ ldlayer 0, LAYER_1EF0 +/* 0x1EEF [0xFF ] */ end + +.layer LAYER_1EF0 +/* 0x1EF0 [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x1EF2 [0xCF 0xF0 ] */ releaserate 240 +/* 0x1EF4 [0xC4 ] */ legato +/* 0x1EF5 [0xC7 0x01 0x18 0x28 ] */ portamento 0x01, PITCH_A2, 40 +LAYER_1EF9: +/* 0x1EF9 [0x60 0xFF 0xBC 0x64 ] */ notedv PITCH_F3, 32700, 100 +/* 0x1EFD [0xF4 0xFA ] */ rjump LAYER_1EF9 + +.channel CHAN_1EFF +/* 0x1EFF [0x88 0x1F 0x03 ] */ ldlayer 0, LAYER_1F03 +/* 0x1F02 [0xFF ] */ end + +.layer LAYER_1F03 +/* 0x1F03 [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x1F05 [0xCB 0x66 0x7C 0xF0 ] */ env ENVELOPE_667C, 240 +/* 0x1F09 [0xC4 ] */ legato +/* 0x1F0A [0xC7 0x85 0x20 0xFF ] */ portamento 0x85, PITCH_F3, 255 +/* 0x1F0E [0x67 0x60 0x64 ] */ notedv PITCH_C4, 96, 100 +LAYER_1F11: +/* 0x1F11 [0x66 0x60 0x64 ] */ notedv PITCH_B3, 96, 100 +/* 0x1F14 [0xF4 0xFB ] */ rjump LAYER_1F11 + +.channel CHAN_1F16 +/* 0x1F16 [0x88 0x1F 0x1C ] */ ldlayer 0, LAYER_1F1C +/* 0x1F19 [0xFF ] */ end + +.layer LAYER_1F1A +/* 0x1F1A [0xC2 0xFC ] */ transpose -4 +.layer LAYER_1F1C +/* 0x1F1C [0xC6 0x41 ] */ instr SF0_INST_65 +/* 0x1F1E [0xCF 0xF1 ] */ releaserate 241 +/* 0x1F20 [0x6D 0x06 0x6E ] */ notedv PITCH_GF4, 6, 110 +/* 0x1F23 [0x5E 0x64 0x6E ] */ notedv PITCH_EF3, 100, 110 +/* 0x1F26 [0xFF ] */ end + +.channel CHAN_1F27 +/* 0x1F27 [0x88 0x1F 0x2B ] */ ldlayer 0, LAYER_1F2B +/* 0x1F2A [0xFF ] */ end + +.layer LAYER_1F2B +/* 0x1F2B [0xC6 0x4B ] */ instr SF0_INST_75 +/* 0x1F2D [0xCF 0xF0 ] */ releaserate 240 +/* 0x1F2F [0xC4 ] */ legato +/* 0x1F30 [0xC7 0x85 0x19 0xFF ] */ portamento 0x85, PITCH_BF2, 255 +/* 0x1F34 [0x5D 0x28 0x4B ] */ notedv PITCH_D3, 40, 75 +LAYER_1F37: +/* 0x1F37 [0x5F 0x81 0x41 0x4B ] */ notedv PITCH_E3, 321, 75 +/* 0x1F3B [0xF4 0xFA ] */ rjump LAYER_1F37 + +.channel CHAN_1F3D +/* 0x1F3D [0x88 0x1F 0x43 ] */ ldlayer 0, LAYER_1F43 +/* 0x1F40 [0xFF ] */ end + +.layer LAYER_1F41 +/* 0x1F41 [0xC2 0xFA ] */ transpose -6 +.layer LAYER_1F43 +/* 0x1F43 [0xC6 0x4C ] */ instr SF0_INST_76 +/* 0x1F45 [0xCF 0xF1 ] */ releaserate 241 +/* 0x1F47 [0x64 0x5E 0x5F ] */ notedv PITCH_A3, 94, 95 +/* 0x1F4A [0xFF ] */ end + +.channel CHAN_1F4B +/* 0x1F4B [0xC1 0x41 ] */ instr SF0_INST_65 +/* 0x1F4D [0xDA 0x66 0x60 ] */ env ENVELOPE_6660 +/* 0x1F50 [0x88 0x1F 0x57 ] */ ldlayer 0, LAYER_1F57 +/* 0x1F53 [0x89 0x1F 0x5F ] */ ldlayer 1, LAYER_1F5F +/* 0x1F56 [0xFF ] */ end + +.layer LAYER_1F57 +/* 0x1F57 [0xC7 0x81 0x2B 0xC8 ] */ portamento 0x81, PITCH_E4, 200 +/* 0x1F5B [0x5B 0x14 0x6E ] */ notedv PITCH_C3, 20, 110 +/* 0x1F5E [0xFF ] */ end + +.layer LAYER_1F5F +/* 0x1F5F [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x1F61 [0x58 0x14 0x64 ] */ notedv PITCH_A2, 20, 100 +/* 0x1F64 [0xFF ] */ end + +.channel CHAN_1F65 +/* 0x1F65 [0xED 0x0A ] */ gain 10 +/* 0x1F67 [0x88 0x1F 0x6E ] */ ldlayer 0, LAYER_1F6E +/* 0x1F6A [0x89 0x1F 0x7B ] */ ldlayer 1, LAYER_1F7B +/* 0x1F6D [0xFF ] */ end + +.layer LAYER_1F6E +/* 0x1F6E [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x1F70 [0xCB 0x66 0x10 0xFB ] */ env ENVELOPE_6610, 251 +/* 0x1F74 [0x73 0x0F 0x5E ] */ notedv PITCH_C5, 15, 94 +/* 0x1F77 [0x6A 0x60 0x63 ] */ notedv PITCH_EF4, 96, 99 +/* 0x1F7A [0xFF ] */ end + +.layer LAYER_1F7B +/* 0x1F7B [0xC6 0x3F ] */ instr SF0_INST_63 +/* 0x1F7D [0xCB 0x65 0xE8 0xB4 ] */ env ENVELOPE_65E8, 180 +/* 0x1F81 [0x6D 0x08 0x5C ] */ notedv PITCH_GF4, 8, 92 +/* 0x1F84 [0x6A 0x06 0x55 ] */ notedv PITCH_EF4, 6, 85 +/* 0x1F87 [0x65 0x05 0x5E ] */ notedv PITCH_BF3, 5, 94 +/* 0x1F8A [0x61 0x0A 0x59 ] */ notedv PITCH_GF3, 10, 89 +/* 0x1F8D [0x59 0x50 0x5F ] */ notedv PITCH_BF2, 80, 95 +/* 0x1F90 [0xFF ] */ end + +.channel CHAN_1F91 +/* 0x1F91 [0x88 0x1F 0x98 ] */ ldlayer 0, LAYER_1F98 +/* 0x1F94 [0x89 0x1F 0xA2 ] */ ldlayer 1, LAYER_1FA2 +/* 0x1F97 [0xFF ] */ end + +.layer LAYER_1F98 +/* 0x1F98 [0xC6 0x41 ] */ instr SF0_INST_65 +/* 0x1F9A [0x34 0x12 0x5F 0x7F ] */ notedvg PITCH_DF5, 18, 95, 127 +/* 0x1F9E [0x68 0x41 0x5F ] */ notedv PITCH_DF4, 65, 95 +/* 0x1FA1 [0xFF ] */ end + +.layer LAYER_1FA2 +/* 0x1FA2 [0xC6 0x3B ] */ instr SF0_INST_59 +/* 0x1FA4 [0x67 0x12 0x50 ] */ notedv PITCH_C4, 18, 80 +/* 0x1FA7 [0x5B 0x41 0x50 ] */ notedv PITCH_C3, 65, 80 +/* 0x1FAA [0xFF ] */ end + +.channel CHAN_1FAB +/* 0x1FAB [0xDC 0x30 ] */ panweight 48 +/* 0x1FAD [0x88 0x1F 0xB4 ] */ ldlayer 0, LAYER_1FB4 +/* 0x1FB0 [0x89 0x1F 0xC5 ] */ ldlayer 1, LAYER_1FC5 +/* 0x1FB3 [0xFF ] */ end + +.layer LAYER_1FB4 +/* 0x1FB4 [0xC6 0x38 ] */ instr SF0_INST_56 +/* 0x1FB6 [0xC4 ] */ legato +/* 0x1FB7 [0xC7 0x85 0x26 0xC8 ] */ portamento 0x85, PITCH_B3, 200 +LAYER_1FBB: +/* 0x1FBB [0x6A 0x81 0x9A 0x6E ] */ notedv PITCH_EF4, 410, 110 +/* 0x1FBF [0x66 0x81 0x7C 0x6E ] */ notedv PITCH_B3, 380, 110 +/* 0x1FC3 [0xF4 0xF6 ] */ rjump LAYER_1FBB + +.layer LAYER_1FC5 +/* 0x1FC5 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x1FC7 [0xCB 0x66 0x7C 0xDD ] */ env ENVELOPE_667C, 221 +LAYER_1FCB: +/* 0x1FCB [0xC7 0x81 0x20 0xFF ] */ portamento 0x81, PITCH_F3, 255 +/* 0x1FCF [0x5A 0x81 0x36 0x50 ] */ notedv PITCH_B2, 310, 80 +/* 0x1FD3 [0xC7 0x81 0x20 0xFF ] */ portamento 0x81, PITCH_F3, 255 +/* 0x1FD7 [0x72 0x82 0x26 0x50 ] */ notedv PITCH_B4, 550, 80 +/* 0x1FDB [0xF4 0xEE ] */ rjump LAYER_1FCB + +.channel CHAN_1FDD +/* 0x1FDD [0x88 0x1F 0xF1 ] */ ldlayer 0, LAYER_1FF1 +/* 0x1FE0 [0x89 0x1F 0xE4 ] */ ldlayer 1, LAYER_1FE4 +/* 0x1FE3 [0xFF ] */ end + +.layer LAYER_1FE4 +/* 0x1FE4 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x1FE6 [0xCB 0x66 0x4C 0xF0 ] */ env ENVELOPE_664C, 240 +/* 0x1FEA [0x78 0x03 0x46 ] */ notedv PITCH_F5, 3, 70 +/* 0x1FED [0x60 0x04 0x40 ] */ notedv PITCH_F3, 4, 64 +/* 0x1FF0 [0xFF ] */ end + +.layer LAYER_1FF1 +/* 0x1FF1 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x1FF3 [0xC2 0x30 ] */ transpose 48 +/* 0x1FF5 [0x11 0x03 0x64 0x7F ] */ notedvg PITCH_D2, 3, 100, 127 +/* 0x1FF9 [0x5F 0x30 0x64 ] */ notedv PITCH_E3, 48, 100 +/* 0x1FFC [0xFF ] */ end + +.channel CHAN_1FFD +/* 0x1FFD [0xC1 0x32 ] */ instr SF0_INST_50 +/* 0x1FFF [0x88 0x20 0x03 ] */ ldlayer 0, LAYER_2003 +/* 0x2002 [0xFF ] */ end + +.layer LAYER_2003 +/* 0x2003 [0xC4 ] */ legato +/* 0x2004 [0xC7 0x85 0x26 0x7F ] */ portamento 0x85, PITCH_B3, 127 +/* 0x2008 [0x69 0x50 0x6E ] */ notedv PITCH_D4, 80, 110 +/* 0x200B [0x62 0x73 0x6E ] */ notedv PITCH_G3, 115, 110 +/* 0x200E [0xFF ] */ end + +.channel CHAN_200F +/* 0x200F [0x88 0x20 0x13 ] */ ldlayer 0, LAYER_2013 +/* 0x2012 [0xFF ] */ end + +.layer LAYER_2013 +/* 0x2013 [0xC6 0x32 ] */ instr SF0_INST_50 +/* 0x2015 [0xC2 0x30 ] */ transpose 48 +/* 0x2017 [0xC4 ] */ legato +/* 0x2018 [0xC7 0x85 0x20 0xFF ] */ portamento 0x85, PITCH_F3, 255 +/* 0x201C [0x65 0x06 0x55 ] */ notedv PITCH_BF3, 6, 85 +/* 0x201F [0x5E 0x10 0x55 ] */ notedv PITCH_EF3, 16, 85 +/* 0x2022 [0x58 0x73 0x55 ] */ notedv PITCH_A2, 115, 85 +/* 0x2025 [0xFF ] */ end + +.channel CHAN_2026 +/* 0x2026 [0x88 0x20 0x65 ] */ ldlayer 0, LAYER_2065 +/* 0x2029 [0x89 0x20 0x3C ] */ ldlayer 1, LAYER_203C +/* 0x202C [0xD7 0xFF ] */ vibfreq 255 +/* 0x202E [0xE2 0x32 0x50 0x64 ] */ vibdepthgrad 50, 80, 100 +/* 0x2032 [0xCC 0xFF ] */ ldi 255 +/* 0x2034 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x2037 [0xE2 0x50 0x0A 0x64 ] */ vibdepthgrad 80, 10, 100 +/* 0x203B [0xFF ] */ end + +.layer LAYER_203C +/* 0x203C [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x203E [0xCB 0x66 0x94 0xE7 ] */ env ENVELOPE_6694, 231 +/* 0x2042 [0xC4 ] */ legato +/* 0x2043 [0xC7 0x85 0x03 0xFF ] */ portamento 0x85, PITCH_C1, 255 +/* 0x2047 [0x54 0x60 0x64 ] */ notedv PITCH_F2, 96, 100 +/* 0x204A [0x67 0x80 0x96 0x64 ] */ notedv PITCH_C4, 150, 100 +/* 0x204E [0xC5 ] */ nolegato +/* 0x204F [0xC4 ] */ legato +/* 0x2050 [0xC8 ] */ noportamento +/* 0x2051 [0xCB 0x66 0xEC 0xE7 ] */ env ENVELOPE_66EC, 231 +/* 0x2055 [0xC7 0x81 0x0F 0xFF ] */ portamento 0x81, PITCH_C2, 255 +/* 0x2059 [0x67 0x80 0xC8 0x64 ] */ notedv PITCH_C4, 200, 100 +/* 0x205D [0xFF ] */ end + +/* 0x205E [0xC2 0xE2 ] */ transpose -30 +/* 0x2060 [0xC6 0x34 ] */ instr SF0_INST_52 +/* 0x2062 [0xFB 0x20 0x69 ] */ jump LAYER_2069 + +.layer LAYER_2065 +/* 0x2065 [0xC2 0x0C ] */ transpose 12 +/* 0x2067 [0xC6 0x44 ] */ instr SF0_INST_68 +LAYER_2069: +/* 0x2069 [0xCB 0x66 0x88 0xFB ] */ env ENVELOPE_6688, 251 +/* 0x206D [0xC4 ] */ legato +/* 0x206E [0xC7 0x85 0x0F 0xFF ] */ portamento 0x85, PITCH_C2, 255 +/* 0x2072 [0x60 0x60 0x4A ] */ notedv PITCH_F3, 96, 74 +/* 0x2075 [0x73 0x80 0xC8 0x4A ] */ notedv PITCH_C5, 200, 74 +/* 0x2079 [0x7C 0x80 0x96 0x4A ] */ notedv PITCH_A5, 150, 74 +/* 0x207D [0xFF ] */ end + +.channel CHAN_207E +/* 0x207E [0x88 0x20 0xA3 ] */ ldlayer 0, LAYER_20A3 +/* 0x2081 [0x89 0x20 0x8C ] */ ldlayer 1, LAYER_208C +/* 0x2084 [0x8A 0x20 0x9C ] */ ldlayer 2, LAYER_209C +/* 0x2087 [0xD7 0xFF ] */ vibfreq 255 +/* 0x2089 [0xD8 0x32 ] */ vibdepth 50 +/* 0x208B [0xFF ] */ end + +.layer LAYER_208C +/* 0x208C [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x208E [0xCB 0x66 0x7C 0xD3 ] */ env ENVELOPE_667C, 211 +/* 0x2092 [0xC4 ] */ legato +/* 0x2093 [0xC7 0x85 0x03 0xFF ] */ portamento 0x85, PITCH_C1, 255 +LAYER_2097: +/* 0x2097 [0x54 0x60 0x64 ] */ notedv PITCH_F2, 96, 100 +/* 0x209A [0xF4 0xFB ] */ rjump LAYER_2097 + +.layer LAYER_209C +/* 0x209C [0xC2 0xEE ] */ transpose -18 +/* 0x209E [0xC6 0x34 ] */ instr SF0_INST_52 +/* 0x20A0 [0xFB 0x20 0xA7 ] */ jump LAYER_20A7 + +.layer LAYER_20A3 +/* 0x20A3 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x20A5 [0xC2 0x0C ] */ transpose 12 +LAYER_20A7: +/* 0x20A7 [0xCB 0x66 0x7C 0xD3 ] */ env ENVELOPE_667C, 211 +/* 0x20AB [0xC4 ] */ legato +/* 0x20AC [0xC7 0x85 0x0F 0xFF ] */ portamento 0x85, PITCH_C2, 255 +LAYER_20B0: +/* 0x20B0 [0x60 0x60 0x4A ] */ notedv PITCH_F3, 96, 74 +/* 0x20B3 [0xF4 0xFB ] */ rjump LAYER_20B0 + +.channel CHAN_20B5 +/* 0x20B5 [0x88 0x20 0xBC ] */ ldlayer 0, LAYER_20BC +/* 0x20B8 [0x89 0x20 0xC7 ] */ ldlayer 1, LAYER_20C7 +/* 0x20BB [0xFF ] */ end + +.layer LAYER_20BC +/* 0x20BC [0xC6 0x33 ] */ instr SF0_INST_51 +/* 0x20BE [0xC2 0x30 ] */ transpose 48 +LAYER_20C0: +/* 0x20C0 [0xC4 ] */ legato +LAYER_20C1: +/* 0x20C1 [0x6D 0xFF 0xBC 0x40 ] */ notedv PITCH_GF4, 32700, 64 +/* 0x20C5 [0xF4 0xFA ] */ rjump LAYER_20C1 + +.layer LAYER_20C7 +/* 0x20C7 [0xC6 0x33 ] */ instr SF0_INST_51 +/* 0x20C9 [0xF4 0xF5 ] */ rjump LAYER_20C0 + +.channel CHAN_20CB +/* 0x20CB [0xC1 0x30 ] */ instr SF0_INST_48 +/* 0x20CD [0xD9 0xF5 ] */ releaserate 245 +/* 0x20CF [0x88 0x20 0xD3 ] */ ldlayer 0, LAYER_20D3 +/* 0x20D2 [0xFF ] */ end + +.layer LAYER_20D3 +/* 0x20D3 [0x67 0x09 0x6E ] */ notedv PITCH_C4, 9, 110 +/* 0x20D6 [0xFF ] */ end + +.channel CHAN_20D7 +/* 0x20D7 [0xC1 0x30 ] */ instr SF0_INST_48 +/* 0x20D9 [0x88 0x20 0xDD ] */ ldlayer 0, LAYER_20DD +/* 0x20DC [0xFF ] */ end + +.layer LAYER_20DD +/* 0x20DD [0x6B 0x18 0x6E ] */ notedv PITCH_E4, 24, 110 +/* 0x20E0 [0xFF ] */ end + +.channel CHAN_20E1 +/* 0x20E1 [0xC1 0x32 ] */ instr SF0_INST_50 +/* 0x20E3 [0x88 0x20 0xE7 ] */ ldlayer 0, LAYER_20E7 +/* 0x20E6 [0xFF ] */ end + +.layer LAYER_20E7 +/* 0x20E7 [0x6B 0x80 0x91 0x6E ] */ notedv PITCH_E4, 145, 110 +/* 0x20EB [0xFF ] */ end + +.channel CHAN_20EC +/* 0x20EC [0x88 0x20 0xF0 ] */ ldlayer 0, LAYER_20F0 +/* 0x20EF [0xFF ] */ end + +.layer LAYER_20F0 +/* 0x20F0 [0xC2 0x34 ] */ transpose 52 +/* 0x20F2 [0xFB 0x1A 0xB9 ] */ jump LAYER_1AB9 + +.channel CHAN_20F5 +/* 0x20F5 [0xED 0x0F ] */ gain 15 +/* 0x20F7 [0x88 0x20 0xFE ] */ ldlayer 0, LAYER_20FE +/* 0x20FA [0x89 0x21 0x0B ] */ ldlayer 1, LAYER_210B +/* 0x20FD [0xFF ] */ end + +.layer LAYER_20FE +/* 0x20FE [0xC6 0x40 ] */ instr SF0_INST_64 +/* 0x2100 [0xCB 0x67 0xF4 0xDD ] */ env ENVELOPE_67F4, 221 +/* 0x2104 [0xC2 0x18 ] */ transpose 24 +/* 0x2106 [0x67 0x80 0xF8 0x4B ] */ notedv PITCH_C4, 248, 75 +/* 0x210A [0xFF ] */ end + +.layer LAYER_210B +/* 0x210B [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x210D [0xCB 0x67 0xF4 0xDD ] */ env ENVELOPE_67F4, 221 +/* 0x2111 [0xC2 0x24 ] */ transpose 36 +/* 0x2113 [0x67 0x80 0xF8 0x64 ] */ notedv PITCH_C4, 248, 100 +/* 0x2117 [0xFF ] */ end + +.channel CHAN_2118 +/* 0x2118 [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x211A [0x88 0x21 0x30 ] */ ldlayer 0, LAYER_2130 +/* 0x211D [0x89 0x21 0x24 ] */ ldlayer 1, LAYER_2124 +/* 0x2120 [0x8A 0x21 0x47 ] */ ldlayer 2, LAYER_2147 +/* 0x2123 [0xFF ] */ end + +.layer LAYER_2124 +/* 0x2124 [0xC2 0x1B ] */ transpose 27 +/* 0x2126 [0xF4 0x0A ] */ rjump LAYER_2132 + +/* 0x2128 [0xC2 0x21 ] */ transpose 33 +/* 0x212A [0xCB 0x65 0xFC 0xF0 ] */ env ENVELOPE_65FC, 240 +/* 0x212E [0xF4 0x02 ] */ rjump LAYER_2132 + +.layer LAYER_2130 +/* 0x2130 [0xC2 0x18 ] */ transpose 24 +LAYER_2132: +/* 0x2132 [0xC4 ] */ legato +/* 0x2133 [0xC7 0x81 0x28 0xFF ] */ portamento 0x81, PITCH_DF4, 255 +LAYER_2137: +/* 0x2137 [0x69 0x80 0x30 0x50 ] */ noteldv PITCH_D4, 48, 80 +/* 0x213B [0xF4 0xFA ] */ rjump LAYER_2137 + +/* 0x213D [0xC2 0x20 ] */ transpose 32 +/* 0x213F [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x2141 [0xCB 0x65 0xFC 0xF0 ] */ env ENVELOPE_65FC, 240 +/* 0x2145 [0xF4 0x08 ] */ rjump LAYER_214F + +.layer LAYER_2147 +/* 0x2147 [0xC2 0x30 ] */ transpose 48 +LAYER_2149: +/* 0x2149 [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x214B [0xCB 0x66 0xFC 0xF0 ] */ env ENVELOPE_66FC, 240 +LAYER_214F: +/* 0x214F [0xC4 ] */ legato +LAYER_2150: +/* 0x2150 [0x73 0xFD 0x00 0x32 ] */ notedv PITCH_C5, 32000, 50 +/* 0x2154 [0xF4 0xFA ] */ rjump LAYER_2150 + +.channel CHAN_2156 +/* 0x2156 [0x88 0x21 0x5D ] */ ldlayer 0, LAYER_215D +/* 0x2159 [0x89 0x21 0x6D ] */ ldlayer 1, LAYER_216D +/* 0x215C [0xFF ] */ end + +.layer LAYER_215D +/* 0x215D [0xC0 0x06 ] */ ldelay 6 +/* 0x215F [0xC4 ] */ legato +/* 0x2160 [0xC6 0x07 ] */ instr SF0_INST_7 +/* 0x2162 [0xC7 0x85 0x20 0xFF ] */ portamento 0x85, PITCH_F3, 255 +/* 0x2166 [0x64 0x18 0x50 ] */ notedv PITCH_A3, 24, 80 +/* 0x2169 [0x56 0x32 0x50 ] */ notedv PITCH_G2, 50, 80 +/* 0x216C [0xFF ] */ end + +.layer LAYER_216D +/* 0x216D [0xC6 0x28 ] */ instr SF0_INST_40 +/* 0x216F [0x1F 0x0A 0x5D 0x7F ] */ notedvg PITCH_E3, 10, 93, 127 +/* 0x2173 [0x55 0x1F 0x5A ] */ notedv PITCH_GF2, 31, 90 +/* 0x2176 [0xFF ] */ end + +.channel CHAN_2177 +/* 0x2177 [0xDC 0x60 ] */ panweight 96 +/* 0x2179 [0x88 0x21 0x85 ] */ ldlayer 0, LAYER_2185 +/* 0x217C [0x89 0x21 0x90 ] */ ldlayer 1, LAYER_2190 +/* 0x217F [0x8A 0x21 0x83 ] */ ldlayer 2, LAYER_2183 +/* 0x2182 [0xFF ] */ end + +.layer LAYER_2183 +/* 0x2183 [0xC2 0xFA ] */ transpose -6 +.layer LAYER_2185 +/* 0x2185 [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x2187 [0xCF 0xDD ] */ releaserate 221 +/* 0x2189 [0xC4 ] */ legato +LAYER_218A: +/* 0x218A [0x6C 0xFD 0x00 0x5A ] */ notedv PITCH_F4, 32000, 90 +/* 0x218E [0xF4 0xFA ] */ rjump LAYER_218A + +.layer LAYER_2190 +/* 0x2190 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x2192 [0xCB 0x66 0x74 0xDD ] */ env ENVELOPE_6674, 221 +LAYER_2196: +/* 0x2196 [0xCA 0x40 ] */ notepan 64 +/* 0x2198 [0x72 0x50 0x55 ] */ notedv PITCH_B4, 80, 85 +/* 0x219B [0xCA 0x2D ] */ notepan 45 +/* 0x219D [0x6E 0x50 0x55 ] */ notedv PITCH_G4, 80, 85 +/* 0x21A0 [0xCA 0x61 ] */ notepan 97 +/* 0x21A2 [0x6C 0x40 0x55 ] */ notedv PITCH_F4, 64, 85 +/* 0x21A5 [0xCA 0x4A ] */ notepan 74 +/* 0x21A7 [0x70 0x31 0x55 ] */ notedv PITCH_A4, 49, 85 +/* 0x21AA [0xCA 0x52 ] */ notepan 82 +/* 0x21AC [0x75 0x3A 0x55 ] */ notedv PITCH_D5, 58, 85 +/* 0x21AF [0xCA 0x25 ] */ notepan 37 +/* 0x21B1 [0x70 0x25 0x55 ] */ notedv PITCH_A4, 37, 85 +/* 0x21B4 [0xCA 0x36 ] */ notepan 54 +/* 0x21B6 [0x6C 0x3D 0x55 ] */ notedv PITCH_F4, 61, 85 +/* 0x21B9 [0xCA 0x1D ] */ notepan 29 +/* 0x21BB [0x73 0x20 0x55 ] */ notedv PITCH_C5, 32, 85 +/* 0x21BE [0xF4 0xD6 ] */ rjump LAYER_2196 + +.channel CHAN_21C0 +/* 0x21C0 [0x88 0x21 0xC7 ] */ ldlayer 0, LAYER_21C7 +/* 0x21C3 [0x89 0x21 0xCD ] */ ldlayer 1, LAYER_21CD +/* 0x21C6 [0xFF ] */ end + +.layer LAYER_21C7 +/* 0x21C7 [0xC6 0x22 ] */ instr SF0_INST_34 +/* 0x21C9 [0x6B 0x18 0x50 ] */ notedv PITCH_E4, 24, 80 +/* 0x21CC [0xFF ] */ end + +.layer LAYER_21CD +/* 0x21CD [0xC6 0x1D ] */ instr SF0_INST_29 +/* 0x21CF [0xC7 0x81 0x1C 0xFF ] */ portamento 0x81, PITCH_DF3, 255 +/* 0x21D3 [0x5E 0x18 0x5F ] */ notedv PITCH_EF3, 24, 95 +/* 0x21D6 [0xFF ] */ end + +.channel CHAN_21D7 +/* 0x21D7 [0x88 0x21 0xED ] */ ldlayer 0, LAYER_21ED +/* 0x21DA [0x89 0x21 0xDE ] */ ldlayer 1, LAYER_21DE +/* 0x21DD [0xFF ] */ end + +.layer LAYER_21DE +/* 0x21DE [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x21E0 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x21E4 [0x57 0x08 0x46 ] */ notedv PITCH_AF2, 8, 70 +/* 0x21E7 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x21E9 [0x5F 0x08 0x5A ] */ notedv PITCH_E3, 8, 90 +/* 0x21EC [0xFF ] */ end + +.layer LAYER_21ED +/* 0x21ED [0xC6 0x22 ] */ instr SF0_INST_34 +/* 0x21EF [0x70 0x06 0x50 ] */ notedv PITCH_A4, 6, 80 +/* 0x21F2 [0xC6 0x1D ] */ instr SF0_INST_29 +/* 0x21F4 [0xC7 0x81 0x26 0xFF ] */ portamento 0x81, PITCH_B3, 255 +/* 0x21F8 [0x60 0x0E 0x5F ] */ notedv PITCH_F3, 14, 95 +/* 0x21FB [0xFF ] */ end + +.channel CHAN_21FC +/* 0x21FC [0x88 0x22 0x00 ] */ ldlayer 0, LAYER_2200 +/* 0x21FF [0xFF ] */ end + +.layer LAYER_2200 +/* 0x2200 [0xC6 0x4B ] */ instr SF0_INST_75 +/* 0x2202 [0xCF 0xF0 ] */ releaserate 240 +LAYER_2204: +/* 0x2204 [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x2208 [0x58 0x40 0x48 ] */ notedv PITCH_A2, 64, 72 +/* 0x220B [0xF4 0xF7 ] */ rjump LAYER_2204 + +.channel CHAN_220D +/* 0x220D [0xC1 0x22 ] */ instr SF0_INST_34 +/* 0x220F [0x88 0x22 0x1A ] */ ldlayer 0, LAYER_221A +/* 0x2212 [0x89 0x22 0x16 ] */ ldlayer 1, LAYER_2216 +/* 0x2215 [0xFF ] */ end + +.layer LAYER_2216 +/* 0x2216 [0xC6 0x39 ] */ instr SF0_INST_57 +/* 0x2218 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_221A +/* 0x221A [0xC4 ] */ legato +/* 0x221B [0xC7 0x01 0x28 0x74 ] */ portamento 0x01, PITCH_DF4, 116 +LAYER_221F: +/* 0x221F [0x6E 0xFF 0xBC 0x4C ] */ notedv PITCH_G4, 32700, 76 +/* 0x2223 [0xF4 0xFA ] */ rjump LAYER_221F + +.channel CHAN_2225 +/* 0x2225 [0x88 0x22 0x32 ] */ ldlayer 0, LAYER_2232 +/* 0x2228 [0x89 0x22 0x2C ] */ ldlayer 1, LAYER_222C +/* 0x222B [0xFF ] */ end + +.layer LAYER_222C +/* 0x222C [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x222E [0x62 0x14 0x64 ] */ notedv PITCH_G3, 20, 100 +/* 0x2231 [0xFF ] */ end + +.layer LAYER_2232 +/* 0x2232 [0xC6 0x07 ] */ instr SF0_INST_7 +/* 0x2234 [0x1F 0x06 0x5A 0x7F ] */ notedvg PITCH_E3, 6, 90, 127 +/* 0x2238 [0x25 0x06 0x5A 0x7F ] */ notedvg PITCH_BF3, 6, 90, 127 +/* 0x223C [0x6B 0x2A 0x5A ] */ notedv PITCH_E4, 42, 90 +/* 0x223F [0xFF ] */ end + +.channel CHAN_2240 +/* 0x2240 [0xC1 0x57 ] */ instr SF0_INST_87 +/* 0x2242 [0xDA 0x66 0x24 ] */ env ENVELOPE_6624 +/* 0x2245 [0xCC 0x20 ] */ ldi 32 +/* 0x2247 [0x71 ] */ stio IO_PORT_1 +/* 0x2248 [0x88 0x22 0x53 ] */ ldlayer 0, LAYER_2253 +/* 0x224B [0x89 0x22 0x4F ] */ ldlayer 1, LAYER_224F +/* 0x224E [0xFF ] */ end + +.layer LAYER_224F +/* 0x224F [0xC2 0x3C ] */ transpose 60 +/* 0x2251 [0xF4 0x04 ] */ rjump LAYER_2257 + +.layer LAYER_2253 +/* 0x2253 [0xC2 0x30 ] */ transpose 48 +/* 0x2255 [0xC0 0x05 ] */ ldelay 5 +LAYER_2257: +/* 0x2257 [0x64 0x09 0x50 ] */ notedv PITCH_A3, 9, 80 +/* 0x225A [0x61 0x53 0x50 ] */ notedv PITCH_GF3, 83, 80 +/* 0x225D [0xC0 0x64 ] */ ldelay 100 +/* 0x225F [0xF4 0xF6 ] */ rjump LAYER_2257 + +.channel CHAN_2261 +/* 0x2261 [0xCC 0x60 ] */ ldi 96 +/* 0x2263 [0xC7 0x00 0x22 0x88 ] */ stseq 0, CHAN_2287 + STSEQ_STSEQ_IMM +CHAN_2267: +/* 0x2267 [0xC1 0x4E ] */ instr SF0_INST_78 +/* 0x2269 [0xDA 0x66 0xEC ] */ env ENVELOPE_66EC +/* 0x226C [0xD9 0xE7 ] */ releaserate 231 +/* 0x226E [0xCC 0x04 ] */ ldi 4 +/* 0x2270 [0x76 ] */ stio IO_PORT_6 +/* 0x2271 [0x88 0x22 0x98 ] */ ldlayer 0, LAYER_2298 +CHAN_2274: +/* 0x2274 [0xB8 0x1F ] */ rand 31 +/* 0x2276 [0xC7 0x0E 0x22 0x99 ] */ stseq 14, LAYER_2298 + STSEQ_NOTEDV_DELAY_HI +/* 0x227A [0xC7 0x0E 0x22 0x92 ] */ stseq 14, CHAN_2291 + STSEQ_LDI_IMM +/* 0x227E [0xC7 0x2D 0x22 0x9A ] */ stseq 45, LAYER_2298 + STSEQ_NOTEDV_VELOCITY_2 +/* 0x2282 [0xB8 0x08 ] */ rand 8 +/* 0x2284 [0x56 ] */ subio IO_PORT_6 +/* 0x2285 [0xC9 0x07 ] */ and 7 +CHAN_2287: +/* 0x2287 [0xC7 0x60 0x22 0x98 ] */ stseq (NOTEDV_OPCODE | PITCH_F3), LAYER_2298 + STSEQ_NOTEDV_OPCODE_PITCH +/* 0x228B [0x66 ] */ ldio IO_PORT_6 +/* 0x228C [0xC8 0xFC ] */ sub 252 +/* 0x228E [0xC9 0x04 ] */ and 4 +/* 0x2290 [0x76 ] */ stio IO_PORT_6 +CHAN_2291: +/* 0x2291 [0xCC 0x01 ] */ ldi 1 +/* 0x2293 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x2296 [0xF4 0xDC ] */ rjump CHAN_2274 + +.layer LAYER_2298 +/* 0x2298 [0x67 0x47 0x50 ] */ notedv PITCH_C4, 71, 80 +/* 0x229B [0xF4 0xFB ] */ rjump LAYER_2298 + +.channel CHAN_229D +/* 0x229D [0x88 0x1F 0x43 ] */ ldlayer 0, LAYER_1F43 +/* 0x22A0 [0x89 0x1F 0x1C ] */ ldlayer 1, LAYER_1F1C +/* 0x22A3 [0xFF ] */ end + +.channel CHAN_22A4 +/* 0x22A4 [0xED 0x12 ] */ gain 18 +/* 0x22A6 [0x88 0x22 0xAA ] */ ldlayer 0, LAYER_22AA +/* 0x22A9 [0xFF ] */ end + +.layer LAYER_22AA +/* 0x22AA [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x22AC [0xCB 0x66 0x24 0xF6 ] */ env ENVELOPE_6624, 246 +/* 0x22B0 [0x2A 0x09 0x69 0xC0 ] */ notedvg PITCH_EF4, 9, 105, 192 +/* 0x22B4 [0xCB 0x66 0x10 0xDC ] */ env ENVELOPE_6610, 220 +/* 0x22B8 [0x5A 0x00 0x69 ] */ notedv PITCH_B2, 0, 105 +/* 0x22BB [0xFF ] */ end + +.channel CHAN_22BC +/* 0x22BC [0xC1 0x34 ] */ instr SF0_INST_52 +/* 0x22BE [0xDA 0x66 0x74 ] */ env ENVELOPE_6674 +/* 0x22C1 [0x88 0x22 0xCB ] */ ldlayer 0, LAYER_22CB +/* 0x22C4 [0xD8 0xFF ] */ vibdepth 255 +/* 0x22C6 [0xE1 0x04 0x40 0x64 ] */ vibfreqgrad 4, 64, 100 +/* 0x22CA [0xFF ] */ end + +.layer LAYER_22CB +/* 0x22CB [0x51 0x81 0xC2 0x50 ] */ notedv PITCH_D2, 450, 80 +/* 0x22CF [0xFF ] */ end + +.channel CHAN_22D0 +/* 0x22D0 [0xC1 0x34 ] */ instr SF0_INST_52 +/* 0x22D2 [0xDA 0x66 0x74 ] */ env ENVELOPE_6674 +/* 0x22D5 [0x88 0x22 0xDF ] */ ldlayer 0, LAYER_22DF +/* 0x22D8 [0xD8 0xFF ] */ vibdepth 255 +/* 0x22DA [0xE1 0x02 0x07 0x19 ] */ vibfreqgrad 2, 7, 25 +/* 0x22DE [0xFF ] */ end + +.layer LAYER_22DF +/* 0x22DF [0xC4 ] */ legato +LAYER_22E0: +/* 0x22E0 [0x4F 0xFF 0xBC 0x50 ] */ notedv PITCH_C2, 32700, 80 +/* 0x22E4 [0xF4 0xFA ] */ rjump LAYER_22E0 + +.channel CHAN_22E6 +/* 0x22E6 [0x88 0x22 0xEA ] */ ldlayer 0, LAYER_22EA +/* 0x22E9 [0xFF ] */ end + +.layer LAYER_22EA +/* 0x22EA [0xC6 0x2D ] */ instr SF0_INST_45 +/* 0x22EC [0x5B 0x13 0x69 ] */ notedv PITCH_C3, 19, 105 +/* 0x22EF [0xC6 0x42 ] */ instr SF0_INST_66 +/* 0x22F1 [0x4E 0x49 0x67 ] */ notedv PITCH_B1, 73, 103 +/* 0x22F4 [0xFF ] */ end + +.channel CHAN_22F5 +/* 0x22F5 [0xC1 0x3F ] */ instr SF0_INST_63 +/* 0x22F7 [0x88 0x22 0xFB ] */ ldlayer 0, LAYER_22FB +/* 0x22FA [0xFF ] */ end + +.layer LAYER_22FB +/* 0x22FB [0x50 0x08 0x64 ] */ notedv PITCH_DF2, 8, 100 +/* 0x22FE [0x5D 0x18 0x64 ] */ notedv PITCH_D3, 24, 100 +/* 0x2301 [0xFF ] */ end + +.channel CHAN_2302 +/* 0x2302 [0x88 0x23 0x0B ] */ ldlayer 0, LAYER_230B +/* 0x2305 [0x89 0x23 0x09 ] */ ldlayer 1, LAYER_2309 +/* 0x2308 [0xFF ] */ end + +.layer LAYER_2309 +/* 0x2309 [0xC2 0x05 ] */ transpose 5 +.layer LAYER_230B +/* 0x230B [0xC4 ] */ legato +/* 0x230C [0xC6 0x3C ] */ instr SF0_INST_60 +/* 0x230E [0xCB 0x66 0x74 0xC8 ] */ env ENVELOPE_6674, 200 +/* 0x2312 [0xC7 0x01 0x38 0x7F ] */ portamento 0x01, PITCH_F5, 127 +LAYER_2316: +/* 0x2316 [0x7E 0xFF 0xBC 0x55 ] */ notedv PITCH_B5, 32700, 85 +/* 0x231A [0xF4 0xFA ] */ rjump LAYER_2316 + +.channel CHAN_231C +/* 0x231C [0x88 0x23 0x27 ] */ ldlayer 0, LAYER_2327 +/* 0x231F [0x89 0x23 0x25 ] */ ldlayer 1, LAYER_2325 +/* 0x2322 [0xED 0x18 ] */ gain 24 +/* 0x2324 [0xFF ] */ end + +.layer LAYER_2325 +/* 0x2325 [0xC2 0x04 ] */ transpose 4 +.layer LAYER_2327 +/* 0x2327 [0xC6 0x42 ] */ instr SF0_INST_66 +/* 0x2329 [0xC7 0x84 0x13 0x7F ] */ portamento 0x84, PITCH_E2, 127 +LAYER_232D: +/* 0x232D [0x45 0x09 0x6E ] */ notedv PITCH_D1, 9, 110 +/* 0x2330 [0xF4 0xFB ] */ rjump LAYER_232D + +.channel CHAN_2332 +/* 0x2332 [0xC1 0x4B ] */ instr SF0_INST_75 +/* 0x2334 [0x88 0x23 0x38 ] */ ldlayer 0, LAYER_2338 +/* 0x2337 [0xFF ] */ end + +.layer LAYER_2338 +/* 0x2338 [0xC7 0x81 0x20 0xAF ] */ portamento 0x81, PITCH_F3, 175 +/* 0x233C [0x66 0x30 0x50 ] */ notedv PITCH_B3, 48, 80 +/* 0x233F [0xFF ] */ end + +.channel CHAN_2340 +/* 0x2340 [0xC1 0x4B ] */ instr SF0_INST_75 +/* 0x2342 [0x88 0x23 0x46 ] */ ldlayer 0, LAYER_2346 +/* 0x2345 [0xFF ] */ end + +.layer LAYER_2346 +/* 0x2346 [0xC7 0x81 0x26 0xAF ] */ portamento 0x81, PITCH_B3, 175 +/* 0x234A [0x60 0x30 0x50 ] */ notedv PITCH_F3, 48, 80 +/* 0x234D [0xFF ] */ end + +.channel CHAN_234E +/* 0x234E [0xED 0x0A ] */ gain 10 +/* 0x2350 [0x88 0x23 0x57 ] */ ldlayer 0, LAYER_2357 +/* 0x2353 [0x89 0x23 0x66 ] */ ldlayer 1, LAYER_2366 +/* 0x2356 [0xFF ] */ end + +.layer LAYER_2357 +/* 0x2357 [0xC6 0x49 ] */ instr SF0_INST_73 +/* 0x2359 [0xCF 0xDD ] */ releaserate 221 +/* 0x235B [0xC4 ] */ legato +/* 0x235C [0xC7 0x81 0x34 0xFF ] */ portamento 0x81, PITCH_DF5, 255 +LAYER_2360: +/* 0x2360 [0x6C 0x80 0xC8 0x6E ] */ notedv PITCH_F4, 200, 110 +/* 0x2364 [0xF4 0xFA ] */ rjump LAYER_2360 + +.layer LAYER_2366 +/* 0x2366 [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x2368 [0xCF 0xDD ] */ releaserate 221 +/* 0x236A [0xC4 ] */ legato +/* 0x236B [0xC7 0x81 0x10 0xFF ] */ portamento 0x81, PITCH_DF2, 255 +LAYER_236F: +/* 0x236F [0x54 0x7F 0x48 ] */ notedv PITCH_F2, 127, 72 +/* 0x2372 [0xF4 0xFB ] */ rjump LAYER_236F + +.channel CHAN_2374 +/* 0x2374 [0x88 0x23 0x7B ] */ ldlayer 0, LAYER_237B +/* 0x2377 [0x89 0x21 0x85 ] */ ldlayer 1, LAYER_2185 +/* 0x237A [0xFF ] */ end + +.layer LAYER_237B +/* 0x237B [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x237D [0xCB 0x66 0x60 0xF7 ] */ env ENVELOPE_6660, 247 +LAYER_2381: +/* 0x2381 [0x78 0x03 0x5F ] */ notedv PITCH_F5, 3, 95 +/* 0x2384 [0x6C 0x05 0x5F ] */ notedv PITCH_F4, 5, 95 +/* 0x2387 [0xF4 0xF8 ] */ rjump LAYER_2381 + +.channel CHAN_2389 +/* 0x2389 [0xDC 0x00 ] */ panweight 0 +/* 0x238B [0x88 0x23 0x98 ] */ ldlayer 0, LAYER_2398 +/* 0x238E [0x89 0x23 0x92 ] */ ldlayer 1, LAYER_2392 +/* 0x2391 [0xFF ] */ end + +.layer LAYER_2392 +/* 0x2392 [0xC2 0x01 ] */ transpose 1 +/* 0x2394 [0xCA 0x00 ] */ notepan 0 +/* 0x2396 [0xF4 0x02 ] */ rjump LAYER_239A + +.layer LAYER_2398 +/* 0x2398 [0xCA 0x7F ] */ notepan 127 +LAYER_239A: +/* 0x239A [0xC6 0x4F ] */ instr SF0_INST_79 +/* 0x239C [0xCB 0x66 0xF4 0xE1 ] */ env ENVELOPE_66F4, 225 +LAYER_23A0: +/* 0x23A0 [0x67 0xFD 0x00 0x40 ] */ notedv PITCH_C4, 32000, 64 +/* 0x23A4 [0xF4 0xFA ] */ rjump LAYER_23A0 + +.channel CHAN_23A6 +/* 0x23A6 [0x88 0x23 0xCB ] */ ldlayer 0, LAYER_23CB +/* 0x23A9 [0x89 0x23 0xB1 ] */ ldlayer 1, LAYER_23B1 +/* 0x23AC [0xFF ] */ end + +.layer LAYER_23AD +/* 0x23AD [0xC2 0x12 ] */ transpose 18 +/* 0x23AF [0xF4 0x02 ] */ rjump LAYER_23B3 + +.layer LAYER_23B1 +/* 0x23B1 [0xC2 0x0B ] */ transpose 11 +LAYER_23B3: +/* 0x23B3 [0xC6 0x48 ] */ instr SF0_INST_72 +/* 0x23B5 [0xF4 0x06 ] */ rjump LAYER_23BD + +.layer LAYER_23B7 +/* 0x23B7 [0xC6 0x48 ] */ instr SF0_INST_72 +/* 0x23B9 [0xCB 0x68 0x24 0xE1 ] */ env ENVELOPE_6824, 225 +LAYER_23BD: +/* 0x23BD [0xCF 0xE1 ] */ releaserate 225 +LAYER_23BF: +/* 0x23BF [0x4F 0xFD 0x00 0x46 ] */ notedv PITCH_C2, 32000, 70 +/* 0x23C3 [0xF4 0xFA ] */ rjump LAYER_23BF + +.layer LAYER_23C5 +/* 0x23C5 [0xC2 0x06 ] */ transpose 6 +/* 0x23C7 [0xF4 0x02 ] */ rjump LAYER_23CB + +.layer LAYER_23C9 +/* 0x23C9 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_23CB +/* 0x23CB [0xC6 0x0D ] */ instr SF0_INST_13 +/* 0x23CD [0xCF 0xE1 ] */ releaserate 225 +LAYER_23CF: +/* 0x23CF [0x60 0xFD 0x00 0x4A ] */ notedv PITCH_F3, 32000, 74 +/* 0x23D3 [0xF4 0xFA ] */ rjump LAYER_23CF + +.channel CHAN_23D5 +/* 0x23D5 [0x88 0x23 0xD9 ] */ ldlayer 0, LAYER_23D9 +/* 0x23D8 [0xFF ] */ end + +.layer LAYER_23D9 +/* 0x23D9 [0xC6 0x45 ] */ instr SF0_INST_69 +/* 0x23DB [0xCB 0x66 0xB8 0xFB ] */ env ENVELOPE_66B8, 251 +/* 0x23DF [0xC4 ] */ legato +/* 0x23E0 [0xC7 0x85 0x1B 0xFF ] */ portamento 0x85, PITCH_C3, 255 +/* 0x23E4 [0x78 0x09 0x41 ] */ notedv PITCH_F5, 9, 65 +/* 0x23E7 [0x70 0x2C 0x41 ] */ notedv PITCH_A4, 44, 65 +/* 0x23EA [0xFF ] */ end + +.channel CHAN_23EB +/* 0x23EB [0x89 0x14 0xA4 ] */ ldlayer 1, LAYER_14A4 +/* 0x23EE [0x88 0x23 0xF2 ] */ ldlayer 0, LAYER_23F2 +/* 0x23F1 [0xFF ] */ end + +.layer LAYER_23F2 +/* 0x23F2 [0xC6 0x3F ] */ instr SF0_INST_63 +/* 0x23F4 [0xC2 0x30 ] */ transpose 48 +/* 0x23F6 [0x52 0x05 0x58 ] */ notedv PITCH_EF2, 5, 88 +/* 0x23F9 [0xC6 0x3B ] */ instr SF0_INST_59 +/* 0x23FB [0xC2 0x00 ] */ transpose 0 +/* 0x23FD [0x64 0x0C 0x32 ] */ notedv PITCH_A3, 12, 50 +/* 0x2400 [0xFF ] */ end + +.channel CHAN_2401 +/* 0x2401 [0xC1 0x50 ] */ instr SF0_INST_80 +/* 0x2403 [0xDA 0x66 0x88 ] */ env ENVELOPE_6688 +/* 0x2406 [0x88 0x24 0x0A ] */ ldlayer 0, LAYER_240A +/* 0x2409 [0xFF ] */ end + +.layer LAYER_240A +/* 0x240A [0xC4 ] */ legato +/* 0x240B [0xC7 0x85 0x18 0xFF ] */ portamento 0x85, PITCH_A2, 255 +/* 0x240F [0x54 0x18 0x64 ] */ notedv PITCH_F2, 24, 100 +/* 0x2412 [0x57 0x30 0x64 ] */ notedv PITCH_AF2, 48, 100 +/* 0x2415 [0xFF ] */ end + +.channel CHAN_2416 +/* 0x2416 [0xC1 0x50 ] */ instr SF0_INST_80 +/* 0x2418 [0xDA 0x66 0x88 ] */ env ENVELOPE_6688 +/* 0x241B [0x88 0x24 0x22 ] */ ldlayer 0, LAYER_2422 +/* 0x241E [0x89 0x24 0x32 ] */ ldlayer 1, LAYER_2432 +/* 0x2421 [0xFF ] */ end + +.layer LAYER_2422 +/* 0x2422 [0xC4 ] */ legato +/* 0x2423 [0xC0 0x28 ] */ ldelay 40 +/* 0x2425 [0xC7 0x85 0x3A 0xFF ] */ portamento 0x85, PITCH_G5, 255 +/* 0x2429 [0x56 0x80 0x12 0x69 ] */ noteldv PITCH_G2, 18, 105 +/* 0x242D [0x6E 0x80 0x1E 0x69 ] */ noteldv PITCH_G4, 30, 105 +/* 0x2431 [0xFF ] */ end + +.layer LAYER_2432 +/* 0x2432 [0xC7 0x81 0x14 0xFF ] */ portamento 0x81, PITCH_F2, 255 +/* 0x2436 [0x5A 0x60 0x64 ] */ notedv PITCH_B2, 96, 100 +/* 0x2439 [0xFF ] */ end + +.channel CHAN_243A +/* 0x243A [0x88 0x24 0x51 ] */ ldlayer 0, LAYER_2451 +/* 0x243D [0x89 0x24 0x45 ] */ ldlayer 1, LAYER_2445 +/* 0x2440 [0xD7 0xDC ] */ vibfreq 220 +/* 0x2442 [0xD8 0x35 ] */ vibdepth 53 +/* 0x2444 [0xFF ] */ end + +.layer LAYER_2445 +/* 0x2445 [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x2447 [0xCB 0x66 0x7C 0xF7 ] */ env ENVELOPE_667C, 247 +/* 0x244B [0xC4 ] */ legato +LAYER_244C: +/* 0x244C [0x4C 0x60 0x6C ] */ notedv PITCH_A1, 96, 108 +/* 0x244F [0xF4 0xFB ] */ rjump LAYER_244C + +.layer LAYER_2451 +/* 0x2451 [0xC2 0xEE ] */ transpose -18 +/* 0x2453 [0xC6 0x34 ] */ instr SF0_INST_52 +/* 0x2455 [0xCB 0x66 0x7C 0xF7 ] */ env ENVELOPE_667C, 247 +/* 0x2459 [0xC4 ] */ legato +LAYER_245A: +/* 0x245A [0x5E 0x60 0x5A ] */ notedv PITCH_EF3, 96, 90 +/* 0x245D [0xF4 0xFB ] */ rjump LAYER_245A + +.channel CHAN_245F +/* 0x245F [0x88 0x24 0x66 ] */ ldlayer 0, LAYER_2466 +/* 0x2462 [0x89 0x24 0x75 ] */ ldlayer 1, LAYER_2475 +/* 0x2465 [0xFF ] */ end + +.layer LAYER_2466 +/* 0x2466 [0xC6 0x50 ] */ instr SF0_INST_80 +/* 0x2468 [0xCB 0x66 0x94 0xFB ] */ env ENVELOPE_6694, 251 +/* 0x246C [0xC7 0x81 0x0A 0xFF ] */ portamento 0x81, PITCH_G1, 255 +/* 0x2470 [0x56 0x80 0x24 0x52 ] */ noteldv PITCH_G2, 36, 82 +/* 0x2474 [0xFF ] */ end + +.layer LAYER_2475 +/* 0x2475 [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x2477 [0xC7 0x81 0x08 0xFF ] */ portamento 0x81, PITCH_F1, 255 +/* 0x247B [0x4F 0x80 0x24 0x69 ] */ noteldv PITCH_C2, 36, 105 +/* 0x247F [0xFF ] */ end + +.channel CHAN_2480 +/* 0x2480 [0x88 0x24 0x87 ] */ ldlayer 0, LAYER_2487 +/* 0x2483 [0x89 0x24 0x96 ] */ ldlayer 1, LAYER_2496 +/* 0x2486 [0xFF ] */ end + +.layer LAYER_2487 +/* 0x2487 [0xC6 0x50 ] */ instr SF0_INST_80 +/* 0x2489 [0xCB 0x66 0x94 0xFB ] */ env ENVELOPE_6694, 251 +/* 0x248D [0xC7 0x81 0x16 0xFF ] */ portamento 0x81, PITCH_G2, 255 +/* 0x2491 [0x43 0x80 0x24 0x5A ] */ noteldv PITCH_C1, 36, 90 +/* 0x2495 [0xFF ] */ end + +.layer LAYER_2496 +/* 0x2496 [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x2498 [0xC7 0x81 0x14 0xFF ] */ portamento 0x81, PITCH_F2, 255 +/* 0x249C [0x43 0x80 0x24 0x5F ] */ noteldv PITCH_C1, 36, 95 +/* 0x24A0 [0xFF ] */ end + +.channel CHAN_24A1 +/* 0x24A1 [0x88 0x24 0xA7 ] */ ldlayer 0, LAYER_24A7 +/* 0x24A4 [0xFF ] */ end + +.layer LAYER_24A5 +/* 0x24A5 [0xC2 0x08 ] */ transpose 8 +.layer LAYER_24A7 +/* 0x24A7 [0xC6 0x42 ] */ instr SF0_INST_66 +/* 0x24A9 [0x4E 0x00 0x67 ] */ notedv PITCH_B1, 0, 103 +/* 0x24AC [0xFF ] */ end + +.channel CHAN_24AD +/* 0x24AD [0x88 0x24 0xB1 ] */ ldlayer 0, LAYER_24B1 +/* 0x24B0 [0xFF ] */ end + +.layer LAYER_24B1 +/* 0x24B1 [0xC6 0x4B ] */ instr SF0_INST_75 +/* 0x24B3 [0xCF 0xF0 ] */ releaserate 240 +/* 0x24B5 [0x5F 0x3C 0x4B ] */ notedv PITCH_E3, 60, 75 +LAYER_24B8: +/* 0x24B8 [0x61 0x38 0x4B ] */ notedv PITCH_GF3, 56, 75 +/* 0x24BB [0xF4 0xFB ] */ rjump LAYER_24B8 + +.channel CHAN_24BD +/* 0x24BD [0xC1 0x3E ] */ instr SF0_INST_62 +/* 0x24BF [0x88 0x24 0xC3 ] */ ldlayer 0, LAYER_24C3 +/* 0x24C2 [0xFF ] */ end + +.layer LAYER_24C3 +/* 0x24C3 [0xC7 0x82 0x27 0x7F ] */ portamento 0x82, PITCH_C4, 127 +/* 0x24C7 [0x64 0x7F 0x64 ] */ notedv PITCH_A3, 127, 100 +/* 0x24CA [0xFF ] */ end + +.channel CHAN_24CB +/* 0x24CB [0xC1 0x3E ] */ instr SF0_INST_62 +/* 0x24CD [0x07 ] */ cdelay 7 +/* 0x24CE [0x88 0x24 0xD2 ] */ ldlayer 0, LAYER_24D2 +/* 0x24D1 [0xFF ] */ end + +.layer LAYER_24D2 +/* 0x24D2 [0x70 0x07 0x4C ] */ notedv PITCH_A4, 7, 76 +/* 0x24D5 [0xC6 0x03 ] */ instr SF0_INST_3 +/* 0x24D7 [0xC7 0x81 0x27 0x7F ] */ portamento 0x81, PITCH_C4, 127 +/* 0x24DB [0x7E 0x18 0x64 ] */ notedv PITCH_B5, 24, 100 +/* 0x24DE [0xFF ] */ end + +.channel CHAN_24DF +/* 0x24DF [0x88 0x24 0xE9 ] */ ldlayer 0, LAYER_24E9 +.channel CHAN_24E2 +/* 0x24E2 [0xC1 0x07 ] */ instr SF0_INST_7 +/* 0x24E4 [0xD8 0x24 ] */ vibdepth 36 +/* 0x24E6 [0xD7 0xFF ] */ vibfreq 255 +/* 0x24E8 [0xFF ] */ end + +.layer LAYER_24E9 +/* 0x24E9 [0x60 0x0A 0x5A ] */ notedv PITCH_F3, 10, 90 +/* 0x24EC [0x67 0x1E 0x5A ] */ notedv PITCH_C4, 30, 90 +/* 0x24EF [0xFF ] */ end + +.channel CHAN_24F0 +/* 0x24F0 [0x88 0x24 0xF7 ] */ ldlayer 0, LAYER_24F7 +/* 0x24F3 [0xFC 0x24 0xE2 ] */ call CHAN_24E2 +/* 0x24F6 [0xFF ] */ end + +.layer LAYER_24F7 +/* 0x24F7 [0x69 0x0A 0x64 ] */ notedv PITCH_D4, 10, 100 +/* 0x24FA [0xC7 0x81 0x2B 0xFF ] */ portamento 0x81, PITCH_E4, 255 +/* 0x24FE [0x5F 0x5A 0x64 ] */ notedv PITCH_E3, 90, 100 +/* 0x2501 [0xFF ] */ end + +.channel CHAN_2502 +/* 0x2502 [0x88 0x25 0x06 ] */ ldlayer 0, LAYER_2506 +/* 0x2505 [0xFF ] */ end + +.layer LAYER_2506 +/* 0x2506 [0xC6 0x29 ] */ instr SF0_INST_41 +/* 0x2508 [0xC2 0x30 ] */ transpose 48 +/* 0x250A [0x64 0x00 0x6E ] */ notedv PITCH_A3, 0, 110 +/* 0x250D [0xFF ] */ end + +.channel CHAN_250E +/* 0x250E [0x88 0x25 0x17 ] */ ldlayer 0, LAYER_2517 +/* 0x2511 [0x89 0x25 0x28 ] */ ldlayer 1, LAYER_2528 +/* 0x2514 [0xDC 0x30 ] */ panweight 48 +/* 0x2516 [0xFF ] */ end + +.layer LAYER_2517 +/* 0x2517 [0xC6 0x3C ] */ instr SF0_INST_60 +/* 0x2519 [0xCB 0x66 0x74 0xE8 ] */ env ENVELOPE_6674, 232 +/* 0x251D [0xC4 ] */ legato +/* 0x251E [0xC7 0x85 0x2E 0xFF ] */ portamento 0x85, PITCH_G4, 255 +LAYER_2522: +/* 0x2522 [0x73 0x83 0xE8 0x69 ] */ notedv PITCH_C5, 1000, 105 +/* 0x2526 [0xF4 0xFA ] */ rjump LAYER_2522 + +.layer LAYER_2528 +/* 0x2528 [0xC6 0x51 ] */ instr SF0_INST_81 +/* 0x252A [0x5B 0x08 0x69 ] */ notedv PITCH_C3, 8, 105 +/* 0x252D [0x56 0x00 0x69 ] */ notedv PITCH_G2, 0, 105 +/* 0x2530 [0xFF ] */ end + +.channel CHAN_2531 +/* 0x2531 [0x88 0x25 0x45 ] */ ldlayer 0, LAYER_2545 +/* 0x2534 [0x89 0x25 0x38 ] */ ldlayer 1, LAYER_2538 +/* 0x2537 [0xFF ] */ end + +.layer LAYER_2538 +/* 0x2538 [0xC6 0x40 ] */ instr SF0_INST_64 +/* 0x253A [0xCB 0x67 0xD8 0xF0 ] */ env ENVELOPE_67D8, 240 +/* 0x253E [0xC4 ] */ legato +LAYER_253F: +/* 0x253F [0x63 0xFD 0x00 0x20 ] */ notedv PITCH_AF3, 32000, 32 +/* 0x2543 [0xF4 0xFA ] */ rjump LAYER_253F + +.layer LAYER_2545 +/* 0x2545 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x2547 [0xCB 0x67 0xE4 0xF0 ] */ env ENVELOPE_67E4, 240 +/* 0x254B [0xC2 0x0F ] */ transpose 15 +/* 0x254D [0xC4 ] */ legato +LAYER_254E: +/* 0x254E [0x70 0xFD 0x00 0x40 ] */ notedv PITCH_A4, 32000, 64 +/* 0x2552 [0xF4 0xFA ] */ rjump LAYER_254E + +.channel CHAN_2554 +/* 0x2554 [0x88 0x25 0x5B ] */ ldlayer 0, LAYER_255B +/* 0x2557 [0x89 0x25 0x68 ] */ ldlayer 1, LAYER_2568 +/* 0x255A [0xFF ] */ end + +.layer LAYER_255B +/* 0x255B [0xC2 0x18 ] */ transpose 24 +/* 0x255D [0xC6 0x2A ] */ instr SF0_INST_42 +/* 0x255F [0xCB 0x67 0xCC 0xF1 ] */ env ENVELOPE_67CC, 241 +/* 0x2563 [0x76 0x81 0x20 0x2A ] */ notedv PITCH_EF5, 288, 42 +/* 0x2567 [0xFF ] */ end + +.layer LAYER_2568 +/* 0x2568 [0xFB 0x21 0x0B ] */ jump LAYER_210B + +.channel CHAN_256B +/* 0x256B [0xFC 0x07 0xAE ] */ call CHAN_07AE +/* 0x256E [0x89 0x25 0x72 ] */ ldlayer 1, LAYER_2572 +/* 0x2571 [0xFF ] */ end + +.layer LAYER_2572 +/* 0x2572 [0xC6 0x03 ] */ instr SF0_INST_3 +/* 0x2574 [0xC7 0x84 0x1B 0xFF ] */ portamento 0x84, PITCH_C3, 255 +/* 0x2578 [0x64 0x0F 0x5D ] */ notedv PITCH_A3, 15, 93 +/* 0x257B [0x60 0x10 0x5D ] */ notedv PITCH_F3, 16, 93 +/* 0x257E [0x5D 0x11 0x5D ] */ notedv PITCH_D3, 17, 93 +/* 0x2581 [0xFF ] */ end + +.channel CHAN_2582 +/* 0x2582 [0xC1 0x45 ] */ instr SF0_INST_69 +/* 0x2584 [0xDA 0x67 0xD8 ] */ env ENVELOPE_67D8 +/* 0x2587 [0xDC 0x00 ] */ panweight 0 +/* 0x2589 [0x88 0x25 0x8D ] */ ldlayer 0, LAYER_258D +/* 0x258C [0xFF ] */ end + +.layer LAYER_258D +/* 0x258D [0xC4 ] */ legato +/* 0x258E [0xC7 0x81 0x30 0xFF ] */ portamento 0x81, PITCH_A4, 255 +LAYER_2592: +/* 0x2592 [0x75 0x20 0x32 ] */ notedv PITCH_D5, 32, 50 +/* 0x2595 [0xF4 0xFB ] */ rjump LAYER_2592 + +.channel CHAN_2597 +/* 0x2597 [0x88 0x25 0xA7 ] */ ldlayer 0, LAYER_25A7 +/* 0x259A [0x89 0x25 0xBC ] */ ldlayer 1, LAYER_25BC +/* 0x259D [0x04 ] */ cdelay 4 +/* 0x259E [0xD7 0x7F ] */ vibfreq 127 +/* 0x25A0 [0xE2 0x19 0x50 0x64 ] */ vibdepthgrad 25, 80, 100 +/* 0x25A4 [0xFD 0x32 ] */ delay 50 +/* 0x25A6 [0xFF ] */ end + +.layer LAYER_25A7 +/* 0x25A7 [0xC6 0x0B ] */ instr SF0_INST_11 +/* 0x25A9 [0xCF 0xD2 ] */ releaserate 210 +/* 0x25AB [0x64 0x04 0x5F ] */ notedv PITCH_A3, 4, 95 +/* 0x25AE [0xC6 0x34 ] */ instr SF0_INST_52 +/* 0x25B0 [0xCB 0x66 0x74 0xEB ] */ env ENVELOPE_6674, 235 +/* 0x25B4 [0xC7 0x85 0x07 0xFF ] */ portamento 0x85, PITCH_E1, 255 +/* 0x25B8 [0x62 0x38 0x46 ] */ notedv PITCH_G3, 56, 70 +/* 0x25BB [0xFF ] */ end + +.layer LAYER_25BC +/* 0x25BC [0xC6 0x2D ] */ instr SF0_INST_45 +/* 0x25BE [0xCF 0xD8 ] */ releaserate 216 +/* 0x25C0 [0x5B 0x04 0x5F ] */ notedv PITCH_C3, 4, 95 +/* 0x25C3 [0xFB 0x23 0xD9 ] */ jump LAYER_23D9 + +.channel CHAN_25C6 +/* 0x25C6 [0x88 0x25 0xCA ] */ ldlayer 0, LAYER_25CA +/* 0x25C9 [0xFF ] */ end + +.layer LAYER_25CA +/* 0x25CA [0xC6 0x3F ] */ instr SF0_INST_63 +/* 0x25CC [0xC2 0x30 ] */ transpose 48 +/* 0x25CE [0xCF 0xF5 ] */ releaserate 245 +/* 0x25D0 [0x57 0x0D 0x5A ] */ notedv PITCH_AF2, 13, 90 +/* 0x25D3 [0xFF ] */ end + +.channel CHAN_25D4 +/* 0x25D4 [0x88 0x25 0xEC ] */ ldlayer 0, LAYER_25EC +/* 0x25D7 [0x89 0x25 0xDB ] */ ldlayer 1, LAYER_25DB +/* 0x25DA [0xFF ] */ end + +.layer LAYER_25DB +/* 0x25DB [0xC6 0x48 ] */ instr SF0_INST_72 +/* 0x25DD [0xCB 0x66 0xF4 0xA0 ] */ env ENVELOPE_66F4, 160 +/* 0x25E1 [0xC4 ] */ legato +/* 0x25E2 [0xC7 0x85 0x1A 0xFF ] */ portamento 0x85, PITCH_B2, 255 +LAYER_25E6: +/* 0x25E6 [0x61 0x83 0xE8 0x50 ] */ notedv PITCH_GF3, 1000, 80 +/* 0x25EA [0xF4 0xFA ] */ rjump LAYER_25E6 + +.layer LAYER_25EC +/* 0x25EC [0xC6 0x33 ] */ instr SF0_INST_51 +/* 0x25EE [0xCB 0x66 0xF4 0xA0 ] */ env ENVELOPE_66F4, 160 +/* 0x25F2 [0xC2 0x30 ] */ transpose 48 +/* 0x25F4 [0xC4 ] */ legato +/* 0x25F5 [0xC7 0x85 0x24 0xFF ] */ portamento 0x85, PITCH_A3, 255 +LAYER_25F9: +/* 0x25F9 [0x6C 0x83 0xE8 0x4B ] */ notedv PITCH_F4, 1000, 75 +/* 0x25FD [0xF4 0xFA ] */ rjump LAYER_25F9 + +.channel CHAN_25FF +/* 0x25FF [0x88 0x26 0x08 ] */ ldlayer 0, LAYER_2608 +/* 0x2602 [0x89 0x26 0x06 ] */ ldlayer 1, LAYER_2606 +/* 0x2605 [0xFF ] */ end + +.layer LAYER_2606 +/* 0x2606 [0xC2 0x05 ] */ transpose 5 +.layer LAYER_2608 +/* 0x2608 [0xC6 0x47 ] */ instr SF0_INST_71 +/* 0x260A [0xCB 0x66 0xF4 0xD3 ] */ env ENVELOPE_66F4, 211 +/* 0x260E [0xC4 ] */ legato +/* 0x260F [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +LAYER_2613: +/* 0x2613 [0x6E 0x81 0xF4 0x50 ] */ notedv PITCH_G4, 500, 80 +/* 0x2617 [0xF4 0xFA ] */ rjump LAYER_2613 + +.channel CHAN_2619 +/* 0x2619 [0xC1 0x42 ] */ instr SF0_INST_66 +/* 0x261B [0xDC 0x40 ] */ panweight 64 +/* 0x261D [0x88 0x26 0x21 ] */ ldlayer 0, LAYER_2621 +/* 0x2620 [0xFF ] */ end + +.layer LAYER_2621 +/* 0x2621 [0xC7 0x83 0x0A 0xFF ] */ portamento 0x83, PITCH_G1, 255 +LAYER_2625: +/* 0x2625 [0x4F 0x20 0x60 ] */ notedv PITCH_C2, 32, 96 +/* 0x2628 [0xF4 0xFB ] */ rjump LAYER_2625 + +.channel CHAN_262A +/* 0x262A [0x88 0x26 0x38 ] */ ldlayer 0, LAYER_2638 +/* 0x262D [0x89 0x26 0x31 ] */ ldlayer 1, LAYER_2631 +/* 0x2630 [0xFF ] */ end + +.layer LAYER_2631 +/* 0x2631 [0xC6 0x42 ] */ instr SF0_INST_66 +/* 0x2633 [0x5F 0x18 0x41 ] */ notedv PITCH_E3, 24, 65 +/* 0x2636 [0xC2 0x12 ] */ transpose 18 +.layer LAYER_2638 +/* 0x2638 [0xC6 0x07 ] */ instr SF0_INST_7 +/* 0x263A [0xCB 0x66 0x88 0xFB ] */ env ENVELOPE_6688, 251 +/* 0x263E [0x5A 0x0E 0x5F ] */ notedv PITCH_B2, 14, 95 +/* 0x2641 [0x67 0x14 0x64 ] */ notedv PITCH_C4, 20, 100 +/* 0x2644 [0x59 0x11 0x66 ] */ notedv PITCH_BF2, 17, 102 +/* 0x2647 [0x65 0x50 0x67 ] */ notedv PITCH_BF3, 80, 103 +/* 0x264A [0xFF ] */ end + +.channel CHAN_264B +/* 0x264B [0xC1 0x30 ] */ instr SF0_INST_48 +/* 0x264D [0x88 0x26 0x51 ] */ ldlayer 0, LAYER_2651 +/* 0x2650 [0xFF ] */ end + +.layer LAYER_2651 +/* 0x2651 [0x67 0x27 0x6E ] */ notedv PITCH_C4, 39, 110 +/* 0x2654 [0xF4 0xFB ] */ rjump LAYER_2651 + +.channel CHAN_2656 +/* 0x2656 [0xC1 0x4D ] */ instr SF0_INST_77 +/* 0x2658 [0xED 0x14 ] */ gain 20 +/* 0x265A [0x88 0x26 0x5E ] */ ldlayer 0, LAYER_265E +/* 0x265D [0xFF ] */ end + +.layer LAYER_265E +/* 0x265E [0xC2 0x30 ] */ transpose 48 +/* 0x2660 [0xC4 ] */ legato +LAYER_2661: +/* 0x2661 [0x5F 0xFD 0x00 0x64 ] */ notedv PITCH_E3, 32000, 100 +/* 0x2665 [0xF4 0xFA ] */ rjump LAYER_2661 + +.channel CHAN_2667 +/* 0x2667 [0x88 0x26 0x71 ] */ ldlayer 0, LAYER_2671 +/* 0x266A [0x89 0x26 0x77 ] */ ldlayer 1, LAYER_2677 +/* 0x266D [0x8A 0x26 0x85 ] */ ldlayer 2, LAYER_2685 +/* 0x2670 [0xFF ] */ end + +.layer LAYER_2671 +/* 0x2671 [0xC6 0x4C ] */ instr SF0_INST_76 +/* 0x2673 [0x60 0x40 0x5F ] */ notedv PITCH_F3, 64, 95 +/* 0x2676 [0xFF ] */ end + +.layer LAYER_2677 +/* 0x2677 [0xC6 0x15 ] */ instr SF0_INST_21 +/* 0x2679 [0xCB 0x66 0xB0 0xFA ] */ env ENVELOPE_66B0, 250 +/* 0x267D [0xC7 0x81 0x1F 0xC8 ] */ portamento 0x81, PITCH_E3, 200 +/* 0x2681 [0x5B 0x3C 0x64 ] */ notedv PITCH_C3, 60, 100 +/* 0x2684 [0xFF ] */ end + +.layer LAYER_2685 +/* 0x2685 [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x2687 [0xC2 0x30 ] */ transpose 48 +/* 0x2689 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x268D [0x55 0x34 0x60 ] */ notedv PITCH_GF2, 52, 96 +/* 0x2690 [0xFF ] */ end + +.channel CHAN_2691 +/* 0x2691 [0x88 0x26 0x9B ] */ ldlayer 0, LAYER_269B +/* 0x2694 [0x89 0x26 0xB3 ] */ ldlayer 1, LAYER_26B3 +/* 0x2697 [0x8A 0x26 0xC2 ] */ ldlayer 2, LAYER_26C2 +/* 0x269A [0xFF ] */ end + +.layer LAYER_269B +/* 0x269B [0xC6 0x40 ] */ instr SF0_INST_64 +/* 0x269D [0xCB 0x66 0x94 0xEB ] */ env ENVELOPE_6694, 235 +/* 0x26A1 [0xC7 0x83 0x27 0xFF ] */ portamento 0x83, PITCH_C4, 255 +/* 0x26A5 [0xF8 0x07 ] */ loop 7 +/* 0x26A7 [0x6E 0x40 0x40 ] */ notedv PITCH_G4, 64, 64 +/* 0x26AA [0xF7 ] */ loopend +/* 0x26AB [0xC7 0x81 0x29 0xFF ] */ portamento 0x81, PITCH_D4, 255 +/* 0x26AF [0x70 0x70 0x40 ] */ notedv PITCH_A4, 112, 64 +/* 0x26B2 [0xFF ] */ end + +.layer LAYER_26B3 +/* 0x26B3 [0xC2 0x10 ] */ transpose 16 +/* 0x26B5 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x26B7 [0xCB 0x66 0x94 0xEB ] */ env ENVELOPE_6694, 235 +/* 0x26BB [0xF8 0x07 ] */ loop 7 +/* 0x26BD [0x79 0x40 0x32 ] */ notedv PITCH_GF5, 64, 50 +/* 0x26C0 [0xF7 ] */ loopend +/* 0x26C1 [0xFF ] */ end + +.layer LAYER_26C2 +/* 0x26C2 [0xC0 0x81 0x09 ] */ ldelay 265 +/* 0x26C5 [0xC6 0x08 ] */ instr SF0_INST_8 +/* 0x26C7 [0xCB 0x67 0xCC 0xEB ] */ env ENVELOPE_67CC, 235 +/* 0x26CB [0x5D 0x7F 0x69 ] */ notedv PITCH_D3, 127, 105 +/* 0x26CE [0xFF ] */ end + +.channel CHAN_26CF +/* 0x26CF [0xED 0x14 ] */ gain 20 +/* 0x26D1 [0x88 0x26 0xD8 ] */ ldlayer 0, LAYER_26D8 +/* 0x26D4 [0x89 0x26 0xDE ] */ ldlayer 1, LAYER_26DE +/* 0x26D7 [0xFF ] */ end + +.layer LAYER_26D8 +/* 0x26D8 [0xC6 0x22 ] */ instr SF0_INST_34 +/* 0x26DA [0x6D 0x4C 0x32 ] */ notedv PITCH_GF4, 76, 50 +/* 0x26DD [0xFF ] */ end + +.layer LAYER_26DE +/* 0x26DE [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x26E0 [0x53 0x08 0x54 ] */ notedv PITCH_E2, 8, 84 +/* 0x26E3 [0xC6 0x1C ] */ instr SF0_INST_28 +/* 0x26E5 [0x68 0x14 0x69 ] */ notedv PITCH_DF4, 20, 105 +/* 0x26E8 [0xFF ] */ end + +.channel CHAN_26E9 +/* 0x26E9 [0x88 0x26 0xF0 ] */ ldlayer 0, LAYER_26F0 +/* 0x26EC [0x89 0x26 0xFA ] */ ldlayer 1, LAYER_26FA +/* 0x26EF [0xFF ] */ end + +.layer LAYER_26F0 +/* 0x26F0 [0xC6 0x1D ] */ instr SF0_INST_29 +/* 0x26F2 [0xC7 0x81 0x0C 0x40 ] */ portamento 0x81, PITCH_A1, 64 +/* 0x26F6 [0x59 0x7F 0x55 ] */ notedv PITCH_BF2, 127, 85 +/* 0x26F9 [0xFF ] */ end + +.layer LAYER_26FA +/* 0x26FA [0xC6 0x22 ] */ instr SF0_INST_34 +/* 0x26FC [0x5D 0x30 0x51 ] */ notedv PITCH_D3, 48, 81 +/* 0x26FF [0xFF ] */ end + +.channel CHAN_2700 +/* 0x2700 [0xC1 0x2E ] */ instr SF0_INST_46 +/* 0x2702 [0xDA 0x66 0xF4 ] */ env ENVELOPE_66F4 +/* 0x2705 [0xD9 0xDD ] */ releaserate 221 +/* 0x2707 [0x88 0x27 0x13 ] */ ldlayer 0, LAYER_2713 +/* 0x270A [0x89 0x27 0x11 ] */ ldlayer 1, LAYER_2711 +/* 0x270D [0x8A 0x27 0x1E ] */ ldlayer 2, LAYER_271E +/* 0x2710 [0xFF ] */ end + +.layer LAYER_2711 +/* 0x2711 [0xC2 0x04 ] */ transpose 4 +.layer LAYER_2713 +/* 0x2713 [0xC4 ] */ legato +/* 0x2714 [0xC7 0x81 0x2B 0xFF ] */ portamento 0x81, PITCH_E4, 255 +LAYER_2718: +/* 0x2718 [0x6C 0x81 0x90 0x30 ] */ notedv PITCH_F4, 400, 48 +/* 0x271C [0xF4 0xFA ] */ rjump LAYER_2718 + +.layer LAYER_271E +/* 0x271E [0xC2 0x30 ] */ transpose 48 +/* 0x2720 [0xCB 0x67 0xD8 0xDD ] */ env ENVELOPE_67D8, 221 +/* 0x2724 [0xC4 ] */ legato +/* 0x2725 [0xC7 0x81 0x32 0xFF ] */ portamento 0x81, PITCH_B4, 255 +LAYER_2729: +/* 0x2729 [0x73 0x81 0x90 0x40 ] */ notedv PITCH_C5, 400, 64 +/* 0x272D [0xF4 0xFA ] */ rjump LAYER_2729 + +.channel CHAN_272F +/* 0x272F [0xCC 0x81 ] */ ldi 129 +CHAN_2731: +/* 0x2731 [0xC7 0x00 0x27 0x46 ] */ stseq 0x00/* portamento mode */, LAYER_2745 + STSEQ_PORTAMENTO_MODE +/* 0x2735 [0xC1 0x40 ] */ instr SF0_INST_64 +/* 0x2737 [0xDA 0x66 0xFC ] */ env ENVELOPE_66FC +/* 0x273A [0xD9 0xDD ] */ releaserate 221 +/* 0x273C [0x88 0x27 0x43 ] */ ldlayer 0, LAYER_2743 +/* 0x273F [0x89 0x27 0x45 ] */ ldlayer 1, LAYER_2745 +/* 0x2742 [0xFF ] */ end + +.layer LAYER_2743 +/* 0x2743 [0xC2 0x18 ] */ transpose 24 +.layer LAYER_2745 +/* 0x2745 [0xC7 0x81 0x1F 0xFF ] */ portamento 0x81, PITCH_E3, 255 +/* 0x2749 [0x62 0x80 0xF0 0x50 ] */ notedv PITCH_G3, 240, 80 +/* 0x274D [0xFF ] */ end + +.channel CHAN_274E +/* 0x274E [0xCC 0x82 ] */ ldi 130 +/* 0x2750 [0xF4 0xDF ] */ rjump CHAN_2731 + +.channel CHAN_2752 +/* 0x2752 [0x88 0x27 0x56 ] */ ldlayer 0, LAYER_2756 +/* 0x2755 [0xFF ] */ end + +.layer LAYER_2756 +/* 0x2756 [0xC6 0x08 ] */ instr SF0_INST_8 +/* 0x2758 [0xCB 0x67 0xCC 0xF5 ] */ env ENVELOPE_67CC, 245 +/* 0x275C [0xC7 0x81 0x13 0x50 ] */ portamento 0x81, PITCH_E2, 80 +/* 0x2760 [0x63 0x6E 0x69 ] */ notedv PITCH_AF3, 110, 105 +/* 0x2763 [0xFF ] */ end + +.channel CHAN_2764 +/* 0x2764 [0xC1 0x36 ] */ instr SF0_INST_54 +/* 0x2766 [0xDA 0x66 0x74 ] */ env ENVELOPE_6674 +/* 0x2769 [0xDC 0x48 ] */ panweight 72 +/* 0x276B [0x88 0x27 0x6F ] */ ldlayer 0, LAYER_276F +/* 0x276E [0xFF ] */ end + +.layer LAYER_276F +/* 0x276F [0xC4 ] */ legato +LAYER_2770: +/* 0x2770 [0x60 0xFD 0x00 0x58 ] */ notedv PITCH_F3, 32000, 88 +/* 0x2774 [0xF4 0xFA ] */ rjump LAYER_2770 + +.channel CHAN_2776 +/* 0x2776 [0xC1 0x36 ] */ instr SF0_INST_54 +/* 0x2778 [0x88 0x27 0x81 ] */ ldlayer 0, LAYER_2781 +/* 0x277B [0x89 0x27 0x7F ] */ ldlayer 1, LAYER_277F +/* 0x277E [0xFF ] */ end + +.layer LAYER_277F +/* 0x277F [0xC2 0xFA ] */ transpose -6 +.layer LAYER_2781 +/* 0x2781 [0xC4 ] */ legato +/* 0x2782 [0xC7 0x01 0x0F 0x30 ] */ portamento 0x01, PITCH_C2, 48 +LAYER_2786: +/* 0x2786 [0x5F 0xFF 0xBC 0x4B ] */ notedv PITCH_E3, 32700, 75 +/* 0x278A [0xF4 0xFA ] */ rjump LAYER_2786 + +.channel CHAN_278C +/* 0x278C [0x88 0x27 0x90 ] */ ldlayer 0, LAYER_2790 +/* 0x278F [0xFF ] */ end + +.layer LAYER_2790 +/* 0x2790 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x2792 [0xCB 0x66 0x38 0xFB ] */ env ENVELOPE_6638, 251 +/* 0x2796 [0xC2 0x24 ] */ transpose 36 +/* 0x2798 [0x5D 0x0D 0x62 ] */ notedv PITCH_D3, 13, 98 +/* 0x279B [0x69 0x64 0x62 ] */ notedv PITCH_D4, 100, 98 +/* 0x279E [0xFF ] */ end + +.channel CHAN_279F +/* 0x279F [0xC1 0x42 ] */ instr SF0_INST_66 +/* 0x27A1 [0x88 0x27 0xA5 ] */ ldlayer 0, LAYER_27A5 +/* 0x27A4 [0xFF ] */ end + +.layer LAYER_27A5 +/* 0x27A5 [0xC4 ] */ legato +/* 0x27A6 [0xC2 0x30 ] */ transpose 48 +/* 0x27A8 [0x4F 0xFF 0xBC 0x64 ] */ notedv PITCH_C2, 32700, 100 +/* 0x27AC [0xF4 0xF7 ] */ rjump LAYER_27A5 + +.channel CHAN_27AE +/* 0x27AE [0xE5 0x01 ] */ reverbidx 1 +.channel CHAN_27B0 +/* 0x27B0 [0xCC 0x81 ] */ ldi 129 +CHAN_27B2: +/* 0x27B2 [0xC7 0x00 0x27 0xD4 ] */ stseq 0/* portamento mode */, LAYER_27D3 + STSEQ_PORTAMENTO_MODE +/* 0x27B6 [0xDC 0x40 ] */ panweight 64 +/* 0x27B8 [0x88 0x27 0xCC ] */ ldlayer 0, LAYER_27CC +/* 0x27BB [0x89 0x27 0xC8 ] */ ldlayer 1, LAYER_27C8 +/* 0x27BE [0x8A 0x27 0xC2 ] */ ldlayer 2, LAYER_27C2 +/* 0x27C1 [0xFF ] */ end + +.layer LAYER_27C2 +/* 0x27C2 [0xC2 0x08 ] */ transpose 8 +/* 0x27C4 [0xCA 0x68 ] */ notepan 104 +/* 0x27C6 [0xF4 0x04 ] */ rjump LAYER_27CC + +.layer LAYER_27C8 +/* 0x27C8 [0xC2 0x04 ] */ transpose 4 +/* 0x27CA [0xCA 0x18 ] */ notepan 24 +.layer LAYER_27CC +/* 0x27CC [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x27CE [0xCB 0x66 0xF4 0xE6 ] */ env ENVELOPE_66F4, 230 +/* 0x27D2 [0xC4 ] */ legato +LAYER_27D3: +/* 0x27D3 [0xC7 0x81 0x3A 0xFF ] */ portamento 0x81, PITCH_G5, 255 +LAYER_27D7: +/* 0x27D7 [0x7C 0x87 0xD0 0x4B ] */ notedv PITCH_A5, 2000, 75 +/* 0x27DB [0xF4 0xFA ] */ rjump LAYER_27D7 + +.channel CHAN_27DD +/* 0x27DD [0x88 0x27 0xE4 ] */ ldlayer 0, LAYER_27E4 +/* 0x27E0 [0x89 0x27 0xE8 ] */ ldlayer 1, LAYER_27E8 +/* 0x27E3 [0xFF ] */ end + +.layer LAYER_27E4 +/* 0x27E4 [0xC2 0x24 ] */ transpose 36 +/* 0x27E6 [0xF4 0x02 ] */ rjump LAYER_27EA + +.layer LAYER_27E8 +/* 0x27E8 [0xC2 0x30 ] */ transpose 48 +LAYER_27EA: +/* 0x27EA [0xC6 0x46 ] */ instr SF0_INST_70 +/* 0x27EC [0x65 0x00 0x4B ] */ notedv PITCH_BF3, 0, 75 +/* 0x27EF [0xFF ] */ end + +.channel CHAN_27F0 +/* 0x27F0 [0x88 0x27 0xF7 ] */ ldlayer 0, LAYER_27F7 +/* 0x27F3 [0x89 0x09 0x98 ] */ ldlayer 1, LAYER_0998 +/* 0x27F6 [0xFF ] */ end + +.layer LAYER_27F7 +/* 0x27F7 [0xC2 0x30 ] */ transpose 48 +/* 0x27F9 [0xFB 0x09 0x92 ] */ jump LAYER_0992 + +.channel CHAN_27FC +/* 0x27FC [0xFC 0x28 0x23 ] */ call CHAN_2823 +/* 0x27FF [0x88 0x28 0x0A ] */ ldlayer 0, LAYER_280A +/* 0x2802 [0x89 0x28 0x16 ] */ ldlayer 1, LAYER_2816 +/* 0x2805 [0xD7 0x80 ] */ vibfreq 128 +/* 0x2807 [0xD8 0x10 ] */ vibdepth 16 +/* 0x2809 [0xFF ] */ end + +.layer LAYER_280A +/* 0x280A [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x280C [0xCB 0x66 0x74 0xF5 ] */ env ENVELOPE_6674, 245 +LAYER_2810: +/* 0x2810 [0x75 0xFD 0x00 0x3C ] */ notedv PITCH_D5, 32000, 60 +/* 0x2814 [0xF4 0xFA ] */ rjump LAYER_2810 + +.layer LAYER_2816 +/* 0x2816 [0xC6 0x3C ] */ instr SF0_INST_60 +/* 0x2818 [0xCB 0x66 0xF4 0xF5 ] */ env ENVELOPE_66F4, 245 +/* 0x281C [0xC4 ] */ legato +LAYER_281D: +/* 0x281D [0x68 0xFD 0x00 0x4B ] */ notedv PITCH_DF4, 32000, 75 +/* 0x2821 [0xF4 0xFA ] */ rjump LAYER_281D + +.channel CHAN_2823 +/* 0x2823 [0xED 0x0C ] */ gain 12 +/* 0x2825 [0xCC 0x19 ] */ ldi 25 +/* 0x2827 [0x71 ] */ stio IO_PORT_1 +/* 0x2828 [0xFF ] */ end + +.channel CHAN_2829 +/* 0x2829 [0xC1 0x2E ] */ instr SF0_INST_46 +/* 0x282B [0x88 0x28 0x32 ] */ ldlayer 0, LAYER_2832 +/* 0x282E [0x89 0x28 0x3C ] */ ldlayer 1, LAYER_283C +/* 0x2831 [0xFF ] */ end + +.layer LAYER_2832 +/* 0x2832 [0xCB 0x67 0xD8 0xE6 ] */ env ENVELOPE_67D8, 230 +LAYER_2836: +/* 0x2836 [0x6F 0xFD 0x00 0x32 ] */ notedv PITCH_AF4, 32000, 50 +/* 0x283A [0xF4 0xFA ] */ rjump LAYER_2836 + +.layer LAYER_283C +/* 0x283C [0xC2 0x30 ] */ transpose 48 +/* 0x283E [0xCB 0x67 0xD8 0xE6 ] */ env ENVELOPE_67D8, 230 +LAYER_2842: +/* 0x2842 [0x64 0xFD 0x00 0x20 ] */ notedv PITCH_A3, 32000, 32 +/* 0x2846 [0xF4 0xFA ] */ rjump LAYER_2842 + +.channel CHAN_2848 +/* 0x2848 [0x88 0x28 0x53 ] */ ldlayer 0, LAYER_2853 +/* 0x284B [0x89 0x28 0x4F ] */ ldlayer 1, LAYER_284F +/* 0x284E [0xFF ] */ end + +.layer LAYER_284F +/* 0x284F [0xC2 0x10 ] */ transpose 16 +/* 0x2851 [0xF4 0x02 ] */ rjump LAYER_2855 + +.layer LAYER_2853 +/* 0x2853 [0xC2 0x0C ] */ transpose 12 +LAYER_2855: +/* 0x2855 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x2857 [0xCB 0x66 0xF4 0xE6 ] */ env ENVELOPE_66F4, 230 +/* 0x285B [0xC4 ] */ legato +LAYER_285C: +/* 0x285C [0x78 0xFD 0x00 0x23 ] */ notedv PITCH_F5, 32000, 35 +/* 0x2860 [0xF4 0xFA ] */ rjump LAYER_285C + +.channel CHAN_2862 +/* 0x2862 [0xED 0x0F ] */ gain 15 +/* 0x2864 [0x88 0x28 0x6D ] */ ldlayer 0, LAYER_286D +/* 0x2867 [0x89 0x28 0x7C ] */ ldlayer 1, LAYER_287C +/* 0x286A [0xFF ] */ end + +.layer LAYER_286B +/* 0x286B [0xC2 0x04 ] */ transpose 4 +.layer LAYER_286D +/* 0x286D [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x286F [0xCB 0x66 0xFC 0xAA ] */ env ENVELOPE_66FC, 170 +/* 0x2873 [0xC7 0x81 0x20 0x91 ] */ portamento 0x81, PITCH_F3, 145 +/* 0x2877 [0x5D 0x82 0x44 0x69 ] */ notedv PITCH_D3, 580, 105 +/* 0x287B [0xFF ] */ end + +.layer LAYER_287C +/* 0x287C [0xC6 0x50 ] */ instr SF0_INST_80 +/* 0x287E [0xCB 0x66 0xFC 0xAA ] */ env ENVELOPE_66FC, 170 +/* 0x2882 [0xC7 0x81 0x05 0x91 ] */ portamento 0x81, PITCH_D1, 145 +/* 0x2886 [0x42 0x82 0x44 0x6E ] */ notedv PITCH_B0, 580, 110 +/* 0x288A [0xFF ] */ end + +.channel CHAN_288B +/* 0x288B [0xCC 0x81 ] */ ldi 129 +/* 0x288D [0xC7 0x00 0x28 0xAB ] */ stseq 0/* portamento mode */, LAYER_28AA + STSEQ_PORTAMENTO_MODE +CHAN_2891: +/* 0x2891 [0x88 0x28 0xA3 ] */ ldlayer 0, LAYER_28A3 +/* 0x2894 [0x89 0x28 0x9C ] */ ldlayer 1, LAYER_289C +/* 0x2897 [0xD7 0x6F ] */ vibfreq 111 +/* 0x2899 [0xD8 0x0A ] */ vibdepth 10 +/* 0x289B [0xFF ] */ end + +.layer LAYER_289C +/* 0x289C [0xC2 0xF4 ] */ transpose -12 +/* 0x289E [0xC6 0x34 ] */ instr SF0_INST_52 +/* 0x28A0 [0xFB 0x28 0xA5 ] */ jump LAYER_28A5 + +.layer LAYER_28A3 +/* 0x28A3 [0xC6 0x4A ] */ instr SF0_INST_74 +LAYER_28A5: +/* 0x28A5 [0xCB 0x66 0x7C 0xE7 ] */ env ENVELOPE_667C, 231 +/* 0x28A9 [0xC4 ] */ legato +LAYER_28AA: +/* 0x28AA [0xC7 0x81 0x0C 0x19 ] */ portamento 0x81, PITCH_A1, 25 +LAYER_28AE: +/* 0x28AE [0x5D 0x8C 0xB2 0x4A ] */ notedv PITCH_D3, 3250, 74 +/* 0x28B2 [0xF4 0xFA ] */ rjump LAYER_28AE + +.channel CHAN_28B4 +/* 0x28B4 [0xCC 0x82 ] */ ldi 130 +/* 0x28B6 [0xC7 0x00 0x28 0xAB ] */ stseq 0/* portamento mode */, LAYER_28AA + STSEQ_PORTAMENTO_MODE +/* 0x28BA [0xF4 0xD5 ] */ rjump CHAN_2891 + +.channel CHAN_28BC +/* 0x28BC [0xCC 0x81 ] */ ldi 129 +CHAN_28BE: +/* 0x28BE [0xC7 0x00 0x28 0xD3 ] */ stseq 0/* portamento mode */, LAYER_28D2 + STSEQ_PORTAMENTO_MODE +/* 0x28C2 [0xC1 0x08 ] */ instr SF0_INST_8 +/* 0x28C4 [0xDA 0x66 0x88 ] */ env ENVELOPE_6688 +/* 0x28C7 [0x88 0x28 0xD2 ] */ ldlayer 0, LAYER_28D2 +/* 0x28CA [0x89 0x28 0xD0 ] */ ldlayer 1, LAYER_28D0 +/* 0x28CD [0xFD 0x14 ] */ delay 20 +/* 0x28CF [0xFF ] */ end + +.layer LAYER_28D0 +/* 0x28D0 [0xC6 0x04 ] */ instr SF0_INST_4 +.layer LAYER_28D2 +/* 0x28D2 [0xC7 0x81 0x11 0xFF ] */ portamento 0x81, PITCH_D2, 255 +/* 0x28D6 [0xCF 0xFB ] */ releaserate 251 +/* 0x28D8 [0x45 0x14 0x50 ] */ notedv PITCH_D1, 20, 80 +/* 0x28DB [0xFF ] */ end + +.channel CHAN_28DC +/* 0x28DC [0xCC 0x82 ] */ ldi 130 +/* 0x28DE [0xF4 0xDE ] */ rjump CHAN_28BE + +.channel CHAN_28E0 +/* 0x28E0 [0x88 0x1B 0x2E ] */ ldlayer 0, LAYER_1B2E +/* 0x28E3 [0x89 0x1F 0x1A ] */ ldlayer 1, LAYER_1F1A +/* 0x28E6 [0xFF ] */ end + +.channel CHAN_28E7 +/* 0x28E7 [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x28E9 [0x88 0x29 0x13 ] */ ldlayer 0, LAYER_2913 +/* 0x28EC [0x89 0x29 0x00 ] */ ldlayer 1, LAYER_2900 +/* 0x28EF [0x8A 0x29 0x22 ] */ ldlayer 2, LAYER_2922 +/* 0x28F2 [0xD7 0x80 ] */ vibfreq 128 +/* 0x28F4 [0xE2 0x20 0x00 0x37 ] */ vibdepthgrad 32, 0, 55 +/* 0x28F8 [0xCC 0x01 ] */ ldi 1 +/* 0x28FA [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x28FD [0xD8 0x00 ] */ vibdepth 0 +/* 0x28FF [0xFF ] */ end + +.layer LAYER_2900 +/* 0x2900 [0xC6 0x40 ] */ instr SF0_INST_64 +/* 0x2902 [0xCB 0x67 0xE4 0xC8 ] */ env ENVELOPE_67E4, 200 +/* 0x2906 [0xC7 0x81 0x26 0xB4 ] */ portamento 0x81, PITCH_B3, 180 +/* 0x290A [0x67 0x83 0x84 0x20 ] */ notedv PITCH_C4, 900, 32 +/* 0x290E [0xFF ] */ end + +.layer LAYER_290F +/* 0x290F [0xC2 0x1B ] */ transpose 27 +/* 0x2911 [0xF4 0x02 ] */ rjump LAYER_2915 + +.layer LAYER_2913 +/* 0x2913 [0xC2 0x0F ] */ transpose 15 +LAYER_2915: +/* 0x2915 [0xCB 0x67 0xE4 0xC8 ] */ env ENVELOPE_67E4, 200 +/* 0x2919 [0xC7 0x81 0x32 0xB4 ] */ portamento 0x81, PITCH_B4, 180 +/* 0x291D [0x73 0x83 0x84 0x50 ] */ notedv PITCH_C5, 900, 80 +/* 0x2921 [0xFF ] */ end + +.layer LAYER_2922 +/* 0x2922 [0xCF 0xC8 ] */ releaserate 200 +/* 0x2924 [0x5B 0x82 0x58 0x40 ] */ notedv PITCH_C3, 600, 64 +/* 0x2928 [0xC2 0x1B ] */ transpose 27 +/* 0x292A [0xCB 0x66 0xF4 0xDD ] */ env ENVELOPE_66F4, 221 +/* 0x292E [0x73 0x81 0x2C 0x46 ] */ notedv PITCH_C5, 300, 70 +/* 0x2932 [0xFF ] */ end + +.channel CHAN_2933 +/* 0x2933 [0x88 0x29 0x37 ] */ ldlayer 0, LAYER_2937 +/* 0x2936 [0xFF ] */ end + +.layer LAYER_2937 +/* 0x2937 [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x2939 [0xCB 0x68 0x08 0xF0 ] */ env ENVELOPE_6808, 240 +/* 0x293D [0xC2 0x30 ] */ transpose 48 +/* 0x293F [0xC4 ] */ legato +/* 0x2940 [0xC7 0x85 0x2E 0xFF ] */ portamento 0x85, PITCH_G4, 255 +/* 0x2944 [0x6D 0x50 0x50 ] */ notedv PITCH_GF4, 80, 80 +/* 0x2947 [0x67 0x80 0xD2 0x50 ] */ notedv PITCH_C4, 210, 80 +LAYER_294B: +/* 0x294B [0x67 0x81 0x13 0x50 ] */ notedv PITCH_C4, 275, 80 +/* 0x294F [0xF4 0xFA ] */ rjump LAYER_294B + +.channel CHAN_2951 +/* 0x2951 [0x88 0x29 0x58 ] */ ldlayer 0, LAYER_2958 +/* 0x2954 [0x89 0x05 0x4B ] */ ldlayer 1, LAYER_054B +/* 0x2957 [0xFF ] */ end + +.layer LAYER_2958 +/* 0x2958 [0xC6 0x15 ] */ instr SF0_INST_21 +/* 0x295A [0xCB 0x66 0xB0 0xFA ] */ env ENVELOPE_66B0, 250 +/* 0x295E [0xC7 0x83 0x26 0xC8 ] */ portamento 0x83, PITCH_B3, 200 +/* 0x2962 [0x57 0x03 0x5F ] */ notedv PITCH_AF2, 3, 95 +/* 0x2965 [0x19 0x09 0x5F 0x64 ] */ notedvg PITCH_BF2, 9, 95, 100 +/* 0x2969 [0xFF ] */ end + +.channel CHAN_296A +/* 0x296A [0x88 0x29 0x6E ] */ ldlayer 0, LAYER_296E +/* 0x296D [0xFF ] */ end + +.layer LAYER_296E +/* 0x296E [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x2970 [0xCB 0x68 0x00 0xF0 ] */ env ENVELOPE_6800, 240 +/* 0x2974 [0xC2 0x30 ] */ transpose 48 +/* 0x2976 [0xC4 ] */ legato +/* 0x2977 [0xC7 0x85 0x20 0xFF ] */ portamento 0x85, PITCH_F3, 255 +/* 0x297B [0x60 0x50 0x50 ] */ notedv PITCH_F3, 80, 80 +/* 0x297E [0x6E 0x50 0x50 ] */ notedv PITCH_G4, 80, 80 +/* 0x2981 [0x6E 0x82 0x08 0x50 ] */ notedv PITCH_G4, 520, 80 +/* 0x2985 [0x67 0x80 0xD2 0x50 ] */ notedv PITCH_C4, 210, 80 +LAYER_2989: +/* 0x2989 [0x60 0x64 0x50 ] */ notedv PITCH_F3, 100, 80 +/* 0x298C [0xF4 0xFB ] */ rjump LAYER_2989 + +.channel CHAN_298E +/* 0x298E [0x88 0x29 0x9C ] */ ldlayer 0, LAYER_299C +/* 0x2991 [0x89 0x29 0x98 ] */ ldlayer 1, LAYER_2998 +/* 0x2994 [0x8A 0x29 0xAD ] */ ldlayer 2, LAYER_29AD +/* 0x2997 [0xFF ] */ end + +.layer LAYER_2998 +/* 0x2998 [0xCD 0x14 ] */ stereo 1, 0, 1, 0, 0 +.layer LAYER_299A +/* 0x299A [0xC2 0xFA ] */ transpose -6 +.layer LAYER_299C +/* 0x299C [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x299E [0xCB 0x66 0xFC 0xD3 ] */ env ENVELOPE_66FC, 211 +/* 0x29A2 [0xC4 ] */ legato +/* 0x29A3 [0xC7 0x81 0x2E 0xFF ] */ portamento 0x81, PITCH_G4, 255 +LAYER_29A7: +/* 0x29A7 [0x70 0x80 0xC8 0x4D ] */ notedv PITCH_A4, 200, 77 +/* 0x29AB [0xF4 0xFA ] */ rjump LAYER_29A7 + +.layer LAYER_29AD +/* 0x29AD [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_29AF +/* 0x29AF [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x29B1 [0xCB 0x66 0xFC 0xDD ] */ env ENVELOPE_66FC, 221 +/* 0x29B5 [0x58 0x80 0xCF 0x48 ] */ notedv PITCH_A2, 207, 72 +LAYER_29B9: +/* 0x29B9 [0x60 0x6F 0x50 ] */ notedv PITCH_F3, 111, 80 +/* 0x29BC [0x5B 0x80 0xA8 0x54 ] */ notedv PITCH_C3, 168, 84 +/* 0x29C0 [0x5D 0x61 0x44 ] */ notedv PITCH_D3, 97, 68 +/* 0x29C3 [0xF4 0xF4 ] */ rjump LAYER_29B9 + +.channel CHAN_29C5 +/* 0x29C5 [0xCC 0x28 ] */ ldi 40 +/* 0x29C7 [0x71 ] */ stio IO_PORT_1 +/* 0x29C8 [0x88 0x29 0xE3 ] */ ldlayer 0, LAYER_29E3 +/* 0x29CB [0x89 0x29 0xD2 ] */ ldlayer 1, LAYER_29D2 +/* 0x29CE [0x8A 0x29 0xD4 ] */ ldlayer 2, LAYER_29D4 +/* 0x29D1 [0xFF ] */ end + +.layer LAYER_29D2 +/* 0x29D2 [0xC2 0xFC ] */ transpose -4 +.layer LAYER_29D4 +/* 0x29D4 [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x29D6 [0xCB 0x66 0xF4 0xF1 ] */ env ENVELOPE_66F4, 241 +/* 0x29DA [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x29DE [0x5E 0x80 0xC6 0x5A ] */ notedv PITCH_EF3, 198, 90 +/* 0x29E2 [0xFF ] */ end + +.layer LAYER_29E3 +/* 0x29E3 [0xC0 0x80 0xBC ] */ ldelay 188 +/* 0x29E6 [0xC6 0x08 ] */ instr SF0_INST_8 +/* 0x29E8 [0xC7 0x81 0x03 0x20 ] */ portamento 0x81, PITCH_C1, 32 +/* 0x29EC [0x4F 0x40 0x69 ] */ notedv PITCH_C2, 64, 105 +/* 0x29EF [0xFF ] */ end + +.channel CHAN_29F0 +/* 0x29F0 [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x29F2 [0x88 0x29 0xFC ] */ ldlayer 0, LAYER_29FC +/* 0x29F5 [0x89 0x21 0x24 ] */ ldlayer 1, LAYER_2124 +/* 0x29F8 [0x8A 0x2A 0x01 ] */ ldlayer 2, LAYER_2A01 +/* 0x29FB [0xFF ] */ end + +.layer LAYER_29FC +/* 0x29FC [0xC2 0x1E ] */ transpose 30 +/* 0x29FE [0xFB 0x21 0x32 ] */ jump LAYER_2132 + +.layer LAYER_2A01 +/* 0x2A01 [0xC2 0x33 ] */ transpose 51 +/* 0x2A03 [0xFB 0x21 0x49 ] */ jump LAYER_2149 + +LAYER_2A06: +/* 0x2A06 [0xC6 0x2C ] */ instr SF0_INST_44 +/* 0x2A08 [0xCF 0xDD ] */ releaserate 221 +/* 0x2A0A [0xC7 0x84 0x16 0x7F ] */ portamento 0x84, PITCH_G2, 127 +/* 0x2A0E [0x70 0x60 0x55 ] */ notedv PITCH_A4, 96, 85 +/* 0x2A11 [0x72 0x7F 0x5F ] */ notedv PITCH_B4, 127, 95 +/* 0x2A14 [0xFF ] */ end + +.channel CHAN_2A15 +/* 0x2A15 [0xC1 0x2E ] */ instr SF0_INST_46 +/* 0x2A17 [0x88 0x2A 0x27 ] */ ldlayer 0, LAYER_2A27 +/* 0x2A1A [0x89 0x2A 0x36 ] */ ldlayer 1, LAYER_2A36 +/* 0x2A1D [0x8A 0x2A 0x3F ] */ ldlayer 2, LAYER_2A3F +/* 0x2A20 [0xD8 0x28 ] */ vibdepth 40 +/* 0x2A22 [0xE1 0x94 0xF0 0x64 ] */ vibfreqgrad 148, 240, 100 +/* 0x2A26 [0xFF ] */ end + +.layer LAYER_2A27 +/* 0x2A27 [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x2A29 [0xCB 0x66 0xF4 0xDD ] */ env ENVELOPE_66F4, 221 +/* 0x2A2D [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x2A31 [0x7E 0x82 0xE4 0x5F ] */ notedv PITCH_B5, 740, 95 +/* 0x2A35 [0xFF ] */ end + +.layer LAYER_2A36 +/* 0x2A36 [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x2A3A [0x72 0x82 0xE4 0x41 ] */ notedv PITCH_B4, 740, 65 +/* 0x2A3E [0xFF ] */ end + +.layer LAYER_2A3F +/* 0x2A3F [0xC2 0x30 ] */ transpose 48 +/* 0x2A41 [0xCF 0xB4 ] */ releaserate 180 +/* 0x2A43 [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x2A47 [0x72 0x82 0x1C 0x3E ] */ notedv PITCH_B4, 540, 62 +/* 0x2A4B [0xC2 0x00 ] */ transpose 0 +/* 0x2A4D [0xC6 0x0D ] */ instr SF0_INST_13 +/* 0x2A4F [0xCB 0x66 0xF4 0xDD ] */ env ENVELOPE_66F4, 221 +/* 0x2A53 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x2A57 [0x7E 0x80 0xC8 0x55 ] */ notedv PITCH_B5, 200, 85 +/* 0x2A5B [0xFF ] */ end + +.channel CHAN_2A5C +/* 0x2A5C [0xCC 0x1E ] */ ldi 30 +/* 0x2A5E [0x71 ] */ stio IO_PORT_1 +/* 0x2A5F [0x88 0x2A 0x6D ] */ ldlayer 0, LAYER_2A6D +/* 0x2A62 [0x89 0x2A 0x7B ] */ ldlayer 1, LAYER_2A7B +/* 0x2A65 [0x8A 0x2A 0x8A ] */ ldlayer 2, LAYER_2A8A +/* 0x2A68 [0xD7 0xFB ] */ vibfreq 251 +/* 0x2A6A [0xD8 0x06 ] */ vibdepth 6 +/* 0x2A6C [0xFF ] */ end + +.layer LAYER_2A6D +/* 0x2A6D [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x2A6F [0xC2 0x18 ] */ transpose 24 +/* 0x2A71 [0xCB 0x66 0xF4 0xE6 ] */ env ENVELOPE_66F4, 230 +LAYER_2A75: +/* 0x2A75 [0x70 0xFD 0x00 0x40 ] */ notedv PITCH_A4, 32000, 64 +/* 0x2A79 [0xF4 0xFA ] */ rjump LAYER_2A75 + +.layer LAYER_2A7B +/* 0x2A7B [0xC6 0x33 ] */ instr SF0_INST_51 +/* 0x2A7D [0xC2 0x30 ] */ transpose 48 +/* 0x2A7F [0xC4 ] */ legato +/* 0x2A80 [0xCB 0x66 0xF4 0xB4 ] */ env ENVELOPE_66F4, 180 +LAYER_2A84: +/* 0x2A84 [0x78 0xFD 0x00 0x28 ] */ notedv PITCH_F5, 32000, 40 +/* 0x2A88 [0xF4 0xFA ] */ rjump LAYER_2A84 + +.layer LAYER_2A8A +/* 0x2A8A [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x2A8C [0xCB 0x66 0xF4 0xB4 ] */ env ENVELOPE_66F4, 180 +/* 0x2A90 [0xC4 ] */ legato +LAYER_2A91: +/* 0x2A91 [0x73 0xFD 0x00 0x40 ] */ notedv PITCH_C5, 32000, 64 +/* 0x2A95 [0xF4 0xFA ] */ rjump LAYER_2A91 + +.channel CHAN_2A97 +/* 0x2A97 [0xED 0x14 ] */ gain 20 +/* 0x2A99 [0x88 0x2A 0xA8 ] */ ldlayer 0, LAYER_2AA8 +/* 0x2A9C [0x89 0x2A 0xA0 ] */ ldlayer 1, LAYER_2AA0 +/* 0x2A9F [0xFF ] */ end + +.layer LAYER_2AA0 +/* 0x2AA0 [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x2AA2 [0x4A 0x1E 0x50 ] */ notedv PITCH_G1, 30, 80 +/* 0x2AA5 [0xFB 0x1B 0x35 ] */ jump LAYER_1B35 + +.layer LAYER_2AA8 +/* 0x2AA8 [0xC6 0x41 ] */ instr SF0_INST_65 +/* 0x2AAA [0xC7 0x81 0x20 0x7F ] */ portamento 0x81, PITCH_F3, 127 +/* 0x2AAE [0x64 0x64 0x6E ] */ notedv PITCH_A3, 100, 110 +/* 0x2AB1 [0xFF ] */ end + +.channel CHAN_2AB2 +/* 0x2AB2 [0xED 0x0A ] */ gain 10 +/* 0x2AB4 [0x88 0x1B 0x2E ] */ ldlayer 0, LAYER_1B2E +/* 0x2AB7 [0x89 0x2A 0xC6 ] */ ldlayer 1, LAYER_2AC6 +/* 0x2ABA [0x8A 0x2A 0xBE ] */ ldlayer 2, LAYER_2ABE +/* 0x2ABD [0xFF ] */ end + +.layer LAYER_2ABE +/* 0x2ABE [0xC6 0x04 ] */ instr SF0_INST_4 +/* 0x2AC0 [0x45 0x32 0x50 ] */ notedv PITCH_D1, 50, 80 +/* 0x2AC3 [0xFB 0x1B 0x35 ] */ jump LAYER_1B35 + +.layer LAYER_2AC6 +/* 0x2AC6 [0xC6 0x41 ] */ instr SF0_INST_65 +/* 0x2AC8 [0x5D 0x78 0x6E ] */ notedv PITCH_D3, 120, 110 +/* 0x2ACB [0xFF ] */ end + +.channel CHAN_2ACC +/* 0x2ACC [0x88 0x2A 0xD4 ] */ ldlayer 0, LAYER_2AD4 +/* 0x2ACF [0xD8 0x04 ] */ vibdepth 4 +/* 0x2AD1 [0xD7 0x3A ] */ vibfreq 58 +/* 0x2AD3 [0xFF ] */ end + +.layer LAYER_2AD4 +/* 0x2AD4 [0xC2 0x0C ] */ transpose 12 +/* 0x2AD6 [0xC6 0x82 ] */ instr FONTANY_INSTR_SINE +/* 0x2AD8 [0xCB 0x66 0xD0 0xF8 ] */ env ENVELOPE_66D0, 248 +/* 0x2ADC [0xC7 0x81 0x38 0xFF ] */ portamento 0x81, PITCH_F5, 255 +/* 0x2AE0 [0x60 0x7F 0x3C ] */ notedv PITCH_F3, 127, 60 +/* 0x2AE3 [0xFF ] */ end + +.channel CHAN_2AE4 +/* 0x2AE4 [0x88 0x03 0xE5 ] */ ldlayer 0, LAYER_03E5 +/* 0x2AE7 [0x89 0x07 0x47 ] */ ldlayer 1, LAYER_0747 +/* 0x2AEA [0xFF ] */ end + +.channel CHAN_2AEB +/* 0x2AEB [0x88 0x2B 0x01 ] */ ldlayer 0, LAYER_2B01 +/* 0x2AEE [0x89 0x2A 0xF2 ] */ ldlayer 1, LAYER_2AF2 +/* 0x2AF1 [0xFF ] */ end + +.layer LAYER_2AF2 +/* 0x2AF2 [0xC6 0x0C ] */ instr SF0_INST_12 +/* 0x2AF4 [0xCB 0x66 0xFC 0xE1 ] */ env ENVELOPE_66FC, 225 +/* 0x2AF8 [0xC7 0x81 0x3E 0xFF ] */ portamento 0x81, PITCH_B5, 255 +/* 0x2AFC [0x73 0x80 0xAA 0x60 ] */ notedv PITCH_C5, 170, 96 +/* 0x2B00 [0xFF ] */ end + +.layer LAYER_2B01 +/* 0x2B01 [0xC6 0x23 ] */ instr SF0_INST_35 +/* 0x2B03 [0xCB 0x66 0xFC 0xE1 ] */ env ENVELOPE_66FC, 225 +/* 0x2B07 [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x2B0B [0x58 0x80 0xAA 0x60 ] */ notedv PITCH_A2, 170, 96 +/* 0x2B0F [0xFF ] */ end + +.channel CHAN_2B10 +/* 0x2B10 [0x88 0x2C 0x60 ] */ ldlayer 0, LAYER_2C60 +/* 0x2B13 [0xFF ] */ end + +.channel CHAN_2B14 +/* 0x2B14 [0xC1 0x36 ] */ instr SF0_INST_54 +/* 0x2B16 [0xDA 0x66 0x10 ] */ env ENVELOPE_6610 +/* 0x2B19 [0x88 0x2B 0x1D ] */ ldlayer 0, LAYER_2B1D +/* 0x2B1C [0xFF ] */ end + +.layer LAYER_2B1D +/* 0x2B1D [0x61 0x09 0x6E ] */ notedv PITCH_GF3, 9, 110 +/* 0x2B20 [0xF8 0x20 ] */ loop 32 +/* 0x2B22 [0x63 0x08 0x73 ] */ notedv PITCH_AF3, 8, 115 +/* 0x2B25 [0xF7 ] */ loopend +/* 0x2B26 [0x65 0x0B 0x73 ] */ notedv PITCH_BF3, 11, 115 +/* 0x2B29 [0xFF ] */ end + +.channel CHAN_2B2A +/* 0x2B2A [0x88 0x2B 0x31 ] */ ldlayer 0, LAYER_2B31 +/* 0x2B2D [0x89 0x2B 0x39 ] */ ldlayer 1, LAYER_2B39 +/* 0x2B30 [0xFF ] */ end + +.layer LAYER_2B31 +/* 0x2B31 [0xC6 0x40 ] */ instr SF0_INST_64 +/* 0x2B33 [0xCB 0x66 0xFC 0xC3 ] */ env ENVELOPE_66FC, 195 +/* 0x2B37 [0xF4 0x08 ] */ rjump LAYER_2B41 + +.layer LAYER_2B39 +/* 0x2B39 [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x2B3B [0xCB 0x66 0xFC 0xC3 ] */ env ENVELOPE_66FC, 195 +/* 0x2B3F [0xC2 0x30 ] */ transpose 48 +LAYER_2B41: +/* 0x2B41 [0xC7 0x81 0x2C 0xFF ] */ portamento 0x81, PITCH_F4, 255 +/* 0x2B45 [0x77 0x64 0x55 ] */ notedv PITCH_E5, 100, 85 +/* 0x2B48 [0xFF ] */ end + +.channel CHAN_2B49 +/* 0x2B49 [0xCC 0x81 ] */ ldi 129 +/* 0x2B4B [0xC7 0x00 0x2B 0x96 ] */ stseq 0x00/* portamento mode */, LAYER_2B95 + STSEQ_PORTAMENTO_MODE +/* 0x2B4F [0xC7 0x00 0x2B 0xA7 ] */ stseq 0x00/* portamento mode */, LAYER_2BA6 + STSEQ_PORTAMENTO_MODE +/* 0x2B53 [0x88 0x2B 0x5D ] */ ldlayer 0, LAYER_2B5D +/* 0x2B56 [0x89 0x2B 0x9F ] */ ldlayer 1, LAYER_2B9F +/* 0x2B59 [0x8A 0x2B 0x86 ] */ ldlayer 2, LAYER_2B86 +/* 0x2B5C [0xFF ] */ end + +.layer LAYER_2B5D +/* 0x2B5D [0xC0 0x81 0x72 ] */ ldelay 370 +/* 0x2B60 [0xFF ] */ end + +.channel CHAN_2B61 +/* 0x2B61 [0xCC 0x82 ] */ ldi 130 +/* 0x2B63 [0xC7 0x00 0x2B 0x96 ] */ stseq 0x00/* portamento mode */, LAYER_2B95 + STSEQ_PORTAMENTO_MODE +/* 0x2B67 [0xC7 0x00 0x2B 0xA7 ] */ stseq 0x00/* portamento mode */, LAYER_2BA6 + STSEQ_PORTAMENTO_MODE +/* 0x2B6B [0x88 0x2B 0x5D ] */ ldlayer 0, LAYER_2B5D +/* 0x2B6E [0x89 0x2B 0x9F ] */ ldlayer 1, LAYER_2B9F +/* 0x2B71 [0x8A 0x2B 0x86 ] */ ldlayer 2, LAYER_2B86 +/* 0x2B74 [0xFF ] */ end + +.channel CHAN_2B75 +/* 0x2B75 [0xCC 0x81 ] */ ldi 129 +/* 0x2B77 [0xC7 0x00 0x2B 0x96 ] */ stseq 0x00/* portamento mode */, LAYER_2B95 + STSEQ_PORTAMENTO_MODE +/* 0x2B7B [0xC7 0x00 0x2B 0xA7 ] */ stseq 0x00/* portamento mode */, LAYER_2BA6 + STSEQ_PORTAMENTO_MODE +/* 0x2B7F [0x88 0x2B 0x8C ] */ ldlayer 0, LAYER_2B8C +/* 0x2B82 [0x89 0x2B 0x9F ] */ ldlayer 1, LAYER_2B9F +/* 0x2B85 [0xFF ] */ end + +.layer LAYER_2B86 +/* 0x2B86 [0xC6 0x45 ] */ instr SF0_INST_69 +/* 0x2B88 [0xC2 0xF4 ] */ transpose -12 +/* 0x2B8A [0xF4 0x04 ] */ rjump LAYER_2B90 + +.layer LAYER_2B8C +/* 0x2B8C [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x2B8E [0xC2 0x30 ] */ transpose 48 +LAYER_2B90: +/* 0x2B90 [0xC4 ] */ legato +/* 0x2B91 [0xCB 0x67 0xD8 0xDD ] */ env ENVELOPE_67D8, 221 +LAYER_2B95: +/* 0x2B95 [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +LAYER_2B99: +/* 0x2B99 [0x73 0x81 0xF4 0x55 ] */ notedv PITCH_C5, 500, 85 +/* 0x2B9D [0xF4 0xFA ] */ rjump LAYER_2B99 + +.layer LAYER_2B9F +/* 0x2B9F [0xC6 0x45 ] */ instr SF0_INST_69 +/* 0x2BA1 [0xC4 ] */ legato +/* 0x2BA2 [0xCB 0x67 0xD8 0xDD ] */ env ENVELOPE_67D8, 221 +LAYER_2BA6: +/* 0x2BA6 [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +LAYER_2BAA: +/* 0x2BAA [0x7E 0x81 0xF4 0x55 ] */ notedv PITCH_B5, 500, 85 +/* 0x2BAE [0xF4 0xFA ] */ rjump LAYER_2BAA + +.channel CHAN_2BB0 +/* 0x2BB0 [0xED 0x14 ] */ gain 20 +/* 0x2BB2 [0x88 0x2B 0xC7 ] */ ldlayer 0, LAYER_2BC7 +/* 0x2BB5 [0x89 0x2B 0xBC ] */ ldlayer 1, LAYER_2BBC +/* 0x2BB8 [0x8A 0x26 0xD8 ] */ ldlayer 2, LAYER_26D8 +/* 0x2BBB [0xFF ] */ end + +.layer LAYER_2BBC +/* 0x2BBC [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x2BBE [0x53 0x0F 0x54 ] */ notedv PITCH_E2, 15, 84 +/* 0x2BC1 [0xC6 0x22 ] */ instr SF0_INST_34 +/* 0x2BC3 [0x67 0x3D 0x42 ] */ notedv PITCH_C4, 61, 66 +/* 0x2BC6 [0xFF ] */ end + +.layer LAYER_2BC7 +/* 0x2BC7 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x2BC9 [0x47 0x08 0x54 ] */ notedv PITCH_E1, 8, 84 +/* 0x2BCC [0xC2 0x30 ] */ transpose 48 +/* 0x2BCE [0x52 0x00 0x50 ] */ notedv PITCH_EF2, 0, 80 +/* 0x2BD1 [0xFF ] */ end + +.channel CHAN_2BD2 +/* 0x2BD2 [0x88 0x2B 0xD9 ] */ ldlayer 0, LAYER_2BD9 +/* 0x2BD5 [0x89 0x1F 0x7B ] */ ldlayer 1, LAYER_1F7B +/* 0x2BD8 [0xFF ] */ end + +.layer LAYER_2BD9 +/* 0x2BD9 [0xC2 0xF4 ] */ transpose -12 +/* 0x2BDB [0xFB 0x1F 0x6E ] */ jump LAYER_1F6E + +.channel CHAN_2BDE +/* 0x2BDE [0x89 0x1F 0x1C ] */ ldlayer 1, LAYER_1F1C +.channel CHAN_2BE1 +/* 0x2BE1 [0x88 0x2B 0xE5 ] */ ldlayer 0, LAYER_2BE5 +/* 0x2BE4 [0xFF ] */ end + +.layer LAYER_2BE5 +/* 0x2BE5 [0xC6 0x3F ] */ instr SF0_INST_63 +/* 0x2BE7 [0x5B 0x04 0x64 ] */ notedv PITCH_C3, 4, 100 +/* 0x2BEA [0x56 0x08 0x64 ] */ notedv PITCH_G2, 8, 100 +/* 0x2BED [0xFF ] */ end + +.channel CHAN_2BEE +/* 0x2BEE [0x88 0x05 0x61 ] */ ldlayer 0, LAYER_0561 +/* 0x2BF1 [0x89 0x29 0x58 ] */ ldlayer 1, LAYER_2958 +/* 0x2BF4 [0xFF ] */ end + +.channel CHAN_2BF5 +/* 0x2BF5 [0xED 0x0F ] */ gain 15 +/* 0x2BF7 [0x88 0x28 0x6B ] */ ldlayer 0, LAYER_286B +/* 0x2BFA [0x89 0x24 0xA5 ] */ ldlayer 1, LAYER_24A5 +/* 0x2BFD [0xFF ] */ end + +.channel CHAN_2BFE +/* 0x2BFE [0xCC 0x19 ] */ ldi 25 +/* 0x2C00 [0x71 ] */ stio IO_PORT_1 +/* 0x2C01 [0x88 0x2C 0x05 ] */ ldlayer 0, LAYER_2C05 +/* 0x2C04 [0xFF ] */ end + +.layer LAYER_2C05 +/* 0x2C05 [0xC6 0x3D ] */ instr SF0_INST_61 +/* 0x2C07 [0xC2 0x30 ] */ transpose 48 +/* 0x2C09 [0x62 0x00 0x46 ] */ notedv PITCH_G3, 0, 70 +/* 0x2C0C [0xFF ] */ end + +.channel CHAN_2C0D +/* 0x2C0D [0x88 0x13 0x7D ] */ ldlayer 0, LAYER_137D +/* 0x2C10 [0x89 0x13 0x61 ] */ ldlayer 1, LAYER_1361 +/* 0x2C13 [0x8A 0x29 0x9C ] */ ldlayer 2, LAYER_299C +/* 0x2C16 [0xFB 0x13 0x5C ] */ jump CHAN_135C + +.channel CHAN_2C19 +/* 0x2C19 [0x88 0x2C 0x20 ] */ ldlayer 0, LAYER_2C20 +/* 0x2C1C [0x89 0x2C 0x2A ] */ ldlayer 1, LAYER_2C2A +/* 0x2C1F [0xFF ] */ end + +.layer LAYER_2C20 +/* 0x2C20 [0xC6 0x3A ] */ instr SF0_INST_58 +/* 0x2C22 [0xC2 0x30 ] */ transpose 48 +/* 0x2C24 [0xCF 0xF1 ] */ releaserate 241 +/* 0x2C26 [0x5B 0x2B 0x64 ] */ notedv PITCH_C3, 43, 100 +/* 0x2C29 [0xFF ] */ end + +.layer LAYER_2C2A +/* 0x2C2A [0xC6 0x83 ] */ instr FONTANY_INSTR_SQUARE +/* 0x2C2C [0xCB 0x65 0xD8 0xFB ] */ env ENVELOPE_65D8, 251 +/* 0x2C30 [0xC7 0x81 0x0F 0xFF ] */ portamento 0x81, PITCH_C2, 255 +/* 0x2C34 [0x73 0x28 0x2D ] */ notedv PITCH_C5, 40, 45 +/* 0x2C37 [0xFF ] */ end + +.channel CHAN_2C38 +/* 0x2C38 [0x88 0x2C 0x47 ] */ ldlayer 0, LAYER_2C47 +/* 0x2C3B [0x89 0x2C 0x3F ] */ ldlayer 1, LAYER_2C3F +/* 0x2C3E [0xFF ] */ end + +.layer LAYER_2C3F +/* 0x2C3F [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x2C41 [0xCB 0x66 0x7C 0xF0 ] */ env ENVELOPE_667C, 240 +/* 0x2C45 [0xF4 0x07 ] */ rjump LAYER_2C4E + +.layer LAYER_2C47 +/* 0x2C47 [0xC6 0x0F ] */ instr SF0_INST_15 +/* 0x2C49 [0xC4 ] */ legato +/* 0x2C4A [0xC7 0x81 0x20 0xFF ] */ portamento 0x81, PITCH_F3, 255 +LAYER_2C4E: +/* 0x2C4E [0x4F 0x81 0x90 0x69 ] */ notedv PITCH_C2, 400, 105 +/* 0x2C52 [0xF4 0xFA ] */ rjump LAYER_2C4E + +.channel CHAN_2C54 +/* 0x2C54 [0x89 0x2C 0x62 ] */ ldlayer 1, LAYER_2C62 +/* 0x2C57 [0xCC 0x58 ] */ ldi (NOTEDV_OPCODE | PITCH_A2) +/* 0x2C59 [0xC7 0x00 0x22 0x88 ] */ stseq 0, CHAN_2287 + STSEQ_STSEQ_IMM +/* 0x2C5D [0xFB 0x22 0x67 ] */ jump CHAN_2267 + +.layer LAYER_2C60 +/* 0x2C60 [0xC2 0x06 ] */ transpose 6 +.layer LAYER_2C62 +/* 0x2C62 [0xC6 0x12 ] */ instr SF0_INST_18 +/* 0x2C64 [0xCB 0x66 0x7C 0xE6 ] */ env ENVELOPE_667C, 230 +/* 0x2C68 [0xC4 ] */ legato +/* 0x2C69 [0xC7 0x85 0x03 0xFF ] */ portamento 0x85, PITCH_C1, 255 +LAYER_2C6D: +/* 0x2C6D [0x47 0x55 0x50 ] */ notedv PITCH_E1, 85, 80 +/* 0x2C70 [0x43 0x20 0x50 ] */ notedv PITCH_C1, 32, 80 +/* 0x2C73 [0xF4 0xF8 ] */ rjump LAYER_2C6D + +.channel CHAN_2C75 +/* 0x2C75 [0xC1 0x3F ] */ instr SF0_INST_63 +/* 0x2C77 [0x88 0x2C 0x7E ] */ ldlayer 0, LAYER_2C7E +/* 0x2C7A [0x89 0x13 0xEE ] */ ldlayer 1, LAYER_13EE +/* 0x2C7D [0xFF ] */ end + +.layer LAYER_2C7E +/* 0x2C7E [0x61 0x0D 0x64 ] */ notedv PITCH_GF3, 13, 100 +/* 0x2C81 [0x58 0x00 0x48 ] */ notedv PITCH_A2, 0, 72 +/* 0x2C84 [0xFF ] */ end + +.channel CHAN_2C85 +/* 0x2C85 [0xCC 0x50 ] */ ldi 80 +/* 0x2C87 [0x71 ] */ stio IO_PORT_1 +/* 0x2C88 [0x88 0x2C 0x91 ] */ ldlayer 0, LAYER_2C91 +/* 0x2C8B [0x89 0x2C 0x8F ] */ ldlayer 1, LAYER_2C8F +/* 0x2C8E [0xFF ] */ end + +.layer LAYER_2C8F +/* 0x2C8F [0xC2 0xFF ] */ transpose -1 +.layer LAYER_2C91 +/* 0x2C91 [0xC0 0x30 ] */ ldelay 48 +/* 0x2C93 [0xC6 0x47 ] */ instr SF0_INST_71 +/* 0x2C95 [0x61 0x40 0x69 ] */ notedv PITCH_GF3, 64, 105 +/* 0x2C98 [0xFF ] */ end + +.channel CHAN_2C99 +/* 0x2C99 [0x88 0x2C 0x9D ] */ ldlayer 0, LAYER_2C9D +/* 0x2C9C [0xFF ] */ end + +.layer LAYER_2C9D +/* 0x2C9D [0xC6 0x51 ] */ instr SF0_INST_81 +/* 0x2C9F [0xCF 0xF0 ] */ releaserate 240 +/* 0x2CA1 [0xC7 0x83 0x08 0xFF ] */ portamento 0x83, PITCH_F1, 255 +/* 0x2CA5 [0x0F 0x80 0xA8 0x55 0x05] */ notedvg PITCH_C2, 168, 85, 5 +/* 0x2CAA [0x43 0x80 0x96 0x55 ] */ notedv PITCH_C1, 150, 85 +/* 0x2CAE [0xFF ] */ end + +.channel CHAN_2CAF +/* 0x2CAF [0xED 0x0A ] */ gain 10 +/* 0x2CB1 [0x88 0x1F 0x6E ] */ ldlayer 0, LAYER_1F6E +/* 0x2CB4 [0x89 0x1F 0x7B ] */ ldlayer 1, LAYER_1F7B +/* 0x2CB7 [0x8A 0x2B 0x31 ] */ ldlayer 2, LAYER_2B31 +/* 0x2CBA [0xFF ] */ end + +.channel CHAN_2CBB +/* 0x2CBB [0x88 0x2C 0xC8 ] */ ldlayer 0, LAYER_2CC8 +/* 0x2CBE [0x89 0x2C 0xC2 ] */ ldlayer 1, LAYER_2CC2 +/* 0x2CC1 [0xFF ] */ end + +.layer LAYER_2CC2 +/* 0x2CC2 [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x2CC4 [0xC2 0x0F ] */ transpose 15 +/* 0x2CC6 [0xF4 0x02 ] */ rjump LAYER_2CCA + +.layer LAYER_2CC8 +/* 0x2CC8 [0xC6 0x37 ] */ instr SF0_INST_55 +LAYER_2CCA: +/* 0x2CCA [0xC4 ] */ legato +/* 0x2CCB [0xCF 0xEB ] */ releaserate 235 +/* 0x2CCD [0xC7 0x81 0x16 0xAF ] */ portamento 0x81, PITCH_G2, 175 +LAYER_2CD1: +/* 0x2CD1 [0x5B 0x60 0x5F ] */ notedv PITCH_C3, 96, 95 +/* 0x2CD4 [0xF4 0xFB ] */ rjump LAYER_2CD1 + +.channel CHAN_2CD6 +/* 0x2CD6 [0x88 0x2C 0xDF ] */ ldlayer 0, LAYER_2CDF +/* 0x2CD9 [0x89 0x2C 0xDD ] */ ldlayer 1, LAYER_2CDD +/* 0x2CDC [0xFF ] */ end + +.layer LAYER_2CDD +/* 0x2CDD [0xC2 0xE8 ] */ transpose -24 +.layer LAYER_2CDF +/* 0x2CDF [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x2CE1 [0xCB 0x66 0x74 0xFB ] */ env ENVELOPE_6674, 251 +/* 0x2CE5 [0xC4 ] */ legato +/* 0x2CE6 [0xC7 0x01 0x24 0x7F ] */ portamento 0x01, PITCH_A3, 127 +LAYER_2CEA: +/* 0x2CEA [0x78 0xFF 0xBC 0x5F ] */ notedv PITCH_F5, 32700, 95 +/* 0x2CEE [0xF4 0xFA ] */ rjump LAYER_2CEA + +.channel CHAN_2CF0 +/* 0x2CF0 [0xFC 0x1B 0xF9 ] */ call CHAN_1BF9 +/* 0x2CF3 [0xFB 0x27 0x8C ] */ jump CHAN_278C + +.channel CHAN_2CF6 +/* 0x2CF6 [0xDC 0x30 ] */ panweight 48 +/* 0x2CF8 [0x8A 0x23 0x57 ] */ ldlayer 2, LAYER_2357 +/* 0x2CFB [0xFB 0x2C 0x54 ] */ jump CHAN_2C54 + +.channel CHAN_2CFE +/* 0x2CFE [0xFC 0x28 0x29 ] */ call CHAN_2829 +CHAN_2D01: +/* 0x2D01 [0x89 0x29 0x37 ] */ ldlayer 1, LAYER_2937 +/* 0x2D04 [0xCC 0x64 ] */ ldi 100 +/* 0x2D06 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x2D09 [0x8A 0x29 0x37 ] */ ldlayer 2, LAYER_2937 +/* 0x2D0C [0xCC 0x64 ] */ ldi 100 +/* 0x2D0E [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x2D11 [0xF4 0xEE ] */ rjump CHAN_2D01 + +.channel CHAN_2D13 +/* 0x2D13 [0x89 0x2D 0x25 ] */ ldlayer 1, LAYER_2D25 +/* 0x2D16 [0x8A 0x2D 0x23 ] */ ldlayer 2, LAYER_2D23 +/* 0x2D19 [0xCC 0x66 ] */ ldi (NOTEDV_OPCODE | PITCH_B3) +/* 0x2D1B [0xC7 0x00 0x22 0x88 ] */ stseq 0, CHAN_2287 + STSEQ_STSEQ_IMM +/* 0x2D1F [0xFB 0x22 0x67 ] */ jump CHAN_2267 +/* 0x2D22 [0xFF ] */ end + +.layer LAYER_2D23 +/* 0x2D23 [0xC2 0xF7 ] */ transpose -9 +.layer LAYER_2D25 +/* 0x2D25 [0xC4 ] */ legato +/* 0x2D26 [0xC6 0x3C ] */ instr SF0_INST_60 +/* 0x2D28 [0xCB 0x68 0x18 0xF1 ] */ env ENVELOPE_6818, 241 +/* 0x2D2C [0xC7 0x01 0x2C 0x7F ] */ portamento 0x01, PITCH_F4, 127 +LAYER_2D30: +/* 0x2D30 [0x72 0xFF 0xBC 0x50 ] */ notedv PITCH_B4, 32700, 80 +/* 0x2D34 [0xF4 0xFA ] */ rjump LAYER_2D30 + +.channel CHAN_2D36 +/* 0x2D36 [0x88 0x2D 0x3A ] */ ldlayer 0, LAYER_2D3A +/* 0x2D39 [0xFF ] */ end + +.layer LAYER_2D3A +/* 0x2D3A [0xC2 0x0C ] */ transpose 12 +/* 0x2D3C [0xC4 ] */ legato +/* 0x2D3D [0xC6 0x3C ] */ instr SF0_INST_60 +/* 0x2D3F [0xCB 0x66 0x94 0xDD ] */ env ENVELOPE_6694, 221 +/* 0x2D43 [0xC7 0x85 0x30 0xFF ] */ portamento 0x85, PITCH_A4, 255 +/* 0x2D47 [0x69 0x24 0x69 ] */ notedv PITCH_D4, 36, 105 +/* 0x2D4A [0x7A 0x64 0x69 ] */ notedv PITCH_G5, 100, 105 +/* 0x2D4D [0xFF ] */ end + +.channel CHAN_2D4E +/* 0x2D4E [0x88 0x2D 0x55 ] */ ldlayer 0, LAYER_2D55 +/* 0x2D51 [0x89 0x05 0x99 ] */ ldlayer 1, LAYER_0599 +/* 0x2D54 [0xFF ] */ end + +.layer LAYER_2D55 +/* 0x2D55 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x2D57 [0xCB 0x66 0x88 0xE6 ] */ env ENVELOPE_6688, 230 +/* 0x2D5B [0xC7 0x81 0x0A 0xFF ] */ portamento 0x81, PITCH_G1, 255 +/* 0x2D5F [0x70 0x46 0x5F ] */ notedv PITCH_A4, 70, 95 +/* 0x2D62 [0xFF ] */ end + +.channel CHAN_2D63 +/* 0x2D63 [0x88 0x2D 0x6E ] */ ldlayer 0, LAYER_2D6E +/* 0x2D66 [0x89 0x2D 0x6A ] */ ldlayer 1, LAYER_2D6A +/* 0x2D69 [0xFF ] */ end + +.layer LAYER_2D6A +/* 0x2D6A [0xC2 0x1B ] */ transpose 27 +/* 0x2D6C [0xF4 0x02 ] */ rjump LAYER_2D70 + +.layer LAYER_2D6E +/* 0x2D6E [0xC2 0x24 ] */ transpose 36 +LAYER_2D70: +/* 0x2D70 [0xC4 ] */ legato +/* 0x2D71 [0xC6 0x0F ] */ instr SF0_INST_15 +/* 0x2D73 [0xCB 0x66 0x74 0xC8 ] */ env ENVELOPE_6674, 200 +/* 0x2D77 [0xC7 0x85 0x38 0xFF ] */ portamento 0x85, PITCH_F5, 255 +LAYER_2D7B: +/* 0x2D7B [0x7E 0x81 0xF4 0x3A ] */ notedv PITCH_B5, 500, 58 +/* 0x2D7F [0x77 0x81 0x5E 0x3A ] */ notedv PITCH_E5, 350, 58 +/* 0x2D83 [0xF4 0xF6 ] */ rjump LAYER_2D7B + +.channel CHAN_2D85 +/* 0x2D85 [0x88 0x25 0x5B ] */ ldlayer 0, LAYER_255B +/* 0x2D88 [0x89 0x2D 0x8F ] */ ldlayer 1, LAYER_2D8F +/* 0x2D8B [0x8A 0x27 0x90 ] */ ldlayer 2, LAYER_2790 +/* 0x2D8E [0xFF ] */ end + +.layer LAYER_2D8F +/* 0x2D8F [0xC6 0x40 ] */ instr SF0_INST_64 +/* 0x2D91 [0xCB 0x66 0xFC 0xC3 ] */ env ENVELOPE_66FC, 195 +/* 0x2D95 [0xC7 0x81 0x00 0xFF ] */ portamento 0x81, PITCH_A0, 255 +/* 0x2D99 [0x54 0x7F 0x55 ] */ notedv PITCH_F2, 127, 85 +/* 0x2D9C [0xFF ] */ end + +.channel CHAN_2D9D +/* 0x2D9D [0xED 0x14 ] */ gain 20 +/* 0x2D9F [0x88 0x1A 0x36 ] */ ldlayer 0, LAYER_1A36 +/* 0x2DA2 [0x89 0x1F 0x6E ] */ ldlayer 1, LAYER_1F6E +/* 0x2DA5 [0x8A 0x1F 0x7B ] */ ldlayer 2, LAYER_1F7B +/* 0x2DA8 [0xFF ] */ end + +.channel CHAN_2DA9 +/* 0x2DA9 [0x88 0x1A 0xCE ] */ ldlayer 0, LAYER_1ACE +/* 0x2DAC [0xFF ] */ end + +.channel CHAN_2DAD +/* 0x2DAD [0x88 0x2D 0xB1 ] */ ldlayer 0, LAYER_2DB1 +/* 0x2DB0 [0xFF ] */ end + +.layer LAYER_2DB1 +/* 0x2DB1 [0xC6 0x3E ] */ instr SF0_INST_62 +/* 0x2DB3 [0x72 0x09 0x64 ] */ notedv PITCH_B4, 9, 100 +/* 0x2DB6 [0xC6 0x13 ] */ instr SF0_INST_19 +/* 0x2DB8 [0xCB 0x66 0x4C 0xF0 ] */ env ENVELOPE_664C, 240 +/* 0x2DBC [0x70 0x06 0x5A ] */ notedv PITCH_A4, 6, 90 +/* 0x2DBF [0x72 0x22 0x50 ] */ notedv PITCH_B4, 34, 80 +/* 0x2DC2 [0xFF ] */ end + +.channel CHAN_2DC3 +/* 0x2DC3 [0xC1 0x4E ] */ instr SF0_INST_78 +/* 0x2DC5 [0x88 0x2D 0xC9 ] */ ldlayer 0, LAYER_2DC9 +/* 0x2DC8 [0xFF ] */ end + +.layer LAYER_2DC9 +/* 0x2DC9 [0xC7 0x81 0x1B 0x7F ] */ portamento 0x81, PITCH_C3, 127 +/* 0x2DCD [0x60 0x64 0x64 ] */ notedv PITCH_F3, 100, 100 +/* 0x2DD0 [0xFF ] */ end + +.channel CHAN_2DD1 +/* 0x2DD1 [0x88 0x03 0xCC ] */ ldlayer 0, LAYER_03CC +/* 0x2DD4 [0x89 0x05 0x99 ] */ ldlayer 1, LAYER_0599 +/* 0x2DD7 [0xFF ] */ end + +.channel CHAN_2DD8 +/* 0x2DD8 [0x88 0x2D 0xDC ] */ ldlayer 0, LAYER_2DDC +/* 0x2DDB [0xFF ] */ end + +.layer LAYER_2DDC +/* 0x2DDC [0xC6 0x48 ] */ instr SF0_INST_72 +/* 0x2DDE [0xCF 0xC8 ] */ releaserate 200 +/* 0x2DE0 [0x62 0x40 0x37 ] */ notedv PITCH_G3, 64, 55 +/* 0x2DE3 [0xFF ] */ end + +.channel CHAN_2DE4 +/* 0x2DE4 [0xC1 0x4F ] */ instr SF0_INST_79 +/* 0x2DE6 [0xDA 0x65 0xD8 ] */ env ENVELOPE_65D8 +/* 0x2DE9 [0x88 0x2D 0xF0 ] */ ldlayer 0, LAYER_2DF0 +/* 0x2DEC [0x89 0x2D 0xF6 ] */ ldlayer 1, LAYER_2DF6 +/* 0x2DEF [0xFF ] */ end + +.layer LAYER_2DF0 +/* 0x2DF0 [0xC2 0x30 ] */ transpose 48 +/* 0x2DF2 [0x67 0x48 0x5E ] */ notedv PITCH_C4, 72, 94 +/* 0x2DF5 [0xFF ] */ end + +.layer LAYER_2DF6 +/* 0x2DF6 [0xC2 0x30 ] */ transpose 48 +/* 0x2DF8 [0x72 0x48 0x70 ] */ notedv PITCH_B4, 72, 112 +/* 0x2DFB [0xFF ] */ end + +.channel CHAN_2DFC +/* 0x2DFC [0x88 0x2E 0x00 ] */ ldlayer 0, LAYER_2E00 +/* 0x2DFF [0xFF ] */ end + +.layer LAYER_2E00 +/* 0x2E00 [0xC6 0x85 ] */ instr FONTANY_INSTR_BELL +/* 0x2E02 [0xCB 0x66 0x10 0xFB ] */ env ENVELOPE_6610, 251 +/* 0x2E06 [0xC7 0x83 0x00 0xFF ] */ portamento 0x83, PITCH_A0, 255 +/* 0x2E0A [0x57 0x2C 0x3C ] */ notedv PITCH_AF2, 44, 60 +/* 0x2E0D [0x5D 0x2C 0x3C ] */ notedv PITCH_D3, 44, 60 +/* 0x2E10 [0x62 0x2C 0x3C ] */ notedv PITCH_G3, 44, 60 +/* 0x2E13 [0xFF ] */ end + +.channel CHAN_2E14 +/* 0x2E14 [0xDC 0x30 ] */ panweight 48 +/* 0x2E16 [0x88 0x23 0xC9 ] */ ldlayer 0, LAYER_23C9 +/* 0x2E19 [0x89 0x23 0xB7 ] */ ldlayer 1, LAYER_23B7 +/* 0x2E1C [0xFF ] */ end + +.channel CHAN_2E1D +/* 0x2E1D [0x88 0x2E 0x21 ] */ ldlayer 0, LAYER_2E21 +/* 0x2E20 [0xFF ] */ end + +.layer LAYER_2E21 +/* 0x2E21 [0xC6 0x36 ] */ instr SF0_INST_54 +/* 0x2E23 [0xC2 0x30 ] */ transpose 48 +/* 0x2E25 [0x5B 0x00 0x6E ] */ notedv PITCH_C3, 0, 110 +/* 0x2E28 [0xFF ] */ end + +.channel CHAN_2E29 +/* 0x2E29 [0xFC 0x1A 0x25 ] */ call CHAN_1A25 +/* 0x2E2C [0x8A 0x1A 0x30 ] */ ldlayer 2, LAYER_1A30 +/* 0x2E2F [0xFF ] */ end + +.channel CHAN_2E30 +/* 0x2E30 [0x88 0x1A 0x36 ] */ ldlayer 0, LAYER_1A36 +/* 0x2E33 [0x89 0x29 0x9A ] */ ldlayer 1, LAYER_299A +/* 0x2E36 [0xFF ] */ end + +.channel CHAN_2E37 +/* 0x2E37 [0x88 0x29 0xAD ] */ ldlayer 0, LAYER_29AD +/* 0x2E3A [0x89 0x29 0xAF ] */ ldlayer 1, LAYER_29AF +/* 0x2E3D [0xFF ] */ end + +.channel CHAN_2E3E +/* 0x2E3E [0x88 0x2E 0x45 ] */ ldlayer 0, LAYER_2E45 +/* 0x2E41 [0x89 0x26 0xFA ] */ ldlayer 1, LAYER_26FA +/* 0x2E44 [0xFF ] */ end + +.layer LAYER_2E45 +/* 0x2E45 [0xC6 0x1D ] */ instr SF0_INST_29 +/* 0x2E47 [0xC7 0x81 0x18 0x40 ] */ portamento 0x81, PITCH_A2, 64 +/* 0x2E4B [0x56 0x7F 0x55 ] */ notedv PITCH_G2, 127, 85 +/* 0x2E4E [0xFF ] */ end + +.channel CHAN_2E4F +/* 0x2E4F [0xC1 0x4F ] */ instr SF0_INST_79 +/* 0x2E51 [0x88 0x2E 0x55 ] */ ldlayer 0, LAYER_2E55 +/* 0x2E54 [0xFF ] */ end + +.layer LAYER_2E55 +/* 0x2E55 [0xC2 0x30 ] */ transpose 48 +/* 0x2E57 [0x64 0x0A 0x5E ] */ notedv PITCH_A3, 10, 94 +/* 0x2E5A [0xFF ] */ end + +.channel CHAN_2E5B +/* 0x2E5B [0xCC 0x82 ] */ ldi 130 +/* 0x2E5D [0xFB 0x27 0xB2 ] */ jump CHAN_27B2 + +.channel CHAN_2E60 +/* 0x2E60 [0xCC 0x20 ] */ ldi 32 +/* 0x2E62 [0x71 ] */ stio IO_PORT_1 +/* 0x2E63 [0x88 0x2E 0x67 ] */ ldlayer 0, LAYER_2E67 +/* 0x2E66 [0xFF ] */ end + +.layer LAYER_2E67 +/* 0x2E67 [0xC6 0x47 ] */ instr SF0_INST_71 +LAYER_2E69: +/* 0x2E69 [0x42 0x00 0x46 ] */ notedv PITCH_B0, 0, 70 +/* 0x2E6C [0xF4 0xFB ] */ rjump LAYER_2E69 + +.channel CHAN_2E6E +/* 0x2E6E [0xCC 0x20 ] */ ldi 32 +/* 0x2E70 [0x71 ] */ stio IO_PORT_1 +/* 0x2E71 [0x88 0x2E 0x75 ] */ ldlayer 0, LAYER_2E75 +/* 0x2E74 [0xFF ] */ end + +.layer LAYER_2E75 +/* 0x2E75 [0xC6 0x3C ] */ instr SF0_INST_60 +/* 0x2E77 [0xCB 0x67 0x10 0xFB ] */ env ENVELOPE_6710, 251 +/* 0x2E7B [0xC4 ] */ legato +/* 0x2E7C [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +LAYER_2E80: +/* 0x2E80 [0x5B 0x80 0xFA 0x6E ] */ notedv PITCH_C3, 250, 110 +/* 0x2E84 [0xF4 0xFA ] */ rjump LAYER_2E80 + +.channel CHAN_2E86 +/* 0x2E86 [0x88 0x2E 0x8A ] */ ldlayer 0, LAYER_2E8A +/* 0x2E89 [0xFF ] */ end + +.layer LAYER_2E8A +/* 0x2E8A [0xC6 0x51 ] */ instr SF0_INST_81 +/* 0x2E8C [0xC2 0x30 ] */ transpose 48 +/* 0x2E8E [0x67 0x00 0x64 ] */ notedv PITCH_C4, 0, 100 +/* 0x2E91 [0xFF ] */ end + +.channel CHAN_2E92 +/* 0x2E92 [0xC1 0x44 ] */ instr SF0_INST_68 +/* 0x2E94 [0xED 0x0F ] */ gain 15 +/* 0x2E96 [0x89 0x29 0x0F ] */ ldlayer 1, LAYER_290F +/* 0x2E99 [0x88 0x2E 0xA0 ] */ ldlayer 0, LAYER_2EA0 +/* 0x2E9C [0x8A 0x2E 0xAF ] */ ldlayer 2, LAYER_2EAF +/* 0x2E9F [0xFF ] */ end + +.layer LAYER_2EA0 +/* 0x2EA0 [0xC6 0x40 ] */ instr SF0_INST_64 +/* 0x2EA2 [0xCB 0x67 0xE4 0xC8 ] */ env ENVELOPE_67E4, 200 +/* 0x2EA6 [0xC7 0x81 0x32 0xB4 ] */ portamento 0x81, PITCH_B4, 180 +/* 0x2EAA [0x73 0x80 0xC8 0x6E ] */ notedv PITCH_C5, 200, 110 +/* 0x2EAE [0xFF ] */ end + +.layer LAYER_2EAF +/* 0x2EAF [0xCF 0xC8 ] */ releaserate 200 +/* 0x2EB1 [0x67 0x80 0xC8 0x73 ] */ notedv PITCH_C4, 200, 115 +/* 0x2EB5 [0xFF ] */ end + +.channel CHAN_2EB6 +/* 0x2EB6 [0xC1 0x7F ] */ instr FONTANY_INSTR_DRUM +/* 0x2EB8 [0xDC 0x00 ] */ panweight 0 +/* 0x2EBA [0x88 0x2E 0xC1 ] */ ldlayer 0, LAYER_2EC1 +/* 0x2EBD [0x89 0x2E 0xC8 ] */ ldlayer 1, LAYER_2EC8 +/* 0x2EC0 [0xFF ] */ end + +.layer LAYER_2EC1 +/* 0x2EC1 [0xC4 ] */ legato +LAYER_2EC2: +/* 0x2EC2 [0x43 0xFF 0xBC 0x50 ] */ notedv PITCH_C1, 32700, 80 +/* 0x2EC6 [0xF4 0xFA ] */ rjump LAYER_2EC2 + +.layer LAYER_2EC8 +/* 0x2EC8 [0xC4 ] */ legato +LAYER_2EC9: +/* 0x2EC9 [0x42 0xFF 0xBC 0x50 ] */ notedv PITCH_B0, 32700, 80 +/* 0x2ECD [0xF4 0xFA ] */ rjump LAYER_2EC9 + +.channel CHAN_2ECF +/* 0x2ECF [0x88 0x2E 0xD3 ] */ ldlayer 0, LAYER_2ED3 +/* 0x2ED2 [0xFF ] */ end + +.layer LAYER_2ED3 +/* 0x2ED3 [0xC6 0x36 ] */ instr SF0_INST_54 +/* 0x2ED5 [0xC2 0x30 ] */ transpose 48 +/* 0x2ED7 [0x69 0x00 0x6E ] */ notedv PITCH_D4, 0, 110 +/* 0x2EDA [0xFF ] */ end + +.channel CHAN_2EDB +/* 0x2EDB [0x88 0x2E 0xDF ] */ ldlayer 0, LAYER_2EDF +/* 0x2EDE [0xFF ] */ end + +.layer LAYER_2EDF +/* 0x2EDF [0xC6 0x36 ] */ instr SF0_INST_54 +/* 0x2EE1 [0xC2 0x30 ] */ transpose 48 +/* 0x2EE3 [0x62 0x00 0x6E ] */ notedv PITCH_G3, 0, 110 +/* 0x2EE6 [0xFF ] */ end + +.channel CHAN_2EE7 +/* 0x2EE7 [0x88 0x23 0xC5 ] */ ldlayer 0, LAYER_23C5 +/* 0x2EEA [0x89 0x23 0xAD ] */ ldlayer 1, LAYER_23AD +/* 0x2EED [0xFF ] */ end + +.channel CHAN_2EEE +/* 0x2EEE [0xED 0x0A ] */ gain 10 +/* 0x2EF0 [0x88 0x2E 0xFA ] */ ldlayer 0, LAYER_2EFA +/* 0x2EF3 [0x89 0x2F 0x0A ] */ ldlayer 1, LAYER_2F0A +/* 0x2EF6 [0x8A 0x1F 0x41 ] */ ldlayer 2, LAYER_1F41 +/* 0x2EF9 [0xFF ] */ end + +.layer LAYER_2EFA +/* 0x2EFA [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x2EFC [0xCF 0xDD ] */ releaserate 221 +/* 0x2EFE [0x67 0x0C 0x52 ] */ notedv PITCH_C4, 12, 82 +/* 0x2F01 [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x2F05 [0x54 0x80 0x91 0x69 ] */ notedv PITCH_F2, 145, 105 +/* 0x2F09 [0xFF ] */ end + +.layer LAYER_2F0A +/* 0x2F0A [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x2F0C [0xCF 0xDD ] */ releaserate 221 +/* 0x2F0E [0x73 0x0C 0x52 ] */ notedv PITCH_C5, 12, 82 +/* 0x2F11 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x2F15 [0x60 0x80 0x91 0x69 ] */ notedv PITCH_F3, 145, 105 +/* 0x2F19 [0xFF ] */ end + +.channel CHAN_2F1A +/* 0x2F1A [0xC1 0x49 ] */ instr SF0_INST_73 +/* 0x2F1C [0x88 0x2F 0x20 ] */ ldlayer 0, LAYER_2F20 +/* 0x2F1F [0xFF ] */ end + +.layer LAYER_2F20 +/* 0x2F20 [0xC2 0x30 ] */ transpose 48 +/* 0x2F22 [0x67 0x00 0x64 ] */ notedv PITCH_C4, 0, 100 +/* 0x2F25 [0xFF ] */ end + +.channel CHAN_2F26 +/* 0x2F26 [0x88 0x2F 0x2D ] */ ldlayer 0, LAYER_2F2D +/* 0x2F29 [0x89 0x2F 0x38 ] */ ldlayer 1, LAYER_2F38 +/* 0x2F2C [0xFF ] */ end + +.layer LAYER_2F2D +/* 0x2F2D [0xC6 0x36 ] */ instr SF0_INST_54 +/* 0x2F2F [0xC2 0x30 ] */ transpose 48 +/* 0x2F31 [0x7A 0x0D 0x42 ] */ notedv PITCH_G5, 13, 66 +/* 0x2F34 [0x75 0x1A 0x42 ] */ notedv PITCH_D5, 26, 66 +/* 0x2F37 [0xFF ] */ end + +.layer LAYER_2F38 +/* 0x2F38 [0xC6 0x46 ] */ instr SF0_INST_70 +/* 0x2F3A [0xC2 0x30 ] */ transpose 48 +/* 0x2F3C [0x64 0x00 0x44 ] */ notedv PITCH_A3, 0, 68 +/* 0x2F3F [0x67 0x00 0x44 ] */ notedv PITCH_C4, 0, 68 +/* 0x2F42 [0xFF ] */ end + +.channel CHAN_2F43 +/* 0x2F43 [0x8B 0x1E 0x0A ] */ ldlayer 3, LAYER_1E0A +/* 0x2F46 [0xFC 0x2D 0x9D ] */ call CHAN_2D9D +/* 0x2F49 [0xFF ] */ end + +.channel CHAN_2F4A +/* 0x2F4A [0x88 0x2F 0x4E ] */ ldlayer 0, LAYER_2F4E +/* 0x2F4D [0xFF ] */ end + +.layer LAYER_2F4E +/* 0x2F4E [0xC6 0x3A ] */ instr SF0_INST_58 +/* 0x2F50 [0xC2 0x30 ] */ transpose 48 +/* 0x2F52 [0x60 0x08 0x55 ] */ notedv PITCH_F3, 8, 85 +/* 0x2F55 [0x5D 0x08 0x55 ] */ notedv PITCH_D3, 8, 85 +/* 0x2F58 [0xC7 0x81 0x1B 0x7F ] */ portamento 0x81, PITCH_C3, 127 +/* 0x2F5C [0x64 0x18 0x55 ] */ notedv PITCH_A3, 24, 85 +/* 0x2F5F [0xFF ] */ end + +.channel CHAN_2F60 +/* 0x2F60 [0x88 0x2F 0x64 ] */ ldlayer 0, LAYER_2F64 +/* 0x2F63 [0xFF ] */ end + +.layer LAYER_2F64 +/* 0x2F64 [0xC6 0x3A ] */ instr SF0_INST_58 +/* 0x2F66 [0xC2 0x30 ] */ transpose 48 +/* 0x2F68 [0x60 0x08 0x55 ] */ notedv PITCH_F3, 8, 85 +/* 0x2F6B [0x64 0x08 0x55 ] */ notedv PITCH_A3, 8, 85 +/* 0x2F6E [0xC7 0x81 0x22 0x7F ] */ portamento 0x81, PITCH_G3, 127 +/* 0x2F72 [0x5B 0x18 0x55 ] */ notedv PITCH_C3, 24, 85 +/* 0x2F75 [0xFF ] */ end + +.channel CHAN_2F76 +/* 0x2F76 [0xC1 0x49 ] */ instr SF0_INST_73 +/* 0x2F78 [0xD9 0xB4 ] */ releaserate 180 +/* 0x2F7A [0xCC 0x14 ] */ ldi 20 +/* 0x2F7C [0x71 ] */ stio IO_PORT_1 +CHAN_2F7D: +/* 0x2F7D [0x88 0x2F 0xB2 ] */ ldlayer 0, LAYER_2FB2 +/* 0x2F80 [0xCC 0xFF ] */ ldi 255 +/* 0x2F82 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x2F85 [0xB8 0x02 ] */ rand 2 +/* 0x2F87 [0xC7 0x2F 0x2F 0xAC ] */ stseq 47, LAYER_2FAB + STSEQ_TRANSPOSITION +/* 0x2F8B [0xBD 0x00 0x6A 0x00 0x96] */ randptr 106, 150 +/* 0x2F90 [0xCF 0x2F 0xB6 ] */ stptrtoseq UNK_2FB6 +/* 0x2F93 [0xCC 0x01 ] */ ldi 1 +/* 0x2F95 [0xCB 0x2F 0xB6 ] */ ldseq UNK_2FB6 +/* 0x2F98 [0xC7 0x00 0x2F 0xA0 ] */ stseq 0, CHAN_2F9F + STSEQ_LDI_IMM +/* 0x2F9C [0x88 0x2F 0xAB ] */ ldlayer 0, LAYER_2FAB +CHAN_2F9F: +/* 0x2F9F [0xCC 0x01 ] */ ldi 1 +/* 0x2FA1 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x2FA4 [0xCC 0xFF ] */ ldi 255 +/* 0x2FA6 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x2FA9 [0xF4 0xD2 ] */ rjump CHAN_2F7D + +.layer LAYER_2FAB +/* 0x2FAB [0xC2 0x30 ] */ transpose 48 +/* 0x2FAD [0x67 0x80 0x93 0x3C ] */ notedv PITCH_C4, 147, 60 +/* 0x2FB1 [0xFF ] */ end + +.layer LAYER_2FB2 +/* 0x2FB2 [0xC0 0xFD 0x00 ] */ ldelay 32000 +/* 0x2FB5 [0xFF ] */ end + +UNK_2FB6: + .half 0x0000 + +.channel CHAN_2FB8 +/* 0x2FB8 [0x88 0x2F 0xBF ] */ ldlayer 0, LAYER_2FBF +/* 0x2FBB [0x89 0x2B 0xC7 ] */ ldlayer 1, LAYER_2BC7 +/* 0x2FBE [0xFF ] */ end + +.layer LAYER_2FBF +/* 0x2FBF [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x2FC1 [0x53 0x00 0x54 ] */ notedv PITCH_E2, 0, 84 +/* 0x2FC4 [0xFF ] */ end + +.channel CHAN_2FC5 +/* 0x2FC5 [0x88 0x2F 0xCC ] */ ldlayer 0, LAYER_2FCC +/* 0x2FC8 [0x89 0x2F 0xDC ] */ ldlayer 1, LAYER_2FDC +/* 0x2FCB [0xFF ] */ end + +.layer LAYER_2FCC +/* 0x2FCC [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x2FCE [0xC2 0x30 ] */ transpose 48 +/* 0x2FD0 [0xCB 0x66 0x38 0xFB ] */ env ENVELOPE_6638, 251 +/* 0x2FD4 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x2FD8 [0x73 0x64 0x50 ] */ notedv PITCH_C5, 100, 80 +/* 0x2FDB [0xFF ] */ end + +.layer LAYER_2FDC +/* 0x2FDC [0xC6 0x45 ] */ instr SF0_INST_69 +/* 0x2FDE [0xCB 0x66 0x38 0xFB ] */ env ENVELOPE_6638, 251 +/* 0x2FE2 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x2FE6 [0x73 0x64 0x50 ] */ notedv PITCH_C5, 100, 80 +/* 0x2FE9 [0xFF ] */ end + +.channel CHAN_2FEA +/* 0x2FEA [0x88 0x2F 0xEE ] */ ldlayer 0, LAYER_2FEE +/* 0x2FED [0xFF ] */ end + +.layer LAYER_2FEE +/* 0x2FEE [0xC6 0x85 ] */ instr FONTANY_INSTR_BELL +/* 0x2FF0 [0xCB 0x66 0x10 0xFB ] */ env ENVELOPE_6610, 251 +/* 0x2FF4 [0xC7 0x83 0x00 0xFF ] */ portamento 0x83, PITCH_A0, 255 +/* 0x2FF8 [0x63 0x3C 0x3C ] */ notedv PITCH_AF3, 60, 60 +/* 0x2FFB [0xFF ] */ end + +.channel CHAN_2FFC +/* 0x2FFC [0x88 0x1F 0x03 ] */ ldlayer 0, LAYER_1F03 +/* 0x2FFF [0xFB 0x1A 0x2C ] */ jump CHAN_1A2C + +.channel CHAN_3002 +/* 0x3002 [0x88 0x30 0x06 ] */ ldlayer 0, LAYER_3006 +/* 0x3005 [0xFF ] */ end + +.layer LAYER_3006 +/* 0x3006 [0xC6 0x39 ] */ instr SF0_INST_57 +/* 0x3008 [0xC4 ] */ legato +LAYER_3009: +/* 0x3009 [0x5C 0xFF 0xBC 0x50 ] */ notedv PITCH_DF3, 32700, 80 +/* 0x300D [0xF4 0xFA ] */ rjump LAYER_3009 + +.channel CHAN_300F +/* 0x300F [0x88 0x30 0x16 ] */ ldlayer 0, LAYER_3016 +/* 0x3012 [0x89 0x30 0x29 ] */ ldlayer 1, LAYER_3029 +/* 0x3015 [0xFF ] */ end + +.layer LAYER_3016 +/* 0x3016 [0xC6 0x34 ] */ instr SF0_INST_52 +/* 0x3018 [0xCB 0x66 0x74 0xFB ] */ env ENVELOPE_6674, 251 +/* 0x301C [0xC4 ] */ legato +/* 0x301D [0xC7 0x85 0x0F 0xFF ] */ portamento 0x85, PITCH_C2, 255 +LAYER_3021: +/* 0x3021 [0x5B 0x64 0x37 ] */ notedv PITCH_C3, 100, 55 +/* 0x3024 [0x4F 0x64 0x37 ] */ notedv PITCH_C2, 100, 55 +/* 0x3027 [0xF4 0xF8 ] */ rjump LAYER_3021 + +.layer LAYER_3029 +/* 0x3029 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x302B [0xCB 0x66 0x74 0xFB ] */ env ENVELOPE_6674, 251 +/* 0x302F [0xC4 ] */ legato +/* 0x3030 [0xC7 0x85 0x1B 0xFF ] */ portamento 0x85, PITCH_C3, 255 +LAYER_3034: +/* 0x3034 [0x67 0x32 0x41 ] */ notedv PITCH_C4, 50, 65 +/* 0x3037 [0x5B 0x32 0x41 ] */ notedv PITCH_C3, 50, 65 +/* 0x303A [0xF4 0xF8 ] */ rjump LAYER_3034 + +.channel CHAN_303C +/* 0x303C [0x88 0x30 0x46 ] */ ldlayer 0, LAYER_3046 +/* 0x303F [0x89 0x30 0x59 ] */ ldlayer 1, LAYER_3059 +/* 0x3042 [0x8A 0x30 0x6C ] */ ldlayer 2, LAYER_306C +/* 0x3045 [0xFF ] */ end + +.layer LAYER_3046 +/* 0x3046 [0xC6 0x82 ] */ instr FONTANY_INSTR_SINE +/* 0x3048 [0xCB 0x66 0x74 0xFB ] */ env ENVELOPE_6674, 251 +/* 0x304C [0xC4 ] */ legato +/* 0x304D [0xC7 0x85 0x03 0xFF ] */ portamento 0x85, PITCH_C1, 255 +LAYER_3051: +/* 0x3051 [0x4A 0x2D 0x28 ] */ notedv PITCH_G1, 45, 40 +/* 0x3054 [0x43 0x2D 0x28 ] */ notedv PITCH_C1, 45, 40 +/* 0x3057 [0xF4 0xF8 ] */ rjump LAYER_3051 + +.layer LAYER_3059 +/* 0x3059 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x305B [0xCB 0x66 0x74 0xFB ] */ env ENVELOPE_6674, 251 +/* 0x305F [0xC4 ] */ legato +/* 0x3060 [0xC7 0x85 0x22 0xFF ] */ portamento 0x85, PITCH_G3, 255 +LAYER_3064: +/* 0x3064 [0x6E 0x5A 0x41 ] */ notedv PITCH_G4, 90, 65 +/* 0x3067 [0x62 0x5A 0x41 ] */ notedv PITCH_G3, 90, 65 +/* 0x306A [0xF4 0xF8 ] */ rjump LAYER_3064 + +.layer LAYER_306C +/* 0x306C [0xC6 0x34 ] */ instr SF0_INST_52 +/* 0x306E [0xCB 0x66 0x74 0xFB ] */ env ENVELOPE_6674, 251 +/* 0x3072 [0xC4 ] */ legato +/* 0x3073 [0xC7 0x85 0x07 0xFF ] */ portamento 0x85, PITCH_E1, 255 +LAYER_3077: +/* 0x3077 [0x53 0x80 0xB4 0x37 ] */ notedv PITCH_E2, 180, 55 +/* 0x307B [0x47 0x80 0xB4 0x37 ] */ notedv PITCH_E1, 180, 55 +/* 0x307F [0xF4 0xF6 ] */ rjump LAYER_3077 + +.channel CHAN_3081 +/* 0x3081 [0x88 0x30 0x85 ] */ ldlayer 0, LAYER_3085 +/* 0x3084 [0xFF ] */ end + +.layer LAYER_3085 +/* 0x3085 [0xC6 0x00 ] */ instr SF0_INST_0 +/* 0x3087 [0xC7 0x81 0x2B 0xFF ] */ portamento 0x81, PITCH_E4, 255 +/* 0x308B [0x53 0x0E 0x3C ] */ notedv PITCH_E2, 14, 60 +/* 0x308E [0xFF ] */ end + +.channel CHAN_308F +/* 0x308F [0x88 0x30 0xA0 ] */ ldlayer 0, LAYER_30A0 +/* 0x3092 [0x89 0x30 0x96 ] */ ldlayer 1, LAYER_3096 +/* 0x3095 [0xFF ] */ end + +.layer LAYER_3096 +/* 0x3096 [0xC6 0x00 ] */ instr SF0_INST_0 +/* 0x3098 [0xC7 0x81 0x20 0x7F ] */ portamento 0x81, PITCH_F3, 127 +/* 0x309C [0x60 0x0A 0x4C ] */ notedv PITCH_F3, 10, 76 +/* 0x309F [0xFF ] */ end + +.layer LAYER_30A0 +/* 0x30A0 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x30A2 [0x6C 0x06 0x30 ] */ notedv PITCH_F4, 6, 48 +/* 0x30A5 [0xC6 0x17 ] */ instr SF0_INST_23 +/* 0x30A7 [0x67 0x0A 0x30 ] */ notedv PITCH_C4, 10, 48 +/* 0x30AA [0xFF ] */ end + +.channel CHAN_30AB +/* 0x30AB [0x88 0x30 0xAF ] */ ldlayer 0, LAYER_30AF +/* 0x30AE [0xFF ] */ end + +.layer LAYER_30AF +/* 0x30AF [0xC6 0x41 ] */ instr SF0_INST_65 +/* 0x30B1 [0xCF 0xF1 ] */ releaserate 241 +/* 0x30B3 [0x6D 0x06 0x4B ] */ notedv PITCH_GF4, 6, 75 +/* 0x30B6 [0x60 0x64 0x4B ] */ notedv PITCH_F3, 100, 75 +/* 0x30B9 [0xFF ] */ end + +.filter FILTER_30C0 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.filter FILTER_30D0 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.filter FILTER_30E0 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.channel enemybank_handler_1 +/* 0x30F0 [0xB0 0x56 0xC0 ] */ ldfilter FILTER_56C0 +/* 0x30F3 [0xF4 0x08 ] */ rjump CHAN_30FD + +.channel enemybank_handler_2 +/* 0x30F5 [0xB0 0x56 0xD0 ] */ ldfilter FILTER_56D0 +/* 0x30F8 [0xF4 0x03 ] */ rjump CHAN_30FD + +.channel enemybank_handler_3 +/* 0x30FA [0xB0 0x56 0xE0 ] */ ldfilter FILTER_56E0 +CHAN_30FD: +/* 0x30FD [0xFC 0x00 0x72 ] */ call CHAN_0072 +/* 0x3100 [0xC6 0x01 ] */ font Soundfont_1_ID +/* 0x3102 [0xB3 0x00 ] */ filter 0, 0 +CHAN_3104: +/* 0x3104 [0xFE ] */ delay1 +/* 0x3105 [0x60 ] */ ldio IO_PORT_0 +/* 0x3106 [0xC8 0x01 ] */ sub 1 +/* 0x3108 [0xFA 0x31 0x0E ] */ beqz CHAN_310E +/* 0x310B [0xFB 0x31 0x04 ] */ jump CHAN_3104 + +CHAN_310E: +/* 0x310E [0xFC 0x00 0x7C ] */ call CHAN_007C +/* 0x3111 [0x92 ] */ dellayer 2 +/* 0x3112 [0x93 ] */ dellayer 3 +/* 0x3113 [0xD8 0x00 ] */ vibdepth 0 +/* 0x3115 [0xED 0x00 ] */ gain 0 +/* 0x3117 [0xDC 0x7F ] */ panweight 127 +/* 0x3119 [0x65 ] */ ldio IO_PORT_SFX_INDEX_HIBITS +/* 0x311A [0xC8 0x01 ] */ sub 1 +/* 0x311C [0xF3 0x0B ] */ rbeqz CHAN_3129 +/* 0x311E [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x311F [0xF5 0x31 0x37 ] */ bgez CHAN_3137 +/* 0x3122 [0xC9 0x7F ] */ and 127 +/* 0x3124 [0xC2 0x32 0x5E ] */ dyntbl enemybank_table + 2 * 1 * 128 +/* 0x3127 [0xF4 0x11 ] */ rjump CHAN_313A + +CHAN_3129: +/* 0x3129 [0xC2 0x33 0x5E ] */ dyntbl enemybank_table + 2 * 2 * 128 +/* 0x312C [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x312D [0xF5 0x31 0x3A ] */ bgez CHAN_313A +/* 0x3130 [0xC9 0x7F ] */ and 127 +/* 0x3132 [0xC2 0x34 0x5E ] */ dyntbl enemybank_table + 2 * 3 * 128 +/* 0x3135 [0xF4 0x03 ] */ rjump CHAN_313A + +CHAN_3137: +/* 0x3137 [0xC2 0x31 0x5E ] */ dyntbl enemybank_table + 2 * 0 * 128 +CHAN_313A: +/* 0x313A [0xDA 0x6A 0x7C ] */ env ENVELOPE_6A7C +/* 0x313D [0xD9 0xFB ] */ releaserate 251 +/* 0x313F [0xE4 ] */ dyncall +CHAN_3140: +/* 0x3140 [0x63 ] */ ldio IO_PORT_3 +/* 0x3141 [0xC7 0x00 0x31 0x46 ] */ stseq 0, STSEQ_HERE + STSEQ_FILTER_IDX +/* 0x3145 [0xB3 0x0F ] */ filter 0, 15 +/* 0x3147 [0xFC 0x00 0x84 ] */ call CHAN_0084 +/* 0x314A [0xFE ] */ delay1 +/* 0x314B [0x60 ] */ ldio IO_PORT_0 +/* 0x314C [0xF3 0x0A ] */ rbeqz CHAN_3158 +/* 0x314E [0xF2 0x02 ] */ rbltz CHAN_3152 +/* 0x3150 [0xF4 0xBC ] */ rjump CHAN_310E + +CHAN_3152: +/* 0x3152 [0x80 ] */ testlayer 0 +/* 0x3153 [0xF3 0xEB ] */ rbeqz CHAN_3140 +/* 0x3155 [0xCC 0xFF ] */ ldi 255 +/* 0x3157 [0x71 ] */ stio IO_PORT_1 +CHAN_3158: +/* 0x3158 [0x90 ] */ dellayer 0 +/* 0x3159 [0x91 ] */ dellayer 1 +/* 0x315A [0x92 ] */ dellayer 2 +/* 0x315B [0x93 ] */ dellayer 3 +/* 0x315C [0xF4 0xA6 ] */ rjump CHAN_3104 + +#define DEFINE_SFX(lblName, sfxId, priority, decay, rand, flags) \ + entry lblName + +.table enemybank_table + #include "enemybank_table.h" + +#undef DEFINE_SFX + +.channel CHAN_3544 +/* 0x3544 [0xC1 0x00 ] */ instr SF1_INST_0 +/* 0x3546 [0xDA 0x68 0xDC ] */ env ENVELOPE_68DC +/* 0x3549 [0x88 0x35 0x4D ] */ ldlayer 0, LAYER_354D +/* 0x354C [0xFF ] */ end + +.layer LAYER_354D +/* 0x354D [0xC7 0x81 0x22 0x50 ] */ portamento 0x81, PITCH_G3, 80 +/* 0x3551 [0x5B 0x1E 0x64 ] */ notedv PITCH_C3, 30, 100 +/* 0x3554 [0xFF ] */ end + +.channel CHAN_3555 +/* 0x3555 [0x88 0x35 0x59 ] */ ldlayer 0, LAYER_3559 +/* 0x3558 [0xFF ] */ end + +.layer LAYER_3559 +/* 0x3559 [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x355B [0x69 0x50 0x64 ] */ notedv PITCH_D4, 80, 100 +/* 0x355E [0xFF ] */ end + +.channel CHAN_355F +/* 0x355F [0xC1 0x02 ] */ instr SF1_INST_2 +/* 0x3561 [0x88 0x35 0x65 ] */ ldlayer 0, LAYER_3565 +/* 0x3564 [0xFF ] */ end + +.layer LAYER_3565 +/* 0x3565 [0x54 0xF5 0x30 0x64 ] */ notedv PITCH_F2, 30000, 100 +/* 0x3569 [0xF4 0xFA ] */ rjump LAYER_3565 + +.channel CHAN_356B +/* 0x356B [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x356D [0x88 0x35 0x74 ] */ ldlayer 0, LAYER_3574 +/* 0x3570 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3573 [0xFF ] */ end + +.layer LAYER_3574 +/* 0x3574 [0xC7 0x81 0x24 0xFF ] */ portamento 0x81, PITCH_A3, 255 +/* 0x3578 [0x6B 0x0A 0x64 ] */ notedv PITCH_E4, 10, 100 +/* 0x357B [0xC7 0x81 0x2C 0xFF ] */ portamento 0x81, PITCH_F4, 255 +/* 0x357F [0x66 0x24 0x64 ] */ notedv PITCH_B3, 36, 100 +/* 0x3582 [0xFF ] */ end + +.channel CHAN_3583 +/* 0x3583 [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x3585 [0x88 0x35 0x8F ] */ ldlayer 0, LAYER_358F +/* 0x3588 [0x89 0x35 0x91 ] */ ldlayer 1, LAYER_3591 +/* 0x358B [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x358E [0xFF ] */ end + +.layer LAYER_358F +/* 0x358F [0xC2 0xFA ] */ transpose -6 +.layer LAYER_3591 +/* 0x3591 [0xC7 0x81 0x26 0xFF ] */ portamento 0x81, PITCH_B3, 255 +/* 0x3595 [0x6D 0x0A 0x64 ] */ notedv PITCH_GF4, 10, 100 +/* 0x3598 [0xC7 0x81 0x2E 0xFF ] */ portamento 0x81, PITCH_G4, 255 +/* 0x359C [0x68 0x5A 0x64 ] */ notedv PITCH_DF4, 90, 100 +/* 0x359F [0xFF ] */ end + +.channel CHAN_35A0 +/* 0x35A0 [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x35A2 [0xDA 0x68 0x3C ] */ env ENVELOPE_683C +/* 0x35A5 [0x88 0x35 0xAC ] */ ldlayer 0, LAYER_35AC +/* 0x35A8 [0x89 0x35 0xAE ] */ ldlayer 1, LAYER_35AE +/* 0x35AB [0xFF ] */ end + +.layer LAYER_35AC +/* 0x35AC [0xC2 0xF4 ] */ transpose -12 +.layer LAYER_35AE +/* 0x35AE [0xC7 0x01 0x22 0x14 ] */ portamento 0x01, PITCH_G3, 20 +/* 0x35B2 [0x66 0x5A 0x64 ] */ notedv PITCH_B3, 90, 100 +/* 0x35B5 [0xFF ] */ end + +.channel CHAN_35B6 +/* 0x35B6 [0xC1 0x00 ] */ instr SF1_INST_0 +/* 0x35B8 [0x88 0x35 0xCA ] */ ldlayer 0, LAYER_35CA +/* 0x35BB [0x89 0x35 0xC6 ] */ ldlayer 1, LAYER_35C6 +/* 0x35BE [0x8A 0x35 0xC2 ] */ ldlayer 2, LAYER_35C2 +/* 0x35C1 [0xFF ] */ end + +.layer LAYER_35C2 +/* 0x35C2 [0x66 0x50 0x64 ] */ notedv PITCH_B3, 80, 100 +/* 0x35C5 [0xFF ] */ end + +.layer LAYER_35C6 +/* 0x35C6 [0x5D 0x50 0x64 ] */ notedv PITCH_D3, 80, 100 +/* 0x35C9 [0xFF ] */ end + +.layer LAYER_35CA +/* 0x35CA [0x54 0x50 0x64 ] */ notedv PITCH_F2, 80, 100 +/* 0x35CD [0xFF ] */ end + +.channel CHAN_35CE +/* 0x35CE [0xC1 0x02 ] */ instr SF1_INST_2 +/* 0x35D0 [0x88 0x35 0xD9 ] */ ldlayer 0, LAYER_35D9 +/* 0x35D3 [0x89 0x35 0xD7 ] */ ldlayer 1, LAYER_35D7 +/* 0x35D6 [0xFF ] */ end + +.layer LAYER_35D7 +/* 0x35D7 [0xC2 0xF4 ] */ transpose -12 +.layer LAYER_35D9 +/* 0x35D9 [0x62 0xF5 0x30 0x64 ] */ notedv PITCH_G3, 30000, 100 +/* 0x35DD [0xF4 0xFA ] */ rjump LAYER_35D9 + +.channel CHAN_35DF +/* 0x35DF [0xC1 0x05 ] */ instr SF1_INST_5 +/* 0x35E1 [0x88 0x35 0xE5 ] */ ldlayer 0, LAYER_35E5 +/* 0x35E4 [0xFF ] */ end + +.layer LAYER_35E5 +/* 0x35E5 [0x60 0x50 0x64 ] */ notedv PITCH_F3, 80, 100 +/* 0x35E8 [0xFF ] */ end + +.channel CHAN_35E9 +/* 0x35E9 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x35EB [0x88 0x35 0xF5 ] */ ldlayer 0, LAYER_35F5 +/* 0x35EE [0x89 0x35 0xF7 ] */ ldlayer 1, LAYER_35F7 +/* 0x35F1 [0x8A 0x36 0x06 ] */ ldlayer 2, LAYER_3606 +/* 0x35F4 [0xFF ] */ end + +.layer LAYER_35F5 +/* 0x35F5 [0xC2 0xF8 ] */ transpose -8 +.layer LAYER_35F7 +/* 0x35F7 [0xCB 0x69 0xDC 0xF0 ] */ env ENVELOPE_69DC, 240 +/* 0x35FB [0xC7 0x81 0x22 0x40 ] */ portamento 0x81, PITCH_G3, 64 +/* 0x35FF [0x5B 0x32 0x64 ] */ notedv PITCH_C3, 50, 100 +/* 0x3602 [0x43 0x5A 0x64 ] */ notedv PITCH_C1, 90, 100 +/* 0x3605 [0xFF ] */ end + +.layer LAYER_3606 +/* 0x3606 [0xCB 0x69 0xDC 0xF0 ] */ env ENVELOPE_69DC, 240 +/* 0x360A [0xC7 0x81 0x26 0x40 ] */ portamento 0x81, PITCH_B3, 64 +/* 0x360E [0x5F 0x32 0x64 ] */ notedv PITCH_E3, 50, 100 +/* 0x3611 [0xFF ] */ end + +.channel CHAN_3612 +/* 0x3612 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x3614 [0x88 0x36 0x1B ] */ ldlayer 0, LAYER_361B +/* 0x3617 [0x89 0x36 0x1D ] */ ldlayer 1, LAYER_361D +/* 0x361A [0xFF ] */ end + +.layer LAYER_361B +/* 0x361B [0xC2 0xF8 ] */ transpose -8 +.layer LAYER_361D +/* 0x361D [0xCB 0x69 0xDC 0xFA ] */ env ENVELOPE_69DC, 250 +/* 0x3621 [0xC7 0x81 0x22 0x40 ] */ portamento 0x81, PITCH_G3, 64 +/* 0x3625 [0x5B 0x62 0x64 ] */ notedv PITCH_C3, 98, 100 +/* 0x3628 [0xFF ] */ end + +.channel CHAN_3629 +/* 0x3629 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x362B [0x88 0x36 0x31 ] */ ldlayer 0, LAYER_3631 +/* 0x362E [0xED 0x12 ] */ gain 18 +/* 0x3630 [0xFF ] */ end + +.layer LAYER_3631 +/* 0x3631 [0xCB 0x69 0x0C 0xFA ] */ env ENVELOPE_690C, 250 +/* 0x3635 [0xC7 0x81 0x1D 0x96 ] */ portamento 0x81, PITCH_D3, 150 +/* 0x3639 [0x5B 0x08 0x64 ] */ notedv PITCH_C3, 8, 100 +/* 0x363C [0xCB 0x68 0xEC 0xFA ] */ env ENVELOPE_68EC, 250 +/* 0x3640 [0xC7 0x81 0x1B 0x96 ] */ portamento 0x81, PITCH_C3, 150 +/* 0x3644 [0x54 0x1E 0x64 ] */ notedv PITCH_F2, 30, 100 +/* 0x3647 [0xFF ] */ end + +.channel CHAN_3648 +/* 0x3648 [0x88 0x36 0x4C ] */ ldlayer 0, LAYER_364C +/* 0x364B [0xFF ] */ end + +.layer LAYER_364C +/* 0x364C [0xC6 0x06 ] */ instr SF1_INST_6 +/* 0x364E [0xCB 0x68 0xDC 0xFA ] */ env ENVELOPE_68DC, 250 +/* 0x3652 [0xC7 0x81 0x24 0x40 ] */ portamento 0x81, PITCH_A3, 64 +/* 0x3656 [0x5D 0x1E 0x64 ] */ notedv PITCH_D3, 30, 100 +/* 0x3659 [0xFF ] */ end + +.channel CHAN_365A +/* 0x365A [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x365C [0xDA 0x68 0xEC ] */ env ENVELOPE_68EC +/* 0x365F [0x88 0x36 0x65 ] */ ldlayer 0, LAYER_3665 +/* 0x3662 [0xED 0x10 ] */ gain 16 +/* 0x3664 [0xFF ] */ end + +.layer LAYER_3665 +/* 0x3665 [0xC7 0x81 0x25 0x40 ] */ portamento 0x81, PITCH_BF3, 64 +/* 0x3669 [0x5E 0x28 0x64 ] */ notedv PITCH_EF3, 40, 100 +/* 0x366C [0xFF ] */ end + +.channel CHAN_366D +/* 0x366D [0xC1 0x0C ] */ instr SF1_INST_12 +/* 0x366F [0x89 0x36 0x76 ] */ ldlayer 1, LAYER_3676 +/* 0x3672 [0x88 0x36 0x78 ] */ ldlayer 0, LAYER_3678 +/* 0x3675 [0xFF ] */ end + +.layer LAYER_3676 +/* 0x3676 [0xC2 0x01 ] */ transpose 1 +.layer LAYER_3678 +/* 0x3678 [0xC7 0x81 0x13 0x40 ] */ portamento 0x81, PITCH_E2, 64 +/* 0x367C [0x56 0x14 0x64 ] */ notedv PITCH_G2, 20, 100 +/* 0x367F [0xFF ] */ end + +.channel CHAN_3680 +/* 0x3680 [0xC1 0x03 ] */ instr SF1_INST_3 +/* 0x3682 [0xDA 0x69 0x8C ] */ env ENVELOPE_698C +/* 0x3685 [0x88 0x36 0x8B ] */ ldlayer 0, LAYER_368B +/* 0x3688 [0xED 0x12 ] */ gain 18 +/* 0x368A [0xFF ] */ end + +.layer LAYER_368B +/* 0x368B [0xC4 ] */ legato +/* 0x368C [0xC7 0x85 0x14 0xFF ] */ portamento 0x85, PITCH_F2, 255 +/* 0x3690 [0x55 0x28 0x64 ] */ notedv PITCH_GF2, 40, 100 +/* 0x3693 [0x54 0x55 0x64 ] */ notedv PITCH_F2, 85, 100 +/* 0x3696 [0xFF ] */ end + +.channel CHAN_3697 +/* 0x3697 [0xC1 0x04 ] */ instr SF1_INST_4 +/* 0x3699 [0x88 0x36 0x9D ] */ ldlayer 0, LAYER_369D +/* 0x369C [0xFF ] */ end + +.layer LAYER_369D +/* 0x369D [0xC7 0x81 0x1F 0xFF ] */ portamento 0x81, PITCH_E3, 255 +/* 0x36A1 [0x5B 0x05 0x64 ] */ notedv PITCH_C3, 5, 100 +/* 0x36A4 [0xFF ] */ end + +.channel CHAN_36A5 +/* 0x36A5 [0xC1 0x07 ] */ instr SF1_INST_7 +/* 0x36A7 [0x88 0x36 0xAB ] */ ldlayer 0, LAYER_36AB +/* 0x36AA [0xFF ] */ end + +.layer LAYER_36AB +/* 0x36AB [0xC7 0x81 0x30 0xFF ] */ portamento 0x81, PITCH_A4, 255 +/* 0x36AF [0x6D 0x1E 0x64 ] */ notedv PITCH_GF4, 30, 100 +/* 0x36B2 [0xFF ] */ end + +.channel CHAN_36B3 +/* 0x36B3 [0x88 0x48 0x29 ] */ ldlayer 0, LAYER_4829 +/* 0x36B6 [0x89 0x36 0xBD ] */ ldlayer 1, LAYER_36BD +/* 0x36B9 [0x8A 0x36 0xC1 ] */ ldlayer 2, LAYER_36C1 +/* 0x36BC [0xFF ] */ end + +.layer LAYER_36BD +/* 0x36BD [0xC6 0x07 ] */ instr SF1_INST_7 +/* 0x36BF [0xF4 0x02 ] */ rjump LAYER_36C3 + +.layer LAYER_36C1 +/* 0x36C1 [0xC6 0x03 ] */ instr SF1_INST_3 +LAYER_36C3: +/* 0x36C3 [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x36C7 [0x7E 0x0A 0x64 ] */ notedv PITCH_B5, 10, 100 +/* 0x36CA [0xC7 0x81 0x3C 0xFF ] */ portamento 0x81, PITCH_A5, 255 +/* 0x36CE [0x77 0x12 0x64 ] */ notedv PITCH_E5, 18, 100 +/* 0x36D1 [0xFF ] */ end + +.channel CHAN_36D2 +/* 0x36D2 [0x88 0x36 0xD6 ] */ ldlayer 0, LAYER_36D6 +/* 0x36D5 [0xFF ] */ end + +.layer LAYER_36D6 +/* 0x36D6 [0xC6 0x07 ] */ instr SF1_INST_7 +/* 0x36D8 [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x36DC [0x78 0x0A 0x64 ] */ notedv PITCH_F5, 10, 100 +/* 0x36DF [0xC7 0x81 0x35 0xFF ] */ portamento 0x81, PITCH_D5, 255 +/* 0x36E3 [0x7A 0x0A 0x64 ] */ notedv PITCH_G5, 10, 100 +/* 0x36E6 [0xC2 0x04 ] */ transpose 4 +/* 0x36E8 [0xC7 0x81 0x37 0xFF ] */ portamento 0x81, PITCH_E5, 255 +/* 0x36EC [0x7E 0x0A 0x64 ] */ notedv PITCH_B5, 10, 100 +/* 0x36EF [0xC2 0x06 ] */ transpose 6 +/* 0x36F1 [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x36F5 [0x7E 0x14 0x64 ] */ notedv PITCH_B5, 20, 100 +/* 0x36F8 [0xFF ] */ end + +.channel CHAN_36F9 +/* 0x36F9 [0x88 0x37 0x00 ] */ ldlayer 0, LAYER_3700 +/* 0x36FC [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x36FF [0xFF ] */ end + +.layer LAYER_3700 +/* 0x3700 [0xC6 0x07 ] */ instr SF1_INST_7 +/* 0x3702 [0xC7 0x81 0x38 0xFF ] */ portamento 0x81, PITCH_F5, 255 +/* 0x3706 [0x73 0x05 0x64 ] */ notedv PITCH_C5, 5, 100 +/* 0x3709 [0xC7 0x81 0x36 0xFF ] */ portamento 0x81, PITCH_EF5, 255 +/* 0x370D [0x71 0x0A 0x64 ] */ notedv PITCH_BF4, 10, 100 +/* 0x3710 [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x3714 [0x6F 0x0A 0x64 ] */ notedv PITCH_AF4, 10, 100 +/* 0x3717 [0xC7 0x81 0x2F 0xFF ] */ portamento 0x81, PITCH_AF4, 255 +/* 0x371B [0x68 0x14 0x64 ] */ notedv PITCH_DF4, 20, 100 +/* 0x371E [0xFF ] */ end + +.channel CHAN_371F +/* 0x371F [0xC1 0x04 ] */ instr SF1_INST_4 +/* 0x3721 [0x88 0x37 0x28 ] */ ldlayer 0, LAYER_3728 +/* 0x3724 [0x89 0x37 0x2C ] */ ldlayer 1, LAYER_372C +/* 0x3727 [0xFF ] */ end + +.layer LAYER_3728 +/* 0x3728 [0x5F 0x50 0x64 ] */ notedv PITCH_E3, 80, 100 +/* 0x372B [0xFF ] */ end + +.layer LAYER_372C +/* 0x372C [0xC0 0x0F ] */ ldelay 15 +/* 0x372E [0x67 0x50 0x64 ] */ notedv PITCH_C4, 80, 100 +/* 0x3731 [0xFF ] */ end + +.channel CHAN_3732 +/* 0x3732 [0x88 0x37 0x4D ] */ ldlayer 0, LAYER_374D +/* 0x3735 [0x89 0x37 0x39 ] */ ldlayer 1, LAYER_3739 +/* 0x3738 [0xFF ] */ end + +.layer LAYER_3739 +/* 0x3739 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x373B [0xC4 ] */ legato +/* 0x373C [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +/* 0x3740 [0x6E 0x14 0x50 ] */ notedv PITCH_G4, 20, 80 +/* 0x3743 [0x67 0x14 0x50 ] */ notedv PITCH_C4, 20, 80 +/* 0x3746 [0x6B 0x14 0x50 ] */ notedv PITCH_E4, 20, 80 +/* 0x3749 [0x64 0x14 0x50 ] */ notedv PITCH_A3, 20, 80 +/* 0x374C [0xFF ] */ end + +.layer LAYER_374D +/* 0x374D [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x374F [0xC4 ] */ legato +/* 0x3750 [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +/* 0x3754 [0x6E 0x0A 0x64 ] */ notedv PITCH_G4, 10, 100 +/* 0x3757 [0x67 0x0A 0x64 ] */ notedv PITCH_C4, 10, 100 +/* 0x375A [0x6E 0x0A 0x64 ] */ notedv PITCH_G4, 10, 100 +/* 0x375D [0x67 0x0A 0x64 ] */ notedv PITCH_C4, 10, 100 +/* 0x3760 [0x6E 0x0A 0x64 ] */ notedv PITCH_G4, 10, 100 +/* 0x3763 [0x67 0x05 0x64 ] */ notedv PITCH_C4, 5, 100 +/* 0x3766 [0xFF ] */ end + +.channel CHAN_3767 +/* 0x3767 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x3769 [0x88 0x37 0x6F ] */ ldlayer 0, LAYER_376F +/* 0x376C [0xED 0x12 ] */ gain 18 +/* 0x376E [0xFF ] */ end + +.layer LAYER_376F +/* 0x376F [0xC4 ] */ legato +/* 0x3770 [0xCB 0x68 0xFC 0xFF ] */ env ENVELOPE_68FC, 255 +/* 0x3774 [0xC7 0x85 0x19 0xE6 ] */ portamento 0x85, PITCH_BF2, 230 +/* 0x3778 [0x5E 0x05 0x64 ] */ notedv PITCH_EF3, 5, 100 +/* 0x377B [0x59 0x05 0x64 ] */ notedv PITCH_BF2, 5, 100 +/* 0x377E [0xC5 ] */ nolegato +/* 0x377F [0xC0 0x05 ] */ ldelay 5 +/* 0x3781 [0xC4 ] */ legato +/* 0x3782 [0xCB 0x68 0xFC 0xFF ] */ env ENVELOPE_68FC, 255 +/* 0x3786 [0xC7 0x85 0x19 0xDC ] */ portamento 0x85, PITCH_BF2, 220 +/* 0x378A [0x5E 0x05 0x64 ] */ notedv PITCH_EF3, 5, 100 +/* 0x378D [0x59 0x0A 0x64 ] */ notedv PITCH_BF2, 10, 100 +/* 0x3790 [0xFF ] */ end + +/* 0x3791 [0xC1 0x08 ] */ shortvel 8 +/* 0x3793 [0x88 0x37 0x97 ] */ notevg PITCH_F1, 55, 151 +/* 0x3796 [0xFF ] */ end + +/* 0x3797 [0x69 0x46 0x64 ] */ notedv PITCH_D4, 70, 100 +/* 0x379A [0xFF ] */ end + +.channel CHAN_379B +/* 0x379B [0xC1 0x09 ] */ instr SF1_INST_9 +/* 0x379D [0x88 0x37 0xA3 ] */ ldlayer 0, LAYER_37A3 +/* 0x37A0 [0xED 0x32 ] */ gain 50 +/* 0x37A2 [0xFF ] */ end + +.layer LAYER_37A3 +/* 0x37A3 [0xC7 0x81 0x25 0x64 ] */ portamento 0x81, PITCH_BF3, 100 +/* 0x37A7 [0x6A 0x32 0x64 ] */ notedv PITCH_EF4, 50, 100 +/* 0x37AA [0xFF ] */ end + +.channel CHAN_37AB +/* 0x37AB [0x88 0x37 0xAF ] */ ldlayer 0, LAYER_37AF +/* 0x37AE [0xFF ] */ end + +.layer LAYER_37AF +/* 0x37AF [0xC6 0x0A ] */ instr SF1_INST_10 +/* 0x37B1 [0xC7 0x81 0x24 0xFF ] */ portamento 0x81, PITCH_A3, 255 +/* 0x37B5 [0x6B 0x0A 0x64 ] */ notedv PITCH_E4, 10, 100 +/* 0x37B8 [0xC7 0x81 0x2A 0xFF ] */ portamento 0x81, PITCH_EF4, 255 +/* 0x37BC [0x68 0x06 0x64 ] */ notedv PITCH_DF4, 6, 100 +/* 0x37BF [0xFF ] */ end + +.channel CHAN_37C0 +/* 0x37C0 [0x88 0x37 0xC7 ] */ ldlayer 0, LAYER_37C7 +/* 0x37C3 [0x89 0x37 0xD3 ] */ ldlayer 1, LAYER_37D3 +/* 0x37C6 [0xFF ] */ end + +.layer LAYER_37C7 +/* 0x37C7 [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x37C9 [0xC0 0x0A ] */ ldelay 10 +/* 0x37CB [0xC7 0x81 0x30 0x40 ] */ portamento 0x81, PITCH_A4, 64 +/* 0x37CF [0x75 0x28 0x64 ] */ notedv PITCH_D5, 40, 100 +/* 0x37D2 [0xFF ] */ end + +.layer LAYER_37D3 +/* 0x37D3 [0xC6 0x00 ] */ instr SF1_INST_0 +/* 0x37D5 [0xCB 0x68 0x6C 0xF0 ] */ env ENVELOPE_686C, 240 +/* 0x37D9 [0xC2 0x06 ] */ transpose 6 +/* 0x37DB [0xC7 0x81 0x1A 0x64 ] */ portamento 0x81, PITCH_B2, 100 +/* 0x37DF [0x7E 0x32 0x64 ] */ notedv PITCH_B5, 50, 100 +/* 0x37E2 [0xFF ] */ end + +.channel CHAN_37E3 +/* 0x37E3 [0x88 0x37 0xEA ] */ ldlayer 0, LAYER_37EA +/* 0x37E6 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x37E9 [0xFF ] */ end + +.layer LAYER_37EA +/* 0x37EA [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x37EC [0xC7 0x81 0x30 0xFF ] */ portamento 0x81, PITCH_A4, 255 +/* 0x37F0 [0x75 0x0A 0x64 ] */ notedv PITCH_D5, 10, 100 +/* 0x37F3 [0xC7 0x81 0x37 0xFF ] */ portamento 0x81, PITCH_E5, 255 +/* 0x37F7 [0x6C 0x48 0x64 ] */ notedv PITCH_F4, 72, 100 +/* 0x37FA [0xFF ] */ end + +.channel CHAN_37FB +/* 0x37FB [0x88 0x38 0x09 ] */ ldlayer 0, LAYER_3809 +/* 0x37FE [0x89 0x38 0x02 ] */ ldlayer 1, LAYER_3802 +/* 0x3801 [0xFF ] */ end + +.layer LAYER_3802 +/* 0x3802 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x3804 [0x6B 0x80 0x96 0x46 ] */ notedv PITCH_E4, 150, 70 +/* 0x3808 [0xFF ] */ end + +.layer LAYER_3809 +/* 0x3809 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x380B [0xC4 ] */ legato +/* 0x380C [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x3810 [0x69 0x0A 0x64 ] */ notedv PITCH_D4, 10, 100 +/* 0x3813 [0xC7 0x81 0x29 0xFF ] */ portamento 0x81, PITCH_D4, 255 +/* 0x3817 [0x6C 0x80 0xC8 0x64 ] */ notedv PITCH_F4, 200, 100 +/* 0x381B [0xFF ] */ end + +.channel CHAN_381C +/* 0x381C [0x88 0x38 0x38 ] */ ldlayer 0, LAYER_3838 +/* 0x381F [0x89 0x38 0x26 ] */ ldlayer 1, LAYER_3826 +/* 0x3822 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x3825 [0xFF ] */ end + +.layer LAYER_3826 +/* 0x3826 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x3828 [0xC4 ] */ legato +/* 0x3829 [0xC7 0x81 0x2A 0x40 ] */ portamento 0x81, PITCH_EF4, 64 +/* 0x382D [0x71 0x14 0x50 ] */ notedv PITCH_BF4, 20, 80 +/* 0x3830 [0xC7 0x81 0x2F 0xFF ] */ portamento 0x81, PITCH_AF4, 255 +/* 0x3834 [0x63 0x24 0x50 ] */ notedv PITCH_AF3, 36, 80 +/* 0x3837 [0xFF ] */ end + +.layer LAYER_3838 +/* 0x3838 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x383A [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x383E [0x6E 0x0F 0x64 ] */ notedv PITCH_G4, 15, 100 +/* 0x3841 [0xC7 0x81 0x2C 0xFF ] */ portamento 0x81, PITCH_F4, 255 +/* 0x3845 [0x66 0x24 0x64 ] */ notedv PITCH_B3, 36, 100 +/* 0x3848 [0xFF ] */ end + +.channel CHAN_3849 +/* 0x3849 [0xC1 0x05 ] */ instr SF1_INST_5 +/* 0x384B [0x88 0x38 0x54 ] */ ldlayer 0, LAYER_3854 +/* 0x384E [0x89 0x38 0x52 ] */ ldlayer 1, LAYER_3852 +/* 0x3851 [0xFF ] */ end + +.layer LAYER_3852 +/* 0x3852 [0xC2 0x02 ] */ transpose 2 +.layer LAYER_3854 +/* 0x3854 [0x4F 0x64 0x64 ] */ notedv PITCH_C2, 100, 100 +/* 0x3857 [0xFF ] */ end + +.channel CHAN_3858 +/* 0x3858 [0x88 0x38 0x5C ] */ ldlayer 0, LAYER_385C +/* 0x385B [0xFF ] */ end + +.layer LAYER_385C +/* 0x385C [0xC6 0x0C ] */ instr SF1_INST_12 +/* 0x385E [0x51 0x1E 0x46 ] */ notedv PITCH_D2, 30, 70 +/* 0x3861 [0xFF ] */ end + +.channel CHAN_3862 +/* 0x3862 [0x88 0x38 0x66 ] */ ldlayer 0, LAYER_3866 +/* 0x3865 [0xFF ] */ end + +.layer LAYER_3866 +/* 0x3866 [0xC6 0x0C ] */ instr SF1_INST_12 +/* 0x3868 [0x59 0x19 0x64 ] */ notedv PITCH_BF2, 25, 100 +/* 0x386B [0x57 0x14 0x64 ] */ notedv PITCH_AF2, 20, 100 +/* 0x386E [0x59 0x0F 0x64 ] */ notedv PITCH_BF2, 15, 100 +/* 0x3871 [0x57 0x0F 0x64 ] */ notedv PITCH_AF2, 15, 100 +/* 0x3874 [0x59 0x0A 0x64 ] */ notedv PITCH_BF2, 10, 100 +/* 0x3877 [0x57 0x0F 0x64 ] */ notedv PITCH_AF2, 15, 100 +/* 0x387A [0x59 0x0F 0x46 ] */ notedv PITCH_BF2, 15, 70 +LAYER_387D: +/* 0x387D [0x57 0x0F 0x46 ] */ notedv PITCH_AF2, 15, 70 +/* 0x3880 [0x59 0x0F 0x46 ] */ notedv PITCH_BF2, 15, 70 +/* 0x3883 [0x57 0x0F 0x46 ] */ notedv PITCH_AF2, 15, 70 +/* 0x3886 [0x59 0x0A 0x3C ] */ notedv PITCH_BF2, 10, 60 +/* 0x3889 [0x57 0x0A 0x3C ] */ notedv PITCH_AF2, 10, 60 +/* 0x388C [0xFF ] */ end + +.channel CHAN_388D +/* 0x388D [0x88 0x38 0x91 ] */ ldlayer 0, LAYER_3891 +/* 0x3890 [0xFF ] */ end + +.layer LAYER_3891 +/* 0x3891 [0xC6 0x0C ] */ instr SF1_INST_12 +/* 0x3893 [0xF4 0xE8 ] */ rjump LAYER_387D + +.channel CHAN_3895 +/* 0x3895 [0x88 0x38 0x99 ] */ ldlayer 0, LAYER_3899 +/* 0x3898 [0xFF ] */ end + +.layer LAYER_3899 +/* 0x3899 [0xC6 0x0C ] */ instr SF1_INST_12 +/* 0x389B [0x57 0x08 0x28 ] */ notedv PITCH_AF2, 8, 40 +/* 0x389E [0x56 0x08 0x28 ] */ notedv PITCH_G2, 8, 40 +/* 0x38A1 [0xFF ] */ end + +.channel CHAN_38A2 +/* 0x38A2 [0x88 0x38 0xA6 ] */ ldlayer 0, LAYER_38A6 +/* 0x38A5 [0xFF ] */ end + +.layer LAYER_38A6 +/* 0x38A6 [0xC6 0x0C ] */ instr SF1_INST_12 +/* 0x38A8 [0x55 0x19 0x64 ] */ notedv PITCH_GF2, 25, 100 +/* 0x38AB [0x57 0x14 0x64 ] */ notedv PITCH_AF2, 20, 100 +/* 0x38AE [0xFF ] */ end + +.channel CHAN_38AF +/* 0x38AF [0x88 0x38 0xB6 ] */ ldlayer 0, LAYER_38B6 +/* 0x38B2 [0x89 0x38 0x66 ] */ ldlayer 1, LAYER_3866 +/* 0x38B5 [0xFF ] */ end + +.layer LAYER_38B6 +/* 0x38B6 [0xC2 0xFB ] */ transpose -5 +/* 0x38B8 [0xF4 0xAC ] */ rjump LAYER_3866 + +.channel CHAN_38BA +/* 0x38BA [0x88 0x38 0xC1 ] */ ldlayer 0, LAYER_38C1 +/* 0x38BD [0x89 0x38 0xA6 ] */ ldlayer 1, LAYER_38A6 +/* 0x38C0 [0xFF ] */ end + +.layer LAYER_38C1 +/* 0x38C1 [0xC2 0xFE ] */ transpose -2 +/* 0x38C3 [0xC0 0x03 ] */ ldelay 3 +/* 0x38C5 [0xF4 0xDF ] */ rjump LAYER_38A6 + +.channel CHAN_38C7 +/* 0x38C7 [0xC1 0x14 ] */ instr SF1_INST_20 +/* 0x38C9 [0x88 0x38 0xCD ] */ ldlayer 0, LAYER_38CD +/* 0x38CC [0xFF ] */ end + +.layer LAYER_38CD +/* 0x38CD [0x5B 0x30 0x64 ] */ notedv PITCH_C3, 48, 100 +/* 0x38D0 [0xFF ] */ end + +.channel CHAN_38D1 +/* 0x38D1 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x38D3 [0x88 0x38 0xD7 ] */ ldlayer 0, LAYER_38D7 +/* 0x38D6 [0xFF ] */ end + +.layer LAYER_38D7 +/* 0x38D7 [0xC7 0x81 0x23 0x40 ] */ portamento 0x81, PITCH_AF3, 64 +/* 0x38DB [0x5C 0x0C 0x40 ] */ notedv PITCH_DF3, 12, 64 +/* 0x38DE [0xFF ] */ end + +.channel CHAN_38DF +/* 0x38DF [0x88 0x38 0xE5 ] */ ldlayer 0, LAYER_38E5 +/* 0x38E2 [0xED 0x10 ] */ gain 16 +/* 0x38E4 [0xFF ] */ end + +.layer LAYER_38E5 +/* 0x38E5 [0xC6 0x1B ] */ instr SF1_INST_27 +/* 0x38E7 [0x67 0x80 0x8C 0x64 ] */ notedv PITCH_C4, 140, 100 +/* 0x38EB [0xFF ] */ end + +.channel CHAN_38EC +/* 0x38EC [0x88 0x38 0xF6 ] */ ldlayer 0, LAYER_38F6 +/* 0x38EF [0x89 0x39 0x07 ] */ ldlayer 1, LAYER_3907 +/* 0x38F2 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x38F5 [0xFF ] */ end + +.layer LAYER_38F6 +/* 0x38F6 [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x38F8 [0xC7 0x81 0x21 0xFF ] */ portamento 0x81, PITCH_GF3, 255 +/* 0x38FC [0x68 0x0F 0x64 ] */ notedv PITCH_DF4, 15, 100 +/* 0x38FF [0xC7 0x81 0x26 0xFF ] */ portamento 0x81, PITCH_B3, 255 +/* 0x3903 [0x57 0x28 0x64 ] */ notedv PITCH_AF2, 40, 100 +/* 0x3906 [0xFF ] */ end + +.layer LAYER_3907 +/* 0x3907 [0xC6 0x0D ] */ instr SF1_INST_13 +/* 0x3909 [0x73 0x05 0x64 ] */ notedv PITCH_C5, 5, 100 +/* 0x390C [0x72 0x05 0x64 ] */ notedv PITCH_B4, 5, 100 +/* 0x390F [0x70 0x05 0x64 ] */ notedv PITCH_A4, 5, 100 +/* 0x3912 [0x6B 0x05 0x64 ] */ notedv PITCH_E4, 5, 100 +/* 0x3915 [0xFF ] */ end + +.channel CHAN_3916 +/* 0x3916 [0x88 0x39 0x1A ] */ ldlayer 0, LAYER_391A +/* 0x3919 [0xFF ] */ end + +.layer LAYER_391A +/* 0x391A [0xC6 0x0E ] */ instr SF1_INST_14 +/* 0x391C [0xC7 0x81 0x2C 0xFF ] */ portamento 0x81, PITCH_F4, 255 +/* 0x3920 [0x67 0x14 0x64 ] */ notedv PITCH_C4, 20, 100 +/* 0x3923 [0xFF ] */ end + +.channel CHAN_3924 +/* 0x3924 [0x88 0x39 0x2E ] */ ldlayer 0, LAYER_392E +/* 0x3927 [0x89 0x39 0x3F ] */ ldlayer 1, LAYER_393F +/* 0x392A [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x392D [0xFF ] */ end + +.layer LAYER_392E +/* 0x392E [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x3930 [0xC7 0x81 0x23 0xFF ] */ portamento 0x81, PITCH_AF3, 255 +/* 0x3934 [0x5F 0x0F 0x64 ] */ notedv PITCH_E3, 15, 100 +/* 0x3937 [0xC7 0x81 0x1F 0xFF ] */ portamento 0x81, PITCH_E3, 255 +/* 0x393B [0x5B 0x1E 0x64 ] */ notedv PITCH_C3, 30, 100 +/* 0x393E [0xFF ] */ end + +.layer LAYER_393F +/* 0x393F [0xC6 0x0D ] */ instr SF1_INST_13 +/* 0x3941 [0x7B 0x05 0x64 ] */ notedv PITCH_AF5, 5, 100 +/* 0x3944 [0x78 0x05 0x64 ] */ notedv PITCH_F5, 5, 100 +/* 0x3947 [0x74 0x05 0x64 ] */ notedv PITCH_DF5, 5, 100 +/* 0x394A [0x71 0x05 0x64 ] */ notedv PITCH_BF4, 5, 100 +/* 0x394D [0xFF ] */ end + +.channel CHAN_394E +/* 0x394E [0x88 0x39 0x58 ] */ ldlayer 0, LAYER_3958 +CHAN_3951: +/* 0x3951 [0x89 0x39 0x62 ] */ ldlayer 1, LAYER_3962 +/* 0x3954 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x3957 [0xFF ] */ end + +.layer LAYER_3958 +/* 0x3958 [0xC6 0x1A ] */ instr SF1_INST_26 +/* 0x395A [0xC7 0x81 0x2F 0x64 ] */ portamento 0x81, PITCH_AF4, 100 +/* 0x395E [0x6E 0x50 0x64 ] */ notedv PITCH_G4, 80, 100 +/* 0x3961 [0xFF ] */ end + +.layer LAYER_3962 +/* 0x3962 [0xC6 0x11 ] */ instr SF1_INST_17 +/* 0x3964 [0x62 0x05 0x64 ] */ notedv PITCH_G3, 5, 100 +/* 0x3967 [0x62 0x05 0x64 ] */ notedv PITCH_G3, 5, 100 +/* 0x396A [0xFF ] */ end + +.channel CHAN_396B +/* 0x396B [0x88 0x39 0x70 ] */ ldlayer 0, LAYER_3970 +/* 0x396E [0xF4 0xE1 ] */ rjump CHAN_3951 + +.layer LAYER_3970 +/* 0x3970 [0xC2 0x13 ] */ transpose 19 +/* 0x3972 [0xF4 0xE4 ] */ rjump LAYER_3958 + +.channel CHAN_3974 +/* 0x3974 [0x88 0x39 0x84 ] */ ldlayer 0, LAYER_3984 +CHAN_3977: +/* 0x3977 [0x89 0x39 0x97 ] */ ldlayer 1, LAYER_3997 +/* 0x397A [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x397D [0xED 0x14 ] */ gain 20 +/* 0x397F [0xD7 0x32 ] */ vibfreq 50 +/* 0x3981 [0xD8 0x0A ] */ vibdepth 10 +/* 0x3983 [0xFF ] */ end + +.layer LAYER_3984 +/* 0x3984 [0xC6 0x1A ] */ instr SF1_INST_26 +/* 0x3986 [0xC4 ] */ legato +/* 0x3987 [0xC7 0x85 0x2B 0xC8 ] */ portamento 0x85, PITCH_E4, 200 +/* 0x398B [0x6F 0x1E 0x64 ] */ notedv PITCH_AF4, 30, 100 +/* 0x398E [0x64 0x80 0x8C 0x64 ] */ notedv PITCH_A3, 140, 100 +/* 0x3992 [0x6B 0x80 0xC8 0x64 ] */ notedv PITCH_E4, 200, 100 +/* 0x3996 [0xFF ] */ end + +.layer LAYER_3997 +/* 0x3997 [0xC6 0x11 ] */ instr SF1_INST_17 +/* 0x3999 [0x62 0x05 0x64 ] */ notedv PITCH_G3, 5, 100 +/* 0x399C [0x62 0x0F 0x64 ] */ notedv PITCH_G3, 15, 100 +/* 0x399F [0xFF ] */ end + +.channel CHAN_39A0 +/* 0x39A0 [0x88 0x39 0xA5 ] */ ldlayer 0, LAYER_39A5 +/* 0x39A3 [0xF4 0xD2 ] */ rjump CHAN_3977 + +.layer LAYER_39A5 +/* 0x39A5 [0xC2 0x0E ] */ transpose 14 +/* 0x39A7 [0xF4 0xDB ] */ rjump LAYER_3984 + +.channel CHAN_39A9 +/* 0x39A9 [0x88 0x39 0xA5 ] */ ldlayer 0, LAYER_39A5 +/* 0x39AC [0xFF ] */ end + +.channel CHAN_39AD +/* 0x39AD [0x88 0x39 0xB1 ] */ ldlayer 0, LAYER_39B1 +/* 0x39B0 [0xFF ] */ end + +.layer LAYER_39B1 +/* 0x39B1 [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x39B3 [0xC2 0x30 ] */ transpose 48 +/* 0x39B5 [0x68 0x0A 0x50 ] */ notedv PITCH_DF4, 10, 80 +/* 0x39B8 [0xFF ] */ end + +.channel CHAN_39B9 +/* 0x39B9 [0x88 0x39 0xBD ] */ ldlayer 0, LAYER_39BD +/* 0x39BC [0xFF ] */ end + +.layer LAYER_39BD +/* 0x39BD [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x39BF [0xC2 0x30 ] */ transpose 48 +/* 0x39C1 [0x6B 0x0A 0x50 ] */ notedv PITCH_E4, 10, 80 +/* 0x39C4 [0x69 0x0A 0x50 ] */ notedv PITCH_D4, 10, 80 +/* 0x39C7 [0xFF ] */ end + +.channel CHAN_39C8 +/* 0x39C8 [0x88 0x39 0xDD ] */ ldlayer 0, LAYER_39DD +/* 0x39CB [0x89 0x39 0xD2 ] */ ldlayer 1, LAYER_39D2 +/* 0x39CE [0x8A 0x39 0xED ] */ ldlayer 2, LAYER_39ED +/* 0x39D1 [0xFF ] */ end + +.layer LAYER_39D2 +/* 0x39D2 [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x39D4 [0xC2 0x30 ] */ transpose 48 +/* 0x39D6 [0x6B 0x0A 0x64 ] */ notedv PITCH_E4, 10, 100 +/* 0x39D9 [0x6D 0x0A 0x64 ] */ notedv PITCH_GF4, 10, 100 +/* 0x39DC [0xFF ] */ end + +.layer LAYER_39DD +/* 0x39DD [0xC6 0x00 ] */ instr SF1_INST_0 +/* 0x39DF [0xCB 0x68 0x6C 0xF0 ] */ env ENVELOPE_686C, 240 +/* 0x39E3 [0xC2 0x04 ] */ transpose 4 +/* 0x39E5 [0xC7 0x81 0x1A 0x32 ] */ portamento 0x81, PITCH_B2, 50 +/* 0x39E9 [0x7E 0x50 0x64 ] */ notedv PITCH_B5, 80, 100 +/* 0x39EC [0xFF ] */ end + +.layer LAYER_39ED +/* 0x39ED [0xC6 0x0D ] */ instr SF1_INST_13 +/* 0x39EF [0xC0 0x0A ] */ ldelay 10 +/* 0x39F1 [0x6A 0x05 0x64 ] */ notedv PITCH_EF4, 5, 100 +/* 0x39F4 [0x69 0x05 0x64 ] */ notedv PITCH_D4, 5, 100 +/* 0x39F7 [0x67 0x05 0x64 ] */ notedv PITCH_C4, 5, 100 +/* 0x39FA [0x67 0x05 0x64 ] */ notedv PITCH_C4, 5, 100 +/* 0x39FD [0xFF ] */ end + +.channel CHAN_39FE +/* 0x39FE [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x3A00 [0x88 0x3A 0x04 ] */ ldlayer 0, LAYER_3A04 +/* 0x3A03 [0xFF ] */ end + +.layer LAYER_3A04 +/* 0x3A04 [0xC7 0x81 0x27 0xC8 ] */ portamento 0x81, PITCH_C4, 200 +/* 0x3A08 [0x64 0x14 0x64 ] */ notedv PITCH_A3, 20, 100 +/* 0x3A0B [0xFF ] */ end + +.channel CHAN_3A0C +/* 0x3A0C [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x3A0E [0xDA 0x69 0x0C ] */ env ENVELOPE_690C +/* 0x3A11 [0x89 0x3A 0x18 ] */ ldlayer 1, LAYER_3A18 +/* 0x3A14 [0x88 0x3A 0x2E ] */ ldlayer 0, LAYER_3A2E +/* 0x3A17 [0xFF ] */ end + +.layer LAYER_3A18 +/* 0x3A18 [0x53 0x0A 0x64 ] */ notedv PITCH_E2, 10, 100 +/* 0x3A1B [0x55 0x0A 0x64 ] */ notedv PITCH_GF2, 10, 100 +/* 0x3A1E [0x53 0x0A 0x64 ] */ notedv PITCH_E2, 10, 100 +/* 0x3A21 [0x55 0x0A 0x64 ] */ notedv PITCH_GF2, 10, 100 +/* 0x3A24 [0x53 0x0A 0x64 ] */ notedv PITCH_E2, 10, 100 +/* 0x3A27 [0x55 0x0A 0x64 ] */ notedv PITCH_GF2, 10, 100 +/* 0x3A2A [0x53 0x0A 0x64 ] */ notedv PITCH_E2, 10, 100 +/* 0x3A2D [0xFF ] */ end + +.layer LAYER_3A2E +/* 0x3A2E [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x3A30 [0xCB 0x69 0x9C 0xFA ] */ env ENVELOPE_699C, 250 +/* 0x3A34 [0xC4 ] */ legato +/* 0x3A35 [0xC7 0x85 0x17 0xFF ] */ portamento 0x85, PITCH_AF2, 255 +/* 0x3A39 [0x67 0x1E 0x64 ] */ notedv PITCH_C4, 30, 100 +/* 0x3A3C [0x60 0x52 0x64 ] */ notedv PITCH_F3, 82, 100 +/* 0x3A3F [0xFF ] */ end + +.channel CHAN_3A40 +/* 0x3A40 [0x88 0x3A 0x47 ] */ ldlayer 0, LAYER_3A47 +/* 0x3A43 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3A46 [0xFF ] */ end + +.layer LAYER_3A47 +/* 0x3A47 [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x3A49 [0xCB 0x69 0x9C 0xF0 ] */ env ENVELOPE_699C, 240 +/* 0x3A4D [0xC4 ] */ legato +/* 0x3A4E [0xC7 0x85 0x25 0xC8 ] */ portamento 0x85, PITCH_BF3, 200 +/* 0x3A52 [0x6D 0x1E 0x64 ] */ notedv PITCH_GF4, 30, 100 +/* 0x3A55 [0x61 0x64 0x64 ] */ notedv PITCH_GF3, 100, 100 +/* 0x3A58 [0xFF ] */ end + +.channel CHAN_3A59 +/* 0x3A59 [0xC1 0x23 ] */ instr SF1_INST_35 +/* 0x3A5B [0xDA 0x69 0x9C ] */ env ENVELOPE_699C +/* 0x3A5E [0xED 0x13 ] */ gain 19 +/* 0x3A60 [0x88 0x3A 0x64 ] */ ldlayer 0, LAYER_3A64 +/* 0x3A63 [0xFF ] */ end + +.layer LAYER_3A64 +/* 0x3A64 [0xC4 ] */ legato +/* 0x3A65 [0xC7 0x85 0x17 0xFF ] */ portamento 0x85, PITCH_AF2, 255 +/* 0x3A69 [0x67 0x1E 0x64 ] */ notedv PITCH_C4, 30, 100 +/* 0x3A6C [0x60 0x52 0x64 ] */ notedv PITCH_F3, 82, 100 +/* 0x3A6F [0xFF ] */ end + +.channel CHAN_3A70 +/* 0x3A70 [0x88 0x3A 0x79 ] */ ldlayer 0, LAYER_3A79 +/* 0x3A73 [0x89 0x3A 0x87 ] */ ldlayer 1, LAYER_3A87 +/* 0x3A76 [0xED 0x14 ] */ gain 20 +/* 0x3A78 [0xFF ] */ end + +.layer LAYER_3A79 +/* 0x3A79 [0xC6 0x19 ] */ instr SF1_INST_25 +/* 0x3A7B [0xC4 ] */ legato +/* 0x3A7C [0xC7 0x85 0x1E 0x1E ] */ portamento 0x85, PITCH_EF3, 30 +/* 0x3A80 [0x71 0x14 0x64 ] */ notedv PITCH_BF4, 20, 100 +/* 0x3A83 [0x70 0x14 0x64 ] */ notedv PITCH_A4, 20, 100 +/* 0x3A86 [0xFF ] */ end + +.layer LAYER_3A87 +/* 0x3A87 [0xC6 0x1C ] */ instr SF1_INST_28 +/* 0x3A89 [0xCB 0x68 0x2C 0xF0 ] */ env ENVELOPE_682C, 240 +/* 0x3A8D [0xC0 0x0A ] */ ldelay 10 +/* 0x3A8F [0x66 0x1E 0x64 ] */ notedv PITCH_B3, 30, 100 +/* 0x3A92 [0xFF ] */ end + +.channel CHAN_3A93 +/* 0x3A93 [0x88 0x3A 0x9A ] */ ldlayer 0, LAYER_3A9A +/* 0x3A96 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3A99 [0xFF ] */ end + +.layer LAYER_3A9A +/* 0x3A9A [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x3A9C [0xC4 ] */ legato +/* 0x3A9D [0xC7 0x85 0x27 0x64 ] */ portamento 0x85, PITCH_C4, 100 +/* 0x3AA1 [0x6C 0x1E 0x64 ] */ notedv PITCH_F4, 30, 100 +/* 0x3AA4 [0x67 0x1E 0x64 ] */ notedv PITCH_C4, 30, 100 +/* 0x3AA7 [0xFF ] */ end + +.channel CHAN_3AA8 +/* 0x3AA8 [0xC1 0x00 ] */ instr SF1_INST_0 +/* 0x3AAA [0x88 0x3A 0xB4 ] */ ldlayer 0, LAYER_3AB4 +/* 0x3AAD [0x89 0x3A 0xBF ] */ ldlayer 1, LAYER_3ABF +/* 0x3AB0 [0x8A 0x3A 0xCA ] */ ldlayer 2, LAYER_3ACA +/* 0x3AB3 [0xFF ] */ end + +.layer LAYER_3AB4 +/* 0x3AB4 [0x61 0x14 0x64 ] */ notedv PITCH_GF3, 20, 100 +/* 0x3AB7 [0xCB 0x68 0x8C 0xF0 ] */ env ENVELOPE_688C, 240 +/* 0x3ABB [0x57 0x64 0x64 ] */ notedv PITCH_AF2, 100, 100 +/* 0x3ABE [0xFF ] */ end + +.layer LAYER_3ABF +/* 0x3ABF [0x65 0x14 0x64 ] */ notedv PITCH_BF3, 20, 100 +/* 0x3AC2 [0xCB 0x68 0x8C 0xF0 ] */ env ENVELOPE_688C, 240 +/* 0x3AC6 [0x5B 0x64 0x64 ] */ notedv PITCH_C3, 100, 100 +/* 0x3AC9 [0xFF ] */ end + +.layer LAYER_3ACA +/* 0x3ACA [0x68 0x14 0x64 ] */ notedv PITCH_DF4, 20, 100 +/* 0x3ACD [0xCB 0x68 0x8C 0xF0 ] */ env ENVELOPE_688C, 240 +/* 0x3AD1 [0x5E 0x64 0x64 ] */ notedv PITCH_EF3, 100, 100 +/* 0x3AD4 [0xFF ] */ end + +.channel CHAN_3AD5 +/* 0x3AD5 [0xC1 0x00 ] */ instr SF1_INST_0 +/* 0x3AD7 [0x88 0x3A 0xDE ] */ ldlayer 0, LAYER_3ADE +/* 0x3ADA [0x89 0x3A 0xE9 ] */ ldlayer 1, LAYER_3AE9 +/* 0x3ADD [0xFF ] */ end + +.layer LAYER_3ADE +/* 0x3ADE [0x61 0x14 0x64 ] */ notedv PITCH_GF3, 20, 100 +/* 0x3AE1 [0xCB 0x68 0x8C 0xF0 ] */ env ENVELOPE_688C, 240 +/* 0x3AE5 [0x57 0x32 0x64 ] */ notedv PITCH_AF2, 50, 100 +/* 0x3AE8 [0xFF ] */ end + +.layer LAYER_3AE9 +/* 0x3AE9 [0x66 0x14 0x64 ] */ notedv PITCH_B3, 20, 100 +/* 0x3AEC [0xCB 0x68 0x8C 0xF0 ] */ env ENVELOPE_688C, 240 +/* 0x3AF0 [0x5C 0x32 0x64 ] */ notedv PITCH_DF3, 50, 100 +/* 0x3AF3 [0xFF ] */ end + +.channel CHAN_3AF4 +/* 0x3AF4 [0x88 0x3B 0x01 ] */ ldlayer 0, LAYER_3B01 +/* 0x3AF7 [0x89 0x3A 0xFF ] */ ldlayer 1, LAYER_3AFF +/* 0x3AFA [0xD7 0x14 ] */ vibfreq 20 +/* 0x3AFC [0xD8 0x64 ] */ vibdepth 100 +/* 0x3AFE [0xFF ] */ end + +.layer LAYER_3AFF +/* 0x3AFF [0xC2 0x0C ] */ transpose 12 +.layer LAYER_3B01 +/* 0x3B01 [0xC6 0x12 ] */ instr SF1_INST_18 +LAYER_3B03: +/* 0x3B03 [0x67 0xF5 0x30 0x64 ] */ notedv PITCH_C4, 30000, 100 +/* 0x3B07 [0xF4 0xFA ] */ rjump LAYER_3B03 + +.channel CHAN_3B09 +/* 0x3B09 [0xC1 0x13 ] */ instr SF1_INST_19 +/* 0x3B0B [0x88 0x3B 0x14 ] */ ldlayer 0, LAYER_3B14 +/* 0x3B0E [0x89 0x3B 0x12 ] */ ldlayer 1, LAYER_3B12 +/* 0x3B11 [0xFF ] */ end + +.layer LAYER_3B12 +/* 0x3B12 [0xC2 0xFC ] */ transpose -4 +.layer LAYER_3B14 +/* 0x3B14 [0xC4 ] */ legato +/* 0x3B15 [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x3B19 [0x60 0x80 0xAA 0x64 ] */ notedv PITCH_F3, 170, 100 +LAYER_3B1D: +/* 0x3B1D [0x60 0xF5 0x30 0x64 ] */ notedv PITCH_F3, 30000, 100 +/* 0x3B21 [0xF4 0xFA ] */ rjump LAYER_3B1D + +.channel CHAN_3B23 +/* 0x3B23 [0xC1 0x14 ] */ instr SF1_INST_20 +/* 0x3B25 [0x88 0x3B 0x2E ] */ ldlayer 0, LAYER_3B2E +/* 0x3B28 [0x89 0x3B 0x30 ] */ ldlayer 1, LAYER_3B30 +/* 0x3B2B [0xED 0x18 ] */ gain 24 +/* 0x3B2D [0xFF ] */ end + +.layer LAYER_3B2E +/* 0x3B2E [0xC2 0xFE ] */ transpose -2 +.layer LAYER_3B30 +/* 0x3B30 [0x5B 0x46 0x64 ] */ notedv PITCH_C3, 70, 100 +/* 0x3B33 [0xFF ] */ end + +.channel CHAN_3B34 +/* 0x3B34 [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x3B36 [0xDA 0x68 0x3C ] */ env ENVELOPE_683C +/* 0x3B39 [0x88 0x3B 0x40 ] */ ldlayer 0, LAYER_3B40 +/* 0x3B3C [0x89 0x3B 0x42 ] */ ldlayer 1, LAYER_3B42 +/* 0x3B3F [0xFF ] */ end + +.layer LAYER_3B40 +/* 0x3B40 [0xC2 0xFC ] */ transpose -4 +.layer LAYER_3B42 +/* 0x3B42 [0xC4 ] */ legato +/* 0x3B43 [0xC7 0x85 0x0F 0xFF ] */ portamento 0x85, PITCH_C2, 255 +/* 0x3B47 [0x51 0x32 0x64 ] */ notedv PITCH_D2, 50, 100 +/* 0x3B4A [0x4E 0x32 0x64 ] */ notedv PITCH_B1, 50, 100 +/* 0x3B4D [0xC5 ] */ nolegato +/* 0x3B4E [0xF4 0xF2 ] */ rjump LAYER_3B42 + +.channel CHAN_3B50 +/* 0x3B50 [0xC1 0x13 ] */ instr SF1_INST_19 +/* 0x3B52 [0x88 0x3B 0x56 ] */ ldlayer 0, LAYER_3B56 +/* 0x3B55 [0xFF ] */ end + +.layer LAYER_3B56 +/* 0x3B56 [0x5F 0xF5 0x30 0x64 ] */ notedv PITCH_E3, 30000, 100 +/* 0x3B5A [0xF4 0xFA ] */ rjump LAYER_3B56 + +.channel CHAN_3B5C +/* 0x3B5C [0xC1 0x15 ] */ instr SF1_INST_21 +/* 0x3B5E [0x88 0x3B 0x62 ] */ ldlayer 0, LAYER_3B62 +/* 0x3B61 [0xFF ] */ end + +.layer LAYER_3B62 +/* 0x3B62 [0x60 0x1E 0x64 ] */ notedv PITCH_F3, 30, 100 +/* 0x3B65 [0xFF ] */ end + +.channel CHAN_3B66 +/* 0x3B66 [0x88 0x3B 0x6A ] */ ldlayer 0, LAYER_3B6A +/* 0x3B69 [0xFF ] */ end + +.layer LAYER_3B6A +/* 0x3B6A [0xC6 0x18 ] */ instr SF1_INST_24 +/* 0x3B6C [0xC2 0x30 ] */ transpose 48 +/* 0x3B6E [0xC7 0x81 0x27 0xC8 ] */ portamento 0x81, PITCH_C4, 200 +/* 0x3B72 [0x6B 0x32 0x64 ] */ notedv PITCH_E4, 50, 100 +/* 0x3B75 [0xFF ] */ end + +.channel CHAN_3B76 +/* 0x3B76 [0x88 0x3B 0x7D ] */ ldlayer 0, LAYER_3B7D +/* 0x3B79 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3B7C [0xFF ] */ end + +.layer LAYER_3B7D +/* 0x3B7D [0xC6 0x17 ] */ instr SF1_INST_23 +/* 0x3B7F [0xC7 0x81 0x2C 0xFF ] */ portamento 0x81, PITCH_F4, 255 +/* 0x3B83 [0x73 0x0A 0x64 ] */ notedv PITCH_C5, 10, 100 +/* 0x3B86 [0xC7 0x81 0x35 0xFF ] */ portamento 0x81, PITCH_D5, 255 +/* 0x3B8A [0x6C 0x1E 0x64 ] */ notedv PITCH_F4, 30, 100 +/* 0x3B8D [0xFF ] */ end + +.channel CHAN_3B8E +/* 0x3B8E [0x88 0x3B 0x99 ] */ ldlayer 0, LAYER_3B99 +/* 0x3B91 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3B94 [0xD7 0x64 ] */ vibfreq 100 +/* 0x3B96 [0xD8 0x7F ] */ vibdepth 127 +/* 0x3B98 [0xFF ] */ end + +.layer LAYER_3B99 +/* 0x3B99 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x3B9B [0xCB 0x69 0xAC 0xFF ] */ env ENVELOPE_69AC, 255 +/* 0x3B9F [0xC4 ] */ legato +/* 0x3BA0 [0xC7 0x85 0x1F 0xFF ] */ portamento 0x85, PITCH_E3, 255 +/* 0x3BA4 [0x67 0x1E 0x64 ] */ notedv PITCH_C4, 30, 100 +/* 0x3BA7 [0x5B 0x78 0x64 ] */ notedv PITCH_C3, 120, 100 +/* 0x3BAA [0xFF ] */ end + +.channel CHAN_3BAB +/* 0x3BAB [0x88 0x3B 0xB9 ] */ ldlayer 0, LAYER_3BB9 +/* 0x3BAE [0x89 0x4B 0xA9 ] */ ldlayer 1, LAYER_4BA9 +/* 0x3BB1 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x3BB4 [0xD7 0x30 ] */ vibfreq 48 +/* 0x3BB6 [0xD8 0x80 ] */ vibdepth 128 +/* 0x3BB8 [0xFF ] */ end + +.layer LAYER_3BB9 +/* 0x3BB9 [0xC2 0x03 ] */ transpose 3 +/* 0x3BBB [0xF4 0xDC ] */ rjump LAYER_3B99 + +.channel CHAN_3BBD +/* 0x3BBD [0xC1 0x15 ] */ instr SF1_INST_21 +/* 0x3BBF [0x88 0x3B 0xC3 ] */ ldlayer 0, LAYER_3BC3 +/* 0x3BC2 [0xFF ] */ end + +.layer LAYER_3BC3 +/* 0x3BC3 [0x6C 0x0F 0x64 ] */ notedv PITCH_F4, 15, 100 +/* 0x3BC6 [0xFF ] */ end + +.channel CHAN_3BC7 +/* 0x3BC7 [0x88 0x3B 0xCB ] */ ldlayer 0, LAYER_3BCB +/* 0x3BCA [0xFF ] */ end + +.layer LAYER_3BCB +/* 0x3BCB [0xC6 0x18 ] */ instr SF1_INST_24 +/* 0x3BCD [0xC2 0x30 ] */ transpose 48 +/* 0x3BCF [0xC7 0x81 0x30 0xFF ] */ portamento 0x81, PITCH_A4, 255 +/* 0x3BD3 [0x73 0x1E 0x64 ] */ notedv PITCH_C5, 30, 100 +/* 0x3BD6 [0xFF ] */ end + +.channel CHAN_3BD7 +/* 0x3BD7 [0xC1 0x03 ] */ instr SF1_INST_3 +/* 0x3BD9 [0xDA 0x68 0x4C ] */ env ENVELOPE_684C +/* 0x3BDC [0x88 0x3B 0xE7 ] */ ldlayer 0, LAYER_3BE7 +/* 0x3BDF [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3BE2 [0xD7 0x64 ] */ vibfreq 100 +/* 0x3BE4 [0xD8 0x7F ] */ vibdepth 127 +/* 0x3BE6 [0xFF ] */ end + +.layer LAYER_3BE7 +/* 0x3BE7 [0xC4 ] */ legato +/* 0x3BE8 [0xC7 0x85 0x31 0xC8 ] */ portamento 0x85, PITCH_BF4, 200 +/* 0x3BEC [0x79 0x1E 0x64 ] */ notedv PITCH_GF5, 30, 100 +/* 0x3BEF [0x6D 0x32 0x64 ] */ notedv PITCH_GF4, 50, 100 +/* 0x3BF2 [0xFF ] */ end + +.channel CHAN_3BF3 +/* 0x3BF3 [0x88 0x3B 0xFC ] */ ldlayer 0, LAYER_3BFC +/* 0x3BF6 [0xC1 0x0C ] */ instr SF1_INST_12 +/* 0x3BF8 [0xDA 0x68 0xBC ] */ env ENVELOPE_68BC +/* 0x3BFB [0xFF ] */ end + +.layer LAYER_3BFC +/* 0x3BFC [0xC7 0x81 0x0D 0xFF ] */ portamento 0x81, PITCH_BF1, 255 +/* 0x3C00 [0x4A 0x38 0x50 ] */ notedv PITCH_G1, 56, 80 +/* 0x3C03 [0xFF ] */ end + +.channel CHAN_3C04 +/* 0x3C04 [0x88 0x3C 0x0B ] */ ldlayer 0, LAYER_3C0B +/* 0x3C07 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3C0A [0xFF ] */ end + +.layer LAYER_3C0B +/* 0x3C0B [0xC6 0x17 ] */ instr SF1_INST_23 +/* 0x3C0D [0xC7 0x81 0x2C 0xFF ] */ portamento 0x81, PITCH_F4, 255 +/* 0x3C11 [0x73 0x0A 0x64 ] */ notedv PITCH_C5, 10, 100 +/* 0x3C14 [0xC7 0x81 0x35 0xFF ] */ portamento 0x81, PITCH_D5, 255 +/* 0x3C18 [0x6C 0x1E 0x64 ] */ notedv PITCH_F4, 30, 100 +/* 0x3C1B [0xFF ] */ end + +.channel CHAN_3C1C +/* 0x3C1C [0xC1 0x18 ] */ instr SF1_INST_24 +/* 0x3C1E [0x88 0x3C 0x26 ] */ ldlayer 0, LAYER_3C26 +/* 0x3C21 [0xD7 0x40 ] */ vibfreq 64 +/* 0x3C23 [0xD8 0x80 ] */ vibdepth 128 +/* 0x3C25 [0xFF ] */ end + +.layer LAYER_3C26 +/* 0x3C26 [0x59 0xF5 0x30 0x50 ] */ notedv PITCH_BF2, 30000, 80 +/* 0x3C2A [0xF4 0xFA ] */ rjump LAYER_3C26 + +.channel CHAN_3C2C +/* 0x3C2C [0xC1 0x04 ] */ instr SF1_INST_4 +/* 0x3C2E [0x88 0x3C 0x32 ] */ ldlayer 0, LAYER_3C32 +/* 0x3C31 [0xFF ] */ end + +.layer LAYER_3C32 +/* 0x3C32 [0xC7 0x81 0x0E 0x3C ] */ portamento 0x81, PITCH_B1, 60 +/* 0x3C36 [0x53 0x32 0x64 ] */ notedv PITCH_E2, 50, 100 +/* 0x3C39 [0xFF ] */ end + +.channel CHAN_3C3A +/* 0x3C3A [0x88 0x3C 0x45 ] */ ldlayer 0, LAYER_3C45 +/* 0x3C3D [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3C40 [0xD7 0x70 ] */ vibfreq 112 +/* 0x3C42 [0xD8 0x70 ] */ vibdepth 112 +/* 0x3C44 [0xFF ] */ end + +.layer LAYER_3C45 +/* 0x3C45 [0xC6 0x17 ] */ instr SF1_INST_23 +/* 0x3C47 [0xC7 0x81 0x23 0x60 ] */ portamento 0x81, PITCH_AF3, 96 +/* 0x3C4B [0x73 0x14 0x64 ] */ notedv PITCH_C5, 20, 100 +/* 0x3C4E [0xC7 0x81 0x2C 0xCF ] */ portamento 0x81, PITCH_F4, 207 +/* 0x3C52 [0x67 0x30 0x64 ] */ notedv PITCH_C4, 48, 100 +/* 0x3C55 [0xFF ] */ end + +.channel CHAN_3C56 +/* 0x3C56 [0xC1 0x04 ] */ instr SF1_INST_4 +/* 0x3C58 [0x88 0x3C 0x5F ] */ ldlayer 0, LAYER_3C5F +/* 0x3C5B [0x89 0x3C 0x67 ] */ ldlayer 1, LAYER_3C67 +/* 0x3C5E [0xFF ] */ end + +.layer LAYER_3C5F +/* 0x3C5F [0xC7 0x81 0x27 0x64 ] */ portamento 0x81, PITCH_C4, 100 +/* 0x3C63 [0x6B 0x32 0x64 ] */ notedv PITCH_E4, 50, 100 +/* 0x3C66 [0xFF ] */ end + +.layer LAYER_3C67 +/* 0x3C67 [0xC0 0x05 ] */ ldelay 5 +/* 0x3C69 [0xC7 0x81 0x25 0x64 ] */ portamento 0x81, PITCH_BF3, 100 +/* 0x3C6D [0x69 0x32 0x64 ] */ notedv PITCH_D4, 50, 100 +/* 0x3C70 [0xFF ] */ end + +.channel CHAN_3C71 +/* 0x3C71 [0xC1 0x04 ] */ instr SF1_INST_4 +/* 0x3C73 [0x88 0x3C 0x7A ] */ ldlayer 0, LAYER_3C7A +/* 0x3C76 [0x89 0x3C 0x82 ] */ ldlayer 1, LAYER_3C82 +/* 0x3C79 [0xFF ] */ end + +.layer LAYER_3C7A +/* 0x3C7A [0xC7 0x81 0x2B 0x64 ] */ portamento 0x81, PITCH_E4, 100 +/* 0x3C7E [0x67 0x32 0x64 ] */ notedv PITCH_C4, 50, 100 +/* 0x3C81 [0xFF ] */ end + +.layer LAYER_3C82 +/* 0x3C82 [0xC0 0x05 ] */ ldelay 5 +/* 0x3C84 [0xC7 0x81 0x29 0x64 ] */ portamento 0x81, PITCH_D4, 100 +/* 0x3C88 [0x65 0x32 0x64 ] */ notedv PITCH_BF3, 50, 100 +/* 0x3C8B [0xFF ] */ end + +.channel CHAN_3C8C +/* 0x3C8C [0xC1 0x0E ] */ instr SF1_INST_14 +/* 0x3C8E [0xDA 0x69 0x9C ] */ env ENVELOPE_699C +/* 0x3C91 [0x88 0x3C 0x9B ] */ ldlayer 0, LAYER_3C9B +/* 0x3C94 [0xED 0x10 ] */ gain 16 +/* 0x3C96 [0xD7 0x64 ] */ vibfreq 100 +/* 0x3C98 [0xD8 0x7F ] */ vibdepth 127 +/* 0x3C9A [0xFF ] */ end + +.layer LAYER_3C9B +/* 0x3C9B [0x48 0x64 0x64 ] */ notedv PITCH_F1, 100, 100 +/* 0x3C9E [0xFF ] */ end + +.channel CHAN_3C9F +/* 0x3C9F [0x88 0x3C 0xA3 ] */ ldlayer 0, LAYER_3CA3 +/* 0x3CA2 [0xFF ] */ end + +.layer LAYER_3CA3 +/* 0x3CA3 [0xC6 0x0C ] */ instr SF1_INST_12 +/* 0x3CA5 [0x67 0x0A 0x46 ] */ notedv PITCH_C4, 10, 70 +/* 0x3CA8 [0xFF ] */ end + +.channel CHAN_3CA9 +/* 0x3CA9 [0x88 0x3C 0xB0 ] */ ldlayer 0, LAYER_3CB0 +/* 0x3CAC [0x89 0x3C 0xB6 ] */ ldlayer 1, LAYER_3CB6 +/* 0x3CAF [0xFF ] */ end + +.layer LAYER_3CB0 +/* 0x3CB0 [0xC6 0x0A ] */ instr SF1_INST_10 +/* 0x3CB2 [0x60 0x19 0x64 ] */ notedv PITCH_F3, 25, 100 +/* 0x3CB5 [0xFF ] */ end + +.layer LAYER_3CB6 +/* 0x3CB6 [0xC6 0x11 ] */ instr SF1_INST_17 +/* 0x3CB8 [0x60 0x0A 0x1E ] */ notedv PITCH_F3, 10, 30 +/* 0x3CBB [0xFF ] */ end + +.channel CHAN_3CBC +/* 0x3CBC [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x3CBE [0xDA 0x69 0xAC ] */ env ENVELOPE_69AC +/* 0x3CC1 [0x88 0x3C 0xC9 ] */ ldlayer 0, LAYER_3CC9 +/* 0x3CC4 [0xD7 0x14 ] */ vibfreq 20 +/* 0x3CC6 [0xD8 0x7F ] */ vibdepth 127 +/* 0x3CC8 [0xFF ] */ end + +.layer LAYER_3CC9 +/* 0x3CC9 [0x60 0x80 0x87 0x64 ] */ notedv PITCH_F3, 135, 100 +/* 0x3CCD [0xF4 0xFA ] */ rjump LAYER_3CC9 + +.channel CHAN_3CCF +/* 0x3CCF [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x3CD1 [0x88 0x3C 0xD9 ] */ ldlayer 0, LAYER_3CD9 +/* 0x3CD4 [0xD7 0x3C ] */ vibfreq 60 +/* 0x3CD6 [0xD8 0x64 ] */ vibdepth 100 +/* 0x3CD8 [0xFF ] */ end + +.layer LAYER_3CD9 +/* 0x3CD9 [0x6B 0x32 0x64 ] */ notedv PITCH_E4, 50, 100 +/* 0x3CDC [0xC0 0x0A ] */ ldelay 10 +/* 0x3CDE [0xF4 0xF9 ] */ rjump LAYER_3CD9 + +.channel CHAN_3CE0 +/* 0x3CE0 [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x3CE2 [0xDA 0x69 0xBC ] */ env ENVELOPE_69BC +/* 0x3CE5 [0x88 0x3C 0xED ] */ ldlayer 0, LAYER_3CED +/* 0x3CE8 [0xD7 0x64 ] */ vibfreq 100 +/* 0x3CEA [0xD8 0x64 ] */ vibdepth 100 +/* 0x3CEC [0xFF ] */ end + +.layer LAYER_3CED +/* 0x3CED [0xC7 0x81 0x2B 0xFF ] */ portamento 0x81, PITCH_E4, 255 +/* 0x3CF1 [0x4F 0x80 0x96 0x64 ] */ notedv PITCH_C2, 150, 100 +/* 0x3CF5 [0xFF ] */ end + +.channel CHAN_3CF6 +/* 0x3CF6 [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x3CF8 [0x88 0x3D 0x00 ] */ ldlayer 0, LAYER_3D00 +/* 0x3CFB [0xD7 0x64 ] */ vibfreq 100 +/* 0x3CFD [0xD8 0x64 ] */ vibdepth 100 +/* 0x3CFF [0xFF ] */ end + +.layer LAYER_3D00 +/* 0x3D00 [0xC7 0x81 0x0F 0xC8 ] */ portamento 0x81, PITCH_C2, 200 +/* 0x3D04 [0x6B 0x80 0x96 0x64 ] */ notedv PITCH_E4, 150, 100 +/* 0x3D08 [0xFF ] */ end + +.channel CHAN_3D09 +/* 0x3D09 [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x3D0B [0x88 0x3D 0x14 ] */ ldlayer 0, LAYER_3D14 +/* 0x3D0E [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3D11 [0xED 0x18 ] */ gain 24 +/* 0x3D13 [0xFF ] */ end + +.layer LAYER_3D14 +/* 0x3D14 [0xC7 0x81 0x31 0xC8 ] */ portamento 0x81, PITCH_BF4, 200 +/* 0x3D18 [0x7C 0x0A 0x64 ] */ notedv PITCH_A5, 10, 100 +/* 0x3D1B [0xC7 0x81 0x3C 0x9B ] */ portamento 0x81, PITCH_A5, 155 +/* 0x3D1F [0x77 0x1E 0x64 ] */ notedv PITCH_E5, 30, 100 +/* 0x3D22 [0xFF ] */ end + +.channel CHAN_3D23 +/* 0x3D23 [0x88 0x3D 0x2C ] */ ldlayer 0, LAYER_3D2C +/* 0x3D26 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3D29 [0xED 0x18 ] */ gain 24 +/* 0x3D2B [0xFF ] */ end + +.layer LAYER_3D2C +/* 0x3D2C [0xC6 0x08 ] */ instr SF1_INST_8 +/* 0x3D2E [0xC7 0x81 0x31 0xC8 ] */ portamento 0x81, PITCH_BF4, 200 +/* 0x3D32 [0x7C 0x0A 0x64 ] */ notedv PITCH_A5, 10, 100 +/* 0x3D35 [0xC7 0x81 0x3C 0x9B ] */ portamento 0x81, PITCH_A5, 155 +/* 0x3D39 [0x77 0x3C 0x64 ] */ notedv PITCH_E5, 60, 100 +/* 0x3D3C [0xFF ] */ end + +.channel CHAN_3D3D +/* 0x3D3D [0x88 0x3D 0x47 ] */ ldlayer 0, LAYER_3D47 +/* 0x3D40 [0x89 0x3D 0x52 ] */ ldlayer 1, LAYER_3D52 +/* 0x3D43 [0x8A 0x3D 0x5D ] */ ldlayer 2, LAYER_3D5D +/* 0x3D46 [0xFF ] */ end + +.layer LAYER_3D47 +/* 0x3D47 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x3D49 [0xC7 0x85 0x0B 0x32 ] */ portamento 0x85, PITCH_AF1, 50 +/* 0x3D4D [0x5B 0x81 0x2C 0x64 ] */ notedv PITCH_C3, 300, 100 +/* 0x3D51 [0xFF ] */ end + +.layer LAYER_3D52 +/* 0x3D52 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x3D54 [0xC7 0x85 0x0D 0x32 ] */ portamento 0x85, PITCH_BF1, 50 +/* 0x3D58 [0x5D 0x81 0x22 0x64 ] */ notedv PITCH_D3, 290, 100 +/* 0x3D5C [0xFF ] */ end + +.layer LAYER_3D5D +/* 0x3D5D [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x3D5F [0xC7 0x81 0x0C 0xFF ] */ portamento 0x81, PITCH_A1, 255 +/* 0x3D63 [0x50 0x80 0xC8 0x64 ] */ notedv PITCH_DF2, 200, 100 +/* 0x3D67 [0xFF ] */ end + +.channel CHAN_3D68 +/* 0x3D68 [0xC1 0x05 ] */ instr SF1_INST_5 +/* 0x3D6A [0x88 0x3D 0x75 ] */ ldlayer 0, LAYER_3D75 +/* 0x3D6D [0x89 0x3D 0x73 ] */ ldlayer 1, LAYER_3D73 +/* 0x3D70 [0xED 0x12 ] */ gain 18 +/* 0x3D72 [0xFF ] */ end + +.layer LAYER_3D73 +/* 0x3D73 [0xC2 0x04 ] */ transpose 4 +.layer LAYER_3D75 +/* 0x3D75 [0xC7 0x81 0x03 0xC8 ] */ portamento 0x81, PITCH_C1, 200 +/* 0x3D79 [0x47 0x80 0x8C 0x64 ] */ notedv PITCH_E1, 140, 100 +/* 0x3D7D [0xFF ] */ end + +.channel CHAN_3D7E +/* 0x3D7E [0x88 0x3D 0xB4 ] */ ldlayer 0, LAYER_3DB4 +/* 0x3D81 [0x89 0x3D 0x8F ] */ ldlayer 1, LAYER_3D8F +/* 0x3D84 [0x8A 0x3D 0x91 ] */ ldlayer 2, LAYER_3D91 +/* 0x3D87 [0x8B 0x48 0x29 ] */ ldlayer 3, LAYER_4829 +/* 0x3D8A [0xD7 0x14 ] */ vibfreq 20 +/* 0x3D8C [0xD8 0x32 ] */ vibdepth 50 +/* 0x3D8E [0xFF ] */ end + +.layer LAYER_3D8F +/* 0x3D8F [0xC2 0xFA ] */ transpose -6 +.layer LAYER_3D91 +/* 0x3D91 [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x3D93 [0xC7 0x85 0x26 0xFF ] */ portamento 0x85, PITCH_B3, 255 +/* 0x3D97 [0x6B 0x1E 0x64 ] */ notedv PITCH_E4, 30, 100 +/* 0x3D9A [0x5A 0x80 0x96 0x64 ] */ notedv PITCH_B2, 150, 100 +/* 0x3D9E [0xC2 0xFB ] */ transpose -5 +/* 0x3DA0 [0xCB 0x69 0xDC 0x7F ] */ env ENVELOPE_69DC, 127 +/* 0x3DA4 [0xC7 0x85 0x1F 0xFF ] */ portamento 0x85, PITCH_E3, 255 +/* 0x3DA8 [0x64 0x3C 0x50 ] */ notedv PITCH_A3, 60, 80 +/* 0x3DAB [0xCB 0x6A 0x3C 0x7F ] */ env ENVELOPE_6A3C, 127 +/* 0x3DAF [0x51 0x80 0xE6 0x50 ] */ notedv PITCH_D2, 230, 80 +/* 0x3DB3 [0xFF ] */ end + +.layer LAYER_3DB4 +/* 0x3DB4 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x3DB6 [0xCB 0x69 0xCC 0xE6 ] */ env ENVELOPE_69CC, 230 +/* 0x3DBA [0xC7 0x81 0x0F 0x14 ] */ portamento 0x81, PITCH_C2, 20 +/* 0x3DBE [0x5F 0x80 0x96 0x64 ] */ notedv PITCH_E3, 150, 100 +/* 0x3DC2 [0xCB 0x6A 0x2C 0xF0 ] */ env ENVELOPE_6A2C, 240 +/* 0x3DC6 [0xC7 0x81 0x1F 0x64 ] */ portamento 0x81, PITCH_E3, 100 +/* 0x3DCA [0x4F 0x81 0x0E 0x64 ] */ notedv PITCH_C2, 270, 100 +/* 0x3DCE [0xFF ] */ end + +.channel CHAN_3DCF +/* 0x3DCF [0x88 0x3D 0xDF ] */ ldlayer 0, LAYER_3DDF +/* 0x3DD2 [0x89 0x3D 0xEA ] */ ldlayer 1, LAYER_3DEA +/* 0x3DD5 [0x8A 0x3D 0xF5 ] */ ldlayer 2, LAYER_3DF5 +/* 0x3DD8 [0xED 0x14 ] */ gain 20 +/* 0x3DDA [0xD7 0x46 ] */ vibfreq 70 +/* 0x3DDC [0xD8 0x32 ] */ vibdepth 50 +/* 0x3DDE [0xFF ] */ end + +.layer LAYER_3DDF +/* 0x3DDF [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x3DE1 [0xC7 0x81 0x0D 0x32 ] */ portamento 0x81, PITCH_BF1, 50 +/* 0x3DE5 [0x5D 0x81 0x18 0x64 ] */ notedv PITCH_D3, 280, 100 +/* 0x3DE9 [0xFF ] */ end + +.layer LAYER_3DEA +/* 0x3DEA [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x3DEC [0xC7 0x81 0x0B 0x32 ] */ portamento 0x81, PITCH_AF1, 50 +/* 0x3DF0 [0x5B 0x81 0x22 0x64 ] */ notedv PITCH_C3, 290, 100 +/* 0x3DF4 [0xFF ] */ end + +.layer LAYER_3DF5 +/* 0x3DF5 [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x3DF7 [0xC7 0x81 0x0C 0xFF ] */ portamento 0x81, PITCH_A1, 255 +/* 0x3DFB [0x50 0x80 0xC8 0x64 ] */ notedv PITCH_DF2, 200, 100 +/* 0x3DFF [0xFF ] */ end + +.channel CHAN_3E00 +/* 0x3E00 [0xC1 0x02 ] */ instr SF1_INST_2 +/* 0x3E02 [0x88 0x3E 0x0F ] */ ldlayer 0, LAYER_3E0F +/* 0x3E05 [0x89 0x3E 0x11 ] */ ldlayer 1, LAYER_3E11 +/* 0x3E08 [0xED 0x10 ] */ gain 16 +/* 0x3E0A [0xD7 0x0A ] */ vibfreq 10 +/* 0x3E0C [0xD8 0x14 ] */ vibdepth 20 +/* 0x3E0E [0xFF ] */ end + +.layer LAYER_3E0F +/* 0x3E0F [0xC2 0xF8 ] */ transpose -8 +.layer LAYER_3E11 +/* 0x3E11 [0x53 0xF5 0x30 0x64 ] */ notedv PITCH_E2, 30000, 100 +/* 0x3E15 [0xF4 0xFA ] */ rjump LAYER_3E11 + +.channel CHAN_3E17 +/* 0x3E17 [0xC1 0x28 ] */ instr SF1_INST_40 +/* 0x3E19 [0xDA 0x68 0x2C ] */ env ENVELOPE_682C +/* 0x3E1C [0xED 0x14 ] */ gain 20 +/* 0x3E1E [0x88 0x3E 0x25 ] */ ldlayer 0, LAYER_3E25 +/* 0x3E21 [0x89 0x3E 0x29 ] */ ldlayer 1, LAYER_3E29 +/* 0x3E24 [0xFF ] */ end + +.layer LAYER_3E25 +/* 0x3E25 [0xC2 0x2A ] */ transpose 42 +/* 0x3E27 [0xF4 0x02 ] */ rjump LAYER_3E2B + +.layer LAYER_3E29 +/* 0x3E29 [0xC2 0x30 ] */ transpose 48 +LAYER_3E2B: +/* 0x3E2B [0x73 0x46 0x64 ] */ notedv PITCH_C5, 70, 100 +/* 0x3E2E [0x6C 0x46 0x64 ] */ notedv PITCH_F4, 70, 100 +/* 0x3E31 [0x67 0x46 0x64 ] */ notedv PITCH_C4, 70, 100 +/* 0x3E34 [0x65 0x32 0x64 ] */ notedv PITCH_BF3, 50, 100 +/* 0x3E37 [0x62 0x28 0x64 ] */ notedv PITCH_G3, 40, 100 +/* 0x3E3A [0x5E 0x28 0x64 ] */ notedv PITCH_EF3, 40, 100 +/* 0x3E3D [0x5D 0x1E 0x64 ] */ notedv PITCH_D3, 30, 100 +/* 0x3E40 [0x59 0x1E 0x64 ] */ notedv PITCH_BF2, 30, 100 +/* 0x3E43 [0xFF ] */ end + +.channel CHAN_3E44 +/* 0x3E44 [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x3E46 [0xDA 0x68 0x3C ] */ env ENVELOPE_683C +/* 0x3E49 [0x88 0x3E 0x60 ] */ ldlayer 0, LAYER_3E60 +/* 0x3E4C [0x89 0x3E 0x56 ] */ ldlayer 1, LAYER_3E56 +/* 0x3E4F [0x8A 0x3E 0x58 ] */ ldlayer 2, LAYER_3E58 +/* 0x3E52 [0x8B 0x48 0x29 ] */ ldlayer 3, LAYER_4829 +/* 0x3E55 [0xFF ] */ end + +.layer LAYER_3E56 +/* 0x3E56 [0xC2 0xF8 ] */ transpose -8 +.layer LAYER_3E58 +/* 0x3E58 [0xC7 0x01 0x26 0x14 ] */ portamento 0x01, PITCH_B3, 20 +/* 0x3E5C [0x6A 0x50 0x64 ] */ notedv PITCH_EF4, 80, 100 +/* 0x3E5F [0xFF ] */ end + +.layer LAYER_3E60 +/* 0x3E60 [0xC7 0x85 0x1F 0x96 ] */ portamento 0x85, PITCH_E3, 150 +/* 0x3E64 [0x67 0x14 0x64 ] */ notedv PITCH_C4, 20, 100 +/* 0x3E67 [0x66 0x46 0x64 ] */ notedv PITCH_B3, 70, 100 +/* 0x3E6A [0xFF ] */ end + +.channel CHAN_3E6B +/* 0x3E6B [0x88 0x3E 0x6F ] */ ldlayer 0, LAYER_3E6F +/* 0x3E6E [0xFF ] */ end + +.layer LAYER_3E6F +/* 0x3E6F [0xC6 0x00 ] */ instr SF1_INST_0 +/* 0x3E71 [0xCB 0x68 0x6C 0xFF ] */ env ENVELOPE_686C, 255 +/* 0x3E75 [0xC2 0x04 ] */ transpose 4 +/* 0x3E77 [0xC7 0x81 0x1A 0x32 ] */ portamento 0x81, PITCH_B2, 50 +/* 0x3E7B [0x7E 0x50 0x64 ] */ notedv PITCH_B5, 80, 100 +/* 0x3E7E [0xFF ] */ end + +.channel CHAN_3E7F +/* 0x3E7F [0xDA 0x68 0x7C ] */ env ENVELOPE_687C +/* 0x3E82 [0x88 0x3E 0x93 ] */ ldlayer 0, LAYER_3E93 +/* 0x3E85 [0x89 0x3E 0x95 ] */ ldlayer 1, LAYER_3E95 +/* 0x3E88 [0x8A 0x3E 0xB4 ] */ ldlayer 2, LAYER_3EB4 +/* 0x3E8B [0x8B 0x48 0x29 ] */ ldlayer 3, LAYER_4829 +/* 0x3E8E [0xD7 0x14 ] */ vibfreq 20 +/* 0x3E90 [0xD8 0x32 ] */ vibdepth 50 +/* 0x3E92 [0xFF ] */ end + +.layer LAYER_3E93 +/* 0x3E93 [0xC2 0xFA ] */ transpose -6 +.layer LAYER_3E95 +/* 0x3E95 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x3E97 [0xC7 0x85 0x26 0xFF ] */ portamento 0x85, PITCH_B3, 255 +/* 0x3E9B [0x6B 0x1E 0x64 ] */ notedv PITCH_E4, 30, 100 +/* 0x3E9E [0x5A 0x80 0x96 0x64 ] */ notedv PITCH_B2, 150, 100 +/* 0x3EA2 [0xC2 0xFB ] */ transpose -5 +/* 0x3EA4 [0xC7 0x85 0x20 0xFF ] */ portamento 0x85, PITCH_F3, 255 +/* 0x3EA8 [0x67 0x3C 0x50 ] */ notedv PITCH_C4, 60, 80 +/* 0x3EAB [0xCB 0x6A 0x3C 0xC8 ] */ env ENVELOPE_6A3C, 200 +/* 0x3EAF [0x5A 0x80 0xC8 0x50 ] */ notedv PITCH_B2, 200, 80 +/* 0x3EB3 [0xFF ] */ end + +.layer LAYER_3EB4 +/* 0x3EB4 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x3EB6 [0xCB 0x69 0xCC 0xC8 ] */ env ENVELOPE_69CC, 200 +/* 0x3EBA [0xC7 0x81 0x0F 0x14 ] */ portamento 0x81, PITCH_C2, 20 +/* 0x3EBE [0x5F 0x80 0x96 0x64 ] */ notedv PITCH_E3, 150, 100 +/* 0x3EC2 [0xCB 0x6A 0x2C 0xC8 ] */ env ENVELOPE_6A2C, 200 +/* 0x3EC6 [0xC7 0x81 0x1F 0x64 ] */ portamento 0x81, PITCH_E3, 100 +/* 0x3ECA [0x4F 0x81 0x2C 0x64 ] */ notedv PITCH_C2, 300, 100 +/* 0x3ECE [0xFF ] */ end + +.channel CHAN_3ECF +/* 0x3ECF [0xC1 0x04 ] */ instr SF1_INST_4 +/* 0x3ED1 [0x88 0x3E 0xD8 ] */ ldlayer 0, LAYER_3ED8 +/* 0x3ED4 [0x89 0x3E 0xDA ] */ ldlayer 1, LAYER_3EDA +/* 0x3ED7 [0xFF ] */ end + +.layer LAYER_3ED8 +/* 0x3ED8 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_3EDA +/* 0x3EDA [0xC7 0x81 0x1F 0x40 ] */ portamento 0x81, PITCH_E3, 64 +/* 0x3EDE [0x67 0x32 0x64 ] */ notedv PITCH_C4, 50, 100 +/* 0x3EE1 [0xFF ] */ end + +.channel CHAN_3EE2 +/* 0x3EE2 [0xC1 0x04 ] */ instr SF1_INST_4 +/* 0x3EE4 [0x88 0x3E 0xEB ] */ ldlayer 0, LAYER_3EEB +/* 0x3EE7 [0x89 0x3E 0xED ] */ ldlayer 1, LAYER_3EED +/* 0x3EEA [0xFF ] */ end + +.layer LAYER_3EEB +/* 0x3EEB [0xC2 0xFE ] */ transpose -2 +.layer LAYER_3EED +/* 0x3EED [0xC7 0x81 0x27 0x40 ] */ portamento 0x81, PITCH_C4, 64 +/* 0x3EF1 [0x5F 0x32 0x64 ] */ notedv PITCH_E3, 50, 100 +/* 0x3EF4 [0xFF ] */ end + +.channel CHAN_3EF5 +/* 0x3EF5 [0xC1 0x02 ] */ instr SF1_INST_2 +/* 0x3EF7 [0x88 0x3E 0xFD ] */ ldlayer 0, LAYER_3EFD +/* 0x3EFA [0xED 0x20 ] */ gain 32 +/* 0x3EFC [0xFF ] */ end + +.layer LAYER_3EFD +/* 0x3EFD [0xC7 0x81 0x1F 0x40 ] */ portamento 0x81, PITCH_E3, 64 +/* 0x3F01 [0x67 0x0C 0x64 ] */ notedv PITCH_C4, 12, 100 +/* 0x3F04 [0xFF ] */ end + +.channel CHAN_3F05 +/* 0x3F05 [0x88 0x3F 0x0C ] */ ldlayer 0, LAYER_3F0C +/* 0x3F08 [0x89 0x53 0x20 ] */ ldlayer 1, LAYER_5320 +/* 0x3F0B [0xFF ] */ end + +.layer LAYER_3F0C +/* 0x3F0C [0xC6 0x04 ] */ instr SF1_INST_4 +/* 0x3F0E [0x68 0x20 0x46 ] */ notedv PITCH_DF4, 32, 70 +/* 0x3F11 [0xFF ] */ end + +.channel CHAN_3F12 +/* 0x3F12 [0x88 0x3F 0x16 ] */ ldlayer 0, LAYER_3F16 +/* 0x3F15 [0xFF ] */ end + +.layer LAYER_3F16 +/* 0x3F16 [0xC6 0x10 ] */ instr SF1_INST_16 +/* 0x3F18 [0xC2 0x04 ] */ transpose 4 +/* 0x3F1A [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x3F1E [0x7E 0x0A 0x64 ] */ notedv PITCH_B5, 10, 100 +/* 0x3F21 [0xC7 0x81 0x3C 0xFF ] */ portamento 0x81, PITCH_A5, 255 +/* 0x3F25 [0x77 0x19 0x64 ] */ notedv PITCH_E5, 25, 100 +/* 0x3F28 [0xFF ] */ end + +.channel CHAN_3F29 +/* 0x3F29 [0x88 0x3F 0x2D ] */ ldlayer 0, LAYER_3F2D +/* 0x3F2C [0xFF ] */ end + +.layer LAYER_3F2D +/* 0x3F2D [0xC6 0x10 ] */ instr SF1_INST_16 +/* 0x3F2F [0xC7 0x81 0x3B 0xFF ] */ portamento 0x81, PITCH_AF5, 255 +/* 0x3F33 [0x77 0x0A 0x64 ] */ notedv PITCH_E5, 10, 100 +/* 0x3F36 [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x3F3A [0x6C 0x1E 0x64 ] */ notedv PITCH_F4, 30, 100 +/* 0x3F3D [0xFF ] */ end + +.channel CHAN_3F3E +/* 0x3F3E [0x88 0x3F 0x49 ] */ ldlayer 0, LAYER_3F49 +/* 0x3F41 [0x89 0x3F 0x4B ] */ ldlayer 1, LAYER_3F4B +/* 0x3F44 [0xD7 0x0A ] */ vibfreq 10 +/* 0x3F46 [0xD8 0x14 ] */ vibdepth 20 +/* 0x3F48 [0xFF ] */ end + +.layer LAYER_3F49 +/* 0x3F49 [0xC2 0xFF ] */ transpose -1 +.layer LAYER_3F4B +/* 0x3F4B [0xC6 0x02 ] */ instr SF1_INST_2 +LAYER_3F4D: +/* 0x3F4D [0x46 0xF5 0x30 0x64 ] */ notedv PITCH_EF1, 30000, 100 +/* 0x3F51 [0xF4 0xFA ] */ rjump LAYER_3F4D + +.channel CHAN_3F53 +/* 0x3F53 [0xC1 0x17 ] */ instr SF1_INST_23 +/* 0x3F55 [0xDA 0x65 0xD8 ] */ env ENVELOPE_65D8 +/* 0x3F58 [0x88 0x3F 0x5F ] */ ldlayer 0, LAYER_3F5F +/* 0x3F5B [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3F5E [0xFF ] */ end + +.layer LAYER_3F5F +/* 0x3F5F [0xC7 0x81 0x24 0xFF ] */ portamento 0x81, PITCH_A3, 255 +/* 0x3F63 [0x6B 0x0A 0x64 ] */ notedv PITCH_E4, 10, 100 +/* 0x3F66 [0xC7 0x81 0x2C 0xFF ] */ portamento 0x81, PITCH_F4, 255 +/* 0x3F6A [0x66 0x1E 0x64 ] */ notedv PITCH_B3, 30, 100 +/* 0x3F6D [0xFF ] */ end + +.channel CHAN_3F6E +/* 0x3F6E [0x88 0x3F 0x78 ] */ ldlayer 0, LAYER_3F78 +/* 0x3F71 [0x89 0x3F 0x89 ] */ ldlayer 1, LAYER_3F89 +/* 0x3F74 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x3F77 [0xFF ] */ end + +.layer LAYER_3F78 +/* 0x3F78 [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x3F7A [0xC7 0x81 0x20 0xFF ] */ portamento 0x81, PITCH_F3, 255 +/* 0x3F7E [0x67 0x0A 0x64 ] */ notedv PITCH_C4, 10, 100 +/* 0x3F81 [0xC7 0x81 0x28 0xFF ] */ portamento 0x81, PITCH_DF4, 255 +/* 0x3F85 [0x62 0x5C 0x64 ] */ notedv PITCH_G3, 92, 100 +/* 0x3F88 [0xFF ] */ end + +.layer LAYER_3F89 +/* 0x3F89 [0xC6 0x17 ] */ instr SF1_INST_23 +/* 0x3F8B [0xC7 0x81 0x2B 0xFF ] */ portamento 0x81, PITCH_E4, 255 +/* 0x3F8F [0x72 0x0F 0x50 ] */ notedv PITCH_B4, 15, 80 +/* 0x3F92 [0xC7 0x81 0x30 0xFF ] */ portamento 0x81, PITCH_A4, 255 +/* 0x3F96 [0x6A 0x24 0x50 ] */ notedv PITCH_EF4, 36, 80 +/* 0x3F99 [0xFF ] */ end + +.channel CHAN_3F9A +/* 0x3F9A [0xC1 0x17 ] */ instr SF1_INST_23 +/* 0x3F9C [0x88 0x3F 0xA7 ] */ ldlayer 0, LAYER_3FA7 +/* 0x3F9F [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x3FA2 [0xD7 0x30 ] */ vibfreq 48 +/* 0x3FA4 [0xD8 0x30 ] */ vibdepth 48 +/* 0x3FA6 [0xFF ] */ end + +.layer LAYER_3FA7 +/* 0x3FA7 [0xC2 0xF6 ] */ transpose -10 +/* 0x3FA9 [0xF4 0xB4 ] */ rjump LAYER_3F5F + +/* 0x3FAB [0xFF ] */ end + +.channel CHAN_3FAC +/* 0x3FAC [0x88 0x3F 0xBA ] */ ldlayer 0, LAYER_3FBA +/* 0x3FAF [0x89 0x3F 0xCB ] */ ldlayer 1, LAYER_3FCB +/* 0x3FB2 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x3FB5 [0xD7 0x30 ] */ vibfreq 48 +/* 0x3FB7 [0xD8 0x30 ] */ vibdepth 48 +/* 0x3FB9 [0xFF ] */ end + +.layer LAYER_3FBA +/* 0x3FBA [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x3FBC [0xC7 0x81 0x16 0x7F ] */ portamento 0x81, PITCH_G2, 127 +/* 0x3FC0 [0x68 0x28 0x64 ] */ notedv PITCH_DF4, 40, 100 +/* 0x3FC3 [0xC7 0x81 0x26 0xFF ] */ portamento 0x81, PITCH_B3, 255 +/* 0x3FC7 [0x58 0x7F 0x64 ] */ notedv PITCH_A2, 127, 100 +/* 0x3FCA [0xFF ] */ end + +.layer LAYER_3FCB +/* 0x3FCB [0xC2 0xF4 ] */ transpose -12 +/* 0x3FCD [0xF4 0xBA ] */ rjump LAYER_3F89 + +/* 0x3FCF [0xFF ] */ end + +.channel CHAN_3FD0 +/* 0x3FD0 [0x88 0x48 0x29 ] */ ldlayer 0, LAYER_4829 +/* 0x3FD3 [0x89 0x3F 0xD7 ] */ ldlayer 1, LAYER_3FD7 +/* 0x3FD6 [0xFF ] */ end + +.layer LAYER_3FD7 +/* 0x3FD7 [0xC6 0x13 ] */ instr SF1_INST_19 +/* 0x3FD9 [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x3FDD [0x7E 0x0A 0x64 ] */ notedv PITCH_B5, 10, 100 +/* 0x3FE0 [0xC7 0x81 0x3C 0xFF ] */ portamento 0x81, PITCH_A5, 255 +/* 0x3FE4 [0x77 0x14 0x64 ] */ notedv PITCH_E5, 20, 100 +/* 0x3FE7 [0xFF ] */ end + +.channel CHAN_3FE8 +/* 0x3FE8 [0x88 0x3F 0xD7 ] */ ldlayer 0, LAYER_3FD7 +/* 0x3FEB [0xFF ] */ end + +.channel CHAN_3FEC +/* 0x3FEC [0xC1 0x0A ] */ instr SF1_INST_10 +/* 0x3FEE [0x88 0x3F 0xF2 ] */ ldlayer 0, LAYER_3FF2 +/* 0x3FF1 [0xFF ] */ end + +.layer LAYER_3FF2 +/* 0x3FF2 [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x3FF6 [0x7E 0x14 0x64 ] */ notedv PITCH_B5, 20, 100 +/* 0x3FF9 [0xC7 0x81 0x3C 0xFF ] */ portamento 0x81, PITCH_A5, 255 +/* 0x3FFD [0x77 0x14 0x64 ] */ notedv PITCH_E5, 20, 100 +/* 0x4000 [0xFF ] */ end + +.channel CHAN_4001 +/* 0x4001 [0x88 0x40 0x0C ] */ ldlayer 0, LAYER_400C +/* 0x4004 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x4007 [0xD7 0x64 ] */ vibfreq 100 +/* 0x4009 [0xD8 0x7F ] */ vibdepth 127 +/* 0x400B [0xFF ] */ end + +.layer LAYER_400C +/* 0x400C [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x400E [0xC4 ] */ legato +/* 0x400F [0xC7 0x85 0x1D 0xFF ] */ portamento 0x85, PITCH_D3, 255 +/* 0x4013 [0x65 0x14 0x64 ] */ notedv PITCH_BF3, 20, 100 +/* 0x4016 [0x59 0x3C 0x64 ] */ notedv PITCH_BF2, 60, 100 +/* 0x4019 [0xFF ] */ end + +.channel CHAN_401A +/* 0x401A [0xC1 0x02 ] */ instr SF1_INST_2 +/* 0x401C [0xDA 0x68 0xDC ] */ env ENVELOPE_68DC +/* 0x401F [0x88 0x40 0x23 ] */ ldlayer 0, LAYER_4023 +/* 0x4022 [0xFF ] */ end + +.layer LAYER_4023 +/* 0x4023 [0xC7 0x81 0x07 0x64 ] */ portamento 0x81, PITCH_E1, 100 +/* 0x4027 [0x4C 0x19 0x64 ] */ notedv PITCH_A1, 25, 100 +/* 0x402A [0xFF ] */ end + +.channel CHAN_402B +/* 0x402B [0xC1 0x03 ] */ instr SF1_INST_3 +/* 0x402D [0xDA 0x68 0xEC ] */ env ENVELOPE_68EC +/* 0x4030 [0x88 0x40 0x38 ] */ ldlayer 0, LAYER_4038 +/* 0x4033 [0xD7 0x64 ] */ vibfreq 100 +/* 0x4035 [0xD8 0x32 ] */ vibdepth 50 +/* 0x4037 [0xFF ] */ end + +.layer LAYER_4038 +/* 0x4038 [0xC7 0x81 0x2D 0xFA ] */ portamento 0x81, PITCH_GF4, 250 +/* 0x403C [0x61 0x28 0x64 ] */ notedv PITCH_GF3, 40, 100 +/* 0x403F [0xFF ] */ end + +.channel CHAN_4040 +/* 0x4040 [0x88 0x40 0x4B ] */ ldlayer 0, LAYER_404B +/* 0x4043 [0x89 0x40 0x57 ] */ ldlayer 1, LAYER_4057 +/* 0x4046 [0xD7 0x32 ] */ vibfreq 50 +/* 0x4048 [0xD8 0x3C ] */ vibdepth 60 +/* 0x404A [0xFF ] */ end + +.layer LAYER_404B +/* 0x404B [0xC6 0x18 ] */ instr SF1_INST_24 +/* 0x404D [0xC2 0x30 ] */ transpose 48 +/* 0x404F [0xC7 0x81 0x20 0x64 ] */ portamento 0x81, PITCH_F3, 100 +/* 0x4053 [0x5D 0x23 0x50 ] */ notedv PITCH_D3, 35, 80 +/* 0x4056 [0xFF ] */ end + +.layer LAYER_4057 +/* 0x4057 [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x4059 [0xC7 0x81 0x27 0x64 ] */ portamento 0x81, PITCH_C4, 100 +/* 0x405D [0x64 0x28 0x64 ] */ notedv PITCH_A3, 40, 100 +/* 0x4060 [0xFF ] */ end + +.channel CHAN_4061 +/* 0x4061 [0x89 0x40 0x6B ] */ ldlayer 1, LAYER_406B +/* 0x4064 [0x88 0x40 0x77 ] */ ldlayer 0, LAYER_4077 +/* 0x4067 [0x8A 0x40 0x81 ] */ ldlayer 2, LAYER_4081 +/* 0x406A [0xFF ] */ end + +.layer LAYER_406B +/* 0x406B [0xC6 0x18 ] */ instr SF1_INST_24 +/* 0x406D [0xC2 0x30 ] */ transpose 48 +/* 0x406F [0xC7 0x81 0x22 0xC8 ] */ portamento 0x81, PITCH_G3, 200 +/* 0x4073 [0x66 0x23 0x50 ] */ notedv PITCH_B3, 35, 80 +/* 0x4076 [0xFF ] */ end + +.layer LAYER_4077 +/* 0x4077 [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x4079 [0xC7 0x81 0x27 0xFF ] */ portamento 0x81, PITCH_C4, 255 +/* 0x407D [0x6C 0x32 0x64 ] */ notedv PITCH_F4, 50, 100 +/* 0x4080 [0xFF ] */ end + +.layer LAYER_4081 +/* 0x4081 [0xC6 0x1C ] */ instr SF1_INST_28 +/* 0x4083 [0xCB 0x68 0x2C 0xF0 ] */ env ENVELOPE_682C, 240 +/* 0x4087 [0xC0 0x0A ] */ ldelay 10 +/* 0x4089 [0x69 0x1E 0x64 ] */ notedv PITCH_D4, 30, 100 +/* 0x408C [0xFF ] */ end + +.channel CHAN_408D +/* 0x408D [0xC1 0x00 ] */ instr SF1_INST_0 +/* 0x408F [0xDA 0x68 0x6C ] */ env ENVELOPE_686C +/* 0x4092 [0x88 0x40 0x98 ] */ ldlayer 0, LAYER_4098 +/* 0x4095 [0xED 0x14 ] */ gain 20 +/* 0x4097 [0xFF ] */ end + +.layer LAYER_4098 +/* 0x4098 [0xC2 0x05 ] */ transpose 5 +/* 0x409A [0xC7 0x81 0x1A 0xC8 ] */ portamento 0x81, PITCH_B2, 200 +/* 0x409E [0x7E 0x80 0xC8 0x64 ] */ notedv PITCH_B5, 200, 100 +/* 0x40A2 [0xFF ] */ end + +.channel CHAN_40A3 +/* 0x40A3 [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x40A5 [0xDA 0x69 0xBC ] */ env ENVELOPE_69BC +/* 0x40A8 [0x88 0x40 0xB0 ] */ ldlayer 0, LAYER_40B0 +/* 0x40AB [0xD7 0x64 ] */ vibfreq 100 +/* 0x40AD [0xD8 0x64 ] */ vibdepth 100 +/* 0x40AF [0xFF ] */ end + +.layer LAYER_40B0 +/* 0x40B0 [0xC7 0x81 0x37 0xFF ] */ portamento 0x81, PITCH_E5, 255 +/* 0x40B4 [0x5B 0x50 0x64 ] */ notedv PITCH_C3, 80, 100 +/* 0x40B7 [0xFF ] */ end + +.channel CHAN_40B8 +/* 0x40B8 [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x40BA [0x88 0x40 0xC1 ] */ ldlayer 0, LAYER_40C1 +/* 0x40BD [0x89 0x40 0xC3 ] */ ldlayer 1, LAYER_40C3 +/* 0x40C0 [0xFF ] */ end + +.layer LAYER_40C1 +/* 0x40C1 [0xC2 0xFA ] */ transpose -6 +.layer LAYER_40C3 +/* 0x40C3 [0x5B 0x81 0xA0 0x64 ] */ notedv PITCH_C3, 416, 100 +/* 0x40C7 [0xFF ] */ end + +.channel CHAN_40C8 +/* 0x40C8 [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x40CA [0xDA 0x69 0xFC ] */ env ENVELOPE_69FC +/* 0x40CD [0x88 0x40 0xD3 ] */ ldlayer 0, LAYER_40D3 +/* 0x40D0 [0xED 0x10 ] */ gain 16 +/* 0x40D2 [0xFF ] */ end + +.layer LAYER_40D3 +/* 0x40D3 [0xC7 0x81 0x24 0x64 ] */ portamento 0x81, PITCH_A3, 100 +/* 0x40D7 [0x67 0x78 0x64 ] */ notedv PITCH_C4, 120, 100 +/* 0x40DA [0xFF ] */ end + +.channel CHAN_40DB +/* 0x40DB [0xC1 0x05 ] */ instr SF1_INST_5 +/* 0x40DD [0x88 0x40 0xE3 ] */ ldlayer 0, LAYER_40E3 +/* 0x40E0 [0xED 0x14 ] */ gain 20 +/* 0x40E2 [0xFF ] */ end + +.layer LAYER_40E3 +/* 0x40E3 [0xC7 0x81 0x09 0x80 ] */ portamento 0x81, PITCH_GF1, 128 +/* 0x40E7 [0x4C 0x0F 0x64 ] */ notedv PITCH_A1, 15, 100 +/* 0x40EA [0xFF ] */ end + +.channel CHAN_40EB +/* 0x40EB [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x40ED [0x88 0x40 0xF8 ] */ ldlayer 0, LAYER_40F8 +/* 0x40F0 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x40F3 [0xD7 0x64 ] */ vibfreq 100 +/* 0x40F5 [0xD8 0x46 ] */ vibdepth 70 +/* 0x40F7 [0xFF ] */ end + +.layer LAYER_40F8 +/* 0x40F8 [0xC4 ] */ legato +/* 0x40F9 [0xC7 0x85 0x2A 0x80 ] */ portamento 0x85, PITCH_EF4, 128 +/* 0x40FD [0x6F 0x1E 0x64 ] */ notedv PITCH_AF4, 30, 100 +/* 0x4100 [0x67 0x28 0x64 ] */ notedv PITCH_C4, 40, 100 +/* 0x4103 [0xFF ] */ end + +.channel CHAN_4104 +/* 0x4104 [0x88 0x41 0x0F ] */ ldlayer 0, LAYER_410F +/* 0x4107 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x410A [0xD7 0x84 ] */ vibfreq 132 +/* 0x410C [0xD8 0x46 ] */ vibdepth 70 +/* 0x410E [0xFF ] */ end + +.layer LAYER_410F +/* 0x410F [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x4111 [0xC4 ] */ legato +/* 0x4112 [0xC7 0x85 0x2E 0x80 ] */ portamento 0x85, PITCH_G4, 128 +/* 0x4116 [0x73 0x28 0x64 ] */ notedv PITCH_C5, 40, 100 +/* 0x4119 [0x6B 0x30 0x64 ] */ notedv PITCH_E4, 48, 100 +/* 0x411C [0xFF ] */ end + +.channel CHAN_411D +/* 0x411D [0xC1 0x19 ] */ instr SF1_INST_25 +/* 0x411F [0xDA 0x6A 0x0C ] */ env ENVELOPE_6A0C +/* 0x4122 [0x88 0x41 0x26 ] */ ldlayer 0, LAYER_4126 +/* 0x4125 [0xFF ] */ end + +.layer LAYER_4126 +/* 0x4126 [0xC4 ] */ legato +/* 0x4127 [0xC7 0x85 0x1F 0xFF ] */ portamento 0x85, PITCH_E3, 255 +/* 0x412B [0x64 0x32 0x64 ] */ notedv PITCH_A3, 50, 100 +/* 0x412E [0x57 0x46 0x64 ] */ notedv PITCH_AF2, 70, 100 +/* 0x4131 [0xFF ] */ end + +.channel CHAN_4132 +/* 0x4132 [0x88 0x41 0x4B ] */ ldlayer 0, LAYER_414B +/* 0x4135 [0x89 0x41 0x39 ] */ ldlayer 1, LAYER_4139 +/* 0x4138 [0xFF ] */ end + +.layer LAYER_4139 +/* 0x4139 [0xC6 0x02 ] */ instr SF1_INST_2 +/* 0x413B [0xCB 0x6A 0x0C 0xDC ] */ env ENVELOPE_6A0C, 220 +/* 0x413F [0xC4 ] */ legato +/* 0x4140 [0xC7 0x85 0x1B 0xC8 ] */ portamento 0x85, PITCH_C3, 200 +/* 0x4144 [0x60 0x14 0x3C ] */ notedv PITCH_F3, 20, 60 +/* 0x4147 [0x53 0x32 0x3C ] */ notedv PITCH_E2, 50, 60 +/* 0x414A [0xFF ] */ end + +.layer LAYER_414B +/* 0x414B [0xC6 0x19 ] */ instr SF1_INST_25 +/* 0x414D [0xCB 0x6A 0x0C 0x80 ] */ env ENVELOPE_6A0C, 128 +/* 0x4151 [0xC4 ] */ legato +/* 0x4152 [0xC7 0x85 0x1F 0xC8 ] */ portamento 0x85, PITCH_E3, 200 +/* 0x4156 [0x64 0x32 0x64 ] */ notedv PITCH_A3, 50, 100 +/* 0x4159 [0x57 0x46 0x64 ] */ notedv PITCH_AF2, 70, 100 +/* 0x415C [0xFF ] */ end + +.channel CHAN_415D +/* 0x415D [0xC1 0x1E ] */ instr SF1_INST_30 +CHAN_415F: +/* 0x415F [0x88 0x41 0x79 ] */ ldlayer 0, LAYER_4179 +CHAN_4162: +/* 0x4162 [0xB8 0x06 ] */ rand 6 +/* 0x4164 [0xC7 0x03 0x41 0x7A ] */ stseq 3, LAYER_4179 + STSEQ_NOTEDV_DELAY_HI +/* 0x4168 [0xC7 0x03 0x41 0x73 ] */ stseq 3, CHAN_4172 + STSEQ_LDI_IMM +/* 0x416C [0xB8 0x08 ] */ rand 8 +/* 0x416E [0xC7 0x5B 0x41 0x79 ] */ stseq (NOTEDV_OPCODE | PITCH_C3), LAYER_4179 + STSEQ_NOTEDV_OPCODE_PITCH +CHAN_4172: +/* 0x4172 [0xCC 0x01 ] */ ldi 1 +/* 0x4174 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x4177 [0xF4 0xE9 ] */ rjump CHAN_4162 + +.layer LAYER_4179 +/* 0x4179 [0x5B 0x50 0x50 ] */ notedv PITCH_C3, 80, 80 +/* 0x417C [0xF4 0xFB ] */ rjump LAYER_4179 + +.channel CHAN_417E +/* 0x417E [0xC1 0x1E ] */ instr SF1_INST_30 +/* 0x4180 [0xD9 0xD0 ] */ releaserate 208 +/* 0x4182 [0xF4 0xDB ] */ rjump CHAN_415F + +.channel CHAN_4184 +/* 0x4184 [0x88 0x48 0x29 ] */ ldlayer 0, LAYER_4829 +/* 0x4187 [0x89 0x41 0x8B ] */ ldlayer 1, LAYER_418B +/* 0x418A [0xFF ] */ end + +.layer LAYER_418B +/* 0x418B [0xC6 0x17 ] */ instr SF1_INST_23 +/* 0x418D [0xC7 0x81 0x20 0xFF ] */ portamento 0x81, PITCH_F3, 255 +/* 0x4191 [0x67 0x0A 0x64 ] */ notedv PITCH_C4, 10, 100 +/* 0x4194 [0xC7 0x81 0x29 0xFF ] */ portamento 0x81, PITCH_D4, 255 +/* 0x4198 [0x60 0x0E 0x64 ] */ notedv PITCH_F3, 14, 100 +/* 0x419B [0xFF ] */ end + +.channel CHAN_419C +/* 0x419C [0x88 0x41 0xA6 ] */ ldlayer 0, LAYER_41A6 +/* 0x419F [0x89 0x41 0xB8 ] */ ldlayer 1, LAYER_41B8 +/* 0x41A2 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x41A5 [0xFF ] */ end + +.layer LAYER_41A6 +/* 0x41A6 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x41A8 [0xC4 ] */ legato +/* 0x41A9 [0xC7 0x81 0x20 0x40 ] */ portamento 0x81, PITCH_F3, 64 +/* 0x41AD [0x67 0x14 0x50 ] */ notedv PITCH_C4, 20, 80 +/* 0x41B0 [0xC7 0x81 0x25 0xFF ] */ portamento 0x81, PITCH_BF3, 255 +/* 0x41B4 [0x59 0x24 0x50 ] */ notedv PITCH_BF2, 36, 80 +/* 0x41B7 [0xFF ] */ end + +.layer LAYER_41B8 +/* 0x41B8 [0xC2 0xF8 ] */ transpose -8 +/* 0x41BA [0xF4 0xCF ] */ rjump LAYER_418B + +.channel CHAN_41BC +/* 0x41BC [0x88 0x41 0xC0 ] */ ldlayer 0, LAYER_41C0 +/* 0x41BF [0xFF ] */ end + +.layer LAYER_41C0 +/* 0x41C0 [0xC6 0x2C ] */ instr SF1_INST_44 +/* 0x41C2 [0xCB 0x6A 0x1C 0xF9 ] */ env ENVELOPE_6A1C, 249 +/* 0x41C6 [0xC7 0x81 0x19 0xFF ] */ portamento 0x81, PITCH_BF2, 255 +/* 0x41CA [0x62 0x80 0x90 0x64 ] */ notedv PITCH_G3, 144, 100 +/* 0x41CE [0xFF ] */ end + +.channel CHAN_41CF +/* 0x41CF [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x41D1 [0xDA 0x69 0xCC ] */ env ENVELOPE_69CC +/* 0x41D4 [0x88 0x41 0xE0 ] */ ldlayer 0, LAYER_41E0 +/* 0x41D7 [0xE1 0x46 0x6E 0x12 ] */ vibfreqgrad 70, 110, 18 +/* 0x41DB [0xE2 0x14 0x50 0x0A ] */ vibdepthgrad 20, 80, 10 +/* 0x41DF [0xFF ] */ end + +.layer LAYER_41E0 +/* 0x41E0 [0xC7 0x81 0x15 0xFF ] */ portamento 0x81, PITCH_GF2, 255 +/* 0x41E4 [0x59 0x80 0xE6 0x64 ] */ notedv PITCH_BF2, 230, 100 +/* 0x41E8 [0xFF ] */ end + +.channel CHAN_41E9 +/* 0x41E9 [0x88 0x41 0xEF ] */ ldlayer 0, LAYER_41EF +/* 0x41EC [0xED 0x16 ] */ gain 22 +/* 0x41EE [0xFF ] */ end + +.layer LAYER_41EF +/* 0x41EF [0xC6 0x1D ] */ instr SF1_INST_29 +/* 0x41F1 [0x67 0x81 0x18 0x64 ] */ notedv PITCH_C4, 280, 100 +/* 0x41F5 [0xFF ] */ end + +.channel CHAN_41F6 +/* 0x41F6 [0xC1 0x1E ] */ instr SF1_INST_30 +/* 0x41F8 [0x88 0x41 0xFE ] */ ldlayer 0, LAYER_41FE +/* 0x41FB [0xED 0x14 ] */ gain 20 +/* 0x41FD [0xFF ] */ end + +.layer LAYER_41FE +/* 0x41FE [0x64 0x50 0x64 ] */ notedv PITCH_A3, 80, 100 +/* 0x4201 [0xFF ] */ end + +.channel CHAN_4202 +/* 0x4202 [0xC1 0x1F ] */ instr SF1_INST_31 +/* 0x4204 [0x88 0x42 0x08 ] */ ldlayer 0, LAYER_4208 +/* 0x4207 [0xFF ] */ end + +.layer LAYER_4208 +/* 0x4208 [0x69 0xF5 0x30 0x64 ] */ notedv PITCH_D4, 30000, 100 +/* 0x420C [0xF4 0xFA ] */ rjump LAYER_4208 + +.channel CHAN_420E +/* 0x420E [0x88 0x42 0x14 ] */ ldlayer 0, LAYER_4214 +/* 0x4211 [0xED 0x18 ] */ gain 24 +/* 0x4213 [0xFF ] */ end + +.layer LAYER_4214 +/* 0x4214 [0xC6 0x20 ] */ instr SF1_INST_32 +/* 0x4216 [0x6C 0x5A 0x64 ] */ notedv PITCH_F4, 90, 100 +/* 0x4219 [0xFF ] */ end + +.channel CHAN_421A +/* 0x421A [0x88 0x42 0x20 ] */ ldlayer 0, LAYER_4220 +/* 0x421D [0xED 0x18 ] */ gain 24 +/* 0x421F [0xFF ] */ end + +.layer LAYER_4220 +/* 0x4220 [0xC6 0x21 ] */ instr SF1_INST_33 +/* 0x4222 [0x69 0x5A 0x64 ] */ notedv PITCH_D4, 90, 100 +/* 0x4225 [0xFF ] */ end + +.channel CHAN_4226 +/* 0x4226 [0xC1 0x24 ] */ instr SF1_INST_36 +/* 0x4228 [0x88 0x42 0x2E ] */ ldlayer 0, LAYER_422E +/* 0x422B [0xED 0x18 ] */ gain 24 +/* 0x422D [0xFF ] */ end + +.layer LAYER_422E +/* 0x422E [0xC7 0x81 0x27 0x32 ] */ portamento 0x81, PITCH_C4, 50 +/* 0x4232 [0x6C 0x30 0x64 ] */ notedv PITCH_F4, 48, 100 +/* 0x4235 [0xFF ] */ end + +.channel CHAN_4236 +/* 0x4236 [0x88 0x42 0x3E ] */ ldlayer 0, LAYER_423E +/* 0x4239 [0xD7 0x80 ] */ vibfreq 128 +/* 0x423B [0xD8 0x80 ] */ vibdepth 128 +/* 0x423D [0xFF ] */ end + +.layer LAYER_423E +/* 0x423E [0xC6 0x02 ] */ instr SF1_INST_2 +/* 0x4240 [0xC4 ] */ legato +/* 0x4241 [0xC7 0x81 0x25 0xFF ] */ portamento 0x81, PITCH_BF3, 255 +LAYER_4245: +/* 0x4245 [0x61 0x80 0xC8 0x64 ] */ notedv PITCH_GF3, 200, 100 +/* 0x4249 [0xF4 0xFA ] */ rjump LAYER_4245 + +.channel CHAN_424B +/* 0x424B [0x88 0x42 0x56 ] */ ldlayer 0, LAYER_4256 +/* 0x424E [0x89 0x4B 0x32 ] */ ldlayer 1, LAYER_4B32 +/* 0x4251 [0xD7 0x80 ] */ vibfreq 128 +/* 0x4253 [0xD8 0x60 ] */ vibdepth 96 +/* 0x4255 [0xFF ] */ end + +.layer LAYER_4256 +/* 0x4256 [0xC6 0x02 ] */ instr SF1_INST_2 +/* 0x4258 [0xC2 0x0C ] */ transpose 12 +/* 0x425A [0xC4 ] */ legato +/* 0x425B [0xF4 0xE8 ] */ rjump LAYER_4245 + +.channel CHAN_425D +/* 0x425D [0x88 0x42 0x61 ] */ ldlayer 0, LAYER_4261 +/* 0x4260 [0xFF ] */ end + +.layer LAYER_4261 +/* 0x4261 [0xC6 0x1D ] */ instr SF1_INST_29 +/* 0x4263 [0x73 0x80 0x8C 0x64 ] */ notedv PITCH_C5, 140, 100 +/* 0x4267 [0xFF ] */ end + +.channel CHAN_4268 +/* 0x4268 [0xC1 0x22 ] */ instr SF1_INST_34 +/* 0x426A [0xDA 0x6A 0x5C ] */ env ENVELOPE_6A5C +/* 0x426D [0x88 0x42 0x73 ] */ ldlayer 0, LAYER_4273 +/* 0x4270 [0xED 0x10 ] */ gain 16 +/* 0x4272 [0xFF ] */ end + +.layer LAYER_4273 +/* 0x4273 [0x5F 0x81 0xC2 0x64 ] */ notedv PITCH_E3, 450, 100 +/* 0x4277 [0xFF ] */ end + +.channel CHAN_4278 +/* 0x4278 [0xC1 0x21 ] */ instr SF1_INST_33 +/* 0x427A [0x88 0x42 0x80 ] */ ldlayer 0, LAYER_4280 +/* 0x427D [0xED 0x14 ] */ gain 20 +/* 0x427F [0xFF ] */ end + +.layer LAYER_4280 +/* 0x4280 [0xC0 0x0F ] */ ldelay 15 +/* 0x4282 [0x67 0x07 0x64 ] */ notedv PITCH_C4, 7, 100 +/* 0x4285 [0x6E 0x07 0x64 ] */ notedv PITCH_G4, 7, 100 +/* 0x4288 [0x73 0x07 0x64 ] */ notedv PITCH_C5, 7, 100 +/* 0x428B [0x7A 0x07 0x64 ] */ notedv PITCH_G5, 7, 100 +/* 0x428E [0x6B 0x07 0x64 ] */ notedv PITCH_E4, 7, 100 +/* 0x4291 [0x72 0x07 0x64 ] */ notedv PITCH_B4, 7, 100 +/* 0x4294 [0x77 0x07 0x64 ] */ notedv PITCH_E5, 7, 100 +/* 0x4297 [0x7E 0x07 0x64 ] */ notedv PITCH_B5, 7, 100 +/* 0x429A [0xFF ] */ end + +.channel CHAN_429B +/* 0x429B [0xC1 0x20 ] */ instr SF1_INST_32 +/* 0x429D [0xDA 0x69 0x9C ] */ env ENVELOPE_699C +/* 0x42A0 [0x88 0x42 0xAA ] */ ldlayer 0, LAYER_42AA +/* 0x42A3 [0xED 0x14 ] */ gain 20 +/* 0x42A5 [0xD7 0x80 ] */ vibfreq 128 +/* 0x42A7 [0xD8 0x14 ] */ vibdepth 20 +/* 0x42A9 [0xFF ] */ end + +.layer LAYER_42AA +/* 0x42AA [0xC7 0x81 0x21 0xFF ] */ portamento 0x81, PITCH_GF3, 255 +/* 0x42AE [0x5C 0x6E 0x64 ] */ notedv PITCH_DF3, 110, 100 +/* 0x42B1 [0xFF ] */ end + +.channel CHAN_42B2 +/* 0x42B2 [0xC1 0x22 ] */ instr SF1_INST_34 +/* 0x42B4 [0x88 0x42 0xB8 ] */ ldlayer 0, LAYER_42B8 +/* 0x42B7 [0xFF ] */ end + +.layer LAYER_42B8 +/* 0x42B8 [0xC7 0x81 0x3C 0xC8 ] */ portamento 0x81, PITCH_A5, 200 +/* 0x42BC [0x5B 0x1E 0x64 ] */ notedv PITCH_C3, 30, 100 +/* 0x42BF [0xFF ] */ end + +.channel CHAN_42C0 +/* 0x42C0 [0xC1 0x23 ] */ instr SF1_INST_35 +/* 0x42C2 [0x88 0x42 0xE9 ] */ ldlayer 0, LAYER_42E9 +/* 0x42C5 [0x89 0x42 0xDD ] */ ldlayer 1, LAYER_42DD +/* 0x42C8 [0x8A 0x42 0xD4 ] */ ldlayer 2, LAYER_42D4 +/* 0x42CB [0xED 0x14 ] */ gain 20 +/* 0x42CD [0xD9 0xF4 ] */ releaserate 244 +/* 0x42CF [0xD7 0x32 ] */ vibfreq 50 +/* 0x42D1 [0xD8 0x1E ] */ vibdepth 30 +/* 0x42D3 [0xFF ] */ end + +.layer LAYER_42D4 +/* 0x42D4 [0xC7 0x81 0x2E 0x64 ] */ portamento 0x81, PITCH_G4, 100 +/* 0x42D8 [0x69 0x80 0xB4 0x64 ] */ notedv PITCH_D4, 180, 100 +/* 0x42DC [0xFF ] */ end + +.layer LAYER_42DD +/* 0x42DD [0xC0 0x80 0x96 ] */ ldelay 150 +/* 0x42E0 [0xC7 0x81 0x24 0xDC ] */ portamento 0x81, PITCH_A3, 220 +/* 0x42E4 [0x5F 0x80 0xD2 0x64 ] */ notedv PITCH_E3, 210, 100 +/* 0x42E8 [0xFF ] */ end + +.layer LAYER_42E9 +/* 0x42E9 [0xC0 0x81 0x4A ] */ ldelay 330 +/* 0x42EC [0xC7 0x81 0x1F 0xC8 ] */ portamento 0x81, PITCH_E3, 200 +/* 0x42F0 [0x58 0x81 0x4A 0x64 ] */ notedv PITCH_A2, 330, 100 +/* 0x42F4 [0xFF ] */ end + +.channel CHAN_42F5 +/* 0x42F5 [0x88 0x43 0x01 ] */ ldlayer 0, LAYER_4301 +/* 0x42F8 [0x89 0x43 0x0F ] */ ldlayer 1, LAYER_430F +/* 0x42FB [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x42FE [0xED 0x14 ] */ gain 20 +/* 0x4300 [0xFF ] */ end + +.layer LAYER_4301 +/* 0x4301 [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x4303 [0xC4 ] */ legato +/* 0x4304 [0xC7 0x85 0x27 0x64 ] */ portamento 0x85, PITCH_C4, 100 +/* 0x4308 [0x70 0x1E 0x64 ] */ notedv PITCH_A4, 30, 100 +/* 0x430B [0x67 0x3C 0x64 ] */ notedv PITCH_C4, 60, 100 +/* 0x430E [0xFF ] */ end + +.layer LAYER_430F +/* 0x430F [0xC6 0x1E ] */ instr SF1_INST_30 +/* 0x4311 [0xC4 ] */ legato +/* 0x4312 [0xC7 0x81 0x1D 0x64 ] */ portamento 0x81, PITCH_D3, 100 +/* 0x4316 [0x6B 0x14 0x44 ] */ notedv PITCH_E4, 20, 68 +/* 0x4319 [0xC7 0x81 0x22 0xFF ] */ portamento 0x81, PITCH_G3, 255 +/* 0x431D [0x56 0x24 0x44 ] */ notedv PITCH_G2, 36, 68 +/* 0x4320 [0xFF ] */ end + +.channel CHAN_4321 +/* 0x4321 [0x88 0x43 0x28 ] */ ldlayer 0, LAYER_4328 +/* 0x4324 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x4327 [0xFF ] */ end + +.layer LAYER_4328 +/* 0x4328 [0xC2 0xF9 ] */ transpose -7 +/* 0x432A [0xF4 0xD5 ] */ rjump LAYER_4301 + +.channel CHAN_432C +/* 0x432C [0x88 0x43 0x3B ] */ ldlayer 0, LAYER_433B +/* 0x432F [0x89 0x43 0x4A ] */ ldlayer 1, LAYER_434A +/* 0x4332 [0x8A 0x43 0x4C ] */ ldlayer 2, LAYER_434C +/* 0x4335 [0x8B 0x48 0x29 ] */ ldlayer 3, LAYER_4829 +/* 0x4338 [0xED 0x14 ] */ gain 20 +/* 0x433A [0xFF ] */ end + +.layer LAYER_433B +/* 0x433B [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x433D [0xC4 ] */ legato +/* 0x433E [0xC7 0x85 0x24 0xFF ] */ portamento 0x85, PITCH_A3, 255 +/* 0x4342 [0x6D 0x50 0x64 ] */ notedv PITCH_GF4, 80, 100 +/* 0x4345 [0x57 0x81 0xF4 0x64 ] */ notedv PITCH_AF2, 500, 100 +/* 0x4349 [0xFF ] */ end + +.layer LAYER_434A +/* 0x434A [0xC2 0xF0 ] */ transpose -16 +.layer LAYER_434C +/* 0x434C [0xC6 0x22 ] */ instr SF1_INST_34 +/* 0x434E [0x6F 0x81 0xC2 0x64 ] */ notedv PITCH_AF4, 450, 100 +/* 0x4352 [0xFF ] */ end + +.channel CHAN_4353 +/* 0x4353 [0x88 0x43 0x5A ] */ ldlayer 0, LAYER_435A +/* 0x4356 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x4359 [0xFF ] */ end + +.layer LAYER_435A +/* 0x435A [0xC2 0xF8 ] */ transpose -8 +/* 0x435C [0xF4 0xDD ] */ rjump LAYER_433B + +.channel CHAN_435E +/* 0x435E [0xC1 0x23 ] */ instr SF1_INST_35 +/* 0x4360 [0x88 0x43 0x6C ] */ ldlayer 0, LAYER_436C +/* 0x4363 [0xED 0x14 ] */ gain 20 +/* 0x4365 [0xD9 0xF9 ] */ releaserate 249 +/* 0x4367 [0xD7 0x7F ] */ vibfreq 127 +/* 0x4369 [0xD8 0x46 ] */ vibdepth 70 +/* 0x436B [0xFF ] */ end + +.layer LAYER_436C +/* 0x436C [0xC4 ] */ legato +/* 0x436D [0xC7 0x85 0x1E 0x64 ] */ portamento 0x85, PITCH_EF3, 100 +/* 0x4371 [0x62 0x1E 0x64 ] */ notedv PITCH_G3, 30, 100 +/* 0x4374 [0x5B 0x14 0x64 ] */ notedv PITCH_C3, 20, 100 +/* 0x4377 [0xFF ] */ end + +.channel CHAN_4378 +/* 0x4378 [0xC1 0x2B ] */ instr SF1_INST_43 +/* 0x437A [0x88 0x43 0x80 ] */ ldlayer 0, LAYER_4380 +/* 0x437D [0xED 0x10 ] */ gain 16 +/* 0x437F [0xFF ] */ end + +.layer LAYER_4380 +/* 0x4380 [0x65 0x81 0x60 0x64 ] */ notedv PITCH_BF3, 352, 100 +/* 0x4384 [0xFF ] */ end + +.channel CHAN_4385 +/* 0x4385 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x4387 [0xDA 0x68 0xEC ] */ env ENVELOPE_68EC +/* 0x438A [0x88 0x43 0x8E ] */ ldlayer 0, LAYER_438E +/* 0x438D [0xFF ] */ end + +.layer LAYER_438E +/* 0x438E [0xC7 0x81 0x1C 0x40 ] */ portamento 0x81, PITCH_DF3, 64 +/* 0x4392 [0x55 0x0D 0x4C ] */ notedv PITCH_GF2, 13, 76 +/* 0x4395 [0xFF ] */ end + +.channel CHAN_4396 +/* 0x4396 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x4398 [0xDA 0x68 0xEC ] */ env ENVELOPE_68EC +/* 0x439B [0x88 0x43 0x9F ] */ ldlayer 0, LAYER_439F +/* 0x439E [0xFF ] */ end + +.layer LAYER_439F +/* 0x439F [0xC7 0x81 0x20 0x40 ] */ portamento 0x81, PITCH_F3, 64 +/* 0x43A3 [0x59 0x1D 0x64 ] */ notedv PITCH_BF2, 29, 100 +/* 0x43A6 [0xFF ] */ end + +.channel CHAN_43A7 +/* 0x43A7 [0x88 0x43 0xAE ] */ ldlayer 0, LAYER_43AE +/* 0x43AA [0x89 0x43 0xB0 ] */ ldlayer 1, LAYER_43B0 +/* 0x43AD [0xFF ] */ end + +.layer LAYER_43AE +/* 0x43AE [0xC2 0xFB ] */ transpose -5 +.layer LAYER_43B0 +/* 0x43B0 [0xC6 0x0C ] */ instr SF1_INST_12 +/* 0x43B2 [0x4F 0x78 0x64 ] */ notedv PITCH_C2, 120, 100 +/* 0x43B5 [0xFF ] */ end + +.channel CHAN_43B6 +/* 0x43B6 [0xC1 0x26 ] */ instr SF1_INST_38 +/* 0x43B8 [0x88 0x43 0xBC ] */ ldlayer 0, LAYER_43BC +/* 0x43BB [0xFF ] */ end + +.layer LAYER_43BC +/* 0x43BC [0xC7 0x81 0x28 0x64 ] */ portamento 0x81, PITCH_DF4, 100 +/* 0x43C0 [0x6F 0x64 0x50 ] */ notedv PITCH_AF4, 100, 80 +/* 0x43C3 [0xFF ] */ end + +.channel CHAN_43C4 +/* 0x43C4 [0xC1 0x26 ] */ instr SF1_INST_38 +/* 0x43C6 [0x88 0x43 0xCA ] */ ldlayer 0, LAYER_43CA +/* 0x43C9 [0xFF ] */ end + +.layer LAYER_43CA +/* 0x43CA [0xC7 0x81 0x26 0x64 ] */ portamento 0x81, PITCH_B3, 100 +/* 0x43CE [0x5F 0x30 0x64 ] */ notedv PITCH_E3, 48, 100 +/* 0x43D1 [0xFF ] */ end + +.channel CHAN_43D2 +/* 0x43D2 [0x88 0x43 0xD6 ] */ ldlayer 0, LAYER_43D6 +/* 0x43D5 [0xFF ] */ end + +.layer LAYER_43D6 +/* 0x43D6 [0xC6 0x27 ] */ instr SF1_INST_39 +/* 0x43D8 [0x4E 0x66 0x64 ] */ notedv PITCH_B1, 102, 100 +/* 0x43DB [0xFF ] */ end + +.channel CHAN_43DC +/* 0x43DC [0xC1 0x27 ] */ instr SF1_INST_39 +/* 0x43DE [0x88 0x43 0xE2 ] */ ldlayer 0, LAYER_43E2 +/* 0x43E1 [0xFF ] */ end + +.layer LAYER_43E2 +/* 0x43E2 [0xC7 0x81 0x17 0x64 ] */ portamento 0x81, PITCH_AF2, 100 +/* 0x43E6 [0x59 0x30 0x44 ] */ notedv PITCH_BF2, 48, 68 +/* 0x43E9 [0xFF ] */ end + +.channel CHAN_43EA +/* 0x43EA [0xC1 0x26 ] */ instr SF1_INST_38 +/* 0x43EC [0x88 0x43 0xF0 ] */ ldlayer 0, LAYER_43F0 +/* 0x43EF [0xFF ] */ end + +.layer LAYER_43F0 +/* 0x43F0 [0xC7 0x81 0x2F 0x64 ] */ portamento 0x81, PITCH_AF4, 100 +/* 0x43F4 [0x68 0x50 0x50 ] */ notedv PITCH_DF4, 80, 80 +/* 0x43F7 [0xFF ] */ end + +.channel CHAN_43F8 +/* 0x43F8 [0x88 0x43 0xFC ] */ ldlayer 0, LAYER_43FC +/* 0x43FB [0xFF ] */ end + +.layer LAYER_43FC +/* 0x43FC [0xC6 0x28 ] */ instr SF1_INST_40 +/* 0x43FE [0xCB 0x68 0xEC 0xFB ] */ env ENVELOPE_68EC, 251 +/* 0x4402 [0x58 0x2C 0x64 ] */ notedv PITCH_A2, 44, 100 +/* 0x4405 [0xFF ] */ end + +.channel CHAN_4406 +/* 0x4406 [0xC1 0x11 ] */ instr SF1_INST_17 +/* 0x4408 [0x88 0x44 0x0C ] */ ldlayer 0, LAYER_440C +/* 0x440B [0xFF ] */ end + +.layer LAYER_440C +/* 0x440C [0xC7 0x81 0x08 0xFF ] */ portamento 0x81, PITCH_F1, 255 +/* 0x4410 [0x4F 0x06 0x46 ] */ notedv PITCH_C2, 6, 70 +/* 0x4413 [0xC7 0x81 0x0E 0xFF ] */ portamento 0x81, PITCH_B1, 255 +/* 0x4417 [0x4C 0x08 0x46 ] */ notedv PITCH_A1, 8, 70 +/* 0x441A [0xFF ] */ end + +.channel CHAN_441B +/* 0x441B [0x88 0x44 0x23 ] */ ldlayer 0, LAYER_4423 +/* 0x441E [0xD7 0x60 ] */ vibfreq 96 +/* 0x4420 [0xD8 0x80 ] */ vibdepth 128 +/* 0x4422 [0xFF ] */ end + +.layer LAYER_4423 +/* 0x4423 [0xC6 0x1B ] */ instr SF1_INST_27 +/* 0x4425 [0x6B 0x54 0x64 ] */ notedv PITCH_E4, 84, 100 +/* 0x4428 [0xFF ] */ end + +.channel CHAN_4429 +/* 0x4429 [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x442B [0xDA 0x6A 0x0C ] */ env ENVELOPE_6A0C +/* 0x442E [0x88 0x44 0x3A ] */ ldlayer 0, LAYER_443A +/* 0x4431 [0xE1 0x46 0x6E 0x12 ] */ vibfreqgrad 70, 110, 18 +/* 0x4435 [0xE2 0x14 0x50 0x0A ] */ vibdepthgrad 20, 80, 10 +/* 0x4439 [0xFF ] */ end + +.layer LAYER_443A +/* 0x443A [0xC7 0x81 0x13 0xFF ] */ portamento 0x81, PITCH_E2, 255 +/* 0x443E [0x57 0x46 0x64 ] */ notedv PITCH_AF2, 70, 100 +/* 0x4441 [0xFF ] */ end + +.channel CHAN_4442 +/* 0x4442 [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x4444 [0xDA 0x6A 0x0C ] */ env ENVELOPE_6A0C +/* 0x4447 [0x88 0x44 0x53 ] */ ldlayer 0, LAYER_4453 +/* 0x444A [0xE1 0x46 0x6E 0x12 ] */ vibfreqgrad 70, 110, 18 +/* 0x444E [0xE2 0x14 0x50 0x0A ] */ vibdepthgrad 20, 80, 10 +/* 0x4452 [0xFF ] */ end + +.layer LAYER_4453 +/* 0x4453 [0xC7 0x81 0x17 0xFF ] */ portamento 0x81, PITCH_AF2, 255 +/* 0x4457 [0x53 0x46 0x64 ] */ notedv PITCH_E2, 70, 100 +/* 0x445A [0xFF ] */ end + +.channel CHAN_445B +/* 0x445B [0xC1 0x0F ] */ instr SF1_INST_15 +/* 0x445D [0x88 0x44 0x63 ] */ ldlayer 0, LAYER_4463 +/* 0x4460 [0xED 0x10 ] */ gain 16 +/* 0x4462 [0xFF ] */ end + +.layer LAYER_4463 +/* 0x4463 [0xC7 0x81 0x11 0xFF ] */ portamento 0x81, PITCH_D2, 255 +/* 0x4467 [0x58 0x80 0x96 0x64 ] */ notedv PITCH_A2, 150, 100 +/* 0x446B [0xFF ] */ end + +.channel CHAN_446C +/* 0x446C [0xC1 0x0D ] */ instr SF1_INST_13 +/* 0x446E [0x88 0x44 0x74 ] */ ldlayer 0, LAYER_4474 +/* 0x4471 [0xED 0x10 ] */ gain 16 +/* 0x4473 [0xFF ] */ end + +.layer LAYER_4474 +/* 0x4474 [0xC7 0x81 0x15 0xFF ] */ portamento 0x81, PITCH_GF2, 255 +/* 0x4478 [0x50 0x44 0x64 ] */ notedv PITCH_DF2, 68, 100 +/* 0x447B [0xFF ] */ end + +.channel CHAN_447C +/* 0x447C [0xC1 0x14 ] */ instr SF1_INST_20 +/* 0x447E [0x88 0x44 0x82 ] */ ldlayer 0, LAYER_4482 +/* 0x4481 [0xFF ] */ end + +.layer LAYER_4482 +/* 0x4482 [0xC2 0x2A ] */ transpose 42 +/* 0x4484 [0x6C 0x0A 0x64 ] */ notedv PITCH_F4, 10, 100 +/* 0x4487 [0xFF ] */ end + +.channel CHAN_4488 +/* 0x4488 [0xC1 0x14 ] */ instr SF1_INST_20 +/* 0x448A [0x88 0x44 0x90 ] */ ldlayer 0, LAYER_4490 +/* 0x448D [0xED 0x14 ] */ gain 20 +/* 0x448F [0xFF ] */ end + +.layer LAYER_4490 +/* 0x4490 [0xC2 0x2C ] */ transpose 44 +/* 0x4492 [0x66 0x1D 0x64 ] */ notedv PITCH_B3, 29, 100 +/* 0x4495 [0xFF ] */ end + +.channel CHAN_4496 +/* 0x4496 [0xC1 0x1C ] */ instr SF1_INST_28 +/* 0x4498 [0x88 0x44 0x9C ] */ ldlayer 0, LAYER_449C +/* 0x449B [0xFF ] */ end + +.layer LAYER_449C +/* 0x449C [0xC7 0x81 0x19 0xFF ] */ portamento 0x81, PITCH_BF2, 255 +/* 0x44A0 [0x54 0x78 0x64 ] */ notedv PITCH_F2, 120, 100 +/* 0x44A3 [0xFF ] */ end + +.channel CHAN_44A4 +/* 0x44A4 [0xC1 0x1C ] */ instr SF1_INST_28 +/* 0x44A6 [0x88 0x44 0xAA ] */ ldlayer 0, LAYER_44AA +/* 0x44A9 [0xFF ] */ end + +.layer LAYER_44AA +/* 0x44AA [0xC7 0x81 0x10 0xFF ] */ portamento 0x81, PITCH_DF2, 255 +/* 0x44AE [0x5A 0x78 0x64 ] */ notedv PITCH_B2, 120, 100 +/* 0x44B1 [0xFF ] */ end + +.channel CHAN_44B2 +/* 0x44B2 [0x88 0x44 0xB9 ] */ ldlayer 0, LAYER_44B9 +/* 0x44B5 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x44B8 [0xFF ] */ end + +.layer LAYER_44B9 +/* 0x44B9 [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x44BB [0xC4 ] */ legato +/* 0x44BC [0xC7 0x85 0x17 0xC8 ] */ portamento 0x85, PITCH_AF2, 200 +/* 0x44C0 [0x5B 0x1E 0x64 ] */ notedv PITCH_C3, 30, 100 +/* 0x44C3 [0x50 0x3C 0x64 ] */ notedv PITCH_DF2, 60, 100 +/* 0x44C6 [0xFF ] */ end + +.channel CHAN_44C7 +/* 0x44C7 [0xC1 0x28 ] */ instr SF1_INST_40 +/* 0x44C9 [0x88 0x44 0xD7 ] */ ldlayer 0, LAYER_44D7 +/* 0x44CC [0xED 0x14 ] */ gain 20 +/* 0x44CE [0xB8 0x04 ] */ rand 4 +/* 0x44D0 [0xC7 0x6B 0x44 0xD7 ] */ stseq (NOTEDV_OPCODE | PITCH_E4), LAYER_44D7 + STSEQ_NOTEDV_OPCODE_PITCH +/* 0x44D4 [0xD9 0xE8 ] */ releaserate 232 +/* 0x44D6 [0xFF ] */ end + +.layer LAYER_44D7 +/* 0x44D7 [0x6C 0x32 0x64 ] */ notedv PITCH_F4, 50, 100 +/* 0x44DA [0xFF ] */ end + +.channel CHAN_44DB +/* 0x44DB [0x88 0x44 0xEB ] */ ldlayer 0, LAYER_44EB +/* 0x44DE [0x89 0x44 0xE4 ] */ ldlayer 1, LAYER_44E4 +/* 0x44E1 [0xED 0x14 ] */ gain 20 +/* 0x44E3 [0xFF ] */ end + +.layer LAYER_44E4 +/* 0x44E4 [0xC6 0x29 ] */ instr SF1_INST_41 +/* 0x44E6 [0x69 0x80 0xA8 0x64 ] */ notedv PITCH_D4, 168, 100 +/* 0x44EA [0xFF ] */ end + +.layer LAYER_44EB +/* 0x44EB [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x44ED [0xC4 ] */ legato +/* 0x44EE [0xC7 0x81 0x2B 0xFF ] */ portamento 0x81, PITCH_E4, 255 +/* 0x44F2 [0x6D 0x0A 0x64 ] */ notedv PITCH_GF4, 10, 100 +/* 0x44F5 [0xC7 0x81 0x2D 0xFF ] */ portamento 0x81, PITCH_GF4, 255 +/* 0x44F9 [0x70 0x80 0xA8 0x64 ] */ notedv PITCH_A4, 168, 100 +/* 0x44FD [0xFF ] */ end + +.channel CHAN_44FE +/* 0x44FE [0x88 0x45 0x08 ] */ ldlayer 0, LAYER_4508 +/* 0x4501 [0x89 0x45 0x0F ] */ ldlayer 1, LAYER_450F +/* 0x4504 [0x8A 0x45 0x13 ] */ ldlayer 2, LAYER_4513 +/* 0x4507 [0xFF ] */ end + +.layer LAYER_4508 +/* 0x4508 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x450A [0x6B 0x80 0xB4 0x64 ] */ notedv PITCH_E4, 180, 100 +/* 0x450E [0xFF ] */ end + +.layer LAYER_450F +/* 0x450F [0xC2 0xFE ] */ transpose -2 +/* 0x4511 [0xF4 0xD8 ] */ rjump LAYER_44EB + +.layer LAYER_4513 +/* 0x4513 [0xC2 0x06 ] */ transpose 6 +/* 0x4515 [0xF4 0xCD ] */ rjump LAYER_44E4 + +.channel CHAN_4517 +/* 0x4517 [0x88 0x45 0x32 ] */ ldlayer 0, LAYER_4532 +/* 0x451A [0x89 0x45 0x24 ] */ ldlayer 1, LAYER_4524 +/* 0x451D [0xED 0x14 ] */ gain 20 +/* 0x451F [0xD7 0x78 ] */ vibfreq 120 +/* 0x4521 [0xD8 0x40 ] */ vibdepth 64 +/* 0x4523 [0xFF ] */ end + +.layer LAYER_4524 +/* 0x4524 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x4526 [0xC4 ] */ legato +/* 0x4527 [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +/* 0x452B [0x6C 0x14 0x50 ] */ notedv PITCH_F4, 20, 80 +/* 0x452E [0x5B 0x6E 0x50 ] */ notedv PITCH_C3, 110, 80 +/* 0x4531 [0xFF ] */ end + +.layer LAYER_4532 +/* 0x4532 [0xC6 0x29 ] */ instr SF1_INST_41 +/* 0x4534 [0xC4 ] */ legato +/* 0x4535 [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +/* 0x4539 [0x70 0x14 0x64 ] */ notedv PITCH_A4, 20, 100 +/* 0x453C [0x4F 0x80 0xC8 0x64 ] */ notedv PITCH_C2, 200, 100 +/* 0x4540 [0xFF ] */ end + +.channel CHAN_4541 +/* 0x4541 [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x4543 [0xED 0x14 ] */ gain 20 +/* 0x4545 [0x88 0x45 0x49 ] */ ldlayer 0, LAYER_4549 +/* 0x4548 [0xFF ] */ end + +.layer LAYER_4549 +/* 0x4549 [0xC4 ] */ legato +/* 0x454A [0xC7 0x85 0x13 0xFF ] */ portamento 0x85, PITCH_E2, 255 +/* 0x454E [0x55 0x1E 0x64 ] */ notedv PITCH_GF2, 30, 100 +/* 0x4551 [0x4E 0x1E 0x64 ] */ notedv PITCH_B1, 30, 100 +/* 0x4554 [0xFF ] */ end + +.channel CHAN_4555 +/* 0x4555 [0x88 0x45 0x64 ] */ ldlayer 0, LAYER_4564 +/* 0x4558 [0x89 0x45 0x5E ] */ ldlayer 1, LAYER_455E +/* 0x455B [0xED 0x14 ] */ gain 20 +/* 0x455D [0xFF ] */ end + +.layer LAYER_455E +/* 0x455E [0xC6 0x29 ] */ instr SF1_INST_41 +/* 0x4560 [0x6F 0x78 0x64 ] */ notedv PITCH_AF4, 120, 100 +/* 0x4563 [0xFF ] */ end + +.layer LAYER_4564 +/* 0x4564 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x4566 [0xC4 ] */ legato +/* 0x4567 [0xC7 0x81 0x31 0xFF ] */ portamento 0x81, PITCH_BF4, 255 +/* 0x456B [0x73 0x0A 0x64 ] */ notedv PITCH_C5, 10, 100 +/* 0x456E [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x4572 [0x76 0x78 0x64 ] */ notedv PITCH_EF5, 120, 100 +/* 0x4575 [0xFF ] */ end + +.channel CHAN_4576 +/* 0x4576 [0x88 0x45 0x80 ] */ ldlayer 0, LAYER_4580 +/* 0x4579 [0x89 0x45 0x64 ] */ ldlayer 1, LAYER_4564 +/* 0x457C [0x8A 0x45 0x84 ] */ ldlayer 2, LAYER_4584 +/* 0x457F [0xFF ] */ end + +.layer LAYER_4580 +/* 0x4580 [0xC2 0xFA ] */ transpose -6 +/* 0x4582 [0xF4 0xE0 ] */ rjump LAYER_4564 + +.layer LAYER_4584 +/* 0x4584 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x4586 [0xC4 ] */ legato +/* 0x4587 [0xC7 0x85 0x28 0xC8 ] */ portamento 0x85, PITCH_DF4, 200 +/* 0x458B [0x6F 0x10 0x64 ] */ notedv PITCH_AF4, 16, 100 +/* 0x458E [0x5D 0x80 0xB4 0x64 ] */ notedv PITCH_D3, 180, 100 +/* 0x4592 [0xFF ] */ end + +.channel CHAN_4593 +/* 0x4593 [0x88 0x45 0xA0 ] */ ldlayer 0, LAYER_45A0 +/* 0x4596 [0x89 0x45 0xAC ] */ ldlayer 1, LAYER_45AC +/* 0x4599 [0xED 0x14 ] */ gain 20 +/* 0x459B [0xD7 0x0A ] */ vibfreq 10 +/* 0x459D [0xD8 0x14 ] */ vibdepth 20 +/* 0x459F [0xFF ] */ end + +.layer LAYER_45A0 +/* 0x45A0 [0xC6 0x28 ] */ instr SF1_INST_40 +/* 0x45A2 [0xCB 0x68 0xB4 0xDC ] */ env ENVELOPE_68B4, 220 +LAYER_45A6: +/* 0x45A6 [0x55 0x81 0x18 0x64 ] */ notedv PITCH_GF2, 280, 100 +/* 0x45AA [0xF4 0xFA ] */ rjump LAYER_45A6 + +.layer LAYER_45AC +/* 0x45AC [0xC6 0x02 ] */ instr SF1_INST_2 +LAYER_45AE: +/* 0x45AE [0x42 0xF5 0x30 0x64 ] */ notedv PITCH_B0, 30000, 100 +/* 0x45B2 [0xF4 0xFA ] */ rjump LAYER_45AE + +.channel CHAN_45B4 +/* 0x45B4 [0xC1 0x1C ] */ instr SF1_INST_28 +/* 0x45B6 [0x88 0x45 0xBA ] */ ldlayer 0, LAYER_45BA +/* 0x45B9 [0xFF ] */ end + +.layer LAYER_45BA +/* 0x45BA [0xC7 0x81 0x1C 0xFF ] */ portamento 0x81, PITCH_DF3, 255 +/* 0x45BE [0x67 0x40 0x64 ] */ notedv PITCH_C4, 64, 100 +/* 0x45C1 [0xFF ] */ end + +.channel CHAN_45C2 +/* 0x45C2 [0xC1 0x2A ] */ instr SF1_INST_42 +/* 0x45C4 [0x88 0x45 0xCB ] */ ldlayer 0, LAYER_45CB +/* 0x45C7 [0x89 0x45 0xCD ] */ ldlayer 1, LAYER_45CD +/* 0x45CA [0xFF ] */ end + +.layer LAYER_45CB +/* 0x45CB [0xC0 0x18 ] */ ldelay 24 +.layer LAYER_45CD +/* 0x45CD [0x5F 0x81 0x70 0x50 ] */ notedv PITCH_E3, 368, 80 +/* 0x45D1 [0xFF ] */ end + +.channel CHAN_45D2 +/* 0x45D2 [0x88 0x45 0xD9 ] */ ldlayer 0, LAYER_45D9 +/* 0x45D5 [0x89 0x45 0xDF ] */ ldlayer 1, LAYER_45DF +/* 0x45D8 [0xFF ] */ end + +.layer LAYER_45D9 +/* 0x45D9 [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x45DB [0x68 0x00 0x64 ] */ notedv PITCH_DF4, 0, 100 +/* 0x45DE [0xFF ] */ end + +.layer LAYER_45DF +/* 0x45DF [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x45E1 [0xC7 0x81 0x1E 0xFF ] */ portamento 0x81, PITCH_EF3, 255 +/* 0x45E5 [0x65 0x2E 0x64 ] */ notedv PITCH_BF3, 46, 100 +/* 0x45E8 [0xFF ] */ end + +.channel CHAN_45E9 +/* 0x45E9 [0xC1 0x2A ] */ instr SF1_INST_42 +/* 0x45EB [0x88 0x45 0xF5 ] */ ldlayer 0, LAYER_45F5 +/* 0x45EE [0x89 0x45 0xF7 ] */ ldlayer 1, LAYER_45F7 +/* 0x45F1 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x45F4 [0xFF ] */ end + +.layer LAYER_45F5 +/* 0x45F5 [0xC0 0x18 ] */ ldelay 24 +.layer LAYER_45F7 +/* 0x45F7 [0xC7 0x81 0x22 0xFF ] */ portamento 0x81, PITCH_G3, 255 +/* 0x45FB [0x53 0x44 0x64 ] */ notedv PITCH_E2, 68, 100 +/* 0x45FE [0xFF ] */ end + +.channel CHAN_45FF +/* 0x45FF [0xC1 0x2A ] */ instr SF1_INST_42 +/* 0x4601 [0x88 0x46 0x0B ] */ ldlayer 0, LAYER_460B +/* 0x4604 [0x89 0x46 0x0D ] */ ldlayer 1, LAYER_460D +/* 0x4607 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x460A [0xFF ] */ end + +.layer LAYER_460B +/* 0x460B [0xC0 0x18 ] */ ldelay 24 +.layer LAYER_460D +/* 0x460D [0xC4 ] */ legato +/* 0x460E [0xC7 0x85 0x1E 0xFF ] */ portamento 0x85, PITCH_EF3, 255 +/* 0x4612 [0x60 0x1E 0x64 ] */ notedv PITCH_F3, 30, 100 +/* 0x4615 [0x52 0x80 0x84 0x64 ] */ notedv PITCH_EF2, 132, 100 +/* 0x4619 [0xFF ] */ end + +.channel CHAN_461A +/* 0x461A [0xC1 0x2B ] */ instr SF1_INST_43 +/* 0x461C [0xED 0x14 ] */ gain 20 +/* 0x461E [0x88 0x46 0x25 ] */ ldlayer 0, LAYER_4625 +/* 0x4621 [0x89 0x46 0x27 ] */ ldlayer 1, LAYER_4627 +/* 0x4624 [0xFF ] */ end + +.layer LAYER_4625 +/* 0x4625 [0xC0 0x16 ] */ ldelay 22 +.layer LAYER_4627 +/* 0x4627 [0x7D 0x62 0x64 ] */ notedv PITCH_BF5, 98, 100 +/* 0x462A [0xFF ] */ end + +.channel CHAN_462B +/* 0x462B [0xC1 0x00 ] */ instr SF1_INST_0 +/* 0x462D [0xDA 0x68 0x6C ] */ env ENVELOPE_686C +/* 0x4630 [0x88 0x46 0x34 ] */ ldlayer 0, LAYER_4634 +/* 0x4633 [0xFF ] */ end + +.layer LAYER_4634 +/* 0x4634 [0xC7 0x81 0x21 0xC8 ] */ portamento 0x81, PITCH_GF3, 200 +/* 0x4638 [0x6D 0x22 0x64 ] */ notedv PITCH_GF4, 34, 100 +/* 0x463B [0xFF ] */ end + +.channel CHAN_463C +/* 0x463C [0x88 0x46 0x43 ] */ ldlayer 0, LAYER_4643 +/* 0x463F [0x89 0x46 0x51 ] */ ldlayer 1, LAYER_4651 +/* 0x4642 [0xFF ] */ end + +.layer LAYER_4643 +/* 0x4643 [0xC6 0x2A ] */ instr SF1_INST_42 +/* 0x4645 [0xCB 0x68 0xEC 0xFA ] */ env ENVELOPE_68EC, 250 +/* 0x4649 [0xC7 0x81 0x1E 0xFF ] */ portamento 0x81, PITCH_EF3, 255 +/* 0x464D [0x5A 0x30 0x64 ] */ notedv PITCH_B2, 48, 100 +/* 0x4650 [0xFF ] */ end + +.layer LAYER_4651 +/* 0x4651 [0xC6 0x06 ] */ instr SF1_INST_6 +/* 0x4653 [0xCB 0x69 0x2C 0xFA ] */ env ENVELOPE_692C, 250 +/* 0x4657 [0xC7 0x81 0x11 0x32 ] */ portamento 0x81, PITCH_D2, 50 +/* 0x465B [0x45 0x1E 0x64 ] */ notedv PITCH_D1, 30, 100 +/* 0x465E [0xFF ] */ end + +.channel CHAN_465F +/* 0x465F [0xC1 0x2B ] */ instr SF1_INST_43 +/* 0x4661 [0x88 0x46 0x6B ] */ ldlayer 0, LAYER_466B +/* 0x4664 [0x89 0x46 0x6D ] */ ldlayer 1, LAYER_466D +/* 0x4667 [0x8A 0x46 0x6F ] */ ldlayer 2, LAYER_466F +/* 0x466A [0xFF ] */ end + +.layer LAYER_466B +/* 0x466B [0xC0 0x16 ] */ ldelay 22 +.layer LAYER_466D +/* 0x466D [0xC0 0x16 ] */ ldelay 22 +.layer LAYER_466F +/* 0x466F [0x79 0x72 0x64 ] */ notedv PITCH_GF5, 114, 100 +/* 0x4672 [0xFF ] */ end + +.channel CHAN_4673 +/* 0x4673 [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x4675 [0x88 0x46 0x79 ] */ ldlayer 0, LAYER_4679 +/* 0x4678 [0xFF ] */ end + +.layer LAYER_4679 +/* 0x4679 [0xC7 0x81 0x35 0x78 ] */ portamento 0x81, PITCH_D5, 120 +/* 0x467D [0x6E 0x44 0x64 ] */ notedv PITCH_G4, 68, 100 +/* 0x4680 [0xFF ] */ end + +.channel CHAN_4681 +/* 0x4681 [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x4683 [0x88 0x46 0x8B ] */ ldlayer 0, LAYER_468B +/* 0x4686 [0xD7 0x14 ] */ vibfreq 20 +/* 0x4688 [0xD8 0x24 ] */ vibdepth 36 +/* 0x468A [0xFF ] */ end + +.layer LAYER_468B +/* 0x468B [0xCB 0x6A 0x4C 0xDC ] */ env ENVELOPE_6A4C, 220 +LAYER_468F: +/* 0x468F [0x4C 0x80 0xFA 0x64 ] */ notedv PITCH_A1, 250, 100 +/* 0x4693 [0xF4 0xFA ] */ rjump LAYER_468F + +.channel CHAN_4695 +/* 0x4695 [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x4697 [0x88 0x46 0x9F ] */ ldlayer 0, LAYER_469F +/* 0x469A [0xD7 0x7F ] */ vibfreq 127 +/* 0x469C [0xD8 0x54 ] */ vibdepth 84 +/* 0x469E [0xFF ] */ end + +.layer LAYER_469F +/* 0x469F [0xCB 0x6A 0x2C 0xDC ] */ env ENVELOPE_6A2C, 220 +/* 0x46A3 [0xC7 0x81 0x0C 0x78 ] */ portamento 0x81, PITCH_A1, 120 +LAYER_46A7: +/* 0x46A7 [0x64 0x80 0xD0 0x64 ] */ notedv PITCH_A3, 208, 100 +/* 0x46AB [0xF4 0xFA ] */ rjump LAYER_46A7 + +.channel CHAN_46AD +/* 0x46AD [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x46AF [0x88 0x46 0xB7 ] */ ldlayer 0, LAYER_46B7 +/* 0x46B2 [0xD7 0x14 ] */ vibfreq 20 +/* 0x46B4 [0xD8 0x24 ] */ vibdepth 36 +/* 0x46B6 [0xFF ] */ end + +.layer LAYER_46B7 +/* 0x46B7 [0xCB 0x69 0xBC 0xEB ] */ env ENVELOPE_69BC, 235 +/* 0x46BB [0xC4 ] */ legato +/* 0x46BC [0xC7 0x85 0x00 0xFF ] */ portamento 0x85, PITCH_A0, 255 +/* 0x46C0 [0x58 0x2A 0x64 ] */ notedv PITCH_A2, 42, 100 +/* 0x46C3 [0x40 0x52 0x64 ] */ notedv PITCH_A0, 82, 100 +/* 0x46C6 [0xFF ] */ end + +.channel CHAN_46C7 +/* 0x46C7 [0xC1 0x1A ] */ instr SF1_INST_26 +/* 0x46C9 [0x88 0x46 0xCF ] */ ldlayer 0, LAYER_46CF +/* 0x46CC [0xED 0x10 ] */ gain 16 +/* 0x46CE [0xFF ] */ end + +.layer LAYER_46CF +/* 0x46CF [0xC7 0x81 0x1E 0xFF ] */ portamento 0x81, PITCH_EF3, 255 +/* 0x46D3 [0x5B 0x72 0x64 ] */ notedv PITCH_C3, 114, 100 +/* 0x46D6 [0xFF ] */ end + +.channel CHAN_46D7 +/* 0x46D7 [0xC1 0x0F ] */ instr SF1_INST_15 +/* 0x46D9 [0xDA 0x68 0xFC ] */ env ENVELOPE_68FC +/* 0x46DC [0x88 0x46 0xE0 ] */ ldlayer 0, LAYER_46E0 +/* 0x46DF [0xFF ] */ end + +.layer LAYER_46E0 +/* 0x46E0 [0xC7 0x81 0x11 0xFF ] */ portamento 0x81, PITCH_D2, 255 +/* 0x46E4 [0x59 0x08 0x64 ] */ notedv PITCH_BF2, 8, 100 +/* 0x46E7 [0xC7 0x81 0x1A 0xFF ] */ portamento 0x81, PITCH_B2, 255 +/* 0x46EB [0x46 0x0C 0x64 ] */ notedv PITCH_EF1, 12, 100 +/* 0x46EE [0xFF ] */ end + +.channel CHAN_46EF +/* 0x46EF [0xC1 0x0F ] */ instr SF1_INST_15 +/* 0x46F1 [0x88 0x46 0xFC ] */ ldlayer 0, LAYER_46FC +/* 0x46F4 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x46F7 [0xD7 0x64 ] */ vibfreq 100 +/* 0x46F9 [0xD8 0x64 ] */ vibdepth 100 +/* 0x46FB [0xFF ] */ end + +.layer LAYER_46FC +/* 0x46FC [0xC7 0x81 0x26 0xFF ] */ portamento 0x81, PITCH_B3, 255 +/* 0x4700 [0x62 0x80 0x84 0x64 ] */ notedv PITCH_G3, 132, 100 +/* 0x4704 [0xFF ] */ end + +.channel CHAN_4705 +/* 0x4705 [0xC1 0x2C ] */ instr SF1_INST_44 +/* 0x4707 [0x88 0x47 0x0D ] */ ldlayer 0, LAYER_470D +/* 0x470A [0xDC 0x00 ] */ panweight 0 +/* 0x470C [0xFF ] */ end + +.layer LAYER_470D +/* 0x470D [0xC4 ] */ legato +/* 0x470E [0xC7 0x85 0x17 0xFF ] */ portamento 0x85, PITCH_AF2, 255 +LAYER_4712: +/* 0x4712 [0x54 0x2C 0x64 ] */ notedv PITCH_F2, 44, 100 +/* 0x4715 [0x57 0x2C 0x64 ] */ notedv PITCH_AF2, 44, 100 +/* 0x4718 [0xF4 0xF8 ] */ rjump LAYER_4712 + +.channel CHAN_471A +/* 0x471A [0xC1 0x2C ] */ instr SF1_INST_44 +/* 0x471C [0xDA 0x6A 0x1C ] */ env ENVELOPE_6A1C +/* 0x471F [0x88 0x47 0x2A ] */ ldlayer 0, LAYER_472A +/* 0x4722 [0x89 0x47 0x2C ] */ ldlayer 1, LAYER_472C +/* 0x4725 [0xDC 0x00 ] */ panweight 0 +/* 0x4727 [0xED 0x14 ] */ gain 20 +/* 0x4729 [0xFF ] */ end + +.layer LAYER_472A +/* 0x472A [0xC0 0x08 ] */ ldelay 8 +.layer LAYER_472C +/* 0x472C [0xC7 0x81 0x1F 0xFF ] */ portamento 0x81, PITCH_E3, 255 +/* 0x4730 [0x5C 0x74 0x64 ] */ notedv PITCH_DF3, 116, 100 +/* 0x4733 [0xFF ] */ end + +.channel CHAN_4734 +/* 0x4734 [0x88 0x47 0x3B ] */ ldlayer 0, LAYER_473B +/* 0x4737 [0x89 0x47 0x42 ] */ ldlayer 1, LAYER_4742 +/* 0x473A [0xFF ] */ end + +.layer LAYER_473B +/* 0x473B [0xC6 0x26 ] */ instr SF1_INST_38 +/* 0x473D [0x69 0x80 0x86 0x64 ] */ notedv PITCH_D4, 134, 100 +/* 0x4741 [0xFF ] */ end + +.layer LAYER_4742 +/* 0x4742 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x4744 [0xC4 ] */ legato +/* 0x4745 [0xC7 0x81 0x24 0x64 ] */ portamento 0x81, PITCH_A3, 100 +/* 0x4749 [0x72 0x10 0x50 ] */ notedv PITCH_B4, 16, 80 +/* 0x474C [0xC7 0x81 0x29 0xFF ] */ portamento 0x81, PITCH_D4, 255 +/* 0x4750 [0x5D 0x06 0x50 ] */ notedv PITCH_D3, 6, 80 +/* 0x4753 [0xFF ] */ end + +.channel CHAN_4754 +/* 0x4754 [0x88 0x47 0x81 ] */ ldlayer 0, LAYER_4781 +/* 0x4757 [0x89 0x47 0x9D ] */ ldlayer 1, LAYER_479D +/* 0x475A [0xD8 0x90 ] */ vibdepth 144 +/* 0x475C [0xD7 0xC4 ] */ vibfreq 196 +/* 0x475E [0xCC 0x38 ] */ ldi 56 +/* 0x4760 [0x76 ] */ stio IO_PORT_6 +CHAN_4761: +/* 0x4761 [0x66 ] */ ldio IO_PORT_6 +/* 0x4762 [0xC7 0x00 0x47 0x89 ] */ stseq 0, LAYER_4788 + STSEQ_NOTEDV_DELAY_HI +/* 0x4766 [0xC7 0x00 0x47 0x8C ] */ stseq 0, LAYER_478B + STSEQ_NOTEDV_DELAY_HI +/* 0x476A [0xC7 0x00 0x47 0x95 ] */ stseq 0, LAYER_4794 + STSEQ_NOTEDV_DELAY_HI +/* 0x476E [0xC7 0x00 0x47 0x98 ] */ stseq 0, LAYER_4797 + STSEQ_NOTEDV_DELAY_HI +/* 0x4772 [0xC8 0x01 ] */ sub 1 +/* 0x4774 [0x76 ] */ stio IO_PORT_6 +/* 0x4775 [0xC8 0x04 ] */ sub 4 +/* 0x4777 [0xF3 0x07 ] */ rbeqz CHAN_4780 +/* 0x4779 [0xCC 0x06 ] */ ldi 6 +/* 0x477B [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x477E [0xF4 0xE1 ] */ rjump CHAN_4761 + +CHAN_4780: +/* 0x4780 [0xFF ] */ end + +.layer LAYER_4781 +/* 0x4781 [0xC6 0x0B ] */ instr SF1_INST_11 +LAYER_4783: +/* 0x4783 [0xC4 ] */ legato +/* 0x4784 [0xC7 0x85 0x25 0xFF ] */ portamento 0x85, PITCH_BF3, 255 +LAYER_4788: +/* 0x4788 [0x6A 0x1E 0x64 ] */ notedv PITCH_EF4, 30, 100 +LAYER_478B: +/* 0x478B [0x62 0x1E 0x64 ] */ notedv PITCH_G3, 30, 100 +/* 0x478E [0xC5 ] */ nolegato +/* 0x478F [0xC4 ] */ legato +/* 0x4790 [0xC7 0x85 0x22 0xFF ] */ portamento 0x85, PITCH_G3, 255 +LAYER_4794: +/* 0x4794 [0x71 0x1E 0x64 ] */ notedv PITCH_BF4, 30, 100 +LAYER_4797: +/* 0x4797 [0x65 0x1E 0x64 ] */ notedv PITCH_BF3, 30, 100 +/* 0x479A [0xC5 ] */ nolegato +/* 0x479B [0xF4 0xE6 ] */ rjump LAYER_4783 + +.layer LAYER_479D +/* 0x479D [0xC6 0x2A ] */ instr SF1_INST_42 +/* 0x479F [0xC7 0x85 0x23 0xFF ] */ portamento 0x85, PITCH_AF3, 255 +/* 0x47A3 [0x68 0x80 0xE8 0x64 ] */ notedv PITCH_DF4, 232, 100 +/* 0x47A7 [0xFF ] */ end + +.channel CHAN_47A8 +/* 0x47A8 [0xC1 0x2C ] */ instr SF1_INST_44 +/* 0x47AA [0x88 0x47 0xAE ] */ ldlayer 0, LAYER_47AE +/* 0x47AD [0xFF ] */ end + +.layer LAYER_47AE +/* 0x47AE [0xC4 ] */ legato +/* 0x47AF [0xC7 0x85 0x19 0x80 ] */ portamento 0x85, PITCH_BF2, 128 +LAYER_47B3: +/* 0x47B3 [0x76 0x0C 0x64 ] */ notedv PITCH_EF5, 12, 100 +/* 0x47B6 [0x59 0x0C 0x64 ] */ notedv PITCH_BF2, 12, 100 +/* 0x47B9 [0xF4 0xF8 ] */ rjump LAYER_47B3 + +.channel CHAN_47BB +/* 0x47BB [0xC1 0x2C ] */ instr SF1_INST_44 +/* 0x47BD [0xDA 0x69 0x9C ] */ env ENVELOPE_699C +/* 0x47C0 [0x88 0x47 0xC9 ] */ ldlayer 0, LAYER_47C9 +/* 0x47C3 [0x89 0x47 0xCB ] */ ldlayer 1, LAYER_47CB +/* 0x47C6 [0xED 0x14 ] */ gain 20 +/* 0x47C8 [0xFF ] */ end + +.layer LAYER_47C9 +/* 0x47C9 [0xC0 0x08 ] */ ldelay 8 +.layer LAYER_47CB +/* 0x47CB [0xC7 0x81 0x1F 0xFF ] */ portamento 0x81, PITCH_E3, 255 +/* 0x47CF [0x5A 0x60 0x64 ] */ notedv PITCH_B2, 96, 100 +/* 0x47D2 [0xFF ] */ end + +.channel CHAN_47D3 +/* 0x47D3 [0x88 0x47 0xDC ] */ ldlayer 0, LAYER_47DC +/* 0x47D6 [0x89 0x47 0xE2 ] */ ldlayer 1, LAYER_47E2 +/* 0x47D9 [0xED 0x16 ] */ gain 22 +/* 0x47DB [0xFF ] */ end + +.layer LAYER_47DC +/* 0x47DC [0xC6 0x2D ] */ instr SF1_INST_45 +/* 0x47DE [0x67 0x56 0x64 ] */ notedv PITCH_C4, 86, 100 +/* 0x47E1 [0xFF ] */ end + +.layer LAYER_47E2 +/* 0x47E2 [0xC6 0x05 ] */ instr SF1_INST_5 +/* 0x47E4 [0xC7 0x81 0x0B 0xC8 ] */ portamento 0x81, PITCH_AF1, 200 +/* 0x47E8 [0x4F 0x29 0x64 ] */ notedv PITCH_C2, 41, 100 +/* 0x47EB [0xFF ] */ end + +.channel CHAN_47EC +/* 0x47EC [0x88 0x47 0xF2 ] */ ldlayer 0, LAYER_47F2 +/* 0x47EF [0xED 0x16 ] */ gain 22 +/* 0x47F1 [0xFF ] */ end + +.layer LAYER_47F2 +/* 0x47F2 [0xC6 0x05 ] */ instr SF1_INST_5 +/* 0x47F4 [0xC7 0x81 0x09 0xC8 ] */ portamento 0x81, PITCH_GF1, 200 +/* 0x47F8 [0x4D 0x29 0x64 ] */ notedv PITCH_BF1, 41, 100 +/* 0x47FB [0xFF ] */ end + +.channel CHAN_47FC +/* 0x47FC [0x88 0x48 0x00 ] */ ldlayer 0, LAYER_4800 +/* 0x47FF [0xFF ] */ end + +.layer LAYER_4800 +/* 0x4800 [0xC6 0x2E ] */ instr SF1_INST_46 +/* 0x4802 [0x61 0x20 0x64 ] */ notedv PITCH_GF3, 32, 100 +/* 0x4805 [0xFF ] */ end + +.channel CHAN_4806 +/* 0x4806 [0x88 0x48 0x0A ] */ ldlayer 0, LAYER_480A +/* 0x4809 [0xFF ] */ end + +.layer LAYER_480A +/* 0x480A [0xC6 0x2E ] */ instr SF1_INST_46 +/* 0x480C [0xC2 0x30 ] */ transpose 48 +/* 0x480E [0x65 0x80 0x84 0x64 ] */ notedv PITCH_BF3, 132, 100 +/* 0x4812 [0xFF ] */ end + +.channel CHAN_4813 +/* 0x4813 [0xED 0x10 ] */ gain 16 +/* 0x4815 [0x88 0x48 0x1C ] */ ldlayer 0, LAYER_481C +/* 0x4818 [0x89 0x50 0x95 ] */ ldlayer 1, LAYER_5095 +/* 0x481B [0xFF ] */ end + +.layer LAYER_481C +/* 0x481C [0xC6 0x2D ] */ instr SF1_INST_45 +/* 0x481E [0xC7 0x81 0x23 0xFF ] */ portamento 0x81, PITCH_AF3, 255 +/* 0x4822 [0x5F 0x30 0x64 ] */ notedv PITCH_E3, 48, 100 +/* 0x4825 [0xFF ] */ end + +.channel CHAN_4826 +/* 0x4826 [0x88 0x48 0x29 ] */ ldlayer 0, LAYER_4829 + //! @bug missing end, causes overlapping layer and channel sections + +.layer LAYER_4829 // +/* 0x4829 [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX /* font 126 */ +/* 0x482B [0x67 0x00 0x64 ] */ notedv PITCH_C4, 0, 100 /* ldio IO_PORT_7 */ + /* cdelay 0 */ + /* ldio IO_PORT_4 */ +/* 0x482E [0xFF ] */ end /* end */ + +.channel CHAN_482F +/* 0x482F [0x88, 0x48, 0x33 ] */ ldlayer 0, LAYER_4833 +/* 0x4832 [0xFF ] */ end + +.layer LAYER_4833 +/* 0x4833 [0xC6, 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x4835 [0x57, 0x00, 0x64 ] */ notedv PITCH_AF2, 0, 100 +/* 0x4838 [0xFF ] */ end + +.channel CHAN_4839 +/* 0x4839 [0x88 0x48 0x46 ] */ ldlayer 0, LAYER_4846 +/* 0x483C [0x89 0x48 0x50 ] */ ldlayer 1, LAYER_4850 +/* 0x483F [0xED 0x10 ] */ gain 16 +/* 0x4841 [0xD7 0x64 ] */ vibfreq 100 +/* 0x4843 [0xD8 0x64 ] */ vibdepth 100 +/* 0x4845 [0xFF ] */ end + +.layer LAYER_4846 +/* 0x4846 [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x4848 [0xC7 0x81 0x0F 0xFF ] */ portamento 0x81, PITCH_C2, 255 +/* 0x484C [0x4B 0x54 0x64 ] */ notedv PITCH_AF1, 84, 100 +/* 0x484F [0xFF ] */ end + +.layer LAYER_4850 +/* 0x4850 [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x4852 [0xC4 ] */ legato +/* 0x4853 [0xC7 0x85 0x18 0x64 ] */ portamento 0x85, PITCH_A2, 100 +/* 0x4857 [0x5D 0x1E 0x64 ] */ notedv PITCH_D3, 30, 100 +/* 0x485A [0x58 0x2E 0x64 ] */ notedv PITCH_A2, 46, 100 +/* 0x485D [0xFF ] */ end + +.channel CHAN_485E +/* 0x485E [0xC1 0x26 ] */ instr SF1_INST_38 +/* 0x4860 [0x88 0x48 0x70 ] */ ldlayer 0, LAYER_4870 +CHAN_4863: +/* 0x4863 [0xB8 0x04 ] */ rand 4 +/* 0x4865 [0xC7 0x60 0x48 0x70 ] */ stseq (NOTEDV_OPCODE | PITCH_F3), LAYER_4870 + STSEQ_NOTEDV_OPCODE_PITCH +/* 0x4869 [0xCC 0x12 ] */ ldi 18 +/* 0x486B [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x486E [0xF4 0xF3 ] */ rjump CHAN_4863 + +.layer LAYER_4870 +/* 0x4870 [0x60 0x12 0x64 ] */ notedv PITCH_F3, 18, 100 +/* 0x4873 [0xF4 0xFB ] */ rjump LAYER_4870 + +.channel CHAN_4875 +/* 0x4875 [0xC1 0x2E ] */ instr SF1_INST_46 +/* 0x4877 [0x88 0x48 0x7F ] */ ldlayer 0, LAYER_487F +/* 0x487A [0xED 0x12 ] */ gain 18 +/* 0x487C [0xD9 0xF9 ] */ releaserate 249 +/* 0x487E [0xFF ] */ end + +.layer LAYER_487F +/* 0x487F [0x5C 0x08 0x64 ] */ notedv PITCH_DF3, 8, 100 +/* 0x4882 [0x59 0x1E 0x64 ] */ notedv PITCH_BF2, 30, 100 +/* 0x4885 [0xFF ] */ end + +.channel CHAN_4886 +/* 0x4886 [0x88 0x48 0x96 ] */ ldlayer 0, LAYER_4896 +/* 0x4889 [0x89 0x48 0xA4 ] */ ldlayer 1, LAYER_48A4 +/* 0x488C [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x488F [0xED 0x10 ] */ gain 16 +/* 0x4891 [0xD7 0x64 ] */ vibfreq 100 +/* 0x4893 [0xD8 0x64 ] */ vibdepth 100 +/* 0x4895 [0xFF ] */ end + +.layer LAYER_4896 +/* 0x4896 [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x4898 [0xC4 ] */ legato +/* 0x4899 [0xC7 0x85 0x19 0xFF ] */ portamento 0x85, PITCH_BF2, 255 +/* 0x489D [0x5C 0x18 0x64 ] */ notedv PITCH_DF3, 24, 100 +/* 0x48A0 [0x49 0x1C 0x64 ] */ notedv PITCH_GF1, 28, 100 +/* 0x48A3 [0xFF ] */ end + +.layer LAYER_48A4 +/* 0x48A4 [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x48A6 [0xC4 ] */ legato +/* 0x48A7 [0xC7 0x85 0x1E 0x64 ] */ portamento 0x85, PITCH_EF3, 100 +/* 0x48AB [0x63 0x0C 0x64 ] */ notedv PITCH_AF3, 12, 100 +/* 0x48AE [0x5E 0x12 0x64 ] */ notedv PITCH_EF3, 18, 100 +/* 0x48B1 [0xFF ] */ end + +.channel CHAN_48B2 +/* 0x48B2 [0xC1 0x26 ] */ instr SF1_INST_38 +/* 0x48B4 [0x88 0x48 0xB8 ] */ ldlayer 0, LAYER_48B8 +/* 0x48B7 [0xFF ] */ end + +.layer LAYER_48B8 +/* 0x48B8 [0xC7 0x81 0x2F 0x64 ] */ portamento 0x81, PITCH_AF4, 100 +/* 0x48BC [0x68 0x12 0x64 ] */ notedv PITCH_DF4, 18, 100 +/* 0x48BF [0xC7 0x81 0x2F 0x64 ] */ portamento 0x81, PITCH_AF4, 100 +/* 0x48C3 [0x68 0x12 0x64 ] */ notedv PITCH_DF4, 18, 100 +/* 0x48C6 [0xC7 0x81 0x2F 0x64 ] */ portamento 0x81, PITCH_AF4, 100 +/* 0x48CA [0x68 0x12 0x64 ] */ notedv PITCH_DF4, 18, 100 +/* 0x48CD [0xC7 0x81 0x2F 0x64 ] */ portamento 0x81, PITCH_AF4, 100 +/* 0x48D1 [0x68 0x50 0x64 ] */ notedv PITCH_DF4, 80, 100 +/* 0x48D4 [0xFF ] */ end + +.channel CHAN_48D5 +/* 0x48D5 [0x88 0x48 0xE5 ] */ ldlayer 0, LAYER_48E5 +/* 0x48D8 [0x89 0x48 0xA4 ] */ ldlayer 1, LAYER_48A4 +/* 0x48DB [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x48DE [0xED 0x10 ] */ gain 16 +/* 0x48E0 [0xD7 0x64 ] */ vibfreq 100 +/* 0x48E2 [0xD8 0x64 ] */ vibdepth 100 +/* 0x48E4 [0xFF ] */ end + +.layer LAYER_48E5 +/* 0x48E5 [0xC6 0x0F ] */ instr SF1_INST_15 +/* 0x48E7 [0xC7 0x85 0x1B 0xFF ] */ portamento 0x85, PITCH_C3, 255 +/* 0x48EB [0x63 0x18 0x64 ] */ notedv PITCH_AF3, 24, 100 +/* 0x48EE [0x4B 0x66 0x64 ] */ notedv PITCH_AF1, 102, 100 +/* 0x48F1 [0xFF ] */ end + +.channel CHAN_48F2 +/* 0x48F2 [0x88 0x48 0xFC ] */ ldlayer 0, LAYER_48FC +/* 0x48F5 [0xED 0x12 ] */ gain 18 +/* 0x48F7 [0xD7 0x64 ] */ vibfreq 100 +/* 0x48F9 [0xD8 0x64 ] */ vibdepth 100 +/* 0x48FB [0xFF ] */ end + +.layer LAYER_48FC +/* 0x48FC [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x48FE [0xC7 0x85 0x2A 0x64 ] */ portamento 0x85, PITCH_EF4, 100 +/* 0x4902 [0x5E 0x70 0x64 ] */ notedv PITCH_EF3, 112, 100 +/* 0x4905 [0xFF ] */ end + +.channel CHAN_4906 +/* 0x4906 [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x4908 [0x88 0x49 0x13 ] */ ldlayer 0, LAYER_4913 +/* 0x490B [0x89 0x49 0x20 ] */ ldlayer 1, LAYER_4920 +/* 0x490E [0xD7 0x54 ] */ vibfreq 84 +/* 0x4910 [0xD8 0x64 ] */ vibdepth 100 +/* 0x4912 [0xFF ] */ end + +.layer LAYER_4913 +/* 0x4913 [0x63 0x81 0x10 0x64 ] */ notedv PITCH_AF3, 272, 100 +/* 0x4917 [0xCB 0x68 0xAC 0xF0 ] */ env ENVELOPE_68AC, 240 +/* 0x491B [0xC0 0x80 0x88 ] */ ldelay 136 +/* 0x491E [0xF4 0xF3 ] */ rjump LAYER_4913 + +.layer LAYER_4920 +/* 0x4920 [0xCB 0x68 0xAC 0xF0 ] */ env ENVELOPE_68AC, 240 +/* 0x4924 [0xC0 0x80 0xCC ] */ ldelay 204 +/* 0x4927 [0xF4 0xEA ] */ rjump LAYER_4913 + +.channel CHAN_4929 +/* 0x4929 [0xC1 0x1D ] */ instr SF1_INST_29 +/* 0x492B [0x88 0x49 0x31 ] */ ldlayer 0, LAYER_4931 +/* 0x492E [0xED 0x14 ] */ gain 20 +/* 0x4930 [0xFF ] */ end + +.layer LAYER_4931 +/* 0x4931 [0xC2 0x06 ] */ transpose 6 +/* 0x4933 [0xC7 0x81 0x30 0x36 ] */ portamento 0x81, PITCH_A4, 54 +/* 0x4937 [0x7D 0x2C 0x64 ] */ notedv PITCH_BF5, 44, 100 +/* 0x493A [0xFF ] */ end + +.channel CHAN_493B +/* 0x493B [0x88 0x49 0x59 ] */ ldlayer 0, LAYER_4959 +/* 0x493E [0x89 0x49 0x49 ] */ ldlayer 1, LAYER_4949 +/* 0x4941 [0x8A 0x49 0x4B ] */ ldlayer 2, LAYER_494B +/* 0x4944 [0xD7 0x14 ] */ vibfreq 20 +/* 0x4946 [0xD8 0x32 ] */ vibdepth 50 +/* 0x4948 [0xFF ] */ end + +.layer LAYER_4949 +/* 0x4949 [0xC2 0x01 ] */ transpose 1 +.layer LAYER_494B +/* 0x494B [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x494D [0xC4 ] */ legato +/* 0x494E [0xC7 0x85 0x27 0x14 ] */ portamento 0x85, PITCH_C4, 20 +/* 0x4952 [0x6B 0x10 0x64 ] */ notedv PITCH_E4, 16, 100 +/* 0x4955 [0x66 0x56 0x64 ] */ notedv PITCH_B3, 86, 100 +/* 0x4958 [0xFF ] */ end + +.layer LAYER_4959 +/* 0x4959 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x495B [0xC7 0x85 0x26 0xFF ] */ portamento 0x85, PITCH_B3, 255 +/* 0x495F [0x6B 0x14 0x50 ] */ notedv PITCH_E4, 20, 80 +/* 0x4962 [0x5A 0x56 0x50 ] */ notedv PITCH_B2, 86, 80 +/* 0x4965 [0xFF ] */ end + +.channel CHAN_4966 +/* 0x4966 [0x88 0x49 0x6A ] */ ldlayer 0, LAYER_496A +/* 0x4969 [0xFF ] */ end + +.layer LAYER_496A +/* 0x496A [0xC6 0x10 ] */ instr SF1_INST_16 +/* 0x496C [0xC7 0x81 0x2B 0xFF ] */ portamento 0x81, PITCH_E4, 255 +/* 0x4970 [0x76 0x08 0x50 ] */ notedv PITCH_EF5, 8, 80 +/* 0x4973 [0xC7 0x81 0x34 0xFF ] */ portamento 0x81, PITCH_DF5, 255 +/* 0x4977 [0x6F 0x08 0x50 ] */ notedv PITCH_AF4, 8, 80 +/* 0x497A [0xFF ] */ end + +.channel CHAN_497B +/* 0x497B [0xC1 0x04 ] */ instr SF1_INST_4 +/* 0x497D [0x88 0x49 0x84 ] */ ldlayer 0, LAYER_4984 +/* 0x4980 [0x89 0x49 0x8C ] */ ldlayer 1, LAYER_498C +/* 0x4983 [0xFF ] */ end + +.layer LAYER_4984 +/* 0x4984 [0xC7 0x81 0x1F 0x64 ] */ portamento 0x81, PITCH_E3, 100 +/* 0x4988 [0x5B 0x32 0x40 ] */ notedv PITCH_C3, 50, 64 +/* 0x498B [0xFF ] */ end + +.layer LAYER_498C +/* 0x498C [0xC0 0x05 ] */ ldelay 5 +/* 0x498E [0xC7 0x81 0x21 0x64 ] */ portamento 0x81, PITCH_GF3, 100 +/* 0x4992 [0x5D 0x32 0x40 ] */ notedv PITCH_D3, 50, 64 +/* 0x4995 [0xFF ] */ end + +.channel CHAN_4996 +/* 0x4996 [0xC1 0x04 ] */ instr SF1_INST_4 +/* 0x4998 [0x88 0x49 0x9F ] */ ldlayer 0, LAYER_499F +/* 0x499B [0x89 0x49 0xA7 ] */ ldlayer 1, LAYER_49A7 +/* 0x499E [0xFF ] */ end + +.layer LAYER_499F +/* 0x499F [0xC7 0x81 0x1B 0x64 ] */ portamento 0x81, PITCH_C3, 100 +/* 0x49A3 [0x5F 0x32 0x40 ] */ notedv PITCH_E3, 50, 64 +/* 0x49A6 [0xFF ] */ end + +.layer LAYER_49A7 +/* 0x49A7 [0xC0 0x05 ] */ ldelay 5 +/* 0x49A9 [0xC7 0x81 0x1D 0x64 ] */ portamento 0x81, PITCH_D3, 100 +/* 0x49AD [0x61 0x32 0x40 ] */ notedv PITCH_GF3, 50, 64 +/* 0x49B0 [0xFF ] */ end + +.channel CHAN_49B1 +/* 0x49B1 [0xC1 0x20 ] */ instr SF1_INST_32 +/* 0x49B3 [0xDA 0x69 0x9C ] */ env ENVELOPE_699C +/* 0x49B6 [0x88 0x49 0xC0 ] */ ldlayer 0, LAYER_49C0 +/* 0x49B9 [0xED 0x12 ] */ gain 18 +/* 0x49BB [0xD7 0x80 ] */ vibfreq 128 +/* 0x49BD [0xD8 0x34 ] */ vibdepth 52 +/* 0x49BF [0xFF ] */ end + +.layer LAYER_49C0 +/* 0x49C0 [0xC7 0x81 0x1F 0xFF ] */ portamento 0x81, PITCH_E3, 255 +/* 0x49C4 [0x5A 0x64 0x64 ] */ notedv PITCH_B2, 100, 100 +/* 0x49C7 [0xFF ] */ end + +.channel CHAN_49C8 +/* 0x49C8 [0x88 0x49 0xD5 ] */ ldlayer 0, LAYER_49D5 +/* 0x49CB [0x89 0x49 0xDB ] */ ldlayer 1, LAYER_49DB +/* 0x49CE [0xED 0x14 ] */ gain 20 +/* 0x49D0 [0xD7 0xF0 ] */ vibfreq 240 +/* 0x49D2 [0xD8 0xF0 ] */ vibdepth 240 +/* 0x49D4 [0xFF ] */ end + +.layer LAYER_49D5 +/* 0x49D5 [0xC6 0x00 ] */ instr SF1_INST_0 +/* 0x49D7 [0x5D 0x64 0x64 ] */ notedv PITCH_D3, 100, 100 +/* 0x49DA [0xFF ] */ end + +.layer LAYER_49DB +/* 0x49DB [0xC6 0x13 ] */ instr SF1_INST_19 +/* 0x49DD [0xC7 0x81 0x07 0xFF ] */ portamento 0x81, PITCH_E1, 255 +/* 0x49E1 [0x65 0x80 0xE6 0x54 ] */ notedv PITCH_BF3, 230, 84 +/* 0x49E5 [0xFF ] */ end + +.channel CHAN_49E6 +/* 0x49E6 [0xC1 0x13 ] */ instr SF1_INST_19 +/* 0x49E8 [0x88 0x49 0xF0 ] */ ldlayer 0, LAYER_49F0 +/* 0x49EB [0xD7 0x7F ] */ vibfreq 127 +/* 0x49ED [0xD8 0x54 ] */ vibdepth 84 +/* 0x49EF [0xFF ] */ end + +.layer LAYER_49F0 +/* 0x49F0 [0xC4 ] */ legato +/* 0x49F1 [0xC7 0x85 0x0F 0x78 ] */ portamento 0x85, PITCH_C2, 120 +/* 0x49F5 [0x67 0x80 0xC8 0x64 ] */ notedv PITCH_C4, 200, 100 +LAYER_49F9: +/* 0x49F9 [0x67 0xF5 0x30 0x64 ] */ notedv PITCH_C4, 30000, 100 +/* 0x49FD [0xF4 0xFA ] */ rjump LAYER_49F9 + +.channel CHAN_49FF +/* 0x49FF [0x88 0x4A 0x09 ] */ ldlayer 0, LAYER_4A09 +/* 0x4A02 [0x89 0x4A 0x0B ] */ ldlayer 1, LAYER_4A0B +/* 0x4A05 [0x8A 0x4A 0x17 ] */ ldlayer 2, LAYER_4A17 +/* 0x4A08 [0xFF ] */ end + +.layer LAYER_4A09 +/* 0x4A09 [0xC2 0xF4 ] */ transpose -12 +.layer LAYER_4A0B +/* 0x4A0B [0xC6 0x02 ] */ instr SF1_INST_2 +/* 0x4A0D [0xCB 0x6A 0x7C 0xC8 ] */ env ENVELOPE_6A7C, 200 +LAYER_4A11: +/* 0x4A11 [0x62 0xF5 0x30 0x64 ] */ notedv PITCH_G3, 30000, 100 +/* 0x4A15 [0xF4 0xFA ] */ rjump LAYER_4A11 + +.layer LAYER_4A17 +/* 0x4A17 [0xC6 0x22 ] */ instr SF1_INST_34 +/* 0x4A19 [0xCB 0x6A 0x5C 0xC8 ] */ env ENVELOPE_6A5C, 200 +/* 0x4A1D [0x55 0x81 0x80 0x64 ] */ notedv PITCH_GF2, 384, 100 +/* 0x4A21 [0xFF ] */ end + +.channel CHAN_4A22 +/* 0x4A22 [0xC1 0x16 ] */ instr SF1_INST_22 +/* 0x4A24 [0x88 0x4A 0x28 ] */ ldlayer 0, LAYER_4A28 +/* 0x4A27 [0xFF ] */ end + +.layer LAYER_4A28 +/* 0x4A28 [0xC4 ] */ legato +/* 0x4A29 [0xC7 0x85 0x0A 0x66 ] */ portamento 0x85, PITCH_G1, 102 +/* 0x4A2D [0xC2 0x0A ] */ transpose 10 +/* 0x4A2F [0x78 0x28 0x64 ] */ notedv PITCH_F5, 40, 100 +/* 0x4A32 [0xC2 0x00 ] */ transpose 0 +LAYER_4A34: +/* 0x4A34 [0x78 0x64 0x64 ] */ notedv PITCH_F5, 100, 100 +/* 0x4A37 [0xF4 0xFB ] */ rjump LAYER_4A34 + +.channel CHAN_4A39 +/* 0x4A39 [0x88 0x4A 0x44 ] */ ldlayer 0, LAYER_4A44 +/* 0x4A3C [0x89 0x4B 0x32 ] */ ldlayer 1, LAYER_4B32 +/* 0x4A3F [0xD7 0x80 ] */ vibfreq 128 +/* 0x4A41 [0xD8 0x60 ] */ vibdepth 96 +/* 0x4A43 [0xFF ] */ end + +.layer LAYER_4A44 +/* 0x4A44 [0xC6 0x16 ] */ instr SF1_INST_22 +/* 0x4A46 [0xC2 0x0C ] */ transpose 12 +/* 0x4A48 [0xC4 ] */ legato +/* 0x4A49 [0xF4 0xE9 ] */ rjump LAYER_4A34 + +/* 0x4A4B [0xFF ] */ end + +.channel CHAN_4A4C +/* 0x4A4C [0xC1 0x16 ] */ instr SF1_INST_22 +/* 0x4A4E [0x88 0x4A 0x56 ] */ ldlayer 0, LAYER_4A56 +/* 0x4A51 [0xD7 0x7F ] */ vibfreq 127 +/* 0x4A53 [0xD8 0x54 ] */ vibdepth 84 +/* 0x4A55 [0xFF ] */ end + +.layer LAYER_4A56 +/* 0x4A56 [0xC4 ] */ legato +/* 0x4A57 [0xC7 0x85 0x23 0x78 ] */ portamento 0x85, PITCH_AF3, 120 +/* 0x4A5B [0x7B 0x80 0xC8 0x64 ] */ notedv PITCH_AF5, 200, 100 +LAYER_4A5F: +/* 0x4A5F [0x7B 0xF5 0x30 0x64 ] */ notedv PITCH_AF5, 30000, 100 +/* 0x4A63 [0xF4 0xFA ] */ rjump LAYER_4A5F + +.channel CHAN_4A65 +/* 0x4A65 [0xC1 0x16 ] */ instr SF1_INST_22 +/* 0x4A67 [0x88 0x4A 0x94 ] */ ldlayer 0, LAYER_4A94 +/* 0x4A6A [0x89 0x4A 0x96 ] */ ldlayer 1, LAYER_4A96 +/* 0x4A6D [0x8A 0x4A 0x9E ] */ ldlayer 2, LAYER_4A9E +/* 0x4A70 [0xD7 0xAF ] */ vibfreq 175 +/* 0x4A72 [0xD8 0xC4 ] */ vibdepth 196 +/* 0x4A74 [0xCC 0x24 ] */ ldi 36 +/* 0x4A76 [0x76 ] */ stio IO_PORT_6 +/* 0x4A77 [0xCC 0xBF ] */ ldi 191 +/* 0x4A79 [0xFC 0x00 0x48 ] */ call CHAN_0048 +CHAN_4A7C: +/* 0x4A7C [0x66 ] */ ldio IO_PORT_6 +/* 0x4A7D [0xC7 0x00 0x4A 0xAB ] */ stseq 0, LAYER_4AAA + STSEQ_NOTEDV_DELAY_HI +/* 0x4A81 [0xC7 0x00 0x4A 0xAE ] */ stseq 0, LAYER_4AAD + STSEQ_NOTEDV_DELAY_HI +/* 0x4A85 [0xC8 0x01 ] */ sub 1 +/* 0x4A87 [0x76 ] */ stio IO_PORT_6 +/* 0x4A88 [0xC8 0x04 ] */ sub 4 +/* 0x4A8A [0xF3 0x07 ] */ rbeqz CHAN_4A93 +/* 0x4A8C [0xCC 0x08 ] */ ldi 8 +/* 0x4A8E [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x4A91 [0xF4 0xE9 ] */ rjump CHAN_4A7C + +CHAN_4A93: +/* 0x4A93 [0xFF ] */ end + +.layer LAYER_4A94 +/* 0x4A94 [0xC6 0x13 ] */ instr SF1_INST_19 +.layer LAYER_4A96 +/* 0x4A96 [0xCB 0x68 0xB4 0xF9 ] */ env ENVELOPE_68B4, 249 +/* 0x4A9A [0xC2 0xFC ] */ transpose -4 +/* 0x4A9C [0xF4 0xB8 ] */ rjump LAYER_4A56 + +.layer LAYER_4A9E +/* 0x4A9E [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x4AA0 [0xC0 0x81 0x20 ] */ ldelay 288 +/* 0x4AA3 [0xF8 0x0A ] */ loop 10 +/* 0x4AA5 [0xC4 ] */ legato +/* 0x4AA6 [0xC7 0x85 0x1B 0xFF ] */ portamento 0x85, PITCH_C3, 255 +LAYER_4AAA: +/* 0x4AAA [0x60 0x1E 0x64 ] */ notedv PITCH_F3, 30, 100 +LAYER_4AAD: +/* 0x4AAD [0x58 0x1E 0x64 ] */ notedv PITCH_A2, 30, 100 +/* 0x4AB0 [0xC5 ] */ nolegato +/* 0x4AB1 [0xF7 ] */ loopend +/* 0x4AB2 [0xFF ] */ end + +.channel CHAN_4AB3 +/* 0x4AB3 [0xC1 0x02 ] */ instr SF1_INST_2 +/* 0x4AB5 [0x88 0x4A 0xBF ] */ ldlayer 0, LAYER_4ABF +/* 0x4AB8 [0xED 0x14 ] */ gain 20 +/* 0x4ABA [0xD7 0x90 ] */ vibfreq 144 +/* 0x4ABC [0xD8 0xF0 ] */ vibdepth 240 +/* 0x4ABE [0xFF ] */ end + +.layer LAYER_4ABF +/* 0x4ABF [0x57 0x30 0x64 ] */ notedv PITCH_AF2, 48, 100 +/* 0x4AC2 [0xFF ] */ end + +.channel CHAN_4AC3 +/* 0x4AC3 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x4AC5 [0x88 0x4A 0xC9 ] */ ldlayer 0, LAYER_4AC9 +/* 0x4AC8 [0xFF ] */ end + +.layer LAYER_4AC9 +/* 0x4AC9 [0xCB 0x68 0xDC 0xFA ] */ env ENVELOPE_68DC, 250 +LAYER_4ACD: +/* 0x4ACD [0xC7 0x81 0x1A 0x40 ] */ portamento 0x81, PITCH_B2, 64 +/* 0x4AD1 [0x53 0x0C 0x64 ] */ notedv PITCH_E2, 12, 100 +/* 0x4AD4 [0xF4 0xF7 ] */ rjump LAYER_4ACD + +.channel CHAN_4AD6 +/* 0x4AD6 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x4AD8 [0xDA 0x69 0x2C ] */ env ENVELOPE_692C +/* 0x4ADB [0x88 0x4A 0xDF ] */ ldlayer 0, LAYER_4ADF +/* 0x4ADE [0xFF ] */ end + +.layer LAYER_4ADF +/* 0x4ADF [0xC7 0x81 0x20 0x82 ] */ portamento 0x81, PITCH_F3, 130 +/* 0x4AE3 [0x55 0x1E 0x64 ] */ notedv PITCH_GF2, 30, 100 +/* 0x4AE6 [0xFF ] */ end + +.channel CHAN_4AE7 +/* 0x4AE7 [0x88 0x42 0x61 ] */ ldlayer 0, LAYER_4261 +/* 0x4AEA [0x89 0x4A 0xEE ] */ ldlayer 1, LAYER_4AEE +/* 0x4AED [0xFF ] */ end + +.layer LAYER_4AEE +/* 0x4AEE [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x4AF0 [0x42 0x00 0x64 ] */ notedv PITCH_B0, 0, 100 +/* 0x4AF3 [0xFF ] */ end + +.channel CHAN_4AF4 +/* 0x4AF4 [0x88 0x42 0x61 ] */ ldlayer 0, LAYER_4261 +/* 0x4AF7 [0x89 0x4A 0xFB ] */ ldlayer 1, LAYER_4AFB +/* 0x4AFA [0xFF ] */ end + +.layer LAYER_4AFB +/* 0x4AFB [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x4AFD [0x46 0x00 0x64 ] */ notedv PITCH_EF1, 0, 100 +/* 0x4B00 [0xFF ] */ end + +.channel CHAN_4B01 +/* 0x4B01 [0x88 0x4B 0x0B ] */ ldlayer 0, LAYER_4B0B +/* 0x4B04 [0x89 0x4B 0x12 ] */ ldlayer 1, LAYER_4B12 +/* 0x4B07 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x4B0A [0xFF ] */ end + +.layer LAYER_4B0B +/* 0x4B0B [0xC6 0x22 ] */ instr SF1_INST_34 +/* 0x4B0D [0x6F 0x81 0x10 0x64 ] */ notedv PITCH_AF4, 272, 100 +/* 0x4B11 [0xFF ] */ end + +.layer LAYER_4B12 +/* 0x4B12 [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x4B14 [0x4A 0x00 0x64 ] */ notedv PITCH_G1, 0, 100 +/* 0x4B17 [0xFF ] */ end + +.channel CHAN_4B18 +/* 0x4B18 [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x4B1A [0x88 0x4B 0x22 ] */ ldlayer 0, LAYER_4B22 +/* 0x4B1D [0xD7 0x70 ] */ vibfreq 112 +/* 0x4B1F [0xD8 0x80 ] */ vibdepth 128 +/* 0x4B21 [0xFF ] */ end + +.layer LAYER_4B22 +/* 0x4B22 [0xCB 0x69 0xDC 0xF0 ] */ env ENVELOPE_69DC, 240 +/* 0x4B26 [0xC4 ] */ legato +/* 0x4B27 [0xC7 0x85 0x03 0xFF ] */ portamento 0x85, PITCH_C1, 255 +/* 0x4B2B [0x54 0x1A 0x64 ] */ notedv PITCH_F2, 26, 100 +/* 0x4B2E [0x40 0x20 0x64 ] */ notedv PITCH_A0, 32, 100 +/* 0x4B31 [0xFF ] */ end + +.layer LAYER_4B32 +/* 0x4B32 [0xC6 0x86 ] */ instr FONTANY_INSTR_8PULSE +/* 0x4B34 [0xCB 0x6A 0x7C 0xF9 ] */ env ENVELOPE_6A7C, 249 +LAYER_4B38: +/* 0x4B38 [0x61 0xF5 0x30 0x64 ] */ notedv PITCH_GF3, 30000, 100 +/* 0x4B3C [0xF4 0xFA ] */ rjump LAYER_4B38 + +.channel CHAN_4B3E +/* 0x4B3E [0x88 0x52 0x1B ] */ ldlayer 0, LAYER_521B +/* 0x4B41 [0x89 0x52 0x19 ] */ ldlayer 1, LAYER_5219 +/* 0x4B44 [0xD7 0x60 ] */ vibfreq 96 +/* 0x4B46 [0xD8 0xF0 ] */ vibdepth 240 +/* 0x4B48 [0xFF ] */ end + +.channel CHAN_4B49 +/* 0x4B49 [0x88 0x4B 0x59 ] */ ldlayer 0, LAYER_4B59 +/* 0x4B4C [0x89 0x4B 0x50 ] */ ldlayer 1, LAYER_4B50 +/* 0x4B4F [0xFF ] */ end + +.layer LAYER_4B50 +/* 0x4B50 [0xC6 0x2F ] */ instr SF1_INST_47 +/* 0x4B52 [0x4D 0x08 0x40 ] */ notedv PITCH_BF1, 8, 64 +/* 0x4B55 [0x56 0x14 0x40 ] */ notedv PITCH_G2, 20, 64 +/* 0x4B58 [0xFF ] */ end + +.layer LAYER_4B59 +/* 0x4B59 [0xC6 0x00 ] */ instr SF1_INST_0 +/* 0x4B5B [0xCB 0x68 0xDC 0xF9 ] */ env ENVELOPE_68DC, 249 +/* 0x4B5F [0xC7 0x81 0x1A 0x60 ] */ portamento 0x81, PITCH_B2, 96 +/* 0x4B63 [0x50 0x1E 0x64 ] */ notedv PITCH_DF2, 30, 100 +/* 0x4B66 [0xFF ] */ end + +.channel CHAN_4B67 +/* 0x4B67 [0x88 0x4B 0x71 ] */ ldlayer 0, LAYER_4B71 +/* 0x4B6A [0x89 0x4B 0x7B ] */ ldlayer 1, LAYER_4B7B +/* 0x4B6D [0x8A 0x4B 0x87 ] */ ldlayer 2, LAYER_4B87 +/* 0x4B70 [0xFF ] */ end + +.layer LAYER_4B71 +/* 0x4B71 [0xC6 0x1C ] */ instr SF1_INST_28 +/* 0x4B73 [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x4B77 [0x58 0x78 0x64 ] */ notedv PITCH_A2, 120, 100 +/* 0x4B7A [0xFF ] */ end + +.layer LAYER_4B7B +/* 0x4B7B [0xC6 0x2F ] */ instr SF1_INST_47 +/* 0x4B7D [0x4D 0x04 0x40 ] */ notedv PITCH_BF1, 4, 64 +/* 0x4B80 [0x56 0x06 0x40 ] */ notedv PITCH_G2, 6, 64 +/* 0x4B83 [0x5C 0x14 0x40 ] */ notedv PITCH_DF3, 20, 64 +/* 0x4B86 [0xFF ] */ end + +.layer LAYER_4B87 +/* 0x4B87 [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x4B89 [0x4D 0x00 0x64 ] */ notedv PITCH_BF1, 0, 100 +/* 0x4B8C [0xFF ] */ end + +.channel CHAN_4B8D +/* 0x4B8D [0x88 0x4B 0x9B ] */ ldlayer 0, LAYER_4B9B +/* 0x4B90 [0x8A 0x4B 0xA9 ] */ ldlayer 2, LAYER_4BA9 +CHAN_4B93: +/* 0x4B93 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x4B96 [0xD7 0x80 ] */ vibfreq 128 +/* 0x4B98 [0xD8 0x30 ] */ vibdepth 48 +/* 0x4B9A [0xFF ] */ end + +.layer LAYER_4B9B +/* 0x4B9B [0xC6 0x1A ] */ instr SF1_INST_26 +/* 0x4B9D [0xC4 ] */ legato +/* 0x4B9E [0xC7 0x85 0x2E 0xC8 ] */ portamento 0x85, PITCH_G4, 200 +/* 0x4BA2 [0x73 0x20 0x64 ] */ notedv PITCH_C5, 32, 100 +/* 0x4BA5 [0x6B 0x6C 0x64 ] */ notedv PITCH_E4, 108, 100 +/* 0x4BA8 [0xFF ] */ end + +.layer LAYER_4BA9 +/* 0x4BA9 [0xC6 0x11 ] */ instr SF1_INST_17 +/* 0x4BAB [0x62 0x05 0x64 ] */ notedv PITCH_G3, 5, 100 +/* 0x4BAE [0x62 0x05 0x64 ] */ notedv PITCH_G3, 5, 100 +/* 0x4BB1 [0xFF ] */ end + +.channel CHAN_4BB2 +/* 0x4BB2 [0x88 0x4B 0xB7 ] */ ldlayer 0, LAYER_4BB7 +/* 0x4BB5 [0xF4 0xDC ] */ rjump CHAN_4B93 + +.layer LAYER_4BB7 +/* 0x4BB7 [0xC2 0x05 ] */ transpose 5 +/* 0x4BB9 [0xF4 0xE0 ] */ rjump LAYER_4B9B + +/* 0x4BBB [0xFF ] */ end + +.channel CHAN_4BBC +/* 0x4BBC [0x88 0x4B 0xC0 ] */ ldlayer 0, LAYER_4BC0 +/* 0x4BBF [0xFF ] */ end + +.layer LAYER_4BC0 +/* 0x4BC0 [0xC6 0x19 ] */ instr SF1_INST_25 +/* 0x4BC2 [0xC4 ] */ legato +/* 0x4BC3 [0xC7 0x85 0x1E 0x1E ] */ portamento 0x85, PITCH_EF3, 30 +/* 0x4BC7 [0x6F 0x08 0x64 ] */ notedv PITCH_AF4, 8, 100 +/* 0x4BCA [0x6D 0x12 0x64 ] */ notedv PITCH_GF4, 18, 100 +/* 0x4BCD [0xFF ] */ end + +.channel CHAN_4BCE +/* 0x4BCE [0x8B 0x48 0x29 ] */ ldlayer 3, LAYER_4829 +CHAN_4BD1: +/* 0x4BD1 [0x88 0x4B 0xDB ] */ ldlayer 0, LAYER_4BDB +/* 0x4BD4 [0x89 0x4B 0xDD ] */ ldlayer 1, LAYER_4BDD +/* 0x4BD7 [0x8A 0x4B 0xF3 ] */ ldlayer 2, LAYER_4BF3 +/* 0x4BDA [0xFF ] */ end + +.layer LAYER_4BDB +/* 0x4BDB [0xC0 0x08 ] */ ldelay 8 +.layer LAYER_4BDD +/* 0x4BDD [0xC6 0x2B ] */ instr SF1_INST_43 +/* 0x4BDF [0xC2 0x0C ] */ transpose 12 +/* 0x4BE1 [0xC7 0x81 0x30 0x64 ] */ portamento 0x81, PITCH_A4, 100 +/* 0x4BE5 [0x77 0x1E 0x64 ] */ notedv PITCH_E5, 30, 100 +/* 0x4BE8 [0xC7 0x85 0x33 0x64 ] */ portamento 0x85, PITCH_C5, 100 +/* 0x4BEC [0x78 0x14 0x64 ] */ notedv PITCH_F5, 20, 100 +/* 0x4BEF [0x72 0x1E 0x64 ] */ notedv PITCH_B4, 30, 100 +/* 0x4BF2 [0xFF ] */ end + +.layer LAYER_4BF3 +/* 0x4BF3 [0xC6 0x2D ] */ instr SF1_INST_45 +/* 0x4BF5 [0xC4 ] */ legato +/* 0x4BF6 [0xC2 0x30 ] */ transpose 48 +/* 0x4BF8 [0xC7 0x85 0x2F 0xC8 ] */ portamento 0x85, PITCH_AF4, 200 +/* 0x4BFC [0x75 0x20 0x64 ] */ notedv PITCH_D5, 32, 100 +/* 0x4BFF [0x5A 0x64 0x64 ] */ notedv PITCH_B2, 100, 100 +/* 0x4C02 [0xFF ] */ end + +.channel CHAN_4C03 +/* 0x4C03 [0xF4 0xCC ] */ rjump CHAN_4BD1 + +.channel CHAN_4C05 +/* 0x4C05 [0x88 0x4B 0x7B ] */ ldlayer 0, LAYER_4B7B +/* 0x4C08 [0xFF ] */ end + +.channel CHAN_4C09 +/* 0x4C09 [0xC1 0x1C ] */ instr SF1_INST_28 +/* 0x4C0B [0x88 0x4C 0x0F ] */ ldlayer 0, LAYER_4C0F +/* 0x4C0E [0xFF ] */ end + +.layer LAYER_4C0F +/* 0x4C0F [0xC4 ] */ legato +/* 0x4C10 [0xC7 0x85 0x13 0xC8 ] */ portamento 0x85, PITCH_E2, 200 +/* 0x4C14 [0x52 0x18 0x64 ] */ notedv PITCH_EF2, 24, 100 +/* 0x4C17 [0x5A 0x3C 0x64 ] */ notedv PITCH_B2, 60, 100 +/* 0x4C1A [0xFF ] */ end + +.channel CHAN_4C1B +/* 0x4C1B [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x4C1D [0x88 0x4C 0x25 ] */ ldlayer 0, LAYER_4C25 +/* 0x4C20 [0xD7 0xC4 ] */ vibfreq 196 +/* 0x4C22 [0xD8 0xC4 ] */ vibdepth 196 +/* 0x4C24 [0xFF ] */ end + +.layer LAYER_4C25 +/* 0x4C25 [0xC7 0x81 0x3E 0xFF ] */ portamento 0x81, PITCH_B5, 255 +/* 0x4C29 [0x5E 0x40 0x64 ] */ notedv PITCH_EF3, 64, 100 +/* 0x4C2C [0xFF ] */ end + +.channel CHAN_4C2D +/* 0x4C2D [0x88 0x4C 0x34 ] */ ldlayer 0, LAYER_4C34 +/* 0x4C30 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x4C33 [0xFF ] */ end + +.layer LAYER_4C34 +/* 0x4C34 [0xC6 0x17 ] */ instr SF1_INST_23 +LAYER_4C36: +/* 0x4C36 [0xC7 0x81 0x20 0xFF ] */ portamento 0x81, PITCH_F3, 255 +/* 0x4C3A [0x67 0x0A 0x64 ] */ notedv PITCH_C4, 10, 100 +/* 0x4C3D [0xC7 0x81 0x22 0xFF ] */ portamento 0x81, PITCH_G3, 255 +/* 0x4C41 [0x69 0x0A 0x64 ] */ notedv PITCH_D4, 10, 100 +/* 0x4C44 [0xC7 0x81 0x24 0xFF ] */ portamento 0x81, PITCH_A3, 255 +/* 0x4C48 [0x6B 0x0A 0x64 ] */ notedv PITCH_E4, 10, 100 +/* 0x4C4B [0xC7 0x81 0x2D 0xFF ] */ portamento 0x81, PITCH_GF4, 255 +/* 0x4C4F [0x64 0x0E 0x64 ] */ notedv PITCH_A3, 14, 100 +/* 0x4C52 [0xFF ] */ end + +.channel CHAN_4C53 +/* 0x4C53 [0x88 0x4C 0x57 ] */ ldlayer 0, LAYER_4C57 +/* 0x4C56 [0xFF ] */ end + +.layer LAYER_4C57 +/* 0x4C57 [0xC6 0x14 ] */ instr SF1_INST_20 +/* 0x4C59 [0xC2 0x04 ] */ transpose 4 +/* 0x4C5B [0xF4 0xD9 ] */ rjump LAYER_4C36 + +.channel CHAN_4C5D +/* 0x4C5D [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x4C5F [0x88 0x4C 0x6A ] */ ldlayer 0, LAYER_4C6A +/* 0x4C62 [0xDA 0x69 0x9C ] */ env ENVELOPE_699C +/* 0x4C65 [0xD7 0x70 ] */ vibfreq 112 +/* 0x4C67 [0xD8 0x60 ] */ vibdepth 96 +/* 0x4C69 [0xFF ] */ end + +.layer LAYER_4C6A +/* 0x4C6A [0x53 0x64 0x64 ] */ notedv PITCH_E2, 100, 100 +/* 0x4C6D [0xFF ] */ end + +.channel CHAN_4C6E +/* 0x4C6E [0xC1 0x05 ] */ instr SF1_INST_5 +/* 0x4C70 [0x88 0x4C 0x74 ] */ ldlayer 0, LAYER_4C74 +/* 0x4C73 [0xFF ] */ end + +.layer LAYER_4C74 +/* 0x4C74 [0xC7 0x81 0x15 0x80 ] */ portamento 0x81, PITCH_GF2, 128 +/* 0x4C78 [0x58 0x08 0x64 ] */ notedv PITCH_A2, 8, 100 +/* 0x4C7B [0xFF ] */ end + +.channel CHAN_4C7C +/* 0x4C7C [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x4C7E [0x88 0x4C 0x89 ] */ ldlayer 0, LAYER_4C89 +/* 0x4C81 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x4C84 [0xD7 0x84 ] */ vibfreq 132 +/* 0x4C86 [0xD8 0x46 ] */ vibdepth 70 +/* 0x4C88 [0xFF ] */ end + +.layer LAYER_4C89 +/* 0x4C89 [0xC4 ] */ legato +/* 0x4C8A [0xC7 0x85 0x38 0x80 ] */ portamento 0x85, PITCH_F5, 128 +/* 0x4C8E [0x7D 0x14 0x64 ] */ notedv PITCH_BF5, 20, 100 +/* 0x4C91 [0x75 0x2C 0x64 ] */ notedv PITCH_D5, 44, 100 +/* 0x4C94 [0xFF ] */ end + +.channel CHAN_4C95 +/* 0x4C95 [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x4C97 [0x88 0x4C 0xA2 ] */ ldlayer 0, LAYER_4CA2 +/* 0x4C9A [0xDA 0x69 0xDC ] */ env ENVELOPE_69DC +/* 0x4C9D [0xD7 0x3E ] */ vibfreq 62 +/* 0x4C9F [0xD8 0x60 ] */ vibdepth 96 +/* 0x4CA1 [0xFF ] */ end + +.layer LAYER_4CA2 +/* 0x4CA2 [0x63 0x3C 0x50 ] */ notedv PITCH_AF3, 60, 80 +/* 0x4CA5 [0xF4 0xFB ] */ rjump LAYER_4CA2 + +.channel CHAN_4CA7 +/* 0x4CA7 [0x88 0x4C 0xAB ] */ ldlayer 0, LAYER_4CAB +/* 0x4CAA [0xFF ] */ end + +.layer LAYER_4CAB +/* 0x4CAB [0xC6 0x28 ] */ instr SF1_INST_40 +/* 0x4CAD [0xCB 0x69 0x4C 0xF9 ] */ env ENVELOPE_694C, 249 +/* 0x4CB1 [0xC4 ] */ legato +/* 0x4CB2 [0xC7 0x85 0x07 0x96 ] */ portamento 0x85, PITCH_E1, 150 +/* 0x4CB6 [0x44 0x0A 0x64 ] */ notedv PITCH_DF1, 10, 100 +/* 0x4CB9 [0x50 0x16 0x64 ] */ notedv PITCH_DF2, 22, 100 +/* 0x4CBC [0xFF ] */ end + +.channel CHAN_4CBD +/* 0x4CBD [0x88 0x4C 0xC1 ] */ ldlayer 0, LAYER_4CC1 +/* 0x4CC0 [0xFF ] */ end + +.layer LAYER_4CC1 +/* 0x4CC1 [0xC2 0x0C ] */ transpose 12 +/* 0x4CC3 [0xF4 0xE6 ] */ rjump LAYER_4CAB + +/* 0x4CC5 [0xFF ] */ end + +.channel CHAN_4CC6 +/* 0x4CC6 [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x4CC8 [0x88 0x4C 0xD3 ] */ ldlayer 0, LAYER_4CD3 +/* 0x4CCB [0xDA 0x69 0xFC ] */ env ENVELOPE_69FC +/* 0x4CCE [0xD7 0x50 ] */ vibfreq 80 +/* 0x4CD0 [0xD8 0x40 ] */ vibdepth 64 +/* 0x4CD2 [0xFF ] */ end + +.layer LAYER_4CD3 +/* 0x4CD3 [0xC4 ] */ legato +/* 0x4CD4 [0xC7 0x85 0x06 0xFF ] */ portamento 0x85, PITCH_EF1, 255 +/* 0x4CD8 [0x5E 0x2A 0x45 ] */ notedv PITCH_EF3, 42, 69 +/* 0x4CDB [0x56 0x40 0x45 ] */ notedv PITCH_G2, 64, 69 +/* 0x4CDE [0xF4 0xF3 ] */ rjump LAYER_4CD3 + +.channel CHAN_4CE0 +/* 0x4CE0 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x4CE2 [0x88 0x4C 0xE6 ] */ ldlayer 0, LAYER_4CE6 +/* 0x4CE5 [0xFF ] */ end + +.layer LAYER_4CE6 +/* 0x4CE6 [0xC4 ] */ legato +/* 0x4CE7 [0xCB 0x68 0xFC 0xFF ] */ env ENVELOPE_68FC, 255 +/* 0x4CEB [0xC7 0x85 0x19 0xE6 ] */ portamento 0x85, PITCH_BF2, 230 +/* 0x4CEF [0x5E 0x05 0x50 ] */ notedv PITCH_EF3, 5, 80 +/* 0x4CF2 [0x59 0x05 0x50 ] */ notedv PITCH_BF2, 5, 80 +/* 0x4CF5 [0xC5 ] */ nolegato +/* 0x4CF6 [0xC0 0x05 ] */ ldelay 5 +/* 0x4CF8 [0xC4 ] */ legato +/* 0x4CF9 [0xCB 0x68 0xFC 0xFF ] */ env ENVELOPE_68FC, 255 +/* 0x4CFD [0xC7 0x85 0x19 0xDC ] */ portamento 0x85, PITCH_BF2, 220 +/* 0x4D01 [0x5E 0x05 0x50 ] */ notedv PITCH_EF3, 5, 80 +/* 0x4D04 [0x59 0x0A 0x50 ] */ notedv PITCH_BF2, 10, 80 +/* 0x4D07 [0xFF ] */ end + +.channel CHAN_4D08 +/* 0x4D08 [0xC1 0x0A ] */ instr SF1_INST_10 +/* 0x4D0A [0x88 0x4D 0x0E ] */ ldlayer 0, LAYER_4D0E +/* 0x4D0D [0xFF ] */ end + +.layer LAYER_4D0E +/* 0x4D0E [0xC7 0x81 0x23 0xC8 ] */ portamento 0x81, PITCH_AF3, 200 +/* 0x4D12 [0x66 0x20 0x64 ] */ notedv PITCH_B3, 32, 100 +/* 0x4D15 [0xFF ] */ end + +.channel CHAN_4D16 +/* 0x4D16 [0x88 0x4D 0x23 ] */ ldlayer 0, LAYER_4D23 +/* 0x4D19 [0x89 0x4A 0x09 ] */ ldlayer 1, LAYER_4A09 +/* 0x4D1C [0x8A 0x4A 0x0B ] */ ldlayer 2, LAYER_4A0B +/* 0x4D1F [0x8B 0x4A 0x17 ] */ ldlayer 3, LAYER_4A17 +/* 0x4D22 [0xFF ] */ end + +.layer LAYER_4D23 +/* 0x4D23 [0xC0 0x7F ] */ ldelay 127 +/* 0x4D25 [0xFF ] */ end + +.channel CHAN_4D26 +/* 0x4D26 [0xC1 0x2F ] */ instr SF1_INST_47 +/* 0x4D28 [0x88 0x4D 0x2C ] */ ldlayer 0, LAYER_4D2C +/* 0x4D2B [0xFF ] */ end + +.layer LAYER_4D2C +/* 0x4D2C [0xC2 0x30 ] */ transpose 48 +LAYER_4D2E: +/* 0x4D2E [0x67 0xF5 0x30 0x64 ] */ notedv PITCH_C4, 30000, 100 +/* 0x4D32 [0xF4 0xFA ] */ rjump LAYER_4D2E + +.channel CHAN_4D34 +/* 0x4D34 [0x88 0x4D 0x4D ] */ ldlayer 0, LAYER_4D4D +/* 0x4D37 [0x89 0x4D 0x3B ] */ ldlayer 1, LAYER_4D3B +/* 0x4D3A [0xFF ] */ end + +.layer LAYER_4D3B +/* 0x4D3B [0xC6 0x2F ] */ instr SF1_INST_47 +/* 0x4D3D [0x49 0x40 0x64 ] */ notedv PITCH_GF1, 64, 100 +/* 0x4D40 [0x49 0x14 0x64 ] */ notedv PITCH_GF1, 20, 100 +/* 0x4D43 [0x49 0x10 0x54 ] */ notedv PITCH_GF1, 16, 84 +/* 0x4D46 [0x49 0x0A 0x44 ] */ notedv PITCH_GF1, 10, 68 +/* 0x4D49 [0x49 0x0A 0x44 ] */ notedv PITCH_GF1, 10, 68 +/* 0x4D4C [0xFF ] */ end + +.layer LAYER_4D4D +/* 0x4D4D [0xC2 0xF8 ] */ transpose -8 +/* 0x4D4F [0xC0 0x04 ] */ ldelay 4 +/* 0x4D51 [0xF4 0xE8 ] */ rjump LAYER_4D3B + +.channel CHAN_4D53 +/* 0x4D53 [0x88 0x4D 0x3B ] */ ldlayer 0, LAYER_4D3B +/* 0x4D56 [0xFF ] */ end + +.channel CHAN_4D57 +/* 0x4D57 [0x88 0x4D 0x70 ] */ ldlayer 0, LAYER_4D70 +/* 0x4D5A [0x89 0x4D 0x5E ] */ ldlayer 1, LAYER_4D5E +/* 0x4D5D [0xFF ] */ end + +.layer LAYER_4D5E +/* 0x4D5E [0xC6 0x2F ] */ instr SF1_INST_47 +/* 0x4D60 [0x49 0x08 0x64 ] */ notedv PITCH_GF1, 8, 100 +/* 0x4D63 [0x49 0x40 0x64 ] */ notedv PITCH_GF1, 64, 100 +/* 0x4D66 [0x49 0x20 0x64 ] */ notedv PITCH_GF1, 32, 100 +/* 0x4D69 [0x49 0x30 0x54 ] */ notedv PITCH_GF1, 48, 84 +/* 0x4D6C [0x49 0x40 0x44 ] */ notedv PITCH_GF1, 64, 68 +/* 0x4D6F [0xFF ] */ end + +.layer LAYER_4D70 +/* 0x4D70 [0xC2 0xF8 ] */ transpose -8 +/* 0x4D72 [0xF4 0xEA ] */ rjump LAYER_4D5E + +.channel CHAN_4D74 +/* 0x4D74 [0x88 0x4D 0x87 ] */ ldlayer 0, LAYER_4D87 +/* 0x4D77 [0x89 0x4D 0x7B ] */ ldlayer 1, LAYER_4D7B +/* 0x4D7A [0xFF ] */ end + +.layer LAYER_4D7B +/* 0x4D7B [0xC6 0x2F ] */ instr SF1_INST_47 +/* 0x4D7D [0x46 0x06 0x64 ] */ notedv PITCH_EF1, 6, 100 +/* 0x4D80 [0x49 0x0E 0x64 ] */ notedv PITCH_GF1, 14, 100 +/* 0x4D83 [0x4F 0x10 0x64 ] */ notedv PITCH_C2, 16, 100 +/* 0x4D86 [0xFF ] */ end + +.layer LAYER_4D87 +/* 0x4D87 [0xC2 0xFB ] */ transpose -5 +/* 0x4D89 [0xF4 0xF0 ] */ rjump LAYER_4D7B + +.channel CHAN_4D8B +/* 0x4D8B [0x88 0x4D 0x9C ] */ ldlayer 0, LAYER_4D9C +/* 0x4D8E [0x89 0x4D 0x92 ] */ ldlayer 1, LAYER_4D92 +/* 0x4D91 [0xFF ] */ end + +.layer LAYER_4D92 +/* 0x4D92 [0xC6 0x11 ] */ instr SF1_INST_17 +/* 0x4D94 [0xC7 0x81 0x08 0xC8 ] */ portamento 0x81, PITCH_F1, 200 +/* 0x4D98 [0x4D 0x20 0x64 ] */ notedv PITCH_BF1, 32, 100 +/* 0x4D9B [0xFF ] */ end + +.layer LAYER_4D9C +/* 0x4D9C [0xC6 0x2F ] */ instr SF1_INST_47 +/* 0x4D9E [0xC0 0x0E ] */ ldelay 14 +/* 0x4DA0 [0x46 0x14 0x40 ] */ notedv PITCH_EF1, 20, 64 +/* 0x4DA3 [0xFF ] */ end + +.channel CHAN_4DA4 +/* 0x4DA4 [0x88 0x4D 0xAB ] */ ldlayer 0, LAYER_4DAB +/* 0x4DA7 [0x89 0x4D 0xBB ] */ ldlayer 1, LAYER_4DBB +/* 0x4DAA [0xFF ] */ end + +.layer LAYER_4DAB +/* 0x4DAB [0xC6 0x2F ] */ instr SF1_INST_47 +/* 0x4DAD [0xCB 0x69 0x5C 0xF9 ] */ env ENVELOPE_695C, 249 +/* 0x4DB1 [0xF8 0x05 ] */ loop 5 +/* 0x4DB3 [0x4F 0x0A 0x64 ] */ notedv PITCH_C2, 10, 100 +/* 0x4DB6 [0x4A 0x08 0x64 ] */ notedv PITCH_G1, 8, 100 +/* 0x4DB9 [0xF7 ] */ loopend +/* 0x4DBA [0xFF ] */ end + +.layer LAYER_4DBB +/* 0x4DBB [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x4DBD [0x4F 0x00 0x64 ] */ notedv PITCH_C2, 0, 100 +/* 0x4DC0 [0xFF ] */ end + +.channel CHAN_4DC1 +/* 0x4DC1 [0x88 0x4D 0xC7 ] */ ldlayer 0, LAYER_4DC7 +/* 0x4DC4 [0xED 0x20 ] */ gain 32 +/* 0x4DC6 [0xFF ] */ end + +.layer LAYER_4DC7 +/* 0x4DC7 [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x4DC9 [0x4C 0x00 0x64 ] */ notedv PITCH_A1, 0, 100 +/* 0x4DCC [0xFF ] */ end + +.channel CHAN_4DCD +/* 0x4DCD [0xC1 0x12 ] */ instr SF1_INST_18 +/* 0x4DCF [0x88 0x4D 0xDA ] */ ldlayer 0, LAYER_4DDA +/* 0x4DD2 [0x89 0x4D 0xDC ] */ ldlayer 1, LAYER_4DDC +/* 0x4DD5 [0xD7 0x28 ] */ vibfreq 40 +/* 0x4DD7 [0xD8 0x60 ] */ vibdepth 96 +/* 0x4DD9 [0xFF ] */ end + +.layer LAYER_4DDA +/* 0x4DDA [0xC2 0x06 ] */ transpose 6 +.layer LAYER_4DDC +/* 0x4DDC [0x70 0xF5 0x30 0x64 ] */ notedv PITCH_A4, 30000, 100 +/* 0x4DE0 [0xF4 0xFA ] */ rjump LAYER_4DDC + +.channel CHAN_4DE2 +/* 0x4DE2 [0x88 0x4E 0x03 ] */ ldlayer 0, LAYER_4E03 +/* 0x4DE5 [0x89 0x4D 0xF3 ] */ ldlayer 1, LAYER_4DF3 +/* 0x4DE8 [0x8A 0x4D 0xF5 ] */ ldlayer 2, LAYER_4DF5 +/* 0x4DEB [0x8B 0x48 0x29 ] */ ldlayer 3, LAYER_4829 +/* 0x4DEE [0xD7 0x74 ] */ vibfreq 116 +/* 0x4DF0 [0xD8 0xD2 ] */ vibdepth 210 +/* 0x4DF2 [0xFF ] */ end + +.layer LAYER_4DF3 +/* 0x4DF3 [0xC2 0x0C ] */ transpose 12 +.layer LAYER_4DF5 +/* 0x4DF5 [0xC6 0x0B ] */ instr SF1_INST_11 +LAYER_4DF7: +/* 0x4DF7 [0xC7 0x85 0x20 0xFF ] */ portamento 0x85, PITCH_F3, 255 +/* 0x4DFB [0x67 0x20 0x50 ] */ notedv PITCH_C4, 32, 80 +/* 0x4DFE [0x5A 0x80 0x90 0x50 ] */ notedv PITCH_B2, 144, 80 +/* 0x4E02 [0xFF ] */ end + +.layer LAYER_4E03 +/* 0x4E03 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x4E05 [0xC7 0x81 0x25 0x64 ] */ portamento 0x81, PITCH_BF3, 100 +/* 0x4E09 [0x55 0x80 0xB0 0x64 ] */ notedv PITCH_GF2, 176, 100 +/* 0x4E0D [0xFF ] */ end + +.channel CHAN_4E0E +/* 0x4E0E [0x88 0x4E 0x1F ] */ ldlayer 0, LAYER_4E1F +/* 0x4E11 [0x89 0x4D 0xF5 ] */ ldlayer 1, LAYER_4DF5 +/* 0x4E14 [0x8A 0x4E 0x77 ] */ ldlayer 2, LAYER_4E77 +/* 0x4E17 [0x8B 0x48 0x29 ] */ ldlayer 3, LAYER_4829 +/* 0x4E1A [0xD7 0x50 ] */ vibfreq 80 +/* 0x4E1C [0xD8 0x30 ] */ vibdepth 48 +/* 0x4E1E [0xFF ] */ end + +.layer LAYER_4E1F +/* 0x4E1F [0xC2 0x04 ] */ transpose 4 +/* 0x4E21 [0xF4 0xE0 ] */ rjump LAYER_4E03 + +.channel CHAN_4E23 +/* 0x4E23 [0x88 0x4E 0x3A ] */ ldlayer 0, LAYER_4E3A +/* 0x4E26 [0x89 0x4E 0x34 ] */ ldlayer 1, LAYER_4E34 +/* 0x4E29 [0x8A 0x4E 0x36 ] */ ldlayer 2, LAYER_4E36 +/* 0x4E2C [0x8B 0x48 0x29 ] */ ldlayer 3, LAYER_4829 +/* 0x4E2F [0xD7 0xA4 ] */ vibfreq 164 +/* 0x4E31 [0xD8 0xA2 ] */ vibdepth 162 +/* 0x4E33 [0xFF ] */ end + +.layer LAYER_4E34 +/* 0x4E34 [0xC2 0x04 ] */ transpose 4 +.layer LAYER_4E36 +/* 0x4E36 [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x4E38 [0xF4 0xBD ] */ rjump LAYER_4DF7 + +.layer LAYER_4E3A +/* 0x4E3A [0xC2 0x02 ] */ transpose 2 +/* 0x4E3C [0xF4 0xC5 ] */ rjump LAYER_4E03 + +.channel CHAN_4E3E +/* 0x4E3E [0x88 0x4E 0x47 ] */ ldlayer 0, LAYER_4E47 +/* 0x4E41 [0x89 0x4E 0x45 ] */ ldlayer 1, LAYER_4E45 +/* 0x4E44 [0xFF ] */ end + +.layer LAYER_4E45 +/* 0x4E45 [0xC2 0x06 ] */ transpose 6 +.layer LAYER_4E47 +/* 0x4E47 [0xC6 0x28 ] */ instr SF1_INST_40 +/* 0x4E49 [0xCB 0x69 0x4C 0xF9 ] */ env ENVELOPE_694C, 249 +/* 0x4E4D [0xC4 ] */ legato +/* 0x4E4E [0xC7 0x85 0x13 0x96 ] */ portamento 0x85, PITCH_E2, 150 +/* 0x4E52 [0x43 0x0A 0x64 ] */ notedv PITCH_C1, 10, 100 +/* 0x4E55 [0x5A 0x14 0x64 ] */ notedv PITCH_B2, 20, 100 +/* 0x4E58 [0xFF ] */ end + +.channel CHAN_4E59 +/* 0x4E59 [0x88 0x4E 0x75 ] */ ldlayer 0, LAYER_4E75 +/* 0x4E5C [0x89 0x4E 0x77 ] */ ldlayer 1, LAYER_4E77 +/* 0x4E5F [0x8A 0x4E 0x66 ] */ ldlayer 2, LAYER_4E66 +/* 0x4E62 [0x8B 0x4E 0x68 ] */ ldlayer 3, LAYER_4E68 +/* 0x4E65 [0xFF ] */ end + +.layer LAYER_4E66 +/* 0x4E66 [0xC2 0x02 ] */ transpose 2 +.layer LAYER_4E68 +/* 0x4E68 [0xC6 0x28 ] */ instr SF1_INST_40 +/* 0x4E6A [0xC7 0x85 0x22 0xFF ] */ portamento 0x85, PITCH_G3, 255 +/* 0x4E6E [0x6C 0x14 0x64 ] */ notedv PITCH_F4, 20, 100 +/* 0x4E71 [0x5A 0x7F 0x64 ] */ notedv PITCH_B2, 127, 100 +/* 0x4E74 [0xFF ] */ end + +.layer LAYER_4E75 +/* 0x4E75 [0xC2 0xFE ] */ transpose -2 +.layer LAYER_4E77 +/* 0x4E77 [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x4E79 [0xC4 ] */ legato +/* 0x4E7A [0xC7 0x85 0x27 0x40 ] */ portamento 0x85, PITCH_C4, 64 +/* 0x4E7E [0x6C 0x12 0x64 ] */ notedv PITCH_F4, 18, 100 +/* 0x4E81 [0x64 0x80 0xA8 0x64 ] */ notedv PITCH_A3, 168, 100 +/* 0x4E85 [0xFF ] */ end + +.channel CHAN_4E86 +/* 0x4E86 [0x88 0x4E 0x66 ] */ ldlayer 0, LAYER_4E66 +/* 0x4E89 [0x89 0x4E 0x68 ] */ ldlayer 1, LAYER_4E68 +/* 0x4E8C [0xFF ] */ end + +.channel CHAN_4E8D +/* 0x4E8D [0x88 0x4E 0x94 ] */ ldlayer 0, LAYER_4E94 +/* 0x4E90 [0x89 0x4E 0x9E ] */ ldlayer 1, LAYER_4E9E +/* 0x4E93 [0xFF ] */ end + +.layer LAYER_4E94 +/* 0x4E94 [0xC6 0x18 ] */ instr SF1_INST_24 +/* 0x4E96 [0xC7 0x81 0x23 0x32 ] */ portamento 0x81, PITCH_AF3, 50 +/* 0x4E9A [0x57 0x30 0x64 ] */ notedv PITCH_AF2, 48, 100 +/* 0x4E9D [0xFF ] */ end + +.layer LAYER_4E9E +/* 0x4E9E [0xC6 0x1E ] */ instr SF1_INST_30 +/* 0x4EA0 [0xC7 0x81 0x27 0x32 ] */ portamento 0x81, PITCH_C4, 50 +/* 0x4EA4 [0x5C 0x40 0x64 ] */ notedv PITCH_DF3, 64, 100 +/* 0x4EA7 [0xFF ] */ end + +.channel CHAN_4EA8 +/* 0x4EA8 [0xC1 0x22 ] */ instr SF1_INST_34 +/* 0x4EAA [0x88 0x4E 0xB7 ] */ ldlayer 0, LAYER_4EB7 +/* 0x4EAD [0x89 0x4E 0xB5 ] */ ldlayer 1, LAYER_4EB5 +/* 0x4EB0 [0xD7 0xC4 ] */ vibfreq 196 +/* 0x4EB2 [0xD8 0x30 ] */ vibdepth 48 +/* 0x4EB4 [0xFF ] */ end + +.layer LAYER_4EB5 +/* 0x4EB5 [0xC2 0x08 ] */ transpose 8 +.layer LAYER_4EB7 +/* 0x4EB7 [0x64 0x81 0xA2 0x64 ] */ notedv PITCH_A3, 418, 100 +/* 0x4EBB [0xFF ] */ end + +.channel CHAN_4EBC +/* 0x4EBC [0xC1 0x1C ] */ instr SF1_INST_28 +/* 0x4EBE [0x88 0x4E 0xC6 ] */ ldlayer 0, LAYER_4EC6 +/* 0x4EC1 [0xD7 0x80 ] */ vibfreq 128 +/* 0x4EC3 [0xD8 0xA0 ] */ vibdepth 160 +/* 0x4EC5 [0xFF ] */ end + +.layer LAYER_4EC6 +/* 0x4EC6 [0xC7 0x81 0x16 0xFF ] */ portamento 0x81, PITCH_G2, 255 +/* 0x4ECA [0x50 0x7F 0x64 ] */ notedv PITCH_DF2, 127, 100 +/* 0x4ECD [0xFF ] */ end + +.channel CHAN_4ECE +/* 0x4ECE [0xC1 0x1C ] */ instr SF1_INST_28 +/* 0x4ED0 [0x88 0x4E 0xD8 ] */ ldlayer 0, LAYER_4ED8 +/* 0x4ED3 [0xD7 0x80 ] */ vibfreq 128 +/* 0x4ED5 [0xD8 0xA0 ] */ vibdepth 160 +/* 0x4ED7 [0xFF ] */ end + +.layer LAYER_4ED8 +/* 0x4ED8 [0xC7 0x81 0x10 0xFF ] */ portamento 0x81, PITCH_DF2, 255 +/* 0x4EDC [0x56 0x7F 0x64 ] */ notedv PITCH_G2, 127, 100 +/* 0x4EDF [0xFF ] */ end + +.channel CHAN_4EE0 +/* 0x4EE0 [0x88 0x4E 0xF4 ] */ ldlayer 0, LAYER_4EF4 +/* 0x4EE3 [0x89 0x4E 0xEA ] */ ldlayer 1, LAYER_4EEA +/* 0x4EE6 [0x8A 0x4E 0xF9 ] */ ldlayer 2, LAYER_4EF9 +/* 0x4EE9 [0xFF ] */ end + +.layer LAYER_4EEA +/* 0x4EEA [0xC6 0x00 ] */ instr SF1_INST_0 +/* 0x4EEC [0xC7 0x81 0x36 0x64 ] */ portamento 0x81, PITCH_EF5, 100 +/* 0x4EF0 [0x7E 0x60 0x64 ] */ notedv PITCH_B5, 96, 100 +/* 0x4EF3 [0xFF ] */ end + +.layer LAYER_4EF4 +/* 0x4EF4 [0xC0 0x02 ] */ ldelay 2 +/* 0x4EF6 [0xF4 0xF2 ] */ rjump LAYER_4EEA + +/* 0x4EF8 [0xFF ] */ end + +.layer LAYER_4EF9 +/* 0x4EF9 [0xC6 0x27 ] */ instr SF1_INST_39 +/* 0x4EFB [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x4EFF [0x60 0x14 0x64 ] */ notedv PITCH_F3, 20, 100 +/* 0x4F02 [0xFF ] */ end + +.channel CHAN_4F03 +/* 0x4F03 [0xC1 0x2C ] */ instr SF1_INST_44 +/* 0x4F05 [0x88 0x4F 0x0C ] */ ldlayer 0, LAYER_4F0C +/* 0x4F08 [0xDA 0x69 0x2C ] */ env ENVELOPE_692C +/* 0x4F0B [0xFF ] */ end + +.layer LAYER_4F0C +/* 0x4F0C [0xC7 0x85 0x27 0x64 ] */ portamento 0x85, PITCH_C4, 100 +/* 0x4F10 [0x64 0x16 0x64 ] */ notedv PITCH_A3, 22, 100 +/* 0x4F13 [0x72 0x16 0x64 ] */ notedv PITCH_B4, 22, 100 +/* 0x4F16 [0xFF ] */ end + +.channel CHAN_4F17 +/* 0x4F17 [0xC1 0x26 ] */ instr SF1_INST_38 +/* 0x4F19 [0x88 0x4F 0x20 ] */ ldlayer 0, LAYER_4F20 +/* 0x4F1C [0xDA 0x68 0xCC ] */ env ENVELOPE_68CC +/* 0x4F1F [0xFF ] */ end + +.layer LAYER_4F20 +/* 0x4F20 [0xC7 0x81 0x1B 0x64 ] */ portamento 0x81, PITCH_C3, 100 +/* 0x4F24 [0x60 0x34 0x64 ] */ notedv PITCH_F3, 52, 100 +/* 0x4F27 [0xFF ] */ end + +.channel CHAN_4F28 +/* 0x4F28 [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x4F2A [0x88 0x4F 0x32 ] */ ldlayer 0, LAYER_4F32 +/* 0x4F2D [0xD7 0x50 ] */ vibfreq 80 +/* 0x4F2F [0xD8 0x60 ] */ vibdepth 96 +/* 0x4F31 [0xFF ] */ end + +.layer LAYER_4F32 +/* 0x4F32 [0xCB 0x6A 0x2C 0xE6 ] */ env ENVELOPE_6A2C, 230 +LAYER_4F36: +/* 0x4F36 [0x53 0x80 0xD0 0x50 ] */ notedv PITCH_E2, 208, 80 +/* 0x4F3A [0xF4 0xFA ] */ rjump LAYER_4F36 + +.channel CHAN_4F3C +/* 0x4F3C [0x88 0x4F 0x44 ] */ ldlayer 0, LAYER_4F44 +/* 0x4F3F [0xD7 0xF0 ] */ vibfreq 240 +/* 0x4F41 [0xD8 0xA0 ] */ vibdepth 160 +/* 0x4F43 [0xFF ] */ end + +.layer LAYER_4F44 +/* 0x4F44 [0xC6 0x17 ] */ instr SF1_INST_23 +/* 0x4F46 [0xC7 0x81 0x34 0xFF ] */ portamento 0x81, PITCH_DF5, 255 +/* 0x4F4A [0x79 0x40 0x64 ] */ notedv PITCH_GF5, 64, 100 +/* 0x4F4D [0xFF ] */ end + +.channel CHAN_4F4E +/* 0x4F4E [0x88 0x4F 0x55 ] */ ldlayer 0, LAYER_4F55 +/* 0x4F51 [0x89 0x4F 0x57 ] */ ldlayer 1, LAYER_4F57 +/* 0x4F54 [0xFF ] */ end + +.layer LAYER_4F55 +/* 0x4F55 [0xC0 0x06 ] */ ldelay 6 +.layer LAYER_4F57 +/* 0x4F57 [0xC6 0x17 ] */ instr SF1_INST_23 +/* 0x4F59 [0x79 0x64 0x64 ] */ notedv PITCH_GF5, 100, 100 +/* 0x4F5C [0xFF ] */ end + +.channel CHAN_4F5D +/* 0x4F5D [0xC1 0x30 ] */ instr SF1_INST_48 +/* 0x4F5F [0x88 0x4F 0x6A ] */ ldlayer 0, LAYER_4F6A +/* 0x4F62 [0x89 0x4F 0x68 ] */ ldlayer 1, LAYER_4F68 +/* 0x4F65 [0xED 0x18 ] */ gain 24 +/* 0x4F67 [0xFF ] */ end + +.layer LAYER_4F68 +/* 0x4F68 [0xC2 0x02 ] */ transpose 2 +.layer LAYER_4F6A +/* 0x4F6A [0x67 0x40 0x64 ] */ notedv PITCH_C4, 64, 100 +/* 0x4F6D [0xFF ] */ end + +.channel CHAN_4F6E +/* 0x4F6E [0xC1 0x30 ] */ instr SF1_INST_48 +/* 0x4F70 [0x88 0x4F 0x7B ] */ ldlayer 0, LAYER_4F7B +/* 0x4F73 [0x89 0x4F 0x79 ] */ ldlayer 1, LAYER_4F79 +/* 0x4F76 [0xED 0x18 ] */ gain 24 +/* 0x4F78 [0xFF ] */ end + +.layer LAYER_4F79 +/* 0x4F79 [0xC2 0x02 ] */ transpose 2 +.layer LAYER_4F7B +/* 0x4F7B [0x6C 0x40 0x64 ] */ notedv PITCH_F4, 64, 100 +/* 0x4F7E [0xFF ] */ end + +.channel CHAN_4F7F +/* 0x4F7F [0xC1 0x0A ] */ instr SF1_INST_10 +/* 0x4F81 [0x88 0x4F 0x8A ] */ ldlayer 0, LAYER_4F8A +/* 0x4F84 [0x89 0x4F 0x88 ] */ ldlayer 1, LAYER_4F88 +/* 0x4F87 [0xFF ] */ end + +.layer LAYER_4F88 +/* 0x4F88 [0xC2 0x02 ] */ transpose 2 +.layer LAYER_4F8A +/* 0x4F8A [0xC7 0x81 0x17 0xC8 ] */ portamento 0x81, PITCH_AF2, 200 +/* 0x4F8E [0x5A 0x2C 0x64 ] */ notedv PITCH_B2, 44, 100 +/* 0x4F91 [0xFF ] */ end + +.channel CHAN_4F92 +/* 0x4F92 [0xC1 0x21 ] */ instr SF1_INST_33 +/* 0x4F94 [0x88 0x4F 0x98 ] */ ldlayer 0, LAYER_4F98 +/* 0x4F97 [0xFF ] */ end + +.layer LAYER_4F98 +/* 0x4F98 [0x77 0x06 0x64 ] */ notedv PITCH_E5, 6, 100 +/* 0x4F9B [0x79 0x06 0x64 ] */ notedv PITCH_GF5, 6, 100 +/* 0x4F9E [0x7B 0x06 0x64 ] */ notedv PITCH_AF5, 6, 100 +/* 0x4FA1 [0x7C 0x06 0x64 ] */ notedv PITCH_A5, 6, 100 +/* 0x4FA4 [0x7B 0x06 0x64 ] */ notedv PITCH_AF5, 6, 100 +/* 0x4FA7 [0x79 0x06 0x64 ] */ notedv PITCH_GF5, 6, 100 +/* 0x4FAA [0x77 0x06 0x64 ] */ notedv PITCH_E5, 6, 100 +/* 0x4FAD [0xF4 0xE9 ] */ rjump LAYER_4F98 + +.channel CHAN_4FAF +/* 0x4FAF [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x4FB1 [0x88 0x36 0x1B ] */ ldlayer 0, LAYER_361B +/* 0x4FB4 [0xFF ] */ end + +.channel CHAN_4FB5 +/* 0x4FB5 [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x4FB7 [0x88 0x4F 0xBB ] */ ldlayer 0, LAYER_4FBB +/* 0x4FBA [0xFF ] */ end + +.layer LAYER_4FBB +/* 0x4FBB [0xC7 0x81 0x0F 0x68 ] */ portamento 0x81, PITCH_C2, 104 +/* 0x4FBF [0x66 0x40 0x64 ] */ notedv PITCH_B3, 64, 100 +/* 0x4FC2 [0xFF ] */ end + +.channel CHAN_4FC3 +/* 0x4FC3 [0x88 0x4F 0xDE ] */ ldlayer 0, LAYER_4FDE +/* 0x4FC6 [0x89 0x4F 0xD1 ] */ ldlayer 1, LAYER_4FD1 +/* 0x4FC9 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x4FCC [0xD7 0x70 ] */ vibfreq 112 +/* 0x4FCE [0xD8 0xA0 ] */ vibdepth 160 +/* 0x4FD0 [0xFF ] */ end + +.layer LAYER_4FD1 +/* 0x4FD1 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x4FD3 [0xC7 0x85 0x28 0xFF ] */ portamento 0x85, PITCH_DF4, 255 +/* 0x4FD7 [0x6F 0x20 0x50 ] */ notedv PITCH_AF4, 32, 80 +/* 0x4FDA [0x62 0x40 0x50 ] */ notedv PITCH_G3, 64, 80 +/* 0x4FDD [0xFF ] */ end + +.layer LAYER_4FDE +/* 0x4FDE [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x4FE0 [0xC7 0x81 0x29 0x64 ] */ portamento 0x81, PITCH_D4, 100 +/* 0x4FE4 [0x5E 0x60 0x64 ] */ notedv PITCH_EF3, 96, 100 +/* 0x4FE7 [0xFF ] */ end + +.channel CHAN_4FE8 +/* 0x4FE8 [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x4FEA [0x88 0x4F 0xF2 ] */ ldlayer 0, LAYER_4FF2 +/* 0x4FED [0xD7 0x60 ] */ vibfreq 96 +/* 0x4FEF [0xD8 0x80 ] */ vibdepth 128 +/* 0x4FF1 [0xFF ] */ end + +.layer LAYER_4FF2 +/* 0x4FF2 [0xCB 0x6A 0x2C 0xE6 ] */ env ENVELOPE_6A2C, 230 +LAYER_4FF6: +/* 0x4FF6 [0x49 0x70 0x64 ] */ notedv PITCH_GF1, 112, 100 +/* 0x4FF9 [0xF4 0xFB ] */ rjump LAYER_4FF6 + +.channel CHAN_4FFB +/* 0x4FFB [0x88 0x50 0x08 ] */ ldlayer 0, LAYER_5008 +/* 0x4FFE [0x89 0x50 0x06 ] */ ldlayer 1, LAYER_5006 +/* 0x5001 [0xD7 0x10 ] */ vibfreq 16 +/* 0x5003 [0xD8 0x80 ] */ vibdepth 128 +/* 0x5005 [0xFF ] */ end + +.layer LAYER_5006 +/* 0x5006 [0xC2 0x02 ] */ transpose 2 +.layer LAYER_5008 +/* 0x5008 [0xC6 0x01 ] */ instr SF1_INST_1 +/* 0x500A [0xCB 0x6A 0x2C 0xE6 ] */ env ENVELOPE_6A2C, 230 +LAYER_500E: +/* 0x500E [0x43 0x70 0x64 ] */ notedv PITCH_C1, 112, 100 +/* 0x5011 [0xF4 0xFB ] */ rjump LAYER_500E + +.channel CHAN_5013 +/* 0x5013 [0xC1 0x26 ] */ instr SF1_INST_38 +/* 0x5015 [0x88 0x50 0x19 ] */ ldlayer 0, LAYER_5019 +/* 0x5018 [0xFF ] */ end + +.layer LAYER_5019 +/* 0x5019 [0xC7 0x81 0x23 0x64 ] */ portamento 0x81, PITCH_AF3, 100 +/* 0x501D [0x74 0x38 0x50 ] */ notedv PITCH_DF5, 56, 80 +/* 0x5020 [0xFF ] */ end + +.channel CHAN_5021 +/* 0x5021 [0xC1 0x26 ] */ instr SF1_INST_38 +/* 0x5023 [0x88 0x50 0x27 ] */ ldlayer 0, LAYER_5027 +/* 0x5026 [0xFF ] */ end + +.layer LAYER_5027 +/* 0x5027 [0xC7 0x81 0x31 0x64 ] */ portamento 0x81, PITCH_BF4, 100 +/* 0x502B [0x6A 0x38 0x50 ] */ notedv PITCH_EF4, 56, 80 +/* 0x502E [0xFF ] */ end + +.channel CHAN_502F +/* 0x502F [0xC1 0x27 ] */ instr SF1_INST_39 +/* 0x5031 [0x88 0x50 0x35 ] */ ldlayer 0, LAYER_5035 +/* 0x5034 [0xFF ] */ end + +.layer LAYER_5035 +/* 0x5035 [0xC7 0x81 0x10 0x64 ] */ portamento 0x81, PITCH_DF2, 100 +/* 0x5039 [0x53 0x30 0x44 ] */ notedv PITCH_E2, 48, 68 +/* 0x503C [0xFF ] */ end + +.channel CHAN_503D +/* 0x503D [0xC1 0x13 ] */ instr SF1_INST_19 +/* 0x503F [0x88 0x50 0x47 ] */ ldlayer 0, LAYER_5047 +/* 0x5042 [0xD7 0x70 ] */ vibfreq 112 +/* 0x5044 [0xD8 0xF0 ] */ vibdepth 240 +/* 0x5046 [0xFF ] */ end + +.layer LAYER_5047 +/* 0x5047 [0xC2 0xED ] */ transpose -19 +/* 0x5049 [0xC4 ] */ legato +/* 0x504A [0xC7 0x85 0x00 0xFF ] */ portamento 0x85, PITCH_A0, 255 +/* 0x504E [0x58 0x20 0x64 ] */ notedv PITCH_A2, 32, 100 +/* 0x5051 [0x40 0x20 0x64 ] */ notedv PITCH_A0, 32, 100 +/* 0x5054 [0xFF ] */ end + +.channel CHAN_5055 +/* 0x5055 [0x88 0x50 0x5C ] */ ldlayer 0, LAYER_505C +/* 0x5058 [0x89 0x50 0x5E ] */ ldlayer 1, LAYER_505E +/* 0x505B [0xFF ] */ end + +.layer LAYER_505C +/* 0x505C [0xC2 0xFA ] */ transpose -6 +.layer LAYER_505E +/* 0x505E [0xC6 0x00 ] */ instr SF1_INST_0 +/* 0x5060 [0x75 0x30 0x64 ] */ notedv PITCH_D5, 48, 100 +/* 0x5063 [0xFF ] */ end + +.channel CHAN_5064 +/* 0x5064 [0xC1 0x22 ] */ instr SF1_INST_34 +/* 0x5066 [0x88 0x50 0x6E ] */ ldlayer 0, LAYER_506E +/* 0x5069 [0xD7 0x80 ] */ vibfreq 128 +/* 0x506B [0xD8 0xE0 ] */ vibdepth 224 +/* 0x506D [0xFF ] */ end + +.layer LAYER_506E +/* 0x506E [0x60 0x35 0x64 ] */ notedv PITCH_F3, 53, 100 +/* 0x5071 [0xFF ] */ end + +.channel CHAN_5072 +/* 0x5072 [0xC1 0x01 ] */ instr SF1_INST_1 +/* 0x5074 [0x88 0x50 0x83 ] */ ldlayer 0, LAYER_5083 +/* 0x5077 [0x89 0x50 0x81 ] */ ldlayer 1, LAYER_5081 +/* 0x507A [0xD9 0xDC ] */ releaserate 220 +/* 0x507C [0xD7 0x70 ] */ vibfreq 112 +/* 0x507E [0xD8 0x60 ] */ vibdepth 96 +/* 0x5080 [0xFF ] */ end + +.layer LAYER_5081 +/* 0x5081 [0xC2 0x06 ] */ transpose 6 +.layer LAYER_5083 +/* 0x5083 [0x53 0x80 0x90 0x64 ] */ notedv PITCH_E2, 144, 100 +/* 0x5087 [0xF4 0xFA ] */ rjump LAYER_5083 + +.channel CHAN_5089 +/* 0x5089 [0x88 0x50 0x95 ] */ ldlayer 0, LAYER_5095 +/* 0x508C [0x89 0x50 0x93 ] */ ldlayer 1, LAYER_5093 +/* 0x508F [0x8A 0x50 0xA3 ] */ ldlayer 2, LAYER_50A3 +/* 0x5092 [0xFF ] */ end + +.layer LAYER_5093 +/* 0x5093 [0xC2 0x02 ] */ transpose 2 +.layer LAYER_5095 +/* 0x5095 [0xC6 0x06 ] */ instr SF1_INST_6 +/* 0x5097 [0xCB 0x69 0x6C 0xFA ] */ env ENVELOPE_696C, 250 +/* 0x509B [0xC7 0x81 0x13 0x32 ] */ portamento 0x81, PITCH_E2, 50 +/* 0x509F [0x47 0x20 0x64 ] */ notedv PITCH_E1, 32, 100 +/* 0x50A2 [0xFF ] */ end + +.layer LAYER_50A3 +/* 0x50A3 [0xC6 0x05 ] */ instr SF1_INST_5 +/* 0x50A5 [0xCB 0x69 0x6C 0xFA ] */ env ENVELOPE_696C, 250 +/* 0x50A9 [0xC7 0x81 0x0F 0x32 ] */ portamento 0x81, PITCH_C2, 50 +/* 0x50AD [0x4C 0x20 0x64 ] */ notedv PITCH_A1, 32, 100 +/* 0x50B0 [0xFF ] */ end + +.channel CHAN_50B1 +/* 0x50B1 [0xC1 0x0A ] */ instr SF1_INST_10 +/* 0x50B3 [0x88 0x50 0xB7 ] */ ldlayer 0, LAYER_50B7 +/* 0x50B6 [0xFF ] */ end + +.layer LAYER_50B7 +/* 0x50B7 [0xC7 0x85 0x15 0xC8 ] */ portamento 0x85, PITCH_GF2, 200 +/* 0x50BB [0x5D 0x13 0x64 ] */ notedv PITCH_D3, 19, 100 +/* 0x50BE [0x55 0x13 0x64 ] */ notedv PITCH_GF2, 19, 100 +/* 0x50C1 [0xFF ] */ end + +.channel CHAN_50C2 +/* 0x50C2 [0x88 0x50 0xD3 ] */ ldlayer 0, LAYER_50D3 +/* 0x50C5 [0x89 0x45 0x24 ] */ ldlayer 1, LAYER_4524 +/* 0x50C8 [0x8A 0x45 0x32 ] */ ldlayer 2, LAYER_4532 +/* 0x50CB [0x8B 0x48 0x29 ] */ ldlayer 3, LAYER_4829 +/* 0x50CE [0xD7 0x30 ] */ vibfreq 48 +/* 0x50D0 [0xD8 0x30 ] */ vibdepth 48 +/* 0x50D2 [0xFF ] */ end + +.layer LAYER_50D3 +/* 0x50D3 [0xC6 0x10 ] */ instr SF1_INST_16 +/* 0x50D5 [0xC4 ] */ legato +/* 0x50D6 [0xC7 0x85 0x04 0x3C ] */ portamento 0x85, PITCH_DF1, 60 +/* 0x50DA [0x51 0x32 0x64 ] */ notedv PITCH_D2, 50, 100 +/* 0x50DD [0x4B 0x7F 0x64 ] */ notedv PITCH_AF1, 127, 100 +/* 0x50E0 [0xFF ] */ end + +.channel CHAN_50E1 +/* 0x50E1 [0x88 0x50 0xD3 ] */ ldlayer 0, LAYER_50D3 +/* 0x50E4 [0xD7 0x30 ] */ vibfreq 48 +/* 0x50E6 [0xD8 0x30 ] */ vibdepth 48 +/* 0x50E8 [0xFF ] */ end + +.channel CHAN_50E9 +/* 0x50E9 [0xC1 0x08 ] */ instr SF1_INST_8 +/* 0x50EB [0x88 0x50 0xF8 ] */ ldlayer 0, LAYER_50F8 +/* 0x50EE [0x89 0x50 0xF6 ] */ ldlayer 1, LAYER_50F6 +/* 0x50F1 [0xD7 0x60 ] */ vibfreq 96 +/* 0x50F3 [0xD8 0x50 ] */ vibdepth 80 +/* 0x50F5 [0xFF ] */ end + +.layer LAYER_50F6 +/* 0x50F6 [0xC2 0x06 ] */ transpose 6 +.layer LAYER_50F8 +/* 0x50F8 [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x50FC [0x4F 0x81 0x18 0x64 ] */ notedv PITCH_C2, 280, 100 +/* 0x5100 [0xFF ] */ end + +.channel CHAN_5101 +/* 0x5101 [0xC1 0x85 ] */ instr FONTANY_INSTR_BELL +/* 0x5103 [0x88 0x51 0x0B ] */ ldlayer 0, LAYER_510B +/* 0x5106 [0xD7 0x80 ] */ vibfreq 128 +/* 0x5108 [0xD8 0x74 ] */ vibdepth 116 +/* 0x510A [0xFF ] */ end + +.layer LAYER_510B +/* 0x510B [0x6C 0xF5 0x30 0x40 ] */ notedv PITCH_F4, 30000, 64 +/* 0x510F [0xF4 0xFA ] */ rjump LAYER_510B + +.channel CHAN_5111 +/* 0x5111 [0xC1 0x18 ] */ instr SF1_INST_24 +/* 0x5113 [0x88 0x51 0x1B ] */ ldlayer 0, LAYER_511B +/* 0x5116 [0xD7 0xD0 ] */ vibfreq 208 +/* 0x5118 [0xD8 0x60 ] */ vibdepth 96 +/* 0x511A [0xFF ] */ end + +.layer LAYER_511B +/* 0x511B [0x48 0xF5 0x30 0x40 ] */ notedv PITCH_F1, 30000, 64 +/* 0x511F [0xF4 0xFA ] */ rjump LAYER_511B + +.channel CHAN_5121 +/* 0x5121 [0xC1 0x13 ] */ instr SF1_INST_19 +/* 0x5123 [0x88 0x51 0x27 ] */ ldlayer 0, LAYER_5127 +/* 0x5126 [0xFF ] */ end + +.layer LAYER_5127 +/* 0x5127 [0x44 0xF5 0x30 0x64 ] */ notedv PITCH_DF1, 30000, 100 +/* 0x512B [0xF4 0xFA ] */ rjump LAYER_5127 + +.channel CHAN_512D +/* 0x512D [0x88 0x45 0xDF ] */ ldlayer 0, LAYER_45DF +/* 0x5130 [0xD7 0xA0 ] */ vibfreq 160 +/* 0x5132 [0xD8 0xA0 ] */ vibdepth 160 +/* 0x5134 [0xFF ] */ end + +.channel CHAN_5135 +/* 0x5135 [0xC1 0x2C ] */ instr SF1_INST_44 +/* 0x5137 [0x88 0x51 0x42 ] */ ldlayer 0, LAYER_5142 +/* 0x513A [0x89 0x51 0x44 ] */ ldlayer 1, LAYER_5144 +/* 0x513D [0xD7 0xB0 ] */ vibfreq 176 +/* 0x513F [0xD8 0xA0 ] */ vibdepth 160 +/* 0x5141 [0xFF ] */ end + +.layer LAYER_5142 +/* 0x5142 [0xC2 0xFB ] */ transpose -5 +.layer LAYER_5144 +/* 0x5144 [0xC7 0x85 0x27 0x64 ] */ portamento 0x85, PITCH_C4, 100 +/* 0x5148 [0x5F 0x10 0x64 ] */ notedv PITCH_E3, 16, 100 +/* 0x514B [0x74 0x13 0x64 ] */ notedv PITCH_DF5, 19, 100 +/* 0x514E [0xFF ] */ end + +.channel CHAN_514F +/* 0x514F [0x88 0x51 0x60 ] */ ldlayer 0, LAYER_5160 +/* 0x5152 [0x89 0x51 0x56 ] */ ldlayer 1, LAYER_5156 +/* 0x5155 [0xFF ] */ end + +.layer LAYER_5156 +/* 0x5156 [0xC6 0x05 ] */ instr SF1_INST_5 +/* 0x5158 [0xC7 0x81 0x08 0xFF ] */ portamento 0x81, PITCH_F1, 255 +/* 0x515C [0x4F 0x40 0x64 ] */ notedv PITCH_C2, 64, 100 +/* 0x515F [0xFF ] */ end + +.layer LAYER_5160 +/* 0x5160 [0xC0 0x08 ] */ ldelay 8 +/* 0x5162 [0xF4 0xF2 ] */ rjump LAYER_5156 + +.channel CHAN_5164 +/* 0x5164 [0x88 0x51 0x6C ] */ ldlayer 0, LAYER_516C +/* 0x5167 [0xD7 0x40 ] */ vibfreq 64 +/* 0x5169 [0xD8 0x60 ] */ vibdepth 96 +/* 0x516B [0xFF ] */ end + +.layer LAYER_516C +/* 0x516C [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x516E [0xC4 ] */ legato +/* 0x516F [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +/* 0x5173 [0x69 0x08 0x64 ] */ notedv PITCH_D4, 8, 100 +/* 0x5176 [0x64 0x20 0x64 ] */ notedv PITCH_A3, 32, 100 +/* 0x5179 [0xFF ] */ end + +.channel CHAN_517A +/* 0x517A [0x88 0x51 0x88 ] */ ldlayer 0, LAYER_5188 +/* 0x517D [0x89 0x41 0x8B ] */ ldlayer 1, LAYER_418B +/* 0x5180 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x5183 [0xD7 0x40 ] */ vibfreq 64 +/* 0x5185 [0xD8 0xC0 ] */ vibdepth 192 +/* 0x5187 [0xFF ] */ end + +.layer LAYER_5188 +/* 0x5188 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x518A [0xC4 ] */ legato +/* 0x518B [0xC7 0x85 0x19 0xFF ] */ portamento 0x85, PITCH_BF2, 255 +/* 0x518F [0x61 0x14 0x50 ] */ notedv PITCH_GF3, 20, 80 +/* 0x5192 [0x55 0x60 0x50 ] */ notedv PITCH_GF2, 96, 80 +/* 0x5195 [0xFF ] */ end + +.channel CHAN_5196 +/* 0x5196 [0xC1 0x21 ] */ instr SF1_INST_33 +/* 0x5198 [0x88 0x51 0x9C ] */ ldlayer 0, LAYER_519C +/* 0x519B [0xFF ] */ end + +.layer LAYER_519C +/* 0x519C [0xF8 0x06 ] */ loop 6 +/* 0x519E [0x73 0x09 0x64 ] */ notedv PITCH_C5, 9, 100 +/* 0x51A1 [0x75 0x09 0x64 ] */ notedv PITCH_D5, 9, 100 +/* 0x51A4 [0x77 0x09 0x64 ] */ notedv PITCH_E5, 9, 100 +/* 0x51A7 [0xF7 ] */ loopend +.layer LAYER_51A8 +/* 0x51A8 [0xCB 0x69 0x7C 0xFF ] */ env ENVELOPE_697C, 255 +LAYER_51AC: +/* 0x51AC [0x79 0x06 0x64 ] */ notedv PITCH_GF5, 6, 100 +/* 0x51AF [0x7B 0x06 0x64 ] */ notedv PITCH_AF5, 6, 100 +/* 0x51B2 [0x7D 0x06 0x64 ] */ notedv PITCH_BF5, 6, 100 +/* 0x51B5 [0x7B 0x06 0x64 ] */ notedv PITCH_AF5, 6, 100 +/* 0x51B8 [0xF4 0xF2 ] */ rjump LAYER_51AC + +.channel CHAN_51BA +/* 0x51BA [0xC1 0x02 ] */ instr SF1_INST_2 +/* 0x51BC [0x88 0x51 0xC0 ] */ ldlayer 0, LAYER_51C0 +/* 0x51BF [0xFF ] */ end + +.layer LAYER_51C0 +/* 0x51C0 [0x58 0x30 0x64 ] */ notedv PITCH_A2, 48, 100 +/* 0x51C3 [0xFF ] */ end + +.channel CHAN_51C4 +/* 0x51C4 [0x88 0x51 0xCB ] */ ldlayer 0, LAYER_51CB +/* 0x51C7 [0x89 0x51 0xD9 ] */ ldlayer 1, LAYER_51D9 +/* 0x51CA [0xFF ] */ end + +.layer LAYER_51CB +/* 0x51CB [0xC6 0x12 ] */ instr SF1_INST_18 +LAYER_51CD: +/* 0x51CD [0xC2 0x0C ] */ transpose 12 +/* 0x51CF [0xCB 0x6A 0x7C 0xE0 ] */ env ENVELOPE_6A7C, 224 +LAYER_51D3: +/* 0x51D3 [0x73 0xF5 0x30 0x64 ] */ notedv PITCH_C5, 30000, 100 +/* 0x51D7 [0xF4 0xFA ] */ rjump LAYER_51D3 + +.layer LAYER_51D9 +/* 0x51D9 [0xC6 0x1F ] */ instr SF1_INST_31 +/* 0x51DB [0xF4 0xF0 ] */ rjump LAYER_51CD + +.channel CHAN_51DD +/* 0x51DD [0xC1 0x06 ] */ instr SF1_INST_6 +/* 0x51DF [0x88 0x51 0xE3 ] */ ldlayer 0, LAYER_51E3 +/* 0x51E2 [0xFF ] */ end + +.layer LAYER_51E3 +/* 0x51E3 [0xC7 0x81 0x14 0x40 ] */ portamento 0x81, PITCH_F2, 64 +/* 0x51E7 [0x4D 0x0D 0x64 ] */ notedv PITCH_BF1, 13, 100 +/* 0x51EA [0xFF ] */ end + +.channel CHAN_51EB +/* 0x51EB [0x88 0x51 0xF6 ] */ ldlayer 0, LAYER_51F6 +/* 0x51EE [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x51F1 [0xD7 0x40 ] */ vibfreq 64 +/* 0x51F3 [0xD8 0xD0 ] */ vibdepth 208 +/* 0x51F5 [0xFF ] */ end + +.layer LAYER_51F6 +/* 0x51F6 [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x51F8 [0xC4 ] */ legato +/* 0x51F9 [0xC7 0x85 0x2F 0x64 ] */ portamento 0x85, PITCH_AF4, 100 +/* 0x51FD [0x78 0x14 0x64 ] */ notedv PITCH_F5, 20, 100 +/* 0x5200 [0x6F 0x24 0x64 ] */ notedv PITCH_AF4, 36, 100 +/* 0x5203 [0xFF ] */ end + +.channel CHAN_5204 +/* 0x5204 [0x88 0x43 0x01 ] */ ldlayer 0, LAYER_4301 +/* 0x5207 [0xFF ] */ end + +.channel CHAN_5208 +/* 0x5208 [0x88 0x52 0x1B ] */ ldlayer 0, LAYER_521B +/* 0x520B [0x89 0x52 0x19 ] */ ldlayer 1, LAYER_5219 +/* 0x520E [0x8A 0x52 0x26 ] */ ldlayer 2, LAYER_5226 +/* 0x5211 [0x8B 0x52 0x28 ] */ ldlayer 3, LAYER_5228 +/* 0x5214 [0xD7 0x30 ] */ vibfreq 48 +/* 0x5216 [0xD8 0x20 ] */ vibdepth 32 +/* 0x5218 [0xFF ] */ end + +.layer LAYER_5219 +/* 0x5219 [0xC2 0x02 ] */ transpose 2 +.layer LAYER_521B +/* 0x521B [0xC6 0x02 ] */ instr SF1_INST_2 +/* 0x521D [0xC7 0x81 0x15 0xFF ] */ portamento 0x81, PITCH_GF2, 255 +/* 0x5221 [0x72 0x80 0xE0 0x64 ] */ notedv PITCH_B4, 224, 100 +/* 0x5225 [0xFF ] */ end + +.layer LAYER_5226 +/* 0x5226 [0xC2 0x01 ] */ transpose 1 +.layer LAYER_5228 +/* 0x5228 [0xC6 0x2B ] */ instr SF1_INST_43 +/* 0x522A [0x6C 0x80 0xE0 0x64 ] */ notedv PITCH_F4, 224, 100 +/* 0x522E [0xFF ] */ end + +.channel CHAN_522F +/* 0x522F [0xC1 0x13 ] */ instr SF1_INST_19 +/* 0x5231 [0x88 0x52 0x3A ] */ ldlayer 0, LAYER_523A +/* 0x5234 [0x89 0x52 0x3C ] */ ldlayer 1, LAYER_523C +/* 0x5237 [0xD9 0xE0 ] */ releaserate 224 +/* 0x5239 [0xFF ] */ end + +.layer LAYER_523A +/* 0x523A [0xC2 0xFA ] */ transpose -6 +.layer LAYER_523C +/* 0x523C [0x55 0xF5 0x30 0x64 ] */ notedv PITCH_GF2, 30000, 100 +/* 0x5240 [0xF4 0xFA ] */ rjump LAYER_523C + +.channel CHAN_5242 +/* 0x5242 [0xC1 0x21 ] */ instr SF1_INST_33 +/* 0x5244 [0x88 0x52 0x4B ] */ ldlayer 0, LAYER_524B +/* 0x5247 [0xDA 0x69 0x7C ] */ env ENVELOPE_697C +/* 0x524A [0xFF ] */ end + +.layer LAYER_524B +/* 0x524B [0x79 0x06 0x50 ] */ notedv PITCH_GF5, 6, 80 +/* 0x524E [0x7B 0x06 0x50 ] */ notedv PITCH_AF5, 6, 80 +/* 0x5251 [0x7D 0x06 0x50 ] */ notedv PITCH_BF5, 6, 80 +/* 0x5254 [0x7B 0x06 0x50 ] */ notedv PITCH_AF5, 6, 80 +/* 0x5257 [0xF4 0xF2 ] */ rjump LAYER_524B + +.channel CHAN_5259 +/* 0x5259 [0x88 0x45 0x24 ] */ ldlayer 0, LAYER_4524 +/* 0x525C [0x89 0x45 0x32 ] */ ldlayer 1, LAYER_4532 +/* 0x525F [0xD7 0x30 ] */ vibfreq 48 +/* 0x5261 [0xD8 0x30 ] */ vibdepth 48 +/* 0x5263 [0xFF ] */ end + +.channel CHAN_5264 +/* 0x5264 [0x88 0x52 0x77 ] */ ldlayer 0, LAYER_5277 +/* 0x5267 [0x89 0x52 0x75 ] */ ldlayer 1, LAYER_5275 +/* 0x526A [0x8A 0x52 0x86 ] */ ldlayer 2, LAYER_5286 +/* 0x526D [0x8B 0x48 0x29 ] */ ldlayer 3, LAYER_4829 +/* 0x5270 [0xD7 0x46 ] */ vibfreq 70 +/* 0x5272 [0xD8 0x56 ] */ vibdepth 86 +/* 0x5274 [0xFF ] */ end + +.layer LAYER_5275 +/* 0x5275 [0xC2 0x02 ] */ transpose 2 +.layer LAYER_5277 +/* 0x5277 [0xC6 0x03 ] */ instr SF1_INST_3 +LAYER_5279: +/* 0x5279 [0xC4 ] */ legato +/* 0x527A [0xC7 0x85 0x1B 0x7F ] */ portamento 0x85, PITCH_C3, 127 +/* 0x527E [0x64 0x28 0x64 ] */ notedv PITCH_A3, 40, 100 +/* 0x5281 [0x5F 0x80 0xC8 0x64 ] */ notedv PITCH_E3, 200, 100 +/* 0x5285 [0xFF ] */ end + +.layer LAYER_5286 +/* 0x5286 [0xC6 0x29 ] */ instr SF1_INST_41 +/* 0x5288 [0xC2 0x0C ] */ transpose 12 +/* 0x528A [0xF4 0xED ] */ rjump LAYER_5279 + +.channel CHAN_528C +/* 0x528C [0x88 0x52 0x9A ] */ ldlayer 0, LAYER_529A +/* 0x528F [0x89 0x52 0xA6 ] */ ldlayer 1, LAYER_52A6 +/* 0x5292 [0x8A 0x52 0xA8 ] */ ldlayer 2, LAYER_52A8 +/* 0x5295 [0xD7 0x14 ] */ vibfreq 20 +/* 0x5297 [0xD8 0x14 ] */ vibdepth 20 +/* 0x5299 [0xFF ] */ end + +.layer LAYER_529A +/* 0x529A [0xC6 0x13 ] */ instr SF1_INST_19 +LAYER_529C: +/* 0x529C [0xCB 0x6A 0x7C 0xC8 ] */ env ENVELOPE_6A7C, 200 +LAYER_52A0: +/* 0x52A0 [0x4F 0xF5 0x30 0x64 ] */ notedv PITCH_C2, 30000, 100 +/* 0x52A4 [0xF4 0xFA ] */ rjump LAYER_52A0 + +.layer LAYER_52A6 +/* 0x52A6 [0xC2 0xFF ] */ transpose -1 +.layer LAYER_52A8 +/* 0x52A8 [0xC6 0x02 ] */ instr SF1_INST_2 +/* 0x52AA [0xF4 0xF0 ] */ rjump LAYER_529C + +.channel CHAN_52AC +/* 0x52AC [0x88 0x52 0xBC ] */ ldlayer 0, LAYER_52BC +/* 0x52AF [0x89 0x52 0xC4 ] */ ldlayer 1, LAYER_52C4 +/* 0x52B2 [0x8A 0x52 0xBA ] */ ldlayer 2, LAYER_52BA +/* 0x52B5 [0xD7 0x60 ] */ vibfreq 96 +/* 0x52B7 [0xD8 0x54 ] */ vibdepth 84 +/* 0x52B9 [0xFF ] */ end + +.layer LAYER_52BA +/* 0x52BA [0xC2 0x04 ] */ transpose 4 +.layer LAYER_52BC +/* 0x52BC [0xC6 0x13 ] */ instr SF1_INST_19 +LAYER_52BE: +/* 0x52BE [0x58 0xF5 0x30 0x64 ] */ notedv PITCH_A2, 30000, 100 +/* 0x52C2 [0xF4 0xFA ] */ rjump LAYER_52BE + +.layer LAYER_52C4 +/* 0x52C4 [0xC6 0x12 ] */ instr SF1_INST_18 +LAYER_52C6: +/* 0x52C6 [0x70 0xF5 0x30 0x50 ] */ notedv PITCH_A4, 30000, 80 +/* 0x52CA [0xF4 0xFA ] */ rjump LAYER_52C6 + +.channel CHAN_52CC +/* 0x52CC [0xC1 0x30 ] */ instr SF1_INST_48 +/* 0x52CE [0x88 0x52 0xD2 ] */ ldlayer 0, LAYER_52D2 +/* 0x52D1 [0xFF ] */ end + +.layer LAYER_52D2 +/* 0x52D2 [0xC2 0x30 ] */ transpose 48 +/* 0x52D4 [0x59 0x80 0xE0 0x64 ] */ notedv PITCH_BF2, 224, 100 +/* 0x52D8 [0xFF ] */ end + +.channel CHAN_52D9 +/* 0x52D9 [0x88 0x3F 0xBA ] */ ldlayer 0, LAYER_3FBA +/* 0x52DC [0x89 0x51 0x88 ] */ ldlayer 1, LAYER_5188 +/* 0x52DF [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x52E2 [0xD7 0x40 ] */ vibfreq 64 +/* 0x52E4 [0xD8 0xC0 ] */ vibdepth 192 +/* 0x52E6 [0xFF ] */ end + +.channel CHAN_52E7 +/* 0x52E7 [0x88 0x3F 0x78 ] */ ldlayer 0, LAYER_3F78 +/* 0x52EA [0x89 0x40 0x0C ] */ ldlayer 1, LAYER_400C +/* 0x52ED [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x52F0 [0xD7 0x70 ] */ vibfreq 112 +/* 0x52F2 [0xD8 0x30 ] */ vibdepth 48 +/* 0x52F4 [0xFF ] */ end + +.channel CHAN_52F5 +/* 0x52F5 [0x88 0x40 0x81 ] */ ldlayer 0, LAYER_4081 +/* 0x52F8 [0x89 0x52 0xFC ] */ ldlayer 1, LAYER_52FC +/* 0x52FB [0xFF ] */ end + +.layer LAYER_52FC +/* 0x52FC [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x52FE [0x53 0x00 0x50 ] */ notedv PITCH_E2, 0, 80 +/* 0x5301 [0xFF ] */ end + +.channel CHAN_5302 +/* 0x5302 [0x88 0x53 0x09 ] */ ldlayer 0, LAYER_5309 +/* 0x5305 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x5308 [0xFF ] */ end + +.layer LAYER_5309 +/* 0x5309 [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x530B [0x54 0x00 0x64 ] */ notedv PITCH_F2, 0, 100 +/* 0x530E [0xFF ] */ end + +.channel CHAN_530F +/* 0x530F [0x88 0x53 0x16 ] */ ldlayer 0, LAYER_5316 +/* 0x5312 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x5315 [0xFF ] */ end + +.layer LAYER_5316 +/* 0x5316 [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x5318 [0x55 0x00 0x64 ] */ notedv PITCH_GF2, 0, 100 +/* 0x531B [0xFF ] */ end + +.channel CHAN_531C +/* 0x531C [0x88 0x53 0x20 ] */ ldlayer 0, LAYER_5320 +/* 0x531F [0xFF ] */ end + +.layer LAYER_5320 +/* 0x5320 [0xC6 0x06 ] */ instr SF1_INST_6 +/* 0x5322 [0xC7 0x81 0x2C 0x40 ] */ portamento 0x81, PITCH_F4, 64 +/* 0x5326 [0x61 0x05 0x48 ] */ notedv PITCH_GF3, 5, 72 +/* 0x5329 [0xFF ] */ end + +.channel CHAN_532A +/* 0x532A [0x88 0x53 0x35 ] */ ldlayer 0, LAYER_5335 +/* 0x532D [0x89 0x53 0x3C ] */ ldlayer 1, LAYER_533C +/* 0x5330 [0xD7 0x38 ] */ vibfreq 56 +/* 0x5332 [0xD8 0x32 ] */ vibdepth 50 +/* 0x5334 [0xFF ] */ end + +.layer LAYER_5335 +/* 0x5335 [0xC6 0x02 ] */ instr SF1_INST_2 +/* 0x5337 [0x5B 0x80 0xC8 0x64 ] */ notedv PITCH_C3, 200, 100 +/* 0x533B [0xFF ] */ end + +.layer LAYER_533C +/* 0x533C [0xC6 0x23 ] */ instr SF1_INST_35 +/* 0x533E [0xC4 ] */ legato +/* 0x533F [0xC7 0x85 0x20 0xC8 ] */ portamento 0x85, PITCH_F3, 200 +/* 0x5343 [0x69 0x10 0x64 ] */ notedv PITCH_D4, 16, 100 +/* 0x5346 [0x5E 0x80 0x96 0x64 ] */ notedv PITCH_EF3, 150, 100 +/* 0x534A [0xFF ] */ end + +.channel CHAN_534B +/* 0x534B [0x88 0x53 0x4F ] */ ldlayer 0, LAYER_534F +/* 0x534E [0xFF ] */ end + +.layer LAYER_534F +/* 0x534F [0xC6 0x28 ] */ instr SF1_INST_40 +/* 0x5351 [0xC4 ] */ legato +/* 0x5352 [0xC7 0x85 0x1E 0xFF ] */ portamento 0x85, PITCH_EF3, 255 +/* 0x5356 [0x66 0x20 0x64 ] */ notedv PITCH_B3, 32, 100 +/* 0x5359 [0x53 0x50 0x64 ] */ notedv PITCH_E2, 80, 100 +/* 0x535C [0xFF ] */ end + +.channel CHAN_535D +/* 0x535D [0x88 0x53 0x65 ] */ ldlayer 0, LAYER_5365 +/* 0x5360 [0xD7 0xD0 ] */ vibfreq 208 +/* 0x5362 [0xD8 0xD0 ] */ vibdepth 208 +/* 0x5364 [0xFF ] */ end + +.layer LAYER_5365 +/* 0x5365 [0xC6 0x13 ] */ instr SF1_INST_19 +/* 0x5367 [0xC4 ] */ legato +/* 0x5368 [0xC2 0x0F ] */ transpose 15 +/* 0x536A [0xC7 0x85 0x27 0xEF ] */ portamento 0x85, PITCH_C4, 239 +/* 0x536E [0x5C 0x18 0x64 ] */ notedv PITCH_DF3, 24, 100 +/* 0x5371 [0x7E 0x38 0x64 ] */ notedv PITCH_B5, 56, 100 +/* 0x5374 [0xFF ] */ end + +.channel CHAN_5375 +/* 0x5375 [0x88 0x3A 0x9A ] */ ldlayer 0, LAYER_3A9A +/* 0x5378 [0x89 0x39 0x62 ] */ ldlayer 1, LAYER_3962 +/* 0x537B [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x537E [0xFF ] */ end + +.channel CHAN_537F +/* 0x537F [0x88 0x3A 0x47 ] */ ldlayer 0, LAYER_3A47 +/* 0x5382 [0x89 0x39 0x62 ] */ ldlayer 1, LAYER_3962 +/* 0x5385 [0x8A 0x48 0x29 ] */ ldlayer 2, LAYER_4829 +/* 0x5388 [0xFF ] */ end + +.channel CHAN_5389 +/* 0x5389 [0x88 0x53 0x8D ] */ ldlayer 0, LAYER_538D +/* 0x538C [0xFF ] */ end + +.layer LAYER_538D +/* 0x538D [0xC6 0x28 ] */ instr SF1_INST_40 +/* 0x538F [0xCB 0x68 0xB4 0xDC ] */ env ENVELOPE_68B4, 220 +/* 0x5393 [0x69 0x64 0x64 ] */ notedv PITCH_D4, 100, 100 +/* 0x5396 [0xFF ] */ end + +.channel CHAN_5397 +/* 0x5397 [0xC1 0x2B ] */ instr SF1_INST_43 +/* 0x5399 [0x88 0x53 0x9F ] */ ldlayer 0, LAYER_539F +/* 0x539C [0xED 0x10 ] */ gain 16 +/* 0x539E [0xFF ] */ end + +.layer LAYER_539F +/* 0x539F [0xC7 0x81 0x23 0xEF ] */ portamento 0x81, PITCH_AF3, 239 +/* 0x53A3 [0x57 0x80 0xE0 0x64 ] */ notedv PITCH_AF2, 224, 100 +/* 0x53A7 [0xFF ] */ end + +.channel CHAN_53A8 +/* 0x53A8 [0x88 0x53 0xB3 ] */ ldlayer 0, LAYER_53B3 +/* 0x53AB [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x53AE [0xD7 0xE0 ] */ vibfreq 224 +/* 0x53B0 [0xD8 0x60 ] */ vibdepth 96 +/* 0x53B2 [0xFF ] */ end + +.layer LAYER_53B3 +/* 0x53B3 [0xC6 0x2F ] */ instr SF1_INST_47 +/* 0x53B5 [0x58 0x40 0x64 ] */ notedv PITCH_A2, 64, 100 +/* 0x53B8 [0xFF ] */ end + +.channel CHAN_53B9 +/* 0x53B9 [0x88 0x53 0xC0 ] */ ldlayer 0, LAYER_53C0 +/* 0x53BC [0x89 0x53 0xB3 ] */ ldlayer 1, LAYER_53B3 +/* 0x53BF [0xFF ] */ end + +.layer LAYER_53C0 +/* 0x53C0 [0xC6 0x28 ] */ instr SF1_INST_40 +/* 0x53C2 [0x63 0x04 0x64 ] */ notedv PITCH_AF3, 4, 100 +/* 0x53C5 [0x65 0x04 0x64 ] */ notedv PITCH_BF3, 4, 100 +/* 0x53C8 [0x68 0x05 0x64 ] */ notedv PITCH_DF4, 5, 100 +/* 0x53CB [0x6C 0x07 0x64 ] */ notedv PITCH_F4, 7, 100 +/* 0x53CE [0x66 0x30 0x64 ] */ notedv PITCH_B3, 48, 100 +/* 0x53D1 [0xFF ] */ end + +.channel CHAN_53D2 +/* 0x53D2 [0x88 0x53 0xC0 ] */ ldlayer 0, LAYER_53C0 +/* 0x53D5 [0xFF ] */ end + +.channel CHAN_53D6 +/* 0x53D6 [0x88 0x36 0x4C ] */ ldlayer 0, LAYER_364C +/* 0x53D9 [0x89 0x53 0xB3 ] */ ldlayer 1, LAYER_53B3 +/* 0x53DC [0xFF ] */ end + +.channel CHAN_53DD +/* 0x53DD [0x88 0x42 0x20 ] */ ldlayer 0, LAYER_4220 +/* 0x53E0 [0x89 0x53 0xE4 ] */ ldlayer 1, LAYER_53E4 +/* 0x53E3 [0xFF ] */ end + +.layer LAYER_53E4 +/* 0x53E4 [0xC6 0x1D ] */ instr SF1_INST_29 +/* 0x53E6 [0x7E 0x5A 0x46 ] */ notedv PITCH_B5, 90, 70 +/* 0x53E9 [0xFF ] */ end + +.channel CHAN_53EA +/* 0x53EA [0xC1 0x21 ] */ instr SF1_INST_33 +/* 0x53EC [0x88 0x51 0xA8 ] */ ldlayer 0, LAYER_51A8 +/* 0x53EF [0xFF ] */ end + +.channel CHAN_53F0 +/* 0x53F0 [0x88 0x50 0x08 ] */ ldlayer 0, LAYER_5008 +/* 0x53F3 [0x89 0x53 0xFB ] */ ldlayer 1, LAYER_53FB +/* 0x53F6 [0xD7 0x30 ] */ vibfreq 48 +/* 0x53F8 [0xD8 0xF0 ] */ vibdepth 240 +/* 0x53FA [0xFF ] */ end + +.layer LAYER_53FB +/* 0x53FB [0xC6 0x13 ] */ instr SF1_INST_19 +LAYER_53FD: +/* 0x53FD [0x58 0xF5 0x30 0x40 ] */ notedv PITCH_A2, 30000, 64 +/* 0x5401 [0xF4 0xFA ] */ rjump LAYER_53FD + +.channel CHAN_5403 +/* 0x5403 [0xC1 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x5405 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x5406 [0xC8 0xB0 ] */ sub 176 +/* 0x5408 [0xC7 0x00 0x54 0x17 ] */ stseq (NOTEDVG_OPCODE | PITCH_A0), LAYER_5417 + STSEQ_NOTEDVG_OPCODE_PITCH +/* 0x540C [0xCB 0x54 0x1C ] */ ldseq UNK_541C +/* 0x540F [0xC7 0x00 0x54 0x19 ] */ stseq 0, LAYER_5417 + STSEQ_NOTEDVG_DELAY_LO +/* 0x5413 [0x88 0x54 0x17 ] */ ldlayer 0, LAYER_5417 +/* 0x5416 [0xFF ] */ end + +.layer LAYER_5417 +/* 0x5417 [0x00 0x00 0x64 0x00 ] */ notedvg PITCH_A0, 0, 100, 0 +/* 0x541B [0xFF ] */ end + +UNK_541C: + .byte 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 + .byte 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 + .byte 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 + +.channel CHAN_5443 +/* 0x5443 [0x88 0x42 0x20 ] */ ldlayer 0, LAYER_4220 +/* 0x5446 [0x89 0x42 0x14 ] */ ldlayer 1, LAYER_4214 +/* 0x5449 [0xFF ] */ end + +.channel CHAN_544A +/* 0x544A [0x88 0x43 0x4A ] */ ldlayer 0, LAYER_434A +/* 0x544D [0x89 0x43 0x4C ] */ ldlayer 1, LAYER_434C +/* 0x5450 [0xFF ] */ end + +.channel CHAN_5451 +/* 0x5451 [0x88 0x54 0x58 ] */ ldlayer 0, LAYER_5458 +/* 0x5454 [0x89 0x54 0x60 ] */ ldlayer 1, LAYER_5460 +/* 0x5457 [0xFF ] */ end + +.layer LAYER_5458 +/* 0x5458 [0xC6 0x05 ] */ instr SF1_INST_5 +/* 0x545A [0xC0 0x08 ] */ ldelay 8 +/* 0x545C [0x56 0x25 0x64 ] */ notedv PITCH_G2, 37, 100 +/* 0x545F [0xFF ] */ end + +.layer LAYER_5460 +/* 0x5460 [0xC6 0x15 ] */ instr SF1_INST_21 +/* 0x5462 [0x5C 0x2D 0x64 ] */ notedv PITCH_DF3, 45, 100 +/* 0x5465 [0xFF ] */ end + +.channel CHAN_5466 +/* 0x5466 [0xC1 0x2F ] */ instr SF1_INST_47 +/* 0x5468 [0x88 0x54 0x6C ] */ ldlayer 0, LAYER_546C +/* 0x546B [0xFF ] */ end + +.layer LAYER_546C +/* 0x546C [0x52 0x0A 0x32 ] */ notedv PITCH_EF2, 10, 50 +/* 0x546F [0x54 0x0A 0x32 ] */ notedv PITCH_F2, 10, 50 +/* 0x5472 [0x56 0x0A 0x32 ] */ notedv PITCH_G2, 10, 50 +/* 0x5475 [0xF4 0xF5 ] */ rjump LAYER_546C + +.channel CHAN_5477 +/* 0x5477 [0x88 0x54 0x7B ] */ ldlayer 0, LAYER_547B +/* 0x547A [0xFF ] */ end + +.layer LAYER_547B +/* 0x547B [0xC6 0x05 ] */ instr SF1_INST_5 +/* 0x547D [0x5C 0x0E 0x46 ] */ notedv PITCH_DF3, 14, 70 +/* 0x5480 [0xFF ] */ end + +.channel CHAN_5481 +/* 0x5481 [0x88 0x54 0x88 ] */ ldlayer 0, LAYER_5488 +/* 0x5484 [0x89 0x40 0x81 ] */ ldlayer 1, LAYER_4081 +/* 0x5487 [0xFF ] */ end + +.layer LAYER_5488 +/* 0x5488 [0xC6 0x2B ] */ instr SF1_INST_43 +/* 0x548A [0xC2 0x0E ] */ transpose 14 +/* 0x548C [0x73 0x30 0x64 ] */ notedv PITCH_C5, 48, 100 +/* 0x548F [0xFF ] */ end + +.channel CHAN_5490 +/* 0x5490 [0x88 0x54 0x9E ] */ ldlayer 0, LAYER_549E +/* 0x5493 [0x89 0x54 0xA0 ] */ ldlayer 1, LAYER_54A0 +/* 0x5496 [0x8A 0x54 0xAE ] */ ldlayer 2, LAYER_54AE +/* 0x5499 [0xD7 0x14 ] */ vibfreq 20 +/* 0x549B [0xD8 0x32 ] */ vibdepth 50 +/* 0x549D [0xFF ] */ end + +.layer LAYER_549E +/* 0x549E [0xC0 0x14 ] */ ldelay 20 +.layer LAYER_54A0 +/* 0x54A0 [0xC6 0x03 ] */ instr SF1_INST_3 +LAYER_54A2: +/* 0x54A2 [0xC4 ] */ legato +/* 0x54A3 [0xC7 0x85 0x1C 0xFF ] */ portamento 0x85, PITCH_DF3, 255 +/* 0x54A7 [0x54 0x30 0x64 ] */ notedv PITCH_F2, 48, 100 +/* 0x54AA [0x52 0x48 0x64 ] */ notedv PITCH_EF2, 72, 100 +/* 0x54AD [0xFF ] */ end + +.layer LAYER_54AE +/* 0x54AE [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x54B0 [0xC2 0x04 ] */ transpose 4 +/* 0x54B2 [0xF4 0xEE ] */ rjump LAYER_54A2 + +.channel CHAN_54B4 +/* 0x54B4 [0x88 0x54 0xC5 ] */ ldlayer 0, LAYER_54C5 +/* 0x54B7 [0x89 0x54 0xC7 ] */ ldlayer 1, LAYER_54C7 +/* 0x54BA [0x8A 0x54 0xE9 ] */ ldlayer 2, LAYER_54E9 +/* 0x54BD [0x8B 0x54 0xEB ] */ ldlayer 3, LAYER_54EB +/* 0x54C0 [0xD7 0x14 ] */ vibfreq 20 +/* 0x54C2 [0xD8 0x32 ] */ vibdepth 50 +/* 0x54C4 [0xFF ] */ end + +.layer LAYER_54C5 +/* 0x54C5 [0xC0 0x0A ] */ ldelay 10 +.layer LAYER_54C7 +/* 0x54C7 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x54C9 [0xF8 0x04 ] */ loop 4 +/* 0x54CB [0xC7 0x81 0x1E 0x6B ] */ portamento 0x81, PITCH_EF3, 107 +/* 0x54CF [0x6C 0x80 0x8C 0x64 ] */ notedv PITCH_F4, 140, 100 +LAYER_54D3: +/* 0x54D3 [0xC4 ] */ legato +/* 0x54D4 [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +/* 0x54D8 [0x6E 0x30 0x64 ] */ notedv PITCH_G4, 48, 100 +/* 0x54DB [0x63 0x48 0x64 ] */ notedv PITCH_AF3, 72, 100 +/* 0x54DE [0xC5 ] */ nolegato +/* 0x54DF [0xF7 ] */ loopend +/* 0x54E0 [0xC7 0x81 0x23 0xFF ] */ portamento 0x81, PITCH_AF3, 255 +/* 0x54E4 [0x59 0x80 0xFA 0x64 ] */ notedv PITCH_BF2, 250, 100 +/* 0x54E8 [0xFF ] */ end + +.layer LAYER_54E9 +/* 0x54E9 [0xC0 0x0A ] */ ldelay 10 +.layer LAYER_54EB +/* 0x54EB [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x54ED [0xF8 0x04 ] */ loop 4 +/* 0x54EF [0xC7 0x81 0x2C 0x6B ] */ portamento 0x81, PITCH_F4, 107 +/* 0x54F3 [0x70 0x80 0x8C 0x64 ] */ notedv PITCH_A4, 140, 100 +LAYER_54F7: +/* 0x54F7 [0xC4 ] */ legato +/* 0x54F8 [0xC7 0x85 0x2F 0xFF ] */ portamento 0x85, PITCH_AF4, 255 +/* 0x54FC [0x71 0x32 0x64 ] */ notedv PITCH_BF4, 50, 100 +/* 0x54FF [0x69 0x48 0x64 ] */ notedv PITCH_D4, 72, 100 +/* 0x5502 [0xC5 ] */ nolegato +/* 0x5503 [0xF7 ] */ loopend +/* 0x5504 [0xC7 0x81 0x25 0xFF ] */ portamento 0x81, PITCH_BF3, 255 +/* 0x5508 [0x5B 0x80 0xC8 0x64 ] */ notedv PITCH_C3, 200, 100 +/* 0x550C [0xFF ] */ end + +.channel CHAN_550D +/* 0x550D [0x88 0x55 0x1B ] */ ldlayer 0, LAYER_551B +/* 0x5510 [0x89 0x55 0x1D ] */ ldlayer 1, LAYER_551D +/* 0x5513 [0x8A 0x55 0x23 ] */ ldlayer 2, LAYER_5523 +/* 0x5516 [0xD7 0x14 ] */ vibfreq 20 +/* 0x5518 [0xD8 0x32 ] */ vibdepth 50 +/* 0x551A [0xFF ] */ end + +.layer LAYER_551B +/* 0x551B [0xC0 0x0D ] */ ldelay 13 +.layer LAYER_551D +/* 0x551D [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x551F [0xF8 0x01 ] */ loop 1 +/* 0x5521 [0xF4 0xB0 ] */ rjump LAYER_54D3 + +.layer LAYER_5523 +/* 0x5523 [0xC6 0x0B ] */ instr SF1_INST_11 +/* 0x5525 [0xF8 0x01 ] */ loop 1 +/* 0x5527 [0xF4 0xCE ] */ rjump LAYER_54F7 + +.channel CHAN_5529 +/* 0x5529 [0xC1 0x31 ] */ instr SF1_INST_49 +/* 0x552B [0x88 0x55 0x2F ] */ ldlayer 0, LAYER_552F +/* 0x552E [0xFF ] */ end + +.layer LAYER_552F +/* 0x552F [0xC7 0x81 0x2A 0x28 ] */ portamento 0x81, PITCH_EF4, 40 +/* 0x5533 [0x6E 0x7F 0x64 ] */ notedv PITCH_G4, 127, 100 +/* 0x5536 [0xFF ] */ end + +.channel CHAN_5537 +/* 0x5537 [0x88 0x55 0x3E ] */ ldlayer 0, LAYER_553E +/* 0x553A [0x89 0x40 0x81 ] */ ldlayer 1, LAYER_4081 +/* 0x553D [0xFF ] */ end + +.layer LAYER_553E +/* 0x553E [0xC6 0x31 ] */ instr SF1_INST_49 +/* 0x5540 [0xC7 0x81 0x23 0x48 ] */ portamento 0x81, PITCH_AF3, 72 +/* 0x5544 [0x6C 0x40 0x64 ] */ notedv PITCH_F4, 64, 100 +/* 0x5547 [0xFF ] */ end + +.channel CHAN_5548 +/* 0x5548 [0xC1 0x31 ] */ instr SF1_INST_49 +/* 0x554A [0x88 0x55 0x51 ] */ ldlayer 0, LAYER_5551 +/* 0x554D [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x5550 [0xFF ] */ end + +.layer LAYER_5551 +/* 0x5551 [0xC4 ] */ legato +/* 0x5552 [0xC7 0x85 0x27 0xC0 ] */ portamento 0x85, PITCH_C4, 192 +/* 0x5556 [0x6C 0x20 0x64 ] */ notedv PITCH_F4, 32, 100 +/* 0x5559 [0x68 0x20 0x64 ] */ notedv PITCH_DF4, 32, 100 +/* 0x555C [0xFF ] */ end + +.channel CHAN_555D +/* 0x555D [0xC1 0x31 ] */ instr SF1_INST_49 +/* 0x555F [0x88 0x55 0x66 ] */ ldlayer 0, LAYER_5566 +/* 0x5562 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x5565 [0xFF ] */ end + +.layer LAYER_5566 +/* 0x5566 [0xC4 ] */ legato +/* 0x5567 [0xC7 0x85 0x27 0x80 ] */ portamento 0x85, PITCH_C4, 128 +/* 0x556B [0x72 0x1C 0x64 ] */ notedv PITCH_B4, 28, 100 +/* 0x556E [0x6F 0x60 0x64 ] */ notedv PITCH_AF4, 96, 100 +/* 0x5571 [0xFF ] */ end + +.channel CHAN_5572 +/* 0x5572 [0xC1 0x31 ] */ instr SF1_INST_49 +/* 0x5574 [0x88 0x55 0x78 ] */ ldlayer 0, LAYER_5578 +/* 0x5577 [0xFF ] */ end + +.layer LAYER_5578 +/* 0x5578 [0x69 0x70 0x4B ] */ notedv PITCH_D4, 112, 75 +/* 0x557B [0xFF ] */ end + +.channel CHAN_557C +/* 0x557C [0x88 0x55 0x83 ] */ ldlayer 0, LAYER_5583 +/* 0x557F [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x5582 [0xFF ] */ end + +.layer LAYER_5583 +/* 0x5583 [0xC6 0x17 ] */ instr SF1_INST_23 +/* 0x5585 [0xC4 ] */ legato +/* 0x5586 [0xC7 0x85 0x22 0xFF ] */ portamento 0x85, PITCH_G3, 255 +/* 0x558A [0x67 0x0A 0x64 ] */ notedv PITCH_C4, 10, 100 +/* 0x558D [0x64 0x1E 0x64 ] */ notedv PITCH_A3, 30, 100 +/* 0x5590 [0xFF ] */ end + +.channel CHAN_5591 +/* 0x5591 [0x88 0x55 0x98 ] */ ldlayer 0, LAYER_5598 +/* 0x5594 [0x89 0x48 0x29 ] */ ldlayer 1, LAYER_4829 +/* 0x5597 [0xFF ] */ end + +.layer LAYER_5598 +/* 0x5598 [0xC6 0x17 ] */ instr SF1_INST_23 +/* 0x559A [0xC4 ] */ legato +/* 0x559B [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +/* 0x559F [0x62 0x0F 0x64 ] */ notedv PITCH_G3, 15, 100 +/* 0x55A2 [0x50 0x60 0x64 ] */ notedv PITCH_DF2, 96, 100 +/* 0x55A5 [0xFF ] */ end + +.channel CHAN_55A6 +/* 0x55A6 [0x88 0x55 0xAE ] */ ldlayer 0, LAYER_55AE +/* 0x55A9 [0xD7 0x70 ] */ vibfreq 112 +/* 0x55AB [0xD8 0x40 ] */ vibdepth 64 +/* 0x55AD [0xFF ] */ end + +.layer LAYER_55AE +/* 0x55AE [0xC6 0x31 ] */ instr SF1_INST_49 +/* 0x55B0 [0xC2 0x30 ] */ transpose 48 +/* 0x55B2 [0x67 0x0C 0x64 ] */ notedv PITCH_C4, 12, 100 +/* 0x55B5 [0x69 0x14 0x64 ] */ notedv PITCH_D4, 20, 100 +/* 0x55B8 [0xFF ] */ end + +.channel CHAN_55B9 +/* 0x55B9 [0x88 0x55 0xC1 ] */ ldlayer 0, LAYER_55C1 +/* 0x55BC [0xD7 0x70 ] */ vibfreq 112 +/* 0x55BE [0xD8 0x40 ] */ vibdepth 64 +/* 0x55C0 [0xFF ] */ end + +.layer LAYER_55C1 +/* 0x55C1 [0xC6 0x31 ] */ instr SF1_INST_49 +/* 0x55C3 [0xC2 0x30 ] */ transpose 48 +/* 0x55C5 [0x6C 0x0C 0x64 ] */ notedv PITCH_F4, 12, 100 +/* 0x55C8 [0x69 0x12 0x64 ] */ notedv PITCH_D4, 18, 100 +/* 0x55CB [0x6B 0x0C 0x64 ] */ notedv PITCH_E4, 12, 100 +/* 0x55CE [0x69 0x10 0x64 ] */ notedv PITCH_D4, 16, 100 +/* 0x55D1 [0xFF ] */ end + +.channel CHAN_55D2 +/* 0x55D2 [0xC1 0x0A ] */ instr SF1_INST_10 +/* 0x55D4 [0x88 0x55 0xD8 ] */ ldlayer 0, LAYER_55D8 +/* 0x55D7 [0xFF ] */ end + +.layer LAYER_55D8 +/* 0x55D8 [0xC7 0x81 0x16 0xC8 ] */ portamento 0x81, PITCH_G2, 200 +/* 0x55DC [0x5D 0x26 0x44 ] */ notedv PITCH_D3, 38, 68 +/* 0x55DF [0xFF ] */ end + +.channel CHAN_55E0 +/* 0x55E0 [0x88 0x55 0xE4 ] */ ldlayer 0, LAYER_55E4 +/* 0x55E3 [0xFF ] */ end + +.layer LAYER_55E4 +/* 0x55E4 [0xC6 0x2E ] */ instr SF1_INST_46 +/* 0x55E6 [0xC2 0x30 ] */ transpose 48 +/* 0x55E8 [0x65 0x45 0x64 ] */ notedv PITCH_BF3, 69, 100 +/* 0x55EB [0xFF ] */ end + +.channel CHAN_55EC +/* 0x55EC [0x88 0x55 0xF3 ] */ ldlayer 0, LAYER_55F3 +/* 0x55EF [0x89 0x55 0xF5 ] */ ldlayer 1, LAYER_55F5 +/* 0x55F2 [0xFF ] */ end + +.layer LAYER_55F3 +/* 0x55F3 [0xC0 0x0C ] */ ldelay 12 +.layer LAYER_55F5 +/* 0x55F5 [0xC6 0x2A ] */ instr SF1_INST_42 +/* 0x55F7 [0xC2 0x30 ] */ transpose 48 +/* 0x55F9 [0x67 0x7F 0x64 ] */ notedv PITCH_C4, 127, 100 +/* 0x55FC [0xFF ] */ end + +.channel CHAN_55FD +/* 0x55FD [0x88 0x56 0x04 ] */ ldlayer 0, LAYER_5604 +/* 0x5600 [0x89 0x56 0x06 ] */ ldlayer 1, LAYER_5606 +/* 0x5603 [0xFF ] */ end + +.layer LAYER_5604 +/* 0x5604 [0xC0 0x14 ] */ ldelay 20 +.layer LAYER_5606 +/* 0x5606 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x5608 [0xC4 ] */ legato +/* 0x5609 [0xC7 0x85 0x13 0xBF ] */ portamento 0x85, PITCH_E2, 191 +/* 0x560D [0x55 0x34 0x64 ] */ notedv PITCH_GF2, 52, 100 +/* 0x5610 [0x53 0x80 0xC0 0x64 ] */ notedv PITCH_E2, 192, 100 +/* 0x5614 [0xFF ] */ end + +.channel CHAN_5615 +/* 0x5615 [0x88 0x56 0x1C ] */ ldlayer 0, LAYER_561C +/* 0x5618 [0x89 0x56 0x26 ] */ ldlayer 1, LAYER_5626 +/* 0x561B [0xFF ] */ end + +.layer LAYER_561C +/* 0x561C [0xC6 0x04 ] */ instr SF1_INST_4 +/* 0x561E [0xC7 0x81 0x1F 0x64 ] */ portamento 0x81, PITCH_E3, 100 +/* 0x5622 [0x5B 0x32 0x50 ] */ notedv PITCH_C3, 50, 80 +/* 0x5625 [0xFF ] */ end + +.layer LAYER_5626 +/* 0x5626 [0xC6 0x2F ] */ instr SF1_INST_47 +/* 0x5628 [0xC0 0x10 ] */ ldelay 16 +/* 0x562A [0xC2 0x18 ] */ transpose 24 +/* 0x562C [0x4F 0x06 0x24 ] */ notedv PITCH_C2, 6, 36 +/* 0x562F [0x54 0x06 0x24 ] */ notedv PITCH_F2, 6, 36 +/* 0x5632 [0x5B 0x06 0x24 ] */ notedv PITCH_C3, 6, 36 +/* 0x5635 [0x60 0x06 0x24 ] */ notedv PITCH_F3, 6, 36 +/* 0x5638 [0x67 0x06 0x24 ] */ notedv PITCH_C4, 6, 36 +/* 0x563B [0xFF ] */ end + +.channel CHAN_563C +/* 0x563C [0x88 0x56 0x43 ] */ ldlayer 0, LAYER_5643 +/* 0x563F [0x89 0x56 0x47 ] */ ldlayer 1, LAYER_5647 +/* 0x5642 [0xFF ] */ end + +.layer LAYER_5643 +/* 0x5643 [0xC2 0x2C ] */ transpose 44 +/* 0x5645 [0xF4 0x02 ] */ rjump LAYER_5649 + +.layer LAYER_5647 +/* 0x5647 [0xC2 0x30 ] */ transpose 48 +LAYER_5649: +/* 0x5649 [0xC6 0x32 ] */ instr SF1_INST_50 +/* 0x564B [0x6A 0x7F 0x64 ] */ notedv PITCH_EF4, 127, 100 +/* 0x564E [0xFF ] */ end + +.channel CHAN_564F +/* 0x564F [0xC1 0x07 ] */ instr SF1_INST_7 +/* 0x5651 [0x88 0x56 0x55 ] */ ldlayer 0, LAYER_5655 +/* 0x5654 [0xFF ] */ end + +.layer LAYER_5655 +/* 0x5655 [0x5E 0x40 0x64 ] */ notedv PITCH_EF3, 64, 100 +/* 0x5658 [0xFF ] */ end + +.channel CHAN_5659 +/* 0x5659 [0xC1 0x32 ] */ instr SF1_INST_50 +/* 0x565B [0x88 0x56 0x75 ] */ ldlayer 0, LAYER_5675 +CHAN_565E: +/* 0x565E [0xB8 0x20 ] */ rand 32 +/* 0x5660 [0xC7 0x28 0x56 0x76 ] */ stseq 40, LAYER_5675 + STSEQ_NOTEDV_DELAY_HI +/* 0x5664 [0xC7 0x28 0x56 0x6F ] */ stseq 40, CHAN_566E + STSEQ_LDI_IMM +/* 0x5668 [0xB8 0x06 ] */ rand 6 +/* 0x566A [0xC7 0x64 0x56 0x75 ] */ stseq (NOTEDV_OPCODE | PITCH_A3), LAYER_5675 + STSEQ_NOTEDV_OPCODE_PITCH +CHAN_566E: +/* 0x566E [0xCC 0x01 ] */ ldi 1 +/* 0x5670 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x5673 [0xF4 0xE9 ] */ rjump CHAN_565E + +.layer LAYER_5675 +/* 0x5675 [0x5B 0x50 0x64 ] */ notedv PITCH_C3, 80, 100 +/* 0x5678 [0xF4 0xFB ] */ rjump LAYER_5675 + +.channel CHAN_567A +/* 0x567A [0xC1 0x0B ] */ instr SF1_INST_11 +/* 0x567C [0x88 0x56 0x84 ] */ ldlayer 0, LAYER_5684 +/* 0x567F [0xD7 0x38 ] */ vibfreq 56 +/* 0x5681 [0xD8 0x40 ] */ vibdepth 64 +/* 0x5683 [0xFF ] */ end + +.layer LAYER_5684 +/* 0x5684 [0xCB 0x6A 0x2C 0xE6 ] */ env ENVELOPE_6A2C, 230 +LAYER_5688: +/* 0x5688 [0x50 0x80 0xD0 0x38 ] */ notedv PITCH_DF2, 208, 56 +/* 0x568C [0xF4 0xFA ] */ rjump LAYER_5688 + +.channel CHAN_568E +/* 0x568E [0x88 0x56 0x96 ] */ ldlayer 0, LAYER_5696 +/* 0x5691 [0xD7 0x36 ] */ vibfreq 54 +/* 0x5693 [0xD8 0x80 ] */ vibdepth 128 +/* 0x5695 [0xFF ] */ end + +.layer LAYER_5696 +/* 0x5696 [0xC6 0x2E ] */ instr SF1_INST_46 +/* 0x5698 [0xC2 0x30 ] */ transpose 48 +/* 0x569A [0xC7 0x81 0x2E 0xFF ] */ portamento 0x81, PITCH_G4, 255 +/* 0x569E [0x61 0x70 0x58 ] */ notedv PITCH_GF3, 112, 88 +/* 0x56A1 [0xFF ] */ end + +.channel CHAN_56A2 +/* 0x56A2 [0x88 0x56 0xAA ] */ ldlayer 0, LAYER_56AA +/* 0x56A5 [0xD7 0xE0 ] */ vibfreq 224 +/* 0x56A7 [0xD8 0x60 ] */ vibdepth 96 +/* 0x56A9 [0xFF ] */ end + +.layer LAYER_56AA +/* 0x56AA [0xC6 0x2F ] */ instr SF1_INST_47 +/* 0x56AC [0x58 0x40 0x4C ] */ notedv PITCH_A2, 64, 76 +/* 0x56AF [0xFF ] */ end + +.channel CHAN_56B0 +/* 0x56B0 [0xFF ] */ end + +.filter FILTER_56C0 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.filter FILTER_56D0 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.filter FILTER_56E0 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.channel systembank_handler_1 +/* 0x56F0 [0xC2 0x57 0x29 ] */ dyntbl systembank_table +/* 0x56F3 [0xC4 ] */ noshort +/* 0x56F4 [0xCA 0x00 ] */ mutebhv 0x00 +/* 0x56F6 [0xE9 0x0E ] */ notepri 0, 14 +/* 0x56F8 [0xE5 0x01 ] */ reverbidx 1 +/* 0x56FA [0xD0 0x00 ] */ effects FALSE, 0, 0, 0, 0, 0 +/* 0x56FC [0xC6 0x00 ] */ font Soundfont_0_ID +/* 0x56FE [0xDC 0x00 ] */ panweight 0 +CHAN_5700: +/* 0x5700 [0xFE ] */ delay1 +/* 0x5701 [0x60 ] */ ldio IO_PORT_0 +/* 0x5702 [0xC8 0x01 ] */ sub 1 +/* 0x5704 [0xFA 0x57 0x0A ] */ beqz CHAN_570A +/* 0x5707 [0xFB 0x57 0x00 ] */ jump CHAN_5700 + +CHAN_570A: +/* 0x570A [0xD4 0x00 ] */ reverb 0 +/* 0x570C [0xFC 0x00 0x7C ] */ call CHAN_007C +/* 0x570F [0x92 ] */ dellayer 2 +/* 0x5710 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x5711 [0xE4 ] */ dyncall +CHAN_5712: +/* 0x5712 [0xFC 0x00 0x84 ] */ call CHAN_0084 +/* 0x5715 [0xFE ] */ delay1 +/* 0x5716 [0x60 ] */ ldio IO_PORT_0 +/* 0x5717 [0xF3 0x0B ] */ rbeqz CHAN_5724 +/* 0x5719 [0xF2 0x02 ] */ rbltz CHAN_571D +/* 0x571B [0xF4 0xED ] */ rjump CHAN_570A + +CHAN_571D: +/* 0x571D [0x80 ] */ testlayer 0 +/* 0x571E [0xFA 0x57 0x12 ] */ beqz CHAN_5712 +/* 0x5721 [0xCC 0xFF ] */ ldi 255 +/* 0x5723 [0x71 ] */ stio IO_PORT_1 +CHAN_5724: +/* 0x5724 [0x90 ] */ dellayer 0 +/* 0x5725 [0x91 ] */ dellayer 1 +/* 0x5726 [0x92 ] */ dellayer 2 +/* 0x5727 [0xF4 0xD7 ] */ rjump CHAN_5700 + +#define DEFINE_SFX(lblName, sfxId, priority, decay, rand, flags) \ + entry lblName + +.table_unaligned systembank_table + #include "systembank_table.h" + +#undef DEFINE_SFX + +.channel CHAN_57B9 +/* 0x57B9 [0xC1 0x80 ] */ instr FONTANY_INSTR_SAWTOOTH +/* 0x57BB [0xDA 0x66 0x60 ] */ env ENVELOPE_6660 +/* 0x57BE [0xD9 0xF0 ] */ releaserate 240 +/* 0x57C0 [0x88 0x57 0xC7 ] */ ldlayer 0, LAYER_57C7 +/* 0x57C3 [0x89 0x57 0xDF ] */ ldlayer 1, LAYER_57DF +/* 0x57C6 [0xFF ] */ end + +.layer LAYER_57C7 +/* 0x57C7 [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x57C9 [0xC2 0x0C ] */ transpose 12 +/* 0x57CB [0xCF 0xE1 ] */ releaserate 225 +/* 0x57CD [0xCA 0x36 ] */ notepan 54 +/* 0x57CF [0x65 0x0C 0x49 ] */ notedv PITCH_BF3, 12, 73 +/* 0x57D2 [0x67 0x0C 0x49 ] */ notedv PITCH_C4, 12, 73 +/* 0x57D5 [0x69 0x0C 0x49 ] */ notedv PITCH_D4, 12, 73 +/* 0x57D8 [0x6A 0x0C 0x49 ] */ notedv PITCH_EF4, 12, 73 +/* 0x57DB [0x6C 0x18 0x49 ] */ notedv PITCH_F4, 24, 73 +/* 0x57DE [0xFF ] */ end + +.layer LAYER_57DF +/* 0x57DF [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x57E1 [0xC2 0x18 ] */ transpose 24 +/* 0x57E3 [0xCB 0x65 0xD8 0xF5 ] */ env ENVELOPE_65D8, 245 +/* 0x57E7 [0xCA 0x4A ] */ notepan 74 +/* 0x57E9 [0xC7 0x81 0x14 0xFF ] */ portamento 0x81, PITCH_F2, 255 +/* 0x57ED [0x60 0x18 0x49 ] */ notedv PITCH_F3, 24, 73 +/* 0x57F0 [0xC0 0x04 ] */ ldelay 4 +/* 0x57F2 [0x60 0x18 0x49 ] */ notedv PITCH_F3, 24, 73 +/* 0x57F5 [0xFF ] */ end + +.channel CHAN_57F6 +/* 0x57F6 [0xC1 0x80 ] */ instr FONTANY_INSTR_SAWTOOTH +/* 0x57F8 [0xDA 0x66 0x60 ] */ env ENVELOPE_6660 +/* 0x57FB [0xD9 0xF0 ] */ releaserate 240 +/* 0x57FD [0x88 0x58 0x04 ] */ ldlayer 0, LAYER_5804 +/* 0x5800 [0x89 0x58 0x1C ] */ ldlayer 1, LAYER_581C +/* 0x5803 [0xFF ] */ end + +.layer LAYER_5804 +/* 0x5804 [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x5806 [0xCF 0xE1 ] */ releaserate 225 +/* 0x5808 [0xC2 0x0C ] */ transpose 12 +/* 0x580A [0xCA 0x36 ] */ notepan 54 +/* 0x580C [0x6C 0x04 0x49 ] */ notedv PITCH_F4, 4, 73 +/* 0x580F [0x6A 0x04 0x49 ] */ notedv PITCH_EF4, 4, 73 +/* 0x5812 [0x69 0x04 0x49 ] */ notedv PITCH_D4, 4, 73 +/* 0x5815 [0x67 0x04 0x49 ] */ notedv PITCH_C4, 4, 73 +/* 0x5818 [0x65 0x0C 0x49 ] */ notedv PITCH_BF3, 12, 73 +/* 0x581B [0xFF ] */ end + +.layer LAYER_581C +/* 0x581C [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x581E [0xC2 0x18 ] */ transpose 24 +/* 0x5820 [0xCB 0x65 0xD8 0xF5 ] */ env ENVELOPE_65D8, 245 +/* 0x5824 [0xCA 0x4A ] */ notepan 74 +/* 0x5826 [0xC7 0x81 0x14 0xFF ] */ portamento 0x81, PITCH_F2, 255 +/* 0x582A [0x60 0x0C 0x49 ] */ notedv PITCH_F3, 12, 73 +/* 0x582D [0xC0 0x04 ] */ ldelay 4 +/* 0x582F [0x60 0x0C 0x49 ] */ notedv PITCH_F3, 12, 73 +/* 0x5832 [0xFF ] */ end + +.channel CHAN_5833 +/* 0x5833 [0xC1 0x83 ] */ instr FONTANY_INSTR_SQUARE +/* 0x5835 [0xDA 0x66 0x4C ] */ env ENVELOPE_664C +/* 0x5838 [0xD9 0xF8 ] */ releaserate 248 +/* 0x583A [0x88 0x58 0x41 ] */ ldlayer 0, LAYER_5841 +/* 0x583D [0x89 0x58 0x50 ] */ ldlayer 1, LAYER_5850 +/* 0x5840 [0xFF ] */ end + +.layer LAYER_5841 +/* 0x5841 [0xCA 0x36 ] */ notepan 54 +/* 0x5843 [0x6E 0x18 0x4B ] */ notedv PITCH_G4, 24, 75 +/* 0x5846 [0x6A 0x18 0x4B ] */ notedv PITCH_EF4, 24, 75 +/* 0x5849 [0x63 0x18 0x4B ] */ notedv PITCH_AF3, 24, 75 +/* 0x584C [0x6F 0x30 0x4B ] */ notedv PITCH_AF4, 48, 75 +/* 0x584F [0xFF ] */ end + +.layer LAYER_5850 +/* 0x5850 [0xCA 0x4A ] */ notepan 74 +/* 0x5852 [0xC0 0x0C ] */ ldelay 12 +/* 0x5854 [0x6D 0x18 0x4B ] */ notedv PITCH_GF4, 24, 75 +/* 0x5857 [0x64 0x18 0x4B ] */ notedv PITCH_A3, 24, 75 +/* 0x585A [0x6B 0x18 0x4B ] */ notedv PITCH_E4, 24, 75 +/* 0x585D [0x73 0x30 0x4B ] */ notedv PITCH_C5, 48, 75 +/* 0x5860 [0xFF ] */ end + +.channel CHAN_5861 +/* 0x5861 [0x88 0x58 0x68 ] */ ldlayer 0, LAYER_5868 +/* 0x5864 [0x89 0x58 0x7A ] */ ldlayer 1, LAYER_587A +/* 0x5867 [0xFF ] */ end + +.layer LAYER_5868 +/* 0x5868 [0xC6 0x80 ] */ instr FONTANY_INSTR_SAWTOOTH +/* 0x586A [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x586E [0xC2 0x18 ] */ transpose 24 +/* 0x5870 [0x71 0x06 0x50 ] */ notedv PITCH_BF4, 6, 80 +/* 0x5873 [0x6C 0x06 0x50 ] */ notedv PITCH_F4, 6, 80 +/* 0x5876 [0x71 0x18 0x50 ] */ notedv PITCH_BF4, 24, 80 +/* 0x5879 [0xFF ] */ end + +.layer LAYER_587A +/* 0x587A [0xC6 0x5B ] */ instr SF0_INST_91 +/* 0x587C [0x73 0x24 0x48 ] */ notedv PITCH_C5, 36, 72 +/* 0x587F [0xFF ] */ end + +.channel CHAN_5880 +/* 0x5880 [0x88 0x58 0x84 ] */ ldlayer 0, LAYER_5884 +/* 0x5883 [0xFF ] */ end + +.layer LAYER_5884 +/* 0x5884 [0xC6 0x81 ] */ instr FONTANY_INSTR_TRIANGLE +/* 0x5886 [0xCB 0x67 0x20 0xFA ] */ env ENVELOPE_6720, 250 +/* 0x588A [0x70 0x06 0x3C ] */ notedv PITCH_A4, 6, 60 +/* 0x588D [0xFF ] */ end + +.channel CHAN_588E +/* 0x588E [0x88 0x58 0x92 ] */ ldlayer 0, LAYER_5892 +/* 0x5891 [0xFF ] */ end + +.layer LAYER_5892 +/* 0x5892 [0xC6 0x80 ] */ instr FONTANY_INSTR_SAWTOOTH +/* 0x5894 [0xCB 0x66 0x4C 0xFA ] */ env ENVELOPE_664C, 250 +/* 0x5898 [0x53 0x09 0x50 ] */ notedv PITCH_E2, 9, 80 +/* 0x589B [0x53 0x24 0x50 ] */ notedv PITCH_E2, 36, 80 +/* 0x589E [0xFF ] */ end + +.channel CHAN_589F +/* 0x589F [0xC1 0x83 ] */ instr FONTANY_INSTR_SQUARE +/* 0x58A1 [0xDA 0x66 0x4C ] */ env ENVELOPE_664C +/* 0x58A4 [0xD9 0xFA ] */ releaserate 250 +/* 0x58A6 [0x88 0x58 0xAD ] */ ldlayer 0, LAYER_58AD +/* 0x58A9 [0x89 0x58 0xC3 ] */ ldlayer 1, LAYER_58C3 +/* 0x58AC [0xFF ] */ end + +.layer LAYER_58AD +/* 0x58AD [0x70 0x0C 0x46 ] */ notedv PITCH_A4, 12, 70 +/* 0x58B0 [0x72 0x0C 0x46 ] */ notedv PITCH_B4, 12, 70 +/* 0x58B3 [0x75 0x0C 0x46 ] */ notedv PITCH_D5, 12, 70 +/* 0x58B6 [0x77 0x0C 0x46 ] */ notedv PITCH_E5, 12, 70 +/* 0x58B9 [0x7C 0x12 0x46 ] */ notedv PITCH_A5, 18, 70 +/* 0x58BC [0x7C 0x12 0x28 ] */ notedv PITCH_A5, 18, 40 +/* 0x58BF [0x7C 0x12 0x0F ] */ notedv PITCH_A5, 18, 15 +/* 0x58C2 [0xFF ] */ end + +.layer LAYER_58C3 +/* 0x58C3 [0xC0 0x06 ] */ ldelay 6 +/* 0x58C5 [0xCA 0x22 ] */ notepan 34 +/* 0x58C7 [0x70 0x0C 0x28 ] */ notedv PITCH_A4, 12, 40 +/* 0x58CA [0xCA 0x5E ] */ notepan 94 +/* 0x58CC [0x72 0x0C 0x28 ] */ notedv PITCH_B4, 12, 40 +/* 0x58CF [0xCA 0x22 ] */ notepan 34 +/* 0x58D1 [0x75 0x0C 0x28 ] */ notedv PITCH_D5, 12, 40 +/* 0x58D4 [0xCA 0x5E ] */ notepan 94 +/* 0x58D6 [0x77 0x0C 0x28 ] */ notedv PITCH_E5, 12, 40 +/* 0x58D9 [0xCA 0x22 ] */ notepan 34 +/* 0x58DB [0x7C 0x12 0x28 ] */ notedv PITCH_A5, 18, 40 +/* 0x58DE [0xCA 0x5E ] */ notepan 94 +/* 0x58E0 [0x7C 0x12 0x14 ] */ notedv PITCH_A5, 18, 20 +/* 0x58E3 [0xCA 0x40 ] */ notepan 64 +/* 0x58E5 [0x7C 0x12 0x0A ] */ notedv PITCH_A5, 18, 10 +/* 0x58E8 [0xFF ] */ end + +.channel CHAN_58E9 +/* 0x58E9 [0xC1 0x54 ] */ instr SF0_INST_84 +/* 0x58EB [0xDA 0x66 0x60 ] */ env ENVELOPE_6660 +/* 0x58EE [0xD9 0xF0 ] */ releaserate 240 +/* 0x58F0 [0x88 0x58 0xF7 ] */ ldlayer 0, LAYER_58F7 +/* 0x58F3 [0x89 0x59 0x0D ] */ ldlayer 1, LAYER_590D +/* 0x58F6 [0xFF ] */ end + +.layer LAYER_58F7 +/* 0x58F7 [0x70 0x06 0x50 ] */ notedv PITCH_A4, 6, 80 +/* 0x58FA [0x72 0x06 0x50 ] */ notedv PITCH_B4, 6, 80 +/* 0x58FD [0x75 0x06 0x50 ] */ notedv PITCH_D5, 6, 80 +/* 0x5900 [0x77 0x06 0x50 ] */ notedv PITCH_E5, 6, 80 +/* 0x5903 [0x7C 0x09 0x50 ] */ notedv PITCH_A5, 9, 80 +/* 0x5906 [0x7C 0x09 0x32 ] */ notedv PITCH_A5, 9, 50 +/* 0x5909 [0x7C 0x09 0x1E ] */ notedv PITCH_A5, 9, 30 +/* 0x590C [0xFF ] */ end + +.layer LAYER_590D +/* 0x590D [0xC0 0x06 ] */ ldelay 6 +/* 0x590F [0xCA 0x22 ] */ notepan 34 +/* 0x5911 [0x70 0x06 0x37 ] */ notedv PITCH_A4, 6, 55 +/* 0x5914 [0xCA 0x5E ] */ notepan 94 +/* 0x5916 [0x72 0x06 0x37 ] */ notedv PITCH_B4, 6, 55 +/* 0x5919 [0xCA 0x22 ] */ notepan 34 +/* 0x591B [0x75 0x06 0x37 ] */ notedv PITCH_D5, 6, 55 +/* 0x591E [0xCA 0x5E ] */ notepan 94 +/* 0x5920 [0x77 0x06 0x37 ] */ notedv PITCH_E5, 6, 55 +/* 0x5923 [0xCA 0x22 ] */ notepan 34 +/* 0x5925 [0x7C 0x09 0x37 ] */ notedv PITCH_A5, 9, 55 +/* 0x5928 [0xCA 0x5E ] */ notepan 94 +/* 0x592A [0x7C 0x09 0x2D ] */ notedv PITCH_A5, 9, 45 +/* 0x592D [0xCA 0x40 ] */ notepan 64 +/* 0x592F [0x7C 0x09 0x1E ] */ notedv PITCH_A5, 9, 30 +/* 0x5932 [0xFF ] */ end + +.channel CHAN_5933 +/* 0x5933 [0x88 0x59 0x37 ] */ ldlayer 0, LAYER_5937 +/* 0x5936 [0xFF ] */ end + +.layer LAYER_5937 +/* 0x5937 [0xC6 0x83 ] */ instr FONTANY_INSTR_SQUARE +/* 0x5939 [0xCB 0x66 0x60 0xF2 ] */ env ENVELOPE_6660, 242 +/* 0x593D [0xC7 0x81 0x24 0x48 ] */ portamento 0x81, PITCH_A3, 72 +/* 0x5941 [0x69 0x0A 0x2D ] */ notedv PITCH_D4, 10, 45 +/* 0x5944 [0x69 0x06 0x2D ] */ notedv PITCH_D4, 6, 45 +/* 0x5947 [0xFF ] */ end + +.channel CHAN_5948 +/* 0x5948 [0xC1 0x81 ] */ instr FONTANY_INSTR_TRIANGLE +/* 0x594A [0xDA 0x66 0x4C ] */ env ENVELOPE_664C +/* 0x594D [0x88 0x59 0x51 ] */ ldlayer 0, LAYER_5951 +/* 0x5950 [0xFF ] */ end + +.layer LAYER_5951 +/* 0x5951 [0xC6 0x81 ] */ instr FONTANY_INSTR_TRIANGLE +/* 0x5953 [0xCB 0x66 0x4C 0xFA ] */ env ENVELOPE_664C, 250 +/* 0x5957 [0x70 0x06 0x3C ] */ notedv PITCH_A4, 6, 60 +/* 0x595A [0x6B 0x06 0x3C ] */ notedv PITCH_E4, 6, 60 +/* 0x595D [0x69 0x06 0x3C ] */ notedv PITCH_D4, 6, 60 +/* 0x5960 [0x66 0x06 0x3C ] */ notedv PITCH_B3, 6, 60 +/* 0x5963 [0x64 0x09 0x3C ] */ notedv PITCH_A3, 9, 60 +/* 0x5966 [0x66 0x06 0x14 ] */ notedv PITCH_B3, 6, 20 +/* 0x5969 [0x64 0x09 0x14 ] */ notedv PITCH_A3, 9, 20 +/* 0x596C [0xFF ] */ end + +.channel CHAN_596D +/* 0x596D [0x88 0x59 0x71 ] */ ldlayer 0, LAYER_5971 +/* 0x5970 [0xFF ] */ end + +.layer LAYER_5971 +/* 0x5971 [0xC6 0x82 ] */ instr FONTANY_INSTR_SINE +/* 0x5973 [0xCB 0x67 0x20 0xF6 ] */ env ENVELOPE_6720, 246 +/* 0x5977 [0xC7 0x81 0x22 0x7F ] */ portamento 0x81, PITCH_G3, 127 +/* 0x597B [0x64 0x08 0x64 ] */ notedv PITCH_A3, 8, 100 +/* 0x597E [0xC7 0x81 0x2E 0x7F ] */ portamento 0x81, PITCH_G4, 127 +/* 0x5982 [0x70 0x08 0x64 ] */ notedv PITCH_A4, 8, 100 +/* 0x5985 [0xC7 0x81 0x3A 0x7F ] */ portamento 0x81, PITCH_G5, 127 +/* 0x5989 [0x7C 0x08 0x64 ] */ notedv PITCH_A5, 8, 100 +/* 0x598C [0xFF ] */ end + +.channel CHAN_598D +/* 0x598D [0x88 0x59 0x91 ] */ ldlayer 0, LAYER_5991 +/* 0x5990 [0xFF ] */ end + +.layer LAYER_5991 +/* 0x5991 [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x5993 [0xCB 0x66 0x88 0xFB ] */ env ENVELOPE_6688, 251 +/* 0x5997 [0xC7 0x81 0x24 0xC0 ] */ portamento 0x81, PITCH_A3, 192 +/* 0x599B [0x7C 0x38 0x6E ] */ notedv PITCH_A5, 56, 110 +/* 0x599E [0xFF ] */ end + +/* 0x599F [0xC1 0x80 ] */ shortvel 128 +/* 0x59A1 [0x88 0x59 0xA5 ] */ notevg PITCH_F1, 89, 165 +/* 0x59A4 [0xFF ] */ end + +/* 0x59A5 [0x70 0x60 0x69 ] */ notedv PITCH_A4, 96, 105 +/* 0x59A8 [0xFF ] */ end + +.channel CHAN_59A9 +/* 0x59A9 [0x88 0x59 0xAD ] */ ldlayer 0, LAYER_59AD +/* 0x59AC [0xFF ] */ end + +.layer LAYER_59AD +/* 0x59AD [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x59AF [0xCB 0x66 0x4C 0xFF ] */ env ENVELOPE_664C, 255 +/* 0x59B3 [0xC2 0xFB ] */ transpose -5 +/* 0x59B5 [0x6C 0x20 0x69 ] */ notedv PITCH_F4, 32, 105 +/* 0x59B8 [0xFF ] */ end + +/* 0x59B9 [0xC6 0x20 ] */ instr SF0_INST_32 +/* 0x59BB [0xCB 0x66 0xB0 0xFA ] */ env ENVELOPE_66B0, 250 +/* 0x59BF [0xC4 ] */ legato +/* 0x59C0 [0xC7 0x85 0x2E 0xFF ] */ portamento 0x85, PITCH_G4, 255 +/* 0x59C4 [0x72 0x12 0x5A ] */ notedv PITCH_B4, 18, 90 +/* 0x59C7 [0x6B 0x08 0x5A ] */ notedv PITCH_E4, 8, 90 +/* 0x59CA [0xFF ] */ end + +.channel CHAN_59CB +/* 0x59CB [0x88 0x59 0xCF ] */ ldlayer 0, LAYER_59CF +/* 0x59CE [0xFF ] */ end + +.layer LAYER_59CF +/* 0x59CF [0xC6 0x83 ] */ instr FONTANY_INSTR_SQUARE +/* 0x59D1 [0xC2 0x09 ] */ transpose 9 +/* 0x59D3 [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x59D7 [0xC7 0x81 0x18 0x40 ] */ portamento 0x81, PITCH_A2, 64 +/* 0x59DB [0x5D 0x02 0x41 ] */ notedv PITCH_D3, 2, 65 +/* 0x59DE [0x58 0x0C 0x41 ] */ notedv PITCH_A2, 12, 65 +/* 0x59E1 [0x5D 0x06 0x23 ] */ notedv PITCH_D3, 6, 35 +/* 0x59E4 [0xFF ] */ end + +.channel CHAN_59E5 +/* 0x59E5 [0x88 0x59 0xE9 ] */ ldlayer 0, LAYER_59E9 +/* 0x59E8 [0xFF ] */ end + +.layer LAYER_59E9 +/* 0x59E9 [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x59EB [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x59EF [0x69 0x06 0x5A ] */ notedv PITCH_D4, 6, 90 +/* 0x59F2 [0x6E 0x06 0x5A ] */ notedv PITCH_G4, 6, 90 +/* 0x59F5 [0x6D 0x06 0x5A ] */ notedv PITCH_GF4, 6, 90 +/* 0x59F8 [0x6E 0x0C 0x5A ] */ notedv PITCH_G4, 12, 90 +/* 0x59FB [0x6E 0x0C 0x28 ] */ notedv PITCH_G4, 12, 40 +/* 0x59FE [0x6E 0x0C 0x14 ] */ notedv PITCH_G4, 12, 20 +/* 0x5A01 [0xFF ] */ end + +.channel CHAN_5A02 +/* 0x5A02 [0x88 0x5A 0x06 ] */ ldlayer 0, LAYER_5A06 +/* 0x5A05 [0xFF ] */ end + +.layer LAYER_5A06 +/* 0x5A06 [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x5A08 [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x5A0C [0xC2 0x0C ] */ transpose 12 +/* 0x5A0E [0x6D 0x0A 0x4E ] */ notedv PITCH_GF4, 10, 78 +/* 0x5A11 [0x69 0x0A 0x4E ] */ notedv PITCH_D4, 10, 78 +/* 0x5A14 [0x66 0x0A 0x4E ] */ notedv PITCH_B3, 10, 78 +/* 0x5A17 [0x64 0x14 0x4E ] */ notedv PITCH_A3, 20, 78 +/* 0x5A1A [0xFF ] */ end + +.channel CHAN_5A1B +/* 0x5A1B [0x88 0x5A 0x1F ] */ ldlayer 0, LAYER_5A1F +/* 0x5A1E [0xFF ] */ end + +.layer LAYER_5A1F +/* 0x5A1F [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x5A21 [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x5A25 [0xC2 0x0C ] */ transpose 12 +/* 0x5A27 [0x64 0x0A 0x4E ] */ notedv PITCH_A3, 10, 78 +/* 0x5A2A [0x66 0x0A 0x4E ] */ notedv PITCH_B3, 10, 78 +/* 0x5A2D [0x69 0x0A 0x4E ] */ notedv PITCH_D4, 10, 78 +/* 0x5A30 [0x6D 0x14 0x4E ] */ notedv PITCH_GF4, 20, 78 +/* 0x5A33 [0xFF ] */ end + +.channel CHAN_5A34 +/* 0x5A34 [0x88 0x5A 0x38 ] */ ldlayer 0, LAYER_5A38 +/* 0x5A37 [0xFF ] */ end + +.layer LAYER_5A38 +/* 0x5A38 [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x5A3A [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x5A3E [0xC2 0x0C ] */ transpose 12 +/* 0x5A40 [0x69 0x0A 0x4E ] */ notedv PITCH_D4, 10, 78 +/* 0x5A43 [0x64 0x14 0x4E ] */ notedv PITCH_A3, 20, 78 +/* 0x5A46 [0xFF ] */ end + +.channel CHAN_5A47 +/* 0x5A47 [0x88 0x5A 0x4B ] */ ldlayer 0, LAYER_5A4B +/* 0x5A4A [0xFF ] */ end + +.layer LAYER_5A4B +/* 0x5A4B [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x5A4D [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x5A51 [0xC2 0x0C ] */ transpose 12 +/* 0x5A53 [0x64 0x0A 0x4E ] */ notedv PITCH_A3, 10, 78 +/* 0x5A56 [0x69 0x14 0x4E ] */ notedv PITCH_D4, 20, 78 +/* 0x5A59 [0xFF ] */ end + +.channel CHAN_5A5A +/* 0x5A5A [0xC1 0x54 ] */ instr SF0_INST_84 +/* 0x5A5C [0x88 0x5A 0x60 ] */ ldlayer 0, LAYER_5A60 +/* 0x5A5F [0xFF ] */ end + +.layer LAYER_5A60 +/* 0x5A60 [0x6A 0x0C 0x46 ] */ notedv PITCH_EF4, 12, 70 +/* 0x5A63 [0xFF ] */ end + +.channel CHAN_5A64 +/* 0x5A64 [0x88 0x5A 0x68 ] */ ldlayer 0, LAYER_5A68 +/* 0x5A67 [0xFF ] */ end + +.layer LAYER_5A68 +/* 0x5A68 [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x5A6A [0xCB 0x66 0x60 0xF8 ] */ env ENVELOPE_6660, 248 +/* 0x5A6E [0x6E 0x2E 0x5F ] */ notedv PITCH_G4, 46, 95 +/* 0x5A71 [0xFF ] */ end + +.channel CHAN_5A72 +/* 0x5A72 [0x88 0x5A 0x76 ] */ ldlayer 0, LAYER_5A76 +/* 0x5A75 [0xFF ] */ end + +.layer LAYER_5A76 +/* 0x5A76 [0xC6 0x80 ] */ instr FONTANY_INSTR_SAWTOOTH +/* 0x5A78 [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x5A7C [0x67 0x06 0x3C ] */ notedv PITCH_C4, 6, 60 +/* 0x5A7F [0x67 0x04 0x28 ] */ notedv PITCH_C4, 4, 40 +/* 0x5A82 [0x67 0x04 0x14 ] */ notedv PITCH_C4, 4, 20 +/* 0x5A85 [0xFF ] */ end + +.channel CHAN_5A86 +/* 0x5A86 [0xD4 0x0A ] */ reverb 10 +/* 0x5A88 [0x88 0x5A 0x8C ] */ ldlayer 0, LAYER_5A8C +/* 0x5A8B [0xFF ] */ end + +.layer LAYER_5A8C +/* 0x5A8C [0xC6 0x80 ] */ instr FONTANY_INSTR_SAWTOOTH +/* 0x5A8E [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x5A92 [0x67 0x06 0x41 ] */ notedv PITCH_C4, 6, 65 +/* 0x5A95 [0xCA 0x22 ] */ notepan 34 +/* 0x5A97 [0x73 0x04 0x2D ] */ notedv PITCH_C5, 4, 45 +/* 0x5A9A [0xCA 0x5E ] */ notepan 94 +/* 0x5A9C [0x73 0x04 0x2D ] */ notedv PITCH_C5, 4, 45 +/* 0x5A9F [0xCA 0x40 ] */ notepan 64 +/* 0x5AA1 [0x73 0x04 0x1E ] */ notedv PITCH_C5, 4, 30 +/* 0x5AA4 [0xFF ] */ end + +.channel CHAN_5AA5 +/* 0x5AA5 [0x88 0x5A 0xA9 ] */ ldlayer 0, LAYER_5AA9 +/* 0x5AA8 [0xFF ] */ end + +.layer LAYER_5AA9 +/* 0x5AA9 [0xC6 0x80 ] */ instr FONTANY_INSTR_SAWTOOTH +/* 0x5AAB [0xCB 0x66 0x60 0xF8 ] */ env ENVELOPE_6660, 248 +/* 0x5AAF [0x34 0x0D 0x3C 0x80 ] */ notedvg PITCH_DF5, 13, 60, 128 +/* 0x5AB3 [0x74 0x0D 0x3C ] */ notedv PITCH_DF5, 13, 60 +/* 0x5AB6 [0xFF ] */ end + +.channel CHAN_5AB7 +/* 0x5AB7 [0xD4 0x5A ] */ reverb 90 +/* 0x5AB9 [0x88 0x5A 0xC0 ] */ ldlayer 0, LAYER_5AC0 +/* 0x5ABC [0x89 0x5A 0xCC ] */ ldlayer 1, LAYER_5ACC +/* 0x5ABF [0xFF ] */ end + +.layer LAYER_5AC0 +/* 0x5AC0 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x5AC2 [0xCB 0x66 0x10 0xFB ] */ env ENVELOPE_6610, 251 +/* 0x5AC6 [0xCA 0x36 ] */ notepan 54 +/* 0x5AC8 [0x68 0x60 0x6B ] */ notedv PITCH_DF4, 96, 107 +/* 0x5ACB [0xFF ] */ end + +.layer LAYER_5ACC +/* 0x5ACC [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x5ACE [0xCB 0x66 0x10 0xFB ] */ env ENVELOPE_6610, 251 +/* 0x5AD2 [0xCA 0x36 ] */ notepan 54 +/* 0x5AD4 [0x4C 0x60 0x68 ] */ notedv PITCH_A1, 96, 104 +/* 0x5AD7 [0xFF ] */ end + +.channel CHAN_5AD8 +/* 0x5AD8 [0x88 0x5A 0xDF ] */ ldlayer 0, LAYER_5ADF +/* 0x5ADB [0x89 0x5A 0xED ] */ ldlayer 1, LAYER_5AED +/* 0x5ADE [0xFF ] */ end + +.layer LAYER_5ADF +/* 0x5ADF [0xC6 0x45 ] */ instr SF0_INST_69 +/* 0x5AE1 [0xCB 0x66 0xD0 0xF6 ] */ env ENVELOPE_66D0, 246 +/* 0x5AE5 [0xC7 0x81 0x3A 0xF6 ] */ portamento 0x81, PITCH_G5, 246 +/* 0x5AE9 [0x70 0x20 0x31 ] */ notedv PITCH_A4, 32, 49 +/* 0x5AEC [0xFF ] */ end + +.layer LAYER_5AED +/* 0x5AED [0xC6 0x82 ] */ instr FONTANY_INSTR_SINE +/* 0x5AEF [0xCB 0x66 0x60 0xF8 ] */ env ENVELOPE_6660, 248 +/* 0x5AF3 [0x7C 0x09 0x32 ] */ notedv PITCH_A5, 9, 50 +/* 0x5AF6 [0xFF ] */ end + +.channel CHAN_5AF7 +/* 0x5AF7 [0xCC 0x00 ] */ ldi 0 +/* 0x5AF9 [0x76 ] */ stio IO_PORT_6 +/* 0x5AFA [0xC7 0x00 0x5B 0x1A ] */ stseq 0, LAYER_5B19 + STSEQ_TRANSPOSITION +/* 0x5AFE [0x88 0x5B 0x13 ] */ ldlayer 0, LAYER_5B13 +CHAN_5B01: +/* 0x5B01 [0xCC 0x06 ] */ ldi 6 +/* 0x5B03 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x5B06 [0x66 ] */ ldio IO_PORT_6 +/* 0x5B07 [0xC7 0x00 0x5B 0x1A ] */ stseq 0, LAYER_5B19 + STSEQ_TRANSPOSITION +/* 0x5B0B [0xC8 0xFF ] */ sub 255 +/* 0x5B0D [0x76 ] */ stio IO_PORT_6 +/* 0x5B0E [0xC8 0x32 ] */ sub 50 +/* 0x5B10 [0xF2 0xEF ] */ rbltz CHAN_5B01 +/* 0x5B12 [0xFF ] */ end + +.layer LAYER_5B13 +/* 0x5B13 [0xC6 0x83 ] */ instr FONTANY_INSTR_SQUARE +/* 0x5B15 [0xCF 0xFB ] */ releaserate 251 +/* 0x5B17 [0xCA 0x22 ] */ notepan 34 +LAYER_5B19: +/* 0x5B19 [0xC2 0x00 ] */ transpose 0 +/* 0x5B1B [0x5B 0x03 0x20 ] */ notedv PITCH_C3, 3, 32 +/* 0x5B1E [0xC0 0x03 ] */ ldelay 3 +/* 0x5B20 [0xF4 0xF7 ] */ rjump LAYER_5B19 + +.channel CHAN_5B22 +/* 0x5B22 [0xC1 0x82 ] */ instr FONTANY_INSTR_SINE +/* 0x5B24 [0x88 0x5B 0x28 ] */ ldlayer 0, LAYER_5B28 +/* 0x5B27 [0xFF ] */ end + +.layer LAYER_5B28 +/* 0x5B28 [0xC4 ] */ legato +/* 0x5B29 [0xCB 0x66 0x74 0xF5 ] */ env ENVELOPE_6674, 245 +/* 0x5B2D [0xC7 0x81 0x24 0xFF ] */ portamento 0x81, PITCH_A3, 255 +/* 0x5B31 [0x54 0x08 0x44 ] */ notedv PITCH_F2, 8, 68 +/* 0x5B34 [0xC7 0x81 0x14 0xE1 ] */ portamento 0x81, PITCH_F2, 225 +/* 0x5B38 [0x67 0x1C 0x44 ] */ notedv PITCH_C4, 28, 68 +/* 0x5B3B [0xFF ] */ end + +.channel CHAN_5B3C +/* 0x5B3C [0xC1 0x82 ] */ instr FONTANY_INSTR_SINE +/* 0x5B3E [0x88 0x5B 0x42 ] */ ldlayer 0, LAYER_5B42 +/* 0x5B41 [0xFF ] */ end + +.layer LAYER_5B42 +/* 0x5B42 [0xC0 0x01 ] */ ldelay 1 +/* 0x5B44 [0xFF ] */ end + +/* 0x5B45 [0xCB 0x66 0x74 0xF5 ] */ env ENVELOPE_6674, 245 +/* 0x5B49 [0xC7 0x83 0x20 0xFF ] */ portamento 0x83, PITCH_F3, 255 +/* 0x5B4D [0x54 0x0C 0x50 ] */ notedv PITCH_F2, 12, 80 +/* 0x5B50 [0x54 0x0C 0x28 ] */ notedv PITCH_F2, 12, 40 +/* 0x5B53 [0xFF ] */ end + +.channel CHAN_5B54 +/* 0x5B54 [0x88 0x5B 0x58 ] */ ldlayer 0, LAYER_5B58 +/* 0x5B57 [0xFF ] */ end + +.layer LAYER_5B58 +/* 0x5B58 [0xC0 0x01 ] */ ldelay 1 +/* 0x5B5A [0xFF ] */ end + +.channel CHAN_5B5B +/* 0x5B5B [0xC1 0x81 ] */ instr FONTANY_INSTR_TRIANGLE +/* 0x5B5D [0xDA 0x66 0x4C ] */ env ENVELOPE_664C +/* 0x5B60 [0xD9 0xF0 ] */ releaserate 240 +/* 0x5B62 [0x88 0x5B 0x69 ] */ ldlayer 0, LAYER_5B69 +/* 0x5B65 [0x89 0x5B 0x88 ] */ ldlayer 1, LAYER_5B88 +/* 0x5B68 [0xFF ] */ end + +.layer LAYER_5B69 +/* 0x5B69 [0xCA 0x54 ] */ notepan 84 +/* 0x5B6B [0xC0 0x06 ] */ ldelay 6 +/* 0x5B6D [0x62 0x0C 0x50 ] */ notedv PITCH_G3, 12, 80 +/* 0x5B70 [0x67 0x0C 0x50 ] */ notedv PITCH_C4, 12, 80 +/* 0x5B73 [0x6E 0x0C 0x50 ] */ notedv PITCH_G4, 12, 80 +/* 0x5B76 [0x73 0x0C 0x50 ] */ notedv PITCH_C5, 12, 80 +/* 0x5B79 [0xCB 0x66 0x60 0xDE ] */ env ENVELOPE_6660, 222 +/* 0x5B7D [0xCA 0x2C ] */ notepan 44 +/* 0x5B7F [0x77 0x18 0x1E ] */ notedv PITCH_E5, 24, 30 +/* 0x5B82 [0xCA 0x54 ] */ notepan 84 +/* 0x5B84 [0x77 0x18 0x14 ] */ notedv PITCH_E5, 24, 20 +/* 0x5B87 [0xFF ] */ end + +.layer LAYER_5B88 +/* 0x5B88 [0xCA 0x2C ] */ notepan 44 +/* 0x5B8A [0x5F 0x0C 0x50 ] */ notedv PITCH_E3, 12, 80 +/* 0x5B8D [0x64 0x0C 0x50 ] */ notedv PITCH_A3, 12, 80 +/* 0x5B90 [0x6B 0x0C 0x50 ] */ notedv PITCH_E4, 12, 80 +/* 0x5B93 [0x70 0x0C 0x50 ] */ notedv PITCH_A4, 12, 80 +/* 0x5B96 [0xCA 0x40 ] */ notepan 64 +/* 0x5B98 [0x77 0x60 0x50 ] */ notedv PITCH_E5, 96, 80 +/* 0x5B9B [0xFF ] */ end + +.channel CHAN_5B9C +/* 0x5B9C [0xC1 0x81 ] */ instr FONTANY_INSTR_TRIANGLE +/* 0x5B9E [0xDA 0x66 0x4C ] */ env ENVELOPE_664C +/* 0x5BA1 [0xD9 0xF0 ] */ releaserate 240 +/* 0x5BA3 [0x88 0x5B 0xA7 ] */ ldlayer 0, LAYER_5BA7 +/* 0x5BA6 [0xFF ] */ end + +.layer LAYER_5BA7 +/* 0x5BA7 [0xFC 0x5B 0xB4 ] */ call LAYER_5BB4 +LAYER_5BAA: +/* 0x5BAA [0x6F 0x0A 0x4B ] */ notedv PITCH_AF4, 10, 75 +/* 0x5BAD [0x6F 0x14 0x37 ] */ notedv PITCH_AF4, 20, 55 +/* 0x5BB0 [0x6F 0x14 0x23 ] */ notedv PITCH_AF4, 20, 35 +/* 0x5BB3 [0xFF ] */ end + +.layer LAYER_5BB4 +/* 0x5BB4 [0x6F 0x0A 0x4B ] */ notedv PITCH_AF4, 10, 75 +/* 0x5BB7 [0x6C 0x0A 0x4B ] */ notedv PITCH_F4, 10, 75 +/* 0x5BBA [0x68 0x0A 0x4B ] */ notedv PITCH_DF4, 10, 75 +/* 0x5BBD [0xFF ] */ end + +.channel CHAN_5BBE +/* 0x5BBE [0xC1 0x54 ] */ instr SF0_INST_84 +/* 0x5BC0 [0xDA 0x66 0x4C ] */ env ENVELOPE_664C +/* 0x5BC3 [0xD9 0xF5 ] */ releaserate 245 +/* 0x5BC5 [0x88 0x5B 0xCC ] */ ldlayer 0, LAYER_5BCC +/* 0x5BC8 [0x89 0x5B 0xE1 ] */ ldlayer 1, LAYER_5BE1 +/* 0x5BCB [0xFF ] */ end + +.layer LAYER_5BCC +/* 0x5BCC [0xCA 0x18 ] */ notepan 24 +LAYER_5BCE: +/* 0x5BCE [0x6C 0x08 0x46 ] */ notedv PITCH_F4, 8, 70 +/* 0x5BD1 [0x71 0x08 0x46 ] */ notedv PITCH_BF4, 8, 70 +/* 0x5BD4 [0x70 0x08 0x46 ] */ notedv PITCH_A4, 8, 70 +/* 0x5BD7 [0x6E 0x08 0x46 ] */ notedv PITCH_G4, 8, 70 +/* 0x5BDA [0x6C 0x10 0x46 ] */ notedv PITCH_F4, 16, 70 +/* 0x5BDD [0x6C 0x20 0x23 ] */ notedv PITCH_F4, 32, 35 +/* 0x5BE0 [0xFF ] */ end + +.layer LAYER_5BE1 +/* 0x5BE1 [0x65 0x20 0x2D ] */ notedv PITCH_BF3, 32, 45 +/* 0x5BE4 [0x64 0x30 0x2D ] */ notedv PITCH_A3, 48, 45 +/* 0x5BE7 [0xFF ] */ end + +.channel CHAN_5BE8 +/* 0x5BE8 [0xC1 0x54 ] */ instr SF0_INST_84 +/* 0x5BEA [0xDA 0x66 0x4C ] */ env ENVELOPE_664C +/* 0x5BED [0xD9 0xF5 ] */ releaserate 245 +/* 0x5BEF [0x88 0x5B 0xF6 ] */ ldlayer 0, LAYER_5BF6 +/* 0x5BF2 [0x89 0x5B 0xE1 ] */ ldlayer 1, LAYER_5BE1 +/* 0x5BF5 [0xFF ] */ end + +.layer LAYER_5BF6 +/* 0x5BF6 [0xCA 0x68 ] */ notepan 104 +/* 0x5BF8 [0xF4 0xD4 ] */ rjump LAYER_5BCE + +.channel CHAN_5BFA +/* 0x5BFA [0xC1 0x57 ] */ instr SF0_INST_87 +/* 0x5BFC [0xDA 0x65 0xE8 ] */ env ENVELOPE_65E8 +/* 0x5BFF [0x88 0x5C 0x03 ] */ ldlayer 0, LAYER_5C03 +/* 0x5C02 [0xFF ] */ end + +.layer LAYER_5C03 +/* 0x5C03 [0x6E 0x43 0x6E ] */ notedv PITCH_G4, 67, 110 +/* 0x5C06 [0xFF ] */ end + +.channel CHAN_5C07 +/* 0x5C07 [0x88 0x5C 0x0B ] */ ldlayer 0, LAYER_5C0B +/* 0x5C0A [0xFF ] */ end + +.layer LAYER_5C0B +/* 0x5C0B [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x5C0D [0xCF 0xFA ] */ releaserate 250 +/* 0x5C0F [0x64 0x06 0x5A ] */ notedv PITCH_A3, 6, 90 +/* 0x5C12 [0xCB 0x66 0x74 0xF5 ] */ env ENVELOPE_6674, 245 +/* 0x5C16 [0xC7 0x81 0x24 0x90 ] */ portamento 0x81, PITCH_A3, 144 +/* 0x5C1A [0x70 0x18 0x5A ] */ notedv PITCH_A4, 24, 90 +/* 0x5C1D [0xFF ] */ end + +.channel CHAN_5C1E +/* 0x5C1E [0x88 0x5C 0x22 ] */ ldlayer 0, LAYER_5C22 +/* 0x5C21 [0xFF ] */ end + +.layer LAYER_5C22 +/* 0x5C22 [0xC6 0x54 ] */ instr SF0_INST_84 +/* 0x5C24 [0xCF 0xFA ] */ releaserate 250 +/* 0x5C26 [0x70 0x06 0x5A ] */ notedv PITCH_A4, 6, 90 +/* 0x5C29 [0xCB 0x66 0x74 0xF5 ] */ env ENVELOPE_6674, 245 +/* 0x5C2D [0xC7 0x82 0x24 0x90 ] */ portamento 0x82, PITCH_A3, 144 +/* 0x5C31 [0x6B 0x18 0x3C ] */ notedv PITCH_E4, 24, 60 +/* 0x5C34 [0xFF ] */ end + +.channel CHAN_5C35 +/* 0x5C35 [0xC1 0x2C ] */ instr SF0_INST_44 +/* 0x5C37 [0xDA 0x65 0xD8 ] */ env ENVELOPE_65D8 +/* 0x5C3A [0x88 0x5C 0x3E ] */ ldlayer 0, LAYER_5C3E +/* 0x5C3D [0xFF ] */ end + +.layer LAYER_5C3E +/* 0x5C3E [0xC4 ] */ legato +/* 0x5C3F [0x67 0x18 0x64 ] */ notedv PITCH_C4, 24, 100 +/* 0x5C42 [0x69 0x60 0x64 ] */ notedv PITCH_D4, 96, 100 +/* 0x5C45 [0xFF ] */ end + +.channel CHAN_5C46 +/* 0x5C46 [0xC1 0x2C ] */ instr SF0_INST_44 +/* 0x5C48 [0xDA 0x65 0xD8 ] */ env ENVELOPE_65D8 +/* 0x5C4B [0x88 0x5C 0x4F ] */ ldlayer 0, LAYER_5C4F +/* 0x5C4E [0xFF ] */ end + +.layer LAYER_5C4F +/* 0x5C4F [0xC4 ] */ legato +/* 0x5C50 [0x67 0x18 0x64 ] */ notedv PITCH_C4, 24, 100 +/* 0x5C53 [0x65 0x60 0x64 ] */ notedv PITCH_BF3, 96, 100 +/* 0x5C56 [0xFF ] */ end + +.channel CHAN_5C57 +/* 0x5C57 [0xC1 0x58 ] */ instr SF0_INST_88 +/* 0x5C59 [0x88 0x5C 0x5D ] */ ldlayer 0, LAYER_5C5D +/* 0x5C5C [0xFF ] */ end + +.layer LAYER_5C5D +/* 0x5C5D [0x6A 0x06 0x64 ] */ notedv PITCH_EF4, 6, 100 +/* 0x5C60 [0x6C 0x60 0x64 ] */ notedv PITCH_F4, 96, 100 +/* 0x5C63 [0xFF ] */ end + +.channel CHAN_5C64 +/* 0x5C64 [0xC1 0x57 ] */ instr SF0_INST_87 +/* 0x5C66 [0x88 0x5C 0x6A ] */ ldlayer 0, LAYER_5C6A +/* 0x5C69 [0xFF ] */ end + +.layer LAYER_5C6A +/* 0x5C6A [0xC2 0x30 ] */ transpose 48 +/* 0x5C6C [0xF8 0x04 ] */ loop 4 +/* 0x5C6E [0xCF 0xFA ] */ releaserate 250 +/* 0x5C70 [0x67 0x0C 0x62 ] */ notedv PITCH_C4, 12, 98 +/* 0x5C73 [0xCF 0xD8 ] */ releaserate 216 +/* 0x5C75 [0x67 0x28 0x57 ] */ notedv PITCH_C4, 40, 87 +/* 0x5C78 [0xF7 ] */ loopend +/* 0x5C79 [0xFF ] */ end + +.channel CHAN_5C7A +/* 0x5C7A [0xC1 0x54 ] */ instr SF0_INST_84 +/* 0x5C7C [0x88 0x5C 0x80 ] */ ldlayer 0, LAYER_5C80 +/* 0x5C7F [0xFF ] */ end + +.layer LAYER_5C80 +/* 0x5C80 [0x6B 0x06 0x46 ] */ notedv PITCH_E4, 6, 70 +/* 0x5C83 [0x69 0x06 0x46 ] */ notedv PITCH_D4, 6, 70 +/* 0x5C86 [0x67 0x0C 0x46 ] */ notedv PITCH_C4, 12, 70 +/* 0x5C89 [0xCA 0x2C ] */ notepan 44 +/* 0x5C8B [0x67 0x06 0x24 ] */ notedv PITCH_C4, 6, 36 +/* 0x5C8E [0xCA 0x54 ] */ notepan 84 +/* 0x5C90 [0x67 0x0C 0x24 ] */ notedv PITCH_C4, 12, 36 +/* 0x5C93 [0xFF ] */ end + +.channel CHAN_5C94 +/* 0x5C94 [0x88 0x5C 0x9B ] */ ldlayer 0, LAYER_5C9B +/* 0x5C97 [0x89 0x5C 0xA1 ] */ ldlayer 1, LAYER_5CA1 +/* 0x5C9A [0xFF ] */ end + +.layer LAYER_5C9B +/* 0x5C9B [0xC6 0x5B ] */ instr SF0_INST_91 +/* 0x5C9D [0x7A 0x0E 0x42 ] */ notedv PITCH_G5, 14, 66 +/* 0x5CA0 [0xFF ] */ end + +.layer LAYER_5CA1 +/* 0x5CA1 [0xC2 0x18 ] */ transpose 24 +/* 0x5CA3 [0xC6 0x80 ] */ instr FONTANY_INSTR_SAWTOOTH +/* 0x5CA5 [0xCB 0x66 0x60 0xFA ] */ env ENVELOPE_6660, 250 +/* 0x5CA9 [0x6C 0x03 0x34 ] */ notedv PITCH_F4, 3, 52 +/* 0x5CAC [0xFF ] */ end + +.channel CHAN_5CAD +/* 0x5CAD [0x88 0x5C 0xB1 ] */ ldlayer 0, LAYER_5CB1 +/* 0x5CB0 [0xFF ] */ end + +.layer LAYER_5CB1 +/* 0x5CB1 [0xC6 0x5A ] */ instr SF0_INST_90 +/* 0x5CB3 [0xC2 0x30 ] */ transpose 48 +/* 0x5CB5 [0x67 0x61 0x64 ] */ notedv PITCH_C4, 97, 100 +/* 0x5CB8 [0xFF ] */ end + +.channel CHAN_5CB9 +/* 0x5CB9 [0xC1 0x81 ] */ instr FONTANY_INSTR_TRIANGLE +/* 0x5CBB [0xDA 0x66 0x4C ] */ env ENVELOPE_664C +/* 0x5CBE [0xD9 0xF0 ] */ releaserate 240 +/* 0x5CC0 [0x88 0x5C 0xC4 ] */ ldlayer 0, LAYER_5CC4 +/* 0x5CC3 [0xFF ] */ end + +.layer LAYER_5CC4 +/* 0x5CC4 [0xFC 0x5B 0xB4 ] */ call LAYER_5BB4 +/* 0x5CC7 [0x71 0x0A 0x4B ] */ notedv PITCH_BF4, 10, 75 +/* 0x5CCA [0x6E 0x0A 0x4B ] */ notedv PITCH_G4, 10, 75 +/* 0x5CCD [0x6A 0x0A 0x4B ] */ notedv PITCH_EF4, 10, 75 +/* 0x5CD0 [0xFB 0x5B 0xAA ] */ jump LAYER_5BAA + +.channel CHAN_5CD3 +/* 0x5CD3 [0xD4 0x19 ] */ reverb 25 +/* 0x5CD5 [0x88 0x5C 0xEB ] */ ldlayer 0, LAYER_5CEB +/* 0x5CD8 [0x89 0x5C 0xDC ] */ ldlayer 1, LAYER_5CDC +/* 0x5CDB [0xFF ] */ end + +.layer LAYER_5CDC +/* 0x5CDC [0xC0 0x64 ] */ ldelay 100 +/* 0x5CDE [0xC6 0x56 ] */ instr SF0_INST_86 +/* 0x5CE0 [0xCB 0x67 0xCC 0xDD ] */ env ENVELOPE_67CC, 221 +/* 0x5CE4 [0xC2 0x18 ] */ transpose 24 +/* 0x5CE6 [0x7E 0x80 0x96 0x64 ] */ notedv PITCH_B5, 150, 100 +/* 0x5CEA [0xFF ] */ end + +.layer LAYER_5CEB +/* 0x5CEB [0xC6 0x0E ] */ instr SF0_INST_14 +/* 0x5CED [0xCB 0x67 0xD8 0xDD ] */ env ENVELOPE_67D8, 221 +/* 0x5CF1 [0xC2 0x0C ] */ transpose 12 +/* 0x5CF3 [0xC7 0x81 0x02 0xFF ] */ portamento 0x81, PITCH_B0, 255 +/* 0x5CF7 [0x7E 0x80 0xFA 0x55 ] */ notedv PITCH_B5, 250, 85 +/* 0x5CFB [0xFF ] */ end + +.channel CHAN_5CFC +/* 0x5CFC [0xD4 0x19 ] */ reverb 25 +/* 0x5CFE [0x88 0x5D 0x12 ] */ ldlayer 0, LAYER_5D12 +/* 0x5D01 [0x89 0x5D 0x05 ] */ ldlayer 1, LAYER_5D05 +/* 0x5D04 [0xFF ] */ end + +.layer LAYER_5D05 +/* 0x5D05 [0xC6 0x56 ] */ instr SF0_INST_86 +/* 0x5D07 [0xCB 0x67 0xD8 0xC8 ] */ env ENVELOPE_67D8, 200 +/* 0x5D0B [0xC2 0x18 ] */ transpose 24 +/* 0x5D0D [0x7E 0x80 0xC8 0x64 ] */ notedv PITCH_B5, 200, 100 +/* 0x5D11 [0xFF ] */ end + +.layer LAYER_5D12 +/* 0x5D12 [0xC6 0x0E ] */ instr SF0_INST_14 +/* 0x5D14 [0xCB 0x67 0xD8 0xC8 ] */ env ENVELOPE_67D8, 200 +/* 0x5D18 [0xC2 0x0C ] */ transpose 12 +/* 0x5D1A [0x7E 0x80 0xC8 0x55 ] */ notedv PITCH_B5, 200, 85 +/* 0x5D1E [0xFF ] */ end + +.channel CHAN_5D1F +/* 0x5D1F [0xD4 0x19 ] */ reverb 25 +/* 0x5D21 [0x88 0x5D 0x28 ] */ ldlayer 0, LAYER_5D28 +/* 0x5D24 [0x89 0x5D 0x34 ] */ ldlayer 1, LAYER_5D34 +/* 0x5D27 [0xFF ] */ end + +.layer LAYER_5D28 +/* 0x5D28 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x5D2A [0xCB 0x66 0x38 0xDD ] */ env ENVELOPE_6638, 221 +/* 0x5D2E [0xC2 0x18 ] */ transpose 24 +/* 0x5D30 [0x7E 0x40 0x5F ] */ notedv PITCH_B5, 64, 95 +/* 0x5D33 [0xFF ] */ end + +.layer LAYER_5D34 +/* 0x5D34 [0xC6 0x11 ] */ instr SF0_INST_17 +/* 0x5D36 [0xCB 0x66 0xD0 0xE0 ] */ env ENVELOPE_66D0, 224 +/* 0x5D3A [0xC2 0x0C ] */ transpose 12 +/* 0x5D3C [0x7E 0x20 0x41 ] */ notedv PITCH_B5, 32, 65 +/* 0x5D3F [0xFF ] */ end + +.channel CHAN_5D40 +/* 0x5D40 [0xC1 0x15 ] */ instr SF0_INST_21 +/* 0x5D42 [0xED 0x19 ] */ gain 25 +/* 0x5D44 [0x88 0x5D 0x4B ] */ ldlayer 0, LAYER_5D4B +/* 0x5D47 [0x89 0x5D 0x51 ] */ ldlayer 1, LAYER_5D51 +/* 0x5D4A [0xFF ] */ end + +.layer LAYER_5D4B +/* 0x5D4B [0xC0 0x2A ] */ ldelay 42 +/* 0x5D4D [0xCB 0x66 0xA0 0xFB ] */ env ENVELOPE_66A0, 251 +.layer LAYER_5D51 +/* 0x5D51 [0xC2 0x30 ] */ transpose 48 +/* 0x5D53 [0x67 0x00 0x73 ] */ notedv PITCH_C4, 0, 115 +/* 0x5D56 [0xFF ] */ end + +.channel CHAN_5D57 +/* 0x5D57 [0x88 0x5D 0x5B ] */ ldlayer 0, LAYER_5D5B +/* 0x5D5A [0xFF ] */ end + +.layer LAYER_5D5B +/* 0x5D5B [0xC6 0x7F ] */ instr FONTANY_INSTR_DRUM +/* 0x5D5D [0x41 0x48 0x46 ] */ notedv PITCH_BF0, 72, 70 +/* 0x5D60 [0xFF ] */ end + +.channel CHAN_5D61 +/* 0x5D61 [0xC1 0x5A ] */ instr SF0_INST_90 +/* 0x5D63 [0x88 0x5D 0x67 ] */ ldlayer 0, LAYER_5D67 +/* 0x5D66 [0xFF ] */ end + +.layer LAYER_5D67 +/* 0x5D67 [0x67 0x39 0x6E ] */ notedv PITCH_C4, 57, 110 +/* 0x5D6A [0xFF ] */ end + +.channel CHAN_5D6B +/* 0x5D6B [0xC1 0x7F ] */ instr FONTANY_INSTR_DRUM +/* 0x5D6D [0x88 0x5D 0x71 ] */ ldlayer 0, LAYER_5D71 +/* 0x5D70 [0xFF ] */ end + +.layer LAYER_5D71 +/* 0x5D71 [0x40 0x48 0x46 ] */ notedv PITCH_A0, 72, 70 +/* 0x5D74 [0xF4 0xFB ] */ rjump LAYER_5D71 + +.channel CHAN_5D76 +/* 0x5D76 [0x88 0x5D 0x84 ] */ ldlayer 0, LAYER_5D84 +/* 0x5D79 [0x89 0x5D 0x7D ] */ ldlayer 1, LAYER_5D7D +/* 0x5D7C [0xFF ] */ end + +.layer LAYER_5D7D +/* 0x5D7D [0xFC 0x5D 0x95 ] */ call LAYER_5D95 +/* 0x5D80 [0x5B 0x10 0x64 ] */ notedv PITCH_C3, 16, 100 +/* 0x5D83 [0xFF ] */ end + +.layer LAYER_5D84 +/* 0x5D84 [0xFC 0x5D 0x8E ] */ call LAYER_5D8E +/* 0x5D87 [0x5B 0x08 0x2E ] */ notedv PITCH_C3, 8, 46 +/* 0x5D8A [0x67 0x1C 0x24 ] */ notedv PITCH_C4, 28, 36 +/* 0x5D8D [0xFF ] */ end + +.layer LAYER_5D8E +/* 0x5D8E [0xC6 0x82 ] */ instr FONTANY_INSTR_SINE +/* 0x5D90 [0xCB 0x66 0x4C 0xFB ] */ env ENVELOPE_664C, 251 +/* 0x5D94 [0xFF ] */ end + +.layer LAYER_5D95 +/* 0x5D95 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x5D97 [0xCB 0x66 0x7C 0xE8 ] */ env ENVELOPE_667C, 232 +/* 0x5D9B [0xC2 0x24 ] */ transpose 36 +/* 0x5D9D [0xFF ] */ end + +.channel CHAN_5D9E +/* 0x5D9E [0x88 0x5D 0xA5 ] */ ldlayer 0, LAYER_5DA5 +/* 0x5DA1 [0x89 0x5D 0xB1 ] */ ldlayer 1, LAYER_5DB1 +/* 0x5DA4 [0xFF ] */ end + +.layer LAYER_5DA5 +/* 0x5DA5 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x5DA7 [0xCB 0x66 0x10 0xE8 ] */ env ENVELOPE_6610, 232 +/* 0x5DAB [0xC2 0x24 ] */ transpose 36 +/* 0x5DAD [0x5F 0x1E 0x5F ] */ notedv PITCH_E3, 30, 95 +/* 0x5DB0 [0xFF ] */ end + +.layer LAYER_5DB1 +/* 0x5DB1 [0xFC 0x5D 0x8E ] */ call LAYER_5D8E +/* 0x5DB4 [0x69 0x06 0x32 ] */ notedv PITCH_D4, 6, 50 +/* 0x5DB7 [0x6B 0x18 0x32 ] */ notedv PITCH_E4, 24, 50 +/* 0x5DBA [0xFF ] */ end + +.channel CHAN_5DBB +/* 0x5DBB [0x88 0x5D 0xC2 ] */ ldlayer 0, LAYER_5DC2 +/* 0x5DBE [0x89 0x5D 0xCE ] */ ldlayer 1, LAYER_5DCE +/* 0x5DC1 [0xFF ] */ end + +.layer LAYER_5DC2 +/* 0x5DC2 [0xC2 0x24 ] */ transpose 36 +LAYER_5DC4: +/* 0x5DC4 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x5DC6 [0xCB 0x66 0x10 0xE8 ] */ env ENVELOPE_6610, 232 +/* 0x5DCA [0x64 0x60 0x70 ] */ notedv PITCH_A3, 96, 112 +/* 0x5DCD [0xFF ] */ end + +.layer LAYER_5DCE +/* 0x5DCE [0xFC 0x5D 0x8E ] */ call LAYER_5D8E +/* 0x5DD1 [0x69 0x06 0x32 ] */ notedv PITCH_D4, 6, 50 +/* 0x5DD4 [0x6E 0x06 0x32 ] */ notedv PITCH_G4, 6, 50 +/* 0x5DD7 [0x70 0x18 0x32 ] */ notedv PITCH_A4, 24, 50 +/* 0x5DDA [0xFF ] */ end + +.channel CHAN_5DDB +/* 0x5DDB [0x88 0x5D 0xE2 ] */ ldlayer 0, LAYER_5DE2 +/* 0x5DDE [0x89 0x5D 0xE6 ] */ ldlayer 1, LAYER_5DE6 +/* 0x5DE1 [0xFF ] */ end + +.layer LAYER_5DE2 +/* 0x5DE2 [0xC2 0x18 ] */ transpose 24 +/* 0x5DE4 [0xF4 0xDE ] */ rjump LAYER_5DC4 + +.layer LAYER_5DE6 +/* 0x5DE6 [0xFC 0x5D 0x8E ] */ call LAYER_5D8E +/* 0x5DE9 [0x70 0x06 0x32 ] */ notedv PITCH_A4, 6, 50 +/* 0x5DEC [0x6B 0x06 0x32 ] */ notedv PITCH_E4, 6, 50 +/* 0x5DEF [0x64 0x18 0x32 ] */ notedv PITCH_A3, 24, 50 +/* 0x5DF2 [0xFF ] */ end + +.channel CHAN_5DF3 +/* 0x5DF3 [0x88 0x5D 0xF7 ] */ ldlayer 0, LAYER_5DF7 +/* 0x5DF6 [0xFF ] */ end + +.layer LAYER_5DF7 +/* 0x5DF7 [0xC6 0x82 ] */ instr FONTANY_INSTR_SINE +/* 0x5DF9 [0xCB 0x67 0x18 0xF0 ] */ env ENVELOPE_6718, 240 +/* 0x5DFD [0x59 0x09 0x46 ] */ notedv PITCH_BF2, 9, 70 +/* 0x5E00 [0x58 0x09 0x46 ] */ notedv PITCH_A2, 9, 70 +/* 0x5E03 [0x59 0x09 0x46 ] */ notedv PITCH_BF2, 9, 70 +/* 0x5E06 [0x58 0x18 0x46 ] */ notedv PITCH_A2, 24, 70 +/* 0x5E09 [0xFF ] */ end + +.channel CHAN_5E0A +/* 0x5E0A [0x88 0x14 0x38 ] */ ldlayer 0, LAYER_1438 +/* 0x5E0D [0x89 0x0B 0x1D ] */ ldlayer 1, LAYER_0B1D +/* 0x5E10 [0x8A 0x0A 0x6E ] */ ldlayer 2, LAYER_0A6E +/* 0x5E13 [0xFF ] */ end + +.channel CHAN_5E14 +/* 0x5E14 [0x88 0x14 0x38 ] */ ldlayer 0, LAYER_1438 +/* 0x5E17 [0x89 0x0B 0x47 ] */ ldlayer 1, LAYER_0B47 +/* 0x5E1A [0x8A 0x0B 0x41 ] */ ldlayer 2, LAYER_0B41 +/* 0x5E1D [0xFF ] */ end + +.channel CHAN_5E1E +/* 0x5E1E [0x88 0x14 0x38 ] */ ldlayer 0, LAYER_1438 +/* 0x5E21 [0x89 0x0B 0x6D ] */ ldlayer 1, LAYER_0B6D +/* 0x5E24 [0x8A 0x0B 0x67 ] */ ldlayer 2, LAYER_0B67 +/* 0x5E27 [0xFF ] */ end + +.channel CHAN_5E28 +/* 0x5E28 [0x88 0x5E 0x2C ] */ ldlayer 0, LAYER_5E2C +/* 0x5E2B [0xFF ] */ end + +.layer LAYER_5E2C +/* 0x5E2C [0xC2 0x0C ] */ transpose 12 +/* 0x5E2E [0xFB 0x14 0x38 ] */ jump LAYER_1438 + +.channel CHAN_5E31 +/* 0x5E31 [0x88 0x5E 0x35 ] */ ldlayer 0, LAYER_5E35 +/* 0x5E34 [0xFF ] */ end + +.layer LAYER_5E35 +/* 0x5E35 [0xC6 0x7F ] */ instr FONTANY_INSTR_DRUM +/* 0x5E37 [0xCF 0x96 ] */ releaserate 150 +/* 0x5E39 [0x41 0x24 0x46 ] */ notedv PITCH_BF0, 36, 70 +/* 0x5E3C [0xFF ] */ end + +.channel CHAN_5E3D +/* 0x5E3D [0xC1 0x54 ] */ instr SF0_INST_84 +/* 0x5E3F [0xDA 0x66 0x60 ] */ env ENVELOPE_6660 +/* 0x5E42 [0xD9 0xFA ] */ releaserate 250 +/* 0x5E44 [0x88 0x5E 0x51 ] */ ldlayer 0, LAYER_5E51 +/* 0x5E47 [0x89 0x5E 0x4B ] */ ldlayer 1, LAYER_5E4B +/* 0x5E4A [0xFF ] */ end + +.layer LAYER_5E4B +/* 0x5E4B [0xC0 0x05 ] */ ldelay 5 +/* 0x5E4D [0xCA 0x5E ] */ notepan 94 +/* 0x5E4F [0xF4 0x02 ] */ rjump LAYER_5E53 + +.layer LAYER_5E51 +/* 0x5E51 [0xCA 0x22 ] */ notepan 34 +LAYER_5E53: +/* 0x5E53 [0xC2 0x0C ] */ transpose 12 +/* 0x5E55 [0x6C 0x0C 0x55 ] */ notedv PITCH_F4, 12, 85 +/* 0x5E58 [0x71 0x0C 0x55 ] */ notedv PITCH_BF4, 12, 85 +/* 0x5E5B [0x76 0x0C 0x55 ] */ notedv PITCH_EF5, 12, 85 +/* 0x5E5E [0x7D 0x0C 0x55 ] */ notedv PITCH_BF5, 12, 85 +/* 0x5E61 [0x78 0x18 0x55 ] */ notedv PITCH_F5, 24, 85 +/* 0x5E64 [0x78 0x18 0x2D ] */ notedv PITCH_F5, 24, 45 +/* 0x5E67 [0x78 0x18 0x19 ] */ notedv PITCH_F5, 24, 25 +/* 0x5E6A [0xFF ] */ end + +.channel CHAN_5E6B +/* 0x5E6B [0x88 0x5E 0x6F ] */ ldlayer 0, LAYER_5E6F +/* 0x5E6E [0xFF ] */ end + +.layer LAYER_5E6F +/* 0x5E6F [0xC6 0x82 ] */ instr FONTANY_INSTR_SINE +/* 0x5E71 [0xCB 0x66 0xD0 0xF8 ] */ env ENVELOPE_66D0, 248 +/* 0x5E75 [0x65 0x0C 0x50 ] */ notedv PITCH_BF3, 12, 80 +/* 0x5E78 [0x60 0x0C 0x50 ] */ notedv PITCH_F3, 12, 80 +/* 0x5E7B [0x69 0x0C 0x50 ] */ notedv PITCH_D4, 12, 80 +/* 0x5E7E [0x6A 0x0C 0x50 ] */ notedv PITCH_EF4, 12, 80 +/* 0x5E81 [0x6C 0x18 0x50 ] */ notedv PITCH_F4, 24, 80 +/* 0x5E84 [0x6C 0x18 0x28 ] */ notedv PITCH_F4, 24, 40 +/* 0x5E87 [0xFF ] */ end + +.channel CHAN_5E88 +/* 0x5E88 [0x88 0x5E 0x8C ] */ ldlayer 0, LAYER_5E8C +/* 0x5E8B [0xFF ] */ end + +.layer LAYER_5E8C +/* 0x5E8C [0xC6 0x82 ] */ instr FONTANY_INSTR_SINE +/* 0x5E8E [0xCB 0x67 0x20 0xF6 ] */ env ENVELOPE_6720, 246 +/* 0x5E92 [0xC7 0x83 0x20 0x7F ] */ portamento 0x83, PITCH_F3, 127 +/* 0x5E96 [0x67 0x08 0x50 ] */ notedv PITCH_C4, 8, 80 +/* 0x5E99 [0x73 0x0C 0x50 ] */ notedv PITCH_C5, 12, 80 +/* 0x5E9C [0xFF ] */ end + +.channel ocarinabank_handler_1 +/* 0x5E9D [0xC2 0x5E 0xE5 ] */ dyntbl ocarinabank_table +/* 0x5EA0 [0xC4 ] */ noshort +/* 0x5EA1 [0xC6 0x00 ] */ font Soundfont_0_ID +/* 0x5EA3 [0xDC 0x7F ] */ panweight 127 +/* 0x5EA5 [0xCA 0x00 ] */ mutebhv 0x00 +/* 0x5EA7 [0xD0 0x80 ] */ effects TRUE, 0, 0, 0, 0, 0 +/* 0x5EA9 [0xE9 0x0E ] */ notepri 0, 14 +CHAN_5EAB: +/* 0x5EAB [0xFE ] */ delay1 +/* 0x5EAC [0x61 ] */ ldio IO_PORT_1 +/* 0x5EAD [0xF2 0x0B ] */ rbltz CHAN_5EBA +/* 0x5EAF [0xF3 0x06 ] */ rbeqz CHAN_5EB7 +/* 0x5EB1 [0xF1 0x01 ] */ allocnotelist 1 +/* 0x5EB3 [0xD1 0x02 ] */ notealloc 2 +/* 0x5EB5 [0xF4 0x03 ] */ rjump CHAN_5EBA + +CHAN_5EB7: +/* 0x5EB7 [0xF0 ] */ freenotelist +/* 0x5EB8 [0xD1 0x00 ] */ notealloc 0 +CHAN_5EBA: +/* 0x5EBA [0x60 ] */ ldio IO_PORT_0 +/* 0x5EBB [0xC8 0x01 ] */ sub 1 +/* 0x5EBD [0xF3 0x02 ] */ rbeqz CHAN_5EC1 +/* 0x5EBF [0xF4 0xEA ] */ rjump CHAN_5EAB + +CHAN_5EC1: +/* 0x5EC1 [0xD8 0x00 ] */ vibdepth 0 +/* 0x5EC3 [0xE5 0x00 ] */ reverbidx 0 +/* 0x5EC5 [0x90 ] */ dellayer 0 +/* 0x5EC6 [0xCC 0x00 ] */ ldi 0 +/* 0x5EC8 [0x76 ] */ stio IO_PORT_6 +/* 0x5EC9 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x5ECA [0xE4 ] */ dyncall +CHAN_5ECB: +/* 0x5ECB [0x62 ] */ ldio IO_PORT_2 +/* 0x5ECC [0xF2 0x06 ] */ rbltz CHAN_5ED4 +/* 0x5ECE [0xC7 0x00 0x5E 0xD3 ] */ stseq 0, STSEQ_HERE + STSEQ_VOL +/* 0x5ED2 [0xDF 0x7F ] */ vol 127 +CHAN_5ED4: +/* 0x5ED4 [0xFE ] */ delay1 +/* 0x5ED5 [0x60 ] */ ldio IO_PORT_0 +/* 0x5ED6 [0xF3 0x0A ] */ rbeqz CHAN_5EE2 +/* 0x5ED8 [0xF2 0x02 ] */ rbltz CHAN_5EDC +/* 0x5EDA [0xF4 0xE5 ] */ rjump CHAN_5EC1 + +CHAN_5EDC: +/* 0x5EDC [0x80 ] */ testlayer 0 +/* 0x5EDD [0xF3 0xEC ] */ rbeqz CHAN_5ECB +/* 0x5EDF [0xCC 0xFF ] */ ldi 255 +/* 0x5EE1 [0x71 ] */ stio IO_PORT_1 +CHAN_5EE2: +/* 0x5EE2 [0x90 ] */ dellayer 0 +/* 0x5EE3 [0xF4 0xC6 ] */ rjump CHAN_5EAB + +#define DEFINE_SFX(lblName, sfxId, priority, decay, rand, flags) \ + entry lblName + +.table_unaligned ocarinabank_table + #include "ocarinabank_table.h" + +#undef DEFINE_SFX + +.channel CHAN_5EF5 +/* 0x5EF5 [0xCC 0x50 ] */ ldi 80 +/* 0x5EF7 [0x71 ] */ stio IO_PORT_1 +/* 0x5EF8 [0x67 ] */ ldio IO_PORT_7 +/* 0x5EF9 [0xC9 0x07 ] */ and 7 +/* 0x5EFB [0xCB 0x5F 0x30 ] */ ldseq UNK_5F30 +/* 0x5EFE [0xC7 0x00 0x5F 0x0D ] */ stseq 0, CHAN_5F0C + STSEQ_INSTR +/* 0x5F02 [0x67 ] */ ldio IO_PORT_7 +/* 0x5F03 [0xC9 0x07 ] */ and 7 +/* 0x5F05 [0xCB 0x5F 0x38 ] */ ldseq UNK_5F38 +/* 0x5F08 [0xC7 0x00 0x5F 0x2E ] */ stseq 0, LAYER_5F2B + STSEQ_NOTEDV_VELOCITY +CHAN_5F0C: +/* 0x5F0C [0xC1 0x34 ] */ instr SF0_INST_52 +/* 0x5F0E [0x65 ] */ ldio IO_PORT_SFX_INDEX_HIBITS +/* 0x5F0F [0xF2 0x04 ] */ rbltz CHAN_5F15 +/* 0x5F11 [0xC7 0x00 0x5F 0x2A ] */ stseq 0, LAYER_5F29 + STSEQ_TRANSPOSITION +CHAN_5F15: +/* 0x5F15 [0x88 0x5F 0x28 ] */ ldlayer 0, LAYER_5F28 +CHAN_5F18: +/* 0x5F18 [0x66 ] */ ldio IO_PORT_6 +/* 0x5F19 [0xF2 0x06 ] */ rbltz CHAN_5F21 +/* 0x5F1B [0xC7 0x00 0x5F 0x20 ] */ stseq 0, STSEQ_HERE + STSEQ_VIBDEPTH +/* 0x5F1F [0xD8 0x00 ] */ vibdepth 0 +CHAN_5F21: +/* 0x5F21 [0xCC 0x01 ] */ ldi 1 +/* 0x5F23 [0xFC 0x00 0x48 ] */ call CHAN_0048 +/* 0x5F26 [0xF4 0xF0 ] */ rjump CHAN_5F18 + +.layer LAYER_5F28 +/* 0x5F28 [0xC4 ] */ legato +LAYER_5F29: +/* 0x5F29 [0xC2 0x00 ] */ transpose 0 +LAYER_5F2B: +/* 0x5F2B [0x67 0x81 0xE0 0x7F ] */ notedv PITCH_C4, 480, 127 +/* 0x5F2F [0xFF ] */ end + +UNK_5F30: + .byte 0x34, 0x55, 0x56, 0x59, 0x53, 0x52, 0x34, 0x34 + +UNK_5F38: + .byte 0x73, 0x73, 0x64, 0x73, 0x64, 0x73, 0x73, 0x73 + +.channel CHAN_5F40 +/* 0x5F40 [0xCC 0x81 ] */ ldi 129 +CHAN_5F42: +/* 0x5F42 [0xD7 0x40 ] */ vibfreq 64 +/* 0x5F44 [0xE2 0x04 0x08 0x08 ] */ vibdepthgrad 4, 8, 8 +/* 0x5F48 [0xC7 0x00 0x5F 0x5D ] */ stseq 0/* portamento mode */, LAYER_5F5C + STSEQ_PORTAMENTO_MODE +/* 0x5F4C [0xC1 0x40 ] */ instr SF0_INST_64 +/* 0x5F4E [0xDA 0x66 0xFC ] */ env ENVELOPE_66FC +/* 0x5F51 [0xD9 0xF0 ] */ releaserate 240 +/* 0x5F53 [0x88 0x5F 0x5A ] */ ldlayer 0, LAYER_5F5A +/* 0x5F56 [0x89 0x5F 0x5C ] */ ldlayer 1, LAYER_5F5C +/* 0x5F59 [0xFF ] */ end + +.layer LAYER_5F5A +/* 0x5F5A [0xC2 0x18 ] */ transpose 24 +.layer LAYER_5F5C +/* 0x5F5C [0xC7 0x81 0x0F 0xFF ] */ portamento 0x81, PITCH_C2, 255 +/* 0x5F60 [0x62 0x80 0x8C 0x50 ] */ notedv PITCH_G3, 140, 80 +/* 0x5F64 [0xFF ] */ end + +.channel CHAN_5F65 +/* 0x5F65 [0xCC 0x82 ] */ ldi 130 +/* 0x5F67 [0xF4 0xD9 ] */ rjump CHAN_5F42 + +.channel CHAN_5F69 +/* 0x5F69 [0xCC 0x50 ] */ ldi 80 +/* 0x5F6B [0xC7 0x00 0x5F 0x91 ] */ stseq 0, LAYER_5F90 + STSEQ_NOTEDV_DELAY_HI +/* 0x5F6F [0xCC 0x81 ] */ ldi 129 +CHAN_5F71: +/* 0x5F71 [0xC7 0x00 0x5F 0x8D ] */ stseq 0/* portamento mode */, LAYER_5F8C + STSEQ_PORTAMENTO_MODE +/* 0x5F75 [0xCC 0x14 ] */ ldi 20 +/* 0x5F77 [0x71 ] */ stio IO_PORT_1 +/* 0x5F78 [0xED 0x0F ] */ gain 15 +/* 0x5F7A [0x88 0x5F 0x84 ] */ ldlayer 0, LAYER_5F84 +/* 0x5F7D [0xD7 0x08 ] */ vibfreq 8 +/* 0x5F7F [0xE2 0x04 0x28 0x08 ] */ vibdepthgrad 4, 40, 8 +/* 0x5F83 [0xFF ] */ end + +.layer LAYER_5F84 +/* 0x5F84 [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x5F86 [0xC2 0x30 ] */ transpose 48 +/* 0x5F88 [0xCB 0x67 0x40 0xFB ] */ env ENVELOPE_6740, 251 +LAYER_5F8C: +/* 0x5F8C [0xC7 0x81 0x20 0xE0 ] */ portamento 0x81, PITCH_F3, 224 +LAYER_5F90: +/* 0x5F90 [0x50 0x50 0x69 ] */ notedv PITCH_DF2, 80, 105 +/* 0x5F93 [0xC0 0x60 ] */ ldelay 96 +/* 0x5F95 [0xFF ] */ end + +.channel CHAN_5F96 +/* 0x5F96 [0xCC 0x28 ] */ ldi 40 +/* 0x5F98 [0xC7 0x00 0x5F 0x91 ] */ stseq 0, LAYER_5F90 + STSEQ_NOTEDV_DELAY_HI +/* 0x5F9C [0xCC 0x82 ] */ ldi 130 +/* 0x5F9E [0xF4 0xD1 ] */ rjump CHAN_5F71 + +.channel voicebank_handler_1 +/* 0x5FA0 [0xB0 0x65 0xB0 ] */ ldfilter FILTER_65B0 +/* 0x5FA3 [0xF4 0x03 ] */ rjump CHAN_5FA8 + +.channel voicebank_handler_2 +/* 0x5FA5 [0xB0 0x65 0xC0 ] */ ldfilter FILTER_65C0 +CHAN_5FA8: +/* 0x5FA8 [0xFC 0x00 0x72 ] */ call CHAN_0072 +/* 0x5FAB [0xC1 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x5FAD [0xDA 0x65 0xD0 ] */ env ENVELOPE_65D0 +/* 0x5FB0 [0xD9 0xFB ] */ releaserate 251 +/* 0x5FB2 [0xD3 0x00 ] */ bend 0 +/* 0x5FB4 [0xB3 0x00 ] */ filter 0, 0 +/* 0x5FB6 [0xD0 0x80 ] */ effects TRUE, 0, 0, 0, 0, 0 +/* 0x5FB8 [0xF1 0x01 ] */ allocnotelist 1 +CHAN_5FBA: +/* 0x5FBA [0xFE ] */ delay1 +/* 0x5FBB [0x60 ] */ ldio IO_PORT_0 +/* 0x5FBC [0xC8 0x01 ] */ sub 1 +/* 0x5FBE [0xF3 0x02 ] */ rbeqz CHAN_5FC2 +/* 0x5FC0 [0xF4 0xF8 ] */ rjump CHAN_5FBA + +CHAN_5FC2: +/* 0x5FC2 [0x90 ] */ dellayer 0 +/* 0x5FC3 [0x91 ] */ dellayer 1 +/* 0x5FC4 [0xCC 0x00 ] */ ldi 0 +/* 0x5FC6 [0x71 ] */ stio IO_PORT_1 +/* 0x5FC7 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x5FC8 [0xF5 0x5F 0xD2 ] */ bgez CHAN_5FD2 +/* 0x5FCB [0xC9 0x7F ] */ and 127 +/* 0x5FCD [0xC2 0x60 0xF2 ] */ dyntbl voicebank_table + 2 * 1 * 128 //! @bug this label points out of bounds of the table +/* 0x5FD0 [0xF4 0x03 ] */ rjump CHAN_5FD5 + +CHAN_5FD2: +/* 0x5FD2 [0xC2 0x5F 0xF2 ] */ dyntbl voicebank_table + 2 * 0 * 128 +CHAN_5FD5: +/* 0x5FD5 [0xE4 ] */ dyncall +CHAN_5FD6: +/* 0x5FD6 [0x63 ] */ ldio IO_PORT_3 +/* 0x5FD7 [0xC7 0x00 0x5F 0xDC ] */ stseq 0, STSEQ_HERE + STSEQ_FILTER_IDX +/* 0x5FDB [0xB3 0x0F ] */ filter 0, 15 +/* 0x5FDD [0xFC 0x00 0x84 ] */ call CHAN_0084 +/* 0x5FE0 [0xFE ] */ delay1 +/* 0x5FE1 [0x60 ] */ ldio IO_PORT_0 +/* 0x5FE2 [0xF3 0x0A ] */ rbeqz CHAN_5FEE +/* 0x5FE4 [0xF2 0x02 ] */ rbltz CHAN_5FE8 +/* 0x5FE6 [0xF4 0xDA ] */ rjump CHAN_5FC2 + +CHAN_5FE8: +/* 0x5FE8 [0x80 ] */ testlayer 0 +/* 0x5FE9 [0xF3 0xEB ] */ rbeqz CHAN_5FD6 +/* 0x5FEB [0xCC 0xFF ] */ ldi 255 +/* 0x5FED [0x71 ] */ stio IO_PORT_1 +CHAN_5FEE: +/* 0x5FEE [0x90 ] */ dellayer 0 +/* 0x5FEF [0x91 ] */ dellayer 1 +/* 0x5FF0 [0xF4 0xC8 ] */ rjump CHAN_5FBA + +#define DEFINE_SFX(lblName, sfxId, priority, decay, rand, flags) \ + entry lblName + +.table voicebank_table + #include "voicebank_table.h" + +#undef DEFINE_SFX + +.channel CHAN_60F2 +/* 0x60F2 [0xC7 0x00 0x61 0x32 ] */ stseq 0, CHAN_6131 + STSEQ_RAND +/* 0x60F6 [0xC7 0x00 0x61 0x12 ] */ stseq 0, CHAN_6111 + STSEQ_SUB_IMM +/* 0x60FA [0xCC 0x00 ] */ ldi 0 +/* 0x60FC [0xC7 0x00 0x61 0x2E ] */ stseq 0, LAYER_612D + STSEQ_NOTEDV_DELAY_HI +/* 0x6100 [0xFC 0x61 0x31 ] */ call CHAN_6131 +/* 0x6103 [0x56 ] */ subio IO_PORT_6 +/* 0x6104 [0xF3 0x05 ] */ rbeqz CHAN_610B +/* 0x6106 [0xFC 0x61 0x31 ] */ call CHAN_6131 +/* 0x6109 [0xF4 0x0B ] */ rjump CHAN_6116 + +CHAN_610B: +/* 0x610B [0xFC 0x61 0x31 ] */ call CHAN_6131 +/* 0x610E [0xC8 0xFF ] */ sub 255 +/* 0x6110 [0x76 ] */ stio IO_PORT_6 +CHAN_6111: +/* 0x6111 [0xC8 0x00 ] */ sub 0 +/* 0x6113 [0xF3 0x01 ] */ rbeqz CHAN_6116 +/* 0x6115 [0x66 ] */ ldio IO_PORT_6 +CHAN_6116: +/* 0x6116 [0x3E 0x06 ] */ stcio 14, IO_PORT_6 +/* 0x6118 [0x3F 0x06 ] */ stcio 15, IO_PORT_6 +CHAN_611A: +/* 0x611A [0xCB 0x61 0x6D ] */ ldseq UNK_616D +/* 0x611D [0xC7 0x40 0x61 0x2D ] */ stseq (NOTEDV_OPCODE | PITCH_A0), LAYER_612D + STSEQ_NOTEDV_OPCODE_PITCH +/* 0x6121 [0x66 ] */ ldio IO_PORT_6 +CHAN_6122: +/* 0x6122 [0xCB 0x61 0x71 ] */ ldseq UNK_6171 +CHAN_6125: +/* 0x6125 [0xC7 0x00 0x61 0x2F ] */ stseq 0, LAYER_612D + STSEQ_NOTEDV_VELOCITY_2 +/* 0x6129 [0x88 0x61 0x2D ] */ ldlayer 0, LAYER_612D +.channel CHAN_612C +/* 0x612C [0xFF ] */ end + +.layer LAYER_612D +/* 0x612D [0x40 0x00 0x7F ] */ notedv PITCH_A0, 0, 127 +/* 0x6130 [0xFF ] */ end + +.channel CHAN_6131 +/* 0x6131 [0xB8 0x00 ] */ rand 0 +/* 0x6133 [0xFF ] */ end + +CHAN_6134: +/* 0x6134 [0x76 ] */ stio IO_PORT_6 +/* 0x6135 [0xCC 0x00 ] */ ldi 0 +/* 0x6137 [0xC7 0x00 0x61 0x2E ] */ stseq 0, LAYER_612D + STSEQ_NOTEDV_DELAY_HI +/* 0x613B [0x66 ] */ ldio IO_PORT_6 +/* 0x613C [0xF4 0xDC ] */ rjump CHAN_611A + +CHAN_613E: +/* 0x613E [0xCC 0x00 ] */ ldi 0 +/* 0x6140 [0xC7 0x00 0x61 0x2E ] */ stseq 0, LAYER_612D + STSEQ_NOTEDV_DELAY_HI + // Transfers the held pointer to the dyntable pointer +/* 0x6144 [0xB4 ] */ ptrtodyntbl + // Load 0 into TR +/* 0x6145 [0xCC 0x00 ] */ ldi 0 + // Reads the byte at (PTR + 0) into TR (the note) +/* 0x6147 [0xB6 ] */ dyntblv + // Store NOTEDV_OPCODE + TR into the pitch +/* 0x6148 [0xC7 0x40 0x61 0x2D ] */ stseq (NOTEDV_OPCODE | PITCH_A0), LAYER_612D + STSEQ_NOTEDV_OPCODE_PITCH + // Load 1 into TR +/* 0x614C [0xCC 0x01 ] */ ldi 1 + // Reads the byte at (PTR + 1) into TR (the velocity) +/* 0x614E [0xB6 ] */ dyntblv +/* 0x614F [0xF4 0xD4 ] */ rjump CHAN_6125 + +CHAN_6151: +/* 0x6151 [0xC7 0x00 0x61 0x2E ] */ stseq 0, LAYER_612D + STSEQ_NOTEDV_DELAY_HI +/* 0x6155 [0x66 ] */ ldio IO_PORT_6 +/* 0x6156 [0xC8 0xFF ] */ sub 255 +/* 0x6158 [0xC9 0x01 ] */ and 1 +/* 0x615A [0x76 ] */ stio IO_PORT_6 +/* 0x615B [0xF4 0xBD ] */ rjump CHAN_611A + +.channel CHAN_615D +/* 0x615D [0xCE 0x61 0x6D ] */ ldptr UNK_616D +/* 0x6160 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x6163 [0xCE 0x61 0x71 ] */ ldptr UNK_6171 +/* 0x6166 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x6169 [0xCC 0x04 ] */ ldi 4 +/* 0x616B [0xF4 0x85 ] */ rjump CHAN_60F2 + +UNK_616D: + .byte 0x00, 0x01, 0x02, 0x03 + +UNK_6171: + .byte 0x69, 0x69, 0x69, 0x69 + +.channel CHAN_6175 +/* 0x6175 [0xCE 0x61 0x97 ] */ ldptr UNK_6197 +/* 0x6178 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x617B [0xCE 0x61 0x99 ] */ ldptr UNK_6199 +/* 0x617E [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x6181 [0xB8 0x02 ] */ rand 2 +/* 0x6183 [0xF4 0xAF ] */ rjump CHAN_6134 + +.channel CHAN_6185 //! Unreachable code? +/* 0x6185 [0x56 ] */ subio IO_PORT_6 +/* 0x6186 [0xF3, 0x04 ] */ rbeqz CHAN_618C +/* 0x6188 [0xB8, 0x02 ] */ rand 2 +/* 0x618A [0xF4, 0x0A ] */ rjump CHAN_6196 +CHAN_618C: +/* 0x618C [0xB8, 0x02 ] */ rand 2 +/* 0x618E [0xC8, 0xFF ] */ sub 255 +/* 0x6190 [0x76 ] */ stio IO_PORT_6 +/* 0x6191 [0xC8, 0x02 ] */ sub 2 +/* 0x6193 [0xF3, 0x01 ] */ rbeqz CHAN_6196 +/* 0x6195 [0x66 ] */ ldio IO_PORT_6 +CHAN_6196: +/* 0x6196 [0x76 ] */ stio IO_PORT_6 + +UNK_6197: + .byte 0x04, 0x05 + +UNK_6199: + .byte 0x6E, 0x6E + +.channel CHAN_619B +/* 0x619B [0xCE 0x61 0xBD ] */ ldptr UNK_61BD +/* 0x619E [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x61A1 [0xCE 0x61 0xBF ] */ ldptr UNK_61BF +/* 0x61A4 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x61A7 [0xB8 0x02 ] */ rand 2 +/* 0x61A9 [0xF4 0x89 ] */ rjump CHAN_6134 + +.channel CHAN_61AB //! Unreachable code? +/* 0x61AB [0x56 ] */ subio IO_PORT_6 +/* 0x61AC [0xF3, 0x04 ] */ rbeqz CHAN_61B2 +/* 0x61AE [0xB8, 0x02 ] */ rand 2 +/* 0x61B0 [0xF4, 0x0A ] */ rjump CHAN_61BC +CHAN_61B2: +/* 0x61B2 [0xB8, 0x02 ] */ rand 2 +/* 0x61B4 [0xC8, 0xFF ] */ sub 255 +/* 0x61B6 [0x76 ] */ stio IO_PORT_6 +/* 0x61B7 [0xC8, 0x02 ] */ sub 2 +/* 0x61B9 [0xF3, 0x01 ] */ rbeqz CHAN_61BC +/* 0x61BB [0x66 ] */ ldio IO_PORT_6 +CHAN_61BC: +/* 0x61BC [0x76 ] */ stio IO_PORT_6 + +UNK_61BD: + .byte 0x15, 0x16 + +UNK_61BF: + .byte 0x69, 0x69 + +.channel CHAN_61C1 +/* 0x61C1 [0xCE 0x61 0xD1 ] */ ldptr UNK_61D1 +/* 0x61C4 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x61C7 [0xCE 0x61 0xD3 ] */ ldptr UNK_61D3 +/* 0x61CA [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x61CD [0xCC 0x00 ] */ ldi 0 +/* 0x61CF [0xF4 0x80 ] */ rjump CHAN_6151 + +UNK_61D1: + .byte 0x06, 0x19 + +UNK_61D3: + .byte 0x5F, 0x69 + +.channel CHAN_61D5 +/* 0x61D5 [0xCE 0x61 0xE6 ] */ ldptr UNK_61E6 +/* 0x61D8 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x61DB [0xCE 0x61 0xE8 ] */ ldptr UNK_61E8 +/* 0x61DE [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x61E1 [0xB8 0x02 ] */ rand 2 +/* 0x61E3 [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +UNK_61E6: + .byte 0x07, 0x08 + +UNK_61E8: + .byte 0x48, 0x50 + +.channel CHAN_61EA +/* 0x61EA [0xCE 0x61 0xFB ] */ ldptr UNK_61FB +/* 0x61ED [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x61F0 [0xCE 0x61 0xFE ] */ ldptr UNK_61FE +/* 0x61F3 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x61F6 [0xCC 0x03 ] */ ldi 3 +/* 0x61F8 [0xFB 0x60 0xF2 ] */ jump CHAN_60F2 + +UNK_61FB: + .byte 0x09, 0x0A, 0x0B + +UNK_61FE: + .byte 0x75, 0x75, 0x75 + +.channel CHAN_6201 +/* 0x6201 [0xCE 0x62 0x12 ] */ ldptr UNK_6212 +/* 0x6204 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x6207 [0xCE 0x62 0x15 ] */ ldptr UNK_6215 +/* 0x620A [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x620D [0xCC 0x03 ] */ ldi 3 +/* 0x620F [0xFB 0x60 0xF2 ] */ jump CHAN_60F2 + +UNK_6212: + .byte 0x0C, 0x0D, 0x0E + +UNK_6215: + .byte 0x71, 0x71, 0x71 + +.channel CHAN_6218 +/* 0x6218 [0xCE 0x62 0x29 ] */ ldptr UNK_6229 +/* 0x621B [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x621E [0xCE 0x62 0x2B ] */ ldptr UNK_622B +/* 0x6221 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x6224 [0xB8 0x02 ] */ rand 2 +/* 0x6226 [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +UNK_6229: + .byte 0x11, 0x12 + +UNK_622B: + .byte 0x64, 0x64 + +.channel CHAN_622D +/* 0x622D [0xCE 0x62 0x3E ] */ ldptr UNK_623E +/* 0x6230 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x6233 [0xCE 0x62 0x40 ] */ ldptr UNK_6240 +/* 0x6236 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x6239 [0xB8 0x02 ] */ rand 2 +/* 0x623B [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +UNK_623E: + .byte 0x0F, 0x10 + +UNK_6240: + .byte 0x6E, 0x6E + +.channel CHAN_6242 +/* 0x6242 [0xCE 0x62 0x53 ] */ ldptr UNK_6253 +/* 0x6245 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x6248 [0xCE 0x62 0x55 ] */ ldptr UNK_6255 +/* 0x624B [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x624E [0xB8 0x02 ] */ rand 2 +/* 0x6250 [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +UNK_6253: + .byte 0x13, 0x17 + +UNK_6255: + .byte 0x5A, 0x5A + +.channel CHAN_6257 +/* 0x6257 [0x88 0x62 0x5B ] */ ldlayer 0, LAYER_625B +/* 0x625A [0xFF ] */ end + +.layer LAYER_625B +/* 0x625B [0x78 0x00 0x60 ] */ notedv PITCH_F5, 0, 96 +/* 0x625E [0xFF ] */ end + +.channel CHAN_625F +/* 0x625F [0x88 0x62 0x63 ] */ ldlayer 0, LAYER_6263 +/* 0x6262 [0xFF ] */ end + +.layer LAYER_6263 +/* 0x6263 [0xC2 0x01 ] */ transpose 1 +/* 0x6265 [0x4D 0x57 0x64 ] */ notedv PITCH_BF1, 87, 100 +/* 0x6268 [0x4E 0x61 0x64 ] */ notedv PITCH_B1, 97, 100 +/* 0x626B [0x4F 0x47 0x64 ] */ notedv PITCH_C2, 71, 100 +/* 0x626E [0xFF ] */ end + +.channel CHAN_626F +/* 0x626F [0xCE 0x62 0x80 ] */ ldptr UNK_6280 +/* 0x6272 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x6275 [0xCE 0x62 0x82 ] */ ldptr UNK_6282 +/* 0x6278 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x627B [0xB8 0x02 ] */ rand 2 +/* 0x627D [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +UNK_6280: + .byte 0x0F, 0x10 + +UNK_6282: + .byte 0x69, 0x69 + +.channel CHAN_6284 +/* 0x6284 [0xFB 0x61 0xEA ] */ jump CHAN_61EA + +.channel CHAN_6287 +/* 0x6287 [0x88 0x62 0x8B ] */ ldlayer 0, LAYER_628B +/* 0x628A [0xFF ] */ end + +.layer LAYER_628B +/* 0x628B [0xC2 0x01 ] */ transpose 1 +/* 0x628D [0x50 0x7F 0x64 ] */ notedv PITCH_DF2, 127, 100 +/* 0x6290 [0x51 0x81 0x18 0x64 ] */ notedv PITCH_D2, 280, 100 +/* 0x6294 [0x52 0x81 0x3E 0x64 ] */ notedv PITCH_EF2, 318, 100 +/* 0x6298 [0xFF ] */ end + +.channel CHAN_6299 +/* 0x6299 [0x88 0x62 0x9D ] */ ldlayer 0, LAYER_629D +/* 0x629C [0xFF ] */ end + +.layer LAYER_629D +/* 0x629D [0xC2 0x01 ] */ transpose 1 +/* 0x629F [0x53 0x81 0x22 0x64 ] */ notedv PITCH_E2, 290, 100 +/* 0x62A3 [0x54 0x80 0xA3 0x64 ] */ notedv PITCH_F2, 163, 100 +/* 0x62A7 [0x55 0x35 0x64 ] */ notedv PITCH_GF2, 53, 100 +/* 0x62AA [0xFF ] */ end + +.channel CHAN_62AB +/* 0x62AB [0x88 0x62 0xAF ] */ ldlayer 0, LAYER_62AF +/* 0x62AE [0xFF ] */ end + +.layer LAYER_62AF +/* 0x62AF [0x77 0x50 0x50 ] */ notedv PITCH_E5, 80, 80 +/* 0x62B2 [0xF4 0xFB ] */ rjump LAYER_62AF + +.channel CHAN_62B4 +/* 0x62B4 [0x88 0x62 0xB8 ] */ ldlayer 0, LAYER_62B8 +/* 0x62B7 [0xFF ] */ end + +.layer LAYER_62B8 +/* 0x62B8 [0xC2 0x01 ] */ transpose 1 +/* 0x62BA [0x56 0x80 0xB9 0x64 ] */ notedv PITCH_G2, 185, 100 +/* 0x62BE [0x57 0x80 0x86 0x64 ] */ notedv PITCH_AF2, 134, 100 +/* 0x62C2 [0x58 0x74 0x64 ] */ notedv PITCH_A2, 116, 100 +/* 0x62C5 [0xFF ] */ end + +.channel CHAN_62C6 +/* 0x62C6 [0xCE 0x62 0xCC ] */ ldptr UNK_62CC +/* 0x62C9 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_62CC: + .byte 0x00, 0x64 + +.channel CHAN_62CE +/* 0x62CE [0x66 ] */ ldio IO_PORT_6 +/* 0x62CF [0xC8 0xFF ] */ sub 255 +/* 0x62D1 [0x76 ] */ stio IO_PORT_6 +/* 0x62D2 [0xC9 0x01 ] */ and 1 +/* 0x62D4 [0xCB 0x62 0xE8 ] */ ldseq UNK_62E8 +/* 0x62D7 [0xC7 0x40 0x64 0xBF ] */ stseq (NOTEDV_OPCODE | PITCH_A0), LAYER_64BF + STSEQ_NOTEDV_OPCODE_PITCH +/* 0x62DB [0xB8 0x02 ] */ rand 2 +/* 0x62DD [0xCB 0x62 0xEA ] */ ldseq UNK_62EA +/* 0x62E0 [0xC7 0x00 0x64 0xC1 ] */ stseq 0, LAYER_64BF + STSEQ_NOTEDV_VELOCITY_2 +/* 0x62E4 [0x88 0x64 0xBF ] */ ldlayer 0, LAYER_64BF +/* 0x62E7 [0xFF ] */ end + +UNK_62E8: + .byte 0x1A, 0x1B + +UNK_62EA: + .byte 0x50, 0x55 + +.channel CHAN_62EC +/* 0x62EC [0xCE 0x62 0xF2 ] */ ldptr UNK_62F2 +/* 0x62EF [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_62F2: + .byte 0x05, 0x6E + +.channel CHAN_62F4 +/* 0x62F4 [0x88 0x62 0xF8 ] */ ldlayer 0, LAYER_62F8 +/* 0x62F7 [0xFF ] */ end + +.layer LAYER_62F8 +/* 0x62F8 [0xC2 0x02 ] */ transpose 2 +/* 0x62FA [0x46 0x00 0x55 ] */ notedv PITCH_EF1, 0, 85 +/* 0x62FD [0xFF ] */ end + +.channel CHAN_62FE +/* 0x62FE [0xCE 0x63 0x04 ] */ ldptr UNK_6304 +/* 0x6301 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_6304: + .byte 0x04, 0x5F + +.channel CHAN_6306 +/* 0x6306 [0xCE 0x63 0x0C ] */ ldptr UNK_630C +/* 0x6309 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_630C: + .byte 0x07, 0x52 + +.channel CHAN_630E +/* 0x630E [0xCE 0x63 0x14 ] */ ldptr UNK_6314 +/* 0x6311 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_6314: + .byte 0x06, 0x5F + +.channel CHAN_6316 +/* 0x6316 [0xCE 0x63 0x1C ] */ ldptr UNK_631C +/* 0x6319 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_631C: + .byte 0x18, 0x6E + +.channel CHAN_631E +/* 0x631E [0xCE 0x63 0x24 ] */ ldptr UNK_6324 +/* 0x6321 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_6324: + .byte 0x3C, 0x64 + +.channel CHAN_6326 +/* 0x6326 [0xCE 0x63 0x2C ] */ ldptr UNK_632C +/* 0x6329 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_632C: + .byte 0x3D, 0x6E + +.channel CHAN_632E +/* 0x632E [0xCE 0x63 0x34 ] */ ldptr UNK_6334 +/* 0x6331 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_6334: + .byte 0x0D, 0x71 + +.channel CHAN_6336 +/* 0x6336 [0xCE 0x63 0x47 ] */ ldptr UNK_6347 +/* 0x6339 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x633C [0xCE 0x63 0x4B ] */ ldptr UNK_634B +/* 0x633F [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x6342 [0xCC 0x04 ] */ ldi 4 +/* 0x6344 [0xFB 0x60 0xF2 ] */ jump CHAN_60F2 + +UNK_6347: + .byte 0x1C, 0x1D, 0x1E, 0x1F + +UNK_634B: + .byte 0x6E, 0x6E, 0x6E, 0x6E + +.channel CHAN_634F +/* 0x634F [0xCE 0x63 0x72 ] */ ldptr UNK_6372 +/* 0x6352 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x6355 [0xCE 0x63 0x74 ] */ ldptr UNK_6374 +/* 0x6358 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x635B [0xB8 0x02 ] */ rand 2 +/* 0x635D [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +.channel CHAN_6360 //! Unreachable code? +/* 0x6360 [0x56 ] */ subio IO_PORT_6 +/* 0x6361 [0xF3, 0x04 ] */ rbeqz CHAN_6367 +/* 0x6363 [0xB8, 0x02 ] */ rand 2 +/* 0x6365 [0xF4, 0x0A ] */ rjump CHAN_6371 +CHAN_6367: +/* 0x6367 [0xB8, 0x02 ] */ rand 2 +/* 0x6369 [0xC8, 0xFF ] */ sub 255 +/* 0x636B [0x76 ] */ stio IO_PORT_6 +/* 0x636C [0xC8, 0x02 ] */ sub 2 +/* 0x636E [0xF3, 0x01 ] */ rbeqz CHAN_6371 +/* 0x6370 [0x66 ] */ ldio IO_PORT_6 +CHAN_6371: +/* 0x6371 [0x76 ] */ stio IO_PORT_6 + +UNK_6372: + .byte 0x20, 0x21 + +UNK_6374: + .byte 0x6E, 0x6E + +.channel CHAN_6376 +/* 0x6376 [0x66 ] */ ldio IO_PORT_6 +/* 0x6377 [0xC8 0xFF ] */ sub 255 +/* 0x6379 [0x76 ] */ stio IO_PORT_6 +/* 0x637A [0xC9 0x01 ] */ and 1 +/* 0x637C [0xCB 0x63 0x96 ] */ ldseq UNK_6396 +/* 0x637F [0xC7 0x40 0x63 0x90 ] */ stseq (NOTEDV_OPCODE | PITCH_A0), LAYER_6390 + STSEQ_NOTEDV_OPCODE_PITCH +/* 0x6383 [0xB8 0x02 ] */ rand 2 +/* 0x6385 [0xCB 0x63 0x98 ] */ ldseq UNK_6398 +/* 0x6388 [0xC7 0x00 0x63 0x92 ] */ stseq 0, LAYER_6390 + STSEQ_NOTEDV_VELOCITY_2 +/* 0x638C [0x88 0x63 0x90 ] */ ldlayer 0, LAYER_6390 +/* 0x638F [0xFF ] */ end + +.layer LAYER_6390 +/* 0x6390 [0x40 0x00 0x64 ] */ notedv PITCH_A0, 0, 100 +/* 0x6393 [0xC0 0x30 ] */ ldelay 48 +/* 0x6395 [0xFF ] */ end + +UNK_6396: + .byte 0x22, 0x32 + +UNK_6398: + .byte 0x64, 0x64 + +.channel CHAN_639A +/* 0x639A [0xCE 0x63 0xAB ] */ ldptr UNK_63AB +/* 0x639D [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x63A0 [0xCE 0x63 0xAD ] */ ldptr UNK_63AD +/* 0x63A3 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x63A6 [0xB8 0x02 ] */ rand 2 +/* 0x63A8 [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +UNK_63AB: + .byte 0x23, 0x24 + +UNK_63AD: + .byte 0x5A, 0x46 + +.channel CHAN_63AF +/* 0x63AF [0xCE 0x63 0xC0 ] */ ldptr UNK_63C0 +/* 0x63B2 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x63B5 [0xCE 0x63 0xC3 ] */ ldptr UNK_63C3 +/* 0x63B8 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x63BB [0xCC 0x03 ] */ ldi 3 +/* 0x63BD [0xFB 0x60 0xF2 ] */ jump CHAN_60F2 + +UNK_63C0: + .byte 0x25, 0x26, 0x27 + +UNK_63C3: + .byte 0x6E, 0x6E, 0x6E + +.channel CHAN_63C6 +/* 0x63C6 [0xCE 0x63 0xD7 ] */ ldptr UNK_63D7 +/* 0x63C9 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x63CC [0xCE 0x63 0xDA ] */ ldptr UNK_63DA +/* 0x63CF [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x63D2 [0xCC 0x03 ] */ ldi 3 +/* 0x63D4 [0xFB 0x60 0xF2 ] */ jump CHAN_60F2 + +UNK_63D7: + .byte 0x28, 0x29, 0x2A + +UNK_63DA: + .byte 0x6E, 0x6E, 0x6E + +.channel CHAN_63DD +/* 0x63DD [0xCE 0x63 0xEE ] */ ldptr UNK_63EE +/* 0x63E0 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x63E3 [0xCE 0x63 0xF0 ] */ ldptr UNK_63F0 +/* 0x63E6 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x63E9 [0xB8 0x02 ] */ rand 2 +/* 0x63EB [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +UNK_63EE: + .byte 0x2D, 0x2E + +UNK_63F0: + .byte 0x64, 0x64 + +.channel CHAN_63F2 +/* 0x63F2 [0xCE 0x64 0x03 ] */ ldptr UNK_6403 +/* 0x63F5 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x63F8 [0xCE 0x64 0x05 ] */ ldptr UNK_6405 +/* 0x63FB [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x63FE [0xB8 0x02 ] */ rand 2 +/* 0x6400 [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +UNK_6403: + .byte 0x2B, 0x2C + +UNK_6405: + .byte 0x64, 0x64 + +.channel CHAN_6407 +/* 0x6407 [0xCE 0x64 0x18 ] */ ldptr UNK_6418 +/* 0x640A [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x640D [0xCE 0x64 0x1A ] */ ldptr UNK_641A +/* 0x6410 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x6413 [0xB8 0x02 ] */ rand 2 +/* 0x6415 [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +UNK_6418: + .byte 0x2F, 0x30 + +UNK_641A: + .byte 0x55, 0x55 + +.channel CHAN_641C +/* 0x641C [0x88 0x64 0x20 ] */ ldlayer 0, LAYER_6420 +/* 0x641F [0xFF ] */ end + +.layer LAYER_6420 +/* 0x6420 [0x74 0x00 0x60 ] */ notedv PITCH_DF5, 0, 96 +/* 0x6423 [0xFF ] */ end + +.channel CHAN_6424 +/* 0x6424 [0x88 0x64 0x28 ] */ ldlayer 0, LAYER_6428 +/* 0x6427 [0xFF ] */ end + +.layer LAYER_6428 +/* 0x6428 [0xC2 0x01 ] */ transpose 1 +/* 0x642A [0x40 0x62 0x64 ] */ notedv PITCH_A0, 98, 100 +/* 0x642D [0x41 0x6A 0x64 ] */ notedv PITCH_BF0, 106, 100 +/* 0x6430 [0x42 0x3A 0x64 ] */ notedv PITCH_B0, 58, 100 +/* 0x6433 [0xFF ] */ end + +.channel CHAN_6434 +/* 0x6434 [0xCE 0x64 0x45 ] */ ldptr UNK_6445 +/* 0x6437 [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x643A [0xCE 0x64 0x47 ] */ ldptr UNK_6447 +/* 0x643D [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x6440 [0xB8 0x02 ] */ rand 2 +/* 0x6442 [0xFB 0x61 0x34 ] */ jump CHAN_6134 + +UNK_6445: + .byte 0x2B, 0x2C + +UNK_6447: + .byte 0x64, 0x64 + +.channel CHAN_6449 +/* 0x6449 [0xCE 0x64 0x4F ] */ ldptr UNK_644F +/* 0x644C [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_644F: + .byte 0x14, 0x64 + +.channel CHAN_6451 +/* 0x6451 [0x88 0x64 0x55 ] */ ldlayer 0, LAYER_6455 +/* 0x6454 [0xFF ] */ end + +.layer LAYER_6455 +/* 0x6455 [0xC2 0x01 ] */ transpose 1 +/* 0x6457 [0x43 0x81 0x0B 0x32 ] */ notedv PITCH_C1, 267, 50 +/* 0x645B [0x43 0x80 0xC5 0x32 ] */ notedv PITCH_C1, 197, 50 +/* 0x645F [0x45 0x80 0x87 0x64 ] */ notedv PITCH_D1, 135, 100 +/* 0x6463 [0x46 0x21 0x64 ] */ notedv PITCH_EF1, 33, 100 +/* 0x6466 [0xFF ] */ end + +.channel CHAN_6467 +/* 0x6467 [0x88 0x64 0x6B ] */ ldlayer 0, LAYER_646B +/* 0x646A [0xFF ] */ end + +.layer LAYER_646B +/* 0x646B [0xC2 0x01 ] */ transpose 1 +/* 0x646D [0x47 0x80 0xD9 0x64 ] */ notedv PITCH_E1, 217, 100 +/* 0x6471 [0x48 0x62 0x64 ] */ notedv PITCH_F1, 98, 100 +/* 0x6474 [0x49 0x81 0x09 0x64 ] */ notedv PITCH_GF1, 265, 100 +/* 0x6478 [0xFF ] */ end + +.channel CHAN_6479 +/* 0x6479 [0x88 0x64 0x7D ] */ ldlayer 0, LAYER_647D +/* 0x647C [0xFF ] */ end + +.layer LAYER_647D +/* 0x647D [0x73 0x50 0x50 ] */ notedv PITCH_C5, 80, 80 +/* 0x6480 [0xF4 0xFB ] */ rjump LAYER_647D + +.channel CHAN_6482 +/* 0x6482 [0x88 0x64 0x86 ] */ ldlayer 0, LAYER_6486 +/* 0x6485 [0xFF ] */ end + +.layer LAYER_6486 +/* 0x6486 [0xC2 0x01 ] */ transpose 1 +/* 0x6488 [0x4A 0x41 0x64 ] */ notedv PITCH_G1, 65, 100 +/* 0x648B [0x4B 0x81 0x0A 0x64 ] */ notedv PITCH_AF1, 266, 100 +/* 0x648F [0x4C 0x53 0x64 ] */ notedv PITCH_A1, 83, 100 +/* 0x6492 [0xFF ] */ end + +.channel CHAN_6493 +/* 0x6493 [0xCE 0x64 0x99 ] */ ldptr UNK_6499 +/* 0x6496 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_6499: + .byte 0x1C, 0x64 + +.channel CHAN_649B +/* 0x649B [0x88 0x64 0x9F ] */ ldlayer 0, LAYER_649F +/* 0x649E [0xFF ] */ end + +.layer LAYER_649F +/* 0x649F [0xC2 0x01 ] */ transpose 1 +/* 0x64A1 [0x43 0x00 0x32 ] */ notedv PITCH_C1, 0, 50 +/* 0x64A4 [0xFF ] */ end + +.channel CHAN_64A5 +/* 0x64A5 [0x66 ] */ ldio IO_PORT_6 +/* 0x64A6 [0xC8 0xFF ] */ sub 255 +/* 0x64A8 [0x76 ] */ stio IO_PORT_6 +/* 0x64A9 [0xC9 0x01 ] */ and 1 +/* 0x64AB [0xCB 0x64 0xC5 ] */ ldseq UNK_64C5 +/* 0x64AE [0xC7 0x40 0x64 0xBF ] */ stseq (NOTEDV_OPCODE | PITCH_A0), LAYER_64BF + STSEQ_NOTEDV_OPCODE_PITCH +/* 0x64B2 [0xB8 0x02 ] */ rand 2 +/* 0x64B4 [0xCB 0x64 0xC7 ] */ ldseq UNK_64C7 +/* 0x64B7 [0xC7 0x00 0x64 0xC1 ] */ stseq 0, LAYER_64BF + STSEQ_NOTEDV_VELOCITY_2 +/* 0x64BB [0x88 0x64 0xBF ] */ ldlayer 0, LAYER_64BF +/* 0x64BE [0xFF ] */ end + +.layer LAYER_64BF +/* 0x64BF [0x40 0x00 0x64 ] */ notedv PITCH_A0, 0, 100 +/* 0x64C2 [0xC0 0x30 ] */ ldelay 48 +/* 0x64C4 [0xFF ] */ end + +UNK_64C5: + .byte 0x35, 0x36 + +UNK_64C7: + .byte 0x50, 0x50 + +.channel CHAN_64C9 +/* 0x64C9 [0xCE 0x64 0xCF ] */ ldptr UNK_64CF +/* 0x64CC [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_64CF: + .byte 0x21, 0x6E + +.channel CHAN_64D1 +/* 0x64D1 [0x88 0x64 0xD5 ] */ ldlayer 0, LAYER_64D5 +/* 0x64D4 [0xFF ] */ end + +.layer LAYER_64D5 +/* 0x64D5 [0xC2 0x02 ] */ transpose 2 +/* 0x64D7 [0x47 0x00 0x55 ] */ notedv PITCH_E1, 0, 85 +/* 0x64DA [0xFF ] */ end + +.channel CHAN_64DB +/* 0x64DB [0xCE 0x64 0xE1 ] */ ldptr UNK_64E1 +/* 0x64DE [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_64E1: + .byte 0x20, 0x5F + +.channel CHAN_64E3 +/* 0x64E3 [0xCE 0x64 0xE9 ] */ ldptr UNK_64E9 +/* 0x64E6 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_64E9: + .byte 0x23, 0x5A + +.channel CHAN_64EB +/* 0x64EB [0xCE 0x64 0xF1 ] */ ldptr UNK_64F1 +/* 0x64EE [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_64F1: + .byte 0x22, 0x64 + +.channel CHAN_64F3 +/* 0x64F3 [0xCE 0x64 0xF9 ] */ ldptr UNK_64F9 +/* 0x64F6 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_64F9: + .byte 0x31, 0x73 + +.channel CHAN_64FB +/* 0x64FB [0xCE 0x65 0x01 ] */ ldptr UNK_6501 +/* 0x64FE [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_6501: + .byte 0x3E, 0x64 + +.channel CHAN_6503 +/* 0x6503 [0xCE 0x65 0x09 ] */ ldptr UNK_6509 +/* 0x6506 [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_6509: + .byte 0x3F, 0x6E + +.channel CHAN_650B +/* 0x650B [0xCE 0x65 0x11 ] */ ldptr UNK_6511 +/* 0x650E [0xFB 0x61 0x3E ] */ jump CHAN_613E + +UNK_6511: + .byte 0x2C, 0x64 + +.channel CHAN_6513 +/* 0x6513 [0xCC 0x20 ] */ ldi 32 +/* 0x6515 [0x71 ] */ stio IO_PORT_1 +/* 0x6516 [0x88 0x65 0x1A ] */ ldlayer 0, LAYER_651A +/* 0x6519 [0xFF ] */ end + +.layer LAYER_651A +/* 0x651A [0xC2 0x02 ] */ transpose 2 +/* 0x651C [0x44 0x00 0x64 ] */ notedv PITCH_DF1, 0, 100 +/* 0x651F [0xFF ] */ end + +.channel CHAN_6520 +/* 0x6520 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x6521 [0xC8 0x50 ] */ sub 80 +/* 0x6523 [0xC7 0x19 0x65 0x36 ] */ stseq (NOTEDVG_OPCODE | PITCH_BF2), LAYER_6536 + STSEQ_NOTEDVG_OPCODE_PITCH +/* 0x6527 [0xCB 0x65 0x3B ] */ ldseq UNK_653B +/* 0x652A [0xC7 0x00 0x65 0x38 ] */ stseq 0, LAYER_6536 + STSEQ_NOTEDVG_DELAY_LO +/* 0x652E [0x88 0x65 0x34 ] */ ldlayer 0, LAYER_6534 +/* 0x6531 [0xDC 0x60 ] */ panweight 96 +/* 0x6533 [0xFF ] */ end + +.layer LAYER_6534 +/* 0x6534 [0xC2 0x01 ] */ transpose 1 +LAYER_6536: +/* 0x6536 [0x21 0x00 0x64 0x00 ] */ notedvg PITCH_GF3, 0, 100, 0 +/* 0x653A [0xFF ] */ end + +UNK_653B: + .byte 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x6E, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 + .byte 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 + .byte 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x6E + +.channel CHAN_6562 +/* 0x6562 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS +/* 0x6563 [0xC8 0x77 ] */ sub 119 +/* 0x6565 [0xC7 0x00 0x65 0x76 ] */ stseq (NOTEDVG_OPCODE | PITCH_A0), LAYER_6576 + STSEQ_NOTEDVG_OPCODE_PITCH +/* 0x6569 [0xCB 0x65 0x7B ] */ ldseq UNK_657B +/* 0x656C [0xC7 0x00 0x65 0x78 ] */ stseq 0, LAYER_6576 + STSEQ_NOTEDVG_DELAY_LO +/* 0x6570 [0x88 0x65 0x74 ] */ ldlayer 0, LAYER_6574 +/* 0x6573 [0xFF ] */ end + +.layer LAYER_6574 +/* 0x6574 [0xC2 0x02 ] */ transpose 2 +LAYER_6576: +/* 0x6576 [0x00 0x00 0x64 0x00 ] */ notedvg PITCH_A0, 0, 100, 0 +/* 0x657A [0xFF ] */ end + +UNK_657B: + .byte 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 + +.channel CHAN_6581 +/* 0x6581 [0xCC 0x20 ] */ ldi 32 +/* 0x6583 [0x71 ] */ stio IO_PORT_1 +/* 0x6584 [0x89 0x65 0x98 ] */ ldlayer 1, LAYER_6598 +/* 0x6587 [0xCE 0x65 0xA7 ] */ ldptr UNK_65A7 +/* 0x658A [0xCF 0x61 0x1B ] */ stptrtoseq CHAN_611A + STSEQ_PTR_LDSEQ +/* 0x658D [0xCE 0x65 0xAA ] */ ldptr UNK_65AA +/* 0x6590 [0xCF 0x61 0x23 ] */ stptrtoseq CHAN_6122 + STSEQ_PTR_LDSEQ +/* 0x6593 [0xCC 0x03 ] */ ldi 3 +/* 0x6595 [0xFB 0x60 0xF2 ] */ jump CHAN_60F2 + +.layer LAYER_6598 +/* 0x6598 [0xC6 0x45 ] */ instr SF0_INST_69 +/* 0x659A [0xCB 0x66 0xB8 0xFB ] */ env ENVELOPE_66B8, 251 +/* 0x659E [0xC4 ] */ legato +/* 0x659F [0xC7 0x81 0x33 0xFF ] */ portamento 0x81, PITCH_C5, 255 +/* 0x65A3 [0x78 0x30 0x41 ] */ notedv PITCH_F5, 48, 65 +/* 0x65A6 [0xFF ] */ end + +UNK_65A7: + .byte 0x39, 0x3A, 0x3B + +UNK_65AA: + .byte 0x64, 0x5F, 0x69 + +.balign 16 + +.filter FILTER_65B0 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.filter FILTER_65C0 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.envelope ENVELOPE_65D0 + point 1, 32700 + hang + +.envelope ENVELOPE_65D8 + point 1, 32700 + point 100, 30000 + point 200, 5000 + hang + +.envelope ENVELOPE_65E8 + point 1, 32700 + point 25, 25000 + point 100, 25000 + point 200, 5000 + hang + +.envelope ENVELOPE_65FC + point 1, 32700 + point 100, 30000 + point 250, 30000 + point 200, 5000 + hang + +.envelope ENVELOPE_6610 + point 1, 32700 + point 50, 30000 + point 100, 10000 + point 100, 0 + hang + +.envelope ENVELOPE_6624 + point 1, 32700 + point 30, 30000 + point 50, 10000 + point 50, 0 + hang + +.envelope ENVELOPE_6638 + point 1, 32700 + point 70, 30000 + point 120, 10000 + point 120, 0 + hang + +.envelope ENVELOPE_664C + point 1, 32700 + point 15, 32700 + point 15, 22000 + point 100, 15000 + hang + +.envelope ENVELOPE_6660 + point 1, 32700 + point 8, 32700 + point 8, 22000 + point 100, 15000 + hang + +.envelope ENVELOPE_6674 + point 10, 32700 + hang + +.envelope ENVELOPE_667C + point 30, 10000 + point 30, 32700 + hang + +.envelope ENVELOPE_6688 + point 20, 15000 + point 10, 32700 + hang + +.envelope ENVELOPE_6694 + point 48, 10000 + point 32, 32700 + hang + +.envelope ENVELOPE_66A0 + point 47, 15000 + point 13, 32700 + point 72, 10000 + hang + +.envelope ENVELOPE_66B0 + point 6, 32700 + hang + +.envelope ENVELOPE_66B8 + point 20, 32700 + point 50, 10000 + point 40, 0 + hang + +.envelope ENVELOPE_66C8 + point 18, 32700 + hang + +.envelope ENVELOPE_66D0 + point 10, 32700 + point 240, 31000 + point 150, 2000 + hang + +.envelope ENVELOPE_66E0 + point 14, 15000 + point 13, 32700 + hang + +.envelope ENVELOPE_66EC + point 40, 32700 + hang + +.envelope ENVELOPE_66F4 + point 400, 32700 + hang + +.envelope ENVELOPE_66FC + point 100, 32700 + hang + +.envelope ENVELOPE_6704 + point 225, 32700 + point 30, 30000 + hang + +.envelope ENVELOPE_6710 + point 200, 32700 + hang + +.envelope ENVELOPE_6718 + point 3, 32700 + hang + +.envelope ENVELOPE_6720 + point 12, 32700 + point 40, 5000 + hang + +ENVELOPE_672C: + point 10, 32700 + point 4, 20000 + point 4, 10000 + point 50, 2000 + hang + +.envelope ENVELOPE_6740 + point 40, 32700 + point 150, 32700 + point 300, 0 + hang + +.envelope ENVELOPE_6750 + point 40, 32700 + point 800, 32700 + point 100, 16000 + point 100, 32700 + point 100, 16000 + point 100, 32700 + point 100, 16000 + point 100, 32700 + point 600, 0 + hang + +.envelope ENVELOPE_6778 + point 200, 32700 + point 100, 16000 + point 100, 32700 + point 100, 16000 + point 100, 32700 + point 600, 0 + hang + +.envelope ENVELOPE_6794 + point 35, 32700 + point 40, 32700 + point 105, 0 + hang + +.envelope ENVELOPE_67A4 + point 1, 25000 + point 12, 32700 + point 40, 32700 + point 60, 15000 + point 80, 5000 + hang + +.envelope ENVELOPE_67BC + point 10, 32700 + point 50, 32700 + point 60, 5000 + hang + +.envelope ENVELOPE_67CC + point 200, 32700 + point 340, 0 + hang + +.envelope ENVELOPE_67D8 + point 400, 32700 + point 400, 20000 + goto 0 + +.envelope ENVELOPE_67E4 + point 1400, 32700 + point 400, 14000 + point 400, 32700 + goto 1 + +.envelope ENVELOPE_67F4 + point 25, 32700 + point 490, 12000 + hang + +.envelope ENVELOPE_6800 + point 100, 32700 + point 450, 32700 +.envelope ENVELOPE_6808 + point 150, 32700 + point 1200, 32700 + point 400, 20000 + hang + +.envelope ENVELOPE_6818 + point 200, 32700 + point 200, 20000 + goto 0 + +.envelope ENVELOPE_6824 + point 2, 25000 + hang + +.envelope ENVELOPE_682C + point 1, 32700 + point 100, 30000 + point 200, 5000 + hang + +.envelope ENVELOPE_683C + point 1, 32700 + point 100, 30000 + point 100, 0 + hang + +.envelope ENVELOPE_684C + point 50, 32700 + point 160, 30000 + point 100, 0 + hang + +ENVELOPE_685C: + point 50, 32700 + point 100, 30000 + point 200, 20000 + hang + +.envelope ENVELOPE_686C + point 20, 32700 + point 100, 30000 + point 200, 20000 + hang + +.envelope ENVELOPE_687C + point 1, 32700 + point 100, 30000 + point 200, 20000 + hang + +.envelope ENVELOPE_688C + point 10, 32700 + point 250, 32700 + point 100, 20000 + hang + +ENVELOPE_689C: + point 15, 32700 + point 55, 20000 + point 15, 5000 + hang + +.envelope ENVELOPE_68AC + point 150, 32700 + hang + +.envelope ENVELOPE_68B4 + point 120, 32700 + hang + +.envelope ENVELOPE_68BC + point 60, 32700 + point 250, 32700 + point 100, 20000 + hang + +.envelope ENVELOPE_68CC + point 25, 32700 + point 100, 32700 + point 20, 2000 + hang + +.envelope ENVELOPE_68DC + point 1, 32700 + point 50, 32700 + point 25, 16000 + hang + +.envelope ENVELOPE_68EC + point 1, 32700 + point 80, 32700 + point 25, 16000 + hang + +.envelope ENVELOPE_68FC + point 1, 32700 + point 20, 32700 + point 7, 16000 + hang + +.envelope ENVELOPE_690C + point 1, 32700 + point 19, 32700 + point 5, 2000 + hang + +ENVELOPE_691C: + point 1, 32700 + point 50, 32700 + point 25, 10000 + hang + +.envelope ENVELOPE_692C + point 1, 32700 + point 50, 32700 + point 20, 1000 + hang + +ENVELOPE_693C: + point 1, 32700 + point 40, 32700 + point 10, 1000 + hang + +.envelope ENVELOPE_694C + point 1, 32700 + point 70, 32700 + point 10, 5000 + hang + +.envelope ENVELOPE_695C + point 1, 32700 + point 19, 32700 + point 5, 3000 + hang + +.envelope ENVELOPE_696C + point 1, 32700 + point 65, 32700 + point 20, 1000 + hang + +.envelope ENVELOPE_697C + point 1, 32700 + point 15, 32700 + point 2, 1000 + hang + +.envelope ENVELOPE_698C + point 1, 32700 + point 250, 32700 + point 60, 16000 + hang + +.envelope ENVELOPE_699C + point 1, 32700 + point 200, 32700 + point 50, 16000 + hang + +.envelope ENVELOPE_69AC + point 1, 32700 + point 260, 32700 + point 60, 16000 + hang + +.envelope ENVELOPE_69BC + point 1, 32700 + point 300, 32700 + point 60, 16000 + hang + +.envelope ENVELOPE_69CC + point 1, 32700 + point 350, 32700 + point 150, 16000 + hang + +.envelope ENVELOPE_69DC + point 1, 32700 + point 150, 32700 + point 100, 16000 + hang + +ENVELOPE_69EC: + point 1, 32700 + point 100, 32700 + point 40, 3000 + hang + +.envelope ENVELOPE_69FC + point 1, 32700 + point 210, 32700 + point 60, 16000 + hang + +.envelope ENVELOPE_6A0C + point 1, 32700 + point 100, 32700 + point 100, 10000 + hang + +.envelope ENVELOPE_6A1C + point 1, 32700 + point 250, 32700 + point 30, 16000 + hang + +.envelope ENVELOPE_6A2C + point 1, 32700 + point 650, 32700 + point 150, 16000 + hang + +.envelope ENVELOPE_6A3C + point 1, 32700 + point 500, 32700 + point 150, 16000 + hang + +.envelope ENVELOPE_6A4C + point 1, 32700 + point 500, 32700 + point 200, 26000 + hang + +.envelope ENVELOPE_6A5C + point 1, 32700 + point 800, 32700 + point 200, 16000 + hang + +ENVELOPE_6A6C: + point 1, 32700 + point 900, 32700 + point 200, 30000 + hang + +.envelope ENVELOPE_6A7C + point 1, 32700 + hang + +SEQ_0_END: + +.endseq Sequence_0 diff --git a/assets/audio/sequences/seq_1.prg.seq b/assets/audio/sequences/seq_1.prg.seq new file mode 100644 index 0000000000..0babce8065 --- /dev/null +++ b/assets/audio/sequences/seq_1.prg.seq @@ -0,0 +1,1961 @@ +#include "aseq.h" +#include "Soundfont_2.h" + +.startseq Sequence_1 + +.sequence SEQ_0000 +/* 0x0000 [0xD3 0x20 ] */ mutebhv 0x20 +/* 0x0002 [0xD5 0x46 ] */ mutescale 70 +/* 0x0004 [0xDB 0x73 ] */ vol 115 +/* 0x0006 [0xDD 0x78 ] */ tempo 120 +/* 0x0008 [0x80 ] */ ldio IO_PORT_0 +/* 0x0009 [0xF5 0x00 0x0D ] */ bgez SEQ_000D +/* 0x000C [0xFF ] */ end + +SEQ_000D: +/* 0x000D [0x84 ] */ ldio IO_PORT_4 +/* 0x000E [0xC7 0x20 0x00 0x18 ] */ stseq 0b00100000, SEQ_0017 + STSEQ_INITCHAN_HI +/* 0x0012 [0x85 ] */ ldio IO_PORT_5 +/* 0x0013 [0xC7 0x00 0x00 0x19 ] */ stseq 0b00000000, SEQ_0017 + STSEQ_INITCHAN_LO +SEQ_0017: +/* 0x0017 [0xD7 0xD0 0x00 ] */ initchan 0b1101000000000000 +/* 0x001A [0x9D 0x0E 0xDB ] */ ldchan 13, CHAN_0EDB +/* 0x001D [0x85 ] */ ldio IO_PORT_5 +/* 0x001E [0xC9 0x01 ] */ and 1 +/* 0x0020 [0xF3 0x03 ] */ rbeqz SEQ_0025 +/* 0x0022 [0x90 0x02 0xAA ] */ ldchan 0, CHAN_02AA +SEQ_0025: +/* 0x0025 [0x85 ] */ ldio IO_PORT_5 +/* 0x0026 [0xC9 0x02 ] */ and 2 +/* 0x0028 [0xF3 0x03 ] */ rbeqz SEQ_002D +/* 0x002A [0x91 0x00 0x91 ] */ ldchan 1, CHAN_0091 +SEQ_002D: +/* 0x002D [0x85 ] */ ldio IO_PORT_5 +/* 0x002E [0xC9 0x04 ] */ and 4 +/* 0x0030 [0xF3 0x03 ] */ rbeqz SEQ_0035 +/* 0x0032 [0x92 0x00 0x91 ] */ ldchan 2, CHAN_0091 +SEQ_0035: +/* 0x0035 [0x85 ] */ ldio IO_PORT_5 +/* 0x0036 [0xC9 0x08 ] */ and 8 +/* 0x0038 [0xF3 0x03 ] */ rbeqz SEQ_003D +/* 0x003A [0x93 0x00 0x91 ] */ ldchan 3, CHAN_0091 +SEQ_003D: +/* 0x003D [0x85 ] */ ldio IO_PORT_5 +/* 0x003E [0xC9 0x10 ] */ and 16 +/* 0x0040 [0xF3 0x03 ] */ rbeqz SEQ_0045 +/* 0x0042 [0x94 0x00 0x91 ] */ ldchan 4, CHAN_0091 +SEQ_0045: +/* 0x0045 [0x85 ] */ ldio IO_PORT_5 +/* 0x0046 [0xC9 0x20 ] */ and 32 +/* 0x0048 [0xF3 0x03 ] */ rbeqz SEQ_004D +/* 0x004A [0x95 0x00 0x91 ] */ ldchan 5, CHAN_0091 +SEQ_004D: +/* 0x004D [0x85 ] */ ldio IO_PORT_5 +/* 0x004E [0xC9 0x40 ] */ and 64 +/* 0x0050 [0xF3 0x03 ] */ rbeqz SEQ_0055 +/* 0x0052 [0x96 0x00 0x91 ] */ ldchan 6, CHAN_0091 +SEQ_0055: +/* 0x0055 [0x85 ] */ ldio IO_PORT_5 +/* 0x0056 [0xC9 0x80 ] */ and 128 +/* 0x0058 [0xF3 0x03 ] */ rbeqz SEQ_005D +/* 0x005A [0x97 0x00 0x91 ] */ ldchan 7, CHAN_0091 +SEQ_005D: +/* 0x005D [0x84 ] */ ldio IO_PORT_4 +/* 0x005E [0xC9 0x01 ] */ and 1 +/* 0x0060 [0xF3 0x03 ] */ rbeqz SEQ_0065 +/* 0x0062 [0x98 0x00 0x91 ] */ ldchan 8, CHAN_0091 +SEQ_0065: +/* 0x0065 [0x84 ] */ ldio IO_PORT_4 +/* 0x0066 [0xC9 0x02 ] */ and 2 +/* 0x0068 [0xF3 0x00 ] */ rbeqz SEQ_006A +SEQ_006A: +/* 0x006A [0x84 ] */ ldio IO_PORT_4 +/* 0x006B [0xC9 0x04 ] */ and 4 +/* 0x006D [0xF3 0x00 ] */ rbeqz SEQ_006F +SEQ_006F: +/* 0x006F [0x84 ] */ ldio IO_PORT_4 +/* 0x0070 [0xC9 0x08 ] */ and 8 +/* 0x0072 [0xF3 0x00 ] */ rbeqz SEQ_0074 +SEQ_0074: +/* 0x0074 [0x84 ] */ ldio IO_PORT_4 +/* 0x0075 [0xC9 0x10 ] */ and 16 +/* 0x0077 [0xF3 0x03 ] */ rbeqz SEQ_007C +/* 0x0079 [0x9C 0x02 0xAA ] */ ldchan 12, CHAN_02AA +SEQ_007C: +/* 0x007C [0x84 ] */ ldio IO_PORT_4 +/* 0x007D [0xC9 0x40 ] */ and 64 +/* 0x007F [0xF3 0x03 ] */ rbeqz SEQ_0084 +/* 0x0081 [0x9E 0x0D 0xA3 ] */ ldchan 14, CHAN_0DA3 +SEQ_0084: +/* 0x0084 [0x84 ] */ ldio IO_PORT_4 +/* 0x0085 [0xC9 0x80 ] */ and 128 +/* 0x0087 [0xF3 0x03 ] */ rbeqz SEQ_008C +/* 0x0089 [0x9F 0x0E 0x0B ] */ ldchan 15, CHAN_0E0B +SEQ_008C: +/* 0x008C [0xFD 0xFF 0xD0 ] */ delay 32720 +/* 0x008F [0xF4 0xFB ] */ rjump SEQ_008C + +.channel CHAN_0091 +/* 0x0091 [0xC4 ] */ noshort +/* 0x0092 [0xE5 0x01 ] */ reverbidx 1 +/* 0x0094 [0xB0 0x10 0x30 ] */ ldfilter FILTER_1030 +/* 0x0097 [0xB3 0x00 ] */ filter 0, 0 +CHAN_0099: +/* 0x0099 [0xFE ] */ delay1 +/* 0x009A [0xDC 0x00 ] */ panweight 0 +/* 0x009C [0x61 ] */ ldio IO_PORT_1 +/* 0x009D [0xC8 0x01 ] */ sub 1 +/* 0x009F [0xF3 0x02 ] */ rbeqz CHAN_00A3 +/* 0x00A1 [0xF4 0xF6 ] */ rjump CHAN_0099 + +CHAN_00A3: +/* 0x00A3 [0x62 ] */ ldio IO_PORT_2 +/* 0x00A4 [0xC8 0x12 ] */ sub 18 +/* 0x00A6 [0xF2 0x03 ] */ rbltz CHAN_00AB +/* 0x00A8 [0xCC 0x11 ] */ ldi 17 +/* 0x00AA [0x72 ] */ stio IO_PORT_2 +CHAN_00AB: +/* 0x00AB [0x62 ] */ ldio IO_PORT_2 +/* 0x00AC [0xCB 0x01 0x6B ] */ ldseq UNK_016B +/* 0x00AF [0xC7 0x00 0x00 0xD8 ] */ stseq 0, CHAN_00D7 + STSEQ_INSTR +/* 0x00B3 [0x62 ] */ ldio IO_PORT_2 +/* 0x00B4 [0xCB 0x01 0x7F ] */ ldseq UNK_017F +/* 0x00B7 [0xC7 0x00 0x00 0xDA ] */ stseq 0, CHAN_00D9 + STSEQ_VOL +/* 0x00BB [0x62 ] */ ldio IO_PORT_2 +/* 0x00BC [0xB2 0x01 0x92 ] */ ldseqtoptr TABLE_0192 +/* 0x00BF [0xCF 0x00 0xDF ] */ stptrtoseq CHAN_00DE + STSEQ_PTR_LDLAYER +/* 0x00C2 [0x62 ] */ ldio IO_PORT_2 +/* 0x00C3 [0xB2 0x01 0xBA ] */ ldseqtoptr TABLE_01BA +/* 0x00C6 [0xCF 0x00 0xE6 ] */ stptrtoseq CHAN_00E5 + STSEQ_PTR_LDLAYER +/* 0x00C9 [0x62 ] */ ldio IO_PORT_2 +/* 0x00CA [0xB2 0x01 0xE2 ] */ ldseqtoptr TABLE_01E2 +/* 0x00CD [0xCF 0x00 0xED ] */ stptrtoseq CHAN_00EC + STSEQ_PTR_LDLAYER +/* 0x00D0 [0x62 ] */ ldio IO_PORT_2 +/* 0x00D1 [0xB2 0x02 0x0A ] */ ldseqtoptr TABLE_020A +/* 0x00D4 [0xCF 0x00 0xF4 ] */ stptrtoseq CHAN_00F3 + STSEQ_PTR_LDLAYER +CHAN_00D7: +/* 0x00D7 [0xC1 0x01 ] */ instr SF2_INST_1 +CHAN_00D9: +/* 0x00D9 [0xDF 0x3C ] */ vol 60 +/* 0x00DB [0x64 ] */ ldio IO_PORT_4 +/* 0x00DC [0xC9 0x03 ] */ and 3 +CHAN_00DE: +/* 0x00DE [0x88 0x03 0x93 ] */ ldlayer 0, LAYER_0393 +/* 0x00E1 [0xF3 0x16 ] */ rbeqz CHAN_00F9 +/* 0x00E3 [0xC8 0x01 ] */ sub 1 +CHAN_00E5: +/* 0x00E5 [0x89 0x03 0xCE ] */ ldlayer 1, LAYER_03CE +/* 0x00E8 [0xF3 0x0F ] */ rbeqz CHAN_00F9 +/* 0x00EA [0xC8 0x01 ] */ sub 1 +CHAN_00EC: +/* 0x00EC [0x8A 0x03 0x8C ] */ ldlayer 2, LAYER_038C +/* 0x00EF [0xF3 0x08 ] */ rbeqz CHAN_00F9 +/* 0x00F1 [0xC8 0x01 ] */ sub 1 +CHAN_00F3: +/* 0x00F3 [0x8B 0x03 0xC4 ] */ ldlayer 3, LAYER_03C4 +/* 0x00F6 [0xCC 0x01 ] */ ldi 1 +/* 0x00F8 [0x77 ] */ stio IO_PORT_7 +CHAN_00F9: +/* 0x00F9 [0xFE ] */ delay1 +/* 0x00FA [0x65 ] */ ldio IO_PORT_5 +/* 0x00FB [0xC9 0x3F ] */ and 63 +/* 0x00FD [0x75 ] */ stio IO_PORT_5 +/* 0x00FE [0xCB 0x0F 0x7A ] */ ldseq UNK_0F7A +/* 0x0101 [0xC7 0x0A 0x01 0x0F ] */ stseq 10, CHAN_010E + STSEQ_REVERB +/* 0x0105 [0xCC 0x7F ] */ ldi 127 +/* 0x0107 [0x55 ] */ subio IO_PORT_5 +/* 0x0108 [0xC7 0x00 0x01 0x0D ] */ stseq 0, STSEQ_HERE + STSEQ_VOLEXP +/* 0x010C [0xE0 0x7F ] */ volexp 127 +CHAN_010E: +/* 0x010E [0xD4 0x00 ] */ reverb 0 +/* 0x0110 [0x61 ] */ ldio IO_PORT_1 +/* 0x0111 [0xC8 0x00 ] */ sub 0 +/* 0x0113 [0xF3 0x4F ] */ rbeqz CHAN_0164 +/* 0x0115 [0x67 ] */ ldio IO_PORT_7 +/* 0x0116 [0xC8 0x01 ] */ sub 1 +/* 0x0118 [0x77 ] */ stio IO_PORT_7 +/* 0x0119 [0xF3 0x02 ] */ rbeqz CHAN_011D +/* 0x011B [0xF4 0xDC ] */ rjump CHAN_00F9 + +CHAN_011D: +/* 0x011D [0x62 ] */ ldio IO_PORT_2 +/* 0x011E [0xB2 0x02 0x32 ] */ ldseqtoptr TABLE_0232 +/* 0x0121 [0xCF 0x01 0x36 ] */ stptrtoseq CHAN_0134 + STSEQ_PTR_STSEQ +/* 0x0124 [0x62 ] */ ldio IO_PORT_2 +/* 0x0125 [0xB2 0x02 0x5A ] */ ldseqtoptr TABLE_025A +/* 0x0128 [0xCF 0x01 0x48 ] */ stptrtoseq CHAN_0146 + STSEQ_PTR_STSEQ +/* 0x012B [0x62 ] */ ldio IO_PORT_2 +/* 0x012C [0xB2 0x02 0x82 ] */ ldseqtoptr TABLE_0282 +/* 0x012F [0xCF 0x01 0x5D ] */ stptrtoseq CHAN_015B + STSEQ_PTR_STSEQ +/* 0x0132 [0xB8 0x5A ] */ rand 90 +CHAN_0134: +/* 0x0134 [0xC7 0x25 0x0E 0xFD ] */ stseq 37, LAYER_0EFC + STSEQ_LDELAY +/* 0x0138 [0x63 ] */ ldio IO_PORT_3 +/* 0x0139 [0xC9 0x7F ] */ and 127 +/* 0x013B [0x73 ] */ stio IO_PORT_3 +/* 0x013C [0xCC 0x00 ] */ ldi 0 +/* 0x013E [0x53 ] */ subio IO_PORT_3 +/* 0x013F [0xC7 0x00 0x01 0x45 ] */ stseq 0, CHAN_0144 + STSEQ_BENDFINE +/* 0x0143 [0x63 ] */ ldio IO_PORT_3 +CHAN_0144: +/* 0x0144 [0xEE 0x00 ] */ bendfine 0 +CHAN_0146: +/* 0x0146 [0xC7 0x00 0x0E 0xFF ] */ stseq 0, LAYER_0EFE + STSEQ_LDELAY +/* 0x014A [0xCC 0x00 ] */ ldi 0 +/* 0x014C [0xCB 0x0E 0xFB ] */ ldseq UNK_0EFB +/* 0x014F [0xF3 0x0A ] */ rbeqz CHAN_015B +/* 0x0151 [0xB8 0x03 ] */ rand 3 +/* 0x0153 [0xF3 0x04 ] */ rbeqz CHAN_0159 +/* 0x0155 [0xCC 0x00 ] */ ldi 0 +/* 0x0157 [0xF4 0x02 ] */ rjump CHAN_015B + +CHAN_0159: +/* 0x0159 [0xCC 0x14 ] */ ldi 20 +CHAN_015B: +/* 0x015B [0xC7 0x00 0x0F 0x01 ] */ stseq 0, LAYER_0F00 + STSEQ_STEREO +/* 0x015F [0xCC 0x32 ] */ ldi 50 +/* 0x0161 [0x77 ] */ stio IO_PORT_7 +/* 0x0162 [0xF4 0x95 ] */ rjump CHAN_00F9 + +CHAN_0164: +/* 0x0164 [0x90 ] */ dellayer 0 +/* 0x0165 [0x91 ] */ dellayer 1 +/* 0x0166 [0x92 ] */ dellayer 2 +/* 0x0167 [0x93 ] */ dellayer 3 +/* 0x0168 [0xFB 0x00 0x99 ] */ jump CHAN_0099 + +UNK_016B: + .byte 0x01, 0x02, 0x03, 0x01, 0x04, 0x01, 0x05, 0x01, 0x01, 0x06, 0x0D, 0x08, 0x09, 0x0B, 0x0C, 0x07, 0x0E, 0x0A, 0x03, 0x01 + +UNK_017F: + .byte 0x4B, 0x55, 0x32, 0x3C, 0x50, 0x50, 0x50, 0x50, 0x50, 0x64, 0x50, 0x50, 0x50, 0x52, 0x50, 0x4B, 0x5A, 0x50, 0x00 + +.table TABLE_0192 + entry LAYER_0393 + entry LAYER_0404 + entry LAYER_048A + entry LAYER_04D1 + entry LAYER_054E + entry LAYER_05B2 + entry LAYER_0665 + entry LAYER_06CE + entry LAYER_0734 + entry LAYER_078B + entry LAYER_07E6 + entry LAYER_0B39 + entry LAYER_0C5E + entry LAYER_09C2 + entry LAYER_0A6C + entry LAYER_0D39 + entry LAYER_08A2 + entry LAYER_0AE6 + entry LAYER_048A + entry LAYER_04D1 + +.table TABLE_01BA + entry LAYER_03CE + entry LAYER_0449 + entry LAYER_0487 + entry LAYER_0516 + entry LAYER_0560 + entry LAYER_0612 + entry LAYER_0676 + entry LAYER_06E8 + entry LAYER_0731 + entry LAYER_0794 + entry LAYER_0849 + entry LAYER_0BC9 + entry LAYER_0CCD + entry LAYER_0A09 + entry LAYER_0A59 + entry LAYER_0D27 + entry LAYER_0932 + entry LAYER_0AFA + entry LAYER_0A59 + entry LAYER_0D27 + +.table TABLE_01E2 + entry LAYER_038C + entry LAYER_03FD + entry LAYER_0484 + entry LAYER_04C7 + entry LAYER_0572 + entry LAYER_05AC + entry LAYER_068B + entry LAYER_06FA + entry LAYER_074E + entry LAYER_07B2 + entry LAYER_07E0 + entry LAYER_0B26 + entry LAYER_0C4D + entry LAYER_09B8 + entry LAYER_0A62 + entry LAYER_0D2A + entry LAYER_0898 + entry LAYER_0AE5 + entry LAYER_0A62 + entry LAYER_0D2A + +.table TABLE_020A + entry LAYER_03C4 + entry LAYER_043F + entry LAYER_0481 + entry LAYER_050C + entry LAYER_058D + entry LAYER_0609 + entry LAYER_06B4 + entry LAYER_0716 + entry LAYER_0770 + entry LAYER_07C9 + entry LAYER_0843 + entry LAYER_0BB3 + entry LAYER_0CB9 + entry LAYER_09FC + entry LAYER_0A4C + entry LAYER_0D24 + entry LAYER_0924 + entry LAYER_0AE5 + entry LAYER_0A4C + entry LAYER_0D24 + +.table TABLE_0232 + entry LAYER_0EFC + 1 + entry LAYER_0F03 + 1 + entry LAYER_0F0A + 1 + entry LAYER_0F11 + 1 + entry LAYER_0F18 + 1 + entry LAYER_0F1F + 1 + entry LAYER_0F26 + 1 + entry LAYER_0F2D + 1 + entry LAYER_0F34 + 1 + entry LAYER_0F3B + 1 + entry LAYER_0F42 + 1 + entry LAYER_0F49 + 1 + entry LAYER_0F50 + 1 + entry LAYER_0F57 + 1 + entry LAYER_0F5E + 1 + entry LAYER_0F65 + 1 + entry LAYER_0F6C + 1 + entry LAYER_0F73 + 1 + entry LAYER_0F0A + 1 + entry LAYER_0F11 + 1 + +.table TABLE_025A + entry LAYER_0EFE + 1 + entry LAYER_0F05 + 1 + entry LAYER_0F0C + 1 + entry LAYER_0F13 + 1 + entry LAYER_0F1A + 1 + entry LAYER_0F21 + 1 + entry LAYER_0F28 + 1 + entry LAYER_0F2F + 1 + entry LAYER_0F36 + 1 + entry LAYER_0F3D + 1 + entry LAYER_0F44 + 1 + entry LAYER_0F4B + 1 + entry LAYER_0F52 + 1 + entry LAYER_0F59 + 1 + entry LAYER_0F60 + 1 + entry LAYER_0F67 + 1 + entry LAYER_0F6E + 1 + entry LAYER_0F75 + 1 + entry LAYER_0F60 + 1 + entry LAYER_0F67 + 1 + +.table TABLE_0282 + entry LAYER_0F00 + 1 + entry LAYER_0F07 + 1 + entry LAYER_0F0E + 1 + entry LAYER_0F15 + 1 + entry LAYER_0F1C + 1 + entry LAYER_0F23 + 1 + entry LAYER_0F2A + 1 + entry LAYER_0F31 + 1 + entry LAYER_0F38 + 1 + entry LAYER_0F3F + 1 + entry LAYER_0F46 + 1 + entry LAYER_0F4D + 1 + entry LAYER_0F54 + 1 + entry LAYER_0F5B + 1 + entry LAYER_0F62 + 1 + entry LAYER_0F69 + 1 + entry LAYER_0F70 + 1 + entry LAYER_0F77 + 1 + entry LAYER_0F62 + 1 + entry LAYER_0F69 + 1 + +.channel CHAN_02AA +/* 0x02AA [0xC4 ] */ noshort +/* 0x02AB [0xE5 0x01 ] */ reverbidx 1 +/* 0x02AD [0xDB 0x0C ] */ transpose 12 +/* 0x02AF [0xB0 0x10 0x30 ] */ ldfilter FILTER_1030 +/* 0x02B2 [0xB3 0x00 ] */ filter 0, 0 +CHAN_02B4: +/* 0x02B4 [0xFE ] */ delay1 +/* 0x02B5 [0x61 ] */ ldio IO_PORT_1 +/* 0x02B6 [0xC8 0x01 ] */ sub 1 +/* 0x02B8 [0xF3 0x02 ] */ rbeqz CHAN_02BC +/* 0x02BA [0xF4 0xF8 ] */ rjump CHAN_02B4 + +CHAN_02BC: +/* 0x02BC [0xE0 0x7F ] */ volexp 127 +/* 0x02BE [0xDC 0x00 ] */ panweight 0 +/* 0x02C0 [0x62 ] */ ldio IO_PORT_2 +/* 0x02C1 [0xC9 0x03 ] */ and 3 +/* 0x02C3 [0xCB 0x03 0x5A ] */ ldseq UNK_035A +/* 0x02C6 [0xC7 0x00 0x02 0xD7 ] */ stseq 0, CHAN_02D6 + STSEQ_INSTR +/* 0x02CA [0x62 ] */ ldio IO_PORT_2 +/* 0x02CB [0xC9 0x03 ] */ and 3 +/* 0x02CD [0xCB 0x03 0x5E ] */ ldseq UNK_035E +/* 0x02D0 [0xC7 0x00 0x02 0xD5 ] */ stseq 0, STSEQ_HERE + STSEQ_VOL +/* 0x02D4 [0xDF 0x3C ] */ vol 60 +CHAN_02D6: +/* 0x02D6 [0xC1 0x10 ] */ instr SF2_INST_16 +/* 0x02D8 [0xDA 0x0F 0xFA ] */ env ENVELOPE_0FFA +/* 0x02DB [0xD4 0x14 ] */ reverb 20 +/* 0x02DD [0x88 0x03 0x68 ] */ ldlayer 0, LAYER_0368 +/* 0x02E0 [0x89 0x03 0x62 ] */ ldlayer 1, LAYER_0362 +/* 0x02E3 [0xCC 0x01 ] */ ldi 1 +/* 0x02E5 [0x77 ] */ stio IO_PORT_7 +/* 0x02E6 [0xF4 0x0C ] */ rjump CHAN_02F4 + +CHAN_02E8: +/* 0x02E8 [0xFE ] */ delay1 +/* 0x02E9 [0x61 ] */ ldio IO_PORT_1 +/* 0x02EA [0xC8 0x00 ] */ sub 0 +/* 0x02EC [0xF3 0x47 ] */ rbeqz CHAN_0335 +/* 0x02EE [0x60 ] */ ldio IO_PORT_0 +/* 0x02EF [0xF2 0x03 ] */ rbltz CHAN_02F4 +/* 0x02F1 [0xFC 0x03 0x3E ] */ call CHAN_033E +CHAN_02F4: +/* 0x02F4 [0x66 ] */ ldio IO_PORT_6 +/* 0x02F5 [0xF2 0x09 ] */ rbltz CHAN_0300 +/* 0x02F7 [0xC7 0x00 0x02 0xFF ] */ stseq 0, CHAN_02FE + STSEQ_FILTER_IDX +/* 0x02FB [0xCC 0xFF ] */ ldi 255 +/* 0x02FD [0x76 ] */ stio IO_PORT_6 +CHAN_02FE: +/* 0x02FE [0xB3 0x0F ] */ filter 0, 15 +CHAN_0300: +/* 0x0300 [0x67 ] */ ldio IO_PORT_7 +/* 0x0301 [0xC8 0x01 ] */ sub 1 +/* 0x0303 [0x77 ] */ stio IO_PORT_7 +/* 0x0304 [0xF3 0x02 ] */ rbeqz CHAN_0308 +/* 0x0306 [0xF4 0xE0 ] */ rjump CHAN_02E8 + +CHAN_0308: +/* 0x0308 [0x63 ] */ ldio IO_PORT_3 +/* 0x0309 [0xC9 0x3F ] */ and 63 +/* 0x030B [0x73 ] */ stio IO_PORT_3 +/* 0x030C [0xCB 0x0F 0xBA ] */ ldseq UNK_0FBA +/* 0x030F [0xC8 0xFF ] */ sub 255 +/* 0x0311 [0xC7 0x05 0x03 0x1E ] */ stseq 5, CHAN_031D + STSEQ_RAND +/* 0x0315 [0x63 ] */ ldio IO_PORT_3 +/* 0x0316 [0xCB 0x0F 0x7A ] */ ldseq UNK_0F7A +/* 0x0319 [0xC7 0x60 0x10 0x00 ] */ stseq 96, ENVELOPE_0FFA + STSEQ_ENVELOPE_POINT(3) +CHAN_031D: +/* 0x031D [0xB8 0x18 ] */ rand 24 +/* 0x031F [0xC7 0x62 0x03 0x6F ] */ stseq (NOTEDV_OPCODE | PITCH_G3), LAYER_036F + STSEQ_NOTEDV_OPCODE_PITCH +/* 0x0323 [0xCC 0x40 ] */ ldi 64 +/* 0x0325 [0x53 ] */ subio IO_PORT_3 +/* 0x0326 [0xC7 0x00 0x03 0x2B ] */ stseq 0, STSEQ_HERE + STSEQ_RAND +/* 0x032A [0xB8 0x40 ] */ rand 64 +/* 0x032C [0xC7 0x3F 0x03 0x70 ] */ stseq 63, LAYER_036F + STSEQ_NOTEDV_DELAY_HI +/* 0x0330 [0xCC 0x64 ] */ ldi 100 +/* 0x0332 [0x77 ] */ stio IO_PORT_7 +/* 0x0333 [0xF4 0xB3 ] */ rjump CHAN_02E8 + +CHAN_0335: +/* 0x0335 [0xD9 0x70 ] */ releaserate 112 +/* 0x0337 [0x90 ] */ dellayer 0 +/* 0x0338 [0x91 ] */ dellayer 1 +/* 0x0339 [0x92 ] */ dellayer 2 +/* 0x033A [0x93 ] */ dellayer 3 +/* 0x033B [0xFB 0x02 0xB4 ] */ jump CHAN_02B4 + +.channel CHAN_033E +/* 0x033E [0x8A 0x03 0x7A ] */ ldlayer 2, LAYER_037A +/* 0x0341 [0x8B 0x03 0x74 ] */ ldlayer 3, LAYER_0374 +/* 0x0344 [0x63 ] */ ldio IO_PORT_3 +/* 0x0345 [0xC9 0x3F ] */ and 63 +/* 0x0347 [0x73 ] */ stio IO_PORT_3 +/* 0x0348 [0xCB 0x0F 0xBA ] */ ldseq UNK_0FBA +/* 0x034B [0xC8 0xFF ] */ sub 255 +/* 0x034D [0xC7 0x64 0x03 0x87 ] */ stseq 100, LAYER_0385 + STSEQ_NOTEDV_VELOCITY_2 +/* 0x0351 [0xC7 0x64 0x03 0x8A ] */ stseq 100, LAYER_0388 + STSEQ_NOTEDV_VELOCITY_2 +/* 0x0355 [0xC7 0x67 0x03 0x85 ] */ stseq (NOTEDV_OPCODE | PITCH_C4), LAYER_0385 + STSEQ_NOTEDV_OPCODE_PITCH +/* 0x0359 [0xFF ] */ end + +UNK_035A: + .byte 0x0F, 0x10, 0x11, 0x11 + +UNK_035E: + .byte 0x3C, 0x73, 0x64, 0x64 + +.layer LAYER_0362 +/* 0x0362 [0xCD 0x14 ] */ stereo 1, 0, 1, 0, 0 +/* 0x0364 [0xC2 0x09 ] */ transpose 9 +/* 0x0366 [0xF4 0x00 ] */ rjump LAYER_0368 + +.layer LAYER_0368 +/* 0x0368 [0xCF 0x64 ] */ releaserate 100 +/* 0x036A [0xC4 ] */ legato +/* 0x036B [0xC7 0x85 0x22 0xFF ] */ portamento 0x85, PITCH_G3, 255 +LAYER_036F: +/* 0x036F [0x5B 0x64 0x4B ] */ notedv PITCH_C3, 100, 75 +/* 0x0372 [0xF4 0xFB ] */ rjump LAYER_036F + +.layer LAYER_0374 +/* 0x0374 [0xC2 0x09 ] */ transpose 9 +/* 0x0376 [0xCA 0x4A ] */ notepan 74 +/* 0x0378 [0xF4 0x02 ] */ rjump LAYER_037C + +.layer LAYER_037A +/* 0x037A [0xCA 0x36 ] */ notepan 54 +LAYER_037C: +/* 0x037C [0xCB 0x10 0x06 0xFF ] */ env ENVELOPE_1006, 255 +/* 0x0380 [0xC4 ] */ legato +/* 0x0381 [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +LAYER_0385: +/* 0x0385 [0x6E 0x0C 0x28 ] */ notedv PITCH_G4, 12, 40 +LAYER_0388: +/* 0x0388 [0x56 0x73 0x28 ] */ notedv PITCH_G2, 115, 40 +/* 0x038B [0xFF ] */ end + +.layer LAYER_038C +/* 0x038C [0xCA 0x5E ] */ notepan 94 +/* 0x038E [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x0391 [0xF4 0x02 ] */ rjump LAYER_0395 + +.layer LAYER_0393 +/* 0x0393 [0xCA 0x54 ] */ notepan 84 +LAYER_0395: +/* 0x0395 [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x0398 [0x6B 0x7E 0x64 ] */ notedv PITCH_E4, 126, 100 +/* 0x039B [0x69 0x81 0x5F 0x4E ] */ notedv PITCH_D4, 351, 78 +/* 0x039F [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x03A2 [0x69 0x80 0xE2 0x5F ] */ notedv PITCH_D4, 226, 95 +/* 0x03A6 [0x67 0x2D 0x56 ] */ notedv PITCH_C4, 45, 86 +/* 0x03A9 [0x6C 0x81 0x44 0x4B ] */ notedv PITCH_F4, 324, 75 +/* 0x03AD [0x69 0x80 0xC4 0x61 ] */ notedv PITCH_D4, 196, 97 +/* 0x03B1 [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x03B4 [0x69 0x80 0xD3 0x43 ] */ notedv PITCH_D4, 211, 67 +/* 0x03B8 [0x6B 0x3B 0x6A ] */ notedv PITCH_E4, 59, 106 +/* 0x03BB [0x67 0x81 0x0B 0x5E ] */ notedv PITCH_C4, 267, 94 +/* 0x03BF [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x03C2 [0xF4 0xD1 ] */ rjump LAYER_0395 + +.layer LAYER_03C4 +/* 0x03C4 [0xCA 0x22 ] */ notepan 34 +/* 0x03C6 [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x03C9 [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x03CC [0xF4 0xC7 ] */ rjump LAYER_0395 + +.layer LAYER_03CE +/* 0x03CE [0xCA 0x2C ] */ notepan 44 +LAYER_03D0: +/* 0x03D0 [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x03D3 [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x03D6 [0x67 0x09 0x40 ] */ notedv PITCH_C4, 9, 64 +/* 0x03D9 [0x67 0x80 0x96 0x4B ] */ notedv PITCH_C4, 150, 75 +/* 0x03DD [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x03E0 [0x67 0x5F 0x64 ] */ notedv PITCH_C4, 95, 100 +/* 0x03E3 [0x67 0x81 0x37 0x5A ] */ notedv PITCH_C4, 311, 90 +/* 0x03E7 [0x67 0x80 0xCE 0x4B ] */ notedv PITCH_C4, 206, 75 +/* 0x03EB [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x03EE [0x67 0x81 0x19 0x56 ] */ notedv PITCH_C4, 281, 86 +/* 0x03F2 [0x67 0x23 0x45 ] */ notedv PITCH_C4, 35, 69 +/* 0x03F5 [0x67 0x54 0x4D ] */ notedv PITCH_C4, 84, 77 +/* 0x03F8 [0x67 0x65 0x51 ] */ notedv PITCH_C4, 101, 81 +/* 0x03FB [0xF4 0xD3 ] */ rjump LAYER_03D0 + +.layer LAYER_03FD +/* 0x03FD [0xCA 0x54 ] */ notepan 84 +/* 0x03FF [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x0402 [0xF4 0x02 ] */ rjump LAYER_0406 + +.layer LAYER_0404 +/* 0x0404 [0xCA 0x5E ] */ notepan 94 +LAYER_0406: +/* 0x0406 [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x0409 [0x69 0x0C 0x51 ] */ notedv PITCH_D4, 12, 81 +/* 0x040C [0x6B 0x80 0xFE 0x63 ] */ notedv PITCH_E4, 254, 99 +/* 0x0410 [0x69 0x34 0x59 ] */ notedv PITCH_D4, 52, 89 +/* 0x0413 [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x0416 [0x67 0x80 0xF4 0x56 ] */ notedv PITCH_C4, 244, 86 +/* 0x041A [0x69 0x81 0x87 0x61 ] */ notedv PITCH_D4, 391, 97 +/* 0x041E [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x0421 [0x67 0x15 0x48 ] */ notedv PITCH_C4, 21, 72 +/* 0x0424 [0x69 0x80 0xD3 0x43 ] */ notedv PITCH_D4, 211, 67 +/* 0x0428 [0x6B 0x80 0x91 0x62 ] */ notedv PITCH_E4, 145, 98 +/* 0x042C [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x042F [0x6B 0x08 0x56 ] */ notedv PITCH_E4, 8, 86 +/* 0x0432 [0x69 0x81 0x3B 0x5E ] */ notedv PITCH_D4, 315, 94 +/* 0x0436 [0x67 0x0B 0x5E ] */ notedv PITCH_C4, 11, 94 +/* 0x0439 [0x67 0x81 0x0F 0x5E ] */ notedv PITCH_C4, 271, 94 +/* 0x043D [0xF4 0xC7 ] */ rjump LAYER_0406 + +.layer LAYER_043F +/* 0x043F [0xCA 0x2C ] */ notepan 44 +/* 0x0441 [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x0444 [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x0447 [0xF4 0x02 ] */ rjump LAYER_044B + +.layer LAYER_0449 +/* 0x0449 [0xCA 0x22 ] */ notepan 34 +LAYER_044B: +/* 0x044B [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x044E [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x0451 [0x67 0x80 0xD3 0x48 ] */ notedv PITCH_C4, 211, 72 +/* 0x0455 [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x0458 [0x67 0x0B 0x55 ] */ notedv PITCH_C4, 11, 85 +/* 0x045B [0x6B 0x81 0x26 0x64 ] */ notedv PITCH_E4, 294, 100 +/* 0x045F [0x69 0x80 0xA7 0x5A ] */ notedv PITCH_D4, 167, 90 +/* 0x0463 [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x0466 [0x69 0x80 0xA6 0x4B ] */ notedv PITCH_D4, 166, 75 +/* 0x046A [0x6C 0x18 0x56 ] */ notedv PITCH_F4, 24, 86 +/* 0x046D [0x67 0x81 0x63 0x54 ] */ notedv PITCH_C4, 355, 84 +/* 0x0471 [0xFC 0x0F 0x03 ] */ call LAYER_0F03 +/* 0x0474 [0x69 0x80 0xDB 0x5E ] */ notedv PITCH_D4, 219, 94 +/* 0x0478 [0x6B 0x09 0x43 ] */ notedv PITCH_E4, 9, 67 +/* 0x047B [0x67 0x80 0xE0 0x51 ] */ notedv PITCH_C4, 224, 81 +/* 0x047F [0xF4 0xCA ] */ rjump LAYER_044B + +.layer LAYER_0481 +/* 0x0481 [0xFC 0x0F 0x0A ] */ call LAYER_0F0A +.layer LAYER_0484 +/* 0x0484 [0xFC 0x0F 0x0A ] */ call LAYER_0F0A +.layer LAYER_0487 +/* 0x0487 [0xFC 0x0F 0x0A ] */ call LAYER_0F0A +.layer LAYER_048A +/* 0x048A [0xFC 0x0F 0x0A ] */ call LAYER_0F0A +/* 0x048D [0xCA 0x40 ] */ notepan 64 +/* 0x048F [0x27 0x82 0x00 0x5A 0x7F] */ notedvg PITCH_C4, 512, 90, 127 +/* 0x0494 [0xFC 0x0F 0x0A ] */ call LAYER_0F0A +/* 0x0497 [0xCA 0x5B ] */ notepan 91 +/* 0x0499 [0x29 0x7F 0x3D 0x7F ] */ notedvg PITCH_D4, 127, 61, 127 +/* 0x049D [0xC0 0x80 0x96 ] */ ldelay 150 +/* 0x04A0 [0xCA 0x4D ] */ notepan 77 +/* 0x04A2 [0x28 0x81 0xC8 0x64 0x7F] */ notedvg PITCH_DF4, 456, 100, 127 +/* 0x04A7 [0xFC 0x0F 0x0A ] */ call LAYER_0F0A +/* 0x04AA [0xCA 0x26 ] */ notepan 38 +/* 0x04AC [0x27 0x81 0x74 0x36 0x7F] */ notedvg PITCH_C4, 372, 54, 127 +/* 0x04B1 [0xC0 0x80 0xAE ] */ ldelay 174 +/* 0x04B4 [0xCA 0x57 ] */ notepan 87 +/* 0x04B6 [0x28 0x82 0x98 0x49 0x7F] */ notedvg PITCH_DF4, 664, 73, 127 +/* 0x04BB [0xFC 0x0F 0x0A ] */ call LAYER_0F0A +/* 0x04BE [0xCA 0x36 ] */ notepan 54 +/* 0x04C0 [0x27 0x81 0xB5 0x5F 0x7F] */ notedvg PITCH_C4, 437, 95, 127 +/* 0x04C5 [0xF4 0xC3 ] */ rjump LAYER_048A + +.layer LAYER_04C7 +/* 0x04C7 [0xCA 0x4A ] */ notepan 74 +/* 0x04C9 [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x04CC [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x04CF [0xF4 0x02 ] */ rjump LAYER_04D3 + +.layer LAYER_04D1 +/* 0x04D1 [0xCA 0x5E ] */ notepan 94 +LAYER_04D3: +/* 0x04D3 [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x04D6 [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x04D9 [0x6B 0x81 0x08 0x64 ] */ notedv PITCH_E4, 264, 100 +/* 0x04DD [0x69 0x0B 0x4E ] */ notedv PITCH_D4, 11, 78 +/* 0x04E0 [0x69 0x2D 0x5F ] */ notedv PITCH_D4, 45, 95 +/* 0x04E3 [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x04E6 [0x67 0x80 0xF6 0x56 ] */ notedv PITCH_C4, 246, 86 +/* 0x04EA [0x69 0x81 0x55 0x61 ] */ notedv PITCH_D4, 341, 97 +/* 0x04EE [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x04F1 [0x69 0x80 0xD3 0x43 ] */ notedv PITCH_D4, 211, 67 +/* 0x04F5 [0x67 0x15 0x5E ] */ notedv PITCH_C4, 21, 94 +/* 0x04F8 [0x6B 0x80 0x91 0x6A ] */ notedv PITCH_E4, 145, 106 +/* 0x04FC [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x04FF [0x69 0x81 0x3B 0x5E ] */ notedv PITCH_D4, 315, 94 +/* 0x0503 [0x6B 0x08 0x6A ] */ notedv PITCH_E4, 8, 106 +/* 0x0506 [0x67 0x81 0x0F 0x5E ] */ notedv PITCH_C4, 271, 94 +/* 0x050A [0xF4 0xC7 ] */ rjump LAYER_04D3 + +.layer LAYER_050C +/* 0x050C [0xCA 0x36 ] */ notepan 54 +/* 0x050E [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x0511 [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x0514 [0xF4 0x02 ] */ rjump LAYER_0518 + +.layer LAYER_0516 +/* 0x0516 [0xCA 0x22 ] */ notepan 34 +LAYER_0518: +/* 0x0518 [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x051B [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x051E [0x67 0x80 0xFA 0x40 ] */ notedv PITCH_C4, 250, 64 +/* 0x0522 [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x0525 [0x67 0x0E 0x4B ] */ notedv PITCH_C4, 14, 75 +/* 0x0528 [0x6B 0x81 0x0F 0x64 ] */ notedv PITCH_E4, 271, 100 +/* 0x052C [0x69 0x08 0x5A ] */ notedv PITCH_D4, 8, 90 +/* 0x052F [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x0532 [0x69 0x80 0x92 0x4B ] */ notedv PITCH_D4, 146, 75 +/* 0x0536 [0x6C 0x43 0x56 ] */ notedv PITCH_F4, 67, 86 +/* 0x0539 [0x67 0x81 0x55 0x45 ] */ notedv PITCH_C4, 341, 69 +/* 0x053D [0xFC 0x0F 0x11 ] */ call LAYER_0F11 +/* 0x0540 [0x69 0x80 0xF5 0x4D ] */ notedv PITCH_D4, 245, 77 +/* 0x0544 [0x6B 0x80 0xBD 0x4D ] */ notedv PITCH_E4, 189, 77 +/* 0x0548 [0x67 0x80 0xDA 0x51 ] */ notedv PITCH_C4, 218, 81 +/* 0x054C [0xF4 0xCA ] */ rjump LAYER_0518 + +.layer LAYER_054E +/* 0x054E [0xFC 0x0F 0x18 ] */ call LAYER_0F18 +/* 0x0551 [0xCA 0x54 ] */ notepan 84 +/* 0x0553 [0x6B 0x81 0x26 0x64 ] */ notedv PITCH_E4, 294, 100 +/* 0x0557 [0xCA 0x4A ] */ notepan 74 +/* 0x0559 [0x6B 0x09 0x4E ] */ notedv PITCH_E4, 9, 78 +/* 0x055C [0x67 0x81 0x6F 0x4A ] */ notedv PITCH_C4, 367, 74 +.layer LAYER_0560 +/* 0x0560 [0xFC 0x0F 0x18 ] */ call LAYER_0F18 +/* 0x0563 [0xFC 0x0F 0x18 ] */ call LAYER_0F18 +/* 0x0566 [0xCA 0x2F ] */ notepan 47 +/* 0x0568 [0x67 0x81 0xC2 0x64 ] */ notedv PITCH_C4, 450, 100 +/* 0x056C [0xCA 0x3A ] */ notepan 58 +/* 0x056E [0x69 0x80 0xF8 0x5B ] */ notedv PITCH_D4, 248, 91 +.layer LAYER_0572 +/* 0x0572 [0xFC 0x0F 0x18 ] */ call LAYER_0F18 +/* 0x0575 [0xC0 0x14 ] */ ldelay 20 +/* 0x0577 [0xFC 0x0F 0x18 ] */ call LAYER_0F18 +/* 0x057A [0xCA 0x5F ] */ notepan 95 +/* 0x057C [0x6C 0x4B 0x43 ] */ notedv PITCH_F4, 75, 67 +/* 0x057F [0xCA 0x57 ] */ notepan 87 +/* 0x0581 [0x69 0x09 0x37 ] */ notedv PITCH_D4, 9, 55 +/* 0x0584 [0x69 0x18 0x3C ] */ notedv PITCH_D4, 24, 60 +/* 0x0587 [0xCA 0x5B ] */ notepan 91 +/* 0x0589 [0x6B 0x81 0x26 0x64 ] */ notedv PITCH_E4, 294, 100 +.layer LAYER_058D +/* 0x058D [0xFC 0x0F 0x18 ] */ call LAYER_0F18 +/* 0x0590 [0xFC 0x0F 0x18 ] */ call LAYER_0F18 +/* 0x0593 [0xC0 0x30 ] */ ldelay 48 +/* 0x0595 [0xFC 0x0F 0x18 ] */ call LAYER_0F18 +/* 0x0598 [0xCA 0x48 ] */ notepan 72 +/* 0x059A [0x67 0x0A 0x5B ] */ notedv PITCH_C4, 10, 91 +/* 0x059D [0x68 0x80 0xC2 0x58 ] */ notedv PITCH_DF4, 194, 88 +/* 0x05A1 [0xCA 0x25 ] */ notepan 37 +/* 0x05A3 [0x69 0x09 0x4C ] */ notedv PITCH_D4, 9, 76 +/* 0x05A6 [0x69 0x81 0x55 0x5B ] */ notedv PITCH_D4, 341, 91 +/* 0x05AA [0xF4 0xA2 ] */ rjump LAYER_054E + +.layer LAYER_05AC +/* 0x05AC [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x05AF [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +.layer LAYER_05B2 +/* 0x05B2 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x05B5 [0xCA 0x54 ] */ notepan 84 +/* 0x05B7 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x05BA [0x69 0x80 0xC2 0x5A ] */ notedv PITCH_D4, 194, 90 +/* 0x05BE [0x6A 0x68 0x5E ] */ notedv PITCH_EF4, 104, 94 +/* 0x05C1 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x05C4 [0x69 0x80 0x95 0x64 ] */ notedv PITCH_D4, 149, 100 +/* 0x05C8 [0x6B 0x61 0x69 ] */ notedv PITCH_E4, 97, 105 +/* 0x05CB [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x05CE [0x69 0x81 0x26 0x4E ] */ notedv PITCH_D4, 294, 78 +/* 0x05D2 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x05D5 [0x67 0x06 0x54 ] */ notedv PITCH_C4, 6, 84 +/* 0x05D8 [0x6B 0x24 0x4C ] */ notedv PITCH_E4, 36, 76 +/* 0x05DB [0x67 0x81 0x9D 0x4E ] */ notedv PITCH_C4, 413, 78 +/* 0x05DF [0x67 0x5E 0x39 ] */ notedv PITCH_C4, 94, 57 +/* 0x05E2 [0xCA 0x4A ] */ notepan 74 +/* 0x05E4 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x05E7 [0x69 0x80 0xA8 0x58 ] */ notedv PITCH_D4, 168, 88 +/* 0x05EB [0x67 0x81 0x59 0x43 ] */ notedv PITCH_C4, 345, 67 +/* 0x05EF [0x6B 0x81 0x05 0x54 ] */ notedv PITCH_E4, 261, 84 +/* 0x05F3 [0x6B 0x43 0x43 ] */ notedv PITCH_E4, 67, 67 +/* 0x05F6 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x05F9 [0x68 0x80 0xD3 0x51 ] */ notedv PITCH_DF4, 211, 81 +/* 0x05FD [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x0600 [0x69 0x0B 0x5B ] */ notedv PITCH_D4, 11, 91 +/* 0x0603 [0x6B 0x81 0x26 0x58 ] */ notedv PITCH_E4, 294, 88 +/* 0x0607 [0xF4 0xA9 ] */ rjump LAYER_05B2 + +.layer LAYER_0609 +/* 0x0609 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x060C [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x060F [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +.layer LAYER_0612 +/* 0x0612 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x0615 [0xCA 0x2C ] */ notepan 44 +/* 0x0617 [0x69 0x15 0x4B ] */ notedv PITCH_D4, 21, 75 +/* 0x061A [0x6A 0x3D 0x5E ] */ notedv PITCH_EF4, 61, 94 +/* 0x061D [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x0620 [0x69 0x80 0x95 0x51 ] */ notedv PITCH_D4, 149, 81 +/* 0x0624 [0x6B 0x81 0x37 0x2A ] */ notedv PITCH_E4, 311, 42 +/* 0x0628 [0x67 0x81 0xF4 0x45 ] */ notedv PITCH_C4, 500, 69 +/* 0x062C [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x062F [0x6C 0x80 0xC8 0x5B ] */ notedv PITCH_F4, 200, 91 +/* 0x0633 [0x69 0x80 0x95 0x54 ] */ notedv PITCH_D4, 149, 84 +/* 0x0637 [0xCA 0x36 ] */ notepan 54 +/* 0x0639 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x063C [0x6A 0x80 0x95 0x57 ] */ notedv PITCH_EF4, 149, 87 +/* 0x0640 [0x69 0x81 0x63 0x60 ] */ notedv PITCH_D4, 355, 96 +/* 0x0644 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x0647 [0x6A 0x80 0xD8 0x3D ] */ notedv PITCH_EF4, 216, 61 +/* 0x064B [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x064E [0x67 0x81 0xE0 0x51 ] */ notedv PITCH_C4, 480, 81 +/* 0x0652 [0x67 0x80 0x4F 0x44 ] */ noteldv PITCH_C4, 79, 68 //! @bug uses long encoding when short encoding is sufficient +/* 0x0656 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x0659 [0x6B 0x08 0x4B ] */ notedv PITCH_E4, 8, 75 +/* 0x065C [0x6A 0x81 0xA5 0x5E ] */ notedv PITCH_EF4, 421, 94 +/* 0x0660 [0xFC 0x0F 0x1F ] */ call LAYER_0F1F +/* 0x0663 [0xF4 0xAD ] */ rjump LAYER_0612 + +.layer LAYER_0665 +/* 0x0665 [0xF8 0x03 ] */ loop 3 +/* 0x0667 [0xCA 0x68 ] */ notepan 104 +/* 0x0669 [0x6B 0x81 0xCC 0x4B ] */ notedv PITCH_E4, 460, 75 +/* 0x066D [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x0670 [0xCA 0x32 ] */ notepan 50 +/* 0x0672 [0x67 0x81 0x67 0x57 ] */ notedv PITCH_C4, 359, 87 +.layer LAYER_0676 +/* 0x0676 [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x0679 [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x067C [0xCA 0x22 ] */ notepan 34 +/* 0x067E [0x69 0x81 0x67 0x5E ] */ notedv PITCH_D4, 359, 94 +/* 0x0682 [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x0685 [0xCA 0x40 ] */ notepan 64 +/* 0x0687 [0x69 0x81 0x67 0x3E ] */ notedv PITCH_D4, 359, 62 +.layer LAYER_068B +/* 0x068B [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x068E [0xC0 0x22 ] */ ldelay 34 +/* 0x0690 [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x0693 [0xCA 0x4F ] */ notepan 79 +/* 0x0695 [0x6B 0x81 0x67 0x4F ] */ notedv PITCH_E4, 359, 79 +/* 0x0699 [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x069C [0xCA 0x5B ] */ notepan 91 +/* 0x069E [0x6C 0x81 0x67 0x3E ] */ notedv PITCH_F4, 359, 62 +/* 0x06A2 [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x06A5 [0xCA 0x36 ] */ notepan 54 +/* 0x06A7 [0x67 0x81 0x67 0x56 ] */ notedv PITCH_C4, 359, 86 +/* 0x06AB [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x06AE [0xCA 0x24 ] */ notepan 36 +/* 0x06B0 [0x69 0x81 0x67 0x39 ] */ notedv PITCH_D4, 359, 57 +.layer LAYER_06B4 +/* 0x06B4 [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x06B7 [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x06BA [0xC0 0x37 ] */ ldelay 55 +/* 0x06BC [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x06BF [0xF7 ] */ loopend +/* 0x06C0 [0xCA 0x40 ] */ notepan 64 +/* 0x06C2 [0x67 0x09 0x39 ] */ notedv PITCH_C4, 9, 57 +/* 0x06C5 [0x6B 0x80 0xD8 0x45 ] */ notedv PITCH_E4, 216, 69 +/* 0x06C9 [0xFC 0x0F 0x26 ] */ call LAYER_0F26 +/* 0x06CC [0xF4 0x97 ] */ rjump LAYER_0665 + +.layer LAYER_06CE +/* 0x06CE [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x06D1 [0xCA 0x4A ] */ notepan 74 +/* 0x06D3 [0x6B 0x81 0x5F 0x56 ] */ notedv PITCH_E4, 351, 86 +/* 0x06D7 [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x06DA [0x6B 0x81 0x26 0x3B ] */ notedv PITCH_E4, 294, 59 +/* 0x06DE [0xCA 0x5A ] */ notepan 90 +/* 0x06E0 [0x6B 0x81 0x5F 0x42 ] */ notedv PITCH_E4, 351, 66 +/* 0x06E4 [0x67 0x81 0x26 0x31 ] */ notedv PITCH_C4, 294, 49 +.layer LAYER_06E8 +/* 0x06E8 [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x06EB [0xC0 0x47 ] */ ldelay 71 +/* 0x06ED [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x06F0 [0x69 0x81 0x37 0x51 ] */ notedv PITCH_D4, 311, 81 +/* 0x06F4 [0xCA 0x53 ] */ notepan 83 +/* 0x06F6 [0x6B 0x81 0x0B 0x63 ] */ notedv PITCH_E4, 267, 99 +.layer LAYER_06FA +/* 0x06FA [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x06FD [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x0700 [0xC0 0x21 ] */ ldelay 33 +/* 0x0702 [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x0705 [0x67 0x81 0x8D 0x31 ] */ notedv PITCH_C4, 397, 49 +/* 0x0709 [0x67 0x81 0x16 0x4E ] */ notedv PITCH_C4, 278, 78 +/* 0x070D [0xCA 0x45 ] */ notepan 69 +/* 0x070F [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x0712 [0x67 0x81 0xC4 0x39 ] */ notedv PITCH_C4, 452, 57 +.layer LAYER_0716 +/* 0x0716 [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x0719 [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x071C [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x071F [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x0722 [0x67 0x81 0x49 0x5C ] */ notedv PITCH_C4, 329, 92 +/* 0x0726 [0xCA 0x4E ] */ notepan 78 +/* 0x0728 [0x67 0x81 0x08 0x4B ] */ notedv PITCH_C4, 264, 75 +/* 0x072C [0xFC 0x0F 0x2D ] */ call LAYER_0F2D +/* 0x072F [0xF4 0x9D ] */ rjump LAYER_06CE + +.layer LAYER_0731 +/* 0x0731 [0xFC 0x0F 0x34 ] */ call LAYER_0F34 +.layer LAYER_0734 +/* 0x0734 [0xCA 0x36 ] */ notepan 54 +/* 0x0736 [0xFC 0x0F 0x34 ] */ call LAYER_0F34 +/* 0x0739 [0xCA 0x31 ] */ notepan 49 +/* 0x073B [0x6B 0x80 0xBF 0x56 ] */ notedv PITCH_E4, 191, 86 +/* 0x073F [0xCA 0x29 ] */ notepan 41 +/* 0x0741 [0x69 0x44 0x3B ] */ notedv PITCH_D4, 68, 59 +/* 0x0744 [0x67 0x81 0xCA 0x5B ] */ notedv PITCH_C4, 458, 91 +/* 0x0748 [0xCA 0x39 ] */ notepan 57 +/* 0x074A [0x67 0x80 0xEE 0x4D ] */ notedv PITCH_C4, 238, 77 +.layer LAYER_074E +/* 0x074E [0xFC 0x0F 0x34 ] */ call LAYER_0F34 +/* 0x0751 [0xFC 0x0F 0x34 ] */ call LAYER_0F34 +/* 0x0754 [0xC0 0x19 ] */ ldelay 25 +/* 0x0756 [0xCA 0x27 ] */ notepan 39 +/* 0x0758 [0x6B 0x80 0xC2 0x3B ] */ notedv PITCH_E4, 194, 59 +/* 0x075C [0x69 0x80 0xA4 0x31 ] */ notedv PITCH_D4, 164, 49 +/* 0x0760 [0xCA 0x33 ] */ notepan 51 +/* 0x0762 [0x69 0x81 0x3F 0x37 ] */ notedv PITCH_D4, 319, 55 +/* 0x0766 [0xCA 0x3B ] */ notepan 59 +/* 0x0768 [0x67 0x80 0xDB 0x48 ] */ notedv PITCH_C4, 219, 72 +/* 0x076C [0x67 0x82 0xF9 0x56 ] */ notedv PITCH_C4, 761, 86 +.layer LAYER_0770 +/* 0x0770 [0xFC 0x0F 0x34 ] */ call LAYER_0F34 +/* 0x0773 [0xFC 0x0F 0x34 ] */ call LAYER_0F34 +/* 0x0776 [0xFC 0x0F 0x34 ] */ call LAYER_0F34 +/* 0x0779 [0xC0 0x4B ] */ ldelay 75 +/* 0x077B [0xCA 0x30 ] */ notepan 48 +/* 0x077D [0x69 0x34 0x5F ] */ notedv PITCH_D4, 52, 95 +/* 0x0780 [0xCA 0x35 ] */ notepan 53 +/* 0x0782 [0x67 0x80 0xED 0x40 ] */ notedv PITCH_C4, 237, 64 +/* 0x0786 [0xFC 0x0F 0x34 ] */ call LAYER_0F34 +/* 0x0789 [0xF4 0xA9 ] */ rjump LAYER_0734 + +.layer LAYER_078B +/* 0x078B [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +/* 0x078E [0x67 0x4F 0x5F ] */ notedv PITCH_C4, 79, 95 +/* 0x0791 [0x67 0x4F 0x5F ] */ notedv PITCH_C4, 79, 95 +.layer LAYER_0794 +/* 0x0794 [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +/* 0x0797 [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +/* 0x079A [0x67 0x80 0xA9 0x4B ] */ notedv PITCH_C4, 169, 75 +/* 0x079E [0x67 0x63 0x49 ] */ notedv PITCH_C4, 99, 73 +/* 0x07A1 [0x67 0x80 0x91 0x47 ] */ notedv PITCH_C4, 145, 71 +/* 0x07A5 [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +/* 0x07A8 [0x67 0x55 0x4E ] */ notedv PITCH_C4, 85, 78 +/* 0x07AB [0x67 0x80 0xD3 0x4A ] */ notedv PITCH_C4, 211, 74 +/* 0x07AF [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +.layer LAYER_07B2 +/* 0x07B2 [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +/* 0x07B5 [0xC0 0x29 ] */ ldelay 41 +/* 0x07B7 [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +/* 0x07BA [0x67 0x45 0x39 ] */ notedv PITCH_C4, 69, 57 +/* 0x07BD [0x67 0x5E 0x39 ] */ notedv PITCH_C4, 94, 57 +/* 0x07C0 [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +/* 0x07C3 [0x67 0x4B 0x31 ] */ notedv PITCH_C4, 75, 49 +/* 0x07C6 [0x67 0x48 0x2E ] */ notedv PITCH_C4, 72, 46 +.layer LAYER_07C9 +/* 0x07C9 [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +/* 0x07CC [0xC0 0x44 ] */ ldelay 68 +/* 0x07CE [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +/* 0x07D1 [0xFC 0x0F 0x3B ] */ call LAYER_0F3B +/* 0x07D4 [0x67 0x54 0x58 ] */ notedv PITCH_C4, 84, 88 +/* 0x07D7 [0x67 0x5B 0x58 ] */ notedv PITCH_C4, 91, 88 +/* 0x07DA [0x67 0x80 0xBF 0x53 ] */ notedv PITCH_C4, 191, 83 +/* 0x07DE [0xF4 0xAB ] */ rjump LAYER_078B + +.layer LAYER_07E0 +/* 0x07E0 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x07E3 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +.layer LAYER_07E6 +/* 0x07E6 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x07E9 [0xCA 0x18 ] */ notepan 24 +/* 0x07EB [0x2B 0x81 0xAA 0x56 0x7F] */ notedvg PITCH_E4, 426, 86, 127 +/* 0x07F0 [0x29 0x73 0x38 0x7F ] */ notedvg PITCH_D4, 115, 56, 127 +/* 0x07F4 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x07F7 [0xCA 0x31 ] */ notepan 49 +/* 0x07F9 [0x27 0x81 0xF4 0x5E 0x7F] */ notedvg PITCH_C4, 500, 94, 127 +/* 0x07FE [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x0801 [0x2B 0x83 0x49 0x44 0x7F] */ notedvg PITCH_E4, 841, 68, 127 +/* 0x0806 [0x2C 0x81 0x67 0x47 0x7F] */ notedvg PITCH_F4, 359, 71, 127 +/* 0x080B [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x080E [0x2B 0x83 0x49 0x44 0x7F] */ notedvg PITCH_E4, 841, 68, 127 +/* 0x0813 [0x2B 0x82 0x29 0x5B 0x7F] */ notedvg PITCH_E4, 553, 91, 127 +/* 0x0818 [0x2C 0x80 0xDB 0x47 0x7F] */ notedvg PITCH_F4, 219, 71, 127 +/* 0x081D [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x0820 [0x2C 0x81 0x2C 0x52 0xDC] */ notedvg PITCH_F4, 300, 82, 220 +/* 0x0825 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x0828 [0x2B 0x82 0x82 0x51 0x7F] */ notedvg PITCH_E4, 642, 81, 127 +/* 0x082D [0x2B 0x4F 0x44 0x7F ] */ notedvg PITCH_E4, 79, 68, 127 +/* 0x0831 [0x2C 0x80 0xDB 0x47 0x7F] */ notedvg PITCH_F4, 219, 71, 127 +/* 0x0836 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x0839 [0x2C 0x81 0xC3 0x36 0x7F] */ notedvg PITCH_F4, 451, 54, 127 +/* 0x083E [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x0841 [0xF4 0xA3 ] */ rjump LAYER_07E6 + +.layer LAYER_0843 +/* 0x0843 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x0846 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +.layer LAYER_0849 +/* 0x0849 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x084C [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x084F [0xCA 0x4C ] */ notepan 76 +/* 0x0851 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x0854 [0x2B 0x81 0x42 0x56 0x7F] */ notedvg PITCH_E4, 322, 86, 127 +/* 0x0859 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x085C [0x29 0x81 0xF4 0x5E 0x7F] */ notedvg PITCH_D4, 500, 94, 127 +/* 0x0861 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x0864 [0x2B 0x80 0xFE 0x31 0x7F] */ notedvg PITCH_E4, 254, 49, 127 +/* 0x0869 [0x27 0x80 0xC3 0x47 0x7F] */ notedvg PITCH_C4, 195, 71, 127 +/* 0x086E [0x29 0x81 0xCB 0x3D 0x7F] */ notedvg PITCH_D4, 459, 61, 127 +/* 0x0873 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x0876 [0x29 0x25 0x33 0x7F ] */ notedvg PITCH_D4, 37, 51, 127 +/* 0x087A [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x087D [0x28 0x82 0x3D 0x5B 0x7F] */ notedvg PITCH_DF4, 573, 91, 127 +/* 0x0882 [0x27 0x82 0xFD 0x58 0x7F] */ notedvg PITCH_C4, 765, 88, 127 +/* 0x0887 [0xCA 0x64 ] */ notepan 100 +/* 0x0889 [0xFC 0x0F 0x42 ] */ call LAYER_0F42 +/* 0x088C [0x2B 0x81 0x5C 0x4C 0x7F] */ notedvg PITCH_E4, 348, 76, 127 +/* 0x0891 [0x2C 0x82 0x84 0x3B 0xB4] */ notedvg PITCH_F4, 644, 59, 180 +/* 0x0896 [0xF4 0xB1 ] */ rjump LAYER_0849 + +.layer LAYER_0898 +/* 0x0898 [0xCA 0x54 ] */ notepan 84 +/* 0x089A [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x089D [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x08A0 [0xF4 0x02 ] */ rjump LAYER_08A4 + +.layer LAYER_08A2 +/* 0x08A2 [0xCA 0x3C ] */ notepan 60 +LAYER_08A4: +/* 0x08A4 [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x08A7 [0x5B 0x34 0x59 ] */ notedv PITCH_C3, 52, 89 +/* 0x08AA [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08AD [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08B0 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08B3 [0x5B 0x34 0x4D ] */ notedv PITCH_C3, 52, 77 +/* 0x08B6 [0x5B 0x34 0x4D ] */ notedv PITCH_C3, 52, 77 +/* 0x08B9 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08BC [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08BF [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08C2 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08C5 [0x5B 0x34 0x47 ] */ notedv PITCH_C3, 52, 71 +/* 0x08C8 [0x5B 0x34 0x47 ] */ notedv PITCH_C3, 52, 71 +/* 0x08CB [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08CE [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08D1 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08D4 [0x5B 0x34 0x4C ] */ notedv PITCH_C3, 52, 76 +/* 0x08D7 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08DA [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08DD [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08E0 [0x5B 0x34 0x59 ] */ notedv PITCH_C3, 52, 89 +/* 0x08E3 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08E6 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08E9 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08EC [0x5B 0x34 0x40 ] */ notedv PITCH_C3, 52, 64 +/* 0x08EF [0x5B 0x34 0x42 ] */ notedv PITCH_C3, 52, 66 +/* 0x08F2 [0x5B 0x34 0x45 ] */ notedv PITCH_C3, 52, 69 +/* 0x08F5 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08F8 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x08FB [0x5B 0x34 0x4B ] */ notedv PITCH_C3, 52, 75 +/* 0x08FE [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0901 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0904 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0907 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x090A [0x5B 0x34 0x55 ] */ notedv PITCH_C3, 52, 85 +/* 0x090D [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0910 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0913 [0x5B 0x34 0x4F ] */ notedv PITCH_C3, 52, 79 +/* 0x0916 [0x5B 0x34 0x4D ] */ notedv PITCH_C3, 52, 77 +/* 0x0919 [0x5B 0x34 0x47 ] */ notedv PITCH_C3, 52, 71 +/* 0x091C [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x091F [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0922 [0xF4 0x80 ] */ rjump LAYER_08A4 + +.layer LAYER_0924 +/* 0x0924 [0xCA 0x2A ] */ notepan 42 +/* 0x0926 [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x0929 [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x092C [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x092F [0xFB 0x09 0x34 ] */ jump LAYER_0934 + +.layer LAYER_0932 +/* 0x0932 [0xCA 0x45 ] */ notepan 69 +LAYER_0934: +/* 0x0934 [0xFC 0x0E 0xFC ] */ call LAYER_0EFC +/* 0x0937 [0x5B 0x30 0x2D ] */ notedv PITCH_C3, 48, 45 +/* 0x093A [0x5B 0x32 0x30 ] */ notedv PITCH_C3, 50, 48 +/* 0x093D [0x5B 0x34 0x2F ] */ notedv PITCH_C3, 52, 47 +/* 0x0940 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0943 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0946 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0949 [0x5B 0x34 0x50 ] */ notedv PITCH_C3, 52, 80 +/* 0x094C [0x5B 0x34 0x51 ] */ notedv PITCH_C3, 52, 81 +/* 0x094F [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0952 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0955 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0958 [0x5B 0x32 0x58 ] */ notedv PITCH_C3, 50, 88 +/* 0x095B [0x5B 0x34 0x54 ] */ notedv PITCH_C3, 52, 84 +/* 0x095E [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0961 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0964 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0967 [0x5B 0x32 0x5E ] */ notedv PITCH_C3, 50, 94 +/* 0x096A [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x096D [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0970 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0973 [0x5B 0x32 0x4C ] */ notedv PITCH_C3, 50, 76 +/* 0x0976 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0979 [0x5B 0x32 0x37 ] */ notedv PITCH_C3, 50, 55 +/* 0x097C [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x097F [0x5B 0x32 0x41 ] */ notedv PITCH_C3, 50, 65 +/* 0x0982 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0985 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0988 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x098B [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x098E [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x0991 [0x5B 0x36 0x53 ] */ notedv PITCH_C3, 54, 83 +/* 0x0994 [0x5B 0x34 0x57 ] */ notedv PITCH_C3, 52, 87 +/* 0x0997 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x099A [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x099D [0x5B 0x36 0x5B ] */ notedv PITCH_C3, 54, 91 +/* 0x09A0 [0x5B 0x34 0x55 ] */ notedv PITCH_C3, 52, 85 +/* 0x09A3 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x09A6 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x09A9 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x09AC [0x5B 0x34 0x41 ] */ notedv PITCH_C3, 52, 65 +/* 0x09AF [0x5B 0x30 0x3B ] */ notedv PITCH_C3, 48, 59 +/* 0x09B2 [0xFC 0x0F 0x6C ] */ call LAYER_0F6C +/* 0x09B5 [0xFB 0x09 0x34 ] */ jump LAYER_0934 + +.layer LAYER_09B8 +/* 0x09B8 [0xCA 0x28 ] */ notepan 40 +/* 0x09BA [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x09BD [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x09C0 [0xF4 0x4F ] */ rjump LAYER_0A11 + +.layer LAYER_09C2 +/* 0x09C2 [0xCA 0x32 ] */ notepan 50 +LAYER_09C4: +/* 0x09C4 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x09C7 [0x67 0x41 0x56 ] */ notedv PITCH_C4, 65, 86 +/* 0x09CA [0xC0 0x80 0x9F ] */ ldelay 159 +/* 0x09CD [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x09D0 [0x68 0x36 0x38 ] */ notedv PITCH_DF4, 54, 56 +/* 0x09D3 [0xC0 0x81 0x23 ] */ ldelay 291 +/* 0x09D6 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x09D9 [0x67 0x45 0x24 ] */ notedv PITCH_C4, 69, 36 +/* 0x09DC [0xC0 0x80 0x95 ] */ ldelay 149 +/* 0x09DF [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x09E2 [0x69 0x32 0x46 ] */ notedv PITCH_D4, 50, 70 +/* 0x09E5 [0xC0 0x80 0xE2 ] */ ldelay 226 +/* 0x09E8 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x09EB [0x67 0x4C 0x33 ] */ notedv PITCH_C4, 76, 51 +/* 0x09EE [0xC0 0x80 0x8F ] */ ldelay 143 +/* 0x09F1 [0x69 0x3D 0x46 ] */ notedv PITCH_D4, 61, 70 +/* 0x09F4 [0xC0 0x81 0x4E ] */ ldelay 334 +/* 0x09F7 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x09FA [0xF4 0xC8 ] */ rjump LAYER_09C4 + +.layer LAYER_09FC +/* 0x09FC [0xCA 0x58 ] */ notepan 88 +/* 0x09FE [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A01 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A04 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A07 [0xF4 0x08 ] */ rjump LAYER_0A11 + +.layer LAYER_0A09 +/* 0x0A09 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A0C [0xCA 0x4E ] */ notepan 78 +/* 0x0A0E [0xC0 0x80 0xD3 ] */ ldelay 211 +LAYER_0A11: +/* 0x0A11 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A14 [0xC0 0x81 0xBB ] */ ldelay 443 +/* 0x0A17 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A1A [0xC0 0x81 0x08 ] */ ldelay 264 +/* 0x0A1D [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A20 [0x67 0x47 0x2C ] */ notedv PITCH_C4, 71, 44 +/* 0x0A23 [0xC0 0x81 0xA3 ] */ ldelay 419 +/* 0x0A26 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A29 [0x67 0x47 0x40 ] */ notedv PITCH_C4, 71, 64 +/* 0x0A2C [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A2F [0x68 0x38 0x47 ] */ notedv PITCH_DF4, 56, 71 +/* 0x0A32 [0xC0 0x81 0x5F ] */ ldelay 351 +/* 0x0A35 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A38 [0x69 0x3C 0x59 ] */ notedv PITCH_D4, 60, 89 +/* 0x0A3B [0xC0 0x82 0xC1 ] */ ldelay 705 +/* 0x0A3E [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A41 [0x67 0x39 0x39 ] */ notedv PITCH_C4, 57, 57 +/* 0x0A44 [0xC0 0x81 0x60 ] */ ldelay 352 +/* 0x0A47 [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A4A [0xF4 0xC5 ] */ rjump LAYER_0A11 + +.layer LAYER_0A4C +/* 0x0A4C [0xCA 0x4E ] */ notepan 78 +/* 0x0A4E [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A51 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A54 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A57 [0xF4 0x51 ] */ rjump LAYER_0AAA + +.layer LAYER_0A59 +/* 0x0A59 [0xCA 0x46 ] */ notepan 70 +/* 0x0A5B [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A5E [0xC0 0x38 ] */ ldelay 56 +/* 0x0A60 [0xF4 0x48 ] */ rjump LAYER_0AAA + +.layer LAYER_0A62 +/* 0x0A62 [0xCA 0x28 ] */ notepan 40 +/* 0x0A64 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A67 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A6A [0xF4 0x02 ] */ rjump LAYER_0A6E + +.layer LAYER_0A6C +/* 0x0A6C [0xCA 0x32 ] */ notepan 50 +LAYER_0A6E: +/* 0x0A6E [0xFC 0x0F 0x57 ] */ call LAYER_0F57 +/* 0x0A71 [0x5F 0x61 0x4B ] */ notedv PITCH_E3, 97, 75 +/* 0x0A74 [0x5F 0x5E 0x4F ] */ notedv PITCH_E3, 94, 79 +/* 0x0A77 [0x5F 0x5F 0x4D ] */ notedv PITCH_E3, 95, 77 +/* 0x0A7A [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A7D [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A80 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A83 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A86 [0x60 0x69 0x4E ] */ notedv PITCH_F3, 105, 78 +/* 0x0A89 [0x60 0x70 0x4F ] */ notedv PITCH_F3, 112, 79 +/* 0x0A8C [0x60 0x6B 0x48 ] */ notedv PITCH_F3, 107, 72 +/* 0x0A8F [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A92 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A95 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0A98 [0x5F 0x5F 0x45 ] */ notedv PITCH_E3, 95, 69 +/* 0x0A9B [0x5F 0x59 0x4A ] */ notedv PITCH_E3, 89, 74 +/* 0x0A9E [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AA1 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AA4 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AA7 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +LAYER_0AAA: +/* 0x0AAA [0x5F 0x58 0x51 ] */ notedv PITCH_E3, 88, 81 +/* 0x0AAD [0x5F 0x5D 0x53 ] */ notedv PITCH_E3, 93, 83 +/* 0x0AB0 [0x5F 0x5B 0x4D ] */ notedv PITCH_E3, 91, 77 +/* 0x0AB3 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AB6 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AB9 [0x5F 0x66 0x45 ] */ notedv PITCH_E3, 102, 69 +/* 0x0ABC [0x5F 0x64 0x4A ] */ notedv PITCH_E3, 100, 74 +/* 0x0ABF [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AC2 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AC5 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AC8 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0ACB [0x60 0x66 0x4A ] */ notedv PITCH_F3, 102, 74 +/* 0x0ACE [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AD1 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AD4 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AD7 [0x5F 0x4E 0x57 ] */ notedv PITCH_E3, 78, 87 +/* 0x0ADA [0x5F 0x51 0x4E ] */ notedv PITCH_E3, 81, 78 +/* 0x0ADD [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AE0 [0xFC 0x0F 0x5E ] */ call LAYER_0F5E +/* 0x0AE3 [0xF4 0x89 ] */ rjump LAYER_0A6E + +.layer LAYER_0AE5 +/* 0x0AE5 [0xFF ] */ end + +.layer LAYER_0AE6 +/* 0x0AE6 [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0AE9 [0x67 0x80 0xA6 0x4B ] */ notedv PITCH_C4, 166, 75 +/* 0x0AED [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0AF0 [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0AF3 [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0AF6 [0x68 0x80 0xA6 0x4F ] */ notedv PITCH_DF4, 166, 79 +.layer LAYER_0AFA +/* 0x0AFA [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0AFD [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0B00 [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0B03 [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0B06 [0x68 0x80 0xA6 0x54 ] */ notedv PITCH_DF4, 166, 84 +/* 0x0B0A [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0B0D [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0B10 [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0B13 [0x67 0x80 0xA6 0x66 ] */ notedv PITCH_C4, 166, 102 +/* 0x0B17 [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0B1A [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0B1D [0xFC 0x0F 0x73 ] */ call LAYER_0F73 +/* 0x0B20 [0x67 0x80 0xA6 0x40 ] */ notedv PITCH_C4, 166, 64 +/* 0x0B24 [0xF4 0xC0 ] */ rjump LAYER_0AE6 + +.layer LAYER_0B26 +/* 0x0B26 [0xCF 0xEC ] */ releaserate 236 +/* 0x0B28 [0xC4 ] */ legato +/* 0x0B29 [0xCA 0x22 ] */ notepan 34 +/* 0x0B2B [0x67 0x2A 0x55 ] */ notedv PITCH_C4, 42, 85 +/* 0x0B2E [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B31 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B34 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B37 [0xF4 0x06 ] */ rjump LAYER_0B3F + +.layer LAYER_0B39 +/* 0x0B39 [0xCF 0xEC ] */ releaserate 236 +/* 0x0B3B [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B3E [0xC4 ] */ legato +LAYER_0B3F: +/* 0x0B3F [0xCA 0x5F ] */ notepan 95 +/* 0x0B41 [0xC7 0x85 0x26 0xFF ] */ portamento 0x85, PITCH_B3, 255 +/* 0x0B45 [0x68 0x34 0x4C ] */ notedv PITCH_DF4, 52, 76 +/* 0x0B48 [0x67 0x4F 0x4C ] */ notedv PITCH_C4, 79, 76 +/* 0x0B4B [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B4E [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B51 [0xCA 0x25 ] */ notepan 37 +/* 0x0B53 [0xC7 0x81 0x26 0x7F ] */ portamento 0x81, PITCH_B3, 127 +/* 0x0B57 [0x67 0x80 0xE1 0x63 ] */ notedv PITCH_C4, 225, 99 +/* 0x0B5B [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B5E [0xCA 0x31 ] */ notepan 49 +/* 0x0B60 [0x67 0x1A 0x51 ] */ notedv PITCH_C4, 26, 81 +/* 0x0B63 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B66 [0xCA 0x27 ] */ notepan 39 +/* 0x0B68 [0xC7 0x81 0x26 0x7F ] */ portamento 0x81, PITCH_B3, 127 +/* 0x0B6C [0x67 0x81 0x12 0x5B ] */ notedv PITCH_C4, 274, 91 +/* 0x0B70 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B73 [0xCA 0x37 ] */ notepan 55 +/* 0x0B75 [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +/* 0x0B79 [0x68 0x81 0x12 0x4E ] */ notedv PITCH_DF4, 274, 78 +/* 0x0B7D [0x68 0x5E 0x4E ] */ notedv PITCH_DF4, 94, 78 +/* 0x0B80 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B83 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B86 [0xCA 0x4A ] */ notepan 74 +/* 0x0B88 [0xC7 0x81 0x26 0x7F ] */ portamento 0x81, PITCH_B3, 127 +/* 0x0B8C [0x67 0x16 0x69 ] */ notedv PITCH_C4, 22, 105 +/* 0x0B8F [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B92 [0xCA 0x2E ] */ notepan 46 +/* 0x0B94 [0xC7 0x81 0x26 0x7F ] */ portamento 0x81, PITCH_B3, 127 +/* 0x0B98 [0x68 0x24 0x5E ] */ notedv PITCH_DF4, 36, 94 +/* 0x0B9B [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0B9E [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BA1 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BA4 [0xCA 0x5E ] */ notepan 94 +/* 0x0BA6 [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +/* 0x0BAA [0x68 0x81 0x12 0x4E ] */ notedv PITCH_DF4, 274, 78 +/* 0x0BAE [0x68 0x5E 0x4E ] */ notedv PITCH_DF4, 94, 78 +/* 0x0BB1 [0xF4 0x8C ] */ rjump LAYER_0B3F + +.layer LAYER_0BB3 +/* 0x0BB3 [0xCF 0xEC ] */ releaserate 236 +/* 0x0BB5 [0xC4 ] */ legato +/* 0x0BB6 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BB9 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BBC [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BBF [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BC2 [0xCA 0x54 ] */ notepan 84 +/* 0x0BC4 [0x68 0x5E 0x40 ] */ notedv PITCH_DF4, 94, 64 +/* 0x0BC7 [0xF4 0x09 ] */ rjump LAYER_0BD2 + +.layer LAYER_0BC9 +/* 0x0BC9 [0xCF 0xEC ] */ releaserate 236 +/* 0x0BCB [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BCE [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BD1 [0xC4 ] */ legato +LAYER_0BD2: +/* 0x0BD2 [0xCA 0x5E ] */ notepan 94 +/* 0x0BD4 [0xC7 0x81 0x26 0x7F ] */ portamento 0x81, PITCH_B3, 127 +/* 0x0BD8 [0x67 0x74 0x64 ] */ notedv PITCH_C4, 116, 100 +/* 0x0BDB [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BDE [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BE1 [0xCA 0x4C ] */ notepan 76 +/* 0x0BE3 [0xC7 0x85 0x27 0xFF ] */ portamento 0x85, PITCH_C4, 255 +/* 0x0BE7 [0x68 0x43 0x55 ] */ notedv PITCH_DF4, 67, 85 +/* 0x0BEA [0x66 0x80 0xF1 0x55 ] */ notedv PITCH_B3, 241, 85 +/* 0x0BEE [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BF1 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BF4 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BF7 [0xCA 0x39 ] */ notepan 57 +/* 0x0BF9 [0x67 0x44 0x4E ] */ notedv PITCH_C4, 68, 78 +/* 0x0BFC [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0BFF [0xCA 0x5E ] */ notepan 94 +/* 0x0C01 [0xC7 0x81 0x26 0x7F ] */ portamento 0x81, PITCH_B3, 127 +/* 0x0C05 [0x68 0x80 0x91 0x4E ] */ notedv PITCH_DF4, 145, 78 +/* 0x0C09 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0C0C [0xCA 0x26 ] */ notepan 38 +/* 0x0C0E [0xC7 0x81 0x26 0x7F ] */ portamento 0x81, PITCH_B3, 127 +/* 0x0C12 [0x68 0x59 0x60 ] */ notedv PITCH_DF4, 89, 96 +/* 0x0C15 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0C18 [0xCA 0x5E ] */ notepan 94 +/* 0x0C1A [0xC7 0x85 0x26 0xFF ] */ portamento 0x85, PITCH_B3, 255 +/* 0x0C1E [0x67 0x80 0xC3 0x63 ] */ notedv PITCH_C4, 195, 99 +/* 0x0C22 [0x66 0x17 0x63 ] */ notedv PITCH_B3, 23, 99 +/* 0x0C25 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0C28 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0C2B [0xCA 0x40 ] */ notepan 64 +/* 0x0C2D [0x66 0x11 0x4C ] */ notedv PITCH_B3, 17, 76 +/* 0x0C30 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0C33 [0xCA 0x25 ] */ notepan 37 +/* 0x0C35 [0x66 0x13 0x69 ] */ notedv PITCH_B3, 19, 105 +/* 0x0C38 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0C3B [0xCA 0x2B ] */ notepan 43 +/* 0x0C3D [0xC7 0x81 0x26 0x7F ] */ portamento 0x81, PITCH_B3, 127 +/* 0x0C41 [0x67 0x81 0x12 0x5B ] */ notedv PITCH_C4, 274, 91 +/* 0x0C45 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0C48 [0xFC 0x0F 0x49 ] */ call LAYER_0F49 +/* 0x0C4B [0xF4 0x85 ] */ rjump LAYER_0BD2 + +.layer LAYER_0C4D +/* 0x0C4D [0xCF 0xEC ] */ releaserate 236 +/* 0x0C4F [0xCA 0x22 ] */ notepan 34 +/* 0x0C51 [0xC0 0x18 ] */ ldelay 24 +/* 0x0C53 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C56 [0x67 0x2A 0x55 ] */ notedv PITCH_C4, 42, 85 +/* 0x0C59 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C5C [0xF4 0x02 ] */ rjump LAYER_0C60 + +.layer LAYER_0C5E +/* 0x0C5E [0xCF 0xEC ] */ releaserate 236 +LAYER_0C60: +/* 0x0C60 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C63 [0xCA 0x4B ] */ notepan 75 +/* 0x0C65 [0x67 0x34 0x5E ] */ notedv PITCH_C4, 52, 94 +/* 0x0C68 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C6B [0xCA 0x22 ] */ notepan 34 +/* 0x0C6D [0x67 0x80 0x9F 0x43 ] */ notedv PITCH_C4, 159, 67 +/* 0x0C71 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C74 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C77 [0xCA 0x48 ] */ notepan 72 +/* 0x0C79 [0x67 0x80 0xC5 0x4F ] */ notedv PITCH_C4, 197, 79 +/* 0x0C7D [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C80 [0xCA 0x29 ] */ notepan 41 +/* 0x0C82 [0x67 0x80 0x85 0x44 ] */ notedv PITCH_C4, 133, 68 +/* 0x0C86 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C89 [0xCA 0x31 ] */ notepan 49 +/* 0x0C8B [0x67 0x80 0xD3 0x63 ] */ notedv PITCH_C4, 211, 99 +/* 0x0C8F [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C92 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C95 [0xCA 0x44 ] */ notepan 68 +/* 0x0C97 [0x67 0x3B 0x5E ] */ notedv PITCH_C4, 59, 94 +/* 0x0C9A [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0C9D [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CA0 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CA3 [0xCA 0x69 ] */ notepan 105 +/* 0x0CA5 [0x67 0x80 0xC5 0x51 ] */ notedv PITCH_C4, 197, 81 +/* 0x0CA9 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CAC [0xCA 0x4C ] */ notepan 76 +/* 0x0CAE [0x67 0x3B 0x56 ] */ notedv PITCH_C4, 59, 86 +/* 0x0CB1 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CB4 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CB7 [0xF4 0xA7 ] */ rjump LAYER_0C60 + +.layer LAYER_0CB9 +/* 0x0CB9 [0xCF 0xEC ] */ releaserate 236 +/* 0x0CBB [0xCA 0x22 ] */ notepan 34 +/* 0x0CBD [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CC0 [0xC0 0x18 ] */ ldelay 24 +/* 0x0CC2 [0x67 0x5E 0x4D ] */ notedv PITCH_C4, 94, 77 +/* 0x0CC5 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CC8 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CCB [0xF4 0x05 ] */ rjump LAYER_0CD2 + +.layer LAYER_0CCD +/* 0x0CCD [0xCF 0xEC ] */ releaserate 236 +/* 0x0CCF [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +LAYER_0CD2: +/* 0x0CD2 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CD5 [0xCA 0x4B ] */ notepan 75 +/* 0x0CD7 [0x67 0x80 0x98 0x5E ] */ notedv PITCH_C4, 152, 94 +/* 0x0CDB [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CDE [0xCA 0x22 ] */ notepan 34 +/* 0x0CE0 [0x67 0x80 0xD2 0x54 ] */ notedv PITCH_C4, 210, 84 +/* 0x0CE4 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CE7 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CEA [0xCA 0x3B ] */ notepan 59 +/* 0x0CEC [0x67 0x80 0xA8 0x63 ] */ notedv PITCH_C4, 168, 99 +/* 0x0CF0 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CF3 [0xCA 0x5F ] */ notepan 95 +/* 0x0CF5 [0x67 0x25 0x4A ] */ notedv PITCH_C4, 37, 74 +/* 0x0CF8 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CFB [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0CFE [0xCA 0x51 ] */ notepan 81 +/* 0x0D00 [0x67 0x2C 0x58 ] */ notedv PITCH_C4, 44, 88 +/* 0x0D03 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0D06 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0D09 [0xCA 0x40 ] */ notepan 64 +/* 0x0D0B [0x67 0x4E 0x5B ] */ notedv PITCH_C4, 78, 91 +/* 0x0D0E [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0D11 [0xCA 0x25 ] */ notepan 37 +/* 0x0D13 [0x67 0x80 0x9E 0x44 ] */ notedv PITCH_C4, 158, 68 +/* 0x0D17 [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0D1A [0xCA 0x2D ] */ notepan 45 +/* 0x0D1C [0x67 0x73 0x4E ] */ notedv PITCH_C4, 115, 78 +/* 0x0D1F [0xFC 0x0F 0x50 ] */ call LAYER_0F50 +/* 0x0D22 [0xF4 0xAE ] */ rjump LAYER_0CD2 + +.layer LAYER_0D24 +/* 0x0D24 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +.layer LAYER_0D27 +/* 0x0D27 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +.layer LAYER_0D2A +/* 0x0D2A [0xCA 0x22 ] */ notepan 34 +/* 0x0D2C [0xC0 0x18 ] */ ldelay 24 +/* 0x0D2E [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D31 [0x67 0x2A 0x55 ] */ notedv PITCH_C4, 42, 85 +/* 0x0D34 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D37 [0xF4 0x03 ] */ rjump LAYER_0D3C + +.layer LAYER_0D39 +/* 0x0D39 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +LAYER_0D3C: +/* 0x0D3C [0xCA 0x4B ] */ notepan 75 +/* 0x0D3E [0x67 0x34 0x5E ] */ notedv PITCH_C4, 52, 94 +/* 0x0D41 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D44 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D47 [0xCA 0x2F ] */ notepan 47 +/* 0x0D49 [0x68 0x28 0x4C ] */ notedv PITCH_DF4, 40, 76 +/* 0x0D4C [0x68 0x2A 0x4D ] */ notedv PITCH_DF4, 42, 77 +/* 0x0D4F [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D52 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D55 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D58 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D5B [0xCA 0x3D ] */ notepan 61 +/* 0x0D5D [0x67 0x24 0x4C ] */ notedv PITCH_C4, 36, 76 +/* 0x0D60 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D63 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D66 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D69 [0xCA 0x25 ] */ notepan 37 +/* 0x0D6B [0x67 0x2B 0x41 ] */ notedv PITCH_C4, 43, 65 +/* 0x0D6E [0x67 0x33 0x41 ] */ notedv PITCH_C4, 51, 65 +/* 0x0D71 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D74 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D77 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D7A [0xCA 0x57 ] */ notepan 87 +/* 0x0D7C [0x67 0x21 0x58 ] */ notedv PITCH_C4, 33, 88 +/* 0x0D7F [0x67 0x2F 0x58 ] */ notedv PITCH_C4, 47, 88 +/* 0x0D82 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D85 [0xCA 0x47 ] */ notepan 71 +/* 0x0D87 [0x67 0x2D 0x4D ] */ notedv PITCH_C4, 45, 77 +/* 0x0D8A [0x67 0x27 0x4D ] */ notedv PITCH_C4, 39, 77 +/* 0x0D8D [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D90 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D93 [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D96 [0xCA 0x31 ] */ notepan 49 +/* 0x0D98 [0x67 0x37 0x55 ] */ notedv PITCH_C4, 55, 85 +/* 0x0D9B [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0D9E [0xFC 0x0F 0x65 ] */ call LAYER_0F65 +/* 0x0DA1 [0xF4 0x99 ] */ rjump LAYER_0D3C + +.channel CHAN_0DA3 +/* 0x0DA3 [0xC4 ] */ noshort +/* 0x0DA4 [0xE5 0x01 ] */ reverbidx 1 +/* 0x0DA6 [0xB0 0x10 0x30 ] */ ldfilter FILTER_1030 +/* 0x0DA9 [0xB3 0x00 ] */ filter 0, 0 +CHAN_0DAB: +/* 0x0DAB [0xFE ] */ delay1 +/* 0x0DAC [0x61 ] */ ldio IO_PORT_1 +/* 0x0DAD [0xC8 0x01 ] */ sub 1 +/* 0x0DAF [0xF3 0x02 ] */ rbeqz CHAN_0DB3 +/* 0x0DB1 [0xF4 0xF8 ] */ rjump CHAN_0DAB + +CHAN_0DB3: +/* 0x0DB3 [0xDF 0x50 ] */ vol 80 +/* 0x0DB5 [0xE0 0x7F ] */ volexp 127 +/* 0x0DB7 [0xDC 0x00 ] */ panweight 0 +/* 0x0DB9 [0xC1 0x12 ] */ instr SF2_INST_18 +/* 0x0DBB [0xDA 0x10 0x12 ] */ env ENVELOPE_1012 +/* 0x0DBE [0x88 0x0D 0xED ] */ ldlayer 0, LAYER_0DED +/* 0x0DC1 [0x89 0x0D 0xF9 ] */ ldlayer 1, LAYER_0DF9 +/* 0x0DC4 [0x8A 0x0D 0xFF ] */ ldlayer 2, LAYER_0DFF +CHAN_0DC7: +/* 0x0DC7 [0xFE ] */ delay1 +/* 0x0DC8 [0x64 ] */ ldio IO_PORT_4 +/* 0x0DC9 [0xF2 0x14 ] */ rbltz CHAN_0DDF +/* 0x0DCB [0xC9 0x3F ] */ and 63 +/* 0x0DCD [0xC7 0x00 0x0D 0xDE ] */ stseq 0, CHAN_0DDD + STSEQ_BEND +/* 0x0DD1 [0x64 ] */ ldio IO_PORT_4 +/* 0x0DD2 [0xC9 0x3F ] */ and 63 +/* 0x0DD4 [0xCB 0x0F 0x7A ] */ ldseq UNK_0F7A +/* 0x0DD7 [0xC7 0x50 0x0D 0xDC ] */ stseq 80, STSEQ_HERE + STSEQ_VOL +/* 0x0DDB [0xDF 0x60 ] */ vol 96 +CHAN_0DDD: +/* 0x0DDD [0xD3 0x00 ] */ bend 0 +CHAN_0DDF: +/* 0x0DDF [0x61 ] */ ldio IO_PORT_1 +/* 0x0DE0 [0xC8 0x00 ] */ sub 0 +/* 0x0DE2 [0xF3 0x02 ] */ rbeqz CHAN_0DE6 +/* 0x0DE4 [0xF4 0xE1 ] */ rjump CHAN_0DC7 + +CHAN_0DE6: +/* 0x0DE6 [0xD9 0x5C ] */ releaserate 92 +/* 0x0DE8 [0x90 ] */ dellayer 0 +/* 0x0DE9 [0x91 ] */ dellayer 1 +/* 0x0DEA [0x92 ] */ dellayer 2 +/* 0x0DEB [0xF4 0xBE ] */ rjump CHAN_0DAB + +.layer LAYER_0DED +/* 0x0DED [0xCA 0x54 ] */ notepan 84 +LAYER_0DEF: +/* 0x0DEF [0xC4 ] */ legato +/* 0x0DF0 [0xC7 0x01 0x22 0x64 ] */ portamento 0x01, PITCH_G3, 100 +LAYER_0DF4: +/* 0x0DF4 [0x67 0x60 0x64 ] */ notedv PITCH_C4, 96, 100 +/* 0x0DF7 [0xF4 0xFB ] */ rjump LAYER_0DF4 + +.layer LAYER_0DF9 +/* 0x0DF9 [0xC2 0x01 ] */ transpose 1 +/* 0x0DFB [0xCA 0x2C ] */ notepan 44 +/* 0x0DFD [0xF4 0xF0 ] */ rjump LAYER_0DEF + +.layer LAYER_0DFF +/* 0x0DFF [0xCD 0x14 ] */ stereo 1, 0, 1, 0, 0 +/* 0x0E01 [0xC4 ] */ legato +/* 0x0E02 [0xC7 0x01 0x22 0x64 ] */ portamento 0x01, PITCH_G3, 100 +LAYER_0E06: +/* 0x0E06 [0x65 0x60 0x64 ] */ notedv PITCH_BF3, 96, 100 +/* 0x0E09 [0xF4 0xFB ] */ rjump LAYER_0E06 + +.channel CHAN_0E0B +/* 0x0E0B [0xC4 ] */ noshort +/* 0x0E0C [0xE5 0x01 ] */ reverbidx 1 +/* 0x0E0E [0xB0 0x10 0x30 ] */ ldfilter FILTER_1030 +/* 0x0E11 [0xB3 0x00 ] */ filter 0, 0 +CHAN_0E13: +/* 0x0E13 [0xFE ] */ delay1 +/* 0x0E14 [0x61 ] */ ldio IO_PORT_1 +/* 0x0E15 [0xC8 0x01 ] */ sub 1 +/* 0x0E17 [0xF3 0x02 ] */ rbeqz CHAN_0E1B +/* 0x0E19 [0xF4 0xF8 ] */ rjump CHAN_0E13 + +CHAN_0E1B: +/* 0x0E1B [0xDF 0x5F ] */ vol 95 +/* 0x0E1D [0xE0 0x7F ] */ volexp 127 +/* 0x0E1F [0xDC 0x00 ] */ panweight 0 +/* 0x0E21 [0xD4 0x18 ] */ reverb 24 +CHAN_0E23: +/* 0x0E23 [0x88 0x0E 0xAD ] */ ldlayer 0, LAYER_0EAD +/* 0x0E26 [0x89 0x0E 0xA7 ] */ ldlayer 1, LAYER_0EA7 +/* 0x0E29 [0xCC 0x01 ] */ ldi 1 +/* 0x0E2B [0x77 ] */ stio IO_PORT_7 +CHAN_0E2C: +/* 0x0E2C [0xFE ] */ delay1 +/* 0x0E2D [0x60 ] */ ldio IO_PORT_0 +/* 0x0E2E [0x72 ] */ stio IO_PORT_2 +/* 0x0E2F [0xF3 0x2B ] */ rbeqz CHAN_0E5C +/* 0x0E31 [0x61 ] */ ldio IO_PORT_1 +/* 0x0E32 [0xC8 0x00 ] */ sub 0 +/* 0x0E34 [0xF3 0x22 ] */ rbeqz CHAN_0E58 +/* 0x0E36 [0x67 ] */ ldio IO_PORT_7 +/* 0x0E37 [0xC8 0x01 ] */ sub 1 +/* 0x0E39 [0x77 ] */ stio IO_PORT_7 +/* 0x0E3A [0xF3 0x02 ] */ rbeqz CHAN_0E3E +/* 0x0E3C [0xF4 0xEE ] */ rjump CHAN_0E2C + +CHAN_0E3E: +/* 0x0E3E [0xB8 0x5A ] */ rand 90 +/* 0x0E40 [0xC7 0x0A 0x0E 0xBD ] */ stseq 10, LAYER_0EBC + STSEQ_NOTEDV_DELAY_HI +/* 0x0E44 [0xC7 0x0A 0x0E 0xC0 ] */ stseq 10, LAYER_0EBF + STSEQ_LDELAY +/* 0x0E48 [0xB8 0x28 ] */ rand 40 +/* 0x0E4A [0xC7 0x44 0x0E 0xBB ] */ stseq 68, LAYER_0EB8 + STSEQ_NOTEDV_VELOCITY +/* 0x0E4E [0xC7 0x44 0x0E 0xBF ] */ stseq 68, LAYER_0EBF + STSEQ_GENERAL_OPCODE +/* 0x0E52 [0x76 ] */ stio IO_PORT_6 +/* 0x0E53 [0xCC 0x32 ] */ ldi 50 +/* 0x0E55 [0x77 ] */ stio IO_PORT_7 +/* 0x0E56 [0xF4 0xD4 ] */ rjump CHAN_0E2C + +CHAN_0E58: +/* 0x0E58 [0x90 ] */ dellayer 0 +/* 0x0E59 [0x91 ] */ dellayer 1 +/* 0x0E5A [0xF4 0xB7 ] */ rjump CHAN_0E13 + +CHAN_0E5C: +/* 0x0E5C [0xDF 0x73 ] */ vol 115 +/* 0x0E5E [0x65 ] */ ldio IO_PORT_5 +/* 0x0E5F [0xF5 0x0E 0x64 ] */ bgez CHAN_0E64 +/* 0x0E62 [0xCC 0x00 ] */ ldi 0 +CHAN_0E64: +/* 0x0E64 [0xC9 0x3F ] */ and 63 +/* 0x0E66 [0x75 ] */ stio IO_PORT_5 +/* 0x0E67 [0xCC 0x3F ] */ ldi 63 +/* 0x0E69 [0x55 ] */ subio IO_PORT_5 +/* 0x0E6A [0xC8 0xD0 ] */ sub 208 +/* 0x0E6C [0xC7 0x00 0x0E 0x73 ] */ stseq 0, CHAN_0E72 + STSEQ_STSEQ_IMM +/* 0x0E70 [0xB8 0x10 ] */ rand 16 +CHAN_0E72: +/* 0x0E72 [0xC7 0x64 0x0E 0xD2 ] */ stseq 100, LAYER_0ECF + STSEQ_NOTEDV_VELOCITY +/* 0x0E76 [0xCC 0x3F ] */ ldi 63 +/* 0x0E78 [0x55 ] */ subio IO_PORT_5 +/* 0x0E79 [0xCB 0x0F 0xBA ] */ ldseq UNK_0FBA +/* 0x0E7C [0xCB 0x0F 0x7A ] */ ldseq UNK_0F7A +/* 0x0E7F [0x74 ] */ stio IO_PORT_4 +/* 0x0E80 [0xC7 0x67 0x0E 0x88 ] */ stseq 103, CHAN_0E87 + 1 +/* 0x0E84 [0xB8 0x02 ] */ rand 2 +/* 0x0E86 [0x73 ] */ stio IO_PORT_3 +CHAN_0E87: +/* 0x0E87 [0xC7 0x67 0x0E 0xCF ] */ stseq (NOTEDV_OPCODE | PITCH_C4), LAYER_0ECF + STSEQ_NOTEDV_OPCODE_PITCH +/* 0x0E8B [0xB8 0x1E ] */ rand 30 +/* 0x0E8D [0xC7 0x31 0x0E 0xCC ] */ stseq 49, LAYER_0ECB + STSEQ_NOTEPAN +/* 0x0E91 [0x76 ] */ stio IO_PORT_6 +/* 0x0E92 [0x88 0x0E 0xC7 ] */ ldlayer 0, LAYER_0EC7 +/* 0x0E95 [0x89 0x0E 0xC5 ] */ ldlayer 1, LAYER_0EC5 +CHAN_0E98: +/* 0x0E98 [0xFE ] */ delay1 +/* 0x0E99 [0x60 ] */ ldio IO_PORT_0 +/* 0x0E9A [0xF3 0xC0 ] */ rbeqz CHAN_0E5C +/* 0x0E9C [0x61 ] */ ldio IO_PORT_1 +/* 0x0E9D [0xC8 0x00 ] */ sub 0 +/* 0x0E9F [0xF3 0xB7 ] */ rbeqz CHAN_0E58 +/* 0x0EA1 [0x80 ] */ testlayer 0 +/* 0x0EA2 [0xF3 0xF4 ] */ rbeqz CHAN_0E98 +/* 0x0EA4 [0xFB 0x0E 0x23 ] */ jump CHAN_0E23 + +.layer LAYER_0EA7 +/* 0x0EA7 [0xC2 0xF4 ] */ transpose -12 +LAYER_0EA9: +/* 0x0EA9 [0xCD 0x14 ] */ stereo 1, 0, 1, 0, 0 +/* 0x0EAB [0xF4 0x00 ] */ rjump LAYER_0EAD + +.layer LAYER_0EAD +/* 0x0EAD [0xC6 0x13 ] */ instr SF2_INST_19 +/* 0x0EAF [0xCB 0x10 0x1E 0x61 ] */ env ENVELOPE_101E, 97 +LAYER_0EB3: +/* 0x0EB3 [0xC7 0x85 0x1B 0xFF ] */ portamento 0x85, PITCH_C3, 255 +/* 0x0EB7 [0xC4 ] */ legato +LAYER_0EB8: +/* 0x0EB8 [0x58 0x81 0xC2 0x6E ] */ notedv PITCH_A2, 450, 110 +LAYER_0EBC: +/* 0x0EBC [0x58 0x64 0x6E ] */ notedv PITCH_A2, 100, 110 +LAYER_0EBF: +/* 0x0EBF [0xC0 0x60 ] */ ldelay 96 +/* 0x0EC1 [0xC5 ] */ nolegato +/* 0x0EC2 [0xC8 ] */ noportamento +/* 0x0EC3 [0xF4 0xEE ] */ rjump LAYER_0EB3 + +.layer LAYER_0EC5 +/* 0x0EC5 [0xC2 0xF4 ] */ transpose -12 +.layer LAYER_0EC7 +/* 0x0EC7 [0xC6 0x14 ] */ instr SF2_INST_20 +/* 0x0EC9 [0xCF 0x61 ] */ releaserate 97 +LAYER_0ECB: +/* 0x0ECB [0xCA 0x40 ] */ notepan 64 +/* 0x0ECD [0xC0 0x01 ] */ ldelay 1 +LAYER_0ECF: +/* 0x0ECF [0x67 0x80 0xC8 0x7F ] */ notedv PITCH_C4, 200, 127 +LAYER_0ED3: +/* 0x0ED3 [0xCD 0x14 ] */ stereo 1, 0, 1, 0, 0 +/* 0x0ED5 [0x4C 0x28 0x50 ] */ notedv PITCH_A1, 40, 80 +/* 0x0ED8 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0EDA [0xFF ] */ end + +.channel CHAN_0EDB +/* 0x0EDB [0x67 ] */ ldio IO_PORT_7 +/* 0x0EDC [0xC8 0x02 ] */ sub 2 +/* 0x0EDE [0xF3 0x04 ] */ rbeqz CHAN_0EE4 +/* 0x0EE0 [0xCC 0x00 ] */ ldi 0 +/* 0x0EE2 [0xF4 0x02 ] */ rjump CHAN_0EE6 + +CHAN_0EE4: +/* 0x0EE4 [0xCC 0x14 ] */ ldi 20 +CHAN_0EE6: +/* 0x0EE6 [0xC7 0x00 0x0E 0xFB ] */ stseq 0, UNK_0EFB +/* 0x0EEA [0xC7 0x00 0x0E 0x00 ] */ stseq 0, LAYER_0DFF + STSEQ_STEREO +/* 0x0EEE [0xC7 0x00 0x0E 0xAA ] */ stseq 0, LAYER_0EA9 + STSEQ_STEREO +/* 0x0EF2 [0xC7 0x00 0x0E 0xD4 ] */ stseq 0, LAYER_0ED3 + STSEQ_STEREO +/* 0x0EF6 [0xC7 0x00 0x03 0x63 ] */ stseq 0, LAYER_0362 + STSEQ_STEREO +/* 0x0EFA [0xFF ] */ end + +UNK_0EFB: + .byte 0x00 + +.layer LAYER_0EFC +/* 0x0EFC [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0EFE +/* 0x0EFE [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F00 +/* 0x0F00 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F02 [0xFF ] */ end + +.layer LAYER_0F03 +/* 0x0F03 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F05 +/* 0x0F05 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F07 +/* 0x0F07 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F09 [0xFF ] */ end + +.layer LAYER_0F0A +/* 0x0F0A [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F0C +/* 0x0F0C [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F0E +/* 0x0F0E [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F10 [0xFF ] */ end + +.layer LAYER_0F11 +/* 0x0F11 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F13 +/* 0x0F13 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F15 +/* 0x0F15 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F17 [0xFF ] */ end + +.layer LAYER_0F18 +/* 0x0F18 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F1A +/* 0x0F1A [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F1C +/* 0x0F1C [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F1E [0xFF ] */ end + +.layer LAYER_0F1F +/* 0x0F1F [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F21 +/* 0x0F21 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F23 +/* 0x0F23 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F25 [0xFF ] */ end + +.layer LAYER_0F26 +/* 0x0F26 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F28 +/* 0x0F28 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F2A +/* 0x0F2A [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F2C [0xFF ] */ end + +.layer LAYER_0F2D +/* 0x0F2D [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F2F +/* 0x0F2F [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F31 +/* 0x0F31 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F33 [0xFF ] */ end + +.layer LAYER_0F34 +/* 0x0F34 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F36 +/* 0x0F36 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F38 +/* 0x0F38 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F3A [0xFF ] */ end + +.layer LAYER_0F3B +/* 0x0F3B [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F3D +/* 0x0F3D [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F3F +/* 0x0F3F [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F41 [0xFF ] */ end + +.layer LAYER_0F42 +/* 0x0F42 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F44 +/* 0x0F44 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F46 +/* 0x0F46 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F48 [0xFF ] */ end + +.layer LAYER_0F49 +/* 0x0F49 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F4B +/* 0x0F4B [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F4D +/* 0x0F4D [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F4F [0xFF ] */ end + +.layer LAYER_0F50 +/* 0x0F50 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F52 +/* 0x0F52 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F54 +/* 0x0F54 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F56 [0xFF ] */ end + +.layer LAYER_0F57 +/* 0x0F57 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F59 +/* 0x0F59 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F5B +/* 0x0F5B [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F5D [0xFF ] */ end + +.layer LAYER_0F5E +/* 0x0F5E [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F60 +/* 0x0F60 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F62 +/* 0x0F62 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F64 [0xFF ] */ end + +.layer LAYER_0F65 +/* 0x0F65 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F67 +/* 0x0F67 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F69 +/* 0x0F69 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F6B [0xFF ] */ end + +.layer LAYER_0F6C +/* 0x0F6C [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F6E +/* 0x0F6E [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F70 +/* 0x0F70 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F72 [0xFF ] */ end + +.layer LAYER_0F73 +/* 0x0F73 [0xC0 0x64 ] */ ldelay 100 +.layer LAYER_0F75 +/* 0x0F75 [0xC0 0x7F ] */ ldelay 127 +.layer LAYER_0F77 +/* 0x0F77 [0xCD 0x00 ] */ stereo 0, 0, 0, 0, 0 +/* 0x0F79 [0xFF ] */ end + +UNK_0F7A: + .byte 0x00, 0x00 + .byte 0x01, 0x01 + .byte 0x02, 0x02 + .byte 0x03, 0x03 + .byte 0x04, 0x04 + .byte 0x05, 0x05 + .byte 0x06, 0x06 + .byte 0x07, 0x07 + .byte 0x08, 0x08 + .byte 0x09, 0x09 + .byte 0x0A, 0x0A + .byte 0x0B, 0x0B + .byte 0x0C, 0x0C + .byte 0x0D, 0x0D + .byte 0x0E, 0x0E + .byte 0x0F, 0x0F + .byte 0x10, 0x10 + .byte 0x11, 0x11 + .byte 0x12, 0x12 + .byte 0x13, 0x13 + .byte 0x14, 0x14 + .byte 0x15, 0x15 + .byte 0x16, 0x16 + .byte 0x17, 0x17 + .byte 0x18, 0x18 + .byte 0x19, 0x19 + .byte 0x1A, 0x1A + .byte 0x1B, 0x1B + .byte 0x1C, 0x1C + .byte 0x1D, 0x1D + .byte 0x1E, 0x1E + .byte 0x1F, 0x1F + +UNK_0FBA: + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x01, 0x01, 0x01, 0x01 + .byte 0x02, 0x02, 0x02, 0x02 + .byte 0x03, 0x03, 0x03, 0x03 + .byte 0x04, 0x04, 0x04, 0x04 + .byte 0x05, 0x05, 0x05, 0x05 + .byte 0x06, 0x06, 0x06, 0x06 + .byte 0x07, 0x07, 0x07, 0x07 + .byte 0x08, 0x08, 0x08, 0x08 + .byte 0x09, 0x09, 0x09, 0x09 + .byte 0x0A, 0x0A, 0x0A, 0x0A + .byte 0x0B, 0x0B, 0x0B, 0x0B + .byte 0x0C, 0x0C, 0x0C, 0x0C + .byte 0x0D, 0x0D, 0x0D, 0x0D + .byte 0x0E, 0x0E, 0x0E, 0x0E + .byte 0x0F, 0x0F, 0x0F, 0x0F + +.envelope ENVELOPE_0FFA + point 270, 32700 + point 125, 32700 + goto 1 + +.envelope ENVELOPE_1006 + point 25, 32700 + point 310, 5000 + hang + +.envelope ENVELOPE_1012 + point 2000, 32700 + point 32700, 32700 + hang + +.envelope ENVELOPE_101E + point 100, 32700 + point 2000, 10000 + hang + +.filter FILTER_1030 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.endseq Sequence_1 diff --git a/assets/audio/sequences/seq_109.prg.seq b/assets/audio/sequences/seq_109.prg.seq new file mode 100644 index 0000000000..77e678369a --- /dev/null +++ b/assets/audio/sequences/seq_109.prg.seq @@ -0,0 +1,1137 @@ +#include "aseq.h" +#include "Soundfont_1.h" +#include "Soundfont_0.h" + +.startseq Sequence_109 + +.sequence SEQ_0000 +/* 0x0000 [0xD3 0x60 ] */ mutebhv 0x60 +/* 0x0002 [0xD5 0x00 ] */ mutescale 0 +/* 0x0004 [0xDB 0x7F ] */ vol 127 +/* 0x0006 [0xDD 0x78 ] */ tempo 120 +/* 0x0008 [0xD7 0x00 0x01 ] */ initchan 0b1 +/* 0x000B [0x90 0x00 0x13 ] */ ldchan 0, CHAN_0013 +SEQ_000E: +/* 0x000E [0xFE ] */ delay1 +/* 0x000F [0x00 ] */ testchan 0 +/* 0x0010 [0xF3 0xFC ] */ rbeqz SEQ_000E +/* 0x0012 [0xFF ] */ end + +.channel CHAN_0013 +/* 0x0013 [0xC4 ] */ noshort +/* 0x0014 [0xCA 0x20 ] */ mutebhv 0x20 +/* 0x0016 [0xD0 0x80 ] */ effects TRUE, 0, 0, 0, 0, 0 +/* 0x0018 [0xE9 0x0E ] */ notepri 0, 14 +/* 0x001A [0xE5 0x01 ] */ reverbidx 1 +/* 0x001C [0xC6 0x00 ] */ font Soundfont_0_ID +/* 0x001E [0xD4 0x0F ] */ reverb 15 +/* 0x0020 [0xDC 0x7F ] */ panweight 127 +/* 0x0022 [0xC2 0x06 0x46 ] */ dyntbl TABLE_0646 +/* 0x0025 [0x60 ] */ ldio 0 +/* 0x0026 [0xF2 0x05 ] */ rbltz CHAN_002D +/* 0x0028 [0xE4 ] */ dyncall +CHAN_0029: +/* 0x0029 [0xFE ] */ delay1 +/* 0x002A [0x80 ] */ testlayer 0 +/* 0x002B [0xF3 0xFC ] */ rbeqz CHAN_0029 +CHAN_002D: +/* 0x002D [0xFF ] */ end + +.channel CHAN_002E +/* 0x002E [0xD4 0x1E ] */ reverb 30 +/* 0x0030 [0xDC 0x76 ] */ panweight 118 +/* 0x0032 [0x88 0x00 0x45 ] */ ldlayer 0, LAYER_0045 +/* 0x0035 [0x89 0x00 0x58 ] */ ldlayer 1, LAYER_0058 +/* 0x0038 [0x8A 0x00 0x71 ] */ ldlayer 2, LAYER_0071 +/* 0x003B [0x01 ] */ cdelay 1 +/* 0x003C [0xE2 0x3C 0x00 0x12 ] */ vibdepthgrad 60, 0, 18 +/* 0x0040 [0xE1 0xF0 0x14 0x12 ] */ vibfreqgrad 240, 20, 18 +/* 0x0044 [0xFF ] */ end + +.layer LAYER_0045 +/* 0x0045 [0xCA 0x7F ] */ notepan 127 +/* 0x0047 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x0049 [0xC2 0x18 ] */ transpose 24 +/* 0x004B [0xCB 0x07 0x8A 0xE6 ] */ env ENVELOPE_078A, 230 +/* 0x004F [0x70 0x81 0x0E 0x50 ] */ notedv PITCH_A4, 270, 80 +/* 0x0053 [0x7C 0x81 0x2C 0x50 ] */ notedv PITCH_A5, 300, 80 +/* 0x0057 [0xFF ] */ end + +.layer LAYER_0058 +/* 0x0058 [0xCA 0x00 ] */ notepan 0 +/* 0x005A [0xC0 0x01 ] */ ldelay 1 +/* 0x005C [0xC6 0x33 ] */ instr SF0_INST_51 +/* 0x005E [0xC2 0x30 ] */ transpose 48 +/* 0x0060 [0xCB 0x07 0x8A 0xB4 ] */ env ENVELOPE_078A, 180 +/* 0x0064 [0xC7 0x81 0x38 0xFF ] */ portamento 0x81, PITCH_F5, 255 +/* 0x0068 [0x78 0x80 0xFA 0x48 ] */ notedv PITCH_F5, 250, 72 +/* 0x006C [0x7C 0x81 0x40 0x48 ] */ notedv PITCH_A5, 320, 72 +/* 0x0070 [0xFF ] */ end + +.layer LAYER_0071 +/* 0x0071 [0xC0 0x01 ] */ ldelay 1 +/* 0x0073 [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x0075 [0xCB 0x07 0x8A 0xE6 ] */ env ENVELOPE_078A, 230 +/* 0x0079 [0xC7 0x01 0x0F 0x85 0xC8] */ portamento 0x01, PITCH_C2, 1480 +/* 0x007E [0x73 0x82 0x3A 0x40 ] */ notedv PITCH_C5, 570, 64 +/* 0x0082 [0xFF ] */ end + +.channel CHAN_0083 +/* 0x0083 [0x88 0x00 0x99 ] */ ldlayer 0, LAYER_0099 +/* 0x0086 [0x89 0x00 0xA6 ] */ ldlayer 1, LAYER_00A6 +/* 0x0089 [0x8A 0x00 0xB7 ] */ ldlayer 2, LAYER_00B7 +/* 0x008C [0x01 ] */ cdelay 1 +/* 0x008D [0xE1 0x7F 0xFF 0x28 ] */ vibfreqgrad 127, 255, 40 +/* 0x0091 [0xE2 0x14 0x7F 0x28 ] */ vibdepthgrad 20, 127, 40 +/* 0x0095 [0x01 ] */ cdelay 1 +/* 0x0096 [0xD8 0x00 ] */ vibdepth 0 +/* 0x0098 [0xFF ] */ end + +.layer LAYER_0099 +/* 0x0099 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x009B [0xCB 0x08 0xD2 0xDD ] */ env ENVELOPE_08D2, 221 +/* 0x009F [0xC2 0x18 ] */ transpose 24 +/* 0x00A1 [0x73 0x81 0x90 0x69 ] */ notedv PITCH_C5, 400, 105 +/* 0x00A5 [0xFF ] */ end + +.layer LAYER_00A6 +/* 0x00A6 [0xC0 0x01 ] */ ldelay 1 +/* 0x00A8 [0xC6 0x45 ] */ instr SF0_INST_69 +/* 0x00AA [0xCB 0x09 0x0A 0xE0 ] */ env ENVELOPE_090A, 224 +/* 0x00AE [0xC7 0x81 0x03 0xFF ] */ portamento 0x81, PITCH_C1, 255 +/* 0x00B2 [0x5F 0x81 0x2C 0x41 ] */ notedv PITCH_E3, 300, 65 +/* 0x00B6 [0xFF ] */ end + +.layer LAYER_00B7 +/* 0x00B7 [0xC6 0x08 ] */ instr SF0_INST_8 +/* 0x00B9 [0xC7 0x81 0x18 0x19 ] */ portamento 0x81, PITCH_A2, 25 +/* 0x00BD [0x5D 0x46 0x55 ] */ notedv PITCH_D3, 70, 85 +/* 0x00C0 [0xC0 0x80 0xC8 ] */ ldelay 200 +/* 0x00C3 [0xCB 0x09 0x16 0xDD ] */ env ENVELOPE_0916, 221 +/* 0x00C7 [0xC7 0x81 0x1B 0x19 ] */ portamento 0x81, PITCH_C3, 25 +/* 0x00CB [0x60 0x80 0x96 0x55 ] */ notedv PITCH_F3, 150, 85 +/* 0x00CF [0xFF ] */ end + +.channel CHAN_00D0 +/* 0x00D0 [0x88 0x00 0xF7 ] */ ldlayer 0, LAYER_00F7 +/* 0x00D3 [0x89 0x00 0xDE ] */ ldlayer 1, LAYER_00DE +/* 0x00D6 [0x8A 0x00 0xEF ] */ ldlayer 2, LAYER_00EF +/* 0x00D9 [0xD7 0xFF ] */ vibfreq 255 +/* 0x00DB [0xD8 0x28 ] */ vibdepth 40 +/* 0x00DD [0xFF ] */ end + +.layer LAYER_00DE +/* 0x00DE [0xC2 0x30 ] */ transpose 48 +/* 0x00E0 [0xC6 0x2C ] */ instr SF0_INST_44 +/* 0x00E2 [0xCF 0xDD ] */ releaserate 221 +/* 0x00E4 [0xC7 0x84 0x16 0x7F ] */ portamento 0x84, PITCH_G2, 127 +/* 0x00E8 [0x70 0x60 0x55 ] */ notedv PITCH_A4, 96, 85 +/* 0x00EB [0x72 0x7F 0x5F ] */ notedv PITCH_B4, 127, 95 +/* 0x00EE [0xFF ] */ end + +.layer LAYER_00EF +/* 0x00EF [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x00F1 [0xCB 0x07 0x2A 0xDD ] */ env ENVELOPE_072A, 221 +/* 0x00F5 [0xF4 0x06 ] */ rjump LAYER_00FD + +.layer LAYER_00F7 +/* 0x00F7 [0xC6 0x0D ] */ instr SF0_INST_13 +/* 0x00F9 [0xC2 0x24 ] */ transpose 36 +/* 0x00FB [0xCF 0xDD ] */ releaserate 221 +LAYER_00FD: +/* 0x00FD [0xC7 0x85 0x2E 0xFF ] */ portamento 0x85, PITCH_G4, 255 +/* 0x0101 [0x58 0x3C 0x5A ] */ notedv PITCH_A2, 60, 90 +/* 0x0104 [0xCB 0x07 0x12 0xDD ] */ env ENVELOPE_0712, 221 +/* 0x0108 [0x64 0x24 0x5A ] */ notedv PITCH_A3, 36, 90 +/* 0x010B [0xC7 0x85 0x33 0xFF ] */ portamento 0x85, PITCH_C5, 255 +/* 0x010F [0x5B 0x7F 0x5A ] */ notedv PITCH_C3, 127, 90 +/* 0x0112 [0xFF ] */ end + +.channel CHAN_0113 +/* 0x0113 [0x88 0x01 0x27 ] */ ldlayer 0, LAYER_0127 +/* 0x0116 [0x89 0x01 0x1A ] */ ldlayer 1, LAYER_011A +/* 0x0119 [0xFF ] */ end + +.layer LAYER_011A +/* 0x011A [0xC2 0x24 ] */ transpose 36 +/* 0x011C [0xC6 0x2E ] */ instr SF0_INST_46 +/* 0x011E [0xCB 0x08 0x7A 0xB4 ] */ env ENVELOPE_087A, 180 +/* 0x0122 [0x6B 0x82 0x26 0x46 ] */ notedv PITCH_E4, 550, 70 +/* 0x0126 [0xFF ] */ end + +.layer LAYER_0127 +/* 0x0127 [0xC2 0x1E ] */ transpose 30 +/* 0x0129 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x012B [0xCB 0x08 0x7A 0xDD ] */ env ENVELOPE_087A, 221 +/* 0x012F [0x60 0x80 0x9B 0x64 ] */ notedv PITCH_F3, 155, 100 +/* 0x0133 [0x6C 0x7F 0x64 ] */ notedv PITCH_F4, 127, 100 +/* 0x0136 [0xC2 0x24 ] */ transpose 36 +/* 0x0138 [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x013A [0xCB 0x08 0x8A 0xDD ] */ env ENVELOPE_088A, 221 +/* 0x013E [0x67 0x80 0xF8 0x64 ] */ notedv PITCH_C4, 248, 100 +/* 0x0142 [0xFF ] */ end + +.channel CHAN_0143 +/* 0x0143 [0x88 0x01 0x4D ] */ ldlayer 0, LAYER_014D +/* 0x0146 [0x89 0x01 0x27 ] */ ldlayer 1, LAYER_0127 +/* 0x0149 [0x8A 0x01 0x1A ] */ ldlayer 2, LAYER_011A +/* 0x014C [0xFF ] */ end + +.layer LAYER_014D +/* 0x014D [0xC0 0x81 0x90 ] */ ldelay 400 +/* 0x0150 [0xFF ] */ end + +.channel CHAN_0151 +/* 0x0151 [0xD4 0x1E ] */ reverb 30 +/* 0x0153 [0x89 0x01 0x72 ] */ ldlayer 1, LAYER_0172 +.channel CHAN_0156 +/* 0x0156 [0xC1 0x11 ] */ instr SF0_INST_17 +/* 0x0158 [0x88 0x01 0x65 ] */ ldlayer 0, LAYER_0165 +/* 0x015B [0x8A 0x01 0x82 ] */ ldlayer 2, LAYER_0182 +/* 0x015E [0xD7 0xA0 ] */ vibfreq 160 +/* 0x0160 [0xE2 0x00 0x30 0x09 ] */ vibdepthgrad 0, 48, 9 +/* 0x0164 [0xFF ] */ end + +.layer LAYER_0165 +/* 0x0165 [0xCB 0x07 0x8A 0xE7 ] */ env ENVELOPE_078A, 231 +/* 0x0169 [0xC7 0x81 0x26 0xFF ] */ portamento 0x81, PITCH_B3, 255 +/* 0x016D [0x60 0x82 0x4E 0x4B ] */ notedv PITCH_F3, 590, 75 +/* 0x0171 [0xFF ] */ end + +.layer LAYER_0172 +/* 0x0172 [0xC0 0x81 0x5E ] */ ldelay 350 +/* 0x0175 [0xCB 0x07 0x92 0xE7 ] */ env ENVELOPE_0792, 231 +/* 0x0179 [0xC7 0x81 0x03 0xFF ] */ portamento 0x81, PITCH_C1, 255 +/* 0x017D [0x5B 0x80 0xF0 0x64 ] */ notedv PITCH_C3, 240, 100 +/* 0x0181 [0xFF ] */ end + +.layer LAYER_0182 +/* 0x0182 [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x0184 [0xCB 0x07 0x92 0xE7 ] */ env ENVELOPE_0792, 231 +/* 0x0188 [0x63 0x82 0x08 0x5C ] */ notedv PITCH_AF3, 520, 92 +/* 0x018C [0xFF ] */ end + +.channel CHAN_018D +/* 0x018D [0x21 0x02 0x51 ] */ ldchan 1, CHAN_0251 +/* 0x0190 [0x88 0x01 0xD4 ] */ ldlayer 0, LAYER_01D4 +/* 0x0193 [0x89 0x01 0xE9 ] */ ldlayer 1, LAYER_01E9 +/* 0x0196 [0x8A 0x02 0x43 ] */ ldlayer 2, LAYER_0243 +/* 0x0199 [0xDD 0x3A ] */ pan 58 +/* 0x019B [0xFD 0x30 ] */ delay 48 +/* 0x019D [0xDB 0x01 ] */ transpose 1 +/* 0x019F [0x88 0x01 0xD4 ] */ ldlayer 0, LAYER_01D4 +/* 0x01A2 [0x89 0x01 0xE9 ] */ ldlayer 1, LAYER_01E9 +/* 0x01A5 [0x8A 0x02 0x4A ] */ ldlayer 2, LAYER_024A +/* 0x01A8 [0xDD 0x46 ] */ pan 70 +/* 0x01AA [0xFD 0x47 ] */ delay 71 +/* 0x01AC [0xDB 0x02 ] */ transpose 2 +/* 0x01AE [0x88 0x01 0xD4 ] */ ldlayer 0, LAYER_01D4 +/* 0x01B1 [0x89 0x01 0xE9 ] */ ldlayer 1, LAYER_01E9 +/* 0x01B4 [0x8A 0x01 0xFA ] */ ldlayer 2, LAYER_01FA +/* 0x01B7 [0xDD 0x40 ] */ pan 64 +/* 0x01B9 [0xFD 0x80 0x8E ] */ delay 142 +/* 0x01BC [0xDB 0x00 ] */ transpose 0 +/* 0x01BE [0x88 0x02 0x01 ] */ ldlayer 0, LAYER_0201 +/* 0x01C1 [0x89 0x02 0x10 ] */ ldlayer 1, LAYER_0210 +/* 0x01C4 [0x8A 0x02 0x1B ] */ ldlayer 2, LAYER_021B +/* 0x01C7 [0x8B 0x02 0x36 ] */ ldlayer 3, LAYER_0236 +/* 0x01CA [0xED 0x19 ] */ gain 25 +/* 0x01CC [0xFD 0x64 ] */ delay 100 +/* 0x01CE [0xED 0x00 ] */ gain 0 +/* 0x01D0 [0xFD 0x81 0xE0 ] */ delay 480 +/* 0x01D3 [0xFF ] */ end + +.layer LAYER_01D4 +/* 0x01D4 [0xC6 0x1E ] */ instr SF0_INST_30 +/* 0x01D6 [0xCB 0x07 0x5E 0xFB ] */ env ENVELOPE_075E, 251 +/* 0x01DA [0xC7 0x81 0x37 0x7F ] */ portamento 0x81, PITCH_E5, 127 +/* 0x01DE [0x44 0x08 0x73 ] */ notedv PITCH_DF1, 8, 115 +/* 0x01E1 [0xC7 0x81 0x06 0xFF ] */ portamento 0x81, PITCH_EF1, 255 +/* 0x01E5 [0x63 0x0B 0x69 ] */ notedv PITCH_AF3, 11, 105 +/* 0x01E8 [0xFF ] */ end + +.layer LAYER_01E9 +/* 0x01E9 [0xC6 0x1F ] */ instr SF0_INST_31 +/* 0x01EB [0xC7 0x81 0x31 0xDE ] */ portamento 0x81, PITCH_BF4, 222 +/* 0x01EF [0x59 0x08 0x73 ] */ notedv PITCH_BF2, 8, 115 +/* 0x01F2 [0xC7 0x81 0x13 0xFF ] */ portamento 0x81, PITCH_E2, 255 +/* 0x01F6 [0x60 0x0C 0x73 ] */ notedv PITCH_F3, 12, 115 +/* 0x01F9 [0xFF ] */ end + +.layer LAYER_01FA +/* 0x01FA [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x01FC [0x0F 0x00 0x64 0x00 ] */ notedvg PITCH_C2, 0, 100, 0 +/* 0x0200 [0xFF ] */ end + +.layer LAYER_0201 +/* 0x0201 [0xC6 0x15 ] */ instr SF0_INST_21 +/* 0x0203 [0xCB 0x07 0x46 0xFA ] */ env ENVELOPE_0746, 250 +/* 0x0207 [0xC7 0x81 0x26 0xC8 ] */ portamento 0x81, PITCH_B3, 200 +/* 0x020B [0x25 0x24 0x73 0x64 ] */ notedvg PITCH_BF3, 36, 115, 100 +/* 0x020F [0xFF ] */ end + +.layer LAYER_0210 +/* 0x0210 [0xC6 0x05 ] */ instr SF0_INST_5 +/* 0x0212 [0x6B 0x0A 0x4B ] */ notedv PITCH_E4, 10, 75 +/* 0x0215 [0x62 0x0A 0x4B ] */ notedv PITCH_G3, 10, 75 +/* 0x0218 [0xC0 0x07 ] */ ldelay 7 +/* 0x021A [0xFF ] */ end + +.layer LAYER_021B +/* 0x021B [0xC0 0x07 ] */ ldelay 7 +/* 0x021D [0xC6 0x20 ] */ instr SF0_INST_32 +/* 0x021F [0xCB 0x06 0xF6 0xFA ] */ env ENVELOPE_06F6, 250 +/* 0x0223 [0x33 0x06 0x27 0x7F ] */ notedvg PITCH_C5, 6, 39, 127 +/* 0x0227 [0xC6 0x1A ] */ instr SF0_INST_26 +/* 0x0229 [0x29 0x04 0x31 0x7F ] */ notedvg PITCH_D4, 4, 49, 127 +/* 0x022D [0xC6 0x17 ] */ instr SF0_INST_23 +/* 0x022F [0x66 0x05 0x27 ] */ notedv PITCH_B3, 5, 39 +/* 0x0232 [0x60 0x05 0x27 ] */ notedv PITCH_F3, 5, 39 +/* 0x0235 [0xFF ] */ end + +.layer LAYER_0236 +/* 0x0236 [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x0238 [0x0E 0x00 0x5F 0x00 ] */ notedvg PITCH_B1, 0, 95, 0 +/* 0x023C [0xC0 0x14 ] */ ldelay 20 +/* 0x023E [0x0E 0x0F 0x5A 0x00 ] */ notedvg PITCH_B1, 15, 90, 0 +/* 0x0242 [0xFF ] */ end + +.layer LAYER_0243 +/* 0x0243 [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x0245 [0x0A 0x00 0x64 0x00 ] */ notedvg PITCH_G1, 0, 100, 0 +/* 0x0249 [0xFF ] */ end + +.layer LAYER_024A +/* 0x024A [0xC6 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x024C [0x0C 0x00 0x6E 0x00 ] */ notedvg PITCH_A1, 0, 110, 0 +/* 0x0250 [0xFF ] */ end + +.channel CHAN_0251 +/* 0x0251 [0xC4 ] */ noshort +/* 0x0252 [0xCA 0x20 ] */ mutebhv 0x20 +/* 0x0254 [0xD0 0x80 ] */ effects TRUE, 0, 0, 0, 0, 0 +/* 0x0256 [0xE9 0x0E ] */ notepri 0, 14 +/* 0x0258 [0xE5 0x01 ] */ reverbidx 1 +/* 0x025A [0xD4 0x0F ] */ reverb 15 +/* 0x025C [0xC6 0x01 ] */ font Soundfont_1_ID +/* 0x025E [0x88 0x02 0xAE ] */ ldlayer 0, LAYER_02AE +/* 0x0261 [0x8A 0x02 0xC3 ] */ ldlayer 2, LAYER_02C3 +/* 0x0264 [0xD7 0x60 ] */ vibfreq 96 +/* 0x0266 [0xD8 0x54 ] */ vibdepth 84 +/* 0x0268 [0xFD 0x81 0x7C ] */ delay 380 +/* 0x026B [0x0A ] */ cdelay 10 +/* 0x026C [0xDD 0x3C ] */ pan 60 +/* 0x026E [0x0A ] */ cdelay 10 +/* 0x026F [0xDD 0x38 ] */ pan 56 +/* 0x0271 [0x0A ] */ cdelay 10 +/* 0x0272 [0xDD 0x34 ] */ pan 52 +/* 0x0274 [0x0A ] */ cdelay 10 +/* 0x0275 [0xDD 0x30 ] */ pan 48 +/* 0x0277 [0x0A ] */ cdelay 10 +/* 0x0278 [0xDD 0x34 ] */ pan 52 +/* 0x027A [0x0A ] */ cdelay 10 +/* 0x027B [0xDD 0x38 ] */ pan 56 +/* 0x027D [0x0A ] */ cdelay 10 +/* 0x027E [0xDD 0x3C ] */ pan 60 +/* 0x0280 [0x0A ] */ cdelay 10 +/* 0x0281 [0xDD 0x40 ] */ pan 64 +/* 0x0283 [0x0A ] */ cdelay 10 +/* 0x0284 [0xDD 0x44 ] */ pan 68 +/* 0x0286 [0x0A ] */ cdelay 10 +/* 0x0287 [0xDD 0x48 ] */ pan 72 +/* 0x0289 [0x0A ] */ cdelay 10 +/* 0x028A [0xDD 0x4C ] */ pan 76 +/* 0x028C [0x0A ] */ cdelay 10 +/* 0x028D [0xDD 0x50 ] */ pan 80 +/* 0x028F [0x0A ] */ cdelay 10 +/* 0x0290 [0xDD 0x56 ] */ pan 86 +/* 0x0292 [0x0A ] */ cdelay 10 +/* 0x0293 [0xDD 0x5E ] */ pan 94 +/* 0x0295 [0x0A ] */ cdelay 10 +/* 0x0296 [0xDD 0x68 ] */ pan 104 +/* 0x0298 [0x0A ] */ cdelay 10 +/* 0x0299 [0xDD 0x74 ] */ pan 116 +/* 0x029B [0x0A ] */ cdelay 10 +/* 0x029C [0xDD 0x7F ] */ pan 127 +/* 0x029E [0x0A ] */ cdelay 10 +/* 0x029F [0xDD 0x7C ] */ pan 124 +/* 0x02A1 [0x0A ] */ cdelay 10 +/* 0x02A2 [0xDD 0x78 ] */ pan 120 +/* 0x02A4 [0x0A ] */ cdelay 10 +/* 0x02A5 [0xDD 0x74 ] */ pan 116 +/* 0x02A7 [0x0A ] */ cdelay 10 +/* 0x02A8 [0xDD 0x70 ] */ pan 112 +/* 0x02AA [0xFD 0x81 0x18 ] */ delay 280 +/* 0x02AD [0xFF ] */ end + +.layer LAYER_02AE +/* 0x02AE [0xC2 0xFC ] */ transpose -4 +/* 0x02B0 [0xC6 0x13 ] */ instr SF1_INST_19 +/* 0x02B2 [0xCB 0x08 0xC2 0xFB ] */ env ENVELOPE_08C2, 251 +LAYER_02B6: +/* 0x02B6 [0xC4 ] */ legato +/* 0x02B7 [0xC7 0x85 0x18 0xFF ] */ portamento 0x85, PITCH_A2, 255 +LAYER_02BB: +/* 0x02BB [0x64 0x64 0x5A ] */ notedv PITCH_A3, 100, 90 +/* 0x02BE [0x58 0x64 0x5A ] */ notedv PITCH_A2, 100, 90 +/* 0x02C1 [0xF4 0xF8 ] */ rjump LAYER_02BB + +.layer LAYER_02C3 +/* 0x02C3 [0xC2 0x04 ] */ transpose 4 +/* 0x02C5 [0xC6 0x12 ] */ instr SF1_INST_18 +/* 0x02C7 [0xCB 0x08 0xC2 0xFB ] */ env ENVELOPE_08C2, 251 +LAYER_02CB: +/* 0x02CB [0xC4 ] */ legato +/* 0x02CC [0xC7 0x85 0x30 0xFF ] */ portamento 0x85, PITCH_A4, 255 +LAYER_02D0: +/* 0x02D0 [0x7C 0x32 0x4C ] */ notedv PITCH_A5, 50, 76 +/* 0x02D3 [0x70 0x32 0x4C ] */ notedv PITCH_A4, 50, 76 +/* 0x02D6 [0xF4 0xF8 ] */ rjump LAYER_02D0 + +.channel CHAN_02D8 +/* 0x02D8 [0x88 0x02 0xE8 ] */ ldlayer 0, LAYER_02E8 +/* 0x02DB [0x89 0x02 0xEC ] */ ldlayer 1, LAYER_02EC +/* 0x02DE [0x8A 0x02 0xF6 ] */ ldlayer 2, LAYER_02F6 +/* 0x02E1 [0xC6 0x01 ] */ font Soundfont_1_ID +/* 0x02E3 [0xD7 0x60 ] */ vibfreq 96 +/* 0x02E5 [0xD8 0x54 ] */ vibdepth 84 +/* 0x02E7 [0xFF ] */ end + +.layer LAYER_02E8 +/* 0x02E8 [0xC0 0x87 0x50 ] */ ldelay 1872 +/* 0x02EB [0xFF ] */ end + +.layer LAYER_02EC +/* 0x02EC [0xC2 0xFC ] */ transpose -4 +/* 0x02EE [0xC6 0x13 ] */ instr SF1_INST_19 +/* 0x02F0 [0xCB 0x08 0xEA 0xFB ] */ env ENVELOPE_08EA, 251 +/* 0x02F4 [0xF4 0xC0 ] */ rjump LAYER_02B6 + +.layer LAYER_02F6 +/* 0x02F6 [0xC2 0x04 ] */ transpose 4 +/* 0x02F8 [0xC6 0x12 ] */ instr SF1_INST_18 +/* 0x02FA [0xCB 0x08 0xEA 0xFB ] */ env ENVELOPE_08EA, 251 +/* 0x02FE [0xF4 0xCB ] */ rjump LAYER_02CB + +.channel CHAN_0300 +/* 0x0300 [0xC6 0x01 ] */ font Soundfont_1_ID +/* 0x0302 [0x21 0x03 0x44 ] */ ldchan 1, CHAN_0344 +/* 0x0305 [0xFD 0x81 0x02 ] */ delay 258 +/* 0x0308 [0x88 0x03 0x12 ] */ ldlayer 0, LAYER_0312 +/* 0x030B [0x89 0x03 0x2C ] */ ldlayer 1, LAYER_032C +/* 0x030E [0xFD 0x84 0x7E ] */ delay 1150 +/* 0x0311 [0xFF ] */ end + +.layer LAYER_0312 +/* 0x0312 [0xC6 0x03 ] */ instr SF1_INST_3 +/* 0x0314 [0xCB 0x09 0x16 0xDD ] */ env ENVELOPE_0916, 221 +/* 0x0318 [0x2D 0x64 0x5A 0x32 ] */ notedvg PITCH_GF4, 100, 90, 50 +/* 0x031C [0xC7 0x81 0x30 0xFF ] */ portamento 0x81, PITCH_A4, 255 +/* 0x0320 [0x67 0x64 0x5A ] */ notedv PITCH_C4, 100, 90 +/* 0x0323 [0xC7 0x81 0x32 0x64 ] */ portamento 0x81, PITCH_B4, 100 +/* 0x0327 [0x4F 0x81 0xF4 0x5A ] */ notedv PITCH_C2, 500, 90 +/* 0x032B [0xFF ] */ end + +.layer LAYER_032C +/* 0x032C [0xC6 0x29 ] */ instr SF1_INST_41 +/* 0x032E [0xCF 0xDD ] */ releaserate 221 +/* 0x0330 [0x2B 0x64 0x5A 0x32 ] */ notedvg PITCH_E4, 100, 90, 50 +/* 0x0334 [0xC7 0x81 0x2E 0xFF ] */ portamento 0x81, PITCH_G4, 255 +/* 0x0338 [0x66 0x64 0x5A ] */ notedv PITCH_B3, 100, 90 +/* 0x033B [0xC7 0x81 0x30 0x64 ] */ portamento 0x81, PITCH_A4, 100 +/* 0x033F [0x4E 0x81 0xF4 0x5A ] */ notedv PITCH_B1, 500, 90 +/* 0x0343 [0xFF ] */ end + +.channel CHAN_0344 +/* 0x0344 [0xC4 ] */ noshort +/* 0x0345 [0xCA 0x20 ] */ mutebhv 0x20 +/* 0x0347 [0xD0 0x80 ] */ effects TRUE, 0, 0, 0, 0, 0 +/* 0x0349 [0xE9 0x0E ] */ notepri 0, 14 +/* 0x034B [0xE5 0x01 ] */ reverbidx 1 +/* 0x034D [0xD4 0x0F ] */ reverb 15 +/* 0x034F [0x88 0x03 0x6A ] */ ldlayer 0, LAYER_036A +/* 0x0352 [0x89 0x03 0x75 ] */ ldlayer 1, LAYER_0375 +/* 0x0355 [0xC6 0x01 ] */ font Soundfont_1_ID +/* 0x0357 [0xD7 0x60 ] */ vibfreq 96 +/* 0x0359 [0xD8 0x54 ] */ vibdepth 84 +/* 0x035B [0xDB 0xF4 ] */ transpose -12 +/* 0x035D [0xFD 0x81 0x02 ] */ delay 258 +/* 0x0360 [0xDB 0x04 ] */ transpose 4 +/* 0x0362 [0xFD 0x84 0x7E ] */ delay 1150 +CHAN_0365: +/* 0x0365 [0xFE ] */ delay1 +/* 0x0366 [0x80 ] */ testlayer 0 +/* 0x0367 [0xF3 0xFC ] */ rbeqz CHAN_0365 +/* 0x0369 [0xFF ] */ end + +.layer LAYER_036A +/* 0x036A [0xC2 0xFC ] */ transpose -4 +/* 0x036C [0xC6 0x13 ] */ instr SF1_INST_19 +/* 0x036E [0xCB 0x09 0x1E 0xC8 ] */ env ENVELOPE_091E, 200 +/* 0x0372 [0xFB 0x02 0xB6 ] */ jump LAYER_02B6 + +.layer LAYER_0375 +/* 0x0375 [0xC2 0x04 ] */ transpose 4 +/* 0x0377 [0xC6 0x12 ] */ instr SF1_INST_18 +/* 0x0379 [0xCB 0x09 0x1E 0xC8 ] */ env ENVELOPE_091E, 200 +/* 0x037D [0xFB 0x02 0xCB ] */ jump LAYER_02CB + +.channel CHAN_0380 +/* 0x0380 [0xD4 0x28 ] */ reverb 40 +/* 0x0382 [0x88 0x03 0x8E ] */ ldlayer 0, LAYER_038E +/* 0x0385 [0x89 0x03 0x8C ] */ ldlayer 1, LAYER_038C +/* 0x0388 [0x8A 0x03 0x9D ] */ ldlayer 2, LAYER_039D +/* 0x038B [0xFF ] */ end + +.layer LAYER_038C +/* 0x038C [0xC2 0xFC ] */ transpose -4 +.layer LAYER_038E +/* 0x038E [0xC6 0x3C ] */ instr SF0_INST_60 +/* 0x0390 [0xCB 0x07 0x8A 0xF1 ] */ env ENVELOPE_078A, 241 +/* 0x0394 [0xC7 0x81 0x03 0xE0 ] */ portamento 0x81, PITCH_C1, 224 +/* 0x0398 [0x72 0x80 0xC6 0x50 ] */ notedv PITCH_B4, 198, 80 +/* 0x039C [0xFF ] */ end + +.layer LAYER_039D +/* 0x039D [0xC6 0x0E ] */ instr SF0_INST_14 +/* 0x039F [0xCB 0x08 0x6E 0xDD ] */ env ENVELOPE_086E, 221 +/* 0x03A3 [0xC2 0x0C ] */ transpose 12 +/* 0x03A5 [0xC7 0x81 0x02 0xFF ] */ portamento 0x81, PITCH_B0, 255 +/* 0x03A9 [0x7E 0x80 0xFA 0x55 ] */ notedv PITCH_B5, 250, 85 +/* 0x03AD [0xFF ] */ end + +.channel CHAN_03AE +/* 0x03AE [0xC1 0x2E ] */ instr SF0_INST_46 +/* 0x03B0 [0xD4 0x28 ] */ reverb 40 +/* 0x03B2 [0x88 0x03 0xC5 ] */ ldlayer 0, LAYER_03C5 +/* 0x03B5 [0x89 0x03 0xD7 ] */ ldlayer 1, LAYER_03D7 +/* 0x03B8 [0x8A 0x03 0xDB ] */ ldlayer 2, LAYER_03DB +/* 0x03BB [0x8B 0x03 0xEC ] */ ldlayer 3, LAYER_03EC +/* 0x03BE [0xE2 0xFF 0x3C 0x0A ] */ vibdepthgrad 255, 60, 10 +/* 0x03C2 [0xD7 0x96 ] */ vibfreq 150 +/* 0x03C4 [0xFF ] */ end + +.layer LAYER_03C5 +/* 0x03C5 [0xC6 0x46 ] */ instr SF0_INST_70 +/* 0x03C7 [0xCB 0x06 0xCE 0xF5 ] */ env ENVELOPE_06CE, 245 +/* 0x03CB [0xC7 0x82 0x1B 0xFF ] */ portamento 0x82, PITCH_C3, 255 +/* 0x03CF [0x67 0x80 0x96 0x50 ] */ notedv PITCH_C4, 150, 80 +/* 0x03D3 [0xC0 0x80 0x96 ] */ ldelay 150 +/* 0x03D6 [0xFF ] */ end + +.layer LAYER_03D7 +/* 0x03D7 [0x5B 0x64 0x55 ] */ notedv PITCH_C3, 100, 85 +/* 0x03DA [0xFF ] */ end + +.layer LAYER_03DB +/* 0x03DB [0xC2 0x18 ] */ transpose 24 +/* 0x03DD [0xC6 0x0C ] */ instr SF0_INST_12 +/* 0x03DF [0xCB 0x07 0x8A 0xC8 ] */ env ENVELOPE_078A, 200 +/* 0x03E3 [0xC7 0x82 0x33 0xB4 ] */ portamento 0x82, PITCH_C5, 180 +/* 0x03E7 [0x7E 0x80 0xB4 0x4B ] */ notedv PITCH_B5, 180, 75 +/* 0x03EB [0xFF ] */ end + +.layer LAYER_03EC +/* 0x03EC [0xC6 0x2A ] */ instr SF0_INST_42 +/* 0x03EE [0xC7 0x81 0x22 0xD0 ] */ portamento 0x81, PITCH_G3, 208 +/* 0x03F2 [0x5D 0x80 0xF0 0x69 ] */ notedv PITCH_D3, 240, 105 +/* 0x03F6 [0xFF ] */ end + +/* 0x03F7 [0xC6 0x27 ] */ instr SF0_INST_39 +/* 0x03F9 [0xC7 0x81 0x0A 0x2C ] */ portamento 0x81, PITCH_G1, 44 +/* 0x03FD [0x56 0x80 0x8C 0x4B ] */ notedv PITCH_G2, 140, 75 +/* 0x0401 [0xFF ] */ end + +.channel CHAN_0402 +/* 0x0402 [0xDC 0x30 ] */ panweight 48 +/* 0x0404 [0xDF 0x4E ] */ vol 78 +/* 0x0406 [0xD4 0x37 ] */ reverb 55 +/* 0x0408 [0x21 0x04 0x67 ] */ ldchan 1, CHAN_0467 +/* 0x040B [0x88 0x04 0x4C ] */ ldlayer 0, LAYER_044C +/* 0x040E [0x89 0x04 0x24 ] */ ldlayer 1, LAYER_0424 +/* 0x0411 [0x8A 0x04 0x45 ] */ ldlayer 2, LAYER_0445 +/* 0x0414 [0x8B 0x04 0x3B ] */ ldlayer 3, LAYER_043B +/* 0x0417 [0xD7 0x14 ] */ vibfreq 20 +/* 0x0419 [0xD8 0x46 ] */ vibdepth 70 +/* 0x041B [0xFD 0x60 ] */ delay 96 +/* 0x041D [0xE1 0x14 0x96 0x3C ] */ vibfreqgrad 20, 150, 60 +/* 0x0421 [0xD8 0x46 ] */ vibdepth 70 +/* 0x0423 [0xFF ] */ end + +.layer LAYER_0424 +/* 0x0424 [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x0426 [0xCB 0x07 0x8A 0xD3 ] */ env ENVELOPE_078A, 211 +/* 0x042A [0xC4 ] */ legato +/* 0x042B [0xC7 0x85 0x03 0xFF ] */ portamento 0x85, PITCH_C1, 255 +/* 0x042F [0x54 0x60 0x64 ] */ notedv PITCH_F2, 96, 100 +/* 0x0432 [0x54 0x80 0xC8 0x64 ] */ notedv PITCH_F2, 200, 100 +/* 0x0436 [0x60 0x81 0x2C 0x4A ] */ notedv PITCH_F3, 300, 74 +/* 0x043A [0xFF ] */ end + +.layer LAYER_043B +/* 0x043B [0xC6 0x52 ] */ instr SF0_INST_82 +/* 0x043D [0xC2 0x18 ] */ transpose 24 +/* 0x043F [0xCA 0x58 ] */ notepan 88 +/* 0x0441 [0xC0 0x04 ] */ ldelay 4 +/* 0x0443 [0xF4 0x0D ] */ rjump LAYER_0452 + +.layer LAYER_0445 +/* 0x0445 [0xC2 0xEE ] */ transpose -18 +/* 0x0447 [0xC6 0x34 ] */ instr SF0_INST_52 +/* 0x0449 [0xFB 0x04 0x52 ] */ jump LAYER_0452 + +.layer LAYER_044C +/* 0x044C [0xC6 0x44 ] */ instr SF0_INST_68 +/* 0x044E [0xC2 0x0C ] */ transpose 12 +/* 0x0450 [0xCA 0x28 ] */ notepan 40 +LAYER_0452: +/* 0x0452 [0xCB 0x07 0x8A 0xD3 ] */ env ENVELOPE_078A, 211 +/* 0x0456 [0xC4 ] */ legato +/* 0x0457 [0xC7 0x85 0x0F 0xFF ] */ portamento 0x85, PITCH_C2, 255 +/* 0x045B [0x60 0x60 0x4A ] */ notedv PITCH_F3, 96, 74 +/* 0x045E [0x60 0x80 0xC8 0x4A ] */ notedv PITCH_F3, 200, 74 +/* 0x0462 [0x6C 0x81 0x2C 0x4A ] */ notedv PITCH_F4, 300, 74 +/* 0x0466 [0xFF ] */ end + +.channel CHAN_0467 +/* 0x0467 [0xC4 ] */ noshort +/* 0x0468 [0xCA 0x20 ] */ mutebhv 0x20 +/* 0x046A [0xD0 0x80 ] */ effects TRUE, 0, 0, 0, 0, 0 +/* 0x046C [0xE9 0x0E ] */ notepri 0, 14 +/* 0x046E [0xE5 0x01 ] */ reverbidx 1 +/* 0x0470 [0xD4 0x28 ] */ reverb 40 +/* 0x0472 [0xC6 0x00 ] */ font Soundfont_0_ID +/* 0x0474 [0xFC 0x01 0x56 ] */ call CHAN_0156 +/* 0x0477 [0xFD 0x60 ] */ delay 96 +/* 0x0479 [0xFC 0x01 0x56 ] */ call CHAN_0156 +/* 0x047C [0x89 0x04 0x86 ] */ ldlayer 1, LAYER_0486 +/* 0x047F [0x8B 0x04 0x98 ] */ ldlayer 3, LAYER_0498 +/* 0x0482 [0xFD 0x83 0xE8 ] */ delay 1000 +/* 0x0485 [0xFF ] */ end + +.layer LAYER_0486 +/* 0x0486 [0xC6 0x0C ] */ instr SF0_INST_12 +/* 0x0488 [0xCB 0x07 0x8A 0xE7 ] */ env ENVELOPE_078A, 231 +/* 0x048C [0xC0 0x80 0x96 ] */ ldelay 150 +/* 0x048F [0xC7 0x81 0x1B 0xFF ] */ portamento 0x81, PITCH_C3, 255 +/* 0x0493 [0x73 0x81 0xB8 0x2D ] */ notedv PITCH_C5, 440, 45 +/* 0x0497 [0xFF ] */ end + +.layer LAYER_0498 +/* 0x0498 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x049A [0xCB 0x07 0x92 0xE7 ] */ env ENVELOPE_0792, 231 +/* 0x049E [0xC0 0x80 0xDC ] */ ldelay 220 +/* 0x04A1 [0xC7 0x81 0x0F 0xFF ] */ portamento 0x81, PITCH_C2, 255 +/* 0x04A5 [0x5B 0x81 0x72 0x6E ] */ notedv PITCH_C3, 370, 110 +/* 0x04A9 [0xFF ] */ end + +.channel CHAN_04AA +/* 0x04AA [0x21 0x04 0xBC ] */ ldchan 1, CHAN_04BC +/* 0x04AD [0xDF 0x69 ] */ vol 105 +/* 0x04AF [0x88 0x05 0x45 ] */ ldlayer 0, LAYER_0545 +/* 0x04B2 [0x89 0x05 0x36 ] */ ldlayer 1, LAYER_0536 +/* 0x04B5 [0x8A 0x05 0x71 ] */ ldlayer 2, LAYER_0571 +/* 0x04B8 [0x8B 0x05 0x66 ] */ ldlayer 3, LAYER_0566 +/* 0x04BB [0xFF ] */ end + +.channel CHAN_04BC +/* 0x04BC [0xC4 ] */ noshort +/* 0x04BD [0xCA 0x20 ] */ mutebhv 0x20 +/* 0x04BF [0xD0 0x80 ] */ effects TRUE, 0, 0, 0, 0, 0 +/* 0x04C1 [0xE9 0x0E ] */ notepri 0, 14 +/* 0x04C3 [0xE5 0x01 ] */ reverbidx 1 +/* 0x04C5 [0xD4 0x28 ] */ reverb 40 +/* 0x04C7 [0xDF 0x69 ] */ vol 105 +/* 0x04C9 [0xDC 0x40 ] */ panweight 64 +/* 0x04CB [0x88 0x04 0xF5 ] */ ldlayer 0, LAYER_04F5 +/* 0x04CE [0x89 0x04 0xDB ] */ ldlayer 1, LAYER_04DB +/* 0x04D1 [0x8A 0x05 0x14 ] */ ldlayer 2, LAYER_0514 +/* 0x04D4 [0x8B 0x05 0x0E ] */ ldlayer 3, LAYER_050E +/* 0x04D7 [0xFD 0x93 0x88 ] */ delay 5000 +/* 0x04DA [0xFF ] */ end + +.layer LAYER_04DB +/* 0x04DB [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x04DD [0xCB 0x07 0x92 0xDD ] */ env ENVELOPE_0792, 221 +/* 0x04E1 [0xCD 0x14 ] */ stereo 1, 0, 1, 0, 0 +/* 0x04E3 [0xCA 0x54 ] */ notepan 84 +/* 0x04E5 [0x54 0x80 0x91 0x48 ] */ notedv PITCH_F2, 145, 72 +LAYER_04E9: +/* 0x04E9 [0x5D 0x5A 0x46 ] */ notedv PITCH_D3, 90, 70 +/* 0x04EC [0x60 0x80 0xE1 0x4A ] */ notedv PITCH_F3, 225, 74 +/* 0x04F0 [0x58 0x61 0x44 ] */ notedv PITCH_A2, 97, 68 +/* 0x04F3 [0xF4 0xF4 ] */ rjump LAYER_04E9 + +.layer LAYER_04F5 +/* 0x04F5 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x04F7 [0xCB 0x07 0x92 0xDD ] */ env ENVELOPE_0792, 221 +/* 0x04FB [0xCD 0x14 ] */ stereo 1, 0, 1, 0, 0 +/* 0x04FD [0xCA 0x2C ] */ notepan 44 +/* 0x04FF [0x5D 0x81 0x0B 0x48 ] */ notedv PITCH_D3, 267, 72 +LAYER_0503: +/* 0x0503 [0x5B 0x5E 0x28 ] */ notedv PITCH_C3, 94, 40 +/* 0x0506 [0x5D 0x7C 0x2C ] */ notedv PITCH_D3, 124, 44 +/* 0x0509 [0x5A 0x30 0x44 ] */ notedv PITCH_B2, 48, 68 +/* 0x050C [0xF4 0xF5 ] */ rjump LAYER_0503 + +.layer LAYER_050E +/* 0x050E [0xC2 0xF4 ] */ transpose -12 +/* 0x0510 [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x0512 [0xF4 0x06 ] */ rjump LAYER_051A + +.layer LAYER_0514 +/* 0x0514 [0xC6 0x2F ] */ instr SF0_INST_47 +/* 0x0516 [0xCB 0x07 0x1E 0xE6 ] */ env ENVELOPE_071E, 230 +LAYER_051A: +/* 0x051A [0xC0 0x8A 0x82 ] */ ldelay 2690 +/* 0x051D [0xC7 0x81 0x37 0x3C ] */ portamento 0x81, PITCH_E5, 60 +/* 0x0521 [0x4F 0x80 0xC0 0x64 ] */ notedv PITCH_C2, 192, 100 +/* 0x0525 [0xC7 0x81 0x3A 0x3C ] */ portamento 0x81, PITCH_G5, 60 +/* 0x0529 [0x53 0x80 0xC0 0x64 ] */ notedv PITCH_E2, 192, 100 +/* 0x052D [0xC7 0x81 0x3E 0x2D ] */ portamento 0x81, PITCH_B5, 45 +/* 0x0531 [0x56 0x81 0xF4 0x64 ] */ notedv PITCH_G2, 500, 100 +/* 0x0535 [0xFF ] */ end + +.layer LAYER_0536 +/* 0x0536 [0xC2 0xFA ] */ transpose -6 +/* 0x0538 [0xFC 0x05 0x52 ] */ call LAYER_0552 +/* 0x053B [0xC5 ] */ nolegato +/* 0x053C [0xC8 ] */ noportamento +/* 0x053D [0xC6 0x41 ] */ instr SF0_INST_65 +/* 0x053F [0xC0 0x14 ] */ ldelay 20 +/* 0x0541 [0xC2 0xFD ] */ transpose -3 +/* 0x0543 [0xF4 0x44 ] */ rjump LAYER_0589 + +.layer LAYER_0545 +/* 0x0545 [0xFC 0x05 0x52 ] */ call LAYER_0552 +/* 0x0548 [0xC5 ] */ nolegato +/* 0x0549 [0xC8 ] */ noportamento +/* 0x054A [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x054C [0xC0 0x0A ] */ ldelay 10 +/* 0x054E [0xC2 0x0A ] */ transpose 10 +/* 0x0550 [0xF4 0x37 ] */ rjump LAYER_0589 + +.layer LAYER_0552 +/* 0x0552 [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x0554 [0xCB 0x07 0x92 0xD3 ] */ env ENVELOPE_0792, 211 +/* 0x0558 [0xC4 ] */ legato +/* 0x0559 [0xC7 0x85 0x33 0xFF ] */ portamento 0x85, PITCH_C5, 255 +/* 0x055D [0x77 0x80 0xC8 0x5A ] */ notedv PITCH_E5, 200, 90 +/* 0x0561 [0x7A 0x89 0x79 0x50 ] */ notedv PITCH_G5, 2425, 80 +/* 0x0565 [0xFF ] */ end + +.layer LAYER_0566 +/* 0x0566 [0xC2 0x05 ] */ transpose 5 +/* 0x0568 [0xFC 0x05 0x81 ] */ call LAYER_0581 +/* 0x056B [0xC0 0x14 ] */ ldelay 20 +/* 0x056D [0xC6 0x4D ] */ instr SF0_INST_77 +/* 0x056F [0xF4 0x18 ] */ rjump LAYER_0589 + +.layer LAYER_0571 +/* 0x0571 [0xFC 0x05 0x81 ] */ call LAYER_0581 +/* 0x0574 [0xC6 0x41 ] */ instr SF0_INST_65 +/* 0x0576 [0xF4 0x11 ] */ rjump LAYER_0589 + +/* 0x0578 [0xCB 0x07 0x92 0xC8 ] */ env ENVELOPE_0792, 200 +/* 0x057C [0xC4 ] */ legato +/* 0x057D [0xC7 0x81 0x11 0xFF ] */ portamento 0x81, PITCH_D2, 255 +.layer LAYER_0581 +/* 0x0581 [0xC6 0x36 ] */ instr SF0_INST_54 +/* 0x0583 [0x58 0x8A 0x41 0x41 ] */ notedv PITCH_A2, 2625, 65 +/* 0x0587 [0xC5 ] */ nolegato +/* 0x0588 [0xFF ] */ end + +LAYER_0589: +/* 0x0589 [0x5F 0x80 0xC0 0x78 ] */ notedv PITCH_E3, 192, 120 +/* 0x058D [0x62 0x80 0xC0 0x78 ] */ notedv PITCH_G3, 192, 120 +/* 0x0591 [0xCF 0xA0 ] */ releaserate 160 +/* 0x0593 [0x64 0x80 0xC0 0x78 ] */ notedv PITCH_A3, 192, 120 +/* 0x0597 [0xFF ] */ end + +.channel CHAN_0598 +/* 0x0598 [0xDF 0x6E ] */ vol 110 +/* 0x059A [0xC1 0x7E ] */ instr FONTANY_INSTR_SFX +/* 0x059C [0xB0 0x05 0xB0 ] */ ldfilter FILTER_05B0 +/* 0x059F [0xB3 0x40 ] */ filter 4, 0 +/* 0x05A1 [0xD4 0x28 ] */ reverb 40 +/* 0x05A3 [0xED 0x19 ] */ gain 25 +/* 0x05A5 [0x88 0x05 0xA9 ] */ ldlayer 0, LAYER_05A9 +/* 0x05A8 [0xFF ] */ end + +.layer LAYER_05A9 +/* 0x05A9 [0x6C 0x00 0x6E ] */ notedv PITCH_F4, 0, 110 +/* 0x05AC [0xFF ] */ end + +.filter FILTER_05B0 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.channel CHAN_05C0 +/* 0x05C0 [0xC1 0x7F ] */ instr FONTANY_INSTR_DRUM +/* 0x05C2 [0xDA 0x09 0x0A ] */ env ENVELOPE_090A +/* 0x05C5 [0xD9 0xC8 ] */ releaserate 200 +/* 0x05C7 [0xDC 0x00 ] */ panweight 0 +/* 0x05C9 [0x88 0x05 0xDA ] */ ldlayer 0, LAYER_05DA +/* 0x05CC [0x89 0x05 0xE0 ] */ ldlayer 1, LAYER_05E0 +/* 0x05CF [0x21 0x05 0xE6 ] */ ldchan 1, CHAN_05E6 +/* 0x05D2 [0xFD 0x87 0x08 ] */ delay 1800 +/* 0x05D5 [0x90 ] */ dellayer 0 +/* 0x05D6 [0x91 ] */ dellayer 1 +/* 0x05D7 [0xFD 0x64 ] */ delay 100 +/* 0x05D9 [0xFF ] */ end + +.layer LAYER_05DA +/* 0x05DA [0xC4 ] */ legato +LAYER_05DB: +/* 0x05DB [0x43 0x64 0x50 ] */ notedv PITCH_C1, 100, 80 +/* 0x05DE [0xF4 0xFB ] */ rjump LAYER_05DB + +.layer LAYER_05E0 +/* 0x05E0 [0xC4 ] */ legato +LAYER_05E1: +/* 0x05E1 [0x42 0x64 0x50 ] */ notedv PITCH_B0, 100, 80 +/* 0x05E4 [0xF4 0xFB ] */ rjump LAYER_05E1 + +.channel CHAN_05E6 +/* 0x05E6 [0xC4 ] */ noshort +/* 0x05E7 [0xCA 0x20 ] */ mutebhv 0x20 +/* 0x05E9 [0xD0 0x80 ] */ effects TRUE, 0, 0, 0, 0, 0 +/* 0x05EB [0xE9 0x0E ] */ notepri 0, 14 +/* 0x05ED [0xE5 0x01 ] */ reverbidx 1 +/* 0x05EF [0xD4 0x14 ] */ reverb 20 +/* 0x05F1 [0xDF 0x64 ] */ vol 100 +/* 0x05F3 [0xED 0x0F ] */ gain 15 +/* 0x05F5 [0xFD 0x82 0x40 ] */ delay 576 +/* 0x05F8 [0x88 0x06 0x33 ] */ ldlayer 0, LAYER_0633 +/* 0x05FB [0x89 0x06 0x2F ] */ ldlayer 1, LAYER_062F +/* 0x05FE [0x8A 0x06 0x3F ] */ ldlayer 2, LAYER_063F +/* 0x0601 [0xDF 0x4B ] */ vol 75 +/* 0x0603 [0xFD 0x80 0xC8 ] */ delay 200 +/* 0x0606 [0x88 0x06 0x33 ] */ ldlayer 0, LAYER_0633 +/* 0x0609 [0x89 0x06 0x2F ] */ ldlayer 1, LAYER_062F +/* 0x060C [0x8A 0x06 0x3F ] */ ldlayer 2, LAYER_063F +/* 0x060F [0xDF 0x6E ] */ vol 110 +/* 0x0611 [0xFD 0x80 0x87 ] */ delay 135 +/* 0x0614 [0x88 0x06 0x33 ] */ ldlayer 0, LAYER_0633 +/* 0x0617 [0x89 0x06 0x2F ] */ ldlayer 1, LAYER_062F +/* 0x061A [0x8A 0x06 0x3F ] */ ldlayer 2, LAYER_063F +/* 0x061D [0xDF 0x5F ] */ vol 95 +/* 0x061F [0xFD 0x81 0x56 ] */ delay 342 +/* 0x0622 [0x88 0x06 0x33 ] */ ldlayer 0, LAYER_0633 +/* 0x0625 [0x89 0x06 0x2F ] */ ldlayer 1, LAYER_062F +/* 0x0628 [0x8A 0x06 0x3F ] */ ldlayer 2, LAYER_063F +/* 0x062B [0xFD 0x80 0xFA ] */ delay 250 +/* 0x062E [0xFF ] */ end + +.layer LAYER_062F +/* 0x062F [0xC2 0x24 ] */ transpose 36 +/* 0x0631 [0xF4 0x02 ] */ rjump LAYER_0635 + +.layer LAYER_0633 +/* 0x0633 [0xC2 0x30 ] */ transpose 48 +LAYER_0635: +/* 0x0635 [0xC6 0x4A ] */ instr SF0_INST_74 +/* 0x0637 [0xCB 0x06 0x92 0xC8 ] */ env ENVELOPE_0692, 200 +/* 0x063B [0x6E 0x00 0x6E ] */ notedv PITCH_G4, 0, 110 +/* 0x063E [0xFF ] */ end + +.layer LAYER_063F +/* 0x063F [0xC6 0x46 ] */ instr SF0_INST_70 +/* 0x0641 [0x62 0x32 0x32 ] */ notedv PITCH_G3, 50, 50 +/* 0x0644 [0xFF ] */ end + +.table TABLE_0646 + entry CHAN_002E + entry CHAN_0083 + entry CHAN_00D0 + entry CHAN_0113 + entry CHAN_0143 + entry CHAN_0151 + entry CHAN_0156 + entry CHAN_018D + entry CHAN_02D8 + entry CHAN_0300 + entry CHAN_0380 + entry CHAN_03AE + entry CHAN_0402 + entry CHAN_04AA + entry CHAN_0598 + entry CHAN_05C0 + +.envelope ENVELOPE_66A + point 1, 32700 + hang + +ENVELOPE_066E: + point 1, 32700 + point 100, 30000 + point 200, 5000 + hang + +ENVELOPE_067E: + point 1, 32700 + point 25, 25000 + point 100, 25000 + point 200, 5000 + hang + +.envelope ENVELOPE_0692 + point 1, 32700 + point 100, 30000 + point 250, 30000 + point 200, 5000 + hang + +ENVELOPE_06A6: + point 1, 32700 + point 50, 30000 + point 100, 10000 + point 100, 0 + hang + +ENVELOPE_06BA: + point 1, 32700 + point 30, 30000 + point 50, 10000 + point 50, 0 + hang + +.envelope ENVELOPE_06CE + point 1, 32700 + point 70, 30000 + point 120, 10000 + point 120, 0 + hang + +ENVELOPE_06E2: + point 1, 32700 + point 15, 32700 + point 15, 22000 + point 100, 15000 + hang + +.envelope ENVELOPE_06F6 + point 1, 32700 + point 8, 32700 + point 8, 22000 + point 100, 15000 + hang + +ENVELOPE_070A: + point 10, 32700 + hang + +.envelope ENVELOPE_0712 + point 30, 10000 + point 30, 32700 + hang + +.envelope ENVELOPE_071E + point 20, 15000 + point 10, 32700 + hang + +.envelope ENVELOPE_072A + point 48, 10000 + point 32, 32700 + hang + +ENVELOPE_0736: + point 47, 15000 + point 13, 32700 + point 72, 10000 + hang + +.envelope ENVELOPE_0746 + point 6, 32700 + hang + +ENVELOPE_074E: + point 20, 32700 + point 50, 10000 + point 40, 0 + hang + +.envelope ENVELOPE_075E + point 18, 32700 + hang + +ENVELOPE_0766: + point 10, 32700 + point 240, 31000 + point 150, 2000 + hang + +ENVELOPE_0776: + point 14, 15000 + point 13, 32700 + hang + +ENVELOPE_0782: + point 40, 32700 + hang + +.envelope ENVELOPE_078A + point 400, 32700 + hang + +.envelope ENVELOPE_0792 + point 100, 32700 + hang + +ENVELOPE_079A: + point 225, 32700 + point 30, 30000 + hang + +ENVELOPE_07A6: + point 200, 32700 + hang + +ENVELOPE_07AE: + point 3, 32700 + hang + +ENVELOPE_07B6: + point 12, 32700 + point 40, 5000 + hang + +ENVELOPE_07C2: + point 10, 32700 + point 4, 20000 + point 4, 10000 + point 50, 2000 + hang + +ENVELOPE_07D6: + point 40, 32700 + point 150, 32700 + point 300, 0 + hang + +ENVELOPE_07E6: + point 40, 32700 + point 800, 32700 + point 100, 16000 + point 100, 32700 + point 100, 16000 + point 100, 32700 + point 100, 16000 + point 100, 32700 + point 600, 0 + hang + +ENVELOPE_080E: + point 200, 32700 + point 100, 16000 + point 100, 32700 + point 100, 16000 + point 100, 32700 + point 600, 0 + hang + +ENVELOPE_082A: + point 35, 32700 + point 40, 32700 + point 105, 0 + hang + +ENVELOPE_083A: + point 1, 25000 + point 12, 32700 + point 40, 32700 + point 60, 15000 + point 80, 5000 + hang + +ENVELOPE_0852: + point 10, 32700 + point 50, 32700 + point 60, 5000 + hang + +ENVELOPE_0862: + point 200, 32700 + point 340, 0 + hang + +.envelope ENVELOPE_086E + point 400, 32700 + point 400, 20000 + goto 0 + +.envelope ENVELOPE_087A + point 1400, 32700 + point 400, 14000 + point 400, 32700 + goto 1 + +.envelope ENVELOPE_088A + point 25, 32700 + point 490, 12000 + hang + +ENVELOPE_0896: + point 100, 32700 + point 450, 32700 + point 150, 32700 + point 1200, 32700 + point 400, 20000 + hang + +ENVELOPE_08AE: + point 200, 32700 + point 200, 20000 + goto 0 + +ENVELOPE_08BA: + point 2, 25000 + hang + +.envelope ENVELOPE_08C2 + point 1, 32700 + point 712, 32700 + point 900, 0 + hang + +.envelope ENVELOPE_08D2 + point 1, 32700 + point 200, 32700 + point 200, 16000 + point 200, 32700 + point 600, 0 + hang + +.envelope ENVELOPE_08EA + point 140, 20000 + point 2540, 10000 + point 200, 32700 + point 720, 20000 + point 240, 27000 + point 20, 16000 + point 940, 32700 + hang + +.envelope ENVELOPE_090A + point 100, 20000 + point 400, 32700 + hang + +.envelope ENVELOPE_0916 + point 50, 32700 + hang + +.envelope ENVELOPE_091E + point 500, 25000 + point 675, 30000 + point 800, 25000 + point 20, 20000 + hang + +.filter FILTER_0932 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.filter FILTER_0942 + filter 0, 0, 0, 0, 0, 0, 0, 0 + +.endseq Sequence_109 diff --git a/assets/audio/sequences/seq_2.prg.seq b/assets/audio/sequences/seq_2.prg.seq new file mode 100644 index 0000000000..4e967b0424 --- /dev/null +++ b/assets/audio/sequences/seq_2.prg.seq @@ -0,0 +1,208 @@ +#include "aseq.h" +#include "Soundfont_3.h" + +.startseq Sequence_2 + +.sequence SEQ_0000 +/* 0x0000 [0xD3 0x20 ] */ mutebhv 0x20 +/* 0x0002 [0xD5 0x46 ] */ mutescale 70 +/* 0x0004 [0xD7 0xFF 0xFF ] */ initchan 0b1111111111111111 +/* 0x0007 [0xCC 0x00 ] */ ldi 0 +/* 0x0009 [0x73 ] */ stio IO_PORT_3 +/* 0x000A [0x76 ] */ stio IO_PORT_6 +/* 0x000B [0xCC 0xFF ] */ ldi 255 +/* 0x000D [0x75 ] */ stio IO_PORT_5 +/* 0x000E [0x80 ] */ ldio IO_PORT_0 +/* 0x000F [0xC8 0x01 ] */ sub 1 +/* 0x0011 [0xF3 0x07 ] */ rbeqz SEQ_001A +/* 0x0013 [0xCC 0x03 ] */ ldi 3 +/* 0x0015 [0xFC 0x00 0xC4 ] */ call SEQ_00C4 +/* 0x0018 [0xF4 0x05 ] */ rjump SEQ_001F + +SEQ_001A: +/* 0x001A [0xCC 0x31 ] */ ldi 49 +/* 0x001C [0xFC 0x00 0xC4 ] */ call SEQ_00C4 +SEQ_001F: +/* 0x001F [0xCC 0x00 ] */ ldi 0 +/* 0x0021 [0x74 ] */ stio IO_PORT_4 +/* 0x0022 [0x82 ] */ ldio IO_PORT_2 +/* 0x0023 [0xF2 0x0E ] */ rbltz SEQ_0033 +/* 0x0025 [0x53 ] */ subio IO_PORT_3 +/* 0x0026 [0xF3 0x0B ] */ rbeqz SEQ_0033 +/* 0x0028 [0x82 ] */ ldio IO_PORT_2 +/* 0x0029 [0x73 ] */ stio IO_PORT_3 +/* 0x002A [0xC8 0x01 ] */ sub 1 +/* 0x002C [0xF3 0x22 ] */ rbeqz SEQ_0050 +/* 0x002E [0x82 ] */ ldio IO_PORT_2 +/* 0x002F [0xC8 0x02 ] */ sub 2 +/* 0x0031 [0xF3 0x53 ] */ rbeqz SEQ_0086 +SEQ_0033: +/* 0x0033 [0xCE 0x0B ] */ rand 11 +/* 0x0035 [0x55 ] */ subio IO_PORT_5 +/* 0x0036 [0xF3 0x04 ] */ rbeqz SEQ_003C +/* 0x0038 [0xCE 0x0B ] */ rand 11 +/* 0x003A [0xF4 0x0C ] */ rjump SEQ_0048 + +SEQ_003C: +/* 0x003C [0xCE 0x0B ] */ rand 11 +/* 0x003E [0xF3 0x04 ] */ rbeqz SEQ_0044 +/* 0x0040 [0xC8 0x01 ] */ sub 1 +/* 0x0042 [0xF4 0x04 ] */ rjump SEQ_0048 + +SEQ_0044: +/* 0x0044 [0xCC 0x0B ] */ ldi 11 +/* 0x0046 [0xC8 0x01 ] */ sub 1 +SEQ_0048: +/* 0x0048 [0x75 ] */ stio IO_PORT_5 +/* 0x0049 [0xC8 0xFC ] */ sub 252 +/* 0x004B [0xFC 0x00 0xC4 ] */ call SEQ_00C4 +/* 0x004E [0xF4 0xCF ] */ rjump SEQ_001F + +SEQ_0050: +/* 0x0050 [0xCC 0x01 ] */ ldi 1 +/* 0x0052 [0x74 ] */ stio IO_PORT_4 +/* 0x0053 [0xCC 0xFF ] */ ldi 255 +/* 0x0055 [0x75 ] */ stio IO_PORT_5 +/* 0x0056 [0xCC 0x0F ] */ ldi 15 +/* 0x0058 [0xFC 0x00 0xC4 ] */ call SEQ_00C4 +SEQ_005B: +/* 0x005B [0x82 ] */ ldio IO_PORT_2 +/* 0x005C [0xF2 0x0B ] */ rbltz SEQ_0069 +/* 0x005E [0x53 ] */ subio IO_PORT_3 +/* 0x005F [0xF3 0x08 ] */ rbeqz SEQ_0069 +/* 0x0061 [0x82 ] */ ldio IO_PORT_2 +/* 0x0062 [0x73 ] */ stio IO_PORT_3 +/* 0x0063 [0xF3 0xBA ] */ rbeqz SEQ_001F +/* 0x0065 [0xC8 0x02 ] */ sub 2 +/* 0x0067 [0xF3 0x1D ] */ rbeqz SEQ_0086 +SEQ_0069: +/* 0x0069 [0xCE 0x04 ] */ rand 4 +/* 0x006B [0x55 ] */ subio IO_PORT_5 +/* 0x006C [0xF3 0x04 ] */ rbeqz SEQ_0072 +/* 0x006E [0xCE 0x04 ] */ rand 4 +/* 0x0070 [0xF4 0x0C ] */ rjump SEQ_007E + +SEQ_0072: +/* 0x0072 [0xCE 0x04 ] */ rand 4 +/* 0x0074 [0xF3 0x04 ] */ rbeqz SEQ_007A +/* 0x0076 [0xC8 0x01 ] */ sub 1 +/* 0x0078 [0xF4 0x04 ] */ rjump SEQ_007E + +SEQ_007A: +/* 0x007A [0xCC 0x04 ] */ ldi 4 +/* 0x007C [0xC8 0x01 ] */ sub 1 +SEQ_007E: +/* 0x007E [0x75 ] */ stio IO_PORT_5 +/* 0x007F [0xC8 0xF0 ] */ sub 240 +/* 0x0081 [0xFC 0x00 0xC4 ] */ call SEQ_00C4 +/* 0x0084 [0xF4 0xD5 ] */ rjump SEQ_005B + +SEQ_0086: +/* 0x0086 [0xCC 0x02 ] */ ldi 2 +/* 0x0088 [0x74 ] */ stio IO_PORT_4 +/* 0x0089 [0xCC 0xFF ] */ ldi 255 +/* 0x008B [0x75 ] */ stio IO_PORT_5 +/* 0x008C [0xCC 0x14 ] */ ldi 20 +/* 0x008E [0xFC 0x00 0xC4 ] */ call SEQ_00C4 +SEQ_0091: +/* 0x0091 [0x82 ] */ ldio IO_PORT_2 +/* 0x0092 [0xF2 0x0B ] */ rbltz SEQ_009F +/* 0x0094 [0x53 ] */ subio IO_PORT_3 +/* 0x0095 [0xF3 0x08 ] */ rbeqz SEQ_009F +/* 0x0097 [0x82 ] */ ldio IO_PORT_2 +/* 0x0098 [0x73 ] */ stio IO_PORT_3 +/* 0x0099 [0xF3 0x84 ] */ rbeqz SEQ_001F +/* 0x009B [0xC8 0x01 ] */ sub 1 +/* 0x009D [0xF3 0xB1 ] */ rbeqz SEQ_0050 +SEQ_009F: +/* 0x009F [0xCE 0x03 ] */ rand 3 +/* 0x00A1 [0x55 ] */ subio IO_PORT_5 +/* 0x00A2 [0xF3 0x04 ] */ rbeqz SEQ_00A8 +/* 0x00A4 [0xCE 0x03 ] */ rand 3 +/* 0x00A6 [0xF4 0x0C ] */ rjump SEQ_00B4 + +SEQ_00A8: +/* 0x00A8 [0xCE 0x03 ] */ rand 3 +/* 0x00AA [0xF3 0x04 ] */ rbeqz SEQ_00B0 +/* 0x00AC [0xC8 0x01 ] */ sub 1 +/* 0x00AE [0xF4 0x04 ] */ rjump SEQ_00B4 + +SEQ_00B0: +/* 0x00B0 [0xCC 0x03 ] */ ldi 3 +/* 0x00B2 [0xC8 0x01 ] */ sub 1 +SEQ_00B4: +/* 0x00B4 [0x75 ] */ stio IO_PORT_5 +/* 0x00B5 [0xC8 0xEB ] */ sub 235 +/* 0x00B7 [0xFC 0x00 0xC4 ] */ call SEQ_00C4 +/* 0x00BA [0xF4 0xD5 ] */ rjump SEQ_0091 + +.table TABLE_00BC + entry SEQ_00E8 + entry SEQ_00F6 + +.table TABLE_00C0 + entry ARRAY_0110 + entry ARRAY_1308 + +.sequence SEQ_00C4 +/* 0x00C4 [0x77 ] */ stio IO_PORT_7 +/* 0x00C5 [0xCC 0x00 ] */ ldi 0 +/* 0x00C7 [0x70 ] */ stio IO_PORT_0 +/* 0x00C8 [0x86 ] */ ldio IO_PORT_6 +/* 0x00C9 [0xCD 0x00 0xBC ] */ dyncall TABLE_00BC +SEQ_00CC: +/* 0x00CC [0xFE ] */ delay1 +/* 0x00CD [0x00 ] */ testchan 0 +/* 0x00CE [0xF3 0xFC ] */ rbeqz SEQ_00CC +/* 0x00D0 [0x06 ] */ testchan 6 +/* 0x00D1 [0xF3 0xF9 ] */ rbeqz SEQ_00CC +/* 0x00D3 [0x09 ] */ testchan 9 +/* 0x00D4 [0xF3 0xF6 ] */ rbeqz SEQ_00CC +/* 0x00D6 [0x0A ] */ testchan 10 +/* 0x00D7 [0xF3 0xF3 ] */ rbeqz SEQ_00CC +/* 0x00D9 [0x0C ] */ testchan 12 +/* 0x00DA [0xF3 0xF0 ] */ rbeqz SEQ_00CC +/* 0x00DC [0x0E ] */ testchan 14 +/* 0x00DD [0xF3 0xED ] */ rbeqz SEQ_00CC +/* 0x00DF [0x86 ] */ ldio IO_PORT_6 +/* 0x00E0 [0xCD 0x00 0xC0 ] */ dyncall TABLE_00C0 +/* 0x00E3 [0xCC 0x01 ] */ ldi 1 +/* 0x00E5 [0x56 ] */ subio IO_PORT_6 +/* 0x00E6 [0x76 ] */ stio IO_PORT_6 +/* 0x00E7 [0xFF ] */ end + +.sequence SEQ_00E8 +/* 0x00E8 [0x87 ] */ ldio IO_PORT_7 +/* 0x00E9 [0xC7 0x00 0x00 0xF1 ] */ stseq 0, SEQ_00F0 + STSEQ_LDSEQ_SEQ_ID +/* 0x00ED [0xCC 0xFF ] */ ldi 255 +/* 0x00EF [0x71 ] */ stio IO_PORT_1 +SEQ_00F0: +/* 0x00F0 [0xB1 0x02 0x01 0x10 ] */ ldseq 1, NA_BGM_FIELD_LOGIC, ARRAY_0110 +/* 0x00F4 [0xF4 0x0C ] */ rjump SEQ_0102 + +.sequence SEQ_00F6 +/* 0x00F6 [0x87 ] */ ldio IO_PORT_7 +/* 0x00F7 [0xC7 0x00 0x00 0xFF ] */ stseq 0, SEQ_00FE + STSEQ_LDSEQ_SEQ_ID +/* 0x00FB [0xCC 0xFF ] */ ldi 255 +/* 0x00FD [0x71 ] */ stio IO_PORT_1 +SEQ_00FE: +/* 0x00FE [0xB1 0x02 0x13 0x08 ] */ ldseq 1, NA_BGM_FIELD_LOGIC, ARRAY_1308 +SEQ_0102: +/* 0x0102 [0xFE ] */ delay1 +/* 0x0103 [0x81 ] */ ldio IO_PORT_1 +/* 0x0104 [0xF3 0x03 ] */ rbeqz SEQ_0109 +/* 0x0106 [0xF2 0xFA ] */ rbltz SEQ_0102 +/* 0x0108 [0xFF ] */ end + +SEQ_0109: +/* 0x0109 [0xFF ] */ end + +.balign 16 + +.array ARRAY_0110 + .fill 4600 + +.array ARRAY_1308 + .fill 4600 + +.endseq Sequence_2 diff --git a/baseroms/gc-eu-mq-dbg/config.yml b/baseroms/gc-eu-mq-dbg/config.yml index 204affcc25..824e6ed9d5 100644 --- a/baseroms/gc-eu-mq-dbg/config.yml +++ b/baseroms/gc-eu-mq-dbg/config.yml @@ -29,14 +29,6 @@ incbins: segment: code vram: 0x8012A7C0 size: 0x400 - - name: gSequenceFontTable - segment: code - vram: 0x80155340 - size: 0x1C0 - - name: gSequenceTable - segment: code - vram: 0x80155500 - size: 0x6F0 - name: aspMainData segment: code vram: 0x80155C70 diff --git a/baseroms/gc-eu-mq/config.yml b/baseroms/gc-eu-mq/config.yml index ffdef5fecc..bfab3b5072 100644 --- a/baseroms/gc-eu-mq/config.yml +++ b/baseroms/gc-eu-mq/config.yml @@ -21,14 +21,6 @@ incbins: segment: code vram: 0x800E3A10 size: 0xAF0 - - name: gSequenceFontTable - segment: code - vram: 0x801106E0 - size: 0x1C0 - - name: gSequenceTable - segment: code - vram: 0x801108A0 - size: 0x6F0 - name: aspMainData segment: code vram: 0x80111010 diff --git a/baseroms/gc-eu/config.yml b/baseroms/gc-eu/config.yml index 48f3913a4b..7f4840cb7f 100644 --- a/baseroms/gc-eu/config.yml +++ b/baseroms/gc-eu/config.yml @@ -21,14 +21,6 @@ incbins: segment: code vram: 0x800E3A30 size: 0xAF0 - - name: gSequenceFontTable - segment: code - vram: 0x80110700 - size: 0x1C0 - - name: gSequenceTable - segment: code - vram: 0x801108C0 - size: 0x6F0 - name: aspMainData segment: code vram: 0x80111030 diff --git a/baseroms/gc-jp-ce/config.yml b/baseroms/gc-jp-ce/config.yml index b67ab356c5..59c57730af 100644 --- a/baseroms/gc-jp-ce/config.yml +++ b/baseroms/gc-jp-ce/config.yml @@ -21,14 +21,6 @@ incbins: segment: code vram: 0x800E60B0 size: 0xAF0 - - name: gSequenceFontTable - segment: code - vram: 0x80112EF0 - size: 0x1C0 - - name: gSequenceTable - segment: code - vram: 0x801130B0 - size: 0x6F0 - name: aspMainData segment: code vram: 0x80113820 diff --git a/baseroms/gc-jp-mq/config.yml b/baseroms/gc-jp-mq/config.yml index 53b0a71bdb..433e3fe6ad 100644 --- a/baseroms/gc-jp-mq/config.yml +++ b/baseroms/gc-jp-mq/config.yml @@ -21,14 +21,6 @@ incbins: segment: code vram: 0x800E60B0 size: 0xAF0 - - name: gSequenceFontTable - segment: code - vram: 0x80112EF0 - size: 0x1C0 - - name: gSequenceTable - segment: code - vram: 0x801130B0 - size: 0x6F0 - name: aspMainData segment: code vram: 0x80113820 diff --git a/baseroms/gc-jp/config.yml b/baseroms/gc-jp/config.yml index b817960b1b..f86773ac41 100644 --- a/baseroms/gc-jp/config.yml +++ b/baseroms/gc-jp/config.yml @@ -21,14 +21,6 @@ incbins: segment: code vram: 0x800E60D0 size: 0xAF0 - - name: gSequenceFontTable - segment: code - vram: 0x80112F10 - size: 0x1C0 - - name: gSequenceTable - segment: code - vram: 0x801130D0 - size: 0x6F0 - name: aspMainData segment: code vram: 0x80113840 diff --git a/baseroms/gc-us-mq/config.yml b/baseroms/gc-us-mq/config.yml index da23eec425..1a64ec2dbd 100644 --- a/baseroms/gc-us-mq/config.yml +++ b/baseroms/gc-us-mq/config.yml @@ -21,14 +21,6 @@ incbins: segment: code vram: 0x800E6090 size: 0xAF0 - - name: gSequenceFontTable - segment: code - vram: 0x80112ED0 - size: 0x1C0 - - name: gSequenceTable - segment: code - vram: 0x80113090 - size: 0x6F0 - name: aspMainData segment: code vram: 0x80113800 diff --git a/baseroms/gc-us/config.yml b/baseroms/gc-us/config.yml index ae0adc79f6..3a63996ed1 100644 --- a/baseroms/gc-us/config.yml +++ b/baseroms/gc-us/config.yml @@ -21,14 +21,6 @@ incbins: segment: code vram: 0x800E60B0 size: 0xAF0 - - name: gSequenceFontTable - segment: code - vram: 0x80112EF0 - size: 0x1C0 - - name: gSequenceTable - segment: code - vram: 0x801130B0 - size: 0x6F0 - name: aspMainData segment: code vram: 0x80113820 diff --git a/baseroms/ntsc-1.2/config.yml b/baseroms/ntsc-1.2/config.yml index 306b953484..9dc77744df 100644 --- a/baseroms/ntsc-1.2/config.yml +++ b/baseroms/ntsc-1.2/config.yml @@ -28,14 +28,6 @@ incbins: segment: code vram: 0x800E7200 size: 0xAF0 - - name: gSequenceFontTable - segment: code - vram: 0x80114060 - size: 0x1C0 - - name: gSequenceTable - segment: code - vram: 0x80114220 - size: 0x6F0 - name: aspMainData segment: code vram: 0x80114990 diff --git a/data/audio_tables.rodata.s b/data/audio_tables.rodata.s deleted file mode 100644 index 9014311c01..0000000000 --- a/data/audio_tables.rodata.s +++ /dev/null @@ -1,16 +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 .rodata - -.balign 16 - -glabel gSequenceFontTable - .incbin "incbin/gSequenceFontTable" - -glabel gSequenceTable - .incbin "incbin/gSequenceTable" diff --git a/include/audio/aseq.h b/include/audio/aseq.h new file mode 100644 index 0000000000..1c66a3a2c3 --- /dev/null +++ b/include/audio/aseq.h @@ -0,0 +1,2344 @@ +/** + * @file aseq.h + * Zelda64 Music Macro Language (MML) Assembler Definitions + * + * This file implements the assembler for Zelda64 Music Macro Language. MML is an interpreted language that combines + * general MIDI with arithmetic and control flow instructions. + * + * There are multiple distinct sections: + * - .sequence: The top level of the program, this is unique and executes sequentially. + * - .channel: Spawned by the top-level sequence, there can be up to 16 channels active at any time that execute in + * parallel. Channels map directly to MIDI channels, control changes made in channels affect the notes + * in the layers spawned by the channel. + * - .layer: Spawned by channels, up to 4 layers per channel. These execute in parallel. The purpose of layers is + * to allow overlapping notes. + * - .table: Contains dyntable labels. + * - .array: Contains array-like data that can be read using sequence IO instructions. + * - .filter: Contains filter structures. + * - .envelope: Contains envelope scripts. + * - .buffer: Contains arbitrary data. + * + * Execution begins in the sequence section at position 0 of the sequence with no channels or layers initialized. + * + * Execution flows until it blocks on certain commands that induce delays for a fixed number of ticks (it is to be + * understood that ticks in this context refers to seqTicks in code), such as the delay instructions or note + * instructions. If this happens in a channel or layer, the other channels/layers will continue execution until they + * hit their own delays. + * + * Sequences can self-modify. The ldseq, stseq and related instructions can perform loads and stores to any location + * in a sequence, including the executable sections. This can be used to make up for the lack of registers and + * arithmetic instructions by replacing immediate values in the instructions themselves. + * + * The maximum call depth is 4. Call depth applies to both loops and subroutines. Loops are implemented like + * subroutines in that starting a loop pushes a return address onto the call stack and reaching the end of the loop + * decrements the loop counter. If the loop has iterations left, it jumps to the return address. When a loop completes + * all the iterations, or when the break instruction is executed, the return address is popped from the call stack and + * no jump occurs. + * + * In the instruction descriptions, we use a number of conventions for referring to various internal state: + * - PC : The location of the current instruction, within the respective sequence/channel/layer + * - SEQ : The sequence data, viewed as an array of s8/u8 + * - TR : Temporary s8 register + * - TP : Temporary u16 register + * - CIO[15..0][7..0] : Channel IO + * - SIO[7..0] : Sequence IO + * - DYNTBL : Current dyntable, DYNTBL16 and DYNTBL8 are different views into the same memory + * - DYNTBL16 : Current dyntable, viewed as an array of s16/u16 + * - DYNTBL8 : Current dyntable, viewed as an array of s8/u8 + * - CALLDEPTH : The current subroutine nesting level + * - SHORTVELTBL : Current short notes velocity table + * - SHORTGATETBL : Current short notes gate time table + */ +#ifndef ASEQ_H +#define ASEQ_H + +/** + * IO Ports + */ + +#define IO_PORT_0 0 +#define IO_PORT_1 1 +#define IO_PORT_2 2 +#define IO_PORT_3 3 +#define IO_PORT_4 4 +#define IO_PORT_5 5 +#define IO_PORT_6 6 +#define IO_PORT_7 7 + + + +/** + * Parameter Constants + */ + +#define TRUE 1 +#define FALSE 0 + +#define PITCH_A0 0 +#define PITCH_BF0 1 +#define PITCH_B0 2 +#define PITCH_C1 3 +#define PITCH_DF1 4 +#define PITCH_D1 5 +#define PITCH_EF1 6 +#define PITCH_E1 7 +#define PITCH_F1 8 +#define PITCH_GF1 9 +#define PITCH_G1 10 +#define PITCH_AF1 11 +#define PITCH_A1 12 +#define PITCH_BF1 13 +#define PITCH_B1 14 +#define PITCH_C2 15 +#define PITCH_DF2 16 +#define PITCH_D2 17 +#define PITCH_EF2 18 +#define PITCH_E2 19 +#define PITCH_F2 20 +#define PITCH_GF2 21 +#define PITCH_G2 22 +#define PITCH_AF2 23 +#define PITCH_A2 24 +#define PITCH_BF2 25 +#define PITCH_B2 26 +#define PITCH_C3 27 +#define PITCH_DF3 28 +#define PITCH_D3 29 +#define PITCH_EF3 30 +#define PITCH_E3 31 +#define PITCH_F3 32 +#define PITCH_GF3 33 +#define PITCH_G3 34 +#define PITCH_AF3 35 +#define PITCH_A3 36 +#define PITCH_BF3 37 +#define PITCH_B3 38 +#define PITCH_C4 39 +#define PITCH_DF4 40 +#define PITCH_D4 41 +#define PITCH_EF4 42 +#define PITCH_E4 43 +#define PITCH_F4 44 +#define PITCH_GF4 45 +#define PITCH_G4 46 +#define PITCH_AF4 47 +#define PITCH_A4 48 +#define PITCH_BF4 49 +#define PITCH_B4 50 +#define PITCH_C5 51 +#define PITCH_DF5 52 +#define PITCH_D5 53 +#define PITCH_EF5 54 +#define PITCH_E5 55 +#define PITCH_F5 56 +#define PITCH_GF5 57 +#define PITCH_G5 58 +#define PITCH_AF5 59 +#define PITCH_A5 60 +#define PITCH_BF5 61 +#define PITCH_B5 62 +#define PITCH_C6 63 +#define PITCH_DF6 64 +#define PITCH_D6 65 +#define PITCH_EF6 66 +#define PITCH_E6 67 +#define PITCH_F6 68 +#define PITCH_GF6 69 +#define PITCH_G6 70 +#define PITCH_AF6 71 +#define PITCH_A6 72 +#define PITCH_BF6 73 +#define PITCH_B6 74 +#define PITCH_C7 75 +#define PITCH_DF7 76 +#define PITCH_D7 77 +#define PITCH_EF7 78 +#define PITCH_E7 79 +#define PITCH_F7 80 +#define PITCH_GF7 81 +#define PITCH_G7 82 +#define PITCH_AF7 83 +#define PITCH_A7 84 +#define PITCH_BF7 85 +#define PITCH_B7 86 +#define PITCH_C8 87 +#define PITCH_DF8 88 +#define PITCH_D8 89 +#define PITCH_EF8 90 +#define PITCH_E8 91 +#define PITCH_F8 92 +#define PITCH_GF8 93 +#define PITCH_G8 94 +#define PITCH_AF8 95 +#define PITCH_A8 96 +#define PITCH_BF8 97 +#define PITCH_B8 98 +#define PITCH_C9 99 +#define PITCH_DF9 100 +#define PITCH_D9 101 +#define PITCH_EF9 102 +#define PITCH_E9 103 +#define PITCH_F9 104 +#define PITCH_GF9 105 +#define PITCH_G9 106 +#define PITCH_AF9 107 +#define PITCH_A9 108 +#define PITCH_BF9 109 +#define PITCH_B9 110 +#define PITCH_C10 111 +#define PITCH_DF10 112 +#define PITCH_D10 113 +#define PITCH_EF10 114 +#define PITCH_E10 115 +#define PITCH_F10 116 +#define PITCH_BFNEG1 117 +#define PITCH_BNEG1 118 +#define PITCH_C0 119 +#define PITCH_DF0 120 +#define PITCH_D0 121 +#define PITCH_EF0 122 +#define PITCH_E0 123 +#define PITCH_F0 124 +#define PITCH_GF0 125 +#define PITCH_G0 126 +#define PITCH_AF0 127 + +// Hardcoded Instruments +#define FONTANY_INSTR_SFX 126 +#define FONTANY_INSTR_DRUM 127 +// Instruments implemented in gWaveSamples +#define FONTANY_INSTR_SAWTOOTH 128 +#define FONTANY_INSTR_TRIANGLE 129 +#define FONTANY_INSTR_SINE 130 +#define FONTANY_INSTR_SQUARE 131 +#define FONTANY_INSTR_NOISE 132 +#define FONTANY_INSTR_BELL 133 +#define FONTANY_INSTR_8PULSE 134 +#define FONTANY_INSTR_4PULSE 135 +#define FONTANY_INSTR_ASM_NOISE 136 + + + +#ifdef _LANGUAGE_ASEQ + +/** + * MML Version + */ + +#ifndef MML_VERSION + #error "MML version not defined, define MML_VERSION in the cpp invocation" +#endif + +#define MML_VERSION_OOT 0 +#define MML_VERSION_MM 1 + + + +/** + * IDENT + */ + +.ident "Zelda64 Audio Sequence compiled with GNU AS + aseq.h" +#if (MML_VERSION == MML_VERSION_OOT) + .ident "MML VERSION OOT" +#else + .ident "MML VERSION MM" +#endif + + + +/** + * Sequence IDs + */ + +// Some sequence instructions such as runseq would like sequence names for certain arguments. +// This facilitates making the sequence enum names available in sequence assembly files. + +.set __SEQ_ID_CTR, 0 + +#define DEFINE_SEQUENCE(name, seqId, storageMedium, cachePolicy, seqFlags) \ + .internal seqId; \ + .set seqId, __SEQ_ID_CTR; \ + .set __SEQ_ID_CTR, __SEQ_ID_CTR + 1 + +#define DEFINE_SEQUENCE_PTR(seqIdReal, seqId, storageMediumReal, cachePolicyReal, seqFlags) \ + .internal seqId; \ + .set seqId, __SEQ_ID_CTR; \ + .set __SEQ_ID_CTR, __SEQ_ID_CTR + 1 + +#include "tables/sequence_table.h" + +#undef DEFINE_SEQUENCE +#undef DEFINE_SEQUENCE_PTR + +// Mark the counter as internal for the symbol table +.internal __SEQ_ID_CTR + + + +/** + * STSEQ offsets + */ + +#define STSEQ_HERE (. + 1) + +// stores 1 byte (stseq) +#define STSEQ_LOOP_COUNT 1 +#define STSEQ_VOL 1 +#define STSEQ_PAN 1 +#define STSEQ_REVERB 1 +#define STSEQ_UNK_A4 1 +#define STSEQ_FILTER_IDX 1 +#define STSEQ_COMBFILTER_ARG1_HI 2 +#define STSEQ_NOTEDV_OPCODE_PITCH 0 +#define STSEQ_NOTEDV_DELAY 1 +#define STSEQ_NOTEDV_DELAY_HI 1 +#define STSEQ_NOTEDV_DELAY_LO 2 +#define STSEQ_NOTEDV_VELOCITY 3 +#define STSEQ_NOTEDV_VELOCITY_2 2 +#define STSEQ_LDI_IMM 1 +#define STSEQ_TRANSPOSITION 1 +#define STSEQ_PORTAMENTO_MODE 1 +#define STSEQ_PORTAMENTO_PITCH 2 +#define STSEQ_PORTAMENTO_TIME 3 +#define STSEQ_NOTEPAN 1 +#define STSEQ_LDELAY 1 +#define STSEQ_STSEQ_IMM 1 +#define STSEQ_RAND 1 +#define STSEQ_SURROUNDEFFECT 1 +#define STSEQ_GENERAL_OPCODE 0 +#define STSEQ_STEREO 1 +#define STSEQ_BENDFINE 1 +#define STSEQ_NOTEDVG_OPCODE_PITCH 0 +#define STSEQ_NOTEDVG_DELAY_HI 1 +#define STSEQ_NOTEDVG_DELAY_LO 2 +#define STSEQ_NOTEDVG_VELOCITY_LONGDELAY 3 +#define STSEQ_NOTEDVG_DELAY_SHORT 1 +#define STSEQ_NOTEDVG_VELOCITY_SHORTDELAY 2 +#define STSEQ_GAIN 1 +#define STSEQ_INSTR 1 +#define STSEQ_VIBDEPTH 1 +#define STSEQ_SUB_IMM 1 +#define STSEQ_INITCHAN_HI 1 +#define STSEQ_INITCHAN_LO 2 +#define STSEQ_VOLEXP 1 +#define STSEQ_BEND 1 +#define STSEQ_LDSEQ_SEQ_ID 1 + +// stores 2 bytes (stptrtoseq) +#define STSEQ_PTR_DYNTBL 1 +#define STSEQ_PTR_LDLAYER 1 +#define STSEQ_PTR_LDSEQ 1 +#define STSEQ_PTR_STSEQ 2 + +// stores 2 bytes (so should be used with stptrtoseq) +#define STSEQ_ENVELOPE_POINT(n) (2 * (n)) + + + +/** + * Sequence Sections + */ + +.internal ASEQ_MODE_NONE; .set ASEQ_MODE_NONE, 0 +.internal ASEQ_MODE_SEQUENCE; .set ASEQ_MODE_SEQUENCE, 1 +.internal ASEQ_MODE_CHANNEL; .set ASEQ_MODE_CHANNEL, 2 +.internal ASEQ_MODE_LAYER; .set ASEQ_MODE_LAYER, 3 +.internal ASEQ_MODE_TABLE; .set ASEQ_MODE_TABLE, 4 +.internal ASEQ_MODE_ARRAY; .set ASEQ_MODE_ARRAY, 5 +.internal ASEQ_MODE_FILTER; .set ASEQ_MODE_FILTER, 6 +.internal ASEQ_MODE_ENVELOPE; .set ASEQ_MODE_ENVELOPE, 7 +.internal ASEQ_MODE_BUFFER; .set ASEQ_MODE_BUFFER, 8 + + +/* Macros that change structure based on current section */ +.macro _RESET_SECTION + .purgem ldseq + .macro ldseq + .error "Invalid section for `ldseq`" + .endm + + .purgem filter + .macro filter + .error "Invalid section for `filter`" + .endm + + .purgem env + .macro env + .error "Invalid section for `env`" + .endm +.endm + +/* Dummy macro definitions for above so purgem doesn't error on first run */ +.macro ldseq +.endm +.macro filter +.endm +.macro env +.endm + +/* Instantiate above macros */ +_RESET_SECTION + +/** + * Begin a sequence code section. + */ +.macro .sequence name + _RESET_SECTION + + /* `ldseq` changes structure based on current section. */ + .purgem ldseq + .macro ldseq ioPortNum, seqId, label + _wr_cmd_id ldseq, 0xB0,,,,,,,, \ioPortNum, 4 + _wr_u8 \seqId + _wr_lbl \label + .endm + + .set ASEQ_MODE, ASEQ_MODE_SEQUENCE + \name: +.endm + +/** + * Begin a channel code section. + */ +.macro .channel name + _RESET_SECTION + + /* `ldseq` changes structure based on current section. */ + .purgem ldseq + .macro ldseq label + _wr_cmd_id ldseq, ,0xCB,,,,,,, 0, 0 + _wr_lbl \label + .endm + + /* `filter` changes structure based on current section. */ + .purgem filter + .macro filter lowpassCutoff, highpassCutoff + _check_arg_bitwidth_u \lowpassCutoff, 4 + _check_arg_bitwidth_u \highpassCutoff, 4 + + _wr_cmd_id filter, ,0xB3,,,,,,, 0, 0 + _wr_u8 (\lowpassCutoff << 4) | (\highpassCutoff) + .endm + + /* `env` changes structure based on current section. */ + .purgem env + .macro env label + _wr_cmd_id env, ,0xDA,,,,,,, 0, 0 + _wr_lbl \label + .endm + + .set ASEQ_MODE, ASEQ_MODE_CHANNEL + \name: +.endm + +/** + * Begin a layer code section. + */ +.macro .layer name + _RESET_SECTION + + /* `env` changes structure based on current section. */ + .purgem env + .macro env label, arg + _wr_cmd_id env, ,,0xCB,,,,,, 0, 0 + _wr_lbl \label + _wr_u8 \arg + .endm + + .set ASEQ_MODE, ASEQ_MODE_LAYER + \name: +.endm + +/** + * Begin a table section. + */ +.macro .table name + .balign 2 + .table_unaligned \name +.endm + +/** + * Begin a table section at an unaligned offset. + */ +.macro .table_unaligned name + _RESET_SECTION + + .set ASEQ_MODE, ASEQ_MODE_TABLE + \name: +.endm + +/** + * Begin an array section. + */ +.macro .array name + _RESET_SECTION + + .set ASEQ_MODE, ASEQ_MODE_ARRAY + \name: +.endm + +/** + * Begin a filter section. + */ +.macro .filter name + _RESET_SECTION + + /* `filter` changes structure based on current section. */ + .purgem filter + .macro filter a0, a1, a2, a3, a4, a5, a6, a7 + _wr_s16 \a0 + _wr_s16 \a1 + _wr_s16 \a2 + _wr_s16 \a3 + _wr_s16 \a4 + _wr_s16 \a5 + _wr_s16 \a6 + _wr_s16 \a7 + .endm + + .set ASEQ_MODE, ASEQ_MODE_FILTER + .balign 16 + \name: +.endm + +/** + * Begin an envelope section. + */ +.macro .envelope name + _RESET_SECTION + + .set ASEQ_MODE, ASEQ_MODE_ENVELOPE + .balign 2 + \name: +.endm + +/** + * Begin a buffer section. + */ +.macro .buffer name + _RESET_SECTION + + .set ASEQ_MODE, ASEQ_MODE_BUFFER + .balign 16 + \name: +.endm + + +.macro _section_invalid macro_name + .if ASEQ_MODE == ASEQ_MODE_SEQUENCE + .error "Invalid section for `\macro_name`: Sequence" + .elseif ASEQ_MODE == ASEQ_MODE_CHANNEL + .error "Invalid section for `\macro_name`: Channel" + .elseif ASEQ_MODE == ASEQ_MODE_LAYER + .error "Invalid section for `\macro_name`: Layer" + .elseif ASEQ_MODE == ASEQ_MODE_TABLE + .error "Invalid section for `\macro_name`: Table" + .elseif ASEQ_MODE == ASEQ_MODE_ARRAY + .error "Invalid section for `\macro_name`: Array" + .elseif ASEQ_MODE == ASEQ_MODE_FILTER + .error "Invalid section for `\macro_name`: Filter" + .elseif ASEQ_MODE == ASEQ_MODE_ENVELOPE + .error "Invalid section for `\macro_name`: Envelope" + .elseif ASEQ_MODE == ASEQ_MODE_BUFFER + .error "Invalid section for `\macro_name`: Buffer" + .else + .error "Invalid section" + .endif +.endm + + + +/** + * Sequence Start/End + */ + +.macro .startseq name + /* Begin a sequence. */ + + /* Write the sequence name into a special .name section */ + .pushsection .name, "", @note + .asciz "\name" + .balign 4 + .popsection + + /* Reset section and write start symbol. */ + .section .data, "wa", @progbits + .set ASEQ_MODE, ASEQ_MODE_NONE + .balign 16 + .global \name\()_Start + \name\()_Start: + _seq_start: +.endm + +.macro .endseq name + /* End a sequence. Align to 16 bytes, write end and size symbols. */ + .balign 16 + _seq_end: + .global \name\()_End + \name\()_End: + .global \name\()_Size + .set \name\()_Size, _seq_end - _seq_start + /* Mark ASEQ_MODE as an internal symbol at the very end since it is redefined many times */ + .internal ASEQ_MODE +.endm + + + +/** + * Parameters + */ + +.macro _check_arg_bitwidth_u value, num + /* Checks if the unsigned integer `value` fits within `num` bits. */ + .if (\value & ((1 << \num) - 1)) != \value + .error "value \value out of range for unsigned \num\()-bit argument" + .endif +.endm + +.macro _check_arg_bitwidth_s value, num + /* Checks if the signed integer `value` fits within `num` bits. */ + .if (\value & ((1 << (\num - 1)) - 1)) - (\value & (1 << (\num - 1))) != \value + .error "value \value out of range for signed \num\()-bit argument" + .endif +.endm + +/* Long encoded numbers a la MIDI */ +.macro _var_long x + _check_arg_bitwidth_u \x, 15 + + .byte (0x80 | (\x & 0x7f00) >> 8), (\x & 0xff) +.endm + +/* Potentially long encoded numbers, but may not be. */ +.macro _var x + .if (\x >= 0x80) + _var_long \x + .else + _check_arg_bitwidth_u \x, 8 + .byte \x + .endif +.endm + +.macro _wr8 value + /* Write 8 bits */ + .byte (\value) & 0xFF +.endm + +.macro _wr16 value + /* Write 16 bits (big-endian) */ + .byte (\value) >> 8, (\value) & 0xFF +.endm + +.macro _wr_s8 value + /* Ensure the provided arg value fits in 8 bits (signed) */ + _check_arg_bitwidth_s \value, 8 + _wr8 \value +.endm + +.macro _wr_u8 value + /* Ensure the provided arg value fits in 8 bits (unsigned) */ + _check_arg_bitwidth_u \value, 8 + _wr8 \value +.endm + +.macro _wr_s16 value + /* Ensure the provided arg value fits in 16 bits (signed) */ + _check_arg_bitwidth_s \value, 16 + _wr16 \value +.endm + +.macro _wr_u16 value + /* Ensure the provided arg value fits in 16 bits (unsigned) */ + _check_arg_bitwidth_u \value, 16 + _wr16 \value +.endm + +.macro _wr_lbl value + /* Subtract sequence start label to get a numeric offset that can be written at assembling time */ + _wr16 (\value - _seq_start) +.endm + +.macro _wr_16_rel value + /* Turn label into relative offset. + * Can't check encoding, complains about non-constant value.. */ + _wr16 (\value - $reladdr\@) +$reladdr\@: +.endm + +.macro _wr_8_rel value + /* Turn label into relative offset. + * Can't check encoding, complains about non-constant value.. */ + _wr8 (\value - $reladdr\@) +$reladdr\@: +.endm + +.macro _wr_cmd_id cmd_name, seq_id=-1, chan_id=-1, layer_id=-1, tbl_id=-1, arr_id=-1, filt_id=-1, env_id=-1, buf_id=-1, lo_bits, n_lo_bits + /* Helper for writing command ids. Will write the command id appropriate for the current section, optionally + * packing in low-order bits if a command uses them for an argument. */ + _check_arg_bitwidth_u \lo_bits, \n_lo_bits + + .if ASEQ_MODE == ASEQ_MODE_SEQUENCE && \seq_id != -1 + _check_arg_bitwidth_u \seq_id, 8 + .byte (\seq_id & 0xFF) | (\lo_bits) + .elseif ASEQ_MODE == ASEQ_MODE_CHANNEL && \chan_id != -1 + _check_arg_bitwidth_u \chan_id, 8 + .byte (\chan_id & 0xFF) | (\lo_bits) + .elseif ASEQ_MODE == ASEQ_MODE_LAYER && \layer_id != -1 + _check_arg_bitwidth_u \layer_id, 8 + .byte (\layer_id & 0xFF) | (\lo_bits) + .elseif ASEQ_MODE == ASEQ_MODE_TABLE && \tbl_id != -1 + _check_arg_bitwidth_u \tbl_id, 8 + .byte (\tbl_id & 0xFF) | (\lo_bits) + .elseif ASEQ_MODE == ASEQ_MODE_ARRAY && \arr_id != -1 + _check_arg_bitwidth_u \arr_id, 8 + .byte (\arr_id & 0xFF) | (\lo_bits) + .elseif ASEQ_MODE == ASEQ_MODE_FILTER && \filt_id != -1 + _check_arg_bitwidth_u \filt_id, 8 + .byte (\filt_id & 0xFF) | (\lo_bits) + .elseif ASEQ_MODE == ASEQ_MODE_ENVELOPE && \env_id != -1 + _check_arg_bitwidth_u \env_id, 8 + .byte (\env_id & 0xFF) | (\lo_bits) + .elseif ASEQ_MODE == ASEQ_MODE_BUFFER && \buf_id != -1 + _check_arg_bitwidth_u \buf_id, 8 + .byte (\buf_id & 0xFF) | (\lo_bits) + .else + _section_invalid \cmd_name + .endif +.endm + +.macro .ptr value + _wr_lbl \value +.endm + +.macro .ptr_raw value + _wr16 \value +.endm + + + +/** + * Instructions + */ + +/** + * end + * + * Marks the end of an executable section. + * + * If CALLDEPTH is not 0 (that is, execution is currently in a subroutine) + * the current subroutine is exited and execution continues at the saved + * return address. If CALLDEPTH is 0, the current layer/channel/sequence is + * closed. If the sequence is closed, all execution ends. If a channel is + * closed, so are its layers. + */ +.macro end + _wr_cmd_id end, 0xFF,0xFF,0xFF,,,,,, 0, 0 +.endm + +/** + * delay1 + * + * Delays for one tick. + */ +.macro delay1 + _wr_cmd_id delay1, 0xFE,0xFE,,,,,,, 0, 0 +.endm + +/** + * delay + * + * Delays for `delay` ticks. + */ +.macro delay delay + _wr_cmd_id delay, 0xFD,0xFD,,,,,,, 0, 0 + _var \delay +.endm + +/** + * call + * + * Unconditionally enters a subroutine at `label`. Execution will resume following this instruction once the + * subroutine encounters an `end` instruction. + */ +.macro call label + _wr_cmd_id call, 0xFC,0xFC,0xFC,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * jump + * + * Branches to `label` unconditionally. + */ +.macro jump label + _wr_cmd_id jump, 0xFB,0xFB,0xFB,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * beqz + * + * Branches to `label` if TR == 0. + */ +.macro beqz label + _wr_cmd_id beqz, 0xFA,0xFA,0xFA,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * bltz + * + * Branches to `label` if TR < 0. + */ +.macro bltz label + _wr_cmd_id beqz, 0xF9,0xF9,0xF9,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * loop + * + * Begin a loop for `num` iterations, pushing the address of the next + * instruction to the call stack. + * + * Maximum loop nesting level is 4 - CALLDEPTH, after this the call stack + * becomes full. + */ +.macro loop num + _wr_cmd_id loop, 0xF8,0xF8,0xF8,,,,,, 0, 0 + _wr_u8 \num +.endm + +/** + * loopend + * + * Indicates the end of a loop body. Whenever the instruction is executed + * the loop counter decrements and either branches back to the loop start + * if there are remaining iterations or exits the loop if all iterations + * have been completed. When the loop is to be exited, the top of the call + * stack is popped. + */ +.macro loopend + _wr_cmd_id loopend, 0xF7,0xF7,0xF7,,,,,, 0, 0 +.endm + +/** + * break + * + * Immediately ends the current loop, popping it from the call stack, but + * does not branch to the end of the loop. + * + * Programming Note: Do not allow execution to later flow into loopend, as + * the call stack would be popped twice. + */ +.macro break + _wr_cmd_id break, 0xF6,0xF6,0xF6,,,,,, 0, 0 +.endm + +/** + * bgez + * + * Branches to `label` if TR >= 0. + */ +.macro bgez label + _wr_cmd_id bgez, 0xF5,0xF5,0xF5,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * rjump + * + * Branches to `label` unconditionally. + * `label` is a relative offset rather than an absolute offset, making it appropriate + * for use in position-independent code. + * Note that the range is reduced compared to absolute jumps, only labels within a + * signed 8-bit (+/-128) range are reachable. + */ +.macro rjump label + _wr_cmd_id rjump, 0xF4,0xF4,0xF4,,,,,, 0, 0 + _wr_8_rel \label +.endm + +/** + * rbeqz + * + * Branches to `label` if TR == 0. + * `label` is a relative offset rather than an absolute offset, making it appropriate + * for use in position-independent code. + * Note that the range is reduced compared to absolute branches, only labels within a + * signed 8-bit (+/-128) range are reachable. + */ +.macro rbeqz label + _wr_cmd_id rbeqz, 0xF3,0xF3,0xF3,,,,,, 0, 0 + _wr_8_rel \label +.endm + +/** + * rbltz + * + * Branches to `label` if TR < 0. + * `label` is a relative offset rather than an absolute offset, making it appropriate + * for use in position-independent code. + * Note that the range is reduced compared to absolute branches, only labels within a + * signed 8-bit (+/-128) range are reachable. + */ +.macro rbltz label + _wr_cmd_id rbltz, 0xF2,0xF2,0xF2,,,,,, 0, 0 + _wr_8_rel \label +.endm + +/** + * allocnotelist + * + * Clears the channel note pool and reallocates it with space for `num` notes. + */ +.macro allocnotelist num + _wr_cmd_id allocnotelist, 0xF1,0xF1,,,,,,, 0, 0 + _wr_u8 \num +.endm + +/** + * freenotelist + * + * Clears the channel note pool. + */ +.macro freenotelist + _wr_cmd_id freenotelist, 0xF0,0xF0,,,,,,, 0, 0 +.endm + +/** + * unk_EF + * + * Has no function. + */ +.macro unk_EF arg1, arg2 + _wr_cmd_id unk_EF, 0xEF,,,,,,,, 0, 0 + _wr_s16 \arg1 + _w_u8 \arg2 +.endm + +/** + * bendfine + * + * Fine-tunes the pitch bend amount for the channel or layer. + */ +.macro bendfine amt + _wr_cmd_id bendfine, ,0xEE,0xCE,,,,,, 0, 0 + _wr_s8 \amt +.endm + +/** + * gain + * + * Sets the channel gain (multiplicative volume scale factor) to the provided qu4.4 fixed-point value. + */ +.macro gain value + _wr_cmd_id gain, ,0xED,,,,,,, 0, 0 + _wr_u8 \value +.endm + +/** + * vibreset + * + * Resets channel vibrato, filter, gain, sustain, etc. state. + */ +.macro vibreset + _wr_cmd_id vibreset, ,0xEC,,,,,,, 0, 0 +.endm + +/** + * fontinstr + * + * Updates the soundfont and instrument for the channel simultaneously. + */ +.macro fontinstr fontId, instId + _wr_cmd_id fontinstr, ,0xEB,,,,,,, 0, 0 + _wr_u8 \fontId + _wr_u8 \instId +.endm + +/** + * notepri + * + * Set note priorities. + */ +.macro notepri priority1, priority2 + _check_arg_bitwidth_u \priority1, 4 + _check_arg_bitwidth_u \priority2, 4 + _wr_cmd_id notepri, ,0xE9,,,,,,, 0, 0 + _wr_u8 (\priority1 << 4) | \priority2 +.endm + +/** + * params + * + * + * Sets various channel parameters. + */ +.macro params muteBhv, noteAllocPolicy, channelPriority, transposition, pan, panWeight, reverb, reverbIndex + _wr_cmd_id params, ,0xE8,,,,,,, 0, 0 + _wr_u8 \muteBhv + _wr_u8 \noteAllocPolicy + _wr_u8 \channelPriority + _wr_u8 \transposition + _wr_u8 \pan + _wr_u8 \panWeight + _wr_u8 \reverb + _wr_u8 \reverbIndex +.endm + +/** + * ldparams + * + * Sets various channel parameters by loading them from `label`. The data + * is ordered in the same way as the arguments in `params`. + */ +.macro ldparams label + _wr_cmd_id ldparams, ,0xE7,,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * samplebook + * + * Sets the sample book mode. + */ +.macro samplebook value + _wr_cmd_id samplebook, ,0xE6,,,,,,, 0, 0 + _wr_u8 \value +.endm + +/** + * reverbidx + * + * Sets the channel reverb. + */ +.macro reverbidx arg + _wr_cmd_id reverbidx, ,0xE5,,,,,,, 0, 0 + _wr_u8 \arg +.endm + +/** + * reverbidx + * + * Sets the channel vibrato delay. + */ +.macro vibdelay arg + _wr_cmd_id vibdelay, ,0xE3,,,,,,, 0, 0 + _wr_u8 \arg +.endm + +/** + * vibdepthgrad + * + * Sets the vibrato extent. + */ +.macro vibdepthgrad arg0, arg1, arg2 + _wr_cmd_id vibdepthgrad, ,0xE2,,,,,,, 0, 0 + _wr_u8 \arg0 + _wr_u8 \arg1 + _wr_u8 \arg2 +.endm + +/** + * vibfreqgrad + * + * Sets the vibrato rate. + */ +.macro vibfreqgrad arg0, arg1, arg2 + _wr_cmd_id vibfreqgrad, ,0xE1,,,,,,, 0, 0 + _wr_u8 \arg0 + _wr_u8 \arg1 + _wr_u8 \arg2 +.endm + +/** + * volexp + * + * Changes the expression amount for the channel. + */ +.macro volexp amt + _wr_cmd_id volexp, ,0xE0,,,,,,, 0, 0 + _wr_u8 \amt +.endm + +/** + * transpose + * + * Sets the transposition amount. Transposition shifts all note pitches by the + * provided number of semitones. + */ +.macro transpose semitones + _wr_cmd_id transpose, 0xDF,0xDB,0xC2,,,,,, 0, 0 + _wr_s8 \semitones +.endm + +/** + * rtranspose + * + * Adjusts the transposition amount. This is only available at the top sequence level. + */ +.macro rtranspose semitones + _wr_cmd_id rtranspose, 0xDE,,,,,,,, 0, 0 + _wr_s8 \semitones +.endm + +/** + * freqscale + * + * Sets the freqScale for the current channel. + */ +.macro freqscale arg + _wr_cmd_id freqscale, ,0xDE,,,,,,, 0, 0 + _wr_s16 \arg +.endm + +/** + * tempo + * + * Changes the tempo of the sequence. + */ +.macro tempo bpm + _wr_cmd_id tempo, 0xDD,,,,,,,, 0, 0 + _wr_u8 \bpm +.endm + +/** + * tempochg + * + * Sets the tempoChange for the sequence. + */ +.macro tempochg arg + _wr_cmd_id tempochg, 0xDC,,,,,,,, 0, 0 + _wr_s8 \arg +.endm + +/** + * pan + * + * Changes the pan amount for a channel. + */ +.macro pan pan + /* pan can only take values in 0..127 */ + _check_arg_bitwidth_u \pan, 7 + _wr_cmd_id pan, ,0xDD,,,,,,, 0, 0 + _wr_u8 \pan +.endm + +/** + * panweight + * + * Controls how much the final pan value is influenced by the channel pan and layer pan. + * The layer pan is set by the drum instrument pan. + * A value of 0 ignores channel pan, while a value of 127 ignores layer pan. + * + * finalPan = (weight * channelPan + (128 - weight) * layerPan) / 128 + */ +.macro panweight weight + /* weight can only take values in 0..127 */ + _check_arg_bitwidth_u \weight, 7 + _wr_cmd_id panweight, ,0xDC,,,,,,, 0, 0 + _wr_u8 \weight +.endm + +/** + * vol + * + * Sets the volume amount for this sequence or channel. + */ +.macro vol amt + _wr_cmd_id vol, 0xDB,0xDF,,,,,,, 0, 0 + _wr_u8 \amt +.endm + +/** + * volmode + * + * TODO DESCRIPTION + */ +.macro volmode mode, fadeTimer + _wr_cmd_id volmode, 0xDA,,,,,,,, 0, 0 + _wr_u8 \mode + _wr_u16 \fadeTimer +.endm + +/** + * volscale + * + * Sets the fadeVolumeScale for the sequence. + */ +.macro volscale arg + _wr_cmd_id volscale, 0xD9,,,,,,,, 0, 0 + _wr_u8 \arg +.endm + +/** + * releaserate + * + * Sets the envelope release rate for this channel or layer. + */ +.macro releaserate release + _wr_cmd_id releaserate, ,0xD9,0xCF,,,,,, 0, 0 + _wr_u8 \release +.endm + +/** + * vibdepth + * + * Sets the vibrato depth for the channel. + */ +.macro vibdepth arg + _wr_cmd_id vibdepth, ,0xD8,,,,,,, 0, 0 + _wr_u8 \arg +.endm + +/** + * vibfreq + * + * Sets the vibrato rate for the channel. + */ +.macro vibfreq arg + _wr_cmd_id vibfreq, ,0xD7,,,,,,, 0, 0 + _wr_u8 \arg +.endm + +/** + * initchan + * + * Initializes the channels marked in the provided bitmask. + * + * e.g. initchan 0b1 initializes channel 0. + * initchan 0b101 initializes channels 0 and 2. + */ +.macro initchan bitmask + _wr_cmd_id initchan, 0xD7,,,,,,,, 0, 0 + _wr_u16 \bitmask +.endm + +/** + * freechan + * + * Frees the channels marked in the provided bitmask. + */ +.macro freechan bitmask + _wr_cmd_id freechan, 0xD6,,,,,,,, 0, 0 + _wr_u16 \bitmask +.endm + +/** + * mutescale + * + * Sets the muteVolumeScale for the sequence. + */ +.macro mutescale arg + _wr_cmd_id mutescale, 0xD5,,,,,,,, 0, 0 + _wr_s8 \arg +.endm + +/** + * mute + * + * Mutes the sequence player. + */ +.macro mute + _wr_cmd_id mute, 0xD4,,,,,,,, 0, 0 +.endm + +/** + * reverb + * + * Sets the reverb amount for this channel. + */ +.macro reverb amt + _wr_cmd_id reverb, ,0xD4,,,,,,, 0, 0 + _wr_u8 \amt +.endm + +/** + * mutebhv + * + * Sets mute behavior for this sequence or channel. + */ +.macro mutebhv flags + _wr_cmd_id mutebhv, 0xD3,0xCA,,,,,,, 0, 0 + _wr_u8 \flags +.endm + +/** + * bend + * + * Sets the pitch bend amount for this channel. + */ +.macro bend amt + _wr_cmd_id bend, ,0xD3,,,,,,, 0, 0 + _wr_s8 \amt +.endm + +/** + * ldshortvelarr + * + * Sets the location of SHORTVELTBL. + */ +.macro ldshortvelarr label + _wr_cmd_id ldshortvelarr, 0xD2,,,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * sustain + * + * Sets the adsr sustain value for this channel. + */ +.macro sustain value + _wr_cmd_id sustain, ,0xD2,,,,,,, 0, 0 + _wr_u8 \value +.endm + +/** + * ldshortgatearr + * + * Sets the location of SHORTGATETBL. + */ +.macro ldshortgatearr label + _wr_cmd_id ldshortgatearr, 0xD1,,,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * notealloc + * + * Sets the noteAllocPolicy for either the sequence or the current channel. + */ +.macro notealloc arg + _wr_cmd_id notealloc, 0xD0,0xD1,,,,,,, 0, 0 + _wr_u8 \arg +.endm + +/** + * effects + * + * Sets stereo effects. + */ +.macro effects headset, type, strongR, strongL, strongRvrbR, strongRvrbL + _check_arg_bitwidth_u \headset, 1 + _check_arg_bitwidth_u \type, 2 + _check_arg_bitwidth_u \strongR, 1 + _check_arg_bitwidth_u \strongL, 1 + _check_arg_bitwidth_u \strongRvrbR, 1 + _check_arg_bitwidth_u \strongRvrbL, 1 + + _wr_cmd_id effects, ,0xD0,,,,,,, 0, 0 + _wr_u8 (\headset << 7) | (\type << 4) | (\strongR << 3) | (\strongL << 2) | (\strongRvrbR << 1) | (\strongRvrbL << 0) +.endm + +/** + * stptrtoseq + * + * Stores TP -> label + */ +.macro stptrtoseq label + _wr_cmd_id stptrtoseq, ,0xCF,,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * ldptr + * + * Loads label -> TP + */ +.macro ldptr label + _wr_cmd_id ldptr, ,0xCE,,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * ldptr + * + * Loads imm -> TP + */ +.macro ldptri imm + _wr_cmd_id ldptr, ,0xCE,,,,,,, 0, 0 + _wr_u16 \imm +.endm + +/** + * rand + * + * Stores a random number in the range [0, max) into TR. If max is 0 the range is [0, 255] + */ +.macro rand max + _wr_cmd_id rand, 0xCE,0xB8,,,,,,, 0, 0 + _wr_u8 \max +.endm + +/** + * [sequence] dyncall + * + * Jumps to table[TR], treating table as a u16 array, pushing the next PC to the call stack + * + * [channel] dyncall + * + * Jumps to DYNTBL16[TR], pushing the next PC to the call stack + */ +.macro dyncall table=-1 + .if \table == -1 + _wr_cmd_id dyncall, ,0xE4,,,,,,, 0, 0 + .else + _wr_cmd_id dyncall, 0xCD,,,,,,,, 0, 0 + _wr_lbl \table + .endif +.endm + +/** + * ldi + * + * Loads the immediate value `imm` into TR. + */ +.macro ldi imm + _wr_cmd_id ldi, 0xCC,0xCC,,,,,,, 0, 0 + _wr_u8 \imm +.endm + +/** + * and + * + * Computes TR = TR & imm + */ +.macro and imm + _wr_cmd_id and, 0xC9,0xC9,,,,,,, 0, 0 + _wr_u8 \imm +.endm + +/** + * sub + * + * Computes TR = TR - imm + */ +.macro sub imm + _wr_cmd_id sub, 0xC8,0xC8,,,,,,, 0, 0 + _wr_u8 \imm +.endm + +/** + * stseq + * + * Stores the u8 value `TR + imm` to the location specified by `label`. + */ +.macro stseq imm, label + _wr_cmd_id stseq, 0xC7,0xC7,,,,,,, 0, 0 + _wr_u8 \imm + _wr_lbl \label +.endm + +/** + * stop + * + * Immediately stops the sequence or channel. + */ +.macro stop + _wr_cmd_id stop, 0xC6,0xEA,,,,,,, 0, 0 +.endm + +/** + * font + * + * Set the current soundfont for this channel to `fontId`. + */ +.macro font fontId + _wr_cmd_id font, ,0xC6,,,,,,, 0, 0 + _wr_u8 \fontId +.endm + +/** + * scriptctr + * + * Sets scriptCounter to arg. + * + * scriptCounter usually increments every time the sequence is updated but is otherwise + * never used, so changing it with this instruction has no useful effects. + */ +.macro scriptctr arg + _wr_cmd_id scriptctr, 0xC5,,,,,,,, 0, 0 + _wr_u16 \arg +.endm + +/** + * dyntbllookup + * + * Loads DYNTBL16[TR] -> DYNTBL + * unless TR is -1, in which case nothing happens. + */ +.macro dyntbllookup + _wr_cmd_id dyntbllookup, ,0xC5,,,,,,, 0, 0 +.endm + +/** + * runseq + * + * Plays the sequence seqId on seqPlayer. + */ +.macro runseq seqPlayer, seqId + _wr_cmd_id runseq, 0xC4,,,,,,,, 0, 0 + _wr_u8 \seqPlayer + _wr_u8 \seqId +.endm + +#if (MML_VERSION == MML_VERSION_MM) + + /** + * mutechan + * + * TODO DESCRIPTION + */ + .macro mutechan arg0 + _wr_cmd_id mutechan, 0xC3,,,,,,,, 0, 0 + _wr_s16 \arg0 + .endm + +#endif + +/** + * noshort + * + * Disable short notes encoding. + */ +.macro noshort + _wr_cmd_id noshort, ,0xC4,,,,,,, 0, 0 +.endm + +/** + * short + * + * Enable short notes encoding. + */ +.macro short + _wr_cmd_id short, ,0xC3,,,,,,, 0, 0 +.endm + +/** + * dyntbl + * + * Loads label -> DYNTBL + */ +.macro dyntbl label + _wr_cmd_id dyntbl, ,0xC2,,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * instr + * + * Set instrument `instNum` from the current soundfont as the active instrument for this channel or layer. + */ +.macro instr instNum + _wr_cmd_id instr, ,0xC1,0xC6,,,,,, 0, 0 + _wr_u8 \instNum +.endm + +#if (MML_VERSION == MML_VERSION_MM) + + /** + * unk_BE + * + * TODO DESCRIPTION + */ + .macro unk_BE arg0 + _wr_cmd_id unk_BE, ,0xBE,,,,,,, 0, 0 + _wr_u8 \arg0 + .endm + +#endif + +/** + * randptr + * + * Assigns a random number sampled from [offset,offset+range) -> TP + * + * If range is 0, it is treated as 65536. + */ +.macro randptr range, offset + #if (MML_VERSION == MML_VERSION_OOT) + _wr_cmd_id randptr, ,0xBD,,,,,,, 0, 0 + #else + _wr_cmd_id randptr, ,0xA8,,,,,,, 0, 0 + #endif + _wr_u16 \range + _wr_u16 \offset +.endm + +#if (MML_VERSION == MML_VERSION_MM) + + /** + * samplestart + * + * TODO DESCRIPTION + */ + .macro samplestart arg + _wr_cmd_id samplestart, ,0xBD,,,,,,, 0, 0 + _wr_u8 \arg + .endm + + /** + * unk_A7 + * + * TODO DESCRIPTION + */ + .macro unk_A7 arg + _wr_cmd_id unk_A7, ,0xA7,,,,,,, 0, 0 + _wr_u8 \arg + .endm + + /** + * unk_A6 + * + * TODO DESCRIPTION + */ + .macro unk_A6 arg0, arg1 + _wr_cmd_id unk_A6, ,0xA6,,,,,,, 0, 0 + _wr_u8 \arg0 + _wr_s16 \arg1 + .endm + + /** + * unk_A5 + * + * TODO DESCRIPTION + */ + .macro unk_A5 + _wr_cmd_id unk_A5, ,0xA5,,,,,,, 0, 0 + .endm + + /** + * unk_A4 + * + * TODO DESCRIPTION + */ + .macro unk_A4 arg + _wr_cmd_id unk_A4, ,0xA4,,,,,,, 0, 0 + _wr_u8 \arg + .endm + + /** + * unk_A3 + * + * TODO DESCRIPTION + */ + .macro unk_A3 + _wr_cmd_id unk_A3, ,0xA3,,,,,,, 0, 0 + .endm + + /** + * unk_A2 + * + * TODO DESCRIPTION + */ + .macro unk_A2 arg + _wr_cmd_id unk_A2, ,0xA2,,,,,,, 0, 0 + _wr_s16 \arg + .endm + + /** + * unk_A1 + * + * TODO DESCRIPTION + */ + .macro unk_A1 + _wr_cmd_id unk_A1, ,0xA1,,,,,,, 0, 0 + .endm + + /** + * unk_A0 + * + * TODO DESCRIPTION + */ + .macro unk_A0 arg + _wr_cmd_id unk_A0, ,0xA0,,,,,,, 0, 0 + _wr_s16 \arg + .endm + +#endif + +/** + * ptradd + * + * Computes TP += value + */ +.macro ptradd value + _wr_cmd_id ptradd, ,0xBC,,,,,,, 0, 0 + _wr_lbl \value +.endm + +/** + * ptraddi + * + * Like ptradd but for immediates instead of labels + * + * Computes TP += value + */ +.macro ptraddi value + _wr_cmd_id ptradd, ,0xBC,,,,,,, 0, 0 + _wr_u16 \value +.endm + +/** + * combfilter + * + * Enable comb filter. + * TODO args? arg0=16,arg1=val<<8 maps well to midi chorus + */ +.macro combfilter arg0, arg1 + _wr_cmd_id combfilter, ,0xBB,,,,,,, 0, 0 + _wr_u8 \arg0 + _wr_u16 \arg1 +.endm + +/** + * randgate + * + * Sets the range of random note gateTime fluctuations. + * + * NOTE: This feature is bugged. If this is non-zero it will actually use the range set by randvel. + */ +.macro randgate range + _wr_cmd_id randgate, ,0xBA,,,,,,, 0, 0 + _wr_u8 \range +.endm + +/** + * randvel + * + * Sets the range for random note velocity fluctuations. + */ +.macro randvel range + _wr_cmd_id randvel, ,0xB9,,,,,,, 0, 0 + _wr_u8 \range +.endm + +/** + * rand + * + * Stores a random number in the range [0, max) into TP. If max is 0 the range is [0, 65535] + */ +.macro randtoptr max + _wr_cmd_id randtoptr, ,0xB7,,,,,,, 0, 0 + _wr_u16 \max +.endm + +/** + * dyntblv + * + * Loads DYNTBL8[TR] -> TR + */ +.macro dyntblv + _wr_cmd_id dyntblv, ,0xB6,,,,,,, 0, 0 +.endm + +/** + * dyntbltoptr + * + * Loads DYNTBL16[TR] -> TP + */ +.macro dyntbltoptr + _wr_cmd_id dyntbltoptr, ,0xB5,,,,,,, 0, 0 +.endm + +/** + * ptrtodyntbl + * + * Transfers TP -> DYNTBL + */ +.macro ptrtodyntbl + _wr_cmd_id ptrtodyntbl, ,0xB4,,,,,,, 0, 0 +.endm + +/** + * ldseqtoptr + * + * Loads SEQ[label + TR * 2] -> TP + * + * Note that TR acts as an index into an array of u16 starting at label. + */ +.macro ldseqtoptr label + _wr_cmd_id ldseqtoptr, ,0xB2,,,,,,, 0, 0 + _wr_lbl \label +.endm + +/** + * freefilter + * + * Invalidates the current active filter buffer. + */ +.macro freefilter + _wr_cmd_id freefilter, ,0xB1,,,,,,, 0, 0 +.endm + +/** + * ldfilter + * + * Sets the active filter buffer to the location specified by `filter`. + */ +.macro ldfilter filter + _wr_cmd_id ldfilter, ,0xB0,,,,,,, 0, 0 + _wr_lbl \filter +.endm + +/** + * cdelay + * + * Short delay encoding for channel sections. + * Delays by `delay` ticks. + */ +.macro cdelay delay + _wr_cmd_id cdelay, ,0x00,,,,,,, \delay, 4 +.endm + +/** + * ldsample + * + * Triggers an async load of a sample belonging to either: + * - The Instrument ID in TR, if type is LDSAMPLE_INST. + * - The Sound Effect ID in TP, if type is LDSAMPLE_SFX. + * + * Load status is made available in CIO[CUR_CHANNEL][portNum]. + */ +.macro ldsample type, portNum + .if \type == LDSAMPLE_INST + _wr_cmd_id ldsample, ,0x10,,,,,,, \portNum, 3 + .elif \type == LDSAMPLE_SFX + _wr_cmd_id ldsample, ,0x18,,,,,,, \portNum, 3 + .else + .error "ldsample: invalid type" + .endif +.endm +#define LDSAMPLE_INST 0 +#define LDSAMPLE_SFX 1 + +/** + * stcio + * + * Stores the contents of TR into CIO[channelNum][portNum] + */ +.macro stcio channelNum, portNum + _wr_cmd_id stcio, ,0x30,,,,,,, \channelNum, 4 + _wr_u8 \portNum +.endm + +/** + * ldcio + * + * Loads the contents of CIO[channelNum][portNum] into TR. + */ +.macro ldcio channelNum, portNum + _wr_cmd_id ldcio, ,0x40,,,,,,, \channelNum, 4 + _wr_u8 \portNum +.endm + +/** + * rldlayer + * + * Opens the note layer at `label` for index `layerNum`. + * `label` is a relative offset rather than an absolute offset, making it appropriate + * for use in position-independent code. + */ +.macro rldlayer layerNum, label + _wr_cmd_id rldlayer, ,0x78,,,,,,, \layerNum, 3 + _wr_16_rel \label +.endm + +/** + * testlayer + * + * Tests if the layer specified by `layerNum` is finished. + * Stores result to TR: + * - 1 if layer is finished. + * - 0 if layer is not finished. + * - -1 if layer does not exist. + */ +.macro testlayer layerNum + _wr_cmd_id testlayer, ,0x80,,,,,,, \layerNum, 3 +.endm + +/** + * ldlayer + * + * Opens the note layer at `label` for index `layerNum`. + */ +.macro ldlayer layerNum, label + _wr_cmd_id ldlayer, ,0x88,,,,,,, \layerNum, 3 + _wr_lbl \label +.endm + +/** + * dellayer + * + * Deletes the layer specified by index `layerNum`. + */ +.macro dellayer arg + _wr_cmd_id dellayer, ,0x90,,,,,,, \arg, 3 +.endm + +/** + * dynldlayer + * + * Allocates a new layer starting at the pointer read from DYNTBL16[TR] + */ +.macro dynldlayer arg + _wr_cmd_id dynldlayer, ,0x98,,,,,,, \arg, 3 +.endm + +/** + * testchan + * + * Tests if the channel specified by index `channelNum` is enabled. + * Stores result to TR: + * - 0 if enabled + * - 1 if disabled + */ +.macro testchan channelNum + _wr_cmd_id testchan, 0x00,,,,,,,, \channelNum, 4 +.endm + +/** + * stopchan + * + * Disables the channel specified by channel `channelNum`. + */ +.macro stopchan channelNum + .if ASEQ_MODE == ASEQ_MODE_SEQUENCE + _wr_cmd_id stopchan, 0x40,,,,,,,, \channelNum, 4 + .else + _wr_cmd_id stopchan, ,0xCD,,,,,,, 0, 0 + _wr_u8 \channelNum + .endif +.endm + +/** + * subio + * + * In sequence section: + * Computes TR = TR - SIO[portNum] + * + * In channel section: + * Computes TR = TR - CIO[CUR_CHANNEL][portNum] + */ +.macro subio portNum + _wr_cmd_id subio, 0x50,0x50,,,,,,, \portNum, 4 +.endm + +/** + * ldres + * + * Load Resource. + * resType (sync with SampleBankTableType) + * - 0 = Sequence + * - 1 = Font + * - 2 = Sample + * + * resId is either a sequence id, soundfont id or samplebank id. + * + * Load status is made available in SIO[portNum]. + */ +.macro ldres portNum, resType, resId + _wr_cmd_id ldres, 0x60,,,,,,,, \portNum, 4 + _wr_u8 \resType + _wr_u8 \resId +.endm + +/** + * Sequence Section: stio + * Channel Section: stio + * + * Moves the contents of TR to either SIO[portNum] or CIO[CUR_CHANNEL][portNum] + * depending on current section. + */ +.macro stio portNum + .if ASEQ_MODE == ASEQ_MODE_CHANNEL + _wr_cmd_id stio, ,0x70,,,,,,, \portNum, 3 + .else + _wr_cmd_id stio, 0x70,,,,,,,, \portNum, 4 + .endif +.endm + +/** + * ldio + * + * Moves the contents of either SIO[portNum] or CIO[CUR_CHANNEL][portNum] to TR + * depending on current section. + */ +.macro ldio portNum + _wr_cmd_id ldio, 0x80,0x60,,,,,,, \portNum, 4 +.endm + +/** + * ldchan + * + * Opens the sequence channel for index `channelNum` with data beginning at `label`. + */ +.macro ldchan channelNum, label + _wr_cmd_id ldchan, 0x90,0x20,,,,,,, \channelNum, 4 + _wr_lbl \label +.endm + +/** + * rldchan + * + * Opens the sequence channel for index `channelNum` with data beginning at `label`. + * `label` is a relative offset rather than an absolute offset, making it appropriate + * for use in position-independent code. + */ +.macro rldchan channelNum, label + _wr_cmd_id rldchan, 0xA0,,,,,,,, \channelNum, 4 + _wr_16_rel \label +.endm + +/** + * ldelay + * + * Delay for `delay` ticks. + */ +.macro ldelay delay + _wr_cmd_id ldelay, ,,0xC0,,,,,, 0, 0 + _var \delay +.endm + +/** + * Workaround for bugged delays using a larger encoding than is needed. + * Acts like ldelay but forces a long var encoding even if the arg can fit + * in a smaller encoding. + * Should never be used when not required for matching purposes. + */ +.macro lldelay delay + _wr_cmd_id lldelay, ,0xFD,0xC0,,,,,, 0, 0 + _var_long \delay +.endm + +/** + * shortvel + * + * Set velocity used by short notes. + */ +.macro shortvel velocity + _wr_cmd_id shortvel, ,,0xC1,,,,,, 0, 0 + _wr_u8 \velocity +.endm + +/** + * shortdelay + * + * Set delay used by short notes. + */ +.macro shortdelay delay + _wr_cmd_id shortdelay, ,,0xC3,,,,,, 0, 0 + _var \delay +.endm + +/** + * legato + * + * Enables legato on the current layer. + */ +.macro legato + _wr_cmd_id legato, ,,0xC4,,,,,, 0, 0 +.endm + +/** + * nolegato + * + * Disables legato on the current layer. + */ +.macro nolegato + _wr_cmd_id nolegato, ,,0xC5,,,,,, 0, 0 +.endm + +/** + * portamento + * + * The time argument is either a var or a u8 depending on mode + */ +.macro portamento mode, target, time + _wr_cmd_id portamento, ,,0xC7,,,,,, 0, 0 + _wr_u8 \mode + _wr_u8 \target + .if (\mode & 0x80) != 0 + _wr_u8 \time + .else + _var \time + .endif +.endm + +/** + * noportamento + * + * Disables portamento on the current layer. + */ +.macro noportamento + _wr_cmd_id noportamento, ,,0xC8,,,,,, 0, 0 +.endm + +/** + * shortgate + * + * Sets gate time for short notes. + */ +.macro shortgate gateTime + _wr_cmd_id shortgate, ,,0xC9,,,,,, 0, 0 + _wr_u8 \gateTime +.endm + +/** + * notepan + * + * Sets the pan for this layer. A value of 64 is center. + */ +.macro notepan pan + /* pan can only take values in 0..127 */ + _check_arg_bitwidth_u \pan, 7 + _wr_cmd_id notepan, ,,0xCA,,,,,, 0, 0 + _wr_u8 \pan +.endm + +/** + * nodrumpan + * + * Instructs the layer to ignore the pan value in drum instruments and only + * use pan set in the layer. + */ +.macro nodrumpan + _wr_cmd_id nodrumpan, ,,0xCC,,,,,, 0, 0 +.endm + +/** + * stereo + * + * TODO DESCRIPTION + */ +#define STEREO_OPCODE 0xCD +.macro stereo type, strongR, strongL, strongRvrbR, strongRvrbL + _check_arg_bitwidth_u \type, 2 + _check_arg_bitwidth_u \strongR, 1 + _check_arg_bitwidth_u \strongL, 1 + _check_arg_bitwidth_u \strongRvrbR, 1 + _check_arg_bitwidth_u \strongRvrbL, 1 + + _wr_cmd_id stereo, ,,STEREO_OPCODE,,,,,, 0, 0 + _wr_u8 (\type << 4) | (\strongR << 3) | (\strongL << 2) | (\strongRvrbR << 1) | (\strongRvrbL << 0) +.endm + +/** + * ldshortvel + * + * Sets the velocity used in short notes by reading from SHORTVELTBL[velocity] + */ +.macro ldshortvel velocity + _wr_cmd_id ldshortvel, ,,0xD0,,,,,, \velocity, 4 +.endm + +/** + * ldshortgate + * + * Sets the gate time used in short notes by reading from SHORTGATETBL[gateTime] + */ +.macro ldshortgate gateTime + _wr_cmd_id ldshortgate, ,,0xE0,,,,,, \gateTime, 4 +.endm + +#if (MML_VERSION == MML_VERSION_MM) + + /** + * unk_F0 + * + * TODO DESCRIPTION + */ + .macro unk_F0 arg + _wr_cmd_id unk_F0, ,,0xF0,,,,,, 0, 0 + _wr_s16 \arg + .endm + + /** + * surroundeffect + * + * TODO DESCRIPTION + */ + #define SURROUNDEFFECT_OPCODE 0xF1 + .macro surroundeffect arg + _wr_cmd_id surroundeffect, ,,SURROUNDEFFECT_OPCODE,,,,,, 0, 0 + _wr_u8 \arg + .endm + +#endif + +/** + * notedvg + * + * Plays a note with the current instrument settings for a specified length of time. + * + * pitch : The note to play. Since pitch is only 6 bits it can only hold values 0..63, for access to more values + * use `transpose` first to shift the base pitch. + * delay : The time to play the note for, plus the delay before executing the next instruction. + * velocity : The relative volume. + * gateTime : The proportion of the delay for which the sound does not play. + * + * This instruction must only be used when long notes are enabled with the noshort instruction. + */ +#define NOTEDVG_OPCODE 0x00 +.macro notedvg pitch, delay, velocity, gateTime + _wr_cmd_id notedvg, ,,0x00,,,,,, \pitch, 6 + _var \delay + _wr_u8 \velocity + _wr_u8 \gateTime +.endm + +/** + * notedv + * + * Like notedvg, but gateTime is fixed to 0 so there is no delay between when the sound stops and the next instruction. + * + * This instruction must only be used when long notes are enabled with the noshort instruction. + */ +#define NOTEDV_OPCODE 0x40 +.macro notedv pitch, delay, velocity + _wr_cmd_id notedv, ,,NOTEDV_OPCODE,,,,,, \pitch, 6 + _var \delay + _wr_u8 \velocity +.endm + +/* Workaround for bugs in vanilla sequences, force long encoding for delay. This should not typically be used. */ +.macro noteldv pitch, delay, velocity + _wr_cmd_id noteldv, ,,0x40,,,,,, \pitch, 6 + _var_long \delay + _wr_u8 \velocity +.endm + +/** + * notevg + * + * Like notedvg, but delay is assumed to be the same as the delay for a previous note instruction. + * + * This instruction must only be used when long notes are enabled with the noshort instruction. + */ +.macro notevg pitch, velocity, gateTime + _wr_cmd_id notevg, ,,0x80,,,,,, \pitch, 6 + _wr_u8 \velocity + _wr_u8 \gateTime +.endm + +/** + * shortdvg + * + * Like notedvg, but encodes shorter by requiring that the velocity and gateTime be specified in advance using the + * shortvel and shortgate instructions. + * + * This instruction must only be used when short notes are enabled with the short instruction. + */ +.macro shortdvg pitch, delay + _wr_cmd_id shortdvg, ,,0x00,,,,,, \pitch, 6 + _var \delay +.endm + +/** + * shortdv + * + * Like shortdvg, but gateTime is fixed to 0 so there is no delay between when the sound stops and the next + * instruction. Uses the delay set by shortdelay, and the velocity set by shortvel. + * + * This instruction must only be used when short notes are enabled with the short instruction. + */ +.macro shortdv pitch + _wr_cmd_id shortdv, ,,0x40,,,,,, \pitch, 6 +.endm + +/** + * shortvg + * + * Like shortdvg, but delay is assumed to be the same as the delay for a previous note instruction. Uses the velocity + * set by shortvel. + * + * This instruction must only be used when short notes are enabled with the short instruction. + */ +.macro shortvg pitch + _wr_cmd_id shortvg, ,,0x80,,,,,, \pitch, 6 +.endm + +/** + * entry + * + * For dyntable entries. + */ +.macro entry label + _wr_lbl \label +.endm + +/** + * point + * + * Envelope point + */ +.macro point delay, arg + .if ASEQ_MODE != ASEQ_MODE_ENVELOPE + _section_invalid point + .endif + + _wr_s16 \delay + _wr_s16 \arg +.endm + +/** + * disable + * + * Envelope disable + */ +.macro disable + .if ASEQ_MODE != ASEQ_MODE_ENVELOPE + _section_invalid disable + .endif + + _wr_u16 0 + _wr_s16 0 +.endm + +/** + * hang + * + * Envelope hang + */ +.macro hang + .if ASEQ_MODE != ASEQ_MODE_ENVELOPE + _section_invalid hang + .endif + + _wr_u16 0xFFFF // -1 + _wr_s16 0 +.endm + +/** + * goto + * + * Envelope goto + */ +.macro goto index + .if ASEQ_MODE != ASEQ_MODE_ENVELOPE + _section_invalid goto + .endif + + _wr_u16 0xFFFE // -2 + _wr_s16 \index +.endm + +/** + * restart + * + * Envelope restart + */ +.macro restart + .if ASEQ_MODE != ASEQ_MODE_ENVELOPE + _section_invalid restart + .endif + + _wr_u16 0xFFFD // -3 + _wr_s16 0 +.endm + +#endif /* _LANGUAGE_ASEQ */ + +#endif /* ASEQ_H */ diff --git a/include/sequence.h b/include/sequence.h index e994ef3574..c895cd980e 100644 --- a/include/sequence.h +++ b/include/sequence.h @@ -3,121 +3,18 @@ #include "ultra64.h" -typedef enum SeqId { - /* 0x00 */ NA_BGM_GENERAL_SFX, // General Sound Effects - /* 0x01 */ NA_BGM_NATURE_AMBIENCE, // Environmental nature background sounds - /* 0x02 */ NA_BGM_FIELD_LOGIC, // Hyrule Field - /* 0x03 */ NA_BGM_FIELD_INIT, // Hyrule Field Initial Segment From Loading Area - /* 0x04 */ NA_BGM_FIELD_DEFAULT_1, // Hyrule Field Moving Segment 1 - /* 0x05 */ NA_BGM_FIELD_DEFAULT_2, // Hyrule Field Moving Segment 2 - /* 0x06 */ NA_BGM_FIELD_DEFAULT_3, // Hyrule Field Moving Segment 3 - /* 0x07 */ NA_BGM_FIELD_DEFAULT_4, // Hyrule Field Moving Segment 4 - /* 0x08 */ NA_BGM_FIELD_DEFAULT_5, // Hyrule Field Moving Segment 5 - /* 0x09 */ NA_BGM_FIELD_DEFAULT_6, // Hyrule Field Moving Segment 6 - /* 0x0A */ NA_BGM_FIELD_DEFAULT_7, // Hyrule Field Moving Segment 7 - /* 0x0B */ NA_BGM_FIELD_DEFAULT_8, // Hyrule Field Moving Segment 8 - /* 0x0C */ NA_BGM_FIELD_DEFAULT_9, // Hyrule Field Moving Segment 9 - /* 0x0D */ NA_BGM_FIELD_DEFAULT_A, // Hyrule Field Moving Segment 10 - /* 0x0E */ NA_BGM_FIELD_DEFAULT_B, // Hyrule Field Moving Segment 11 - /* 0x0F */ NA_BGM_FIELD_ENEMY_INIT, // Hyrule Field Enemy Approaches - /* 0x10 */ NA_BGM_FIELD_ENEMY_1, // Hyrule Field Enemy Near Segment 1 - /* 0x11 */ NA_BGM_FIELD_ENEMY_2, // Hyrule Field Enemy Near Segment 2 - /* 0x12 */ NA_BGM_FIELD_ENEMY_3, // Hyrule Field Enemy Near Segment 3 - /* 0x13 */ NA_BGM_FIELD_ENEMY_4, // Hyrule Field Enemy Near Segment 4 - /* 0x14 */ NA_BGM_FIELD_STILL_1, // Hyrule Field Standing Still Segment 1 - /* 0x15 */ NA_BGM_FIELD_STILL_2, // Hyrule Field Standing Still Segment 2 - /* 0x16 */ NA_BGM_FIELD_STILL_3, // Hyrule Field Standing Still Segment 3 - /* 0x17 */ NA_BGM_FIELD_STILL_4, // Hyrule Field Standing Still Segment 4 - /* 0x18 */ NA_BGM_DUNGEON, // Dodongo's Cavern - /* 0x19 */ NA_BGM_KAKARIKO_ADULT, // Kakariko Village (Adult) - /* 0x1A */ NA_BGM_ENEMY, // Battle - /* 0x1B */ NA_BGM_BOSS, // Boss Battle "NA_BGM_BOSS00" - /* 0x1C */ NA_BGM_INSIDE_DEKU_TREE, // Inside the Deku Tree "NA_BGM_FAIRY_DUNGEON" - /* 0x1D */ NA_BGM_MARKET, // Market - /* 0x1E */ NA_BGM_TITLE, // Title Theme - /* 0x1F */ NA_BGM_LINK_HOUSE, // House - /* 0x20 */ NA_BGM_GAME_OVER, // Game Over - /* 0x21 */ NA_BGM_BOSS_CLEAR, // Boss Clear - /* 0x22 */ NA_BGM_ITEM_GET, // Obtain Item - /* 0x23 */ NA_BGM_OPENING_GANON, // Enter Ganondorf - /* 0x24 */ NA_BGM_HEART_GET, // Obtain Heart Container - /* 0x25 */ NA_BGM_OCA_LIGHT, // Prelude of Light - /* 0x26 */ NA_BGM_JABU_JABU, // Inside Jabu-Jabu's Belly "NA_BGM_BUYO_DUNGEON" - /* 0x27 */ NA_BGM_KAKARIKO_KID, // Kakariko Village (Child) - /* 0x28 */ NA_BGM_GREAT_FAIRY, // Great Fairy's Fountain "NA_BGM_GODESS" - /* 0x29 */ NA_BGM_ZELDA_THEME, // Zelda's Theme "NA_BGM_HIME" - /* 0x2A */ NA_BGM_FIRE_TEMPLE, // Fire Temple "NA_BGM_FIRE_DUNGEON" - /* 0x2B */ NA_BGM_OPEN_TRE_BOX, // Open Treasure Chest - /* 0x2C */ NA_BGM_FOREST_TEMPLE, // Forest Temple "NA_BGM_FORST_DUNGEON" - /* 0x2D */ NA_BGM_COURTYARD, // Hyrule Castle Courtyard "NA_BGM_HIRAL_GARDEN" - /* 0x2E */ NA_BGM_GANON_TOWER, // Ganondorf's Theme - /* 0x2F */ NA_BGM_LONLON, // Lon Lon Ranch "NA_BGM_RONRON" - /* 0x30 */ NA_BGM_GORON_CITY, // Goron City "NA_BGM_GORON" - /* 0x31 */ NA_BGM_FIELD_MORNING, // Hyrule Field Morning Theme - /* 0x32 */ NA_BGM_SPIRITUAL_STONE, // Spiritual Stone Get "NA_BGM_SPIRIT_STONE" - /* 0x33 */ NA_BGM_OCA_BOLERO, // Bolero of Fire "NA_BGM_OCA_FLAME" - /* 0x34 */ NA_BGM_OCA_MINUET, // Minuet of Forest "NA_BGM_OCA_WIND" - /* 0x35 */ NA_BGM_OCA_SERENADE, // Serenade of Water "NA_BGM_OCA_WATER" - /* 0x36 */ NA_BGM_OCA_REQUIEM, // Requiem of Spirit "NA_BGM_OCA_SOUL" - /* 0x37 */ NA_BGM_OCA_NOCTURNE, // Nocturne of Shadow "NA_BGM_OCA_DARKNESS" - /* 0x38 */ NA_BGM_MINI_BOSS, // Mini-Boss Battle "NA_BGM_MIDDLE_BOSS" - /* 0x39 */ NA_BGM_SMALL_ITEM_GET, // Obtain Small Item "NA_BGM_S_ITEM_GET" - /* 0x3A */ NA_BGM_TEMPLE_OF_TIME, // Temple of Time "NA_BGM_SHRINE_OF_TIME" - /* 0x3B */ NA_BGM_EVENT_CLEAR, // Escape from Lon Lon Ranch - /* 0x3C */ NA_BGM_KOKIRI, // Kokiri Forest - /* 0x3D */ NA_BGM_OCA_FAIRY_GET, // Obtain Fairy Ocarina "NA_BGM_OCA_YOUSEI" - /* 0x3E */ NA_BGM_SARIA_THEME, // Lost Woods "NA_BGM_MAYOIMORI" - /* 0x3F */ NA_BGM_SPIRIT_TEMPLE, // Spirit Temple "NA_BGM_SOUL_DUNGEON" - /* 0x40 */ NA_BGM_HORSE, // Horse Race - /* 0x41 */ NA_BGM_HORSE_GOAL, // Horse Race Goal - /* 0x42 */ NA_BGM_INGO, // Ingo's Theme - /* 0x43 */ NA_BGM_MEDALLION_GET, // Obtain Medallion "NA_BGM_MEDAL_GET" - /* 0x44 */ NA_BGM_OCA_SARIA, // Ocarina Saria's Song - /* 0x45 */ NA_BGM_OCA_EPONA, // Ocarina Epona's Song - /* 0x46 */ NA_BGM_OCA_ZELDA, // Ocarina Zelda's Lullaby - /* 0x47 */ NA_BGM_OCA_SUNS, // Ocarina Sun's Song "NA_BGM_OCA_SUNMOON" - /* 0x48 */ NA_BGM_OCA_TIME, // Ocarina Song of Time - /* 0x49 */ NA_BGM_OCA_STORM, // Ocarina Song of Storms - /* 0x4A */ NA_BGM_NAVI_OPENING, // Fairy Flying "NA_BGM_NAVI" - /* 0x4B */ NA_BGM_DEKU_TREE_CS, // Deku Tree "NA_BGM_DEKUNOKI" - /* 0x4C */ NA_BGM_WINDMILL, // Windmill Hut "NA_BGM_FUSHA" - /* 0x4D */ NA_BGM_HYRULE_CS, // Legend of Hyrule "NA_BGM_HIRAL_DEMO" - /* 0x4E */ NA_BGM_MINI_GAME, // Shooting Gallery - /* 0x4F */ NA_BGM_SHEIK, // Sheik's Theme "NA_BGM_SEAK" - /* 0x50 */ NA_BGM_ZORA_DOMAIN, // Zora's Domain "NA_BGM_ZORA" - /* 0x51 */ NA_BGM_APPEAR, // Enter Zelda - /* 0x52 */ NA_BGM_ADULT_LINK, // Goodbye to Zelda - /* 0x53 */ NA_BGM_MASTER_SWORD, // Master Sword - /* 0x54 */ NA_BGM_INTRO_GANON, - /* 0x55 */ NA_BGM_SHOP, // Shop - /* 0x56 */ NA_BGM_CHAMBER_OF_SAGES, // Chamber of the Sages "NA_BGM_KENJA" - /* 0x57 */ NA_BGM_FILE_SELECT, // File Select - /* 0x58 */ NA_BGM_ICE_CAVERN, // Ice Cavern "NA_BGM_ICE_DUNGEON" - /* 0x59 */ NA_BGM_DOOR_OF_TIME, // Open Door of Temple of Time "NA_BGM_GATE_OPEN" - /* 0x5A */ NA_BGM_OWL, // Kaepora Gaebora's Theme - /* 0x5B */ NA_BGM_SHADOW_TEMPLE, // Shadow Temple "NA_BGM_DARKNESS_DUNGEON" - /* 0x5C */ NA_BGM_WATER_TEMPLE, // Water Temple "NA_BGM_AQUA_DUNGEON" - /* 0x5D */ NA_BGM_BRIDGE_TO_GANONS, // Ganon's Castle Bridge "NA_BGM_BRIDGE" - /* 0x5E */ NA_BGM_OCARINA_OF_TIME, // Ocarina of Time "NA_BGM_SARIA" - /* 0x5F */ NA_BGM_GERUDO_VALLEY, // Gerudo Valley "NA_BGM_GERUDO" - /* 0x60 */ NA_BGM_POTION_SHOP, // Potion Shop "NA_BGM_DRUGSTORE" - /* 0x61 */ NA_BGM_KOTAKE_KOUME, // Kotake & Koume's Theme - /* 0x62 */ NA_BGM_ESCAPE, // Escape from Ganon's Castle - /* 0x63 */ NA_BGM_UNDERGROUND, // Ganon's Castle Under Ground - /* 0x64 */ NA_BGM_GANONDORF_BOSS, // Ganondorf Battle - /* 0x65 */ NA_BGM_GANON_BOSS, // Ganon Battle - /* 0x66 */ NA_BGM_END_DEMO, // Seal of Six Sages - /* 0x67 */ NA_BGM_STAFF_1, // End Credits I - /* 0x68 */ NA_BGM_STAFF_2, // End Credits II - /* 0x69 */ NA_BGM_STAFF_3, // End Credits III - /* 0x6A */ NA_BGM_STAFF_4, // End Credits IV - /* 0x6B */ NA_BGM_FIRE_BOSS, // King Dodongo & Volvagia Boss Battle "NA_BGM_BOSS01" - /* 0x6C */ NA_BGM_TIMED_MINI_GAME, // Mini-Game - /* 0x6D */ NA_BGM_CUTSCENE_EFFECTS, // A small collection of various cutscene sounds - /* 0x7F */ NA_BGM_NO_MUSIC = 0x7F, // No bgm music is played - /* 0x80 */ NA_BGM_NATURE_SFX_RAIN = 0x80, // Related to rain - /* 0xFFFF */ NA_BGM_DISABLED = 0xFFFF -} SeqId; +#define DEFINE_SEQUENCE(_0, seqId, _2, _3, _4) seqId, +#define DEFINE_SEQUENCE_PTR(_0, seqId, _2, _3, _4) seqId, +typedef enum { +#include "tables/sequence_table.h" + NA_BGM_MAX, + + NA_BGM_NO_MUSIC = 0x7F, + NA_BGM_NATURE_SFX_RAIN = 0x80, + NA_BGM_DISABLED = 0xFFFF +} NA_BGM; +#undef DEFINE_SEQUENCE +#undef DEFINE_SEQUENCE_PTR typedef enum SequencePlayerId { /* 0 */ SEQ_PLAYER_BGM_MAIN, diff --git a/include/sfx.h b/include/sfx.h index 3d028817ae..0532109e9a 100644 --- a/include/sfx.h +++ b/include/sfx.h @@ -55,7 +55,7 @@ typedef struct SfxBankEntry { * bank 1111000000000000 observed in audio code */ -#define DEFINE_SFX(enum, _1, _2, _3, _4) enum, +#define DEFINE_SFX(_0, enum, _2, _3, _4, _5) enum, typedef enum SfxId { NA_SE_NONE, // Requesting a sfx with this id will play no sound diff --git a/include/tables/sequence_table.h b/include/tables/sequence_table.h new file mode 100644 index 0000000000..d813cfb0da --- /dev/null +++ b/include/tables/sequence_table.h @@ -0,0 +1,132 @@ +/** + * Sequence Table + * + * DEFINE_SEQUENCE should be used to define sequences + * - Argument 0: The name of the sequence, as defined by .startseq in the .seq file + * - Argument 1: The sequence id enum name + * - Argument 2: Storage medium for the sequence (SampleMedium) + * - Argument 3: Cache load policy for the sequence (AudioCacheLoadType) + * - Argument 4: Sequence flags + * + * DEFINE_SEQUENCE_PTR should be used to define pointers to sequences + * - Argument 0: The sequence id enum name of the sequence this entry points to + * - Argument 1: The sequence id enum name for this pointer + * - Argument 2: Storage medium for the sequence (SampleMedium) + * - Argument 3: Cache load policy for the sequence (AudioCacheLoadType) + * - Argument 4: Sequence flags + */ +#if PLATFORM_N64 +#define SEQ_0_FLAGS SEQ_FLAG_FANFARE | SEQ_FLAG_ENEMY +#else +#define SEQ_0_FLAGS SEQ_FLAG_FANFARE +#endif +DEFINE_SEQUENCE (Sequence_0, NA_BGM_GENERAL_SFX, MEDIUM_CART, CACHE_LOAD_PERMANENT, SEQ_0_FLAGS ) // general_sfx +DEFINE_SEQUENCE (Sequence_1, NA_BGM_NATURE_AMBIENCE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // nature_ambience +DEFINE_SEQUENCE (Sequence_2, NA_BGM_FIELD_LOGIC, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_logic +DEFINE_SEQUENCE (Sequence_3, NA_BGM_FIELD_INIT, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_init +DEFINE_SEQUENCE (Sequence_4, NA_BGM_FIELD_DEFAULT_1, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_1 +DEFINE_SEQUENCE (Sequence_5, NA_BGM_FIELD_DEFAULT_2, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_2 +DEFINE_SEQUENCE (Sequence_6, NA_BGM_FIELD_DEFAULT_3, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_3 +DEFINE_SEQUENCE (Sequence_7, NA_BGM_FIELD_DEFAULT_4, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_4 +DEFINE_SEQUENCE (Sequence_8, NA_BGM_FIELD_DEFAULT_5, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_5 +DEFINE_SEQUENCE (Sequence_9, NA_BGM_FIELD_DEFAULT_6, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_6 +DEFINE_SEQUENCE (Sequence_10, NA_BGM_FIELD_DEFAULT_7, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_7 +DEFINE_SEQUENCE (Sequence_11, NA_BGM_FIELD_DEFAULT_8, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_8 +DEFINE_SEQUENCE (Sequence_12, NA_BGM_FIELD_DEFAULT_9, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_9 +DEFINE_SEQUENCE (Sequence_13, NA_BGM_FIELD_DEFAULT_A, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_a +DEFINE_SEQUENCE (Sequence_14, NA_BGM_FIELD_DEFAULT_B, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_b +DEFINE_SEQUENCE (Sequence_15, NA_BGM_FIELD_ENEMY_INIT, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_enemy_init +DEFINE_SEQUENCE (Sequence_16, NA_BGM_FIELD_ENEMY_1, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_enemy_1 +DEFINE_SEQUENCE (Sequence_17, NA_BGM_FIELD_ENEMY_2, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_enemy_2 +DEFINE_SEQUENCE (Sequence_18, NA_BGM_FIELD_ENEMY_3, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_enemy_3 +DEFINE_SEQUENCE (Sequence_19, NA_BGM_FIELD_ENEMY_4, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_enemy_4 +DEFINE_SEQUENCE (Sequence_20, NA_BGM_FIELD_STILL_1, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_still_1 +DEFINE_SEQUENCE (Sequence_21, NA_BGM_FIELD_STILL_2, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_still_2 +DEFINE_SEQUENCE (Sequence_22, NA_BGM_FIELD_STILL_3, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_still_3 +DEFINE_SEQUENCE (Sequence_23, NA_BGM_FIELD_STILL_4, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_still_4 +DEFINE_SEQUENCE (Sequence_24, NA_BGM_DUNGEON, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME_PREV | SEQ_FLAG_ENEMY ) // dungeon +DEFINE_SEQUENCE (Sequence_25, NA_BGM_KAKARIKO_ADULT, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME ) // kakariko_adult +DEFINE_SEQUENCE (Sequence_26, NA_BGM_ENEMY, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // enemy +DEFINE_SEQUENCE (Sequence_27, NA_BGM_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE | SEQ_FLAG_RESTORE) // boss +DEFINE_SEQUENCE (Sequence_28, NA_BGM_INSIDE_DEKU_TREE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // inside_deku_tree +DEFINE_SEQUENCE (Sequence_29, NA_BGM_MARKET, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // market +DEFINE_SEQUENCE (Sequence_30, NA_BGM_TITLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // title +DEFINE_SEQUENCE (Sequence_31, NA_BGM_LINK_HOUSE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME_PREV ) // link_house +DEFINE_SEQUENCE (Sequence_32, NA_BGM_GAME_OVER, MEDIUM_CART, CACHE_LOAD_PERSISTENT, 0 ) // game_over +DEFINE_SEQUENCE (Sequence_33, NA_BGM_BOSS_CLEAR, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // boss_clear +DEFINE_SEQUENCE (Sequence_34, NA_BGM_ITEM_GET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // item_get +DEFINE_SEQUENCE (Sequence_35, NA_BGM_OPENING_GANON, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_FANFARE_GANON ) // opening_ganon +DEFINE_SEQUENCE (Sequence_36, NA_BGM_HEART_GET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // heart_get +DEFINE_SEQUENCE (Sequence_37, NA_BGM_OCA_LIGHT, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_light +DEFINE_SEQUENCE (Sequence_38, NA_BGM_JABU_JABU, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // jabu_jabu +DEFINE_SEQUENCE (Sequence_39, NA_BGM_KAKARIKO_KID, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME ) // kakariko_kid +DEFINE_SEQUENCE (Sequence_40, NA_BGM_GREAT_FAIRY, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // great_fairy +DEFINE_SEQUENCE (Sequence_41, NA_BGM_ZELDA_THEME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // zelda_theme +DEFINE_SEQUENCE (Sequence_42, NA_BGM_FIRE_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // fire_temple +DEFINE_SEQUENCE (Sequence_43, NA_BGM_OPEN_TRE_BOX, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // open_tre_box +DEFINE_SEQUENCE (Sequence_44, NA_BGM_FOREST_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // forest_temple +DEFINE_SEQUENCE (Sequence_45, NA_BGM_COURTYARD, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // courtyard +DEFINE_SEQUENCE (Sequence_46, NA_BGM_GANON_TOWER, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // ganon_tower +DEFINE_SEQUENCE (Sequence_47, NA_BGM_LONLON, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // lonlon +DEFINE_SEQUENCE (Sequence_48, NA_BGM_GORON_CITY, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // goron_city +DEFINE_SEQUENCE (Sequence_49, NA_BGM_FIELD_MORNING, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_morning +DEFINE_SEQUENCE (Sequence_50, NA_BGM_SPIRITUAL_STONE, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // spiritual_stone +DEFINE_SEQUENCE (Sequence_51, NA_BGM_OCA_BOLERO, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_bolero +DEFINE_SEQUENCE (Sequence_52, NA_BGM_OCA_MINUET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_minuet +DEFINE_SEQUENCE (Sequence_53, NA_BGM_OCA_SERENADE, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_serenade +DEFINE_SEQUENCE (Sequence_54, NA_BGM_OCA_REQUIEM, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_requiem +DEFINE_SEQUENCE (Sequence_55, NA_BGM_OCA_NOCTURNE, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_nocturne +DEFINE_SEQUENCE (Sequence_56, NA_BGM_MINI_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE | SEQ_FLAG_RESTORE) // mini_boss +DEFINE_SEQUENCE (Sequence_57, NA_BGM_SMALL_ITEM_GET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // small_item_get +DEFINE_SEQUENCE (Sequence_58, NA_BGM_TEMPLE_OF_TIME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // temple_of_time +DEFINE_SEQUENCE (Sequence_59, NA_BGM_EVENT_CLEAR, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // event_clear +DEFINE_SEQUENCE (Sequence_60, NA_BGM_KOKIRI, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME | SEQ_FLAG_ENEMY ) // kokiri +DEFINE_SEQUENCE (Sequence_61, NA_BGM_OCA_FAIRY_GET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_fairy_get +DEFINE_SEQUENCE (Sequence_62, NA_BGM_SARIA_THEME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // saria_theme +DEFINE_SEQUENCE (Sequence_63, NA_BGM_SPIRIT_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // spirit_temple +DEFINE_SEQUENCE (Sequence_64, NA_BGM_HORSE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // horse +DEFINE_SEQUENCE (Sequence_65, NA_BGM_HORSE_GOAL, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // horse_goal +DEFINE_SEQUENCE (Sequence_66, NA_BGM_INGO, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // ingo +DEFINE_SEQUENCE (Sequence_67, NA_BGM_MEDALLION_GET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // medallion_get +DEFINE_SEQUENCE (Sequence_68, NA_BGM_OCA_SARIA, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_saria +DEFINE_SEQUENCE (Sequence_69, NA_BGM_OCA_EPONA, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_epona +DEFINE_SEQUENCE (Sequence_70, NA_BGM_OCA_ZELDA, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_zelda +DEFINE_SEQUENCE (Sequence_71, NA_BGM_OCA_SUNS, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_suns +DEFINE_SEQUENCE (Sequence_72, NA_BGM_OCA_TIME, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_time +DEFINE_SEQUENCE (Sequence_73, NA_BGM_OCA_STORM, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_storm +DEFINE_SEQUENCE (Sequence_74, NA_BGM_NAVI_OPENING, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // navi_opening +DEFINE_SEQUENCE (Sequence_75, NA_BGM_DEKU_TREE_CS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // deku_tree_cs +DEFINE_SEQUENCE (Sequence_76, NA_BGM_WINDMILL, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // windmill +DEFINE_SEQUENCE (Sequence_77, NA_BGM_HYRULE_CS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // hyrule_cs +DEFINE_SEQUENCE (Sequence_78, NA_BGM_MINI_GAME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME_PREV ) // mini_game +DEFINE_SEQUENCE (Sequence_79, NA_BGM_SHEIK, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // sheik +DEFINE_SEQUENCE (Sequence_80, NA_BGM_ZORA_DOMAIN, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME ) // zora_domain +DEFINE_SEQUENCE (Sequence_81, NA_BGM_APPEAR, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // appear +DEFINE_SEQUENCE (Sequence_82, NA_BGM_ADULT_LINK, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // adult_link +DEFINE_SEQUENCE (Sequence_83, NA_BGM_MASTER_SWORD, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // master_sword +DEFINE_SEQUENCE (Sequence_84, NA_BGM_INTRO_GANON, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_FANFARE_GANON ) // intro_ganon +DEFINE_SEQUENCE (Sequence_85, NA_BGM_SHOP, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME_PREV ) // shop +DEFINE_SEQUENCE (Sequence_86, NA_BGM_CHAMBER_OF_SAGES, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_SKIP_HARP_INTRO ) // chamber_of_sages +DEFINE_SEQUENCE_PTR(NA_BGM_GREAT_FAIRY, NA_BGM_FILE_SELECT, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_SKIP_HARP_INTRO ) // file_select +DEFINE_SEQUENCE (Sequence_88, NA_BGM_ICE_CAVERN, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // ice_cavern +DEFINE_SEQUENCE (Sequence_89, NA_BGM_DOOR_OF_TIME, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // door_of_time +DEFINE_SEQUENCE (Sequence_90, NA_BGM_OWL, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // owl +DEFINE_SEQUENCE (Sequence_91, NA_BGM_SHADOW_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // shadow_temple +DEFINE_SEQUENCE (Sequence_92, NA_BGM_WATER_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // water_temple +DEFINE_SEQUENCE (Sequence_93, NA_BGM_BRIDGE_TO_GANONS, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // bridge_to_ganons +DEFINE_SEQUENCE (Sequence_94, NA_BGM_OCARINA_OF_TIME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // ocarina_of_time +DEFINE_SEQUENCE (Sequence_95, NA_BGM_GERUDO_VALLEY, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME | SEQ_FLAG_ENEMY ) // gerudo_valley +DEFINE_SEQUENCE (Sequence_96, NA_BGM_POTION_SHOP, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // potion_shop +DEFINE_SEQUENCE (Sequence_97, NA_BGM_KOTAKE_KOUME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // kotake_koume +DEFINE_SEQUENCE (Sequence_98, NA_BGM_ESCAPE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // escape +DEFINE_SEQUENCE (Sequence_99, NA_BGM_UNDERGROUND, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // underground +DEFINE_SEQUENCE (Sequence_100, NA_BGM_GANONDORF_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // ganondorf_boss +DEFINE_SEQUENCE (Sequence_101, NA_BGM_GANON_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // ganon_boss +DEFINE_SEQUENCE (Sequence_102, NA_BGM_END_DEMO, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // end_demo +DEFINE_SEQUENCE (Sequence_103, NA_BGM_STAFF_1, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_1 +DEFINE_SEQUENCE (Sequence_104, NA_BGM_STAFF_2, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_2 +DEFINE_SEQUENCE (Sequence_105, NA_BGM_STAFF_3, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_3 +DEFINE_SEQUENCE (Sequence_106, NA_BGM_STAFF_4, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_4 +DEFINE_SEQUENCE (Sequence_107, NA_BGM_FIRE_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // fire_boss +DEFINE_SEQUENCE (Sequence_108, NA_BGM_TIMED_MINI_GAME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESTORE ) // timed_mini_game +DEFINE_SEQUENCE (Sequence_109, NA_BGM_CUTSCENE_EFFECTS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // cutscene_effects diff --git a/include/tables/sfx/enemybank_table.h b/include/tables/sfx/enemybank_table.h index 253a807392..ae2c3b7148 100644 --- a/include/tables/sfx/enemybank_table.h +++ b/include/tables/sfx/enemybank_table.h @@ -2,514 +2,513 @@ * Sfx Enemy Bank * * DEFINE_SFX should be used for all sfx define in the enemy bank from sequence 0 + * - Argument 0: Channel name for sequence 0 * - Argument 1: Enum value for this sfx * - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance * - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3) * - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3) * - Argument 5: Various flags to add properties to the sfx - * - * WARNING: entries must align with the table defined for the enemy bank in sequence 0 */ -/* 0x3800 */ DEFINE_SFX(NA_SE_EN_DODO_J_WALK, 0x18, 0, 0, 0) -/* 0x3801 */ DEFINE_SFX(NA_SE_EN_DODO_J_CRY, 0x30, 0, 0, 0) -/* 0x3802 */ DEFINE_SFX(NA_SE_EN_DODO_J_FIRE, 0x30, 0, 0, 0) -/* 0x3803 */ DEFINE_SFX(NA_SE_EN_DODO_J_DAMAGE, 0x38, 1, 0, 0) -/* 0x3804 */ DEFINE_SFX(NA_SE_EN_DODO_J_DEAD, 0x40, 1, 0, 0) -/* 0x3805 */ DEFINE_SFX(NA_SE_EN_DODO_K_CRY, 0x30, 3, 0, 0) -/* 0x3806 */ DEFINE_SFX(NA_SE_EN_DODO_K_DAMAGE, 0x38, 3, 0, 0) -/* 0x3807 */ DEFINE_SFX(NA_SE_EN_DODO_K_DEAD, 0x40, 3, 0, 0) -/* 0x3808 */ DEFINE_SFX(NA_SE_EN_DODO_K_WALK, 0x30, 2, 0, 0) -/* 0x3809 */ DEFINE_SFX(NA_SE_EN_DODO_K_FIRE, 0x30, 3, 0, 0) -/* 0x380A */ DEFINE_SFX(NA_SE_EN_GOMA_WALK, 0x30, 2, 0, 0) -/* 0x380B */ DEFINE_SFX(NA_SE_EN_GOMA_HIGH, 0x20, 1, 2, 0) -/* 0x380C */ DEFINE_SFX(NA_SE_EN_GOMA_CLIM, 0x30, 3, 0, 0) -/* 0x380D */ DEFINE_SFX(NA_SE_EN_GOMA_DOWN, 0x30, 3, 0, 0) -/* 0x380E */ DEFINE_SFX(NA_SE_EN_GOMA_CRY1, 0x38, 3, 0, 0) -/* 0x380F */ DEFINE_SFX(NA_SE_EN_GOMA_CRY2, 0x30, 3, 0, 0) -/* 0x3810 */ DEFINE_SFX(NA_SE_EN_GOMA_DAM1, 0x30, 3, 0, 0) -/* 0x3811 */ DEFINE_SFX(NA_SE_EN_GOMA_DAM2, 0x38, 3, 0, 0) -/* 0x3812 */ DEFINE_SFX(NA_SE_EN_GOMA_DEAD, 0x40, 3, 0, 0) -/* 0x3813 */ DEFINE_SFX(NA_SE_EN_GOMA_UNARI, 0x20, 0, 0, SFX_FLAG_13) -/* 0x3814 */ DEFINE_SFX(NA_SE_EN_GOMA_BJR_EGG1, 0x28, 3, 0, 0) -/* 0x3815 */ DEFINE_SFX(NA_SE_EN_GOMA_BJR_EGG2, 0x28, 3, 0, 0) -/* 0x3816 */ DEFINE_SFX(NA_SE_EN_GOMA_BJR_WALK, 0x20, 2, 0, 0) -/* 0x3817 */ DEFINE_SFX(NA_SE_EN_GOMA_BJR_CRY, 0x28, 3, 0, 0) -/* 0x3818 */ DEFINE_SFX(NA_SE_EN_GOMA_BJR_DAM1, 0x38, 3, 0, 0) -/* 0x3819 */ DEFINE_SFX(NA_SE_EN_GOMA_BJR_DAM2, 0x30, 3, 0, 0) -/* 0x381A */ DEFINE_SFX(NA_SE_EN_GOMA_BJR_DEAD, 0x40, 3, 0, 0) -/* 0x381B */ DEFINE_SFX(NA_SE_EN_GOMA_DEMO_EYE, 0x30, 3, 0, 0) -/* 0x381C */ DEFINE_SFX(NA_SE_EN_GOMA_LAST, 0x30, 3, 0, 0) -/* 0x381D */ DEFINE_SFX(NA_SE_EN_GOMA_UNARI2, 0x30, 3, 0, 0) -/* 0x381E */ DEFINE_SFX(NA_SE_EN_GOMA_FAINT, 0x30, 3, 0, 0) -/* 0x381F */ DEFINE_SFX(NA_SE_EN_GOMA_BJR_FREEZE, 0x30, 3, 0, 0) -/* 0x3820 */ DEFINE_SFX(NA_SE_EN_DODO_M_CRY, 0x30, 0, 0, 0) -/* 0x3821 */ DEFINE_SFX(NA_SE_EN_DODO_M_DEAD, 0x40, 1, 0, 0) -/* 0x3822 */ DEFINE_SFX(NA_SE_EN_DODO_M_MOVE, 0x18, 0, 0, 0) -/* 0x3823 */ DEFINE_SFX(NA_SE_EN_DODO_M_DOWN, 0x14, 0, 0, 0) -/* 0x3824 */ DEFINE_SFX(NA_SE_EN_DODO_M_UP, 0x14, 0, 0, 0) -/* 0x3825 */ DEFINE_SFX(NA_SE_EN_GANON_THROW_MASIC, 0x30, 3, 0, 0) -/* 0x3826 */ DEFINE_SFX(NA_SE_EN_DODO_M_EAT, 0x30, 0, 0, 0) -/* 0x3827 */ DEFINE_SFX(NA_SE_EN_GANON_DD_THUNDER, 0x44, 3, 0, 0) -/* 0x3828 */ DEFINE_SFX(NA_SE_EN_RIZA_ONGND, 0x18, 0, 0, 0) -/* 0x3829 */ DEFINE_SFX(NA_SE_EN_RIZA_CRY, 0x30, 2, 0, 0) -/* 0x382A */ DEFINE_SFX(NA_SE_EN_RIZA_ATTACK, 0x32, 2, 0, 0) -/* 0x382B */ DEFINE_SFX(NA_SE_EN_RIZA_DAMAGE, 0x38, 1, 0, 0) -/* 0x382C */ DEFINE_SFX(NA_SE_EN_RIZA_WARAU, 0x20, 0, 0, 0) -/* 0x382D */ DEFINE_SFX(NA_SE_EN_RIZA_DEAD, 0x40, 1, 0, 0) -/* 0x382E */ DEFINE_SFX(NA_SE_EN_RIZA_WALK, 0x18, 0, 0, 0) -/* 0x382F */ DEFINE_SFX(NA_SE_EN_RIZA_JUMP, 0x28, 0, 0, 0) -/* 0x3830 */ DEFINE_SFX(NA_SE_EN_STALKID_WALK, 0x18, 0, 0, 0) -/* 0x3831 */ DEFINE_SFX(NA_SE_EN_STALKID_ATTACK, 0x30, 0, 0, 0) -/* 0x3832 */ DEFINE_SFX(NA_SE_EN_STALKID_DAMAGE, 0x38, 1, 0, 0) -/* 0x3833 */ DEFINE_SFX(NA_SE_EN_STALKID_DEAD, 0x40, 1, 0, 0) -/* 0x3834 */ DEFINE_SFX(NA_SE_EN_FLOORMASTER_SLIDING, 0x14, 0, 0, 0) -/* 0x3835 */ DEFINE_SFX(NA_SE_EN_TEKU_WALK_WATER, 0x18, 0, 2, 0) -/* 0x3836 */ DEFINE_SFX(NA_SE_EN_LIGHT_ARROW_HIT, 0x38, 2, 0, 0) -/* 0x3837 */ DEFINE_SFX(NA_SE_EN_TUBOOCK_FLY, 0x30, 0, 0, 0) -/* 0x3838 */ DEFINE_SFX(NA_SE_EN_STAL_WARAU, 0x28, 1, 0, 0) -/* 0x3839 */ DEFINE_SFX(NA_SE_EN_STAL_SAKEBI, 0x30, 0, 0, 0) -/* 0x383A */ DEFINE_SFX(NA_SE_EN_STAL_DAMAGE, 0x38, 1, 0, 0) -/* 0x383B */ DEFINE_SFX(NA_SE_EN_STAL_DEAD, 0x40, 1, 0, 0) -/* 0x383C */ DEFINE_SFX(NA_SE_EN_WOLFOS_APPEAR, 0x30, 0, 0, 0) -/* 0x383D */ DEFINE_SFX(NA_SE_EN_STAL_WALK, 0x18, 0, 0, 0) -/* 0x383E */ DEFINE_SFX(NA_SE_EN_WOLFOS_CRY, 0x20, 0, 0, 0) -/* 0x383F */ DEFINE_SFX(NA_SE_EN_WOLFOS_ATTACK, 0x30, 0, 0, 0) -/* 0x3840 */ DEFINE_SFX(NA_SE_EN_FFLY_ATTACK, 0x30, 0, 0, 0) -/* 0x3841 */ DEFINE_SFX(NA_SE_EN_FFLY_FLY, 0x20, 1, 0, 0) -/* 0x3842 */ DEFINE_SFX(NA_SE_EN_FFLY_DEAD, 0x40, 1, 0, 0) -/* 0x3843 */ DEFINE_SFX(NA_SE_EN_WOLFOS_DAMAGE, 0x38, 1, 0, 0) -/* 0x3844 */ DEFINE_SFX(NA_SE_EN_AMOS_WALK, 0x30, 0, 0, 0) -/* 0x3845 */ DEFINE_SFX(NA_SE_EN_AMOS_WAVE, 0x30, 0, 0, 0) -/* 0x3846 */ DEFINE_SFX(NA_SE_EN_AMOS_DEAD, 0x40, 1, 0, 0) -/* 0x3847 */ DEFINE_SFX(NA_SE_EN_AMOS_DAMAGE, 0x38, 1, 0, 0) -/* 0x3848 */ DEFINE_SFX(NA_SE_EN_AMOS_VOICE, 0x20, 0, 0, 0) -/* 0x3849 */ DEFINE_SFX(NA_SE_EN_SHELL_MOUTH, 0x30, 0, 0, 0) -/* 0x384A */ DEFINE_SFX(NA_SE_EN_SHELL_DEAD, 0x40, 1, 0, 0) -/* 0x384B */ DEFINE_SFX(NA_SE_EN_WOLFOS_DEAD, 0x40, 1, 0, 0) -/* 0x384C */ DEFINE_SFX(NA_SE_EN_DODO_K_COLI, 0x30, 3, 0, 0) -/* 0x384D */ DEFINE_SFX(NA_SE_EN_DODO_K_COLI2, 0x30, 0, 0, SFX_FLAG_13) -/* 0x384E */ DEFINE_SFX(NA_SE_EN_DODO_K_ROLL, 0x30, 3, 0, 0) -/* 0x384F */ DEFINE_SFX(NA_SE_EN_DODO_K_BREATH, 0x30, 3, 0, 0) -/* 0x3850 */ DEFINE_SFX(NA_SE_EN_DODO_K_DRINK, 0x30, 3, 0, 0) -/* 0x3851 */ DEFINE_SFX(NA_SE_EN_DODO_K_DOWN, 0x30, 3, 0, 0) -/* 0x3852 */ DEFINE_SFX(NA_SE_EN_DODO_K_OTAKEBI, 0x30, 3, 0, 0) -/* 0x3853 */ DEFINE_SFX(NA_SE_EN_DODO_K_END, 0x30, 3, 0, 0) -/* 0x3854 */ DEFINE_SFX(NA_SE_EN_DODO_K_LAST, 0x30, 3, 0, 0) -/* 0x3855 */ DEFINE_SFX(NA_SE_EN_DODO_K_LAVA, 0x30, 3, 0, 0) -/* 0x3856 */ DEFINE_SFX(NA_SE_EN_GANON_FLOAT, 0x18, 3, 0, 0) -/* 0x3857 */ DEFINE_SFX(NA_SE_EN_GANON_DARKWAVE_M, 0x30, 3, 0, 0) -/* 0x3858 */ DEFINE_SFX(NA_SE_EN_DODO_J_BREATH, 0x28, 0, 0, 0) -/* 0x3859 */ DEFINE_SFX(NA_SE_EN_DODO_J_TAIL, 0x30, 0, 0, 0) -/* 0x385A */ DEFINE_SFX(NA_SE_EN_WOLFOS_WALK, 0x18, 0, 0, 0) -/* 0x385B */ DEFINE_SFX(NA_SE_EN_DODO_J_EAT, 0x30, 0, 0, 0) -/* 0x385C */ DEFINE_SFX(NA_SE_EN_DEKU_MOUTH, 0x28, 0, 0, 0) -/* 0x385D */ DEFINE_SFX(NA_SE_EN_DEKU_ATTACK, 0x30, 0, 0, 0) -/* 0x385E */ DEFINE_SFX(NA_SE_EN_DEKU_DAMAGE, 0x38, 1, 0, 0) -/* 0x385F */ DEFINE_SFX(NA_SE_EN_DEKU_DEAD, 0x40, 1, 0, 0) -/* 0x3860 */ DEFINE_SFX(NA_SE_EN_DEKU_JR_MOUTH, 0x28, 0, 0, 0) -/* 0x3861 */ DEFINE_SFX(NA_SE_EN_DEKU_JR_ATTACK, 0x30, 0, 0, 0) -/* 0x3862 */ DEFINE_SFX(NA_SE_EN_DEKU_JR_DEAD, 0x40, 1, 0, 0) -/* 0x3863 */ DEFINE_SFX(NA_SE_EN_DEKU_SCRAPE, 0x14, 0, 0, 0) -/* 0x3864 */ DEFINE_SFX(NA_SE_EN_TAIL_FLY, 0x30, 0, 0, 0) -/* 0x3865 */ DEFINE_SFX(NA_SE_EN_TAIL_CRY, 0x20, 0, 0, 0) -/* 0x3866 */ DEFINE_SFX(NA_SE_EN_TAIL_DEAD, 0x40, 1, 0, 0) -/* 0x3867 */ DEFINE_SFX(NA_SE_EN_GANON_SPARK, 0x30, 3, 0, 0) -/* 0x3868 */ DEFINE_SFX(NA_SE_EN_STALTU_DOWN, 0x30, 0, 0, 0) -/* 0x3869 */ DEFINE_SFX(NA_SE_EN_STALTU_UP, 0x30, 0, 0, 0) -/* 0x386A */ DEFINE_SFX(NA_SE_EN_STALTU_LAUGH, 0x20, 0, 0, 0) -/* 0x386B */ DEFINE_SFX(NA_SE_EN_STALTU_DAMAGE, 0x38, 1, 0, 0) -/* 0x386C */ DEFINE_SFX(NA_SE_EN_STAL_JUMP, 0x20, 0, 0, 0) -/* 0x386D */ DEFINE_SFX(NA_SE_EN_TEKU_DAMAGE, 0x38, 1, 0, 0) -/* 0x386E */ DEFINE_SFX(NA_SE_EN_TEKU_DEAD, 0x40, 1, 0, 0) -/* 0x386F */ DEFINE_SFX(NA_SE_EN_TEKU_WALK, 0x14, 0, 0, 0) -/* 0x3870 */ DEFINE_SFX(NA_SE_EN_PO_KANTERA, 0x30, 3, 0, 0) -/* 0x3871 */ DEFINE_SFX(NA_SE_EN_PO_FLY, 0x20, 1, 0, 0) -/* 0x3872 */ DEFINE_SFX(NA_SE_EN_PO_AWAY, 0x20, 1, 0, 0) -/* 0x3873 */ DEFINE_SFX(NA_SE_EN_PO_APPEAR, 0x30, 2, 0, 0) -/* 0x3874 */ DEFINE_SFX(NA_SE_EN_PO_DISAPPEAR, 0x30, 2, 0, 0) -/* 0x3875 */ DEFINE_SFX(NA_SE_EN_PO_DAMAGE, 0x38, 2, 0, 0) -/* 0x3876 */ DEFINE_SFX(NA_SE_EN_PO_DEAD, 0x40, 2, 0, 0) -/* 0x3877 */ DEFINE_SFX(NA_SE_EN_PO_DEAD2, 0x40, 2, 0, 0) -/* 0x3878 */ DEFINE_SFX(NA_SE_EN_EXTINCT, 0x14, 1, 2, 0) -/* 0x3879 */ DEFINE_SFX(NA_SE_EN_GOLON_LAND_BIG, 0x34, 0, 0, 0) -/* 0x387A */ DEFINE_SFX(NA_SE_EN_RIZA_DOWN, 0x40, 0, 0, 0) -/* 0x387B */ DEFINE_SFX(NA_SE_EN_DODO_M_GND, 0x20, 0, 0, 0) -/* 0x387C */ DEFINE_SFX(NA_SE_EN_NUTS_UP, 0x28, 0, 0, 0) -/* 0x387D */ DEFINE_SFX(NA_SE_EN_NUTS_DOWN, 0x28, 0, 0, 0) -/* 0x387E */ DEFINE_SFX(NA_SE_EN_NUTS_THROW, 0x30, 0, 0, 0) -/* 0x387F */ DEFINE_SFX(NA_SE_EN_NUTS_WALK, 0x14, 0, 0, 0) -/* 0x3880 */ DEFINE_SFX(NA_SE_EN_NUTS_DAMAGE, 0x38, 1, 0, 0) -/* 0x3881 */ DEFINE_SFX(NA_SE_EN_NUTS_DEAD, 0x40, 1, 0, 0) -/* 0x3882 */ DEFINE_SFX(NA_SE_EN_NUTS_FAINT, 0x20, 0, 0, 0) -/* 0x3883 */ DEFINE_SFX(NA_SE_EN_PO_BIG_GET, 0x30, 3, 0, 0) -/* 0x3884 */ DEFINE_SFX(NA_SE_EN_STALTU_ROLL, 0x30, 0, 0, 0) -/* 0x3885 */ DEFINE_SFX(NA_SE_EN_STALWALL_DEAD, 0x40, 1, 0, 0) -/* 0x3886 */ DEFINE_SFX(NA_SE_EN_PO_SISTER_DEAD, 0x40, 3, 0, 0) -/* 0x3887 */ DEFINE_SFX(NA_SE_EN_BARI_SPLIT, 0x40, 1, 0, 0) -/* 0x3888 */ DEFINE_SFX(NA_SE_EN_TEKU_REVERSE, 0x28, 1, 0, 0) -/* 0x3889 */ DEFINE_SFX(NA_SE_EN_VALVAISA_LAND2, 0x30, 3, 0, 0) -/* 0x388A */ DEFINE_SFX(NA_SE_EN_TEKU_LAND_WATER, 0x20, 0, 0, 0) -/* 0x388B */ DEFINE_SFX(NA_SE_EN_LAST_DAMAGE, 0x38, 1, 0, 0) -/* 0x388C */ DEFINE_SFX(NA_SE_EN_STALWALL_ROLL, 0x30, 0, 0, 0) -/* 0x388D */ DEFINE_SFX(NA_SE_EN_STALWALL_DASH, 0x30, 0, 0, 0) -/* 0x388E */ DEFINE_SFX(NA_SE_EN_TEKU_JUMP_WATER, 0x20, 0, 0, 0) -/* 0x388F */ DEFINE_SFX(NA_SE_EN_TEKU_LAND_WATER2, 0x20, 0, 0, 0) -/* 0x3890 */ DEFINE_SFX(NA_SE_EN_FALL_AIM, 0x38, 0, 0, SFX_FLAG_13) -/* 0x3891 */ DEFINE_SFX(NA_SE_EN_FALL_UP, 0x30, 3, 0, 0) -/* 0x3892 */ DEFINE_SFX(NA_SE_EN_FALL_CATCH, 0x30, 0, 0, SFX_FLAG_13) -/* 0x3893 */ DEFINE_SFX(NA_SE_EN_FALL_LAND, 0x30, 0, 0, 0) -/* 0x3894 */ DEFINE_SFX(NA_SE_EN_FALL_WALK, 0x14, 0, 0, 0) -/* 0x3895 */ DEFINE_SFX(NA_SE_EN_FALL_DAMAGE, 0x38, 1, 0, 0) -/* 0x3896 */ DEFINE_SFX(NA_SE_EN_FALL_DEAD, 0x40, 1, 0, 0) -/* 0x3897 */ DEFINE_SFX(NA_SE_EN_KAICHO_FLUTTER, 0x14, 0, 0, 0) -/* 0x3898 */ DEFINE_SFX(NA_SE_EN_BIRI_FLY, 0x20, 0, 0, 0) -/* 0x3899 */ DEFINE_SFX(NA_SE_EN_BIRI_JUMP, 0x20, 0, 0, 0) -/* 0x389A */ DEFINE_SFX(NA_SE_EN_BIRI_SPARK, 0x30, 0, 0, 0) -/* 0x389B */ DEFINE_SFX(NA_SE_EN_BIRI_DEAD, 0x40, 1, 0, 0) -/* 0x389C */ DEFINE_SFX(NA_SE_EN_BIRI_BUBLE, 0x40, 1, 0, 0) -/* 0x389D */ DEFINE_SFX(NA_SE_EN_BARI_ROLL, 0x30, 0, 0, 0) -/* 0x389E */ DEFINE_SFX(NA_SE_EN_GOMA_JR_FREEZE, 0x34, 1, 0, 0) -/* 0x389F */ DEFINE_SFX(NA_SE_EN_BARI_DEAD, 0x40, 1, 0, 0) -/* 0x38A0 */ DEFINE_SFX(NA_SE_EN_GANON_FIRE, 0x30, 3, 0, 0) -/* 0x38A1 */ DEFINE_SFX(NA_SE_EN_FANTOM_TRANSFORM, 0x30, 2, 0, 0) -/* 0x38A2 */ DEFINE_SFX(NA_SE_EN_FANTOM_THUNDER, 0x30, 0, 0, SFX_FLAG_13) -/* 0x38A3 */ DEFINE_SFX(NA_SE_EN_FANTOM_SPARK, 0x20, 3, 1, 0) -/* 0x38A4 */ DEFINE_SFX(NA_SE_EN_FANTOM_FLOAT, 0x20, 2, 0, 0) -/* 0x38A5 */ DEFINE_SFX(NA_SE_EN_FANTOM_MASIC1, 0x30, 3, 0, 0) -/* 0x38A6 */ DEFINE_SFX(NA_SE_EN_FANTOM_MASIC2, 0x30, 3, 0, 0) -/* 0x38A7 */ DEFINE_SFX(NA_SE_EN_FANTOM_FIRE, 0x30, 3, 0, 0) -/* 0x38A8 */ DEFINE_SFX(NA_SE_EN_FANTOM_HIT_THUNDER, 0x38, 3, 0, 0) -/* 0x38A9 */ DEFINE_SFX(NA_SE_EN_FANTOM_ATTACK, 0x30, 0, 0, SFX_FLAG_13) -/* 0x38AA */ DEFINE_SFX(NA_SE_EN_FANTOM_STICK, 0x30, 3, 0, 0) -/* 0x38AB */ DEFINE_SFX(NA_SE_EN_FANTOM_EYE, 0x30, 2, 0, 0) -/* 0x38AC */ DEFINE_SFX(NA_SE_EN_FANTOM_LAST, 0x30, 0, 0, SFX_FLAG_13) -/* 0x38AD */ DEFINE_SFX(NA_SE_EN_FANTOM_THUNDER_GND, 0x30, 3, 0, 0) -/* 0x38AE */ DEFINE_SFX(NA_SE_EN_FANTOM_DAMAGE, 0x38, 3, 0, 0) -/* 0x38AF */ DEFINE_SFX(NA_SE_EN_FANTOM_DEAD, 0x40, 3, 0, 0) -/* 0x38B0 */ DEFINE_SFX(NA_SE_EN_FANTOM_LAUGH, 0x30, 3, 0, 0) -/* 0x38B1 */ DEFINE_SFX(NA_SE_EN_FANTOM_DAMAGE2, 0x30, 3, 0, 0) -/* 0x38B2 */ DEFINE_SFX(NA_SE_EN_FANTOM_VOICE, 0x30, 3, 0, SFX_FLAG_10) -/* 0x38B3 */ DEFINE_SFX(NA_SE_EN_KAICHO_DAMAGE, 0x38, 1, 0, 0) -/* 0x38B4 */ DEFINE_SFX(NA_SE_EN_GANON_ATTACK_DEMO, 0x30, 3, 0, 0) -/* 0x38B5 */ DEFINE_SFX(NA_SE_EN_GANON_FIRE_DEMO, 0x30, 3, 0, 0) -/* 0x38B6 */ DEFINE_SFX(NA_SE_EN_KAICHO_CRY, 0x20, 0, 0, 0) -/* 0x38B7 */ DEFINE_SFX(NA_SE_EN_KAICHO_ATTACK, 0x34, 0, 0, 0) -/* 0x38B8 */ DEFINE_SFX(NA_SE_EN_MORIBLIN_WALK, 0x18, 1, 0, 0) -/* 0x38B9 */ DEFINE_SFX(NA_SE_EN_MORIBLIN_SLIDE, 0x20, 0, 0, SFX_FLAG_13) -/* 0x38BA */ DEFINE_SFX(NA_SE_EN_MORIBLIN_ATTACK, 0x30, 0, 0, SFX_FLAG_13) -/* 0x38BB */ DEFINE_SFX(NA_SE_EN_MORIBLIN_VOICE, 0x14, 3, 0, 0) -/* 0x38BC */ DEFINE_SFX(NA_SE_EN_MORIBLIN_SPEAR_AT, 0x28, 3, 0, 0) -/* 0x38BD */ DEFINE_SFX(NA_SE_EN_MORIBLIN_SPEAR_NORM, 0x28, 3, 0, 0) -/* 0x38BE */ DEFINE_SFX(NA_SE_EN_MORIBLIN_DEAD, 0x40, 3, 0, 0) -/* 0x38BF */ DEFINE_SFX(NA_SE_EN_MORIBLIN_DASH, 0x30, 3, 0, 0) -/* 0x38C0 */ DEFINE_SFX(NA_SE_EN_OCTAROCK_ROCK, 0x20, 0, 0, 0) -/* 0x38C1 */ DEFINE_SFX(NA_SE_EN_OCTAROCK_FLOAT, 0x14, 0, 0, 0) -/* 0x38C2 */ DEFINE_SFX(NA_SE_EN_OCTAROCK_JUMP, 0x30, 0, 0, 0) -/* 0x38C3 */ DEFINE_SFX(NA_SE_EN_OCTAROCK_LAND, 0x30, 0, 0, 0) -/* 0x38C4 */ DEFINE_SFX(NA_SE_EN_OCTAROCK_SINK, 0x28, 0, 0, 0) -/* 0x38C5 */ DEFINE_SFX(NA_SE_EN_OCTAROCK_BUBLE, 0x28, 0, 0, 0) -/* 0x38C6 */ DEFINE_SFX(NA_SE_EN_OCTAROCK_DEAD1, 0x40, 1, 0, 0) -/* 0x38C7 */ DEFINE_SFX(NA_SE_EN_OCTAROCK_DEAD2, 0x40, 1, 0, 0) -/* 0x38C8 */ DEFINE_SFX(NA_SE_EN_BUBLE_WING, 0x20, 0, 0, 0) -/* 0x38C9 */ DEFINE_SFX(NA_SE_EN_BUBLE_MOUTH, 0x20, 0, 0, 0) -/* 0x38CA */ DEFINE_SFX(NA_SE_EN_BUBLE_LAUGH, 0x14, 0, 0, 0) -/* 0x38CB */ DEFINE_SFX(NA_SE_EN_BUBLE_BITE, 0x30, 0, 0, 0) -/* 0x38CC */ DEFINE_SFX(NA_SE_EN_BUBLE_UP, 0x30, 0, 0, 0) -/* 0x38CD */ DEFINE_SFX(NA_SE_EN_BUBLE_DOWN, 0x30, 0, 0, 0) -/* 0x38CE */ DEFINE_SFX(NA_SE_EN_BUBLE_DEAD, 0x40, 1, 0, 0) -/* 0x38CF */ DEFINE_SFX(NA_SE_EN_BUBLEFALL_FIRE, 0x30, 0, 0, 0) -/* 0x38D0 */ DEFINE_SFX(NA_SE_EN_VALVAISA_APPEAR, 0x30, 3, 0, 0) -/* 0x38D1 */ DEFINE_SFX(NA_SE_EN_VALVAISA_ROAR, 0x30, 3, 0, 0) -/* 0x38D2 */ DEFINE_SFX(NA_SE_EN_VALVAISA_MAHI1, 0x30, 3, 0, 0) -/* 0x38D3 */ DEFINE_SFX(NA_SE_EN_VALVAISA_MAHI2, 0x30, 3, 0, 0) -/* 0x38D4 */ DEFINE_SFX(NA_SE_EN_VALVAISA_KNOCKOUT, 0x30, 3, 0, 0) -/* 0x38D5 */ DEFINE_SFX(NA_SE_EN_VALVAISA_DAMAGE1, 0x38, 3, 0, 0) -/* 0x38D6 */ DEFINE_SFX(NA_SE_EN_VALVAISA_DAMAGE2, 0x38, 3, 0, 0) -/* 0x38D7 */ DEFINE_SFX(NA_SE_EN_VALVAISA_ROCK, 0x30, 3, 0, 0) -/* 0x38D8 */ DEFINE_SFX(NA_SE_EN_VALVAISA_SW_NAIL, 0x30, 3, 0, 0) -/* 0x38D9 */ DEFINE_SFX(NA_SE_EN_VALVAISA_DEAD, 0x40, 3, 0, 0) -/* 0x38DA */ DEFINE_SFX(NA_SE_EN_VALVAISA_BURN, 0x30, 3, 0, 0) -/* 0x38DB */ DEFINE_SFX(NA_SE_EN_VALVAISA_FIRE, 0x30, 3, 0, 0) -/* 0x38DC */ DEFINE_SFX(NA_SE_EN_BARI_DAMAGE, 0x38, 1, 0, 0) -/* 0x38DD */ DEFINE_SFX(NA_SE_EN_MOFER_CORE_LAND, 0x28, 3, 0, 0) -/* 0x38DE */ DEFINE_SFX(NA_SE_EN_MOFER_CORE_MOVE_WT, 0x28, 3, 2, 0) -/* 0x38DF */ DEFINE_SFX(NA_SE_EN_MOFER_CORE_SMJUMP, 0x28, 2, 2, 0) -/* 0x38E0 */ DEFINE_SFX(NA_SE_EN_MONBLIN_GNDWAVE, 0x30, 3, 0, 0) -/* 0x38E1 */ DEFINE_SFX(NA_SE_EN_MONBLIN_HAM_DOWN, 0x30, 0, 0, SFX_FLAG_13) -/* 0x38E2 */ DEFINE_SFX(NA_SE_EN_MONBLIN_HAM_UP, 0x30, 0, 0, SFX_FLAG_13) -/* 0x38E3 */ DEFINE_SFX(NA_SE_EN_BUBLE_DAMAGE, 0x38, 1, 0, 0) -/* 0x38E4 */ DEFINE_SFX(NA_SE_EN_REDEAD_CRY, 0x20, 0, 0, 0) -/* 0x38E5 */ DEFINE_SFX(NA_SE_EN_REDEAD_AIM, 0x34, 0, 0, 0) -/* 0x38E6 */ DEFINE_SFX(NA_SE_EN_REDEAD_DAMAGE, 0x38, 1, 0, 0) -/* 0x38E7 */ DEFINE_SFX(NA_SE_EN_REDEAD_DEAD, 0x40, 1, 0, 0) -/* 0x38E8 */ DEFINE_SFX(NA_SE_EN_REDEAD_ATTACK, 0x34, 0, 0, SFX_FLAG_13) -/* 0x38E9 */ DEFINE_SFX(NA_SE_EN_NYU_MOVE, 0x20, 0, 0, 0) -/* 0x38EA */ DEFINE_SFX(NA_SE_EN_NYU_HIT_STOP, 0x38, 0, 0, 0) -/* 0x38EB */ DEFINE_SFX(NA_SE_EN_KAICHO_DEAD, 0x40, 1, 0, 0) -/* 0x38EC */ DEFINE_SFX(NA_SE_EN_PO_LAUGH, 0x30, 3, 0, 0) -/* 0x38ED */ DEFINE_SFX(NA_SE_EN_PO_CRY, 0x30, 2, 0, 0) -/* 0x38EE */ DEFINE_SFX(NA_SE_EN_PO_ROLL, 0x30, 2, 0, 0) -/* 0x38EF */ DEFINE_SFX(NA_SE_EN_PO_LAUGH2, 0x38, 3, 0, 0) -/* 0x38F0 */ DEFINE_SFX(NA_SE_EN_MOFER_APPEAR, 0x30, 3, 0, 0) -/* 0x38F1 */ DEFINE_SFX(NA_SE_EN_MOFER_ATTACK, 0x32, 3, 0, 0) -/* 0x38F2 */ DEFINE_SFX(NA_SE_EN_MOFER_WAVE, 0x34, 3, 0, 0) -/* 0x38F3 */ DEFINE_SFX(NA_SE_EN_MOFER_CATCH, 0x34, 3, 0, 0) -/* 0x38F4 */ DEFINE_SFX(NA_SE_EN_MOFER_CUT, 0x30, 3, 0, 0) -/* 0x38F5 */ DEFINE_SFX(NA_SE_EN_MOFER_MOVE_DEMO, 0x30, 3, 0, 0) -/* 0x38F6 */ DEFINE_SFX(NA_SE_EN_MOFER_BUBLE_DEMO, 0x30, 3, 0, 0) -/* 0x38F7 */ DEFINE_SFX(NA_SE_EN_MOFER_CORE_JUMP, 0x28, 2, 2, 0) -/* 0x38F8 */ DEFINE_SFX(NA_SE_EN_MOFER_DEAD, 0x40, 3, 0, 0) -/* 0x38F9 */ DEFINE_SFX(NA_SE_EN_MOFER_LASTVOICE, 0x40, 3, 0, 0) -/* 0x38FA */ DEFINE_SFX(NA_SE_EN_MOFER_CORE_ROLL, 0x30, 3, 0, 0) -/* 0x38FB */ DEFINE_SFX(NA_SE_EN_MOFER_CORE_FLY, 0x30, 3, 0, 0) -/* 0x38FC */ DEFINE_SFX(NA_SE_EN_GOLON_WAKE_UP, 0x20, 0, 0, 0) -/* 0x38FD */ DEFINE_SFX(NA_SE_EN_GOLON_SIT_DOWN, 0x20, 0, 0, 0) -/* 0x38FE */ DEFINE_SFX(NA_SE_EN_CHICKEN_FLUTTER, 0x30, 0, 0, 0) -/* 0x38FF */ DEFINE_SFX(NA_SE_EN_DEKU_WAKEUP, 0x20, 0, 2, 0) -/* 0x3900 */ DEFINE_SFX(NA_SE_EN_DEADHAND_BITE, 0x30, 3, 0, 0) -/* 0x3901 */ DEFINE_SFX(NA_SE_EN_DEADHAND_WALK, 0x18, 3, 0, 0) -/* 0x3902 */ DEFINE_SFX(NA_SE_EN_DEADHAND_GRIP, 0x34, 3, 0, 0) -/* 0x3903 */ DEFINE_SFX(NA_SE_EN_DEADHAND_HAND_AT, 0x30, 3, 0, 0) -/* 0x3904 */ DEFINE_SFX(NA_SE_EN_DAIOCTA_MAHI, 0x38, 3, 0, 0) -/* 0x3905 */ DEFINE_SFX(NA_SE_EN_DAIOCTA_SPLASH, 0x18, 3, 0, 0) -/* 0x3906 */ DEFINE_SFX(NA_SE_EN_DAIOCTA_VOICE, 0x30, 0, 0, SFX_FLAG_13) -/* 0x3907 */ DEFINE_SFX(NA_SE_EN_DAIOCTA_DAMAGE, 0x38, 3, 0, 0) -/* 0x3908 */ DEFINE_SFX(NA_SE_EN_DAIOCTA_SINK, 0x30, 3, 0, 0) -/* 0x3909 */ DEFINE_SFX(NA_SE_EN_DAIOCTA_DEAD, 0x40, 3, 0, 0) -/* 0x390A */ DEFINE_SFX(NA_SE_EN_DAIOCTA_DEAD2, 0x40, 0, 0, SFX_FLAG_13) -/* 0x390B */ DEFINE_SFX(NA_SE_EN_GANON_HIT_THUNDER, 0x38, 3, 0, 0) -/* 0x390C */ DEFINE_SFX(NA_SE_EN_TWINROBA_APPEAR_MS, 0x30, 0, 0, SFX_FLAG_13) -/* 0x390D */ DEFINE_SFX(NA_SE_EN_TWINROBA_TRANSFORM, 0x30, 3, 0, 0) -/* 0x390E */ DEFINE_SFX(NA_SE_EN_TWINROBA_MS_FIRE, 0x30, 3, 0, 0) -/* 0x390F */ DEFINE_SFX(NA_SE_EN_TWINROBA_FIRE_EXP, 0x30, 3, 0, 0) -/* 0x3910 */ DEFINE_SFX(NA_SE_EN_TWINROBA_POWERUP, 0x30, 3, 0, 0) -/* 0x3911 */ DEFINE_SFX(NA_SE_EN_TWINROBA_SHOOT_FREEZE, 0x30, 3, 0, 0) -/* 0x3912 */ DEFINE_SFX(NA_SE_EN_TWINROBA_MS_FREEZE, 0x30, 3, 0, 0) -/* 0x3913 */ DEFINE_SFX(NA_SE_EN_TWINROBA_MASIC_SET, 0x30, 2, 0, 0) -/* 0x3914 */ DEFINE_SFX(NA_SE_EN_TWINROBA_CUTBODY, 0x30, 3, 0, 0) -/* 0x3915 */ DEFINE_SFX(NA_SE_EN_GANON_HIT_GND_IMP, 0x30, 3, 0, 0) -/* 0x3916 */ DEFINE_SFX(NA_SE_EN_TWINROBA_DAMAGE_VOICE, 0x38, 0, 0, SFX_FLAG_13) -/* 0x3917 */ DEFINE_SFX(NA_SE_EN_TWINROBA_REFL_FIRE, 0x38, 3, 0, 0) -/* 0x3918 */ DEFINE_SFX(NA_SE_EN_TWINROBA_REFL_FREEZE, 0x38, 3, 0, 0) -/* 0x3919 */ DEFINE_SFX(NA_SE_EN_GANON_CUTBODY, 0x38, 3, 0, 0) -/* 0x391A */ DEFINE_SFX(NA_SE_EN_TWINROBA_YOUNG_DAMAGE, 0x38, 0, 0, SFX_FLAG_13) -/* 0x391B */ DEFINE_SFX(NA_SE_EN_TWINROBA_YOUNG_DEAD, 0x40, 0, 0, SFX_FLAG_13) -/* 0x391C */ DEFINE_SFX(NA_SE_EN_GOLON_EYE_BIG, 0x18, 0, 0, 0) -/* 0x391D */ DEFINE_SFX(NA_SE_EN_GOLON_GOOD_BIG, 0x30, 3, 0, 0) -/* 0x391E */ DEFINE_SFX(NA_SE_EN_TWINROBA_FB_FLY, 0x30, 2, 0, 0) -/* 0x391F */ DEFINE_SFX(NA_SE_EN_TWINROBA_FLY, 0x20, 2, 0, 0) -/* 0x3920 */ DEFINE_SFX(NA_SE_EN_TWINROBA_UNARI, 0x24, 3, 0, 0) -/* 0x3921 */ DEFINE_SFX(NA_SE_EN_TWINROBA_ROLL, 0x28, 3, 0, 0) -/* 0x3922 */ DEFINE_SFX(NA_SE_EN_TWINROBA_SHOOT_FIRE, 0x30, 3, 0, 0) -/* 0x3923 */ DEFINE_SFX(NA_SE_EN_TWINROBA_THROW_MASIC, 0x30, 3, 0, 0) -/* 0x3924 */ DEFINE_SFX(NA_SE_EN_DARUNIA_HIT_BREAST, 0x30, 0, 0, 0) -/* 0x3925 */ DEFINE_SFX(NA_SE_EN_DARUNIA_HIT_LINK, 0x30, 0, 0, 0) -/* 0x3926 */ DEFINE_SFX(NA_SE_EN_OWL_FLUTTER, 0x30, 0, 0, 0) -/* 0x3927 */ DEFINE_SFX(NA_SE_EN_VALVAISA_LAND, 0x30, 3, 0, 0) -/* 0x3928 */ DEFINE_SFX(NA_SE_EN_IRONNACK_WALK, 0x18, 1, 0, 0) -/* 0x3929 */ DEFINE_SFX(NA_SE_EN_IRONNACK_SWING_AXE, 0x34, 3, 0, 0) -/* 0x392A */ DEFINE_SFX(NA_SE_EN_IRONNACK_ARMOR_DEMO, 0x30, 3, 0, 0) -/* 0x392B */ DEFINE_SFX(NA_SE_EN_IRONNACK_STAGGER_DEMO, 0x30, 3, 0, 0) -/* 0x392C */ DEFINE_SFX(NA_SE_EN_IRONNACK_ARMOR_OFF_DEMO, 0x34, 3, 0, 0) -/* 0x392D */ DEFINE_SFX(NA_SE_EN_IRONNACK_ARMOR_LAND1_DEMO, 0x30, 3, 0, 0) -/* 0x392E */ DEFINE_SFX(NA_SE_EN_IRONNACK_ARMOR_LAND2_DEMO, 0x30, 3, 0, 0) -/* 0x392F */ DEFINE_SFX(NA_SE_EN_IRONNACK_ARMOR_LAND3_DEMO, 0x30, 3, 0, 0) -/* 0x3930 */ DEFINE_SFX(NA_SE_EN_FLOORMASTER_ATTACK, 0x30, 1, 0, 0) -/* 0x3931 */ DEFINE_SFX(NA_SE_EN_FLOORMASTER_SM_WALK, 0x14, 0, 0, 0) -/* 0x3932 */ DEFINE_SFX(NA_SE_EN_FLOORMASTER_SM_DEAD, 0x40, 1, 0, 0) -/* 0x3933 */ DEFINE_SFX(NA_SE_EN_FLOORMASTER_RESTORE, 0x30, 1, 0, 0) -/* 0x3934 */ DEFINE_SFX(NA_SE_EN_FLOORMASTER_EXPAND, 0x30, 1, 0, 0) -/* 0x3935 */ DEFINE_SFX(NA_SE_EN_FLOORMASTER_SPLIT, 0x30, 1, 0, 0) -/* 0x3936 */ DEFINE_SFX(NA_SE_EN_FLOORMASTER_SM_STICK, 0x38, 3, 0, 0) -/* 0x3937 */ DEFINE_SFX(NA_SE_EN_FLOORMASTER_SM_LAND, 0x30, 0, 0, 0) -/* 0x3938 */ DEFINE_SFX(NA_SE_EN_IRONNACK_WAVE_DEMO, 0x30, 3, 0, 0) -/* 0x3939 */ DEFINE_SFX(NA_SE_EN_IRONNACK_FINGER_DEMO, 0x30, 3, 0, 0) -/* 0x393A */ DEFINE_SFX(NA_SE_EN_IRONNACK_ARMOR_HIT, 0x38, 3, 0, 0) -/* 0x393B */ DEFINE_SFX(NA_SE_EN_NUTS_CUTBODY, 0x38, 3, 0, 0) -/* 0x393C */ DEFINE_SFX(NA_SE_EN_BALINADE_LEVEL, 0x30, 2, 0, 0) -/* 0x393D */ DEFINE_SFX(NA_SE_EN_BALINADE_DAMAGE, 0x38, 3, 0, 0) -/* 0x393E */ DEFINE_SFX(NA_SE_EN_BALINADE_FAINT, 0x38, 3, 0, 0) -/* 0x393F */ DEFINE_SFX(NA_SE_EN_BALINADE_BREAK, 0x30, 3, 2, 0) -/* 0x3940 */ DEFINE_SFX(NA_SE_EN_BALINADE_DEAD, 0x38, 3, 0, 0) -/* 0x3941 */ DEFINE_SFX(NA_SE_EN_BALINADE_STICK, 0x30, 3, 0, 0) -/* 0x3942 */ DEFINE_SFX(NA_SE_EN_BALINADE_THUNDER, 0x34, 3, 0, 0) -/* 0x3943 */ DEFINE_SFX(NA_SE_EN_BALINADE_BL_SPARK, 0x20, 2, 0, 0) -/* 0x3944 */ DEFINE_SFX(NA_SE_EN_BALINADE_BL_DEAD, 0x34, 3, 0, 0) +/* 0x3800 */ DEFINE_SFX(CHAN_3544, NA_SE_EN_DODO_J_WALK, 0x18, 0, 0, 0) +/* 0x3801 */ DEFINE_SFX(CHAN_3555, NA_SE_EN_DODO_J_CRY, 0x30, 0, 0, 0) +/* 0x3802 */ DEFINE_SFX(CHAN_355F, NA_SE_EN_DODO_J_FIRE, 0x30, 0, 0, 0) +/* 0x3803 */ DEFINE_SFX(CHAN_356B, NA_SE_EN_DODO_J_DAMAGE, 0x38, 1, 0, 0) +/* 0x3804 */ DEFINE_SFX(CHAN_3583, NA_SE_EN_DODO_J_DEAD, 0x40, 1, 0, 0) +/* 0x3805 */ DEFINE_SFX(CHAN_35A0, NA_SE_EN_DODO_K_CRY, 0x30, 3, 0, 0) +/* 0x3806 */ DEFINE_SFX(CHAN_3E44, NA_SE_EN_DODO_K_DAMAGE, 0x38, 3, 0, 0) +/* 0x3807 */ DEFINE_SFX(CHAN_3D7E, NA_SE_EN_DODO_K_DEAD, 0x40, 3, 0, 0) +/* 0x3808 */ DEFINE_SFX(CHAN_35B6, NA_SE_EN_DODO_K_WALK, 0x30, 2, 0, 0) +/* 0x3809 */ DEFINE_SFX(CHAN_35CE, NA_SE_EN_DODO_K_FIRE, 0x30, 3, 0, 0) +/* 0x380A */ DEFINE_SFX(CHAN_365A, NA_SE_EN_GOMA_WALK, 0x30, 2, 0, 0) +/* 0x380B */ DEFINE_SFX(CHAN_371F, NA_SE_EN_GOMA_HIGH, 0x20, 1, 2, 0) +/* 0x380C */ DEFINE_SFX(CHAN_366D, NA_SE_EN_GOMA_CLIM, 0x30, 3, 0, 0) +/* 0x380D */ DEFINE_SFX(CHAN_35E9, NA_SE_EN_GOMA_DOWN, 0x30, 3, 0, 0) +/* 0x380E */ DEFINE_SFX(CHAN_37FB, NA_SE_EN_GOMA_CRY1, 0x38, 3, 0, 0) +/* 0x380F */ DEFINE_SFX(CHAN_3849, NA_SE_EN_GOMA_CRY2, 0x30, 3, 0, 0) +/* 0x3810 */ DEFINE_SFX(CHAN_381C, NA_SE_EN_GOMA_DAM1, 0x30, 3, 0, 0) +/* 0x3811 */ DEFINE_SFX(CHAN_3732, NA_SE_EN_GOMA_DAM2, 0x38, 3, 0, 0) +/* 0x3812 */ DEFINE_SFX(CHAN_3E7F, NA_SE_EN_GOMA_DEAD, 0x40, 3, 0, 0) +/* 0x3813 */ DEFINE_SFX(CHAN_3680, NA_SE_EN_GOMA_UNARI, 0x20, 0, 0, SFX_FLAG_13) +/* 0x3814 */ DEFINE_SFX(CHAN_3767, NA_SE_EN_GOMA_BJR_EGG1, 0x28, 3, 0, 0) +/* 0x3815 */ DEFINE_SFX(CHAN_35DF, NA_SE_EN_GOMA_BJR_EGG2, 0x28, 3, 0, 0) +/* 0x3816 */ DEFINE_SFX(CHAN_3697, NA_SE_EN_GOMA_BJR_WALK, 0x20, 2, 0, 0) +/* 0x3817 */ DEFINE_SFX(CHAN_36A5, NA_SE_EN_GOMA_BJR_CRY, 0x28, 3, 0, 0) +/* 0x3818 */ DEFINE_SFX(CHAN_36B3, NA_SE_EN_GOMA_BJR_DAM1, 0x38, 3, 0, 0) +/* 0x3819 */ DEFINE_SFX(CHAN_36D2, NA_SE_EN_GOMA_BJR_DAM2, 0x30, 3, 0, 0) +/* 0x381A */ DEFINE_SFX(CHAN_36F9, NA_SE_EN_GOMA_BJR_DEAD, 0x40, 3, 0, 0) +/* 0x381B */ DEFINE_SFX(CHAN_3D68, NA_SE_EN_GOMA_DEMO_EYE, 0x30, 3, 0, 0) +/* 0x381C */ DEFINE_SFX(CHAN_3F3E, NA_SE_EN_GOMA_LAST, 0x30, 3, 0, 0) +/* 0x381D */ DEFINE_SFX(CHAN_402B, NA_SE_EN_GOMA_UNARI2, 0x30, 3, 0, 0) +/* 0x381E */ DEFINE_SFX(CHAN_4906, NA_SE_EN_GOMA_FAINT, 0x30, 3, 0, 0) +/* 0x381F */ DEFINE_SFX(CHAN_4C1B, NA_SE_EN_GOMA_BJR_FREEZE, 0x30, 3, 0, 0) +/* 0x3820 */ DEFINE_SFX(CHAN_37C0, NA_SE_EN_DODO_M_CRY, 0x30, 0, 0, 0) +/* 0x3821 */ DEFINE_SFX(CHAN_37E3, NA_SE_EN_DODO_M_DEAD, 0x40, 1, 0, 0) +/* 0x3822 */ DEFINE_SFX(CHAN_3858, NA_SE_EN_DODO_M_MOVE, 0x18, 0, 0, 0) +/* 0x3823 */ DEFINE_SFX(CHAN_3862, NA_SE_EN_DODO_M_DOWN, 0x14, 0, 0, 0) +/* 0x3824 */ DEFINE_SFX(CHAN_38A2, NA_SE_EN_DODO_M_UP, 0x14, 0, 0, 0) +/* 0x3825 */ DEFINE_SFX(CHAN_5443, NA_SE_EN_GANON_THROW_MASIC, 0x30, 3, 0, 0) +/* 0x3826 */ DEFINE_SFX(CHAN_38C7, NA_SE_EN_DODO_M_EAT, 0x30, 0, 0, 0) +/* 0x3827 */ DEFINE_SFX(CHAN_544A, NA_SE_EN_GANON_DD_THUNDER, 0x44, 3, 0, 0) +/* 0x3828 */ DEFINE_SFX(CHAN_39B9, NA_SE_EN_RIZA_ONGND, 0x18, 0, 0, 0) +/* 0x3829 */ DEFINE_SFX(CHAN_4040, NA_SE_EN_RIZA_CRY, 0x30, 2, 0, 0) +/* 0x382A */ DEFINE_SFX(CHAN_4061, NA_SE_EN_RIZA_ATTACK, 0x32, 2, 0, 0) +/* 0x382B */ DEFINE_SFX(CHAN_38EC, NA_SE_EN_RIZA_DAMAGE, 0x38, 1, 0, 0) +/* 0x382C */ DEFINE_SFX(CHAN_3916, NA_SE_EN_RIZA_WARAU, 0x20, 0, 0, 0) +/* 0x382D */ DEFINE_SFX(CHAN_3924, NA_SE_EN_RIZA_DEAD, 0x40, 1, 0, 0) +/* 0x382E */ DEFINE_SFX(CHAN_39AD, NA_SE_EN_RIZA_WALK, 0x18, 0, 0, 0) +/* 0x382F */ DEFINE_SFX(CHAN_39C8, NA_SE_EN_RIZA_JUMP, 0x28, 0, 0, 0) +/* 0x3830 */ DEFINE_SFX(CHAN_5477, NA_SE_EN_STALKID_WALK, 0x18, 0, 0, 0) +/* 0x3831 */ DEFINE_SFX(CHAN_5481, NA_SE_EN_STALKID_ATTACK, 0x30, 0, 0, 0) +/* 0x3832 */ DEFINE_SFX(CHAN_396B, NA_SE_EN_STALKID_DAMAGE, 0x38, 1, 0, 0) +/* 0x3833 */ DEFINE_SFX(CHAN_39A0, NA_SE_EN_STALKID_DEAD, 0x40, 1, 0, 0) +/* 0x3834 */ DEFINE_SFX(CHAN_4D26, NA_SE_EN_FLOORMASTER_SLIDING, 0x14, 0, 0, 0) +/* 0x3835 */ DEFINE_SFX(CHAN_502F, NA_SE_EN_TEKU_WALK_WATER, 0x18, 0, 2, 0) +/* 0x3836 */ DEFINE_SFX(CHAN_535D, NA_SE_EN_LIGHT_ARROW_HIT, 0x38, 2, 0, 0) +/* 0x3837 */ DEFINE_SFX(CHAN_53EA, NA_SE_EN_TUBOOCK_FLY, 0x30, 0, 0, 0) +/* 0x3838 */ DEFINE_SFX(CHAN_38DF, NA_SE_EN_STAL_WARAU, 0x28, 1, 0, 0) +/* 0x3839 */ DEFINE_SFX(CHAN_3A70, NA_SE_EN_STAL_SAKEBI, 0x30, 0, 0, 0) +/* 0x383A */ DEFINE_SFX(CHAN_394E, NA_SE_EN_STAL_DAMAGE, 0x38, 1, 0, 0) +/* 0x383B */ DEFINE_SFX(CHAN_3974, NA_SE_EN_STAL_DEAD, 0x40, 1, 0, 0) +/* 0x383C */ DEFINE_SFX(CHAN_5529, NA_SE_EN_WOLFOS_APPEAR, 0x30, 0, 0, 0) +/* 0x383D */ DEFINE_SFX(CHAN_38D1, NA_SE_EN_STAL_WALK, 0x18, 0, 0, 0) +/* 0x383E */ DEFINE_SFX(CHAN_5572, NA_SE_EN_WOLFOS_CRY, 0x20, 0, 0, 0) +/* 0x383F */ DEFINE_SFX(CHAN_5537, NA_SE_EN_WOLFOS_ATTACK, 0x30, 0, 0, 0) +/* 0x3840 */ DEFINE_SFX(CHAN_379B, NA_SE_EN_FFLY_ATTACK, 0x30, 0, 0, 0) +/* 0x3841 */ DEFINE_SFX(CHAN_37AB, NA_SE_EN_FFLY_FLY, 0x20, 1, 0, 0) +/* 0x3842 */ DEFINE_SFX(CHAN_3C04, NA_SE_EN_FFLY_DEAD, 0x40, 1, 0, 0) +/* 0x3843 */ DEFINE_SFX(CHAN_5548, NA_SE_EN_WOLFOS_DAMAGE, 0x38, 1, 0, 0) +/* 0x3844 */ DEFINE_SFX(CHAN_39FE, NA_SE_EN_AMOS_WALK, 0x30, 0, 0, 0) +/* 0x3845 */ DEFINE_SFX(CHAN_3A0C, NA_SE_EN_AMOS_WAVE, 0x30, 0, 0, 0) +/* 0x3846 */ DEFINE_SFX(CHAN_3A40, NA_SE_EN_AMOS_DEAD, 0x40, 1, 0, 0) +/* 0x3847 */ DEFINE_SFX(CHAN_3A93, NA_SE_EN_AMOS_DAMAGE, 0x38, 1, 0, 0) +/* 0x3848 */ DEFINE_SFX(CHAN_3A59, NA_SE_EN_AMOS_VOICE, 0x20, 0, 0, 0) +/* 0x3849 */ DEFINE_SFX(CHAN_5451, NA_SE_EN_SHELL_MOUTH, 0x30, 0, 0, 0) +/* 0x384A */ DEFINE_SFX(CHAN_3BAB, NA_SE_EN_SHELL_DEAD, 0x40, 1, 0, 0) +/* 0x384B */ DEFINE_SFX(CHAN_555D, NA_SE_EN_WOLFOS_DEAD, 0x40, 1, 0, 0) +/* 0x384C */ DEFINE_SFX(CHAN_3AA8, NA_SE_EN_DODO_K_COLI, 0x30, 3, 0, 0) +/* 0x384D */ DEFINE_SFX(CHAN_3AD5, NA_SE_EN_DODO_K_COLI2, 0x30, 0, 0, SFX_FLAG_13) +/* 0x384E */ DEFINE_SFX(CHAN_3AF4, NA_SE_EN_DODO_K_ROLL, 0x30, 3, 0, 0) +/* 0x384F */ DEFINE_SFX(CHAN_3B09, NA_SE_EN_DODO_K_BREATH, 0x30, 3, 0, 0) +/* 0x3850 */ DEFINE_SFX(CHAN_3B23, NA_SE_EN_DODO_K_DRINK, 0x30, 3, 0, 0) +/* 0x3851 */ DEFINE_SFX(CHAN_3B34, NA_SE_EN_DODO_K_DOWN, 0x30, 3, 0, 0) +/* 0x3852 */ DEFINE_SFX(CHAN_3D3D, NA_SE_EN_DODO_K_OTAKEBI, 0x30, 3, 0, 0) +/* 0x3853 */ DEFINE_SFX(CHAN_3DCF, NA_SE_EN_DODO_K_END, 0x30, 3, 0, 0) +/* 0x3854 */ DEFINE_SFX(CHAN_3E00, NA_SE_EN_DODO_K_LAST, 0x30, 3, 0, 0) +/* 0x3855 */ DEFINE_SFX(CHAN_3E17, NA_SE_EN_DODO_K_LAVA, 0x30, 3, 0, 0) +/* 0x3856 */ DEFINE_SFX(CHAN_4202, NA_SE_EN_GANON_FLOAT, 0x18, 3, 0, 0) +/* 0x3857 */ DEFINE_SFX(CHAN_53F0, NA_SE_EN_GANON_DARKWAVE_M, 0x30, 3, 0, 0) +/* 0x3858 */ DEFINE_SFX(CHAN_3B50, NA_SE_EN_DODO_J_BREATH, 0x28, 0, 0, 0) +/* 0x3859 */ DEFINE_SFX(CHAN_408D, NA_SE_EN_DODO_J_TAIL, 0x30, 0, 0, 0) +/* 0x385A */ DEFINE_SFX(CHAN_531C, NA_SE_EN_WOLFOS_WALK, 0x18, 0, 0, 0) +/* 0x385B */ DEFINE_SFX(CHAN_38C7, NA_SE_EN_DODO_J_EAT, 0x30, 0, 0, 0) +/* 0x385C */ DEFINE_SFX(CHAN_3B5C, NA_SE_EN_DEKU_MOUTH, 0x28, 0, 0, 0) +/* 0x385D */ DEFINE_SFX(CHAN_3B66, NA_SE_EN_DEKU_ATTACK, 0x30, 0, 0, 0) +/* 0x385E */ DEFINE_SFX(CHAN_3B76, NA_SE_EN_DEKU_DAMAGE, 0x38, 1, 0, 0) +/* 0x385F */ DEFINE_SFX(CHAN_3B8E, NA_SE_EN_DEKU_DEAD, 0x40, 1, 0, 0) +/* 0x3860 */ DEFINE_SFX(CHAN_3BBD, NA_SE_EN_DEKU_JR_MOUTH, 0x28, 0, 0, 0) +/* 0x3861 */ DEFINE_SFX(CHAN_3BC7, NA_SE_EN_DEKU_JR_ATTACK, 0x30, 0, 0, 0) +/* 0x3862 */ DEFINE_SFX(CHAN_3BD7, NA_SE_EN_DEKU_JR_DEAD, 0x40, 1, 0, 0) +/* 0x3863 */ DEFINE_SFX(CHAN_3BF3, NA_SE_EN_DEKU_SCRAPE, 0x14, 0, 0, 0) +/* 0x3864 */ DEFINE_SFX(CHAN_3C1C, NA_SE_EN_TAIL_FLY, 0x30, 0, 0, 0) +/* 0x3865 */ DEFINE_SFX(CHAN_3C2C, NA_SE_EN_TAIL_CRY, 0x20, 0, 0, 0) +/* 0x3866 */ DEFINE_SFX(CHAN_3C3A, NA_SE_EN_TAIL_DEAD, 0x40, 1, 0, 0) +/* 0x3867 */ DEFINE_SFX(CHAN_41F6, NA_SE_EN_GANON_SPARK, 0x30, 3, 0, 0) +/* 0x3868 */ DEFINE_SFX(CHAN_3C71, NA_SE_EN_STALTU_DOWN, 0x30, 0, 0, 0) +/* 0x3869 */ DEFINE_SFX(CHAN_3C56, NA_SE_EN_STALTU_UP, 0x30, 0, 0, 0) +/* 0x386A */ DEFINE_SFX(CHAN_3C8C, NA_SE_EN_STALTU_LAUGH, 0x20, 0, 0, 0) +/* 0x386B */ DEFINE_SFX(CHAN_3FD0, NA_SE_EN_STALTU_DAMAGE, 0x38, 1, 0, 0) +/* 0x386C */ DEFINE_SFX(CHAN_3E6B, NA_SE_EN_STAL_JUMP, 0x20, 0, 0, 0) +/* 0x386D */ DEFINE_SFX(CHAN_3F53, NA_SE_EN_TEKU_DAMAGE, 0x38, 1, 0, 0) +/* 0x386E */ DEFINE_SFX(CHAN_3F6E, NA_SE_EN_TEKU_DEAD, 0x40, 1, 0, 0) +/* 0x386F */ DEFINE_SFX(CHAN_3C9F, NA_SE_EN_TEKU_WALK, 0x14, 0, 0, 0) +/* 0x3870 */ DEFINE_SFX(CHAN_3CA9, NA_SE_EN_PO_KANTERA, 0x30, 3, 0, 0) +/* 0x3871 */ DEFINE_SFX(CHAN_3CBC, NA_SE_EN_PO_FLY, 0x20, 1, 0, 0) +/* 0x3872 */ DEFINE_SFX(CHAN_3CCF, NA_SE_EN_PO_AWAY, 0x20, 1, 0, 0) +/* 0x3873 */ DEFINE_SFX(CHAN_3CF6, NA_SE_EN_PO_APPEAR, 0x30, 2, 0, 0) +/* 0x3874 */ DEFINE_SFX(CHAN_3CE0, NA_SE_EN_PO_DISAPPEAR, 0x30, 2, 0, 0) +/* 0x3875 */ DEFINE_SFX(CHAN_3D09, NA_SE_EN_PO_DAMAGE, 0x38, 2, 0, 0) +/* 0x3876 */ DEFINE_SFX(CHAN_3D23, NA_SE_EN_PO_DEAD, 0x40, 2, 0, 0) +/* 0x3877 */ DEFINE_SFX(CHAN_40A3, NA_SE_EN_PO_DEAD2, 0x40, 2, 0, 0) +/* 0x3878 */ DEFINE_SFX(CHAN_401A, NA_SE_EN_EXTINCT, 0x14, 1, 2, 0) +/* 0x3879 */ DEFINE_SFX(CHAN_3612, NA_SE_EN_GOLON_LAND_BIG, 0x34, 0, 0, 0) +/* 0x387A */ DEFINE_SFX(CHAN_3629, NA_SE_EN_RIZA_DOWN, 0x40, 0, 0, 0) +/* 0x387B */ DEFINE_SFX(CHAN_3648, NA_SE_EN_DODO_M_GND, 0x20, 0, 0, 0) +/* 0x387C */ DEFINE_SFX(CHAN_3ECF, NA_SE_EN_NUTS_UP, 0x28, 0, 0, 0) +/* 0x387D */ DEFINE_SFX(CHAN_3EE2, NA_SE_EN_NUTS_DOWN, 0x28, 0, 0, 0) +/* 0x387E */ DEFINE_SFX(CHAN_3EF5, NA_SE_EN_NUTS_THROW, 0x30, 0, 0, 0) +/* 0x387F */ DEFINE_SFX(CHAN_3F05, NA_SE_EN_NUTS_WALK, 0x14, 0, 0, 0) +/* 0x3880 */ DEFINE_SFX(CHAN_3F12, NA_SE_EN_NUTS_DAMAGE, 0x38, 1, 0, 0) +/* 0x3881 */ DEFINE_SFX(CHAN_3F29, NA_SE_EN_NUTS_DEAD, 0x40, 1, 0, 0) +/* 0x3882 */ DEFINE_SFX(CHAN_4966, NA_SE_EN_NUTS_FAINT, 0x20, 0, 0, 0) +/* 0x3883 */ DEFINE_SFX(CHAN_4C03, NA_SE_EN_PO_BIG_GET, 0x30, 3, 0, 0) +/* 0x3884 */ DEFINE_SFX(CHAN_3FEC, NA_SE_EN_STALTU_ROLL, 0x30, 0, 0, 0) +/* 0x3885 */ DEFINE_SFX(CHAN_4001, NA_SE_EN_STALWALL_DEAD, 0x40, 1, 0, 0) +/* 0x3886 */ DEFINE_SFX(CHAN_4BCE, NA_SE_EN_PO_SISTER_DEAD, 0x40, 3, 0, 0) +/* 0x3887 */ DEFINE_SFX(CHAN_4C53, NA_SE_EN_BARI_SPLIT, 0x40, 1, 0, 0) +/* 0x3888 */ DEFINE_SFX(CHAN_5135, NA_SE_EN_TEKU_REVERSE, 0x28, 1, 0, 0) +/* 0x3889 */ DEFINE_SFX(CHAN_35E9, NA_SE_EN_VALVAISA_LAND2, 0x30, 3, 0, 0) +/* 0x388A */ DEFINE_SFX(CHAN_43EA, NA_SE_EN_TEKU_LAND_WATER, 0x20, 0, 0, 0) +/* 0x388B */ DEFINE_SFX(CHAN_4929, NA_SE_EN_LAST_DAMAGE, 0x38, 1, 0, 0) +/* 0x388C */ DEFINE_SFX(CHAN_497B, NA_SE_EN_STALWALL_ROLL, 0x30, 0, 0, 0) +/* 0x388D */ DEFINE_SFX(CHAN_4996, NA_SE_EN_STALWALL_DASH, 0x30, 0, 0, 0) +/* 0x388E */ DEFINE_SFX(CHAN_5013, NA_SE_EN_TEKU_JUMP_WATER, 0x20, 0, 0, 0) +/* 0x388F */ DEFINE_SFX(CHAN_5021, NA_SE_EN_TEKU_LAND_WATER2, 0x20, 0, 0, 0) +/* 0x3890 */ DEFINE_SFX(CHAN_40B8, NA_SE_EN_FALL_AIM, 0x38, 0, 0, SFX_FLAG_13) +/* 0x3891 */ DEFINE_SFX(CHAN_40C8, NA_SE_EN_FALL_UP, 0x30, 3, 0, 0) +/* 0x3892 */ DEFINE_SFX(CHAN_5089, NA_SE_EN_FALL_CATCH, 0x30, 0, 0, SFX_FLAG_13) +/* 0x3893 */ DEFINE_SFX(CHAN_3767, NA_SE_EN_FALL_LAND, 0x30, 0, 0, 0) +/* 0x3894 */ DEFINE_SFX(CHAN_40DB, NA_SE_EN_FALL_WALK, 0x14, 0, 0, 0) +/* 0x3895 */ DEFINE_SFX(CHAN_40EB, NA_SE_EN_FALL_DAMAGE, 0x38, 1, 0, 0) +/* 0x3896 */ DEFINE_SFX(CHAN_4104, NA_SE_EN_FALL_DEAD, 0x40, 1, 0, 0) +/* 0x3897 */ DEFINE_SFX(CHAN_55D2, NA_SE_EN_KAICHO_FLUTTER, 0x14, 0, 0, 0) +/* 0x3898 */ DEFINE_SFX(CHAN_411D, NA_SE_EN_BIRI_FLY, 0x20, 0, 0, 0) +/* 0x3899 */ DEFINE_SFX(CHAN_4132, NA_SE_EN_BIRI_JUMP, 0x20, 0, 0, 0) +/* 0x389A */ DEFINE_SFX(CHAN_415D, NA_SE_EN_BIRI_SPARK, 0x30, 0, 0, 0) +/* 0x389B */ DEFINE_SFX(CHAN_4184, NA_SE_EN_BIRI_DEAD, 0x40, 1, 0, 0) +/* 0x389C */ DEFINE_SFX(CHAN_41BC, NA_SE_EN_BIRI_BUBLE, 0x40, 1, 0, 0) +/* 0x389D */ DEFINE_SFX(CHAN_4C09, NA_SE_EN_BARI_ROLL, 0x30, 0, 0, 0) +/* 0x389E */ DEFINE_SFX(CHAN_4C1B, NA_SE_EN_GOMA_JR_FREEZE, 0x34, 1, 0, 0) +/* 0x389F */ DEFINE_SFX(CHAN_4C2D, NA_SE_EN_BARI_DEAD, 0x40, 1, 0, 0) +/* 0x38A0 */ DEFINE_SFX(CHAN_4236, NA_SE_EN_GANON_FIRE, 0x30, 3, 0, 0) +/* 0x38A1 */ DEFINE_SFX(CHAN_41CF, NA_SE_EN_FANTOM_TRANSFORM, 0x30, 2, 0, 0) +/* 0x38A2 */ DEFINE_SFX(CHAN_41E9, NA_SE_EN_FANTOM_THUNDER, 0x30, 0, 0, SFX_FLAG_13) +/* 0x38A3 */ DEFINE_SFX(CHAN_41F6, NA_SE_EN_FANTOM_SPARK, 0x20, 3, 1, 0) +/* 0x38A4 */ DEFINE_SFX(CHAN_4202, NA_SE_EN_FANTOM_FLOAT, 0x20, 2, 0, 0) +/* 0x38A5 */ DEFINE_SFX(CHAN_420E, NA_SE_EN_FANTOM_MASIC1, 0x30, 3, 0, 0) +/* 0x38A6 */ DEFINE_SFX(CHAN_421A, NA_SE_EN_FANTOM_MASIC2, 0x30, 3, 0, 0) +/* 0x38A7 */ DEFINE_SFX(CHAN_4236, NA_SE_EN_FANTOM_FIRE, 0x30, 3, 0, 0) +/* 0x38A8 */ DEFINE_SFX(CHAN_425D, NA_SE_EN_FANTOM_HIT_THUNDER, 0x38, 3, 0, 0) +/* 0x38A9 */ DEFINE_SFX(CHAN_4268, NA_SE_EN_FANTOM_ATTACK, 0x30, 0, 0, SFX_FLAG_13) +/* 0x38AA */ DEFINE_SFX(CHAN_4278, NA_SE_EN_FANTOM_STICK, 0x30, 3, 0, 0) +/* 0x38AB */ DEFINE_SFX(CHAN_429B, NA_SE_EN_FANTOM_EYE, 0x30, 2, 0, 0) +/* 0x38AC */ DEFINE_SFX(CHAN_42C0, NA_SE_EN_FANTOM_LAST, 0x30, 0, 0, SFX_FLAG_13) +/* 0x38AD */ DEFINE_SFX(CHAN_42B2, NA_SE_EN_FANTOM_THUNDER_GND, 0x30, 3, 0, 0) +/* 0x38AE */ DEFINE_SFX(CHAN_42F5, NA_SE_EN_FANTOM_DAMAGE, 0x38, 3, 0, 0) +/* 0x38AF */ DEFINE_SFX(CHAN_432C, NA_SE_EN_FANTOM_DEAD, 0x40, 3, 0, 0) +/* 0x38B0 */ DEFINE_SFX(CHAN_4378, NA_SE_EN_FANTOM_LAUGH, 0x30, 3, 0, 0) +/* 0x38B1 */ DEFINE_SFX(CHAN_435E, NA_SE_EN_FANTOM_DAMAGE2, 0x30, 3, 0, 0) +/* 0x38B2 */ DEFINE_SFX(CHAN_4226, NA_SE_EN_FANTOM_VOICE, 0x30, 3, 0, SFX_FLAG_10) +/* 0x38B3 */ DEFINE_SFX(CHAN_557C, NA_SE_EN_KAICHO_DAMAGE, 0x38, 1, 0, 0) +/* 0x38B4 */ DEFINE_SFX(CHAN_4A65, NA_SE_EN_GANON_ATTACK_DEMO, 0x30, 3, 0, 0) +/* 0x38B5 */ DEFINE_SFX(CHAN_4D16, NA_SE_EN_GANON_FIRE_DEMO, 0x30, 3, 0, 0) +/* 0x38B6 */ DEFINE_SFX(CHAN_55A6, NA_SE_EN_KAICHO_CRY, 0x20, 0, 0, 0) +/* 0x38B7 */ DEFINE_SFX(CHAN_55B9, NA_SE_EN_KAICHO_ATTACK, 0x34, 0, 0, 0) +/* 0x38B8 */ DEFINE_SFX(CHAN_4385, NA_SE_EN_MORIBLIN_WALK, 0x18, 1, 0, 0) +/* 0x38B9 */ DEFINE_SFX(CHAN_43A7, NA_SE_EN_MORIBLIN_SLIDE, 0x20, 0, 0, SFX_FLAG_13) +/* 0x38BA */ DEFINE_SFX(CHAN_445B, NA_SE_EN_MORIBLIN_ATTACK, 0x30, 0, 0, SFX_FLAG_13) +/* 0x38BB */ DEFINE_SFX(CHAN_446C, NA_SE_EN_MORIBLIN_VOICE, 0x14, 3, 0, 0) +/* 0x38BC */ DEFINE_SFX(CHAN_4488, NA_SE_EN_MORIBLIN_SPEAR_AT, 0x28, 3, 0, 0) +/* 0x38BD */ DEFINE_SFX(CHAN_447C, NA_SE_EN_MORIBLIN_SPEAR_NORM, 0x28, 3, 0, 0) +/* 0x38BE */ DEFINE_SFX(CHAN_44B2, NA_SE_EN_MORIBLIN_DEAD, 0x40, 3, 0, 0) +/* 0x38BF */ DEFINE_SFX(CHAN_4396, NA_SE_EN_MORIBLIN_DASH, 0x30, 3, 0, 0) +/* 0x38C0 */ DEFINE_SFX(CHAN_43F8, NA_SE_EN_OCTAROCK_ROCK, 0x20, 0, 0, 0) +/* 0x38C1 */ DEFINE_SFX(CHAN_43DC, NA_SE_EN_OCTAROCK_FLOAT, 0x14, 0, 0, 0) +/* 0x38C2 */ DEFINE_SFX(CHAN_43B6, NA_SE_EN_OCTAROCK_JUMP, 0x30, 0, 0, 0) +/* 0x38C3 */ DEFINE_SFX(CHAN_43EA, NA_SE_EN_OCTAROCK_LAND, 0x30, 0, 0, 0) +/* 0x38C4 */ DEFINE_SFX(CHAN_43C4, NA_SE_EN_OCTAROCK_SINK, 0x28, 0, 0, 0) +/* 0x38C5 */ DEFINE_SFX(CHAN_43D2, NA_SE_EN_OCTAROCK_BUBLE, 0x28, 0, 0, 0) +/* 0x38C6 */ DEFINE_SFX(CHAN_46EF, NA_SE_EN_OCTAROCK_DEAD1, 0x40, 1, 0, 0) +/* 0x38C7 */ DEFINE_SFX(CHAN_46D7, NA_SE_EN_OCTAROCK_DEAD2, 0x40, 1, 0, 0) +/* 0x38C8 */ DEFINE_SFX(CHAN_37AB, NA_SE_EN_BUBLE_WING, 0x20, 0, 0, 0) +/* 0x38C9 */ DEFINE_SFX(CHAN_4406, NA_SE_EN_BUBLE_MOUTH, 0x20, 0, 0, 0) +/* 0x38CA */ DEFINE_SFX(CHAN_441B, NA_SE_EN_BUBLE_LAUGH, 0x14, 0, 0, 0) +/* 0x38CB */ DEFINE_SFX(CHAN_4BBC, NA_SE_EN_BUBLE_BITE, 0x30, 0, 0, 0) +/* 0x38CC */ DEFINE_SFX(CHAN_4429, NA_SE_EN_BUBLE_UP, 0x30, 0, 0, 0) +/* 0x38CD */ DEFINE_SFX(CHAN_4442, NA_SE_EN_BUBLE_DOWN, 0x30, 0, 0, 0) +/* 0x38CE */ DEFINE_SFX(CHAN_4B8D, NA_SE_EN_BUBLE_DEAD, 0x40, 1, 0, 0) +/* 0x38CF */ DEFINE_SFX(CHAN_355F, NA_SE_EN_BUBLEFALL_FIRE, 0x30, 0, 0, 0) +/* 0x38D0 */ DEFINE_SFX(CHAN_4593, NA_SE_EN_VALVAISA_APPEAR, 0x30, 3, 0, 0) +/* 0x38D1 */ DEFINE_SFX(CHAN_44DB, NA_SE_EN_VALVAISA_ROAR, 0x30, 3, 0, 0) +/* 0x38D2 */ DEFINE_SFX(CHAN_3732, NA_SE_EN_VALVAISA_MAHI1, 0x30, 3, 0, 0) +/* 0x38D3 */ DEFINE_SFX(CHAN_4517, NA_SE_EN_VALVAISA_MAHI2, 0x30, 3, 0, 0) +/* 0x38D4 */ DEFINE_SFX(CHAN_4541, NA_SE_EN_VALVAISA_KNOCKOUT, 0x30, 3, 0, 0) +/* 0x38D5 */ DEFINE_SFX(CHAN_381C, NA_SE_EN_VALVAISA_DAMAGE1, 0x38, 3, 0, 0) +/* 0x38D6 */ DEFINE_SFX(CHAN_4555, NA_SE_EN_VALVAISA_DAMAGE2, 0x38, 3, 0, 0) +/* 0x38D7 */ DEFINE_SFX(CHAN_44C7, NA_SE_EN_VALVAISA_ROCK, 0x30, 3, 0, 0) +/* 0x38D8 */ DEFINE_SFX(CHAN_45B4, NA_SE_EN_VALVAISA_SW_NAIL, 0x30, 3, 0, 0) +/* 0x38D9 */ DEFINE_SFX(CHAN_3E7F, NA_SE_EN_VALVAISA_DEAD, 0x40, 3, 0, 0) +/* 0x38DA */ DEFINE_SFX(CHAN_3E00, NA_SE_EN_VALVAISA_BURN, 0x30, 3, 0, 0) +/* 0x38DB */ DEFINE_SFX(CHAN_35CE, NA_SE_EN_VALVAISA_FIRE, 0x30, 3, 0, 0) +/* 0x38DC */ DEFINE_SFX(CHAN_4184, NA_SE_EN_BARI_DAMAGE, 0x38, 1, 0, 0) +/* 0x38DD */ DEFINE_SFX(CHAN_3648, NA_SE_EN_MOFER_CORE_LAND, 0x28, 3, 0, 0) +/* 0x38DE */ DEFINE_SFX(CHAN_47BB, NA_SE_EN_MOFER_CORE_MOVE_WT, 0x28, 3, 2, 0) +/* 0x38DF */ DEFINE_SFX(CHAN_502F, NA_SE_EN_MOFER_CORE_SMJUMP, 0x28, 2, 2, 0) +/* 0x38E0 */ DEFINE_SFX(CHAN_522F, NA_SE_EN_MONBLIN_GNDWAVE, 0x30, 3, 0, 0) +/* 0x38E1 */ DEFINE_SFX(CHAN_4496, NA_SE_EN_MONBLIN_HAM_DOWN, 0x30, 0, 0, SFX_FLAG_13) +/* 0x38E2 */ DEFINE_SFX(CHAN_44A4, NA_SE_EN_MONBLIN_HAM_UP, 0x30, 0, 0, SFX_FLAG_13) +/* 0x38E3 */ DEFINE_SFX(CHAN_4BB2, NA_SE_EN_BUBLE_DAMAGE, 0x38, 1, 0, 0) +/* 0x38E4 */ DEFINE_SFX(CHAN_45C2, NA_SE_EN_REDEAD_CRY, 0x20, 0, 0, 0) +/* 0x38E5 */ DEFINE_SFX(CHAN_45D2, NA_SE_EN_REDEAD_AIM, 0x34, 0, 0, 0) +/* 0x38E6 */ DEFINE_SFX(CHAN_45E9, NA_SE_EN_REDEAD_DAMAGE, 0x38, 1, 0, 0) +/* 0x38E7 */ DEFINE_SFX(CHAN_45FF, NA_SE_EN_REDEAD_DEAD, 0x40, 1, 0, 0) +/* 0x38E8 */ DEFINE_SFX(CHAN_463C, NA_SE_EN_REDEAD_ATTACK, 0x34, 0, 0, SFX_FLAG_13) +/* 0x38E9 */ DEFINE_SFX(CHAN_5466, NA_SE_EN_NYU_MOVE, 0x20, 0, 0, 0) +/* 0x38EA */ DEFINE_SFX(CHAN_56A2, NA_SE_EN_NYU_HIT_STOP, 0x38, 0, 0, 0) +/* 0x38EB */ DEFINE_SFX(CHAN_5591, NA_SE_EN_KAICHO_DEAD, 0x40, 1, 0, 0) +/* 0x38EC */ DEFINE_SFX(CHAN_461A, NA_SE_EN_PO_LAUGH, 0x30, 3, 0, 0) +/* 0x38ED */ DEFINE_SFX(CHAN_4673, NA_SE_EN_PO_CRY, 0x30, 2, 0, 0) +/* 0x38EE */ DEFINE_SFX(CHAN_462B, NA_SE_EN_PO_ROLL, 0x30, 2, 0, 0) +/* 0x38EF */ DEFINE_SFX(CHAN_465F, NA_SE_EN_PO_LAUGH2, 0x38, 3, 0, 0) +/* 0x38F0 */ DEFINE_SFX(CHAN_4681, NA_SE_EN_MOFER_APPEAR, 0x30, 3, 0, 0) +/* 0x38F1 */ DEFINE_SFX(CHAN_4695, NA_SE_EN_MOFER_ATTACK, 0x32, 3, 0, 0) +/* 0x38F2 */ DEFINE_SFX(CHAN_46AD, NA_SE_EN_MOFER_WAVE, 0x34, 3, 0, 0) +/* 0x38F3 */ DEFINE_SFX(CHAN_46C7, NA_SE_EN_MOFER_CATCH, 0x34, 3, 0, 0) +/* 0x38F4 */ DEFINE_SFX(CHAN_4734, NA_SE_EN_MOFER_CUT, 0x30, 3, 0, 0) +/* 0x38F5 */ DEFINE_SFX(CHAN_4705, NA_SE_EN_MOFER_MOVE_DEMO, 0x30, 3, 0, 0) +/* 0x38F6 */ DEFINE_SFX(CHAN_471A, NA_SE_EN_MOFER_BUBLE_DEMO, 0x30, 3, 0, 0) +/* 0x38F7 */ DEFINE_SFX(CHAN_5013, NA_SE_EN_MOFER_CORE_JUMP, 0x28, 2, 2, 0) +/* 0x38F8 */ DEFINE_SFX(CHAN_4754, NA_SE_EN_MOFER_DEAD, 0x40, 3, 0, 0) +/* 0x38F9 */ DEFINE_SFX(CHAN_493B, NA_SE_EN_MOFER_LASTVOICE, 0x40, 3, 0, 0) +/* 0x38FA */ DEFINE_SFX(CHAN_47A8, NA_SE_EN_MOFER_CORE_ROLL, 0x30, 3, 0, 0) +/* 0x38FB */ DEFINE_SFX(CHAN_420E, NA_SE_EN_MOFER_CORE_FLY, 0x30, 3, 0, 0) +/* 0x38FC */ DEFINE_SFX(CHAN_47FC, NA_SE_EN_GOLON_WAKE_UP, 0x20, 0, 0, 0) +/* 0x38FD */ DEFINE_SFX(CHAN_4806, NA_SE_EN_GOLON_SIT_DOWN, 0x20, 0, 0, 0) +/* 0x38FE */ DEFINE_SFX(CHAN_56B0, NA_SE_EN_CHICKEN_FLUTTER, 0x30, 0, 0, 0) +/* 0x38FF */ DEFINE_SFX(CHAN_4D08, NA_SE_EN_DEKU_WAKEUP, 0x20, 0, 2, 0) +/* 0x3900 */ DEFINE_SFX(CHAN_47D3, NA_SE_EN_DEADHAND_BITE, 0x30, 3, 0, 0) +/* 0x3901 */ DEFINE_SFX(CHAN_47EC, NA_SE_EN_DEADHAND_WALK, 0x18, 3, 0, 0) +/* 0x3902 */ DEFINE_SFX(CHAN_4813, NA_SE_EN_DEADHAND_GRIP, 0x34, 3, 0, 0) +/* 0x3903 */ DEFINE_SFX(CHAN_4EBC, NA_SE_EN_DEADHAND_HAND_AT, 0x30, 3, 0, 0) +/* 0x3904 */ DEFINE_SFX(CHAN_4839, NA_SE_EN_DAIOCTA_MAHI, 0x38, 3, 0, 0) +/* 0x3905 */ DEFINE_SFX(CHAN_485E, NA_SE_EN_DAIOCTA_SPLASH, 0x18, 3, 0, 0) +/* 0x3906 */ DEFINE_SFX(CHAN_4875, NA_SE_EN_DAIOCTA_VOICE, 0x30, 0, 0, SFX_FLAG_13) +/* 0x3907 */ DEFINE_SFX(CHAN_4886, NA_SE_EN_DAIOCTA_DAMAGE, 0x38, 3, 0, 0) +/* 0x3908 */ DEFINE_SFX(CHAN_48B2, NA_SE_EN_DAIOCTA_SINK, 0x30, 3, 0, 0) +/* 0x3909 */ DEFINE_SFX(CHAN_48D5, NA_SE_EN_DAIOCTA_DEAD, 0x40, 3, 0, 0) +/* 0x390A */ DEFINE_SFX(CHAN_48F2, NA_SE_EN_DAIOCTA_DEAD2, 0x40, 0, 0, SFX_FLAG_13) +/* 0x390B */ DEFINE_SFX(CHAN_41E9, NA_SE_EN_GANON_HIT_THUNDER, 0x38, 3, 0, 0) +/* 0x390C */ DEFINE_SFX(CHAN_49B1, NA_SE_EN_TWINROBA_APPEAR_MS, 0x30, 0, 0, SFX_FLAG_13) +/* 0x390D */ DEFINE_SFX(CHAN_49C8, NA_SE_EN_TWINROBA_TRANSFORM, 0x30, 3, 0, 0) +/* 0x390E */ DEFINE_SFX(CHAN_49E6, NA_SE_EN_TWINROBA_MS_FIRE, 0x30, 3, 0, 0) +/* 0x390F */ DEFINE_SFX(CHAN_49FF, NA_SE_EN_TWINROBA_FIRE_EXP, 0x30, 3, 0, 0) +/* 0x3910 */ DEFINE_SFX(CHAN_4B3E, NA_SE_EN_TWINROBA_POWERUP, 0x30, 3, 0, 0) +/* 0x3911 */ DEFINE_SFX(CHAN_4A22, NA_SE_EN_TWINROBA_SHOOT_FREEZE, 0x30, 3, 0, 0) +/* 0x3912 */ DEFINE_SFX(CHAN_4A4C, NA_SE_EN_TWINROBA_MS_FREEZE, 0x30, 3, 0, 0) +/* 0x3913 */ DEFINE_SFX(CHAN_4AB3, NA_SE_EN_TWINROBA_MASIC_SET, 0x30, 2, 0, 0) +/* 0x3914 */ DEFINE_SFX(CHAN_4826, NA_SE_EN_TWINROBA_CUTBODY, 0x30, 3, 0, 0) +/* 0x3915 */ DEFINE_SFX(CHAN_3AA8, NA_SE_EN_GANON_HIT_GND_IMP, 0x30, 3, 0, 0) +/* 0x3916 */ DEFINE_SFX(CHAN_4AE7, NA_SE_EN_TWINROBA_DAMAGE_VOICE, 0x38, 0, 0, SFX_FLAG_13) +/* 0x3917 */ DEFINE_SFX(CHAN_424B, NA_SE_EN_TWINROBA_REFL_FIRE, 0x38, 3, 0, 0) +/* 0x3918 */ DEFINE_SFX(CHAN_4A39, NA_SE_EN_TWINROBA_REFL_FREEZE, 0x38, 3, 0, 0) +/* 0x3919 */ DEFINE_SFX(CHAN_4826, NA_SE_EN_GANON_CUTBODY, 0x38, 3, 0, 0) +/* 0x391A */ DEFINE_SFX(CHAN_4AF4, NA_SE_EN_TWINROBA_YOUNG_DAMAGE, 0x38, 0, 0, SFX_FLAG_13) +/* 0x391B */ DEFINE_SFX(CHAN_4B01, NA_SE_EN_TWINROBA_YOUNG_DEAD, 0x40, 0, 0, SFX_FLAG_13) +/* 0x391C */ DEFINE_SFX(CHAN_55E0, NA_SE_EN_GOLON_EYE_BIG, 0x18, 0, 0, 0) +/* 0x391D */ DEFINE_SFX(CHAN_55EC, NA_SE_EN_GOLON_GOOD_BIG, 0x30, 3, 0, 0) +/* 0x391E */ DEFINE_SFX(CHAN_4B18, NA_SE_EN_TWINROBA_FB_FLY, 0x30, 2, 0, 0) +/* 0x391F */ DEFINE_SFX(CHAN_4FE8, NA_SE_EN_TWINROBA_FLY, 0x20, 2, 0, 0) +/* 0x3920 */ DEFINE_SFX(CHAN_4FFB, NA_SE_EN_TWINROBA_UNARI, 0x24, 3, 0, 0) +/* 0x3921 */ DEFINE_SFX(CHAN_462B, NA_SE_EN_TWINROBA_ROLL, 0x28, 3, 0, 0) +/* 0x3922 */ DEFINE_SFX(CHAN_4236, NA_SE_EN_TWINROBA_SHOOT_FIRE, 0x30, 3, 0, 0) +/* 0x3923 */ DEFINE_SFX(CHAN_421A, NA_SE_EN_TWINROBA_THROW_MASIC, 0x30, 3, 0, 0) +/* 0x3924 */ DEFINE_SFX(CHAN_4AC3, NA_SE_EN_DARUNIA_HIT_BREAST, 0x30, 0, 0, 0) +/* 0x3925 */ DEFINE_SFX(CHAN_4AD6, NA_SE_EN_DARUNIA_HIT_LINK, 0x30, 0, 0, 0) +/* 0x3926 */ DEFINE_SFX(CHAN_4F7F, NA_SE_EN_OWL_FLUTTER, 0x30, 0, 0, 0) +/* 0x3927 */ DEFINE_SFX(CHAN_3612, NA_SE_EN_VALVAISA_LAND, 0x30, 3, 0, 0) +/* 0x3928 */ DEFINE_SFX(CHAN_4B49, NA_SE_EN_IRONNACK_WALK, 0x18, 1, 0, 0) +/* 0x3929 */ DEFINE_SFX(CHAN_4B67, NA_SE_EN_IRONNACK_SWING_AXE, 0x34, 3, 0, 0) +/* 0x392A */ DEFINE_SFX(CHAN_4C05, NA_SE_EN_IRONNACK_ARMOR_DEMO, 0x30, 3, 0, 0) +/* 0x392B */ DEFINE_SFX(CHAN_4D74, NA_SE_EN_IRONNACK_STAGGER_DEMO, 0x30, 3, 0, 0) +/* 0x392C */ DEFINE_SFX(CHAN_4D8B, NA_SE_EN_IRONNACK_ARMOR_OFF_DEMO, 0x34, 3, 0, 0) +/* 0x392D */ DEFINE_SFX(CHAN_4D57, NA_SE_EN_IRONNACK_ARMOR_LAND1_DEMO, 0x30, 3, 0, 0) +/* 0x392E */ DEFINE_SFX(CHAN_4D34, NA_SE_EN_IRONNACK_ARMOR_LAND2_DEMO, 0x30, 3, 0, 0) +/* 0x392F */ DEFINE_SFX(CHAN_4D53, NA_SE_EN_IRONNACK_ARMOR_LAND3_DEMO, 0x30, 3, 0, 0) +/* 0x3930 */ DEFINE_SFX(CHAN_4C5D, NA_SE_EN_FLOORMASTER_ATTACK, 0x30, 1, 0, 0) +/* 0x3931 */ DEFINE_SFX(CHAN_4C6E, NA_SE_EN_FLOORMASTER_SM_WALK, 0x14, 0, 0, 0) +/* 0x3932 */ DEFINE_SFX(CHAN_4C7C, NA_SE_EN_FLOORMASTER_SM_DEAD, 0x40, 1, 0, 0) +/* 0x3933 */ DEFINE_SFX(CHAN_4C95, NA_SE_EN_FLOORMASTER_RESTORE, 0x30, 1, 0, 0) +/* 0x3934 */ DEFINE_SFX(CHAN_4CA7, NA_SE_EN_FLOORMASTER_EXPAND, 0x30, 1, 0, 0) +/* 0x3935 */ DEFINE_SFX(CHAN_4CBD, NA_SE_EN_FLOORMASTER_SPLIT, 0x30, 1, 0, 0) +/* 0x3936 */ DEFINE_SFX(CHAN_4CC6, NA_SE_EN_FLOORMASTER_SM_STICK, 0x38, 3, 0, 0) +/* 0x3937 */ DEFINE_SFX(CHAN_4CE0, NA_SE_EN_FLOORMASTER_SM_LAND, 0x30, 0, 0, 0) +/* 0x3938 */ DEFINE_SFX(CHAN_4DA4, NA_SE_EN_IRONNACK_WAVE_DEMO, 0x30, 3, 0, 0) +/* 0x3939 */ DEFINE_SFX(CHAN_4DC1, NA_SE_EN_IRONNACK_FINGER_DEMO, 0x30, 3, 0, 0) +/* 0x393A */ DEFINE_SFX(CHAN_53A8, NA_SE_EN_IRONNACK_ARMOR_HIT, 0x38, 3, 0, 0) +/* 0x393B */ DEFINE_SFX(CHAN_4826, NA_SE_EN_NUTS_CUTBODY, 0x38, 3, 0, 0) +/* 0x393C */ DEFINE_SFX(CHAN_4DCD, NA_SE_EN_BALINADE_LEVEL, 0x30, 2, 0, 0) +/* 0x393D */ DEFINE_SFX(CHAN_4DE2, NA_SE_EN_BALINADE_DAMAGE, 0x38, 3, 0, 0) +/* 0x393E */ DEFINE_SFX(CHAN_4E23, NA_SE_EN_BALINADE_FAINT, 0x38, 3, 0, 0) +/* 0x393F */ DEFINE_SFX(CHAN_4E3E, NA_SE_EN_BALINADE_BREAK, 0x30, 3, 2, 0) +/* 0x3940 */ DEFINE_SFX(CHAN_4E59, NA_SE_EN_BALINADE_DEAD, 0x38, 3, 0, 0) +/* 0x3941 */ DEFINE_SFX(CHAN_4E8D, NA_SE_EN_BALINADE_STICK, 0x30, 3, 0, 0) +/* 0x3942 */ DEFINE_SFX(CHAN_4EA8, NA_SE_EN_BALINADE_THUNDER, 0x34, 3, 0, 0) +/* 0x3943 */ DEFINE_SFX(CHAN_415D, NA_SE_EN_BALINADE_BL_SPARK, 0x20, 2, 0, 0) +/* 0x3944 */ DEFINE_SFX(CHAN_4184, NA_SE_EN_BALINADE_BL_DEAD, 0x34, 3, 0, 0) #if PLATFORM_N64 -/* 0x3945 */ DEFINE_SFX(NA_SE_EN_BALINADE_BREAK2, 0x34, 3, 0, 0) +/* 0x3945 */ DEFINE_SFX(CHAN_4E86, NA_SE_EN_BALINADE_BREAK2, 0x34, 3, 0, 0) #else -/* 0x3945 */ DEFINE_SFX(NA_SE_EN_BALINADE_BREAK2, 0x30, 3, 0, 0) +/* 0x3945 */ DEFINE_SFX(CHAN_4E86, NA_SE_EN_BALINADE_BREAK2, 0x30, 3, 0, 0) #endif -/* 0x3946 */ DEFINE_SFX(NA_SE_EN_BALINADE_HIT_RINK, 0x38, 3, 0, 0) -/* 0x3947 */ DEFINE_SFX(NA_SE_EN_GANON_WAVE_GND, 0x20, 3, 0, 0) -/* 0x3948 */ DEFINE_SFX(NA_SE_EN_AWA_BOUND, 0x14, 0, 0, 0) -/* 0x3949 */ DEFINE_SFX(NA_SE_EN_AWA_BREAK, 0x20, 1, 0, 0) -/* 0x394A */ DEFINE_SFX(NA_SE_EN_BROB_WAVE, 0x30, 3, 0, 0) -/* 0x394B */ DEFINE_SFX(NA_SE_EN_NYU_DEAD, 0x40, 1, 0, 0) -/* 0x394C */ DEFINE_SFX(NA_SE_EN_EIER_DAMAGE, 0x38, 1, 0, 0) -/* 0x394D */ DEFINE_SFX(NA_SE_EN_EIER_DEAD, 0x40, 1, 0, 0) -/* 0x394E */ DEFINE_SFX(NA_SE_EN_EIER_FLUTTER, 0x20, 0, 0, 0) -/* 0x394F */ DEFINE_SFX(NA_SE_EN_EIER_FLY, 0x20, 0, 0, 0) -/* 0x3950 */ DEFINE_SFX(NA_SE_EN_SHADEST_TAIKO_LOW, 0x30, 3, 0, 0) -/* 0x3951 */ DEFINE_SFX(NA_SE_EN_SHADEST_TAIKO_HIGH, 0x30, 3, 0, 0) -/* 0x3952 */ DEFINE_SFX(NA_SE_EN_SHADEST_CLAP, 0x30, 3, 0, 0) -/* 0x3953 */ DEFINE_SFX(NA_SE_EN_SHADEST_FLY_ATTACK, 0x30, 3, 0, 0) -/* 0x3954 */ DEFINE_SFX(NA_SE_EN_PIHAT_UP, 0x28, 2, 0, 0) -/* 0x3955 */ DEFINE_SFX(NA_SE_EN_PIHAT_FLY, 0x30, 0, 0, 0) -/* 0x3956 */ DEFINE_SFX(NA_SE_EN_PIHAT_DAMAGE, 0x38, 1, 0, 0) -/* 0x3957 */ DEFINE_SFX(NA_SE_EN_PIHAT_LAND, 0x28, 2, 0, 0) -/* 0x3958 */ DEFINE_SFX(NA_SE_EN_BALINADE_HAND_DOWN, 0x30, 3, 0, 0) -/* 0x3959 */ DEFINE_SFX(NA_SE_EN_BALINADE_HAND_UP, 0x30, 3, 0, 0) -/* 0x395A */ DEFINE_SFX(NA_SE_EN_BALINADE_HAND_DAMAGE, 0x38, 3, 0, 0) -/* 0x395B */ DEFINE_SFX(NA_SE_EN_BALINADE_HAND_DEAD, 0x40, 3, 0, 0) -/* 0x395C */ DEFINE_SFX(NA_SE_EN_GOMA_JR_WALK, 0x14, 0, 0, 0) -/* 0x395D */ DEFINE_SFX(NA_SE_EN_GOMA_JR_CRY, 0x30, 0, 0, 0) -/* 0x395E */ DEFINE_SFX(NA_SE_EN_GOMA_JR_DAM1, 0x38, 1, 0, 0) -/* 0x395F */ DEFINE_SFX(NA_SE_EN_GOMA_JR_DAM2, 0x30, 1, 0, 0) -/* 0x3960 */ DEFINE_SFX(NA_SE_EN_GOMA_JR_DEAD, 0x40, 1, 0, 0) -/* 0x3961 */ DEFINE_SFX(NA_SE_EN_GOMA_EGG1, 0x28, 0, 0, 0) -/* 0x3962 */ DEFINE_SFX(NA_SE_EN_GOMA_EGG2, 0x28, 0, 0, 0) -/* 0x3963 */ DEFINE_SFX(NA_SE_EN_GANON_BODY_SPARK, 0x30, 2, 0, 0) -/* 0x3964 */ DEFINE_SFX(NA_SE_EN_SHADEST_HAND_WAVE, 0x30, 3, 0, 0) -/* 0x3965 */ DEFINE_SFX(NA_SE_EN_SHADEST_CATCH, 0x30, 3, 0, 0) -/* 0x3966 */ DEFINE_SFX(NA_SE_EN_SHADEST_LAND, 0x30, 3, 0, 0) -/* 0x3967 */ DEFINE_SFX(NA_SE_EN_SHADEST_HAND_FLY, 0x30, 3, 0, 0) -/* 0x3968 */ DEFINE_SFX(NA_SE_EN_SHADEST_SHAKEHAND, 0x30, 0, 0, SFX_FLAG_13) -/* 0x3969 */ DEFINE_SFX(NA_SE_EN_SHADEST_DAMAGE, 0x38, 3, 0, 0) -/* 0x396A */ DEFINE_SFX(NA_SE_EN_SHADEST_DAMAGE_HAND, 0x38, 3, 0, 0) -/* 0x396B */ DEFINE_SFX(NA_SE_EN_SHADEST_DISAPPEAR, 0x30, 3, 0, 0) -/* 0x396C */ DEFINE_SFX(NA_SE_EN_GANON_CHARGE_MASIC, 0x30, 3, 0, 0) -/* 0x396D */ DEFINE_SFX(NA_SE_EN_GANON_THROW_BIG, 0x34, 3, 0, 0) -/* 0x396E */ DEFINE_SFX(NA_SE_EN_SHADEST_FREEZE, 0x38, 3, 0, 0) -/* 0x396F */ DEFINE_SFX(NA_SE_EN_SHADEST_DEAD, 0x40, 3, 0, 0) -/* 0x3970 */ DEFINE_SFX(NA_SE_EN_BIMOS_ROLL_HEAD, 0x10, 0, 0, 0) -/* 0x3971 */ DEFINE_SFX(NA_SE_EN_BIMOS_LAZER, 0x34, 0, 0, 0) -/* 0x3972 */ DEFINE_SFX(NA_SE_EN_BIMOS_LAZER_GND, 0x18, 0, 0, 0) -/* 0x3973 */ DEFINE_SFX(NA_SE_EN_BIMOS_AIM, 0x30, 0, 0, 0) -/* 0x3974 */ DEFINE_SFX(NA_SE_EN_BUBLEWALK_WALK, 0x14, 0, 0, 0) -/* 0x3975 */ DEFINE_SFX(NA_SE_EN_BUBLEWALK_AIM, 0x34, 0, 0, 0) -/* 0x3976 */ DEFINE_SFX(NA_SE_EN_BUBLEWALK_REVERSE, 0x28, 1, 0, 0) -/* 0x3977 */ DEFINE_SFX(NA_SE_EN_BUBLEWALK_DAMAGE, 0x38, 1, 0, 0) -/* 0x3978 */ DEFINE_SFX(NA_SE_EN_BUBLEWALK_DEAD, 0x40, 1, 0, 0) -/* 0x3979 */ DEFINE_SFX(NA_SE_EN_YUKABYUN_FLY, 0x30, 0, 0, 0) -/* 0x397A */ DEFINE_SFX(NA_SE_EN_FLAME_DAMAGE, 0x38, 3, 0, 0) -/* 0x397B */ DEFINE_SFX(NA_SE_EN_TWINROBA_FLY_DEMO, 0x20, 0, 0, 0) -/* 0x397C */ DEFINE_SFX(NA_SE_EN_FLAME_KICK, 0x20, 2, 0, 0) -/* 0x397D */ DEFINE_SFX(NA_SE_EN_FLAME_RUN, 0x30, 2, 0, 0) -/* 0x397E */ DEFINE_SFX(NA_SE_EN_FLAME_ROLL, 0x30, 3, 0, 0) -/* 0x397F */ DEFINE_SFX(NA_SE_EN_FLAME_MAN_RUN, 0x30, 3, 0, 0) -/* 0x3980 */ DEFINE_SFX(NA_SE_EN_FLAME_MAN_DAMAGE, 0x38, 3, 0, 0) -/* 0x3981 */ DEFINE_SFX(NA_SE_EN_FLAME_LAUGH, 0x30, 3, 0, 0) -/* 0x3982 */ DEFINE_SFX(NA_SE_EN_FLAME_MAN_SLIDE, 0x20, 0, 0, SFX_FLAG_13) -/* 0x3983 */ DEFINE_SFX(NA_SE_EN_FLAME_FIRE_ATTACK, 0x30, 3, 0, 0) -/* 0x3984 */ DEFINE_SFX(NA_SE_EN_PIHAT_SM_FLY, 0x30, 0, 0, 0) -/* 0x3985 */ DEFINE_SFX(NA_SE_EN_PIHAT_SM_DEAD, 0x40, 1, 0, 0) -/* 0x3986 */ DEFINE_SFX(NA_SE_EN_RIVA_APPEAR, 0x30, 0, 0, 0) -/* 0x3987 */ DEFINE_SFX(NA_SE_EN_AKINDONUTS_HIDE, 0x20, 0, 0, 0) -/* 0x3988 */ DEFINE_SFX(NA_SE_EN_RIVA_DAMAGE, 0x38, 1, 0, 0) -/* 0x3989 */ DEFINE_SFX(NA_SE_EN_RIVA_DEAD, 0x40, 1, 0, 0) -/* 0x398A */ DEFINE_SFX(NA_SE_EN_RIVA_MOVE, 0x30, 0, 0, 0) -/* 0x398B */ DEFINE_SFX(NA_SE_EN_FLAME_MAN_SURP, 0x30, 0, 0, SFX_FLAG_13) -/* 0x398C */ DEFINE_SFX(NA_SE_EN_SHADEST_LAST, 0x30, 3, 0, 0) -/* 0x398D */ DEFINE_SFX(NA_SE_EN_SHADEST_MOVE, 0x30, 2, 0, 0) -/* 0x398E */ DEFINE_SFX(NA_SE_EN_SHADEST_PRAY, 0x30, 3, 0, 0) -/* 0x398F */ DEFINE_SFX(NA_SE_EN_MGANON_ROAR, 0x30, 3, 0, 0) -/* 0x3990 */ DEFINE_SFX(NA_SE_EN_LIKE_WALK, 0x18, 0, 0, 0) -/* 0x3991 */ DEFINE_SFX(NA_SE_EN_LIKE_UNARI, 0x28, 0, 0, 0) -/* 0x3992 */ DEFINE_SFX(NA_SE_EN_LIKE_DRINK, 0x34, 0, 0, 0) -/* 0x3993 */ DEFINE_SFX(NA_SE_EN_LIKE_EAT, 0x34, 0, 0, 0) -/* 0x3994 */ DEFINE_SFX(NA_SE_EN_LIKE_THROW, 0x34, 0, 0, 0) -/* 0x3995 */ DEFINE_SFX(NA_SE_EN_LIKE_DAMAGE, 0x38, 1, 0, 0) -/* 0x3996 */ DEFINE_SFX(NA_SE_EN_LIKE_DEAD, 0x40, 1, 0, 0) -/* 0x3997 */ DEFINE_SFX(NA_SE_EN_MGANON_SWORD, 0x30, 3, 0, 0) -/* 0x3998 */ DEFINE_SFX(NA_SE_EN_GERUDOFT_ATTACK, 0x30, 0, 0, 0) -/* 0x3999 */ DEFINE_SFX(NA_SE_EN_GERUDOFT_DAMAGE, 0x38, 1, 0, 0) -/* 0x399A */ DEFINE_SFX(NA_SE_EN_GERUDOFT_DEAD, 0x40, 1, 0, 0) -/* 0x399B */ DEFINE_SFX(NA_SE_EN_MGANON_DAMAGE, 0x38, 3, 0, 0) -/* 0x399C */ DEFINE_SFX(NA_SE_EN_ANUBIS_FIRE, 0x30, 0, 0, 0) -/* 0x399D */ DEFINE_SFX(NA_SE_EN_ANUBIS_FIREBOMB, 0x30, 0, 0, 0) -/* 0x399E */ DEFINE_SFX(NA_SE_EN_MGANON_DEAD1, 0x40, 3, 0, 0) -/* 0x399F */ DEFINE_SFX(NA_SE_EN_ANUBIS_DEAD, 0x40, 2, 0, 0) -/* 0x39A0 */ DEFINE_SFX(NA_SE_EN_MUSI_LAND, 0x18, 0, 0, 0) -/* 0x39A1 */ DEFINE_SFX(NA_SE_EN_MGANON_DEAD2, 0x44, 3, 0, 0) -/* 0x39A2 */ DEFINE_SFX(NA_SE_EN_EIER_ATTACK, 0x34, 0, 0, 0) -/* 0x39A3 */ DEFINE_SFX(NA_SE_EN_EIER_CRY, 0x18, 0, 0, 0) -/* 0x39A4 */ DEFINE_SFX(NA_SE_EN_FREEZAD_BREATH, 0x30, 0, 0, 0) -/* 0x39A5 */ DEFINE_SFX(NA_SE_EN_FREEZAD_DAMAGE, 0x38, 1, 0, 0) -/* 0x39A6 */ DEFINE_SFX(NA_SE_EN_FREEZAD_DEAD, 0x40, 1, 0, 0) -/* 0x39A7 */ DEFINE_SFX(NA_SE_EN_DEADHAND_LAUGH, 0x18, 3, 0, 0) -/* 0x39A8 */ DEFINE_SFX(NA_SE_EN_DEADHAND_HIDE, 0x30, 3, 0, 0) -/* 0x39A9 */ DEFINE_SFX(NA_SE_EN_DEADHAND_DAMAGE, 0x38, 3, 0, 0) -/* 0x39AA */ DEFINE_SFX(NA_SE_EN_DEADHAND_HAND_DEAD, 0x38, 3, 0, 0) -/* 0x39AB */ DEFINE_SFX(NA_SE_EN_DEADHAND_DEAD, 0x40, 3, 0, 0) -/* 0x39AC */ DEFINE_SFX(NA_SE_EN_IRONNACK_BREAK_PILLAR2, 0x30, 3, 0, 0) -/* 0x39AD */ DEFINE_SFX(NA_SE_EN_IRONNACK_BREAK_PILLAR, 0x36, 3, 0, 0) -/* 0x39AE */ DEFINE_SFX(NA_SE_EN_IRONNACK_HIT_GND, 0x34, 3, 0, 0) -/* 0x39AF */ DEFINE_SFX(NA_SE_EN_MGANON_BREATH, 0x28, 2, 2, 0) -/* 0x39B0 */ DEFINE_SFX(NA_SE_EN_TWINROBA_LAUGH, 0x30, 3, 0, 0) -/* 0x39B1 */ DEFINE_SFX(NA_SE_EN_TWINROBA_LAUGH2, 0x30, 3, 0, 0) -/* 0x39B2 */ DEFINE_SFX(NA_SE_EN_DUMMY434, 0x30, 0, 0, 0) -/* 0x39B3 */ DEFINE_SFX(NA_SE_EN_TWINROBA_SHOOT_VOICE, 0x30, 3, 0, 0) -/* 0x39B4 */ DEFINE_SFX(NA_SE_EN_TWINROBA_SENSE, 0x30, 3, 0, 0) -/* 0x39B5 */ DEFINE_SFX(NA_SE_EN_TWINROBA_DIE, 0x30, 3, 0, 0) -/* 0x39B6 */ DEFINE_SFX(NA_SE_EN_DUMMY438, 0x30, 0, 0, 0) -/* 0x39B7 */ DEFINE_SFX(NA_SE_EN_TWINROBA_YOUNG_DAMAGE2, 0x30, 0, 0, SFX_FLAG_13) -/* 0x39B8 */ DEFINE_SFX(NA_SE_EN_TWINROBA_YOUNG_SHOOTVC, 0x30, 0, 0, SFX_FLAG_13) -/* 0x39B9 */ DEFINE_SFX(NA_SE_EN_TWINROBA_YOUNG_LAUGH, 0x30, 0, 0, SFX_FLAG_13) -/* 0x39BA */ DEFINE_SFX(NA_SE_EN_DUMMY442, 0x30, 0, 0, 0) -/* 0x39BB */ DEFINE_SFX(NA_SE_EN_TWINROBA_YOUNG_WINK, 0x30, 0, 0, SFX_FLAG_13) -/* 0x39BC */ DEFINE_SFX(NA_SE_EN_DUMMY444, 0x30, 0, 0, 0) -/* 0x39BD */ DEFINE_SFX(NA_SE_EN_DUMMY445, 0x30, 0, 0, 0) -/* 0x39BE */ DEFINE_SFX(NA_SE_EN_IRONNACK_DAMAGE, 0x28, 3, 0, 0) -/* 0x39BF */ DEFINE_SFX(NA_SE_EN_IRONNACK_DASH, 0x30, 3, 0, 0) -/* 0x39C0 */ DEFINE_SFX(NA_SE_EN_IRONNACK_DEAD, 0x40, 3, 0, 0) -/* 0x39C1 */ DEFINE_SFX(NA_SE_EN_IRONNACK_PULLOUT, 0x30, 3, 0, 0) -/* 0x39C2 */ DEFINE_SFX(NA_SE_EN_IRONNACK_WAKEUP, 0x30, 3, 0, 0) -/* 0x39C3 */ DEFINE_SFX(NA_SE_EN_DUMMY451, 0x30, 0, 0, 0) -/* 0x39C4 */ DEFINE_SFX(NA_SE_EN_DUMMY452, 0x30, 0, 0, 0) -/* 0x39C5 */ DEFINE_SFX(NA_SE_EN_DUMMY453, 0x30, 0, 0, 0) -/* 0x39C6 */ DEFINE_SFX(NA_SE_EN_GERUDOFT_BREATH, 0x20, 0, 0, 0) -/* 0x39C7 */ DEFINE_SFX(NA_SE_EN_GANON_LAUGH, 0x20, 3, 0, 0) -/* 0x39C8 */ DEFINE_SFX(NA_SE_EN_GANON_VOICE_DEMO, 0x30, 3, 0, 0) -/* 0x39C9 */ DEFINE_SFX(NA_SE_EN_GANON_THROW, 0x30, 3, 0, 0) -/* 0x39CA */ DEFINE_SFX(NA_SE_EN_GANON_AT_RETURN, 0x30, 3, 0, 0) -/* 0x39CB */ DEFINE_SFX(NA_SE_EN_GANON_HIT_GND, 0x30, 3, 0, 0) -/* 0x39CC */ DEFINE_SFX(NA_SE_EN_GANON_DAMAGE1, 0x38, 3, 0, 0) -/* 0x39CD */ DEFINE_SFX(NA_SE_EN_GANON_DAMAGE2, 0x38, 3, 0, 0) -/* 0x39CE */ DEFINE_SFX(NA_SE_EN_GANON_DOWN, 0x20, 3, 0, 0) -/* 0x39CF */ DEFINE_SFX(NA_SE_EN_GANON_RESTORE, 0x30, 3, 0, 0) -/* 0x39D0 */ DEFINE_SFX(NA_SE_EN_GANON_DEAD, 0x44, 3, 0, 0) -/* 0x39D1 */ DEFINE_SFX(NA_SE_EN_GANON_BREATH, 0x30, 3, 2, 0) -/* 0x39D2 */ DEFINE_SFX(NA_SE_EN_GANON_TOKETU, 0x30, 3, 0, 0) -/* 0x39D3 */ DEFINE_SFX(NA_SE_EN_GANON_CASBREAK, 0x30, 3, 0, 0) -/* 0x39D4 */ DEFINE_SFX(NA_SE_EN_GANON_BIGMASIC, 0x34, 3, 0, 0) -/* 0x39D5 */ DEFINE_SFX(NA_SE_EN_GANON_DARKWAVE, 0x30, 3, 0, 0) -/* 0x39D6 */ DEFINE_SFX(NA_SE_EN_FANTOM_ST_LAUGH, 0x30, 3, 0, 0) -/* 0x39D7 */ DEFINE_SFX(NA_SE_EN_MGANON_WALK, 0x20, 2, 0, 0) -/* 0x39D8 */ DEFINE_SFX(NA_SE_EN_MGANON_STAND, 0x30, 3, 0, 0) -/* 0x39D9 */ DEFINE_SFX(NA_SE_EN_MGANON_UNARI, 0x20, 3, 0, 0) -/* 0x39DA */ DEFINE_SFX(NA_SE_EN_STALGOLD_ROLL, 0x30, 0, 0, 0) -/* 0x39DB */ DEFINE_SFX(NA_SE_EN_KDOOR_WAVE, 0x30, 2, 0, 0) -/* 0x39DC */ DEFINE_SFX(NA_SE_EN_KDOOR_HIT, 0x40, 2, 0, 0) -/* 0x39DD */ DEFINE_SFX(NA_SE_EN_KDOOR_BREAK, 0x40, 3, 0, 0) -/* 0x39DE */ DEFINE_SFX(NA_SE_EN_KDOOR_HIT_GND, 0x34, 2, 0, 0) -/* 0x39DF */ DEFINE_SFX(NA_SE_EN_MGANON_SWDIMP, 0x30, 3, 0, 0) -/* 0x39E0 */ DEFINE_SFX(NA_SE_EN_STALTU_WAVE, 0x30, 0, 0, 0) -/* 0x39E1 */ DEFINE_SFX(NA_SE_EN_STALTU_DOWN_SET, 0x30, 0, 0, 0) -/* 0x39E2 */ DEFINE_SFX(NA_SE_EN_DUMMY482, 0x30, 1, 0, 0) -/* 0x39E3 */ DEFINE_SFX(NA_SE_EN_GOMA_BJR_LAND, 0x34, 3, 0, 0) -/* 0x39E4 */ DEFINE_SFX(NA_SE_EN_GOMA_BJR_LAND2, 0x24, 3, 0, 0) -/* 0x39E5 */ DEFINE_SFX(NA_SE_EN_GOMA_JR_LAND, 0x34, 1, 0, 0) -/* 0x39E6 */ DEFINE_SFX(NA_SE_EN_GOMA_JR_LAND2, 0x20, 0, 0, 0) -/* 0x39E7 */ DEFINE_SFX(NA_SE_EN_TWINROBA_FIGHT, 0x30, 3, 0, 0) -/* 0x39E8 */ DEFINE_SFX(NA_SE_EN_PO_BIG_CRY, 0x30, 0, 0, 0) -/* 0x39E9 */ DEFINE_SFX(NA_SE_EN_MUSI_SINK, 0x08, 1, 0, 0) -/* 0x39EA */ DEFINE_SFX(NA_SE_EN_STALGOLD_UP_CRY, 0x30, 1, 0, 0) -/* 0x39EB */ DEFINE_SFX(NA_SE_EN_GOLON_CRY, 0x30, 3, 0, 0) -/* 0x39EC */ DEFINE_SFX(NA_SE_EN_MOFER_CORE_DAMAGE, 0x38, 3, 0, 0) -/* 0x39ED */ DEFINE_SFX(NA_SE_EN_DAIOCTA_LAND_WATER, 0x20, 0, 0, SFX_FLAG_13) -/* 0x39EE */ DEFINE_SFX(NA_SE_EN_RIVA_BIG_APPEAR, 0x34, 3, 0, 0) -/* 0x39EF */ DEFINE_SFX(NA_SE_EN_MONBLIN_HAM_LAND, 0x34, 0, 0, SFX_FLAG_13) -/* 0x39F0 */ DEFINE_SFX(NA_SE_EN_MUSI_WALK, 0x08, 0, 0, 0) -/* 0x39F1 */ DEFINE_SFX(NA_SE_EN_MIMICK_BREATH, 0x40, 3, 0, 0) -/* 0x39F2 */ DEFINE_SFX(NA_SE_EN_STALWALL_LAUGH, 0x34, 3, 0, 0) +/* 0x3946 */ DEFINE_SFX(CHAN_425D, NA_SE_EN_BALINADE_HIT_RINK, 0x38, 3, 0, 0) +/* 0x3947 */ DEFINE_SFX(CHAN_3AF4, NA_SE_EN_GANON_WAVE_GND, 0x20, 3, 0, 0) +/* 0x3948 */ DEFINE_SFX(CHAN_4F03, NA_SE_EN_AWA_BOUND, 0x14, 0, 0, 0) +/* 0x3949 */ DEFINE_SFX(CHAN_4EE0, NA_SE_EN_AWA_BREAK, 0x20, 1, 0, 0) +/* 0x394A */ DEFINE_SFX(CHAN_503D, NA_SE_EN_BROB_WAVE, 0x30, 3, 0, 0) +/* 0x394B */ DEFINE_SFX(CHAN_43F8, NA_SE_EN_NYU_DEAD, 0x40, 1, 0, 0) +/* 0x394C */ DEFINE_SFX(CHAN_3F9A, NA_SE_EN_EIER_DAMAGE, 0x38, 1, 0, 0) +/* 0x394D */ DEFINE_SFX(CHAN_3FAC, NA_SE_EN_EIER_DEAD, 0x40, 1, 0, 0) +/* 0x394E */ DEFINE_SFX(CHAN_4F17, NA_SE_EN_EIER_FLUTTER, 0x20, 0, 0, 0) +/* 0x394F */ DEFINE_SFX(CHAN_4F28, NA_SE_EN_EIER_FLY, 0x20, 0, 0, 0) +/* 0x3950 */ DEFINE_SFX(CHAN_4F5D, NA_SE_EN_SHADEST_TAIKO_LOW, 0x30, 3, 0, 0) +/* 0x3951 */ DEFINE_SFX(CHAN_4F6E, NA_SE_EN_SHADEST_TAIKO_HIGH, 0x30, 3, 0, 0) +/* 0x3952 */ DEFINE_SFX(CHAN_5055, NA_SE_EN_SHADEST_CLAP, 0x30, 3, 0, 0) +/* 0x3953 */ DEFINE_SFX(CHAN_4EBC, NA_SE_EN_SHADEST_FLY_ATTACK, 0x30, 3, 0, 0) +/* 0x3954 */ DEFINE_SFX(CHAN_4FB5, NA_SE_EN_PIHAT_UP, 0x28, 2, 0, 0) +/* 0x3955 */ DEFINE_SFX(CHAN_4F92, NA_SE_EN_PIHAT_FLY, 0x30, 0, 0, 0) +/* 0x3956 */ DEFINE_SFX(CHAN_4FC3, NA_SE_EN_PIHAT_DAMAGE, 0x38, 1, 0, 0) +/* 0x3957 */ DEFINE_SFX(CHAN_4FAF, NA_SE_EN_PIHAT_LAND, 0x28, 2, 0, 0) +/* 0x3958 */ DEFINE_SFX(CHAN_4EBC, NA_SE_EN_BALINADE_HAND_DOWN, 0x30, 3, 0, 0) +/* 0x3959 */ DEFINE_SFX(CHAN_4ECE, NA_SE_EN_BALINADE_HAND_UP, 0x30, 3, 0, 0) +/* 0x395A */ DEFINE_SFX(CHAN_4FC3, NA_SE_EN_BALINADE_HAND_DAMAGE, 0x38, 3, 0, 0) +/* 0x395B */ DEFINE_SFX(CHAN_4E0E, NA_SE_EN_BALINADE_HAND_DEAD, 0x40, 3, 0, 0) +/* 0x395C */ DEFINE_SFX(CHAN_3697, NA_SE_EN_GOMA_JR_WALK, 0x14, 0, 0, 0) +/* 0x395D */ DEFINE_SFX(CHAN_36A5, NA_SE_EN_GOMA_JR_CRY, 0x30, 0, 0, 0) +/* 0x395E */ DEFINE_SFX(CHAN_36B3, NA_SE_EN_GOMA_JR_DAM1, 0x38, 1, 0, 0) +/* 0x395F */ DEFINE_SFX(CHAN_36D2, NA_SE_EN_GOMA_JR_DAM2, 0x30, 1, 0, 0) +/* 0x3960 */ DEFINE_SFX(CHAN_36F9, NA_SE_EN_GOMA_JR_DEAD, 0x40, 1, 0, 0) +/* 0x3961 */ DEFINE_SFX(CHAN_3767, NA_SE_EN_GOMA_EGG1, 0x28, 0, 0, 0) +/* 0x3962 */ DEFINE_SFX(CHAN_35DF, NA_SE_EN_GOMA_EGG2, 0x28, 0, 0, 0) +/* 0x3963 */ DEFINE_SFX(CHAN_417E, NA_SE_EN_GANON_BODY_SPARK, 0x30, 2, 0, 0) +/* 0x3964 */ DEFINE_SFX(CHAN_5064, NA_SE_EN_SHADEST_HAND_WAVE, 0x30, 3, 0, 0) +/* 0x3965 */ DEFINE_SFX(CHAN_5089, NA_SE_EN_SHADEST_CATCH, 0x30, 3, 0, 0) +/* 0x3966 */ DEFINE_SFX(CHAN_3612, NA_SE_EN_SHADEST_LAND, 0x30, 3, 0, 0) +/* 0x3967 */ DEFINE_SFX(CHAN_5072, NA_SE_EN_SHADEST_HAND_FLY, 0x30, 3, 0, 0) +/* 0x3968 */ DEFINE_SFX(CHAN_50B1, NA_SE_EN_SHADEST_SHAKEHAND, 0x30, 0, 0, SFX_FLAG_13) +/* 0x3969 */ DEFINE_SFX(CHAN_50C2, NA_SE_EN_SHADEST_DAMAGE, 0x38, 3, 0, 0) +/* 0x396A */ DEFINE_SFX(CHAN_50E1, NA_SE_EN_SHADEST_DAMAGE_HAND, 0x38, 3, 0, 0) +/* 0x396B */ DEFINE_SFX(CHAN_50E9, NA_SE_EN_SHADEST_DISAPPEAR, 0x30, 3, 0, 0) +/* 0x396C */ DEFINE_SFX(CHAN_4A65, NA_SE_EN_GANON_CHARGE_MASIC, 0x30, 3, 0, 0) +/* 0x396D */ DEFINE_SFX(CHAN_4EA8, NA_SE_EN_GANON_THROW_BIG, 0x34, 3, 0, 0) +/* 0x396E */ DEFINE_SFX(CHAN_5259, NA_SE_EN_SHADEST_FREEZE, 0x38, 3, 0, 0) +/* 0x396F */ DEFINE_SFX(CHAN_5264, NA_SE_EN_SHADEST_DEAD, 0x40, 3, 0, 0) +/* 0x3970 */ DEFINE_SFX(CHAN_5111, NA_SE_EN_BIMOS_ROLL_HEAD, 0x10, 0, 0, 0) +/* 0x3971 */ DEFINE_SFX(CHAN_5101, NA_SE_EN_BIMOS_LAZER, 0x34, 0, 0, 0) +/* 0x3972 */ DEFINE_SFX(CHAN_5121, NA_SE_EN_BIMOS_LAZER_GND, 0x18, 0, 0, 0) +/* 0x3973 */ DEFINE_SFX(CHAN_512D, NA_SE_EN_BIMOS_AIM, 0x30, 0, 0, 0) +/* 0x3974 */ DEFINE_SFX(CHAN_514F, NA_SE_EN_BUBLEWALK_WALK, 0x14, 0, 0, 0) +/* 0x3975 */ DEFINE_SFX(CHAN_5164, NA_SE_EN_BUBLEWALK_AIM, 0x34, 0, 0, 0) +/* 0x3976 */ DEFINE_SFX(CHAN_5135, NA_SE_EN_BUBLEWALK_REVERSE, 0x28, 1, 0, 0) +/* 0x3977 */ DEFINE_SFX(CHAN_419C, NA_SE_EN_BUBLEWALK_DAMAGE, 0x38, 1, 0, 0) +/* 0x3978 */ DEFINE_SFX(CHAN_517A, NA_SE_EN_BUBLEWALK_DEAD, 0x40, 1, 0, 0) +/* 0x3979 */ DEFINE_SFX(CHAN_5196, NA_SE_EN_YUKABYUN_FLY, 0x30, 0, 0, 0) +/* 0x397A */ DEFINE_SFX(CHAN_5204, NA_SE_EN_FLAME_DAMAGE, 0x38, 3, 0, 0) +/* 0x397B */ DEFINE_SFX(CHAN_4FE8, NA_SE_EN_TWINROBA_FLY_DEMO, 0x20, 0, 0, 0) +/* 0x397C */ DEFINE_SFX(CHAN_51BA, NA_SE_EN_FLAME_KICK, 0x20, 2, 0, 0) +/* 0x397D */ DEFINE_SFX(CHAN_522F, NA_SE_EN_FLAME_RUN, 0x30, 2, 0, 0) +/* 0x397E */ DEFINE_SFX(CHAN_51C4, NA_SE_EN_FLAME_ROLL, 0x30, 3, 0, 0) +/* 0x397F */ DEFINE_SFX(CHAN_51DD, NA_SE_EN_FLAME_MAN_RUN, 0x30, 3, 0, 0) +/* 0x3980 */ DEFINE_SFX(CHAN_51EB, NA_SE_EN_FLAME_MAN_DAMAGE, 0x38, 3, 0, 0) +/* 0x3981 */ DEFINE_SFX(CHAN_5208, NA_SE_EN_FLAME_LAUGH, 0x30, 3, 0, 0) +/* 0x3982 */ DEFINE_SFX(CHAN_3BF3, NA_SE_EN_FLAME_MAN_SLIDE, 0x20, 0, 0, SFX_FLAG_13) +/* 0x3983 */ DEFINE_SFX(CHAN_4593, NA_SE_EN_FLAME_FIRE_ATTACK, 0x30, 3, 0, 0) +/* 0x3984 */ DEFINE_SFX(CHAN_5242, NA_SE_EN_PIHAT_SM_FLY, 0x30, 0, 0, 0) +/* 0x3985 */ DEFINE_SFX(CHAN_3C04, NA_SE_EN_PIHAT_SM_DEAD, 0x40, 1, 0, 0) +/* 0x3986 */ DEFINE_SFX(CHAN_38BA, NA_SE_EN_RIVA_APPEAR, 0x30, 0, 0, 0) +/* 0x3987 */ DEFINE_SFX(CHAN_38AF, NA_SE_EN_AKINDONUTS_HIDE, 0x20, 0, 0, 0) +/* 0x3988 */ DEFINE_SFX(CHAN_381C, NA_SE_EN_RIVA_DAMAGE, 0x38, 1, 0, 0) +/* 0x3989 */ DEFINE_SFX(CHAN_52E7, NA_SE_EN_RIVA_DEAD, 0x40, 1, 0, 0) +/* 0x398A */ DEFINE_SFX(CHAN_503D, NA_SE_EN_RIVA_MOVE, 0x30, 0, 0, 0) +/* 0x398B */ DEFINE_SFX(CHAN_39A9, NA_SE_EN_FLAME_MAN_SURP, 0x30, 0, 0, SFX_FLAG_13) +/* 0x398C */ DEFINE_SFX(CHAN_528C, NA_SE_EN_SHADEST_LAST, 0x30, 3, 0, 0) +/* 0x398D */ DEFINE_SFX(CHAN_52AC, NA_SE_EN_SHADEST_MOVE, 0x30, 2, 0, 0) +/* 0x398E */ DEFINE_SFX(CHAN_52CC, NA_SE_EN_SHADEST_PRAY, 0x30, 3, 0, 0) +/* 0x398F */ DEFINE_SFX(CHAN_44FE, NA_SE_EN_MGANON_ROAR, 0x30, 3, 0, 0) +/* 0x3990 */ DEFINE_SFX(CHAN_514F, NA_SE_EN_LIKE_WALK, 0x18, 0, 0, 0) +/* 0x3991 */ DEFINE_SFX(CHAN_46C7, NA_SE_EN_LIKE_UNARI, 0x28, 0, 0, 0) +/* 0x3992 */ DEFINE_SFX(CHAN_3B23, NA_SE_EN_LIKE_DRINK, 0x34, 0, 0, 0) +/* 0x3993 */ DEFINE_SFX(CHAN_3D68, NA_SE_EN_LIKE_EAT, 0x34, 0, 0, 0) +/* 0x3994 */ DEFINE_SFX(CHAN_3EF5, NA_SE_EN_LIKE_THROW, 0x34, 0, 0, 0) +/* 0x3995 */ DEFINE_SFX(CHAN_381C, NA_SE_EN_LIKE_DAMAGE, 0x38, 1, 0, 0) +/* 0x3996 */ DEFINE_SFX(CHAN_52D9, NA_SE_EN_LIKE_DEAD, 0x40, 1, 0, 0) +/* 0x3997 */ DEFINE_SFX(CHAN_53DD, NA_SE_EN_MGANON_SWORD, 0x30, 3, 0, 0) +/* 0x3998 */ DEFINE_SFX(CHAN_52F5, NA_SE_EN_GERUDOFT_ATTACK, 0x30, 0, 0, 0) +/* 0x3999 */ DEFINE_SFX(CHAN_5302, NA_SE_EN_GERUDOFT_DAMAGE, 0x38, 1, 0, 0) +/* 0x399A */ DEFINE_SFX(CHAN_530F, NA_SE_EN_GERUDOFT_DEAD, 0x40, 1, 0, 0) +/* 0x399B */ DEFINE_SFX(CHAN_4576, NA_SE_EN_MGANON_DAMAGE, 0x38, 3, 0, 0) +/* 0x399C */ DEFINE_SFX(CHAN_355F, NA_SE_EN_ANUBIS_FIRE, 0x30, 0, 0, 0) +/* 0x399D */ DEFINE_SFX(CHAN_534B, NA_SE_EN_ANUBIS_FIREBOMB, 0x30, 0, 0, 0) +/* 0x399E */ DEFINE_SFX(CHAN_550D, NA_SE_EN_MGANON_DEAD1, 0x40, 3, 0, 0) +/* 0x399F */ DEFINE_SFX(CHAN_532A, NA_SE_EN_ANUBIS_DEAD, 0x40, 2, 0, 0) +/* 0x39A0 */ DEFINE_SFX(CHAN_531C, NA_SE_EN_MUSI_LAND, 0x18, 0, 0, 0) +/* 0x39A1 */ DEFINE_SFX(CHAN_54B4, NA_SE_EN_MGANON_DEAD2, 0x44, 3, 0, 0) +/* 0x39A2 */ DEFINE_SFX(CHAN_4F3C, NA_SE_EN_EIER_ATTACK, 0x34, 0, 0, 0) +/* 0x39A3 */ DEFINE_SFX(CHAN_4F4E, NA_SE_EN_EIER_CRY, 0x18, 0, 0, 0) +/* 0x39A4 */ DEFINE_SFX(CHAN_4A22, NA_SE_EN_FREEZAD_BREATH, 0x30, 0, 0, 0) +/* 0x39A5 */ DEFINE_SFX(CHAN_5375, NA_SE_EN_FREEZAD_DAMAGE, 0x38, 1, 0, 0) +/* 0x39A6 */ DEFINE_SFX(CHAN_537F, NA_SE_EN_FREEZAD_DEAD, 0x40, 1, 0, 0) +/* 0x39A7 */ DEFINE_SFX(CHAN_5397, NA_SE_EN_DEADHAND_LAUGH, 0x18, 3, 0, 0) +/* 0x39A8 */ DEFINE_SFX(CHAN_5389, NA_SE_EN_DEADHAND_HIDE, 0x30, 3, 0, 0) +/* 0x39A9 */ DEFINE_SFX(CHAN_4321, NA_SE_EN_DEADHAND_DAMAGE, 0x38, 3, 0, 0) +/* 0x39AA */ DEFINE_SFX(CHAN_3B8E, NA_SE_EN_DEADHAND_HAND_DEAD, 0x38, 3, 0, 0) +/* 0x39AB */ DEFINE_SFX(CHAN_4353, NA_SE_EN_DEADHAND_DEAD, 0x40, 3, 0, 0) +/* 0x39AC */ DEFINE_SFX(CHAN_53D2, NA_SE_EN_IRONNACK_BREAK_PILLAR2, 0x30, 3, 0, 0) +/* 0x39AD */ DEFINE_SFX(CHAN_53B9, NA_SE_EN_IRONNACK_BREAK_PILLAR, 0x36, 3, 0, 0) +/* 0x39AE */ DEFINE_SFX(CHAN_53D6, NA_SE_EN_IRONNACK_HIT_GND, 0x34, 3, 0, 0) +/* 0x39AF */ DEFINE_SFX(CHAN_5490, NA_SE_EN_MGANON_BREATH, 0x28, 2, 2, 0) +/* 0x39B0 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_TWINROBA_LAUGH, 0x30, 3, 0, 0) +/* 0x39B1 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_TWINROBA_LAUGH2, 0x30, 3, 0, 0) +/* 0x39B2 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_DUMMY434, 0x30, 0, 0, 0) +/* 0x39B3 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_TWINROBA_SHOOT_VOICE, 0x30, 3, 0, 0) +/* 0x39B4 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_TWINROBA_SENSE, 0x30, 3, 0, 0) +/* 0x39B5 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_TWINROBA_DIE, 0x30, 3, 0, 0) +/* 0x39B6 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_DUMMY438, 0x30, 0, 0, 0) +/* 0x39B7 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_TWINROBA_YOUNG_DAMAGE2, 0x30, 0, 0, SFX_FLAG_13) +/* 0x39B8 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_TWINROBA_YOUNG_SHOOTVC, 0x30, 0, 0, SFX_FLAG_13) +/* 0x39B9 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_TWINROBA_YOUNG_LAUGH, 0x30, 0, 0, SFX_FLAG_13) +/* 0x39BA */ DEFINE_SFX(CHAN_5403, NA_SE_EN_DUMMY442, 0x30, 0, 0, 0) +/* 0x39BB */ DEFINE_SFX(CHAN_5403, NA_SE_EN_TWINROBA_YOUNG_WINK, 0x30, 0, 0, SFX_FLAG_13) +/* 0x39BC */ DEFINE_SFX(CHAN_5403, NA_SE_EN_DUMMY444, 0x30, 0, 0, 0) +/* 0x39BD */ DEFINE_SFX(CHAN_5403, NA_SE_EN_DUMMY445, 0x30, 0, 0, 0) +/* 0x39BE */ DEFINE_SFX(CHAN_5403, NA_SE_EN_IRONNACK_DAMAGE, 0x28, 3, 0, 0) +/* 0x39BF */ DEFINE_SFX(CHAN_5403, NA_SE_EN_IRONNACK_DASH, 0x30, 3, 0, 0) +/* 0x39C0 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_IRONNACK_DEAD, 0x40, 3, 0, 0) +/* 0x39C1 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_IRONNACK_PULLOUT, 0x30, 3, 0, 0) +/* 0x39C2 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_IRONNACK_WAKEUP, 0x30, 3, 0, 0) +/* 0x39C3 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_DUMMY451, 0x30, 0, 0, 0) +/* 0x39C4 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_DUMMY452, 0x30, 0, 0, 0) +/* 0x39C5 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_DUMMY453, 0x30, 0, 0, 0) +/* 0x39C6 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GERUDOFT_BREATH, 0x20, 0, 0, 0) +/* 0x39C7 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_LAUGH, 0x20, 3, 0, 0) +/* 0x39C8 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_VOICE_DEMO, 0x30, 3, 0, 0) +/* 0x39C9 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_THROW, 0x30, 3, 0, 0) +/* 0x39CA */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_AT_RETURN, 0x30, 3, 0, 0) +/* 0x39CB */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_HIT_GND, 0x30, 3, 0, 0) +/* 0x39CC */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_DAMAGE1, 0x38, 3, 0, 0) +/* 0x39CD */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_DAMAGE2, 0x38, 3, 0, 0) +/* 0x39CE */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_DOWN, 0x20, 3, 0, 0) +/* 0x39CF */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_RESTORE, 0x30, 3, 0, 0) +/* 0x39D0 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_DEAD, 0x44, 3, 0, 0) +/* 0x39D1 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_BREATH, 0x30, 3, 2, 0) +/* 0x39D2 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_TOKETU, 0x30, 3, 0, 0) +/* 0x39D3 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_CASBREAK, 0x30, 3, 0, 0) +/* 0x39D4 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_BIGMASIC, 0x34, 3, 0, 0) +/* 0x39D5 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_GANON_DARKWAVE, 0x30, 3, 0, 0) +/* 0x39D6 */ DEFINE_SFX(CHAN_5403, NA_SE_EN_FANTOM_ST_LAUGH, 0x30, 3, 0, 0) +/* 0x39D7 */ DEFINE_SFX(CHAN_3612, NA_SE_EN_MGANON_WALK, 0x20, 2, 0, 0) +/* 0x39D8 */ DEFINE_SFX(CHAN_5389, NA_SE_EN_MGANON_STAND, 0x30, 3, 0, 0) +/* 0x39D9 */ DEFINE_SFX(CHAN_55FD, NA_SE_EN_MGANON_UNARI, 0x20, 3, 0, 0) +/* 0x39DA */ DEFINE_SFX(CHAN_5615, NA_SE_EN_STALGOLD_ROLL, 0x30, 0, 0, 0) +/* 0x39DB */ DEFINE_SFX(CHAN_503D, NA_SE_EN_KDOOR_WAVE, 0x30, 2, 0, 0) +/* 0x39DC */ DEFINE_SFX(CHAN_39FE, NA_SE_EN_KDOOR_HIT, 0x40, 2, 0, 0) +/* 0x39DD */ DEFINE_SFX(CHAN_53D2, NA_SE_EN_KDOOR_BREAK, 0x40, 3, 0, 0) +/* 0x39DE */ DEFINE_SFX(CHAN_39FE, NA_SE_EN_KDOOR_HIT_GND, 0x34, 2, 0, 0) +/* 0x39DF */ DEFINE_SFX(CHAN_563C, NA_SE_EN_MGANON_SWDIMP, 0x30, 3, 0, 0) +/* 0x39E0 */ DEFINE_SFX(CHAN_4EBC, NA_SE_EN_STALTU_WAVE, 0x30, 0, 0, 0) +/* 0x39E1 */ DEFINE_SFX(CHAN_564F, NA_SE_EN_STALTU_DOWN_SET, 0x30, 0, 0, 0) +/* 0x39E2 */ DEFINE_SFX(CHAN_4CA7, NA_SE_EN_DUMMY482, 0x30, 1, 0, 0) +/* 0x39E3 */ DEFINE_SFX(CHAN_3648, NA_SE_EN_GOMA_BJR_LAND, 0x34, 3, 0, 0) +/* 0x39E4 */ DEFINE_SFX(CHAN_38D1, NA_SE_EN_GOMA_BJR_LAND2, 0x24, 3, 0, 0) +/* 0x39E5 */ DEFINE_SFX(CHAN_3648, NA_SE_EN_GOMA_JR_LAND, 0x34, 1, 0, 0) +/* 0x39E6 */ DEFINE_SFX(CHAN_38D1, NA_SE_EN_GOMA_JR_LAND2, 0x20, 0, 0, 0) +/* 0x39E7 */ DEFINE_SFX(CHAN_5659, NA_SE_EN_TWINROBA_FIGHT, 0x30, 3, 0, 0) +/* 0x39E8 */ DEFINE_SFX(CHAN_567A, NA_SE_EN_PO_BIG_CRY, 0x30, 0, 0, 0) +/* 0x39E9 */ DEFINE_SFX(CHAN_388D, NA_SE_EN_MUSI_SINK, 0x08, 1, 0, 0) +/* 0x39EA */ DEFINE_SFX(CHAN_3FE8, NA_SE_EN_STALGOLD_UP_CRY, 0x30, 1, 0, 0) +/* 0x39EB */ DEFINE_SFX(CHAN_568E, NA_SE_EN_GOLON_CRY, 0x30, 3, 0, 0) +/* 0x39EC */ DEFINE_SFX(CHAN_381C, NA_SE_EN_MOFER_CORE_DAMAGE, 0x38, 3, 0, 0) +/* 0x39ED */ DEFINE_SFX(CHAN_43EA, NA_SE_EN_DAIOCTA_LAND_WATER, 0x20, 0, 0, SFX_FLAG_13) +/* 0x39EE */ DEFINE_SFX(CHAN_5389, NA_SE_EN_RIVA_BIG_APPEAR, 0x34, 3, 0, 0) +/* 0x39EF */ DEFINE_SFX(CHAN_3612, NA_SE_EN_MONBLIN_HAM_LAND, 0x34, 0, 0, SFX_FLAG_13) +/* 0x39F0 */ DEFINE_SFX(CHAN_3895, NA_SE_EN_MUSI_WALK, 0x08, 0, 0, 0) +/* 0x39F1 */ DEFINE_SFX(CHAN_4A22, NA_SE_EN_MIMICK_BREATH, 0x40, 3, 0, 0) +/* 0x39F2 */ DEFINE_SFX(CHAN_3C8C, NA_SE_EN_STALWALL_LAUGH, 0x34, 3, 0, 0) diff --git a/include/tables/sfx/environmentbank_table.h b/include/tables/sfx/environmentbank_table.h index 57d0f3ebd6..08bd08de7e 100644 --- a/include/tables/sfx/environmentbank_table.h +++ b/include/tables/sfx/environmentbank_table.h @@ -2,267 +2,266 @@ * Sfx Environment Bank * * DEFINE_SFX should be used for all sfx define in the environment bank from sequence 0 + * - Argument 0: Channel name for sequence 0 * - Argument 1: Enum value for this sfx * - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance * - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3) * - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3) * - Argument 5: Various flags to add properties to the sfx - * - * WARNING: entries must align with the table defined for the environment bank in sequence 0 */ -/* 0x2800 */ DEFINE_SFX(NA_SE_EV_DOOR_OPEN, 0x70, 0, 1, SFX_FLAG_10 | SFX_FLAG_9) -/* 0x2801 */ DEFINE_SFX(NA_SE_EV_DOOR_CLOSE, 0x80, 0, 1, 0) -/* 0x2802 */ DEFINE_SFX(NA_SE_EV_EXPLOSION, 0x30, 0, 0, 0) -/* 0x2803 */ DEFINE_SFX(NA_SE_EV_HORSE_WALK, 0x30, 0, 1, 0) -/* 0x2804 */ DEFINE_SFX(NA_SE_EV_HORSE_RUN, 0x30, 0, 1, 0) -/* 0x2805 */ DEFINE_SFX(NA_SE_EV_HORSE_NEIGH, 0x40, 0, 1, 0) -/* 0x2806 */ DEFINE_SFX(NA_SE_EV_RIVER_STREAM, 0x30, 0, 2, SFX_FLAG_10) -/* 0x2807 */ DEFINE_SFX(NA_SE_EV_WATER_WALL_BIG, 0x38, 2, 0, 0) -/* 0x2808 */ DEFINE_SFX(NA_SE_EV_OUT_OF_WATER, 0x30, 0, 1, 0) -/* 0x2809 */ DEFINE_SFX(NA_SE_EV_DIVE_WATER, 0x30, 0, 1, 0) -/* 0x280A */ DEFINE_SFX(NA_SE_EV_ROCK_SLIDE, 0x80, 2, 0, 0) -/* 0x280B */ DEFINE_SFX(NA_SE_EV_MAGMA_LEVEL, 0xA0, 3, 0, 0) -/* 0x280C */ DEFINE_SFX(NA_SE_EV_BRIDGE_OPEN, 0x30, 3, 0, 0) -/* 0x280D */ DEFINE_SFX(NA_SE_EV_BRIDGE_CLOSE, 0x30, 3, 0, 0) -/* 0x280E */ DEFINE_SFX(NA_SE_EV_BRIDGE_OPEN_STOP, 0x30, 3, 0, 0) -/* 0x280F */ DEFINE_SFX(NA_SE_EV_BRIDGE_CLOSE_STOP, 0x30, 3, 0, 0) -/* 0x2810 */ DEFINE_SFX(NA_SE_EV_WALL_BROKEN, 0x30, 2, 0, 0) -/* 0x2811 */ DEFINE_SFX(NA_SE_EV_CHICKEN_CRY_N, 0x30, 0, 1, 0) -/* 0x2812 */ DEFINE_SFX(NA_SE_EV_CHICKEN_CRY_A, 0x30, 0, 1, 0) -/* 0x2813 */ DEFINE_SFX(NA_SE_EV_CHICKEN_CRY_M, 0x30, 0, 0, 0) -/* 0x2814 */ DEFINE_SFX(NA_SE_EV_SLIDE_DOOR_OPEN, 0x60, 0, 0, 0) -/* 0x2815 */ DEFINE_SFX(NA_SE_EV_FOOT_SWITCH, 0x30, 3, 0, 0) -/* 0x2816 */ DEFINE_SFX(NA_SE_EV_HORSE_GROAN, 0x30, 0, 0, 0) -/* 0x2817 */ DEFINE_SFX(NA_SE_EV_BOMB_DROP_WATER, 0x30, 2, 2, 0) -/* 0x2818 */ DEFINE_SFX(NA_SE_EV_HORSE_JUMP, 0x30, 0, 0, 0) -/* 0x2819 */ DEFINE_SFX(NA_SE_EV_HORSE_LAND, 0x40, 0, 0, 0) -/* 0x281A */ DEFINE_SFX(NA_SE_EV_HORSE_SLIP, 0x38, 0, 0, 0) -/* 0x281B */ DEFINE_SFX(NA_SE_EV_FAIRY_DASH, 0x28, 0, 0, 0) -/* 0x281C */ DEFINE_SFX(NA_SE_EV_SLIDE_DOOR_CLOSE, 0x60, 0, 0, 0) -/* 0x281D */ DEFINE_SFX(NA_SE_EV_STONE_BOUND, 0x70, 3, 0, 0) -/* 0x281E */ DEFINE_SFX(NA_SE_EV_STONE_STATUE_OPEN, 0x30, 3, 0, 0) -/* 0x281F */ DEFINE_SFX(NA_SE_EV_TBOX_UNLOCK, 0x30, 0, 0, 0) -/* 0x2820 */ DEFINE_SFX(NA_SE_EV_TBOX_OPEN, 0x30, 0, 0, 0) -/* 0x2821 */ DEFINE_SFX(NA_SE_SY_TIMER, 0xA0, 0, 0, SFX_FLAG_13 | SFX_FLAG_3) +/* 0x2800 */ DEFINE_SFX(CHAN_18CA, NA_SE_EV_DOOR_OPEN, 0x70, 0, 1, SFX_FLAG_10 | SFX_FLAG_9) +/* 0x2801 */ DEFINE_SFX(CHAN_18D9, NA_SE_EV_DOOR_CLOSE, 0x80, 0, 1, 0) +/* 0x2802 */ DEFINE_SFX(CHAN_18E5, NA_SE_EV_EXPLOSION, 0x30, 0, 0, 0) +/* 0x2803 */ DEFINE_SFX(CHAN_18F6, NA_SE_EV_HORSE_WALK, 0x30, 0, 1, 0) +/* 0x2804 */ DEFINE_SFX(CHAN_1900, NA_SE_EV_HORSE_RUN, 0x30, 0, 1, 0) +/* 0x2805 */ DEFINE_SFX(CHAN_190A, NA_SE_EV_HORSE_NEIGH, 0x40, 0, 1, 0) +/* 0x2806 */ DEFINE_SFX(CHAN_1915, NA_SE_EV_RIVER_STREAM, 0x30, 0, 2, SFX_FLAG_10) +/* 0x2807 */ DEFINE_SFX(CHAN_1929, NA_SE_EV_WATER_WALL_BIG, 0x38, 2, 0, 0) +/* 0x2808 */ DEFINE_SFX(CHAN_1945, NA_SE_EV_OUT_OF_WATER, 0x30, 0, 1, 0) +/* 0x2809 */ DEFINE_SFX(CHAN_1959, NA_SE_EV_DIVE_WATER, 0x30, 0, 1, 0) +/* 0x280A */ DEFINE_SFX(CHAN_196B, NA_SE_EV_ROCK_SLIDE, 0x80, 2, 0, 0) +/* 0x280B */ DEFINE_SFX(CHAN_197E, NA_SE_EV_MAGMA_LEVEL, 0xA0, 3, 0, 0) +/* 0x280C */ DEFINE_SFX(CHAN_198F, NA_SE_EV_BRIDGE_OPEN, 0x30, 3, 0, 0) +/* 0x280D */ DEFINE_SFX(CHAN_19C3, NA_SE_EV_BRIDGE_CLOSE, 0x30, 3, 0, 0) +/* 0x280E */ DEFINE_SFX(CHAN_19F7, NA_SE_EV_BRIDGE_OPEN_STOP, 0x30, 3, 0, 0) +/* 0x280F */ DEFINE_SFX(CHAN_1A0E, NA_SE_EV_BRIDGE_CLOSE_STOP, 0x30, 3, 0, 0) +/* 0x2810 */ DEFINE_SFX(CHAN_1A25, NA_SE_EV_WALL_BROKEN, 0x30, 2, 0, 0) +/* 0x2811 */ DEFINE_SFX(CHAN_1A4C, NA_SE_EV_CHICKEN_CRY_N, 0x30, 0, 1, 0) +/* 0x2812 */ DEFINE_SFX(CHAN_1A5B, NA_SE_EV_CHICKEN_CRY_A, 0x30, 0, 1, 0) +/* 0x2813 */ DEFINE_SFX(CHAN_1A73, NA_SE_EV_CHICKEN_CRY_M, 0x30, 0, 0, 0) +/* 0x2814 */ DEFINE_SFX(CHAN_1A7E, NA_SE_EV_SLIDE_DOOR_OPEN, 0x60, 0, 0, 0) +/* 0x2815 */ DEFINE_SFX(CHAN_1A8F, NA_SE_EV_FOOT_SWITCH, 0x30, 3, 0, 0) +/* 0x2816 */ DEFINE_SFX(CHAN_1AB3, NA_SE_EV_HORSE_GROAN, 0x30, 0, 0, 0) +/* 0x2817 */ DEFINE_SFX(CHAN_1ACA, NA_SE_EV_BOMB_DROP_WATER, 0x30, 2, 2, 0) +/* 0x2818 */ DEFINE_SFX(CHAN_1AD6, NA_SE_EV_HORSE_JUMP, 0x30, 0, 0, 0) +/* 0x2819 */ DEFINE_SFX(CHAN_1AE3, NA_SE_EV_HORSE_LAND, 0x40, 0, 0, 0) +/* 0x281A */ DEFINE_SFX(CHAN_1AF0, NA_SE_EV_HORSE_SLIP, 0x38, 0, 0, 0) +/* 0x281B */ DEFINE_SFX(CHAN_1B01, NA_SE_EV_FAIRY_DASH, 0x28, 0, 0, 0) +/* 0x281C */ DEFINE_SFX(CHAN_1B14, NA_SE_EV_SLIDE_DOOR_CLOSE, 0x60, 0, 0, 0) +/* 0x281D */ DEFINE_SFX(CHAN_1B25, NA_SE_EV_STONE_BOUND, 0x70, 3, 0, 0) +/* 0x281E */ DEFINE_SFX(CHAN_1B47, NA_SE_EV_STONE_STATUE_OPEN, 0x30, 3, 0, 0) +/* 0x281F */ DEFINE_SFX(CHAN_1B61, NA_SE_EV_TBOX_UNLOCK, 0x30, 0, 0, 0) +/* 0x2820 */ DEFINE_SFX(CHAN_1B7D, NA_SE_EV_TBOX_OPEN, 0x30, 0, 0, 0) +/* 0x2821 */ DEFINE_SFX(CHAN_1B93, NA_SE_SY_TIMER, 0xA0, 0, 0, SFX_FLAG_13 | SFX_FLAG_3) #if PLATFORM_N64 -/* 0x2822 */ DEFINE_SFX(NA_SE_EV_FLAME_IGNITION, 0x2D, 2, 0, 0) +/* 0x2822 */ DEFINE_SFX(CHAN_1BE9, NA_SE_EV_FLAME_IGNITION, 0x2D, 2, 0, 0) #else -/* 0x2822 */ DEFINE_SFX(NA_SE_EV_FLAME_IGNITION, 0x20, 2, 0, 0) +/* 0x2822 */ DEFINE_SFX(CHAN_1BE9, NA_SE_EV_FLAME_IGNITION, 0x20, 2, 0, 0) #endif -/* 0x2823 */ DEFINE_SFX(NA_SE_EV_SPEAR_HIT, 0x30, 0, 0, 0) -/* 0x2824 */ DEFINE_SFX(NA_SE_EV_ELEVATOR_MOVE, 0x30, 0, 0, SFX_FLAG_11) -/* 0x2825 */ DEFINE_SFX(NA_SE_EV_WARP_HOLE, 0x30, 0, 0, SFX_FLAG_15 | SFX_FLAG_11) -/* 0x2826 */ DEFINE_SFX(NA_SE_EV_LINK_WARP, 0x30, 0, 0, SFX_FLAG_15) -/* 0x2827 */ DEFINE_SFX(NA_SE_EV_PILLAR_SINK, 0x30, 2, 0, 0) -/* 0x2828 */ DEFINE_SFX(NA_SE_EV_WATER_WALL, 0x30, 0, 0, 0) -/* 0x2829 */ DEFINE_SFX(NA_SE_EV_RIVER_STREAM_S, 0x30, 0, 0, 0) -/* 0x282A */ DEFINE_SFX(NA_SE_EV_RIVER_STREAM_F, 0x30, 0, 0, 0) -/* 0x282B */ DEFINE_SFX(NA_SE_EV_HORSE_LAND2, 0x30, 0, 0, 0) -/* 0x282C */ DEFINE_SFX(NA_SE_EV_HORSE_SANDDUST, 0x30, 0, 0, SFX_FLAG_10) -/* 0x282D */ DEFINE_SFX(NA_SE_EV_DUMMY45, 0x30, 0, 0, 0) -/* 0x282E */ DEFINE_SFX(NA_SE_EV_LIGHTNING, 0x30, 0, 0, 0) -/* 0x282F */ DEFINE_SFX(NA_SE_EV_BOMB_BOUND, 0x30, 0, 2, 0) -/* 0x2830 */ DEFINE_SFX(NA_SE_EV_WATERDROP, 0x60, 2, 1, 0) -/* 0x2831 */ DEFINE_SFX(NA_SE_EV_TORCH, 0x10, 0, 0, 0) -/* 0x2832 */ DEFINE_SFX(NA_SE_EV_MAGMA_LEVEL_M, 0xA0, 3, 0, 0) -/* 0x2833 */ DEFINE_SFX(NA_SE_EV_FIRE_PILLAR, 0x30, 0, 0, 0) -/* 0x2834 */ DEFINE_SFX(NA_SE_EV_FIRE_PLATE, 0x30, 0, 0, SFX_FLAG_4) -/* 0x2835 */ DEFINE_SFX(NA_SE_EV_BLOCK_BOUND, 0x30, 3, 0, 0) -/* 0x2836 */ DEFINE_SFX(NA_SE_EV_METALDOOR_SLIDE, 0x30, 0, 0, 0) -/* 0x2837 */ DEFINE_SFX(NA_SE_EV_METALDOOR_STOP, 0x30, 0, 0, 0) -/* 0x2838 */ DEFINE_SFX(NA_SE_EV_BLOCK_SHAKE, 0x30, 0, 0, 0) -/* 0x2839 */ DEFINE_SFX(NA_SE_EV_BOX_BREAK, 0x30, 2, 0, 0) -/* 0x283A */ DEFINE_SFX(NA_SE_EV_HAMMER_SWITCH, 0x30, 0, 0, 0) -/* 0x283B */ DEFINE_SFX(NA_SE_EV_MAGMA_LEVEL_L, 0xA0, 3, 0, 0) -/* 0x283C */ DEFINE_SFX(NA_SE_EV_SPEAR_FENCE, 0x30, 0, 0, 0) -/* 0x283D */ DEFINE_SFX(NA_SE_EV_GANON_HORSE_NEIGH, 0x30, 0, 0, SFX_FLAG_10) -/* 0x283E */ DEFINE_SFX(NA_SE_EV_GANON_HORSE_GROAN, 0x30, 0, 0, SFX_FLAG_10) -/* 0x283F */ DEFINE_SFX(NA_SE_EV_FANTOM_WARP_S, 0x70, 3, 0, SFX_FLAG_4) -/* 0x2840 */ DEFINE_SFX(NA_SE_EV_FANTOM_WARP_L, 0x60, 0, 0, SFX_FLAG_15) -/* 0x2841 */ DEFINE_SFX(NA_SE_EV_FOUNTAIN, 0x30, 0, 0, SFX_FLAG_15) -/* 0x2842 */ DEFINE_SFX(NA_SE_EV_KID_HORSE_WALK, 0x30, 0, 0, 0) -/* 0x2843 */ DEFINE_SFX(NA_SE_EV_KID_HORSE_RUN, 0x30, 0, 0, 0) -/* 0x2844 */ DEFINE_SFX(NA_SE_EV_KID_HORSE_NEIGH, 0x30, 0, 0, 0) -/* 0x2845 */ DEFINE_SFX(NA_SE_EV_KID_HORSE_GROAN, 0x30, 0, 0, 0) -/* 0x2846 */ DEFINE_SFX(NA_SE_EV_WHITE_OUT, 0x30, 3, 0, SFX_FLAG_13) -/* 0x2847 */ DEFINE_SFX(NA_SE_EV_LIGHT_GATHER, 0x30, 0, 0, 0) -/* 0x2848 */ DEFINE_SFX(NA_SE_EV_TREE_CUT, 0x30, 0, 0, 0) -/* 0x2849 */ DEFINE_SFX(NA_SE_EV_VOLCANO, 0x30, 0, 0, SFX_FLAG_13 | SFX_FLAG_4) -/* 0x284A */ DEFINE_SFX(NA_SE_EV_GUILLOTINE_UP, 0x30, 0, 0, 0) -/* 0x284B */ DEFINE_SFX(NA_SE_EV_GUILLOTINE_BOUND, 0x30, 0, 0, 0) -/* 0x284C */ DEFINE_SFX(NA_SE_EV_ROLLCUTTER_MOTOR, 0x30, 0, 0, 0) -/* 0x284D */ DEFINE_SFX(NA_SE_EV_CHINETRAP_DOWN, 0x30, 0, 0, 0) -/* 0x284E */ DEFINE_SFX(NA_SE_EV_PLANT_BROKEN, 0x30, 1, 0, 0) -/* 0x284F */ DEFINE_SFX(NA_SE_EV_SHIP_BELL, 0x30, 0, 0, 0) -/* 0x2850 */ DEFINE_SFX(NA_SE_EV_FLUTTER_FLAG, 0x30, 0, 0, 0) -/* 0x2851 */ DEFINE_SFX(NA_SE_EV_TRAP_BOUND, 0x40, 0, 0, 0) -/* 0x2852 */ DEFINE_SFX(NA_SE_EV_ROCK_BROKEN, 0x30, 2, 3, 0) -/* 0x2853 */ DEFINE_SFX(NA_SE_EV_FANTOM_WARP_S2, 0x70, 2, 0, 0) -/* 0x2854 */ DEFINE_SFX(NA_SE_EV_FANTOM_WARP_L2, 0x60, 2, 0, 0) -/* 0x2855 */ DEFINE_SFX(NA_SE_EV_COFFIN_CAP_OPEN, 0x30, 0, 0, 0) -/* 0x2856 */ DEFINE_SFX(NA_SE_EV_COFFIN_CAP_BOUND, 0x60, 1, 0, 0) -/* 0x2857 */ DEFINE_SFX(NA_SE_EV_WIND_TRAP, 0x30, 2, 0, 0) -/* 0x2858 */ DEFINE_SFX(NA_SE_EV_TRAP_OBJ_SLIDE, 0x30, 0, 0, 0) -/* 0x2859 */ DEFINE_SFX(NA_SE_EV_METALDOOR_OPEN, 0x90, 3, 0, 0) -/* 0x285A */ DEFINE_SFX(NA_SE_EV_METALDOOR_CLOSE, 0x90, 3, 0, 0) -/* 0x285B */ DEFINE_SFX(NA_SE_EV_BURN_OUT, 0x30, 0, 0, 0) -/* 0x285C */ DEFINE_SFX(NA_SE_EV_BLOCKSINK, 0x30, 2, 0, 0) -/* 0x285D */ DEFINE_SFX(NA_SE_EV_CROWD, 0x30, 0, 0, SFX_FLAG_13 | SFX_FLAG_12 | SFX_FLAG_11) -/* 0x285E */ DEFINE_SFX(NA_SE_EV_WATER_LEVEL_DOWN, 0x30, 0, 0, 0) +/* 0x2823 */ DEFINE_SFX(CHAN_1BF9, NA_SE_EV_SPEAR_HIT, 0x30, 0, 0, 0) +/* 0x2824 */ DEFINE_SFX(CHAN_1C14, NA_SE_EV_ELEVATOR_MOVE, 0x30, 0, 0, SFX_FLAG_11) +/* 0x2825 */ DEFINE_SFX(CHAN_1C2E, NA_SE_EV_WARP_HOLE, 0x30, 0, 0, SFX_FLAG_15 | SFX_FLAG_11) +/* 0x2826 */ DEFINE_SFX(CHAN_1C9E, NA_SE_EV_LINK_WARP, 0x30, 0, 0, SFX_FLAG_15) +/* 0x2827 */ DEFINE_SFX(CHAN_1CFE, NA_SE_EV_PILLAR_SINK, 0x30, 2, 0, 0) +/* 0x2828 */ DEFINE_SFX(CHAN_1D77, NA_SE_EV_WATER_WALL, 0x30, 0, 0, 0) +/* 0x2829 */ DEFINE_SFX(CHAN_1D8D, NA_SE_EV_RIVER_STREAM_S, 0x30, 0, 0, 0) +/* 0x282A */ DEFINE_SFX(CHAN_1DA1, NA_SE_EV_RIVER_STREAM_F, 0x30, 0, 0, 0) +/* 0x282B */ DEFINE_SFX(CHAN_1DB5, NA_SE_EV_HORSE_LAND2, 0x30, 0, 0, 0) +/* 0x282C */ DEFINE_SFX(CHAN_1DBF, NA_SE_EV_HORSE_SANDDUST, 0x30, 0, 0, SFX_FLAG_10) +/* 0x282D */ DEFINE_SFX(CHAN_1DD0, NA_SE_EV_DUMMY45, 0x30, 0, 0, 0) +/* 0x282E */ DEFINE_SFX(CHAN_1DEE, NA_SE_EV_LIGHTNING, 0x30, 0, 0, 0) +/* 0x282F */ DEFINE_SFX(CHAN_1E10, NA_SE_EV_BOMB_BOUND, 0x30, 0, 2, 0) +/* 0x2830 */ DEFINE_SFX(CHAN_1E26, NA_SE_EV_WATERDROP, 0x60, 2, 1, 0) +/* 0x2831 */ DEFINE_SFX(CHAN_1EAB, NA_SE_EV_TORCH, 0x10, 0, 0, 0) +/* 0x2832 */ DEFINE_SFX(CHAN_1EBA, NA_SE_EV_MAGMA_LEVEL_M, 0xA0, 3, 0, 0) +/* 0x2833 */ DEFINE_SFX(CHAN_1EEC, NA_SE_EV_FIRE_PILLAR, 0x30, 0, 0, 0) +/* 0x2834 */ DEFINE_SFX(CHAN_1EFF, NA_SE_EV_FIRE_PLATE, 0x30, 0, 0, SFX_FLAG_4) +/* 0x2835 */ DEFINE_SFX(CHAN_1F16, NA_SE_EV_BLOCK_BOUND, 0x30, 3, 0, 0) +/* 0x2836 */ DEFINE_SFX(CHAN_1F27, NA_SE_EV_METALDOOR_SLIDE, 0x30, 0, 0, 0) +/* 0x2837 */ DEFINE_SFX(CHAN_1F3D, NA_SE_EV_METALDOOR_STOP, 0x30, 0, 0, 0) +/* 0x2838 */ DEFINE_SFX(CHAN_1F4B, NA_SE_EV_BLOCK_SHAKE, 0x30, 0, 0, 0) +/* 0x2839 */ DEFINE_SFX(CHAN_1F65, NA_SE_EV_BOX_BREAK, 0x30, 2, 0, 0) +/* 0x283A */ DEFINE_SFX(CHAN_1F91, NA_SE_EV_HAMMER_SWITCH, 0x30, 0, 0, 0) +/* 0x283B */ DEFINE_SFX(CHAN_1FAB, NA_SE_EV_MAGMA_LEVEL_L, 0xA0, 3, 0, 0) +/* 0x283C */ DEFINE_SFX(CHAN_1FDD, NA_SE_EV_SPEAR_FENCE, 0x30, 0, 0, 0) +/* 0x283D */ DEFINE_SFX(CHAN_1FFD, NA_SE_EV_GANON_HORSE_NEIGH, 0x30, 0, 0, SFX_FLAG_10) +/* 0x283E */ DEFINE_SFX(CHAN_200F, NA_SE_EV_GANON_HORSE_GROAN, 0x30, 0, 0, SFX_FLAG_10) +/* 0x283F */ DEFINE_SFX(CHAN_2026, NA_SE_EV_FANTOM_WARP_S, 0x70, 3, 0, SFX_FLAG_4) +/* 0x2840 */ DEFINE_SFX(CHAN_207E, NA_SE_EV_FANTOM_WARP_L, 0x60, 0, 0, SFX_FLAG_15) +/* 0x2841 */ DEFINE_SFX(CHAN_20B5, NA_SE_EV_FOUNTAIN, 0x30, 0, 0, SFX_FLAG_15) +/* 0x2842 */ DEFINE_SFX(CHAN_20CB, NA_SE_EV_KID_HORSE_WALK, 0x30, 0, 0, 0) +/* 0x2843 */ DEFINE_SFX(CHAN_20D7, NA_SE_EV_KID_HORSE_RUN, 0x30, 0, 0, 0) +/* 0x2844 */ DEFINE_SFX(CHAN_20E1, NA_SE_EV_KID_HORSE_NEIGH, 0x30, 0, 0, 0) +/* 0x2845 */ DEFINE_SFX(CHAN_20EC, NA_SE_EV_KID_HORSE_GROAN, 0x30, 0, 0, 0) +/* 0x2846 */ DEFINE_SFX(CHAN_20F5, NA_SE_EV_WHITE_OUT, 0x30, 3, 0, SFX_FLAG_13) +/* 0x2847 */ DEFINE_SFX(CHAN_2118, NA_SE_EV_LIGHT_GATHER, 0x30, 0, 0, 0) +/* 0x2848 */ DEFINE_SFX(CHAN_2156, NA_SE_EV_TREE_CUT, 0x30, 0, 0, 0) +/* 0x2849 */ DEFINE_SFX(CHAN_2177, NA_SE_EV_VOLCANO, 0x30, 0, 0, SFX_FLAG_13 | SFX_FLAG_4) +/* 0x284A */ DEFINE_SFX(CHAN_21C0, NA_SE_EV_GUILLOTINE_UP, 0x30, 0, 0, 0) +/* 0x284B */ DEFINE_SFX(CHAN_21D7, NA_SE_EV_GUILLOTINE_BOUND, 0x30, 0, 0, 0) +/* 0x284C */ DEFINE_SFX(CHAN_21FC, NA_SE_EV_ROLLCUTTER_MOTOR, 0x30, 0, 0, 0) +/* 0x284D */ DEFINE_SFX(CHAN_220D, NA_SE_EV_CHINETRAP_DOWN, 0x30, 0, 0, 0) +/* 0x284E */ DEFINE_SFX(CHAN_2225, NA_SE_EV_PLANT_BROKEN, 0x30, 1, 0, 0) +/* 0x284F */ DEFINE_SFX(CHAN_2240, NA_SE_EV_SHIP_BELL, 0x30, 0, 0, 0) +/* 0x2850 */ DEFINE_SFX(CHAN_2261, NA_SE_EV_FLUTTER_FLAG, 0x30, 0, 0, 0) +/* 0x2851 */ DEFINE_SFX(CHAN_229D, NA_SE_EV_TRAP_BOUND, 0x40, 0, 0, 0) +/* 0x2852 */ DEFINE_SFX(CHAN_22A4, NA_SE_EV_ROCK_BROKEN, 0x30, 2, 3, 0) +/* 0x2853 */ DEFINE_SFX(CHAN_22BC, NA_SE_EV_FANTOM_WARP_S2, 0x70, 2, 0, 0) +/* 0x2854 */ DEFINE_SFX(CHAN_22D0, NA_SE_EV_FANTOM_WARP_L2, 0x60, 2, 0, 0) +/* 0x2855 */ DEFINE_SFX(CHAN_22E6, NA_SE_EV_COFFIN_CAP_OPEN, 0x30, 0, 0, 0) +/* 0x2856 */ DEFINE_SFX(CHAN_22F5, NA_SE_EV_COFFIN_CAP_BOUND, 0x60, 1, 0, 0) +/* 0x2857 */ DEFINE_SFX(CHAN_2302, NA_SE_EV_WIND_TRAP, 0x30, 2, 0, 0) +/* 0x2858 */ DEFINE_SFX(CHAN_231C, NA_SE_EV_TRAP_OBJ_SLIDE, 0x30, 0, 0, 0) +/* 0x2859 */ DEFINE_SFX(CHAN_2332, NA_SE_EV_METALDOOR_OPEN, 0x90, 3, 0, 0) +/* 0x285A */ DEFINE_SFX(CHAN_2340, NA_SE_EV_METALDOOR_CLOSE, 0x90, 3, 0, 0) +/* 0x285B */ DEFINE_SFX(CHAN_234E, NA_SE_EV_BURN_OUT, 0x30, 0, 0, 0) +/* 0x285C */ DEFINE_SFX(CHAN_2374, NA_SE_EV_BLOCKSINK, 0x30, 2, 0, 0) +/* 0x285D */ DEFINE_SFX(CHAN_2389, NA_SE_EV_CROWD, 0x30, 0, 0, SFX_FLAG_13 | SFX_FLAG_12 | SFX_FLAG_11) +/* 0x285E */ DEFINE_SFX(CHAN_23A6, NA_SE_EV_WATER_LEVEL_DOWN, 0x30, 0, 0, 0) #if PLATFORM_N64 -/* 0x285F */ DEFINE_SFX(NA_SE_EV_NAVY_VANISH, 0x2C, 0, 0, 0) +/* 0x285F */ DEFINE_SFX(CHAN_23D5, NA_SE_EV_NAVY_VANISH, 0x2C, 0, 0, 0) #else -/* 0x285F */ DEFINE_SFX(NA_SE_EV_NAVY_VANISH, 0x30, 0, 0, 0) +/* 0x285F */ DEFINE_SFX(CHAN_23D5, NA_SE_EV_NAVY_VANISH, 0x30, 0, 0, 0) #endif -/* 0x2860 */ DEFINE_SFX(NA_SE_EV_LADDER_DOUND, 0x30, 3, 0, 0) -/* 0x2861 */ DEFINE_SFX(NA_SE_EV_WEB_VIBRATION, 0x30, 0, 0, 0) -/* 0x2862 */ DEFINE_SFX(NA_SE_EV_WEB_BROKEN, 0x30, 0, 0, 0) -/* 0x2863 */ DEFINE_SFX(NA_SE_EV_ROLL_STAND, 0x30, 3, 0, 0) -/* 0x2864 */ DEFINE_SFX(NA_SE_EV_BUYODOOR_OPEN, 0x30, 0, 0, 0) -/* 0x2865 */ DEFINE_SFX(NA_SE_EV_BUYODOOR_CLOSE, 0x30, 0, 0, 0) -/* 0x2866 */ DEFINE_SFX(NA_SE_EV_WOODDOOR_OPEN, 0x30, 0, 0, 0) -/* 0x2867 */ DEFINE_SFX(NA_SE_EV_METALGATE_OPEN, 0x30, 0, 0, 0) -/* 0x2868 */ DEFINE_SFX(NA_SE_IT_SCOOP_UP_WATER, 0x30, 0, 0, 0) -/* 0x2869 */ DEFINE_SFX(NA_SE_EV_FISH_LEAP, 0x30, 0, 0, 0) -/* 0x286A */ DEFINE_SFX(NA_SE_EV_KAKASHI_SWING, 0x30, 0, 0, 0) -/* 0x286B */ DEFINE_SFX(NA_SE_EV_KAKASHI_ROLL, 0x30, 0, 0, 0) -/* 0x286C */ DEFINE_SFX(NA_SE_EV_BOTTLE_CAP_OPEN, 0x30, 0, 0, 0) -/* 0x286D */ DEFINE_SFX(NA_SE_EV_JABJAB_BREATHE, 0x30, 3, 0, SFX_FLAG_11) -/* 0x286E */ DEFINE_SFX(NA_SE_EV_SPIRIT_STONE, 0x30, 0, 0, 0) -/* 0x286F */ DEFINE_SFX(NA_SE_EV_TRIFORCE_FLASH, 0x30, 3, 0, 0) -/* 0x2870 */ DEFINE_SFX(NA_SE_EV_FALL_DOWN_DIRT, 0x30, 0, 0, 0) -/* 0x2871 */ DEFINE_SFX(NA_SE_EV_NAVY_FLY, 0x30, 0, 0, 0) -/* 0x2872 */ DEFINE_SFX(NA_SE_EV_NAVY_CRASH, 0x30, 0, 0, 0) -/* 0x2873 */ DEFINE_SFX(NA_SE_EV_WOOD_HIT, 0x30, 0, 0, 0) -/* 0x2874 */ DEFINE_SFX(NA_SE_EV_SCOOPUP_WATER, 0x30, 0, 0, 0) -/* 0x2875 */ DEFINE_SFX(NA_SE_EV_DROP_FALL, 0x30, 0, 0, 0) -/* 0x2876 */ DEFINE_SFX(NA_SE_EV_WOOD_GEAR, 0x30, 2, 0, 0) -/* 0x2877 */ DEFINE_SFX(NA_SE_EV_TREE_SWING, 0x30, 0, 0, 0) -/* 0x2878 */ DEFINE_SFX(NA_SE_EV_HORSE_RUN_LEVEL, 0x30, 0, 0, 0) -/* 0x2879 */ DEFINE_SFX(NA_SE_EV_ELEVATOR_MOVE2, 0x30, 2, 0, 0) -/* 0x287A */ DEFINE_SFX(NA_SE_EV_ELEVATOR_STOP, 0x30, 2, 0, 0) -/* 0x287B */ DEFINE_SFX(NA_SE_EV_TRE_BOX_APPEAR, 0x30, 2, 0, 0) -/* 0x287C */ DEFINE_SFX(NA_SE_EV_CHAIN_KEY_UNLOCK, 0x40, 0, 0, 0) -/* 0x287D */ DEFINE_SFX(NA_SE_EV_SPINE_TRAP_MOVE, 0x1C, 0, 0, 0) -/* 0x287E */ DEFINE_SFX(NA_SE_EV_HEALING, 0x30, 0, 0, 0) -/* 0x287F */ DEFINE_SFX(NA_SE_EV_GREAT_FAIRY_APPEAR, 0x30, 0, 0, 0) -/* 0x2880 */ DEFINE_SFX(NA_SE_EV_GREAT_FAIRY_VANISH, 0x30, 0, 0, 0) -/* 0x2881 */ DEFINE_SFX(NA_SE_EV_RED_EYE, 0x30, 0, 0, 0) -/* 0x2882 */ DEFINE_SFX(NA_SE_EV_ROLL_STAND_2, 0x30, 0, 0, 0) -/* 0x2883 */ DEFINE_SFX(NA_SE_EV_WALL_SLIDE, 0x30, 0, 0, 0) -/* 0x2884 */ DEFINE_SFX(NA_SE_EV_TRE_BOX_FLASH, 0x30, 0, 0, 0) -/* 0x2885 */ DEFINE_SFX(NA_SE_EV_WINDMILL_LEVEL, 0x60, 0, 0, SFX_FLAG_9) -/* 0x2886 */ DEFINE_SFX(NA_SE_EV_GOTO_HEAVEN, 0x30, 0, 0, SFX_FLAG_11) -/* 0x2887 */ DEFINE_SFX(NA_SE_EV_POT_BROKEN, 0x30, 0, 0, 0) -/* 0x2888 */ DEFINE_SFX(NA_SE_PL_PUT_DOWN_POT, 0x30, 0, 0, 0) -/* 0x2889 */ DEFINE_SFX(NA_SE_EV_DIVE_INTO_WATER, 0x30, 0, 0, 0) -/* 0x288A */ DEFINE_SFX(NA_SE_EV_JUMP_OUT_WATER, 0x30, 0, 0, 0) -/* 0x288B */ DEFINE_SFX(NA_SE_EV_GOD_FLYING, 0x30, 3, 0, 0) -/* 0x288C */ DEFINE_SFX(NA_SE_EV_TRIFORCE, 0x30, 0, 0, 0) -/* 0x288D */ DEFINE_SFX(NA_SE_EV_AURORA, 0x30, 0, 0, 0) -/* 0x288E */ DEFINE_SFX(NA_SE_EV_DEKU_DEATH, 0x30, 0, 0, 0) -/* 0x288F */ DEFINE_SFX(NA_SE_EV_BUYOSTAND_RISING, 0x30, 3, 0, 0) -/* 0x2890 */ DEFINE_SFX(NA_SE_EV_BUYOSTAND_FALL, 0x30, 3, 0, 0) -/* 0x2891 */ DEFINE_SFX(NA_SE_EV_BUYOSHUTTER_OPEN, 0x30, 0, 0, SFX_FLAG_13) -/* 0x2892 */ DEFINE_SFX(NA_SE_EV_BUYOSHUTTER_CLOSE, 0x30, 0, 0, SFX_FLAG_13) -/* 0x2893 */ DEFINE_SFX(NA_SE_EV_STONEDOOR_STOP, 0x30, 3, 0, 0) -/* 0x2894 */ DEFINE_SFX(NA_SE_EV_S_STONE_REVIVAL, 0x30, 0, 0, 0) -/* 0x2895 */ DEFINE_SFX(NA_SE_EV_MEDAL_APPEAR_S, 0x30, 0, 0, 0) -/* 0x2896 */ DEFINE_SFX(NA_SE_EV_HUMAN_BOUND, 0x30, 0, 2, 0) -/* 0x2897 */ DEFINE_SFX(NA_SE_EV_MEDAL_APPEAR_L, 0x30, 0, 0, 0) -/* 0x2898 */ DEFINE_SFX(NA_SE_EV_EARTHQUAKE, 0x30, 0, 0, 0) -/* 0x2899 */ DEFINE_SFX(NA_SE_EV_SHUT_BY_CRYSTAL, 0x30, 0, 0, 0) -/* 0x289A */ DEFINE_SFX(NA_SE_EV_GOD_LIGHTBALL_2, 0x30, 0, 0, 0) -/* 0x289B */ DEFINE_SFX(NA_SE_EV_RUN_AROUND, 0x30, 0, 0, 0) -/* 0x289C */ DEFINE_SFX(NA_SE_EV_CONSENTRATION, 0x30, 0, 0, SFX_FLAG_11) -/* 0x289D */ DEFINE_SFX(NA_SE_EV_TIMETRIP_LIGHT, 0x30, 0, 0, SFX_FLAG_11) -/* 0x289E */ DEFINE_SFX(NA_SE_EV_BUYOSTAND_STOP_A, 0x30, 2, 0, 0) -/* 0x289F */ DEFINE_SFX(NA_SE_EV_BUYOSTAND_STOP_U, 0x30, 3, 0, 0) -/* 0x28A0 */ DEFINE_SFX(NA_SE_EV_OBJECT_FALL, 0x30, 0, 0, 0) -/* 0x28A1 */ DEFINE_SFX(NA_SE_EV_JUMP_CONC, 0x30, 0, 0, 0) -/* 0x28A2 */ DEFINE_SFX(NA_SE_EV_ICE_MELT, 0x30, 0, 0, 0) -/* 0x28A3 */ DEFINE_SFX(NA_SE_EV_FIRE_PILLAR_S, 0x30, 0, 0, 0) -/* 0x28A4 */ DEFINE_SFX(NA_SE_EV_BLOCK_RISING, 0x20, 3, 0, 0) -/* 0x28A5 */ DEFINE_SFX(NA_SE_EV_NABALL_VANISH, 0x30, 0, 0, 0) -/* 0x28A6 */ DEFINE_SFX(NA_SE_EV_SARIA_MELODY, 0x30, 0, 0, SFX_FLAG_15) -/* 0x28A7 */ DEFINE_SFX(NA_SE_EV_LINK_WARP_OUT, 0x30, 0, 0, 0) -/* 0x28A8 */ DEFINE_SFX(NA_SE_EV_FIATY_HEAL, 0x30, 0, 0, 0) -/* 0x28A9 */ DEFINE_SFX(NA_SE_EV_CHAIN_KEY_UNLOCK_B, 0x30, 0, 0, 0) -/* 0x28AA */ DEFINE_SFX(NA_SE_EV_WOODBOX_BREAK, 0x30, 2, 0, 0) -/* 0x28AB */ DEFINE_SFX(NA_SE_EV_PUT_DOWN_WOODBOX, 0x30, 0, 0, 0) -/* 0x28AC */ DEFINE_SFX(NA_SE_EV_LAND_DIRT, 0x30, 0, 0, 0) -/* 0x28AD */ DEFINE_SFX(NA_SE_EV_FLOOR_ROLLING, 0x30, 0, 0, 0) -/* 0x28AE */ DEFINE_SFX(NA_SE_EV_DOG_CRY_EVENING, 0x30, 0, 0, 0) -/* 0x28AF */ DEFINE_SFX(NA_SE_EV_JABJAB_HICCUP, 0x30, 0, 0, 0) -/* 0x28B0 */ DEFINE_SFX(NA_SE_EV_NALE_MAGIC, 0x30, 0, 0, 0) -/* 0x28B1 */ DEFINE_SFX(NA_SE_EV_FROG_JUMP, 0x30, 0, 0, 0) -/* 0x28B2 */ DEFINE_SFX(NA_SE_EV_ICE_FREEZE, 0x30, 3, 0, 0) -/* 0x28B3 */ DEFINE_SFX(NA_SE_EV_BURNING, 0x60, 3, 0, 0) -/* 0x28B4 */ DEFINE_SFX(NA_SE_EV_WOODPLATE_BOUND, 0x30, 0, 2, 0) -/* 0x28B5 */ DEFINE_SFX(NA_SE_EV_GORON_WATER_DROP, 0x30, 0, 0, SFX_FLAG_13) -/* 0x28B6 */ DEFINE_SFX(NA_SE_EV_JABJAB_GROAN, 0x30, 0, 0, 0) -/* 0x28B7 */ DEFINE_SFX(NA_SE_EV_DARUMA_VANISH, 0x30, 1, 0, 0) -/* 0x28B8 */ DEFINE_SFX(NA_SE_EV_BIGBALL_ROLL, 0x30, 0, 0, 0) -/* 0x28B9 */ DEFINE_SFX(NA_SE_EV_ELEVATOR_MOVE3, 0x30, 0, 0, 0) -/* 0x28BA */ DEFINE_SFX(NA_SE_EV_DIAMOND_SWITCH, 0x30, 2, 0, 0) -/* 0x28BB */ DEFINE_SFX(NA_SE_EV_FLAME_OF_FIRE, 0x30, 3, 0, 0) -/* 0x28BC */ DEFINE_SFX(NA_SE_EV_RAINBOW_SHOWER, 0x30, 0, 0, 0) -/* 0x28BD */ DEFINE_SFX(NA_SE_EV_FLYING_AIR, 0x30, 0, 0, 0) -/* 0x28BE */ DEFINE_SFX(NA_SE_EV_PASS_AIR, 0x30, 0, 0, 0) -/* 0x28BF */ DEFINE_SFX(NA_SE_EV_COME_UP_DEKU_JR, 0x30, 0, 0, 0) -/* 0x28C0 */ DEFINE_SFX(NA_SE_EV_SAND_STORM, 0x30, 0, 0, 0) -/* 0x28C1 */ DEFINE_SFX(NA_SE_EV_TRIFORCE_MARK, 0x30, 0, 0, 0) -/* 0x28C2 */ DEFINE_SFX(NA_SE_EV_GRAVE_EXPLOSION, 0xA0, 3, 0, 0) -/* 0x28C3 */ DEFINE_SFX(NA_SE_EV_LURE_MOVE_W, 0x30, 0, 0, 0) -/* 0x28C4 */ DEFINE_SFX(NA_SE_EV_POT_MOVE_START, 0x30, 0, 0, 0) -/* 0x28C5 */ DEFINE_SFX(NA_SE_EV_DIVE_INTO_WATER_L, 0x30, 0, 0, 0) -/* 0x28C6 */ DEFINE_SFX(NA_SE_EV_OUT_OF_WATER_L, 0x30, 0, 0, 0) -/* 0x28C7 */ DEFINE_SFX(NA_SE_EV_GANON_MANTLE, 0x30, 0, 0, 0) -/* 0x28C8 */ DEFINE_SFX(NA_SE_EV_DIG_UP, 0x30, 0, 0, 0) -/* 0x28C9 */ DEFINE_SFX(NA_SE_EV_WOOD_BOUND, 0x30, 0, 0, 0) -/* 0x28CA */ DEFINE_SFX(NA_SE_EV_WATER_BUBBLE, 0x30, 0, 3, 0) -/* 0x28CB */ DEFINE_SFX(NA_SE_EV_ICE_BROKEN, 0x30, 2, 0, 0) -/* 0x28CC */ DEFINE_SFX(NA_SE_EV_FROG_GROW_UP, 0x30, 2, 0, 0) -/* 0x28CD */ DEFINE_SFX(NA_SE_EV_WATER_CONVECTION, 0x30, 0, 0, 0) -/* 0x28CE */ DEFINE_SFX(NA_SE_EV_GROUND_GATE_OPEN, 0x30, 3, 0, 0) -/* 0x28CF */ DEFINE_SFX(NA_SE_EV_FACE_BREAKDOWN, 0x30, 3, 0, 0) -/* 0x28D0 */ DEFINE_SFX(NA_SE_EV_FACE_EXPLOSION, 0x30, 0, 0, 0) -/* 0x28D1 */ DEFINE_SFX(NA_SE_EV_FACE_CRUMBLE_SLOW, 0x30, 3, 2, SFX_FLAG_14) -/* 0x28D2 */ DEFINE_SFX(NA_SE_EV_ROUND_TRAP_MOVE, 0x30, 0, 0, 0) -/* 0x28D3 */ DEFINE_SFX(NA_SE_EV_HIT_SOUND, 0x30, 0, 0, 0) -/* 0x28D4 */ DEFINE_SFX(NA_SE_EV_ICE_SWING, 0x30, 0, 0, 0) -/* 0x28D5 */ DEFINE_SFX(NA_SE_EV_DOWN_TO_GROUND, 0x30, 0, 0, 0) -/* 0x28D6 */ DEFINE_SFX(NA_SE_EV_KENJA_ENVIROMENT_0, 0x30, 0, 0, 0) -/* 0x28D7 */ DEFINE_SFX(NA_SE_EV_KENJA_ENVIROMENT_1, 0x30, 0, 0, 0) -/* 0x28D8 */ DEFINE_SFX(NA_SE_EV_SMALL_DOG_BARK, 0x80, 0, 0, 0) -/* 0x28D9 */ DEFINE_SFX(NA_SE_EV_ZELDA_POWER, 0x60, 0, 0, 0) -/* 0x28DA */ DEFINE_SFX(NA_SE_EV_RAIN, 0x90, 0, 0, 0) -/* 0x28DB */ DEFINE_SFX(NA_SE_EV_IRON_DOOR_OPEN, 0x30, 0, 0, 0) -/* 0x28DC */ DEFINE_SFX(NA_SE_EV_IRON_DOOR_CLOSE, 0x30, 0, 0, 0) -/* 0x28DD */ DEFINE_SFX(NA_SE_EV_WHIRLPOOL, 0x30, 0, 0, 0) -/* 0x28DE */ DEFINE_SFX(NA_SE_EV_TOWER_PARTS_BROKEN, 0x60, 3, 3, 0) -/* 0x28DF */ DEFINE_SFX(NA_SE_EV_COW_CRY, 0x30, 0, 0, 0) -/* 0x28E0 */ DEFINE_SFX(NA_SE_EV_METAL_BOX_BOUND, 0x30, 0, 0, 0) -/* 0x28E1 */ DEFINE_SFX(NA_SE_EV_ELECTRIC_EXPLOSION, 0x30, 3, 0, 0) -/* 0x28E2 */ DEFINE_SFX(NA_SE_EV_HEAVY_THROW, 0x30, 3, 0, 0) -/* 0x28E3 */ DEFINE_SFX(NA_SE_EV_FROG_CRY_0, 0x30, 0, 0, 0) -/* 0x28E4 */ DEFINE_SFX(NA_SE_EV_FROG_CRY_1, 0x30, 0, 0, 0) -/* 0x28E5 */ DEFINE_SFX(NA_SE_EV_COW_CRY_LV, 0x30, 0, 0, 0) -/* 0x28E6 */ DEFINE_SFX(NA_SE_EV_RONRON_DOOR_CLOSE, 0x30, 0, 0, 0) -/* 0x28E7 */ DEFINE_SFX(NA_SE_EV_BUTTERFRY_TO_FAIRY, 0x30, 0, 0, 0) -/* 0x28E8 */ DEFINE_SFX(NA_SE_EV_FIVE_COUNT_LUPY, 0xA0, 0, 0, SFX_FLAG_11) -/* 0x28E9 */ DEFINE_SFX(NA_SE_EV_STONE_GROW_UP, 0x30, 0, 0, 0) -/* 0x28EA */ DEFINE_SFX(NA_SE_EV_STONE_LAUNCH, 0x30, 0, 0, 0) -/* 0x28EB */ DEFINE_SFX(NA_SE_EV_STONE_ROLLING, 0x30, 0, 0, 0) -/* 0x28EC */ DEFINE_SFX(NA_SE_EV_TOGE_STICK_ROLLING, 0x30, 2, 0, 0) -/* 0x28ED */ DEFINE_SFX(NA_SE_EV_TOWER_ENERGY, 0x30, 0, 0, 0) -/* 0x28EE */ DEFINE_SFX(NA_SE_EV_TOWER_BARRIER, 0x30, 3, 0, 0) -/* 0x28EF */ DEFINE_SFX(NA_SE_EV_CHIBI_WALK, 0x20, 0, 0, 0) -/* 0x28F0 */ DEFINE_SFX(NA_SE_EV_KNIGHT_WALK, 0x30, 0, 0, 0) -/* 0x28F1 */ DEFINE_SFX(NA_SE_EV_PILLAR_MOVE_STOP, 0x30, 0, 0, 0) -/* 0x28F2 */ DEFINE_SFX(NA_SE_EV_ERUPTION_CLOUD, 0x30, 0, 0, 0) -/* 0x28F3 */ DEFINE_SFX(NA_SE_EV_LINK_WARP_OUT_LV, 0x30, 0, 0, 0) -/* 0x28F4 */ DEFINE_SFX(NA_SE_EV_LINK_WARP_IN, 0x30, 0, 0, 0) -/* 0x28F5 */ DEFINE_SFX(NA_SE_EV_OCARINA_BMELO_0, 0x30, 0, 0, 0) -/* 0x28F6 */ DEFINE_SFX(NA_SE_EV_OCARINA_BMELO_1, 0x30, 0, 0, 0) -/* 0x28F7 */ DEFINE_SFX(NA_SE_EV_EXPLOSION_FOR_RENZOKU, 0x30, 0, 0, 0) +/* 0x2860 */ DEFINE_SFX(CHAN_23EB, NA_SE_EV_LADDER_DOUND, 0x30, 3, 0, 0) +/* 0x2861 */ DEFINE_SFX(CHAN_2401, NA_SE_EV_WEB_VIBRATION, 0x30, 0, 0, 0) +/* 0x2862 */ DEFINE_SFX(CHAN_2416, NA_SE_EV_WEB_BROKEN, 0x30, 0, 0, 0) +/* 0x2863 */ DEFINE_SFX(CHAN_243A, NA_SE_EV_ROLL_STAND, 0x30, 3, 0, 0) +/* 0x2864 */ DEFINE_SFX(CHAN_245F, NA_SE_EV_BUYODOOR_OPEN, 0x30, 0, 0, 0) +/* 0x2865 */ DEFINE_SFX(CHAN_2480, NA_SE_EV_BUYODOOR_CLOSE, 0x30, 0, 0, 0) +/* 0x2866 */ DEFINE_SFX(CHAN_24A1, NA_SE_EV_WOODDOOR_OPEN, 0x30, 0, 0, 0) +/* 0x2867 */ DEFINE_SFX(CHAN_24AD, NA_SE_EV_METALGATE_OPEN, 0x30, 0, 0, 0) +/* 0x2868 */ DEFINE_SFX(CHAN_24BD, NA_SE_IT_SCOOP_UP_WATER, 0x30, 0, 0, 0) +/* 0x2869 */ DEFINE_SFX(CHAN_24CB, NA_SE_EV_FISH_LEAP, 0x30, 0, 0, 0) +/* 0x286A */ DEFINE_SFX(CHAN_24DF, NA_SE_EV_KAKASHI_SWING, 0x30, 0, 0, 0) +/* 0x286B */ DEFINE_SFX(CHAN_24F0, NA_SE_EV_KAKASHI_ROLL, 0x30, 0, 0, 0) +/* 0x286C */ DEFINE_SFX(CHAN_2502, NA_SE_EV_BOTTLE_CAP_OPEN, 0x30, 0, 0, 0) +/* 0x286D */ DEFINE_SFX(CHAN_250E, NA_SE_EV_JABJAB_BREATHE, 0x30, 3, 0, SFX_FLAG_11) +/* 0x286E */ DEFINE_SFX(CHAN_2531, NA_SE_EV_SPIRIT_STONE, 0x30, 0, 0, 0) +/* 0x286F */ DEFINE_SFX(CHAN_2554, NA_SE_EV_TRIFORCE_FLASH, 0x30, 3, 0, 0) +/* 0x2870 */ DEFINE_SFX(CHAN_256B, NA_SE_EV_FALL_DOWN_DIRT, 0x30, 0, 0, 0) +/* 0x2871 */ DEFINE_SFX(CHAN_2582, NA_SE_EV_NAVY_FLY, 0x30, 0, 0, 0) +/* 0x2872 */ DEFINE_SFX(CHAN_2597, NA_SE_EV_NAVY_CRASH, 0x30, 0, 0, 0) +/* 0x2873 */ DEFINE_SFX(CHAN_25C6, NA_SE_EV_WOOD_HIT, 0x30, 0, 0, 0) +/* 0x2874 */ DEFINE_SFX(CHAN_25D4, NA_SE_EV_SCOOPUP_WATER, 0x30, 0, 0, 0) +/* 0x2875 */ DEFINE_SFX(CHAN_25FF, NA_SE_EV_DROP_FALL, 0x30, 0, 0, 0) +/* 0x2876 */ DEFINE_SFX(CHAN_2619, NA_SE_EV_WOOD_GEAR, 0x30, 2, 0, 0) +/* 0x2877 */ DEFINE_SFX(CHAN_262A, NA_SE_EV_TREE_SWING, 0x30, 0, 0, 0) +/* 0x2878 */ DEFINE_SFX(CHAN_264B, NA_SE_EV_HORSE_RUN_LEVEL, 0x30, 0, 0, 0) +/* 0x2879 */ DEFINE_SFX(CHAN_2656, NA_SE_EV_ELEVATOR_MOVE2, 0x30, 2, 0, 0) +/* 0x287A */ DEFINE_SFX(CHAN_2667, NA_SE_EV_ELEVATOR_STOP, 0x30, 2, 0, 0) +/* 0x287B */ DEFINE_SFX(CHAN_2691, NA_SE_EV_TRE_BOX_APPEAR, 0x30, 2, 0, 0) +/* 0x287C */ DEFINE_SFX(CHAN_26CF, NA_SE_EV_CHAIN_KEY_UNLOCK, 0x40, 0, 0, 0) +/* 0x287D */ DEFINE_SFX(CHAN_26E9, NA_SE_EV_SPINE_TRAP_MOVE, 0x1C, 0, 0, 0) +/* 0x287E */ DEFINE_SFX(CHAN_2700, NA_SE_EV_HEALING, 0x30, 0, 0, 0) +/* 0x287F */ DEFINE_SFX(CHAN_272F, NA_SE_EV_GREAT_FAIRY_APPEAR, 0x30, 0, 0, 0) +/* 0x2880 */ DEFINE_SFX(CHAN_274E, NA_SE_EV_GREAT_FAIRY_VANISH, 0x30, 0, 0, 0) +/* 0x2881 */ DEFINE_SFX(CHAN_2752, NA_SE_EV_RED_EYE, 0x30, 0, 0, 0) +/* 0x2882 */ DEFINE_SFX(CHAN_2764, NA_SE_EV_ROLL_STAND_2, 0x30, 0, 0, 0) +/* 0x2883 */ DEFINE_SFX(CHAN_2776, NA_SE_EV_WALL_SLIDE, 0x30, 0, 0, 0) +/* 0x2884 */ DEFINE_SFX(CHAN_278C, NA_SE_EV_TRE_BOX_FLASH, 0x30, 0, 0, 0) +/* 0x2885 */ DEFINE_SFX(CHAN_279F, NA_SE_EV_WINDMILL_LEVEL, 0x60, 0, 0, SFX_FLAG_9) +/* 0x2886 */ DEFINE_SFX(CHAN_27B0, NA_SE_EV_GOTO_HEAVEN, 0x30, 0, 0, SFX_FLAG_11) +/* 0x2887 */ DEFINE_SFX(CHAN_27DD, NA_SE_EV_POT_BROKEN, 0x30, 0, 0, 0) +/* 0x2888 */ DEFINE_SFX(CHAN_27F0, NA_SE_PL_PUT_DOWN_POT, 0x30, 0, 0, 0) +/* 0x2889 */ DEFINE_SFX(CHAN_06CD, NA_SE_EV_DIVE_INTO_WATER, 0x30, 0, 0, 0) +/* 0x288A */ DEFINE_SFX(CHAN_06E1, NA_SE_EV_JUMP_OUT_WATER, 0x30, 0, 0, 0) +/* 0x288B */ DEFINE_SFX(CHAN_27FC, NA_SE_EV_GOD_FLYING, 0x30, 3, 0, 0) +/* 0x288C */ DEFINE_SFX(CHAN_2829, NA_SE_EV_TRIFORCE, 0x30, 0, 0, 0) +/* 0x288D */ DEFINE_SFX(CHAN_2848, NA_SE_EV_AURORA, 0x30, 0, 0, 0) +/* 0x288E */ DEFINE_SFX(CHAN_2862, NA_SE_EV_DEKU_DEATH, 0x30, 0, 0, 0) +/* 0x288F */ DEFINE_SFX(CHAN_288B, NA_SE_EV_BUYOSTAND_RISING, 0x30, 3, 0, 0) +/* 0x2890 */ DEFINE_SFX(CHAN_28B4, NA_SE_EV_BUYOSTAND_FALL, 0x30, 3, 0, 0) +/* 0x2891 */ DEFINE_SFX(CHAN_28BC, NA_SE_EV_BUYOSHUTTER_OPEN, 0x30, 0, 0, SFX_FLAG_13) +/* 0x2892 */ DEFINE_SFX(CHAN_28DC, NA_SE_EV_BUYOSHUTTER_CLOSE, 0x30, 0, 0, SFX_FLAG_13) +/* 0x2893 */ DEFINE_SFX(CHAN_28E0, NA_SE_EV_STONEDOOR_STOP, 0x30, 3, 0, 0) +/* 0x2894 */ DEFINE_SFX(CHAN_28E7, NA_SE_EV_S_STONE_REVIVAL, 0x30, 0, 0, 0) +/* 0x2895 */ DEFINE_SFX(CHAN_2933, NA_SE_EV_MEDAL_APPEAR_S, 0x30, 0, 0, 0) +/* 0x2896 */ DEFINE_SFX(CHAN_2951, NA_SE_EV_HUMAN_BOUND, 0x30, 0, 2, 0) +/* 0x2897 */ DEFINE_SFX(CHAN_296A, NA_SE_EV_MEDAL_APPEAR_L, 0x30, 0, 0, 0) +/* 0x2898 */ DEFINE_SFX(CHAN_298E, NA_SE_EV_EARTHQUAKE, 0x30, 0, 0, 0) +/* 0x2899 */ DEFINE_SFX(CHAN_29C5, NA_SE_EV_SHUT_BY_CRYSTAL, 0x30, 0, 0, 0) +/* 0x289A */ DEFINE_SFX(CHAN_29F0, NA_SE_EV_GOD_LIGHTBALL_2, 0x30, 0, 0, 0) +/* 0x289B */ DEFINE_SFX(CHAN_2A15, NA_SE_EV_RUN_AROUND, 0x30, 0, 0, 0) +/* 0x289C */ DEFINE_SFX(CHAN_2A15, NA_SE_EV_CONSENTRATION, 0x30, 0, 0, SFX_FLAG_11) +/* 0x289D */ DEFINE_SFX(CHAN_2A5C, NA_SE_EV_TIMETRIP_LIGHT, 0x30, 0, 0, SFX_FLAG_11) +/* 0x289E */ DEFINE_SFX(CHAN_2A97, NA_SE_EV_BUYOSTAND_STOP_A, 0x30, 2, 0, 0) +/* 0x289F */ DEFINE_SFX(CHAN_2AB2, NA_SE_EV_BUYOSTAND_STOP_U, 0x30, 3, 0, 0) +/* 0x28A0 */ DEFINE_SFX(CHAN_2ACC, NA_SE_EV_OBJECT_FALL, 0x30, 0, 0, 0) +/* 0x28A1 */ DEFINE_SFX(CHAN_2AE4, NA_SE_EV_JUMP_CONC, 0x30, 0, 0, 0) +/* 0x28A2 */ DEFINE_SFX(CHAN_2AEB, NA_SE_EV_ICE_MELT, 0x30, 0, 0, 0) +/* 0x28A3 */ DEFINE_SFX(CHAN_2B10, NA_SE_EV_FIRE_PILLAR_S, 0x30, 0, 0, 0) +/* 0x28A4 */ DEFINE_SFX(CHAN_2B14, NA_SE_EV_BLOCK_RISING, 0x20, 3, 0, 0) +/* 0x28A5 */ DEFINE_SFX(CHAN_2B2A, NA_SE_EV_NABALL_VANISH, 0x30, 0, 0, 0) +/* 0x28A6 */ DEFINE_SFX(CHAN_2B49, NA_SE_EV_SARIA_MELODY, 0x30, 0, 0, SFX_FLAG_15) +/* 0x28A7 */ DEFINE_SFX(CHAN_2B61, NA_SE_EV_LINK_WARP_OUT, 0x30, 0, 0, 0) +/* 0x28A8 */ DEFINE_SFX(CHAN_2B75, NA_SE_EV_FIATY_HEAL, 0x30, 0, 0, 0) +/* 0x28A9 */ DEFINE_SFX(CHAN_2BB0, NA_SE_EV_CHAIN_KEY_UNLOCK_B, 0x30, 0, 0, 0) +/* 0x28AA */ DEFINE_SFX(CHAN_2BD2, NA_SE_EV_WOODBOX_BREAK, 0x30, 2, 0, 0) +/* 0x28AB */ DEFINE_SFX(CHAN_2BE1, NA_SE_EV_PUT_DOWN_WOODBOX, 0x30, 0, 0, 0) +/* 0x28AC */ DEFINE_SFX(CHAN_2BEE, NA_SE_EV_LAND_DIRT, 0x30, 0, 0, 0) +/* 0x28AD */ DEFINE_SFX(CHAN_2BF5, NA_SE_EV_FLOOR_ROLLING, 0x30, 0, 0, 0) +/* 0x28AE */ DEFINE_SFX(CHAN_2BFE, NA_SE_EV_DOG_CRY_EVENING, 0x30, 0, 0, 0) +/* 0x28AF */ DEFINE_SFX(CHAN_2C0D, NA_SE_EV_JABJAB_HICCUP, 0x30, 0, 0, 0) +/* 0x28B0 */ DEFINE_SFX(CHAN_0F8D, NA_SE_EV_NALE_MAGIC, 0x30, 0, 0, 0) +/* 0x28B1 */ DEFINE_SFX(CHAN_2C19, NA_SE_EV_FROG_JUMP, 0x30, 0, 0, 0) +/* 0x28B2 */ DEFINE_SFX(CHAN_2C38, NA_SE_EV_ICE_FREEZE, 0x30, 3, 0, 0) +/* 0x28B3 */ DEFINE_SFX(CHAN_2C54, NA_SE_EV_BURNING, 0x60, 3, 0, 0) +/* 0x28B4 */ DEFINE_SFX(CHAN_2C75, NA_SE_EV_WOODPLATE_BOUND, 0x30, 0, 2, 0) +/* 0x28B5 */ DEFINE_SFX(CHAN_2C85, NA_SE_EV_GORON_WATER_DROP, 0x30, 0, 0, SFX_FLAG_13) +/* 0x28B6 */ DEFINE_SFX(CHAN_2C99, NA_SE_EV_JABJAB_GROAN, 0x30, 0, 0, 0) +/* 0x28B7 */ DEFINE_SFX(CHAN_2CAF, NA_SE_EV_DARUMA_VANISH, 0x30, 1, 0, 0) +/* 0x28B8 */ DEFINE_SFX(CHAN_2CBB, NA_SE_EV_BIGBALL_ROLL, 0x30, 0, 0, 0) +/* 0x28B9 */ DEFINE_SFX(CHAN_2CD6, NA_SE_EV_ELEVATOR_MOVE3, 0x30, 0, 0, 0) +/* 0x28BA */ DEFINE_SFX(CHAN_2CF0, NA_SE_EV_DIAMOND_SWITCH, 0x30, 2, 0, 0) +/* 0x28BB */ DEFINE_SFX(CHAN_2CF6, NA_SE_EV_FLAME_OF_FIRE, 0x30, 3, 0, 0) +/* 0x28BC */ DEFINE_SFX(CHAN_2CFE, NA_SE_EV_RAINBOW_SHOWER, 0x30, 0, 0, 0) +/* 0x28BD */ DEFINE_SFX(CHAN_2D13, NA_SE_EV_FLYING_AIR, 0x30, 0, 0, 0) +/* 0x28BE */ DEFINE_SFX(CHAN_2D36, NA_SE_EV_PASS_AIR, 0x30, 0, 0, 0) +/* 0x28BF */ DEFINE_SFX(CHAN_2D4E, NA_SE_EV_COME_UP_DEKU_JR, 0x30, 0, 0, 0) +/* 0x28C0 */ DEFINE_SFX(CHAN_2D63, NA_SE_EV_SAND_STORM, 0x30, 0, 0, 0) +/* 0x28C1 */ DEFINE_SFX(CHAN_2D85, NA_SE_EV_TRIFORCE_MARK, 0x30, 0, 0, 0) +/* 0x28C2 */ DEFINE_SFX(CHAN_2D9D, NA_SE_EV_GRAVE_EXPLOSION, 0xA0, 3, 0, 0) +/* 0x28C3 */ DEFINE_SFX(CHAN_06F2, NA_SE_EV_LURE_MOVE_W, 0x30, 0, 0, 0) +/* 0x28C4 */ DEFINE_SFX(CHAN_0989, NA_SE_EV_POT_MOVE_START, 0x30, 0, 0, 0) +/* 0x28C5 */ DEFINE_SFX(CHAN_2DA9, NA_SE_EV_DIVE_INTO_WATER_L, 0x30, 0, 0, 0) +/* 0x28C6 */ DEFINE_SFX(CHAN_2DAD, NA_SE_EV_OUT_OF_WATER_L, 0x30, 0, 0, 0) +/* 0x28C7 */ DEFINE_SFX(CHAN_2DC3, NA_SE_EV_GANON_MANTLE, 0x30, 0, 0, 0) +/* 0x28C8 */ DEFINE_SFX(CHAN_2DD1, NA_SE_EV_DIG_UP, 0x30, 0, 0, 0) +/* 0x28C9 */ DEFINE_SFX(CHAN_2BDE, NA_SE_EV_WOOD_BOUND, 0x30, 0, 0, 0) +/* 0x28CA */ DEFINE_SFX(CHAN_2DD8, NA_SE_EV_WATER_BUBBLE, 0x30, 0, 3, 0) +/* 0x28CB */ DEFINE_SFX(CHAN_2DE4, NA_SE_EV_ICE_BROKEN, 0x30, 2, 0, 0) +/* 0x28CC */ DEFINE_SFX(CHAN_2DFC, NA_SE_EV_FROG_GROW_UP, 0x30, 2, 0, 0) +/* 0x28CD */ DEFINE_SFX(CHAN_2E14, NA_SE_EV_WATER_CONVECTION, 0x30, 0, 0, 0) +/* 0x28CE */ DEFINE_SFX(CHAN_2E1D, NA_SE_EV_GROUND_GATE_OPEN, 0x30, 3, 0, 0) +/* 0x28CF */ DEFINE_SFX(CHAN_2E29, NA_SE_EV_FACE_BREAKDOWN, 0x30, 3, 0, 0) +/* 0x28D0 */ DEFINE_SFX(CHAN_2E30, NA_SE_EV_FACE_EXPLOSION, 0x30, 0, 0, 0) +/* 0x28D1 */ DEFINE_SFX(CHAN_2E37, NA_SE_EV_FACE_CRUMBLE_SLOW, 0x30, 3, 2, SFX_FLAG_14) +/* 0x28D2 */ DEFINE_SFX(CHAN_2E3E, NA_SE_EV_ROUND_TRAP_MOVE, 0x30, 0, 0, 0) +/* 0x28D3 */ DEFINE_SFX(CHAN_5C64, NA_SE_EV_HIT_SOUND, 0x30, 0, 0, 0) +/* 0x28D4 */ DEFINE_SFX(CHAN_2E4F, NA_SE_EV_ICE_SWING, 0x30, 0, 0, 0) +/* 0x28D5 */ DEFINE_SFX(CHAN_2E5B, NA_SE_EV_DOWN_TO_GROUND, 0x30, 0, 0, 0) +/* 0x28D6 */ DEFINE_SFX(CHAN_2E60, NA_SE_EV_KENJA_ENVIROMENT_0, 0x30, 0, 0, 0) +/* 0x28D7 */ DEFINE_SFX(CHAN_2E6E, NA_SE_EV_KENJA_ENVIROMENT_1, 0x30, 0, 0, 0) +/* 0x28D8 */ DEFINE_SFX(CHAN_2E86, NA_SE_EV_SMALL_DOG_BARK, 0x80, 0, 0, 0) +/* 0x28D9 */ DEFINE_SFX(CHAN_2E92, NA_SE_EV_ZELDA_POWER, 0x60, 0, 0, 0) +/* 0x28DA */ DEFINE_SFX(CHAN_2EB6, NA_SE_EV_RAIN, 0x90, 0, 0, 0) +/* 0x28DB */ DEFINE_SFX(CHAN_2ECF, NA_SE_EV_IRON_DOOR_OPEN, 0x30, 0, 0, 0) +/* 0x28DC */ DEFINE_SFX(CHAN_2EDB, NA_SE_EV_IRON_DOOR_CLOSE, 0x30, 0, 0, 0) +/* 0x28DD */ DEFINE_SFX(CHAN_2EE7, NA_SE_EV_WHIRLPOOL, 0x30, 0, 0, 0) +/* 0x28DE */ DEFINE_SFX(CHAN_2EEE, NA_SE_EV_TOWER_PARTS_BROKEN, 0x60, 3, 3, 0) +/* 0x28DF */ DEFINE_SFX(CHAN_2F1A, NA_SE_EV_COW_CRY, 0x30, 0, 0, 0) +/* 0x28E0 */ DEFINE_SFX(CHAN_2F26, NA_SE_EV_METAL_BOX_BOUND, 0x30, 0, 0, 0) +/* 0x28E1 */ DEFINE_SFX(CHAN_2F43, NA_SE_EV_ELECTRIC_EXPLOSION, 0x30, 3, 0, 0) +/* 0x28E2 */ DEFINE_SFX(CHAN_2D4E, NA_SE_EV_HEAVY_THROW, 0x30, 3, 0, 0) +/* 0x28E3 */ DEFINE_SFX(CHAN_2F4A, NA_SE_EV_FROG_CRY_0, 0x30, 0, 0, 0) +/* 0x28E4 */ DEFINE_SFX(CHAN_2F60, NA_SE_EV_FROG_CRY_1, 0x30, 0, 0, 0) +/* 0x28E5 */ DEFINE_SFX(CHAN_2F76, NA_SE_EV_COW_CRY_LV, 0x30, 0, 0, 0) +/* 0x28E6 */ DEFINE_SFX(CHAN_2FB8, NA_SE_EV_RONRON_DOOR_CLOSE, 0x30, 0, 0, 0) +/* 0x28E7 */ DEFINE_SFX(CHAN_2FC5, NA_SE_EV_BUTTERFRY_TO_FAIRY, 0x30, 0, 0, 0) +/* 0x28E8 */ DEFINE_SFX(CHAN_5E6B, NA_SE_EV_FIVE_COUNT_LUPY, 0xA0, 0, 0, SFX_FLAG_11) +/* 0x28E9 */ DEFINE_SFX(CHAN_2FEA, NA_SE_EV_STONE_GROW_UP, 0x30, 0, 0, 0) +/* 0x28EA */ DEFINE_SFX(CHAN_2FFC, NA_SE_EV_STONE_LAUNCH, 0x30, 0, 0, 0) +/* 0x28EB */ DEFINE_SFX(CHAN_1B14, NA_SE_EV_STONE_ROLLING, 0x30, 0, 0, 0) +/* 0x28EC */ DEFINE_SFX(CHAN_3002, NA_SE_EV_TOGE_STICK_ROLLING, 0x30, 2, 0, 0) +/* 0x28ED */ DEFINE_SFX(CHAN_300F, NA_SE_EV_TOWER_ENERGY, 0x30, 0, 0, 0) +/* 0x28EE */ DEFINE_SFX(CHAN_303C, NA_SE_EV_TOWER_BARRIER, 0x30, 3, 0, 0) +/* 0x28EF */ DEFINE_SFX(CHAN_3081, NA_SE_EV_CHIBI_WALK, 0x20, 0, 0, 0) +/* 0x28F0 */ DEFINE_SFX(CHAN_308F, NA_SE_EV_KNIGHT_WALK, 0x30, 0, 0, 0) +/* 0x28F1 */ DEFINE_SFX(CHAN_30AB, NA_SE_EV_PILLAR_MOVE_STOP, 0x30, 0, 0, 0) +/* 0x28F2 */ DEFINE_SFX(CHAN_2D4E, NA_SE_EV_ERUPTION_CLOUD, 0x30, 0, 0, 0) +/* 0x28F3 */ DEFINE_SFX(CHAN_2F4A, NA_SE_EV_LINK_WARP_OUT_LV, 0x30, 0, 0, 0) +/* 0x28F4 */ DEFINE_SFX(CHAN_2F60, NA_SE_EV_LINK_WARP_IN, 0x30, 0, 0, 0) +/* 0x28F5 */ DEFINE_SFX(CHAN_2F76, NA_SE_EV_OCARINA_BMELO_0, 0x30, 0, 0, 0) +/* 0x28F6 */ DEFINE_SFX(CHAN_2FB8, NA_SE_EV_OCARINA_BMELO_1, 0x30, 0, 0, 0) +/* 0x28F7 */ DEFINE_SFX(CHAN_2FC5, NA_SE_EV_EXPLOSION_FOR_RENZOKU, 0x30, 0, 0, 0) diff --git a/include/tables/sfx/itembank_table.h b/include/tables/sfx/itembank_table.h index 64eabe2662..53f2ffadb2 100644 --- a/include/tables/sfx/itembank_table.h +++ b/include/tables/sfx/itembank_table.h @@ -2,95 +2,94 @@ * Sfx Item Bank * * DEFINE_SFX should be used for all sfx define in the item bank from sequence 0 + * - Argument 0: Channel name for sequence 0 * - Argument 1: Enum value for this sfx * - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance * - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3) * - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3) * - Argument 5: Various flags to add properties to the sfx - * - * WARNING: entries must align with the table defined for the item bank in sequence 0 */ -/* 0x1800 */ DEFINE_SFX(NA_SE_IT_SWORD_IMPACT, 0x30, 0, 1, SFX_FLAG_15) -/* 0x1801 */ DEFINE_SFX(NA_SE_IT_SWORD_SWING, 0x30, 0, 1, 0) -/* 0x1802 */ DEFINE_SFX(NA_SE_IT_SWORD_PUTAWAY, 0x30, 0, 0, 0) -/* 0x1803 */ DEFINE_SFX(NA_SE_IT_SWORD_PICKOUT, 0x30, 0, 0, 0) -/* 0x1804 */ DEFINE_SFX(NA_SE_IT_ARROW_SHOT, 0x30, 0, 1, SFX_FLAG_10) -/* 0x1805 */ DEFINE_SFX(NA_SE_IT_BOOMERANG_THROW, 0x30, 0, 1, SFX_FLAG_10) -/* 0x1806 */ DEFINE_SFX(NA_SE_IT_SHIELD_BOUND, 0x60, 3, 2, 0) -/* 0x1807 */ DEFINE_SFX(NA_SE_IT_BOW_DRAW, 0x30, 0, 1, SFX_FLAG_10) -/* 0x1808 */ DEFINE_SFX(NA_SE_IT_SHIELD_REFLECT_SW, 0x80, 3, 1, 0) -/* 0x1809 */ DEFINE_SFX(NA_SE_IT_ARROW_STICK_HRAD, 0x30, 0, 0, 0) -/* 0x180A */ DEFINE_SFX(NA_SE_IT_HAMMER_HIT, 0x30, 0, 1, 0) -/* 0x180B */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_CHAIN, 0x30, 0, 0, SFX_FLAG_10) -/* 0x180C */ DEFINE_SFX(NA_SE_IT_SHIELD_REFLECT_MG, 0x30, 1, 0, SFX_FLAG_10) -/* 0x180D */ DEFINE_SFX(NA_SE_IT_BOMB_IGNIT, 0x50, 0, 0, 0) -/* 0x180E */ DEFINE_SFX(NA_SE_IT_BOMB_EXPLOSION, 0x90, 2, 0, 0) -/* 0x180F */ DEFINE_SFX(NA_SE_IT_BOMB_UNEXPLOSION, 0x50, 2, 0, 0) -/* 0x1810 */ DEFINE_SFX(NA_SE_IT_BOOMERANG_FLY, 0x30, 0, 0, SFX_FLAG_10) -/* 0x1811 */ DEFINE_SFX(NA_SE_IT_SWORD_STRIKE, 0x40, 2, 0, 0) -/* 0x1812 */ DEFINE_SFX(NA_SE_IT_HAMMER_SWING, 0x30, 0, 1, 0) +/* 0x1800 */ DEFINE_SFX(CHAN_0F83, NA_SE_IT_SWORD_IMPACT, 0x30, 0, 1, SFX_FLAG_15) +/* 0x1801 */ DEFINE_SFX(CHAN_0F8D, NA_SE_IT_SWORD_SWING, 0x30, 0, 1, 0) +/* 0x1802 */ DEFINE_SFX(CHAN_0F9B, NA_SE_IT_SWORD_PUTAWAY, 0x30, 0, 0, 0) +/* 0x1803 */ DEFINE_SFX(CHAN_0FA5, NA_SE_IT_SWORD_PICKOUT, 0x30, 0, 0, 0) +/* 0x1804 */ DEFINE_SFX(CHAN_0FAF, NA_SE_IT_ARROW_SHOT, 0x30, 0, 1, SFX_FLAG_10) +/* 0x1805 */ DEFINE_SFX(CHAN_0FB9, NA_SE_IT_BOOMERANG_THROW, 0x30, 0, 1, SFX_FLAG_10) +/* 0x1806 */ DEFINE_SFX(CHAN_0FCB, NA_SE_IT_SHIELD_BOUND, 0x60, 3, 2, 0) +/* 0x1807 */ DEFINE_SFX(CHAN_0FDB, NA_SE_IT_BOW_DRAW, 0x30, 0, 1, SFX_FLAG_10) +/* 0x1808 */ DEFINE_SFX(CHAN_0FE9, NA_SE_IT_SHIELD_REFLECT_SW, 0x80, 3, 1, 0) +/* 0x1809 */ DEFINE_SFX(CHAN_1001, NA_SE_IT_ARROW_STICK_HRAD, 0x30, 0, 0, 0) +/* 0x180A */ DEFINE_SFX(CHAN_100B, NA_SE_IT_HAMMER_HIT, 0x30, 0, 1, 0) +/* 0x180B */ DEFINE_SFX(CHAN_1022, NA_SE_IT_HOOKSHOT_CHAIN, 0x30, 0, 0, SFX_FLAG_10) +/* 0x180C */ DEFINE_SFX(CHAN_103A, NA_SE_IT_SHIELD_REFLECT_MG, 0x30, 1, 0, SFX_FLAG_10) +/* 0x180D */ DEFINE_SFX(CHAN_106A, NA_SE_IT_BOMB_IGNIT, 0x50, 0, 0, 0) +/* 0x180E */ DEFINE_SFX(CHAN_1076, NA_SE_IT_BOMB_EXPLOSION, 0x90, 2, 0, 0) +/* 0x180F */ DEFINE_SFX(CHAN_1085, NA_SE_IT_BOMB_UNEXPLOSION, 0x50, 2, 0, 0) +/* 0x1810 */ DEFINE_SFX(CHAN_10A2, NA_SE_IT_BOOMERANG_FLY, 0x30, 0, 0, SFX_FLAG_10) +/* 0x1811 */ DEFINE_SFX(CHAN_10D2, NA_SE_IT_SWORD_STRIKE, 0x40, 2, 0, 0) +/* 0x1812 */ DEFINE_SFX(CHAN_10E6, NA_SE_IT_HAMMER_SWING, 0x30, 0, 1, 0) #if PLATFORM_N64 -/* 0x1813 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_REFLECT, 0x20, 0, 0, 0) +/* 0x1813 */ DEFINE_SFX(CHAN_10F4, NA_SE_IT_HOOKSHOT_REFLECT, 0x20, 0, 0, 0) #else -/* 0x1813 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_REFLECT, 0x30, 0, 0, 0) +/* 0x1813 */ DEFINE_SFX(CHAN_10F4, NA_SE_IT_HOOKSHOT_REFLECT, 0x30, 0, 0, 0) #endif -/* 0x1814 */ DEFINE_SFX(NA_SE_IT_ARROW_STICK_CRE, 0x30, 0, 0, 0) -/* 0x1815 */ DEFINE_SFX(NA_SE_IT_ARROW_STICK_OBJ, 0x34, 0, 0, 0) -/* 0x1816 */ DEFINE_SFX(NA_SE_IT_DUMMY, 0x30, 0, 0, 0) -/* 0x1817 */ DEFINE_SFX(NA_SE_IT_DUMMY2, 0x30, 0, 0, 0) -/* 0x1818 */ DEFINE_SFX(NA_SE_IT_SWORD_SWING_HARD, 0x30, 0, 0, 0) -/* 0x1819 */ DEFINE_SFX(NA_SE_IT_DUMMY3, 0x30, 0, 0, 0) -/* 0x181A */ DEFINE_SFX(NA_SE_IT_WALL_HIT_HARD, 0x40, 0, 0, 0) -/* 0x181B */ DEFINE_SFX(NA_SE_IT_WALL_HIT_SOFT, 0x30, 0, 0, 0) -/* 0x181C */ DEFINE_SFX(NA_SE_IT_STONE_HIT, 0x30, 0, 0, 0) -/* 0x181D */ DEFINE_SFX(NA_SE_IT_WOODSTICK_BROKEN, 0x30, 0, 0, 0) -/* 0x181E */ DEFINE_SFX(NA_SE_IT_LASH, 0x30, 0, 2, 0) -/* 0x181F */ DEFINE_SFX(NA_SE_IT_SHIELD_POSTURE, 0x30, 0, 1, 0) -/* 0x1820 */ DEFINE_SFX(NA_SE_IT_SLING_SHOT, 0x30, 0, 0, SFX_FLAG_10) -/* 0x1821 */ DEFINE_SFX(NA_SE_IT_SLING_DRAW, 0x20, 0, 0, SFX_FLAG_10) -/* 0x1822 */ DEFINE_SFX(NA_SE_IT_SWORD_CHARGE, 0x30, 0, 0, 0) -/* 0x1823 */ DEFINE_SFX(NA_SE_IT_ROLLING_CUT, 0x30, 0, 0, 0) -/* 0x1824 */ DEFINE_SFX(NA_SE_IT_SWORD_STRIKE_HARD, 0x30, 0, 0, 0) -/* 0x1825 */ DEFINE_SFX(NA_SE_IT_SLING_REFLECT, 0x30, 0, 0, 0) -/* 0x1826 */ DEFINE_SFX(NA_SE_IT_SHIELD_REMOVE, 0x30, 0, 0, 0) -/* 0x1827 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_READY, 0x30, 0, 0, SFX_FLAG_10) -/* 0x1828 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_RECEIVE, 0x30, 0, 0, SFX_FLAG_10) -/* 0x1829 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_STICK_OBJ, 0x60, 3, 1, 0) -/* 0x182A */ DEFINE_SFX(NA_SE_IT_SWORD_REFLECT_MG, 0x30, 1, 0, 0) -/* 0x182B */ DEFINE_SFX(NA_SE_IT_DEKU, 0x30, 1, 0, SFX_FLAG_10) -/* 0x182C */ DEFINE_SFX(NA_SE_IT_WALL_HIT_BUYO, 0x30, 0, 0, 0) -/* 0x182D */ DEFINE_SFX(NA_SE_IT_SWORD_PUTAWAY_STN, 0x30, 0, 0, 0) -/* 0x182E */ DEFINE_SFX(NA_SE_IT_ROLLING_CUT_LV1, 0xA0, 2, 0, 0) -/* 0x182F */ DEFINE_SFX(NA_SE_IT_ROLLING_CUT_LV2, 0xA0, 2, 0, 0) -/* 0x1830 */ DEFINE_SFX(NA_SE_IT_BOW_FLICK, 0x30, 0, 0, SFX_FLAG_10) -/* 0x1831 */ DEFINE_SFX(NA_SE_IT_BOMBCHU_MOVE, 0x30, 0, 0, 0) -/* 0x1832 */ DEFINE_SFX(NA_SE_IT_SHIELD_CHARGE_LV1, 0x60, 0, 0, 0) -/* 0x1833 */ DEFINE_SFX(NA_SE_IT_SHIELD_CHARGE_LV2, 0x60, 0, 0, 0) -/* 0x1834 */ DEFINE_SFX(NA_SE_IT_SHIELD_CHARGE_LV3, 0x60, 0, 0, 0) -/* 0x1835 */ DEFINE_SFX(NA_SE_IT_SLING_FLICK, 0x30, 0, 0, SFX_FLAG_10) -/* 0x1836 */ DEFINE_SFX(NA_SE_IT_SWORD_STICK_STN, 0x30, 0, 0, 0) -/* 0x1837 */ DEFINE_SFX(NA_SE_IT_REFLECTION_WOOD, 0x60, 1, 2, 0) -/* 0x1838 */ DEFINE_SFX(NA_SE_IT_SHIELD_REFLECT_MG2, 0x30, 0, 0, 0) -/* 0x1839 */ DEFINE_SFX(NA_SE_IT_MAGIC_ARROW_SHOT, 0x30, 0, 0, 0) -/* 0x183A */ DEFINE_SFX(NA_SE_IT_EXPLOSION_FRAME, 0x60, 3, 0, SFX_FLAG_15) -/* 0x183B */ DEFINE_SFX(NA_SE_IT_EXPLOSION_ICE, 0x60, 3, 0, SFX_FLAG_15) -/* 0x183C */ DEFINE_SFX(NA_SE_IT_EXPLOSION_LIGHT, 0x60, 3, 0, SFX_FLAG_15) -/* 0x183D */ DEFINE_SFX(NA_SE_IT_FISHING_REEL_SLOW, 0x30, 0, 0, SFX_FLAG_14) -/* 0x183E */ DEFINE_SFX(NA_SE_IT_FISHING_REEL_HIGH, 0x30, 0, 0, SFX_FLAG_14) -/* 0x183F */ DEFINE_SFX(NA_SE_IT_PULL_FISHING_ROD, 0x30, 0, 1, 0) -/* 0x1840 */ DEFINE_SFX(NA_SE_IT_DM_FLYING_GOD_PASS, 0x80, 3, 0, 0) -/* 0x1841 */ DEFINE_SFX(NA_SE_IT_DM_FLYING_GOD_DASH, 0x80, 3, 0, 0) -/* 0x1842 */ DEFINE_SFX(NA_SE_IT_DM_RING_EXPLOSION, 0x30, 3, 0, 0) -/* 0x1843 */ DEFINE_SFX(NA_SE_IT_DM_RING_GATHER, 0x30, 0, 0, 0) -/* 0x1844 */ DEFINE_SFX(NA_SE_IT_INGO_HORSE_NEIGH, 0x30, 0, 1, 0) -/* 0x1845 */ DEFINE_SFX(NA_SE_IT_EARTHQUAKE, 0x30, 0, 0, 0) -/* 0x1846 */ DEFINE_SFX(NA_SE_IT_DUMMY4, 0x30, 0, 0, 0) -/* 0x1847 */ DEFINE_SFX(NA_SE_IT_KAKASHI_JUMP, 0x30, 0, 0, 0) -/* 0x1848 */ DEFINE_SFX(NA_SE_IT_FLAME, 0x30, 0, 0, 0) -/* 0x1849 */ DEFINE_SFX(NA_SE_IT_SHIELD_BEAM, 0x30, 0, 0, 0) -/* 0x184A */ DEFINE_SFX(NA_SE_IT_FISHING_HIT, 0x30, 0, 0, 0) -/* 0x184B */ DEFINE_SFX(NA_SE_IT_GOODS_APPEAR, 0x30, 0, 0, 0) -/* 0x184C */ DEFINE_SFX(NA_SE_IT_MAJIN_SWORD_BROKEN, 0x80, 0, 0, 0) -/* 0x184D */ DEFINE_SFX(NA_SE_IT_HAND_CLAP, 0x30, 0, 0, 0) -/* 0x184E */ DEFINE_SFX(NA_SE_IT_MASTER_SWORD_SWING, 0x30, 0, 0, 0) -/* 0x184F */ DEFINE_SFX(NA_SE_IT_DUMMY5, 0x30, 0, 0, 0) +/* 0x1814 */ DEFINE_SFX(CHAN_110B, NA_SE_IT_ARROW_STICK_CRE, 0x30, 0, 0, 0) +/* 0x1815 */ DEFINE_SFX(CHAN_1120, NA_SE_IT_ARROW_STICK_OBJ, 0x34, 0, 0, 0) +/* 0x1816 */ DEFINE_SFX(CHAN_1123, NA_SE_IT_DUMMY, 0x30, 0, 0, 0) +/* 0x1817 */ DEFINE_SFX(CHAN_1146, NA_SE_IT_DUMMY2, 0x30, 0, 0, 0) +/* 0x1818 */ DEFINE_SFX(CHAN_1169, NA_SE_IT_SWORD_SWING_HARD, 0x30, 0, 0, 0) +/* 0x1819 */ DEFINE_SFX(CHAN_1E10, NA_SE_IT_DUMMY3, 0x30, 0, 0, 0) +/* 0x181A */ DEFINE_SFX(CHAN_1187, NA_SE_IT_WALL_HIT_HARD, 0x40, 0, 0, 0) +/* 0x181B */ DEFINE_SFX(CHAN_119A, NA_SE_IT_WALL_HIT_SOFT, 0x30, 0, 0, 0) +/* 0x181C */ DEFINE_SFX(CHAN_11B3, NA_SE_IT_STONE_HIT, 0x30, 0, 0, 0) +/* 0x181D */ DEFINE_SFX(CHAN_11C4, NA_SE_IT_WOODSTICK_BROKEN, 0x30, 0, 0, 0) +/* 0x181E */ DEFINE_SFX(CHAN_11D5, NA_SE_IT_LASH, 0x30, 0, 2, 0) +/* 0x181F */ DEFINE_SFX(CHAN_11E8, NA_SE_IT_SHIELD_POSTURE, 0x30, 0, 1, 0) +/* 0x1820 */ DEFINE_SFX(CHAN_1208, NA_SE_IT_SLING_SHOT, 0x30, 0, 0, SFX_FLAG_10) +/* 0x1821 */ DEFINE_SFX(CHAN_1216, NA_SE_IT_SLING_DRAW, 0x20, 0, 0, SFX_FLAG_10) +/* 0x1822 */ DEFINE_SFX(CHAN_1224, NA_SE_IT_SWORD_CHARGE, 0x30, 0, 0, 0) +/* 0x1823 */ DEFINE_SFX(CHAN_125A, NA_SE_IT_ROLLING_CUT, 0x30, 0, 0, 0) +/* 0x1824 */ DEFINE_SFX(CHAN_1271, NA_SE_IT_SWORD_STRIKE_HARD, 0x30, 0, 0, 0) +/* 0x1825 */ DEFINE_SFX(CHAN_128A, NA_SE_IT_SLING_REFLECT, 0x30, 0, 0, 0) +/* 0x1826 */ DEFINE_SFX(CHAN_12A0, NA_SE_IT_SHIELD_REMOVE, 0x30, 0, 0, 0) +/* 0x1827 */ DEFINE_SFX(CHAN_12C0, NA_SE_IT_HOOKSHOT_READY, 0x30, 0, 0, SFX_FLAG_10) +/* 0x1828 */ DEFINE_SFX(CHAN_12DA, NA_SE_IT_HOOKSHOT_RECEIVE, 0x30, 0, 0, SFX_FLAG_10) +/* 0x1829 */ DEFINE_SFX(CHAN_12F4, NA_SE_IT_HOOKSHOT_STICK_OBJ, 0x60, 3, 1, 0) +/* 0x182A */ DEFINE_SFX(CHAN_1316, NA_SE_IT_SWORD_REFLECT_MG, 0x30, 1, 0, 0) +/* 0x182B */ DEFINE_SFX(CHAN_132D, NA_SE_IT_DEKU, 0x30, 1, 0, SFX_FLAG_10) +/* 0x182C */ DEFINE_SFX(CHAN_1350, NA_SE_IT_WALL_HIT_BUYO, 0x30, 0, 0, 0) +/* 0x182D */ DEFINE_SFX(CHAN_1396, NA_SE_IT_SWORD_PUTAWAY_STN, 0x30, 0, 0, 0) +/* 0x182E */ DEFINE_SFX(CHAN_13A7, NA_SE_IT_ROLLING_CUT_LV1, 0xA0, 2, 0, 0) +/* 0x182F */ DEFINE_SFX(CHAN_13CA, NA_SE_IT_ROLLING_CUT_LV2, 0xA0, 2, 0, 0) +/* 0x1830 */ DEFINE_SFX(CHAN_13E8, NA_SE_IT_BOW_FLICK, 0x30, 0, 0, SFX_FLAG_10) +/* 0x1831 */ DEFINE_SFX(CHAN_13FE, NA_SE_IT_BOMBCHU_MOVE, 0x30, 0, 0, 0) +/* 0x1832 */ DEFINE_SFX(CHAN_1411, NA_SE_IT_SHIELD_CHARGE_LV1, 0x60, 0, 0, 0) +/* 0x1833 */ DEFINE_SFX(CHAN_145D, NA_SE_IT_SHIELD_CHARGE_LV2, 0x60, 0, 0, 0) +/* 0x1834 */ DEFINE_SFX(CHAN_1462, NA_SE_IT_SHIELD_CHARGE_LV3, 0x60, 0, 0, 0) +/* 0x1835 */ DEFINE_SFX(CHAN_1467, NA_SE_IT_SLING_FLICK, 0x30, 0, 0, SFX_FLAG_10) +/* 0x1836 */ DEFINE_SFX(CHAN_147C, NA_SE_IT_SWORD_STICK_STN, 0x30, 0, 0, 0) +/* 0x1837 */ DEFINE_SFX(CHAN_1493, NA_SE_IT_REFLECTION_WOOD, 0x60, 1, 2, 0) +/* 0x1838 */ DEFINE_SFX(CHAN_14B0, NA_SE_IT_SHIELD_REFLECT_MG2, 0x30, 0, 0, 0) +/* 0x1839 */ DEFINE_SFX(CHAN_14B9, NA_SE_IT_MAGIC_ARROW_SHOT, 0x30, 0, 0, 0) +/* 0x183A */ DEFINE_SFX(CHAN_14CA, NA_SE_IT_EXPLOSION_FRAME, 0x60, 3, 0, SFX_FLAG_15) +/* 0x183B */ DEFINE_SFX(CHAN_14E5, NA_SE_IT_EXPLOSION_ICE, 0x60, 3, 0, SFX_FLAG_15) +/* 0x183C */ DEFINE_SFX(CHAN_14F6, NA_SE_IT_EXPLOSION_LIGHT, 0x60, 3, 0, SFX_FLAG_15) +/* 0x183D */ DEFINE_SFX(CHAN_1505, NA_SE_IT_FISHING_REEL_SLOW, 0x30, 0, 0, SFX_FLAG_14) +/* 0x183E */ DEFINE_SFX(CHAN_1510, NA_SE_IT_FISHING_REEL_HIGH, 0x30, 0, 0, SFX_FLAG_14) +/* 0x183F */ DEFINE_SFX(CHAN_0FDB, NA_SE_IT_PULL_FISHING_ROD, 0x30, 0, 1, 0) +/* 0x1840 */ DEFINE_SFX(CHAN_151B, NA_SE_IT_DM_FLYING_GOD_PASS, 0x80, 3, 0, 0) +/* 0x1841 */ DEFINE_SFX(CHAN_154A, NA_SE_IT_DM_FLYING_GOD_DASH, 0x80, 3, 0, 0) +/* 0x1842 */ DEFINE_SFX(CHAN_157D, NA_SE_IT_DM_RING_EXPLOSION, 0x30, 3, 0, 0) +/* 0x1843 */ DEFINE_SFX(CHAN_15BB, NA_SE_IT_DM_RING_GATHER, 0x30, 0, 0, 0) +/* 0x1844 */ DEFINE_SFX(CHAN_190A, NA_SE_IT_INGO_HORSE_NEIGH, 0x30, 0, 1, 0) +/* 0x1845 */ DEFINE_SFX(CHAN_15BB, NA_SE_IT_EARTHQUAKE, 0x30, 0, 0, 0) +/* 0x1846 */ DEFINE_SFX(CHAN_15D0, NA_SE_IT_DUMMY4, 0x30, 0, 0, 0) +/* 0x1847 */ DEFINE_SFX(CHAN_15DF, NA_SE_IT_KAKASHI_JUMP, 0x30, 0, 0, 0) +/* 0x1848 */ DEFINE_SFX(CHAN_15F3, NA_SE_IT_FLAME, 0x30, 0, 0, 0) +/* 0x1849 */ DEFINE_SFX(CHAN_2848, NA_SE_IT_SHIELD_BEAM, 0x30, 0, 0, 0) +/* 0x184A */ DEFINE_SFX(CHAN_15FA, NA_SE_IT_FISHING_HIT, 0x30, 0, 0, 0) +/* 0x184B */ DEFINE_SFX(CHAN_1617, NA_SE_IT_GOODS_APPEAR, 0x30, 0, 0, 0) +/* 0x184C */ DEFINE_SFX(CHAN_1624, NA_SE_IT_MAJIN_SWORD_BROKEN, 0x80, 0, 0, 0) +/* 0x184D */ DEFINE_SFX(CHAN_163E, NA_SE_IT_HAND_CLAP, 0x30, 0, 0, 0) +/* 0x184E */ DEFINE_SFX(CHAN_1648, NA_SE_IT_MASTER_SWORD_SWING, 0x30, 0, 0, 0) +/* 0x184F */ DEFINE_SFX(CHAN_1085, NA_SE_IT_DUMMY5, 0x30, 0, 0, 0) diff --git a/include/tables/sfx/ocarinabank_table.h b/include/tables/sfx/ocarinabank_table.h index d10944fab7..42448dd9e1 100644 --- a/include/tables/sfx/ocarinabank_table.h +++ b/include/tables/sfx/ocarinabank_table.h @@ -2,19 +2,18 @@ * Sfx Ocarina Bank * * DEFINE_SFX should be used for all sfx define in the ocarina bank from sequence 0 + * - Argument 0: Channel name for sequence 0 * - Argument 1: Enum value for this sfx * - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance * - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3) * - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3) * - Argument 5: Various flags to add properties to the sfx - * - * WARNING: entries must align with the table defined for the ocarina bank in sequence 0 */ -/* 0x5800 */ DEFINE_SFX(NA_SE_OC_OCARINA, 0x30, 0, 0, 0) -/* 0x5801 */ DEFINE_SFX(NA_SE_OC_ABYSS, 0x30, 0, 0, SFX_FLAG_5) -/* 0x5802 */ DEFINE_SFX(NA_SE_OC_DOOR_OPEN, 0x30, 2, 1, SFX_FLAG_10 | SFX_FLAG_9) -/* 0x5803 */ DEFINE_SFX(NA_SE_OC_SECRET_WARP_IN, 0x30, 0, 0, 0) -/* 0x5804 */ DEFINE_SFX(NA_SE_OC_SECRET_WARP_OUT, 0x30, 0, 0, 0) -/* 0x5805 */ DEFINE_SFX(NA_SE_OC_SECRET_HOLE_OUT, 0x30, 0, 0, 0) -/* 0x5806 */ DEFINE_SFX(NA_SE_OC_REVENGE, 0x30, 0, 0, 0) -/* 0x5807 */ DEFINE_SFX(NA_SE_OC_HINT_MOVIE, 0x30, 0, 0, 0) +/* 0x5800 */ DEFINE_SFX(CHAN_5EF5, NA_SE_OC_OCARINA, 0x30, 0, 0, 0) +/* 0x5801 */ DEFINE_SFX(CHAN_5F69, NA_SE_OC_ABYSS, 0x30, 0, 0, SFX_FLAG_5) +/* 0x5802 */ DEFINE_SFX(CHAN_18C5, NA_SE_OC_DOOR_OPEN, 0x30, 2, 1, SFX_FLAG_10 | SFX_FLAG_9) +/* 0x5803 */ DEFINE_SFX(CHAN_5F65, NA_SE_OC_SECRET_WARP_IN, 0x30, 0, 0, 0) +/* 0x5804 */ DEFINE_SFX(CHAN_5F40, NA_SE_OC_SECRET_WARP_OUT, 0x30, 0, 0, 0) +/* 0x5805 */ DEFINE_SFX(CHAN_27AE, NA_SE_OC_SECRET_HOLE_OUT, 0x30, 0, 0, 0) +/* 0x5806 */ DEFINE_SFX(CHAN_5F96, NA_SE_OC_REVENGE, 0x30, 0, 0, 0) +/* 0x5807 */ DEFINE_SFX(CHAN_5EF5, NA_SE_OC_HINT_MOVIE, 0x30, 0, 0, 0) diff --git a/include/tables/sfx/playerbank_table.h b/include/tables/sfx/playerbank_table.h index 128ba0c48b..efe161f908 100644 --- a/include/tables/sfx/playerbank_table.h +++ b/include/tables/sfx/playerbank_table.h @@ -2,235 +2,234 @@ * Sfx Player Bank * * DEFINE_SFX should be used for all sfx define in the player bank from sequence 0 + * - Argument 0: Channel name for sequence 0 * - Argument 1: Enum value for this sfx * - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance * - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3) * - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3) * - Argument 5: Various flags to add properties to the sfx - * - * WARNING: entries must align with the table defined for the player bank in sequence 0 */ -/* 0x800 */ DEFINE_SFX(NA_SE_PL_WALK_GROUND, 0x20, 0, 2, SFX_FLAG_10) -/* 0x801 */ DEFINE_SFX(NA_SE_PL_WALK_SAND, 0x20, 0, 2, SFX_FLAG_10) -/* 0x802 */ DEFINE_SFX(NA_SE_PL_WALK_CONCRETE, 0x20, 0, 2, SFX_FLAG_10) -/* 0x803 */ DEFINE_SFX(NA_SE_PL_WALK_DIRT, 0x20, 0, 2, SFX_FLAG_10) -/* 0x804 */ DEFINE_SFX(NA_SE_PL_WALK_WATER0, 0x20, 0, 1, SFX_FLAG_10) -/* 0x805 */ DEFINE_SFX(NA_SE_PL_WALK_WATER1, 0x20, 0, 1, SFX_FLAG_10) -/* 0x806 */ DEFINE_SFX(NA_SE_PL_WALK_WATER2, 0x20, 0, 1, SFX_FLAG_10) -/* 0x807 */ DEFINE_SFX(NA_SE_PL_WALK_MAGMA, 0x20, 0, 1, SFX_FLAG_10) -/* 0x808 */ DEFINE_SFX(NA_SE_PL_WALK_GRASS, 0x20, 0, 2, SFX_FLAG_10) -/* 0x809 */ DEFINE_SFX(NA_SE_PL_WALK_IRON, 0x20, 0, 1, SFX_FLAG_10) -/* 0x80A */ DEFINE_SFX(NA_SE_PL_WALK_LADDER, 0x20, 0, 2, SFX_FLAG_10) -/* 0x80B */ DEFINE_SFX(NA_SE_PL_WALK_GLASS, 0x20, 0, 0, SFX_FLAG_10) -/* 0x80C */ DEFINE_SFX(NA_SE_PL_WALK_WALL, 0x20, 0, 0, SFX_FLAG_10) -/* 0x80D */ DEFINE_SFX(NA_SE_PL_WALK_HEAVYBOOTS, 0x20, 0, 0, SFX_FLAG_10) -/* 0x80E */ DEFINE_SFX(NA_SE_PL_DUMMY_14, 0x20, 0, 0, SFX_FLAG_10) -/* 0x80F */ DEFINE_SFX(NA_SE_PL_WALK_ICE, 0x20, 0, 0, SFX_FLAG_10) -/* 0x810 */ DEFINE_SFX(NA_SE_PL_JUMP, 0x30, 0, 0, SFX_FLAG_10) -/* 0x811 */ DEFINE_SFX(NA_SE_PL_JUMP_SAND, 0x30, 0, 0, SFX_FLAG_10) -/* 0x812 */ DEFINE_SFX(NA_SE_PL_JUMP_CONCRETE, 0x30, 0, 0, SFX_FLAG_10) -/* 0x813 */ DEFINE_SFX(NA_SE_PL_JUMP_DIRT, 0x30, 0, 0, SFX_FLAG_10) -/* 0x814 */ DEFINE_SFX(NA_SE_PL_JUMP_WATER0, 0x30, 0, 0, SFX_FLAG_10) -/* 0x815 */ DEFINE_SFX(NA_SE_PL_JUMP_WATER1, 0x30, 0, 0, SFX_FLAG_10) -/* 0x816 */ DEFINE_SFX(NA_SE_PL_JUMP_WATER2, 0x30, 0, 0, SFX_FLAG_10) -/* 0x817 */ DEFINE_SFX(NA_SE_PL_JUMP_MAGMA, 0x30, 0, 0, SFX_FLAG_10) -/* 0x818 */ DEFINE_SFX(NA_SE_PL_JUMP_GRASS, 0x30, 0, 0, SFX_FLAG_10) -/* 0x819 */ DEFINE_SFX(NA_SE_PL_JUMP_IRON, 0x30, 0, 0, SFX_FLAG_10) -/* 0x81A */ DEFINE_SFX(NA_SE_PL_JUMP_LADDER, 0x30, 0, 0, SFX_FLAG_10) -/* 0x81B */ DEFINE_SFX(NA_SE_PL_JUMP_GLASS, 0x30, 0, 0, SFX_FLAG_10) -/* 0x81C */ DEFINE_SFX(NA_SE_PL_DUMMY28, 0x30, 0, 0, SFX_FLAG_10) -/* 0x81D */ DEFINE_SFX(NA_SE_PL_JUMP_HEAVYBOOTS, 0x30, 0, 0, SFX_FLAG_10) -/* 0x81E */ DEFINE_SFX(NA_SE_PL_DUMMY30, 0x30, 0, 0, SFX_FLAG_10) -/* 0x81F */ DEFINE_SFX(NA_SE_PL_JUMP_ICE, 0x30, 0, 0, SFX_FLAG_10) -/* 0x820 */ DEFINE_SFX(NA_SE_PL_LAND, 0x40, 0, 1, SFX_FLAG_10) -/* 0x821 */ DEFINE_SFX(NA_SE_PL_LAND_SAND, 0x40, 0, 1, SFX_FLAG_10) -/* 0x822 */ DEFINE_SFX(NA_SE_PL_LAND_CONCRETE, 0x40, 0, 1, SFX_FLAG_10) -/* 0x823 */ DEFINE_SFX(NA_SE_PL_LAND_DIRT, 0x40, 0, 1, SFX_FLAG_10) -/* 0x824 */ DEFINE_SFX(NA_SE_PL_LAND_WATER0, 0x40, 0, 1, SFX_FLAG_10) -/* 0x825 */ DEFINE_SFX(NA_SE_PL_LAND_WATER1, 0x40, 0, 1, SFX_FLAG_10) -/* 0x826 */ DEFINE_SFX(NA_SE_PL_LAND_WATER2, 0x40, 0, 1, SFX_FLAG_10) -/* 0x827 */ DEFINE_SFX(NA_SE_PL_LAND_MAGMA, 0x40, 0, 1, SFX_FLAG_10) -/* 0x828 */ DEFINE_SFX(NA_SE_PL_LAND_GRASS, 0x40, 0, 1, SFX_FLAG_10) -/* 0x829 */ DEFINE_SFX(NA_SE_PL_LAND_IRON, 0x40, 0, 1, SFX_FLAG_10) -/* 0x82A */ DEFINE_SFX(NA_SE_PL_LAND_LADDER, 0x40, 0, 1, SFX_FLAG_10) -/* 0x82B */ DEFINE_SFX(NA_SE_PL_LAND_GLASS, 0x40, 0, 1, SFX_FLAG_10) -/* 0x82C */ DEFINE_SFX(NA_SE_PL_DUMMY_44, 0x40, 0, 1, SFX_FLAG_10) -/* 0x82D */ DEFINE_SFX(NA_SE_PL_LAND_HEAVYBOOTS, 0x40, 0, 1, SFX_FLAG_10) -/* 0x82E */ DEFINE_SFX(NA_SE_PL_DUMMY_46, 0x40, 0, 1, SFX_FLAG_10) -/* 0x82F */ DEFINE_SFX(NA_SE_PL_LAND_ICE, 0x40, 0, 1, SFX_FLAG_10) -/* 0x830 */ DEFINE_SFX(NA_SE_PL_SLIPDOWN, 0x30, 0, 2, 0) -/* 0x831 */ DEFINE_SFX(NA_SE_PL_CLIMB_CLIFF, 0x30, 0, 0, 0) -/* 0x832 */ DEFINE_SFX(NA_SE_PL_SIT_ON_HORSE, 0x30, 0, 0, 0) -/* 0x833 */ DEFINE_SFX(NA_SE_PL_GET_OFF_HORSE, 0x30, 0, 0, 0) -/* 0x834 */ DEFINE_SFX(NA_SE_PL_TAKE_OUT_SHIELD, 0x30, 0, 0, SFX_FLAG_10) -/* 0x835 */ DEFINE_SFX(NA_SE_PL_CHANGE_ARMS, 0x30, 0, 0, SFX_FLAG_10) -/* 0x836 */ DEFINE_SFX(NA_SE_PL_CATCH_BOOMERANG, 0x30, 0, 0, SFX_FLAG_10) -/* 0x837 */ DEFINE_SFX(NA_SE_PL_DUMMY_55, 0x30, 0, 1, 0) -/* 0x838 */ DEFINE_SFX(NA_SE_PL_DUMMY_56, 0x30, 0, 1, 0) -/* 0x839 */ DEFINE_SFX(NA_SE_PL_SWIM, 0x30, 0, 2, 0) -/* 0x83A */ DEFINE_SFX(NA_SE_PL_THROW, 0x30, 0, 0, SFX_FLAG_10) -/* 0x83B */ DEFINE_SFX(NA_SE_PL_BODY_BOUND, 0x30, 0, 0, SFX_FLAG_10) -/* 0x83C */ DEFINE_SFX(NA_SE_PL_ROLL, 0x40, 0, 0, SFX_FLAG_10) -/* 0x83D */ DEFINE_SFX(NA_SE_PL_SKIP, 0x30, 0, 0, SFX_FLAG_10) -/* 0x83E */ DEFINE_SFX(NA_SE_PL_BODY_HIT, 0x30, 2, 0, SFX_FLAG_10) -/* 0x83F */ DEFINE_SFX(NA_SE_PL_DAMAGE, 0x30, 0, 0, SFX_FLAG_10) -/* 0x840 */ DEFINE_SFX(NA_SE_PL_SLIP, 0x30, 0, 1, 0) -/* 0x841 */ DEFINE_SFX(NA_SE_PL_SLIP_SAND, 0x30, 0, 1, 0) -/* 0x842 */ DEFINE_SFX(NA_SE_PL_SLIP_CONCRETE, 0x30, 0, 1, 0) -/* 0x843 */ DEFINE_SFX(NA_SE_PL_SLIP_DIRT, 0x30, 0, 1, 0) -/* 0x844 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER0, 0x30, 0, 1, 0) -/* 0x845 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER1, 0x30, 0, 1, 0) -/* 0x846 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER2, 0x30, 0, 1, 0) -/* 0x847 */ DEFINE_SFX(NA_SE_PL_SLIP_MAGMA, 0x30, 0, 1, 0) -/* 0x848 */ DEFINE_SFX(NA_SE_PL_SLIP_GRASS, 0x30, 0, 1, 0) -/* 0x849 */ DEFINE_SFX(NA_SE_PL_SLIP_IRON, 0x30, 0, 1, 0) -/* 0x84A */ DEFINE_SFX(NA_SE_PL_SLIP_LADDER, 0x30, 0, 1, 0) -/* 0x84B */ DEFINE_SFX(NA_SE_PL_SLIP_GLASS, 0x30, 0, 1, 0) -/* 0x84C */ DEFINE_SFX(NA_SE_PL_DUMMY76, 0x30, 0, 0, 0) -/* 0x84D */ DEFINE_SFX(NA_SE_PL_SLIP_HEAVYBOOTS, 0x30, 0, 0, 0) -/* 0x84E */ DEFINE_SFX(NA_SE_PL_DUMMY78, 0x30, 0, 0, 0) -/* 0x84F */ DEFINE_SFX(NA_SE_PL_SLIP_ICE, 0x30, 0, 0, 0) -/* 0x850 */ DEFINE_SFX(NA_SE_PL_BOUND, 0x80, 0, 0, 0) -/* 0x851 */ DEFINE_SFX(NA_SE_PL_BOUND_SAND, 0x80, 0, 0, 0) -/* 0x852 */ DEFINE_SFX(NA_SE_PL_BOUND_CONCRETE, 0x80, 0, 0, 0) -/* 0x853 */ DEFINE_SFX(NA_SE_PL_BOUND_DIRT, 0x80, 0, 0, 0) -/* 0x854 */ DEFINE_SFX(NA_SE_PL_BOUND_WATER0, 0x80, 0, 0, 0) -/* 0x855 */ DEFINE_SFX(NA_SE_PL_BOUND_WATER1, 0x80, 0, 0, 0) -/* 0x856 */ DEFINE_SFX(NA_SE_PL_BOUND_WATER2, 0x80, 0, 0, 0) -/* 0x857 */ DEFINE_SFX(NA_SE_PL_BOUND_MAGMA, 0x80, 0, 0, 0) -/* 0x858 */ DEFINE_SFX(NA_SE_PL_BOUND_GRASS, 0x80, 0, 0, 0) -/* 0x859 */ DEFINE_SFX(NA_SE_PL_BOUND_IRON, 0x80, 0, 0, 0) -/* 0x85A */ DEFINE_SFX(NA_SE_PL_BOUND_LADDER, 0x80, 0, 0, 0) -/* 0x85B */ DEFINE_SFX(NA_SE_PL_BOUND_WOOD, 0x80, 0, 0, 0) -/* 0x85C */ DEFINE_SFX(NA_SE_PL_DUMMY_92, 0x80, 0, 0, 0) -/* 0x85D */ DEFINE_SFX(NA_SE_PL_BOUND_HEAVYBOOTS, 0x80, 0, 0, 0) -/* 0x85E */ DEFINE_SFX(NA_SE_PL_DUMMY_94, 0x80, 0, 0, 0) -/* 0x85F */ DEFINE_SFX(NA_SE_PL_BOUND_ICE, 0x80, 0, 0, 0) -/* 0x860 */ DEFINE_SFX(NA_SE_PL_DUMMY_96, 0x30, 0, 0, 0) -/* 0x861 */ DEFINE_SFX(NA_SE_PL_DUMMY_97, 0x30, 0, 0, 0) -/* 0x862 */ DEFINE_SFX(NA_SE_PL_DUMMY_98, 0x30, 0, 0, 0) -/* 0x863 */ DEFINE_SFX(NA_SE_PL_FACE_UP, 0x30, 0, 0, 0) -/* 0x864 */ DEFINE_SFX(NA_SE_PL_DIVE_BUBBLE, 0x30, 0, 0, 0) -/* 0x865 */ DEFINE_SFX(NA_SE_PL_MOVE_BUBBLE, 0x30, 0, 0, 0) -/* 0x866 */ DEFINE_SFX(NA_SE_PL_METALEFFECT_KID, 0x30, 0, 0, SFX_FLAG_10) -/* 0x867 */ DEFINE_SFX(NA_SE_PL_METALEFFECT_ADULT, 0x30, 0, 0, SFX_FLAG_10) -/* 0x868 */ DEFINE_SFX(NA_SE_PL_SPARK, 0x30, 0, 0, 0) -/* 0x869 */ DEFINE_SFX(NA_SE_PL_PULL_UP_PLANT, 0x30, 0, 0, 0) -/* 0x86A */ DEFINE_SFX(NA_SE_PL_PULL_UP_ROCK, 0x30, 0, 0, 0) -/* 0x86B */ DEFINE_SFX(NA_SE_PL_IN_BUBBLE, 0x30, 0, 0, 0) -/* 0x86C */ DEFINE_SFX(NA_SE_PL_PULL_UP_BIGROCK, 0x30, 3, 0, 0) -/* 0x86D */ DEFINE_SFX(NA_SE_PL_SWORD_CHARGE, 0x30, 0, 0, 0) -/* 0x86E */ DEFINE_SFX(NA_SE_PL_FREEZE, 0x30, 0, 0, 0) -/* 0x86F */ DEFINE_SFX(NA_SE_PL_PULL_UP_POT, 0x30, 0, 0, 0) -/* 0x870 */ DEFINE_SFX(NA_SE_PL_KNOCK, 0x30, 0, 0, 0) -/* 0x871 */ DEFINE_SFX(NA_SE_PL_CALM_HIT, 0x30, 0, 2, 0) -/* 0x872 */ DEFINE_SFX(NA_SE_PL_CALM_PAT, 0x30, 0, 0, 0) -/* 0x873 */ DEFINE_SFX(NA_SE_PL_SUBMERGE, 0x30, 0, 0, 0) -/* 0x874 */ DEFINE_SFX(NA_SE_PL_FREEZE_S, 0x30, 3, 0, 0) -/* 0x875 */ DEFINE_SFX(NA_SE_PL_ICE_BROKEN, 0x30, 1, 0, 0) -/* 0x876 */ DEFINE_SFX(NA_SE_PL_SLIP_ICE_LELEL, 0x30, 0, 0, 0) -/* 0x877 */ DEFINE_SFX(NA_SE_PL_PUT_OUT_ITEM, 0x30, 0, 0, 0) -/* 0x878 */ DEFINE_SFX(NA_SE_PL_PULL_UP_WOODBOX, 0x30, 0, 0, 0) -/* 0x879 */ DEFINE_SFX(NA_SE_PL_MAGIC_FIRE, 0x30, 0, 0, 0) -/* 0x87A */ DEFINE_SFX(NA_SE_PL_MAGIC_WIND_NORMAL, 0x30, 0, 0, 0) -/* 0x87B */ DEFINE_SFX(NA_SE_PL_MAGIC_WIND_WARP, 0x30, 0, 0, SFX_FLAG_13) -/* 0x87C */ DEFINE_SFX(NA_SE_PL_MAGIC_SOUL_NORMAL, 0x30, 0, 0, SFX_FLAG_11 | SFX_FLAG_10) -/* 0x87D */ DEFINE_SFX(NA_SE_PL_ARROW_CHARGE_FIRE, 0x30, 0, 0, SFX_FLAG_10) -/* 0x87E */ DEFINE_SFX(NA_SE_PL_ARROW_CHARGE_ICE, 0x30, 0, 0, SFX_FLAG_10) -/* 0x87F */ DEFINE_SFX(NA_SE_PL_ARROW_CHARGE_LIGHT, 0x30, 0, 0, SFX_FLAG_10) -/* 0x880 */ DEFINE_SFX(NA_SE_PL_DUMMY_128, 0x20, 0, 2, 0) -/* 0x881 */ DEFINE_SFX(NA_SE_PL_DUMMY_129, 0x20, 0, 2, 0) -/* 0x882 */ DEFINE_SFX(NA_SE_PL_DUMMY_130, 0x20, 0, 2, 0) -/* 0x883 */ DEFINE_SFX(NA_SE_PL_PULL_UP_RUTO, 0x20, 0, 2, 0) -/* 0x884 */ DEFINE_SFX(NA_SE_PL_DUMMY_132, 0x20, 0, 1, 0) -/* 0x885 */ DEFINE_SFX(NA_SE_PL_DUMMY_133, 0x20, 0, 1, 0) -/* 0x886 */ DEFINE_SFX(NA_SE_PL_DUMMY_134, 0x20, 0, 1, 0) -/* 0x887 */ DEFINE_SFX(NA_SE_PL_DUMMY_135, 0x20, 0, 1, 0) -/* 0x888 */ DEFINE_SFX(NA_SE_PL_DUMMY_136, 0x20, 0, 2, 0) -/* 0x889 */ DEFINE_SFX(NA_SE_PL_DUMMY_137, 0x20, 0, 2, 0) -/* 0x88A */ DEFINE_SFX(NA_SE_PL_DUMMY_138, 0x20, 0, 2, 0) -/* 0x88B */ DEFINE_SFX(NA_SE_PL_DUMMY_139, 0x20, 0, 0, 0) -/* 0x88C */ DEFINE_SFX(NA_SE_PL_DUMMY_140, 0x20, 0, 0, 0) -/* 0x88D */ DEFINE_SFX(NA_SE_PL_DUMMY_141, 0x20, 0, 0, 0) -/* 0x88E */ DEFINE_SFX(NA_SE_PL_DUMMY_142, 0x20, 0, 0, 0) -/* 0x88F */ DEFINE_SFX(NA_SE_PL_DUMMY_143, 0x20, 0, 0, 0) -/* 0x890 */ DEFINE_SFX(NA_SE_PL_DUMMY_144, 0x30, 0, 0, 0) -/* 0x891 */ DEFINE_SFX(NA_SE_PL_DUMMY_145, 0x30, 0, 0, 0) -/* 0x892 */ DEFINE_SFX(NA_SE_PL_DUMMY_146, 0x30, 0, 0, 0) -/* 0x893 */ DEFINE_SFX(NA_SE_PL_DUMMY_147, 0x30, 0, 0, 0) -/* 0x894 */ DEFINE_SFX(NA_SE_PL_DUMMY_148, 0x30, 0, 0, 0) -/* 0x895 */ DEFINE_SFX(NA_SE_PL_DUMMY_149, 0x30, 0, 0, 0) -/* 0x896 */ DEFINE_SFX(NA_SE_PL_DUMMY_150, 0x30, 0, 0, 0) -/* 0x897 */ DEFINE_SFX(NA_SE_PL_DUMMY_151, 0x30, 0, 0, 0) -/* 0x898 */ DEFINE_SFX(NA_SE_PL_DUMMY_152, 0x30, 0, 0, 0) -/* 0x899 */ DEFINE_SFX(NA_SE_PL_DUMMY_153, 0x30, 0, 0, 0) -/* 0x89A */ DEFINE_SFX(NA_SE_PL_DUMMY_154, 0x30, 0, 0, 0) -/* 0x89B */ DEFINE_SFX(NA_SE_PL_DUMMY_155, 0x30, 0, 0, 0) -/* 0x89C */ DEFINE_SFX(NA_SE_PL_DUMMY_156, 0x30, 0, 0, 0) -/* 0x89D */ DEFINE_SFX(NA_SE_PL_DUMMY_157, 0x30, 0, 0, 0) -/* 0x89E */ DEFINE_SFX(NA_SE_PL_DUMMY_158, 0x30, 0, 0, 0) -/* 0x89F */ DEFINE_SFX(NA_SE_PL_DUMMY_159, 0x30, 0, 0, 0) -/* 0x8A0 */ DEFINE_SFX(NA_SE_PL_DUMMY_160, 0x40, 0, 0, 0) -/* 0x8A1 */ DEFINE_SFX(NA_SE_PL_DUMMY_161, 0x40, 0, 0, 0) -/* 0x8A2 */ DEFINE_SFX(NA_SE_PL_DUMMY_162, 0x40, 0, 0, 0) -/* 0x8A3 */ DEFINE_SFX(NA_SE_PL_DUMMY_163, 0x40, 0, 0, 0) -/* 0x8A4 */ DEFINE_SFX(NA_SE_PL_DUMMY_164, 0x40, 0, 0, 0) -/* 0x8A5 */ DEFINE_SFX(NA_SE_PL_DUMMY_165, 0x40, 0, 0, 0) -/* 0x8A6 */ DEFINE_SFX(NA_SE_PL_DUMMY_166, 0x40, 0, 0, 0) -/* 0x8A7 */ DEFINE_SFX(NA_SE_PL_DUMMY_167, 0x40, 0, 0, 0) -/* 0x8A8 */ DEFINE_SFX(NA_SE_PL_DUMMY_168, 0x40, 0, 0, 0) -/* 0x8A9 */ DEFINE_SFX(NA_SE_PL_DUMMY_169, 0x40, 0, 0, 0) -/* 0x8AA */ DEFINE_SFX(NA_SE_PL_DUMMY_170, 0x40, 0, 0, 0) -/* 0x8AB */ DEFINE_SFX(NA_SE_PL_DUMMY_171, 0x40, 0, 0, 0) -/* 0x8AC */ DEFINE_SFX(NA_SE_PL_DUMMY_172, 0x40, 0, 0, 0) -/* 0x8AD */ DEFINE_SFX(NA_SE_PL_DUMMY_173, 0x40, 0, 0, 0) -/* 0x8AE */ DEFINE_SFX(NA_SE_PL_DUMMY_174, 0x40, 0, 0, 0) -/* 0x8AF */ DEFINE_SFX(NA_SE_PL_DUMMY_175, 0x40, 0, 0, 0) -/* 0x8B0 */ DEFINE_SFX(NA_SE_PL_CRAWL, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8B1 */ DEFINE_SFX(NA_SE_PL_CRAWL_SAND, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8B2 */ DEFINE_SFX(NA_SE_PL_CRAWL_CONCRETE, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8B3 */ DEFINE_SFX(NA_SE_PL_CRAWL_DIRT, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8B4 */ DEFINE_SFX(NA_SE_PL_CRAWL_WATER0, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8B5 */ DEFINE_SFX(NA_SE_PL_DUMMY_181, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8B6 */ DEFINE_SFX(NA_SE_PL_DUMMY_182, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8B7 */ DEFINE_SFX(NA_SE_PL_DUMMY_183, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8B8 */ DEFINE_SFX(NA_SE_PL_DUMMY_184, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8B9 */ DEFINE_SFX(NA_SE_PL_DUMMY_185, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8BA */ DEFINE_SFX(NA_SE_PL_DUMMY_186, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8BB */ DEFINE_SFX(NA_SE_PL_CRAWL_WOOD, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8BC */ DEFINE_SFX(NA_SE_PL_CRAWL_ICE, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8BD */ DEFINE_SFX(NA_SE_PL_DUMMY_189, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8BE */ DEFINE_SFX(NA_SE_PL_DUMMY_190, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8BF */ DEFINE_SFX(NA_SE_PL_DUMMY_191, 0x30, 0, 1, SFX_FLAG_10) -/* 0x8C0 */ DEFINE_SFX(NA_SE_PL_MAGIC_SOUL_FLASH, 0x30, 0, 0, SFX_FLAG_11 | SFX_FLAG_10) -/* 0x8C1 */ DEFINE_SFX(NA_SE_PL_ROLL_DUST, 0x30, 0, 2, 0) -/* 0x8C2 */ DEFINE_SFX(NA_SE_PL_DUMMY_192, 0x30, 0, 0, 0) -/* 0x8C3 */ DEFINE_SFX(NA_SE_PL_MAGIC_SOUL_BALL, 0x30, 0, 0, 0) -/* 0x8C4 */ DEFINE_SFX(NA_SE_PL_SPIRAL_HEAL_BEAM, 0x30, 0, 0, 0) -/* 0x8C5 */ DEFINE_SFX(NA_SE_PL_BOUND_NOWEAPON, 0x30, 0, 0, 0) -/* 0x8C6 */ DEFINE_SFX(NA_SE_PL_PLANT_GROW_UP, 0x30, 0, 0, 0) -/* 0x8C7 */ DEFINE_SFX(NA_SE_PL_PLANT_TALLER, 0x30, 0, 0, 0) -/* 0x8C8 */ DEFINE_SFX(NA_SE_PL_MAGIC_WIND_VANISH, 0x60, 2, 0, 0) -/* 0x8C9 */ DEFINE_SFX(NA_SE_PL_HOBBERBOOTS_LV, 0x30, 0, 0, 0) -/* 0x8CA */ DEFINE_SFX(NA_SE_PL_PLANT_MOVE, 0x30, 0, 0, 0) -/* 0x8CB */ DEFINE_SFX(NA_SE_EV_WALL_MOVE_SP, 0x30, 0, 0, SFX_FLAG_11) -/* 0x8CC */ DEFINE_SFX(NA_SE_PL_DUMMY_204, 0x30, 0, 0, 0) -/* 0x8CD */ DEFINE_SFX(NA_SE_PL_DUMMY_205, 0x30, 0, 0, 0) -/* 0x8CE */ DEFINE_SFX(NA_SE_PL_DUMMY_206, 0x30, 0, 0, 0) -/* 0x8CF */ DEFINE_SFX(NA_SE_PL_DUMMY_207, 0x30, 0, 0, 0) -/* 0x8D0 */ DEFINE_SFX(NA_SE_PL_SLIP_LEVEL, 0x30, 0, 0, 0) -/* 0x8D1 */ DEFINE_SFX(NA_SE_PL_SLIP_SAND_LEVEL, 0x30, 0, 0, 0) -/* 0x8D2 */ DEFINE_SFX(NA_SE_PL_SLIP_CONCRETE_LEVEL, 0x30, 0, 0, 0) -/* 0x8D3 */ DEFINE_SFX(NA_SE_PL_SLIP_DIRT_LEVEL, 0x30, 0, 0, 0) -/* 0x8D4 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER0_LEVEL, 0x30, 0, 0, 0) -/* 0x8D5 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER1_LEVEL, 0x30, 0, 0, 0) -/* 0x8D6 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER2_LEVEL, 0x30, 0, 0, 0) -/* 0x8D7 */ DEFINE_SFX(NA_SE_PL_SLIP_MAGMA_LEVEL, 0x30, 0, 0, 0) -/* 0x8D8 */ DEFINE_SFX(NA_SE_PL_SLIP_GRASS_LEVEL, 0x30, 0, 0, 0) -/* 0x8D9 */ DEFINE_SFX(NA_SE_PL_SLIP_IRON_LEVEL, 0x30, 0, 0, 0) -/* 0x8DA */ DEFINE_SFX(NA_SE_PL_SLIP_GLASS_LEVEL, 0x30, 0, 0, 0) -/* 0x8DB */ DEFINE_SFX(NA_SE_PL_SLIP_WOOD_LEVEL, 0x30, 0, 0, 0) -/* 0x8DC */ DEFINE_SFX(NA_SE_PL_DUMMY_220, 0x30, 0, 0, 0) -/* 0x8DD */ DEFINE_SFX(NA_SE_PL_DUMMY_221, 0x30, 0, 0, 0) -/* 0x8DE */ DEFINE_SFX(NA_SE_PL_SLIP_HEAVYBOOTS_LEVEL, 0x30, 0, 0, 0) -/* 0x8DF */ DEFINE_SFX(NA_SE_PL_SLIP_ICE_LEVEL, 0x30, 0, 0, 0) +/* 0x800 */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_WALK_GROUND, 0x20, 0, 2, SFX_FLAG_10) +/* 0x801 */ DEFINE_SFX(CHAN_02BD, NA_SE_PL_WALK_SAND, 0x20, 0, 2, SFX_FLAG_10) +/* 0x802 */ DEFINE_SFX(CHAN_02C9, NA_SE_PL_WALK_CONCRETE, 0x20, 0, 2, SFX_FLAG_10) +/* 0x803 */ DEFINE_SFX(CHAN_02D8, NA_SE_PL_WALK_DIRT, 0x20, 0, 2, SFX_FLAG_10) +/* 0x804 */ DEFINE_SFX(CHAN_02E8, NA_SE_PL_WALK_WATER0, 0x20, 0, 1, SFX_FLAG_10) +/* 0x805 */ DEFINE_SFX(CHAN_02F4, NA_SE_PL_WALK_WATER1, 0x20, 0, 1, SFX_FLAG_10) +/* 0x806 */ DEFINE_SFX(CHAN_0300, NA_SE_PL_WALK_WATER2, 0x20, 0, 1, SFX_FLAG_10) +/* 0x807 */ DEFINE_SFX(CHAN_0313, NA_SE_PL_WALK_MAGMA, 0x20, 0, 1, SFX_FLAG_10) +/* 0x808 */ DEFINE_SFX(CHAN_032D, NA_SE_PL_WALK_GRASS, 0x20, 0, 2, SFX_FLAG_10) +/* 0x809 */ DEFINE_SFX(CHAN_033D, NA_SE_PL_WALK_IRON, 0x20, 0, 1, SFX_FLAG_10) +/* 0x80A */ DEFINE_SFX(CHAN_0349, NA_SE_PL_WALK_LADDER, 0x20, 0, 2, SFX_FLAG_10) +/* 0x80B */ DEFINE_SFX(CHAN_0355, NA_SE_PL_WALK_GLASS, 0x20, 0, 0, SFX_FLAG_10) +/* 0x80C */ DEFINE_SFX(CHAN_0361, NA_SE_PL_WALK_WALL, 0x20, 0, 0, SFX_FLAG_10) +/* 0x80D */ DEFINE_SFX(CHAN_0376, NA_SE_PL_WALK_HEAVYBOOTS, 0x20, 0, 0, SFX_FLAG_10) +/* 0x80E */ DEFINE_SFX(CHAN_0380, NA_SE_PL_DUMMY_14, 0x20, 0, 0, SFX_FLAG_10) +/* 0x80F */ DEFINE_SFX(CHAN_038A, NA_SE_PL_WALK_ICE, 0x20, 0, 0, SFX_FLAG_10) +/* 0x810 */ DEFINE_SFX(CHAN_0396, NA_SE_PL_JUMP, 0x30, 0, 0, SFX_FLAG_10) +/* 0x811 */ DEFINE_SFX(CHAN_03C5, NA_SE_PL_JUMP_SAND, 0x30, 0, 0, SFX_FLAG_10) +/* 0x812 */ DEFINE_SFX(CHAN_03D9, NA_SE_PL_JUMP_CONCRETE, 0x30, 0, 0, SFX_FLAG_10) +/* 0x813 */ DEFINE_SFX(CHAN_03F2, NA_SE_PL_JUMP_DIRT, 0x30, 0, 0, SFX_FLAG_10) +/* 0x814 */ DEFINE_SFX(CHAN_0406, NA_SE_PL_JUMP_WATER0, 0x30, 0, 0, SFX_FLAG_10) +/* 0x815 */ DEFINE_SFX(CHAN_0418, NA_SE_PL_JUMP_WATER1, 0x30, 0, 0, SFX_FLAG_10) +/* 0x816 */ DEFINE_SFX(CHAN_042A, NA_SE_PL_JUMP_WATER2, 0x30, 0, 0, SFX_FLAG_10) +/* 0x817 */ DEFINE_SFX(CHAN_0443, NA_SE_PL_JUMP_MAGMA, 0x30, 0, 0, SFX_FLAG_10) +/* 0x818 */ DEFINE_SFX(CHAN_0465, NA_SE_PL_JUMP_GRASS, 0x30, 0, 0, SFX_FLAG_10) +/* 0x819 */ DEFINE_SFX(CHAN_0479, NA_SE_PL_JUMP_IRON, 0x30, 0, 0, SFX_FLAG_10) +/* 0x81A */ DEFINE_SFX(CHAN_048D, NA_SE_PL_JUMP_LADDER, 0x30, 0, 0, SFX_FLAG_10) +/* 0x81B */ DEFINE_SFX(CHAN_049F, NA_SE_PL_JUMP_GLASS, 0x30, 0, 0, SFX_FLAG_10) +/* 0x81C */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY28, 0x30, 0, 0, SFX_FLAG_10) +/* 0x81D */ DEFINE_SFX(CHAN_04B1, NA_SE_PL_JUMP_HEAVYBOOTS, 0x30, 0, 0, SFX_FLAG_10) +/* 0x81E */ DEFINE_SFX(CHAN_04D8, NA_SE_PL_DUMMY30, 0x30, 0, 0, SFX_FLAG_10) +/* 0x81F */ DEFINE_SFX(CHAN_04EA, NA_SE_PL_JUMP_ICE, 0x30, 0, 0, SFX_FLAG_10) +/* 0x820 */ DEFINE_SFX(CHAN_04FE, NA_SE_PL_LAND, 0x40, 0, 1, SFX_FLAG_10) +/* 0x821 */ DEFINE_SFX(CHAN_052D, NA_SE_PL_LAND_SAND, 0x40, 0, 1, SFX_FLAG_10) +/* 0x822 */ DEFINE_SFX(CHAN_053F, NA_SE_PL_LAND_CONCRETE, 0x40, 0, 1, SFX_FLAG_10) +/* 0x823 */ DEFINE_SFX(CHAN_0558, NA_SE_PL_LAND_DIRT, 0x40, 0, 1, SFX_FLAG_10) +/* 0x824 */ DEFINE_SFX(CHAN_056C, NA_SE_PL_LAND_WATER0, 0x40, 0, 1, SFX_FLAG_10) +/* 0x825 */ DEFINE_SFX(CHAN_057E, NA_SE_PL_LAND_WATER1, 0x40, 0, 1, SFX_FLAG_10) +/* 0x826 */ DEFINE_SFX(CHAN_0590, NA_SE_PL_LAND_WATER2, 0x40, 0, 1, SFX_FLAG_10) +/* 0x827 */ DEFINE_SFX(CHAN_05A9, NA_SE_PL_LAND_MAGMA, 0x40, 0, 1, SFX_FLAG_10) +/* 0x828 */ DEFINE_SFX(CHAN_05C9, NA_SE_PL_LAND_GRASS, 0x40, 0, 1, SFX_FLAG_10) +/* 0x829 */ DEFINE_SFX(CHAN_05DD, NA_SE_PL_LAND_IRON, 0x40, 0, 1, SFX_FLAG_10) +/* 0x82A */ DEFINE_SFX(CHAN_05F1, NA_SE_PL_LAND_LADDER, 0x40, 0, 1, SFX_FLAG_10) +/* 0x82B */ DEFINE_SFX(CHAN_0603, NA_SE_PL_LAND_GLASS, 0x40, 0, 1, SFX_FLAG_10) +/* 0x82C */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_44, 0x40, 0, 1, SFX_FLAG_10) +/* 0x82D */ DEFINE_SFX(CHAN_0615, NA_SE_PL_LAND_HEAVYBOOTS, 0x40, 0, 1, SFX_FLAG_10) +/* 0x82E */ DEFINE_SFX(CHAN_0622, NA_SE_PL_DUMMY_46, 0x40, 0, 1, SFX_FLAG_10) +/* 0x82F */ DEFINE_SFX(CHAN_0632, NA_SE_PL_LAND_ICE, 0x40, 0, 1, SFX_FLAG_10) +/* 0x830 */ DEFINE_SFX(CHAN_0644, NA_SE_PL_SLIPDOWN, 0x30, 0, 2, 0) +/* 0x831 */ DEFINE_SFX(CHAN_0655, NA_SE_PL_CLIMB_CLIFF, 0x30, 0, 0, 0) +/* 0x832 */ DEFINE_SFX(CHAN_0662, NA_SE_PL_SIT_ON_HORSE, 0x30, 0, 0, 0) +/* 0x833 */ DEFINE_SFX(CHAN_066F, NA_SE_PL_GET_OFF_HORSE, 0x30, 0, 0, 0) +/* 0x834 */ DEFINE_SFX(CHAN_0680, NA_SE_PL_TAKE_OUT_SHIELD, 0x30, 0, 0, SFX_FLAG_10) +/* 0x835 */ DEFINE_SFX(CHAN_069D, NA_SE_PL_CHANGE_ARMS, 0x30, 0, 0, SFX_FLAG_10) +/* 0x836 */ DEFINE_SFX(CHAN_06BF, NA_SE_PL_CATCH_BOOMERANG, 0x30, 0, 0, SFX_FLAG_10) +/* 0x837 */ DEFINE_SFX(CHAN_06CD, NA_SE_PL_DUMMY_55, 0x30, 0, 1, 0) +/* 0x838 */ DEFINE_SFX(CHAN_06E1, NA_SE_PL_DUMMY_56, 0x30, 0, 1, 0) +/* 0x839 */ DEFINE_SFX(CHAN_06F2, NA_SE_PL_SWIM, 0x30, 0, 2, 0) +/* 0x83A */ DEFINE_SFX(CHAN_0706, NA_SE_PL_THROW, 0x30, 0, 0, SFX_FLAG_10) +/* 0x83B */ DEFINE_SFX(CHAN_0714, NA_SE_PL_BODY_BOUND, 0x30, 0, 0, SFX_FLAG_10) +/* 0x83C */ DEFINE_SFX(CHAN_0731, NA_SE_PL_ROLL, 0x40, 0, 0, SFX_FLAG_10) +/* 0x83D */ DEFINE_SFX(CHAN_0743, NA_SE_PL_SKIP, 0x30, 0, 0, SFX_FLAG_10) +/* 0x83E */ DEFINE_SFX(CHAN_0753, NA_SE_PL_BODY_HIT, 0x30, 2, 0, SFX_FLAG_10) +/* 0x83F */ DEFINE_SFX(CHAN_076A, NA_SE_PL_DAMAGE, 0x30, 0, 0, SFX_FLAG_10) +/* 0x840 */ DEFINE_SFX(CHAN_0796, NA_SE_PL_SLIP, 0x30, 0, 1, 0) +/* 0x841 */ DEFINE_SFX(CHAN_07A0, NA_SE_PL_SLIP_SAND, 0x30, 0, 1, 0) +/* 0x842 */ DEFINE_SFX(CHAN_07A7, NA_SE_PL_SLIP_CONCRETE, 0x30, 0, 1, 0) +/* 0x843 */ DEFINE_SFX(CHAN_07AE, NA_SE_PL_SLIP_DIRT, 0x30, 0, 1, 0) +/* 0x844 */ DEFINE_SFX(CHAN_07B5, NA_SE_PL_SLIP_WATER0, 0x30, 0, 1, 0) +/* 0x845 */ DEFINE_SFX(CHAN_07BC, NA_SE_PL_SLIP_WATER1, 0x30, 0, 1, 0) +/* 0x846 */ DEFINE_SFX(CHAN_07C3, NA_SE_PL_SLIP_WATER2, 0x30, 0, 1, 0) +/* 0x847 */ DEFINE_SFX(CHAN_07CA, NA_SE_PL_SLIP_MAGMA, 0x30, 0, 1, 0) +/* 0x848 */ DEFINE_SFX(CHAN_07D1, NA_SE_PL_SLIP_GRASS, 0x30, 0, 1, 0) +/* 0x849 */ DEFINE_SFX(CHAN_07D8, NA_SE_PL_SLIP_IRON, 0x30, 0, 1, 0) +/* 0x84A */ DEFINE_SFX(CHAN_07DF, NA_SE_PL_SLIP_LADDER, 0x30, 0, 1, 0) +/* 0x84B */ DEFINE_SFX(CHAN_07E6, NA_SE_PL_SLIP_GLASS, 0x30, 0, 1, 0) +/* 0x84C */ DEFINE_SFX(CHAN_02E8, NA_SE_PL_DUMMY76, 0x30, 0, 0, 0) +/* 0x84D */ DEFINE_SFX(CHAN_07DF, NA_SE_PL_SLIP_HEAVYBOOTS, 0x30, 0, 0, 0) +/* 0x84E */ DEFINE_SFX(CHAN_07ED, NA_SE_PL_DUMMY78, 0x30, 0, 0, 0) +/* 0x84F */ DEFINE_SFX(CHAN_07A7, NA_SE_PL_SLIP_ICE, 0x30, 0, 0, 0) +/* 0x850 */ DEFINE_SFX(CHAN_07F4, NA_SE_PL_BOUND, 0x80, 0, 0, 0) +/* 0x851 */ DEFINE_SFX(CHAN_0811, NA_SE_PL_BOUND_SAND, 0x80, 0, 0, 0) +/* 0x852 */ DEFINE_SFX(CHAN_081B, NA_SE_PL_BOUND_CONCRETE, 0x80, 0, 0, 0) +/* 0x853 */ DEFINE_SFX(CHAN_0825, NA_SE_PL_BOUND_DIRT, 0x80, 0, 0, 0) +/* 0x854 */ DEFINE_SFX(CHAN_082F, NA_SE_PL_BOUND_WATER0, 0x80, 0, 0, 0) +/* 0x855 */ DEFINE_SFX(CHAN_083B, NA_SE_PL_BOUND_WATER1, 0x80, 0, 0, 0) +/* 0x856 */ DEFINE_SFX(CHAN_0845, NA_SE_PL_BOUND_WATER2, 0x80, 0, 0, 0) +/* 0x857 */ DEFINE_SFX(CHAN_084F, NA_SE_PL_BOUND_MAGMA, 0x80, 0, 0, 0) +/* 0x858 */ DEFINE_SFX(CHAN_0859, NA_SE_PL_BOUND_GRASS, 0x80, 0, 0, 0) +/* 0x859 */ DEFINE_SFX(CHAN_0863, NA_SE_PL_BOUND_IRON, 0x80, 0, 0, 0) +/* 0x85A */ DEFINE_SFX(CHAN_086D, NA_SE_PL_BOUND_LADDER, 0x80, 0, 0, 0) +/* 0x85B */ DEFINE_SFX(CHAN_0877, NA_SE_PL_BOUND_WOOD, 0x80, 0, 0, 0) +/* 0x85C */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_92, 0x80, 0, 0, 0) +/* 0x85D */ DEFINE_SFX(CHAN_086D, NA_SE_PL_BOUND_HEAVYBOOTS, 0x80, 0, 0, 0) +/* 0x85E */ DEFINE_SFX(CHAN_0882, NA_SE_PL_DUMMY_94, 0x80, 0, 0, 0) +/* 0x85F */ DEFINE_SFX(CHAN_088D, NA_SE_PL_BOUND_ICE, 0x80, 0, 0, 0) +/* 0x860 */ DEFINE_SFX(CHAN_0376, NA_SE_PL_DUMMY_96, 0x30, 0, 0, 0) +/* 0x861 */ DEFINE_SFX(CHAN_04B1, NA_SE_PL_DUMMY_97, 0x30, 0, 0, 0) +/* 0x862 */ DEFINE_SFX(CHAN_0615, NA_SE_PL_DUMMY_98, 0x30, 0, 0, 0) +/* 0x863 */ DEFINE_SFX(CHAN_0898, NA_SE_PL_FACE_UP, 0x30, 0, 0, 0) +/* 0x864 */ DEFINE_SFX(CHAN_08B7, NA_SE_PL_DIVE_BUBBLE, 0x30, 0, 0, 0) +/* 0x865 */ DEFINE_SFX(CHAN_08CA, NA_SE_PL_MOVE_BUBBLE, 0x30, 0, 0, 0) +/* 0x866 */ DEFINE_SFX(CHAN_08DC, NA_SE_PL_METALEFFECT_KID, 0x30, 0, 0, SFX_FLAG_10) +/* 0x867 */ DEFINE_SFX(CHAN_08E0, NA_SE_PL_METALEFFECT_ADULT, 0x30, 0, 0, SFX_FLAG_10) +/* 0x868 */ DEFINE_SFX(CHAN_08E4, NA_SE_PL_SPARK, 0x30, 0, 0, 0) +/* 0x869 */ DEFINE_SFX(CHAN_090A, NA_SE_PL_PULL_UP_PLANT, 0x30, 0, 0, 0) +/* 0x86A */ DEFINE_SFX(CHAN_091C, NA_SE_PL_PULL_UP_ROCK, 0x30, 0, 0, 0) +/* 0x86B */ DEFINE_SFX(CHAN_0940, NA_SE_PL_IN_BUBBLE, 0x30, 0, 0, 0) +/* 0x86C */ DEFINE_SFX(CHAN_0950, NA_SE_PL_PULL_UP_BIGROCK, 0x30, 3, 0, 0) +/* 0x86D */ DEFINE_SFX(CHAN_0959, NA_SE_PL_SWORD_CHARGE, 0x30, 0, 0, 0) +/* 0x86E */ DEFINE_SFX(CHAN_096A, NA_SE_PL_FREEZE, 0x30, 0, 0, 0) +/* 0x86F */ DEFINE_SFX(CHAN_0989, NA_SE_PL_PULL_UP_POT, 0x30, 0, 0, 0) +/* 0x870 */ DEFINE_SFX(CHAN_09A0, NA_SE_PL_KNOCK, 0x30, 0, 0, 0) +/* 0x871 */ DEFINE_SFX(CHAN_09AE, NA_SE_PL_CALM_HIT, 0x30, 0, 2, 0) +/* 0x872 */ DEFINE_SFX(CHAN_09BC, NA_SE_PL_CALM_PAT, 0x30, 0, 0, 0) +/* 0x873 */ DEFINE_SFX(CHAN_09CA, NA_SE_PL_SUBMERGE, 0x30, 0, 0, 0) +/* 0x874 */ DEFINE_SFX(CHAN_09E9, NA_SE_PL_FREEZE_S, 0x30, 3, 0, 0) +/* 0x875 */ DEFINE_SFX(CHAN_0A06, NA_SE_PL_ICE_BROKEN, 0x30, 1, 0, 0) +/* 0x876 */ DEFINE_SFX(CHAN_0A15, NA_SE_PL_SLIP_ICE_LELEL, 0x30, 0, 0, 0) +/* 0x877 */ DEFINE_SFX(CHAN_0A23, NA_SE_PL_PUT_OUT_ITEM, 0x30, 0, 0, 0) +/* 0x878 */ DEFINE_SFX(CHAN_0A36, NA_SE_PL_PULL_UP_WOODBOX, 0x30, 0, 0, 0) +/* 0x879 */ DEFINE_SFX(CHAN_0A40, NA_SE_PL_MAGIC_FIRE, 0x30, 0, 0, 0) +/* 0x87A */ DEFINE_SFX(CHAN_0A7B, NA_SE_PL_MAGIC_WIND_NORMAL, 0x30, 0, 0, 0) +/* 0x87B */ DEFINE_SFX(CHAN_0ABC, NA_SE_PL_MAGIC_WIND_WARP, 0x30, 0, 0, SFX_FLAG_13) +/* 0x87C */ DEFINE_SFX(CHAN_0AD8, NA_SE_PL_MAGIC_SOUL_NORMAL, 0x30, 0, 0, SFX_FLAG_11 | SFX_FLAG_10) +/* 0x87D */ DEFINE_SFX(CHAN_0B08, NA_SE_PL_ARROW_CHARGE_FIRE, 0x30, 0, 0, SFX_FLAG_10) +/* 0x87E */ DEFINE_SFX(CHAN_0B37, NA_SE_PL_ARROW_CHARGE_ICE, 0x30, 0, 0, SFX_FLAG_10) +/* 0x87F */ DEFINE_SFX(CHAN_0B5D, NA_SE_PL_ARROW_CHARGE_LIGHT, 0x30, 0, 0, SFX_FLAG_10) +/* 0x880 */ DEFINE_SFX(CHAN_0B79, NA_SE_PL_DUMMY_128, 0x20, 0, 2, 0) +/* 0x881 */ DEFINE_SFX(CHAN_0B96, NA_SE_PL_DUMMY_129, 0x20, 0, 2, 0) +/* 0x882 */ DEFINE_SFX(CHAN_0B9A, NA_SE_PL_DUMMY_130, 0x20, 0, 2, 0) +/* 0x883 */ DEFINE_SFX(CHAN_0B9E, NA_SE_PL_PULL_UP_RUTO, 0x20, 0, 2, 0) +/* 0x884 */ DEFINE_SFX(CHAN_0BA2, NA_SE_PL_DUMMY_132, 0x20, 0, 1, 0) +/* 0x885 */ DEFINE_SFX(CHAN_0BA6, NA_SE_PL_DUMMY_133, 0x20, 0, 1, 0) +/* 0x886 */ DEFINE_SFX(CHAN_0BAA, NA_SE_PL_DUMMY_134, 0x20, 0, 1, 0) +/* 0x887 */ DEFINE_SFX(CHAN_0BAE, NA_SE_PL_DUMMY_135, 0x20, 0, 1, 0) +/* 0x888 */ DEFINE_SFX(CHAN_0BB2, NA_SE_PL_DUMMY_136, 0x20, 0, 2, 0) +/* 0x889 */ DEFINE_SFX(CHAN_0BB6, NA_SE_PL_DUMMY_137, 0x20, 0, 2, 0) +/* 0x88A */ DEFINE_SFX(CHAN_0BBA, NA_SE_PL_DUMMY_138, 0x20, 0, 2, 0) +/* 0x88B */ DEFINE_SFX(CHAN_0BBE, NA_SE_PL_DUMMY_139, 0x20, 0, 0, 0) +/* 0x88C */ DEFINE_SFX(CHAN_0BC2, NA_SE_PL_DUMMY_140, 0x20, 0, 0, 0) +/* 0x88D */ DEFINE_SFX(CHAN_0376, NA_SE_PL_DUMMY_141, 0x20, 0, 0, 0) +/* 0x88E */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_142, 0x20, 0, 0, 0) +/* 0x88F */ DEFINE_SFX(CHAN_0BC9, NA_SE_PL_DUMMY_143, 0x20, 0, 0, 0) +/* 0x890 */ DEFINE_SFX(CHAN_0BCD, NA_SE_PL_DUMMY_144, 0x30, 0, 0, 0) +/* 0x891 */ DEFINE_SFX(CHAN_0BED, NA_SE_PL_DUMMY_145, 0x30, 0, 0, 0) +/* 0x892 */ DEFINE_SFX(CHAN_0BF4, NA_SE_PL_DUMMY_146, 0x30, 0, 0, 0) +/* 0x893 */ DEFINE_SFX(CHAN_0BFB, NA_SE_PL_DUMMY_147, 0x30, 0, 0, 0) +/* 0x894 */ DEFINE_SFX(CHAN_0C02, NA_SE_PL_DUMMY_148, 0x30, 0, 0, 0) +/* 0x895 */ DEFINE_SFX(CHAN_0C09, NA_SE_PL_DUMMY_149, 0x30, 0, 0, 0) +/* 0x896 */ DEFINE_SFX(CHAN_0C0D, NA_SE_PL_DUMMY_150, 0x30, 0, 0, 0) +/* 0x897 */ DEFINE_SFX(CHAN_0C14, NA_SE_PL_DUMMY_151, 0x30, 0, 0, 0) +/* 0x898 */ DEFINE_SFX(CHAN_0C1B, NA_SE_PL_DUMMY_152, 0x30, 0, 0, 0) +/* 0x899 */ DEFINE_SFX(CHAN_0C22, NA_SE_PL_DUMMY_153, 0x30, 0, 0, 0) +/* 0x89A */ DEFINE_SFX(CHAN_0C29, NA_SE_PL_DUMMY_154, 0x30, 0, 0, 0) +/* 0x89B */ DEFINE_SFX(CHAN_0C30, NA_SE_PL_DUMMY_155, 0x30, 0, 0, 0) +/* 0x89C */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_156, 0x30, 0, 0, 0) +/* 0x89D */ DEFINE_SFX(CHAN_04B1, NA_SE_PL_DUMMY_157, 0x30, 0, 0, 0) +/* 0x89E */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_158, 0x30, 0, 0, 0) +/* 0x89F */ DEFINE_SFX(CHAN_0C37, NA_SE_PL_DUMMY_159, 0x30, 0, 0, 0) +/* 0x8A0 */ DEFINE_SFX(CHAN_0C3E, NA_SE_PL_DUMMY_160, 0x40, 0, 0, 0) +/* 0x8A1 */ DEFINE_SFX(CHAN_0C5C, NA_SE_PL_DUMMY_161, 0x40, 0, 0, 0) +/* 0x8A2 */ DEFINE_SFX(CHAN_0C63, NA_SE_PL_DUMMY_162, 0x40, 0, 0, 0) +/* 0x8A3 */ DEFINE_SFX(CHAN_0C6A, NA_SE_PL_DUMMY_163, 0x40, 0, 0, 0) +/* 0x8A4 */ DEFINE_SFX(CHAN_0C71, NA_SE_PL_DUMMY_164, 0x40, 0, 0, 0) +/* 0x8A5 */ DEFINE_SFX(CHAN_0C78, NA_SE_PL_DUMMY_165, 0x40, 0, 0, 0) +/* 0x8A6 */ DEFINE_SFX(CHAN_0C7C, NA_SE_PL_DUMMY_166, 0x40, 0, 0, 0) +/* 0x8A7 */ DEFINE_SFX(CHAN_0C83, NA_SE_PL_DUMMY_167, 0x40, 0, 0, 0) +/* 0x8A8 */ DEFINE_SFX(CHAN_0C8A, NA_SE_PL_DUMMY_168, 0x40, 0, 0, 0) +/* 0x8A9 */ DEFINE_SFX(CHAN_0C91, NA_SE_PL_DUMMY_169, 0x40, 0, 0, 0) +/* 0x8AA */ DEFINE_SFX(CHAN_0C98, NA_SE_PL_DUMMY_170, 0x40, 0, 0, 0) +/* 0x8AB */ DEFINE_SFX(CHAN_0C9F, NA_SE_PL_DUMMY_171, 0x40, 0, 0, 0) +/* 0x8AC */ DEFINE_SFX(CHAN_0B79, NA_SE_PL_DUMMY_172, 0x40, 0, 0, 0) +/* 0x8AD */ DEFINE_SFX(CHAN_0615, NA_SE_PL_DUMMY_173, 0x40, 0, 0, 0) +/* 0x8AE */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_174, 0x40, 0, 0, 0) +/* 0x8AF */ DEFINE_SFX(CHAN_0CA6, NA_SE_PL_DUMMY_175, 0x40, 0, 0, 0) +/* 0x8B0 */ DEFINE_SFX(CHAN_0CAD, NA_SE_PL_CRAWL, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8B1 */ DEFINE_SFX(CHAN_0CB8, NA_SE_PL_CRAWL_SAND, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8B2 */ DEFINE_SFX(CHAN_0CC3, NA_SE_PL_CRAWL_CONCRETE, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8B3 */ DEFINE_SFX(CHAN_0CCE, NA_SE_PL_CRAWL_DIRT, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8B4 */ DEFINE_SFX(CHAN_0CD9, NA_SE_PL_CRAWL_WATER0, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8B5 */ DEFINE_SFX(CHAN_0CE4, NA_SE_PL_DUMMY_181, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8B6 */ DEFINE_SFX(CHAN_0CEF, NA_SE_PL_DUMMY_182, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8B7 */ DEFINE_SFX(CHAN_0CFA, NA_SE_PL_DUMMY_183, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8B8 */ DEFINE_SFX(CHAN_0D05, NA_SE_PL_DUMMY_184, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8B9 */ DEFINE_SFX(CHAN_0D10, NA_SE_PL_DUMMY_185, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8BA */ DEFINE_SFX(CHAN_0D1B, NA_SE_PL_DUMMY_186, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8BB */ DEFINE_SFX(CHAN_0D26, NA_SE_PL_CRAWL_WOOD, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8BC */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_CRAWL_ICE, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8BD */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_189, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8BE */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_190, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8BF */ DEFINE_SFX(CHAN_0D31, NA_SE_PL_DUMMY_191, 0x30, 0, 1, SFX_FLAG_10) +/* 0x8C0 */ DEFINE_SFX(CHAN_0D3C, NA_SE_PL_MAGIC_SOUL_FLASH, 0x30, 0, 0, SFX_FLAG_11 | SFX_FLAG_10) +/* 0x8C1 */ DEFINE_SFX(CHAN_0D43, NA_SE_PL_ROLL_DUST, 0x30, 0, 2, 0) +/* 0x8C2 */ DEFINE_SFX(CHAN_0D57, NA_SE_PL_DUMMY_192, 0x30, 0, 0, 0) +/* 0x8C3 */ DEFINE_SFX(CHAN_0D68, NA_SE_PL_MAGIC_SOUL_BALL, 0x30, 0, 0, 0) +/* 0x8C4 */ DEFINE_SFX(CHAN_0D7F, NA_SE_PL_SPIRAL_HEAL_BEAM, 0x30, 0, 0, 0) +/* 0x8C5 */ DEFINE_SFX(CHAN_07FC, NA_SE_PL_BOUND_NOWEAPON, 0x30, 0, 0, 0) +/* 0x8C6 */ DEFINE_SFX(CHAN_0DC9, NA_SE_PL_PLANT_GROW_UP, 0x30, 0, 0, 0) +/* 0x8C7 */ DEFINE_SFX(CHAN_0DA9, NA_SE_PL_PLANT_TALLER, 0x30, 0, 0, 0) +/* 0x8C8 */ DEFINE_SFX(CHAN_0DCE, NA_SE_PL_MAGIC_WIND_VANISH, 0x60, 2, 0, 0) +/* 0x8C9 */ DEFINE_SFX(CHAN_0DE3, NA_SE_PL_HOBBERBOOTS_LV, 0x30, 0, 0, 0) +/* 0x8CA */ DEFINE_SFX(CHAN_0DF9, NA_SE_PL_PLANT_MOVE, 0x30, 0, 0, 0) +/* 0x8CB */ DEFINE_SFX(CHAN_1C14, NA_SE_EV_WALL_MOVE_SP, 0x30, 0, 0, SFX_FLAG_11) +/* 0x8CC */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_204, 0x30, 0, 0, 0) +/* 0x8CD */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_205, 0x30, 0, 0, 0) +/* 0x8CE */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_206, 0x30, 0, 0, 0) +/* 0x8CF */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_207, 0x30, 0, 0, 0) +/* 0x8D0 */ DEFINE_SFX(CHAN_0E08, NA_SE_PL_SLIP_LEVEL, 0x30, 0, 0, 0) +/* 0x8D1 */ DEFINE_SFX(CHAN_0E18, NA_SE_PL_SLIP_SAND_LEVEL, 0x30, 0, 0, 0) +/* 0x8D2 */ DEFINE_SFX(CHAN_0E20, NA_SE_PL_SLIP_CONCRETE_LEVEL, 0x30, 0, 0, 0) +/* 0x8D3 */ DEFINE_SFX(CHAN_0E30, NA_SE_PL_SLIP_DIRT_LEVEL, 0x30, 0, 0, 0) +/* 0x8D4 */ DEFINE_SFX(CHAN_0E30, NA_SE_PL_SLIP_WATER0_LEVEL, 0x30, 0, 0, 0) +/* 0x8D5 */ DEFINE_SFX(CHAN_0E30, NA_SE_PL_SLIP_WATER1_LEVEL, 0x30, 0, 0, 0) +/* 0x8D6 */ DEFINE_SFX(CHAN_0E38, NA_SE_PL_SLIP_WATER2_LEVEL, 0x30, 0, 0, 0) +/* 0x8D7 */ DEFINE_SFX(CHAN_0E30, NA_SE_PL_SLIP_MAGMA_LEVEL, 0x30, 0, 0, 0) +/* 0x8D8 */ DEFINE_SFX(CHAN_0E48, NA_SE_PL_SLIP_GRASS_LEVEL, 0x30, 0, 0, 0) +/* 0x8D9 */ DEFINE_SFX(CHAN_0E08, NA_SE_PL_SLIP_IRON_LEVEL, 0x30, 0, 0, 0) +/* 0x8DA */ DEFINE_SFX(CHAN_0E50, NA_SE_PL_SLIP_GLASS_LEVEL, 0x30, 0, 0, 0) +/* 0x8DB */ DEFINE_SFX(CHAN_0E50, NA_SE_PL_SLIP_WOOD_LEVEL, 0x30, 0, 0, 0) +/* 0x8DC */ DEFINE_SFX(CHAN_02E8, NA_SE_PL_DUMMY_220, 0x30, 0, 0, 0) +/* 0x8DD */ DEFINE_SFX(CHAN_0E50, NA_SE_PL_DUMMY_221, 0x30, 0, 0, 0) +/* 0x8DE */ DEFINE_SFX(CHAN_0E60, NA_SE_PL_SLIP_HEAVYBOOTS_LEVEL, 0x30, 0, 0, 0) +/* 0x8DF */ DEFINE_SFX(CHAN_0E20, NA_SE_PL_SLIP_ICE_LEVEL, 0x30, 0, 0, 0) diff --git a/include/tables/sfx/systembank_table.h b/include/tables/sfx/systembank_table.h index 7792cdd46b..b94899ed14 100644 --- a/include/tables/sfx/systembank_table.h +++ b/include/tables/sfx/systembank_table.h @@ -2,83 +2,82 @@ * Sfx System Bank * * DEFINE_SFX should be used for all sfx define in the system bank from sequence 0 + * - Argument 0: Channel name for sequence 0 * - Argument 1: Enum value for this sfx * - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance * - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3) * - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3) * - Argument 5: Various flags to add properties to the sfx - * - * WARNING: entries must align with the table defined for the system bank in sequence 0 */ -/* 0x4800 */ DEFINE_SFX(NA_SE_SY_WIN_OPEN, 0xC0, 0, 0, 0) -/* 0x4801 */ DEFINE_SFX(NA_SE_SY_WIN_CLOSE, 0xC0, 0, 0, 0) -/* 0x4802 */ DEFINE_SFX(NA_SE_SY_CORRECT_CHIME, 0xB0, 0, 0, SFX_FLAG_5) -/* 0x4803 */ DEFINE_SFX(NA_SE_SY_GET_RUPY, 0x30, 0, 0, 0) -/* 0x4804 */ DEFINE_SFX(NA_SE_SY_MESSAGE_WOMAN, 0x30, 0, 0, 0) -/* 0x4805 */ DEFINE_SFX(NA_SE_SY_MESSAGE_MAN, 0x30, 0, 0, 0) -/* 0x4806 */ DEFINE_SFX(NA_SE_SY_ERROR, 0x50, 0, 0, 0) -/* 0x4807 */ DEFINE_SFX(NA_SE_SY_TRE_BOX_APPEAR, 0x30, 0, 0, SFX_FLAG_5) -/* 0x4808 */ DEFINE_SFX(NA_SE_SY_DECIDE, 0x30, 0, 0, 0) -/* 0x4809 */ DEFINE_SFX(NA_SE_SY_CURSOR, 0x30, 0, 0, 0) -/* 0x480A */ DEFINE_SFX(NA_SE_SY_CANCEL, 0x30, 0, 0, 0) -/* 0x480B */ DEFINE_SFX(NA_SE_SY_HP_RECOVER, 0x30, 0, 0, 0) -/* 0x480C */ DEFINE_SFX(NA_SE_SY_ATTENTION_ON, 0x20, 0, 0, 0) -/* 0x480D */ DEFINE_SFX(NA_SE_SY_DUMMY_13, 0x30, 0, 0, 0) -/* 0x480E */ DEFINE_SFX(NA_SE_SY_DUMMY_14, 0x30, 0, 0, 0) -/* 0x480F */ DEFINE_SFX(NA_SE_SY_LOCK_OFF, 0x30, 0, 0, 0) -/* 0x4810 */ DEFINE_SFX(NA_SE_SY_LOCK_ON_HUMAN, 0x28, 0, 0, 0) -/* 0x4811 */ DEFINE_SFX(NA_SE_SY_DUMMY_17, 0x30, 0, 0, 0) -/* 0x4812 */ DEFINE_SFX(NA_SE_SY_DUMMY_18, 0x30, 0, 0, 0) -/* 0x4813 */ DEFINE_SFX(NA_SE_SY_CAMERA_ZOOM_UP, 0x30, 0, 0, 0) -/* 0x4814 */ DEFINE_SFX(NA_SE_SY_CAMERA_ZOOM_DOWN, 0x30, 0, 0, 0) -/* 0x4815 */ DEFINE_SFX(NA_SE_SY_DUMMY_21, 0x30, 0, 0, 0) -/* 0x4816 */ DEFINE_SFX(NA_SE_SY_DUMMY_22, 0x30, 0, 0, 0) -/* 0x4817 */ DEFINE_SFX(NA_SE_SY_ATTENTION_ON_OLD, 0x30, 0, 0, 0) -/* 0x4818 */ DEFINE_SFX(NA_SE_SY_MESSAGE_PASS, 0x18, 0, 0, 0) -/* 0x4819 */ DEFINE_SFX(NA_SE_SY_WARNING_COUNT_N, 0x2C, 0, 0, 0) -/* 0x481A */ DEFINE_SFX(NA_SE_SY_WARNING_COUNT_E, 0x2C, 0, 0, 0) -/* 0x481B */ DEFINE_SFX(NA_SE_SY_HITPOINT_ALARM, 0x20, 0, 0, 0) -/* 0x481C */ DEFINE_SFX(NA_SE_SY_DUMMY_28, 0x30, 0, 0, 0) -/* 0x481D */ DEFINE_SFX(NA_SE_SY_DEMO_CUT, 0x30, 0, 0, 0) -/* 0x481E */ DEFINE_SFX(NA_SE_SY_NAVY_CALL, 0x30, 0, 0, 0) -/* 0x481F */ DEFINE_SFX(NA_SE_SY_GAUGE_UP, 0x30, 0, 0, 0) -/* 0x4820 */ DEFINE_SFX(NA_SE_SY_DUMMY_32, 0x30, 0, 0, 0) -/* 0x4821 */ DEFINE_SFX(NA_SE_SY_DUMMY_33, 0x30, 0, 0, 0) -/* 0x4822 */ DEFINE_SFX(NA_SE_SY_DUMMY_34, 0x30, 0, 0, 0) -/* 0x4823 */ DEFINE_SFX(NA_SE_SY_PIECE_OF_HEART, 0x30, 0, 0, 0) -/* 0x4824 */ DEFINE_SFX(NA_SE_SY_GET_ITEM, 0x30, 0, 0, 0) -/* 0x4825 */ DEFINE_SFX(NA_SE_SY_WIN_SCROLL_LEFT, 0x30, 0, 0, 0) -/* 0x4826 */ DEFINE_SFX(NA_SE_SY_WIN_SCROLL_RIGHT, 0x30, 0, 0, 0) -/* 0x4827 */ DEFINE_SFX(NA_SE_SY_OCARINA_ERROR, 0x20, 0, 0, 0) -/* 0x4828 */ DEFINE_SFX(NA_SE_SY_CAMERA_ZOOM_UP_2, 0x30, 0, 0, 0) -/* 0x4829 */ DEFINE_SFX(NA_SE_SY_CAMERA_ZOOM_DOWN_2, 0x30, 0, 0, 0) -/* 0x482A */ DEFINE_SFX(NA_SE_SY_GLASSMODE_ON, 0x30, 0, 0, 0) -/* 0x482B */ DEFINE_SFX(NA_SE_SY_GLASSMODE_OFF, 0x30, 0, 0, 0) -/* 0x482C */ DEFINE_SFX(NA_SE_SY_FOUND, 0x60, 0, 0, 0) -/* 0x482D */ DEFINE_SFX(NA_SE_SY_HIT_SOUND, 0x30, 0, 0, 0) -/* 0x482E */ DEFINE_SFX(NA_SE_SY_MESSAGE_END, 0x30, 0, 0, 0) -/* 0x482F */ DEFINE_SFX(NA_SE_SY_RUPY_COUNT, 0x30, 0, 0, 0) -/* 0x4830 */ DEFINE_SFX(NA_SE_SY_LOCK_ON, 0x30, 0, 0, 0) -/* 0x4831 */ DEFINE_SFX(NA_SE_SY_GET_BOXITEM, 0x30, 0, 0, 0) -/* 0x4832 */ DEFINE_SFX(NA_SE_SY_WHITE_OUT_L, 0x30, 0, 0, 0) -/* 0x4833 */ DEFINE_SFX(NA_SE_SY_WHITE_OUT_S, 0x30, 0, 0, 0) -/* 0x4834 */ DEFINE_SFX(NA_SE_SY_WHITE_OUT_T, 0x30, 0, 0, 0) -/* 0x4835 */ DEFINE_SFX(NA_SE_SY_START_SHOT, 0x30, 0, 0, 0) -/* 0x4836 */ DEFINE_SFX(NA_SE_SY_METRONOME, 0x30, 0, 0, 0) -/* 0x4837 */ DEFINE_SFX(NA_SE_SY_ATTENTION_URGENCY, 0x30, 0, 0, 0) -/* 0x4838 */ DEFINE_SFX(NA_SE_SY_METRONOME_LV, 0x30, 0, 0, 0) -/* 0x4839 */ DEFINE_SFX(NA_SE_SY_FSEL_CURSOR, 0x30, 0, 0, 0) -/* 0x483A */ DEFINE_SFX(NA_SE_SY_FSEL_DECIDE_S, 0x30, 0, 0, 0) -/* 0x483B */ DEFINE_SFX(NA_SE_SY_FSEL_DECIDE_L, 0x30, 0, 0, 0) -/* 0x483C */ DEFINE_SFX(NA_SE_SY_FSEL_CLOSE, 0x30, 0, 0, 0) -/* 0x483D */ DEFINE_SFX(NA_SE_SY_FSEL_ERROR, 0x30, 0, 0, 0) -/* 0x483E */ DEFINE_SFX(NA_SE_SY_SET_FIRE_ARROW, 0x30, 0, 0, 0) -/* 0x483F */ DEFINE_SFX(NA_SE_SY_SET_ICE_ARROW, 0x30, 0, 0, 0) -/* 0x4840 */ DEFINE_SFX(NA_SE_SY_SET_LIGHT_ARROW, 0x30, 0, 0, 0) -/* 0x4841 */ DEFINE_SFX(NA_SE_SY_SYNTH_MAGIC_ARROW, 0x30, 0, 0, 0) -/* 0x4842 */ DEFINE_SFX(NA_SE_SY_METRONOME_2, 0x30, 0, 0, 0) -/* 0x4843 */ DEFINE_SFX(NA_SE_SY_KINSTA_MARK_APPEAR, 0x30, 0, 0, 0) -/* 0x4844 */ DEFINE_SFX(NA_SE_SY_FIVE_COUNT_LUPY, 0x30, 0, 0, 0) -/* 0x4845 */ DEFINE_SFX(NA_SE_SY_CARROT_RECOVER, 0x30, 0, 0, 0) -/* 0x4846 */ DEFINE_SFX(NA_SE_EV_FAIVE_LUPY_COUNT, 0x30, 0, 0, 0) -/* 0x4847 */ DEFINE_SFX(NA_SE_SY_DUMMY_71, 0x30, 0, 0, 0) +/* 0x4800 */ DEFINE_SFX(CHAN_57B9, NA_SE_SY_WIN_OPEN, 0xC0, 0, 0, 0) +/* 0x4801 */ DEFINE_SFX(CHAN_57F6, NA_SE_SY_WIN_CLOSE, 0xC0, 0, 0, 0) +/* 0x4802 */ DEFINE_SFX(CHAN_5833, NA_SE_SY_CORRECT_CHIME, 0xB0, 0, 0, SFX_FLAG_5) +/* 0x4803 */ DEFINE_SFX(CHAN_5861, NA_SE_SY_GET_RUPY, 0x30, 0, 0, 0) +/* 0x4804 */ DEFINE_SFX(CHAN_5880, NA_SE_SY_MESSAGE_WOMAN, 0x30, 0, 0, 0) +/* 0x4805 */ DEFINE_SFX(CHAN_588E, NA_SE_SY_MESSAGE_MAN, 0x30, 0, 0, 0) +/* 0x4806 */ DEFINE_SFX(CHAN_588E, NA_SE_SY_ERROR, 0x50, 0, 0, 0) +/* 0x4807 */ DEFINE_SFX(CHAN_589F, NA_SE_SY_TRE_BOX_APPEAR, 0x30, 0, 0, SFX_FLAG_5) +/* 0x4808 */ DEFINE_SFX(CHAN_58E9, NA_SE_SY_DECIDE, 0x30, 0, 0, 0) +/* 0x4809 */ DEFINE_SFX(CHAN_5933, NA_SE_SY_CURSOR, 0x30, 0, 0, 0) +/* 0x480A */ DEFINE_SFX(CHAN_5948, NA_SE_SY_CANCEL, 0x30, 0, 0, 0) +/* 0x480B */ DEFINE_SFX(CHAN_596D, NA_SE_SY_HP_RECOVER, 0x30, 0, 0, 0) +/* 0x480C */ DEFINE_SFX(CHAN_598D, NA_SE_SY_ATTENTION_ON, 0x20, 0, 0, 0) +/* 0x480D */ DEFINE_SFX(CHAN_5A02, NA_SE_SY_DUMMY_13, 0x30, 0, 0, 0) +/* 0x480E */ DEFINE_SFX(CHAN_59A9, NA_SE_SY_DUMMY_14, 0x30, 0, 0, 0) +/* 0x480F */ DEFINE_SFX(CHAN_59CB, NA_SE_SY_LOCK_OFF, 0x30, 0, 0, 0) +/* 0x4810 */ DEFINE_SFX(CHAN_59E5, NA_SE_SY_LOCK_ON_HUMAN, 0x28, 0, 0, 0) +/* 0x4811 */ DEFINE_SFX(CHAN_5A02, NA_SE_SY_DUMMY_17, 0x30, 0, 0, 0) +/* 0x4812 */ DEFINE_SFX(CHAN_5A1B, NA_SE_SY_DUMMY_18, 0x30, 0, 0, 0) +/* 0x4813 */ DEFINE_SFX(CHAN_5A34, NA_SE_SY_CAMERA_ZOOM_UP, 0x30, 0, 0, 0) +/* 0x4814 */ DEFINE_SFX(CHAN_5A47, NA_SE_SY_CAMERA_ZOOM_DOWN, 0x30, 0, 0, 0) +/* 0x4815 */ DEFINE_SFX(CHAN_5A34, NA_SE_SY_DUMMY_21, 0x30, 0, 0, 0) +/* 0x4816 */ DEFINE_SFX(CHAN_5A34, NA_SE_SY_DUMMY_22, 0x30, 0, 0, 0) +/* 0x4817 */ DEFINE_SFX(CHAN_5A5A, NA_SE_SY_ATTENTION_ON_OLD, 0x30, 0, 0, 0) +/* 0x4818 */ DEFINE_SFX(CHAN_5A64, NA_SE_SY_MESSAGE_PASS, 0x18, 0, 0, 0) +/* 0x4819 */ DEFINE_SFX(CHAN_5A72, NA_SE_SY_WARNING_COUNT_N, 0x2C, 0, 0, 0) +/* 0x481A */ DEFINE_SFX(CHAN_5A86, NA_SE_SY_WARNING_COUNT_E, 0x2C, 0, 0, 0) +/* 0x481B */ DEFINE_SFX(CHAN_5AA5, NA_SE_SY_HITPOINT_ALARM, 0x20, 0, 0, 0) +/* 0x481C */ DEFINE_SFX(CHAN_5AB7, NA_SE_SY_DUMMY_28, 0x30, 0, 0, 0) +/* 0x481D */ DEFINE_SFX(CHAN_5AB7, NA_SE_SY_DEMO_CUT, 0x30, 0, 0, 0) +/* 0x481E */ DEFINE_SFX(CHAN_5AD8, NA_SE_SY_NAVY_CALL, 0x30, 0, 0, 0) +/* 0x481F */ DEFINE_SFX(CHAN_5AF7, NA_SE_SY_GAUGE_UP, 0x30, 0, 0, 0) +/* 0x4820 */ DEFINE_SFX(CHAN_5B22, NA_SE_SY_DUMMY_32, 0x30, 0, 0, 0) +/* 0x4821 */ DEFINE_SFX(CHAN_5B3C, NA_SE_SY_DUMMY_33, 0x30, 0, 0, 0) +/* 0x4822 */ DEFINE_SFX(CHAN_5B54, NA_SE_SY_DUMMY_34, 0x30, 0, 0, 0) +/* 0x4823 */ DEFINE_SFX(CHAN_5B5B, NA_SE_SY_PIECE_OF_HEART, 0x30, 0, 0, 0) +/* 0x4824 */ DEFINE_SFX(CHAN_5B9C, NA_SE_SY_GET_ITEM, 0x30, 0, 0, 0) +/* 0x4825 */ DEFINE_SFX(CHAN_5BBE, NA_SE_SY_WIN_SCROLL_LEFT, 0x30, 0, 0, 0) +/* 0x4826 */ DEFINE_SFX(CHAN_5BE8, NA_SE_SY_WIN_SCROLL_RIGHT, 0x30, 0, 0, 0) +/* 0x4827 */ DEFINE_SFX(CHAN_5BFA, NA_SE_SY_OCARINA_ERROR, 0x20, 0, 0, 0) +/* 0x4828 */ DEFINE_SFX(CHAN_5C07, NA_SE_SY_CAMERA_ZOOM_UP_2, 0x30, 0, 0, 0) +/* 0x4829 */ DEFINE_SFX(CHAN_5C1E, NA_SE_SY_CAMERA_ZOOM_DOWN_2, 0x30, 0, 0, 0) +/* 0x482A */ DEFINE_SFX(CHAN_5C35, NA_SE_SY_GLASSMODE_ON, 0x30, 0, 0, 0) +/* 0x482B */ DEFINE_SFX(CHAN_5C46, NA_SE_SY_GLASSMODE_OFF, 0x30, 0, 0, 0) +/* 0x482C */ DEFINE_SFX(CHAN_5C57, NA_SE_SY_FOUND, 0x60, 0, 0, 0) +/* 0x482D */ DEFINE_SFX(CHAN_5C64, NA_SE_SY_HIT_SOUND, 0x30, 0, 0, 0) +/* 0x482E */ DEFINE_SFX(CHAN_5C7A, NA_SE_SY_MESSAGE_END, 0x30, 0, 0, 0) +/* 0x482F */ DEFINE_SFX(CHAN_5C94, NA_SE_SY_RUPY_COUNT, 0x30, 0, 0, 0) +/* 0x4830 */ DEFINE_SFX(CHAN_5CAD, NA_SE_SY_LOCK_ON, 0x30, 0, 0, 0) +/* 0x4831 */ DEFINE_SFX(CHAN_5CB9, NA_SE_SY_GET_BOXITEM, 0x30, 0, 0, 0) +/* 0x4832 */ DEFINE_SFX(CHAN_5CD3, NA_SE_SY_WHITE_OUT_L, 0x30, 0, 0, 0) +/* 0x4833 */ DEFINE_SFX(CHAN_5CFC, NA_SE_SY_WHITE_OUT_S, 0x30, 0, 0, 0) +/* 0x4834 */ DEFINE_SFX(CHAN_5D1F, NA_SE_SY_WHITE_OUT_T, 0x30, 0, 0, 0) +/* 0x4835 */ DEFINE_SFX(CHAN_5D40, NA_SE_SY_START_SHOT, 0x30, 0, 0, 0) +/* 0x4836 */ DEFINE_SFX(CHAN_5D57, NA_SE_SY_METRONOME, 0x30, 0, 0, 0) +/* 0x4837 */ DEFINE_SFX(CHAN_5D61, NA_SE_SY_ATTENTION_URGENCY, 0x30, 0, 0, 0) +/* 0x4838 */ DEFINE_SFX(CHAN_5D6B, NA_SE_SY_METRONOME_LV, 0x30, 0, 0, 0) +/* 0x4839 */ DEFINE_SFX(CHAN_5D76, NA_SE_SY_FSEL_CURSOR, 0x30, 0, 0, 0) +/* 0x483A */ DEFINE_SFX(CHAN_5D9E, NA_SE_SY_FSEL_DECIDE_S, 0x30, 0, 0, 0) +/* 0x483B */ DEFINE_SFX(CHAN_5DBB, NA_SE_SY_FSEL_DECIDE_L, 0x30, 0, 0, 0) +/* 0x483C */ DEFINE_SFX(CHAN_5DDB, NA_SE_SY_FSEL_CLOSE, 0x30, 0, 0, 0) +/* 0x483D */ DEFINE_SFX(CHAN_5DF3, NA_SE_SY_FSEL_ERROR, 0x30, 0, 0, 0) +/* 0x483E */ DEFINE_SFX(CHAN_5E0A, NA_SE_SY_SET_FIRE_ARROW, 0x30, 0, 0, 0) +/* 0x483F */ DEFINE_SFX(CHAN_5E14, NA_SE_SY_SET_ICE_ARROW, 0x30, 0, 0, 0) +/* 0x4840 */ DEFINE_SFX(CHAN_5E1E, NA_SE_SY_SET_LIGHT_ARROW, 0x30, 0, 0, 0) +/* 0x4841 */ DEFINE_SFX(CHAN_5E28, NA_SE_SY_SYNTH_MAGIC_ARROW, 0x30, 0, 0, 0) +/* 0x4842 */ DEFINE_SFX(CHAN_5E31, NA_SE_SY_METRONOME_2, 0x30, 0, 0, 0) +/* 0x4843 */ DEFINE_SFX(CHAN_5E3D, NA_SE_SY_KINSTA_MARK_APPEAR, 0x30, 0, 0, 0) +/* 0x4844 */ DEFINE_SFX(CHAN_5E6B, NA_SE_SY_FIVE_COUNT_LUPY, 0x30, 0, 0, 0) +/* 0x4845 */ DEFINE_SFX(CHAN_5E88, NA_SE_SY_CARROT_RECOVER, 0x30, 0, 0, 0) +/* 0x4846 */ DEFINE_SFX(CHAN_5D57, NA_SE_EV_FAIVE_LUPY_COUNT, 0x30, 0, 0, 0) +/* 0x4847 */ DEFINE_SFX(CHAN_5D61, NA_SE_SY_DUMMY_71, 0x30, 0, 0, 0) diff --git a/include/tables/sfx/voicebank_table.h b/include/tables/sfx/voicebank_table.h index b876662b71..d39ebe1ba9 100644 --- a/include/tables/sfx/voicebank_table.h +++ b/include/tables/sfx/voicebank_table.h @@ -2,139 +2,141 @@ * Sfx Voice Bank * * DEFINE_SFX should be used for all sfx define in the voice bank from sequence 0 + * - Argument 0: Channel name for sequence 0 * - Argument 1: Enum value for this sfx * - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance * - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3) * - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3) * - Argument 5: Various flags to add properties to the sfx - * - * WARNING: entries must align with the table defined for the voice bank in sequence 0 */ -/* 0x6800 */ DEFINE_SFX(NA_SE_VO_LI_SWORD_N, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6801 */ DEFINE_SFX(NA_SE_VO_LI_SWORD_L, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6802 */ DEFINE_SFX(NA_SE_VO_LI_LASH, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6803 */ DEFINE_SFX(NA_SE_VO_LI_HANG, 0x20, 2, 0, SFX_FLAG_10) -/* 0x6804 */ DEFINE_SFX(NA_SE_VO_LI_CLIMB_END, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6805 */ DEFINE_SFX(NA_SE_VO_LI_DAMAGE_S, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6806 */ DEFINE_SFX(NA_SE_VO_LI_FREEZE, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6807 */ DEFINE_SFX(NA_SE_VO_LI_FALL_S, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6808 */ DEFINE_SFX(NA_SE_VO_LI_FALL_L, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6809 */ DEFINE_SFX(NA_SE_VO_LI_BREATH_REST, 0x30, 2, 1, SFX_FLAG_10) -/* 0x680A */ DEFINE_SFX(NA_SE_VO_LI_BREATH_DRINK, 0x30, 2, 1, SFX_FLAG_10) -/* 0x680B */ DEFINE_SFX(NA_SE_VO_LI_DOWN, 0x30, 2, 0, SFX_FLAG_10) -/* 0x680C */ DEFINE_SFX(NA_SE_VO_LI_TAKEN_AWAY, 0x30, 2, 0, SFX_FLAG_10) -/* 0x680D */ DEFINE_SFX(NA_SE_VO_LI_HELD, 0x50, 2, 0, SFX_FLAG_10) -/* 0x680E */ DEFINE_SFX(NA_SE_VO_LI_SNEEZE, 0x30, 2, 0, SFX_FLAG_10) -/* 0x680F */ DEFINE_SFX(NA_SE_VO_LI_SWEAT, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6810 */ DEFINE_SFX(NA_SE_VO_LI_DRINK, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6811 */ DEFINE_SFX(NA_SE_VO_LI_RELAX, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6812 */ DEFINE_SFX(NA_SE_VO_LI_SWORD_PUTAWAY, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6813 */ DEFINE_SFX(NA_SE_VO_LI_GROAN, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6814 */ DEFINE_SFX(NA_SE_VO_LI_AUTO_JUMP, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6815 */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_NALE, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6816 */ DEFINE_SFX(NA_SE_VO_LI_SURPRISE, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6817 */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_FROL, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6818 */ DEFINE_SFX(NA_SE_VO_LI_PUSH, 0x30, 2, 2, SFX_FLAG_10) -/* 0x6819 */ DEFINE_SFX(NA_SE_VO_LI_HOOKSHOT_HANG, 0x30, 2, 0, SFX_FLAG_10) -/* 0x681A */ DEFINE_SFX(NA_SE_VO_LI_LAND_DAMAGE_S, 0x30, 2, 0, SFX_FLAG_10) -/* 0x681B */ DEFINE_SFX(NA_SE_VO_LI_NULL_0x1b, 0x30, 2, 0, SFX_FLAG_10) -/* 0x681C */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_ATTACK, 0x30, 2, 0, SFX_FLAG_10) -/* 0x681D */ DEFINE_SFX(NA_SE_VO_BL_DOWN, 0x80, 2, 0, SFX_FLAG_10) -/* 0x681E */ DEFINE_SFX(NA_SE_VO_LI_DEMO_DAMAGE, 0x30, 2, 0, SFX_FLAG_10) -/* 0x681F */ DEFINE_SFX(NA_SE_VO_LI_ELECTRIC_SHOCK_LV, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6820 */ DEFINE_SFX(NA_SE_VO_LI_SWORD_N_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6821 */ DEFINE_SFX(NA_SE_VO_LI_ROLLING_CUT_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6822 */ DEFINE_SFX(NA_SE_VO_LI_LASH_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6823 */ DEFINE_SFX(NA_SE_VO_LI_HANG_KID, 0x20, 2, 0, SFX_FLAG_10) -/* 0x6824 */ DEFINE_SFX(NA_SE_VO_LI_CLIMB_END_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6825 */ DEFINE_SFX(NA_SE_VO_LI_DAMAGE_S_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6826 */ DEFINE_SFX(NA_SE_VO_LI_FREEZE_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6827 */ DEFINE_SFX(NA_SE_VO_LI_FALL_S_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6828 */ DEFINE_SFX(NA_SE_VO_LI_FALL_L_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6829 */ DEFINE_SFX(NA_SE_VO_LI_BREATH_REST_KID, 0x30, 2, 1, SFX_FLAG_10) -/* 0x682A */ DEFINE_SFX(NA_SE_VO_LI_BREATH_DRINK_KID, 0x30, 2, 1, SFX_FLAG_10) -/* 0x682B */ DEFINE_SFX(NA_SE_VO_LI_DOWN_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x682C */ DEFINE_SFX(NA_SE_VO_LI_TAKEN_AWAY_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x682D */ DEFINE_SFX(NA_SE_VO_LI_HELD_KID, 0x50, 2, 0, SFX_FLAG_10) -/* 0x682E */ DEFINE_SFX(NA_SE_VO_LI_SNEEZE_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x682F */ DEFINE_SFX(NA_SE_VO_LI_SWEAT_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6830 */ DEFINE_SFX(NA_SE_VO_LI_DRINK_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6831 */ DEFINE_SFX(NA_SE_VO_LI_RELAX_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6832 */ DEFINE_SFX(NA_SE_VO_LI_SWORD_PUTAWAY_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6833 */ DEFINE_SFX(NA_SE_VO_LI_GROAN_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6834 */ DEFINE_SFX(NA_SE_VO_LI_AUTO_JUMP_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6835 */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_NALE_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6836 */ DEFINE_SFX(NA_SE_VO_LI_SURPRISE_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6837 */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_FROL_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6838 */ DEFINE_SFX(NA_SE_VO_LI_PUSH_KID, 0x30, 1, 2, SFX_FLAG_10) -/* 0x6839 */ DEFINE_SFX(NA_SE_VO_LI_HOOKSHOT_HANG_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x683A */ DEFINE_SFX(NA_SE_VO_LI_LAND_DAMAGE_S_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x683B */ DEFINE_SFX(NA_SE_VO_LI_NULL_0x1b_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x683C */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_ATTACK_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x683D */ DEFINE_SFX(NA_SE_VO_BL_DOWN_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x683E */ DEFINE_SFX(NA_SE_VO_LI_DEMO_DAMAGE_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x683F */ DEFINE_SFX(NA_SE_VO_LI_ELECTRIC_SHOCK_LV_KID, 0x30, 2, 0, SFX_FLAG_10) -/* 0x6840 */ DEFINE_SFX(NA_SE_VO_NAVY_ENEMY, 0x60, 0, 0, SFX_FLAG_5) -/* 0x6841 */ DEFINE_SFX(NA_SE_VO_NAVY_HELLO, 0x30, 0, 0, SFX_FLAG_5) -/* 0x6842 */ DEFINE_SFX(NA_SE_VO_NAVY_HEAR, 0x30, 0, 0, SFX_FLAG_5) -/* 0x6843 */ DEFINE_SFX(NA_SE_VO_NAVY_CALL, 0x60, 0, 0, 0) -/* 0x6844 */ DEFINE_SFX(NA_SE_VO_NA_HELLO_3, 0x30, 0, 0, 0) -/* 0x6845 */ DEFINE_SFX(NA_SE_VO_DUMMY_0x45, 0x30, 0, 0, 0) -/* 0x6846 */ DEFINE_SFX(NA_SE_VO_DUMMY_0x46, 0x30, 0, 0, 0) -/* 0x6847 */ DEFINE_SFX(NA_SE_VO_DUMMY_0x47, 0x30, 0, 0, 0) -/* 0x6848 */ DEFINE_SFX(NA_SE_VO_DUMMY_0x48, 0x30, 0, 0, 0) -/* 0x6849 */ DEFINE_SFX(NA_SE_VO_DUMMY_0x49, 0x30, 0, 0, 0) -/* 0x684A */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4a, 0x30, 0, 0, 0) -/* 0x684B */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4b, 0x30, 0, 0, 0) -/* 0x684C */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4c, 0x30, 0, 0, 0) -/* 0x684D */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4d, 0x30, 0, 0, 0) -/* 0x684E */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4e, 0x30, 0, 0, 0) -/* 0x684F */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4f, 0x30, 0, 0, 0) -/* 0x6850 */ DEFINE_SFX(NA_SE_VO_TA_SLEEP, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6851 */ DEFINE_SFX(NA_SE_VO_TA_SURPRISE, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6852 */ DEFINE_SFX(NA_SE_VO_TA_CRY_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6853 */ DEFINE_SFX(NA_SE_VO_TA_CRY_1, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6854 */ DEFINE_SFX(NA_SE_VO_IN_CRY_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6855 */ DEFINE_SFX(NA_SE_VO_IN_LOST, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6856 */ DEFINE_SFX(NA_SE_VO_IN_LASH_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6857 */ DEFINE_SFX(NA_SE_VO_IN_LASH_1, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6858 */ DEFINE_SFX(NA_SE_VO_FR_LAUGH_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6859 */ DEFINE_SFX(NA_SE_VO_FR_SMILE_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x685A */ DEFINE_SFX(NA_SE_VO_NB_AGONY, 0x30, 1, 1, SFX_FLAG_15) -/* 0x685B */ DEFINE_SFX(NA_SE_VO_NB_CRY_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x685C */ DEFINE_SFX(NA_SE_VO_NB_NOTICE, 0x30, 1, 1, SFX_FLAG_15) -/* 0x685D */ DEFINE_SFX(NA_SE_VO_NA_HELLO_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x685E */ DEFINE_SFX(NA_SE_VO_NA_HELLO_1, 0x30, 1, 1, SFX_FLAG_15) -/* 0x685F */ DEFINE_SFX(NA_SE_VO_NA_HELLO_2, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6860 */ DEFINE_SFX(NA_SE_VO_RT_CRASH, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6861 */ DEFINE_SFX(NA_SE_VO_RT_DISCOVER, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6862 */ DEFINE_SFX(NA_SE_VO_RT_FALL, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6863 */ DEFINE_SFX(NA_SE_VO_RT_LAUGH_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6864 */ DEFINE_SFX(NA_SE_VO_RT_LIFT, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6865 */ DEFINE_SFX(NA_SE_VO_RT_THROW, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6866 */ DEFINE_SFX(NA_SE_VO_RT_UNBALLANCE, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6867 */ DEFINE_SFX(NA_SE_VO_ST_DAMAGE, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6868 */ DEFINE_SFX(NA_SE_VO_ST_ATTACK, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6869 */ DEFINE_SFX(NA_SE_VO_Z0_HURRY, 0x30, 1, 1, SFX_FLAG_15) -/* 0x686A */ DEFINE_SFX(NA_SE_VO_Z0_MEET, 0x30, 1, 1, SFX_FLAG_15) -/* 0x686B */ DEFINE_SFX(NA_SE_VO_Z0_QUESTION, 0x30, 1, 1, SFX_FLAG_15) -/* 0x686C */ DEFINE_SFX(NA_SE_VO_Z0_SIGH_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x686D */ DEFINE_SFX(NA_SE_VO_Z0_SMILE_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x686E */ DEFINE_SFX(NA_SE_VO_Z0_SURPRISE, 0x30, 1, 1, SFX_FLAG_15) -/* 0x686F */ DEFINE_SFX(NA_SE_VO_Z0_THROW, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6870 */ DEFINE_SFX(NA_SE_VO_SK_CRY_0, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6871 */ DEFINE_SFX(NA_SE_VO_SK_CRY_1, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6872 */ DEFINE_SFX(NA_SE_VO_SK_CRASH, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6873 */ DEFINE_SFX(NA_SE_VO_SK_LAUGH, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6874 */ DEFINE_SFX(NA_SE_VO_SK_SHOUT, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6875 */ DEFINE_SFX(NA_SE_VO_Z1_CRY_0, 0x30, 3, 1, SFX_FLAG_15) -/* 0x6876 */ DEFINE_SFX(NA_SE_VO_Z1_CRY_1, 0x30, 3, 1, SFX_FLAG_15) -/* 0x6877 */ DEFINE_SFX(NA_SE_VO_Z1_OPENDOOR, 0x30, 3, 1, SFX_FLAG_15) -/* 0x6878 */ DEFINE_SFX(NA_SE_VO_Z1_SURPRISE, 0x30, 1, 1, SFX_FLAG_15) -/* 0x6879 */ DEFINE_SFX(NA_SE_VO_Z1_PAIN, 0x30, 1, 1, SFX_FLAG_15) -/* 0x687A */ DEFINE_SFX(NA_SE_VO_KZ_MOVE, 0x30, 1, 1, SFX_FLAG_15) -/* 0x687B */ DEFINE_SFX(NA_SE_VO_NB_LAUGH, 0x30, 1, 1, SFX_FLAG_15) -/* 0x687C */ DEFINE_SFX(NA_SE_VO_IN_LAUGH, 0x30, 1, 1, SFX_FLAG_15) -/* 0x687D */ DEFINE_SFX(NA_SE_VO_DUMMY_0x7d, 0x30, 1, 1, SFX_FLAG_15) -/* 0x687E */ DEFINE_SFX(NA_SE_VO_DUMMY_0x7e, 0x30, 1, 1, SFX_FLAG_15) -/* 0x687F */ DEFINE_SFX(NA_SE_VO_DUMMY_0x7f, 0x30, 1, 1, SFX_FLAG_15) +/* Player Voices: Adult Link */ +/* 0x6800 */ DEFINE_SFX(CHAN_615D, NA_SE_VO_LI_SWORD_N, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6801 */ DEFINE_SFX(CHAN_6175, NA_SE_VO_LI_SWORD_L, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6802 */ DEFINE_SFX(CHAN_619B, NA_SE_VO_LI_LASH, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6803 */ DEFINE_SFX(CHAN_61C1, NA_SE_VO_LI_HANG, 0x20, 2, 0, SFX_FLAG_10) +/* 0x6804 */ DEFINE_SFX(CHAN_61D5, NA_SE_VO_LI_CLIMB_END, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6805 */ DEFINE_SFX(CHAN_61EA, NA_SE_VO_LI_DAMAGE_S, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6806 */ DEFINE_SFX(CHAN_6201, NA_SE_VO_LI_FREEZE, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6807 */ DEFINE_SFX(CHAN_6218, NA_SE_VO_LI_FALL_S, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6808 */ DEFINE_SFX(CHAN_622D, NA_SE_VO_LI_FALL_L, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6809 */ DEFINE_SFX(CHAN_6242, NA_SE_VO_LI_BREATH_REST, 0x30, 2, 1, SFX_FLAG_10) +/* 0x680A */ DEFINE_SFX(CHAN_6257, NA_SE_VO_LI_BREATH_DRINK, 0x30, 2, 1, SFX_FLAG_10) +/* 0x680B */ DEFINE_SFX(CHAN_625F, NA_SE_VO_LI_DOWN, 0x30, 2, 0, SFX_FLAG_10) +/* 0x680C */ DEFINE_SFX(CHAN_626F, NA_SE_VO_LI_TAKEN_AWAY, 0x30, 2, 0, SFX_FLAG_10) +/* 0x680D */ DEFINE_SFX(CHAN_6284, NA_SE_VO_LI_HELD, 0x50, 2, 0, SFX_FLAG_10) +/* 0x680E */ DEFINE_SFX(CHAN_6287, NA_SE_VO_LI_SNEEZE, 0x30, 2, 0, SFX_FLAG_10) +/* 0x680F */ DEFINE_SFX(CHAN_6299, NA_SE_VO_LI_SWEAT, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6810 */ DEFINE_SFX(CHAN_62AB, NA_SE_VO_LI_DRINK, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6811 */ DEFINE_SFX(CHAN_62B4, NA_SE_VO_LI_RELAX, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6812 */ DEFINE_SFX(CHAN_62C6, NA_SE_VO_LI_SWORD_PUTAWAY, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6813 */ DEFINE_SFX(CHAN_649B, NA_SE_VO_LI_GROAN, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6814 */ DEFINE_SFX(CHAN_62CE, NA_SE_VO_LI_AUTO_JUMP, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6815 */ DEFINE_SFX(CHAN_62EC, NA_SE_VO_LI_MAGIC_NALE, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6816 */ DEFINE_SFX(CHAN_62F4, NA_SE_VO_LI_SURPRISE, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6817 */ DEFINE_SFX(CHAN_62FE, NA_SE_VO_LI_MAGIC_FROL, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6818 */ DEFINE_SFX(CHAN_6306, NA_SE_VO_LI_PUSH, 0x30, 2, 2, SFX_FLAG_10) +/* 0x6819 */ DEFINE_SFX(CHAN_630E, NA_SE_VO_LI_HOOKSHOT_HANG, 0x30, 2, 0, SFX_FLAG_10) +/* 0x681A */ DEFINE_SFX(CHAN_6316, NA_SE_VO_LI_LAND_DAMAGE_S, 0x30, 2, 0, SFX_FLAG_10) +/* 0x681B */ DEFINE_SFX(CHAN_631E, NA_SE_VO_LI_NULL_0x1b, 0x30, 2, 0, SFX_FLAG_10) +/* 0x681C */ DEFINE_SFX(CHAN_6326, NA_SE_VO_LI_MAGIC_ATTACK, 0x30, 2, 0, SFX_FLAG_10) +/* 0x681D */ DEFINE_SFX(CHAN_622D, NA_SE_VO_BL_DOWN, 0x80, 2, 0, SFX_FLAG_10) +/* 0x681E */ DEFINE_SFX(CHAN_632E, NA_SE_VO_LI_DEMO_DAMAGE, 0x30, 2, 0, SFX_FLAG_10) +/* 0x681F */ DEFINE_SFX(CHAN_615D, NA_SE_VO_LI_ELECTRIC_SHOCK_LV, 0x30, 2, 0, SFX_FLAG_10) +/* Player Voices: Child Link */ +/* 0x6820 */ DEFINE_SFX(CHAN_6336, NA_SE_VO_LI_SWORD_N_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6821 */ DEFINE_SFX(CHAN_634F, NA_SE_VO_LI_ROLLING_CUT_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6822 */ DEFINE_SFX(CHAN_619B, NA_SE_VO_LI_LASH_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6823 */ DEFINE_SFX(CHAN_6376, NA_SE_VO_LI_HANG_KID, 0x20, 2, 0, SFX_FLAG_10) +/* 0x6824 */ DEFINE_SFX(CHAN_639A, NA_SE_VO_LI_CLIMB_END_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6825 */ DEFINE_SFX(CHAN_63AF, NA_SE_VO_LI_DAMAGE_S_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6826 */ DEFINE_SFX(CHAN_63C6, NA_SE_VO_LI_FREEZE_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6827 */ DEFINE_SFX(CHAN_63DD, NA_SE_VO_LI_FALL_S_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6828 */ DEFINE_SFX(CHAN_63F2, NA_SE_VO_LI_FALL_L_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6829 */ DEFINE_SFX(CHAN_6407, NA_SE_VO_LI_BREATH_REST_KID, 0x30, 2, 1, SFX_FLAG_10) +/* 0x682A */ DEFINE_SFX(CHAN_641C, NA_SE_VO_LI_BREATH_DRINK_KID, 0x30, 2, 1, SFX_FLAG_10) +/* 0x682B */ DEFINE_SFX(CHAN_6424, NA_SE_VO_LI_DOWN_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x682C */ DEFINE_SFX(CHAN_6434, NA_SE_VO_LI_TAKEN_AWAY_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x682D */ DEFINE_SFX(CHAN_6449, NA_SE_VO_LI_HELD_KID, 0x50, 2, 0, SFX_FLAG_10) +/* 0x682E */ DEFINE_SFX(CHAN_6451, NA_SE_VO_LI_SNEEZE_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x682F */ DEFINE_SFX(CHAN_6467, NA_SE_VO_LI_SWEAT_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6830 */ DEFINE_SFX(CHAN_6479, NA_SE_VO_LI_DRINK_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6831 */ DEFINE_SFX(CHAN_6482, NA_SE_VO_LI_RELAX_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6832 */ DEFINE_SFX(CHAN_6493, NA_SE_VO_LI_SWORD_PUTAWAY_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6833 */ DEFINE_SFX(CHAN_649B, NA_SE_VO_LI_GROAN_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6834 */ DEFINE_SFX(CHAN_64A5, NA_SE_VO_LI_AUTO_JUMP_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6835 */ DEFINE_SFX(CHAN_64C9, NA_SE_VO_LI_MAGIC_NALE_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6836 */ DEFINE_SFX(CHAN_64D1, NA_SE_VO_LI_SURPRISE_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6837 */ DEFINE_SFX(CHAN_64DB, NA_SE_VO_LI_MAGIC_FROL_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x6838 */ DEFINE_SFX(CHAN_64E3, NA_SE_VO_LI_PUSH_KID, 0x30, 1, 2, SFX_FLAG_10) +/* 0x6839 */ DEFINE_SFX(CHAN_64EB, NA_SE_VO_LI_HOOKSHOT_HANG_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x683A */ DEFINE_SFX(CHAN_64F3, NA_SE_VO_LI_LAND_DAMAGE_S_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x683B */ DEFINE_SFX(CHAN_64FB, NA_SE_VO_LI_NULL_0x1b_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x683C */ DEFINE_SFX(CHAN_6503, NA_SE_VO_LI_MAGIC_ATTACK_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x683D */ DEFINE_SFX(CHAN_63F2, NA_SE_VO_BL_DOWN_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x683E */ DEFINE_SFX(CHAN_650B, NA_SE_VO_LI_DEMO_DAMAGE_KID, 0x30, 2, 0, SFX_FLAG_10) +/* 0x683F */ DEFINE_SFX(CHAN_615D, NA_SE_VO_LI_ELECTRIC_SHOCK_LV_KID, 0x30, 2, 0, SFX_FLAG_10) +/* */ +/* 0x6840 */ DEFINE_SFX(CHAN_612C, NA_SE_VO_NAVY_ENEMY, 0x60, 0, 0, SFX_FLAG_5) +/* 0x6841 */ DEFINE_SFX(CHAN_612C, NA_SE_VO_NAVY_HELLO, 0x30, 0, 0, SFX_FLAG_5) +/* 0x6842 */ DEFINE_SFX(CHAN_612C, NA_SE_VO_NAVY_HEAR, 0x30, 0, 0, SFX_FLAG_5) +/* 0x6843 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_NAVY_CALL, 0x60, 0, 0, 0) +/* 0x6844 */ DEFINE_SFX(CHAN_6513, NA_SE_VO_NA_HELLO_3, 0x30, 0, 0, 0) +/* 0x6845 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x45, 0x30, 0, 0, 0) +/* 0x6846 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x46, 0x30, 0, 0, 0) +/* 0x6847 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x47, 0x30, 0, 0, 0) +/* 0x6848 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x48, 0x30, 0, 0, 0) +/* 0x6849 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x49, 0x30, 0, 0, 0) +/* 0x684A */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4a, 0x30, 0, 0, 0) +/* 0x684B */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4b, 0x30, 0, 0, 0) +/* 0x684C */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4c, 0x30, 0, 0, 0) +/* 0x684D */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4d, 0x30, 0, 0, 0) +/* 0x684E */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4e, 0x30, 0, 0, 0) +/* 0x684F */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4f, 0x30, 0, 0, 0) +/* 0x6850 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_TA_SLEEP, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6851 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_TA_SURPRISE, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6852 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_TA_CRY_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6853 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_TA_CRY_1, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6854 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_IN_CRY_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6855 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_IN_LOST, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6856 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_IN_LASH_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6857 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_IN_LASH_1, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6858 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_FR_LAUGH_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6859 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_FR_SMILE_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x685A */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NB_AGONY, 0x30, 1, 1, SFX_FLAG_15) +/* 0x685B */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NB_CRY_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x685C */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NB_NOTICE, 0x30, 1, 1, SFX_FLAG_15) +/* 0x685D */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NA_HELLO_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x685E */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NA_HELLO_1, 0x30, 1, 1, SFX_FLAG_15) +/* 0x685F */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NA_HELLO_2, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6860 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_CRASH, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6861 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_DISCOVER, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6862 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_FALL, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6863 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_LAUGH_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6864 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_LIFT, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6865 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_THROW, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6866 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_UNBALLANCE, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6867 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_ST_DAMAGE, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6868 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_ST_ATTACK, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6869 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_HURRY, 0x30, 1, 1, SFX_FLAG_15) +/* 0x686A */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_MEET, 0x30, 1, 1, SFX_FLAG_15) +/* 0x686B */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_QUESTION, 0x30, 1, 1, SFX_FLAG_15) +/* 0x686C */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_SIGH_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x686D */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_SMILE_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x686E */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_SURPRISE, 0x30, 1, 1, SFX_FLAG_15) +/* 0x686F */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_THROW, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6870 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_SK_CRY_0, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6871 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_SK_CRY_1, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6872 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_SK_CRASH, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6873 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_SK_LAUGH, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6874 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_SK_SHOUT, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6875 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z1_CRY_0, 0x30, 3, 1, SFX_FLAG_15) +/* 0x6876 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z1_CRY_1, 0x30, 3, 1, SFX_FLAG_15) +/* 0x6877 */ DEFINE_SFX(CHAN_6562, NA_SE_VO_Z1_OPENDOOR, 0x30, 3, 1, SFX_FLAG_15) +/* 0x6878 */ DEFINE_SFX(CHAN_6562, NA_SE_VO_Z1_SURPRISE, 0x30, 1, 1, SFX_FLAG_15) +/* 0x6879 */ DEFINE_SFX(CHAN_6562, NA_SE_VO_Z1_PAIN, 0x30, 1, 1, SFX_FLAG_15) +/* 0x687A */ DEFINE_SFX(CHAN_6562, NA_SE_VO_KZ_MOVE, 0x30, 1, 1, SFX_FLAG_15) +/* 0x687B */ DEFINE_SFX(CHAN_6562, NA_SE_VO_NB_LAUGH, 0x30, 1, 1, SFX_FLAG_15) +/* 0x687C */ DEFINE_SFX(CHAN_6562, NA_SE_VO_IN_LAUGH, 0x30, 1, 1, SFX_FLAG_15) +/* 0x687D */ DEFINE_SFX(CHAN_6520, NA_SE_VO_DUMMY_0x7d, 0x30, 1, 1, SFX_FLAG_15) +/* 0x687E */ DEFINE_SFX(CHAN_6520, NA_SE_VO_DUMMY_0x7e, 0x30, 1, 1, SFX_FLAG_15) +/* 0x687F */ DEFINE_SFX(CHAN_6520, NA_SE_VO_DUMMY_0x7f, 0x30, 1, 1, SFX_FLAG_15) diff --git a/spec b/spec index ecb96a20d9..5163f4d885 100644 --- a/spec +++ b/spec @@ -205,7 +205,116 @@ endseg beginseg name "Audioseq" - include "$(BUILD_DIR)/baserom/Audioseq.o" + address 0 + include "$(BUILD_DIR)/assets/audio/sequences/seq_0.prg.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_1.prg.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_2.prg.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_3.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_4.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_5.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_6.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_7.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_8.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_9.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_10.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_11.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_12.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_13.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_14.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_15.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_16.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_17.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_18.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_19.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_20.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_21.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_22.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_23.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_24.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_25.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_26.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_27.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_28.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_29.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_30.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_31.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_32.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_33.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_34.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_35.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_36.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_37.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_38.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_39.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_40.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_41.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_42.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_43.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_44.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_45.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_46.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_47.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_48.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_49.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_50.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_51.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_52.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_53.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_54.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_55.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_56.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_57.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_58.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_59.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_60.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_61.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_62.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_63.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_64.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_65.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_66.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_67.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_68.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_69.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_70.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_71.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_72.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_73.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_74.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_75.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_76.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_77.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_78.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_79.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_80.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_81.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_82.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_83.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_84.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_85.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_86.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_88.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_89.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_90.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_91.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_92.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_93.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_94.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_95.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_96.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_97.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_98.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_99.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_100.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_101.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_102.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_103.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_104.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_105.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_106.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_107.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_108.o" + include "$(BUILD_DIR)/assets/audio/sequences/seq_109.prg.o" endseg beginseg @@ -781,7 +890,8 @@ beginseg include "$(BUILD_DIR)/src/code/z_message_z_game_over.o" include "$(BUILD_DIR)/src/code/z_construct.o" include "$(BUILD_DIR)/src/audio/tables/soundfont_table.o" - include "$(BUILD_DIR)/data/audio_tables.rodata.o" + include "$(BUILD_DIR)/assets/audio/sequence_font_table.o" + include "$(BUILD_DIR)/src/audio/tables/sequence_table.o" include "$(BUILD_DIR)/src/audio/tables/samplebank_table.o" include "$(BUILD_DIR)/data/rsp.text.o" include "$(BUILD_DIR)/data/rsp.rodata.o" diff --git a/src/audio/general.c b/src/audio/general.c index fadbed0a9a..615a359c38 100644 --- a/src/audio/general.c +++ b/src/audio/general.c @@ -79,7 +79,31 @@ typedef struct OcarinaStick { s8 y; } OcarinaStick; -u8 gIsLargeSfxBank[7] = { 0, 0, 0, 1, 0, 0, 0 }; +#define DEFINE_SFX(_0, _1, _2, _3, _4, _5) 1 + +u8 gIsLargeSfxBank[7] = { + ( +#include "tables/sfx/playerbank_table.h" + 0) > UINT8_MAX, + ( +#include "tables/sfx/itembank_table.h" + 0) > UINT8_MAX, + ( +#include "tables/sfx/environmentbank_table.h" + 0) > UINT8_MAX, + ( +#include "tables/sfx/enemybank_table.h" + 0) > UINT8_MAX, + ( +#include "tables/sfx/systembank_table.h" + 0) > UINT8_MAX, + ( +#include "tables/sfx/ocarinabank_table.h" + 0) > UINT8_MAX, + ( +#include "tables/sfx/voicebank_table.h" + 0) > UINT8_MAX, +}; +#undef DEFINE_SFX // Only the first row of these is supported by sequence 0. (gSfxChannelLayout is always 0.) u8 gChannelsPerBank[4][7] = { @@ -168,122 +192,13 @@ u8 sSeqModeInput = 0; #define SEQ_FLAG_SKIP_HARP_INTRO (1 << 6) #define SEQ_FLAG_NO_AMBIENCE (1 << 7) +#define DEFINE_SEQUENCE(name, seqId, storageMedium, cachePolicy, seqFlags) seqFlags, +#define DEFINE_SEQUENCE_PTR(seqIdReal, seqId, storageMediumReal, cachePolicyReal, seqFlags) seqFlags, u8 sSeqFlags[] = { -#if PLATFORM_N64 - SEQ_FLAG_FANFARE | SEQ_FLAG_ENEMY, // NA_BGM_GENERAL_SFX -#else - SEQ_FLAG_FANFARE, // NA_BGM_GENERAL_SFX -#endif - SEQ_FLAG_ENEMY, // NA_BGM_NATURE_BACKGROUND - 0, // NA_BGM_FIELD_LOGIC - 0, // NA_BGM_FIELD_INIT - 0, // NA_BGM_FIELD_DEFAULT_1 - 0, // NA_BGM_FIELD_DEFAULT_2 - 0, // NA_BGM_FIELD_DEFAULT_3 - 0, // NA_BGM_FIELD_DEFAULT_4 - 0, // NA_BGM_FIELD_DEFAULT_5 - 0, // NA_BGM_FIELD_DEFAULT_6 - 0, // NA_BGM_FIELD_DEFAULT_7 - 0, // NA_BGM_FIELD_DEFAULT_8 - 0, // NA_BGM_FIELD_DEFAULT_9 - 0, // NA_BGM_FIELD_DEFAULT_A - 0, // NA_BGM_FIELD_DEFAULT_B - 0, // NA_BGM_FIELD_ENEMY_INIT - 0, // NA_BGM_FIELD_ENEMY_1 - 0, // NA_BGM_FIELD_ENEMY_2 - 0, // NA_BGM_FIELD_ENEMY_3 - 0, // NA_BGM_FIELD_ENEMY_4 - 0, // NA_BGM_FIELD_STILL_1 - 0, // NA_BGM_FIELD_STILL_2 - 0, // NA_BGM_FIELD_STILL_3 - 0, // NA_BGM_FIELD_STILL_4 - SEQ_FLAG_RESUME_PREV | SEQ_FLAG_ENEMY, // NA_BGM_DUNGEON - SEQ_FLAG_RESUME, // NA_BGM_KAKARIKO_ADULT - 0, // NA_BGM_ENEMY - SEQ_FLAG_NO_AMBIENCE | SEQ_FLAG_RESTORE, // NA_BGM_BOSS - SEQ_FLAG_ENEMY, // NA_BGM_INSIDE_DEKU_TREE - 0, // NA_BGM_MARKET - 0, // NA_BGM_TITLE - SEQ_FLAG_RESUME_PREV, // NA_BGM_LINK_HOUSE - 0, // NA_BGM_GAME_OVER - 0, // NA_BGM_BOSS_CLEAR - SEQ_FLAG_FANFARE, // NA_BGM_ITEM_GET - SEQ_FLAG_FANFARE_GANON, // NA_BGM_OPENING_GANON - SEQ_FLAG_FANFARE, // NA_BGM_HEART_GET - SEQ_FLAG_FANFARE, // NA_BGM_OCA_LIGHT - SEQ_FLAG_ENEMY, // NA_BGM_JABU_JABU - SEQ_FLAG_RESUME, // NA_BGM_KAKARIKO_KID - 0, // NA_BGM_GREAT_FAIRY - 0, // NA_BGM_ZELDA_THEME - SEQ_FLAG_ENEMY, // NA_BGM_FIRE_TEMPLE - SEQ_FLAG_FANFARE, // NA_BGM_OPEN_TRE_BOX - SEQ_FLAG_ENEMY, // NA_BGM_FOREST_TEMPLE - 0, // NA_BGM_COURTYARD - SEQ_FLAG_NO_AMBIENCE, // NA_BGM_GANON_TOWER - 0, // NA_BGM_LONLON - SEQ_FLAG_NO_AMBIENCE, // NA_BGM_GORON_CITY - 0, // NA_BGM_FIELD_MORNING - SEQ_FLAG_FANFARE, // NA_BGM_SPIRITUAL_STONE - SEQ_FLAG_FANFARE, // NA_BGM_OCA_BOLERO - SEQ_FLAG_FANFARE, // NA_BGM_OCA_MINUET - SEQ_FLAG_FANFARE, // NA_BGM_OCA_SERENADE - SEQ_FLAG_FANFARE, // NA_BGM_OCA_REQUIEM - SEQ_FLAG_FANFARE, // NA_BGM_OCA_NOCTURNE - SEQ_FLAG_NO_AMBIENCE | SEQ_FLAG_RESTORE, // NA_BGM_MINI_BOSS - SEQ_FLAG_FANFARE, // NA_BGM_SMALL_ITEM_GET - 0, // NA_BGM_TEMPLE_OF_TIME - SEQ_FLAG_FANFARE, // NA_BGM_EVENT_CLEAR - SEQ_FLAG_RESUME | SEQ_FLAG_ENEMY, // NA_BGM_KOKIRI - SEQ_FLAG_FANFARE, // NA_BGM_OCA_FAIRY_GET - SEQ_FLAG_ENEMY, // NA_BGM_SARIA_THEME - SEQ_FLAG_ENEMY, // NA_BGM_SPIRIT_TEMPLE - 0, // NA_BGM_HORSE - 0, // NA_BGM_HORSE_GOAL - 0, // NA_BGM_INGO - SEQ_FLAG_FANFARE, // NA_BGM_MEDALLION_GET - SEQ_FLAG_FANFARE, // NA_BGM_OCA_SARIA - SEQ_FLAG_FANFARE, // NA_BGM_OCA_EPONA - SEQ_FLAG_FANFARE, // NA_BGM_OCA_ZELDA - SEQ_FLAG_FANFARE, // NA_BGM_OCA_SUNS - SEQ_FLAG_FANFARE, // NA_BGM_OCA_TIME - SEQ_FLAG_FANFARE, // NA_BGM_OCA_STORM - 0, // NA_BGM_NAVI_OPENING - 0, // NA_BGM_DEKU_TREE_CS - 0, // NA_BGM_WINDMILL - 0, // NA_BGM_HYRULE_CS - SEQ_FLAG_RESUME_PREV, // NA_BGM_MINI_GAME - 0, // NA_BGM_SHEIK - SEQ_FLAG_RESUME, // NA_BGM_ZORA_DOMAIN - SEQ_FLAG_FANFARE, // NA_BGM_APPEAR - 0, // NA_BGM_ADULT_LINK - 0, // NA_BGM_MASTER_SWORD - SEQ_FLAG_FANFARE_GANON, // NA_BGM_INTRO_GANON - SEQ_FLAG_RESUME_PREV, // NA_BGM_SHOP - SEQ_FLAG_SKIP_HARP_INTRO, // NA_BGM_CHAMBER_OF_SAGES - SEQ_FLAG_SKIP_HARP_INTRO, // NA_BGM_FILE_SELECT - SEQ_FLAG_ENEMY, // NA_BGM_ICE_CAVERN - SEQ_FLAG_FANFARE, // NA_BGM_DOOR_OF_TIME - SEQ_FLAG_FANFARE, // NA_BGM_OWL - SEQ_FLAG_ENEMY, // NA_BGM_SHADOW_TEMPLE - SEQ_FLAG_ENEMY, // NA_BGM_WATER_TEMPLE - SEQ_FLAG_FANFARE, // NA_BGM_BRIDGE_TO_GANONS - 0, // NA_BGM_OCARINA_OF_TIME - SEQ_FLAG_RESUME | SEQ_FLAG_ENEMY, // NA_BGM_GERUDO_VALLEY - 0, // NA_BGM_POTION_SHOP - 0, // NA_BGM_KOTAKE_KOUME - SEQ_FLAG_NO_AMBIENCE, // NA_BGM_ESCAPE - 0, // NA_BGM_UNDERGROUND - SEQ_FLAG_NO_AMBIENCE, // NA_BGM_GANON_BATTLE_1 - SEQ_FLAG_NO_AMBIENCE, // NA_BGM_GANON_BATTLE_2 - 0, // NA_BGM_END_DEMO - 0, // NA_BGM_STAFF_1 - 0, // NA_BGM_STAFF_2 - 0, // NA_BGM_STAFF_3 - 0, // NA_BGM_STAFF_4 - 0, // NA_BGM_FIRE_BOSS - SEQ_FLAG_RESTORE, // NA_BGM_TIMED_MINI_GAME - 0, // NA_BGM_CUTSCENE_EFFECTS +#include "tables/sequence_table.h" }; +#undef DEFINE_SEQUENCE +#undef DEFINE_SEQUENCE_PTR s8 sSpecReverbs[20] = { 0, 0, 0, 0, 0, 0, 0, 40, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; diff --git a/src/audio/sfx_params.c b/src/audio/sfx_params.c index 6269dffa49..4f52fbdf0a 100644 --- a/src/audio/sfx_params.c +++ b/src/audio/sfx_params.c @@ -1,7 +1,7 @@ #include "ultra64.h" #include "global.h" -#define DEFINE_SFX(_0, importance, distParam, randParam, flags) \ +#define DEFINE_SFX(_0, _1, importance, distParam, randParam, flags) \ { importance, ((((distParam) << SFX_PARAM_01_SHIFT) & SFX_PARAM_01_MASK) | \ (((randParam) << SFX_PARAM_67_SHIFT) & SFX_PARAM_67_MASK) | (flags)) }, diff --git a/src/audio/tables/sequence_table.c b/src/audio/tables/sequence_table.c new file mode 100644 index 0000000000..7a08ce79c5 --- /dev/null +++ b/src/audio/tables/sequence_table.c @@ -0,0 +1,51 @@ +#include "attributes.h" +#include "z64audio.h" + +// Symbol definition + +extern AudioTable gSequenceTable; +#pragma weak gSequenceTable = sSequenceTableHeader + +// Externs for table + +#define DEFINE_SEQUENCE(name, seqId, storageMedium, cachePolicy, seqFlags) \ + extern u8 name##_Start[]; \ + extern u8 name##_Size[]; +#define DEFINE_SEQUENCE_PTR(seqIdReal, seqId, storageMediumReal, cachePolicyReal, seqFlags) /*empty*/ + +#include "tables/sequence_table.h" + +#undef DEFINE_SEQUENCE +#undef DEFINE_SEQUENCE_PTR + +// Table header + +NO_REORDER AudioTableHeader sSequenceTableHeader = { +// The table contains the number of sequences, count them with the preprocessor +#define DEFINE_SEQUENCE(name, seqId, storageMedium, cachePolicy, seqFlags) 1 + +#define DEFINE_SEQUENCE_PTR(seqIdReal, seqId, storageMediumReal, cachePolicyReal, seqFlags) 1 + + +#include "tables/sequence_table.h" + +#undef DEFINE_SEQUENCE +#undef DEFINE_SEQUENCE_PTR + 0, + + 0, + 0x00000000, + { 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +// Table body + +NO_REORDER AudioTableEntry sSequenceTableEntries[] = { +#define DEFINE_SEQUENCE(name, seqId, storageMedium, cachePolicy, seqFlags) \ + { (u32)name##_Start, (u32)name##_Size, (storageMedium), (cachePolicy), 0, 0, 0 }, +#define DEFINE_SEQUENCE_PTR(seqIdReal, seqId, storageMediumReal, cachePolicyReal, seqFlags) \ + { (seqIdReal), 0, (storageMediumReal), (cachePolicyReal), 0, 0, 0 }, + +#include "tables/sequence_table.h" + +#undef DEFINE_SEQUENCE +#undef DEFINE_SEQUENCE_PTR +}; diff --git a/tools/audio/audio_tablegen.c b/tools/audio/audio_tablegen.c index e7ec98c8bb..f64ce2512d 100644 --- a/tools/audio/audio_tablegen.c +++ b/tools/audio/audio_tablegen.c @@ -8,6 +8,7 @@ */ #include #include +#include #include #include #include @@ -17,24 +18,9 @@ #include "samplebank.h" #include "soundfont.h" #include "xml.h" +#include "elf32.h" #include "util.h" -/* Utility */ - -static bool -is_xml(const char *path) -{ - size_t len = strlen(path); - - if (len < 4) - return false; - if (path[len - 4] == '.' && tolower(path[len - 3]) == 'x' && tolower(path[len - 2]) == 'm' && - tolower(path[len - 1]) == 'l') - return true; - - return false; -} - /* Samplebanks */ static int @@ -46,8 +32,9 @@ tablegen_samplebanks(const char *sb_hdr_out, const char **samplebanks_paths, int for (int i = 0; i < num_samplebank_files; i++) { const char *path = samplebanks_paths[i]; + size_t pathlen = strlen(path); - if (!is_xml(path)) + if (!str_endswith(path, pathlen, ".xml")) error("Not an xml file? (\"%s\")", path); xmlDocPtr document = xmlReadFile(path, NULL, XML_PARSE_NONET); @@ -189,7 +176,7 @@ validate_samplebank_index(soundfont *sf, samplebank *sb, int ptr_idx) } } -int +static int tablegen_soundfonts(const char *sf_hdr_out, char **soundfonts_paths, int num_soundfont_files) { soundfont *soundfonts = malloc(num_soundfont_files * sizeof(soundfont)); @@ -197,8 +184,9 @@ tablegen_soundfonts(const char *sf_hdr_out, char **soundfonts_paths, int num_sou for (int i = 0; i < num_soundfont_files; i++) { char *path = soundfonts_paths[i]; + size_t pathlen = strlen(path); - if (!is_xml(path)) + if (!str_endswith(path, pathlen, ".xml")) error("Not an xml file? (\"%s\")", path); xmlDocPtr document = xmlReadFile(path, NULL, XML_PARSE_NONET); @@ -213,7 +201,6 @@ tablegen_soundfonts(const char *sf_hdr_out, char **soundfonts_paths, int num_sou // Transform the xml path into a header include path // Assumption: replacing .xml -> .h forms a valid header include path - size_t pathlen = strlen(path); path[pathlen - 3] = 'h'; path[pathlen - 2] = '\0'; @@ -290,6 +277,298 @@ tablegen_soundfonts(const char *sf_hdr_out, char **soundfonts_paths, int num_sou return EXIT_SUCCESS; } +/* Sequences */ + +struct seq_order_entry { + const char *name; + const char *enum_name; + bool isptr; +}; + +struct seq_order { + size_t num_sequences; + struct seq_order_entry *entries; + void *filedata; +}; + +static void +read_seq_order(struct seq_order *order, const char *path) +{ + // Read from file, we assume the file has been preprocessed with cpp so that whitespace is collapsed and each line + // has the form: + // (name,enum_name) or *(name,enum_name) + UNUSED size_t data_size; + char *filedata = util_read_whole_file(path, &data_size); + + // We expect one entry per line, gather the total length + size_t total_size = 0; + for (char *p = filedata; *p != '\0'; p++) { + if (*p == '\n') { + total_size++; + } else if (isspace(*p)) { + // There should be no whitespace in the input file besides newlines + goto malformed; + } + } + + // Alloc entries + struct seq_order_entry *entries = malloc(total_size * sizeof(struct seq_order_entry)); + + enum matchno { + MATCH_ALL, + MATCH_PTR, + MATCH_NAME, + MATCH_ENUM, + MATCH_NUM + }; + regmatch_t match[MATCH_NUM]; + regex_t re; + // Matches either + // (,) for non-pointer entries + // or + // *(,) for pointer entries + const char *line_regexp = "^(\\*?)\\(([_a-zA-Z][_a-zA-Z0-9]*),([_a-zA-Z][_a-zA-Z0-9]*)\\)$"; + + int status = regcomp(&re, line_regexp, REG_EXTENDED); + assert(status == 0 && "Failed to compile sequence order regular expression?"); + + char *lstart = filedata; + for (size_t i = 0; i < total_size; i++) { + // find end of line + char *p = lstart; + while (*p != '\n') { + assert(*p != '\0'); + p++; + } + char *lend = p; + // null-terminate the line (replaces the newline) + *lend = '\0'; + + // try to match the regular expression + status = regexec(&re, lstart, MATCH_NUM, match, 0); + if (status != 0) { + // failed to match, malformed input file + char ebuf[128]; + regerror(status, &re, ebuf, sizeof(ebuf)); + fprintf(stderr, "Failed to match line %lu: \"%s\"\nregexec error: \"%s\"\n", i, lstart, ebuf); + goto malformed; + } + + // if the group is empty we're not a pointer, else we are + entries[i].isptr = match[MATCH_PTR].rm_so != match[MATCH_PTR].rm_eo; + + // get the name + entries[i].name = &lstart[match[MATCH_NAME].rm_so]; + lstart[match[MATCH_NAME].rm_eo] = '\0'; // replaces , + + // get the enum name + entries[i].enum_name = &lstart[match[MATCH_ENUM].rm_so]; + lstart[match[MATCH_ENUM].rm_eo] = '\0'; // replaces ) + + // next line + lstart = lend + 1; + } + assert(*lstart == '\0'); + + // Write results + order->num_sequences = total_size; + order->entries = entries; + order->filedata = filedata; + return; +malformed: + error("Malformed %s?", path); +} + +struct seqdata { + const char *elf_path; + const char *name; + uint32_t font_section_offset; + size_t font_section_size; +}; + +static int +tablegen_sequences(const char *seq_font_tbl_out, const char *seq_order_path, const char **sequences_paths, + int num_sequence_files) +{ + struct seq_order order; + read_seq_order(&order, seq_order_path); + +#ifdef SEQ_DEBUG + // Print the sequence order + printf("Sequence order:\n"); + for (size_t i = 0; i < order.num_sequences; i++) { + printf(" name=\"%s\" enum=\"%s\" ptr=%d\n", order.entries[i].name, order.entries[i].enum_name, + order.entries[i].isptr); + } +#endif + + struct seqdata *file_data = malloc(num_sequence_files * sizeof(struct seqdata)); + + // Read and validate the sequence object files + + for (int i = 0; i < num_sequence_files; i++) { + const char *path = sequences_paths[i]; + + if (!str_endswith(path, strlen(path), ".o")) + error("Not a .o file? (\"%s\")", path); + + // Open ELF file + + size_t data_size; + void *data = elf32_read(path, &data_size); + + Elf32_Shdr *symtab = elf32_get_symtab(data, data_size); + if (symtab == NULL) + error("ELF file \"%s\" has no symbol table?", path); + Elf32_Shdr *shstrtab = elf32_get_shstrtab(data, data_size); + if (shstrtab == NULL) + error("ELF file \"%s\" has no section header string table?", path); + + // The .fonts and .name sections are written when assembling the sequence: + // The .fonts section contains a list of bytes for each soundfont the sequences uses + // The .name section contains the null-terminated name of the sequence as set by .startseq + + Elf32_Shdr *font_section = elf32_section_forname(".fonts", shstrtab, data, data_size); + if (font_section == NULL) + error("Sequence file \"%s\" has no fonts section?", path); + + uint32_t font_section_offset = elf32_read32(font_section->sh_offset); + uint32_t font_section_size = elf32_read32(font_section->sh_size); + validate_read(font_section_offset, font_section_size, data_size); + + Elf32_Shdr *name_section = elf32_section_forname(".name", shstrtab, data, data_size); + if (name_section == NULL) + error("Sequence file \"%s\" has no name section?", path); + + uint32_t name_section_offset = elf32_read32(name_section->sh_offset); + uint32_t name_section_size = elf32_read32(name_section->sh_size); + validate_read(name_section_offset, name_section_size, data_size); + + const char *seq_name = GET_PTR(data, name_section_offset); + if (strnlen(seq_name, name_section_size + 1) >= name_section_size) + error("Sequence file \"%s\" name is not properly terminated?", path); + + // Populate new data + struct seqdata *seqdata = &file_data[i]; + seqdata->elf_path = strdup(path); + seqdata->name = strdup(seq_name); + seqdata->font_section_offset = font_section_offset; + seqdata->font_section_size = font_section_size; + + free(data); + } + +#ifdef SEQ_DEBUG + // Debugging: Print the findings for each sequence object + printf("\nNum files: %d\n\n", num_sequence_files); + + for (int i = 0; i < num_sequence_files; i++) { + struct seqdata *seqdata = &file_data[i]; + + printf( + // clang-format off + " elf path : \"%s\"" "\n" + " name : \"%s\"" "\n" + " font offset : 0x%X" "\n" + " num fonts : %lu" "\n\n", + // clang-format on + seqdata->elf_path, seqdata->name, seqdata->font_section_offset, seqdata->font_section_size); + } +#endif + + // Link against the sequence order coming from the sequence table header + + struct seqdata **final_seqdata = calloc(order.num_sequences, sizeof(struct seqdata *)); + + for (size_t i = 0; i < order.num_sequences; i++) { + // Skip pointers for now + if (order.entries[i].isptr) + continue; + + // If it's not a pointer, "name" is the name as it appears in a sequence file, find it in the list of sequences + const char *name = order.entries[i].name; + + // Find the object file with this name + for (int j = 0; j < num_sequence_files; j++) { + struct seqdata *seqdata = &file_data[j]; + + if (strequ(name, seqdata->name)) { + // Found name, done + final_seqdata[i] = seqdata; + break; + } + } + } + + for (size_t i = 0; i < order.num_sequences; i++) { + // Now we only care about pointers + if (!order.entries[i].isptr) + continue; + + // If it's a pointer, "name" is the ENUM name of the sequence it points to + const char *name = order.entries[i].name; + + for (size_t j = 0; j < order.num_sequences; j++) { + // Skip pointers, the system doesn't allow multiple indirection so this must point to a non-pointer entry. + if (order.entries[j].isptr) + continue; + + if (strequ(name, order.entries[j].enum_name)) { + // For pointers, we just duplicate the fonts for the original into the pointer entry. + // TODO ideally we would allow fonts to be different when a sequence is accessed by pointer, but how + // to supply this info? + final_seqdata[i] = final_seqdata[j]; + break; + } + } + } + + // Make sure we found an object file for all declared sequences + for (size_t i = 0; i < order.num_sequences; i++) { + if (final_seqdata[i] == NULL) + error("Could not find object file for sequence %lu : %s", i, order.entries[i].name); + } + + // Write the sequence font table out + + FILE *out = fopen(seq_font_tbl_out, "w"); + if (out == NULL) + error("Failed to open output file \"%s\" for writing", seq_font_tbl_out); + + fprintf(out, + // clang-format off + "\n" + ".section .rodata" "\n" + "\n" + ".global gSequenceFontTable" "\n" + "gSequenceFontTable:" "\n" + // clang-format on + ); + + // Write the 16-bit offsets for each sequence + for (size_t i = 0; i < order.num_sequences; i++) { + fprintf(out, " .half Fonts_%lu - gSequenceFontTable\n", i); + } + fprintf(out, "\n"); + + // Write the fonts for each sequence: number of fonts followed by an incbin for the rest. + for (size_t i = 0; i < order.num_sequences; i++) { + fprintf(out, + // clang-format off + "Fonts_%lu:" "\n" + " .byte %ld" "\n" + " .incbin \"%s\", 0x%X, %lu" "\n" + "\n", + // clang-format on + i, final_seqdata[i]->font_section_size, final_seqdata[i]->elf_path, + final_seqdata[i]->font_section_offset, final_seqdata[i]->font_section_size); + } + fprintf(out, ".balign 16\n"); + + fclose(out); + return EXIT_SUCCESS; +} + /* Common */ static int @@ -297,12 +576,13 @@ usage(const char *progname) { fprintf(stderr, // clang-format off - "%s: Generate code tables for audio data" "\n" - "Usage:" "\n" - " %s --banks " "\n" - " %s --fonts " "\n", + "%s: Generate code tables for audio data" "\n" + "Usage:" "\n" + " %s --banks " "\n" + " %s --fonts " "\n" + " %s --sequences " "\n", // clang-format on - progname, progname, progname); + progname, progname, progname, progname); return EXIT_FAILURE; } @@ -336,6 +616,16 @@ main(int argc, char **argv) int num_soundfont_files = argc - 3; ret = tablegen_soundfonts(sf_hdr_out, soundfonts_paths, num_soundfont_files); + } else if (strequ(mode, "--sequences")) { + if (argc < 5) + return usage(progname); + + const char *seq_font_tbl_out = argv[2]; + const char *seq_order_path = argv[3]; + const char **sequences_paths = (const char **)&argv[4]; + int num_sequence_files = argc - 4; + + ret = tablegen_sequences(seq_font_tbl_out, seq_order_path, sequences_paths, num_sequence_files); } else { return usage(progname); } diff --git a/tools/audio/extraction/audio_extract.py b/tools/audio/extraction/audio_extract.py index 05ab781072..9107288068 100644 --- a/tools/audio/extraction/audio_extract.py +++ b/tools/audio/extraction/audio_extract.py @@ -303,7 +303,7 @@ def extract_sequences(audioseq_seg : memoryview, extracted_dir : str, version_in disassemble_one_sequence(extracted_dir, version_info, soundfonts, seq_enum_names, *job) dt = time.time() - t - print(f"Sequences extraction took {dt:.3f}") + print(f"Sequences extraction took {dt:.3f}s") def extract_audio_for_version(version_info : GameVersionInfo, extracted_dir : str, read_xml : bool, write_xml : bool): print("Setting up...") diff --git a/tools/audio/extraction/disassemble_sequence.py b/tools/audio/extraction/disassemble_sequence.py index af92598e0b..a77a8fac52 100644 --- a/tools/audio/extraction/disassemble_sequence.py +++ b/tools/audio/extraction/disassemble_sequence.py @@ -122,7 +122,7 @@ class MMLArg: class MMLArgBits(MMLArg): def read(self, disas): - return disas.read_bits(type(self).NBITS) + return disas.bits_val class ArgU8(MMLArg): def read(self, disas): @@ -226,6 +226,17 @@ class ArgStereoConfig(ArgU8): strong_rvrb_left = (self.value >> 0) & 1 return f"{type}, {strong_right}, {strong_left}, {strong_rvrb_right}, {strong_rvrb_left}" +class ArgEffectsConfig(ArgU8): + def emit(self, disas): + assert (self.value & 0b01000000) == 0 + headset = str(bool((self.value >> 7) & 1)).upper() + type = (self.value >> 4) & 0b11 + strong_right = (self.value >> 3) & 1 + strong_left = (self.value >> 2) & 1 + strong_rvrb_right = (self.value >> 1) & 1 + strong_rvrb_left = (self.value >> 0) & 1 + return f"{headset}, {type}, {strong_right}, {strong_left}, {strong_rvrb_right}, {strong_rvrb_left}" + class ArgPortamentoTime(ArgVar): def read(self, disas): if disas.portamento_is_special: @@ -368,6 +379,20 @@ class ArgUnkPtr(ArgAddr): def analyze(self, disas): disas.add_ref(self.value, SqSection.UNKNOWN) +class ArgLdSampleInst(MMLArg): + def read(self, disas): + return None + + def emit(self, disas): + return "LDSAMPLE_INST" + +class ArgLdSampleSfx(MMLArg): + def read(self, disas): + return None + + def emit(self, disas): + return "LDSAMPLE_SFX" + # # COMMANDS # @@ -474,7 +499,7 @@ CMD_SPEC = ( MMLCmd(0xEC, 'vibreset', sections=(SqSection.CHAN,)), MMLCmd(0xEB, 'fontinstr', sections=(SqSection.CHAN,), args=(ArgFontId, ArgInstr)), MMLCmd(0xEA, 'stop', sections=(SqSection.CHAN,)), - MMLCmd(0xE9, 'notepri', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xE9, 'notepri', sections=(SqSection.CHAN,), args=(ArgU4x2,)), MMLCmd(0xE8, 'params', sections=(SqSection.CHAN,), args=(ArgU8, ArgU8, ArgU8, ArgS8, ArgS8, ArgU8, ArgU8, ArgU8,)), MMLCmd(0xE7, 'ldparams', sections=(SqSection.CHAN,), args=(ArgAddr,)), MMLCmd(0xE6, 'samplebook', sections=(SqSection.CHAN,), args=(ArgU8,)), @@ -497,7 +522,7 @@ CMD_SPEC = ( MMLCmd(0xD3, 'bend', sections=(SqSection.CHAN,), args=(ArgS8,)), MMLCmd(0xD2, 'sustain', sections=(SqSection.CHAN,), args=(ArgU8,)), MMLCmd(0xD1, 'notealloc', sections=(SqSection.CHAN,), args=(ArgU8,)), - MMLCmd(0xD0, 'effects', sections=(SqSection.CHAN,), args=(ArgU8,)), + MMLCmd(0xD0, 'effects', sections=(SqSection.CHAN,), args=(ArgEffectsConfig,)), MMLCmd(0xCF, 'stptrtoseq', sections=(SqSection.CHAN,), args=(ArgAddr,)), MMLCmd(0xCE, 'ldptr', sections=(SqSection.CHAN,), args=(ArgAddr,)), MMLCmd(0xCD, 'stopchan', sections=(SqSection.CHAN,), args=(ArgU8,)), @@ -529,20 +554,19 @@ CMD_SPEC = ( MMLCmd(0xB2, 'ldseqtoptr', sections=(SqSection.CHAN,), args=(ArgTblPtr,)), MMLCmd(0xB1, 'freefilter', sections=(SqSection.CHAN,)), MMLCmd(0xB0, 'ldfilter', sections=(SqSection.CHAN,), args=(ArgFilterPtr,)), - MMLCmd(0xAA, 'unk_AA', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)), MMLCmd(0xA8, 'randptr', sections=(SqSection.CHAN,), args=(ArgU16, ArgU16,), version=(MMLVersion.MM,)), - MMLCmd(0xA7, 'unk_A7', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)), - MMLCmd(0xA6, 'unk_A6', sections=(SqSection.CHAN,), args=(ArgVar, ArgVar,), version=(MMLVersion.MM,)), + MMLCmd(0xA7, 'unk_A7', sections=(SqSection.CHAN,), args=(ArgHex8,), version=(MMLVersion.MM,)), + MMLCmd(0xA6, 'unk_A6', sections=(SqSection.CHAN,), args=(ArgU8, ArgS16,), version=(MMLVersion.MM,)), MMLCmd(0xA5, 'unk_A5', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)), - MMLCmd(0xA4, 'unk_A4', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)), + MMLCmd(0xA4, 'unk_A4', sections=(SqSection.CHAN,), args=(ArgU8,), version=(MMLVersion.MM,)), MMLCmd(0xA3, 'unk_A3', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)), - MMLCmd(0xA2, 'unk_A2', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)), + MMLCmd(0xA2, 'unk_A2', sections=(SqSection.CHAN,), args=(ArgS16,), version=(MMLVersion.MM,)), MMLCmd(0xA1, 'unk_A1', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)), - MMLCmd(0xA0, 'unk_A0', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)), + MMLCmd(0xA0, 'unk_A0', sections=(SqSection.CHAN,), args=(ArgS16,), version=(MMLVersion.MM,)), # argbits commands MMLCmd(0x00, 'cdelay', sections=(SqSection.CHAN,), args=(ArgBits4,)), - MMLCmd(0x10, 'sample', sections=(SqSection.CHAN,), args=(ArgBits3, ArgAddr,)), - MMLCmd(0x18, 'sampleptr', sections=(SqSection.CHAN,), args=(ArgBits3, ArgAddr,)), + MMLCmd(0x10, 'ldsample', sections=(SqSection.CHAN,), args=(ArgLdSampleInst, IOPort3,)), + MMLCmd(0x18, 'ldsample', sections=(SqSection.CHAN,), args=(ArgLdSampleSfx, IOPort3,)), MMLCmd(0x20, 'ldchan', sections=(SqSection.CHAN,), args=(ArgBits4, ArgChanPtr,)), MMLCmd(0x30, 'stcio', sections=(SqSection.CHAN,), args=(ArgBits4, IOPort8,)), MMLCmd(0x40, 'ldcio', sections=(SqSection.CHAN,), args=(ArgBits4, IOPort8,)), @@ -688,10 +712,11 @@ class SequenceDisassembler: continue # find number of lsbits that don't contribute to the command id - if len(cmd.args) > 0 and issubclass(cmd.args[0], MMLArgBits): - nbits = cmd.args[0].NBITS - else: - nbits = 0 + nbits = 0 + for arg in cmd.args: + if issubclass(arg, MMLArgBits): + assert nbits == 0, f"Multiple argbits-type arguments: {cmd}" + nbits = arg.NBITS id = cmd.cmd_id @@ -700,6 +725,7 @@ class SequenceDisassembler: for i in range(1 << nbits): new = cmd + new.mask = (1 << nbits) - 1 old = cmds_s.get(id + i, None) if old is not None: assert old.mnemonic in ("notedvg", "notedv", "notevg"), (old.mnemonic, cmd.mnemonic) @@ -732,9 +758,6 @@ class SequenceDisassembler: # general helpers - def read_bits(self, nbits): - return self.bits_val - def read_u8(self): if self.hit_eof: raise Exception() @@ -763,10 +786,7 @@ class SequenceDisassembler: cmd = cmd[int(not self.large_notes)] # part of the command byte may be an arg, save the value - mask = 0 - if len(cmd.args) > 0 and issubclass(cmd.args[0], MMLArgBits): - mask = (1 << cmd.args[0].NBITS) - 1 - self.bits_val = id & mask + self.bits_val = id & cmd.mask return cmd From 2740bb020ed2f4d3287c1111ea79e54fd85c24df Mon Sep 17 00:00:00 2001 From: cadmic Date: Mon, 16 Sep 2024 07:51:02 -0700 Subject: [PATCH 80/86] [PAL N64] Match changes that first appear in NTSC 1.2 (#2201) --- .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 8 +++++++- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 20 ++++++++++++++++--- src/overlays/actors/ovl_En_Mb/z_en_mb.c | 17 ++++++++++++++++ .../actors/ovl_En_Torch2/z_en_torch2.c | 10 +++++++++- 4 files changed, 50 insertions(+), 5 deletions(-) diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index 1081d2685a..dbddf628b8 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -1,4 +1,5 @@ #include "z_boss_ganon2.h" +#include "versions.h" #include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h" #include "overlays/actors/ovl_Demo_Gj/z_demo_gj.h" #include "overlays/actors/ovl_En_Zl3/z_en_zl3.h" @@ -1405,7 +1406,12 @@ void func_80900890(BossGanon2* this, PlayState* play) { f32 temp_f2 = -200.0f - player->actor.world.pos.x; f32 temp_f12 = -200.0f - player->actor.world.pos.z; - if (sqrtf(SQ(temp_f2) + SQ(temp_f12)) <= 784.0f) { +#if OOT_VERSION < NTSC_1_2 + if (sqrtf(SQ(temp_f2) + SQ(temp_f12)) <= 800.0f) +#else + if (sqrtf(SQ(temp_f2) + SQ(temp_f12)) <= 784.0f) +#endif + { Animation_MorphToPlayOnce(&this->skelAnime, &gGanonGetUpAnim, 0.0f); this->unk_194 = Animation_GetLastFrame(&gGanonGetUpAnim); this->unk_1AC = 2; diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index db08bc13f2..d4fab125f9 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -5,6 +5,7 @@ */ #include "z_boss_sst.h" +#include "versions.h" #include "assets/objects/object_sst/object_sst.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.h" @@ -51,7 +52,7 @@ typedef enum BossSstEffectMode { void BossSst_Init(Actor* thisx, PlayState* play2); void BossSst_Destroy(Actor* thisx, PlayState* play); void BossSst_UpdateHand(Actor* thisx, PlayState* play); -void BossSst_UpdateHead(Actor* thisx, PlayState* play); +void BossSst_UpdateHead(Actor* thisx, PlayState* play2); void BossSst_DrawHand(Actor* thisx, PlayState* play); void BossSst_DrawHead(Actor* thisx, PlayState* play); void BossSst_UpdateEffects(Actor* thisx, PlayState* play); @@ -2606,10 +2607,16 @@ void BossSst_UpdateHand(Actor* thisx, PlayState* play) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->colliderJntSph.base); } +#if OOT_VERSION < NTSC_1_2 + if (this->colliderJntSph.base.acFlags & AC_ON) { + CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderJntSph.base); + } +#else if ((sHead->actionFunc != BossSst_HeadLurk) && (sHead->actionFunc != BossSst_HeadIntro) && (this->colliderJntSph.base.acFlags & AC_ON)) { CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderJntSph.base); } +#endif if (this->colliderJntSph.base.ocFlags1 & OC1_ON) { CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliderJntSph.base); @@ -2638,8 +2645,8 @@ void BossSst_UpdateHand(Actor* thisx, PlayState* play) { BossSst_UpdateEffects(&this->actor, play); } -void BossSst_UpdateHead(Actor* thisx, PlayState* play) { - s32 pad; +void BossSst_UpdateHead(Actor* thisx, PlayState* play2) { + PlayState* play = (PlayState*)play2; BossSst* this = (BossSst*)thisx; Actor_WorldToActorCoords(&this->actor, &sHandOffsets[RIGHT], &sHands[RIGHT]->actor.world.pos); @@ -2662,12 +2669,19 @@ void BossSst_UpdateHead(Actor* thisx, PlayState* play) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->colliderJntSph.base); } +#if OOT_VERSION < NTSC_1_2 + if (this->colliderCyl.base.acFlags & AC_ON) { + CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderCyl.base); + } + CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderJntSph.base); +#else if ((this->actionFunc != BossSst_HeadLurk) && (this->actionFunc != BossSst_HeadIntro)) { if (this->colliderCyl.base.acFlags & AC_ON) { CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderCyl.base); } CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderJntSph.base); } +#endif if (this->colliderJntSph.base.ocFlags1 & OC1_ON) { CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliderJntSph.base); diff --git a/src/overlays/actors/ovl_En_Mb/z_en_mb.c b/src/overlays/actors/ovl_En_Mb/z_en_mb.c index 12c21757db..efe4b7c540 100644 --- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c +++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c @@ -6,6 +6,7 @@ #include "z_en_mb.h" #include "assets/objects/object_mb/object_mb.h" +#include "versions.h" /* * This actor can have three behaviors: @@ -943,6 +944,13 @@ void EnMb_SpearPatrolPrepareAndCharge(EnMb* this, PlayState* play) { if (endCharge) { if (hasHitPlayer || (player->stateFlags2 & PLAYER_STATE2_7)) { +#if OOT_VERSION < NTSC_1_2 + player->stateFlags2 &= ~PLAYER_STATE2_7; + this->attackCollider.base.atFlags &= ~AT_HIT; + player->actor.parent = NULL; + player->av2.actionVar2 = 200; + func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f); +#else this->attackCollider.base.atFlags &= ~AT_HIT; if (player->stateFlags2 & PLAYER_STATE2_7) { player->stateFlags2 &= ~PLAYER_STATE2_7; @@ -950,6 +958,7 @@ void EnMb_SpearPatrolPrepareAndCharge(EnMb* this, PlayState* play) { player->av2.actionVar2 = 200; func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f); } +#endif } this->attack = ENMB_ATTACK_NONE; this->actor.speed = -10.0f; @@ -1012,6 +1021,13 @@ void EnMb_SpearPatrolImmediateCharge(EnMb* this, PlayState* play) { if (endCharge) { if (hasHitPlayer || (player->stateFlags2 & PLAYER_STATE2_7)) { +#if OOT_VERSION < NTSC_1_2 + this->attackCollider.base.atFlags &= ~AT_HIT; + player->stateFlags2 &= ~PLAYER_STATE2_7; + player->actor.parent = NULL; + player->av2.actionVar2 = 200; + func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f); +#else this->attackCollider.base.atFlags &= ~AT_HIT; if (player->stateFlags2 & PLAYER_STATE2_7) { player->stateFlags2 &= ~PLAYER_STATE2_7; @@ -1019,6 +1035,7 @@ void EnMb_SpearPatrolImmediateCharge(EnMb* this, PlayState* play) { player->av2.actionVar2 = 200; func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f); } +#endif this->attack = ENMB_ATTACK_NONE; this->actor.speed = -10.0f; EnMb_SetupSpearPatrolEndCharge(this); diff --git a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c index 287a5912f0..b3a60cf933 100644 --- a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c +++ b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c @@ -6,6 +6,7 @@ #include "z_en_torch2.h" #include "assets/objects/object_torch2/object_torch2.h" +#include "versions.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5) @@ -492,7 +493,12 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { this->actor.world.pos.y = sSpawnPoint.y + 40.0f; this->actor.world.pos.x = (Math_SinS(player->actor.shape.rot.y) * -120.0f) + player->actor.world.pos.x; this->actor.world.pos.z = (Math_CosS(player->actor.shape.rot.y) * -120.0f) + player->actor.world.pos.z; - if (Actor_WorldDistXYZToPoint(&this->actor, &sSpawnPoint) > 800.0f) { +#if OOT_VERSION < NTSC_1_2 + if (Actor_WorldDistXYZToPoint(&this->actor, &sSpawnPoint) > 1000.0f) +#else + if (Actor_WorldDistXYZToPoint(&this->actor, &sSpawnPoint) > 800.0f) +#endif + { f32 sp50 = Rand_ZeroOne() * 20.0f; s16 sp4E = Rand_CenteredFloat(4000.0f); @@ -506,7 +512,9 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { } else { this->actor.world.pos.y = this->actor.floorHeight; } +#if OOT_VERSION >= NTSC_1_2 Math_Vec3f_Copy(&this->actor.home.pos, &this->actor.world.pos); +#endif play->func_11D54(this, play); sActionState = ENTORCH2_ATTACK; sStickTilt = 0.0f; From c91e62f000b56f9a109b3e8ac5e2b8d370949136 Mon Sep 17 00:00:00 2001 From: fig02 Date: Mon, 16 Sep 2024 12:34:23 -0400 Subject: [PATCH 81/86] Document `zTargetActiveTimer` (#2200) * document zTargetActiveTimer * edit comments * Update src/overlays/actors/ovl_player_actor/z_player.c Co-authored-by: cadmic * capitalization --------- Co-authored-by: cadmic --- include/z64player.h | 2 +- src/code/z_actor.c | 2 +- .../actors/ovl_player_actor/z_player.c | 34 +++++++++++++------ 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index ebd5220e88..0ae8e0e431 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -797,7 +797,7 @@ typedef struct Player { /* 0x05E4 */ ColliderQuad shieldQuad; /* 0x0664 */ Actor* focusActor; // Actor that Player and the camera are looking at; Used for lock-on, talking, and more /* 0x0668 */ char unk_668[0x004]; - /* 0x066C */ s32 unk_66C; + /* 0x066C */ s32 zTargetActiveTimer; // Non-zero values indicate Z-Targeting should update; Values under 5 indicate lock-on is releasing /* 0x0670 */ s32 meleeWeaponEffectIndex; /* 0x0674 */ PlayerActionFunc actionFunc; /* 0x0678 */ PlayerAgeProperties* ageProperties; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index b7b9e31b01..5785d62a1f 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -2413,7 +2413,7 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { func_8008EDF0(player); } - if ((actor == NULL) || (player->unk_66C < 5)) { + if ((actor == NULL) || (player->zTargetActiveTimer < 5)) { actor = NULL; if (actorCtx->attention.reticleSpinCounter != 0) { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 65deb1994c..83c88e5601 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3609,26 +3609,39 @@ void func_80836BEC(Player* this, PlayState* play) { if ((play->csCtx.state != CS_STATE_IDLE) || (this->csAction != PLAYER_CSACTION_NONE) || (this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || (this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT)) { - this->unk_66C = 0; + // Don't allow Z-Targeting in various states + this->zTargetActiveTimer = 0; } else if (zButtonHeld || (this->stateFlags2 & PLAYER_STATE2_LOCK_ON_WITH_SWITCH) || (this->unk_684 != NULL)) { - if (this->unk_66C <= 5) { - this->unk_66C = 5; + // While a lock-on is active, decrement the timer and hold it at 5. + // Values under 5 indicate a lock-on has ended and will make the reticle release. + // See usage toward the end of `Actor_UpdateAll`. + // + // `zButtonHeld` will also be true for Parallel. This is necessary because the timer + // needs to be non-zero for `Player_SetParallel` to be able to run below. + if (this->zTargetActiveTimer <= 5) { + this->zTargetActiveTimer = 5; } else { - this->unk_66C--; + this->zTargetActiveTimer--; } } else if (this->stateFlags1 & PLAYER_STATE1_PARALLEL) { - this->unk_66C = 0; - } else if (this->unk_66C != 0) { - this->unk_66C--; + // If the above code block which checks `zButtonHeld` is not taken, that means Z has been released. + // In that case, setting `zTargetActiveTimer` to 0 will stop Parallel if it is currently active. + this->zTargetActiveTimer = 0; + } else if (this->zTargetActiveTimer != 0) { + this->zTargetActiveTimer--; } - if (this->unk_66C >= 6) { + if (this->zTargetActiveTimer >= 6) { + // When a lock-on is started, `zTargetActiveTimer` will be set to 15 and then immediately start decrementing + // down to 5. During this 10 frame period, set `ignoreLeash` so that the lock-on will temporarily + // have an infinite leash distance. + // This gives time for the reticle to settle while it locks on, even if the player leaves the leash range. ignoreLeash = true; } isTalking = func_8083224C(play); - if (isTalking || (this->unk_66C != 0) || + if (isTalking || (this->zTargetActiveTimer != 0) || (this->stateFlags1 & (PLAYER_STATE1_12 | PLAYER_STATE1_BOOMERANG_THROWN))) { if (!isTalking) { if (!(this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) && @@ -3666,7 +3679,7 @@ void func_80836BEC(Player* this, PlayState* play) { } this->focusActor = nextLockOnActor; - this->unk_66C = 15; + this->zTargetActiveTimer = 15; this->stateFlags2 &= ~(PLAYER_STATE2_1 | PLAYER_STATE2_21); } else { if (!usingHoldTargeting) { @@ -3676,6 +3689,7 @@ void func_80836BEC(Player* this, PlayState* play) { this->stateFlags1 &= ~PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE; } else { + // Lock-on was not started above. Set Parallel Mode. if (!(this->stateFlags1 & (PLAYER_STATE1_PARALLEL | PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE))) { Player_SetParallel(this); } From dc9782b5b35a9f7dda31131e12ef281b0e645aa9 Mon Sep 17 00:00:00 2001 From: cadmic Date: Mon, 16 Sep 2024 13:40:20 -0700 Subject: [PATCH 82/86] [PAL N64] Rename file select assets (#2197) --- assets/xml/overlays/ovl_file_choose.xml | 12 +++---- assets/xml/overlays/ovl_file_choose_pal.xml | 16 ++++----- assets/xml/textures/title_static.xml | 4 +-- assets/xml/textures/title_static_pal.xml | 10 +++--- .../ovl_file_choose/z_file_choose.c | 4 +-- .../ovl_file_choose/z_file_nameset.c | 36 ++++++++++--------- 6 files changed, 43 insertions(+), 39 deletions(-) diff --git a/assets/xml/overlays/ovl_file_choose.xml b/assets/xml/overlays/ovl_file_choose.xml index a97188b446..8808ab4281 100644 --- a/assets/xml/overlays/ovl_file_choose.xml +++ b/assets/xml/overlays/ovl_file_choose.xml @@ -1,6 +1,6 @@ - + @@ -15,19 +15,19 @@ - + - + - + - + - + diff --git a/assets/xml/overlays/ovl_file_choose_pal.xml b/assets/xml/overlays/ovl_file_choose_pal.xml index 9721f7e0de..3c4c24cdab 100644 --- a/assets/xml/overlays/ovl_file_choose_pal.xml +++ b/assets/xml/overlays/ovl_file_choose_pal.xml @@ -1,27 +1,27 @@ - + - + - + - + - + - + - + - + diff --git a/assets/xml/textures/title_static.xml b/assets/xml/textures/title_static.xml index 4a72016fc8..c0f3f2908d 100644 --- a/assets/xml/textures/title_static.xml +++ b/assets/xml/textures/title_static.xml @@ -38,7 +38,7 @@ - + @@ -138,7 +138,7 @@ - + diff --git a/assets/xml/textures/title_static_pal.xml b/assets/xml/textures/title_static_pal.xml index 422b60cdc9..5f26d7f8de 100644 --- a/assets/xml/textures/title_static_pal.xml +++ b/assets/xml/textures/title_static_pal.xml @@ -82,7 +82,7 @@ - + @@ -105,7 +105,7 @@ - + @@ -166,9 +166,9 @@ - - - + + + diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c index 0d8115921b..ac727a2970 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c @@ -937,8 +937,8 @@ static void* sTitleLabels[][9] = { { gFileSelPleaseSelectAFileENGTex, gFileSelOpenThisFileENGTex, gFileSelCopyWhichFileENGTex, gFileSelCopyToWhichFileENGTex, gFileSelAreYouSureENGTex, gFileSelFileCopiedENGTex, gFileSelEraseWhichFileENGTex, gFileSelAreYouSure2ENGTex, gFileSelFileErasedENGTex }, - { gFileSelPleaseSelectAFileGERTex, gFileSelOpenThisFileGERTex, gFileSelWhichFile1GERTex, - gFileSelCopyToWhichFileGERTex, gFileSelAreYouSureGERTex, gFileSelFileCopiedGERTex, gFileSelWhichFile2GERTex, + { gFileSelPleaseSelectAFileGERTex, gFileSelOpenThisFileGERTex, gFileSelCopyWhichFileGERTex, + gFileSelCopyToWhichFileGERTex, gFileSelAreYouSureGERTex, gFileSelFileCopiedGERTex, gFileSelEraseWhichFileGERTex, gFileSelAreYouSure2GERTex, gFileSelFileErasedGERTex }, { gFileSelPleaseSelectAFileFRATex, gFileSelOpenThisFileFRATex, gFileSelCopyWhichFileFRATex, gFileSelCopyToWhichFileFRATex, gFileSelAreYouSureFRATex, gFileSelFileCopiedFRATex, gFileSelEraseWhichFileFRATex, diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c index 634c0e3679..35f7684a1e 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c @@ -188,7 +188,7 @@ void FileSelect_SetNameEntryVtx(GameState* thisx) { ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, this->titleAlpha[0]); gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 0); - gSPVertex(POLY_OPA_DISP++, D_80811BB0, 24, 0); + gSPVertex(POLY_OPA_DISP++, gNameEntryVtx, 24, 0); gDPLoadTextureBlock(POLY_OPA_DISP++, sNameLabelTextures[gSaveContext.language], G_IM_FMT_IA, G_IM_SIZ_8b, 56, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -555,17 +555,21 @@ void FileSelect_DrawNameEntry(GameState* thisx) { if (this->kbdX != this->kbdButton) { PRINTF("014 xpos=%d contents=%d\n", this->kbdX, this->kbdButton); } - this->nameEntryVtx[40].v.ob[0] = this->nameEntryVtx[42].v.ob[0] = D_80811BB0[(this->kbdX + 1) * 4].v.ob[0] - 4; + this->nameEntryVtx[40].v.ob[0] = this->nameEntryVtx[42].v.ob[0] = + gNameEntryVtx[(this->kbdX + 1) * 4].v.ob[0] - 4; this->nameEntryVtx[41].v.ob[0] = this->nameEntryVtx[43].v.ob[0] = this->nameEntryVtx[40].v.ob[0] + 52; - this->nameEntryVtx[40].v.ob[1] = this->nameEntryVtx[41].v.ob[1] = D_80811BB0[(this->kbdX + 1) * 4].v.ob[1] + 4; + this->nameEntryVtx[40].v.ob[1] = this->nameEntryVtx[41].v.ob[1] = + gNameEntryVtx[(this->kbdX + 1) * 4].v.ob[1] + 4; } else if ((this->kbdButton == FS_KBD_BTN_ENG) || (this->kbdButton == FS_KBD_BTN_BACKSPACE)) { if (this->kbdX != this->kbdButton) { PRINTF("23 xpos=%d contents=%d\n", this->kbdX, this->kbdButton); } - this->nameEntryVtx[40].v.ob[0] = this->nameEntryVtx[42].v.ob[0] = D_80811BB0[(this->kbdX + 1) * 4].v.ob[0] - 4; + this->nameEntryVtx[40].v.ob[0] = this->nameEntryVtx[42].v.ob[0] = + gNameEntryVtx[(this->kbdX + 1) * 4].v.ob[0] - 4; this->nameEntryVtx[41].v.ob[0] = this->nameEntryVtx[43].v.ob[0] = this->nameEntryVtx[40].v.ob[0] + 40; - this->nameEntryVtx[40].v.ob[1] = this->nameEntryVtx[41].v.ob[1] = D_80811BB0[(this->kbdX + 1) * 4].v.ob[1] + 4; + this->nameEntryVtx[40].v.ob[1] = this->nameEntryVtx[41].v.ob[1] = + gNameEntryVtx[(this->kbdX + 1) * 4].v.ob[1] + 4; } else { if (this->charIndex >= 65) { PRINTF("mjp=%d xpos=%d ypos=%d name_contents=%d\n", this->charIndex, this->kbdX, this->kbdY, @@ -1417,8 +1421,8 @@ static OptionsMenuTextureInfo sOptionsMenuHeaders[] = { 16, }, { - LANGUAGE_ARRAY(gFileSelLTargetingJPNTex, gFileSelLTargetingENGTex, gFileSelLTargetingGERTex, - gFileSelLTargetingFRATex), + LANGUAGE_ARRAY(gFileSelZTargetingJPNTex, gFileSelZTargetingENGTex, gFileSelZTargetingGERTex, + gFileSelZTargetingFRATex), OPTIONS_MENU_TEXTURE_WIDTHS(64, 64, 144, 64), 16, }, @@ -1551,12 +1555,12 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { } #if OOT_NTSC - gSPVertex(POLY_OPA_DISP++, D_80811D30, 32, 0); + gSPVertex(POLY_OPA_DISP++, gOptionsMenuHeadersVtx, 32, 0); #else if (gSaveContext.language == LANGUAGE_GER) { - gSPVertex(POLY_OPA_DISP++, D_80811E30, 32, 0); + gSPVertex(POLY_OPA_DISP++, gOptionsMenuHeadersGERVtx, 32, 0); } else { - gSPVertex(POLY_OPA_DISP++, D_80811D30, 32, 0); + gSPVertex(POLY_OPA_DISP++, gOptionsMenuHeadersVtx, 32, 0); } #endif @@ -1575,12 +1579,12 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { } #if OOT_NTSC - gSPVertex(POLY_OPA_DISP++, D_80811F30, 32, 0); + gSPVertex(POLY_OPA_DISP++, gOptionsMenuSettingsVtx, 32, 0); #else if (gSaveContext.language == LANGUAGE_GER) { - gSPVertex(POLY_OPA_DISP++, D_80812130, 32, 0); + gSPVertex(POLY_OPA_DISP++, gOptionsMenuSettingsGERVtx, 32, 0); } else { - gSPVertex(POLY_OPA_DISP++, D_80811F30, 32, 0); + gSPVertex(POLY_OPA_DISP++, gOptionsMenuSettingsVtx, 32, 0); } #endif @@ -1667,7 +1671,7 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { Matrix_Push(); Matrix_Translate(0.0f, 0.1f, 0.0f, MTXMODE_APPLY); MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_file_nameset_PAL.c", 1009); - gSPVertex(POLY_OPA_DISP++, gOptionsDividerTopVtx, 4, 0); + gSPVertex(POLY_OPA_DISP++, gOptionsDividerSoundVtx, 4, 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); Matrix_Pop(); @@ -1675,14 +1679,14 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { Matrix_Translate(0.0f, 0.2f, 0.0f, MTXMODE_APPLY); MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_file_nameset_PAL.c", 1021); - gSPVertex(POLY_OPA_DISP++, gOptionsDividerMiddleVtx, 4, 0); + gSPVertex(POLY_OPA_DISP++, gOptionsDividerZTargetVtx, 4, 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); Matrix_Pop(); Matrix_Push(); Matrix_Translate(0.0f, 0.4f, 0.0f, MTXMODE_APPLY); MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, this->state.gfxCtx, "../z_file_nameset_PAL.c", 1033); - gSPVertex(POLY_OPA_DISP++, gOptionsDividerBottomVtx, 4, 0); + gSPVertex(POLY_OPA_DISP++, gOptionsDividerBrightnessVtx, 4, 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); Matrix_Pop(); From 8f0e2fc29c6050b1eb48623a2ce90eeaa1f2fecc Mon Sep 17 00:00:00 2001 From: fig02 Date: Mon, 16 Sep 2024 17:14:29 -0400 Subject: [PATCH 83/86] Name `PLAYER_STATE1_CHARGING_SPIN_ATTACK` (#2203) * name charge state flag * format --- include/z64player.h | 2 +- src/code/z_actor.c | 9 +++++---- src/code/z_camera.c | 2 +- src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c | 2 +- .../actors/ovl_En_M_Thunder/z_en_m_thunder.c | 4 ++-- src/overlays/actors/ovl_player_actor/z_player.c | 15 ++++++++------- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index 0ae8e0e431..dfea5da668 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -660,7 +660,7 @@ typedef struct WeaponInfo { #define PLAYER_STATE1_9 (1 << 9) #define PLAYER_STATE1_10 (1 << 10) #define PLAYER_STATE1_ACTOR_CARRY (1 << 11) // Currently carrying an actor -#define PLAYER_STATE1_12 (1 << 12) +#define PLAYER_STATE1_CHARGING_SPIN_ATTACK (1 << 12) // Currently charing a spin attack (by holding down the B button) #define PLAYER_STATE1_13 (1 << 13) #define PLAYER_STATE1_14 (1 << 14) #define PLAYER_STATE1_Z_TARGETING (1 << 15) // Either lock-on or parallel is active. This flag is never checked for and is practically unused. diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 5785d62a1f..e3e1d3479d 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1807,8 +1807,9 @@ u32 Actor_HasParent(Actor* actor, PlayState* play) { s32 Actor_OfferGetItem(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 yRange) { Player* player = GET_PLAYER(play); - if (!(player->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_12 | PLAYER_STATE1_13 | PLAYER_STATE1_14 | - PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_20 | PLAYER_STATE1_21)) && + if (!(player->stateFlags1 & + (PLAYER_STATE1_7 | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_13 | PLAYER_STATE1_14 | + PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_20 | PLAYER_STATE1_21)) && Player_GetExplosiveHeld(player) < 0) { if ((((player->heldActor != NULL) || (actor == player->talkActor)) && (getItemId > GI_NONE) && (getItemId < GI_MAX)) || @@ -1881,8 +1882,8 @@ u32 Actor_SetRideActor(PlayState* play, Actor* horse, s32 mountSide) { Player* player = GET_PLAYER(play); if (!(player->stateFlags1 & - (PLAYER_STATE1_7 | PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_12 | PLAYER_STATE1_13 | PLAYER_STATE1_14 | - PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_20 | PLAYER_STATE1_21))) { + (PLAYER_STATE1_7 | PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_13 | + PLAYER_STATE1_14 | PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_20 | PLAYER_STATE1_21))) { player->rideActor = horse; player->mountSide = mountSide; return true; diff --git a/src/code/z_camera.c b/src/code/z_camera.c index 58c6c87ee5..50485d3bc7 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -2927,7 +2927,7 @@ s32 Camera_Battle1(Camera* camera) { sp78 = roData->swingPitchFinal; fov = roData->fov; - if (camera->player->stateFlags1 & PLAYER_STATE1_12) { + if (camera->player->stateFlags1 & PLAYER_STATE1_CHARGING_SPIN_ATTACK) { // charging sword. rwData->unk_10 = Camera_LERPCeilF(CAM_GLOBAL_12 * (1.0f - 0.5f), rwData->unk_10, CAM_UPDATE_RATE_STEP_SCALE_XZ, 0.1f); diff --git a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c index 35363c4aae..907f6d096d 100644 --- a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c +++ b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c @@ -180,7 +180,7 @@ void EffDust_UpdateFunc_8099DFC0(EffDust* this, PlayState* play) { s32 i; s32 j; - if (parent == NULL || parent->update == NULL || !(player->stateFlags1 & PLAYER_STATE1_12)) { + if (parent == NULL || parent->update == NULL || !(player->stateFlags1 & PLAYER_STATE1_CHARGING_SPIN_ATTACK)) { if (this->life != 0) { this->life--; } else { diff --git a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c index 4c81a52a1e..f2dc78a836 100644 --- a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c +++ b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c @@ -135,7 +135,7 @@ void func_80A9F350(EnMThunder* this, PlayState* play) { return; } - if (!(player->stateFlags1 & PLAYER_STATE1_12)) { + if (!(player->stateFlags1 & PLAYER_STATE1_CHARGING_SPIN_ATTACK)) { Actor_Kill(&this->actor); } } @@ -218,7 +218,7 @@ void func_80A9F408(EnMThunder* this, PlayState* play) { } } - if (!(player->stateFlags1 & PLAYER_STATE1_12)) { + if (!(player->stateFlags1 & PLAYER_STATE1_CHARGING_SPIN_ATTACK)) { if (this->actor.child != NULL) { this->actor.child->parent = NULL; } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 83c88e5601..0246316902 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3642,7 +3642,7 @@ void func_80836BEC(Player* this, PlayState* play) { isTalking = func_8083224C(play); if (isTalking || (this->zTargetActiveTimer != 0) || - (this->stateFlags1 & (PLAYER_STATE1_12 | PLAYER_STATE1_BOOMERANG_THROWN))) { + (this->stateFlags1 & (PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_BOOMERANG_THROWN))) { if (!isTalking) { if (!(this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) && ((this->heldItemAction != PLAYER_IA_FISHING_POLE) || (this->unk_860 == 0)) && @@ -4065,7 +4065,7 @@ void func_80837530(PlayState* play, Player* this, s32 arg2) { this->unk_858 = 0.5f; } - this->stateFlags1 |= PLAYER_STATE1_12; + this->stateFlags1 |= PLAYER_STATE1_CHARGING_SPIN_ATTACK; if (this->actor.category == ACTORCAT_PLAYER) { Actor_Spawn(&play->actorCtx, play, ACTOR_EN_M_THUNDER, this->bodyPartsPos[PLAYER_BODYPART_WAIST].x, @@ -9383,7 +9383,7 @@ void Player_Action_80844E68(Player* this, PlayState* play) { s16 yawTarget; s32 temp; - this->stateFlags1 |= PLAYER_STATE1_12; + this->stateFlags1 |= PLAYER_STATE1_CHARGING_SPIN_ATTACK; if (LinkAnimation_Update(play, &this->skelAnime)) { func_80832DBC(this); @@ -9435,7 +9435,7 @@ void Player_Action_80845000(Player* this, PlayState* play) { sp5C = fabsf(this->speedXZ); sp58 = sp5C * 1.5f; - this->stateFlags1 |= PLAYER_STATE1_12; + this->stateFlags1 |= PLAYER_STATE1_CHARGING_SPIN_ATTACK; if (sp58 < 1.5f) { sp58 = 1.5f; @@ -9497,7 +9497,7 @@ void Player_Action_80845308(Player* this, PlayState* play) { sp5C = fabsf(this->speedXZ); - this->stateFlags1 |= PLAYER_STATE1_12; + this->stateFlags1 |= PLAYER_STATE1_CHARGING_SPIN_ATTACK; if (sp5C == 0.0f) { sp5C = ABS(this->unk_87C) * 0.0015f; @@ -10856,7 +10856,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { camMode = CAM_MODE_Z_TARGET_UNFRIENDLY; } Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, focusActor); - } else if (this->stateFlags1 & PLAYER_STATE1_12) { + } else if (this->stateFlags1 & PLAYER_STATE1_CHARGING_SPIN_ATTACK) { camMode = CAM_MODE_CHARGE; } else if (this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) { camMode = CAM_MODE_FOLLOW_BOOMERANG; @@ -11429,7 +11429,8 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { this->stateFlags2 &= ~(PLAYER_STATE2_1 | PLAYER_STATE2_21); } - this->stateFlags1 &= ~(PLAYER_STATE1_SWINGING_BOTTLE | PLAYER_STATE1_9 | PLAYER_STATE1_12 | PLAYER_STATE1_22); + this->stateFlags1 &= + ~(PLAYER_STATE1_SWINGING_BOTTLE | PLAYER_STATE1_9 | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_22); this->stateFlags2 &= ~(PLAYER_STATE2_0 | PLAYER_STATE2_2 | PLAYER_STATE2_3 | PLAYER_STATE2_5 | PLAYER_STATE2_6 | PLAYER_STATE2_8 | PLAYER_STATE2_FORCE_SAND_FLOOR_SOUND | PLAYER_STATE2_12 | PLAYER_STATE2_14 | PLAYER_STATE2_DO_ACTION_ENTER | PLAYER_STATE2_22 | PLAYER_STATE2_26); From 48780cd2b1d9a0f4f274ee1a0f91be2c98e80657 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Tue, 17 Sep 2024 00:11:01 +0200 Subject: [PATCH 84/86] Colliders: elemType -> elemMaterial (#2189) * elemType -> elemMaterial * format --- include/z64collision_check.h | 30 +++++------- src/code/z_collision_check.c | 27 ++++++----- src/code/z_en_a_keep.c | 2 +- src/code/z_en_item00.c | 2 +- .../actors/ovl_Arms_Hook/z_arms_hook.c | 4 +- .../ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c | 2 +- .../ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c | 2 +- .../actors/ovl_Bg_Bombwall/z_bg_bombwall.c | 6 +-- .../actors/ovl_Bg_Breakwall/z_bg_breakwall.c | 2 +- .../actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c | 2 +- .../actors/ovl_Bg_Dodoago/z_bg_dodoago.c | 4 +- .../ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c | 2 +- .../ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c | 10 ++-- .../actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c | 6 +-- .../actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c | 4 +- .../actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c | 2 +- .../ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c | 2 +- .../ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c | 8 ++-- .../z_bg_hidan_firewall.c | 2 +- .../ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c | 2 +- .../ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c | 4 +- .../ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c | 4 +- .../z_bg_hidan_kowarerukabe.c | 2 +- .../ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c | 2 +- .../z_bg_hidan_rsekizou.c | 12 ++--- .../ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c | 12 ++--- .../ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c | 4 +- .../ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c | 4 +- .../ovl_Bg_Ice_Turara/z_bg_ice_turara.c | 2 +- .../ovl_Bg_Jya_1flift/z_bg_jya_1flift.c | 2 +- .../z_bg_jya_bombchuiwa.c | 2 +- .../ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c | 2 +- .../ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c | 2 +- .../ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c | 2 +- .../ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c | 2 +- .../ovl_Bg_Jya_Megami/z_bg_jya_megami.c | 2 +- .../ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c | 2 +- .../ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c | 10 ++-- .../ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c | 2 +- .../actors/ovl_Bg_Po_Event/z_bg_po_event.c | 4 +- .../ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c | 2 +- .../z_bg_spot06_objects.c | 2 +- .../z_bg_spot08_bakudankabe.c | 6 +-- .../z_bg_spot11_bakudankabe.c | 2 +- .../z_bg_spot16_bombstone.c | 4 +- .../ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c | 4 +- .../actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c | 2 +- .../ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c | 4 +- .../actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c | 4 +- .../z_boss_dodongo_data.inc.c | 38 +++++++-------- .../actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c | 38 +++++++-------- src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c | 4 +- .../ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c | 18 +++---- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 4 +- .../ovl_Boss_Ganon2/z_boss_ganon2_data.inc.c | 36 +++++++------- .../ovl_Boss_Ganondrof/z_boss_ganondrof.c | 4 +- .../actors/ovl_Boss_Goma/z_boss_goma.c | 26 +++++----- .../actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c | 40 ++++++++-------- .../ovl_Boss_Sst/z_boss_sst_colchk.inc.c | 48 +++++++++---------- src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 6 +-- src/overlays/actors/ovl_Boss_Va/z_boss_va.c | 8 ++-- src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c | 6 +-- .../actors/ovl_Demo_Kekkai/z_demo_kekkai.c | 2 +- src/overlays/actors/ovl_Door_Ana/z_door_ana.c | 2 +- .../actors/ovl_Door_Killer/z_door_killer.c | 4 +- src/overlays/actors/ovl_En_Am/z_en_am.c | 6 +-- src/overlays/actors/ovl_En_Ani/z_en_ani.c | 2 +- .../actors/ovl_En_Anubice/z_en_anubice.c | 2 +- .../ovl_En_Anubice_Fire/z_en_anubice_fire.c | 2 +- src/overlays/actors/ovl_En_Arrow/z_en_arrow.c | 4 +- src/overlays/actors/ovl_En_Ba/z_en_ba.c | 4 +- src/overlays/actors/ovl_En_Bb/z_en_bb.c | 2 +- .../actors/ovl_En_Bigokuta/z_en_bigokuta.c | 6 +-- src/overlays/actors/ovl_En_Bili/z_en_bili.c | 2 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 4 +- .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 2 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 4 +- src/overlays/actors/ovl_En_Boom/z_en_boom.c | 2 +- src/overlays/actors/ovl_En_Brob/z_en_brob.c | 2 +- .../actors/ovl_En_Bubble/z_en_bubble.c | 4 +- src/overlays/actors/ovl_En_Butte/z_en_butte.c | 2 +- src/overlays/actors/ovl_En_Bw/z_en_bw.c | 4 +- src/overlays/actors/ovl_En_Bx/z_en_bx.c | 4 +- .../actors/ovl_En_Clear_Tag/z_en_clear_tag.c | 4 +- src/overlays/actors/ovl_En_Cow/z_en_cow.c | 2 +- src/overlays/actors/ovl_En_Crow/z_en_crow.c | 2 +- src/overlays/actors/ovl_En_Cs/z_en_cs.c | 2 +- src/overlays/actors/ovl_En_Daiku/z_en_daiku.c | 2 +- .../z_en_daiku_kakariko.c | 2 +- .../actors/ovl_En_Dekubaba/z_en_dekubaba.c | 14 +++--- .../actors/ovl_En_Dekunuts/z_en_dekunuts.c | 2 +- src/overlays/actors/ovl_En_Dh/z_en_dh.c | 4 +- src/overlays/actors/ovl_En_Dha/z_en_dha.c | 10 ++-- .../ovl_En_Diving_Game/z_en_diving_game.c | 2 +- src/overlays/actors/ovl_En_Dns/z_en_dns.c | 2 +- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 2 +- .../actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c | 4 +- .../actors/ovl_En_Dodojr/z_en_dodojr.c | 2 +- .../actors/ovl_En_Dodongo/z_en_dodongo.c | 20 ++++---- src/overlays/actors/ovl_En_Dog/z_en_dog.c | 2 +- src/overlays/actors/ovl_En_Du/z_en_du.c | 2 +- src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c | 2 +- src/overlays/actors/ovl_En_Fd/z_en_fd.c | 24 +++++----- .../actors/ovl_En_Fd_Fire/z_en_fd_fire.c | 2 +- .../actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c | 2 +- .../actors/ovl_En_Fire_Rock/z_en_fire_rock.c | 4 +- .../actors/ovl_En_Firefly/z_en_firefly.c | 2 +- src/overlays/actors/ovl_En_Fish/z_en_fish.c | 2 +- .../actors/ovl_En_Floormas/z_en_floormas.c | 2 +- src/overlays/actors/ovl_En_Fu/z_en_fu.c | 2 +- src/overlays/actors/ovl_En_Fw/z_en_fw.c | 2 +- src/overlays/actors/ovl_En_Fz/z_en_fz.c | 6 +-- .../actors/ovl_En_G_Switch/z_en_g_switch.c | 2 +- src/overlays/actors/ovl_En_Gb/z_en_gb.c | 8 ++-- src/overlays/actors/ovl_En_Ge1/z_en_ge1.c | 2 +- src/overlays/actors/ovl_En_Ge2/z_en_ge2.c | 2 +- src/overlays/actors/ovl_En_Ge3/z_en_ge3.c | 2 +- src/overlays/actors/ovl_En_GeldB/z_en_geldb.c | 8 ++-- src/overlays/actors/ovl_En_Gm/z_en_gm.c | 2 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 2 +- src/overlays/actors/ovl_En_Go2/z_en_go2.c | 2 +- src/overlays/actors/ovl_En_Goma/z_en_goma.c | 4 +- .../actors/ovl_En_Goroiwa/z_en_goroiwa.c | 2 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 2 +- src/overlays/actors/ovl_En_Hata/z_en_hata.c | 2 +- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 2 +- .../actors/ovl_En_Heishi3/z_en_heishi3.c | 2 +- .../actors/ovl_En_Heishi4/z_en_heishi4.c | 2 +- .../actors/ovl_En_Hintnuts/z_en_hintnuts.c | 2 +- .../actors/ovl_En_Honotrap/z_en_honotrap.c | 6 +-- src/overlays/actors/ovl_En_Horse/z_en_horse.c | 6 +-- .../ovl_En_Horse_Ganon/z_en_horse_ganon.c | 4 +- .../z_en_horse_link_child.c | 4 +- .../ovl_En_Horse_Normal/z_en_horse_normal.c | 6 +-- .../ovl_En_Horse_Zelda/z_en_horse_zelda.c | 4 +- src/overlays/actors/ovl_En_Hs/z_en_hs.c | 2 +- src/overlays/actors/ovl_En_Hs2/z_en_hs2.c | 2 +- src/overlays/actors/ovl_En_Hy/z_en_hy.c | 2 +- .../actors/ovl_En_Ice_Hono/z_en_ice_hono.c | 4 +- src/overlays/actors/ovl_En_Ik/z_en_ik.c | 8 ++-- src/overlays/actors/ovl_En_In/z_en_in.c | 2 +- .../actors/ovl_En_Insect/z_en_insect.c | 2 +- src/overlays/actors/ovl_En_Ishi/z_en_ishi.c | 4 +- src/overlays/actors/ovl_En_It/z_en_it.c | 2 +- src/overlays/actors/ovl_En_Jj/z_en_jj.c | 2 +- src/overlays/actors/ovl_En_Js/z_en_js.c | 2 +- .../actors/ovl_En_Kakasi/z_en_kakasi.c | 2 +- .../actors/ovl_En_Kakasi2/z_en_kakasi2.c | 2 +- .../actors/ovl_En_Kakasi3/z_en_kakasi3.c | 2 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 2 +- .../actors/ovl_En_Karebaba/z_en_karebaba.c | 4 +- src/overlays/actors/ovl_En_Ko/z_en_ko.c | 2 +- src/overlays/actors/ovl_En_Kusa/z_en_kusa.c | 2 +- src/overlays/actors/ovl_En_Kz/z_en_kz.c | 2 +- .../actors/ovl_En_M_Fire1/z_en_m_fire1.c | 2 +- .../actors/ovl_En_M_Thunder/z_en_m_thunder.c | 2 +- src/overlays/actors/ovl_En_Ma1/z_en_ma1.c | 2 +- src/overlays/actors/ovl_En_Ma2/z_en_ma2.c | 2 +- src/overlays/actors/ovl_En_Ma3/z_en_ma3.c | 2 +- src/overlays/actors/ovl_En_Mb/z_en_mb.c | 8 ++-- src/overlays/actors/ovl_En_Md/z_en_md.c | 2 +- src/overlays/actors/ovl_En_Mk/z_en_mk.c | 2 +- src/overlays/actors/ovl_En_Mm/z_en_mm.c | 2 +- src/overlays/actors/ovl_En_Mm2/z_en_mm2.c | 2 +- src/overlays/actors/ovl_En_Mu/z_en_mu.c | 2 +- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 2 +- src/overlays/actors/ovl_En_Niw/z_en_niw.c | 4 +- .../actors/ovl_En_Niw_Girl/z_en_niw_girl.c | 2 +- .../actors/ovl_En_Niw_Lady/z_en_niw_lady.c | 2 +- .../actors/ovl_En_Nutsball/z_en_nutsball.c | 2 +- src/overlays/actors/ovl_En_Nwc/z_en_nwc.c | 2 +- src/overlays/actors/ovl_En_Ny/z_en_ny.c | 2 +- src/overlays/actors/ovl_En_Okuta/z_en_okuta.c | 4 +- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 2 +- src/overlays/actors/ovl_En_Owl/z_en_owl.c | 2 +- .../actors/ovl_En_Peehat/z_en_peehat.c | 6 +-- .../actors/ovl_En_Po_Desert/z_en_po_desert.c | 2 +- .../actors/ovl_En_Po_Field/z_en_po_field.c | 4 +- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 2 +- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 4 +- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 4 +- src/overlays/actors/ovl_En_Rd/z_en_rd.c | 2 +- src/overlays/actors/ovl_En_Reeba/z_en_reeba.c | 2 +- src/overlays/actors/ovl_En_Rr/z_en_rr.c | 4 +- src/overlays/actors/ovl_En_Sa/z_en_sa.c | 2 +- .../actors/ovl_En_Shopnuts/z_en_shopnuts.c | 2 +- src/overlays/actors/ovl_En_Si/z_en_si.c | 2 +- src/overlays/actors/ovl_En_Skb/z_en_skb.c | 4 +- src/overlays/actors/ovl_En_Skj/z_en_skj.c | 2 +- .../actors/ovl_En_Skjneedle/z_en_skjneedle.c | 2 +- src/overlays/actors/ovl_En_Ssh/z_en_ssh.c | 8 ++-- src/overlays/actors/ovl_En_St/z_en_st.c | 8 ++-- src/overlays/actors/ovl_En_Sth/z_en_sth.c | 2 +- src/overlays/actors/ovl_En_Sw/z_en_sw.c | 2 +- .../ovl_En_Syateki_Niw/z_en_syateki_niw.c | 2 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 2 +- src/overlays/actors/ovl_En_Test/z_en_test.c | 6 +-- src/overlays/actors/ovl_En_Tg/z_en_tg.c | 2 +- src/overlays/actors/ovl_En_Tite/z_en_tite.c | 2 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 2 +- .../actors/ovl_En_Torch2/z_en_torch2.c | 4 +- src/overlays/actors/ovl_En_Toryo/z_en_toryo.c | 2 +- src/overlays/actors/ovl_En_Tp/z_en_tp.c | 2 +- src/overlays/actors/ovl_En_Trap/z_en_trap.c | 2 +- .../actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c | 2 +- src/overlays/actors/ovl_En_Vali/z_en_vali.c | 4 +- .../actors/ovl_En_Vb_Ball/z_en_vb_ball.c | 2 +- src/overlays/actors/ovl_En_Vm/z_en_vm.c | 6 +-- .../actors/ovl_En_Wallmas/z_en_wallmas.c | 2 +- .../actors/ovl_En_Weiyer/z_en_weiyer.c | 2 +- src/overlays/actors/ovl_En_Wf/z_en_wf.c | 12 ++--- .../ovl_En_Wonder_Item/z_en_wonder_item.c | 2 +- .../actors/ovl_En_Wood02/z_en_wood02.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 2 +- .../ovl_En_Yabusame_Mark/z_en_yabusame_mark.c | 2 +- .../actors/ovl_En_Yukabyun/z_en_yukabyun.c | 2 +- src/overlays/actors/ovl_En_Zf/z_en_zf.c | 4 +- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 2 +- src/overlays/actors/ovl_En_Zl3/z_en_zl3.c | 2 +- src/overlays/actors/ovl_En_Zl4/z_en_zl4.c | 2 +- src/overlays/actors/ovl_En_Zo/z_en_zo.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 24 +++++----- .../actors/ovl_Item_Shield/z_item_shield.c | 2 +- .../actors/ovl_Magic_Fire/z_magic_fire.c | 2 +- src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c | 4 +- src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c | 2 +- .../actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c | 2 +- src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c | 2 +- .../actors/ovl_Obj_Hamishi/z_obj_hamishi.c | 2 +- src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c | 2 +- .../actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c | 4 +- .../actors/ovl_Obj_Kibako/z_obj_kibako.c | 2 +- .../actors/ovl_Obj_Kibako2/z_obj_kibako2.c | 2 +- .../ovl_Obj_Lightswitch/z_obj_lightswitch.c | 2 +- .../actors/ovl_Obj_Switch/z_obj_switch.c | 10 ++-- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.c | 4 +- .../actors/ovl_Obj_Tsubo/z_obj_tsubo.c | 2 +- src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c | 2 +- .../actors/ovl_player_actor/z_player.c | 6 +-- tools/overlayhelpers/colliderinit.py | 22 ++++----- 240 files changed, 560 insertions(+), 561 deletions(-) diff --git a/include/z64collision_check.h b/include/z64collision_check.h index 5e56a1c028..1b96c4a46e 100644 --- a/include/z64collision_check.h +++ b/include/z64collision_check.h @@ -99,27 +99,21 @@ typedef struct ColliderElementDamageInfoACInit { /* 0x05 */ u8 defense; // Damage Resistance } ColliderElementDamageInfoACInit; // size = 0x08 -/** - * Affects the sound Link's sword makes when hitting it, hookability, - * and possibly other things. It's definitely not flags, as all checks - * are == or !=. Will probably need more actors decomped to truly - * understand what this is. - */ -typedef enum ElementType { - /* 0 */ ELEMTYPE_UNK0, - /* 1 */ ELEMTYPE_UNK1, - /* 2 */ ELEMTYPE_UNK2, - /* 3 */ ELEMTYPE_UNK3, - /* 4 */ ELEMTYPE_UNK4, - /* 5 */ ELEMTYPE_UNK5, - /* 6 */ ELEMTYPE_UNK6, - /* 7 */ ELEMTYPE_UNK7 -} ElementType; +typedef enum ElementMaterial { + /* 0 */ ELEM_MATERIAL_UNK0, + /* 1 */ ELEM_MATERIAL_UNK1, + /* 2 */ ELEM_MATERIAL_UNK2, + /* 3 */ ELEM_MATERIAL_UNK3, + /* 4 */ ELEM_MATERIAL_UNK4, + /* 5 */ ELEM_MATERIAL_UNK5, + /* 6 */ ELEM_MATERIAL_UNK6, + /* 7 */ ELEM_MATERIAL_UNK7 +} ElementMaterial; typedef struct ColliderElement { /* 0x00 */ ColliderElementDamageInfoAT atDmgInfo; // Damage properties when acting as an AT collider /* 0x08 */ ColliderElementDamageInfoAC acDmgInfo; // Damage properties when acting as an AC collider - /* 0x14 */ u8 elemType; // Affects sfx reaction when attacked by Link and hookability. Full purpose unknown. + /* 0x14 */ u8 elemMaterial; // Affects sfx when attacked by Player, and interaction with hookshot and arrows. /* 0x15 */ u8 atElemFlags; // Information flags for AT collisions /* 0x16 */ u8 acElemFlags; // Information flags for AC collisions /* 0x17 */ u8 ocElemFlags; // Information flags for OC collisions @@ -130,7 +124,7 @@ typedef struct ColliderElement { } ColliderElement; // size = 0x28 typedef struct ColliderElementInit { - /* 0x00 */ u8 elemType; // Affects sfx reaction when attacked by Link and hookability. Full purpose unknown. + /* 0x00 */ u8 elemMaterial; // Affects sfx when attacked by Player, and interaction with hookshot and arrows. /* 0x04 */ ColliderElementDamageInfoAT atDmgInfo; // Damage properties when acting as an AT collider /* 0x0C */ ColliderElementDamageInfoACInit acDmgInfo; // Damage properties when acting as an AC collider /* 0x14 */ u8 atElemFlags; // Information flags for AT collisions diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 922b7e0521..1f6bb36cd2 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -189,11 +189,16 @@ s32 Collider_SetElementDamageInfoAC(PlayState* play, ColliderElementDamageInfoAC s32 Collider_InitElement(PlayState* play, ColliderElement* elem) { static ColliderElement init = { - { 0, 0, 0 }, { 0xFFCFFFFF, 0, 0, { 0, 0, 0 } }, - ELEMTYPE_UNK0, ATELEM_NONE, - ACELEM_NONE, OCELEM_NONE, - NULL, NULL, - NULL, NULL, + { 0, 0, 0 }, + { 0xFFCFFFFF, 0, 0, { 0, 0, 0 } }, + ELEM_MATERIAL_UNK0, + ATELEM_NONE, + ACELEM_NONE, + OCELEM_NONE, + NULL, + NULL, + NULL, + NULL, }; *elem = init; @@ -209,7 +214,7 @@ s32 Collider_DestroyElement(PlayState* play, ColliderElement* elem) { } s32 Collider_SetElement(PlayState* play, ColliderElement* elem, ColliderElementInit* elemInit) { - elem->elemType = elemInit->elemType; + elem->elemMaterial = elemInit->elemMaterial; Collider_SetElementDamageInfoAT(play, &elem->atDmgInfo, &elemInit->atDmgInfo); Collider_SetElementDamageInfoAC(play, &elem->acDmgInfo, &elemInit->acDmgInfo); elem->atElemFlags = elemInit->atElemFlags; @@ -1584,20 +1589,20 @@ void CollisionCheck_HitSolid(PlayState* play, ColliderElement* elem, Collider* c } /** - * Plays a hit sound effect for AT colliders attached to Player based on the AC element's elemType. + * Plays a hit sound effect for AT colliders attached to Player based on the AC element's elemMaterial. */ s32 CollisionCheck_SwordHitAudio(Collider* atCol, ColliderElement* acElem) { if (atCol->actor != NULL && atCol->actor->category == ACTORCAT_PLAYER) { - if (acElem->elemType == ELEMTYPE_UNK0) { + if (acElem->elemMaterial == ELEM_MATERIAL_UNK0) { Audio_PlaySfxGeneral(NA_SE_IT_SWORD_STRIKE, &atCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - } else if (acElem->elemType == ELEMTYPE_UNK1) { + } else if (acElem->elemMaterial == ELEM_MATERIAL_UNK1) { Audio_PlaySfxGeneral(NA_SE_IT_SWORD_STRIKE_HARD, &atCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - } else if (acElem->elemType == ELEMTYPE_UNK2) { + } else if (acElem->elemMaterial == ELEM_MATERIAL_UNK2) { Audio_PlaySfxGeneral(NA_SE_NONE, &atCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - } else if (acElem->elemType == ELEMTYPE_UNK3) { + } else if (acElem->elemMaterial == ELEM_MATERIAL_UNK3) { Audio_PlaySfxGeneral(NA_SE_NONE, &atCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index bfa7c383c2..c90a7eb3bb 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -42,7 +42,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index 22aefff8b1..74b05cf067 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -42,7 +42,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000010, 0x00, 0x00 }, ATELEM_NONE | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index ffdd8d78d8..1872e211c9 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -33,7 +33,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000080, 0x00, 0x01 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_NEAREST | ATELEM_SFX_NORMAL, @@ -150,7 +150,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) { ArmsHook_CheckForCancel(this); if ((this->timer != 0) && (this->collider.base.atFlags & AT_HIT) && - (this->collider.elem.atHitElem->elemType != ELEMTYPE_UNK4)) { + (this->collider.elem.atHitElem->elemMaterial != ELEM_MATERIAL_UNK4)) { Actor* touchedActor = this->collider.base.at; if ((touchedActor->update != NULL) && (touchedActor->flags & (ACTOR_FLAG_9 | ACTOR_FLAG_10))) { diff --git a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c index 7e15bf0a43..055f93e200 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c @@ -65,7 +65,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, diff --git a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c index 9789bba219..e370341932 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c @@ -57,7 +57,7 @@ ActorProfile Bg_Bdan_Switch_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xEFC1FFFE, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c b/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c index e3121e7187..82daa4e13e 100644 --- a/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c @@ -23,7 +23,7 @@ void func_8086EE94(BgBombwall* this, PlayState* play); static ColliderTrisElementInit sTrisElementsInit[3] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x40000048, 0x00, 0x00 }, ATELEM_NONE, @@ -34,7 +34,7 @@ static ColliderTrisElementInit sTrisElementsInit[3] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x40000048, 0x00, 0x00 }, ATELEM_NONE, @@ -45,7 +45,7 @@ static ColliderTrisElementInit sTrisElementsInit[3] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x40000048, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c index 13eccb0849..4999abd966 100644 --- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c +++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c @@ -48,7 +48,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000048, 0x00, 0x00 }, { 0x00000048, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c b/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c index b2bbad929c..3fe150cc6f 100644 --- a/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c +++ b/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c index 6a3e3351ba..b8e3cfa33b 100644 --- a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c +++ b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c @@ -42,7 +42,7 @@ static ColliderCylinderInit sColCylinderInitMain = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -62,7 +62,7 @@ static ColliderCylinderInit sColCylinderInitLeftRight = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c index 98df39ebb8..17a3ea4508 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c @@ -41,7 +41,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0x00020800, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c index 464dad2107..ec78726b04 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c +++ b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c @@ -41,7 +41,7 @@ ActorProfile Bg_Haka_Sgami_Profile = { static ColliderTrisElementInit sTrisElementsInit[4] = { { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x20000000, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -52,7 +52,7 @@ static ColliderTrisElementInit sTrisElementsInit[4] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x20000000, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -63,7 +63,7 @@ static ColliderTrisElementInit sTrisElementsInit[4] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x20000000, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -74,7 +74,7 @@ static ColliderTrisElementInit sTrisElementsInit[4] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x20000000, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -108,7 +108,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c index 76d74ba1ab..2210299c76 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c +++ b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c @@ -51,7 +51,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -64,7 +64,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderTrisElementInit sTrisElementsInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00020000, 0x00, 0x00 }, ATELEM_NONE, @@ -75,7 +75,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00020000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c index 32f48dc7d6..5e8e61ba27 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c +++ b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sPotColliderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, @@ -60,7 +60,7 @@ static ColliderCylinderInit sFlamesColliderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c index 473afc9850..9b7ed31904 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c +++ b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c @@ -42,7 +42,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c index dbfe9fc044..dfd7289315 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c @@ -39,7 +39,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c b/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c index aed9aac707..83e984ee7b 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c @@ -32,7 +32,7 @@ ActorProfile Bg_Hidan_Dalm_Profile = { static ColliderTrisElementInit sTrisElementInit[4] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000040, 0x00, 0x00 }, ATELEM_NONE, @@ -43,7 +43,7 @@ static ColliderTrisElementInit sTrisElementInit[4] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000040, 0x00, 0x00 }, ATELEM_NONE, @@ -54,7 +54,7 @@ static ColliderTrisElementInit sTrisElementInit[4] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000040, 0x00, 0x00 }, ATELEM_NONE, @@ -65,7 +65,7 @@ static ColliderTrisElementInit sTrisElementInit[4] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000040, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c index f00cf589ca..8b120e6dab 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c @@ -43,7 +43,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c index d50b40c9fd..cc18c4edef 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c @@ -53,7 +53,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c index 286b69e86c..19458d56b1 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c @@ -28,7 +28,7 @@ static f32 sYPosOffsets[] = { static ColliderTrisElementInit sTrisElementsInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x40000040, 0x00, 0x00 }, ATELEM_NONE, @@ -39,7 +39,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x40000040, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c b/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c index 9eef214e5c..3ef030dedd 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c @@ -33,7 +33,7 @@ ActorProfile Bg_Hidan_Hrock_Profile = { static ColliderTrisElementInit sTrisElementsInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x40000040, 0x00, 0x00 }, ATELEM_NONE, @@ -44,7 +44,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x40000040, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c index b3f6abe0c8..05e513a461 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c @@ -43,7 +43,7 @@ static Gfx* sBreakableWallDLists[] = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c index e38c7a0efc..02d864f83f 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c @@ -51,7 +51,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c index 397cd8e4fb..eb69f0d0b9 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c @@ -29,7 +29,7 @@ ActorProfile Bg_Hidan_Rsekizou_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[6] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -40,7 +40,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -51,7 +51,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -62,7 +62,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -73,7 +73,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -84,7 +84,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c index d12449e437..d512fd4820 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c @@ -32,7 +32,7 @@ ActorProfile Bg_Hidan_Sekizou_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[6] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -43,7 +43,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -54,7 +54,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -65,7 +65,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -76,7 +76,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -87,7 +87,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c index 6a944dfe07..06f5b2a308 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c @@ -36,7 +36,7 @@ ActorProfile Bg_Hidan_Sima_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -47,7 +47,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c index d55f7e870f..652b83ad0f 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c +++ b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c @@ -50,7 +50,7 @@ static ColliderCylinderInit sCylinderInit1 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -70,7 +70,7 @@ static ColliderCylinderInit sCylinderInit2 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x4FC1FFF6, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c b/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c index 79fad6ffca..a9a560bc09 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c +++ b/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c @@ -30,7 +30,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0x4FC007CA, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c index a5ac412728..1110d2dbb8 100644 --- a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c +++ b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c @@ -47,7 +47,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c index c0c728c440..061ef48fd1 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c @@ -29,7 +29,7 @@ ActorProfile Bg_Jya_Bombchuiwa_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c index 775b689bfd..a9d953fb72 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c @@ -31,7 +31,7 @@ ActorProfile Bg_Jya_Bombiwa_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c index 6fe8f9e463..0eacd23e70 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c @@ -38,7 +38,7 @@ ActorProfile Bg_Jya_Goroiwa_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c b/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c index d65aded035..0f100259bd 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c +++ b/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c @@ -37,7 +37,7 @@ ActorProfile Bg_Jya_Haheniron_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c index b2e6d3f887..86e857d193 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c +++ b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c @@ -48,7 +48,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c index e0c64ea00f..eed3074280 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c +++ b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c @@ -35,7 +35,7 @@ ActorProfile Bg_Jya_Megami_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00200000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c b/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c index b475b8c782..4e2dea2a9c 100644 --- a/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c +++ b/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c @@ -31,7 +31,7 @@ static s32 sNumEyesShot; static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0x00000000, 0x00, 0x00 }, { 0x0001F820, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c index e6a2c73381..6c16b95e61 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c @@ -34,7 +34,7 @@ ActorProfile Bg_Mizu_Bwall_Profile = { static ColliderTrisElementInit sTrisElementInitFloor[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, @@ -45,7 +45,7 @@ static ColliderTrisElementInit sTrisElementInitFloor[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, @@ -72,7 +72,7 @@ static ColliderTrisInit sTrisInitFloor = { static ColliderTrisElementInit sTrisElementInitRutoWall[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, @@ -99,7 +99,7 @@ static ColliderTrisInit sTrisInitRutoWall = { static ColliderTrisElementInit sTrisElementInitWall[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, @@ -110,7 +110,7 @@ static ColliderTrisElementInit sTrisElementInitWall[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c index 203854cd63..3b54cc8e35 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c @@ -39,7 +39,7 @@ ActorProfile Bg_Mori_Hashigo_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0x00000000, 0x00, 0x00 }, { 0x0001F820, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c index 16d0d5612e..017f18606d 100644 --- a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c +++ b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c @@ -43,7 +43,7 @@ ActorProfile Bg_Po_Event_Profile = { static ColliderTrisElementInit sTrisElementsInit[2] = { { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0x00000000, 0x00, 0x00 }, { 0x0001F820, 0x00, 0x00 }, ATELEM_NONE, @@ -54,7 +54,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0x00000000, 0x00, 0x00 }, { 0x0001F820, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c index ca5b223bca..9dae9b2a5d 100644 --- a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c +++ b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c @@ -34,7 +34,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c index 3d7234e09a..aa5b56024b 100644 --- a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c +++ b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c @@ -59,7 +59,7 @@ ActorProfile Bg_Spot06_Objects_Profile = { static ColliderJntSphElementInit sJntSphItemsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000080, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c index 874cf1ac96..39126bcde9 100644 --- a/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c +++ b/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c @@ -34,7 +34,7 @@ ActorProfile Bg_Spot08_Bakudankabe_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, @@ -45,7 +45,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, @@ -56,7 +56,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c index 0ffc200397..43dd1e73b9 100644 --- a/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c +++ b/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c @@ -38,7 +38,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c index 1d1a7fdee7..5f5c06d0ed 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c +++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c @@ -36,7 +36,7 @@ static s16 D_808B5DD8[][10] = { static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x4FC1FFF6, 0x00, 0x00 }, ATELEM_NONE, @@ -70,7 +70,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c index 159f0b7521..d41f0d86b9 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c @@ -37,7 +37,7 @@ ActorProfile Bg_Spot18_Basket_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -48,7 +48,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c index 5d76a1b8c4..e25280ed0b 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c @@ -44,7 +44,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c b/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c index 9a59098e25..dad395c928 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c @@ -35,7 +35,7 @@ ActorProfile Bg_Ydan_Maruta_Profile = { static ColliderTrisElementInit sTrisElementsInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x00, 0x04 }, { 0x00000004, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_WOOD, @@ -46,7 +46,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x00, 0x04 }, { 0x00000004, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_WOOD, diff --git a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c index 383af93a7b..6e5a1010fb 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c @@ -39,7 +39,7 @@ ActorProfile Bg_Ydan_Sp_Profile = { static ColliderTrisElementInit sTrisItemsInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0x00020800, 0x00, 0x00 }, ATELEM_NONE, @@ -50,7 +50,7 @@ static ColliderTrisElementInit sTrisItemsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0x00020800, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c index a3b4c22c67..d4ac8f7f03 100644 --- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c +++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c @@ -13,7 +13,7 @@ static u8 D_808C7000[] = { static ColliderJntSphElementInit sJntSphElementsInit[19] = { { { - ELEMTYPE_UNK3, + ELEM_MATERIAL_UNK3, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -24,7 +24,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK3, + ELEM_MATERIAL_UNK3, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -35,7 +35,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -46,7 +46,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -57,7 +57,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -68,7 +68,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -79,7 +79,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -90,7 +90,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -101,7 +101,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -112,7 +112,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -123,7 +123,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -134,7 +134,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -145,7 +145,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -156,7 +156,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -167,7 +167,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -178,7 +178,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -189,7 +189,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -200,7 +200,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -211,7 +211,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c index 4a63c372a1..83aa550fde 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c @@ -3,7 +3,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { { { - ELEMTYPE_UNK3, + ELEM_MATERIAL_UNK3, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -14,7 +14,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -25,7 +25,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -36,7 +36,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -47,7 +47,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -58,7 +58,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -69,7 +69,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -80,7 +80,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -91,7 +91,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -102,7 +102,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -113,7 +113,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -124,7 +124,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -135,7 +135,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -146,7 +146,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -157,7 +157,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -168,7 +168,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -179,7 +179,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -190,7 +190,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -201,7 +201,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index 84e44c5e16..ff8a55f1a9 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -822,10 +822,10 @@ void BossFd2_CollisionCheck(BossFd2* this, PlayState* play) { } } if (!bossFd->faceExposed) { - this->collider.elements[0].base.elemType = ELEMTYPE_UNK2; + this->collider.elements[0].base.elemMaterial = ELEM_MATERIAL_UNK2; this->collider.base.colMaterial = COL_MATERIAL_METAL; } else { - this->collider.elements[0].base.elemType = ELEMTYPE_UNK3; + this->collider.elements[0].base.elemMaterial = ELEM_MATERIAL_UNK3; this->collider.base.colMaterial = COL_MATERIAL_HIT3; } diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c index be0ff944e6..1098d44c3f 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c @@ -3,7 +3,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = { { { - ELEMTYPE_UNK3, + ELEM_MATERIAL_UNK3, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_NONE, @@ -14,7 +14,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -25,7 +25,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -36,7 +36,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -47,7 +47,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -58,7 +58,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -69,7 +69,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -80,7 +80,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -91,7 +91,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, 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 e7d19d1453..e463ef1449 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -67,7 +67,7 @@ static ColliderCylinderInit sDorfCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -87,7 +87,7 @@ static ColliderCylinderInit sLightBallCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK6, + ELEM_MATERIAL_UNK6, { 0x00100700, 0x00, 0x08 }, { 0x0D900740, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.inc.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.inc.c index 3f290f318a..a67c0e560a 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.inc.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.inc.c @@ -26,7 +26,7 @@ static u8 D_80906D78 = 0; static ColliderJntSphElementInit sJntSphItemsInit1[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -37,7 +37,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -48,7 +48,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -59,7 +59,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -70,7 +70,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -81,7 +81,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -92,7 +92,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -103,7 +103,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -114,7 +114,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -125,7 +125,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -136,7 +136,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -147,7 +147,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -158,7 +158,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -169,7 +169,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -180,7 +180,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -191,7 +191,7 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -218,7 +218,7 @@ static ColliderJntSphInit sJntSphInit1 = { static ColliderJntSphElementInit sJntSphItemsInit2[] = { { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x40 }, { 0xFFDFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -229,7 +229,7 @@ static ColliderJntSphElementInit sJntSphItemsInit2[] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x40 }, { 0xFFDFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index e3b1ef8b2f..7a8f1a7bf6 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -91,7 +91,7 @@ static ColliderCylinderInit sCylinderInitBody = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -111,7 +111,7 @@ static ColliderCylinderInit sCylinderInitSpear = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index 302b1beda5..9b52c8a52f 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -64,7 +64,7 @@ ActorProfile Boss_Goma_Profile = { static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { { { - ELEMTYPE_UNK3, + ELEM_MATERIAL_UNK3, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -75,7 +75,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -86,7 +86,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -97,7 +97,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -108,7 +108,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -119,7 +119,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -130,7 +130,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -141,7 +141,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -152,7 +152,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -163,7 +163,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -174,7 +174,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -185,7 +185,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -196,7 +196,7 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c index e17babd24b..58d807607c 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c @@ -4,7 +4,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -15,7 +15,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -26,7 +26,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -37,7 +37,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -48,7 +48,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -59,7 +59,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -70,7 +70,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -81,7 +81,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -92,7 +92,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -103,7 +103,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -114,7 +114,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -125,7 +125,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -136,7 +136,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -147,7 +147,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -158,7 +158,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -169,7 +169,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -180,7 +180,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -191,7 +191,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -202,7 +202,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = { }, { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -236,7 +236,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFDFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c index 8b8eb9b219..cc06356aa8 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c @@ -3,7 +3,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -14,7 +14,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -25,7 +25,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -36,7 +36,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -47,7 +47,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -58,7 +58,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -69,7 +69,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -80,7 +80,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -91,7 +91,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -102,7 +102,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -113,7 +113,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -140,7 +140,7 @@ static ColliderJntSphInit sJntSphInitHand = { static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -151,7 +151,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -162,7 +162,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -173,7 +173,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -184,7 +184,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -195,7 +195,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -206,7 +206,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -217,7 +217,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -228,7 +228,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -239,7 +239,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -250,7 +250,7 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x30 }, { 0x00000080, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -284,7 +284,7 @@ static ColliderCylinderInit sCylinderInitHead = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -304,7 +304,7 @@ static ColliderCylinderInit sCylinderInitHand = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x04, 0x10 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 607563b92a..39996fbbb9 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -141,7 +141,7 @@ static ColliderCylinderInit sCylinderInitBlasts = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x30 }, { 0x00100000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -161,7 +161,7 @@ static ColliderCylinderInit sCylinderInitKoumeKotake = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -181,7 +181,7 @@ static ColliderCylinderInit sCylinderInitTwinrova = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x20 }, { 0xFFCDFFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index 0b993fa463..6e3b6b4eb1 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -212,7 +212,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFEF, 0x03, 0x08 }, { 0x00000010, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -225,7 +225,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderJntSphElementInit sJntSphElementsInitSupport[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000010, 0x00, 0x00 }, ATELEM_NONE, @@ -252,7 +252,7 @@ static ColliderJntSphInit sJntSphInitSupport = { static ColliderJntSphElementInit sJntSphElementsInitBari[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x03, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -286,7 +286,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x03, 0x04 }, { 0x00000010, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7, diff --git a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c index 302a9617fa..4072758cc9 100644 --- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c +++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c @@ -24,7 +24,7 @@ static ColliderCylinderInitType1 sCylinderInit1 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, @@ -43,7 +43,7 @@ static ColliderCylinderInitType1 sCylinderInit2 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, @@ -62,7 +62,7 @@ static ColliderCylinderInitType1 sCylinderInit3 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c index 182837ddf6..1fe96ebb63 100644 --- a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c +++ b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c @@ -43,7 +43,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x07, 0x04 }, { 0x00002000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c index 4a0553bded..7ad6013661 100644 --- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c +++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0x00000048, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Door_Killer/z_door_killer.c b/src/overlays/actors/ovl_Door_Killer/z_door_killer.c index 22dc281bb9..a8ca1c5cd3 100644 --- a/src/overlays/actors/ovl_Door_Killer/z_door_killer.c +++ b/src/overlays/actors/ovl_Door_Killer/z_door_killer.c @@ -51,7 +51,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0x0001FFEE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -64,7 +64,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderJntSphElementInit sJntSphItemsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Am/z_en_am.c b/src/overlays/actors/ovl_En_Am/z_en_am.c index f2145ed020..69a27936d9 100644 --- a/src/overlays/actors/ovl_En_Am/z_en_am.c +++ b/src/overlays/actors/ovl_En_Am/z_en_am.c @@ -61,7 +61,7 @@ static ColliderCylinderInit sHurtCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -81,7 +81,7 @@ static ColliderCylinderInit sBlockCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00400106, 0x00, 0x00 }, ATELEM_NONE, @@ -101,7 +101,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Ani/z_en_ani.c b/src/overlays/actors/ovl_En_Ani/z_en_ani.c index 15834acc34..6b493aa874 100644 --- a/src/overlays/actors/ovl_En_Ani/z_en_ani.c +++ b/src/overlays/actors/ovl_En_Ani/z_en_ani.c @@ -48,7 +48,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c index 0736677648..f6742f9810 100644 --- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c +++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c @@ -47,7 +47,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c index 9a865e33fe..1b2a1e0185 100644 --- a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c +++ b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c @@ -41,7 +41,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index ca7363a714..fcf51b77e0 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -41,7 +41,7 @@ static ColliderQuadInit sColliderInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000020, 0x00, 0x01 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_NEAREST | ATELEM_SFX_NONE, @@ -282,7 +282,7 @@ void EnArrow_Fly(EnArrow* this, PlayState* play) { } else { EffectSsHitMark_SpawnCustomScale(play, 0, 150, &this->actor.world.pos); - if (atTouched && (this->collider.elem.atHitElem->elemType != ELEMTYPE_UNK4)) { + if (atTouched && (this->collider.elem.atHitElem->elemMaterial != ELEM_MATERIAL_UNK4)) { hitActor = this->collider.base.at; if ((hitActor->update != NULL) && !(this->collider.base.atFlags & AT_BOUNCED) && diff --git a/src/overlays/actors/ovl_En_Ba/z_en_ba.c b/src/overlays/actors/ovl_En_Ba/z_en_ba.c index 0afc8d3d53..af2e435b20 100644 --- a/src/overlays/actors/ovl_En_Ba/z_en_ba.c +++ b/src/overlays/actors/ovl_En_Ba/z_en_ba.c @@ -40,7 +40,7 @@ static Vec3f D_809B8080 = { 0.0f, 0.0f, 32.0f }; static ColliderJntSphElementInit sJntSphElementInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000010, 0x00, 0x00 }, ATELEM_NONE, @@ -51,7 +51,7 @@ static ColliderJntSphElementInit sJntSphElementInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index b7eea260a7..e337512755 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -210,7 +210,7 @@ ActorProfile En_Bb_Profile = { static ColliderJntSphElementInit sJntSphElementInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index 085f035c40..65a839aae6 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -45,7 +45,7 @@ ActorProfile En_Bigokuta_Profile = { static ColliderJntSphElementInit sJntSphElementInit[1] = { { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, @@ -79,7 +79,7 @@ static ColliderCylinderInit sCylinderInit[] = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x08 }, { 0xFFCFFFE7, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, @@ -96,7 +96,7 @@ static ColliderCylinderInit sCylinderInit[] = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x20000000, 0x00, 0x08 }, { 0xFFCFFFE7, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.c b/src/overlays/actors/ovl_En_Bili/z_en_bili.c index 3d22811065..fc1efd113f 100644 --- a/src/overlays/actors/ovl_En_Bili/z_en_bili.c +++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.c @@ -50,7 +50,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x03, 0x08 }, { 0xFFCFFFFF, 0x01, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, 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 de103f4426..611e5062f3 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0x0003F828, 0x00, 0x00 }, ATELEM_NONE, @@ -53,7 +53,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000008, 0x00, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, 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 cbaf6c4678..f5deec7285 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 @@ -30,7 +30,7 @@ ActorProfile En_Bom_Chu_Profile = { static ColliderJntSphElementInit sJntSphElemInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, 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 9b2888c07f..aa0030bb8e 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -43,7 +43,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0x0003F828, 0x00, 0x00 }, ATELEM_NONE, @@ -56,7 +56,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000008, 0x00, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index a2cbca24f9..af6f0e77d2 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -38,7 +38,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000010, 0x00, 0x01 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_NEAREST | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Brob/z_en_brob.c b/src/overlays/actors/ovl_En_Brob/z_en_brob.c index 785881e771..0e16b6dcfd 100644 --- a/src/overlays/actors/ovl_En_Brob/z_en_brob.c +++ b/src/overlays/actors/ovl_En_Brob/z_en_brob.c @@ -44,7 +44,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0xFFCFFFFF, 0x03, 0x08 }, { 0xFFCFFFFF, 0x01, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c index 68845bca93..5a284929ed 100644 --- a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c +++ b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c @@ -27,7 +27,7 @@ ActorProfile En_Bubble_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x04 }, { 0xFFCFD753, 0x00, 0x00 }, ATELEM_NONE, @@ -38,7 +38,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00002824, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Butte/z_en_butte.c b/src/overlays/actors/ovl_En_Butte/z_en_butte.c index 444e2a7e49..4a93d3f8dd 100644 --- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c +++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c @@ -27,7 +27,7 @@ void EnButte_WaitToDie(EnButte* this, PlayState* play); static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x000, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.c b/src/overlays/actors/ovl_En_Bw/z_en_bw.c index 994e2e9fa5..93675ba319 100644 --- a/src/overlays/actors/ovl_En_Bw/z_en_bw.c +++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.c @@ -55,7 +55,7 @@ static ColliderCylinderInit sCylinderInit1 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -75,7 +75,7 @@ static ColliderCylinderInit sCylinderInit2 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Bx/z_en_bx.c b/src/overlays/actors/ovl_En_Bx/z_en_bx.c index bf8c1bbd1d..64d44b27f5 100644 --- a/src/overlays/actors/ovl_En_Bx/z_en_bx.c +++ b/src/overlays/actors/ovl_En_Bx/z_en_bx.c @@ -36,7 +36,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0xFFCFFFFF, 0x03, 0x04 }, { 0xFFCFFFFF, 0x01, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -56,7 +56,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x03, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c index b8df8c855c..921f4d016d 100644 --- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c +++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c @@ -44,7 +44,7 @@ static ColliderCylinderInit sArwingCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFDFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -64,7 +64,7 @@ static ColliderCylinderInit sLaserCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFDFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index 7e6e4ca52e..a1c6b3a380 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -48,7 +48,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, 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 8bbbef431d..54c261ccd9 100644 --- a/src/overlays/actors/ovl_En_Crow/z_en_crow.c +++ b/src/overlays/actors/ovl_En_Crow/z_en_crow.c @@ -33,7 +33,7 @@ ActorProfile En_Crow_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index 24bfb2d9a3..807abac5ec 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -37,7 +37,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c index 98200fadc8..0f84c7784a 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -63,7 +63,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index 6bc4db0a9f..b1f40ab70c 100644 --- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -46,7 +46,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index 08cbf17d18..1e89ac5ff8 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -44,7 +44,7 @@ ActorProfile En_Dekubaba_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[7] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, @@ -55,7 +55,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -66,7 +66,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -77,7 +77,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -88,7 +88,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -99,7 +99,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -110,7 +110,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c index fdd6042d36..3577d1394b 100644 --- a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c +++ b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c @@ -52,7 +52,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Dh/z_en_dh.c b/src/overlays/actors/ovl_En_Dh/z_en_dh.c index 4a8afd7fc9..f1cbd0cb5b 100644 --- a/src/overlays/actors/ovl_En_Dh/z_en_dh.c +++ b/src/overlays/actors/ovl_En_Dh/z_en_dh.c @@ -53,7 +53,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, @@ -66,7 +66,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Dha/z_en_dha.c b/src/overlays/actors/ovl_En_Dha/z_en_dha.c index ffaf055780..15bb64753c 100644 --- a/src/overlays/actors/ovl_En_Dha/z_en_dha.c +++ b/src/overlays/actors/ovl_En_Dha/z_en_dha.c @@ -73,7 +73,7 @@ static DamageTable sDamageTable = { static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -84,7 +84,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -95,7 +95,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -106,7 +106,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -117,7 +117,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c index 4a8c61119f..9ed06293c0 100644 --- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c +++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c @@ -58,7 +58,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index b975349d1c..101209eb60 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -63,7 +63,7 @@ static ColliderCylinderInitType1 sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index 413e2b0d59..7a26d7863c 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -61,7 +61,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c index 65c56052f8..c71075f309 100644 --- a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c +++ b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c @@ -78,7 +78,7 @@ static ColliderCylinderInit sBodyCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -98,7 +98,7 @@ static ColliderQuadInit sTargetQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x0001F824, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c index df7de3fb2e..7b5d7a7586 100644 --- a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c +++ b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c @@ -53,7 +53,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFC5FFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index 8b3c3a1b0b..0a4242d020 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -51,7 +51,7 @@ ActorProfile En_Dodongo_Profile = { static ColliderJntSphElementInit sBodyElementsInit[6] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -62,7 +62,7 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -73,7 +73,7 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -84,7 +84,7 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -95,7 +95,7 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -106,7 +106,7 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x0D800691, 0x00, 0x00 }, ATELEM_NONE, @@ -133,7 +133,7 @@ static ColliderJntSphInit sBodyJntSphInit = { static ColliderTrisElementInit sHardElementsInit[3] = { { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xF24BF96E, 0x00, 0x00 }, ATELEM_NONE, @@ -144,7 +144,7 @@ static ColliderTrisElementInit sHardElementsInit[3] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFCBF96E, 0x00, 0x00 }, ATELEM_NONE, @@ -155,7 +155,7 @@ static ColliderTrisElementInit sHardElementsInit[3] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFCBF96E, 0x00, 0x00 }, ATELEM_NONE, @@ -189,7 +189,7 @@ static ColliderQuadInit sAttackQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x01, 0x10 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7, diff --git a/src/overlays/actors/ovl_En_Dog/z_en_dog.c b/src/overlays/actors/ovl_En_Dog/z_en_dog.c index 8a656adb29..49b8c83ba3 100644 --- a/src/overlays/actors/ovl_En_Dog/z_en_dog.c +++ b/src/overlays/actors/ovl_En_Dog/z_en_dog.c @@ -43,7 +43,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index d98a1c9a6b..c8e747e31e 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -44,7 +44,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c index 03337e4a57..63e509986b 100644 --- a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c +++ b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c @@ -57,7 +57,7 @@ static ColliderCylinderInit sColCylInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x04, 0x08 }, { 0x00000019, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, diff --git a/src/overlays/actors/ovl_En_Fd/z_en_fd.c b/src/overlays/actors/ovl_En_Fd/z_en_fd.c index 816b6a73df..4ff76c923e 100644 --- a/src/overlays/actors/ovl_En_Fd/z_en_fd.c +++ b/src/overlays/actors/ovl_En_Fd/z_en_fd.c @@ -42,7 +42,7 @@ ActorProfile En_Fd_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[12] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040088, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -53,7 +53,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -64,7 +64,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -75,7 +75,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -86,7 +86,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -97,7 +97,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -108,7 +108,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -119,7 +119,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -130,7 +130,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -141,7 +141,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -152,7 +152,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -163,7 +163,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00040008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c index 4986f442d0..472ff44b25 100644 --- a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c +++ b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c @@ -34,7 +34,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x08 }, { 0x0D840008, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c index 9a31deab26..ced412103c 100644 --- a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c +++ b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c @@ -66,7 +66,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK6, + ELEM_MATERIAL_UNK6, { 0x00100700, 0x03, 0x20 }, { 0x0D900700, 0x00, 0x00 }, ATELEM_ON, diff --git a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c index 2c4f71b2ce..e07030cab7 100644 --- a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c +++ b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c @@ -37,7 +37,7 @@ static ColliderCylinderInit D_80A12CA0 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x09, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -57,7 +57,7 @@ static ColliderCylinderInit D_80A12CCC = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index 09e9d23e35..e9d562c7ca 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -49,7 +49,7 @@ ActorProfile En_Firefly_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, diff --git a/src/overlays/actors/ovl_En_Fish/z_en_fish.c b/src/overlays/actors/ovl_En_Fish/z_en_fish.c index ac45aca806..e86d8de3b6 100644 --- a/src/overlays/actors/ovl_En_Fish/z_en_fish.c +++ b/src/overlays/actors/ovl_En_Fish/z_en_fish.c @@ -40,7 +40,7 @@ static f32 D_80A17018 = 0.0f; static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index d692dfe44a..9483d29d19 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -66,7 +66,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x04, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 7f4512dc89..527df5b1fb 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -50,7 +50,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Fw/z_en_fw.c b/src/overlays/actors/ovl_En_Fw/z_en_fw.c index 467b4eaf3f..50bc3e3b7b 100644 --- a/src/overlays/actors/ovl_En_Fw/z_en_fw.c +++ b/src/overlays/actors/ovl_En_Fw/z_en_fw.c @@ -39,7 +39,7 @@ ActorProfile En_Fw_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x04 }, { 0xFFCFFFFE, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index 47f3e1a7b6..c7b14455b3 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -66,7 +66,7 @@ static ColliderCylinderInitType1 sCylinderInit1 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0xFFCE0FDB, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -85,7 +85,7 @@ static ColliderCylinderInitType1 sCylinderInit2 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0x0001F024, 0x00, 0x00 }, ATELEM_NONE, @@ -104,7 +104,7 @@ static ColliderCylinderInitType1 sCylinderInit3 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x02, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c index 8045aac430..e1d6258611 100644 --- a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c +++ b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c @@ -49,7 +49,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index cd769ac99f..e7fa809a06 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -53,7 +53,7 @@ static ColliderCylinderInitType1 sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -73,7 +73,7 @@ static ColliderCylinderInitType1 sBottlesCylindersInit[] = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -91,7 +91,7 @@ static ColliderCylinderInitType1 sBottlesCylindersInit[] = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -109,7 +109,7 @@ static ColliderCylinderInitType1 sBottlesCylindersInit[] = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index c2f90782c9..492d9d6bc7 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -61,7 +61,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000702, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index 6679aa4c10..332dfc9d17 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -77,7 +77,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x000007A2, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c index 9cac0605d0..df1619bf3c 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c @@ -41,7 +41,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000722, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c index 9aa057d69d..8d09f45342 100644 --- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c +++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c @@ -91,7 +91,7 @@ static ColliderCylinderInit sBodyCylInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -104,7 +104,7 @@ static ColliderCylinderInit sBodyCylInit = { static ColliderTrisElementInit sBlockTrisElementsInit[2] = { { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFC1FFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -115,7 +115,7 @@ static ColliderTrisElementInit sBlockTrisElementsInit[2] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFC1FFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -149,7 +149,7 @@ static ColliderQuadInit sSwordQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7, diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index 01cbeb38d7..f26c6db2ec 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -47,7 +47,7 @@ static ColliderCylinderInitType1 sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index a5d96938c6..781bed2255 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -56,7 +56,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index c267023b13..579b193264 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -74,7 +74,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c index 29bab5103f..ceb7b3649d 100644 --- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -64,7 +64,7 @@ static ColliderCylinderInit D_80A4B7A0 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFDFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -84,7 +84,7 @@ static ColliderCylinderInit D_80A4B7CC = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFDFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c index 2e1da985e2..3439d0f717 100644 --- a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c +++ b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c @@ -58,7 +58,7 @@ ActorProfile En_Goroiwa_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index 3ada233a1c..41bc282cb9 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -43,7 +43,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Hata/z_en_hata.c b/src/overlays/actors/ovl_En_Hata/z_en_hata.c index 74b765e2ad..a339b3c3f4 100644 --- a/src/overlays/actors/ovl_En_Hata/z_en_hata.c +++ b/src/overlays/actors/ovl_En_Hata/z_en_hata.c @@ -37,7 +37,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000080, 0x00, 0x00 }, ATELEM_NONE | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index 53a2e3ee2b..078ce5db13 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -72,7 +72,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c index f2ea414148..aa9c72cc5a 100644 --- a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c +++ b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c @@ -47,7 +47,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c index cafe699bc7..51588714c8 100644 --- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c +++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c @@ -45,7 +45,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index d40cbaf7f7..2e7a8a16fb 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -49,7 +49,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c index 2cc7d72e55..c98881645d 100644 --- a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c +++ b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c @@ -63,7 +63,7 @@ ActorProfile En_Honotrap_Profile = { static ColliderTrisElementInit sTrisElementsInit[2] = { { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0x00000000, 0x00, 0x00 }, { 0x0001F824, 0x00, 0x00 }, ATELEM_NONE, @@ -74,7 +74,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x0001F824, 0x00, 0x00 }, ATELEM_NONE, @@ -108,7 +108,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00100000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/src/overlays/actors/ovl_En_Horse/z_en_horse.c index a734c1abab..44dc68f52a 100644 --- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c +++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c @@ -88,7 +88,7 @@ static ColliderCylinderInit sCylinderInit1 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000400, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -108,7 +108,7 @@ static ColliderCylinderInit sCylinderInit2 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -121,7 +121,7 @@ static ColliderCylinderInit sCylinderInit2 = { static ColliderJntSphElementInit sJntSphItemsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x0001F824, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c b/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c index 9f94a571af..0612993947 100644 --- a/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c +++ b/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c @@ -52,7 +52,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -65,7 +65,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c index 9b4d55015e..a626ae27f3 100644 --- a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c +++ b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c @@ -45,7 +45,7 @@ static ColliderCylinderInitType1 sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -58,7 +58,7 @@ static ColliderCylinderInitType1 sCylinderInit = { static ColliderJntSphElementInit sJntSphElementInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c index 99ccff9a14..79e8998762 100644 --- a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c +++ b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c @@ -67,7 +67,7 @@ static ColliderCylinderInit sCylinderInit1 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -87,7 +87,7 @@ static ColliderCylinderInit sCylinderInit2 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -100,7 +100,7 @@ static ColliderCylinderInit sCylinderInit2 = { static ColliderJntSphElementInit sJntSphElementsInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c index 691eb7eb69..dd8068cd2c 100644 --- a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c +++ b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c @@ -43,7 +43,7 @@ static ColliderCylinderInitType1 sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -56,7 +56,7 @@ static ColliderCylinderInitType1 sCylinderInit = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Hs/z_en_hs.c b/src/overlays/actors/ovl_En_Hs/z_en_hs.c index 5a678d2624..b5c521da2d 100644 --- a/src/overlays/actors/ovl_En_Hs/z_en_hs.c +++ b/src/overlays/actors/ovl_En_Hs/z_en_hs.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c index 383411a9da..b1b04107f0 100644 --- a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c +++ b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c @@ -38,7 +38,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/src/overlays/actors/ovl_En_Hy/z_en_hy.c index 6ebdbabd89..3ad2e8b943 100644 --- a/src/overlays/actors/ovl_En_Hy/z_en_hy.c +++ b/src/overlays/actors/ovl_En_Hy/z_en_hy.c @@ -54,7 +54,7 @@ static ColliderCylinderInit sColCylInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index b2eaa14c33..ecd1ad5d3e 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -46,7 +46,7 @@ static ColliderCylinderInit sCylinderInitCapturableFlame = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -66,7 +66,7 @@ static ColliderCylinderInit sCylinderInitDroppedFlame = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c index 189c0ba2ee..003e5a5c3b 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -75,7 +75,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -88,7 +88,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderTrisElementInit sTrisElementsInit[2] = { { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFC3FFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -99,7 +99,7 @@ static ColliderTrisElementInit sTrisElementsInit[2] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFC3FFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -133,7 +133,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x20000000, 0x00, 0x40 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7, 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 30b8bf6cbe..74e132152a 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -46,7 +46,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, 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 b40d6b9ee9..b98c864f9f 100644 --- a/src/overlays/actors/ovl_En_Insect/z_en_insect.c +++ b/src/overlays/actors/ovl_En_Insect/z_en_insect.c @@ -57,7 +57,7 @@ ActorProfile En_Insect_Profile = { static ColliderJntSphElementInit sColliderItemInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, 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 759469f06b..a14b34e922 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -70,7 +70,7 @@ static ColliderCylinderInit sCylinderInits[] = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x4FC1FFFE, 0x00, 0x00 }, ATELEM_NONE, @@ -89,7 +89,7 @@ static ColliderCylinderInit sCylinderInits[] = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x4FC1FFF6, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_It/z_en_it.c b/src/overlays/actors/ovl_En_It/z_en_it.c index e47ab03255..312ceec96e 100644 --- a/src/overlays/actors/ovl_En_It/z_en_it.c +++ b/src/overlays/actors/ovl_En_It/z_en_it.c @@ -22,7 +22,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Jj/z_en_jj.c b/src/overlays/actors/ovl_En_Jj/z_en_jj.c index 2ce58860ee..999e97cd24 100644 --- a/src/overlays/actors/ovl_En_Jj/z_en_jj.c +++ b/src/overlays/actors/ovl_En_Jj/z_en_jj.c @@ -56,7 +56,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000004, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Js/z_en_js.c b/src/overlays/actors/ovl_En_Js/z_en_js.c index 998dd27311..ec0820043c 100644 --- a/src/overlays/actors/ovl_En_Js/z_en_js.c +++ b/src/overlays/actors/ovl_En_Js/z_en_js.c @@ -38,7 +38,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index c02f2b70b5..c82d070bcf 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -32,7 +32,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c index 83cdc9b6cb..b624b5f890 100644 --- a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c +++ b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c @@ -20,7 +20,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index a61bc07b90..1cc893ad5e 100644 --- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -36,7 +36,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, 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 4de1b6d223..c2631f471b 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -98,7 +98,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index ff9f487194..f17108e82e 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -51,7 +51,7 @@ static ColliderCylinderInit sBodyColliderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -71,7 +71,7 @@ static ColliderCylinderInit sHeadColliderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, diff --git a/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/src/overlays/actors/ovl_En_Ko/z_en_ko.c index 4c89130ac2..d66689e0d7 100644 --- a/src/overlays/actors/ovl_En_Ko/z_en_ko.c +++ b/src/overlays/actors/ovl_En_Ko/z_en_ko.c @@ -52,7 +52,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, 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 c87ad1147d..eacb01ca3e 100644 --- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c +++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c @@ -65,7 +65,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x4FC00758, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c index 9d298eb533..bae3ee5818 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -44,7 +44,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c b/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c index e510b0d987..9acedc1552 100644 --- a/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c +++ b/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c @@ -34,7 +34,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000001, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c index f2dc78a836..eb7745aa86 100644 --- a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c +++ b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c @@ -34,7 +34,7 @@ static ColliderCylinderInit D_80AA0420 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000001, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index 89e8b05372..24644bb5ef 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -45,7 +45,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index 4609d040cd..868b523728 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -39,7 +39,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c index db4fc8b4c0..b5702dc0c5 100644 --- a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c +++ b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c @@ -42,7 +42,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Mb/z_en_mb.c b/src/overlays/actors/ovl_En_Mb/z_en_mb.c index efe4b7c540..9fa90fb8c5 100644 --- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c +++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c @@ -100,7 +100,7 @@ static ColliderCylinderInit sBodyColliderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -113,7 +113,7 @@ static ColliderCylinderInit sBodyColliderInit = { static ColliderTrisElementInit sFrontShieldingTrisInit[2] = { { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -124,7 +124,7 @@ static ColliderTrisElementInit sFrontShieldingTrisInit[2] = { }, { { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -158,7 +158,7 @@ static ColliderQuadInit sAttackColliderInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c index c5046d0789..37ae4b40fd 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -43,7 +43,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, 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 72fc28f2b8..42bb01c703 100644 --- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c +++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c @@ -38,7 +38,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index 01e750267a..cb4b3b106e 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -61,7 +61,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c index 9fe34382d8..f4876f70ed 100644 --- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c +++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c @@ -57,7 +57,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000004, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c index c57cb95700..4e50a89e08 100644 --- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c +++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c @@ -27,7 +27,7 @@ static ColliderCylinderInit D_80AB0BD0 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, 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 9a82cb7141..688350196b 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -67,7 +67,7 @@ static ColliderCylinderInitType1 sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, 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 a0ab483e2d..508a4e543a 100644 --- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -83,7 +83,7 @@ static ColliderCylinderInit sCylinderInit1 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -103,7 +103,7 @@ static ColliderCylinderInit sCylinderInit2 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index d492a53d1b..dab07959e4 100644 --- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -41,7 +41,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index 8ff0cc1f43..11a788ec5a 100644 --- a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -56,7 +56,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c index b905f6cb18..51f3bbdd43 100644 --- a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c +++ b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c @@ -44,7 +44,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_WOOD, diff --git a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c index a56940493d..00ba57f4ad 100644 --- a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c +++ b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c @@ -44,7 +44,7 @@ ActorProfile En_Nwc_Profile = { static ColliderJntSphElementInit sJntSphElementInit = { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, 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 720f9cc4c3..2c04b71db8 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -38,7 +38,7 @@ ActorProfile En_Ny_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x04, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index 48f9bc6964..d8cdb2cfbc 100644 --- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -41,7 +41,7 @@ static ColliderCylinderInit sProjectileColliderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, @@ -61,7 +61,7 @@ static ColliderCylinderInit sOctorockColliderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index dac45da114..e72837d85d 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -134,7 +134,7 @@ static ColliderCylinderInitType1 sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index e297d8f248..7a3cf46d80 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -87,7 +87,7 @@ static ColliderCylinderInit sOwlCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c index 2214b49ae3..2543995736 100644 --- a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c +++ b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c @@ -62,7 +62,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -75,7 +75,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderJntSphElementInit sJntSphElemInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -109,7 +109,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c index a219e5d402..d6c5348862 100644 --- a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c +++ b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c @@ -41,7 +41,7 @@ static ColliderCylinderInit sColliderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index a04a1df018..c3c9252c94 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -56,7 +56,7 @@ static ColliderCylinderInit D_80AD7080 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -76,7 +76,7 @@ static ColliderCylinderInit D_80AD70AC = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x01, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index ff08fb027b..f0322a91a7 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -56,7 +56,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 2ce612b027..a648327dc6 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -85,7 +85,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0x4FC7FFEA, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -211,7 +211,7 @@ void EnPoSisters_Init(Actor* thisx, PlayState* play) { func_80AD9AA8(this, play); } else { this->actor.flags &= ~(ACTOR_FLAG_9 | ACTOR_FLAG_14); - this->collider.elem.elemType = ELEMTYPE_UNK4; + this->collider.elem.elemMaterial = ELEM_MATERIAL_UNK4; this->collider.elem.acDmgInfo.dmgFlags |= DMG_DEKU_NUT; this->collider.base.ocFlags1 = OC1_NONE; func_80AD9C24(this, NULL); diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index 14d63fc0cf..9e8f56721e 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -64,7 +64,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -77,7 +77,7 @@ static ColliderCylinderInit sCylinderInit = { static ColliderJntSphElementInit D_80AE1AA0[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index ff6e7dc1a4..96ea4ea33b 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -74,7 +74,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c index 2a84f263aa..69f9bc1d7f 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c @@ -97,7 +97,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x08, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index b9bc67984b..985083560c 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -92,7 +92,7 @@ static ColliderCylinderInitType1 sCylinderInit1 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -111,7 +111,7 @@ static ColliderCylinderInitType1 sCylinderInit2 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index 3b6bb128ea..bd7f2d3b4f 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -55,7 +55,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c index bfe5cccb32..8eb853a808 100644 --- a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c +++ b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c @@ -43,7 +43,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Si/z_en_si.c b/src/overlays/actors/ovl_En_Si/z_en_si.c index c7d86b18ab..f6619976d8 100644 --- a/src/overlays/actors/ovl_En_Si/z_en_si.c +++ b/src/overlays/actors/ovl_En_Si/z_en_si.c @@ -28,7 +28,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000090, 0x00, 0x00 }, ATELEM_NONE, 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 c0410bb881..824528d5d9 100644 --- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c +++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c @@ -43,7 +43,7 @@ void EnSkb_Death(EnSkb* this, PlayState* play); static ColliderJntSphElementInit sJntSphElementsInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -54,7 +54,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index 6faf037418..16fb37be74 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -180,7 +180,7 @@ static ColliderCylinderInitType1 D_80B01678 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x0, 0x08 }, { 0xFFCFFFFF, 0x0, 0x0 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c index 7209f3aace..14da6adb97 100644 --- a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c +++ b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c @@ -37,7 +37,7 @@ static ColliderCylinderInitType1 sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c index c77228e084..09fa048cae 100644 --- a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c +++ b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c @@ -52,7 +52,7 @@ static ColliderCylinderInit sCylinderInit1 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -74,7 +74,7 @@ static ColliderCylinderInit sCylinderInit2 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -87,7 +87,7 @@ static ColliderCylinderInit sCylinderInit2 = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -207,7 +207,7 @@ void EnSsh_InitColliders(EnSsh* this, PlayState* play) { ~(DMG_MAGIC_LIGHT | DMG_MAGIC_ICE); this->colCylinder[2].base.colMaterial = COL_MATERIAL_METAL; this->colCylinder[2].elem.acElemFlags = ACELEM_ON | ACELEM_HOOKABLE | ACELEM_NO_AT_INFO; - this->colCylinder[2].elem.elemType = ELEMTYPE_UNK2; + this->colCylinder[2].elem.elemMaterial = ELEM_MATERIAL_UNK2; this->colCylinder[2].elem.acDmgInfo.dmgFlags = DMG_DEFAULT & ~(DMG_ARROW | DMG_MAGIC_FIRE | DMG_HOOKSHOT | DMG_HAMMER_SWING | DMG_EXPLOSIVE | DMG_DEKU_NUT); diff --git a/src/overlays/actors/ovl_En_St/z_en_st.c b/src/overlays/actors/ovl_En_St/z_en_st.c index 50284e761a..69b1f17244 100644 --- a/src/overlays/actors/ovl_En_St/z_en_st.c +++ b/src/overlays/actors/ovl_En_St/z_en_st.c @@ -45,7 +45,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -67,7 +67,7 @@ static ColliderCylinderInit sCylinderInit2 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, @@ -80,7 +80,7 @@ static ColliderCylinderInit sCylinderInit2 = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -293,7 +293,7 @@ void EnSt_InitColliders(EnSt* this, PlayState* play) { ~(DMG_MAGIC_LIGHT | DMG_MAGIC_ICE); this->colCylinder[2].base.colMaterial = COL_MATERIAL_METAL; this->colCylinder[2].elem.acElemFlags = ACELEM_ON | ACELEM_HOOKABLE | ACELEM_NO_AT_INFO; - this->colCylinder[2].elem.elemType = ELEMTYPE_UNK2; + this->colCylinder[2].elem.elemMaterial = ELEM_MATERIAL_UNK2; this->colCylinder[2].elem.acDmgInfo.dmgFlags = DMG_DEFAULT & ~(DMG_MAGIC_FIRE | DMG_ARROW | DMG_HOOKSHOT | DMG_HAMMER_SWING | DMG_BOOMERANG | DMG_EXPLOSIVE | DMG_DEKU_NUT); diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c index 37bd5ac04e..755f1ea208 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -46,7 +46,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Sw/z_en_sw.c b/src/overlays/actors/ovl_En_Sw/z_en_sw.c index 0322690da7..2e1091eda7 100644 --- a/src/overlays/actors/ovl_En_Sw/z_en_sw.c +++ b/src/overlays/actors/ovl_En_Sw/z_en_sw.c @@ -34,7 +34,7 @@ ActorProfile En_Sw_Profile = { static ColliderJntSphElementInit sJntSphItemsInit[1] = { { - { ELEMTYPE_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFC3FFFE, 0x00, 0x00 }, 0x01, 0x05, 0x01 }, + { ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFC3FFFE, 0x00, 0x00 }, 0x01, 0x05, 0x01 }, { 2, { { 0, -300, 0 }, 21 }, 100 }, }, }; diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c index 26ec5b8672..566a866f9a 100644 --- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c +++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c @@ -48,7 +48,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index 0e240fffaa..f6a11e4751 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -79,7 +79,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000004, 0x00, 0x00 }, ATELEM_NONE, 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 873ea78e11..aec8b5c293 100644 --- a/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -147,7 +147,7 @@ static ColliderCylinderInit sBodyColliderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -167,7 +167,7 @@ static ColliderCylinderInit sShieldColliderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFC1FFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -187,7 +187,7 @@ static ColliderQuadInit sSwordColliderInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7, diff --git a/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/src/overlays/actors/ovl_En_Tg/z_en_tg.c index f8b53051ca..42f32f0eb7 100644 --- a/src/overlays/actors/ovl_En_Tg/z_en_tg.c +++ b/src/overlays/actors/ovl_En_Tg/z_en_tg.c @@ -26,7 +26,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, 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 163ed17edb..eb28e6a164 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -89,7 +89,7 @@ ActorProfile En_Tite_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index aa6953782d..747b0085c6 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -146,7 +146,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c index b3a60cf933..72b6c4587c 100644 --- a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c +++ b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c @@ -706,10 +706,10 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { } if (this->invincibilityTimer != 0) { this->cylinder.base.colMaterial = COL_MATERIAL_NONE; - this->cylinder.elem.elemType = ELEMTYPE_UNK5; + this->cylinder.elem.elemMaterial = ELEM_MATERIAL_UNK5; } else { this->cylinder.base.colMaterial = COL_MATERIAL_HIT5; - this->cylinder.elem.elemType = ELEMTYPE_UNK1; + this->cylinder.elem.elemMaterial = ELEM_MATERIAL_UNK1; } /* * Handles the jump movement onto Link's sword. Dark Link doesn't move during the diff --git a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c index a456256a26..da109eb82e 100644 --- a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c +++ b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c index effc903c7e..a6be2f60fb 100644 --- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c +++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c @@ -54,7 +54,7 @@ ActorProfile En_Tp_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x03, 0x08 }, { 0xFFCFFFFF, 0x01, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Trap/z_en_trap.c b/src/overlays/actors/ovl_En_Trap/z_en_trap.c index 6abc575158..8cf807dcad 100644 --- a/src/overlays/actors/ovl_En_Trap/z_en_trap.c +++ b/src/overlays/actors/ovl_En_Trap/z_en_trap.c @@ -55,7 +55,7 @@ static ColliderCylinderInit sCylinderInit = { OC2_TYPE_1, COLSHAPE_CYLINDER, }, - { ELEMTYPE_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00001000, 0x00, 0x00 }, ATELEM_NONE, ACELEM_ON, OCELEM_ON }, + { ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00001000, 0x00, 0x00 }, ATELEM_NONE, ACELEM_ON, OCELEM_ON }, { 30, 20, 0, { 0, 0, 0 } }, }; 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 a0f6a6a723..c122d39684 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 @@ -30,7 +30,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Vali/z_en_vali.c b/src/overlays/actors/ovl_En_Vali/z_en_vali.c index b94a9d3704..be03eb1644 100644 --- a/src/overlays/actors/ovl_En_Vali/z_en_vali.c +++ b/src/overlays/actors/ovl_En_Vali/z_en_vali.c @@ -51,7 +51,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x07, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -71,7 +71,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x07, 0x08 }, { 0xFFCFFFFF, 0x01, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c index d838dcb6cd..1a8f8d2275 100644 --- a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c +++ b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c @@ -38,7 +38,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK6, + ELEM_MATERIAL_UNK6, { 0x00100700, 0x00, 0x20 }, { 0x00100700, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/src/overlays/actors/ovl_En_Vm/z_en_vm.c index c29b23636d..1fe315ae2f 100644 --- a/src/overlays/actors/ovl_En_Vm/z_en_vm.c +++ b/src/overlays/actors/ovl_En_Vm/z_en_vm.c @@ -45,7 +45,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -65,7 +65,7 @@ static ColliderQuadInit sQuadInit1 = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7, @@ -85,7 +85,7 @@ static ColliderQuadInit sQuadInit2 = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index 893eda3176..7346278053 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -60,7 +60,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, 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 66dcb02e71..3d3387fcd2 100644 --- a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c +++ b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c @@ -48,7 +48,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c index 05dbe9a297..8d2e130c1c 100644 --- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -46,7 +46,7 @@ s32 EnWf_DodgeRanged(PlayState* play, EnWf* this); static ColliderJntSphElementInit sJntSphItemsInit[4] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -57,7 +57,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[4] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -68,7 +68,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[4] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFC1FFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -79,7 +79,7 @@ static ColliderJntSphElementInit sJntSphItemsInit[4] = { }, { { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFC1FFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -113,7 +113,7 @@ static ColliderCylinderInit sBodyCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -133,7 +133,7 @@ static ColliderCylinderInit sTailCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c index 3b112cc8ad..3b5f2384ef 100644 --- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c +++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c @@ -31,7 +31,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c index 0bfd791d54..f893a1b06c 100644 --- a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c +++ b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c @@ -55,7 +55,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK5, + ELEM_MATERIAL_UNK5, { 0x00000000, 0x00, 0x00 }, { 0x0FC0074A, 0x00, 0x00 }, ATELEM_NONE, 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 3061631f96..20d94e8237 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -39,7 +39,7 @@ static ColliderCylinderInitType1 sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c index 3c90f3f69f..83a24f5f2b 100644 --- a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c +++ b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c @@ -24,7 +24,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x0001F824, 0x00, 0x00 }, ATELEM_NONE | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c index b5df6984ba..8ac0995c59 100644 --- a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c +++ b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_HARD, diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index b9c5e45d3b..9c50186329 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -121,7 +121,7 @@ static ColliderCylinderInit sBodyCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -141,7 +141,7 @@ static ColliderQuadInit sSwordQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7, 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 08749a5bef..a73d1e20e8 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -49,7 +49,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c index fbd648e7f7..d6a2a02893 100644 --- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c +++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c @@ -32,7 +32,7 @@ static ColliderCylinderInitType1 sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, 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 bf9c3874d9..0a9687c3ac 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -80,7 +80,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, 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 6e5fd9aa7c..fd78e537e2 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -284,7 +284,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 5744dce321..118db21d6e 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -205,7 +205,7 @@ static u8 sSinkingLureFound = false; static ColliderJntSphElementInit sJntSphElementsInit[12] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -216,7 +216,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -227,7 +227,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -238,7 +238,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -249,7 +249,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -260,7 +260,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -271,7 +271,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -282,7 +282,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -293,7 +293,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -304,7 +304,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -315,7 +315,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -326,7 +326,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x10 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c index f96a8a44ec..bebe954983 100644 --- a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c +++ b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c @@ -28,7 +28,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000004, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c index ca8917cbd1..3895bac8be 100644 --- a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c +++ b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c @@ -54,7 +54,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00020000, 0x00, 0x01 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, diff --git a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c index e81ddf89a5..4bb8ce0cf6 100644 --- a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c +++ b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c @@ -54,7 +54,7 @@ static ColliderQuadInit sQuadInit = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00200000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -67,7 +67,7 @@ static ColliderQuadInit sQuadInit = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00200000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c index b8c908354a..a9cded5748 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -94,7 +94,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c index 16706d0e05..bf6a5ebf4f 100644 --- a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c +++ b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x4FC1FFFE, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c index 673f90092b..0198ddfc8f 100644 --- a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c +++ b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c @@ -35,7 +35,7 @@ ActorProfile Obj_Comb_Profile = { static ColliderJntSphElementInit sJntSphElementsInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x4001FFFE, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c index 850e18a252..ba43d40a46 100644 --- a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c +++ b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c @@ -36,7 +36,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x4FC1FFF6, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c index 86af604567..11b671c4b4 100644 --- a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c +++ b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c @@ -36,7 +36,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c index 954c9d3f87..18b90b5584 100644 --- a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c +++ b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c @@ -39,7 +39,7 @@ static ColliderCylinderInit sCylinderInitIce = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x02, 0x00 }, { 0x00020800, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NONE, @@ -59,7 +59,7 @@ static ColliderCylinderInit sCylinderInitHard = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x4E01F7F6, 0x00, 0x00 }, ATELEM_NONE, 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 b7320faa64..f3b101e48e 100644 --- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c +++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c @@ -44,7 +44,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000002, 0x00, 0x01 }, { 0x4FC00748, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c index 272133bae3..58e578c059 100644 --- a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c +++ b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c @@ -39,7 +39,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x40000040, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c index b567b3b994..6f723d292a 100644 --- a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c +++ b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c @@ -50,7 +50,7 @@ ActorProfile Obj_Lightswitch_Profile = { static ColliderJntSphElementInit sColliderJntSphElementInit[] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00200000, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c index c44d78ae90..1d4dc9ae00 100644 --- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c +++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c @@ -74,7 +74,7 @@ static f32 sFocusHeights[] = { static ColliderTrisElementInit sRustyFloorTrisElementsInit[2] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x40000040, 0x00, 0x00 }, ATELEM_NONE, @@ -85,7 +85,7 @@ static ColliderTrisElementInit sRustyFloorTrisElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x40000040, 0x00, 0x00 }, ATELEM_NONE, @@ -112,7 +112,7 @@ static ColliderTrisInit sRustyFloorTrisInit = { static ColliderTrisElementInit sEyeTrisElementsInit[2] = { { { - ELEMTYPE_UNK4, + ELEM_MATERIAL_UNK4, { 0x00000000, 0x00, 0x00 }, { 0x0001F824, 0x00, 0x00 }, ATELEM_NONE, @@ -123,7 +123,7 @@ static ColliderTrisElementInit sEyeTrisElementsInit[2] = { }, { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x0001F824, 0x00, 0x00 }, ATELEM_NONE, @@ -150,7 +150,7 @@ static ColliderTrisInit sEyeTrisInit = { static ColliderJntSphElementInit sCrystalJntSphElementInit[1] = { { { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xEFC1FFFE, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index bc6b4bff31..c6ff95c34c 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -38,7 +38,7 @@ static ColliderCylinderInit sCylInitStand = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00100000, 0x00, 0x00 }, { 0xEE01FFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -58,7 +58,7 @@ static ColliderCylinderInit sCylInitFlame = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000000, 0x00, 0x00 }, { 0x00020820, 0x00, 0x00 }, ATELEM_NONE, 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 01c0cf25d6..9747279d79 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -64,7 +64,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000002, 0x00, 0x01 }, { 0x4FC1FFFE, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c index 8c08bcad49..3b8f64972f 100644 --- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c +++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c @@ -49,7 +49,7 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00000020, 0x00, 0x00 }, ATELEM_NONE, diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 0246316902..583f42cd41 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -9972,7 +9972,7 @@ static ColliderCylinderInit D_80854624 = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK1, + ELEM_MATERIAL_UNK1, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_NONE, @@ -9992,7 +9992,7 @@ static ColliderQuadInit D_80854650 = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00000100, 0x00, 0x01 }, { 0xFFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, @@ -10012,7 +10012,7 @@ static ColliderQuadInit D_808546A0 = { COLSHAPE_QUAD, }, { - ELEMTYPE_UNK2, + ELEM_MATERIAL_UNK2, { 0x00100000, 0x00, 0x00 }, { 0xDFCFFFFF, 0x00, 0x00 }, ATELEM_ON | ATELEM_SFX_NORMAL, diff --git a/tools/overlayhelpers/colliderinit.py b/tools/overlayhelpers/colliderinit.py index f05785bcc4..be1a18ea8c 100755 --- a/tools/overlayhelpers/colliderinit.py +++ b/tools/overlayhelpers/colliderinit.py @@ -31,14 +31,14 @@ SHAPE_ENUM = [ "COLSHAPE_TRIS", "COLSHAPE_QUAD" ] -ELEMTYPE_UNKENUM = [ - "ELEMTYPE_UNK0", - "ELEMTYPE_UNK1", - "ELEMTYPE_UNK2", - "ELEMTYPE_UNK3", - "ELEMTYPE_UNK4", - "ELEMTYPE_UNK5", - "ELEMTYPE_UNK6"] +ELEM_MATERIAL_UNKENUM = [ + "ELEM_MATERIAL_UNK0", + "ELEM_MATERIAL_UNK1", + "ELEM_MATERIAL_UNK2", + "ELEM_MATERIAL_UNK3", + "ELEM_MATERIAL_UNK4", + "ELEM_MATERIAL_UNK5", + "ELEM_MATERIAL_UNK6"] ATFLAGS_ENUM = [ "AT_ON", @@ -254,7 +254,7 @@ def GetItems(data, off, count, structf, fmt, size): cItem = struct.unpack_from(structf, data, off + 0x18 + ioff) if cBody[0] < 7: - cBody[0] = ELEMTYPE_UNKENUM[cBody[0]] + cBody[0] = ELEM_MATERIAL_UNKENUM[cBody[0]] else: cBody[0] = '0x{0:02X}'.format(cBody[0]) @@ -302,7 +302,7 @@ def GetCylinder(data, off, type): cCyl16 = struct.unpack_from(sf_Cylinder16, data, off + 0x20) if cBody[0] < 7: - cBody[0] = ELEMTYPE_UNKENUM[cBody[0]] + cBody[0] = ELEM_MATERIAL_UNKENUM[cBody[0]] else: cBody[0] = '0x{0:02X}'.format(cBody[0]) @@ -335,7 +335,7 @@ def GetQuad(data, off, type): cQuad = struct.unpack_from(sf_Quad, data, off + 0x20) if cBody[0] < 7: - cBody[0] = ELEMTYPE_UNKENUM[cBody[0]] + cBody[0] = ELEM_MATERIAL_UNKENUM[cBody[0]] else: cBody[0] = '0x{0:02X}'.format(cBody[0]) From 32874370697606ac3a0ac9fb84ab44010da00fec Mon Sep 17 00:00:00 2001 From: cadmic Date: Mon, 16 Sep 2024 18:51:53 -0700 Subject: [PATCH 85/86] [PAL N64] Match VI mode setup (#2198) --- spec | 17 +++++++++++++++-- src/boot/idle.c | 34 +++++++++++++++++++++++++++++----- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/spec b/spec index 5163f4d885..cd35a7f8df 100644 --- a/spec +++ b/spec @@ -105,15 +105,21 @@ beginseg include "$(BUILD_DIR)/src/libultra/libc/bcopy.o" include "$(BUILD_DIR)/src/libultra/os/resetglobalintmask.o" include "$(BUILD_DIR)/src/libultra/os/interrupt.o" +#if !OOT_PAL_N64 include "$(BUILD_DIR)/src/libultra/io/vimodentsclan1.o" include "$(BUILD_DIR)/src/libultra/io/vimodempallan1.o" +#endif include "$(BUILD_DIR)/src/libultra/io/vi.o" +#if OOT_PAL_N64 + include "$(BUILD_DIR)/src/libultra/io/vimodentsclan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallan1.o" +#endif include "$(BUILD_DIR)/src/libultra/io/viswapcontext.o" include "$(BUILD_DIR)/src/libultra/io/pigetcmdq.o" include "$(BUILD_DIR)/src/libultra/io/epiread.o" include "$(BUILD_DIR)/src/libultra/io/visetspecial.o" include "$(BUILD_DIR)/src/libultra/io/cartrominit.o" -#if OOT_DEBUG +#if OOT_PAL_N64 || OOT_DEBUG include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o" #endif include "$(BUILD_DIR)/src/libultra/os/setfpccsr.o" @@ -690,6 +696,11 @@ beginseg include "$(BUILD_DIR)/src/audio/lib/thread.o" include "$(BUILD_DIR)/src/audio/lib/dcache.o" include "$(BUILD_DIR)/src/audio/lib/aisetnextbuf.o" +#if OOT_PAL_N64 + pad_text + pad_text + pad_text +#endif include "$(BUILD_DIR)/src/audio/lib/playback.o" include "$(BUILD_DIR)/src/audio/lib/effects.o" include "$(BUILD_DIR)/src/audio/lib/seqplayer.o" @@ -840,8 +851,10 @@ beginseg include "$(BUILD_DIR)/src/libultra/mgu/translate.o" #endif include "$(BUILD_DIR)/src/libultra/io/contramwrite.o" -#if !OOT_DEBUG +#if !OOT_PAL_N64 && !OOT_DEBUG include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o" +#endif +#if !OOT_DEBUG include "$(BUILD_DIR)/src/libultra/io/pfsgetstatus.o" include "$(BUILD_DIR)/src/libultra/io/contpfs.o" #endif diff --git a/src/boot/idle.c b/src/boot/idle.c index 9f11e3a3a0..eca094e640 100644 --- a/src/boot/idle.c +++ b/src/boot/idle.c @@ -1,6 +1,7 @@ #include "global.h" #include "stack.h" #include "terminal.h" +#include "versions.h" #pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64 ntsc-1.2:64" @@ -63,10 +64,9 @@ void Idle_ThreadEntry(void* arg) { gViConfigXScale = 1.0f; gViConfigYScale = 1.0f; +#if OOT_DEBUG + // Allow both 60 Hz and 50 Hz switch (osTvType) { -#if !OOT_DEBUG - case OS_TV_PAL: -#endif case OS_TV_NTSC: gViConfigModeType = OS_VI_NTSC_LAN1; gViConfigMode = osViModeNtscLan1; @@ -77,14 +77,38 @@ void Idle_ThreadEntry(void* arg) { gViConfigMode = osViModeMpalLan1; break; -#if OOT_DEBUG case OS_TV_PAL: gViConfigModeType = OS_VI_FPAL_LAN1; gViConfigMode = osViModeFpalLan1; gViConfigYScale = 0.833f; break; -#endif } +#elif !OOT_PAL_N64 + // 60 Hz only (GameCube and NTSC N64) + switch (osTvType) { + case OS_TV_PAL: + case OS_TV_NTSC: + gViConfigModeType = OS_VI_NTSC_LAN1; + gViConfigMode = osViModeNtscLan1; + break; + + case OS_TV_MPAL: + gViConfigModeType = OS_VI_MPAL_LAN1; + gViConfigMode = osViModeMpalLan1; + break; + } +#else + // 50 Hz only (PAL N64) + switch (osTvType) { + case OS_TV_NTSC: + case OS_TV_MPAL: + case OS_TV_PAL: + gViConfigModeType = OS_VI_FPAL_LAN1; + gViConfigMode = osViModeFpalLan1; + gViConfigYScale = 0.833f; + break; + } +#endif D_80009430 = 1; osViSetMode(&gViConfigMode); From cc0b1bb127d932389b56f49362b572f636013741 Mon Sep 17 00:00:00 2001 From: fig02 Date: Tue, 17 Sep 2024 08:21:47 -0400 Subject: [PATCH 86/86] `PLAYER_STATE1_DEAD` (#2204) * PLAYER_STATE1_DEAD * change comment * format --- include/z64player.h | 2 +- src/code/z_actor.c | 25 ++++++++++--------- src/code/z_player_lib.c | 4 +-- .../actors/ovl_Arms_Hook/z_arms_hook.c | 2 +- .../ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c | 2 +- .../ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c | 2 +- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 4 +-- .../actors/ovl_Door_Shutter/z_door_shutter.c | 2 +- .../actors/ovl_En_Goroiwa/z_en_goroiwa.c | 2 +- .../actors/ovl_En_Nutsball/z_en_nutsball.c | 2 +- src/overlays/actors/ovl_En_Okuta/z_en_okuta.c | 2 +- src/overlays/actors/ovl_En_Rd/z_en_rd.c | 4 +-- .../actors/ovl_player_actor/z_player.c | 18 ++++++------- 13 files changed, 36 insertions(+), 35 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index dfea5da668..7591e632ac 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -655,7 +655,7 @@ typedef struct WeaponInfo { #define PLAYER_STATE1_HOSTILE_LOCK_ON (1 << 4) // Currently locked onto a hostile actor. Triggers a "battle" variant of many actions. #define PLAYER_STATE1_5 (1 << 5) #define PLAYER_STATE1_6 (1 << 6) -#define PLAYER_STATE1_7 (1 << 7) +#define PLAYER_STATE1_DEAD (1 << 7) // Player has died. Note that this gets set when the death cutscene has started, after landing from the air. #define PLAYER_STATE1_START_CHANGING_HELD_ITEM (1 << 8) // Item change process has begun #define PLAYER_STATE1_9 (1 << 9) #define PLAYER_STATE1_10 (1 << 10) diff --git a/src/code/z_actor.c b/src/code/z_actor.c index e3e1d3479d..e64b9345b8 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1143,7 +1143,8 @@ void Actor_MountHorse(PlayState* play, Player* player, Actor* horse) { } int func_8002DEEC(Player* player) { - return (player->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || (player->csAction != PLAYER_CSACTION_NONE); + return (player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_29)) || + (player->csAction != PLAYER_CSACTION_NONE); } void func_8002DF18(PlayState* play, Player* player) { @@ -1808,7 +1809,7 @@ s32 Actor_OfferGetItem(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange Player* player = GET_PLAYER(play); if (!(player->stateFlags1 & - (PLAYER_STATE1_7 | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_13 | PLAYER_STATE1_14 | + (PLAYER_STATE1_DEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_20 | PLAYER_STATE1_21)) && Player_GetExplosiveHeld(player) < 0) { if ((((player->heldActor != NULL) || (actor == player->talkActor)) && (getItemId > GI_NONE) && @@ -1882,7 +1883,7 @@ u32 Actor_SetRideActor(PlayState* play, Actor* horse, s32 mountSide) { Player* player = GET_PLAYER(play); if (!(player->stateFlags1 & - (PLAYER_STATE1_7 | PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_13 | + (PLAYER_STATE1_DEAD | PLAYER_STATE1_ACTOR_CARRY | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_20 | PLAYER_STATE1_21))) { player->rideActor = horse; player->mountSide = mountSide; @@ -2257,29 +2258,29 @@ void Actor_InitContext(PlayState* play, ActorContext* actorCtx, ActorEntry* play u32 sCategoryFreezeMasks[ACTORCAT_MAX] = { // ACTORCAT_SWITCH - PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_28, + PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_28, // ACTORCAT_BG - PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_28, + PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_28, // ACTORCAT_PLAYER 0, // ACTORCAT_EXPLOSIVE - PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_10 | PLAYER_STATE1_28, + PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_10 | PLAYER_STATE1_28, // ACTORCAT_NPC - PLAYER_STATE1_7, + PLAYER_STATE1_DEAD, // ACTORCAT_ENEMY - PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_28 | PLAYER_STATE1_29, + PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_28 | PLAYER_STATE1_29, // ACTORCAT_PROP - PLAYER_STATE1_7 | PLAYER_STATE1_28, + PLAYER_STATE1_DEAD | PLAYER_STATE1_28, // ACTORCAT_ITEMACTION 0, // ACTORCAT_MISC - PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_28 | PLAYER_STATE1_29, + PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_28 | PLAYER_STATE1_29, // ACTORCAT_BOSS - PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_10 | PLAYER_STATE1_28, + PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_10 | PLAYER_STATE1_28, // ACTORCAT_DOOR 0, // ACTORCAT_CHEST - PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_28, + PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_28, }; void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index e6d11311f4..84236ef123 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -490,7 +490,7 @@ void Player_SetBootData(PlayState* play, Player* this) { } int Player_InBlockingCsMode(PlayState* play, Player* this) { - return (this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || (this->csAction != PLAYER_CSACTION_NONE) || + return (this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_29)) || (this->csAction != PLAYER_CSACTION_NONE) || (play->transitionTrigger == TRANS_TRIGGER_START) || (this->stateFlags1 & PLAYER_STATE1_0) || (this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT) || ((gSaveContext.magicState != MAGIC_STATE_IDLE) && (Player_ActionToMagicSpell(this, this->itemAction) >= 0)); @@ -1048,7 +1048,7 @@ void func_8008F87C(PlayState* play, Player* this, SkelAnime* skelAnime, Vec3f* p s16 temp2; s32 temp3; - if ((this->actor.scale.y >= 0.0f) && !(this->stateFlags1 & PLAYER_STATE1_7) && + if ((this->actor.scale.y >= 0.0f) && !(this->stateFlags1 & PLAYER_STATE1_DEAD) && (Player_ActionToMagicSpell(this, this->itemAction) < 0)) { s32 pad; diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index 1872e211c9..63f929d43e 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -121,7 +121,7 @@ s32 ArmsHook_CheckForCancel(ArmsHook* this) { if (Player_HoldsHookshot(player)) { if ((player->itemAction != player->heldItemAction) || (player->actor.flags & ACTOR_FLAG_TALK) || - ((player->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_26)))) { + ((player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_26)))) { this->timer = 0; ArmsHook_DetachHookFromActor(this); Math_Vec3f_Copy(&this->actor.world.pos, &player->unk_3C8); diff --git a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c index ec78726b04..3ac31d0c5c 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c +++ b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c @@ -289,7 +289,7 @@ void BgHakaSgami_Update(Actor* thisx, PlayState* play) { BgHakaSgami* this = (BgHakaSgami*)thisx; Player* player = GET_PLAYER(play); - if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_28 | PLAYER_STATE1_29)) || + if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_28 | PLAYER_STATE1_29)) || (this->actionFunc == BgHakaSgami_SetupSpin)) { this->actionFunc(this, play); } diff --git a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c index 0eacd23e70..31545fe1ce 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c @@ -200,7 +200,7 @@ void BgJyaGoroiwa_Update(Actor* thisx, PlayState* play) { s32 bgId; Vec3f checkPos; - if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_28 | PLAYER_STATE1_29))) { + if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_28 | PLAYER_STATE1_29))) { this->actionFunc(this, play); BgJyaGoroiwa_UpdateRotation(this); checkPos.x = this->actor.world.pos.x; diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index d4fab125f9..07b74f7ddb 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -661,7 +661,7 @@ void BossSst_HeadNeutral(BossSst* this, PlayState* play) { Player* player = GET_PLAYER(play); if ((player->actor.world.pos.y > -50.0f) && - !(player->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_13 | PLAYER_STATE1_14))) { + !(player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_13 | PLAYER_STATE1_14))) { sHands[Rand_ZeroOne() <= 0.5f]->ready = true; BossSst_HeadSetupWait(this); } else { @@ -1250,7 +1250,7 @@ void BossSst_HandWait(BossSst* this, PlayState* play) { } if ((this->timer == 0) && (player->actor.world.pos.y > -50.0f) && - !(player->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_13 | PLAYER_STATE1_14))) { + !(player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_13 | PLAYER_STATE1_14))) { BossSst_HandSelectAttack(this); } } else if (sHead->actionFunc == BossSst_HeadNeutral) { diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c index 6b76670eea..ecdf5ef649 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -906,7 +906,7 @@ void DoorShutter_Update(Actor* thisx, PlayState* play) { DoorShutter* this = (DoorShutter*)thisx; Player* player = GET_PLAYER(play); - if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_10 | PLAYER_STATE1_28)) || + if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_10 | PLAYER_STATE1_28)) || (this->actionFunc == DoorShutter_WaitForObject)) { this->actionFunc(this, play); } diff --git a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c index 3439d0f717..650c346bfe 100644 --- a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c +++ b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c @@ -739,7 +739,7 @@ void EnGoroiwa_Update(Actor* thisx, PlayState* play) { s32 pad; s32 bgId; - if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_28 | PLAYER_STATE1_29))) { + if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_28 | PLAYER_STATE1_29))) { if (this->collisionDisabledTimer > 0) { this->collisionDisabledTimer--; } diff --git a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c index 51f3bbdd43..5a89a5e2b3 100644 --- a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c +++ b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c @@ -147,7 +147,7 @@ void EnNutsball_Update(Actor* thisx, PlayState* play) { Player* player = GET_PLAYER(play); s32 pad; - if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_28 | PLAYER_STATE1_29)) || + if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_28 | PLAYER_STATE1_29)) || (this->actionFunc == func_80ABBB34)) { this->actionFunc(this, play); diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index d8cdb2cfbc..04450335d0 100644 --- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -578,7 +578,7 @@ void EnOkuta_Update(Actor* thisx, PlayState* play2) { Vec3f prevPos; s32 canRestorePrevPos; - if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_7 | PLAYER_STATE1_28 | PLAYER_STATE1_29))) { + if (!(player->stateFlags1 & (PLAYER_STATE1_6 | PLAYER_STATE1_DEAD | PLAYER_STATE1_28 | PLAYER_STATE1_29))) { if (this->actor.params == 0) { EnOkuta_ColliderCheck(this, play); if (!WaterBox_GetSurfaceImpl(play, &play->colCtx, this->actor.world.pos.x, this->actor.world.pos.z, diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index 96ea4ea33b..a6592d3c95 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -355,7 +355,7 @@ void EnRd_WalkToPlayer(EnRd* this, PlayState* play) { } if ((ABS(yaw) < 0x1554) && (Actor_WorldDistXYZToActor(&this->actor, &player->actor) <= 150.0f)) { - if (!(player->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_18 | + if (!(player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_21)) && !(player->stateFlags2 & PLAYER_STATE2_7)) { if (this->playerStunWaitTimer == 0) { @@ -430,7 +430,7 @@ void EnRd_WalkToHome(EnRd* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; SkelAnime_Update(&this->skelAnime); - if (!(player->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_18 | + if (!(player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_21)) && !(player->stateFlags2 & PLAYER_STATE2_7) && (Actor_WorldDistXYZToPoint(&player->actor, &this->actor.home.pos) < 150.0f)) { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 583f42cd41..cad6d8a8b4 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3394,7 +3394,7 @@ void func_80836448(PlayState* play, Player* this, LinkAnimationHeader* anim) { Player_SetupAction(play, this, cond ? Player_Action_8084E368 : Player_Action_80843CEC, 0); - this->stateFlags1 |= PLAYER_STATE1_7; + this->stateFlags1 |= PLAYER_STATE1_DEAD; Player_AnimPlayOnce(play, this, anim); if (anim == &gPlayerAnim_link_derth_rebirth) { @@ -3607,7 +3607,7 @@ void func_80836BEC(Player* this, PlayState* play) { } if ((play->csCtx.state != CS_STATE_IDLE) || (this->csAction != PLAYER_CSACTION_NONE) || - (this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || + (this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_29)) || (this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT)) { // Don't allow Z-Targeting in various states this->zTargetActiveTimer = 0; @@ -3984,7 +3984,7 @@ static s32 (*sActionChangeFuncs[])(Player* this, PlayState* play) = { s32 Player_TryActionChangeList(PlayState* play, Player* this, s8* actionChangeList, s32 updateUpperBody) { s32 i; - if (!(this->stateFlags1 & (PLAYER_STATE1_0 | PLAYER_STATE1_7 | PLAYER_STATE1_29))) { + if (!(this->stateFlags1 & (PLAYER_STATE1_0 | PLAYER_STATE1_DEAD | PLAYER_STATE1_29))) { if (updateUpperBody) { sUpperBodyIsBusy = Player_UpdateUpperBody(this, play); @@ -4858,7 +4858,7 @@ s32 Player_HandleExitsAndVoids(PlayState* play, Player* this, CollisionPoly* pol if (this->actor.category == ACTORCAT_PLAYER) { exitIndex = 0; - if (!(this->stateFlags1 & PLAYER_STATE1_7) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && + if (!(this->stateFlags1 & PLAYER_STATE1_DEAD) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && (this->csAction == PLAYER_CSACTION_NONE) && !(this->stateFlags1 & PLAYER_STATE1_0) && (((poly != NULL) && (exitIndex = SurfaceType_GetExitIndex(&play->colCtx, poly, bgId), exitIndex != 0)) || (func_8083816C(sFloorType) && (this->floorProperty == FLOOR_PROPERTY_12)))) { @@ -8936,7 +8936,7 @@ void func_80843AE8(PlayState* play, Player* this) { this->av2.actionVar2 = -1; } } else if (gSaveContext.healthAccumulator == 0) { - this->stateFlags1 &= ~PLAYER_STATE1_7; + this->stateFlags1 &= ~PLAYER_STATE1_DEAD; if (this->stateFlags1 & PLAYER_STATE1_27) { func_80838F18(play, this); } else { @@ -11517,11 +11517,11 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { Collider_UpdateCylinder(&this->actor, &this->cylinder); if (!(this->stateFlags2 & PLAYER_STATE2_14)) { - if (!(this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_23))) { + if (!(this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_23))) { CollisionCheck_SetOC(play, &play->colChkCtx, &this->cylinder.base); } - if (!(this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_26)) && (this->invincibilityTimer <= 0)) { + if (!(this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_26)) && (this->invincibilityTimer <= 0)) { CollisionCheck_SetAC(play, &play->colChkCtx, &this->cylinder.base); if (this->invincibilityTimer < 0) { @@ -11538,7 +11538,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { Math_Vec3f_Copy(&this->actor.home.pos, &this->actor.world.pos); Math_Vec3f_Copy(&this->unk_A88, &this->bodyPartsPos[PLAYER_BODYPART_WAIST]); - if (this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_28 | PLAYER_STATE1_29)) { + if (this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_28 | PLAYER_STATE1_29)) { this->actor.colChkInfo.mass = MASS_IMMOVABLE; } else { this->actor.colChkInfo.mass = 50; @@ -11897,7 +11897,7 @@ void func_8084B000(Player* this) { } phi_f18 = -0.1f - phi_f16; } else { - if (!(this->stateFlags1 & PLAYER_STATE1_7) && (this->currentBoots == PLAYER_BOOTS_IRON) && + if (!(this->stateFlags1 & PLAYER_STATE1_DEAD) && (this->currentBoots == PLAYER_BOOTS_IRON) && (this->actor.velocity.y >= -3.0f)) { phi_f18 = -0.2f; } else {