Decompile func0000d350

This commit is contained in:
Ryan Dwyer 2021-02-13 09:49:17 +10:00
parent 6d413974a4
commit 9d08805637
4 changed files with 34 additions and 252 deletions

View File

@ -7164,201 +7164,10 @@ u32 var80094ad0 = 0;
u32 var80094ad4 = 0;
u32 var80094ad8 = 0;
u32 var80094adc = 0;
u32 var80094ae0 = 0;
volatile u32 var80094ae0 = 0;
u32 var80094ae4 = 0;
u32 var80094ae8 = 0;
u32 var80094aec = 0;
u32 var80094af0 = 0;
u32 var80094af4 = 0;
u32 var80094af8 = 0;
u32 var80094afc = 0;
u32 var80094b00 = 0;
u32 var80094b04 = 0;
u32 var80094b08 = 0;
u32 var80094b0c = 0;
u32 var80094b10 = 0;
u32 var80094b14 = 0;
u32 var80094b18 = 0;
u32 var80094b1c = 0;
u32 var80094b20 = 0;
u32 var80094b24 = 0;
u32 var80094b28 = 0;
u32 var80094b2c = 0;
u32 var80094b30 = 0;
u32 var80094b34 = 0;
u32 var80094b38 = 0;
u32 var80094b3c = 0;
u32 var80094b40 = 0;
u32 var80094b44 = 0;
u32 var80094b48 = 0;
u32 var80094b4c = 0;
u32 var80094b50 = 0;
u32 var80094b54 = 0;
u32 var80094b58 = 0;
u32 var80094b5c = 0;
u32 var80094b60 = 0;
u32 var80094b64 = 0;
u32 var80094b68 = 0;
u32 var80094b6c = 0;
u32 var80094b70 = 0;
u32 var80094b74 = 0;
u32 var80094b78 = 0;
u32 var80094b7c = 0;
u32 var80094b80 = 0;
u32 var80094b84 = 0;
u32 var80094b88 = 0;
u32 var80094b8c = 0;
u32 var80094b90 = 0;
u32 var80094b94 = 0;
u32 var80094b98 = 0;
u32 var80094b9c = 0;
u32 var80094ba0 = 0;
u32 var80094ba4 = 0;
u32 var80094ba8 = 0;
u32 var80094bac = 0;
u32 var80094bb0 = 0;
u32 var80094bb4 = 0;
u32 var80094bb8 = 0;
u32 var80094bbc = 0;
u32 var80094bc0 = 0;
u32 var80094bc4 = 0;
u32 var80094bc8 = 0;
u32 var80094bcc = 0;
u32 var80094bd0 = 0;
u32 var80094bd4 = 0;
u32 var80094bd8 = 0;
u32 var80094bdc = 0;
u32 var80094be0 = 0;
u32 var80094be4 = 0;
u32 var80094be8 = 0;
u32 var80094bec = 0;
u32 var80094bf0 = 0;
u32 var80094bf4 = 0;
u32 var80094bf8 = 0;
u32 var80094bfc = 0;
u32 var80094c00 = 0;
u32 var80094c04 = 0;
u32 var80094c08 = 0;
u32 var80094c0c = 0;
u32 var80094c10 = 0;
u32 var80094c14 = 0;
u32 var80094c18 = 0;
u32 var80094c1c = 0;
u32 var80094c20 = 0;
u32 var80094c24 = 0;
u32 var80094c28 = 0;
u32 var80094c2c = 0;
u32 var80094c30 = 0;
u32 var80094c34 = 0;
u32 var80094c38 = 0;
u32 var80094c3c = 0;
u32 var80094c40 = 0;
u32 var80094c44 = 0;
u32 var80094c48 = 0;
u32 var80094c4c = 0;
u32 var80094c50 = 0;
u32 var80094c54 = 0;
u32 var80094c58 = 0;
u32 var80094c5c = 0;
u32 var80094c60 = 0;
u32 var80094c64 = 0;
u32 var80094c68 = 0;
u32 var80094c6c = 0;
u32 var80094c70 = 0;
u32 var80094c74 = 0;
u32 var80094c78 = 0;
u32 var80094c7c = 0;
u32 var80094c80 = 0;
u32 var80094c84 = 0;
u32 var80094c88 = 0;
u32 var80094c8c = 0;
u32 var80094c90 = 0;
u32 var80094c94 = 0;
u32 var80094c98 = 0;
u32 var80094c9c = 0;
u32 var80094ca0 = 0;
u32 var80094ca4 = 0;
u32 var80094ca8 = 0;
u32 var80094cac = 0;
u32 var80094cb0 = 0;
u32 var80094cb4 = 0;
u32 var80094cb8 = 0;
u32 var80094cbc = 0;
u32 var80094cc0 = 0;
u32 var80094cc4 = 0;
u32 var80094cc8 = 0;
u32 var80094ccc = 0;
u32 var80094cd0 = 0;
u32 var80094cd4 = 0;
u32 var80094cd8 = 0;
u32 var80094cdc = 0;
u32 var80094ce0 = 0;
u32 var80094ce4 = 0;
u32 var80094ce8 = 0;
u32 var80094cec = 0;
u32 var80094cf0 = 0;
u32 var80094cf4 = 0;
u32 var80094cf8 = 0;
u32 var80094cfc = 0;
u32 var80094d00 = 0;
u32 var80094d04 = 0;
u32 var80094d08 = 0;
u32 var80094d0c = 0;
u32 var80094d10 = 0;
u32 var80094d14 = 0;
u32 var80094d18 = 0;
u32 var80094d1c = 0;
u32 var80094d20 = 0;
u32 var80094d24 = 0;
u32 var80094d28 = 0;
u32 var80094d2c = 0;
u32 var80094d30 = 0;
u32 var80094d34 = 0;
u32 var80094d38 = 0;
u32 var80094d3c = 0;
u32 var80094d40 = 0;
u32 var80094d44 = 0;
u32 var80094d48 = 0;
u32 var80094d4c = 0;
u32 var80094d50 = 0;
u32 var80094d54 = 0;
u32 var80094d58 = 0;
u32 var80094d5c = 0;
u32 var80094d60 = 0;
u32 var80094d64 = 0;
u32 var80094d68 = 0;
u32 var80094d6c = 0;
u32 var80094d70 = 0;
u32 var80094d74 = 0;
u32 var80094d78 = 0;
u32 var80094d7c = 0;
u32 var80094d80 = 0;
u32 var80094d84 = 0;
u32 var80094d88 = 0;
u32 var80094d8c = 0;
u32 var80094d90 = 0;
u32 var80094d94 = 0;
u32 var80094d98 = 0;
u32 var80094d9c = 0;
u32 var80094da0 = 0;
u32 var80094da4 = 0;
u32 var80094da8 = 0;
u32 var80094dac = 0;
u32 var80094db0 = 0;
u32 var80094db4 = 0;
u32 var80094db8 = 0;
u32 var80094dbc = 0;
u32 var80094dc0 = 0;
u32 var80094dc4 = 0;
u32 var80094dc8 = 0;
u32 var80094dcc = 0;
u32 var80094dd0 = 0;
u32 var80094dd4 = 0;
u32 var80094dd8 = 0;
u32 var80094ddc = 0;
u32 var80094de0 = 0;
u32 var80094de4 = 0;
u8 var80094de8[0x20] = {0};
struct var80094ae8 var80094ae8[32] = {0};
u8 var80094de8[32] = {0};
OSMesg var80094e08 = NULL;
u32 var80094e0c = 0;
u32 var80094e10 = 0;

View File

@ -391,9 +391,9 @@ extern OSThread g_FaultThread;
extern u32 g_FaultSp;
extern OSMesgQueue g_FaultMesgQueue;
extern OSMesg g_FaultMesg;
extern u32 var80094ae0;
extern u32 var80094ae8;
extern u8 var80094de8[0x20];
extern volatile u32 var80094ae0;
extern struct var80094ae8 var80094ae8[32];
extern u8 var80094de8[32];
extern OSMesg var80094e08;
extern OSMesgQueue var80094e88;
extern u32 var80094ea0;

View File

@ -6980,4 +6980,13 @@ struct animationdefinition {
u8 flags;
};
struct var80094ae8 {
u32 unk00;
u32 unk04;
u32 unk08;
u32 unk0c;
u32 unk10;
u32 unk14;
};
#endif

View File

@ -206,61 +206,25 @@ void dmaCheckPiracy(void *memaddr, u32 len)
}
}
GLOBAL_ASM(
glabel func0000d350
/* d350: 27bdffb8 */ addiu $sp,$sp,-72
/* d354: afb2001c */ sw $s2,0x1c($sp)
/* d358: 3c128009 */ lui $s2,%hi(var80094ae0)
/* d35c: 26524ae0 */ addiu $s2,$s2,%lo(var80094ae0)
/* d360: 8e4e0000 */ lw $t6,0x0($s2)
/* d364: afbf002c */ sw $ra,0x2c($sp)
/* d368: afb50028 */ sw $s5,0x28($sp)
/* d36c: afb40024 */ sw $s4,0x24($sp)
/* d370: afb30020 */ sw $s3,0x20($sp)
/* d374: afb10018 */ sw $s1,0x18($sp)
/* d378: 11c0001c */ beqz $t6,.L0000d3ec
/* d37c: afb00014 */ sw $s0,0x14($sp)
/* d380: 3c158009 */ lui $s5,%hi(var80094de8)
/* d384: 3c138009 */ lui $s3,%hi(var80094e88)
/* d388: 26734e88 */ addiu $s3,$s3,%lo(var80094e88)
/* d38c: 26b54de8 */ addiu $s5,$s5,%lo(var80094de8)
/* d390: 27b40040 */ addiu $s4,$sp,0x40
/* d394: 24110020 */ addiu $s1,$zero,0x20
/* d398: 02602025 */ or $a0,$s3,$zero
.L0000d39c:
/* d39c: 02802825 */ or $a1,$s4,$zero
/* d3a0: 24060001 */ addiu $a2,$zero,0x1
/* d3a4: 0c0121bc */ jal osRecvMesg
/* d3a8: 00008025 */ or $s0,$zero,$zero
/* d3ac: 3c028009 */ lui $v0,%hi(var80094ae8)
/* d3b0: 24424ae8 */ addiu $v0,$v0,%lo(var80094ae8)
/* d3b4: 8fa30040 */ lw $v1,0x40($sp)
.L0000d3b8:
/* d3b8: 50620005 */ beql $v1,$v0,.L0000d3d0
/* d3bc: 02b07821 */ addu $t7,$s5,$s0
/* d3c0: 26100001 */ addiu $s0,$s0,0x1
/* d3c4: 1611fffc */ bne $s0,$s1,.L0000d3b8
/* d3c8: 24420018 */ addiu $v0,$v0,0x18
/* d3cc: 02b07821 */ addu $t7,$s5,$s0
.L0000d3d0:
/* d3d0: a1e00000 */ sb $zero,0x0($t7)
/* d3d4: 8e420000 */ lw $v0,0x0($s2)
/* d3d8: 2458ffff */ addiu $t8,$v0,-1
/* d3dc: ae580000 */ sw $t8,0x0($s2)
/* d3e0: 8e590000 */ lw $t9,0x0($s2)
/* d3e4: 5720ffed */ bnezl $t9,.L0000d39c
/* d3e8: 02602025 */ or $a0,$s3,$zero
.L0000d3ec:
/* d3ec: 8fbf002c */ lw $ra,0x2c($sp)
/* d3f0: 8fb00014 */ lw $s0,0x14($sp)
/* d3f4: 8fb10018 */ lw $s1,0x18($sp)
/* d3f8: 8fb2001c */ lw $s2,0x1c($sp)
/* d3fc: 8fb30020 */ lw $s3,0x20($sp)
/* d400: 8fb40024 */ lw $s4,0x24($sp)
/* d404: 8fb50028 */ lw $s5,0x28($sp)
/* d408: 03e00008 */ jr $ra
/* d40c: 27bd0048 */ addiu $sp,$sp,0x48
);
void func0000d350(void)
{
u32 stack;
struct var80094ae8 *msg;
s32 i;
while (var80094ae0) {
osRecvMesg(&var80094e88, (OSMesg) &msg, OS_MESG_BLOCK);
for (i = 0; i < ARRAYCOUNT(var80094ae8); i++) {
if (&var80094ae8[i] == msg) {
break;
}
}
var80094de8[i] = 0;
var80094ae0--;
}
}
void func0000d410(void *memaddr, void *romaddr, u32 len)
{