Please show off what crt shaders can do!

No I was referring to the aspect ratio, if it’s 4k that explains why the mask settings don’t work for me, I’m using a 1080p display. That also changes the scale of the blur and such. Increasing the composite blur scale just produces really bad results, though. The crtsim composite also doesn’t produce the bold black lines seen on a crt using composite. Overall, NTSC-adaptive or Blargg’s filter is more authentic, I think, but the crtsim composite is interesting.

Yeah I don’t think the composite pass is actually contributing much to that setup, actually. It doesn’t blur dithering, and increasing/decreasing it doesn’t seem to actually affect sharpness at all, it does something to brightness at edges.

Ah ok, yeah it’s 4k downscaled. I tried turning off Blargg’s composite filter and played around with the crtsim parameters to try and mimic Blargg and yeah it just wasn’t working. The Blargg composite filter is just a different kind of beast and does look more authentic, I wish all cores from the 16 bit era and lower came with it baked into the core.

If you compare my settings with and without the crtsim pass added you’ll definitely see a difference. Off the top the crtsim pass adds this somewhat reddish afterglow affect that the vanilla guest shader doesn’t have, the main difference though is that composite sharp parameter, it does something the edges as you’ve mentioned and I like that feature. Then again you’re using a different display as well so maybe that’s why things doesn’t look the same for you as it does for me.

1 Like

You can mimic the red afterglow effect with mame’s afterglow pass lol

1 Like

Yup lol. Forgot the mame shader has some pretty cool tricks as well

Gdv-ntsc, new sharpening filter looks fantastic. :slight_smile:

shaders = "17"
shader0 = "shaders_slang/misc/grade.slang"
filter_linear0 = "false"
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/advanced/stock.slang"
filter_linear1 = "false"
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/advanced/afterglow0.slang"
filter_linear2 = "true"
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/pre-shaders-afterglow.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "PrePass0"
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/advanced/ntsc/ntsc-pass1.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
frame_count_mod4 = "2"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "4.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "0.500000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/custom-fast-sharpen.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "NtscPass"
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/convert-ntsc.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "0.500000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/advanced/stock.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "true"
alias8 = "PrePass"
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/advanced/avg-lum-ntsc.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
alias9 = "AvgLumPass"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/guest/advanced/linearize-ntsc.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "LinearizePass"
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "source"
scale_x10 = "1.000000"
scale_type_y10 = "source"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/advanced/gaussian_horizontal.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "absolute"
scale_x11 = "640"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "GlowPass"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "absolute"
scale_x12 = "640"
scale_type_y12 = "absolute"
scale_y12 = "480"
shader13 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = ""
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "absolute"
scale_x13 = "640"
scale_type_y13 = "absolute"
scale_y13 = "480"
shader14 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "BloomPass"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "absolute"
scale_x14 = "640"
scale_type_y14 = "absolute"
scale_y14 = "480"
shader15 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "false"
srgb_framebuffer15 = "false"
scale_type_x15 = "viewport"
scale_x15 = "1.000000"
scale_type_y15 = "viewport"
scale_y15 = "1.000000"
shader16 = "shaders_slang/crt/shaders/guest/advanced/deconvergence.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
g_crtgamut = "0.000000"
g_vignette = "0.000000"
WP = "-100.000000"
SHARPEN = "1.000000"
CONTR = "0.250000"
GAMMA_INPUT = "2.400000"
glow = "0.020000"
bloom = "1.000000"
halation = "0.050000"
brightboost = "1.000000"
brightboost1 = "3.000000"
gsl = "1.000000"
beam_min = "1.250000"
beam_max = "1.250000"
beam_size = "1.000000"
scans = "1.000000"
spike = "0.000000"
shadowMask = "7.000000"
maskstr = "0.750000"
mcut = "0.500000"
slotmask = "0.750000"
slotmask1 = "0.500000"
slotwidth = "3.000000"
mclip = "0.000000"
gamma_out = "2.400001"
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"
5 Likes

Too sharp, I cri… ROFL

Fr tho, it looks great man, the new update to guest’s shader looks great.

I’ve been doing a lot of comparisons and this looks better than ntsc-adaptive or Blargg’s filter, now. Composite video often does produce bolder edges IRL, and the new filtering makes finer details (like the text in 240p test suite) much nicer to look at. Compare the above to the defaults using previous versions :slight_smile:

I think this filter may also look nicer than some others I’ve seen in crt shaders- it just looks fantastic. And, since it’s fully customizable, if you want to make it so blurry that small text causes eye strain then you can go ahead and do that, too. :smiley:

2 Likes

Yeah, I’ve got to say this is pretty amazing to be able to blend all that and still stay pretty sharp.

Well done @guest.r!

5 Likes

I wasn’t saying go ham with the blurring but it could do with some minor changes imho. (Like a 10-15% reduction in sharpness)

I sincerely doubt this is your final point setting wise so not going to argue this with you :wink:

1 Like

Well I’d be interested to see what changes you’d make. Of course, goals differ and preferences blah blah.

I’m sure those settings can be improved on, though.

All settings should just be used as a starting point and then tailored to the display and individual preference :wink:

1 Like

Why you gotta call my potato ass out like that? You know damn well I’m not going to get on my computer :joy: ROFL

Fine…! You win, I’ll try to mess with it after work tomorrow.

My phone can’t tell much of a difference? Or maybe it’s the forums fault again… Or or… I just need to sleep lol

1 Like

2 Likes

Can we make mimic Apple II composite (platform is emulatable with MAME) with RA shaders? Check out the font and the Dwarf skin for instance:

Might&magic_MameRGB might-and-magic_capture Might&Magic_Mednafen

  1. is RGB
  2. Capture taken from Moby here
  3. Is how Mednafen does it.
1 Like

Here’s what mame-ntsc looks like in RA:

and here’s the regular 256px NTSC:

and for a bonus, GTU with composite color, no scanlines and 192 luma res:

3 Likes

You can also do the same thing with guest-advanced-ntsc by setting interlacing resolution to 100 or whatever and interlacing mode to 3 or 4 I think. Then you have some extra options for playing around with the artifacting and such.

I got a 4K OLED TV recently and I’m wondering if anyone has any cool 4K setups to share? I’m currently using CRT-Geom + NTSC-adaptive with the luminance turned up somewhat. Kinda simplistic but it’s what I was using on my 1080p monitor.

1 Like

I don’t really have any suggestions for settings but guest dr venom advanced is amazing and has some settings options for 4k and is easier to get your head around than royale imho.

It also has ntsc options as well!

Thanks, I actually like the bonus GTU the best, though none of these standard options really mimic the examples in my eyes. MAME NTSC in particular looks terribly blurry, I never use it in a preset for anything.

In standalone MAME, it’s possible to switch the Apple II display to black & white and then get color through HLSL settings (the parameters apparently still buried in a forum post, sigh). That also looks reasonably good but HLSL is relatively demanding and I find a little awkward to use.

1 Like