Difference between revisions of "FS:OpenFile"

From 3dbrew
Jump to navigation Jump to search
Line 114: Line 114:
  
 
=== SystemSaveData Archive Path Data Format ===
 
=== SystemSaveData Archive Path Data Format ===
 +
==== FS ====
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 125: Line 126:
 
| saveid
 
| saveid
 
|}
 
|}
 +
The file/directory lowpath is a text lowpath in the [[Savegames|savegame]] filesystem.
 +
 +
==== FSPXI ====
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Index word
 +
!  Description
 +
|-
 +
| 0
 +
| This u8 is always zero?
 +
|}
 +
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 savegame image.
  
 
=== UserSaveDataForCheck Archive Path Data Format ===
 
=== UserSaveDataForCheck Archive Path Data Format ===
Line 136: Line 149:
 
|-
 
|-
 
| 1
 
| 1
| Upper word saveid
+
| Lower word saveid
 
|-
 
|-
 
| 2
 
| 2
| Lower word saveid
+
| Upper word saveid
 
|}
 
|}
 +
The file/directory lowpath for this FS archive is a text path in the [[Savegames|savegame]] filesystem.
  
 
=== ExtSaveData Archive Path Data Format ===
 
=== ExtSaveData Archive Path Data Format ===
Line 152: Line 166:
 
|-
 
|-
 
| 1
 
| 1
| Upper word saveid
+
| Lower word saveid
 
|-
 
|-
 
| 2
 
| 2
| Lower word saveid
+
| 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 extdata image to mount.

Revision as of 03:10, 21 August 2012

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 This u8 is always zero?

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 savegame image.

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 extdata image to mount.