hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.43k stars 2.19k forks source link

Camera stuck in wall in some cutscenes in GTA Vice City Stories #12060

Open kermittheforg opened 5 years ago

kermittheforg commented 5 years ago

What happens?

Some cutscenes in GTA Vice City Stories have the camera seemingly stuck in the wall at certain camera angles, causing the entire screen to be covered by one color. This also covers the subtitles.

Video evidence.

What should happen?

The cutscene should be shown as normal and the subtitles should be visible.

Video evidence.

What hardware, operating system, and PPSSPP version? On desktop, GPU matters for graphical issues.

GTX 1070 i5-7600k @ 3.80GHz 16 GB DDR4 RAM Windows 10 Home 64-bit v. 1709 build 16299.1087

The issue occurs on PPSSPP v 1.8.0 The issue does not occur on PPSSPP v 1.5.4

Tested on both Vulkan and OpenGL and changing backend did not cause/fix the issue.

VCS Dumps.zip

KrossX commented 5 years ago

Same here, using D3D11 renderer. Changing the renderer to OGL seems to render the scene fine (using savestates) but no change with D3D9. I'll switch to the OGL renderer in case it happens with it.

Radeon HD5770, Windows 7, PPSSPP v1.8.0

vcs_dumps.zip First file looks weird, but second one looks like what happened ingame.

unknownbrackets commented 5 years ago

Hm, the dump seems to contain multiple frames. This may indicate the game is drawing too fast.

Anyway, by 457/2546 it finishes drawing the outside, the buildings outside, and then the room. The draw at 458/2546 covers the screen in black, and then the people don't draw on top of this. It only happens on backends which have depth clamping, so it's likely related to that.

At 849/2546, it starts drawing the frame from scratch, repeats at 1306, and the scene is redrawn three times in the dump. I wonder if that happens on a real PSP...

The bad draw has:

Software renderer doesn't have the problem, and I thought it was handling clamping right now. It does seem like, based on these settings, this should clamp the depth...

Even if this draw is skipped, later draws cause the same problem.

The dump does render properly on a real PSP:

ULES00502_#12060_gta_camera

-[Unknown]

ghost commented 5 years ago

Something similar happens on Android, but in principle (I haven't advanced in the game's history yet) it only happens when you enter the garage.

PPSSPP_2019-06-24-12-10-57 PPSSPP_2019-06-24-12-11-05 PPSSPP_2019-06-24-12-11-18

NABN00B commented 5 years ago

This happens in a lot of places in GTA LCS, GTA VCS and even The Warriors (but I wouldn't be suprised if other titles were affected as well).

In VCS during a cinematic (motion capture cutscene) the camera even moves inside the head of a character, resulting in a sudden jumpscare effect as seen in the video below. (Beware, it's scary.)

https://clips.twitch.tv/ClearAmusedShingleCorgiDerp

Hoping for a fix in the future.

TAbdiukov commented 5 years ago

seems like GTA LCS is also affected, plenty of proof online. Iirc, in earlier versions of the emulator (0.9.x), there was no such issue.

Suggestion: Rename issue to: Camera stuck in wall in some cutscenes in GTA LCS and VCS

Edit: Found evidence! Check this video at 11:06 Edit2: Removed bloaty posts to avoid drama upon misunderstanding

NABN00B commented 5 years ago

Iirc, in earlier versions of the emulator (0.9.x), there was no such issue.

v0.9 didn't have any of the graphical backends that suffer from this problem, only OpenGL - which even today doesn't.

NABN00B commented 5 years ago

My post on July 27 already stated that this glitch affects multiple games, including LCS. In my last post I stated that OpenGL backend doesn't suffer from this glitch. Given that unknownwbrackets already investigated the issue and uncovered the possible cause it is safe to say that developers are well aware. Either play with OpenGL or wait until it's fixed. I'm going to stop responding to you, unless I have anything new to add to this discussion.

Abhimanyu485 commented 3 years ago

Change your setting from vulcan to open gl It worked for mw

unknownbrackets commented 3 years ago

This is caused by negative pre-viewport Z, and would be fixed by the rules noted in #12058.

-[Unknown]

unknownbrackets commented 3 years ago

It was noted that this is technically a regression for v1.12.0 because depth clamp is enabled in OpenGL now, but it previously worked in the backend only under v1.11.x due to not allowing depth clamp.

-[Unknown]

hrydgard commented 3 years ago

I'm hoping to get 1.13 out a lot faster than 1.12, which will include your clipping fix, so maybe we can live with it for just a little while. It's not game breaking.

ghost commented 2 years ago

Something is wrong on GTA Vice City using the latest build https://github.com/hrydgard/ppsspp/commit/c02ce03267285eec8d68cf61f7cb42d919be7e17 NVM it was fixed by https://github.com/hrydgard/ppsspp/commit/bb6919ebcb1b849276eebf6db6c01bc80cb4300f

Tested in OpenGL only Screenshot_2022-09-23-17-39-25-75 Screenshot_2022-09-23-17-39-32-12

NABN00B commented 2 years ago

The depth clamping changes of v1.13 fixed this (apart from Direct3D 9).