Line 285: |
Line 285: |
| |- | | |- |
| | 0x1 | | | 0x1 |
| + | | 0x1 |
| + | | ContentOwnerIdCount |
| + | |- |
| + | | 0x2 |
| + | | 0x1 |
| + | | SaveDataOwnerIdCount |
| + | |- |
| | 0x3 | | | 0x3 |
| + | | 0x1 |
| | Padding | | | Padding |
| |- | | |- |
Line 293: |
Line 301: |
| |- | | |- |
| | 0xC | | | 0xC |
− | | 0x20 | + | | 0x8 |
− | | Reserved | + | | ContentOwnerIdMin |
| + | |- |
| + | | 0x14 |
| + | | 0x8 |
| + | | ContentOwnerIdMax |
| + | |- |
| + | | 0x1C |
| + | | 0x8 |
| + | | SaveDataOwnerIdMin |
| + | |- |
| + | | 0x24 |
| + | | 0x8 |
| + | | SaveDataOwnerIdMax |
| + | |- |
| + | | 0x2C |
| + | | 0x8 * ContentOwnerIdCount |
| + | | ContentOwnerIds |
| + | |- |
| + | | Variable |
| + | | 0x8 * SaveDataOwnerIdCount |
| + | | SaveDataOwnerIds |
| |} | | |} |
| | | |
Line 334: |
Line 362: |
| | 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 592: |
Line 620: |
| | All ones | | | All ones |
| | | | | |
− | | Ignored | + | | Invalid |
| |} | | |} |
| | | |
Line 630: |
Line 658: |
| | | |
| == 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 636: |
Line 665: |
| |- | | |- |
| | 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 === |