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

Star Wars: The Clone Wars - Graphic glitch [Android/Windows]

Saramagrean opened this issue · comments

What happens?

Graphic glitch (pink overlay) in-game happen in all backends.

SW-TCW-1

Try all versions (0.3-1.9.3 latest git build) encounter all the same problems.

What should happen?

No graphic glitch.

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

  • Windows 10 (64 bit, CPU: Intel i5 6200U, GPU: Intel HD 520)
  • Huwei P9+ (Android 9.0, Kirin 955, Mali T-880)
  • PPSSPP v1.9.3-922-gc861bc0d7 with default settings.

GE Dump: DUMP.zip

Screenshot_2020-05-22-23-40-20-66_2f85358b2198d26f8aca533d68bee793
it's works fine for me, I'm using Realme C2 Android 9 Pie and v1.9.3-913-g1dec77214

I can repro this issue on my phone.
Screenshot_20200525-140240
Screenshot_20200525-140308

Hm, Mali and Intel, but not PowerVR?

There's a screenshot - US version - that looks fine here on Mali-450:
https://report.ppsspp.org/game/ULUS10477_1.00

But there are bad looking screenshots here for one of the EUR version:
https://report.ppsspp.org/game/ULES01284_1.00

Is this an issue that only happens on the European release? I wonder if it's attempting some depth buffering...

-[Unknown]

USA Version:
Screenshot_2020-05-25-19-14-05-07_2f85358b2198d26f8aca533d68bee793

Europe Version:
Screenshot_2020-05-25-19-14-51-64_2f85358b2198d26f8aca533d68bee793

USA Version is ok. This bug is only happens in the Europe version of the game

but it doesn't occur in software renderer.
Here's a Screenshot I'm using software renderer in the Europe version of this game:
Screenshot_2020-05-25-19-25-53-76_2f85358b2198d26f8aca533d68bee793

In the dump, everything is fine at first. Originally, it draws to 0x04000000 with depth at 0x04110000.

At 11495/11702, it draws to a temp buffer at 0x00154000, a simple stretch. But then it draws with blend fixed ZERO + fixed ZERO and stencil REPLACE FF over that. So, forget that earlier draw.

At 11527/11702, unsatisfied with the earlier waste of time, it stretches again. But this time it uses an alpha test to make sure it will not draw anything and this will also be a waste of time. But maybe in other scenes, stencil is used and would result in some more interesting effect.

After doing some things that would probably result in bloom for the above, at 11598/11702 it textures from 0x0418c200. This is where things go wrong.

Actually, 0x0418c200 should be within that 0x04154000 buffer it's been working so hard to keep blank. Specifically, it's at an offset of (128, 224). It later uses 0x04184200 which has the same problem (offset of (128, 192)...)

We assume it's a mistake when it tries to access 224/272 of a buffer directly, with an X offset. Maybe we need to be smarter about that being drawn to immediately prior.

-[Unknown]

Nice breakdown Unknown, I'm tagging it for v1.11.

I have some ideas in the back of my mind about a complete rework of GPU memory management, but it might be a pipe dream...

Yeah, it's complex. I think we could potentially rely on the safeWidth and safeHeight to safely texture from this late in a buffer.

-[Unknown]

Testing on PPSSPP v1.11.3

OpenGL

Screenshot_2021-05-23-11-24-11-167_org ppsspp ppsspp

Vulkan

Screenshot_2021-05-23-11-24-27-603_org ppsspp ppsspp

Same happens for my PC for all backends:
2021-05-23 (7)
2021-05-23 (6)

I recommend you to use USA version of this game but not the Europe Version.

This issue is also related for all versions (except Europe version) of MotorStorm: Arctic Edge (#7552)

I found a solution for this graphic glitch together with Star Wars: The Force Unleashed #9572

Just add "Star Wars: The Clone Wars" and "Star Wars: The Force Unleashed" game id to [Force04154000Download] compat.ini fix graphics issue of those two game, but the performance penalty is huge :(

What can you say about this hrydgard?

Please Note: German and Italian Version (ULES01285) does not reproduce this issue:
Screenshot_2021-10-06-09-10-44-629_org ppsspp ppsspp

Please Note: German and Italian Version (ULES01285) does not reproduce this issue: Screenshot_2021-10-06-09-10-44-629_org ppsspp ppsspp

Yes I know that Europe can only reproduce this, but I find a way to fix the graphics glitch but the perf penalty is huge. Hrydgard need to improve the Vram

Europe can only reproduce this

ULES01284 can reproduce this but ULES1285 doesn't.

Enable [Force04154000Download] in compat.ini file, can remove this glitch. :)

SW-EU

Right, this is all because we're avoiding writing everything back to RAM due to speed reasons. Software renderer probably looks fine, based on my above explanation.

Maybe the safest thing, as much as I hate them, is a compat.ini hack that allows texturing from odd offsets in this game.

-[Unknown]

Enable [Force04154000Download] in compat.ini file, can remove this glitch. :)

SW-EU

Yes it's fixes the graphics issue of both star wars the force unleashed but the performance penalty is huge on mobile devices.