From fcccb050b302532c1c7c8fd6a3bd5f76046721e0 Mon Sep 17 00:00:00 2001 From: angie Date: Sat, 2 Sep 2023 16:51:11 -0400 Subject: [PATCH] various variables --- include/PR/os_exception.h | 28 ++++++++ include/PR/os_pi.h | 3 + include/PR/os_system.h | 5 ++ include/PR/os_vi.h | 6 ++ include/PR/osint.h | 9 +++ include/PR/piint.h | 82 ++++++++++++++++++++++++ include/PR/siint.h | 1 + include/PR/viint.h | 2 + include/PR/voiceinternal.h | 8 +++ include/variables.h | 45 +------------ src/libultra/io/contramread.c | 1 + src/libultra/io/contramwrite.c | 1 + src/libultra/io/controller.c | 6 +- src/libultra/io/devmgr.c | 16 ++--- src/libultra/io/piacs.c | 3 +- src/libultra/io/pimgr.c | 2 + src/libultra/io/siacs.c | 1 + src/libultra/io/vi.c | 16 ++--- src/libultra/os/initialize.c | 4 +- src/libultra/os/resetglobalintmask.c | 2 +- src/libultra/os/seteventmesg.c | 6 +- src/libultra/os/thread.c | 3 +- src/libultra/rmon/xlitob.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 + tools/disasm/variables.txt | 10 +-- 29 files changed, 190 insertions(+), 79 deletions(-) create mode 100644 include/PR/voiceinternal.h diff --git a/include/PR/os_exception.h b/include/PR/os_exception.h index b5c2e7ba8a..7453780ac1 100644 --- a/include/PR/os_exception.h +++ b/include/PR/os_exception.h @@ -7,6 +7,34 @@ typedef u32 OSIntMask; typedef u32 OSHWIntr; +/* Flags for debugging purpose */ + +#define OS_FLAG_CPU_BREAK 1 /* Break exception has occurred */ +#define OS_FLAG_FAULT 2 /* CPU fault has occurred */ + +/* Interrupt masks */ + +#define OS_IM_NONE 0x00000001 +#define OS_IM_RCP 0x00000401 +#define OS_IM_SW1 0x00000501 +#define OS_IM_SW2 0x00000601 +#define OS_IM_CART 0x00000c01 +#define OS_IM_PRENMI 0x00001401 +#define OS_IM_RDBWRITE 0x00002401 +#define OS_IM_RDBREAD 0x00004401 +#define OS_IM_COUNTER 0x00008401 +#define OS_IM_CPU 0x0000FF01 +#define OS_IM_SP 0x00010401 +#define OS_IM_SI 0x00020401 +#define OS_IM_AI 0x00040401 +#define OS_IM_VI 0x00080401 +#define OS_IM_PI 0x00100401 +#define OS_IM_DP 0x00200401 +#define OS_IM_ALL 0x003FFF01 +#define RCP_IMASK 0x003F0000 +#define RCP_IMASKSHIFT 16 + + OSIntMask osGetIntMask(void); OSIntMask osSetIntMask(OSIntMask im); diff --git a/include/PR/os_pi.h b/include/PR/os_pi.h index 2e67ca8409..74f9d2a478 100644 --- a/include/PR/os_pi.h +++ b/include/PR/os_pi.h @@ -94,6 +94,9 @@ typedef struct { #define OS_MESG_PRI_HIGH 1 +extern OSPiHandle* __osPiTable; + + void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt); OSPiHandle* osCartRomInit(void); diff --git a/include/PR/os_system.h b/include/PR/os_system.h index adc2990a4e..b55ca11a12 100644 --- a/include/PR/os_system.h +++ b/include/PR/os_system.h @@ -25,6 +25,11 @@ 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 33de7d14f5..33d90a27fa 100644 --- a/include/PR/os_vi.h +++ b/include/PR/os_vi.h @@ -115,6 +115,12 @@ typedef struct { #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); diff --git a/include/PR/osint.h b/include/PR/osint.h index c2e1a2b90d..58eb154569 100644 --- a/include/PR/osint.h +++ b/include/PR/osint.h @@ -34,5 +34,14 @@ void __osTimerServicesInit(void); extern __osHwInt __osHwIntTable[]; extern __OSEventState __osEventStateTab[OS_NUM_EVENTS]; +extern OSThread* __osThreadTail; +extern OSThread* __osRunQueue; +extern OSThread* __osActiveQueue; +extern OSThread* __osRunningThread; +extern OSThread* __osFaultedThread; + +extern u32 __osShutdown; + +extern OSTimer* __osTimerList; #endif diff --git a/include/PR/piint.h b/include/PR/piint.h index 0ca1f0d2e5..dad97841fd 100644 --- a/include/PR/piint.h +++ b/include/PR/piint.h @@ -6,6 +6,88 @@ #include "libc/stdint.h" +#define LEO_BASE_REG 0x05000000 + +#define LEO_CMD (LEO_BASE_REG + 0x508) +#define LEO_STATUS (LEO_BASE_REG + 0x508) + +#define LEO_BM_CTL (LEO_BASE_REG + 0x510) +#define LEO_BM_STATUS (LEO_BASE_REG + 0x510) + +#define LEO_SEQ_CTL (LEO_BASE_REG + 0x518) +#define LEO_SEQ_STATUS (LEO_BASE_REG + 0x518) + +#define LEO_C2_BUFF (LEO_BASE_REG + 0x000) //C2 Sector Buffer +#define LEO_SECTOR_BUFF (LEO_BASE_REG + 0x400) //Data Sector Buffer +#define LEO_DATA (LEO_BASE_REG + 0x500) //Data +#define LEO_MISC_REG (LEO_BASE_REG + 0x504) //Misc Register +#define LEO_CUR_TK (LEO_BASE_REG + 0x50C) //Current Track +#define LEO_ERR_SECTOR (LEO_BASE_REG + 0x514) //Sector Error Status +#define LEO_CUR_SECTOR (LEO_BASE_REG + 0x51C) //Current Sector +#define LEO_HARD_RESET (LEO_BASE_REG + 0x520) //Hard Reset +#define LEO_C1_S0 (LEO_BASE_REG + 0x524) //C1 +#define LEO_HOST_SECBYTE (LEO_BASE_REG + 0x528) //Sector Size (in bytes) +#define LEO_C1_S2 (LEO_BASE_REG + 0x52C) //C1 +#define LEO_SEC_BYTE (LEO_BASE_REG + 0x530) //Sectors per Block, Full Size +#define LEO_C1_S4 (LEO_BASE_REG + 0x534) //C1 +#define LEO_C1_S6 (LEO_BASE_REG + 0x538) //C1 +#define LEO_CUR_ADDR (LEO_BASE_REG + 0x53C) //Current Address? +#define LEO_ID_REG (LEO_BASE_REG + 0x540) //ID +#define LEO_TEST_REG (LEO_BASE_REG + 0x544) //Test Read +#define LEO_TEST_PIN_SEL (LEO_BASE_REG + 0x548) //Test Write +#define LEO_RAM_ADDR (LEO_BASE_REG + 0x580) //Microsequencer RAM + +#define LEO_STATUS_PRESENCE_MASK 0xFFFF + +#define LEO_STATUS_DATA_REQUEST 0x40000000 +#define LEO_STATUS_C2_TRANSFER 0x10000000 +#define LEO_STATUS_BUFFER_MANAGER_ERROR 0x08000000 +#define LEO_STATUS_BUFFER_MANAGER_INTERRUPT 0x04000000 +#define LEO_STATUS_MECHANIC_INTERRUPT 0x02000000 +#define LEO_STATUS_DISK_PRESENT 0x01000000 +#define LEO_STATUS_BUSY_STATE 0x00800000 +#define LEO_STATUS_RESET_STATE 0x00400000 +#define LEO_STATUS_MOTOR_NOT_SPINNING 0x00100000 +#define LEO_STATUS_HEAD_RETRACTED 0x00080000 +#define LEO_STATUS_WRITE_PROTECT_ERROR 0x00040000 +#define LEO_STATUS_MECHANIC_ERROR 0x00020000 +#define LEO_STATUS_DISK_CHANGE 0x00010000 + +#define LEO_STATUS_MODE_MASK (LEO_STATUS_MOTOR_NOT_SPINNING | LEO_STATUS_HEAD_RETRACTED) +#define LEO_STATUS_MODE_SLEEP (LEO_STATUS_MOTOR_NOT_SPINNING | LEO_STATUS_HEAD_RETRACTED) +#define LEO_STATUS_MODE_STANDBY (LEO_STATUS_HEAD_RETRACTED) +#define LEO_STATUS_MODE_ACTIVE 0 + +#define LEO_CUR_TK_INDEX_LOCK 0x60000000 + +#define LEO_BM_STATUS_RUNNING 0x80000000 //Running +#define LEO_BM_STATUS_ERROR 0x04000000 //Error +#define LEO_BM_STATUS_MICRO 0x02000000 //Micro Status? +#define LEO_BM_STATUS_BLOCK 0x01000000 //Block Transfer +#define LEO_BM_STATUS_C1CORRECTION 0x00800000 //C1 Correction +#define LEO_BM_STATUS_C1DOUBLE 0x00400000 //C1 Double +#define LEO_BM_STATUS_C1SINGLE 0x00200000 //C1 Single +#define LEO_BM_STATUS_C1ERROR 0x00010000 //C1 Error + +#define LEO_BM_CTL_START 0x80000000 //Start Buffer Manager +#define LEO_BM_CTL_MODE 0x40000000 //Buffer Manager Mode +#define LEO_BM_CTL_IMASK 0x20000000 //BM Interrupt Mask +#define LEO_BM_CTL_RESET 0x10000000 //Buffer Manager Reset +#define LEO_BM_CTL_DISABLE_OR 0x08000000 //Disable OR Check? +#define LEO_BM_CTL_DISABLE_C1 0x04000000 //Disable C1 Correction +#define LEO_BM_CTL_BLOCK 0x02000000 //Block Transfer +#define LEO_BM_CTL_CLR_MECHANIC_INTR 0x01000000 //Mechanic Interrupt Reset + +#define LEO_BM_CTL_CONTROL_MASK 0xFF000000 +#define LEO_BM_CTL_SECTOR_MASK 0x00FF0000 +#define LEO_BM_CTL_SECTOR_SHIFT 16 + + +extern OSDevMgr __osPiDevMgr; +extern OSPiHandle* __osCurrentHandle[]; +extern u32 __osPiAccessQueueEnabled; + + void __osDevMgrMain(void* arg); void __osPiCreateAccessQueue(void); void __osPiRelAccess(void); 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/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/voiceinternal.h b/include/PR/voiceinternal.h new file mode 100644 index 0000000000..b7d6b7e850 --- /dev/null +++ b/include/PR/voiceinternal.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/variables.h b/include/variables.h index 1efcc2e900..4440635c45 100644 --- a/include/variables.h +++ b/include/variables.h @@ -23,43 +23,6 @@ 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[]; @@ -93,13 +56,7 @@ 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; diff --git a/src/libultra/io/contramread.c b/src/libultra/io/contramread.c index d993b47d76..a916236c0c 100644 --- a/src/libultra/io/contramread.c +++ b/src/libultra/io/contramread.c @@ -1,4 +1,5 @@ #include "global.h" +#include "PR/voiceinternal.h" #define BLOCKSIZE 32 diff --git a/src/libultra/io/contramwrite.c b/src/libultra/io/contramwrite.c index b2157a2a59..240b244f56 100644 --- a/src/libultra/io/contramwrite.c +++ b/src/libultra/io/contramwrite.c @@ -1,4 +1,5 @@ #include "ultra64.h" +#include "PR/voiceinternal.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..450e3967cf 100644 --- a/src/libultra/io/controller.c +++ b/src/libultra/io/controller.c @@ -1,6 +1,6 @@ #include "global.h" -UNK_TYPE4 D_80097E40 = 0; +UNK_TYPE4 __osContinitialized = 0; OSPifRam __osContPifRam; u8 __osContLastPoll; @@ -17,11 +17,11 @@ s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data) { OSTimer mytimer; OSMesgQueue timerMesgQueue; - if (D_80097E40 != 0) { + if (__osContinitialized != 0) { return 0; } - D_80097E40 = 1; + __osContinitialized = 1; t = osGetTime(); if (t < 0x165A0BC) { diff --git a/src/libultra/io/devmgr.c b/src/libultra/io/devmgr.c index c3bbfa1f71..94b7a19579 100644 --- a/src/libultra/io/devmgr.c +++ b/src/libultra/io/devmgr.c @@ -34,8 +34,8 @@ void __osDevMgrMain(void* arg) { } osRecvMesg(devMgr->acsQueue, &sp6C, OS_MESG_BLOCK); - __osResetGlobalIntMask(0x00100401); - __osEPiRawWriteIo(ioMesg->piHandle, 0x05000510, transfer->bmCtlShadow | 0x80000000); + __osResetGlobalIntMask(OS_IM_PI); + __osEPiRawWriteIo(ioMesg->piHandle, LEO_BM_CTL, transfer->bmCtlShadow | 0x80000000); label: osRecvMesg(devMgr->evtQueue, &sp70, OS_MESG_BLOCK); @@ -44,15 +44,15 @@ void __osDevMgrMain(void* arg) { if (block->errStatus == 0x1D) { u32 status; - __osEPiRawWriteIo(ioMesg->piHandle, 0x05000510, transfer->bmCtlShadow | 0x10000000); - __osEPiRawWriteIo(ioMesg->piHandle, 0x05000510, transfer->bmCtlShadow); - __osEPiRawReadIo(ioMesg->piHandle, 0x05000508, &status); - if (status & 0x02000000) { - __osEPiRawWriteIo(ioMesg->piHandle, 0x05000510, transfer->bmCtlShadow | 0x1000000); + __osEPiRawWriteIo(ioMesg->piHandle, LEO_BM_CTL, transfer->bmCtlShadow | LEO_BM_CTL_RESET); + __osEPiRawWriteIo(ioMesg->piHandle, LEO_BM_CTL, transfer->bmCtlShadow); + __osEPiRawReadIo(ioMesg->piHandle, LEO_STATUS, &status); + if (status & LEO_STATUS_MECHANIC_INTERRUPT) { + __osEPiRawWriteIo(ioMesg->piHandle, LEO_BM_CTL, transfer->bmCtlShadow | LEO_BM_CTL_CLR_MECHANIC_INTR); } block->errStatus = 4; HW_REG(PI_STATUS_REG, u32) = PI_STATUS_CLEAR_INTR; - __osSetGlobalIntMask(0x00100C01); + __osSetGlobalIntMask(OS_IM_PI | SR_IBIT4); } osSendMesg(ioMesg->hdr.retQueue, (OSMesg)ioMesg, OS_MESG_NOBLOCK); diff --git a/src/libultra/io/piacs.c b/src/libultra/io/piacs.c index 532b149e23..697ceec3d3 100644 --- a/src/libultra/io/piacs.c +++ b/src/libultra/io/piacs.c @@ -1,6 +1,6 @@ #include "global.h" -UNK_TYPE4 __osPiAccessQueueEnabled = 0; +u32 __osPiAccessQueueEnabled = 0; OSMesg D_8009E3F0[1]; OSMesgQueue __osPiAccessQueue; @@ -13,6 +13,7 @@ void __osPiCreateAccessQueue(void) { void __osPiGetAccess(void) { OSMesg dummyMesg; + if (!__osPiAccessQueueEnabled) { __osPiCreateAccessQueue(); } diff --git a/src/libultra/io/pimgr.c b/src/libultra/io/pimgr.c index 63cc7ba668..e3efeac097 100644 --- a/src/libultra/io/pimgr.c +++ b/src/libultra/io/pimgr.c @@ -8,6 +8,8 @@ STACK(sPiMgrStack, 0x1000); OSMesgQueue D_8009E3D0; OSMesg D_8009E3E8[1]; +// TODO: migrate data + void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) { u32 savedMask; OSPri oldPri; diff --git a/src/libultra/io/siacs.c b/src/libultra/io/siacs.c index 7a221408e5..8c514b606a 100644 --- a/src/libultra/io/siacs.c +++ b/src/libultra/io/siacs.c @@ -13,6 +13,7 @@ void __osSiCreateAccessQueue() { void __osSiGetAccess(void) { OSMesg dummyMesg; + if (!__osSiAccessQueueEnabled) { __osSiCreateAccessQueue(); } diff --git a/src/libultra/io/vi.c b/src/libultra/io/vi.c index ec0b1de700..5514672db7 100644 --- a/src/libultra/io/vi.c +++ b/src/libultra/io/vi.c @@ -1,17 +1,17 @@ #include "global.h" -__OSViContext D_80098060[2] = { 0 }; -__OSViContext* __osViCurr = &D_80098060[0]; -__OSViContext* __osViNext = &D_80098060[1]; +__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; - __osViCurr->buffer = (void*)0x80000000; + __osViNext->buffer = (void*)K0BASE; + __osViCurr->buffer = (void*)K0BASE; if (osTvType == OS_TV_PAL) { __osViNext->modep = &osViModePalLan1; diff --git a/src/libultra/os/initialize.c b/src/libultra/os/initialize.c index 241c0346eb..ce33a3a758 100644 --- a/src/libultra/os/initialize.c +++ b/src/libultra/os/initialize.c @@ -13,8 +13,8 @@ extern struct_exceptionPreamble __osExceptionPreamble; u64 osClockRate = OS_CLOCK_RATE; s32 osViClock = VI_NTSC_CLOCK; -UNK_TYPE4 __osShutdown = 0; -UNK_TYPE4 __OSGlobalIntMask = 0x003FFF01; +u32 __osShutdown = 0; +u32 __OSGlobalIntMask = OS_IM_ALL; UNK_TYPE4 D_8009CF70; diff --git a/src/libultra/os/resetglobalintmask.c b/src/libultra/os/resetglobalintmask.c index 6289a1d4cf..9dcbfcd3bb 100644 --- a/src/libultra/os/resetglobalintmask.c +++ b/src/libultra/os/resetglobalintmask.c @@ -3,6 +3,6 @@ void __osResetGlobalIntMask(OSHWIntr mask) { register s32 prevInt = __osDisableInt(); - __OSGlobalIntMask &= ~(mask & ~0x401); + __OSGlobalIntMask &= ~(mask & ~OS_IM_RCP); __osRestoreInt(prevInt); } diff --git a/src/libultra/os/seteventmesg.c b/src/libultra/os/seteventmesg.c index d5c8407f4e..1aa09f1af0 100644 --- a/src/libultra/os/seteventmesg.c +++ b/src/libultra/os/seteventmesg.c @@ -1,7 +1,7 @@ #include "global.h" #include "PR/osint.h" -UNK_TYPE4 D_80097F10 = 0; +u32 __osPreNMI = 0; __OSEventState __osEventStateTab[OS_NUM_EVENTS]; @@ -17,10 +17,10 @@ void osSetEventMesg(OSEvent e, OSMesgQueue* mq, OSMesg m) { es->message = m; if (e == 14) { - if ((__osShutdown != 0) && (D_80097F10 == 0)) { + if ((__osShutdown != 0) && (__osPreNMI == 0)) { osSendMesg(mq, m, OS_MESG_NOBLOCK); } - D_80097F10 = 1; + __osPreNMI = 1; } __osRestoreInt(saveMask); diff --git a/src/libultra/os/thread.c b/src/libultra/os/thread.c index ec655d64a6..6833a63c2e 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, -1}; OSThread* __osRunQueue = (OSThread*)&__osThreadTail; OSThread* __osActiveQueue = (OSThread*)&__osThreadTail; OSThread* __osRunningThread = NULL; diff --git a/src/libultra/rmon/xlitob.c b/src/libultra/rmon/xlitob.c index 70b9c32a45..34e9936e80 100644 --- a/src/libultra/rmon/xlitob.c +++ b/src/libultra/rmon/xlitob.c @@ -3,8 +3,8 @@ #define BUFF_LEN 0x18 -u8 ldigs[] = "0123456789abcdef"; -u8 udigs[] = "0123456789ABCDEF"; +char ldigs[] = "0123456789abcdef"; +char udigs[] = "0123456789ABCDEF"; void _Litob(_Pft* args, u8 type) { u8 buff[BUFF_LEN]; diff --git a/src/libultra/voice/voicecontread2.c b/src/libultra/voice/voicecontread2.c index 0f39ee3087..79812fe295 100644 --- a/src/libultra/voice/voicecontread2.c +++ b/src/libultra/voice/voicecontread2.c @@ -4,6 +4,7 @@ #include "PR/controller_voice.h" #include "PR/controller.h" +#include "PR/voiceinternal.h" #include "functions.h" #include "variables.h" diff --git a/src/libultra/voice/voicecontread36.c b/src/libultra/voice/voicecontread36.c index 9f23bf979d..a6d03c97c6 100644 --- a/src/libultra/voice/voicecontread36.c +++ b/src/libultra/voice/voicecontread36.c @@ -4,6 +4,7 @@ #include "PR/controller_voice.h" #include "PR/controller.h" +#include "PR/voiceinternal.h" #include "functions.h" #include "variables.h" diff --git a/src/libultra/voice/voicecontwrite20.c b/src/libultra/voice/voicecontwrite20.c index dd9d7e07f0..1dc734bf72 100644 --- a/src/libultra/voice/voicecontwrite20.c +++ b/src/libultra/voice/voicecontwrite20.c @@ -4,6 +4,7 @@ #include "PR/controller_voice.h" #include "PR/controller.h" +#include "PR/voiceinternal.h" #include "functions.h" #include "variables.h" diff --git a/src/libultra/voice/voicecontwrite4.c b/src/libultra/voice/voicecontwrite4.c index 103d3e798e..2092ade0c1 100644 --- a/src/libultra/voice/voicecontwrite4.c +++ b/src/libultra/voice/voicecontwrite4.c @@ -4,6 +4,7 @@ #include "PR/controller_voice.h" #include "PR/controller.h" +#include "PR/voiceinternal.h" #include "functions.h" #include "variables.h" diff --git a/src/libultra/voice/voicesetadconverter.c b/src/libultra/voice/voicesetadconverter.c index 55403dae6f..5167310055 100644 --- a/src/libultra/voice/voicesetadconverter.c +++ b/src/libultra/voice/voicesetadconverter.c @@ -4,6 +4,7 @@ #include "PR/controller_voice.h" #include "PR/controller.h" +#include "PR/voiceinternal.h" #include "functions.h" #include "variables.h" diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index 344a3ef65d..dbd1c18ecb 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -53,7 +53,7 @@ 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), @@ -257,8 +257,8 @@ 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),