Guide

RetroArch Shaders: A Complete Visual Upgrade Guide

RetroArch Shaders: A Complete Visual Upgrade Guide — System Emulation guide for retro handhelds | Held Games

Affiliate disclosure: This guide contains affiliate links. As an Amazon Associate, we earn from qualifying purchases at no extra cost to you. Learn more.

RetroArch shaders are GPU filters that post-process your game's output in real time. They add authentic CRT scanlines, recreate the LCD grid of an original Game Boy, or sharpen pixel art for clean upscaling. The right shader can transform how a classic game looks. Here is how to get started and which presets to pick.

Understanding shader types

CRT shaders

These simulate old cathode-ray tube TVs, with scanlines, a soft glow, and sometimes screen curvature. Many retro games were designed for CRTs, and these shaders restore the look the artists intended. Best for NES, SNES, Genesis, and PS1.

Top picks:

  • CRT-Royale is the most accurate and the most GPU-intensive.
  • CRT-Geom balances quality and performance.
  • CRT-Hyllian is lightweight and great for handhelds.

LCD grid shaders

These recreate the pixelated grid of an original Game Boy or Game Boy Color screen. They add a layer of nostalgia that a flat modern panel cannot. Best for Game Boy, Game Boy Color, and GBA.

Top pick: LCD3x for the classic handheld feel.

Upscaling and pixel-art shaders

These cleanly scale low-resolution art without the blur of simple stretching. Best for any pixelated game when you want a crisp, modern image rather than a CRT look.

Top picks: the xBR and HQx families.

Slang versus glsl presets

RetroArch ships shaders in two formats. Use .slang presets if your device runs the Vulkan or Direct3D renderer, which covers most Android and Windows handhelds. Use .glsl presets if your device runs the OpenGL renderer, which is common on budget Linux handhelds. If one folder looks empty or a preset fails to load, try the other format.

How to enable shaders

  1. Load a game in RetroArch.
  2. Open the Quick Menu, then Shaders.
  3. Select Load Shader Preset.
  4. Browse to shaders_slang/ or shaders_glsl/ and pick a preset.
  5. Select Save Game Preset to apply it permanently for that one game, or Save Core Preset to apply it to every game on that system.

Best shader by system

  • NES, SNES, Genesis: a CRT shader like CRT-Geom for the intended TV look.
  • Game Boy, Game Boy Color: LCD3x for the original handheld grid.
  • GBA: a light LCD shader, since GBA screens were dim and ungrided. Many players prefer a subtle color-correction shader here.
  • PS1, Saturn: a CRT shader smooths the low-resolution 3D nicely.
  • Arcade: CRT shaders shine, since these games lived on arcade monitors.

Performance tips

Shaders cost GPU power, and heavy ones like CRT-Royale can drop frames on weaker chips such as the Allwinner H700. If you see slowdown:

  • Switch to a lighter preset like CRT-Geom or CRT-Hyllian.
  • Keep the internal resolution at 1x while a shader is active.
  • Enable Threaded Video in RetroArch's video settings.

As a rule, budget Linux handhelds do best with the lightweight CRT and LCD shaders, while Snapdragon and Windows devices can run CRT-Royale and other demanding presets without breaking a sweat.

Related reading

Related reading