3dsconv.py
is a Python 3 script that converts Nintendo 3DS CTR Cart Image files (CCI, '.cci', '.3ds') to the CTR Importable Archive format (CIA).pip install pyaes
). Original NCCH encryption requires a copy of the protected ARM9 bootROM.3dsconv.exe
. See Encryption for details about encrypted files.python3 setup.py install
.--output=<dir>
- Save converted files in specified directory; default is current directory or value of variable output-directory
--boot9=<file>
- Path to dump of protected ARM9 bootROM--overwrite
- Overwrite existing converted files--ignore-bad-hashes
- Ignore invalid hashes and CCI files and convert anyway--ignore-encryption
- Ignore the encryption header value, assume the ROM as unencrypted--verbose
- Print more information--dev-keys
- Use developer-unit keys--boot9=
or variable boot9_path
, if setboot9.bin
(full) in current working directoryboot9_prot.bin
(protected) in current working directory~/.3ds/boot9.bin
(full)~/.3ds/boot9_prot.bin
(protected)sdmc:/boot9strap/boot9.bin
.2f88744feed717856386400a44bba4b9ca62e76a32c715d4f309c399bf28166f
7331f7edece3dd33f2ab4bd0b3a5d607229fd19212c10b734cedcaf78c1a7b98
--dev-keys
. This is required for titles encrypted using dev-unit keys (only seems to be used for SystemUpdater). Titles encrypted with retail keys can't be converted this way without external decryption.certchain-dev.bin
in current working directory, or ~/.3ds/certchain-dev.bin
.ctrtool --certs=certchain-dev.bin title.cia
.7921ae82c9dcf411351314f2fe2c67378c6a872d2524f71b3c002b4d4a56846f
cmd.exe
) in the current directory.py -3.4 -m py2exe.build_exe 3dsconv.py -b 0
. See the py2exe page for more options.3dsconv.exe
will be in dist
after it finishes. If anything but 0
was used for -b
/--bundle-files
, dependencies will also be saved.3dsconv.py
and pyaes are under the MIT license.