- Cross toolchains: llvm-mingw-aarch64 (Windows ARM64; SDL3 staged from MSYS2's
clangarm64 repo since SDL ships no MinGW ARM64 dev package) and
clang-aarch64-linux-gnu (Linux ARM64; arm64 libc++/SDL3 via dpkg multiarch).
- Distro images: Dockerfile.linux-arm64, Dockerfile.win-arm64, Dockerfile.debian
and Dockerfile.debian-arm64 (Debian 13 with upstream CMake, whose 3.31 gate
cannot enable import std).
- Packaging via CPack: .deb for Ubuntu 26.04 and Debian 13 on amd64 and arm64
(dependencies derived by dpkg-shlibdeps), portable .zip/.tar.gz, and a
Windows .msi built with wixl (msitools) straight from the Linux cross image.
wixl 0.106 lacks arm64, so Windows/ARM64 ships the portable zip only.
- CMake: parameterize the SDL3 MinGW triple, add install() + CPack config.
- CI: build/package jobs for both arm64 targets and both Debian packages;
existing Linux/Windows jobs now also emit the .deb / .zip + .msi.
- scripts/: build-linux-arm64, build-windows-arm64, build-debian,
build-debian-arm64.
- ra3.dx: D3D11 and D3D12 presentation backends (runtime HLSL via d3dcompiler);
2D image blit and the GPU heightfield terrain raymarch, with the corner
minimap/FPS overlays. Non-Windows builds link a null fallback.
- ra3.display: preferred backend plus ordered fallback (Vulkan/D3D11/D3D12/SDL);
menu gains a Renderer option and the CLI gains --dx11/--dx12/--sdl, which the
render command now honours too.
- vendor libenderlog (MIT): every run writes openra3.log next to the exe and
archives the previous run's log; records at warn and above carry a call stack
(native fallback, since libc++ has no <stacktrace>).
- Windows crash reporter writes openra3_crash.log (faulting module + backtrace);
D3D/DXGI diagnostics are routed through the logger.
Decompose the full Red Alert 3 feature set three levels deep (29 modules, 169 functions, ~500 features) with per-feature status and milestone tags. Fold the release roadmap into ARCHITECTURE section 5 and remove docs/ROADMAP.md.