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
10.79k stars 2.12k forks source link

[Windows] Sakura-sou no Pet na Kanojo blackscreen on startup #15224

Open meowthed opened 2 years ago

meowthed commented 2 years ago

Game or games this happens in

NPJH-50745 - さくら荘のペットな彼女

What area of the game

By the time you boot up the game. Tested on CRC-32 ff0e6f58 (Redump).

What happens

Game starts up to only a black screen. You can press circle to play a sound, but no other graphics gets displayed.

What should happen

It should display anything.

GE frame capture

recording.zip

Platform

Windows

Mobile phone model or graphics card

Nvidia Geforce 740M

PPSSPP version affected

v1.12.2 and git g204b2a48e

Last working version

None with Nvidia graphics. v1.4.2 is reported to be working using Intel graphics.

Graphics backend (3D API)

All backends (OpenGL, D3D, Vulkan)

Checklist

ghost commented 2 years ago

How about software rendering?

meowthed commented 2 years ago

AFAIK PPSSPP doesn't have a software render. Ran the same game on JPCSP and it renders there on both OpenGL and software renders.

ghost commented 2 years ago

AFAIK PPSSPP doesn't have a software render. Ran the same game on JPCSP and it renders there on both OpenGL and software renders.

What is this? Screenshot_2021-12-11-15-46-30-905_org ppsspp ppsspp

FrenchPrick commented 2 years ago

You can't blame him for thinking it's doesn't exist because you need to mess with the PPSSPP.ini file for it to show up.

On Sat, Dec 11, 2021, 07:48 AEZ YT @.***> wrote:

AFAIK PPSSPP doesn't have a software render. Ran the same game on JPCSP and it renders there on both OpenGL and software renders.

What is this? [image: Screenshot_2021-12-11-15-46-30-905_org ppsspp ppsspp] https://user-images.githubusercontent.com/37603562/145668946-39ee6767-a17c-49ee-8cda-5323b8a1755a.jpg

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/hrydgard/ppsspp/issues/15224#issuecomment-991517625, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASDWOXMQKAP4YEUN2DKUT4DUQL645ANCNFSM5J2RVGEQ .

ghost commented 2 years ago

You can't blame him for thinking it's doesn't exist because you need to mess with the PPSSPP.ini file for it to show up. On Sat, Dec 11, 2021, 07:48 AEZ YT @.***> wrote: AFAIK PPSSPP doesn't have a software render. Ran the same game on JPCSP and it renders there on both OpenGL and software renders. What is this? [image: Screenshot_2021-12-11-15-46-30-905_org ppsspp ppsspp] https://user-images.githubusercontent.com/37603562/145668946-39ee6767-a17c-49ee-8cda-5323b8a1755a.jpg — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#15224 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASDWOXMQKAP4YEUN2DKUT4DUQL645ANCNFSM5J2RVGEQ .

I thought it's visible on windows platform 🤔

hrydgard commented 2 years ago

Yeah we hide the software rasterizer on Android by default for now, because it showed up in so many crash reports that I suspected people enabled it by accident, and it's still too slow, especially on ARM which doesn't have a pixel jit yet.

Might reconsider, but it's still not very playable in most games.

FrenchPrick commented 2 years ago

I Don't know about windows but I know it's isn't visible in the Android version

On Sat, Dec 11, 2021, 08:01 AEZ YT @.***> wrote:

You can't blame him for thinking it's doesn't exist because you need to mess with the PPSSPP.ini file for it to show up. … <#m-4846018719945583051> On Sat, Dec 11, 2021, 07:48 AEZ YT @.***> wrote: AFAIK PPSSPP doesn't have a software render. Ran the same game on JPCSP and it renders there on both OpenGL and software renders. What is this? [image: Screenshot_2021-12-11-15-46-30-905_org ppsspp ppsspp] https://user-images.githubusercontent.com/37603562/145668946-39ee6767-a17c-49ee-8cda-5323b8a1755a.jpg — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#15224 (comment) https://github.com/hrydgard/ppsspp/issues/15224#issuecomment-991517625>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASDWOXMQKAP4YEUN2DKUT4DUQL645ANCNFSM5J2RVGEQ .

I thought it's visible on windows platform 🤔

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/hrydgard/ppsspp/issues/15224#issuecomment-991522247, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASDWOXNNPWQBAMXHTU36AFTUQMAOFANCNFSM5J2RVGEQ .

meowthed commented 2 years ago

Correction: it is on Windows, but even on software renderer it's still a blackscreen.

unknownbrackets commented 2 years ago

From some bisecting someone did, it seems this may have started at 5d17ec70c. If so, it's probably other timing (or even drawing timing) that's wrong...

Also, if that's the correct cause, then it's probably not only broken on Windows.

-[Unknown]

Panderner commented 2 years ago

Reminder v.1.11.3 is the last working version.

Panderner commented 2 years ago

Last build working is v1.11.3-1134-g92e7534f4 The issue started in v1.11.3-1138-ged3201a27

Panderner commented 2 years ago

I can reproduce this for my android phone

Panderner commented 2 years ago

Reminder: Do not enable DrawSyncEatCycles for Sakura-sou no Pet na Kanojo it can cause black screen. I tested in v.1.11.3

unknownbrackets commented 2 years ago

Does that mean this works when it's not set? Doesn't seem like compat.ini by default has the game ID.

-[Unknown]

Panderner commented 2 years ago

Does that mean this works when it's not set? Doesn't seem like compat.ini by default has the game ID.

-[Unknown]

NPJH50745 = true Blackscreen on Startup NPJH50745 = false The game works

Panderner commented 2 years ago

It seems Crash Tag Team Racing passed the checking memory stick screen when DrawSyncEatCycles is disabled for this game in latest builds.

unknownbrackets commented 1 year ago

Does that mean this works when it's not set? Doesn't seem like compat.ini by default has the game ID. -[Unknown]

NPJH50745 = true Blackscreen on Startup NPJH50745 = false The game works

Okay, so if I downloaded PPSSPP onto a new phone, and ran this game - everything would work fine. However, if I manually add the game ID under DrawSyncEatCycles to compat.ini, then it starts crashing.

If that's true, it sounds like this isn't an issue, and perhaps was fixed by the cpu cycle timing changes or some other timing change. That you can make games crash or break by manually adding them to compat.ini is a feature, not a bug. There'd be no reason for that file to even exist if adding random game IDs to it had no downside.

-[Unknown]

Panderner commented 1 year ago

v1.13.2-915-gc37049fa1 Still happens log.txt

unknownbrackets commented 1 year ago

Was that with or without DrawSyncEatCycles? I'm still confused based on the previous comment.

-[Unknown]

Panderner commented 1 year ago

black screen with both options even when it was set to false could not get this to work properly

NPJH50745 = true Blackscreen on Startup NPJH50745 = false The game works (didnt work for me on my PC)

@benderscruffy can you check v1.11.3-1134-g92e7534f4 and earlier if the DrawSyncEatCycles set to false works properly?

Panderner commented 1 year ago

@Panderner do you know where i can get v1.11.3-1134-g92e7534f4 from ???

@benderscruffy the stable v1.11.3 works fine for this game.

Panderner commented 1 year ago

where can i get it from then ??? on the site last one is 1.12.3

@benderscruffy select old versions on the download selection.

Panderner commented 1 year ago

If DrawSyncEatCycles enabled for this game gets black screen on start up.

sum2012 commented 7 months ago

I confirm retvert https://github.com/hrydgard/ppsspp/commit/5d17ec70cee3976b0c9b7372dbccb8e9e9a7fb4d can fix the issue, I try to change another timing. v1.16.6-333-gecab50346-windows-amd64 full debug log: https://gist.github.com/sum2012/41fba1545753f374048259798a12f455

sum2012 commented 7 months ago

It is modify log https://gist.githubusercontent.com/sum2012/63625cb8dfd16d06ae3de309fa39cb4d/raw/5487222d369f96917ff83e2a12d19875b3166601/gistfile1.txt

edit:try sceKernelUnlockMutex hleEatCycles(6000); don't work

unknownbrackets commented 7 months ago

DrawSync not taking any time causing different behavior must mean something else later happens in a different order.

I'd suggest trying to narrow down to a specific instance of it. In the log, there are a few patterns of DrawSync usage. Does the amount of cycles the syscall takes matter for each of them? Only the first one where it creates a list right after? The other ones only? You want to determine at least what area matters so you can see what else is "in flight" at that time - what other timing matters?

If the game was only doing DrawSync, with zero other threads doing anything, it is extremely likely that the timing "wouldn't matter". You could make it 100000 cycles and it at worst might affect the framerate. The cycles it consumes here matters mostly because it impacts the timing of other things happening at the same time. Think of it as racers running on a track. By deleting the cycles it takes, it's like you're warping one of the racers ahead of the others. Maybe that makes them trip over something that no longer gets in another racer's way? It can have complicated impacts like that. You have to look at the other threads to figure it out.

By the way: every syscall that consumes 0 cycles technically is a bug. I promise you, there are zero syscalls on the PSP that took zero cycles to execute. That said, some of them were pretty quick.

-[Unknown]

sum2012 commented 7 months ago

The last one is important. After the game run sceGeListUpdateStallAddr , sceGeDrawSync need 0 to 31 cycles to show the screen

sum2012 commented 4 months ago

baidu forum remind this issue . Cannot make this game for compat ?