hrydgard/ppsspp

Capcom Classic Collection Reloaded stuck in "Now loading" after v0.8.1-1173-ge03acc4

sum2012 opened this issue · 21 comments

After this screen
1
,only show "Now loading"

git bisect result
2

The compare
v0.8.1-1173-ge03acc4...v0.8.1-1174-ge7c7c5b

v0.8.1-1173-ge03acc4 log (last good)
https://gist.github.com/sum2012/73d57e2502b1c0bf9c1d

v0.8.1-1174-ge7c7c5b log (first fail)
https://gist.github.com/sum2012/88076c93a0db2a56d559

PPSSPP v0.9.5-47-g52eb46c log (fail)
https://gist.github.com/sum2012/b69ebf2dbdba6b64d6c1

So, obvious question, does it not work with the setting off?

I don't see any FBOs being deleted in the failing ones so something is going wrong, but only on multithreading?

-[Unknown]

v0.8.1-1174-ge7c7c5b default UseCPUThread is false
v0.95-75 disable io multithreading also fail

Not sure useful for this picture
1

@sum2012 will the commit git revert cleanly to check if that is the only issue?

@ninjatjj I tried before,simple use back old file cannot compile

Yeah, looks like quite a bit of code now depends on the refactor. For me if I disable:
SeparateCPUThread = False
I get the hanging "Now loading"
If I enable:
SeparateCPUThread = True
I get a blank screen at that point instead.

My guess is it is something to do with the GPU stuff moving around

If I do this:
https://github.com/ninjatjj/ppsspp/commit/599a0b8e734825fc031ee180ba3a786279f26aae
Then the emulated games in the collection will start and run fine, just when you try to return from a game the emulator may have issues. The games themselves are working fine though. I checked out the problematic commit directly and then modified that. I have subsequently made the similar change to master and it works fine there too:
https://github.com/ninjatjj/ppsspp/commit/bd859bb8c97e14c69718c6eac0dbef783fae6356

As an example, when exiting 1942 with the diff, I get repeated:
01:07:120 user_main W[MM]: /home/ninjatjj/projects/ppsspp/Core/MemMapFunctions.cpp:93 ReadFromHardware: Invalid address cc57490

When I exist Knights of the Round the emulator just hangs.

When I exist Super Ghouls and Ghosts, it will exit just fine, so it seems to depend on the system that is being emulated?

Thank you.
Let me test after I have time

You're saying that initializing the gpu later, at InitGfxState(), fixes it? I assume this is with multithreaded off, because I expect that to initialize the gpu on the wrong thread and break things otherwise.

-[Unknown]

@ninjatjj Thanks ,work
I think the invalid address is mpeg probrem

edit:
@unknownbrackets Is this a callback issue with GeListSync ?

I don't know, I don't think so? But I have an idea why this might be.... loadexec.

-[Unknown]

Does #4667 help? Should be functional in multithreaded and non multithreaded if so.

-[Unknown]

Yes,it help,but the log dispaly WTF,
1

But When I play 1942 and then exit,Invalid address
Full log will provide when I get back home

Hmm, okay. Is it worse than it was before the threading changes, same, or better?

-[Unknown]

I checked master this morning and @unknownbrackets commit seems to have fixed it for me (with the note below) - thanks

I checked e03acc4 (the commit prior to the original problematic commit) and it has the same issue with "invalid address" so it looks like although the regression is now resolved, there is still a bug. Personally, I think its worth opening a new issue and closing this one.

@unknownbrackets, btw - thanks should have said THANKS!

Opening a new issue and closing this one sounds like a good plan, since there's a lot of no longer relevant info and screenshots here.

Can you open a new issue with more detail on what's still wrong (and a log)? I'll close this one.

-[Unknown]

I think that I need a video to explain

@unknownbrackets This is same error in v0.8.1-1173-ge03acc4.
I am finding more build