Flash Filesystem
The Nintendo 3DS has a 1GB NAND Flash chip.
Format
The format of the Nintendo 3DS's flash filesystem is currently undocumented. Reading of the flash chip is possible through pinouts on the motherboard and has been performed successfully but the data is encrypted and can't be understood without first decrypting it.
Encryption
The NAND file system is encrypted using AES-CTR.
Partitions
Name | Description |
---|---|
firm0 | Firmware partition. |
firm1 | Firmware partition. |
nand | CTR-NAND FAT File System. (3DS) |
twln | TWL-NAND FAT File System. (DSi) |
twlp | TWL-NAND PHOTO FAT File System. (DSi) |
None of the above physical NAND partitions are normally accessible from the ARM11, except for twlp. CTR/TWL NAND can only be accessed when the exheader access control descriptor for those are enabled. Normally the CTR/TWL NAND descriptors are never enabled for retail ARM11 CXI processes. The ARM11 can only access "nand:/rw/" mounted as the nandrw archive, and "nand:/ro/" mounted as the nandro archive below.
CTR partition
Like SD, NAND savegames are stored at 00000000.sav under the data dir, for titles using NAND savegames. Also like SD, the TMD is stored under the titles' content dir as filename <ID>.tmd.
The "nandrw" archive is mounted at "nand:/rw/", while the "nandro" archive is mounted at "nand:/ro/".
- nandro/private
- nandro/shared
- nandro/sys
- nandro/sys/HWCAL0.dat
- nandro/sys/HWCAL1.dat
- nandrw/shared
- nandrw/sys
- nandrw/sys/updater.log
- nandrw/sys/native.log
- nandrw/sys/SecureInfo_A
- nandrw/sys/rand_seed
- nandrw/sys/LocalFriendCodeSeed_B
- nand/title/
- nand/tmp/
- nand/extdata (This is structured the same way as SD and contains shared extdata)
- nand/private/movable.sed
TWL partition
The structure of twln/title/ is exactly the same as DSi.(Same filenames under titles' data/content dir) The structure of twlp(TWL photo partition) is *exactly* the same as the DSi photo partition as well.
- twln/title/
- twln/sys/HWINFO_S.dat (Presumably has the same format as the DSi version)