Releases: 3DSGuy/Project_CTR
Releases · 3DSGuy/Project_CTR
CTRTool v1.0.1
About
CTRTool is a general purpose reading/extraction tool for Nintendo 3DS file formats.
Supported File Formats
- ExeFs (.exefs)
- RomFs (.romfs) (and RomFS wrapped in IVFC)
- NCCH Format Variants:
- CTR Executable Image (.cxi)
- CTR File Archive (.cfa)
- CIP (.cip) (These are the processes bundled with the kernel image)
- NCCH ExtendedHeader (.exhdr)
- CTR Importable Archive (.cia)
- NCSD Format Variants:
- CTR Card Image (.cci/.3ds/.3dz)
- CTR System Update (.csu)
- ES TitleMetaData (.tmd)
- ES eTicket (.tik)
- Firmware Images (.firm)
- CRR (.crr)
Change Log since v1.0.1
- [BugFix] Fixed bug where common-key 04 & 05 weren't initialised correctly.
CTRTool v1.0.0
About
CTRTool is a general purpose reading/extraction tool for Nintendo 3DS file formats.
Supported File Formats
- ExeFs (.exefs)
- RomFs (.romfs) (and RomFS wrapped in IVFC)
- NCCH Format Variants:
- CTR Executable Image (.cxi)
- CTR File Archive (.cfa)
- CIP (.cip) (These are the processes bundled with the kernel image)
- NCCH ExtendedHeader (.exhdr)
- CTR Importable Archive (.cia)
- NCSD Format Variants:
- CTR Card Image (.cci/.3ds/.3dz)
- CTR System Update (.csu)
- ES TitleMetaData (.tmd)
- ES eTicket (.tik)
- Firmware Images (.firm)
- CRR (.crr)
Change Log since v0.7
- Painstakingly remastered in glorious 4K UHD with Dolby Atmos!
- General system stability improvements to enhance the user's experience.
- [BugFix] Files larger than 2GB can now be verified (#85)
- [Environment] Windows 32bit and 64bit binaries now provided (#24)
- [NEW] Added support for processing (and validating)
.tik
files directly (not just as part of a CIA file). - [NEW] Added support for processing (and validating)
.crr
files. - [NEW] Added support for validating signatures for ES Certificate, ES eTicket and ES TitleMetaData.
- [NEW] Added support for processing data after NCSD header, including processing & decrypting
InitialData
. - [NEW] Added support for validating FIRM signature and decryption of sections.
- There is a CLI option for specifying the FIRM type (nand/nor/ngc/sdmc) (
--firmtype
)
- There is a CLI option for specifying the FIRM type (nand/nor/ngc/sdmc) (
- [Change] All Generic AES Keys and RSA Public keys are included with CTRTool. So they can no longer be supplied by the user (except for NCCH seeds):
- Specifying a keyset file (
-k
,--keyset
) is now deprecated. (Generic AES/RSA keys are initialised internally.) - Specifying a common key (
--commonkey
) is now deprecated. (All common keys are initialised internally.) - Specifying the NCCH AES key (
--ncchkey
) is now deprecated. (All secure NCCH keys are initialised internally.) - Specifying the NCCH fixed system AES key (
--ncchsyskey
) is now deprecated. (The NCCH system key is initialised internally.)
- Specifying a keyset file (
- [Change] Content extract now works for CCI/3DS files like it did for CIA files.
- Option
--contents
works to extract content for CCI/3DS too.
- Option
- [Change] CXI/CFA content in CIA files are now processed automatically (if decryptable) like the are for CCI/3DS files.
- Option
-n
,--ncch
to select the CXI/CFA to process for CCI/3DS files now works for CIA files too.
- Option
- [Change] Displaying data in ES eTicket & ES TitleMetaData has changed completely, the previous format wasn't too informative.
- [Change] Some file types have slight changes to formatting of information.
- [Change] Some CLI flags/options have been deprecated because they are no longer relevant
- Enabling the extract mode (
-x
,--extract
) is now deprecated. It was always redundant. - Specifying the unit size (
--unitsize
) is now deprecated. With all known NCCH/NCSD, CTRTool can properly determine the unit size.
- Enabling the extract mode (
- [Removed] CWAV support was not included in this refactor
- I may add it back if there is enough demand.
MakeROM v0.18
MakeROM v0.17
Change Log
- CXI
Homebrew
Logo updated, fixes crash on CHN region 3DSs. (Thanks @Jhynjhiruu)- Thanks to @PabloMK7 fo creating the new homebrew logo
- Any RSF files that use
BasicInfo/Logo
valueHomebrew
will automatically use the new logo
- Updated RSF nodes to support using old homebrew logo for those that need it
BasicInfo/Logo
with new valueHomebrewLegacy
MakeROM v0.16.2
Change Log
- Fix UTF-16 to UTF-8 conversion on non-Windows platforms (thanks @muhmuhten)
CTRTool v0.7
Change Log
- Fix UTF-16 to UTF-8 conversion on non-Windows platforms (thanks @muhmuhten)
- Version is now shown in help text
MakeROM v0.16.1
Change Log
- Re-introduced CLI argument
-ckeyid
- This allows manually specifying the Ticket
CommonKey
index
- This allows manually specifying the Ticket
- Re-introduced CLI argument
-ncchseckey
- This allows manually specifying the NCCH
secure-crypto
key index
- This allows manually specifying the NCCH
- Fix regression in relation to
CommonKey
selection
makerom v0.16 and ctrtool
CTR-MakeROM Change Log
- Code cleanup & misc. bug fixes (thanks @luigoalma, @drizzt, @Reisyukaku and @jonirrings)
- Increased maximum
AffinityMask
to 3 (from 1) - Fixed bug where savedata size was incorrectly detected as invalid for AGB_FIRM CIA files (thanks @Alex34567)
- Fixed bug where an RSF file was erroneously required to build a CIA file from an SRL file
- Fixed bug where using
TitleInfo/CategoryFlags
was always deemed invalid (thanks @piratesephiroth) - Added CLI switch
-nocodepadding
which allows generating code binaries without padding between segments (used with firm-sysmodules) (thanks @yifanlu) - Updated RSF nodes to support new filesystem access flag (thanks @Steveice10)
AccessControlInfo/FileSystemAccess
with new valueSeedDB
- Warn users for not specifying any services via RSF key
AccessControlInfo/ServiceAccessControl
- No longer includes the Logo as a NCCH partition if it is included in the ExeFS archive
- Added a UniqueID range check
- Added support for NCCH
secure-crypto
encryption (hardware generated keys) secure-crypto
is now default for NCCH encryption- Replaced CLI switch
-fsign
with-ignoresign
which is more permissive of invalid signatures
CTRTool Change Log
- Misc bug fixes (thanks @luigoalma, @Steveice10, @InfiniCore, @profi200, @Reisyukaku)
- Fixed bug where CIA content may not validate properly
- Improved AES-CTR processing speed
- Updating FIRM processing code (thanks @profi200)
- Added compiler support for CYGWIN (thanks @Thog)
- Add SecureCrypto support (thanks @SciresM, @plutoo, and others)
- Added option
-d
/--dev
to allow using development keys for decryption - Added option
--seed
to allow specifying the seed for NCCH seed crypto - Added option
--seeddb
to allow specifying a seeddb.bin file instead of a specific seed - Relevent Keys (and KeyX and KeyY) are now included in
ctrtool
and so these command line arguments are removed:--commonkey
--ncchkey
--ncchsyskey
--ncchkeyxold
--ncchkeyxseven
--ncchkeyxninethree
--ncchkeyxninesix
- Define 11.3 and 11.4 syscalls (thanks @Myriachan)
SetGpuProt
SetWifiEnabled
- Refactored ExeFS processing code (
--exefs
now works for NCCH with new SecureCrypto) - Fixed bug where CIA extraction did not honour the CIA header content index (thanks @Steveice10)
CTRTool v0.6
Change Log
- Misc bug fixes (thanks @luigoalma, @Steveice10, @InfiniCore, @profi200, @Reisyukaku)
- Fixed bug where CIA content may not validate properly
- Improved AES-CTR processing speed
- Updating FIRM processing code (thanks @profi200)
- Added compiler support for CYGWIN (thanks @Thog)
- Add SecureCrypto support (thanks @SciresM, @plutoo, and others)
- Added option
-d
/--dev
to allow using development keys for decryption - Added option
--seed
to allow specifying the seed for NCCH seed crypto - Added option
--seeddb
to allow specifying a seeddb.bin file instead of a specific seed - Relevent Keys (and KeyX and KeyY) are now included in
ctrtool
and so these command line arguments are removed:--commonkey
--ncchkey
--ncchsyskey
--ncchkeyxold
--ncchkeyxseven
--ncchkeyxninethree
--ncchkeyxninesix
- Define 11.3 and 11.4 syscalls (thanks @Myriachan)
SetGpuProt
SetWifiEnabled
- Refactored ExeFS processing code (
--exefs
now works for NCCH with new SecureCrypto) - Fixed bug where CIA extraction did not honour the CIA header content index (thanks @Steveice10)
MakeROM v0.16
Change Log
- Code cleanup & misc. bug fixes (thanks @luigoalma, @drizzt, @Reisyukaku and @jonirrings)
- Increased maximum
AffinityMask
to 3 (from 1) - Fixed bug where savedata size was incorrectly detected as invalid for AGB_FIRM CIA files (thanks @Alex34567)
- Fixed bug where an RSF file was erroneously required to build a CIA file from an SRL file
- Fixed bug where using
TitleInfo/CategoryFlags
was always deemed invalid (thanks @piratesephiroth) - Added CLI switch
-nocodepadding
which allows generating code binaries without padding between segments (used with firm-sysmodules) (thanks @yifanlu) - Updated RSF nodes to support new filesystem access flag (thanks @Steveice10)
AccessControlInfo/FileSystemAccess
with new valueSeedDB
- Warn users for not specifying any services via RSF key
AccessControlInfo/ServiceAccessControl
- No longer includes the Logo as a NCCH partition if it is included in the ExeFS archive
- Added a UniqueID range check
- Added support for NCCH
secure-crypto
encryption (hardware generated keys) secure-crypto
is now default for NCCH encryption- Replaced CLI switch
-fsign
with-ignoresign
which is more permissive of invalid signatures