-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kingdom Hearts Birth By Sleep (Final Mix+ only?) crash(es) #5800
Comments
Also I'm a bit reluctant at discussing about this but I noticed that there were people on the forums that kept reporting every now and then that the emulator crashes randomly while on a non-FMV cutscene, usually the ones on the very beginning of the game or the very end. I didn't really experience such issue but I guess that was because I played so many times the game that I know all the dialogs and the cutscenes by heart and I was simply skipping them. Now that I play it once again and I watch the cutscenes, I experienced those random crashes aswell. I can't seem to find a way to reproduce them though, they are somekind of random. |
As I've already mentioned in my ppsspp.org forum post in the game thread, we need further details, else the devs can't do anything:-
I'd really like to help out, but I can't reproduce those crashes on my system, and I've tried playing the game from the very beginning without skipping any cutscenes. I just unthrottled the speed to speed up the process.. |
I cleared both games(all characters)without any problems but I didn't use the latest beta(I used much older than the latest and I didn't tried the latest) Does it crash if you disable the frame skipping and FrameSkipUnthrottle(some games don't like frame skipping very much). What are your settings(the default now are different than the default before)? |
^also happens to me.it happens less iften if multithreading ,io and fast mem are off |
It happens on both Android ARM/Android x86 and Windows x64 builds (so my specs don't matter, it's universal) with default settings on. I can't detect the last working build, it was working up to a time but that must have been a long time (in revision timeline) before. |
Oh dear just dumped the first Japanese Release of BBS and it doesn't crash on Blank Points but it crashes on Final Mix+. If anyone's tests come from any other than the Final Mix+ version I apologize but it seems that it doesn't work only on the Final Mix+ version. |
It's definitely long time ago...I just checked the save states I have for the games and it looks like I used 0.9.1-969 for both games |
Just finished the final mix on 0.9.8-238 today,about 10 hours game play,from Castle of Dream to the end,I did not skip any cut scenes,and did not meet any bug. |
You will not meet the Blank Points FMV in the normal gameplay, it's part of the secret episode so my report is still valid. Just go to Trinity Report -> Theater -> Blanck Points and try to play the video. It will show the heart on the bottom right as it loads and then the emulator will crash. |
Can you upload an in-game save so it's easier to test? |
Savestate or a save (you'll need my game data too) |
Here's my savegame, better not to use savestates. |
Yes,it crashes on the new build,I tried 0.9.1,it does not crash. |
Thanx, for a moment I thought I was crazy. There are more crashes happening that I can trigger but this one is the easiest one to trigger. I believe if somebody finds what happened here the rest will be fixed aswell, if not I will report them. |
It crashes on Android too. |
I wonder if it's mirror related: Does it help to use PSP-1000 instead of PSP-2000? -[Unknown] |
@unknownbrackets nope, same result. |
Does it work if you revert 5b0ece8? Non Final Mix at least doesn't use sceFont I'm pretty sure... -[Unknown] |
0.9.8-222,crashed only once but after I disabled the frame skipping and then start the game,then no matter what I tried,ppsspp didn't crash when I was trying to play that scene(tried it at least 10 times) Fast Memory,I\O Thread,Multi Threading are off and PSP model is 1000 |
Give me a full list of settings to test because reverting to default settings doesn't fix the issue here, whatever combination of settings I use it will always lead to a crash. |
This is how I set everything when I run ppsspp without settings [General] |
Still crashing here... |
Just for a test,try 0.9.8-222 or\and 0.9.1-969 x86 |
OK it crashes only on x64 builds (it still crashes though on Androidx86, shouldn't that be weird?) |
@VIRGINKLM Thanks for the savedata, this is exactly what was needed to diagnose the issue, as I stated earlier on in my comment (#5800 (comment)), which led @daniel229 to produce the stack trace and identify the first responsible build thanks to the successful reproduction. @unknownbrackets Reverting 5b0ece8 fixes the issue. The Blank Points video plays successfully and the emulator/game does not crash:- |
What if you keep the changes in Core/MemMapFunctions.cpp, but revert the rest? Maybe somewhere is using m_pRAM between 31 MB barriers and expecting it to be contiguous... -[Unknown] |
Is anything improved by replacing this, in sceMpeg.cpp:
With:
Not saying this is a correct change, just trying to understand what causes it. -[Unknown] |
Yeah, so it just happens that you've got valid memory on your PC after that, unless -[Unknown] |
Sounds like a tough thing to debug |
Still crashing in v0.9.9.1 -1442 |
can you try another of the versions and post a picture of the log, please? Right now, it is saying that there is a file missing in the iso |
Those exa files are event files, more specificaly they are cutscenes and in the above case it's a cutscene in Disney Island. These are part of the inner structure of the game's data and not a file you will find directly by extracting the game's iso, so I doubt that the file is indeed missing so what PPSSPP is reporting is for sure a false alarm. I believe that for some reason PPSSPP fails to find the file inside one of those encrypted binaries of the game's iso. |
It's common that games will check to see if files exist in paths for debugging before going into an archive. In many games, file not found errors are completely normal. -[Unknown] |
FIxed by #8725 |
Hmm, that's slightly concerning. Aside from the reverted vmmul change, the only change there that ought to affect non-IR is the one in Core/CoreTiming.cpp. If you change it back to: // This will cause us to check for new events immediately.
currentMIPS->downcount = 0;
// But let's not eat a bunch more time in Advance() because of this.
slicelength = 0; Does it not work again? If not... could you check which commit caused it, if you have time? Just want to make sure we don't accidentially undo the fix. -[Unknown] |
Sound like it just randomly working even in old version v1.1.1。 |
is there any solution for this in android? i dont understand a single thing, pls help, im dying |
Same problem here. After I defeat Terra-Xehanort ppsspp crashes. |
On the Android version |
I play BBS final mix and encouter this bug as well on final episode after fighting Terra-Xehanort. I compiled your source code with the following commit 562c5f6 The segmentation fault is caused by memcpy on BufferQueue.h bufQueue address was 0x7ff7b6ce4550 rep movsb %ds:(%rsi),%es:(%rdi) ! 0x00007ff808578e5f I hope this bug can be fixed soon. |
Can confirm this happens on both Windows x64 and Android in specific, can't reproduce it on Theater Mode Basically, Fight Terra-Xehanort(Final Episode), and on the second cutscene after defeat, as soon as it ends, the game crashes. I'm surprised this crash exists for soo long. By the way, there's no such thing like a Final Mix+ version of the game. There's only the Original and Final Mix. |
I forgot to attach my stack. The buf address is always 0x2309ffed50.
|
One thing we can try - but probably is the wrong fix, and might just cause it to fail to play the video - is adding a check. Find this in Core/HLE/sceMpeg.cpp: static int sceMpegQueryStreamOffset(u32 mpeg, u32 bufferAddr, u32 offsetAddr)
{
if (!Memory::IsValidAddress(bufferAddr) || !Memory::IsValidAddress(offsetAddr)) {
ERROR_LOG(ME, "sceMpegQueryStreamOffset(%08x, %08x, %08x): invalid addresses", mpeg, bufferAddr, offsetAddr);
return -1;
} Add after that code: if (!Memory::IsValidRange(bufferAddr, 8192)) {
return hleLogError(ME, -1, "invalid buffer address");
} This should cause it to fail here, but the game might get even more confused if this fails. -[Unknown] |
I added the if statement. The stack trace went into your new code and exit the function but it seems the program is doing an infinite loop like below.
|
Do the changes in #11371 help? -[Unknown] |
Yes, your pull request #11371 resolves the issue. I was able to save at the end of the final episode chapter. I didn't play the blank point chapter yet but looking at the stack trace from solarmystic a few years ago, I think it was the issue reading unavailable bytes. |
Base on the issue #2395, the temporary fix for the game to play "Where the Heart Goes" and "Blank Points" is to change the Rendering Solution to 4x or 5x before opening the game. Edit: I don't know if it is only having issues on OpenGL or also in Vulkan. |
The game seems to always crash the emulator when an FMV cutscene is about to load. (example: Blank Points)
Console doesn't seem to show anything wrong.
The text was updated successfully, but these errors were encountered: