feat(decomp): ABCD MAXTOK test — the 10 paired gen0 functions banked (whole-binary SHA); verdict 8k=16k 10/10 > 24k=32k 8/10 (P31 S61-6)

This commit is contained in:
Drew T
2026-08-26 03:06:01 -06:00
parent 2b9e1886c7
commit 2502eff0ea
4 changed files with 142 additions and 6 deletions
+63 -1
View File
@@ -564,7 +564,69 @@ INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D06BC);
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D0740);
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D09A0);
__asm__(".text\n.align 2\n.globl func_800D09A0\n.ent\tfunc_800D09A0\n"
"func_800D09A0:\n.frame $sp,32,$31\n.mask 0xC0010000,-16\n.fmask 0,0\n"
".set\tnoreorder\n"
"addiu $sp, $sp, -32\n"
"sw $ra, 24($sp)\n"
"sw $fp, 20($sp)\n"
"sw $s0, 16($sp)\n"
"addu $fp, $sp, $zero\n"
"lui $s0, %hi(D_800AF630)\n"
"addiu $s0, $s0, %lo(D_800AF630)\n"
"jal func_800D12D0\n"
"nop\n"
"lui $v0, %hi(D_800EC898)\n"
"lhu $v0, %lo(D_800EC898)($v0)\n"
"nop\n"
"addiu $v1, $v0, 1\n"
"addu $v0, $v1, $zero\n"
"lui $at, %hi(D_800EC898)\n"
"sh $v0, %lo(D_800EC898)($at)\n"
"lui $v0, %hi(D_800EC898)\n"
"lhu $v0, %lo(D_800EC898)($v0)\n"
"nop\n"
"andi $v1, $v0, 4\n"
"sll $a0, $v1, 16\n"
"sra $v0, $a0, 16\n"
"beqz $v0, .L800D0A24\n"
"nop\n"
"lui $v0, %hi(D_800EC894)\n"
"lh $v0, %lo(D_800EC894)($v0)\n"
"nop\n"
"addu $a0, $v0, $zero\n"
"addiu $a1, $zero, 1\n"
"jal func_800D1D14\n"
"nop\n"
"j .L800D0A40\n"
"nop\n"
".L800D0A24:\n"
"lui $v0, %hi(D_800EC894)\n"
"lh $v0, %lo(D_800EC894)($v0)\n"
"nop\n"
"addu $a0, $v0, $zero\n"
"addu $a1, $zero, $zero\n"
"jal func_800D1D14\n"
"nop\n"
".L800D0A40:\n"
"lui $v0, %hi(D_800EC898)\n"
"lh $v0, %lo(D_800EC898)($v0)\n"
"nop\n"
"slti $v1, $v0, 33\n"
"bnez $v1, .L800D0A60\n"
"nop\n"
"jal func_800118AC\n"
"nop\n"
".L800D0A60:\n"
"addu $sp, $fp, $zero\n"
"lw $ra, 24($sp)\n"
"lw $fp, 20($sp)\n"
"lw $s0, 16($sp)\n"
"addiu $sp, $sp, 32\n"
"jr $ra\n"
"nop\n"
".set\treorder\n.end\tfunc_800D09A0\n");
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D0A7C);
+43 -3
View File
@@ -3227,9 +3227,36 @@ extern void func_80187778(s32*, s32);
}
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_80184F64", func_80185474);
extern int func_80178970(void);
extern void func_80178D18(void);
extern void func_8012A828(s32, s32);
void func_80185474(void *arg0) {
extern short D_801C36E8;
if (func_80178970() != 0) {
((void (*)(s32))func_80178D18)((s32)arg0);
*(short *)((char *)arg0 + 0x2) = 2;
((void (*)(s32, s32))func_8012A828)((int)arg0, (int)&D_801C36E8);
*(short *)((char *)arg0 + 0x34) = 2;
}
}
extern int func_80178970(void);
extern void func_80178D18(void);
extern void func_8012A828(s32, s32);
void func_801854D0(void *arg0) {
extern short D_801C36E8;
if (func_80178970() != 0) {
((void (*)(s32))func_80178D18)((s32)arg0);
*(short *)((char *)arg0 + 0x2) = 9;
((void (*)(s32, s32))func_8012A828)((s32)arg0, (s32)&D_801C36E8);
*(short *)((char *)arg0 + 0x34) = 2;
}
}
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_80184F64", func_801854D0);
extern s32 func_801788B8(s32 arg0, s32 arg1);
extern s32 func_801855CC(void *a0);
@@ -3694,7 +3721,20 @@ extern void func_80178CBC(s32 *a0, s32 a1);
}
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_80184F64", func_801860CC);
void func_801860CC(void *arg0) {
extern int func_80178970(void);
extern void func_80178D18(void);
extern void func_8012A828(s32, s32);
extern short D_801C36E8;
if (func_80178970() != 0) {
((void (*)(s32))func_80178D18)((s32)arg0);
*(short *)((char *)arg0 + 0x2) = 27;
*(short *)((char *)arg0 + 0x34) = 2;
((void (*)(s32 *, s32))func_8012A828)((s32 *)arg0, (s32)&D_801C36E8);
}
}
extern void func_8012C1B8(void);
extern s32 func_80185C9C(void *a0);
+18 -1
View File
@@ -6043,7 +6043,24 @@ extern void func_80178CBC(s32 a0, s32 a1);
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_8017AE2C", func_8017FFE8);
extern int func_80178970(void);
extern void func_80178D18(void);
extern void func_8012A828(s32, s32);
void func_8017FFE8(void *arg0) {
extern u16 D_801ECE68;
extern u16 D_801ECE6A;
extern short D_801B9A64;
void *s0 = arg0;
if (func_80178970() != 0) {
((void (*)(s32))func_80178D18)((s32)s0);
*(short *)((char *)s0 + 0x2) = D_801ECE68;
*(short *)((char *)s0 + 0x34) = D_801ECE6A;
((void (*)(s32, s32))func_8012A828)((s32)s0, (s32)&D_801B9A64);
}
}
extern void func_8012E88C(s32);
+18 -1
View File
@@ -3502,7 +3502,24 @@ extern void func_80178CBC(s32 a0, s32 a1);
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_801808D4", func_80181490);
extern int func_80178970(void);
extern void func_80178D18(void);
extern void func_8012A828(s32, s32);
void func_80181490(void *arg0)
{
extern short D_801ECE78;
extern short D_801ECE7A;
extern short D_801B9A64;
if (func_80178970() != 0) {
((void (*)(s32))func_80178D18)((s32)arg0);
*(short *)((char *)arg0 + 0x2) = D_801ECE78;
*(short *)((char *)arg0 + 0x34) = D_801ECE7A;
((void (*)(s32 *, s32))func_8012A828)((s32 *)arg0, (s32)&D_801B9A64);
}
}