SNES Blargg NTSC Filters

Update on that. It DOES appear to work on Genesis Plus GX, though it causes some weird issues, which I expect is normal, considering it’s the wrong system.

edit* to be super clear, this is the SNES Blargg filter enabled through video -> filters in settings, not the ‘Genesis Plus GX’ built-in filter, which always works and doesn’t have issues.

Comparisons below:

Upon further testing, the Blargg SNES filters do not behave properly on the Raspberry Pi, either. You’ll have to forgive me for not noticing sooner. I’m using the Raspberry Pi with a CRT and it is actually hard to tell when the filters are on or off. However, I just tested out Kirby’s Dream Land 3 and, if I go into areas that use hires transparency, such as is used in Sonic The Hedgehog 2 for the waterfalls, the resolution goes funny, exactly like in my above screenshot from ‘Genesis Plus GX’ on my PC. The rest of the game displays normally but it is hard to see if the filter is working or not. On my PC the filter does not appear active at all on Kirby’s Dream Land 3, even in areas with hires transparency.

The SNES Blargg filter behaves identically when using ‘Genesis Plus GX’ and ‘Nestopia UE’ on my Raspberry Pi as it does on my PC, meaning that it works on ‘Genesis Plus GX’, though the horizontal resolution is messed up as expected, and does not work at all on ‘Nestopia UE’.

To clarify, the built-in filters for ‘Genesis Plus GX’ and ‘Nestopia UE’ definitely do work on Raspberry Pi, the waterfalls in Sonic 2 and coins/flagpole in Mario being my go to places to test them. The difference is clear, even on CRT.

Unfortunately, only the “in-core” filters appear in screenshots from my raspberry pi, which otherwise all appear as if no filter is applied, even when the SNES filter appears to be having an affect on my CRT. I’m not sure why that is. Sorry for all my rambling. I hope it’s somewhat coherent!

yeah, the genplusgx thing is to be expected. I assume that, if the CPU filter is doing the same thing on an SNES game, it’s only tuned to exactly 256 px width and can’t handle the high-res 512 px mode, which isn’t good.

1 Like

Just another reason to use Themaister’s filters/shaders… lol

Perhaps I’m coming at this from the wrong direction. Themaister’s shaders already work nicely on SNES, on PC. Though, actually, the hires transparency isn’t perfect in Kiryby… It’s better in Sonic 2. Maybe the resolution change isn’t happening properly for some reason?

Do you think it would be better to try and get Themaiser’s shaders working on Raspberry Pi, instead? I’d be just as happy to make a bounty for that. Perhaps they could somehow be ported as a video filter or perhaps the shader can be forked for Raspberry Pi. It doesn’t even load right now. I’m wondering if that’s because of Lakka running Retroarch in KMS mode. There’s a good chance it would be horribly lagged if it did work, too, I think. What are your thoughts? I just want nice/accurate NTSC distortion on SNES, on my Raspberry Pi. I’m not too fussed over how that’s achieved, to be honest.

I’m pretty sure the RPi GPU isn’t up to the task, unfortunately. There’s also the issue of the shader uses a special GPU capability that often isn’t available on mobile GL.

Snes9x2010, at least, has had the NTSC filter stripped out of it, and it’s nontrivial to add it back in. We could see about enabling it in snes9x mainline, though.

Snes9x2010 seems to be the default core on Raspberry Pi, on Lakka, right now. Maybe we could start there and see if and how well that works on Raspberry Pi and whether the same issue occurs with hires mode. In an ideal world, I’d like to be able to use Blargg on my PC, as well, without being stuck on Snes9x instead of bsnes.

edit* I think I might have misunderstood what you meant a little. I’d be perfectly happy with Snes9x mainline, instead of Snes9x2010.

edit 2* I can see why Snes9x2010 is the default. Performance for Snes9x mainline is pretty poor on my Raspberry Pi 2. Still, it sounds like it could be a good place to start if it’s easy enough to implement.

What’s the problem on the Flatpak package? Mind making an issue over at https://github.com/flathub/org.libretro.RetroArch ?

Does the Blargg filter respect the video output of the emulator (256px, 320px etc)?

respect? If you mean adjust to it, no, the cpu filter doesn’t, though it looks like it should, based on the code… The ones built into the cores do, AFAIK.

What’s the problem on the Flatpak package? Mind making an issue over at https://github.com/flathub/org.libretro.RetroArch 2 ?

I’ve just created the issue. Thank you. :slight_smile:

1 Like

Yes, I meant “adjust”.

Thanks!

So what should I do next? I’m happy to make a bounty for Blargg filters to be added to Snes9x, though I think I’d really like to see it in the bsnes core/s, more than anything.

I think the bsnes cores are going to be harder, since bsnes/higan loads them as dynamic libraries at runtime. So, we’ll have to statically link it in and then add an option to access that codepath. Not impossible, but more difficult than just exposing an option for an existing capability. Starting with mainline Snes9x is probably the easiest way.

1 Like

Okay, then. I’m glad to hear it might be possible for bsnes in the future, as that’s the emulator I prefer, overall, even if it’s too demanding for the Pi. How would I go about making a bounty for Snes9x and what do you think might be a reasonable amount?

First you make an issue on the github repo then go over to bountysource and find the issue there and put a dollar amount toward it. Most people start with $10-15.

I shall do just that, then. Thanks for helping out a noob. Haha

Bounty is up. We’ll see what happens, now. Thanks again, hunterk!

2 Likes

I’m not sure that there is much activity on the snes9x issues page. Is there anything I can do or is it just a matter of waiting to see if someone eventually takes an interest? Of course I’d be most interested in having the filters added to bsnes, anyway, but it sounds like that would be a lot of work. Any ideas?

This should be working now. I’ve added Blargg_SNES_Pseudo_PCE_PSX_SNES_COMPOSITE.filt video filters and others to the video filters folder as well as in my CyberLab Custom Blargg NTSC Video Filter Presets pack.

The Genesis filter presets should now work properly as well just make sure to disable the core NTSC video filters.

Also, BSNES now has the Blargg NTSC Video filters integrated in the Core Options.

1 Like

Hey, I missed this somehow. All of that is great to hear. :slight_smile:

1 Like