Reported shipments Oct 21 Nov 8 124 reports

Shaders on the Pocket Duo: CRT, LCD and colour effects

Understand CRT and LCD shaders, try Russ’s Nova favourites in RetroArch, save per-game presets and compare colours and performance on your Duo.

Wen Duo? · Updated · Sources checked

Regular Pocket Duo · How we research these guides

In this guide

Shaders are optional effects that change how a game looks: a CRT television texture for a console game, an LCD pixel grid for a handheld game, or a different colour balance. Start with one preset on a game that already runs well, keep the look you enjoy, and check that motion, text and speed still feel comfortable.

Russ’s Nova videos give a useful shortlist. These are Russ’s preferences on a Nova and haven’t been tried on a Duo; the preset files match the official shader library.

What each graphics setting changes

Term What it changes Example
Visual shader The displayed image’s texture, colour or scaling CRT scanlines or an LCD grid
Internal resolution The size at which an emulator renders the game Drawing a 3DS game at 2× rather than 1×
Graphics driver The software through which an emulator uses the GPU A supported system driver or Turnip package
Shader compilation Preparing graphics programs for use Brief first-run hitches reported in some game tests

A CRT preset doesn’t install a graphics driver. Turning off a cosmetic effect shows you its performance cost, but it won’t fix an emulator’s compilation stutter. For those differences in practice, see reading game tests and graphics drivers.

Russ’s simple starter choices

These come from the shader section of Russ’s Nova starter guide. Paths below are relative to RetroArch’s shaders_slang folder.

Look to try Preset How the guide uses it
CRT television crt/crt-gdv-mini-ultra-trinitron.slangp Home-console default; reduced curvature and saturation
Dark LCD grid handheld/lcd3x.slangp Handheld alternative
Lighter textured LCD handheld/simpletex_lcd.slangp Preferred Nova look for Game Boy and Game Boy Color
GBA colour plus grid handheld/color-mod/NSO-gba-color.slangp, then append handheld/lcd3x.slangp GBA combination

For the CRT preset, Russ sets Y curvature to 0 and saturation to 1.1. For Simpletex, they use Darken Grid 0.2 and Darken Colours 0.25. Those are appearance preferences rather than calibration values for a Duo panel.

The lcd3x name refers to the preset and doesn’t set your emulator’s internal resolution to 3×.

Try and save one RetroArch preset

The official Libretro instructions describe the loading process. Menu wording can vary by RetroArch version and interface.

  1. Launch a game that already works. Open Quick Menu → Shaders, enable video shaders if needed, and choose Load Shader Preset.
  2. Choose a format your active video driver supports. Slang presets use .slangp; GLSL presets use .glslp. Libretro documents Slang support for Vulkan and OpenGL Core among other renderers. An older OpenGL/GLES setup may need GLSL instead.
  3. Load one preset. If it’s missing, use RetroArch’s Online Updater to update the matching shader pack, then browse again. Stick to the official library rather than an unexplained download bundle.
  4. Resume the same scene and toggle the effect off and on. Compare small text, flat colours and a scrolling section, and check speed and audio as well as the picture.
  5. Open Shader Parameters for adjustments exposed by that preset. Note the starting values so you can compare one change at a time.
  6. In the shader save controls, sometimes labelled Save or Manage Presets, choose Game Preset for a first experiment. Close and reopen the game to check that the effect comes back.

Once you like a preset, choose how widely it applies. Global affects content across cores; Core applies to one emulator core; Content Directory applies to a folder using that core; Game is the most specific choice. The more specific preset wins. Libretro notes that directory and game presets are also core-specific, so check the result again if you change cores. See preset scope and priority.

Add advanced effects when you want more control

Russ’s dedicated shader video explores Pixel AA and Sharp Shimmerless for scaling, CRT Royale for 3D systems, and other handheld combinations. The final GBA example combines gba-color, Sharp Shimmerless and Simpletex LCD, which is worth a try if you want a different look.

Loading a preset replaces the current chain. Append adds after the existing passes; Prepend adds before them. Processing order matters, and adding another preset can mean checking its parameters again, so save the simpler preset before building a longer chain.

The video describes a Pixel AA/Simpletex compatibility problem at the time of recording, but its current description says Pixel AA has since been updated for the handheld shaders, including Simpletex.

Colour effects are different from display calibration

A shader changes one game’s appearance while Android and other apps stay the same. A game’s original palette, a core’s colour correction and an added shader can each affect the result, so compare with the extra effects off before deciding which you prefer.

A saturation slider you like isn’t a measured display profile. If the same colour problem appears outside the emulator, follow the screen-colour guide, which also covers why a Nova calibration profile hasn’t been shown to fix a Duo.

Check both screens and the performance cost

A preset on the main game image may not reach the other panel. In one older Lite test, the reviewer reports a SeedlessDS shader appearing on only one screen. Compare each panel with the same content where possible, particularly when colours or grids look mismatched.

If a game slows down with the effect on, compare it again without that effect before changing resolution or drivers. Add extra passes one at a time so you can tell which change matters, and check the game in motion as well as on a still screen.

Leave BFI and CRT Beam for a separate experiment

Black frame insertion and CRT Beam change how motion is presented instead of adding a static grid. The CRT Beam implementation expects display refresh headroom above the simulated game rate and trades brightness against clarity. Both depend on display timing, renderer and shader-subframe support.

Don’t copy a Nova refresh-rate recipe because both devices are Retroids. Begin with an ordinary shader preset, and try motion features only after checking the panel mode and app support on your device. The advanced video’s motion section was made on a Nova, and nobody has shown a two-panel Duo setup for it yet.

Apps in this guide

Latest releases. A video may have used an older version.

Sources