Modern LCD screens are different than the old fuzzy CRT screens that games were originally played on. LCDs are too sharp, and the original graphics relied on the fuzzy quality of CRTs screens to really sell the graphics.
In this article we help you get the full retro experience with Retropie, everyone’s favourite Raspberry Pi game emulation workstation, with the careful application of the built-in shaders.
Embrace the Fuzz
It’s true, LCD monitors are way too clean for retro gaming. Early in the history of video gaming, the screens we played on were CRTs (Cathode Ray Tubes), big envelopes of glass with a phosphor screen inside, on which photons were fired and steered by giant magnets. The pixels were tiny glowing dots, and the game makers worked WITH the limitations of the display rather than against them. The fuzz covered a multitude of sins, so to speak, so you could get away with a lot if the display wasn’t pin sharp.
But now, of course, we have LCD displays. Suddenly the graphics don’t look quite so slick and detailed.
Playing games on an LCD is great, no point denying it, but it lacks a certain something. Fortunately the makers of game emulations are aware of this and have programmed in some ways to mitigate this lack of oold rubbish displays. Built-in shaders will fuzz the screen up in real time in a variety of interesting ways, provided you know where they are and activate them.
Retroarch is the underlying emulation subsystem of Retropie, but certain other emulators in the system use their own shaders. We’ll also look at Retroarch and the most notable exception which is the Commodore 64. Other emulations have their own settings, but once you know what to look for you can do this for yourself.
In Retropie the shaders menu is hidden away in the Retroarch menu, accessible through the game pad while inside a game. Press the “Select” and “X” keys on the pad (or whatever you have those mapped to on your controller), and enter the Retroarch menu system.
Once in the Retroarch Menu, the controls are the same: click on an item with “A,” and back up with “B.” You will see a lot of configuration options, but luckily we can ignore all of those.
Go straight to select “Quick Menu -> Shader Options -> Load Shader Preset”.
All the individual shaders are in the folder marked Shaders, but the presets are composed of combinations of the individual shaders. To choose a shader, select it in the menu, and then you will be returned to Shader Options, and the shader will be applied.
Press “B” to go to the Quick Menu, press down on the “D” pad to get back to the top of the screen and press “Resume Content” to get back to your game.
You have to experiment, but some shaders add scanlines (mimicking the way CRTs scan the picture onto the screen).
Others add arrays of dots to the picture.
Not all of them are designed to mess the image up. Some are actually designed to make the pixelated graphics work better on LCD screens. Some of them make it sharper and brighter by smoothing the aliased (pixel) edges of the bitmap graphics into almost vector-like lines.
Others add “barrel distortion” mimicking the curvature of the retro TV CRT screens.
Other emulators in the system either don’t use Retroarch or don’t have shaders. Those that do work differently: the C64 emulator VICE for example.
You can get to the emulator menu by pressing the A key on the gamepad.
Got to “Video Settings -> Render Filter.”
Choose “CRT Emulation.” Back out with the “B” button.
Now you can select the CRT Emulation controls to tweak the settings to your liking. This is enormously satisfying to play with, almost a game in itself. You can adjust Scanline shade (make them darker or lighter), Blur (obviously the softness), Oddline phase and oddline offset (which are very hard to describe, but it messes with the colour offset in the way that CRTs do).
Once you’re satisfied with the settings, press the A button to back out of the menus back to the game.
As you can see, there are many ways to ramp up your nostalgia levels for retro games. If you have any questions about Retropie or its shaders, please let us know in the comments below,