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
+19 -13
View File
@@ -187,33 +187,39 @@ $(shell mkdir -p $(BUILD_DIR)/linker_scripts/$(VERSION) $(BUILD_DIR)/linker_scri
# directory flags
# per-file flags
build/src/libultra/206B0.o: OPTFLAGS := -O2 -g0
build/src/libultra/rmon/sprintf.o: OPTFLAGS := -O2 -g0
build/src/libultra/libc/string.o: OPTFLAGS := -O2 -g0
build/src/libultra/libc/ldiv.o: OPTFLAGS := -O2 -g0
build/src/libultra/rmon/xlitob.o: OPTFLAGS := -O2 -g0
build/src/libultra/2BDF0.o: OPTFLAGS := -O1 -g0
build/src/libultra/2C700.o: OPTFLAGS := -O1 -g0
build/src/libultra/2D300.o: OPTFLAGS := -O1 -g0
build/src/libultra/io/pidma.o: OPTFLAGS := -O1 -g0
build/src/main/1EB50.o: OPTFLAGS := -O1 -g0
build/src/libultra/os/stopthread.o: OPTFLAGS := -O1 -g0
build/src/libultra/gu/guSqrtf.o: OPTFLAGS := -O1 -g0
build/src/main/sprintf.o: OPTFLAGS := -O2 -g0
build/src/main/math64.o: OPTFLAGS := -O2 -g0
build/src/libultra/gu/sqrtf.o: OPTFLAGS := -O3 -g0
build/src/libultra/gu/ortho.o: OPTFLAGS := -O3 -g0
build/src/libultra/gu/lookat.o: OPTFLAGS := -O3 -g0
build/src/libultra/io/pidma.o: OPTFLAGS := -O1 -g0
build/src/libultra/io/aisetnextbuf.o: OPTFLAGS := -O1 -g0
build/src/libultra/io/pimgr.o: OPTFLAGS := -O1 -g0
build/src/libultra/io/motor.o: OPTFLAGS := -O1 -g0
build/src/libultra/io/controller.o: OPTFLAGS := -O1 -g0
build/src/libultra/io/ai.o: OPTFLAGS := -O1 -g0
build/src/libultra/io/aigetlen.o: OPTFLAGS := -O1 -g0
build/src/libultra/io/aisetfreq.o: OPTFLAGS := -O1 -g0
build/src/libultra/libc/ldiv.o: OPTFLAGS := -O2 -g0
build/src/libultra/libc/string.o: OPTFLAGS := -O2 -g0
build/src/libultra/libc/xlitob.o: OPTFLAGS := -O2 -g0
build/src/libultra/libc/ll.o: OPTFLAGS := -O1 -g0
build/src/libultra/libc/ll.o: MIPS_VERSION := -mips3 -32
build/src/libultra/os/getactivequeue.o: OPTFLAGS := -O1 -g0
build/src/libultra/os/stopthread.o: OPTFLAGS := -O1 -g0
build/src/libultra/rmon/rmonmem.o: OPTFLAGS := -O1 -g0
build/src/libultra/rmon/rmontask.o: OPTFLAGS := -O1 -g0
build/src/libultra/rmon/rmonregs.o: OPTFLAGS := -O1 -g0
# cc & asm-processor
CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(IDO) -- $(AS) $(ASFLAGS) --
build/src/libultra/gu/sqrtf.o: CC := $(IDO)
build/src/libultra/gu/lookat.o: CC := $(IDO)
build/src/libultra/gu/ortho.o: CC := $(IDO)
build/src/libultra/libc/ll.o: CC := $(IDO)
+1 -7
View File
@@ -76,9 +76,7 @@ f32 Math_FAtan2F(f32, f32);
f32 Math_FAsinF(f32);
f32 Math_FAcosF(f32);
void func_800227A0(s32, OSMesgQueue*, OSMesg*, s32);
s32 func_80022B60(void);
void osCreatePiMgr(s32, OSMesgQueue*, OSMesg*, s32);
f32 __sinf(f32);
f32 __cosf(f32);
@@ -87,10 +85,6 @@ s64 __ull_div(s64, s64);
s64 __ll_mul(s64, s64);
s64 __ll_rshift(s64, s64);
void __osSiCreateAccessQueue(void);
OSMesgQueue* osPiGetCmdQueue(void);
s32 func_8002DE78(void*, s32, s32); // Not real signature
void func_80060FBC(u8*, f32*);
+1
View File
@@ -30,6 +30,7 @@ D_800D55E4_fake = 0x800D55E4; // force_migration:True
D_800D8570 = 0x800D8570; // force_migration:True
D_800D8594 = 0x800D8594; // force_migration:True
D_800C9524 = 0x800C9524; // force_migration:True
D_800C93EC = 0x800C93EC; // force_migration:True
D_8019B1EC_E07F2C = 0x8019B1EC; // force_migration:True segment:segment_DF4260
D_801C171C_E50E4C = 0x801C171C; // force_migration:True segment:segment_E16C50
@@ -34,7 +34,10 @@ osDpSetStatus = 0x80022190;
osCreateThread = 0x800221A0;
osStartThread = 0x800222F0;
osCreateViManager = 0x80022440;
osCreatePiMgr = 0x800227A0;
ramromMain = 0x8002296C;
osSetThreadPri = 0x80022A80;
osInitialize = 0x80022B60;
osGetTime = 0x80023000;
__sinf = 0x80023090;
__cosf = 0x80023250;
@@ -57,9 +60,12 @@ osEepromProbe = 0x80023F50;
memcpy = 0x80023FC0;
strlen = 0x80023FEC;
strchr = 0x80024014;
_Putfld = 0x80024060;
_Printf = 0x800246D0;
osSetTime = 0x80024D20;
__osGetActiveQueue = 0x80024D50;
osAiSetFrequency = 0x80024D60;
osCartRomInit = 0x80024EC0;
osEPiStartDma = 0x80024FB0;
osAiGetLength = 0x80025090;
osAiSetNextBuffer = 0x800250A0;
@@ -105,9 +111,13 @@ __osInsertTimer = 0x80027A74;
osGetThreadPri = 0x80027C00;
__osViGetCurrentContext = 0x80027C20;
__osViSwapContext = 0x80027C30;
__osPiCreateAccessQueue = 0x80028090;
__osPiGetAccess = 0x800280E0;
__osPiRelAccess = 0x80028124;
osPiRawStartDma = 0x80028150;
osEPiRawStartDma = 0x80028230;
__osDevMgrMain = 0x80028460;
__osRdbSend = 0x800288F0;
__osSetSR = 0x80028BB0;
__osGetSR = 0x80028BC0;
__osSetFpcCsr = 0x80028BD0;
@@ -149,6 +159,7 @@ __osRunningThread = 0x800C7EB0;
__osViCurr = 0x800C7F40;
__osViNext = 0x800C7F44;
__osTimerList = 0x800C7F50;
__osPiAccessQueueEnabled = 0x800C7F60;
ldigs = 0x800C7F80;
udigs = 0x800C7F94;
__osRcpImTable = 0x800E95E0;
@@ -163,6 +174,17 @@ _MotorStopData = 0x801566B0;
_MotorStartData = 0x801567B0;
_motorstopbuf= 0x801568B0;
_motorstartbuf = 0x801568D0;
piThread = 0x80157C10;
piThreadStack = 0x80157DC0;
ramromThread = 0x80158DC0;
ramromThreadStack = 0x80158F70;
getRamromQ = 0x80159370;
getRamromBuf= 0x80159388;
freeRamromQ = 0x80159390;
freeRamromBuf = 0x801593A8;
piEventQueue = 0x801593B0;
piEventBuf = 0x801593C8;
__osPiAccessQueue = 0x801595E8;
__osEepPifRam = 0x801793E0;
__osCurrentTime = 0x80179520;
__osBaseCounter = 0x80179528;
-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);
}
+100 -84
View File
@@ -5,33 +5,36 @@
vram: 0x80000450
bss_size: 0x9B1F0
subsegments:
- [0x1050, textbin]
- [0x1270, textbin]
- [0x3440, c, 3440]
- [0x3A80, c, 3A80]
- [0x41D0, c, 41D0]
- [0x4650, c, 4650]
- [0x5A20, c, 5A20] # -O2 -g3
- [0x6280, c, 6280] # -O2 -g3
- [0x7B20, c, 7B20]
- [0x7D30, c, 7D30]
- [0x7FC0, c, 7FC0]
- [0x8CC0, c, 8CC0]
- [0xC870, c, C870]
- [0xF0A0, c, F0A0]
# Microcode
- [0x01050, textbin, rspboot]
- [0x01120, textbin, aspmain]
- [0x02010, textbin, f3dex]
# Nintendo libraries
- [0x03440, c, 3440]
- [0x03A80, c, 3A80]
- [0x041D0, c, 41D0]
- [0x04650, c, 4650]
- [0x05A20, c, 5A20]
- [0x06280, c, 6280]
- [0x07B20, c, 7B20]
- [0x07D30, c, 7D30]
- [0x07FC0, c, 7FC0]
- [0x08CC0, c, 8CC0]
- [0x0C870, c, C870]
- [0x0F0A0, c, F0A0]
- [0x12490, c, 12490]
- [0x14AA0, c, 14AA0]
- [0x17650, c, 17650] # Sound related
- [0x1EB50, c, 1EB50] # Audio Thread
- [0x1FA60, c]
- [0x1FA70, hasm]
- [0x1FB10, hasm]
- [0x205E0, c, ../libultra/rmon/sprintf]
- [0x206B0, c, math64] # math64
- [0x20A60, hasm, fp.text] # fp.text.s
- [0x1FA60, c, 1FA60]
- [0x1FA70, hasm, decompress] # May be blanked out osDriveRomInit
- [0x1FB10, hasm, rdramcheck]
- [0x205E0, c, sprintf]
- [0x206B0, c, math64]
- [0x20A60, hasm, fp.text]
# LIBULTRA
# Libultra
- [0x20BC0, c, ../libultra/io/controller]
- [0x20F80, c, ../libultra/io/contreaddata]
- [0x211E0, c, ../libultra/os/recvmesg]
@@ -45,10 +48,10 @@
- [0x22340, hasm, ../libultra/os/invaldcache]
- [0x223F0, c, ../libultra/io/pidma]
- [0x22500, c, ../libultra/io/viblack]
- [0x22570, hasm, writebackdcacheall]
- [0x22570, hasm, ../libultra/os/writebackdcacheall]
- [0x225A0, c, ../libultra/io/viswapbuf]
- [0x225F0, c, ../libultra/io/virepeatline]
- [0x22660, hasm] # padding
- [0x22660, hasm, ../libultra/os/parameter]
- [0x226C0, c, ../libultra/io/visetmode]
- [0x22730, c, ../libultra/io/visetspecial]
- [0x228F0, c, ../libultra/os/createmesgqueue]
@@ -61,93 +64,95 @@
- [0x22DA0, c, ../libultra/os/createthread]
- [0x22EF0, c, ../libultra/os/startthread]
- [0x23040, c, ../libultra/io/vimgr]
- [0x233A0, c]
- [0x233A0, c, ../libultra/io/pimgr]
- [0x23680, c, ../libultra/os/setthreadpri]
- [0x23760, c]
- [0x23760, c, ../libultra/os/initialize]
- [0x23C00, c, ../libultra/os/gettime]
- [0x23C90, c, ../libultra/gu/sinf]
- [0x23E50, c, ../libultra/gu/cosf]
- [0x23FC0, c, ../libultra/gu/guSqrtf]
- [0x23FC0, c, ../libultra/gu/sqrtf]
- [0x23FD0, c, ../libultra/os/settimer]
- [0x240B0, c, ../libultra/conteepread]
- [0x243B0, c, ../libultra/conteepwrite]
- [0x240B0, c, ../libultra/io/conteepread]
- [0x243B0, c, ../libultra/io/conteepwrite]
- [0x24890, c, ../libultra/libc/ll]
- [0x24B50, c, ../libultra/conteepprobe]
- [0x24B50, c, ../libultra/io/conteepprobe]
- [0x24BC0, c, ../libultra/libc/string]
- [0x24C60, c, 24C60]
- [0x24C60, c, ../libultra/libc/xprintf]
- [0x25920, c, ../libultra/os/settime]
- [0x25950, c]
- [0x25950, c, ../libultra/os/getactivequeue]
- [0x25960, c, ../libultra/io/aisetfreq]
- [0x25AC0, c]
- [0x25AC0, c, ../libultra/io/cartrominit]
- [0x25BB0, c, ../libultra/io/epidma]
- [0x25C90, c, ../libultra/io/aigetlen]
- [0x25CA0, c]
- [0x25D50, hasm, getcount]
- [0x25CA0, c, ../libultra/io/aisetnextbuf]
- [0x25D50, hasm, ../libultra/os/getcount]
- [0x25D60, c, ../libultra/io/sirawdma]
- [0x25E10, c]
- [0x25ED0, hasm, interrupt]
- [0x25E10, c, ../libultra/io/siacs]
- [0x25ED0, hasm, ../libultra/os/interrupt]
- [0x25F10, c, ../libultra/os/thread]
- [0x25F50, hasm]
- [0x25F50, hasm, ../libultra/os/exceptasm]
- [0x26CD0, c, ../libultra/io/pfsisplug]
- [0x27040, c, ../libultra/io/crc]
- [0x271C0, c]
- [0x278D0, c, ../libultra/mtxutil]
- [0x271C0, c, ../libultra/io/contramwrite]
- [0x278D0, c, ../libultra/gu/mtxutil]
- [0x27B40, c, ../libultra/os/jammesg]
- [0x27C90, c, ../libultra/io/pigetcmdq]
- [0x27CC0, c, ../libultra/io/vi]
- [0x27E00, c, ../libultra/io/spgetstat]
- [0x27E10, c, ../libultra/io/spsetstat]
- [0x27E20, hasm, ../libultra/bcopy]
- [0x27E20, hasm, ../libultra/libc/bcopy]
- [0x28130, c, ../libultra/os/virtualtophysical]
- [0x281B0, hasm, writebackdcache]
- [0x281B0, hasm, ../libultra/os/writebackdcache]
- [0x28230, c, ../libultra/io/spsetpc]
- [0x28270, c, ../libultra/io/sprawdma]
- [0x28300, c, ../libultra/io/sp]
- [0x28330, c, ../libultra/28330]
- [0x28330, c, ../libultra/os/timerintr]
- [0x28800, c, ../libultra/os/getthreadpri]
- [0x28820, c, ../libultra/28820]
- [0x28820, c, ../libultra/io/vigetcurrcontext]
- [0x28830, c, ../libultra/io/viswapcontext]
- [0x28B90, c, ../libultra/28B90]
- [0x28C90, c, ../libultra/28C90]
- [0x28B90, c, ../libultra/io/leodiskinit]
- [0x28C90, c, ../libultra/io/piacs]
- [0x28D50, c, ../libultra/io/pirawdma]
- [0x28E30, c, ../libultra/io/epirawdma]
- [0x29060, c, ../libultra/io/devmgr]
- [0x294F0, c, ../libultra/294F0]
- [0x297B0, hasm, ../libultra/setsr]
- [0x297C0, hasm, ../libultra/getsr]
- [0x297D0, hasm, ../libultra/setfpccsr]
- [0x297E0, c, ../libultra/297E0]
- [0x29880, hasm, ../libultra/maptlbrdb]
- [0x294F0, c, ../libultra/os/rdbsend]
- [0x297B0, hasm, ../libultra/os/setsr]
- [0x297C0, hasm, ../libultra/os/getsr]
- [0x297D0, hasm, ../libultra/os/setfpccsr]
- [0x297E0, c, ../libultra/io/sirawread]
- [0x29830, c, ../libultra/io/sirawwrite]
- [0x29880, hasm, ../libultra/os/maptlbrdb]
- [0x298E0, c, ../libultra/io/pirawread]
- [0x29940, hasm, ../libultra/bzero]
- [0x299E0, c, ../libultra/rmon/xlitob]
- [0x29C80, c, ../libultra/rmon/xldtob]
- [0x29940, hasm, ../libultra/libc/bzero]
- [0x299E0, c, ../libultra/libc/xlitob]
- [0x29C80, c, ../libultra/libc/xldtob]
- [0x2A740, c, ../libultra/io/ai]
- [0x2A770, c, ../libultra/io/si]
- [0x2A7A0, c, ../libultra/2A7A0]
- [0x2AAB0, c, ../libultra/2AAB0]
- [0x2AD80, c, ../libultra/2AD80]
- [0x2AE10, c, ../libultra/leointerrupt]
- [0x2B690, hasm, ../libultra/setintmask]
- [0x2A7A0, c, ../libultra/debug/kdebugserver]
- [0x2AAB0, c, ../libultra/host/readhost]
- [0x2AB80, c, ../libultra/rmon/rmonsio]
- [0x2AD80, c, ../libultra/os/initrdb]
- [0x2AE10, c, ../libultra/io/leointerrupt]
- [0x2B690, hasm, ../libultra/os/setintmask]
- [0x2B730, c, ../libultra/os/destroythread]
- [0x2B830, c, ../libultra/2B830]
- [0x2B940, hasm, ../libultra/probetlb]
- [0x2BA00, hasm, ../libultra/setcompare]
- [0x2B830, c, ../libultra/io/pfsgetstatus]
- [0x2B940, hasm, ../libultra/os/probetlb]
- [0x2BA00, hasm, ../libultra/os/setcompare]
- [0x2BA10, c, ../libultra/os/resetglobalintmask]
- [0x2BA70, c, ../libultra/io/epirawwrite]
- [0x2BAC0, c, ../libultra/io/epirawread]
- [0x2BB10, c, ../libultra/os/setglobalintmask]
- [0x2BB60, c, ../libultra/os/yieldthread]
- [0x2BBB0, c, ../libultra/libc/ldiv]
- [0x2BD40, hasm, ../libultra/getcause]
- [0x2BD50, c, ../libultra/2BD50]
- [0x2BDF0, c, ../libultra/2BDF0]
- [0x2C700, c, ../libultra/2C700] # -O1 -g0
- [0x2D300, c, ../libultra/2D300] # -O1 -g0
- [0x2DF00, c, 2DF00]
- [0x2E9E0, c, ../libultra/2E9E0]
- [0x2EDE0, c, ../libultra/2EDE0]
- [0x2EE30, c, ../libultra/2EE30]
- [0x2BD40, hasm, ../libultra/os/getcause]
- [0x2BD50, c, ../libultra/rmon/rmoncmds]
- [0x2BDF0, c, ../libultra/rmon/rmonmem]
- [0x2C700, c, ../libultra/rmon/rmontask]
- [0x2D300, c, ../libultra/rmon/rmonregs]
- [0x2DF00, c, ../libultra/rmon/rmonbrk]
- [0x2E9E0, c, ../libultra/rmon/rmonmain]
- [0x2EDE0, c, ../libultra/io/sprawwrite]
- [0x2EE30, c, ../libultra/io/sprawread]
- [0x2EE80, c, ../libultra/os/stopthread]
- [0x2EF40, hasm, ../libultra/rmon/rmonrcp]
@@ -160,7 +165,7 @@
- [0x496C0, c, sf_496C0]
- [0x52730, c, sf_52730]
- [0x59780, c, sf_59780]
- [0x5A2C0, c, sf_5A2C0] # -02 -g3
- [0x5A2C0, c, sf_5A2C0]
- [0x61B30, c, sf_61B30]
- [0x6B3B0, c, sf_6B3B0]
- [0x77E40, c, sf_77E40]
@@ -172,15 +177,23 @@
- [0xA4290, c, sf_A4290]
- [0xA48A0, c, sf_A48A0]
- [0xA4B50, c, sf_A4B50]
- [0xB99D0, c, sf_B99D0] # -02 -g3, no rodata
- [0xB99D0, c, sf_B99D0] # no rodata
- [0xBB360, c, sf_BB360]
- [0xBD360, c, sf_versus]
- [0xC3430, c, sf_C3430]
# DATA - Libultra
- [0xC3EE0, data, libraries]
# DATA - Microcode
- [0xC3EE0, data, aspmain]
- [0xC4210, data, audiotables]
- [0xC49D0, data, f3dex]
# RODATA - Libultra
# DATA - Nintendo Libraries
- [0xC51D0, data, nlib]
# DATA - Libultra
- [0xC88C0, data, ../libultra/libultra]
# RODATA - Nintendo Libraries
- [0xC8CC0, .rodata, 5A20]
- [0xC8D10, .rodata, 6280]
- [0xC8D20, .rodata, 7D30]
@@ -193,17 +206,20 @@
- [0xC99D0, .rodata, 17650]
- [0xC9CF0, .rodata, 1EB50]
- [0xC9F10, .rodata, math64]
# RODATA - Libultra
- [0xC9F30, .rodata, ../libultra/gu/perspective]
- [0xC9F40, .rodata, ../libultra/gu/sinf]
- [0xC9F90, .rodata, ../libultra/gu/cosf]
- [0xC9FE0, .rodata, 24C60]
- [0xCA0E0, rodata, 25F50] # handwritten
- [0xC9FE0, .rodata, ../libultra/libc/xprintf]
- [0xCA0E0, rodata, ../libultra/os/exceptasm]
- [0xCA150, .rodata, ../libultra/io/devmgr]
- [0xCA170, rodata, __libm_qnan_f]
- [0xCA180, .rodata, ../libultra/rmon/xldtob]
- [0xCA1E0, .rodata, ../libultra/2BDF0]
- [0xCA5A0, .rodata, 2DF00]
- [0xCA650, rodata, ../libultra/rmon/rmonrcp]
- [0xCA170, rodata, ../libultra/gu/libm_vals]
- [0xCA180, .rodata, ../libultra/libc/xldtob]
- [0xCA1E0, rodata, ../libultra/os/setintmask]
- [0xCA260, .rodata, ../libultra/rmon/rmonmem]
- [0xCA5A0, .rodata, ../libultra/rmon/rmonbrk]
- [0xCA650, rodata, ../libultra/rmon/rmonrcp]
# DATA - game engine
- [0xCA690, data, engine]