Decompile pakUpdateSize
This commit is contained in:
parent
98cb8e12d1
commit
4d9e274e91
3
ld/pd.ld
3
ld/pd.ld
|
|
@ -104,7 +104,6 @@ SECTIONS
|
|||
_val7f118a44 = 0x0801;
|
||||
_val7f11a650 = 0x0da5;
|
||||
_val7f11a6c8 = 0x0dae;
|
||||
_val7f11a88c = 0x0e16;
|
||||
_val7f11aa14 = 0x0e4d;
|
||||
_val7f11aae4 = 0x0e5b;
|
||||
_val7f11ad0c = 0x0efc;
|
||||
|
|
@ -118,7 +117,6 @@ SECTIONS
|
|||
_val7f118a44 = 0x0801;
|
||||
_val7f11a650 = 0x0d9e;
|
||||
_val7f11a6c8 = 0x0da7;
|
||||
_val7f11a88c = 0x0e0f;
|
||||
_val7f11aa14 = 0x0e46;
|
||||
_val7f11aae4 = 0x0e54;
|
||||
_val7f11ad0c = 0x0ef5;
|
||||
|
|
@ -132,7 +130,6 @@ SECTIONS
|
|||
_val7f118a44 = 0x07e0;
|
||||
_val7f11a650 = 0x0cda;
|
||||
_val7f11a6c8 = 0x0ce3;
|
||||
_val7f11a88c = 0x0d4b;
|
||||
_val7f11aa14 = 0x0d83;
|
||||
_val7f11aae4 = 0x0d91;
|
||||
_val7f11ad0c = 0x0e32;
|
||||
|
|
|
|||
|
|
@ -102,6 +102,8 @@
|
|||
* block - is a sequence of 0x10 bytes (for game pak) or 0x20 bytes (for controller paks).
|
||||
*/
|
||||
|
||||
#define NUM_PAGES 28
|
||||
|
||||
#define MAX_HEADERCACHE_ENTRIES 50
|
||||
|
||||
const char g_N64FontCodeMap[] = "\0************** 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#'*+,-./:=?@";
|
||||
|
|
@ -1525,7 +1527,7 @@ s32 pak0f118000(s8 device)
|
|||
|
||||
s32 pakGetNumPagesRequired(void)
|
||||
{
|
||||
return 28;
|
||||
return NUM_PAGES;
|
||||
}
|
||||
|
||||
s32 pak0f11807c(s8 device)
|
||||
|
|
@ -6527,168 +6529,43 @@ glabel pak0f11a574
|
|||
);
|
||||
#endif
|
||||
|
||||
void pakUpdateSize(s8 device)
|
||||
{
|
||||
u32 stack;
|
||||
OSPfsState note;
|
||||
s32 result;
|
||||
|
||||
#if VERSION >= VERSION_NTSC_1_0
|
||||
GLOBAL_ASM(
|
||||
glabel pak0f11a7dc
|
||||
/* f11a7dc: 27bdffb0 */ addiu $sp,$sp,-80
|
||||
/* f11a7e0: afb10018 */ sw $s1,0x18($sp)
|
||||
/* f11a7e4: 00048e00 */ sll $s1,$a0,0x18
|
||||
/* f11a7e8: 00117603 */ sra $t6,$s1,0x18
|
||||
/* f11a7ec: afbf001c */ sw $ra,0x1c($sp)
|
||||
/* f11a7f0: 01c08825 */ or $s1,$t6,$zero
|
||||
/* f11a7f4: afb00014 */ sw $s0,0x14($sp)
|
||||
/* f11a7f8: 0c00543a */ jal joyDisableCyclicPolling
|
||||
/* f11a7fc: afa40050 */ sw $a0,0x50($sp)
|
||||
/* f11a800: 24010004 */ addiu $at,$zero,0x4
|
||||
/* f11a804: 16210003 */ bne $s1,$at,.L0f11a814
|
||||
/* f11a808: 0011c880 */ sll $t9,$s1,0x2
|
||||
/* f11a80c: 10000009 */ beqz $zero,.L0f11a834
|
||||
/* f11a810: 00002025 */ or $a0,$zero,$zero
|
||||
.L0f11a814:
|
||||
/* f11a814: 00117880 */ sll $t7,$s1,0x2
|
||||
/* f11a818: 01f17823 */ subu $t7,$t7,$s1
|
||||
/* f11a81c: 000f7880 */ sll $t7,$t7,0x2
|
||||
/* f11a820: 01f17821 */ addu $t7,$t7,$s1
|
||||
/* f11a824: 3c18800a */ lui $t8,%hi(g_Pfses)
|
||||
/* f11a828: 27183180 */ addiu $t8,$t8,%lo(g_Pfses)
|
||||
/* f11a82c: 000f78c0 */ sll $t7,$t7,0x3
|
||||
/* f11a830: 01f82021 */ addu $a0,$t7,$t8
|
||||
.L0f11a834:
|
||||
/* f11a834: 0331c823 */ subu $t9,$t9,$s1
|
||||
/* f11a838: 0019c880 */ sll $t9,$t9,0x2
|
||||
/* f11a83c: 0331c823 */ subu $t9,$t9,$s1
|
||||
/* f11a840: 0019c880 */ sll $t9,$t9,0x2
|
||||
/* f11a844: 0331c821 */ addu $t9,$t9,$s1
|
||||
/* f11a848: 0019c880 */ sll $t9,$t9,0x2
|
||||
/* f11a84c: 0331c823 */ subu $t9,$t9,$s1
|
||||
/* f11a850: 3c08800a */ lui $t0,%hi(g_Paks)
|
||||
/* f11a854: 25082380 */ addiu $t0,$t0,%lo(g_Paks)
|
||||
/* f11a858: 0019c880 */ sll $t9,$t9,0x2
|
||||
/* f11a85c: 03288021 */ addu $s0,$t9,$t0
|
||||
/* f11a860: 8e05029c */ lw $a1,0x29c($s0)
|
||||
/* f11a864: 0fc45f39 */ jal pakFileState
|
||||
/* f11a868: 27a6002c */ addiu $a2,$sp,0x2c
|
||||
/* f11a86c: 0c005451 */ jal joyEnableCyclicPolling
|
||||
/* f11a870: afa20028 */ sw $v0,0x28($sp)
|
||||
/* f11a874: 00112e00 */ sll $a1,$s1,0x18
|
||||
/* f11a878: 00054e03 */ sra $t1,$a1,0x18
|
||||
/* f11a87c: 01202825 */ or $a1,$t1,$zero
|
||||
/* f11a880: 8fa40028 */ lw $a0,0x28($sp)
|
||||
/* f11a884: 24060001 */ addiu $a2,$zero,0x1
|
||||
/* f11a888: 0fc470e7 */ jal pakHandleResult
|
||||
/* f11a88c: 24070e0f */ addiu $a3,$zero,_val7f11a88c
|
||||
/* f11a890: 10400013 */ beqz $v0,.L0f11a8e0
|
||||
/* f11a894: 8faa002c */ lw $t2,0x2c($sp)
|
||||
/* f11a898: 00112600 */ sll $a0,$s1,0x18
|
||||
/* f11a89c: 00045e03 */ sra $t3,$a0,0x18
|
||||
/* f11a8a0: ae0a02a0 */ sw $t2,0x2a0($s0)
|
||||
/* f11a8a4: 0fc45974 */ jal pakGetBlockSize
|
||||
/* f11a8a8: 01602025 */ or $a0,$t3,$zero
|
||||
/* f11a8ac: 8e0302a0 */ lw $v1,0x2a0($s0)
|
||||
/* f11a8b0: 24011c00 */ addiu $at,$zero,0x1c00
|
||||
/* f11a8b4: 0062001b */ divu $zero,$v1,$v0
|
||||
/* f11a8b8: 00006012 */ mflo $t4
|
||||
/* f11a8bc: 00036a02 */ srl $t5,$v1,0x8
|
||||
/* f11a8c0: ae0c02a4 */ sw $t4,0x2a4($s0)
|
||||
/* f11a8c4: 0061001b */ divu $zero,$v1,$at
|
||||
/* f11a8c8: 00007012 */ mflo $t6
|
||||
/* f11a8cc: ae0d02a8 */ sw $t5,0x2a8($s0)
|
||||
/* f11a8d0: 14400002 */ bnez $v0,.L0f11a8dc
|
||||
/* f11a8d4: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f11a8d8: 0007000d */ break 0x7
|
||||
.L0f11a8dc:
|
||||
/* f11a8dc: a20e02bc */ sb $t6,0x2bc($s0)
|
||||
.L0f11a8e0:
|
||||
/* f11a8e0: 8fbf001c */ lw $ra,0x1c($sp)
|
||||
/* f11a8e4: 8fb00014 */ lw $s0,0x14($sp)
|
||||
/* f11a8e8: 8fb10018 */ lw $s1,0x18($sp)
|
||||
/* f11a8ec: 03e00008 */ jr $ra
|
||||
/* f11a8f0: 27bd0050 */ addiu $sp,$sp,0x50
|
||||
);
|
||||
joyDisableCyclicPolling();
|
||||
#else
|
||||
GLOBAL_ASM(
|
||||
glabel pak0f11a7dc
|
||||
/* f114690: 27bdffb0 */ addiu $sp,$sp,-80
|
||||
/* f114694: afb10018 */ sw $s1,0x18($sp)
|
||||
/* f114698: 00048e00 */ sll $s1,$a0,0x18
|
||||
/* f11469c: 00117603 */ sra $t6,$s1,0x18
|
||||
/* f1146a0: afbf001c */ sw $ra,0x1c($sp)
|
||||
/* f1146a4: afa40050 */ sw $a0,0x50($sp)
|
||||
/* f1146a8: 3c057f1b */ lui $a1,0x7f1b
|
||||
/* f1146ac: 01c08825 */ or $s1,$t6,$zero
|
||||
/* f1146b0: afb00014 */ sw $s0,0x14($sp)
|
||||
/* f1146b4: 24a5e304 */ addiu $a1,$a1,-7420
|
||||
/* f1146b8: 0c00581b */ jal joyDisableCyclicPolling
|
||||
/* f1146bc: 24040caa */ addiu $a0,$zero,0xcaa
|
||||
/* f1146c0: 24010004 */ addiu $at,$zero,0x4
|
||||
/* f1146c4: 16210003 */ bne $s1,$at,.NB0f1146d4
|
||||
/* f1146c8: 0011c880 */ sll $t9,$s1,0x2
|
||||
/* f1146cc: 10000009 */ beqz $zero,.NB0f1146f4
|
||||
/* f1146d0: 00002025 */ or $a0,$zero,$zero
|
||||
.NB0f1146d4:
|
||||
/* f1146d4: 00117880 */ sll $t7,$s1,0x2
|
||||
/* f1146d8: 01f17823 */ subu $t7,$t7,$s1
|
||||
/* f1146dc: 000f7880 */ sll $t7,$t7,0x2
|
||||
/* f1146e0: 01f17821 */ addu $t7,$t7,$s1
|
||||
/* f1146e4: 3c18800a */ lui $t8,0x800a
|
||||
/* f1146e8: 27187658 */ addiu $t8,$t8,0x7658
|
||||
/* f1146ec: 000f78c0 */ sll $t7,$t7,0x3
|
||||
/* f1146f0: 01f82021 */ addu $a0,$t7,$t8
|
||||
.NB0f1146f4:
|
||||
/* f1146f4: 0331c823 */ subu $t9,$t9,$s1
|
||||
/* f1146f8: 0019c880 */ sll $t9,$t9,0x2
|
||||
/* f1146fc: 0331c823 */ subu $t9,$t9,$s1
|
||||
/* f114700: 0019c8c0 */ sll $t9,$t9,0x3
|
||||
/* f114704: 0331c821 */ addu $t9,$t9,$s1
|
||||
/* f114708: 3c08800a */ lui $t0,0x800a
|
||||
/* f11470c: 25086870 */ addiu $t0,$t0,0x6870
|
||||
/* f114710: 0019c8c0 */ sll $t9,$t9,0x3
|
||||
/* f114714: 03288021 */ addu $s0,$t9,$t0
|
||||
/* f114718: 8e05029c */ lw $a1,0x29c($s0)
|
||||
/* f11471c: 0fc4481a */ jal pakFileState
|
||||
/* f114720: 27a6002c */ addiu $a2,$sp,0x2c
|
||||
/* f114724: 3c057f1b */ lui $a1,0x7f1b
|
||||
/* f114728: afa20028 */ sw $v0,0x28($sp)
|
||||
/* f11472c: 24a5e30c */ addiu $a1,$a1,-7412
|
||||
/* f114730: 0c005834 */ jal joyEnableCyclicPolling
|
||||
/* f114734: 24040cac */ addiu $a0,$zero,0xcac
|
||||
/* f114738: 00112e00 */ sll $a1,$s1,0x18
|
||||
/* f11473c: 00054e03 */ sra $t1,$a1,0x18
|
||||
/* f114740: 01202825 */ or $a1,$t1,$zero
|
||||
/* f114744: 8fa40028 */ lw $a0,0x28($sp)
|
||||
/* f114748: 24060001 */ addiu $a2,$zero,0x1
|
||||
/* f11474c: 0fc458cb */ jal pakHandleResult
|
||||
/* f114750: 24070cae */ addiu $a3,$zero,0xcae
|
||||
/* f114754: 10400013 */ beqz $v0,.NB0f1147a4
|
||||
/* f114758: 8faa002c */ lw $t2,0x2c($sp)
|
||||
/* f11475c: 00112600 */ sll $a0,$s1,0x18
|
||||
/* f114760: 00045e03 */ sra $t3,$a0,0x18
|
||||
/* f114764: ae0a02a0 */ sw $t2,0x2a0($s0)
|
||||
/* f114768: 0fc4428c */ jal pakGetBlockSize
|
||||
/* f11476c: 01602025 */ or $a0,$t3,$zero
|
||||
/* f114770: 8e0302a0 */ lw $v1,0x2a0($s0)
|
||||
/* f114774: 24011c00 */ addiu $at,$zero,0x1c00
|
||||
/* f114778: 0062001b */ divu $zero,$v1,$v0
|
||||
/* f11477c: 00006012 */ mflo $t4
|
||||
/* f114780: 00036a02 */ srl $t5,$v1,0x8
|
||||
/* f114784: ae0c02a4 */ sw $t4,0x2a4($s0)
|
||||
/* f114788: 0061001b */ divu $zero,$v1,$at
|
||||
/* f11478c: 00007012 */ mflo $t6
|
||||
/* f114790: ae0d02a8 */ sw $t5,0x2a8($s0)
|
||||
/* f114794: 14400002 */ bnez $v0,.NB0f1147a0
|
||||
/* f114798: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f11479c: 0007000d */ break 0x7
|
||||
.NB0f1147a0:
|
||||
/* f1147a0: a20e02bc */ sb $t6,0x2bc($s0)
|
||||
.NB0f1147a4:
|
||||
/* f1147a4: 8fbf001c */ lw $ra,0x1c($sp)
|
||||
/* f1147a8: 8fb00014 */ lw $s0,0x14($sp)
|
||||
/* f1147ac: 8fb10018 */ lw $s1,0x18($sp)
|
||||
/* f1147b0: 03e00008 */ jr $ra
|
||||
/* f1147b4: 27bd0050 */ addiu $sp,$sp,0x50
|
||||
);
|
||||
joyDisableCyclicPolling(3242, "pak.c");
|
||||
#endif
|
||||
|
||||
result = pakFileState(PFS(device), g_Paks[device].noteindex, ¬e);
|
||||
|
||||
#if VERSION >= VERSION_NTSC_1_0
|
||||
joyEnableCyclicPolling();
|
||||
#else
|
||||
joyEnableCyclicPolling(3244, "pak.c");
|
||||
#endif
|
||||
|
||||
#if VERSION >= VERSION_PAL_FINAL
|
||||
if (pakHandleResult(result, device, 1, 3606))
|
||||
#elif VERSION >= VERSION_NTSC_FINAL
|
||||
if (pakHandleResult(result, device, 1, 3599))
|
||||
#elif VERSION >= VERSION_NTSC_1_0
|
||||
if (pakHandleResult(result, device, 1, 3403))
|
||||
#else
|
||||
if (pakHandleResult(result, device, 1, 3246))
|
||||
#endif
|
||||
{
|
||||
g_Paks[device].numbytes = note.file_size;
|
||||
g_Paks[device].numblocks = g_Paks[device].numbytes / pakGetBlockSize(device);
|
||||
g_Paks[device].numpages = g_Paks[device].numbytes / 256;
|
||||
g_Paks[device].numnotes = g_Paks[device].numbytes / (256 * NUM_PAGES);
|
||||
}
|
||||
}
|
||||
|
||||
#if VERSION < VERSION_NTSC_1_0
|
||||
GLOBAL_ASM(
|
||||
glabel pak0f1147b8nb
|
||||
|
|
@ -6915,7 +6792,7 @@ glabel pak0f11a8f4
|
|||
/* f11ab0c: 01802025 */ or $a0,$t4,$zero
|
||||
/* f11ab10: 00112600 */ sll $a0,$s1,0x18
|
||||
/* f11ab14: 00046e03 */ sra $t5,$a0,0x18
|
||||
/* f11ab18: 0fc469f7 */ jal pak0f11a7dc
|
||||
/* f11ab18: 0fc469f7 */ jal pakUpdateSize
|
||||
/* f11ab1c: 01a02025 */ or $a0,$t5,$zero
|
||||
/* f11ab20: 920e02b8 */ lbu $t6,0x2b8($s0)
|
||||
/* f11ab24: 2418000b */ addiu $t8,$zero,0xb
|
||||
|
|
@ -7165,7 +7042,7 @@ glabel pak0f11a8f4
|
|||
/* f11a88c: 01802025 */ or $a0,$t4,$zero
|
||||
/* f11a890: 00112600 */ sll $a0,$s1,0x18
|
||||
/* f11a894: 00046e03 */ sra $t5,$a0,0x18
|
||||
/* f11a898: 0fc46957 */ jal pak0f11a7dc
|
||||
/* f11a898: 0fc46957 */ jal pakUpdateSize
|
||||
/* f11a89c: 01a02025 */ or $a0,$t5,$zero
|
||||
/* f11a8a0: 920e02b8 */ lbu $t6,0x2b8($s0)
|
||||
/* f11a8a4: 2418000b */ addiu $t8,$zero,0xb
|
||||
|
|
@ -7416,7 +7293,7 @@ glabel pak0f11a8f4
|
|||
/* f114ae4: 01602025 */ or $a0,$t3,$zero
|
||||
/* f114ae8: 00112600 */ sll $a0,$s1,0x18
|
||||
/* f114aec: 00046603 */ sra $t4,$a0,0x18
|
||||
/* f114af0: 0fc451a4 */ jal pak0f11a7dc
|
||||
/* f114af0: 0fc451a4 */ jal pakUpdateSize
|
||||
/* f114af4: 01802025 */ or $a0,$t4,$zero
|
||||
/* f114af8: 240d000b */ addiu $t5,$zero,0xb
|
||||
/* f114afc: a20002be */ sb $zero,0x2be($s0)
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ void pak0f11a32c(s8 device, u8 arg1, u32 line, char *file);
|
|||
void pakInit(s8 arg0);
|
||||
s32 pakReadWriteBlock(s8 device, OSPfs *pfs, s32 file_no, u8 flag, u32 address, u32 len, u8 *buffer);
|
||||
s32 pak0f11a574(s8 device);
|
||||
u32 pak0f11a7dc(void);
|
||||
void pakUpdateSize(s8 device);
|
||||
u32 pak0f11a8f4(void);
|
||||
u32 pak0f11ac7c(void);
|
||||
void pakWipe(s8 device, u32 start, u32 end);
|
||||
|
|
|
|||
|
|
@ -5071,7 +5071,7 @@ struct pak {
|
|||
/*0x2b9*/ u8 unk2b9;
|
||||
/*0x2ba*/ u8 unk2ba;
|
||||
/*0x2bb*/ u8 unk2bb;
|
||||
/*0x2bc*/ u8 unk2bc;
|
||||
/*0x2bc*/ u8 numnotes;
|
||||
/*0x2bd*/ u8 unk2bd;
|
||||
/*0x2be*/ u8 headercachecount;
|
||||
/*0x2c0*/ struct pakheadercache *headercache;
|
||||
|
|
|
|||
Loading…
Reference in New Issue