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-Royaleis the most accurate and the most GPU-intensive.CRT-Geombalances quality and performance.CRT-Hyllianis 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.
Color correction shaders
Old handheld screens had washed out colors, and many games compensated with oversaturated palettes. A color correction shader like gba-color or nds-color pulls those palettes back to what the artists saw on real hardware. GBA games in particular can look garish on a modern panel without one. These shaders cost almost nothing in GPU power, so they are safe on any device.
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
- Load a game in RetroArch.
- Open the Quick Menu, then Shaders.
- Select Load Shader Preset.
- Browse to
shaders_slang/orshaders_glsl/and pick a preset. - 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.
Shader picks by device class
Screen resolution changes which shaders look good. A scanline effect needs enough vertical pixels to draw the lines cleanly, so the right pick depends on your panel as much as your chip.
- 640x480 budget devices like the Anbernic RG35XX and Miyoo Mini Plus. Stick to LCD3x for handheld systems and CRT-Hyllian for consoles. Heavy CRT presets both drop frames and look muddy at this resolution.
- 720p mid-range devices like the Anbernic RG40XXV and TrimUI Smart Pro. CRT-Geom hits the sweet spot. Scanlines resolve cleanly and the chip keeps up.
- 1080p and beyond like the Retroid Pocket 5, Retroid Pocket 6, and AYN Odin 3. This is where CRT-Royale and the Mega Bezel packs earn their reputation. High pixel density makes the phosphor simulation genuinely convincing.
- OLED panels like the Retroid Pocket Mini and AYANEO Pocket S. Perfect blacks make CRT glow effects pop. Try a preset with halation or bloom enabled.
Overlays and bezels
Shaders change the game image. Overlays sit around it. A Game Boy bezel that frames your GBC games, or an arcade cabinet border for MAME, fills the unused screen space on a widescreen device with something nicer than black bars. In RetroArch, go to Quick Menu, then On-Screen Overlay, and pick from the built-in collection. Overlays pair well with integer scaling, which our integer scaling guide covers in depth.
Frequently asked questions
Do shaders affect performance or battery life?
Yes, both. A heavy shader keeps the GPU busy every frame, which costs frame rate on weak chips and battery everywhere. Light presets like LCD3x and CRT-Hyllian are close to free. CRT-Royale can cut battery life noticeably even on strong hardware.
Why does my shader preset fail to load?
Nine times out of ten it is a format mismatch. Vulkan and Direct3D renderers need .slang presets. OpenGL needs .glsl. Check which video driver your device uses in Settings, then Video, then pick presets from the matching folder.
Should I use shaders on every system?
No. Shaders shine on systems designed for CRTs or old LCDs. Modern-era systems like PSP, DS, and anything 3D-heavy from the 2000s were built for sharp screens, so run those clean or with a light sharpening filter only.
What is the single best shader to start with?
CRT-Geom for console games and LCD3x for Game Boy family games. Both run on nearly everything, look great at any resolution, and give you an instant feel for what shaders add. Branch out from there.

