-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kurohyou Ryu Ga Gotoku Shinshou (Yakuza) - No clipping of 3d characters behind backgrounds based on depth within screen. #9576
Comments
Does this work on any backend (such as Vulkan)? Is it the same broken on all 4 backends? Also - if you try the software renderer (it will be slow), does it render properly there? Is there a way to get this to happen in the demo? -[Unknown] |
All backends render incorrectly, including OpenGL, D3D9, D3D11, and Vulkan, tested on PPSSPP version 1.5.4. I tried the software renderer with the OpenGL backend, and it renders correctly with the characters correctly obscured by the foreground geometry in the scene. Screenshot shown below. I don't have a copy of the demo for this game so I can't say if it works in that or not. |
Interesting. I wonder if this game is downloading depth - I seem to recall it was doing that in other places for effects at the start of fights (we currently don't render those effects properly.) -[Unknown] |
Since the background is prerendered, it seems more likely that it's uploading a depth buffer, similar to how Star Ocean uploads a stencil buffer. We don't currently initialize depth buffers with contents of the VRAM where they are created, and we don't detect block transfers to them. Maybe the latter would catch this, that would be convenient. |
Is there an easy way to upload depth? I guess it ought to be doable on Vulkan... -[Unknown] |
Yeah, you can output depth from a fragment shader, like we do with our pixel depth rounding hack. So you just need to upload the depth as a texture (depth or single-channel color, whatever) and draw a single quad writing the sampled texture to gl_Depth or whatever the output is called. This is doable in all backends except D3D9 and GL with versions < 3. For those, I guess you could convert the texture to a dense triangle mesh with the correct depths but not really worth bothering with... |
This issue persists in the latest version of PPSSPP - ppsspp-v1.8.0-585. |
Still not fixed. |
Thanks for testing, but this will take some tricky work which is not done yet. |
Is this pr #14833 could possibly help this issue? |
Very doubtful. This is probably uploading depth as noted above, which isn't implemented yet in any backend. -[Unknown] |
I tested it and it doesn't fix the problem. Don't need to enable any options, right? |
Just like unknownbrackets says, it's an unrelated problem, which will need some major work on graphics emulation to fix. It's not possible to get it to work right now. |
Still not fixed. |
Fix coming up, needs testing: #15772 |
I changed how the fix works recently, are there still issues after FMV videos? |
It flickering. |
OK, thanks for testing. Can't close this yet then |
Here's the ge dump |
I think the flickering is a fmpeg issue and should be separated to this? |
Well the flickering shown in dante's video doesn't look like an ffmpeg issue. |
I think this is the flickering issue talk about here save state ge dump |
Its not really flickering on my phone but have a graphics glitch after finishing the cutscene Screenrecorder-2022-08-25-22-51-24-888.mp4 |
@Gamemulatorer is the glitch still happening? |
Not anymore using the latest build. Record_2022-09-16-17-40-39.mp4 |
Hm, in your video, still looks like a little flicker left of the square button? |
It's from my screen recorder |
It is still flickering, there is a person on the right, in front of whom there is an object and flickering is visible there. |
Ah, okay. Good that that one is gone, then. The little flickers... Dunno. Strange :/ Anyway, gonna consider this good enough for 1.4, moving further work to the next version. Maybe the tiny glitch will be fixed by something else. |
This broke again in #16150 . GE dump: Probably due to the trick it does where it reads a 565 buffer as depth, and we use some bits in the address to detect that, and those are normalized-away somewhere. I'll look into it. |
Fixed, my bad. |
I think we can probably close this now, and deal with any remaining bugs or artifacts separately, such as in #15956 . |
Kurohyo uses 2d backdrops with 3d characters rendered on top of them. PPSSPP does not clip the 3d model when they are "behind" objects in the 2d background. Tested on PPSSPP 1.4 but has not worked on previous versions of the emulator either.
The attached screenshot shows the character floating in space in front of some cupboards instead of being hidden behind them.
The text was updated successfully, but these errors were encountered: