Changes

552 bytes added ,  19:47, 19 May 2019
no edit summary
Line 29: Line 29:  
| 0x0
 
| 0x0
 
| 0x4
 
| 0x4
| Magic "META".
+
| Magicnum "META"
 
|-
 
|-
 
| 0x4
 
| 0x4
 
| 0x8
 
| 0x8
| Reserved (Padding / Unused)
+
| Reserved
 
|-
 
|-
 
| 0xC
 
| 0xC
 
| 0x1
 
| 0x1
| MmuFlags, bit0: 64-bit instructions, bits1-3: address space width (1=64-bit, 2=32-bit). Needs to be <= 0xF
+
| MMU flags (bit0 = use 64-bit instructions, bit1 = use 64-bit address space, bit2 = use 32-bit address space, bit3 = use 32-bit address space without reserved region)
 
|-
 
|-
 
| 0xD
 
| 0xD
 
| 0x1
 
| 0x1
| Reserved (Padding / Unused)
+
| Reserved
 
|-
 
|-
 
| 0xE
 
| 0xE
Line 49: Line 49:  
| 0xF
 
| 0xF
 
| 0x1
 
| 0x1
| DefaultCpuId
+
| Main thread core number
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 57: Line 57:  
| 0x14
 
| 0x14
 
| 0x4
 
| 0x4
| [3.0.0+] System resource size (max size as of 5.x: 534773760). The size of PersonalMmHeap.
+
| [3.0.0+] System resource (PersonalMmHeap) size (max size as of 5.x: 534773760)
 
|-
 
|-
 
| 0x18
 
| 0x18
 
| 0x4
 
| 0x4
| ProcessCategory (0: regular title, 1: kernel built-in). Should be 0 here.
+
| Process category (0 = regular title, 1 = kernel built-in)
 
|-
 
|-
 
| 0x1C
 
| 0x1C
 
| 0x4
 
| 0x4
| Main entrypoint stack size (Should(?) be page-aligned. In non-nspwn scenarios, values of 0 can also rarely break in Horizon. This might be something auto-adapting or a security feature of some sort?)
+
| Main thread stack size (Should(?) be page-aligned. In non-nspwn scenarios, values of 0 can also rarely break in Horizon. This might be something auto-adapting or a security feature of some sort?)
 
|-
 
|-
 
| 0x20
 
| 0x20
Line 77: Line 77:  
| 0x40
 
| 0x40
 
| 0x30
 
| 0x30
| Reserved (Padding / Unused)
+
| Reserved
 
|-
 
|-
 
| 0x70
 
| 0x70
Line 105: Line 105:  
| 0x0
 
| 0x0
 
| 0x100
 
| 0x100
| RSA-2048 signature, seems to verify the data starting at 0x100 with the size field from 0x204.
+
| RSA-2048 signature over the data starting at 0x100 with the size field from 0x204
 
|-
 
|-
 
| 0x100
 
| 0x100
 
| 0x100
 
| 0x100
| RSA-2048 public key, seems to be used for the second [[NCA_Format|NCA]] signature.
+
| RSA-2048 public key for the second [[NCA_Format|NCA]] signature
 
|-
 
|-
 
| 0x200
 
| 0x200
 
| 0x4
 
| 0x4
| Magic "ACID".
+
| Magicnum "ACID"
 
|-
 
|-
 
| 0x204
 
| 0x204
 
| 0x4
 
| 0x4
| s32 Size field used with the above signature(?).
+
| Data size
 
|-
 
|-
 
| 0x208
 
| 0x208
 
| 0x4
 
| 0x4
| Zeroes
+
| Reserved
 
|-
 
|-
 
| 0x20C
 
| 0x20C
 
| 0x4
 
| 0x4
| Flags. Bit0 must be 1 on retail, on devunit 0 is also allowed. Bit1 is unknown, set to 1 for ARMS? [5.0.0+] Bit3-2: PoolPartition? For applets set to 0b01, for sysmodules set to 0b10. Exceptions: "starter" is set to 0, "nvservices" is set to 3.
+
| Flags (bit0 = ProductionFlag, bit1 = UnqualifiedApproval, [5.0.0+] bit2-3: PoolPartition? For applets set to 0b01, for sysmodules set to 0b10. Exceptions: "starter" is set to 0, "nvservices" is set to 3)
 
|-
 
|-
 
| 0x210
 
| 0x210
Line 161: Line 161:  
| 0x238
 
| 0x238
 
| 0x8
 
| 0x8
| Padding
+
| Reserved
 
|}
 
|}
   Line 173: Line 173:  
| 0x0
 
| 0x0
 
| 0x4
 
| 0x4
| Magic "ACI0".
+
| Magicnum "ACI0"
 
|-
 
|-
 
| 0x4
 
| 0x4
 
| 0xC
 
| 0xC
| Zeroes
+
| Reserved
 
|-
 
|-
 
| 0x10
 
| 0x10
 
| 0x8
 
| 0x8
| Title id
+
| Title ID
 
|-
 
|-
 
| 0x18
 
| 0x18
 
| 0x8
 
| 0x8
| Reserved (Not currently used, potentially to be used for lowest title ID in future.)
+
| Reserved
 
|-
 
|-
 
| 0x20
 
| 0x20
Line 213: Line 213:  
| 0x38
 
| 0x38
 
| 0x8
 
| 0x8
| Padding
+
| Reserved
 
|}
 
|}
    
= FS Access Header =
 
= FS Access Header =
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 226: Line 225:  
| 0x0
 
| 0x0
 
| 0x1
 
| 0x1
| Version? Always 1. Must be non-zero.
+
| Version (always 1, must be non-zero)
 
|-
 
|-
 
| 0x1
 
| 0x1
Line 238: Line 237:  
| 0xC
 
| 0xC
 
| 0x4
 
| 0x4
| Data Size (Always 0x1C)
+
| Data Size (always 0x1C)
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 274: Line 273:     
= FS Access Control =
 
= FS Access Control =
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 283: Line 281:  
| 0x0
 
| 0x0
 
| 0x1
 
| 0x1
| Version? Always 1. Must be non-zero.
+
| Version (always 1, must be non-zero)
 
|-
 
|-
 
| 0x1
 
| 0x1
Line 295: Line 293:  
| 0xC
 
| 0xC
 
| 0x20
 
| 0x20
| Usually all zeroes for applications
+
| Reserved
 
|}
 
|}
   Line 302: Line 300:  
|-
 
|-
 
! Bit
 
! Bit
 +
! Name
 
! Description
 
! Description
 
|-
 
|-
 
| 0
 
| 0
 +
| ApplicationInfo
 
| MountContent* is accessible when set.
 
| MountContent* is accessible when set.
 +
|-
 +
| 1
 +
| BootModeControl
 +
|
 +
|-
 +
| 2
 +
| Calibration
 +
|
 +
|-
 +
| 3
 +
| SystemSaveData
 +
|
 +
|-
 +
| 4
 +
| GameCard
 +
|
 +
|-
 +
| 5
 +
| SaveDataBackUp
 +
|
 +
|-
 +
| 6
 +
| SaveDataManagement
 +
|
 +
|-
 +
| 7
 +
| BisAllRaw
 +
|
 +
|-
 +
| 8
 +
| GameCardRaw
 +
|
 +
|-
 +
| 9
 +
| GameCardPrivate
 +
|
 +
|-
 +
| 10
 +
| SetTime
 +
|
 +
|-
 +
| 11
 +
| ContentManager
 +
|
 +
|-
 +
| 12
 +
| ImageManager
 +
|
 +
|-
 +
| 13
 +
| CreateSaveData
 +
|
 +
|-
 +
| 14
 +
| SystemSaveDataManagement
 +
|
 +
|-
 +
| 15
 +
| BisFileSystem
 +
|
 +
|-
 +
| 16
 +
| SystemUpdate
 +
|
 +
|-
 +
| 17
 +
| SaveDataMeta
 +
|
 +
|-
 +
| 18
 +
| DeviceSaveData
 +
|
 +
|-
 +
| 19
 +
| SettingsControl
 +
|
 +
|-
 +
| 20
 +
|
 +
|
 +
|-
 +
| 21
 +
|
 +
|
 +
|-
 +
| 22
 +
|
 +
|
 +
|-
 +
| 23
 +
|
 +
|
 +
|-
 +
| 24
 +
|
 +
|
 +
|-
 +
| 25
 +
|
 +
|
 +
|-
 +
| 26
 +
|
 +
|
 +
|-
 +
| 27
 +
|
 +
|
 +
|-
 +
| 28
 +
|
 +
|
 +
|-
 +
| 29
 +
|
 +
|
 +
|-
 +
| 30
 +
|
 +
|
 +
|-
 +
| 31
 +
|
 +
|
 +
|-
 +
| 32
 +
|
 +
|
 +
|-
 +
| 33
 +
|
 +
|
 
|-
 
|-
 
| 34
 
| 34
 +
|
 
| Enables access to [[Filesystem_services|Bis]] partitionID 27 and 28?
 
| Enables access to [[Filesystem_services|Bis]] partitionID 27 and 28?
 +
|-
 +
| 35-61
 +
| Reserved
 +
|
 +
|-
 +
| 62
 +
| Debug
 +
| See [[SPL_services#GetConfig|here]].
 
|-
 
|-
 
| 63
 
| 63
| Enables access to everything: all [[Filesystem_services#Permissions|permission-types]] which check a bitmask have this bit set.
+
| FullPermission
 +
| Enables access to everything: all [[Filesystem_services#Permissions|permission types]] which check a bitmask have this bit set.
 
|}
 
|}
  −
For bit62 in permissions, see [[SPL_services#GetConfig|here]].
      
Web-applets permissions:
 
Web-applets permissions:
Line 425: Line 565:  
|}
 
|}
   −
Bit31-19: Major version
+
Bit31-19: Major version</br>
Bit18-15: Minor version
+
Bit18-15: Minor version</br>
 
Bit14-0: Zeroes
 
Bit14-0: Zeroes