Skip to content
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

Hayate no Gotoku!! Nightmare Paradise - characters show through background #17878

Closed
5 tasks done
IrfanH495 opened this issue Aug 9, 2023 · 4 comments · Fixed by #18478
Closed
5 tasks done

Hayate no Gotoku!! Nightmare Paradise - characters show through background #17878

IrfanH495 opened this issue Aug 9, 2023 · 4 comments · Fixed by #18478
Labels
Depth Texture An effect needs texturing from depth buffers.
Milestone

Comments

@IrfanH495
Copy link

Game or games this happens in

ULJM05416 - ハヤテのごとく!!ナイトメアパラダイス

What area of the game

At the beginning when all the characters scatter
OpenGL & Vulkan
Screenshot_20230809-231524_PPSSPP
Screenshot_20230809-231534_PPSSPP
Screenshot_20230809-231542_PPSSPP

What happens

this is taken from software rendering
Screenshot_20230809-232350_PPSSPP

What should happen

.

GE frame capture

ULJM05416 (1).zip

Platform

Android

Mobile phone model or graphics card

Samsung M20

PPSSPP version affected

ppsspp-v1.15.4-923-g50ea506b6-android

Last working version

.

Graphics backend (3D API)

Vulkan

Checklist

  • Test in the latest git build in case it's already fixed.
  • Search for other reports of the same issue.
  • Try resetting settings or older versions and include if the issue is related.
  • Try changing graphics settings to determine if one causes the glitch (especially speed hacks or enhancements/replacements.)
  • Include logs or screenshots of issue.
@hrydgard
Copy link
Owner

hrydgard commented Aug 9, 2023

Ha, took me a while to see what's wrong - it's the background characters somehow showing through the background.

Probably another fun depth-buffer-manipulation case...

@hrydgard hrydgard added this to the v1.17.0 milestone Aug 9, 2023
@hrydgard hrydgard added the Depth Texture An effect needs texturing from depth buffers. label Aug 9, 2023
@hrydgard hrydgard changed the title Hayate no Gotoku!! Nightmare Paradise Hayate no Gotoku!! Nightmare Paradise - characters show through background Aug 9, 2023
@IrfanH495
Copy link
Author

@hrydgard sorry, is this normal?
Debug Stats blocking menus
https://youtu.be/EBvgjGN42jc

@hrydgard
Copy link
Owner

I wanted to show a different type of debug stat on top of menus (frame timing) so I enabled that. You're right that those debug stats don't make much sense to overlay on menus, and I'm gonna fix that.

@hrydgard
Copy link
Owner

hrydgard commented Dec 5, 2023

OK, finally got around to looking at this.

From the dump, it uses 32-bit color, framebuffers at VRAM offsets 00000 and 88000, depth at 110000, this is standard. After filling the color buffer with a background image, it uses a block transfer to initialize a precomputed depth buffer:

image

Fortunately it does the transfer to a "auto-swizzling" VRAM address (04600000, note that 04710000 = 04600000 + 110000), so probably the source of the copy is a plain depth image and not something pre-swizzled.

We currently do not handle block transfer copies from RAM to depth buffers, but adding that will not be particularly difficult. We can be pretty restrictive, for example requiring the swizzled VRAM address.

hrydgard added a commit that referenced this issue Dec 5, 2023
Reuses the existing compat flag BlockTransferDepth.

I do aim to remove that compat flag in the future, it's probably not
even necessary here, it's just that general depth block transfers were
already gated on it.

Fixes #17878
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Depth Texture An effect needs texturing from depth buffers.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants