Beetle PSX HW - Prerendered backgrounds based games [Best Shader]


#1

I used GLSoft Smart Filter VeryHigh XY shader for several years on ePSXe, cause it allowed to filter everything on screen without producing any “green-lines” artifacts on prerendered backgrounds based games. Any chance to port it for Beetle PSX HW vulkan? Take a look:

Here’s a link to download the shader: click

Here’s my ePSXe shader configuration:

Of course Beetle’s xBR provides better filtering (except for text, which i feel Smart Filter VeryHigh XY does a better job), but still produces those green lines. Also, Beetle’s nearest doesn’t smooth graphical effects and most 3d graphics, while Smart Filter VeryHigh XY does.


#2

The green lines come from the per-texture filtering, whereby bilinear filtering samples outside of the texture UVs, creating visible seams. As long as you stick to “nearest” for the core’s internal texture filtering, you shouldn’t get any seams, and you can then apply shaders on top of that, such as hyllian’s super-xbr-3D shaders, which will ignore the uprezzed polygons and only apply to the pre-rendered backgrounds, or you can run something like xsoft–which that shader appears to be based on–over the entire image.

If you have ‘adaptive smoothing’ enabled, you might need to disable it to get a good, crisp image.


#3

I’ll try those shaders. Thanks.


#4

Seems i can’t find those shaders, are they vulkan or opengl? I was trying to smooth the first screen with cloud’s buster sword, without success. Beetle’s nearest remains untouched.


#5

They’re available for both GLSL and slang. I try to keep the 2 repos as close to parity as possible.

The super-xbr-3d shaders are in the xbr subdirectory. xsoft is in xsoft.


#6

Ok yeah i found them but when i select them nothing changes, just worsens polygons a little bit. Here:


#7

Turn off adaptive smoothing and see if it treats you any better.


#8

Ok yeah that was the problem, i’ll try the shaders then i’ll report.


#9

Super xbr doesn’t work as expected and xsoft does nothing… tried both gl and vulkan.


#10

Update: despite shaders, something is clearly wrong with Final Fantasy VII title screen. I took this screenshot with 1x native resolution and no filters whatsoever (including the bilinear one in retroarch video options). Take a look:

This distortion only takes effect here, in the actual game is fine. Strange, isn’t it? And it doesn’t happen, for example, with ePSXe. Now, let’s try Hyllian xbr 3d shaders again in the actual game, i will always run in 4x internal resolution since 8x is too much demanding for my specs.

When it comes to graphics looks that, in this case, 8xbr performs a better job not worsening polygons like 4xbr.

When it comes to text the situation is critical, is it supposed to look that bad? Can you try to see if it’s my problem or common? Another question crossed my mind: how about a version of these shaders for 4x and 8x IR that makes no distinction between 2d and 3d elements? Is such thing available to test? Just to see how would everything change, since 3d graphics remain untouched anyway (except for that ugly ghost effect on the polygons edges that indicates where the shading effect stops as designed). This “3d exclusion” could be the problem of these artifacts.

Concluding: GLSoft Smart Filter VeryHighXY at Level 2 remains the best shader, for now, because it convincingly affects both 2d and 3d elements (see first post screens). I would consider porting it for vulkan.


#11

The 4xsoftSDB is really the shader you mentioned. Unfortunately, buffer proportions from Pete’s OGL2 plugin and Libretro PSX cores work differently, so one shader can’t fit different internal resolutions without the user involved. It’s best you try the 4xsoftSDB preset with 2x internal resolution and then change the first stock pass scaling to 1.0 (down from 2.0). A nice shader with internal resolution options is also the aa-shader-4.0 where you match the shader internal resolution to the one you are using. Adaptive sharpen from the preset is a welcome bonus.


#12

I believe the jaggies on the sword there are caused by non-1:1 scaling. I’m not sure if they would go away if you set your aspect ratio in settings > video to 1:1 PAR, as some of the scaling happens before it gets to that point as a result of the PS1 changing resolutions almost constantly, and then the image gets stretched/compressed to fit the available context size.


#13

I believe the jaggies on the sword there are caused by non-1:1 scaling. I’m not sure if they would go away if you set your aspect ratio in settings > video to 1:1 PAR, as some of the scaling happens before it gets to that point as a result of the PS1 changing resolutions almost constantly, and then the image gets stretched/compressed to fit the available context size.

Yeah i thought of that too, i tried everything, aspect ratios, integer scaling, also closing and reopening retroarch after every modification, but the distortion remains there, so no solutions for now.


#14

The 4xsoftSDB is really the shader you mentioned. Unfortunately, buffer proportions from Pete’s OGL2 plugin and Libretro PSX cores work differently, so one shader can’t fit different internal resolutions without the user involved. It’s best you try the 4xsoftSDB preset with 2x internal resolution and then change the first stock pass scaling to 1.0 (down from 2.0). A nice shader with internal resolution options is also the aa-shader-4.0 where you match the shader internal resolution to the one you are using. Adaptive sharpen from the preset is a welcome bonus.

Thanks, i’ll try.


#15

That’s actually not bad:

Only cons it’s the impossibility to shade at higher IR than 2x, so ePSXe shader does a cleaner job on polygons (uses a blooming effect too).

Any way to do it at 4x IR?

Also, i would be interested in testing Hyllian Super xbr 3d without 3d elements exclusion.


#16

Just use the non-3D versions in that same directory. Unfortunately, it’s the 3D exclusion that makes it actually work at higher res for things like 2D elements, so I don’t suspect you’ll be very happy with it.


#17

Ok then, i’ve merged Hyllian’s 8xBR 3D (which shades 2d elements) with Xsoft SdB (which shades polygons and, although very slightly, 2d elements too). The result is satisfactory (it produces something that we may consider like a higher defined version of Super Sampling, which is fantastic) and, also, partially hides the 3d exclusion ghostly effect on Hyllian’s shader.

Not bad huh? Here’s the slangp file, place it into shaders\shaders_slang folder.

Core options:

Adaptive smoothing OFF

Super sampling OFF

MSAA 16x

Texture filtering nearest

Internal Resolution 4x

Concluding, i see this as the current best shader for prerendered backgrounds based games. Of course, Hyllian could always refine his Super 8xbr 3D on text strings and trying to reduce that ghostly effect around polygons, in that case we should get the ultimate shading. Cheers.


#18

I cleaned some errors on the shaders properties and made another version with Reverse AA added to increase FMV sharpness.

Super 8xBR 3D + 4xSoft SdB + Reverse AA


#19

Guys, is it possible to shade/filter only 3d elements? Just like Hyllian’s Super xBR 3D but for polygons.


#20

any of the non-3D shaders that do pixel detection patterns should ignore any of the pre-rendered backgrounds anyway and only affect the polygons, though they’ll be pretty demanding running on, say, 8x images.