Identified and organized libultra (#15)

* libultra sorted out

* missed some things

* forgot some things

* one more thing

* not actually libultra

* also split out the data into three sections

* finer split

* parameter is a thing, apparently
This commit is contained in:
petrie911
2023-11-02 18:36:13 -05:00
committed by GitHub
parent e072f198e3
commit f2af4867e4
79 changed files with 680 additions and 532 deletions
-93
View File
@@ -1,93 +0,0 @@
#include "global.h"
f32 func_8001FAB0(f32 x) {
return __sinf(x) / __cosf(x);
}
f32 func_8001FAE4(f32 x) {
return func_8001FE60(x);
}
f32 func_8001FB04(f32 x) {
return func_8001FE98(x);
}
f64 func_8001FB24(f64 x) {
return (x < 0.0) ? -x : x;
}
f32 func_8001FB58(f32 x) {
return (x < 0.0f) ? -x : x;
}
f32 func_8001FB88(f32 x) {
return func_8001FF40(x);
}
f32 func_8001FBA8(f32 x) {
return func_8001FED0(x);
}
f32 func_8001FBC8(f32 x) {
return func_8001FF08(x);
}
f32 Math_FAtanF(f32 x) {
s32 sector;
s32 i;
f32 sq;
f32 conv = 0.0f;
f32 z;
if (x > 1.0f) {
sector = 1;
x = 1.0f / x;
} else if (x < -1.0f) {
sector = -1;
x = 1.0f / x;
} else {
sector = 0;
}
sq = SQ(x);
for (z = i = 24; i != 0; i--) {
conv = SQ(z) * sq / (2.0f * z + 1.0f + conv);
z -= 1.0f;
}
if (sector > 0) {
return M_PI / 2 - (x / (1.0f + conv));
} else if (sector < 0) {
return -M_PI / 2 - (x / (1.0f + conv));
} else {
return x / (1.0f + conv);
}
}
f32 Math_FAtan2F(f32 y, f32 x) {
if ((y == 0.0f) && (x == 0.0f)) {
return 0.0f;
}
if (x == 0.0f) {
if (y < 0.0f) {
return -M_PI / 2;
}
return M_PI / 2;
}
if (x < 0.0f) {
if (y < 0.0f) {
return -(M_PI - Math_FAtanF(fabs(y / x)));
}
return M_PI - Math_FAtanF(fabs(y / x));
}
return Math_FAtanF(y / x);
}
f32 Math_FAsinF(f32 x) {
return Math_FAtan2F(x, sqrtf(1 - SQ(x)));
}
f32 Math_FAcosF(f32 x) {
return M_PI / 2.0f - Math_FAsinF(x);
}
-9
View File
@@ -1,9 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/28330/__osTimerServicesInit.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/28330/__osTimerInterrupt.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/28330/__osSetTimerIntr.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/28330/__osInsertTimer.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/28820/__osViGetCurrentContext.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/28B90/func_80027F90.s")
-7
View File
@@ -1,7 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/28C90/func_80028090.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/28C90/func_800280E0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/28C90/func_80028124.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/294F0/func_800288F0.s")
-5
View File
@@ -1,5 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/297E0/func_80028BE0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/297E0/func_80028C30.s")
-11
View File
@@ -1,11 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2A7A0/func_80029BA0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2A7A0/func_80029BF8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2A7A0/func_80029C6C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2A7A0/func_80029CD8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2A7A0/func_80029DA8.s")
-11
View File
@@ -1,11 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2AAB0/func_80029EB0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2AAB0/func_80029F80.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2AAB0/func_80029FF4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2AAB0/func_8002A044.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2AAB0/func_8002A0B0.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2AD80/func_8002A180.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2B830/func_8002AC30.s")
-5
View File
@@ -1,5 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BD50/func_8002B150.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BD50/func_8002B15C.s")
-33
View File
@@ -1,33 +0,0 @@
#include "common.h"
// OPTFLAGS := -O1 -g0
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B1F0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B238.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B28C.s")
void func_8002B2C0(s32* arg0, s32* arg1, s32 arg2) {
while (arg2--) {
*arg0++ = *arg1++;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B2F4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B330.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B52C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B778.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B7F8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/D_800C95E0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B804.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B8AC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2BDF0/func_8002B91C.s")
-49
View File
@@ -1,49 +0,0 @@
#include "global.h"
// OPTFLAGS := -O1 -g0
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002BB00.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002BB7C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002BBFC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002BD04.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002BE38.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002C12C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002C194.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002C2DC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002C570.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002C5BC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2C700/func_8002C698.s")
typedef struct {
/* 0x00 */ char pad_0[0x4];
/* 0x04 */ u8 unk4;
} Unkstruct_func_8002C6B8_1;
typedef struct {
/* 0x00 */ char pad_0[0x4];
/* 0x04 */ s8 unk4;
/* 0x05 */ char pad_5;
/* 0x06 */ s16 unk6;
/* 0x08 */ char pad_[0x4];
/* 0x12 */ s32 unk12;
} Unkstruct_func_8002C6B8_2;
s32 func_8002C6B8(Unkstruct_func_8002C6B8_1* arg0) {
Unkstruct_func_8002C6B8_2 temp;
temp.unk4 = arg0->unk4;
temp.unk12 = 0;
temp.unk6 = 0;
func_8002DE78(&temp, 16, 1);
return 0;
}
-49
View File
@@ -1,49 +0,0 @@
#include "global.h"
s32 func_8002B238(s32);
void func_8002C700(s32, s32);
void func_8002C818(s32);
void func_8002C8C0(s32);
s32 func_8002E340(void);
void func_8002E3A8(void);
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002C700.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002C784.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002C818.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002C8C0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002C968.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002CAC4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002CC14.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002CCCC.s")
s32 func_8002CD80(s32 arg0) {
s32 ret;
if (func_8002E340() != 0) {
return 0;
} else {
func_8002C818(0);
func_8002C700(0x2B, arg0);
func_8002E3A8();
ret = func_8002B238(0x04000000);
func_8002C8C0(0);
return ret;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002CDE4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002CF44.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002D054.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002D16C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2D300/func_8002D230.s")
-9
View File
@@ -1,9 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2E9E0/func_8002DDE0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2E9E0/func_8002DE78.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2E9E0/func_8002DF20.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2E9E0/func_8002E040.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2EDE0/func_8002E1E0.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/2EE30/func_8002E230.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/conteepprobe/osEepromProbe.s")
-5
View File
@@ -1,5 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/conteepread/osEepromRead.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/conteepread/func_800236A0.s")
-7
View File
@@ -1,7 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/conteepwrite/osEepromWrite.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/conteepwrite/func_80023960.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/conteepwrite/__osEepStatus.s")
+11
View File
@@ -0,0 +1,11 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/debug/kdebugserver/func_80029BA0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/debug/kdebugserver/func_80029BF8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/debug/kdebugserver/func_80029C6C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/debug/kdebugserver/func_80029CD8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/debug/kdebugserver/func_80029DA8.s")
+9
View File
@@ -0,0 +1,9 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/gu/mtxutil/guMtxF2L.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/gu/mtxutil/guMtxIdentF.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/gu/mtxutil/guMtxIdent.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/gu/mtxutil/guMtxL2F.s")
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/host/readhost/func_80029EB0.s")
+50
View File
@@ -0,0 +1,50 @@
#include "global.h"
#ifdef NON_MATCHING // needs data import
s32 osAiSetNextBuffer(void* bufPtr, u32 size) {
static u8 hdwrBugFlag = FALSE;
char* bptr;
#if BUILD_VERSION >= VERSION_J
if (__osAiDeviceBusy()) {
return -1;
}
#endif
#ifdef _DEBUG
if ((u32) bufPtr & (8 - 1)) {
__osError(ERR_OSAISETNEXTBUFFER_ADDR, 1, bufPtr);
return -1;
}
if ((u32) size & (8 - 1)) {
__osError(ERR_OSAISETNEXTBUFFER_SIZE, 1, size);
return -1;
}
#endif
bptr = bufPtr;
if (hdwrBugFlag) {
bptr = (u8*) bufPtr - 0x2000;
}
if ((((u32) bufPtr + size) & 0x3fff) == 0x2000) {
hdwrBugFlag = TRUE;
} else {
hdwrBugFlag = FALSE;
}
#if BUILD_VERSION < VERSION_J
if (__osAiDeviceBusy()) {
return -1;
}
#endif
IO_WRITE(AI_DRAM_ADDR_REG, osVirtualToPhysical(bptr));
IO_WRITE(AI_LEN_REG, size);
return 0;
}
#else
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/aisetnextbuf/osAiSetNextBuffer.s")
#endif
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/cartrominit/osCartRomInit.s")
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/conteepprobe/osEepromProbe.s")
+5
View File
@@ -0,0 +1,5 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/conteepread/osEepromRead.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/conteepread/func_800236A0.s")
+7
View File
@@ -0,0 +1,7 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/conteepwrite/osEepromWrite.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/conteepwrite/func_80023960.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/conteepwrite/__osEepStatus.s")
+9
View File
@@ -0,0 +1,9 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/contramwrite/__osContRamWrite.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/contramwrite/func_800267C4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/contramwrite/__osContRamRead.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/contramwrite/func_80026B5C.s")
+1
View File
@@ -1,5 +1,6 @@
#include "global.h"
#include "PR/controller.h"
#include "siint.h"
extern s32 __osContinitialized;
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/leodiskinit/func_80027F90.s")
+7
View File
@@ -0,0 +1,7 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/leointerrupt/__osLeoInterrupt.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/leointerrupt/func_8002A8B4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/leointerrupt/func_8002A99C.s")
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/pfsgetstatus/func_8002AC30.s")
+7
View File
@@ -0,0 +1,7 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/piacs/__osPiCreateAccessQueue.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/piacs/__osPiGetAccess.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/piacs/__osPiRelAccess.s")
+1
View File
@@ -1,4 +1,5 @@
#include "global.h"
#include "piint.h"
s32 osPiStartDma(OSIoMesg* mb, s32 pri, s32 rw, u32 devAddr, void* dramAddr, u32 size, OSMesgQueue* piHandle) {
register s32 result;
+93
View File
@@ -0,0 +1,93 @@
#include "global.h"
#include "piint.h"
#include "PR/rdb.h"
void ramromMain(void* /*arg*/);
extern OSMesgQueue* D_800C7DF0;
extern char piEventBuf[];
extern OSMesgQueue piEventQueue;
extern OSThread piThread;
extern char piThreadStack[];
extern OSThread ramromThread;
extern char ramromThreadStack[];
#ifdef NON_MATCHING
OSDevMgr __osPiDevMgr = { 0 };
void osCreatePiMgr(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) {
u32 savedMask;
OSPri oldPri;
OSPri myPri;
if (__osPiDevMgr.active) {
return;
}
osCreateMesgQueue(cmdQ, cmdBuf, cmdMsgCnt);
osCreateMesgQueue(&piEventQueue, (OSMesg*) piEventBuf, 1);
if (!__osPiAccessQueueEnabled) {
__osPiCreateAccessQueue();
}
osSetEventMesg(OS_EVENT_PI, &piEventQueue, (OSMesg) 0x22222222);
oldPri = -1;
myPri = osGetThreadPri(NULL);
if (myPri < pri) {
oldPri = myPri;
osSetThreadPri(NULL, pri);
}
savedMask = __osDisableInt();
__osPiDevMgr.active = 1;
__osPiDevMgr.thread = &piThread;
__osPiDevMgr.cmdQueue = cmdQ;
__osPiDevMgr.evtQueue = &piEventQueue;
__osPiDevMgr.acsQueue = &__osPiAccessQueue;
__osPiDevMgr.dma = __osPiRawStartDma;
__osPiDevMgr.edma = __osEPiRawStartDma;
osCreateThread(&piThread, 0, __osDevMgrMain, &__osPiDevMgr, &piThreadStack[OS_PIM_STACKSIZE], pri);
osStartThread(&piThread);
osCreateThread(&ramromThread, 0, ramromMain, NULL, &ramromThreadStack[1024], (OSPri) pri - 1);
osStartThread(&ramromThread);
__osRestoreInt(savedMask);
if (oldPri != -1) {
osSetThreadPri(NULL, oldPri);
}
}
#else
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/pimgr/osCreatePiMgr.s")
#endif
extern char freeRamromBuf[];
extern OSMesgQueue freeRamromQ;
extern char getRamromBuf[];
extern OSMesgQueue getRamromQ;
void ramromMain(void* arg) {
u32 sent;
u8 tmp[3];
osCreateMesgQueue(&getRamromQ, getRamromBuf, 1);
osCreateMesgQueue(&freeRamromQ, freeRamromBuf, 1);
osSetEventMesg(18 /*OS_EVENT_RDB_REQ_RAMROM*/, &getRamromQ, NULL);
osSetEventMesg(19 /*OS_EVENT_RDB_FREE_RAMROM*/, &freeRamromQ, NULL);
while (TRUE) {
osRecvMesg(&getRamromQ, NULL, OS_MESG_BLOCK);
__osPiGetAccess();
sent = 0;
while (sent < 1) {
sent += __osRdbSend(tmp, 1, RDB_TYPE_GtoH_RAMROM);
}
osRecvMesg(&freeRamromQ, NULL, OS_MESG_BLOCK);
__osPiRelAccess();
}
}
+7
View File
@@ -0,0 +1,7 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/siacs/__osSiCreateAccessQueue.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/siacs/__osSiGetAccess.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/siacs/__osSiRelAccess.s")
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/sirawread/func_80028BE0.s")
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/sirawwrite/func_80028C30.s")
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/sprawread/func_8002E230.s")
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/sprawwrite/func_8002E1E0.s")
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/vigetcurrcontext/__osViGetCurrentContext.s")
-7
View File
@@ -1,7 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/leointerrupt/__osLeoInterrupt.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/leointerrupt/func_8002A8B4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/leointerrupt/func_8002A99C.s")
+9
View File
@@ -0,0 +1,9 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/xldtob/func_80029080.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/xldtob/D_800C9580.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/xldtob/_Ldtob.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/xldtob/D_800C95D0.s")
+5
View File
@@ -0,0 +1,5 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/xprintf/_Putfld.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/xprintf/_Printf.s")
-9
View File
@@ -1,9 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/mtxutil/guMtxF2L.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/mtxutil/guMtxIdentF.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/mtxutil/guMtxIdent.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/mtxutil/guMtxL2F.s")
+6
View File
@@ -0,0 +1,6 @@
#include "PR/os_internal.h"
#include "osint.h"
OSThread* __osGetActiveQueue(void) {
return __osActiveQueue;
}
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/os/initialize/osInitialize.s")
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/os/initrdb/func_8002A180.s")
+3
View File
@@ -0,0 +1,3 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/os/rdbsend/__osRdbSend.s")
+9
View File
@@ -0,0 +1,9 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/os/timerintr/__osTimerServicesInit.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/os/timerintr/__osTimerInterrupt.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/os/timerintr/__osSetTimerIntr.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/os/timerintr/__osInsertTimer.s")
+29
View File
@@ -0,0 +1,29 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002D300.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002D3AC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002D494.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002D654.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002D660.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002D7BC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002D9E4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002DA78.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002DB3C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002DB7C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002DC38.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002DC68.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002DCD0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonbrk/func_8002DD00.s")
+5
View File
@@ -0,0 +1,5 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmoncmds/func_8002B150.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmoncmds/func_8002B15C.s")
+9
View File
@@ -0,0 +1,9 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmain/func_8002DDE0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmain/func_8002DE78.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmain/func_8002DF20.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmain/func_8002E040.s")
+31
View File
@@ -0,0 +1,31 @@
#include "global.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B1F0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B238.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B28C.s")
void func_8002B2C0(s32* arg0, s32* arg1, s32 arg2) {
while (arg2--) {
*arg0++ = *arg1++;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B2F4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B330.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B52C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B778.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B7F8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/D_800C9660.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B804.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B8AC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonmem/func_8002B91C.s")
+49
View File
@@ -0,0 +1,49 @@
#include "global.h"
s32 func_8002B238(s32);
void func_8002C700(s32, s32);
void func_8002C818(s32);
void func_8002C8C0(s32);
s32 func_8002E340(void);
void func_8002E3A8(void);
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002C700.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002C784.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002C818.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002C8C0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002C968.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002CAC4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002CC14.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002CCCC.s")
s32 func_8002CD80(s32 arg0) {
s32 ret;
if (func_8002E340() != 0) {
return 0;
} else {
func_8002C818(0);
func_8002C700(0x2B, arg0);
func_8002E3A8();
ret = func_8002B238(0x04000000);
func_8002C8C0(0);
return ret;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002CDE4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002CF44.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002D054.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002D16C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonregs/func_8002D230.s")
+9
View File
@@ -0,0 +1,9 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonsio/func_80029F80.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonsio/func_80029FF4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonsio/func_8002A044.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmonsio/func_8002A0B0.s")
+47
View File
@@ -0,0 +1,47 @@
#include "global.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002BB00.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002BB7C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002BBFC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002BD04.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002BE38.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002C12C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002C194.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002C2DC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002C570.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002C5BC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/rmontask/func_8002C698.s")
typedef struct {
/* 0x00 */ char pad_0[0x4];
/* 0x04 */ u8 unk4;
} Unkstruct_func_8002C6B8_1;
typedef struct {
/* 0x00 */ char pad_0[0x4];
/* 0x04 */ s8 unk4;
/* 0x05 */ char pad_5;
/* 0x06 */ s16 unk6;
/* 0x08 */ char pad_[0x4];
/* 0x12 */ s32 unk12;
} Unkstruct_func_8002C6B8_2;
s32 func_8002C6B8(Unkstruct_func_8002C6B8_1* arg0) {
Unkstruct_func_8002C6B8_2 temp;
temp.unk4 = arg0->unk4;
temp.unk12 = 0;
temp.unk6 = 0;
func_8002DE78(&temp, 16, 1);
return 0;
}
-9
View File
@@ -1,9 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/xldtob/func_80029080.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/xldtob/D_800C9580.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/xldtob/_Ldtob.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/rmon/xldtob/D_800C95D0.s")
-5
View File
@@ -1,5 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/233A0/func_800227A0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/233A0/func_8002296C.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/23760/func_80022B60.s")
-7
View File
@@ -1,7 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/24C60/func_80024060.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/24C60/_Printf.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/24C60/D_800C93EC.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/25950/func_80024D50.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/25AC0/func_80024EC0.s")
-3
View File
@@ -1,3 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/25CA0/osAiSetNextBuffer.s")
-7
View File
@@ -1,7 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/25E10/__osSiCreateAccessQueue.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/25E10/__osSiGetAccess.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/25E10/__osSiRelAccess.s")
-9
View File
@@ -1,9 +0,0 @@
#include "common.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/271C0/__osContRamWrite.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/271C0/func_800267C4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/271C0/__osContRamRead.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/271C0/func_80026B5C.s")
-31
View File
@@ -1,31 +0,0 @@
#define _MIPS_SZLONG 32
#include "global.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002D300.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002D3AC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002D494.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002D654.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002D660.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002D7BC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002D9E4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002DA78.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002DB3C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002DB7C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002DC38.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002DC68.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002DCD0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/2DF00/func_8002DD00.s")
+2 -2
View File
@@ -42,7 +42,7 @@ void func_80004D00(void* arg0) {
osCreateViManager(254);
func_80003EE0();
func_800034E8(1);
func_800227A0(150, &D_800E2010, &D_800E2028, 50);
osCreatePiMgr(150, &D_800E2010, &D_800E2028, 50);
osCreateThread(&D_8013A040, 3, &func_80004ABC, arg0, &D_8013B1F0, 100);
osStartThread(&D_8013A040);
func_80008018();
@@ -53,7 +53,7 @@ loop_1:
void bootproc(void) {
func_8001EF10();
func_80022B60();
osInitialize();
func_80003A50();
osCreateThread(&D_80138E90, 1, &func_80004D00, 0, &D_8013A040, 255);
osStartThread(&D_80138E90);
+81 -13
View File
@@ -1,25 +1,93 @@
#include "common.h"
#include "global.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/func_8001FAB0.s")
f32 func_8001FAB0(f32 x) {
return __sinf(x) / __cosf(x);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/func_8001FAE4.s")
f32 func_8001FAE4(f32 x) {
return func_8001FE60(x);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/func_8001FB04.s")
f32 func_8001FB04(f32 x) {
return func_8001FE98(x);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/func_8001FB24.s")
f64 func_8001FB24(f64 x) {
return (x < 0.0) ? -x : x;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/func_8001FB58.s")
f32 func_8001FB58(f32 x) {
return (x < 0.0f) ? -x : x;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/func_8001FB88.s")
f32 func_8001FB88(f32 x) {
return func_8001FF40(x);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/func_8001FBA8.s")
f32 func_8001FBA8(f32 x) {
return func_8001FED0(x);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/func_8001FBC8.s")
f32 func_8001FBC8(f32 x) {
return func_8001FF08(x);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/Math_FAtanF.s")
f32 Math_FAtanF(f32 x) {
s32 sector;
s32 i;
f32 sq;
f32 conv = 0.0f;
f32 z;
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/Math_FAtan2F.s")
if (x > 1.0f) {
sector = 1;
x = 1.0f / x;
} else if (x < -1.0f) {
sector = -1;
x = 1.0f / x;
} else {
sector = 0;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/Math_FAsinF.s")
sq = SQ(x);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/math64/Math_FAcosF.s")
for (z = i = 24; i != 0; i--) {
conv = SQ(z) * sq / (2.0f * z + 1.0f + conv);
z -= 1.0f;
}
if (sector > 0) {
return M_PI / 2 - (x / (1.0f + conv));
} else if (sector < 0) {
return -M_PI / 2 - (x / (1.0f + conv));
} else {
return x / (1.0f + conv);
}
}
f32 Math_FAtan2F(f32 y, f32 x) {
if ((y == 0.0f) && (x == 0.0f)) {
return 0.0f;
}
if (x == 0.0f) {
if (y < 0.0f) {
return -M_PI / 2;
}
return M_PI / 2;
}
if (x < 0.0f) {
if (y < 0.0f) {
return -(M_PI - Math_FAtanF(fabs(y / x)));
}
return M_PI - Math_FAtanF(fabs(y / x));
}
return Math_FAtanF(y / x);
}
f32 Math_FAsinF(f32 x) {
return Math_FAtan2F(x, sqrtf(1 - SQ(x)));
}
f32 Math_FAcosF(f32 x) {
return M_PI / 2.0f - Math_FAsinF(x);
}