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.39k stars 2.19k forks source link

Lunar Silver Star Harmony - sprite issue on Galaxy S8+ #9645

Closed ViRALiC closed 6 years ago

ViRALiC commented 7 years ago

The following issue only occurs on PPSSPP on my Android device (and only MY android device according to other sources).

I am using version 1.4-2-g647bc5d of PPSSPP, but have also tried it out on the "stable" 1.4 from the play store. I also attempted once with version 1.3.0.1 just to be sure I had the entire spectrum covered.

My device is a Samsung Galaxy S8+ running Android 7.0.

My sprite issue looks as follow: https://www.dropbox.com/s/z8w3hw0q9dfulq2/PPSSPP_2017-04-26-22-42-54.png

A more text-based description of my issue would be that some of the 2D sprites seems to be acting up. The biggest issue is the sprite in the middle of the screen which is clearly distorted and looks split in half.

The way this is suppose to look is as you can see around the 1:08 marker here: https://youtu.be/aGR6o6d2KTQ?t=68

My settings are always the default that the emulator comes with right out of the box, as my knowledge is rather limited and for most games it seems to work. The only alteration I've attempted is to turn off my "Vertex cache" as a friend of mine said that might help. It did not.

I have deleted the PSP folder multiple times, and done each installation of each version as "cleanly" as possible.

Please ask if there is any further information you need.

PS: Speed is just fine and as far as I can tell the game doesn't actually crash anywhere.

hrydgard commented 7 years ago

If you go to Settings / Tools / Developer Tools and switch the CPU backend to Interpreter, does things change? (other than getting slower..)

ViRALiC commented 7 years ago

Thanks for the reply Henrik.

Sadly though, no, that did not change anything.

I also assumed you mean "CPU Core" when you say "CPU backend"? I set it to "Interpreter" and completely existed the application, the restared, made sure the setting was set then tried to boot the game normally without loading savestates or anything fancy like that, and the problem still prevailed.

I also tried the "IR Interpreter" in the same maner without anything changing (except the performance hit you talked about).

hrydgard commented 7 years ago

Yes. Just trying to rule out causes, it could be an ARM64 jit bug for example, but now we know it's probably not. Thanks for testing that.

ViRALiC commented 7 years ago

No worries mate.

I thought I'd be clever and see if I could get it all looking nice through Software Rendering, and then loading a savestate (I couldn't reach the point in the game where the sprite broke without the on-screen controls so it was the only way I could think of reaching said screen) to check, and to my surprise that did actually work and render the sprite correctly.

Of course the game's unplayable in Software Rendering as I have no on-screen controls and we're in the single-digits FPS-wise but maybe the fact that it worked in Software Rendering tells someone something.

hrydgard commented 7 years ago

Yup, that tells us it's definitely not CPU emulation related, but a bug in the OpenGL renderer somewhere, or in the driver.

ViRALiC commented 7 years ago

Oh, alright. Glad someone's getting wiser here because I'm certainly not (hehe!).

Is there anything more I should/could try to overcome this issue, or do I just cross my fingers and hope this bug gets squashed at some point?

If this is the last reply needed from me for this issue I just wanna' thank you for such a cool emulator man. That gold icon is totally worth the cash!

hrydgard commented 7 years ago

I'm getting an S8 soon (international version with Mali GPU) so if this is something specific to that one and affects more games I might figure it out, who knows.. Otherwise this seems like a tricky one. The other option is if you could test some even older versions to see if there's a version that doesn't have the problem - if so we might be able to narrow it doen.

ViRALiC commented 7 years ago

I'll star pedaling back through the versions then and givr a nudge here if I find one without the issue.

(On an unrelated note the S8 is a great phone!)

unknownbrackets commented 7 years ago

FWIW, when it draws the character in the center (the one wrapping weirdly):

When it draws the stretched portrait:

My guess: this is somehow UV scale/offset related? But I'll note that all of the characters (even the working ones) are drawn with UV scale/offset.

-[Unknown]

brujo5 commented 7 years ago

@hrydgard I change my s8 exynos for the snapdragon variant. Exynos Was to slow in emulation and no full ES 3.2 support Lack this features and arm Mali devs don't care emulators OES_base_vertex (required by 3.2) and EXT_buffer_storage

hrydgard commented 7 years ago

This appears to also affect a speech bubble in LocoRoco. Strangely, only in OpenGL, not Vulkan. Pretty sure it's a driver bug.

unknownbrackets commented 6 years ago

Is anyone running the beta updates for Android 8.x? If yes, does it happen there? If no, I guess we should check in again after 8.0 or higher is released?

-[Unknown]

unknownbrackets commented 6 years ago

Does this still happen?

-[Unknown]

hrydgard commented 6 years ago

My repro cases for this bug (a logo in ridge racer and a speech bubble in loco roco) are fixed now, so whether it was a driver bug or some other kind of bug we accidentally fixed with gl-render-manager, I'm closing.