New CRT shader from Guest + CRT Guest Advanced updates

Ah that makes some logical sense - as the “defaults” they should be moire free - maybe I just pushed the curvature too far to better align with the particular overlay I’m using.

Would integer scaling eliminate moire, even with large(ish) curvature values?

1 Like

No, curvature breaks the integer-ness by virtue of being curved :slight_smile: Quoting myself from earlier in the thread:


I read that post by you last night, searching the thread for the word “moire” – and now, with this additional comment about curvature “breaking” the “integer-ness”, it all adds up for me.

I checked back and forth between Hyllian Curvature and Guest Advanced and both of them exhibit some moire when curvature is introduced. I’m not sure which is better.

I guess there are 3 options for this:

  1. Integer scale 4:3 and no curvature. Would eliminate moire and uneven scanlines, but would limit choice of overlays to those which are only on the sides, not a full bezel.
  2. Custom resolution and X/Y position with “flat” overlay. Would eliminate moire, but maybe not uneven scanlines. Would open up more overlays to include full bezels.
  3. Custom resolution and X/Y position with any overlay. Would introduce moire and uneven scanlines, but would allow any “shape” of bezel.

I am starting to lean towards Option 2. I think I want there to be some sort of “full TV bezel” for immersion, and I think it’s easier to account for/reduce uneven scanlines than it is to eliminate moire.


I may be re-stating one of your existing options, but you can always just slap a “curved” overlay over the top of a non-curved image and let it block out the corners. Most curved TVs did this to some extent anyway and developers were typically smart enough to avoid putting mission-critical data in these areas precisely because they might get blocked/cropped.

1 Like

Yeah, that is more or less “Option 2” - it occurred to me as well after I wrote it that there is no reason why an overlay with some curvature could not be used.

Ultimately, I think I’m willing to let the very slight (0.1 - 0.2) curvature go because once I see the moire, I can’t see anything else. I think the minor curvature of the bezel will convey enough of the immersive aspect that I’m going for.

If it turns out that there’s any necessary info in the overscan, I can always adjust and save a game override. If anything, I’m guessing I’m more likely to find games that have garbage at the edges of the visible area which I will need to push further into the overscan (and will also need a game override for).

1 Like

Thanks for this link - I will try some of these mitigation techniques later tonight! The moire I am getting is minimal - maybe one or two of these tricks will help!

1 Like

Gave some of these a try last night finally. Noise is definitely a way to fully eliminate the moire, but I didn’t like the look of the noise.

I think for me the solution is going to be to give up curvature and then pick whichever shader gives me the most even/natural looking scanlines. The contenders are Guest Advanced, Hyllian, Easymode and Zfast in that order.

The biggest remaining issue I’m tinkering with is trying to remove what I think is meant when people say uneven scanlines - basically the very subtle appearance of horizontal “stripes” created by 3 or 4 scanlines in close proximity seeming to band together or maybe just appear slightly closer to one another or more prominent, which is visually distracting. I am relatively confident I can eliminate this by playing with the scanlines settings inside Guest Advanced to just slightly soften the scanlines.

1 Like

Tbc, lightening up the scanlines and/or mask will help with your moire issues (some). And you’re right noise helps, but that opens up a whole other can of worms. (Namely being you usually need to use a distracting amount of noise to “remove” the moire, which kind of defeats the purpose imho, as you’re removing one distracting thing for another)


Oh interesting, I hadn’t thought about how lightening the scanlines and lowering the mask strength would reduce moire, but that does make sense since it is the lines themselves that appear to warp with the moire. I am probably about 95% to where I want to be just by using any of the shaders I mentioned, without curvature - so if I can get one of them to even out the striping/clumping/banding/unevenness to a place where I am satisfied, through a little lessening of those two parameters you mentioned, then I will toss some curvature on just to check and see if that is resolved as well. If yes, awesome. If no, then I’ll just give up on curvature.

1 Like

This is an exerpt from another post I’ve made concerning moire mitigation. If using Non-Integer Scale try to match it to an Integer Scale percentage that produces the least or no moire. You can fine tune the noise resolution and amount so that it’s barely noticeable but still helps hide/diffuse the moire.

Have you tried my preset pack by chance? There are some curved presets using MBZ__3__STD that should look pretty decent. I also started making a preset using GDV-Mini but there was a bug in the shader or in Mega Bezel that stopped me from proceeding further. That bug seems to have been resolved now though.

I observed the same Castlevania: SOTN startup loop for a bit and I had earlier noticed that when the screen fit the bezel, the Non-Integer scale was around 66% while when it exceeded the bezel it was around 77%.

This can also be seen in the screenshots I posted.

So I thought I’d use the Non-Integer Scale instead of the Integer Scale along with (HSM_INT_SCALE_BORDER_MIN_HEIGHT) to sort of lock the scale factor to a setting that matched the setting that was set when I used Integer Scale Mode 0 (which didn’t have the moire issue).

Guess what? It actually worked! I was now using Non-Integer Scale (Int. Scale Mode 0) with my rich scanlines with no moire pattern in 640 x 480 res mode!

For Castlevania: SOTN the perfect setting was 66.40! 66.60 was also acceptable but 66.40 had 0 horizontal moire! any setting above or below that resulted in noticeable moire either in a convex or concave pattern depending on if I was above or below the ideal setting. the further away I went the worse the moire pattern.

Suggestion for Automatic Int. Scale Offset to minimize moire without sacrificing well defined scanline patterns.
1 Like

Iv’e been experimenting with stronger masks lately, suppressing my autistic obsession with color retention just enough to get some results… until I can’t.

On one hand it’s undstandable that laying stripes of transparent color ontop of an image… may affect the color of said image.

On the other hand I am absolutely baffled how i’ts aways a greenish tint that even appears with the black and white mask 7 for some reasion, on both displays I’ve used the past two years at all resolutions with scaling set to 100%… but not mask 8. Sadly mask 8 is just ugly.

Despite not having a 2k (I use 4k) display I get some pretty decent results from masks 11 and 12. This gives me a theory; let me get straight to the point.

Im requesting a CMY (maybe CMYB?) mask. Despite our fundamentaly additive displays, perhaps applying a mask over an image is a subtractive afair that calls for the subtractive color model?

I don’t know if this has been brought up before; I only ran a rough check with the searchbar.

Do you still get this greenish tint when you flip the mask layout?

What mask size are you using and what colour format are you using on your computer? Is it 4:2:0 Limited or RGB 4:4:4 full? Have you tried Mask 6 size 0 or 2 with layout 0 or 1?

Have you adjusted any other color settings? Do you use Grade? What are your Gamma Settings like? What white point are you using or NTSC Phosphor Gamut? Is your display calibrated to sRGB or DCI? What colourspace are you using in the shader?

Are you using Deconvergence? If so, have you manually adjusted the settings?

These are all things that you can look into first that might affect the colour output.

Feel free to post some screenshots, including some close-ups and you can also take some photos of the screen with the following settings: ISO 100 or 200, White Point 6500K and Shutter Speed 1/60 or 1/50 corresponding to 60Hz or 50Hz refresh rates.

You can also post your shader settings in the forum.

We can call it what we want but you can’t get subtractive color on a backlit display. Not without using a physical mask.

What would using multiply blend with a mask look like though? :thinking:

1 Like

Unfortunately, the computer I’m tinkering with is not strong enough for your preset, but I appreciate the suggestions and will try adjusting the noise resolution.

1 Like

Yes. I tested my moniter’s subpixel layout, it’s RGB.

How we theorize it shouldn’t be capable of stopping anyone from laying stripes of cyan, meganta, and yellow, ontop of an image, which is an experiment I still want to see the results of.

@Cyber This has always been a problem with nearly all masks (the expections being, 8 and -1 for obvious resons) well before I started using deconvergence, across two computers and moniters, and all high strength images posted to this site, The same problem exists with PowerSlave Exhumed’s crt shader options.

It’s worth noting it’s not exactly a “tint” per se. There was this one time where I think I accidently set one of the shaders to scale the image, when that happend the “tint” became unevenly distributed, and in larger images took on a kinda “swirly” form that reminds me of spatial aliasing. This disapears completly when “mask strength” and “low strength” are set to 0.50 max. Changing the mask size can also solve the problem in some specific cases.

I always just called it color loss. I think it’s just an inherent problem to using masks. 11 and 12 which mix rgb and cmy colors, however, deliver “different” results.

So I want to see happens with a CMY mask. I don’t expect it to be a smoking gun against something I think is intrinsic to masks. I do ,however, thnk it would be fun to configure.


The easiest way to play around with them is with CRT-Royale, which uses png images for the masks, which you can modify in photoshop/gimp/whatever to CMY instead of RGB.


I use a CMY mask on my setup (or rather YMC to be exact since it’s a BGR display). It results in a much-needed boost in brightness. However, it’s a bit of a mess at the subpixel level. Only reason it sort of works for my setup is because I output 1080p to a 4K display, so it’s more like YYMMCC, which appears to mitigate the subpixel issues somewhat.


In my past experiennce, if I were to switch from mask 10, 6, or 13 to 11 or 12 I’d have to recalibrate the bightness setting to be a tad more dim. I expect I’d find this to be even more the case with a CMY mask.

1 Like

Color loss when using masks is easily mitigated by increasing scanline saturation, I’ve found.

Colors are well-saturated here, right? (view at original size)