mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-08 01:34:14 -04:00
feat(decomp): main lane n02 — 3 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. func_80012B04 func_800130D0 main
This commit is contained in:
@@ -610,7 +610,19 @@ s32 func_80012ABC(s32 a0, s32 a1, s32 a2)
|
||||
return (s0 + func_80012B04((s16)s0, (s16)a1, (s16)a2)) & 0xFFF;
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/800", func_80012B04);
|
||||
extern s16 func_80012B58(s16 a0, s16 a1, s16 a2, s16 *a3);
|
||||
|
||||
s32 func_80012B04(s32 a0, s32 a1, s32 a2) {
|
||||
s16 sp10[4];
|
||||
|
||||
sp10[0] = 4;
|
||||
|
||||
if ((s16)a0 == (s16)a1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return func_80012B58((s16)a0, (s16)a1, (s16)a2, sp10);
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/800", func_80012B58);
|
||||
|
||||
@@ -694,7 +706,11 @@ s32 func_80013028(s32 x, s32 y, s16 n, s16 d, s16 *p) {
|
||||
return r;
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/800", func_800130D0);
|
||||
extern s16 func_8001311C(s16 a0, s16 a1, s16 a2);
|
||||
|
||||
s32 func_800130D0(s32 arg0, s32 arg1, s32 arg2) {
|
||||
return (s16)(arg0 + ((s32 (*)(s16, s16, s16))func_8001311C)(arg0, arg1, arg2));
|
||||
}
|
||||
|
||||
extern s32 func_80013154(s32 a0, s32 a1, s32 a2);
|
||||
|
||||
|
||||
+52
-1
@@ -175,7 +175,58 @@ __asm__(".text\n"
|
||||
".set\treorder\n"
|
||||
".end\t__do_global_dtors\n");
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/boot", main);
|
||||
__asm__(".text\n.align 2\n.globl main\n.ent\tmain\nmain:\n.set\tnoreorder\n"
|
||||
"addiu $sp,$sp,-56\nsw $ra,52($sp)\nsw $fp,48($sp)\nsw $s1,44($sp)\nsw $s0,40($sp)\naddu $fp,$sp,$zero\n"
|
||||
"jal __main\nnop\nlui $s0,%hi(D_800BA118)\naddiu $s0,$s0,%lo(D_800BA118)\nlui $s1,%hi(D_800AF630)\naddiu $s1,$s1,%lo(D_800AF630)\n"
|
||||
"addu $a0,$zero,$zero\njal func_80043060\nnop\naddiu $v0,$zero,992\nlui $at,%hi(D_80074778)\nsw $v0,%lo(D_80074778)($at)\n"
|
||||
"jal func_800141F0\nnop\naddu $a0,$zero,$zero\njal func_8005FC68\nnop\njal func_8005FCB8\nnop\njal func_80018918\nnop\njal func_80043300\nnop\n"
|
||||
"lui $at,%hi(D_800A2B7C)\nsw $v0,%lo(D_800A2B7C)($at)\njal func_8002C8F4\nnop\njal LoaderInitFileTable\nnop\n"
|
||||
".L80010204:\nj .L80010214\nnop\nj .L8001094C\nnop\n.L80010214:\njal func_80014238\nnop\njal func_80014390\nnop\njal func_800191A8\nnop\njal func_80010A98\nnop\n"
|
||||
".L80010234:\nlui $at,1\naddu $at,$s1,$at\nlhu $v0,-23596($at)\nnop\nbeqz $v0,.L80010254\nnop\nj .L80010938\nnop\n"
|
||||
".L80010254:\nlui $v1,%hi(D_800C7C70)\nlw $v1,%lo(D_800C7C70)($v1)\nnop\naddiu $v0,$v1,1\naddu $v1,$v0,$zero\nlui $at,%hi(D_800C7C70)\nsw $v1,%lo(D_800C7C70)($at)\n"
|
||||
"lui $v0,%hi(D_800C7C70)\nlw $v0,%lo(D_800C7C70)($v0)\nlui $v1,%hi(D_800C7C70)\nlw $v1,%lo(D_800C7C70)($v1)\nnop\nbnez $v1,.L80010290\nnop\naddiu $v0,$zero,1\n"
|
||||
".L80010290:\nlui $at,%hi(D_800C7C70)\nsw $v0,%lo(D_800C7C70)($at)\nlui $v0,%hi(D_800C7C74)\nlh $v0,%lo(D_800C7C74)($v0)\nnop\nxori $v1,$v0,0\nsltiu $v0,$v1,1\n"
|
||||
"lui $at,%hi(D_800C7C74)\nsh $v0,%lo(D_800C7C74)($at)\nlui $v0,%hi(D_800C7C74)\nlhu $v0,%lo(D_800C7C74)($v0)\nlui $at,1\naddu $at,$s1,$at\nsh $v0,-23598($at)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $a0,$v1,3\nsubu $a0,$a0,$v0\nsll $v1,$a0,4\naddu $v1,$v1,$v0\nsll $v0,$v1,7\n"
|
||||
"lui $v1,%hi(D_8007BA70)\naddiu $v1,$v1,%lo(D_8007BA70)\naddu $v0,$v1,$v0\nlui $at,%hi(D_800A5E60)\nsw $v0,%lo(D_800A5E60)($at)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,1\naddu $v1,$v1,$v0\nsll $a0,$v1,2\naddu $v0,$s1,$a0\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v1,-23598($at)\nnop\naddu $a1,$v1,$zero\nsll $a0,$a1,1\naddu $a0,$a0,$v1\nsll $a1,$a0,3\naddu $a1,$a1,$v1\nsll $v1,$a1,6\n"
|
||||
"lui $a0,%hi(D_800A4F48)\naddiu $a0,$a0,%lo(D_800A4F48)\naddu $v1,$a0,$v1\nsw $v1,8($v0)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,1\naddu $v1,$v1,$v0\nsll $v0,$v1,2\naddu $v1,$s1,$v0\naddiu $v0,$zero,1600\nsw $v0,0($v1)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,1\naddu $v1,$v1,$v0\nsll $v0,$v1,2\naddu $v1,$s1,$v0\nsw $zero,4($v1)\n"
|
||||
"jal func_800189A8\nnop\njal func_80015208\nnop\nlui $at,1\naddu $at,$s1,$at\nlbu $v0,-23581($at)\nnop\nbnez $v0,.L80010644\nnop\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23640($at)\nnop\naddiu $v1,$v0,1\naddu $v0,$v1,$zero\nlui $at,1\naddu $at,$s1,$at\nsh $v0,-23640($at)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23636($at)\nlui $at,1\naddu $at,$s1,$at\nlhu $v1,-23640($at)\nnop\naddu $v0,$v0,$v1\nlui $at,1\naddu $at,$s1,$at\nsh $v0,-23636($at)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,1\naddu $at,$s1,$at\nlhu $v1,-23598($at)\nnop\naddu $a0,$v1,$zero\nsll $v1,$a0,14\n"
|
||||
"lui $a0,%hi(D_800A6610)\naddiu $a0,$a0,%lo(D_800A6610)\naddu $v1,$a0,$v1\nlui $at,%hi(D_800A651C)\naddu $at,$at,$v0\nsw $v1,%lo(D_800A651C)($at)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,1\naddu $at,$s1,$at\nlhu $v1,-23598($at)\nnop\naddu $a0,$v1,$zero\nsll $v1,$a0,14\n"
|
||||
"lui $a0,%hi(D_800AA60C)\naddiu $a0,$a0,%lo(D_800AA60C)\naddu $v1,$v1,$a0\nlui $at,%hi(D_800A6528)\naddu $at,$at,$v0\nsw $v1,%lo(D_800A6528)($at)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,%hi(D_800A651C)\naddu $at,$at,$v0\nlw $a0,%lo(D_800A651C)($at)\naddiu $a1,$zero,4096\njal func_80059BFC\nnop\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,1\naddu $at,$s1,$at\nlhu $v1,-23598($at)\nnop\naddu $a0,$v1,$zero\nsll $v1,$a0,4\n"
|
||||
"lui $a0,%hi(D_800BA0D8)\naddiu $a0,$a0,%lo(D_800BA0D8)\naddu $v1,$a0,$v1\nlui $at,%hi(D_800AE7BC)\naddu $at,$at,$v0\nsw $v1,%lo(D_800AE7BC)($at)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,1\naddu $at,$s1,$at\nlhu $v1,-23598($at)\nnop\naddu $a0,$v1,$zero\nsll $v1,$a0,4\n"
|
||||
"lui $a0,%hi(D_800BA0E4)\naddiu $a0,$a0,%lo(D_800BA0E4)\naddu $v1,$v1,$a0\nlui $at,%hi(D_800AE7C8)\naddu $at,$at,$v0\nsw $v1,%lo(D_800AE7C8)($at)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,%hi(D_800AE7BC)\naddu $at,$at,$v0\nlw $a0,%lo(D_800AE7BC)($at)\naddiu $a1,$zero,4\njal func_80059BFC\nnop\n"
|
||||
"jal GameModeDispatch\nnop\nlui $a2,8064\nori $a2,$a2,1020\naddu $t0,$a2,$zero\nsw $sp,0($t0)\naddiu $t0,$t0,-4\naddu $sp,$t0,$zero\njal func_80015498\nnop\naddiu $sp,$sp,4\nlw $sp,0($sp)\n"
|
||||
"lui $a2,8064\nori $a2,$a2,1020\naddu $t0,$a2,$zero\nsw $sp,0($t0)\naddiu $t0,$t0,-4\naddu $sp,$t0,$zero\njal func_8001C00C\nnop\naddiu $sp,$sp,4\nlw $sp,0($sp)\nj .L80010744\nnop\n"
|
||||
".L80010644:\nlui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,1\naddu $at,$s1,$at\nlhu $v1,-23598($at)\nnop\naddu $a0,$v1,$zero\nsll $v1,$a0,4\n"
|
||||
"lui $a0,%hi(D_800BA0D8)\naddiu $a0,$a0,%lo(D_800BA0D8)\naddu $v1,$a0,$v1\nlui $at,%hi(D_800AE7BC)\naddu $at,$at,$v0\nsw $v1,%lo(D_800AE7BC)($at)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,1\naddu $at,$s1,$at\nlhu $v1,-23598($at)\nnop\naddu $a0,$v1,$zero\nsll $v1,$a0,4\n"
|
||||
"lui $a0,%hi(D_800BA0E4)\naddiu $a0,$a0,%lo(D_800BA0E4)\naddu $v1,$v1,$a0\nlui $at,%hi(D_800AE7C8)\naddu $at,$at,$v0\nsw $v1,%lo(D_800AE7C8)($at)\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,%hi(D_800AE7BC)\naddu $at,$at,$v0\nlw $a0,%lo(D_800AE7BC)($at)\naddiu $a1,$zero,4\njal func_80059BFC\nnop\n"
|
||||
"lui $a2,8064\nori $a2,$a2,1020\naddu $t0,$a2,$zero\nsw $sp,0($t0)\naddiu $t0,$t0,-4\naddu $sp,$t0,$zero\njal func_800D25FC\nnop\naddiu $sp,$sp,4\nlw $sp,0($sp)\n"
|
||||
".L80010744:\njal func_800184F0\nnop\naddu $a0,$zero,$zero\njal func_800596F4\nnop\nlui $at,1\naddu $at,$s1,$at\nlw $a0,-23576($at)\njal VSync\nnop\n"
|
||||
"lhu $v0,394($s1)\nnop\nsh $v0,392($s1)\nlhu $v0,394($s1)\nnop\naddiu $v1,$v0,1\naddu $v0,$v1,$zero\nsh $v0,394($s1)\nlhu $v0,394($s1)\nnop\nsltiu $v1,$v0,2\nbnez $v1,.L800107A4\nnop\nsh $zero,394($s1)\n"
|
||||
".L800107A4:\nlhu $v0,392($s1)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\naddiu $v1,$v0,332\naddu $v0,$s1,$v1\naddu $a0,$v0,$zero\njal func_80059FC0\nnop\n"
|
||||
"lhu $v0,394($s1)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,1\naddu $v1,$v1,$v0\nsll $a0,$v1,3\nsubu $a0,$a0,$v0\nsll $v0,$a0,2\naddiu $v1,$v0,56\naddu $v0,$s1,$v1\naddu $a0,$v0,$zero\njal func_80059D68\nnop\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,%hi(D_800A651C)\naddu $at,$at,$v0\nlw $v1,%lo(D_800A651C)($at)\nnop\naddiu $v0,$v1,16368\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v1,-23598($at)\nnop\naddu $a1,$v1,$zero\nsll $a0,$a1,2\naddu $a0,$a0,$v1\nsll $v1,$a0,2\nlui $a0,%hi(D_80074778)\nlw $a0,%lo(D_80074778)($a0)\nnop\naddu $a1,$a0,$zero\nsll $a0,$a1,2\nlui $at,%hi(D_800A651C)\naddu $at,$at,$v1\nlw $a1,%lo(D_800A651C)($at)\nnop\naddu $v1,$a0,$a1\naddu $a0,$v0,$zero\naddu $a1,$v1,$zero\njal CatPrim\nnop\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,%hi(D_800A651C)\naddu $at,$at,$v0\nlw $v1,%lo(D_800A651C)($at)\nnop\naddiu $v0,$v1,16380\naddu $a0,$v0,$zero\njal func_80059CF4\nnop\n"
|
||||
"lui $at,1\naddu $at,$s1,$at\nlhu $v0,-23598($at)\nnop\naddu $a0,$v0,$zero\nsll $v1,$a0,2\naddu $v1,$v1,$v0\nsll $v0,$v1,2\nlui $at,%hi(D_800AE7BC)\naddu $at,$at,$v0\nlw $v1,%lo(D_800AE7BC)($at)\nnop\naddiu $v0,$v1,12\naddu $a0,$v0,$zero\njal func_80059CF4\nnop\n"
|
||||
"jal func_8003500C\nnop\njal func_8002D034\nnop\njal func_8001AF34\nnop\njal func_8001513C\nnop\nj .L80010234\nnop\n"
|
||||
".L80010938:\naddu $a0,$zero,$zero\njal func_80042610\nnop\nj .L80010204\nnop\n"
|
||||
".L8001094C:\naddu $sp,$fp,$zero\nlw $ra,52($sp)\nlw $fp,48($sp)\nlw $s1,44($sp)\nlw $s0,40($sp)\naddiu $sp,$sp,56\njr $ra\nnop\n"
|
||||
".set\treorder\n.end\tmain\n");
|
||||
|
||||
void func_8001096C(void) {
|
||||
extern void func_8002CDD8(void);
|
||||
|
||||
Reference in New Issue
Block a user