Sony Megatron Colour Video Monitor

Maybe if he tests another shader – a well-known one like @guest.r’s shader or lottes’ shader – and reports back we can troubleshoot whether it’s an issue with his settings or the HDR shader. Samsung QLEDs are bright buy they make a lot of dubious decisions when it comes to gamma, etc. per hdtvtest’s channel

1 Like

Probably the stock shader is best for this at first, no need to complicate things yet.



else if (Shadowmask == 5.0)

    vec4 Mask = vec4(MaskDark,MaskDark,MaskDark,1.0);

    if (fract(x.x/4.0)<0.5)   
        {if (fract(x.y/3.0)<0.666)  {if (fract(x.x/2.0)<0.5) Mask=vec4(MaskLight,MaskDark,MaskLight,1.0); else Mask=vec4(MaskDark,MaskLight,MaskDark,1.0);}
        else Mask;}
    else if (fract(x.x/4.0)>=0.5)   
        {if (fract(x.y/3.0)>0.333)  {if (fract(x.x/2.0)<0.5) Mask=vec4(MaskLight,MaskDark,MaskLight,1.0); else Mask=vec4(MaskDark,MaskLight,MaskDark,1.0);}
        else Mask;}

return Mask;



Paper White Luminance looks best at 300 with a stock shader. 200 is a little over saturated. 400 looks good but I lose contrast in the brights. Peak Luminance can bump up the brightness a little but it’s impact is insignificant.

Adjusting any of the TV settings listed above tweak things a small bit but the overall image with the shader remains dulled.

Changing to windowed mode, toggling HDR on and off, D3D11 vs Vulkan had no change.

GuestVenom looks as it should. Other games using HDR look correct.

During my testing I bounced back to your previous version of the shader and I was able to vary the image much more and get closer results. Either I had too dark an image or too dulled. Maybe it’s a gamma?

I appreciate everyone’s help and suggestions. If anyone knows of some kind of HDR test video I can run let me know.

I have a 3080 if that makes any difference. I have a laptop with a 3050ti and with Window 11 that I tested on my Qn90a. While I can get the HDR option to show up in RetroArch D3D11 the entire interface is dulled and my TV says it’s not in HDR mode even though everything is turned on. (I didn’t expect it to work but I wanted to try.)

Good evening! So today I had a bit of spare time being in isolation due to COVID (we’re all fine!) and decided to rework my shader to also support slot and shadow masks (I’m keeping the shader separate still)

This is my first attempt and I think its looking pretty good so far!

Note that the CRT photo is a from a friend who I think used his iPhone and so will be using all sorts of settings and post processing. You can see this in the clipping in the whites of his eyes etc. Also there seems to be distinct strips down the middle of the phosphors that I cant tell are due to the camera settings or are part of the display.

If someone has an standardised shot of a slot mask TV then please post it on this thread (I really need photos to do this work!):

Anyway here is the side by side please let me know what you think!

CRT Photo: iPhone: Auto Settings

LCD Photo: OnePlus 8 Pro Camera: Pro Mode, ISO 200, WB 5000K, Aperture Speed 1/60, about 10cm from the screen, 48MPixel JPEG.


I deleted my retroarch.cfg and that has changed things. Display:HDR settings look correct with a stock shader and Paper Luminance value of 40.

I need to test more things now. Sony PVM HDR still looks washed out but is behaving closer to what is expected.

1 Like

Wow thats low - what do you have your contrast and peak luminance set to? For the stock shader that is.

Peak Luminance is at 1000. Moving it up or down doesn’t change much. If I throw Guest Venom on I keep the paper white at 200.

1 Like

Let this be a graveyard of my failings. I discovered that the image viewer does not display screenshots in HDR space. HDR games look good at Display:HDR Paper Luminance of 200.

1 Like

@BendBombBoom great stuff we’re making progress. If you get my latest shader (as of last night) you should see paper white is back in the shader parameters. Be careful with Contrast though as it behaves slightly differently to the one in the menu - it’s an offset from around 5.25 i.e if you set the contrast to 4 in the menu then the contrast in my shader should be set to -1.25.

Also your TV should be able to go higher on a local level I’d set Peak to 1540.

For my shader I’d recommend for your display Is recommend peak 1500, paper white 700+ and then play around with Contrast until it looks right.

Did you not see that I already posted this pattern as well as a close up photo using this pattern? This isn’t a great one to use because it greatly exaggerates the black spaces between triads.

1 Like

Truly amazing work. I’ve never seen an emulated slot mask look this good. The TVL is almost a perfect match, too. Words can’t capture how good this is.

Edit: what pattern did you wind up using for this?


Yes and does not align well with scanlines. Of course I saw, but I don’t know any shader using that pattern (?). Which shader you know that does that?

For the matter, Lottes already did mask 1 that does that pattern (compressed-for 1440p) with kind of rotated bright “strip” (horizontally while it should be vertical in reality). Except if you want to make LCD look exactly like a CRT, so you would need an 8K monitor at least. Then the monitor just makes all the job for you, having so much space available. No rocket science.


Thanks @Nesguy! I hoped you might like it! I’m pretty excited by this as really it allows me to simulate any CRT pretty accurately on my 4K screen.

So the mask is:





For a 600TVL TV on a 4K monitor this works great. I also added ones for 800TVL, 1000TVL and those again on 8K TVs.

I’ve found some decent photos of a 350TVL PVM1910 I’m going to simulate. Also I’m hoping to get some decent pics of a JVC dot mask monitor.

I plan to create HDR presets of each monitor I can find decent pictures of so if you have any or no anybody with a CRT please point them in the direction of my thread:


Technically that is 540 TVL. 2160 / 4 pixels in Y = 540. You have 540 distinct horizontal lines (you divided your Y resolution with the black line times 4. If using Trinitron mask the Y is divided by scanlines effect :wink:).


Yes I’m aware it’s not exact, I just use typical resolutions of CRTs 600TVL, 800TVL and 1000TVL that I can approximate. However it’s also not true it’s 540 as you aren’t taking into account the slight over draw I have on the y axis due to integer scaling so it’s actually 560.

I also think a lot of CRTs aren’t truly 600TVL as usually there is an overdraw area on them. Back in the day when I developed console games on CRTs you used to have an area that you wouldn’t put critical things in so that users didn’t miss out important stuff like scores or maps. I reckon we’re roughly the same on TVL.


I second this! Very good job @MajorPainTheCactus! How come no one else came up with these patterns that work so well after all this time? Hopefully this new pattern will be something that can trickle down to other CRT Shaders as well. Right now I’m HDR-Less. Is it possible to use this shader on a non-HDR display that might happen to be bright enough?

I would add that I recently fell in love with the JVC D-Series after seeing some pictures of them in action on Reddit. I tried to get some sort of slot mask working using CRT-Guest-Advanced but the results weren’t quite there yet and I put it on the back burner.

Look out for these JVC D-Series pics at the end of this post. Unfortunately they’re not standardized.

The real deal! CRT Shaders wouldn’t be anywhere today without their ancestors!

And here’s another one!

Hi, It’s interesting that you would ask that. Just this morning I was playing around with trying to get the Shadow Mask as well as Slot Mask CRT look for different reasons. I believe the JVCs use Slot Mask, while Shadow Masks are what many computer monitors used. It’s not always that simple to get something that gels together and works properly or even matches the CRT counterparts. I don’t think the technology is quite there yet. There are always some compromises that need to be made especially if you want things to be plug and play and user friendly. Stay tuned!

This zoomed in screenshot is from one of the pics of the JVC AV-32D303 from my earlier post.

Here’s a Trinitron for comparison:

Wow! I’m completely blown away by this! It’s like we’ve reached!!

Do you mind sharing your colour tweak settings for future reference?

This is nothing short of amazing!!

Congratulations Team Mega Bezel!!


It should but it is not currently possible. Think about it this way. In order to hit 1000 nits brightness, OLEDs (Like the LG G1) need to put a heatsink on the panel…it’s difficult. HDR just means that the displays allows for high brightness.


Ok so I have some more CRT picture comparisons! I found two better images I’d been sent of a high end Sony PVM 20L4 (an 800TVL display) and the Bang & Olufsen MX8000 (a shadow mask display). I’m going to submit this to Github once I’m done with this post.

Last night I submitted a major recfactor of my shader to allow support for lots of different monitor types. You can find all the current presets in HDR and a few I plan to simulate. I’ve got fairly decent photos of a Sony PVM 1910 which is a fairly low res PVM at 350TVL. I plan to do that next and I’m also looking at photos of the JVC Professional series that use a dot mask.

Anyway here are those photos. Note I’m still a little lower res than the PVM and I’ve fixed the eyes in the MX8000. Also the colours are more off in the MX8000 but I have no idea what is iPhone processing and what is not. As always if anybody have better photos then send them my way.

Sony PVM 20L4

Bang & Olufsen MX8000

CRT Photo: iPhone: Auto Settings

LCD Photo: OnePlus 8 Pro Camera: Pro Mode, ISO 200, WB 5000K, Aperture Speed 1/60, about 10cm from the screen, 48MPixel JPEG.