Integer Scaling from non-4:3 resolutions in higher resolutions.

I decided to discuss about integer scaling on higher resolutions as well as around 1080p scaling. As some of you might know, integer scaling on retro games is needed to not have distorted or non-even pixels that makes the moving of the screen flicker or have any artifacts. Consoles like SNES or ms-dos have odd resolutions that would let CRT fill the whole screen as it doesn’t have pixels. To have their resolutions fixed close to 4:3 ratio with nearest scaling, we must see the results of how much scaling it can do on the target resolution. 480p will be included for these results to see how it fits with integer scaling, even though in most cases, 480p and above shouldn’t have integer scaling.

Here are the aspect ratio of common ones:
4:3 (1.333)
5:4 (1.25)
16:10 (1.6)
16:9 (1.778)

Retro consoles and OS: Dos VGA 9h 320x200 16:10 (1.6) NES 256x240 (1.067) SNES 256x224 (1.142) Genesis 320x240 (1.428)

For an integer scaling to perform aspect ratio correction to get as close to 4:3 (1.333). Certain consoles can get away with cropping like NES.

On either 1680x1050 or 1920x1080:
VGA 9h 320x200= 1280x1000 (1.28) X=4x Y=5x
240p 320x240= 1280x960 (1.333) 4x
SNES 256x224= 1024x896 (1.142) 4x, 1536x1120 (1.371) X=6x Y=5x (Crop)
NES 256x240= 1280x960 (1.333) X=5x Y=4x
Genesis 320x224= 1280x896 (1.428) 4x
SMS 256x192= 1280x960 (1.333) 5x
480p 640x480= 1280x960 (1.333) 2x

1200p:
VGA 9h 320x200= 1600x1200 (1.333) X=5x Y=6x
240p 320x240= 1600x1200 (1.333) 5x
SNES 256x224= 1536x1120 (1.371) X=6x Y=5x
NES 256x240= 1536x1200 (1.28) X=6x Y=5x
Genesis 320x224= 1600x1120 (1.428) 5x
SMS 256x192= 1536x1152 (1.333) 6x
480p 640x480= 1280x960 (1.333) 2x

1440p:
240p 320x240= 1920x1440 (1.333) 6x
VGA 9h 320x200= 1920x1400 (1.371) X=6x Y=7x
SNES 256x224= 1792x1344 (1.333) X=7 Y=6
NES 256x240= 2048x1440 (1.422) X=8 Y=6 or 1792x1440 (1.244) X=7 Y=6, both are tied to 4:3 and off by (0.888).
Genesis 320x224= 1920x1344 (1.428) 6x
SMS 256x192= 1792x1344 (1.333) 7x
480p 640x480= 1920x1440 (1.333) 3x

4k 2160p
240p 320x240= 2880x2160 (1.333) 9x
VGA 9h 320x200= 2560x2000 (1.28) X=8x Y=10x
SNES 256x224= 2560x2016 (1.269) X=10x Y=9x
NES 256x240= 2880x2160 (1.333) X=11x Y=9x
Genesis 320x224= 2560x2016 (1.269) X=8x Y=9x
SMS 256x192= 2880x2112 (1.333) 11x
480p 640x480= 2560x1920 (1.333) 4x

5k 2880p:
240p 320x240= 3840x2880 (1.333) 12x
VGA 9h 320x200= 3840x2800 (1.371) X=12x Y=14x
SNES 256x224= 3584x2688 (1.333) X=14x Y=12x
NES 256x240= 3840x2880 (1.333) X=15x Y=12x
Genesis 320x224= 3520x2688 (1.309)X=11x Y=12x
SMS 256x192= 3840x2880 (1.333) 15x
480p 640x480= 3840x2880 (1.333) 6x

In conclusion, higher resolution does better with aspect ratio and have the scaled resolution closer to fit the screen. 5k, 1440p, and 1200p (except on 480p) have those resolutions fit closer to the screen. From 1200p, a lot of those native resolutions will scale more closer to the screen. A resolution that doesn’t end with a zero like SMS scales better from 1200p onwards. Non integer scale on higher resolutions may be less noticeable with uneven pixels that would cause distortion on motion parts. Maybe a 5k or higher may not notice it at all. Genesis couldn’t have aspect ratio fixed on any resolutions with integer scale, except 5k and 4k to an extent. 5k does a better job having it very close to 4:3 ratio. Though, since the native resolution is closer to 4:3, unlike SNES or other consoles, you can get away without aspect ratio fix. For 480p, I just want to test to see if those resolutions can fit well for 480p with integer scaling. 4k and 1200p and below won’t fit completely. 480p scaling on 4k is similar to 240p on 1080p. Although, it is recommended to use bilinear scaling from 480p and onwards to a target resolution, a very few cases can make certain games look good with integer scaling, like Simcity on Dos or some old Mac games since they are very less detailed. Also if you use full screen and emulating an OS like Windows 3.1 or 95 and have resolution set to 480p. Let’s discuss about interlaced or high res modes on Genesis and SNES. On SNES, it can do 512x448i at maximum, but interlaced mode are more rare than high res mode like Seiken 3 or Kirby. It may not matter if you want even scaling on X and Y scaling. 5k will do better on any resolutions from SNES and 4k and 1200p should do fine with high res mode, but then again, those hybrid resolutions are rare. For Genesis, we only have interlaced mode that doubles the height. It is found on Sonic 2 with two player mode. It depends if you have settings for single or both fields in interlaced mode, but single field seems to be recommended. Double field can show a bit more static detail. MS-DOS looks better with fixed aspect ratio correction from 1080p and onwards. 1200p seems to look the best with integer scaling and fits well while the rest are close and close to aspect ratio to 4:3. If you want to scale any of those resolutions to fit the screen while keeping the pixel sharpness, use pixellate shader, sharp bilinear shader, or qulizz shader from Retroarch. On Dosbox, you can either have the filter set to normal3x or higher if using custom builds, which will scale low resolution with nearest scaling, then scale with bilinear to fit the screen while using completely bilinear on higher resolutions, or if you are using a build with pixel perfect patch like ECE build does, then set render to surfacenp and it will scale any resolutions to fit the screen with nearest scaling with minor bilinear, but may not be noticeable on newer resolutions.