Config Savegame: Difference between revisions
CyberYoshi64 (talk | contribs) m Add bits to parental control bitmask |
TimmSkiller (talk | contribs) |
||
| (9 intermediate revisions by 3 users not shown) | |||
| Line 105: | Line 105: | ||
| 0x8 | | 0x8 | ||
| 0xC | | 0xC | ||
| | | Difference (in nanoseconds) between UTC server time and RTC time. Updated by [[Friend_Services|the Friends sysmodule]] after every [[Online_Play|NASC]] login. Used by System settings to calculate the real current time according to the online play authentication server, in order to determine the user's actual age based on the given date of birth (related to COPPA, since this is used to check whether the user is at least 13 years old). | ||
|- | |- | ||
| 0x00040000 | | 0x00040000 | ||
| Line 220: | Line 220: | ||
| 0x8 | | 0x8 | ||
| 0xE | | 0xE | ||
| | | u64, Current local friend code. Updated by the friends sysmodule when a local friends account is loaded with [[FRDA:LoadLocalAccount]] accordingly. | ||
|- | |- | ||
| 0x00090001 | | 0x00090001 | ||
| 0x8 | | 0x8 | ||
| 0xE | | 0xE | ||
| | | u64, Local friend code base value. This value is sent by the friends sysmodule to the friends gameserver during NEX account creation and serves as a means to find PIDs (and thus "online" friend codes) for other consoles' that were registered using [[FRDA:AddFriendOffline]] when those console(s) hadn't yet registered with the friends services at the time. The lower 34 bits are from [[Nandrw/sys/LocalFriendCodeSeed_B|LocalFriendCodeSeed]], and the upper 16 bits are from the LocalFriendCodeSeed counter (see below block, 0x90002). The remaining bits are left zero. This value is initialized as described by the CFG module when the LocalFriendCodeSeed part is zero. Used by [[Cfg:GenHashConsoleUnique|GenHashConsoleUnique]]. | ||
|- | |- | ||
| 0x00090002 | | 0x00090002 | ||
| 0x4 | | 0x4 | ||
| 0xE | | 0xE | ||
| | | u16, Local friend code counter. This value is initialized by the CFG module alongside block 0x90001 to two random bytes generated by [[PS:GenerateRandomBytes]] and also serves as a component of that block. It is incremented by PTM and stored in MCU storage when PTM save data is formatted. Once incremented, upon reboot, PTM will use the counter stored in MCU storage to update the local friend code base value (block 0x90001). After updating the relevant configuration blocks, PTM sets the storage area reserved for the counter to 0. | ||
|- | |- | ||
| 0x000A0000 | | 0x000A0000 | ||
| 0x1C | | 0x1C | ||
| 0xE | | 0xE | ||
| | | [[#User Name Block 0x000A0000|User Name]] | ||
|- | |- | ||
| 0x000A0001 | | 0x000A0001 | ||
| Line 271: | Line 271: | ||
| 0xC0 | | 0xC0 | ||
| 0xE | | 0xE | ||
| | | [[#Parental Control Settings Block 0x000C0000|Parental Controls - Main data]] | ||
|- | |- | ||
| 0x000C0001 | | 0x000C0001 | ||
| Line 281: | Line 281: | ||
| 0x200 | | 0x200 | ||
| 0xE | | 0xE | ||
| | | [[#Parental Control Settings Block 0x000C0002|Parental Controls - Registered e-Mail address and custom secret question]] | ||
|- | |- | ||
| 0x000D0000 | | 0x000D0000 | ||
| Line 291: | Line 291: | ||
| 0x1 | | 0x1 | ||
| 0xE | | 0xE | ||
| ? | | ? (related to SpotPass options in Internet Settings?) | ||
|- | |- | ||
| 0x000F0000 | | 0x000F0000 | ||
| Line 307: | Line 307: | ||
| 0x1 | | 0x1 | ||
| 0xC | | 0xC | ||
| | | Home Menu button disable | ||
|- | |- | ||
| 0x000F0004 | | 0x000F0004 | ||
| Line 377: | Line 377: | ||
| 0x4 | | 0x4 | ||
| 0xE | | 0xE | ||
| | | [[Friend_Services#Server_Types|NFS (Nintendo Friend Server) Environment]] in the format <code>%c%d</code>. Set by the [[ACT_Services|ACT]] sysmodule. Used in the [[NIM_Services#NIM|NIM]] sysmodule for making the NPNS URL. | ||
|- | |- | ||
| 0x00160000 | | 0x00160000 | ||
| Line 519: | Line 519: | ||
|} | |} | ||
===0x000A0000 | ===User Name Block 0x000A0000=== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 525: | Line 525: | ||
! Description | ! Description | ||
|- | |- | ||
| | | 0x00-0x15 | ||
| UTF-16 | | User name (UTF-16) | ||
|- | |- | ||
| | | 0x16-0x17 | ||
| | | u16 NGWord flag to denote that the user name is inappropriate | ||
|- | |- | ||
| 0x18-0x1B | | 0x18-0x1B | ||
| Line 535: | Line 535: | ||
|} | |} | ||
While the user name is NULL-terminated, the terminator is not applied when the user name is 10 characters long, which leads to online access breaking (002-0109) and buffer overflows when the user name is retrieved, even in DS games. | |||
===WiFi Slot Structure=== | ===WiFi Slot Structure=== | ||
| Line 718: | Line 718: | ||
===Parental | ===Parental Control Settings Block 0x00100001=== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 734: | Line 734: | ||
|- | |- | ||
| 0x11 | | 0x11 | ||
| | | 0x40 | ||
| Secret | | Secret Answer (UTF-16) | ||
|} | |} | ||
===Parental Control | ===Parental Control Settings Block 0x000C0000=== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 747: | Line 747: | ||
| 0x00 | | 0x00 | ||
| 0x04 | | 0x04 | ||
| [[#Parental Control | | [[#Parental Control Restriction Bitmask|Parental Control Restriction Bitmask]] | ||
|- | |||
| 0x04 | |||
| 0x04 | |||
| Unknown | |||
|- | |||
| 0x08 | |||
| 0x01 | |||
| Rating system used for configuration | |||
|- | |||
| 0x09 | |||
| 0x01 | |||
| Maximum allowed age (20 = No restriction) | |||
|- | |||
| 0x0A | |||
| 0x01 | |||
| Secret Question Type (0-5: Pre-defined, 6: Custom) | |||
|- | |||
| 0x0B | |||
| 0x01 | |||
| Unknown | |||
|- | |- | ||
| 0x0C | | 0x0C | ||
| | | 0x08 | ||
| Parental Controls PIN code | | Parental Controls PIN code (with NULL-termination, although restricted to 4 digits) | ||
|- | |||
| 0x14 | |||
| 0x44 | |||
| Secret Answer (UTF-16) | |||
|} | |} | ||
====Parental Control | ====Parental Control Restriction Bitmask==== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 761: | Line 785: | ||
|- | |- | ||
| 0 | | 0 | ||
| Global Parental Controls | | Global Parental Controls Enable | ||
|- | |- | ||
| 1 | | 1 | ||
| Internet Browser | | Internet Browser | ||
|- | |||
| 2 | |||
| Display of 3D Images (disabled on 2DS) | |||
|- | |- | ||
| 3 | | 3 | ||
| Line 795: | Line 822: | ||
| 31 | | 31 | ||
| "Child Online Privacy Protection" (see [[Cfg:GetRegionCanadaUSA|CFG:IsCoppacsSupported]]) | | "Child Online Privacy Protection" (see [[Cfg:GetRegionCanadaUSA|CFG:IsCoppacsSupported]]) | ||
|} | |||
===Parental Control Settings Block 0x000C0002=== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0000 | |||
| 0x0001 | |||
| Boolean, whether an e-Mail has been registered | |||
|- | |||
| 0x0001 | |||
| 0x0101 | |||
| Registered e-Mail address (Plaintext) | |||
|- | |||
| 0x0102 | |||
| 0x0068 | |||
| Custom Secret Question (UTF-16) | |||
|} | |} | ||