mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-28 14:59:48 -04:00
feat(decomp): main lane m23 — 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_800111BC func_80028DBC func_800495EC
This commit is contained in:
@@ -12664,7 +12664,11 @@ INCLUDE_ASM("asm/nonmatchings/800", func_80028D78);
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/800", func_80028D9C);
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/800", func_80028DBC);
|
||||
extern void func_80029124(s32, s32);
|
||||
|
||||
void func_80028DBC(s32 a0) {
|
||||
func_80029124(0xC, a0 & 0xFF);
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/800", func_80028DE0);
|
||||
|
||||
|
||||
+20
-1
@@ -1,3 +1,22 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/800b_3", func_800495EC);
|
||||
|
||||
/* func_800495EC -- handwritten GTE SXY-load entry (splat: Handwritten function).
|
||||
* Three mtc2 stores of the incoming $a0-$a2 words into cop2 regs SXY0/SXY2/SXY1,
|
||||
* then TWO bare nops and NO jr: control falls through into func_80049600
|
||||
* (nclip + mfc2 $v0,$24 + jr $ra) in the next object. Any C function definition
|
||||
* would emit a jr $ra epilogue the target does not have, so the body is
|
||||
* transcribed verbatim as a file-scope asm block (cookbook §265 lane 1;
|
||||
* SetSZfifo3 form @ src/gsgap5.c:54). Decimal immediates only (maspsx).
|
||||
* Recovered semantics: gte_ldsxy3(a0,a1,a2); gte_nclip(); return gte_stMAC0();
|
||||
* via the fallthrough. */
|
||||
__asm__(".text\n.align 2\n.globl func_800495EC\n.ent\tfunc_800495EC\n"
|
||||
"func_800495EC:\n"
|
||||
".set\tnoreorder\n"
|
||||
"mtc2 $4, $12\n"
|
||||
"mtc2 $6, $14\n"
|
||||
"mtc2 $5, $13\n"
|
||||
"nop\n"
|
||||
"nop\n"
|
||||
".set\treorder\n"
|
||||
".end\tfunc_800495EC\n");
|
||||
|
||||
+12
-1
@@ -341,7 +341,18 @@ void DebugMenuHandler(void) {
|
||||
(void)iVar1;
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/boot", func_800111BC);
|
||||
extern u8 D_800AF630[];
|
||||
extern void func_800CEE74(void);
|
||||
extern void func_80011818(s32);
|
||||
|
||||
void func_800111BC(void) {
|
||||
register u8 *p = D_800AF630;
|
||||
|
||||
func_800CEE74();
|
||||
if (*(u16 *)(p + 0xA3B6) != 0) {
|
||||
func_80011818(0xA);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/nonmatchings/boot", func_80011220);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user