LCD Registers: Difference between revisions

Dazzozo (talk | contribs)
No edit summary
Kynex7510 (talk | contribs)
m Generalize naming
 
(9 intermediate revisions by 5 users not shown)
Line 9: Line 9:
!  WIDTH
!  WIDTH
|-
|-
| ?
| Parallax barrier enable
| 0x10202000
| 0x10202000
| 0x1ED02000
| 0x1ED02000
Line 15: Line 15:
| 0x4
| 0x4
|-
|-
| ?
| Parallax barrier PWM
| 0x10202004
| 0x10202004
| 0x1ED02004
| 0x1ED02004
| 0xFFFD6004
| 0xFFFD6004
| 0x4
|-
| LCD status
| 0x10202008
| 0x1ED02008
| 0xFFFD6008
| 0x4
|-
| LCD clock disable
| 0x1020200C
| 0x1ED0200C
| 0xFFFD600C
| 0x4
|-
| ?
| 0x10202010
| 0x1ED02010
| 0xFFFD6010
| 0x4
|-
| LCD reset
| 0x10202014
| 0x1ED02014
| 0xFFFD6014
| 0x4
| 0x4
|-
|-
Line 32: Line 56:
| 0xFFFD6A00
| 0xFFFD6A00
| 0x600
| 0x600
|-
| ?
| 0x10203200
| 0x1ED03200
| 0xFFFD7200
| 0x40
|}
|}
On screen-init (error screen), Boot11 sets 0x10202004 to 0xA390A39.


== LCD Configuration ==
== LCD Configuration ==
Line 42: Line 74:
| 0x00
| 0x00
| 0x4
| 0x4
| Parallax Barrier enable
| [[#Flags|Flags]]
|-
|-
| 0x04
| 0x04
Line 49: Line 81:
|-
|-
| 0x10
| 0x10
| 0x4
| 0x10
| ?
| [[#ABL Area|ABL Area]]
|-
| 0x14
| 0x4
| ?
|-
| 0x18
| 0x4
| ?
|-
| 0x1C
| 0x4
| ?
|-
|-
| 0x20
| 0x20
| 0x4
| 0x4
| ?
| GTH Ratio
|-
|-
| 0x24
| 0x24
| 0x4
| 0x4
| ?
| Min GTH
|-
|-
| 0x28
| 0x28
| 0x4
| 0x4
| ?
| MinMax
|-
|-
| 0x2C
| 0x2C
| 0x4
| 0x4
| ?
| ExMax
|-
|-
| 0x30
| 0x30
| 0x4
| 0x4
| ?
| Inertia
|-
|-
| 0x38
| 0x38
| 0x4
| 0x4
| ?
| MinRS
|-
|-
| 0x3C
| 0x3C
| 0x4
| 0x4
| ?
| MaxRS
|-
|-
| 0x40
| 0x40
| 0x4
| 0x4
| Backlight
| [[#Backlight Level|Backlight Level]]
|-
|-
| 0x44
| 0x44
| 0x4
| 0x4
| ?
| [[#Backlight Interval|Backlight Interval]]
|-
|-
| 0x60
| 0x60
| 0x4
| 0x20
| Dither
|-
| 0x80
| 0x24
| LutListRS
|-
| 0xF0
| 0x0C
| ?
| ?
|-
|-
| 0x68
| 0x100
| 0x4
| 0x100
| LCD calibration data, pulled from nand:/ro/sys/HWCAL0.dat offset 0x77C.
N3DS only. This area on old3DS is zero-filled and not writable.
|-
| 0x200
| 0x400
| ?
| ?
|}
=== Flags ===
{| class="wikitable" border="1"
! Bit
! Description
|-
|-
| 0x70
| 0
| 0x4
| ABL on
| ?
|-
|-
| 0x78
| 8
| 0x4
| ?
| ?
|-
|-
| 0x80
| 9
| 0x4
| ?
| ?
|-
| 0x100
| 0x100
| LCD calibration data, pulled from nand:/ro/sys/HWCAL0.dat offset 0x77C. N3DS only(?)
|}
|}
Bits 8 and 9 control dither.


=== Fill Color ===
=== Fill Color ===
Line 141: Line 175:
| 24
| 24
| Enable
| Enable
|}
When the enable bit is set, the specified solid color is displayed on the LCD instead of the framebuffer.
=== ABL Area ===
{| class="wikitable" border="1"
!  Offset
!  Description
|-
|-
| 31-25
| 0x00
| X begin
|-
| 0x04
| X end
|-
| 0x08
| Y begin
|-
| 0x0C
| Y end
|}
 
The values refer to 90° clockwise rotated screens.
 
=== Backlight Level ===
{| class="wikitable" border="1"
!  Bit
!  Description
|-
| 9-0
| Backlight PWM duty on (0 = off)
|}
 
=== Backlight Interval ===
{| class="wikitable" border="1"
!  Bit
!  Description
|-
| 9-0
| Backlight PWM Interval, minus 1
|-
| 16
| Enable LCD (0 = disabled, 1 = enabled).
|-
| 17
| RS on (?)
|-
| 18
| ?
| ?
|}
|}


When the enable bit is set, the specified solid color is displayed on the LCD instead of the framebuffer.
On old 2DS, disabling the top LCD does nothing, disabling the bottom LCD affects both screens.
Setting bit 18 makes the screen darker.