VOGONS


Reply 40 of 47, by Diduz

User metadata
Rank Newbie
Rank
Newbie
jmarsh wrote on 2020-04-20, 05:22:
Diduz wrote on 2020-04-19, 21:29:

No luck with the garbling/smearing of CRT-Geom overscan, though. It's beyond my knowledge and ability. 😁

That's due to sampling the input texture with negative X/Y co-ords, they get clamped to 0. The same effect would be happening on the right/bottom sides if there wasn't extra padding.

Still, I remember that CRT-Geom overscan settings worked fine under DosBox Daum, but then again those were Direct3D fx shaders with a different code, I guess.

Reply 41 of 47, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator
Serious Callers Only wrote on 2020-04-19, 23:12:
jmarsh wrote on 2020-04-19, 20:23:

BTW this really should be something upstream does, when a glshader is turned on, turn off the normal scaler. Combining a software scaler and a glshader seems like a recipe for unnecessary pain. In fact maybe it would be better to 'pretend' both use the same mechanism in the conf file just to prevent confusion with this and the need to turn off the one you're not actually using.

No because there are things scalers can do that shaders can't and vice-versa. Someone might want to use HQ2X/3X scaler with a CRT shader, for example.

The price of that kind of brittle flexibility (instead of say, making a two pass glshader for crt-hqx), is that you're going to get a bunch of 'spurious' bug reports that you can't do anything about because they're 'user errors' and the users are going to be pissed it's so easy to get it wrong.

In my particular computer (my experience only), besides the bugs, combing these two is asking for slowdown that might not happen if you only use either one apart - but that's likely because by computer is very very bad. Anyway, anecdotal datapoint: don't combine a software scaler with a glshader when your computer cpu/gpu are bad - two things that might be bearable individually might become horrible combined. In my case, even scale2x scaler combined with any shader is asking for sub 30 fps, while i can use pixel-perfect glshader with no scaler, go figure.

While I can't say anything about the CPU penalty of running normal shader on top of the GLshader, I agree that doing it this way is problematic/confusing for endusers. At the least it needs to be documented in the config but even then it is probably going to get missed in the wall of text. I did expect that the GLshader is going to be the only one that gets used when you set it and the scaler setting will only get used if the shader can't be loaded (for whatever reason).

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox

Reply 42 of 47, by Delfino Furioso

User metadata
Rank Newbie
Rank
Newbie

hi everyone

I've recently converted some more shaders from the libretro repository
https://github.com/libretro/glsl-shaders/tree … ter/crt/shaders

this is the current set, available in the archive attached to this post
crt-aperture.glsl
crt-caligari.glsl
crt-easymode.glsl
crt-geom.glsl
crt-hyllian.glsl
crt-lottes-fast.glsl
crt-nes-mini.glsl
crt-pi.glsl
fakelottes.glsl
yee64.glsl
yeetron.glsl
zfast_crt.glsl

I'd recommend:
- fakelottes for up to 640x480
- easymode for over 640x480
- geom as a jack of all trades

for each one of them I've created a tweaked variant, mainly for reducing the curvature effect and brighten the image a bit

@tyrells feel free to add them to your github

Attachments

Reply 43 of 47, by tyrells

User metadata
Rank Newbie
Rank
Newbie
Delfino Furioso wrote on 2020-05-08, 23:31:
hi everyone […]
Show full quote

hi everyone

I've recently converted some more shaders from the libretro repository
https://github.com/libretro/glsl-shaders/tree … ter/crt/shaders

this is the current set, available in the archive attached to this post
crt-aperture.glsl
crt-caligari.glsl
crt-easymode.glsl
crt-geom.glsl
crt-hyllian.glsl
crt-lottes-fast.glsl
crt-nes-mini.glsl
crt-pi.glsl
fakelottes.glsl
yee64.glsl
yeetron.glsl
zfast_crt.glsl

I'd recommend:
- fakelottes for up to 640x480
- easymode for over 640x480
- geom as a jack of all trades

for each one of them I've created a tweaked variant, mainly for reducing the curvature effect and brighten the image a bit

@tyrells feel free to add them to your github

Awesome work! Will add them this weekend.

Reply 44 of 47, by leileilol

User metadata
Rank l33t++
Rank
l33t++
Dominus wrote on 2020-04-20, 15:10:

While I can't say anything about the CPU penalty of running normal shader on top of the GLshader, I agree that doing it this way is problematic/confusing for endusers. At the least it needs to be documented in the config but even then it is probably going to get missed in the wall of text. I did expect that the GLshader is going to be the only one that gets used when you set it and the scaler setting will only get used if the shader can't be loaded (for whatever reason).

I think before the scalers/shaders are decoupled there should be an option to do normal2x regardless anyway since the appearance doublescanned VGA can be important for the relevant video cards. Not doing that otherwise would lead to a weird 15Khz VGA fantasy scanliney look with CRT shaders some might think is how the VGA dos experience was.

(also yeah software scalers can make a lot of pebkac issues, very many common Gzdoom complaints involve users turning on hq4x 'improvements' while loading hi-res addons and whatnot, loads of 512x512 textures becoming 32768x32768 or so, and that's not even thinking about those who use modern normal map pbr addon stuff with software scaled textures given the placebo effect of a quality increase, and texture compression is off by default so no DXT helping out there)

by the way, DOSBox is not for running Windows 9x

Reply 46 of 47, by Serious Callers Only

User metadata
Rank Member
Rank
Member

I added the shaders to the ppa. I renamed them slightly to clarify some names and always follow the convention crt_NAME for the user to easily know what's for a CRT shape or not. At least, i hope that's what being placed on those dirs means. Underscores is just because it's a informal convention in linux and because i don't like double 'extensions' (the .tweaked)

My conversions:

debian/glshaders/interpolation/pp.glsl => usr/share/dosbox/glshaders/pixel_perfect.glsl
debian/glshaders/interpolation/pixellate.glsl => usr/share/dosbox/glshaders/pixellate.glsl
debian/glshaders/crt/crt-aperture.glsl => usr/share/dosbox/glshaders/crt_aperture.glsl
debian/glshaders/crt/crt-caligari.glsl => usr/share/dosbox/glshaders/crt_caligari.glsl
debian/glshaders/crt/crt-easymode.glsl => usr/share/dosbox/glshaders/crt_easymode.glsl
debian/glshaders/crt/crt-easymode.tweaked.glsl => usr/share/dosbox/glshaders/crt_easymode_tweaked.glsl
debian/glshaders/crt/fakelottes.glsl => usr/share/dosbox/glshaders/crt_fakelottes.glsl
debian/glshaders/crt/fakelottes.tweaked.glsl => usr/share/dosbox/glshaders/crt_fakelottes_tweaked.glsl
debian/glshaders/crt/crt-geom.glsl => usr/share/dosbox/glshaders/crt_geom.glsl
debian/glshaders/crt/crt-geom.tweaked.glsl => usr/share/dosbox/glshaders/crt_geom_tweaked.glsl
debian/glshaders/crt/crt-hyllian.glsl => usr/share/dosbox/glshaders/crt_hyllian.glsl
debian/glshaders/crt/crt-lottes.glsl => usr/share/dosbox/glshaders/crt_lottes.glsl
debian/glshaders/crt/crt-lottes-fast.glsl => usr/share/dosbox/glshaders/crt_lottes_fast.glsl
debian/glshaders/crt/crt-lottes.tweaked.glsl => usr/share/dosbox/glshaders/crt_lottes_tweaked.glsl
debian/glshaders/crt/crt-nes-mini.glsl => usr/share/dosbox/glshaders/crt_nes_mini.glsl
debian/glshaders/crt/crt-pi.glsl => usr/share/dosbox/glshaders/crt_pi.glsl
debian/glshaders/crt/ScanLine.glsl => usr/share/dosbox/glshaders/crt_scanline.glsl
debian/glshaders/crt/yee64.glsl => usr/share/dosbox/glshaders/crt_yee64.glsl
debian/glshaders/crt/yeetron.glsl => usr/share/dosbox/glshaders/crt_yeetron.glsl
debian/glshaders/crt/zfast_crt.glsl => usr/share/dosbox/glshaders/crt_zfast.glsl
debian/glshaders/xbr/xbr-lv2-3d.glsl => usr/share/dosbox/glshaders/xbr_lv2_3d.glsl
debian/glshaders/xbr/xbr-lv2-noblend.glsl => usr/share/dosbox/glshaders/xbr_lv2_noblend.glsl
debian/glshaders/xbr/xbr-lv2.glsl => usr/share/dosbox/glshaders/xbr_lv2.glsl
debian/glshaders/xbr/xbr-lv3.glsl => usr/share/dosbox/glshaders/xbr_lv3.glsl

The filename of the right side, minus glsl appears as a conf file option for these without needing to select the path. Godspeed.

Reply 47 of 47, by tyrells

User metadata
Rank Newbie
Rank
Newbie
Serious Callers Only wrote on 2020-05-12, 16:05:
I added the shaders to the ppa. I renamed them slightly to clarify some names and always follow the convention crt_NAME for the […]
Show full quote

I added the shaders to the ppa. I renamed them slightly to clarify some names and always follow the convention crt_NAME for the user to easily know what's for a CRT shape or not. At least, i hope that's what being placed on those dirs means. Underscores is just because it's a informal convention in linux and because i don't like double 'extensions' (the .tweaked)

My conversions:

debian/glshaders/interpolation/pp.glsl => usr/share/dosbox/glshaders/pixel_perfect.glsl
debian/glshaders/interpolation/pixellate.glsl => usr/share/dosbox/glshaders/pixellate.glsl
debian/glshaders/crt/crt-aperture.glsl => usr/share/dosbox/glshaders/crt_aperture.glsl
debian/glshaders/crt/crt-caligari.glsl => usr/share/dosbox/glshaders/crt_caligari.glsl
debian/glshaders/crt/crt-easymode.glsl => usr/share/dosbox/glshaders/crt_easymode.glsl
debian/glshaders/crt/crt-easymode.tweaked.glsl => usr/share/dosbox/glshaders/crt_easymode_tweaked.glsl
debian/glshaders/crt/fakelottes.glsl => usr/share/dosbox/glshaders/crt_fakelottes.glsl
debian/glshaders/crt/fakelottes.tweaked.glsl => usr/share/dosbox/glshaders/crt_fakelottes_tweaked.glsl
debian/glshaders/crt/crt-geom.glsl => usr/share/dosbox/glshaders/crt_geom.glsl
debian/glshaders/crt/crt-geom.tweaked.glsl => usr/share/dosbox/glshaders/crt_geom_tweaked.glsl
debian/glshaders/crt/crt-hyllian.glsl => usr/share/dosbox/glshaders/crt_hyllian.glsl
debian/glshaders/crt/crt-lottes.glsl => usr/share/dosbox/glshaders/crt_lottes.glsl
debian/glshaders/crt/crt-lottes-fast.glsl => usr/share/dosbox/glshaders/crt_lottes_fast.glsl
debian/glshaders/crt/crt-lottes.tweaked.glsl => usr/share/dosbox/glshaders/crt_lottes_tweaked.glsl
debian/glshaders/crt/crt-nes-mini.glsl => usr/share/dosbox/glshaders/crt_nes_mini.glsl
debian/glshaders/crt/crt-pi.glsl => usr/share/dosbox/glshaders/crt_pi.glsl
debian/glshaders/crt/ScanLine.glsl => usr/share/dosbox/glshaders/crt_scanline.glsl
debian/glshaders/crt/yee64.glsl => usr/share/dosbox/glshaders/crt_yee64.glsl
debian/glshaders/crt/yeetron.glsl => usr/share/dosbox/glshaders/crt_yeetron.glsl
debian/glshaders/crt/zfast_crt.glsl => usr/share/dosbox/glshaders/crt_zfast.glsl
debian/glshaders/xbr/xbr-lv2-3d.glsl => usr/share/dosbox/glshaders/xbr_lv2_3d.glsl
debian/glshaders/xbr/xbr-lv2-noblend.glsl => usr/share/dosbox/glshaders/xbr_lv2_noblend.glsl
debian/glshaders/xbr/xbr-lv2.glsl => usr/share/dosbox/glshaders/xbr_lv2.glsl
debian/glshaders/xbr/xbr-lv3.glsl => usr/share/dosbox/glshaders/xbr_lv3.glsl

The filename of the right side, minus glsl appears as a conf file option for these without needing to select the path. Godspeed.

Thanks for the update @Serious Callers Only, you are correct with your assumumptions about the dirs. The only execption is scanline.glsl, which is actually classified slightly differently in libretro (it is in it's own directory named 'scanlines') , but it definitly fits with the rest of the crt shaders, which is why its grouped with them in this repo. I might actually rename the pp.glsl to pixel_perfect.glsl in my repo too, as it makes more sense.