Sony Megatron Colour Video Monitor

I managed to figure out the issue. My tv had my pc set as a console input for some reason. After I set it as a pc the colors were fixed for all the megatron presets. Totally bizzare that was causing it. Anyway thanks for your assistance. I’m very happy with the shaders now. They look sufficiently bright in hdr mode even with bfi turned on.

1 Like

All that and no pics?? Lol…It makes sense though, HDMI 2.1 ALLM and automatically defaulting to less than RGB 4:4:4. On many TV’s this is only available in PC Mode.

On older LGs we had to change the input label to PC to enable this and also enable HDMI Deep Color.

Glad we could help.

Try out all of the preset packs if you can and experiment with different “Display’s Subpixel Layouts” and feel free to give feedback as to which ones loom best for your display and also it would be nice if you can share your Peak and Paper White Luminance values for future reference.

Enjoy!!

1 Like

Sorry for double posting. Having some issues with waiting for approval on messages since this is a new account. Will delete those posts now. My photography skills aren’t the greatest but here is a picture. It looks a bit washed out but I can assure you it doesn’t look like that in person. This is with BFI enabled and you can definitely tell it is still plenty bright on the QD Oled. I kept 1260 for peak brightness and while using 240p suite I found that I could get up to 800 paper white while still seeing all the color steps on the color bars test. Not sure if thats the most scientific approach but it seems to have worked out as games still look reasonably accurate to my eyes.

2 Likes

Thanks for sharing! Which preset is this?

I’m glad you got it sorted out. Sometimes less is more, meaning you might see more details being preserved at lower Peak/Paper White Luminance values to as bright as they need to be and not necessarily their maximum attainable values.

For better photography, you can try Manual/Pro mode, dark room, stabilized camera, Shutter Speed 1/60 (NTSC) or 1/50 (PAL), ISO between 50 and 250 depending on if you want to get the true to life brightness or if you want to capture details in dark and bright areas, With balance - 5000K or whatever looks true to life, Focus - Manual.

1 Like

That is the PVM 2730 HDR preset. Definitely one of my favourites out of the set. I think 600 tvl is really a sweet spot for seeing the mask but still having a clear image.

1 Like

You should definitely try out my preset packs. You’ll 've in for a treat. Also I forgot to mention toggling the Mask Accurate/Colour Accurate Parameter can have a profound effect on the colour on certain displays.

Yes, I agree that 600TVL is a sweet spot lower TVLs tend to have the Phosphors “spilling” over the edges of fonts and graphics sometimes because they can make things a bit too chunky.

1 Like

I’m really curious to know if anyone has had much success on 1080 OLED handhelds. A very niche use case, definitely, but perhaps gaining popularity with the released of the Retroid Pocket 5. I’ve had some shaders that look OK on it, but most don’t seem to play nicely. I notice this pack actually has OLED specific settings, which I think helps. But it seems to me any shader pack that emulates shadow mask doesn’t work properly at all. Has anyone had much luck using shader on a handheld, even if it’s a phone?

1 Like

Yes, I use my Sony Megatron Color Video Monitor presets on a mid-range Cellphone with a 1080p AMOLED screen from 2021.

Do you have any hints for making it work properly?

The pack works almost perfectly, I have no performance probably on any mode, unfortunately it seems really hard to scale the scanlines properly. I have it set to SDR and 1080p, but most of the presets give me uneven scanlines, even with integer on or off.

It somewhat alleviates if I set the TVL to 1000 or even 800, but then the image looks more typical to other shaders, although still pretty good.

Hopefully it’s clear what I mean in this image.

That’s using the SNES Composite Slot Mask Ultra Smooth shader, set to 1080p with HDR off. 300TVL

Same thing, but set to 1000TVL, that looks like it’s scaling correctly.

1 Like

Setting to 1000TVL or 800 means no mask at all (when using the 1080p setting). I’ve just tested the Sammy Atomiswave preset, set to 1080p and 300 TVL and it looks correct on my OLED phone. This was with a GBA game though.

1 Like

Sorry, what resolution is your phone itself? You’ll have to dumb it down for me, why is it that no mask is present when set to those TVLs?

1 Like

My phone is also 1080p.

The reason there is no mask is because the TVL is devised like this:

Vertical resolution / number of mask pixels

Only whole numbers work for mask pixels (2,3,4…), so for 1080p, the best you can do is 540, which is used for the 600 TVL setting. The 300 TVL setting uses 4 pixels =270. To get a 3 pixel mask, you can set to 4k res in the shader and pick 800 TVL.

2 Likes

Ah okay, that does make more sense. Why is it that changing that setting I still look to have scanlines? I think I see what you mean about there being no mask. Setting 800TVl makes a shadowmask preset look like aperture grille.

Would you happen to know what other settings that supposedly work with 1080p are giving me uneven scanlines? I have had some success changing scaling in the shader passes, but I’m doing that blindly.

Scanlines are just drawn over the image regardless of the added mask. Your host display also has it’s own structure, which when it’s low resolution /high pitch (like a 480p LCD) makes adding a phosphor mask simulation also pointless for instance.

For slot mask, there is another variable with the slot mask height, maybe that’s interfering. It’s easier to test in Guest’s shaders I suppose.

Load one up, then pump Mask strength a bit. Use mask 0,6, or 11, then also increase the two slot mask parameters for bright and dark pixels. Finally, set the height parameter to different values.

You can also disable scanlines in Guest’s shaders so you can better see if there’s something wrong with the mask. Being scanline-free is also actually more realistic for small TV CRTs.

1 Like

Got you, that makes more sense to me.

Fiddling with those settings made a huge difference, but to be honest, not having a slot mask monitor directly to compare to, I’m not sure if I was making more accurate or not. At least in some instances it was certainly evening things up, and to eyeball it it looked more correct. I’m probably overthinking this all anyway. Would many of the base shaders included in Retroarch just work as is? The subpixel arrangement in an OLED screen makes me have doubts, some of these more advanced ones have setting specifically to allow it.

1 Like

Most shaders have the mask strength set relatively low. I don’t have direct experience with OLEDs, other than a bit with my current phone, which is also old technology. Haven’t tried gaming with Retroarch a lot there, since it seems the gpu drivers suck, barely any advantage it seems over my older LCD 1080p phone :grimacing:

2 Likes

Thanks for all your help, I think I’ve managed to find settings that I’m more or less happy with. What’s clear is that a phone of such a small size and screen the visuals are going to be difficult to see any way, so it’s probably going to be best not to worry too much.

1 Like

To encourage wider testing, i have decided to assemble a standalone version of my testing fork, compiling together the various modifications i have made for Megatron, crt-guest-advanced-ntsc, and Image Adjustment, along with some presets.

AzMods20250221

Readme with additional details

Built on top of:

  • Image Adjustment (2024.02.07) by hunterk

  • crt-guest-advanced-2025-02-18-r1 by guest.r and Dr. Venom, based in part on Themaister’s NTSC shader

  • Sony Megatron Colour Video Monitor (2023.10.09) by MajorPainTheCactus

  • with additional functions based on or inspired by Grade by Dogway

All included “CRT Megatron” presets are currently tuned for the LG C1 and other similar displays (WRGB subpixel layout, with approximately 800 nits Peak Luminance).

The included version of Image Adjustment has been modified to allow for finer control of the effects as i found appropriate.

crt-guest-advanced-ntsc has been modified to add or expand the following options

GPGX MS color fix

Corrects Genesis Plus GX’s Master System color output, which includes minor errors i discovered while implementing the Sega MS Nonlinear Blue Fix.

  • 0=off
  • 1=on (color saturation scaled to a maximum value of RGB 255)
  • 2=sat239 (scaled to a maximum value of RGB 239)
  • 3=sat210 (scaled to a maximum value of RGB 210)
  • 4=sat165 (scaled to a maximum value of RGB 165)

Sega MS Nonlinear Blue Fix

An implementation of the behavior described in Notes & Measures: Nonlinear Blue on Sega Master System 1 & Other Findings by bfbiii.

This setting automatically adjusts to work with the GPGX MS color fix settings.

Sega MD RGB Palette

An implementation/approximation of the Mega Drive/Genesis RGB palette as discussed here.

Downsample Pseudo Hi-Res

As i understand it, 15KHz CRT displays would treat double-horizontal resolution modes (512x224, 640x240, etc) as tho they were not doubled, resulting in a blending effect, called pseudo hi-res. A number of SFC/SNES games are known to have used this behavior for transparency effects, including Breath of Fire II, Jurassic Park, and Kirby’s Dream Land 3, and as far as i know it is the correct behavior for any device originally meant to be displayed on a 15KHz CRT TV/monitor.

  • 1 = off

  • 2 = Triggers the blending effect whenever the horizontal resolution is more than twice the vertical resolution. This works well with cores that either always output a pseudo hi-res image for compatibility (such as bsnes-jg), or cores that only use pseudo hi-res for pseudo hi-res content (such as SwanStation). True high-resolution/interlaced content is not effected.

  • 3 = Triggers the blending effect whenever the horizontal resolution is 480 or higher. This is needed for cores that display pseudo hi-res content in a true high-resolution container (such as Mesen-S and a number of bsnes variants). Unfortunately, this halves the resolution of true high-resolution/interlaced content, as there is no way to differentiate pseudo hi-res and true high-resolution/interlaced content in these cores.

Internal Resolution

Modified to allow up to 1/16th downsampling. (It’s a surprise tool that will help us later.)

Sony Megatron has been modified to add or expand the following options

HDR: Content Color Gamut

Out of the box, RetroArch and Megatron clamp colors to the Rec. 709 gamut (Expand Gamut set to Off in RetroAtch, or HDR: Original/Vivid set to Original in Megatron), or stretch that Rec. 709 gamut to an unusual non-standard gamut created by someone at Microsoft (?Chuck Walbourn?) called Expanded 709 (Expand Gamut set to On in RetroArch, or HDR: Original/Vivid set to Vivid in Megatron).

Obviously, this is undesirable, as all of the major “retro” color gamuts include colors that fall outside of Rec. 709.

Serendipitously, i found that it was possible to turn this problem into it’s own solution by simply adding additional color gamuts to the “HDR: Original/Vivid”, renaming it “HDR: Content Color Gamut” to better reflect it’s newfound purpose.

When using this setting, Colour System should be set to 0/r709, and Phosphors should be set to 0/NONE.

Options are as follows:

  • 0=Rec 709/sRGB (SDR HDTV/Windows gamut)
  • 1=Expanded 709
  • 2=NTSC 1953 (The OG color system that was only really used for like 5-8ish years back when basically no one owned a color TV anyway. If you are Brazillian or from a SECAM region, it may also match some old CRT TVs you’ve used with really weirdly intense greens? Hard to say. This sort of thing is kind of underdocumented.)
  • 3=RCA 1958 (?1961?) (Millennial’s grandparent’s old TV with weird colors #1.)
  • 4=RCA 1964 (Millennial’s grandparent’s old TV with weird colors #2.)
  • 5=SMPTE C/Rec 601-525 line/Conrac (Baseline standard gamut for Analog NTSC.)
  • 6=PAL/Rec 601-625 line (Baseline standard gamut for Analog PAL.)
  • 7=Dogway’s NTSC-J (Baseline standard gamut for Analog NTSC-J.)
  • 8=P22_80s (Dogway’s Grade gamut for 1980s-early 1990s TVs.)
  • 9=Apple RGB/Trinitron PC (Should approximate basically any Trinitron monitor from 1987-the mid to late 1990s. By the early 00s, they were SMPTE C instead, at least for high end monitors like the FW900.)
  • 10=guest’s Philips PC (Gamut used by a number of extremely popular monitors that used Philips tubes, including Philips CM8533, Philips VS-0080, and Commodore 1084)
  • 11=P22_90s (Dogway’s Grade gamut for mid 1990s TVs with tinted phosphors.)
  • 12=RPTV_95s (Dogway’s Grade gamut for late 90s/early 00s rear projection TVs that game manuals said you shouldn’t play games on due to burn in risk.)
  • 13=Display P3/P3-D65 (Common wide color gamut. Variant on the gamut used for film with shared primaries. Might be useful in the future if someone makes a WCG pixel game that looks best with a CRT shader?)
  • 14=Rec 2020 (HDR gamut. Again, might be useful in the future if someone makes a WCG pixel game that looks best with a CRT shader.)

Gamut Overshoot Fix

A fix MajorPainTheCactus came up with to deal with the color errors i noticed using lilium’s HDR analysis shader. (Sony Megatron Colour Video Monitor)

He decided not to implement it at the time, as he didn’t think it wouldn’t make a perceptible difference, but a friend and i both came to the conclusion that it makes certain test pattern colors look more like they do with no shaders applied, so i have continued to use it. There should be no downside. (Sony Megatron Colour Video Monitor)

  • 0=no fix
  • 1=the 7-decimal clamp
  • 2=the 6-decimal clamp (results in non-zero blacks, perceptible in a sufficiently dark room)

Scanline Multiplier/Divisor

Multiplies or divides the number of scanlines.

Useful for cases like DOS games meant for 31KHz displays, which output 320x200 that was then double scanned to 640x400.

The divisor options are handy for displaying increased internal resolution output from 3D cores that don’t include a good downsample option, such as PPSSPP. I strongly recommend using this setting in conjuction with crt-guest-advanced-ntsc’s Internal Resolution setting to reduce shimmering.

  • -1,0,1=1x (Default/off)
  • 2=2x (Doublescan)
  • 3=Auto 2x (Automatically doublescans any content with a vertical resolution of less than 300, while leaving higher resolution content unchanged)
  • -2=1/2 (Reduces the scanline count to one half default)
  • -3=1/3 (Reduces the scanline count to one third default)
  • -4=1/4 (Reduces the scanline count to one quarter default)
  • -5=1/5 (etc.)
  • -6=1/6
  • -7=1/7
  • -8=1/8
  • -9=1/9
  • -10=1/10
  • -11=1/11
  • -12=1/12
  • -13=1/13
  • -14=1/14
  • -15=1/15
  • -16=1/16

Please let me know if you have thoughts, suggestions, or issues.

3 Likes

Wow! You’ve been busy! These are some great and welcome additions to the shader @Azurfel!

I’m wondering if there is any performance impact?

I’m thinking that this updated and enhanced shader could and should be phased into the RetroArch Repo alongside the existing Sony Megatron Color Video Monitor instead of cold turkey replacing it. That would allow existing presets to look and function exactly the same, while allowing users to begin to sample and utilize the new quality of life features.

Maybe this new one can be called Sony Megatron Color Video Monitor - NTSC/HD along the lines of CRT-Guest-Advance’s multiple specialized variants.

What do you think?

I’m at a point with my miniLED preset pack that I’m very happy with and excited about, I can only imagine what even better colour accuracy and range would look like.

I’d definitely appreciate migrating the best of the best of my preset packs to something more modern (or just making a new preset pack from scratch).

Right now if you look at the shader parameters in my presets it looks like a sort of hydra with new grade plus parameters mixed in with whatever old version of grade phosphor and regional LUTs were already integrated in Sony Megatron and the main reason I integrated the new grade was to have access to the same Sega fixes, which you’ve fixed.

There are certain things I’ve noticed over time from using the shader as well. For example it’s only recently that I was able to get my slot mask slots centered and aligned with my scanlines by using a vertical offset of -1.

I just started delving more into the higher TVL’s like 600 and 800. Only today I noticed strange purplish and brownish horizontal bands of colour on lighter backgrounds in some of my presets when all I changed was the Mask to Shadow Mask. The colours also change significantly by changing to Shadow Mask. This happens when I use the 4K Display Resolution setting with Shadow Mask at 800TVL.

Changing Display’s Subpixel Layout from BGR to RWBG (OLED) seems to improve both the overall colour accuracy as well as reduce the bands of incorrect colours.

1 Like

I’m not strictly opposed, but as of now, all of the changes i have made to Megatron have been done in a way that doesn’t break preexisting presets, so integration remains an option. I just wanted to make this test package entirely standalone

I am definitely willing to maintain at least crt-guest-advanced-ntsc-decoupled (including the granular image adjustment) as a bespoke preset tho, so long as @guest.r and @hunterk don’t mind, but i would rather that wait until guest’s more recent improvements have been incorporated into the repo. Seems wrong to have those updates be incorporated in decoupled form first.

(Related aside: if you want to try importing your preexisting presets, just make sure you set Colour System to 0/r709 and Phosphors to 0/NONE, then set HDR: Content Color Gamut to the equivalent gamut. Be prepared for the results to appear desaturated if that preset was using Vivid/Expanded 709 tho. You may need to start from scratch to get the best results when using these new gamut options.)

1 Like