mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-27 22:45:39 -04:00
9dbae2681e
- 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%
214 lines
5.4 KiB
C
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);
|