CyberLab Death To Pixels Shader Preset Packs

Don’t worry, my post isn’t about you. There was some back-and-forth that I cleaned up.

Hi Cyber, it’s been a while since I posted here! Recently I discovered the Shader Subframe feature of RA combined with the Crt-beam shader preset, it’s really good, but I tried to apply it along with one of your presets but it does not work. I’ve put the crt-beam shader first in the presets list but it does nothing when combined to one of your presets (it works with some other presets like Crt-Royale, etc.). Is there something I’m missing, or is it just impossible to use them together ? Anyway, thanks for your amazing presets as usual!

2 Likes

Hmmm…this would be a lot more fun if you stated the exact presets or at least the Preset packs that you tried it with that it didn’t work and screenshots or photos showing the results you’re getting.

I never got CRT-Beam-Simulator to look right, even by itself. I always get this weird horizontal humbar looking thing.

I don’t think it will work with Mega Bezel until @HyperspaceMadness adds support.

I do have evidence that it works with Sony Megatron Colour Video Monitor as @Azurfel includes some presets which use it in his preset pack.

I would like to see what it looks like when working. You say you got it to work with my CRT-Royale preset pack.

I just use the BFI that came with my display.

1 Like

No, I got it working with the regular Crt-royale preset, not yours. The one I tried was CyberLab__SNES-Slot_Mask_IV_OLED__ADV.slangp.

1 Like

I use bfi-simple in my presets, which works a bit differently, but the humbar is a side effect of CRT-Beam-Simulator’s “LCD Anti-Retention” setting.

*Do not turn that setting off on an LCD unless you fully understand the risks involved.

Using software BFI on LCDs without such mitigations can definitely cause temporary image retention, and it may be able to cause permanent image retention or other damage to the panel with frequent enough use.

OLEDs using software BFI without the mitigations seems fine based on my fairly extensive personal experience. (Which makes sense since that is effectively how an LG OLED display’s built-in BFI works anyway.) But ultimately i take no responsibility for what happens to any panel but my own.

1 Like

Source for that? AFAIK, it is not permanent.

@Tromzy You may want to try this (anti retention mitigations for ips panels is included), it can be prepended or appended . It would be nice to get some feedback too.

2 Likes

Mark Rejhon seems to think that it could hypothetically cause permanent damage without the mitigations enabled if a certain amount of care isn’t taken per this post. (It does sound like it would take a lot, mind, but a lot isn’t the same as impossible.)

1 Like

Oh well… "It’s not permanent unless you run it 24/7 for months on end. "

This is what it states, but the link he provides does not support that anyway or I missed it; btw even if true, It seems making it permanent would be impossible in pratice.

I’ve tried it with LCD Anti-Retension On and Off and either way didn’t look good. I think I read somewhere that it isn’t compatible with all displays and that ReroArch needs to implement some frame pacing algorithm for it to work properly. I hear the ShaderGlass version doesn’t have this problem.

I also tried @kokoko3k’s version with no luck. I just went back to my display’s solution which works.

What was the issue? Maybe prepending did not worked?

I can’t remember so I’ll have to retest. In any case, my current GPU is limited to a maximum of 3840 x 2160 @ 100Hz with RGB 444 Full colour so to test it at 120Hz, I either have to use some sort of chroma compression or lower my resolution to 1080p.

So I just use the TVs BFI which doesn’t need the refresh rate to be 120Hz and just works!

At minimum, you must be able to double the content refresh rate for subframe/software BFI to work well.

It is a complete nonstarter if you can’t do that, and it’s definitely better you stick to using the display’s BFI/strobing in that case (tho just to be sure: note that you should match the content refresh rate in that case if the extra lag isnt debilitating, rather than 100hz.)

Also worth noting: there are lagless displayport to HDMI 2.1 converters which allow for 2160@120hz HDR with 4:4:4 chroma if that is something that would work with your setup.

I use the CalDigit “DP 2.0 to HDMI 2.1 (8K)” (model number DP20-HDMI21) paired with an RTX 2080, and it has worked very well for me. The only major downside is that it does not support VRR. I don’t think there are options that support VRR even today some years on, but that is probably worth double checking before you buy if you choose to do so.

2 Likes

I use this Display Port 1.4 to HDMI 2.1 Adapter.

https://a.co/d/0gegZgdu

I’ve updated the firmware since getting it. Can’t detect any lag. It’s not the limiting factor though, it’s my GeForce GTX 1070. It doesn’t support DSC. I did a lot of research on the issue, that’s how I was finally able to get it working at 2160p @ 100Hz with 8-bit RGB 4:4:4 Full.

As a graphics developer I am really hard on one of my monitors. It is an IPS panel and gets the image retention from a variety of situations. It’s never become permanent.

1 Like

CyberLab__Arcade-Sharp__1080p__PVM-Edition__ADV.slangp + FB-Neo.slangp

#reference "../../MBZ__3__Standard_Full_Reflections\1080p_Optimized_Presets/CyberLab__Arcade-Sharp__1080p__PVM-Edition__ADV.slangp" 


#reference "../../../Duimon-Mega-Bezel/Presets/Advanced/FB-Neo/FB-Neo-[ADV]-[Guest][CABINET][NO TILT].slangp"

HSM_INT_SCALE_MODE = "0.000000"
HSM_CURVATURE_MODE = "1.000000"
HSM_CRT_CURVATURE_SCALE = "10.000000"


shadowMask = "6.000000"

Note that all of these screenshots seemed to be in the wrong colourspace so things would be either very dark or very washed out. That’s not how the actual preset would look when loaded.

Okay so I forgot to adjust my scaling settings as per Mega Bezel’s requirements before taking the screenshots above. Here is another preset with screenshots taken with the correct settings. The result is no moire. Note that the moire pattern had nothing to do with either preset, just the incorrect scaling settings.

CyberLab__Arcade-Sharp__1080p__PVM-Edition__ADV.slangp + MAME.slangp

#reference "../../MBZ__3__Standard_Full_Reflections/1080p_Optimized_Presets/CyberLab__Arcade-Sharp__1080p__PVM-Edition__ADV.slangp" 


#reference "../../../Duimon-Mega-Bezel/Presets/Standard/MAME/MAME-[STD]-[Guest][CABINET].slangp"

HSM_INT_SCALE_MODE = "0.000000"
HSM_CURVATURE_MODE = "1.000000"
HSM_CRT_CURVATURE_SCALE = "10.000000"


shadowMask = "6.000000"

Note that all of these screenshots seemed to be in the wrong colourspace so things would be either very dark or very washed out. That’s not how the actual preset would look when loaded.

Let me see if I can get some better screenshots.

Well guess not, I’ll try to update when I do get Shadow Play HDR Capture to behave again but I’ll still post to help those in need of assistance with this.

CyberLab__Arcade-Sharp__1080p__PVM-Edition__ADV.slangp + MAME Zoomed In.slangp

#reference "../../MBZ__3__Standard_Full_Reflections/1080p_Optimized_Presets/CyberLab__Arcade-Sharp__1080p__PVM-Edition__ADV.slangp" 


#reference "../../../Duimon-Mega-Bezel/Presets/Standard/MAME/MAME-[STD]-[Guest][CABINET].slangp"

// HSM_INT_SCALE_MODE = "0.000000"
// HSM_CURVATURE_MODE = "1.000000"
// HSM_CRT_CURVATURE_SCALE = "10.000000"


// shadowMask = "6.000000"


HSM_NON_INTEGER_SCALE = "91.169876"
HSM_CURVATURE_MODE = "3.000000"
HSM_CURVATURE_3D_TILT_ANGLE_Y = "-6.000000"

CyberLab__Arcade-Sharp__1080p__PVM-Edition__ADV.slangp + MAME No Overrides.slangp

#reference "../../MBZ__3__Standard_Full_Reflections/1080p_Optimized_Presets/CyberLab__Arcade-Sharp__1080p__PVM-Edition__ADV.slangp" 


#reference "../../../Duimon-Mega-Bezel/Presets/Standard/MAME/MAME-[STD]-[Guest][CABINET].slangp"

// HSM_INT_SCALE_MODE = "0.000000"
// HSM_CURVATURE_MODE = "1.000000"
// HSM_CRT_CURVATURE_SCALE = "10.000000"


// shadowMask = "6.000000"

Finally, some proper screenshots!!

1 Like

Offtopic. Cyber, is this a good monitor for CRT emulation? https://a.co/d/00Lq9bJw

This has been discussed at length in the following threads:

You can make the most of any monitor when it comes to CRT Shaders as some types do some aspects of the CRT Emulation experience better than others.

I personally would not recommend that particular monitor because it’s QD-OLED so there is no subpixel support in Shaders.

It’s not bright enough at HDR400. Sony Megatron recommends at least an HDR600 Display with HDR1000 recommended for BFI.

In more recent times @Nesguy has suggested a DisplayHDR1400 monitor.

I recommend high nit miniLED TVs and monitors with high dimming zone counts and it’s been discussed here and all over these forums as well.

This is a list of DisplayHDR 1400 Monitors:

https://displayhdr.org/certified-products/#tab-1400

For OLED Monitors you might want to look at DisplayHDR 1000 True Black monitors but only 4K WOLED ones. RWBG subpixel layout is currently supported by shaders but many OLED monitors have used different layouts which don’t match the subpixel capabilities of many shaders, this is especially true for some 1440p models, which is a very popular sub category in the OLED camp.

If you do buy a display with unsupported subpixel layout, you can either mod the shader yourself to add support or become both a beta tester and advocate for support for your particular subpixel layout to be added to your favourite shader.

amazon.com/dp/B0F7LR12VW/ref=sspa_dk_detail_1

Just putting this here for folks who would like to know how to combine CyberLab Mega Bezel presets with Background Graphics from other Mega Bezel Packs:

And for those who need more detailed setup instructions fot CyberLab Mega Bezel Death To Pixels Shader Preset Pack:

1 Like

CyberLab CRT-Royale 1080p NES_N64_Saturn Sharp - Core Blargg NTSC Filter Recommended Neo-GX.slangp

shaders = "14"
feedback_pass = "0"
shader0 = "shaders_slang/misc/shaders/grade.slang"
alias0 = ""
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/interpolation/shaders/quilez.slang"
alias1 = ""
wrap_mode1 = "clamp_to_edge"
mipmap_input1 = "false"
filter_linear1 = "true"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "viewport"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
alias2 = "ORIG_LINEARIZED"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
filter_linear2 = "false"
float_framebuffer2 = "false"
srgb_framebuffer2 = "true"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
alias3 = "VERTICAL_SCANLINES"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
filter_linear3 = "true"
float_framebuffer3 = "false"
srgb_framebuffer3 = "true"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "viewport"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-approx.slang"
alias4 = "BLOOM_APPROX"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
filter_linear4 = "true"
float_framebuffer4 = "false"
srgb_framebuffer4 = "true"
scale_type_x4 = "absolute"
scale_x4 = "320"
scale_type_y4 = "absolute"
scale_y4 = "240"
shader5 = "shaders_slang/blurs/shaders/royale/blur9fast-vertical.slang"
alias5 = ""
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
filter_linear5 = "true"
float_framebuffer5 = "false"
srgb_framebuffer5 = "true"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/blurs/shaders/royale/blur9fast-horizontal.slang"
alias6 = "HALATION_BLUR"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
filter_linear6 = "true"
float_framebuffer6 = "false"
srgb_framebuffer6 = "true"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
alias7 = ""
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
filter_linear7 = "true"
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "absolute"
scale_x7 = "64"
scale_type_y7 = "viewport"
scale_y7 = "0.062500"
shader8 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
alias8 = "MASK_RESIZE"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
filter_linear8 = "false"
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "0.062500"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
alias9 = "MASKED_SCANLINES"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
filter_linear9 = "true"
float_framebuffer9 = "false"
srgb_framebuffer9 = "true"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-brightpass.slang"
alias10 = "BRIGHTPASS"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
filter_linear10 = "true"
float_framebuffer10 = "false"
srgb_framebuffer10 = "true"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-vertical.slang"
alias11 = ""
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
filter_linear11 = "true"
float_framebuffer11 = "false"
srgb_framebuffer11 = "true"
scale_type_x11 = "source"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang"
alias12 = ""
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
filter_linear12 = "true"
float_framebuffer12 = "false"
srgb_framebuffer12 = "true"
scale_type_x12 = "source"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
alias13 = ""
wrap_mode13 = "clamp_to_edge"
mipmap_input13 = "true"
filter_linear13 = "true"
float_framebuffer13 = "false"
srgb_framebuffer13 = "false"
scale_type_x13 = "viewport"
scale_x13 = "1.000000"
scale_type_y13 = "viewport"
scale_y13 = "1.000000"
g_GCompress = "0.000000"
g_crtgamut = "1.000000"
wp_temperature = "7104.000000"
g_vignette = "0.000000"
g_sat = "0.410000"
g_lift = "-0.010000"
crt_gamma = "2.174999"
levels_contrast = "0.328125"
diffusion_weight = "0.010000"
bloom_underestimate_levels = "0.330000"
beam_spot_power = "0.470000"
convergence_offset_x_r = "0.150000"
convergence_offset_x_b = "-0.100000"
convergence_offset_y_r = "-0.050000"
convergence_offset_y_b = "0.050000"
mask_type = "0.000000"
mask_sample_mode_desired = "1.000000"
interlace_detect_toggle = "0.000000"
textures = "mask_grille_texture_small;mask_grille_texture_large;mask_slot_texture_small;mask_slot_texture_large;mask_shadow_texture_small;mask_shadow_texture_large;SamplerLUT1;SamplerLUT2"
mask_grille_texture_small = "shaders_slang/crt/shaders/crt-royale/TileableLinearApertureGrille15Wide8And5d5SpacingResizeTo64.png"
mask_grille_texture_small_mipmap = "false"
mask_grille_texture_small_linear = "true"
mask_grille_texture_small_wrap_mode = "repeat"
mask_grille_texture_large = "shaders_slang/crt/shaders/crt-royale/TileableLinearApertureGrille15Wide8And5d5Spacing.png"
mask_grille_texture_large_mipmap = "true"
mask_grille_texture_large_linear = "true"
mask_grille_texture_large_wrap_mode = "repeat"
mask_slot_texture_small = "shaders_slang/crt/shaders/crt-royale/TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacingResizeTo64.png"
mask_slot_texture_small_mipmap = "false"
mask_slot_texture_small_linear = "true"
mask_slot_texture_small_wrap_mode = "repeat"
mask_slot_texture_large = "shaders_slang/crt/shaders/crt-royale/TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacing.png"
mask_slot_texture_large_mipmap = "true"
mask_slot_texture_large_linear = "true"
mask_slot_texture_large_wrap_mode = "repeat"
mask_shadow_texture_small = "shaders_slang/crt/shaders/crt-royale/TileableLinearShadowMaskEDPResizeTo64.png"
mask_shadow_texture_small_mipmap = "false"
mask_shadow_texture_small_linear = "true"
mask_shadow_texture_small_wrap_mode = "repeat"
mask_shadow_texture_large = "shaders_slang/crt/shaders/crt-royale/TileableLinearShadowMaskEDP.png"
mask_shadow_texture_large_mipmap = "true"
mask_shadow_texture_large_linear = "true"
mask_shadow_texture_large_wrap_mode = "repeat"
SamplerLUT1 = "shaders_slang/reshade/shaders/LUT/Kurozumi_64_D93_Rec601.png"
SamplerLUT1_mipmap = "false"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT2 = "shaders_slang/reshade/shaders/LUT/Kurozumi_64_D65_EBU.png"
SamplerLUT2_mipmap = "false"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"

With Core Blargg NTSC Composite Video Filter Preset applied

I find that most of the default Core provided Blargg NTSC Composite Video filter presets go a bit overkill on the artifacts and fringing, in my opinion the S-Video Preset provides the best balance out of those.

3 Likes

https://www.reddit.com/r/crtgaming/s/LQmxsaAesa

1 Like