mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-09-08 11:15:57 -04:00
Attempt to decompile func0f1670fc
This commit is contained in:
@@ -174,12 +174,12 @@ glabel var7f1a8a84
|
||||
/* f02d00c: 000c6080 */ sll $t4,$t4,0x2
|
||||
/* f02d010: 018e1821 */ addu $v1,$t4,$t6
|
||||
/* f02d014: 94780002 */ lhu $t8,0x2($v1)
|
||||
/* f02d018: 3c01800a */ lui $at,%hi(var800a6680)
|
||||
/* f02d018: 3c01800a */ lui $at,%hi(g_FileInfo)
|
||||
/* f02d01c: ac62000c */ sw $v0,0xc($v1)
|
||||
/* f02d020: 0018c8c0 */ sll $t9,$t8,0x3
|
||||
/* f02d024: 00390821 */ addu $at,$at,$t9
|
||||
/* f02d028: afa20054 */ sw $v0,0x54($sp)
|
||||
/* f02d02c: ac206680 */ sw $zero,%lo(var800a6680)($at)
|
||||
/* f02d02c: ac206680 */ sw $zero,%lo(g_FileInfo)($at)
|
||||
/* f02d030: 00402025 */ or $a0,$v0,$zero
|
||||
/* f02d034: 0fc0b76f */ jal func0f02ddbc
|
||||
/* f02d038: 8fa60048 */ lw $a2,0x48($sp)
|
||||
|
||||
@@ -8183,8 +8183,8 @@ glabel func0f09e144
|
||||
/* f09e204: afa7006c */ sw $a3,0x6c($sp)
|
||||
/* f09e208: 964c15b2 */ lhu $t4,0x15b2($s2)
|
||||
/* f09e20c: 8fa7006c */ lw $a3,0x6c($sp)
|
||||
/* f09e210: 3c0e800a */ lui $t6,%hi(var800a6680)
|
||||
/* f09e214: 25ce6680 */ addiu $t6,$t6,%lo(var800a6680)
|
||||
/* f09e210: 3c0e800a */ lui $t6,%hi(g_FileInfo)
|
||||
/* f09e214: 25ce6680 */ addiu $t6,$t6,%lo(g_FileInfo)
|
||||
/* f09e218: 000c68c0 */ sll $t5,$t4,0x3
|
||||
/* f09e21c: 01ae4021 */ addu $t0,$t5,$t6
|
||||
/* f09e220: ad070004 */ sw $a3,0x4($t0)
|
||||
@@ -8218,9 +8218,9 @@ glabel func0f09e144
|
||||
/* f09e290: 24010002 */ addiu $at,$zero,0x2
|
||||
.L0f09e294:
|
||||
/* f09e294: 1441003f */ bne $v0,$at,.L0f09e394
|
||||
/* f09e298: 3c0f800a */ lui $t7,%hi(var800a6680)
|
||||
/* f09e298: 3c0f800a */ lui $t7,%hi(g_FileInfo)
|
||||
/* f09e29c: 965815b2 */ lhu $t8,0x15b2($s2)
|
||||
/* f09e2a0: 25ef6680 */ addiu $t7,$t7,%lo(var800a6680)
|
||||
/* f09e2a0: 25ef6680 */ addiu $t7,$t7,%lo(g_FileInfo)
|
||||
/* f09e2a4: 264c15d4 */ addiu $t4,$s2,0x15d4
|
||||
/* f09e2a8: 0018c8c0 */ sll $t9,$t8,0x3
|
||||
/* f09e2ac: 032f5021 */ addu $t2,$t9,$t7
|
||||
@@ -8289,8 +8289,8 @@ glabel func0f09e144
|
||||
/* f09e398: 5441004c */ bnel $v0,$at,.L0f09e4cc
|
||||
/* f09e39c: 8fbf002c */ lw $ra,0x2c($sp)
|
||||
/* f09e3a0: 965815b2 */ lhu $t8,0x15b2($s2)
|
||||
/* f09e3a4: 3c0f800a */ lui $t7,%hi(var800a6680)
|
||||
/* f09e3a8: 25ef6680 */ addiu $t7,$t7,%lo(var800a6680)
|
||||
/* f09e3a4: 3c0f800a */ lui $t7,%hi(g_FileInfo)
|
||||
/* f09e3a8: 25ef6680 */ addiu $t7,$t7,%lo(g_FileInfo)
|
||||
/* f09e3ac: 0018c8c0 */ sll $t9,$t8,0x3
|
||||
/* f09e3b0: 032f5021 */ addu $t2,$t9,$t7
|
||||
/* f09e3b4: afaa0058 */ sw $t2,0x58($sp)
|
||||
|
||||
@@ -3809,12 +3809,12 @@ glabel var7f1ad5b4
|
||||
/* f0b9128: 000e7080 */ sll $t6,$t6,0x2
|
||||
/* f0b912c: 01c81821 */ addu $v1,$t6,$t0
|
||||
/* f0b9130: 94780002 */ lhu $t8,0x2($v1)
|
||||
/* f0b9134: 3c01800a */ lui $at,%hi(var800a6680)
|
||||
/* f0b9134: 3c01800a */ lui $at,%hi(g_FileInfo)
|
||||
/* f0b9138: ac62000c */ sw $v0,0xc($v1)
|
||||
/* f0b913c: 0018c8c0 */ sll $t9,$t8,0x3
|
||||
/* f0b9140: 00390821 */ addu $at,$at,$t9
|
||||
/* f0b9144: afa200f8 */ sw $v0,0xf8($sp)
|
||||
/* f0b9148: ac206680 */ sw $zero,%lo(var800a6680)($at)
|
||||
/* f0b9148: ac206680 */ sw $zero,%lo(g_FileInfo)($at)
|
||||
/* f0b914c: 00402025 */ or $a0,$v0,$zero
|
||||
/* f0b9150: 8fa50064 */ lw $a1,0x64($sp)
|
||||
/* f0b9154: 0fc0b76f */ jal func0f02ddbc
|
||||
|
||||
+51
-14
@@ -141,12 +141,12 @@ glabel func0f166f74
|
||||
/* f166f7c: afb1001c */ sw $s1,0x1c($sp)
|
||||
/* f166f80: afb40028 */ sw $s4,0x28($sp)
|
||||
/* f166f84: afb00018 */ sw $s0,0x18($sp)
|
||||
/* f166f88: 3c11800a */ lui $s1,%hi(var800a6680)
|
||||
/* f166f88: 3c11800a */ lui $s1,%hi(g_FileInfo)
|
||||
/* f166f8c: 3c128008 */ lui $s2,%hi(filetable)
|
||||
/* f166f90: afbf002c */ sw $ra,0x2c($sp)
|
||||
/* f166f94: afb30024 */ sw $s3,0x24($sp)
|
||||
/* f166f98: 26522060 */ addiu $s2,$s2,%lo(filetable)
|
||||
/* f166f9c: 26316680 */ addiu $s1,$s1,%lo(var800a6680)
|
||||
/* f166f9c: 26316680 */ addiu $s1,$s1,%lo(g_FileInfo)
|
||||
/* f166fa0: 24100001 */ addiu $s0,$zero,0x1
|
||||
/* f166fa4: 241407de */ addiu $s4,$zero,0x7de
|
||||
/* f166fa8: 001070c0 */ sll $t6,$s0,0x3
|
||||
@@ -264,8 +264,8 @@ glabel func0f1670fc
|
||||
/* f167120: 00000000 */ sll $zero,$zero,0x0
|
||||
.L0f167124:
|
||||
/* f167124: 8faf0030 */ lw $t7,0x30($sp)
|
||||
/* f167128: 3c19800a */ lui $t9,%hi(var800a6680)
|
||||
/* f16712c: 27396680 */ addiu $t9,$t9,%lo(var800a6680)
|
||||
/* f167128: 3c19800a */ lui $t9,%hi(g_FileInfo)
|
||||
/* f16712c: 27396680 */ addiu $t9,$t9,%lo(g_FileInfo)
|
||||
/* f167130: 000fc0c0 */ sll $t8,$t7,0x3
|
||||
/* f167134: 03198021 */ addu $s0,$t8,$t9
|
||||
/* f167138: 8e080000 */ lw $t0,0x0($s0)
|
||||
@@ -325,6 +325,43 @@ glabel func0f1670fc
|
||||
/* f1671fc: ac202060 */ sw $zero,%lo(filetable)($at)
|
||||
);
|
||||
|
||||
//void *func0f1670fc(u32 filenum, u32 arg1)
|
||||
//{
|
||||
// struct fileinfo *info;
|
||||
// u32 stack;
|
||||
// void *ptr;
|
||||
//
|
||||
// if (arg1 == 0x11 || arg1 == 0x22) {
|
||||
// // 124
|
||||
// info = &g_FileInfo[filenum];
|
||||
//
|
||||
// // 13c
|
||||
// if (info->unk00 == 0) {
|
||||
// info->unk00 = (func0f167054(filenum) + 0x20) & 0xfffffff0;
|
||||
//
|
||||
// // 164
|
||||
// if (arg1 == 0x11) {
|
||||
// info->unk00 += 0x8000;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 174
|
||||
// ptr = malloc(info->unk00, 4);
|
||||
// info->unk04 = info->unk00;
|
||||
// func0f166eb4(ptr, info->unk00, &filetable[filenum], info);
|
||||
//
|
||||
// if (arg1 != 0x11) {
|
||||
// func00012430(ptr, info->unk00, 4);
|
||||
// }
|
||||
// } else {
|
||||
// while (true) {
|
||||
// // empty
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// return ptr;
|
||||
//}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f167200
|
||||
/* f167200: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
@@ -340,8 +377,8 @@ glabel func0f167200
|
||||
.L0f167228:
|
||||
/* f167228: 8fae0018 */ lw $t6,0x18($sp)
|
||||
/* f16722c: 8fb90024 */ lw $t9,0x24($sp)
|
||||
/* f167230: 3c18800a */ lui $t8,%hi(var800a6680)
|
||||
/* f167234: 27186680 */ addiu $t8,$t8,%lo(var800a6680)
|
||||
/* f167230: 3c18800a */ lui $t8,%hi(g_FileInfo)
|
||||
/* f167234: 27186680 */ addiu $t8,$t8,%lo(g_FileInfo)
|
||||
/* f167238: 000e78c0 */ sll $t7,$t6,0x3
|
||||
/* f16723c: 01f83821 */ addu $a3,$t7,$t8
|
||||
/* f167240: acf90004 */ sw $t9,0x4($a3)
|
||||
@@ -367,25 +404,25 @@ glabel func0f167200
|
||||
GLOBAL_ASM(
|
||||
glabel func0f167280
|
||||
/* f167280: 000470c0 */ sll $t6,$a0,0x3
|
||||
/* f167284: 3c02800a */ lui $v0,%hi(var800a6680)
|
||||
/* f167284: 3c02800a */ lui $v0,%hi(g_FileInfo)
|
||||
/* f167288: 004e1021 */ addu $v0,$v0,$t6
|
||||
/* f16728c: 03e00008 */ jr $ra
|
||||
/* f167290: 8c426680 */ lw $v0,%lo(var800a6680)($v0)
|
||||
/* f167290: 8c426680 */ lw $v0,%lo(g_FileInfo)($v0)
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f167294
|
||||
/* f167294: 000470c0 */ sll $t6,$a0,0x3
|
||||
/* f167298: 3c02800a */ lui $v0,%hi(var800a6684)
|
||||
/* f167298: 3c02800a */ lui $v0,%hi(g_FileInfo+0x4)
|
||||
/* f16729c: 004e1021 */ addu $v0,$v0,$t6
|
||||
/* f1672a0: 03e00008 */ jr $ra
|
||||
/* f1672a4: 8c426684 */ lw $v0,%lo(var800a6684)($v0)
|
||||
/* f1672a4: 8c426684 */ lw $v0,%lo(g_FileInfo+0x4)($v0)
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f1672a8
|
||||
/* f1672a8: 3c0f800a */ lui $t7,%hi(var800a6680)
|
||||
/* f1672ac: 25ef6680 */ addiu $t7,$t7,%lo(var800a6680)
|
||||
/* f1672a8: 3c0f800a */ lui $t7,%hi(g_FileInfo)
|
||||
/* f1672ac: 25ef6680 */ addiu $t7,$t7,%lo(g_FileInfo)
|
||||
/* f1672b0: 000470c0 */ sll $t6,$a0,0x3
|
||||
/* f1672b4: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* f1672b8: 01cf1021 */ addu $v0,$t6,$t7
|
||||
@@ -409,8 +446,8 @@ GLOBAL_ASM(
|
||||
glabel func0f1672f0
|
||||
/* f1672f0: afa40000 */ sw $a0,0x0($sp)
|
||||
/* f1672f4: 308300ff */ andi $v1,$a0,0xff
|
||||
/* f1672f8: 3c05800a */ lui $a1,%hi(var800a6680)
|
||||
/* f1672fc: 24a56680 */ addiu $a1,$a1,%lo(var800a6680)
|
||||
/* f1672f8: 3c05800a */ lui $a1,%hi(g_FileInfo)
|
||||
/* f1672fc: 24a56680 */ addiu $a1,$a1,%lo(g_FileInfo)
|
||||
/* f167300: 24040004 */ addiu $a0,$zero,0x4
|
||||
/* f167304: 24020001 */ addiu $v0,$zero,0x1
|
||||
/* f167308: 240607de */ addiu $a2,$zero,0x7de
|
||||
|
||||
+1
-4028
File diff suppressed because it is too large
Load Diff
@@ -1523,6 +1523,7 @@
|
||||
#define NUM_CHALLENGES 30
|
||||
#define NUM_CHEATS 42
|
||||
#define NUM_EXPLOSIONTYPES 26
|
||||
#define NUM_FILES 2014
|
||||
#define NUM_FIRESLOTS 20
|
||||
#define NUM_MPBEAUHEADS 5
|
||||
#define NUM_MPBOTCOMMANDS 14
|
||||
|
||||
@@ -7,11 +7,11 @@ u32 func0f166e40(void);
|
||||
u32 func0f166e54(void);
|
||||
u32 func0f166e7c(void);
|
||||
u32 func0f166ea8(void);
|
||||
u32 func0f166eb4(void);
|
||||
void func0f166eb4(void *ptr, u32 len, void *table, struct fileinfo *info);
|
||||
u32 func0f166f74(void);
|
||||
u32 func0f166ff0(void);
|
||||
u32 func0f167054(void);
|
||||
void *func0f1670fc(s32 file_id, s32 arg1);
|
||||
u32 func0f167054(u32 filenum);
|
||||
void *func0f1670fc(u32 filenum, u32 arg1);
|
||||
void *func0f167200(s32 file_id, s32 arg1, s32 arg2, s32 arg3);
|
||||
u32 func0f167280(void);
|
||||
u32 func0f167294(void);
|
||||
|
||||
@@ -755,7 +755,7 @@ extern u32 var800a6630;
|
||||
extern u32 var800a6660;
|
||||
extern u32 var800a6668;
|
||||
extern u32 var800a666c;
|
||||
extern u32 var800a6680;
|
||||
extern struct fileinfo g_FileInfo[NUM_FILES];
|
||||
extern u32 var800aa580;
|
||||
extern u32 var800aa590;
|
||||
extern u32 var800aa59c;
|
||||
|
||||
@@ -9,7 +9,7 @@ u32 func000122e0(void);
|
||||
u32 func00012324(void);
|
||||
void *func00012354(struct memorypool *pools, u32 len, u8 pool);
|
||||
void *malloc(u32 len, u8 pool);
|
||||
u32 func00012430(void);
|
||||
void func00012430(void *ptr, u32 len, u8 pool);
|
||||
u32 func000124d4(void);
|
||||
void func00012528(s32 arg0);
|
||||
void func00012594(s32 arg0);
|
||||
|
||||
@@ -5888,4 +5888,9 @@ struct var800aabb8 {
|
||||
u16 unk00_02 : 14;
|
||||
};
|
||||
|
||||
struct fileinfo {
|
||||
u32 unk00;
|
||||
u32 unk04;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user