Decompile stageLoadAllAilistModels

This commit is contained in:
Ryan Dwyer 2022-08-07 21:03:30 +10:00
parent b3452a02a2
commit 3ef6cb880b
1 changed files with 44 additions and 186 deletions

View File

@ -127,193 +127,51 @@ void stageAllocateBgChrs(void)
g_SquadronList = mempAlloc(0x220, MEMPOOL_STAGE);
}
GLOBAL_ASM(
glabel debugLoadAllAilistModels
/* f00c07c: 27bdffc8 */ addiu $sp,$sp,-56
/* f00c080: 3c0e800a */ lui $t6,%hi(g_StageSetup+0x18)
/* f00c084: 8dced048 */ lw $t6,%lo(g_StageSetup+0x18)($t6)
/* f00c088: afbf0034 */ sw $ra,0x34($sp)
/* f00c08c: afb70030 */ sw $s7,0x30($sp)
/* f00c090: afb6002c */ sw $s6,0x2c($sp)
/* f00c094: afb50028 */ sw $s5,0x28($sp)
/* f00c098: afb40024 */ sw $s4,0x24($sp)
/* f00c09c: afb30020 */ sw $s3,0x20($sp)
/* f00c0a0: afb2001c */ sw $s2,0x1c($sp)
/* f00c0a4: afb10018 */ sw $s1,0x18($sp)
/* f00c0a8: afb00014 */ sw $s0,0x14($sp)
/* f00c0ac: 8dd00000 */ lw $s0,0x0($t6)
/* f00c0b0: 241500c8 */ addiu $s5,$zero,0xc8
/* f00c0b4: 241600c9 */ addiu $s6,$zero,0xc9
/* f00c0b8: 12000052 */ beqz $s0,.L0f00c204
/* f00c0bc: 0000b825 */ or $s7,$zero,$zero
/* f00c0c0: 241400c7 */ addiu $s4,$zero,0xc7
/* f00c0c4: 241300c6 */ addiu $s3,$zero,0xc6
/* f00c0c8: 2412001c */ addiu $s2,$zero,0x1c
/* f00c0cc: 24110004 */ addiu $s1,$zero,0x4
.L0f00c0d0:
/* f00c0d0: 92030000 */ lbu $v1,0x0($s0)
.L0f00c0d4:
/* f00c0d4: 3c0f800a */ lui $t7,%hi(g_StageSetup+0x18)
/* f00c0d8: 16230004 */ bne $s1,$v1,.L0f00c0ec
/* f00c0dc: 00000000 */ nop
/* f00c0e0: 8defd048 */ lw $t7,%lo(g_StageSetup+0x18)($t7)
/* f00c0e4: 10000042 */ b .L0f00c1f0
/* f00c0e8: 01f71021 */ addu $v0,$t7,$s7
.L0f00c0ec:
/* f00c0ec: 5072000c */ beql $v1,$s2,.L0f00c120
/* f00c0f0: 92180002 */ lbu $t8,0x2($s0)
/* f00c0f4: 10730013 */ beq $v1,$s3,.L0f00c144
/* f00c0f8: 00000000 */ nop
/* f00c0fc: 1074001c */ beq $v1,$s4,.L0f00c170
/* f00c100: 00000000 */ nop
/* f00c104: 50750026 */ beql $v1,$s5,.L0f00c1a0
/* f00c108: 920a0002 */ lbu $t2,0x2($s0)
/* f00c10c: 5076002f */ beql $v1,$s6,.L0f00c1cc
/* f00c110: 920d0002 */ lbu $t5,0x2($s0)
/* f00c114: 10000032 */ b .L0f00c1e0
/* f00c118: 02002025 */ or $a0,$s0,$zero
/* f00c11c: 92180002 */ lbu $t8,0x2($s0)
.L0f00c120:
/* f00c120: 92080003 */ lbu $t0,0x3($s0)
/* f00c124: 0018ca00 */ sll $t9,$t8,0x8
/* f00c128: 03281025 */ or $v0,$t9,$t0
/* f00c12c: 0fc2486d */ jal setupLoadModeldef
/* f00c130: 3044ffff */ andi $a0,$v0,0xffff
/* f00c134: 5040002a */ beqzl $v0,.L0f00c1e0
/* f00c138: 02002025 */ or $a0,$s0,$zero
/* f00c13c: 10000028 */ b .L0f00c1e0
/* f00c140: 02002025 */ or $a0,$s0,$zero
.L0f00c144:
/* f00c144: 0fc0b38c */ jal bodyLoad
/* f00c148: 92040002 */ lbu $a0,0x2($s0)
/* f00c14c: 82040003 */ lb $a0,0x3($s0)
/* f00c150: 04820023 */ bltzl $a0,.L0f00c1e0
/* f00c154: 02002025 */ or $a0,$s0,$zero
/* f00c158: 0fc0b38c */ jal bodyLoad
/* f00c15c: 00000000 */ nop
/* f00c160: 5040001f */ beqzl $v0,.L0f00c1e0
/* f00c164: 02002025 */ or $a0,$s0,$zero
/* f00c168: 1000001d */ b .L0f00c1e0
/* f00c16c: 02002025 */ or $a0,$s0,$zero
.L0f00c170:
/* f00c170: 0fc0b38c */ jal bodyLoad
/* f00c174: 92040002 */ lbu $a0,0x2($s0)
/* f00c178: 82040003 */ lb $a0,0x3($s0)
/* f00c17c: 04820018 */ bltzl $a0,.L0f00c1e0
/* f00c180: 02002025 */ or $a0,$s0,$zero
/* f00c184: 0fc0b38c */ jal bodyLoad
/* f00c188: 00000000 */ nop
/* f00c18c: 50400014 */ beqzl $v0,.L0f00c1e0
/* f00c190: 02002025 */ or $a0,$s0,$zero
/* f00c194: 10000012 */ b .L0f00c1e0
/* f00c198: 02002025 */ or $a0,$s0,$zero
/* f00c19c: 920a0002 */ lbu $t2,0x2($s0)
.L0f00c1a0:
/* f00c1a0: 920c0003 */ lbu $t4,0x3($s0)
/* f00c1a4: 000a5a00 */ sll $t3,$t2,0x8
/* f00c1a8: 0fc2486d */ jal setupLoadModeldef
/* f00c1ac: 016c2025 */ or $a0,$t3,$t4
/* f00c1b0: 0fc04558 */ jal weaponLoadProjectileModels
/* f00c1b4: 92040004 */ lbu $a0,0x4($s0)
/* f00c1b8: 50400009 */ beqzl $v0,.L0f00c1e0
/* f00c1bc: 02002025 */ or $a0,$s0,$zero
/* f00c1c0: 10000007 */ b .L0f00c1e0
/* f00c1c4: 02002025 */ or $a0,$s0,$zero
/* f00c1c8: 920d0002 */ lbu $t5,0x2($s0)
.L0f00c1cc:
/* f00c1cc: 920f0003 */ lbu $t7,0x3($s0)
/* f00c1d0: 000d7200 */ sll $t6,$t5,0x8
/* f00c1d4: 0fc2486d */ jal setupLoadModeldef
/* f00c1d8: 01cf2025 */ or $a0,$t6,$t7
/* f00c1dc: 02002025 */ or $a0,$s0,$zero
.L0f00c1e0:
/* f00c1e0: 0fc136d0 */ jal chraiGetCommandLength
/* f00c1e4: 00002825 */ or $a1,$zero,$zero
/* f00c1e8: 1000ffb9 */ b .L0f00c0d0
/* f00c1ec: 02028021 */ addu $s0,$s0,$v0
.L0f00c1f0:
/* f00c1f0: 8c500008 */ lw $s0,0x8($v0)
/* f00c1f4: 26f70008 */ addiu $s7,$s7,0x8
/* f00c1f8: 24420008 */ addiu $v0,$v0,0x8
/* f00c1fc: 5600ffb5 */ bnezl $s0,.L0f00c0d4
/* f00c200: 92030000 */ lbu $v1,0x0($s0)
.L0f00c204:
/* f00c204: 8fbf0034 */ lw $ra,0x34($sp)
/* f00c208: 8fb00014 */ lw $s0,0x14($sp)
/* f00c20c: 8fb10018 */ lw $s1,0x18($sp)
/* f00c210: 8fb2001c */ lw $s2,0x1c($sp)
/* f00c214: 8fb30020 */ lw $s3,0x20($sp)
/* f00c218: 8fb40024 */ lw $s4,0x24($sp)
/* f00c21c: 8fb50028 */ lw $s5,0x28($sp)
/* f00c220: 8fb6002c */ lw $s6,0x2c($sp)
/* f00c224: 8fb70030 */ lw $s7,0x30($sp)
/* f00c228: 03e00008 */ jr $ra
/* f00c22c: 27bd0038 */ addiu $sp,$sp,0x38
);
void stageLoadAllAilistModels(void)
{
u8 *cmd = g_StageSetup.ailists[0].list;
s32 i = 0;
u16 id;
// Mismatch: regalloc near 19c
//void debugLoadAllAilistModels(void)
//{
// u8 *cmd = g_StageSetup.ailists[0].list;
// s32 i = 0;
// s32 id;
//
// if (!cmd) {
// return;
// }
//
// do {
// while (true) {
// if (cmd[0] == AICMD_END) {
// break;
// }
//
// switch (cmd[0]) {
// case AICMD_DROPITEM: // 120
// id = cmd[3] | (cmd[2] << 8);
//
// if (setupLoadModeldef(id & 0xffff)) {
// // empty
// }
// break;
// case AICMD_SPAWNCHRATPAD: // 144
// if (bodyLoad(cmd[2])) {
// // empty
// }
// if ((s8)cmd[3] >= 0 && bodyLoad((s8)cmd[3])) {
// // empty
// }
// break;
// case AICMD_SPAWNCHRATCHR: // 170
// if (bodyLoad(cmd[2])) {
// // empty
// }
// if ((s8)cmd[3] >= 0 && bodyLoad((s8)cmd[3])) {
// // empty
// }
// break;
// case AICMD_EQUIPWEAPON: // 19c
// if (setupLoadModeldef(cmd[3] | (cmd[2] << 8))) {
// // empty
// }
// if (weaponLoadProjectileModels(cmd[4])) {
// // empty
// }
// break;
// case AICMD_EQUIPHAT: // 1c8
// if (setupLoadModeldef(cmd[3] | (cmd[2] << 8))) {
// // empty
// }
// break;
// }
//
// cmd += chraiGetCommandLength(cmd, 0);
// }
//
// i++;
// cmd = g_StageSetup.ailists[i].list;
// } while (cmd);
//}
if (!cmd) {
return;
}
do {
while (true) {
if (cmd[0] == AICMD_END) {
break;
}
switch (cmd[0]) {
case AICMD_DROPITEM:
id = cmd[3] | (cmd[2] << 8);
if (setupLoadModeldef(id));
break;
case AICMD_SPAWNCHRATPAD:
bodyLoad(cmd[2]);
if ((s8)cmd[3] >= 0 && bodyLoad((s8)cmd[3]));
break;
case AICMD_SPAWNCHRATCHR:
bodyLoad(cmd[2]);
if ((s8)cmd[3] >= 0 && bodyLoad((s8)cmd[3]));
break;
case AICMD_EQUIPWEAPON:
setupLoadModeldef(cmd[3] | (cmd[2] << 8));
if (weaponLoadProjectileModels(cmd[4]));
break;
case AICMD_EQUIPHAT:
setupLoadModeldef(cmd[3] | (cmd[2] << 8));
break;
}
cmd += chraiGetCommandLength(cmd, 0);
}
i++;
cmd = g_StageSetup.ailists[i].list;
} while (cmd);
}
void func0f00c230(void)
{