Skip to content
daniel@cosenza:~/blog
RetrogamingHow-To July 7, 2026 3 min read

How to Configure CRT Shaders for an Authentic Retro Look

A step-by-step guide to enabling and tuning shader presets in RetroArch — from picking a starting preset to adjusting scanline and curvature intensity to taste.

RetroArch ships with a large library of shader presets rather than a single fixed “CRT mode” — this walks through picking one, understanding what its parameters actually control, and tuning it rather than accepting a default that doesn’t suit your display or preference.

Step 1: enable the shader pipeline

Settings → Video → Shaders → Video Shaders: ON

Step 2: load a starting preset rather than building one from scratch

Quick Menu → Shaders → Load → Shaders_glsl/crt/ →
             [try "crt-royale.glslp" for a heavier, high-detail preset,
              or "crt-easymode.glslp" for a lighter, faster default]

crt-easymode is a reasonable starting point on more modest hardware; crt-royale is far more configurable and visually detailed, at meaningfully higher GPU cost — both are legitimate starting points depending on your priorities.

Step 3: understand what you’re actually adjusting

Rather than treating a preset as a fixed filter, open its parameters to see (and adjust) the individual effects it’s combining:

Quick Menu → Shaders → Parameters

The parameters that matter most across almost every CRT-style preset:

  • Scanline intensity/thickness — how dark the gaps between rendered lines appear; too high looks like venetian blinds, too low loses the effect entirely.
  • Mask type/intensity — simulates the shadow mask or aperture grille’s color-separation effect; this is what produces the subtle horizontal color blending described in CRT shaders and integer scaling.
  • Curvature/vignette — simulates a physical tube’s curved glass; many players prefer this set low or off entirely, since it can distort visibility toward screen edges.
  • Sharpness/blur — controls how much horizontal softening is applied between adjacent pixels, independent of the scanline and mask effects.

Step 4: match scanline settings to your actual resolution

Scanline-based shaders assume a specific relationship between the emulated system’s native resolution and your display’s output resolution. If scanlines look uneven, aliased, or produce visible moiré patterns, check:

Settings → Video → Output → Integer Scale: ON

Combining integer scaling with a scanline shader gives much more even, predictable results than free-form stretching, since every source pixel maps to a whole number of output pixels before the shader’s per-line effects are applied on top.

Step 5: save your tuned settings as a per-core or per-game override

Quick Menu → Overrides → Save Core Overrides
                       (or Save Game Overrides for a single title)

This preserves your specific parameter adjustments without needing to redo them every session, and lets different systems or even individual games use different shader configurations if you prefer.

Step 6: check the actual performance cost

Settings → Onscreen Display → Onscreen Notifications → Display Framerate

Heavier presets (crt-royale in particular) carry real GPU cost — confirm frame rate is still stable after enabling a shader, especially on lower-powered or integrated graphics hardware, and step down to a lighter preset if it isn’t.

Why tuning matters more than picking “the right” preset

There is no single objectively correct CRT shader configuration — a preset tuned for a large, sharp modern display looks different from the same preset on a smaller or lower-resolution screen, and personal preference for scanline intensity varies enormously. Starting from a known preset and adjusting the parameters in Step 3 individually, rather than either accepting defaults blindly or building a configuration from zero, is the fastest path to something that actually looks right on your specific setup.