This commit is contained in:
Kelebek1 2024-08-11 05:24:23 +01:00
parent 08f3e577a9
commit f7b52c5327
40 changed files with 311 additions and 260 deletions

View File

@ -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/

View File

@ -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'] = ['.']

View File

@ -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;

View File

@ -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

View File

@ -269,6 +269,7 @@ pfsreadwritefile.o
pfsfilestate.o
pfssearchfile.o
pfssetlabel.o
pfsselectbank.o
pfsgetlabel.o
pfsisplug.o
pfsfreeblocks.o

View File

@ -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,

View File

@ -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;

View File

@ -63,6 +63,7 @@ OSPiHandle* osCartRomInit(void) {
return &__CartRomHandle;
}
#else
OSPiHandle CartRomHandle ALIGNED(8);

View File

@ -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;
}

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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))

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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))

View File

@ -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) {

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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) \
\

View File

@ -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

View File

@ -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;
}

View File

@ -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));

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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)) {

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -11,3 +11,4 @@ EXTERN(_VirtualToPhysicalTask);
EXTERN(osSpTaskLoad);
EXTERN(osSpTaskStartGo);
EXTERN(osViModeMpalLpn1);
EXTERN(__osPfsSelectBank);

View File

@ -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

View File

@ -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;

View File

@ -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;
}

View File

@ -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]