Hello,
First of all, I don’t know how to code, I’m not a shader creator and I don’t intend to be. However, I’ve been helped a fuckton by either notorious users and strangers regarding RetroArch, so I decided to maybe help someone and share a tiny pack of shader presets that I personally use. I decided to call it the Blight Shader Presets Pack.
The Name
Inspired by “bright”, because I created the presets to output a bright picture, with no need for high backlight values from your monitor or TV.
Inspired by “light”, because I chose lightweight, yet competent, shaders to compose the presets.
“Bright” + “Light” = “Blight”, which is both a silly pun and my personal feeling of not doing a meaningful job. It’s a fitting name for a low-profile pack.
My Motivation and Goal
There are good options and numerous great presets for accuracy-based CRT-like pictures. Naturally, they’re heavy and complex, as their job is not an easy one.
But what if the user just want a quick-and-dirty small improvement over an unshaded game?
What if the user has a weak device or a modest screen, but still want to use some decent CRT shader?
Or what if the user don’t know how to adjust shaders and find their effect too intense? Or perhaps they’re just lazy and don’t bother going further?
Based on those needs, I decided to put together two underappreciated shaders which happen to be very good, while still being lightweight, and preconfiguring their values to output a bright and balanced picture that improves pixel contrast and work for both 240p and 480p content.
There is no concern for high accuracy, but for using some CRT screen behaviors to make the raw image look better.
I hope to achieve sane defaults, providing a pleasant out-of-the-box experience and lifting the burder of configuration from casual or lazy users.
Regardless, the user is encouraged to play with the shaders’ parameters and discover what suit them best.
If you’re an experienced user, you’ll probably find no use for this pack of mine.
What Have I Actually Done
I bundled nine main presets together, mainly (but not exclusively) built using either one of these three shaders: crt-easymode, crt-gdv-mini and crt-nobody. The first two were very slightly modified by me though, in a way they’re almost a carbon copy of their original versions, with just the following changes:
-
crt-easymode became crt-easymode-cutoff-linear: a distinct
brightness boost cutoff
was added, which enables a different quantity for brightness boost when scanline gaps reach their cutoff value and lets the user prevent overbrightness caused by the removal of the gaps. Finally, thelinear filter
variable was enabled in the shader code for better speed. -
crt-gdv-mini became crt-gdv-mini-trim: just a reorganization of the mask options within the shader, removing the more exotic ones (and their respective code and parameters), porting the mask number 11 from crt-gdv-mini-ultra and reordering them all in CGWG, RGB (Lottes) and Grayscale. A similar
brightness boost cutoff
was also added. - crt-nobody is unmodified, although an older and simpler version of it was used, instead of the current one.
A few other shaders were included for auxiliary reasons: ntsc-colors, LUT and ntsc-adaptive-old.
The nine presets are:
1-sharp-color-default: a custom crt-gdv-mini, preconfigured to be clean, bright without washed-out picture or overblooming, sharp and usable in non-integer scales with lower resolution screens (720p to 1080p). It has higher-but-balanced sharpness and crisp pixels, intended as a nod to the quality of the better consumer televisions using their component connection. Defaults to a CGWG aperturelike-mask.
2-sharp-color-composite: same as preset #1, but with composite color correction enabled using LUT and its
grade-composite
texture.
3-sharp-color-ntsc: same as preset #1, but with ntsc color correction enabled using ntsc-colors at half-intensity.
4-smooth-color-default: a custom crt-easymode, preconfigured to be clean, bright without washed-out picture or overblooming, smooth and usable in non-integer scales with lower resolution screens (720p to 1080p). It has lower sharpness and softer pixels, intended as a nod to the quality of average consumer televisions using their composite connection. Defaults to an RGB aperturelike-mask.
5-smooth-color-composite: same as preset #4, but with composite color correction enabled using LUT and its
grade-composite
texture.
6-smooth-color-ntsc: same as preset #4, but with ntsc color correction enabled using ntsc-colors at half-intensity.
7-handheld: a custom crt-gdv-mini, for usage with handheld games, preconfigured to be clean, bright yet gamma-corrected, balanced between sharpness/smoothness and usable in non-integer scales with lower resolution screens (720p to 1080p). Defaults to a grayscale aperturelike-mask, as a definitely-not-accurate LCD grid simulacrum.
8-arcade-vertical: an older version of crt-nobody, aimed solely at vertical-oriented arcade games, as the two other main shaders have no vertical scanlines capabilities.
9-old-tube: a custom crt-gdv-mini coupled with ntsc-adaptive-old and ntsc-colors, preconfigured to be clean, bright without washed-out picture or overblooming, blurry and usable in non-integer scales with lower resolution screens (720p to 1080p). It is a tad more faithful to an actual screen (with the downside of being heavier), boasting just enough accuracy to better handle pixel blending (good for dithering patterns). Defaults to a CGWG aperturelike-mask.
Comparison Screenshots
Some illustrative examples of how presets compare to a no-shader picture. Be sure to open the images in a new tab or any specialized software for image comparison.
Comparison #1: sharp vs no shader
Game: Shinobi III - Return of the Ninja Master (for the Sega Genesis/Mega Drive)
Comparison #2: smooth vs no shader
Game: Teenage Mutant Ninja Turtles IV - Turtles in Time (for the Super Nintendo)
Comparison #3: handheld vs no shader
Game: V-Rally - Edition 99 (for the Game Boy Color)
Comparison #4: arcade-vertical vs no shader
Game: Out Zone (for the Arcade)
Comparison #5: crt-tv-like vs no shader
Game: Pocket Fighter (for the Sega Saturn)
Download and Installation
-
You can download a .zip file with a folder containing the latest version with everything you need here: https://files.catbox.moe/grf8h0.zip (last updated in 2024-12-15)
-
To install, just unpack the .zip file and put the
0 - blight
folder wherever you want, as long as RetroArch has the means and permissions to access it. As a suggestion, you can place the folder inside your main shaders directory. -
Some shaders inside the pack are the exact same as some from the official repository. I just added a copy of them to make installation simpler and because they’re so tiny that it makes no difference.
Final Thoughts
- You can do whatever you want with my pack, even host or upload them somewhere else or bundle with any creation of yours. I don’t care and I don’t want or need credits. Be aware, though, that 99.9% of it is made by other people, and they may feel different from how I do. Be sure to contact the authors of the shaders before anything.
- I’d like to thank Easy Mode (creator of crt-easymode) and DariusG (creator of crt-gdv-mini and lots of other cool shaders).
- More shout-outs to Hyllian (creator of crt-nobody and crt-hyllian, another superb light and straight-to-the-point shader) and Guest (creator of the crt-guest-advanced shader family, the most impressive single piece of work for CRT emulation I’ve seen until now, and it’s the basis for crt-gdv-mini too).
- And my gratitude and appreciation to everyone here and around the Internet who helps others in any way they can!
- This pack comes with no warranty, not even that you’ll like it, but it’s unlikely to do you any harm.
- I don’t intend to maintain or improve on this work, but feel free to contact me if you have any question or want to report if something went wrong.