mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-30 07:31:59 -04:00
352d0b6c31
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. func_80011680 vmNoiseOn
287 lines
7.2 KiB
C
287 lines
7.2 KiB
C
#include "common.h"
|
|
|
|
|
|
__asm__(
|
|
".text\n"
|
|
".align\t2\n"
|
|
".globl\tvmNoiseOn\n"
|
|
".type\tvmNoiseOn, @function\n"
|
|
".ent\tvmNoiseOn\n"
|
|
"vmNoiseOn:\n"
|
|
".set\tnoreorder\n"
|
|
"lui $v1, %hi(D_800B9B36)\n"
|
|
"lhu $v1, %lo(D_800B9B36)($v1)\n"
|
|
"addu $t2, $a0, $zero\n"
|
|
"andi $a0, $v1, 0xFF\n"
|
|
"sll $a0, $a0, 2\n"
|
|
"srl $v1, $v1, 8\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 $a0, %lo(D_800C73D8)($at)\n"
|
|
"sll $v0, $v0, 4\n"
|
|
"addu $a0, $a0, $v0\n"
|
|
"lhu $v0, 88($a0)\n"
|
|
"lui $v1, %hi(D_800B9B2A)\n"
|
|
"lbu $v1, %lo(D_800B9B2A)($v1)\n"
|
|
"sll $a1, $v0, 7\n"
|
|
"addu $a1, $a1, $v0\n"
|
|
"mult $a1, $v1\n"
|
|
"lhu $a0, 90($a0)\n"
|
|
"mflo $a1\n"
|
|
"sll $v0, $a0, 7\n"
|
|
"addu $a3, $v0, $a0\n"
|
|
"mult $a3, $v1\n"
|
|
"mflo $v1\n"
|
|
"lui $a2, 0x204\n"
|
|
"ori $a2, $a2, 0x811\n"
|
|
"multu $a1, $a2\n"
|
|
"mfhi $v0\n"
|
|
"nop\n"
|
|
"nop\n"
|
|
"multu $v1, $a2\n"
|
|
"lui $a0, %hi(D_800B9B2D)\n"
|
|
"lbu $a0, %lo(D_800B9B2D)($a0)\n"
|
|
"subu $a1, $a1, $v0\n"
|
|
"srl $a1, $a1, 1\n"
|
|
"mfhi $a3\n"
|
|
"addu $v0, $v0, $a1\n"
|
|
"srl $a1, $v0, 6\n"
|
|
"mult $a1, $a0\n"
|
|
"subu $v1, $v1, $a3\n"
|
|
"srl $v1, $v1, 1\n"
|
|
"mflo $a1\n"
|
|
"addu $a3, $a3, $v1\n"
|
|
"srl $a3, $a3, 6\n"
|
|
"mult $a3, $a0\n"
|
|
"mflo $a0\n"
|
|
"nop\n"
|
|
"nop\n"
|
|
"multu $a1, $a2\n"
|
|
"mfhi $v0\n"
|
|
"nop\n"
|
|
"nop\n"
|
|
"multu $a0, $a2\n"
|
|
"addiu $sp, $sp, -8\n"
|
|
"lui $v1, %hi(D_8006B8FC)\n"
|
|
"lw $v1, %lo(D_8006B8FC)($v1)\n"
|
|
"lui $t0, %hi(D_800B9B2E)\n"
|
|
"lbu $t0, %lo(D_800B9B2E)($t0)\n"
|
|
"lhu $t1, 426($v1)\n"
|
|
"subu $a1, $a1, $v0\n"
|
|
"srl $a1, $a1, 1\n"
|
|
"addu $v0, $v0, $a1\n"
|
|
"srl $a1, $v0, 6\n"
|
|
"sltiu $v0, $t0, 0x40\n"
|
|
"mfhi $a2\n"
|
|
"subu $a0, $a0, $a2\n"
|
|
"srl $a0, $a0, 1\n"
|
|
"addu $a2, $a2, $a0\n"
|
|
"beqz $v0, .L800404F4\n"
|
|
" srl $a3, $a2, 6\n"
|
|
"mult $a3, $t0\n"
|
|
"mflo $v0\n"
|
|
"lui $v1, 0x410\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"
|
|
"j VM_NO1_OBJ_184\n"
|
|
" srl $a2, $v1, 5\n"
|
|
".L800404F4:\n"
|
|
"addiu $v0, $zero, 0x7F\n"
|
|
"subu $v0, $v0, $t0\n"
|
|
"mult $a1, $v0\n"
|
|
"mflo $v0\n"
|
|
"lui $v1, 0x410\n"
|
|
"ori $v1, $v1, 0x4105\n"
|
|
"multu $v0, $v1\n"
|
|
"addu $a2, $a3, $zero\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\tvmNoiseOn, . - vmNoiseOn\n"
|
|
".end\tvmNoiseOn\n"
|
|
);
|
|
|
|
__asm__(
|
|
".text\n"
|
|
".align\t2\n"
|
|
".globl\tVM_NO1_OBJ_184\n"
|
|
".type\tVM_NO1_OBJ_184, @function\n"
|
|
".ent\tVM_NO1_OBJ_184\n"
|
|
"VM_NO1_OBJ_184:\n"
|
|
".set\tnoreorder\n"
|
|
"lui $t0, %hi(D_800B9B2B)\n"
|
|
"lbu $t0, %lo(D_800B9B2B)($t0)\n"
|
|
"nop\n"
|
|
"sltiu $v0, $t0, 0x40\n"
|
|
"beqz $v0, .L80040568\n"
|
|
" mult $a2, $t0\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"
|
|
"j VM_NO1_OBJ_1F4\n"
|
|
" srl $a2, $v1, 5\n"
|
|
".L80040568:\n"
|
|
"addiu $v0, $zero, 0x7F\n"
|
|
"subu $v0, $v0, $t0\n"
|
|
"mult $a1, $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\tVM_NO1_OBJ_184, . - VM_NO1_OBJ_184\n"
|
|
".end\tVM_NO1_OBJ_184\n"
|
|
);
|
|
|
|
__asm__(
|
|
".text\n"
|
|
".align\t2\n"
|
|
".globl\tVM_NO1_OBJ_1F4\n"
|
|
".type\tVM_NO1_OBJ_1F4, @function\n"
|
|
".ent\tVM_NO1_OBJ_1F4\n"
|
|
"VM_NO1_OBJ_1F4:\n"
|
|
".set\tnoreorder\n"
|
|
"lui $t0, %hi(D_800B9B25)\n"
|
|
"lbu $t0, %lo(D_800B9B25)($t0)\n"
|
|
"nop\n"
|
|
"sltiu $v0, $t0, 0x40\n"
|
|
"beqz $v0, .L800405D8\n"
|
|
" mult $t0, $a2\n"
|
|
"mflo $v0\n"
|
|
"lui $v1, 0x410\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"
|
|
"j VM_NO1_OBJ_264\n"
|
|
" srl $a2, $v1, 5\n"
|
|
".L800405D8:\n"
|
|
"addiu $v0, $zero, 0x7F\n"
|
|
"subu $v0, $v0, $t0\n"
|
|
"mult $a1, $v0\n"
|
|
"mflo $v0\n"
|
|
"lui $v1, 0x410\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\tVM_NO1_OBJ_1F4, . - VM_NO1_OBJ_1F4\n"
|
|
".end\tVM_NO1_OBJ_1F4\n"
|
|
);
|
|
|
|
__asm__(
|
|
".text\n"
|
|
".align\t2\n"
|
|
".globl\tVM_NO1_OBJ_264\n"
|
|
".ent\tVM_NO1_OBJ_264\n"
|
|
"VM_NO1_OBJ_264:\n"
|
|
".set\tnoreorder\n"
|
|
"lui $v1, %hi(D_800A6434)\n"
|
|
"lh $v1, %lo(D_800A6434)($v1)\n"
|
|
"addiu $v0, $zero, 0x1\n"
|
|
"bne $v1, $v0, .L80040630\n"
|
|
" .word 0x00A6102B\n"
|
|
"beqz $v0, .L8004062C\n"
|
|
" nop\n"
|
|
"j VM_NO1_OBJ_28C\n"
|
|
" addu $a1, $a2, $zero\n"
|
|
".L8004062C:\n"
|
|
"addu $a2, $a1, $zero\n"
|
|
".L80040630:\n"
|
|
".set\treorder\n"
|
|
".end\tVM_NO1_OBJ_264\n"
|
|
);
|
|
|
|
__asm__(
|
|
".text\n"
|
|
".align 2\n"
|
|
".globl VM_NO1_OBJ_28C\n"
|
|
".ent\tVM_NO1_OBJ_28C\n"
|
|
"VM_NO1_OBJ_28C:\n"
|
|
".frame $sp,0,$31\n"
|
|
".mask 0,0\n"
|
|
".fmask 0,0\n"
|
|
".set\tnoreorder\n"
|
|
"lui $v0, %hi(D_800B9B22)\n"
|
|
"lbu $v0, %lo(D_800B9B22)($v0)\n"
|
|
"lui $v1, %hi(D_800B9B30)\n"
|
|
"lbu $v1, %lo(D_800B9B30)($v1)\n"
|
|
"andi $a0, $t1, 0xC0FF\n"
|
|
"subu $v0, $v0, $v1\n"
|
|
"andi $v0, $v0, 0x3F\n"
|
|
"sll $v0, $v0, 8\n"
|
|
"or $t1, $a0, $v0\n"
|
|
"lui $v1, %hi(D_8006B8FC)\n"
|
|
"lw $v1, %lo(D_8006B8FC)($v1)\n"
|
|
"andi $a0, $t2, 0xFF\n"
|
|
"sh $t1, 426($v1)\n"
|
|
"sll $v1, $a0, 4\n"
|
|
"lui $at, %hi(D_800B9B5A)\n"
|
|
"addu $at, $at, $v1\n"
|
|
"sh $a2, %lo(D_800B9B5A)($at)\n"
|
|
"lui $at, %hi(D_800A4620)\n"
|
|
"addu $at, $at, $a0\n"
|
|
"lbu $v0, %lo(D_800A4620)($at)\n"
|
|
"lui $at, %hi(D_800B9B58)\n"
|
|
"addu $at, $at, $v1\n"
|
|
"sh $a1, %lo(D_800B9B58)($at)\n"
|
|
"ori $v0, $v0, 0x3\n"
|
|
"lui $at, %hi(D_800A4620)\n"
|
|
"addu $at, $at, $a0\n"
|
|
"sb $v0, %lo(D_800A4620)($at)\n"
|
|
"sltiu $v0, $a0, 0x10\n"
|
|
"beqz $v0, .L800406B4\n"
|
|
"addiu $v0, $zero, 0x1\n"
|
|
"sllv $a3, $v0, $a0\n"
|
|
"j VM_NO1_OBJ_31C\n"
|
|
"addu $a2, $zero, $zero\n"
|
|
".L800406B4:\n"
|
|
"addu $a3, $zero, $zero\n"
|
|
"addiu $v1, $a0, -0x10\n"
|
|
"sllv $a2, $v0, $v1\n"
|
|
".set\treorder\n"
|
|
".end\tVM_NO1_OBJ_28C\n");
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/sgap_7", VM_NO1_OBJ_31C);
|
|
|
|
extern u32 D_8006B8FC;
|
|
|
|
void VM_NO1_OBJ_4A4() {
|
|
__asm__ __volatile__(
|
|
".set\tnoreorder\n"
|
|
"lui\t$v0, %hi(D_8006B8FC)\n"
|
|
"lw\t$v0, %lo(D_8006B8FC)($v0)\n"
|
|
"nop\n"
|
|
"sh\t$a3, 404($v0)\n"
|
|
"sh\t$a2, 406($v0)\n"
|
|
"addiu\t$sp, $sp, 8\n"
|
|
".set\treorder\n");
|
|
}
|