I’m assuming that I’ve done a horrible job of explaining myself thus far and decided to start a new topic to try to address this issue. Apologies if I’m just needlessly repeating myself, but I think this issue deserves some attention and I’m not sure of the best way to go about this.
Problem: choosing “integer scale” still results in scaling artifacts with PSX emulators, occasionally. Choosing integer scale and setting a custom AR should completely eliminate scaling artifacts at all times; this is the expected behavior from choosing integer scale. The problem is that PSX games use multiple resolutions and will sometimes switch resolutions mid-game, on the fly.
Using the example of FFVII, the game switches from a resolution of 320x240 to 320x224 when displaying the overworld screen. Currently, if the user selects integer scale ON and sets it to 5x5, then the custom AR is always 1600x1200, regardless of the game’s current resolution. When the game switches to a resolution of 320x224, it still gets scaled to 1600x1200, which results in scaling artifacts on the Y axis.
To solve this, we need “automatic custom aspect ratio switching.” Instead of just taking 320x240 and scaling it by the user-selected integer scale factor, Retroarch should automatically detect the current resolution of the game, and automatically adjust the custom aspect ratio accordingly. Returning to the example of FFVII, enabling “automatic custom aspect ratio switching” and selecting an integer scale factor of 5x5 should cause the aspect ratio to automatically switch to 1600x1120 when the game switches to the overworld screen, then automatically switch back to 1600x1200 when the game’s resolution switches back to 320x240. This would ensure pixel perfect output at all times.