List of recommended shaders for Raspberry Pi / Retropie; how to achieve that CRT look

The following is a list of recommended shaders to use with the Raspberry Pi / Retropie as well as instructions for getting the best results. This is the result of spending way too much time playing with shaders on my Retropie over a period of days. I’ve gotten up close and personal with these shaders on a 24" 1080p Vizio LCD and a 60" Panasonic Plasma. This is for those who want to achieve that “crt look” or just improve the image quality in general without affecting performance.

For all shaders on the Retropie, you should keep your monitor at its native HD resolution, and set Retroarch’s output resolution to 720p, otherwise you will get stuttering and integer scale won’t work right. This can be done by holding down “x” as a game launches from Emulationstation. Otherwise I think you need to go into the config file and edit it manually.

You should also do the following: set aspect ratio to 4:3 or core provided, turn on integer scaling, turn off crop overscan use “nearest neighbor” as the filter for the shader, or leave at “don’t care,” unless noted otherwise.

A note on overscan: If you don’t like overscan, you can adjust for it using your TV’s controls. Often there is a setting called “overscan,” but sometimes it is one of the zoom options. On my 60" Plasma it’s just called overscan, on my 24" Vizio it’s called “Wide” and its under the zoom options. This is superior to crop overscan through Retroarch because it eliminates scaling artifacts on the y axis (with integer scale on), and it hides the top and bottom overscan while preserving the original 4:3 ratio of the graphics. The only difference is that the aspect ratio itself is slightly wider than 4:3, but this is a much better compromise than ruining the image by stretching it vertically. The only system that displayed junk pixels in the overscan area was the NES (to my knowledge), and not even all NES games had junk pixels. Personally, I just leave crop overscan off at all times and if I’m playing an NES game that has junk pixels I use my TV’s zoom or crop option to crop it.

It should also go without saying that properly calibrating your TV or monitor will greatly improve the picture quality. If you haven’t done this, it’s pretty easy to find free software that you can use to do this, or you can sometimes find calibration settings by searching for your model number on CNET.

In general, I think it’s better to use shaders that don’t require bilinear filter, since bilinear filter produces blurring, and kind of defeats the entire purpose of using a shader, which is to correct scaling artifacts and improve the picture quality.

With that out of the way, here are the shaders recommended for use with Raspberry Pi / Retropie:

-CRT-hyllian (from the shader directory, go to directory: /crt/crt-hyllian-glow/. There is another shader called CRT-hyllian in the main directory which will cause slowdown/stutter). This is my personal favorite and the shader that I use will all games/systems. On a 60" Plasma display it’s like the most amazing thing I’ve ever seen. Produces nice, dark scanlines. This is probably the closest you’ll get to a Sony BVM-like display on the Retropie. I found that I needed to turn up the backlight on my TV to compensate for the darkening effect, though. It doesn’t get any better than this on the Retropie, IMO.

-CRT-hyllian lq. This one is slightly blurrier and brighter than the above version. Produces medium-light scanlines.

-CRT-caligari. This is my second favorite, it produces scanlines that are lighter than those in CRT-hyllian but darker than those in CRT-hyllian lq.

-sharp-bilinear-scanlines. You need to set filter to “bilinear” for it to work. Produces very light scanlines. Not included by default, get here (thanks, hunterk!): http://www.mediafire.com/download/gfr4hygmyqwqo4v/sharp-bilinear-scanlines.glsl

-ntsc-pass 4. Need to use bilinear filter to eliminate scaling artifacts. No real advantage that I can see over the above 4, but it looks okay.

-scanline. Need to use bilinear filter to correct scaling artifacts. Produces decent looking scanlines but there’s no real advantage to the other scanline options.

-phosphor. This is interesting, but really just for fun. To get true phosphor emulation you need 4k resolution, which obviously the Retropie is incapable of. To see the phosphors on an actual CRT your eyeball would have to be just inches from the screen. If phosphor emulation is working right, you shouldn’t even be able to really notice it. If you use nearest neighbor, the shader will correct scaling artifacts but the phosphor grid itself will have warping on the x axis. If you use bilinear filter it will correct this, but it will make the picture blurry (and kind of defeats the purpose of the shader).

-phosphor gamma corrected. A lighter version of the above to correct for the darkening effect of the phosphor grid.

-lcd3x. Need to use bilinear filter to correct scaling artifacts with this one. This one is also really just for fun.

I hope this proves useful to somebody. If anyone has any comments or suggestions, let me know!