pcsx2
pcsx2 copied to clipboard
Need for Speed Hot Pursuit 2 "busted" screens are broken in HW mode
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.
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.
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
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
No. We need to skip the draw. However we need to know if previous draw was an half bottom case.
I tested the gs dump and cpu sprite render size fixed the cutscene setting it to 1 fixed it.
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 :)
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.
That's promising, but I'm more interested in how it works on the actual game.
I don't have the game but someone else does I'll see if it works for him.
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.
What a shame, oh well.
Does it work when you switch from hardware to software to hardware like Burnout 3's sky?
No, not really. It's like I said, when I switch back to hardware mode it only shows two frames rapidly alternating.
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
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.
Looks to still be active as of 1.7.4871