Line 13:
Line 13:
* followed by an extended header,
* followed by an extended header,
* followed by an access descriptor,
* followed by an access descriptor,
−
* followed by a plain binary region,
+
* followed by an '''optional''' plain binary region,
−
* followed by an embedded executable filesystem ([[ExeFS]]) - (contains ARM11 code, Home menu [[SMDH|icn]]/bnr and [[Logo|logo]]),
+
* followed by an '''optional''' executable filesystem ([[ExeFS]]) - (contains ARM11 code, Home menu [[SMDH|icn]]/bnr and [[Logo|logo]]),
−
* and finally followed by a read-only filesystem ([[RomFS]]) - (Used for external file storage).
+
* and finally followed by an '''optional''' read-only filesystem ([[RomFS]]) - (Used for external file storage).
The extended header contains additional information regarding access control.
The extended header contains additional information regarding access control.
Line 26:
Line 26:
CFA files are structured in the following order:
CFA files are structured in the following order:
* first a NCCH header,
* first a NCCH header,
−
* followed by a read-only filesystem ([[RomFS]])
+
* followed by an '''optional''' executable filesystem ([[ExeFS]]) (same as in CXI, except no ARM11 code)
+
* followed by an '''optional''' read-only filesystem ([[RomFS]])
Non-Executable NCCH file examples(Includes Decrypted [[RomFS]]):
Non-Executable NCCH file examples(Includes Decrypted [[RomFS]]):
Line 188:
Line 189:
|-
|-
| 5
| 5
−
| Content Type Bit-masks: RomFS = 0x1, ExeFS = 0x2, SystemUpdate = 0x4, Manual = 0x8, Child = (0x4<nowiki>|</nowiki>0x8), Trial = 0x10. When 'RomFS' is set, but not 'ExeFS', NCCH is a CFA. Otherwise when 'ExeFS' is set, NCCH is a CXI.
+
| Content Type Bit-masks: Data = 0x1, Executable = 0x2, SystemUpdate = 0x4, Manual = 0x8, Child = (0x4<nowiki>|</nowiki>0x8), Trial = 0x10. When 'Data' is set, but not 'Executable', NCCH is a CFA. Otherwise when 'Executable' is set, NCCH is a CXI.
|-
|-
| 6
| 6