Sony Megatron Colour Video Monitor

Ah, so that is what Mask Accurate was supposed to be doing. Colour Accurate has never done anything like that on my LG C1 with a WBE/“Evo” panel (a WOLED). Colour Accurate always had masks that look much like 2.6.2’s masks for me, and Mask Accurate’s masks always looked like 2.8.0’s masks. (See this post for closeup photos).

Perhaps it only happened on the 2016-2018 or 2019 models? Further testing would be required. (You observed this happening on one of the 2016 WOLEDs, correct?)

That was the result of a bug introduced in the 2022.10.25 build (i still have the old versioned folders that i used to bisect) that was causing near-black colors to significantly overshoot their target luminance. Others verified that it was happening to them as well, and you yourself eventually found that it was happening to you, and you had just calibrated some of your presets around mitigating and minimizing it.

The bug was fixed and Megatron was better for it. If this is meant as an argument that i should assume that my entire setup is giving fundamentally invalid results and i should stop testing and posting about issues i notice, then i honestly can’t say that you have convinced me.

I have never said I thought any option should be removed. I have consistently advocated for as many useful options as possible, and even added additional options myself in the AzMods fork of Megatron, without ever removing a single one. If I had wanted Mask Accurate gone, I could have very easily removed it from those AzMods versions.

If you are referring to this post, you suggested that no WOLED user ever said anything about Mask Accurate having color accuracy issues. At which point i, a WOLED user, pointed out that I had, in fact, found that to be an issue. That seemed like very relevant information in my opinion, and it certainly wasn’t a suggestion that i was glad that the option was gone or anything like that.

Relatedly, i have made a preset pack to facilitate properly testing this issue on other displays:

~2.8.0 color and mask accuracy testing

This includes presets with matched settings for Megatron 2.6.2 and 2.8.0, along with matching AzMods20251218 Megatron v1 presets for Colour Accurate and Mask Accurate.

The matched settings are derived from the 2.8.0 defaults, with the RBG “WOLED” subpixel layout selected. The included Megatron 2.6.2 is also a modified AzMods version, because the original Megatron 2.6.2 no longer loads on current nightly builds, due to changes made during the recent scRGB updates.

Please see this post, and if possible, use that same scene in Sonic the Hedgehog to test and take pictures, since we have a good photo of an actual Trinitron to compare our results with (thanks again to @Hyllian).

Okay, my apologies I think I was mixing up what you were saying about Vivid Mode vs Original Colour Mode. It seems like you were neither a fan of either Vivid Mode or Mask Accurate Mode.

I’m glad you were able to review the history and original purpose of the Mask Accurate mode.

I could have sworn I read a little back and forth between you and MajorPainTheCactus concerning the fact that the Mask Accurate Mode in the new Sony Megatron is also supposed to be Colour Accurate, so I interpreted that as you having an issue with the Mask Accurate Mode in general, both in the old and in the new Sony Megatron Colour Video Monitor.

Anyway, I trust your judgement and measurements in most cases so I trust that there really is some sort of issue with the lit subpixels not matching the real Trinitron Photo when using Mask Accurate Mode.

It’s good that we have people like you around to provide proper testing and constructive critism in order to ensure that the quality of what we’re doing here is second to none. I just feel bad for @MajorPainTheCactus sometimes for all the work that he has to do and also when we and others may not fully understand his vision.

Are you suggesting that I test this on my 2016 WOLED? If so, that display is no longer in service and I have since moved on to miniLED.

Yes, if you check back in the posts and photos from myself and other users, you will see that it was present in all of our pics. However in some of my very early photos where I had things deliberately setup incorrectly, the extra subpixels were not lit. I think that was when I was using an HDR Preset in SDR mode and HDR was off in RetroArch Video Settings. Once HDR was On and I was using an HDR preset, the problem persisted.

Will now go back to check and verify this.

Here are the relevant posts showing the correct era and the settings where the issue was noticed and other related posts:

1 Like

Sounds like the parameter descriptions need to be more specific.

2 Likes

I think it would be helpful see how all display types behave in this regard, so whatever you are currently using, if you feel like it, do check and see how each of those presets looks, and how their phosphor layouts compare to that photo of an actual Trinitron. (Currently, you will have to change the display type/subpixel layout of the presets manually. I should probably just update that pack with presets for all 3 layouts.)

Oh! That was when @MajorPainTheCactus was talking about keeping the HDR options menu in RetroArch itself as minimal as possible. My personal preferred option was and is exactly what ended up happening, with multiple “Colour Boost” options to cover various use cases, or a HDR shader with additional advanced options (and @MajorPainTheCactus ended up giving us both of those things, which was even better.)

Not personally, no. But the more options the better so long as they aren’t causing issues for those who don’t want to use them. I actively loathe edge enhancement/sharpening as an effect, but i would never in a million years remove it from the decoupled versions of crt-guest-advanced-ntsc i’ve been making for the sake of my personal distaste.

And i’ve still found that the old “expand_gamut” function that the Original/Vivid parameter used is the best way to add additional gamuts to Megatron. You never know when it will turn out that an option can be expanded into something bigger.

1 Like

Look you need to trust what I’m saying to you - yes there are overall luminance differences but at the peak (middle) point of the scanline there aren’t. So if you can ignore the sony megatron for the time being (which is a far more complex shader) and see if you can see the issues between HDR output with scanlines off and the HDR output with scanlines on we can start to figure out where youre seeing differences.

1 Like

So you’re comparing an SDR image with a HDR image but what youre not taking into account with the above comparisons is the colour of the actual light emitting hardware - the red phosphor in the former case and red OLED sub pixel in the latter case. Both red’s at full red (1.0, 0.0, 0.0) will look totally different. In order for full red in the latter case to look like full red in the former case we need to transform it i.e apply the r2020 transform matrix to the full red i.e SDR r709 (1.0, 0.0, 0.0) == HDR r2020 (0.63,0.07,0.02).

This becomes even more odd with pure green SDR r709 (0.0, 1.0, 0.0) == HDR r2020 (0.33,0.92,0.09) Notice how much red is turned on - you will see that red sub pixel.

BUT if you took a step back from a certain distance the two reds (or two greens) will look identical Your OLED screen will look identical to your Sony 21FS140.

So there’s an important lesson here HDR will ALWAYS look different in terms of its close up phosphor pattern to SDR. If you want accuracy on this level use a CRT or an OLED with an insanely bright SDR. But if you want the brightness of HDR to accurately match in colour the SDR then you are going to have to put up with a different sub pixel pattern BUT it will look the same.

The important point to note is that the mask does not effect chromacity whether you do it this way:

Mask BEFORE transform: (0.63,0.07,0.02), (0.33,0.92,0.09), (0.04,0.01,0.90), (0.0,0.0,0.0)

or this way:

Mask AFTER transform: (1.0,0.0,0.0), (0.0,1.0,0.0), (0.0,0.0,1.0), (0.0,0.0,0.0)

Both display the exact same white as both r2020 and r709 share the same D65 white point.

The latter however is more accurate to how a CRT would work when an OLED uses a CRT mask which after all is what we’re after.

2 Likes

Just to add I will investigate if these differences are to be expected or there is a genuine bug in here so fear not but I am trying to make you aware that differences in pixel patterns are to be expected but not chromaticity from a certain distance away.

1 Like

By the way folks, some news about RTINGS:

1 Like

As i said, the internal HDR menu scanlines display the exact same color inaccuracies as Megatron 2.6.5-2.8.0.

I have additionally been mentioning the old Mask Accurate/Colour Accurate setting, because the inaccurate colors in 2.6.5-2.8.0 are inaccurate in the exact same way that i found Megatron v1 had inaccurate colors with Mask Accurate selected, and, as far i understand it, the 2.6.5-2.8.0 methodology is effectively a re-implementation of Mask Accurate.

The color inaccuracy remains unchanged even from 7’ away.

That said, i think it’s best i be upfront and forthright about this: i sit about 3-3.5’ away from my 48" C1 that i use as a desktop monitor, and that absolutely isn’t changing. If the colors don’t look correct at that distance, then i fundamentally will not ever consider the result to be usable.

If you consider that to fall outside of valid use cases for some reason, that is your prerogative, but i am seeing these color accuracy issues at my normal sitting distance, not by pixel peeping.

This is the part i am genuinely not understanding: 2.6.2 demonstrably had the more hardware accurate simulated phosphor patterns, and, as far as i am seeing, also has more accurate color? So i’m not seeing what the upside is meant to be.

Like, perhaps this is a WOLED/C1 specific thing, but having looked through the old posts that @Cyber suggested i take a look at, you originally added the Mask Accurate/Colour Accurate toggle in the first place because you noticed what sure sounds like these exact same color inaccuracies that i am seeing now.

You said that the 2.6.2/“Colour Accurate” method “destroyed the mask being correct”, but i’m still not understanding what you mean by that when directly comparing 2.6.2 and 2.8.0 with matched settings. All three simulated phosphors always being lit for every color but full black in 2.8.0 is the main difference i notice in the mask, so i thought that may have been what you meant. But the individual simulated phosphors don’t look any different. What am i supposed to be seeing here?

We should just meet up at RetroCon (RetroArcCon?) and get to the bottom of the differences between what we’re all seeing, learn from each other the deeper aspects of making presets and scripting shaders, and actually get to share with each other so we can all see what the other is seeing.

Cyber/Guest/Cactus heading up a CRT Shaders panel sounds epic. And possibly like a total headache for them. :rofl:

2 Likes

This is tough to watch. I think I understand where both @MajorPainTheCactus and @Azurfel are coming from. Azurfel is saying, why can’t Megatron match the exact R-G-B mix to create colour as an actual CRT that we’re trying to simulate and @MajorPainTheCactus is saying that it’s impossible to do so while still having accurate colours because the subpixel primaries are different for a CRT and a modern display, especially in HDR mode.

Somebody, please correct me if I’m wrong.

I’m thinking that if it was possible for the CRT Shader phosphor/Mask output simulation to match the actual CRT’s Phosphor mix and colour accuracy verbatim while in HDR Mode, that @MajorPainTheCactus would have implemented it already but it’s probably not so the current implementation is the best we can hope for and the best compromise at least for now.

@Azurfel, I hope you realize that you are opening an entire new layer of pedantry with the desire to have only the primary subpixels light up when the primary Phosphors light up and once we see something it cannot be unseen.

Are you saying that there was a point in time already, where the goal you seek was in fact achieved within Sony Megatron Colour Video Monitor or any other shader (while in HDR Mode) but then discarded or this is something new that should be strived for?

Do remember the challenges I showed you with the lack of purity of the “Phosphors” when using Colour Accurate Mode in HDR Mode on at least a few users’ LG WOLED displays, that didn’t and still don’t seem to occur on LCD Displays.

Also note that these have only been picked up by zoomed in photos of the display, which is one of the reasons the issue was so easy to identify in the first place since users were doing lots of photo comparisons to real CRTs in the early days of Sony Megatron Colour Video Monitor.

I think we should allow @MajorPainTheCactus to complete this update based on his vision and help him iron out any bugs within the framework of what he was trying to do, not necessarily what we think should be an improvement, at least for now. So a feature freeze. Get the thing stable and out the door, then do some more research and collaboration toward the next point or major update which might include a new mode or a better way of doing things.

I’m not sure if the examples you posted with the Sonic CRT photo for comparison show the same issue that the Mask Accurate Mode sought to correct.

In your Sonic example the image is still “Mask Accurate” I.e. it only consists of colours from within the simulated Phosphor/Mask structure and primaries. So only Red, Blue and Green from the mask that Sony Megatron created that looks like an Aperture Grille or Slot Mask.

The problem with the old Colour Accurate Mode was that the Mask was created in SDR Mode and was fine in SDR Mode, however when converted to HDR Colourspace and HDR Mode was enabled, additional subpixels, which were not a part of the original Phosphor/Mask primaries and structure were being lit at the display’s subpixel level, not just at the (emulated) Phosphor Level. So besides having intermediate colours which have no place in the mask, for example purple, yellow, orange imposing themselves on the Mask, this was like splashing random paint colours to deface a piece of artwork and destroyed or distorted the look, shape and structure of the CRT Phosphor Mask, we’re trying to recreate.

To me that defeats the entire purpose of subpixel accurate CRT emulation, which is why I have always been in the Mask Accurate camp and not in the Colour Accurate camp, at least with my LG 55OLEDE6P.

There could be various reasons why you never experienced or documented this anomaly. Maybe it’s because of the way your device is calibrated or differences in the panel design, OLED composition, software or tonemapping behaviour.

1 Like

I already covered all of this in my last post, but i think i can do a better job of distilling it:

Colour Accurate existed because @MajorPainTheCactus independently found that Mask Accurate had poor color accuracy.

As best as I understand, 2.6.5-2.8.0 are effectively forcing the use of a re-implemented iteration of Mask Accurate, and the colors in 2.6.5-2.8.0 have identical accuracy issues to the color accuracy issues i saw in Megatron v1 with Mask Accurate.

I have no reason the think the color inaccuracy I am seeing now is any different from the color inaccuracy @MajorPainTheCactus was seeing in that post three and a half years ago. I see significant desaturation along with a red shift/tint, and he specifically mentioned a shift towards red in that years old post.

The “Sonic”/phosphor pattern stuff is no longer relevant, i only brought that up because i thought that the change in phosphor patterns was the actual purpose of “Mask Accurate” methodology, not a side effect.

(Genuinely, ty @Cyber for explaining what the original intended purpose of the Mask Accurate/Colour Accurate setting was. While i had previously searched the thread for “Mask Accurate” and “Colour Accurate”, i did not have the context to know that i needed to search for “WOLED” for the actual background.)

2 Likes

The order of the mask is colour invariant at least in the new way its being done - it is not the same as the old ‘Mask Accurate’ that was warping colours, the new way isn’t. The point is: forget about the mask its not the cause of whatever colour differences you are seeing. The mask is purely about what is more correct as to what a CRT would do.

As I say whether white is displayed as (0.63,0.07,0.02), (0.33,0.92,0.09), (0.04,0.01,0.90), (0.0,0.0,0.0) or (1.0,0.0,0.0), (0.0,1.0,0.0), (0.0,0.0,1.0), (0.0,0.0,0.0) makes zero difference to its chromacity and indeed its luminance. Same goes for red whether it is displayed as (0.63,0.07,0.02), (0.0,0.0,0.0), (0.0,0.0,0.0), (0.0,0.0,0.0) or (0.63,0.0,0.0), (0.0,0.07,0.0), (0.0,0.0,0.02), (0.0,0.0,0.0) makes no difference in chromaticity or luminance. Same goes for green, blue, cyan, yellow, magenta, black or any other colour you care to mention, the mask order is colour invariant.

However the latter arrangement in the above cases is more correct to a CRT.

1 Like

So just to be clear youre happy with the colours in HDR without the scanlines? (and without any custom shaders running)

Yes. Without any custom shaders, or when using hdr-config.slangp, colors appear correct when using Colour Boost: Accurate or the equivalent.

The internal HDR scanlines and Megatron 2.6.5-2.8.0 have literally identical color inaccuracy to that which i can see with Megatron v1 when using Mask Accurate (accounting for all of the improvements of Megatron v2). In the same sense that 2.6.2’s colors look like Megatron v1 when using Colour Accurate (accounting for all of the improvements of Megatron v2).

It is possible that this is pure coincidence, i am simply describing what i am seeing. There is greater desaturation with the internal HDR scanlines and Megatron 2.6.5-2.8.0 compared to Megatron v1 when using Mask Accurate, but that may be a knockon effect of the improvements in Megatron v2, or it may be an additional bug unto itself.

So let’s assume that is true for our purposes.

That still means the color of our simulated phosphors would be the Rec2020 primaries.

And last i knew, there literally aren’t any consumer displays that are capable of actually reaching all three of the Rec2020 primaries, which could be variably skewing the results depending on the exact display, it’s native primaries, and how it processes and handles those out of gamut colors.

I would like to take a step back and verify something:

This results in the pure full saturation sRGB red (255, 0, 0) activating the following simulated phosphors: a red phosphor (0.63,0.0,0.0), a green phosphor (0.0,0.07,0.0), and a blue phosphor (0.0,0.0,0.02), which looks like this on my display:

pure red activating all primaries in 2.8.0 (scaled up)

(One full simulated phosphor triad at 4K 600tvl, so approximately 12 subpixels across, rwbgrwbgrwbg)

That part is actually intended and isn’t just a bug only i am seeing, right?

Hi all, anyone managed to get hunterk’s scanline noise (voltage modulation?) code working with v2?

@Azurfel can you in your spare time post some macro shots of some grey or white content showing how the different Masks and TVLs look on your WOLED TV please? I’m mostly interested in Slot Mask and Aperture Grille (but feel free to include dot mask as well) and would like to see how well they scale to different TVL’s on that display type before the white subpixels gap makes them look weird or not as intended.

I just want to do a sanity check and make sure the information about RWBG/WOLED I’ve been sharing is accurate and up to date.

I’m more interested in Mask Accurate Modes or modes which don’t introduce any additional subpixels besides R-G-B.

A quick heads up: I just got a new Windows 11 laptop (a ASUS ProArt to replace my ageing 2017 Dell XPS) and have noticed a number of bugs in HDR: firstly in Vulkan I don’t get a HDR option and secondly in D3D12 (and maybe 11) the colours are all broken in HDR10 (like HDR is broken colours washed out) - I have to put it either into scRGB or set the peak and paper luminance to 200 to fix it. Ill try and fix all these issues over the next few days.

3 Likes