Please show off what crt shaders can do!

Btw, no need to use the normal2x scaler with vgaonly. It doesn’t do anything. vgaonly naturally double-scans output. Unlike svga machine types. Only those need 2x scaling.

1 Like

On my setup scaler=normal2x is definitely needed, in fact it toggles between 200p and 400p scan doubled. I am using DOSBox staging and Intel graphics, so there could be slight differences between setups :slight_smile:

1 Like

I suspect you have some override somewhere in a conf file that sets an svga mode. I just tested dosbox-staging 0.78.1 and it definitely doesn’t require a scaler for vgaonly. The whole point of vgaonly is to do more accurate VGA emulation, including double-scan stuff.

1 Like

Updated presets. Spent a lot of time trying to get sharpness and brightness juuuuust right with the NTSC shader, and although these things are never “done,” I feel this is good enough for a release.

edit: forgot to set mask clipping to 0.00, fixed. Screenshot doesn’t reflect this.

RGB

NTSC

NTSC

8 Likes

Another update: crt-hyllian-22-06-07 - slang.zip

crt-hyllian-sinc-glow-fake-pvm preset:

crt-hyllian-sinc-glow-fake-pvm-4k preset:

15 Likes

For the folks who like their Slot Masks with Scanlines, here’s CyberLab Slot Mask II.

You have to load full resolution, then open in new tab or window, zoom in or view fullscreen in order for these to look correct because of the mask and scanline settings.

8 Likes

Guys I feel kind of silly to ask this but how do I load a preset like the one Nesguy shared? I think I am supposed to copy and paste them to a text file and then save them with a .slangp ending, correct? Then where should I place them and do I need to worry about the paths of the shaders they point? Thanks all for your contributions!

4 Likes

I always look where’s the first folder of the first shader in the chain, like this (using rgb example from Nesgui):

rgb

So I should save as *.slangp and save “besides” the shaders_slang folder. Like this:

rgb2

8 Likes

@Hyllian Wow that worked like a charm! Also I’d like to thank @Nesguy, this is some meticulous work here, you’ve balanced very well blending the dithering but also keeping the overall image sharp and let’s not forget @guest.r which without his work we wouldn’t be able to produce these results!

6 Likes

Some more gifs: https://postimg.cc/gallery/zrJc1J5

Video https://youtu.be/GrBam_Hhz0w

Download the Reshade shaders and presets: https://www118.zippyshare.com/v/irU0Fl8e/file.html

5 Likes

Looks like something was a bit off with colors and uneven scanlines. Fixed that now:

Release: crt-hyllian-22-06-08 - slang.zip

crt-hyllian-glow-sinc-fake-pvm preset:

10 Likes

Hey @hunterk what do you think about adding the bw trinitron masks to the subpixel_masks header?

I love how they look and don’t tint the colors on RGB LCD regular monitors.

   else if(phosphor_layout == 22){
      // aperture_1_3_rgb; good for 1080p and lower 
      vec3 ap4[3] = vec3[](black, white, white);
      
      z = int(floor(mod(coord.x, 3.0)));
      
      weights = ap4[z];
      return weights;
   }

   else if(phosphor_layout == 23){
      // aperture_1_4_rgb; good for 4k 
      vec3 ap4[4] = vec3[](black, black, white, white);
      
      z = int(floor(mod(coord.x, 4.0)));
      
      weights = ap4[z];
      return weights;
   }

mask 22 on 1080p screen:

8 Likes

hello, can you share it again please? thanks!!

1 Like

If you’re talking about the presets above, it depends on @hunterk adding those masks to subpixel_masks.h. Otherwise I’ll have to insert those masks inside my shaders and it’ll take some time…

1 Like

Yeah, sure, we can add those.

Can anyone describe the pixel layout for them? like, is it just black, white? Or white, white, white, black, etc?

2 Likes

Don’t no if I understood your question, but the code for the masks are these:

else if(phosphor_layout == 22){
      // aperture_1_3_rgb; good for 1080p and lower 
      vec3 ap4[3] = vec3[](black, white, white);
      
      z = int(floor(mod(coord.x, 3.0)));
      
      weights = ap4[z];
      return weights;
   }

   else if(phosphor_layout == 23){
      // aperture_1_4_rgb; good for 4k 
      vec3 ap4[4] = vec3[](black, black, white, white);
      
      z = int(floor(mod(coord.x, 4.0)));
      
      weights = ap4[z];
      return weights;
   }
1 Like

oh, you already have them ready to go <3. Sure, I’ll get it pushed up real quick.

I still need to update your shader to match your recent additions, but that’ll take more time. I’ll probably get to it this weekend. I need to do guest’s, too…

5 Likes

Don’t update my shaders on repo yet, as I’m working on them lately. Wait for when they’re more stable among releases, so you don’t waste your time. I think I need to rewrite some parameters, cut useless or obsolete options in the next weeks. I only need you to update the two masks in subpixel_masks.h so I can share the presets here.

7 Likes

ah, cool, thanks for the consideration. Just ping me when it’s ready, then :slight_smile:

I just pushed up the b/w masks but I am not able to test it, so just let me know if I typoed/broke anything: https://github.com/libretro/slang-shaders/commit/14721633b2afc91673487906f04752b9bc1b46c2

4 Likes

Tested here and it works as expected.

So I just included the two presets with these trinitron masks: crt-hyllian-22-06-10 - slang.zip

Some shaders were updated too as the parameters range should be increased.

OBS: only works if you update subpixel_masks.h from the repo. See hunterk’s post above -> Please show off what crt shaders can do!

5 Likes