Sony Megatron Colour Video Monitor

I might have something that could potentially help with that. Let me get the AzMods feature set ported into v2 and we will see what you think.

I know i’ve always used Colour Accurate on my C1 because Mask Accurate messes up the colors, and i remember you’ve mentioned getting “burnt orange” reds before, which is one of the effects of the color skew i see if i switch to Mask Accurate.

1 Like

Please don’t take that out of context.

I wasn’t complaining about anything that Sony Megatron was doing or not doing. Just stating what I was observing my TV doing when Saturation and/or Paper White Luminance was affecting the red colour in particular, when it was below a certain threshold.

That was more about me realizing the brightness limitations of the TV and seeing how harsh things looked when I had been setting things up for viewing from a distance. I used to set Paper White Luminance to 630.

When I started sitting closer, I experimented with lowering the paper white luminance to 450.

For me to determine if it had anything to do with Mask Accurate/Colour Accurate that mode, would have taken further testing that I never bothered to do because there was never any concern about if that was a potential cause or contributor to that behaviour.

In fact, that sepia tone I used to see on my LG E6P WOLED predated the implementation of the Mask Accurate/Colour Accurate mode addition since that is how the colours looked before adjusting the Paper White Luminance values since trying out Sony Megatron Colour Video Monitor the first time and not getting it to look or work properly until after several attempts over a period of time.

As far as I can recall, reds can look differently (orange or brownish, even on my current miniLED TV (on which I exclusively use the Colour Accurate Mode) if Saturation is set too low. There’s always a balancing act for me between clipping the reds or other colours and getting them to look the way I want in terms of tonality.

Also remember that phosphor choices also skew the appearance of red significanty and that I haven’t used the default Sony Megatron Stack that much in years. Mine is a mix of the old Grade sections built-into Sony Megatron Colour Video Monitor and the Official Grade V2. So potential colour skewing and the need for additional tuning is not something that would intimidate me.

Even by changing the Mask type there are changes in colour and tonality, similarly for changing the TVL.

So I’m not here to argue as to who is right and wrong but if something doesn’t affect you, why should you be bothered by something that is designed to assist others who are affected differently or have a different preference to you?

At the end of it all, I’m kinda tired of the whole culture of online debating and stuff like that. Don’t take this personally as I have nothing against you personally. I think I’ll just leave it up to @MajorPainTheCactus to implement, achieve and realize his vision for the new Sony Megatron Colour Video Monitor and see how things are when the dust settles.

Remember, Mask Accurate/Colour Accurate is a fix for the inability of the LG WOLED panels to produce pure RGB triads, which is one of the reasons for doing subpixel mask emulation in the first place. The obvious and well known possible side effect of less colour accuracy is something that has never hindered me in anyway. As I just turned the knobs, used Grade, saturation, white balance, gamma, adjusted scanlines as necessary to get colours to a satisfactory level.

In any case, I don’t even use an OLED TV anymore but I do think about those who still do and the legacy of presets and how exciting it is to see those RGB triads all the way from the couch to the screen.

It’s just the way, I try to build my presets, from the subpixel and scanline up.

This is a video which mentions the WOLED reds looking orange issue and I’m almost sure it isn’t the only one.

https://share.google/aimode/rK7bpGMbRxgg8FL1k

1 Like

Yeah Ive been able to resolve the specific problem by splitting up the linear to 2048 calculation BUT its introduced a whole slew of other issues to do with energy loss - the rec2020 operation inside that which I break out normalises the HDR value and then you have go around reintroducing the energy. This is all fixable I just need to sit down and do it properly whilst retaining as much of the look of the shader as possible.

Ill get solutions to the other issues weve discussed before I progress on this I think as they’re much easier to deal with.

2 Likes

AzMods20260121

Megatron v2 has been fully integrated. I have also included the previously unreleased AzMods20251218, which is the final version i plan to release using Megatron v1. (Tho i may be willing to consider backporting future changes if specifically requested to do so.)

Megatron v2 has been modified to use it’s own parameters for “Enable HDR” (“SDR | HDR”), “Peak Luminance” (HDR: Display’s Peak Luminance"), and “Paper White Luminance” (HDR: Display’s Paper White Luminance"), rather than using RetroArch’s internal settings.

As usual, the setting now called “Colour Boost” has been hijacked/replaced with “HDR: Content Color Gamut”, described further in the AzMods readme included below.

(TL;DR version: Megatron’s “Colour System” and “Phosphors” settings are currently unable to properly exceed the Rec709/sRGB gamut. I discovered that it is possible to implement additional gamuts in the “Expand Gamut”/“Colour Boost” setting, which does allow for colors outside of the Rec709/sRGB gamut to be properly displayed.)

As a result of the HDR settings being included as shader parameters, the included version of Megatron v2 does technically work on older versions of RetroArch… with some fairly minor bugs i discovered while integrating the other AzMods changes. Specifically, if, after loading a shader that utilizes the AzMods versions of Megatron v2, you disable shaders or load some SDR shaders, the tonemapping goes a smidge haywire. This can be corrected by loading a different AzMods preset that utilizes Megatron v2, restarting your current content, or restarting RetroArch.

There may be other bugs, and i would really recommend just using a RetroArch build from 2026.01.20 or newer that includes @MajorPainTheCactus’s lovely HDR revamp and the subsequent fixes if you aren’t allergic to nightly builds.

I will not spend significant time supporting AzMods on versions of RetroArch older than the 2026.01.20.

The Gamut Overshoot Fix is no longer included, as it is incompatible with Megatron v2. Based on preliminary visual inspection, it no longer appears to be necessary anyway. Lilium’s HDR analysis ReShade does still show some gamut errors, but i tentatively suspect they are not visible to the human eye.

Readme with additional details

Built on top of:

  • Image Adjustment (2024.02.07) by hunterk

  • crt-guest-advanced-2025-11-30-release1 by guest.r and Dr. Venom, based in part on Themaister’s NTSC shader

  • Sony Megatron Shader V2.6.1 (2026.01.21) 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.

0 IRE Device on 7.5 IRE Display

This setting automatically modifies the “Raise Black Level” setting to simulate what would have happened if a device with 0 IRE black (NTSC-J standard) were connected to a display calibrated for 7.5 IRE black (NTSC standard). This applies to both the Japanese and US versions of literally every single CRT targeted Japanese designed console other than the PS1 and PS2*, which had regional IRE. (*I haven’t been able to find absolute confirmation that the GameCube and the Wii used 0 IRE universally, but that is the general consensus.)

Note that this issue did not apply for component/YPbPr and RGB connections.

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

The Gamut Overshoot Fix is no longer included, as it is incompatible with Megatron v2. Based on preliminary visual inspection, it no longer appears to be necessary anyway. Lilium’s HDR analysis ReShade does still show some gamut errors, but i tentatively suspect they are not visible to the human eye.

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
1 Like

Took the new Sony Megatron Colour Video Monitor V2 for a spin with no additional shaders and it’s looking really good and I can immediately identify the accessibility and image quality improvements.

I didn’t have to adjust any Luminance settings as I already use RetroArch with HDR On 24/7. I didn’t have to touch Gamma, nor Saturation, nor Colour Temperature.

I’m just posting these here first as a tribute to you and a token of my appreciation to you @MajorPainTheCactus, @guest.r and all other shader developers whose work went into creating these shaders.

Great Job!

Before you ride off into the sunset again to take care of your real life business, I would like to know what inspired you to arrive at those insane Scanline Dynamics that I’m seeing in the new V2 presets. I haven’t yet reached that level of abstraction to fully employ independent red, green and blue beam dynamics as well as differences in beam sharpness between colours. Did you make that stuff up? Eyeball? Read a book?

2 Likes

@MajorPainTheCactus I just stumbled upon an interesting bug with the new HDR implementation.

Any SDR preset that does not include a “scale_type” line ???in the final shader of the chain??? seems to unintentionally override RetroArch’s HDR Luminance settings to 10000 nits o.O

bfi-simple.slangp in the subframe-bfi folder is one example.

1 Like

While we’re on the topic of bugs, the v2 preset with “GBA-GBI” in the Filename failed to load for me.I haven’t checked a log or anything to see why.

1 Like

any issues with the colors of the box arts over saturated/contrast in the RetroArch UI present after this update?

I ran into an issue and wanted to know if it was a bug.

1 Like

Im planning on creating a ‘hdr.slang’ file you can drop in at the end of a preset that will do your colour gamut stuff overriding the built in 709 to rec2020 conversion (but maybe youve effectively done this already?). Im going to also provide a v2-manual that allows users to manually set the peak luminance, paper white etc in the settings so that they can be stored in a preset on a per preset basis. Hopefully both should resolve the problems youve pointed out.

2 Likes

Thanks Cyber glad the effort is paying off, a bit at least. Lol. I was scared the rewrite of the mask system would break all those million masks apparently not! As for how do you learn this stuff, apart from 30 years writing graphics engines in games industry, just sitting down and messing around there’s definitely some technical references like Khronos group docs and the Physically Based Rendering book but Gemini and Chat Jippity are just as good in their some what bumbling child genius way.

2 Likes

I have added additional gamuts to Megatron itself with AzMods, but i hadn’t yet attempted to create an “hdr.slang” equivalent. That should work nicely for WCG SDR shaders.

Looks like crt-sony-megatron-v2-gba-gbi.slangp wasn’t reconformed with the preset move. It should be the following to match the formatting of the rest of the presets.

#reference "../shaders/crt-sony-megatron-v2.slangp"

hcrt_crt_screen_type = "0.000000"
hcrt_crt_resolution = "0.000000"
hcrt_colour_system = "3.000000"
hcrt_contrast = "0.000000"
hcrt_brightness = "0.050000"
hcrt_saturation = "0.450000"
hcrt_red_scanline_min = "0.8900000"
hcrt_red_scanline_max = "1.000000"
hcrt_red_scanline_attack = "0.300000"
hcrt_green_scanline_min = "0.600000"
hcrt_green_scanline_max = "0.800000"
hcrt_green_scanline_attack = "0.300000"
hcrt_blue_scanline_min = "0.600000"
hcrt_blue_scanline_max = "0.800000"
hcrt_blue_scanline_attack = "0.300000"
hcrt_red_beam_sharpness = "1.300000"
hcrt_red_beam_attack = "1.000000"
hcrt_green_beam_sharpness = "1.300000"
hcrt_green_beam_attack = "1.000000"
hcrt_blue_beam_sharpness = "1.300000"
hcrt_blue_beam_attack = "1.000000"
1 Like

Thats odd hmm I wonder what that’s about :thinking:

Thanks I must have missed it - hopefully over the weekend at some point Ill get some time to spend on this stuff and fix a few things.

I’m guessing it was there beforehand but I dont know, can you confirm that? Basically the whole of the UI doesn’t understand about HDR and sadly I havent got the time to wade through the UI making it HDR aware. The UI is its own beast outside of the drivers.

2 Likes

@MajorPainTheCactus before you ride off into the sunset again, will you consider updating the NTSC Section for presets which use NTSC to the most current version available from CRT-Guest-Advanced. I’m sure it’s already in AzurMods and it’s what I use as well in my Shader Stack.

Seems like a bit of a backward step to use the one in the v2 presets and there have been some considerable improvements to NTSC signal output handling for a wider range of consoles/scenarios. The PC Engine recently got its own NTSC mode for example and there’s also a brilliant font preservation engine which masks fonts from certain high levels of dedithering filtering.

2 Likes

Issue first present 01/17 update. I went through previous updates to confirm. Wanted to post here and see if anyone was experiencing similar issue. I appreciate you guys are working on more important HDR related things and this is not something pressing.

2 Likes

Maybe you can report it on the RetroArch GitHub so that more eyes can see it and maybe someone can add a fix or workaround, for example a saturation offset until it’s fixed.

This looks exactly how the old Megatron presets looked when RetroArch was in HDR Mode and you switched an HDR preset to SDR mode. Maybe SDR Presets might have looked like that as well but I can’t remember.

Does the same thing happen with older versions of RetroArch and Sony Megatron Colour Video Monitor v1?

2 Likes

I checked this morning and atleast on my end, the issue showed up on the update of the 17th. Previous versions checked were ok. Not sure when v2 was implemented.

When you turn off HDR, UI box arts go back to normal in SDR.

No issues for you Cyber? I know you’re an HDR always on.

2 Likes

Hi can you see if it happens in all the main drivers: d3d11, d3d12 and vulkan? How exactly do you get these covers btw? What do you have to do to see them? Thanks

2 Likes

Thanks there has been some large changes to the drivers so this might be expected and needing to be fixed!

1 Like