From b42801e28bf7dd5c72939e07a4fd84ce23be07ec Mon Sep 17 00:00:00 2001 From: Maide Date: Sun, 11 Aug 2024 05:24:23 +0100 Subject: [PATCH] a --- Makefile | 6 + diff_settings.py | 2 +- include/ultra64/controller.h | 11 +- lib/ultralib/Makefile.ido | 47 +++ lib/ultralib/base/I_P/libultra_rom.txt | 1 + .../include/PR/os_internal_exception.h | 2 +- lib/ultralib/src/io/aisetfreq.c | 2 +- lib/ultralib/src/io/cartrominit.c | 1 + lib/ultralib/src/io/conteepread.c | 10 +- lib/ultralib/src/io/conteepwrite.c | 12 +- lib/ultralib/src/io/contpfs.c | 34 +- lib/ultralib/src/io/contramread.c | 4 +- lib/ultralib/src/io/contramwrite.c | 4 +- lib/ultralib/src/io/controller.h | 8 +- lib/ultralib/src/io/crc.c | 2 +- lib/ultralib/src/io/gbpakreadid.c | 8 +- lib/ultralib/src/io/leodiskinit.c | 4 +- lib/ultralib/src/io/leointerrupt.c | 4 + lib/ultralib/src/io/motor.c | 2 +- lib/ultralib/src/io/pfsallocatefile.c | 2 +- lib/ultralib/src/io/pfsdeletefile.c | 4 +- lib/ultralib/src/io/pfsgetstatus.c | 10 +- lib/ultralib/src/io/pfsselectbank.c | 2 +- lib/ultralib/src/io/piint.h | 2 +- lib/ultralib/src/io/pimgr.c | 2 +- lib/ultralib/src/io/sirawdma.c | 2 +- lib/ultralib/src/io/vimgr.c | 4 +- lib/ultralib/src/io/viswapcontext.c | 6 +- lib/ultralib/src/os/exceptasm.h | 2 +- lib/ultralib/src/os/exceptasm.s | 4 +- lib/ultralib/src/os/gethwinterrupt.c | 2 +- lib/ultralib/src/os/getmemsize.c | 2 +- lib/ultralib/src/os/interrupt.s | 2 +- lib/ultralib/src/os/seteventmesg.c | 4 +- lib/ultralib/src/os/sethwinterrupt.c | 2 +- linker_scripts/common_undef_syms.ld | 1 + linker_scripts/us/symbol_addrs.txt | 6 +- linker_scripts/us/undefined_syms.ld | 2 - src/libleo/leodiskinit.c | 28 +- yamls/us/rom.yaml | 318 +++++++++--------- 40 files changed, 311 insertions(+), 260 deletions(-) diff --git a/Makefile b/Makefile index e0745e8..c8ea8ab 100644 --- a/Makefile +++ b/Makefile @@ -236,6 +236,7 @@ build/src/boot/libu64/%.o: OPTFLAGS := -O2 build/src/boot/fault.o: CFLAGS += -trapuv build/src/boot/fault_drawer.o: CFLAGS += -trapuv build/src/C030.o: OPTFLAGS += -Wo,-loopunroll,0 +build/src/hal_libc.o: CFLAGS += -signed # cc & asm-processor build/src/libleo/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC_OLD) -- $(AS) $(ASFLAGS) -- @@ -257,6 +258,11 @@ clean: libclean: $(MAKE) -C lib/ultralib clean VERSION=$(ULTRALIB_VERSION) TARGET=$(ULTRALIB_TARGET) + $(RM) -rf $(BUILD_DIR)/lib + $(RM) -r build/$(TARGET)-$(VERSION).elf + $(RM) -r build/$(TARGET)-$(VERSION).ld + $(RM) -r build/$(TARGET)-$(VERSION).map + $(RM) -r build/$(TARGET)-$(VERSION).z64 distclean: clean libclean $(RM) -r $(BUILD_DIR) asm/ assets/ .splat/ diff --git a/diff_settings.py b/diff_settings.py index 708327a..de171f8 100644 --- a/diff_settings.py +++ b/diff_settings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 def apply(config, args): - config['baseimg'] = 'baserom.z64' + config['baseimg'] = 'baseroms/us/baserom.z64' config['myimg'] = 'build/pokestadium-us.z64' config['mapfile'] = 'build/pokestadium-us.map' config['source_directories'] = ['.'] diff --git a/include/ultra64/controller.h b/include/ultra64/controller.h index 55e7f32..62cad58 100644 --- a/include/ultra64/controller.h +++ b/include/ultra64/controller.h @@ -153,9 +153,7 @@ s32 __osCheckPackId(OSPfs* pfs, __OSPackId* check); s32 __osGetId(OSPfs *pfs); s32 __osCheckId(OSPfs *pfs); s32 __osPfsRWInode(OSPfs *pfs, __OSInode *inode, u8 flag, u8 bank); -s32 __osPfsSelectBank(OSPfs *pfs, u8 bank); s32 __osPfsDeclearPage(OSPfs *pfs, __OSInode *inode, int file_size_in_pages, int *first_page, u8 bank, int *decleared, int *last_page); -s32 __osPfsReleasePages(OSPfs *pfs, __OSInode *inode, u8 start_page, u8 bank, __OSInodeUnit *last_page); s32 __osBlockSum(OSPfs *pfs, u8 page_no, u16 *sum, u8 bank); s32 __osContRamRead(OSMesgQueue *mq, int channel, u16 address, u8 *buffer); s32 __osContRamWrite(OSMesgQueue *mq, int channel, u16 address, u8 *buffer, int force); @@ -166,7 +164,7 @@ void __osPfsGetInitData(u8* pattern, OSContStatus* data); u8 __osContAddressCrc(u16 addr); u8 __osContDataCrc(u8 *data); s32 __osPfsGetStatus(OSMesgQueue *queue, int channel); -s32 __osGbpakSelectBank(OSPfs *pfs, u8 bank); +s32 __osGbpakSetBank(OSPfs *pfs, u8 bank); extern u8 __osContLastCmd; extern OSTimer __osEepromTimer; @@ -183,13 +181,6 @@ extern u8 __osMaxControllers; if (ret != 0) \ return ret; -#define SET_ACTIVEBANK_TO_ZERO \ - if (pfs->activebank != 0) \ - { \ - pfs->activebank = 0; \ - ERRCK(__osPfsSelectBank(pfs)) \ - } - #define PFS_CHECK_ID \ if (__osCheckId(pfs) == PFS_ERR_NEW_PACK) \ return PFS_ERR_NEW_PACK; diff --git a/lib/ultralib/Makefile.ido b/lib/ultralib/Makefile.ido index 399f4ab..0f73636 100644 --- a/lib/ultralib/Makefile.ido +++ b/lib/ultralib/Makefile.ido @@ -58,3 +58,50 @@ $(BUILD_DIR)/src/audio/%.marker: OPTFLAGS := -O3 $(BUILD_DIR)/src/rg/%.marker: OPTFLAGS := -O3 $(BUILD_DIR)/src/gt/%.marker: OPTFLAGS := -O3 endif + +ifneq ($(filter $(VERSION),I_P),) +$(BUILD_DIR)/src/audio/reverb.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/audio/synthesizer.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/audio/drvrnew.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/audio/env.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/audio/save.marker: OPTFLAGS := -O2 + +$(BUILD_DIR)/src/io/gbpakgetstatus.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/gbpakcheckconnector.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/gbpakpower.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/contreaddata.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/gbpakinit.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/pfsgetstatus.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/pimgr.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/devmgr.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/pirawdma.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/conteepprobe.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/conteepwrite.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/contpfs.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/epirawread.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/epirawdma.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/aisetfreq.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/viswapcontext.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/visetspecial.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/gbpakreadid.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/cartrominit.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/pfsselectbank.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/contramwrite.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/contramread.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/crc.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/epirawwrite.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/vimgr.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/gbpakreadwrite.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/gbpaksetbank.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/conteepread.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/sprawdma.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/sirawdma.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/sirawread.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/epiread.marker: OPTFLAGS := -O2 +$(BUILD_DIR)/src/io/epiwrite.marker: OPTFLAGS := -O2 + + +$(BUILD_DIR)/src/libc/syncprintf.marker: OPTFLAGS := -O2 + + +endif diff --git a/lib/ultralib/base/I_P/libultra_rom.txt b/lib/ultralib/base/I_P/libultra_rom.txt index dbe2510..9216c22 100644 --- a/lib/ultralib/base/I_P/libultra_rom.txt +++ b/lib/ultralib/base/I_P/libultra_rom.txt @@ -269,6 +269,7 @@ pfsreadwritefile.o pfsfilestate.o pfssearchfile.o pfssetlabel.o +pfsselectbank.o pfsgetlabel.o pfsisplug.o pfsfreeblocks.o diff --git a/lib/ultralib/include/PR/os_internal_exception.h b/lib/ultralib/include/PR/os_internal_exception.h index dae8a9f..8888f9e 100644 --- a/lib/ultralib/include/PR/os_internal_exception.h +++ b/lib/ultralib/include/PR/os_internal_exception.h @@ -31,7 +31,7 @@ extern "C" { #if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) /* Routine for HW interrupt "handler" */ -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P extern void __osSetHWIntrRoutine(OSHWIntr interrupt, s32 (*handler)(void), void *stackEnd); extern void __osGetHWIntrRoutine(OSHWIntr interrupt, diff --git a/lib/ultralib/src/io/aisetfreq.c b/lib/ultralib/src/io/aisetfreq.c index e41d6fa..12f6817 100644 --- a/lib/ultralib/src/io/aisetfreq.c +++ b/lib/ultralib/src/io/aisetfreq.c @@ -46,7 +46,7 @@ s32 osAiSetFrequency(u32 frequency) { IO_WRITE(AI_DACRATE_REG, dacRate - 1); IO_WRITE(AI_BITRATE_REG, bitRate - 1); -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P IO_WRITE(AI_CONTROL_REG, AI_CONTROL_DMA_ON); #endif return osViClock / (s32)dacRate; diff --git a/lib/ultralib/src/io/cartrominit.c b/lib/ultralib/src/io/cartrominit.c index 90ef68d..8fe6ebb 100644 --- a/lib/ultralib/src/io/cartrominit.c +++ b/lib/ultralib/src/io/cartrominit.c @@ -63,6 +63,7 @@ OSPiHandle* osCartRomInit(void) { return &__CartRomHandle; } + #else OSPiHandle CartRomHandle ALIGNED(8); diff --git a/lib/ultralib/src/io/conteepread.c b/lib/ultralib/src/io/conteepread.c index 2d334fa..5e084a0 100644 --- a/lib/ultralib/src/io/conteepread.c +++ b/lib/ultralib/src/io/conteepread.c @@ -7,7 +7,7 @@ OSPifRam __osEepPifRam ALIGNED(16); #if BUILD_VERSION >= VERSION_L s32 __osEepromRead16K; #endif -static void __osPackEepReadData(u8 address); +void __osPackEepReadData(u8 address); s32 osEepromRead(OSMesgQueue* mq, u8 address, u8* buffer) { s32 ret = 0; @@ -22,7 +22,7 @@ s32 osEepromRead(OSMesgQueue* mq, u8 address, u8* buffer) { ret = __osEepStatus(mq, &sdata); type = sdata.type & (CONT_EEPROM | CONT_EEP16K); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P if (ret == 0) { switch (type) { case CONT_EEPROM: @@ -105,12 +105,12 @@ s32 osEepromRead(OSMesgQueue* mq, u8 address, u8* buffer) { return ret; } -static void __osPackEepReadData(u8 address) { +void __osPackEepReadData(u8 address) { u8* ptr = (u8*)&__osEepPifRam.ramarray; __OSContEepromFormat eepromformat; int i; -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P for (i = 0; i < ARRLEN(__osEepPifRam.ramarray); i++) { __osEepPifRam.ramarray[i] = CONT_CMD_NOP; } @@ -123,7 +123,7 @@ static void __osPackEepReadData(u8 address) { eepromformat.cmd = CONT_CMD_READ_EEPROM; eepromformat.address = address; -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P for (i = 0; i < ARRLEN(eepromformat.data); i++) { eepromformat.data[i] = 0; } diff --git a/lib/ultralib/src/io/conteepwrite.c b/lib/ultralib/src/io/conteepwrite.c index 7352430..9bf2812 100644 --- a/lib/ultralib/src/io/conteepwrite.c +++ b/lib/ultralib/src/io/conteepwrite.c @@ -6,7 +6,7 @@ static void __osPackEepWriteData(u8 address, u8* buffer); s32 osEepromWrite(OSMesgQueue* mq, u8 address, u8* buffer) { s32 ret = 0; -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P int i; #endif u16 type; @@ -19,13 +19,13 @@ s32 osEepromWrite(OSMesgQueue* mq, u8 address, u8* buffer) { __osSiGetAccess(); ret = __osEepStatus(mq, &sdata); -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P ret = __osEepStatus(mq, &sdata); // Duplicate that was removed in 2.0J #endif type = sdata.type & (CONT_EEPROM | CONT_EEP16K); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P if (ret == 0) { switch (type) { case CONT_EEPROM: @@ -95,7 +95,7 @@ s32 osEepromWrite(OSMesgQueue* mq, u8 address, u8* buffer) { osRecvMesg(mq, NULL, OS_MESG_BLOCK); // skip the first 4 bytes -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P ptr += 4; #else for (i = 0; i < 4; i++) { @@ -116,7 +116,7 @@ static void __osPackEepWriteData(u8 address, u8* buffer) { __OSContEepromFormat eepromformat; int i; -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P for (i = 0; i < ARRLEN(__osEepPifRam.ramarray); i++) { __osEepPifRam.ramarray[i] = CONT_CMD_NOP; } @@ -172,7 +172,7 @@ s32 __osEepStatus(OSMesgQueue* mq, OSContStatus* data) { ret = __osSiRawStartDma(OS_WRITE, &__osEepPifRam); osRecvMesg(mq, NULL, OS_MESG_BLOCK); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P __osContLastCmd = CONT_CMD_END; #else __osContLastCmd = CONT_CMD_REQUEST_STATUS; diff --git a/lib/ultralib/src/io/contpfs.c b/lib/ultralib/src/io/contpfs.c index c845a7d..83c856e 100644 --- a/lib/ultralib/src/io/contpfs.c +++ b/lib/ultralib/src/io/contpfs.c @@ -4,7 +4,7 @@ #include "controller.h" #include "PR/rmon.h" -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P __OSInode __osPfsInodeCache ALIGNED(8); s32 __osPfsInodeCacheChannel = -1; u8 __osPfsInodeCacheBank = 250; @@ -17,12 +17,12 @@ u16 __osSumcalc(u8* ptr, int length) { for (i = 0; i < length; i++) { sum += *tmp++; -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P sum = sum & 0xFFFF; #endif } -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P return sum & 0xFFFF; #else return sum; @@ -53,7 +53,7 @@ s32 __osRepairPackId(OSPfs* pfs, __OSPackId* badid, __OSPackId* newid) { int j; u16 index[4]; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P j = 0; #else SET_ACTIVEBANK_TO_ZERO(); @@ -64,7 +64,7 @@ s32 __osRepairPackId(OSPfs* pfs, __OSPackId* badid, __OSPackId* newid) { newid->serial_mid = badid->serial_mid; newid->serial_low = badid->serial_low; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P SET_ACTIVEBANK_TO_ZERO(); #else j = 0; @@ -104,7 +104,7 @@ s32 __osRepairPackId(OSPfs* pfs, __OSPackId* badid, __OSPackId* newid) { j++; } while (j < PFS_MAX_BANKS); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P SET_ACTIVEBANK_TO_ZERO(); #else ERRCK(SELECT_BANK(pfs, 0)); @@ -129,7 +129,7 @@ s32 __osRepairPackId(OSPfs* pfs, __OSPackId* badid, __OSPackId* newid) { for (i = 0; i < BLOCKSIZE; i++) { if (temp[i] != ((u8*)newid)[i]) { -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P return PFS_ERR_DEVICE; #else return PFS_ERR_ID_FATAL; @@ -174,7 +174,7 @@ s32 __osCheckPackId(OSPfs* pfs, __OSPackId* temp) { } s32 __osGetId(OSPfs* pfs) { -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P int k; #endif u16 sum; @@ -209,7 +209,7 @@ s32 __osGetId(OSPfs* pfs) { } } -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P bcopy(id, pfs->id, BLOCKSIZE); #else for (k = 0; k < ARRLEN(pfs->id); k++) { @@ -228,13 +228,13 @@ s32 __osGetId(OSPfs* pfs) { } s32 __osCheckId(OSPfs* pfs) { -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P int k; #endif u8 temp[BLOCKSIZE]; s32 ret; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P if (pfs->activebank != 0) { ret = __osPfsSelectBank(pfs, 0); @@ -259,7 +259,7 @@ s32 __osCheckId(OSPfs* pfs) { ERRCK(__osContRamRead(pfs->queue, pfs->channel, PFS_ID_0AREA, (u8*)temp)); } -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P if (bcmp(pfs->id, temp, BLOCKSIZE) != 0) { return PFS_ERR_NEW_PACK; } @@ -280,7 +280,7 @@ s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank) { int offset; u8* addr; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P if (flag == PFS_READ && bank == __osPfsInodeCacheBank && (pfs->channel == __osPfsInodeCacheChannel)) { bcopy(&__osPfsInodeCache, inode, sizeof(__OSInode)); return 0; @@ -319,7 +319,7 @@ s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank) { ret = __osContRamRead(pfs->queue, pfs->channel, pfs->minode_table + bank * PFS_ONE_PAGE + j, addr); } -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P sum = __osSumcalc((u8*)&inode->inode_page[offset], (PFS_INODE_SIZE_PER_PAGE - offset) * 2); #endif @@ -333,7 +333,7 @@ s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank) { __osContRamWrite(pfs->queue, pfs->channel, pfs->inode_table + bank * PFS_ONE_PAGE + j, addr, FALSE); } } -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P else { for (j = 0; j < PFS_ONE_PAGE; j++) @@ -345,7 +345,7 @@ s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank) { #endif } -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P __osPfsInodeCacheBank = bank; bcopy(inode, &__osPfsInodeCache, sizeof(__OSInode)); __osPfsInodeCacheChannel = pfs->channel; @@ -355,7 +355,7 @@ s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank) { } // This was moved into it's own file in 2.0J -#if BUILD_VERSION < VERSION_J +#if BUILD_VERSION < VERSION_I_P s32 __osPfsSelectBank(OSPfs* pfs) { u8 temp[BLOCKSIZE]; int i; diff --git a/lib/ultralib/src/io/contramread.c b/lib/ultralib/src/io/contramread.c index 9c399ee..36601d6 100644 --- a/lib/ultralib/src/io/contramread.c +++ b/lib/ultralib/src/io/contramread.c @@ -5,7 +5,7 @@ #define READFORMAT(ptr) ((__OSContRamReadFormat*)(ptr)) -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P s32 __osPfsLastChannel = -1; s32 __osContRamRead(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { @@ -38,7 +38,7 @@ s32 __osContRamRead(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { ptr += channel; } -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P READFORMAT(ptr)->addrh = address >> 3; READFORMAT(ptr)->addrl = (u8)((address << 5) | __osContAddressCrc(address)); #else diff --git a/lib/ultralib/src/io/contramwrite.c b/lib/ultralib/src/io/contramwrite.c index a213049..9d49bd9 100644 --- a/lib/ultralib/src/io/contramwrite.c +++ b/lib/ultralib/src/io/contramwrite.c @@ -7,7 +7,7 @@ extern s32 __osPfsLastChannel; #define READFORMAT(ptr) ((__OSContRamReadFormat*)(ptr)) -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P s32 __osContRamWrite(OSMesgQueue* mq, int channel, u16 address, u8* buffer, int force) { s32 ret = 0; s32 i; @@ -43,7 +43,7 @@ s32 __osContRamWrite(OSMesgQueue* mq, int channel, u16 address, u8* buffer, int ptr += channel; } -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P READFORMAT(ptr)->addrh = address >> 3; READFORMAT(ptr)->addrl = ((address << 5) | __osContAddressCrc(address)); #else diff --git a/lib/ultralib/src/io/controller.h b/lib/ultralib/src/io/controller.h index 5dac7f5..96fa217 100644 --- a/lib/ultralib/src/io/controller.h +++ b/lib/ultralib/src/io/controller.h @@ -54,7 +54,7 @@ typedef struct /* 0x1 */ u8 txsize; /* 0x2 */ u8 rxsize; /* 0x3 */ u8 cmd; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P /* 0x4 */ u8 addrh; /* 0x5 */ u8 addrl; #else @@ -209,13 +209,13 @@ s32 __osCheckPackId(OSPfs *pfs, __OSPackId *temp); s32 __osGetId(OSPfs *pfs); s32 __osCheckId(OSPfs *pfs); s32 __osPfsRWInode(OSPfs *pfs, __OSInode *inode, u8 flag, u8 bank); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P s32 __osPfsSelectBank(OSPfs *pfs, u8 bank); #else s32 __osPfsSelectBank(OSPfs *pfs); #endif s32 __osPfsDeclearPage(OSPfs *pfs, __OSInode *inode, int file_size_in_pages, int *first_page, u8 bank, int *decleared, int *last_page); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P s32 __osPfsReleasePages(OSPfs *pfs, __OSInode *inode, u8 start_page, u8 bank, __OSInodeUnit *last_page); #else s32 __osPfsReleasePages(OSPfs *pfs, __OSInode *inode, u8 start_page, u16 *sum, u8 bank, __OSInodeUnit *last_page, int flag); @@ -246,7 +246,7 @@ extern u8 __osMaxControllers; if (ret != 0) \ return ret -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P #define SELECT_BANK(pfs, bank) \ __osPfsSelectBank((pfs), (bank)) diff --git a/lib/ultralib/src/io/crc.c b/lib/ultralib/src/io/crc.c index 3293b2d..bc00509 100644 --- a/lib/ultralib/src/io/crc.c +++ b/lib/ultralib/src/io/crc.c @@ -1,6 +1,6 @@ #include "PR/os_internal.h" -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P u8 __osContAddressCrc(u16 addr) { u32 temp = 0; diff --git a/lib/ultralib/src/io/gbpakreadid.c b/lib/ultralib/src/io/gbpakreadid.c index 3e2fa19..fd2d0c3 100644 --- a/lib/ultralib/src/io/gbpakreadid.c +++ b/lib/ultralib/src/io/gbpakreadid.c @@ -43,9 +43,11 @@ s32 osGbpakReadId(OSPfs* pfs, OSGbpakId* id, u8* status) { return ret; } +#if BUILD_VERSION >= VERSION_J if (!(*status & OS_GBPAK_RSTB_STATUS)) { return PFS_ERR_CONTRFAIL; } +#endif #if BUILD_VERSION >= VERSION_K if (bcmp(nintendo, buf + 4, ARRLEN(nintendo))) { @@ -68,12 +70,12 @@ s32 osGbpakReadId(OSPfs* pfs, OSGbpakId* id, u8* status) { } if (bcmp(nintendo, buf + 4, ARRLEN(nintendo))) { - return 4; + return PFS_ERR_CONTRFAIL; } } #else if (bcmp(nintendo, buf + 4, ARRLEN(nintendo))) { - return 4; + return PFS_ERR_CONTRFAIL; } #endif for (i = 0x34, isum = 0; i < 0x4E; i++) { @@ -81,7 +83,7 @@ s32 osGbpakReadId(OSPfs* pfs, OSGbpakId* id, u8* status) { } if ((isum + 0x19) & 0xFF) { - return 4; + return PFS_ERR_CONTRFAIL; } bcopy(buf, id, 0x50); diff --git a/lib/ultralib/src/io/leodiskinit.c b/lib/ultralib/src/io/leodiskinit.c index 72629d9..c5df8c1 100644 --- a/lib/ultralib/src/io/leodiskinit.c +++ b/lib/ultralib/src/io/leodiskinit.c @@ -4,10 +4,10 @@ #include "PR/rcp.h" #include "macros.h" -#if BUILD_VERSION >= VERSION_J +OSPiHandle CartRomHandle ALIGNED(8); OSPiHandle LeoDiskHandle ALIGNED(8); +#if BUILD_VERSION >= VERSION_J OSPiHandle *__osDiskHandle; - OSPiHandle *osLeoDiskInit(void) { u32 saveMask; diff --git a/lib/ultralib/src/io/leointerrupt.c b/lib/ultralib/src/io/leointerrupt.c index 7b3f2ed..c75bb9c 100644 --- a/lib/ultralib/src/io/leointerrupt.c +++ b/lib/ultralib/src/io/leointerrupt.c @@ -6,7 +6,11 @@ extern OSPiHandle *__osDiskHandle; +#if BUILD_VERSION == VERSION_I_P +u8 leoDiskStack[0x10] ALIGNED(16); +#else u8 leoDiskStack[OS_PIM_STACKSIZE] ALIGNED(16); +#endif static void __osLeoAbnormalResume(void); static void __osLeoResume(void); diff --git a/lib/ultralib/src/io/motor.c b/lib/ultralib/src/io/motor.c index 8028d69..b1bcf6c 100644 --- a/lib/ultralib/src/io/motor.c +++ b/lib/ultralib/src/io/motor.c @@ -4,7 +4,7 @@ #include "controller.h" #include "siint.h" -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P static OSPifRam __MotorDataBuf[MAXCONTROLLERS] ALIGNED(8); #define READFORMAT(ptr) ((__OSContRamReadFormat*)(ptr)) diff --git a/lib/ultralib/src/io/pfsallocatefile.c b/lib/ultralib/src/io/pfsallocatefile.c index 24f6fe7..2edd0a2 100644 --- a/lib/ultralib/src/io/pfsallocatefile.c +++ b/lib/ultralib/src/io/pfsallocatefile.c @@ -4,7 +4,7 @@ #define ROUND_UP_DIVIDE(numerator, denominator) (((numerator) + (denominator)-1) / (denominator)) -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P s32 osPfsAllocateFile(OSPfs* pfs, u16 company_code, u32 game_code, u8* game_name, u8* ext_name, int file_size_in_bytes, s32* file_no) { diff --git a/lib/ultralib/src/io/pfsdeletefile.c b/lib/ultralib/src/io/pfsdeletefile.c index e013211..204da8e 100644 --- a/lib/ultralib/src/io/pfsdeletefile.c +++ b/lib/ultralib/src/io/pfsdeletefile.c @@ -39,7 +39,7 @@ s32 osPfsDeleteFile(OSPfs* pfs, u16 company_code, u32 game_code, u8* game_name, for (bank = dir.start_page.inode_t.bank; bank < pfs->banks;) { ERRCK(__osPfsRWInode(pfs, &inode, OS_READ, bank)); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P ERRCK(__osPfsReleasePages(pfs, &inode, startpage, bank, &last_page)); #else ERRCK(__osPfsReleasePages(pfs, &inode, startpage, &sum, bank, &last_page, TRUE)); @@ -81,7 +81,7 @@ s32 osPfsDeleteFile(OSPfs* pfs, u16 company_code, u32 game_code, u8* game_name, return ret; } -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P s32 __osPfsReleasePages(OSPfs* pfs, __OSInode* inode, u8 start_page, u8 bank, __OSInodeUnit* last_page) { __OSInodeUnit next_page; diff --git a/lib/ultralib/src/io/pfsgetstatus.c b/lib/ultralib/src/io/pfsgetstatus.c index 955412b..399ec7c 100644 --- a/lib/ultralib/src/io/pfsgetstatus.c +++ b/lib/ultralib/src/io/pfsgetstatus.c @@ -2,7 +2,7 @@ #include "controller.h" #include "siint.h" -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P void __osPfsRequestOneChannel(int channel, u8 cmd); #else void __osPfsRequestOneChannel(int channel); @@ -14,7 +14,7 @@ s32 __osPfsGetStatus(OSMesgQueue* queue, int channel) { OSMesg dummy; OSContStatus data; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P __osPfsInodeCacheBank = 250; __osPfsRequestOneChannel(channel, CONT_CMD_REQUEST_STATUS); @@ -41,7 +41,7 @@ s32 __osPfsGetStatus(OSMesgQueue* queue, int channel) { return ret; } -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P void __osPfsRequestOneChannel(int channel, u8 cmd) { #else void __osPfsRequestOneChannel(int channel) { @@ -50,7 +50,7 @@ void __osPfsRequestOneChannel(int channel) { __OSContRequesFormatShort requestformat; int i; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P __osContLastCmd = CONT_CMD_END; #else __osContLastCmd = CONT_CMD_REQUEST_STATUS; @@ -61,7 +61,7 @@ void __osPfsRequestOneChannel(int channel) { requestformat.txsize = CONT_CMD_REQUEST_STATUS_TX; requestformat.rxsize = CONT_CMD_REQUEST_STATUS_RX; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P requestformat.cmd = cmd; #else requestformat.cmd = CONT_CMD_REQUEST_STATUS; diff --git a/lib/ultralib/src/io/pfsselectbank.c b/lib/ultralib/src/io/pfsselectbank.c index 7e33b2d..767db83 100644 --- a/lib/ultralib/src/io/pfsselectbank.c +++ b/lib/ultralib/src/io/pfsselectbank.c @@ -1,7 +1,7 @@ #include "PR/os_internal.h" #include "controller.h" -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P s32 __osPfsSelectBank(OSPfs* pfs, u8 bank) { u8 temp[BLOCKSIZE]; int i; diff --git a/lib/ultralib/src/io/piint.h b/lib/ultralib/src/io/piint.h index 50a0858..f7fef9d 100644 --- a/lib/ultralib/src/io/piint.h +++ b/lib/ultralib/src/io/piint.h @@ -134,7 +134,7 @@ OSMesgQueue *osPiGetCmdQueue(void); if (cHandle->var != pihandle->var) \ IO_WRITE(reg, pihandle->var) -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P #define EPI_SYNC(pihandle, stat, domain) \ \ diff --git a/lib/ultralib/src/io/pimgr.c b/lib/ultralib/src/io/pimgr.c index d98c6ad..4f0b782 100644 --- a/lib/ultralib/src/io/pimgr.c +++ b/lib/ultralib/src/io/pimgr.c @@ -4,7 +4,7 @@ #include "piint.h" #include "PR/rdb.h" -static OSThread piThread ALIGNED(8); +OSThread piThread ALIGNED(8); static char piThreadStack[OS_PIM_STACKSIZE] ALIGNED(16); #ifndef _FINALROM diff --git a/lib/ultralib/src/io/sirawdma.c b/lib/ultralib/src/io/sirawdma.c index 5fb5f8a..e73537c 100644 --- a/lib/ultralib/src/io/sirawdma.c +++ b/lib/ultralib/src/io/sirawdma.c @@ -55,7 +55,7 @@ s32 __osSiRawStartDma(s32 direction, void* dramAddr) { assert(((u32)dramAddr & 0x3) == 0); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P if (IO_READ(SI_STATUS_REG) & (SI_STATUS_DMA_BUSY | SI_STATUS_RD_BUSY)) { return -1; } diff --git a/lib/ultralib/src/io/vimgr.c b/lib/ultralib/src/io/vimgr.c index 0fe51d5..ef40416 100644 --- a/lib/ultralib/src/io/vimgr.c +++ b/lib/ultralib/src/io/vimgr.c @@ -6,7 +6,7 @@ #include "../os/osint.h" OSDevMgr __osViDevMgr = { 0 }; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P u32 __additional_scanline = 0; #endif static OSThread viThread; @@ -33,7 +33,7 @@ void osCreateViManager(OSPri pri) { return; } __osTimerServicesInit(); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P __additional_scanline = 0; #endif osCreateMesgQueue(&viEventQueue, viEventBuf, ARRLEN(viEventBuf)); diff --git a/lib/ultralib/src/io/viswapcontext.c b/lib/ultralib/src/io/viswapcontext.c index 2f6d2c6..3baf614 100644 --- a/lib/ultralib/src/io/viswapcontext.c +++ b/lib/ultralib/src/io/viswapcontext.c @@ -10,7 +10,7 @@ void __osViSwapContext() { register __OSViContext* vc; u32 origin; u32 hStart; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P u32 vStart; #endif u32 nomValue; @@ -37,7 +37,7 @@ void __osViSwapContext() { vc->y.scale = vm->fldRegs[field].yScale; } -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P vStart = (vm->fldRegs[field].vStart - (__additional_scanline << 0x10)) + __additional_scanline; #endif hStart = vm->comRegs.hStart; @@ -63,7 +63,7 @@ void __osViSwapContext() { IO_WRITE(VI_H_SYNC_REG, vm->comRegs.hSync); IO_WRITE(VI_LEAP_REG, vm->comRegs.leap); IO_WRITE(VI_H_START_REG, hStart); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P IO_WRITE(VI_V_START_REG, vStart); #else IO_WRITE(VI_V_START_REG, vm->fldRegs[field].vStart); diff --git a/lib/ultralib/src/os/exceptasm.h b/lib/ultralib/src/os/exceptasm.h index 0d7def5..0e7845d 100644 --- a/lib/ultralib/src/os/exceptasm.h +++ b/lib/ultralib/src/os/exceptasm.h @@ -20,7 +20,7 @@ #define HWINTR_SP 0x04 /* __osHwInt struct size */ -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P #define HWINTR_SIZE 0x8 #else #define HWINTR_SIZE 0x4 diff --git a/lib/ultralib/src/os/exceptasm.s b/lib/ultralib/src/os/exceptasm.s index b7699a8..7f51554 100644 --- a/lib/ultralib/src/os/exceptasm.s +++ b/lib/ultralib/src/os/exceptasm.s @@ -68,7 +68,7 @@ EXPORT(__osCauseTable_pt) .data -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P EXPORT(__osHwIntTable) .word 0, 0 .word 0, 0 @@ -559,7 +559,7 @@ STAY2(mtc0 t1, C0_COMPARE) b next_interrupt cart: -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P and s0, s0, ~CAUSE_IP4 la t1, __osHwIntTable add t1, HWINTR_SIZE diff --git a/lib/ultralib/src/os/gethwinterrupt.c b/lib/ultralib/src/os/gethwinterrupt.c index 46dc366..c2c8b21 100644 --- a/lib/ultralib/src/os/gethwinterrupt.c +++ b/lib/ultralib/src/os/gethwinterrupt.c @@ -9,7 +9,7 @@ struct __osHwInt { extern struct __osHwInt __osHwIntTable[]; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P void __osGetHWIntrRoutine(OSHWIntr interrupt, s32 (**handler)(void), void** stackEnd) { #else void __osGetHWIntrRoutine(OSHWIntr interrupt, s32 (**handler)(void)) { diff --git a/lib/ultralib/src/os/getmemsize.c b/lib/ultralib/src/os/getmemsize.c index 814443d..824ad4d 100644 --- a/lib/ultralib/src/os/getmemsize.c +++ b/lib/ultralib/src/os/getmemsize.c @@ -6,7 +6,7 @@ #define SIZE_4MB 0x400000 #define SIZE_8MB 0x800000 -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P u32 osGetMemSize(void) { vu32* ptr; diff --git a/lib/ultralib/src/os/interrupt.s b/lib/ultralib/src/os/interrupt.s index 01efe1a..361198a 100644 --- a/lib/ultralib/src/os/interrupt.s +++ b/lib/ultralib/src/os/interrupt.s @@ -6,7 +6,7 @@ .text .set noreorder LEAF(__osDisableInt) -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P la t2, __OSGlobalIntMask lw t3, (t2) andi t3, 0xFF00 diff --git a/lib/ultralib/src/os/seteventmesg.c b/lib/ultralib/src/os/seteventmesg.c index f59308c..6f8cc9d 100644 --- a/lib/ultralib/src/os/seteventmesg.c +++ b/lib/ultralib/src/os/seteventmesg.c @@ -4,7 +4,7 @@ #include "osint.h" __OSEventState __osEventStateTab[OS_NUM_EVENTS] ALIGNED(8); -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P u32 __osPreNMI = FALSE; #endif @@ -26,7 +26,7 @@ void osSetEventMesg(OSEvent event, OSMesgQueue* mq, OSMesg msg) { es->messageQueue = mq; es->message = msg; -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P if (event == OS_EVENT_PRENMI) { if (__osShutdown && !__osPreNMI) { osSendMesg(mq, msg, OS_MESG_NOBLOCK); diff --git a/lib/ultralib/src/os/sethwinterrupt.c b/lib/ultralib/src/os/sethwinterrupt.c index 9aafe1b..02128cb 100644 --- a/lib/ultralib/src/os/sethwinterrupt.c +++ b/lib/ultralib/src/os/sethwinterrupt.c @@ -1,7 +1,7 @@ #include "PR/os_internal.h" // A stack frame was added to hardware interrupt handlers in 2.0J -#if BUILD_VERSION >= VERSION_J +#if BUILD_VERSION >= VERSION_I_P struct __osHwInt { s32 (*handler)(void); diff --git a/linker_scripts/common_undef_syms.ld b/linker_scripts/common_undef_syms.ld index 3b48ae5..f8e39b8 100644 --- a/linker_scripts/common_undef_syms.ld +++ b/linker_scripts/common_undef_syms.ld @@ -11,3 +11,4 @@ EXTERN(_VirtualToPhysicalTask); EXTERN(osSpTaskLoad); EXTERN(osSpTaskStartGo); EXTERN(osViModeMpalLpn1); +EXTERN(__osPfsSelectBank); diff --git a/linker_scripts/us/symbol_addrs.txt b/linker_scripts/us/symbol_addrs.txt index 07868bd..6a262d6 100644 --- a/linker_scripts/us/symbol_addrs.txt +++ b/linker_scripts/us/symbol_addrs.txt @@ -40,7 +40,7 @@ __osDisableInt = 0x80062A90; // defined:true __osDispatchThread = 0x80057E44; // defined:true __osEepStatus = 0x8005BFA4; // defined:true __osEnqueueAndYield = 0x80057CEC; // defined:true -__osGbpakSelectBank = 0x80065AD0; // defined:true +__osGbpakSetBank = 0x80065AD0; // defined:true __osGetId = 0x8005C894; // defined:true __osIdCheckSum = 0x8005C2E4; // defined:true __osLeoInterrupt = 0x80055DF0; // defined:true @@ -284,8 +284,8 @@ osResetType = 0x8000030C; // defined:true osAppNMIBuffer = 0x8000031C; // defined:true osTvType = 0x80000300; // defined:true __osGetCause = 0x80063E00; // defined:true -CartRomHandle = 0x80102430; // defined:true -LeoDiskHandle = 0x801024A8; // defined:true +LeoDiskHandle = 0x801024A8; +CartRomHandle = 0x80102430; __LeoDiskHandle = 0x801007C0; // defined:true __osGlobalIntMask = 0x800796B0; // defined:true __osShutdown = 0x800796AC; // defined:true diff --git a/linker_scripts/us/undefined_syms.ld b/linker_scripts/us/undefined_syms.ld index c6ce22c..8d5070a 100644 --- a/linker_scripts/us/undefined_syms.ld +++ b/linker_scripts/us/undefined_syms.ld @@ -6,8 +6,6 @@ __osRunningThread = 0x80079630; D_80080001 = 0x80080001; D_80083ACC = 0x80083ACC; __osGlobalIntMask = 0x800796B0; -CartRomHandle = 0x80102430; -LeoDiskHandle = 0x801024A8; piThreadStack = 0x801026D0; LEOZONE_OUTERCYL_TBL = 0x8007DD08; LEOinterruptThreadStack = 0x80100638; diff --git a/src/libleo/leodiskinit.c b/src/libleo/leodiskinit.c index 7351c96..1408bc8 100644 --- a/src/libleo/leodiskinit.c +++ b/src/libleo/leodiskinit.c @@ -2,29 +2,29 @@ #include "PR/R4300.h" #include "libleo/internal.h" -extern OSPiHandle LeoDiskHandle; +extern OSPiHandle __LeoDiskHandle; extern OSPiHandle* __osDiskHandle; extern OSPiHandle* __osPiTable; OSPiHandle* osLeoDiskInit(void) { u32 saveMask; - LeoDiskHandle.type = DEVICE_TYPE_64DD; - LeoDiskHandle.baseAddress = PHYS_TO_K1(PI_DOM2_ADDR1); - LeoDiskHandle.latency = 3; - LeoDiskHandle.pulse = 6; - LeoDiskHandle.pageSize = 6; - LeoDiskHandle.relDuration = 2; - LeoDiskHandle.domain = PI_DOMAIN2; - LeoDiskHandle.speed = 0; + __LeoDiskHandle.type = DEVICE_TYPE_64DD; + __LeoDiskHandle.baseAddress = PHYS_TO_K1(PI_DOM2_ADDR1); + __LeoDiskHandle.latency = 3; + __LeoDiskHandle.pulse = 6; + __LeoDiskHandle.pageSize = 6; + __LeoDiskHandle.relDuration = 2; + __LeoDiskHandle.domain = PI_DOMAIN2; + __LeoDiskHandle.speed = 0; - bzero(&LeoDiskHandle.transferInfo, sizeof(__OSTranxInfo)); + bzero(&__LeoDiskHandle.transferInfo, sizeof(__OSTranxInfo)); saveMask = __osDisableInt(); - LeoDiskHandle.next = __osPiTable; - __osPiTable = &LeoDiskHandle; - __osDiskHandle = &LeoDiskHandle; + __LeoDiskHandle.next = __osPiTable; + __osPiTable = &__LeoDiskHandle; + __osDiskHandle = &__LeoDiskHandle; __osRestoreInt(saveMask); - return &LeoDiskHandle; + return &__LeoDiskHandle; } diff --git a/yamls/us/rom.yaml b/yamls/us/rom.yaml index 452f6e3..2ee1f1f 100644 --- a/yamls/us/rom.yaml +++ b/yamls/us/rom.yaml @@ -344,6 +344,7 @@ - [0x7A290, lib, libultra, siacs, .data] - [0x7A2A0, lib, libultra, initialize, .data] - [0x7A2C0, lib, libultra, reverb, .data] + - [0x7A2E0, data, rom_data_7A2E0] - [0x7B460, lib, libultra, pimgr, .data] - [0x7B490, lib, libultra, vimodentsclpn1, .data] - [0x7B4E0, lib, libultra, vimodempallpn1, .data] @@ -429,8 +430,8 @@ - [0x7F1E0, lib, libultra, xldtob, .rodata] - [0x7F240, lib, libultra, llcvt, .rodata] - - [0x7F250, bin, F3DEX2_data] # F3DEX2 data - - [0x7F670, bin, unk_bin_7F670] + - [0x7F250, rodata, F3DEX2_data] # F3DEX2 data + - [0x7F670, rodata, unk_bin_7F670] - [0x7F980] # .bss @@ -461,15 +462,14 @@ - {type: lib, vram: 0x80102200, name: libultra, object: gbpakinit, section: .bss} - {type: lib, vram: 0x80102240, name: libultra, object: kdebugserver, section: .bss} - {type: lib, vram: 0x801023F0, name: libultra, object: pfsisplug, section: .bss} - - {type: lib, vram: 0x80102430, name: libultra, object: cartrominit, section: .bss} - - {type: lib, vram: 0x801024A8, name: libultra, object: leodiskinit, section: .bss} + - {type: lib, vram: 0x80102430, name: libultra, object: leodiskinit, section: .bss} - {type: lib, vram: 0x80102520, name: libultra, object: pimgr, section: .bss} - {type: lib, vram: 0x801036F0, name: libultra, object: contpfs, section: .bss} - {type: lib, vram: 0x801037F0, name: libultra, object: seteventmesg, section: .bss} - {type: lib, vram: 0x80103830, name: libultra, object: rotaterpy, section: .bss} - {type: lib, vram: 0x80103880, name: libultra, object: rotate, section: .bss} - {type: lib, vram: 0x80103890, name: libultra, object: timerintr, section: .bss} - - {type: lib, vram: 0x801038E4, name: libultra, object: cartrominit, section: .bss} + - {type: lib, vram: 0x801038D0, name: libultra, object: cartrominit, section: .bss} - {type: lib, vram: 0x80103950, name: libultra, object: vimgr, section: .bss} - {type: lib, vram: 0x80104b70, name: libultra, object: conteepread, section: .bss} - [0x7F980] @@ -496,7 +496,7 @@ - [0x89020, hasm, fragments/1/fragment1_code_asm] - [0x8D1A0, data, fragments/1/fragment1_data] - [0xA8E80, rodata, fragments/1/fragment1_rodata] - - [0xAAB60, bin, fragments/1/fragment1_relocs] + - [0xAAB60, rodatabin, fragments/1/fragment1_reloc] - name: fragment1_misc_yay0 type: code @@ -517,11 +517,11 @@ start: 0x107FA0 vram: 0x87800000 subsegments: - - [0x107FA0, hasm, fragments/2/fragment2_header] + - [0x107FA0, textbin, fragments/2/fragment2_header] - [0x107FC0, c, fragments/2/fragment2] - [0x10E2D0, data, fragments/2/fragment2_data] - [0x117850, rodata, fragments/2/fragment2_rodata] - - [0x1179C0, bin, fragments/2/fragment2_relocs] + - [0x1179C0, rodatabin, fragments/2/fragment2_reloc] # model animation code - name: fragment3 @@ -530,11 +530,11 @@ start: 0x118990 vram: 0x87900000 subsegments: - - [0x118990, hasm, fragments/3/fragment3_header] + - [0x118990, textbin, fragments/3/fragment3_header] - [0x1189B0, c, fragments/3/fragment3] - [0x11C730, data, fragments/3/fragment3_data] - [0x11E810, rodata, fragments/3/fragment3_rodata] - - [0x11E9D0, bin, fragments/3/fragment3_reloc] + - [0x11E9D0, rodatabin, fragments/3/fragment3_reloc] # MINIGAMES unknown code placed but not executed - name: fragment4 @@ -543,10 +543,10 @@ start: 0x11F560 vram: 0x87A00000 subsegments: - - [0x11F560, hasm, fragments/4/fragment4_header] + - [0x11F560, textbin, fragments/4/fragment4_header] - [0x11F580, c, fragments/4/fragment4] - [0x120670, data, fragments/4/fragment4_data] - - [0x120860, bin, fragments/4/fragment4_reloc] + - [0x120860, rodatabin, fragments/4/fragment4_reloc] # DROWZEE MINIGAME unknown code placed but not executed, might be something about other controllers - name: fragment5 @@ -555,10 +555,10 @@ start: 0x120920 vram: 0x87B00000 # unknown. we dont actually know this fragment's vaddr yet, but we need a unique vaddr so the linker doesnt complain. Might be an unused fragment, as it's very very small, and seems to only poll the controller. subsegments: - - [0x120920, hasm, fragments/5/fragment5_header] + - [0x120920, textbin, fragments/5/fragment5_header] - [0x120940, c, fragments/5/fragment5] - [0x1209E0, data, fragments/5/fragment5_data] - - [0x120A00, bin, fragments/5/fragment5_reloc] + - [0x120A00, rodatabin, fragments/5/fragment5_reloc] # magikarp minigame code - name: fragment6 @@ -567,11 +567,11 @@ start: 0x120A10 vram: 0x86000000 subsegments: - - [0x120A10, hasm, fragments/6/fragment6_header] + - [0x120A10, textbin, fragments/6/fragment6_header] - [0x120A30, c, fragments/6/fragment6] - [0x123330, .data, fragments/6/fragment6] - [0x123890, .rodata, fragments/6/fragment6] - - [0x123940, bin, fragments/6/fragment6_reloc] + - [0x123940, rodatabin, fragments/6/fragment6_reloc] - name: fragment6_misc type: code @@ -588,11 +588,11 @@ start: 0x1278D0 vram: 0x86100000 subsegments: - - [0x1278D0, hasm, fragments/7/fragment7_header] + - [0x1278D0, textbin, fragments/7/fragment7_header] - [0x1278F0, c, fragments/7/fragment7] - [0x12BF10, data, fragments/7/fragment7_data] - [0x12CC90, rodata, fragments/7/fragment7_rodata] - - [0x12CD50, bin, fragments/7/fragment7_reloc] + - [0x12CD50, rodatabin, fragments/7/fragment7_reloc] # rattata minigame code - name: fragment8 @@ -601,11 +601,11 @@ start: 0x12DF40 vram: 0x86200000 subsegments: - - [0x12DF40, hasm, fragments/8/fragment8_header] + - [0x12DF40, textbin, fragments/8/fragment8_header] - [0x12DF60, c, fragments/8/fragment8] - [0x131800, data, fragments/8/fragment8_data] - [0x131AE0, rodata, fragments/8/fragment8_rodata] - - [0x131D70, bin, fragments/8/fragment8_reloc] + - [0x131D70, rodatabin, fragments/8/fragment8_reloc] - name: fragment9 type: code @@ -613,11 +613,11 @@ start: 0x1329E0 vram: 0x86300000 subsegments: - - [0x1329E0, hasm, fragments/9/fragment9_header] + - [0x1329E0, textbin, fragments/9/fragment9_header] - [0x132A00, c, fragments/9/fragment9] - [0x133FE0, data, fragments/9/fragment9_data] - [0x1340A0, rodata, fragments/9/fragment9_rodata] - - [0x1340F0, bin, fragments/9/fragment9_reloc] + - [0x1340F0, rodatabin, fragments/9/fragment9_reloc] # drowzee minigame code - name: fragment10 @@ -626,10 +626,10 @@ start: 0x134680 vram: 0x86400000 subsegments: - - [0x134680, hasm, fragments/10/fragment10_header] + - [0x134680, textbin, fragments/10/fragment10_header] - [0x1346A0, c, fragments/10/fragment10] - [0x136E40, data, fragments/10/fragment10_data] - - [0x1386F0, bin, fragments/10/fragment10_reloc] + - [0x1386F0, rodatabin, fragments/10/fragment10_reloc] # pikachu minigame code - name: fragment11 @@ -638,11 +638,11 @@ start: 0x138F20 vram: 0x86500000 subsegments: - - [0x138F20, hasm, fragments/11/fragment11_header] + - [0x138F20, textbin, fragments/11/fragment11_header] - [0x138F40, c, fragments/11/fragment11] - [0x13BB40, data, fragments/11/fragment11_data] - [0x142170, rodata, fragments/11/fragment11_rodata] - - [0x142200, bin, fragments/11/fragment11_reloc] + - [0x142200, rodatabin, fragments/11/fragment11_reloc] # transfer pak error code - name: fragment12 @@ -651,11 +651,11 @@ start: 0x142B10 vram: 0x86600000 subsegments: - - [0x142B10, hasm, fragments/12/fragment12_header] + - [0x142B10, textbin, fragments/12/fragment12_header] - [0x142B30, c, fragments/12/fragment12] - [0x143360, data, fragments/12/fragment12_data] - [0x143400, rodata, fragments/12/fragment12_rodata] - - [0x143450, bin, fragments/12/fragment12_reloc] + - [0x143450, rodatabin, fragments/12/fragment12_reloc] - name: fragment13 type: code @@ -663,11 +663,11 @@ start: 0x143700 vram: 0x86700000 subsegments: - - [0x143700, hasm, fragments/13/fragment13_header] + - [0x143700, textbin, fragments/13/fragment13_header] - [0x143720, c, fragments/13/fragment13] - [0x143F40, data, fragments/13/fragment13_data] - [0x143FE0, rodata, fragments/13/fragment13_rodata] - - [0x144030, bin, fragments/13/fragment13_reloc] + - [0x144030, rodatabin, fragments/13/fragment13_reloc] # lickitung minigame code - name: fragment14 @@ -676,11 +676,11 @@ start: 0x1442E0 vram: 0x86800000 subsegments: - - [0x1442E0, hasm, fragments/14/fragment14_header] + - [0x1442E0, textbin, fragments/14/fragment14_header] - [0x144300, c, fragments/14/fragment14] - [0x14AFB0, data, fragments/14/fragment14_data] - [0x14B660, rodata, fragments/14/fragment14_rodata] - - [0x14B7E0, bin, fragments/14/fragment14_reloc] + - [0x14B7E0, rodatabin, fragments/14/fragment14_reloc] # gallery camera code - name: fragment15 @@ -689,11 +689,11 @@ start: 0x14CA50 vram: 0x86900000 subsegments: - - [0x14CA50, hasm, fragments/15/fragment15_header] + - [0x14CA50, textbin, fragments/15/fragment15_header] - [0x14CA70, c, fragments/15/fragment15] - [0x1554D0, data, fragments/15/fragment15_data] - [0x156EB0, rodata, fragments/15/fragment15_rodata] - - [0x157060, bin, fragments/15/fragment15_reloc] + - [0x157060, rodatabin, fragments/15/fragment15_reloc] # credits loader - name: fragment16 @@ -702,11 +702,11 @@ start: 0x1589E0 vram: 0x86A00000 subsegments: - - [0x1589E0, hasm, fragments/16/fragment16_header] + - [0x1589E0, textbin, fragments/16/fragment16_header] - [0x158A00, c, fragments/16/fragment16] - [0x15AF80, data, fragments/16/fragment16_data] - [0x15EB20, rodata, fragments/16/fragment16_rodata] - - [0x15EB50, bin, fragments/16/fragment16_reloc] + - [0x15EB50, rodatabin, fragments/16/fragment16_reloc] # stage loader code - name: fragment17 @@ -715,11 +715,11 @@ start: 0x15F990 vram: 0x86B00000 subsegments: - - [0x15F990, hasm, fragments/17/fragment17_header] + - [0x15F990, textbin, fragments/17/fragment17_header] - [0x15F9B0, c, fragments/17/fragment17] - [0x16B580, data, fragments/17/fragment17_data] - [0x16DD70, rodata, fragments/17/fragment17_rodata] - - [0x16DF60, bin, fragments/17/fragment17_reloc] + - [0x16DF60, rodatabin, fragments/17/fragment17_reloc] # ekans minigame code - name: fragment18 @@ -728,11 +728,11 @@ start: 0x1708B0 vram: 0x86C00000 subsegments: - - [0x1708B0, hasm, fragments/18/fragment18_header] + - [0x1708B0, textbin, fragments/18/fragment18_header] - [0x1708D0, c, fragments/18/fragment18] - [0x1750F0, data, fragments/18/fragment18_data] - [0x17EC60, rodata, fragments/18/fragment18_rodata] - - [0x17ED30, bin, fragments/18/fragment18_reloc] + - [0x17ED30, rodatabin, fragments/18/fragment18_reloc] - name: fragment19 type: code @@ -740,11 +740,11 @@ start: 0x17FB40 vram: 0x86D00000 subsegments: - - [0x17FB40, hasm, fragments/19/fragment19_header] + - [0x17FB40, textbin, fragments/19/fragment19_header] - [0x17FB60, c, fragments/19/fragment19] - [0x180070, data, fragments/19/fragment19_data] - [0x180100, rodata, fragments/19/fragment19_rodata] - - [0x180110, bin, fragments/19/fragment19_reloc] + - [0x180110, rodatabin, fragments/19/fragment19_reloc] # metapod minigame code - name: fragment20 @@ -753,11 +753,11 @@ start: 0x1802B0 vram: 0x86E00000 subsegments: - - [0x1802B0, hasm, fragments/20/fragment20_header] + - [0x1802B0, textbin, fragments/20/fragment20_header] - [0x1802D0, c, fragments/20/fragment20] - [0x183260, data, fragments/20/fragment20_data] - [0x184FA0, rodata, fragments/20/fragment20_rodata] - - [0x185010, bin, fragments/20/fragment20_reloc] + - [0x185010, rodatabin, fragments/20/fragment20_reloc] # sandshrew minigame code - name: fragment21 @@ -766,11 +766,11 @@ start: 0x185A10 vram: 0x86F00000 subsegments: - - [0x185A10, hasm, fragments/21/fragment21_header] + - [0x185A10, textbin, fragments/21/fragment21_header] - [0x185A30, c, fragments/21/fragment21] - [0x1880A0, data, fragments/21/fragment21_data] - [0x190B90, rodata, fragments/21/fragment21_rodata] - - [0x190C00, bin, fragments/21/fragment21_reloc] + - [0x190C00, rodatabin, fragments/21/fragment21_reloc] # pokemon lab loader - name: fragment22 @@ -779,11 +779,11 @@ start: 0x191660 vram: 0x88000000 subsegments: - - [0x191660, hasm, fragments/22/fragment22_header] + - [0x191660, textbin, fragments/22/fragment22_header] - [0x191680, c, fragments/22/fragment22] - [0x193EA0, data, fragments/22/fragment22_data] - [0x1A8320, rodata, fragments/22/fragment22_rodata] - - [0x1A8350, bin, fragments/22/fragment22_reloc] + - [0x1A8350, rodatabin, fragments/22/fragment22_reloc] # pokemon lab PC loader - name: fragment23 @@ -792,11 +792,11 @@ start: 0x1A8570 vram: 0x88200000 subsegments: - - [0x1A8570, hasm, fragments/23/fragment23_header] + - [0x1A8570, textbin, fragments/23/fragment23_header] - [0x1A8590, c, fragments/23/fragment23] - [0x1C0160, data, fragments/23/fragment23_data] - [0x1CD3C0, rodata, fragments/23/fragment23_rodata] - - [0x1CD500, bin, fragments/23/fragment23_reloc] + - [0x1CD500, rodatabin, fragments/23/fragment23_reloc] # pokemon lab PC: list code - name: fragment24 @@ -805,11 +805,11 @@ start: 0x1CE9E0 vram: 0x88300000 subsegments: - - [0x1CE9E0, hasm, fragments/24/fragment24_header] + - [0x1CE9E0, textbin, fragments/24/fragment24_header] - [0x1CEA00, c, fragments/24/fragment24] - [0x1E5BB0, data, fragments/24/fragment24_data] - [0x1E8C40, rodata, fragments/24/fragment24_rodata] - - [0x1E8EA0, bin, fragments/24/fragment24_reloc] + - [0x1E8EA0, rodatabin, fragments/24/fragment24_reloc] # POKEMON LAB unknown code placed but not executed - name: fragment25 @@ -818,10 +818,10 @@ start: 0x1EA640 vram: 0x88400000 subsegments: - - [0x1EA640, hasm, fragments/25/fragment25_header] + - [0x1EA640, textbin, fragments/25/fragment25_header] - [0x1EA660, c, fragments/25/fragment25] - [0x1EA740, data, fragments/25/fragment25_data] - - [0x1EA840, bin, fragments/25/fragment25_reloc] + - [0x1EA840, rodatabin, fragments/25/fragment25_reloc] # POKEMON LAB unknown code placed but not executed - name: fragment26 @@ -830,11 +830,11 @@ start: 0x1EA860 vram: 0x88500000 subsegments: - - [0x1EA860, hasm, fragments/26/fragment26_header] + - [0x1EA860, textbin, fragments/26/fragment26_header] - [0x1EA880, c, fragments/26/fragment26] - [0x1F77E0, data, fragments/26/fragment26_data] - [0x1F7810, rodata, fragments/26/fragment26_rodata] - - [0x1F7840, bin, fragments/26/fragment26_reloc] + - [0x1F7840, rodatabin, fragments/26/fragment26_reloc] # pokemon lab PC: pokemon, item, boxes etc - name: fragment27 @@ -843,11 +843,11 @@ start: 0x1F7C90 vram: 0x88600000 subsegments: - - [0x1F7C90, hasm, fragments/27/fragment27_header] + - [0x1F7C90, textbin, fragments/27/fragment27_header] - [0x1F7CB0, c, fragments/27/fragment27] - [0x1FD750, data, fragments/27/fragment27_data] - [0x214060, rodata, fragments/27/fragment27_rodata] - - [0x2141A0, bin, fragments/27/fragment27_reloc] + - [0x2141A0, rodatabin, fragments/27/fragment27_reloc] # pokemon lab: pokedex loader - name: fragment28 @@ -856,11 +856,11 @@ start: 0x214900 vram: 0x88800000 subsegments: - - [0x214900, hasm, fragments/28/fragment28_header] + - [0x214900, textbin, fragments/28/fragment28_header] - [0x214920, c, fragments/28/fragment28] - [0x21CA50, data, fragments/28/fragment28_data] - [0x23AF80, rodata, fragments/28/fragment28_rodata] - - [0x23B0A0, bin, fragments/28/fragment28_reloc] + - [0x23B0A0, rodatabin, fragments/28/fragment28_reloc] # POKEMON LAB PC some text functions but not executed - name: fragment29 @@ -869,10 +869,10 @@ start: 0x23C250 vram: 0x88900000 subsegments: - - [0x23C250, hasm, fragments/29/fragment29_header] + - [0x23C250, textbin, fragments/29/fragment29_header] - [0x23C270, c, fragments/29/fragment29] - [0x23D3C0, data, fragments/29/fragment29_data] - - [0x23D430, bin, fragments/29/fragment29_reloc] + - [0x23D430, rodatabin, fragments/29/fragment29_reloc] - name: fragment29_misc_1 type: code @@ -904,9 +904,9 @@ start: 0x255230 vram: 0x88A00000 # unknown vram, since nothing loads this. probably 88A00000? subsegments: - - [0x255230, hasm, fragments/30/fragment30_header] + - [0x255230, textbin, fragments/30/fragment30_header] - [0x255250, c, fragments/30/fragment30] - - [0x2552B0, bin, fragments/30/fragment30_reloc] + - [0x2552B0, rodatabin, fragments/30/fragment30_reloc] # transfer pak checker - name: fragment31 @@ -915,12 +915,12 @@ start: 0x2552C0 vram: 0x81000000 subsegments: - - [0x2552C0, hasm, fragments/31/fragment31_header] - - [0x2552E0, bin, fragments/31/fragment31_unk_table] # what is this? + - [0x2552C0, textbin, fragments/31/fragment31_header] + - [0x2552E0, textbin, fragments/31/fragment31_unk_table] # what is this? - [0x2554C0, c, fragments/31/fragment31] - [0x259290, data, fragments/31/fragment31_data] - [0x259480, rodata, fragments/31/fragment31_rodata] - - [0x259AA0, bin, fragments/31/fragment31_reloc] + - [0x259AA0, rodatabin, fragments/31/fragment31_reloc] # drowzee minigame stage animations - name: fragment32 @@ -929,10 +929,10 @@ start: 0x25A740 vram: 0x81100000 subsegments: - - [0x25A740, hasm, fragments/32/fragment32_header] + - [0x25A740, textbin, fragments/32/fragment32_header] - [0x25A760, c, fragments/32/fragment32] - [0x25B060, data, fragments/32/fragment32_data] - - [0x25B070, bin, fragments/32/fragment32_reloc] + - [0x25B070, rodatabin, fragments/32/fragment32_reloc] # transfer pak code - name: fragment33 @@ -941,11 +941,11 @@ start: 0x25B0D0 vram: 0x81300000 subsegments: - - [0x25B0D0, hasm, fragments/33/fragment33_header] + - [0x25B0D0, textbin, fragments/33/fragment33_header] - [0x25B0F0, asm, fragments/33/fragment33] - [0x25ECF0, data, fragments/33/fragment33_data] - [0x25F020, rodata, fragments/33/fragment33_rodata] - - [0x25F070, bin, fragments/33/fragment33_reloc] + - [0x25F070, rodatabin, fragments/33/fragment33_reloc] - name: fragment33_misc type: code @@ -962,11 +962,11 @@ start: 0x261F70 vram: 0x81400000 subsegments: - - [0x261F70, hasm, fragments/34/fragment34_header] + - [0x261F70, textbin, fragments/34/fragment34_header] - [0x261F90, c, fragments/34/fragment34] - [0x26F9C0, data, fragments/34/fragment34_data] - [0x270570, rodata, fragments/34/fragment34_rodata] - - [0x270590, bin, fragments/34/fragment34_reloc] + - [0x270590, rodatabin, fragments/34/fragment34_reloc] # n64 logo code - name: fragment35 @@ -975,9 +975,9 @@ start: 0x271260 vram: 0x82000000 subsegments: - - [0x271260, hasm, fragments/35/fragment35_header] + - [0x271260, textbin, fragments/35/fragment35_header] - [0x271280, c, fragments/35/fragment35] - - [0x2717C0, bin, fragments/35/fragment35_reloc] + - [0x2717C0, rodatabin, fragments/35/fragment35_reloc] # title screen code - name: fragment36 @@ -986,11 +986,11 @@ start: 0x2717E0 vram: 0x82100000 subsegments: - - [0x2717E0, hasm, fragments/36/fragment36_header] + - [0x2717E0, textbin, fragments/36/fragment36_header] - [0x271800, c, fragments/36/fragment36] - [0x2725A0, data, fragments/36/fragment36_data] - [0x272660, rodata, fragments/36/fragment36_rodata] - - [0x272680, bin, fragments/36/fragment36_reloc] + - [0x272680, rodatabin, fragments/36/fragment36_reloc] # stadium field loader - name: fragment37 @@ -999,11 +999,11 @@ start: 0x272830 vram: 0x82200000 subsegments: - - [0x272830, hasm, fragments/37/fragment37_header] + - [0x272830, textbin, fragments/37/fragment37_header] - [0x272850, c, fragments/37/fragment37] - [0x2757D0, data, fragments/37/fragment37_data] - [0x275900, rodata, fragments/37/fragment37_rodata] - - [0x275920, bin, fragments/37/fragment37_reloc] + - [0x275920, rodatabin, fragments/37/fragment37_reloc] # event battle loader - name: fragment38 @@ -1012,11 +1012,11 @@ start: 0x275CE0 vram: 0x82300000 subsegments: - - [0x275CE0, hasm, fragments/38/fragment38_header] + - [0x275CE0, textbin, fragments/38/fragment38_header] - [0x275D00, c, fragments/38/fragment38] - [0x27B600, data, fragments/38/fragment38_data] - [0x27B6B0, rodata, fragments/38/fragment38_rodata] - - [0x27B700, bin, fragments/38/fragment38_reloc] + - [0x27B700, rodatabin, fragments/38/fragment38_reloc] # minigames loader - name: fragment39 @@ -1025,11 +1025,11 @@ start: 0x27BCA0 vram: 0x82500000 subsegments: - - [0x27BCA0, hasm, fragments/39/fragment39_header] + - [0x27BCA0, textbin, fragments/39/fragment39_header] - [0x27BCC0, c, fragments/39/fragment39] - [0x281E50, data, fragments/39/fragment39_data] - [0x2846C0, rodata, fragments/39/fragment39_rodata] - - [0x284790, bin, fragments/39/fragment39_reloc] + - [0x284790, rodatabin, fragments/39/fragment39_reloc] # gym leader castle clear / pokemon gift code - name: fragment40 @@ -1038,11 +1038,11 @@ start: 0x285DC0 vram: 0x83100000 subsegments: - - [0x285DC0, hasm, fragments/40/fragment40_header] + - [0x285DC0, textbin, fragments/40/fragment40_header] - [0x285DE0, c, fragments/40/fragment40] - [0x2879A0, data, fragments/40/fragment40_data] - [0x287C80, rodata, fragments/40/fragment40_rodata] - - [0x287CA0, bin, fragments/40/fragment40_reloc] + - [0x287CA0, rodatabin, fragments/40/fragment40_reloc] # pokemon trade machine loader - name: fragment41 @@ -1051,11 +1051,11 @@ start: 0x287EB0 vram: 0x82F00000 subsegments: - - [0x287EB0, hasm, fragments/41/fragment41_header] + - [0x287EB0, textbin, fragments/41/fragment41_header] - [0x287ED0, c, fragments/41/fragment41] - [0x29BA20, data, fragments/41/fragment41_data] - [0x29BF80, rodata, fragments/41/fragment41_rodata] - - [0x29C2D0, bin, fragments/41/fragment41_reloc] + - [0x29C2D0, rodatabin, fragments/41/fragment41_reloc] # gallery loader - name: fragment42 @@ -1064,11 +1064,11 @@ start: 0x29DD30 vram: 0x83300000 subsegments: - - [0x29DD30, hasm, fragments/42/fragment42_header] + - [0x29DD30, textbin, fragments/42/fragment42_header] - [0x29DD50, c, fragments/42/fragment42] - [0x2A0EB0, data, fragments/42/fragment42_data] - [0x2A0FE0, rodata, fragments/42/fragment42_rodata] - - [0x2A1010, bin, fragments/42/fragment42_reloc] + - [0x2A1010, rodatabin, fragments/42/fragment42_reloc] # gallery code - name: fragment43 @@ -1077,11 +1077,11 @@ start: 0x2A1B30 vram: 0x83400000 subsegments: - - [0x2A1B30, hasm, fragments/43/fragment43_header] + - [0x2A1B30, textbin, fragments/43/fragment43_header] - [0x2A1B50, c, fragments/43/fragment43] - [0x2A4950, data, fragments/43/fragment43_data] - [0x2A49F0, rodata, fragments/43/fragment43_rodata] - - [0x2A4A10, bin, fragments/43/fragment43_reloc] + - [0x2A4A10, rodatabin, fragments/43/fragment43_reloc] # gallery album code - name: fragment44 @@ -1090,10 +1090,10 @@ start: 0x2A4DF0 vram: 0x83500000 subsegments: - - [0x2A4DF0, hasm, fragments/44/fragment44_header] + - [0x2A4DF0, textbin, fragments/44/fragment44_header] - [0x2A4E10, c, fragments/44/fragment44] - [0x2A8C60, rodata, fragments/44/fragment44_rodata] - - [0x2A8DB0, bin, fragments/44/fragment44_reloc] + - [0x2A8DB0, rodatabin, fragments/44/fragment44_reloc] # might be print code - name: fragment45 @@ -1102,11 +1102,11 @@ start: 0x2A9790 vram: 0x83600000 subsegments: - - [0x2A9790, hasm, fragments/45/fragment45_header] + - [0x2A9790, textbin, fragments/45/fragment45_header] - [0x2A97B0, c, fragments/45/fragment45] - [0x2ACA10, data, fragments/45/fragment45_data] - [0x2ACA70, rodata, fragments/45/fragment45_rodata] - - [0x2ACA80, bin, fragments/45/fragment45_reloc] + - [0x2ACA80, rodatabin, fragments/45/fragment45_reloc] # gallery enlarge code - name: fragment46 @@ -1115,10 +1115,10 @@ start: 0x2AD270 vram: 0x83700000 subsegments: - - [0x2AD270, hasm, fragments/46/fragment46_header] + - [0x2AD270, textbin, fragments/46/fragment46_header] - [0x2AD290, c, fragments/46/fragment46] - [0x2AD720, data, fragments/46/fragment46_data] - - [0x2AD730, bin, fragments/46/fragment46_reloc] + - [0x2AD730, rodatabin, fragments/46/fragment46_reloc] # gallery rental pokemon loader - name: fragment47 @@ -1127,11 +1127,11 @@ start: 0x2AD8F0 vram: 0x83800000 subsegments: - - [0x2AD8F0, hasm, fragments/47/fragment47_header] + - [0x2AD8F0, textbin, fragments/47/fragment47_header] - [0x2AD910, c, fragments/47/fragment47] - [0x2B25A0, data, fragments/47/fragment47_data] - [0x2B2E50, rodata, fragments/47/fragment47_rodata] - - [0x2B2F40, bin, fragments/47/fragment47_reloc] + - [0x2B2F40, rodatabin, fragments/47/fragment47_reloc] # Gallery Debugger (unused) - name: fragment48 @@ -1140,11 +1140,11 @@ start: 0x2B3F70 vram: 0x83900000 # apparently not used either, but VRAM is an estimate based on the patterns around this fragment. subsegments: - - [0x2B3F70, hasm, fragments/48/fragment48_header] + - [0x2B3F70, textbin, fragments/48/fragment48_header] - [0x2B3F90, c, fragments/48/fragment48] - [0x2B45A0, data, fragments/48/fragment48_data] - [0x2B45C0, rodata, fragments/48/fragment48_rodata] - - [0x2B4620, bin, fragments/48/fragment48_reloc] + - [0x2B4620, rodatabin, fragments/48/fragment48_reloc] - name: fragment49 type: code @@ -1152,10 +1152,10 @@ start: 0x2B46F0 vram: 0x83A00000 subsegments: - - [0x2B46F0, hasm, fragments/49/fragment49_header] + - [0x2B46F0, textbin, fragments/49/fragment49_header] - [0x2B4710, c, fragments/49/fragment49] - [0x2B5240, data, fragments/49/fragment49_data] - - [0x2B5260, bin, fragments/49/fragment49_reloc] + - [0x2B5260, rodatabin, fragments/49/fragment49_reloc] # hall of fame loader - name: fragment50 @@ -1164,11 +1164,11 @@ start: 0x2B5350 vram: 0x82600000 subsegments: - - [0x2B5350, hasm, fragments/50/fragment50_header] + - [0x2B5350, textbin, fragments/50/fragment50_header] - [0x2B5370, c, fragments/50/fragment50] - [0x2B91D0, data, fragments/50/fragment50_data] - [0x2BC690, rodata, fragments/50/fragment50_rodata] - - [0x2BC760, bin, fragments/50/fragment50_reloc] + - [0x2BC760, rodatabin, fragments/50/fragment50_reloc] - name: fragment51 @@ -1177,9 +1177,9 @@ start: 0x2BD0A0 vram: 0x82800000 # unknown vram due to being unused, but based on the patterns before hand, this is probably 82800000. subsegments: - - [0x2BD0A0, bin, fragments/51/fragment51_header] # need to leave it as a bin. Splat thinks there's a pointer + - [0x2BD0A0, textbin, fragments/51/fragment51_header] # need to leave it as a bin. Splat thinks there's a pointer - [0x2BD0C0, c, fragments/51/fragment51] - - [0x2BD120, bin, fragments/51/fragment51_reloc] + - [0x2BD120, rodatabin, fragments/51/fragment51_reloc] - name: fragment52 @@ -1188,10 +1188,10 @@ start: 0x2BD130 vram: 0x82900000 # unknown vram due to being unused, but based on the patterns before hand, this is probably 82900000. subsegments: - - [0x2BD130, bin, fragments/52/fragment52_header] # need to leave it as a bin. Splat thinks there's a pointer + - [0x2BD130, textbin, fragments/52/fragment52_header] # need to leave it as a bin. Splat thinks there's a pointer - [0x2BD150, c, fragments/52/fragment52] - [0x2BD600, data, fragments/52/fragment52_data] - - [0x2BD660, bin, fragments/52/fragment52_reloc] + - [0x2BD660, rodatabin, fragments/52/fragment52_reloc] - name: fragment53 type: code @@ -1199,10 +1199,10 @@ start: 0x2BD6E0 vram: 0x82A00000 subsegments: - - [0x2BD6E0, hasm, fragments/53/fragment53_header] + - [0x2BD6E0, textbin, fragments/53/fragment53_header] - [0x2BD700, c, fragments/53/fragment53] - [0x2BDA40, data, fragments/53/fragment53_data] - - [0x2BDA50, bin, fragments/53/fragment53_reloc] + - [0x2BDA50, rodatabin, fragments/53/fragment53_reloc] # RENTAL battle, rules, registration loader - name: fragment54 @@ -1211,10 +1211,10 @@ start: 0x2BDAC0 vram: 0x82B00000 subsegments: - - [0x2BDAC0, bin, fragments/54/fragment54_header] # need to leave it as a bin. Splat thinks there's a pointer + - [0x2BDAC0, textbin, fragments/54/fragment54_header] # need to leave it as a bin. Splat thinks there's a pointer - [0x2BDAE0, c, fragments/54/fragment54] - [0x2BEBE0, data, fragments/54/fragment54_data] - - [0x2BEC00, bin, fragments/54/fragment54_reloc] + - [0x2BEC00, rodatabin, fragments/54/fragment54_reloc] # RENTAL rules loader @@ -1224,11 +1224,11 @@ start: 0x2BED20 vram: 0x83000000 subsegments: - - [0x2BED20, hasm, fragments/55/fragment55_header] + - [0x2BED20, textbin, fragments/55/fragment55_header] - [0x2BED40, c, fragments/55/fragment55] - [0x2C26E0, data, fragments/55/fragment55_data] - [0x2C28A0, rodata, fragments/55/fragment55_rodata] - - [0x2C29A0, bin, fragments/55/fragment55_reloc] + - [0x2C29A0, rodatabin, fragments/55/fragment55_reloc] # options code - name: fragment56 @@ -1237,9 +1237,9 @@ start: 0x2C3220 vram: 0x82C00000 subsegments: - - [0x2C3220, hasm, fragments/56/fragment56_header] + - [0x2C3220, textbin, fragments/56/fragment56_header] - [0x2C3240, c, fragments/56/fragment56] - - [0x2C4880, bin, fragments/56/fragment56_reloc] + - [0x2C4880, rodatabin, fragments/56/fragment56_reloc] # RENTAL registration code - name: fragment57 @@ -1248,11 +1248,11 @@ start: 0x2C49D0 vram: 0x82D00000 subsegments: - - [0x2C49D0, hasm, fragments/57/fragment57_header] + - [0x2C49D0, textbin, fragments/57/fragment57_header] - [0x2C49F0, c, fragments/57/fragment57] - [0x2CB970, data, fragments/57/fragment57_data] - [0x2CE950, rodata, fragments/57/fragment57_rodata] - - [0x2CE9C0, bin, fragments/57/fragment57_reloc] + - [0x2CE9C0, rodatabin, fragments/57/fragment57_reloc] # sandshrew minigame stage animation - name: fragment58 @@ -1261,11 +1261,11 @@ start: 0x2CF350 vram: 0x84000000 subsegments: - - [0x2CF350, hasm, fragments/58/fragment58_header] + - [0x2CF350, textbin, fragments/58/fragment58_header] - [0x2CF370, c, fragments/58/fragment58] - [0x2D1F30, data, fragments/58/fragment58_data] - [0x2D2000, rodata, fragments/58/fragment58_rodata] - - [0x2D2050, bin, fragments/58/fragment58_reloc] + - [0x2D2050, rodatabin, fragments/58/fragment58_reloc] # stadium loader - name: fragment59 @@ -1274,11 +1274,11 @@ start: 0x2D24C0 vram: 0x84100000 subsegments: - - [0x2D24C0, hasm, fragments/59/fragment59_header] + - [0x2D24C0, textbin, fragments/59/fragment59_header] - [0x2D24E0, c, fragments/59/fragment59] - [0x2D48F0, data, fragments/59/fragment59_data] - [0x2D58F0, rodata, fragments/59/fragment59_rodata] - - [0x2D5900, bin, fragments/59/fragment59_reloc] + - [0x2D5900, rodatabin, fragments/59/fragment59_reloc] # cup code - name: fragment60 @@ -1287,11 +1287,11 @@ start: 0x2D5CB0 vram: 0x82E00000 subsegments: - - [0x2D5CB0, hasm, fragments/60/fragment60_header] + - [0x2D5CB0, textbin, fragments/60/fragment60_header] - [0x2D5CD0, c, fragments/60/fragment60] - [0x2D6DC0, data, fragments/60/fragment60_data] - [0x2D7650, rodata, fragments/60/fragment60_rodata] - - [0x2D7660, bin, fragments/60/fragment60_reloc] + - [0x2D7660, rodatabin, fragments/60/fragment60_reloc] # RENTAL pokemon loader - name: fragment61 @@ -1300,11 +1300,11 @@ start: 0x2D7890 vram: 0x84200000 subsegments: - - [0x2D7890, hasm, fragments/61/fragment61_header] + - [0x2D7890, textbin, fragments/61/fragment61_header] - [0x2D78B0, c, fragments/61/fragment61] - [0x2E85D0, data, fragments/61/fragment61_data] - [0x2E9120, rodata, fragments/61/fragment61_rodata] - - [0x2E93C0, bin, fragments/61/fragment61_reloc] + - [0x2E93C0, rodatabin, fragments/61/fragment61_reloc] # battle system code - name: fragment62 @@ -1313,11 +1313,11 @@ start: 0x2EA8C0 vram: 0x84300000 subsegments: - - [0x2EA8C0, hasm, fragments/62/fragment62_header] + - [0x2EA8C0, textbin, fragments/62/fragment62_header] - [0x2EA8E0, c, fragments/62/fragment62] - [0x36EC10, data, fragments/62/fragment62_data] - [0x3759C0, rodata, fragments/62/fragment62_rodata] - - [0x378D00, bin, fragments/62/fragment62_reloc] + - [0x378D00, rodatabin, fragments/62/fragment62_reloc] # battle preparation flags, rules, code - name: fragment63 @@ -1326,11 +1326,11 @@ start: 0x394100 vram: 0x84B00000 subsegments: - - [0x394100, hasm, fragments/63/fragment63_header] + - [0x394100, textbin, fragments/63/fragment63_header] - [0x394120, c, fragments/63/fragment63] - [0x3A3C10, data, fragments/63/fragment63_data] - [0x3AD980, rodata, fragments/63/fragment63_rodata] - - [0x3ADA10, bin, fragments/63/fragment63_reloc] + - [0x3ADA10, rodatabin, fragments/63/fragment63_reloc] # menu selector before battle code - name: fragment64 @@ -1339,11 +1339,11 @@ start: 0x3AEE50 vram: 0x84800000 subsegments: - - [0x3AEE50, hasm, fragments/64/fragment64_header] + - [0x3AEE50, textbin, fragments/64/fragment64_header] - [0x3AEE70, c, fragments/64/fragment64] - [0x3B2390, data, fragments/64/fragment64_data] - [0x3B2530, rodata, fragments/64/fragment64_rodata] - - [0x3B25B0, bin, fragments/64/fragment64_reloc] + - [0x3B25B0, rodatabin, fragments/64/fragment64_reloc] # gym leader castle loader - name: fragment65 @@ -1352,11 +1352,11 @@ start: 0x3B2AE0 vram: 0x84A00000 subsegments: - - [0x3B2AE0, hasm, fragments/65/fragment65_header] + - [0x3B2AE0, textbin, fragments/65/fragment65_header] - [0x3B2B00, c, fragments/65/fragment65] - [0x3B59E0, data, fragments/65/fragment65_data] - [0x3B5BE0, rodata, fragments/65/fragment65_rodata] - - [0x3B5C10, bin, fragments/65/fragment65_reloc] + - [0x3B5C10, rodatabin, fragments/65/fragment65_reloc] - name: fragment66 type: code @@ -1364,10 +1364,10 @@ start: 0x3B6130 vram: 0x83200000 subsegments: - - [0x3B6130, hasm, fragments/66/fragment66_header] + - [0x3B6130, textbin, fragments/66/fragment66_header] - [0x3B6150, c, fragments/66/fragment66] - [0x3B8080, data, fragments/66/fragment66_data] - - [0x3B8140, bin, fragments/66/fragment66_reloc] + - [0x3B8140, rodatabin, fragments/66/fragment66_reloc] - name: fragment67 type: code @@ -1375,9 +1375,9 @@ start: 0x3B8530 vram: 0x8F000000 subsegments: - - [0x3B8530, hasm, fragments/67/fragment67_header] + - [0x3B8530, textbin, fragments/67/fragment67_header] - [0x3B8550, c, fragments/67/fragment67] - - [0x3B8560, bin, fragments/67/fragment67_reloc] + - [0x3B8560, rodatabin, fragments/67/fragment67_reloc] # These are a bunch of seemingly unused(?) fragments which all they do is access or load fragment 67. - name: fragment68 @@ -1386,9 +1386,9 @@ start: 0x3B8570 vram: 0x8F100000 # unknown vram. Another unused one? Might be 8F100000? subsegments: - - [0x3B8570, hasm, fragments/68/fragment68_header] + - [0x3B8570, textbin, fragments/68/fragment68_header] - [0x3B8590, c, fragments/68/fragment68] - - [0x3B85F0, bin, fragments/68/fragment68_reloc] + - [0x3B85F0, rodatabin, fragments/68/fragment68_reloc] - name: fragment69 type: code @@ -1396,9 +1396,9 @@ start: 0x3B8600 vram: 0x8F200000 # unknown vram. Another unused one? Might be 8F200000? subsegments: - - [0x3B8600, hasm, fragments/69/fragment69_header] + - [0x3B8600, textbin, fragments/69/fragment69_header] - [0x3B8620, c, fragments/69/fragment69] - - [0x3B8680, bin, fragments/69/fragment69_reloc] + - [0x3B8680, rodatabin, fragments/69/fragment69_reloc] - name: fragment70 type: code @@ -1406,9 +1406,9 @@ start: 0x3B8690 vram: 0x8F300000 # unknown vram. Another unused one? Might be 8F300000? subsegments: - - [0x3B8690, hasm, fragments/70/fragment70_header] + - [0x3B8690, textbin, fragments/70/fragment70_header] - [0x3B86B0, c, fragments/70/fragment70] - - [0x3B8710, bin, fragments/70/fragment70_reloc] + - [0x3B8710, rodatabin, fragments/70/fragment70_reloc] - name: fragment71 type: code @@ -1416,9 +1416,9 @@ start: 0x3B8720 vram: 0x8F400000 # unknown vram. Another unused one? Might be 8F400000? subsegments: - - [0x3B8720, hasm, fragments/71/fragment71_header] + - [0x3B8720, textbin, fragments/71/fragment71_header] - [0x3B8740, c, fragments/71/fragment71] - - [0x3B87A0, bin, fragments/71/fragment71_reloc] + - [0x3B87A0, rodatabin, fragments/71/fragment71_reloc] - name: fragment72 type: code @@ -1426,9 +1426,9 @@ start: 0x3B87B0 vram: 0x8F500000 # unknown vram. Another unused one? Might be 8F500000? subsegments: - - [0x3B87B0, hasm, fragments/72/fragment72_header] + - [0x3B87B0, textbin, fragments/72/fragment72_header] - [0x3B87D0, c, fragments/72/fragment72] - - [0x3B8830, bin, fragments/72/fragment72_reloc] + - [0x3B8830, rodatabin, fragments/72/fragment72_reloc] - name: fragment73 type: code @@ -1436,9 +1436,9 @@ start: 0x3B8840 vram: 0x8F600000 # unknown vram. Another unused one? Might be 8F600000? subsegments: - - [0x3B8840, hasm, fragments/73/fragment73_header] + - [0x3B8840, textbin, fragments/73/fragment73_header] - [0x3B8860, c, fragments/73/fragment73] - - [0x3B88C0, bin, fragments/73/fragment73_reloc] + - [0x3B88C0, rodatabin, fragments/73/fragment73_reloc] - name: fragment74 type: code @@ -1446,9 +1446,9 @@ start: 0x3B88D0 vram: 0x8F700000 # unknown vram. Another unused one? Might be 8F700000? subsegments: - - [0x3B88D0, hasm, fragments/74/fragment74_header] + - [0x3B88D0, textbin, fragments/74/fragment74_header] - [0x3B88F0, c, fragments/74/fragment74] - - [0x3B8950, bin, fragments/74/fragment74_reloc] + - [0x3B8950, rodatabin, fragments/74/fragment74_reloc] - name: fragment75 type: code @@ -1456,10 +1456,10 @@ start: 0x3B8960 vram: 0x8FA00000 subsegments: - - [0x3B8960, hasm, fragments/75/fragment75_header] + - [0x3B8960, textbin, fragments/75/fragment75_header] - [0x3B8980, c, fragments/75/fragment75] - [0x3B9350, data, fragments/75/fragment75_data] - - [0x3B9380, bin, fragments/75/fragment75_reloc] + - [0x3B9380, rodatabin, fragments/75/fragment75_reloc] - name: fragment76 type: code @@ -1467,9 +1467,9 @@ start: 0x3B9590 vram: 0x8FB00000 # unknown vram. Another unused one? Might be 8FB00000? subsegments: - - [0x3B9590, hasm, fragments/76/fragment76_header] + - [0x3B9590, textbin, fragments/76/fragment76_header] - [0x3B95B0, c, fragments/76/fragment76] - - [0x3B9610, bin, fragments/76/fragment76_reloc] + - [0x3B9610, rodatabin, fragments/76/fragment76_reloc] - name: fragment77 type: code @@ -1477,9 +1477,9 @@ start: 0x3B9620 vram: 0x8FC00000 # unknown vram. Another unused one? Might be 8FC00000? subsegments: - - [0x3B9620, bin, fragments/77/fragment77_header] # need to leave it as a bin. Splat thinks there's a pointer + - [0x3B9620, textbin, fragments/77/fragment77_header] # need to leave it as a bin. Splat thinks there's a pointer - [0x3B9640, c, fragments/77/fragment77] - - [0x3B96A0, bin, fragments/77/fragment77_reloc] + - [0x3B96A0, rodatabin, fragments/77/fragment77_reloc] - [0x3B96B0, bin] - [0x3BA190, bin]