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

PPSSPP Crashes while loading Project Diva 2nd save game from memory card #4708

Closed amirzaim closed 10 years ago

amirzaim commented 10 years ago

Current build have a problem while loading the saved game from certain games like Project Diva 2nd. Also crashes often while trying to load the save-state game and probably says "Segmentation fault".

Previous build have no problem loading game save from memory card, except crashes while loading the save state.

unknownbrackets commented 10 years ago

What's the first build with this problem and the last build that didn't have it?

-[Unknown]

thedax commented 10 years ago

Is this on Android? I don't have any crashes with this game on Windows.

amirzaim commented 10 years ago

Last build that i have, 0.9.5-803-g7bca82 on Linux. Probably have this problem on that platform.

amirzaim commented 10 years ago

I think the newest build solve the issue right now.

amirzaim commented 10 years ago

I'm reopen this issue because I'm still have this problem even with the current builds on Linux. Any ideas?...

It keeps crashing every time I'm tried to load the game and after I'm pressing the "Load Game", random sound appears and then turns black.

amirzaim commented 10 years ago

Here's the log which I taken:

I: ../native/file/zip_read.cpp:304: I: Registered VFS for prefix : assets/ I: ../native/file/zip_read.cpp:304: I: Registered VFS for prefix : ./ I: ../native/file/zip_read.cpp:304: I: Registered VFS for prefix : :assets/ I: ../native/gfx_es2/gl_state.cpp:127: I: GPU Vendor : Intel Open Source Technology Center I: ../native/gfx_es2/gl_state.cpp:133: I: GL version str: 2.1 Mesa 10.1.0-devel (git-7586588 saucy-oibaf-ppa) I: ../native/gfx/texture.cpp:278: I: ZIM loaded: 1 levels I: ../native/gfx/texture.cpp:309: I: Gen-binding texture 24:38:921 ../Core/System.cpp:290 I[BOOT]: PPSSPP v0.9.5-983-gbd1d4e2 24:38:923 ../Core/MemMap.cpp:99 I[MM]: Memory system initialized. RAM at 0xa564a000 (mirror at 0 @ 0xa1e4a000, uncached @ 0xa1e4a000) 24:38:923 ../Core/Loaders.cpp:176 I[LOAD]: Identifying file... 24:38:924 ../Core/PSPLoaders.cpp:118 I[LOAD]: ULJM05681 : 初音ミク -Project DIVA- 2nd 24:38:925 ../Core/PSPLoaders.cpp:188 I[LOAD]: Loading disc0:/PSP_GAME/SYSDIR/EBOOT.BIN... 24:38:925 ../Core/HLE/sceKernelMemory.cpp:213 I[KERNEL]: Kernel and user memory pools initialized 24:39:055 ../Core/HLE/sceKernel.cpp:142 I[KERNEL]: Kernel initialized. 24:39:386 ../Core/Util/BlockAllocator.cpp:379 I[HLE]: ----------- 24:39:387 ../Core/Util/BlockAllocator.cpp:383 I[HLE]: Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled) 24:39:387 ../Core/Util/BlockAllocator.cpp:383 I[HLE]: Block: 08804000 - 08d4f900 size 0054b900 taken=1 tag=ELF 24:39:387 ../Core/Util/BlockAllocator.cpp:383 I[HLE]: Block: 08d4f900 - 0c000000 size 032b0700 taken=0 tag=(untitled) 24:39:387 ../Core/Util/BlockAllocator.cpp:385 I[HLE]: ----------- 24:39:680 ../Core/HLE/sceKernelModule.cpp:803 I[LOAD]: Module PdvApp: 08c5bfd0 08bae424 08bae43c 24:39:682 ../Core/HLE/sceKernelModule.cpp:997 I[LOAD]: Exporting ent 0 named PdvApp, 2 funcs, 4 vars, resident 08bae6b8 24:39:683 ../Core/HLE/sceKernelModule.cpp:1282 I[LOAD]: Module entry: 08804000 24:40:497 root N[BOOT]: ../UI/EmuScreen.cpp:110 Loading /media/amirzaim/381C9E241C9DDCE6/HatsuneMiku-_Project_Diva_2nd_JAP_PSP-iND/ind-miku2j.iso... 24:40:499 root I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2111 276=sceKernelCreateThread(name=user_main, entry=08804114, prio=20, stacksize=229376) 24:40:499 root I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2162 sceKernelStartThread(thread=276, argSize=33, argPtr=0bfffed0) 24:40:500 root I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2242 __KernelReturnFromThread: 0 24:40:647 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2111 282=sceKernelCreateThread(name=igPSPPowerManager, entry=0894b0c4, prio=10, stacksize=65536) 24:40:647 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2162 sceKernelStartThread(thread=282, argSize=4, argPtr=08d5753c) 24:40:669 user_main E[KERNEL]: ../Core/HLE/sceKernelThread.cpp:3096 Failed to access deferred info for thread: user_main 24:40:669 user_main E[KERNEL]: ../Core/HLE/sceKernelThread.cpp:3096 Failed to access deferred info for thread: user_main Got a buffer underflow! 24:41:266 user_main I[SCEGE]: ../GPU/GLES/Framebuffer.cpp:772 Creating FBO for 00000000 : 480 x 272 x 3 24:41:272 user_main I[G3D]: ../GPU/GLES/ShaderManager.cpp:134 Linked shader: vs 16 fs 17 Got a buffer underflow! 24:41:563 user_main I[UTIL]: ../Core/HLE/sceUtility.cpp:210 sceUtilityLoadModule(1280) 24:41:564 user_main I[HLE]: ../Core/HLE/scePspNpDrm_user.cpp:9 call sceNpDrmSetLicenseeKey(08bbc70c) 24:41:567 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2111 368=sceKernelCreateThread(name=CriThread, entry=08b0cb50, prio=20, stacksize=8192) 24:41:567 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2162 sceKernelStartThread(thread=368, argSize=4, argPtr=0bfff470) 24:41:568 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2111 373=sceKernelCreateThread(name=CriThread, entry=08b0cb50, prio=20, stacksize=8192) 24:41:569 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2162 sceKernelStartThread(thread=373, argSize=4, argPtr=0bfff470) 24:41:569 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2111 376=sceKernelCreateThread(name=CriThread, entry=08b0cb50, prio=20, stacksize=8192) 24:41:569 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2162 sceKernelStartThread(thread=376, argSize=4, argPtr=0bfff470) 24:41:602 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2111 395=sceKernelCreateThread(name=SceWaveMain, entry=0886afbc, prio=10, stacksize=512) 24:41:602 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2162 sceKernelStartThread(thread=395, argSize=12, argPtr=08d16ea0) 24:41:604 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2111 396=sceKernelCreateThread(name=CRI ADX Audio, entry=08b57af0, prio=16, stacksize=32768) 24:41:605 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2162 sceKernelStartThread(thread=396, argSize=0, argPtr=00000000) 24:41:605 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2111 397=sceKernelCreateThread(name=CRI ADX File, entry=08b57b68, prio=18, stacksize=16384) 24:41:605 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2162 sceKernelStartThread(thread=397, argSize=0, argPtr=00000000) 24:41:608 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2111 399=sceKernelCreateThread(name=CRI Wave out, entry=08b75afc, prio=10, stacksize=16384) 24:41:609 user_main I[KERNEL]: ../Core/HLE/sceKernelThread.cpp:2162 sceKernelStartThread(thread=399, argSize=0, argPtr=00000000) 24:41:669 user_main I[SCEGE]: ../GPU/GLES/Framebuffer.cpp:772 Creating FBO for 00088000 : 480 x 272 x 3 Got a buffer underflow! 24:41:703 user_main I[G3D]: ../GPU/GLES/ShaderManager.cpp:134 Linked shader: vs 19 fs 20 24:41:727 CRI ADX Audi W[G3D]: ../GPU/GLES/GLES_GPU.cpp:1417 Unsupported texture lod slope: 3e9999 Got a buffer underflow! 24:42:410 idle0 I[G3D]: ../GPU/GLES/ShaderManager.cpp:134 Linked shader: vs 19 fs 22 24:51:714 idle0 I[G3D]: ../GPU/GLES/ShaderManager.cpp:134 Linked shader: vs 24 fs 25 24:53:122 user_main I[G3D]: ../GPU/GLES/ShaderManager.cpp:134 Linked shader: vs 27 fs 28 24:54:505 user_main I[HLE]: ../Core/HLE/scePower.cpp:345 scePowerSetClockFrequency(222,222,111) 24:54:529 idle0 I[G3D]: ../GPU/GLES/ShaderManager.cpp:134 Linked shader: vs 30 fs 28 24:54:540 idle0 I[G3D]: ../GPU/GLES/ShaderManager.cpp:134 Linked shader: vs 32 fs 28 24:54:549 idle0 I[G3D]: ../GPU/GLES/ShaderManager.cpp:134 Linked shader: vs 24 fs 20 24:56:290 user_main I[UTIL]: ../Core/Dialog/PSPSaveDialog.cpp:58 sceUtilitySavedataInitStart(090ca320) : Mode = 4

unknownbrackets commented 10 years ago

Does it depend on the savedata? If you copy off and temporarily delete the savedata, does it still happen when you create new data?

-[Unknown]

amirzaim commented 10 years ago

yup...I'm think PPSSPP crashes even when trying to create save data for that game. Previous build like karenbuildbot.net-angelxwind build for Linux didn't have any problems.

Memstick location for PPSSPP Linux build (the current ones) lies at ~/.config/ppsspp. Meawhile the previous one is bit different which is located at ~/.ppsspp.

amirzaim commented 10 years ago

Geez...fixed after editing something in /ppsspp/Core/MIPS/x86/CompBranch.cpp with line of 153 in issue #4770

PS: Clang did helped me to fix this issue.

unknownbrackets commented 10 years ago

Wait, does that mean it's hitting that case? It should not have hit that case....

-[Unknown]

amirzaim commented 10 years ago

While GCC accepts the line of code that totally accepts it like this one:

-line 153 of ~/ppsspp/Core/MIPS/x86/CompBranch.cpp: ERROR_LOG_REPORT(JIT, false, "FlipCCFlag: Unexpected CC flag: %d", flag);

But, in Clang, it gives an error so I fixed it and in a meantime, it fixes game save/load issues on certain games like Project Diva 2nd which causes having a random sound and also the screen turns blank.

unknownbrackets commented 10 years ago

Let me say it another way.

I get that there are compile problems with that line. However, it should be possible for that line to be changed to:

char myAwesomePointer = (char )0x1337; memcpy(myAwesomePointer, "Please explode the program, and if possible, the entire computer.", 20);

Either way, it should not affect execution as it should not be happening. So again, the code on that line is actually being run?

It's a case where some CC flag is not accounted for, but I double checked and I don't see what's missing.

-[Unknown]

unknownbrackets commented 10 years ago

Well, it sounds like this was a clang specific issue. It apparently works on other platforms and I guess here now too, so I guess the issue is resolved now?

Please comment/reopen and provide more information if I'm mistaken.

-[Unknown]