Sony Megatron Colour Video Monitor

Ok the white point thing would explain the clipping- I was using 6500K with NTSC-U, so 13000K :joy:

To clarify, NTSC-J just means white point = 9300K? There’s no phosphor gamut stuff going on?

That’s interesting, because I think it was created to have better control over the highs and lows. Not disagreeing, mind you. I’ll take your word for it :smiley:

When you get the time, could you maybe post some representative shots of what it looks like on your laptop so that I (and others) know what to expect?

Can the laptop get bright enough to do the crt phosphor glow thing that you can see in the HDR shots?

Is there a way to just crank up the color channels? (maybe getting ahead of myself) Part of this is just the learning curve that comes with any new shader.

I’m continuing to get ahead of myself, but there does seem to be something going on with the low end. Happens with any gamma value above 0. Is this to be expected?

settings for this shot:

shaders = "3"
feedback_pass = "0"
shader0 = "shaders_slang/hdr/shaders/crt-sony-megatron-source-pass.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "SourceSDR"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/hdr/shaders/crt-sony-megatron-hdr-pass.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "SourceHDR"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/hdr/shaders/crt-sony-megatron.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = ""
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
hcrt_hdr = "0.000000"
hcrt_crt_resolution = "2.000000"
hcrt_brightness = "0.500000"
hcrt_contrast = "0.000000"
hcrt_gamma = "0.500001"

No it’s got all the phosphor gamut stuff.

So what your saying is right with the highs and lows but what I’m more interested in subtle control of between the highs lows. I’ll post a graph of what I mean as a picture is worth a thousand words.

Here’s video of SDR on my laptop (do playback at high quality - preferably 4k):


Those videos do indeed look bright enough! Very nice. Are you doing anything to the default settings?

Okay so the phosphor gamuts are rolled into the “CRT Colour System” settings? I think the phosphor gamuts might be why it’s looking “off” (as in clipped and oversaturated/weird) because the crt phosphor gamuts use colors that are outside of the sRGB standard. A toggle switch for this would be very handy, as most SDR monitors are sRGB and don’t have the wide gamut necessary to display the phopshor gamuts without looking weird. Or just make it so the phosphor gamuts are disabled when sRGB is selected.


Yes I remember you saying that about phosphor gamuts - is it that bad though as they’re quite subtle at least in my monitor. Certainly I use a much stronger expanded 2020 gamut than those ones for HDR and whilst it probably does clip (as that is kind of the point) it’s not bad enough to really notice. My monitor uses either a DCI-P3 or sRGB colour gamut in SDR. I think it uses the P3 by default.

I will add a skip though - where did those gamut matrices come from? Do you know?


Just to say because I didn’t answer earlier: no that’s all the default settings contained in the SDR versions of the presets. I’m pretty sure at least - play around with gamma, brightness, contrast and saturation though - you might find a better combination.


Most of the info on the gamuts is buried in the dogway grade shader thread.

But yes, it’s strongly advised that you use a wide color gamut display with the CRT gamuts. The colors are way outside of range otherwise.


Right I do still need to read all of Dogways thread - got up into the 200+ range but never quite finished it.


Sorry what quite is happening in the low end - that picture on my phone goes all rainbow on me. There quite possibly are lots of bugs still to iron out by the way in the colours so anything like this is good to hear - half the battle is identifying them.


it’s like there’s a bump at the very low end where it suddenly gets brighter, then darker again.


you might be able to see it better if I smash the settings more:


Using the settings @Nesguy posted in the Please Show Off What CRT Shaders Can Do Thread as a starting point and playing around with most of them until I got something that didn’t look so bad or green, I managed to get something acceptable looking when I tested Super Mario Bros. NES. I tried Gate of Thunder PCE though and the colours could definitely do with some further tweaking.

I agree with @Nesguy that @Dogway’s Grade might be of great help here. I could definitely see the Hue setting playing a role in making it easy to get things dialed in the way I like. Grade also does some nice things to the contrast.

So, my LG 4K60p 4:2:0 TV can use the shader but I’m limited in terms of what TVL’s I can use, especially with the Aperture Grille setting.

The Shader looks great with both the NTSC shader that @Nesguy added as well as with my custom settings for Blargg NTSC video filter.

The first glaring issue I’m having is uneven scanline intensity. I haven’t touched the scanline settings from @Nesguy’s preset.


I think we have to wait and see what things look like after turning off the phosphor gamut, assuming you’re using an sRGB display. It sounds like the essential features from grade have been added, we just need a toggle switch for phosphor gamut.

Also, try mashing gamma and brightness. This has the unfortunate side effect of raising the black level in a bad way, though.


Yup I’ll look into and fix all those things above however I have my family in London up visiting us in Scotland so it’ll be next week before they appear in GitHub. I can point you in the direction in the shader itself if you want to do things yourself locally and of course I’ll be here providing moral support as always.


As I say I’ve implemented all the core features of Dogway’s. I’ve left a few things out on purpose mainly because they don’t make much sense to me in terms of CRT emulation such as hue. Things I don’t like such as fake vignettes. Things that need a bit work that I may come back to such as LUTs. Things that don’t seem to do anything - I think the first chunk of shader is skipped for instance. Things that are a bit of an extreme that would be barely used like some of input/output colour gamuts.

Ive streamlined it so to speak so as not to overload users with complex options that only a couple of people will understand and to automate things.

As I’ve said already sigmoidal contrast is in there - it just doesn’t let you go up/down to extreme levels on contrast and stays more in the middle for subtle tweaking.

Hue changing really doesn’t make sense to me - what mechanism in a CRT would break that would end in rotating around in hue space? They have three RGB beams in them not a hue beam - even in YIQ space that the signal is in it’d be odd for the I or Q channels to result in purely a hue rotation. Changing hue is a very dramatic change and most people would probably throw out their TV if it occured so I’m not sure why you’d want it in a CRT shader. 🤷 Putting in chroma brightness and contrast might be an idea though.


An explanation of sigmoidal contrast and brightness and what I’m doing. Sigmoidal curves are just a group of equations that produce an ‘S’ curve. Bezier curves are a superset of sigmoidal curves as in they can produce signmoidal curves but also a whole range of other curves.

From this page here are the graphs for sigmoidal contrast and brightness:

In my shader I’m using these bezier curves (with scaling in the x direction):

Increase Contrast:

Decrease Contrast:

Increase Brightness:

Decrease Brightness:

The thing to note is the similarity to the ‘40’ values in the previous graphs - yes we dont get up to the extreme 80 values but we’re getting up to the 40 values. Also I add on a scaling in the x direction centered around 0.5 and so you can see you can get even closer to the exreme 80 end of the spectrum.


I get this you know but the fact is the shader looks pretty different depending on what TV or display is being used. I’m on a 4:2:0 TV so maybe a hue setting can help dial things back if they are off. I know that same can be accomplished probably by using the parameters you have provided there already, it’s just that I’m already used to Dogway’s controls. Hue is important because depending on the mask strength, individual LCD subpixel layout or mask size, colour can be thrown off a bit at least with the GDV which is what I’m used to.

Don’t feel any pressure though, I’ll try to learn how to do things using what’s available in this great shader.

The phosphor emulation is top notch, has me wondering if I can coax GDV phosphors to look similarly on my TV!


Yes ok so I’m trying to understand how are you expecting a hue control to help with chroma compression as in your 4:2:0? 4:2:0 will be lowering the resolution of the chroma channels (or images if you will) it won’t be fixed by rotating through the hue axis. The HSL and HSV colour models are very different systems to YIQ or RGB.


Don’t worry about it. I was talking based on my experience with playing around with mask strength and size settings on different types of screens.

Now that I’m getting more familiar with the Shader, I’m seeing better results. I had something looking pretty good earlier but I accidentally saved my new settings with the same name as my reference and it messed everything up. Perhaps some sort of check and fallback to Full Presets might avoid this taking place.

It’s okay though, I’m going over your included presets again and I kinda know what to expect from my TV now so I should be able to get things back the way I want them to be.

I really had it set nicely though. Can’t even remember which of your presets I started with.


Yeah I’ve honesty never found the hue controls to be particularly useful. I personally have never used it and I’m not sure what situation you would use it for. :man_shrugging:


Throwing the hue off is something that can happen with mismatching mask vs subpixel layout, but you wouldn’t want to try and compensate for it with hue controls because it would just clip/crush everything.