SD Filesystem

From 3dbrew
Revision as of 11:31, 22 June 2012 by 3dsguy (talk | contribs)
Jump to navigation Jump to search

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.

Extdata

Additional game data is stored here:

/Nintendo 3DS/<SomeID>/<SomeID>/extdata/00000000

See the extdata page for more extdata info and the extdataIDs list.

All "extra data" under extdata is encrypted. Extdata can't be decrypted with the xorpad fail used for old 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. The purpose of the files in the "dbs" is to archive the list of titles installed on the SD card. And perhaps has some SRL data

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

/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)
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.

The "00000000.tmd" (when decrypted) is identical to the application's tmd found at http://nus.cdn.c.shop.nintendowifi.net/ccs/download/TitleIDhere/tmd except it has the certificate chain removed

The ".app" files are encrypted CXI files. The only way to be certain of the function of the encrypted CXI(s), is the view the application's TMD on Nintendo's CDN server at http://nus.cdn.c.shop.nintendowifi.net/ccs/download/TitleIDhere/tmd (for title IDs see the Title list). In the 'Content Chunk Records' look for the 'Content Index':

Content Index CXI Type
0000 Main CXI (Executable)
0001 Manual
0002 DLP Child

For examples of Manual/DLP Child CXI files see the CXI page.

Private

"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.