FS:OpenArchive

From 3dbrew
Revision as of 05:00, 10 August 2012 by Yellows8 (talk | contribs)
Jump to navigation Jump to search

Request

Index Word Description
0 Header code [0x080C00C2]
1 Archive idcode
2 LowPath.Type
3 LowPath.Size
4 (LowPath.Size<<14) | 2
5 LowPath.Data pointer

Response

Index Word Description
0 Header code
1 Resultcode
2 Archive handle lower word
3 Archive handle upper word

Archive idcodes

Idcode Description
0x00000003 Application RomFS
0x00000004 SaveData
0x00000006 ExtSaveData
0x00000007 Shared ExtSaveData
0x00000008 SystemSaveData
0x00000009 SDMC
0x0000000A SDMC Write-Only (fs:USER only)
0x12345678 ExtSaveData for BOSS
0x12345679 ?
0x1234567B ?
0x1234567C ?
0x1234567D NAND RW
0x1234567E NAND RO
0x1234567F ?
0x2345678A ?
0x2345678E ?
0x567890AB ?
0x567890AC TWL PHOTO
0x567890AD ?
0x567890AE NAND TWL FS
0x567890AF ?
0x567890B1 Gamecard SaveData (for check)
0x567890B2 UserSaveData (for check)

Archives 0x1234567F, 0x567890AE, 0x567890AF, and 0x12345679 require the corresponding application exheader access control mount flag to be set. The access rights checked by 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.

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

Type Description
0 NAND
1 SD
2 Gamecard