mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-29 23:37:33 -04:00
Decompile func0001519c
This commit is contained in:
+1
-104
@@ -15164,110 +15164,7 @@ u32 var800a3170 = 0;
|
||||
u32 var800a3174 = 0;
|
||||
u32 var800a3178 = 0;
|
||||
u32 var800a317c = 0;
|
||||
u32 var800a3180 = 0;
|
||||
u32 var800a3184 = 0;
|
||||
u32 var800a3188 = 0;
|
||||
u32 var800a318c = 0;
|
||||
u32 var800a3190 = 0;
|
||||
u32 var800a3194 = 0;
|
||||
u32 var800a3198 = 0;
|
||||
u32 var800a319c = 0;
|
||||
u32 var800a31a0 = 0;
|
||||
u32 var800a31a4 = 0;
|
||||
u32 var800a31a8 = 0;
|
||||
u32 var800a31ac = 0;
|
||||
u32 var800a31b0 = 0;
|
||||
u32 var800a31b4 = 0;
|
||||
u32 var800a31b8 = 0;
|
||||
u32 var800a31bc = 0;
|
||||
u32 var800a31c0 = 0;
|
||||
u32 var800a31c4 = 0;
|
||||
u32 var800a31c8 = 0;
|
||||
u32 var800a31cc = 0;
|
||||
u32 var800a31d0 = 0;
|
||||
u32 var800a31d4 = 0;
|
||||
u32 var800a31d8 = 0;
|
||||
u32 var800a31dc = 0;
|
||||
u32 var800a31e0 = 0;
|
||||
u32 var800a31e4 = 0;
|
||||
u32 var800a31e8 = 0;
|
||||
u32 var800a31ec = 0;
|
||||
u32 var800a31f0 = 0;
|
||||
u32 var800a31f4 = 0;
|
||||
u32 var800a31f8 = 0;
|
||||
u32 var800a31fc = 0;
|
||||
u32 var800a3200 = 0;
|
||||
u32 var800a3204 = 0;
|
||||
u32 var800a3208 = 0;
|
||||
u32 var800a320c = 0;
|
||||
u32 var800a3210 = 0;
|
||||
u32 var800a3214 = 0;
|
||||
u32 var800a3218 = 0;
|
||||
u32 var800a321c = 0;
|
||||
u32 var800a3220 = 0;
|
||||
u32 var800a3224 = 0;
|
||||
u32 var800a3228 = 0;
|
||||
u32 var800a322c = 0;
|
||||
u32 var800a3230 = 0;
|
||||
u32 var800a3234 = 0;
|
||||
u32 var800a3238 = 0;
|
||||
u32 var800a323c = 0;
|
||||
u32 var800a3240 = 0;
|
||||
u32 var800a3244 = 0;
|
||||
u32 var800a3248 = 0;
|
||||
u32 var800a324c = 0;
|
||||
u32 var800a3250 = 0;
|
||||
u32 var800a3254 = 0;
|
||||
u32 var800a3258 = 0;
|
||||
u32 var800a325c = 0;
|
||||
u32 var800a3260 = 0;
|
||||
u32 var800a3264 = 0;
|
||||
u32 var800a3268 = 0;
|
||||
u32 var800a326c = 0;
|
||||
u32 var800a3270 = 0;
|
||||
u32 var800a3274 = 0;
|
||||
u32 var800a3278 = 0;
|
||||
u32 var800a327c = 0;
|
||||
u32 var800a3280 = 0;
|
||||
u32 var800a3284 = 0;
|
||||
u32 var800a3288 = 0;
|
||||
u32 var800a328c = 0;
|
||||
u32 var800a3290 = 0;
|
||||
u32 var800a3294 = 0;
|
||||
u32 var800a3298 = 0;
|
||||
u32 var800a329c = 0;
|
||||
u32 var800a32a0 = 0;
|
||||
u32 var800a32a4 = 0;
|
||||
u32 var800a32a8 = 0;
|
||||
u32 var800a32ac = 0;
|
||||
u32 var800a32b0 = 0;
|
||||
u32 var800a32b4 = 0;
|
||||
u32 var800a32b8 = 0;
|
||||
u32 var800a32bc = 0;
|
||||
u32 var800a32c0 = 0;
|
||||
u32 var800a32c4 = 0;
|
||||
u32 var800a32c8 = 0;
|
||||
u32 var800a32cc = 0;
|
||||
u32 var800a32d0 = 0;
|
||||
u32 var800a32d4 = 0;
|
||||
u32 var800a32d8 = 0;
|
||||
u32 var800a32dc = 0;
|
||||
u32 var800a32e0 = 0;
|
||||
u32 var800a32e4 = 0;
|
||||
u32 var800a32e8 = 0;
|
||||
u32 var800a32ec = 0;
|
||||
u32 var800a32f0 = 0;
|
||||
u32 var800a32f4 = 0;
|
||||
u32 var800a32f8 = 0;
|
||||
u32 var800a32fc = 0;
|
||||
u32 var800a3300 = 0;
|
||||
u32 var800a3304 = 0;
|
||||
u32 var800a3308 = 0;
|
||||
u32 var800a330c = 0;
|
||||
u32 var800a3310 = 0;
|
||||
u32 var800a3314 = 0;
|
||||
u32 var800a3318 = 0;
|
||||
u32 var800a331c = 0;
|
||||
struct var800a3180 var800a3180[4] = {0};
|
||||
u32 var800a3320 = 0;
|
||||
u32 var800a3324 = 0;
|
||||
u32 var800a3328 = 0;
|
||||
|
||||
@@ -680,7 +680,7 @@ extern u16 *g_CoverNums;
|
||||
extern struct var800a2380 var800a2380[4];
|
||||
extern u32 var800a2eb0;
|
||||
extern u8 var800a316c[4];
|
||||
extern u32 var800a3180;
|
||||
extern struct var800a3180 var800a3180[4];
|
||||
extern u32 var800a33a0;
|
||||
extern u32 var800a33a4;
|
||||
extern u32 var800a33a8;
|
||||
|
||||
@@ -39,7 +39,7 @@ u16 func00015020(s8 contpadnum, u16 mask);
|
||||
u32 func000150c4(void);
|
||||
void func000150e8(void);
|
||||
void func00015144(void);
|
||||
u32 func0001519c(void);
|
||||
void func0001519c(void);
|
||||
u32 func000152d0(void);
|
||||
u32 func000153c4(void);
|
||||
s32 func000155b4(s8 index);
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
#include <ultra64.h>
|
||||
#include "types.h"
|
||||
|
||||
u32 func0004f5e0(void);
|
||||
void func0004f5e0(struct var800a3180 *arg0, u32 arg1);
|
||||
u32 func0004f748(void);
|
||||
u32 func0004f854(void);
|
||||
bool func0004f854(OSMesgQueue *mq, struct var800a3180 *arg1, s32 arg2);
|
||||
u32 func0004f9b0(void);
|
||||
u32 func0004fbc0(void);
|
||||
u32 func0004fbf0(void);
|
||||
|
||||
@@ -7102,4 +7102,33 @@ struct contdata {
|
||||
s32 unk200;
|
||||
};
|
||||
|
||||
struct var800a3180 {
|
||||
/*0x00*/ u32 unk00;
|
||||
/*0x04*/ u32 unk04;
|
||||
/*0x08*/ u32 unk08;
|
||||
/*0x0c*/ u32 unk0c;
|
||||
/*0x10*/ u32 unk10;
|
||||
/*0x14*/ u32 unk14;
|
||||
/*0x18*/ u32 unk18;
|
||||
/*0x1c*/ u32 unk1c;
|
||||
/*0x20*/ u32 unk20;
|
||||
/*0x24*/ u32 unk24;
|
||||
/*0x28*/ u32 unk28;
|
||||
/*0x2c*/ u32 unk2c;
|
||||
/*0x30*/ u32 unk30;
|
||||
/*0x34*/ u32 unk34;
|
||||
/*0x38*/ u32 unk38;
|
||||
/*0x3c*/ u32 unk3c;
|
||||
/*0x40*/ u32 unk40;
|
||||
/*0x44*/ u32 unk44;
|
||||
/*0x48*/ u32 unk48;
|
||||
/*0x4c*/ u32 unk4c;
|
||||
/*0x50*/ u32 unk50;
|
||||
/*0x54*/ u32 unk54;
|
||||
/*0x58*/ u32 unk58;
|
||||
/*0x5c*/ u32 unk5c;
|
||||
/*0x60*/ u32 unk60;
|
||||
/*0x64*/ u32 unk64;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+15
-90
@@ -964,96 +964,21 @@ void func00015144(void)
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0001519c
|
||||
/* 1519c: 27bdffd0 */ addiu $sp,$sp,-48
|
||||
/* 151a0: afb40028 */ sw $s4,0x28($sp)
|
||||
/* 151a4: 3c14800a */ lui $s4,%hi(var80099e78)
|
||||
/* 151a8: 26949e78 */ addiu $s4,$s4,%lo(var80099e78)
|
||||
/* 151ac: afbf002c */ sw $ra,0x2c($sp)
|
||||
/* 151b0: 3c05800a */ lui $a1,%hi(var80099e90)
|
||||
/* 151b4: afb30024 */ sw $s3,0x24($sp)
|
||||
/* 151b8: afb20020 */ sw $s2,0x20($sp)
|
||||
/* 151bc: afb1001c */ sw $s1,0x1c($sp)
|
||||
/* 151c0: afb00018 */ sw $s0,0x18($sp)
|
||||
/* 151c4: 24a59e90 */ addiu $a1,$a1,%lo(var80099e90)
|
||||
/* 151c8: 02802025 */ or $a0,$s4,$zero
|
||||
/* 151cc: 0c0120d0 */ jal osCreateMesgQueue
|
||||
/* 151d0: 2406000a */ addiu $a2,$zero,0xa
|
||||
/* 151d4: 24040005 */ addiu $a0,$zero,0x5
|
||||
/* 151d8: 02802825 */ or $a1,$s4,$zero
|
||||
/* 151dc: 0c012148 */ jal osSetEventMesg
|
||||
/* 151e0: 00003025 */ or $a2,$zero,$zero
|
||||
/* 151e4: 3c12800a */ lui $s2,%hi(var800a3180)
|
||||
/* 151e8: 26523180 */ addiu $s2,$s2,%lo(var800a3180)
|
||||
/* 151ec: 00008025 */ or $s0,$zero,$zero
|
||||
/* 151f0: 24130068 */ addiu $s3,$zero,0x68
|
||||
/* 151f4: 24110004 */ addiu $s1,$zero,0x4
|
||||
.L000151f8:
|
||||
/* 151f8: 16110003 */ bne $s0,$s1,.L00015208
|
||||
/* 151fc: 02802025 */ or $a0,$s4,$zero
|
||||
/* 15200: 10000005 */ b .L00015218
|
||||
/* 15204: 00003825 */ or $a3,$zero,$zero
|
||||
.L00015208:
|
||||
/* 15208: 02130019 */ multu $s0,$s3
|
||||
/* 1520c: 00007012 */ mflo $t6
|
||||
/* 15210: 024e3821 */ addu $a3,$s2,$t6
|
||||
/* 15214: 00000000 */ nop
|
||||
.L00015218:
|
||||
/* 15218: 00e02825 */ or $a1,$a3,$zero
|
||||
/* 1521c: 0c013e15 */ jal func0004f854
|
||||
/* 15220: 02003025 */ or $a2,$s0,$zero
|
||||
/* 15224: 1440001f */ bnez $v0,.L000152a4
|
||||
/* 15228: 00002825 */ or $a1,$zero,$zero
|
||||
/* 1522c: 16110003 */ bne $s0,$s1,.L0001523c
|
||||
/* 15230: 00000000 */ nop
|
||||
/* 15234: 10000005 */ b .L0001524c
|
||||
/* 15238: 00003825 */ or $a3,$zero,$zero
|
||||
.L0001523c:
|
||||
/* 1523c: 02130019 */ multu $s0,$s3
|
||||
/* 15240: 00007812 */ mflo $t7
|
||||
/* 15244: 024f3821 */ addu $a3,$s2,$t7
|
||||
/* 15248: 00000000 */ nop
|
||||
.L0001524c:
|
||||
/* 1524c: 0c013d78 */ jal func0004f5e0
|
||||
/* 15250: 00e02025 */ or $a0,$a3,$zero
|
||||
/* 15254: 16110003 */ bne $s0,$s1,.L00015264
|
||||
/* 15258: 00002825 */ or $a1,$zero,$zero
|
||||
/* 1525c: 10000005 */ b .L00015274
|
||||
/* 15260: 00003825 */ or $a3,$zero,$zero
|
||||
.L00015264:
|
||||
/* 15264: 02130019 */ multu $s0,$s3
|
||||
/* 15268: 0000c012 */ mflo $t8
|
||||
/* 1526c: 02583821 */ addu $a3,$s2,$t8
|
||||
/* 15270: 00000000 */ nop
|
||||
.L00015274:
|
||||
/* 15274: 0c013d78 */ jal func0004f5e0
|
||||
/* 15278: 00e02025 */ or $a0,$a3,$zero
|
||||
/* 1527c: 16110003 */ bne $s0,$s1,.L0001528c
|
||||
/* 15280: 00002825 */ or $a1,$zero,$zero
|
||||
/* 15284: 10000005 */ b .L0001529c
|
||||
/* 15288: 00003825 */ or $a3,$zero,$zero
|
||||
.L0001528c:
|
||||
/* 1528c: 02130019 */ multu $s0,$s3
|
||||
/* 15290: 0000c812 */ mflo $t9
|
||||
/* 15294: 02593821 */ addu $a3,$s2,$t9
|
||||
/* 15298: 00000000 */ nop
|
||||
.L0001529c:
|
||||
/* 1529c: 0c013d78 */ jal func0004f5e0
|
||||
/* 152a0: 00e02025 */ or $a0,$a3,$zero
|
||||
.L000152a4:
|
||||
/* 152a4: 26100001 */ addiu $s0,$s0,0x1
|
||||
/* 152a8: 1611ffd3 */ bne $s0,$s1,.L000151f8
|
||||
/* 152ac: 00000000 */ nop
|
||||
/* 152b0: 8fbf002c */ lw $ra,0x2c($sp)
|
||||
/* 152b4: 8fb00018 */ lw $s0,0x18($sp)
|
||||
/* 152b8: 8fb1001c */ lw $s1,0x1c($sp)
|
||||
/* 152bc: 8fb20020 */ lw $s2,0x20($sp)
|
||||
/* 152c0: 8fb30024 */ lw $s3,0x24($sp)
|
||||
/* 152c4: 8fb40028 */ lw $s4,0x28($sp)
|
||||
/* 152c8: 03e00008 */ jr $ra
|
||||
/* 152cc: 27bd0030 */ addiu $sp,$sp,0x30
|
||||
);
|
||||
void func0001519c(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
osCreateMesgQueue(&var80099e78, &var80099e90, 10);
|
||||
osSetEventMesg(OS_EVENT_SI, &var80099e78, 0);
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (!func0004f854(&var80099e78, (i == 4 ? NULL : &var800a3180[i]), i)) {
|
||||
func0004f5e0((i == 4 ? NULL : &var800a3180[i]), 0);
|
||||
func0004f5e0((i == 4 ? NULL : &var800a3180[i]), 0);
|
||||
func0004f5e0((i == 4 ? NULL : &var800a3180[i]), 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func000152d0
|
||||
|
||||
Reference in New Issue
Block a user