CyberLab Death To Pixels Shader Preset Packs

I was able to implement this via a parameter change detection pass. Was this what you had in mind or was your idea more of a “visual” check to see if there was a change in the pixels in a certain area of the screen before triggering a full bezel cutout and repositioning scan?

1 Like

Yeah, this is ok.

Make sure the LLM model made that pass as low resolution as possible, possibly with an absolute scaling method to be not dependant on the input core resolution.

Btw, I’ll step back from this, as it apparently is already working fine and I really don’t feel comfortable interacting with LLMs, even in an indirect way, for personal reasons and opinions; I hope you understand.

3 Likes

That makes a lot of sense. Since we don’t really need any of those pixels at all for just a parameter detection. I don’t need an LLM to explain or implement this for me. All this can be done using the shader presets’ pass scaling and resolution settings and I immediately recognize at least one example of this in CRT-Guest-Advanced-NTSC from interacting with the code during my weeks if not months long journey to the release of CyberLab Golden Bezel.

So when you help me, you’re teaching me and the more I learn, the more self reliant and less reliant on LLMs I become.

I respect your wishes but you’re not interacting with an LLM, you’re interacting with me.

I am the one who took what I learned over the years and what I wanted to focus on in order to come up with a reflective bezel solution that works in harmony with CyberLab (as well as any other compatible presets).

The LLMs are just helping me to attain my vision, not the other way around. Anyway, thanks for some of the out of the box ideas. I’m taking a similar approach towards performance optimization as well as improving image quality where I might deem feasible. Just to show that it’s not just an LLM doing the thinking, I’m currently contemplating whether or not, I might be able to extract a little more performance by optimizing the shader code around my GPU’s architectural strength’s and weaknesses. Similar to what you would have done with kokoko-aio and what MajorPainTheCactus would have done with Sony Megatron Colour Video Monitor.

So yeah, I may not be able to write the math or code and remember all of the syntax but I do understand and am learning more about designing software in the way that I think it needs to be designed and this is not my first foray into doing stuff like that. In the past, I’ve relied on human developers to achieve my vision for an app.

Even right now, I have some ideas that I pitched to a very capable developer concerning some stuff that I want tried and implemented in some retro games but they seem not to be interested so what do I do? I’ll try to find a way some how to get it done.

Anyway, thanks again for the assistance and support, thus far.

Out of respect for your wishes, you needn’t comment any further but I’m putting this here for anyone who would like to comment on it. I know I can always read the docs or Google to find this out. Anyway, here’s the example I was telling you about earlier which does have specified absolute and low resolution. The new “cheap” parameter change detection pass, immediately follows it. It doesn’t specify a resolution but it does say absolute and the scale is x1.

I’m assuming that the resolution is maintained from the previous passes. Someone can correct me if I’m wrong.

Following all of this, pass #19 returns to viewport resolution.

Shader Passes
shader13 = "../shaders_slang/crt-guest-advanced-2026-07-12-release1/shaders/guest/hd/gaussian_horizontal.slang"
alias13 = ""
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
filter_linear13 = "true"
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "absolute"
scale_x13 = "800"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "../shaders_slang/crt-guest-advanced-2026-07-12-release1/shaders/guest/advanced/gaussian_vertical.slang"
alias14 = "GlowPass"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
filter_linear14 = "true"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "absolute"
scale_x14 = "800"
scale_type_y14 = "absolute"
scale_y14 = "600"
shader15 = "../shaders_slang/crt-guest-advanced-2026-07-12-release1/shaders/guest/hd/bloom_horizontal.slang"
alias15 = ""
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
filter_linear15 = "true"
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "absolute"
scale_x15 = "800"
scale_type_y15 = "absolute"
scale_y15 = "600"
shader16 = "../shaders_slang/crt-guest-advanced-2026-07-12-release1/shaders/guest/advanced/bloom_vertical.slang"
alias16 = "BloomPass"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
filter_linear16 = "true"
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "absolute"
scale_x16 = "800"
scale_type_y16 = "absolute"
scale_y16 = "600"
shader17 = "../shaders_slang/misc/shaders/cutout_param_watch_CBL_Mod.slang"
alias17 = "CutoutParamWatch"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
float_framebuffer17 = "false"
srgb_framebuffer17 = "false"
scale_type_x17 = "absolute"
scale_x17 = "1"
scale_type_y17 = "absolute"
scale_y17 = "1"
shader18 = "../shaders_slang/misc/shaders/border_cutout_detect_CBL_Mod.slang"
alias18 = "CutoutBBox"
wrap_mode18 = "clamp_to_border"
mipmap_input18 = "false"
float_framebuffer18 = "false"
srgb_framebuffer18 = "false"
scale_type_x18 = "absolute"
scale_x18 = "1"
scale_type_y18 = "absolute"
scale_y18 = "1"
shader19 = "../shaders_slang/crt-guest-advanced-2026-07-12-release1/shaders/guest/advanced/crt-guest-advanced-ntsc-pass2_CBL_Mod.slang"
alias19 = ""
wrap_mode19 = "clamp_to_border"
mipmap_input19 = "false"
filter_linear19 = "true"
float_framebuffer19 = "true"
srgb_framebuffer19 = "false"
scale_type_x19 = "viewport"
scale_x19 = "1.000000"
scale_type_y19 = "viewport"
scale_y19 = "1.000000"
1 Like

When you specify absolute as scaling mode, it outputs a resolution specified by the relative scalex/y parameters, (so it does not retain anything, but it is not necessarily wrong, as it depends on the chain).

Specifying a 1x1 texture is also going to cause issues for several reasons tied to the linear filtering and driver/gpu limitations. I suggest you to go for 64x64 or 32x32 (don’t mind the filter_linear as it has its own weirdness due to some retroarch weird behaviour with feedbacks).

I also see you set 2 passes to absolute/1x1 and I’m not sure ot is what you want or not, worth double checking.

2 Likes

@Cyber the 120+hz presets in the legendary pack :fire: :japanese_goblin:

1 Like

Thank you very much sir. The Adaptive-Strobe-Koko component can also be bypassed as well as the XBR-LEVEL-2 component with the right settings, if your system can’t keep up when running the Golden Bezel version for example.

I did a lot of work trying to perfect the sprite flicker based transparencies in those presets so do enjoy and ensure that your system is optimally configured for consistent performance.

1 Like

good guide in the readme and forum post w/ settings.

I enjoy playing on your shader sets as well brother @kokoko3k

2 Likes

Hey everyone, I’ve been experimenting with the CyberLab Mega Bezel Death To Pixels Shader Preset Pack, and I’m trying to find the right configuration for my setup.

I’m having a hard time understanding all the preset options and shader parameters, and so far I haven’t been able to get a result that I really like. I’m wondering if part of the problem is that CyberLab is primarily designed around modern OLED/HDR displays, while my TV is an older SDR LED panel.

I’d really appreciate some recommendations for which CyberLab presets I should use for each of my RetroArch cores, based specifically on my hardware and the systems I play.

Systems I currently use

  • Nintendo Game Boy / Game Boy Color
  • Nintendo NES
  • Nintendo SNES
  • Nintendo Game Boy Advance
  • Nintendo 64
  • Nintendo DS
  • Nintendo GameCube
  • Nintendo 3DS
  • Sony PlayStation
  • Sony PlayStation 2
  • Sega Master System
  • Sega Genesis
  • Sega Saturn
  • Sega Dreamcast

One complication is that the CyberLab Mega Bezel Death To Pixels pack doesn’t include dedicated handheld presets .

I’d really like to stay entirely within @Cyber ´s work rather than mixing CyberLab with presets from other authors. I like the idea of having one consistent visual style across my entire RetroArch setup.

For the handheld systems, I was considering using the SNES presets for Game Boy through 3DS , and possibly switching the 3DS to something intended for N64/PSX since its resolution and overall presentation are quite different.

Does that make sense, or would there be a better way to approach it using only the CyberLab presets?

What I’m trying to achieve

I’m not looking for a traditional CRT/retro-authentic look.

My goal is more of a modern, clean presentation :

  • Flat and sharp
  • Crisp and well-defined
  • Colorful
  • Minimal blur
  • Modern-looking rather than nostalgic
  • Still retaining some tasteful shader characteristics

I particularly like the appearance of Slot Mask , so I’d love to incorporate that into the setup if possible without making the image look overly artificial.

My hardware

  • OS: Windows 11 25H2
  • RetroArch output: 3840×2160 (4K), SDR / No HDR
  • RAM: 16 GB
  • GPU: NVIDIA RTX 3060, 12 GB VRAM
  • CPU: Intel Core i5-12400F
  • TV: LG 49UM7300PSA, 49" 4K UHD LED, SDR
  • Connection: Amazon Basics DisplayPort → HDMI cable (B015OW3M1W)

So, if you were configuring CyberLab for this particular setup, which preset would you choose for each console/core, and what general shader settings would you recommend?

I’d especially appreciate suggestions for the handheld systems, since there aren’t dedicated presets for them.

1 Like

Hmmm…I’m having a bit of difficulty understanding the root of the issue. What would help are images, screenshots, comparisons, examples, preset names e.t.c. This well written post is still a bit broad in scope.

Have you read the readme.txt file? Have you read the first post of this thread in its entirety?

There isn’t a single look or style that encompasses CyberLab Mega Bezel Death To Pixels Shader Preset Pack as it covered a long part of my history of making presets. Throughout the thread and in the first post, you will find screenshots, photos, preset names even video clips of the presets in action. That’s your WYSIWYG gallery there. The presets are not primarily geared towards tweakers so most of the parameters needn’t be of the most concern, except for the ones mentioned in the documentation.

Most of my earlier preset packs were centered around SDR displays, it is only in the latter half that I’ve switched over to HDR. Almost any preset is supposed to be compatible with both SDR and HDR though except maybe the newest ones, which have an HDR shader appended to the last pass.

During my development journey, I’ve used, OLED, LCD, LED, miniLED, SDR and HDR displays and have presets and entire packs designed using any combination of the display technologies above. The type of display technology used to enjoy the presets is for the most part agnostic.

The recommendations are right there in the file names. I don’t know how more descriptive I could get than that. There is even a folder called “Console Specific Presets”. Surely, you must have seen it?

That’s okay, you can use Duimon’s, kokoko3k’s or my personal choice, Handheld Border Shaders for those.

I don’t understand why, if you don’t think the preset style is your cup of tea. Maybe I’m missing something here.

Some folks swear by using CRT intended presets for handheld systems and the results are equally phenomenal. In my opinion some systems lend well to using presets designed for certain systems as opposed to others. Sometimes it’s a case of matchig the appropriate Gamma or resolution characteristics of a system.

When I first read this, I felt like your preference is not the look I currently go for but subsequentially, I started wondering if the opposite was true.

I tend to use whatever presets I’m currently working on. You can look through this thread or the Please show off What CRT Shaders Can Do Thread. Look for screenshots and preset names, if you like it use it.

Sometimes things are sorted in reverse chronological, order for example in the first post, you will find some older stuff near the bottom.

Turn up the brightness/backlight/contrast of your display.

You have a good system for these things. Make sure your system is outputting RGB 4:4:4 Full to your display.

If my current presets are not to your liking and you prefer the older more fantasy style, there are a few reprentative presets using the older style. You can also turn up the smoothing, while lowering the mas strength to achieve similar with more modern presets. Rome wasn’t built in a day so there is a learning curve which you would be wise to respect so give yourself some time to get acclimatized and take things one step at a time.

Remember to read the readme.txt files.

I’ve noticed in recent times that many of my Mega Bezel presets are no longer loading, I don’t intend to spend much time and energy on those though, feel free to instead try out my new CyberLab Golden Bezel preset pack for a more up to date experience.

Hi @Cyber , thanks for the detailed reply; I understand a lot more now. I also apologize for not expressing myself clearly earlier—I had asked the AI ​​to write the message for me, and this was the result. I’ll be more direct this time: after reading your explanation, I started experimenting with the presets and re-reading the guide. If the answer to my question is already in there somewhere, I must have missed it. I actually have two questions, A and B; here is what I want to adjust:

A. I applied the settings according to the guide, but whenever I change the core’s internal resolution, the game screen changes size. I’d like to edit this manually—specifically by entering X and Y coordinates to position the internal screen and manually setting the resolution pixel x pixel. I know I can switch the scaling mode from “Full” to “Custom,” but wouldn’t that remove or crop the bezel? Am I mistaken?

B. I’m still working on finding a visual style I like for my handheld cores. I haven’t found one in your pack yet, but I did find one in Duimon’s set. I’d like to keep your preset with its carbon fiber bezel (I’m a huge fan of the look you achieved with it) but swap the shader for one of Duimon’s. I’ve included a GBA example image below to better illustrate what I’m trying to achieve.

I want to clarify the point about the graphic style; I didn’t express myself well in the previous message. By “graphic style” or “visuals,” I was referring specifically to the bezel (again, I plan to keep the carbon fiber bezel—I love it). Switching to another author’s work would mean losing the bezel I want to keep. Even if I could just take the bezel and place it over a shader from another pack, I feel I’d lose some of the subtle details from CyberLab that I’d like to preserve.

I need to learn how to make these modifications because I want to do the same for GB/GBC and something similar for DS/3DS (though I haven’t quite figured those out yet).

1 Like

The carbon fiber background and bezel were not created by me. That’s the default background of Mega Bezel Reflection Shader by HyperSpaceMadness.

Both Duimon’s Mega Bezel graphics project and my CyberLab Mega Bezel Death To Pixels Shader Preset Pack use HyperSpaceMadness’ Mega Bezel Reflection Shader so that default background that you seek is easily attainable using even Duimon’s presets. You just have to override the background graphics reference and point that line in the preset to the original default background graphic. If you read the Mega Bezel readme.md or first post (which my preset pack instructs all users to do), you’ll learn more about how to go about doing that.

Or, you can also just use the stock Mega Bezel Presets, which would essentially provide the unspoilt, pristine look of Duimon’s CRT screen effects without his graphics or my CRT screen effects getting in the way of your carbon fiber background and bezel.

Hello, I’ve trying the use the CyberLab Megatron miniLED 4K HDR Game BFI NES_N64 COMPOSITE CyberTron Advanced PMV edition but the screen looks like this

I’ve tried other other sony megatron colour presets and the same red tint effect remains, the ones that dont have it still look quite wrong (altough im not 100% sure since I dont have a lot of experience with real CRTs). Tried messing with hdr settings but no luck. I’m using a Samsung S85f 4K OLED tv, any idea how to fix it?

1 Like

Megatron is broken in that way on all AMD GPUs. There is no way to fix it other than using specific versions of Megatron v2.

Alternatively, Adamant forked off of one of the versions of Megatron v2 that worked properly on AMD GPUs, at least from what i have been told, and that has various presets of it’s own. I don’t think there is currently an easy way to use Adamant with @Cyber’s presets tho.

3 Likes

Hmmm, I forgot that that was one of the reasons, I was looking forward to using Megatron V2 until it just felt like it didn’t make much sense having to remake all of my presets. Maybe if we can isolate the bug, I can have a try at fixing it using AI.

In the meantime, just try my CyberLab Golden Bezel or CyberLab Guest Legendary Death To Pixels 4K HDR Shader Preset Pack. There’s no downside to using those over my Sony Megatron Preset Packs except maybe higher performance requirements.

@felpsoaks Be sure to read the readme.txt files for tips on how to set things up correctly.

1 Like

The AMD red overlay thing was an issue with Megatron v1 as well.

It was fixed for Megatron 2.6.1-2.7.2, then was broken again in 2.8.0r1, and remains broken in the current version (2.8.0r4).

Out of those versions, color accuracy was good from 2.6.1-2.6.2, and has been broken from 2.6.5-2.8.0r4. At least on WOLEDs, confirmed by multiple people now. I’m still not sure if that effects some or all LCD displays as well? Have you checked how color on Adamant compares for you @Cyber?

I forked off from 2.6.1, so Adamant should work on AMD cards, and the color accuracy should be good.

3 Likes

It shouldn’t that difficult if a user wants to use my presets with Adamantum to either swap it into the Sony Megatron folder in my presets pack or just adjust the paths to point to it.

After that it’s just some colour and and maybe some tweaks to the Display Resolution and TVL settings. The PVM-Edition presets shouldn’t even need that much tweaking because it basically just runs the TVL high enough that the mask is basically non-existent for more brightness.

Thanks for the info, shame on the drivers for breaking so many good presets… I also fixed the weird colors on other presets by messing with my TV settings so now everything looks good! Although still a little more darker than what I’d like, should I just raise paper white value or is there anything else I can do to make it brighter?

1 Like

Mostly this and Peak Brightness. There is no set rule that one should be higher than the other so don’t artificially limit yourself. Gamma can also increase brightness but in a different way.

The AMD red bug only seem to affect Aperture Grille so you can just change the Mask to Shadow Mask or Slot Mask. At PVM-Edition TVL they should all look pretty similar.

For maximum accuracy, i’ve found that it is best to set Peak Luminance and Paper White to the same value. But if you aren’t aiming for accuracy, that obviously goes out the window.

2 Likes

I’m having issues to install Golden bezel.

Setting them all in a custom folder, besides fixing shader locations.

Also, for: CyberLab Guest Golden Bezel Genesis With Actual Golden Bezel - Fixed Paths

It’s trying to look for:

SamplerLUT4_mipmap = "false"
SamplerLUT4_wrap_mode = "clamp_to_border"
BORDER = "../CyberLab_Full_Range_Stereo_Mega_TV_bezel_cutout.png"
BORDER_mipmap = "true"
BORDER_linear = "true"
BORDER_wrap_mode = "clamp_to_border"
LAYER2 = "../CyberLab_Full_Range_Stereo_Mega_TV_bezel_cutout.png"
LAYER2_mipmap = "false"
LAYER2_linear = "true"
LAYER2_wrap_mode = "clamp_to_border"

files, which i cannot find through any of your package files or default shaders folder

1 Like