GPU/Commands: Difference between revisions
No edit summary |
No edit summary |
||
Line 62: | Line 62: | ||
|- | |- | ||
| 0x0002025E | | 0x0002025E | ||
| u32, val<<8 | | u32, val<<8. | ||
| This sets the GL rendering mode. | | This sets the GL rendering mode. | ||
|- | |- | ||
Line 114: | Line 114: | ||
|- | |- | ||
| 0x000F0227 | | 0x000F0227 | ||
| u32 | | u32 | ||
| This specifies the address of an array containing vertex array indices, used for rendering primitives | | This specifies the address of an array containing vertex array indices, and the data-type of the indices, used for rendering primitives. | ||
|- | |- | ||
| 0x000F0228 | | 0x000F0228 | ||
| u32 total elements in the array to use for rendering. | | u32 total elements in the array to use for rendering. | ||
| This command is used immediately after CmdID 0x000F0227 | | This command is used immediately after CmdID 0x000F0227. | ||
|- | |- | ||
| 0x000F02B0 | | 0x000F02B0 | ||
Line 132: | Line 132: | ||
| First word in the first entry | | First word in the first entry | ||
| A list of entries follow this command. | | A list of entries follow this command. | ||
|} | |||
==== Command Sets ==== | |||
===== glDrawElements() ===== | |||
{| class="wikitable" border="1" | |||
! Command Index | |||
! CommandID | |||
! Parameter | |||
! Description | |||
|- | |||
| 0 | |||
| 0x00020229 | |||
| u32, val<<8. | |||
| Unknown, val is 0 or 1. | |||
|- | |||
| 1-2 | |||
| 0x20253 | |||
| Same as CmdID 0x00020229. | |||
| Unknown | |||
|- | |||
| 3 | |||
| 0x0002025E | |||
| u32, val<<8. | |||
| This sets the GL rendering mode. | |||
|- | |||
| 4 | |||
| 0x0004025E | |||
| Value 0 | |||
| ? | |||
|- | |||
| 5 | |||
| 0x000F025F | |||
| Value 1 | |||
| ? | |||
|- | |||
| 6 | |||
| 0x00010253 | |||
| Value 0 | |||
| ? | |||
|- | |||
| 7 | |||
| 0x000F0227 | |||
| u32 | |||
| This specifies the indices data-type, and the indices array address. | |||
|- | |||
| 8 | |||
| 0x000F0228 | |||
| u32 | |||
| This specifies the number of elements in the array to use for rendering. | |||
|- | |||
| 9 | |||
| 0x00010245 | |||
| Value 0 | |||
| ? | |||
|- | |||
| 10 | |||
| 0x000F022F | |||
| Value 1 | |||
| ? | |||
|- | |||
| 11 | |||
| 0x00010245 | |||
| Value 1 | |||
| ? | |||
|- | |||
| 12 | |||
| 0x000F0231 | |||
| Value 1 | |||
| ? | |||
|- | |||
| 13 | |||
| 0x000F0111 | |||
| Value 1 | |||
| ? | |||
|- | |||
| 14 | |||
| 0x00020229 | |||
| Value 0 | |||
| ? | |||
|- | |||
| 15 | |||
| 0x00020253 | |||
| Value 0 | |||
| ? | |||
|- | |||
| 16 | |||
| 0x0002025E | |||
| Value 0 | |||
| ? | |||
|- | |||
| 17 | |||
| 0x000C02BA | |||
| Value 0x7FFF0000 | |||
| ? | |||
|} | |||
=== GL mode values for CmdID 0x0002025E === | |||
{| class="wikitable" border="1" | |||
! Value | |||
! Description | |||
|- | |||
| 0 | |||
| Unknown | |||
|- | |||
| 1 | |||
| GL_TRIANGLE_STRIP | |||
|- | |||
| 2 | |||
| GL_TRIANGLE_FAN | |||
|- | |||
| 3 | |||
| GL_TRIANGLES | |||
|- | |||
| 4 | |||
| Unknown, this seems to have the same effect as value 0. | |||
|} | |||
=== Parameter value format for CmdID 0x000F0227 === | |||
{| class="wikitable" border="1" | |||
! Bit | |||
! Description | |||
|- | |||
| 30-0 | |||
| Indices array address, relative to VRAM. | |||
|- | |||
| 31 | |||
| 1 = indices data-type GL_UNSIGNED_SHORT, 0 = GL_UNSIGNED_BYTE. | |||
|} | |} | ||
Line 169: | Line 297: | ||
|- | |- | ||
| 4 | | 4 | ||
| Texture data physical address >> 3. This is normally located in | | Texture data physical address >> 3. This is normally located in VRAM. | ||
|- | |- | ||
| 5-9 | | 5-9 |