GPU/GL Arrays: Difference between revisions

Smea (talk | contribs)
Neobrain (talk | contribs)
Identify commands by their ID, not by some random header they are used with.
Line 11: Line 11:
|-
|-
| 0
| 0
| 0x00020229
| 0x0229
| u32, val<<8.
| u32, val<<8.
| Unknown, val is 0 or 1.
| Unknown, val is 0 or 1.
|-
|-
| 1-2
| 1-2
| 0x00020253
| 0x0253
| Same as CmdID 0x00020229.
| Same as command 0x0229.
| Unknown
| Unknown
|-
|-
| 3
| 3
| 0x0002025E
| 0x025E
| u32, val<<8.
| u32, val<<8.
| This sets the GL rendering mode.
| This sets the GL rendering mode.
|-
|-
| 4
| 4
| 0x0004025E
| 0x025E
| Value 0
| Value 0
| ?
| ?
|-
|-
| 5
| 5
| 0x000F025F
| 0x025F
| Value 1
| Value 1
| ?
| ?
|-
|-
| 6
| 6
| 0x00010253
| 0x0253
| Value 0
| Value 0
| ?
| ?
|-
|-
| 7
| 7
| 0x000F0227
| 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
| 0x000F0228
| 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
| 0x00010245
| 0x0245
| Value 0
| Value 0
| ?
| ?
|-
|-
| 10
| 10
| 0x000F022F
| 0x022F
| Value 1
| Value 1
| ?
| ?
|-
|-
| 11
| 11
| 0x00010245
| 0x0245
| Value 1
| Value 1
| ?
| ?
|-
|-
| 12
| 12
| 0x000F0231
| 0x0231
| Value 1
| Value 1
| ?
| ?
|-
|-
| 13
| 13
| 0x000F0111
| 0x0111
| Value 1
| Value 1
| ?
| ?
|-
|-
| 14
| 14
| 0x00020229
| 0x0229
| Value 0
| Value 0
| ?
| ?
|-
|-
| 15
| 15
| 0x00020253
| 0x0253
| Value 0
| Value 0
| ?
| ?
|-
|-
| 16
| 16
| 0x0002025E
| 0x025E
| Value 0
| Value 0
| ?
| ?
|-
|-
| 17
| 17
| 0x000C02BA
| 0x02BA
| Value 0x7FFF0000
| Value 0x7FFF0000
| ?
| ?
|}
|}


===== CmdID 0x826F0200 =====
===== Command 0x0200 =====
{| class="wikitable" border="1"
{| class="wikitable" border="1"
!  Command Index
!  Command Index
Line 104: Line 104:
|-
|-
| 0
| 0
| 0x826F0200
| 0x0200
|  
|  
| This sets the addresses for the GL arrays.
| This sets the addresses for the GL arrays.
|-
|-
| 1
| 1
| 0x801F02BB
| 0x02BB
|  
|  
| ?
| ?
|-
|-
| 2
| 2
| 0x803F0232
| 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 CmdID 0x0002025E ===
=== GL mode values for command 0x025E ===
{| class="wikitable" border="1"
{| class="wikitable" border="1"
!  Value
!  Value
Line 140: Line 140:
|}
|}


=== Parameter value format for CmdID 0x000F0227 ===
=== 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 cmd ID 0xF0200.
| Indices array address, relative to base set with command 0x0200.
|-
|-
| 31
| 31
Line 152: Line 152:
|}
|}


=== Parameter structure for CmdID 0x826F0200 ===
=== 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 CmdID 0x801F02BB parameter buffer.(Normally val is 8); attrib_mask is usually (0xFFF<<totalentries)
| 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 CmdID 0x801F02BB ===
=== Parameter structure for command 0x02BB ===
{| class="wikitable" border="1"
{| class="wikitable" border="1"
!  Index Word
!  Index Word
Line 219: Line 219:
|}
|}


=== Parameter structure for CmdID 0x803F0232 ===
=== 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 CmdID 0x826F0200 parameter-buffer entries.
| Entry index + total command 0x0200 parameter-buffer entries.
|-
|-
| 1
| 1
Line 237: Line 237:
|}
|}


Each parameter buffer for CmdID 0x803F0232 is an entry loaded from an array.
Each parameter buffer for command 0x0232 is an entry loaded from an array.
4 float24 values ?
4 float24 values ?