| Both sides previous revision Previous revision Next revision | Previous revision |
| emulationstation:shaders_set [2024/02/09 17:40] – [Table] duglim | emulationstation:shaders_set [2026/05/23 01:54] (current) – [Hot-swapping shaders with controller commands] lbrpdx |
|---|
| There are several built-in shader sets available by default: | There are several built-in shader sets available by default: |
| |
| ^ Shader set ^ Description ^ Preview (click for full view) ^ | ^ Shader set ^ Description ^ Preview (click for full view) ^ |
| | **None (with 'smooth games')** | No shaders, no scanlines, with bilinear filtering blur (smooth games). This is how Batocera is configured out of the box. Provides Game Boy colorization. You can select Game Boy colorization through its own menu, but beware, mixing colorization and shaders rarely provides good results. | {{ :shader1-smw-smooth-games.png?direct}} | | | **None (with 'smooth games')** | No shaders, no scanlines, with bilinear filtering blur (smooth games). This is how Batocera is configured out of the box. Provides Game Boy colorization. You can select Game Boy colorization through its own menu, but beware, mixing colorization and shaders rarely provides good results. | {{ :shader1-smw-smooth-games.png?direct}} | |
| | **None (without 'smooth games')** | No shaders, no scanlines, without bilinear filtering blur. This uses nearest-neighbor upscaling to fill the screen. Since most retro games ran at 480p, and 480 is not a factor of 1080, some pixel rows/columns will be "thicker" than others. Provides Game Boy colorization out of the box. You can select Game Boy colorization through its own menu, but beware, mixing colorization and shaders rarely provides good results. | {{ :shader1-smw-none.png?896&direct}} | | | **None (without 'smooth games')** | No shaders, no scanlines, without bilinear filtering blur. This uses nearest-neighbor upscaling to fill the screen. Since most retro games ran at 480p, and 480 is not a factor of 1080, some pixel rows/columns will be "thicker" than others. Provides Game Boy colorization out of the box. You can select Game Boy colorization through its own menu, but beware, mixing colorization and shaders rarely provides good results. | {{ :shader1-smw-none.png?896&direct}} | |
| | **Curvature** (//Batocera **5.24**+//) | Provides scanlines and a simulated screen curve, like good old CRT screens. For handheld consoles with LCD screens, no curvature is applied as the screens were flat. This shader set provides a "zfast" filter. | {{ :shader2-smw-curvature.png?896&direct}} | | | **Curvature** (//Batocera **5.24**+//) | Provides scanlines and a simulated screen curve, like good old CRT screens. For handheld consoles with LCD screens, no curvature is applied as the screens were flat. This shader set provides a "zfast" filter. | {{ :shader2-smw-curvature.png?896&direct}} | |
| | **Enhanced** (//Batocera **5.23**+//) | Adds blurring and upscaling to provide a smoother output, more in line with what you expect from a video game nowadays. | {{ :shader3-smw-enhanced.png?896&direct}} | | | **Enhanced** (//Batocera **5.23**+//) | Adds blurring and upscaling to provide a smoother output, more in line with what you expect from a video game nowadays. | {{ :shader3-smw-enhanced.png?896&direct}} | |
| | **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. | {{ :shader4-smw-flatten-glow.png?896&direct}} | | | **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. | {{ :shader4-smw-flatten-glow.png?896&direct}} | |
| | **Retro** (//Batocera **5.23**+//) | A.k.a. "big pixel" mode, that adds a retro vibe to the output. Think of the indie games you could find on Steam by dozens in 2019, egregiously using the 8-bit effect. This particular preview doesn't show a difference as SMW is already pixelated, but try it on a modern system like PS2 or GameCube! | {{ :shader5-smw-retro.png?896&direct}} | | | **Retro** (//Batocera **5.23**+//) | A.k.a. "big pixel" mode, that adds a retro vibe to the output. Think of the indie games you could find on Steam by dozens in 2019, egregiously using the 8-bit effect. This particular preview doesn't show a difference as SMW is already pixelated, but try it on a modern system like PS2 or GameCube! | {{ :shader5-smw-retro.png?896&direct}} | |
| | **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 this set utilizes a "grid" effect for old-style LCD rendering when you play a handheld game. | {{ :shader6-smw-scanlines.png?896&direct}} | | | **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 this set utilizes a "grid" effect for old-style LCD rendering when you play a handheld game. | {{ :shader6-smw-scanlines.png?896&direct}} | |
| | **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. Lighter on resources than the other shaders. | {{ :shader7-smw-zfast.png?896&direct}} | | | **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. Lighter on resources than the other shaders. | {{ :shader7-smw-zfast.png?896&direct}} | |
| | **sharp-bilinear-simple** (//Batocera **v32**+//) | A [[https://github.com/rsn8887/Sharp-Bilinear-Shaders|sharper]] and more neutral bilinear filter. This was made the default shader since **v32**. | {{ :shader8-smw-sharpbilinearsimple.png?896&direct}} | | | **sharp-bilinear-simple** (//Batocera **v32**+//) | A [[https://github.com/rsn8887/Sharp-Bilinear-Shaders|sharper]] and more neutral bilinear filter. This was made the default shader since **v32**. | {{ :shader8-smw-sharpbilinearsimple.png?896&direct}} | |
| | **Mega-Bezel** (//Batocera **v32**+//) | The infamous MegaBezel pack! Make it appear as though you're playing inside of an old CRT set, with dynamic reflections on the bezel and all! An optional pack available from the content downloader. **Very heavy on resources, only usable on high-spec x86_64 desktops.** In order to use this set you must: 1. Download the MegaBezel pack from the Content Downloader. 2. Set your graphics API to GLCore or Vulkan in the **GAME SETTINGS**. 3. Set the **GAME ASPECT RATIO** to "Full". 4. Set **ALLOW ROTATION** to "OFF". More details can be found in [[https://forums.libretro.com/t/hsm-mega-bezel-reflection-shader-feedback-and-updates/25512|the release forum post]]. <WRAP center round help> There's a bug currently that causes certain systems (wii, gamecube, gba, ds, supergrafx, pcengine, pcenginecd, gamegear, ngpc, etc.) to flip the MegaBezel shaders upside-down. To work around this, go into the shader's settings, turn on the vertical flip setting and save that as a core preset. </WRAP> | {{ :shader-cd1-smw-megabezel.png?896&direct}} | | | **Mega-Bezel** (//Batocera **v32**+//) | The infamous MegaBezel pack! Make it appear as though you're playing inside of an old CRT set, with dynamic reflections on the bezel and all! An optional pack available from the content downloader. **Very heavy on resources, only usable on high-spec x86_64 desktops.** In order to use this set you must: 1. Download the MegaBezel pack from the Content Downloader. 2. Set your graphics API to GLCore or Vulkan in the **GAME SETTINGS**. 3. Set the **GAME ASPECT RATIO** to "Full". 4. Set **ALLOW ROTATION** to "OFF". More details can be found in [[https://forums.libretro.com/t/hsm-mega-bezel-reflection-shader-feedback-and-updates/25512|the release forum post]]. <WRAP center round help> There's a bug currently that causes certain systems (wii, gamecube, gba, ds, supergrafx, pcengine, pcenginecd, gamegear, ngpc, etc.) to flip the MegaBezel shaders upside-down. To work around this, go into the shader's settings, turn on the vertical flip setting and save that as a core preset. </WRAP> | {{ :shader-cd1-smw-megabezel.png?896&direct}} | |
| | **Koko-AIO Immersive Duimon Bezels** (//Batocera **v38**+//) | Great CRT shader with reflective screen borders and immersive lighting on the whole bezel. Includes the well known Duimon bezels as well. Currently the shaderset covers consoles, not handhelds. This shaderset is not as resource hungry as you may think and runs at full speed even on an **Intel N100** CPU. Download this shaderset as an optional pack available from the content downloader. In order to use this set you must: 1. Download the Koko-AIO pack from the Content Downloader. 2. Set your graphics API to GLCore or Vulkan in the **GAME SETTINGS**. 3. Set the **GAME ASPECT RATIO** to “Full”. 4. Set **DECORATION SETS** to “NONE”. A detailed setup guide and many additional information about this shaderset can be found [[http://www.r1f.de/batocera-kokoaio-shaderset|HERE]]. | {{ :shader-cd2-smw-kokoaio.png?896&direct}} | | | **Koko-AIO Immersive Duimon Bezels** (//Batocera **v38**+//) | Really great CRT shader with reflective screen borders and immersive lighting on the whole bezel. Includes the well known Duimon bezels as well. Currently the shaderset covers consoles up to PS2/GC, well known handhelds and Arcades. This shaderset is not as resource hungry as you may think and runs at full speed even on an **Intel N100** CPU. Download this shaderset as an optional pack available from the content downloader. In order to use this set you must: 1. Download the Koko-AIO pack from the Content Downloader. 2. Set your graphics API to GLCore or Vulkan in the **GAME SETTINGS**. 3. Set the **GAME ASPECT RATIO** to “Full”. 4. Set **DECORATION SETS** to “NONE”. A detailed setup guide and many additional information about this shaderset can be found [[http://www.r1f.de/batocera-kokoaio-shaderset|HERE]]. | {{ :shader-cd2-smw-kokoaio.png?896&direct}} | |
| |
| You can also select **none** to use no shader at all - it's the cheapest option performance-wise. | You can also select **none** to use no shader at all - it's the cheapest option performance-wise. |
| |
| ===== What if I want to use RetroArch's other built-in shaders? ===== | ===== What if I want to use RetroArch's other built-in shaders? ===== |
| |
| <WRAP center round help> | |
| This is legacy behavior and is going to be removed soon. | |
| </WRAP> | |
| |
| You can set your own shader presets per system or per game, overriding the Batocera shader set selection. In order to do so, you can edit the ''/userdata/system/batocera.conf'' file and add the relative path (without extension) to the desired shader to the appropriate ''<system>-renderer.shader'' key. For example: | You can set your own shader presets per system or per game, overriding the Batocera shader set selection. In order to do so, you can edit the ''/userdata/system/batocera.conf'' file and add the relative path (without extension) to the desired shader to the appropriate ''<system>-renderer.shader'' key. For example: |
| Also, these shaders can only be applied to Libretro cores. Standalone emulators have to either provide their own shader in the advanced system options or something else. | Also, these shaders can only be applied to Libretro cores. Standalone emulators have to either provide their own shader in the advanced system options or something else. |
| |
| ===== Hot-swapping shaders with controller commands ===== | ===== Add your own shaders ===== |
| | |
| Did you know you can swap the active shader with the ''[Hotkey]''+''[L2]''/''[R2]'' command while in-game? Only for Libretro cores, however. The shaders switched between here aren't necessarily the same as the shader sets that Batocera can use (you should really be using shader sets instead of this hot-swapping method), but it can be convenient to quickly compare shaders without having to constantly exit and relaunch a game. | |
| First, gather the shaders/filters (''*.glsl'' and ''*.slang'' files **without** the ''p'' at the end) it depends on and copy them into a new ''/usr/share/batocera/shaders/shaders'' subfolder [[:modify_the_system_while_it_s_running|on the Batocera machine itself]]. Then copy the shader presets (''*.glslp''/''*.slangp'' files **with** the ''p'' at the end) from the directory its in (for example, /vhs) to ''usr/share/batocera/shaders''. Your file paths should look like so: | First, gather the shaders/filters (''*.glsl'' and ''*.slang'' files **without** the ''p'' at the end) it depends on and copy them into a new ''/usr/share/batocera/shaders/shaders'' subfolder [[:modify_the_system_while_it_s_running|on the Batocera machine itself]]. Then copy the shader presets (''*.glslp''/''*.slangp'' files **with** the ''p'' at the end) from the directory its in (for example, /vhs) to ''usr/share/batocera/shaders''. Your file paths should look like so: |
| |