Line 54: |
Line 54: |
| |} | | |} |
| | | |
− | These 3 registers are used by [[GX_Commands|GX command]] 1. This is used for OpenGL commands. | + | These 3 registers are used by [[GX_Commands|GX command]] 1. This is used for [[GPU_Commands|GPU commands]]. |
| | | |
| == 0x1EF00010 == | | == 0x1EF00010 == |
Line 113: |
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. |
− |
| |
− | == GPU Commands ==
| |
− | The buffer for [[GX_Commands|GX command]] 1 with the registers at 0x1EF018E0 is used for GPU commands including OpenGL commands, each 8-byte entry in the buffer is a command. Cmd+0 is the command parameter, and cmd+4 is the cmdID.
| |
− |
| |
− | === Commands ===
| |
− | {| class="wikitable" border="1"
| |
− | ! CommandID
| |
− | ! Parameter
| |
− | ! Description
| |
− | |-
| |
− | | 0x000F0010
| |
− | | Value is 0x12345678
| |
− | | This command is always the last command in the buffer.
| |
− | |-
| |
− | | 0x000F0110
| |
− | | Value 0x1
| |
− | | This command is immediately before CmdID 0x000F0010, this is used elsewhere in the buffer as well.
| |
− | |-
| |
− | | 0x000F0111
| |
− | | Value 0x1
| |
− | | This command is immediately before CmdID 0x000F0110, however CmdID 0x000F0110 doesn't always follow this command.
| |
− | |-
| |
− | | 0x000F0042
| |
− | | float y vector
| |
− | | This sets Y scaling for the current matrix.
| |
− | |-
| |
− | | 0x000F0044
| |
− | | float x vector
| |
− | | This sets X scaling for the current matrix.
| |
− | |-
| |
− | | 0x000F02C0
| |
− | | <nowiki>0x80000000 | ID?</nowiki> When bit31 is clear, the specified vertices are not rendered via CmdID 0xXXXF02C1.
| |
− | | This is used immediately before CmdID 0xXXXF02C1.
| |
− | |-
| |
− | | 0xXXXF02C1
| |
− | | float X coordinate for the first vertex
| |
− | | CmdID is <nowiki>0x000F02C1 | ((totalvertices<<22) - 0x100000).</nowiki> The vertex entries is the data following the command. The first word in the first vertex entry is the Y coordinate.
| |
− | |}
| |
− |
| |
− | === Vertex Entry ===
| |
− | {| class="wikitable" border="1"
| |
− | ! Index Word
| |
− | ! Description
| |
− | |-
| |
− | | 0
| |
− | | X coordinate, for the first vertex this is stored in the command parameter instead.
| |
− | |-
| |
− | | 1
| |
− | | Y coordinate
| |
− | |-
| |
− | | 2
| |
− | | Z coordinate
| |
− | |-
| |
− | | 3
| |
− | | Padding for the last vertex entry
| |
− | |}
| |