This page describes the format of the Cfg NAND savegame. These blocks can be accessed with the Cfg service commands.
Structure of save-file "/config"
| Offset
 | 
Size
 | 
Description
 | 
| 0x0
 | 
0x2
 | 
Total entries
 | 
| 0x2
 | 
0x2
 | 
?
 | 
| 0x4
 | 
0x4558
 | 
Block entries
 | 
| 0x455C
 | 
 | 
Data for the entries
 | 
The filesize for this /config file is 0x8000-bytes.
Configuration block entry
| Offset
 | 
Size
 | 
Description
 | 
| 0x0
 | 
0x4
 | 
BlkID
 | 
| 0x4
 | 
0x4
 | 
Offset to the data for this block when size is >4, otherwise this word is the data for this block.
 | 
| 0x8
 | 
0x2
 | 
Size
 | 
| 0xA
 | 
0x2
 | 
Flags
 | 
Configuration blocks
| BlkID
 | 
Size
 | 
Flags
 | 
Description
 | 
| 0x00050005
 | 
0x20
 | 
?
 | 
Stereo camera settings?
 | 
| 0x00070001
 | 
0x1
 | 
?
 | 
Sound output mode?
 | 
| 0x00080000
 | 
0xC00
 | 
0x2?
 | 
Wifi configuration slot0.
 | 
| 0x00080001
 | 
0xC00
 | 
0x2?
 | 
Wifi configuration slot1.
 | 
| 0x00080002
 | 
0xC00
 | 
0x2?
 | 
Wifi configuration slot2.
 | 
| 0x00090000
 | 
0x8
 | 
0x2?
 | 
This contains a u64 ID, used by processes using NWMUDS:Initialize. The first word is the same as LocalFriendCodeSeed, while the latter is a separate random word.
 | 
| 0x00090001
 | 
0x8
 | 
0xE
 | 
This console-unique u64 used by GenHashConsoleUnique is generated with the LocalFriendCodeSeed and with random data.
 | 
| 0x000A0000
 | 
0x1C
 | 
0xE
 | 
Username
 | 
| 0x000A0002
 | 
0x1
 | 
0xA
 | 
Language
 | 
| 0x000B0000
 | 
0x4
 | 
0x8
 | 
CountryInfo
 | 
| 0x000B0001
 | 
0x800
 | 
0x2?
 | 
Country name in UTF-16, every 0x80-bytes is an entry for each language(not all entries are set).
 | 
| 0x000B0002
 | 
0x800
 | 
0x2?
 | 
State name in UTF-16, every 0x80-bytes is an entry for each language.
 | 
| 0x000C0000
 | 
0xC0
 | 
?
 | 
Restricted photo exchange data.
 | 
| 0x000C0001
 | 
0x14
 | 
?
 | 
Same as above?
 | 
| 0x000D0000
 | 
0x4
 | 
?
 | 
Agreed to EULA?
 | 
| 0x000F0000
 | 
0x10
 | 
0x8?
 | 
Unknown, used by NS on dev-units for svcKernelSetState, where Type is 6.
 | 
| 0x00110000
 | 
0x4
 | 
?
 | 
The low u16 indicates whether the system setup is required, such as when the system is booted for the first time or after doing a System Format: 0 = setup required, non-zero = no setup required.
 | 
| 0x00110001
 | 
0x8
 | 
0xA?
 | 
TitleID of the menu to launch, used by NS on dev units. (This block can be edited on dev units with Config)
 | 
| 0x00130000
 | 
0x4
 | 
?
 | 
If response is 0x100 then debug mode is enabled.
 | 
The dev unit TID block only exists on dev units.
Languages
| ID
 | 
Description
 | 
| 0
 | 
ja
 | 
| 1
 | 
en
 | 
| 2
 | 
fr
 | 
| 3
 | 
de
 | 
| 4
 | 
it
 | 
| 5
 | 
es
 | 
| 6
 | 
zh
 | 
| 7
 | 
ko
 | 
| 8
 | 
nl
 | 
| 9
 | 
pt
 | 
| 10
 | 
ru
 | 
CountryInfo
| Byte
 | 
Description
 | 
| 0
 | 
?
 | 
| 1
 | 
?
 | 
| 2
 | 
?
 | 
| 3
 | 
Country code, same as DSi/Wii country codes. Value 0xff is invalid.
 | 
0x000A0000 Block
| Byte
 | 
Description
 | 
| 0x0-0x13
 | 
UTF-16 username, with no NULL-terminator.
 | 
| 0x14-17
 | 
Usually zero?
 | 
| 0x18-0x1B
 | 
?
 |