GPU/External Registers: Difference between revisions

Line 80: Line 80:
|-
|-
| 0x1EF00C00
| 0x1EF00C00
| VRAM framebuffer physical address>>3
| Input framebuffer physical address>>3
|-
|-
| 0x1EF00C04
| 0x1EF00C04
Line 89: Line 89:
|-
|-
| 0x1EF00C0C
| 0x1EF00C0C
| VRAM framebuffer dimensions, used with cmd3
| Input framebuffer dimensions, used with cmd3
|-
|-
| 0x1EF00C10
| 0x1EF00C10
| Unknown, used with cmd3 and cmd4
| Flags, used with cmd3 and cmd4.
|-
|-
| 0x1EF00C14
| 0x1EF00C14
| GSP module writes value 0 here prior to writing to 0x1EF00C18, for cmd3
| GSP module writes value 0 here prior to writing to 0x1EF00C18, for cmd3.
|-
|-
| 0x1EF00C18
| 0x1EF00C18
| Writing value 1 here triggers GPU processing for the specified buffers
| Writing value 1 here triggers GPU processing for the specified buffers.
|-
|-
| 0x1EF00C20
| 0x1EF00C20
Line 110: Line 110:
|}
|}


These registers are used by [[GSP_Shared_Memory|GX command]] 3 and 4. For cmd4, *0x1EF00C18 |= 1 is used instead of just writing value 1. The dimensions fields seem to use the same format as [[LCD]] register 0x1EF00X5C. The framebuffer width in the dimensions fields' low u16 is 480 for the main screen, and 240 for the sub screen.
These registers are used by [[GSP_Shared_Memory|GX command]] 3 and 4. For cmd4, *0x1EF00C18 |= 1 is used instead of just writing value 1. The dimensions fields seem to use the same format as [[LCD]] register 0x1EF00X5C.
 
=== 0x1EF00C10 ===
{| class="wikitable" border="1"
!  Bit
!  Description
|-
| 11-0
| ?
|-
| 12
| Color format related?
|-
| 23-13
| ?
|-
| 24
| When this is set, the actual framebuffer width is input width>>1.
|-
| 31-25
| ?
|}