-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Illegal instruction with White Knight Chronicles Origin on alpine linux #14538
Comments
v1.11.0 is a bit old isn't? there have been many crash fix since that version on dev build |
I must say that I found this bug in the game in version v1.8.0 and still in v1.11.0 it had not been corrected but well I will build version 1.11.3 or if not the master version and I will check it :) |
Illegal instruction happen when your CPU does not support some assembly instruction usually. Does this happen even with interpreter or IR CPU backend or is JIT only? It could also mean the binary was build with some CPU specific flag that your CPU does not support, have you tried build PPSSPP yourself? |
Ok, I switched to yes, actually ppsspp is compiled by myself as alpine is not glibc and only supports musl the ppsspp building instructions I gave you were as follows: |
Please try compiling the version of FFmpeg (3.0.2) inside ffmpeg/ and don't use system FFmpeg. To properly emulate PSP game behavior, PPSSPP needs to use some APIs of FFmpeg that were removed in later versions, so using system FFmpeg disables some functionality. It seems like the illegal instruction happens right around playing a video, so your FFmpeg build seems suspect. I guess you probably have an Intel Atom N270. and this supports up to SSSE3 but not SSE4: We dynamically detect SSE4 support in PPSSPP, even for the jit. But your FFmpeg package may have been compiled with SSE4 support baked in (incorrectly.) Recompiling the older version we recommend using anyway may therefore help this issue and others you haven't (yet) noticed from the newer FFmpeg. -[Unknown] |
@unknownbrackets do you mean compile the ffmpeg version from hrydgard or download the official ffmpeg version 3.0.2 and compile it inside the ffmpeg directory? |
Either one. I'd recommend the fork because it has a build script, but it's actually just original FFmpeg 3.0.2 code. So you can compile ffmpeg/ffmpeg 3.0.2 as well. -[Unknown] |
@unknownbrackets I have compiled the ffmpeg with the script and downloaded ppsspp version 1.11.3 but it keeps giving Illegal instruction |
Darn. In that case the best thing would be the capture the error in gdb so we can see the detail:
-[Unknown] |
@unknownbrackets Oh, what a surprise I got when I ran the game with PPSSPP debugging. It turns out that after doing the train ride the game didn't crash for some strange reason. As it doesn't crash I don't think the backtrace shows the error, anyway here I leave it.
|
https://github.com/hrydgard/ppsspp/blob/master/Common/GPU/OpenGL/GLRenderManager.cpp#L120 Hmm, that isn't great but should've only happened when shutting down. Maybe it's from compiling in debug mode? You can try release mode again and see if it's any clearer. -[Unknown] |
Try switching to assembly layout to get more info like mentioned here https://stackoverflow.com/questions/10354147/find-which-assembly-instruction-caused-an-illegal-instruction-error-without-debu
|
https://stackoverflow.com/questions/11140136/whats-the-purpose-of-the-ud2-opcode-in-the-linux-kernel So that might indicate an assert tripped or an exception was thrown. At least it seems clear this isn't some SSE op or similar that's unsupported. Sorry, can you try building one more time, but this time using "RelWithDebInfo"? I'm hoping that'll still trip the error as before but show a proper stack trace. -[Unknown] |
@unknownbrackets I have already compiled it as
|
Okay, this seems like an assert from the memcpy parameters. This could mean that the size of the copy goes outside valid memory, which is a bit strange. A few possibilities:
That said, I suspect we might be able to workaround this glitch - at least not crash. Try patching Core/HLE/ReplaceTables.cpp. Find: if (!dst || !src) {
// Already logged. And replace as a test: if (!dst || !src || bytes != Memory::ValidSize(srcPtr, bytes) || bytes != Memory::ValidSize(destPtr, bytes)) {
// Already logged (unless size.) There might however be other issues, because the game should've never done this in the first place. -[Unknown] |
@unknownbrackets I have patched it and recompiled it but it still crashes. |
Sorry for the latency - been very busy on some days. If this still crashes in memcpy, maybe there's something wrong with my patch or assumptions. If it now has a slightly different crash stack trace, it likely means just more is going wrong. At that point, I'd start to wonder more why this is happening to you but not others. Did you double check the CRC? I know when I ripped one of my UMDs, I somehow got a bad rip with some errors. I redid it and got a valid one. -[Unknown] |
@unknownbrackets CRC? |
CRC(cyclic redundancy check) is just checksum of the file ~ uncompressed iso, not cso or pbp althrough if you do it from PPSSPP it'll calculate iso crc from any format. Files can get damaged or corrupted, without confirming it's a 100% proper copy the most likely problem is that you're just using broken iso. You can just pause the game in PPSSPP and if you didn't used any hacks nor cheats you should have an option to "Report Feedback" if it's grayed out, restore safe(default) settings, disable cheats and restart emulation. Once in the report screen you can calculate disc CRC. If you do have reporting option grayed out, chances are some dangerous settings are cause of the problem in the first place. This game like many others have broken warez copies flying around the net due to imperfect ways of dumping UMD's in the early days, if you downloaded a pirated copy or used PSP with really outdated firmware to make your backup chances are high it's just broken. |
Hmm.. i have cheat disabled, but i have some files in plugin folder, is plugins included as dangerous? |
I think I saw it grayed out at some point, but yeah it's just hidden. The list of stuff that hides it is under the second code [Unknown] posted, basically:
are what causing that option to hide, and it will continue to be hidden until you fix all of that and restart emulation, it will also forever be hidden in already affected savestates. If you enable compatibility server reports under system settings, that feature will allow to fill a short compat survey and send the data with optional screenshot which you can later see in https://report.ppsspp.org/ |
Is this still an issue in the latest git builds? Were you able to confirm your disc's CRC? -[Unknown] |
This issue is being closed because it hasn't been updated with feedback. It's hard to tell when fixes in PPSSPP might fix other games, and sometimes certain settings or cheats may cause bugs that can't be fixed. If you have more information or can confirm it still happens in the latest git builds, please reply to this issue and it'll be reopened. If you have a new issue with the same game, just create a new issue instead. -[Unknown] |
Hi.
What happens?
The game crashes right after finishing the train ride.
What should happen?
you should save the game and let me continue the story.
What are you using?
What hardware / device and operating system?
Hardware: Intel powered classmate PC Clamshell
Operating system: Alpine Linux v3.11 x86_64
What graphics card (GPU) or mobile phone model?
What PPSSPP version (standalone/official), and did it work before?
PPSSPP v1.11.0
Which game or games?
UCES01511
Checklist
UCES01511.log
The text was updated successfully, but these errors were encountered: