Changes

Jump to navigation Jump to search
914 bytes added ,  19:23, 19 January 2021
Line 32: Line 32:  
|-
 
|-
 
| 0x4
 
| 0x4
 +
| 0x4
 +
| [9.0.0+] AcidSignatureKeyGeneration (0 or 1)
 +
|-
 
| 0x8
 
| 0x8
 +
| 0x4
 
| Reserved
 
| Reserved
 
|-
 
|-
Line 109: Line 113:  
|-
 
|-
 
| 4
 
| 4
| OptimizeMemoryAllocation
+
| [7.0.0+] OptimizeMemoryAllocation
 +
|-
 +
| 5
 +
| [11.0.0+] DisableDeviceAddressSpaceMerge
 
|}
 
|}
   Line 122: Line 129:     
[8.1.0+] Now set to 1 for certain titles.
 
[8.1.0+] Now set to 1 for certain titles.
 +
 +
[9.0.0+] Now set to a proper version field for all titles.
    
== MainThreadStackSize ==
 
== MainThreadStackSize ==
Line 279: Line 288:  
|-
 
|-
 
| 0x1
 
| 0x1
 +
| 0x1
 +
| [5.0.0+] ContentOwnerIdCount
 +
|-
 +
| 0x2
 +
| 0x1
 +
| [5.0.0+] SaveDataOwnerIdCount
 +
|-
 
| 0x3
 
| 0x3
 +
| 0x1
 
| Padding
 
| Padding
 
|-
 
|-
Line 287: Line 304:  
|-
 
|-
 
| 0xC
 
| 0xC
| 0x20
+
| 0x8
| Reserved
+
| ContentOwnerIdMin
 +
|-
 +
| 0x14
 +
| 0x8
 +
| ContentOwnerIdMax
 +
|-
 +
| 0x1C
 +
| 0x8
 +
| SaveDataOwnerIdMin
 +
|-
 +
| 0x24
 +
| 0x8
 +
| SaveDataOwnerIdMax
 +
|-
 +
| 0x2C
 +
| 0x8 * ContentOwnerIdCount
 +
| [5.0.0+] ContentOwnerIds
 +
|-
 +
| Variable
 +
| 0x8 * SaveDataOwnerIdCount
 +
| [5.0.0+] SaveDataOwnerIds
 
|}
 
|}
   Line 328: Line 365:  
| 0x1C
 
| 0x1C
 
| 0x4
 
| 0x4
| (Optional) Amount of content owner id's
+
| (Optional) ContentOwnerIdCount
 
|-
 
|-
 
| 0x1C
 
| 0x1C
| 0x8 * Content Owner ID's
+
| 0x8 * ContentOwnerIdCount
| Content owner ID's as uint64's.
+
| ContentOwnerIds
 
|-
 
|-
 
| Variable
 
| Variable
 
| 0x4
 
| 0x4
| Amount of save owner id's
+
| SaveDataOwnerIdCount
 
|-
 
|-
 
| Variable
 
| Variable
| 0x1 * Save data owner accessibilities (?)
+
| 0x1 * SaveDataOwnerIdCount
| Sets flags for what save data owners can do with other applications save data (?)
+
| Accessibilities (1=Read, 2=Write, 3=ReadWrite)
 
|-
 
|-
 
| Variable (padded to nearest 4 bytes)
 
| Variable (padded to nearest 4 bytes)
| 0x8 * Amount of save owner ID's
+
| 0x8 * SaveDataOwnerIdCount
| Save data owner ID's
+
| SaveDataOwnerIds
 
|}
 
|}
   Line 498: Line 535:  
|  
 
|  
 
|-
 
|-
| 36-61
+
| 36
 +
| MoveCacheStorage
 +
|
 +
|-
 +
| 37-61
 
| Reserved
 
| Reserved
 
|  
 
|  
Line 586: Line 627:  
| All ones
 
| All ones
 
|  
 
|  
| Ignored
+
| Invalid
 
|}
 
|}
   Line 624: Line 665:     
== MemoryMap ==
 
== MemoryMap ==
 +
MemoryMap entries are stored in pairs. The first pair will contain BeginAddress and PermissionType, while the second pair will contain Size and MappingType.
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 630: Line 672:  
|-
 
|-
 
| 7-30
 
| 7-30
| BeginAddress or Size
+
| BeginAddress
 
|-
 
|-
 
| 31
 
| 31
| IsRw or IsIo
+
| PermissionType (0=RW, 1=RO)
 
|}
 
|}
   −
MemoryMap entries are stored alternating between BeginAddress + IsRw and Size + IsIo.
+
{| class="wikitable" border="1"
 +
|-
 +
! Bits
 +
! Description
 +
|-
 +
| 7-26
 +
| Size
 +
|-
 +
| 27-30
 +
| Reserved
 +
|-
 +
| 31
 +
| MappingType (0=Io, 1=Static)
 +
|}
    
=== Restrictions ===
 
=== Restrictions ===
Line 732: Line 787:  
|}
 
|}
   −
This is compared with 0x80000, when less than an error is returned. This is equivalent to comparing the bits starting at bit15 with 0x10. This enforces a minimum required version, not a maximum.
+
This encodes the intended kernel version for the program.
 +
 
 +
The kernel requires that the intended version is >= the minimum supported version (3.0 for all released kernels), and <= the current version.
 +
 
 +
Kernel version is derived from/equivalent to SDK version:
 +
* Kernel Major = SDK Major + 4
 +
* Kernel Minor = SDK Minor
    
=== Versions ===
 
=== Versions ===
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Firmware || Kernel Version || Minimum Allowed
+
! Firmware || Kernel Version || Corresponding SDK Version
 +
|-
 +
| 1.0.0 || 5.0 || 1.0.0.0
 +
|-
 +
| 2.0.0 || 6.1 || 2.1.0.0
 +
|-
 +
| 3.0.0 || 7.4 || 3.4.0.0
 
|-
 
|-
| 1.0.0 || 5.0.0 || 3.0.0
+
| 3.0.2 || 7.4 || 3.4.0.0
 
|-
 
|-
| 2.0.0 || 6.1.0 || 3.0.0
+
| 5.0.0 || 9.3 || 5.3.0.0
 
|-
 
|-
| 3.0.0 || 7.4.0 || 3.0.0
+
| 10.0.0 || 14.4 || 10.4.0.0
 
|-
 
|-
| 3.0.2 || 7.4.0 || 3.0.0
+
| 11.0.0 || 15.4 || 11.4.0.0
 
|-
 
|-
| 5.0.0 || 9.3.0 || 3.0.0
+
| 11.0.1 || 15.4 || 11.4.0.0
 
|}
 
|}
  

Navigation menu