CyberLab Death To Pixels Shader Preset Packs

Hi, can you state exactly which PSX Preset you’re using, which one of Duimon’'s backgrounds as well as the method used to integrate both presets?

I could remember having some challenges with moire patterns when making those PSX presets if the scaling was set to anything other than what I have it set to now.

I see you’re using 1080p resolution. The presets in the 1080p Optimized folder were mostly converted from other higher resolution optimized options so something could have slipped through the cracks.

You can first try decreasing the Int. Scale Offset and see if it solves your issue.

Is the Playstation-[ADV]-[Guest]-[Bezel]-[Night].slangp, and I used the method of opening the Duimon’s preset with notepad and pasting your preset file location.

I tried decreasing the Int. Scale Offset but it was already 0 so it didn’t solve the problem.

1 Like

And there’s no negative Int. Scale Offset available?

You can lower the Int. Scale % or the Non Int. Scale %.

Which one you have to use depends on if the Int. Scale Mode is set to. If it’s on 0, then Int. Scaling is off so you have to use the Non-Int. Scale %. If it’s 1 or 2 then you have to use the Int. Scale %.

There’s another method of integrating my presets with Duimon’s or any other overlay or background.

You can go into my CyberLab_Special_Edition folder and you will see some examples.

In those examples I used my own graphics but if you wanted to use Duimon’s graphics instead, you could replace the background line in the preset with a second reference line that points to the *.params version of Duimon’s presets.

There is supposed to be an entire folder of his presets in *.params format.

If the overlay/background pack you’re using doesn’t have its presets in *.params format, you can convert them yourself by first making a copy of the original presets folder then editing the presets in that folder to remove or comment out the reference lines.

It’s really very simple if you understand what you’re doing.

As for my example presets, you can change the presets in the first reference line to any preset in my Mega Bezel Death To Pixels Shader Preset Pack.

I tried to use your presets without any other integration and I’m having the same problem, I’m using Playstation ADV preset. I’ve actually tried to put a negative integer scale offset but then the image becomes too small, and I can’t choose between a balance, so yeah, I don’t really know what to do now.

1 Like

Also, if i try to use non integer scale, the crt shader becomes uneven and looks really bad.

1 Like

By default both Duimon’s and my preset have Int. Scale Mode set to 0 (Off) and neither of them looked bad to me when I loaded them using their defaults.

The difference lies in the Non-Integer Scale % used. For Duimon’s preset which doesn’t feature strong Mask or Scanlines effects the default of 82.97 works fine without any moire patterns or other anomalies. For my preset which features much more detailed mask and scanlines you will notice moire patterns at certain resolutions. Unfortunately you’re running up against the laws of physics here and there’s not much that can be done instead of some sort of compromise somewhere.

One thing you can do is decouple the Bezel scaling from the viewport (game screen) scaling then you can use my Integer or non-Integer Scale settings without the severe moire effects. The caveat would be that instead of the entire bezel being scaled and parts of it being cropped off, the content is going to be scaled and some of it might be cut off. A real CRT TV does this to some extent. It’s called Overscan but in this case it may or may not be too excessive.

Another thing you can do is take a look my MBZ__3__Standard_Full_Reflections_Soqueroeu-TV_Special_Edition folder. You can probably note some of the settings or try to integrate one of those presets with Duimon’s preset.

Also, if you use the method of integration, I described in my previous post, using my MBZ__1__Advance_Full_Reflections_CyberLab_Special_Edition presets as a template there are some built-in overrides to deal with things like Bezel Independent Curvature.

So this:

#reference "../../../MBZ__0__Smooth-Advance_Full_Reflections/4K_Optimized_Presets/Console_Specific_Presets/CyberLab_Turbo_Duo_S-Video_Slot_Mask_IV_OLED_NTSC_II.slangp"

BackgroundImage = "../../../Resources/CyberLab_Graphics/CyberLab_Full_Range_Stereo_Mega_TV.png"

HSM_AMBIENT_LIGHTING_OPACITY = "98.000000"
HSM_AMBIENT1_OPACITY = "68.000000"
HSM_ASPECT_RATIO_MODE = "2.000000"
HSM_NON_INTEGER_SCALE = "83.969986"
HSM_PHYSICAL_MONITOR_DIAGONAL_SIZE = "55.000000"
HSM_PHYSICAL_SIM_TUBE_DIAGONAL_SIZE = "20.000019"
HSM_SCREEN_POSITION_X = "-1.000000"
HSM_TUBE_DIFFUSE_MODE = "1.000000"
HSM_TUBE_DIFFUSE_IMAGE_AMOUNT = "25.000000"
HSM_TUBE_BLACK_EDGE_THICKNESS = "-630.000000"
HSM_BZL_USE_INDEPENDENT_SCALE = "1.000000"
HSM_BZL_INDEPENDENT_SCALE = "89.869896"
HSM_INT_SCALE_MODE = "0.000000"
HSM_CURVATURE_MODE = "1.000000"
HSM_CRT_CURVATURE_SCALE = "10.000000"

Would (or could) become this:

#reference "../../../MBZ__0__Smooth-Advance_Full_Reflections/4K_Optimized_Presets/Console_Specific_Presets/CyberLab_Turbo_Duo_S-Video_Slot_Mask_IV_OLED_NTSC_II.slangp"

#reference "../../../../Duimon-Mega-Bezel/Presets/Advanced/TV/TV7-[ADV]-[Guest]-[Night].slangp"

HSM_AMBIENT_LIGHTING_OPACITY = "98.000000"
HSM_AMBIENT1_OPACITY = "68.000000"
HSM_ASPECT_RATIO_MODE = "2.000000"
HSM_NON_INTEGER_SCALE = "83.969986"
HSM_PHYSICAL_MONITOR_DIAGONAL_SIZE = "55.000000"
HSM_PHYSICAL_SIM_TUBE_DIAGONAL_SIZE = "20.000019"
HSM_SCREEN_POSITION_X = "-1.000000"
HSM_TUBE_DIFFUSE_MODE = "1.000000"
HSM_TUBE_DIFFUSE_IMAGE_AMOUNT = "25.000000"
HSM_TUBE_BLACK_EDGE_THICKNESS = "-630.000000"
HSM_BZL_USE_INDEPENDENT_SCALE = "1.000000"
HSM_BZL_INDEPENDENT_SCALE = "89.869896"
HSM_INT_SCALE_MODE = "0.000000"
HSM_CURVATURE_MODE = "1.000000"
HSM_CRT_CURVATURE_SCALE = "10.000000"

You could replace the 1st reference line with any of my presets and the second refence line with any of Duimon’s presets in *.params format, which is just a preset with the reference line removed or commented out.

Another thing that might help is using a higher TVL Mask. I didn’t mention it before because it’s something I just haven’t tried much at 1080p but it’s quite possible that you just need to use one of the Magenta-Green masks and that might actually resolve the issue of moire pattern appearing when adjusting the Non-integer Scale %.

Unfortunately, I don’t have a key showing all of the Mask Patterns available in CRT-Guest-Advanced or Mega Bezel but it should be somewhere in these forums.

You can even cycle through all the Mask Options as well. Be sure to keep the CRT Mask size on 1.

You can use this as a guide to help find the 2 colour masks, which would be higher TVL and less likely to have moire issues at a given resolution.

Based on the above list I’d probably try Masks 0, 5 and 7 first.

You can also try a lower GSL Scanline Type.

Lastly, make sure the Mask Layout matches the subpixel layout of your display.

2 Likes

CyberLab Mega Bezel Death To Pixels Shader Preset Pack SDR to HDR Conversion

Settings–>Video–>HDR

  • Enable HDR - On
  • Peak Luminance - 630
  • Paper White Luminance - 630
  • Contrast - 5.30x - 5.40x
  • Expand Gamut - On

Plus

Load a shader preset then follow the steps below:

Reset the following shader parameters to defaults:

  • Post CRT Brightness - 1.00
  • Bright Boost Bright Pixels - 1.10
  • Bright Boost Dark Pixels - 1.40
  • Gamma Correct – gamma_c - 1.00

Adjust the following settings:

  • Graphics Brightness - 40.00
  • Graphics Gamma Adjust - 0.62
  • Saturation - (Increase by +0.31)

Also set all Afterglow and Persistence settings to 0.00:

  • PR = “0.000000”
  • PG = “0.000000”
  • PB = “0.000000”
  • AS = “0.000000”
  • sat = “0.000000”

To fix Shadowmask Presets (Only for Mega Bezel 1.15.0 or higher):

  • mshift = “1.000000”

For a little extra brightness:

  • gsl = “0.000000”
  • maskstr = “0.950000”

Peak and Paper White Luminance values must be set to whatever values are appropriate for the user’s display. Values displayed are for reference only.

Requires Mega Bezel v1.15.0 or higher.

Note that CyberLab Mega Bezel Death To Pixels Shader Preset Pack has not been updated to take into consideration the many changes implemented in Mega Bezel Reflection Shader v1.15.0 and beyond, therefore some if not most presets will not look as originally intended.

This should work fine with the latest recommended version 1.14 of Mega Bezel Reflection Shader.

CyberLab CRT Royale Death To Pixels Shader Preset Pack SDR to HDR Conversion

Settings–>Video–>HDR

  • Enable HDR - On
  • Peak Luminance - 630
  • Paper White Luminance - 630
  • Contrast - 5.70x - 5.80x
  • Expand Gamut - On

Plus

Load a shader preset then follow the steps below:

Reset the following shader parameters to defaults:

  • Simulated CRT Gamma - 2.50
  • Your Display Gamma - 2.20

Adjust the following settings:

  • Contrast - 0.25

If viewing from nearer to the screen and would like a less coarse look, you can lower the Mask - Triad Size Desired from 7.00 to 6.00.

3 Likes

Hey there, I’ve been using these shaders and theyre great, but I have one question. It’s kind of hard to explain, hopefully I can explain it properly.

I spent some time (specificlly on the castlevaina: sotn on psx) making sure I was getting a pefect pixel aspect ratio without ANY stretching/ resizing. So I ended up with interger scaling on x and y, and unncorrected aspect ratio in beetle PSX. My logic was that I want each pixel rendered from the game to line up perfectly with a “pixel” on the crt filter

(ignore the colors, its just to show that they are seperate pixels)

But last night I was thinking, because the crt “pixels” are actually just the (virtual) slot mask, is it actually more accurate to ignore interger scaling and simply force 4:3 aspect ratio into the crt filter, similar to the way a crt projects an analog image onto the slot mask?

Hopefully this makes sense, let me know if I can explain it better.

edit/

basiclly, which of these is more accurate? And does scaling the height to the full 1440p mess with the crt grid at all?

https://imgur.com/a/8P7An4Q

1 Like

CRT screens don’t have pixels. The number of phosphors on a CRT is fixed, yet CRT screens can display multiple resolutions.

What would work to have the phosphor triads be better aligned with the pixels in graphics is to use a higher TVL CRT Mask.

I don’t think a CRT projects an image onto the mask in a similar manner to how most CRT Shaders scale an image and handle things like OverScan and aspect ratio.

Integer scale tends to provide better looking scanlines and lowers the chance of and occurance of moire patterns.

I really can’t say.

If it’s a non-Integer Scale it can definitely mess with the scanlines.

@1112e I hope my response was worthy enough for your question. I think this is an important yet often overlooked or should I say slightly under appreciated aspect of CRT emulation that probably deserves its own thread.

I think the best way to go about this would be to have a real representative CRT to use for comparison but even something like this can provide skewed results due to geometry adjustments. The reason I say this is because who is to say that every game on every console is supposed to have perfect circles everywhere or would have when viewed on original hardware and a CRT?

This topic is extremely important for correct rendering of things like power bars in many Super Nintendo games, for example Super Double Dragon, Final Fantasy Mystic Quest and the Pow meter in Samurai Showdown.

It’s important to get it right for the audio channel level indicators in the sound test menu of Ninja Spirit for TurboGrafx-16.

Also, many arcade games, for example several Neo Geo Fighting Games as well as several Mortal Kombat sequels have some transparency effects that get messed up if the scaling/aspect ratio is even slightly off.

So do keep up what you’re doing but perhaps this question should be posed to a wider audience who might have much more knowledge of the topic than myself. Remember I don’t even make Shaders, I make presets for shaders. There’s a vast difference.

Next thing I would add is do some research and take a look at @Nesguy’s CRT Shader Presets, they probably never end up outside the pixel boundaries but like I mentioned before, that’s probably due to the higher TVL that he uses.

If you’re on a 1440p screen, one easy way to access higher TVL presets is to use my 1080p Optimized Presets.

Also, in my CRT Royale Preset Pack this is something that I kinda focused on to try to avoid so you should see things being better aligned in that pack. I don’t have any 1440p specific presets in that pack but you can try the 1080p ones or you can also try the 4K ones and just adjust the Desired Triad Size until they look good to you on your 1440p screen.

You can also give Hyllian’s Shader Preset Pack a try.

But to reiterate what I said earlier there’s a big difference between what happens on a real CRT when it comes to aspect ratio than when you’re using Mega Bezel for example and you start cropping Overscan because CRT+Real hardware accurate Overscan and aspect ratio is just not built-in to the front end, shaders or emulator cores as yet.

If it is, I don’t know how to set it up. Some say, just use Core Provided, Some say just set it to 4:3. If using Mega Bezel you’re supposed to set it to Full in the RetroArch Video Scaling menu so that it can be handled by and adjusted via the Mega Bezel Shader Parameters.

I don’t think that gives proper aspect ratios all the time if any at all though because there’s still a lot of video information that gets rendered on the viewport that would otherwise not be rendered on real hardware. So that would probably skew the aspect ratio and then if we decide to manually crop it off, it would skew the aspect ratio again.

The fact that we need per game cropping settings says that something is still missing. We never had to worry about that with CRTs and real hardware. We just plugged and we played. Whatever the result was in those scenarios would be the most accurate results and I think it’s a bit convoluted at the moment to achieve something that should be so simple.

Lastly, just adding this here because I don’t want it lost but I do remember a user who posted that they weren’t satisfied with the aspect ratio they were getting by default on Mega Bezel in SNES games if I recall correctly. They came up with a custom aspect ratio that worked better and was more accurate to them.

Up to now, I can’t get the exact, accurate, correct, proper aspect ratio for Mortal Kombat arcade game sequels, Neo Geo Fighting Games and many more which go overlooked because there may not be as glaring issues.

If anyone knows feel free to direct me.

1 Like

This is the the main cause of the problem, as this game outputs different resolutions for gameplay, menus, title screen, and even the file select screen. https://imgur.com/a/jyIvf7C

Here I was refering basicly to how the mask part of the shader is on top of the game image, if that makes sense.

So what I’m thinking here is vertical interger scale (ShortAxis in the shader prefs) on as to maintain scan lines, then non-int scaling on horizontal so that it is forced to 4:3 like a CRT would do.

1 Like

I think that’s how most of my presets are configured.

1 Like

I ended up leaving it uncorrected in the emulator settings and letting the shader do all the scaling, forcing 4:3. I figured it may be “imperfect” but so were many displays back then, and the fact the game isn’t one consistent resolution. Most importantly, it lets me just forget about it and enjoy the game.

Heres how that looks up close

Thanks for the insight, this seems just like the situation with SNES titles where its unclear what the “correct” aspect ratio is

1 Like

Thanks for this.

These look like LG 4K WOLED Panel subpixels. If I’m correct, you should be using Mask Layout 1 if you want the phosphors of the CRT Shader to be perfectly aligned with the Subpixels of the display. That’s why I have some presets named, “…IV OLED”. They already have the correct mask layout applied.

Also “IV OLED” doesn’t mean that those presets are for OLED TVs only. It just means with other displays you have to do your research and make sure you use the correct Mask Layout for your display.

My Neo-GX presets already have the correct layout for LG WOLED TVs.

I just try to setup my presets so that games look good enough for me.

LG is right but its actually a 1440 ips panel. This is with crt mask 10, as set in the psx 1440p preset.

Are you seeing something wrong with how it is displayed there, or are you just saying if i wanted it to be “perfect” professional monitor level crt?

Okay.

Don’t mind this. The only reason I wasn’t 100% sure was because the photo wasn’t very clear. Too much exposure or ISO and there was some colour shift in the bright areas. If you have a camera that can do manual or pro mode you can try using 1/60 shutter speed, a low ISO between 100 and 250 and manual focus in order to capture the phosphor colours in the bright areas.

Also make sure the camera is stable and the room is preferrably dark.

1 Like

If you want accurate aspect ratio to PSX output check https://pineight.com/mw/page/Dot_clock_rates.xhtml

SOTN is a 256px wide game and the PSX uses the same PAR as SNES for this 256 x (8/7) = 292.something pixels wide when translated to 1:1(Square) pixels There is a way to get proper aspect output by doing 256 x 8 and 224 x 7(which yields 2048x1568) or 240 x 7(1680)

The display aspect ratio is 1.306:1(the real number is 1.30612244898 or even highr) The guys(guys like Wobbling Pixels or FirebrandX) who do settings for the RetroTink 4k or the Mister FPGA typically sample to the closest resolution to 4K/1440p/1080p they can and use Sharp Bilinear to prevent shimmering. While with 4K you can do 2048x1568/1680(for SNES at least)that means you have a ton of pixels being wasted.

While you uploaded an image indicating 366 pixels wide for the Menus that may just be the emulator cropping from 384px This list says that SOTN uses 256px(PAR 8:7) for gameplay with 240 vertical resolution, 320px(PAR 32:35) for the intro, 512px(PAR 4:7) for the Main Menu/Scenes and 384px(PAR 4:5) for the file select and inventory.

If I were to venture a guess the file select could either be 366, 368 or 384. But I can’t find any info on the PAR of 366px and 368px modes. Maybe they are out there somewhere but I can’t be bothered to find them.

2 Likes

What settings do you recommend for your CyberLab Megatron NX Death To Pixels 4K HDR Shader Preset Pack at 1440p? The one I used in CyberLab Megatron Death To Pixels 4K HDR Shader Preset Pack doesn’t give me good results. Thanks ^^

1 Like

You can try the suggestions in the following posts. Other than that you can try each combination of CRT Resolution (TVL) parameters and Display’s Resolution parameters until you get something that resembles what you want.

You also have to ensure that you change the Display’s Subpixel Layout to what’s appropriate for your screen.

Lastly, look carefully at the way the scanlines intersect the mask to ensure that the choices you’ve made result in evenly spaced scanlines and mask without any strange moire patterns.

Also, it might help if you posted a photo of what you’re seeing on your screen as that might assist in troubleshooting and improvement of the shader.

1 Like

Dear Cyberlab; thank you for all your hard work.

What is the best TV/Monitor for these shaders? Specifically the HDR ones.

Thank you.

2 Likes

Hi @cyber - now that I have a worthy PC to enjoy the delights of RetroGaming, I wanted to take a look at your work: starting from the assumption that I use the “smooth-adv” presets with the Mega Bezels (they’re like chocolate, I can’t make them less), and I use a 1080p monitor, which of your presets is best suited to my needs? Thank you very much for your help.

2 Likes