GPU/GL Arrays: Difference between revisions
Identify commands by their ID, not by some random header they are used with. |
|||
| Line 11: | Line 11: | ||
|- | |- | ||
| 0 | | 0 | ||
| | | 0x0229 | ||
| u32, val<<8. | | u32, val<<8. | ||
| Unknown, val is 0 or 1. | | Unknown, val is 0 or 1. | ||
|- | |- | ||
| 1-2 | | 1-2 | ||
| | | 0x0253 | ||
| Same as | | Same as command 0x0229. | ||
| Unknown | | Unknown | ||
|- | |- | ||
| 3 | | 3 | ||
| | | 0x025E | ||
| u32, val<<8. | | u32, val<<8. | ||
| This sets the GL rendering mode. | | This sets the GL rendering mode. | ||
|- | |- | ||
| 4 | | 4 | ||
| | | 0x025E | ||
| Value 0 | | Value 0 | ||
| ? | | ? | ||
|- | |- | ||
| 5 | | 5 | ||
| | | 0x025F | ||
| Value 1 | | Value 1 | ||
| ? | | ? | ||
|- | |- | ||
| 6 | | 6 | ||
| | | 0x0253 | ||
| Value 0 | | Value 0 | ||
| ? | | ? | ||
|- | |- | ||
| 7 | | 7 | ||
| | | 0x0227 | ||
| u32 | | u32 | ||
| This specifies the indices data-type, and the indices array address. | | This specifies the indices data-type, and the indices array address. | ||
|- | |- | ||
| 8 | | 8 | ||
| | | 0x0228 | ||
| u32 | | u32 | ||
| This specifies the number of elements in the array to use for rendering. | | This specifies the number of elements in the array to use for rendering. | ||
|- | |- | ||
| 9 | | 9 | ||
| | | 0x0245 | ||
| Value 0 | | Value 0 | ||
| ? | | ? | ||
|- | |- | ||
| 10 | | 10 | ||
| | | 0x022F | ||
| Value 1 | | Value 1 | ||
| ? | | ? | ||
|- | |- | ||
| 11 | | 11 | ||
| | | 0x0245 | ||
| Value 1 | | Value 1 | ||
| ? | | ? | ||
|- | |- | ||
| 12 | | 12 | ||
| | | 0x0231 | ||
| Value 1 | | Value 1 | ||
| ? | | ? | ||
|- | |- | ||
| 13 | | 13 | ||
| | | 0x0111 | ||
| Value 1 | | Value 1 | ||
| ? | | ? | ||
|- | |- | ||
| 14 | | 14 | ||
| | | 0x0229 | ||
| Value 0 | | Value 0 | ||
| ? | | ? | ||
|- | |- | ||
| 15 | | 15 | ||
| | | 0x0253 | ||
| Value 0 | | Value 0 | ||
| ? | | ? | ||
|- | |- | ||
| 16 | | 16 | ||
| | | 0x025E | ||
| Value 0 | | Value 0 | ||
| ? | | ? | ||
|- | |- | ||
| 17 | | 17 | ||
| | | 0x02BA | ||
| Value 0x7FFF0000 | | Value 0x7FFF0000 | ||
| ? | | ? | ||
|} | |} | ||
===== | ===== Command 0x0200 ===== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Command Index | ! Command Index | ||
| Line 104: | Line 104: | ||
|- | |- | ||
| 0 | | 0 | ||
| | | 0x0200 | ||
| | | | ||
| This sets the addresses for the GL arrays. | | This sets the addresses for the GL arrays. | ||
|- | |- | ||
| 1 | | 1 | ||
| | | 0x02BB | ||
| | | | ||
| ? | | ? | ||
|- | |- | ||
| 2 | | 2 | ||
| | | 0x0232 | ||
| | | | ||
| Unknown, this command is used multiple times for specifying each parameter-buffer entry. | | Unknown, this command is used multiple times for specifying each parameter-buffer entry. | ||
|} | |} | ||
=== GL mode values for | === GL mode values for command 0x025E === | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Value | ! Value | ||
| Line 140: | Line 140: | ||
|} | |} | ||
=== Parameter value format for | === Parameter value format for command 0x0227 === | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Bit | ! Bit | ||
| Line 146: | Line 146: | ||
|- | |- | ||
| 30-0 | | 30-0 | ||
| Indices array address, relative to base set with | | Indices array address, relative to base set with command 0x0200. | ||
|- | |- | ||
| 31 | | 31 | ||
| Line 152: | Line 152: | ||
|} | |} | ||
=== Parameter structure for | === Parameter structure for command 0x0200 === | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Index Word | ! Index Word | ||
| Line 164: | Line 164: | ||
|- | |- | ||
| 0x2 | | 0x2 | ||
| Value is: <nowiki>(0xF0000000 + (val<<28)) | ((attrib_mask & 0xFFF)<<16)</nowiki>, where val is the total 4-bit value entries for the | | Value is: <nowiki>(0xF0000000 + (val<<28)) | ((attrib_mask & 0xFFF)<<16)</nowiki>, where val is the total 4-bit value entries for the command 0x801F02BB parameter buffer.(Normally val is 8); attrib_mask is usually (0xFFF<<totalentries) | ||
|- | |- | ||
| 0x3-0x26 | | 0x3-0x26 | ||
| Line 210: | Line 210: | ||
Size is 1-4. Using GL_FLOAT with a texture coordinates array causes the GPU to hang? | Size is 1-4. Using GL_FLOAT with a texture coordinates array causes the GPU to hang? | ||
=== Parameter structure for | === Parameter structure for command 0x02BB === | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Index Word | ! Index Word | ||
| Line 219: | Line 219: | ||
|} | |} | ||
=== Parameter structure for | === Parameter structure for command 0x0232 === | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Index Word | ! Index Word | ||
| Line 225: | Line 225: | ||
|- | |- | ||
| 0 | | 0 | ||
| Entry index + total | | Entry index + total command 0x0200 parameter-buffer entries. | ||
|- | |- | ||
| 1 | | 1 | ||
| Line 237: | Line 237: | ||
|} | |} | ||
Each parameter buffer for | Each parameter buffer for command 0x0232 is an entry loaded from an array. | ||
4 float24 values ? | 4 float24 values ? | ||