The 3DS uses an SD Card for general storage of additional game data, music and photos taken with the 3DS.
/DCIM - Photos and images downloaded with the Internet Browser. /Music - Music Files /Nintendo 3DS - Game Data
/DCIM with 3.0.0-5 also stores .avi 3D videos from the camera title, video frames use MJPG.
Additional game data is stored here:
- /Nintendo 3DS/<SomeID>/<SomeID>/extdata/00000000
00000082 - JPN Homemenu extdata as of 2.0.0-2 0000008f - NA Homemenu extdata as of 2.0.0-2 00000098 - EUR Homemenu extdata as of 2.0.0-2 00000207 - Mii Maker - JPN 0000020d - Face Raiders - JPN 00000210 - Some 2.0.0-2 data, unknown doesn't appear in extdata management. 00000217 - Mii Maker - USA 00000219 - eShop USA 0000021d - Face Raiders - USA 00000227 - Mii Maker - EUR 0000022d - Face Raiders - EUR 0000030c - Nintendogs + Cats - EUR 00000326 - Pokédex 3D - EUR 0000032d - Super Street Fighter IV 3D - USA 0000033b - Ridge Racer 3D - EUR 0000033c - Super Street Fighter IV 3D - EUR 0000034d - Samurai Warriors Chronicles - USA 00000358 - Ridge Racer 3D - USA 0000038a - Dead or Alive Dimensions - EUR 00000481 - Monster Hunter Tri G (Download-Quests) - JPN 000004aa - Nintendo Video - USA 000004ab - Nintendo Video - EUR
All "extra data" under extdata is encrypted. Although these files use 0xFF blocks similar to FLASH saves, extdata can't be decrypted with the xorpad fail like FLASH saves. All "extra data" files can't be copied to other 3DS SD cards, they are locked to the console.
import.db and title.db
With the introduction of the June update the folder structure changed slightly. You will now find "dbs" and "title" folders located in /Nintendo 3DS/<SomeID>/<SomeID>/ along with the extdata folder. "dbs" contains two files, import.db and title.db - usage currently unknown. import.db seems to contain data from DSiWare SRLs.
The data at the beginning of the file is encrypted, but the rest is cleartext. This file is always 3.1MB, thus this doesn't contain the whole SRL for most DSiWare. The data stored here is not ordered the same way as the src SRL: ARM7 code, ARM9 code, and data are mixed together. The file can contain data from DSiWare that wasn't installed, only listed on the src DSi for DSiWare transfer. (This file is likely some temporary data storage used for DSiWare install etc).
title.db seems to be encrypted.
/title/00040000/ Contains eshop downloads (can someone verify these and add for different regions?): 00032600 - Pokedex 3D - EUR (verified) 00042a00 - Legend of Zelda - Link's Awakening - EUR 0004ab00 - Nintendo Video - EUR 00052000 - Let's Golf 3D - EUR 00054300 - 3D Classics Excitebike - USA 00054e00 - 3D Classics Excitebike - EUR (verified) 00054300 - 3D Classics Excitebike - USA 00045C00 - 3D Classics Excitebike - JPN For more IDs, see the 00040000 titles on the Title_list.
The above title directories contain two dirs: content and data. content contains 00000000.tmd, .app files, and some cmd dir containing 00000001.cmd, all of which are encrypted with a console-unique key. The data dir contains 00000001.sav, this is the title's encrypted savegame. Although these saves look similar to FLASH savegames, these savegames use proper unique CTR for each AES block in the file, and the CTR properly changes for each savegame write. Renaming these savegames causes home-menu to hang while launching titles, modifying saves throws the usual checksum/hash corruption like gamecard flash saves.
When renaming any of these files/dir under content, the icon in home-menu is still displayed. Modifying any of these files has same result as renaming them. When renaming the cmd dir/cmd file, or 00000000.app, the 3D banner isn't displayed. When renaming the cmd dir or the file contained in that dir, home-menu will refuse to run the title, and the manual will not work.(will display the black screen saying sdcard isn't inserted) Manual won't load when 00000001.app is renamed, so that .app might be the manual? When the main 00000000.app binary is renamed, the title will not launch and in the manual placeholder text is used for the title name/icon. Home-menu doesn't care at all when tmd is renamed.
"Private" data is stored here:
/Nintendo 3DS/Private/<Title ID Low>/
00020400 - Nintendo 3DS Camera 00020500 - Nintendo 3DS Sound
"Private" data for 3DS Sound/Camera are cleartext. Under the camera priv dir is phtcache.bin, this seems to list the pictures on SD card? When you want to install and see pictures with 3DS,rename to 8 numbers.mpo and save it on /DCIM . Under the sound priv dir is: voice/XX/*.m4a. Where XX is 01-10, with sound saved as .m4a.