Difference between revisions of "FS:FormatSaveData"

From 3dbrew
Jump to navigation Jump to search
 
(One intermediate revision by one other user not shown)
Line 18: Line 18:
 
|-
 
|-
 
| 4
 
| 4
| Size in Blocks (1 block = 512 bytes). The value of this word is hard-coded to 0x200 in official titles it appears, regardless of savedata-size.
+
| Size of a block. Only 0x200 and 0x1000 are accepted it seems. The value of this word is hard-coded to 0x200 in official titles it appears.
 
|-
 
|-
 
| 5
 
| 5
Line 58: Line 58:
 
This clears the SaveData archive for the specified game, if the LowPath.Type is Empty then this will clear the SaveData for the current game. The target SaveData to format is determined by a Binary path, a game needs an exheader permission set in order to format the SaveData of another program.
 
This clears the SaveData archive for the specified game, if the LowPath.Type is Empty then this will clear the SaveData for the current game. The target SaveData to format is determined by a Binary path, a game needs an exheader permission set in order to format the SaveData of another program.
  
See [[RomFS#HashKey_Table_Structure|here]] for an example of how bucket counts should be calculated.
+
See [[RomFS#Hash_Table_Structure|here]] for an example of how bucket counts should be calculated.

Latest revision as of 01:19, 31 May 2019

Request[edit]

Index Word Description
0 Header code [0x084C0242]
1 Archive ID. This must be either 0x4 (SaveData) or 0x567890B2, otherwise error 0xE0E046BE is returned.
2 Path Type
3 Path Size
4 Size of a block. Only 0x200 and 0x1000 are accepted it seems. The value of this word is hard-coded to 0x200 in official titles it appears.
5 Number of Directories
6 Max number of Files
7 Directory Bucket Count
8 File Bucket Count
9 u8, 0 = don't duplicate data, 1 = duplicate data
10 (PathSize << 14) | 2
11 Path Data Pointer

Response[edit]

Index Word Description
0 Header code
1 Result code

Description[edit]

This clears the SaveData archive for the specified game, if the LowPath.Type is Empty then this will clear the SaveData for the current game. The target SaveData to format is determined by a Binary path, a game needs an exheader permission set in order to format the SaveData of another program.

See here for an example of how bucket counts should be calculated.