Config Savegame: Difference between revisions

MarcusD (talk | contribs)
Added HWCAL ConfigInfoBlocks
TimmSkiller (talk | contribs)
No edit summary
 
(14 intermediate revisions by 7 users not shown)
Line 48: Line 48:
| 0xA
| 0xA
| 0x2
| 0x2
| Flags
| Access Flags
|}
|}
===Access Flags===
{| class="wikitable" border="1"
|-
!  Bit Mask
!  Description
|-
| 0x2
| User Readable (cfg:u)
|-
| 0x4
| System Writable (cfg:s / cfg:i)
|-
| 0x8
| System Readable (cfg:s / cfg:i)
|}
Config blocks will typically either use 0xC for system readable/writable or 0xE for all 3.


==Configuration blocks==
==Configuration blocks==
Line 56: Line 74:
!  BlkID
!  BlkID
!  Size
!  Size
!  Flags
Access Flags
!  Description
!  Description
|-
|-
Line 67: Line 85:
| 0x1
| 0x1
| 0xC
| 0xC
| [[Hardware_callibration#RTC|RTC compensation value]]
| [[Hardware_calibration#RTC|RTC compensation value]]
|-
|-
| 0x00020000
| 0x00020000
| 0x134
| 0x134
| 0xC
| 0xC
| [[Hardware_callibration#CDC|Codec]]
| [[Hardware_calibration#CDC|Codec]]
|-
|-
| 0x00030000
| 0x00030000
| 0x1
| 0x1
| 0xC
| 0xC
| ??? (HWCAL block 0x28)
| Leap Year Counter (read By PTM)
|-
|-
| 0x00030001
| 0x00030001
| 0x8
| 0x8
| 0xE
| 0xE
| User time offset (read by CECD)
| User time offset (read by CECD): displayed timestamp - rtc timestamp
|-
|-
| 0x00030002
| 0x00030002
| 0x8
| 0x8
| 0xC
| 0xC
| ?
| Settings time offset: newly set timestamp - rtc timestamp
|-
|-
| 0x00040000
| 0x00040000
| 0x10
| 0x10
| 0xC
| 0xC
| [[Hardware_callibration#Touch|Touch callibration]] (read by HID)
| [[Hardware_calibration#Touch|Touch calibration]] (read by HID)
|-
|-
| 0x00040001
| 0x00040001
Line 102: Line 120:
| 0x12
| 0x12
| 0xC
| 0xC
| [[Hardware_callibration#Gyro|Gyroscope]] (read by HID)
| [[Hardware_calibration#Gyro|Gyroscope]] (read by HID)
|-
|-
| 0x00040003
| 0x00040003
| 0xC
| 0xC
| 0xC
| 0xC
| [[Hardware_callibration#Accel|Accelerometer]] (read by HID)
| [[Hardware_calibration#Accel|Accelerometer]] (read by HID)
|-
|-
| 0x00040004
| 0x00040004
| 0x1C
| 0x1C
| 0xC
| 0xC
| [[Hardware_callibration#CStick|CStick callibration data]]
| [[Hardware_calibration#CStick|CStick calibration data]]
|-
|-
| 0x00050000
| 0x00050000
| 0x2
| 0x2
| 0xC
| 0xC
| [[Hardware_callibration#Screen_flicker|Screen flicker]]
| [[Hardware_calibration#Screen_flicker|Screen flicker]]
|-
|-
| 0x00050001
| 0x00050001
Line 127: Line 145:
| 0x38
| 0x38
| 0xC
| 0xC
| [[Hardware_callibration#BLPWM|Backlight PWM]] (read by GSP)
| [[Hardware_calibration#BLPWM|Backlight PWM]] (read by GSP)
|-
|-
| 0x00050003
| 0x00050003
| 0x20
| 0x20
| 0xC
| 0xC
| [[Hardware_callibration#ABL|Power saving mode (ABL) callibration]] (read by GSP)
| [[Hardware_calibration#ABL|Power saving mode (ABL) calibration]] (read by GSP)
|-
|-
| 0x00050004
| 0x00050004
| 0x20
| 0x20
| 0xC
| 0xC
| [[Hardware_callibration#ABL|Power saving mode (ABL) callibration]]  
| [[Hardware_calibration#ABL|Power saving mode (ABL) calibration]] (for legacy FIRM)
|-
|-
| 0x00050005
| 0x00050005
Line 147: Line 165:
| 0x2
| 0x2
| 0xC
| 0xC
| [[Hardware_callibration#ULCD_delay|3D switching delay]]
| [[Hardware_calibration#ULCD_delay|3D switching delay]]
|-
|-
| 0x00050007
| 0x00050007
Line 157: Line 175:
| 0x10C
| 0x10C
| 0xC
| 0xC
| [[Hardware_callibration#ABL_extra|Power saving mode (ABL) extra config]]
| [[Hardware_calibration#ABL_extra|Power saving mode (ABL) extra config]]
|-
|-
| 0x00050009
| 0x00050009
Line 172: Line 190:
| 0x214
| 0x214
| 0xE
| 0xE
| [[Hardware_callibration#3D_filters|3D filters]]
| [[Hardware_calibration#3D_filters|3D filters]]
|-
|-
| 0x00070001
| 0x00070001
Line 182: Line 200:
| 0x8
| 0x8
| 0xE
| 0xE
| [[Hardware_callibration#Microphone_echo_cancel|Microphone echo cancellation params]]
| [[Hardware_calibration#Microphone_echo_cancel|Microphone echo cancellation params]]
|-
|-
| 0x00080000
| 0x00080000
Line 217: Line 235:
| 0x1C
| 0x1C
| 0xE
| 0xE
| Username in UTF16
| [[#User Name Block 0x000A0000|User Name]]
|-
|-
| 0x000A0001
| 0x000A0001
Line 253: Line 271:
| 0xC0
| 0xC0
| 0xE
| 0xE
| Restricted photo exchange data, and other info (includes a mirror of Parental Restrictions PIN/Secret Answer)
| [[#Parental Control Settings Block 0x000C0000|Parental Controls - Main data]]
|-
|-
| 0x000C0001
| 0x000C0001
Line 263: Line 281:
| 0x200
| 0x200
| 0xE
| 0xE
| ? Contains the email address set during Parental Restriction setup.
| [[#Parental Control Settings Block 0x000C0002|Parental Controls - Registered e-Mail address and custom secret question]]
|-
|-
| 0x000D0000
| 0x000D0000
| 0x4
| 0x4
| 0xE
| 0xE
| u16 at offset 0x0: [[SMDH#EULA_Version|EULA Version]] which was agreed to.
| u16 at offset 0x0: [[SMDH#EULA_Version|EULA Version]] which was agreed to. u16 @ 0x02: latest version
|-
|-
| 0x000E0000
| 0x000E0000
| 0x1
| 0x1
| 0xE
| 0xE
| ?
| ? (related to SpotPass options in Internet Settings?)
|-
|-
| 0x000F0000
| 0x000F0000
Line 289: Line 307:
| 0x1
| 0x1
| 0xC
| 0xC
| ?
| Home Menu button disable
|-
|-
| 0x000F0004
| 0x000F0004
Line 304: Line 322:
| 0x28
| 0x28
| 0xC
| 0xC
| ?
| In NIM, taken as a (hopefully null terminated) string used for the "X-Device-Token" http header field for NPNS url.
|-
|-
| 0x00100000
| 0x00100000
| 0x2
| 0x2
| 0xC
| 0xC
| ?
| TWL EULA info ({bool agreed; u8 agreedVersion})
|-
|-
| 0x00100001
| 0x00100001
| 0x94
| 0x94
| 0xC
| 0xC
| Stores Parental Restrictions PIN/Secret Answer and other info
| Stores Parental Restrictions PIN/Secret Answer and other info for TWL mode
|-
|-
| 0x00100002
| 0x00100002
| 0x1
| 0x1
| 0xC
| 0xC
| ?
| TWL country code
|-
|-
| 0x00100003
| 0x00100003
| 0x10
| 0x10
| 0xC
| 0xC
| ?
| TWL movable unique ID, used for DSiWare exports
|-
|-
| 0x00110000
| 0x00110000
Line 339: Line 357:
| 0x8
| 0x8
| 0xC
| 0xC
| [[Hardware_callibration#MCU|MCU volume slider related]] (read by HID)
| Volume Slider Bounds (Read by HID and PTM)
|-
|-
| 0x00130000
| 0x00130000
Line 349: Line 367:
| 0x4
| 0x4
| 0xC
| 0xC
| ?
| Clock Sequence (u16) used for generating UUIDs in [[ACT_Services|ACT]].
|-
|-
| 0x00150001
| 0x00150001
Line 359: 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 379: Line 397:
| 0x18
| 0x18
| 0xC
| 0xC
| [[Hardware_callibration#QTM|QTM callibration data]]
| [[Hardware_calibration#QTM|QTM calibration data]]
|-
|-
| 0x00190000
| 0x00190000
Line 501: Line 519:
|}
|}


===0x000A0000 Block===
===User Name Block 0x000A0000===
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 507: Line 525:
!  Description
!  Description
|-
|-
| 0x0-0x13
| 0x00-0x15
| UTF-16 username, with no NULL-terminator.
| User name (UTF-16)
|-
|-
| 0x14-17
| 0x16-0x17
| Usually zero?
| u16 NGWord flag to denote that the user name is inappropriate
|-
|-
| 0x18-0x1B
| 0x18-0x1B
Line 517: 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 700: Line 718:




===Parental control Block 0x00100001===
===Parental Control Settings Block 0x00100001===
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 716: Line 734:
|-
|-
| 0x11
| 0x11
| 0x20
| 0x40
| Secret answer in UTF-16
| Secret Answer (UTF-16)
|}
|}


===Parental Control setting block 0xC0000===
===Parental Control Settings Block 0x000C0000===
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 729: Line 747:
| 0x00
| 0x00
| 0x04
| 0x04
| [[#Parental Control restriction bitmask|Parental Control restriction bitmask]]
| [[#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
| 0x04
| 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 restriction bitmask====
====Parental Control Restriction Bitmask====
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 743: Line 785:
|-
|-
| 0
| 0
| Global Parental Controls enable
| Global Parental Controls Enable
|-
| 1
| Internet Browser
|-
| 2
| Display of 3D Images (disabled on 2DS)
|-
|-
| 3
| 3
Line 749: Line 797:
|-
|-
| 4
| 4
| Internet Browser
| Online Interaction
|-
|-
| 5
| 5
Line 756: Line 804:
| 6
| 6
| Friend Registration
| Friend Registration
|-
| 7
| DS Download Play
|-
|-
| 8
| 8
| eShop
| Nintendo 3DS Shopping Services (eShop / EC Applet)
|-
| 9
| View Distributed Videos
|-
|-
| 10
| 10
| Miiverse (view)
| Miiverse (View)
|-
|-
| 11
| 11
| Miiverse (post)
| Miiverse (Post)
|-
|-
| 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)
|}
|}