2025/09/25 04:11 1/3 Shader Sets
Shader Sets
This options allows you to apply shaders (or video filters) that can do things like make your tv/game
look like it did back in the 80s and 90s.
On Batocera, several shader sets are available:
default: default is like “none” i.e. no shaders, no scanlines, but it provides Gameboy
colorization out of the box. You can select Gameboy colorization through its own menu, but
beware, mixing colorization and shaders rarely provides good results.
scanlines (Batocera 5.23+): the most realistic, for a 80s/90s look and feel. Most Batocera users
have a LCD screen, not a CRT, so this mode enables scanlines to simulate the effects you get
out of a big old TV set (but no curvature on the image). On handheld consoles, with LCD
screens, you have no “scanlines” as the technology is fundamentally different. So, we provided
a “grid” effect for old-style LCD rendering when you select “scanlines” and play a handheld
game.
retro (Batocera 5.23+): a.k.a. “big pixel” mode, that adds a retro vibe to the output. Think the
“indies” games you can find on Steam by dozens in 2019, overindexing on the 8-bit effect.
enhanced (Batocera 5.23+): adds blurring and anti-aliasing to provide a smoother output,
more in line with what you expect from a video game nowadays.
curvature (Batocera 5.24+): provides scanlines + simulated screen curving, like good old CRT
screens. For handheld consoles with LCD screen, no curvature as the screens were squared: this
shader set provides a “zfast” filter.
flatten-glow (Batocera 5.25+): for CRT-based systems, it make the lights “glow”, this effect is
particularly cool for Vectrex and old arcade games with a black background… but it might make
you feel tipsy when used on colorful games! For handheld LCD systems, it “flattens” the screen
so that the foreground and background melt together, like when you were playing those non-
backlit screens.
zfast (Batocera 5.25+): an implementation of the zfast algorithm, with a variant for CRT
screens (lighter scanlines, kind of a honeycomb effect) and one with no scanline for handheld
LCD systems.
You can also select none to use no shader at all - it's the best option performance-wise.
Here is a screenshot where you can see the rendering effects provided by a few shader sets on a
Sega Megadrive game (from left to right: none / scanlines / enhanced).
Batocera.linux - Wiki - https://wiki.batocera.org/
Last update: 2021/05/06 00:17 emulationstation:shaders_set https://wiki.batocera.org/emulationstation:shaders_set?rev=1620253047
What if I want to use my own shaders?
You can set your own shaders per system or per game, overloading the Batocera shader set selection.
In order to do so, you can edit the /userdata/system/batocera.conf file and add, for example:
snes-renderer.shader=vhs/ntsc-vcr
mame-renderer.shader=crt/crt-pi-curvature
nes["Xexyz (USA).zip"]-renderer.shader=vhs/ntsc-vcr
Don’t put the extension, just the name of the shader, without .glslp or .slangp.
All shaders available on your Batocera system are available in /usr/share/batocera/shaders/
and its subfolders. What if you want to add your own shaders, that are not distributed with Batocera?
Just add them in the folder /userdata/shaders/ and they will be accessible from this
batocera.conf configuration point too.
Oh, and I know that you want to use vhs/ntsc-vcr everywhere now, right?
https://wiki.batocera.org/ Printed on 2025/09/25 04:11
2025/09/25 04:11 3/3 Shader Sets
More technical information about shaders
Shaders are little snippets of code that simulate the effect on the video layer. They are depending on
the video backend you are using. Up to Batocera 30, only OpenGL was supporting shaders. Starting
with Batocera 31, you can use OpenGL or Vulkan and get shaders. The difference is:
OpenGL: shader preset files are .glslp, video transformation code are .glsl
Vulkan: shader preset files are .slangp, video transformation code are .slang
What you need to load in the batocera.conf file above is a .glslp or .slangp file, which is kind
of a “playlist” of unitary video transformation files, defining what needs to be applied in order to
render the effect expected.
As you can see above, in batocera.conf, you don't need to specify the extension, Batocera will
apply it automatically based on the video backend you are using.
Also, those shaders can be applied only on emulators that are based on retroarch/libretro. Standalone
emulators cannot use that technique.
From:
https://wiki.batocera.org/ - Batocera.linux - Wiki
Permanent link:
https://wiki.batocera.org/emulationstation:shaders_set?rev=1620253047
Last update: 2021/05/06 00:17
Batocera.linux - Wiki - https://wiki.batocera.org/