Shader Presets

From Emulation General Wiki
Revision as of 10:10, 26 April 2023 by Ahayri (talk | contribs)
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/Libretro

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]

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. Disclaimer - These presets were designed to be used on the three resolution types Sonkun mentioned above 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 warm 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, Atari 5200, Atari 7800, Atari Jaguar/CD, Commodore CDTV, Commodore Amiga CD32, Fairchild Channel F, Magnavox Odyssey 2, Mattel Intellivision, 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, Sony PlayStation, Sony PlayStation 2 Atari 2600, ColecoVision, 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.[4]

  • 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

HSM's Mega Bezel - Extra

Duimon's Neo Geo Pocket/Color preset

CyberLab Mega Bezel Death To Pixels

TheNamec Mega Bezel Packs Amiga, Commodore 64, VIC20, CRTgaming

Duimon Mega Bezel Graphics

Zomb's Mega Bezel Pack

SOQUEREU's Mega Bezel TV

Orionsangel's Realistic Arcade Overlays

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

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 (like xemu, Dolphin standalone, RPCS3 or PCSX2 nightlies) or a PC game running in a window and then processing it with RetroArch's shader stack. 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

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.

ReShade

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.

Vasiliy.M.'s PCSX2 CRT

Demonstration

Notable ReShade shaders for using with Presets

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 games.[5]

Reshade needs depth buffer access to make the RTGI shader work properly.

Future

EmuVR rooms

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

Main article: Virtual_reality#VR_game_room_simulations

External Links

  • Libretro docs: Shaders
  • Shonumi's comment about shader extensions and using with different programs
  • YouTuber Retro Crisis has made a video showcasing Sonkun's presets
  • RetroArch – Introducing the Mega Bezel Reflection Shader
  • Ray Tracing Revolution's video about RTGI