Open main menu

3dbrew β

Difference between revisions of "FS:OpenArchive"

(Request)
 
(15 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, 0x1234567F, 0x567890AE, 0x567890AF, and 0x12345679 require the corresponding application exheader access control mount flag to be set. 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 22:35, 5 September 2016

RequestEdit

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

ResponseEdit

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