Difference between revisions of "FS:OpenArchive"

From 3dbrew
Jump to navigation Jump to search
 
(14 intermediate revisions by 5 users not shown)
Line 9: Line 9:
 
|-
 
|-
 
| 1
 
| 1
| Archive idcode
+
| [[Filesystem_services#ArchiveId|Archive ID]]
 
|-
 
|-
 
| 2
 
| 2
| LowPath.Type
+
| [[Filesystem_services#PathType|Path Type]]
 
|-
 
|-
 
| 3
 
| 3
| LowPath.Size
+
| Path Size (including null-terminator)
 
|-
 
|-
 
| 4
 
| 4
| (LowPath.Size<<14)  <nowiki>|</nowiki> 2
+
| (PathSize << 14)  <nowiki>|</nowiki> 2
 
|-
 
|-
 
| 5
 
| 5
| LowPath.Data pointer
+
| Path Data Pointer
 
|}
 
|}
  
Line 34: Line 34:
 
|-
 
|-
 
| 1
 
| 1
| Resultcode
+
| Result code
 
|-
 
|-
| 2
+
| 2-3
| Archive handle lower word
+
| u64, Archive Handle
|-
 
| 3
 
| Archive handle upper word
 
|}
 
 
 
=Archive idcodes =
 
{| class="wikitable" border="1"
 
|-
 
!  Idcode
 
!  Description
 
!  Accessible via [[Filesystem_services|FS]]
 
!  Accessible via [[Filesystem_services_PXI|FSPXI]]
 
|-
 
| 0x00000003
 
| Application RomFS
 
| Yes
 
| No
 
|-
 
| 0x00000004
 
| SaveData
 
| Yes
 
| No
 
|-
 
| 0x00000006
 
| ExtSaveData
 
| Yes
 
| No
 
|-
 
| 0x00000007
 
| Shared ExtSaveData
 
| Yes
 
| No
 
|-
 
| 0x00000008
 
| SystemSaveData
 
| Yes
 
| No
 
|-
 
| 0x00000009
 
| SDMC
 
| Yes
 
| Yes
 
|-
 
| 0x0000000A
 
| SDMC Write-Only
 
| Yes
 
| No
 
|-
 
| 0x12345678
 
| ExtSaveData for BOSS
 
| Yes
 
| No
 
|-
 
| 0x12345679
 
| ?
 
| Yes
 
| Yes
 
|-
 
| 0x1234567B
 
| ExtSaveData, and ExtSaveData for BOSS
 
| No
 
| Yes
 
|-
 
| 0x1234567C
 
| SystemSaveData
 
| No
 
| Yes
 
|-
 
| 0x1234567D
 
| NAND RW
 
| Yes
 
| Yes
 
|-
 
| 0x1234567E
 
| NAND RO
 
| Yes
 
| Yes
 
|-
 
| 0x1234567F
 
| ?
 
| No
 
| Yes
 
|-
 
| 0x2345678A
 
| User/GameCard SaveData (for check), and other uses (FS can only mount the latter)
 
| Yes
 
| Yes
 
|-
 
| 0x2345678B
 
| ?
 
| No
 
| Yes
 
|-
 
| 0x2345678C
 
| ?
 
| No
 
| Yes
 
|-
 
| 0x2345678D
 
| ?
 
| No
 
| Yes
 
|-
 
| 0x2345678E
 
| SaveData, ExeFS, and RomFS (For [[Filesystem_services|FS]], only ExeFS)
 
| Yes
 
| Yes
 
|-
 
| 0x567890AB
 
| NAND CTR FS
 
| No
 
| Yes
 
|-
 
| 0x567890AC
 
| TWL PHOTO
 
| Yes
 
| Yes
 
|-
 
| 0x567890AD
 
| ?
 
| No
 
| Yes
 
|-
 
| 0x567890AE
 
| NAND TWL FS
 
| Yes
 
| Yes
 
|-
 
| 0x567890AF
 
| ?
 
| Yes
 
| Yes
 
|-
 
| 0x567890B0
 
| ?
 
| No
 
| Yes
 
|-
 
| 0x567890B1
 
| Gamecard SaveData (for check)
 
| Yes
 
| No
 
|-
 
| 0x567890B2
 
| UserSaveData (for check)
 
| Yes
 
| No
 
|}
 
 
 
Archives 0x567890AB,(CTR NAND) 0x1234567F, 0x567890AE,(TWL NAND) 0x567890AF, and 0x12345679 require the corresponding application exheader access control mount flag to be set, in the exheader for any of the currently running ARM11 processes. The access rights checked by [[Filesystem services|FS]] module for archive mounting with fs:USER, are stored in the process' exheader accessinfo.
 
 
 
=Archive LowPath.Data format=
 
Each archive has a separate LowPath format, some archives' LowPath are unused which are not listed here.
 
 
 
{| class="wikitable" border="1"
 
|-
 
Archive
 
!  LowPath.Data format
 
|-
 
|  (Shared)ExtSaveData(BOSS)
 
| +0 u8 mediatype, +4 u64 ExtdataID
 
|-
 
| SystemSaveData
 
| +0 u8 mediatype, +4 u32 savedataid
 
|-
 
| UserSaveDataForCheck
 
| +0 u8 mediatype, +4 u64 savedataid
 
|}
 
 
 
SystemSaveData mediatype must always be NAND. UserSaveDataForCheck mediatype must not be NAND.
 
 
 
=Mediatypes=
 
{| class="wikitable" border="1"
 
|-
 
!  Type
 
!  Description
 
|-
 
| 0
 
| NAND
 
|-
 
| 1
 
| SD
 
|-
 
| 2
 
| Gamecard
 
 
|}
 
|}

Latest revision as of 23:35, 5 September 2016

Request[edit]

Index Word Description
0 Header code [0x080C00C2]
1 Archive ID
2 Path Type
3 Path Size (including null-terminator)
4 (PathSize << 14) | 2
5 Path Data Pointer

Response[edit]

Index Word Description
0 Header code
1 Result code
2-3 u64, Archive Handle