Graphics Engine
Jump to navigation
Jump to search
Graphics Engine (GE) is the nomenclature for PSP's Graphics Processing Unit (GPU).
PSP Graphics Core 1
Specifications
- 1–166 MHz (set at 111 MHz by default) @ 1.2 V
- 256-bit Bus at 5.3 Gbit/s
- 3D Curved Surface + 3D Polygon
- Compressed Texture
- Hardware Clipping, Morphing, Bone(8)
- Hardware Tessellator
- Bezier, B-Spline(NURBS)
- ex 4x4, 16x16, 64x64 sub-division
PSP Graphics Core 2
Specifications
- 'Rendering Engine' + 'Surface Engine'
- 256bit Bus, 1-166 MHz @ 1.2V
- VRAM :2MB(eDRAM)
- Bus Bandwidth :5.3GB/sec
- Pixel Fill Rate :664 M pixels/sec
- max 33 M polygon /sec(T&L)
- 24bit Full Color:RGBA
GE Commands List
GE Commands seems to work in similar way as PS3 "Methods", but with simpler encoding. Single command is 32 bits wide and split into upper 8 bits of Command ID and 24 bits of data (not always full 24 bits are used). PSP hardware manuals refer to command ID as "address" which imply this are actual GE hardware registers. Non listed commands are unknown, and their behavior is not defined.
Command | Address | Description |
---|---|---|
CMD_NOP | 00h | No operation |
CMD_VADR | 01h | Set vertex data starting address |
CMD_IADR | 02h | Set index data starting address |
CMD_PRIM | 04h | Draw primitive |
CMD_BEZIER | 05h | Draw Bezier surface |
CMD_SPLINE | 06h | Draw spline surface |
CMD_BBOX | 07h | Set bounding box |
CMD_JUMP | 08h | Jump |
CMD_BJUMP | 09h | Conditional jump (jump if BBOX is outside of drawing region) |
CMD_CALL | 0Ah | List call |
CMD_RET | 0Bh | List return |
CMD_END | 0Ch | End reading |
CMD_SIGNAL | 0Eh | Signal interrupt |
CMD_FINISH | 0Fh | Finish drawing |
CMD_BASE | 10h | Set address base, used as upper 8 bits for JUMP, BJUMP, CALL, VADR, and IADR |
CMD_VTYPE | 12h | Set vertex type |
CMD_OFFSET | 13h | Set offset address |
CMD_ORIGIN | 14h | Set origin address (set OFFSET to address where this command is executed) |
CMD_REGION1 | 15h | Set drawing region |
CMD_REGION2 | 16h | |
CMD_LTE | 17h | Lighting enable |
CMD_LE0 | 18h | Light 0 enable |
CMD_LE1 | 19h | Light 1 enable |
CMD_LE2 | 1Ah | Light 2 enable |
CMD_LE3 | 1Bh | Light 3 enable |
CMD_CLE | 1Ch | Clipping enable |
CMD_BCE | 1Dh | Culling enable |
CMD_TME | 1Eh | Texture enable |
CMD_FGE | 1Fh | Fog enable |
CMD_DTE | 20h | Dither enable |
CMD_ABE | 21h | Alpha blending enable |
CMD_ATE | 22h | Alpha test enable |
CMD_ZTE | 23h | Depth test enable |
CMD_STE | 24h | Stencil test enable |
CMD_AAE | 25h | Antialiasing enable |
CMD_PCE | 26h | Patch culling enable |
CMD_CTE | 27h | Color test enable |
CMD_LOE | 28h | Logical operation enable |
CMD_BONEN | 2Ah | Set bone matrix number |
CMD_BONED | 2Bh | Set bone matrix data |
CMD_WEIGHT0 | 2Ch | Set vertex weight |
CMD_WEIGHT1 | 2Dh | Set vertex weight |
CMD_WEIGHT2 | 2Eh | Set vertex weight |
CMD_WEIGHT3 | 2Fh | Set vertex weight |
CMD_WEIGHT4 | 30h | Set vertex weight |
CMD_WEIGHT5 | 31h | Set vertex weight |
CMD_WEIGHT6 | 32h | Set vertex weight |
CMD_WEIGHT7 | 33h | Set vertex weight |
CMD_DIVIDE | 36h | Set patch division count |
CMD_PPM | 37h | Set patch primitive |
CMD_PFACE | 38h | Patch Face |
CMD_WORLDN | 3Ah | Set world matrix number |
CMD_WORLDD | 3Bh | Set world matrix data |
CMD_VIEWN | 3Ch | Set view matrix number |
CMD_VIEWD | 3Dh | Set view matrix data |
CMD_PROJN | 3Eh | Set perspective matrix number |
CMD_PROJD | 3Fh | Set perspective matrix data |
CMD_TGENN | 40h | Set texture generation matrix number |
CMD_TGEND | 41h | Set texture generation matrix data |
CMD_SX | 42h | Set viewport |
CMD_SY | 43h | Set viewport |
CMD_SZ | 44h | Set viewport |
CMD_TX | 45h | Set viewport |
CMD_TY | 46h | Set viewport |
CMD_TZ | 47h | Set viewport |
CMD_SU | 48h | Set texture scale |
CMD_SV | 49h | Set texture scale |
CMD_TU | 4Ah | Set texture offset |
CMD_TV | 4Bh | Set texture offset |
CMD_OFFSETX | 4Ch | Set screen offset |
CMD_OFFSETY | 4Dh | Set screen offset |
CMD_SHADE | 50h | Set shading mode |
CMD_NREV | 51h | Normal reverse |
CMD_MATERIAL | 53h | Material |
CMD_MEC | 54h | Set model color |
CMD_MAC | 55h | Set model color |
CMD_MDC | 56h | Set model color |
CMD_MSC | 57h | Set model color |
CMD_MAA | 58h | Set model color alpha |
CMD_MK | 5Bh | Set model specular |
CMD_AC | 5Ch | Set ambient light color |
CMD_AA | 5Dh | Set ambient light color alpha |
CMD_LMODE | 5Eh | Set light mode |
CMD_LTYPE0 | 5Fh | Set light type for light source 0 |
CMD_LTYPE1 | 60h | Set light type for light source 1 |
CMD_LTYPE2 | 61h | Set light type for light source 2 |
CMD_LTYPE3 | 62h | Set light type for light source 3 |
CMD_LX0 | 63h | Set light vector X for light source 0 |
CMD_LY0 | 64h | Set light vector Y for light source 0 |
CMD_LZ0 | 65h | Set light vector Z for light source 0 |
CMD_LX1 | 66h | Set light vector X for light source 1 |
CMD_LY1 | 67h | Set light vector Y for light source 1 |
CMD_LZ1 | 68h | Set light vector Z for light source 1 |
CMD_LX2 | 69h | Set light vector X for light source 2 |
CMD_LY2 | 6Ah | Set light vector Y for light source 2 |
CMD_LZ2 | 6Bh | Set light vector Z for light source 2 |
CMD_LX3 | 6Ch | Set light vector X for light source 3 |
CMD_LY3 | 6Dh | Set light vector Y for light source 3 |
CMD_LZ3 | 6Eh | Set light vector Z for light source 3 |
CMD_LDX0 | 6Fh | Set light direction X for light source 0 |
CMD_LDY0 | 70h | Set light direction Y for light source 0 |
CMD_LDZ0 | 71h | Set light direction Z for light source 0 |
CMD_LDX1 | 72h | Set light direction X for light source 1 |
CMD_LDY1 | 73h | Set light direction Y for light source 1 |
CMD_LDZ1 | 74h | Set light direction Z for light source 1 |
CMD_LDX2 | 75h | Set light direction X for light source 2 |
CMD_LDY2 | 76h | Set light direction Y for light source 2 |
CMD_LDZ2 | 77h | Set light direction Z for light source 2 |
CMD_LDX3 | 78h | Set light direction X for light source 3 |
CMD_LDY3 | 79h | Set light direction Y for light source 3 |
CMD_LDZ3 | 7Ah | Set light direction Z for light source 3 |
CMD_LKA0 | 7Bh | Set light distance attenuation factor A for light source 0 |
CMD_LKB0 | 7Ch | Set light distance attenuation factor B for light source 0 |
CMD_LKC0 | 7Dh | Set light distance attenuation factor C for light source 0 |
CMD_LKA1 | 7Eh | Set light distance attenuation factor A for light source 1 |
CMD_LKB1 | 7Fh | Set light distance attenuation factor B for light source 1 |
CMD_LKC1 | 80h | Set light distance attenuation factor C for light source 1 |
CMD_LKA2 | 81h | Set light distance attenuation factor A for light source 2 |
CMD_LKB2 | 82h | Set light distance attenuation factor B for light source 2 |
CMD_LKC2 | 83h | Set light distance attenuation factor C for light source 2 |
CMD_LKA3 | 84h | Set light distance attenuation factor A for light source 3 |
CMD_LKB3 | 85h | Set light distance attenuation factor B for light source 3 |
CMD_LKC3 | 86h | Set light distance attenuation factor C for light source 3 |
CMD_LKS0 | 87h | Set light convergence factor for light source 0 |
CMD_LKS1 | 88h | Set light convergence factor for light source 1 |
CMD_LKS2 | 89h | Set light convergence factor for light source 2 |
CMD_LKS3 | 8Ah | Set light convergence factor for light source 3 |
CMD_LKO0 | 8Bh | Set light cut-off dot product coefficient for light source 0 |
CMD_LKO1 | 8Ch | Set light cut-off dot product coefficient for light source 1 |
CMD_LKO2 | 8Dh | Set light cut-off dot product coefficient for light source 2 |
CMD_LKO3 | 8Eh | Set light cut-off dot product coefficient for light source 3 |
CMD_LAC0 | 8Fh | Set light color ambient for light source 0 |
CMD_LDC0 | 90h | Set light color diffuse for light source 0 |
CMD_LSC0 | 91h | Set light color specular for light source 0 |
CMD_LAC1 | 92h | Set light color ambient for light source 1 |
CMD_LDC1 | 93h | Set light color diffuse for light source 1 |
CMD_LSC1 | 94h | Set light color specular for light source 1 |
CMD_LAC2 | 95h | Set light color ambient for light source 2 |
CMD_LDC2 | 96h | Set light color diffuse for light source 2 |
CMD_LSC2 | 97h | Set light color specular for light source 2 |
CMD_LAC3 | 98h | Set light color ambient for light source 3 |
CMD_LDC3 | 99h | Set light color diffuse for light source 3 |
CMD_LSC3 | 9Ah | Set light color specular for light source 3 |
CMD_CULL | 9Bh | Culling surface |
CMD_FBP | 9Ch | Set frame buffer base pointer |
CMD_FBW | 9Dh | Set frame buffer base width (bits 16-23 used as upper 8 bits for FBP) |
CMD_ZBP | 9Eh | Set depth buffer base pointer |
CMD_ZBW | 9Fh | Set depth buffer base width (bits 16-23 used as upper 8 bits for ZBP) |
CMD_TBP0 | A0h | Set texture buffer 0 base pointer |
CMD_TBP1 | A1h | Set texture buffer 1 base pointer |
CMD_TBP2 | A2h | Set texture buffer 2 base pointer |
CMD_TBP3 | A3h | Set texture buffer 3 base pointer |
CMD_TBP4 | A4h | Set texture buffer 4 base pointer |
CMD_TBP5 | A5h | Set texture buffer 5 base pointer |
CMD_TBP6 | A6h | Set texture buffer 6 base pointer |
CMD_TBP7 | A7h | Set texture buffer 7 base pointer |
CMD_TBW0 | A8h | Set texture buffer 0 width (bits 16-23 used as upper 8 bits for TBP) |
CMD_TBW1 | A9h | Set texture buffer 1 width (bits 16-23 used as upper 8 bits for TBP) |
CMD_TBW2 | AAh | Set texture buffer 2 width (bits 16-23 used as upper 8 bits for TBP) |
CMD_TBW3 | ABh | Set texture buffer 3 width (bits 16-23 used as upper 8 bits for TBP) |
CMD_TBW4 | ACh | Set texture buffer 4 width (bits 16-23 used as upper 8 bits for TBP) |
CMD_TBW5 | ADh | Set texture buffer 5 width (bits 16-23 used as upper 8 bits for TBP) |
CMD_TBW6 | AEh | Set texture buffer 6 width (bits 16-23 used as upper 8 bits for TBP) |
CMD_TBW7 | AFh | Set texture buffer 7 width (bits 16-23 used as upper 8 bits for TBP) |
CMD_CBP | B0h | Set CLUT buffer base pointer |
CMD_CBW | B1h | Set upper 8 bits of CLUT buffer base pointer |
CMD_XBP1 | B2h | Set transfer buffer pointer (source) |
CMD_XBW1 | B3h | Set transfer buffer width (source) (bits 16-23 used as upper 8 bits for XBP) |
CMD_XBP2 | B4h | Set transfer buffer (destination) |
CMD_XBW2 | B5h | Set transfer buffer width (destination) (bits 16-23 used as upper 8 bits for XBP) |
CMD_TSIZE0 | B8h | Set texture size for texture buffer 0 |
CMD_TSIZE1 | B9h | Set texture size for texture buffer 1 |
CMD_TSIZE2 | BAh | Set texture size for texture buffer 2 |
CMD_TSIZE3 | BBh | Set texture size for texture buffer 3 |
CMD_TSIZE4 | BCh | Set texture size for texture buffer 4 |
CMD_TSIZE5 | BDh | Set texture size for texture buffer 5 |
CMD_TSIZE6 | BEh | Set texture size for texture buffer 6 |
CMD_TSIZE7 | BFh | Set texture size for texture buffer 7 |
CMD_TMAP | C0h | Set texture map mode |
CMD_TSHADE | C1h | Set shade mapping |
CMD_TMODE | C2h | Set texture mode |
CMD_TPF | C3h | Set texture pixel format |
CMD_CLOAD | C4h | CLUT load |
CMD_CLUT | C5h | Set CLUT |
CMD_TFILTER | C6h | Set texture filter |
CMD_TWRAP | C7h | Set texture wrap mode |
CMD_TLEVEL | C8h | Set texture level mode |
CMD_TFUNC | C9h | Set texture function |
CMD_TEC | CAh | Set texture environment color |
CMD_TFLUSH | CBh | Texture flush |
CMD_TSYNC | CCh | Texture synchronization |
CMD_FOG1 | CDh | Set fog parameter 1 |
CMD_FOG2 | CEh | Set fog parameter 2 |
CMD_FC | CFh | Set fog color |
CMD_TSLOPE | D0h | Set texture slope |
CMD_FPF | D2h | Set frame pixel format |
CMD_CMODE | D3h | Set clear mode |
CMD_SCISSOR1 | D4h | Set scissoring area (upper left) |
CMD_SCISSOR2 | D5h | Set scissoring area (lower right) |
CMD_MINZ | D6h | Set minimal depth range |
CMD_MAXZ | D7h | Set maximal depth range |
CMD_CTEST | D8h | Set color test parameter |
CMD_CREF | D9h | Set color test reference |
CMD_CMSK | DAh | Set color test mask |
CMD_ATEST | DBh | Set alpha test parameters |
CMD_STEST | DCh | Set stencil test parameters |
CMD_SOP | DDh | Set stencil operation |
CMD_ZTEST | DEh | Set depth test parameter |
CMD_BLEND | DFh | Set alpha blending parameters |
CMD_FIXA | E0h | Set fixed color A |
CMD_FIXB | E1h | Set fixed color B |
CMD_DITH1 | E2h | Set dither coefficients for matrix elements 00-03 |
CMD_DITH2 | E3h | Set dither coefficients for matrix elements 04-07 |
CMD_DITH3 | E4h | Set dither coefficients for matrix elements 08-11 |
CMD_DITH4 | E5h | Set dither coefficients for matrix elements 12-15 |
CMD_LOP | E6h | Set logical operation parameter |
CMD_ZMSK | E7h | Depth mask |
CMD_PMSK1 | E8h | Set plane mask |
CMD_PMSK2 | E9h | Set plane mask alpha |
CMD_XSTART | EAh | Inter-buffer transfer start |
CMD_XPOS1 | EBh | Set source buffer transfer position |
CMD_XPOS2 | ECh | Set destination buffer transfer position |
CMD_XSIZE | EEh | Set transfer size |
Useful Documentation
libGU provides an interface to the 2D and 3D hardware acceleration features found in the PSP’s Graphic Engine