mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-26 19:04:20 +00:00
Clean out z64.h (#2484)
* Clean out z64.h * fix version include * overlay.h * pr suggestion * try fixing main.c * add back forward declare * fix bss * header guard * prefix
This commit is contained in:
parent
2e4d7a1101
commit
5ddb3e68b6
36 changed files with 199 additions and 157 deletions
|
@ -42,20 +42,8 @@ void* MemCpy(void* dest, const void* src, s32 len);
|
||||||
void MapMark_Init(PlayState* play);
|
void MapMark_Init(PlayState* play);
|
||||||
void MapMark_ClearPointers(PlayState* play);
|
void MapMark_ClearPointers(PlayState* play);
|
||||||
void MapMark_Draw(PlayState* play);
|
void MapMark_Draw(PlayState* play);
|
||||||
void PreNmiBuff_Init(PreNmiBuff* this);
|
|
||||||
void PreNmiBuff_SetReset(PreNmiBuff* this);
|
|
||||||
u32 PreNmiBuff_IsResetting(PreNmiBuff* this);
|
|
||||||
void Sched_FlushTaskQueue(void);
|
void Sched_FlushTaskQueue(void);
|
||||||
|
|
||||||
void ViMode_LogPrint(OSViMode* osViMode);
|
|
||||||
void ViMode_Configure(ViMode* viMode, s32 type, s32 tvType, s32 loRes, s32 antialiasOff, s32 modeN, s32 fb16Bit,
|
|
||||||
s32 width, s32 height, s32 leftAdjust, s32 rightAdjust, s32 upperAdjust, s32 lowerAdjust);
|
|
||||||
void ViMode_Save(ViMode* viMode);
|
|
||||||
void ViMode_Load(ViMode* viMode);
|
|
||||||
void ViMode_Init(ViMode* viMode);
|
|
||||||
void ViMode_Destroy(ViMode* viMode);
|
|
||||||
void ViMode_ConfigureFeatures(ViMode* viMode, s32 viFeatures);
|
|
||||||
void ViMode_Update(ViMode* viMode, Input* input);
|
|
||||||
void PlayerCall_InitFuncPtrs(void);
|
void PlayerCall_InitFuncPtrs(void);
|
||||||
void TransitionTile_Destroy(TransitionTile* this);
|
void TransitionTile_Destroy(TransitionTile* this);
|
||||||
TransitionTile* TransitionTile_Init(TransitionTile* this, s32 cols, s32 rows);
|
TransitionTile* TransitionTile_Init(TransitionTile* this, s32 cols, s32 rows);
|
||||||
|
@ -137,12 +125,7 @@ void func_800D3210(void);
|
||||||
|
|
||||||
void RcpUtils_PrintRegisterStatus(void);
|
void RcpUtils_PrintRegisterStatus(void);
|
||||||
void RcpUtils_Reset(void);
|
void RcpUtils_Reset(void);
|
||||||
void* Overlay_AllocateAndLoad(uintptr_t vromStart, uintptr_t vromEnd, void* vramStart, void* vramEnd);
|
|
||||||
void Overlay_Relocate(void* allocatedRamAddr, OverlayRelocationSection* ovlRelocs, void* vramStart);
|
|
||||||
size_t Overlay_Load(uintptr_t vromStart, uintptr_t vromEnd, void* vramStart, void* vramEnd, void* allocatedRamAddr);
|
|
||||||
// ? func_800FC800(?);
|
|
||||||
// ? func_800FC83C(?);
|
|
||||||
// ? func_800FCAB4(?);
|
|
||||||
void SystemHeap_Init(void* start, u32 size);
|
void SystemHeap_Init(void* start, u32 size);
|
||||||
|
|
||||||
f32 absf(f32);
|
f32 absf(f32);
|
||||||
|
|
40
include/libu64/overlay.h
Normal file
40
include/libu64/overlay.h
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
#ifndef LIBU64_OVERLAY_H
|
||||||
|
#define LIBU64_OVERLAY_H
|
||||||
|
|
||||||
|
#include "ultra64.h"
|
||||||
|
|
||||||
|
/* Relocation entry field getters */
|
||||||
|
#define RELOC_SECTION(reloc) ((reloc) >> 30)
|
||||||
|
#define RELOC_OFFSET(reloc) ((reloc) & 0xFFFFFF)
|
||||||
|
#define RELOC_TYPE_MASK(reloc) ((reloc) & 0x3F000000)
|
||||||
|
#define RELOC_TYPE_SHIFT 24
|
||||||
|
|
||||||
|
/* MIPS Relocation Types, matches the MIPS ELF spec */
|
||||||
|
#define R_MIPS_32 2
|
||||||
|
#define R_MIPS_26 4
|
||||||
|
#define R_MIPS_HI16 5
|
||||||
|
#define R_MIPS_LO16 6
|
||||||
|
|
||||||
|
/* Reloc section id, must fit in 2 bits otherwise the relocation format must be modified */
|
||||||
|
typedef enum RelocSectionId {
|
||||||
|
/* 0 */ RELOC_SECTION_NULL,
|
||||||
|
/* 1 */ RELOC_SECTION_TEXT,
|
||||||
|
/* 2 */ RELOC_SECTION_DATA,
|
||||||
|
/* 3 */ RELOC_SECTION_RODATA,
|
||||||
|
/* 4 */ RELOC_SECTION_MAX
|
||||||
|
} RelocSectionId;
|
||||||
|
|
||||||
|
typedef struct OverlayRelocationSection {
|
||||||
|
/* 0x00 */ u32 textSize;
|
||||||
|
/* 0x04 */ u32 dataSize;
|
||||||
|
/* 0x08 */ u32 rodataSize;
|
||||||
|
/* 0x0C */ u32 bssSize;
|
||||||
|
/* 0x10 */ u32 nRelocations;
|
||||||
|
/* 0x14 */ u32 relocations[1]; // size is nRelocations
|
||||||
|
} OverlayRelocationSection; // size >= 0x18
|
||||||
|
|
||||||
|
void* Overlay_AllocateAndLoad(uintptr_t vromStart, uintptr_t vromEnd, void* vramStart, void* vramEnd);
|
||||||
|
void Overlay_Relocate(void* allocatedRamAddr, OverlayRelocationSection* ovlRelocs, void* vramStart);
|
||||||
|
size_t Overlay_Load(uintptr_t vromStart, uintptr_t vromEnd, void* vramStart, void* vramEnd, void* allocatedRamAddr);
|
||||||
|
|
||||||
|
#endif
|
25
include/prenmi_buff.h
Normal file
25
include/prenmi_buff.h
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#ifndef PRENMI_BUFF_H
|
||||||
|
#define PRENMI_BUFF_H
|
||||||
|
|
||||||
|
#include "ultra64.h"
|
||||||
|
#include "alignment.h"
|
||||||
|
|
||||||
|
// This struct is used at osAppNMIBuffer which is not at an 8-byte aligned address. This causes an unaligned access
|
||||||
|
// crash if the OSTime variables use 64-bit load/store instructions, which is the case in any MIPS ABI other than O32
|
||||||
|
// where 64-bit load/store instructions are emulated with 2x 32-bit load/store instructions. The alignment attribute
|
||||||
|
// conveys that this structure will not always be 8-bytes aligned, allowing a modern compiler to generate non-crashing
|
||||||
|
// code for accessing these. This is not an issue in the original compiler as it only output O32 ABI code.
|
||||||
|
ALIGNED(4) typedef struct PreNmiBuff {
|
||||||
|
/* 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)
|
||||||
|
|
||||||
|
extern PreNmiBuff* gAppNmiBufferPtr;
|
||||||
|
|
||||||
|
void PreNmiBuff_Init(PreNmiBuff* this);
|
||||||
|
void PreNmiBuff_SetReset(PreNmiBuff* this);
|
||||||
|
u32 PreNmiBuff_IsResetting(PreNmiBuff* this);
|
||||||
|
|
||||||
|
#endif
|
|
@ -68,7 +68,6 @@ extern u32 __osTimerCounter;
|
||||||
extern EffectSsOverlay gEffectSsOverlayTable[EFFECT_SS_TYPE_MAX];
|
extern EffectSsOverlay gEffectSsOverlayTable[EFFECT_SS_TYPE_MAX];
|
||||||
extern ActorOverlay gActorOverlayTable[ACTOR_ID_MAX]; // original name: "actor_dlftbls" 801162A0
|
extern ActorOverlay gActorOverlayTable[ACTOR_ID_MAX]; // original name: "actor_dlftbls" 801162A0
|
||||||
extern s32 gMaxActorId; // original name: "MaxProfile"
|
extern s32 gMaxActorId; // original name: "MaxProfile"
|
||||||
extern GameStateOverlay gGameStateOverlayTable[GAMESTATE_ID_MAX];
|
|
||||||
extern s32 gZeldaArenaLogSeverity;
|
extern s32 gZeldaArenaLogSeverity;
|
||||||
extern MapData gMapDataTable;
|
extern MapData gMapDataTable;
|
||||||
extern s16 gSpoilingItems[3];
|
extern s16 gSpoilingItems[3];
|
||||||
|
@ -153,7 +152,6 @@ extern f32 gBossMarkScale;
|
||||||
extern u32 D_8016139C;
|
extern u32 D_8016139C;
|
||||||
extern PauseMapMarksData* gLoadedPauseMarkDataTable;
|
extern PauseMapMarksData* gLoadedPauseMarkDataTable;
|
||||||
|
|
||||||
extern PreNmiBuff* gAppNmiBufferPtr;
|
|
||||||
extern Scheduler gScheduler;
|
extern Scheduler gScheduler;
|
||||||
extern PadMgr gPadMgr;
|
extern PadMgr gPadMgr;
|
||||||
extern IrqMgr gIrqMgr;
|
extern IrqMgr gIrqMgr;
|
||||||
|
|
45
include/vi_mode.h
Normal file
45
include/vi_mode.h
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#ifndef VI_MODE_H
|
||||||
|
#define VI_MODE_H
|
||||||
|
|
||||||
|
#include "ultra64.h"
|
||||||
|
#include "libu64/pad.h"
|
||||||
|
#include "versions.h"
|
||||||
|
|
||||||
|
typedef enum ViModeEditState {
|
||||||
|
#if OOT_VERSION < PAL_1_0
|
||||||
|
/* -2 */ VI_MODE_EDIT_STATE_NEGATIVE_2 = -2,
|
||||||
|
/* -1 */ VI_MODE_EDIT_STATE_NEGATIVE_1,
|
||||||
|
/* 0 */ VI_MODE_EDIT_STATE_INACTIVE,
|
||||||
|
/* 1 */ VI_MODE_EDIT_STATE_2, // active, more adjustments
|
||||||
|
/* 2 */ VI_MODE_EDIT_STATE_3 // active, more adjustments, print comparison with NTSC LAN1 mode
|
||||||
|
#else
|
||||||
|
/* 0 */ VI_MODE_EDIT_STATE_INACTIVE,
|
||||||
|
/* 1 */ VI_MODE_EDIT_STATE_ACTIVE,
|
||||||
|
/* 2 */ VI_MODE_EDIT_STATE_2, // active, more adjustments
|
||||||
|
/* 3 */ VI_MODE_EDIT_STATE_3 // active, more adjustments, print comparison with NTSC LAN1 mode
|
||||||
|
#endif
|
||||||
|
} ViModeEditState;
|
||||||
|
|
||||||
|
typedef struct ViMode {
|
||||||
|
/* 0x00 */ OSViMode customViMode;
|
||||||
|
/* 0x50 */ s32 viHeight;
|
||||||
|
/* 0x54 */ s32 viWidth;
|
||||||
|
/* 0x58 */ s32 rightAdjust;
|
||||||
|
/* 0x5C */ s32 leftAdjust;
|
||||||
|
/* 0x60 */ s32 lowerAdjust;
|
||||||
|
/* 0x64 */ s32 upperAdjust;
|
||||||
|
/* 0x68 */ s32 editState;
|
||||||
|
/* 0x6C */ s32 tvType;
|
||||||
|
/* 0x70 */ u32 loRes;
|
||||||
|
/* 0x74 */ u32 antialiasOff;
|
||||||
|
/* 0x78 */ u32 modeN; // Controls interlacing, the meaning of this mode is different based on choice of resolution
|
||||||
|
/* 0x7C */ u32 fb16Bit;
|
||||||
|
/* 0x80 */ u32 viFeatures;
|
||||||
|
/* 0x84 */ u32 unk_84;
|
||||||
|
} ViMode; // size = 0x88
|
||||||
|
|
||||||
|
void ViMode_Init(ViMode* viMode);
|
||||||
|
void ViMode_Destroy(ViMode* viMode);
|
||||||
|
void ViMode_Update(ViMode* viMode, Input* input);
|
||||||
|
|
||||||
|
#endif
|
118
include/z64.h
118
include/z64.h
|
@ -58,122 +58,6 @@
|
||||||
#include "libc64/sprintf.h"
|
#include "libc64/sprintf.h"
|
||||||
#include "libu64/debug.h"
|
#include "libu64/debug.h"
|
||||||
|
|
||||||
typedef struct GameStateOverlay {
|
// TODO: include all files listed above into the right place, and then delete this file.
|
||||||
/* 0x00 */ void* loadedRamAddr;
|
|
||||||
/* 0x04 */ RomFile file; // if applicable
|
|
||||||
/* 0x0C */ void* vramStart; // if applicable
|
|
||||||
/* 0x10 */ void* vramEnd; // if applicable
|
|
||||||
/* 0x14 */ void* unk_14;
|
|
||||||
/* 0x18 */ void* init; // initializes and executes the given context
|
|
||||||
/* 0x1C */ void* destroy; // deconstructs the context, and sets the next context to load
|
|
||||||
/* 0x20 */ void* unk_20;
|
|
||||||
/* 0x24 */ void* unk_24;
|
|
||||||
/* 0x28 */ UNK_TYPE4 unk_28;
|
|
||||||
/* 0x2C */ u32 instanceSize;
|
|
||||||
} GameStateOverlay; // size = 0x30
|
|
||||||
|
|
||||||
typedef struct ISVDbg {
|
|
||||||
/* 0x00 */ u32 magic; // IS64
|
|
||||||
/* 0x04 */ u32 get;
|
|
||||||
/* 0x08 */ u8 unk_08[0x14-0x08];
|
|
||||||
/* 0x14 */ u32 put;
|
|
||||||
/* 0x18 */ u8 unk_18[0x20-0x18];
|
|
||||||
/* 0x20 */ u8 data[0x10000-0x20];
|
|
||||||
} ISVDbg;
|
|
||||||
|
|
||||||
typedef struct LocaleCartInfo {
|
|
||||||
/* 0x00 */ char name[0x18];
|
|
||||||
/* 0x18 */ u32 mediaFormat;
|
|
||||||
/* 0x1C */ union {
|
|
||||||
struct {
|
|
||||||
u16 cartId;
|
|
||||||
u8 countryCode;
|
|
||||||
u8 version;
|
|
||||||
};
|
|
||||||
u32 regionInfo;
|
|
||||||
};
|
|
||||||
} LocaleCartInfo; // size = 0x20
|
|
||||||
|
|
||||||
typedef struct Yaz0Header {
|
|
||||||
/* 0x00 */ char magic[4]; // Yaz0
|
|
||||||
/* 0x04 */ u32 decSize;
|
|
||||||
/* 0x08 */ u32 compInfoOffset; // only used in mio0
|
|
||||||
/* 0x0C */ u32 uncompDataOffset; // only used in mio0
|
|
||||||
} Yaz0Header; // size = 0x10
|
|
||||||
|
|
||||||
/* Relocation entry field getters */
|
|
||||||
#define RELOC_SECTION(reloc) ((reloc) >> 30)
|
|
||||||
#define RELOC_OFFSET(reloc) ((reloc) & 0xFFFFFF)
|
|
||||||
#define RELOC_TYPE_MASK(reloc) ((reloc) & 0x3F000000)
|
|
||||||
#define RELOC_TYPE_SHIFT 24
|
|
||||||
|
|
||||||
/* MIPS Relocation Types, matches the MIPS ELF spec */
|
|
||||||
#define R_MIPS_32 2
|
|
||||||
#define R_MIPS_26 4
|
|
||||||
#define R_MIPS_HI16 5
|
|
||||||
#define R_MIPS_LO16 6
|
|
||||||
|
|
||||||
/* Reloc section id, must fit in 2 bits otherwise the relocation format must be modified */
|
|
||||||
typedef enum RelocSectionId {
|
|
||||||
/* 0 */ RELOC_SECTION_NULL,
|
|
||||||
/* 1 */ RELOC_SECTION_TEXT,
|
|
||||||
/* 2 */ RELOC_SECTION_DATA,
|
|
||||||
/* 3 */ RELOC_SECTION_RODATA,
|
|
||||||
/* 4 */ RELOC_SECTION_MAX
|
|
||||||
} RelocSectionId;
|
|
||||||
|
|
||||||
typedef struct OverlayRelocationSection {
|
|
||||||
/* 0x00 */ u32 textSize;
|
|
||||||
/* 0x04 */ u32 dataSize;
|
|
||||||
/* 0x08 */ u32 rodataSize;
|
|
||||||
/* 0x0C */ u32 bssSize;
|
|
||||||
/* 0x10 */ u32 nRelocations;
|
|
||||||
/* 0x14 */ u32 relocations[1]; // size is nRelocations
|
|
||||||
} OverlayRelocationSection; // size >= 0x18
|
|
||||||
|
|
||||||
// This struct is used at osAppNMIBuffer which is not at an 8-byte aligned address. This causes an unaligned access
|
|
||||||
// crash if the OSTime variables use 64-bit load/store instructions, which is the case in any MIPS ABI other than O32
|
|
||||||
// where 64-bit load/store instructions are emulated with 2x 32-bit load/store instructions. The alignment attribute
|
|
||||||
// conveys that this structure will not always be 8-bytes aligned, allowing a modern compiler to generate non-crashing
|
|
||||||
// code for accessing these. This is not an issue in the original compiler as it only output O32 ABI code.
|
|
||||||
ALIGNED(4) typedef struct PreNmiBuff {
|
|
||||||
/* 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)
|
|
||||||
|
|
||||||
typedef enum ViModeEditState {
|
|
||||||
#if OOT_VERSION < PAL_1_0
|
|
||||||
/* -2 */ VI_MODE_EDIT_STATE_NEGATIVE_2 = -2,
|
|
||||||
/* -1 */ VI_MODE_EDIT_STATE_NEGATIVE_1,
|
|
||||||
/* 0 */ VI_MODE_EDIT_STATE_INACTIVE,
|
|
||||||
/* 1 */ VI_MODE_EDIT_STATE_2, // active, more adjustments
|
|
||||||
/* 2 */ VI_MODE_EDIT_STATE_3 // active, more adjustments, print comparison with NTSC LAN1 mode
|
|
||||||
#else
|
|
||||||
/* 0 */ VI_MODE_EDIT_STATE_INACTIVE,
|
|
||||||
/* 1 */ VI_MODE_EDIT_STATE_ACTIVE,
|
|
||||||
/* 2 */ VI_MODE_EDIT_STATE_2, // active, more adjustments
|
|
||||||
/* 3 */ VI_MODE_EDIT_STATE_3 // active, more adjustments, print comparison with NTSC LAN1 mode
|
|
||||||
#endif
|
|
||||||
} ViModeEditState;
|
|
||||||
|
|
||||||
typedef struct ViMode {
|
|
||||||
/* 0x00 */ OSViMode customViMode;
|
|
||||||
/* 0x50 */ s32 viHeight;
|
|
||||||
/* 0x54 */ s32 viWidth;
|
|
||||||
/* 0x58 */ s32 rightAdjust;
|
|
||||||
/* 0x5C */ s32 leftAdjust;
|
|
||||||
/* 0x60 */ s32 lowerAdjust;
|
|
||||||
/* 0x64 */ s32 upperAdjust;
|
|
||||||
/* 0x68 */ s32 editState;
|
|
||||||
/* 0x6C */ s32 tvType;
|
|
||||||
/* 0x70 */ u32 loRes;
|
|
||||||
/* 0x74 */ u32 antialiasOff;
|
|
||||||
/* 0x78 */ u32 modeN; // Controls interlacing, the meaning of this mode is different based on choice of resolution
|
|
||||||
/* 0x7C */ u32 fb16Bit;
|
|
||||||
/* 0x80 */ u32 viFeatures;
|
|
||||||
/* 0x84 */ u32 unk_84;
|
|
||||||
} ViMode; // size = 0x88
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include "ultra64/ultratypes.h"
|
#include "ultra64/ultratypes.h"
|
||||||
#include "libu64/pad.h"
|
#include "libu64/pad.h"
|
||||||
#include "gamealloc.h"
|
#include "gamealloc.h"
|
||||||
|
#include "romfile.h"
|
||||||
#include "tha.h"
|
#include "tha.h"
|
||||||
|
|
||||||
struct GraphicsContext;
|
struct GraphicsContext;
|
||||||
|
@ -19,6 +20,22 @@ typedef enum GameStateId {
|
||||||
#undef DEFINE_GAMESTATE
|
#undef DEFINE_GAMESTATE
|
||||||
#undef DEFINE_GAMESTATE_INTERNAL
|
#undef DEFINE_GAMESTATE_INTERNAL
|
||||||
|
|
||||||
|
typedef struct GameStateOverlay {
|
||||||
|
/* 0x00 */ void* loadedRamAddr;
|
||||||
|
/* 0x04 */ RomFile file; // if applicable
|
||||||
|
/* 0x0C */ void* vramStart; // if applicable
|
||||||
|
/* 0x10 */ void* vramEnd; // if applicable
|
||||||
|
/* 0x14 */ void* unk_14;
|
||||||
|
/* 0x18 */ void* init;
|
||||||
|
/* 0x1C */ void* destroy;
|
||||||
|
/* 0x20 */ void* unk_20;
|
||||||
|
/* 0x24 */ void* unk_24;
|
||||||
|
/* 0x28 */ s32 unk_28;
|
||||||
|
/* 0x2C */ u32 instanceSize;
|
||||||
|
} GameStateOverlay; // size = 0x30
|
||||||
|
|
||||||
|
extern GameStateOverlay gGameStateOverlayTable[GAMESTATE_ID_MAX];
|
||||||
|
|
||||||
struct GameState;
|
struct GameState;
|
||||||
|
|
||||||
typedef void (*GameStateFunc)(struct GameState* gameState);
|
typedef void (*GameStateFunc)(struct GameState* gameState);
|
||||||
|
|
|
@ -1,5 +1,14 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
|
typedef struct ISVDbg {
|
||||||
|
/* 0x00 */ u32 magic; // "IS64"
|
||||||
|
/* 0x04 */ u32 get;
|
||||||
|
/* 0x08 */ u8 unk_08[0xC];
|
||||||
|
/* 0x14 */ u32 put;
|
||||||
|
/* 0x18 */ u8 unk_18[0x8];
|
||||||
|
/* 0x20 */ u8 data[0xFFE0];
|
||||||
|
} ISVDbg; // size = 0x10000
|
||||||
|
|
||||||
#define gISVDbgPrnAdrs ((ISVDbg*)0xB3FF0000)
|
#define gISVDbgPrnAdrs ((ISVDbg*)0xB3FF0000)
|
||||||
#define ASCII_TO_U32(a, b, c, d) ((u32)((a << 24) | (b << 16) | (c << 8) | (d << 0)))
|
#define ASCII_TO_U32(a, b, c, d) ((u32)((a << 24) | (b << 16) | (c << 8) | (d << 0)))
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,13 @@ void* Yaz0_NextDMA(u8* curSrcPos) {
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef struct Yaz0Header {
|
||||||
|
/* 0x00 */ char magic[4]; // Yaz0
|
||||||
|
/* 0x04 */ u32 decSize;
|
||||||
|
/* 0x08 */ u32 compInfoOffset; // only used in mio0
|
||||||
|
/* 0x0C */ u32 uncompDataOffset; // only used in mio0
|
||||||
|
} Yaz0Header; // size = 0x10
|
||||||
|
|
||||||
void Yaz0_DecompressImpl(u8* src, u8* dst) {
|
void Yaz0_DecompressImpl(u8* src, u8* dst) {
|
||||||
Yaz0Header* header = (Yaz0Header*)src;
|
Yaz0Header* header = (Yaz0Header*)src;
|
||||||
u32 bitIdx = 0;
|
u32 bitIdx = 0;
|
||||||
|
|
|
@ -6,6 +6,19 @@
|
||||||
|
|
||||||
s32 gCurrentRegion = 0;
|
s32 gCurrentRegion = 0;
|
||||||
|
|
||||||
|
typedef struct LocaleCartInfo {
|
||||||
|
/* 0x00 */ char name[0x18];
|
||||||
|
/* 0x18 */ u32 mediaFormat;
|
||||||
|
/* 0x1C */ union {
|
||||||
|
struct {
|
||||||
|
u16 cartId;
|
||||||
|
u8 countryCode;
|
||||||
|
u8 version;
|
||||||
|
};
|
||||||
|
u32 regionInfo;
|
||||||
|
};
|
||||||
|
} LocaleCartInfo; // size = 0x20
|
||||||
|
|
||||||
void Locale_Init(void) {
|
void Locale_Init(void) {
|
||||||
#if !PLATFORM_GC
|
#if !PLATFORM_GC
|
||||||
ALIGNED(4) u8 regionInfo[4];
|
ALIGNED(4) u8 regionInfo[4];
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||||
"ntsc-1.2:46 pal-1.0:44 pal-1.1:44"
|
"ntsc-1.2:76 pal-1.0:74 pal-1.1:74"
|
||||||
|
|
||||||
StackEntry sDmaMgrStackInfo;
|
StackEntry sDmaMgrStackInfo;
|
||||||
OSMesgQueue sDmaMgrMsgQueue;
|
OSMesgQueue sDmaMgrMsgQueue;
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
* DPad-Up may be pressed to enable sending fault pages over osSyncPrintf as well as displaying them on-screen.
|
* DPad-Up may be pressed to enable sending fault pages over osSyncPrintf as well as displaying them on-screen.
|
||||||
* DPad-Down disables sending fault pages over osSyncPrintf.
|
* DPad-Down disables sending fault pages over osSyncPrintf.
|
||||||
*/
|
*/
|
||||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-eu-mq-dbg:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128" \
|
#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-eu-mq-dbg:160 gc-jp:160 gc-jp-ce:160 gc-jp-mq:160 gc-us:160" \
|
||||||
"gc-us-mq:128 ique-cn:128"
|
"gc-us-mq:160 ique-cn:160"
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "libc64/sleep.h"
|
#include "libc64/sleep.h"
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
#pragma increment_block_number "ntsc-1.0:160 ntsc-1.1:160 ntsc-1.2:160 pal-1.0:160 pal-1.1:160"
|
#pragma increment_block_number "ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192"
|
||||||
|
|
||||||
typedef struct FaultMgr {
|
typedef struct FaultMgr {
|
||||||
OSThread thread;
|
OSThread thread;
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#include "speed_meter.h"
|
#include "speed_meter.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
#include "versions.h"
|
#include "versions.h"
|
||||||
|
#include "vi_mode.h"
|
||||||
#include "z64debug.h"
|
#include "z64debug.h"
|
||||||
#include "z64game.h"
|
#include "z64game.h"
|
||||||
#include "z64vis.h"
|
#include "z64vis.h"
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "file_select_state.h"
|
#include "file_select_state.h"
|
||||||
#include "line_numbers.h"
|
#include "line_numbers.h"
|
||||||
#include "map_select_state.h"
|
#include "map_select_state.h"
|
||||||
|
#include "prenmi_buff.h"
|
||||||
#include "prenmi_state.h"
|
#include "prenmi_state.h"
|
||||||
#include "regs.h"
|
#include "regs.h"
|
||||||
#include "setup_state.h"
|
#include "setup_state.h"
|
||||||
|
@ -26,8 +27,8 @@
|
||||||
#define GFXPOOL_HEAD_MAGIC 0x1234
|
#define GFXPOOL_HEAD_MAGIC 0x1234
|
||||||
#define GFXPOOL_TAIL_MAGIC 0x5678
|
#define GFXPOOL_TAIL_MAGIC 0x5678
|
||||||
|
|
||||||
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:192" \
|
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:224" \
|
||||||
"ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192"
|
"ntsc-1.1:224 ntsc-1.2:224 pal-1.0:224 pal-1.1:224"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The time at which the previous `Graph_Update` ended.
|
* The time at which the previous `Graph_Update` ended.
|
||||||
|
|
|
@ -14,6 +14,7 @@ extern struct IrqMgr gIrqMgr;
|
||||||
|
|
||||||
#include "debug_arena.h"
|
#include "debug_arena.h"
|
||||||
#include "fault.h"
|
#include "fault.h"
|
||||||
|
#include "prenmi_buff.h"
|
||||||
#include "segmented_address.h"
|
#include "segmented_address.h"
|
||||||
#include "stack.h"
|
#include "stack.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
@ -27,8 +28,8 @@ extern struct IrqMgr gIrqMgr;
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
#pragma increment_block_number "gc-eu:144 gc-eu-mq:144 gc-jp:144 gc-jp-ce:144 gc-jp-mq:144 gc-us:144 gc-us-mq:144" \
|
||||||
"ique-cn:128 ntsc-1.0:104 ntsc-1.1:104 ntsc-1.2:104 pal-1.0:102 pal-1.1:102"
|
"ique-cn:144 ntsc-1.0:129 ntsc-1.1:129 ntsc-1.2:129 pal-1.0:127 pal-1.1:127"
|
||||||
|
|
||||||
extern u8 _buffersSegmentEnd[];
|
extern u8 _buffersSegmentEnd[];
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#include "libu64/overlay.h"
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "libc64/math64.h"
|
#include "libc64/math64.h"
|
||||||
|
#include "libu64/overlay.h"
|
||||||
#include "fault.h"
|
#include "fault.h"
|
||||||
#include "gfx.h"
|
#include "gfx.h"
|
||||||
#include "gfx_setupdl.h"
|
#include "gfx_setupdl.h"
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#include "z64player.h"
|
#include "z64player.h"
|
||||||
#include "z64skin_matrix.h"
|
#include "z64skin_matrix.h"
|
||||||
|
|
||||||
#pragma increment_block_number "ntsc-1.0:180 ntsc-1.1:180 ntsc-1.2:180"
|
#pragma increment_block_number "ntsc-1.0:176 ntsc-1.1:176 ntsc-1.2:176"
|
||||||
|
|
||||||
u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList* nodeList);
|
u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList* nodeList);
|
||||||
void BgCheck_GetStaticLookupIndicesFromPos(CollisionContext* colCtx, Vec3f* pos, Vec3i* sector);
|
void BgCheck_GetStaticLookupIndicesFromPos(CollisionContext* colCtx, Vec3f* pos, Vec3i* sector);
|
||||||
|
|
|
@ -3642,7 +3642,7 @@ s32 Camera_KeepOn3(Camera* camera) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||||
"ique-cn:128 ntsc-1.0:79 ntsc-1.1:79 ntsc-1.2:79 pal-1.0:77 pal-1.1:77"
|
"ique-cn:128 ntsc-1.0:109 ntsc-1.1:109 ntsc-1.2:109 pal-1.0:107 pal-1.1:107"
|
||||||
|
|
||||||
s32 Camera_KeepOn4(Camera* camera) {
|
s32 Camera_KeepOn4(Camera* camera) {
|
||||||
static Vec3f D_8015BD50;
|
static Vec3f D_8015BD50;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:0" \
|
#pragma increment_block_number "gc-eu:0 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:128 gc-us:0 gc-us-mq:128 ique-cn:0" \
|
||||||
"ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0"
|
"ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "libu64/gfxprint.h"
|
#include "libu64/gfxprint.h"
|
||||||
|
@ -144,8 +144,8 @@ u16 gCamAtSplinePointsAppliedFrame;
|
||||||
u16 gCamEyePointAppliedFrame;
|
u16 gCamEyePointAppliedFrame;
|
||||||
u16 gCamAtPointAppliedFrame;
|
u16 gCamAtPointAppliedFrame;
|
||||||
|
|
||||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:0" \
|
||||||
"ique-cn:128 ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0"
|
"ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
|
||||||
|
|
||||||
// Cam ID to return to when a scripted cutscene is finished
|
// Cam ID to return to when a scripted cutscene is finished
|
||||||
s16 sReturnToCamId;
|
s16 sReturnToCamId;
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "libu64/overlay.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#include "libu64/overlay.h"
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-jp:160 gc-jp-ce:160 gc-jp-mq:160 gc-us:160 gc-us-mq:160" \
|
#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \
|
||||||
"ique-cn:160 ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192"
|
"ique-cn:192 ntsc-1.0:224 ntsc-1.1:224 ntsc-1.2:224 pal-1.0:224 pal-1.1:224"
|
||||||
|
|
||||||
#include "libu64/debug.h"
|
#include "libu64/debug.h"
|
||||||
#include "kaleido_manager.h"
|
#include "kaleido_manager.h"
|
||||||
|
|
|
@ -236,7 +236,7 @@ s16 sSunDepthTestX;
|
||||||
s16 sSunDepthTestY;
|
s16 sSunDepthTestY;
|
||||||
|
|
||||||
#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||||
"ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:192 pal-1.1:192"
|
"ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:160 pal-1.1:160"
|
||||||
|
|
||||||
LightNode* sNGameOverLightNode;
|
LightNode* sNGameOverLightNode;
|
||||||
LightInfo sNGameOverLightInfo;
|
LightInfo sNGameOverLightInfo;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "libu64/debug.h"
|
#include "libu64/debug.h"
|
||||||
|
#include "libu64/overlay.h"
|
||||||
#include "regs.h"
|
#include "regs.h"
|
||||||
#include "romfile.h"
|
#include "romfile.h"
|
||||||
#include "segment_symbols.h"
|
#include "segment_symbols.h"
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include "assets/textures/parameter_static/parameter_static.h"
|
#include "assets/textures/parameter_static/parameter_static.h"
|
||||||
|
|
||||||
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||||
"ntsc-1.0:160 ntsc-1.1:160 ntsc-1.2:160 pal-1.0:128 pal-1.1:128"
|
"ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:128 pal-1.1:128"
|
||||||
|
|
||||||
#if !PLATFORM_IQUE
|
#if !PLATFORM_IQUE
|
||||||
#define MSG_BUF_DECODED (msgCtx->msgBufDecoded)
|
#define MSG_BUF_DECODED (msgCtx->msgBufDecoded)
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||||
"ique-cn:192 ntsc-1.0:112 ntsc-1.1:112 ntsc-1.2:112 pal-1.0:112 pal-1.1:112"
|
"ique-cn:192 ntsc-1.0:144 ntsc-1.1:144 ntsc-1.2:144 pal-1.0:144 pal-1.1:144"
|
||||||
|
|
||||||
TransitionTile gTransitionTile;
|
TransitionTile gTransitionTile;
|
||||||
s32 gTransitionTileState;
|
s32 gTransitionTileState;
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "prenmi_buff.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
#define COLD_RESET 0
|
#define COLD_RESET 0
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#include "vi_mode.h"
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "ultra64/viint.h"
|
#include "ultra64/viint.h"
|
||||||
#include "versions.h"
|
#include "versions.h"
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#include "libu64/overlay.h"
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
size_t Overlay_Load(uintptr_t vromStart, uintptr_t vromEnd, void* vramStart, void* vramEnd, void* allocatedRamAddr) {
|
size_t Overlay_Load(uintptr_t vromStart, uintptr_t vromEnd, void* vramStart, void* vramEnd, void* allocatedRamAddr) {
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#include "libu64/overlay.h"
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
void* Overlay_AllocateAndLoad(uintptr_t vromStart, uintptr_t vromEnd, void* vramStart, void* vramEnd) {
|
void* Overlay_AllocateAndLoad(uintptr_t vromStart, uintptr_t vromEnd, void* vramStart, void* vramEnd) {
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
*
|
*
|
||||||
* @see Overlay_Relocate
|
* @see Overlay_Relocate
|
||||||
*/
|
*/
|
||||||
|
#include "libu64/overlay.h"
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
s32 gOverlayLogSeverity = 2;
|
s32 gOverlayLogSeverity = 2;
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
*
|
*
|
||||||
* @see Overlay_Relocate
|
* @see Overlay_Relocate
|
||||||
*/
|
*/
|
||||||
|
#include "libu64/overlay.h"
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
// Extract MIPS register rs from an instruction word
|
// Extract MIPS register rs from an instruction word
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include "line_numbers.h"
|
#include "line_numbers.h"
|
||||||
#include "z64thread.h"
|
#include "z64thread.h"
|
||||||
|
|
||||||
#pragma increment_block_number "ntsc-1.0:64 ntsc-1.1:64 ntsc-1.2:64 pal-1.0:64 pal-1.1:64"
|
#pragma increment_block_number "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
|
||||||
|
|
||||||
typedef struct struct_801D9C30 {
|
typedef struct struct_801D9C30 {
|
||||||
/* 0x000 */ s32 unk_000; // disk start
|
/* 0x000 */ s32 unk_000; // disk start
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#endif
|
#endif
|
||||||
#include "assets/textures/icon_item_gameover_static/icon_item_gameover_static.h"
|
#include "assets/textures/icon_item_gameover_static/icon_item_gameover_static.h"
|
||||||
|
|
||||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
|
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
|
||||||
|
|
||||||
#if !PLATFORM_GC
|
#if !PLATFORM_GC
|
||||||
#define KALEIDO_PROMPT_CURSOR_R 100
|
#define KALEIDO_PROMPT_CURSOR_R 100
|
||||||
|
|
Loading…
Add table
Reference in a new issue