mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-06 01:04:13 -04:00
f06785bcf2
- mapped the blob vs bytes: word0 data header (0x36); clean code 0x4..0x4610 (145 funcs, zero embedded jump-tables/trap-ops); data tail 0x4610..EOF (pointer tables + 78.5KB zeros) - split: [0x0, rodata, hdr] + [0x4, c, resident] + [0x4610, data, tail] - fix 1: the leading data word sits BEFORE code, which fights section_order; emit it as rodata (no-dot) so section_order [.rodata,.text,.data,.bss] places it first @0x800CEDF8 — a 1-word analogue of main's rodata-island, no ld_interleave needed - fix 2: build_path=build (not build/resident) so splat's .ld object paths match the Makefile's build/asm/** + build/src/** pattern rules (only elf/ld/output in build/resident/) - MILESTONE: make build BINARY=resident -> 8e17e02ff8954d07c979449198f7e1645046b353 BYTE-IDENTICAL (365,404 B, end vram 0x80128154); -G0 confirmed (0 gp refs); R22 clean-rebuild green; main still 143dbb89… (no regression) - src/resident/resident.c (143 INCLUDE_ASM stubs) committed; asm/resident/** regenerated
phase-ends/ — the living record
PhaseEnd_Phase[N].md— written at each phase boundary (format defined inPROJECT_CONTEXT.md). Append-only history: build log, deviations, commit message, rules added, changelog. Never deleted.CURRENT_PHASE.md— the in-phase autonomous log: approved phase plan, per-task checkboxes, current task pointer, blockers. Created at phase start, updated after every task, absorbed into the PhaseEnd file and deleted at phase close. This is the crash/compaction recovery point.- Sessions read
PROJECT_CONTEXT.md, then everyPhaseEnd_*.mdin numeric order, thenCURRENT_PHASE.md(if present) — in that order, every session.