All Projects → ihaveamac → 3dsconv

ihaveamac / 3dsconv

Licence: mit
Python script to convert Nintendo 3DS CCI (".cci", ".3ds") files to the CIA format

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to 3dsconv

Div Games Studio
Complete cross platform games development package, originally for DOS but now available on modern platforms.
Stars: ✭ 168 (-46.15%)
Mutual labels:  3ds, nintendo-3ds
m3diaLib-CTR
A C++ library for easier homebrew development for the Nintendo 3DS
Stars: ✭ 39 (-87.5%)
Mutual labels:  nintendo-3ds, 3ds
bottomless-block-barrage
Panel de Pon (Tetris Attack) clone for the 3ds.
Stars: ✭ 15 (-95.19%)
Mutual labels:  nintendo-3ds, 3ds
powerslaves
Taking PowerSaves as a slave to your will.
Stars: ✭ 28 (-91.03%)
Mutual labels:  nintendo-3ds, 3ds
Ninfs
FUSE filesystem Python scripts for Nintendo console files
Stars: ✭ 241 (-22.76%)
Mutual labels:  3ds, nintendo-3ds
Rom Properties
ROM Properties Page shell extension
Stars: ✭ 210 (-32.69%)
Mutual labels:  3ds, nintendo-3ds
Libctru
Homebrew development library for Nintendo 3DS/Horizon OS user mode (Arm11)
Stars: ✭ 530 (+69.87%)
Mutual labels:  3ds, nintendo-3ds
3ds Examples
Examples for 3DS using devkitARM, libctru, citro3d and citro2d
Stars: ✭ 221 (-29.17%)
Mutual labels:  3ds, nintendo-3ds
CDNTool
CDN Nintendo's servers 3DS title downloader (as CIA)
Stars: ✭ 15 (-95.19%)
Mutual labels:  nintendo-3ds, 3ds
3DS.py
Python on your Nintendo 3DS
Stars: ✭ 90 (-71.15%)
Mutual labels:  nintendo-3ds, 3ds
flipnote-studio-3d-docs
Documentation for Flipnote Studio 3D (3DS eShop)
Stars: ✭ 25 (-91.99%)
Mutual labels:  nintendo-3ds
SuperPhotoStudio
Take pictures of your favorite characters, in glorious Hori-HD (800px mode)!
Stars: ✭ 16 (-94.87%)
Mutual labels:  nintendo-3ds
libstarlight
3DS Homebrew Application Framework
Stars: ✭ 28 (-91.03%)
Mutual labels:  3ds
ACNL REditor
Animal Crossing New Leaf ROM Editor: Patch ACNL's code and files with QoL improvements to change the gameplay.
Stars: ✭ 35 (-88.78%)
Mutual labels:  3ds
OpenFirmInstaller
Safe, simple, user-friendly installer for sighax bootloaders
Stars: ✭ 87 (-72.12%)
Mutual labels:  3ds
3dsMax-Python-HowTos
3ds Max python samples
Stars: ✭ 86 (-72.44%)
Mutual labels:  3ds
old-browserhax
Fast and free old 3ds browser exploit for latest firmware.
Stars: ✭ 37 (-88.14%)
Mutual labels:  3ds
3ds-hello-dlang
A 3DS homebrew example written in D!
Stars: ✭ 19 (-93.91%)
Mutual labels:  3ds
SavvyManager
An editor/save manager for the Girls Mode/Girls Style/Style Savvy/Style Boutique games, on Nintendo 3DS
Stars: ✭ 13 (-95.83%)
Mutual labels:  nintendo-3ds
LeafEdit
Work in progress Animal Crossing: New Leaf save manager & editor for the Nintendo 3DS!
Stars: ✭ 56 (-82.05%)
Mutual labels:  nintendo-3ds

3dsconv

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).

3dsconv can detect if a CCI is decrypted, encrypted using original NCCH (slot 0x2C), or encrypted using zerokey. Encryption requires pyaes (pip install pyaes). Original NCCH encryption requires a copy of the protected ARM9 bootROM.

Decrypt9WIP and GodMode9 can dump game cards to CIA directly now, rendering this tool partially obsolete. It can still be used for existing game dumps, however.

Usage

Basic use

On Windows, CCIs can be dragged on top of 3dsconv.exe. See Encryption for details about encrypted files.

Advanced options

3dsconv can be used as a standalone script, or installed using python3 setup.py install.

python3 3dsconv.py [options] game.3ds [game.3ds ...]
  • --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

Encryption

3dsconv requires the Nintendo 3DS full or protected ARM9 bootROM to decrypt files using Original NCCH encryption (slot 0x2C). The file is checked for in the order of:

  • Value of option --boot9= or variable boot9_path, if set
  • boot9.bin (full) in current working directory
  • boot9_prot.bin (protected) in current working directory
  • ~/.3ds/boot9.bin (full)
  • ~/.3ds/boot9_prot.bin (protected)

boot9strap is required to dump. Setup can be found at 3DS Guide. Hold START+SELECT+X at boot to dump to sdmc:/boot9strap/boot9.bin.

boot9 SHA256: 2f88744feed717856386400a44bba4b9ca62e76a32c715d4f309c399bf28166f
boot9_prot SHA256: 7331f7edece3dd33f2ab4bd0b3a5d607229fd19212c10b734cedcaf78c1a7b98

Developer titles (not fully tested)

Conversion for developer-unit systems is possible with --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.

This does not decrypt or change the encryption of the output file, therefore CIAs will still only work on dev-units without separate decryption or changing encryption.

The dev certchain must be provided. The file is searched for is certchain-dev.bin in current working directory, or ~/.3ds/certchain-dev.bin.

To extract from a dev CIA, use ctrtool --certs=certchain-dev.bin title.cia.

SHA256: 7921ae82c9dcf411351314f2fe2c67378c6a872d2524f71b3c002b4d4a56846f

Pack into standalone executable for Windows

Using py2exe for Python 3, you can pack the script into a Windows executable, primarily for use on a computer without Python, or for easy use in the Windows Command Prompt. Python 3.4 is required, 3.5 or later is currently not supported.

  1. Clone or download the repository, or the latest release.
  2. Open the Windows Command Prompt (cmd.exe) in the current directory.
  3. Run py -3.4 -m py2exe.build_exe 3dsconv.py -b 0. See the py2exe page for more options.
  4. 3dsconv.exe will be in dist after it finishes. If anything but 0 was used for -b/--bundle-files, dependencies will also be saved.

License / Credits

  • 3dsconv.py and pyaes are under the MIT license.

For versions older than "2.0", see this Gist.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].