Reality Display Processor/Commands

Revision as of 21:14, 4 October 2023 by Lidnariq (talk | contribs) (rectangles are multiword...)

0x24 - Texture_Rectangle

0x25 - Texture_Rectangle_Flip


Texture_Rectangle 0x24 and Texture_Rectangle_Flip 0x25
Word 0 63:48 command[5:0] = 0x24 or 0x25 x.lo[11:4]
47:32 x.lo[3:0] y.lo[11:0]
31:16 tile[2:0] x.hi[11:4]
15:0 x.hi[3:0] y.hi[11:0]
Word 1 63:48 s.i[15:0]
47:32 t.i[15:0]
31:16 s.f[15:0]
15:0 t.f[15:0]
Word 0
bit 61:56 command[5:0]: 0x24 (Texture_Rectangle) or 0x25 (Texture_Rectangle_Flip)
bit 55:44 x.lo[11:0]: -
bit 43:32 y.lo[11:0]: -
bit 26:24 tile[2:0]: -
bit 23:12 x.hi[11:0]: -
bit 11:0 y.hi[11:0]: -
Word 1
bit 63:48 s.i[15:0]: -
bit 47:32 t.i[15:0]: -
bit 31:16 s.f[15:0]: -
bit 15:0 t.f[15:0]: -

0x26 - Sync_Load


Sync_Load 0x26
63:48 command = 0x26[5:0]
47:32
31:16
15:0
bit 61:56 command[5:0]: 0x26

0x27 - Sync_Pipe


Sync_Pipe 0x27
63:48 command = 0x27[5:0]
47:32
31:16
15:0
bit 61:56 command[5:0]: 0x27

0x28 - Sync_Tile


Sync_Tile 0x28
63:48 command = 0x28[5:0]
47:32
31:16
15:0
bit 61:56 command[5:0]: 0x28

0x29 - Sync_Full


Sync_Full 0x29
63:48 command = 0x29[5:0]
47:32
31:16
15:0
bit 61:56 command[5:0]: 0x29

0x2a - Set_Key_GB


Set_Key_GB 0x2a
63:48 command = 0x2a[5:0] key.g.width[11:4]
47:32 key.g.width[3:0] key.b.width[11:0]
31:16 key.g.center[7:0] key.g.scale[7:0]
15:0 key.b.center[7:0] key.b.scale[7:0]
bit 61:56 command[5:0]: 0x2a
bit 55:44 key.g.width[11:0]: -
bit 43:32 key.b.width[11:0]: -
bit 31:24 key.g.center[7:0]: -
bit 23:16 key.g.scale[7:0]: -
bit 15:8 key.b.center[7:0]: -
bit 7:0 key.b.scale[7:0]: -

0x2b - Set_Key_R


Set_Key_R 0x2b
63:48 command = 0x2b[5:0]
47:32
31:16 key.r.width[11:0]
15:0 key.r.center[7:0] key.r.scale[7:0]
bit 61:56 command[5:0]: 0x2b
bit 27:16 key.r.width[11:0]: -
bit 15:8 key.r.center[7:0]: -
bit 7:0 key.r.scale[7:0]: -

0x2c - Set_Convert


Set_Convert 0x2c
63:48 command = 0x2c[5:0] convert.k[0][8:3]
47:32 convert.k[0][2:0] convert.k[1][8:0] convert.k[2][8:5]
31:16 convert.k[2][4:0] convert.k[3][8:0] convert.k[4][8:7]
15:0 convert.k[4][6:0] convert.k[5][7:0]
bit 61:56 command[5:0]: 0x2c
bit 53:45 convert.k[0][8:0]: -
bit 44:36 convert.k[1][8:0]: -
bit 35:27 convert.k[2][8:0]: -
bit 26:18 convert.k[3][8:0]: -
bit 17:9 convert.k[4][8:0]: -
bit 7:0 convert.k[5][7:0]: -

0x2d - Set_Scissor


Set_Scissor 0x2d
63:48 command = 0x2d[5:0] scissor.x.hi[11:4]
47:32 scissor.x.hi[3:0] scissor.y.hi[11:0]
31:16 scissor.field scissor.odd scissor.x.lo[11:4]
15:0 scissor.x.lo[3:0] scissor.y.lo[11:0]
bit 61:56 command[5:0]: 0x2d
bit 55:44 scissor.x.hi[11:0]: -
bit 43:32 scissor.y.hi[11:0]: -
bit 25 scissor.field: ?
bit 24 scissor.odd: ?
bit 23:12 scissor.x.lo[11:0]: -
bit 11:0 scissor.y.lo[11:0]: -

0x2e - Set_Primitive_Depth


Set_Primitive_Depth 0x2e
63:48 command = 0x2e[5:0]
47:32
31:16 primitiveDepth.z[15:0]
15:0 primitiveDepth.deltaZ[15:0]
bit 61:56 command[5:0]: 0x2e
bit 31:16 primitiveDepth.z[15:0]: -
bit 15:0 primitiveDepth.deltaZ[15:0]: -

0x2f - Set_Other_Modes


Set_Other_Modes 0x2f
63:48 command = 0x2f[5:0] other.atomicPrimitive other.reserved1 other.cycleType[1:0] other.perspective other.detailTexture other.sharpenTexture other.lodTexture
47:32 other.tlut other.tlutType other.sampleType other.midTexel other.bilerp[0] other.bilerp[1] other.convertOne other.colorKey other.colorDitherMode[1:0] other.alphaDitherMode[1:0] other.reserved2[3:0]
31:16 other.blend1a[0][1:0] other.blend1a[1][1:0] other.blend1b[0][1:0] other.blend1b[1][1:0] other.blend2a[0][1:0] other.blend2a[1][1:0] other.blend2b[0][1:0] other.blend2b[1][1:0]
15:0 other.reserved3 other.forceBlend other.alphaCoverage other.coverageXalpha other.zMode[1:0] other.coverageMode[1:0] other.colorOnCoverage other.imageRead other.zUpdate other.zCompare other.antialias other.zSource other.ditherAlpha other.alphaCompare
bit 61:56 command[5:0]: 0x2f
bit 55 other.atomicPrimitive: ?
bit 54 other.reserved1: ?
bit 53:52 other.cycleType[1:0]: -
bit 51 other.perspective: ?
bit 50 other.detailTexture: ?
bit 49 other.sharpenTexture: ?
bit 48 other.lodTexture: ?
bit 47 other.tlut: ?
bit 46 other.tlutType: ?
bit 45 other.sampleType: ?
bit 44 other.midTexel: ?
bit 43 other.bilerp[0]: ?
bit 42 other.bilerp[1]: ?
bit 41 other.convertOne: ?
bit 40 other.colorKey: ?
bit 39:38 other.colorDitherMode[1:0]: -
bit 37:36 other.alphaDitherMode[1:0]: -
bit 35:32 other.reserved2[3:0]: -
bit 31:30 other.blend1a[0][1:0]: -
bit 29:28 other.blend1a[1][1:0]: -
bit 27:26 other.blend1b[0][1:0]: -
bit 25:24 other.blend1b[1][1:0]: -
bit 23:22 other.blend2a[0][1:0]: -
bit 21:20 other.blend2a[1][1:0]: -
bit 19:18 other.blend2b[0][1:0]: -
bit 17:16 other.blend2b[1][1:0]: -
bit 15 other.reserved3: ?
bit 14 other.forceBlend: ?
bit 13 other.alphaCoverage: ?
bit 12 other.coverageXalpha: ?
bit 11:10 other.zMode[1:0]: -
bit 9:8 other.coverageMode[1:0]: -
bit 7 other.colorOnCoverage: ?
bit 6 other.imageRead: ?
bit 5 other.zUpdate: ?
bit 4 other.zCompare: ?
bit 3 other.antialias: ?
bit 2 other.zSource: ?
bit 1 other.ditherAlpha: ?
bit 0 other.alphaCompare: ?

0x30 - Load_Texture_LUT


Load_Texture_LUT 0x30
63:48 command = 0x30[5:0] tlut.s.lo[11:4]
47:32 tlut.s.lo[3:0] tlut.t.lo[11:0]
31:16 tlut.index[2:0] tlut.s.hi[11:4]
15:0 tlut.s.hi[3:0] tlut.t.hi[11:0]
bit 61:56 command[5:0]: 0x30
bit 55:44 tlut.s.lo[11:0]: -
bit 43:32 tlut.t.lo[11:0]: -
bit 26:24 tlut.index[2:0]: -
bit 23:12 tlut.s.hi[11:0]: -
bit 11:0 tlut.t.hi[11:0]: -

0x31 - Invalid_31


Invalid_31 0x31
63:48 command = 0x31[5:0]
47:32
31:16
15:0
bit 61:56 command[5:0]: 0x31

0x32 - Set_Tile_Size


Set_Tile_Size 0x32
63:48 command = 0x32[5:0] tileSize.s.lo[11:4]
47:32 tileSize.s.lo[3:0] tileSize.t.lo[11:0]
31:16 tileSize.index[2:0] tileSize.s.hi[11:4]
15:0 tileSize.s.hi[3:0] tileSize.t.hi[11:0]
bit 61:56 command[5:0]: 0x32
bit 55:44 tileSize.s.lo[11:0]: -
bit 43:32 tileSize.t.lo[11:0]: -
bit 26:24 tileSize.index[2:0]: -
bit 23:12 tileSize.s.hi[11:0]: -
bit 11:0 tileSize.t.hi[11:0]: -

0x33 - Load_Block


Load_Block 0x33
63:48 command = 0x33[5:0] load_.block.s.lo[11:4]
47:32 load_.block.s.lo[3:0] load_.block.t.lo[11:0]
31:16 load_.block.index[2:0] load_.block.s.hi[11:4]
15:0 load_.block.s.hi[3:0] load_.block.t.hi[11:0]
bit 61:56 command[5:0]: 0x33
bit 55:44 load_.block.s.lo[11:0]: -
bit 43:32 load_.block.t.lo[11:0]: -
bit 26:24 load_.block.index[2:0]: -
bit 23:12 load_.block.s.hi[11:0]: -
bit 11:0 load_.block.t.hi[11:0]: -

0x34 - Load_Tile


Load_Tile 0x34
63:48 command = 0x34[5:0] load_.tile.s.lo[11:4]
47:32 load_.tile.s.lo[3:0] load_.tile.t.lo[11:0]
31:16 load_.tile.index[2:0] load_.tile.s.hi[11:4]
15:0 load_.tile.s.hi[3:0] load_.tile.t.hi[11:0]
bit 61:56 command[5:0]: 0x34
bit 55:44 load_.tile.s.lo[11:0]: -
bit 43:32 load_.tile.t.lo[11:0]: -
bit 26:24 load_.tile.index[2:0]: -
bit 23:12 load_.tile.s.hi[11:0]: -
bit 11:0 load_.tile.t.hi[11:0]: -

0x35 - Set_Tile


Set_Tile 0x35
63:48 command = 0x35[5:0] tile.format[2:0] tile.size[1:0] tile.line[8:7]
47:32 tile.line[6:0] tile.address[8:0]
31:16 tile.index[2:0] tile.palette[3:0] tile.t.clamp tile.t.mirror tile.t.mask[3:2]
15:0 tile.t.mask[1:0] tile.t.shift[3:0] tile.s.clamp tile.s.mirror tile.s.mask[3:0] tile.s.shift[3:0]
bit 61:56 command[5:0]: 0x35
bit 55:53 tile.format[2:0]: -
bit 52:51 tile.size[1:0]: -
bit 49:41 tile.line[8:0]: -
bit 40:32 tile.address[8:0]: -
bit 26:24 tile.index[2:0]: -
bit 23:20 tile.palette[3:0]: -
bit 19 tile.t.clamp: ?
bit 18 tile.t.mirror: ?
bit 17:14 tile.t.mask[3:0]: -
bit 13:10 tile.t.shift[3:0]: -
bit 9 tile.s.clamp: ?
bit 8 tile.s.mirror: ?
bit 7:4 tile.s.mask[3:0]: -
bit 3:0 tile.s.shift[3:0]: -

0x36 - Fill_Rectangle


Fill_Rectangle 0x36
63:48 command = 0x36[5:0] fillRectangle_.x.lo[11:4]
47:32 fillRectangle_.x.lo[3:0] fillRectangle_.y.lo[11:0]
31:16 fillRectangle_.x.hi[11:4]
15:0 fillRectangle_.x.hi[3:0] fillRectangle_.y.hi[11:0]
bit 61:56 command[5:0]: 0x36
bit 55:44 fillRectangle_.x.lo[11:0]: -
bit 43:32 fillRectangle_.y.lo[11:0]: -
bit 23:12 fillRectangle_.x.hi[11:0]: -
bit 11:0 fillRectangle_.y.hi[11:0]: -

0x37 - Set_Fill_Color


Set_Fill_Color 0x37
63:48 command = 0x37[5:0]
47:32
31:16 set.fill.color[31:16]
15:0 set.fill.color[15:0]
bit 61:56 command[5:0]: 0x37
bit 31:0 set.fill.color[31:0]: -

0x38 - Set_Fog_Color


Set_Fog_Color 0x38
63:48 command = 0x38[5:0]
47:32
31:16 fog.red[7:0] fog.green[7:0]
15:0 fog.blue[7:0] fog.alpha[7:0]
bit 61:56 command[5:0]: 0x38
bit 31:24 fog.red[7:0]: -
bit 23:16 fog.green[7:0]: -
bit 15:8 fog.blue[7:0]: -
bit 7:0 fog.alpha[7:0]: -

0x39 - Set_Blend_Color


Set_Blend_Color 0x39
63:48 command = 0x39[5:0]
47:32
31:16 blend.red[7:0] blend.green[7:0]
15:0 blend.blue[7:0] blend.alpha[7:0]
bit 61:56 command[5:0]: 0x39
bit 31:24 blend.red[7:0]: -
bit 23:16 blend.green[7:0]: -
bit 15:8 blend.blue[7:0]: -
bit 7:0 blend.alpha[7:0]: -

0x3a - Set_Primitive_Color


Set_Primitive_Color 0x3a
63:48 command = 0x3a[5:0]
47:32 primitive.minimum[3:0] primitive.fraction[7:0]
31:16 primitive.red[7:0] primitive.green[7:0]
15:0 primitive.blue[7:0] primitive.alpha[7:0]
bit 61:56 command[5:0]: 0x3a
bit 43:40 primitive.minimum[3:0]: -
bit 39:32 primitive.fraction[7:0]: -
bit 31:24 primitive.red[7:0]: -
bit 23:16 primitive.green[7:0]: -
bit 15:8 primitive.blue[7:0]: -
bit 7:0 primitive.alpha[7:0]: -

0x3b - Set_Environment_Color


Set_Environment_Color 0x3b
63:48 command = 0x3b[5:0]
47:32
31:16 environment.red[7:0] environment.green[7:0]
15:0 environment.blue[7:0] environment.alpha[7:0]
bit 61:56 command[5:0]: 0x3b
bit 31:24 environment.red[7:0]: -
bit 23:16 environment.green[7:0]: -
bit 15:8 environment.blue[7:0]: -
bit 7:0 environment.alpha[7:0]: -

0x3c - Set_Combine_Mode


Set_Combine_Mode 0x3c
63:48 command = 0x3c[5:0] combine.sba.color[0][3:0] combine.mul.color[0][4:1]
47:32 combine.mul.color[0] combine.sba.alpha[0][2:0] combine.mul.alpha[0][2:0] combine.sba.color[1][3:0] combine.mul.color[1][4:0]
31:16 combine.sbb.color[0][3:0] combine.sbb.color[1][3:0] combine.sba.alpha[1][2:0] combine.mul.alpha[1][2:0] combine.add.color[0][2:1]
15:0 combine.add.color[0] combine.sbb.alpha[0][2:0] combine.add.alpha[0][2:0] combine.add.color[1][2:0] combine.sbb.alpha[1][2:0] combine.add.alpha[1][2:0]
bit 61:56 command[5:0]: 0x3c
bit 55:52 combine.sba.color[0][3:0]: -
bit 51:47 combine.mul.color[0][4:0]: -
bit 46:44 combine.sba.alpha[0][2:0]: -
bit 43:41 combine.mul.alpha[0][2:0]: -
bit 40:37 combine.sba.color[1][3:0]: -
bit 36:32 combine.mul.color[1][4:0]: -
bit 31:28 combine.sbb.color[0][3:0]: -
bit 27:24 combine.sbb.color[1][3:0]: -
bit 23:21 combine.sba.alpha[1][2:0]: -
bit 20:18 combine.mul.alpha[1][2:0]: -
bit 17:15 combine.add.color[0][2:0]: -
bit 14:12 combine.sbb.alpha[0][2:0]: -
bit 11:9 combine.add.alpha[0][2:0]: -
bit 8:6 combine.add.color[1][2:0]: -
bit 5:3 combine.sbb.alpha[1][2:0]: -
bit 2:0 combine.add.alpha[1][2:0]: -

0x3d - Set_Texture_Image


Set_Texture_Image 0x3d
63:48 command = 0x3d[5:0] set.texture.format[2:0] set.texture.size[1:0]
47:32 set.texture.width[9:0]
31:16 set.texture.dramAddress[25:16]
15:0 set.texture.dramAddress[15:0]
bit 61:56 command[5:0]: 0x3d
bit 55:53 set.texture.format[2:0]: -
bit 52:51 set.texture.size[1:0]: -
bit 41:32 set.texture.width[9:0]: -
bit 25:0 set.texture.dramAddress[25:0]: -

0x3e - Set_Mask_Image


Set_Mask_Image 0x3e
63:48 command = 0x3e[5:0]
47:32
31:16 set.mask.dramAddress[25:16]
15:0 set.mask.dramAddress[15:0]
bit 61:56 command[5:0]: 0x3e
bit 25:0 set.mask.dramAddress[25:0]: -

0x3f - Set_Color_Image


Set_Color_Image 0x3f
63:48 command = 0x3f[5:0] set.color.format[2:0] set.color.size[1:0]
47:32 set.color.width[9:0]
31:16 set.color.dramAddress[25:16]
15:0 set.color.dramAddress[15:0]
bit 61:56 command[5:0]: 0x3f
bit 55:53 set.color.format[2:0]: -
bit 52:51 set.color.size[1:0]: -
bit 41:32 set.color.width[9:0]: -
bit 25:0 set.color.dramAddress[25:0]: -