Wow, haven’t been on the scene in a bit but this combination looks amazing. It’s like I’m looking at 90’s gaming magazine scans or something.
Hey there!
In a deep nostalgia trip… I’ve tweaked a shader for GameBatte that’s upscaling while still trying to be faithful to the one and only GameBoy Fat. My take on a modern day shader preset equivalent of the LightBoy lense, I guess. XD So it’s Jinc2 + ScaleFX + GBPalette + CRT-Guest-Advanced-NTSC. Because why not.
Shader for 1080p here if you want to try it, but you could increase the size of the mask to fit your resolution in the parameters. https://mega.nz/file/iFxiAb6L#rduVyW2s4L9sjRTWRCxTAyfUvocF5GnFvq0BnQK7nzs
Oh I love this and it’s definitely unique around these parts when it comes to Game Boy Presets! It feels like this is how these games should be played from now on!
Great job!!! Have you tried the Handheld Border Shaders?
Thanks! I think I may add some LCD ghosting effect in a pass after the upscaling. I’ve not tried the handheld borders yet but I’ll sure give it a try at some point.
Have you maybe ever seen an unpleasant side effect of using the CRT shaders? It’s practically impossible to shrink the size of the resulting screenshots with no artifacts if the shader is already applied.
Imagine you want to make a screenshot inside a retro game or capture a video from an emulator. The video on YouTube or an image on Instagram may not always be displayed in its original size. Also, you often scale videos or screenshots during editing. I sometimes see comments on Reddit that some screenshots have to be shown only in 100% size, because the previews have ugly artifacts with big scanlines, which never appeared on the original image. It’s even worse when you apply a curved CRT shader, then your scanlines form curves or even circles, depending on the zoom value. I can attach screenshots if needed.
Hey there!
Still tweaking CRT-Guest-Advanced presets for upscaling a handheld. This time it’s for the GBA. The color correction shaders are making a big difference for me, thank you for those tools!
And after twenty years, old me finally got around to beat a pokemon game (I love emulation’s fast-forward)… XD
Shader for 1080p here if you want to try it. https://mega.nz/file/iFAGABpb#jMnEIEFsUF2HLZr9G7Euoe43cHgDtZcfBd3HCbprcq8
Looks delicious man! I’ve always said this you’ve got the eye for these things!
Thank you man!
Here is my preset if you want to try it. Also try it with HDR and see how it looks…
shaders = "18"
shader0 = "shaders_slang/crt/shaders/guest/advanced/stock.slang"
alias0 = ""
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
filter_linear0 = "false"
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"
alias1 = "StockPass"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
filter_linear1 = "false"
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"
alias2 = "AfterglowPass"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
filter_linear2 = "true"
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"
alias3 = "PrePass0"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
filter_linear3 = "true"
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"
alias4 = "NPass1"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
filter_linear4 = "false"
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"
alias5 = ""
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
filter_linear5 = "true"
float_framebuffer5 = "true"
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/ntsc/ntsc-pass3.slang"
alias6 = ""
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
filter_linear6 = "true"
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/custom-fast-sharpen.slang"
alias7 = "NtscPass"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
filter_linear7 = "true"
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/advanced/stock.slang"
alias8 = "PrePass"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "true"
filter_linear8 = "true"
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"
alias9 = "AvgLumPass"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
filter_linear9 = "true"
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"
alias10 = "LinearizePass"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
filter_linear10 = "true"
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/crt-guest-advanced-ntsc-pass1.slang"
alias11 = "Pass1"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
filter_linear11 = "true"
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/hd/gaussian_horizontal.slang"
alias12 = ""
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
filter_linear12 = "true"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "absolute"
scale_x12 = "800"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
alias13 = "GlowPass"
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 = "absolute"
scale_y13 = "600"
shader14 = "shaders_slang/crt/shaders/guest/hd/bloom_horizontal.slang"
alias14 = ""
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/shaders/guest/advanced/bloom_vertical.slang"
alias15 = "BloomPass"
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/shaders/guest/advanced/crt-guest-advanced-ntsc-pass2.slang"
alias16 = ""
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
filter_linear16 = "true"
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
shader17 = "shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
alias17 = ""
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
filter_linear17 = "true"
float_framebuffer17 = "false"
srgb_framebuffer17 = "false"
scale_type_x17 = "viewport"
scale_x17 = "1.000000"
scale_type_y17 = "viewport"
scale_y17 = "1.000000"
CP = "4.000000"
WP = "-70.000000"
contr = "-0.450000"
sega_fix = "1.000000"
vigstr = "0.100000"
vigdef = "1.100000"
cust_artifacting = "0.000000"
cust_fringing = "0.000000"
ntsc_scale = "1.649999"
ntsc_sat = "1.010000"
ntsc_bright = "1.020000"
ntsc_gamma = "0.725000"
ntsc_taps = "15.000000"
ntsc_charp = "7.000000"
ntsc_charp3 = "6.000000"
ntsc_cscale = "1.649999"
ntsc_cscale1 = "1.450000"
ntsc_sharp = "-5.500000"
CSHARPEN = "1.500000"
GAMMA_INPUT = "2.449999"
gamma_out = "2.250000"
info02 = "1.000000"
intres = "1.000000"
m_glow = "2.000000"
FINE_GLOW = "3.000000"
FINE_BLOOM = "3.000000"
glow = "0.000000"
gamma_c = "0.725000"
gamma_c2 = "1.200000"
gsl = "1.000000"
tds = "1.000000"
scangamma = "2.450000"
warpX = "0.030000"
warpY = "0.040000"
csize = "0.030000"
shadowMask = "6.000000"
maskstr = "1.000000"
maskboost = "1.400000"
mask_gamma = "2.800000"
slotmask = "1.000000"
slotmask1 = "1.000000"
smask_mit = "0.500000"
bmask = "0.020000"
mclip = "0.100000"
maskmid = "0.100000"
edgemask = "0.100000"
dctypex = "0.750000"
dctypey = "0.750000"
deconrr = "0.250000"
deconrg = "-0.250000"
deconrb = "0.250000"
deconrry = "-0.250000"
deconrgy = "0.250000"
deconrby = "-0.250000"
decons = "2.000000"
noisetype = "1.000000"
post_br = "1.100000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_mipmap = "false"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_mipmap = "false"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_mipmap = "false"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_mipmap = "false"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
Hey there!
I had a blast playing through 2001’s PS2 title City Crisis. Very fun short copter sim arcade game, very satisfying for people like me who tend to identify as big helicopters. XD
To be as immersed as possible in the game, I used a 3D mod for PCSX2 available on the Helixmod site and played it with a VR headset and Desktop+ (a FOSS alternative to VRDesktop). The emulators are incredible when it comes to rendering in QHD and 4K, but the graphics were a bit too clean for me and I missed the awesome CRT shaders you guys provided, so I used yet another layer for post processing with ShaderGlass and its version of CRT-Guest Advanced.
Maybe there’s a simpler way to do all this, but once everything was in place and I knew what I was doing, it was easy going. I really like the grit the shader is adding to the look of the game and think it translates quite well to 3D stereoscopy. Feels like a videodrome trip of some kind of CRT diorama. Here are some cross-eyed stereograms of my playthrough, you can put them in full screen and cross your eyes a bit until you see a 3D image.
Hey there!
Tweaked some shader for Win98 SVGA on the awesome DOSBox-Pure fork, and found the new VGA doublescan setting in the resolution section of CRT-Guest was working quite nicely with 480p content (despite not being its intended use I guess, XD).
It also seems that JINC2 and the slight NTSC blurring is doing quite well with those old fog of war checkerboard patterns of the 2D games of that era. So almost 30 year later I can now play Diablo with transparency effects… Which is really cool as I’m a bit disappointed with the remasters and enhanced versions of those games being way too much zoomed out for modern resolutions.
Shader available here for 4K if you want to try it : https://mega.nz/file/aIYhGC7B#zA_8SjQOYr3Pt5pIk-XahYinBv40f78k6J2m-vQXFY0 But you can tweak the mask size to fit your resolution or liking.
Here’s a comparison with raw pixels on the left and a translucent wall.
It also works with the GOAT…
Also, related to my previous post, here’s a 3D video of the PS2 copter arcade game City Crisis modded for 3DTV or VR. Youtube app can also display the video for red cyan 3D glasses, or in normal 2D. The upload is fresh, 4K is still processing, so give it some time if you want to watch that with a headset and YoutubeVR.
Can anyone (or any shaders) explain why I don’t remember the gray pixels in Diddy Kong’s sprite back in 1995?