diff --git a/Makefile b/Makefile index 5fb903c76..2f6eb32fc 100644 --- a/Makefile +++ b/Makefile @@ -72,6 +72,7 @@ $(B_DIR)/lib/ultra/io/contramwrite.o: LOOPUNROLL := $(B_DIR)/lib/ultra/io/pfschecker.o: LOOPUNROLL := $(B_DIR)/lib/ultra/io/pfsfreeblocks.o: LOOPUNROLL := $(B_DIR)/lib/ultra/io/pfsgetstatus.o: LOOPUNROLL := +$(B_DIR)/lib/lib_4f5e0.o: LOOPUNROLL := $(B_DIR)/lib/ultra/libc/ll.o: MIPSISET := -mips3 -o32 $(B_DIR)/lib/ultra/libc/llcvt.o: MIPSISET := -mips3 -32 diff --git a/src/include/lib/lib_4f5e0.h b/src/include/lib/lib_4f5e0.h index 1039dfa90..48130dc07 100644 --- a/src/include/lib/lib_4f5e0.h +++ b/src/include/lib/lib_4f5e0.h @@ -4,7 +4,7 @@ #include "data.h" #include "types.h" -void func0004f5e0(OSPfs *pfs, u32 arg1); +s32 osMotorAccess(OSPfs *pfs, u32 vibrate); u32 func0004f748(void); bool func0004f854(OSMesgQueue *mq, OSPfs *pfs, s32 arg2); u32 func0004f9b0(void); diff --git a/src/lib/joy.c b/src/lib/joy.c index 438146e25..ade1b56dd 100644 --- a/src/lib/joy.c +++ b/src/lib/joy.c @@ -1313,9 +1313,9 @@ void joy0001519c(void) for (i = 0; i < 4; i++) { if (!func0004f854(&var80099e78, PFS(i), i)) { - func0004f5e0(PFS(i), 0); - func0004f5e0(PFS(i), 0); - func0004f5e0(PFS(i), 0); + osMotorAccess(PFS(i), 0); + osMotorAccess(PFS(i), 0); + osMotorAccess(PFS(i), 0); } } } @@ -1352,9 +1352,9 @@ void joy000153c4(s8 arg0, s32 arg1) } if (func0004f854(&var80099e78, PFS(arg0), arg0) == 0) { - func0004f5e0(PFS(arg0), 0); - func0004f5e0(PFS(arg0), 0); - func0004f5e0(PFS(arg0), 0); + osMotorAccess(PFS(arg0), 0); + osMotorAccess(PFS(arg0), 0); + osMotorAccess(PFS(arg0), 0); } if (arg1) { @@ -1449,7 +1449,7 @@ glabel joy000153c4 /* 163b8: 018d3821 */ addu $a3,$t4,$t5 .NB000163bc: /* 163bc: 00e02025 */ or $a0,$a3,$zero -/* 163c0: 0c014370 */ jal func0004f5e0 +/* 163c0: 0c014370 */ jal osMotorAccess /* 163c4: afa60024 */ sw $a2,0x24($sp) /* 163c8: 8fa60024 */ lw $a2,0x24($sp) /* 163cc: 24010004 */ addiu $at,$zero,0x4 @@ -1468,7 +1468,7 @@ glabel joy000153c4 /* 163fc: 01cf3821 */ addu $a3,$t6,$t7 .NB00016400: /* 16400: 00e02025 */ or $a0,$a3,$zero -/* 16404: 0c014370 */ jal func0004f5e0 +/* 16404: 0c014370 */ jal osMotorAccess /* 16408: afa60024 */ sw $a2,0x24($sp) /* 1640c: 8fa60024 */ lw $a2,0x24($sp) /* 16410: 24010004 */ addiu $at,$zero,0x4 @@ -1486,7 +1486,7 @@ glabel joy000153c4 /* 1643c: 0018c0c0 */ sll $t8,$t8,0x3 /* 16440: 03193821 */ addu $a3,$t8,$t9 .NB00016444: -/* 16444: 0c014370 */ jal func0004f5e0 +/* 16444: 0c014370 */ jal osMotorAccess /* 16448: 00e02025 */ or $a0,$a3,$zero .NB0001644c: /* 1644c: 8fa8002c */ lw $t0,0x2c($sp) @@ -1538,14 +1538,14 @@ void joy0001561c(void) switch (var800a2380[i].unk004) { case 3: var800a2380[i].unk004 = 4; - func0004f5e0(PFS(i), 1); + osMotorAccess(PFS(i), 1); break; case 4: if (var800a2380[i].unk284 != -1) { if (var800a2380[i].unk28c == 0) { - func0004f5e0(PFS(i), 1); + osMotorAccess(PFS(i), 1); } else if (var800a2380[i].unk284 == var800a2380[i].unk28c) { - func0004f5e0(PFS(i), 0); + osMotorAccess(PFS(i), 0); } var800a2380[i].unk28c++; @@ -1563,10 +1563,10 @@ void joy0001561c(void) break; case 5: var800a2380[i].unk004 = 2; - func0004f5e0(PFS(i), 0); + osMotorAccess(PFS(i), 0); break; case 6: - func0004f5e0(PFS(i), 0); + osMotorAccess(PFS(i), 0); var800a2380[i].unk004 = 7; break; case 8: diff --git a/src/lib/lib_4f5e0.c b/src/lib/lib_4f5e0.c index 51b2ce65e..981a10653 100644 --- a/src/lib/lib_4f5e0.c +++ b/src/lib/lib_4f5e0.c @@ -6,74 +6,8 @@ #include "data.h" #include "types.h" -u32 var8009c970; -u32 var8009c974; -u32 var8009c978; -u32 var8009c97c; -u32 var8009c980; -u32 var8009c984; -u32 var8009c988; -u32 var8009c98c; -u32 var8009c990; -u32 var8009c994; -u32 var8009c998; -u32 var8009c99c; -u32 var8009c9a0; -u32 var8009c9a4; -u32 var8009c9a8; -u32 var8009c9ac; -u32 var8009c9b0; -u32 var8009c9b4; -u32 var8009c9b8; -u32 var8009c9bc; -u32 var8009c9c0; -u32 var8009c9c4; -u32 var8009c9c8; -u32 var8009c9cc; -u32 var8009c9d0; -u32 var8009c9d4; -u32 var8009c9d8; -u32 var8009c9dc; -u32 var8009c9e0; -u32 var8009c9e4; -u32 var8009c9e8; -u32 var8009c9ec; -u32 var8009c9f0; -u32 var8009c9f4; -u32 var8009c9f8; -u32 var8009c9fc; -u32 var8009ca00; -u32 var8009ca04; -u32 var8009ca08; -u32 var8009ca0c; -u32 var8009ca10; -u32 var8009ca14; -u32 var8009ca18; -u32 var8009ca1c; -u32 var8009ca20; -u32 var8009ca24; -u32 var8009ca28; -u32 var8009ca2c; -u32 var8009ca30; -u32 var8009ca34; -u32 var8009ca38; -u32 var8009ca3c; -u32 var8009ca40; -u32 var8009ca44; -u32 var8009ca48; -u32 var8009ca4c; -u32 var8009ca50; -u32 var8009ca54; -u32 var8009ca58; -u32 var8009ca5c; -u32 var8009ca60; -u32 var8009ca64; -u32 var8009ca68; -u32 var8009ca6c; +OSPifRam osPifBuffers[MAXCONTROLLERS]; u32 var8009ca70; -u32 var8009ca74; -u32 var8009ca78; -u32 var8009ca7c; u32 var800609f0 = 0x00000032; u32 var800609f4 = 0x00640096; @@ -590,104 +524,48 @@ u32 var800611ec = 0x7ffe7fff; const u32 var70059fd0[] = {0x3c8efa35}; -GLOBAL_ASM( -glabel func0004f5e0 -/* 4f5e0: 27bdffd0 */ addiu $sp,$sp,-48 -/* 4f5e4: afbf001c */ sw $ra,0x1c($sp) -/* 4f5e8: afb00018 */ sw $s0,0x18($sp) -/* 4f5ec: 8c8e0008 */ lw $t6,0x8($a0) -/* 4f5f0: 8c990000 */ lw $t9,0x0($a0) -/* 4f5f4: 3c18800a */ lui $t8,%hi(var8009c970) -/* 4f5f8: 2718c970 */ addiu $t8,$t8,%lo(var8009c970) -/* 4f5fc: 000e7980 */ sll $t7,$t6,0x6 -/* 4f600: 33290008 */ andi $t1,$t9,0x8 -/* 4f604: 00808025 */ or $s0,$a0,$zero -/* 4f608: 00a03825 */ or $a3,$a1,$zero -/* 4f60c: 15200003 */ bnez $t1,.L0004f61c -/* 4f610: 01f84021 */ addu $t0,$t7,$t8 -/* 4f614: 10000047 */ b .L0004f734 -/* 4f618: 24020005 */ addiu $v0,$zero,0x5 -.L0004f61c: -/* 4f61c: afa70034 */ sw $a3,0x34($sp) -/* 4f620: 0c012a18 */ jal __osSiGetAccess -/* 4f624: afa80024 */ sw $t0,0x24($sp) -/* 4f628: 8e0b0008 */ lw $t3,0x8($s0) -/* 4f62c: 3c06800a */ lui $a2,%hi(var8009c970) -/* 4f630: 24c6c970 */ addiu $a2,$a2,%lo(var8009c970) -/* 4f634: 000b6180 */ sll $t4,$t3,0x6 -/* 4f638: 00cc6821 */ addu $t5,$a2,$t4 -/* 4f63c: 240a0001 */ addiu $t2,$zero,0x1 -/* 4f640: adaa003c */ sw $t2,0x3c($t5) -/* 4f644: 8fa80024 */ lw $t0,0x24($sp) -/* 4f648: 8e0e0008 */ lw $t6,0x8($s0) -/* 4f64c: 8fa70034 */ lw $a3,0x34($sp) -/* 4f650: 00001825 */ or $v1,$zero,$zero -/* 4f654: 010e4021 */ addu $t0,$t0,$t6 -/* 4f658: 01001025 */ or $v0,$t0,$zero -/* 4f65c: 24040020 */ addiu $a0,$zero,0x20 -.L0004f660: -/* 4f660: 24630004 */ addiu $v1,$v1,0x4 -/* 4f664: a0470007 */ sb $a3,0x7($v0) -/* 4f668: a0470008 */ sb $a3,0x8($v0) -/* 4f66c: a0470009 */ sb $a3,0x9($v0) -/* 4f670: 24420004 */ addiu $v0,$v0,0x4 -/* 4f674: 1464fffa */ bne $v1,$a0,.L0004f660 -/* 4f678: a0470002 */ sb $a3,0x2($v0) -/* 4f67c: 240f00fe */ addiu $t7,$zero,0xfe -/* 4f680: 3c01800a */ lui $at,%hi(__osContLastCmd) -/* 4f684: a02fc820 */ sb $t7,%lo(__osContLastCmd)($at) -/* 4f688: 8e180008 */ lw $t8,0x8($s0) -/* 4f68c: afa80024 */ sw $t0,0x24($sp) -/* 4f690: afa70034 */ sw $a3,0x34($sp) -/* 4f694: 0018c980 */ sll $t9,$t8,0x6 -/* 4f698: 00d92821 */ addu $a1,$a2,$t9 -/* 4f69c: 0c012a34 */ jal __osSiRawStartDma -/* 4f6a0: 24040001 */ addiu $a0,$zero,0x1 -/* 4f6a4: 8e040004 */ lw $a0,0x4($s0) -/* 4f6a8: 00002825 */ or $a1,$zero,$zero -/* 4f6ac: 0c0121bc */ jal osRecvMesg -/* 4f6b0: 24060001 */ addiu $a2,$zero,0x1 -/* 4f6b4: 8e090008 */ lw $t1,0x8($s0) -/* 4f6b8: 3c0c800a */ lui $t4,%hi(var8009c970) -/* 4f6bc: 258cc970 */ addiu $t4,$t4,%lo(var8009c970) -/* 4f6c0: 00095980 */ sll $t3,$t1,0x6 -/* 4f6c4: 016c2821 */ addu $a1,$t3,$t4 -/* 4f6c8: 0c012a34 */ jal __osSiRawStartDma -/* 4f6cc: 00002025 */ or $a0,$zero,$zero -/* 4f6d0: 8e040004 */ lw $a0,0x4($s0) -/* 4f6d4: 00002825 */ or $a1,$zero,$zero -/* 4f6d8: 0c0121bc */ jal osRecvMesg -/* 4f6dc: 24060001 */ addiu $a2,$zero,0x1 -/* 4f6e0: 8fa80024 */ lw $t0,0x24($sp) -/* 4f6e4: 8fa70034 */ lw $a3,0x34($sp) -/* 4f6e8: 91100002 */ lbu $s0,0x2($t0) -/* 4f6ec: 320a00c0 */ andi $t2,$s0,0xc0 -/* 4f6f0: 1540000d */ bnez $t2,.L0004f728 -/* 4f6f4: 01408025 */ or $s0,$t2,$zero -/* 4f6f8: 54e00007 */ bnezl $a3,.L0004f718 -/* 4f6fc: 910e0026 */ lbu $t6,0x26($t0) -/* 4f700: 910d0026 */ lbu $t5,0x26($t0) -/* 4f704: 11a00008 */ beqz $t5,.L0004f728 -/* 4f708: 00000000 */ nop -/* 4f70c: 10000006 */ b .L0004f728 -/* 4f710: 24100004 */ addiu $s0,$zero,0x4 -/* 4f714: 910e0026 */ lbu $t6,0x26($t0) -.L0004f718: -/* 4f718: 240100eb */ addiu $at,$zero,0xeb -/* 4f71c: 11c10002 */ beq $t6,$at,.L0004f728 -/* 4f720: 00000000 */ nop -/* 4f724: 24100004 */ addiu $s0,$zero,0x4 -.L0004f728: -/* 4f728: 0c012a29 */ jal __osSiRelAccess -/* 4f72c: 00000000 */ nop -/* 4f730: 02001025 */ or $v0,$s0,$zero -.L0004f734: -/* 4f734: 8fbf001c */ lw $ra,0x1c($sp) -/* 4f738: 8fb00018 */ lw $s0,0x18($sp) -/* 4f73c: 27bd0030 */ addiu $sp,$sp,0x30 -/* 4f740: 03e00008 */ jr $ra -/* 4f744: 00000000 */ nop -); +s32 osMotorAccess(OSPfs *pfs, u32 vibrate) +{ + s32 i; + s32 ret; + u8* buf = (u8*)&osPifBuffers[pfs->channel]; + + if (!(pfs->status & 8)) { + return 5; + } + + __osSiGetAccess(); + osPifBuffers[pfs->channel].pifstatus = 1; + buf += pfs->channel; + + for (i = 0; i < BLOCKSIZE; i++) { + ((__OSContRamReadFormat*)buf)->data[i] = vibrate; + } + + __osContLastCmd = CONT_CMD_END; + __osSiRawStartDma(OS_WRITE, &osPifBuffers[pfs->channel]); + osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK); + __osSiRawStartDma(OS_READ, &osPifBuffers[pfs->channel]); + osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK); + + ret = ((__OSContRamReadFormat*)buf)->rxsize & 0xc0; + + if (!ret) { + if (!vibrate) { + if (((__OSContRamReadFormat*)buf)->datacrc != 0) { + ret = PFS_ERR_CONTRFAIL; + } + } else { + if (((__OSContRamReadFormat*)buf)->datacrc != 0xeb) { + ret = PFS_ERR_CONTRFAIL; + } + } + } + + __osSiRelAccess(); + + return ret; +} GLOBAL_ASM( glabel func0004f748 @@ -848,11 +726,11 @@ glabel func0004f854 /* 4f96c: 8e090000 */ lw $t1,0x0($s0) .L0004f970: /* 4f970: 8fa40050 */ lw $a0,0x50($sp) -/* 4f974: 3c0d800a */ lui $t5,%hi(var8009c970) +/* 4f974: 3c0d800a */ lui $t5,%hi(osPifBuffers) /* 4f978: 312a0008 */ andi $t2,$t1,0x8 /* 4f97c: 15400004 */ bnez $t2,.L0004f990 /* 4f980: 00046180 */ sll $t4,$a0,0x6 -/* 4f984: 25adc970 */ addiu $t5,$t5,%lo(var8009c970) +/* 4f984: 25adc970 */ addiu $t5,$t5,%lo(osPifBuffers) /* 4f988: 0c013dd2 */ jal func0004f748 /* 4f98c: 018d2821 */ addu $a1,$t4,$t5 .L0004f990: diff --git a/src/lib/ultra/io/pfsfindfile.c b/src/lib/ultra/io/pfsfindfile.c index 217afa816..391e61319 100644 --- a/src/lib/ultra/io/pfsfindfile.c +++ b/src/lib/ultra/io/pfsfindfile.c @@ -5,138 +5,6 @@ #include "data.h" #include "types.h" -//GLOBAL_ASM( -//glabel osPfsFindFile -///* 4cc10: 27bdff88 */ addiu $sp,$sp,-120 -///* 4cc14: afbf003c */ sw $ra,0x3c($sp) -///* 4cc18: afbe0038 */ sw $s8,0x38($sp) -///* 4cc1c: afb70034 */ sw $s7,0x34($sp) -///* 4cc20: afb60030 */ sw $s6,0x30($sp) -///* 4cc24: afb5002c */ sw $s5,0x2c($sp) -///* 4cc28: afb40028 */ sw $s4,0x28($sp) -///* 4cc2c: afb30024 */ sw $s3,0x24($sp) -///* 4cc30: afb20020 */ sw $s2,0x20($sp) -///* 4cc34: afb1001c */ sw $s1,0x1c($sp) -///* 4cc38: afb00018 */ sw $s0,0x18($sp) -///* 4cc3c: afa5007c */ sw $a1,0x7c($sp) -///* 4cc40: 8c8e0000 */ lw $t6,0x0($a0) -///* 4cc44: 00809025 */ or $s2,$a0,$zero -///* 4cc48: 00e0a825 */ or $s5,$a3,$zero -///* 4cc4c: 31cf0001 */ andi $t7,$t6,0x1 -///* 4cc50: 30b7ffff */ andi $s7,$a1,0xffff -///* 4cc54: 15e00003 */ bnez $t7,.L0004cc64 -///* 4cc58: 00c0f025 */ or $s8,$a2,$zero -///* 4cc5c: 10000051 */ b .L0004cda4 -///* 4cc60: 24020005 */ addiu $v0,$zero,0x5 -//.L0004cc64: -///* 4cc64: 0c013218 */ jal __osCheckId -///* 4cc68: 02402025 */ or $a0,$s2,$zero -///* 4cc6c: 50400004 */ beqzl $v0,.L0004cc80 -///* 4cc70: 8e580050 */ lw $t8,0x50($s2) -///* 4cc74: 1000004c */ b .L0004cda8 -///* 4cc78: 8fbf003c */ lw $ra,0x3c($sp) -///* 4cc7c: 8e580050 */ lw $t8,0x50($s2) -//.L0004cc80: -///* 4cc80: 00009825 */ or $s3,$zero,$zero -///* 4cc84: 27b60050 */ addiu $s6,$sp,0x50 -///* 4cc88: 1b000042 */ blez $t8,.L0004cd94 -///* 4cc8c: 8fb40088 */ lw $s4,0x88($sp) -///* 4cc90: 27b10060 */ addiu $s1,$sp,0x60 -///* 4cc94: 27b00054 */ addiu $s0,$sp,0x54 -///* 4cc98: 8e59005c */ lw $t9,0x5c($s2) -//.L0004cc9c: -///* 4cc9c: 8e440004 */ lw $a0,0x4($s2) -///* 4cca0: 8e450008 */ lw $a1,0x8($s2) -///* 4cca4: 03333021 */ addu $a2,$t9,$s3 -///* 4cca8: 30c8ffff */ andi $t0,$a2,0xffff -///* 4ccac: 01003025 */ or $a2,$t0,$zero -///* 4ccb0: 0c012e18 */ jal __osContRamRead -///* 4ccb4: 02c03825 */ or $a3,$s6,$zero -///* 4ccb8: 50400004 */ beqzl $v0,.L0004cccc -///* 4ccbc: 8e440004 */ lw $a0,0x4($s2) -///* 4ccc0: 10000039 */ b .L0004cda8 -///* 4ccc4: 8fbf003c */ lw $ra,0x3c($sp) -///* 4ccc8: 8e440004 */ lw $a0,0x4($s2) -//.L0004cccc: -///* 4cccc: 0c012ea4 */ jal __osPfsGetStatus -///* 4ccd0: 8e450008 */ lw $a1,0x8($s2) -///* 4ccd4: 10400003 */ beqz $v0,.L0004cce4 -///* 4ccd8: 00403025 */ or $a2,$v0,$zero -///* 4ccdc: 10000032 */ b .L0004cda8 -///* 4cce0: 8fbf003c */ lw $ra,0x3c($sp) -//.L0004cce4: -///* 4cce4: 97a90054 */ lhu $t1,0x54($sp) -///* 4cce8: 8faa0050 */ lw $t2,0x50($sp) -///* 4ccec: 56e90025 */ bnel $s7,$t1,.L0004cd84 -///* 4ccf0: 8e580050 */ lw $t8,0x50($s2) -///* 4ccf4: 555e0023 */ bnel $t2,$s8,.L0004cd84 -///* 4ccf8: 8e580050 */ lw $t8,0x50($s2) -///* 4ccfc: 12a0000c */ beqz $s5,.L0004cd30 -///* 4cd00: 00002025 */ or $a0,$zero,$zero -///* 4cd04: 27a20050 */ addiu $v0,$sp,0x50 -///* 4cd08: 02a01825 */ or $v1,$s5,$zero -//.L0004cd0c: -///* 4cd0c: 904b0010 */ lbu $t3,0x10($v0) -///* 4cd10: 906c0000 */ lbu $t4,0x0($v1) -///* 4cd14: 24420001 */ addiu $v0,$v0,0x1 -///* 4cd18: 116c0003 */ beq $t3,$t4,.L0004cd28 -///* 4cd1c: 00000000 */ nop -///* 4cd20: 10000003 */ b .L0004cd30 -///* 4cd24: 24040001 */ addiu $a0,$zero,0x1 -//.L0004cd28: -///* 4cd28: 1451fff8 */ bne $v0,$s1,.L0004cd0c -///* 4cd2c: 24630001 */ addiu $v1,$v1,0x1 -//.L0004cd30: -///* 4cd30: 1280000d */ beqz $s4,.L0004cd68 -///* 4cd34: 00000000 */ nop -///* 4cd38: 1480000b */ bnez $a0,.L0004cd68 -///* 4cd3c: 27a20050 */ addiu $v0,$sp,0x50 -///* 4cd40: 02801825 */ or $v1,$s4,$zero -//.L0004cd44: -///* 4cd44: 904d000c */ lbu $t5,0xc($v0) -///* 4cd48: 906e0000 */ lbu $t6,0x0($v1) -///* 4cd4c: 24420001 */ addiu $v0,$v0,0x1 -///* 4cd50: 11ae0003 */ beq $t5,$t6,.L0004cd60 -///* 4cd54: 00000000 */ nop -///* 4cd58: 10000003 */ b .L0004cd68 -///* 4cd5c: 24040001 */ addiu $a0,$zero,0x1 -//.L0004cd60: -///* 4cd60: 1450fff8 */ bne $v0,$s0,.L0004cd44 -///* 4cd64: 24630001 */ addiu $v1,$v1,0x1 -//.L0004cd68: -///* 4cd68: 54800006 */ bnezl $a0,.L0004cd84 -///* 4cd6c: 8e580050 */ lw $t8,0x50($s2) -///* 4cd70: 8faf008c */ lw $t7,0x8c($sp) -///* 4cd74: 00c01025 */ or $v0,$a2,$zero -///* 4cd78: 1000000a */ b .L0004cda4 -///* 4cd7c: adf30000 */ sw $s3,0x0($t7) -///* 4cd80: 8e580050 */ lw $t8,0x50($s2) -//.L0004cd84: -///* 4cd84: 26730001 */ addiu $s3,$s3,0x1 -///* 4cd88: 0278082a */ slt $at,$s3,$t8 -///* 4cd8c: 5420ffc3 */ bnezl $at,.L0004cc9c -///* 4cd90: 8e59005c */ lw $t9,0x5c($s2) -//.L0004cd94: -///* 4cd94: 8fa8008c */ lw $t0,0x8c($sp) -///* 4cd98: 2419ffff */ addiu $t9,$zero,-1 -///* 4cd9c: 24020005 */ addiu $v0,$zero,0x5 -///* 4cda0: ad190000 */ sw $t9,0x0($t0) -//.L0004cda4: -///* 4cda4: 8fbf003c */ lw $ra,0x3c($sp) -//.L0004cda8: -///* 4cda8: 8fb00018 */ lw $s0,0x18($sp) -///* 4cdac: 8fb1001c */ lw $s1,0x1c($sp) -///* 4cdb0: 8fb20020 */ lw $s2,0x20($sp) -///* 4cdb4: 8fb30024 */ lw $s3,0x24($sp) -///* 4cdb8: 8fb40028 */ lw $s4,0x28($sp) -///* 4cdbc: 8fb5002c */ lw $s5,0x2c($sp) -///* 4cdc0: 8fb60030 */ lw $s6,0x30($sp) -///* 4cdc4: 8fb70034 */ lw $s7,0x34($sp) -///* 4cdc8: 8fbe0038 */ lw $s8,0x38($sp) -///* 4cdcc: 03e00008 */ jr $ra -///* 4cdd0: 27bd0078 */ addiu $sp,$sp,0x78 -//); - s32 osPfsFindFile(OSPfs *pfs, u16 company_code, u32 game_code, u8 *game_name, u8 *ext_name, s32 *file_no) { s32 j;