diff --git a/Makefile b/Makefile index 1b908aa235..d90a229edc 100644 --- a/Makefile +++ b/Makefile @@ -133,26 +133,39 @@ DEP_FILES := $(O_FILES:.o=.asmproc.d) # create build directories $(shell mkdir -p build/baserom $(foreach dir,$(SRC_DIRS) $(ASM_DIRS) $(ASSET_BIN_DIRS),build/$(dir))) -build/src/libultra/os/%: OPTFLAGS := -O1 -build/src/libultra/voice/%: OPTFLAGS := -O2 -build/src/libultra/io/%: OPTFLAGS := -O2 -build/src/libultra/libc/%: OPTFLAGS := -O2 -build/src/libultra/libc/ll%: OPTFLAGS := -O1 -build/src/libultra/libc/ll%: MIPS_VERSION := -mips3 -32 -build/src/libultra/gu/%: OPTFLAGS := -O2 -build/src/libultra/rmon/%: OPTFLAGS := -O2 -build/src/boot_O2/%: OPTFLAGS := -O2 -build/src/boot_O2_g3/%: OPTFLAGS := -O2 -g3 +# directory flags +build/src/boot_O2/%.o: OPTFLAGS := -O2 +build/src/boot_O2_g3/%.o: OPTFLAGS := -O2 -g3 +build/src/libultra/os/%.o: OPTFLAGS := -O1 +build/src/libultra/voice/%.o: OPTFLAGS := -O2 +build/src/libultra/io/%.o: OPTFLAGS := -O2 +build/src/libultra/libc/%.o: OPTFLAGS := -O2 +build/src/libultra/gu/%.o: OPTFLAGS := -O2 +build/src/libultra/rmon/%.o: OPTFLAGS := -O2 + +# file flags build/src/boot_O2_g3/fault.o: CFLAGS += -trapuv build/src/boot_O2_g3/fault_drawer.o: CFLAGS += -trapuv -build/src/libultra/%: CC := $(CC_OLD) -build/src/libultra/io/%: CC := python3 tools/asm-processor/build.py $(CC_OLD) -- $(AS) $(ASFLAGS) -- -build/src/libultra/os/%: CC := python3 tools/asm-processor/build.py $(CC_OLD) -- $(AS) $(ASFLAGS) -- -build/src/libultra/voice/%: CC := python3 tools/asm-processor/build.py $(CC_OLD) -- $(AS) $(ASFLAGS) -- +build/src/libultra/libc/ll.o: OPTFLAGS := -O1 +build/src/libultra/libc/ll.o: MIPS_VERSION := -mips3 -32 +build/src/libultra/libc/llcvt.o: OPTFLAGS := -O1 +build/src/libultra/libc/llcvt.o: MIPS_VERSION := -mips3 -32 -CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- +# cc & asm-processor +build/src/boot_O2/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- +build/src/boot_O2_g3/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- + +build/src/libultra/%.o: CC := python3 tools/asm-processor/build.py $(CC_OLD) -- $(AS) $(ASFLAGS) -- + +build/src/code/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- + +build/src/overlays/actors/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- +build/src/overlays/effects/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- +build/src/overlays/fbdemos/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- +build/src/overlays/gamestates/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- +build/src/overlays/kaleido_scope/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- #### Main Targets ### diff --git a/include/functions.h b/include/functions.h index eafca7bed3..f27aa5e54b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -56,9 +56,9 @@ void CIC6105_PrintRomInfo(void); void CIC6105_AddRomInfoFaultPage(void); void CIC6105_RemoveRomInfoFaultPage(void); void func_800818F4(void); -void __osSyncVPrintf(UNK_TYPE4 param_1, ...); -void osSyncPrintf(char* str, ...); -void rmonPrintf(UNK_TYPE4 param_1, ...); +void __osSyncVPrintf(const char* fmt, ...); +void osSyncPrintf(const char* fmt, ...); +void rmonPrintf(const char* fmt, ...); void Fault_SleepImpl(u32 duration); void Fault_AddClient(FaultClient* client, fault_client_func callback, void* param0, void* param1); void Fault_RemoveClient(FaultClient* client); @@ -400,7 +400,7 @@ void guPositionF(float mf[4][4], f32 r, f32 p, f32 h, f32 s, f32 x, f32 y, f32 z void guPosition(Mtx* m, f32 r, f32 p, f32 h, f32 s, f32 x, f32 y, f32 z); s32 osEPiRawStartDma(OSPiHandle*, s32, u32, void*, u32); OSYieldResult osSpTaskYielded(OSTask* task); -s32 memcmp(void* __s1, void* __s2, size_t __n); +s32 bcmp(void* __s1, void* __s2, size_t __n); OSTime osGetTime(void); void guRotateF(float mf[4][4], f32 a, f32 x, f32 y, f32 z); void guRotate(Mtx* m, f32 a, f32 x, f32 y, f32 z); @@ -498,13 +498,13 @@ s32 __osSpSetPc(u32 data); // void __osVoiceContWrite4(void); void __osGetHWIntrRoutine(s32 idx, OSMesgQueue** outQueue, OSMesg* outMsg); // void __osSetHWIntrRoutine(void); -// u32 __osGetWatchLo(void); +u32 __osGetWatchLo(void); void __osSetWatchLo(u32 value); -f32 fmodf(f32 param_1, f32 param_2); -void* __osMemset(void* param_1, u8 param_2, s32 param_3); -s32 __osMemcmp(const char* str1, const char* str2); -char* __osStrcpy(char* param_1, char* param_2); -// void __osMemcpy(void); +f32 fmodf(f32 dividend, f32 divisor); +void* __osMemset(void* ptr, s32 val, u32 size); +s32 __osStrcmp(const char* str1, const char* str2); +char* __osStrcpy(char* dst, const char* src); +void* __osMemcpy(void* dst, void* src, size_t size); void EnAObj_Init(ActorEnAObj* this, GlobalContext* globalCtx); void EnAObj_Destroy(ActorEnAObj* this, GlobalContext* globalCtx); void EnAObj_Update1(ActorEnAObj* this, GlobalContext* globalCtx); diff --git a/spec b/spec index 62b81a7da1..c2087fea8b 100644 --- a/spec +++ b/spec @@ -33,7 +33,7 @@ beginseg include "build/src/boot_O2_g3/fault_drawer.o" include "build/data/boot/fault_drawer.bss.o" include "build/src/boot_O2/boot_80084940.o" - include "build/src/boot/loadfragment.o" + include "build/src/boot_O2/loadfragment.o" include "build/data/boot/loadfragment.data.o" include "build/src/boot_O2/loadfragment2.o" include "build/src/boot_O2/padutils.o" @@ -44,10 +44,10 @@ beginseg include "build/src/boot_O2/assert.o" include "build/src/boot_O2/boot_800862E0.o" include "build/src/boot_O2/padsetup.o" - include "build/src/boot/boot_80086760.o" + include "build/src/boot_O2/boot_80086760.o" include "build/data/boot/boot_80086760.bss.o" include "build/asm/boot/fp.text.o" - include "build/src/boot/system_malloc.o" + include "build/src/boot_O2/system_malloc.o" include "build/data/boot/system_malloc.data.o" include "build/data/boot/system_malloc.bss.o" include "build/src/boot_O2/rand.o" @@ -56,10 +56,11 @@ beginseg include "build/src/boot_O2/__osMalloc.o" include "build/data/boot/__osMalloc.bss.o" include "build/src/libultra/rmon/sprintf.o" - include "build/src/boot/printutils.o" + include "build/src/boot_O2/printutils.o" + include "build/src/boot_O2/sleep.o" include "build/asm/boot/setcause.text.o" include "build/src/libultra/os/sendmesg.o" - include "build/src/boot/pfsfreeblocks.o" + include "build/src/libultra/io/pfsfreeblocks.o" include "build/src/libultra/os/viextend.o" include "build/src/libultra/os/stopthread.o" include "build/src/libultra/os/recvmesg.o" @@ -81,7 +82,7 @@ beginseg include "build/src/libultra/os/destroythread.o" include "build/src/libultra/voice/voicecheckresult.o" include "build/asm/boot/bzero.text.o" - include "build/src/boot/rumblepak.o" + include "build/src/libultra/io/rumblepak.o" include "build/data/boot/rumblepak.bss.o" include "build/src/libultra/io/siacs.o" include "build/data/boot/siacs.bss.o" @@ -89,11 +90,11 @@ beginseg include "build/data/boot/controller.bss.o" include "build/src/libultra/os/createthread.o" include "build/src/libultra/io/contreaddata.o" - include "build/src/boot/voicegetreaddata.o" + include "build/src/libultra/voice/voicegetreaddata.o" include "build/src/libultra/os/virtualtophysical.o" include "build/asm/boot/getsr.text.o" include "build/asm/boot/setsr.text.o" - include "build/src/boot/writebackdcache.o" + include "build/asm/boot/writebackdcache.text.o" include "build/data/boot/threadsave.bss.o" include "build/src/libultra/os/initialize.o" include "build/data/boot/initialize.bss.o" @@ -107,20 +108,20 @@ beginseg include "build/src/libultra/gu/perspective.o" include "build/src/libultra/io/sprawdma.o" include "build/src/libultra/io/sirawdma.o" - include "build/src/boot/epilinkhandle.o" + include "build/src/libultra/io/epilinkhandle.o" include "build/src/libultra/io/viblack.o" include "build/src/libultra/io/sirawread.o" include "build/src/libultra/os/getthreadid.o" include "build/src/libultra/io/sptaskyield.o" - include "build/src/boot/pfsreadwritefile.o" - include "build/src/boot/pfsgetstatus.o" + include "build/src/libultra/io/pfsreadwritefile.o" + include "build/src/libultra/io/pfsgetstatus.o" pad_text include "build/asm/boot/guMtxIdentF.text.o" include "build/src/libultra/io/visetmode.o" include "build/asm/boot/getconfig.text.o" include "build/asm/boot/setconfig.text.o" include "build/src/libultra/gu/lookat.o" - include "build/src/boot/pfsallocatefile.o" + include "build/src/libultra/io/pfsallocatefile.o" include "build/src/libultra/os/stoptimer.o" include "build/asm/boot/probetlb.text.o" include "build/src/libultra/io/pimgr.o" @@ -128,109 +129,109 @@ beginseg include "build/data/boot/pimgr.bss.o" include "build/src/libultra/io/piacs.o" pad_text - include "build/src/boot/devmgr.o" + include "build/src/libultra/io/devmgr.o" include "build/src/libultra/io/pirawdma.o" - include "build/src/boot/contpfs.o" + include "build/src/libultra/io/contpfs.o" include "build/data/boot/contpfs.data.o" include "build/asm/boot/getcount.text.o" pad_text include "build/asm/boot/guMtxL2F.text.o" include "build/src/libultra/os/getmemsize.o" - include "build/src/boot/pfssearchfile.o" + include "build/src/libultra/io/pfssearchfile.o" include "build/src/libultra/os/seteventmesg.o" include "build/data/boot/seteventmesg.bss.o" - include "build/src/boot/sqrtf.o" - include "build/src/boot/afterprenmi.o" + include "build/src/libultra/gu/sqrtf.o" + include "build/src/libultra/os/afterprenmi.o" include "build/src/libultra/io/contquery.o" include "build/src/libultra/gu/lookathil.o" include "build/src/libultra/rmon/xprintf.o" - include "build/src/boot/voicecleardictionary.o" + include "build/src/libultra/voice/voicecleardictionary.o" include "build/asm/boot/unmaptlball.text.o" include "build/src/libultra/io/epidma.o" - include "build/src/boot/voicecontread2.o" - include "build/src/boot/voicecrc.o" + include "build/src/libultra/voice/voicecontread2.o" + include "build/src/libultra/voice/voicecrc.o" include "build/src/libultra/libc/string.o" include "build/src/libultra/os/createmesgqueue.o" - include "build/src/boot/invalicache.o" - include "build/src/boot/invaldcache.o" + include "build/asm/boot/invalicache.text.o" + include "build/asm/boot/invaldcache.text.o" include "build/src/libultra/os/timerintr.o" - include "build/src/boot/voicecontread36.o" - include "build/src/boot/sp.o" + include "build/src/libultra/voice/voicecontread36.o" + include "build/src/libultra/io/sp.o" include "build/src/libultra/io/si.o" include "build/asm/boot/guMtxIdent.text.o" include "build/src/libultra/os/jammesg.o" include "build/src/libultra/os/setthreadpri.o" include "build/src/libultra/os/getthreadpri.o" - include "build/src/boot/epirawread.o" + include "build/src/libultra/io/epirawread.o" include "build/src/libultra/io/viswapbuf.o" - include "build/src/boot/position.o" + include "build/src/libultra/gu/position.o" include "build/data/boot/position.data.o" - include "build/src/boot/epirawdma.o" + include "build/src/libultra/io/epirawdma.o" include "build/src/libultra/io/sptaskyielded.o" - include "build/src/boot/memcmp.o" + include "build/asm/boot/bcmp.text.o" include "build/src/libultra/os/gettime.o" include "build/src/libultra/gu/rotate.o" - include "build/src/boot/setglobalintmask.o" - include "build/src/boot/voiceinit.o" + include "build/src/libultra/os/setglobalintmask.o" + include "build/src/libultra/voice/voiceinit.o" include "build/data/boot/voiceinit.data.o" - include "build/src/boot/contchannelreset.o" - include "build/src/boot/voicesetadconverter.o" - include "build/src/boot/aisetfreq.o" - include "build/src/boot/contramread.o" + include "build/src/libultra/io/contchannelreset.o" + include "build/src/libultra/voice/voicesetadconverter.o" + include "build/src/libultra/io/aisetfreq.o" + include "build/src/libultra/io/contramread.o" include "build/data/boot/contramread.data.o" - include "build/src/boot/voicecontwrite20.o" - include "build/src/boot/crc.o" + include "build/src/libultra/voice/voicecontwrite20.o" + include "build/src/libultra/io/crc.o" include "build/src/libultra/os/getactivequeue.o" - include "build/src/boot/normalize.o" + include "build/src/libultra/gu/normalize.o" include "build/asm/boot/setcompare.text.o" include "build/asm/boot/getcompare.text.o" include "build/src/libultra/io/dpgetstat.o" include "build/src/libultra/io/dpsetstat.o" - include "build/src/boot/bcopy.o" - include "build/src/boot/resetglobalintmask.o" - include "build/src/boot/pfsdeletefile.o" + include "build/asm/boot/bcopy.text.o" + include "build/src/libultra/os/resetglobalintmask.o" + include "build/src/libultra/io/pfsdeletefile.o" include "build/src/libultra/gu/ortho.o" include "build/asm/boot/interrupt.text.o" include "build/src/libultra/io/vi.o" include "build/data/boot/vi.data.o" - include "build/src/boot/viswapcontext.o" + include "build/src/libultra/io/viswapcontext.o" include "build/src/libultra/io/pigetcmdq.o" - include "build/src/boot/cosf.o" - include "build/src/boot/epiread.o" + include "build/src/libultra/gu/cosf.o" + include "build/src/libultra/io/epiread.o" include "build/src/libultra/io/visetspecial.o" include "build/src/libultra/gu/coss.o" include "build/src/libultra/os/settime.o" - include "build/src/boot/voicestopread.o" + include "build/src/libultra/voice/voicestopread.o" include "build/src/libultra/gu/visetevent.o" - include "build/src/boot/pfsisplug.o" + include "build/src/libultra/io/pfsisplug.o" include "build/src/libultra/voice/voicegetstatus.o" - include "build/src/boot/cartrominit.o" + include "build/src/libultra/io/cartrominit.o" include "build/data/boot/cartrominit.data.o" include "build/data/boot/cartrominit.bss.o" - include "build/src/boot/guS2DInitBg.o" + include "build/src/libultra/gu/guS2DInitBg.o" include "build/data/boot/guS2DInitBg.data.o" - include "build/src/boot/pfsselectbank.o" + include "build/src/libultra/io/pfsselectbank.o" include "build/src/libultra/io/contsetch.o" - include "build/src/boot/setfpccsr.o" - include "build/src/boot/getfpccsr.o" - include "build/src/boot/pfsfilestate.o" - include "build/src/boot/pfsinitpak.o" - include "build/src/boot/pfschecker.o" + include "build/asm/boot/setfpccsr.text.o" + include "build/asm/boot/getfpccsr.text.o" + include "build/src/libultra/io/pfsfilestate.o" + include "build/src/libultra/io/pfsinitpak.o" + include "build/src/libultra/io/pfschecker.o" include "build/src/libultra/io/aigetlen.o" - include "build/src/boot/epiwrite.o" + include "build/src/libultra/io/epiwrite.o" include "build/asm/boot/maptlbrdb.text.o" include "build/src/libultra/os/yieldthread.o" pad_text include "build/asm/boot/guTranslate.text.o" include "build/asm/boot/getcause.text.o" - include "build/src/boot/contramwrite.o" + include "build/src/libultra/io/contramwrite.o" include "build/src/libultra/io/epirawwrite.o" include "build/src/libultra/os/settimer.o" include "build/data/boot/__libm_qnan_f.rodata.o" - include "build/src/boot/xldtob.o" + include "build/src/libultra/rmon/xldtob.o" include "build/data/boot/xldtob.data.o" include "build/src/libultra/libc/ldiv.o" - include "build/src/boot/xlitob.o" + include "build/src/libultra/rmon/xlitob.o" include "build/src/libultra/io/sirawwrite.o" include "build/src/libultra/io/spgetstat.o" include "build/src/libultra/io/spsetstat.o" @@ -239,30 +240,30 @@ beginseg include "build/data/boot/vimgr.data.o" include "build/data/boot/vimgr.bss.o" include "build/src/libultra/io/vigetcurrcontext.o" - include "build/src/boot/writebackdcacheall.o" + include "build/asm/boot/writebackdcacheall.text.o" include "build/src/libultra/os/getcurrfaultthread.o" - include "build/src/boot/voicemaskdictionary.o" + include "build/src/libultra/voice/voicemaskdictionary.o" pad_text include "build/asm/boot/guMtxF2L.text.o" include "build/src/libultra/os/startthread.o" include "build/src/libultra/io/visetyscale.o" include "build/src/libultra/io/visetxscale.o" include "build/src/libultra/libc/llcvt.o" - include "build/src/boot/voicecheckword.o" - include "build/src/boot/voicecontrolgain.o" - include "build/src/boot/voicestartreaddata.o" - include "build/src/boot/vigetcurrframebuf.o" - include "build/src/boot/spsetpc.o" - include "build/src/boot/voicecontwrite4.o" + include "build/src/libultra/voice/voicecheckword.o" + include "build/src/libultra/voice/voicecontrolgain.o" + include "build/src/libultra/voice/voicestartreaddata.o" + include "build/src/libultra/io/vigetcurrframebuf.o" + include "build/src/libultra/io/spsetpc.o" + include "build/src/libultra/voice/voicecontwrite4.o" include "build/src/libultra/os/gethwinterrupt.o" - include "build/src/boot/sethwinterrupt.o" + include "build/src/libultra/os/sethwinterrupt.o" include "build/asm/boot/getwatchlo.text.o" include "build/asm/boot/setwatchlo.text.o" - include "build/src/boot/fmodf.o" - include "build/src/boot/__osMemset.o" - include "build/src/boot_O2_g3/__osMemcmp.o" - include "build/src/boot/__osStrcpy.o" - include "build/src/boot/__osMemcpy.o" + include "build/src/boot_O2/fmodf.o" + include "build/src/boot_O2/__osMemset.o" + include "build/src/boot_O2/__osStrcmp.o" + include "build/src/boot_O2/__osStrcpy.o" + include "build/src/boot_O2/__osMemcpy.o" include "build/data/boot/build.rodata.o" endseg diff --git a/src/boot/__osMemcpy.c b/src/boot/__osMemcpy.c deleted file mode 100644 index 63fbd3a7fc..0000000000 --- a/src/boot/__osMemcpy.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/__osMemcpy/__osMemcpy.s") diff --git a/src/boot/__osMemset.c b/src/boot/__osMemset.c deleted file mode 100644 index 8aebc19dd9..0000000000 --- a/src/boot/__osMemset.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/__osMemset/__osMemset.s") diff --git a/src/boot/__osStrcpy.c b/src/boot/__osStrcpy.c deleted file mode 100644 index f4f5c659c8..0000000000 --- a/src/boot/__osStrcpy.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/__osStrcpy/__osStrcpy.s") diff --git a/src/boot/bcopy.c b/src/boot/bcopy.c deleted file mode 100644 index 4888db9af9..0000000000 --- a/src/boot/bcopy.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/bcopy/bcopy.s") diff --git a/src/boot/fmodf.c b/src/boot/fmodf.c deleted file mode 100644 index 32b719bb7e..0000000000 --- a/src/boot/fmodf.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/fmodf/fmodf.s") diff --git a/src/boot/getfpccsr.c b/src/boot/getfpccsr.c deleted file mode 100644 index f0dc33735e..0000000000 --- a/src/boot/getfpccsr.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/getfpccsr/__osGetFpcCsr.s") diff --git a/src/boot/invaldcache.c b/src/boot/invaldcache.c deleted file mode 100644 index a4550a3f34..0000000000 --- a/src/boot/invaldcache.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/invaldcache/osInvalDCache.s") diff --git a/src/boot/invalicache.c b/src/boot/invalicache.c deleted file mode 100644 index d7f6ddd9c2..0000000000 --- a/src/boot/invalicache.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/invalicache/osInvalICache.s") diff --git a/src/boot/memcmp.c b/src/boot/memcmp.c deleted file mode 100644 index 0bc52cc93c..0000000000 --- a/src/boot/memcmp.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/memcmp/memcmp.s") diff --git a/src/boot/printutils.c b/src/boot/printutils.c deleted file mode 100644 index b42756ad2b..0000000000 --- a/src/boot/printutils.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/PrintUtils_VPrintf.s") - -#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/PrintUtils_Printf.s") - -#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/Sleep_Cycles.s") - -#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/Sleep_Nsec.s") - -#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/Sleep_Usec.s") - -#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/Sleep_Msec.s") - -#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/Sleep_Sec.s") diff --git a/src/boot/setfpccsr.c b/src/boot/setfpccsr.c deleted file mode 100644 index 71d7afbbf0..0000000000 --- a/src/boot/setfpccsr.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/setfpccsr/__osSetFpcCsr.s") diff --git a/src/boot/writebackdcache.c b/src/boot/writebackdcache.c deleted file mode 100644 index fa364d7292..0000000000 --- a/src/boot/writebackdcache.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/writebackdcache/osWritebackDCache.s") diff --git a/src/boot/writebackdcacheall.c b/src/boot/writebackdcacheall.c deleted file mode 100644 index 96a4780b8e..0000000000 --- a/src/boot/writebackdcacheall.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/boot/writebackdcacheall/osWritebackDCacheAll.s") diff --git a/src/boot_O2/__osMemcpy.c b/src/boot_O2/__osMemcpy.c new file mode 100644 index 0000000000..2e25b23f08 --- /dev/null +++ b/src/boot_O2/__osMemcpy.c @@ -0,0 +1,23 @@ +#include "global.h" + +void* __osMemcpy(void* dst, void* src, size_t size) { + u8* _dst = dst; + u8* _src = src; + register s32 rem; + + if (_dst == _src) { + return dst; + } + if (_dst < _src) { + for (rem = size--; rem != 0; rem = size--) { + *_dst++ = *_src++; + } + } else { + _dst += size - 1; + _src += size - 1; + for (rem = size--; rem != 0; rem = size--) { + *_dst-- = *_src--; + } + } + return dst; +} diff --git a/src/boot_O2/__osMemset.c b/src/boot_O2/__osMemset.c new file mode 100644 index 0000000000..3a5469855d --- /dev/null +++ b/src/boot_O2/__osMemset.c @@ -0,0 +1,11 @@ +#include "global.h" + +void* __osMemset(void* ptr, s32 val, u32 size) { + u8* dst = ptr; + register s32 rem; + + for (rem = size--; rem != 0; rem = size--) { + *dst++ = val; + } + return ptr; +} diff --git a/src/boot_O2/__osStrcmp.c b/src/boot_O2/__osStrcmp.c new file mode 100644 index 0000000000..10bd2fa92b --- /dev/null +++ b/src/boot_O2/__osStrcmp.c @@ -0,0 +1,16 @@ +#include "global.h" + +s32 __osStrcmp(const char* str1, const char* str2) { + char c1; + char c2; + + do { + c1 = *str1++; + c2 = *str2++; + if (c1 != c2) { + return c1 - c2; + } + } while (c1); + + return 0; +} diff --git a/src/boot_O2/__osStrcpy.c b/src/boot_O2/__osStrcpy.c new file mode 100644 index 0000000000..86a98a804a --- /dev/null +++ b/src/boot_O2/__osStrcpy.c @@ -0,0 +1,12 @@ +#include "global.h" + +char* __osStrcpy(char* dst, const char* src) { + char* _dst = dst; + + while (*src != '\0') { + *_dst++ = *src++; + } + *_dst = '\0'; + + return dst; +} diff --git a/src/boot/boot_80086760.c b/src/boot_O2/boot_80086760.c similarity index 100% rename from src/boot/boot_80086760.c rename to src/boot_O2/boot_80086760.c diff --git a/src/boot_O2/fmodf.c b/src/boot_O2/fmodf.c new file mode 100644 index 0000000000..2f8aa74bfb --- /dev/null +++ b/src/boot_O2/fmodf.c @@ -0,0 +1,12 @@ +#include "global.h" + +f32 fmodf(f32 dividend, f32 divisor) { + s32 quotient; + + if (divisor == 0.0f) { + return 0.0f; + } + quotient = dividend / divisor; + + return dividend - quotient * divisor; +} diff --git a/src/boot/loadfragment.c b/src/boot_O2/loadfragment.c similarity index 100% rename from src/boot/loadfragment.c rename to src/boot_O2/loadfragment.c diff --git a/src/boot_O2/printutils.c b/src/boot_O2/printutils.c new file mode 100644 index 0000000000..fb5b81033e --- /dev/null +++ b/src/boot_O2/printutils.c @@ -0,0 +1,5 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/PrintUtils_VPrintf.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/PrintUtils_Printf.s") diff --git a/src/boot_O2/sleep.c b/src/boot_O2/sleep.c new file mode 100644 index 0000000000..b794d08caf --- /dev/null +++ b/src/boot_O2/sleep.c @@ -0,0 +1,11 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/boot/sleep/Sleep_Cycles.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/sleep/Sleep_Nsec.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/sleep/Sleep_Usec.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/sleep/Sleep_Msec.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/sleep/Sleep_Sec.s") diff --git a/src/boot/system_malloc.c b/src/boot_O2/system_malloc.c similarity index 100% rename from src/boot/system_malloc.c rename to src/boot_O2/system_malloc.c diff --git a/src/boot_O2_g3/__osMemcmp.c b/src/boot_O2_g3/__osMemcmp.c deleted file mode 100644 index c1890bebce..0000000000 --- a/src/boot_O2_g3/__osMemcmp.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "global.h" - -/* - * Compare strings (strcmp). - */ -s32 __osMemcmp(const char* str1, const char* str2) { - char currentCharStr1; - char currentCharStr2; - do { - currentCharStr1 = *str1++; - currentCharStr2 = *str2++; - if (currentCharStr1 != currentCharStr2) { - return currentCharStr1 - currentCharStr2; - } - } while (currentCharStr1); - - return 0; -} diff --git a/src/boot_O2_g3/syncprintf.c b/src/boot_O2_g3/syncprintf.c index c1f6341f9a..1cbceb595b 100644 --- a/src/boot_O2_g3/syncprintf.c +++ b/src/boot_O2_g3/syncprintf.c @@ -1,10 +1,11 @@ #include "global.h" -// This file contains print functions that are used by fault.c, so they are placed in the fault module +// This isn't a vprintf since it doesn't take a va_list +void __osSyncVPrintf(const char* fmt, ...) { +} -void __osSyncVPrintf(UNK_TYPE4 param_1, ...) { +void osSyncPrintf(const char* fmt, ...) { } -void osSyncPrintf(char* str, ...) { -} -void rmonPrintf(UNK_TYPE4 param_1, ...) { + +void rmonPrintf(const char* fmt, ...) { } diff --git a/src/boot/cosf.c b/src/libultra/gu/cosf.c similarity index 100% rename from src/boot/cosf.c rename to src/libultra/gu/cosf.c diff --git a/src/boot/guS2DInitBg.c b/src/libultra/gu/guS2DInitBg.c similarity index 100% rename from src/boot/guS2DInitBg.c rename to src/libultra/gu/guS2DInitBg.c diff --git a/src/boot/normalize.c b/src/libultra/gu/normalize.c similarity index 100% rename from src/boot/normalize.c rename to src/libultra/gu/normalize.c diff --git a/src/boot/position.c b/src/libultra/gu/position.c similarity index 100% rename from src/boot/position.c rename to src/libultra/gu/position.c diff --git a/src/boot/sqrtf.c b/src/libultra/gu/sqrtf.c similarity index 100% rename from src/boot/sqrtf.c rename to src/libultra/gu/sqrtf.c diff --git a/src/boot/aisetfreq.c b/src/libultra/io/aisetfreq.c similarity index 100% rename from src/boot/aisetfreq.c rename to src/libultra/io/aisetfreq.c diff --git a/src/boot/cartrominit.c b/src/libultra/io/cartrominit.c similarity index 100% rename from src/boot/cartrominit.c rename to src/libultra/io/cartrominit.c diff --git a/src/boot/contchannelreset.c b/src/libultra/io/contchannelreset.c similarity index 100% rename from src/boot/contchannelreset.c rename to src/libultra/io/contchannelreset.c diff --git a/src/boot/contpfs.c b/src/libultra/io/contpfs.c similarity index 100% rename from src/boot/contpfs.c rename to src/libultra/io/contpfs.c diff --git a/src/boot/contramread.c b/src/libultra/io/contramread.c similarity index 100% rename from src/boot/contramread.c rename to src/libultra/io/contramread.c diff --git a/src/boot/contramwrite.c b/src/libultra/io/contramwrite.c similarity index 100% rename from src/boot/contramwrite.c rename to src/libultra/io/contramwrite.c diff --git a/src/boot/crc.c b/src/libultra/io/crc.c similarity index 100% rename from src/boot/crc.c rename to src/libultra/io/crc.c diff --git a/src/boot/devmgr.c b/src/libultra/io/devmgr.c similarity index 100% rename from src/boot/devmgr.c rename to src/libultra/io/devmgr.c diff --git a/src/boot/epilinkhandle.c b/src/libultra/io/epilinkhandle.c similarity index 100% rename from src/boot/epilinkhandle.c rename to src/libultra/io/epilinkhandle.c diff --git a/src/boot/epirawdma.c b/src/libultra/io/epirawdma.c similarity index 100% rename from src/boot/epirawdma.c rename to src/libultra/io/epirawdma.c diff --git a/src/boot/epirawread.c b/src/libultra/io/epirawread.c similarity index 100% rename from src/boot/epirawread.c rename to src/libultra/io/epirawread.c diff --git a/src/boot/epiread.c b/src/libultra/io/epiread.c similarity index 100% rename from src/boot/epiread.c rename to src/libultra/io/epiread.c diff --git a/src/boot/epiwrite.c b/src/libultra/io/epiwrite.c similarity index 100% rename from src/boot/epiwrite.c rename to src/libultra/io/epiwrite.c diff --git a/src/boot/pfsallocatefile.c b/src/libultra/io/pfsallocatefile.c similarity index 100% rename from src/boot/pfsallocatefile.c rename to src/libultra/io/pfsallocatefile.c diff --git a/src/boot/pfschecker.c b/src/libultra/io/pfschecker.c similarity index 100% rename from src/boot/pfschecker.c rename to src/libultra/io/pfschecker.c diff --git a/src/boot/pfsdeletefile.c b/src/libultra/io/pfsdeletefile.c similarity index 100% rename from src/boot/pfsdeletefile.c rename to src/libultra/io/pfsdeletefile.c diff --git a/src/boot/pfsfilestate.c b/src/libultra/io/pfsfilestate.c similarity index 100% rename from src/boot/pfsfilestate.c rename to src/libultra/io/pfsfilestate.c diff --git a/src/boot/pfsfreeblocks.c b/src/libultra/io/pfsfreeblocks.c similarity index 100% rename from src/boot/pfsfreeblocks.c rename to src/libultra/io/pfsfreeblocks.c diff --git a/src/boot/pfsgetstatus.c b/src/libultra/io/pfsgetstatus.c similarity index 100% rename from src/boot/pfsgetstatus.c rename to src/libultra/io/pfsgetstatus.c diff --git a/src/boot/pfsinitpak.c b/src/libultra/io/pfsinitpak.c similarity index 100% rename from src/boot/pfsinitpak.c rename to src/libultra/io/pfsinitpak.c diff --git a/src/boot/pfsisplug.c b/src/libultra/io/pfsisplug.c similarity index 100% rename from src/boot/pfsisplug.c rename to src/libultra/io/pfsisplug.c diff --git a/src/boot/pfsreadwritefile.c b/src/libultra/io/pfsreadwritefile.c similarity index 100% rename from src/boot/pfsreadwritefile.c rename to src/libultra/io/pfsreadwritefile.c diff --git a/src/boot/pfssearchfile.c b/src/libultra/io/pfssearchfile.c similarity index 100% rename from src/boot/pfssearchfile.c rename to src/libultra/io/pfssearchfile.c diff --git a/src/boot/pfsselectbank.c b/src/libultra/io/pfsselectbank.c similarity index 100% rename from src/boot/pfsselectbank.c rename to src/libultra/io/pfsselectbank.c diff --git a/src/boot/rumblepak.c b/src/libultra/io/rumblepak.c similarity index 100% rename from src/boot/rumblepak.c rename to src/libultra/io/rumblepak.c diff --git a/src/boot/sp.c b/src/libultra/io/sp.c similarity index 100% rename from src/boot/sp.c rename to src/libultra/io/sp.c diff --git a/src/boot/spsetpc.c b/src/libultra/io/spsetpc.c similarity index 100% rename from src/boot/spsetpc.c rename to src/libultra/io/spsetpc.c diff --git a/src/boot/vigetcurrframebuf.c b/src/libultra/io/vigetcurrframebuf.c similarity index 100% rename from src/boot/vigetcurrframebuf.c rename to src/libultra/io/vigetcurrframebuf.c diff --git a/src/boot/viswapcontext.c b/src/libultra/io/viswapcontext.c similarity index 100% rename from src/boot/viswapcontext.c rename to src/libultra/io/viswapcontext.c diff --git a/src/boot/afterprenmi.c b/src/libultra/os/afterprenmi.c similarity index 100% rename from src/boot/afterprenmi.c rename to src/libultra/os/afterprenmi.c diff --git a/src/boot/resetglobalintmask.c b/src/libultra/os/resetglobalintmask.c similarity index 100% rename from src/boot/resetglobalintmask.c rename to src/libultra/os/resetglobalintmask.c diff --git a/src/boot/setglobalintmask.c b/src/libultra/os/setglobalintmask.c similarity index 100% rename from src/boot/setglobalintmask.c rename to src/libultra/os/setglobalintmask.c diff --git a/src/boot/sethwinterrupt.c b/src/libultra/os/sethwinterrupt.c similarity index 100% rename from src/boot/sethwinterrupt.c rename to src/libultra/os/sethwinterrupt.c diff --git a/src/boot/xldtob.c b/src/libultra/rmon/xldtob.c similarity index 100% rename from src/boot/xldtob.c rename to src/libultra/rmon/xldtob.c diff --git a/src/boot/xlitob.c b/src/libultra/rmon/xlitob.c similarity index 100% rename from src/boot/xlitob.c rename to src/libultra/rmon/xlitob.c diff --git a/src/boot/voicecheckword.c b/src/libultra/voice/voicecheckword.c similarity index 100% rename from src/boot/voicecheckword.c rename to src/libultra/voice/voicecheckword.c diff --git a/src/boot/voicecleardictionary.c b/src/libultra/voice/voicecleardictionary.c similarity index 100% rename from src/boot/voicecleardictionary.c rename to src/libultra/voice/voicecleardictionary.c diff --git a/src/boot/voicecontread2.c b/src/libultra/voice/voicecontread2.c similarity index 100% rename from src/boot/voicecontread2.c rename to src/libultra/voice/voicecontread2.c diff --git a/src/boot/voicecontread36.c b/src/libultra/voice/voicecontread36.c similarity index 100% rename from src/boot/voicecontread36.c rename to src/libultra/voice/voicecontread36.c diff --git a/src/boot/voicecontrolgain.c b/src/libultra/voice/voicecontrolgain.c similarity index 100% rename from src/boot/voicecontrolgain.c rename to src/libultra/voice/voicecontrolgain.c diff --git a/src/boot/voicecontwrite20.c b/src/libultra/voice/voicecontwrite20.c similarity index 100% rename from src/boot/voicecontwrite20.c rename to src/libultra/voice/voicecontwrite20.c diff --git a/src/boot/voicecontwrite4.c b/src/libultra/voice/voicecontwrite4.c similarity index 100% rename from src/boot/voicecontwrite4.c rename to src/libultra/voice/voicecontwrite4.c diff --git a/src/boot/voicecrc.c b/src/libultra/voice/voicecrc.c similarity index 100% rename from src/boot/voicecrc.c rename to src/libultra/voice/voicecrc.c diff --git a/src/boot/voicegetreaddata.c b/src/libultra/voice/voicegetreaddata.c similarity index 100% rename from src/boot/voicegetreaddata.c rename to src/libultra/voice/voicegetreaddata.c diff --git a/src/boot/voiceinit.c b/src/libultra/voice/voiceinit.c similarity index 100% rename from src/boot/voiceinit.c rename to src/libultra/voice/voiceinit.c diff --git a/src/boot/voicemaskdictionary.c b/src/libultra/voice/voicemaskdictionary.c similarity index 100% rename from src/boot/voicemaskdictionary.c rename to src/libultra/voice/voicemaskdictionary.c diff --git a/src/boot/voicesetadconverter.c b/src/libultra/voice/voicesetadconverter.c similarity index 100% rename from src/boot/voicesetadconverter.c rename to src/libultra/voice/voicesetadconverter.c diff --git a/src/boot/voicestartreaddata.c b/src/libultra/voice/voicestartreaddata.c similarity index 100% rename from src/boot/voicestartreaddata.c rename to src/libultra/voice/voicestartreaddata.c diff --git a/src/boot/voicestopread.c b/src/libultra/voice/voicestopread.c similarity index 100% rename from src/boot/voicestopread.c rename to src/libultra/voice/voicestopread.c diff --git a/tools/disasm/files.txt b/tools/disasm/files.txt index 079d12a476..ffb4b77d42 100644 --- a/tools/disasm/files.txt +++ b/tools/disasm/files.txt @@ -66,6 +66,7 @@ 0x80087160 : "__osMalloc", 0x80087830 : "sprintf", 0x80087900 : "printutils", + 0x80087960 : "sleep", 0x80087B00 : "setcause", 0x80087B10 : "sendmesg", 0x80087C60 : "pfsfreeblocks", @@ -156,7 +157,7 @@ 0x8008FEB0 : "position", 0x800900C0 : "epirawdma", 0x800902A0 : "sptaskyielded", - 0x80090300 : "memcmp", + 0x80090300 : "bcmp", 0x80090420 : "gettime", 0x800904B0 : "rotate", 0x80090680 : "setglobalintmask", @@ -239,7 +240,7 @@ 0x80096820 : "setwatchlo", 0x80096830 : "fmodf", 0x80096880 : "__osMemset", - 0x800968B0 : "__osMemcmp", + 0x800968B0 : "__osStrcmp", 0x800968F0 : "__osStrcpy", 0x80096930 : "__osMemcpy", diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 9db86da92a..5508de0dc0 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -380,7 +380,7 @@ 0x80090058:("guPosition",), 0x800900C0:("osEPiRawStartDma",), 0x800902A0:("osSpTaskYielded",), - 0x80090300:("memcmp",), + 0x80090300:("bcmp",), 0x80090420:("osGetTime",), 0x800904B0:("guRotateF",), 0x80090634:("guRotate",), @@ -481,7 +481,7 @@ 0x80096820:("__osSetWatchLo",), 0x80096830:("fmodf",), 0x80096880:("__osMemset",), - 0x800968B0:("__osMemcmp",), + 0x800968B0:("__osStrcmp",), 0x800968F0:("__osStrcpy",), 0x80096930:("__osMemcpy",), 0x800A5AC0:("EnAObj_Init",), diff --git a/tools/sizes/boot_functions.csv b/tools/sizes/boot_functions.csv index e10a53d8a5..6393c2e886 100644 --- a/tools/sizes/boot_functions.csv +++ b/tools/sizes/boot_functions.csv @@ -377,7 +377,7 @@ asm/non_matchings/boot/position/guPositionF.s,guPositionF,0x8008FEB0,0x6A asm/non_matchings/boot/position/guPosition.s,guPosition,0x80090058,0x1A asm/non_matchings/boot/epirawdma/osEPiRawStartDma.s,osEPiRawStartDma,0x800900C0,0x78 asm/non_matchings/boot/sptaskyielded/osSpTaskYielded.s,osSpTaskYielded,0x800902A0,0x18 -asm/non_matchings/boot/memcmp/memcmp.s,memcmp,0x80090300,0x48 +asm/non_matchings/boot/bcmp/bcmp.s,bcmp,0x80090300,0x48 asm/non_matchings/boot/gettime/osGetTime.s,osGetTime,0x80090420,0x24 asm/non_matchings/boot/rotate/guRotateF.s,guRotateF,0x800904B0,0x61 asm/non_matchings/boot/rotate/guRotate.s,guRotate,0x80090634,0x13 @@ -478,6 +478,6 @@ asm/non_matchings/boot/getwatchlo/__osGetWatchLo.s,__osGetWatchLo,0x80096810,0x4 asm/non_matchings/boot/setwatchlo/__osSetWatchLo.s,__osSetWatchLo,0x80096820,0x4 asm/non_matchings/boot/fmodf/fmodf.s,fmodf,0x80096830,0x14 asm/non_matchings/boot/__osMemset/__osMemset.s,__osMemset,0x80096880,0xC -asm/non_matchings/boot/__osMemcmp/__osMemcmp.s,__osMemcmp,0x800968B0,0x10 +asm/non_matchings/boot/__osStrcmp/__osStrcmp.s,__osStrcmp,0x800968B0,0x10 asm/non_matchings/boot/__osStrcpy/__osStrcpy.s,__osStrcpy,0x800968F0,0x10 asm/non_matchings/boot/__osMemcpy/__osMemcpy.s,__osMemcpy,0x80096930,0x24