Please show off what crt shaders can do!

I really don’t like xbr, to a trained eye it looks very unnatural and inauthentic. You get dark pixels that bleed over the gaps between scanlines which never happens on a real CRT. The edges of sprites and such also look wonky and deformed. It’s just too heavy-handed an approach, IMO. GDV has all the horizontal filtering you need :slightly_smiling_face:

Edit: maybe there’s a way to do xbr filtering just on the horizontal axis? I still think it would look weird.

I like subtractive sharpness 1.00 with horizontal sharpness at 3.00 or 4.00, with maybe just a touch of sharpening filter. Basically, black outlines around sprites should be solid black, with minimal or no ghosting.

3 Likes

If we’re going for accurate, the very darkest scanlines should be thinner and the black outline around the sprite should be cleaner. At 1080p you want the minimum scanline (picture line) width to be 1px wide to come close to what a Trinitron could do. Beam width variation on CRTs gives additional depth to the image and adds pop to highlights.

Gamma and color might need an adjustment, looks over-saturated but that could be a camera thing.

The black outline around the sprite should be clean and bold, so sharpness settings might need to be adjusted to achieve that. See my reply to Cyber above. Happy tweaking!

4 Likes

Are you saying that these screenshots look like XBR? My presets are based on Newpixie-clone_smoothed_rolling_scanlines_gdv_std which is based on MBZ_2_STD_GDV preset. I use Scale FX. The imgur uploads and RetroArch screenshots appear blended, softer and much less detailed than what I actually see in gameplay from my normal viewing distance. What I see is very crisp (but not too crisp) and high contrast and far from wonky and distorted in terms of edges and contrasts in the lines.

I posted some camera screenshots in another thread and if you look, you’ll see that they are sharper than my imgur uploads screenshots but they are still far from what is actually seen. I suggest you try out the presets yourself if you have a 4K screen before judging the presets qualities. They still may not be to your liking and preference but at least you’ll see them in a better dispensation and one that is closer to what I see and experience.

In addition to that, I’ve noticed some issues with the appearance of my screenshots taken with RetroArch. They don’t seem to be 1:1 representations of what I see. They appear lossy. I don’t know if it’s something with Windows 10 photo viewer but it’s something I’ve only now started to notice and look into. I’ll have to find a way in the future to get some more accurate and representative screenshots but in the meantime, I suggest you give the presets a quick whirl before you judge once you have a 4K screen.

2 Likes

I don’t really like any of these upscaling algorithms, they alter the pixel art too much to the point where it’s objectively no longer an accurate crt experience. They’re not really intended for that purpose, though. If you like it that’s all that matters. I just have to nitpick everything to death.

3 Likes

That’s okay and I totally understand that you like what you like. You’re what I would call a CRT purist. That doesn’t mean you’re any more passionate about retro gaming as anyone else here though, it’s just that you have particular priorities while others may have different priorities. I totally appreciate people like you though because without the likes of you a part of history might be lost and it’s your enthusiasm for accuracy that brings people like me beautiful tools which we can now “abuse” to take our original pixel art games to an area where we probably wished they could look like but was impossible back in the day!

1 Like

When I see the result I managed to achieve with the .slot mask and my custom preset. The psx bettle to final fantasy7 in 4 k rec2020, I was happy to see that the image was so close to my crt with retroarch crt switchres 15khz UMSAA vga rvb peritel on sony kbm… Apart from the mask defect that you pointed out to me I was really impressed with the result… Now I’m working on guest advanced rev2, in aperture grill mask 7 trinitron… I will soon be able to post the rendering…it will be beautiful…

Resolution x1, no pxgp improvement except the mask and scanline…in fact the same render as my slotmask but with guest shader… Then I’ll use hyperspace mega bezel ( I hope I’m not mistaken in the name…) And I will use the trinitron with the real time bezel, modeled to look like my trinitron…

I will even make a custom overlay crt kvm (my crt) or I will adjust the reflections in real time as my crt does, because the plastic is matte, not shiny, and that all around the screen there is a black band that avoids the reflections on the bezel, in short I will come back in 1 month to post the result in pictures and video… Nesguy, like you, precision, nostalgia, everyone happy…

I did some tests and I can switch from 50hz to 60hz games without any problem. Just put win10 in 50hz, I launch for example alex kidd pal 50hz… Video output = 50 hz (because windows is in 50hz) I make save game override and the turn is played… Even the core override, because amiga 500 was 98% of games pal 50 hz… Then I put my TV in 60 hz, I launch a game and magic my oled4k tv switch in 50hz perfectly.

All as well synchronized in 60hz as in 50hz. Of course the pal50 resolution is higher than ntsc, but it’s perfectly fluid. What is not the case of a 60hz monitor, which if you launch a 50hz game will never be fluid… The TV is a plus in emulation compared to a lcd monitor. test the amiga 500 with apydia, which is fluid smooth at 50 hz, lotus2… Etc…magic…

I shot my panasonic 4k oled wrgb tv with border trinitron, and I replaced my shader with guest advanced revision2, I’m sorry about the low resolution of the video, it’s just a camera that can make videos but it’s not special, so it’s going to be shot in 720p, but that’s just so you get the direct rendering of the tv, not a screenshot.

shader aperture grill guest advanced rev2 on oled4k panasonic ez950 55inchs live video of the rendering https://drive.google.com/file/d/12W4QAgCJ1PV19KELyjUWbMDSEG5AWCcy/view?usp=sharing

See you soon.

2 Likes

@Brainbin74

at some point you might want to try this.

change this

// BW Trinitron mask 7
else if (shadowMask == 7.0)
{
	float maskTmp = clamp(mix( mix(1.0, 0.0, mcut), mix(1.0, 0.0, maskstr), mx), 0.0, 1.0) * dark_compensate;
	mask = vec3(maskTmp);
	pos.x = fract(pos.x/2.0);
	if  (pos.x < 0.5) mask = vec3(1.0);
}    

to this:

// BW Trinitron mask 7
else if (shadowMask == 7.0)
{
	float maskTmp = clamp(mix( mix(1.0, 0.0, mcut), mix(1.0, 0.0, maskstr), mx), 0.0, 1.0) * dark_compensate;
	mask = vec3(maskTmp);
	pos.x = fract(pos.x/3.0);
	if  (pos.x < 0.5) mask = vec3(1.0);
}    

looks like this with mask size 1.

@guest.r Do you think this could be included as an option in GDV?

3 Likes

pos.x = fract(pos.x/2.0); pos.x = fract(pos.x/3.0);

I can only see this changing pos x. thanks for the look, that’s what I was saying I had to look deeper in the code. thank you my friend when I have the motivation I’m going to see this

3 Likes

and so it has the effect of having a finer aperture in 4k… I test or does it have something to do with the guestr update, because I had mask bugs (with dollar signs and s’s in the alladin eyebrows) then after the guest rev2 update I’m here. then with the modification I find myself where??? :smile: before the update? after the modification of guest r on the aperture? or the last guest r… the one I use that has been corrected

crt-guest-advanced-2021-07-27-release2 it works perfectly in standalone; but it does not have the correspondence in mega bezel; but this will be corrected I think by hypperspace no hurry, first the image the mask then the real time cosmetics.

what bug like mask ( alladin genesis)

crt-guest-advanced-2021-07-10-release1 crt-guest-advanced-2021-09-07-release1

and this is not even the latest revision of guest r crt shader advanced and I also tested mega bezel which doesn’t have the same version as me either, so I just try to get my sony aperture correct, then import into megabezel the guest adv rev2 settings into hyperspace mega bezel;; then at the very end make my crt in real time window with bezel;

basically combine the best of both, crt image fidelity, and real time reflection of a sony crt trinitron kvb; then I can leave quietly I would have reached the goal. and stop annoying the community :wink:

I mean you’re personally not bothering me tbh. :joy:

2 Likes

what i don’t understand is that my custom slot mask preset has triads. and the resulting smoothness is closer to a sony crt, look at the alladin slot mask preset. alladin slot mask crt tv consumer tv ( custom preset ) this shader works mainly with triads. I put off triads the image is blurred badly filtered, I just change triads to on, and the image is soft in slotmask which is ideal for arcade or other by the way, because sony crt aperture is my preference in nostalgia, but slot mask in arcade was what was most widespread.

I’m just comparing my custom royale kurozomi preset with the triad system. I deactivate the triads the image is bad as you can see no scanline either, and I activate the triads and the magic. image net filter, and I try to have the same rendering with guest advanced revision2 and the trinitron7 mask instead of the slot mask

if he has a way to add the trinitron mask with the triads it would look like a sony trinitron aperture grill but low tvl…350 lines crt consumer tv ,not 800 or more like pvm , bvm. the smoothness of the image, the more the tube is precise the more the image is clear, bvm, pvm, on modern screen imitate a low tvl crt with mask trinitron is really good. it would be necessary to include guestr code in kurozomi or the reverse. adding triads to guestr allows to have a natural softness different from sharpness is substractive sharpness. it’s like a hardware filter the triads see the second last screenshot with triads and without ( with the left right arrow ) compare the last two images it’s crazy.

I know that the mask is not active with the triads off. but the triads add something that is visible.

because you see the value 160 in triads while the minimum proposed is 340… at 340 it’s blurred not representative of a crt, why i don’t know. but i know that kurozomi was made to take tv4k, i think that was its function, not sure

:v:

if we could gather all the shader creators in the same room, they would work together for a week, it would make us the best shader on the planet earth my friends. everything is good but in different shader, the union makes the strength

let’s imagine it’s just a tileable png mask? a little code for programmers is possible??? tileable is that i keep the same space and proportions repeated on the surface of a screen?

When I make 2d video games I use this to save resources, for example for the background of shoot em up games, it’s a background that repeats itself endlessly. instead of using sprites that use ram. and above all it fits perfectly you don’t see the transition

it can be useful to keep the mask with spaces just between them despite different aspect ratio I think. That’s the difference between some shaders where you have to use integer scale for the scanlines to fall right, and others in 4/3 that do better even without integer scale. just a hypothesis

kurozomi is a derivative of crt royale that supports 4k in a better way than basic crt royal that imitates pvm, bvm. doc in the royal preset I can find this tileable resource. I think I just need to replace the slot mask which is almost similar to an aperture but has a shift in the mesh

a remplacer par aperture mask trinitron

if i use the sony aperture i only have vertical rvb bands. I have to use scanlines. the slot mask has the same result if the grid was parallel and not shifted every other row, and I wouldn’t even need scanlines like the slot mask which cuts into boxes and phosphor triads, like a sony aperture crt

what I mean is simple done in 1 min with paint to explain the thing and here I don’t need scanline like the slot mask, but this is the result you have on crt sony aperture grill, because the scanlines are mixed with the aperture…

result? no mask slot offset vs aperture like this screenshot where it is not a crt aperture but a slot mask

which is slightly different here? this is the guest adv rev 2 shader and I use the trinitron mask number 7, mixed with scanlines. but from my couch what i see at 6 ft?? well aligned boxes compared to sonic. slot mask vs aperture grill trinitron

the function tiled x axis or both axis makes sure that the textures overlap perfectly at infinity. to take the example of creating a 2d game with an infinite horizontal scrolling background the function tiled x axis or both axis makes sure that the textures overlap perfectly at infinity.

here I only made one part repeated two pattern the rest generates a visualization. software asesprite 2d, or photoshop gimp. I usually use this one because it reminds me of the amiga 500 and its deluxe paint. and in pixel art asesprite is very good. :smile:

besides I see that the rvb are dirty, not pure, I do not know if this thing which is used as mask on tv big screen should be cleaned, the RGB must be bright not dark spot

rvb mask to clean I think

result after modifying the mask and aligning the grid. it didn’t work at first because I had only done the one that was 512x512 pixel, but you have to do the small one too. I’m not sure if it’s a good idea to use this model to upscale to a large scale.

result it works as expected with the modified slot mask in aperture and scanline integrated, I’m not saying I don’t have to retouch, but the result is aligned like my screenshoot of the aperture trinitron mask 7 from guest crt shader.

victory I succeeded what I thought, you can see the result of crt royale kurozomi which has the effect apperture trinitron of’a mask 7. I just have to tweak the triads settings, because it’s not the same as the slot mask, I have to test 240p test suite, see if I see any artifacts, because I copied some rvb bits and aligned it, if I’m not precise? I think it should show up on a 55 inch oled4k :heart_eyes: :grinning: Here I think I’ve gone a little deeper into my problem. :ok_hand:

it really looks like the trinitron aperture of guest adv rev 2 don’t you think?

my goal is reached without even changing a single setting. really happy with the result.

cleaning the rvb of the small and large mask, the image would be more accurate, I think I’ll do it a little later, look I zoomed on the mask it’s dirty, this thing is superimposed on the colors of the games …

And this is my real crt sony kvm 1450b. ( aperture grill sony trinitron ) And this is my target to reach. And it is my reference for overscan, colors, mask, contrast, mask sharpness etc… Well the oled 55 inches is not the small crt of 20 inches …

:ok_hand:

3 Likes

I specify that I play on oled 4k wrvb

I don’t know if the screenshots will look good to you. or if artifacts will be visible depending on the resolution of your screen. but there is always a zoom that once reached has the right look… but not practical.

I can adjust the softness of the mask, and the height of the rvb triad. if I find the image not soft enough example

and then some genesis games rendering to test

at 6-ft from my tv it looks good, up close it also looks like a sony aperture mask, like guest adv rev2 or any other trinitron mask with scanline does. then there are options in the shader to improve the rendering, it’s still the basis of crt royal but kurozomi version. in the preset (and its reference is crt royal for the mask) those who have been following, I know it’s a lot of text to read, I tried to be clear. so any opinion on the rendering? and how does it look on your screens? your tvs? i’m interested I’m going to sleep ( jet lag us france )

if you are curious, or you want to test, change parameters in the preset do you enjoy I share for the test in 4k at home it rolls. at home 720P 1080P 1440P you tell me not tested

my preset custom genesis I put in custom video 8x9 (head) if it’s too long horizontally or vertically adjust then I load the shader BRAINBIN74 slotmask to aperture kurozomi crt royale genesis.slangp

RetroArch1_9_7_x-64\shaders here BRAINBIN74 slotmask to aperture kurozomi crt royale genesis.slangp https://drive.google.com/file/d/13QPUZYVfWIgMEQy9n5BOLYnV8CqDuHlR/view?usp=sharing

RetroArch1_9_7_x64\shaders_slang\crt\shaders \ crt royale THIS IS WHERE YOU WRITE THE FILE overwrite crt royale make a copy before https://drive.google.com/file/d/1nDPLR6fg3zdjPk6gEq6Uzm1p6o56-YHP/view?usp=sharing

if you test make a small report history to see what it makes on your monitors and TV have fun and take care of yourself see you soon

1 Like

It looks great on my TV just the gamma might be a touch too low but it’s too close to call. I don’t have any proper reference as you so I’ll take your word for it that it looks like a Sony aperture mask. How does it compare with your Sony KVM? Why don’t you post pics of them side by side?

1 Like

Of course you are right. I have to test it. I already have to take quality pictures of my crt when it is turned off for duimon. Because he would like to make an overlay of my TV. ( adobe photoshop , vectorization…) I tried, but not yet a real success, the lighting, and especially to have a picture perfectly front.and aligned… More easy to put the image of our games in the scope…

At this time, photos off, I would take a series of comparative photos turned on in operation with various game, but already of all the photos I posted of my crt, as I said to nesguy… I can’t take the scanline, I see mainly the mask trinitron cut by scanline that I don’t see. What I notice is what I took in pictures above steet fighte alpha3. Phosphorus.boxes… 3 ft, phosphorus mask visible, 4,5,6 ft? Phosphorus mask trinitron…

Scanline in pictures? Difficult to take refraichissement crt shutter of the camera etc… Taking the oled or lcd is not easy colors shader etc… but take a crt is even more difficult. This crt projects light, which will directly interfere with the camera lens.

So you can but it’s not easy, (because you have to under expose the camera in luminosity and iso). In addition I do not understand anything in photographs :joy:

But I would still make a series of photos, crt vs oled. That’s what matters… You may not see anything more than above at street fighter alpha3.

Thank you very much for testing and reporting, ok for the gamma, I’m with bfi on oled -40% brightness. I filmed the oled, with the bfi, there is an effect like the crt of rolling tape? :joy: Which is not there.without bfi, maybe it’s the gamma difference or perceived brightness…

I tried to film and capture the oled. (,motion mouvement bfi on oled on vs off) True cinema with bfi off ( bad cloud motion blur. ) Custom bfi on (motion motion without blur) this is an example.

The .bfi is already more difficult to capture in video, like the crt. I already used a shader that has a scanline tread except that here it’s my panasonic oled that does this, captured in video, but 6ft away from my tv? I don’t see that (like the scanline crt sony kvm 1450.)

Shader on video? Crt shader advanced guest rev2 ( qui simule le mask trinitron7 )

https://drive.google.com/file/d/1hLorsWgmOX8-mT76IA88CA4pJrf4F1i6/view?usp=sharing

Just have to do the same thing on crt.

I explained myself with.nesguy, even post a link on crt squabbin.(thread that was split in two) Because a bit off topic…on the forume dozens of users have posted pictures of their tv… Out of 100 photos, only a few will have scanlines captured, (not my fault…)

So even here, I see movies of .crt sony, I do not see any .scanline captured… Even if nesguy says the bigger your screen is, the more visible the scanline is. But I have a 20inch and here a 30 inch, shot with a camera.

10 min 19 took a screenshot where he talks about scanline… And I see what at the same time, that fantasy zone.

The thread ( scanline on photos screen)

My crt sony with retroarch umsaa rvb peritel ( crt switch res retroarch 15khz)

And here I did nothing on this forum, I came across it while looking for scanline pictures on crt… So hard to capture in pictures (what I keep telling nesguy) Some users.even.wonder.if it.exists.on crt arcade…the scanline…

Why such a debate then? Because you don’t see scanline all the time on crt, you see the soft filter image of the slot mask (98% of arcade crt are not trinitron aperture)

Then the.consumer tv trinitron aperture grill… Deja posted or seen forums that take pictures like me their crt, and I see 99% mask, but scanlines? ( and I know they exist it’s a fact) But users like me have noticed that they are not as visible as a shader because they are mixed with the mask, and a crt tv consumef low tvl, is not a bvm or pvm that has visible scanlines 1ft pvm bvm ? Scanline.visible, 3ft ? Scanline visible, 6 or 10 ft? Scanline visible…

What does the user say here? What I explain to nesguy… I.am not registered on this forum, do not share all their opinions… Of course the.scanline exists on all.crt…but my real user is lost in front of this fact… What I say is similar to what he says. Does he have a crt? Yes, he takes a picture of his crt? Yes… And what do we see at the end even if we zoom in? A mask…:joy::joy::joy:

Or?

He prefers an authentic image? What does that mean? Not to see a scanline? But see the slot mask? Or the trinitron aperture?. This is what I wanted to explain to nesguy among others, and other users… A pvm bvm will have.scanline.always visible, in pictures, in video, on 1ft, or 6ft… My friend has a bvm900 hr, I have never seen such a pronounced scanline in my life. Whether genesis, and psx, it was really shocking compared to a standard tv slotmask crt…or sony trinitron

And I could take 20 pictures of bvm, all of them will have a very visible scanline… Which is to compare this Mario Crt tv consumer low tvl 350… ( scanline and mask well mixed) And the bvm him? Has scanline much more visible from far away no matter. 88017f56095a188c9573da03b56356c570a2267f (1)

Thanks a lot cyber.

2 Likes

Appreciate your passion :smiley: It’s a creative workaround with one main drawback that you may or may not care about: The scanlines won’t be aligned with the in-game pixels. It only becomes obvious when the sprite or background has intense horizontal patterns. As long as you don’t see it (or it doesn’t bother you), it shouldn’t be a problem though.

The default CRT-Royale preset should give you a grid look that you’re looking after with a couple of minor tweaks:

You may want to try and switch back to the original aperture grille tiles that came with the shader (those PNG files), and use the following preset as a starting point:

shaders = "12"
shader0 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "ORIG_LINEARIZED"
float_framebuffer0 = "false"
srgb_framebuffer0 = "true"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "VERTICAL_SCANLINES"
float_framebuffer1 = "false"
srgb_framebuffer1 = "true"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "viewport"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-approx.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "BLOOM_APPROX"
float_framebuffer2 = "false"
srgb_framebuffer2 = "true"
scale_type_x2 = "absolute"
scale_x2 = "320"
scale_type_y2 = "absolute"
scale_y2 = "240"
shader3 = "shaders_slang/blurs/blur9fast-vertical.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = ""
float_framebuffer3 = "false"
srgb_framebuffer3 = "true"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/blurs/blur9fast-horizontal.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "HALATION_BLUR"
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/crt/shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "absolute"
scale_x5 = "64"
scale_type_y5 = "viewport"
scale_y5 = "0.062500"
shader6 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
filter_linear6 = "false"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "MASK_RESIZE"
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "viewport"
scale_x6 = "0.062500"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "MASKED_SCANLINES"
float_framebuffer7 = "false"
srgb_framebuffer7 = "true"
scale_type_x7 = "viewport"
scale_x7 = "1.000000"
scale_type_y7 = "viewport"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-brightpass.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = "BRIGHTPASS"
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-bloom-vertical.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "true"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.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-geometry-aa-last-pass.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "true"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "viewport"
scale_y11 = "1.000000"
beam_min_sigma = "0.150000"
beam_max_sigma = "0.295000"
mask_type = "0.000000"
mask_sample_mode_desired = "1.000000"
mask_triad_size_desired = "6.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"
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 = "false"
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"

For a 4K monitor, try triad size from 5-7 and see if you can find a “right look” for your taste. If you want a larger triad size (> 8), sample mode 1 is needed. Mode 0 gives prettier and more authentic masks but its advantage over mode 1 isn’t obvious at 4K.

3 Likes

Crt joe The scanlines won’t be aligned with the in-game pixels. It only becomes obvious when the sprite or background has intense horizontal patterns. As long as you don’t see it (or it doesn’t bother you), it shouldn’t be a problem though.

You are right, but for that the creator of the kurozomi crt royal shader variant must know him. He knows how to handle .mask and scanline… The images I modified are tileable, adjustable according to mathematical vector rules… Exemple Which looks like this but in the code there are vectors 3 , pos x. Etc. You posted this. mask_slot_texture_large = “shaders_slang/crt/shaders/crt-royale/TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacing.png” mask_slot_texture_large_linear = “true” ( filter? ) mask_slot_texture_large_wrap_mode = "repeat ( tileable png mask repeats infinitely…?)

If kurozomi places the pixels with a mathematical formula in the shader code in relation to the aspect ratio? Integer scale? And what about tileable mask? All these questions are unanswered for me. Because I am just a shader user, not a shader programmer. Only the designer and his code can answer this, or test it himself, and notice what is wrong. That’s what I think (but I’ll try to look at the code to see how it handles the pixels in the mask) Thanks a lot crt joe I appreciate your contribution.

Tbh idk if kurozomi knows a great deal about the actual code either tbh, as afaik all he’s done is stuff anyone that has bothered reading through royales documentation can do. (Granted this is under the assumption that he doesn’t really code :joy:; I don’t have much room to talk as I monkey code)

Not discounting his work, I guarantee alot of time and effort was put into it.

1 Like

Oh yes, I agree with you. But me what I see is simple, I use kurozomi slot mask on oled. It’s perfect without adding much scanline. I try the sony aperture of vertical rvb strips, so I have to use scanline to cut horizontally… Royale kurozomi cut the scanline to slot mask? And not aperture grill? Difference? The mask png. This is what pushed me to go deeper to understand.

You are actually manually inserting scanlines into the tiles to force a grid pattern, by creating a new aperture grille resource file, because the real scanlines that your original preset is supposed to provide are almost invisible, due to some of the parameters you chose (very large beam size and ultra low bloom under estimate level)

I’m not good at explaining this so it’s okay if you think all of this doesn’t make sense to you. :smiley:

2 Likes

Perfectly understood and fully agreed. And I only changed these settings to look like my sony kvm tv crt…

I didn’t really choose the settings of my preset…it’s the consequence that did it…trying to get closer and copy my TV. These are the settings that bring me closer to my reference sony crt… I can make a lot of other settings and presets, but I’m looking for what looks like a real crt… I don’t know if I’ve been understood here.

I can add bloom, haliation and many other things. Adjust the scanline, the beam, etc… But I tried these settings, but it’s not what I see on my crt tv. So I leave it at zero, then after the gamma etc… :smiley:

Crt joe I zoom in on your royal crt preset, I look at the alladin comma, to see the pixel placement. And I can see a difference. The number of vertical pixels. YoU

Me

And on my crt it happens that the phosphors exceed with the contrast, it is what makes the image soft, because the pixels mix etc… I’m not saying that my tweak is perfect and that this is how the games should be displayed. Just interesting to zoom in…and compare. To have the same thing as you I should maybe lower the Beam width… 30 or 40
Look what’s going on where I posted the 2 screens of street of rage, bare knuckle… I am at beam width = 30 to 60… I took two screenshots with distant values to see the effect… It softens the mask and it stretches vertically the phosphor box… Going from 2 pixel high to 3 should be possible. Just go back and compare my 2 screens where I say it can soften the image… The windows in street of rage are almost 3 pixels with the value 70 The value has 30 for beam width 2 pixel vertical. And there is also the beam max value…

That’s why I said that I should adapt my settings because slot mask changed to aperture grill… So here I stop because it is long… If I have to do something I’ll open a thread dedicated to shader tweaking and other stuff… See you soon Have fun.

1 Like