From 66914659ff3cd7e4294d1dc4a9fa2791c5285b38 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 19 Mar 2022 14:23:26 +1000 Subject: [PATCH] Rename a heap of file functions --- src/game/bg.c | 2 +- src/game/bondgun.c | 32 +++--- src/game/file.c | 198 ++++++++++++++++++++------------- src/game/game_00b320.c | 20 ++-- src/game/game_00c490.c | 24 ++-- src/game/game_013cf0.c | 2 +- src/game/game_02cde0.c | 14 +-- src/game/game_091e10.c | 2 +- src/game/game_092610.c | 2 +- src/game/game_175f90.c | 4 +- src/game/game_1a7560.c | 24 ++-- src/game/lang.c | 22 ++-- src/game/menu.c | 108 +++++++++--------- src/game/player.c | 26 ++--- src/game/title.c | 60 +++++----- src/include/constants.h | 3 + src/include/game/file.h | 23 ++-- src/include/game/game_1a7560.h | 4 +- src/include/game/lang.h | 4 +- src/include/types.h | 4 +- src/lib/main.c | 20 ++-- src/lib/snd.c | 2 +- 22 files changed, 320 insertions(+), 280 deletions(-) diff --git a/src/game/bg.c b/src/game/bg.c index 1af86ebbe..aed0160ea 100644 --- a/src/game/bg.c +++ b/src/game/bg.c @@ -3532,7 +3532,7 @@ void bgLoadFile(void *memaddr, u32 offset, u32 len) if (var8007fc04) { bcopy(var8007fc08 + offset, memaddr, len); } else { - func0f166ff0(g_Stages[g_StageIndex].bgfileid, memaddr, offset, len); + fileLoadPartToAddr(g_Stages[g_StageIndex].bgfileid, memaddr, offset, len); } } diff --git a/src/game/bondgun.c b/src/game/bondgun.c index 0b0f1a1d6..143918d43 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -12149,7 +12149,7 @@ glabel bgun0f09e144 /* f09e19c: 8e5815bc */ lw $t8,0x15bc($s2) /* f09e1a0: af100000 */ sw $s0,0x0($t8) /* f09e1a4: 964415b2 */ lhu $a0,0x15b2($s2) -/* f09e1a8: 0fc59c15 */ jal fileGetInflatedLength +/* f09e1a8: 0fc59c15 */ jal fileGetInflatedSize /* f09e1ac: afa30064 */ sw $v1,0x64($sp) /* f09e1b0: 2443003f */ addiu $v1,$v0,0x3f /* f09e1b4: 3479003f */ ori $t9,$v1,0x3f @@ -12165,14 +12165,14 @@ glabel bgun0f09e144 /* f09e1d8: a02bd9a0 */ sb $t3,%lo(g_LoadType)($at) /* f09e1dc: 964415b2 */ lhu $a0,0x15b2($s2) /* f09e1e0: 24050011 */ addiu $a1,$zero,0x11 -/* f09e1e4: 0fc59c80 */ jal func0f167200 +/* f09e1e4: 0fc59c80 */ jal fileLoadToAddr /* f09e1e8: 8fa60064 */ lw $a2,0x64($sp) /* f09e1ec: 00408825 */ or $s1,$v0,$zero -/* f09e1f0: 0fc59ca0 */ jal fileGetSize +/* f09e1f0: 0fc59ca0 */ jal fileGetLoadedSize /* f09e1f4: 964415b2 */ lhu $a0,0x15b2($s2) /* f09e1f8: 24470e00 */ addiu $a3,$v0,0xe00 /* f09e1fc: 964415b2 */ lhu $a0,0x15b2($s2) -/* f09e200: 0fc59ca0 */ jal fileGetSize +/* f09e200: 0fc59ca0 */ jal fileGetLoadedSize /* f09e204: afa7006c */ sw $a3,0x6c($sp) /* f09e208: 964c15b2 */ lhu $t4,0x15b2($s2) /* f09e20c: 8fa7006c */ lw $a3,0x6c($sp) @@ -12301,13 +12301,13 @@ glabel bgun0f09e144 /* f09e3e4: 02202025 */ or $a0,$s1,$zero /* f09e3e8: 0fc69d58 */ jal func0f1a7560 /* f09e3ec: 02203825 */ or $a3,$s1,$zero -/* f09e3f0: 0fc59c15 */ jal fileGetInflatedLength +/* f09e3f0: 0fc59c15 */ jal fileGetInflatedSize /* f09e3f4: 964415b2 */ lhu $a0,0x15b2($s2) -/* f09e3f8: 0fc59ca0 */ jal fileGetSize +/* f09e3f8: 0fc59ca0 */ jal fileGetLoadedSize /* f09e3fc: 964415b2 */ lhu $a0,0x15b2($s2) -/* f09e400: 0fc59ca0 */ jal fileGetSize +/* f09e400: 0fc59ca0 */ jal fileGetLoadedSize /* f09e404: 964415b2 */ lhu $a0,0x15b2($s2) -/* f09e408: 0fc59ca0 */ jal fileGetSize +/* f09e408: 0fc59ca0 */ jal fileGetLoadedSize /* f09e40c: 964415b2 */ lhu $a0,0x15b2($s2) /* f09e410: 0c008b49 */ jal modelCalculateRwDataLen /* f09e414: 02202025 */ or $a0,$s1,$zero @@ -12399,7 +12399,7 @@ glabel bgun0f09e144 /* f09c0c4: ac710000 */ sw $s1,0x0($v1) /* f09c0c8: 8e9815bc */ lw $t8,0x15bc($s4) /* f09c0cc: af100000 */ sw $s0,0x0($t8) -/* f09c0d0: 0fc58635 */ jal fileGetInflatedLength +/* f09c0d0: 0fc58635 */ jal fileGetInflatedSize /* f09c0d4: 968415b2 */ lhu $a0,0x15b2($s4) /* f09c0d8: 2443003f */ addiu $v1,$v0,0x3f /* f09c0dc: 3479003f */ ori $t9,$v1,0x3f @@ -12415,13 +12415,13 @@ glabel bgun0f09e144 /* f09c100: a029f2c0 */ sb $t1,-0xd40($at) /* f09c104: 968415b2 */ lhu $a0,0x15b2($s4) /* f09c108: 24050011 */ addiu $a1,$zero,0x11 -/* f09c10c: 0fc586cd */ jal func0f167200 +/* f09c10c: 0fc586cd */ jal fileLoadToAddr /* f09c110: 02203025 */ or $a2,$s1,$zero /* f09c114: 00409825 */ or $s3,$v0,$zero -/* f09c118: 0fc586ed */ jal fileGetSize +/* f09c118: 0fc586ed */ jal fileGetLoadedSize /* f09c11c: 968415b2 */ lhu $a0,0x15b2($s4) /* f09c120: 24520e00 */ addiu $s2,$v0,0xe00 -/* f09c124: 0fc586ed */ jal fileGetSize +/* f09c124: 0fc586ed */ jal fileGetLoadedSize /* f09c128: 968415b2 */ lhu $a0,0x15b2($s4) /* f09c12c: 968a15b2 */ lhu $t2,0x15b2($s4) /* f09c130: 3c0c800b */ lui $t4,0x800b @@ -12544,13 +12544,13 @@ glabel bgun0f09e144 /* f09c2f0: 02602025 */ or $a0,$s3,$zero /* f09c2f4: 0c009114 */ jal func0f1a7560 /* f09c2f8: 02603825 */ or $a3,$s3,$zero -/* f09c2fc: 0fc58635 */ jal fileGetInflatedLength +/* f09c2fc: 0fc58635 */ jal fileGetInflatedSize /* f09c300: 968415b2 */ lhu $a0,0x15b2($s4) -/* f09c304: 0fc586ed */ jal fileGetSize +/* f09c304: 0fc586ed */ jal fileGetLoadedSize /* f09c308: 968415b2 */ lhu $a0,0x15b2($s4) -/* f09c30c: 0fc586ed */ jal fileGetSize +/* f09c30c: 0fc586ed */ jal fileGetLoadedSize /* f09c310: 968415b2 */ lhu $a0,0x15b2($s4) -/* f09c314: 0fc586ed */ jal fileGetSize +/* f09c314: 0fc586ed */ jal fileGetLoadedSize /* f09c318: 968415b2 */ lhu $a0,0x15b2($s4) /* f09c31c: 0c008f6f */ jal modelCalculateRwDataLen /* f09c320: 02602025 */ or $a0,$s3,$zero diff --git a/src/game/file.c b/src/game/file.c index 19464e9ec..f9e86ca23 100644 --- a/src/game/file.c +++ b/src/game/file.c @@ -10,6 +10,44 @@ #include "data.h" #include "types.h" +/** + * This file contains functions relating to ROM asset files. + * + * Asset files include: + * - BG segment files + * - Lang files + * - MP3 files + * - Model files + * - Pad files + * - Stage setup files + * - Tile files + * + * The following are not implemented as asset files and are therefore not + * managed here: + * - Animations + * - Music + * - Textures + * + * The file system does not keep track of which files are loaded, nor does it + * maintain a list of pointers to loaded file data. All load operations either + * require the caller to pass a destination pointer, or the file system can make + * its own allocation and return the pointer. It does not store the pointer in + * either case. + * + * Most file types are compressed. This is abstracted away, so from the caller's + * perspect they just call a load function and they receive an inflated file. + * Exceptions to this are: + * - BG files, which contain multiple compressed parts. The caller uses + * fileLoadPartToAddr which loads a slice of the file without inflation. + * - MP3 files, which are not compressed. The caller retrieves the ROM start and + * end addresses from the file system, then gives that to the MP3 system which + * does its own DMA operations. + * + * It is likely that during development files could be alternatively loaded + * from the host computer. This code no longer exists, but there are some unused + * functions that support this theory. + */ + extern void *_file_bg_sev_seg; extern void *_file_bg_silo_seg; extern void *_file_bg_stat_seg; @@ -2044,7 +2082,7 @@ struct fileinfo g_FileInfo[NUM_FILES]; u32 var800aa570; #endif -void *filetable[] = { +void *g_FileTable[] = { /*0x0000*/ NULL, /*0x0001*/ &_file_bg_sev_seg, /*0x0002*/ &_file_bg_silo_seg, @@ -4070,57 +4108,59 @@ void *filetable[] = { u32 fileGetRomAddress(s32 filenum) { - return (u32)filetable[filenum]; + return (u32)g_FileTable[filenum]; } u32 fileGetRomSizeByTableAddress(u32 *filetableaddr) { - u32 difference; + u32 size; if (filetableaddr[1]) { - difference = filetableaddr[1] - filetableaddr[0]; + size = filetableaddr[1] - filetableaddr[0]; } else { - difference = 0; + size = 0; } - return difference; + return size; } -s32 fileGetRomSizeByFileNum(s32 filenum) +s32 fileGetRomSize(s32 filenum) { - return fileGetRomSizeByTableAddress((u32 *)&filetable[filenum]); + return fileGetRomSizeByTableAddress((u32 *)&g_FileTable[filenum]); } -u32 func0f166ea8(u32 *filetableaddr) +u32 file0f166ea8(u32 *filetableaddr) { return 0; } #if VERSION >= VERSION_NTSC_1_0 -void func0f166eb4(void *dst, u32 scratchlen, u32 *romaddrptr, struct fileinfo *info) +void fileLoad(void *dst, u32 allocationlen, u32 *romaddrptr, struct fileinfo *info) { u32 romsize = fileGetRomSizeByTableAddress(romaddrptr); u8 buffer[5 * 1024]; u32 tmp; - if (scratchlen == 0) { + if (allocationlen == 0) { // DMA with no inflate dmaExec(dst, *romaddrptr, romsize); } else { // DMA the compressed data to scratch space then inflate - u32 scratchaddr = ((u32)dst + scratchlen) - (romsize + 7 & 0xfffffff8); + u32 scratchaddr = ((u32)dst + allocationlen) - (romsize + 7 & 0xfffffff8); if (scratchaddr - (u32)dst < 8) { - info->size = 0; + info->loadedsize = 0; } else { dmaExec((void *)scratchaddr, *romaddrptr, romsize); - info->size = ALIGN16(rzipInflate((void *)scratchaddr, dst, buffer)); + info->loadedsize = ALIGN16(rzipInflate((void *)scratchaddr, dst, buffer)); } } } #else +void fileLoad(void *dst, u32 allocationlen, u32 *romaddrptr, struct fileinfo *info); + GLOBAL_ASM( -glabel func0f166eb4 +glabel fileLoad /* f1616b4: 27bdeb20 */ addiu $sp,$sp,-5344 /* f1616b8: afbf003c */ sw $ra,0x3c($sp) /* f1616bc: afb00038 */ sw $s0,0x38($sp) @@ -4211,17 +4251,17 @@ glabel func0f166eb4 #if VERSION >= VERSION_JPN_FINAL GLOBAL_ASM( -glabel func0f166f74 +glabel filesResetAndPrint /* f166f74: 27bdffd0 */ addiu $sp,$sp,-48 /* f166f78: afb20020 */ sw $s2,0x20($sp) /* f166f7c: afb1001c */ sw $s1,0x1c($sp) /* f166f80: afb40028 */ sw $s4,0x28($sp) /* f166f84: afb00018 */ sw $s0,0x18($sp) /* f166f88: 3c11800a */ lui $s1,%hi(g_FileInfo) -/* f166f8c: 3c128008 */ lui $s2,%hi(filetable) +/* f166f8c: 3c128008 */ lui $s2,%hi(g_FileTable) /* f166f90: afbf002c */ sw $ra,0x2c($sp) /* f166f94: afb30024 */ sw $s3,0x24($sp) -/* f166f98: 26522060 */ addiu $s2,$s2,%lo(filetable) +/* f166f98: 26522060 */ addiu $s2,$s2,%lo(g_FileTable) /* f166f9c: 26316680 */ addiu $s1,$s1,%lo(g_FileInfo) /* f166fa0: 24100001 */ addiu $s0,$zero,0x1 /* f166fa4: 241407de */ addiu $s4,$zero,0x7e0 @@ -4247,17 +4287,17 @@ glabel func0f166f74 ); #elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( -glabel func0f166f74 +glabel filesResetAndPrint /* f166f74: 27bdffd0 */ addiu $sp,$sp,-48 /* f166f78: afb20020 */ sw $s2,0x20($sp) /* f166f7c: afb1001c */ sw $s1,0x1c($sp) /* f166f80: afb40028 */ sw $s4,0x28($sp) /* f166f84: afb00018 */ sw $s0,0x18($sp) /* f166f88: 3c11800a */ lui $s1,%hi(g_FileInfo) -/* f166f8c: 3c128008 */ lui $s2,%hi(filetable) +/* f166f8c: 3c128008 */ lui $s2,%hi(g_FileTable) /* f166f90: afbf002c */ sw $ra,0x2c($sp) /* f166f94: afb30024 */ sw $s3,0x24($sp) -/* f166f98: 26522060 */ addiu $s2,$s2,%lo(filetable) +/* f166f98: 26522060 */ addiu $s2,$s2,%lo(g_FileTable) /* f166f9c: 26316680 */ addiu $s1,$s1,%lo(g_FileInfo) /* f166fa0: 24100001 */ addiu $s0,$zero,0x1 /* f166fa4: 241407de */ addiu $s4,$zero,0x7de @@ -4283,17 +4323,17 @@ glabel func0f166f74 ); #else GLOBAL_ASM( -glabel func0f166f74 +glabel filesResetAndPrint /* f166f74: 27bdffd0 */ addiu $sp,$sp,-48 /* f166f78: afb20020 */ sw $s2,0x20($sp) /* f166f7c: afb1001c */ sw $s1,0x1c($sp) /* f166f80: afb40028 */ sw $s4,0x28($sp) /* f166f84: afb00018 */ sw $s0,0x18($sp) /* f166f88: 3c11800a */ lui $s1,%hi(g_FileInfo) -/* f166f8c: 3c128008 */ lui $s2,%hi(filetable) +/* f166f8c: 3c128008 */ lui $s2,%hi(g_FileTable) /* f166f90: afbf002c */ sw $ra,0x2c($sp) /* f166f94: afb30024 */ sw $s3,0x24($sp) -/* f166f98: 26522060 */ addiu $s2,$s2,%lo(filetable) +/* f166f98: 26522060 */ addiu $s2,$s2,%lo(g_FileTable) /* f166f9c: 26316680 */ addiu $s1,$s1,%lo(g_FileInfo) /* f166fa0: 24100001 */ addiu $s0,$zero,0x1 /* f166fa4: 241407de */ addiu $s4,$zero,0x7dd @@ -4319,33 +4359,33 @@ glabel func0f166f74 ); #endif -//void func0f166f74(void) +//void filesResetAndPrint(void) //{ // s32 i; // // for (i = 1; i < NUM_FILES; i++) { -// g_FileInfo[i].size = 0; -// g_FileInfo[i].unk04 = 0; +// g_FileInfo[i].loadedsize = 0; +// g_FileInfo[i].allocsize = 0; // -// fileGetRomSizeByTableAddress(&filetable[i]); +// fileGetRomSizeByTableAddress(&g_FileTable[i]); // } //} -void func0f166ff0(u16 filenum, void *memaddr, s32 offset, u32 len) +void fileLoadPartToAddr(u16 filenum, void *memaddr, s32 offset, u32 len) { u32 stack[2]; - if (fileGetRomSizeByTableAddress((u32 *)&filetable[filenum])) { - dmaExec(memaddr, (u32)filetable[filenum] + offset, len); + if (fileGetRomSizeByTableAddress((u32 *)&g_FileTable[filenum])) { + dmaExec(memaddr, (u32)g_FileTable[filenum] + offset, len); } } #if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( -glabel fileGetInflatedLength +glabel fileGetInflatedSize /* f167054: 27bdff78 */ addiu $sp,$sp,-136 -/* f167058: 3c0f8008 */ lui $t7,%hi(filetable) -/* f16705c: 25ef2060 */ addiu $t7,$t7,%lo(filetable) +/* f167058: 3c0f8008 */ lui $t7,%hi(g_FileTable) +/* f16705c: 25ef2060 */ addiu $t7,$t7,%lo(g_FileTable) /* f167060: 00047080 */ sll $t6,$a0,0x2 /* f167064: afbf001c */ sw $ra,0x1c($sp) /* f167068: afb00018 */ sw $s0,0x18($sp) @@ -4355,7 +4395,7 @@ glabel fileGetInflatedLength /* f167078: 2401fff0 */ addiu $at,$zero,-16 /* f16707c: 14a0000c */ bnez $a1,.L0f1670b0 /* f167080: 24060040 */ addiu $a2,$zero,0x40 -/* f167084: 0fc59baa */ jal func0f166ea8 +/* f167084: 0fc59baa */ jal file0f166ea8 /* f167088: 00000000 */ nop /* f16708c: 27b00044 */ addiu $s0,$sp,0x44 /* f167090: 2401fff0 */ addiu $at,$zero,-16 @@ -4392,7 +4432,7 @@ glabel fileGetInflatedLength ); #else GLOBAL_ASM( -glabel fileGetInflatedLength +glabel fileGetInflatedSize /* f1618d4: 27bdfeb8 */ addiu $sp,$sp,-328 /* f1618d8: 3c0f8008 */ lui $t7,0x8008 /* f1618dc: 25ef48c0 */ addiu $t7,$t7,0x48c0 @@ -4405,7 +4445,7 @@ glabel fileGetInflatedLength /* f1618f8: 2401fff0 */ addiu $at,$zero,-16 /* f1618fc: 14a0000c */ bnez $a1,.NB0f161930 /* f161900: 24060040 */ addiu $a2,$zero,0x40 -/* f161904: 0fc585aa */ jal func0f166ea8 +/* f161904: 0fc585aa */ jal file0f166ea8 /* f161908: 00000000 */ sll $zero,$zero,0x0 /* f16190c: 27b00104 */ addiu $s0,$sp,0x104 /* f161910: 2401fff0 */ addiu $at,$zero,-16 @@ -4487,20 +4527,20 @@ glabel fileGetInflatedLength ); #endif -//u32 fileGetInflatedLength(u32 filenum) +//u32 fileGetInflatedSize(u32 filenum) //{ // u8 buffer[0x50]; // u8 *alignedbuffer; // void *romaddr; // u32 tmp; // -// romaddr = filetable[filenum]; +// romaddr = g_FileTable[filenum]; // alignedbuffer = buffer; // // if (romaddr == NULL) { // alignedbuffer = (u8 *)(((u32)alignedbuffer) & ~0xf); // -// stub0f175f58(func0f166ea8((u32 *) &filetable[filenum]), (u32)alignedbuffer, 16); +// stub0f175f58(file0f166ea8((u32 *) &g_FileTable[filenum]), (u32)alignedbuffer, 16); // } else { // alignedbuffer = (u8 *)(((u32)alignedbuffer) & ~0xf); // dmaExec((void *)alignedbuffer, romaddr, 0x40); @@ -4514,7 +4554,7 @@ glabel fileGetInflatedLength //} GLOBAL_ASM( -glabel func0f1670fc +glabel fileLoadToNew /* f1670fc: 27bdffd0 */ addiu $sp,$sp,-48 /* f167100: 24010011 */ addiu $at,$zero,0x11 /* f167104: afbf001c */ sw $ra,0x1c($sp) @@ -4534,7 +4574,7 @@ glabel func0f1670fc /* f167138: 8e080000 */ lw $t0,0x0($s0) /* f16713c: 5500000e */ bnezl $t0,.L0f167178 /* f167140: 8e040000 */ lw $a0,0x0($s0) -/* f167144: 0fc59c15 */ jal fileGetInflatedLength +/* f167144: 0fc59c15 */ jal fileGetInflatedSize /* f167148: 01e02025 */ or $a0,$t7,$zero /* f16714c: 24490020 */ addiu $t1,$v0,0x20 /* f167150: 2401fff0 */ addiu $at,$zero,-16 @@ -4553,14 +4593,14 @@ glabel func0f1670fc /* f16717c: 24050004 */ addiu $a1,$zero,0x4 /* f167180: afa20024 */ sw $v0,0x24($sp) /* f167184: 8e050000 */ lw $a1,0x0($s0) -/* f167188: 3c198008 */ lui $t9,%hi(filetable) -/* f16718c: 27392060 */ addiu $t9,$t9,%lo(filetable) +/* f167188: 3c198008 */ lui $t9,%hi(g_FileTable) +/* f16718c: 27392060 */ addiu $t9,$t9,%lo(g_FileTable) /* f167190: ae050004 */ sw $a1,0x4($s0) /* f167194: 8fae0030 */ lw $t6,0x30($sp) /* f167198: 00402025 */ or $a0,$v0,$zero /* f16719c: 02003825 */ or $a3,$s0,$zero /* f1671a0: 000ec080 */ sll $t8,$t6,0x2 -/* f1671a4: 0fc59bad */ jal func0f166eb4 +/* f1671a4: 0fc59bad */ jal fileLoad /* f1671a8: 03193021 */ addu $a2,$t8,$t9 /* f1671ac: 8fa80034 */ lw $t0,0x34($sp) /* f1671b0: 24010011 */ addiu $at,$zero,0x11 @@ -4582,39 +4622,39 @@ glabel func0f1670fc /* f1671e4: 03e00008 */ jr $ra /* f1671e8: 27bd0030 */ addiu $sp,$sp,0x30 /* f1671ec: 00047080 */ sll $t6,$a0,0x2 -/* f1671f0: 3c018008 */ lui $at,%hi(filetable) +/* f1671f0: 3c018008 */ lui $at,%hi(g_FileTable) /* f1671f4: 002e0821 */ addu $at,$at,$t6 /* f1671f8: 03e00008 */ jr $ra -/* f1671fc: ac202060 */ sw $zero,%lo(filetable)($at) +/* f1671fc: ac202060 */ sw $zero,%lo(g_FileTable)($at) ); -//void *func0f1670fc(u32 filenum, u32 arg1) +//void *fileLoadToNew(u32 filenum, u32 method) //{ // struct fileinfo *info; // u32 stack; // void *ptr; // -// if (arg1 == 0x11 || arg1 == 0x22) { +// if (method == FILELOADMETHOD_EXTRAMEM || method == FILELOADMETHOD_DEFAULT) { // // 124 // info = &g_FileInfo[filenum]; // // // 13c -// if (info->unk00 == 0) { -// info->unk00 = (fileGetInflatedLength(filenum) + 0x20) & 0xfffffff0; +// if (info->loadedsize == 0) { +// info->loadedsize = (fileGetInflatedSize(filenum) + 0x20) & 0xfffffff0; // // // 164 -// if (arg1 == 0x11) { -// info->unk00 += 0x8000; +// if (method == FILELOADMETHOD_EXTRAMEM) { +// info->loadedsize += 0x8000; // } // } // // // 174 -// ptr = mempAlloc(info->unk00, MEMPOOL_STAGE); -// info->unk04 = info->unk00; -// func0f166eb4(ptr, info->unk00, &filetable[filenum], info); +// ptr = mempAlloc(info->loadedsize, MEMPOOL_STAGE); +// info->allocsize = info->loadedsize; +// fileLoad(ptr, info->loadedsize, &g_FileTable[filenum], info); // -// if (arg1 != 0x11) { -// mempRealloc(ptr, info->unk00, MEMPOOL_STAGE); +// if (method != FILELOADMETHOD_EXTRAMEM) { +// mempRealloc(ptr, info->loadedsize, MEMPOOL_STAGE); // } // } else { // while (true) { @@ -4626,7 +4666,7 @@ glabel func0f1670fc //} GLOBAL_ASM( -glabel func0f167200 +glabel fileLoadToAddr /* f167200: 27bdffe8 */ addiu $sp,$sp,-24 /* f167204: 24010011 */ addiu $at,$zero,0x11 /* f167208: afbf0014 */ sw $ra,0x14($sp) @@ -4646,12 +4686,12 @@ glabel func0f167200 /* f16723c: 01f83821 */ addu $a3,$t7,$t8 /* f167240: acf90004 */ sw $t9,0x4($a3) /* f167244: 8fa80018 */ lw $t0,0x18($sp) -/* f167248: 3c0a8008 */ lui $t2,%hi(filetable) -/* f16724c: 254a2060 */ addiu $t2,$t2,%lo(filetable) +/* f167248: 3c0a8008 */ lui $t2,%hi(g_FileTable) +/* f16724c: 254a2060 */ addiu $t2,$t2,%lo(g_FileTable) /* f167250: 00084880 */ sll $t1,$t0,0x2 /* f167254: 012a3021 */ addu $a2,$t1,$t2 /* f167258: 8fa50024 */ lw $a1,0x24($sp) -/* f16725c: 0fc59bad */ jal func0f166eb4 +/* f16725c: 0fc59bad */ jal fileLoad /* f167260: 8fa40020 */ lw $a0,0x20($sp) /* f167264: 10000003 */ b .L0f167274 /* f167268: 8fbf0014 */ lw $ra,0x14($sp) @@ -4665,12 +4705,12 @@ glabel func0f167200 ); // Mismatch: Reordered instructions, most likely related to debug ifdefs. -//void *func0f167200(s32 filenum, s32 arg1, u8 *ptr, u32 size) +//void *fileLoadToAddr(s32 filenum, s32 method, u8 *ptr, u32 size) //{ -// if (arg1 == 0x11 || arg1 == 0x22) { -// g_FileInfo[filenum].unk04 = size; +// if (method == FILELOADMETHOD_EXTRAMEM || method == FILELOADMETHOD_DEFAULT) { +// g_FileInfo[filenum].allocsize = size; // -// func0f166eb4(ptr, size, &filetable[filenum], &g_FileInfo[filenum]); +// fileLoad(ptr, size, &g_FileTable[filenum], &g_FileInfo[filenum]); // } else { // while (1); // } @@ -4678,39 +4718,39 @@ glabel func0f167200 // return ptr; //} -u32 fileGetSize(s32 filenum) +u32 fileGetLoadedSize(s32 filenum) { - return g_FileInfo[filenum].size; + return g_FileInfo[filenum].loadedsize; } -u32 fileGetUnk04(s32 filenum) +u32 fileGetAllocationSize(s32 filenum) { - return g_FileInfo[filenum].unk04; + return g_FileInfo[filenum].allocsize; } -void func0f1672a8(s32 filenum, void *ptr, u32 size, bool resizing) +void fileSetSize(s32 filenum, void *ptr, u32 size, bool reallocate) { - g_FileInfo[filenum].size = size; - g_FileInfo[filenum].unk04 = size; + g_FileInfo[filenum].loadedsize = size; + g_FileInfo[filenum].allocsize = size; - if (resizing) { - mempRealloc(ptr, g_FileInfo[filenum].size, MEMPOOL_STAGE); + if (reallocate) { + mempRealloc(ptr, g_FileInfo[filenum].loadedsize, MEMPOOL_STAGE); } } -void func0f1672f0(u8 arg0) +void filesReset(u8 arg0) { s32 i; // Minus 1 because the last entry in the file table is just a marker - for (i = 1; i < ARRAYCOUNT(filetable) - 1; i++) { + for (i = 1; i < ARRAYCOUNT(g_FileTable) - 1; i++) { if (arg0 == 4) { - g_FileInfo[i].size = 0; + g_FileInfo[i].loadedsize = 0; } } } void func0f167330(void) { - func0f1672f0(5); + filesReset(5); } diff --git a/src/game/game_00b320.c b/src/game/game_00b320.c index 7b012a3fc..816592c78 100644 --- a/src/game/game_00b320.c +++ b/src/game/game_00b320.c @@ -59,7 +59,7 @@ glabel stageLoadCommonLang /* f00b454: 8fa30018 */ lw $v1,0x18($sp) /* f00b458: ac224774 */ sw $v0,0x4774($at) /* f00b45c: 3c018008 */ lui $at,0x8008 -/* f00b460: 0fc5bab6 */ jal lang0f16f6ecpf +/* f00b460: 0fc5bab6 */ jal langReload /* f00b464: ac23477c */ sw $v1,0x477c($at) /* f00b468: 8fbf0014 */ lw $ra,0x14($sp) /* f00b46c: 27bd0020 */ addiu $sp,$sp,0x20 @@ -118,7 +118,7 @@ glabel stageLoadCommonLang /* f00b3d4: 8fa30018 */ lw $v1,0x18($sp) /* f00b3d8: ac224664 */ sw $v0,0x4664($at) /* f00b3dc: 3c018008 */ lui $at,0x8008 -/* f00b3e0: 0fc5bdbb */ jal lang0f16f6ecpf +/* f00b3e0: 0fc5bdbb */ jal langReload /* f00b3e4: ac23466c */ sw $v1,0x466c($at) /* f00b3e8: 8fbf0014 */ lw $ra,0x14($sp) /* f00b3ec: 27bd0020 */ addiu $sp,$sp,0x20 @@ -177,7 +177,7 @@ glabel stageLoadCommonLang /* f00b3d4: 8fa30018 */ lw $v1,0x18($sp) /* f00b3d8: ac2265f4 */ sw $v0,0x65f4($at) /* f00b3dc: 3c018008 */ lui $at,0x8008 -/* f00b3e0: 0fc5c07b */ jal lang0f16f6ecpf +/* f00b3e0: 0fc5c07b */ jal langReload /* f00b3e4: ac2365fc */ sw $v1,0x65fc($at) /* f00b3e8: 8fbf0014 */ lw $ra,0x14($sp) /* f00b3ec: 27bd0020 */ addiu $sp,$sp,0x20 @@ -193,15 +193,15 @@ void stageLoadCommonLang(s32 stagenum) g_LangBanks[i] = NULL; } - g_LangBanks[LANGBANK_GUN] = func0f1670fc(langGetFileId(LANGBANK_GUN), 0x22); - g_LangBanks[LANGBANK_MPMENU] = func0f1670fc(langGetFileId(LANGBANK_MPMENU), 0x22); - g_LangBanks[LANGBANK_PROPOBJ] = func0f1670fc(langGetFileId(LANGBANK_PROPOBJ), 0x22); - g_LangBanks[LANGBANK_MPWEAPONS] = func0f1670fc(langGetFileId(LANGBANK_MPWEAPONS), 0x22); - g_LangBanks[LANGBANK_OPTIONS] = func0f1670fc(langGetFileId(LANGBANK_OPTIONS), 0x22); - g_LangBanks[LANGBANK_MISC] = func0f1670fc(langGetFileId(LANGBANK_MISC), 0x22); + g_LangBanks[LANGBANK_GUN] = fileLoadToNew(langGetFileId(LANGBANK_GUN), FILELOADMETHOD_DEFAULT); + g_LangBanks[LANGBANK_MPMENU] = fileLoadToNew(langGetFileId(LANGBANK_MPMENU), FILELOADMETHOD_DEFAULT); + g_LangBanks[LANGBANK_PROPOBJ] = fileLoadToNew(langGetFileId(LANGBANK_PROPOBJ), FILELOADMETHOD_DEFAULT); + g_LangBanks[LANGBANK_MPWEAPONS] = fileLoadToNew(langGetFileId(LANGBANK_MPWEAPONS), FILELOADMETHOD_DEFAULT); + g_LangBanks[LANGBANK_OPTIONS] = fileLoadToNew(langGetFileId(LANGBANK_OPTIONS), FILELOADMETHOD_DEFAULT); + g_LangBanks[LANGBANK_MISC] = fileLoadToNew(langGetFileId(LANGBANK_MISC), FILELOADMETHOD_DEFAULT); if (stagenum == STAGE_CREDITS) { - g_LangBanks[LANGBANK_TITLE] = func0f1670fc(langGetFileId(LANGBANK_TITLE), 0x22); + g_LangBanks[LANGBANK_TITLE] = fileLoadToNew(langGetFileId(LANGBANK_TITLE), FILELOADMETHOD_DEFAULT); } } #endif diff --git a/src/game/game_00c490.c b/src/game/game_00c490.c index c980e594d..7b2ba801c 100644 --- a/src/game/game_00c490.c +++ b/src/game/game_00c490.c @@ -3214,9 +3214,9 @@ glabel setupLoadBriefing /* f00e9f4: 24050022 */ addiu $a1,$zero,0x22 /* f00e9f8: 02403025 */ or $a2,$s2,$zero /* f00e9fc: 02a03825 */ or $a3,$s5,$zero -/* f00ea00: 0fc59c80 */ jal func0f167200 +/* f00ea00: 0fc59c80 */ jal fileLoadToAddr /* f00ea04: 00808025 */ or $s0,$a0,$zero -/* f00ea08: 0fc59ca0 */ jal fileGetSize +/* f00ea08: 0fc59ca0 */ jal fileGetLoadedSize /* f00ea0c: 02002025 */ or $a0,$s0,$zero /* f00ea10: 02428021 */ addu $s0,$s2,$v0 /* f00ea14: 02a2a023 */ subu $s4,$s5,$v0 @@ -3225,7 +3225,7 @@ glabel setupLoadBriefing /* f00ea20: a622001a */ sh $v0,0x1a($s1) /* f00ea24: 3044ffff */ andi $a0,$v0,0xffff /* f00ea28: 02002825 */ or $a1,$s0,$zero -/* f00ea2c: 0fc5b9d9 */ jal langSetBank +/* f00ea2c: 0fc5b9d9 */ jal langLoadToAddr /* f00ea30: 02803025 */ or $a2,$s4,$zero /* f00ea34: 8e580010 */ lw $t8,0x10($s2) /* f00ea38: 02589821 */ addu $s3,$s2,$t8 @@ -3349,9 +3349,9 @@ glabel setupLoadBriefing /* f00e9f4: 24050022 */ addiu $a1,$zero,0x22 /* f00e9f8: 02403025 */ or $a2,$s2,$zero /* f00e9fc: 02a03825 */ or $a3,$s5,$zero -/* f00ea00: 0fc59c80 */ jal func0f167200 +/* f00ea00: 0fc59c80 */ jal fileLoadToAddr /* f00ea04: 00808025 */ or $s0,$a0,$zero -/* f00ea08: 0fc59ca0 */ jal fileGetSize +/* f00ea08: 0fc59ca0 */ jal fileGetLoadedSize /* f00ea0c: 02002025 */ or $a0,$s0,$zero /* f00ea10: 02428021 */ addu $s0,$s2,$v0 /* f00ea14: 02a2a023 */ subu $s4,$s5,$v0 @@ -3360,7 +3360,7 @@ glabel setupLoadBriefing /* f00ea20: a622001a */ sh $v0,0x1a($s1) /* f00ea24: 3044ffff */ andi $a0,$v0,0xffff /* f00ea28: 02002825 */ or $a1,$s0,$zero -/* f00ea2c: 0fc5b9d9 */ jal langSetBank +/* f00ea2c: 0fc5b9d9 */ jal langLoadToAddr /* f00ea30: 02803025 */ or $a2,$s4,$zero /* f00ea34: 8e580010 */ lw $t8,0x10($s2) /* f00ea38: 02589821 */ addu $s3,$s2,$t8 @@ -3474,16 +3474,16 @@ glabel setupLoadBriefing // // if (g_Stages[stageindex].setupfileid); // -// func0f167200(setupfilenum, 0x22, buffer, bufferlen); +// fileLoadToAddr(setupfilenum, FILELOADMETHOD_DEFAULT, buffer, bufferlen); // // setup = (struct stagesetup *)buffer; -// setupfilesize = fileGetSize(setupfilenum); +// setupfilesize = fileGetLoadedSize(setupfilenum); // langbuffer = &buffer[setupfilesize]; // langbufferlen = bufferlen - setupfilesize; // // briefing->langbank = langGetLangBankIndexFromStagenum(stagenum); // -// langSetBank(briefing->langbank, langbuffer, langbufferlen); +// langLoadToAddr(briefing->langbank, langbuffer, langbufferlen); // // obj = (struct defaultobj *)((u32)setup + (u32)setup->props); // @@ -3563,9 +3563,9 @@ void setupLoadFiles(s32 stagenum) g_LoadType = LOADTYPE_SETUP; - g_GeCreditsData = (u8 *)func0f1670fc(filenum, 0x22); + g_GeCreditsData = (u8 *)fileLoadToNew(filenum, FILELOADMETHOD_DEFAULT); setup = (struct stagesetup *)g_GeCreditsData; - langSetBankSimple(langGetLangBankIndexFromStagenum(stagenum)); + langLoad(langGetLangBankIndexFromStagenum(stagenum)); g_StageSetup.intro = (s32 *)((u32)setup + (u32)setup->intro); g_StageSetup.props = (u32 *)((u32)setup + (u32)setup->props); @@ -3574,7 +3574,7 @@ void setupLoadFiles(s32 stagenum) g_LoadType = LOADTYPE_PADS; - g_StageSetup.padfiledata = func0f1670fc(g_Stages[g_StageIndex].padsfileid, 0x22); + g_StageSetup.padfiledata = fileLoadToNew(g_Stages[g_StageIndex].padsfileid, FILELOADMETHOD_DEFAULT); g_StageSetup.waypoints = NULL; g_StageSetup.waygroups = NULL; diff --git a/src/game/game_013cf0.c b/src/game/game_013cf0.c index ad57d7c4e..f785aeac9 100644 --- a/src/game/game_013cf0.c +++ b/src/game/game_013cf0.c @@ -16,7 +16,7 @@ void stageLoadTiles(void) } g_LoadType = LOADTYPE_TILES; - g_TileFileData.u8 = func0f1670fc(g_Stages[index].tilefileid, 0x22); + g_TileFileData.u8 = fileLoadToNew(g_Stages[index].tilefileid, FILELOADMETHOD_DEFAULT); g_TileNumRooms = *g_TileFileData.u32; g_TileRooms = g_TileFileData.u32 + 1; diff --git a/src/game/game_02cde0.c b/src/game/game_02cde0.c index 6933d64d2..d4796c368 100644 --- a/src/game/game_02cde0.c +++ b/src/game/game_02cde0.c @@ -158,7 +158,7 @@ u32 bodyGetRace(s32 bodynum) bool bodyLoad(s32 bodynum) { if (!g_HeadsAndBodies[bodynum].filedata) { - g_HeadsAndBodies[bodynum].filedata = fileLoad(g_HeadsAndBodies[bodynum].filenum); + g_HeadsAndBodies[bodynum].filedata = modeldefLoadToNew(g_HeadsAndBodies[bodynum].filenum); return true; } @@ -218,7 +218,7 @@ glabel var7f1a8a84 /* f02cf10: 8d03000c */ lw $v1,0xc($t0) /* f02cf14: 54600007 */ bnezl $v1,.L0f02cf34 /* f02cf18: afa30050 */ sw $v1,0x50($sp) -/* f02cf1c: 0fc69e11 */ jal fileLoad +/* f02cf1c: 0fc69e11 */ jal modeldefLoadToNew /* f02cf20: 95040002 */ lhu $a0,0x2($t0) /* f02cf24: 8fa4001c */ lw $a0,0x1c($sp) /* f02cf28: 00401825 */ or $v1,$v0,$zero @@ -273,7 +273,7 @@ glabel var7f1a8a84 /* f02cfe4: 000d6880 */ sll $t5,$t5,0x2 /* f02cfe8: 3c048008 */ lui $a0,%hi(g_HeadsAndBodies+0x2) /* f02cfec: 008d2021 */ addu $a0,$a0,$t5 -/* f02cff0: 0fc69e11 */ jal fileLoad +/* f02cff0: 0fc69e11 */ jal modeldefLoadToNew /* f02cff4: 9484cf06 */ lhu $a0,%lo(g_HeadsAndBodies+0x2)($a0) /* f02cff8: 8fa5004c */ lw $a1,0x4c($sp) /* f02cffc: 3c0e8008 */ lui $t6,%hi(g_HeadsAndBodies) @@ -302,7 +302,7 @@ glabel var7f1a8a84 /* f02d054: 8c64000c */ lw $a0,0xc($v1) /* f02d058: 5480000d */ bnezl $a0,.L0f02d090 /* f02d05c: afa40054 */ sw $a0,0x54($sp) -/* f02d060: 0fc69e11 */ jal fileLoad +/* f02d060: 0fc69e11 */ jal modeldefLoadToNew /* f02d064: 94640002 */ lhu $a0,0x2($v1) /* f02d068: 8fa7004c */ lw $a3,0x4c($sp) /* f02d06c: 3c0a8008 */ lui $t2,%hi(g_HeadsAndBodies) @@ -518,7 +518,7 @@ glabel var7f1a8a84 // // if (bodyfiledata == NULL) { // if (g_HeadsAndBodies[bodynum].filedata == NULL) { -// g_HeadsAndBodies[bodynum].filedata = fileLoad(g_HeadsAndBodies[bodynum].filenum); +// g_HeadsAndBodies[bodynum].filedata = modeldefLoadToNew(g_HeadsAndBodies[bodynum].filenum); // } // // bodyfiledata = g_HeadsAndBodies[bodynum].filedata; @@ -537,13 +537,13 @@ glabel var7f1a8a84 // } else if (headnum > 0) { // if (headfiledata == NULL) { // if (g_Vars.normmplayerisrunning && !IS4MB()) { -// headfiledata = fileLoad(g_HeadsAndBodies[headnum].filenum); +// headfiledata = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); // g_HeadsAndBodies[headnum].filedata = headfiledata; // g_FileInfo[g_HeadsAndBodies[headnum].filenum].size = 0; // bodyCalculateHeadOffset(headfiledata, headnum, bodynum); // } else { // if (g_HeadsAndBodies[headnum].filedata == NULL) { -// g_HeadsAndBodies[headnum].filedata = fileLoad(g_HeadsAndBodies[headnum].filenum); +// g_HeadsAndBodies[headnum].filedata = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); // } // // headfiledata = g_HeadsAndBodies[headnum].filedata; diff --git a/src/game/game_091e10.c b/src/game/game_091e10.c index 1675235c4..a3560cb80 100644 --- a/src/game/game_091e10.c +++ b/src/game/game_091e10.c @@ -152,7 +152,7 @@ u32 setupGetCommandIndexByProp(struct prop *prop) bool modelLoad(s32 propnum) { if (g_ModelStates[propnum].filedata == NULL) { - g_ModelStates[propnum].filedata = fileLoad(g_ModelStates[propnum].fileid); + g_ModelStates[propnum].filedata = modeldefLoadToNew(g_ModelStates[propnum].fileid); modelCalculateRwDataLen(g_ModelStates[propnum].filedata); return true; } diff --git a/src/game/game_092610.c b/src/game/game_092610.c index 39c7f288d..9bde14ab0 100644 --- a/src/game/game_092610.c +++ b/src/game/game_092610.c @@ -6244,7 +6244,7 @@ s32 propsndGetDuration60(s32 channelnum) && (channel->flags & AUDIOCHANNELFLAG_IDLE) == 0 && (channel->flags & AUDIOCHANNELFLAG_0010)) { s32 soundnum = channel->soundnum26; - return fileGetRomSizeByFileNum(soundnum & 0x7ff) * 60 / (1024 * 24 / 8); + return fileGetRomSize(soundnum & 0x7ff) * 60 / (1024 * 24 / 8); } return -1; diff --git a/src/game/game_175f90.c b/src/game/game_175f90.c index 0614cabf6..783179d8d 100644 --- a/src/game/game_175f90.c +++ b/src/game/game_175f90.c @@ -16,13 +16,13 @@ void func0f175f98(void) { func0f167330(); mempResetPool(MEMPOOL_5); - func0f1672f0(5); + filesReset(5); } void func0f175fc8(void) { mempDisablePool(MEMPOOL_5); - func0f1672f0(5); + filesReset(5); } char *func0f175ff0(void) diff --git a/src/game/game_1a7560.c b/src/game/game_1a7560.c index a92f4976f..ecedddfd0 100644 --- a/src/game/game_1a7560.c +++ b/src/game/game_1a7560.c @@ -123,10 +123,10 @@ glabel func0f1a7560 /* f1a7594: afb40030 */ sw $s4,0x30($sp) /* f1a7598: afb00020 */ sw $s0,0x20($sp) /* f1a759c: afa50094 */ sw $a1,0x94($sp) -/* f1a75a0: 0fc59ca5 */ jal fileGetUnk04 +/* f1a75a0: 0fc59ca5 */ jal fileGetAllocationSize /* f1a75a4: afa40058 */ sw $a0,0x58($sp) /* f1a75a8: 00408025 */ or $s0,$v0,$zero -/* f1a75ac: 0fc59ca0 */ jal fileGetSize +/* f1a75ac: 0fc59ca0 */ jal fileGetLoadedSize /* f1a75b0: 8fa40058 */ lw $a0,0x58($sp) /* f1a75b4: afa20088 */ sw $v0,0x88($sp) /* f1a75b8: afa00074 */ sw $zero,0x74($sp) @@ -215,7 +215,7 @@ glabel func0f1a7560 /* f1a76ec: 01603025 */ or $a2,$t3,$zero /* f1a76f0: 8fa40058 */ lw $a0,0x58($sp) /* f1a76f4: 02602825 */ or $a1,$s3,$zero -/* f1a76f8: 0fc59caa */ jal func0f1672a8 +/* f1a76f8: 0fc59caa */ jal fileSetSize /* f1a76fc: 8fa700a4 */ lw $a3,0xa4($sp) .L0f1a7700: /* f1a7700: 8fbf0044 */ lw $ra,0x44($sp) @@ -246,31 +246,31 @@ void modelPromoteTypeToPointer(struct modelfiledata *filedata) } } -struct modelfiledata *func0f1a7794(u16 fileid, u8 *arg1, s32 arg2, s32 *arg3) +struct modelfiledata *modeldefLoad(u16 fileid, u8 *dst, s32 size, s32 *arg3) { struct modelfiledata *filedata; g_LoadType = LOADTYPE_MODEL; - if (arg1) { - filedata = func0f167200(fileid, 0x11, arg1, arg2); + if (dst) { + filedata = fileLoadToAddr(fileid, FILELOADMETHOD_EXTRAMEM, dst, size); } else { - filedata = func0f1670fc(fileid, 0x11); + filedata = fileLoadToNew(fileid, FILELOADMETHOD_EXTRAMEM); } modelPromoteTypeToPointer(filedata); modelPromoteOffsetsToPointers(filedata, 0x5000000, (u32) filedata); - func0f1a7560(filedata, fileid, 0x5000000, filedata, arg3, arg1 == NULL); + func0f1a7560(filedata, fileid, 0x5000000, filedata, arg3, dst == NULL); return filedata; } -void *fileLoad(u16 fileid) +void *modeldefLoadToNew(u16 fileid) { - return func0f1a7794(fileid, 0, 0, 0); + return modeldefLoad(fileid, NULL, 0, NULL); } -void *func0f1a7878(u16 fileid, u8 *arg1, s32 arg2) +void *modeldefLoadToAddr(u16 fileid, u8 *dst, s32 size) { - return func0f1a7794(fileid, arg1, arg2, 0); + return modeldefLoad(fileid, dst, size, NULL); } diff --git a/src/game/lang.c b/src/game/lang.c index 7b4be791a..08a3ebf9e 100644 --- a/src/game/lang.c +++ b/src/game/lang.c @@ -647,29 +647,29 @@ s32 langGetFileId(s32 bank) return g_LangFiles[bank] + langGetFileNumOffset(); } -void langSetBankSimple(s32 bank) +void langLoad(s32 bank) { #if VERSION >= VERSION_PAL_BETA - s32 len = fileGetInflatedLength(langGetFileId(bank)); + s32 len = fileGetInflatedSize(langGetFileId(bank)); if (var80084664pf + len + var8008466cpf - var80084668pf >= 0) { s32 len2 = var80084664pf + var8008466cpf - var80084668pf; len2 = len2 / 32 * 32; - g_LangBanks[bank] = func0f167200(langGetFileId(bank), 0x22, (u8 *)var80084668pf, len2); + g_LangBanks[bank] = fileLoadToAddr(langGetFileId(bank), FILELOADMETHOD_DEFAULT, (u8 *)var80084668pf, len2); var80084668pf = align32(var80084668pf + len); } else { CRASH(); } #else s32 file_id = langGetFileId(bank); - g_LangBanks[bank] = func0f1670fc(file_id, 0x22); + g_LangBanks[bank] = fileLoadToNew(file_id, FILELOADMETHOD_DEFAULT); #endif } -void langSetBank(s32 bank, u8 *arg1, s32 arg2) +void langLoadToAddr(s32 bank, u8 *dst, s32 size) { s32 file_id = langGetFileId(bank); - g_LangBanks[bank] = func0f167200(file_id, 0x22, arg1, arg2); + g_LangBanks[bank] = fileLoadToAddr(file_id, FILELOADMETHOD_DEFAULT, dst, size); } void langClearBank(s32 bank) @@ -704,15 +704,15 @@ char *langGet(s32 textid) } #if VERSION >= VERSION_PAL_BETA -void lang0f16f6ecpf(void) +void langReload(void) { s32 i; var80084668pf = align32(var80084664pf); - for (i = 0; i < 69; i++) { + for (i = 0; i < ARRAYCOUNT(g_LangBanks); i++) { if (g_LangBanks[i] != NULL) { - langSetBankSimple(i); + langLoad(i); } } } @@ -753,7 +753,7 @@ void langSetEuropean(u32 arg0) break; } - lang0f16f6ecpf(); + langReload(); if (hasoptionslang) { mpSetTeamNamesToDefault(teams); @@ -766,6 +766,6 @@ void langSetJpnEnabled(bool enable) { g_Jpn = enable ? true : false; - lang0f16f6ecpf(); + langReload(); } #endif diff --git a/src/game/menu.c b/src/game/menu.c index e19b3d9a9..2cf3762cd 100644 --- a/src/game/menu.c +++ b/src/game/menu.c @@ -4123,7 +4123,7 @@ glabel var7f1b3658jf /* f0f4718: 96220002 */ lhu $v0,0x2($s1) /* f0f471c: 00402025 */ move $a0,$v0 /* f0f4720: a7a2040a */ sh $v0,0x40a($sp) -/* f0f4724: 0fc59d19 */ jal fileGetInflatedLength +/* f0f4724: 0fc59d19 */ jal fileGetInflatedSize /* f0f4728: afa2003c */ sw $v0,0x3c($sp) /* f0f472c: 8e2a0000 */ lw $t2,0x0($s1) /* f0f4730: 2443003f */ addiu $v1,$v0,0x3f @@ -4144,7 +4144,7 @@ glabel var7f1b3658jf /* f0f4768: 000f7880 */ sll $t7,$t7,0x2 /* f0f476c: 022f8821 */ addu $s1,$s1,$t7 /* f0f4770: 9631d506 */ lhu $s1,-0x2afa($s1) -/* f0f4774: 0fc59d19 */ jal fileGetInflatedLength +/* f0f4774: 0fc59d19 */ jal fileGetInflatedSize /* f0f4778: 02202025 */ move $a0,$s1 /* f0f477c: 8fb80420 */ lw $t8,0x420($sp) /* f0f4780: 2459003f */ addiu $t9,$v0,0x3f @@ -4168,10 +4168,10 @@ glabel var7f1b3658jf /* f0f47c4: 8faf0404 */ lw $t7,0x404($sp) /* f0f47c8: a60f056a */ sh $t7,0x56a($s0) /* f0f47cc: 8fa60420 */ lw $a2,0x420($sp) -/* f0f47d0: 0fc6a0c5 */ jal func0f1a7794 +/* f0f47d0: 0fc6a0c5 */ jal modeldefLoad /* f0f47d4: 97a4040a */ lhu $a0,0x40a($sp) /* f0f47d8: ae020054 */ sw $v0,0x54($s0) -/* f0f47dc: 0fc59da4 */ jal fileGetSize +/* f0f47dc: 0fc59da4 */ jal fileGetLoadedSize /* f0f47e0: 8fa4003c */ lw $a0,0x3c($sp) /* f0f47e4: 2443003f */ addiu $v1,$v0,0x3f /* f0f47e8: 3479003f */ ori $t9,$v1,0x3f @@ -4191,10 +4191,10 @@ glabel var7f1b3658jf /* f0f481c: afb10040 */ sw $s1,0x40($sp) /* f0f4820: 01633023 */ subu $a2,$t3,$v1 /* f0f4824: 27a70410 */ addiu $a3,$sp,0x410 -/* f0f4828: 0fc6a0c5 */ jal func0f1a7794 +/* f0f4828: 0fc6a0c5 */ jal modeldefLoad /* f0f482c: 01432821 */ addu $a1,$t2,$v1 /* f0f4830: ae020058 */ sw $v0,0x58($s0) -/* f0f4834: 0fc59da4 */ jal fileGetSize +/* f0f4834: 0fc59da4 */ jal fileGetLoadedSize /* f0f4838: 8fa40040 */ lw $a0,0x40($sp) /* f0f483c: 8e040058 */ lw $a0,0x58($s0) /* f0f4840: 8fa50400 */ lw $a1,0x400($sp) @@ -4229,7 +4229,7 @@ glabel var7f1b3658jf /* f0f48b0: 10000027 */ b .JF0f0f4950 /* f0f48b4: 8e0b000c */ lw $t3,0xc($s0) .JF0f0f48b8: -/* f0f48b8: 0fc59d19 */ jal fileGetInflatedLength +/* f0f48b8: 0fc59d19 */ jal fileGetInflatedSize /* f0f48bc: 00402025 */ move $a0,$v0 /* f0f48c0: 2443003f */ addiu $v1,$v0,0x3f /* f0f48c4: 346f003f */ ori $t7,$v1,0x3f @@ -4248,10 +4248,10 @@ glabel var7f1b3658jf /* f0f48f8: 8fa60420 */ lw $a2,0x420($sp) /* f0f48fc: 9604000e */ lhu $a0,0xe($s0) /* f0f4900: 8e050004 */ lw $a1,0x4($s0) -/* f0f4904: 0fc6a0c5 */ jal func0f1a7794 +/* f0f4904: 0fc6a0c5 */ jal modeldefLoad /* f0f4908: 27a70410 */ addiu $a3,$sp,0x410 /* f0f490c: ae020054 */ sw $v0,0x54($s0) -/* f0f4910: 0fc59da4 */ jal fileGetSize +/* f0f4910: 0fc59da4 */ jal fileGetLoadedSize /* f0f4914: 8e04000c */ lw $a0,0xc($s0) /* f0f4918: 0c008a0e */ jal modelCalculateRwDataLen /* f0f491c: 8e040054 */ lw $a0,0x54($s0) @@ -5739,7 +5739,7 @@ glabel var7f1b3c40pf /* f0f41d8: 96220002 */ lhu $v0,0x2($s1) /* f0f41dc: 00402025 */ move $a0,$v0 /* f0f41e0: a7a2040a */ sh $v0,0x40a($sp) -/* f0f41e4: 0fc59ff5 */ jal fileGetInflatedLength +/* f0f41e4: 0fc59ff5 */ jal fileGetInflatedSize /* f0f41e8: afa2003c */ sw $v0,0x3c($sp) /* f0f41ec: 8e2a0000 */ lw $t2,0x0($s1) /* f0f41f0: 2443003f */ addiu $v1,$v0,0x3f @@ -5760,7 +5760,7 @@ glabel var7f1b3c40pf /* f0f4228: 000f7880 */ sll $t7,$t7,0x2 /* f0f422c: 022f8821 */ addu $s1,$s1,$t7 /* f0f4230: 9631d3d6 */ lhu $s1,-0x2c2a($s1) -/* f0f4234: 0fc59ff5 */ jal fileGetInflatedLength +/* f0f4234: 0fc59ff5 */ jal fileGetInflatedSize /* f0f4238: 02202025 */ move $a0,$s1 /* f0f423c: 8fb80420 */ lw $t8,0x420($sp) /* f0f4240: 2459003f */ addiu $t9,$v0,0x3f @@ -5784,10 +5784,10 @@ glabel var7f1b3c40pf /* f0f4284: 8faf0404 */ lw $t7,0x404($sp) /* f0f4288: a60f056a */ sh $t7,0x56a($s0) /* f0f428c: 8fa60420 */ lw $a2,0x420($sp) -/* f0f4290: 0fc6a265 */ jal func0f1a7794 +/* f0f4290: 0fc6a265 */ jal modeldefLoad /* f0f4294: 97a4040a */ lhu $a0,0x40a($sp) /* f0f4298: ae020054 */ sw $v0,0x54($s0) -/* f0f429c: 0fc5a080 */ jal fileGetSize +/* f0f429c: 0fc5a080 */ jal fileGetLoadedSize /* f0f42a0: 8fa4003c */ lw $a0,0x3c($sp) /* f0f42a4: 2443003f */ addiu $v1,$v0,0x3f /* f0f42a8: 3479003f */ ori $t9,$v1,0x3f @@ -5807,10 +5807,10 @@ glabel var7f1b3c40pf /* f0f42dc: afb10040 */ sw $s1,0x40($sp) /* f0f42e0: 01633023 */ subu $a2,$t3,$v1 /* f0f42e4: 27a70410 */ addiu $a3,$sp,0x410 -/* f0f42e8: 0fc6a265 */ jal func0f1a7794 +/* f0f42e8: 0fc6a265 */ jal modeldefLoad /* f0f42ec: 01432821 */ addu $a1,$t2,$v1 /* f0f42f0: ae020058 */ sw $v0,0x58($s0) -/* f0f42f4: 0fc5a080 */ jal fileGetSize +/* f0f42f4: 0fc5a080 */ jal fileGetLoadedSize /* f0f42f8: 8fa40040 */ lw $a0,0x40($sp) /* f0f42fc: 8e040058 */ lw $a0,0x58($s0) /* f0f4300: 8fa50400 */ lw $a1,0x400($sp) @@ -5845,7 +5845,7 @@ glabel var7f1b3c40pf /* f0f4370: 10000027 */ b .PF0f0f4410 /* f0f4374: 8e0b000c */ lw $t3,0xc($s0) .PF0f0f4378: -/* f0f4378: 0fc59ff5 */ jal fileGetInflatedLength +/* f0f4378: 0fc59ff5 */ jal fileGetInflatedSize /* f0f437c: 00402025 */ move $a0,$v0 /* f0f4380: 2443003f */ addiu $v1,$v0,0x3f /* f0f4384: 346f003f */ ori $t7,$v1,0x3f @@ -5864,10 +5864,10 @@ glabel var7f1b3c40pf /* f0f43b8: 8fa60420 */ lw $a2,0x420($sp) /* f0f43bc: 9604000e */ lhu $a0,0xe($s0) /* f0f43c0: 8e050004 */ lw $a1,0x4($s0) -/* f0f43c4: 0fc6a265 */ jal func0f1a7794 +/* f0f43c4: 0fc6a265 */ jal modeldefLoad /* f0f43c8: 27a70410 */ addiu $a3,$sp,0x410 /* f0f43cc: ae020054 */ sw $v0,0x54($s0) -/* f0f43d0: 0fc5a080 */ jal fileGetSize +/* f0f43d0: 0fc5a080 */ jal fileGetLoadedSize /* f0f43d4: 8e04000c */ lw $a0,0xc($s0) /* f0f43d8: 0c00898a */ jal modelCalculateRwDataLen /* f0f43dc: 8e040054 */ lw $a0,0x54($s0) @@ -7345,7 +7345,7 @@ glabel var7f1b3c40pf /* f0f3ff0: 96220002 */ lhu $v0,0x2($s1) /* f0f3ff4: 00402025 */ move $a0,$v0 /* f0f3ff8: a7a2040a */ sh $v0,0x40a($sp) -/* f0f3ffc: 0fc5a1b1 */ jal fileGetInflatedLength +/* f0f3ffc: 0fc5a1b1 */ jal fileGetInflatedSize /* f0f4000: afa2003c */ sw $v0,0x3c($sp) /* f0f4004: 8e2a0000 */ lw $t2,0x0($s1) /* f0f4008: 2443003f */ addiu $v1,$v0,0x3f @@ -7366,7 +7366,7 @@ glabel var7f1b3c40pf /* f0f4040: 000f7880 */ sll $t7,$t7,0x2 /* f0f4044: 022f8821 */ addu $s1,$s1,$t7 /* f0f4048: 9631f3d6 */ lhu $s1,-0xc2a($s1) -/* f0f404c: 0fc5a1b1 */ jal fileGetInflatedLength +/* f0f404c: 0fc5a1b1 */ jal fileGetInflatedSize /* f0f4050: 02202025 */ move $a0,$s1 /* f0f4054: 8fb80420 */ lw $t8,0x420($sp) /* f0f4058: 2459003f */ addiu $t9,$v0,0x3f @@ -7390,10 +7390,10 @@ glabel var7f1b3c40pf /* f0f409c: 8faf0404 */ lw $t7,0x404($sp) /* f0f40a0: a60f056a */ sh $t7,0x56a($s0) /* f0f40a4: 8fa60420 */ lw $a2,0x420($sp) -/* f0f40a8: 0fc6a511 */ jal func0f1a7794 +/* f0f40a8: 0fc6a511 */ jal modeldefLoad /* f0f40ac: 97a4040a */ lhu $a0,0x40a($sp) /* f0f40b0: ae020054 */ sw $v0,0x54($s0) -/* f0f40b4: 0fc5a23c */ jal fileGetSize +/* f0f40b4: 0fc5a23c */ jal fileGetLoadedSize /* f0f40b8: 8fa4003c */ lw $a0,0x3c($sp) /* f0f40bc: 2443003f */ addiu $v1,$v0,0x3f /* f0f40c0: 3479003f */ ori $t9,$v1,0x3f @@ -7413,10 +7413,10 @@ glabel var7f1b3c40pf /* f0f40f4: afb10040 */ sw $s1,0x40($sp) /* f0f40f8: 01633023 */ subu $a2,$t3,$v1 /* f0f40fc: 27a70410 */ addiu $a3,$sp,0x410 -/* f0f4100: 0fc6a511 */ jal func0f1a7794 +/* f0f4100: 0fc6a511 */ jal modeldefLoad /* f0f4104: 01432821 */ addu $a1,$t2,$v1 /* f0f4108: ae020058 */ sw $v0,0x58($s0) -/* f0f410c: 0fc5a23c */ jal fileGetSize +/* f0f410c: 0fc5a23c */ jal fileGetLoadedSize /* f0f4110: 8fa40040 */ lw $a0,0x40($sp) /* f0f4114: 8e040058 */ lw $a0,0x58($s0) /* f0f4118: 8fa50400 */ lw $a1,0x400($sp) @@ -7451,7 +7451,7 @@ glabel var7f1b3c40pf /* f0f4188: 10000027 */ b .PB0f0f4228 /* f0f418c: 8e0b000c */ lw $t3,0xc($s0) .PB0f0f4190: -/* f0f4190: 0fc5a1b1 */ jal fileGetInflatedLength +/* f0f4190: 0fc5a1b1 */ jal fileGetInflatedSize /* f0f4194: 00402025 */ move $a0,$v0 /* f0f4198: 2443003f */ addiu $v1,$v0,0x3f /* f0f419c: 346f003f */ ori $t7,$v1,0x3f @@ -7470,10 +7470,10 @@ glabel var7f1b3c40pf /* f0f41d0: 8fa60420 */ lw $a2,0x420($sp) /* f0f41d4: 9604000e */ lhu $a0,0xe($s0) /* f0f41d8: 8e050004 */ lw $a1,0x4($s0) -/* f0f41dc: 0fc6a511 */ jal func0f1a7794 +/* f0f41dc: 0fc6a511 */ jal modeldefLoad /* f0f41e0: 27a70410 */ addiu $a3,$sp,0x410 /* f0f41e4: ae020054 */ sw $v0,0x54($s0) -/* f0f41e8: 0fc5a23c */ jal fileGetSize +/* f0f41e8: 0fc5a23c */ jal fileGetLoadedSize /* f0f41ec: 8e04000c */ lw $a0,0xc($s0) /* f0f41f0: 0c008cba */ jal modelCalculateRwDataLen /* f0f41f4: 8e040054 */ lw $a0,0x54($s0) @@ -8947,7 +8947,7 @@ glabel var7f1b2948 /* f0f3a84: 96220002 */ lhu $v0,0x2($s1) /* f0f3a88: 00402025 */ or $a0,$v0,$zero /* f0f3a8c: a7a2040a */ sh $v0,0x40a($sp) -/* f0f3a90: 0fc59c15 */ jal fileGetInflatedLength +/* f0f3a90: 0fc59c15 */ jal fileGetInflatedSize /* f0f3a94: afa2003c */ sw $v0,0x3c($sp) /* f0f3a98: 8e2d0000 */ lw $t5,0x0($s1) /* f0f3a9c: 2443003f */ addiu $v1,$v0,0x3f @@ -8968,7 +8968,7 @@ glabel var7f1b2948 /* f0f3ad4: 000a5080 */ sll $t2,$t2,0x2 /* f0f3ad8: 022a8821 */ addu $s1,$s1,$t2 /* f0f3adc: 9631cf06 */ lhu $s1,%lo(g_HeadsAndBodies+0x2)($s1) -/* f0f3ae0: 0fc59c15 */ jal fileGetInflatedLength +/* f0f3ae0: 0fc59c15 */ jal fileGetInflatedSize /* f0f3ae4: 02202025 */ or $a0,$s1,$zero /* f0f3ae8: 8fab0420 */ lw $t3,0x420($sp) /* f0f3aec: 244c003f */ addiu $t4,$v0,0x3f @@ -8992,10 +8992,10 @@ glabel var7f1b2948 /* f0f3b30: 8fac0404 */ lw $t4,0x404($sp) /* f0f3b34: a60c056a */ sh $t4,0x56a($s0) /* f0f3b38: 8fa60420 */ lw $a2,0x420($sp) -/* f0f3b3c: 0fc69de5 */ jal func0f1a7794 +/* f0f3b3c: 0fc69de5 */ jal modeldefLoad /* f0f3b40: 97a4040a */ lhu $a0,0x40a($sp) /* f0f3b44: ae020054 */ sw $v0,0x54($s0) -/* f0f3b48: 0fc59ca0 */ jal fileGetSize +/* f0f3b48: 0fc59ca0 */ jal fileGetLoadedSize /* f0f3b4c: 8fa4003c */ lw $a0,0x3c($sp) /* f0f3b50: 2443003f */ addiu $v1,$v0,0x3f /* f0f3b54: 346d003f */ ori $t5,$v1,0x3f @@ -9015,10 +9015,10 @@ glabel var7f1b2948 /* f0f3b88: afb10040 */ sw $s1,0x40($sp) /* f0f3b8c: 03033023 */ subu $a2,$t8,$v1 /* f0f3b90: 27a70410 */ addiu $a3,$sp,0x410 -/* f0f3b94: 0fc69de5 */ jal func0f1a7794 +/* f0f3b94: 0fc69de5 */ jal modeldefLoad /* f0f3b98: 01e32821 */ addu $a1,$t7,$v1 /* f0f3b9c: ae020058 */ sw $v0,0x58($s0) -/* f0f3ba0: 0fc59ca0 */ jal fileGetSize +/* f0f3ba0: 0fc59ca0 */ jal fileGetLoadedSize /* f0f3ba4: 8fa40040 */ lw $a0,0x40($sp) /* f0f3ba8: 8e040058 */ lw $a0,0x58($s0) /* f0f3bac: 8fa50400 */ lw $a1,0x400($sp) @@ -9053,7 +9053,7 @@ glabel var7f1b2948 /* f0f3c1c: 10000027 */ b .L0f0f3cbc /* f0f3c20: 8e19000c */ lw $t9,0xc($s0) .L0f0f3c24: -/* f0f3c24: 0fc59c15 */ jal fileGetInflatedLength +/* f0f3c24: 0fc59c15 */ jal fileGetInflatedSize /* f0f3c28: 00402025 */ or $a0,$v0,$zero /* f0f3c2c: 2443003f */ addiu $v1,$v0,0x3f /* f0f3c30: 346d003f */ ori $t5,$v1,0x3f @@ -9072,10 +9072,10 @@ glabel var7f1b2948 /* f0f3c64: 8fa60420 */ lw $a2,0x420($sp) /* f0f3c68: 9604000e */ lhu $a0,0xe($s0) /* f0f3c6c: 8e050004 */ lw $a1,0x4($s0) -/* f0f3c70: 0fc69de5 */ jal func0f1a7794 +/* f0f3c70: 0fc69de5 */ jal modeldefLoad /* f0f3c74: 27a70410 */ addiu $a3,$sp,0x410 /* f0f3c78: ae020054 */ sw $v0,0x54($s0) -/* f0f3c7c: 0fc59ca0 */ jal fileGetSize +/* f0f3c7c: 0fc59ca0 */ jal fileGetLoadedSize /* f0f3c80: 8e04000c */ lw $a0,0xc($s0) /* f0f3c84: 0c008b49 */ jal modelCalculateRwDataLen /* f0f3c88: 8e040054 */ lw $a0,0x54($s0) @@ -10556,7 +10556,7 @@ glabel var7f1b2948 /* f0f05c8: 96020002 */ lhu $v0,0x2($s0) /* f0f05cc: 00402025 */ or $a0,$v0,$zero /* f0f05d0: a7a20432 */ sh $v0,0x432($sp) -/* f0f05d4: 0fc58635 */ jal fileGetInflatedLength +/* f0f05d4: 0fc58635 */ jal fileGetInflatedSize /* f0f05d8: afa20040 */ sw $v0,0x40($sp) /* f0f05dc: 8e0d0000 */ lw $t5,0x0($s0) /* f0f05e0: 2443003f */ addiu $v1,$v0,0x3f @@ -10577,7 +10577,7 @@ glabel var7f1b2948 /* f0f0618: 000a5080 */ sll $t2,$t2,0x2 /* f0f061c: 020a8021 */ addu $s0,$s0,$t2 /* f0f0620: 9610f766 */ lhu $s0,-0x89a($s0) -/* f0f0624: 0fc58635 */ jal fileGetInflatedLength +/* f0f0624: 0fc58635 */ jal fileGetInflatedSize /* f0f0628: 02002025 */ or $a0,$s0,$zero /* f0f062c: 8fab0448 */ lw $t3,0x448($sp) /* f0f0630: 244c003f */ addiu $t4,$v0,0x3f @@ -10601,10 +10601,10 @@ glabel var7f1b2948 /* f0f0674: 8fac042c */ lw $t4,0x42c($sp) /* f0f0678: a62c056a */ sh $t4,0x56a($s1) /* f0f067c: 8fa60448 */ lw $a2,0x448($sp) -/* f0f0680: 0c0091a1 */ jal func0f1a7794 +/* f0f0680: 0c0091a1 */ jal modeldefLoad /* f0f0684: 97a40432 */ lhu $a0,0x432($sp) /* f0f0688: ae220054 */ sw $v0,0x54($s1) -/* f0f068c: 0fc586ed */ jal fileGetSize +/* f0f068c: 0fc586ed */ jal fileGetLoadedSize /* f0f0690: 8fa40040 */ lw $a0,0x40($sp) /* f0f0694: 2443003f */ addiu $v1,$v0,0x3f /* f0f0698: 346d003f */ ori $t5,$v1,0x3f @@ -10624,10 +10624,10 @@ glabel var7f1b2948 /* f0f06cc: afb00044 */ sw $s0,0x44($sp) /* f0f06d0: 03033023 */ subu $a2,$t8,$v1 /* f0f06d4: 27a70438 */ addiu $a3,$sp,0x438 -/* f0f06d8: 0c0091a1 */ jal func0f1a7794 +/* f0f06d8: 0c0091a1 */ jal modeldefLoad /* f0f06dc: 01e32821 */ addu $a1,$t7,$v1 /* f0f06e0: ae220058 */ sw $v0,0x58($s1) -/* f0f06e4: 0fc586ed */ jal fileGetSize +/* f0f06e4: 0fc586ed */ jal fileGetLoadedSize /* f0f06e8: 8fa40044 */ lw $a0,0x44($sp) /* f0f06ec: 8e240058 */ lw $a0,0x58($s1) /* f0f06f0: 8fa50428 */ lw $a1,0x428($sp) @@ -10662,7 +10662,7 @@ glabel var7f1b2948 /* f0f0760: 10000027 */ beqz $zero,.NB0f0f0800 /* f0f0764: 8e39000c */ lw $t9,0xc($s1) .NB0f0f0768: -/* f0f0768: 0fc58635 */ jal fileGetInflatedLength +/* f0f0768: 0fc58635 */ jal fileGetInflatedSize /* f0f076c: 00402025 */ or $a0,$v0,$zero /* f0f0770: 2443003f */ addiu $v1,$v0,0x3f /* f0f0774: 346d003f */ ori $t5,$v1,0x3f @@ -10681,10 +10681,10 @@ glabel var7f1b2948 /* f0f07a8: 8fa60448 */ lw $a2,0x448($sp) /* f0f07ac: 9624000e */ lhu $a0,0xe($s1) /* f0f07b0: 8e250004 */ lw $a1,0x4($s1) -/* f0f07b4: 0c0091a1 */ jal func0f1a7794 +/* f0f07b4: 0c0091a1 */ jal modeldefLoad /* f0f07b8: 27a70438 */ addiu $a3,$sp,0x438 /* f0f07bc: ae220054 */ sw $v0,0x54($s1) -/* f0f07c0: 0fc586ed */ jal fileGetSize +/* f0f07c0: 0fc586ed */ jal fileGetLoadedSize /* f0f07c4: 8e24000c */ lw $a0,0xc($s1) /* f0f07c8: 0c008f6f */ jal modelCalculateRwDataLen /* f0f07cc: 8e240054 */ lw $a0,0x54($s1) @@ -12142,14 +12142,14 @@ glabel var7f1b2948 // } // // bodyfilenum = g_HeadsAndBodies[bodynum].filenum; -// totalfilelen = ALIGN64(fileGetInflatedLength(g_HeadsAndBodies[bodynum].filenum)); +// totalfilelen = ALIGN64(fileGetInflatedSize(g_HeadsAndBodies[bodynum].filenum)); // // if (g_HeadsAndBodies[bodynum].unk00_01) { // headnum = -1; // headfilenum = 0xffff; // } else { // headfilenum = g_HeadsAndBodies[headnum].filenum; -// totalfilelen += ALIGN64(fileGetInflatedLength(headfilenum)); +// totalfilelen += ALIGN64(fileGetInflatedSize(headfilenum)); // } // // totalfilelen += 0x4000; @@ -12158,15 +12158,15 @@ glabel var7f1b2948 // // thing->headnum = headnum; // thing->bodynum = bodynum; -// thing->bodymodeldef = func0f1a7794(bodyfilenum, thing->unk004, totalfilelen, &sp410); -// bodyfilelen2 = ALIGN64(fileGetSize(bodyfilenum)); +// thing->bodymodeldef = modeldefLoad(bodyfilenum, thing->unk004, totalfilelen, &sp410); +// bodyfilelen2 = ALIGN64(fileGetLoadedSize(bodyfilenum)); // modelCalculateRwDataLen(thing->bodymodeldef); // // if (headnum < 0) { // thing->headmodeldef = NULL; // } else { -// thing->headmodeldef = func0f1a7794(headfilenum, thing->unk004 + bodyfilelen2, totalfilelen - bodyfilelen2, &sp410); -// fileGetSize(headfilenum); +// thing->headmodeldef = modeldefLoad(headfilenum, thing->unk004 + bodyfilelen2, totalfilelen - bodyfilelen2, &sp410); +// fileGetLoadedSize(headfilenum); // bodyCalculateHeadOffset(thing->headmodeldef, headnum, bodynum); // modelCalculateRwDataLen(thing->headmodeldef); // } @@ -12179,15 +12179,15 @@ glabel var7f1b2948 // // func0f02ce8c(bodynum, headnum, thing->bodymodeldef, thing->headmodeldef, false, &thing->bodymodel, false, 1); // } else { -// totalfilelen = ALIGN64(fileGetInflatedLength(thing->unk00c)) + 0x4000; +// totalfilelen = ALIGN64(fileGetInflatedSize(thing->unk00c)) + 0x4000; // // func0f172e70(&sp410, thing->unk004 + totalfilelen, thing->unk008 - totalfilelen); // // thing->headnum = -1; // thing->bodynum = -1; -// thing->bodymodeldef = func0f1a7794(thing->unk00c, thing->unk004, totalfilelen, &sp410); +// thing->bodymodeldef = modeldefLoad(thing->unk00c, thing->unk004, totalfilelen, &sp410); // -// fileGetSize(thing->unk00c); +// fileGetLoadedSize(thing->unk00c); // modelCalculateRwDataLen(thing->bodymodeldef); // modelInit(&thing->bodymodel, thing->bodymodeldef, &thing->unk110, true); // animInit(&thing->bodyanim); diff --git a/src/game/player.c b/src/game/player.c index c4ed3eaaa..5f255ac25 100644 --- a/src/game/player.c +++ b/src/game/player.c @@ -1386,26 +1386,26 @@ void playerTickChrBody(void) offset1 += sizeof(struct weaponobj); offset1 = ALIGN64(offset1); - offset2 = offset1 + ALIGN64(fileGetInflatedLength(g_HeadsAndBodies[bodynum].filenum)); + offset2 = offset1 + ALIGN64(fileGetInflatedSize(g_HeadsAndBodies[bodynum].filenum)); if (headnum >= 0) { - offset2 += ALIGN64(fileGetInflatedLength(g_HeadsAndBodies[headnum].filenum)); + offset2 += ALIGN64(fileGetInflatedSize(g_HeadsAndBodies[headnum].filenum)); } if (weaponmodelnum >= 0) { - offset2 += ALIGN64(fileGetInflatedLength(g_ModelStates[weaponmodelnum].fileid)); + offset2 += ALIGN64(fileGetInflatedSize(g_ModelStates[weaponmodelnum].fileid)); } offset2 += 0x4000; bgunCalculateGunMemCapacity(); spe8 = g_Vars.currentplayer->gunmem2 + offset2; func0f172e70(sp100, spe8, bgunCalculateGunMemCapacity() - offset2); - bodyfiledata = func0f1a7794(g_HeadsAndBodies[bodynum].filenum, allocation + offset1, offset2 - offset1, sp100); - offset1 = ALIGN64(fileGetSize(g_HeadsAndBodies[bodynum].filenum) + offset1); + bodyfiledata = modeldefLoad(g_HeadsAndBodies[bodynum].filenum, allocation + offset1, offset2 - offset1, sp100); + offset1 = ALIGN64(fileGetLoadedSize(g_HeadsAndBodies[bodynum].filenum) + offset1); if (headnum >= 0) { - headfiledata = func0f1a7794(g_HeadsAndBodies[headnum].filenum, allocation + offset1, offset2 - offset1, sp100); - offset1 = ALIGN64(fileGetSize(g_HeadsAndBodies[headnum].filenum) + offset1); + headfiledata = modeldefLoad(g_HeadsAndBodies[headnum].filenum, allocation + offset1, offset2 - offset1, sp100); + offset1 = ALIGN64(fileGetLoadedSize(g_HeadsAndBodies[headnum].filenum) + offset1); } modelCalculateRwDataLen(bodyfiledata); @@ -1431,7 +1431,7 @@ void playerTickChrBody(void) } else { // 2-4 players if (g_HeadsAndBodies[bodynum].filedata == NULL) { - g_HeadsAndBodies[bodynum].filedata = fileLoad(g_HeadsAndBodies[bodynum].filenum); + g_HeadsAndBodies[bodynum].filedata = modeldefLoadToNew(g_HeadsAndBodies[bodynum].filenum); } bodyfiledata = g_HeadsAndBodies[bodynum].filedata; @@ -1441,13 +1441,13 @@ void playerTickChrBody(void) } else if (sp60) { headfiledata = func0f18e57c(headnum, &headnum); } else if (g_Vars.normmplayerisrunning && IS8MB()) { - g_HeadsAndBodies[headnum].filedata = fileLoad(g_HeadsAndBodies[headnum].filenum); + g_HeadsAndBodies[headnum].filedata = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); headfiledata = g_HeadsAndBodies[headnum].filedata; - g_FileInfo[g_HeadsAndBodies[headnum].filenum].size = 0; + g_FileInfo[g_HeadsAndBodies[headnum].filenum].loadedsize = 0; bodyCalculateHeadOffset(headfiledata, headnum, bodynum); } else { if (g_HeadsAndBodies[headnum].filedata == NULL) { - g_HeadsAndBodies[headnum].filedata = fileLoad(g_HeadsAndBodies[headnum].filenum); + g_HeadsAndBodies[headnum].filedata = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); } headfiledata = g_HeadsAndBodies[headnum].filedata; @@ -1502,8 +1502,8 @@ void playerTickChrBody(void) if (weaponmodelnum >= 0) { if (g_Vars.mplayerisrunning == false) { - weaponfiledata = func0f1a7794(g_ModelStates[weaponmodelnum].fileid, allocation + offset1, offset2 - offset1, sp100); - fileGetSize(g_ModelStates[weaponmodelnum].fileid); + weaponfiledata = modeldefLoad(g_ModelStates[weaponmodelnum].fileid, allocation + offset1, offset2 - offset1, sp100); + fileGetLoadedSize(g_ModelStates[weaponmodelnum].fileid); modelCalculateRwDataLen(weaponfiledata); } else { weaponobj = NULL; diff --git a/src/game/title.c b/src/game/title.c index 5964c83c7..a9615cb68 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -1736,10 +1736,10 @@ glabel var7f1a8f68jf /* f016ffc: 96040244 */ lhu $a0,0x244($s0) /* f017000: 34c67800 */ ori $a2,$a2,0x7800 /* f017004: 02202825 */ move $a1,$s1 -/* f017008: 0fc6a0c5 */ jal func0f1a7794 +/* f017008: 0fc6a0c5 */ jal modeldefLoad /* f01700c: 00003825 */ move $a3,$zero /* f017010: ae020240 */ sw $v0,0x240($s0) -/* f017014: 0fc59da4 */ jal fileGetSize +/* f017014: 0fc59da4 */ jal fileGetLoadedSize /* f017018: 96040244 */ lhu $a0,0x244($s0) /* f01701c: 2443003f */ addiu $v1,$v0,0x3f /* f017020: 346a003f */ ori $t2,$v1,0x3f @@ -1774,10 +1774,10 @@ glabel var7f1a8f68jf /* f017094: ada10008 */ sw $at,0x8($t5) /* f017098: 9604024c */ lhu $a0,0x24c($s0) /* f01709c: 02403025 */ move $a2,$s2 -/* f0170a0: 0fc6a0c5 */ jal func0f1a7794 +/* f0170a0: 0fc6a0c5 */ jal modeldefLoad /* f0170a4: 00003825 */ move $a3,$zero /* f0170a8: ae020248 */ sw $v0,0x248($s0) -/* f0170ac: 0fc59da4 */ jal fileGetSize +/* f0170ac: 0fc59da4 */ jal fileGetLoadedSize /* f0170b0: 9604024c */ lhu $a0,0x24c($s0) /* f0170b4: 2443003f */ addiu $v1,$v0,0x3f /* f0170b8: 3479003f */ ori $t9,$v1,0x3f @@ -1810,10 +1810,10 @@ glabel var7f1a8f68jf /* f017124: ad610008 */ sw $at,0x8($t3) /* f017128: 9604026c */ lhu $a0,0x26c($s0) /* f01712c: 02403025 */ move $a2,$s2 -/* f017130: 0fc6a0c5 */ jal func0f1a7794 +/* f017130: 0fc6a0c5 */ jal modeldefLoad /* f017134: 00003825 */ move $a3,$zero /* f017138: ae020268 */ sw $v0,0x268($s0) -/* f01713c: 0fc59da4 */ jal fileGetSize +/* f01713c: 0fc59da4 */ jal fileGetLoadedSize /* f017140: 9604026c */ lhu $a0,0x26c($s0) /* f017144: 2443003f */ addiu $v1,$v0,0x3f /* f017148: 3478003f */ ori $t8,$v1,0x3f @@ -1846,10 +1846,10 @@ glabel var7f1a8f68jf /* f0171b4: af210008 */ sw $at,0x8($t9) /* f0171b8: 96040dcc */ lhu $a0,0xdcc($s0) /* f0171bc: 02403025 */ move $a2,$s2 -/* f0171c0: 0fc6a0c5 */ jal func0f1a7794 +/* f0171c0: 0fc6a0c5 */ jal modeldefLoad /* f0171c4: 00003825 */ move $a3,$zero /* f0171c8: ae020dc8 */ sw $v0,0xdc8($s0) -/* f0171cc: 0fc59da4 */ jal fileGetSize +/* f0171cc: 0fc59da4 */ jal fileGetLoadedSize /* f0171d0: 96040dcc */ lhu $a0,0xdcc($s0) /* f0171d4: 2443003f */ addiu $v1,$v0,0x3f /* f0171d8: 346c003f */ ori $t4,$v1,0x3f @@ -1885,10 +1885,10 @@ glabel var7f1a8f68jf /* f017250: 96040dd4 */ lhu $a0,0xdd4($s0) /* f017254: 02202825 */ move $a1,$s1 /* f017258: 02403025 */ move $a2,$s2 -/* f01725c: 0fc6a0c5 */ jal func0f1a7794 +/* f01725c: 0fc6a0c5 */ jal modeldefLoad /* f017260: 00003825 */ move $a3,$zero /* f017264: ae020dd0 */ sw $v0,0xdd0($s0) -/* f017268: 0fc59da4 */ jal fileGetSize +/* f017268: 0fc59da4 */ jal fileGetLoadedSize /* f01726c: 96040dd4 */ lhu $a0,0xdd4($s0) /* f017270: 2443003f */ addiu $v1,$v0,0x3f /* f017274: 3478003f */ ori $t8,$v1,0x3f @@ -1921,10 +1921,10 @@ glabel var7f1a8f68jf /* f0172e0: adc10008 */ sw $at,0x8($t6) /* f0172e4: 96040274 */ lhu $a0,0x274($s0) /* f0172e8: 02403025 */ move $a2,$s2 -/* f0172ec: 0fc6a0c5 */ jal func0f1a7794 +/* f0172ec: 0fc6a0c5 */ jal modeldefLoad /* f0172f0: 00003825 */ move $a3,$zero /* f0172f4: ae020270 */ sw $v0,0x270($s0) -/* f0172f8: 0fc59da4 */ jal fileGetSize +/* f0172f8: 0fc59da4 */ jal fileGetLoadedSize /* f0172fc: 96040274 */ lhu $a0,0x274($s0) /* f017300: 2443003f */ addiu $v1,$v0,0x3f /* f017304: 346c003f */ ori $t4,$v1,0x3f @@ -2022,10 +2022,10 @@ glabel titleInitPdLogo /* f016d88: 96240244 */ lhu $a0,0x244($s1) /* f016d8c: 34c67800 */ ori $a2,$a2,0x7800 /* f016d90: 00003825 */ or $a3,$zero,$zero -/* f016d94: 0fc69de5 */ jal func0f1a7794 +/* f016d94: 0fc69de5 */ jal modeldefLoad /* f016d98: 02002825 */ or $a1,$s0,$zero /* f016d9c: ae220240 */ sw $v0,0x240($s1) -/* f016da0: 0fc59ca0 */ jal fileGetSize +/* f016da0: 0fc59ca0 */ jal fileGetLoadedSize /* f016da4: 96240244 */ lhu $a0,0x244($s1) /* f016da8: 2443003f */ addiu $v1,$v0,0x3f /* f016dac: 3469003f */ ori $t1,$v1,0x3f @@ -2060,10 +2060,10 @@ glabel titleInitPdLogo /* f016e20: ad810008 */ sw $at,0x8($t4) /* f016e24: 9624024c */ lhu $a0,0x24c($s1) /* f016e28: 02403025 */ or $a2,$s2,$zero -/* f016e2c: 0fc69de5 */ jal func0f1a7794 +/* f016e2c: 0fc69de5 */ jal modeldefLoad /* f016e30: 00003825 */ or $a3,$zero,$zero /* f016e34: ae220248 */ sw $v0,0x248($s1) -/* f016e38: 0fc59ca0 */ jal fileGetSize +/* f016e38: 0fc59ca0 */ jal fileGetLoadedSize /* f016e3c: 9624024c */ lhu $a0,0x24c($s1) /* f016e40: 2443003f */ addiu $v1,$v0,0x3f /* f016e44: 346e003f */ ori $t6,$v1,0x3f @@ -2096,10 +2096,10 @@ glabel titleInitPdLogo /* f016eb0: ad010008 */ sw $at,0x8($t0) /* f016eb4: 9624026c */ lhu $a0,0x26c($s1) /* f016eb8: 02403025 */ or $a2,$s2,$zero -/* f016ebc: 0fc69de5 */ jal func0f1a7794 +/* f016ebc: 0fc69de5 */ jal modeldefLoad /* f016ec0: 00003825 */ or $a3,$zero,$zero /* f016ec4: ae220268 */ sw $v0,0x268($s1) -/* f016ec8: 0fc59ca0 */ jal fileGetSize +/* f016ec8: 0fc59ca0 */ jal fileGetLoadedSize /* f016ecc: 9624026c */ lhu $a0,0x26c($s1) /* f016ed0: 2443003f */ addiu $v1,$v0,0x3f /* f016ed4: 3479003f */ ori $t9,$v1,0x3f @@ -2132,10 +2132,10 @@ glabel titleInitPdLogo /* f016f40: ada10008 */ sw $at,0x8($t5) /* f016f44: 96240274 */ lhu $a0,0x274($s1) /* f016f48: 02403025 */ or $a2,$s2,$zero -/* f016f4c: 0fc69de5 */ jal func0f1a7794 +/* f016f4c: 0fc69de5 */ jal modeldefLoad /* f016f50: 00003825 */ or $a3,$zero,$zero /* f016f54: ae220270 */ sw $v0,0x270($s1) -/* f016f58: 0fc59ca0 */ jal fileGetSize +/* f016f58: 0fc59ca0 */ jal fileGetLoadedSize /* f016f5c: 96240274 */ lhu $a0,0x274($s1) /* f016f60: 2443003f */ addiu $v1,$v0,0x3f /* f016f64: 346a003f */ ori $t2,$v1,0x3f @@ -2218,8 +2218,8 @@ glabel titleInitPdLogo // // { // struct coord coord = {0, 0, 0}; // var80062738 -// g_ModelStates[MODEL_NLOGO].filedata = func0f1a7794(g_ModelStates[MODEL_NLOGO].fileid, nextaddr, 0x47800, 0); -// size = ALIGN64(fileGetSize(g_ModelStates[MODEL_NLOGO].fileid)); +// g_ModelStates[MODEL_NLOGO].filedata = modeldefLoad(g_ModelStates[MODEL_NLOGO].fileid, nextaddr, 0x47800, 0); +// size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_NLOGO].fileid)); // nextaddr += size; // remaining = 0x47800 - size; // modelCalculateRwDataLen(g_ModelStates[MODEL_NLOGO].filedata); @@ -2231,8 +2231,8 @@ glabel titleInitPdLogo // // { // struct coord coord = {0, 0, 0}; // var80062744 -// g_ModelStates[MODEL_NLOGO2].filedata = func0f1a7794(g_ModelStates[MODEL_NLOGO2].fileid, nextaddr, remaining, 0); -// size = ALIGN64(fileGetSize(g_ModelStates[MODEL_NLOGO2].fileid)); +// g_ModelStates[MODEL_NLOGO2].filedata = modeldefLoad(g_ModelStates[MODEL_NLOGO2].fileid, nextaddr, remaining, 0); +// size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_NLOGO2].fileid)); // nextaddr += size; // remaining -= size; // modelCalculateRwDataLen(g_ModelStates[MODEL_NLOGO2].filedata); @@ -2244,8 +2244,8 @@ glabel titleInitPdLogo // // { // struct coord coord = {0, 0, 0}; // var80062750 -// g_ModelStates[MODEL_PDTWO].filedata = func0f1a7794(g_ModelStates[MODEL_PDTWO].fileid, nextaddr, remaining, 0); -// size = ALIGN64(fileGetSize(g_ModelStates[MODEL_PDTWO].fileid)); +// g_ModelStates[MODEL_PDTWO].filedata = modeldefLoad(g_ModelStates[MODEL_PDTWO].fileid, nextaddr, remaining, 0); +// size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_PDTWO].fileid)); // nextaddr += size; // remaining -= size; // modelCalculateRwDataLen(g_ModelStates[MODEL_PDTWO].filedata); @@ -2257,8 +2257,8 @@ glabel titleInitPdLogo // // { // struct coord coord = {0, 0, 0}; // var8006275c -// g_ModelStates[MODEL_PDTHREE].filedata = func0f1a7794(g_ModelStates[MODEL_PDTHREE].fileid, nextaddr, remaining, 0); -// size = ALIGN64(fileGetSize(g_ModelStates[MODEL_PDTHREE].fileid)); +// g_ModelStates[MODEL_PDTHREE].filedata = modeldefLoad(g_ModelStates[MODEL_PDTHREE].fileid, nextaddr, remaining, 0); +// size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_PDTHREE].fileid)); // nextaddr += size; // remaining -= size; // modelCalculateRwDataLen(g_ModelStates[MODEL_PDTHREE].filedata); @@ -9683,7 +9683,7 @@ void titleInitNintendoLogo(void) { struct coord coord = {0, 0, 0}; - g_ModelStates[MODEL_NINTENDOLOGO].filedata = func0f1a7794(g_ModelStates[MODEL_NINTENDOLOGO].fileid, nextaddr, 0x47800, 0); + g_ModelStates[MODEL_NINTENDOLOGO].filedata = modeldefLoad(g_ModelStates[MODEL_NINTENDOLOGO].fileid, nextaddr, 0x47800, 0); modelCalculateRwDataLen(g_ModelStates[MODEL_NINTENDOLOGO].filedata); g_TitleModel = modelInstantiate(g_ModelStates[MODEL_NINTENDOLOGO].filedata); @@ -9842,7 +9842,7 @@ void titleInitRareLogo(void) { struct coord coord = {0, 0, 0}; - g_ModelStates[MODEL_RARELOGO].filedata = func0f1a7794(g_ModelStates[MODEL_RARELOGO].fileid, nextaddr, 0x47800, 0); + g_ModelStates[MODEL_RARELOGO].filedata = modeldefLoad(g_ModelStates[MODEL_RARELOGO].fileid, nextaddr, 0x47800, 0); modelCalculateRwDataLen(g_ModelStates[MODEL_RARELOGO].filedata); g_TitleModel = modelInstantiate(g_ModelStates[MODEL_RARELOGO].filedata); diff --git a/src/include/constants.h b/src/include/constants.h index 859fd9e5d..1171a0802 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -837,6 +837,9 @@ #define FILEERROR_PAKDAMAGED 7 #define FILEERROR_DELETENOTEFAILED 8 +#define FILELOADMETHOD_EXTRAMEM 0x11 +#define FILELOADMETHOD_DEFAULT 0x22 + #define FILEOP_IS_LOAD(op) (op >= 100) #define FILEOP_IS_SAVE(op) (op < 100) diff --git a/src/include/game/file.h b/src/include/game/file.h index 6c443e59e..4735c78f2 100644 --- a/src/include/game/file.h +++ b/src/include/game/file.h @@ -5,19 +5,16 @@ #include "types.h" u32 fileGetRomAddress(s32 filenum); -u32 fileGetRomSizeByTableAddress(u32 *filetableaddr); -s32 fileGetRomSizeByFileNum(s32 filenum); -u32 func0f166ea8(u32 *filetableaddr); -void func0f166eb4(void *dst, u32 scratchlen, u32 *romaddrptr, struct fileinfo *info); -void func0f166f74(void); -void func0f166ff0(u16 filenum, void *memaddr, s32 offset, u32 len); -u32 fileGetInflatedLength(u32 filenum); -void *func0f1670fc(s32 filenum, u32 arg1); -void *func0f167200(s32 filenum, s32 arg1, u8 *ptr, u32 size); -u32 fileGetSize(s32 filenum); -u32 fileGetUnk04(s32 filenum); -void func0f1672a8(s32 filenum, void *ptr, u32 size, bool resizing); -void func0f1672f0(u8 arg0); +s32 fileGetRomSize(s32 filenum); +void filesResetAndPrint(void); +void fileLoadPartToAddr(u16 filenum, void *memaddr, s32 offset, u32 len); +u32 fileGetInflatedSize(u32 filenum); +void *fileLoadToNew(s32 filenum, u32 method); +void *fileLoadToAddr(s32 filenum, s32 method, u8 *ptr, u32 size); +u32 fileGetLoadedSize(s32 filenum); +u32 fileGetAllocationSize(s32 filenum); +void fileSetSize(s32 filenum, void *ptr, u32 size, bool reallocate); +void filesReset(u8 arg0); void func0f167330(void); #endif diff --git a/src/include/game/game_1a7560.h b/src/include/game/game_1a7560.h index 4946bb9b5..53ce4f92a 100644 --- a/src/include/game/game_1a7560.h +++ b/src/include/game/game_1a7560.h @@ -6,7 +6,7 @@ void func0f1a7560(void *ptr, u16 fileid, u32 arg2, void *arg3, s32 *arg4, bool arg5); void modelPromoteTypeToPointer(struct modelfiledata *filedata); -struct modelfiledata *func0f1a7794(u16 fileid, u8 *arg1, s32 arg2, s32 *arg3); -void *fileLoad(u16 fileid); +struct modelfiledata *modeldefLoad(u16 fileid, u8 *arg1, s32 arg2, s32 *arg3); +void *modeldefLoadToNew(u16 fileid); #endif diff --git a/src/include/game/lang.h b/src/include/game/lang.h index 838ada1af..d2b5b2502 100644 --- a/src/include/game/lang.h +++ b/src/include/game/lang.h @@ -10,8 +10,8 @@ u32 langGetLangBankIndexFromStagenum(s32 stagenum); u32 func0f16e3fc(void); s32 langGetFileNumOffset(void); s32 langGetFileId(s32 bank); -void langSetBankSimple(s32 bank); -void langSetBank(s32 bank, u8 *arg1, s32 arg2); +void langLoad(s32 bank); +void langLoadToAddr(s32 bank, u8 *dst, s32 size); void langClearBank(s32 bank); char *langGet(s32 textid); void langSetEuropean(u32 arg0); diff --git a/src/include/types.h b/src/include/types.h index 31e46b3df..d234ea30c 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -5235,8 +5235,8 @@ struct var800aabb8 { }; struct fileinfo { - u32 size; - u32 unk04; + u32 loadedsize; + u32 allocsize; }; struct portalcmd { diff --git a/src/lib/main.c b/src/lib/main.c index 42d52f479..c8f062af2 100644 --- a/src/lib/main.c +++ b/src/lib/main.c @@ -587,7 +587,7 @@ glabel mainInit /* d8f0: 00000000 */ nop /* d8f4: 0fc6a10c */ jal func0f1a78b0 /* d8f8: 00000000 */ nop -/* d8fc: 0fc59ce1 */ jal func0f166f74 +/* d8fc: 0fc59ce1 */ jal filesResetAndPrint /* d900: 00000000 */ nop /* d904: 0fc5d8e8 */ jal stub0f175f50 /* d908: 00000000 */ nop @@ -982,7 +982,7 @@ glabel mainInit /* d684: 00000000 */ nop /* d688: 0fc6a2ac */ jal func0f1a78b0 /* d68c: 00000000 */ nop -/* d690: 0fc59fbd */ jal func0f166f74 +/* d690: 0fc59fbd */ jal filesResetAndPrint /* d694: 00000000 */ nop /* d698: 0fc5dbe0 */ jal stub0f175f50 /* d69c: 00000000 */ nop @@ -1407,7 +1407,7 @@ glabel mainInit /* d724: 00000000 */ nop /* d728: 0fc6a558 */ jal func0f1a78b0 /* d72c: 00000000 */ nop -/* d730: 0fc5a179 */ jal func0f166f74 +/* d730: 0fc5a179 */ jal filesResetAndPrint /* d734: 00000000 */ nop /* d738: 0fc5dea0 */ jal stub0f175f50 /* d73c: 00000000 */ nop @@ -1810,7 +1810,7 @@ glabel mainInit /* d948: 00000000 */ nop /* d94c: 0fc69e2c */ jal func0f1a78b0 /* d950: 00000000 */ nop -/* d954: 0fc59bdd */ jal func0f166f74 +/* d954: 0fc59bdd */ jal filesResetAndPrint /* d958: 00000000 */ nop /* d95c: 0fc5d7d4 */ jal stub0f175f50 /* d960: 00000000 */ nop @@ -2183,7 +2183,7 @@ glabel mainInit /* de58: 00000000 */ sll $zero,$zero,0x0 /* de5c: 0fc68554 */ jal func0f1a78b0 /* de60: 00000000 */ sll $zero,$zero,0x0 -/* de64: 0fc585fd */ jal func0f166f74 +/* de64: 0fc585fd */ jal filesResetAndPrint /* de68: 00000000 */ sll $zero,$zero,0x0 /* de6c: 0fc5c2fc */ jal stub0f175f50 /* de70: 00000000 */ sll $zero,$zero,0x0 @@ -2449,7 +2449,7 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; // // vmInit(); // func0f1a78b0(); -// func0f166f74(); +// filesResetAndPrint(); // stub0f175f50(); // func0f175f90(); // @@ -2681,7 +2681,7 @@ void mainLoop(void) mempResetPool(MEMPOOL_7); mempResetPool(MEMPOOL_STAGE); - func0f1672f0(4); + filesReset(4); if (argFindByPrefix(1, "-ma")) { g_MainMemaHeapSize = strtol(argFindByPrefix(1, "-ma"), NULL, 0) * 1024; @@ -2794,7 +2794,7 @@ void mainLoop(void) lvReset(); mempDisablePool(MEMPOOL_STAGE); mempDisablePool(MEMPOOL_7); - func0f1672f0(4); + filesReset(4); viBlack(true); pak0f116994(); @@ -3112,7 +3112,7 @@ glabel mainLoop /* e48c: 24040007 */ addiu $a0,$zero,0x7 /* e490: 0c004ab1 */ jal mempResetPool /* e494: 24040004 */ addiu $a0,$zero,0x4 -/* e498: 0fc58709 */ jal func0f1672f0 +/* e498: 0fc58709 */ jal filesReset /* e49c: 24040004 */ addiu $a0,$zero,0x4 /* e4a0: 3c057005 */ lui $a1,0x7005 /* e4a4: 24a55134 */ addiu $a1,$a1,0x5134 @@ -3392,7 +3392,7 @@ glabel mainLoop /* e880: 24040004 */ addiu $a0,$zero,0x4 /* e884: 0c004acc */ jal mempDisablePool /* e888: 24040007 */ addiu $a0,$zero,0x7 -/* e88c: 0fc58709 */ jal func0f1672f0 +/* e88c: 0fc58709 */ jal filesReset /* e890: 24040004 */ addiu $a0,$zero,0x4 /* e894: 0c00281a */ jal viBlack /* e898: 02e02025 */ or $a0,$s7,$zero diff --git a/src/lib/snd.c b/src/lib/snd.c index 58e323d94..8f9aa0dba 100644 --- a/src/lib/snd.c +++ b/src/lib/snd.c @@ -2541,7 +2541,7 @@ void sndStartMp3(s16 soundnum, s32 arg1, s32 arg2, s32 arg3) arg1 = arg1 * snd0000e9dc() / 0x7fff; g_SndCurMp3.romaddr = fileGetRomAddress(sp20.id); - g_SndCurMp3.romsize = fileGetRomSizeByFileNum(sp20.id); + g_SndCurMp3.romsize = fileGetRomSize(sp20.id); func00037f08(arg1, true); func00037f5c(arg2, true);