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.
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:
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.
Not sure why you deleted your post before I got a chance to respond but are you using Mega Bezel v1.14?
Other than that what changes have you made to the preset?
Lastly, there are many other Genesis Presets which do Blending-and-Transparency. You can try one of my Neo-GX Presets.
Is MDAPT/GDAPT/SGENPT-MIX turned on in the preset which blends the power bars?
Oh, that’s because I figured out the problem. Phase was on mixed and I changed it to auto. It looks really good now. It has a sharper look than the standard guest ntsc preset.
I’m not even sure if Mixed phase was a thing in Mega Bezel v1.14.
What you thought was a fix might actually be a workaround to problem caused by user error if you’re not using Mega Bezel v1.14.
If you’re sure you’re using Mega Bezel v1.14 then you’ve most probably solved an actual bug.
Hadn’t seen the NES one before. That was really interesting! Got me playing multiple classics comparing the Firebrand X colors vs. the NES Classic palette.
This might be a hot take, but the NES Classic palette is way closer to what my old TV’s displayed with the NES. A little green on the yellow’s, a little purple on Mario’s sky, but otherwise it’s pretty spot on. The FBX colors in most of their palettes, feel so over saturated from a calibration accuracy POV. Same with the Sony palette. (though the sky in Mario looks more like I remember, I also recall tweaking my Tint knob to make it blue)
The blood on the Abadox titlescreen looks like blood. The skin tones in multiple games are far more neutral than yellow. The selection Heart on the Zelda file select screen is the redder color it should be. To me.
Greens, Pinks, Browns and Blues in StarTropics and Star Wars are the closest to the way I remember, and Mike Tyson’s Punch Out as well.
Funny thing about my NES, it flashed a neon Blue screen when it wouldn’t load a cart right. Never seen that from anyone else’s online or IRL.
It’s 1.17.2. I updated the shaders and retroarch only a few days ago.
You may be interested in my discussion here: https://forums.nesdev.org/viewtopic.php?p=307782#p307782
I demonstrate that small changes in user tint lead to greater changes in certain colors on the Famicom/NES, and conclude that most ‘accuracy’ focused palettes are probably good enough.
I also noticed, at least according to my analysis, that PAL’s colors are different in such a way to make the SMB sky blue, and there are many European and South American users in emulator forums and so now I wonder how many people arguing over palettes were doing so from that perspective.
Palettes were (and maybe still are) also a hot topic in the C64 scene for years, the computer being popular both in NTSC and PAL regions, but newer, including emulator developments, pretty one-sided from PAL lands.
E.g. the supposedly accurate Pepto palette was regarded as somewhat dull, but you were supposed to use it with saturation, CRT emulation of Vice activated, whatever. It also got a NTSC specific variant (I think this was based on a Sony decoder).
Unfortunately it turned out Pepto was wrong with his measurements and the palette has been superseded by Colodore. Colodore was still regarded as imperfect, and so the (imho somewhat unfortunately named) PALette appeared. The “Community Colors” palette was another effort where a bunch of people got together with their real machines to develop something, afaik another PAL-only project.
That’s your real issue right there:
differences in color presentation are not necessarily signs of inaccuracy or mistakes. Two setups can both be ‘correct’ while producing noticeably different results, especially for hues like blue, purple, and yellow. Rather than treating color differences as problems to be fixed, users may want to experiment with hue, phase, and filtering controls to find a presentation that aligns with their memory, display characteristics, or personal preference. Embracing this flexibility can make it easier to appreciate how games actually appeared across real hardware and televisions, instead of expecting a single, universal look that never truly existed.
I love it.
20 characters to post?! x.x
Thanks! I’ll try that out. You also said that there are other presents for transparencies, but they’re 4k presets and I have a 1440p monitor. Would I just have to change the mask size?
It’s a 1440p LCD. The ASUS pulsar monitor which has a fantastic 60hz strobing mode.
You also said that there are other presents for transparencies, but they’re 4k presets and I have a 1440p monitor. Would I just have to change the mask size?
Tell me you didn’t read any of the readme.txt files nor the first post of this thread without saying it.
For most of my preset packs and presets after a certain point, blending of transparency and dithering effects is the default behaviour for consoles which require that.
While my Mega Bezel preset pack contains 1440p_Optimized preset folders, other preset packs include tips for adjusting the TVL or resolution settings to maintain consistency with the 4K Optimized Presets.
The parameters to change depend on the preset pack/Shaders used.
In general if you want a 4K preset to look similar at 1440p and similarly 1080p, you would have to adjust whichever parameters are necessary to increase the TVL.
Feel free to let me know which preset pack(s) Shaders you’re using and I can point you in the right direction.
As for which presets blend and don’t blend, the signal type in the description is also a good indicator.
So, look for RF, Composite or 3D Comb Filter and I also have presets which suggest you combine with a Blargg NTSC Video Filter Preset. The same applies. In some cases an S-Video preset might do some limited blending.
It’s pretty easy to modify most shaders to looks consistently at higher resolutions. You just have to use different mask layouts or zoom the mask so that the emulated CRT’s TVL remains more or less the same. So a ~300TVL preset should or at least could look very similar at 1080p, 1440p and at 1440p display resolutions. Feel free to elaborate as to which shader and the preset settings used and I should be able to point you in the right direction. For example for around 300TVL with CRT Guest Ad…
where is the link on github i want to add this combination please 
Which combination would you like to add to where? Please explain.
If you’re referring to download links and instructions for setting up my preset packs, they’re all in the first post of this thread.
[CyberLab Mega Bezel Death To Pixels Preset Pack Title] [Screenshot_20220408-113722_Chrome] [Screenshot_20220408-114931_Chrome] [Screenshot_20220408-114949_Chrome] [Screenshot_20220408-115001_Chrome] [20220825_100739] Disclaimer: I present these to you without making any claims, representations, warranties nor acceptance of any liabilities including any arising out of the use of this software whatsoever. They are just my presets that I use and I’m sharing with you in the hope that y…
@Cyber No wonder you use an older version of Mega Bezel. I had no idea interlacing was broken in the latest version.
No wonder you use an older version of Mega Bezel. I had no idea interlacing was broken in the latest version.
That’s probably not the reason my preset packs require an older version of Mega Bezel Reflection Shader. Mega Bezel integrates a collection of independent shaders with separate development and update cycles.
When a preset is made to a particular specification, then the underlying shader changes in the future via updates, the preset might very well stop looking as intended by the author. So what ends up happening sometimes is that there are unsolicited changes to the look of a preset or in some cases many presets.
Many times the work that must be done to update the presets involves hunting down new values to parameters which might look closest to what was already satisfactory.
Now multiply the verification process by thousands of presets and you can see how maintenance can quickly become an issue.




