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
This commit is contained in:
Anghelo Carvajal 2023-09-15 11:02:27 -03:00 committed by GitHub
parent 626f09266d
commit 4b30f1a654
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
56 changed files with 226 additions and 274 deletions

View File

@ -4,6 +4,7 @@
#include "ultratypes.h" #include "ultratypes.h"
#include "os_cont.h" #include "os_cont.h"
#include "os_pfs.h" #include "os_pfs.h"
#include "rcp.h"
#define CHNL_ERR(format) (((format).rxsize & CHNL_ERR_MASK) >> 4) #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); s32 __osContChannelReset(OSMesgQueue* mq, s32 channel);
extern OSPifRam __osContPifRam; extern OSPifRam __osContPifRam;
// extern UNK_TYPE1 D_8009CF0C;
extern u8 __osContLastPoll; extern u8 __osContLastPoll;
extern u8 __osMaxControllers; extern u8 __osMaxControllers;
// extern OSMesgQueue D_8009CF38; extern OSMesgQueue __osEepromTimerQ;
// extern OSMesg D_8009CF50; extern OSMesg __osEepromTimerMsg[];
extern OSPifRam __osPfsPifRam;
#endif #endif

23
include/PR/guint.h Normal file
View File

@ -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

View File

@ -6,8 +6,7 @@
#include "os_pi.h" #include "os_pi.h"
#include "os_internal_rsp.h" #include "os_internal_rsp.h"
typedef struct __osHwInt {
typedef struct {
/* 0x00 */ OSMesgQueue* queue; /* 0x00 */ OSMesgQueue* queue;
/* 0x04 */ OSMesg msg; /* 0x04 */ OSMesg msg;
} __osHwInt; // size = 0x08 } __osHwInt; // size = 0x08

View File

@ -2,12 +2,10 @@
#define PR_OS_INTERNAL_RSP_H #define PR_OS_INTERNAL_RSP_H
#include "ultratypes.h" #include "ultratypes.h"
#include "libc/stddef.h"
u32 __osSpGetStatus(void); u32 __osSpGetStatus(void);
void __osSpSetStatus(u32 data); void __osSpSetStatus(u32 data);
s32 __osSpSetPc(void* pc); s32 __osSpSetPc(void* pc);
s32 __osSpRawStartDma(s32 direction, void* devAddr, void* dramAddr, size_t size); s32 __osSpRawStartDma(s32 direction, void* devAddr, void* dramAddr, size_t size);
#endif #endif

View File

@ -60,8 +60,8 @@ typedef struct {
/* 0x14 */ OSPiHandle* piHandle; /* 0x14 */ OSPiHandle* piHandle;
} OSIoMesg; // size = 0x88 } OSIoMesg; // size = 0x88
typedef struct { typedef struct OSDevMgr {
/* 0x00 */ s32 active; // u32 maybe? need to check /* 0x00 */ s32 active;
/* 0x04 */ OSThread* thread; /* 0x04 */ OSThread* thread;
/* 0x08 */ OSMesgQueue* cmdQueue; /* 0x08 */ OSMesgQueue* cmdQueue;
/* 0x0C */ OSMesgQueue* evtQueue; /* 0x0C */ OSMesgQueue* evtQueue;
@ -99,6 +99,7 @@ typedef struct {
#define PI_DOMAIN1 0 #define PI_DOMAIN1 0
#define PI_DOMAIN2 1 #define PI_DOMAIN2 1
extern OSPiHandle* __osPiTable;
void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt); void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt);

View File

@ -3,6 +3,33 @@
#include "ultratypes.h" #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); u32 osGetMemSize(void);
s32 osAfterPreNMI(void); s32 osAfterPreNMI(void);

View File

@ -113,12 +113,16 @@ typedef struct {
#define OS_VI_FPAL_HPN2 54 #define OS_VI_FPAL_HPN2 54
#define OS_VI_FPAL_HPF2 55 #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 #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* osViGetCurrentFramebuffer(void);
void* osViGetNextFramebuffer(void); void* osViGetNextFramebuffer(void);
void osViSetXScale(f32 value); void osViSetXScale(f32 value);
@ -131,5 +135,4 @@ void osViSwapBuffer(void* frameBufPtr);
void osViBlack(u8 active); void osViBlack(u8 active);
void osCreateViManager(OSPri pri); void osCreateViManager(OSPri pri);
#endif #endif

View File

@ -34,5 +34,20 @@ void __osTimerServicesInit(void);
extern __osHwInt __osHwIntTable[]; extern __osHwInt __osHwIntTable[];
extern __OSEventState __osEventStateTab[OS_NUM_EVENTS]; 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 #endif

View File

@ -6,6 +6,15 @@
#include "libc/stdint.h" #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 __osDevMgrMain(void* arg);
void __osPiCreateAccessQueue(void); void __osPiCreateAccessQueue(void);
void __osPiRelAccess(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); s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, uintptr_t cartAddr, void* dramAddr, size_t size);
OSMesgQueue* osPiGetCmdQueue(void); OSMesgQueue* osPiGetCmdQueue(void);
#endif #endif

View File

@ -3,6 +3,7 @@
#include "ultratypes.h" #include "ultratypes.h"
extern u8 __osPfsInodeCacheBank;
void __osSiGetAccess(void); void __osSiGetAccess(void);
void __osSiRelAccess(void); void __osSiRelAccess(void);

View File

@ -23,9 +23,4 @@ extern u64 gspF3DZEX2_NoN_PosLight_fifoTextEnd[];
extern u64 gspF3DZEX2_NoN_PosLight_fifoDataStart[]; extern u64 gspF3DZEX2_NoN_PosLight_fifoDataStart[];
extern u64 gspF3DZEX2_NoN_PosLight_fifoDataEnd[]; extern u64 gspF3DZEX2_NoN_PosLight_fifoDataEnd[];
extern u64 gspS2DEX2_fifoTextStart[];
extern u64 gspS2DEX2_fifoTextEnd[];
extern u64 gspS2DEX2_fifoDataStart[];
extern u64 gspS2DEX2_fifoDataEnd[];
#endif #endif

View File

@ -22,6 +22,12 @@ typedef volatile s64 vs64;
typedef float f32; typedef float f32;
typedef double f64; typedef double f64;
typedef u32 size_t;
#ifndef NULL
#define NULL (void*)0
#endif
// TODO: move this somewhere else // TODO: move this somewhere else
typedef void* TexturePtr; typedef void* TexturePtr;

View File

@ -63,6 +63,8 @@ typedef struct {
/* 0x24 */ __OSViScale y; /* 0x24 */ __OSViScale y;
} __OSViContext; // size = 0x30 } __OSViContext; // size = 0x30
extern OSDevMgr __osViDevMgr;
void __osViSwapContext(void); void __osViSwapContext(void);
extern __OSViContext* __osViCurr; extern __OSViContext* __osViCurr;
extern __OSViContext* __osViNext; extern __OSViContext* __osViNext;

View File

@ -0,0 +1,8 @@
#ifndef PR_VOICE_INTERNAL_H
#define PR_VOICE_INTERNAL_H
#include "ultratypes.h"
extern s32 __osPfsLastChannel;
#endif

View File

@ -103,7 +103,7 @@ typedef struct FaultMgr {
/* 0x844 */ void* fb; /* 0x844 */ void* fb;
} FaultMgr; // size = 0x848 } FaultMgr; // size = 0x848
extern FaultMgr gFaultMgr; // TODO: Commented out to try to avoid bss reorder in fault.c
// extern FaultMgr gFaultMgr;
#endif #endif

View File

@ -10,21 +10,6 @@
#define SHT_MAX 32767.0f #define SHT_MAX 32767.0f
#define SHT_MINV (1.0f / SHT_MAX) #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); float fabsf(float f);
#pragma intrinsic(fabsf) #pragma intrinsic(fabsf)
#ifdef __GNUC__ #ifdef __GNUC__

View File

@ -3,14 +3,8 @@
#include "PR/ultratypes.h" #include "PR/ultratypes.h"
typedef u32 size_t;
typedef s32 ptrdiff_t; typedef s32 ptrdiff_t;
#ifndef NULL
#define NULL (void*)0
#endif
#ifdef __GNUC__ #ifdef __GNUC__
#define offsetof(structure, member) __builtin_offsetof (structure, member) #define offsetof(structure, member) __builtin_offsetof (structure, member)
#else #else

View File

@ -95,8 +95,6 @@
#define CLAMP_MAX(x, max) ((x) > (max) ? (max) : (x)) #define CLAMP_MAX(x, max) ((x) > (max) ? (max) : (x))
#define CLAMP_MIN(x, min) ((x) < (min) ? (min) : (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) \ #define SWAP(type, a, b) \
{ \ { \
type _temp = (a); \ type _temp = (a); \

View File

@ -5,6 +5,7 @@
#include "PR/gbi.h" #include "PR/gbi.h"
#include "PR/gu.h" #include "PR/gu.h"
#include "PR/guint.h"
#include "PR/controller_voice.h" #include "PR/controller_voice.h"
#include "PR/hardware.h" #include "PR/hardware.h"
#include "PR/os.h" #include "PR/os.h"

View File

@ -6,14 +6,6 @@
#include "macros.h" #include "macros.h"
// pre-boot variables // 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 u16 gFramebuffer1[SCREEN_HEIGHT][SCREEN_WIDTH]; // at 0x80000500
extern u8 D_80025D00[]; extern u8 D_80025D00[];
@ -31,103 +23,7 @@ extern s32 sIrqMgrRetraceCount;
// extern UNK_TYPE1 sGfxPrintFontData; // extern UNK_TYPE1 sGfxPrintFontData;
// extern UNK_TYPE4 D_80097524; // extern UNK_TYPE4 D_80097524;
// extern u32 sRandInt; // 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 gBuildTeam[];
extern char gBuildDate[]; extern char gBuildDate[];
extern char gBuildMakeOption[]; extern char gBuildMakeOption[];
@ -145,29 +41,9 @@ extern void* gYaz0DecompressDstEnd;
// extern UNK_TYPE4 D_8009CD10; // extern UNK_TYPE4 D_8009CD10;
extern u32 sRandFloat; extern u32 sRandFloat;
// extern UNK_TYPE4 sArenaLockMsg; // 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 DmaEntry dmadata[1568];
// extern UNK_TYPE1 D_80186028; // extern UNK_TYPE1 D_80186028;
extern u64 aspMainTextStart[];
extern u8 sDropTable[DROP_TABLE_SIZE * DROP_TABLE_NUMBER]; extern u8 sDropTable[DROP_TABLE_SIZE * DROP_TABLE_NUMBER];
extern u8 sDropTableAmounts[DROP_TABLE_SIZE * DROP_TABLE_NUMBER]; extern u8 sDropTableAmounts[DROP_TABLE_SIZE * DROP_TABLE_NUMBER];

View File

@ -2,6 +2,7 @@
#define Z64ACTOR_H #define Z64ACTOR_H
#include "PR/ultratypes.h" #include "PR/ultratypes.h"
#include "color.h"
#include "padutils.h" #include "padutils.h"
#include "z64math.h" #include "z64math.h"
#include "z64animation.h" #include "z64animation.h"

View File

@ -6,6 +6,7 @@
#include "z64dma.h" #include "z64dma.h"
#include "z64math.h" #include "z64math.h"
struct GameState;
struct PlayState; struct PlayState;
struct Actor; struct Actor;
struct SkelAnime; struct SkelAnime;

View File

@ -42,6 +42,7 @@
#include "fault_internal.h" #include "fault_internal.h"
#include "fault.h" #include "fault.h"
#include "prevent_bss_reordering2.h"
#include "global.h" #include "global.h"
#include "vt.h" #include "vt.h"
#include "PR/osint.h" #include "PR/osint.h"

View File

@ -1,3 +1,4 @@
#include "prevent_bss_reordering.h"
#include "irqmgr.h" #include "irqmgr.h"
#include "main.h" #include "main.h"
#include "stack.h" #include "stack.h"

View File

@ -36,6 +36,8 @@
#include "PR/os_motor.h" #include "PR/os_motor.h"
#include "fault.h" #include "fault.h"
extern FaultMgr gFaultMgr;
#define PADMGR_RETRACE_MSG (1 << 0) #define PADMGR_RETRACE_MSG (1 << 0)
#define PADMGR_PRE_NMI_MSG (1 << 1) #define PADMGR_PRE_NMI_MSG (1 << 1)
#define PADMGR_NMI_MSG (1 << 2) #define PADMGR_NMI_MSG (1 << 2)

View File

@ -3,8 +3,7 @@
* Description: * Description:
*/ */
#include "prevent_bss_reordering.h" #include "z64actor.h"
#include "global.h"
#include "fault.h" #include "fault.h"
#include "sys_cfb.h" #include "sys_cfb.h"
#include "loadfragment.h" #include "loadfragment.h"

View File

@ -43,6 +43,7 @@
* *
*/ */
#include "prevent_bss_reordering.h"
#include "global.h" #include "global.h"
#include "libc/string.h" #include "libc/string.h"
#include "z64quake.h" #include "z64quake.h"

View File

@ -1,4 +1,3 @@
#include "prevent_bss_reordering.h"
#include "global.h" #include "global.h"
#include "z64collision_check.h" #include "z64collision_check.h"

View File

@ -13,7 +13,7 @@ typedef struct {
NmiBuff* gNMIBuffer; NmiBuff* gNMIBuffer;
void Nmi_Init(void) { void Nmi_Init(void) {
gNMIBuffer = (NmiBuff*)osAppNmiBuffer; gNMIBuffer = (NmiBuff*)osAppNMIBuffer;
gNMIBuffer->resetting = false; gNMIBuffer->resetting = false;
if (osResetType == COLD_RESET) { if (osResetType == COLD_RESET) {

View File

@ -1,4 +1,5 @@
#include "global.h" #include "global.h"
#include "PR/gs2dex.h"
#include "sys_cfb.h" #include "sys_cfb.h"
#include "z64snap.h" #include "z64snap.h"
#include "z64view.h" #include "z64view.h"

View File

@ -1,4 +1,5 @@
#include "global.h" #include "global.h"
#include "PR/gs2dex.h"
#include "debug.h" #include "debug.h"
void Room_Noop(PlayState* play, Room* room, Input* input, s32 arg3) { void Room_Noop(PlayState* play, Room* room, Input* input, s32 arg3) {

View File

@ -1,6 +1,6 @@
#include "global.h" #include "global.h"
OSPiHandle CartRomHandle; OSPiHandle __CartRomHandle;
OSPiHandle* osCartRomInit(void) { OSPiHandle* osCartRomInit(void) {
register u32 initialConfig; register u32 initialConfig;
@ -17,15 +17,15 @@ OSPiHandle* osCartRomInit(void) {
if (!sCartRomNeedsInit) { if (!sCartRomNeedsInit) {
__osPiRelAccess(); __osPiRelAccess();
return &CartRomHandle; return &__CartRomHandle;
} }
sCartRomNeedsInit = false; sCartRomNeedsInit = false;
CartRomHandle.type = DEVICE_TYPE_CART; __CartRomHandle.type = DEVICE_TYPE_CART;
CartRomHandle.baseAddress = 0xB0000000; __CartRomHandle.baseAddress = 0xB0000000;
CartRomHandle.domain = 0; __CartRomHandle.domain = 0;
CartRomHandle.speed = 0; __CartRomHandle.speed = 0;
bzero(&CartRomHandle.transferInfo, sizeof(__OSTranxInfo)); bzero(&__CartRomHandle.transferInfo, sizeof(__OSTranxInfo));
/* Uses `status & PI_STATUS_ERROR` in OoT */ /* Uses `status & PI_STATUS_ERROR` in OoT */
while (status = HW_REG(PI_STATUS_REG, u32), status & (PI_STATUS_DMA_BUSY | PI_STATUS_IO_BUSY)) { 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_RLS_REG, u32) = 3;
HW_REG(PI_BSD_DOM1_PWD_REG, u32) = 0xFF; HW_REG(PI_BSD_DOM1_PWD_REG, u32) = 0xFF;
initialConfig = HW_REG(CartRomHandle.baseAddress, u32); initialConfig = HW_REG(__CartRomHandle.baseAddress, u32);
CartRomHandle.latency = initialConfig & 0xFF; __CartRomHandle.latency = initialConfig & 0xFF;
CartRomHandle.pageSize = (initialConfig >> 0x10) & 0xF; __CartRomHandle.pageSize = (initialConfig >> 0x10) & 0xF;
CartRomHandle.relDuration = (initialConfig >> 0x14) & 0xF; __CartRomHandle.relDuration = (initialConfig >> 0x14) & 0xF;
CartRomHandle.pulse = (initialConfig >> 8) & 0xFF; __CartRomHandle.pulse = (initialConfig >> 8) & 0xFF;
HW_REG(PI_BSD_DOM1_LAT_REG, u32) = lastLatency; HW_REG(PI_BSD_DOM1_LAT_REG, u32) = lastLatency;
HW_REG(PI_BSD_DOM1_PGS_REG, u32) = lastPageSize; 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; HW_REG(PI_BSD_DOM1_PWD_REG, u32) = lastPulse;
prevInt = __osDisableInt(); prevInt = __osDisableInt();
CartRomHandle.next = __osPiTable; __CartRomHandle.next = __osPiTable;
__osPiTable = &CartRomHandle; __osPiTable = &__CartRomHandle;
__osRestoreInt(prevInt); __osRestoreInt(prevInt);
__osPiRelAccess(); __osPiRelAccess();
return &CartRomHandle; return &__CartRomHandle;
} }

View File

@ -1,4 +1,5 @@
#include "global.h" #include "global.h"
#include "PR/voice_internal.h"
#define BLOCKSIZE 32 #define BLOCKSIZE 32

View File

@ -1,4 +1,5 @@
#include "ultra64.h" #include "ultra64.h"
#include "PR/voice_internal.h"
#include "global.h" #include "global.h"
s32 __osContRamWrite(OSMesgQueue* mq, s32 channel, u16 address, u8* buffer, s32 force) { s32 __osContRamWrite(OSMesgQueue* mq, s32 channel, u16 address, u8* buffer, s32 force) {

View File

@ -1,14 +1,14 @@
#include "global.h" #include "global.h"
UNK_TYPE4 D_80097E40 = 0; s32 __osContinitialized = false;
OSPifRam __osContPifRam; OSPifRam __osContPifRam;
u8 __osContLastPoll; u8 __osContLastPoll;
u8 __osMaxControllers; u8 __osMaxControllers;
OSTimer __osEepromTimer; OSTimer __osEepromTimer;
OSMesgQueue D_8009CF38; OSMesgQueue __osEepromTimerQ;
OSMesg D_8009CF50[1]; OSMesg __osEepromTimerMsg[1];
s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data) { s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data) {
OSMesg dummy; OSMesg dummy;
@ -17,11 +17,11 @@ s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data) {
OSTimer mytimer; OSTimer mytimer;
OSMesgQueue timerMesgQueue; OSMesgQueue timerMesgQueue;
if (D_80097E40 != 0) { if (__osContinitialized) {
return 0; return 0;
} }
D_80097E40 = 1; __osContinitialized = true;
t = osGetTime(); t = osGetTime();
if (t < 0x165A0BC) { if (t < 0x165A0BC) {
@ -43,7 +43,7 @@ s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data) {
__osContGetInitData(bitpattern, data); __osContGetInitData(bitpattern, data);
__osContLastPoll = 0; __osContLastPoll = 0;
__osSiCreateAccessQueue(); __osSiCreateAccessQueue();
osCreateMesgQueue(&D_8009CF38, D_8009CF50, ARRAY_COUNT(D_8009CF50)); osCreateMesgQueue(&__osEepromTimerQ, __osEepromTimerMsg, ARRAY_COUNT(__osEepromTimerMsg));
return ret; return ret;
} }

View File

@ -1,13 +1,13 @@
#include "global.h" #include "global.h"
UNK_TYPE4 __osPiAccessQueueEnabled = 0; u32 __osPiAccessQueueEnabled = 0;
OSMesg D_8009E3F0[1]; OSMesg piAccessBuf[1];
OSMesgQueue __osPiAccessQueue; OSMesgQueue __osPiAccessQueue;
void __osPiCreateAccessQueue(void) { void __osPiCreateAccessQueue(void) {
__osPiAccessQueueEnabled = 1; __osPiAccessQueueEnabled = 1;
osCreateMesgQueue(&__osPiAccessQueue, D_8009E3F0, ARRAY_COUNT(D_8009E3F0)); osCreateMesgQueue(&__osPiAccessQueue, piAccessBuf, ARRAY_COUNT(piAccessBuf));
osSendMesg(&__osPiAccessQueue, NULL, OS_MESG_NOBLOCK); osSendMesg(&__osPiAccessQueue, NULL, OS_MESG_NOBLOCK);
} }

View File

@ -1,12 +1,12 @@
#include "global.h" #include "global.h"
#include "stack.h" #include "stack.h"
OSPiHandle D_8009D130; OSPiHandle __Dom1SpeedParam;
OSPiHandle D_8009D1A8; OSPiHandle __Dom2SpeedParam;
OSThread sPiMgrThread; OSThread sPiMgrThread;
STACK(sPiMgrStack, 0x1000); STACK(sPiMgrStack, 0x1000);
OSMesgQueue D_8009E3D0; OSMesgQueue piEventQueue;
OSMesg D_8009E3E8[1]; OSMesg piEventBuf[1];
void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) { void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) {
u32 savedMask; u32 savedMask;
@ -15,11 +15,11 @@ void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgC
if (!__osPiDevMgr.active) { if (!__osPiDevMgr.active) {
osCreateMesgQueue(cmdQ, cmdBuf, cmdMsgCnt); osCreateMesgQueue(cmdQ, cmdBuf, cmdMsgCnt);
osCreateMesgQueue(&D_8009E3D0, D_8009E3E8, ARRAY_COUNT(D_8009E3E8)); osCreateMesgQueue(&piEventQueue, piEventBuf, ARRAY_COUNT(piEventBuf));
if (!__osPiAccessQueueEnabled) { if (!__osPiAccessQueueEnabled) {
__osPiCreateAccessQueue(); __osPiCreateAccessQueue();
} }
osSetEventMesg(OS_EVENT_PI, &D_8009E3D0, (OSMesg)0x22222222); osSetEventMesg(OS_EVENT_PI, &piEventQueue, (OSMesg)0x22222222);
oldPri = -1; oldPri = -1;
myPri = osGetThreadPri(NULL); myPri = osGetThreadPri(NULL);
if (myPri < pri) { if (myPri < pri) {
@ -30,7 +30,7 @@ void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgC
__osPiDevMgr.active = 1; __osPiDevMgr.active = 1;
__osPiDevMgr.thread = &sPiMgrThread; __osPiDevMgr.thread = &sPiMgrThread;
__osPiDevMgr.cmdQueue = cmdQ; __osPiDevMgr.cmdQueue = cmdQ;
__osPiDevMgr.evtQueue = &D_8009E3D0; __osPiDevMgr.evtQueue = &piEventQueue;
__osPiDevMgr.acsQueue = &__osPiAccessQueue; __osPiDevMgr.acsQueue = &__osPiAccessQueue;
__osPiDevMgr.piDmaCallback = __osPiRawStartDma; __osPiDevMgr.piDmaCallback = __osPiRawStartDma;
__osPiDevMgr.epiDmaCallback = __osEPiRawStartDma; __osPiDevMgr.epiDmaCallback = __osEPiRawStartDma;

View File

@ -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_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) { switch (direction) {
case OS_READ: case OS_READ:

View File

@ -1,4 +0,0 @@
#ifndef _SIINT_H_
#define _SIINT_H_
#endif

View File

@ -1,13 +1,13 @@
#include "global.h" #include "global.h"
__OSViContext D_80098060[2] = { 0 }; static __OSViContext vi[2] = { 0 };
__OSViContext* __osViCurr = &D_80098060[0]; __OSViContext* __osViCurr = &vi[0];
__OSViContext* __osViNext = &D_80098060[1]; __OSViContext* __osViNext = &vi[1];
void __osViInit(void) { void __osViInit(void) {
bzero(D_80098060, sizeof(D_80098060)); bzero(vi, sizeof(vi));
__osViCurr = &D_80098060[0]; __osViCurr = &vi[0];
__osViNext = &D_80098060[1]; __osViNext = &vi[1];
__osViNext->retraceCount = 1; __osViNext->retraceCount = 1;
__osViCurr->retraceCount = 1; __osViCurr->retraceCount = 1;
__osViNext->buffer = (void*)0x80000000; __osViNext->buffer = (void*)0x80000000;

View File

@ -9,7 +9,7 @@ OSMesgQueue viEventQueue;
OSMesg viEventBuf[6]; OSMesg viEventBuf[6];
OSIoMesg viRetraceMsg; OSIoMesg viRetraceMsg;
OSIoMesg viCounterMsg; OSIoMesg viCounterMsg;
OSMgrArgs __osViDevMgr = { 0 }; OSDevMgr __osViDevMgr = { 0 };
u32 __additional_scanline = 0; u32 __additional_scanline = 0;
void viMgrMain(void*); void viMgrMain(void*);
@ -19,7 +19,7 @@ void osCreateViManager(OSPri pri) {
OSPri newPri; OSPri newPri;
OSPri currentPri; OSPri currentPri;
if (!__osViDevMgr.initialized) { if (!__osViDevMgr.active) {
__osTimerServicesInit(); __osTimerServicesInit();
__additional_scanline = 0; __additional_scanline = 0;
osCreateMesgQueue(&viEventQueue, viEventBuf, ARRAY_COUNT(viEventBuf) - 1); osCreateMesgQueue(&viEventQueue, viEventBuf, ARRAY_COUNT(viEventBuf) - 1);
@ -39,11 +39,11 @@ void osCreateViManager(OSPri pri) {
} }
prevInt = __osDisableInt(); prevInt = __osDisableInt();
__osViDevMgr.initialized = true; __osViDevMgr.active = true;
__osViDevMgr.mgrThread = &viThread; __osViDevMgr.thread = &viThread;
__osViDevMgr.cmdQueue = &viEventQueue; __osViDevMgr.cmdQueue = &viEventQueue;
__osViDevMgr.eventQueue = &viEventQueue; __osViDevMgr.evtQueue = &viEventQueue;
__osViDevMgr.accessQueue = NULL; __osViDevMgr.acsQueue = NULL;
__osViDevMgr.piDmaCallback = NULL; __osViDevMgr.piDmaCallback = NULL;
__osViDevMgr.epiDmaCallback = NULL; __osViDevMgr.epiDmaCallback = NULL;

View File

@ -3,39 +3,39 @@
#define COLD_RESET 0 #define COLD_RESET 0
typedef struct { typedef struct {
/* 0x0 */ u32 ins_00; // lui k0, 0x8000 /* 0x0 */ u32 ins_00; // lui k0, 0x8000
/* 0x4 */ u32 ins_04; // addiu k0, k0, 0x39E0 /* 0x4 */ u32 ins_04; // addiu k0, k0, 0x39E0
/* 0x8 */ u32 ins_08; // jr k0 ; __osException /* 0x8 */ u32 ins_08; // jr k0 ; __osException
/* 0xC */ u32 ins_0C; // nop /* 0xC */ u32 ins_0C; // nop
} struct_exceptionPreamble; // size = 0x10 } __osExceptionVector; // size = 0x10
extern struct_exceptionPreamble __osExceptionPreamble; extern __osExceptionVector __osExceptionPreamble;
u64 osClockRate = OS_CLOCK_RATE; u64 osClockRate = OS_CLOCK_RATE;
s32 osViClock = VI_NTSC_CLOCK; s32 osViClock = VI_NTSC_CLOCK;
UNK_TYPE4 __osShutdown = 0; u32 __osShutdown = 0;
UNK_TYPE4 __OSGlobalIntMask = 0x003FFF01; u32 __OSGlobalIntMask = 0x003FFF01;
UNK_TYPE4 D_8009CF70; u32 __osFinalrom;
void __createSpeedParam(void) { void __createSpeedParam(void) {
D_8009D130.type = DEVICE_TYPE_INIT; __Dom1SpeedParam.type = DEVICE_TYPE_INIT;
D_8009D130.latency = HW_REG(PI_BSD_DOM1_LAT_REG, u32); __Dom1SpeedParam.latency = HW_REG(PI_BSD_DOM1_LAT_REG, u32);
D_8009D130.pulse = HW_REG(PI_BSD_DOM1_PWD_REG, u32); __Dom1SpeedParam.pulse = HW_REG(PI_BSD_DOM1_PWD_REG, u32);
D_8009D130.pageSize = HW_REG(PI_BSD_DOM1_PGS_REG, u32); __Dom1SpeedParam.pageSize = HW_REG(PI_BSD_DOM1_PGS_REG, u32);
D_8009D130.relDuration = HW_REG(PI_BSD_DOM1_RLS_REG, u32); __Dom1SpeedParam.relDuration = HW_REG(PI_BSD_DOM1_RLS_REG, u32);
D_8009D1A8.type = DEVICE_TYPE_INIT; __Dom2SpeedParam.type = DEVICE_TYPE_INIT;
D_8009D1A8.latency = HW_REG(PI_BSD_DOM2_LAT_REG, u32); __Dom2SpeedParam.latency = HW_REG(PI_BSD_DOM2_LAT_REG, u32);
D_8009D1A8.pulse = HW_REG(PI_BSD_DOM2_PWD_REG, u32); __Dom2SpeedParam.pulse = HW_REG(PI_BSD_DOM2_PWD_REG, u32);
D_8009D1A8.pageSize = HW_REG(PI_BSD_DOM2_PGS_REG, u32); __Dom2SpeedParam.pageSize = HW_REG(PI_BSD_DOM2_PGS_REG, u32);
D_8009D1A8.relDuration = HW_REG(PI_BSD_DOM2_RLS_REG, u32); __Dom2SpeedParam.relDuration = HW_REG(PI_BSD_DOM2_RLS_REG, u32);
} }
void __osInitialize_common(void) { void __osInitialize_common(void) {
u32 pifdata; u32 pifdata;
D_8009CF70 = 1; __osFinalrom = 1;
__osSetSR(__osGetSR() | 0x20000000); __osSetSR(__osGetSR() | 0x20000000);
__osSetFpcCsr(0x01000800); __osSetFpcCsr(0x01000800);
@ -45,10 +45,10 @@ void __osInitialize_common(void) {
while (__osSiRawWriteIo(0x1FC007FC, pifdata | 8)) {} while (__osSiRawWriteIo(0x1FC007FC, pifdata | 8)) {}
*(struct_exceptionPreamble*)0x80000000 = __osExceptionPreamble; *(__osExceptionVector*)0x80000000 = __osExceptionPreamble;
*(struct_exceptionPreamble*)0x80000080 = __osExceptionPreamble; *(__osExceptionVector*)0x80000080 = __osExceptionPreamble;
*(struct_exceptionPreamble*)0x80000100 = __osExceptionPreamble; *(__osExceptionVector*)0x80000100 = __osExceptionPreamble;
*(struct_exceptionPreamble*)0x80000180 = __osExceptionPreamble; *(__osExceptionVector*)0x80000180 = __osExceptionPreamble;
osWritebackDCache(0x80000000, 400); osWritebackDCache(0x80000000, 400);
osInvalICache(0x80000000, 400); osInvalICache(0x80000000, 400);
@ -59,7 +59,7 @@ void __osInitialize_common(void) {
osClockRate = (u64)((osClockRate * 3LL) / 4ULL); osClockRate = (u64)((osClockRate * 3LL) / 4ULL);
if (osResetType == COLD_RESET) { if (osResetType == COLD_RESET) {
bzero(osAppNmiBuffer, 64); bzero(osAppNMIBuffer, 64);
} }
if (osTvType == OS_TV_PAL) { if (osTvType == OS_TV_PAL) {

View File

@ -1,7 +1,8 @@
#include "global.h" #include "global.h"
#include "PR/osint.h" #include "PR/osint.h"
#include "libc/stdbool.h"
UNK_TYPE4 D_80097F10 = 0; u32 __osPreNMI = false;
__OSEventState __osEventStateTab[OS_NUM_EVENTS]; __OSEventState __osEventStateTab[OS_NUM_EVENTS];
@ -17,10 +18,10 @@ void osSetEventMesg(OSEvent e, OSMesgQueue* mq, OSMesg m) {
es->message = m; es->message = m;
if (e == 14) { if (e == 14) {
if ((__osShutdown != 0) && (D_80097F10 == 0)) { if (__osShutdown && !__osPreNMI) {
osSendMesg(mq, m, OS_MESG_NOBLOCK); osSendMesg(mq, m, OS_MESG_NOBLOCK);
} }
D_80097F10 = 1; __osPreNMI = true;
} }
__osRestoreInt(saveMask); __osRestoreInt(saveMask);

View File

@ -1,7 +1,6 @@
#include "global.h" #include "global.h"
OSThread* __osThreadTail = NULL; __OSThreadTail __osThreadTail = { NULL, OS_PRIORITY_THREADTAIL };
UNK_TYPE D_80097E14 = -1;
OSThread* __osRunQueue = (OSThread*)&__osThreadTail; OSThread* __osRunQueue = (OSThread*)&__osThreadTail;
OSThread* __osActiveQueue = (OSThread*)&__osThreadTail; OSThread* __osActiveQueue = (OSThread*)&__osThreadTail;
OSThread* __osRunningThread = NULL; OSThread* __osRunningThread = NULL;
@ -11,7 +10,7 @@ void __osDequeueThread(OSThread** queue, OSThread* t) {
register OSThread* pred; register OSThread* pred;
register OSThread* succ; register OSThread* succ;
pred = (OSThread*)queue; //! This seems questionable, but the function matches... pred = (OSThread*)queue;
succ = pred->next; succ = pred->next;
while (succ != NULL) { while (succ != NULL) {
if (succ == t) { if (succ == t) {

View File

@ -1,6 +1,6 @@
#include "global.h" #include "global.h"
OSTimer D_8009E590; OSTimer __osBaseTimer;
OSTime __osCurrentTime; OSTime __osCurrentTime;
u32 __osBaseCounter; u32 __osBaseCounter;
u32 __osViIntrCount; u32 __osViIntrCount;
@ -8,7 +8,7 @@ u32 __osTimerCounter;
s32 D_8009E5C8[2]; // dummy bss padding required s32 D_8009E5C8[2]; // dummy bss padding required
OSPifRam __osPfsPifRam; OSPifRam __osPfsPifRam;
OSTimer* __osTimerList = &D_8009E590; OSTimer* __osTimerList = &__osBaseTimer;
void __osTimerServicesInit(void) { void __osTimerServicesInit(void) {
__osCurrentTime = 0; __osCurrentTime = 0;

View File

@ -3,6 +3,7 @@
*/ */
#include "PR/controller_voice.h" #include "PR/controller_voice.h"
#include "PR/voice_internal.h"
#include "PR/controller.h" #include "PR/controller.h"
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"

View File

@ -3,6 +3,7 @@
*/ */
#include "PR/controller_voice.h" #include "PR/controller_voice.h"
#include "PR/voice_internal.h"
#include "PR/controller.h" #include "PR/controller.h"
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"

View File

@ -3,6 +3,7 @@
*/ */
#include "PR/controller_voice.h" #include "PR/controller_voice.h"
#include "PR/voice_internal.h"
#include "PR/controller.h" #include "PR/controller.h"
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"

View File

@ -3,6 +3,7 @@
*/ */
#include "PR/controller_voice.h" #include "PR/controller_voice.h"
#include "PR/voice_internal.h"
#include "PR/controller.h" #include "PR/controller.h"
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"

View File

@ -3,6 +3,7 @@
*/ */
#include "PR/controller_voice.h" #include "PR/controller_voice.h"
#include "PR/voice_internal.h"
#include "PR/controller.h" #include "PR/controller.h"
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"

View File

@ -49,7 +49,6 @@
* - Seaweed * - Seaweed
*/ */
#include "prevent_bss_reordering.h"
#include "z_boss_03.h" #include "z_boss_03.h"
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
#include "overlays/actors/ovl_En_Water_Effect/z_en_water_effect.h" #include "overlays/actors/ovl_En_Water_Effect/z_en_water_effect.h"

View File

@ -4,6 +4,7 @@
* Description: Fishing Pond Elements (Owner, Fish, Props, Effects...) * Description: Fishing Pond Elements (Owner, Fish, Props, Effects...)
*/ */
#include "prevent_bss_reordering.h"
#include "z_en_fishing.h" #include "z_en_fishing.h"
#include "z64rumble.h" #include "z64rumble.h"
#include "z64shrink_window.h" #include "z64shrink_window.h"

View File

@ -5,6 +5,7 @@
*/ */
#include "global.h" #include "global.h"
#include "PR/gs2dex.h"
#include "sys_cfb.h" #include "sys_cfb.h"
#include "z_fbdemo_wipe5.h" #include "z_fbdemo_wipe5.h"

View File

@ -4,6 +4,7 @@
* Description: Pause Menu * Description: Pause Menu
*/ */
#include "prevent_bss_reordering.h"
#include "z_kaleido_scope.h" #include "z_kaleido_scope.h"
#include "z64view.h" #include "z64view.h"
#include "overlays/gamestates/ovl_opening/z_opening.h" #include "overlays/gamestates/ovl_opening/z_opening.h"

View File

@ -7,7 +7,7 @@
0x80000310:("osCicId","UNK_TYPE","",0x4), 0x80000310:("osCicId","UNK_TYPE","",0x4),
0x80000314:("osVersion","UNK_TYPE","",0x4), 0x80000314:("osVersion","UNK_TYPE","",0x4),
0x80000318:("osMemSize","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), 0x80000500:("gFramebuffer1","u16","[SCREEN_HEIGHT][SCREEN_WIDTH]",0x25800),
0x80025D00:("D_80025D00","u8","[]",0x1), # TODO size 0x80025D00:("D_80025D00","u8","[]",0x1), # TODO size
0x800969C0:("rspbootTextStart","u64","[]",0x160), 0x800969C0:("rspbootTextStart","u64","[]",0x160),
@ -47,13 +47,13 @@
0x800975E0:("sintable","s16","[1024]",0x800), 0x800975E0:("sintable","s16","[1024]",0x800),
0x80097DE0:("__osHwIntTable","__osHwInt","[]",0x28), 0x80097DE0:("__osHwIntTable","__osHwInt","[]",0x28),
0x80097E08:("__osPiIntTable","__osHwInt","[]",0x28), 0x80097E08:("__osPiIntTable","__osHwInt","[]",0x28),
0x80097E10:("__osThreadTail","OSThread*","",0x4), 0x80097E10:("__osThreadTail","__OSThreadTail","",0x8),
0x80097E18:("__osRunQueue","OSThread*","",0x4), 0x80097E18:("__osRunQueue","OSThread*","",0x4),
0x80097E1C:("__osActiveQueue","OSThread*","",0x4), 0x80097E1C:("__osActiveQueue","OSThread*","",0x4),
0x80097E20:("__osRunningThread","OSThread*","",0x4), 0x80097E20:("__osRunningThread","OSThread*","",0x4),
0x80097E24:("__osFaultedThread","OSThread*","",0x4), 0x80097E24:("__osFaultedThread","OSThread*","",0x4),
0x80097E30:("__osSiAccessQueueEnabled","u32","",0x4), 0x80097E30:("__osSiAccessQueueEnabled","u32","",0x4),
0x80097E40:("D_80097E40","UNK_TYPE4","",0x4), 0x80097E40:("__osContinitialized","UNK_TYPE4","",0x4),
0x80097E50:("osClockRate","u64","",0x8), 0x80097E50:("osClockRate","u64","",0x8),
0x80097E58:("osViClock","s32","",0x4), 0x80097E58:("osViClock","s32","",0x4),
0x80097E5C:("__osShutdown","UNK_TYPE4","",0x4), 0x80097E5C:("__osShutdown","UNK_TYPE4","",0x4),
@ -65,7 +65,7 @@
0x80097EB0:("osViModeNtscHpn1","OSViMode","",0x50), 0x80097EB0:("osViModeNtscHpn1","OSViMode","",0x50),
0x80097F00:("__osPfsInodeCacheChannel","s32","",0x4), 0x80097F00:("__osPfsInodeCacheChannel","s32","",0x4),
0x80097F04:("__osPfsInodeCacheBank","u8","",0x1), 0x80097F04:("__osPfsInodeCacheBank","u8","",0x1),
0x80097F10:("D_80097F10","UNK_TYPE4","",0x4), 0x80097F10:("__osPreNMI","UNK_TYPE4","",0x4),
0x80097F20:("spaces","char","[]",0x21), 0x80097F20:("spaces","char","[]",0x21),
0x80097F44:("zeroes","char","[]",0x24), 0x80097F44:("zeroes","char","[]",0x24),
0x80097F70:("__osTimerList","OSTimer*","",0x4), 0x80097F70:("__osTimerList","OSTimer*","",0x4),
@ -75,7 +75,7 @@
0x80097FB0:("__osPfsLastChannel","s32","",0x4), 0x80097FB0:("__osPfsLastChannel","s32","",0x4),
0x80097FC0:("osViModeNtscLan1","OSViMode","",0x50), 0x80097FC0:("osViModeNtscLan1","OSViMode","",0x50),
0x80098010:("osViModeMpalLan1","OSViMode","",0x50), 0x80098010:("osViModeMpalLan1","OSViMode","",0x50),
0x80098060:("D_80098060","__OSViContext","[2]",0x60), 0x80098060:("vi","__OSViContext","[2]",0x60),
0x800980C0:("__osViCurr","__OSViContext*","",0x4), 0x800980C0:("__osViCurr","__OSViContext*","",0x4),
0x800980C4:("__osViNext","__OSViContext*","",0x4), 0x800980C4:("__osViNext","__OSViContext*","",0x4),
0x800980D0:("sCartRomNeedsInit","UNK_TYPE4","",0x4), 0x800980D0:("sCartRomNeedsInit","UNK_TYPE4","",0x4),
@ -251,14 +251,14 @@
0x80099128:("D_80099128","char","[]",0x1), 0x80099128:("D_80099128","char","[]",0x1),
0x8009915C:("D_8009915C","char","[]",0x1), 0x8009915C:("D_8009915C","char","[]",0x1),
0x80099178:("D_80099178","char","[]",0x1), 0x80099178:("D_80099178","char","[]",0x1),
0x800991A0:("D_800991A0","u16","[64]",0x80), 0x800991A0:("__osRcpImTable","u16","[64]",0x80),
0x80099220:("P","du","[5]",0x28), 0x80099220:("P","du","[5]",0x28),
0x80099248:("rpi","du","",0x8), 0x80099248:("rpi","du","",0x8),
0x80099250:("pihi","du","",0x8), 0x80099250:("pihi","du","",0x8),
0x80099258:("pilo","du","",0x8), 0x80099258:("pilo","du","",0x8),
0x80099260:("zero","fu","",0x4), 0x80099260:("zero","fu","",0x4),
0x80099270:("D_80099270","UNK_TYPE1","",0x1), 0x80099270:("__osIntOffTable","u8","",0x20),
0x80099290:("__osIntTable","UNK_PTR","",0x4), 0x80099290:("__osIntTable","UNK_PTR","",0x30),
0x800992C0:("D_800992C0","f64","",0x8), 0x800992C0:("D_800992C0","f64","",0x8),
0x800992D0:("jtbl_800992D0","UNK_PTR","",0x4), 0x800992D0:("jtbl_800992D0","UNK_PTR","",0x4),
0x800992F0:("D_800992F0","f64","",0x8), 0x800992F0:("D_800992F0","f64","",0x8),
@ -330,32 +330,31 @@
0x8009CEB0:("siAccessBuf","OSMesg","[1]",0x4), 0x8009CEB0:("siAccessBuf","OSMesg","[1]",0x4),
0x8009CEB8:("__osSiAccessQueue","OSMesgQueue","",0x18), 0x8009CEB8:("__osSiAccessQueue","OSMesgQueue","",0x18),
0x8009CED0:("__osContPifRam","OSPifRam","",0x40), 0x8009CED0:("__osContPifRam","OSPifRam","",0x40),
0x8009CF0C:("D_8009CF0C","UNK_TYPE1","",0x1),
0x8009CF10:("__osContLastPoll","u8","",0x1), 0x8009CF10:("__osContLastPoll","u8","",0x1),
0x8009CF11:("__osMaxControllers","u8","",0x1), 0x8009CF11:("__osMaxControllers","u8","",0x1),
0x8009CF18:("__osEepromTimer","OSTimer","",0x20), 0x8009CF18:("__osEepromTimer","OSTimer","",0x20),
0x8009CF38:("D_8009CF38","OSMesgQueue","",0x18), 0x8009CF38:("__osEepromTimerQ","OSMesgQueue","",0x18),
0x8009CF50:("D_8009CF50","OSMesg","",0x4), 0x8009CF50:("__osEepromTimerMsg","OSMesg","",0x4),
0x8009CF60:("sHandleStatus","UNK_TYPE1","",0x1), 0x8009CF60:("sHandleStatus","UNK_TYPE1","",0x1),
0x8009CF70:("D_8009CF70","UNK_TYPE4","",0x4), 0x8009CF70:("__osFinalrom","UNK_TYPE4","",0x4),
0x8009CF80:("__osThreadSave","OSThread","",0x1b0), 0x8009CF80:("__osThreadSave","OSThread","",0x1b0),
0x8009D130:("D_8009D130","OSPiHandle","",0x74), 0x8009D130:("__Dom1SpeedParam","OSPiHandle","",0x74),
0x8009D1A8:("D_8009D1A8","OSPiHandle","",0x74), 0x8009D1A8:("__Dom2SpeedParam","OSPiHandle","",0x74),
0x8009D220:("sPiMgrThread","OSThread","",0x1b0), 0x8009D220:("sPiMgrThread","OSThread","",0x1b0),
0x8009D3D0:("sPiMgrStack","u8","[4096]",0x1000), 0x8009D3D0:("sPiMgrStack","u8","[4096]",0x1000),
0x8009E3D0:("D_8009E3D0","OSMesgQueue","",0x18), 0x8009E3D0:("piEventQueue","OSMesgQueue","",0x18),
0x8009E3E8:("D_8009E3E8","OSMesg","[1]",0x4), 0x8009E3E8:("piEventBuf","OSMesg","[1]",0x4),
0x8009E3F0:("D_8009E3F0","OSMesg","[1]",0x4), 0x8009E3F0:("piAccessBuf","OSMesg","[1]",0x4),
0x8009E3F8:("__osPiAccessQueue","OSMesgQueue","",0x18), 0x8009E3F8:("__osPiAccessQueue","OSMesgQueue","",0x18),
0x8009E410:("__osPfsInodeCache","__OSInode","",0x100), 0x8009E410:("__osPfsInodeCache","__OSInode","",0x100),
0x8009E510:("__osEventStateTab","__OSEventState","[16]",0x80), 0x8009E510:("__osEventStateTab","__OSEventState","[16]",0x80),
0x8009E590:("D_8009E590","OSTimer","",0x20), 0x8009E590:("__osBaseTimer","OSTimer","",0x20),
0x8009E5B0:("__osCurrentTime","OSTime","",0x8), 0x8009E5B0:("__osCurrentTime","OSTime","",0x8),
0x8009E5B8:("__osBaseCounter","u32","",0x4), 0x8009E5B8:("__osBaseCounter","u32","",0x4),
0x8009E5BC:("__osViIntrCount","u32","",0x4), 0x8009E5BC:("__osViIntrCount","u32","",0x4),
0x8009E5C0:("__osTimerCounter","u32","",0x4), 0x8009E5C0:("__osTimerCounter","u32","",0x4),
0x8009E5D0:("__osPfsPifRam","OSPifRam","",0x40), 0x8009E5D0:("__osPfsPifRam","OSPifRam","",0x40),
0x8009E610:("CartRomHandle","OSPiHandle","",0x74), 0x8009E610:("__CartRomHandle","OSPiHandle","",0x74),
0x8009E690:("viThread","OSThread","",0x1b0), 0x8009E690:("viThread","OSThread","",0x1b0),
0x8009E840:("sViStack","u8","[4096]",0x1000), 0x8009E840:("sViStack","u8","[4096]",0x1000),
0x8009F840:("viEventQueue","OSMesgQueue","",0x18), 0x8009F840:("viEventQueue","OSMesgQueue","",0x18),

View File

@ -14,7 +14,7 @@ osResetType = 0x8000030C;
osCicId = 0x80000310; osCicId = 0x80000310;
osVersion = 0x80000314; osVersion = 0x80000314;
osMemSize = 0x80000318; osMemSize = 0x80000318;
osAppNmiBuffer = 0x8000031C; osAppNMIBuffer = 0x8000031C;
/// OS hardware registers /// OS hardware registers