mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-30 07:31:59 -04:00
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:
@@ -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
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user