Map
- 0x1EF00400 is the top screen
- 0x1EF00500 is the bottom screen
Init Values from nngxInitialize for Top Screen
- 0x1EF00400 = 0x1C2
- 0x1EF00404 = 0xD1
- 0x1EF00408 = 0x1C1
- 0x1EF0040C = 0x1C1
- 0x1EF00410 = 0
- 0x1EF00414 = 0xCF
- 0x1EF00418 = 0xD1
- 0x1EF0041C = 0x1C501C1
- 0x1EF00420 = 0x10000
- 0x1EF00424 = 0x19D
- 0x1EF00428 = 2
- 0x1EF0042C = 0x1C2
- 0x1EF00430 = 0x1C2
- 0x1EF00434 = 0x1C2
- 0x1EF00438 = 1
- 0x1EF0043C = 2
- 0x1EF00440 = 0x1960192
- 0x1EF00444 = 0
- 0x1EF00448 = 0
- 0x1EF0045C = 0x19000F0
- 0x1EF00460 = 0x1c100d1
- 0x1EF00464 = 0x1920002
- 0x1EF00470 = 0x80340
- 0x1EF0049C = 0
More Init Values from nngxInitialize for Top Screen
- 0x1EF00468 = 0x18300000, later changed by GSP module when updating state, framebuffer
- 0x1EF0046C = 0x18300000, later changed by GSP module when updating state, framebuffer
- 0x1EF00494 = 0x18300000
- 0x1EF00498 = 0x18300000
- 0x1EF00478 = 1, doesn't stay 1, read as 0
- 0x1EF00474 = 0x10501
This register controls how the LCD framebuffer is displayed.
0x1EF018E0
Register address
|
Description
|
0x1EF018E0
|
Buffer Size>>3
|
0x1EF018E8
|
Buffer physical address>>3
|
0x1EF018F0
|
Writing value 1 here triggers GPU processing for the specified buffer
|
These 3 registers are used by GX command 1. This is used for OpenGL commands.
0x1EF00010
Register address
|
Description
|
0x1EF000X0
|
Buffer physical address>>3
|
0x1EF000X4
|
Associated buffer physical address>>3
|
0x1EF000X8
|
Buffer size
|
0x1EF000XC
|
The low u16 for this register is overwritten by the GX command u16 parameter
|
These registers are used by GX command 2. 0x1EF00010 is used for the GX command buf0 parameters, while 0x1EF00020 is used for the GX command buf1 parameters.
0x1EF00C00
Register address
|
Description
|
0x1EF00C00
|
VRAM framebuffer physical address>>3
|
0x1EF00C04
|
Output framebuffer physical address>>3
|
0x1EF00C08
|
Output framebuffer dimensions, used with cmd3
|
0x1EF00C0C
|
VRAM framebuffer dimensions, used with cmd3
|
0x1EF00C10
|
Unknown, used with cmd3 and cmd4
|
0x1EF00C14
|
GSP module writes value 0 here prior to writing to 0x1EF00C18, for cmd3
|
0x1EF00C18
|
Writing value 1 here triggers GPU processing for the specified buffers
|
0x1EF00C20
|
Unknown, used with cmd4
|
0x1EF00C24
|
Unknown, used with cmd4
|
0x1EF00C28
|
Unknown, used with cmd4
|
These registers are used by GX command 3 and 4. For cmd4, *0x1EF00C18 |= 1 is used instead of just writing value 1.
OpenGL Commands
The buffer for GX command 1 with the registers at 0x1EF018E0 is used for OpenGL commands, every 8-bytes in the buffer is a GL command. Cmd+0 is the command parameter, and cmd+4 is the cmdID.
Commands
CommandID
|
Description
|
0x000F0010
|
Parameter value is 0x12345678, this command is always the last command in the buffer.
|