Line 57: |
Line 57: |
| |- | | |- |
| | 1 | | | 1 |
− | | LCD flicker (always successful) | + | | LCD "flicker"/contrast (always successful) |
| |- | | |- |
| | 2 | | | 2 |
Line 84: |
Line 84: |
| |- | | |- |
| | A | | | A |
− | | Power saving mode (ABL) | + | | Adaptive BackLight (ABL) |
| |- | | |- |
| | B | | | B |
Line 99: |
Line 99: |
| |- | | |- |
| | F | | | F |
− | | Power saving mode (ABL) in legacy (DSi/GBA) mode | + | | Adaptive BackLight (ABL) in legacy (DSi/GBA) mode |
| |} | | |} |
| | | |
Line 122: |
Line 122: |
| | 2* | | | 2* |
| | 00050000 | | | 00050000 |
− | | [[#Screen_flicker|Screen flicker]] | + | | [[#Screen_flicker|Display panel contrast]] |
| |- | | |- |
| | 0x24 | | | 0x24 |
Line 167: |
Line 167: |
| | 0x20 | | | 0x20 |
| | ??? | | | ??? |
− | | [[#ABL|Power saving mode]] | + | | [[#ABL|Adaptive BackLight / Power saving mode]] |
| |- | | |- |
| | 0x470 | | | 0x470 |
Line 228: |
Line 228: |
| | | |
| ==Touch== | | ==Touch== |
| + | Used for mapping touch ADC values to display pixel co-ordinates. |
| + | |
| + | <code> |
| + | [4096, 4096] --> [320, 240] |
| + | |
| + | [RawX, RawY] --> [PointX, PointY] |
| + | </code> |
| + | |
| + | Usually [PointX0, PointY0] is placed around 25% from the top-left corner, and the same for [PointX1, PointY1] except 25% from the bottom-right corner. |
| + | This offsetting is needed because the touch film starts to distort outside of that rectangle, which would skew the touch results near the center of the screen. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 258: |
Line 269: |
| | | |
| ==Circle pad== | | ==Circle pad== |
| + | |
| + | Contains the centering position of the circle pad. For other circle pad settings, see [[#Circle_pad_extra|circle pad extra]]. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
| + | ! Declaration |
| ! Description | | ! Description |
| |- | | |- |
| | 0x00 | | | 0x00 |
| | s16 CenterX | | | s16 CenterX |
| + | |rowspan="2"| Raw analog values corresponding to zero input position |
| |- | | |- |
| | 0x02 | | | 0x02 |
Line 270: |
Line 286: |
| | | |
| ==Screen flicker== | | ==Screen flicker== |
| + | |
| + | These values are written to MCU register 0x03 and 0x04 respectively. They both set the display contrast voltage. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
| + | ! Declaration |
| ! Description | | ! Description |
| |- | | |- |
| | 0 | | | 0 |
| | u8 FlickerTop | | | u8 FlickerTop |
| + | |rowspan="2"| Contrast voltage |
| |- | | |- |
| | 1 | | | 1 |
Line 281: |
Line 302: |
| |- | | |- |
| | 2* | | | 2* |
| + | |rowspan="2"| Inline checksum |
| | Checksum low byte, NOT THIS[0] | | | Checksum low byte, NOT THIS[0] |
| |- | | |- |
Line 290: |
Line 312: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
| + | ! Declaration |
| ! Description | | ! Description |
| |- | | |- |
| | 0 | | | 0 |
− | | u8 CompensationValue (???) | + | | u8 CompensationValue |
| + | | (???) |
| |- | | |- |
| | 1* | | | 1* |
| + | | |
| | Checksum byte, NOT THIS[0] | | | Checksum byte, NOT THIS[0] |
| |} | | |} |
Line 302: |
Line 327: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 368: |
Line 393: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 401: |
Line 426: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 425: |
Line 450: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
| + | ! Declaration |
| ! Description | | ! Description |
| |- | | |- |
| | 0x00 | | | 0x00 |
| | u8 DriverGainHP | | | u8 DriverGainHP |
| + | | Headphone gain |
| |- | | |- |
| | 0x01 | | | 0x01 |
| | u8 DriverGainSP | | | u8 DriverGainSP |
| + | | Speaker gain |
| |- | | |- |
| | 0x02 | | | 0x02 |
| | u8 AnalogVolumeHP | | | u8 AnalogVolumeHP |
| + | | |
| |- | | |- |
| | 0x03 | | | 0x03 |
| | u8 AnalogVolumeSP | | | u8 AnalogVolumeSP |
| + | | |
| |- | | |- |
| | 0x04 | | | 0x04 |
| | s8 ShutterVolume[2] | | | s8 ShutterVolume[2] |
| + | | |
| |- | | |- |
| | 0x06 | | | 0x06 |
| | u8 MicrophoneBias | | | u8 MicrophoneBias |
| + | | Capacitive microphone bias voltage |
| |- | | |- |
| | 0x07 | | | 0x07 |
− | | u8 QuickCharge (???) | + | | u8 QuickCharge |
| + | | (???) |
| |- | | |- |
| | 0x08 | | | 0x08 |
− | | u8 PGA_GAIN (microphone gain) | + | | u8 PGA_GAIN |
| + | | ??? (microphone gain) |
| |- | | |- |
| | 0x09 | | | 0x09 |
Line 456: |
Line 490: |
| | 0x0C | | | 0x0C |
| | s16 FilterHP32[3*5] | | | s16 FilterHP32[3*5] |
| + | | Headphone filter for 32728.49Hz sampling rate |
| |- | | |- |
| | 0x2A | | | 0x2A |
| | s16 FilterHP47[3*5] | | | s16 FilterHP47[3*5] |
| + | | Headphone filter for 47605Hz sampling rate |
| |- | | |- |
| | 0x48 | | | 0x48 |
| | s16 FilterSP32[3*5] | | | s16 FilterSP32[3*5] |
| + | | Speaker filter for 32728.49Hz sampling rate |
| |- | | |- |
| | 0x66 | | | 0x66 |
| | s16 FilterSP47[3*5] | | | s16 FilterSP47[3*5] |
| + | | Speaker filter for 47605Hz sampling rate |
| |- | | |- |
| | 0x84 | | | 0x84 |
| | s16 FilterMic32[(1+2)+((1+4)*5)] | | | s16 FilterMic32[(1+2)+((1+4)*5)] |
| + | | Microphone filter for 32728.49Hz sampling rate |
| |- | | |- |
| | 0xBC | | | 0xBC |
| | s16 FilterMic47[(1+2)+((1+4)*5)] | | | s16 FilterMic47[(1+2)+((1+4)*5)] |
| + | | Microphone filter for 47605Hz sampling rate |
| |- | | |- |
| | 0xF4 | | | 0xF4 |
| | s16 FilterFree[(1+2)+((1+4)*5)] | | | s16 FilterFree[(1+2)+((1+4)*5)] |
| + | | Unknown |
| |- | | |- |
| | 0x12C | | | 0x12C |
Line 495: |
Line 536: |
| | 0x132 | | | 0x132 |
| | u8 YM_Driver | | | u8 YM_Driver |
| + | | ??? (circle-pad or touch panel related?) |
| |- | | |- |
| | 0x133 | | | 0x133 |
Line 503: |
Line 545: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 515: |
Line 557: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 527: |
Line 569: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 578: |
Line 620: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 602: |
Line 644: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 630: |
Line 672: |
| | | |
| ==MCU== | | ==MCU== |
| + | |
| + | Somewhat misleading, these values are actually used for clamping the MCU's raw slider readings to comprehensible values. |
| + | |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
| + | ! Declaration |
| ! Description | | ! Description |
| |- | | |- |
| | 0x00 | | | 0x00 |
− | | s16 SVR2_Min (???) | + | | s16 SVR2_Min |
| + | | Raw 3D volume slider values <= this map to 3D slider value 0.0 |
| |- | | |- |
| | 0x02 | | | 0x02 |
− | | s16 SVR2_Max (???) | + | | s16 SVR2_Max |
| + | | Raw 3D volume slider values >= this map to 3D slider value 1.0 |
| |- | | |- |
| | 0x04 | | | 0x04 |
| | s16 VolumeSliderMin | | | s16 VolumeSliderMin |
| + | | Written to MCU reg 0x58. Volume slider values <= this map to volume value 0x00 |
| |- | | |- |
| | 0x06 | | | 0x06 |
| | s16 VolumeSliderMax | | | s16 VolumeSliderMax |
| + | | Written to MCU reg 0x59. Volume slider values >= this map to volume value 0x3F |
| |} | | |} |
| | | |
| ==ULCD delay== | | ==ULCD delay== |
| + | |
| + | There is a delay between switching the parallax barrier, and adjusting the backlight. |
| + | These delay values determine how many VBlank events to wait on before switching the backlight curves to the appropriate mode. |
| + | |
| + | This is needed only to prevent epillepsy from analog jitter causing unwanted mode switches, and both values are usually always set to 1 or 2. |
| + | |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 662: |
Line 720: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 671: |
Line 729: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 695: |
Line 753: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |
Line 710: |
Line 768: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Offset | | ! Offset |
− | ! Description | + | ! Declaration |
| |- | | |- |
| | 0x00 | | | 0x00 |