FS:OpenArchive

From 3dbrew
Revision as of 19:46, 12 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 Accessible via FS Accessible via 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 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 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