GPU Version
There are atleast two different GPU versions, the old v0 one used in early SCPH-100x models, and the new v2 one used in later models. Here are the differences and/or issues I have observed.
Old | New | Note | |
---|---|---|---|
Status after reset | 0x14800000 | 0x14802000 | - |
Modulate | ((color & 0xf8) * (texel << 3)) >> 7 | (color * (texel << 3)) >> 7 | In old GPU, the least significant bits are ignored. |
Drawing area | 9-bit (max 511) vertically | 10-bit (max 1023) vertically | The new GPU seems to support 2MB VRAM. |
GPU info | 8 possible results, version = 0 | 16 possible results, version = 2 | - |
Framebuffer rectangle (0x02) | There is an “interesting” bug when (x_pos & 15) == 15 | - | Bug has been fixed in new GPU. |
VRAM move (0x80) | - | Large moves will make the GPU freeze | I haven't observed any VRAM move freezes on the old GPU while I can repeatedly freeze the new GPU by issuing one or two large VRAM moves. |
Sprite X/Y-flip (mirror) | N/A | Supported | - |
Resolution
The PSX doesn't really have a set of fixed resolutions. Instead the possible resolutions are limited by the PAL/NTSC standards and the five available pixelclock dividers of the PSX. Common resolutions have a width of 256, 320, 368, 384, 512 or 640 pixels and a height of 224, 240, 256, 480 or 512 rasterlines.
It is however possible to create both higher and lower resolutions.