Dithering is a technique to increase the amount of color and shading that can be done on a system. The effect is achieved by using lines or dots which are then blurred by the video encoders that the system uses. The video encoder converts the RGB signal generated by the console's graphics processor to the YUV color space which most televisions use, which can cause artifacts that lead to blurring of adjacent pixels, particularly when the video quality is downgraded to composite. This has often been used as a cheap way to coax more color from a system's graphics processor than is usually possible. However, since modern PCs don't convert color space at all the signal is untouched and the dithering is far more obvious.
Use in games[]
Genesis relies heavily on dithering. The waterfalls in Sonic the Hedgehog are a classic example. A few SNES games use it as well (eg. Metal Warriors). Certain PS1 games, such as Silent Hill make heavy use of dithering. In that game it is used for shading. Many other PS1 games have a checkerboard.
Dithering is frequently used for transparancy effects in systems that cannot easily do them such as the Sega Saturn. The Saturn port of Castlevania: Symphony of the Night uses dithering for dialogue boxes, whereas the original Playstation version has truly transparant boxes.
Many older computer games used dithering, though unlike with console games, it was not expected for the dithering to be blended into solid colors or proper transparency due to the sharper output of PC monitors and lack of processing of the signal. Of particular note are games for Japanese computers such as the PC-88/98, which often featured heavy use of dithering.
Emulation[]
The intended effects of dithering is often lost in emulation due to the emulators not emulating the system's video output, but rather only the RGB signal the graphics processor generates. The dots or lines appear as they actually are with no blurring.
There are options to remedy this:
- Accept the unblended dithering
- Remove the dithering entirely.
- Requires assets to actually be of a higher color palette. Rendering in 32bit colors in Playstation emulators achieves this.
- Use a blurring or NTSC Composite shader which approximates the blur of the original video encoder
- Use a dithering shader designed to specifically target dithered colors but does not modify the rest of the image.
Shaders[]
https://github.com/libretro/common-shaders/tree/master/dithering/mdapt-4p