PCSX2 / pcsx2

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

Everybody's Golf / Hot Shot Golf Fore! texture/sprite 2D issues #3350

Open ghost opened 4 years ago

ghost commented 4 years ago

PCSX2 version: v1.5.0-dev-3389-g6e22efe79

PCSX2 options: Default, tried all GSDX hacks, all rounding/clamping modes.

Plugins used: Default that came with this version of pcsx2. SSE2, and AVX2 version of GSDX tested

Description of the issue: There are issues with 2D graphics in hardware mode, that include many backgrounds, selectors, face miniatures, etc.

Hardware: hardware

Software: software Additional info, can be irrelevant, but on debug builds (not dev) when screens with issue are displayed assert is triggered.

How to reproduce the issue: Fastest way is just start new game, and screen where you select save slot will have corrupted graphic. Same goes for player miniatures.

Last known version to work: None, didn't tested below 1.4.0

PC specifications: i5 4570, GTX1060 3GB, 8 GB ram

snaps.zip

MrCK1 commented 4 years ago

If I recall, this might've been a regression from after 1.4. I'll have to check sometime.

ghost commented 4 years ago

On 1.4 issue exist in every hardware mode. Same on latest 1.5.0, and on few randomly selected between 1.4.0, and latest. I will try later today some ancient builds, but i believe that never worked correctly in hardware mode.

ghost commented 4 years ago

I tested 0.94, 0.98, 1.1 (random), 1.3 (random), 1.4, and few 1.5.0 including latest. Only 0.94 show difference.

ZeroGS, notice that faces looks ok: zerogs

GSDX (still pcsx2 0.94), issue seems to look different. Faces are missing colors, and save slot number also look different, but not ok: gsdx0 94

I think at this point there is no sense to check other versions.

About that triggered assert on debug builds i mentioned in first post, here is screenshot from latest 1.5.0. Seems to be triggered every frame, excluding loading screens, and first push start menu. assert

So it hits this code: https://github.com/PCSX2/pcsx2/blob/18f772e71c459ea2ac74f51c0b33c2247ef0318a/plugins/GSdx/GSState.cpp#L1006

ps1freak26 commented 2 years ago

I found that old versions of gsdx have a sprite option that is gone in recent builds and setting that to half fixes the graphics in the save select and the course select. I tried finding a alternative setting in the recent builds and it doesn't work. The plugin is from 2016 I think judging by the name of the plugin.

refractionpcsx2 commented 2 years ago

Which "sprite option" are you referring to?

Also since this is a problem on the load save screen, it'd be nice if somebody provided a memorycard/save.

ps1freak26 commented 2 years ago

plugin It is just called sprite it's not align or merge sprite

ps1freak26 commented 2 years ago

plugin 2 plugin 3

ps1freak26 commented 2 years ago

This was the description of the sprite option: Helps getting rid of black inner lines in some filtered sprites. Half option is the preferred one. Use it for Mana Khemia or Ar tonelico for example. Full can be used for Tales of Destiny.

refractionpcsx2 commented 2 years ago

ok this is related to another issue we're tracking with HotShots where the alpha test is inaccurate for some reason, by hacking the alpha test I can make it look correct

image

Dirkocet commented 2 years ago

Do you know what to do to bring that menu up? I looks all over and can't find a "Hacks Configuration" on pcsx2

Dirkocet commented 2 years ago

Do you know what to do to bring that menu up? I looks all over and can't find a "Hacks Configuration" on pcsx2 just found it nvm I'm fucking stupid

refractionpcsx2 commented 2 years ago

Yeah sorry this isn't being fixed for a while, due to how Shaders work on GPU's and how we have to handle Alpha Testing, it's a bit of a catch 22 situation, so right now it's not possible to fix it.

Basically you can end up with these situations:

  1. we run early Z test passes but alpha test is fails = wrong value in Depth buffer (not good), correct pixels
  2. we run the Z test late, the alpha test passes but the Z test failed = wrong pixels (bad), correct depth

The only way to deal with this properly is to manually emulate the depth buffer so we can control the Alpha/Depth tests manually, but this will likely require an ROV (DX12 type thing) implementation.