diff --git a/src/game/game_092610.c b/src/game/game_092610.c index 3b5aeb7b9..a471e1d07 100644 --- a/src/game/game_092610.c +++ b/src/game/game_092610.c @@ -3340,7 +3340,7 @@ glabel func0f095278 /* f0952d8: 5100000d */ beqzl $t0,.L0f095310 /* f0952dc: 2402ffff */ addiu $v0,$zero,-1 /* f0952e0: 84620026 */ lh $v0,0x26($v1) -/* f0952e4: 0fc59b9f */ jal func0f166e7c +/* f0952e4: 0fc59b9f */ jal fileGetRomSizeByFileNum /* f0952e8: 304407ff */ andi $a0,$v0,0x7ff /* f0952ec: 00024900 */ sll $t1,$v0,0x4 /* f0952f0: 01224823 */ subu $t1,$t1,$v0 diff --git a/src/game/game_166e40.c b/src/game/game_166e40.c index 6b4e08102..664260043 100644 --- a/src/game/game_166e40.c +++ b/src/game/game_166e40.c @@ -41,12 +41,12 @@ glabel func0f166e40 /* f166e50: 8c422060 */ lw $v0,%lo(filetable)($v0) ); -u32 func0f166e54(struct fileinfo *info) +u32 fileGetRomSizeByTableAddress(u32 *filetableaddr) { u32 difference; - if (info->unk04) { - difference = info->unk04 - info->size; + if (filetableaddr[1]) { + difference = filetableaddr[1] - filetableaddr[0]; } else { difference = 0; } @@ -54,20 +54,10 @@ u32 func0f166e54(struct fileinfo *info) return difference; } -GLOBAL_ASM( -glabel func0f166e7c -/* f166e7c: 27bdffe8 */ addiu $sp,$sp,-24 -/* f166e80: 3c0f8008 */ lui $t7,%hi(filetable) -/* f166e84: afbf0014 */ sw $ra,0x14($sp) -/* f166e88: 25ef2060 */ addiu $t7,$t7,%lo(filetable) -/* f166e8c: 00047080 */ sll $t6,$a0,0x2 -/* f166e90: 0fc59b95 */ jal func0f166e54 -/* f166e94: 01cf2021 */ addu $a0,$t6,$t7 -/* f166e98: 8fbf0014 */ lw $ra,0x14($sp) -/* f166e9c: 27bd0018 */ addiu $sp,$sp,0x18 -/* f166ea0: 03e00008 */ jr $ra -/* f166ea4: 00000000 */ nop -); +u32 fileGetRomSizeByFileNum(s32 filenum) +{ + return fileGetRomSizeByTableAddress((u32 *)&filetable[filenum]); +} GLOBAL_ASM( glabel func0f166ea8 @@ -84,7 +74,7 @@ glabel func0f166eb4 /* f166ec0: afa51434 */ sw $a1,0x1434($sp) /* f166ec4: afa61438 */ sw $a2,0x1438($sp) /* f166ec8: afa7143c */ sw $a3,0x143c($sp) -/* f166ecc: 0fc59b95 */ jal func0f166e54 +/* f166ecc: 0fc59b95 */ jal fileGetRomSizeByTableAddress /* f166ed0: 00c02025 */ or $a0,$a2,$zero /* f166ed4: 8fa41434 */ lw $a0,0x1434($sp) /* f166ed8: 8fa71430 */ lw $a3,0x1430($sp) @@ -153,7 +143,7 @@ glabel func0f166f74 /* f166fb0: 00107880 */ sll $t7,$s0,0x2 /* f166fb4: ac400000 */ sw $zero,0x0($v0) /* f166fb8: ac400004 */ sw $zero,0x4($v0) -/* f166fbc: 0fc59b95 */ jal func0f166e54 +/* f166fbc: 0fc59b95 */ jal fileGetRomSizeByTableAddress /* f166fc0: 024f2021 */ addu $a0,$s2,$t7 /* f166fc4: 26100001 */ addiu $s0,$s0,0x1 /* f166fc8: 5614fff8 */ bnel $s0,$s4,.L0f166fac @@ -181,7 +171,7 @@ glabel func0f166ff0 /* f167010: afa5002c */ sw $a1,0x2c($sp) /* f167014: afa60030 */ sw $a2,0x30($sp) /* f167018: afa70034 */ sw $a3,0x34($sp) -/* f16701c: 0fc59b95 */ jal func0f166e54 +/* f16701c: 0fc59b95 */ jal fileGetRomSizeByTableAddress /* f167020: afa4001c */ sw $a0,0x1c($sp) /* f167024: 10400007 */ beqz $v0,.L0f167044 /* f167028: 8fb9001c */ lw $t9,0x1c($sp) diff --git a/src/include/game/game_166e40.h b/src/include/game/game_166e40.h index 96b61867d..e8480168a 100644 --- a/src/include/game/game_166e40.h +++ b/src/include/game/game_166e40.h @@ -4,8 +4,8 @@ #include "types.h" u32 func0f166e40(void); -u32 func0f166e54(struct fileinfo *info); -u32 func0f166e7c(void); +u32 fileGetRomSizeByTableAddress(u32 *filetableaddr); +u32 fileGetRomSizeByFileNum(s32 filenum); u32 func0f166ea8(void); void func0f166eb4(void *ptr, u32 len, void *table, struct fileinfo *info); u32 func0f166f74(void); diff --git a/src/include/types.h b/src/include/types.h index 2c8e2194d..6bbf6647b 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -5868,7 +5868,7 @@ struct var800aabb8 { struct fileinfo { u32 size; - u32 unk04; // also some kind of size + u32 unk04; }; struct portalcmd { diff --git a/src/lib/lib_0e9d0.c b/src/lib/lib_0e9d0.c index 36d2daad5..3c17dd767 100644 --- a/src/lib/lib_0e9d0.c +++ b/src/lib/lib_0e9d0.c @@ -2622,7 +2622,7 @@ glabel func00010ae4 /* 10cb8: 97a40020 */ lhu $a0,0x20($sp) /* 10cbc: ae02001c */ sw $v0,0x1c($s0) /* 10cc0: 308d07ff */ andi $t5,$a0,0x7ff -/* 10cc4: 0fc59b9f */ jal func0f166e7c +/* 10cc4: 0fc59b9f */ jal fileGetRomSizeByFileNum /* 10cc8: 01a02025 */ or $a0,$t5,$zero /* 10ccc: ae020020 */ sw $v0,0x20($s0) /* 10cd0: 8fa4002c */ lw $a0,0x2c($sp)