diff --git a/src/sgap_8.c b/src/sgap_8.c index ad54a90988..5c7208cf7e 100644 --- a/src/sgap_8.c +++ b/src/sgap_8.c @@ -1,6 +1,131 @@ #include "common.h" -INCLUDE_ASM("asm/nonmatchings/sgap_8", _SsVmKeyOnNow); +__asm__( + ".text\n" + ".align\t2\n" + ".globl\t_SsVmKeyOnNow\n" + ".type\t_SsVmKeyOnNow, @function\n" + ".ent\t_SsVmKeyOnNow\n" + "_SsVmKeyOnNow:\n" + ".set\tnoreorder\n" + "lui $v0, %hi(D_800A6580)\n" + "lw $v0, %lo(D_800A6580)($v0)\n" + "nop\n" + "lbu $a0, 24($v0)\n" + "lui $v1, %hi(D_800B9B24)\n" + "lbu $v1, %lo(D_800B9B24)($v1)\n" + "sll $v0, $a0, 14\n" + "subu $v0, $v0, $a0\n" + "mult $v1, $v0\n" + "mflo $v1\n" + "lui $v0, 0x8206\n" + "ori $v0, $v0, 0x1029\n" + "mult $v1, $v0\n" + "lui $a0, %hi(D_800B9B2A)\n" + "lbu $a0, %lo(D_800B9B2A)($a0)\n" + "mfhi $v0\n" + "addu $v0, $v0, $v1\n" + "sra $v0, $v0, 13\n" + "sra $v1, $v1, 31\n" + "subu $a3, $v0, $v1\n" + "mult $a3, $a0\n" + "mflo $v1\n" + "lui $v0, %hi(D_800B9B2D)\n" + "lbu $v0, %lo(D_800B9B2D)($v0)\n" + "nop\n" + "mult $v1, $v0\n" + "mflo $v0\n" + "lui $a0, 0x040C\n" + "ori $a0, $a0, 0x2051\n" + "multu $v0, $a0\n" + "addiu $sp, $sp, -16\n" + "lui $v1, %hi(D_800B9B3A)\n" + "lh $v1, %lo(D_800B9B3A)($v1)\n" + "addu $t0, $a1, $zero\n" + "sll $t1, $v1, 3\n" + "lui $v1, %hi(D_800B9B36)\n" + "lhu $v1, %lo(D_800B9B36)($v1)\n" + "mfhi $a0\n" + "subu $v0, $v0, $a0\n" + "srl $v0, $v0, 1\n" + "addu $a0, $a0, $v0\n" + "srl $a2, $a0, 13\n" + "andi $a0, $v1, 0xFF\n" + "sll $a0, $a0, 2\n" + "sll $v1, $v1, 16\n" + "sra $a1, $v1, 16\n" + "srl $v1, $v1, 24\n" + "sll $v0, $v1, 1\n" + "addu $v0, $v0, $v1\n" + "sll $v0, $v0, 2\n" + "subu $v0, $v0, $v1\n" + "lui $at, %hi(D_800C73D8)\n" + "addu $at, $at, $a0\n" + "lw $v1, %lo(D_800C73D8)($at)\n" + "sll $v0, $v0, 4\n" + "addu $v1, $v1, $v0\n" + "addiu $v0, $zero, 0x21\n" + "beq $a1, $v0, .L80040A84\n" + " addu $a3, $a2, $zero\n" + "lhu $v0, 88($v1)\n" + "nop\n" + "mult $a2, $v0\n" + "mflo $v0\n" + "lhu $v1, 90($v1)\n" + "nop\n" + "mult $a2, $v1\n" + "mflo $v1\n" + "lui $a0, 0x0204\n" + "ori $a0, $a0, 0x0811\n" + "multu $v0, $a0\n" + "mfhi $a1\n" + "nop\n" + "nop\n" + "multu $v1, $a0\n" + "subu $v0, $v0, $a1\n" + "srl $v0, $v0, 1\n" + "addu $a1, $a1, $v0\n" + "srl $a3, $a1, 6\n" + "mfhi $a0\n" + "subu $v1, $v1, $a0\n" + "srl $v1, $v1, 1\n" + "addu $a0, $a0, $v1\n" + "srl $a2, $a0, 6\n" + ".L80040A84:\n" + "lui $v1, %hi(D_800B9B2E)\n" + "lbu $v1, %lo(D_800B9B2E)($v1)\n" + "nop\n" + "sltiu $v0, $v1, 0x40\n" + "beqz $v0, .L80040AC8\n" + " mult $a2, $v1\n" + "mflo $v0\n" + "lui $v1, 0x0410\n" + "ori $v1, $v1, 0x4105\n" + "multu $v0, $v1\n" + "addu $a1, $a3, $zero\n" + "mfhi $v1\n" + "subu $v0, $v0, $v1\n" + "srl $v0, $v0, 1\n" + "addu $v1, $v1, $v0\n" + "j VM_NOWON_OBJ_1C0\n" + " srl $a2, $v1, 5\n" + ".L80040AC8:\n" + "addiu $v0, $zero, 0x7F\n" + "subu $v0, $v0, $v1\n" + "mult $a3, $v0\n" + "mflo $v0\n" + "lui $v1, 0x0410\n" + "ori $v1, $v1, 0x4105\n" + "multu $v0, $v1\n" + "mfhi $v1\n" + "subu $v0, $v0, $v1\n" + "srl $v0, $v0, 1\n" + "addu $v1, $v1, $v0\n" + "srl $a1, $v1, 5\n" + ".set\treorder\n" + ".size\t_SsVmKeyOnNow, . - _SsVmKeyOnNow\n" + ".end\t_SsVmKeyOnNow\n" +); __asm__( ".text\n"