Building from source
Toolchain
Docker or Colima, the pinned devkitA64 image, and the versions inside it.
On this page
Requirements
- macOS on Apple Silicon, or Linux.
- Docker. On macOS without Docker Desktop, Colima works:
bash
brew install colima dockerbash
colima start --cpu 4 --memory 4 --vm-type vzThe image
scripts/build.sh runs every build inside devkitpro/devkita64:20260219, pinned by digest (sha256:1fc388c3…0282; the arm64 variant 645416b7…). The extra host headers needed to build the host CPython are added by docker/Dockerfile.
| Component | Version |
|---|---|
| devkitA64 | r29.2, gcc 15.2.0 |
| newlib | 4.6.0.20260123 |
| libnx | 4.12.0 |
| switch-tools | 1.13.1 |
| switch-sdl2 | 2.28.5 |
| switch-mesa | 20.1.0 |
| switch-ffmpeg | 7.1 |
| switch-freetype / harfbuzz | 2.13.3 / 10.0.1 |
The last verified host was macOS 15.7.9 on Apple Silicon with Colima 0.10.3 (vz) and Docker CLI 29.9.1.
Pinned sources
| Source | Version | Checked by |
|---|---|---|
| CPython | 3.12.8, the version renpy-build uses for 8.5.3 | sha256 in runtime/python/build.sh |
| Ren’Py | 8.5.3 (vc_version 8.5.3.26051504) source and ARM SDK | sha256 from the PGP-signed checksums.txt |
| Cython | 3.2.4, the version in Ren’Py’s uv.lock | sha256 |
| LVGL | 9.6.0 | third_party/lvgl/fetch.sh, sha256; the 111 MB tarball is not vendored |
| cJSON | 1.7.18 | vendored unmodified in third_party/cjson/ |
| unrpyc | 2.0.4 (optional, for --decompile) | third_party/unrpyc/fetch.sh, checksummed |
Reproducibility
The loader built identically across two clean builds. The Milestone 3 runtime (Python only) built identically across two full rebuilds. This has not been re-checked for the runtime with Ren’Py.