Difference between revisions of "FS:OpenFile"
(→RomFS) |
(OpenFile returns a handle to the RomFS archive in the all-zero binary-lowpath scenario.) |
||
Line 175: | Line 175: | ||
=== [[RomFS]] === | === [[RomFS]] === | ||
The raw FS image for the main CXI RomFS(for the current app this is accessible via archiveid 0x3) can be accessed via an all-zero 0x14-byte binary file-lowpath. This allows access to the raw level-3 IVFC image: the user process must handle parsing the filesystem used in this image itself. | The raw FS image for the main CXI RomFS(for the current app this is accessible via archiveid 0x3) can be accessed via an all-zero 0x14-byte binary file-lowpath. This allows access to the raw level-3 IVFC image: the user process must handle parsing the filesystem used in this image itself. | ||
+ | |||
+ | In this scenario, OpenFile returns a handle to the RomFS archive. |
Revision as of 07:38, 12 November 2014
Request
Index Word | Description |
---|---|
0 | Header code [0x080201C2] |
1 | Transaction (usually 0) |
2 | Archive handle lower word |
3 | Archive handle upper word |
4 | LowPath.Type |
5 | LowPath.Size |
6 | OpenFlags |
7 | Attributes (usually 0) |
8 | (LowPath.Size<<14) | 2 |
9 | LowPath.Data pointer |
Response
Index Word | Description |
---|---|
0 | Header code |
1 | Resultcode |
3 | File handle |
OpenFlags
Bit | Description |
---|---|
0 | Read |
1 | Write |
2 | Create |
Attributes
Flag | Description |
---|---|
0x00000001 | Is Read-Only |
0x00000100 | Is Archive |
0x00010000 | Is Hidden |
0x01000000 | Is Directory |
LowPath
Type | Description |
---|---|
0 (INVALID) | Specifies an invalid path. |
1 (EMPTY) | Specifies an empty path. |
2 (BINARY) | Specifies a binary path, which is non-text based. |
3 (CHAR) | Specifies a text based path with a 8-bit byte per character. |
4 (WCHAR) | Specifies a text based path with a 16-bit short per character. |
Binary LowPath
The format of the data that a binary LowPath points to is custom per archive.
SystemSaveData Archive Path Data Format
FS
Index word | Description |
---|---|
0 | Mediatype (must be zero for NAND) |
1 | saveid |
The file/directory lowpath is a text lowpath in the savegame filesystem.
FSPXI
Index word | Description |
---|---|
0 | u8 Mediatype (must be zero for NAND) |
The file lowpath is a binary lowpath containing the u64 saveid, however the high word of the saveid is always zero. The mounted file is the cleartext savegame image. Up to 32 SystemSaveData image files can be opened under a single mounted FSPXI archive.
UserSaveDataForCheck Archive Path Data Format
Index word | Description |
---|---|
0 | Mediatype (must be non-zero) |
1 | Lower word saveid |
2 | Upper word saveid |
The file/directory lowpath for this FS archive is a text path in the savegame filesystem.
ExtSaveData Archive Path Data Format
Index word | Description |
---|---|
0 | Mediatype |
1 | Lower word saveid |
2 | Upper word saveid |
For FS, the file/directory lowpath is a text path in the extdata filesystem. For FSPXI, the file lowpath is a text path relative to the "/extdata/<ExtdataIDHigh>/<ExtdataIDLow>" directory on SD/NAND, for the cleartext extdata image to mount.
RomFS
The raw FS image for the main CXI RomFS(for the current app this is accessible via archiveid 0x3) can be accessed via an all-zero 0x14-byte binary file-lowpath. This allows access to the raw level-3 IVFC image: the user process must handle parsing the filesystem used in this image itself.
In this scenario, OpenFile returns a handle to the RomFS archive.