Decompile osMotorAccess

This commit is contained in:
Ryan Dwyer 2021-03-25 18:56:51 +10:00
parent 412de9d14c
commit a6e90e121b
5 changed files with 61 additions and 314 deletions

View File

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

View File

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

View File

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

View File

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

View File

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