Please show off what crt shaders can do!

Yeah, “artist’s intention” is nonsense.

However, I don’t think the aspect would have been easy to maintain due to the very small number of pixels they had to work with. That is, you would have ended up with lots of fractional scaling.

4 Likes

I think a raw video capture doesn’t include the padding/borders because that gets added later or something? I think what’s happening is that the raw capture from SGB shows the video to be in what I assume is a 4:3 ratio, but then borders get added which shrinks it back down to the original “square” (160x144) aspect ratio. Is that how it works?

Raw capture

1 Like

dunno about “raw capture” :man_shrugging: people do all sorts of weird shit with their console these days lol

5 Likes

I just meant video capture from the console as opposed to a photo.

It’s kind of a moot point for me because I’m going to continue playing GB games in the correct AR because Retroarch lets me do that :smiley:

I just kinda want to know what SGB did out of pure curiosity at this point.

3 Likes

oh gotcha. This doc seems to go through it well enough from a game dev / romhacker’s perspective, but it doesn’t have a whole lot from the SNES/emudev side: http://hisimon.dk/misc/pandocs/#sgb-description

And yeah, everyone should do what looks right to them :slight_smile:

4 Likes

I thought you might have just copied and pasted the names in the search and it would have shown up.

My presets are posted in this thread, you just have to go back a little.

You’ll need this as well.

Here are some examples from the latest updates to my presets.

CyberLab Mega Bezel Death To Pixels (Arcade & Composite - Sharp) - 15-09-21

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

5 Likes

LOL!! Amazing!!! Can you share it? Looks very very well!!!

Thanks

2 Likes

Is this an actual photo of the screen?

edit: NVM, it’s a screenshot.

The real challenge IMO is a close up photo of the LCD screen. With just the right amount of camera blur and the right shader settings it’s possible to take photos that are nigh identical to close-ups of a CRT.

this is pretty hard to do unless you have a high-end phone or camera. I tried with my phone and had a hard time with focus :stuck_out_tongue: I had luck only once!

It’s tricky, but possible. Taken with an iPhone camera:

You can still kinda see the pixel grid, this is a 1080p screen though. At 4K I think you could make the grid unnoticeable.

3 Likes

Envoi en cours : METROID 3.png…
1 Like

greetings to all i’m still playing on a sony kvb aperture grill and I’ve been working for a month on a shader preset that looks like my crt…

the shader uses misc slang? with crt royale??? shader parameter greetings to all i’m still playing on a sony kvb aperture grill the proof here… and I’ve been working for a month on a shader preset that looks like my crt… here is where I am, all the details are in the video

the shader uses misc slang? with crt royale??? https://drive.google.com/file/d/1oOOX7uG59pKejCNN8iXfBqfOX4_i-bnv/view?usp=sharing

shaders = "13"
shader0 = "shaders_slang/misc/grade.slang"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "ORIG_LINEARIZED"
float_framebuffer1 = "false"
srgb_framebuffer1 = "true"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "VERTICAL_SCANLINES"
float_framebuffer2 = "false"
srgb_framebuffer2 = "true"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "viewport"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-approx.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "BLOOM_APPROX"
float_framebuffer3 = "false"
srgb_framebuffer3 = "true"
scale_type_x3 = "absolute"
scale_x3 = "320"
scale_type_y3 = "absolute"
scale_y3 = "240"
shader4 = "shaders_slang/blurs/blur5fast-vertical.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "false"
srgb_framebuffer4 = "true"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/blurs/blur5fast-horizontal.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "HALATION_BLUR"
float_framebuffer5 = "false"
srgb_framebuffer5 = "true"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "absolute"
scale_x6 = "64"
scale_type_y6 = "viewport"
scale_y6 = "0.062500"
shader7 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
filter_linear7 = "false"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "MASK_RESIZE"
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "viewport"
scale_x7 = "0.062500"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = "MASKED_SCANLINES"
float_framebuffer8 = "false"
srgb_framebuffer8 = "true"
scale_type_x8 = "viewport"
scale_x8 = "1.000000"
scale_type_y8 = "viewport"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-brightpass.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "BRIGHTPASS"
float_framebuffer9 = "false"
srgb_framebuffer9 = "true"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-vertical.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "false"
srgb_framebuffer10 = "true"
scale_type_x10 = "source"
scale_x10 = "1.000000"
scale_type_y10 = "source"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "true"
scale_type_x11 = "source"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "true"
alias12 = ""
float_framebuffer12 = "false"
srgb_framebuffer12 = "false"
scale_type_x12 = "viewport"
scale_x12 = "1.000000"
scale_type_y12 = "viewport"
scale_y12 = "1.000000"
g_gamma_in = "2.200000"
g_gamma_out = "2.200000"
g_signal_type = "0.000000"
g_crtgamut = "0.000000"
g_space_out = "3.000000"
g_Q_MUL = "0.000000"
g_lum_fix = "1.000000"
g_vignette = "0.000000"
g_vstr = "0.000000"
g_vpower = "0.000000"
g_cntrst = "-0.200000"
g_mid = "0.600000"
g_sat = "-0.000001"
g_vibr = "1.000000"
LUT_Size1 = "8.000000"
LUT_Size2 = "32.000000"
crt_gamma = "2.199990"
lcd_gamma = "2.499999"
levels_contrast = "0.671875"
diffusion_weight = "0.000000"
bloom_underestimate_levels = "0.000000"
bloom_excess = "0.505000"
beam_min_sigma = "0.375001"
beam_max_sigma = "0.000000"
beam_spot_power = "0.010000"
beam_max_shape = "2.000000"
beam_shape_power = "0.010000"
beam_horiz_sigma = "0.285000"
convergence_offset_x_r = "-0.300000"
mask_specify_num_triads = "1.000000"
mask_triad_size_desired = "1.000000"
mask_num_triads_desired = "160.000000"
aa_subpixel_r_offset_x_runtime = "0.000000"
aa_cubic_c = "0.000000"
aa_gauss_sigma = "0.060000"
geom_radius = "3.000000"
geom_aspect_ratio_x = "512.000000"
geom_aspect_ratio_y = "512.000000"
geom_overscan_x = "0.875000"
geom_overscan_y = "0.777343"
border_size = "0.005000"
border_darkness = "0.000000"
border_compress = "1.000000"
interlace_detect_toggle = "0.000000"
textures = "mask_grille_texture_small;mask_grille_texture_large;mask_slot_texture_small;mask_slot_texture_large;mask_shadow_texture_small;mask_shadow_texture_large;SamplerLUT1;SamplerLUT2;SamplerLUT3"
mask_grille_texture_small = "shaders_slang/crt/shaders/crt-royale/TileableLinearApertureGrille15Wide8And5d5SpacingResizeTo64.png"
mask_grille_texture_small_linear = "true"
mask_grille_texture_small_wrap_mode = "repeat"
mask_grille_texture_small_mipmap = "true"
mask_grille_texture_large = "shaders_slang/crt/shaders/crt-royale/TileableLinearApertureGrille15Wide8And5d5Spacing.png"
mask_grille_texture_large_linear = "true"
mask_grille_texture_large_wrap_mode = "repeat"
mask_grille_texture_large_mipmap = "true"
mask_slot_texture_small = "shaders_slang/crt/shaders/crt-royale/TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacingResizeTo64.png"
mask_slot_texture_small_linear = "true"
mask_slot_texture_small_wrap_mode = "repeat"
mask_slot_texture_small_mipmap = "false"
mask_slot_texture_large = "shaders_slang/crt/shaders/crt-royale/TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacing.png"
mask_slot_texture_large_linear = "true"
mask_slot_texture_large_wrap_mode = "repeat"
mask_slot_texture_large_mipmap = "true"
mask_shadow_texture_small = "shaders_slang/crt/shaders/crt-royale/TileableLinearShadowMaskEDPResizeTo64.png"
mask_shadow_texture_small_linear = "true"
mask_shadow_texture_small_wrap_mode = "repeat"
mask_shadow_texture_small_mipmap = "false"
mask_shadow_texture_large = "shaders_slang/crt/shaders/crt-royale/TileableLinearShadowMaskEDP.png"
mask_shadow_texture_large_linear = "true"
mask_shadow_texture_large_wrap_mode = "repeat"
mask_shadow_texture_large_mipmap = "true"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron1.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron2.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/lut/other1.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
2 Likes

really happy with the clean rendering like my reference sony crt… no improvement of the core beetle psx hw resolution x1, native dithering, no filter, no anti aliasing, no anistrope, just the shader filtering a raw image…

2 Likes

Trinitrons used aperture grille and you’re using a slotmask, just saying. Looks good man, have fun. You’re doing it right.

1 Like

I’m ded.

The sass is so real rn.

thanks for the slot mask precision, but the oled is wrgb… I don’t see any difference … I really try to be faithful to my crt, and especially to have a nice contrast image even with the bfi

here my crt sony kvb slot mask? aperture grill?

2 Likes

my LG C9 is WRGB but the white pixel is only engaged under certain conditions. It’s not an always on kind of thing.

1 Like

Conditions? Can you tell me exactly what these conditions are? Because my tv. doesn’t have the white pixel activated or not.

He probably can’t. As it’s almost for certain they’re being used to bright boost and to add contrast when needed. (Ie. It’s not something he has control of) So it’s whenever it’s called for really. (Could be a contrast threshold being hit or a brightness one, these could be reached activates them)

1 Like