Files
BFM-decomp/src/800c3.c
T
Drew T 9dbae2681e feat(phase-8): link libc2 byte-identical (T6) — 17 objs / +62 fns
- splat: libc2 C stdlib in 2 blocks — main 16-obj run libc2_1 (BZERO/MEMCPY/STRCMP/
  PRINTF/PRNT[jtbl ok]/.../SETJMP) split from 800c, + STRCAT.o libc2_2 split from
  800c2; new game-code fragments 800c3 + regenerated 800c2
- region byte-verified 17/17; PRNT.o printf-format jtbl resolves via NOLOAD .rodata
- BOUNDARY GOTCHA found + fixed: SETJMP.o .text is 0x80 B (8-align pad), not the
  0x78 psyq_identify reports (30 ins) -> the libc2_1/800c3 boundary was 8 B too low,
  overlapping SETJMP's padded tail; the relink inserted +8 padding and shifted the
  whole downstream image (56k diff bytes, +8 file len). Fix: boundary = last obj's
  readelf .text size (0x5CE18), not ins-count. Lesson recorded in docs/psyq-worklist.md
- when a library block sits at a subseg start, rm the old .c so splat regenerates it
- dual byte-gate PASS: 143dbb89 with and without the libc2 objects
- LINKED 528 -> 590; REAL still 43; byte-identical 32.25%
2026-06-15 18:32:48 -06:00

184 lines
4.9 KiB
C

#include "common.h"
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CE18);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CE28);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CE38);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CE50);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CE68);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CE78);
INCLUDE_ASM("asm/nonmatchings/800c3", CloseEvent);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CE98);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CEA8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CEB8);
INCLUDE_ASM("asm/nonmatchings/800c3", DisableEvent);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CED8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CEE8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CEF8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CF08);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CF18);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CF28);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CF38);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CF48);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CF58);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005CF68);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D004);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D03C);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D06C);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D0A0);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D0D8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D0F8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D118);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D138);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D184);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D244);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D33C);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D410);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D4B8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D4F0);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D538);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D588);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D6A0);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D6CC);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D734);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D8A0);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D8B4);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D980);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D9C4);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005DBD8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005DCA0);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005DE78);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E0AC);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E13C);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E168);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E178);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E188);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E194);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E1A4);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E228);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E374);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E3AC);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E480);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E528);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E79C);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E804);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E820);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E8E8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E980);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E9D4);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EA34);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EA54);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EA68);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EA88);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EAA8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EAC8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EAE8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EB28);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EC00);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005ECC0);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005ED4C);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F0C8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F228);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F290);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F384);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F394);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F450);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F6CC);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F704);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F728);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F75C);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F830);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005FA94);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005FB70);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005FBA8);
INCLUDE_ASM("asm/nonmatchings/800c3", func_8005FBC8);