mirror of
https://github.com/zeldaret/oot
synced 2026-08-16 13:17:04 -04:00
merge
This commit is contained in:
@@ -16,12 +16,6 @@
|
||||
|
||||
#define CMD_W(a) (a)
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define CMD_F(a) {.f = (a)}
|
||||
#else
|
||||
#define CMD_F(a) {(a)}
|
||||
#endif
|
||||
|
||||
#define CMD_PTR(a) (u32)(a)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
#ifndef FAULT_H
|
||||
#define FAULT_H
|
||||
|
||||
#include "padmgr.h"
|
||||
|
||||
// These are the same as the 3-bit ansi color codes
|
||||
#define FAULT_COLOR_BLACK 0
|
||||
#define FAULT_COLOR_RED 1
|
||||
#define FAULT_COLOR_GREEN 2
|
||||
#define FAULT_COLOR_YELLOW 3
|
||||
#define FAULT_COLOR_BLUE 4
|
||||
#define FAULT_COLOR_MAGENTA 5
|
||||
#define FAULT_COLOR_CYAN 6
|
||||
#define FAULT_COLOR_WHITE 7
|
||||
// Additional color codes
|
||||
#define FAULT_COLOR_DARK_GRAY 8
|
||||
#define FAULT_COLOR_LIGHT_GRAY 9
|
||||
|
||||
#define FAULT_COLOR_STRINGIFY(s) #s
|
||||
#define FAULT_COLOR_EXPAND_AND_STRINGIFY(s) FAULT_COLOR_STRINGIFY(s)
|
||||
|
||||
#define FAULT_ESC '\x1A'
|
||||
#define FAULT_COLOR(n) "\x1A" FAULT_COLOR_EXPAND_AND_STRINGIFY(FAULT_COLOR_ ## n)
|
||||
|
||||
typedef struct FaultClient {
|
||||
/* 0x00 */ struct FaultClient* next;
|
||||
/* 0x04 */ void* callback;
|
||||
/* 0x08 */ void* arg0;
|
||||
/* 0x0C */ void* arg1;
|
||||
} FaultClient; // size = 0x10
|
||||
|
||||
typedef struct FaultAddrConvClient {
|
||||
/* 0x00 */ struct FaultAddrConvClient* next;
|
||||
/* 0x04 */ void* callback;
|
||||
/* 0x08 */ void* arg;
|
||||
} FaultAddrConvClient; // size = 0xC
|
||||
|
||||
// Initialization
|
||||
|
||||
void Fault_Init(void);
|
||||
|
||||
// Fatal Errors
|
||||
|
||||
void Fault_AddHungupAndCrashImpl(const char* exp1, const char* exp2);
|
||||
void Fault_AddHungupAndCrash(const char* file, s32 line);
|
||||
|
||||
// Client Registration
|
||||
|
||||
void Fault_AddClient(FaultClient* client, void* callback, void* arg0, void* arg1);
|
||||
void Fault_RemoveClient(FaultClient* client);
|
||||
|
||||
void Fault_AddAddrConvClient(FaultAddrConvClient* client, void* callback, void* arg);
|
||||
void Fault_RemoveAddrConvClient(FaultAddrConvClient* client);
|
||||
|
||||
// For use in Fault Client callbacks
|
||||
|
||||
void Fault_WaitForInput(void);
|
||||
void Fault_FillScreenBlack(void);
|
||||
void Fault_SetFrameBuffer(void* fb, u16 w, u16 h);
|
||||
|
||||
void FaultDrawer_SetForeColor(u16 color);
|
||||
void FaultDrawer_SetBackColor(u16 color);
|
||||
void FaultDrawer_SetFontColor(u16 color);
|
||||
void FaultDrawer_SetCharPad(s8 padW, s8 padH);
|
||||
void FaultDrawer_SetCursor(s32 x, s32 y);
|
||||
s32 FaultDrawer_VPrintf(const char* fmt, va_list args);
|
||||
s32 FaultDrawer_Printf(const char* fmt, ...);
|
||||
void FaultDrawer_DrawText(s32 x, s32 y, const char* fmt, ...);
|
||||
|
||||
typedef struct FaultMgr {
|
||||
/* 0x000 */ OSThread thread;
|
||||
/* 0x1B0 */ u8 unk_1B0[0x600];
|
||||
/* 0x7B0 */ OSMesgQueue queue;
|
||||
/* 0x7C8 */ OSMesg msg;
|
||||
/* 0x7CC */ u8 exit;
|
||||
/* 0x7CD */ u8 msgId;
|
||||
/* 0x7CE */ u8 faultHandlerEnabled;
|
||||
/* 0x7CF */ u8 autoScroll;
|
||||
/* 0x7D0 */ OSThread* faultedThread;
|
||||
/* 0x7D4 */ void (*padCallback)(Input*);
|
||||
/* 0x7D8 */ FaultClient* clients;
|
||||
/* 0x7DC */ FaultAddrConvClient* addrConvClients;
|
||||
/* 0x7E0 */ u8 unk_7E0[4];
|
||||
/* 0x7E4 */ Input padInput;
|
||||
/* 0x7FC */ u16 colors[36];
|
||||
/* 0x844 */ void* fb;
|
||||
/* 0x848 */ void* clientThreadSp;
|
||||
} FaultMgr; // size = 0x850
|
||||
|
||||
extern FaultMgr gFaultMgr;
|
||||
|
||||
#endif
|
||||
+47
-111
@@ -354,7 +354,7 @@ void ActorShadow_DrawHorse(Actor* actor, Lights* lights, GlobalContext* globalCt
|
||||
void ActorShadow_DrawFeet(Actor* actor, Lights* lights, GlobalContext* globalCtx);
|
||||
void Actor_SetFeetPos(Actor* actor, s32 limbIndex, s32 leftFootIndex, Vec3f* leftFootPos, s32 rightFootIndex,
|
||||
Vec3f* rightFootPos);
|
||||
void func_8002BE04(GlobalContext* globalCtx, Vec3f* arg1, Vec3f* arg2, f32* arg3);
|
||||
void Actor_ProjectPos(GlobalContext* globalCtx, Vec3f* src, Vec3f* xyzDest, f32* cappedInvWDest);
|
||||
void func_8002C124(TargetContext* targetCtx, GlobalContext* globalCtx);
|
||||
s32 Flags_GetSwitch(GlobalContext* globalCtx, s32 flag);
|
||||
void Flags_SetSwitch(GlobalContext* globalCtx, s32 flag);
|
||||
@@ -376,7 +376,7 @@ void TitleCard_InitBossName(GlobalContext* globalCtx, TitleCardContext* titleCtx
|
||||
u8 height);
|
||||
void TitleCard_InitPlaceName(GlobalContext* globalCtx, TitleCardContext* titleCtx, void* texture, s32 x, s32 y,
|
||||
s32 width, s32 height, s32 delay);
|
||||
s32 func_8002D53C(GlobalContext* globalCtx, TitleCardContext* titleCtx);
|
||||
s32 TitleCard_Clear(GlobalContext* globalCtx, TitleCardContext* titleCtx);
|
||||
void Actor_Kill(Actor* actor);
|
||||
void Actor_SetFocus(Actor* actor, f32 offset);
|
||||
void Actor_SetScale(Actor* actor, f32 scale);
|
||||
@@ -460,7 +460,7 @@ void func_8002F948(Actor* actor, u16 sfxId);
|
||||
void func_8002F974(Actor* actor, u16 sfxId);
|
||||
void func_8002F994(Actor* actor, s32 arg1);
|
||||
s32 func_8002F9EC(GlobalContext* globalCtx, Actor* actor, CollisionPoly* poly, s32 bgId, Vec3f* pos);
|
||||
void func_800304B0(GlobalContext* globalCtx);
|
||||
void Actor_DisableLens(GlobalContext* globalCtx);
|
||||
void func_800304DC(GlobalContext* globalCtx, ActorContext* actorCtx, ActorEntry* actorEntry);
|
||||
void Actor_UpdateAll(GlobalContext* globalCtx, ActorContext* actorCtx);
|
||||
s32 func_800314D4(GlobalContext* globalCtx, Actor* actorB, Vec3f* arg2, f32 arg3);
|
||||
@@ -485,7 +485,8 @@ void BodyBreak_SetInfo(BodyBreak* bodyBreak, s32 limbIndex, s32 minLimbIndex, s3
|
||||
s32 BodyBreak_SpawnParts(Actor* actor, BodyBreak* bodyBreak, GlobalContext* globalCtx, s16 type);
|
||||
void Actor_SpawnFloorDustRing(GlobalContext* globalCtx, Actor* actor, Vec3f* posXZ, f32 radius, s32 amountMinusOne,
|
||||
f32 randAccelWeight, s16 scale, s16 scaleStep, u8 useLighting);
|
||||
void func_80033480(GlobalContext* globalCtx, Vec3f* arg1, f32 arg2, s32 arg3, s16 arg4, s16 arg5, u8 arg6);
|
||||
void func_80033480(GlobalContext* globalCtx, Vec3f* posBase, f32 randRangeDiameter, s32 amountMinusOne, s16 scaleBase,
|
||||
s16 scaleStep, u8 arg6);
|
||||
Actor* Actor_GetCollidedExplosive(GlobalContext* globalCtx, Collider* collider);
|
||||
Actor* func_80033684(GlobalContext* globalCtx, Actor* explosiveActor);
|
||||
Actor* Actor_GetProjectileActor(GlobalContext* globalCtx, Actor* refActor, f32 radius);
|
||||
@@ -506,8 +507,8 @@ void func_8003424C(GlobalContext* globalCtx, Vec3f* arg1);
|
||||
void Actor_SetColorFilter(Actor* actor, s16 colorFlag, s16 colorIntensityMax, s16 xluFlag, s16 duration);
|
||||
Hilite* func_800342EC(Vec3f* object, GlobalContext* globalCtx);
|
||||
Hilite* func_8003435C(Vec3f* object, GlobalContext* globalCtx);
|
||||
s32 func_800343CC(GlobalContext* globalCtx, Actor* actor, s16* arg2, f32 interactRange, u16 (*unkFunc1)(GlobalContext*, Actor*),
|
||||
s16 (*unkFunc2)(GlobalContext*, Actor*));
|
||||
s32 func_800343CC(GlobalContext* globalCtx, Actor* actor, s16* arg2, f32 interactRange,
|
||||
u16 (*unkFunc1)(GlobalContext*, Actor*), s16 (*unkFunc2)(GlobalContext*, Actor*));
|
||||
s16 func_800347E8(s16 arg0);
|
||||
void func_80034A14(Actor* actor, struct_80034A14_arg1* arg1, s16 arg2, s16 arg3);
|
||||
void func_80034BA0(GlobalContext* globalCtx, SkelAnime* skelAnime, OverrideLimbDraw overrideLimbDraw,
|
||||
@@ -515,7 +516,7 @@ void func_80034BA0(GlobalContext* globalCtx, SkelAnime* skelAnime, OverrideLimbD
|
||||
void func_80034CC4(GlobalContext* globalCtx, SkelAnime* skelAnime, OverrideLimbDraw overrideLimbDraw,
|
||||
PostLimbDraw postLimbDraw, Actor* actor, s16 alpha);
|
||||
s16 func_80034DD4(Actor* actor, GlobalContext* globalCtx, s16 arg2, f32 arg3);
|
||||
void func_80034EC0(SkelAnime* skelAnime, struct_80034EC0_Entry* animations, s32 index);
|
||||
void Animation_ChangeByInfo(SkelAnime* skelAnime, AnimationInfo* animationInfo, s32 index);
|
||||
void func_80034F54(GlobalContext* globalCtx, s16* arg1, s16* arg2, s32 arg3);
|
||||
void Actor_Noop(Actor* actor, GlobalContext* globalCtx);
|
||||
void Gfx_DrawDListOpa(GlobalContext* globalCtx, Gfx* dlist);
|
||||
@@ -835,9 +836,9 @@ void Cutscene_HandleConditionalTriggers(GlobalContext* globalCtx);
|
||||
void Cutscene_SetSegment(GlobalContext* globalCtx, void* segment);
|
||||
void* MemCopy(void* dest, void* src, s32 size);
|
||||
void GetItem_Draw(GlobalContext* globalCtx, s16 drawId);
|
||||
void func_8006BA00(GlobalContext* globalCtx);
|
||||
void func_8006BA30(GlobalContext* globalCtx);
|
||||
void Audio_PlaySoundAtPosition(GlobalContext* globalCtx, Vec3f* pos, s32 duration, u16 sfxId);
|
||||
void SoundSource_InitAll(GlobalContext* globalCtx);
|
||||
void SoundSource_UpdateAll(GlobalContext* globalCtx);
|
||||
void SoundSource_PlaySfxAtFixedWorldPos(GlobalContext* globalCtx, Vec3f* pos, s32 duration, u16 sfxId);
|
||||
u16 ElfMessage_GetSariaText(GlobalContext* globalCtx);
|
||||
u16 ElfMessage_GetCUpText(GlobalContext* globalCtx);
|
||||
u16 Text_GetFaceReaction(GlobalContext* globalCtx, u32 reactionSet);
|
||||
@@ -895,7 +896,7 @@ void Environment_DrawSkyboxFilters(GlobalContext* globalCtx);
|
||||
void Environment_UpdateLightningStrike(GlobalContext* globalCtx);
|
||||
void Environment_AddLightningBolts(GlobalContext* globalCtx, u8 num);
|
||||
void Environment_DrawLightning(GlobalContext* globalCtx, s32 unused);
|
||||
void func_800758AC(GlobalContext* globalCtx);
|
||||
void Environment_PlaySceneSequence(GlobalContext* globalCtx);
|
||||
void Environment_DrawCustomLensFlare(GlobalContext* globalCtx);
|
||||
void Environment_InitGameOverLights(GlobalContext* globalCtx);
|
||||
void Environment_FadeInGameOverLights(GlobalContext* globalCtx);
|
||||
@@ -906,10 +907,10 @@ void Environment_AdjustLights(GlobalContext* globalCtx, f32 arg1, f32 arg2, f32
|
||||
s32 Environment_GetBgsDayCount(void);
|
||||
void Environment_ClearBgsDayCount(void);
|
||||
s32 Environment_GetTotalDays(void);
|
||||
void Environment_ForcePlaySequence(u16);
|
||||
void Environment_ForcePlaySequence(u16 seqId);
|
||||
s32 Environment_IsForcedSequenceDisabled(void);
|
||||
void func_80077624(GlobalContext* globalCtx);
|
||||
void func_80077684(GlobalContext* globalCtx);
|
||||
void Environment_PlayStormNatureAmbience(GlobalContext* globalCtx);
|
||||
void Environment_StopStormNatureAmbience(GlobalContext* globalCtx);
|
||||
void Environment_WarpSongLeave(GlobalContext* globalCtx);
|
||||
void Lib_MemSet(u8* dest, size_t size, u8 val);
|
||||
f32 Math_CosS(s16 angle);
|
||||
@@ -949,7 +950,7 @@ void func_80078914(Vec3f* arg0, u16 sfxId);
|
||||
void HealthMeter_Init(GlobalContext* globalCtx);
|
||||
void HealthMeter_Update(GlobalContext* globalCtx);
|
||||
void HealthMeter_Draw(GlobalContext* globalCtx);
|
||||
void HealthMeter_HandleCriticalAlarm(GlobalContext* globalCtx);
|
||||
void HealthMeter_UpdateBeatingHeart(GlobalContext* globalCtx);
|
||||
u32 HealthMeter_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);
|
||||
@@ -1177,7 +1178,7 @@ Gfx* Gfx_EnvColor(GraphicsContext* gfxCtx, s32 r, s32 g, s32 b, s32 a);
|
||||
void func_80095248(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b);
|
||||
void func_80095974(GraphicsContext* gfxCtx);
|
||||
void func_80095AA0(GlobalContext* globalCtx, Room* room, Input* arg2, UNK_TYPE arg3);
|
||||
void func_8009638C(Gfx** displayList, u32 source, u32 tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 mode0,
|
||||
void func_8009638C(Gfx** displayList, void* source, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 mode0,
|
||||
u16 tlutCount, f32 frameX, f32 frameY);
|
||||
void func_80096FD4(GlobalContext* globalCtx, Room* room);
|
||||
u32 func_80096FE8(GlobalContext* globalCtx, RoomContext* roomCtx);
|
||||
@@ -1283,24 +1284,19 @@ void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* pos, s16 angle);
|
||||
s32 Animation_OnFrame(SkelAnime* skelAnime, f32 frame);
|
||||
void SkelAnime_Free(SkelAnime* skelAnime, GlobalContext* globalCtx);
|
||||
void SkelAnime_CopyFrameTable(SkelAnime* skelAnime, Vec3s* dst, Vec3s* src);
|
||||
void func_800A57C0(MtxF* mtx, Struct_800A57C0* arg1, Struct_800A598C* arg2, Vtx* arg3, Vec3f* arg4);
|
||||
void func_800A598C(GraphicsContext* gfxCtx, PSkinAwb* skin, s32 limbIndex, s32 arg3);
|
||||
void func_800A5E28(GraphicsContext* gfxCtx, PSkinAwb* skin, s32 limbIndex, s32 arg3, s32 arg4);
|
||||
void func_800A5F60(GraphicsContext* gfxCtx, PSkinAwb* skin, s32 limbIndex, Gfx* arg3, s32 arg4);
|
||||
void func_800A60D8(Actor* actor, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, SkinCallback2 arg4,
|
||||
s32 arg5, s32 arg6, s32 arg7);
|
||||
void func_800A6330(Actor* actor, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, s32 arg4);
|
||||
void func_800A6360(Actor* this, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, SkinCallback2 arg4,
|
||||
s32 arg5);
|
||||
void func_800A63CC(Actor* actor, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, SkinCallback2 arg4,
|
||||
s32 arg5, s32 arg6, s32 arg7);
|
||||
void func_800A6408(PSkinAwb* skin, s32 joint, Vec3f* arg2, Vec3f* arg3);
|
||||
void func_800A6460(GlobalContext* globalCtx, PSkinAwb* skin, s32 arg2);
|
||||
void func_800A663C(GlobalContext* globalCtx, PSkinAwb* skin, SkeletonHeader* skeletonHeader,
|
||||
AnimationHeader* animationHeader);
|
||||
void func_800A6888(GlobalContext* globalCtx, PSkinAwb* skin);
|
||||
s32 func_800A698C(PSkinAwb* skin, SkinLimb** limbs, MtxF* arg2, u8 arg3, u8 arg4);
|
||||
s32 func_800A6AC4(PSkinAwb* skin, MtxF* arg1, Actor* actor, s32 arg3);
|
||||
|
||||
void Skin_UpdateVertices(MtxF* mtx, SkinVertex* skinVertices, SkinLimbModif* modifEntry, Vtx* vtxBuf, Vec3f* pos);
|
||||
void Skin_DrawAnimatedLimb(GraphicsContext* gfxCtx, Skin* skin, s32 limbIndex, s32 arg3, s32 drawFlags);
|
||||
void Skin_DrawLimb(GraphicsContext* gfxCtx, Skin* skin, s32 limbIndex, Gfx* dlistOverride, s32 drawFlags);
|
||||
void func_800A6330(Actor* actor, GlobalContext* globalCtx, Skin* skin, SkinPostDraw postDraw, s32 setTranslation);
|
||||
void func_800A6360(Actor* actor, GlobalContext* globalCtx, Skin* skin, SkinPostDraw postDraw, SkinOverrideLimbDraw overrideLimbDraw, s32 setTranslation);
|
||||
void func_800A6394(Actor* actor, GlobalContext* globalCtx, Skin* skin, SkinPostDraw postDraw, SkinOverrideLimbDraw overrideLimbDraw, s32 setTranslation, s32 arg6);
|
||||
void func_800A63CC(Actor* actor, GlobalContext* globalCtx, Skin* skin, SkinPostDraw postDraw, SkinOverrideLimbDraw overrideLimbDraw, s32 setTranslation, s32 arg6, s32 drawFlags);
|
||||
void Skin_GetLimbPos(Skin* skin, s32 limbIndex, Vec3f* arg2, Vec3f* dst);
|
||||
void Skin_Init(GlobalContext* globalCtx, Skin* skin, SkeletonHeader* skeletonHeader, AnimationHeader* animationHeader);
|
||||
void Skin_Free(GlobalContext* globalCtx, Skin* skin);
|
||||
s32 Skin_ApplyAnimTransformations(Skin* skin, MtxF* mf, Actor* actor, s32 setTranslation);
|
||||
|
||||
void SkinMatrix_Vec3fMtxFMultXYZW(MtxF* mf, Vec3f* src, Vec3f* xyzDest, f32* wDest);
|
||||
void SkinMatrix_Vec3fMtxFMultXYZ(MtxF* mf, Vec3f* src, Vec3f* dest);
|
||||
void SkinMatrix_MtxFMtxFMult(MtxF* mfA, MtxF* mfB, MtxF* dest);
|
||||
@@ -1315,7 +1311,7 @@ void SkinMatrix_SetTranslateRotateYXZScale(MtxF* dest, f32 scaleX, f32 scaleY, f
|
||||
void SkinMatrix_SetTranslateRotateZYX(MtxF* dest, s16 rotX, s16 rotY, s16 rotZ, f32 translateX, f32 translateY,
|
||||
f32 translateZ);
|
||||
Mtx* SkinMatrix_MtxFToNewMtx(GraphicsContext* gfxCtx, MtxF* src);
|
||||
void func_800A7EC0(MtxF* mf, s16 a, f32 x, f32 y, f32 z);
|
||||
void SkinMatrix_SetRotateAxis(MtxF* mf, s16 angle, f32 axisX, f32 axisY, f32 axisZ);
|
||||
void Sram_InitNewSave(void);
|
||||
void Sram_InitDebugSave(void);
|
||||
void Sram_OpenSave(SramContext* sramCtx);
|
||||
@@ -1765,7 +1761,7 @@ 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 func_800D1694(f32 x, f32 y, f32 z, Vec3s* vec);
|
||||
void Matrix_SetTranslateRotateYXZ(f32 translateX, f32 translateY, f32 translateZ, Vec3s* rot);
|
||||
Mtx* Matrix_MtxFToMtx(MtxF* src, Mtx* dest);
|
||||
Mtx* Matrix_ToMtx(Mtx* dest, char* file, s32 line);
|
||||
Mtx* Matrix_NewMtx(GraphicsContext* gfxCtx, char* file, s32 line);
|
||||
@@ -1775,12 +1771,13 @@ 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 func_800D1FD4(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 f, Vec3f* vec, u8 mode);
|
||||
void Matrix_RotateAxis(f32 angle, Vec3f* axis, u8 mode);
|
||||
MtxF* Matrix_CheckFloats(MtxF* mf, char* file, s32 line);
|
||||
void func_800D2CEC(Mtx* mtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6);
|
||||
void Matrix_SetTranslateScaleMtx2(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32 translateX, f32 translateY,
|
||||
f32 translateZ);
|
||||
u32 SysUcode_GetUCodeBoot(void);
|
||||
u32 SysUcode_GetUCodeBootSize(void);
|
||||
u32 SysUcode_GetUCode(void);
|
||||
@@ -1819,66 +1816,6 @@ void DebugArena_Check(void);
|
||||
void DebugArena_Init(void* start, u32 size);
|
||||
void DebugArena_Cleanup(void);
|
||||
u8 DebugArena_IsInitalized(void);
|
||||
void Fault_SleepImpl(u32);
|
||||
void Fault_ClientProcessThread(void* arg);
|
||||
void Fault_ProcessClientContext(FaultClientContext*);
|
||||
u32 Fault_ProcessClient(u32, u32, u32);
|
||||
void Fault_AddClient(FaultClient*, void*, void*, void*);
|
||||
void Fault_RemoveClient(FaultClient*);
|
||||
void Fault_AddAddrConvClient(FaultAddrConvClient*, void*, void*);
|
||||
void Fault_RemoveAddrConvClient(FaultAddrConvClient*);
|
||||
u32 Fault_ConvertAddress(FaultAddrConvClient*);
|
||||
void Fault_Sleep(u32);
|
||||
void Fault_PadCallback(Input*);
|
||||
void Fault_UpdatePadImpl();
|
||||
u32 Fault_WaitForInputImpl();
|
||||
void Fault_WaitForInput();
|
||||
void Fault_DrawRec(s32, s32, s32, s32, u16);
|
||||
void Fault_FillScreenBlack();
|
||||
void Fault_FillScreenRed();
|
||||
void Fault_DrawCornerRec(u16);
|
||||
void Fault_PrintFReg(s32, f32*);
|
||||
void Fault_LogFReg(s32, f32*);
|
||||
void Fault_PrintFPCR(u32);
|
||||
void Fault_LogFPCR(u32);
|
||||
void Fault_PrintThreadContext(OSThread*);
|
||||
void Fault_LogThreadContext(OSThread*);
|
||||
OSThread* Fault_FindFaultedThread();
|
||||
void Fault_Wait5Seconds();
|
||||
void Fault_WaitForButtonCombo();
|
||||
void Fault_DrawMemDumpPage(const char*, u32*, u32);
|
||||
void Fault_DrawMemDump(u32, u32, u32, u32);
|
||||
void Fault_WalkStack(u32* spPtr, u32* pcPtr, u32* raPtr);
|
||||
void Fault_DrawStackTrace(OSThread* thread, s32 x, s32 y, s32 height);
|
||||
void Fault_LogStackTrace(OSThread* thread, s32 height);
|
||||
void Fault_ResumeThread(OSThread*);
|
||||
void Fault_CommitFB();
|
||||
void Fault_ProcessClients();
|
||||
void Fault_UpdatePad();
|
||||
void Fault_ThreadEntry(void*);
|
||||
void Fault_SetFB(void*, u16, u16);
|
||||
void Fault_Init(void);
|
||||
void Fault_HangupFaultClient(const char*, const char*);
|
||||
void Fault_AddHungupAndCrashImpl(const char*, const char*);
|
||||
void Fault_AddHungupAndCrash(const char*, u32);
|
||||
void FaultDrawer_SetOsSyncPrintfEnabled(u32);
|
||||
void FaultDrawer_DrawRecImpl(s32, s32, s32, s32, u16);
|
||||
void FaultDrawer_DrawChar(char);
|
||||
s32 FaultDrawer_ColorToPrintColor(u16);
|
||||
void FaultDrawer_UpdatePrintColor();
|
||||
void FaultDrawer_SetForeColor(u16);
|
||||
void FaultDrawer_SetBackColor(u16);
|
||||
void FaultDrawer_SetFontColor(u16);
|
||||
void FaultDrawer_SetCharPad(s8, s8);
|
||||
void FaultDrawer_SetCursor(s32, s32);
|
||||
void FaultDrawer_FillScreen();
|
||||
void* FaultDrawer_FormatStringFunc(void*, const char*, u32);
|
||||
void FaultDrawer_VPrintf(const char*, char*);
|
||||
void FaultDrawer_Printf(const char*, ...);
|
||||
void FaultDrawer_DrawText(s32, s32, const char*, ...);
|
||||
void FaultDrawer_SetDrawerFB(void*, u16, u16);
|
||||
void FaultDrawer_SetInputCallback(void (*)());
|
||||
void FaultDrawer_SetDefault();
|
||||
// ? UCodeDisas_TranslateAddr(?);
|
||||
// ? UCodeDisas_ParseCombineColor(?);
|
||||
// ? UCodeDisas_ParseCombineAlpha(?);
|
||||
@@ -1909,7 +1846,7 @@ void AudioHeap_InitMainPools(s32 sizeForAudioInitPool);
|
||||
void* AudioHeap_AllocCached(s32 tableType, s32 size, s32 cache, s32 id);
|
||||
void* AudioHeap_SearchCaches(s32 tableType, s32 arg1, s32 id);
|
||||
void* AudioHeap_SearchRegularCaches(s32 tableType, s32 cache, s32 id);
|
||||
void AudioHeap_LoadFilter(s16* filter, s32 filter1, s32 filter2);
|
||||
void AudioHeap_LoadFilter(s16* filter, s32 lowPassCutoff, s32 highPassCutoff);
|
||||
s32 AudioHeap_ResetStep(void);
|
||||
void AudioHeap_Init(void);
|
||||
void* AudioHeap_SearchPermanentCache(s32 tableType, s32 id);
|
||||
@@ -2042,8 +1979,8 @@ void Audio_PlaySoundWaterfall(Vec3f* pos, f32 freqScale);
|
||||
void func_800F47BC(void);
|
||||
void func_800F47FC(void);
|
||||
void func_800F483C(u8 targetVol, u8 volFadeTimer);
|
||||
void func_800F4870(u8);
|
||||
void func_800F4A54(u8);
|
||||
void Audio_SetGanonsTowerBgmVolumeLevel(u8 ganonsTowerLevel);
|
||||
void Audio_LowerMainBgmVolume(u8 volume);
|
||||
void Audio_PlaySoundIncreasinglyTransposed(Vec3f* pos, s16 sfxId, u8* semitones);
|
||||
void Audio_ResetIncreasingTranspose(void);
|
||||
void Audio_PlaySoundTransposed(Vec3f* pos, u16 sfxId, s8 semitone);
|
||||
@@ -2061,14 +1998,14 @@ void func_800F5918(void);
|
||||
void func_800F595C(u16);
|
||||
void func_800F59E8(u16);
|
||||
s32 func_800F5A58(u8);
|
||||
void func_800F5ACC(u16 bgmID);
|
||||
void func_800F5ACC(u16 seqId);
|
||||
void func_800F5B58(void);
|
||||
void func_800F5BF0(u8 arg0);
|
||||
void func_800F5BF0(u8 natureAmbienceId);
|
||||
void Audio_PlayFanfare(u16);
|
||||
void func_800F5C2C(void);
|
||||
void func_800F5E18(u8 playerIdx, u16 seqId, u8 fadeTimer, s8 arg3, s8 arg4);
|
||||
void func_800F5E90(u8);
|
||||
void func_800F6114(f32 dist);
|
||||
void Audio_SetSequenceMode(u8 seqMode);
|
||||
void Audio_SetBgmEnemyVolume(f32 dist);
|
||||
void func_800F6268(f32 dist, u16);
|
||||
void func_800F64E0(u8 arg0);
|
||||
void func_800F6584(u8 arg0);
|
||||
@@ -2085,9 +2022,8 @@ void func_800F6AB0(u16);
|
||||
// ? func_800F6BB8(?);
|
||||
void Audio_PreNMI();
|
||||
// ? func_800F6C34(?);
|
||||
void func_800F6D58(u8, u8, u8);
|
||||
// ? func_800F6E7C(?);
|
||||
void func_800F6FB4(u8);
|
||||
void Audio_SetNatureAmbienceChannelIO(u8 channelIdxRange, u8 port, u8 val);
|
||||
void Audio_PlayNatureAmbienceSequence(u8 natureAmbienceId);
|
||||
void Audio_Init();
|
||||
void Audio_InitSound();
|
||||
void func_800F7170(void);
|
||||
@@ -2134,8 +2070,8 @@ 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 func_800FBCE0();
|
||||
void func_800FBFD8(void);
|
||||
void RcpUtils_PrintRegisterStatus();
|
||||
void RcpUtils_Reset(void);
|
||||
void* Overlay_AllocateAndLoad(u32 vRomStart, u32 vRomEnd, void* vRamStart, void* vRamEnd);
|
||||
void MtxConv_F2L(Mtx* m1, MtxF* m2);
|
||||
void MtxConv_L2F(MtxF* m1, Mtx* m2);
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
#ifndef IRQMGR_H
|
||||
#define IRQMGR_H
|
||||
|
||||
#include "ultra64.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 type;
|
||||
/* 0x02 */ char misc[0x1E];
|
||||
} OSScMsg; // size = 0x20
|
||||
|
||||
typedef struct IrqMgrClient {
|
||||
/* 0x00 */ struct IrqMgrClient* prev;
|
||||
/* 0x04 */ OSMesgQueue* queue;
|
||||
} IrqMgrClient;
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ OSScMsg retraceMsg; // this apparently got moved from OSSched
|
||||
/* 0x020 */ OSScMsg prenmiMsg; // this apparently got moved from OSSched
|
||||
/* 0x040 */ OSScMsg nmiMsg;
|
||||
/* 0x060 */ OSMesgQueue queue;
|
||||
/* 0x078 */ OSMesg msgBuf[8];
|
||||
/* 0x098 */ OSThread thread;
|
||||
/* 0x248 */ IrqMgrClient* clients;
|
||||
/* 0x24C */ u8 resetStatus;
|
||||
/* 0x250 */ OSTime resetTime;
|
||||
/* 0x258 */ OSTimer timer;
|
||||
/* 0x278 */ OSTime retraceTime;
|
||||
} IrqMgr; // size = 0x280
|
||||
|
||||
#endif
|
||||
@@ -5,4 +5,6 @@
|
||||
|
||||
typedef unsigned long size_t;
|
||||
|
||||
typedef unsigned int uintptr_t;
|
||||
|
||||
#endif
|
||||
|
||||
+4
-2
@@ -31,8 +31,8 @@
|
||||
|
||||
#define GET_ACTIVE_CAM(globalCtx) ((globalCtx)->cameraPtrs[(globalCtx)->activeCamera])
|
||||
|
||||
#define LINK_IS_ADULT (gSaveContext.linkAge == 0)
|
||||
#define LINK_IS_CHILD (gSaveContext.linkAge == 1)
|
||||
#define LINK_IS_ADULT (gSaveContext.linkAge == LINK_AGE_ADULT)
|
||||
#define LINK_IS_CHILD (gSaveContext.linkAge == LINK_AGE_CHILD)
|
||||
|
||||
#define YEARS_CHILD 5
|
||||
#define YEARS_ADULT 17
|
||||
@@ -77,6 +77,8 @@
|
||||
#define CHECK_BTN_ALL(state, combo) (~((state) | ~(combo)) == 0)
|
||||
#define CHECK_BTN_ANY(state, combo) (((state) & (combo)) != 0)
|
||||
|
||||
#define CHECK_FLAG_ALL(flags, mask) (((flags) & (mask)) == (mask))
|
||||
|
||||
|
||||
#define LOG(exp, value, format, file, line) \
|
||||
do { \
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
/*
|
||||
* Colors
|
||||
*/
|
||||
*/
|
||||
|
||||
#define COLOR_STR(N) EXPAND_AND_STRINGIFY(GLUE(\x4, N))
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
#define ARG(x) x
|
||||
|
||||
// while a control character, newlines are handled in the charmap conversion
|
||||
// while a control character, newlines are handled in the charmap conversion
|
||||
// stage to allow normal newline \n usage in message_data_static files
|
||||
#define NEWLINE STR(CTRL_NEWLINE)
|
||||
#define END STR(CTRL_END)
|
||||
|
||||
@@ -31,7 +31,7 @@ typedef struct {
|
||||
const char* segment;
|
||||
} MessageTableEntry;
|
||||
|
||||
/*
|
||||
/*
|
||||
* Message Symbol Declarations
|
||||
*/
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
#ifndef PADMGR_H
|
||||
#define PADMGR_H
|
||||
|
||||
#include "irqmgr.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ OSContPad cur;
|
||||
/* 0x06 */ OSContPad prev;
|
||||
/* 0x0C */ OSContPad press; // X/Y store delta from last frame
|
||||
/* 0x12 */ OSContPad rel; // X/Y store adjusted
|
||||
} Input; // size = 0x18
|
||||
|
||||
typedef struct PadMgr {
|
||||
/* 0x0000 */ OSContStatus padStatus[4];
|
||||
/* 0x0010 */ OSMesg serialMsgBuf[1];
|
||||
/* 0x0014 */ OSMesg lockMsgBuf[1];
|
||||
/* 0x0018 */ OSMesg interruptMsgBuf[4];
|
||||
/* 0x0028 */ OSMesgQueue serialMsgQ;
|
||||
/* 0x0040 */ OSMesgQueue lockMsgQ;
|
||||
/* 0x0058 */ OSMesgQueue interruptMsgQ;
|
||||
/* 0x0070 */ IrqMgrClient irqClient;
|
||||
/* 0x0078 */ IrqMgr* irqMgr;
|
||||
/* 0x0080 */ OSThread thread;
|
||||
/* 0x0230 */ Input inputs[4];
|
||||
/* 0x0290 */ OSContPad pads[4];
|
||||
/* 0x02A8 */ vu8 validCtrlrsMask;
|
||||
/* 0x02A9 */ u8 nControllers;
|
||||
/* 0x02AA */ u8 ctrlrIsConnected[4]; // "Key_switch" originally
|
||||
/* 0x02AE */ u8 pakType[4]; // 1 if rumble pack, 2 if mempak?
|
||||
/* 0x02B2 */ vu8 rumbleEnable[4];
|
||||
/* 0x02B6 */ u8 rumbleCounter[4]; // not clear exact meaning
|
||||
/* 0x02BC */ OSPfs pfs[4];
|
||||
/* 0x045C */ vu8 rumbleOffFrames;
|
||||
/* 0x045D */ vu8 rumbleOnFrames;
|
||||
/* 0x045E */ u8 preNMIShutdown;
|
||||
/* 0x0460 */ void (*retraceCallback)(struct PadMgr* padmgr, s32 unk464);
|
||||
/* 0x0464 */ u32 retraceCallbackValue;
|
||||
} PadMgr; // size = 0x468
|
||||
|
||||
#endif
|
||||
+1
-1
@@ -64,7 +64,7 @@
|
||||
#define R_AT_LERP_MIN OREG(41)
|
||||
#define R_AT_LERP_SCALE OREG(42)
|
||||
#define R_CAM_YOFFSET_NORM OREG(46)
|
||||
#define R_CAM_FIXED3_FOV PREG(7)
|
||||
#define R_CAM_DATA(type) PREG(type)
|
||||
#define R_DBG_CAM_UPDATE PREG(80)
|
||||
#define R_DBG_REG_UPDATE PREG(82)
|
||||
#define R_RELOAD_CAM_PARAMS QREG(0)
|
||||
|
||||
@@ -72,64 +72,6 @@ DECLARE_OVERLAY_SEGMENT(kaleido_scope)
|
||||
DECLARE_OVERLAY_SEGMENT(player_actor)
|
||||
DECLARE_OVERLAY_SEGMENT(map_mark_data)
|
||||
|
||||
DECLARE_ROM_SEGMENT(g_pn_01)
|
||||
DECLARE_ROM_SEGMENT(g_pn_02)
|
||||
DECLARE_ROM_SEGMENT(g_pn_03)
|
||||
DECLARE_ROM_SEGMENT(g_pn_04)
|
||||
DECLARE_ROM_SEGMENT(g_pn_05)
|
||||
DECLARE_ROM_SEGMENT(g_pn_06)
|
||||
DECLARE_ROM_SEGMENT(g_pn_07)
|
||||
DECLARE_ROM_SEGMENT(g_pn_08)
|
||||
DECLARE_ROM_SEGMENT(g_pn_09)
|
||||
DECLARE_ROM_SEGMENT(g_pn_10)
|
||||
DECLARE_ROM_SEGMENT(g_pn_11)
|
||||
DECLARE_ROM_SEGMENT(g_pn_12)
|
||||
DECLARE_ROM_SEGMENT(g_pn_13)
|
||||
DECLARE_ROM_SEGMENT(g_pn_14)
|
||||
DECLARE_ROM_SEGMENT(g_pn_15)
|
||||
DECLARE_ROM_SEGMENT(g_pn_16)
|
||||
DECLARE_ROM_SEGMENT(g_pn_17)
|
||||
DECLARE_ROM_SEGMENT(g_pn_18)
|
||||
DECLARE_ROM_SEGMENT(g_pn_19)
|
||||
DECLARE_ROM_SEGMENT(g_pn_20)
|
||||
DECLARE_ROM_SEGMENT(g_pn_21)
|
||||
DECLARE_ROM_SEGMENT(g_pn_22)
|
||||
DECLARE_ROM_SEGMENT(g_pn_23)
|
||||
DECLARE_ROM_SEGMENT(g_pn_24)
|
||||
DECLARE_ROM_SEGMENT(g_pn_25)
|
||||
DECLARE_ROM_SEGMENT(g_pn_26)
|
||||
DECLARE_ROM_SEGMENT(g_pn_27)
|
||||
DECLARE_ROM_SEGMENT(g_pn_28)
|
||||
DECLARE_ROM_SEGMENT(g_pn_29)
|
||||
DECLARE_ROM_SEGMENT(g_pn_30)
|
||||
DECLARE_ROM_SEGMENT(g_pn_31)
|
||||
DECLARE_ROM_SEGMENT(g_pn_32)
|
||||
DECLARE_ROM_SEGMENT(g_pn_33)
|
||||
DECLARE_ROM_SEGMENT(g_pn_34)
|
||||
DECLARE_ROM_SEGMENT(g_pn_35)
|
||||
DECLARE_ROM_SEGMENT(g_pn_36)
|
||||
DECLARE_ROM_SEGMENT(g_pn_37)
|
||||
DECLARE_ROM_SEGMENT(g_pn_38)
|
||||
DECLARE_ROM_SEGMENT(g_pn_39)
|
||||
DECLARE_ROM_SEGMENT(g_pn_40)
|
||||
DECLARE_ROM_SEGMENT(g_pn_41)
|
||||
DECLARE_ROM_SEGMENT(g_pn_42)
|
||||
DECLARE_ROM_SEGMENT(g_pn_43)
|
||||
DECLARE_ROM_SEGMENT(g_pn_44)
|
||||
DECLARE_ROM_SEGMENT(g_pn_45)
|
||||
DECLARE_ROM_SEGMENT(g_pn_46)
|
||||
DECLARE_ROM_SEGMENT(g_pn_47)
|
||||
DECLARE_ROM_SEGMENT(g_pn_48)
|
||||
DECLARE_ROM_SEGMENT(g_pn_49)
|
||||
DECLARE_ROM_SEGMENT(g_pn_50)
|
||||
DECLARE_ROM_SEGMENT(g_pn_51)
|
||||
DECLARE_ROM_SEGMENT(g_pn_52)
|
||||
DECLARE_ROM_SEGMENT(g_pn_53)
|
||||
DECLARE_ROM_SEGMENT(g_pn_54)
|
||||
DECLARE_ROM_SEGMENT(g_pn_55)
|
||||
DECLARE_ROM_SEGMENT(g_pn_56)
|
||||
DECLARE_ROM_SEGMENT(g_pn_57)
|
||||
|
||||
DECLARE_ROM_SEGMENT(z_select_static)
|
||||
DECLARE_ROM_SEGMENT(nintendo_rogo_static)
|
||||
DECLARE_ROM_SEGMENT(title_static)
|
||||
@@ -201,8 +143,6 @@ DECLARE_ROM_SEGMENT(vr_FCVR_pal_static)
|
||||
DECLARE_ROM_SEGMENT(elf_message_field)
|
||||
DECLARE_ROM_SEGMENT(elf_message_ydan)
|
||||
|
||||
// SCENES AND ROOMS
|
||||
DECLARE_ROM_SEGMENT(ydan_scene)
|
||||
DECLARE_ROM_SEGMENT(ydan_room_0)
|
||||
DECLARE_ROM_SEGMENT(ydan_room_1)
|
||||
DECLARE_ROM_SEGMENT(ydan_room_2)
|
||||
@@ -216,7 +156,6 @@ DECLARE_ROM_SEGMENT(ydan_room_9)
|
||||
DECLARE_ROM_SEGMENT(ydan_room_10)
|
||||
DECLARE_ROM_SEGMENT(ydan_room_11)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ddan_scene)
|
||||
DECLARE_ROM_SEGMENT(ddan_room_0)
|
||||
DECLARE_ROM_SEGMENT(ddan_room_1)
|
||||
DECLARE_ROM_SEGMENT(ddan_room_2)
|
||||
@@ -235,7 +174,6 @@ DECLARE_ROM_SEGMENT(ddan_room_14)
|
||||
DECLARE_ROM_SEGMENT(ddan_room_15)
|
||||
DECLARE_ROM_SEGMENT(ddan_room_16)
|
||||
|
||||
DECLARE_ROM_SEGMENT(bdan_scene)
|
||||
DECLARE_ROM_SEGMENT(bdan_room_0)
|
||||
DECLARE_ROM_SEGMENT(bdan_room_1)
|
||||
DECLARE_ROM_SEGMENT(bdan_room_2)
|
||||
@@ -253,7 +191,6 @@ DECLARE_ROM_SEGMENT(bdan_room_13)
|
||||
DECLARE_ROM_SEGMENT(bdan_room_14)
|
||||
DECLARE_ROM_SEGMENT(bdan_room_15)
|
||||
|
||||
DECLARE_ROM_SEGMENT(Bmori1_scene)
|
||||
DECLARE_ROM_SEGMENT(Bmori1_room_0)
|
||||
DECLARE_ROM_SEGMENT(Bmori1_room_1)
|
||||
DECLARE_ROM_SEGMENT(Bmori1_room_2)
|
||||
@@ -278,7 +215,6 @@ DECLARE_ROM_SEGMENT(Bmori1_room_20)
|
||||
DECLARE_ROM_SEGMENT(Bmori1_room_21)
|
||||
DECLARE_ROM_SEGMENT(Bmori1_room_22)
|
||||
|
||||
DECLARE_ROM_SEGMENT(HIDAN_scene)
|
||||
DECLARE_ROM_SEGMENT(HIDAN_room_0)
|
||||
DECLARE_ROM_SEGMENT(HIDAN_room_1)
|
||||
DECLARE_ROM_SEGMENT(HIDAN_room_2)
|
||||
@@ -307,7 +243,6 @@ DECLARE_ROM_SEGMENT(HIDAN_room_24)
|
||||
DECLARE_ROM_SEGMENT(HIDAN_room_25)
|
||||
DECLARE_ROM_SEGMENT(HIDAN_room_26)
|
||||
|
||||
DECLARE_ROM_SEGMENT(MIZUsin_scene)
|
||||
DECLARE_ROM_SEGMENT(MIZUsin_room_0)
|
||||
DECLARE_ROM_SEGMENT(MIZUsin_room_1)
|
||||
DECLARE_ROM_SEGMENT(MIZUsin_room_2)
|
||||
@@ -332,7 +267,6 @@ DECLARE_ROM_SEGMENT(MIZUsin_room_20)
|
||||
DECLARE_ROM_SEGMENT(MIZUsin_room_21)
|
||||
DECLARE_ROM_SEGMENT(MIZUsin_room_22)
|
||||
|
||||
DECLARE_ROM_SEGMENT(jyasinzou_scene)
|
||||
DECLARE_ROM_SEGMENT(jyasinzou_room_0)
|
||||
DECLARE_ROM_SEGMENT(jyasinzou_room_1)
|
||||
DECLARE_ROM_SEGMENT(jyasinzou_room_2)
|
||||
@@ -363,7 +297,6 @@ DECLARE_ROM_SEGMENT(jyasinzou_room_26)
|
||||
DECLARE_ROM_SEGMENT(jyasinzou_room_27)
|
||||
DECLARE_ROM_SEGMENT(jyasinzou_room_28)
|
||||
|
||||
DECLARE_ROM_SEGMENT(HAKAdan_scene)
|
||||
DECLARE_ROM_SEGMENT(HAKAdan_room_0)
|
||||
DECLARE_ROM_SEGMENT(HAKAdan_room_1)
|
||||
DECLARE_ROM_SEGMENT(HAKAdan_room_2)
|
||||
@@ -388,7 +321,6 @@ DECLARE_ROM_SEGMENT(HAKAdan_room_20)
|
||||
DECLARE_ROM_SEGMENT(HAKAdan_room_21)
|
||||
DECLARE_ROM_SEGMENT(HAKAdan_room_22)
|
||||
|
||||
DECLARE_ROM_SEGMENT(HAKAdanCH_scene)
|
||||
DECLARE_ROM_SEGMENT(HAKAdanCH_room_0)
|
||||
DECLARE_ROM_SEGMENT(HAKAdanCH_room_1)
|
||||
DECLARE_ROM_SEGMENT(HAKAdanCH_room_2)
|
||||
@@ -397,7 +329,6 @@ DECLARE_ROM_SEGMENT(HAKAdanCH_room_4)
|
||||
DECLARE_ROM_SEGMENT(HAKAdanCH_room_5)
|
||||
DECLARE_ROM_SEGMENT(HAKAdanCH_room_6)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ice_doukutu_scene)
|
||||
DECLARE_ROM_SEGMENT(ice_doukutu_room_0)
|
||||
DECLARE_ROM_SEGMENT(ice_doukutu_room_1)
|
||||
DECLARE_ROM_SEGMENT(ice_doukutu_room_2)
|
||||
@@ -411,7 +342,6 @@ DECLARE_ROM_SEGMENT(ice_doukutu_room_9)
|
||||
DECLARE_ROM_SEGMENT(ice_doukutu_room_10)
|
||||
DECLARE_ROM_SEGMENT(ice_doukutu_room_11)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ganon_scene)
|
||||
DECLARE_ROM_SEGMENT(ganon_room_0)
|
||||
DECLARE_ROM_SEGMENT(ganon_room_1)
|
||||
DECLARE_ROM_SEGMENT(ganon_room_2)
|
||||
@@ -423,7 +353,6 @@ DECLARE_ROM_SEGMENT(ganon_room_7)
|
||||
DECLARE_ROM_SEGMENT(ganon_room_8)
|
||||
DECLARE_ROM_SEGMENT(ganon_room_9)
|
||||
|
||||
DECLARE_ROM_SEGMENT(men_scene)
|
||||
DECLARE_ROM_SEGMENT(men_room_0)
|
||||
DECLARE_ROM_SEGMENT(men_room_1)
|
||||
DECLARE_ROM_SEGMENT(men_room_2)
|
||||
@@ -436,7 +365,6 @@ DECLARE_ROM_SEGMENT(men_room_8)
|
||||
DECLARE_ROM_SEGMENT(men_room_9)
|
||||
DECLARE_ROM_SEGMENT(men_room_10)
|
||||
|
||||
DECLARE_ROM_SEGMENT(gerudoway_scene)
|
||||
DECLARE_ROM_SEGMENT(gerudoway_room_0)
|
||||
DECLARE_ROM_SEGMENT(gerudoway_room_1)
|
||||
DECLARE_ROM_SEGMENT(gerudoway_room_2)
|
||||
@@ -444,7 +372,6 @@ DECLARE_ROM_SEGMENT(gerudoway_room_3)
|
||||
DECLARE_ROM_SEGMENT(gerudoway_room_4)
|
||||
DECLARE_ROM_SEGMENT(gerudoway_room_5)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ganontika_scene)
|
||||
DECLARE_ROM_SEGMENT(ganontika_room_0)
|
||||
DECLARE_ROM_SEGMENT(ganontika_room_1)
|
||||
DECLARE_ROM_SEGMENT(ganontika_room_2)
|
||||
@@ -466,18 +393,15 @@ DECLARE_ROM_SEGMENT(ganontika_room_17)
|
||||
DECLARE_ROM_SEGMENT(ganontika_room_18)
|
||||
DECLARE_ROM_SEGMENT(ganontika_room_19)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ganon_sonogo_scene)
|
||||
DECLARE_ROM_SEGMENT(ganon_sonogo_room_0)
|
||||
DECLARE_ROM_SEGMENT(ganon_sonogo_room_1)
|
||||
DECLARE_ROM_SEGMENT(ganon_sonogo_room_2)
|
||||
DECLARE_ROM_SEGMENT(ganon_sonogo_room_3)
|
||||
DECLARE_ROM_SEGMENT(ganon_sonogo_room_4)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ganontikasonogo_scene)
|
||||
DECLARE_ROM_SEGMENT(ganontikasonogo_room_0)
|
||||
DECLARE_ROM_SEGMENT(ganontikasonogo_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(takaraya_scene)
|
||||
DECLARE_ROM_SEGMENT(takaraya_room_0)
|
||||
DECLARE_ROM_SEGMENT(takaraya_room_1)
|
||||
DECLARE_ROM_SEGMENT(takaraya_room_2)
|
||||
@@ -486,152 +410,106 @@ DECLARE_ROM_SEGMENT(takaraya_room_4)
|
||||
DECLARE_ROM_SEGMENT(takaraya_room_5)
|
||||
DECLARE_ROM_SEGMENT(takaraya_room_6)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ydan_boss_scene)
|
||||
DECLARE_ROM_SEGMENT(ydan_boss_room_0)
|
||||
DECLARE_ROM_SEGMENT(ydan_boss_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ddan_boss_scene)
|
||||
DECLARE_ROM_SEGMENT(ddan_boss_room_0)
|
||||
DECLARE_ROM_SEGMENT(ddan_boss_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(bdan_boss_scene)
|
||||
DECLARE_ROM_SEGMENT(bdan_boss_room_0)
|
||||
DECLARE_ROM_SEGMENT(bdan_boss_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(moribossroom_scene)
|
||||
DECLARE_ROM_SEGMENT(moribossroom_room_0)
|
||||
DECLARE_ROM_SEGMENT(moribossroom_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(FIRE_bs_scene)
|
||||
DECLARE_ROM_SEGMENT(FIRE_bs_room_0)
|
||||
DECLARE_ROM_SEGMENT(FIRE_bs_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(MIZUsin_bs_scene)
|
||||
DECLARE_ROM_SEGMENT(MIZUsin_bs_room_0)
|
||||
DECLARE_ROM_SEGMENT(MIZUsin_bs_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(jyasinboss_scene)
|
||||
DECLARE_ROM_SEGMENT(jyasinboss_room_0)
|
||||
DECLARE_ROM_SEGMENT(jyasinboss_room_1)
|
||||
DECLARE_ROM_SEGMENT(jyasinboss_room_2)
|
||||
DECLARE_ROM_SEGMENT(jyasinboss_room_3)
|
||||
|
||||
DECLARE_ROM_SEGMENT(HAKAdan_bs_scene)
|
||||
DECLARE_ROM_SEGMENT(HAKAdan_bs_room_0)
|
||||
DECLARE_ROM_SEGMENT(HAKAdan_bs_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ganon_boss_scene)
|
||||
DECLARE_ROM_SEGMENT(ganon_boss_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ganon_final_scene)
|
||||
DECLARE_ROM_SEGMENT(ganon_final_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(entra_scene)
|
||||
DECLARE_ROM_SEGMENT(entra_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(entra_n_scene)
|
||||
DECLARE_ROM_SEGMENT(entra_n_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(enrui_scene)
|
||||
DECLARE_ROM_SEGMENT(enrui_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(market_alley_scene)
|
||||
DECLARE_ROM_SEGMENT(market_alley_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(market_alley_n_scene)
|
||||
DECLARE_ROM_SEGMENT(market_alley_n_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(market_day_scene)
|
||||
DECLARE_ROM_SEGMENT(market_day_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(market_night_scene)
|
||||
DECLARE_ROM_SEGMENT(market_night_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(market_ruins_scene)
|
||||
DECLARE_ROM_SEGMENT(market_ruins_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(shrine_scene)
|
||||
DECLARE_ROM_SEGMENT(shrine_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(shrine_n_scene)
|
||||
DECLARE_ROM_SEGMENT(shrine_n_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(shrine_r_scene)
|
||||
DECLARE_ROM_SEGMENT(shrine_r_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(kokiri_home_scene)
|
||||
DECLARE_ROM_SEGMENT(kokiri_home_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(kokiri_home3_scene)
|
||||
DECLARE_ROM_SEGMENT(kokiri_home3_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(kokiri_home4_scene)
|
||||
DECLARE_ROM_SEGMENT(kokiri_home4_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(kokiri_home5_scene)
|
||||
DECLARE_ROM_SEGMENT(kokiri_home5_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(kakariko_scene)
|
||||
DECLARE_ROM_SEGMENT(kakariko_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(kakariko3_scene)
|
||||
DECLARE_ROM_SEGMENT(kakariko3_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(shop1_scene)
|
||||
DECLARE_ROM_SEGMENT(shop1_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(kokiri_shop_scene)
|
||||
DECLARE_ROM_SEGMENT(kokiri_shop_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(golon_scene)
|
||||
DECLARE_ROM_SEGMENT(golon_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(zoora_scene)
|
||||
DECLARE_ROM_SEGMENT(zoora_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(drag_scene)
|
||||
DECLARE_ROM_SEGMENT(drag_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(alley_shop_scene)
|
||||
DECLARE_ROM_SEGMENT(alley_shop_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(night_shop_scene)
|
||||
DECLARE_ROM_SEGMENT(night_shop_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(face_shop_scene)
|
||||
DECLARE_ROM_SEGMENT(face_shop_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(link_home_scene)
|
||||
DECLARE_ROM_SEGMENT(link_home_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(impa_scene)
|
||||
DECLARE_ROM_SEGMENT(impa_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(malon_stable_scene)
|
||||
DECLARE_ROM_SEGMENT(malon_stable_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(labo_scene)
|
||||
DECLARE_ROM_SEGMENT(labo_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(hylia_labo_scene)
|
||||
DECLARE_ROM_SEGMENT(hylia_labo_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(tent_scene)
|
||||
DECLARE_ROM_SEGMENT(tent_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(hut_scene)
|
||||
DECLARE_ROM_SEGMENT(hut_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(daiyousei_izumi_scene)
|
||||
DECLARE_ROM_SEGMENT(daiyousei_izumi_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(yousei_izumi_tate_scene)
|
||||
DECLARE_ROM_SEGMENT(yousei_izumi_tate_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(yousei_izumi_yoko_scene)
|
||||
DECLARE_ROM_SEGMENT(yousei_izumi_yoko_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(kakusiana_scene)
|
||||
DECLARE_ROM_SEGMENT(kakusiana_room_0)
|
||||
DECLARE_ROM_SEGMENT(kakusiana_room_1)
|
||||
DECLARE_ROM_SEGMENT(kakusiana_room_2)
|
||||
@@ -647,37 +525,27 @@ DECLARE_ROM_SEGMENT(kakusiana_room_11)
|
||||
DECLARE_ROM_SEGMENT(kakusiana_room_12)
|
||||
DECLARE_ROM_SEGMENT(kakusiana_room_13)
|
||||
|
||||
DECLARE_ROM_SEGMENT(hakaana_scene)
|
||||
DECLARE_ROM_SEGMENT(hakaana_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(hakaana2_scene)
|
||||
DECLARE_ROM_SEGMENT(hakaana2_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(hakaana_ouke_scene)
|
||||
DECLARE_ROM_SEGMENT(hakaana_ouke_room_0)
|
||||
DECLARE_ROM_SEGMENT(hakaana_ouke_room_1)
|
||||
DECLARE_ROM_SEGMENT(hakaana_ouke_room_2)
|
||||
|
||||
DECLARE_ROM_SEGMENT(syatekijyou_scene)
|
||||
DECLARE_ROM_SEGMENT(syatekijyou_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(tokinoma_scene)
|
||||
DECLARE_ROM_SEGMENT(tokinoma_room_0)
|
||||
DECLARE_ROM_SEGMENT(tokinoma_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(kenjyanoma_scene)
|
||||
DECLARE_ROM_SEGMENT(kenjyanoma_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(hairal_niwa_scene)
|
||||
DECLARE_ROM_SEGMENT(hairal_niwa_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(hairal_niwa_n_scene)
|
||||
DECLARE_ROM_SEGMENT(hairal_niwa_n_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(hiral_demo_scene)
|
||||
DECLARE_ROM_SEGMENT(hiral_demo_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(hakasitarelay_scene)
|
||||
DECLARE_ROM_SEGMENT(hakasitarelay_room_0)
|
||||
DECLARE_ROM_SEGMENT(hakasitarelay_room_1)
|
||||
DECLARE_ROM_SEGMENT(hakasitarelay_room_2)
|
||||
@@ -686,68 +554,49 @@ DECLARE_ROM_SEGMENT(hakasitarelay_room_4)
|
||||
DECLARE_ROM_SEGMENT(hakasitarelay_room_5)
|
||||
DECLARE_ROM_SEGMENT(hakasitarelay_room_6)
|
||||
|
||||
DECLARE_ROM_SEGMENT(turibori_scene)
|
||||
DECLARE_ROM_SEGMENT(turibori_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(nakaniwa_scene)
|
||||
DECLARE_ROM_SEGMENT(nakaniwa_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(bowling_scene)
|
||||
DECLARE_ROM_SEGMENT(bowling_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(souko_scene)
|
||||
DECLARE_ROM_SEGMENT(souko_room_0)
|
||||
DECLARE_ROM_SEGMENT(souko_room_1)
|
||||
DECLARE_ROM_SEGMENT(souko_room_2)
|
||||
|
||||
DECLARE_ROM_SEGMENT(miharigoya_scene)
|
||||
DECLARE_ROM_SEGMENT(miharigoya_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(mahouya_scene)
|
||||
DECLARE_ROM_SEGMENT(mahouya_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ganon_demo_scene)
|
||||
DECLARE_ROM_SEGMENT(ganon_demo_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(kinsuta_scene)
|
||||
DECLARE_ROM_SEGMENT(kinsuta_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot00_scene)
|
||||
DECLARE_ROM_SEGMENT(spot00_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot01_scene)
|
||||
DECLARE_ROM_SEGMENT(spot01_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot02_scene)
|
||||
DECLARE_ROM_SEGMENT(spot02_room_0)
|
||||
DECLARE_ROM_SEGMENT(spot02_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot03_scene)
|
||||
DECLARE_ROM_SEGMENT(spot03_room_0)
|
||||
DECLARE_ROM_SEGMENT(spot03_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot04_scene)
|
||||
DECLARE_ROM_SEGMENT(spot04_room_0)
|
||||
DECLARE_ROM_SEGMENT(spot04_room_1)
|
||||
DECLARE_ROM_SEGMENT(spot04_room_2)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot05_scene)
|
||||
DECLARE_ROM_SEGMENT(spot05_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot06_scene)
|
||||
DECLARE_ROM_SEGMENT(spot06_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot07_scene)
|
||||
DECLARE_ROM_SEGMENT(spot07_room_0)
|
||||
DECLARE_ROM_SEGMENT(spot07_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot08_scene)
|
||||
DECLARE_ROM_SEGMENT(spot08_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot09_scene)
|
||||
DECLARE_ROM_SEGMENT(spot09_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot10_scene)
|
||||
DECLARE_ROM_SEGMENT(spot10_room_0)
|
||||
DECLARE_ROM_SEGMENT(spot10_room_1)
|
||||
DECLARE_ROM_SEGMENT(spot10_room_2)
|
||||
@@ -759,69 +608,50 @@ DECLARE_ROM_SEGMENT(spot10_room_7)
|
||||
DECLARE_ROM_SEGMENT(spot10_room_8)
|
||||
DECLARE_ROM_SEGMENT(spot10_room_9)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot11_scene)
|
||||
DECLARE_ROM_SEGMENT(spot11_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot12_scene)
|
||||
DECLARE_ROM_SEGMENT(spot12_room_0)
|
||||
DECLARE_ROM_SEGMENT(spot12_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot13_scene)
|
||||
DECLARE_ROM_SEGMENT(spot13_room_0)
|
||||
DECLARE_ROM_SEGMENT(spot13_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot15_scene)
|
||||
DECLARE_ROM_SEGMENT(spot15_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot16_scene)
|
||||
DECLARE_ROM_SEGMENT(spot16_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot17_scene)
|
||||
DECLARE_ROM_SEGMENT(spot17_room_0)
|
||||
DECLARE_ROM_SEGMENT(spot17_room_1)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot18_scene)
|
||||
DECLARE_ROM_SEGMENT(spot18_room_0)
|
||||
DECLARE_ROM_SEGMENT(spot18_room_1)
|
||||
DECLARE_ROM_SEGMENT(spot18_room_2)
|
||||
DECLARE_ROM_SEGMENT(spot18_room_3)
|
||||
|
||||
DECLARE_ROM_SEGMENT(spot20_scene)
|
||||
DECLARE_ROM_SEGMENT(spot20_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(ganon_tou_scene)
|
||||
DECLARE_ROM_SEGMENT(ganon_tou_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(test01_scene)
|
||||
DECLARE_ROM_SEGMENT(test01_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(besitu_scene)
|
||||
DECLARE_ROM_SEGMENT(besitu_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(depth_test_scene)
|
||||
DECLARE_ROM_SEGMENT(depth_test_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(syotes_scene)
|
||||
DECLARE_ROM_SEGMENT(syotes_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(syotes2_scene)
|
||||
DECLARE_ROM_SEGMENT(syotes2_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(sutaru_scene)
|
||||
DECLARE_ROM_SEGMENT(sutaru_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(hairal_niwa2_scene)
|
||||
DECLARE_ROM_SEGMENT(hairal_niwa2_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(sasatest_scene)
|
||||
DECLARE_ROM_SEGMENT(sasatest_room_0)
|
||||
|
||||
DECLARE_ROM_SEGMENT(testroom_scene)
|
||||
DECLARE_ROM_SEGMENT(testroom_room_0)
|
||||
DECLARE_ROM_SEGMENT(testroom_room_1)
|
||||
DECLARE_ROM_SEGMENT(testroom_room_2)
|
||||
DECLARE_ROM_SEGMENT(testroom_room_3)
|
||||
DECLARE_ROM_SEGMENT(testroom_room_4)
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
+146
-13
@@ -7,17 +7,17 @@
|
||||
#define NA_BGM_NATURE_AMBIENCE 0x1 // Environmental nature background sounds
|
||||
#define NA_BGM_FIELD_LOGIC 0x2 // Hyrule Field
|
||||
#define NA_BGM_FIELD_INIT 0x3 // Hyrule Field Initial Segment From Loading Area
|
||||
#define NA_BGM_FIELD_MOVE_1 0x4 // Hyrule Field Moving Segment 1
|
||||
#define NA_BGM_FIELD_MOVE_2 0x5 // Hyrule Field Moving Segment 2
|
||||
#define NA_BGM_FIELD_MOVE_3 0x6 // Hyrule Field Moving Segment 3
|
||||
#define NA_BGM_FIELD_MOVE_4 0x7 // Hyrule Field Moving Segment 4
|
||||
#define NA_BGM_FIELD_MOVE_5 0x8 // Hyrule Field Moving Segment 5
|
||||
#define NA_BGM_FIELD_MOVE_6 0x9 // Hyrule Field Moving Segment 6
|
||||
#define NA_BGM_FIELD_MOVE_7 0x0A // Hyrule Field Moving Segment 7
|
||||
#define NA_BGM_FIELD_MOVE_8 0x0B // Hyrule Field Moving Segment 8
|
||||
#define NA_BGM_FIELD_MOVE_9 0x0C // Hyrule Field Moving Segment 9
|
||||
#define NA_BGM_FIELD_MOVE_A 0x0D // Hyrule Field Moving Segment 10
|
||||
#define NA_BGM_FIELD_MOVE_B 0x0E // Hyrule Field Moving Segment 11
|
||||
#define NA_BGM_FIELD_DEFAULT_1 0x4 // Hyrule Field Moving Segment 1
|
||||
#define NA_BGM_FIELD_DEFAULT_2 0x5 // Hyrule Field Moving Segment 2
|
||||
#define NA_BGM_FIELD_DEFAULT_3 0x6 // Hyrule Field Moving Segment 3
|
||||
#define NA_BGM_FIELD_DEFAULT_4 0x7 // Hyrule Field Moving Segment 4
|
||||
#define NA_BGM_FIELD_DEFAULT_5 0x8 // Hyrule Field Moving Segment 5
|
||||
#define NA_BGM_FIELD_DEFAULT_6 0x9 // Hyrule Field Moving Segment 6
|
||||
#define NA_BGM_FIELD_DEFAULT_7 0x0A // Hyrule Field Moving Segment 7
|
||||
#define NA_BGM_FIELD_DEFAULT_8 0x0B // Hyrule Field Moving Segment 8
|
||||
#define NA_BGM_FIELD_DEFAULT_9 0x0C // Hyrule Field Moving Segment 9
|
||||
#define NA_BGM_FIELD_DEFAULT_A 0x0D // Hyrule Field Moving Segment 10
|
||||
#define NA_BGM_FIELD_DEFAULT_B 0x0E // Hyrule Field Moving Segment 11
|
||||
#define NA_BGM_FIELD_ENEMY_INIT 0x0F // Hyrule Field Enemy Approaches
|
||||
#define NA_BGM_FIELD_ENEMY_1 0x10 // Hyrule Field Enemy Near Segment 1
|
||||
#define NA_BGM_FIELD_ENEMY_2 0x11 // Hyrule Field Enemy Near Segment 2
|
||||
@@ -95,7 +95,7 @@
|
||||
#define NA_BGM_DOOR_OF_TIME 0x59 // Open Door of Temple of Time "NA_BGM_GATE_OPEN"
|
||||
#define NA_BGM_OWL 0x5A // Kaepora Gaebora's Theme
|
||||
#define NA_BGM_SHADOW_TEMPLE 0x5B // Shadow Temple "NA_BGM_DARKNESS_DUNGEON"
|
||||
#define NA_BGM_WATAER_TEMPLE 0x5C // Water Temple "NA_BGM_AQUA_DUNGEON"
|
||||
#define NA_BGM_WATER_TEMPLE 0x5C // Water Temple "NA_BGM_AQUA_DUNGEON"
|
||||
#define NA_BGM_BRIDGE_TO_GANONS 0x5D // Ganon's Castle Bridge "NA_BGM_BRIDGE"
|
||||
#define NA_BGM_OCARINA_OF_TIME 0x5E // Ocarina of Time "NA_BGM_SARIA"
|
||||
#define NA_BGM_GERUDO_VALLEY 0x5F // Gerudo Valley "NA_BGM_GERUDO"
|
||||
@@ -111,7 +111,7 @@
|
||||
#define NA_BGM_STAFF_3 0x69 // End Credits III
|
||||
#define NA_BGM_STAFF_4 0x6A // End Credits IV
|
||||
#define NA_BGM_FIRE_BOSS 0x6B // King Dodongo & Volvagia Boss Battle "NA_BGM_BOSS01"
|
||||
#define NA_BGM_MINI_GAME_2 0x6C // Mini-Game
|
||||
#define NA_BGM_TIMED_MINI_GAME 0x6C // Mini-Game
|
||||
#define NA_BGM_VARIOUS_SFX 0x6D // A small collection of various sound effects
|
||||
#define NA_BGM_NO_MUSIC 0x7F // No bgm music is played
|
||||
#define NA_BGM_NATURE_SFX_RAIN 0x80 // Related to rain
|
||||
@@ -124,4 +124,137 @@ typedef enum {
|
||||
/* 3 */ SEQ_PLAYER_BGM_SUB
|
||||
} SequencePlayerId;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SEQ_MODE_DEFAULT,
|
||||
/* 1 */ SEQ_MODE_ENEMY,
|
||||
/* 2 */ SEQ_MODE_STILL, // Not moving or first-person view
|
||||
/* 3 */ SEQ_MODE_IGNORE
|
||||
} SequenceMode;
|
||||
|
||||
typedef enum {
|
||||
/* 0x0 */ CHANNEL_IO_PORT_0,
|
||||
/* 0x1 */ CHANNEL_IO_PORT_1,
|
||||
/* 0x2 */ CHANNEL_IO_PORT_2,
|
||||
/* 0x3 */ CHANNEL_IO_PORT_3,
|
||||
/* 0x4 */ CHANNEL_IO_PORT_4,
|
||||
/* 0x5 */ CHANNEL_IO_PORT_5,
|
||||
/* 0x6 */ CHANNEL_IO_PORT_6,
|
||||
/* 0x7 */ CHANNEL_IO_PORT_7
|
||||
} ChannelIOPort;
|
||||
|
||||
typedef enum {
|
||||
/* 0x0 */ NATURE_CHANNEL_STREAM_0,
|
||||
/* 0x1 */ NATURE_CHANNEL_CRITTER_0,
|
||||
/* 0x2 */ NATURE_CHANNEL_CRITTER_1,
|
||||
/* 0x3 */ NATURE_CHANNEL_CRITTER_2,
|
||||
/* 0x4 */ NATURE_CHANNEL_CRITTER_3,
|
||||
/* 0x5 */ NATURE_CHANNEL_CRITTER_4,
|
||||
/* 0x6 */ NATURE_CHANNEL_CRITTER_5,
|
||||
/* 0x7 */ NATURE_CHANNEL_CRITTER_6,
|
||||
/* 0x8 */ NATURE_CHANNEL_CRITTER_7,
|
||||
/* 0xC */ NATURE_CHANNEL_STREAM_1 = 12,
|
||||
/* 0xD */ NATURE_CHANNEL_UNK,
|
||||
/* 0xE */ NATURE_CHANNEL_RAIN,
|
||||
/* 0xF */ NATURE_CHANNEL_LIGHTNING
|
||||
} NatureChannelIdx; // playerIdx = 0 (Overlaps with main bgm)
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ NATURE_ID_GENERAL_NIGHT,
|
||||
/* 0x01 */ NATURE_ID_MARKET_ENTRANCE,
|
||||
/* 0x02 */ NATURE_ID_KAKARIKO_REGION,
|
||||
/* 0x03 */ NATURE_ID_MARKET_RUINS,
|
||||
/* 0x04 */ NATURE_ID_KOKIRI_REGION,
|
||||
/* 0x05 */ NATURE_ID_MARKET_NIGHT,
|
||||
/* 0x06 */ NATURE_ID_06,
|
||||
/* 0x07 */ NATURE_ID_GANONS_LAIR,
|
||||
/* 0x08 */ NATURE_ID_08,
|
||||
/* 0x09 */ NATURE_ID_09,
|
||||
/* 0x0A */ NATURE_ID_WASTELAND,
|
||||
/* 0x0B */ NATURE_ID_COLOSSUS,
|
||||
/* 0x0C */ NATURE_ID_DEATH_MOUNTAIN_TRAIL,
|
||||
/* 0x0D */ NATURE_ID_0D,
|
||||
/* 0x0E */ NATURE_ID_0E,
|
||||
/* 0x0F */ NATURE_ID_0F,
|
||||
/* 0x10 */ NATURE_ID_10,
|
||||
/* 0x11 */ NATURE_ID_11,
|
||||
/* 0x12 */ NATURE_ID_12,
|
||||
/* 0x13 */ NATURE_ID_NONE,
|
||||
/* 0xFF */ NATURE_ID_DISABLED = 0xFF
|
||||
} NatureAmbienceId;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ NATURE_STREAM_RUSHING_WATER,
|
||||
/* 0x01 */ NATURE_STREAM_HOWLING_WIND,
|
||||
/* 0x02 */ NATURE_STREAM_SCREECHING_WIND,
|
||||
/* 0x03 */ NATURE_STREAM_SCREECHING_WIND_ALT1
|
||||
} NatureStreamId;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ NATURE_CRITTER_BIRD_CHIRP_1,
|
||||
/* 0x01 */ NATURE_CRITTER_TAP,
|
||||
/* 0x02 */ NATURE_CRITTER_BIRD_CHIRP_2,
|
||||
/* 0x03 */ NATURE_CRITTER_BIRD_CHIRP_1_ALT1,
|
||||
/* 0x04 */ NATURE_CRITTER_CRICKETS,
|
||||
/* 0x05 */ NATURE_CRITTER_BIRD_CHIRP_1_ALT2,
|
||||
/* 0x06 */ NATURE_CRITTER_LOUD_CHIRPING,
|
||||
/* 0x07 */ NATURE_CRITTER_BIRD_CHIRP_1_ALT3,
|
||||
/* 0x08 */ NATURE_CRITTER_BIRD_CHIRP_1_ALT4,
|
||||
/* 0x09 */ NATURE_CRITTER_CROWS_CAWS,
|
||||
/* 0x0A */ NATURE_CRITTER_SMALL_BIRD_CHIRPS,
|
||||
/* 0x0B */ NATURE_CRITTER_BIRD_SCREECH,
|
||||
/* 0x0C */ NATURE_CRITTER_BIRD_SONG,
|
||||
/* 0x0D */ NATURE_CRITTER_OWL_HOOT,
|
||||
/* 0x0E */ NATURE_CRITTER_HAWK_SCREECH,
|
||||
/* 0x0F */ NATURE_CRITTER_BIRD_CALL,
|
||||
/* 0x10 */ NATURE_CRITTER_CAWING_BIRD,
|
||||
/* 0x11 */ NATURE_CRITTER_CUCCO_CROWS,
|
||||
/* 0x12 */ NATURE_CRITTER_BIRD_CHIRP_2_ALT1,
|
||||
/* 0x13 */ NATURE_CRITTER_BIRD_CHIRP_1_ALT5
|
||||
} NatureAmimalId;
|
||||
|
||||
#define NATURE_IO_CRITTER_0_TYPE(type) NATURE_CHANNEL_CRITTER_0, CHANNEL_IO_PORT_2, type
|
||||
#define NATURE_IO_CRITTER_0_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_0, CHANNEL_IO_PORT_3, bend
|
||||
#define NATURE_IO_CRITTER_0_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_0, CHANNEL_IO_PORT_4, num
|
||||
#define NATURE_IO_CRITTER_0_PORT5(reverb) NATURE_CHANNEL_CRITTER_0, CHANNEL_IO_PORT_5, reverb
|
||||
|
||||
#define NATURE_IO_CRITTER_1_TYPE(type) NATURE_CHANNEL_CRITTER_1, CHANNEL_IO_PORT_2, type
|
||||
#define NATURE_IO_CRITTER_1_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_1, CHANNEL_IO_PORT_3, bend
|
||||
#define NATURE_IO_CRITTER_1_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_1, CHANNEL_IO_PORT_4, num
|
||||
#define NATURE_IO_CRITTER_1_PORT5(reverb) NATURE_CHANNEL_CRITTER_1, CHANNEL_IO_PORT_5, reverb
|
||||
|
||||
#define NATURE_IO_CRITTER_2_TYPE(type) NATURE_CHANNEL_CRITTER_2, CHANNEL_IO_PORT_2, type
|
||||
#define NATURE_IO_CRITTER_2_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_2, CHANNEL_IO_PORT_3, bend
|
||||
#define NATURE_IO_CRITTER_2_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_2, CHANNEL_IO_PORT_4, num
|
||||
#define NATURE_IO_CRITTER_2_PORT5(reverb) NATURE_CHANNEL_CRITTER_2, CHANNEL_IO_PORT_5, reverb
|
||||
|
||||
#define NATURE_IO_CRITTER_3_TYPE(type) NATURE_CHANNEL_CRITTER_3, CHANNEL_IO_PORT_2, type
|
||||
#define NATURE_IO_CRITTER_3_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_3, CHANNEL_IO_PORT_3, bend
|
||||
#define NATURE_IO_CRITTER_3_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_3, CHANNEL_IO_PORT_4, num
|
||||
#define NATURE_IO_CRITTER_3_PORT5(reverb) NATURE_CHANNEL_CRITTER_3, CHANNEL_IO_PORT_5, reverb
|
||||
|
||||
#define NATURE_IO_CRITTER_4_TYPE(type) NATURE_CHANNEL_CRITTER_4, CHANNEL_IO_PORT_2, type
|
||||
#define NATURE_IO_CRITTER_4_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_4, CHANNEL_IO_PORT_3, bend
|
||||
#define NATURE_IO_CRITTER_4_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_4, CHANNEL_IO_PORT_4, num
|
||||
#define NATURE_IO_CRITTER_4_PORT5(reverb) NATURE_CHANNEL_CRITTER_4, CHANNEL_IO_PORT_5, reverb
|
||||
|
||||
#define NATURE_IO_CRITTER_5_TYPE(type) NATURE_CHANNEL_CRITTER_5, CHANNEL_IO_PORT_2, type
|
||||
#define NATURE_IO_CRITTER_5_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_5, CHANNEL_IO_PORT_3, bend
|
||||
#define NATURE_IO_CRITTER_5_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_5, CHANNEL_IO_PORT_4, num
|
||||
#define NATURE_IO_CRITTER_5_PORT5(reverb) NATURE_CHANNEL_CRITTER_5, CHANNEL_IO_PORT_5, reverb
|
||||
|
||||
#define NATURE_IO_CRITTER_6_TYPE(type) NATURE_CHANNEL_CRITTER_6, CHANNEL_IO_PORT_2, type
|
||||
#define NATURE_IO_CRITTER_6_BEND_PITCH(bend) NATURE_CHANNEL_CRITTER_6, CHANNEL_IO_PORT_3, bend
|
||||
#define NATURE_IO_CRITTER_6_NUM_LAYERS(num) NATURE_CHANNEL_CRITTER_6, CHANNEL_IO_PORT_4, num
|
||||
#define NATURE_IO_CRITTER_6_PORT5(reverb) NATURE_CHANNEL_CRITTER_6, CHANNEL_IO_PORT_5, reverb
|
||||
|
||||
#define NATURE_IO_STREAM_0_TYPE(type) NATURE_CHANNEL_STREAM_0, CHANNEL_IO_PORT_2, type
|
||||
#define NATURE_IO_STREAM_0_PORT3(data) NATURE_CHANNEL_STREAM_0, CHANNEL_IO_PORT_3, data
|
||||
#define NATURE_IO_STREAM_0_PORT4(data) NATURE_CHANNEL_STREAM_0, CHANNEL_IO_PORT_4, data
|
||||
|
||||
#define NATURE_IO_STREAM_1_TYPE(type) NATURE_CHANNEL_STREAM_1, CHANNEL_IO_PORT_2, type
|
||||
#define NATURE_IO_STREAM_1_PORT3(data) NATURE_CHANNEL_STREAM_1, CHANNEL_IO_PORT_3, data
|
||||
#define NATURE_IO_STREAM_1_PORT4(data) NATURE_CHANNEL_STREAM_1, CHANNEL_IO_PORT_4, data
|
||||
|
||||
#define NATURE_IO_ENTRIES_END 0xFF
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
/**
|
||||
* Scene Table
|
||||
*
|
||||
* DEFINE_SCENE should be used for all scenes (with or without a title card, see argument 2)
|
||||
* - Argument 1: Name of the scene segment in spec
|
||||
* - Argument 2: Name of the title card segment in spec, or `none` for no title card
|
||||
* - Argument 3: Enum value for this scene
|
||||
* - Argument 4: Scene draw config index
|
||||
* - Argument 5: ? (Unknown)
|
||||
* - Argument 6: ? (Unknown)
|
||||
*/
|
||||
/* 0x00 */ DEFINE_SCENE(ydan_scene, g_pn_06, SCENE_YDAN, 19, 1, 2)
|
||||
/* 0x01 */ DEFINE_SCENE(ddan_scene, g_pn_08, SCENE_DDAN, 20, 1, 3)
|
||||
/* 0x02 */ DEFINE_SCENE(bdan_scene, g_pn_07, SCENE_BDAN, 21, 1, 4)
|
||||
/* 0x03 */ DEFINE_SCENE(Bmori1_scene, g_pn_01, SCENE_BMORI1, 22, 2, 5)
|
||||
/* 0x04 */ DEFINE_SCENE(HIDAN_scene, g_pn_03, SCENE_HIDAN, 18, 2, 6)
|
||||
/* 0x05 */ DEFINE_SCENE(MIZUsin_scene, g_pn_04, SCENE_MIZUSIN, 23, 1, 7)
|
||||
/* 0x06 */ DEFINE_SCENE(jyasinzou_scene, g_pn_05, SCENE_JYASINZOU, 25, 1, 8)
|
||||
/* 0x07 */ DEFINE_SCENE(HAKAdan_scene, g_pn_02, SCENE_HAKADAN, 24, 2, 9)
|
||||
/* 0x08 */ DEFINE_SCENE(HAKAdanCH_scene, g_pn_54, SCENE_HAKADANCH, 24, 2, 10)
|
||||
/* 0x09 */ DEFINE_SCENE(ice_doukutu_scene, g_pn_10, SCENE_ICE_DOUKUTO, 37, 0, 0)
|
||||
/* 0x0A */ DEFINE_SCENE(ganon_scene, none, SCENE_GANON, 0, 2, 0)
|
||||
/* 0x0B */ DEFINE_SCENE(men_scene, g_pn_11, SCENE_MEN, 27, 0, 0)
|
||||
/* 0x0C */ DEFINE_SCENE(gerudoway_scene, g_pn_49, SCENE_GERUDOWAY, 40, 0, 0)
|
||||
/* 0x0D */ DEFINE_SCENE(ganontika_scene, g_pn_09, SCENE_GANONTIKA, 26, 0, 0)
|
||||
/* 0x0E */ DEFINE_SCENE(ganon_sonogo_scene, none, SCENE_GANON_SONOGO, 51, 0, 0)
|
||||
/* 0x0F */ DEFINE_SCENE(ganontikasonogo_scene, none, SCENE_GANONTIKA_SONOGO, 52, 0, 0)
|
||||
/* 0x10 */ DEFINE_SCENE(takaraya_scene, g_pn_51, SCENE_TAKARAYA, 0, 0, 0)
|
||||
/* 0x11 */ DEFINE_SCENE(ydan_boss_scene, none, SCENE_YDAN_BOSS, 28, 0, 0)
|
||||
/* 0x12 */ DEFINE_SCENE(ddan_boss_scene, none, SCENE_DDAN_BOSS, 0, 0, 0)
|
||||
/* 0x13 */ DEFINE_SCENE(bdan_boss_scene, none, SCENE_BDAN_BOSS, 21, 0, 0)
|
||||
/* 0x14 */ DEFINE_SCENE(moribossroom_scene, none, SCENE_MORIBOSSROOM, 0, 1, 0)
|
||||
/* 0x15 */ DEFINE_SCENE(FIRE_bs_scene, none, SCENE_FIRE_BS, 18, 0, 0)
|
||||
/* 0x16 */ DEFINE_SCENE(MIZUsin_bs_scene, none, SCENE_MIZUSIN_BS, 29, 0, 0)
|
||||
/* 0x17 */ DEFINE_SCENE(jyasinboss_scene, none, SCENE_JYASINBOSS, 0, 0, 0)
|
||||
/* 0x18 */ DEFINE_SCENE(HAKAdan_bs_scene, none, SCENE_HAKADAN_BS, 24, 0, 0)
|
||||
/* 0x19 */ DEFINE_SCENE(ganon_boss_scene, none, SCENE_GANON_BOSS, 0, 0, 0)
|
||||
/* 0x1A */ DEFINE_SCENE(ganon_final_scene, none, SCENE_GANON_FINAL, 38, 0, 0)
|
||||
/* 0x1B */ DEFINE_SCENE(entra_scene, none, SCENE_ENTRA, 0, 0, 0)
|
||||
/* 0x1C */ DEFINE_SCENE(entra_n_scene, none, SCENE_ENTRA_N, 0, 0, 0)
|
||||
/* 0x1D */ DEFINE_SCENE(enrui_scene, none, SCENE_ENRUI, 0, 0, 0)
|
||||
/* 0x1E */ DEFINE_SCENE(market_alley_scene, g_pn_18, SCENE_MARKET_ALLEY, 0, 0, 0)
|
||||
/* 0x1F */ DEFINE_SCENE(market_alley_n_scene, g_pn_18, SCENE_MARKET_ALLEY_N, 0, 0, 0)
|
||||
/* 0x20 */ DEFINE_SCENE(market_day_scene, g_pn_17, SCENE_MARKET_DAY, 0, 0, 0)
|
||||
/* 0x21 */ DEFINE_SCENE(market_night_scene, g_pn_17, SCENE_MARKET_NIGHT, 0, 0, 0)
|
||||
/* 0x22 */ DEFINE_SCENE(market_ruins_scene, g_pn_17, SCENE_MARKET_RUINS, 0, 0, 0)
|
||||
/* 0x23 */ DEFINE_SCENE(shrine_scene, none, SCENE_SHRINE, 0, 0, 0)
|
||||
/* 0x24 */ DEFINE_SCENE(shrine_n_scene, none, SCENE_SHRINE_N, 0, 0, 0)
|
||||
/* 0x25 */ DEFINE_SCENE(shrine_r_scene, none, SCENE_SHRINE_R, 0, 0, 0)
|
||||
/* 0x26 */ DEFINE_SCENE(kokiri_home_scene, none, SCENE_KOKIRI_HOME, 0, 0, 0)
|
||||
/* 0x27 */ DEFINE_SCENE(kokiri_home3_scene, none, SCENE_KOKIRI_HOME3, 0, 0, 0)
|
||||
/* 0x28 */ DEFINE_SCENE(kokiri_home4_scene, none, SCENE_KOKIRI_HOME4, 0, 0, 0)
|
||||
/* 0x29 */ DEFINE_SCENE(kokiri_home5_scene, none, SCENE_KOKIRI_HOME5, 0, 0, 0)
|
||||
/* 0x2A */ DEFINE_SCENE(kakariko_scene, none, SCENE_KAKARIKO, 0, 0, 0)
|
||||
/* 0x2B */ DEFINE_SCENE(kakariko3_scene, none, SCENE_KAKARIKO3, 0, 0, 0)
|
||||
/* 0x2C */ DEFINE_SCENE(shop1_scene, g_pn_23, SCENE_SHOP1, 0, 0, 0)
|
||||
/* 0x2D */ DEFINE_SCENE(kokiri_shop_scene, g_pn_19, SCENE_KOKIRI_SHOP, 0, 0, 0)
|
||||
/* 0x2E */ DEFINE_SCENE(golon_scene, g_pn_20, SCENE_GOLON, 0, 0, 0)
|
||||
/* 0x2F */ DEFINE_SCENE(zoora_scene, g_pn_21, SCENE_ZOORA, 0, 0, 0)
|
||||
/* 0x30 */ DEFINE_SCENE(drag_scene, g_pn_24, SCENE_DRAG, 0, 0, 0)
|
||||
/* 0x31 */ DEFINE_SCENE(alley_shop_scene, g_pn_24, SCENE_ALLEY_SHOP, 0, 0, 0)
|
||||
/* 0x32 */ DEFINE_SCENE(night_shop_scene, g_pn_56, SCENE_NIGHT_SHOP, 0, 0, 0)
|
||||
/* 0x33 */ DEFINE_SCENE(face_shop_scene, g_pn_50, SCENE_FACE_SHOP, 0, 0, 0)
|
||||
/* 0x34 */ DEFINE_SCENE(link_home_scene, none, SCENE_LINK_HOME, 0, 0, 0)
|
||||
/* 0x35 */ DEFINE_SCENE(impa_scene, none, SCENE_IMPA, 0, 0, 0)
|
||||
/* 0x36 */ DEFINE_SCENE(malon_stable_scene, g_pn_48, SCENE_MALON_STABLE, 0, 0, 0)
|
||||
/* 0x37 */ DEFINE_SCENE(labo_scene, none, SCENE_LABO, 0, 0, 0)
|
||||
/* 0x38 */ DEFINE_SCENE(hylia_labo_scene, g_pn_26, SCENE_HYLIA_LABO, 43, 0, 0)
|
||||
/* 0x39 */ DEFINE_SCENE(tent_scene, none, SCENE_TENT, 0, 0, 0)
|
||||
/* 0x3A */ DEFINE_SCENE(hut_scene, g_pn_25, SCENE_HUT, 0, 0, 0)
|
||||
/* 0x3B */ DEFINE_SCENE(daiyousei_izumi_scene, g_pn_13, SCENE_DAIYOUSEI_IZUMI, 33, 0, 0)
|
||||
/* 0x3C */ DEFINE_SCENE(yousei_izumi_tate_scene, g_pn_45, SCENE_YOUSEI_IZUMI_TATE, 39, 0, 0)
|
||||
/* 0x3D */ DEFINE_SCENE(yousei_izumi_yoko_scene, g_pn_13, SCENE_YOUSEI_IZUMI_YOKO, 33, 0, 0)
|
||||
/* 0x3E */ DEFINE_SCENE(kakusiana_scene, none, SCENE_KAKUSIANA, 31, 0, 0)
|
||||
/* 0x3F */ DEFINE_SCENE(hakaana_scene, none, SCENE_HAKAANA, 48, 0, 0)
|
||||
/* 0x40 */ DEFINE_SCENE(hakaana2_scene, none, SCENE_HAKAANA2, 39, 0, 0)
|
||||
/* 0x41 */ DEFINE_SCENE(hakaana_ouke_scene, g_pn_44, SCENE_HAKAANA_OUKE, 42, 0, 0)
|
||||
/* 0x42 */ DEFINE_SCENE(syatekijyou_scene, g_pn_15, SCENE_SYATEKIJYOU, 34, 0, 0)
|
||||
/* 0x43 */ DEFINE_SCENE(tokinoma_scene, g_pn_16, SCENE_TOKINOMA, 30, 0, 0)
|
||||
/* 0x44 */ DEFINE_SCENE(kenjyanoma_scene, g_pn_14, SCENE_KENJYANOMA, 32, 0, 0)
|
||||
/* 0x45 */ DEFINE_SCENE(hairal_niwa_scene, g_pn_12, SCENE_HAIRAL_NIWA, 35, 0, 0)
|
||||
/* 0x46 */ DEFINE_SCENE(hairal_niwa_n_scene, g_pn_12, SCENE_HAIRAL_NIWA_N, 35, 0, 0)
|
||||
/* 0x47 */ DEFINE_SCENE(hiral_demo_scene, none, SCENE_HIRAL_DEMO, 0, 0, 0)
|
||||
/* 0x48 */ DEFINE_SCENE(hakasitarelay_scene, g_pn_57, SCENE_HAKASITARELAY, 48, 0, 0)
|
||||
/* 0x49 */ DEFINE_SCENE(turibori_scene, g_pn_46, SCENE_TURIBORI, 50, 0, 0)
|
||||
/* 0x4A */ DEFINE_SCENE(nakaniwa_scene, g_pn_12, SCENE_NAKANIWA, 47, 0, 0)
|
||||
/* 0x4B */ DEFINE_SCENE(bowling_scene, g_pn_47, SCENE_BOWLING, 41, 0, 0)
|
||||
/* 0x4C */ DEFINE_SCENE(souko_scene, none, SCENE_SOUKO, 44, 0, 0)
|
||||
/* 0x4D */ DEFINE_SCENE(miharigoya_scene, none, SCENE_MIHARIGOYA, 45, 0, 0)
|
||||
/* 0x4E */ DEFINE_SCENE(mahouya_scene, g_pn_24, SCENE_MAHOUYA, 46, 0, 0)
|
||||
/* 0x4F */ DEFINE_SCENE(ganon_demo_scene, none, SCENE_GANON_DEMO, 36, 0, 0)
|
||||
/* 0x50 */ DEFINE_SCENE(kinsuta_scene, g_pn_22, SCENE_KINSUTA, 0, 0, 0)
|
||||
/* 0x51 */ DEFINE_SCENE(spot00_scene, g_pn_27, SCENE_SPOT00, 1, 0, 0)
|
||||
/* 0x52 */ DEFINE_SCENE(spot01_scene, g_pn_28, SCENE_SPOT01, 2, 0, 0)
|
||||
/* 0x53 */ DEFINE_SCENE(spot02_scene, g_pn_29, SCENE_SPOT02, 0, 0, 0)
|
||||
/* 0x54 */ DEFINE_SCENE(spot03_scene, g_pn_30, SCENE_SPOT03, 3, 0, 0)
|
||||
/* 0x55 */ DEFINE_SCENE(spot04_scene, g_pn_31, SCENE_SPOT04, 4, 0, 0)
|
||||
/* 0x56 */ DEFINE_SCENE(spot05_scene, g_pn_52, SCENE_SPOT05, 47, 0, 0)
|
||||
/* 0x57 */ DEFINE_SCENE(spot06_scene, g_pn_32, SCENE_SPOT06, 5, 0, 0)
|
||||
/* 0x58 */ DEFINE_SCENE(spot07_scene, g_pn_33, SCENE_SPOT07, 6, 0, 0)
|
||||
/* 0x59 */ DEFINE_SCENE(spot08_scene, g_pn_34, SCENE_SPOT08, 7, 0, 0)
|
||||
/* 0x5A */ DEFINE_SCENE(spot09_scene, g_pn_35, SCENE_SPOT09, 8, 0, 0)
|
||||
/* 0x5B */ DEFINE_SCENE(spot10_scene, g_pn_36, SCENE_SPOT10, 9, 0, 0)
|
||||
/* 0x5C */ DEFINE_SCENE(spot11_scene, g_pn_55, SCENE_SPOT11, 10, 0, 0)
|
||||
/* 0x5D */ DEFINE_SCENE(spot12_scene, g_pn_53, SCENE_SPOT12, 11, 0, 0)
|
||||
/* 0x5E */ DEFINE_SCENE(spot13_scene, g_pn_37, SCENE_SPOT13, 12, 0, 0)
|
||||
/* 0x5F */ DEFINE_SCENE(spot15_scene, g_pn_38, SCENE_SPOT15, 13, 0, 0)
|
||||
/* 0x60 */ DEFINE_SCENE(spot16_scene, g_pn_39, SCENE_SPOT16, 14, 0, 0)
|
||||
/* 0x61 */ DEFINE_SCENE(spot17_scene, g_pn_40, SCENE_SPOT17, 15, 0, 0)
|
||||
/* 0x62 */ DEFINE_SCENE(spot18_scene, g_pn_41, SCENE_SPOT18, 16, 0, 0)
|
||||
/* 0x63 */ DEFINE_SCENE(spot20_scene, g_pn_42, SCENE_SPOT20, 17, 0, 0)
|
||||
/* 0x64 */ DEFINE_SCENE(ganon_tou_scene, g_pn_43, SCENE_GANON_TOU, 36, 0, 0)
|
||||
// Debug-only scenes
|
||||
/* 0x65 */ DEFINE_SCENE(test01_scene, none, SCENE_TEST01, 47, 0, 0)
|
||||
/* 0x66 */ DEFINE_SCENE(besitu_scene, none, SCENE_BESITU, 49, 0, 0)
|
||||
/* 0x67 */ DEFINE_SCENE(depth_test_scene, none, SCENE_DEPTH_TEST, 0, 0, 0)
|
||||
/* 0x68 */ DEFINE_SCENE(syotes_scene, none, SCENE_SYOTES, 0, 0, 0)
|
||||
/* 0x69 */ DEFINE_SCENE(syotes2_scene, none, SCENE_SYOTES2, 0, 0, 0)
|
||||
/* 0x6A */ DEFINE_SCENE(sutaru_scene, none, SCENE_SUTARU, 0, 0, 0)
|
||||
/* 0x6B */ DEFINE_SCENE(hairal_niwa2_scene, g_pn_12, SCENE_HAIRAL_NIWA2, 35, 0, 0)
|
||||
/* 0x6C */ DEFINE_SCENE(sasatest_scene, none, SCENE_SASATEST, 0, 0, 0)
|
||||
/* 0x6D */ DEFINE_SCENE(testroom_scene, none, SCENE_TESTROOM, 0, 0, 0)
|
||||
@@ -102,7 +102,7 @@ typedef struct {
|
||||
} OSPifRam; // size = 0x40
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 type;
|
||||
/* 0x00 */ u16 type;
|
||||
/* 0x02 */ u8 status;
|
||||
/* 0x03 */ u8 errno;
|
||||
} OSContStatus; // size = 0x04
|
||||
|
||||
@@ -15,4 +15,6 @@
|
||||
#define OS_PHYSICAL_TO_K0(x) (void*)(((u32)(x)+0x80000000))
|
||||
#define OS_PHYSICAL_TO_K1(x) (void*)(((u32)(x)+0xA0000000))
|
||||
|
||||
#define OS_SEC_TO_CYCLES(n) OS_USEC_TO_CYCLES((n) * 1000 * 1000)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
/* Private macro to wrap other macros in do {...} while (0) */
|
||||
#define _DW(macro) do {macro} while (0)
|
||||
|
||||
#define F3DEX_GBI_2
|
||||
#ifndef F3DEX_GBI
|
||||
#define F3DEX_GBI_2
|
||||
#endif
|
||||
|
||||
#ifdef F3DEX_GBI_2
|
||||
# ifndef F3DEX_GBI
|
||||
|
||||
@@ -12,10 +12,10 @@
|
||||
|
||||
/*
|
||||
* the SHIFT macros are used to build display list commands, inserting
|
||||
* bit-fields into a 32-bit word. They take a value, a shift amount,
|
||||
* bit-fields into a 32-bit word. They take a value, a shift amount,
|
||||
* and a width.
|
||||
*
|
||||
* For the left shift, the lower bits of the value are masked,
|
||||
* For the left shift, the lower bits of the value are masked,
|
||||
* then shifted left.
|
||||
*
|
||||
* For the right shift, the value is shifted right, then the lower bits
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#define PFS_ERR_NOPACK 1 /* no memory card is plugged or */
|
||||
#define PFS_ERR_NEW_PACK 2 /* ram pack has been changed to a different one */
|
||||
#define PFS_ERR_INCONSISTENT 3 /* need to run Pfschecker*/
|
||||
#define PFS_ERR_CONTRFAIL CONT_OVERRUN_ERROR
|
||||
#define PFS_ERR_CONTRFAIL CONT_OVERRUN_ERROR
|
||||
#define PFS_ERR_INVALID 5 /* invalid parameter or file not exist*/
|
||||
#define PFS_ERR_BAD_DATA 6 /* the data read from pack are bad*/
|
||||
#define PFS_DATA_FULL 7 /* no free pages on ram pack*/
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
#define CACHERR_PIDX_MASK 0x00000007 // primary cache index
|
||||
#define CACHERR_PIDX_SHIFT 12 // bits 2..0 are paddr14..12
|
||||
|
||||
/*
|
||||
/*
|
||||
* R4000 family supports hardware watchpoints:
|
||||
* C0_WATCHLO:
|
||||
* bits 31..3 are bits 31..3 of physaddr to watch
|
||||
@@ -337,7 +337,7 @@
|
||||
#define C0_TAGHI C_REG(29) // cache operations
|
||||
#define C0_ERROR_EPC C_REG(30) // ECC error prg. counter
|
||||
|
||||
// floating-point status register
|
||||
// floating-point status register
|
||||
#define C1_FPCSR C_REG(31)
|
||||
|
||||
#define FPCSR_FS 0x01000000 // flush denorm to zero
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
#define OS_PRIORITY_APPMAX 127
|
||||
#define OS_PRIORITY_IDLE 0
|
||||
|
||||
#define OS_PRIORITY_THREADTAIL -1
|
||||
|
||||
#define OS_STATE_STOPPED 1
|
||||
#define OS_STATE_RUNNABLE 2
|
||||
#define OS_STATE_RUNNING 4
|
||||
|
||||
@@ -30,7 +30,7 @@ typedef union {
|
||||
u16 intPart[4][4];
|
||||
u16 fracPart[4][4];
|
||||
};
|
||||
long long int forc_structure_alignment;
|
||||
long long int force_structure_alignment;
|
||||
} Mtx;
|
||||
|
||||
typedef float MtxF_t[4][4];
|
||||
|
||||
+8
-419
@@ -5,14 +5,6 @@
|
||||
#include "segment_symbols.h"
|
||||
|
||||
extern Mtx D_01000000;
|
||||
extern Gfx D_06025218[];
|
||||
extern Gfx D_060252D8[];
|
||||
extern Gfx D_06025438[];
|
||||
extern Gfx D_06025598[];
|
||||
extern Gfx D_06025658[];
|
||||
extern Gfx D_060257B8[];
|
||||
extern Gfx D_0602A738[];
|
||||
extern Gfx D_0602CB48[];
|
||||
|
||||
extern u32 osTvType;
|
||||
extern u32 osRomBase;
|
||||
@@ -31,10 +23,8 @@ extern u32 gViConfigFeatures;
|
||||
extern f32 gViConfigXScale;
|
||||
extern f32 gViConfigYScale;
|
||||
extern OSPiHandle* gCartHandle;
|
||||
extern u32 gCurrentRegion;
|
||||
extern u32 __osPiAccessQueueEnabled;
|
||||
extern OSViMode osViModePalLan1;
|
||||
extern u64 osClockRate;
|
||||
extern s32 osViClock;
|
||||
extern u32 __osShutdown;
|
||||
extern OSHWIntr __OSGlobalIntMask;
|
||||
@@ -58,98 +48,22 @@ extern u8 gBuildMakeOption[];
|
||||
extern OSMesgQueue gPiMgrCmdQ;
|
||||
extern OSViMode gViConfigMode;
|
||||
extern u8 D_80013960;
|
||||
extern OSMesg piAccessBuf;
|
||||
extern OSMesgQueue __osPiAccessQueue;
|
||||
extern OSPiHandle __Dom1SpeedParam;
|
||||
extern OSPiHandle __Dom2SpeedParam;
|
||||
extern OSThread __osThreadSave;
|
||||
extern OSTimer __osBaseTimer;
|
||||
extern OSTime __osCurrentTime;
|
||||
extern u32 __osBaseCounter;
|
||||
extern u32 __osViIntrCount;
|
||||
extern u32 __osTimerCounter;
|
||||
extern OSPiHandle __CartRomHandle;
|
||||
extern DmaEntry gDmaDataTable[0x60C];
|
||||
//extern ? D_800D7288;
|
||||
extern u64 D_801120C0[];
|
||||
extern u8 D_80113070[];
|
||||
extern u64 gJpegUCode[];
|
||||
//extern ? D_80115440;
|
||||
//extern ? D_80115760;
|
||||
//extern ? D_80115770;
|
||||
//extern ? D_8011578C;
|
||||
//extern ? D_8011579C;
|
||||
//extern ? D_801157AC;
|
||||
//extern ? D_801157BC;
|
||||
//extern ? D_801157CC;
|
||||
//extern ? D_801157DC;
|
||||
//extern ? D_801157EC;
|
||||
//extern ? D_801157FC;
|
||||
//extern ? D_801158C0;
|
||||
//extern ? D_801158CC;
|
||||
//extern ? D_801158D0;
|
||||
//extern ? D_801158D4;
|
||||
//extern ? D_801158D8;
|
||||
//extern ? D_801158DC;
|
||||
//extern ? D_801158E0;
|
||||
//extern ? D_801158E4;
|
||||
//extern ? D_801158E8;
|
||||
//extern ? D_801158EC;
|
||||
//extern ? D_801158F0;
|
||||
//extern ? D_801158F4;
|
||||
//extern ? D_801158F8;
|
||||
//extern ? D_801158FC;
|
||||
//extern ? D_80115908;
|
||||
//extern ? D_80115914;
|
||||
//extern ? D_80115920;
|
||||
//extern ? D_8011592C;
|
||||
//extern ? D_801159A4;
|
||||
//extern ? D_801159A5;
|
||||
//extern ? D_801159A6;
|
||||
//extern ? D_801159A8;
|
||||
//extern ? D_801159A9;
|
||||
//extern ? D_801159AA;
|
||||
extern EffectSsOverlay gEffectSsOverlayTable[EFFECT_SS_TYPE_MAX];
|
||||
extern Gfx D_80116280[];
|
||||
extern ActorOverlay gActorOverlayTable[ACTOR_ID_MAX]; // original name: "actor_dlftbls" 801162A0
|
||||
extern s32 gMaxActorId; // original name: "MaxProfile"
|
||||
//extern ? D_80119E2C;
|
||||
//extern ? D_80119E52;
|
||||
//extern ? D_80119E54;
|
||||
//extern ? D_80119E94;
|
||||
//extern ? D_80119EAC;
|
||||
extern s32 gDbgCamEnabled;
|
||||
//extern ? D_8011DB20;
|
||||
//extern ? D_8011DE00;
|
||||
//extern ? D_8011DE18;
|
||||
//extern ? D_8011DE20;
|
||||
//extern ? D_8011DE2C;
|
||||
//extern ? D_8011DE54;
|
||||
//extern ? D_8011DE6C;
|
||||
//extern ? D_8011DE78;
|
||||
//extern ? D_8011DEAC;
|
||||
//extern ? D_8011DEEC;
|
||||
//extern ? D_8011DF5C;
|
||||
//extern ? D_8011DF6C;
|
||||
//extern ? D_8011DFAC;
|
||||
//extern ? D_8011DFEC;
|
||||
//extern ? D_8011E008;
|
||||
//extern ? D_8011E028;
|
||||
//extern ? D_8011E02A;
|
||||
//extern ? D_8011E02C;
|
||||
//extern ? D_8011E02E;
|
||||
//extern ? D_8011E056;
|
||||
//extern ? D_8011E058;
|
||||
//extern ? D_8011E05A;
|
||||
//extern ? D_8011E068;
|
||||
//extern ? D_8011E06A;
|
||||
//extern ? D_8011E06C;
|
||||
//extern ? D_8011E06E;
|
||||
//extern ? D_8011E096;
|
||||
//extern ? D_8011E098;
|
||||
//extern ? D_8011E09A;
|
||||
extern s16 D_8011E0B0;
|
||||
//extern ? D_8011E0D4;
|
||||
extern GameStateOverlay gGameStateOverlayTable[6];
|
||||
extern u8 gWeatherMode;
|
||||
extern u8 D_8011FB34;
|
||||
@@ -164,11 +78,9 @@ extern s16 gSpoilingItems[3];
|
||||
extern s16 gSpoilingItemReverts[3];
|
||||
extern FlexSkeletonHeader* gPlayerSkelHeaders[2];
|
||||
extern u8 gPlayerModelTypes[][5];
|
||||
extern Gfx* D_80125D68[];
|
||||
extern Gfx* D_80125DE8[];
|
||||
extern Gfx* D_80125E08[];
|
||||
extern Gfx* D_80125E18[];
|
||||
extern Gfx* D_80125E58[];
|
||||
extern Gfx* D_80125EF8[];
|
||||
extern Gfx gCullBackDList[];
|
||||
extern Gfx gCullFrontDList[];
|
||||
@@ -177,7 +89,6 @@ extern u32 gBitFlags[32];
|
||||
extern u16 gEquipMasks[4];
|
||||
extern u16 gEquipNegMasks[4];
|
||||
extern u32 gUpgradeMasks[8];
|
||||
extern u32 gUpgradeNegMasks[8];
|
||||
extern u8 gEquipShifts[4];
|
||||
extern u8 gUpgradeShifts[8];
|
||||
extern u16 gUpgradeCapacities[8][4];
|
||||
@@ -191,133 +102,21 @@ extern u32 gObjectTableSize;
|
||||
extern RomFile gObjectTable[OBJECT_ID_MAX];
|
||||
extern EntranceInfo gEntranceTable[1556];
|
||||
extern SceneTableEntry gSceneTable[SCENE_ID_MAX];
|
||||
//extern ? D_8012A4A0;
|
||||
extern u16 gSramSlotOffsets[];
|
||||
//extern ? D_8012A690;
|
||||
//extern ? D_8012A69C;
|
||||
//extern ? D_8012A6A4;
|
||||
//extern ? D_8012A704;
|
||||
//extern ? D_8012A71C;
|
||||
// 4 16-colors palettes
|
||||
extern u64 gMojiFontTLUTs[4][4]; // original name: "moji_tlut"
|
||||
extern u64 gMojiFontTex[]; // original name: "font_ff"
|
||||
//extern ? D_8012AC90;
|
||||
//extern ? D_8012ACA0;
|
||||
//extern ? D_8012AD20;
|
||||
//extern ? D_8012AD2C;
|
||||
//extern ? D_8012AD40;
|
||||
//extern ? D_8012ADC0;
|
||||
//extern ? D_8012ADD8;
|
||||
//extern ? D_8012AE18;
|
||||
//extern ? D_8012AE24;
|
||||
//extern ? D_8012AE30;
|
||||
//extern ? D_8012AE3C;
|
||||
//extern ? D_8012AEBC;
|
||||
//extern ? D_8012AF0C;
|
||||
//extern ? D_8012B000;
|
||||
//extern ? D_8012B030;
|
||||
//extern ? D_8012B060;
|
||||
//extern ? D_8012BA90;
|
||||
//extern ? D_8012BBA8;
|
||||
//extern ? D_8012BFA8;
|
||||
//extern ? D_8012C3A8;
|
||||
//extern ? D_8012C7A8;
|
||||
//extern ? D_8012CDC8;
|
||||
//extern ? D_8012CEA0;
|
||||
//extern ? D_8012CEE0;
|
||||
//extern ? D_8012CEE4;
|
||||
//extern ? D_8012CEE8;
|
||||
//extern ? D_8012CEEC;
|
||||
//extern ? D_8012CEF0;
|
||||
//extern ? D_8012CEF4;
|
||||
//extern ? D_8012CEF8;
|
||||
//extern ? D_8012CF04;
|
||||
//extern ? D_8012CF08;
|
||||
//extern ? D_8012CF0C;
|
||||
//extern ? D_8012CF10;
|
||||
//extern ? D_8012CF14;
|
||||
//extern ? D_8012CF18;
|
||||
//extern ? D_8012CF24;
|
||||
//extern ? D_8012CF30;
|
||||
//extern ? D_8012CF34;
|
||||
//extern ? D_8012CF38;
|
||||
//extern ? D_8012CF3C;
|
||||
//extern ? D_8012CF40;
|
||||
//extern ? D_8012CF44;
|
||||
//extern ? D_8012CF48;
|
||||
//extern ? D_8012CF4C;
|
||||
//extern ? D_8012CF50;
|
||||
//extern ? D_8012CF60;
|
||||
//extern ? D_8012CF64;
|
||||
//extern ? D_8012CF68;
|
||||
//extern ? D_8012CF6C;
|
||||
//extern ? D_8012CF70;
|
||||
//extern ? D_8012CF74;
|
||||
//extern ? D_8012CF78;
|
||||
//extern ? D_8012CF7C;
|
||||
//extern ? D_8012CF80;
|
||||
//extern ? D_8012CF84;
|
||||
//extern ? D_8012CF88;
|
||||
//extern ? D_8012CF94;
|
||||
//extern ? D_8012CF98;
|
||||
//extern ? D_8012CF9C;
|
||||
//extern ? D_8012CFA4;
|
||||
//extern ? D_8012CFA8;
|
||||
//extern ? D_8012CFAC;
|
||||
//extern ? D_8012CFB0;
|
||||
//extern ? D_8012CFB4;
|
||||
//extern ? D_8012CFC4;
|
||||
//extern ? D_8012CFD0;
|
||||
//extern ? D_8012CFE4;
|
||||
//extern ? D_8012CFF8;
|
||||
//extern ? D_8012D00C;
|
||||
//extern ? D_8012D020;
|
||||
//extern ? D_8012D034;
|
||||
//extern ? D_8012D05C;
|
||||
//extern ? D_8012D070;
|
||||
//extern ? D_8012D084;
|
||||
//extern ? D_8012D0AC;
|
||||
//extern ? D_8012D0C0;
|
||||
//extern ? D_8012D0D4;
|
||||
//extern ? D_8012D0E4;
|
||||
//extern ? D_8012D0F8;
|
||||
//extern ? D_8012D103;
|
||||
//extern ? D_8012D10C;
|
||||
//extern ? D_8012D110;
|
||||
//extern ? D_8012D114;
|
||||
//extern ? D_8012D128;
|
||||
//extern ? D_8012D13C;
|
||||
//extern ? D_8012D14C;
|
||||
//extern ? sDbCameraColors;
|
||||
//extern ? D_8012D170;
|
||||
//extern ? D_8012D172;
|
||||
extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[KALEIDO_OVL_MAX];
|
||||
extern KaleidoMgrOverlay* gKaleidoMgrCurOvl;
|
||||
extern u8 gBossMarkState;
|
||||
extern void* D_8012D1F0;
|
||||
//extern ? D_8012D200;
|
||||
//extern ? D_8012D207;
|
||||
//extern ? D_8012D210;
|
||||
//extern ? D_8012D230;
|
||||
//extern ? D_8012D248;
|
||||
//extern ? D_8012D260;
|
||||
//extern ? D_8012D264;
|
||||
extern s32 gScreenWidth;
|
||||
extern s32 gScreenHeight;
|
||||
extern u32 gSystemHeapSize;
|
||||
extern Mtx gMtxClear;
|
||||
extern MtxF gMtxFClear;
|
||||
extern u8 D_8012DBB0;
|
||||
extern u32 D_8012DBC0;
|
||||
extern u32 gIsCtrlr2Valid;
|
||||
extern vu32 gIrqMgrResetStatus;
|
||||
extern volatile OSTime gIrqMgrRetraceTime;
|
||||
extern s32 gDebugArenaLogSeverity;
|
||||
//extern ? sUCodeDisasGeometryModes;
|
||||
//extern ? sUCodeDisasMtxFlags;
|
||||
//extern ? sUCodeDisasRenderModeFlags;
|
||||
//extern ? D_8012DDDC;
|
||||
//extern ? sUCodeDisasModeHMacros;
|
||||
//extern ? sUCodeDisasModeLMacros;
|
||||
extern s16* gWaveSamples[9];
|
||||
extern f32 gBendPitchOneOctaveFrequencies[256];
|
||||
extern f32 gBendPitchTwoSemitonesFrequencies[256];
|
||||
@@ -347,30 +146,19 @@ extern SoundParams* gSoundParams[7];
|
||||
extern char D_80133390[];
|
||||
extern char D_80133398[];
|
||||
extern SoundBankEntry* gSoundBanks[7];
|
||||
extern u8 sBankSizes[7];
|
||||
extern u8 gSfxChannelLayout;
|
||||
extern u16 D_801333D0;
|
||||
extern Vec3f D_801333D4;
|
||||
extern f32 D_801333E0;
|
||||
extern s8 D_801333E8;
|
||||
extern u8 D_801333F0;
|
||||
extern u8 gAudioSfxSwapOff;
|
||||
extern u8 D_801333F8;
|
||||
//extern ? sSeqCmdWrPos;
|
||||
//extern ? sSeqCmdRdPos;
|
||||
extern u8 D_80133408;
|
||||
extern u8 D_8013340C;
|
||||
extern u8 gAudioSpecId;
|
||||
extern u8 D_80133418;
|
||||
extern AudioSpec gAudioSpecs[18];
|
||||
extern s32 gOverlayLogSeverity;
|
||||
//extern ? D_80134480;
|
||||
//extern ? D_80134484;
|
||||
extern s32 gSystemArenaLogSeverity;
|
||||
//extern ? D_801344C0;
|
||||
extern u32 gOSSiAccessQueueCreated; // = 0;
|
||||
extern u32 gOSContInitialized; // = 0
|
||||
extern s32 __osPfsInodeCacheChannel;
|
||||
extern u8 __osPfsInodeCacheBank;
|
||||
extern s32 __osPfsLastChannel;
|
||||
|
||||
@@ -378,8 +166,6 @@ extern const s16 D_8014A6C0[];
|
||||
#define gTatumsPerBeat (D_8014A6C0[1])
|
||||
extern const AudioContextInitSizes D_8014A6C4;
|
||||
extern s16 gOcarinaSongItemMap[];
|
||||
extern u8 gAudioBankTable[];
|
||||
extern u8 D_80155340[];
|
||||
extern u8 gSoundFontTable[];
|
||||
extern u8 gSequenceFontTable[];
|
||||
extern u8 gSequenceTable[];
|
||||
@@ -389,107 +175,8 @@ extern u8 D_80157580[];
|
||||
extern u8 D_801579A0[];
|
||||
extern u64 gJpegUCodeData[];
|
||||
|
||||
//extern ? D_8015BC30;
|
||||
//extern ? D_8015BC3C;
|
||||
//extern ? D_8015BC48;
|
||||
//extern ? D_8015BC58;
|
||||
//extern ? D_8015BC64;
|
||||
//extern ? D_8015BC70;
|
||||
//extern ? D_8015BC80;
|
||||
//extern ? D_8015BC8C;
|
||||
//extern ? D_8015BC98;
|
||||
//extern ? D_8015BCA8;
|
||||
//extern ? D_8015BCB4;
|
||||
//extern ? D_8015BCC0;
|
||||
//extern ? D_8015BCD0;
|
||||
//extern ? D_8015BCDC;
|
||||
//extern ? D_8015BCE8;
|
||||
//extern ? D_8015BCF8;
|
||||
//extern ? D_8015BCFC;
|
||||
//extern ? D_8015BD00;
|
||||
//extern ? D_8015BD08;
|
||||
//extern ? D_8015BD0A;
|
||||
//extern ? D_8015BD0C;
|
||||
//extern ? D_8015BD0E;
|
||||
//extern ? D_8015BD10;
|
||||
//extern ? D_8015BD34;
|
||||
//extern ? D_8015BD38;
|
||||
//extern ? D_8015BD3C;
|
||||
//extern ? D_8015BD50;
|
||||
//extern ? D_8015BD70;
|
||||
//extern ? D_8015BD7C;
|
||||
//extern ? D_8015BD80;
|
||||
//extern ? D_8015BD84;
|
||||
//extern ? D_8015BD90;
|
||||
//extern ? D_8015BD9C;
|
||||
//extern ? D_8015CE46;
|
||||
//extern ? playerFloorPoly;
|
||||
//extern ? D_8015CE58;
|
||||
//extern ? D_8015CE80;
|
||||
//extern ? D_8015CE8C;
|
||||
//extern ? D_8015CEA0;
|
||||
//extern ? D_8015CEA8;
|
||||
//extern ? D_8015CEC0;
|
||||
//extern ? D_8015CED0;
|
||||
//extern ? D_8015CF00;
|
||||
//extern ? D_8015CF10;
|
||||
//extern ? D_8015CF12;
|
||||
//extern ? D_8015CF14;
|
||||
//extern ? D_8015D3A4;
|
||||
//extern ? D_8015D3A8;
|
||||
//extern ? D_8015D3CC;
|
||||
//extern ? D_8015D3D0;
|
||||
//extern ? D_8015D3D8;
|
||||
//extern ? D_8015D3DA;
|
||||
//extern ? D_8015D3DC;
|
||||
//extern ? D_8015D86C;
|
||||
//extern ? D_8015D870;
|
||||
//extern ? D_8015D894;
|
||||
//extern ? D_8015D898;
|
||||
//extern ? D_8015D8A0;
|
||||
//extern ? D_8015D8A2;
|
||||
//extern ? D_8015D8A4;
|
||||
//extern ? D_8015DD34;
|
||||
//extern ? D_8015DD38;
|
||||
//extern ? D_8015DD5C;
|
||||
//extern ? D_8015DD60;
|
||||
//extern ? D_8015DD68;
|
||||
//extern ? D_8015DD6A;
|
||||
//extern ? D_8015DD6C;
|
||||
//extern ? D_8015E1FC;
|
||||
//extern ? D_8015E200;
|
||||
//extern ? D_8015E224;
|
||||
//extern ? D_8015E228;
|
||||
//extern ? D_8015E230;
|
||||
//extern ? D_8015E268;
|
||||
//extern ? D_8015E2A0;
|
||||
//extern ? D_8015E2D8;
|
||||
//extern ? D_8015E310;
|
||||
//extern ? D_8015E320;
|
||||
//extern ? D_8015E358;
|
||||
//extern ? D_8015E390;
|
||||
//extern ? D_8015E3A0;
|
||||
//extern ? D_8015E3D8;
|
||||
//extern ? D_8015E410;
|
||||
//extern ? D_8015E420;
|
||||
//extern ? D_8015E430;
|
||||
//extern ? D_8015E440;
|
||||
//extern ? D_8015E478;
|
||||
//extern ? D_8015E4B0;
|
||||
//extern ? D_8015E4C0;
|
||||
//extern ? D_8015E4F8;
|
||||
//extern ? D_8015E530;
|
||||
//extern ? D_8015E564;
|
||||
//extern ? D_8015E598;
|
||||
//extern ? D_8015E5A8;
|
||||
//extern ? D_8015E5DC;
|
||||
//extern ? D_8015E610;
|
||||
//extern ? D_8015E61C;
|
||||
//extern ? D_8015E628;
|
||||
//extern ? D_8015E638;
|
||||
//extern ? D_8015E648;
|
||||
extern SaveContext gSaveContext; // 0x8015E660
|
||||
extern GameInfo* gGameInfo; // 0x8015FA90
|
||||
extern SaveContext gSaveContext;
|
||||
extern GameInfo* gGameInfo;
|
||||
extern u16 D_8015FCC0;
|
||||
extern u16 D_8015FCC2;
|
||||
extern u16 D_8015FCC4;
|
||||
@@ -500,52 +187,14 @@ extern s16 gLensFlareScale;
|
||||
extern f32 gLensFlareColorIntensity;
|
||||
extern s16 gLensFlareScreenFillAlpha;
|
||||
extern LightningStrike gLightningStrike;
|
||||
//extern ? D_8015FDF8;
|
||||
extern MapData* gMapData;
|
||||
//extern ? D_80160020;
|
||||
//extern ? D_801600C0;
|
||||
extern u8 D_80161010;
|
||||
extern u8 D_801610D4;
|
||||
extern u8 D_801610D5;
|
||||
extern u8 D_801610DA;
|
||||
//extern ? D_80161118;
|
||||
//extern ? D_8016111A;
|
||||
//extern ? D_8016111C;
|
||||
//extern ? D_80161120;
|
||||
//extern ? D_8016112C;
|
||||
//extern ? D_80161138;
|
||||
//extern ? D_8016113C;
|
||||
//extern ? D_80161160;
|
||||
//extern ? D_8016116E;
|
||||
//extern ? D_80161170;
|
||||
//extern ? D_8016117E;
|
||||
//extern ? D_80161180;
|
||||
//extern ? D_80161240;
|
||||
//extern ? D_801612D0;
|
||||
//extern ? D_801612D2;
|
||||
//extern ? D_801612EC;
|
||||
extern f32 gBossMarkScale;
|
||||
extern PauseMapMarksData* gLoadedPauseMarkDataTable;
|
||||
extern s32 gTrnsnUnkState;
|
||||
extern Color_RGBA8_u32 D_801614B0;
|
||||
extern SpeedMeter gSpeedMeter;
|
||||
//extern ? D_801664F0;
|
||||
//extern ? D_80166500;
|
||||
//extern ? D_80166510;
|
||||
//extern ? D_80166528;
|
||||
//extern ? D_801665B0;
|
||||
//extern ? D_801665C0;
|
||||
//extern ? D_801665D0;
|
||||
//extern ? D_801665D4;
|
||||
//extern ? D_801665D8;
|
||||
//extern ? D_801665DC;
|
||||
//extern ? D_801665E0;
|
||||
//extern ? D_801665F0;
|
||||
//extern ? D_80166648;
|
||||
extern PreNmiBuff* gAppNmiBufferPtr;
|
||||
extern SchedContext gSchedContext;
|
||||
extern PadMgr gPadMgr;
|
||||
//extern ? D_80166D28;
|
||||
extern u32 gSegments[NUM_SEGMENTS];
|
||||
extern volatile OSTime D_8016A520;
|
||||
extern volatile OSTime D_8016A528;
|
||||
@@ -559,83 +208,23 @@ extern volatile OSTime gRSPAudioTotalTime;
|
||||
extern volatile OSTime gRSPGFXTotalTime;
|
||||
extern volatile OSTime gRSPOtherTotalTime;
|
||||
extern volatile OSTime gRDPTotalTime;
|
||||
extern SpeedMeterTimeEntry* gSpeedMeterTimeEntryPtr;
|
||||
//extern ? D_8016A590;
|
||||
//extern ? D_8016A594;
|
||||
//extern ? D_8016A598;
|
||||
//extern ? D_8016A5A0;
|
||||
//extern ? D_8016A5B8;
|
||||
//extern ? D_8016A5C4;
|
||||
//extern ? D_8016A5D0;
|
||||
//extern ? D_8016A5E8;
|
||||
//extern ? D_8016A5F8;
|
||||
//extern ? D_8016A608;
|
||||
//extern ? D_8016A618;
|
||||
//extern ? D_8016A628;
|
||||
//extern ? D_8016A638;
|
||||
//extern ? D_8016A688;
|
||||
//extern ? D_8016A698;
|
||||
//extern ? D_8016A6A8;
|
||||
//extern ? D_8016A6E8;
|
||||
//extern ? D_8016A6F8;
|
||||
//extern ? D_8016A704;
|
||||
//extern ? D_8016A710;
|
||||
//extern ? D_8016A720;
|
||||
//extern ? D_8016A724;
|
||||
//extern ? D_8016A728;
|
||||
//extern ? D_8016A730;
|
||||
//extern ? D_8016A732;
|
||||
//extern ? D_8016A734;
|
||||
//extern ? D_8016A736;
|
||||
//extern ? D_8016A738;
|
||||
//extern ? D_8016A73A;
|
||||
//extern ? D_8016A73C;
|
||||
//extern ? D_8016A73E;
|
||||
//extern ? D_8016A740;
|
||||
//extern ? D_8016A750;
|
||||
//extern ? D_8016A794;
|
||||
//extern ? D_8016A7AC;
|
||||
extern FaultThreadStruct gFaultStruct;
|
||||
|
||||
extern ActiveSound gActiveSounds[7][MAX_CHANNELS_PER_BANK]; // total size = 0xA8
|
||||
extern u8 gSoundBankMuted[];
|
||||
extern u8 D_801333F0;
|
||||
extern u8 gAudioSfxSwapOff;
|
||||
extern u16 gAudioSfxSwapSource[10];
|
||||
extern u16 gAudioSfxSwapTarget[10];
|
||||
extern u8 gAudioSfxSwapMode[10];
|
||||
//extern ? D_8016E320;
|
||||
//extern ? D_8016E348;
|
||||
extern unk_D_8016E750 D_8016E750[4];
|
||||
//extern ? D_8016EE8B;
|
||||
extern AudioContext gAudioContext; // at 0x8016F180
|
||||
//extern ? D_80174D28;
|
||||
//extern ? D_80174D38;
|
||||
//extern ? D_80174D48;
|
||||
//extern ? D_80174D64;
|
||||
//extern ? D_80174D68;
|
||||
//extern ? D_80174D88;
|
||||
//extern ? D_80174DA0;
|
||||
//extern ? D_80174DB8;
|
||||
//extern ? D_80174DBC;
|
||||
//extern ? D_80174DC0;
|
||||
extern AudioContext gAudioContext;
|
||||
extern void(*D_801755D0)(void);
|
||||
|
||||
extern u32 __osMalloc_FreeBlockTest_Enable;
|
||||
//extern ? D_80175640;
|
||||
//extern ? D_80175670;
|
||||
//extern ? D_80175680;
|
||||
//extern ? D_80175688;
|
||||
//extern ? D_80175690;
|
||||
//extern ? D_80175698;
|
||||
//extern ? D_8017569C;
|
||||
//extern ? D_801756A0;
|
||||
//extern ? D_801756A8;
|
||||
extern Arena gSystemArena;
|
||||
extern OSPifRam osPifBuffers[MAXCONTROLLERS];
|
||||
extern OSMesg osSiMesgBuff[SIAccessQueueSize];
|
||||
extern OSMesgQueue gOSSiMessageQueue;
|
||||
extern OSPifRam __osPifInternalBuff;
|
||||
extern u8 __osContLastPoll;
|
||||
extern u8 __osMaxControllers;
|
||||
extern OSMesgQueue __osContMesgQueue;
|
||||
extern OSMesg __osContMesgBuff[4];
|
||||
extern __OSInode __osPfsInodeCache;
|
||||
extern OSPifRam gPifMempakBuf;
|
||||
extern u16 gZBuffer[SCREEN_HEIGHT][SCREEN_WIDTH]; // 0x25800 bytes
|
||||
|
||||
+2
-3
@@ -1,16 +1,15 @@
|
||||
#ifndef VT_H
|
||||
#define VT_H
|
||||
|
||||
// 3-bit color codes
|
||||
#define VT_COLOR_BLACK 0
|
||||
#define VT_COLOR_RED 1
|
||||
#define VT_COLOR_GREEN 2
|
||||
#define VT_COLOR_YELLOW 3
|
||||
#define VT_COLOR_BLUE 4
|
||||
#define VT_COLOR_PURPLE 5
|
||||
#define VT_COLOR_MAGENTA 5
|
||||
#define VT_COLOR_CYAN 6
|
||||
#define VT_COLOR_WHITE 7
|
||||
#define VT_COLOR_LIGHTGRAY 8
|
||||
#define VT_COLOR_DARKGRAY 9
|
||||
|
||||
#define VT_COLOR_FOREGROUND 3
|
||||
#define VT_COLOR_BACKGROUND 4
|
||||
|
||||
+48
-151
@@ -21,6 +21,7 @@
|
||||
#include "z64dma.h"
|
||||
#include "z64math.h"
|
||||
#include "z64map_mark.h"
|
||||
#include "z64skin.h"
|
||||
#include "z64transition.h"
|
||||
#include "z64interface.h"
|
||||
#include "sequence.h"
|
||||
@@ -28,6 +29,9 @@
|
||||
#include "color.h"
|
||||
#include "ichain.h"
|
||||
#include "regs.h"
|
||||
#include "irqmgr.h"
|
||||
#include "padmgr.h"
|
||||
#include "fault.h"
|
||||
|
||||
#define SCREEN_WIDTH 320
|
||||
#define SCREEN_HEIGHT 240
|
||||
@@ -45,6 +49,14 @@
|
||||
#define Z_PRIORITY_DMAMGR 16
|
||||
#define Z_PRIORITY_IRQMGR 17
|
||||
|
||||
#define ALIGN8(val) (((val) + 7) & ~7)
|
||||
|
||||
#define STACK(stack, size) \
|
||||
u64 stack[ALIGN8(size) / sizeof(u64)]
|
||||
|
||||
#define STACK_TOP(stack) \
|
||||
((u8*)(stack) + sizeof(stack))
|
||||
|
||||
// NOTE: Once we start supporting other builds, this can be changed with an ifdef
|
||||
#define REGION_NATIVE REGION_EU
|
||||
|
||||
@@ -144,13 +156,6 @@ typedef struct GraphicsContext {
|
||||
/* 0x02FC */ char unk_2FC[0x04];
|
||||
} GraphicsContext; // size = 0x300
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ OSContPad cur;
|
||||
/* 0x06 */ OSContPad prev;
|
||||
/* 0x0C */ OSContPad press; // X/Y store delta from last frame
|
||||
/* 0x12 */ OSContPad rel; // X/Y store adjusted
|
||||
} Input; // size = 0x18
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s32 topY; // uly (upper left y)
|
||||
/* 0x0004 */ s32 bottomY; // lry (lower right y)
|
||||
@@ -216,7 +221,7 @@ typedef struct {
|
||||
/* 0x4D */ char unk_4D[0x03];
|
||||
/* 0x50 */ TargetContextEntry arr_50[3];
|
||||
/* 0x8C */ Actor* unk_8C;
|
||||
/* 0x90 */ Actor* unk_90;
|
||||
/* 0x90 */ Actor* bgmEnemy; // The nearest enemy to player with the right flags that will trigger NA_BGM_ENEMY
|
||||
/* 0x94 */ Actor* unk_94;
|
||||
} TargetContext; // size = 0x98
|
||||
|
||||
@@ -241,11 +246,10 @@ typedef struct {
|
||||
/* 0x0000 */ u8 freezeFlashTimer;
|
||||
/* 0x0001 */ char unk_01[0x01];
|
||||
/* 0x0002 */ u8 unk_02;
|
||||
/* 0x0003 */ u8 unk_03;
|
||||
/* 0x0003 */ u8 lensActive;
|
||||
/* 0x0004 */ char unk_04[0x04];
|
||||
/* 0x0008 */ u8 total; // total number of actors loaded
|
||||
/* 0x0009 */ char unk_09[0x03];
|
||||
/* 0x000C */ ActorListEntry actorLists[12];
|
||||
/* 0x000C */ ActorListEntry actorLists[ACTORCAT_MAX];
|
||||
/* 0x006C */ TargetContext targetCtx;
|
||||
struct {
|
||||
/* 0x0104 */ u32 swch;
|
||||
@@ -282,8 +286,8 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 countdown;
|
||||
/* 0x04 */ Vec3f originPos;
|
||||
/* 0x10 */ Vec3f relativePos;
|
||||
/* 0x04 */ Vec3f worldPos;
|
||||
/* 0x10 */ Vec3f projectedPos;
|
||||
} SoundSource; // size = 0x1C
|
||||
|
||||
typedef enum {
|
||||
@@ -508,9 +512,9 @@ typedef enum {
|
||||
/* 4 */ TEXT_STATE_CHOICE,
|
||||
/* 5 */ TEXT_STATE_EVENT,
|
||||
/* 6 */ TEXT_STATE_DONE,
|
||||
/* 7 */ TEXT_STATE_SONG_DEMO_DONE,
|
||||
/* 8 */ TEXT_STATE_8,
|
||||
/* 9 */ TEXT_STATE_9,
|
||||
/* 7 */ TEXT_STATE_SONG_DEMO_DONE,
|
||||
/* 8 */ TEXT_STATE_8,
|
||||
/* 9 */ TEXT_STATE_9,
|
||||
/* 10 */ TEXT_STATE_AWAITING_NEXT
|
||||
} TextState;
|
||||
|
||||
@@ -644,8 +648,8 @@ typedef struct {
|
||||
/* 0x01F8 */ s16 naviCalling;
|
||||
/* 0x01FA */ s16 unk_1FA;
|
||||
/* 0x01FC */ s16 unk_1FC;
|
||||
/* 0x01FE */ s16 unk_1FE;
|
||||
/* 0x0200 */ s16 unk_200;
|
||||
/* 0x01FE */ s16 heartColorOscillator;
|
||||
/* 0x0200 */ s16 heartColorOscillatorDirection;
|
||||
/* 0x0202 */ s16 beatingHeartPrim[3];
|
||||
/* 0x0208 */ s16 beatingHeartEnv[3];
|
||||
/* 0x020E */ s16 heartsPrimR[2];
|
||||
@@ -654,10 +658,10 @@ typedef struct {
|
||||
/* 0x021A */ s16 heartsEnvR[2];
|
||||
/* 0x021E */ s16 heartsEnvG[2];
|
||||
/* 0x0222 */ s16 heartsEnvB[2];
|
||||
/* 0x0226 */ s16 unk_226;
|
||||
/* 0x0228 */ s16 unk_228;
|
||||
/* 0x022A */ s16 unk_22A;
|
||||
/* 0x022C */ s16 unk_22C;
|
||||
/* 0x0226 */ s16 unk_226; // Used only in unused functions
|
||||
/* 0x0228 */ s16 unk_228; // Used only in unused functions
|
||||
/* 0x022A */ s16 beatingHeartOscillator;
|
||||
/* 0x022C */ s16 beatingHeartOscillatorDirection;
|
||||
/* 0x022E */ s16 unk_22E;
|
||||
/* 0x0230 */ s16 unk_230;
|
||||
/* 0x0232 */ s16 counterDigits[4]; // used for key and rupee counters
|
||||
@@ -868,12 +872,12 @@ typedef struct {
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 type;
|
||||
/* 0x01 */ u8 format; // 1 = single, 2 = multi
|
||||
/* 0x04 */ void* dlist;
|
||||
/* 0x04 */ Gfx* dlist;
|
||||
union {
|
||||
struct {
|
||||
/* 0x08 */ u32 source;
|
||||
/* 0x08 */ void* source;
|
||||
/* 0x0C */ u32 unk_0C;
|
||||
/* 0x10 */ u32 tlut;
|
||||
/* 0x10 */ void* tlut;
|
||||
/* 0x14 */ u16 width;
|
||||
/* 0x16 */ u16 height;
|
||||
/* 0x18 */ u8 fmt;
|
||||
@@ -931,7 +935,7 @@ typedef struct {
|
||||
/* 0x38 */ DmaRequest dmaRequest;
|
||||
/* 0x58 */ OSMesgQueue loadQueue;
|
||||
/* 0x70 */ OSMesg loadMsg;
|
||||
/* 0x74 */ s16 unk_74[2];
|
||||
/* 0x74 */ s16 unk_74[2]; // context-specific data used by the current scene draw config
|
||||
} RoomContext; // size = 0x78
|
||||
|
||||
typedef struct {
|
||||
@@ -1297,23 +1301,34 @@ typedef enum {
|
||||
DPM_UNK3 = 3
|
||||
} DynaPolyMoveFlag;
|
||||
|
||||
// Some animation related structure
|
||||
typedef struct {
|
||||
/* 0x00 */ AnimationHeader* animation;
|
||||
/* 0x04 */ f32 playbackSpeed;
|
||||
/* 0x04 */ f32 playSpeed;
|
||||
/* 0x08 */ f32 startFrame;
|
||||
/* 0x0C */ f32 frameCount;
|
||||
/* 0x10 */ u8 mode;
|
||||
/* 0x14 */ f32 transitionRate;
|
||||
} struct_80034EC0_Entry; // size = 0x18
|
||||
/* 0x14 */ f32 morphFrames;
|
||||
} AnimationInfo; // size = 0x18
|
||||
|
||||
// Another animation related structure
|
||||
typedef struct {
|
||||
/* 0x00 */ AnimationHeader* animation;
|
||||
/* 0x04 */ f32 frameCount;
|
||||
/* 0x08 */ u8 mode;
|
||||
/* 0x0C */ f32 transitionRate;
|
||||
} struct_D_80AA1678; // size = 0x10
|
||||
/* 0x0C */ f32 morphFrames;
|
||||
} AnimationFrameCountInfo; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ AnimationHeader* animation;
|
||||
/* 0x04 */ f32 playSpeed;
|
||||
/* 0x08 */ u8 mode;
|
||||
/* 0x0C */ f32 morphFrames;
|
||||
} AnimationSpeedInfo; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ AnimationHeader* animation;
|
||||
/* 0x04 */ u8 mode;
|
||||
/* 0x08 */ f32 morphFrames;
|
||||
} AnimationMinimalInfo; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 unk_00;
|
||||
@@ -1441,73 +1456,6 @@ typedef enum {
|
||||
MTXMODE_APPLY // applies transformation to the current matrix
|
||||
} MatrixMode;
|
||||
|
||||
typedef struct FaultClient {
|
||||
/* 0x00 */ struct FaultClient* next;
|
||||
/* 0x04 */ u32 callback;
|
||||
/* 0x08 */ u32 param1;
|
||||
/* 0x0C */ u32 param2;
|
||||
} FaultClient; // size = 0x10
|
||||
|
||||
typedef struct FaultAddrConvClient {
|
||||
/* 0x00 */ struct FaultAddrConvClient* next;
|
||||
/* 0x04 */ u32 callback;
|
||||
/* 0x08 */ u32 param;
|
||||
} FaultAddrConvClient; // size = 0xC
|
||||
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 (*callback)(u32, u32);
|
||||
/* 0x04 */ u32 param0;
|
||||
/* 0x08 */ u32 param1;
|
||||
/* 0x0C */ u32 ret;
|
||||
/* 0x10 */ OSMesgQueue* queue;
|
||||
/* 0x14 */ OSMesg msg;
|
||||
} FaultClientContext; // size = 0x18
|
||||
|
||||
typedef struct FaultThreadStruct {
|
||||
/* 0x000 */ OSThread thread;
|
||||
/* 0x1B0 */ u8 unk_1B0[0x600];
|
||||
/* 0x7B0 */ OSMesgQueue queue;
|
||||
/* 0x7C8 */ OSMesg msg;
|
||||
/* 0x7CC */ u8 exitDebugger;
|
||||
/* 0x7CD */ u8 msgId;
|
||||
/* 0x7CE */ u8 faultHandlerEnabled;
|
||||
/* 0x7CF */ u8 faultActive;
|
||||
/* 0x7D0 */ OSThread* faultedThread;
|
||||
/* 0x7D4 */ void(*padCallback)(Input*);
|
||||
/* 0x7D8 */ FaultClient* clients;
|
||||
/* 0x7DC */ FaultAddrConvClient* addrConvClients;
|
||||
/* 0x7E0 */ u8 unk_7E0[4];
|
||||
/* 0x7E4 */ Input padInput;
|
||||
/* 0x7FC */ u16 colors[36];
|
||||
/* 0x844 */ void* fb;
|
||||
/* 0x848 */ u32 currClientThreadSp;
|
||||
/* 0x84C */ u8 unk_84C[4];
|
||||
} FaultThreadStruct; // size = 0x850
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16* fb;
|
||||
/* 0x04 */ u16 w;
|
||||
/* 0x08 */ u16 h;
|
||||
/* 0x0A */ u16 yStart;
|
||||
/* 0x0C */ u16 yEnd;
|
||||
/* 0x0E */ u16 xStart;
|
||||
/* 0x10 */ u16 xEnd;
|
||||
/* 0x12 */ u16 foreColor;
|
||||
/* 0x14 */ u16 backColor;
|
||||
/* 0x14 */ u16 cursorX;
|
||||
/* 0x16 */ u16 cursorY;
|
||||
/* 0x18 */ const u32* fontData;
|
||||
/* 0x1C */ u8 charW;
|
||||
/* 0x1D */ u8 charH;
|
||||
/* 0x1E */ s8 charWPad;
|
||||
/* 0x1F */ s8 charHPad;
|
||||
/* 0x20 */ u16 printColors[10];
|
||||
/* 0x34 */ u8 escCode; // bool
|
||||
/* 0x35 */ u8 osSyncPrintfEnabled;
|
||||
/* 0x38 */ void(*inputCallback)();
|
||||
} FaultDrawer; // size = 0x3C
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ PrintCallback callback;
|
||||
/* 0x04 */ Gfx* dList;
|
||||
@@ -1584,57 +1532,6 @@ typedef struct {
|
||||
/* 0x10 */ u32 data[1];
|
||||
} Yaz0Header; // size = 0x10 ("data" is not part of the header)
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 type;
|
||||
/* 0x02 */ char misc[0x1E];
|
||||
} OSScMsg; // size = 0x20
|
||||
|
||||
typedef struct IrqMgrClient {
|
||||
/* 0x00 */ struct IrqMgrClient* prev;
|
||||
/* 0x04 */ OSMesgQueue* queue;
|
||||
} IrqMgrClient;
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ OSScMsg retraceMsg; // this apparently got moved from OSSched
|
||||
/* 0x020 */ OSScMsg prenmiMsg; // this apparently got moved from OSSched
|
||||
/* 0x040 */ OSScMsg nmiMsg;
|
||||
/* 0x060 */ OSMesgQueue queue;
|
||||
/* 0x078 */ OSMesg msgBuf[8];
|
||||
/* 0x098 */ OSThread thread;
|
||||
/* 0x248 */ IrqMgrClient* clients;
|
||||
/* 0x24C */ u8 resetStatus;
|
||||
/* 0x250 */ OSTime resetTime;
|
||||
/* 0x258 */ OSTimer timer;
|
||||
/* 0x278 */ OSTime retraceTime;
|
||||
} IrqMgr; // size = 0x280
|
||||
|
||||
typedef struct PadMgr {
|
||||
/* 0x0000 */ OSContStatus padStatus[4];
|
||||
/* 0x0010 */ OSMesg serialMsgBuf[1];
|
||||
/* 0x0014 */ OSMesg lockMsgBuf[1];
|
||||
/* 0x0018 */ OSMesg interruptMsgBuf[4];
|
||||
/* 0x0028 */ OSMesgQueue serialMsgQ;
|
||||
/* 0x0040 */ OSMesgQueue lockMsgQ;
|
||||
/* 0x0058 */ OSMesgQueue interruptMsgQ;
|
||||
/* 0x0070 */ IrqMgrClient irqClient;
|
||||
/* 0x0078 */ IrqMgr* irqMgr;
|
||||
/* 0x0080 */ OSThread thread;
|
||||
/* 0x0230 */ Input inputs[4];
|
||||
/* 0x0290 */ OSContPad pads[4];
|
||||
/* 0x02A8 */ vu8 validCtrlrsMask;
|
||||
/* 0x02A9 */ u8 nControllers;
|
||||
/* 0x02AA */ u8 ctrlrIsConnected[4]; // "Key_switch" originally
|
||||
/* 0x02AE */ u8 pakType[4]; // 1 if rumble pack, 2 if mempak?
|
||||
/* 0x02B2 */ vu8 rumbleEnable[4];
|
||||
/* 0x02B6 */ u8 rumbleCounter[4]; // not clear exact meaning
|
||||
/* 0x02BC */ OSPfs pfs[4];
|
||||
/* 0x045C */ vu8 rumbleOffFrames;
|
||||
/* 0x045D */ vu8 rumbleOnFrames;
|
||||
/* 0x045E */ u8 preNMIShutdown;
|
||||
/* 0x0460 */ void (*retraceCallback)(struct PadMgr* padmgr, s32 unk464);
|
||||
/* 0x0464 */ u32 retraceCallbackValue;
|
||||
} PadMgr; // size = 0x468
|
||||
|
||||
// == Previously sched.h
|
||||
|
||||
#define OS_SC_NEEDS_RDP 0x0001
|
||||
|
||||
+31
-1
@@ -100,6 +100,35 @@ typedef struct {
|
||||
/* 0x18 */ Vec3f feetPos[2]; // Update by using `Actor_SetFeetPos` in PostLimbDraw
|
||||
} ActorShape; // size = 0x30
|
||||
|
||||
#define ACTOR_FLAG_0 (1 << 0)
|
||||
#define ACTOR_FLAG_2 (1 << 2)
|
||||
#define ACTOR_FLAG_3 (1 << 3)
|
||||
#define ACTOR_FLAG_4 (1 << 4)
|
||||
#define ACTOR_FLAG_5 (1 << 5)
|
||||
#define ACTOR_FLAG_6 (1 << 6)
|
||||
#define ACTOR_FLAG_7 (1 << 7)
|
||||
#define ACTOR_FLAG_8 (1 << 8)
|
||||
#define ACTOR_FLAG_9 (1 << 9)
|
||||
#define ACTOR_FLAG_10 (1 << 10)
|
||||
#define ACTOR_FLAG_ENKUSA_CUT (1 << 11)
|
||||
#define ACTOR_FLAG_12 (1 << 12)
|
||||
#define ACTOR_FLAG_13 (1 << 13)
|
||||
#define ACTOR_FLAG_14 (1 << 14)
|
||||
#define ACTOR_FLAG_15 (1 << 15)
|
||||
#define ACTOR_FLAG_16 (1 << 16)
|
||||
#define ACTOR_FLAG_17 (1 << 17)
|
||||
#define ACTOR_FLAG_18 (1 << 18)
|
||||
#define ACTOR_FLAG_19 (1 << 19)
|
||||
#define ACTOR_FLAG_20 (1 << 20)
|
||||
#define ACTOR_FLAG_21 (1 << 21)
|
||||
#define ACTOR_FLAG_22 (1 << 22)
|
||||
#define ACTOR_FLAG_23 (1 << 23)
|
||||
#define ACTOR_FLAG_24 (1 << 24)
|
||||
#define ACTOR_FLAG_25 (1 << 25)
|
||||
#define ACTOR_FLAG_26 (1 << 26)
|
||||
#define ACTOR_FLAG_27 (1 << 27)
|
||||
#define ACTOR_FLAG_28 (1 << 28)
|
||||
|
||||
typedef struct Actor {
|
||||
/* 0x000 */ s16 id; // Actor ID
|
||||
/* 0x002 */ u8 category; // Actor category. Refer to the corresponding enum for values
|
||||
@@ -305,7 +334,8 @@ typedef enum {
|
||||
/* 0x08 */ ACTORCAT_MISC,
|
||||
/* 0x09 */ ACTORCAT_BOSS,
|
||||
/* 0x0A */ ACTORCAT_DOOR,
|
||||
/* 0x0B */ ACTORCAT_CHEST
|
||||
/* 0x0B */ ACTORCAT_CHEST,
|
||||
/* 0x0C */ ACTORCAT_MAX
|
||||
} ActorCategory;
|
||||
|
||||
#define DEFINE_ACTOR(_0, enum, _2) enum,
|
||||
|
||||
+4
-61
@@ -25,9 +25,9 @@ typedef enum {
|
||||
/* 5 */ ANIMMODE_LOOP_PARTIAL_INTERP
|
||||
} AnimationModes;
|
||||
|
||||
typedef enum {
|
||||
/* -1 */ ANIMTAPER_DECEL = -1,
|
||||
/* 0 */ ANIMTAPER_NONE,
|
||||
typedef enum {
|
||||
/* -1 */ ANIMTAPER_DECEL = -1,
|
||||
/* 0 */ ANIMTAPER_NONE,
|
||||
/* 1 */ ANIMTAPER_ACCEL
|
||||
} AnimationTapers;
|
||||
|
||||
@@ -45,14 +45,6 @@ typedef struct {
|
||||
/* 0x08 */ Gfx* dLists[2]; // Near and far
|
||||
} LodLimb; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3s jointPos; // Root is position in model space, children are relative to parent
|
||||
/* 0x06 */ u8 child;
|
||||
/* 0x07 */ u8 sibling;
|
||||
/* 0x08 */ s32 unk_8; // Type of data contained in segment
|
||||
/* 0x0C */ void* segment; // Segment address of data. Currently unclear what.
|
||||
} SkinLimb; // size = 0x10
|
||||
|
||||
typedef struct LegacyLimb {
|
||||
/* 0x000 */ Gfx* dList;
|
||||
/* 0x004 */ Vec3f trans;
|
||||
@@ -73,7 +65,7 @@ typedef struct {
|
||||
/* 0x08 */ u8 dListCount;
|
||||
} FlexSkeletonHeader; // size = 0xC
|
||||
|
||||
// Index into the frame data table.
|
||||
// Index into the frame data table.
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 x;
|
||||
/* 0x02 */ u16 y;
|
||||
@@ -271,53 +263,4 @@ typedef struct SkelAnime {
|
||||
/* 0x3E */ Vec3s baseTransl; // Base modelspace translation.
|
||||
} SkelAnime; // size = 0x44
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u16 unk_0;
|
||||
/* 0x002 */ s16 unk_2;
|
||||
/* 0x004 */ s16 unk_4;
|
||||
/* 0x006 */ s8 unk_6;
|
||||
/* 0x007 */ s8 unk_7;
|
||||
/* 0x008 */ s8 unk_8;
|
||||
/* 0x009 */ u8 unk_9;
|
||||
} Struct_800A57C0; // size = 0xA
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u8 unk_0;
|
||||
/* 0x002 */ s16 x;
|
||||
/* 0x004 */ s16 y;
|
||||
/* 0x006 */ s16 z;
|
||||
/* 0x008 */ u8 unk_8;
|
||||
} Struct_800A598C_2; // size = 0xA
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u16 unk_0;
|
||||
/* 0x002 */ u16 unk_2;
|
||||
/* 0x004 */ u16 unk_4;
|
||||
/* 0x008 */ Struct_800A57C0* unk_8;
|
||||
/* 0x00C */ Struct_800A598C_2* unk_C;
|
||||
} Struct_800A598C; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u16 unk_0;
|
||||
/* 0x002 */ u16 unk_2;
|
||||
/* 0x004 */ Struct_800A598C* unk_4;
|
||||
/* 0x008 */ Gfx* unk_8;
|
||||
} Struct_800A5E28; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u8 unk_0;
|
||||
/* 0x004 */ Vtx* buf[2];
|
||||
} SkinAvb; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ SkeletonHeader* skeletonHeader;
|
||||
/* 0x004 */ MtxF mtx;
|
||||
/* 0x044 */ s32 avbCount;
|
||||
/* 0x048 */ SkinAvb* avbTbl;
|
||||
/* 0x04C */ SkelAnime skelAnime;
|
||||
} PSkinAwb; // size = 0x90
|
||||
|
||||
typedef void (*SkinCallback)(struct Actor*, struct GlobalContext*, PSkinAwb*);
|
||||
typedef s32 (*SkinCallback2)(struct Actor*, struct GlobalContext*, s32, PSkinAwb*);
|
||||
|
||||
#endif
|
||||
|
||||
+305
-8
@@ -48,14 +48,14 @@ typedef enum {
|
||||
/* 0x17 */ CAM_SET_PIVOT_SHOP_BROWSING, // Shopping and browsing for items "CIRCLE2"
|
||||
/* 0x18 */ CAM_SET_PIVOT_IN_FRONT, // The camera used on Link's balcony in Kokiri forest. Data present in scene data for Deku Tree, GTG, Inside Ganon's Castle (TODO: may or may not be used) "CIRCLE3"
|
||||
/* 0x19 */ CAM_SET_PREREND_FIXED, // Camera is fixed in position and rotation "PREREND0"
|
||||
/* 0x1A */ CAM_SET_PREREND_PIVET, // Camera is fixed in position with fixed pitch, but is free to rotate in the yaw direction 360 degrees "PREREND1"
|
||||
/* 0x1A */ CAM_SET_PREREND_PIVOT, // Camera is fixed in position with fixed pitch, but is free to rotate in the yaw direction 360 degrees "PREREND1"
|
||||
/* 0x1B */ CAM_SET_PREREND_SIDE_SCROLL, // Camera side-scrolls position to follow link. Only used in castle courtyard with the guards "PREREND3"
|
||||
/* 0x1C */ CAM_SET_DOOR0, // Custom room door transitions, used in fire and royal family tomb
|
||||
/* 0x1D */ CAM_SET_DOORC, // Generic room door transitions, camera moves and follows player as the door is open and closed
|
||||
/* 0x1E */ CAM_SET_CRAWLSPACE, // Used in all crawlspaces "RAIL3"
|
||||
/* 0x1F */ CAM_SET_START0, // Data is given in Temple of Time, but no surface uses it
|
||||
/* 0x20 */ CAM_SET_START1, // Scene/room door transitions that snap the camera to a fixed location (example: ganon's towers doors climbing up)
|
||||
/* 0x21 */ CAM_SET_FREE0, // Full manual control is given over the camera
|
||||
/* 0x21 */ CAM_SET_FREE0, // Full manual control is given over the camera
|
||||
/* 0x22 */ CAM_SET_FREE2, // Various OnePoint Cutscenes, 10 total (example: falling chest)
|
||||
/* 0x23 */ CAM_SET_PIVOT_CORNER, // Inside the carpenter jail cells from theives hideout "CIRCLE4"
|
||||
/* 0x24 */ CAM_SET_PIVOT_WATER_SURFACE, // Player diving from the surface of the water to underwater "CIRCLE5"
|
||||
@@ -191,6 +191,40 @@ typedef enum {
|
||||
/* 0x47 */ CAM_FUNC_MAX
|
||||
} CameraFuncType;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ CAM_DATA_Y_OFFSET,
|
||||
/* 0x01 */ CAM_DATA_EYE_DIST,
|
||||
/* 0x02 */ CAM_DATA_EYE_DIST_NEXT,
|
||||
/* 0x03 */ CAM_DATA_PITCH_TARGET,
|
||||
/* 0x04 */ CAM_DATA_YAW_UPDATE_RATE_TARGET,
|
||||
/* 0x05 */ CAM_DATA_XZ_UPDATE_RATE_TARGET,
|
||||
/* 0x06 */ CAM_DATA_MAX_YAW_UPDATE,
|
||||
/* 0x07 */ CAM_DATA_FOV,
|
||||
/* 0x08 */ CAM_DATA_AT_LERP_STEP_SCALE,
|
||||
/* 0x09 */ CAM_DATA_FLAGS,
|
||||
/* 0x0A */ CAM_DATA_YAW_TARGET,
|
||||
/* 0x0B */ CAM_DATA_GROUND_Y_OFFSET,
|
||||
/* 0x0C */ CAM_DATA_GROUND_AT_LERP_STEP_SCALE,
|
||||
/* 0x0D */ CAM_DATA_SWING_YAW_INIT,
|
||||
/* 0x0E */ CAM_DATA_SWING_YAW_FINAL,
|
||||
/* 0x0F */ CAM_DATA_SWING_PITCH_INIT,
|
||||
/* 0x10 */ CAM_DATA_SWING_PITCH_FINAL,
|
||||
/* 0x11 */ CAM_DATA_SWING_PITCH_ADJ,
|
||||
/* 0x12 */ CAM_DATA_MIN_MAX_DIST_FACTOR,
|
||||
/* 0x13 */ CAM_DATA_AT_OFFSET_X,
|
||||
/* 0x14 */ CAM_DATA_AT_OFFSET_Y,
|
||||
/* 0x15 */ CAM_DATA_AT_OFFSET_Z,
|
||||
/* 0x16 */ CAM_DATA_UNK_22,
|
||||
/* 0x17 */ CAM_DATA_UNK_23,
|
||||
/* 0x18 */ CAM_DATA_FOV_SCALE,
|
||||
/* 0x19 */ CAM_DATA_YAW_SCALE,
|
||||
/* 0x1A */ CAM_DATA_UNK_26,
|
||||
/* 0x1B */ CAM_DATA_MAX
|
||||
} CameraDataType;
|
||||
|
||||
#define CAM_FUNCDATA_FLAGS(flags) \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f collisionClosePoint;
|
||||
/* 0x0C */ CollisionPoly* atEyePoly;
|
||||
@@ -225,6 +259,30 @@ typedef struct {
|
||||
/* 0x24 */ Normal1Anim anim;
|
||||
} Normal1; // size = 0x50
|
||||
|
||||
#define CAM_FUNCDATA_NORM1(yOffset, eyeDist, eyeDistNext, pitchTarget, yawUpdateRateTarget, xzUpdateRateTarget, maxYawUpdate, fov, atLerpStepScale, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ xzUpdateRateTarget, CAM_DATA_XZ_UPDATE_RATE_TARGET }, \
|
||||
{ maxYawUpdate, CAM_DATA_MAX_YAW_UPDATE }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
#define CAM_FUNCDATA_NORM1_ALT(yOffset, eyeDist, eyeDistNext, pitchTarget, yawUpdateRateTarget, xzUpdateRateTarget, maxYawUpdate, fov, atLerpStepScale, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ xzUpdateRateTarget, CAM_DATA_UNK_26 }, \
|
||||
{ maxYawUpdate, CAM_DATA_MAX_YAW_UPDATE }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f unk_00;
|
||||
/* 0x0C */ Vec3f unk_0C;
|
||||
@@ -249,6 +307,17 @@ typedef struct {
|
||||
/* 0x20 */ Normal2Anim anim;
|
||||
} Normal2; // size = 0x4A
|
||||
|
||||
#define CAM_FUNCDATA_NORM2(yOffset, eyeDist, eyeDistNext, unk_23, yawUpdateRateTarget, maxYawUpdate, fov, atLerpStepScale, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ unk_23, CAM_DATA_UNK_23 }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ maxYawUpdate, CAM_DATA_MAX_YAW_UPDATE }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ SwingAnimation swing;
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
@@ -272,6 +341,17 @@ typedef struct {
|
||||
/* 0x20 */ Normal3Anim anim;
|
||||
} Normal3; // size = 0x4C
|
||||
|
||||
#define CAM_FUNCDATA_NORM3(yOffset, eyeDist, eyeDistNext, pitchTarget, yawUpdateRateTarget, xzUpdateRateTarget, fov, atLerpStepScale, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ xzUpdateRateTarget, CAM_DATA_XZ_UPDATE_RATE_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f unk_00;
|
||||
/* 0x0C */ f32 yTarget;
|
||||
@@ -283,7 +363,7 @@ typedef struct {
|
||||
} Parallel1Anim; // size = 0x1A
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
/* 0x00 */ f32 yOffset;
|
||||
/* 0x04 */ f32 distTarget;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
@@ -297,8 +377,20 @@ typedef struct {
|
||||
/* 0x28 */ Parallel1Anim anim;
|
||||
} Parallel1; // size = 0x42
|
||||
|
||||
#define CAM_FUNCDATA_PARA1(yOffset, eyeDist, pitchTarget, yawTarget, yawUpdateRateTarget, xzUpdateRateTarget, fov, atLerpStepScale, flags, groundYOffset, groundAtLerpStepScale) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ yawTarget, CAM_DATA_YAW_TARGET }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ xzUpdateRateTarget, CAM_DATA_XZ_UPDATE_RATE_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }, \
|
||||
{ groundYOffset, CAM_DATA_GROUND_Y_OFFSET }, \
|
||||
{ groundAtLerpStepScale, CAM_DATA_GROUND_AT_LERP_STEP_SCALE }
|
||||
|
||||
typedef struct {
|
||||
|
||||
/* 0x00 */ SwingAnimation swing;
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
/* 0x20 */ VecSph unk_20;
|
||||
@@ -310,12 +402,22 @@ typedef struct {
|
||||
/* 0x08 */ f32 distMax;
|
||||
/* 0x0C */ f32 yawUpateRateTarget;
|
||||
/* 0x10 */ f32 maxYawUpdate;
|
||||
/* 0x14 */ f32 unk_14; // never used.
|
||||
/* 0x14 */ f32 unk_14; // never used.
|
||||
/* 0x18 */ f32 atLERPScaleMax;
|
||||
/* 0x1C */ s16 interfaceFlags;
|
||||
/* 0x20 */ Jump1Anim anim;
|
||||
} Jump1; // size = 0x48
|
||||
|
||||
#define CAM_FUNCDATA_JUMP1(yOffset, eyeDist, eyeDistNext, yawUpdateRateTarget, maxYawUpdate, fov, atLerpStepScale, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ maxYawUpdate, CAM_DATA_MAX_YAW_UPDATE }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ f32 floorY;
|
||||
/* 0x4 */ s16 yawTarget;
|
||||
@@ -338,6 +440,17 @@ typedef struct {
|
||||
/* 0x24 */ Jump2Anim anim;
|
||||
} Jump2; // size = 0x34
|
||||
|
||||
#define CAM_FUNCDATA_JUMP2(yOffset, eyeDist, eyeDistNext, minMaxDistFactor, yawUpdateRateTarget, xzUpdateRateTarget, fov, atLerpStepScale, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ minMaxDistFactor, CAM_DATA_MIN_MAX_DIST_FACTOR }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ xzUpdateRateTarget, CAM_DATA_XZ_UPDATE_RATE_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ SwingAnimation swing;
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
@@ -359,6 +472,18 @@ typedef struct {
|
||||
/* 0x24 */ Jump3Anim anim;
|
||||
} Jump3; // size = 0x48
|
||||
|
||||
#define CAM_FUNCDATA_JUMP3(yOffset, eyeDist, eyeDistNext, pitchTarget, yawUpdateRateTarget, xzUpdateRateTarget, maxYawUpdate, fov, atLerpStepScale, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ xzUpdateRateTarget, CAM_DATA_XZ_UPDATE_RATE_TARGET }, \
|
||||
{ maxYawUpdate, CAM_DATA_MAX_YAW_UPDATE }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 initialEyeToAtDist;
|
||||
/* 0x04 */ f32 roll;
|
||||
@@ -388,8 +513,22 @@ typedef struct {
|
||||
/* 0x30 */ Battle1Anim anim;
|
||||
} Battle1; // size = 0x50
|
||||
|
||||
#define CAM_FUNCDATA_BATT1(yOffset, eyeDist, swingYawInit, swingYawFinal, swingPitchInit, swingPitchFinal, swingPitchAdj, fov, atLerpStepScale, flags, groundYOffset, groundAtLerpStepScale) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ swingYawInit, CAM_DATA_SWING_YAW_INIT }, \
|
||||
{ swingYawFinal, CAM_DATA_SWING_YAW_FINAL }, \
|
||||
{ swingPitchInit, CAM_DATA_SWING_PITCH_INIT }, \
|
||||
{ swingPitchFinal, CAM_DATA_SWING_PITCH_FINAL }, \
|
||||
{ swingPitchAdj, CAM_DATA_SWING_PITCH_ADJ }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }, \
|
||||
{ groundYOffset, CAM_DATA_GROUND_Y_OFFSET }, \
|
||||
{ groundAtLerpStepScale, CAM_DATA_GROUND_AT_LERP_STEP_SCALE }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 animTimer;
|
||||
/* 0x0 */ s16 animTimer;
|
||||
} Battle4Anim; // size = 0x2
|
||||
|
||||
typedef struct {
|
||||
@@ -404,6 +543,15 @@ typedef struct {
|
||||
/* 0x1C */ Battle4Anim anim;
|
||||
} Battle4; // size = 0x20
|
||||
|
||||
#define CAM_FUNCDATA_BATT4(yOffset, eyeDist, pitchTarget, yawUpdateRateTarget, fov, atLerpStepScale, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
@@ -432,6 +580,21 @@ typedef struct {
|
||||
/* 0x34 */ Keep1Anim anim;
|
||||
} KeepOn1; // size = 0x4C
|
||||
|
||||
#define CAM_FUNCDATA_KEEP1(yOffset, eyeDist, eyeDistNext, swingYawInit, swingYawFinal, swingPitchInit, swingPitchFinal, swingPitchAdj, fov, atLerpStepScale, flags, groundYOffset, groundAtLerpStepScale) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ swingYawInit, CAM_DATA_SWING_YAW_INIT }, \
|
||||
{ swingYawFinal, CAM_DATA_SWING_YAW_FINAL }, \
|
||||
{ swingPitchInit, CAM_DATA_SWING_PITCH_INIT }, \
|
||||
{ swingPitchFinal, CAM_DATA_SWING_PITCH_FINAL }, \
|
||||
{ swingPitchAdj, CAM_DATA_SWING_PITCH_ADJ }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }, \
|
||||
{ groundYOffset, CAM_DATA_GROUND_Y_OFFSET }, \
|
||||
{ groundAtLerpStepScale, CAM_DATA_GROUND_AT_LERP_STEP_SCALE }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f eyeToAtTarget; // esentially a VecSph, but all floats.
|
||||
/* 0x0C */ Actor* target;
|
||||
@@ -455,6 +618,20 @@ typedef struct {
|
||||
/* 0x2C */ Keep3Anim anim;
|
||||
} KeepOn3; // size = 0x4C
|
||||
|
||||
#define CAM_FUNCDATA_KEEP3(yOffset, eyeDist, eyeDistNext, swingYawInit, swingYawFinal, swingPitchInit, swingPitchFinal, swingPitchAdj, fov, atLerpStepScale, yawUpdateRateTarget, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ swingYawInit, CAM_DATA_SWING_YAW_INIT }, \
|
||||
{ swingYawFinal, CAM_DATA_SWING_YAW_FINAL }, \
|
||||
{ swingPitchInit, CAM_DATA_SWING_PITCH_INIT }, \
|
||||
{ swingPitchFinal, CAM_DATA_SWING_PITCH_FINAL }, \
|
||||
{ swingPitchAdj, CAM_DATA_SWING_PITCH_ADJ }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
@@ -479,6 +656,17 @@ typedef struct {
|
||||
/* 0x20 */ KeepOn4_Unk20 unk_20;
|
||||
} KeepOn4; // size = 0x34
|
||||
|
||||
#define CAM_FUNCDATA_KEEP4(yOffset, eyeDist, pitchTarget, yawTarget, atOffsetZ, fov, flags, yawUpdateRateTarget, unk_22) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ yawTarget, CAM_DATA_YAW_TARGET }, \
|
||||
{ atOffsetZ, CAM_DATA_AT_OFFSET_Z }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ unk_22, CAM_DATA_UNK_22 }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ f32 fovTarget;
|
||||
/* 0x4 */ s16 animTimer;
|
||||
@@ -492,6 +680,12 @@ typedef struct {
|
||||
/* 0x0C */ KeepOn0Anim anim;
|
||||
} KeepOn0; // size = 0x14
|
||||
|
||||
#define CAM_FUNCDATA_KEEP0(fovScale, yawScale, yawUpdateRateTarget, flags) \
|
||||
{ fovScale, CAM_DATA_FOV_SCALE }, \
|
||||
{ yawScale, CAM_DATA_YAW_SCALE }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ PosRot eyePosRotTarget;
|
||||
/* 0x14 */ s16 fov;
|
||||
@@ -505,6 +699,12 @@ typedef struct {
|
||||
/* 0x10 */ Fixed1Anim anim;
|
||||
} Fixed1; // size = 0x28
|
||||
|
||||
#define CAM_FUNCDATA_FIXD1(yOffset, yawUpdateRateTarget, fov, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ Vec3f eye;
|
||||
/* 0xC */ s16 fov;
|
||||
@@ -519,6 +719,13 @@ typedef struct {
|
||||
/* 0x14 */ Fixed2InitParams initParams;
|
||||
} Fixed2; // size = 0x24
|
||||
|
||||
#define CAM_FUNCDATA_FIXD2(yOffset, yawUpdateRateTarget, xzUpdateRateTarget, fov, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ xzUpdateRateTarget, CAM_DATA_XZ_UPDATE_RATE_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ Vec3s rot;
|
||||
/* 0x6 */ s16 fov;
|
||||
@@ -545,6 +752,13 @@ typedef struct {
|
||||
/* 0x14 */ Fixed4Anim anim;
|
||||
} Fixed4; // size = 0x24
|
||||
|
||||
#define CAM_FUNCDATA_FIXD4(yOffset, yawUpdateRateTarget, xzUpdateRateTarget, fov, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ xzUpdateRateTarget, CAM_DATA_XZ_UPDATE_RATE_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ f32 r;
|
||||
/* 0x4 */ s16 yaw;
|
||||
@@ -563,6 +777,17 @@ typedef struct {
|
||||
/* 0x24 */ Subj3Anim anim;
|
||||
} Subj3; // size = 0x30
|
||||
|
||||
#define CAM_FUNCDATA_SUBJ3(yOffset, eyeDist, eyeDistNext, yawUpdateRateTarget, atOffsetX, atOffsetY, atOffsetZ, fov, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ atOffsetX, CAM_DATA_AT_OFFSET_X }, \
|
||||
{ atOffsetY, CAM_DATA_AT_OFFSET_Y }, \
|
||||
{ atOffsetZ, CAM_DATA_AT_OFFSET_Z }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Linef unk_00;
|
||||
/* 0x18 */ f32 unk_18;
|
||||
@@ -581,6 +806,14 @@ typedef struct {
|
||||
/* 0x4 */ Subj4Anim anim;
|
||||
} Subj4; // size = 0x38
|
||||
|
||||
#define CAM_FUNCDATA_SUBJ4(yOffset, eyeDist, eyeDistNext, yawUpdateRateTarget, fov, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ PosRot eyePosRot;
|
||||
/* 0x14 */ char unk_14[0x8];
|
||||
@@ -595,6 +828,11 @@ typedef struct {
|
||||
/* 0xC */ Data4InitParams initParams;
|
||||
} Data4; // size = 0x2C
|
||||
|
||||
#define CAM_FUNCDATA_DATA4(yOffset, fov, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ f32 unk_00; // unused
|
||||
/* 0x4 */ s16 yawTarget;
|
||||
@@ -614,6 +852,15 @@ typedef struct {
|
||||
/* 0x1C */ Unique1Anim anim;
|
||||
} Unique1; // size = 0x28
|
||||
|
||||
#define CAM_FUNCDATA_UNIQ1(yOffset, eyeDist, eyeDistNext, pitchTarget, fov, atLerpStepScale, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ f32 unk_00;
|
||||
/* 0x4 */ s16 unk_04;
|
||||
@@ -627,6 +874,12 @@ typedef struct {
|
||||
/* 0x10 */ Unique2Unk10 unk_10; // unused, values set but not read.
|
||||
} Unique2; // size = 0x18
|
||||
|
||||
#define CAM_FUNCDATA_UNIQ2(yOffset, eyeDist, fov, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ f32 initialFov;
|
||||
/* 0x4 */ f32 initialDist;
|
||||
@@ -652,6 +905,11 @@ typedef struct {
|
||||
/* 0x18 */ Unique3Anim anim;
|
||||
} Unique3; // size = 0x20
|
||||
|
||||
#define CAM_FUNCDATA_UNIQ3(yOffset, fov, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f initalPos;
|
||||
/* 0x0C */ s16 animTimer;
|
||||
@@ -683,6 +941,10 @@ typedef struct {
|
||||
/* 0x8 */ Unique7Unk8 unk_08; // unk_08 goes unused.
|
||||
} Unique7; // size = 0x10
|
||||
|
||||
#define CAM_FUNCDATA_UNIQ7(fov, flags) \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
/** initFlags
|
||||
* & 0x00FF = atInitFlags
|
||||
* & 0xFF00 = eyeInitFlags
|
||||
@@ -691,7 +953,7 @@ typedef struct {
|
||||
* 0x2: Add atTargetInit to view's lookAt
|
||||
* if initFlags & 0x6060: use world for focus point
|
||||
* 0x3: Add atTargetInit to camera's at
|
||||
* 0x4: Don't update targets?
|
||||
* 0x4: Don't update targets?
|
||||
* 0x8: flag to use atTagetInit as f32 pitch, yaw, r
|
||||
* 0x10: ? unused
|
||||
* 0x20: focus on player
|
||||
@@ -757,6 +1019,11 @@ typedef struct {
|
||||
/* 0xC */ Demo3Anim anim;
|
||||
} Demo3; // size = 0x20
|
||||
|
||||
#define CAM_FUNCDATA_DEMO3(fov, atLerpStepScale, flags) \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 animTimer;
|
||||
/* 0x4 */ Vec3f atTarget;
|
||||
@@ -765,7 +1032,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 interfaceFlags;
|
||||
/* 0x2 */ s16 unk_02;
|
||||
/* 0x4 */ Demo6Anim anim;
|
||||
/* 0x4 */ Demo6Anim anim;
|
||||
} Demo6; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
@@ -798,6 +1065,10 @@ typedef struct {
|
||||
/* 0x4 */ s16 interfaceFlags;
|
||||
} Special0; // size = 0x8
|
||||
|
||||
#define CAM_FUNCDATA_SPEC0(yawUpdateRateTarget, flags) \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 initalTimer;
|
||||
} Special4; // size = 0x4
|
||||
@@ -819,6 +1090,27 @@ typedef struct {
|
||||
/* 0x1C */ Special5Anim anim;
|
||||
} Special5; // size = 0x20
|
||||
|
||||
#define CAM_FUNCDATA_SPEC5(yOffset, eyeDist, eyeDistNext, unk_22, pitchTarget, fov, atLerpStepScale, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ unk_22, CAM_DATA_UNK_22 }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
// Uses incorrect CAM_DATA values
|
||||
#define CAM_FUNCDATA_SPEC5_ALT(yOffset, eyeDist, eyeDistNext, pitchTarget, fov, atLerpStepScale, unk_22, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ unk_22, CAM_DATA_UNK_22 }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 idx;
|
||||
} Special7; // size = 0x4
|
||||
@@ -850,6 +1142,11 @@ typedef struct {
|
||||
/* 0xC */ Special9Params params;
|
||||
} Special9; // size = 0x1C
|
||||
|
||||
#define CAM_FUNCDATA_SPEC9(yOffset, fov, flags) \
|
||||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ flags, CAM_DATA_FLAGS }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f pos;
|
||||
/* 0x0C */ Vec3f norm;
|
||||
|
||||
@@ -14,7 +14,7 @@ typedef struct {
|
||||
/* 0x04 */ struct Actor* at; // Actor attached to what it collided with as an AT collider.
|
||||
/* 0x08 */ struct Actor* ac; // Actor attached to what it collided with as an AC collider.
|
||||
/* 0x0C */ struct Actor* oc; // Actor attached to what it collided with as an OC collider.
|
||||
/* 0x10 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x10 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x11 */ u8 acFlags; // Information flags for AC collisions.
|
||||
/* 0x12 */ u8 ocFlags1; // Information flags for OC collisions.
|
||||
/* 0x13 */ u8 ocFlags2; // Flags related to which colliders it can OC collide with.
|
||||
@@ -24,7 +24,7 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 colType; // Determines hitmarks and sound effects during AC collisions.
|
||||
/* 0x01 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x01 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x02 */ u8 acFlags; // Information flags for OC collisions.
|
||||
/* 0x03 */ u8 ocFlags1; // Information flags for OC collisions.
|
||||
/* 0x04 */ u8 ocFlags2; // Flags related to which colliders it can OC collide with.
|
||||
@@ -33,7 +33,7 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 colType; // Determines hitmarks and sound effects during AC collisions.
|
||||
/* 0x01 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x01 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x02 */ u8 acFlags; // Information flags for AC collisions.
|
||||
/* 0x03 */ u8 ocFlags1; // Information flags for OC collisions.
|
||||
/* 0x04 */ u8 shape; // JntSph, Cylinder, Tris, or Quad
|
||||
@@ -258,7 +258,7 @@ typedef enum {
|
||||
/**
|
||||
* 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
|
||||
* are == or !=. Will probably need more actors decomped to truly
|
||||
* understand what this is.
|
||||
*/
|
||||
typedef enum {
|
||||
@@ -343,7 +343,7 @@ typedef enum {
|
||||
|
||||
#define DMG_ENTRY(damage, effect) ((damage) | ((effect) << 4))
|
||||
|
||||
// These flags are not to be used in code until we figure out how we want to format them. They are only here for reference
|
||||
// These flags are not to be used in code until we figure out how we want to format them. They are only here for reference
|
||||
#define DMG_DEKU_NUT (1 << 0x00)
|
||||
#define DMG_DEKU_STICK (1 << 0x01)
|
||||
#define DMG_SLINGSHOT (1 << 0x02)
|
||||
|
||||
@@ -139,14 +139,14 @@ typedef enum {
|
||||
|
||||
/**
|
||||
* Special type for blocks of cutscene data, asm-processor checks
|
||||
* arrays for CutsceneData type and converts floats within the array
|
||||
* to their IEEE-754 representation. The array must close with };
|
||||
* arrays for CutsceneData type and converts floats within the array
|
||||
* to their IEEE-754 representation. The array must close with };
|
||||
* on its own line.
|
||||
*
|
||||
*
|
||||
* Files that contain this type that are included in other C files
|
||||
* must include an 'EARLY' qualifier to inform asm-processor that it
|
||||
* must recursively process that include.
|
||||
*
|
||||
*
|
||||
* Example: #include "file.c" EARLY
|
||||
*/
|
||||
typedef union CutsceneData {
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
#include "command_macros_base.h"
|
||||
#include "z64cutscene.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define CMD_F(a) {.f = (a)}
|
||||
#else
|
||||
#define CMD_F(a) {(a)}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ARGS
|
||||
* s32 totalEntries (e), s32 endFrame (n)
|
||||
@@ -26,7 +32,7 @@
|
||||
|
||||
/**
|
||||
* ARGS
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s16 xPos (x), s16 yPos (y), s16 zPos (z)
|
||||
* FORMAT
|
||||
* Capital U is Unused
|
||||
@@ -50,7 +56,7 @@
|
||||
|
||||
/**
|
||||
* ARGS
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s16 xPos (x), s16 yPos (y), s16 zPos (z)
|
||||
* FORMAT
|
||||
* Capital U is Unused
|
||||
@@ -97,7 +103,7 @@
|
||||
* s16 setting (m), s16 startFrame (s), s16 endFrame (e)
|
||||
* FORMAT
|
||||
* Capital U is Unused
|
||||
* mmmmssss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU 00000000 00000000 00000000
|
||||
* mmmmssss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU 00000000 00000000 00000000
|
||||
* size = 0x30
|
||||
*/
|
||||
#define CS_LIGHTING(setting, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \
|
||||
@@ -119,7 +125,7 @@
|
||||
|
||||
/**
|
||||
* ARGS
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s16 xPos (x), s16 yPos (y), s16 zPos (z)
|
||||
* FORMAT
|
||||
* Capital U is Unused
|
||||
@@ -143,7 +149,7 @@
|
||||
CS_CMD_CAM_AT_REL_TO_PLAYER, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000)
|
||||
/**
|
||||
* ARGS
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s16 xPos (x), s16 yPos (y), s16 zPos (z)
|
||||
* FORMAT
|
||||
* Capital U is Unused
|
||||
@@ -167,7 +173,7 @@
|
||||
|
||||
/**
|
||||
* ARGS
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s16 xPos (x), s16 yPos (y), s16 zPos (z)
|
||||
* FORMAT
|
||||
* Capital U is Unused
|
||||
@@ -190,7 +196,7 @@
|
||||
|
||||
/**
|
||||
* ARGS
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a),
|
||||
* s16 xPos (x), s16 yPos (y), s16 zPos (z)
|
||||
* FORMAT
|
||||
* Capital U is Unused
|
||||
@@ -231,7 +237,7 @@
|
||||
|
||||
/**
|
||||
* ARGS
|
||||
* s32 unk1 (a), s32 unk2 (b), s32 unk3 (c), s32 unk4 (d), s32 unk5 (e), s32 unk6 (f),
|
||||
* s32 unk1 (a), s32 unk2 (b), s32 unk3 (c), s32 unk4 (d), s32 unk5 (e), s32 unk6 (f),
|
||||
* s32 unk7 (g), s32 unk8 (h), s32 unk9 (i), s32 unk10 (j), s32 unk11 (k), s32 unk12 (l)
|
||||
* FORMAT
|
||||
* aaaaaaaa bbbbbbbb cccccccc dddddddd eeeeeeee ffffffff gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll
|
||||
@@ -301,7 +307,7 @@
|
||||
|
||||
/**
|
||||
* ARGS
|
||||
* s16 messageId (i), s16 startFrame (s), s16 endFrame (e), s16 type (o),
|
||||
* s16 messageId (i), s16 startFrame (s), s16 endFrame (e), s16 type (o),
|
||||
* s16 topOptionBranch (y), s16 bottomOptionBranch (n)
|
||||
* FORMAT
|
||||
* iiiissss eeeeoooo yyyynnnn
|
||||
|
||||
@@ -202,6 +202,81 @@ typedef struct {
|
||||
/* 0x10 */ Vec3f base;
|
||||
} WeaponInfo; // size = 0x1C
|
||||
|
||||
#define PLAYER_STATE1_0 (1 << 0)
|
||||
#define PLAYER_STATE1_1 (1 << 1)
|
||||
#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_8 (1 << 8)
|
||||
#define PLAYER_STATE1_9 (1 << 9)
|
||||
#define PLAYER_STATE1_10 (1 << 10)
|
||||
#define PLAYER_STATE1_11 (1 << 11)
|
||||
#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_16 (1 << 16)
|
||||
#define PLAYER_STATE1_17 (1 << 17)
|
||||
#define PLAYER_STATE1_18 (1 << 18)
|
||||
#define PLAYER_STATE1_19 (1 << 19)
|
||||
#define PLAYER_STATE1_20 (1 << 20)
|
||||
#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_26 (1 << 26)
|
||||
#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_31 (1 << 31)
|
||||
|
||||
#define PLAYER_STATE2_0 (1 << 0)
|
||||
#define PLAYER_STATE2_1 (1 << 1)
|
||||
#define PLAYER_STATE2_2 (1 << 2)
|
||||
#define PLAYER_STATE2_3 (1 << 3)
|
||||
#define PLAYER_STATE2_4 (1 << 4)
|
||||
#define PLAYER_STATE2_5 (1 << 5)
|
||||
#define PLAYER_STATE2_6 (1 << 6)
|
||||
#define PLAYER_STATE2_7 (1 << 7)
|
||||
#define PLAYER_STATE2_8 (1 << 8)
|
||||
#define PLAYER_STATE2_9 (1 << 9)
|
||||
#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_16 (1 << 16)
|
||||
#define PLAYER_STATE2_17 (1 << 17)
|
||||
#define PLAYER_STATE2_18 (1 << 18)
|
||||
#define PLAYER_STATE2_19 (1 << 19)
|
||||
#define PLAYER_STATE2_20 (1 << 20)
|
||||
#define PLAYER_STATE2_21 (1 << 21)
|
||||
#define PLAYER_STATE2_22 (1 << 22)
|
||||
#define PLAYER_STATE2_23 (1 << 23)
|
||||
#define PLAYER_STATE2_24 (1 << 24)
|
||||
#define PLAYER_STATE2_25 (1 << 25)
|
||||
#define PLAYER_STATE2_26 (1 << 26)
|
||||
#define PLAYER_STATE2_27 (1 << 27)
|
||||
#define PLAYER_STATE2_28 (1 << 28)
|
||||
#define PLAYER_STATE2_29 (1 << 29)
|
||||
#define PLAYER_STATE2_30 (1 << 30)
|
||||
#define PLAYER_STATE2_31 (1 << 31)
|
||||
|
||||
#define PLAYER_STATE3_0 (1 << 0)
|
||||
#define PLAYER_STATE3_1 (1 << 1)
|
||||
#define PLAYER_STATE3_2 (1 << 2)
|
||||
#define PLAYER_STATE3_3 (1 << 3)
|
||||
#define PLAYER_STATE3_4 (1 << 4)
|
||||
#define PLAYER_STATE3_5 (1 << 5)
|
||||
#define PLAYER_STATE3_6 (1 << 6)
|
||||
#define PLAYER_STATE3_7 (1 << 7)
|
||||
|
||||
typedef void (*PlayerFunc674)(struct Player*, struct GlobalContext*);
|
||||
typedef s32 (*PlayerFunc82C)(struct Player*, struct GlobalContext*);
|
||||
typedef void (*PlayerFuncA74)(struct GlobalContext*, struct Player*);
|
||||
|
||||
+6
-1
@@ -62,7 +62,7 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s32 entranceIndex; // start of `save` substruct, originally called "memory"
|
||||
/* 0x0004 */ s32 linkAge; // 0: Adult; 1: Child
|
||||
/* 0x0004 */ s32 linkAge;
|
||||
/* 0x0008 */ s32 cutsceneIndex;
|
||||
/* 0x000C */ u16 dayTime; // "zelda_time"
|
||||
/* 0x0010 */ s32 nightFlag;
|
||||
@@ -212,4 +212,9 @@ typedef enum {
|
||||
/* 3 */ SUNSSONG_SPECIAL // time does not advance, but signals the song was played. used for freezing redeads
|
||||
} SunsSongState;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ LINK_AGE_ADULT,
|
||||
/* 1 */ LINK_AGE_CHILD
|
||||
} LinkAge;
|
||||
|
||||
#endif
|
||||
|
||||
+14
-121
@@ -194,15 +194,14 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
MeshHeaderBase base;
|
||||
|
||||
u8 numEntries;
|
||||
Gfx* dListStart;
|
||||
Gfx* dListEnd;
|
||||
} MeshHeader0;
|
||||
|
||||
typedef struct {
|
||||
u32 opaqueDList;
|
||||
u32 translucentDList;
|
||||
Gfx* opaqueDList;
|
||||
Gfx* translucentDList;
|
||||
} MeshEntry0;
|
||||
|
||||
typedef struct {
|
||||
@@ -213,7 +212,7 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
MeshHeader1Base base;
|
||||
u32 imagePtr; // 0x08
|
||||
void* imagePtr; // 0x08
|
||||
u32 unknown; // 0x0C
|
||||
u32 unknown2; // 0x10
|
||||
u16 bgWidth; // 0x14
|
||||
@@ -227,13 +226,13 @@ typedef struct {
|
||||
typedef struct {
|
||||
MeshHeader1Base base;
|
||||
u8 bgCnt;
|
||||
u32 bgRecordPtr;
|
||||
void* bgRecordPtr;
|
||||
} MeshHeader1Multi;
|
||||
|
||||
typedef struct {
|
||||
u16 unknown; // 0x00
|
||||
s8 bgID; // 0x02
|
||||
u32 imagePtr; // 0x04
|
||||
void* imagePtr; // 0x04
|
||||
u32 unknown2; // 0x08
|
||||
u32 unknown3; // 0x0C
|
||||
u16 bgWidth; // 0x10
|
||||
@@ -247,8 +246,8 @@ typedef struct {
|
||||
typedef struct {
|
||||
s16 playerXMax, playerZMax;
|
||||
s16 playerXMin, playerZMin;
|
||||
u32 opaqueDList;
|
||||
u32 translucentDList;
|
||||
Gfx* opaqueDList;
|
||||
Gfx* translucentDList;
|
||||
} MeshEntry2;
|
||||
|
||||
typedef struct {
|
||||
@@ -303,121 +302,15 @@ typedef union {
|
||||
SCmdAltHeaders altHeaders;
|
||||
} SceneCmd; // size = 0x8
|
||||
|
||||
#define DEFINE_SCENE(_0, _1, enum, _3, _4, _5) enum,
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ SCENE_YDAN,
|
||||
/* 0x01 */ SCENE_DDAN,
|
||||
/* 0x02 */ SCENE_BDAN,
|
||||
/* 0x03 */ SCENE_BMORI1,
|
||||
/* 0x04 */ SCENE_HIDAN,
|
||||
/* 0x05 */ SCENE_MIZUSIN,
|
||||
/* 0x06 */ SCENE_JYASINZOU,
|
||||
/* 0x07 */ SCENE_HAKADAN,
|
||||
/* 0x08 */ SCENE_HAKADANCH,
|
||||
/* 0x09 */ SCENE_ICE_DOUKUTO,
|
||||
/* 0x0A */ SCENE_GANON,
|
||||
/* 0x0B */ SCENE_MEN,
|
||||
/* 0x0C */ SCENE_GERUDOWAY,
|
||||
/* 0x0D */ SCENE_GANONTIKA,
|
||||
/* 0x0E */ SCENE_GANON_SONOGO,
|
||||
/* 0x0F */ SCENE_GANONTIKA_SONOGO,
|
||||
/* 0x10 */ SCENE_TAKARAYA,
|
||||
/* 0x11 */ SCENE_YDAN_BOSS,
|
||||
/* 0x12 */ SCENE_DDAN_BOSS,
|
||||
/* 0x13 */ SCENE_BDAN_BOSS,
|
||||
/* 0x14 */ SCENE_MORIBOSSROOM,
|
||||
/* 0x15 */ SCENE_FIRE_BS,
|
||||
/* 0x16 */ SCENE_MIZUSIN_BS,
|
||||
/* 0x17 */ SCENE_JYASINBOSS,
|
||||
/* 0x18 */ SCENE_HAKADAN_BS,
|
||||
/* 0x19 */ SCENE_GANON_BOSS,
|
||||
/* 0x1A */ SCENE_GANON_FINAL,
|
||||
/* 0x1B */ SCENE_ENTRA,
|
||||
/* 0x1C */ SCENE_ENTRA_N,
|
||||
/* 0x1D */ SCENE_ENRUI,
|
||||
/* 0x1E */ SCENE_MARKET_ALLEY,
|
||||
/* 0x1F */ SCENE_MARKET_ALLEY_N,
|
||||
/* 0x20 */ SCENE_MARKET_DAY,
|
||||
/* 0x21 */ SCENE_MARKET_NIGHT,
|
||||
/* 0x22 */ SCENE_MARKET_RUINS,
|
||||
/* 0x23 */ SCENE_SHRINE,
|
||||
/* 0x24 */ SCENE_SHRINE_N,
|
||||
/* 0x25 */ SCENE_SHRINE_R,
|
||||
/* 0x26 */ SCENE_KOKIRI_HOME,
|
||||
/* 0x27 */ SCENE_KOKIRI_HOME3,
|
||||
/* 0x28 */ SCENE_KOKIRI_HOME4,
|
||||
/* 0x29 */ SCENE_KOKIRI_HOME5,
|
||||
/* 0x2A */ SCENE_KAKARIKO,
|
||||
/* 0x2B */ SCENE_KAKARIKO3,
|
||||
/* 0x2C */ SCENE_SHOP1,
|
||||
/* 0x2D */ SCENE_KOKIRI_SHOP,
|
||||
/* 0x2E */ SCENE_GOLON,
|
||||
/* 0x2F */ SCENE_ZOORA,
|
||||
/* 0x30 */ SCENE_DRAG,
|
||||
/* 0x31 */ SCENE_ALLEY_SHOP,
|
||||
/* 0x32 */ SCENE_NIGHT_SHOP,
|
||||
/* 0x33 */ SCENE_FACE_SHOP,
|
||||
/* 0x34 */ SCENE_LINK_HOME,
|
||||
/* 0x35 */ SCENE_IMPA,
|
||||
/* 0x36 */ SCENE_MALON_STABLE,
|
||||
/* 0x37 */ SCENE_LABO,
|
||||
/* 0x38 */ SCENE_HYLIA_LABO,
|
||||
/* 0x39 */ SCENE_TENT,
|
||||
/* 0x3A */ SCENE_HUT,
|
||||
/* 0x3B */ SCENE_DAIYOUSEI_IZUMI,
|
||||
/* 0x3C */ SCENE_YOUSEI_IZUMI_TATE,
|
||||
/* 0x3D */ SCENE_YOUSEI_IZUMI_YOKO,
|
||||
/* 0x3E */ SCENE_KAKUSIANA,
|
||||
/* 0x3F */ SCENE_HAKAANA,
|
||||
/* 0x40 */ SCENE_HAKAANA2,
|
||||
/* 0x41 */ SCENE_HAKAANA_OUKE,
|
||||
/* 0x42 */ SCENE_SYATEKIJYOU,
|
||||
/* 0x43 */ SCENE_TOKINOMA,
|
||||
/* 0x44 */ SCENE_KENJYANOMA,
|
||||
/* 0x45 */ SCENE_HAIRAL_NIWA,
|
||||
/* 0x46 */ SCENE_HAIRAL_NIWA_N,
|
||||
/* 0x47 */ SCENE_HIRAL_DEMO,
|
||||
/* 0x48 */ SCENE_HAKASITARELAY,
|
||||
/* 0x49 */ SCENE_TURIBORI,
|
||||
/* 0x4A */ SCENE_NAKANIWA,
|
||||
/* 0x4B */ SCENE_BOWLING,
|
||||
/* 0x4C */ SCENE_SOUKO,
|
||||
/* 0x4D */ SCENE_MIHARIGOYA,
|
||||
/* 0x4E */ SCENE_MAHOUYA,
|
||||
/* 0x4F */ SCENE_GANON_DEMO,
|
||||
/* 0x50 */ SCENE_KINSUTA,
|
||||
/* 0x51 */ SCENE_SPOT00,
|
||||
/* 0x52 */ SCENE_SPOT01,
|
||||
/* 0x53 */ SCENE_SPOT02,
|
||||
/* 0x54 */ SCENE_SPOT03,
|
||||
/* 0x55 */ SCENE_SPOT04,
|
||||
/* 0x56 */ SCENE_SPOT05,
|
||||
/* 0x57 */ SCENE_SPOT06,
|
||||
/* 0x58 */ SCENE_SPOT07,
|
||||
/* 0x59 */ SCENE_SPOT08,
|
||||
/* 0x5A */ SCENE_SPOT09,
|
||||
/* 0x5B */ SCENE_SPOT10,
|
||||
/* 0x5C */ SCENE_SPOT11,
|
||||
/* 0x5D */ SCENE_SPOT12,
|
||||
/* 0x5E */ SCENE_SPOT13,
|
||||
/* 0x5F */ SCENE_SPOT15,
|
||||
/* 0x60 */ SCENE_SPOT16,
|
||||
/* 0x61 */ SCENE_SPOT17,
|
||||
/* 0x62 */ SCENE_SPOT18,
|
||||
/* 0x63 */ SCENE_SPOT20,
|
||||
/* 0x64 */ SCENE_GANON_TOU,
|
||||
// Debug only scenes
|
||||
/* 0x65 */ SCENE_TEST01,
|
||||
/* 0x66 */ SCENE_BESITU,
|
||||
/* 0x67 */ SCENE_DEPTH_TEST,
|
||||
/* 0x68 */ SCENE_SYOTES,
|
||||
/* 0x69 */ SCENE_SYOTES2,
|
||||
/* 0x6A */ SCENE_SUTARU,
|
||||
/* 0x6B */ SCENE_HAIRAL_NIWA2,
|
||||
/* 0x6C */ SCENE_SASATEST,
|
||||
/* 0x6D */ SCENE_TESTROOM,
|
||||
#include "tables/scene_table.h"
|
||||
/* 0x6E */ SCENE_ID_MAX
|
||||
} SceneID;
|
||||
|
||||
#undef DEFINE_SCENE
|
||||
|
||||
// Scene commands
|
||||
|
||||
typedef enum {
|
||||
@@ -487,13 +380,13 @@ typedef enum {
|
||||
{ SCENE_CMD_ID_OBJECT_LIST, numObjects, CMD_PTR(objectList) }
|
||||
|
||||
#define SCENE_CMD_LIGHT_LIST(numLights, lightList) \
|
||||
{ SCENE_CMD_ID_POS_LIGHT_LIST, numLights, CMD_PTR(lightList) }
|
||||
{ SCENE_CMD_ID_POS_LIGHT_LIST, numLights, CMD_PTR(lightList) }
|
||||
|
||||
#define SCENE_CMD_PATH_LIST(pathList) \
|
||||
{ SCENE_CMD_ID_PATH_LIST, 0, CMD_PTR(pathList) }
|
||||
|
||||
#define SCENE_CMD_TRANSITION_ACTOR_LIST(numActors, list) \
|
||||
{ SCENE_CMD_ID_TRANSI_ACTOR_LIST, numActors, CMD_PTR(list) }
|
||||
{ SCENE_CMD_ID_TRANSI_ACTOR_LIST, numActors, CMD_PTR(list) }
|
||||
|
||||
#define SCENE_CMD_ENV_LIGHT_SETTINGS(numLightSettings, lightSettingsList) \
|
||||
{ SCENE_CMD_ID_ENV_LIGHT_SETTINGS, numLightSettings, CMD_PTR(lightSettingsList) }
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
#ifndef Z64_SKIN_H
|
||||
#define Z64_SKIN_H
|
||||
|
||||
#include "z64animation.h"
|
||||
|
||||
/**
|
||||
* Holds a compact version of a vertex used in the Skin system
|
||||
* It is used to initialise the Vtx used by an animated limb
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 index;
|
||||
/* 0x02 */ s16 s; // s and t are texture coordinates (also known as u and v)
|
||||
/* 0x04 */ s16 t;
|
||||
/* 0x06 */ s8 normX;
|
||||
/* 0x07 */ s8 normY;
|
||||
/* 0x08 */ s8 normZ;
|
||||
/* 0x09 */ u8 alpha;
|
||||
} SkinVertex; // size = 0xA
|
||||
|
||||
/**
|
||||
* Describes a position displacement and a scale to be applied to a limb at index `limbIndex`
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 limbIndex;
|
||||
/* 0x02 */ s16 x;
|
||||
/* 0x04 */ s16 y;
|
||||
/* 0x06 */ s16 z;
|
||||
/* 0x08 */ u8 scale;
|
||||
} SkinTransformation; // size = 0xA
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 vtxCount; // number of vertices in this modif entry
|
||||
/* 0x02 */ u16 transformCount;
|
||||
/* 0x04 */ u16 unk_4; // index of limbTransformations?
|
||||
/* 0x08 */ SkinVertex* skinVertices;
|
||||
/* 0x0C */ SkinTransformation* limbTransformations;
|
||||
} SkinLimbModif; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 totalVtxCount; // total vertex count for all modif entries
|
||||
/* 0x02 */ u16 limbModifCount;
|
||||
/* 0x04 */ SkinLimbModif* limbModifications;
|
||||
/* 0x08 */ Gfx* dlist;
|
||||
} SkinAnimatedLimbData; // size = 0xC
|
||||
|
||||
// ZAPD compatibility typedefs
|
||||
// TODO: Remove when ZAPD adds support for them
|
||||
typedef SkinVertex Struct_800A57C0;
|
||||
typedef SkinTransformation Struct_800A598C_2;
|
||||
typedef SkinAnimatedLimbData Struct_800A5E28;
|
||||
typedef SkinLimbModif Struct_800A598C;
|
||||
|
||||
#define SKIN_LIMB_TYPE_ANIMATED 4
|
||||
#define SKIN_LIMB_TYPE_NORMAL 11
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3s jointPos; // Root is position in model space, children are relative to parent
|
||||
/* 0x06 */ u8 child;
|
||||
/* 0x07 */ u8 sibling;
|
||||
/* 0x08 */ s32 segmentType; // Type of data contained in segment
|
||||
/* 0x0C */ void* segment; // Gfx* if segmentType is SKIN_LIMB_TYPE_NORMAL, SkinAnimatedLimbData* if segmentType is SKIN_LIMB_TYPE_ANIMATED, NULL otherwise
|
||||
} SkinLimb; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u8 index; // alternates every draw cycle
|
||||
/* 0x004 */ Vtx* buf[2]; // number of vertices in buffer determined by `totalVtxCount`
|
||||
} SkinLimbVtx; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ SkeletonHeader* skeletonHeader;
|
||||
/* 0x004 */ MtxF mtx;
|
||||
/* 0x044 */ s32 limbCount;
|
||||
/* 0x048 */ SkinLimbVtx* vtxTable; // double buffered list of vertices for each limb
|
||||
/* 0x04C */ SkelAnime skelAnime;
|
||||
} Skin; // size = 0x90
|
||||
|
||||
typedef void (*SkinPostDraw)(struct Actor*, struct GlobalContext*, Skin*);
|
||||
typedef s32 (*SkinOverrideLimbDraw)(struct Actor*, struct GlobalContext*, s32, Skin*);
|
||||
|
||||
#define SKIN_DRAW_FLAG_CUSTOM_TRANSFORMS (1 << 0)
|
||||
#define SKIN_DRAW_FLAG_CUSTOM_MATRIX (1 << 1)
|
||||
|
||||
#define SKIN_TRANSFORM_IS_FHG 0x23
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user