mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-01 07:40:42 -04:00
feat(decomp): main lane m74 — 1 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked BYTE-IDENTICAL against config/check.us.sha before anything was credited. _SsVmKeyOnNow
This commit is contained in:
+126
-1
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user