Shader Presets
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]
Contents
RetroArch/Libretro[edit]
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[edit]
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[edit]
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]
|
Extra Presets for HSM project[edit]
These presets are tested and developed for use in conjunction with the HSM's Mega Bezel.
- CyberLab Mega Bezel Death To Pixels (Includes HDR supported "Megatron 4K HDR presets" which is heavily recommended if you have a HDR supported 4K display.)
- TheNamec Mega Bezel Packs Amiga, Commodore 64, VIC20, CRTgaming
- Duimon Mega Bezel Graphics
- Zomb's Mega Bezel Pack
- SOQUEREU's Mega Bezel TV
- P3st´s Overlays for Mega Bezel
Sony Megatron (HDR)[edit]
These presets/shaders are intended to rely heavily on the luminance performance of your display rather than the performance of your graphics card. As such you will need a bright display preferably DisplayHDR 600 but some SDR screens do get bright enough in particular laptop screens. A DisplayHDR 1000 display will really have the head room to cope with some of the hgher end PVM’s etc.
Retro-Crisis-GDV-NTSC[edit]
It is based on Guest Advanced NTSC shader, which is authored by Guest R. All the presets were configured in sRGB at 4K display resolution on a 20" screen. Presets could potentially look worse on larger screens in some instances.
Koko-aio[edit]
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.
Features |
---|
|
Koko-aio fork for Arcade Artwork[edit]
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.
Overlay/Bezel packages[edit]
These overlay/bezel packs shouldn't be confused with shader presets above. Most of these packs only comes with overlay and config files (.cfg and .png files) for 'RetroArch/config/mame or FinalBurn Neo' and 'RetroArch/overlays/arcade' directories.
Back-Ups Arcade[edit]
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.
|
Back-Ups Arcade relies of three pieces of software to make it work:
|
For more information;
- Main article: Frontend
ReShade[edit]
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[edit]
Sony Megatron ReShade Port (HDR)[edit]
- For using this preset you need AutoHDR add-on for ReShade.
CyberLab ReShade Death To Pixels Shader Preset Pack[edit]
Vasiliy.M.'s PCSX2 CRT[edit]
kyubus Retro CRT[edit]
- (Demonstration)
- 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[edit]
- (Demonstration)
- Mimics blurry, lightbleeding, uncalibrated inexpensive 8~90's CRT.
Notable shaders for using with ReShade Presets[edit]
These are not shader presets. But you can create your own custom preset using these .fx shaders.
Pascal Gilcher's RTGI shader ($)
|
ShaderGlass[edit]
Overlay for running GPU shaders on top of Windows desktop (similar to WindowCast for Libretro).
Features |
---|
|
WindowCast for Libretro[edit]
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, 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[edit]
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.
This effort is a complete reimplementation of a shader pipeline that should be compatible with all shaders in slang-shaders, including the preset parser, the shader preprocessor, and SPIR-V translation, as well as runtime implementations for Direct3D 11, OpenGL, and Vulkan. To be clear, librashader does not “rip out” the shader parts of RetroArch and just repackage it up, but is a complete reimplementation with a fully documented Rust API that exposes every part of the pipeline.
- You can find librashader on GitHub.
- Reddit thread: Has there been any interest in librashader support?
Future[edit]
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
- EmuVR example demonstration
- EmuVR netplay update
- EmuVR with RTGI example demonstration #1
- EmuVR with RTGI example demonstration #2
External Links[edit]