Decompile tagFindById

This commit is contained in:
Ryan Dwyer 2019-10-09 22:14:45 +10:00
parent f4cc5e5684
commit 94bb08bcb7
5 changed files with 3192 additions and 368 deletions

View File

@ -10633,7 +10633,7 @@ glabel ai00df
/* f057464: afbf0014 */ sw $ra,0x14($sp)
/* f057468: 01cf1821 */ addu $v1,$t6,$t7
/* f05746c: 90640002 */ lbu $a0,0x2($v1)
/* f057470: 0fc2554a */ jal func0f095528
/* f057470: 0fc2554a */ jal tagFindById
/* f057474: afa3001c */ sw $v1,0x1c($sp)
/* f057478: 10400017 */ beqz $v0,.L0f0574d8
/* f05747c: 8fa3001c */ lw $v1,0x1c($sp)
@ -16018,10 +16018,10 @@ glabel ai0141
/* f05bad8: afbf001c */ sw $ra,0x1c($sp)
/* f05badc: afb10018 */ sw $s1,0x18($sp)
/* f05bae0: 01cf8021 */ addu $s0,$t6,$t7
/* f05bae4: 0fc2554a */ jal func0f095528
/* f05bae4: 0fc2554a */ jal tagFindById
/* f05bae8: 92040002 */ lbu $a0,0x2($s0)
/* f05baec: 92040003 */ lbu $a0,0x3($s0)
/* f05baf0: 0fc2554a */ jal func0f095528
/* f05baf0: 0fc2554a */ jal tagFindById
/* f05baf4: afa2002c */ sw $v0,0x2c($sp)
/* f05baf8: 0c004b70 */ jal random
/* f05bafc: 00408825 */ or $s1,$v0,$zero
@ -16046,7 +16046,7 @@ glabel ai0141
/* f05bb48: 92040004 */ lbu $a0,0x4($s0)
/* f05bb4c: afa60020 */ sw $a2,0x20($sp)
/* f05bb50: a3b90036 */ sb $t9,0x36($sp)
/* f05bb54: 0fc2554a */ jal func0f095528
/* f05bb54: 0fc2554a */ jal tagFindById
/* f05bb58: afa3002c */ sw $v1,0x2c($sp)
/* f05bb5c: 8fa3002c */ lw $v1,0x2c($sp)
/* f05bb60: 84490006 */ lh $t1,0x6($v0)
@ -16062,7 +16062,7 @@ glabel ai0141
/* f05bb84: 92040005 */ lbu $a0,0x5($s0)
/* f05bb88: afa60020 */ sw $a2,0x20($sp)
/* f05bb8c: a3a50036 */ sb $a1,0x36($sp)
/* f05bb90: 0fc2554a */ jal func0f095528
/* f05bb90: 0fc2554a */ jal tagFindById
/* f05bb94: afa3002c */ sw $v1,0x2c($sp)
/* f05bb98: 8fa3002c */ lw $v1,0x2c($sp)
/* f05bb9c: 844b0006 */ lh $t3,0x6($v0)
@ -16079,7 +16079,7 @@ glabel ai0141
/* f05bbc4: 92040006 */ lbu $a0,0x6($s0)
/* f05bbc8: afa60020 */ sw $a2,0x20($sp)
/* f05bbcc: a3a50036 */ sb $a1,0x36($sp)
/* f05bbd0: 0fc2554a */ jal func0f095528
/* f05bbd0: 0fc2554a */ jal tagFindById
/* f05bbd4: afa3002c */ sw $v1,0x2c($sp)
/* f05bbd8: 8fa3002c */ lw $v1,0x2c($sp)
/* f05bbdc: 844d0006 */ lh $t5,0x6($v0)
@ -16093,7 +16093,7 @@ glabel ai0141
.L0f05bbfc:
/* f05bbfc: afa60020 */ sw $a2,0x20($sp)
/* f05bc00: a3a50036 */ sb $a1,0x36($sp)
/* f05bc04: 0fc2554a */ jal func0f095528
/* f05bc04: 0fc2554a */ jal tagFindById
/* f05bc08: afa3002c */ sw $v1,0x2c($sp)
/* f05bc0c: 8fa3002c */ lw $v1,0x2c($sp)
/* f05bc10: 844f0006 */ lh $t7,0x6($v0)
@ -16119,7 +16119,7 @@ glabel ai0141
.L0f05bc58:
/* f05bc58: 14400008 */ bnez $v0,.L0f05bc7c
/* f05bc5c: 24010001 */ addiu $at,$zero,0x1
/* f05bc60: 0fc2554a */ jal func0f095528
/* f05bc60: 0fc2554a */ jal tagFindById
/* f05bc64: 92040004 */ lbu $a0,0x4($s0)
/* f05bc68: 84490006 */ lh $t1,0x6($v0)
/* f05bc6c: a6290006 */ sh $t1,0x6($s1)
@ -16129,7 +16129,7 @@ glabel ai0141
.L0f05bc7c:
/* f05bc7c: 54410009 */ bnel $v0,$at,.L0f05bca4
/* f05bc80: 24010002 */ addiu $at,$zero,0x2
/* f05bc84: 0fc2554a */ jal func0f095528
/* f05bc84: 0fc2554a */ jal tagFindById
/* f05bc88: 92040005 */ lbu $a0,0x5($s0)
/* f05bc8c: 844b0006 */ lh $t3,0x6($v0)
/* f05bc90: a62b0006 */ sh $t3,0x6($s1)
@ -16140,7 +16140,7 @@ glabel ai0141
.L0f05bca4:
/* f05bca4: 14410008 */ bne $v0,$at,.L0f05bcc8
/* f05bca8: 00000000 */ sll $zero,$zero,0x0
/* f05bcac: 0fc2554a */ jal func0f095528
/* f05bcac: 0fc2554a */ jal tagFindById
/* f05bcb0: 92040006 */ lbu $a0,0x6($s0)
/* f05bcb4: 844d0006 */ lh $t5,0x6($v0)
/* f05bcb8: a62d0006 */ sh $t5,0x6($s1)
@ -16148,7 +16148,7 @@ glabel ai0141
/* f05bcc0: 10000007 */ beqz $zero,.L0f05bce0
/* f05bcc4: ae2e000c */ sw $t6,0xc($s1)
.L0f05bcc8:
/* f05bcc8: 0fc2554a */ jal func0f095528
/* f05bcc8: 0fc2554a */ jal tagFindById
/* f05bccc: 92040007 */ lbu $a0,0x7($s0)
/* f05bcd0: 844f0006 */ lh $t7,0x6($v0)
/* f05bcd4: a62f0006 */ sh $t7,0x6($s1)
@ -19194,13 +19194,13 @@ glabel ai01b1
/* f05e3c4: afb10018 */ sw $s1,0x18($sp)
/* f05e3c8: afb00014 */ sw $s0,0x14($sp)
/* f05e3cc: 01cfa821 */ addu $s5,$t6,$t7
/* f05e3d0: 0fc2554a */ jal func0f095528
/* f05e3d0: 0fc2554a */ jal tagFindById
/* f05e3d4: 92a40002 */ lbu $a0,0x2($s5)
/* f05e3d8: afa20058 */ sw $v0,0x58($sp)
/* f05e3dc: 0fc2554a */ jal func0f095528
/* f05e3dc: 0fc2554a */ jal tagFindById
/* f05e3e0: 92a40003 */ lbu $a0,0x3($s5)
/* f05e3e4: afa20054 */ sw $v0,0x54($sp)
/* f05e3e8: 0fc2554a */ jal func0f095528
/* f05e3e8: 0fc2554a */ jal tagFindById
/* f05e3ec: 92a40004 */ lbu $a0,0x4($s5)
/* f05e3f0: 0c004b70 */ jal random
/* f05e3f4: afa20050 */ sw $v0,0x50($sp)
@ -19293,20 +19293,20 @@ glabel ai01b1
.L0f05e530:
/* f05e530: 27b00044 */ addiu $s0,$sp,0x44
/* f05e534: 020b6021 */ addu $t4,$s0,$t3
/* f05e538: 0fc2554a */ jal func0f095528
/* f05e538: 0fc2554a */ jal tagFindById
/* f05e53c: 91840000 */ lbu $a0,0x0($t4)
/* f05e540: 8fa30058 */ lw $v1,0x58($sp)
/* f05e544: 844d0006 */ lh $t5,0x6($v0)
/* f05e548: a46d0006 */ sh $t5,0x6($v1)
/* f05e54c: 8c4e000c */ lw $t6,0xc($v0)
/* f05e550: ac6e000c */ sw $t6,0xc($v1)
/* f05e554: 0fc2554a */ jal func0f095528
/* f05e554: 0fc2554a */ jal tagFindById
/* f05e558: 92a4000a */ lbu $a0,0xa($s5)
/* f05e55c: 93af004b */ lbu $t7,0x4b($sp)
/* f05e560: 27b1003c */ addiu $s1,$sp,0x3c
/* f05e564: afa20058 */ sw $v0,0x58($sp)
/* f05e568: 022fc021 */ addu $t8,$s1,$t7
/* f05e56c: 0fc2554a */ jal func0f095528
/* f05e56c: 0fc2554a */ jal tagFindById
/* f05e570: 93040000 */ lbu $a0,0x0($t8)
/* f05e574: 84590006 */ lh $t9,0x6($v0)
/* f05e578: 8fa80058 */ lw $t0,0x58($sp)
@ -19314,18 +19314,18 @@ glabel ai01b1
/* f05e580: a5190006 */ sh $t9,0x6($t0)
/* f05e584: 8c49000c */ lw $t1,0xc($v0)
/* f05e588: ad09000c */ sw $t1,0xc($t0)
/* f05e58c: 0fc2554a */ jal func0f095528
/* f05e58c: 0fc2554a */ jal tagFindById
/* f05e590: 91440000 */ lbu $a0,0x0($t2)
/* f05e594: 8fa30054 */ lw $v1,0x54($sp)
/* f05e598: 844b0006 */ lh $t3,0x6($v0)
/* f05e59c: a46b0006 */ sh $t3,0x6($v1)
/* f05e5a0: 8c4c000c */ lw $t4,0xc($v0)
/* f05e5a4: ac6c000c */ sw $t4,0xc($v1)
/* f05e5a8: 0fc2554a */ jal func0f095528
/* f05e5a8: 0fc2554a */ jal tagFindById
/* f05e5ac: 92a4000b */ lbu $a0,0xb($s5)
/* f05e5b0: afa20054 */ sw $v0,0x54($sp)
/* f05e5b4: 02346821 */ addu $t5,$s1,$s4
/* f05e5b8: 0fc2554a */ jal func0f095528
/* f05e5b8: 0fc2554a */ jal tagFindById
/* f05e5bc: 91a40000 */ lbu $a0,0x0($t5)
/* f05e5c0: 844e0006 */ lh $t6,0x6($v0)
/* f05e5c4: 8faf0054 */ lw $t7,0x54($sp)
@ -19333,18 +19333,18 @@ glabel ai01b1
/* f05e5cc: a5ee0006 */ sh $t6,0x6($t7)
/* f05e5d0: 8c58000c */ lw $t8,0xc($v0)
/* f05e5d4: adf8000c */ sw $t8,0xc($t7)
/* f05e5d8: 0fc2554a */ jal func0f095528
/* f05e5d8: 0fc2554a */ jal tagFindById
/* f05e5dc: 93240000 */ lbu $a0,0x0($t9)
/* f05e5e0: 8fa30050 */ lw $v1,0x50($sp)
/* f05e5e4: 84490006 */ lh $t1,0x6($v0)
/* f05e5e8: a4690006 */ sh $t1,0x6($v1)
/* f05e5ec: 8c48000c */ lw $t0,0xc($v0)
/* f05e5f0: ac68000c */ sw $t0,0xc($v1)
/* f05e5f4: 0fc2554a */ jal func0f095528
/* f05e5f4: 0fc2554a */ jal tagFindById
/* f05e5f8: 92a4000c */ lbu $a0,0xc($s5)
/* f05e5fc: afa20050 */ sw $v0,0x50($sp)
/* f05e600: 02335021 */ addu $t2,$s1,$s3
/* f05e604: 0fc2554a */ jal func0f095528
/* f05e604: 0fc2554a */ jal tagFindById
/* f05e608: 91440000 */ lbu $a0,0x0($t2)
/* f05e60c: 844b0006 */ lh $t3,0x6($v0)
/* f05e610: 8fac0050 */ lw $t4,0x50($sp)
@ -19641,7 +19641,7 @@ glabel ai01b9
/* f05e9cc: 24040008 */ addiu $a0,$zero,0x8
/* f05e9d0: ae190004 */ sw $t9,0x4($s0)
.L0f05e9d4:
/* f05e9d4: 0fc2554a */ jal func0f095528
/* f05e9d4: 0fc2554a */ jal tagFindById
/* f05e9d8: 00000000 */ sll $zero,$zero,0x0
/* f05e9dc: 0c004b70 */ jal random
/* f05e9e0: 00409025 */ or $s2,$v0,$zero
@ -19653,7 +19653,7 @@ glabel ai01b9
/* f05e9f8: 93b80048 */ lbu $t8,0x48($sp)
/* f05e9fc: 1540000a */ bnez $t2,.L0f05ea28
/* f05ea00: 00000000 */ sll $zero,$zero,0x0
/* f05ea04: 0fc2554a */ jal func0f095528
/* f05ea04: 0fc2554a */ jal tagFindById
/* f05ea08: 02202025 */ or $a0,$s1,$zero
/* f05ea0c: 844b0006 */ lh $t3,0x6($v0)
/* f05ea10: 02116821 */ addu $t5,$s0,$s1
@ -19675,7 +19675,7 @@ glabel ai01b9
/* f05ea48: 24420001 */ addiu $v0,$v0,0x1
.L0f05ea4c:
/* f05ea4c: 00402025 */ or $a0,$v0,$zero
/* f05ea50: 0fc2554a */ jal func0f095528
/* f05ea50: 0fc2554a */ jal tagFindById
/* f05ea54: 02028821 */ addu $s1,$s0,$v0
/* f05ea58: 84480006 */ lh $t0,0x6($v0)
/* f05ea5c: a6480006 */ sh $t0,0x6($s2)

View File

@ -60434,24 +60434,16 @@ glabel func0f0953cc
/* f095524: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel func0f095528
/* f095528: 0480000b */ bltz $a0,.L0f095558
/* f09552c: 00001825 */ or $v1,$zero,$zero
/* f095530: 3c0e800a */ lui $t6,0x800a
/* f095534: 8dced0c4 */ lw $t6,-0x2f3c($t6)
/* f095538: 3c0f800a */ lui $t7,0x800a
/* f09553c: 008e082a */ slt $at,$a0,$t6
/* f095540: 10200005 */ beqz $at,.L0f095558
/* f095544: 00000000 */ sll $zero,$zero,0x0
/* f095548: 8defd0c8 */ lw $t7,-0x2f38($t7)
/* f09554c: 0004c080 */ sll $t8,$a0,0x2
/* f095550: 01f8c821 */ addu $t9,$t7,$t8
/* f095554: 8f230000 */ lw $v1,0x0($t9)
.L0f095558:
/* f095558: 03e00008 */ jr $ra
/* f09555c: 00601025 */ or $v0,$v1,$zero
);
struct tag *tagFindById(s32 tag_id)
{
struct tag *tag = NULL;
if (tag_id >= 0 && tag_id < g_NumTags) {
tag = g_TagPtrs[tag_id];
}
return tag;
}
GLOBAL_ASM(
glabel func0f095560
@ -60485,7 +60477,7 @@ GLOBAL_ASM(
glabel func0f0955b0
/* f0955b0: 27bdffe8 */ addiu $sp,$sp,-24
/* f0955b4: afbf0014 */ sw $ra,0x14($sp)
/* f0955b8: 0fc2554a */ jal func0f095528
/* f0955b8: 0fc2554a */ jal tagFindById
/* f0955bc: 00000000 */ sll $zero,$zero,0x0
/* f0955c0: 10400002 */ beqz $v0,.L0f0955cc
/* f0955c4: 00001825 */ or $v1,$zero,$zero

View File

@ -9,3 +9,9 @@
u8 padding[0xf1a0];
struct g_vars g_Vars;
// 8009d0c4
s32 g_NumTags;
// 8009d0c8
struct tag **g_TagPtrs;

File diff suppressed because it is too large Load Diff

View File

@ -255,6 +255,15 @@ struct defaultobj {
/*0x62*/ u16 aireturnlist;
};
struct tag {
// These three words are possibly the same values as defined in the setup
// file, but this just a guess.
u32 unk00;
u32 unk04;
u32 unk08;
struct defaultobj *obj;
};
struct otheraidata {
/*0x00*/ u32 unk00;
/*0x04*/ u32 unk04;