Line 1: |
Line 1: |
| == Map == | | == Map == |
− | * 0x1EF00400 is the top screen | + | * 0x1EF00400 is the top [[LCD|screen]] |
− | * 0x1EF00500 is the bottom screen | + | * 0x1EF00500 is the bottom [[LCD|screen]] |
| | | |
| == Init Values from nngxInitialize for Top Screen == | | == Init Values from nngxInitialize for Top Screen == |
Line 36: |
Line 36: |
| * 0x1EF00478 = 1, doesn't stay 1, read as 0 | | * 0x1EF00478 = 1, doesn't stay 1, read as 0 |
| * 0x1EF00474 = 0x10501 | | * 0x1EF00474 = 0x10501 |
− |
| |
− | == 0x1EF00X5C ==
| |
− | {| class="wikitable" border="1"
| |
− | ! Bit
| |
− | ! Description
| |
− | |-
| |
− | | 15-0
| |
− | | Framebuffer width?
| |
− | |-
| |
− | | 31-16
| |
− | | Framebuffer height?
| |
− | |}
| |
− |
| |
− | This register might control the framebuffer dimensions, however writing to this doesn't affect the displayed LCD image.
| |
− |
| |
− | == 0x1EF00X78 ==
| |
− | {| class="wikitable" border="1"
| |
− | ! Bit
| |
− | ! Description
| |
− | |-
| |
− | | 0
| |
− | | LCD framebuffer to display (0=first, 1=second)
| |
− | |-
| |
− | | 7-1
| |
− | | ?
| |
− | |-
| |
− | | 31-8
| |
− | | Unused
| |
− | |}
| |
− |
| |
− | == 0x1EF00X90 ==
| |
− | {| class="wikitable" border="1"
| |
− | ! Bit
| |
− | ! Description
| |
− | |-
| |
− | | 3-0
| |
− | | ?
| |
− | |-
| |
− | | 7-4
| |
− | | Controls the framebuffer dimensions and/or color format
| |
− | |-
| |
− | | 31-7
| |
− | | ?
| |
− | |}
| |
| | | |
| This register controls how the LCD framebuffer is displayed. | | This register controls how the LCD framebuffer is displayed. |
Line 157: |
Line 113: |
| | | |
| These registers are used by [[GX_Commands|GX command]] 3 and 4. For cmd4, *0x1EF00C18 |= 1 is used instead of just writing value 1. | | These registers are used by [[GX_Commands|GX command]] 3 and 4. For cmd4, *0x1EF00C18 |= 1 is used instead of just writing value 1. |
− |
| |
− | == Framebuffers ==
| |
− | {| class="wikitable" border="1"
| |
− | ! Address
| |
− | ! Description
| |
− | |-
| |
− | | 0x1EF00468
| |
− | | Main LCD, first framebuffer for 3D left
| |
− | |-
| |
− | | 0x1EF0046C
| |
− | | Main LCD, second framebuffer for 3D left
| |
− | |-
| |
− | | 0x1EF00494
| |
− | | Main LCD, first framebuffer for 3D right
| |
− | |-
| |
− | | 0x1EF00498
| |
− | | Main LCD, second framebuffer for 3D right
| |
− | |-
| |
− | | 0x1EF00568
| |
− | | Sub LCD, first framebuffer
| |
− | |-
| |
− | | 0x1EF0056C
| |
− | | Sub LCD, second framebuffer
| |
− | |}
| |
− |
| |
− | The above framebuffer registers contains the physical address for each framebuffer, normally located in FCRAM in the application's GSP heap.
| |
− |
| |
− | These LCD framebuffers normally contain the last rendered frames from the GPU. The color format is BGR8. The framebuffers are drawn from left-to-right, instead of top-to-bottom.(Thus the beginning of the framebuffer is drawn starting at the left side of the screen)
| |
− |
| |
− | Both of the 3D screen left/right framebuffers are displayed regardless of the 3D slider's state, normally when the 3D slider's state is set to "off" the left/right framebuffer addresses are set to the same physical address.
| |