Files
BFM-decomp/src/800c2_3.c
T
Drew T fd8ae5327f feat(decomp): main lane m19 — 10 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.

  DpqColorLight
  FGO_02_OBJ_160
  SsUtReverbOff
  StoreImage
  __main
  func_80013FBC
  func_80014564
  func_80028ECC
  func_8002A28C
  func_80062768
2026-08-25 04:59:44 -06:00

104 lines
2.7 KiB
C

#include "common.h"
INCLUDE_ASM("asm/nonmatchings/800c2_3", func_800626C8);
INCLUDE_ASM("asm/nonmatchings/800c2_3", func_800626DC);
__asm__(
".text\n"
".align 2\n"
".globl func_800626F0\n"
".ent\tfunc_800626F0\n"
"func_800626F0:\n"
".frame $sp, 0, $31\n"
".mask 0x00000000, 0\n"
".fmask 0x00000000, 0\n"
".set\tnoreorder\n"
"lui $at, %hi(D_80078D18)\n"
"sw $ra, %lo(D_80078D18)($at)\n"
"jal func_8005CF08\n"
"nop\n"
"addiu $t1, $0, 87\n"
"addiu $t2, $0, 176\n"
"jalr $t2\n"
"nop\n"
"lw $v0, 364($v0)\n"
"addiu $t1, $0, 11\n"
"addi $v1, $v0, 2180\n"
"lui $at, %hi(jtbl_80078D20_main)\n"
"sw $v1, %lo(jtbl_80078D20_main)($at)\n"
"addi $v1, $v0, 2196\n"
"lui $at, %hi(jtbl_80078D24_main)\n"
"sw $v1, %lo(jtbl_80078D24_main)($at)\n"
".L80062730:\n"
"sw $0, 1428($v0)\n"
"addiu $v0, $v0, 4\n"
"addiu $t1, $t1, -1\n"
"bnez $t1, .L80062730\n"
"nop\n"
"jal FlushCache\n"
"nop\n"
"lui $ra, %hi(D_80078D18)\n"
"lw $ra, %lo(D_80078D18)($ra)\n"
"nop\n"
"jr $ra\n"
"nop\n"
".set\treorder\n"
".end\tfunc_800626F0\n"
"nop\n"
"nop\n"
);
/* Handwritten function (splat header) — banked verbatim per §265 form 1.
* Recovered semantics:
* D_80078D28 = return address; func_8005CF08(); call vector 0xB0 ($t2=176);
* p = (*(ret + 0x16C)) + 0x62C; for (i = 9; i; --i) *p++ = 0;
* FlushCache(); func_8005CF18(); return via saved $ra.
* NOTE: maspsx did NOT auto-insert load-delay nops here (after
* "lw $v0,364($v0)" and "lw $ra,%lo(D_80078D28)($ra)") — both written by
* hand, matching the banked sibling func_800626F0 in this same TU; this
* contradicts §179-B rule 4 as observed on this build.
*/
__asm__(
".text\n"
".align 2\n"
".globl func_80062768\n"
".ent\tfunc_80062768\n"
"func_80062768:\n"
".frame $sp, 0, $31\n"
".mask 0x00000000, 0\n"
".fmask 0x00000000, 0\n"
".set\tnoreorder\n"
"lui $at, %hi(D_80078D28)\n"
"sw $ra, %lo(D_80078D28)($at)\n"
"jal func_8005CF08\n"
"nop\n"
"addiu $t1, $0, 87\n"
"addiu $t2, $0, 176\n"
"jalr $t2\n"
"nop\n"
"addiu $t2, $0, 9\n"
"lw $v0, 364($v0)\n"
"nop\n"
"addi $v1, $v0, 1580\n"
".L80062798:\n"
"sw $0, 0($v1)\n"
"addiu $v1, $v1, 4\n"
"addiu $t2, $t2, -1\n"
"bnez $t2, .L80062798\n"
"nop\n"
"jal FlushCache\n"
"nop\n"
"jal func_8005CF18\n"
"nop\n"
"lui $ra, %hi(D_80078D28)\n"
"lw $ra, %lo(D_80078D28)($ra)\n"
"nop\n"
"jr $ra\n"
"nop\n"
".set\treorder\n"
".end\tfunc_80062768\n"
"nop\n"
"nop\n"
);