From 4b30f1a6549c99eff5344a815b12f54e69d689e9 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 15 Sep 2023 11:02:27 -0300 Subject: [PATCH] Move libultra variables to their respective headers (#1369) * internal_rsp; move size_t and NULL to ultratypes.h * guint.h * Move system variables to os_system.h * controller, pi and vi * osint.h * piint.h * siint, ucode, viint, voiceinternal * Remove remaining variables from variables.h * format * final renames * bss * review * review --- include/PR/controller.h | 7 +- include/PR/guint.h | 23 ++++ include/PR/os_internal.h | 3 +- include/PR/os_internal_rsp.h | 2 - include/PR/os_pi.h | 5 +- include/PR/os_system.h | 27 ++++ include/PR/os_vi.h | 11 +- include/PR/osint.h | 15 +++ include/PR/piint.h | 10 +- include/PR/siint.h | 1 + include/PR/ucode.h | 5 - include/PR/ultratypes.h | 6 + include/PR/viint.h | 2 + include/PR/voice_internal.h | 8 ++ include/fault.h | 4 +- include/libc/math.h | 15 --- include/libc/stddef.h | 6 - include/macros.h | 2 - include/ultra64.h | 1 + include/variables.h | 124 ------------------ include/z64actor.h | 1 + include/z64animation.h | 1 + src/boot/fault.c | 1 + src/boot/idle.c | 1 + src/code/padmgr.c | 2 + src/code/z_actor.c | 3 +- src/code/z_camera.c | 1 + src/code/z_collision_check.c | 1 - src/code/z_nmi_buff.c | 2 +- src/code/z_parameter.c | 1 + src/code/z_room.c | 1 + src/libultra/io/cartrominit.c | 30 ++--- src/libultra/io/contramread.c | 1 + src/libultra/io/contramwrite.c | 1 + src/libultra/io/controller.c | 12 +- src/libultra/io/piacs.c | 6 +- src/libultra/io/pimgr.c | 14 +- src/libultra/io/pirawdma.c | 2 +- src/libultra/io/siint.h | 4 - src/libultra/io/vi.c | 12 +- src/libultra/io/vimgr.c | 12 +- src/libultra/os/initialize.c | 50 +++---- src/libultra/os/seteventmesg.c | 7 +- src/libultra/os/thread.c | 5 +- src/libultra/os/timerintr.c | 4 +- src/libultra/voice/voicecontread2.c | 1 + src/libultra/voice/voicecontread36.c | 1 + src/libultra/voice/voicecontwrite20.c | 1 + src/libultra/voice/voicecontwrite4.c | 1 + src/libultra/voice/voicesetadconverter.c | 1 + src/overlays/actors/ovl_Boss_03/z_boss_03.c | 1 - .../actors/ovl_En_Fishing/z_en_fishing.c | 1 + .../fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.c | 1 + .../ovl_kaleido_scope/z_kaleido_scope_NES.c | 1 + tools/disasm/variables.txt | 37 +++--- undefined_syms.txt | 2 +- 56 files changed, 226 insertions(+), 274 deletions(-) create mode 100644 include/PR/guint.h create mode 100644 include/PR/voice_internal.h delete mode 100644 src/libultra/io/siint.h diff --git a/include/PR/controller.h b/include/PR/controller.h index 40dc48b8d3..8f5f35fe6c 100644 --- a/include/PR/controller.h +++ b/include/PR/controller.h @@ -4,6 +4,7 @@ #include "ultratypes.h" #include "os_cont.h" #include "os_pfs.h" +#include "rcp.h" #define CHNL_ERR(format) (((format).rxsize & CHNL_ERR_MASK) >> 4) @@ -199,10 +200,10 @@ s32 __osPfsGetStatus(OSMesgQueue* queue, s32 channel); s32 __osContChannelReset(OSMesgQueue* mq, s32 channel); extern OSPifRam __osContPifRam; -// extern UNK_TYPE1 D_8009CF0C; extern u8 __osContLastPoll; extern u8 __osMaxControllers; -// extern OSMesgQueue D_8009CF38; -// extern OSMesg D_8009CF50; +extern OSMesgQueue __osEepromTimerQ; +extern OSMesg __osEepromTimerMsg[]; +extern OSPifRam __osPfsPifRam; #endif diff --git a/include/PR/guint.h b/include/PR/guint.h new file mode 100644 index 0000000000..e939094464 --- /dev/null +++ b/include/PR/guint.h @@ -0,0 +1,23 @@ +#ifndef PR_GUINT_H +#define PR_GUINT_H + +#include "ultratypes.h" + +typedef union { + f64 d; + struct { + u32 hi; + u32 lo; + } word; +} du; + +typedef union { + u32 i; + f32 f; +} fu; + +#define ROUND(x) (s32)(((x) >= 0.0) ? ((x) + 0.5) : ((x) - 0.5)) + +extern f32 __libm_qnan_f; + +#endif diff --git a/include/PR/os_internal.h b/include/PR/os_internal.h index 944edfabfe..58e6608013 100644 --- a/include/PR/os_internal.h +++ b/include/PR/os_internal.h @@ -6,8 +6,7 @@ #include "os_pi.h" #include "os_internal_rsp.h" - -typedef struct { +typedef struct __osHwInt { /* 0x00 */ OSMesgQueue* queue; /* 0x04 */ OSMesg msg; } __osHwInt; // size = 0x08 diff --git a/include/PR/os_internal_rsp.h b/include/PR/os_internal_rsp.h index d7b73096cb..ce72a146b8 100644 --- a/include/PR/os_internal_rsp.h +++ b/include/PR/os_internal_rsp.h @@ -2,12 +2,10 @@ #define PR_OS_INTERNAL_RSP_H #include "ultratypes.h" -#include "libc/stddef.h" u32 __osSpGetStatus(void); void __osSpSetStatus(u32 data); s32 __osSpSetPc(void* pc); s32 __osSpRawStartDma(s32 direction, void* devAddr, void* dramAddr, size_t size); - #endif diff --git a/include/PR/os_pi.h b/include/PR/os_pi.h index 134b43a934..7959ac7b3b 100644 --- a/include/PR/os_pi.h +++ b/include/PR/os_pi.h @@ -60,8 +60,8 @@ typedef struct { /* 0x14 */ OSPiHandle* piHandle; } OSIoMesg; // size = 0x88 -typedef struct { - /* 0x00 */ s32 active; // u32 maybe? need to check +typedef struct OSDevMgr { + /* 0x00 */ s32 active; /* 0x04 */ OSThread* thread; /* 0x08 */ OSMesgQueue* cmdQueue; /* 0x0C */ OSMesgQueue* evtQueue; @@ -99,6 +99,7 @@ typedef struct { #define PI_DOMAIN1 0 #define PI_DOMAIN2 1 +extern OSPiHandle* __osPiTable; void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt); diff --git a/include/PR/os_system.h b/include/PR/os_system.h index 21f06f1642..b55ca11a12 100644 --- a/include/PR/os_system.h +++ b/include/PR/os_system.h @@ -3,6 +3,33 @@ #include "ultratypes.h" +/* + * Values for osTvType + */ +#define OS_TV_PAL 0 +#define OS_TV_NTSC 1 +#define OS_TV_MPAL 2 + +/* + * Size of buffer the retains contents after NMI + */ +#define OS_APP_NMI_BUFSIZE 64 + + +extern s32 osTvType; +extern s32 osRomType; +extern void* osRomBase; +extern s32 osResetType; +extern s32 osCicId; +extern s32 osVersion; +extern u32 osMemSize; +extern s32 osAppNMIBuffer[]; + +extern u64 osClockRate; + +extern s32 osViClock; + +extern u32 __OSGlobalIntMask; u32 osGetMemSize(void); s32 osAfterPreNMI(void); diff --git a/include/PR/os_vi.h b/include/PR/os_vi.h index e4098e97e4..d2872962bb 100644 --- a/include/PR/os_vi.h +++ b/include/PR/os_vi.h @@ -113,12 +113,16 @@ typedef struct { #define OS_VI_FPAL_HPN2 54 #define OS_VI_FPAL_HPF2 55 -#define OS_TV_PAL 0 -#define OS_TV_NTSC 1 -#define OS_TV_MPAL 2 #define OS_VI_UNK28 28 +extern OSViMode osViModeNtscHpf1; +extern OSViMode osViModePalLan1; +extern OSViMode osViModeNtscHpn1; +extern OSViMode osViModeNtscLan1; +extern OSViMode osViModeMpalLan1; +extern OSViMode osViModeFpalLan1; + void* osViGetCurrentFramebuffer(void); void* osViGetNextFramebuffer(void); void osViSetXScale(f32 value); @@ -131,5 +135,4 @@ void osViSwapBuffer(void* frameBufPtr); void osViBlack(u8 active); void osCreateViManager(OSPri pri); - #endif diff --git a/include/PR/osint.h b/include/PR/osint.h index c2e1a2b90d..f472a35f59 100644 --- a/include/PR/osint.h +++ b/include/PR/osint.h @@ -34,5 +34,20 @@ void __osTimerServicesInit(void); extern __osHwInt __osHwIntTable[]; extern __OSEventState __osEventStateTab[OS_NUM_EVENTS]; +extern __OSThreadTail __osThreadTail; +extern OSThread* __osRunQueue; +extern OSThread* __osActiveQueue; +extern OSThread* __osRunningThread; +extern OSThread* __osFaultedThread; + +extern u32 __osShutdown; + +extern OSTimer* __osTimerList; + +extern OSTimer __osBaseTimer; +extern OSTime __osCurrentTime; +extern u32 __osBaseCounter; +extern u32 __osViIntrCount; +extern u32 __osTimerCounter; #endif diff --git a/include/PR/piint.h b/include/PR/piint.h index 0ca1f0d2e5..91d9667068 100644 --- a/include/PR/piint.h +++ b/include/PR/piint.h @@ -6,6 +6,15 @@ #include "libc/stdint.h" +extern OSDevMgr __osPiDevMgr; +extern OSPiHandle* __osCurrentHandle[]; +extern u32 __osPiAccessQueueEnabled; + +extern OSPiHandle __Dom1SpeedParam; +extern OSPiHandle __Dom2SpeedParam; + +extern OSMesgQueue __osPiAccessQueue; + void __osDevMgrMain(void* arg); void __osPiCreateAccessQueue(void); void __osPiRelAccess(void); @@ -16,5 +25,4 @@ s32 __osEPiRawReadIo(OSPiHandle* handle, uintptr_t devAddr, u32* data); s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, uintptr_t cartAddr, void* dramAddr, size_t size); OSMesgQueue* osPiGetCmdQueue(void); - #endif diff --git a/include/PR/siint.h b/include/PR/siint.h index a6d16323e4..ec9b451a85 100644 --- a/include/PR/siint.h +++ b/include/PR/siint.h @@ -3,6 +3,7 @@ #include "ultratypes.h" +extern u8 __osPfsInodeCacheBank; void __osSiGetAccess(void); void __osSiRelAccess(void); diff --git a/include/PR/ucode.h b/include/PR/ucode.h index 2314222ba6..848983ebee 100644 --- a/include/PR/ucode.h +++ b/include/PR/ucode.h @@ -23,9 +23,4 @@ extern u64 gspF3DZEX2_NoN_PosLight_fifoTextEnd[]; extern u64 gspF3DZEX2_NoN_PosLight_fifoDataStart[]; extern u64 gspF3DZEX2_NoN_PosLight_fifoDataEnd[]; -extern u64 gspS2DEX2_fifoTextStart[]; -extern u64 gspS2DEX2_fifoTextEnd[]; -extern u64 gspS2DEX2_fifoDataStart[]; -extern u64 gspS2DEX2_fifoDataEnd[]; - #endif diff --git a/include/PR/ultratypes.h b/include/PR/ultratypes.h index 530f307555..76afdf6a0f 100644 --- a/include/PR/ultratypes.h +++ b/include/PR/ultratypes.h @@ -22,6 +22,12 @@ typedef volatile s64 vs64; typedef float f32; typedef double f64; +typedef u32 size_t; + +#ifndef NULL +#define NULL (void*)0 +#endif + // TODO: move this somewhere else typedef void* TexturePtr; diff --git a/include/PR/viint.h b/include/PR/viint.h index 29d4fffc69..bc9ce23359 100644 --- a/include/PR/viint.h +++ b/include/PR/viint.h @@ -63,6 +63,8 @@ typedef struct { /* 0x24 */ __OSViScale y; } __OSViContext; // size = 0x30 +extern OSDevMgr __osViDevMgr; + void __osViSwapContext(void); extern __OSViContext* __osViCurr; extern __OSViContext* __osViNext; diff --git a/include/PR/voice_internal.h b/include/PR/voice_internal.h new file mode 100644 index 0000000000..b7d6b7e850 --- /dev/null +++ b/include/PR/voice_internal.h @@ -0,0 +1,8 @@ +#ifndef PR_VOICE_INTERNAL_H +#define PR_VOICE_INTERNAL_H + +#include "ultratypes.h" + +extern s32 __osPfsLastChannel; + +#endif diff --git a/include/fault.h b/include/fault.h index 8affde4ae8..efdb2c513c 100644 --- a/include/fault.h +++ b/include/fault.h @@ -103,7 +103,7 @@ typedef struct FaultMgr { /* 0x844 */ void* fb; } FaultMgr; // size = 0x848 -extern FaultMgr gFaultMgr; - +// TODO: Commented out to try to avoid bss reorder in fault.c +// extern FaultMgr gFaultMgr; #endif diff --git a/include/libc/math.h b/include/libc/math.h index 618ab52b54..fd32cf1995 100644 --- a/include/libc/math.h +++ b/include/libc/math.h @@ -10,21 +10,6 @@ #define SHT_MAX 32767.0f #define SHT_MINV (1.0f / SHT_MAX) -typedef union { - f64 d; - struct { - u32 hi; - u32 lo; - } word; -} du; - -typedef union { - u32 i; - f32 f; -} fu; - -extern f32 __libm_qnan_f; - float fabsf(float f); #pragma intrinsic(fabsf) #ifdef __GNUC__ diff --git a/include/libc/stddef.h b/include/libc/stddef.h index e867d8e2a7..d753396146 100644 --- a/include/libc/stddef.h +++ b/include/libc/stddef.h @@ -3,14 +3,8 @@ #include "PR/ultratypes.h" -typedef u32 size_t; - typedef s32 ptrdiff_t; -#ifndef NULL -#define NULL (void*)0 -#endif - #ifdef __GNUC__ #define offsetof(structure, member) __builtin_offsetof (structure, member) #else diff --git a/include/macros.h b/include/macros.h index ff764f6444..46932a0a64 100644 --- a/include/macros.h +++ b/include/macros.h @@ -95,8 +95,6 @@ #define CLAMP_MAX(x, max) ((x) > (max) ? (max) : (x)) #define CLAMP_MIN(x, min) ((x) < (min) ? (min) : (x)) -#define ROUND(x) (s32)(((x) >= 0.0) ? ((x) + 0.5) : ((x) - 0.5)) - #define SWAP(type, a, b) \ { \ type _temp = (a); \ diff --git a/include/ultra64.h b/include/ultra64.h index 58431bde81..9f810a733f 100644 --- a/include/ultra64.h +++ b/include/ultra64.h @@ -5,6 +5,7 @@ #include "PR/gbi.h" #include "PR/gu.h" +#include "PR/guint.h" #include "PR/controller_voice.h" #include "PR/hardware.h" #include "PR/os.h" diff --git a/include/variables.h b/include/variables.h index 0f499fde43..fdc9e91b0d 100644 --- a/include/variables.h +++ b/include/variables.h @@ -6,14 +6,6 @@ #include "macros.h" // pre-boot variables -extern u32 osTvType; -extern u32 osRomType; -extern uintptr_t osRomBase; -extern u32 osResetType; -extern u32 osCicId; -extern u32 osVersion; -extern size_t osMemSize; -extern s32 osAppNmiBuffer[0x10]; extern u16 gFramebuffer1[SCREEN_HEIGHT][SCREEN_WIDTH]; // at 0x80000500 extern u8 D_80025D00[]; @@ -31,103 +23,7 @@ extern s32 sIrqMgrRetraceCount; // extern UNK_TYPE1 sGfxPrintFontData; // extern UNK_TYPE4 D_80097524; // extern u32 sRandInt; -extern OSViMode osViModeNtscHpf1; -extern OSViMode osViModePalLan1; -extern s16 sintable[0x400]; -// extern UNK_TYPE1 D_80097DE4; -// extern UNK_TYPE4 D_80097E08; -extern OSThread* __osThreadTail; -extern OSThread* __osRunQueue; -extern OSThread* __osActiveQueue; -extern OSThread* __osRunningThread; -extern OSThread* __osFaultedThread; -extern u32 __osSiAccessQueueEnabled; -extern UNK_TYPE4 D_80097E40; -extern u64 osClockRate; -extern s32 osViClock; -extern UNK_TYPE4 __osShutdown; -extern UNK_TYPE4 __OSGlobalIntMask; -extern OSDevMgr __osPiDevMgr; -extern OSPiHandle* __osPiTable; -extern OSPiHandle* __osCurrentHandle[]; -extern UNK_TYPE4 __osPiAccessQueueEnabled; -extern OSViMode osViModeNtscHpn1; -extern s32 __osPfsInodeCacheChannel; -extern u8 __osPfsInodeCacheBank; -extern UNK_TYPE4 D_80097F10; -extern char spaces[]; -extern char zeroes[]; -extern OSTimer* __osTimerList; -extern s32 __osPfsLastChannel; -extern OSViMode osViModeNtscLan1; -extern OSViMode osViModeMpalLan1; -// extern __OSViContext D_80098060[2]; -// extern UNK_TYPE4 sCartRomNeedsInit; -extern OSViMode osViModeFpalLan1; -// extern u8 ldigs[]; -// extern u8 udigs[]; -// extern OSDevMgr __osViDevMgr; - -extern char bootThreadName[]; -extern char idleThreadName[]; -extern char irqmgrThreadName[]; -extern char mainThreadName[]; -extern f32 D_800981B0; -extern char D_800981C0[]; -extern const char dmamgrString800981C4[]; -extern const char dmamgrString800981D4[]; -extern const char dmamgrString800981E4[]; -extern const char dmamgrString800981F4[]; -extern const char dmamgrThreadName[]; -extern char D_80098210[]; -extern char yaz0String80098220[]; -extern char yaz0String8009823C[]; -extern char D_80098280[]; -extern char D_80098290[]; -extern char D_800982A4[]; - -extern char D_800990B0[]; -extern f32 D_800990C0[9]; -extern f32 D_800990E4; -extern f32 D_800990E8; -extern f32 D_800990EC; -extern f32 D_800990F0; -extern f32 D_800990F4; -extern f32 D_800990F8; -extern f32 D_800990FC; -extern f32 D_80099100; -extern f32 D_80099104; -extern f32 D_80099108; -extern f32 D_8009910C; -extern u16 D_800991A0[64]; -extern du P[5]; -extern du rpi; -extern du pihi; -extern du pilo; -extern fu zero; -// extern UNK_TYPE1 D_80099270; -extern UNK_PTR __osIntTable; -extern f64 D_800992C0; -extern f64 D_800992F0; -extern f64 D_800992F8; -extern char D_80099300[]; -extern char D_80099304[]; -extern unsigned int D_8009930C[6]; -extern f32 D_80099400; -extern f64 D_80099428; -extern f64 D_80099430; -extern f64 D_80099438; -// extern UNK_TYPE4 D_80099440; -extern f32 __libm_qnan_f; -extern f64 D_80099460[9]; -extern char D_800994A8[]; -extern char D_800994AC[]; -extern char D_800994B0[]; -// extern UNK_TYPE1 D_800994B1; -extern f64 D_800994B8; -extern f64 D_800994C0; -extern f64 D_800994C8; extern char gBuildTeam[]; extern char gBuildDate[]; extern char gBuildMakeOption[]; @@ -145,29 +41,9 @@ extern void* gYaz0DecompressDstEnd; // extern UNK_TYPE4 D_8009CD10; extern u32 sRandFloat; // extern UNK_TYPE4 sArenaLockMsg; -extern OSTask tmp_task; - -extern OSMesg siAccessBuf[1]; -extern OSMesgQueue __osSiAccessQueue; - -extern OSThread __osThreadSave; -extern OSPiHandle D_8009D130; -extern OSPiHandle D_8009D1A8; - -extern OSMesg D_8009E3F0[1]; -extern OSMesgQueue __osPiAccessQueue; -extern __OSInode __osPfsInodeCache; -extern OSTimer D_8009E590; -extern OSTime __osCurrentTime; -extern u32 __osBaseCounter; -extern u32 __osViIntrCount; -extern u32 __osTimerCounter; -extern OSPifRam __osPfsPifRam; -extern OSPiHandle CartRomHandle; extern DmaEntry dmadata[1568]; // extern UNK_TYPE1 D_80186028; -extern u64 aspMainTextStart[]; extern u8 sDropTable[DROP_TABLE_SIZE * DROP_TABLE_NUMBER]; extern u8 sDropTableAmounts[DROP_TABLE_SIZE * DROP_TABLE_NUMBER]; diff --git a/include/z64actor.h b/include/z64actor.h index 5f0ea59ade..1b6c37072d 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -2,6 +2,7 @@ #define Z64ACTOR_H #include "PR/ultratypes.h" +#include "color.h" #include "padutils.h" #include "z64math.h" #include "z64animation.h" diff --git a/include/z64animation.h b/include/z64animation.h index 25cbea1f25..3ee160c00e 100644 --- a/include/z64animation.h +++ b/include/z64animation.h @@ -6,6 +6,7 @@ #include "z64dma.h" #include "z64math.h" +struct GameState; struct PlayState; struct Actor; struct SkelAnime; diff --git a/src/boot/fault.c b/src/boot/fault.c index f62dfb8b7c..26b579850c 100644 --- a/src/boot/fault.c +++ b/src/boot/fault.c @@ -42,6 +42,7 @@ #include "fault_internal.h" #include "fault.h" +#include "prevent_bss_reordering2.h" #include "global.h" #include "vt.h" #include "PR/osint.h" diff --git a/src/boot/idle.c b/src/boot/idle.c index ccdf986954..0bd07813fb 100644 --- a/src/boot/idle.c +++ b/src/boot/idle.c @@ -1,3 +1,4 @@ +#include "prevent_bss_reordering.h" #include "irqmgr.h" #include "main.h" #include "stack.h" diff --git a/src/code/padmgr.c b/src/code/padmgr.c index ae40fc1a40..1b75721cb9 100644 --- a/src/code/padmgr.c +++ b/src/code/padmgr.c @@ -36,6 +36,8 @@ #include "PR/os_motor.h" #include "fault.h" +extern FaultMgr gFaultMgr; + #define PADMGR_RETRACE_MSG (1 << 0) #define PADMGR_PRE_NMI_MSG (1 << 1) #define PADMGR_NMI_MSG (1 << 2) diff --git a/src/code/z_actor.c b/src/code/z_actor.c index f88f511b59..cef3c89da1 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -3,8 +3,7 @@ * Description: */ -#include "prevent_bss_reordering.h" -#include "global.h" +#include "z64actor.h" #include "fault.h" #include "sys_cfb.h" #include "loadfragment.h" diff --git a/src/code/z_camera.c b/src/code/z_camera.c index c2e00e2063..a9477231c8 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -43,6 +43,7 @@ * */ +#include "prevent_bss_reordering.h" #include "global.h" #include "libc/string.h" #include "z64quake.h" diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index af1f4ad6c9..39b57cbd03 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -1,4 +1,3 @@ -#include "prevent_bss_reordering.h" #include "global.h" #include "z64collision_check.h" diff --git a/src/code/z_nmi_buff.c b/src/code/z_nmi_buff.c index eacfc5f469..8403459322 100644 --- a/src/code/z_nmi_buff.c +++ b/src/code/z_nmi_buff.c @@ -13,7 +13,7 @@ typedef struct { NmiBuff* gNMIBuffer; void Nmi_Init(void) { - gNMIBuffer = (NmiBuff*)osAppNmiBuffer; + gNMIBuffer = (NmiBuff*)osAppNMIBuffer; gNMIBuffer->resetting = false; if (osResetType == COLD_RESET) { diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 3ba6a9e993..a3dc07aafe 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -1,4 +1,5 @@ #include "global.h" +#include "PR/gs2dex.h" #include "sys_cfb.h" #include "z64snap.h" #include "z64view.h" diff --git a/src/code/z_room.c b/src/code/z_room.c index 28a2974993..b8de6caeca 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -1,4 +1,5 @@ #include "global.h" +#include "PR/gs2dex.h" #include "debug.h" void Room_Noop(PlayState* play, Room* room, Input* input, s32 arg3) { diff --git a/src/libultra/io/cartrominit.c b/src/libultra/io/cartrominit.c index 518be66243..39de77260c 100644 --- a/src/libultra/io/cartrominit.c +++ b/src/libultra/io/cartrominit.c @@ -1,6 +1,6 @@ #include "global.h" -OSPiHandle CartRomHandle; +OSPiHandle __CartRomHandle; OSPiHandle* osCartRomInit(void) { register u32 initialConfig; @@ -17,15 +17,15 @@ OSPiHandle* osCartRomInit(void) { if (!sCartRomNeedsInit) { __osPiRelAccess(); - return &CartRomHandle; + return &__CartRomHandle; } sCartRomNeedsInit = false; - CartRomHandle.type = DEVICE_TYPE_CART; - CartRomHandle.baseAddress = 0xB0000000; - CartRomHandle.domain = 0; - CartRomHandle.speed = 0; - bzero(&CartRomHandle.transferInfo, sizeof(__OSTranxInfo)); + __CartRomHandle.type = DEVICE_TYPE_CART; + __CartRomHandle.baseAddress = 0xB0000000; + __CartRomHandle.domain = 0; + __CartRomHandle.speed = 0; + bzero(&__CartRomHandle.transferInfo, sizeof(__OSTranxInfo)); /* Uses `status & PI_STATUS_ERROR` in OoT */ while (status = HW_REG(PI_STATUS_REG, u32), status & (PI_STATUS_DMA_BUSY | PI_STATUS_IO_BUSY)) { @@ -42,11 +42,11 @@ OSPiHandle* osCartRomInit(void) { HW_REG(PI_BSD_DOM1_RLS_REG, u32) = 3; HW_REG(PI_BSD_DOM1_PWD_REG, u32) = 0xFF; - initialConfig = HW_REG(CartRomHandle.baseAddress, u32); - CartRomHandle.latency = initialConfig & 0xFF; - CartRomHandle.pageSize = (initialConfig >> 0x10) & 0xF; - CartRomHandle.relDuration = (initialConfig >> 0x14) & 0xF; - CartRomHandle.pulse = (initialConfig >> 8) & 0xFF; + initialConfig = HW_REG(__CartRomHandle.baseAddress, u32); + __CartRomHandle.latency = initialConfig & 0xFF; + __CartRomHandle.pageSize = (initialConfig >> 0x10) & 0xF; + __CartRomHandle.relDuration = (initialConfig >> 0x14) & 0xF; + __CartRomHandle.pulse = (initialConfig >> 8) & 0xFF; HW_REG(PI_BSD_DOM1_LAT_REG, u32) = lastLatency; HW_REG(PI_BSD_DOM1_PGS_REG, u32) = lastPageSize; @@ -54,10 +54,10 @@ OSPiHandle* osCartRomInit(void) { HW_REG(PI_BSD_DOM1_PWD_REG, u32) = lastPulse; prevInt = __osDisableInt(); - CartRomHandle.next = __osPiTable; - __osPiTable = &CartRomHandle; + __CartRomHandle.next = __osPiTable; + __osPiTable = &__CartRomHandle; __osRestoreInt(prevInt); __osPiRelAccess(); - return &CartRomHandle; + return &__CartRomHandle; } diff --git a/src/libultra/io/contramread.c b/src/libultra/io/contramread.c index d993b47d76..06def61bae 100644 --- a/src/libultra/io/contramread.c +++ b/src/libultra/io/contramread.c @@ -1,4 +1,5 @@ #include "global.h" +#include "PR/voice_internal.h" #define BLOCKSIZE 32 diff --git a/src/libultra/io/contramwrite.c b/src/libultra/io/contramwrite.c index b2157a2a59..507fbb1e8c 100644 --- a/src/libultra/io/contramwrite.c +++ b/src/libultra/io/contramwrite.c @@ -1,4 +1,5 @@ #include "ultra64.h" +#include "PR/voice_internal.h" #include "global.h" s32 __osContRamWrite(OSMesgQueue* mq, s32 channel, u16 address, u8* buffer, s32 force) { diff --git a/src/libultra/io/controller.c b/src/libultra/io/controller.c index 19be9281aa..30cb4c1d97 100644 --- a/src/libultra/io/controller.c +++ b/src/libultra/io/controller.c @@ -1,14 +1,14 @@ #include "global.h" -UNK_TYPE4 D_80097E40 = 0; +s32 __osContinitialized = false; OSPifRam __osContPifRam; u8 __osContLastPoll; u8 __osMaxControllers; OSTimer __osEepromTimer; -OSMesgQueue D_8009CF38; -OSMesg D_8009CF50[1]; +OSMesgQueue __osEepromTimerQ; +OSMesg __osEepromTimerMsg[1]; s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data) { OSMesg dummy; @@ -17,11 +17,11 @@ s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data) { OSTimer mytimer; OSMesgQueue timerMesgQueue; - if (D_80097E40 != 0) { + if (__osContinitialized) { return 0; } - D_80097E40 = 1; + __osContinitialized = true; t = osGetTime(); if (t < 0x165A0BC) { @@ -43,7 +43,7 @@ s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data) { __osContGetInitData(bitpattern, data); __osContLastPoll = 0; __osSiCreateAccessQueue(); - osCreateMesgQueue(&D_8009CF38, D_8009CF50, ARRAY_COUNT(D_8009CF50)); + osCreateMesgQueue(&__osEepromTimerQ, __osEepromTimerMsg, ARRAY_COUNT(__osEepromTimerMsg)); return ret; } diff --git a/src/libultra/io/piacs.c b/src/libultra/io/piacs.c index 532b149e23..f1107b7580 100644 --- a/src/libultra/io/piacs.c +++ b/src/libultra/io/piacs.c @@ -1,13 +1,13 @@ #include "global.h" -UNK_TYPE4 __osPiAccessQueueEnabled = 0; +u32 __osPiAccessQueueEnabled = 0; -OSMesg D_8009E3F0[1]; +OSMesg piAccessBuf[1]; OSMesgQueue __osPiAccessQueue; void __osPiCreateAccessQueue(void) { __osPiAccessQueueEnabled = 1; - osCreateMesgQueue(&__osPiAccessQueue, D_8009E3F0, ARRAY_COUNT(D_8009E3F0)); + osCreateMesgQueue(&__osPiAccessQueue, piAccessBuf, ARRAY_COUNT(piAccessBuf)); osSendMesg(&__osPiAccessQueue, NULL, OS_MESG_NOBLOCK); } diff --git a/src/libultra/io/pimgr.c b/src/libultra/io/pimgr.c index 63cc7ba668..b6e1fea13a 100644 --- a/src/libultra/io/pimgr.c +++ b/src/libultra/io/pimgr.c @@ -1,12 +1,12 @@ #include "global.h" #include "stack.h" -OSPiHandle D_8009D130; -OSPiHandle D_8009D1A8; +OSPiHandle __Dom1SpeedParam; +OSPiHandle __Dom2SpeedParam; OSThread sPiMgrThread; STACK(sPiMgrStack, 0x1000); -OSMesgQueue D_8009E3D0; -OSMesg D_8009E3E8[1]; +OSMesgQueue piEventQueue; +OSMesg piEventBuf[1]; void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) { u32 savedMask; @@ -15,11 +15,11 @@ void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgC if (!__osPiDevMgr.active) { osCreateMesgQueue(cmdQ, cmdBuf, cmdMsgCnt); - osCreateMesgQueue(&D_8009E3D0, D_8009E3E8, ARRAY_COUNT(D_8009E3E8)); + osCreateMesgQueue(&piEventQueue, piEventBuf, ARRAY_COUNT(piEventBuf)); if (!__osPiAccessQueueEnabled) { __osPiCreateAccessQueue(); } - osSetEventMesg(OS_EVENT_PI, &D_8009E3D0, (OSMesg)0x22222222); + osSetEventMesg(OS_EVENT_PI, &piEventQueue, (OSMesg)0x22222222); oldPri = -1; myPri = osGetThreadPri(NULL); if (myPri < pri) { @@ -30,7 +30,7 @@ void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgC __osPiDevMgr.active = 1; __osPiDevMgr.thread = &sPiMgrThread; __osPiDevMgr.cmdQueue = cmdQ; - __osPiDevMgr.evtQueue = &D_8009E3D0; + __osPiDevMgr.evtQueue = &piEventQueue; __osPiDevMgr.acsQueue = &__osPiAccessQueue; __osPiDevMgr.piDmaCallback = __osPiRawStartDma; __osPiDevMgr.epiDmaCallback = __osEPiRawStartDma; diff --git a/src/libultra/io/pirawdma.c b/src/libultra/io/pirawdma.c index 90847c4be3..b33afddfc4 100644 --- a/src/libultra/io/pirawdma.c +++ b/src/libultra/io/pirawdma.c @@ -9,7 +9,7 @@ s32 __osPiRawStartDma(s32 direction, uintptr_t devAddr, void* dramAddr, size_t s HW_REG(PI_DRAM_ADDR_REG, u32) = osVirtualToPhysical(dramAddr); - HW_REG(PI_CART_ADDR_REG, u32) = ((osRomBase | devAddr) & 0x1FFFFFFF); + HW_REG(PI_CART_ADDR_REG, u32) = (((uintptr_t)osRomBase | devAddr) & 0x1FFFFFFF); switch (direction) { case OS_READ: diff --git a/src/libultra/io/siint.h b/src/libultra/io/siint.h deleted file mode 100644 index 5fe7258447..0000000000 --- a/src/libultra/io/siint.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef _SIINT_H_ -#define _SIINT_H_ - -#endif diff --git a/src/libultra/io/vi.c b/src/libultra/io/vi.c index ec0b1de700..a1e3e77c49 100644 --- a/src/libultra/io/vi.c +++ b/src/libultra/io/vi.c @@ -1,13 +1,13 @@ #include "global.h" -__OSViContext D_80098060[2] = { 0 }; -__OSViContext* __osViCurr = &D_80098060[0]; -__OSViContext* __osViNext = &D_80098060[1]; +static __OSViContext vi[2] = { 0 }; +__OSViContext* __osViCurr = &vi[0]; +__OSViContext* __osViNext = &vi[1]; void __osViInit(void) { - bzero(D_80098060, sizeof(D_80098060)); - __osViCurr = &D_80098060[0]; - __osViNext = &D_80098060[1]; + bzero(vi, sizeof(vi)); + __osViCurr = &vi[0]; + __osViNext = &vi[1]; __osViNext->retraceCount = 1; __osViCurr->retraceCount = 1; __osViNext->buffer = (void*)0x80000000; diff --git a/src/libultra/io/vimgr.c b/src/libultra/io/vimgr.c index f38974b8aa..7bdb3ac51f 100644 --- a/src/libultra/io/vimgr.c +++ b/src/libultra/io/vimgr.c @@ -9,7 +9,7 @@ OSMesgQueue viEventQueue; OSMesg viEventBuf[6]; OSIoMesg viRetraceMsg; OSIoMesg viCounterMsg; -OSMgrArgs __osViDevMgr = { 0 }; +OSDevMgr __osViDevMgr = { 0 }; u32 __additional_scanline = 0; void viMgrMain(void*); @@ -19,7 +19,7 @@ void osCreateViManager(OSPri pri) { OSPri newPri; OSPri currentPri; - if (!__osViDevMgr.initialized) { + if (!__osViDevMgr.active) { __osTimerServicesInit(); __additional_scanline = 0; osCreateMesgQueue(&viEventQueue, viEventBuf, ARRAY_COUNT(viEventBuf) - 1); @@ -39,11 +39,11 @@ void osCreateViManager(OSPri pri) { } prevInt = __osDisableInt(); - __osViDevMgr.initialized = true; - __osViDevMgr.mgrThread = &viThread; + __osViDevMgr.active = true; + __osViDevMgr.thread = &viThread; __osViDevMgr.cmdQueue = &viEventQueue; - __osViDevMgr.eventQueue = &viEventQueue; - __osViDevMgr.accessQueue = NULL; + __osViDevMgr.evtQueue = &viEventQueue; + __osViDevMgr.acsQueue = NULL; __osViDevMgr.piDmaCallback = NULL; __osViDevMgr.epiDmaCallback = NULL; diff --git a/src/libultra/os/initialize.c b/src/libultra/os/initialize.c index 8eb97c28c9..458aa55b94 100644 --- a/src/libultra/os/initialize.c +++ b/src/libultra/os/initialize.c @@ -3,39 +3,39 @@ #define COLD_RESET 0 typedef struct { - /* 0x0 */ u32 ins_00; // lui k0, 0x8000 - /* 0x4 */ u32 ins_04; // addiu k0, k0, 0x39E0 - /* 0x8 */ u32 ins_08; // jr k0 ; __osException - /* 0xC */ u32 ins_0C; // nop -} struct_exceptionPreamble; // size = 0x10 + /* 0x0 */ u32 ins_00; // lui k0, 0x8000 + /* 0x4 */ u32 ins_04; // addiu k0, k0, 0x39E0 + /* 0x8 */ u32 ins_08; // jr k0 ; __osException + /* 0xC */ u32 ins_0C; // nop +} __osExceptionVector; // size = 0x10 -extern struct_exceptionPreamble __osExceptionPreamble; +extern __osExceptionVector __osExceptionPreamble; u64 osClockRate = OS_CLOCK_RATE; s32 osViClock = VI_NTSC_CLOCK; -UNK_TYPE4 __osShutdown = 0; -UNK_TYPE4 __OSGlobalIntMask = 0x003FFF01; +u32 __osShutdown = 0; +u32 __OSGlobalIntMask = 0x003FFF01; -UNK_TYPE4 D_8009CF70; +u32 __osFinalrom; void __createSpeedParam(void) { - D_8009D130.type = DEVICE_TYPE_INIT; - D_8009D130.latency = HW_REG(PI_BSD_DOM1_LAT_REG, u32); - D_8009D130.pulse = HW_REG(PI_BSD_DOM1_PWD_REG, u32); - D_8009D130.pageSize = HW_REG(PI_BSD_DOM1_PGS_REG, u32); - D_8009D130.relDuration = HW_REG(PI_BSD_DOM1_RLS_REG, u32); + __Dom1SpeedParam.type = DEVICE_TYPE_INIT; + __Dom1SpeedParam.latency = HW_REG(PI_BSD_DOM1_LAT_REG, u32); + __Dom1SpeedParam.pulse = HW_REG(PI_BSD_DOM1_PWD_REG, u32); + __Dom1SpeedParam.pageSize = HW_REG(PI_BSD_DOM1_PGS_REG, u32); + __Dom1SpeedParam.relDuration = HW_REG(PI_BSD_DOM1_RLS_REG, u32); - D_8009D1A8.type = DEVICE_TYPE_INIT; - D_8009D1A8.latency = HW_REG(PI_BSD_DOM2_LAT_REG, u32); - D_8009D1A8.pulse = HW_REG(PI_BSD_DOM2_PWD_REG, u32); - D_8009D1A8.pageSize = HW_REG(PI_BSD_DOM2_PGS_REG, u32); - D_8009D1A8.relDuration = HW_REG(PI_BSD_DOM2_RLS_REG, u32); + __Dom2SpeedParam.type = DEVICE_TYPE_INIT; + __Dom2SpeedParam.latency = HW_REG(PI_BSD_DOM2_LAT_REG, u32); + __Dom2SpeedParam.pulse = HW_REG(PI_BSD_DOM2_PWD_REG, u32); + __Dom2SpeedParam.pageSize = HW_REG(PI_BSD_DOM2_PGS_REG, u32); + __Dom2SpeedParam.relDuration = HW_REG(PI_BSD_DOM2_RLS_REG, u32); } void __osInitialize_common(void) { u32 pifdata; - D_8009CF70 = 1; + __osFinalrom = 1; __osSetSR(__osGetSR() | 0x20000000); __osSetFpcCsr(0x01000800); @@ -45,10 +45,10 @@ void __osInitialize_common(void) { while (__osSiRawWriteIo(0x1FC007FC, pifdata | 8)) {} - *(struct_exceptionPreamble*)0x80000000 = __osExceptionPreamble; - *(struct_exceptionPreamble*)0x80000080 = __osExceptionPreamble; - *(struct_exceptionPreamble*)0x80000100 = __osExceptionPreamble; - *(struct_exceptionPreamble*)0x80000180 = __osExceptionPreamble; + *(__osExceptionVector*)0x80000000 = __osExceptionPreamble; + *(__osExceptionVector*)0x80000080 = __osExceptionPreamble; + *(__osExceptionVector*)0x80000100 = __osExceptionPreamble; + *(__osExceptionVector*)0x80000180 = __osExceptionPreamble; osWritebackDCache(0x80000000, 400); osInvalICache(0x80000000, 400); @@ -59,7 +59,7 @@ void __osInitialize_common(void) { osClockRate = (u64)((osClockRate * 3LL) / 4ULL); if (osResetType == COLD_RESET) { - bzero(osAppNmiBuffer, 64); + bzero(osAppNMIBuffer, 64); } if (osTvType == OS_TV_PAL) { diff --git a/src/libultra/os/seteventmesg.c b/src/libultra/os/seteventmesg.c index d5c8407f4e..74258517f7 100644 --- a/src/libultra/os/seteventmesg.c +++ b/src/libultra/os/seteventmesg.c @@ -1,7 +1,8 @@ #include "global.h" #include "PR/osint.h" +#include "libc/stdbool.h" -UNK_TYPE4 D_80097F10 = 0; +u32 __osPreNMI = false; __OSEventState __osEventStateTab[OS_NUM_EVENTS]; @@ -17,10 +18,10 @@ void osSetEventMesg(OSEvent e, OSMesgQueue* mq, OSMesg m) { es->message = m; if (e == 14) { - if ((__osShutdown != 0) && (D_80097F10 == 0)) { + if (__osShutdown && !__osPreNMI) { osSendMesg(mq, m, OS_MESG_NOBLOCK); } - D_80097F10 = 1; + __osPreNMI = true; } __osRestoreInt(saveMask); diff --git a/src/libultra/os/thread.c b/src/libultra/os/thread.c index ec655d64a6..98d04ab54e 100644 --- a/src/libultra/os/thread.c +++ b/src/libultra/os/thread.c @@ -1,7 +1,6 @@ #include "global.h" -OSThread* __osThreadTail = NULL; -UNK_TYPE D_80097E14 = -1; +__OSThreadTail __osThreadTail = { NULL, OS_PRIORITY_THREADTAIL }; OSThread* __osRunQueue = (OSThread*)&__osThreadTail; OSThread* __osActiveQueue = (OSThread*)&__osThreadTail; OSThread* __osRunningThread = NULL; @@ -11,7 +10,7 @@ void __osDequeueThread(OSThread** queue, OSThread* t) { register OSThread* pred; register OSThread* succ; - pred = (OSThread*)queue; //! This seems questionable, but the function matches... + pred = (OSThread*)queue; succ = pred->next; while (succ != NULL) { if (succ == t) { diff --git a/src/libultra/os/timerintr.c b/src/libultra/os/timerintr.c index 6b112e9529..69ac931e1a 100644 --- a/src/libultra/os/timerintr.c +++ b/src/libultra/os/timerintr.c @@ -1,6 +1,6 @@ #include "global.h" -OSTimer D_8009E590; +OSTimer __osBaseTimer; OSTime __osCurrentTime; u32 __osBaseCounter; u32 __osViIntrCount; @@ -8,7 +8,7 @@ u32 __osTimerCounter; s32 D_8009E5C8[2]; // dummy bss padding required OSPifRam __osPfsPifRam; -OSTimer* __osTimerList = &D_8009E590; +OSTimer* __osTimerList = &__osBaseTimer; void __osTimerServicesInit(void) { __osCurrentTime = 0; diff --git a/src/libultra/voice/voicecontread2.c b/src/libultra/voice/voicecontread2.c index 0f39ee3087..ba60a64c3f 100644 --- a/src/libultra/voice/voicecontread2.c +++ b/src/libultra/voice/voicecontread2.c @@ -3,6 +3,7 @@ */ #include "PR/controller_voice.h" +#include "PR/voice_internal.h" #include "PR/controller.h" #include "functions.h" #include "variables.h" diff --git a/src/libultra/voice/voicecontread36.c b/src/libultra/voice/voicecontread36.c index 9f23bf979d..248360b00e 100644 --- a/src/libultra/voice/voicecontread36.c +++ b/src/libultra/voice/voicecontread36.c @@ -3,6 +3,7 @@ */ #include "PR/controller_voice.h" +#include "PR/voice_internal.h" #include "PR/controller.h" #include "functions.h" #include "variables.h" diff --git a/src/libultra/voice/voicecontwrite20.c b/src/libultra/voice/voicecontwrite20.c index dd9d7e07f0..a346294bd5 100644 --- a/src/libultra/voice/voicecontwrite20.c +++ b/src/libultra/voice/voicecontwrite20.c @@ -3,6 +3,7 @@ */ #include "PR/controller_voice.h" +#include "PR/voice_internal.h" #include "PR/controller.h" #include "functions.h" #include "variables.h" diff --git a/src/libultra/voice/voicecontwrite4.c b/src/libultra/voice/voicecontwrite4.c index 103d3e798e..e828fc4c61 100644 --- a/src/libultra/voice/voicecontwrite4.c +++ b/src/libultra/voice/voicecontwrite4.c @@ -3,6 +3,7 @@ */ #include "PR/controller_voice.h" +#include "PR/voice_internal.h" #include "PR/controller.h" #include "functions.h" #include "variables.h" diff --git a/src/libultra/voice/voicesetadconverter.c b/src/libultra/voice/voicesetadconverter.c index 55403dae6f..1b3d87cd5f 100644 --- a/src/libultra/voice/voicesetadconverter.c +++ b/src/libultra/voice/voicesetadconverter.c @@ -3,6 +3,7 @@ */ #include "PR/controller_voice.h" +#include "PR/voice_internal.h" #include "PR/controller.h" #include "functions.h" #include "variables.h" diff --git a/src/overlays/actors/ovl_Boss_03/z_boss_03.c b/src/overlays/actors/ovl_Boss_03/z_boss_03.c index 168da53689..20a25036f9 100644 --- a/src/overlays/actors/ovl_Boss_03/z_boss_03.c +++ b/src/overlays/actors/ovl_Boss_03/z_boss_03.c @@ -49,7 +49,6 @@ * - Seaweed */ -#include "prevent_bss_reordering.h" #include "z_boss_03.h" #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" #include "overlays/actors/ovl_En_Water_Effect/z_en_water_effect.h" diff --git a/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c b/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c index 1f39649988..4ae5482bf5 100644 --- a/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c +++ b/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c @@ -4,6 +4,7 @@ * Description: Fishing Pond Elements (Owner, Fish, Props, Effects...) */ +#include "prevent_bss_reordering.h" #include "z_en_fishing.h" #include "z64rumble.h" #include "z64shrink_window.h" diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.c b/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.c index b34dc30d25..ee8aa689f9 100644 --- a/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.c +++ b/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.c @@ -5,6 +5,7 @@ */ #include "global.h" +#include "PR/gs2dex.h" #include "sys_cfb.h" #include "z_fbdemo_wipe5.h" diff --git a/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c b/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c index 04567cf9d9..6b451b506e 100644 --- a/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c +++ b/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c @@ -4,6 +4,7 @@ * Description: Pause Menu */ +#include "prevent_bss_reordering.h" #include "z_kaleido_scope.h" #include "z64view.h" #include "overlays/gamestates/ovl_opening/z_opening.h" diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index fc49a3b43f..2da44bc71a 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -7,7 +7,7 @@ 0x80000310:("osCicId","UNK_TYPE","",0x4), 0x80000314:("osVersion","UNK_TYPE","",0x4), 0x80000318:("osMemSize","UNK_TYPE","",0x4), - 0x8000031C:("osAppNmiBuffer","s32","[0x10]",0x40), + 0x8000031C:("osAppNMIBuffer","s32","[0x10]",0x40), 0x80000500:("gFramebuffer1","u16","[SCREEN_HEIGHT][SCREEN_WIDTH]",0x25800), 0x80025D00:("D_80025D00","u8","[]",0x1), # TODO size 0x800969C0:("rspbootTextStart","u64","[]",0x160), @@ -47,13 +47,13 @@ 0x800975E0:("sintable","s16","[1024]",0x800), 0x80097DE0:("__osHwIntTable","__osHwInt","[]",0x28), 0x80097E08:("__osPiIntTable","__osHwInt","[]",0x28), - 0x80097E10:("__osThreadTail","OSThread*","",0x4), + 0x80097E10:("__osThreadTail","__OSThreadTail","",0x8), 0x80097E18:("__osRunQueue","OSThread*","",0x4), 0x80097E1C:("__osActiveQueue","OSThread*","",0x4), 0x80097E20:("__osRunningThread","OSThread*","",0x4), 0x80097E24:("__osFaultedThread","OSThread*","",0x4), 0x80097E30:("__osSiAccessQueueEnabled","u32","",0x4), - 0x80097E40:("D_80097E40","UNK_TYPE4","",0x4), + 0x80097E40:("__osContinitialized","UNK_TYPE4","",0x4), 0x80097E50:("osClockRate","u64","",0x8), 0x80097E58:("osViClock","s32","",0x4), 0x80097E5C:("__osShutdown","UNK_TYPE4","",0x4), @@ -65,7 +65,7 @@ 0x80097EB0:("osViModeNtscHpn1","OSViMode","",0x50), 0x80097F00:("__osPfsInodeCacheChannel","s32","",0x4), 0x80097F04:("__osPfsInodeCacheBank","u8","",0x1), - 0x80097F10:("D_80097F10","UNK_TYPE4","",0x4), + 0x80097F10:("__osPreNMI","UNK_TYPE4","",0x4), 0x80097F20:("spaces","char","[]",0x21), 0x80097F44:("zeroes","char","[]",0x24), 0x80097F70:("__osTimerList","OSTimer*","",0x4), @@ -75,7 +75,7 @@ 0x80097FB0:("__osPfsLastChannel","s32","",0x4), 0x80097FC0:("osViModeNtscLan1","OSViMode","",0x50), 0x80098010:("osViModeMpalLan1","OSViMode","",0x50), - 0x80098060:("D_80098060","__OSViContext","[2]",0x60), + 0x80098060:("vi","__OSViContext","[2]",0x60), 0x800980C0:("__osViCurr","__OSViContext*","",0x4), 0x800980C4:("__osViNext","__OSViContext*","",0x4), 0x800980D0:("sCartRomNeedsInit","UNK_TYPE4","",0x4), @@ -251,14 +251,14 @@ 0x80099128:("D_80099128","char","[]",0x1), 0x8009915C:("D_8009915C","char","[]",0x1), 0x80099178:("D_80099178","char","[]",0x1), - 0x800991A0:("D_800991A0","u16","[64]",0x80), + 0x800991A0:("__osRcpImTable","u16","[64]",0x80), 0x80099220:("P","du","[5]",0x28), 0x80099248:("rpi","du","",0x8), 0x80099250:("pihi","du","",0x8), 0x80099258:("pilo","du","",0x8), 0x80099260:("zero","fu","",0x4), - 0x80099270:("D_80099270","UNK_TYPE1","",0x1), - 0x80099290:("__osIntTable","UNK_PTR","",0x4), + 0x80099270:("__osIntOffTable","u8","",0x20), + 0x80099290:("__osIntTable","UNK_PTR","",0x30), 0x800992C0:("D_800992C0","f64","",0x8), 0x800992D0:("jtbl_800992D0","UNK_PTR","",0x4), 0x800992F0:("D_800992F0","f64","",0x8), @@ -330,32 +330,31 @@ 0x8009CEB0:("siAccessBuf","OSMesg","[1]",0x4), 0x8009CEB8:("__osSiAccessQueue","OSMesgQueue","",0x18), 0x8009CED0:("__osContPifRam","OSPifRam","",0x40), - 0x8009CF0C:("D_8009CF0C","UNK_TYPE1","",0x1), 0x8009CF10:("__osContLastPoll","u8","",0x1), 0x8009CF11:("__osMaxControllers","u8","",0x1), 0x8009CF18:("__osEepromTimer","OSTimer","",0x20), - 0x8009CF38:("D_8009CF38","OSMesgQueue","",0x18), - 0x8009CF50:("D_8009CF50","OSMesg","",0x4), + 0x8009CF38:("__osEepromTimerQ","OSMesgQueue","",0x18), + 0x8009CF50:("__osEepromTimerMsg","OSMesg","",0x4), 0x8009CF60:("sHandleStatus","UNK_TYPE1","",0x1), - 0x8009CF70:("D_8009CF70","UNK_TYPE4","",0x4), + 0x8009CF70:("__osFinalrom","UNK_TYPE4","",0x4), 0x8009CF80:("__osThreadSave","OSThread","",0x1b0), - 0x8009D130:("D_8009D130","OSPiHandle","",0x74), - 0x8009D1A8:("D_8009D1A8","OSPiHandle","",0x74), + 0x8009D130:("__Dom1SpeedParam","OSPiHandle","",0x74), + 0x8009D1A8:("__Dom2SpeedParam","OSPiHandle","",0x74), 0x8009D220:("sPiMgrThread","OSThread","",0x1b0), 0x8009D3D0:("sPiMgrStack","u8","[4096]",0x1000), - 0x8009E3D0:("D_8009E3D0","OSMesgQueue","",0x18), - 0x8009E3E8:("D_8009E3E8","OSMesg","[1]",0x4), - 0x8009E3F0:("D_8009E3F0","OSMesg","[1]",0x4), + 0x8009E3D0:("piEventQueue","OSMesgQueue","",0x18), + 0x8009E3E8:("piEventBuf","OSMesg","[1]",0x4), + 0x8009E3F0:("piAccessBuf","OSMesg","[1]",0x4), 0x8009E3F8:("__osPiAccessQueue","OSMesgQueue","",0x18), 0x8009E410:("__osPfsInodeCache","__OSInode","",0x100), 0x8009E510:("__osEventStateTab","__OSEventState","[16]",0x80), - 0x8009E590:("D_8009E590","OSTimer","",0x20), + 0x8009E590:("__osBaseTimer","OSTimer","",0x20), 0x8009E5B0:("__osCurrentTime","OSTime","",0x8), 0x8009E5B8:("__osBaseCounter","u32","",0x4), 0x8009E5BC:("__osViIntrCount","u32","",0x4), 0x8009E5C0:("__osTimerCounter","u32","",0x4), 0x8009E5D0:("__osPfsPifRam","OSPifRam","",0x40), - 0x8009E610:("CartRomHandle","OSPiHandle","",0x74), + 0x8009E610:("__CartRomHandle","OSPiHandle","",0x74), 0x8009E690:("viThread","OSThread","",0x1b0), 0x8009E840:("sViStack","u8","[4096]",0x1000), 0x8009F840:("viEventQueue","OSMesgQueue","",0x18), diff --git a/undefined_syms.txt b/undefined_syms.txt index a6a5bc8ae4..45307fc872 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -14,7 +14,7 @@ osResetType = 0x8000030C; osCicId = 0x80000310; osVersion = 0x80000314; osMemSize = 0x80000318; -osAppNmiBuffer = 0x8000031C; +osAppNMIBuffer = 0x8000031C; /// OS hardware registers