1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-14 20:05:02 +00:00

Merge branch 'master' into skelanime

This commit is contained in:
KrimtonZ 2020-03-22 20:35:10 -05:00
commit d136468ace
1304 changed files with 15506 additions and 25453 deletions

View file

@ -33,25 +33,22 @@
// Game Info aka. Static Context (dbg ram start: 80210A10)
// Data normally accessed through REG macros (see regs.h)
typedef struct
{
/* 0x00 */ s32 regPage; //1 is first page
/* 0x04 */ s32 regGroup; //"register" group (R, RS, RO, RP etc.)
/* 0x08 */ s32 regCur; //selected register within page
typedef struct {
/* 0x00 */ s32 regPage; // 1 is first page
/* 0x04 */ s32 regGroup; // "register" group (R, RS, RO, RP etc.)
/* 0x08 */ s32 regCur; // selected register within page
/* 0x0C */ s32 dpadLast;
/* 0x10 */ s32 repeat;
/* 0x14 */ s16 data[REG_GROUPS * REG_PER_GROUP]; //0xAE0
/* 0x14 */ s16 data[REG_GROUPS * REG_PER_GROUP]; // 0xAE0 bytes
} GameInfo; // size = 0x15D4
typedef struct
{
typedef struct {
/* 0x00 */ u8 button_items[4];
/* 0x04 */ u8 c_button_slots[3];
/* 0x08 */ u16 equipment;
} ItemEquips; // size = 0x0A
typedef struct
{
typedef struct {
/* 0x00 */ u32 chest;
/* 0x04 */ u32 swch;
/* 0x08 */ u32 clear;
@ -61,15 +58,13 @@ typedef struct
/* 0x18 */ u32 rooms_2;
} SaveSceneFlags; // size = 0x1C
typedef struct
{
typedef struct {
/* 0x00 */ s16 scene;
/* 0x02 */ Vec3s pos;
/* 0x08 */ s16 angle;
} HorseData; // size = 0x0A
typedef struct
{
typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ s16 yaw;
/* 0x0E */ s16 player_params;
@ -80,22 +75,19 @@ typedef struct
/* 0x18 */ u32 temp_collect_flags;
} RespawnData; // size = 0x1C
typedef enum
{
typedef enum {
/* 0x00 */ RESPAWN_MODE_DOWN, /* Normal Void Outs */
/* 0x01 */ RESPAWN_MODE_RETURN, /* Grotto Returnpoints */
/* 0x02 */ RESPAWN_MODE_TOP /* Farore's Wind */
} RespawnMode;
typedef enum
{
typedef enum {
/* 0x00 */ BTN_ENABLED,
/* 0xFF */ BTN_DISABLED = 0xFF
} ButtonStatus;
// Save Context (dbg ram start: 8015E660)
typedef struct
{
typedef struct {
/* 0x0000 */ s32 entrance_index;
/* 0x0004 */ s32 link_age; // 0: Adult; 1: Child
/* 0x0008 */ s32 cutscene_index;
@ -135,8 +127,7 @@ typedef struct
/* 0x00CF */ s8 defense_hearts;
/* 0x00D0 */ s16 gs_tokens;
/* 0x00D4 */ SaveSceneFlags scene_flags[124];
struct
{
struct {
/* 0x0E64 */ s32 pos_x;
/* 0x0E68 */ s32 pos_y;
/* 0x0E6C */ s32 pos_z;
@ -165,7 +156,9 @@ typedef struct
/* 0x1360 */ s32 scene_setup_index;
/* 0x1364 */ s32 respawn_flag; // "restart_flag"
/* 0x1368 */ RespawnData respawn[3]; // "restart_data"
/* 0x13BC */ char unk_13BC[0x000B];
/* 0x13BC */ char unk_13BC[0x0008];
/* 0x13C4 */ s16 dogParams;
/* 0x13C6 */ char unk_13C6[0x0001];
/* 0x13C7 */ u8 unk_13C7;
/* 0x13C8 */ u16 nayrus_love_timer;
/* 0x13CA */ char unk_13CA[0x0002];
@ -209,7 +202,7 @@ typedef struct
/* 0x1418 */ u8 fade_duration;
/* 0x1419 */ u8 unk_1419; // transition related
/* 0x141A */ u16 environment_time;
/* 0x141C */ u8 unk_141C;
/* 0x141C */ u8 dogIsLost;
/* 0x141D */ u8 transition_type;
/* 0x141E */ char unk_141E[0x0002];
/* 0x1420 */ s16 world_map_area;
@ -217,8 +210,7 @@ typedef struct
/* 0x1424 */ s16 health_accumulator;
} SaveContext; // size = 0x1428
typedef struct
{
typedef struct {
/* 0x00000 */ u16 headMagic; // 1234
/* 0x00008 */ Gfx polyOpaBuffer[0x17E0];
/* 0x0BF08 */ Gfx polyXluBuffer[0x800];
@ -228,24 +220,21 @@ typedef struct
/* 0x12408 */ u16 tailMagic; // 5678
} GfxPool; // size = 0x12410
typedef struct
{
typedef struct {
/* 0x0000 */ u32 size;
/* 0x0004 */ u8* bufp;
/* 0x0008 */ u8* head;
/* 0x000C */ u8* tail;
} TwoHeadArena; // size = 0x10
typedef struct
{
typedef struct {
/* 0x0000 */ u32 size;
/* 0x0004 */ Gfx* bufp;
/* 0x0008 */ Gfx* p;
/* 0x000C */ Gfx* d;
} TwoHeadGfxArena; // size = 0x10
typedef struct
{
typedef struct {
/* 0x0000 */ char unk_00[0x01B4];
/* 0x01B4 */ TwoHeadGfxArena work;
/* 0x01C4 */ char unk_1C4[0x00E4];
@ -254,12 +243,9 @@ typedef struct
/* 0x02C8 */ TwoHeadGfxArena polyXlu;
} GraphicsContext;
typedef struct
{
/* 0x00 */ union
{
struct
{
typedef struct {
/* 0x00 */ union {
struct {
u16 a : 1;
u16 b : 1;
u16 z : 1;
@ -282,8 +268,7 @@ typedef struct
/* 0x03 */ s8 y;
} RawInput; // size = 0x4
typedef struct
{
typedef struct {
/* 0x00 */ RawInput raw;
/* 0x04 */ u16 status;
/* 0x06 */ RawInput rawPrev;
@ -298,22 +283,21 @@ typedef struct
/* 0x16 */ char unk_16[0x02];
} Input; // size = 0x18
typedef struct
{
typedef struct {
/* 0x0000 */ char unk_00[0x28];
/* 0x0028 */ Vec3f eye;
/* 0x0034 */ char unk_34[0xF4];
/* 0x0034 */ char unk_34[0xEC];
/* 0x0120 */ u32 unk_120;
/* 0x0124 */ char unk_124[4];
} View; // size = 0x128
typedef struct
{
typedef struct {
f32 unk_00;
s16 unk_04;
s16 unk_06;
} struct_80045714; // used in z_camera.c and code_8007BF90
typedef struct
{
typedef struct {
/* 0x0000 */ s32 unk_00;
/* 0x0004 */ s16 unk_04;
/* 0x0006 */ s16 unk_06;
@ -370,49 +354,42 @@ typedef struct
/* 0x016A */ s16 unk_16A; // unknown if used
} Camera; // size = 0x16C
typedef struct
{
typedef struct {
/* 0x0000 */ Camera activeCameras[4];
/* 0x05B0 */ Camera* activeCameraPtrs[4];
/* 0x05C0 */ s16 unk_5C0;
/* 0x05C2 */ s16 unk_5C2;
} CameraContext; // size = 0x5C4
typedef struct
{
typedef struct {
/* 0x00 */ u8 musicSeq;
/* 0x01 */ u8 nighttimeSFX;
/* 0x02 */ char unk_02[0x2];
} SoundContext; // size = 0x4
typedef struct
{
typedef struct {
/* 0x00 */ char unk_00[0x50];
} StaticCollisionContext; // size = 0x50
typedef struct
{
typedef struct {
/* 0x0000 */ char unk_00[0x04];
/* 0x0004 */ ActorMesh actorMeshArr[50];
/* 0x138C */ u16 flags[50];
/* 0x13F0 */ char unk_13F0[0x24];
} DynaCollisionContext; // size = 0x1414
typedef struct
{
typedef struct {
/* 0x0000 */ StaticCollisionContext stat;
/* 0x0050 */ DynaCollisionContext dyna;
} CollisionContext; // size = 0x1464
typedef struct
{
typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ f32 unk_0C; // radius?
/* 0x10 */ Color_RGB8 color;
} TargetContextEntry; // size = 0x14
typedef struct
{
typedef struct {
/* 0x00 */ Vec3f naviRefPos; // possibly wrong
/* 0x0C */ Vec3f targetCenterPos;
/* 0x18 */ Color_RGBAf naviInner;
@ -432,8 +409,7 @@ typedef struct
/* 0x94 */ Actor* unk_94;
} TargetContext; // size = 0x98
typedef struct
{
typedef struct {
/* 0x00 */ u32 texture;
/* 0x04 */ s16 unk_4;
/* 0x06 */ s16 unk_6;
@ -445,14 +421,12 @@ typedef struct
/* 0x0E */ s16 unk_E;
} TitleCardContext; // size = 0x10
typedef struct
{
typedef struct {
/* 0x00 */ u32 length; // number of actors loaded of this type
/* 0x04 */ Actor* first; // pointer to first actor of this type
} ActorListEntry; // size = 0x08
typedef struct
{
typedef struct {
/* 0x0000 */ u8 unk_00;
/* 0x0001 */ char unk_01[0x01];
/* 0x0002 */ u8 unk_02;
@ -462,8 +436,7 @@ typedef struct
/* 0x0009 */ char unk_09[0x03];
/* 0x000C */ ActorListEntry actorList[12];
/* 0x006C */ TargetContext targetCtx;
struct
{
struct {
/* 0x0104 */ u32 swch;
/* 0x0108 */ u32 tempSwch;
/* 0x010C */ u32 unk0;
@ -479,19 +452,16 @@ typedef struct
/* 0x013C */ void* absoluteSpace; // Space used to allocate actor overlays of alloc type 1
} ActorContext; // size = 0x140
typedef struct
{
typedef struct {
/* 0x00 */ char unk_00[0x4];
/* 0x04 */ void* segment;
/* 0x08 */ u8 state;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ u16 frames;
/* 0x12 */ u16 unk_12;
union
{
union {
/* 0x14 */ s32 unk_14_all;
struct
{
struct {
s16 unk_14;
s16 unk_16;
};
@ -505,8 +475,7 @@ typedef struct
/* 0x28 */ CsCmdActorAction* actorActions[10];
} CutsceneContext; // size = 0x50
typedef struct
{
typedef struct {
/* 0x0000 */ View view;
/* 0x0128 */ char unk_128[0xE188];
/* 0xE2B0 */ void* textboxSegment; // "fukidashiSegment"
@ -532,8 +501,18 @@ typedef struct
/* 0xE40E */ char unk_E40E[0x0A];
} MessageContext; // size = 0xE418
typedef struct
{
typedef struct {
/* 0x00 */ u32 vromAddr; // VROM address (source)
/* 0x04 */ void* dramAddr; // DRAM address (destination)
/* 0x08 */ u32 size; // File Transfer size
/* 0x0C */ char* filename; // Filename for debugging
/* 0x10 */ s32 line; // Line for debugging
/* 0x14 */ s32 unk_14;
/* 0x18 */ OSMesgQueue* notifyQueue; // Message queue for the notification message
/* 0x1C */ OSMesg notifyMsg; // Completion notification message
} DmaRequest; // size = 0x20
typedef struct {
/* 0x0000 */ View view;
/* 0x0128 */ Vtx* vtx_128;
/* 0x012C */ Vtx* vtx_12C;
@ -588,8 +567,7 @@ typedef struct
/* 0x025E */ char unk_25E[0x002];
/* 0x0260 */ u8 unk_260;
/* 0x0261 */ u8 unk_261;
struct
{
struct {
/* 0x0262 */ u8 hGauge; // "h_gage"; unknown?
/* 0x0263 */ u8 bButton; // "b_button"
/* 0x0264 */ u8 aButton; // "a_button"
@ -605,8 +583,7 @@ typedef struct
} restrictions;
} InterfaceContext; // size = 0x270
typedef struct
{
typedef struct {
/* 0x0000 */ View view;
/* 0x0128 */ void* unk_128;
/* 0x012C */ char unk_12C[0x03C];
@ -631,8 +608,7 @@ typedef struct
/* 0x025A */ char unk_25A[0x066];
} PauseContext; // size = 0x2C0
typedef struct
{
typedef struct {
/* 0x00 */ s16 id;
/* 0x04 */ void* segment;
/* 0x08 */ DmaRequest dmaRequest;
@ -640,8 +616,7 @@ typedef struct
/* 0x40 */ OSMesg loadMsg;
} ObjectStatus; // size = 0x44
typedef struct
{
typedef struct {
/* 0x0000 */ void* spaceStart;
/* 0x0004 */ void* spaceEnd; // original name: "endSegment"
/* 0x0008 */ u8 num; // number of objects in bank
@ -651,30 +626,26 @@ typedef struct
/* 0x000C */ ObjectStatus status[OBJECT_EXCHANGE_BANK_MAX];
} ObjectContext; // size = 0x514
typedef struct
{
typedef struct {
/* 0x00 */ Gfx* opa;
/* 0x04 */ Gfx* xlu;
} PolygonDlist; // size = 0x8
typedef struct
{
typedef struct {
/* 0x00 */ u8 type;
/* 0x01 */ u8 num; // number of dlist entries
/* 0x04 */ void* start;
/* 0x08 */ void* end;
} Polygon; // size = 0xC
typedef struct
{
typedef struct {
/* 0x00 */ u8 type;
/* 0x01 */ u8 num; // number of dlist entries
/* 0x04 */ void* start;
/* 0x08 */ void* end;
} PolygonType0; // size = 0xC
typedef struct
{
typedef struct {
/* 0x00 */ u16 unk_00;
/* 0x02 */ u8 id;
/* 0x04 */ u32 source;
@ -688,15 +659,12 @@ typedef struct
/* 0x18 */ u16 tlutCount;
} BgImage; // size = 0x1C
typedef struct
{
typedef struct {
/* 0x00 */ u8 type;
/* 0x01 */ u8 format; // 1 = single, 2 = multi
/* 0x04 */ void* dlist;
union
{
struct
{
union {
struct {
/* 0x08 */ u32 source;
/* 0x0C */ u32 unk_0C;
/* 0x10 */ u32 tlut;
@ -707,40 +675,35 @@ typedef struct
/* 0x1A */ u16 mode0;
/* 0x1C */ u16 tlutCount;
} single;
struct
{
struct {
/* 0x08 */ u8 count;
/* 0x0C */ BgImage* list;
} multi;
};
} PolygonType1;
typedef struct
{
typedef struct {
/* 0x00 */ Vec3s pos;
/* 0x06 */ s16 unk_06;
/* 0x08 */ Gfx* opa;
/* 0x0C */ Gfx* xlu;
} PolygonDlist2; // size = 0x8
typedef struct
{
typedef struct {
/* 0x00 */ u8 type;
/* 0x01 */ u8 num; // number of dlist entries
/* 0x04 */ void* start;
/* 0x08 */ void* end;
} PolygonType2; // size = 0xC
typedef union
{
typedef union {
Polygon polygon;
PolygonType0 polygon0;
PolygonType1 polygon1;
PolygonType2 polygon2;
} Mesh; // "Ground Shape"
typedef struct
{
typedef struct {
/* 0x00 */ s8 num;
/* 0x01 */ u8 unk_01;
/* 0x02 */ u8 unk_02;
@ -752,8 +715,7 @@ typedef struct
/* 0x10 */ char unk_10[0x4];
} Room; // size = 0x14
typedef struct
{
typedef struct {
/* 0x00 */ Room curRoom;
/* 0x14 */ Room prevRoom;
/* 0x28 */ void* bufPtrs[2];
@ -765,21 +727,18 @@ typedef struct
/* 0x70 */ OSMesg loadMsg;
} RoomContext; // size = 0x74
typedef struct
{
typedef struct {
/* 0x00 */ char unk_00[0x028C];
} SubGlobalContext11E60; // size = 0x28C
typedef struct
{
typedef struct {
/* 0x00 */ s16 id;
/* 0x02 */ Vec3s pos;
/* 0x08 */ Vec3s rot;
/* 0x0E */ s16 params;
} ActorEntry; // size = 0x10
typedef struct
{
typedef struct {
/* 0x00 */ s8 frontRoom; // Room to switch to when triggered from the front of the object
/* 0x01 */ s8 frontEffects; // How the camera reacts during the front transition
/* 0x02 */ s8 backRoom; // Room to switch to when triggered from the back of the object
@ -790,39 +749,33 @@ typedef struct
/* 0x0E */ s16 params;
} TransitionActorEntry; // size = 0x10
typedef struct
{
typedef struct {
/* 0x00 */ u8 spawn;
/* 0x01 */ u8 room;
} EntranceEntry;
typedef struct
{
typedef struct {
/* 0x00 */ u32 vromStart;
/* 0x04 */ u32 vromEnd;
} RomFile; // size = 0x8
typedef struct
{
typedef struct {
/* 0x00 */ void* read_buff;
} Sram; // size = 0x4
typedef struct GameAllocEntry
{
typedef struct GameAllocEntry {
/* 0x00 */ struct GameAllocEntry* next;
/* 0x04 */ struct GameAllocEntry* prev;
/* 0x08 */ u32 size;
/* 0x0C */ u32 unk_0C;
} GameAllocEntry; //size = 0x10
} GameAllocEntry; // size = 0x10
typedef struct
{
typedef struct {
/* 0x00 */ GameAllocEntry base;
/* 0x10 */ GameAllocEntry* head;
} GameAlloc; // size = 0x14
typedef struct GameState
{
typedef struct GameState {
/* 0x00 */ GraphicsContext* gfxCtx;
/* 0x04 */ void (*main)(struct GameState*);
/* 0x08 */ void (*destroy)(struct GameState*); // "cleanup"
@ -836,8 +789,7 @@ typedef struct GameState
/* 0xA0 */ u32 unk_A0;
} GameState; // size = 0xA4
typedef struct
{
typedef struct {
/* 0x0000 */ GameState state;
/* 0x00A4 */ void* staticSegment;
/* 0x00A8 */ View view;
@ -853,9 +805,15 @@ typedef struct
/* 0x01E2 */ char unk_1E2[6];
} TitleContext; // size = 0x1E8
// Global Context (dbg ram start: 80212020)
typedef struct GlobalContext
typedef struct
{
/* 0x0000 */ GameState state;
/* 0x00A4 */ void* staticSegment;
/* 0x00A8 */ View view;
} SampleContext;
// Global Context (dbg ram start: 80212020)
typedef struct GlobalContext {
/* 0x00000 */ GameState state;
/* 0x000A4 */ s16 sceneNum;
/* 0x000A6 */ u8 sceneConfig;
@ -954,7 +912,7 @@ typedef struct GlobalContext
/* 0x11DFC */ UNK_PTR unk_11DFC;
/* 0x11E00 */ EntranceEntry* setupEntranceList;
/* 0x11E04 */ UNK_PTR setupExitList;
/* 0x11E08 */ UNK_PTR setupPathList;
/* 0x11E08 */ Path* setupPathList;
/* 0x11E0C */ UNK_PTR naviMsgSegment;
/* 0x11E10 */ char unk_11E10[0x4];
/* 0x11E14 */ u8 skyboxId;
@ -977,22 +935,19 @@ typedef struct GlobalContext
/* 0x12430 */ char unk_12430[0xE8];
} GlobalContext; // size = 0x12518
typedef struct
{
typedef struct {
/* 0x0000 */ GameState state;
/* 0x00A4 */ char unk_A4[4];
/* 0x00A8 */ View view;
} OpeningContext; // size = 0x1D0
typedef enum
{
typedef enum {
DPM_UNK = 0,
DPM_PLAYER = 1,
DPM_ENEMY = 2
} DynaPolyMoveFlag;
typedef struct LoadedParticleEntry
{
typedef struct LoadedParticleEntry {
/* 0x0000 */ Vec3f position;
/* 0x000C */ Vec3f velocity;
/* 0x0018 */ Vec3f acceleration;
@ -1010,14 +965,47 @@ typedef struct LoadedParticleEntry
/* 0x005F */ u8 type;
} LoadedParticleEntry; // size = 0x60
typedef struct
{
// Some animation related structure
typedef struct {
/* 0x00 */ u32 animation;
/* 0x04 */ f32 playbackSpeed;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 frameCount;
/* 0x10 */ u8 unk_10;
/* 0x14 */ f32 transitionRate;
} struct_80034EC0_Entry; // size = 0x18
typedef struct {
/* 0x00 */ u8 limbCount;
/* 0x01 */ char unk_01[0x01];
/* 0x02 */ u8 dListCount;
/* 0x03 */ char unk_03[0x01]; /* Probably Padding */
/* 0x04 */ u32 limbIndex;
/* 0x08 */ u32* animCurrent;
/* 0x0C */ char unk_0C[0x04];
/* 0x10 */ f32 animFrameCount;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 animCurrentFrame;
/* 0x1C */ f32 animPlaybackSpeed;
/* 0x20 */ u32 actorDrawTbl;
/* 0x24 */ u32 unk_24;
/* 0x28 */ u32 unk_28;
/* 0x2C */ u32 unk_2C;
/* 0x30 */ void* funcUnk30; /* Some function pointer */
/* 0x34 */ s32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ u16 unk_3C;
/* 0x3E */ u16 unk_3E;
/* 0x40 */ u16 unk_40;
/* 0x42 */ u16 unk_42;
} SkelAnime; // size = 0x44
typedef struct {
/* 0x00 */ u32 unk_00;
/* 0x04 */ u32(*init)(GlobalContext*, u32, LoadedParticleEntry*, void*);
} ParticleOverlayInfo;
typedef struct
{
typedef struct {
/* 0x00 */ u32 vromStart;
/* 0x04 */ u32 vromEnd;
/* 0x0C */ void* vramStart;
@ -1027,15 +1015,13 @@ typedef struct
/* 0x18 */ u32 unk_18; // Always 0x01000000?
} ParticleOverlay;
typedef struct
{
typedef struct {
/* 0x00 */ LoadedParticleEntry* data_table; // Name from debug assert
/* 0x04 */ s32 searchIndex;
/* 0x08 */ s32 size;
} EffectTableInfo;
typedef struct
{
typedef struct {
/* 0x00 */ s8 scene;
/* 0x01 */ s8 spawn;
/* 0x02 */ u16 continueBgm : 1;
@ -1044,8 +1030,7 @@ typedef struct
/* 0x02 */ u16 fadeOutTransition : 7;
} EntranceInfo; // size = 0x4
typedef struct
{
typedef struct {
/* 0x00 */ void* loadedRamAddr;
/* 0x04 */ u32 vromStart; // if applicable
/* 0x08 */ u32 vromEnd; // if applicable
@ -1060,21 +1045,18 @@ typedef struct
/* 0x2C */ u32 instanceSize;
} GameStateOverlay; // size = 0x30
typedef struct PreNMIContext
{
typedef struct PreNMIContext {
/* 0x00 */ GameState state;
/* 0xA4 */ u32 timer;
/* 0xA8 */ UNK_TYPE unk_A8;
} PreNMIContext; // size = 0xAC
typedef struct
{
typedef struct {
/* 0x00 */ s8 chestFlag; // chest icon is only displayed if this flag is not set for the current room
/* 0x01 */ u8 x, y; // coordinates to place the icon (top-left corner), relative to the minimap texture
} MapMarkPoint; // size = 0x3
typedef struct
{
typedef struct {
/* 0x00 */ s8 markType; // 0 for the chest icon, 1 for the boss skull icon, -1 for none
/* 0x01 */ u8 count; // number of icons to display
/* 0x02 */ MapMarkPoint points[12];
@ -1082,8 +1064,7 @@ typedef struct
typedef MapMarkData MapMarksData[3]; // size = 0x72
typedef struct DebugDispObject
{
typedef struct DebugDispObject {
/* 0x00 */ Vec3f pos;
/* 0x0C */ Vec3s rot;
/* 0x14 */ Vec3f scale;
@ -1092,8 +1073,7 @@ typedef struct DebugDispObject
/* 0x28 */ struct DebugDispObject* next;
} DebugDispObject; // size = 0x2C
typedef struct
{
typedef struct {
/* 0x00 */ Vec3s colAbsMin;
/* 0x06 */ Vec3s colAbsMax;
/* 0x0C */ s16 nbVertices;
@ -1106,30 +1086,26 @@ typedef struct
/* 0x28 */ void* waterBoxes;
} CollisionHeader;
typedef enum
{
typedef enum {
MTXMODE_NEW, // generates a new matrix
MTXMODE_APPLY // applies transformation to the current matrix
} MatrixMode;
typedef struct FaultClient
{
typedef struct FaultClient {
struct FaultClient* next;
u32 callback;
u32 param1;
u32 param2;
} FaultClient;
typedef struct FaultAddrConvClient
{
typedef struct FaultAddrConvClient {
struct FaultAddrConvClient* next;
u32 callback;
u32 param;
} FaultAddrConvClient;
typedef struct
{
typedef struct {
u32 (*callback)(u32, u32);
u32 param0;
u32 param1;
@ -1138,8 +1114,7 @@ typedef struct
OSMesg msg;
} FaultClientContext;
typedef struct FaultThreadStruct
{
typedef struct FaultThreadStruct {
OSThread thread;
u8 unk_1B0[0x600];
OSMesgQueue queue;
@ -1160,8 +1135,7 @@ typedef struct FaultThreadStruct
u8 unk_84C[4];
} FaultThreadStruct;
typedef struct
{
typedef struct {
u16* fb;
u16 w;
u16 h;
@ -1179,13 +1153,12 @@ typedef struct
s8 charWPad;
s8 charHPad;
u16 printColors[10];
u8 escCode; //bool
u8 escCode; // bool
u8 osSyncPrintfEnabled;
void(*inputCallback)();
} FaultDrawer;
typedef struct GfxPrint
{
typedef struct GfxPrint {
/* 0x00 */ struct GfxPrint*(*callback)(struct GfxPrint*, const char*, size_t);
/* 0x04 */ Gfx* dlist;
/* 0x08 */ u16 posX;
@ -1196,8 +1169,7 @@ typedef struct GfxPrint
/* 0x10 */ Color_RGBA8 color;
} GfxPrint;
typedef enum
{
typedef enum {
GFXPRINT_FLAG1 = 1,
GFXPRINT_USE_RGBA16 = 2,
GFXPRINT_FLAG4 = 4,
@ -1206,8 +1178,7 @@ typedef enum
GFXPRINT_OPEN = 0x80
} GfxPrintFlag;
typedef struct StackEntry
{
typedef struct StackEntry {
/* 0x00 */ struct StackEntry* next;
/* 0x04 */ struct StackEntry* prev;
/* 0x08 */ u32 head;
@ -1217,16 +1188,14 @@ typedef struct StackEntry
/* 0x18 */ const char* name;
} StackEntry;
typedef enum
{
typedef enum {
STACK_STATUS_OK = 0,
STACK_STATUS_WARNING = 1,
STACK_STATUS_OVERFLOW = 2
} StackStatus;
typedef struct
{
/* 0x00 */ u32 magic; //IS64
typedef struct {
/* 0x00 */ u32 magic; // IS64
/* 0x04 */ u32 get;
/* 0x08 */ u8 unk_08[0x14-0x08];
/* 0x14 */ u32 put;
@ -1234,14 +1203,18 @@ typedef struct
/* 0x20 */ u8 data[0x10000-0x20];
} ISVDbg;
typedef struct
{
typedef struct {
/* 0x00 */ u32 vromStart;
/* 0x04 */ u32 vromEnd;
/* 0x08 */ u32 romStart;
/* 0x0C */ u32 romEnd;
} DmaEntry;
typedef struct {
char name[0x18];
u32 mediaFormat;
union
{
struct
{
union {
struct {
u16 cartId;
u8 countryCode;
u8 version;
@ -1250,18 +1223,17 @@ typedef struct
};
} LocaleCartInfo;
typedef struct
{
char magic[4]; //Yaz0
typedef struct {
char magic[4]; // Yaz0
u32 decSize;
u32 compInfoOffset; //only used in yaz0_old.c
u32 uncompDataOffset; //only used in yaz0_old.c
u32 compInfoOffset; // only used in yaz0_old.c
u32 uncompDataOffset; // only used in yaz0_old.c
u32 data[1];
} Yaz0Header;
#define OS_SC_RETRACE_MSG 1
#define OS_SC_DONE_MSG 2
#define OS_SC_NMI_MSG 3 //name is made up, 3 is OS_SC_RDP_DONE_MSG in the original sched.c
#define OS_SC_NMI_MSG 3 // name is made up, 3 is OS_SC_RDP_DONE_MSG in the original sched.c
#define OS_SC_PRE_NMI_MSG 4
typedef struct {
@ -1269,16 +1241,14 @@ typedef struct {
char misc[30];
} OSScMsg;
typedef struct IrqMgrClient
{
typedef struct IrqMgrClient {
struct IrqMgrClient* prev;
OSMesgQueue* queue;
} IrqMgrClient;
typedef struct
{
/* 0x000 */ OSScMsg retraceMsg; //this apparently got moved from OSSched
/* 0x020 */ OSScMsg prenmiMsg; //this apparently got moved from OSSched
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];
@ -1288,22 +1258,20 @@ typedef struct
/* 0x250 */ OSTime resetTime;
/* 0x258 */ OSTimer timer;
/* 0x278 */ OSTime retraceTime;
} IrqMgr; //size = 0x280
} IrqMgr; // size = 0x280
struct ArenaNode;
typedef struct Arena
{
typedef struct Arena {
/* 0x00 */ struct ArenaNode* head;
/* 0x04 */ void* start;
/* 0x08 */ OSMesgQueue lock;
/* 0x20 */ u8 unk_20;
/* 0x21 */ u8 isInit;
/* 0x22 */ u8 flag;
} Arena; //size = 0x24
} Arena; // size = 0x24
typedef struct ArenaNode
{
typedef struct ArenaNode {
/* 0x00 */ s16 magic;
/* 0x02 */ s16 isFree;
/* 0x04 */ u32 size;
@ -1314,8 +1282,8 @@ typedef struct ArenaNode
/* 0x18 */ OSId threadId;
/* 0x1C */ Arena* arena;
/* 0x20 */ OSTime time;
/* 0x28 */ u8 unk_28[0x30-0x28]; //probably padding
} ArenaNode; //size = 0x30
/* 0x28 */ u8 unk_28[0x30-0x28]; // probably padding
} ArenaNode; // size = 0x30
typedef struct OverlayRelocationSection {
/* 0x00 */ u32 textSize;
@ -1326,33 +1294,30 @@ typedef struct OverlayRelocationSection {
/* 0x14 */ u32 relocations[1];
} OverlayRelocationSection; // size >= 0x18
typedef struct
{
typedef struct {
/* 0x00 */ void* loadedRamAddr;
/* 0x04 */ u32 vromStart;
/* 0x08 */ u32 vromEnd;
/* 0x0C */ u8* vramStart;
/* 0x10 */ u8* vramEnd;
/* 0x14 */ u32 off; //loadedRamAddr - vram
/* 0x14 */ u32 off; // loadedRamAddr - vram
/* 0x18 */ const char* name;
} KaleidoManagerOvl; //size = 0x1C
} KaleidoManagerOvl; // size = 0x1C
#define KALEIDO_OVL_KALEIDO_SCOPE 0
#define KALEIDO_OVL_PLAYER_ACTOR 1
#define KALEIDO_OVL_COUNT 2
typedef struct ListAlloc
{
typedef struct ListAlloc {
/* 0x00 */ struct ListAlloc* prev;
/* 0x04 */ struct ListAlloc* next;
} ListAlloc; //size = 0x8
} ListAlloc; // size = 0x8
typedef struct
{
typedef struct {
/* 0x00 */ u32 resetting;
/* 0x04 */ u32 resetCount;
/* 0x08 */ OSTime duration;
/* 0x10 */ OSTime resetTime;
} PreNmiBuff; //size = 0x18 (actually osAppNmiBuffer is 0x40 bytes large but the rest is unused)
} PreNmiBuff; // size = 0x18 (actually osAppNmiBuffer is 0x40 bytes large but the rest is unused)
#endif