What Was Broken

  1. 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.
  2. 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.
  3. 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.
  4. 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.