GP0 - Rendering Commands

note

This page is mostly intended as encoding reference - for more information about behaviour consult psx-spx.

Commands have an opcode defined in bits 29..32 of the first packet:

OpcodeNameAlias
0x0Misc
0x1Polygon
0x2Line
0x3Rectangle
0x4VRAM to VRAM blit
0x5CPU to VRAM blitGP0(A0)
0x6VRAM to CPU blitGP0(C0)
0x7Environment

0x00 - Misc

Misc commands have another opcode defined in bits 24..29 of the first packet:

Misc OpcodeNameAlias
0x00NOPGP0(00)
0x01Clear CacheGP0(01)
0x02Quick Rect FillGP0(02)
0x03Unknown*GP0(03)
0x04..0x1ENOP
0x1FInterrupt RequestGP0(1F)

* Takes space in the FIFO, but seems like a NOP otherwise

0x07 - Environment

Environment commands have another opcode defined in bits 24..29 of the first packet:

Environment OpcodeNameAlias
0x00NOPGP0(E0)
0x01Drawing SettingsGP0(E1)
0x02Texture SettingsGP0(E2)
0x03Set Drawing Area Top-LeftGP0(E3)
0x04Set Drawing Area Bottom-RightGP0(E4)
0x05Set Drawing OffsetGP0(E5)
0x06Mask SettingsGP0(E6)
0x07..=0x1FNOPGP0(E7)..=GP0(FF)