Config Savegame

From 3dbrew
Revision as of 20:04, 15 June 2014 by Normmatt (talk | contribs)
Jump to: navigation, search

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 ?