Difference between revisions of "Talk:NCSD"

From 3dbrew
Jump to navigation Jump to search
m
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
The ExHeader Sha-256 hash and ExHeader Size for the NCSD header is always zero, why?--[[User:3dsguy|3dsguy]] 07:33, 28 July 2012 (CEST)
 
The ExHeader Sha-256 hash and ExHeader Size for the NCSD header is always zero, why?--[[User:3dsguy|3dsguy]] 07:33, 28 July 2012 (CEST)
 
@Neimod, then what exists between 0x1000 and 0x4000 and what would you call it?--[[User:3dsguy|3dsguy]] 17:09, 28 July 2012 (CEST)
 
: It's called the card info header, returned by gamecards when reading the header. I'm also finding your updates not always accurate because you are working only with development files, which differ sometimes greatly with retail files. If you look closely, you'll see that retail card info header is 0x200 bytes, while the development card info header is much much bigger. --[[User:Neimod|Neimod]] 20:46, 28 July 2012 (CEST)
 
::"I'm also finding your updates not always accurate because you are working only with development files" Well, while I was making mods for 3DSExplorer specifically the NCSD module, I noticed that there was an extra section at 0x1000 bytes in the retail .CCI I had been testing by mods with. This had not been documented on 3DBrew, so to see what all this was about, I built a CCI with a developer CCI maker, BOTH retail and dev CCI followed the format of titleID, reserved(8), 'Initial data'(this section might be different to retail but uses the same amount of space.), reserved(c0), copied from executable NCCH, Reserved/not used(on retail CCIs this was filled with 'F's for the debug CCI I built, this was filled with '0's). So they were both 0x200 in size, if you ignore the filling out to offset 0x4000. Checking now, Nintendo Development CSU files, the card info header is bigger. But the point being I followed many retail .CCIs and one dev CCI(which was quite similar to retail format) for describing the format. After checking your fix up on the NCSD page, my documentation of the region 0x1000-0x1200 for retail was correct. --[[User:3dsguy|3dsguy]] 03:48, 29 July 2012 (CEST)
 
::"I'm also finding your updates not always accurate because you are working only with development files" What else have I got wrong?--[[User:3dsguy|3dsguy]] 03:48, 29 July 2012 (CEST)
 
  
 
Old version:
 
Old version:
Line 31: Line 26:
 
|  0x320
 
|  0x320
 
|  8
 
|  8
|  [[NVer]] Title ID (Only Present in retail .CCI)
+
|  [[CVer]] Title ID (Only Present in retail .CCI)
 
|-
 
|-
 
|  0x328
 
|  0x328
 
|  8
 
|  8
|  [[NVer]] Title Version (Only Present in retail .CCI)
+
|  [[CVer]] Title Version (Only Present in retail .CCI)
 
|}
 
|}
  
The region-specific NVer title for this NCSD presumably must exist on NAND. The NVer title version may also be used to check whether a system update is required before running the app.
+
This CVer titleID/title-version is from the CVer [[CIA]] stored in the [[System Update CFA]]. With newer NATIVE_FIRM versions the system reads this 0x200-byte block from offset 0x200 in the NCSD image, however the CVer fields are not used.
  
 
:Old Version? Is this not present in new retail game dumps?--[[User:3dsguy|3dsguy]] 03:48, 29 July 2012 (CEST)
 
:Old Version? Is this not present in new retail game dumps?--[[User:3dsguy|3dsguy]] 03:48, 29 July 2012 (CEST)

Latest revision as of 03:58, 28 June 2013

The ExHeader Sha-256 hash and ExHeader Size for the NCSD header is always zero, why?--3dsguy 07:33, 28 July 2012 (CEST)

Old version:

Offset Size Description
0x200 4 Always 0xFFFFFFFF
0x204 252 Padding?
0x300 4 Used ROM size in bytes
0x304 28 Padding
0x320 8 CVer Title ID (Only Present in retail .CCI)
0x328 8 CVer Title Version (Only Present in retail .CCI)

This CVer titleID/title-version is from the CVer CIA stored in the System Update CFA. With newer NATIVE_FIRM versions the system reads this 0x200-byte block from offset 0x200 in the NCSD image, however the CVer fields are not used.

Old Version? Is this not present in new retail game dumps?--3dsguy 03:48, 29 July 2012 (CEST)