diff --git a/include/flag_set.h b/include/flag_set.h new file mode 100644 index 0000000000..df9262ac7f --- /dev/null +++ b/include/flag_set.h @@ -0,0 +1,8 @@ +#ifndef FLAG_SET_H +#define FLAG_SET_H + +struct PlayState; + +void FlagSet_Update(struct PlayState* play); + +#endif diff --git a/include/functions.h b/include/functions.h deleted file mode 100644 index 1fe27acb2c..0000000000 --- a/include/functions.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef FUNCTIONS_H -#define FUNCTIONS_H - -#include "z64.h" -#include "macros.h" - -void Idle_ThreadEntry(void* arg); - -#if !PLATFORM_IQUE -void Yaz0_Decompress(uintptr_t romStart, u8* dst, size_t size); -#else -void gzip_decompress(uintptr_t romStart, u8* dst, size_t size); -#endif - -#if DEBUG_FEATURES -void isPrintfInit(void); -#endif -void rmonPrintf(const char* fmt, ...); - -#if DEBUG_FEATURES -void* is_proutSyncPrintf(void* arg, const char* str, size_t count); -NORETURN void func_80002384(const char* exp, const char* file, int line); -#endif - -OSPiHandle* osDriveRomInit(void); - -void Mio0_Decompress(u8* src, u8* dst); - -void FlagSet_Update(PlayState* play); - -void* MemCpy(void* dest, const void* src, s32 len); - -void TransitionTile_Destroy(TransitionTile* this); -TransitionTile* TransitionTile_Init(TransitionTile* this, s32 cols, s32 rows); -void TransitionTile_Draw(TransitionTile* this, Gfx** gfxP); -void TransitionTile_Update(TransitionTile* this); - -void TransitionTriforce_Start(void* thisx); -void* TransitionTriforce_Init(void* thisx); -void TransitionTriforce_Destroy(void* thisx); -void TransitionTriforce_Update(void* thisx, s32 updateRate); -void TransitionTriforce_SetColor(void* thisx, u32 color); -void TransitionTriforce_SetType(void* thisx, s32 type); -void TransitionTriforce_Draw(void* thisx, Gfx** gfxP); -s32 TransitionTriforce_IsDone(void* thisx); - -void TransitionWipe_Start(void* thisx); -void* TransitionWipe_Init(void* thisx); -void TransitionWipe_Destroy(void* thisx); -void TransitionWipe_Update(void* thisx, s32 updateRate); -void TransitionWipe_Draw(void* thisx, Gfx** gfxP); -s32 TransitionWipe_IsDone(void* thisx); -void TransitionWipe_SetType(void* thisx, s32 type); -void TransitionWipe_SetColor(void* thisx, u32 color); - -void TransitionCircle_Start(void* thisx); -void* TransitionCircle_Init(void* thisx); -void TransitionCircle_Destroy(void* thisx); -void TransitionCircle_Update(void* thisx, s32 updateRate); -void TransitionCircle_Draw(void* thisx, Gfx** gfxP); -s32 TransitionCircle_IsDone(void* thisx); -void TransitionCircle_SetType(void* thisx, s32 type); -void TransitionCircle_SetColor(void* thisx, u32 color); -void TransitionCircle_SetUnkColor(void* thisx, u32 color); - -void TransitionFade_Start(void* thisx); -void* TransitionFade_Init(void* thisx); -void TransitionFade_Destroy(void* thisx); -void TransitionFade_Update(void* thisx, s32 updateRate); -void TransitionFade_Draw(void* thisx, Gfx** gfxP); -s32 TransitionFade_IsDone(void* thisx); -void TransitionFade_SetColor(void* thisx, u32 color); -void TransitionFade_SetType(void* thisx, s32 type); - -void SysCfb_Init(s32 n64dd); -void* SysCfb_GetFbPtr(s32 idx); -void* SysCfb_GetFbEnd(void); - -void RcpUtils_PrintRegisterStatus(void); -void RcpUtils_Reset(void); - -void Runtime_Init(void* start, u32 size); - -#endif diff --git a/include/global.h b/include/global.h index d2a081a5fb..902ddad84c 100644 --- a/include/global.h +++ b/include/global.h @@ -1,7 +1,6 @@ #ifndef GLOBAL_H #define GLOBAL_H -#include "functions.h" #include "variables.h" #include "macros.h" #include "versions.h" diff --git a/include/idle.h b/include/idle.h new file mode 100644 index 0000000000..03dfa51801 --- /dev/null +++ b/include/idle.h @@ -0,0 +1,6 @@ +#ifndef IDLE_H +#define IDLE_H + +void Idle_ThreadEntry(void* arg); + +#endif diff --git a/include/inflate.h b/include/inflate.h new file mode 100644 index 0000000000..f26f7e496b --- /dev/null +++ b/include/inflate.h @@ -0,0 +1,10 @@ +#ifndef INFLATE_H +#define INFLATE_H + +#include "libc/stddef.h" +#include "libc/stdint.h" +#include "ultra64.h" + +void gzip_decompress(uintptr_t romStart, u8* dst, size_t size); + +#endif diff --git a/include/is_debug.h b/include/is_debug.h new file mode 100644 index 0000000000..e5f03bb784 --- /dev/null +++ b/include/is_debug.h @@ -0,0 +1,18 @@ +#ifndef IS_DEBUG_H +#define IS_DEBUG_H + +#include "libc/stddef.h" +#include "attributes.h" + +#if DEBUG_FEATURES +void isPrintfInit(void); +#endif + +void rmonPrintf(const char* fmt, ...); + +#if DEBUG_FEATURES +void* is_proutSyncPrintf(void* arg, const char* str, size_t count); +NORETURN void func_80002384(const char* exp, const char* file, int line); +#endif + +#endif diff --git a/include/libu64/rcp_utils.h b/include/libu64/rcp_utils.h new file mode 100644 index 0000000000..7582305142 --- /dev/null +++ b/include/libu64/rcp_utils.h @@ -0,0 +1,6 @@ +#ifndef LIBU64_RCP_UTILS_H +#define LIBU64_RCP_UTILS_H + +void RcpUtils_Reset(void); + +#endif diff --git a/include/libu64/runtime.h b/include/libu64/runtime.h new file mode 100644 index 0000000000..7df947cef5 --- /dev/null +++ b/include/libu64/runtime.h @@ -0,0 +1,8 @@ +#ifndef LIBU64_RUNTIME_H +#define LIBU64_RUNTIME_H + +#include "ultra64.h" + +void Runtime_Init(void* start, u32 size); + +#endif diff --git a/include/memory_utils.h b/include/memory_utils.h new file mode 100644 index 0000000000..7a8d9aca91 --- /dev/null +++ b/include/memory_utils.h @@ -0,0 +1,9 @@ +#ifndef MEMORY_UTILS_H +#define MEMORY_UTILS_H + +#include "ultra64.h" + +void* MemCpy(void* dest, const void* src, s32 len); +void* MemSet(void* dest, s32 val, s32 len); + +#endif diff --git a/include/mio0.h b/include/mio0.h new file mode 100644 index 0000000000..d350b45551 --- /dev/null +++ b/include/mio0.h @@ -0,0 +1,8 @@ +#ifndef MIO0_H +#define MIO0_H + +#include "ultra64.h" + +void Mio0_Decompress(u8* src, u8* dst); + +#endif diff --git a/include/sys_cfb.h b/include/sys_cfb.h new file mode 100644 index 0000000000..5b7039175d --- /dev/null +++ b/include/sys_cfb.h @@ -0,0 +1,10 @@ +#ifndef SYS_CFB_H +#define SYS_CFB_H + +#include "ultra64.h" + +void SysCfb_Init(s32 n64dd); +void* SysCfb_GetFbPtr(s32 idx); +void* SysCfb_GetFbEnd(void); + +#endif diff --git a/include/transition_circle.h b/include/transition_circle.h new file mode 100644 index 0000000000..23dec1d9d5 --- /dev/null +++ b/include/transition_circle.h @@ -0,0 +1,55 @@ +#ifndef TRANSITION_CIRCLE_H +#define TRANSITION_CIRCLE_H + +#include "ultra64.h" +#include "color.h" + +typedef enum TransitionCircleAppearance { + /* 0 */ TCA_NORMAL, + /* 1 */ TCA_WAVE, + /* 2 */ TCA_RIPPLE, + /* 3 */ TCA_STARBURST +} TransitionCircleAppearance; + +typedef enum TransitionCircleColor { + /* 0 */ TCC_BLACK, + /* 1 */ TCC_WHITE, + /* 2 */ TCC_GRAY, + /* 3 */ TCC_SPECIAL // color varies depending on appearance. unused and appears broken +} TransitionCircleColor; + +typedef enum TransitionCircleSpeed { + /* 0 */ TCS_FAST, + /* 1 */ TCS_SLOW +} TransitionCircleSpeed; + +typedef struct TransitionCircle { + /* 0x000 */ Color_RGBA8_u32 color; + /* 0x004 */ Color_RGBA8_u32 unkColor; + /* 0x008 */ s32 texX; + /* 0x00C */ s32 texY; + /* 0x010 */ s32 speed; + /* 0x014 */ u8 direction; + /* 0x015 */ u8 colorType; + /* 0x016 */ u8 speedType; + /* 0x017 */ u8 appearanceType; + /* 0x018 */ u8 isDone; + /* 0x019 */ u8 frame; + /* 0x01A */ u16 normal; + /* 0x020 */ Mtx projection; + /* 0x060 */ Mtx lookAt; + /* 0x0A0 */ void* texture; + /* 0x0A8 */ Mtx modelView[2][3]; +} TransitionCircle; // size = 0x228 + +void TransitionCircle_Start(void* thisx); +void* TransitionCircle_Init(void* thisx); +void TransitionCircle_Destroy(void* thisx); +void TransitionCircle_Update(void* thisx, s32 updateRate); +void TransitionCircle_Draw(void* thisx, Gfx** gfxP); +s32 TransitionCircle_IsDone(void* thisx); +void TransitionCircle_SetType(void* thisx, s32 type); +void TransitionCircle_SetColor(void* thisx, u32 color); +void TransitionCircle_SetUnkColor(void* thisx, u32 color); + +#endif diff --git a/include/transition_fade.h b/include/transition_fade.h new file mode 100644 index 0000000000..be4e575e0c --- /dev/null +++ b/include/transition_fade.h @@ -0,0 +1,24 @@ +#ifndef TRANSITION_FADE_H +#define TRANSITION_FADE_H + +#include "ultra64.h" +#include "color.h" + +typedef struct TransitionFade { + /* 0x000 */ u8 type; + /* 0x001 */ u8 isDone; + /* 0x002 */ u8 direction; + /* 0x004 */ Color_RGBA8_u32 color; + /* 0x008 */ u16 timer; +} TransitionFade; // size = 0xC + +void TransitionFade_Start(void* thisx); +void* TransitionFade_Init(void* thisx); +void TransitionFade_Destroy(void* thisx); +void TransitionFade_Update(void* thisx, s32 updateRate); +void TransitionFade_Draw(void* thisx, Gfx** gfxP); +s32 TransitionFade_IsDone(void* thisx); +void TransitionFade_SetColor(void* thisx, u32 color); +void TransitionFade_SetType(void* thisx, s32 type); + +#endif diff --git a/include/transition_tile.h b/include/transition_tile.h new file mode 100644 index 0000000000..14191f3fe7 --- /dev/null +++ b/include/transition_tile.h @@ -0,0 +1,30 @@ +#ifndef TRANSITION_TILE_H +#define TRANSITION_TILE_H + +#include "ultra64.h" + +typedef struct TransitionTileVtxData { + /* 0x0 */ f32 x; + /* 0x4 */ f32 y; +} TransitionTileVtxData; // size = 0x8 + +typedef struct TransitionTile { + /* 0x00 */ s32 cols; + /* 0x04 */ s32 rows; + /* 0x08 */ s32 frame; + /* 0x0C */ TransitionTileVtxData* vtxData; + /* 0x10 */ Vtx* vtxFrame1; + /* 0x14 */ Vtx* vtxFrame2; + /* 0x18 */ Mtx projection; + /* 0x58 */ Mtx modelView; + /* 0x98 */ Mtx unk_98; + /* 0xD8 */ Gfx* gfx; // "gfxtbl" + /* 0xDC */ u16* zBuffer; +} TransitionTile; // size = 0xE0 + +TransitionTile* TransitionTile_Init(TransitionTile* this, s32 cols, s32 rows); +void TransitionTile_Destroy(TransitionTile* this); +void TransitionTile_Update(TransitionTile* this); +void TransitionTile_Draw(TransitionTile* this, Gfx** gfxP); + +#endif diff --git a/include/transition_triforce.h b/include/transition_triforce.h new file mode 100644 index 0000000000..85eb1597ea --- /dev/null +++ b/include/transition_triforce.h @@ -0,0 +1,27 @@ +#ifndef TRANSITION_TRIFORCE_H +#define TRANSITION_TRIFORCE_H + +#include "ultra64.h" +#include "color.h" + +typedef struct TransitionTriforce { + /* 0x000 */ Color_RGBA8_u32 color; + /* 0x004 */ f32 transPos; + /* 0x008 */ f32 step; + /* 0x00C */ s32 state; + /* 0x010 */ s32 type; + /* 0x018 */ Mtx projection; + /* 0x058 */ s32 frame; + /* 0x060 */ Mtx modelView[2][3]; +} TransitionTriforce; // size = 0x1E0 + +void TransitionTriforce_Start(void* thisx); +void* TransitionTriforce_Init(void* thisx); +void TransitionTriforce_Destroy(void* thisx); +void TransitionTriforce_Update(void* thisx, s32 updateRate); +void TransitionTriforce_SetColor(void* thisx, u32 color); +void TransitionTriforce_SetType(void* thisx, s32 type); +void TransitionTriforce_Draw(void* thisx, Gfx** gfxP); +s32 TransitionTriforce_IsDone(void* thisx); + +#endif diff --git a/include/transition_wipe.h b/include/transition_wipe.h new file mode 100644 index 0000000000..654e9b6230 --- /dev/null +++ b/include/transition_wipe.h @@ -0,0 +1,30 @@ +#ifndef TRANSITION_WIPE_H +#define TRANSITION_WIPE_H + +#include "ultra64.h" +#include "color.h" + +typedef struct TransitionWipe { + /* 0x000 */ Color_RGBA8_u32 color; + /* 0x004 */ Color_RGBA8_u32 unkColor; + /* 0x008 */ u8 direction; + /* 0x009 */ u8 frame; + /* 0x00A */ u8 isDone; + /* 0x00C */ u16 texX; + /* 0x00E */ u16 texY; + /* 0x010 */ u16 normal; + /* 0x018 */ Mtx projection; + /* 0x058 */ Mtx lookAt; + /* 0x098 */ Mtx modelView[2][3]; +} TransitionWipe; // size = 0x218 + +void TransitionWipe_Start(void* thisx); +void* TransitionWipe_Init(void* thisx); +void TransitionWipe_Destroy(void* thisx); +void TransitionWipe_Update(void* thisx, s32 updateRate); +void TransitionWipe_Draw(void* thisx, Gfx** gfxP); +s32 TransitionWipe_IsDone(void* thisx); +void TransitionWipe_SetType(void* thisx, s32 type); +void TransitionWipe_SetColor(void* thisx, u32 color); + +#endif diff --git a/include/ultra64.h b/include/ultra64.h index 9972a4dfe8..cccab388b6 100644 --- a/include/ultra64.h +++ b/include/ultra64.h @@ -105,6 +105,7 @@ OSMesgQueue* osPiGetCmdQueue(void); s32 osEPiReadIo(OSPiHandle* handle, u32 devAddr, u32* data); void osViSetSpecialFeatures(u32 func); OSPiHandle* osCartRomInit(void); +OSPiHandle* osDriveRomInit(void); void __osSetFpcCsr(u32); u32 __osGetFpcCsr(void); s32 osEPiWriteIo(OSPiHandle* handle, u32 devAddr, u32 data); diff --git a/include/yaz0.h b/include/yaz0.h new file mode 100644 index 0000000000..52f5ba951e --- /dev/null +++ b/include/yaz0.h @@ -0,0 +1,10 @@ +#ifndef YAZ0_H +#define YAZ0_H + +#include "libc/stddef.h" +#include "libc/stdint.h" +#include "ultra64.h" + +void Yaz0_Decompress(uintptr_t romStart, u8* dst, size_t size); + +#endif diff --git a/include/z64play.h b/include/z64play.h index 4ca9e0b024..4853ac8f47 100644 --- a/include/z64play.h +++ b/include/z64play.h @@ -4,6 +4,7 @@ #include "ultra64.h" #include "prerender.h" +#include "transition_tile.h" #include "z64actor.h" #include "z64bgcheck.h" #include "z64camera.h" diff --git a/include/z64transition.h b/include/z64transition.h index 569b8fb328..d46683d2b3 100644 --- a/include/z64transition.h +++ b/include/z64transition.h @@ -3,6 +3,10 @@ #include "ultra64/ultratypes.h" #include "ultra64/gbi.h" // for Gfx +#include "transition_circle.h" +#include "transition_fade.h" +#include "transition_triforce.h" +#include "transition_wipe.h" #include "z64transition_instances.h" #define TRANS_TRIGGER_OFF 0 // transition is not active diff --git a/include/z64transition_instances.h b/include/z64transition_instances.h index 154b98d008..cc35add03c 100644 --- a/include/z64transition_instances.h +++ b/include/z64transition_instances.h @@ -1,104 +1,10 @@ #ifndef Z64TRANSITION_INSTANCES_H #define Z64TRANSITION_INSTANCES_H -#include "ultra64.h" -#include "color.h" - -typedef struct TransitionTileVtxData { - /* 0x0 */ f32 x; - /* 0x4 */ f32 y; -} TransitionTileVtxData; // size = 0x8 - -typedef struct TransitionTile { - /* 0x00 */ s32 cols; - /* 0x04 */ s32 rows; - /* 0x08 */ s32 frame; - /* 0x0C */ TransitionTileVtxData* vtxData; - /* 0x10 */ Vtx* vtxFrame1; - /* 0x14 */ Vtx* vtxFrame2; - /* 0x18 */ Mtx projection; - /* 0x58 */ Mtx modelView; - /* 0x98 */ Mtx unk_98; - /* 0xD8 */ Gfx* gfx; // "gfxtbl" - /* 0xDC */ u16* zBuffer; -} TransitionTile; // size = 0xE0 - typedef enum TransitionInstanceType { /* 1 */ TRANS_INSTANCE_TYPE_FILL_OUT = 1, - /* 2 */ TRANS_INSTANCE_TYPE_FILL_IN + /* 2 */ TRANS_INSTANCE_TYPE_FILL_IN, + /* 3 */ TRANS_INSTANCE_TYPE_FADE_FLASH } TransitionInstanceType; -typedef struct TransitionWipe { - /* 0x000 */ Color_RGBA8_u32 color; - /* 0x004 */ Color_RGBA8_u32 unkColor; - /* 0x008 */ u8 direction; - /* 0x009 */ u8 frame; - /* 0x00A */ u8 isDone; - /* 0x00C */ u16 texX; - /* 0x00E */ u16 texY; - /* 0x010 */ u16 normal; - /* 0x018 */ Mtx projection; - /* 0x058 */ Mtx lookAt; - /* 0x098 */ Mtx modelView[2][3]; -} TransitionWipe; // size = 0x218 - -#define TRANS_INSTANCE_TYPE_FADE_FLASH 3 - -typedef struct TransitionFade { - /* 0x000 */ u8 type; - /* 0x001 */ u8 isDone; - /* 0x002 */ u8 direction; - /* 0x004 */ Color_RGBA8_u32 color; - /* 0x008 */ u16 timer; -} TransitionFade; // size = 0xC - -typedef enum TransitionCircleAppearance { - /* 0 */ TCA_NORMAL, - /* 1 */ TCA_WAVE, - /* 2 */ TCA_RIPPLE, - /* 3 */ TCA_STARBURST -} TransitionCircleAppearance; - -typedef enum TransitionCircleColor { - /* 0 */ TCC_BLACK, - /* 1 */ TCC_WHITE, - /* 2 */ TCC_GRAY, - /* 3 */ TCC_SPECIAL // color varies depending on appearance. unused and appears broken -} TransitionCircleColor; - -typedef enum TransitionCircleSpeed { - /* 0 */ TCS_FAST, - /* 1 */ TCS_SLOW -} TransitionCircleSpeed; - -typedef struct TransitionCircle { - /* 0x000 */ Color_RGBA8_u32 color; - /* 0x004 */ Color_RGBA8_u32 unkColor; - /* 0x008 */ s32 texX; - /* 0x00C */ s32 texY; - /* 0x010 */ s32 speed; - /* 0x014 */ u8 direction; - /* 0x015 */ u8 colorType; - /* 0x016 */ u8 speedType; - /* 0x017 */ u8 appearanceType; - /* 0x018 */ u8 isDone; - /* 0x019 */ u8 frame; - /* 0x01A */ u16 normal; - /* 0x020 */ Mtx projection; - /* 0x060 */ Mtx lookAt; - /* 0x0A0 */ void* texture; - /* 0x0A8 */ Mtx modelView[2][3]; -} TransitionCircle; // size = 0x228 - -typedef struct TransitionTriforce { - /* 0x000 */ Color_RGBA8_u32 color; - /* 0x004 */ f32 transPos; - /* 0x008 */ f32 step; - /* 0x00C */ s32 state; - /* 0x010 */ s32 type; - /* 0x018 */ Mtx projection; - /* 0x058 */ s32 frame; - /* 0x060 */ Mtx modelView[2][3]; -} TransitionTriforce; // size = 0x1E0 - #endif diff --git a/src/boot/boot_main.c b/src/boot/boot_main.c index 75c1b9cf89..689d4f0317 100644 --- a/src/boot/boot_main.c +++ b/src/boot/boot_main.c @@ -1,4 +1,6 @@ #include "boot.h" +#include "idle.h" +#include "is_debug.h" #include "stack.h" #include "stackcheck.h" #if PLATFORM_N64 diff --git a/src/boot/idle.c b/src/boot/idle.c index e24ab4ede3..c564891378 100644 --- a/src/boot/idle.c +++ b/src/boot/idle.c @@ -1,4 +1,5 @@ #include "buffers.h" +#include "idle.h" #include "main.h" #include "segment_symbols.h" #include "stack.h" diff --git a/src/boot/inflate.c b/src/boot/inflate.c index c0467dd38c..391ce0368f 100644 --- a/src/boot/inflate.c +++ b/src/boot/inflate.c @@ -95,6 +95,8 @@ the two sets of lengths. */ +#include "inflate.h" + #include "ultra64/ultratypes.h" #include "libc/stddef.h" #include "libc/stdint.h" diff --git a/src/boot/is_debug.c b/src/boot/is_debug.c index 912b759843..d520b262bb 100644 --- a/src/boot/is_debug.c +++ b/src/boot/is_debug.c @@ -1,5 +1,6 @@ +#include "is_debug.h" + #include "global.h" -#include "attributes.h" typedef struct ISVDbg { /* 0x00 */ u32 magic; // "IS64" diff --git a/src/boot/z_std_dma.c b/src/boot/z_std_dma.c index e8581b6a53..9f5901b733 100644 --- a/src/boot/z_std_dma.c +++ b/src/boot/z_std_dma.c @@ -23,6 +23,9 @@ #include "libu64/debug.h" #include "attributes.h" #include "fault.h" +#if PLATFORM_IQUE +#include "inflate.h" +#endif #include "line_numbers.h" #if PLATFORM_N64 #include "n64dd.h" @@ -31,12 +34,15 @@ #include "stack.h" #include "stackcheck.h" #include "terminal.h" +#if !PLATFORM_IQUE +#include "yaz0.h" +#endif #include "z64thread.h" #include "global.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.2:20" \ - "pal-1.0:18 pal-1.1:18" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.2:14" \ + "pal-1.0:12 pal-1.1:12" StackEntry sDmaMgrStackInfo; OSMesgQueue sDmaMgrMsgQueue; diff --git a/src/code/fault_gc_drawer.c b/src/code/fault_gc_drawer.c index 9d3478a48f..4482ba9aed 100644 --- a/src/code/fault_gc_drawer.c +++ b/src/code/fault_gc_drawer.c @@ -7,7 +7,7 @@ #include "global.h" #include "fault.h" #include "terminal.h" -#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#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" typedef struct FaultDrawer { /* 0x00 */ u16* fb; @@ -101,7 +101,7 @@ FaultDrawer sFaultDrawerDefault = { NULL, }; -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" FaultDrawer sFaultDrawer; char D_8016B6C0[0x20]; diff --git a/src/code/flg_set.c b/src/code/flg_set.c index 5f4316d7f0..88f32a3e4e 100644 --- a/src/code/flg_set.c +++ b/src/code/flg_set.c @@ -1,3 +1,5 @@ +#include "flag_set.h" + #include "libu64/gfxprint.h" #include "libu64/pad.h" #include "gfx.h" diff --git a/src/code/graph.c b/src/code/graph.c index a20c64e1fe..8fe664dec2 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -15,6 +15,7 @@ #include "regs.h" #include "setup_state.h" #include "speed_meter.h" +#include "sys_cfb.h" #include "sys_debug_controller.h" #include "sys_ucode.h" #include "terminal.h" diff --git a/src/code/main.c b/src/code/main.c index 79c40658cc..ab330cb33f 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -1,3 +1,4 @@ +#include "sys_cfb.h" #include "ultra64.h" #include "versions.h" @@ -13,6 +14,8 @@ extern struct PadMgr gPadMgr; extern struct IrqMgr gIrqMgr; #include "libc64/malloc.h" +#include "libu64/rcp_utils.h" +#include "libu64/runtime.h" #include "audiomgr.h" #include "debug_arena.h" #include "fault.h" @@ -35,7 +38,7 @@ extern struct IrqMgr gIrqMgr; #include "global.h" #pragma increment_block_number "gc-eu:32 gc-eu-mq:32 gc-jp:32 gc-jp-ce:32 gc-jp-mq:32 gc-us:32 gc-us-mq:32 ique-cn:32" \ - "ntsc-1.0:6 ntsc-1.1:6 ntsc-1.2:6 pal-1.0:4 pal-1.1:4" + "ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:254 pal-1.1:254" extern u8 _buffersSegmentEnd[]; diff --git a/src/code/sched.c b/src/code/sched.c index 561a283709..2b519c6bd2 100644 --- a/src/code/sched.c +++ b/src/code/sched.c @@ -40,6 +40,7 @@ * @see irqmgr.c */ #include "libu64/debug.h" +#include "libu64/rcp_utils.h" #include "fault.h" #include "irqmgr.h" #include "main.h" diff --git a/src/code/sys_cfb.c b/src/code/sys_cfb.c index 4e4bc06f25..4fa17abfdb 100644 --- a/src/code/sys_cfb.c +++ b/src/code/sys_cfb.c @@ -1,4 +1,5 @@ -#include "ultra64.h" +#include "sys_cfb.h" + #include "libu64/debug.h" #include "attributes.h" #include "line_numbers.h" diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c index 71733baef5..f4f3a1fd3c 100644 --- a/src/code/z_bgcheck.c +++ b/src/code/z_bgcheck.c @@ -11,7 +11,7 @@ #include "z64player.h" #include "z64skin_matrix.h" -#pragma increment_block_number "ntsc-1.0:208 ntsc-1.1:208 ntsc-1.2:208" +#pragma increment_block_number "ntsc-1.0:200 ntsc-1.1:200 ntsc-1.2:200" u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList* nodeList); void BgCheck_GetStaticLookupIndicesFromPos(CollisionContext* colCtx, Vec3f* pos, Vec3i* sector); diff --git a/src/code/z_camera.c b/src/code/z_camera.c index 8582519cd3..64299a8869 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -3658,7 +3658,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" \ - "ique-cn:128 ntsc-1.0:102 ntsc-1.1:102 ntsc-1.2:102 pal-1.0:100 pal-1.1:100" + "ique-cn:128 ntsc-1.0:98 ntsc-1.1:98 ntsc-1.2:98 pal-1.0:96 pal-1.1:96" s32 Camera_KeepOn4(Camera* camera) { static Vec3f D_8015BD50; diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index e05bb44d17..392df7c1f0 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -15,7 +15,7 @@ #include "overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.h" #include "z_lib.h" -#pragma increment_block_number "ique-cn:0 ntsc-1.0:248 ntsc-1.1:248 ntsc-1.2:248 pal-1.0:248 pal-1.1:248" +#pragma increment_block_number "ique-cn:0 ntsc-1.0:240 ntsc-1.1:240 ntsc-1.2:240 pal-1.0:240 pal-1.1:240" typedef s32 (*ColChkResetFunc)(PlayState*, Collider*); typedef void (*ColChkApplyFunc)(PlayState*, CollisionCheckContext*, Collider*); diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 921613bd80..d34e0808db 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -6,6 +6,7 @@ #include "gfx.h" #include "gfxalloc.h" #include "letterbox.h" +#include "memory_utils.h" #if PLATFORM_N64 #include "n64dd.h" #endif diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index aa757f8643..f0c627b250 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -22,7 +22,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-eu-mq-dbg:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128" \ - "gc-us-mq:128 ntsc-1.0:128 ntsc-1.2:128" + "gc-us-mq:128 ique-cn:128 ntsc-1.0:128 ntsc-1.2:128" #define FLAGS 0 diff --git a/src/code/z_fbdemo.c b/src/code/z_fbdemo.c index 246e27b1a3..46cfa0573b 100644 --- a/src/code/z_fbdemo.c +++ b/src/code/z_fbdemo.c @@ -9,6 +9,8 @@ * @note The only coded effect has a visual effect to blend the tiles to a single point, which looks like the screen * gets sucked into. */ +#include "transition_tile.h" + #include "libc64/malloc.h" #include "libc64/sleep.h" #include "libu64/debug.h" diff --git a/src/code/z_fbdemo_circle.c b/src/code/z_fbdemo_circle.c index c25f174a75..eb1b22febc 100644 --- a/src/code/z_fbdemo_circle.c +++ b/src/code/z_fbdemo_circle.c @@ -1,3 +1,5 @@ +#include "transition_circle.h" + #include "gfx.h" #include "global.h" diff --git a/src/code/z_fbdemo_fade.c b/src/code/z_fbdemo_fade.c index 3375628cb0..cbd9f6813b 100644 --- a/src/code/z_fbdemo_fade.c +++ b/src/code/z_fbdemo_fade.c @@ -1,4 +1,5 @@ -#include "ultra64.h" +#include "transition_fade.h" + #include "main.h" #include "regs.h" #include "terminal.h" diff --git a/src/code/z_fbdemo_triforce.c b/src/code/z_fbdemo_triforce.c index 7bb8862b2d..93826fa366 100644 --- a/src/code/z_fbdemo_triforce.c +++ b/src/code/z_fbdemo_triforce.c @@ -1,3 +1,5 @@ +#include "transition_triforce.h" + #include "global.h" #include "assets/code/fbdemo_triforce/z_fbdemo_triforce.c" diff --git a/src/code/z_fbdemo_wipe1.c b/src/code/z_fbdemo_wipe1.c index a3418e91a3..d876b0b730 100644 --- a/src/code/z_fbdemo_wipe1.c +++ b/src/code/z_fbdemo_wipe1.c @@ -1,3 +1,5 @@ +#include "transition_wipe.h" + #include "gfx.h" #include "z64save.h" #include "z64transition_instances.h" diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 0bdc048eed..d86af19c0e 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -236,7 +236,7 @@ s16 sSunDepthTestX; s16 sSunDepthTestY; #pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:160 gc-jp-ce:160 gc-jp-mq:160 gc-us:160 gc-us-mq:160" \ - "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:160 ntsc-1.0:160 ntsc-1.1:160 ntsc-1.2:160 pal-1.0:192 pal-1.1:192" LightNode* sNGameOverLightNode; LightInfo sNGameOverLightInfo; diff --git a/src/code/z_message.c b/src/code/z_message.c index 88c219d37d..789d4aa6a5 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -4,6 +4,7 @@ #include "gfx.h" #include "gfx_setupdl.h" #include "gfxalloc.h" +#include "memory_utils.h" #include "message_data_static.h" #if PLATFORM_N64 #include "n64dd.h" diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 2c9b219501..4dd6662d56 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -1,5 +1,6 @@ #include "attributes.h" #include "controller.h" +#include "flag_set.h" #include "gfx.h" #include "gfx_setupdl.h" #include "main.h" diff --git a/src/code/z_play.c b/src/code/z_play.c index cc041ecafd..7e4f5f5e33 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -24,6 +24,11 @@ #include "sys_matrix.h" #include "terminal.h" #include "title_setup_state.h" +#include "transition_circle.h" +#include "transition_fade.h" +#include "transition_tile.h" +#include "transition_triforce.h" +#include "transition_wipe.h" #include "versions.h" #include "z_actor_dlftbls.h" #include "zelda_arena.h" diff --git a/src/code/z_sram.c b/src/code/z_sram.c index bf713d373d..534017d83a 100644 --- a/src/code/z_sram.c +++ b/src/code/z_sram.c @@ -1,5 +1,6 @@ #include "file_select_state.h" #include "controller.h" +#include "memory_utils.h" #include "terminal.h" #include "versions.h" #include "z64game.h" diff --git a/src/libu64/rcp_utils.c b/src/libu64/rcp_utils.c index 420ac51f98..c4f0cad53a 100644 --- a/src/libu64/rcp_utils.c +++ b/src/libu64/rcp_utils.c @@ -1,3 +1,5 @@ +#include "libu64/rcp_utils.h" + #include "global.h" #if PLATFORM_N64 || DEBUG_FEATURES @@ -55,9 +57,12 @@ void RcpUtils_PrintRegisterStatus(void) { void RcpUtils_Reset(void) { RcpUtils_PrintRegisterStatus(); + // Flush the RDP pipeline and freeze clock counter osDpSetStatus(DPC_SET_FREEZE | DPC_SET_FLUSH); + // Halt the RSP, disable interrupt on break and set "task done" signal __osSpSetStatus(SP_SET_HALT | SP_SET_TASKDONE | SP_CLR_INTR_BREAK); + RcpUtils_PrintRegisterStatus(); } diff --git a/src/libu64/runtime.c b/src/libu64/runtime.c index 9dbb522f55..aa0c507b7d 100644 --- a/src/libu64/runtime.c +++ b/src/libu64/runtime.c @@ -1,3 +1,5 @@ +#include "libu64/runtime.h" + #include "libc64/malloc.h" #include "libc64/os_malloc.h" diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c index 4517fc7e72..9da143369d 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c @@ -9,6 +9,7 @@ #include "macros.h" #include "main.h" #include "map_select_state.h" +#include "memory_utils.h" #if PLATFORM_N64 #include "n64dd.h" #endif