Customisable downsampling for ReShade by PthoEastCoast and _aitchFactor
This fork of DownsampleSSAA was designed for use with N64 ports like Ship of Harkinian and 2Ship. The blur factor calculation has been retuned to leave integer scaled images unblurred at the default setting (1.0) while anti-aliasing everything else. However, some finagling is required for best results:
- Sampling offsets need to be aligned correctly.
- The downsampled resolution has to be the same as the intended display resolution of the integer scaled content.
- The output resolution should be an integer scale of the original resolution. (Otherwise, slight blurring will occur.)
Additional settings have also been added for use with CRT filters like Sony Megatron - particularly, separate options for horizontal and vertical up/down-sampling. My favourite setting so far is to downsample vertically, keep the horizontal resolution native but blur it to the same clarity as the original resolution. Unnecessarily complex? Maybe. But it's worth it to me. See the included presets for a couple of examples, although keep in mind that they are intended for 1440p display of 240p content.
Nearest neighbour
No downsampling

CRT setup with Sony Megatron

It is deceptively hard to make Dolphin output pixel-perfect video (The GameCube and Wii themselves natively outputted non-square, non-aligned pixels). Without additional ReShade shaders, it doesn't seem possible to have perfectly clean, nearest-neighbour scaled pixels that are correctly aligned to DownsampleSSAA, since the various nearest-neighbour-like scaling options also force a non-integer scale on the output. However, for a cleanly scaled output that matches the resolution of your monitor (allowing aligned, anti-aliased output with DownsampleSSAA) I was able to get satisfactory results with a monitor with an integer scale resolution of 480p (mine is 1440p) and the following settings:
- Post-Processing Effect set to
integer_scaling, with "Use non-integer width" and "Scale width to fit 16:9" enabled. - Output Resampling set to Default. (All other options seemingly override the
integer_scalingeffect.) - Once the above two settings are set, change Internal Resolution to the largest size that fits on your display.
- Set DownsampleSSAA's
VerticalResolutionto 480 andVerticalBlurto 1. - Set
HorizontalResolutionto the width of your display. - Set
Horizontal Blurto the scale of your display relative to 480p, or higher if you prefer.
You can expect the results to look like this. The black border is normal, since many games internally render fewer than 480 horizontal lines.

Note that I have only so far tested games with widescreen support. Non-widescreen games likely require different settings.