Line 1: |
Line 1: |
| [[Category:File formats]] | | [[Category:File formats]] |
− | The following text tries to document the structure of the NCCH container format. | + | The following text tries to document the structure of the NCCH container format. This format is used to store the content of any installed [[Titles|title]]. |
| | | |
| == Overview == | | == Overview == |
− | There are two known NCCH container specialisations used on the 3DS, "executable" and "non-executable", officially known as CXI and CFA respectively. | + | There are two known NCCH container specializations used on the 3DS, "executable" and "non-executable", officially known as CXI and CFA, respectively. |
| | | |
− | == CXI == | + | === CXI === |
| | | |
− | The CXI (CTR Executable Image) specialisation of the NCCH container contains executable code, which runs on a single ARM11 core. | + | The CXI (CTR Executable Image) specialization of the NCCH container contains executable code, which runs on a single ARM11 core. |
| | | |
| The CXI format is structured in the following order: | | The CXI format is structured in the following order: |
Line 20: |
Line 20: |
| The plain binary region is an area specifically stored in plaintext, mostly containing SDK library strings for identification. | | The plain binary region is an area specifically stored in plaintext, mostly containing SDK library strings for identification. |
| | | |
− | == CFA == | + | === CFA === |
| | | |
− | The CFA (CTR File Archive) specialisation of the NCCH container, is not executable, but are used in conjunction with CXI files. For instance the DLP Child Container and the Electronic Manual. (There is a system update NCCH which follows this format, but is used by the 3DS rather than the Application NCCH, and only works when embedded in the [[CCI]] format because the nVer is kept in the header of retail [[CCI]] files instead of the application NCCH). There are CFA files which exist alone in a title, but these are just [[Title list|System Data Archive]] titles and are found only in the [[Flash Filesystem#CTR partition|NAND]]. | + | The CFA (CTR File Archive) specialization of the NCCH container is not executable, but is used in conjunction with CXI files, e.g. the DLP Child Container and the Electronic Manual. (There is a system update NCCH which follows this format, but is used by the 3DS rather than the Application NCCH, and only works when embedded in the [[CCI]] format because the nVer is kept in the header of retail [[CCI]] files instead of the application NCCH). There are CFA files which exist alone in a title, but these are just [[Title list|System Data Archive]] titles and are found only in the [[Flash Filesystem#CTR partition|NAND]]. |
| | | |
| CFA files are structured in the following order: | | CFA files are structured in the following order: |
Line 29: |
Line 29: |
| * followed by an '''optional''' read-only filesystem ([[RomFS]]) | | * followed by an '''optional''' read-only filesystem ([[RomFS]]) |
| | | |
− | == NCCH Specs == | + | == Container File Format == |
| | | |
| === Encryption === | | === Encryption === |
Line 317: |
Line 317: |
| == Tools == | | == Tools == |
| | | |
− | [https://github.com/3dshax/ctr/tree/master/ctrtool ctrtool] - (CMD)(Windows/Linux) Parsing and decrypting(debug only) NCCH files | + | [https://github.com/profi200/Project_CTR/tree/master/ctrtool ctrtool] - (CMD)(Windows/Linux) Parsing and decrypting (debug only) NCCH files |
| | | |
| [[3DSExplorer]] - (GUI)(Windows Only) Parsing NCCH files | | [[3DSExplorer]] - (GUI)(Windows Only) Parsing NCCH files |