Changes

2,138 bytes added ,  15:12, 24 October 2023
m
Generalize naming
Line 1: Line 1: −
== Registers ==
+
Other registers that used to be documented on this page are now at [[GPU Registers]].
 +
 
 +
= Registers =
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
!  NAME
 
!  NAME
Line 7: Line 9:  
!  WIDTH
 
!  WIDTH
 
|-
 
|-
| REG_LCDCOLORFILLMAIN
+
| Parallax barrier enable
| 0x10202204
+
| 0x10202000
| 0x1ED02204
+
| 0x1ED02000
| 0xFFFD6204
+
| 0xFFFD6000
| 4
+
| 0x4
 
|-
 
|-
| REG_LCDCOLORFILLSUB
+
| Parallax barrier PWM
| 0x10202A04
+
| 0x10202004
| 0x1ED02A04
+
| 0x1ED02004
| 0xFFFD6A04
+
| 0xFFFD6004
| 4
+
| 0x4
 +
|-
 +
| LCD status
 +
| 0x10202008
 +
| 0x1ED02008
 +
| 0xFFFD6008
 +
| 0x4
 +
|-
 +
| LCD clock disable
 +
| 0x1020200C
 +
| 0x1ED0200C
 +
| 0xFFFD600C
 +
| 0x4
 +
|-
 +
| ?
 +
| 0x10202010
 +
| 0x1ED02010
 +
| 0xFFFD6010
 +
| 0x4
 +
|-
 +
| LCD reset
 +
| 0x10202014
 +
| 0x1ED02014
 +
| 0xFFFD6014
 +
| 0x4
 +
|-
 +
| Top Screen [[#LCD Configuration|LCD Configuration]]
 +
| 0x10202200
 +
| 0x1ED02200
 +
| 0xFFFD6200
 +
| 0x600
 +
|-
 +
| Bottom Screen [[#LCD Configuration|LCD Configuration]]
 +
| 0x10202A00
 +
| 0x1ED02A00
 +
| 0xFFFD6A00
 +
| 0x600
 +
|-
 +
| ?
 +
| 0x10203200
 +
| 0x1ED03200
 +
| 0xFFFD7200
 +
| 0x40
 
|}
 
|}
   −
REG_*MAIN registers are used for the top LCD, while SUB is used for the bottom LCD.
+
On screen-init (error screen), Boot11 sets 0x10202004 to 0xA390A39.
 +
 
 +
== LCD Configuration ==
 +
{| class="wikitable" border="1"
 +
!  Offset
 +
!  Size
 +
!  Description
 +
|-
 +
| 0x00
 +
| 0x4
 +
| [[#Flags|Flags]]
 +
|-
 +
| 0x04
 +
| 0x4
 +
| [[#Fill Color|Fill Color]]
 +
|-
 +
| 0x10
 +
| 0x10
 +
| [[#ABL Area|ABL Area]]
 +
|-
 +
| 0x20
 +
| 0x4
 +
| GTH Ratio
 +
|-
 +
| 0x24
 +
| 0x4
 +
| Min GTH
 +
|-
 +
| 0x28
 +
| 0x4
 +
| MinMax
 +
|-
 +
| 0x2C
 +
| 0x4
 +
| ExMax
 +
|-
 +
| 0x30
 +
| 0x4
 +
| Inertia
 +
|-
 +
| 0x38
 +
| 0x4
 +
| MinRS
 +
|-
 +
| 0x3C
 +
| 0x4
 +
| MaxRS
 +
|-
 +
| 0x40
 +
| 0x4
 +
| [[#Backlight Level|Backlight Level]]
 +
|-
 +
| 0x44
 +
| 0x4
 +
| [[#Backlight Interval|Backlight Interval]]
 +
|-
 +
| 0x60
 +
| 0x20
 +
| Dither
 +
|-
 +
| 0x80
 +
| 0x24
 +
| LutListRS
 +
|-
 +
| 0xF0
 +
| 0x0C
 +
| ?
 +
|-
 +
| 0x100
 +
| 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
 +
| ?
 +
|}
   −
== REG_LCDCOLORFILL ==
+
=== Flags ===
 +
{| class="wikitable" border="1"
 +
! Bit
 +
! Description
 +
|-
 +
| 0
 +
| ABL on
 +
|-
 +
| 8
 +
| ?
 +
|-
 +
| 9
 +
| ?
 +
|}
 +
 
 +
Bits 8 and 9 control dither.
 +
 
 +
=== Fill Color ===
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
!  Bit
 
!  Bit
Line 38: 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
 +
|-
 +
| 0x00
 +
| X begin
 +
|-
 +
| 0x04
 +
| X end
 +
|-
 +
| 0x08
 +
| Y begin
 
|-
 
|-
| 31-25
+
| 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 rendered graphics.
+
 
 +
On old 2DS, disabling the top LCD does nothing, disabling the bottom LCD affects both screens.
 +
Setting bit 18 makes the screen darker.
51

edits