Line 67: |
Line 67: |
| | 0x1 | | | 0x1 |
| | 0xC | | | 0xC |
− | | ? | + | | [[Hardware_calibration#RTC|RTC compensation value]] |
| |- | | |- |
| | 0x00020000 | | | 0x00020000 |
| | 0x134 | | | 0x134 |
| | 0xC | | | 0xC |
− | | ? | + | | [[Hardware_calibration#CDC|Codec]] |
| |- | | |- |
| | 0x00030000 | | | 0x00030000 |
| | 0x1 | | | 0x1 |
| | 0xC | | | 0xC |
− | | ? | + | | ??? (HWCAL block 0x28) |
| |- | | |- |
| | 0x00030001 | | | 0x00030001 |
Line 92: |
Line 92: |
| | 0x10 | | | 0x10 |
| | 0xC | | | 0xC |
− | | ? (read by HID) | + | | [[Hardware_calibration#Touch|Touch calibration]] (read by HID) |
| |- | | |- |
| | 0x00040001 | | | 0x00040001 |
| | 0x1C | | | 0x1C |
| | 0xC | | | 0xC |
− | | ? (read by HID) | + | | Analog Stick Calibration Param?(read by HID) |
| |- | | |- |
| | 0x00040002 | | | 0x00040002 |
| | 0x12 | | | 0x12 |
| | 0xC | | | 0xC |
− | | ? (read by HID) | + | | [[Hardware_calibration#Gyro|Gyroscope]] (read by HID) |
| |- | | |- |
| | 0x00040003 | | | 0x00040003 |
| | 0xC | | | 0xC |
| | 0xC | | | 0xC |
− | | ? (read by HID) | + | | [[Hardware_calibration#Accel|Accelerometer]] (read by HID) |
| |- | | |- |
| | 0x00040004 | | | 0x00040004 |
| | 0x1C | | | 0x1C |
| | 0xC | | | 0xC |
− | | ? | + | | [[Hardware_calibration#CStick|CStick calibration data]] |
| |- | | |- |
| | 0x00050000 | | | 0x00050000 |
| | 0x2 | | | 0x2 |
| | 0xC | | | 0xC |
− | | Upper/Lower screen flicker byte | + | | [[Hardware_calibration#Screen_flicker|Screen flicker]] |
| |- | | |- |
| | 0x00050001 | | | 0x00050001 |
Line 127: |
Line 127: |
| | 0x38 | | | 0x38 |
| | 0xC | | | 0xC |
− | | ? (read by GSP) | + | | [[Hardware_calibration#BLPWM|Backlight PWM]] (read by GSP) |
| |- | | |- |
| | 0x00050003 | | | 0x00050003 |
| | 0x20 | | | 0x20 |
| | 0xC | | | 0xC |
− | | ? (read by GSP) | + | | [[Hardware_calibration#ABL|Power saving mode (ABL) calibration]] (read by GSP) |
| |- | | |- |
| | 0x00050004 | | | 0x00050004 |
| | 0x20 | | | 0x20 |
| | 0xC | | | 0xC |
− | | ? | + | | [[Hardware_calibration#ABL|Power saving mode (ABL) calibration]] |
| |- | | |- |
| | 0x00050005 | | | 0x00050005 |
| | 0x20 | | | 0x20 |
| | 0xE | | | 0xE |
− | | Stereo display settings | + | | Stereo display settings (HWCAL block 0x470) |
| |- | | |- |
| | 0x00050006 | | | 0x00050006 |
| | 0x2 | | | 0x2 |
| | 0xC | | | 0xC |
− | | ? | + | | [[Hardware_calibration#ULCD_delay|3D switching delay]] |
| |- | | |- |
| | 0x00050007 | | | 0x00050007 |
Line 157: |
Line 157: |
| | 0x10C | | | 0x10C |
| | 0xC | | | 0xC |
− | | ? | + | | [[Hardware_calibration#ABL_extra|Power saving mode (ABL) extra config]] |
| |- | | |- |
| | 0x00050009 | | | 0x00050009 |
| | 0x8 | | | 0x8 |
| | 0xC | | | 0xC |
− | | new3DS only(?) backlight control (5th byte: backlight dimming enable) | + | | new3DS only(?) backlight control (5th byte: auto-brightness enable) |
| |- | | |- |
| | 0x00060000 | | | 0x00060000 |
| | 0x96 | | | 0x96 |
| | 0xC | | | 0xC |
− | | ? | + | | ??? (HWCAL block 0x500) |
| |- | | |- |
| | 0x00070000 | | | 0x00070000 |
| | 0x214 | | | 0x214 |
| | 0xE | | | 0xE |
− | | ? | + | | [[Hardware_calibration#3D_filters|3D filters]] |
| |- | | |- |
| | 0x00070001 | | | 0x00070001 |
| | 0x1 | | | 0x1 |
| | 0xE | | | 0xE |
− | | Sound output mode (mono/stereo/surround)? | + | | Sound output mode (mono=0, stereo=1, surround=2) |
| |- | | |- |
| | 0x00070002 | | | 0x00070002 |
| | 0x8 | | | 0x8 |
| | 0xE | | | 0xE |
− | | ? | + | | [[Hardware_calibration#Microphone_echo_cancel|Microphone echo cancellation params]] |
| |- | | |- |
| | 0x00080000 | | | 0x00080000 |
Line 207: |
Line 207: |
| | 0x8 | | | 0x8 |
| | 0xE | | | 0xE |
− | | Same content as 0x0009000? This console-unique u64 used by [[Cfg:GenHashConsoleUnique|GenHashConsoleUnique]] is generated with the LocalFriendCodeSeed and with random data | + | | Same content as 0x0009000? This console-unique u64 is used by [[Cfg:GenHashConsoleUnique|GenHashConsoleUnique]]. It is generated by <code>((0x3FFFFFFFF) & LocalFriendCodeSeed) | (random16 << 48))</code>, where random16 is generated by [[PSPXI:GenerateRandomBytes|GenerateRandomBytes]] |
| |- | | |- |
| | 0x00090002 | | | 0x00090002 |
| | 0x4 | | | 0x4 |
| | 0xE | | | 0xE |
− | | ? | + | | The first two bytes are the same random16 used in 0x00090001. The second two bytes are zeros. |
| |- | | |- |
| | 0x000A0000 | | | 0x000A0000 |
| | 0x1C | | | 0x1C |
| | 0xE | | | 0xE |
− | | Username | + | | Username in UTF16 |
| |- | | |- |
| | 0x000A0001 | | | 0x000A0001 |
Line 258: |
Line 258: |
| | 0x14 | | | 0x14 |
| | 0xE | | | 0xE |
− | | Same as above? | + | | COPPACS restriction data |
| |- | | |- |
| | 0x000C0002 | | | 0x000C0002 |
Line 339: |
Line 339: |
| | 0x8 | | | 0x8 |
| | 0xC | | | 0xC |
− | | ? (read by HID) | + | | [[Hardware_calibration#MCU|MCU volume slider related]] (read by HID) |
| |- | | |- |
| | 0x00130000 | | | 0x00130000 |
Line 369: |
Line 369: |
| | 0x4 | | | 0x4 |
| | 0xE | | | 0xE |
− | | ? | + | | Miiverse (OLV) access key |
| |- | | |- |
| | 0x00180000 | | | 0x00180000 |
| | 0x4 | | | 0x4 |
| | 0xC | | | 0xC |
− | | ? | + | | QTM Infrared LED related, can be 0 or 1 |
| |- | | |- |
| | 0x00180001 | | | 0x00180001 |
| | 0x18 | | | 0x18 |
| | 0xC | | | 0xC |
− | | ? | + | | [[Hardware_calibration#QTM|QTM calibration data]] |
| |- | | |- |
| | 0x00190000 | | | 0x00190000 |
Line 517: |
Line 517: |
| |} | | |} |
| | | |
| + | |
| + | |
| + | ===WiFi Slot Structure=== |
| + | |
| + | ====Network structure==== |
| + | This is used twice in the actual WiFi slot structure. |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x1 |
| + | | Whether the network was set or not? |
| + | |- |
| + | | 0x1 |
| + | | 0x1 |
| + | | Whether to use this network strucutre to connect? |
| + | |- |
| + | | 0x2 |
| + | | 0x1 |
| + | | Whether this structure is the first (0) or the second (1) in the larger WiFi slot structure? |
| + | |- |
| + | | 0x3 |
| + | | 0x1 |
| + | | Padding ? |
| + | |- |
| + | | 0x4 |
| + | | 0x20 |
| + | | SSID of the network, without a trailing nullbyte. |
| + | |- |
| + | | 0x24 |
| + | | 0x1 |
| + | | Length of the SSID. |
| + | |- |
| + | | 0x25 |
| + | | 0x1 |
| + | | [[Nintendo_Zone#Beacon_payload_format|AP crypto key type]] |
| + | |- |
| + | | 0x26 |
| + | | 0x2 |
| + | | Padding ? |
| + | |- |
| + | | 0x28 |
| + | | 0x40 |
| + | | Plaintext of the passphrase of the network, without a trailing nullbyte. |
| + | |- |
| + | | 0x68 |
| + | | 0x20 |
| + | | PBKDF2 of the passphrase and SSID (http://jorisvr.nl/wpapsk.html). |
| + | |- |
| + | |} |
| + | |
| + | ====Actual structure==== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x2 |
| + | | ? |
| + | |- |
| + | | 0x2 |
| + | | 0x2 |
| + | | [https://github.com/lammertb/libcrc/blob/v2.0/src/crc16.c#L43-L76 CRC-16 checksum] of the next 0x410 bytes. |
| + | |- |
| + | | 0x4 |
| + | | 0x88 |
| + | | First network structure. Only set if the network was set "normally", or was the last to be set using WPS during the session. |
| + | |- |
| + | | 0x8C |
| + | | 0x20 |
| + | | Padding. |
| + | |- |
| + | | 0xAC |
| + | | 0x88 |
| + | | Second network structure. Only set if the network was set using WPS, otherwise 0-filled. |
| + | |- |
| + | | 0x134 |
| + | | 0x20C |
| + | | Padding. |
| + | |- |
| + | | 0x340 |
| + | | 0x1 |
| + | | Whether to automatically get the IP address (use DHCP) or not, defaults to 1. |
| + | |- |
| + | | 0x341 |
| + | | 0x1 |
| + | | Whether to automatically get the DNS or not, defaults to 1. |
| + | |- |
| + | | 0x342 |
| + | | 0x2 |
| + | | Padding ? |
| + | |- |
| + | | 0x344 |
| + | | 0x4 |
| + | | IP address, to use if 0x340 is false. |
| + | |- |
| + | | 0x348 |
| + | | 0x4 |
| + | | IP address of the gateway, to use if 0x340 is false. |
| + | |- |
| + | | 0x34C |
| + | | 0x4 |
| + | | Subnetwork mask, to use if 0x340 is false. |
| + | |- |
| + | | 0x350 |
| + | | 0x4 |
| + | | IP address of the primary DNS , to use if 0x341 is false. |
| + | |- |
| + | | 0x354 |
| + | | 0x4 |
| + | | IP address of the secondary DNS, to use if 0x341 is false. |
| + | |- |
| + | | 0x358 |
| + | | 0x4 |
| + | | Always 0x01050000 ? Only set if the network was the last to be set during the session. |
| + | |- |
| + | | 0x35C |
| + | | 0x4 |
| + | | IP address to use. Only set if the network was the last to be set during the session. |
| + | |- |
| + | | 0x360 |
| + | | 0x6 |
| + | | MAC address of the AP. Only set if the network was the last to be set during the session. |
| + | |- |
| + | | 0x366 |
| + | | 0x1 |
| + | | Channel. Only set if the network was the last to be set during the session. |
| + | |- |
| + | | 0x367 |
| + | | 0x1 |
| + | | Padding ? Only set if the network was the last to be set during the session. |
| + | |- |
| + | | 0x368 |
| + | | 0x1 |
| + | | Whether to use a proxy or not, defaults to 0. |
| + | |- |
| + | | 0x369 |
| + | | 0x1 |
| + | | Whether to use a basic authentication for the proxy, defaults to 0. |
| + | |- |
| + | | 0x36A |
| + | | 0x2 |
| + | | Port to use for the proxy, defaults to 1. |
| + | |- |
| + | | 0x36C |
| + | | 0x30 |
| + | | URL/address of the proxy, including a trailing nullbyte. |
| + | |- |
| + | | 0x39C |
| + | | 0x34 |
| + | | Padding. |
| + | |- |
| + | | 0x3D0 |
| + | | 0x20 |
| + | | Username to use for basic authentication, including a trailing nullbyte. |
| + | |- |
| + | | 0x3F0 |
| + | | 0x20 |
| + | | Password to use for basic authentication, including a trailing nullbyte. |
| + | |- |
| + | | 0x410 |
| + | | 0x2 |
| + | | Padding ? |
| + | |- |
| + | | 0x412 |
| + | | 0x2 |
| + | | MTU value, defaults to 1400 and ranges between 576 and 1500, inclusive. |
| + | |- |
| + | | 0x414 |
| + | | 0x7EC |
| + | | Padding. |
| + | |- |
| + | |} |
| | | |
| ===LCD display config=== | | ===LCD display config=== |
Line 538: |
Line 716: |
| |- | | |- |
| | 0x11 | | | 0x11 |
− | | ? | + | | 0x20 |
| | Secret answer in UTF-16 | | | Secret answer in UTF-16 |
| + | |} |
| + | |
| + | ===Parental Control setting block 0xC0000=== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x00 |
| + | | 0x04 |
| + | | [[#Parental Control restriction bitmask|Parental Control restriction bitmask]] |
| + | |- |
| + | | 0x0C |
| + | | 0x04 |
| + | | Parental Controls PIN code |
| + | |} |
| + | |
| + | ====Parental Control restriction bitmask==== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Bit |
| + | ! Restriction name |
| + | |- |
| + | | 0 |
| + | | Global Parental Controls enable |
| + | |- |
| + | | 3 |
| + | | Sharing Images/Audio/Video/Long Text Data |
| + | |- |
| + | | 4 |
| + | | Internet Browser |
| + | |- |
| + | | 5 |
| + | | StreetPass |
| + | |- |
| + | | 6 |
| + | | Friend Registration |
| + | |- |
| + | | 8 |
| + | | eShop |
| + | |- |
| + | | 10 |
| + | | Miiverse (view) |
| + | |- |
| + | | 11 |
| + | | Miiverse (post) |
| + | |- |
| + | | 31 |
| + | | "Child Online Privacy Protection" (see [[Cfg:GetRegionCanadaUSA|CFG:IsCoppacsSupported]]) |
| |} | | |} |