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 20:36:13 -03: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")

Some files were not shown because too many files have changed in this diff Show More