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

Arch linux Crash when attempting a MemStick Save/Load #14423

Closed M4TT-R closed 3 years ago

M4TT-R commented 3 years ago

What happens?

Program crashes whenever games attempt saving (and loading) as in a memory stick.

MGS Peace Walker can install its data; it appears at ~/.config/ppsspp/PSP/SAVEDATA although it cashes at the moment of hitting "continue" in the menu, the program crashes in GT i do a test race, then attempt saving a repetition; the program crashes.

Games seem to run fluently otherwise.

What should happen?

Games should be able to save and load/read savefiles normally as in a PSP.

What are you using?

What hardware / device and operating system?

Asus X455LJ (laptop) Arch Linux x86_64 Kernel: 5.11.16-arch1-1 DWM Cpu: Intel-5005u 1.9 GHz Gpu: Nvidia 920M (DRM kernel Setting) Ram: 7.8GB

What graphics card (GPU) or mobile phone model?

I am using up to date available Nvidia driver (465.27-2); with DRM Kernel setting. problem persist using either Vulkan or OpenGL. (although that doesnt seem to be related)

What PPSSPP version (standalone/official), and did it work before?

I run ppsspp 1.10.3-1 lastest available in the repos, first i use.

Which game or games?

Metal Gear Solid Peace Walker (USA) (PSN) GRAN TURISMO (USA?)

Checklist

THANKS IN ADVANCE!!

unknownbrackets commented 3 years ago

That's strange, saving works for a lot of people. You could try the latest git build, but I don't know of any recent changes that would've necessarily fixed this. We did however fix some saving issues occurring in a small subset of games - they were just hanging, though, not crashing.

A stack trace would be very useful. This shows the path the code took to lead to a segmentation fault. You can get one by running the executable using gdb.

The basics are:

  1. You need to compile in debug mode, meaning cmake -DCMAKE_BUILD_TYPE=Debug.
  2. You need gdb installed (ask your favorite package manager.)
  3. Run PPSSPP like this from a terminal: gdb ./PPSSPPSDL, then type run.
  4. When it crashes, go back to that terminal and type bt.
  5. Copy the result. This is the stack trace or "back trace".

A more in-depth tutorial: https://beej.us/guide/bggdb/

-[Unknown]

M4TT-R commented 3 years ago

Hi! please excuse the delay; I downloaded and compiled the program as you said ; this build did not crash, and managed to save and load psp savefiles without any issue, thanks a lot! MGS Peace walker worked all right...

Also, i installed the ppsspp build from the arch linux official repo in another laptop (hp stream IntelCeleron n3060 4GB ) with the same system and it had the same crashing issue; this tells that build may be faulty. (or is it?)

Now i get an insane lag spike with GranTurismo's menu, which ran at an almost constant flawless 60fps in the crashfull build(same settings or higher). This could indicate that this performance issue is not related at all to graphics settings as everyone who seems to have this issue points out; this experience suggests this is NOT TRUE. (https://forums.ppsspp.org/showthread.php?tid=24115) (https://github.com/hrydgard/ppsspp/issues/11929) (https://www.reddit.com/r/PPSSPP/comments/eaafx9/win10_occasional_stutter_in_gtpsp_read_on/)

Maybe this information can help solve that issue. what do you say?

THANKS AGAIN BTW!!!

unknownbrackets commented 3 years ago

Interesting, so maybe it is a bug that was fixed, or maybe it is a problem with the Arch build indeed. I know those typically tend to use system FFmpeg, which doesn't work as well.

Are you using the latest git build when you compiled it? If you go into Settings -> Tools -> System information, and scroll down near the bottom, it should say "PPSSPP build" and have that as "Release". If it says Debug, you'll need to tweak how you compiled to make sure you get a fast version.

Next on the main screen (what you see when PPSSPP finishes starting normally), make sure you're seeing a version like "v1.11.3-5xx-gxxxxxxx". If it's lower than 5xx, it may have a known bug that affected performance in this game - that's been fixed now for several weeks, though.

If those don't help, it's possible there's a new bug or it's possible there's a problem with assets or fonts. One way to check this (I should probably make this easier) is to pause the game (typically Esc during gameplay) and check if there's a "Report feedback" menu item on the right above "Exit to menu". If you don't see that, it means that PPSSPP has detected you're using dangerous settings, cheats, playing homebrew, or - and this is what we're hoping for - that your fonts are missing. If it shows up, we can be relatively sure it's not that (what we're actually hoping for, although it'd be nice if it's an easy answer like that.)

-[Unknown]

M4TT-R commented 3 years ago

The crashfull version is "release" 1.10.3 The local build is "Debug "1.11.3-597-g630f071d5 there is no Report feedback in either one, it says "create game config" (!)

unknownbrackets commented 3 years ago

Okay, try recompiling after using cmake -DCMAKE_BUILD_TYPE=Release. If this one works still, then it should be much faster.

We'd used "Debug" to create something we could trace the crash with.

If report feedback isn't showing, fonts might not be in the standard assets location. On Linux that can be various places, including these: https://github.com/hrydgard/ppsspp/blob/f818e514f27ea0b098ccef9989e0ee31f999de5b/UI/NativeApp.cpp#L471-L474

It should just be the same files in the assets folder of your clone, like here: https://github.com/hrydgard/ppsspp/tree/master/assets

Specifically, the fonts are in assets/flash0/font. That said, the Release thing is more likely to improve performance and might be enough to fix everything.

-[Unknown]

unknownbrackets commented 3 years ago

Did that help? Is it fixed in the latest builds, even when compiled as release?

-[Unknown]

M4TT-R commented 3 years ago

Hi!, sorry for not answering soon; i compiled with instructions for release version PPSSPP 1.11.3-598-g4462b0c61-Release and have been testing many games with it also on a fresh Arch Linux install (same machine as above), it solved the issue in Gran Turismo and works solidly at 3xPSP Resolution in the games:

Daxter Syphon filter Dark Mirror Ace Combat X Skies of Deception GTA VCS GTA LCS Socom Fireteam Bravo 2 Socom Fireteam Bravo 3 Tomb Raider Anniversary Manhunt 2 Crisis Core FF7 Prinny can i really be the hero? Tenchu 4 Assassins Creed Bloodlines The 3rd Birthday MH Freedom Unite Gran Turismo

MGS Peace Walker (30 fps cheat) (60 fps goes well but Snake -can not roll- ) GOW Ghost of Sparta (30 fps cheat) GOW Chains of Olympus (30 fps cheat) Dante's inferno (30 fps cheat)

Having minor performance issues in the game:
FF type-0 (30 fps Default).

Having Performance issues in the games: Killzone liberation Silent Hill Shattered Memories(60 fps Default).

Although these issues seem to be related more with my own hardware limitations than with the emulator program since they disappear when lowering the emulated resolution and disabling texture scaling and anti aliasing. With that on count, the issue is solved, the report is to help anybody who might need it.

Thank you again for your help and attention sir .

hrydgard commented 3 years ago

Thanks for the detailed report!