Perfect - you were very clear - thanks as always for your work. PS I agree with you that the N64 has aged rather poorly, but Super Mario 64 is so much fun!
I recently made a good N64 preset for my Epic preset pack and I also have N64 presets scattered around my various preset pack offerings.
In the past, I’ve also used my NES presets as good starting points for N64 emulation but the key to a great N64 emulation experience using CRT shaders may actually lie in how you setup your N64 emulator.
That can either make or break the experience.
By the way, what make and model is it? If it’s bright enough you can try some of my Sony Megatron miniLED Epic presets.
It’s a TLC 50BP615. I’ve actually had it for 2 years and was using the Mini PC on an old TV in the bedroom to make it “Smart.” But now I’m buying some “Smart TV” sticks and as soon as they arrive I should be able to remove the PC and format it. The TV says it’s 4K, but from some tests I did in the past, the PC had difficulty handling even a shader like CRT-Royale at this resolution. While at 1080p I have no problems with most shaders, except for the emulation of “heavier” systems like the PS2 for example. Since I read that the Sony Megatron is a fairly lightweight shader, I absolutely have to try these works of yours in 4K mode as soon as I can—but I have to wait until the weekend between the arrival of the sticks and the formatting of the PC. Thanks so much for the tip. I hadn’t thought of doing these tests; I’m still stuck at 1080p.
CyberLab Megatron miniLED 4K HDR Game BFI Turbo Duo_DC Composite CyberTron Epic CAR9x8x or CAR7x6x.slangp and CyberLab Megatron miniLED 4K HDR Game BFI Turbo Duo_DC Composite CyberTron Epic CAR9x8x or CAR7x6x.slangp
Hi Cyber, been a fan of your presets for a while- even invested in a miniLED (partly) because your newest presets were made with the tech in mind… and those presets look great, but even though I set the subpixel layout in the Shader Parameters to RGB, when zooming in, the shader still outputs BGR somehow. Any idea where in the pipeline could be causing this?
Sincerely, a fan.
As far as I can tell, this is normal behavior.
Are you talking about a photo of the screen, or a screenshot?
Reversing the phosphor order is normal for these masks. E.g., with RGB subpixels you’ll get
xxBxGxRxx
If you didn’t reverse the subpixels you’d get this
RxxxGxxxB
Which places the B and R right next to each other, which causes those phosphors to blur together and become magenta.
All miniLED displays are not the same. What’s the make and model? miniLED is a backlighting technology, the panel type can vary and even among the same panel types subpixel layouts can vary.
Send a screenshot as this will show what the shader is outputting. Also your settings and/or the name of the specific preset.
A close-up photo of the screen might also help using low ISO to allow the subpixel detail to be captured. Something white or grey would contain all of the subpixel colours.
Deconvergence settings can make the emulated phosphors shift around, Shadow (Dot Mask) patterns are subpixel agnostic.
Lower TVL’s spread the phosphor colours over several pixels so once they are close enough or spaced evenely enough, things might not look that bad even if the wrong layout is chosen.
Here is a perfect example of a user using the “wrong” layout for their display but with things still seemingly working out for them. At the end of the day use whatever looks best to you.
CyberLab Megatron miniLED 4K HDR Game BFI Turbo Duo_DC Composite CyberTron Epic CAR9x8x or CAR7x6x W3.slangp
featuring Sony Megatron Colour Video Monitor and CRT-Guest-Advanced-NTSC 2025-11-11r1 NTSC Section
Not sure if I reported this before, but the uborder pack presets are giving me this error with the latest uborder release:
[DEBUG] [Shaders] Load parameter value: "auto_res" = 1.000000.
[DEBUG] [Shaders] Load parameter value: "cust_artifacting" = 0.000000.
[DEBUG] [Shaders] Load parameter value: "cust_fringing" = 0.000000.
[DEBUG] [Shaders] Load parameter value: "ntsc_scale" = 0.875000.
[DEBUG] [Shaders] Load parameter value: "ntsc_sat" = 1.180000.
[DEBUG] [Shaders] Load parameter value: "ntsc_cscale" = 3.499998.
[DEBUG] [Shaders] Load parameter value: "ntsc_cscale1" = 1.450000.
[DEBUG] [Shaders] Load parameter value: "box_scale" = 3.000001.
[DEBUG] [Shaders] Load parameter value: "in_res_y" = 224.000000.
[DEBUG] [Shaders] Load parameter value: "CRTgamma" = 2.300000.
[DEBUG] [Shaders] Load parameter value: "CURVATURE" = 0.000000.
[DEBUG] [Shaders] Load parameter value: "R" = 2.699999.
[DEBUG] [Shaders] Load parameter value: "cornersize" = 0.011000.
[DEBUG] [Shaders] Load parameter value: "cornersmooth" = 280.000000.
[DEBUG] [Shaders] Load parameter value: "overscan_x" = 99.000000.
[DEBUG] [Shaders] Load parameter value: "overscan_y" = 95.500000.
[DEBUG] [Shaders] Load parameter value: "mask_type" = 11.000000.
[DEBUG] [Shaders] Load parameter value: "DOTMASK" = 0.900000.
[DEBUG] [Shaders] Load parameter value: "lum" = 0.260000.
[INFO] [Slang] Compiling shader: "D:\RETRO\RetroArch\shaders\shaders_slang\crt-guest-advanced-2024-10-27-release1\shaders\guest\advanced\stock.slang".
[INFO] [Vulkan] Using render target format R8G8B8A8_UNORM for pass output #0.
[INFO] [Slang] Compiling shader: "D:\RETRO\RetroArch\shaders\shaders_slang\crt-guest-advanced-2024-10-27-release1\shaders\guest\advanced\ntsc\ntsc-pass1.slang".
[INFO] [Vulkan] Using render target format R16G16B16A16_SFLOAT for pass output #1.
[INFO] [Slang] Compiling shader: "D:\RETRO\RetroArch\shaders\shaders_slang\crt-guest-advanced-2024-10-27-release1\shaders\guest\advanced\ntsc\ntsc-pass2.slang".
[INFO] [Vulkan] Using render target format R16G16B16A16_SFLOAT for pass output #2.
[INFO] [Slang] Compiling shader: "D:\RETRO\RetroArch\shaders\shaders_slang\crt-guest-advanced-2024-10-27-release1\shaders\guest\advanced\ntsc\ntsc-pass3.slang".
[INFO] [Vulkan] Using render target format R8G8B8A8_UNORM for pass output #3.
[INFO] [Slang] Compiling shader: "D:\RETRO\RetroArch\shaders\shaders_slang\crt-guest-advanced-2024-10-27-release1\shaders\guest\advanced\custom-fast-sharpen.slang".
[INFO] [Vulkan] Using render target format R8G8B8A8_UNORM for pass output #4.
[INFO] [Slang] Compiling shader: "D:\RETRO\RetroArch\shaders\shaders_slang\bezel\uborder\shaders\content_shaders\crt-geom.slang".
[INFO] [Vulkan] Using render target format R8G8B8A8_UNORM for pass output #5.
[INFO] [Slang] Compiling shader: "D:\RETRO\RetroArch\shaders\shaders_slang\bezel\uborder\shaders\support_shaders\noshame-blur.slang".
[INFO] [Vulkan] Using render target format R8G8B8A8_UNORM for pass output #6.
[INFO] [Slang] Compiling shader: "D:\RETRO\RetroArch\shaders\shaders_slang\bezel\uborder\shaders\uborder-reflections.slang".
[ERROR] [Slang] Failed to open shader file: "D:\RETRO\RetroArch\shaders\shaders_slang\bezel\uborder\shaders\uborder-reflections.slang".
[ERROR] [Vulkan] Failed to compile shader: "D:\RETRO\RetroArch\shaders\shaders_slang\bezel\uborder\shaders\uborder-reflections.slang".
[ERROR] [Vulkan] Failed to create preset: "D:\RETRO\RetroArch\shaders\uborder_packs\CyberLab\CyberLab Uborder miniLED 4K HDR Ready Game BFI Arcade Shadow Mask Sharp.slangp".
[ERROR] [Vulkan] Failed to create filter chain: "D:\RETRO\RetroArch\shaders\uborder_packs\CyberLab\CyberLab Uborder miniLED 4K HDR Ready Game BFI Arcade Shadow Mask Sharp.slangp". Falling back to stock.
Check in your D:\RETRO\RetroArch\shaders\shaders_slang\bezel\uborder\shaders folder and see if you have the 'uborder-reflections.slang".`
My uBorder preset pack was created using a very old version of uBorder so you might have to track down an old version.
It seems to have been renamed to: uborder-bezel-reflections.slang
Edit: batch renaming the changed file is not enough, I’ll need an older version indeed.
Not the best pics but you can still see how gorgeous this system and it’s games looked!
https://www.reddit.com/r/TurboGrafx/s/tTTuoYQ69D
This one’s quite the opposite. It’s up there with the best CRT pics I’ve seen in a while. If that doesn’t inspire, I don’t know what else will!
https://www.reddit.com/r/crtgaming/s/eS8E8JWyS6
These folks are on a roll! From one of the best CRT pics to one of the best CRT videos I’ve seen in a very long time!
Introducing CyberLab Megatron miniLED 4K HDR Game BFI Turbo Duo_DC S-Video CyberTron Epic CAR9x8x or CAR7x6x W4.slangp
Hope more and more folks are viewing these on their properly calibrated HDR setups now and you should definitely be viewing them at 1:1 scale or zoomed in. SDR users you need to brighten your display in order to view properly.
Bonus Content:
Hey @Cyber, Thanks a lot for you shader pack!!
Are their shaders an evolution of each other or are they a different experience? Can I use them with newer versions of Guest Shaders?
From my W420M Preset Pack onwards, the correct version(s) of CRT-Guest-Advanced are self contained.
My presets don’t even reference the default CRT-Guest-Advanced folder except for my first Sony Megatron Colour Video Monitor Preset Pack.
My newest presets reference very recent versions of CRT-Guest-Advanced.
You’re free to update to the latest CRT-Guest-Advanced via the Online Updater or Manually but there most likely won’t be any benefit in using other versions of CRT-Guest-Advanced than the ones I intended to be used. In many cases things won’t look as intended.
I don’t know. It can be either. Sometimes changes can be minor, sometimes changes can be major. Sometimes an older preset can be better in many ways than a new experimental preset. I simple share what I use. Down to the folder structure is the same.
It helps to refer to specific presets and / or packs if you want less general answers to your questions.
Thanks!!
One more thing: what is the meaning of these values, and are there any specific instructions for their use?
In a nutshell, I found out that slot masks, shadow (dot) masks and scanlines align differerently depending on the vertical scale factor so I started testing and adjusting my scanlines and vertical offsets differently depending on the vertical scale factor.
Thank you very much for the clarification!!


















































