PCSX2 / pcsx2

PCSX2 - The Playstation 2 Emulator
https://pcsx2.net
GNU General Public License v3.0
11.37k stars 1.58k forks source link

(GSwindow) Bad fullscreen scaling. Vertical stretch and Zoom-In hotkeys are not precise. #3471

Closed Elias312 closed 1 year ago

Elias312 commented 4 years ago

PCSX2 version: v1.6.0 PCSX2 options: Safest preset/DX11 renderer or software/Native Internal resolution or 2x/Nearest neighbor texture filtering/Fullscreen bilinear filtering disabled

Description of the issue: Can't achieve good fullscreen scaling on my display (1600x900). Pixel aspect ratio (PAR) isn't equal to 1:1 across the screen and pixels are not equally squared vertically and horizontally. Games I play are mostly 640x448, so it should be a perfect fit for a 900p display at 1280x896 resolution with an integer 2x2 pixel size, but it's not. I tried the zoom function and hotkeys to change the vertical size of the image and it's getting closer to how it should be, but not really. You can see the artifacts on the test pattern. alt text In games it's the same alt text One click is not enough, two is too much. Those hotkeys aren’t precise. In a default zoom state and without vertical stretching it's even worse both vertically and horizontally. https://i.imgur.com/R4oaWsz.png https://i.imgur.com/cmGmfYq.png https://i.imgur.com/ndcfLM2.png I know the proper solution for this scaling issue is to implement integer scaling, but you never finished the code, so how about to increase the resolution of steps you can zoom in/out and stretch the image? It should be easier...

How to reproduce the issue: You need a 448p test patterns and LbFn.elf homebrew. I can share my USB disk image with them for you. test patterns.zip LbFn.elf can open .jpg and .png files from usb and change PS2 resolution on the fly. To run it you need to launch uLaunchELF first and then execute LbFn from the usb image, test images are already put in the USB disk image for USBqemu plugin.

refractionpcsx2 commented 2 years ago

I believe this is fine now?

This is the results of the horizontal, the wave pattern you can see is from interpolating to my window size (for some reason integer scaling wouldn't kick in for me)

image

Edit: nope it's not

did full screen with integer upscaling and it's still off

image

stenzek commented 1 year ago

Irrelevant these days since GSWindow is long gone.