FS:OpenArchive: Difference between revisions

From 3dbrew
Jump to navigation Jump to search
No edit summary
Sorunome (talk | contribs)
m Fix link
 
(16 intermediate revisions by 6 users not shown)
Line 9: Line 9:
|-
|-
| 1
| 1
| Archive idcode
| [[Filesystem_services#Archives|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 10:44, 16 January 2025

Request

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

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