Skip to content

Releases: 3DSGuy/Project_CTR

CTRTool v1.0.1

15 Mar 05:28
e3b8e32
Compare
Choose a tag to compare

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

14 Mar 10:04
54e8e31
Compare
Choose a tag to compare

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)
  • [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.)
  • [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.
  • [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.
  • [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.
  • [Removed] CWAV support was not included in this refactor
    • I may add it back if there is enough demand.

MakeROM v0.18

28 Nov 05:11
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: makerom-v0.17...makerom-v0.18

MakeROM v0.17

11 May 09:04
319c4c6
Compare
Choose a tag to compare

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 value Homebrew will automatically use the new logo
  • Updated RSF nodes to support using old homebrew logo for those that need it
    • BasicInfo/Logo with new value HomebrewLegacy

MakeROM v0.16.2

28 Apr 13:29
Compare
Choose a tag to compare

Change Log

  • Fix UTF-16 to UTF-8 conversion on non-Windows platforms (thanks @muhmuhten)

CTRTool v0.7

28 Apr 13:22
Compare
Choose a tag to compare

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

28 Apr 14:31
Compare
Choose a tag to compare

Change Log

  • Re-introduced CLI argument -ckeyid
    • This allows manually specifying the Ticket CommonKey index
  • Re-introduced CLI argument -ncchseckey
    • This allows manually specifying the NCCH secure-crypto key index
  • Fix regression in relation to CommonKey selection

makerom v0.16 and ctrtool

04 Aug 06:53
ce4f09b
Compare
Choose a tag to compare

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 value SeedDB
  • 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

28 Apr 13:12
Compare
Choose a tag to compare

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

28 Apr 14:29
148811d
Compare
Choose a tag to compare

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 value SeedDB
  • 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