What Was Broken
- The old image path produced invalid Dreamcast artifacts:
src/d3tui.elf was linked into low memory around
0x00001000 instead of Dreamcast RAM at
0x8c010000.
- The legacy ISO/CDI scripts used raw
IP.BIN + binary
concatenation or overwrote ISO layout bytes.
- Flycast rejected the bad ELF with invalid section load addresses and
a SH4 exception.
- The accepted build target had regressed into a text-only proof
screen:
- The Pi workspace contained raw D2 title material, but the converted
asset directory was effectively empty.
- D2 visual/menu assets were not compiled into the D3-TUI
executable.
- The Pi environment was racing itself:
- Active FROM agent containers repeatedly ran
rm -rf builds and legacy build commands while repair builds
were running.
- This caused transient assembler errors such as object directories
disappearing mid-compile.
- The Pi KOS/newlib path needed compatibility stubs:
- GCC/newlib 13 required
getentropy and POSIX syscall
hooks.
- The initial fallback
_sbrk() heap was too small for
D3-TUI default scrollback after adding asset data.