Tools for building installable .cia files. The main app build (make or build.bat release at repo root) produces .3dsx for Homebrew Launcher only.
No git submodules required. Prebuilt Windows binaries and assets are included in this repo.
From the repo root:
build.bat banners
build_cia.batFor a release, bump VERSION first, then run build.bat banners so meta/cia-banner.png includes the new version label. See VERSIONING.md.
build_cia.bat runs make → bannertool → makerom and writes dist/3DS-Random-Game-Launcher-v<VERSION>.cia. It does not regenerate banner PNGs — it reads whatever is already in meta/.
| Step | Command | Banner-related inputs |
|---|---|---|
| Homebrew only | make / build.bat release |
icon.png only (.3dsx SMDH). No meta/banner*.png. |
| Regenerate artwork | build.bat banners / ./build.sh banners |
Writes meta/banner.png, meta/cia-banner.png, meta/banner-large.png from meta/banner-src/ |
| CIA package | build_cia.bat |
meta/cia-banner.png, meta/audio.wav, icon.png → embedded in .cia |
Regenerate banners: build.bat banners (Windows) or ./build.sh banners (Linux/Mac). Requires Python 3 + Pillow (pip install -r requirements-dev.txt).
| Path | Purpose |
|---|---|
build_cia.bat |
One-step CIA build script (repo root) |
tools/bin/bannertool.exe |
Creates .bnr banner and .icn icon files (v1.2.0) |
tools/bin/makerom.exe |
CTR makerom — packages ELF into .cia |
tools/bin/ctrtool.exe |
Inspect NCCH/CIA (optional) |
tools/3DS-Random-Game-Launcher.rsf |
RSF metadata for this title |
Banner, icon, and audio sources are documented in ../meta/README.md.
Intermediate files (build/banner.bnr, build/icon.icn) go in build/ (gitignored).
| Requirement | Notes |
|---|---|
| devkitPro + devkitARM | For make → .elf (same as .3dsx build) |
| Windows | Prebuilt tools/bin/*.exe are Windows binaries |
| CFW on 3DS | CIAs install via FBI, Universal Updater, etc. |
If you prefer to run steps yourself:
- Build the ELF:
make(orbuild.bat release) - Create banner and icon:
tools\bin\bannertool.exe makebanner -i meta\cia-banner.png -a meta\audio.wav -o build\banner.bnr
tools\bin\bannertool.exe makesmdh -s "3DS Random Game Launcher" -l "3DS Random Game Launcher" -p "selloa" -i icon.png -o build\icon.icn- Package with makerom:
tools\bin\makerom.exe -f cia -o dist\3DS-Random-Game-Launcher-v0.1.9.cia ^
-rsf tools\3DS-Random-Game-Launcher.rsf -target t ^
-elf 3DS-Random-Game-Launcher.elf ^
-icon build\icon.icn -banner build\banner.bnrAdjust the output filename to match VERSION. See the makerom README for full options.
bannertool — download v1.2.0 and copy windows-x86_64/bannertool.exe to tools/bin/.
makerom — download a release from 3DSGuy/Project_CTR (makerom-v* tags) and copy makerom.exe to tools/bin/.
- diasurgical/bannertool — banner/icon tool source
- slalomsquid/CBuilder3DS — CIA packaging template (workflow reference)
- 3DSGuy/Project_CTR — makerom source
- CIA build outputs (
.cia,.cxi) go indist/(gitignored) - Tracked CIA archives live in releases/archive/ for reference builds
- The RSF references a
romfs/directory; create it only if the app needs embedded files - Most users should use the
.3dsxfrom Homebrew Launcher; CIA is for Home Menu installation