ScaleNx - Artifact Removal and Algorithm Improvement

Omg, that looks beautiful! What shader is that? Also it seems that you applied the shader on both screens? For some reason if i load a shader while using the Hybrid layout the shader only works on the second screen not the main one, is this normal?

Hi all, quick question, can scale fx aa be used with increased internal resolution for the beetle hw core? I realised it kept crashing and only works if ran at 1x. alternatively i could use any multiplier and turn on supersampling and it works

1 Like

scalenx mutliplies the texture size substantially, so it’s probably exceeding your GPU’s max texture size. However, its pixel detection algo doesn’t work on chunks of pixels, so it wouldn’t help with >1x anyway.

2 Likes

scalefx 9x AA Shader 2.o x3 Scanlines Dream haze from a reshade shader ported here 720p desktop rez with x4 internal rez with shapen shader x4

1 Like

So, which is the fastest version? (Less heavy on the CPU/GPU)

Scalefx or Scalefx Hybrid?

Edit: after about two hours of testing, my results show that Scalefx is faster by 0.5 frames, in similar gameplay circumstances (both combined with crt easymode)

2 questions: Is there an even faster shader that produces similar visual eye-candy?

And, if i reduce/increase the treshold value in Shader Parameters, will this make it less, respectively more demanding one the system resources?

1 Like

Hey guys,

Any similar shader that works in Flycast core? For some reason this Scale family shaders work perfectly in mame and FBN cores, but not as good or at all in Flycast (2d games).

1 Like

Are you doing any internal resolution increases? If so, that will break any shader that uses pixel detection algorithms, like scalefx and xbr.

2 Likes

No, nothing like that. No upscale or anything other than all native. I was under the impression that the shader just doesn’t work on the type of rendering that Flycast does. On ppsspp core, at least in 2d games, it works just right as well, like in mame/fbn. So, it should definitely work in Flycast you say??

Edit: it turns out that if i lower the resolution from default 640 x 480 to 320 x 480, the shader works as intended. Sadly, except for Capcom Vs Snk 2, the other 2d games i tested, display those graphical glitches (small lines and squares) arround the characters, that always happen when playing 2d games at other than native resolutions.

So the shader only works it seems on 240 p res.

2 Likes

It’s going to depend on pixels being individual pixels and not blocks of pixels, whether that’s how the game was originally designed or not.

For example, in games like CvS2, where they mix 2D and 3D, the sprites are “natively” some other size and are scaled to match the overall output, and that pre-scaling is what’s breaking the detection.

1 Like

so what about the fsr shader along with this, should we set this before or after scalefx? And will it still function properly?

1 Like

You would put it after. Putting it before would screw up the pixel detection algo.

2 Likes

fsr shader doesnt seem to work with this at all. After pressing apply, it just reverts back to the previous shader preset that works. Any reason why?

2 Likes

You can try this from the ‘preset’ directory:

shaders = 11

shader0 = ../stock.slang
alias0 = refpass
filter_linear0 = "false"

shader1 = ../scalefx/shaders/scalefx-pass0.slang
filter_linear1 = false
scale_type1 = source
scale1 = 1.0
float_framebuffer1 = true
alias1 = scalefx_pass0

shader2 = ../scalefx/shaders/scalefx-pass1.slang
filter_linear2 = false
scale_type2 = source
scale2 = 1.0
float_framebuffer2 = true

shader3 = ../scalefx/shaders/scalefx-pass2.slang
filter_linear3 = false
scale_type3 = source
scale3 = 1.0

shader4 = ../scalefx/shaders/scalefx-pass3.slang
filter_linear4 = false
scale_type4 = source
scale4 = 1.0

shader5 = ../scalefx/shaders/scalefx-pass4.slang
filter_linear5 = false
scale_type5 = source
scale5 = 3.0
alias5 = SMAA_Input

shader6 = ../anti-aliasing/shaders/smaa/smaa-pass0.slang
filter_linear6 = true
scale_type6 = source
scale6 = 1.0

shader7 = ../anti-aliasing/shaders/smaa/smaa-pass1.slang
filter_linear7 = true
scale_type7 = source
scale7 = 1.0

shader8 = ../anti-aliasing/shaders/smaa/smaa-pass2.slang
filter_linear8 = true
scale_type8 = source
scale8 = 1.0

textures = "areaTex;searchTex"
areaTex = ../anti-aliasing/shaders/smaa/AreaTex.png
searchTex = ../anti-aliasing/shaders/smaa/SearchTex.png

shader9 = ../fsr/shaders/fsr-pass0.slang
filter_linear9 = true
scale_type9 = viewport
scale9 = 1.0
wrap_mode9 = clamp_to_edge

shader10 = ../fsr/shaders/fsr-pass1.slang
filter_linear10 = true
scale_type10 = source
scale10 = 1.0
wrap_mode10 = clamp_to_edge

parameters = "SMAA_EDT;SMAA_THRESHOLD;SMAA_MAX_SEARCH_STEPS;SMAA_MAX_SEARCH_STEPS_DIAG;SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR;SMAA_CORNER_ROUNDING;FSR_SHARPENING;FSR_FILMGRAIN;FSR_GRAINCOLOR;FSR_GRAINPDF"
SMAA_EDT = 1.0
SMAA_THRESHOLD = 0.05
SMAA_MAX_SEARCH_STEPS = 40
SMAA_MAX_SEARCH_STEPS_DIAG = 20
SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR = 2.5
SMAA_CORNER_ROUNDING = 50.0
FSR_SHARPENING = 0.1
FSR_FILMGRAIN = 0.3
FSR_GRAINCOLOR = 1.0
FSR_GRAINPDF = 0.3

Check out these circles:

6 Likes

thanks! i see alot of new line entries. what’s actually keeping them from being paired when a default user tries to pair them or other normal shaders?

1 Like

well, for SMAA, you need a specific pass alias that can only be set either in the preset or in the shader code itself (i.e., not in the menu), and SMAA also requires a reference texture, which must also be set in the preset (currently; HSM has talked about possibly adding references directly in the shader code). Beyond that, it’s just adding the passes in the right order and setting some parameters.

1 Like

I’m an outsider when it comes to topic like scalers in retro games, but coming from someone who is interested in 3d games that works with AMD FSR, would you recommend scalers like ScaleNx/Fx to 3d games?

1 Like

it should work fine on 3D games running at native res, but if you’re increasing the internal res, that will break the pixel pattern-detection algorithm.

3 Likes

is there anyway to get scalefx+raa+fast working with the new fsr+smaa? this would complete the look until something newer comes along.

this shader does not work well with the psx cores. the only one that works without issue is the xbrz multipass when the emu’s rez is above 1. Yet, all of the psx standalone emu’s work with xbrz type filters just fine. On my intel handheld, using any scalefx shader, when the emu is above 1x rez will result in a crash.

Oh dear, duck doesn’t like that One 8Bit :pleading_face: My favorite shader iam deeply in LUV :kissing_heart: with atm is called → 4xbr-hybrid-crt.
The “CRT” part however doesn’t play nice, unless i change all sorts cropp, resolution settings in ALL emulators/cores … Only then, i reap what i sow :smile: :ok_hand: , not sooner …

So iam lurking :eyes: this site to catch some one with an similar shader to try out :kissing_smiling_eyes: :ok_hand:

The shader shown by the original poster looks very nice though… I wonder how it would look with very thing scanlines :stuck_out_tongue:

cheers, TD