987123879113 / pcsx2

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

[BUG]: Edges of video are cropped in non-31kHz mode #6

Closed 987123879113 closed 2 years ago

987123879113 commented 2 years ago

A few months back something changed in upstream in the graphics emulation code that causes the video to be cropped differently. Should go back and try to pinpoint what it was exactly and revert that change specifically.

Screenshots were made using the internal screenshot tool/F8.

Correct (taken using 133f40c): gs_20220809032928_Booting PS2 BIOS

Broken: gs_20220809031607_Booting PS2 BIOS

987123879113 commented 2 years ago

Notes so I don't redo work: Bug does not exist 95cb7968f30c2f9b6a15a917b4df77875832cee3 March 1st Bug does not exist 67e83a647d024316ac017c9ec939a746480e7962 April 3rd Bug does not exist 211472e2d3cab33478b4ba754645312bf40209a0 April 14th Bug does not exist 133f40c099535f609351e85afe349f2113105b4f April 15th Bug exists e96e75673ed4419f770383032cedf0a11dc2c38a April 16th Bug exists f7946f90685e3ca3fbbaa3a67dc36530f63fc1e2 April 16th Bug exists 12052536354461f64a3f8ab8fecb6d14110c4401 April 18th Bug exists c24ecdcdf89a0d535911647561515d42730753da May 8th

987123879113 commented 2 years ago

Looks like this is the PR that broke things. https://github.com/PCSX2/pcsx2/pull/5810

Enabling "Screen offsets" as mentioned in the PR makes things look worse, cutting off all sides now (except maybe the right?): gs_20220809034432_Booting PS2 BIOS

Enabling "Show overscan" fixes the issue as long as "Screen offsets" is off: gs_20220809034525_Booting PS2 BIOS

Enabling "Screen offsets" and "Show overscan" is a mess + the bottom is still cut off: gs_20220809034544_Booting PS2 BIOS

Before the PR, the showed that it is rendering at 640x478. After the PR it shows it is rendering at 640x448.

With the 31kHz flag on the P2IO set, the game will boot in 640x480. "Show overscan" has no effect on the screen in that mode. 640x480, show overscan disabled: _KNAC00001_20220809035155

640x480, show overscan enabled: _KNAC00001_20220809035116

640x480, screen offsets enabled + show overscan disabled: _KNAC00001_20220809035228

640x480, screen offsets enabled + show overscan enabled: _KNAC00001_20220809035247

Not really qualified to say what code exactly is right or wrong, but show overscan always being enabled + screen offsets always being disabled seems to always be the best configuration for Python 2 games. Will update setup guide and troubleshooting guide with this info.