Changes

Jump to navigation Jump to search
387 bytes added ,  21:33, 20 March 2016
Line 1: Line 1: −
=== Overview ===
   
ExeFS or Executable Filesystem contains information related to the executable program, and is the part of the [[NCCH#CXI|CXI]] format.  
 
ExeFS or Executable Filesystem contains information related to the executable program, and is the part of the [[NCCH#CXI|CXI]] format.  
    
The ExeFS usually contains one or more of the following files:
 
The ExeFS usually contains one or more of the following files:
 
* .code Contains the code binary, which can be optionally reverse-LZSS compressed via an exheader flag.
 
* .code Contains the code binary, which can be optionally reverse-LZSS compressed via an exheader flag.
* [[logo|.logo]] Contains distribution licensing Binary data.
+
* [[logo|logo]] Contains distribution licensing Binary data.
* [[File Formats|.banner]] Contains the banner which homemenu uses for this CXI.
+
* [[File Formats|banner]] Contains the banner which homemenu uses for this CXI.
* [[SMDH|.icon]] Contains the icon which homemenu displays for this CXI.
+
* [[SMDH|icon]] Contains the icon which homemenu displays for this CXI.
    
=== Format ===
 
=== Format ===
Line 14: Line 13:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
START
+
Start
SIZE
+
Size
DESCRIPTION
+
Description
 
|-
 
|-
 
|  0x00
 
|  0x00
0x80
+
0xa0
|  File headers (8 headers maximum, 16 bytes each)
+
|  File headers (10 headers maximum, 16 bytes each)
 
|-
 
|-
0x80
+
0xa0
0x80
+
0x20
 
|  Reserved
 
|  Reserved
 
|-
 
|-
0x100
+
0xc0
0x100
+
0x140
|  File hashes (8 hashes maximum, 32 bytes each, one for each header)
+
|  File hashes (10 hashes maximum, 32 bytes each, one for each header)
 
|}
 
|}
 +
 +
File hashes are stored in reverse order, i.e. the hash at offset 0x1E0 corresponds to the first ExeFS section.
    
==== File headers ====
 
==== File headers ====
There are a maximum of 8 file headers in the ExeFS format, which have the following structure:
+
There are a maximum of 10 file headers in the ExeFS format. (This maximum number of file headers is disputable, with makerom indicating a maximum of 8 sections and makecia indicating a maximum of 10. From a non-SDK point of view, the ExeFS header format can hold no more than 10 file headers within the currently define size of 0x200 bytes.) The file headers have the following structure:
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
START
+
Start
SIZE
+
Size
DESCRIPTION
+
Description
 
|-
 
|-
 
|  0x0
 
|  0x0
549

edits

Navigation menu