CRT shader for Steam Deck (and possibly low res display)

Hi,

a little update.

RetroArch is shipping with new shaders and the new ones from Guest Advanced are also part of it by default. Therefore, I updated and simplifed my presets. They are now using the shaders coming with RetroArch as a base. This makes things easier. As a bonus, I provide a list of updated shaders at the end, that look fantastic on the Steam Deck out of the box for retro handheld systems.

ps. I’d like to restructure my first post but couldn’t figure out how edit (any help?), so I’ll post the stuff here for now.


Let’s get started with some screenshots for comparison:

Sega Mega Drive / Genesis

Super Nintendo

Nintendo 64

Playstation

Sega Dreamcast

I must say, screenshots don’t do justice, especially due to the low resolution. The mask might look odd in some examples and the overall look in 3D games is darker than actually in game, for whatever reason. Brightness can be tweaked within the shader parameters if it is actually too dark for you. Just give the presets a try and see for yourself how it looks. Bezels are not part of the presets. I’m using the ones from Duimon.


USAGE:

Important - Update your shaders in RetroArch so you have the current version - Important

>>>>>> Download shader presets <<<<<<

  • Deactivate any kind of video / display enhancement, e.g. NTSC filter etc., in the core options or it will mess things up. The shader does provide everything you need.
  • The presets give you an aperture grill rgb Trinitron look. If you want something different and more prominent scanlines, change the mask type from 6 to 5 or 0 within the shader parameters.

The presets do reference the original shader in its respective directory and only include tweaked parameters. They should be placed in the shaders directory, just above the shaders_slang directory. If you want to place them elsewhere , make sure you change the path in the preset file. There are 2 presets in total.

- schM0ggi_steam-deck_guest-ntsc

This is for Super Nintendo, Sega Megadrive, Nintendo 64 and Playstation.

- schM0ggi_steam-deck_hires_guest-ntsc

This is for Sega Dreamcast and other cases where a higher resolution is being used.

Why the split? Well, games on Dreamcast run with a higher native resolution (640 x 480) compared to the other systems, therefore additional tweaks are needed. Though, bear in mind that some Nintendo 64 games offer high resolution modes - Turok 3 being one example - which, if used, might also need the “hires” shader preset. This is unfortunately a case by case basis as high resolution modes in Nintendo 64 don’t use the same resolution. It depends on the game. Again, Turok 3 is one of these examples.

IMPORTANT NOTICE:

As some systems (Sega Megadrive for example) have special characteristics, like transparency effects, there are (for easy usage) 2 parameters of interest you can tweak to change the overall look. These are:

- NTSC Merge Fields

Personally, I like 1. Set it to 0 for some flickering and rainbow effect.

- NTSC Phase

Personally, I use 2 and 4, depending on the system. 2 gives you a composite blurry picture. 3 resembles a more sharper RGB look and 4, to my observation, combines both (good transparency and color/sharpness).

Here is a comparison of Sonic and the famous waterfall with different settings. The flickering, that comes with NTSC Merge Fields set to 0, is obviously only visible in real gameplay:

NTSC Merge Fields = 0 | NTSC Phase = 2

NTSC Merge Fields = 0 | NTSC Phase = 3

NTSC Merge Fields = 0 | NTSC Phase = 4

NTSC Merge Fields = 1 | NTSC Phase = 2

NTSC Merge Fields = 1 | NTSC Phase = 3

NTSC Merge Fields = 1 | NTSC Phase = 4

CLOSING WORDS:

For Gen 5 consoles, I previously used Guest Advanced 3D. This shader does also work fine after some tuning. So, if you don’t like the 16 bit NTSC look for 3D games, give this shader a try.

SHADERS FOR HANDHELD SYSTEMS (BONUS):

As mentioned, here are the shaders for handheld systems that also come with RetroArch and work out of the box for the Steam Deck. They do look fantastic:

- dmg.slangp

For Gameboy under shaders_slang/handheld/console-border/

Deactivate colorizing option and ghosting effect. Shader does provied everything you need. Set aspect ratio in your video settings to Full. You can scale the image and overlay withing the shsader parameters.

- gbc-lcd-grid-v2.slangp

For Gameboy Color and Advance under shaders_slang/handheld/console-border/

Deactivate color correction option and ghosting effect. Shader does provied everything you need. Set aspect ratio in your video settings to Full. You can scale the image and overlay withing the shader parameters.

- lcd1x.slangp

For Nintendo DS under shaders_slang/handheld/


Happy retro gaming!

8 Likes