* Link to guide to dump boot9/movable.sed. * Link to Setting_up_Development_Environment on 3dbrew. No need for duplicate instructions here.
custom-install
Experimental script to automate the process of a manual title install for Nintendo 3DS. Originally created late June 2019.
Summary
- Dump boot9.bin and movable.sed from a 3DS system.
- Install the packages:
- Windows:
py -3 -m pip install --user -r requirements.txt - macOS/Linux:
python3 -m pip install --user -r requirements.txt
- Download the repo (zip link or
git clone) - Run
custominstall.pywith boot9.bin, movable.sed, path to the SD root, and CIA files to install (see Usage section). - Download and use custom-install-finalize on the 3DS system to finish the install.
Setup
Linux users must build wwylele/save3ds and place save3ds_fuse in bin/linux. Just install rust using rustup, then compile with: cargo build. Your compiled binary is located in target/debug/save3ds_fuse, copy it to bin/linux.
movable.sed is required and can be provided with -m or --movable.
boot9 is needed:
-bor--boot9argument (if set)BOOT9_PATHenvironment variable (if set)%APPDATA%\3ds\boot9.bin(Windows-specific)~/Library/Application Support/3ds/boot9.bin(macOS-specific)~/.3ds/boot9.bin~/3ds/boot9.bin
A SeedDB is needed for newer games (2015+) that use seeds.
SeedDB is checked in order of:
--seeddbargument (if set)SEEDDB_PATHenvironment variable (if set)%APPDATA%\3ds\seeddb.bin(Windows-specific)~/Library/Application Support/3ds/seeddb.bin(macOS-specific)~/.3ds/seeddb.bin~/3ds/seeddb.bin
custom-install-finalize
custom-install-finalize installs a ticket, plus a seed if required. This is required for the title to appear and function.
This can be built as most 3DS homebrew projects with devkitARM.
Usage
Use -h to view arguments.
Examples:
py -3 custominstall.py -b boot9.bin -m movable.sed --sd E:\ file.cia file2.cia
python3 custominstall.py -b boot9.bin -m movable.sed --sd /Volumes/GM9SD file.cia file2.cia
python3 custominstall.py -b boot9.bin -m movable.sed --sd /media/GM9SD file.cia file2.cia
License/Credits
pyctr/ is from ninfs 795373d.
save3ds by wwylele is used to interact with the Title Database (details in bin/README).
Thanks to @BpyH64 for researching how to generate the cmacs.