FYI…I am seeing the exact same issue. Maybe AMD/Radeon related? That is my GPU anyway.
Vulkan
GLCore
FYI…I am seeing the exact same issue. Maybe AMD/Radeon related? That is my GPU anyway.
Vulkan
GLCore
I see, you’re the second person now to report that issue. It looks like at least switching to the glcore driver fixes that issue so that’s good.
Both @B-Nerd and myself are using AMD GPUs. I have another machine with a GTX 950. I’ll do a fresh install on that and see if I have the same issue. I’m betting it will work fine.
Ok, this will be a good test to see if it’s possibly just an AMD issue. Also do you get a black screen with the svideo and rgb presets? Or is it just composite only?
yep it is with rgb, svideo & composite
If such an error occours with someone’s setup, then it’s best to identify the problem causing pass by replacing them one by one with the stock shader. It can be done from the RA shaders/passes menu.
I did this and replaced each pass with crt-guest-advanced-hd-pass1.slang
and had the same result.
Did I do it right? This is what my retroarch.slangp
looks like (I saved it just to have a copy)…
shader0 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
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/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "StockPass"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "AfterglowPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "true"
alias3 = "PrePass"
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "LinearizePass"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "Pass1"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "viewport"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "absolute"
scale_x6 = "800"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "BloomPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "absolute"
scale_y7 = "600"
shader8 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass2.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "1.000000"
scale_type_y8 = "viewport"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"
p.s. Using just the crt-guest-advanced-hd
shader works as expected.
It has to be the stock shader.
crt-guest-advanced-hd-pass1.slang
reads from a sampler/alias named LinearizePass, which is somewhere in the middle of the chain, making the whole composition non-valid.
The lastest presets show a black screen on my Steam Deck. I narrowed ot down to the negative contrast parameter. Positive values bring the screen back to normal.
This is another new case of the black screen attack this time on a Steam Deck. I’m still not sure exactly what causes this and it’s good that you got it to work but if you had to change the contrast to do so that’s still kind of bad as that changes the intended look I had for the shader. If that works for you then all is good but that’s weird.
Here’s a little preview of what I’ve been working on, a new composite preset. The presets that’s included in the pack is based on the 320px ntsc 2-phase output which I’ve used to recreate the Sonic waterfall rainbow effect but what about the other systems that used the 256px 3-phase output signal like nes, snes, master system and atari 2600? They have their own different color artifacting effects that can’t be replicated by the 2-phase composite signal and that’s why this new preset was created.
A few sample pics to show the difference:
2-phase composite:
3-phase composite:
2-phase:
3-phase:
2-phase:
3-phase:
Almost every major retro console used the 2-phase output while very few systems (nes, snes, master system, atari 2600) used 3-phase, this new preset is meant to be used for those few systems.
In my next update I’ll have to rearrange the whole naming list, it will be the first composite preset (2-phase) that you’ve already been using then I’ll just add in the 3-phase one right under it so it will then expand to 4 different types of connections to choose from instead of 3. I’ll figure out how I’ll name them in the meantime. You can try the shader out in the meantime though:
shaders = "10"
shader0 = "shaders_slang/crt/shaders/tvout-tweaks.slang"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
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/crt/shaders/mame_hlsl/shaders/old/shaders/mame_hlsl/shaders/mame_ntsc.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "StockPass"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/guest/hd/afterglow0.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "AfterglowPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/guest/advanced/grade/pre-shaders-afterglow-grade.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "true"
alias3 = "PrePass"
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/hd/linearize-hd.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "LinearizePass"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "Pass1"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "viewport"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/hd/bloom_horizontal.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "absolute"
scale_x6 = "800"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/hd/bloom_vertical.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "BloomPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "absolute"
scale_y7 = "600"
shader8 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass2.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "1.000000"
scale_type_y8 = "viewport"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/hd/deconvergence-hd.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
TVOUT_COMPOSITE_CONNECTION = "1.000000"
TVOUT_RESOLUTION_Y = "1024.000000"
TVOUT_RESOLUTION_I = "256.000000"
TVOUT_RESOLUTION_Q = "121.599998"
ntscsignal = "1.000000"
avalue = "0.750000"
bvalue = "0.750000"
ccvalue = "3.675039"
scantime = "49.400047"
notchhalfwidth = "0.800000"
signaloffset = "0.000000"
g_crtgamut = "0.000000"
g_vignette = "0.000000"
g_cntrst = "-0.250000"
g_sat = "-0.030000"
g_lift = "-0.030000"
spike = "1.500000"
warpX = "0.050000"
warpY = "0.070000"
csize = "0.035000"
glow = "0.200000"
bloom = "-0.800000"
bloom_dist = "0.400000"
halation = "-0.075000"
gamma_c = "1.250000"
brightboost = "1.000000"
brightboost1 = "1.200000"
beam_min = "2.199999"
beam_max = "0.950000"
beam_size = "0.000000"
scans = "0.050000"
scan_falloff = "0.200000"
shadowMask = "6.000000"
maskstr = "1.000000"
maskboost = "1.200000"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "3.000000"
double_slot = "2.000000"
smoothmask = "1.000000"
dctypex = "0.050000"
dctypey = "0.050000"
deconrr = "1.000000"
deconrb = "-1.000000"
deconrry = "1.000000"
deconrby = "-1.000000"
post_br = "1.150000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"
Brilliant work @Sonkun! I look forward to seeing this hybrid shader you and @ynnad4 have been using being integrated in the HSM Mega Bezel Reflection Shader someday!
I could vaguely recall @ynnad4 asking if it could be used together with the shaders I use, perhaps this can be made possible someday by @HyperspaceMadness?
Maybe as an upgrade to an existing one to keep things from becoming too bloated?
I updated my post over at the NTSC Shaders Redux thread to show some examples of PC-Engine/TurboGrafx-16/Turbo Duo rainbow artifacts over composite output so you can take a look.
Thank you Cyber I appreciate it. I should have been made this composite preset a while ago now that I think of it, it’s not like the mame ntsc shader switches between 2 phase and 3 phase automatically like guest’s ntsc shader does so it makes sense that there should be two types of composite presets to cover both grounds.
When I get home from work later I’ll polish that preset up a bit more then get it ready for public release, I noticed the rainbow effect is not exactly aligned correctly that’s one of the main issues and it would be nice to see my presets again in the Mega Bezel pack like old times. It all comes down to Hyperspace to decide that though, my shaders will always be more than welcome to integrate back into the project again when the time is right especially now that they look better than ever imo.
Can you remind me once again for the folks watching at home why this can’t be done properly or accurately using CRT-Guest-Advance-NTSC?
At the same time that I would love to enable Sonkun’s setup to run in the Mega Bezel, I am trying to keep the Mega Bezel from collecting too much redundant functionality in the chain.
Sonkun’s current presets are based on guest Advanced HD, and add mame-ntsc to this. The Mega Bezel NTSC chain is uses the Guest Advanced NTSC setup. So it’s quite a different shader chain.
I also want to avoid having 2 separate ntsc effects in the shader, because for the average user this will be quite confusing.
There might be some way in the future to achieve something which could work, and avoid redundancy and confusion, but I don’t see the solution at the moment.
Lol oh no it definitely does the job, the only thing it doesn’t do is give me that same rainbow effect that I get from the mame ntsc shader so that’s why I ended up just switching over to that shader then things just got experimental from there.
And pretty much that’s the reason right there that @HyperspaceMadness said why my presets aren’t in the Mega Bezel project at the moment, my presets are a mixed bag of other shaders besides guest’s. I guess if anything the only presets that will fit in right now are the rgb presets since I’ve added nothing else to the chain, it’s just all guest’s shader for that one.
New Version Release (12/21/2022)
Changes Made
Here’s a early Christmas gift for you guys, a brand new composite shader preset.
I’ve created two different composite connections, one for ntsc 2-phase and one for ntsc 3-phase. The composite shader that’s been included up to recently in all my shader packs has been based off the ntsc 2-phase output, most systems used the 2-phase connection but a few systems used the 3-phase connection. I’ve created a list of the common retro systems on RetroArch to choose the right connection for the right system.
Systems that used the ntsc 2-phase output:
Atari 5200, Atari 7800, Atari Jaguar, Sega Megadrive(Genesis)/CD/32X, Nintendo 64, Neo Geo CD, NEC PC Engine(Turbo Grafx)/CD/Super Grafx, Panasonic 3DO, Philips CDi, Sega Saturn, Sony PlayStation.
Systems that used the 3-phase ntsc output:
Atari 2600, Nintendo Entertainment System, Sega Master System, Super Nintendo Entertainment System.
Very few systems used the ntsc 3-phase output but that output produced different dithering color/artifact effects on the screen for those specific systems that the ntsc 2-phase output didn’t and I wanted to recreate that look with this new 3-phase composite shader.
Here’s a few sample pics to show the difference.
NTSC 2-phase composite:
NTSC 3-phase composite:
NTSC 2-phase composite:
NTSC 3-phase composite:
NTSC 2-phase composite:
NTSC 3-phase composite:
As you can see on the ground in Ninja Gaiden, the side of the houses in Paperboy and the water in Super Mario World it produces a diagonal dithering effect and that’s how it’s suppose to look using composite ntsc 3-phase.
You can all grab the new link in the first post.
Edit as of 12/22/2022: Did a small tweak to the new ntsc 3-phase composite presets so if you downloaded the 22/21/2022 pack please download the 12/22/2022 pack.
Hi Sonkun, I’m a fan of your project that I really appreciate, your presets give a great retro look to things that I emulate with little effort on my modest mini PC’s part. I wanted to ask if in the future you plan to create presets with integrated overlays or bezels, that would be great since I, and I believe many users like me, have a hard time finding the right image resizing for an even better experience. And finally I wanted to ask you if you were going to bring your project to Reshade as well. Thank you very much for your attention and for your work.
Hey Rob, I’m glad you’re liking my presets, I make these not only for myself but for all retro gamers. As far as integrating bezels and overlays I don’t have any plans to do that as I use the Bezel Project for all my overlays. Have you tried giving those a try? I put a link to where you can grab them right in the first post.
I’m going to check it out right away, I haven’t tried them yet. Thanks for the advice and thanks again for your work.