A GUI .exe that builds a bootable GameCube .iso from a .dol — the same
technique as cubiboot.iso, but for any .dol.
100% self-contained: the .exe needs no Docker, WSL, genisoimage, or installed
Python. Everything (the Python runtime, image conversion, gbi.hdr, and the default
banner) is embedded in the executable itself. The ISO is assembled in pure Python —
nothing external.
Run dist\dol2iso.exe (double-click). In the window:
- DOL file — pick the
.dol. - Banner (optional) — any image (PNG/JPG/BMP/… any size). If left empty, the tool's default banner is used. The image is resized to 96×32 and converted to RGB5A3 automatically (check Stretch to fill without keeping aspect ratio).
- Save .iso to — output file.
- Title / Subtitle — BIOS intro text (optional; title defaults to the
.dolname; leave a field empty to keep it blank). - Generate .iso.
The same .exe also accepts arguments:
dol2iso.exe input.dol output.iso [banner.png] [--title "T"] [--subtitle "S"] [--stretch]
The .iso is a GameCube disc whose apploader (embedded in gbi.hdr, from
makeo/cubeboot-tools) reads and executes the .dol at boot. On the console the
apploader only reads:
- sector 0 →
gbi.hdr(disc header + apploader + FST) - sector 17 → El-Torito Boot Record → boot catalog pointer
- boot catalog →
load_rba(where the.dolis) andsector_count .dolatload_rba × 2048→ executes
So the ISO9660 filesystem itself doesn't affect booting; even so, the disc is a valid
ISO9660 (BOOT.DOL + BOOT.CAT) that mounts and inspects normally.
Verified: the output was checked with
isoinfoand the Boot Record (sector 17) is byte-identical togenisoimage's; a simulation of the apploader's steps confirms it reaches the.dol. Real boot on hardware/Dolphin depends on the.dolhaving a valid layout (that's the.dol's responsibility, not the packaging's).
Requires Python + pip install pyinstaller pillow. Then:
.\build.ps1Produces dist\dol2iso.exe.
dol2iso_gui.py— GUI (entry point) + CLI modedol2iso_core.py— RGB5A3 branding + ISO9660/El-Torito writer (pure Python)assets/gbi.hdr— boot header/apploader (32 KB)assets/default_banner.png— default bannerassets/dolphin.ico— app iconmake_default_banner.py— regenerates the default bannerbuild.ps1— builds the.exedist/dol2iso.exe— the standalone executable