ppsspp icon indicating copy to clipboard operation
ppsspp copied to clipboard

Unable to save data on iOS

Open javoerro opened this issue 1 year ago • 20 comments

Game or games this happens in

ULUS10346

What area of the game / PPSSPP

I'm using ppsspp 1.17.1 as a core in retroarch for ios.

Every time it try to create or write saved data in the memory stick (SAVEDATA folder) it indicates that it is not possible. I even tried to import data in SAVEDATA created in an android version and it can't overwrite it.

The problem happens in all games and the save states are working.

What should happen

write the savedata

Logs

no logfiles

Platform

iOS

Mobile device model or graphics card (GPU)

iphone 14 pro

PPSSPP version affected

v1.17.1-40-ga0aab9

Last working version

v1.17.1-40-ga0aab9 in android

Graphics backend (3D API)

Vulkan

Checklist

  • [X] Test in the latest git build in case it's already fixed.
  • [X] Search for other reports of the same issue.
  • [X] Try resetting settings or older versions and include if the issue is related.
  • [X] Try without any cheats and without loading any save states.
  • [X] Include logs or screenshots of issue.

javoerro avatar Mar 16 '24 05:03 javoerro

You're on iOS which is pretty known from having write priviledges issues. From what I remember it was common in the past that people who used some very popular method of copying files to iOS used software which gained ownership of the folders they copied files to, and as such PPSSPP was unable to write to those folders causing such issues.

Ofc it could be something else, but that's what commonly happened since forever to users of this platform. Unfortunately I don't recall more details about it.

LunaMoo avatar Mar 16 '24 14:03 LunaMoo

i understand. it would be nice to know some workaround. i tried to find some solutions, but never found for ios. but could be also a bug, because other cores in retroarch, like mGBA, can write data in the same directory.

javoerro avatar Mar 16 '24 16:03 javoerro

Try this as I still believe that's your problem, the reason savestates work while savedata doesn't is probably because libretro has it's own savestates stored in different folder.

LunaMoo avatar Mar 16 '24 17:03 LunaMoo

Try this as I still believe that's your problem, the reason savestates work while savedata doesn't is probably because libretro has it's own savestates stored in different folder.

OK. I tried it, but I'm not sure if I did it correctly, since in retroarch there is no PSP directory, however I did it on the RetroArch/system/PPSSPP directory

The tools you quote are no longer available. Instead I used a-Shell and finally executed:

chmod 777 /private/var/mobile/Containers/Data/Application/[Long_ID]/Documents/RetroArch/system/PPSSPP

Then check the permissions changes with ls -l and they had changed. However, the problem continues.

Should I give those permissions to another directory?

javoerro avatar Mar 16 '24 19:03 javoerro

Sorry I have no idea about libretro directories and where PSP memstick ends up on it.

LunaMoo avatar Mar 17 '24 13:03 LunaMoo

I found the cause of the problem and was able to solve it:

After trying several times and discovering that the problem also happens in the android version, I came to the conclusion that it was not a matter of the platform and that it could have to do with the configuration since it worked before on android

In the latest versions of retroarch there is in settings > saving a number of options to determine with which names the save and state subdirectories will be created. They are options of the on/off type. by default the options that are enabled are "Sort save/states into folders by core name". In PPSSPP case, the states and memstick data are saved within a so-called PPSSPP directory.

However, I changed that option to "Sort save/states into folders by content directory" in that case, the SAVESTATE directory that needs PPSSPP to put memstick data is created within a directory with a name other than PPSSPP.

For example, in my case, the general directory of saved data was set to RetroArch/saves, then:

Directory structure for memstick obtained: RetroArch/saves/psp/SAVEDATA (Where psp is the name of the directory where I keep the contents that I use with PPSSPP)

What PPSSPP needs to work is: RetroArch/saves/PPSSPP/SAVEDATA

Then the solution I found was to make a config override for the PPSSPP core, making the option "Sort save into folders by core name" checked in Settings > Savings.

It is not clear to me if I should inform RetroArch of this bug, at most so that they report it in the wiki of this core, or if PPSSPP could fix it in future versions.

Thanks for the help!

javoerro avatar Mar 18 '24 12:03 javoerro

Seems like a retroarch bug to me, since we didn't change anything...

hrydgard avatar Mar 18 '24 21:03 hrydgard

Actually it's probably a duplicate or related to this old thing ~ https://github.com/hrydgard/ppsspp/issues/15437 In short libretro/retroarch has an option which doesn't respect the fact that PSP games have hardcoded paths to savedata and allows users to store those anywhere where the game is stored/outside of memstick.

LunaMoo avatar Mar 18 '24 22:03 LunaMoo

Hey! Do you mind testing this version of the core? ~~https://git.libretro.com/bslenul/ppsspp/-/jobs/4926744/artifacts/browse~~

edit: Didn't realized the link would be temporary, here's the core: ppsspp_ios.zip

It's just the current version with a small tweak to it: https://git.libretro.com/bslenul/ppsspp/-/commit/c37e86337bad55e0428134d50c60f8a62301d798#1a8a971e2421e9a92bc76fb2c59075bc6651236e But I don't have any Apple device to test myself so I can't confirm if it'll work or not.

bslenul avatar Mar 20 '24 09:03 bslenul

@javoerro @LunaMoo Can you make a test and report ?

Thank you for your tests.

gouchi avatar Apr 08 '24 09:04 gouchi

@javoerro @LunaMoo Can you make a test and report ?

Thank you for your tests.

@gouchi i going to test it this week for sure. i will post the results here.

javoerro avatar Apr 08 '24 10:04 javoerro

Help 😭 I can't save data in my external sdcard using my android phone (redmi 6a)

Screenshot_2024-05-22-12-07-57-599_org ppsspp ppssppgold Screenshot_2024-05-22-12-07-30-861_org ppsspp ppssppgold

Unknowncat1991 avatar May 22 '24 04:05 Unknowncat1991

@Gamemulator00122719 Please don't post the same thing in multiple issues. Create a new issue specific to your problem instead.

hrydgard avatar May 22 '24 07:05 hrydgard

@javoerro @LunaMoo Can you make a test and report now that it is available on the Apple Store ?

Thank you for your tests.

gouchi avatar Jun 02 '24 10:06 gouchi

Hi there,

The free iOS App Store standalone version (not Retroarch) is exhibiting this behavior for me as well.

Game ULUS10390

Area of Game/PPSSPP PPSSPP - SAVEDATA; PPSSPP reports that "Memory Stick is full." or "Unable to save data." upon trying to save a new file or overwrite a previous save file (from PC). Loading regular saves works correctly. Save States also work correctly (tested after encountering this issue; Cheats were also added after encountering this issue). I also have more than enough storage to save PPSSPP data.

What Should Happen Data should save when there is enough storage.

Logs Not retrieved at this time.

Platform iOS 17.5.1 (21F90)

Mobile Device Model or GPU iPhone 15 Pro

PPSSPP version affected 1.17.1-491-g9cdd97c13b (iOS App Store non-Gold standalone, not through Retroarch)

Last working version N/a (there was no previous standalone build on the iOS App Store)

Graphics backend (3D API) OpenGL

Notes I do not have access to 1.17.2 as the free version is currently removed from the App Store at the time of writing and I do not own the Gold version, so I am unable to confirm if the issue is present on that version as of the time of writing.

jmmj0103 avatar Jun 04 '24 03:06 jmmj0103

I too am having this same issue, I have the latest PPSSPP Gold v1.17.3 app and this is occurring for me. I’m not on a jailbroken device nor do I side load applications. Is it still possible to change write access to the directory with shell option? Or is there a known solution for this?

cruzinsteebs avatar Aug 11 '24 22:08 cruzinsteebs

@javoerro Can you rename the issue title to something Unable to save data on iOS.

@hrydgard It seems that this issue is not Libretro specific.

gouchi avatar Aug 12 '24 09:08 gouchi

Just installed PPSSPP on the mac (macOS 12.7.6) and have noticed this same issue. PPSSPP with the "Full Disk Access" permission. I am able to use save states and load up saves from my PSP hardware, but attempting to save a game gives me a memory stick full error (80110309). This happens with both loading existing saves and with trying to create new save from a fresh install.

JeffersonBledsoe avatar Sep 10 '24 17:09 JeffersonBledsoe

@JeffersonBledsoe That's really weird! Maybe our disk space left query is broken on some Apple devices somehow...

hrydgard avatar Sep 10 '24 18:09 hrydgard

@jmmj0103 @cruzinsteebs @JeffersonBledsoe I found a solution! (iPadOS 15.8.3, PPSSPP v1.17.4-1) Here are the steps I used:

  1. Copy PSP folder to a location separate from PPSSPP, like "On my iPad"
  2. Uninstall and Reinstall PPSSPP (I'm not sure if this is entirely necessary, but it's what worked)
  3. Copy / Move individual files back to new PSP folder (This is necessary, as copying the whole folder will just copy the broken permissions, too)

After that process, I tested both my games and was able to save with no issue.

17parmelee avatar Sep 13 '24 23:09 17parmelee