Shader Presets

From Emulation General Wiki
Jump to navigation Jump to search

Shader Presets are combinations of one or more shaders. The Shader Chain which is a stack of shader passes each one pointing to a specific shader file.[1] There is a misconception about shaders; Generally, you really can't copy+paste shaders between two different programs even if they support same extension like .glsl, not unless they know how their shaders are structured and what kind of input they need and output they give.[2]


RetroArch is able to stack shaders to create a combined effect. These complex effects are saved with a special extension:

   .cpg for CG
   .glslp for GLSL
   .slangp for Slang

The shader presets can also have parameters. This means that you can tweak them to fit your needs.

Sonkun’s crt-guest-advanced-hd presets

ntsc 2-phase preset Megadrive version

A mix of basic crt attributes that invokes a nostalgic vibe with a modern twist.

3 shader preset folders for 3 monitor types: 1080p, 1440p and 4k so whichever monitor you have, you can choose the right shader resolution for your monitor type. These presets were designed to be used on these three resolution types only. Not OLED, 720p or other random resolutions, if you use it on any type of display besides those 3 standard displays Sonkun may not be able to help if you run into any issues. If they end up looking ok to you on your display regardless then game on. 64 shader presets to choose from per folder with 3 different phosphor types for USA, Japan and PAL that come in both color temp and multiple cable types to choose from included (representing 4 cable types to choose from: rf, composite, s-video and rgb).Sonkun created two different types of rf/composite connections, one for ntsc 2-phase and one for ntsc 3-phase. Most systems used the 2-phase output but a few systems used the 3-phase output as well.

Sonkun created a list of the common retro systems on RetroArch to choose the right connection for the right system;

ntsc 2-phase ntsc 3-phase
Amstrad GX4000, Arcade, Atari 5200, Atari 7800, Atari Jaguar/CD, Atari ST, Commodore CDTV, Commodore Amiga CD32, Fairchild Channel F, Magnavox Odyssey 2, Mattel Intellivision, MS-DOS, MSX2, MSX2+, MSXturboR, Nintendo 64/DD, Nintendo GameCube, NEC PC Engine(Turbo Grafx)/CD, NEC SuperGrafx, Panasonic 3DO, Philips CD-i, SNK Neo Geo AES, SNK Neo Geo CD, Sega Megadrive(Genesis)/CD/32X, Sega Dreamcast, Sega Pico, Sega Saturn, Sharp X68000, Sony PlayStation, Sony PlayStation 2 Atari 2600, ColecoVision, MSX, NEC PC-FX, Nintendo Famicom/Nintendo Entertainment System, Sega Master System, Sega SG-1000, Super Famicom/Super Nintendo Entertainment System

Only a few systems used the 3-phase output as you can see but that output produced a different diagonal dithering color/artifact effect on the screen for those specific systems that the 2-phase output didn’t and Sonkun wanted to recreate those outputs with these two types of ntsc shader presets. Sonkun also created a rf/composite ntsc 2-phase preset strictly for Megadrive/Genesis that recreates the accurate rainbow dithering effects so you have two options for rf/composite dithering/rainbows that you can choose from.

HSM's Mega Bezel

HSM's mega bezel intro animation (Can be customized and turned off)

The Mega Bezel Project started back in July 2019 when developer HyperspaceMadness was looking at experimental shaders creating real-time reflections on emulated display bezels. More than two years later, the swiss-army-knife of visual simulation to enhance the retro game experience is ready for players.[3]

  • Auto-Generated Bezel around the tube area
  • Dynamic Reflections on the Bezel
  • Images can be added for background, LEDs, PVMs etc.
  • Easily scale the game screen, including integer scale
  • Crop edges of the the game image
  • Dual screen support for emulated systems like Nintendo 3DS (Emulated by Citra) or Nintendo DS (NDS)
  • And lots more
  • Also Runs on Xbox Series S, Xbox Series X and Steam Deck

Extra Presets for HSM project

Duimon's Neo Geo Pocket/Color preset

Overlay/Bezel packages for use in conjunction with the HSM's Mega Bezel

Most of Orionsangel's bezels in one large pack (link in the description)

Koko-aio's Commodore 1084S monitor (Night)


One of the main goal of this one is to be usable on integrated GPUs. Granted, don’t expect it to run on a Raspberry pi, but the actual target is Intel Haswell, the one on which kokoko3k develop it, where it perform with all the features enabled, when dealing with 240p content, on 1080p at resolution ad about 85/90fps.

Koko-aio is meant to be an all-in one package. It can be configured with many parameters, so that can be scaled to run on even on modest gpus while still developed to run with heavier presets on at least Haswell+ iGPUs (as in version 3.5, it reaches about 85fps with all features enabled When dealing with lowres content on 1920x1080 resolution). While it is not meant to simulate the internal behaviour of CRT displays, it aims to give users "visual" parameters to make their monitors look similar.

  • Scanlines
  • Screenlines
  • RGB phosphors
  • RGB deconvergence
  • NTSC/PAL CVBS color bleeding
  • Aperture grille and slot mask.
  • Input signal glowing
  • Output signal glowing
  • Blooming
  • Gamma, contrast, saturation, luminance, color temperature adjustments
  • Black frame insertions through alternate blanking
  • Interlace flickering, forcing and emulation
  • Antialiasing
  • Curvature
  • Ambient lights
  • Vignette and Spotlight
  • Bezel (Thanks to HyperspaceMadness)
  • Background images
  • Full screen glowing
  • 3D rotation/tilt
  • Integer scaling
  • Background image Night mode
  • Support for backdrop images for BW game/CABs that use mirrors
  • NTSC emulation with selective artifacts smoothing
  • Temporal bloom
  • RF Noise
  • Dot matrix display emulation with grid, shadow and motion blur (gameboy mono)
  • Monochrome display “colorization”
  • TATE mode

Koko-aio fork for Arcade Artwork

Koko-aio fork for Arcade Artwork with HDR

Repository for game-specific Arcade Artworks by using the Koko-aio slang presets.

Successfully tested under MacOS, Windows and iPadOS. Currently the Koko-aio presets provides superior performance on all reasonably powered desktops (including Macs), while providing enhanced shader functions, including bezel reflections, halo/glow effects and many more. It embeds game-specific artwork seamlessly and scales according to resolution. The koko-aio presets is currently under steady development, thus it is a clear aim to stay in line with the upstream changes.

Main source of this artwork comes from John Merrit, who set a benchmark for realistic arcade artwork. Version 0.2 and following releases see the inclusion of some breathtaking 4K artwork provided by Ars Invictus as well. Release 0.3 contains 52 new game-specific presets. With release 0.4 (WIP), estefan3112 would like to nightify all presets to the extent required. 0.4 release will also see usage of the new ambilight functionalities. See the list of new game presets in the each release notes.

Back-Ups Arcade

Back-Ups Arcade's VS SMB overlay

A frontend that showcase’s various overlays with HSM's shader preset and much more by Boz1978. He's aim was to make a AIO software package that seamlessly transitions between game selection and game with no ugly loading screens.

  • Demo Screen: Informative intro video featuring the amazing Frank George!
  • Custom Controllers: Per game Xbox controllers and control schemes.
  • Smoking Options: Choose your smoking preference.
  • Screen Saver: From the amazing TAS Visuals.
  • Overlays: From Mr Retrolust, Orion’s Angel, Arsinvictus and Boz1978 himself.
  • Shaders: From Libretro’s very own amazing HyperspaceMadness & HSM.
  • Music Player: Very awesome tracklist thanks to my works apprentice Mikey.
  • Music Player (In Game): Lets you play music or ambient arcade sounds while in-game!
  • Fade Screens: Each game has a matching fade screen so you never leave your cab!
  • Loading Animations: Per game animated loading animations and sounds.
  • Animated Controllers: Based on the amazing Fercho’s animated overlays.

Back-Ups Arcade relies of three pieces of software to make it work:

  • Attract Mode Plus: The front end.
  • RetroArch: The back end.
  • RocketLauncher: The intermediary software used for game fades and pause menu.

For more information;

Main article: Frontend


ReShade is a generic post-processing injector for games and video software developed by crosire. Similar to libretro, shader effects are saved with a special extension:

 .fxh for fx

And again similar to libretro you can tweak them to fit your needs or create your own custom preset. For preset file location look for ReShade.ini and "CurrentPresetPath=", and it will tell you the location.

 Latest Duckstation release builds comes with ReShade .fx shader support.

Notable presets for ReShade

CyberLab ReShade Death To Pixels Shader Preset Pack

Vasiliy.M.'s PCSX2 CRT


kyubus Retro CRT

Kyubus Retro CRT is a collection of Reshade and RetroArch retro CRT presets using existing shaders such as CRT-Guest, CRT-Royale and CRT-Lottes. ::These presets are mainly developed on a monitor resolution of 1440p but presets for 1080p and 4k monitors are included.
To make the lower resolution shader display correctly RetroArch (or any emulator) integer scaling needs to be switched ON (Settings>video>scaling). GaussianBlur, LumaSharpen and Deband(range) are probably the first parameters you might want to adjust depending on the resolution of the content and your preferences. frankschoeman also recommend trying RetroArch shaders underneath such as "/xbr/super-xbr-fast.slangp"(Set Input and Output gamma to 1.0 in shader parameters) and "/cubic/catmull-rom-fast.slangp". In case those aren't available frankschoeman suggest setting the preset to one where GaussianBlur is enabled.

AirCon's Retro CRT

Mimics blurry, lightbleeding, uncalibrated inexpensive 8~90's CRT.

Notable shaders for using with ReShade Presets

These are not shader presets. But you can create your own custom preset using these .fx shaders.

Pascal Gilcher's RTGI shader ($)

Developed by Pascal "Marty McFly" Gilcher, RTGI & Screen-Space Ray Traced Global Illumination is an upcoming shader for ReShade which make use of Path Tracing to bring Real Time Global Illumination to every games. Global Illumination is certainly not something new for games but unlike conventional Baked / Precomputed Realtime GI, Marty McFly's Path Traced solution can provide a way more realistic and physically correct Global Illumination for every game. [4]
Reshade needs depth buffer access to make the RTGI shader work properly.

matsilagi's RSRetroArch

Repository of RetroArch and retro-related shaders / shaders from programs, ported for ReShade

akgunter's crt-royale-reshade

This is a port of the crt-royale shader by TroggleMonkey from RetroArch/libretro to ReShade 4.9+.

DevilSingh's CRT-Guest-Advanced, HD and NTSC for ReShade


ShaderGlass demonstration

Overlay for running GPU shaders on top of Windows desktop (similar to WindowCast for Libretro).

  • applies shader effects on top of any window on the desktop
  • includes RetroArch shader library covering: CRT monitor simulation, image upscaling, TV / VHS simulation, softening, denoising, blur, sharpen and many more
  • works with most emulators, retro platforms and pixel art editors including: DOSBox forks, xemu, PCSX2, FS-UAE, Altirra, ScummVM, VICE etc.
  • excellent companion for pixel art drawing showing shaded and/or aspect-ratio corrected preview
  • you can even use it on top of YouTube, Twitch or modern games
  • saving and loading profiles
  • multiple operating modes, including borderless fullscreen
  • can be captured by OBS (using Game Capture source)

Librashader demonstration

WindowCast for Libretro

WindowCast for Libretro/libretro-wincapture (formerly WGC Window Capture) Libretro core to capture the contents of another window for video processing. This is useful, for say, capturing the output of a standalone emulator that doesn't have advanced pp shader implementation (like xemu, Dolphin[5], PCSX2*) or a PC game running in a window and then processing it with RetroArch's shader stack. WindowCast for Libretro, ReShade or ShaderGlass are the only decent way to do this if the emulator doesn't have any advanced pp shader implementation.

This core uses software blit, and should support running with any RetroArch video driver (vulkan, d3d11, gl, etc). However, the method used for window capture is Windows 10/11 specific and requires a Direct3D 10/11 capable GPU. Audio or input is not handled, and it is expected that the game will be running in the background.


librashader is a complete reimplementation of the RetroArch slang shader pipeline that allows standalone emulators to easily and optionally implement support for RetroArch-style shaders and shader presets.


EmuVR rooms

Already here thanks to Virtual Reality game room simulation projects. A VR game room simulation provides a virtual customizable game room; within that room there are cartridges, CD/DVDs and VHS tapes with artworks (CD/DVD covers, cartridge/VHS labels etc.), arcade machines, VCD/DVD/VHS player, personal computers or home consoles connected to virtual CRT screens that the user can interact with as they would a real-life TV.

Main article: Virtual_reality#VR_game_room_simulations

External Links