CyberLab Death To Pixels Shader Preset Packs

The is Snes9x, haven’t tried any others.

For aspect ratio I have been using 8:7 with integer, I’ve been using underscale as I didn’t want to crop any of the image if I can avoid it. I may have been being an idiot though. Will X+Y make a difference? I’ve only been running it off Y, or whatever the default is…

1 Like

Don’t use 8:7 with SNES please. Although the system technically outputs an 8:7 resolution, on a real CRT that image is always stretched horizontally to 4:3 producing non-square pixels.

I doubt that.

X+Y can help things to be better aligned in the horizontal direction as well, for example the CRT Mask. Particularly the Shadow Mask Presets, they sometimes benefit from horizontal integer scaling, producing less moiré patterns.

Since my W420M Presets where I experimented heavily with Custom Aspect Ratios to get the Shadow Mask Presets looking good, I’ve stuck with some of the things I learned.

This may be the only way to maintain the proper aspect ratio when adjusting the vertical scale to arbitrary levels but I just stick with integer scale on X + Y and try to get it as close as possible. At least that’s what I’m doing these days.

I play on a large screen but I’ve noticed that bigger isn’t always better when it comes to image quality and all elements of the CRT emulation aligning and coming together,

Certain scale factors will look better than others, and those sweet spots are a joy to experience. Take a look at the presets where I’ve included recommended CAR values and you’ll see what I’m talking about or just do some experimentation on your own.

2 Likes

I know that 8:7 is not how it’s supposed to look on a CRT I just find certain games looks so stretched when played at 4:3…well at least I find something like Chrono Trigger does, I know not all games are affected in that way.

I need to investigate more into this X and Y scaling. Only scaling on Y might have been the cause of my troubles.

Can I ask, when testing more generic shaders (I appreciate that many of yours included a specific option for OLED) there is the option of BGR or RGB, will those shaders even display correctly? My RP5 uses the same pixel layout I believed as most AMOLED phones of this era.

Also, for the installation for these packs, like the original Megatron 4K HDR pack, not the NX one, will it work properly with the most up to date version of guest shaders, or does it still need to be the ones specifically linked in the post?

1 Like

Okay.

Probably, or it’s probably even simpler than you think. Since performance isn’t an issue, feel free to try out my latest Megatron miniLED Preset Pack.

That’s not what it is you know. Those are really just notes to reference and remember which TV the presets were designed on. I can understand the confusion but I was hoping users would have at least read the readme. So presets which were designed on a WRGB OLED TV would have OLED in the filename as well as which picture mode was used. If a user is using a similar or identical display, that might be advantageous but that doesn’t mean those settings won’t work or look good on other displays. In any case users are supposed to be setting their Peak and Paper White Luminance for their individual displays as well as the Display’s Subpixel Layout/Mask Layout and Display’s Resolution and Resolution (TVL) parameters.

There’s no precise matching subpixel layout in CRT shaders for AMOLED or QDOLED displays so any subpixel setting selected might be equally wrong. With that said, the display is still going to try it’s best so you can just use RGB or whichever one looks best to you.

A lot has changed in CRT-Guest-Advanced-NTSC to allow things to be easier to achieve which I personally don’t feel a need for yet so the presets which use some features which have changed may not look as intended with different version of the shader.

This should only affect presets which use NTSC effects though.

For my W420M Preset Pack onward, the requisite CRT-Guest-Advanced-NTSC shader version is included in the pack. from my NX version onwards, the CRT-Guest-Advanced-NTSC Shader has to be installed in it’s own standalone folder so it wouldn’t be affected by the Online Updater.

This can be done with my 1st Megatron HDR preset pack as well but I don’t really want to make RetroCrisis’ Installation video redundant.

Anyway, you probably don’t need to be playing around with the scaling settings of shader passes. All of my previous scaling tips concern the Settings–>Video–>Scaling and most should work fine with just Integer Scale set to On and Aspect Ratio set to Core Provided or 4:3.

So I went ahead and loaded up my latest SNES preset as well as the “old” one you were playing around with at 1080p desktop resolution and took some screenshots.

7 posts were split to a new topic: Aspect ratio

Any good way to get thicker black lines in retroarch? I’m particularly trying to get pc98 emulation working with this - i say this to point out most of the things that force 4:3 ratios wont work.

Extra details:

I’m using the megatron shader with reshade on my pc, but wanted to try to get something close to that in retroarch on android. Can’t seem to get anything that really looks quite as sharp on on my 4k hdr phone display (or tv) inside of retroarch using internal shaders.

I really like the reshade method since I can set it once and it works with all my cores dynamically, no tinkering or per core shaders needed, but can’t quite recreate this inside of retroarch either.

Having shaders per core is a choice not a requirement.

I need to see what you’re talking about. Post screenshots and/CRT photos showing what you want in Re-Shade and what you’re been able to achieve in RetroArch and I can see if I can assist you in bridging the gap.

What are your Shader paramaters in both Re-Shade and RetroArch?

Thanks for the help, I ended up tinkering and found just using the megatron shader by itself in retroarch (standard 3 pass hdr one) & that gave me the look I wanted. I had posted some screenshots before but since I linked to other sites Imgur deleted my post - wont be using them anymore! Sorry, i’ll need to upload them again somewhere else.

I’m one of the weird people that likes CRT shaders on everything <720p. I’m not sure if you’ve experimented with getting shaders like this working with NDS, but it seems like the hybrid view in something like MelonDS DS doesn’t work with any of the shaders I’ve tried out due to the dual screens and one being larger than the other. It’s a real bummer because one screen with shaders full screen looks great, but the effect disappears if you have the secondary screen showing to, and they aren’t the same size :frowning:

1 Like

You can just copy/paste pics into messages as you write them here like on Github. Also I love your name, we eat kanji every morning around here and sometimes those spices are just banging!

2 Likes

Hey there. Same boat as you. I’ve tweaked a preset for DS games in hybrid display using whkrmrgks0. You can test it : https://mega.nz/file/WAB2nBzJ#IFF1kpvAn1htU8bAH2Fqsu5PbkoC85B34Sk426p-3x4

It’s for 1080p but you can tweak the mask “phosper size” for 4K (). The other key parameter for me was “number of scnaline” I had to set to 193 (DS being 192p, and I guess there’s one line of overscan). There’s still small glitched line on the right but I ddnt look on how to crop that. And IIRC hybrid size must be set to 3 in the core options otherwise it’ll break (but this setting lets you get full height for your main screen in 16:9).

2 Likes

I would consider that a workaround. Feel free to post the comparison images and I can try to show you how to better harness the power of the shader to tune to your preference. It could be as simple as increasing the TVL or decreasing the Gamma or NTSC Gamma Compensation.

Imgbb is better for sharing things like this because it preserves the quality of the images while imgur greatly reduces it.

You can also use a tool like IrfanView to compress your images to within a particular file size then just upload them here.

1 Like

Shots from retroarch w/ external reshade megatron PSX core

PPSSPP core

PCSX2 w/ Reshade

Artemis Streaming to psx core w/ reshade

Inside android retroarch psx core w/ megatron internally. HDR gets washed out in screenshot but colors are good. Scan lines aren’t quite as convincing or pronounced compared to streamed version.

Inside android retroarch PPSSPP core w/ megatron internally.

Streaming PPSSPP core; Image is darker due to reshade configuration being optimized for LG G4 Oled screen

Testing Obsolete’s shader (thank you!). Performance on my s25 ultra crawled when using it on the hybrid view (difficult and impressive to do on this device ha). I tried tinkering with the phosphor and slot mask style but couldn’t get one to look better than your default. I found it muddied up the picture a bit too much for my liking which is more like an slot mask than an aperture grill from what I was seeing.

My version which only uses the Megatron shader oversaturates (which i’d like to fix) but otherwise gives a very clean BVM 1000TVL look. It does absolutely nothing useful in the hybrid mode besides distorting the color a bit. I think it needs to activate based on input pixel instead of trying to do something based on the hybrid pixel count. But I don’t see a parameter option for such a thing

Conclusion:

It’s really difficult to capture how any of this looks in person. Basically Apollo/Artimis HDR streaming looks great on phone or TV, but internal retroarch leaves a bit more to be desired. The scan lines are way thicker w/o being too exaggerated from my gaming PC streaming server (even on my phone), but very thin when running natively on the phone.

LG G4 TV via shield Artemis w/ Reshade Megatron: 10/10

Android s25 Ultra Retroarch w/ Megatron Shader

PPSSPP: 1/10

DS: 7/10 (need to fix saturation & figure out a better hybrid mode option)

SNES,PSX: 8.5/10

Streaming to phone: PPSSPP core (and other cores): 6/10 (Too dark! Need to figure out if i can do cli based launch configurations for reshade)

Unfortunately I thought the CyberLabs ones that I tried were a bit too noisy in artifacts, like a real consumer set, but I’m trying to create, well, a fictional megatron BVM. I welcome any feedback though or how I can try to get things tuned better inside of retroarch. I feel like I got the reshade preset tuned really nicely for my main display, but the retroarch stuff is still rougher.

The Obsolete one added a bit too much noise from the mask style with that shader & wasn’t HDR (?) i think, so didn’t look quite as vibrant. Unfortunately I didn’t see a way to fix the performance burden either when it goes to hybrid.

Some bonus shots from my actual CRTs’. I gave up on owning a BVM after I got the reshade stuff running on my LG G4 as it looks incredible in person. These are from my consumer set. I also have a PC CRT. Both are Trinitrons 19" A440 PC CRT & kv-27fs12 27" set. I mostly use these for PC games and old anime respectively.

1 Like

Wow! What a post! They really say to be careful what you wish for. lol

Don’t worry, I will go through all of it when I get a chance.

Have you tried my NES_N64 or Sharp presets? Also my 3D Comb Filter and S-Video Presets?

Lastly have you tried my Fine presets? Particularly the new ones in my miniLED Preset Pack? miniLED as in made on a miniLED display not made for miniLED.

Okay, I looked at the images and read the post. It’s not so easy to process based on how the information was presented but I think you’re just looking for a high (1000) TVL PVM/BVM look as you’ve stated. I don’t know why you didn’t state that from the beginning.

You said you achieved that using the default Megatron presets, this is not surprising as this is something that can be done well by those presets.

I guess my work here is done.

If streaming these things, you really need to not have any scaling being performed at all. You won’t get good results if streaming from a device which has a 4K Optimized preset with full strength RGB mask to a device with a 1080p screen for example.

Also, your streaming settings need to be correct. You need to be in RGB 4:4:4 Full colour mode.

Now you can make or use preset which use a BW mask in Megatron which won’t have this requirement but I’m not sure if that B&W mask still exists in the RetroArch Megatron. Maybe it was left in the ReShade port.

Maybe it should be readded as an option.

In order to get around that limitation, you can probably use the Shadow Mask but it won’t look the same as an Aperture Grille PVM/BVM Mask.

I don’t see what’s the issue here. If you want a high TVL Aperture Grille Mask you can just Set your Display’s Resolution to your display resolution or 8K then, set the Display’s Subpixel layout to whatever matches your Display’s Subpixel Layout. Then set the CRT Mask to Aperture Grille. Then set the Resolution to 800 or higher.

If your scanline gaps are not large enough, just lower the Beam</>Scanline Size Min and Beam</>Scanline Size Max on the Red, Green and Blue Scanlines. The lower the Min, the narrower the smallest part of the scanlines can become and the wider the scanline gaps can be and the lower the Max the narrower the largest part of the scanlines can be and the larger the scanline gaps can be.

If you want to add blending of transparencies and dithering on top of that you can use the Megatron NTSC preset or one of mine or you can even use one of the Blargg Custom NTSC Video Filter Presets.

It’s been years since I’ve made a PVM or BVM style preset. Maybe it’s time for history to run full circle as right now I’ve been cranking up the TVL on my presets.

When you first mentioned thicker black lines I didn’t realize it was the scanline gaps you were referring to, I thought you were speaking about the black outlines of text and sprites.

Those can get distorted when using low TVL masks.

By the way, thanks for these photos. I really appreciate seeing good pictures of real CRTs.

Just added some new high TVL PVM Edition Style Presets to my miniLED preset pack!

Oh I didnt knew you were on mobile for that case. The shader I posted I use on my computer connected to the TV screen, and it’s meant for SDR 1080p or 4K. I dont know what to tweak to optimize for HDR tho, although my screen supports it I play mostly on SDR on linux and didnt get the time to configure the HDR support yet. On SDR 1080p it should look like that, properly aligned for DS 192p:

On my phone I play the DS games rotated vertically and use a lighter CRT-Lottes-Fast and nds-color.slang prepended to that, with a screen gap of 40 something for games like Contra 4 (it’s impossible to play that game otherwise IMO). I use syncthing on my folder saves for when I play with the big screen on the couch. MelonDS hybrid mode is also too heavy for my phone, and preemptive frames seems out of reach performance-wize.

Your shader looks great, if you want to compensate for the DS colors oversaturation you could maybe try to prepend the nds-color.slang shader and it should do color correction.

Yeah it was a lot of information but unfortunately the phone screenshots don’t seem to be full resolution so they aren’t that useful, sorry. I’ll see if I can capture some of these effects directly on the device better.

Have you tried my NES_N64 or Sharp presets? Also my 3D Comb Filter and S-Video Presets?

Lastly have you tried my Fine presets? Particularly the new ones in my miniLED Preset Pack? miniLED as in made on a miniLED display not made for miniLED.

I have not. I need to try out some of your other options for sure. Thank you for the recommendations.

My streaming setup works perfectly as intended with HDR & megatron reshade currently. I just need to figure out how to change the peak nit parameter based on device in the reshade preset to account for screen differences between the OLED TV & M13(??) OLED panel on the S25 Ultra.

I don’t see anything inside of the megatron shader params specific to beam size. Is there a shader you’re referring to here that you could recommend?

I would definitely be very interested in what you’d currently recommend on this topic & any future improvements you could make.

Apologies, you are correct, i was talking about increasing the scanline gaps.

If I focused on one thing that I want to solve it would be, related to this, getting a BVM style shader that works with the a retroarch core internal resolution being cranked up to something like 8x 4k resolution on PSP, but showing the scan lines as if they were on a native resolution input of 1x 480x272 px.

Basically if I rendered it at native resolution I already know my current shader would look great. But how can I upscale internally, and have the same style of scanlines & scanline gaps, even if we have subpixels that are technically higher resolution?

I think Obsolete’s solution may be interesting because it does use a shader that takes an input resolution, but I haven’t found anything like that for HDR screens

Extra though: I do wonder if this could be accomplished by using some sort downscale faking shader, but I don’t know what the shader possibilities here are

Thank you very much both of you for engaging in these lengthy posts!

2 Likes

I mostly reply when I’m not in front of the computer so I wouldn’t often get the exact names of the settings correct.

What I was referring to was this:

I think I was able to glean enough from the closeups.

This is actually pretty simple. Try reading Guest’s thread or The Mega Bezel thread for a refresher course.

Some cores have the option built-in.

In Mega Bezel you can use the D-Rez presets.

1 Like

Is there anyway to put shaders in there own specific folder and have it load in RA, for example all ther SNES shaders in a SNES folder, all the Genesis shaders in a Genesis folder etc.

2 Likes

Yes, you can put your Shader Presets in any folder and have them load, however you would need to edit the relative paths inside of the Shader presets to reflect this change.

So you might need to study relative paths in order to learn and understand how to and you can use an app that can edit multiple files and instances of a line at once like Notepad++.

I’m not versed in relative paths but if you give me an example of the exact folder structure that you had in mind, I could probably try to assist you if you can’t figure it out on your own.

1 Like

If you simply have all reference paths start like this: ":/shaders/"

Then you can load presets from anywhere and make them portable.

I did this with all your presets and they work fine (tested on Windows), one can simply batch replace the beginning of reference paths by replacing this: "shaders_slang/

With this: ":/shaders/shaders_slang/

But only do this to the presets that are required to be in “shaders” folder, not to the bundled “shaders_slang” and its contents.

1 Like

Relative Paths are guaranteed to work on all systems rather than the :/shaders method which fails on some systems, mostly Mac and Linux with flatpack type distributions, and on windows if the user has set their shaders folder somewhere non-default.

These are some of the reasons why the Mega Bezel Team switched all presets to using Relative Paths.

Besides that, I don’t adjust paths I distribute presets the same way as they are installed on my system.

Although this might be a decent solution in the above user’s specific case, a similar solution maintaining Relative Paths isn’t that much more difficult to implement. You just need to count your '../' correctly and add the correct number of those to the existing paths. In this case it might be just one '../' to be added to the beginning of all the reference paths because you would now have to go up one folder to get back to shader root level. That’s if the user wanted the console/system subfolders to reside in the Shaders folder.

2 Likes