This short article is in need of work. You can help Sega Retro by adding to it.
In certain aspects, the Sega Saturn generally has more raw power than the rival PlayStation,^{[1]}^{[2]}^{[3]}^{[4]} but its complex hardware was more difficult to get to grips with.^{[2]}^{[3]}^{[5]}^{[3]}^{[6]} The Saturn has more computational power and faster pixel drawing; the PS1 can only draw pixels through its polygon engine, whereas the Saturn can draw pixels directly with its processors, giving it more programming flexibility.^{[7]}
When both SH-2 and the SCU DSP are used in parallel, the Saturn is capable of computing fixed-point operations faster than the PS1's GTE. The GTE is faster at calculating 3D geometry than each SH-2 and SCU DSP individually, but when these processors are used as a parallel geometry engine, the Saturn calculates 3D geometry faster than the PS1.^{[3]}^{[6]} In addition, the VDP2 has its own internal geometry processing unit for its 3D planes, allowing both SH-2 and the SCU DSP to calculate geometry for the VDP1 polygons.
In terms of polygon rendering fillrate, the PS1's GPU and the Saturn's VDP1 have similar performance. The GPU has a performance advantage for large polygons and flat shading, while the VDP1 has a performance advantage for small polygons and Gouraud shading. The GPU uses multiplicative Gouraud shading,^{[8]} which halves its fillrate,^{[9]} whereas the VDP1 uses additive Gouraud shading,^{[8]} which has less of an impact on fillrate.^{[10]}
The Saturn's VDP2 has a higher rendering fillrate than the PS1's GPU. If the VDP2 is used for drawing textured 3D infinite planes, this significantly reduces the fillrate requirements of the VDP1, maximizing its fillrate for other 3D assets. In comparison, the PS1's GPU needs to use much of its fillrate to render textured planes, with very limited draw distance compared to the VDP2, limiting the PS1's fillrate for other 3D assets.^{[11]} When the VDP1 and VDP2 are used in parallel, the Saturn is capable of a significantly higher fillrate than the PS1.
The VDP1's quad polygons are rendered with forward texture mapping (a form of perspective correction), bilinear approximation (reduces texture warping), and medium polygon accuracy (resulting in seamless polygons), while the VDP2's textured infinite planes are rendered with true perspective correction, whereas the PS1's triangle polygons are rendered with affine texture mapping (which lacks perspective correction, resulting in perspective distortion), linear approximation (resulting in texture warping and polygon jitter), and low polygon accuracy (resulting in seams between polygons).^{[8]}^{[12]} In terms of transparency, the PS1's GPU is more effective than the VDP1, whereas the VDP2 is more effective than the PS1's GPU. In terms of visual effects, the VDP2 is more effective at visual effects such as misting and reflective water effects.^{[2]}
The PS1's straightforward hardware architecture, triangle polygons, and more effective development tools and C language support, made it easier for developers to program 3D graphics. When it came to 2D graphics, on the other hand, the Saturn's combination of a VDP1 sprite framebuffer and VDP2 parallax scrolling backgrounds made it both more powerful and straightforward to program 2D graphics, compared to the PS1 which draws all 2D graphics to a single framebuffer.
The Saturn's VDP1 had smoother and more intense Gouraud shading than the PS1's GPU.^{[2]} The VDP1's additive Gouraud shading displayed significantly more shades, resulting in smoother shading, and had more intense colored lighting,^{[8]} whereas the GPU's multiplicative Gouraud shading displayed much fewer shades, resulting in color banding, but had more intense white light.
In terms of memory, the Saturn has more RAM and VRAM than the PS1. The Saturn's VRAM (SDRAM) is also generally faster, with a higher overall bandwidth and lower latency, than the PS1's VRAM. On the other hand, the PS1's GPU has a small, on-chip texture cache. However, the Saturn's VRAM is equivalent to the PS1's texture cache, as the Saturn's VRAM has low latency, with an access time comaprable to the PS1's texture cache. In comparison, the PS1's VRAM has a latency almost twice as high as, with almost half the access speed of, the Saturn's VRAM. The Saturn's VDP1 and VDP2 are capable of single-cycle VRAM access,Media:ST-TECH.pdf^{[13]}Media:ST-058-R2-060194.pdf^{[14]} whereas the PS1's GPU requires multiple cycles for each VRAM access,^{[15]}^{[16]} making the texture cache necessary to help reduce the effect of the PS1's VRAM latency. Due to the Saturn VRAM's low latency, it functions like a very large texture cache. In addition, the VDP2 is capable of tiled texture compression, further increasing the amount of texture data the VDP2's VRAM can hold, though this only applies to the VDP2.
The comparison above is for the original PS1 hardware, used in the SCPH-1000 to SCPH-3500 models, released from 1994 to 1995. A new PS1 hardware was introduced with the SCPH-5000 model, released for Japan in late 1995. This new hardware was eventually introduced to North America in late 1996 and then the rest of the world in 1997. This was the basis for the hardware used in subsequent PlayStation models.
The new PS1 hardware replaced the VRAM with SGRAM, which was capable of lower latency, allowing faster memory access. The SGRAM's lower latency was only used for faster transparency blending and improved Gouraud shading. The original PS1 hardware's 5-bit Gouraud shading led to color banding, which was eliminated by the new PS1 hardware, which improved it to 8-bit Gouraud shading. This still results in fewer shades than the Saturn's VDP1, which produces 15-bit Gouraud shading. However, the PS1's GPU is capable of full-screen dithering, which could give the illusion of smoother shading on the newer PS1 hardware.
The Saturn's VDP1 was the basis for NVIDIA's first graphics processor, the NV1, which was one of the first 3D graphics accelerators on PC, released in 1995. Like the Saturn, it uses quad polygons and supports forward texture mapping with limited perspective correction, and several Saturn ports are available for it. However, the NV1 has a lower fillrate and rendering performance
The most powerful PC graphics card of 1995 was Yamaha's Tasmania 3D, which was based on triangle polygons. It had a higher fillrate and rendering throughput than the NV1, but less than the Saturn and PlayStation.
System | Sega Saturn (1994) | Sony PlayStation (1994) | Nintendo 64 (1996) | Sega Model 2 (1993) | PC (1995) | ||
---|---|---|---|---|---|---|---|
Geometry processors | 2x Hitachi SH-2 (28.63636 MHz),^{[n 1]} Sega SCU DSP (14.31818 MHz), Yamaha VDP2 (57.27272 MHz) |
Sony GTE (33.8688 MHz)^{[19]} | NEC VR4300 (93.75 MHz), SGI RSP (62.6 MHz)^{[20]} |
6x Fujitsu TGP (16 MHz), Intel i960-KB (25 MHz), Sega chipset (50 MHz) |
Intel Pentium (133 MHz) | ||
Arithmetic | MOPS^{[n 2]} | 110 MOPS^{[n 3]} | 66 MOPS^{[23]} | 190 MOPS^{[n 4]} | 210 MOPS | 44 MOPS^{[n 5]} | |
MACs^{[n 6]} | 57 million MACs/sec^{[n 7]} | 33 million MACs/sec^{[24]} | 50 million MACs/sec^{[n 8]} | 100 million MACs/sec | 22 million MACs/sec^{[n 9]} | ||
16-bit divisions | 5 million divides/sec^{[n 10]} | 4 million divides/sec^{[n 11]} | 14 million divides/sec^{[n 12]} | 30 million divides/sec | 4 million divides/sec^{[n 13]} | ||
Geometry | Transformations | 2,400,000 vertices/sec,^{[n 14]} 1,800,000 polygons/sec^{[n 15]} |
1,900,000 vertices/sec,^{[n 16]} 1,300,000 polygons/sec^{[n 17]} |
2,500,000 vertices/sec,^{[n 18]} 2,000,000 polygons/sec^{[n 19]} |
6,000,000 vertices/sec, 2,000,000 polygons/sec |
1,100,000 vertices/sec,^{[n 20]} 380,000 polygons/sec^{[n 21]} | |
Flat lighting | 800,000 polygons/sec^{[n 22]} | 600,000 polygons/sec^{[n 23]} | 1,400,000 polygons/sec^{[n 24]} | 2,000,000 polygons/sec | 290,000 polygons/sec^{[n 25]} | ||
Gouraud lighting | 700,000 polygons/sec^{[n 26]} | 360,000 polygons/sec^{[n 27]} | 1,000,000 polygons/sec^{[n 28]} | 1,500,000 polygons/sec | 200,000 polygons/sec^{[n 29]} | ||
Rendering processors | Hitachi VDP1 (28.63636 MHz), Yamaha VDP2 (57.27272 MHz) |
Sony GPU (33.8688 MHz)^{[43]} | SGI RDP (62.6 MHz)^{[44]} | Lockheed Martin (50 MHz), Sega chipset (50 MHz) |
NVIDIA NV1 (12.5 MHz)^{[n 30]} |
Yamaha Tasmania 3D (50 MHz)^{[45]} | |
Bitmap framebuffer fillrate |
15-bit color/pixel | 85 MPixels/s^{[n 31]} | 33 MPixels/s^{[43]} | 62 MPixels/s | 110 MPixels/s | 12 MPixels/s | 25 MPixels/s |
8-bit color/pixel | 150 MPixels/s^{[n 32]} | 67 MPixels/s^{[n 33]} | 120 MPixels/s^{[n 34]} | 230 MPixels/s | |||
4-bit color/pixel | 260 MPixels/s^{[n 35]} | 67 MPixels/s^{[n 36]} | 250 MPixels/s^{[n 37]} | 260 MPixels/s | |||
Tile fillrate |
15-bit color/tile | 560 MPixels/s^{[n 38]} | 33 MPixels/s | 120 MPixels/s^{[n 34]} | 110 MPixels/s | ||
8-bit color/tile | 570 MPixels/s^{[n 39]} | 67 MPixels/s^{[n 36]} | 250 MPixels/s^{[n 37]} | 230 MPixels/s | |||
Flat shading |
Fillrate (8-bit color) |
28 MPixels/s (VDP1) | 66 MPixels/s (512×512 polys), 18 MPixels/s (10×10 polys) |
62 MPixels/s (512×512 polys), 40 MPixels/s (10×10 polys)^{[n 40]} |
200 MPixels/s | 12 MPixels/s | 25 MPixels/s (512×512 polys), 18 MPixels/s (10×10 polys) |
Fillrate (15-bit color) |
28 MPixels/s (VDP1) | 33 MPixels/s (512×512 polys), 18 MPixels/s (10×10 polys)^{[47]} |
62 MPixels/s (512×512 polys), 40 MPixels/s (10×10 polys) |
100 MPixels/s | |||
Polygons | 800,000 polygons/s (32-pixel), 500,000 polygons/s (50-pixel)^{[n 41]} |
500,000 polygons/s (32-pixel),^{[n 42]} 360,000 polygons/s (50-pixel)^{[47]} |
900,000 polygons/s (32-pixel), 600,000 polygons/s (64-pixel)^{[n 43]} |
900,000 polygons/s (100-pixel) | 50,000 polygons/s | 290,000 polygons/s | |
Gouraud shading |
Shades | 32,768 shades (15-bit)Media:ST-013-R3-061694.pdf^{[49]} | 32 shades (5-bit)^{[n 44]} | 32,768 shades (15-bit) | 32 shades (5-bit) | 32 shades (5-bit) | 32 shades (5-bit) |
Fillrate (polygons) |
28 MPixels/s (512×512), 16 MPixels/s (10×10)^{[n 45]} |
33 MPixels/s (512×512), 10 MPixels/s (10×10)^{[52]} |
62 MPixels/s (512×512),^{[53]} 40 MPixels/s (10×10) |
31 MPixels/s (512×512), 19 MPixels/s (10×10)^{[n 46]} |
10 MPixels/s | 25 MPixels/s (512×512), 10 MPixels/s (10×10) | |
Polygons | 200,000 polygons/s^{[n 47]} | 200,000 polygons/s^{[52]} | 600,000 polygons/s | 300,000 polygons/s | 50,000 polygons/s | 200,000 polygons/s | |
Texture mapping |
Fillrate (bitmap textures) |
47 MTexels/s (504×255), 14 MTexels/s (10×10)^{[n 48]} |
33 MTexels/s (64×64),^{[n 49]} 10 MTexels/s (10×10)^{[52]} |
60 MTexels/s (128×64),^{[n 50]} 30 MTexels/s (10×10)^{[n 51]} |
100 MTexels/s | 10 MTexels/s | 12 MTexels/s (64×64), 10 MTexels/s (10×10) |
Fillrate (tiled textures) |
500 MTexels/s (VDP2) (2048×2048 to 4096×4096)Media:ST-058-R2-060194.pdf^{[59]} |
33 MTexels/s (256×256)^{[60]} |
62 MTexels/s^{[58]} (128×128 to 1024×256)^{[61]} |
200 MTexels/s | |||
4-bit color | 300,000 polygons/s (32-texel), 200,000 polygons/s (70-texel) |
200,000 polygons/s (50-texel)^{[52]} | 600,000 polygons/s (32-texel),^{[62]} 400,000 polygons/s (70-texel)^{[n 52]} |
900,000 polygons/s (200-texel) | 50,000 polygons/s | 150,000 polygons/s | |
8-bit color | 300,000 polygons/s (32-texel), 200,000 polygons/s (70-texel) |
100,000 polygons/s (50-texel)^{[52]} | 600,000 polygons/s (62-texel), 400,000 polygons/s (70-texel) |
900,000 polygons/s (200-texel) | 50,000 polygons/s | 100,000 polygons/s | |
15-bit color | 200,000 polygons/s (70-texel) | 60,000 polygons/s (50-texel)^{[52]} | 400,000 polygons/s (70-texel) | 900,000 polygons/s (100-texel) | 50,000 polygons/s | 60,000 polygons/s | |
Texture Gouraud shading |
Fillrate (textures) |
19 MTexels/s (504×255), 9 MTexels/s (10×10) |
16 MTexels/s (256×256),^{[n 53]} 7 MTexels/s (10×10)^{[52]} |
60 MTexels/s (128×64), 30 MTexels/s (10×10) |
31 MTexels/s (512×512), 19 MTexels/s (10×10) |
7 MTexels/s | 7 MTexels/s |
Polygons | 140,000 polygons/s (15-bit color) | 140,000 polygons/s (4-bit color), 100,000 polygons/s (8-bit color)^{[52]} |
500,000 polygons/s | 300,000 polygons/s | 50,000 polygons/s | 100,000 polygons/s | |
Sprites | Fillrate (4/8-bit color) |
12 MTexels/s (8×8), 130 MTexels/s (504×255),^{[n 54]} 250 MTexels/s (1024×1024)^{[n 55]} (flat and scaling) |
10 MTexels/s (8×8, scaling), 15 MTexels/s (8×8, flat),^{[9]} 33 MTexels/s (256×256, scaling), 66 MTexels/s (256×256, flat)^{[55]} |
20 MTexels/s (8×8), 62 MTexels/s (1024×256, scaling), 250 MTexels/s (1024×256, flat)^{[46]} |
200 MTexels/s | 10 MTexels/s | 12 MTexels/s |
Fillrate (15-bit color) |
12 MTexels/s (8×8), 47 MTexels/s (504×255),^{[n 56]} 250 MTexels/s (1024×1024) |
10 MTexels/s (8×8),^{[52]} 33 MTexels/s (256×256)^{[63]} |
40 MTexels/s (8×8), 120 MTexels/s (1024×256) |
100 MTexels/s | 10 MTexels/s | 10 MTexels/s | |
Sprites (8-bit color) |
500,000 sprites/sec,^{[n 57]} 16,000 sprites/frame (VDP1) |
240,000 sprites/sec,^{[9]} 4000 sprites/frame^{[64]}^{[65]}^{[57]} |
400,000 sprites/sec,^{[n 58]} 7000 sprites/frame |
900,000 sprites/sec, 15,000 sprites/frame |
50,000 sprites/sec, 1000 sprites/frame |
100,000 sprites/sec, 2000 sprites/frame | |
Sprites (15-bit color) |
500,000 sprites/sec, 16,000 sprites/frame (VDP1) |
160,000 sprites/sec,^{[52]} 2600 sprites/frame | |||||
Graphical planes | 7 planes^{[n 59]} | 1 plane | 1 plane | 5 planes^{[n 60]} | 1 plane | 1 plane | |
2D tilemap planes |
2D planes | 5 planes^{[n 61]} | 1 plane | 1 plane | 5 planes | 1 plane | 1 plane |
Tiles | 4,000,000 tiles/sec,^{[n 62]} 68,000 tiles/frame^{[n 63]} |
240,000 tiles/sec, 4000 tiles/frame |
400,000 tiles/sec, 10,000 tiles/frame |
1,800,000 tiles/sec, 31,000 tiles/frame^{[n 64]} |
50,000 tiles/sec, 1000 tiles/frame |
100,000 tiles/sec, 2000 tiles/frame | |
3D textured planes |
3D planes | 3 planes^{[n 65]} | 1 plane | 1 plane | 1 plane | 1 plane | 1 plane |
Equivalent textured polygons |
1,300,000 polygons/s^{[n 66]} | 200,000 polygons/s | 600,000 polygons/s | 900,000 polygons/s | 50,000 polygons/s | 150,000 polygons/s | |
Display resolution | 704×512 | 640×512^{[67]} | 720×576 | 656×496 | 640×480 | 640×480 | |
Video memory |
Memory | 4–8 MB^{[n 67]} (1 MB framebuffers)^{[n 68]} |
3 MB^{[n 69]} (1 MB framebuffer)^{[n 70]} |
4–8 MB^{[n 71]} | 7–35 MB^{[n 72]} (1 MB framebuffer) |
2–4 MB^{[n 73]} | 2–4 MB^{[n 74]} |
Bandwidth | 440 MB/s^{[n 75]} (220 MB/s framebuffers)^{[n 76]} |
200–260 MB/s^{[n 77]} (60–130 MB/s framebuffer) |
560 MB/s^{[n 78]} | 880 MB/s (400 MB/s framebuffer) |
96 MB/s^{[75]} | 200 MB/s^{[n 79]} | |
Latency | 34 ns (VDP1), 17 ns (VDP2) | 60 ns^{[n 80]}^{[n 81]} | 60 ns^{[n 82]} | 20 ns | 80 ns^{[n 83]} | 60 ns^{[45]} | |
Texture cache |
Memory | 1 MB^{[n 84]} (17 MB compressed)^{[n 85]} | 2 KB | 4 KB | 4.5 MB^{[n 86]} | N/A | |
Bandwidth | 170 MB/s^{[n 87]} (590 MB/s compressed)^{[n 88]} |
130 MB/s^{[63]} | 500 MB/s^{[n 89]} | 400 MB/s | |||
Latency | 34 ns (VDP1), 17 ns (VDP2) | 30 ns^{[n 90]} | 16 ns^{[n 91]} | 20 ns | |||
Compression | 34:1 (tiled)^{[n 85]} | 1:1 (N/A) | 20:1 (JPEG)^{[n 92]} | 1:1 (N/A) | |||
CPU–GPU transmission bus | 114 MB/s^{[n 93]} | 60 MB/s^{[n 94]} | 500 MB/s | 80 MB/s | 60 MB/s | ||
System | Sega Saturn (1994) | PlayStation (1994) | Nintendo 64 (1996) | Sega Model 2 (1993) | PC (1995) |
Hardware comparisons | |
---|---|
SG-1000/SC-3000 (specs) | vs. Famicom | vs. Master System | vs. MSX |
Master System (specs) | vs. NES | vs. Atari 7800 | vs. Mega Drive |
Mega Drive (specs) | vs. 32X | vs. Amiga | vs. Atari Jaguar | vs. Atari ST | vs. Mega-CD | vs. Neo Geo | vs. NES | vs. Saturn | vs. SNES | vs. TurboGrafx-16 |
Game Gear (specs) | vs. Atari Lynx | vs. Game Boy | vs. Master System |
Mega-CD (specs) | vs. 32X | vs. 3DO | vs. Amiga CD32 | vs. Atari Jaguar CD | vs. Neo Geo CD | vs. SNES | vs. Saturn | vs. TurboGrafx-CD |
32X (specs) | vs. 3DO | vs. Atari Jaguar | vs. SNES | vs. Saturn |
Saturn (specs) | vs. Atari Jaguar | vs. Dreamcast | vs. Nintendo 64 | vs. PC-FX | vs. PlayStation | vs. SNES |
Dreamcast (specs) | vs. GameCube | vs. Nintendo 64 | vs. PlayStation | vs. PlayStation 2 | vs. Xbox |