feat(decomp): main lane m74ab — 8 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_800112C8
  func_80011998
  func_80011CFC
  func_800120DC
  func_80012A60
  func_80012F74
  func_8001534C
  func_8005E188
This commit is contained in:
Drew T
2026-08-26 08:29:10 -06:00
parent df75110f0d
commit d42cb94484
3 changed files with 61 additions and 8 deletions
+25 -3
View File
@@ -588,7 +588,15 @@ void func_800129CC(s16 *s0, s16 *s1)
}
}
INCLUDE_ASM("asm/nonmatchings/800", func_80012A60);
extern s32 func_80012AB0(s32 a0, s32 a1);
s32 func_80012A60(s16 a0, s16 a1) {
s32 w = func_80012AB0(a0, a1);
if ((s16)w > 0x7FF) {
w = 0xFFF - w;
}
return (s16)w;
}
s32 func_80012AB0(s32 arg0, s32 arg1) {
return (arg0 - arg1) & 0xFFF;
@@ -639,7 +647,12 @@ INCLUDE_ASM("asm/nonmatchings/800", func_80012E0C);
INCLUDE_ASM("asm/nonmatchings/800", func_80012E6C);
INCLUDE_ASM("asm/nonmatchings/800", func_80012F74);
extern s32 func_80012FC8(s32 a0, s32 a1, s32 a2, s32 a3);
s32 func_80012F74(s32 x, s32 y, s32 z, s32 w)
{
return (s16)(x + func_80012FC8((s16)x, (s16)y, (s16)z, (s16)w));
}
INCLUDE_ASM("asm/nonmatchings/800", func_80012FC8);
@@ -1900,7 +1913,16 @@ void func_80015310(void) {
}
}
INCLUDE_ASM("asm/nonmatchings/800", func_8001534C);
extern u8 D_800AF630[];
void func_8001534C(s32 idx, s32 a1, s16 x, s16 y, u8 arg4, u8 arg5) {
u8 *p;
s32 off;
p = D_800AF630;
off = (s16)idx * 16 + 0x9DA8;
func_800153A4(p + off, a1, x, y, arg4, arg5);
}
void func_800153A4(void *a0, s32 a1, s16 a2, s16 a3, u8 arg4, u8 arg5) {
+4 -1
View File
@@ -723,7 +723,10 @@ INCLUDE_ASM("asm/nonmatchings/800c3", SysEnqIntRP);
INCLUDE_ASM("asm/nonmatchings/800c3", SysDeqIntRP);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E188);
void func_8005E188(s32 arg0, s32 arg1, s8 arg2) {
*(s32*)(arg0 + 0x28) = arg1;
*(u8*)(arg0 + 0x34) = arg2;
}
void func_8005E194(void *arg0, u8 arg1, u32 arg2, u8 arg3) {
*(u8 *)((u8 *)arg0 + 0x36) = arg1;
+32 -4
View File
@@ -471,7 +471,16 @@ void func_8001125C(void) {
void func_800112A8(void) {
}
INCLUDE_ASM("asm/nonmatchings/boot", func_800112C8);
extern int CdReadRequest(void *dst, void *src, int arg2, int arg3);
extern void func_80011778(void);
extern u8 D_800AE870;
extern void *loadDestPtrTable;
void func_800112C8(void) {
if (CdReadRequest(&D_800AE870, loadDestPtrTable, 0, 0) != 0) {
func_80011778();
}
}
extern u8 D_800AF630[];
extern void func_800CEDFC(void);
@@ -543,7 +552,13 @@ void func_80011928(u16 arg0) {
*(u16 *)(p + 0xA3BC) = 0;
}
INCLUDE_ASM("asm/nonmatchings/boot", func_80011998);
extern u8 D_800AF630[];
void func_80011998(void) {
register u8 *p = D_800AF630;
(*(u16 *)(p + 0xA3BA))++;
*(u16 *)(p + 0xA3BC) = 0;
}
extern u8 D_800AF630[];
@@ -615,7 +630,14 @@ void func_80011C8C(u16 arg0) {
*(u16 *)(p + 0xA3CE) = 0;
}
INCLUDE_ASM("asm/nonmatchings/boot", func_80011CFC);
extern u8 D_800AF630[];
void func_80011CFC(void) {
register u8 *p = D_800AF630;
(*(u16 *)(p + 0xA3CC))++;
*(u16 *)(p + 0xA3CE) = 0;
}
extern u8 D_800AF630[];
@@ -686,6 +708,12 @@ void func_80011EB4(void) {
}
}
INCLUDE_ASM("asm/nonmatchings/boot", func_800120DC);
extern u16 D_80074794;
extern u16 D_80074798;
void func_800120DC(u16 *arg0, u16 *arg1) {
*arg0 = D_80074794;
*arg1 = D_80074798;
}
INCLUDE_ASM("asm/nonmatchings/boot", func_8001212C);