Files
BFM-decomp/src/800c.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

214 lines
5.4 KiB
C

#include "common.h"
INCLUDE_ASM("asm/nonmatchings/800c", func_80059234);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_11C);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_16C);
INCLUDE_ASM("asm/nonmatchings/800c", SetGraphReverse);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_210);
INCLUDE_ASM("asm/nonmatchings/800c", func_800594CC);
INCLUDE_ASM("asm/nonmatchings/800c", SetGraphQueue);
INCLUDE_ASM("asm/nonmatchings/800c", GetGraphType);
INCLUDE_ASM("asm/nonmatchings/800c", GetGraphDebug);
INCLUDE_ASM("asm/nonmatchings/800c", func_800595FC);
INCLUDE_ASM("asm/nonmatchings/800c", func_80059658);
INCLUDE_ASM("asm/nonmatchings/800c", func_800596F4);
INCLUDE_ASM("asm/nonmatchings/800c", func_80059760);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_604);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_640);
INCLUDE_ASM("asm/nonmatchings/800c", func_80059888);
INCLUDE_ASM("asm/nonmatchings/800c", ClearImage2);
INCLUDE_ASM("asm/nonmatchings/800c", func_800599B8);
INCLUDE_ASM("asm/nonmatchings/800c", StoreImage);
INCLUDE_ASM("asm/nonmatchings/800c", MoveImage);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_8F4);
INCLUDE_ASM("asm/nonmatchings/800c", ClearOTag);
INCLUDE_ASM("asm/nonmatchings/800c", func_80059BFC);
INCLUDE_ASM("asm/nonmatchings/800c", DrawPrim);
INCLUDE_ASM("asm/nonmatchings/800c", func_80059CF4);
INCLUDE_ASM("asm/nonmatchings/800c", func_80059D68);
INCLUDE_ASM("asm/nonmatchings/800c", DrawOTagEnv);
INCLUDE_ASM("asm/nonmatchings/800c", GetDrawEnv);
INCLUDE_ASM("asm/nonmatchings/800c", func_80059FC0);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_E34);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_F00);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_F24);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_F58);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_FD8);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1034);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_11C0);
INCLUDE_ASM("asm/nonmatchings/800c", GetDispEnv);
INCLUDE_ASM("asm/nonmatchings/800c", GetODE);
INCLUDE_ASM("asm/nonmatchings/800c", SetTexWindow);
INCLUDE_ASM("asm/nonmatchings/800c", SetDrawArea);
INCLUDE_ASM("asm/nonmatchings/800c", SetDrawOffset);
INCLUDE_ASM("asm/nonmatchings/800c", SetPriority);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005A600);
INCLUDE_ASM("asm/nonmatchings/800c", SetDrawEnv);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1578);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005A870);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1790);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_18AC);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005AB00);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_191C);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005AB58);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1964);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_19A4);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_19D8);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005AC24);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1A30);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1A70);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1AA4);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005ACF0);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1AF0);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005AD34);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1B78);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005ADB8);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1BC4);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1C28);
void SYS_OBJ_1C2C(void) {
}
INCLUDE_ASM("asm/nonmatchings/800c", _status);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005AE80);
INCLUDE_ASM("asm/nonmatchings/800c", _clr);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1D84);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1DC0);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1F64);
INCLUDE_ASM("asm/nonmatchings/800c", _dws);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_1FF4);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_202C);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_21A4);
INCLUDE_ASM("asm/nonmatchings/800c", _drs);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_222C);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_2264);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_242C);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005B684);
INCLUDE_ASM("asm/nonmatchings/800c", _getctl);
INCLUDE_ASM("asm/nonmatchings/800c", _cwb);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005B710);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005B75C);
INCLUDE_ASM("asm/nonmatchings/800c", _addque);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005B7B0);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005B7E4);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_25C8);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_26EC);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_27A8);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_283C);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005BA90);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005BD7C);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_2C6C);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005BED8);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_2CC4);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_2CDC);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_2DD8);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005C020);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005C054);
INCLUDE_ASM("asm/nonmatchings/800c", SYS_OBJ_2F7C);
INCLUDE_ASM("asm/nonmatchings/800c", func_8005C1C0);
void SYS_OBJ_3060(void) {
}
INCLUDE_ASM("asm/nonmatchings/800c", func_8005C29C);