Reality Display Processor/Commands: Difference between revisions

Add an opcode table, use bold formatting (rather than header formatting) for "Word *" in multi-word commands to keep them out of the TOC
(digest "draw triangle" commands)
(Add an opcode table, use bold formatting (rather than header formatting) for "Word *" in multi-word commands to keep them out of the TOC)
Line 1:
 
{| class="wikitable"
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7
|-
| 0x00 || No Operation || No Operation || No Operation || No Operation || No Operation || No Operation || No Operation || No Operation
|-
| 0x08 || Fill Triangle || Fill Triangle (Z) || Fill Triangle (T) || Fill Triangle (TZ) || Fill Triangle (S) || Fill Triangle (SZ) || Fill Triangle (ST) || Fill Triangle (STZ)
|-
| 0x10 || No Operation || No Operation || No Operation || No Operation || No Operation || No Operation || No Operation || No Operation
|-
| 0x18 || No Operation || No Operation || No Operation || No Operation || No Operation || No Operation || No Operation || No Operation
|-
| 0x20 || No Operation || No Operation || No Operation || No Operation || Texture Rectangle || Texture Rectangle Flip || Sync Load || Sync Pipe
|-
| 0x28 || Sync Tile || Sync Full || Set Key GB || Set Key R || Set Convert || Set Scissor || Set Primitive Depth || Set Other Modes
|-
| 0x30 || Load TLUT || No Operation || Set Tile Size || Load Block || Load Tile || Set Tile || Fill Rectangle || Set Fill Color
|-
| 0x38 || Set Fog Color || Set Blend Color || Set Primitive Color || Set Environment Color || Set Combine Mode || Set Texture Image || Set Depth Image || Set Color Image
|}
 
====<span style="display:none;">0x08 through 0x0F - Triangle ====
----
Line 36 ⟶ 57:
| 15:0 || colspan=16| x.md.s.f[15:0]
|}
====='''Word 0====='''
{{#invoke:Register table|definitions
| 61:56 | command | 0x08 through 0x0F depending on features specified
Line 49 ⟶ 70:
| 13:0 | y.hi[13:0] | -
}}
====='''Word 1====='''
{{#invoke:Register table|definitions
| 63:48 | x.lo.c.i[15:0] | -
Line 56 ⟶ 77:
| 15:0 | x.lo.s.f[15:0] | -
}}
====='''Word 2====='''
{{#invoke:Register table|definitions
| 63:48 | x.hi.c.i[15:0] | -
Line 63 ⟶ 84:
| 15:0 | x.hi.s.f[15:0] | -
}}
====='''Word 3====='''
{{#invoke:Register table|definitions
| 63:48 | x.md.c.i[15:0] | -
Line 142 ⟶ 163:
| 15:0 || colspan=16| a.y.f[15:0]
|}
====='''Word 0 ====='''
{{#invoke:Register table|definitions
| 63:48 | r.c.i[15:0] | -
Line 149 ⟶ 170:
| 15:0 | a.c.i[15:0] | -
}}
====='''Word 1 ====='''
{{#invoke:Register table|definitions
| 63:48 | r.x.i[15:0] | -
Line 156 ⟶ 177:
| 15:0 | a.x.i[15:0] | -
}}
====='''Word 2 ====='''
{{#invoke:Register table|definitions
| 63:48 | r.c.f[15:0] | -
Line 163 ⟶ 184:
| 15:0 | a.c.f[15:0] | -
}}
====='''Word 3 ====='''
{{#invoke:Register table|definitions
| 63:48 | r.x.f[15:0] | -
Line 170 ⟶ 191:
| 15:0 | a.x.f[15:0] | -
}}
=====Word 4 ====='''
{{#invoke:Register table|definitions
| 63:48 | r.e.i[15:0] | -
Line 177 ⟶ 198:
| 15:0 | a.e.i[15:0] | -
}}
====='''Word 5 ====='''
{{#invoke:Register table|definitions
| 63:48 | r.y.i[15:0] | -
Line 184 ⟶ 205:
| 15:0 | a.y.i[15:0] | -
}}
====='''Word 6 ====='''
{{#invoke:Register table|definitions
| 63:48 | r.e.f[15:0] | -
Line 191 ⟶ 212:
| 15:0 | a.e.f[15:0] | -
}}
====='''Word 7 ====='''
{{#invoke:Register table|definitions
| 63:48 | r.y.f[15:0] | -
Line 269 ⟶ 290:
| 15:0 || — || — || — || — || — || — || — || — || — || — || — || — || — || — || — || —
|}
===== '''Word 0 ====='''
{{#invoke:Register table|definitions
| 63:48 | s.c.i[15:0] | -
Line 275 ⟶ 296:
| 31:16 | w.c.i[15:0] | -
}}
===== '''Word 1 ====='''
{{#invoke:Register table|definitions
| 63:48 | s.x.i[15:0] | -
Line 281 ⟶ 302:
| 31:16 | w.x.i[15:0] | -
}}
===== '''Word 2 ====='''
{{#invoke:Register table|definitions
| 63:48 | s.c.f[15:0] | -
Line 287 ⟶ 308:
| 31:16 | w.c.f[15:0] | -
}}
===== '''Word 3 ====='''
{{#invoke:Register table|definitions
| 63:48 | s.x.f[15:0] | -
Line 293 ⟶ 314:
| 31:16 | w.x.f[15:0] | -
}}
===== '''Word 4 ====='''
{{#invoke:Register table|definitions
| 63:48 | s.e.i[15:0] | -
Line 299 ⟶ 320:
| 31:16 | w.e.i[15:0] | -
}}
===== '''Word 5 ====='''
{{#invoke:Register table|definitions
| 63:48 | s.y.i[15:0] | -
Line 305 ⟶ 326:
| 31:16 | w.y.i[15:0] | -
}}
===== '''Word 6 ====='''
{{#invoke:Register table|definitions
| 63:48 | s.e.f[15:0] | -
Line 311 ⟶ 332:
| 31:16 | w.e.f[15:0] | -
}}
===== '''Word 7 ====='''
{{#invoke:Register table|definitions
| 63:48 | s.y.f[15:0] | -
Line 340 ⟶ 361:
| 15:0 || colspan=16| y.f[15:0]
|}
===== '''Word 0 ====='''
{{#invoke:Register table|definitions
| 63:48 | d.i[15:0] | -
Line 347 ⟶ 368:
| 15:0 | x.f[15:0] | -
}}
===== '''Word 1 ====='''
{{#invoke:Register table|definitions
| 63:48 | e.i[15:0] | -
Line 377 ⟶ 398:
|}
 
====='''Word 0====='''
{{#invoke:Register table|definitions
| 61:56 | command[5:0] | 0x24 (Texture_Rectangle) or 0x25 (Texture_Rectangle_Flip)
Line 386 ⟶ 407:
| 11:0 | y.hi[11:0] | -
}}
====='''Word 1====='''
{{#invoke:Register table|definitions
| 63:48 | s.i[15:0] | -
56

edits