Please show off what crt shaders can do!

What are the actual RGB values of the phosphor mask supposed to be?

What is my canvas size?

Should be able to just do these via pixel art tbh. Even if it’s at a larger scale. As it should primarily just be big blocks of color with minimal transition shading into the black strips.

3 Likes

RGB are supposed to be 100%.
R = 100% G = 100% B = 100%

Yes any pixel art software… Because the tileable function is useful to create 2d games… Backround infinite scrolling… Just clean a slot mask band. copy and paste… Repeat the operation… For 64 px it’s 4 copies maybe. Adjusted it depends on your software… But in pixel art like asesprite or other it is not a problem. The size There is one of 64x64 px And 512px512px And the 512 ? Is simpler cleaner, just clean the rvb. Here is what I think

The small slot mask has a semi-transparent strip to remove. But you do it only once, then copy, then paste…adjusted…in the box… Save as png. But those who use photoshop or gimp or any software has these functions. More or less difficult to access…well that’s why I use asesprite because it reminds me of deluxe paint amiga. Simple and efficient.

I tried once photoshop to make my 2d game… I spent 3 hours configuring photoshop before I started working… I had to set up the brush, the grid, a grid behind that has the pixel ratio etc…blah blah blah…

Asesprite I open, show grid paf it is done, I click tiled x axis paf it is done… With photoshop? The same thing will take me an hour… So I leave photoshop for the photo retouching… But simple copy and paste things? I’ll take back my asesprite… Made for pixel art… Copying pixels? That’s his thing

2 Likes

Imagine full 4K, 1440p, and 1080p specific masks with no tiling artifacts or inconsistencies to be worried about? At the end of the day a real CRT would have had one whole seamless mask, right?

It’d still technically be able to be tiled if the mask was seamlessly perfect. (Just because something can be tiled doesn’t inherently mean it has a noticable seam, can you tell it’s tiled if you look, yeah.)

As the mask is uniform in size and shape for the triads and whatnot. The tricky part is doing something that looks convincing for this at different resolution.

The big issue is 1080p and slotmasks, it’s an issue of canvas size completely. Because even if you made a whole screen mask image it’d still have to follow a uniform tiling pattern. The issue is lack of resolution to do fine detail masks.

4k you can get away with alot more styles and qualities of masks.

8k we’ll be able to do some real nonsense.

4 Likes

Yes, the mask can be made at a higher resolution. 12mp for exemple??

Making a mask at 8k or 10k to fit 1080p can be great too… Even if 4k and 8k have advantages, 720p (on lcd is good because multiple resolution)

1280/720p… 1280/ 256 = 5 you have the horizontal snes / 720/240= 3 you have the vertical. 720p on my tablet is good because the size of the screen 5 inch 720 p (that is thin and it is beautiful)

Do the math. 1080p ? /1440p/4k?

Mask 12MPixel

See a designer here from crt sony, you learn things.

There is also the way the gpu works and the display. Crt royale uses 64px64px then 512512px The current gpu keep this in texture, 512/1024/2048. Multiple of two…to make tiled background of mask aperture or slot mask… That’s why I said that in addition there is the drawing and math. How does kurozomi vs royal work? Kurozomi would be more for 4k why? I see the same pattern used, 6464 and then 512*512 ( kurozomi uses the same thing as crt royal) So I was saying yes, the math position vector etc… Placed a pixel in a triad? That’s math. So the designer knows… :grin:

And why use dirty rvb patterns? I don’t know. Why use bad quality patterns? I don’t know… Does the math correct this? I don’t think so… The more accurate and clean the pattern, the more efficient the math behind it. So I’m going to have fun this week redoing these “clean” assets Then I’ll share these resources with you, just overwriting 2 png images…

And I would need users like you to test, I am 4k oled wrvb, then crt 15khz 240p native… My 1080p plasma panasonic is unplugged. The 1440p and the rest I can not test etc…

What about math? It’s not my thing. . I don’t think I can improve the kurozomi code, I don’t know how he programmed his thing…:joy: Must see…watch…understand…etc… Others here are qualified for this.

that’s what’s wrong with me and crt joe what i circle in white and a thickness a shadow of the horizontal line… this is what i’m going to remove, this is not the real mask it’s the 64px 64px that’s bad the 512 does not have this, just a question? the royal designer does not use this trick to filter out a bad scanline placement i hope.

and I will do this

I corrected just the top left, and compare with the rest, I think that’s what crt joe wants right? because that’s what I think too and still not 100%. because even on the horizontal two effect of transparency that does not have the same opacity. a detail

the top left box is a black mask line, in 64px it’s just semi transparent

but the transparency of the angles must be kept just above the horizontal line the mask is not rectangle just a transparent pixel of the corner allows to change the thing in rounding. it is necessary to keep the shape of the phosphor not rectangle

I corrected the first column and I think it should be more correct

1 original / corrected too small to see the gif :smile: TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacingResizeTo64

just click on the original then on the left right keyboard and compare

and I even think that the transparency of the rounding should be on the left more than on the right. it would be even more precise cleaning the rvb’s where I’m going with this Do you see a difference?

and you see the rounding? top left hard rvb R and at the bottom left. so the right corner should be less transparent than the left one, that’s what I pointed out on the 64x64 pixel mask

this 512px mask doesn’t even have a perfect centering aligned on the grid… who to believe? this thing is weird… now it looks like it’s moving the rvb closer or farther away etc… whatever this thing is is wrong in the first place… 512x512 pixel on a grid needs to be adjusted… I have to test the thing now. I don’t know what it will do, but one thing is for sure if it works it will be more accurate, and better colors in our retro games, that’s all I know. :coeur_yeux: in short the result

then you can test just rename the 64x64 pixel mask with the original name… which is long…very long… TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacingResizeTo64

https://drive.google.com/file/d/14xIOH5ckP4x7xHkafGafyRQhYANM15Ce/view?usp=sharing

then you can test just rename the 512x512 pixel mask with the original name

TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacing

https://drive.google.com/file/d/1aTnTrdsApIOJt5tgrio0EXn1P3gNEQIC/view?usp=sharing

or overwrite the royal resources crt folder with the corrected one the 2 png slot mask the 64 and 512 corrected RetroArch1_9_7_x-64\shaders\shaders_slang\crt\shaders\ crt royal folder replace crush?? :laughing:

https://drive.google.com/file/d/15ARk4r2FonN3cgt5QI101aFEC-IbFkdu/view?usp=sharing

Scanlines on a 27” Trinitron.

4 Likes

Yes, and that’s what I see in my house too. I see as much vertical as horizontal, I see the phosphorus triads, but no obvious scanline here.

1 Like

The “scanlines” are the horizontal black lines that run across the screen left between rows of lit, coloured phosphors.

1 Like

I told you that to capture the scanline I had to do what on my sony? I had to take the TV from the side, not from the front and that’s what I see here right? why is that? because otherwise you see the triad rvb mask and the scanline mixed

The phosphors in the first Aladdin shot look rounder and more realistic. Second shot, the phosphors are too square and it looks too much like an lcd grid imo.

3 Likes

are you talking about crt joe? or I show that you can change the vertical size in street of rage fix the windows of the buildings… at the bottom right the same point. net has 30 beam width min and the windows are 2 pixel high. at 60 beam width or more you see that the window is 4 pixel high… is that what you are telling me?

1 Like

Trinitron

3 Likes

yeah man!! the second picture really looks like what I have at home… beautiful cathode ray tubes It makes me want to turn on my TV. :joy:

beautiful nesguy… did you get a sony tv back? the blue sony I recognize it… not the same as on Phillips for example… the dark green of mario too… just that to take pictures the tv crt must be in a reasonable range in contrast… otherwise the picture would be bright in contrast but not ideal to take pictures

1 Like

which has nothing to do with bvm pvm… scanline visible on it? of course and the size of this 14 inch bvm??? my friend has the same one just go to his house to see it. this bvm thingy cuts the screen with a jigsaw, the bvm scanline can be seen in any situation, i was shocked the first time… because hr? =800 or 900 line… I’m not sure what the bvm does to go from 900 lines to 240 lines???.. big crazy scanline… never seen scanline so present on any consumer tv crt of any brand will have as much as the bvm pvm

scanline spaces from 900 lines to 240p??? I prefer my sony crt kv… or even a 40 dollar consumer crt tv… I don’t like the bvm pvm rendering except for dvd and movies where the resolution and the quality of the tube are more important in 480p or more than in 240p this is my opinion, i see people buying bvm just for retrogaming? or to show that they have a bvm to other users that they paid a lot of money for… but in fact nobody ever played it on a snes, or genesis… because it is either trinitron (for me) or slot mask, and the tvs had a soft image like the mario that nesguy posted so i see that nesguy posted a mario and it looks like what i see on my sony; but no scanline like the bvm i post again the truth of the difference between the low tv crt render. and pro monitor ( mario nesguy is located or???)

tvl 350 lines or??? bvm pvm??

88017f56095a188c9573da03b56356c570a2267f (1)

I could tell nesguy that the picture of mario is badly taken, that I can’t see the scanline clearly??? it’s useless, on my side I take pictures of my sony but I see nothing more than my mask phosphorus, except to make a series of 100 photos for 1 of good with visible scanline here is the subject closed for me

and my crt sony

)

just the preset i made which was slot mask, then change the slot mask png to custom aperture grill I have not yet modified my settings to take this into account. on oled it’s the same to take pictures from an angle or another

1st photo on the left mask well visible on the right? scanline more visible

as soon as I move away to take pictures? the scanlines are more apparent. on the second screen for example I’m not saying it’s a perfect replica of a trinitron. it’s a work in progress. but what I see at 6ft from the screen? the second screenshot is taken at 1ft from the oled…

and I can already count 3 scanlines on the brown block (each brick 3 scanlines) 4brick on total for 1 block if I get closer? I see the mask

2 Likes

Which is crazy, I’m looking at my crt photo while zooming in on the mask… I see the .scanline which are about 1/3 of the aperture… Then I look at your mario nesguy ( mario’s eye cut in two and the scanline is not 1/3 but 1/1) Then I zoom on my custom aperture grill png. I see mario the eye and the scanline is 1/3 like the tvl 350… Then your mario zoome looks like a pvm bvm with the eye split in two… The size of the scanline is equal on your mario, 1px free, 1px scanline… I zoom on tvl (the eye is not cut and the scanline visible 1/3… Logo tvl with all mario , zoom on tvl 350 mario

Nesguy mario trinitron zoomed

And mario on oled custom mask aperture ( look eyes) scanline = 1/3 on th rvb vertical size.

1 Like

shaders = "12"
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/custom-fast-sharpen.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 = "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/pre-shaders-afterglow.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/advanced/avg-lum.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = "AvgLumPass"
float_framebuffer4 = "false"
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/advanced/linearize.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "LinearizePass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/gaussian_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/advanced/gaussian_vertical.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "GlowPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "absolute"
scale_x7 = "800"
scale_type_y7 = "absolute"
scale_y7 = "600"
shader8 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "absolute"
scale_x8 = "800"
scale_type_y8 = "absolute"
scale_y8 = "600"
shader9 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "BloomPass"
float_framebuffer9 = "true"
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/crt-guest-advanced.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/advanced/deconvergence.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "viewport"
scale_y11 = "1.000000"
g_crtgamut = "0.000000"
g_vignette = "0.000000"
CONTR = "0.250000"
WP = "-100.000000"
glow = "0.000000"
brightboost = "2.500000"
brightboost1 = "2.500002"
scanline1 = "8.000000"
scanline2 = "10.000000"
beam_max = "1.100000"
beam_size = "0.000000"
vertmask = "0.500000"
scans = "1.000000"
spike = "0.000000"
h_sharp = "3.000002"
s_sharp = "1.000000"
shadowMask = "7.000000"
maskstr = "0.750000"
mcut = "0.750000"
masksize = "2.000000"
mclip = "0.000000"
gamma_out = "2.799998"
deconrr = "1.000000"
deconrb = "-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"
2 Likes

This is what I love about sharing. So yes well your capture .d’ecran… Can you tell me what is the shader? Guest? Royal? Kurozomi? Or maybe .the fast royal version?

Thanks a lot for sharing. So many good things to try. I will test this once the shader is identified. .guest advanced fast sharpen ??..

1 Like

I see the person who worked, got closer to his screen, then put himself at a distance to examine the thing, and fine-tuned the parameter.

Not a random thing and values… You took street fighter alpha3 (as my crt the picture I posted) I look, and what I see looks like my screen, the mask the render… So good job my friend. Nesguy.

1 Like

This seems to be the shader used here.

1 Like