From f70a7bcb142865bfdcda00054d6d04356f383b83 Mon Sep 17 00:00:00 2001 From: Derek Hensley Date: Wed, 21 Feb 2024 20:45:09 -0800 Subject: [PATCH] Libultra Progress (#43) * Use lib * move libultra.a to build/lib * Use libultra archive for ofiles that match Version I * Don't use auto genned syms * Add sym_info * Working now :) * Fix progress.py * libultra symbols defined --- Makefile | 49 +- linker_scripts/us/symbol_addrs_libultra.txt | 652 ++++++++++---------- linker_scripts/us/undefined_syms.ld | 36 ++ requirements.txt | 3 +- tools/progress.py | 40 +- tools/sym_info.py | 26 + yamls/us/header.yaml | 2 +- yamls/us/main.yaml | 535 ++++++---------- 8 files changed, 626 insertions(+), 717 deletions(-) create mode 100755 tools/sym_info.py diff --git a/Makefile b/Makefile index 31fc30e..097bde8 100644 --- a/Makefile +++ b/Makefile @@ -87,8 +87,8 @@ endif ifeq ($(NON_MATCHING),1) - BUILD_DEFINES += -DNON_MATCHING -DAVOID_UB - COMPARE := 0 + BUILD_DEFINES += -DNON_MATCHING -DAVOID_UB + COMPARE := 0 endif CPPFLAGS += -fno-dollars-in-identifiers -P @@ -107,7 +107,7 @@ endif CC := tools/ido/$(DETECTED_OS)/7.1/cc CC_OLD := tools/ido/$(DETECTED_OS)/5.3/cc - +AR := ar AS := $(CROSS)as LD := $(CROSS)ld OBJCOPY := $(CROSS)objcopy @@ -139,13 +139,13 @@ CHECK_WARNINGS := -Wall -Wextra -Wimplicit-fallthrough -Wno-unknown-pragmas -Wno MIPS_BUILTIN_DEFS := -DMIPSEB -D_MIPS_FPSET=16 -D_MIPS_ISA=2 -D_ABIO32=1 -D_MIPS_SIM=_ABIO32 -D_MIPS_SZINT=32 -D_MIPS_SZPTR=32 ifneq ($(RUN_CC_CHECK),0) # The -MMD flags additionaly creates a .d file with the same name as the .o file. - CC_CHECK := $(CC_CHECK_COMP) - CC_CHECK_FLAGS := -MMD -MP -fno-builtin -fsyntax-only -funsigned-char -fdiagnostics-color -std=gnu89 -m32 -DNON_MATCHING -DAVOID_UB -DCC_CHECK=1 - ifneq ($(WERROR), 0) - CHECK_WARNINGS += -Werror - endif + CC_CHECK := $(CC_CHECK_COMP) + CC_CHECK_FLAGS := -MMD -MP -fno-builtin -fsyntax-only -funsigned-char -fdiagnostics-color -std=gnu89 -m32 -DNON_MATCHING -DAVOID_UB -DCC_CHECK=1 + ifneq ($(WERROR), 0) + CHECK_WARNINGS += -Werror + endif else - CC_CHECK := @: + CC_CHECK := @: endif @@ -169,25 +169,33 @@ ICONV_FLAGS := --from-code=UTF-8 --to-code=EUC-JP OBJDUMP_FLAGS := --disassemble --reloc --disassemble-zeroes -Mreg-names=32 -Mno-aliases ifneq ($(OBJDUMP_BUILD), 0) - OBJDUMP_CMD = $(OBJDUMP) $(OBJDUMP_FLAGS) $@ > $(@:.o=.dump.s) - OBJCOPY_BIN = $(OBJCOPY) -O binary $@ $@.bin + OBJDUMP_CMD = $(OBJDUMP) $(OBJDUMP_FLAGS) $@ > $(@:.o=.s) + OBJCOPY_BIN = $(OBJCOPY) -O binary $@ $@.bin + LIBDUMP_CMD = $(AR) xo --output $(@:.a=) $@ else - OBJDUMP_CMD = @: - OBJCOPY_BIN = @: + OBJDUMP_CMD = @: + OBJCOPY_BIN = @: + LIBDUMP_CMD = @: endif SPLAT_FLAGS ?= ifneq ($(FULL_DISASM), 0) - SPLAT_FLAGS += --disassemble-all + SPLAT_FLAGS += --disassemble-all endif #### Files #### $(shell mkdir -p asm assets linker_scripts/$(VERSION)/auto) +ULTRALIB_DIR := lib/ultralib +ULTRALIB_LIB := $(ULTRALIB_DIR)/build/$(ULTRALIB_VERSION)/$(ULTRALIB_TARGET)/$(ULTRALIB_TARGET).a +LIBULTRA_DIR := lib/libultra +LIBULTRA_LIB := $(BUILD_DIR)/$(LIBULTRA_DIR).a + SRC_DIRS := $(shell find src -type d) ASM_DIRS := $(shell find asm/$(VERSION) -type d -not -path "asm/$(VERSION)/nonmatchings/*") BIN_DIRS := $(shell find assets -type d) +LIB_DIRS := $(foreach f, $(LIBULTRA_DIR), $f) C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) S_FILES := $(foreach dir,$(ASM_DIRS) $(SRC_DIRS),$(wildcard $(dir)/*.s)) @@ -196,16 +204,13 @@ O_FILES := $(foreach f,$(C_FILES:.c=.o),$(BUILD_DIR)/$f) \ $(foreach f,$(S_FILES:.s=.o),$(BUILD_DIR)/$f) \ $(foreach f,$(BIN_FILES:.bin=.o),$(BUILD_DIR)/$f) -ULTRALIB_DIR := lib/ultralib -ULTRALIB_LIB := $(ULTRALIB_DIR)/build/$(ULTRALIB_VERSION)/$(ULTRALIB_TARGET)/$(ULTRALIB_TARGET).a -LIBULTRA := $(BUILD_DIR)/libultra.a # Automatic dependency files DEP_FILES := $(O_FILES:.o=.d) \ $(O_FILES:.o=.asmproc.d) # create build directories -$(shell mkdir -p $(BUILD_DIR)/linker_scripts/$(VERSION) $(BUILD_DIR)/linker_scripts/$(VERSION)/auto $(foreach dir,$(SRC_DIRS) $(ASM_DIRS) $(BIN_DIRS),$(BUILD_DIR)/$(dir))) +$(shell mkdir -p $(BUILD_DIR)/linker_scripts/$(VERSION) $(BUILD_DIR)/linker_scripts/$(VERSION)/auto $(foreach dir,$(SRC_DIRS) $(ASM_DIRS) $(BIN_DIRS) $(LIB_DIRS),$(BUILD_DIR)/$(dir))) # directory flags @@ -288,17 +293,17 @@ $(ROM): $(ELF) # TODO: update rom header checksum # TODO: avoid using auto/undefined -$(ELF): $(O_FILES) $(LIBULTRA) $(LDSCRIPT) $(BUILD_DIR)/linker_scripts/$(VERSION)/hardware_regs.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/undefined_syms.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/pif_syms.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/auto/undefined_syms_auto.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/auto/undefined_funcs_auto.ld +$(ELF): $(O_FILES) $(LIBULTRA_LIB) $(LDSCRIPT) $(BUILD_DIR)/linker_scripts/$(VERSION)/hardware_regs.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/undefined_syms.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/pif_syms.ld $(LD) $(LDFLAGS) -T $(LDSCRIPT) \ -T $(BUILD_DIR)/linker_scripts/$(VERSION)/hardware_regs.ld -T $(BUILD_DIR)/linker_scripts/$(VERSION)/undefined_syms.ld -T $(BUILD_DIR)/linker_scripts/$(VERSION)/pif_syms.ld \ - -T $(BUILD_DIR)/linker_scripts/$(VERSION)/auto/undefined_syms_auto.ld -T $(BUILD_DIR)/linker_scripts/$(VERSION)/auto/undefined_funcs_auto.ld \ - -Map $(MAP) $(LIBULTRA) -o $@ + -Map $(MAP) $(LIBULTRA_LIB) -o $@ $(LDSCRIPT): linker_scripts/$(VERSION)/yoshisstory.ld cp $< $@ -$(LIBULTRA): $(ULTRALIB_LIB) +$(LIBULTRA_LIB): $(ULTRALIB_LIB) cp $< $@ + $(LIBDUMP_CMD) $(ULTRALIB_LIB): $(MAKE) lib diff --git a/linker_scripts/us/symbol_addrs_libultra.txt b/linker_scripts/us/symbol_addrs_libultra.txt index 7e29fc0..7ad3f9a 100644 --- a/linker_scripts/us/symbol_addrs_libultra.txt +++ b/linker_scripts/us/symbol_addrs_libultra.txt @@ -3,515 +3,515 @@ osRomBase = 0x80000308; // size:0x4 osResetType = 0x8000030C; // size:0x4 osAppNMIBuffer = 0x8000031C; // -osSendMesg = 0x80082210; // size:0x14C +osSendMesg = 0x80082210; // size:0x14C defined:true -osPfsFreeBlocks = 0x80082360; // size:0x14C +osPfsFreeBlocks = 0x80082360; // size:0x14C defined:true -osRecvMesg = 0x800824B0; // size:0x138 +osRecvMesg = 0x800824B0; // size:0x138 defined:true -osSetIntMask = 0x800825F0; // size:0xA0 +osSetIntMask = 0x800825F0; // size:0xA0 defined:true -guScaleF = 0x80082690; // size:0x54 -guScale = 0x800826E4; // size:0x48 +guScaleF = 0x80082690; // size:0x54 defined:true +guScale = 0x800826E4; // size:0x48 defined:true -//__sinf = 0x80082730; // size:0x1C0 -sinf = 0x80082730; // +//__sinf = 0x80082730; // size:0x1C0 defined:true +sinf = 0x80082730; // defined:true -sins = 0x800828F0; // size:0x70 +sins = 0x800828F0; // size:0x70 defined:true -_VirtualToPhysicalTask = 0x80082960; // -osSpTaskLoad = 0x80082A6C; // -osSpTaskStartGo = 0x80082BD4; // +_VirtualToPhysicalTask = 0x80082960; // defined:true +osSpTaskLoad = 0x80082A6C; // defined:true +osSpTaskStartGo = 0x80082BD4; // defined:true -__ull_rshift = 0x80082C20; // size:0x2C -__ull_rem = 0x80082C4C; // size:0x3C -__ull_div = 0x80082C88; // size:0x3C -__ll_lshift = 0x80082CC4; // size:0x2C -__ll_rem = 0x80082CF0; // size:0x3C -__ll_div = 0x80082D2C; // size:0x5C -__ll_mul = 0x80082D88; // size:0x30 -__ull_divremi = 0x80082DB8; // size:0x60 -__ll_mod = 0x80082E18; // size:0x9C -__ll_rshift = 0x80082EB4; // size:0x2C +__ull_rshift = 0x80082C20; // size:0x2C defined:true +__ull_rem = 0x80082C4C; // size:0x3C defined:true +__ull_div = 0x80082C88; // size:0x3C defined:true +__ll_lshift = 0x80082CC4; // size:0x2C defined:true +__ll_rem = 0x80082CF0; // size:0x3C defined:true +__ll_div = 0x80082D2C; // size:0x5C defined:true +__ll_mul = 0x80082D88; // size:0x30 defined:true +__ull_divremi = 0x80082DB8; // size:0x60 defined:true +__ll_mod = 0x80082E18; // size:0x9C defined:true +__ll_rshift = 0x80082EB4; // size:0x2C defined:true -guS2DEmuSetScissor = 0x80082EE0; // -tmemLoad_B = 0x80082F38; // -tmemLoad_A = 0x80082FC4; // -tmemLoad = 0x80083038; // -guS2DEmuBgRect1Cyc = 0x80083394; // +guS2DEmuSetScissor = 0x80082EE0; // defined:true +tmemLoad_B = 0x80082F38; // defined:true +tmemLoad_A = 0x80082FC4; // defined:true +tmemLoad = 0x80083038; // defined:true +guS2DEmuBgRect1Cyc = 0x80083394; // defined:true -__osExceptionPreamble = 0x80083DD0; // size:0x10 -__osException = 0x80083DE0; // size:0x534 -send_mesg = 0x80084314; // size:0xB4 -handle_CpU = 0x800843C8; // size:0x34 -__osEnqueueAndYield = 0x800843FC; // size:0x100 -__osEnqueueThread = 0x800844FC; // size:0x48 -__osPopThread = 0x80084544; // size:0x10 -__osDispatchThread = 0x80084554; // size:0x17C -__osCleanupThread = 0x800846D0; // size:0x8 +__osExceptionPreamble = 0x80083DD0; // size:0x10 defined:true +__osException = 0x80083DE0; // size:0x534 defined:true +send_mesg = 0x80084314; // size:0xB4 defined:true +handle_CpU = 0x800843C8; // size:0x34 defined:true +__osEnqueueAndYield = 0x800843FC; // size:0x100 defined:true +__osEnqueueThread = 0x800844FC; // size:0x48 defined:true +__osPopThread = 0x80084544; // size:0x10 defined:true +__osDispatchThread = 0x80084554; // size:0x17C defined:true +__osCleanupThread = 0x800846D0; // size:0x8 defined:true -__osDequeueThread = 0x800846E0; // size:0x40 +__osDequeueThread = 0x800846E0; // size:0x40 defined:true -osDestroyThread = 0x80084720; // +osDestroyThread = 0x80084720; // defined:true -bzero = 0x80084820; // +bzero = 0x80084820; // defined:true __osLeoInterrupt = 0x800848C0; // size:0x6A4 -__osLeoAbnormalResume = 0x80084F64; // -__osLeoResume = 0x8008504C; // +__osLeoAbnormalResume = 0x80084F64; // defined:true +__osLeoResume = 0x8008504C; // defined:true -osContInit = 0x80085140; // -__osContGetInitData = 0x80085338; // -__osPackRequestData = 0x80085408; // +osContInit = 0x80085140; // defined:true +__osContGetInitData = 0x80085338; // defined:true +__osPackRequestData = 0x80085408; // defined:true -__osSiCreateAccessQueue = 0x80085500; // -__osSiGetAccess = 0x80085550; // -__osSiRelAccess = 0x80085594; // +__osSiCreateAccessQueue = 0x80085500; // defined:true +__osSiGetAccess = 0x80085550; // defined:true +__osSiRelAccess = 0x80085594; // defined:true -osEepromWrite = 0x800855C0; // -__osPackEepWriteData = 0x800857E4; // -__osEepStatus = 0x800858F0; // +osEepromWrite = 0x800855C0; // defined:true +__osPackEepWriteData = 0x800857E4; // defined:true +__osEepStatus = 0x800858F0; // defined:true -osCreateThread = 0x80085B10; // size:0x144 +osCreateThread = 0x80085B10; // size:0x144 defined:true -osContStartReadData = 0x80085C60; // size:0x8C -osContGetReadData = 0x80085CEC; // size:0xA8 -__osPackReadData= 0x80085D94; // +osContStartReadData = 0x80085C60; // size:0x8C defined:true +osContGetReadData = 0x80085CEC; // size:0xA8 defined:true +__osPackReadData= 0x80085D94; // defined:true -osDriveRomInit = 0x80085E80; // size:0xD8 +osDriveRomInit = 0x80085E80; // size:0xD8 defined:true -osVirtualToPhysical = 0x80085F60; // size:0x7C +osVirtualToPhysical = 0x80085F60; // size:0x7C defined:true -osWritebackDCache = 0x80085FE0; // size:0x74 +osWritebackDCache = 0x80085FE0; // size:0x74 defined:true -osInitialize = 0x80086060; // size:0x28C +osInitialize = 0x80086060; // size:0x28C defined:true -osPiRawReadIo = 0x800862F0; // size:0x54 +osPiRawReadIo = 0x800862F0; // size:0x54 defined:true -__osSetSR = 0x800863B0; // size:0x10 +__osSetSR = 0x800863B0; // size:0x10 defined:true -__osGetSR = 0x800863C0; // size:0xC +__osGetSR = 0x800863C0; // size:0xC defined:true -guPerspectiveF = 0x800863D0; // size:0x230 -guPerspective = 0x80086600; // size:0x58 +guPerspectiveF = 0x800863D0; // size:0x230 defined:true +guPerspective = 0x80086600; // size:0x58 defined:true -__osSpRawStartDma = 0x80086660; // size:0x8C +__osSpRawStartDma = 0x80086660; // size:0x8C defined:true -__osSiRawStartDma = 0x800866F0; // size:0xAC +__osSiRawStartDma = 0x800866F0; // size:0xAC defined:true -osViBlack = 0x800867A0; // size:0x70 +osViBlack = 0x800867A0; // size:0x70 defined:true -__osSiRawReadIo = 0x80086810; // +__osSiRawReadIo = 0x80086810; // defined:true -osSpTaskYield = 0x80086860; // size:0x20 +osSpTaskYield = 0x80086860; // size:0x20 defined:true -osGetThreadId = 0x80086880; // size:0x18 +osGetThreadId = 0x80086880; // size:0x18 defined:true -__osPfsGetNextPage = 0x800868A0; // -osPfsReadWriteFile = 0x8008699C; // +__osPfsGetNextPage = 0x800868A0; // defined:true +osPfsReadWriteFile = 0x8008699C; // defined:true -guMtxF2L = 0x80086DA0; // -guMtxIdentF = 0x80086EA0; // -gMtxIdent = 0x80086F28; // -guMtxL2F = 0x80086F58; // +guMtxF2L = 0x80086DA0; // defined:true +guMtxIdentF = 0x80086EA0; // defined:true +gMtxIdent = 0x80086F28; // defined:true +guMtxL2F = 0x80086F58; // defined:true -osViSetMode = 0x80087010; // size:0x68 +osViSetMode = 0x80087010; // size:0x68 defined:true -guLookAtF = 0x80087080; // size:0x2B8 -guLookAt = 0x80087338; // size:0x78 +guLookAtF = 0x80087080; // size:0x2B8 defined:true +guLookAt = 0x80087338; // size:0x78 defined:true -osMotorStop = 0x800873B0; // size:0x1A0 -osMotorStart = 0x80087550; // size:0x1A0 -_MakeMotorData = 0x800876F0; // -osMotorInit = 0x8008786C; // size:0x2DC +osMotorStop = 0x800873B0; // size:0x1A0 defined:true +osMotorStart = 0x80087550; // size:0x1A0 defined:true +_MakeMotorData = 0x800876F0; // defined:true +osMotorInit = 0x8008786C; // size:0x2DC defined:true -osPfsAllocateFile = 0x80087B50; // size:0x484 -__osPfsDeclearPage = 0x80087FD4; // size:0x264 -__osClearPage = 0x80088238; // +osPfsAllocateFile = 0x80087B50; // size:0x484 defined:true +__osPfsDeclearPage = 0x80087FD4; // size:0x264 defined:true +__osClearPage = 0x80088238; // defined:true -__osProbeTLB = 0x80088300; // size:0xB8 +__osProbeTLB = 0x80088300; // size:0xB8 defined:true -osGetCount = 0x800883C0; // size:0xC +osGetCount = 0x800883C0; // size:0xC defined:true -__osSumcalc = 0x800883D0; // size:0x5C -__osIdCheckSum = 0x8008842C; // size:0x68 -__osRepairPackId = 0x80088494; // size:0x418 -__osCheckPackId = 0x800888AC; // size:0x198 -__osGetId = 0x80088A44; // size:0x25C -__osCheckId = 0x80088CA0; // size:0xFC -__osPfsRWInode = 0x80088D9C; // size:0x320 -__osPfsSelectBank = 0x800890BC; // size:0x6C +__osSumcalc = 0x800883D0; // size:0x5C defined:true +__osIdCheckSum = 0x8008842C; // size:0x68 defined:true +__osRepairPackId = 0x80088494; // size:0x418 defined:true +__osCheckPackId = 0x800888AC; // size:0x198 defined:true +__osGetId = 0x80088A44; // size:0x25C defined:true +__osCheckId = 0x80088CA0; // size:0xFC defined:true +__osPfsRWInode = 0x80088D9C; // size:0x320 defined:true +__osPfsSelectBank = 0x800890BC; // size:0x6C defined:true -osEepromProbe = 0x80089130; // size:0xA0 +osEepromProbe = 0x80089130; // size:0xA0 defined:true -osPiStartDma = 0x800891D0; // size:0x10C +osPiStartDma = 0x800891D0; // size:0x10C defined:true -osPfsFindFile = 0x800892E0; // size:0x1B4 +osPfsFindFile = 0x800892E0; // size:0x1B4 defined:true -osCreatePiManager = 0x800894A0; // size:0x188 +osCreatePiManager = 0x800894A0; // size:0x188 defined:true -osCartRomInit = 0x80089630; // size:0xF4 +osCartRomInit = 0x80089630; // size:0xF4 defined:true -__osPiCreateAccessQueue = 0x80089730; // -__osPiGetAccess = 0x80089780; // -__osPiRelAccess = 0x800897C4; // +__osPiCreateAccessQueue = 0x80089730; // defined:true +__osPiGetAccess = 0x80089780; // defined:true +__osPiRelAccess = 0x800897C4; // defined:true -__osDevMgrMain = 0x80089800; // size:0x490 +__osDevMgrMain = 0x80089800; // size:0x490 defined:true -osPiRawStartDma = 0x80089C90; // size:0xE0 +osPiRawStartDma = 0x80089C90; // size:0xE0 defined:true -osSetEventMesg = 0x80089D70; // size:0x68 +osSetEventMesg = 0x80089D70; // size:0x68 defined:true -sqrtf = 0x80089DE0; // size:0x8 +sqrtf = 0x80089DE0; // size:0x8 defined:true -osContStartQuery = 0x80089DF0; // size:0x84 -osContGetQuery = 0x80089E74; // size:0x28 +osContStartQuery = 0x80089DF0; // size:0x84 defined:true +osContGetQuery = 0x80089E74; // size:0x28 defined:true -_Putfld = 0x80089EA0; // -_Printf = 0x8008A510; // size:0x648 +_Putfld = 0x80089EA0; // defined:true +_Printf = 0x8008A510; // size:0x648 defined:true -osEPiStartDma = 0x8008AB60; // size:0xD4 +osEPiStartDma = 0x8008AB60; // size:0xD4 defined:true -osLeoDiskInit = 0x8008AC40; // size:0x100 +osLeoDiskInit = 0x8008AC40; // size:0x100 defined:true -rmonPrintf = 0x8008AD40; // size:0x1C -osSyncPrintf = 0x8008AD5C; // size:0x1C +rmonPrintf = 0x8008AD40; // size:0x1C defined:true +osSyncPrintf = 0x8008AD5C; // size:0x1C defined:true -memcpy = 0x8008AD80; // size:0x2C -strlen = 0x8008ADAC; // size:0x28 -strchr = 0x8008ADD4; // size:0x40 +memcpy = 0x8008AD80; // size:0x2C defined:true +strlen = 0x8008ADAC; // size:0x28 defined:true +strchr = 0x8008ADD4; // size:0x40 defined:true -osCreateMesgQueue = 0x8008AE20; // size:0x2C +osCreateMesgQueue = 0x8008AE20; // size:0x2C defined:true -osInvalICache = 0x8008AE50; // size:0x74 +osInvalICache = 0x8008AE50; // size:0x74 defined:true -osInvalDCache = 0x8008AED0; // size:0xAC +osInvalDCache = 0x8008AED0; // size:0xAC defined:true -__osSpDeviceBusy = 0x8008AF80; // size:0x2C +__osSpDeviceBusy = 0x8008AF80; // size:0x2C defined:true -__osSiDeviceBusy = 0x8008AFB0; // size:0x2C +__osSiDeviceBusy = 0x8008AFB0; // size:0x2C defined:true -osJamMesg = 0x8008AFE0; // size:0x150 +osJamMesg = 0x8008AFE0; // size:0x150 defined:true -osSetThreadPri = 0x8008B130; // size:0xE0 +osSetThreadPri = 0x8008B130; // size:0xE0 defined:true -osGetThreadPri = 0x8008B210; // size:0x18 +osGetThreadPri = 0x8008B210; // size:0x18 defined:true -osViSwapBuffer = 0x8008B230; // size:0x50 +osViSwapBuffer = 0x8008B230; // size:0x50 defined:true -guMtxXFML = 0x8008B280; // size:0x60 -guMtxCatL = 0x8008B2E0; // size:0x58 +guMtxXFML = 0x8008B280; // size:0x60 defined:true +guMtxCatL = 0x8008B2E0; // size:0x58 defined:true -guMtxXFMF = 0x8008B340; // size:0xA0 -guMtxCatF = 0x8008B3E0; // size:0x168 +guMtxXFMF = 0x8008B340; // size:0xA0 defined:true +guMtxCatF = 0x8008B3E0; // size:0x168 defined:true -osEPiRawStartDma = 0x8008B550; // size:0x224 +osEPiRawStartDma = 0x8008B550; // size:0x224 defined:true -osSpTaskYielded = 0x8008B780; // size:0x80 +osSpTaskYielded = 0x8008B780; // size:0x80 defined:true -bcmp = 0x8008B800; // +bcmp = 0x8008B800; // defined:true -osGetTime = 0x8008B920; // size:0x84 +osGetTime = 0x8008B920; // size:0x84 defined:true -__osTimerServicesInit = 0x8008B9B0; // size:0x8C -__osTimerInterrupt = 0x8008BA3C; // size:0x178 -__osSetTimerIntr = 0x8008BBB4; // size:0x74 -__osInsertTimer = 0x8008BC28; // size:0x188 +__osTimerServicesInit = 0x8008B9B0; // size:0x8C defined:true +__osTimerInterrupt = 0x8008BA3C; // size:0x178 defined:true +__osSetTimerIntr = 0x8008BBB4; // size:0x74 defined:true +__osInsertTimer = 0x8008BC28; // size:0x188 defined:true -__osSetGlobalIntMask = 0x8008BDB0; // size:0x4C +__osSetGlobalIntMask = 0x8008BDB0; // size:0x4C defined:true -osAiSetFrequency = 0x8008BE00; // size:0x160 +osAiSetFrequency = 0x8008BE00; // size:0x160 defined:true -osDpGetCounters = 0x8008BF60; // size:0x44 +osDpGetCounters = 0x8008BF60; // size:0x44 defined:true -__osContAddressCrc = 0x8008BFB0; // size:0xB0 -__osContDataCrc = 0x8008C060; // size:0xD0 +__osContAddressCrc = 0x8008BFB0; // size:0xB0 defined:true +__osContDataCrc = 0x8008C060; // size:0xD0 defined:true -__osGetActiveQueue = 0x8008C130; // +__osGetActiveQueue = 0x8008C130; // defined:true -__osSetCompare = 0x8008C140; // size:0xC +__osSetCompare = 0x8008C140; // size:0xC defined:true -guNormalize = 0x8008C150; // size:0x84 +guNormalize = 0x8008C150; // size:0x84 defined:true -osDpSetStatus = 0x8008C1E0; // size:0xC +osDpSetStatus = 0x8008C1E0; // size:0xC defined:true -bcopy = 0x8008C1F0; // +bcopy = 0x8008C1F0; // defined:true -__osResetGlobalIntMask = 0x8008C500; // size:0x58 +__osResetGlobalIntMask = 0x8008C500; // size:0x58 defined:true -osPfsDeleteFile = 0x8008C560; // size:0x2E0 -__osPfsReleasePages = 0x8008C840; // size:0x248 -__osBlockSum = 0x8008CA88; // size:0xF0 +osPfsDeleteFile = 0x8008C560; // size:0x2E0 defined:true +__osPfsReleasePages = 0x8008C840; // size:0x248 defined:true +__osBlockSum = 0x8008CA88; // size:0xF0 defined:true -guOrthoF = 0x8008CB80; // size:0x154 -guOrtho = 0x8008CCD4; // size:0x68 +guOrthoF = 0x8008CB80; // size:0x154 defined:true +guOrtho = 0x8008CCD4; // size:0x68 defined:true -__osDisableInt = 0x8008CD40; // size:0x20 -__osRestoreInt = 0x8008CD60; // size:0x1C +__osDisableInt = 0x8008CD40; // size:0x20 defined:true +__osRestoreInt = 0x8008CD60; // size:0x1C defined:true -__osViInit = 0x8008CD80; // size:0x13C +__osViInit = 0x8008CD80; // size:0x13C defined:true -__osViSwapContext = 0x8008CEC0; // size:0x35C +__osViSwapContext = 0x8008CEC0; // size:0x35C defined:true -osPiGetCmdQueue = 0x8008D220; // size:0x28 +osPiGetCmdQueue = 0x8008D220; // size:0x28 defined:true -// __cosf = 0x8008D250; // size:0x168 -cosf = 0x8008D250; // +// __cosf = 0x8008D250; // size:0x168 defined:true +cosf = 0x8008D250; // defined:true -coss = 0x8008D3C0; // size:0x30 +coss = 0x8008D3C0; // size:0x30 defined:true -osViSetSpecialFeatures = 0x8008D3F0; // size:0x1B8 +osViSetSpecialFeatures = 0x8008D3F0; // size:0x1B8 defined:true -osViSetEvent = 0x8008D5B0; // size:0x6C +osViSetEvent = 0x8008D5B0; // size:0x6C defined:true -osPfsIsPlug = 0x8008D620; // size:0x1A0 -__osPfsRequestData = 0x8008D7C0; // size:0xD0 -__osPfsGetInitData = 0x8008D890; // size:0xD0 +osPfsIsPlug = 0x8008D620; // size:0x1A0 defined:true +__osPfsRequestData = 0x8008D7C0; // size:0xD0 defined:true +__osPfsGetInitData = 0x8008D890; // size:0xD0 defined:true -osPfsNumFiles = 0x8008D960; // size:0x144 +osPfsNumFiles = 0x8008D960; // size:0x144 defined:true -guS2DInitBg = 0x8008DAB0; // size:0x174 +guS2DInitBg = 0x8008DAB0; // size:0x174 defined:true -osContSetCh = 0x8008DC30; // size:0x64 +osContSetCh = 0x8008DC30; // size:0x64 defined:true -__osSetFpcCsr = 0x8008DCA0; // size:0x10 +__osSetFpcCsr = 0x8008DCA0; // size:0x10 defined:true -osPfsFileState = 0x8008DCB0; // size:0x2F0 +osPfsFileState = 0x8008DCB0; // size:0x2F0 defined:true -osPfsInitPak = 0x8008DFA0; // size:0x294 +osPfsInitPak = 0x8008DFA0; // size:0x294 defined:true -__osPfsGetStatus = 0x8008E240; // size:0xE4 -__osPfsRequestOneChannel = 0x8008E324; // size:0xC0 -__osPfsGetOneChannelData = 0x8008E3E4; // size:0x9C +__osPfsGetStatus = 0x8008E240; // size:0xE4 defined:true +__osPfsRequestOneChannel = 0x8008E324; // size:0xC0 defined:true +__osPfsGetOneChannelData = 0x8008E3E4; // size:0x9C defined:true -osPfsChecker = 0x8008E480; // size:0x6C4 -corrupted_init = 0x8008EB44; // size:0x1B4 -corrupted = 0x8008ECF8; // size:0x1E8 +osPfsChecker = 0x8008E480; // size:0x6C4 defined:true +corrupted_init = 0x8008EB44; // size:0x1B4 defined:true +corrupted = 0x8008ECF8; // size:0x1E8 defined:true -osAiGetLength = 0x8008EEE0; // size:0xC +osAiGetLength = 0x8008EEE0; // size:0xC defined:true -osEPiRawReadIo = 0x8008EEF0; // size:0x194 +osEPiRawReadIo = 0x8008EEF0; // size:0x194 defined:true -osMapTLBRdb = 0x8008F090; // size:0x58 +osMapTLBRdb = 0x8008F090; // size:0x58 defined:true -osYieldThread = 0x8008F0F0; // size:0x4C +osYieldThread = 0x8008F0F0; // size:0x4C defined:true -guTranslateF = 0x8008F140; // size:0x48 -guTranslate = 0x8008F188; // size:0x54 +guTranslateF = 0x8008F140; // size:0x48 defined:true +guTranslate = 0x8008F188; // size:0x54 defined:true -__osContRamWrite = 0x8008F1E0; // size:0x204 -__osPackRamWriteData = 0x8008F3E4; // +__osContRamWrite = 0x8008F1E0; // size:0x204 defined:true +__osPackRamWriteData = 0x8008F3E4; // defined:true -osEPiRawWriteIo = 0x8008F540; // size:0x190 +osEPiRawWriteIo = 0x8008F540; // size:0x190 defined:true -osSetTimer = 0x8008F6D0; // size:0xD4 +osSetTimer = 0x8008F6D0; // size:0xD4 defined:true -_Genld = 0x8008F7B0; -_Ldtob = 0x8008FD20; +_Genld = 0x8008F7B0; // defined:true +_Ldtob = 0x8008FD20; // defined:true -lldiv = 0x80090270; // size:0x100 -ldiv = 0x80090370; // size:0x84 +lldiv = 0x80090270; // size:0x100 defined:true +ldiv = 0x80090370; // size:0x84 defined:true -_Litob = 0x80090400; // size:0x298 +_Litob = 0x80090400; // size:0x298 defined:true -__osSiRawWriteIo = 0x800906A0; // +__osSiRawWriteIo = 0x800906A0; // defined:true -__osSpSetStatus = 0x800906F0; // size:0xC +__osSpSetStatus = 0x800906F0; // size:0xC defined:true -__osSpGetStatus = 0x80090700; // size:0xC +__osSpGetStatus = 0x80090700; // size:0xC defined:true -osWritebackDCacheAll = 0x80090710; // size:0x28 +osWritebackDCacheAll = 0x80090710; // size:0x28 defined:true -__osGetCurrFaultedThread = 0x80090740; // +__osGetCurrFaultedThread = 0x80090740; // defined:true -__osContRamRead = 0x80090750; // size:0x21C -__osPackRamReadData = 0x8009096C; // +__osContRamRead = 0x80090750; // size:0x21C defined:true +__osPackRamReadData = 0x8009096C; // defined:true -__d_to_ll = 0x80090AB0; // size:0x1C -__f_to_ll = 0x80090ACC; // size:0x1C -__d_to_ull = 0x80090AE8; // size:0xA0 -__f_to_ull = 0x80090B88; // size:0x9C -__ll_to_d = 0x80090C24; // size:0x18 -__ll_to_f = 0x80090C3C; // size:0x18 -__ull_to_d = 0x80090C54; // size:0x34 -__ull_to_f = 0x80090C88; // size:0x30 +__d_to_ll = 0x80090AB0; // size:0x1C defined:true +__f_to_ll = 0x80090ACC; // size:0x1C defined:true +__d_to_ull = 0x80090AE8; // size:0xA0 defined:true +__f_to_ull = 0x80090B88; // size:0x9C defined:true +__ll_to_d = 0x80090C24; // size:0x18 defined:true +__ll_to_f = 0x80090C3C; // size:0x18 defined:true +__ull_to_d = 0x80090C54; // size:0x34 defined:true +__ull_to_f = 0x80090C88; // size:0x30 defined:true -osStartThread = 0x80090CC0; // size:0x150 +osStartThread = 0x80090CC0; // size:0x150 defined:true -osCreateViManager = 0x80090E20; // size:0x188 -viMgrMain = 0x80090FA8; // +osCreateViManager = 0x80090E20; // size:0x188 defined:true +viMgrMain = 0x80090FA8; // defined:true -__osViGetCurrentContext = 0x80091180; // +__osViGetCurrentContext = 0x80091180; // defined:true -osEepromRead = 0x80091190; // -__osPackEepReadData = 0x800913E4; // +osEepromRead = 0x80091190; // defined:true +__osPackEepReadData = 0x800913E4; // defined:true -osViGetCurrentFramebuffer = 0x800914F0; // +osViGetCurrentFramebuffer = 0x800914F0; // defined:true -__osSpSetPc = 0x80091530; // size:0x34 +__osSpSetPc = 0x80091530; // size:0x34 defined:true // .data -sintable = 0x800AA3B0; // type:s16 size:0x800 (sins, false) +sintable = 0x800AA3B0; // type:s16 size:0x800 defined:true (sins, false) -scissorX0 = 0x800AABB0; // type:u16 (us2dex_emu, false) -scissorY0 = 0x800AABB4; // type:u16 -scissorX1 = 0x800AABB8; // type:u16 -scissorY1 = 0x800AABBC; // type:u16 -flagBilerp = 0x800AABC0; // type:u8 -TMEMSIZE = 0x800AABC4; // type:s16 size:0xA -TMEMMASK = 0x800AABD0; // type:s16 size:0x8 -TMEMSHIFT = 0x800AABD8; // type:s16 size:0x8 +scissorX0 = 0x800AABB0; // type:u16 defined:true (us2dex_emu, false) +scissorY0 = 0x800AABB4; // type:u16 defined:true +scissorX1 = 0x800AABB8; // type:u16 defined:true +scissorY1 = 0x800AABBC; // type:u16 defined:true +flagBilerp = 0x800AABC0; // type:u8 defined:true +TMEMSIZE = 0x800AABC4; // type:s16 size:0xA defined:true +TMEMMASK = 0x800AABD0; // type:s16 size:0x8 defined:true +TMEMSHIFT = 0x800AABD8; // type:s16 size:0x8 defined:true -__osHwIntTable = 0x800AABE0; // size:0x14 (exceptasm, true) +__osHwIntTable = 0x800AABE0; // size:0x14 defined:true (exceptasm, true) -__osThreadTail = 0x800AAC00; // size:0x8 (createmesgqueue, false) -__osRunQueue = 0x800AAC08; // size:0x4 (setthreadpri, false) -__osActiveQueue = 0x800AAC0C; // size:0x4 (createthread, false) -__osRunningThread = 0x800AAC10; // size:0x4 (destroythread, false) -__osFaultedThread = 0x800AAC14; // size:0x4 (exceptasm, false) +__osThreadTail = 0x800AAC00; // size:0x8 defined:true (createmesgqueue, false) +__osRunQueue = 0x800AAC08; // size:0x4 defined:true (setthreadpri, false) +__osActiveQueue = 0x800AAC0C; // size:0x4 defined:true defined:true (createthread, false) +__osRunningThread = 0x800AAC10; // size:0x4 defined:true defined:true (destroythread, false) +__osFaultedThread = 0x800AAC14; // size:0x4 defined:true (exceptasm, false) -__osContinitialized = 0x800AAC20; // size:0x4 (controller, true) +__osContinitialized = 0x800AAC20; // size:0x4 defined:true (controller, true) -__osSiAccessQueueEnabled = 0x800AAC30; // size:0x4 (siacs, true) +__osSiAccessQueueEnabled = 0x800AAC30; // size:0x4 defined:true (siacs, true) -osClockRate = 0x800AAC40; // size:0x8 (initialize, true) -osViClock = 0x800AAC48; // size:0x4 (aisetfreq, false) -__osShutdown = 0x800AAC4C; // size:0x4 (seteventmesg, false) -__OSGlobalIntMask = 0x800AAC50; // size:0x4 (resetglobalintmask, false) +osClockRate = 0x800AAC40; // size:0x8 defined:true (initialize, true) +osViClock = 0x800AAC48; // size:0x4 defined:true (aisetfreq, false) +__osShutdown = 0x800AAC4C; // size:0x4 defined:true (seteventmesg, false) +__OSGlobalIntMask = 0x800AAC50; // size:0x4 defined:true (resetglobalintmask, false) -osViModeTable = 0x800AAC60; // size:0xD20 +osViModeTable = 0x800AAC60; // size:0xD20 defined:true -__osMotorinitialized = 0x800AB980; // type:u32 size:0x10 +__osMotorinitialized = 0x800AB980; // type:u32 size:0x10 defined:true -__osPiDevMgr = 0x800AB990; // size:0x1C (epidma, false) -__osPiTable = 0x800AB9AC; // size:0x4 (cartrominit, false) +__osPiDevMgr = 0x800AB990; // size:0x1C defined:true (epidma, false) +__osPiTable = 0x800AB9AC; // size:0x4 defined:true (cartrominit, false) -__osPiAccessQueueEnabled = 0x800AB9C0; // size:0x4 (pimgr, false) +__osPiAccessQueueEnabled = 0x800AB9C0; // size:0x4 defined:true (pimgr, false) -spaces = 0x800AB9D0; // (xprintf, false) -zeros = 0x800AB9F4; // (xprintf, false) +spaces = 0x800AB9D0; // defined:true (xprintf, false) +zeros = 0x800AB9F4; // defined:true (xprintf, false) -__osTimerList = 0x800ABA20; // size:0x4 (settimer, false) +__osTimerList = 0x800ABA20; // size:0x4 defined:true (settimer, false) -osViModeNtscLan1 = 0x800ABA30; // type:OSViMode size:0x50 +osViModeNtscLan1 = 0x800ABA30; // type:OSViMode size:0x50 defined:true -vi = 0x800ABA80; // size:0x70 (vi, false) -__osViCurr = 0x800ABAE0; // size:0x4 (vi, true) -__osViNext = 0x800ABAE4; // size:0x4 (vi, true) +vi = 0x800ABA80; // size:0x70 defined:true (vi, false) +__osViCurr = 0x800ABAE0; // size:0x4 defined:true (vi, true) +__osViNext = 0x800ABAE4; // size:0x4 defined:true (vi, true) -osViModePalLan1 = 0x800ABAF0; // type:OSViMode size:0x50 -osViModeMpalLan1 = 0x800ABB40; // type:OSViMode size:0x50 +osViModePalLan1 = 0x800ABAF0; // type:OSViMode size:0x50 defined:true +osViModeMpalLan1 = 0x800ABB40; // type:OSViMode size:0x50 defined:true -ldigs = 0x800ABB90; // size:0x14 (xlitob, false) -udigs = 0x800ABBA4; // size:0x14 (xlitob, false) +ldigs = 0x800ABB90; // size:0x14 defined:true (xlitob, false) +udigs = 0x800ABBA4; // size:0x14 defined:true (xlitob, false) -__osViDevMgr = 0x800ABBC0; // size:0x1C (vimgr, true) -__additional_scanline = 0x800ABBDC; // size:0x4 (vimgr, true) +__osViDevMgr = 0x800ABBC0; // size:0x1C defined:true (vimgr, true) +__additional_scanline = 0x800ABBDC; // size:0x4 defined:true (vimgr, true) // .rodata -__osRcpImTable = 0x800B31A0; // size:0x80 +__osRcpImTable = 0x800B31A0; // size:0x80 defined:true -P = 0x800B3220; // type:f64 (sinf, false) -rpi = 0x800B3248; // type:f64 -pihi = 0x800B3250; // type:f64 -pilo = 0x800B3258; // type:f64 -zero = 0x800B3260; // type:f32 +P = 0x800B3220; // type:f64 defined:true (sinf, false) +rpi = 0x800B3248; // type:f64 defined:true +pihi = 0x800B3250; // type:f64 defined:true +pilo = 0x800B3258; // type:f64 defined:true +zero = 0x800B3260; // type:f32 defined:true -__osIntOffTable = 0x800B3270; // type:u8 (exceptasm, false) -jtbl_800B3290 = 0x800B3290; // type:jtbl +__osIntOffTable = 0x800B3270; // type:u8 defined:true (exceptasm, false) +jtbl_800B3290 = 0x800B3290; // type:jtbl defined:true -RO_DBL_800B32C0 = 0x800B32C0; // type:f64 (perspective, false) +RO_DBL_800B32C0 = 0x800B32C0; // type:f64 defined:true (perspective, false) -jtbl_800B32D0 = 0x800B32D0; // type:jtbl (devmgr, false) +jtbl_800B32D0 = 0x800B32D0; // type:jtbl defined:true (devmgr, false) -RO_STR_800B32F0 = 0x800B32F0; // type:asciz (xprintf, false) -RO_STR_800B32F4 = 0x800B32F4; // type:asciz -RO_800B32FC = 0x800B32FC; // -jtbl_800B3314 = 0x800B3314; // type:jtbl +RO_STR_800B32F0 = 0x800B32F0; // type:asciz defined:true (xprintf, false) +RO_STR_800B32F4 = 0x800B32F4; // type:asciz defined:true +RO_800B32FC = 0x800B32FC; // defined:true +jtbl_800B3314 = 0x800B3314; // type:jtbl defined:true -cP = 0x800B33F0; // type:f64 (cosf, false) -crpi = 0x800B3418; // type:f64 -cpihi = 0x800B3420; // type:f64 -cpilo = 0x800B3428; // type:f64 -czero = 0x800B3430; // type:f32 +cP = 0x800B33F0; // type:f64 defined:true (cosf, false) +crpi = 0x800B3418; // type:f64 defined:true +cpihi = 0x800B3420; // type:f64 defined:true +cpilo = 0x800B3428; // type:f64 defined:true +czero = 0x800B3430; // type:f32 defined:true -pows = 0x800B3450; // type:f64 size:0x48 (xldtob, false) +__libm_qnan_f = 0x800B3440; // size:0x4 defined:true defined:true -__libm_qnan_f = 0x800B3440; // size:0x4 +pows = 0x800B3450; // type:f64 size:0x48 defined:true (xldtob, false) // .bss tmp_task = 0x8010F0C0; // size:0x40 (sptask, false) -rdpSetTimg_w0 = 0x8010F100; // size:0x4 -rdpSetTile_w0 = 0x8010F104; // size:0x4 -tmemSliceWmax = 0x8010F108; // size:0x2 -imageSrcWsize = 0x8010F10A; // size:0x2 -flagSplit = 0x8010F10C; // size:0x2 -imagePtrX0 = 0x8010F10E; // size:0x2 -imageTop = 0x8010F110; // size:0x4 -tmemSrcLines = 0x8010F114; // size:0x2 +rdpSetTimg_w0 = 0x8010F100; // size:0x4 defined:true +rdpSetTile_w0 = 0x8010F104; // size:0x4 defined:true +tmemSliceWmax = 0x8010F108; // size:0x2 defined:true +imageSrcWsize = 0x8010F10A; // size:0x2 defined:true +flagSplit = 0x8010F10C; // size:0x2 defined:true +imagePtrX0 = 0x8010F10E; // size:0x2 defined:true +imageTop = 0x8010F110; // size:0x4 defined:true +tmemSrcLines = 0x8010F114; // size:0x2 defined:true -leoDiskStack = 0x8010F120; // size:0x1000 +leoDiskStack = 0x8010F120; // size:0x1000 defined:true -__osContPifRam = 0x80110120; // size:0x40 (contquery, false) -__osContLastCmd = 0x80110160; // type:s8 size:0x1 (conteepread, false) -__osMaxControllers = 0x80110161; // type:s8 size:0x1 (contreaddata, false) +__osContPifRam = 0x80110120; // size:0x40 defined:true (contquery, false) +__osContLastCmd = 0x80110160; // type:s8 size:0x1 defined:true (conteepread, false) +__osMaxControllers = 0x80110161; // type:s8 size:0x1 defined:true (contreaddata, false) -__osEepromTimer = 0x80110162; // size:0x26 -__osEepromTimerQ = 0x80110188; // size:0x18 (controller, true) -__osEepromTimerMsg = 0x801101A0; // size:0x4 (controller, true) +__osEepromTimer = 0x80110162; // size:0x26 defined:true +__osEepromTimerQ = 0x80110188; // size:0x18 defined:true (controller, true) +__osEepromTimerMsg = 0x801101A0; // size:0x4 defined:true (controller, true) -siAccessBuf = 0x801101B0; // -__osSiAccessQueue = 0x801101B8; // +siAccessBuf = 0x801101B0; // defined:true +__osSiAccessQueue = 0x801101B8; // defined:true -DriveRomHandle = 0x801101D0; // size:0x74 +DriveRomHandle = 0x801101D0; // size:0x74 defined:true -__osFinalrom = 0x80110250; // size:0x4 +__osFinalrom = 0x80110250; // size:0x4 defined:true -__osThreadSave = 0x80110260; // size:0x1B0 +__osThreadSave = 0x80110260; // size:0x1B0 defined:true -_MotorStopData = 0x80110410; // size:0x100 -_MotorStartData = 0x80110510; // size:0x100 -_motorstopbuf = 0x80110610; // size:0x20 -_motorstartbuf = 0x80110630; // size:0x20 +_MotorStopData = 0x80110410; // size:0x100 defined:true +_MotorStartData = 0x80110510; // size:0x100 defined:true +_motorstopbuf = 0x80110610; // size:0x20 defined:true +_motorstartbuf = 0x80110630; // size:0x20 defined:true -piThread = 0x80110650; // size:0x1B0 -piThreadStack = 0x80110800; // size:0x1000 -piEventQueue = 0x80111800; // size:0x18 -piEventBuf = 0x80111818; // size:0x4 +piThread = 0x80110650; // size:0x1B0 defined:true +piThreadStack = 0x80110800; // size:0x1000 defined:true +piEventQueue = 0x80111800; // size:0x18 defined:true +piEventBuf = 0x80111818; // size:0x4 defined:true -CartRomHandle = 0x80111820; // size:0x74 +CartRomHandle = 0x80111820; // size:0x74 defined:true -piAccessBuf = 0x801118A0; // size:0x8 -__osPiAccessQueue = 0x801118A8; // size:0x18 +piAccessBuf = 0x801118A0; // size:0x8 defined:true +__osPiAccessQueue = 0x801118A8; // size:0x18 defined:true -__osEventStateTab = 0x801118C0; // size:0x78 +__osEventStateTab = 0x801118C0; // size:0x78 defined:true -LeoDiskHandle = 0x80111940; // size:0x74 -__osDiskHandle = 0x801119B4; // size:0x4 +LeoDiskHandle = 0x80111940; // size:0x74 defined:true +__osDiskHandle = 0x801119B4; // size:0x4 defined:true -__osBaseTimer = 0x801119C0; // -__osCurrentTime = 0x801119E0; // size:0x8 -__osBaseCounter = 0x801119E8; // size:0x4 -__osViIntrCount = 0x801119EC; // size:0x4 -__osTimerCounter = 0x801119F0; // size:0x4 +__osBaseTimer = 0x801119C0; // defined:true +__osCurrentTime = 0x801119E0; // size:0x8 defined:true +__osBaseCounter = 0x801119E8; // size:0x4 defined:true +__osViIntrCount = 0x801119EC; // size:0x4 defined:true +__osTimerCounter = 0x801119F0; // size:0x4 defined:true -__osPfsPifRam = 0x80111A00; // size:0x40 +__osPfsPifRam = 0x80111A00; // size:0x40 defined:true -viThread = 0x80111A40; // size:0x1B0 (vimgr, false) -viThreadStack = 0x80111BF0; // size:0x1000 -viEventQueue = 0x80112BF0; // size:0x18 -viEventBuf = 0x80112C08; // size:0x18 -viRetraceMsg = 0x80112C20; // size:0x18 -viCounterMsg = 0x80112C38; // size:0x18 -retrace = 0x80112C50; // size:0x2 +viThread = 0x80111A40; // size:0x1B0 defined:true (vimgr, false) +viThreadStack = 0x80111BF0; // size:0x1000 defined:true +viEventQueue = 0x80112BF0; // size:0x18 defined:true +viEventBuf = 0x80112C08; // size:0x18 defined:true +viRetraceMsg = 0x80112C20; // size:0x18 defined:true +viCounterMsg = 0x80112C38; // size:0x18 defined:true +retrace = 0x80112C50; // size:0x2 defined:true -__osEepPifRam = 0x80112C60; // type:s8 size:0x40 (conteepread, true) +__osEepPifRam = 0x80112C60; // type:s8 size:0x40 defined:true (conteepread, true) diff --git a/linker_scripts/us/undefined_syms.ld b/linker_scripts/us/undefined_syms.ld index e69de29..4606dea 100644 --- a/linker_scripts/us/undefined_syms.ld +++ b/linker_scripts/us/undefined_syms.ld @@ -0,0 +1,36 @@ +D_B58B0 = 0xB58B0; +D_E1AD0 = 0xE1AD0; +D_4F3930 = 0x4F3930; +D_319555C = 0x319555C; +D_319D560 = 0x319D560; +D_31A5564 = 0x31A5564; +D_360DA90 = 0x360DA90; +D_D000070 = 0xD000070; +D_D0000B0 = 0xD0000B0; +D_D0000C0 = 0xD0000C0; +D_D000150 = 0xD000150; +D_D000168 = 0xD000168; +D_D000180 = 0xD000180; +D_D000198 = 0xD000198; +D_D0001B0 = 0xD0001B0; +D_E000000 = 0xE000000; +D_F000000 = 0xF000000; +D_80000004 = 0x80000004; +D_80000005 = 0x80000005; +D_80000008 = 0x80000008; +D_8000000C = 0x8000000C; +D_80000028 = 0x80000028; +D_800B4CB0 = 0x800B4CB0; +D_800FD018 = 0x800FD018; +D_80112CA0 = 0x80112CA0; +D_801834C0 = 0x801834C0; +D_801940C0 = 0x801940C0; +D_801C77B0 = 0x801C77B0; +D_802078B0 = 0x802078B0; +D_A0000000 = 0xA0000000; +D_A0000164 = 0xA0000164; +D_A00002B8 = 0xA00002B8; +D_A4000000 = 0xA4000000; +D_A4001000 = 0xA4001000; +D_B0000458 = 0xB0000458; +D_B000045C = 0xB000045C; diff --git a/requirements.txt b/requirements.txt index 595e55b..928a484 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ -# TODO: splat64 version to 0.21.11 -splat64[mips]>=0.21.3,<1.0.0 +splat64[mips]>=0.21.11,<1.0.0 mapfile-parser>=2.3.5,<3.0.0 # asm-differ diff --git a/tools/progress.py b/tools/progress.py index 33527ef..d74c9d9 100755 --- a/tools/progress.py +++ b/tools/progress.py @@ -23,7 +23,15 @@ def getProgressFromMapFile(mapFile: mapfile_parser.MapFile, asmPath: Path, nonma if len(file) == 0: continue - folder = file.filepath.parts[pathIndex] + fileparts = file.filepath.parts + if "ultralib" in fileparts: + folder = "ultralib" + else: + folder = fileparts[pathIndex] + + if ".a" in folder: + folder = folder.split('.a')[0] + if folder in aliases: folder = aliases[folder] @@ -31,19 +39,31 @@ def getProgressFromMapFile(mapFile: mapfile_parser.MapFile, asmPath: Path, nonma progressPerFolder[folder] = mapfile_parser.ProgressStats() originalFilePath = Path(*file.filepath.parts[pathIndex:]) - fullAsmFile = asmPath / originalFilePath.with_suffix(".s") + + extensionlessFilePath = originalFilePath + while extensionlessFilePath.suffix: + extensionlessFilePath = extensionlessFilePath.with_suffix("") + + fullAsmFile = asmPath / extensionlessFilePath.with_suffix(".s") wholeFileIsUndecomped = fullAsmFile.exists() + for func in file: + funcAsmPath = nonmatchings / extensionlessFilePath / f"{func.name}.s" + + symSize = 0 + if func.size is not None: + symSize = func.size + if wholeFileIsUndecomped: - totalStats.undecompedSize += func.size - progressPerFolder[folder].undecompedSize += func.size - elif mapFile.findSymbolByName(func.name) is not None: - totalStats.undecompedSize += func.size - progressPerFolder[folder].undecompedSize += func.size + totalStats.undecompedSize += symSize + progressPerFolder[folder].undecompedSize += symSize + elif funcAsmPath.exists(): + totalStats.undecompedSize += symSize + progressPerFolder[folder].undecompedSize += symSize else: - totalStats.decompedSize += func.size - progressPerFolder[folder].decompedSize += func.size + totalStats.decompedSize += symSize + progressPerFolder[folder].decompedSize += symSize return totalStats, progressPerFolder @@ -64,7 +84,7 @@ def getProgress(mapPath: Path, version: str) -> tuple[mapfile_parser.ProgressSta nonMatchingsPath = ASMPATH / version / NONMATCHINGS - return mapFile.filterBySectionType(".text").getProgress(ASMPATH / version, nonMatchingsPath, aliases={"ultralib": "libultra"}) + return getProgressFromMapFile(mapFile.filterBySectionType(".text"), ASMPATH / version, nonMatchingsPath, aliases={"ultralib": "libultra"}) def progressMain(): parser = argparse.ArgumentParser() diff --git a/tools/sym_info.py b/tools/sym_info.py new file mode 100755 index 0000000..aa99f01 --- /dev/null +++ b/tools/sym_info.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 + +import argparse +from pathlib import Path + +import mapfile_parser + + +def symInfoMain(): + parser = argparse.ArgumentParser(description="Display various information about a symbol or address.") + parser.add_argument("symname", help="symbol name or VROM/VRAM address to lookup") + parser.add_argument("-v", "--version", help="Which version should be processed", default="us") + parser.add_argument("-e", "--expected", dest="use_expected", action="store_true", help="use the map file in expected/build/ instead of build/") + + args = parser.parse_args() + + BUILTMAP = Path("build") / f"yoshisstory-{args.version}.map" + + mapPath = BUILTMAP + if args.use_expected: + mapPath = "expected" / BUILTMAP + + mapfile_parser.frontends.sym_info.doSymInfo(mapPath, args.symname) + +if __name__ == "__main__": + symInfoMain() diff --git a/yamls/us/header.yaml b/yamls/us/header.yaml index 69e41f9..c7ea330 100644 --- a/yamls/us/header.yaml +++ b/yamls/us/header.yaml @@ -24,7 +24,7 @@ options: asset_path: assets/us build_path: build - lib_path: build + lib_path: build/lib extensions_path: tools/splat_ext mips_abi_float_regs: o32 diff --git a/yamls/us/main.yaml b/yamls/us/main.yaml index d96f425..e4aecc2 100644 --- a/yamls/us/main.yaml +++ b/yamls/us/main.yaml @@ -101,266 +101,139 @@ - [0x82D40, c, O2/aprintf] - [0x82DA0, c, O2/sleep] + # TODO: use commented out lib ones when possible # Libultra - - [0x82E10, asm, ../lib/ultralib/src/os/sendmesg] - - [0x82F60, asm, ../lib/ultralib/src/io/pfsfreeblocks] - - [0x830B0, asm, ../lib/ultralib/src/os/recvmesg] - - [0x831F0, hasm, ../lib/ultralib/src/os/setintmask] - - [0x83290, asm, ../lib/ultralib/src/gu/scale] - - [0x83330, asm, ../lib/ultralib/src/gu/sinf] - - [0x834F0, asm, ../lib/ultralib/src/gu/sins] - - [0x83560, asm, ../lib/ultralib/src/io/sptask] - - [0x83820, asm, ../lib/ultralib/src/libc/ll] # -mips3 - - [0x83AE0, asm, ../lib/ultralib/src/gu/us2dex_emu] - - [0x849D0, hasm, ../lib/ultralib/src/os/exceptasm] - - [0x852E0, asm, ../lib/ultralib/src/os/thread] - - [0x85320, asm, ../lib/ultralib/src/os/destroythread] - - [0x85420, hasm, ../lib/ultralib/src/libc/bzero] - - [0x854C0, asm, ../lib/ultralib/src/io/leointerrupt] - - [0x85D40, asm, ../lib/ultralib/src/io/controller] - - [0x86100, asm, ../lib/ultralib/src/io/siacs] - - [0x861C0, asm, ../lib/ultralib/src/io/conteepwrite] - - [0x86710, asm, ../lib/ultralib/src/os/createthread] - - [0x86860, asm, ../lib/ultralib/src/io/contreaddata] - - [0x86A80, asm, ../lib/ultralib/src/io/driverominit] - - [0x86B60, asm, ../lib/ultralib/src/os/virtualtophysical] - - [0x86BE0, hasm, ../lib/ultralib/src/os/writebackdcache] - - [0x86C60, asm, ../lib/ultralib/src/os/initialize] - - [0x86EF0, asm, ../lib/ultralib/src/io/pirawread] - - [0x86F50, hasm, ../lib/ultralib/src/os/parameters] - - [0x86FB0, hasm, ../lib/ultralib/src/os/setsr] - - [0x86FC0, hasm, ../lib/ultralib/src/os/getsr] - - [0x86FD0, asm, ../lib/ultralib/src/gu/perspective] - - [0x87260, asm, ../lib/ultralib/src/io/sprawdma] - - [0x872F0, asm, ../lib/ultralib/src/io/sirawdma] - - [0x873A0, asm, ../lib/ultralib/src/io/viblack] - - [0x87410, asm, ../lib/ultralib/src/io/sirawread] - - [0x87460, asm, ../lib/ultralib/src/io/sptaskyield] - - [0x87480, asm, ../lib/ultralib/src/os/getthreadid] - - [0x874A0, asm, ../lib/ultralib/src/io/pfsreadwritefile] - - [0x879A0, asm, ../lib/ultralib/src/gu/mtxutil] - - [0x87C10, asm, ../lib/ultralib/src/io/visetmode] - - [0x87C80, asm, ../lib/ultralib/src/gu/lookat] - - [0x87FB0, asm, ../lib/ultralib/src/io/motor] - - [0x88750, asm, ../lib/ultralib/src/io/pfsallocatefile] - - [0x88F00, hasm, ../lib/ultralib/src/os/probetlb] - - [0x88FC0, hasm, ../lib/ultralib/src/os/getcount] - - [0x88FD0, asm, ../lib/ultralib/src/io/contpfs] - - [0x89D30, asm, ../lib/ultralib/src/io/conteepprobe] - - [0x89DD0, asm, ../lib/ultralib/src/io/pidma] - - [0x89EE0, asm, ../lib/ultralib/src/io/pfssearchfile] - - [0x8A0A0, asm, ../lib/ultralib/src/io/pimgr] - - [0x8A230, asm, ../lib/ultralib/src/io/cartrominit] - - [0x8A330, asm, ../lib/ultralib/src/io/piacs] - - [0x8A400, asm, ../lib/ultralib/src/io/devmgr] - - [0x8A890, asm, ../lib/ultralib/src/io/pirawdma] - - [0x8A970, asm, ../lib/ultralib/src/os/seteventmesg] - - [0x8A9E0, hasm, ../lib/ultralib/src/gu/sqrtf] - - [0x8A9F0, asm, ../lib/ultralib/src/io/contquery] - - [0x8AAA0, asm, ../lib/ultralib/src/libc/xprintf] - - [0x8B760, asm, ../lib/ultralib/src/io/epidma] - - [0x8B840, asm, ../lib/ultralib/src/io/leodiskinit] - - [0x8B940, asm, ../lib/ultralib/src/libc/syncprintf] - - [0x8B980, asm, ../lib/ultralib/src/libc/string] # -O3 - - [0x8BA20, asm, ../lib/ultralib/src/os/createmesgqueue] - - [0x8BA50, hasm, ../lib/ultralib/src/os/invalicache] - - [0x8BAD0, hasm, ../lib/ultralib/src/os/invaldcache] - - [0x8BB80, asm, ../lib/ultralib/src/io/sp] - - [0x8BBB0, asm, ../lib/ultralib/src/io/si] - - [0x8BBE0, asm, ../lib/ultralib/src/os/jammesg] - - [0x8BD30, asm, ../lib/ultralib/src/os/setthreadpri] - - [0x8BE10, asm, ../lib/ultralib/src/os/getthreadpri] - - [0x8BE30, asm, ../lib/ultralib/src/io/viswapbuf] - - [0x8BE80, asm, ../lib/ultralib/src/gu/mtxcatl] - - [0x8BF40, asm, ../lib/ultralib/src/gu/mtxcatf] - - [0x8C150, asm, ../lib/ultralib/src/io/epirawdma] - - [0x8C380, asm, ../lib/ultralib/src/os/sptaskyielded] - - [0x8C400, hasm, ../lib/ultralib/src/libc/bcmp] - - [0x8C520, asm, ../lib/ultralib/src/os/gettime] - - [0x8C5B0, asm, ../lib/ultralib/src/os/timerintr] - - [0x8C9B0, asm, ../lib/ultralib/src/os/setglobalintmask] - - [0x8CA00, asm, ../lib/ultralib/src/io/aisetfreq] - - [0x8CB60, asm, ../lib/ultralib/src/io/dpctr] - - [0x8CBB0, asm, ../lib/ultralib/src/io/crc] - - [0x8CD30, asm, ../lib/ultralib/src/os/getactivequeue] - - [0x8CD40, hasm, ../lib/ultralib/src/os/setcompare] - - [0x8CD50, asm, ../lib/ultralib/src/gu/normalize] - - [0x8CDE0, asm, ../lib/ultralib/src/io/dpsetstat] - - [0x8CDF0, hasm, ../lib/ultralib/src/libc/bcopy] - - [0x8D100, asm, ../lib/ultralib/src/os/resetglobalintmask] - - [0x8D160, asm, ../lib/ultralib/src/io/pfsdeletefile] - - [0x8D780, asm, ../lib/ultralib/src/gu/ortho] - - [0x8D940, hasm, ../lib/ultralib/src/os/interrupt] - - [0x8D980, asm, ../lib/ultralib/src/io/vi] - - [0x8DAC0, asm, ../lib/ultralib/src/io/viswapcontext] - - [0x8DE20, asm, ../lib/ultralib/src/io/pigetcmdq] - - [0x8DE50, asm, ../lib/ultralib/src/gu/cosf] - - [0x8DFC0, asm, ../lib/ultralib/src/gu/coss] - - [0x8DFF0, asm, ../lib/ultralib/src/io/visetspecial] - - [0x8E1B0, asm, ../lib/ultralib/src/io/visetevent] - - [0x8E220, asm, ../lib/ultralib/src/io/pfsisplug] - - [0x8E560, asm, ../lib/ultralib/src/io/pfsnumfiles] - - [0x8E6B0, asm, ../lib/ultralib/src/gu/us2dex] - - [0x8E830, asm, ../lib/ultralib/src/io/contsetch] - - [0x8E8A0, asm, ../lib/ultralib/src/os/setfpccsr] - - [0x8E8B0, asm, ../lib/ultralib/src/io/pfsfilestate] - - [0x8EBA0, asm, ../lib/ultralib/src/io/pfsinitpak] - - [0x8EE40, asm, ../lib/ultralib/src/io/pfsgetstatus] - - [0x8F080, asm, ../lib/ultralib/src/io/pfschecker] - - [0x8FAE0, asm, ../lib/ultralib/src/io/aigetlen] - - [0x8FAF0, asm, ../lib/ultralib/src/io/epirawread] - - [0x8FC90, hasm, ../lib/ultralib/src/os/maptlbrdb] - - [0x8FCF0, asm, ../lib/ultralib/src/os/yieldthread] - - [0x8FD40, asm, ../lib/ultralib/src/gu/translate] - - [0x8FDE0, asm, ../lib/ultralib/src/io/contramwrite] - - [0x90140, asm, ../lib/ultralib/src/io/epirawwrite] - - [0x902D0, asm, ../lib/ultralib/src/os/settimer] - - [0x903B0, asm, ../lib/ultralib/src/libc/xldtob] # -O3 - - [0x90E70, asm, ../lib/ultralib/src/libc/ldiv] - - [0x91000, asm, ../lib/ultralib/src/libc/xlitob] - - [0x912A0, asm, ../lib/ultralib/src/io/sirawwrite] - - [0x912F0, asm, ../lib/ultralib/src/io/spsetstat] - - [0x91300, asm, ../lib/ultralib/src/io/spgetstat] - - [0x91310, asm, ../lib/ultralib/src/os/writebackdcacheall] - - [0x91340, asm, ../lib/ultralib/src/os/getcurrfaultthread] - - [0x91350, asm, ../lib/ultralib/src/io/contramread] - - [0x916B0, asm, ../lib/ultralib/src/libc/llcvt] - - [0x918C0, asm, ../lib/ultralib/src/os/startthread] - - [0x91A20, asm, ../lib/ultralib/src/io/vimgr] - - [0x91D80, asm, ../lib/ultralib/src/io/vigetcurrcontext] - - [0x91D90, asm, ../lib/ultralib/src/io/conteepread] - - [0x920F0, asm, ../lib/ultralib/src/io/vigetcurrframebuf] - - [0x92130, asm, ../lib/ultralib/src/io/spsetpc] - # TODO: Use lib when ultralib supports H - # - [0x82E10, lib, libultra, sendmesg] - # - [0x82F60, lib, libultra, pfsfreeblocks] - # - [0x830B0, lib, libultra, recvmesg] - # - [0x831F0, lib, libultra, setintmask] - # - [0x83290, lib, libultra, scale] - # - [0x83330, lib, libultra, sinf] - # - [0x834F0, lib, libultra, sins] - # - [0x83560, lib, libultra, sptask] - # - [0x83820, lib, libultra, ll] - # - [0x83AE0, lib, libultra, us2dex_emu] - # - [0x849D0, lib, libultra, exceptasm] - # - [0x852E0, lib, libultra, thread] - # - [0x85320, lib, libultra, destroythread] - # - [0x85420, lib, libultra, bzero] - # - [0x854C0, lib, libultra, leointerrupt] - # - [0x85D40, lib, libultra, controller] - # - [0x86100, lib, libultra, siacs] - # - [0x861C0, lib, libultra, conteepwrite] - # - [0x86710, lib, libultra, createthread] - # - [0x86860, lib, libultra, contreaddata] - # - [0x86A80, lib, libultra, driverominit] - # - [0x86B60, lib, libultra, virtualtophysical] - # - [0x86BE0, lib, libultra, writebackdcache] - # - [0x86C60, lib, libultra, initialize] - # - [0x86EF0, lib, libultra, pirawread] - # - [0x86F50, lib, libultra, parameters] - # - [0x86FB0, lib, libultra, setsr] - # - [0x86FC0, lib, libultra, getsr] - # - [0x86FD0, lib, libultra, perspective] - # - [0x87260, lib, libultra, sprawdma] - # - [0x872F0, lib, libultra, sirawdma] - # - [0x873A0, lib, libultra, viblack] - # - [0x87410, lib, libultra, sirawread] - # - [0x87460, lib, libultra, sptaskyield] - # - [0x87480, lib, libultra, getthreadid] - # - [0x874A0, lib, libultra, pfsreadwritefile] - # - [0x879A0, lib, libultra, mtxutil] - # - [0x87C10, lib, libultra, visetmode] - # - [0x87C80, lib, libultra, lookat] - # - [0x87FB0, lib, libultra, motor] - # - [0x88750, lib, libultra, pfsallocatefile] - # - [0x88F00, lib, libultra, probetlb] - # - [0x88FC0, lib, libultra, getcount] - # - [0x88FD0, lib, libultra, contpfs] - # - [0x89D30, lib, libultra, conteepprobe] - # - [0x89DD0, lib, libultra, pidma] - # - [0x89EE0, lib, libultra, pfssearchfile] - # - [0x8A0A0, lib, libultra, pimgr] - # - [0x8A230, lib, libultra, cartrominit] - # - [0x8A330, lib, libultra, piacs] - # - [0x8A400, lib, libultra, devmgr] - # - [0x8A890, lib, libultra, pirawdma] - # - [0x8A970, lib, libultra, seteventmesg] - # - [0x8A9E0, lib, libultra, sqrtf] - # - [0x8A9F0, lib, libultra, contquery] - # - [0x8AAA0, lib, libultra, xprintf] - # - [0x8B760, lib, libultra, epidma] - # - [0x8B840, lib, libultra, leodiskinit] - # - [0x8B940, lib, libultra, syncprintf] - # - [0x8B980, lib, libultra, string] - # - [0x8BA20, lib, libultra, createmesgqueue] - # - [0x8BA50, lib, libultra, invalicache] - # - [0x8BAD0, lib, libultra, invaldcache] - # - [0x8BB80, lib, libultra, sp] - # - [0x8BBB0, lib, libultra, si] - # - [0x8BBE0, lib, libultra, jammesg] - # - [0x8BD30, lib, libultra, setthreadpri] - # - [0x8BE10, lib, libultra, getthreadpri] - # - [0x8BE30, lib, libultra, viswapbuf] - # - [0x8BE80, lib, libultra, mtxcatl] - # - [0x8BF40, lib, libultra, mtxcatf] - # - [0x8C150, lib, libultra, epirawdma] - # - [0x8C380, lib, libultra, sptaskyielded] - # - [0x8C400, lib, libultra, bcmp] - # - [0x8C520, lib, libultra, gettime] - # - [0x8C5B0, lib, libultra, timerintr] - # - [0x8C9B0, lib, libultra, setglobalintmask] - # - [0x8CA00, lib, libultra, aisetfreq] - # - [0x8CB60, lib, libultra, dpctr] - # - [0x8CBB0, lib, libultra, crc] - # - [0x8CD30, lib, libultra, getactivequeue] - # - [0x8CD40, lib, libultra, setcompare] - # - [0x8CD50, lib, libultra, normalize] - # - [0x8CDE0, lib, libultra, dpsetstat] - # - [0x8CDF0, lib, libultra, bcopy] - # - [0x8D100, lib, libultra, resetglobalintmask] - # - [0x8D160, lib, libultra, pfsdeletefile] - # - [0x8D780, lib, libultra, ortho] - # - [0x8D940, lib, libultra, interrupt] - # - [0x8D980, lib, libultra, vi] - # - [0x8DAC0, lib, libultra, viswapcontext] - # - [0x8DE20, lib, libultra, pigetcmdq] - # - [0x8DE50, lib, libultra, cosf] - # - [0x8DFC0, lib, libultra, coss] - # - [0x8DFF0, lib, libultra, visetspecial] - # - [0x8E1B0, lib, libultra, visetevent] - # - [0x8E220, lib, libultra, pfsisplug] - # - [0x8E560, lib, libultra, pfsnumfiles] - # - [0x8E6B0, lib, libultra, us2dex] - # - [0x8E830, lib, libultra, contsetch] - # - [0x8E8A0, lib, libultra, setfpccsr] - # - [0x8E8B0, lib, libultra, pfsfilestate] - # - [0x8EBA0, lib, libultra, pfsinitpak] - # - [0x8EE40, lib, libultra, pfsgetstatus] - # - [0x8F080, lib, libultra, pfschecker] - # - [0x8FAE0, lib, libultra, aigetlen] - # - [0x8FAF0, lib, libultra, epirawread] - # - [0x8FC90, lib, libultra, maptlbrdb] - # - [0x8FCF0, lib, libultra, yieldthread] - # - [0x8FD40, lib, libultra, translate] - # - [0x8FDE0, lib, libultra, contramwrite] - # - [0x90140, lib, libultra, epirawwrite] - # - [0x902D0, lib, libultra, settimer] - # - [0x903B0, lib, libultra, xldtob] - # - [0x90E70, lib, libultra, ldiv] - # - [0x91000, lib, libultra, xlitob] - # - [0x912A0, lib, libultra, sirawwrite] - # - [0x912F0, lib, libultra, spsetstat] - # - [0x91300, lib, libultra, spgetstat] - # - [0x91310, lib, libultra, writebackdcacheall] - # - [0x91340, lib, libultra, getcurrfaultthread] - # - [0x91350, lib, libultra, contramread] - # - [0x916B0, lib, libultra, llcvt] - # - [0x918C0, lib, libultra, startthread] - # - [0x91A20, lib, libultra, vimgr] - # - [0x91D80, lib, libultra, vigetcurrcontext] - # - [0x91D90, lib, libultra, conteepread] - # - [0x920F0, lib, libultra, vigetcurrframebuf] - # - [0x92130, lib, libultra, spsetpc] + - [0x82E10, lib, libultra, sendmesg] + - [0x82F60, lib, libultra, pfsfreeblocks] + - [0x830B0, lib, libultra, recvmesg] + - [0x831F0, lib, libultra, setintmask] + - [0x83290, lib, libultra, scale] + - [0x83330, asm, ../lib/ultralib/src/gu/sinf] # - [0x83330, lib, libultra, sinf] + - [0x834F0, asm, ../lib/ultralib/src/gu/sins] # - [0x834F0, lib, libultra, sins] + - [0x83560, asm, ../lib/ultralib/src/io/sptask] # - [0x83560, lib, libultra, sptask] + - [0x83820, lib, libultra, ll] + - [0x83AE0, asm, ../lib/ultralib/src/gu/us2dex_emu] # - [0x83AE0, lib, libultra, us2dex_emu] + - [0x849D0, lib, libultra, exceptasm] + - [0x852E0, lib, libultra, thread] + - [0x85320, asm, ../lib/ultralib/src/os/destroythread] # - [0x85320, lib, libultra, destroythread] + - [0x85420, lib, libultra, bzero] + - [0x854C0, lib, libultra, leointerrupt] + - [0x85D40, asm, ../lib/ultralib/src/io/controller] # - [0x85D40, lib, libultra, controller] + - [0x86100, lib, libultra, siacs] + - [0x861C0, asm, ../lib/ultralib/src/io/conteepwrite] # - [0x861C0, lib, libultra, conteepwrite] + - [0x86710, lib, libultra, createthread] + - [0x86860, asm, ../lib/ultralib/src/io/contreaddata] # - [0x86860, asm, ../lib/ultralib/src/io/contreaddata] + - [0x86A80, lib, libultra, driverominit] + - [0x86B60, lib, libultra, virtualtophysical] + - [0x86BE0, lib, libultra, writebackdcache] + - [0x86C60, asm, ../lib/ultralib/src/os/initialize] # - [0x86C60, lib, libultra, initialize] + - [0x86EF0, lib, libultra, pirawread] + - [0x86F50, asm, ../lib/ultralib/src/os/parameters] # - [0x86F50, lib, libultra, parameters] + - [0x86FB0, lib, libultra, setsr] + - [0x86FC0, lib, libultra, getsr] + - [0x86FD0, lib, libultra, perspective] + - [0x87260, lib, libultra, sprawdma] + - [0x872F0, lib, libultra, sirawdma] + - [0x873A0, lib, libultra, viblack] + - [0x87410, lib, libultra, sirawread] + - [0x87460, lib, libultra, sptaskyield] + - [0x87480, lib, libultra, getthreadid] + - [0x874A0, asm, ../lib/ultralib/src/io/pfsreadwritefile] # - [0x874A0, lib, libultra, pfsreadwritefile] + - [0x879A0, asm, ../lib/ultralib/src/gu/mtxutil] # - [0x879A0, lib, libultra, mtxutil] + - [0x87C10, lib, libultra, visetmode] + - [0x87C80, lib, libultra, lookat] + - [0x87FB0, asm, ../lib/ultralib/src/io/motor] # - [0x87FB0, lib, libultra, motor] + - [0x88750, lib, libultra, pfsallocatefile] + - [0x88F00, lib, libultra, probetlb] + - [0x88FC0, lib, libultra, getcount] + - [0x88FD0, asm, ../lib/ultralib/src/io/contpfs] # - [0x88FD0, lib, libultra, contpfs] + - [0x89D30, lib, libultra, conteepprobe] + - [0x89DD0, lib, libultra, pidma] + - [0x89EE0, lib, libultra, pfssearchfile] + - [0x8A0A0, lib, libultra, pimgr] + - [0x8A230, lib, libultra, cartrominit] + - [0x8A330, lib, libultra, piacs] + - [0x8A3F0, pad] + - [0x8A400, asm, ../lib/ultralib/src/io/devmgr] # - [0x8A400, lib, libultra, devmgr] + - [0x8A890, lib, libultra, pirawdma] + - [0x8A970, lib, libultra, seteventmesg] + - [0x8A9E0, lib, libultra, sqrtf] + - [0x8A9F0, lib, libultra, contquery] + - [0x8AAA0, asm, ../lib/ultralib/src/libc/xprintf] # - [0x8AAA0, lib, libultra, xprintf] + - [0x8B760, lib, libultra, epidma] + - [0x8B840, lib, libultra, leodiskinit] + - [0x8B940, lib, libultra, syncprintf] + - [0x8B980, lib, libultra, string] + - [0x8BA20, lib, libultra, createmesgqueue] + - [0x8BA50, lib, libultra, invalicache] + - [0x8BAD0, lib, libultra, invaldcache] + - [0x8BB80, lib, libultra, sp] + - [0x8BBB0, lib, libultra, si] + - [0x8BBE0, lib, libultra, jammesg] + - [0x8BD30, lib, libultra, setthreadpri] + - [0x8BE10, lib, libultra, getthreadpri] + - [0x8BE30, lib, libultra, viswapbuf] + - [0x8BE80, asm, ../lib/ultralib/src/gu/mtxcatl] # - [0x8BEE0, lib, libultra, mtxcatl] + - [0x8BF40, asm, ../lib/ultralib/src/gu/mtxcatf] # - [0x8BF40, lib, libultra, mtxcatf] + - [0x8C150, lib, libultra, epirawdma] + - [0x8C380, lib, libultra, sptaskyielded] + - [0x8C400, lib, libultra, bcmp] + - [0x8C520, lib, libultra, gettime] + - [0x8C5B0, lib, libultra, timerintr] + - [0x8C9B0, lib, libultra, setglobalintmask] + - [0x8CA00, asm, ../lib/ultralib/src/io/aisetfreq] # - [0x8CA00, lib, libultra, aisetfreq] + - [0x8CB60, lib, libultra, dpctr] + - [0x8CBB0, asm, ../lib/ultralib/src/io/crc] # - [0x8CBB0, lib, libultra, crc] + - [0x8CD30, lib, libultra, getactivequeue] + - [0x8CD40, lib, libultra, setcompare] + - [0x8CD50, lib, libultra, normalize] + - [0x8CDE0, lib, libultra, dpsetstat] + - [0x8CDF0, lib, libultra, bcopy] + - [0x8D100, lib, libultra, resetglobalintmask] + - [0x8D160, asm, ../lib/ultralib/src/io/pfsdeletefile] # - [0x8D160, lib, libultra, pfsdeletefile] + - [0x8D780, lib, libultra, ortho] + - [0x8D940, lib, libultra, interrupt] + - [0x8D980, lib, libultra, vi] + - [0x8DAC0, asm, ../lib/ultralib/src/io/viswapcontext] # - [0x8DAC0, lib, libultra, viswapcontext] + - [0x8DE20, lib, libultra, pigetcmdq] + - [0x8DE50, lib, libultra, cosf] + - [0x8DFC0, asm, ../lib/ultralib/src/gu/coss] # - [0x8DFC0, lib, libultra, coss] + - [0x8DFF0, lib, libultra, visetspecial] + - [0x8E1B0, lib, libultra, visetevent] + - [0x8E220, asm, ../lib/ultralib/src/io/pfsisplug] # - [0x8E220, lib, libultra, pfsisplug] + - [0x8E560, lib, libultra, pfsnumfiles] + - [0x8E6B0, asm, ../lib/ultralib/src/gu/us2dex] # - [0x8E6B0, lib, libultra, us2dex] + - [0x8E830, lib, libultra, contsetch] + - [0x8E8A0, lib, libultra, setfpccsr] + - [0x8E8B0, asm, ../lib/ultralib/src/io/pfsfilestate] # - [0x8E8B0, lib, libultra, pfsfilestate] + - [0x8EBA0, lib, libultra, pfsinitpak] + - [0x8EE40, asm, ../lib/ultralib/src/io/pfsgetstatus] # - [0x8EE40, lib, libultra, pfsgetstatus] + - [0x8F080, asm, ../lib/ultralib/src/io/pfschecker] # - [0x8F080, lib, libultra, pfschecker] + - [0x8FAE0, lib, libultra, aigetlen] + - [0x8FAF0, lib, libultra, epirawread] + - [0x8FC90, lib, libultra, maptlbrdb] + - [0x8FCF0, lib, libultra, yieldthread] + - [0x8FD40, lib, libultra, translate] + - [0x8FDE0, asm, ../lib/ultralib/src/io/contramwrite] # - [0x8FDE0, lib, libultra, contramwrite] + - [0x90140, lib, libultra, epirawwrite] + - [0x902D0, lib, libultra, settimer] + - [0x903B0, asm, ../lib/ultralib/src/libc/xldtob] # - [0x903B0, lib, libultra, xldtob] + - [0x90E70, asm, ../lib/ultralib/src/libc/ldiv] # - [0x90E70, lib, libultra, ldiv] + - [0x91000, asm, ../lib/ultralib/src/libc/xlitob] # - [0x91000, lib, libultra, xlitob] + - [0x912A0, lib, libultra, sirawwrite] + - [0x912F0, lib, libultra, spsetstat] + - [0x91300, lib, libultra, spgetstat] + - [0x91310, lib, libultra, writebackdcacheall] + - [0x91340, lib, libultra, getcurrfaultthread] + - [0x91350, asm, ../lib/ultralib/src/io/contramread] # - [0x91350, lib, libultra, contramread] + - [0x916B0, lib, libultra, llcvt] + - [0x918C0, lib, libultra, startthread] + - [0x91A10, pad] + - [0x91A20, lib, libultra, vimgr] + - [0x91D80, lib, libultra, vigetcurrcontext] + - [0x91D90, asm, ../lib/ultralib/src/io/conteepread] # - [0x91D90, lib, libultra, conteepread] + - [0x920F0, lib, libultra, vigetcurrframebuf] + - [0x92130, lib, libultra, spsetpc] - [0x92170, data] @@ -382,45 +255,25 @@ - [0xAAFA0, .data, O2/stackcheck] # Libultra - - [0xAAFB0, data, ../lib/ultralib/src/gu/sins] - - [0xAB7B0, data, ../lib/ultralib/src/gu/us2dex_emu] - - [0xAB7E0, data, ../lib/ultralib/src/os/exceptasm] - - [0xAB800, data, ../lib/ultralib/src/os/thread] - - [0xAB820, data, ../lib/ultralib/src/io/controller] - - [0xAB830, data, ../lib/ultralib/src/io/siacs] - - [0xAB840, data, ../lib/ultralib/src/os/initialize] - - [0xAB860, data, ../lib/ultralib/src/io/vitbl] - - [0xAC580, data, ../lib/ultralib/src/io/motor] - - [0xAC590, data, ../lib/ultralib/src/io/pimgr] - - [0xAC5C0, data, ../lib/ultralib/src/io/piacs] - - [0xAC5D0, data, ../lib/ultralib/src/libc/xprintf] - - [0xAC620, data, ../lib/ultralib/src/os/timerintr] - - [0xAC630, data, ../lib/ultralib/src/vimodes/vimodentsclan1] - - [0xAC680, data, ../lib/ultralib/src/io/vi] - - [0xAC6F0, data, ../lib/ultralib/src/vimodes/vimodepallan1] - - [0xAC740, data, ../lib/ultralib/src/vimodes/vimodempallan1] - - [0xAC790, data, ../lib/ultralib/src/libc/xlitob] - - [0xAC7C0, data, ../lib/ultralib/src/io/vimgr] - # TODO: Use lib when ultralib supports H - # - [0xAAFB0, lib, libultra, sins, .data] - # - [0xAB7B0, lib, libultra, us2dex_emu, .data] - # - [0xAB7E0, lib, libultra, exceptasm, .data] - # - [0xAB800, lib, libultra, thread, .data] - # - [0xAB820, lib, libultra, controller, .data] - # - [0xAB830, lib, libultra, siacs, .data] - # - [0xAB840, lib, libultra, initialize, .data] - # - [0xAB860, lib, libultra, vitbl, .data] - # - [0xAC580, lib, libultra, motor, .data] - # - [0xAC590, lib, libultra, pimgr, .data] - # - [0xAC5C0, lib, libultra, piacs, .data] - # - [0xAC5D0, lib, libultra, xprintf, .data] - # - [0xAC620, lib, libultra, timerintr, .data] - # - [0xAC630, lib, libultra, vimodentsclan1, .data] - # - [0xAC680, lib, libultra, vi, .data] - # - [0xAC6F0, lib, libultra, vimodepallan1, .data] - # - [0xAC740, lib, libultra, vimodempallan1, .data] - # - [0xAC790, lib, libultra, xlitob, .data] - # - [0xAC7C0, lib, libultra, vimgr, .data] + - [0xAAFB0, data, ../lib/ultralib/src/gu/sins] # - [0xAAFB0, lib, libultra, sins, .data] + - [0xAB7B0, data, ../lib/ultralib/src/gu/us2dex_emu] # - [0xAB7B0, lib, libultra, us2dex_emu, .data] + - [0xAB7E0, lib, libultra, exceptasm, .data] + - [0xAB800, lib, libultra, thread, .data] + - [0xAB820, data, ../lib/ultralib/src/io/controller] # - [0xAB820, lib, libultra, controller, .data] + - [0xAB830, lib, libultra, siacs, .data] + - [0xAB840, data, ../lib/ultralib/src/os/initialize] # - [0xAB840, lib, libultra, initialize, .data] + - [0xAB860, lib, libultra, vitbl, .data] + - [0xAC580, data, ../lib/ultralib/src/io/motor] # - [0xAC580, lib, libultra, motor, .data] + - [0xAC590, lib, libultra, pimgr, .data] + - [0xAC5C0, lib, libultra, piacs, .data] + - [0xAC5D0, data, ../lib/ultralib/src/libc/xprintf] # - [0xAC5D0, lib, libultra, xprintf, .data] + - [0xAC620, lib, libultra, timerintr, .data] + - [0xAC630, lib, libultra, vimodentsclan1, .data] + - [0xAC680, lib, libultra, vi, .data] + - [0xAC6F0, lib, libultra, vimodepallan1, .data] + - [0xAC740, lib, libultra, vimodempallan1, .data] + - [0xAC790, data, ../lib/ultralib/src/libc/xlitob] # - [0xAC790, lib, libultra, xlitob, .data] + - [0xAC7C0, lib, libultra, vimgr, .data] - [0xAC7E0, rodata] @@ -508,27 +361,16 @@ - [0xB3D80, .rodata, O2/math64] # # Libultra - - [0xB3DA0, rodata, ../lib/ultralib/src/os/setintmask] - - [0xB3E20, rodata, ../lib/ultralib/src/gu/sinf] - - [0xB3E70, rodata, ../lib/ultralib/src/os/exceptasm] - - [0xB3EC0, rodata, ../lib/ultralib/src/gu/perspective] - - [0xB3ED0, rodata, ../lib/ultralib/src/io/devmgr] - - [0xB3EF0, rodata, ../lib/ultralib/src/libc/xprintf] - - [0xB3FF0, rodata, ../lib/ultralib/src/gu/cosf] - - [0xB4040, rodata, ../lib/ultralib/src/gu/libm_vals] - - [0xB4050, rodata, ../lib/ultralib/src/libc/xldtob] - - [0xB40B0, rodata, ../lib/ultralib/src/libc/llcvt] - # TODO: Use lib when ultralib supports H - # - [0xB3DA0, lib, libultra, setintmask, .rodata] - # - [0xB3E20, lib, libultra, sinf, .rodata] - # - [0xB3E70, lib, libultra, exceptasm, .rodata] - # - [0xB3EC0, lib, libultra, perspective, .rodata] - # - [0xB3ED0, lib, libultra, devmgr, .rodata] - # - [0xB3EF0, lib, libultra, xprintf, .rodata] - # - [0xB3FF0, lib, libultra, cosf, .rodata] - # - [0xB4040, lib, libultra, libm_vals, .rodata] - # - [0xB4050, lib, libultra, xldtob, .rodata] - # - [0xB40B0, lib, libultra, llcvt, .rodata] + - [0xB3DA0, lib, libultra, setintmask, .rodata] + - [0xB3E20, rodata, ../lib/ultralib/src/gu/sinf] # - [0xB3E20, lib, libultra, sinf, .rodata] + - [0xB3E70, lib, libultra, exceptasm, .rodata] + - [0xB3EC0, lib, libultra, perspective, .rodata] + - [0xB3ED0, rodata, ../lib/ultralib/src/io/devmgr] # - [0xB3ED0, lib, libultra, devmgr, .rodata] + - [0xB3EF0, rodata, ../lib/ultralib/src/libc/xprintf] # - [0xB3EF0, lib, libultra, xprintf, .rodata] + - [0xB3FF0, lib, libultra, cosf, .rodata] + - [0xB4040, lib, libultra, libm_vals, .rodata] + - [0xB4050, rodata, ../lib/ultralib/src/libc/xldtob] # - [0xB4050, lib, libultra, xldtob, .rodata] + - [0xB40B0, lib, libultra, llcvt, .rodata] - [0xB40C0, rodata] - [0xB4C80, rodata] @@ -543,40 +385,21 @@ - {start: 0xB58B0, type: .bss, vram: 0x8010ED90, name: 7EFD0} # Libultra - - {start: 0xB58B0, type: bss, vram: 0x8010F0C0, name: ../lib/ultralib/src/io/sptask} - - {start: 0xB58B0, type: bss, vram: 0x8010F100, name: ../lib/ultralib/src/gu/us2dex_emu} - - {start: 0xB58B0, type: bss, vram: 0x8010F120, name: ../lib/ultralib/src/io/leointerrupt} - - {start: 0xB58B0, type: bss, vram: 0x80110120, name: ../lib/ultralib/src/io/controller} - - {start: 0xB58B0, type: bss, vram: 0x801101B0, name: ../lib/ultralib/src/io/siacs} - - {start: 0xB58B0, type: bss, vram: 0x801101D0, name: ../lib/ultralib/src/io/driverominit} - - {start: 0xB58B0, type: bss, vram: 0x80110250, name: ../lib/ultralib/src/os/initialize} - - {start: 0xB58B0, type: bss, vram: 0x80110260, name: ../lib/ultralib/src/debug/kdebugserver} - - {start: 0xB58B0, type: bss, vram: 0x80110410, name: ../lib/ultralib/src/io/motor} - - {start: 0xB58B0, type: bss, vram: 0x80110650, name: ../lib/ultralib/src/io/pimgr} - - {start: 0xB58B0, type: bss, vram: 0x80111820, name: ../lib/ultralib/src/io/cartrominit} - - {start: 0xB58B0, type: bss, vram: 0x801118A0, name: ../lib/ultralib/src/io/piacs} - - {start: 0xB58B0, type: bss, vram: 0x801118C0, name: ../lib/ultralib/src/os/seteventmesg} - - {start: 0xB58B0, type: bss, vram: 0x80111940, name: ../lib/ultralib/src/io/leodiskinit} - - {start: 0xB58B0, type: bss, vram: 0x801119C0, name: ../lib/ultralib/src/os/timerintr} - - {start: 0xB58B0, type: bss, vram: 0x80111A00, name: ../lib/ultralib/src/io/pfsisplug} - - {start: 0xB58B0, type: bss, vram: 0x80111A40, name: ../lib/ultralib/src/io/vimgr} - - {start: 0xB58B0, type: bss, vram: 0x80112C60, name: ../lib/ultralib/src/io/conteepread} - # TODO: Use lib when ultralib supports H - # - {start: 0xB58B0, type: lib, vram: 0x8010F0C0, name: libultra, object: sptask, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x8010F100, name: libultra, object: us2dex_emu, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x8010F120, name: libultra, object: leointerrupt, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x80110120, name: libultra, object: controller, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x801101B0, name: libultra, object: siacs, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x801101D0, name: libultra, object: driverominit, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x80110250, name: libultra, object: initialize, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x80110260, name: libultra, object: kdebugserver, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x80110410, name: libultra, object: motor, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x80110650, name: libultra, object: pimgr, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x80111820, name: libultra, object: cartrominit, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x801118A0, name: libultra, object: piacs, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x801118C0, name: libultra, object: seteventmesg, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x80111940, name: libultra, object: leodiskinit, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x801119C0, name: libultra, object: timerintr, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x80111A00, name: libultra, object: pfsisplug, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x80111A40, name: libultra, object: vimgr, section: .bss} - # - {start: 0xB58B0, type: lib, vram: 0x80112C60, name: libultra, object: conteepread, section: .bss} + - {start: 0xB58B0, type: bss, vram: 0x8010F0C0, name: ../lib/ultralib/src/io/sptask} # - {start: 0xB58B0, type: lib, vram: 0x8010F0C0, name: libultra, object: sptask, section: .bss} + - {start: 0xB58B0, type: bss, vram: 0x8010F100, name: ../lib/ultralib/src/gu/us2dex_emu} # - {start: 0xB58B0, type: lib, vram: 0x8010F100, name: libultra, object: us2dex_emu, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x8010F120, name: libultra, object: leointerrupt, section: .bss} + - {start: 0xB58B0, type: bss, vram: 0x80110120, name: ../lib/ultralib/src/io/controller} # - {start: 0xB58B0, type: lib, vram: 0x80110120, name: libultra, object: controller, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x801101B0, name: libultra, object: siacs, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x801101D0, name: libultra, object: driverominit, section: .bss} + - {start: 0xB58B0, type: bss, vram: 0x80110250, name: ../lib/ultralib/src/os/initialize} # - {start: 0xB58B0, type: lib, vram: 0x80110250, name: libultra, object: initialize, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x80110260, name: libultra, object: kdebugserver, section: .bss} + - {start: 0xB58B0, type: bss, vram: 0x80110410, name: ../lib/ultralib/src/io/motor} # - {start: 0xB58B0, type: lib, vram: 0x80110410, name: libultra, object: motor, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x80110650, name: libultra, object: pimgr, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x80111820, name: libultra, object: cartrominit, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x801118A0, name: libultra, object: piacs, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x801118C0, name: libultra, object: seteventmesg, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x80111940, name: libultra, object: leodiskinit, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x801119C0, name: libultra, object: timerintr, section: .bss} + - {start: 0xB58B0, type: bss, vram: 0x80111A00, name: ../lib/ultralib/src/io/pfsisplug} # - {start: 0xB58B0, type: lib, vram: 0x80111A00, name: libultra, object: pfsisplug, section: .bss} + - {start: 0xB58B0, type: lib, vram: 0x80111A40, name: libultra, object: vimgr, section: .bss} + - {start: 0xB58B0, type: bss, vram: 0x80112C60, name: ../lib/ultralib/src/io/conteepread} # - {start: 0xB58B0, type: lib, vram: 0x80112C60, name: libultra, object: conteepread, section: .bss}