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.

Home Page:https://www.ppsspp.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mini-Map in Z.H.P. Updates Incorrectly Without Software Rendering

vencabot opened this issue · comments

What happens?

In Z.H.P. Unlosing Ranger vs Darkdeath Evilman, a mini-map on the left side of the screen is constantly updated in dungeons as the player exercises tile-based movement on two available axis: north-south and east-west. When software-rendering is toggled, the mini-map updates as normal. When software-rendering isn't toggled, the mini-map only updates when the player character moves on the north-south axis and is static when he moves east-west, showing him in the incorrect position until he moves north-south again.

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

I'm on a fully updated Windows 10 installation, but this bug is also mentioned as being present on Android at https://www.reddit.com/r/EmulationOnAndroid/comments/k4pc4z/need_help_with_a_psp_game/ . I'm running the nightly build 1.10.3-g5babc1af2 but I also tested on the stable release of 1.10.3. Same issue. I'm running an NVIDIA GTX 1080 running driver 436.15 . The issue is present when rendering using both Vulkan and Direct3D 11.

I can provide a save-state upon request. I intend to upload footage of this bug in a day or two and will update this Issue with a YouTube link at that time.

If you have any suggestions, please let me know.

[EDIT]
@Panderner helped me create two GE dumps: one representing what the mini-map SHOULD look like at a particular position (software renderer) and one demonstrating the bug at the same position using the hardware renderer. I also uploaded a 3-minute video to YouTube demonstrating the issue.

Software renderer (good frame): https://drive.google.com/file/d/1tGtJg6qjhYHnp2wHbDsdbfpNPNjKerGd/view?usp=sharing
Hardware renderer (bad frame): https://drive.google.com/file/d/1RFylVHLEqBbXWLWxP4S1EMhubaqLmjT5/view?usp=sharing
Demonstrative video: https://www.youtube.com/watch?v=pqoAPQxV0GY
Savestate used in video: https://drive.google.com/file/d/1T0kJitKbOqYdRvoMy9Sbf9K43bGF3qo8/view?usp=sharing

@vencabot can you produce the GE dump?

@vencabot can you produce the GE dump?

I don't know what this means, but I'd be happy to with some instruction. My apologies, and thank you.

@vencabot can you produce the GE dump?

I don't know what this means, but I'd be happy to with some instruction. My apologies, and thank you.

https://github.com/hrydgard/ppsspp/wiki/How-to-create-a-frame-dump here

@vencabot can you produce the GE dump?

I don't know what this means, but I'd be happy to with some instruction. My apologies, and thank you.

https://github.com/hrydgard/ppsspp/wiki/How-to-create-a-frame-dump here

Thank you so much, @Panderner . Attached here are two GE dumps created using the instructions you linked. One is taken while running the Software Renderer, where the mini-map has updated as normal. The other is taken from the same in-game position but with hardware rendering, where the mini-map is incorrect. I've also attached an (unlisted) YouTube video demonstrating the problem. Please forgive my misspeaking "northeast" as "northwest" and forgive me for forgetting to hide my silly stream overlay (little bar on top).

Software renderer (good frame): https://drive.google.com/file/d/1tGtJg6qjhYHnp2wHbDsdbfpNPNjKerGd/view?usp=sharing
Hardware renderer (bad frame): https://drive.google.com/file/d/1RFylVHLEqBbXWLWxP4S1EMhubaqLmjT5/view?usp=sharing
Demonstrative video: https://www.youtube.com/watch?v=pqoAPQxV0GY
Savestate used in video: https://drive.google.com/file/d/1T0kJitKbOqYdRvoMy9Sbf9K43bGF3qo8/view?usp=sharing

The issue here is that the texture is just the right size, and the changes are just the right zero-sum, that these updates don't even register in the texture hash. We completely miss that the texture changed at all.

-[Unknown]

I apologize if this isn't appropriate for a thread like this, but as this issue has just closed I wanted to express my gratitude and admiration for you guys. Thank you for the assistance with producing the GE dumps. I'm shocked that the cause of the issue was identified so quickly. To have such a weird bug in a relatively obscure game be addressed in about a week is mind-blowing, and I'm not surprised that, this week having been my first experience with this emulator, I've found it so reliable, user-friendly, and empowering to use.

Thanks for the passion that you guys put into this project! The PSP is one of those consoles that didn't make as big of a mark in the west as it might've deserved, and I'm concerned that its library is at higher risk of being forgotten than some other modern platforms. Knowing that so much dedication is being given to this project is a relief insofar as games preservation is concerned!

Good luck with future development! Shutting up now.