pcsx2 icon indicating copy to clipboard operation
pcsx2 copied to clipboard

Need for Speed Hot Pursuit 2 "busted" screens are broken in HW mode

Open Silanda opened this issue 5 years ago • 12 comments

PCSX2 version: v1.5.0-dev-3085-gd36d33daa

PCSX2 options:

Default speedhacks etc. None seem to have any effect on this issue.

Plugins used:

Current development build of GSdx at time of posting. The problem occurs only in hardware mode, in both the OpenGL and DirectX renderers. None of the options seem to allow for correct rendering of the bugged effect.

Description of the issue:

The in-game scenes where you are busted by the police in Hot Pursuit mode do not render correctly. What is supposed to be rendered is a black and white CCTV-like image of the cop pulling you over. However, what actually gets rendered are scenes where the polygon models are visible with some shading, however, no textures are present. Software mode works fine.

gsdx_20190426160701

gsdx_20190426154746

It's probably also worth noting that VRAM usage during these scenes spikes sharply. At 3x IR, usual VRAM usage during the game is about 1.2GB. When a busted scene happens it goes up to ~3.5.

GS Dumps attached.

NFSHP2Busted.zip

How to reproduce the issue:

Play Hot Pursuit mode using a hardware renderer, get busted.

Last known version to work:

None, as far as I know. The same happens in 1.4 but with additional problems that have recently been fixed.

PC specifications:

i5 3570k, 16GB RAM, Nvidia GTX 1080, Windows 10

Silanda avatar Apr 26 '19 15:04 Silanda

T:Oth	ID:994	S:Cache	=> TC depth: dst Depth hit: 13 (0x2000, Z_16)
T:Error	ID:994	S:Mid	=> First vertex is  P: 128 => 256    T: 8 => 136
T:Error	ID:994	S:Mid	=> Color shuffle G => A
T:Oth	ID:995	S:Cache	=> TC: Lookup Target(Color) 1280x1024, miss (0x800, C_16)
T:Oth	ID:995	S:Cache	=> TC depth: ERROR miss (0x2800, Z_16)

Interesting part is the depth error miss, looks like that case isn't supported yet. https://github.com/PCSX2/pcsx2/blob/ead3d21bdbc850e5fc0a6fc365e1b6148bf5036a/plugins/GSdx/Renderers/HW/GSTextureCache.cpp#L172

lightningterror avatar Apr 26 '19 16:04 lightningterror

No. We need to skip the draw. However we need to know if previous draw was an half bottom case.

gregory38 avatar Apr 26 '19 16:04 gregory38

I tested the gs dump and cpu sprite render size fixed the cutscene setting it to 1 fixed it.

ps1freak26 avatar Sep 08 '22 16:09 ps1freak26

huh is that enough live? On a GS dump the screen stays blank (apart from the text) unless you toggle software and back. but if it works on the actual game, then cool! We can add that to the gamedb :)

refractionpcsx2 avatar Sep 08 '22 16:09 refractionpcsx2

Yeah I switched to software then hardware and is fixed but I did see the black screen when I started with hardware I tested both dumps.

ps1freak26 avatar Sep 08 '22 16:09 ps1freak26

That's promising, but I'm more interested in how it works on the actual game.

refractionpcsx2 avatar Sep 08 '22 16:09 refractionpcsx2

I don't have the game but someone else does I'll see if it works for him.

ps1freak26 avatar Sep 08 '22 16:09 ps1freak26

It doesn't work in game. A flickery busted screen comes up that doesn't display any moving graphics apart from the flicker. It's possible it's only displaying the first frame after things go black and white because if I switch to software and back it correctly displays two frames alternating, but I believe only the two frames that were rendered immediately before I switched back.

Silanda avatar Sep 08 '22 18:09 Silanda

What a shame, oh well.

refractionpcsx2 avatar Sep 08 '22 18:09 refractionpcsx2

Does it work when you switch from hardware to software to hardware like Burnout 3's sky?

ps1freak26 avatar Sep 08 '22 19:09 ps1freak26

No, not really. It's like I said, when I switch back to hardware mode it only shows two frames rapidly alternating.

Silanda avatar Sep 08 '22 19:09 Silanda

Burnout is a different issue, it does processing during loading which is what broke) where NFS seems to be fixed as soon as you switch to software.

Something else is going on

refractionpcsx2 avatar Sep 08 '22 19:09 refractionpcsx2

Attaching one of the draws in question, since I kinda cheat fixed this (mostly) temporarily, so I was dumping the draws to see if I could save it. But it looks like the game does a series of draws in page increments, mostly a 16bit->16bit copy on a 32bit target. lots of stuff going on here to easily confuse the texture cache.

NFSHP2 Draws.zip

refractionpcsx2 avatar Oct 27 '22 18:10 refractionpcsx2

Looks to still be active as of 1.7.4871

MrCK1 avatar Aug 05 '23 03:08 MrCK1