feat(decomp): main lane m05aa — 5 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_8001BFB0
  func_8001D150
  func_8002CCB4
  func_8005D6CC
  func_8005E480
This commit is contained in:
Drew T
2026-08-24 19:25:45 -06:00
parent e56355428a
commit 7e8c56df5f
2 changed files with 54 additions and 5 deletions
+15 -3
View File
@@ -5817,7 +5817,10 @@ s32 func_8001BFA0(void) {
return D_80063074 & 0x1;
}
INCLUDE_ASM("asm/nonmatchings/800", func_8001BFB0);
extern s32 D_80063074;
void func_8001BFB0(void) {
D_80063074++;
}
INCLUDE_ASM("asm/nonmatchings/800", func_8001BFD0);
@@ -6241,7 +6244,12 @@ void func_8001D130(s32 arg0, s32 arg1) {
*(s32 *)(arg0 + arg1 * 4) &= 0x80FFFFFF;
}
INCLUDE_ASM("asm/nonmatchings/800", func_8001D150);
s32 func_8001D150(s32 *arg0, s32 arg1) {
arg1 *= 4;
arg1 += (s32) arg0;
*(s32 *) arg1 |= 0x1000000;
return *(s32 *) arg1;
}
INCLUDE_ASM("asm/nonmatchings/800", func_8001D16C);
@@ -11709,7 +11717,11 @@ void func_8002C8F4(void)
INCLUDE_ASM("asm/nonmatchings/800", func_8002CC4C);
INCLUDE_ASM("asm/nonmatchings/800", func_8002CCB4);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_8002CCB4(void) {
func_8002D4C8(2, 0);
}
INCLUDE_ASM("asm/nonmatchings/800", func_8002CCD8);
+39 -2
View File
@@ -186,7 +186,23 @@ INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D588);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D6A0);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D6CC);
extern s32 *D_800729BC;
extern void (*D_80072984)(void);
s32 func_8005D6CC(void) {
s32 *ptr = D_800729BC;
if ((*(s32 *)((s8 *)ptr + 4) & 1) == 0) {
return 0;
}
if ((*ptr & 1) == 0) {
return 0;
}
if (D_80072984 != NULL) {
(*D_80072984)();
}
return 1;
}
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D734);
@@ -255,7 +271,28 @@ s32 func_8005E374(u8 *a0) {
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E3AC);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E480);
extern void func_8005EA68(void *arg0, s32 arg1);
extern void func_8005EA88(void *arg0, s32 arg1);
extern void func_8005EAA8(void *arg0, s32 arg1);
extern void func_8005EAC8(void);
void func_8005E480(void *arg0) {
switch (*(u8 *)((s32)arg0 + 0x46)) {
case 2:
func_8005EA68(arg0, *(u8 *)((s32)arg0 + 0x47));
break;
case 3:
func_8005EA88(arg0, *(u8 *)((s32)arg0 + 0x47));
break;
case 4:
if (*(u8 *)((s32)arg0 + 0x48) == 0) {
func_8005EAA8(arg0, *(u8 *)((s32)arg0 + 0x47));
} else {
func_8005EAC8();
}
break;
}
}
typedef struct Entry {