ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.93k stars 1.05k forks source link

Digimon Story Cyber Sleuth: Complete Edition (1042550) #4967

Open Road-Drum opened 3 years ago

Road-Drum commented 3 years ago

Compatibility Report

System Information

I confirm:

steam-1042550.log

Symptoms

Game runs fine, but there are a couple of issues that needs to be resolved as it hinders core Steam services

  1. Steam Input isn't recognized by the game. Reports from ProtonDB points to the same thing. So far current workaround is to disable Steam Input

  2. Steam Cloud Save doesn't seem to sync the game save file for some reason. Also reported by other user in steamcommunity as early as 2019 but went unnoticed

  3. Steam Overlay fails to pop up. Numerous ELFCLASS errors for Steam libraries (refer log)

Reproduction

  1. Set the game to use Steam Input

  2. Start the game and every symptoms will occur

Road-Drum commented 3 years ago

Also for symptom 3, that causes me to not be able to get screenshot. not to mention steam doesn't accept manually added screenshot these days T-T Achievement is surprisingly being tracked

Autofix commented 3 years ago

Solution to symptom 2 https://www.protondb.com/app/1042550#rKuBSa1ZdH

Steam Cloud does not work out of the box. NAMCO BANDAI does not respect the system APPDATA directory and instead seems to have hardcoded Steam Cloud to pick up save data in "/Application Data/BANDAI NAMCO Entertainment/Digimon Story Cyber Sleuth Complete Edition/Saved/SaveGames/<...>"

This behavior works properly on a Windows environment but does not translate to where Proton stores savedata.

This can be worked around by creating a symbolic link between where Proton stores the savedata and where Steam Cloud expects the savedata to be located.

  1. BACK UP YOUR ORIGINAL SAVEFILE (It is found in <...>/compatdata/1042550/pfx/drive_c/users/steamuser/AppData/Local)
  2. use 'ln -s' to create a symbolic link between <...>compatdata/1042550/pfx/drive_c/users/steamuser/AppData/Local/BANDAI NAMCO Entertainment" and "/usr/hdd/steamgames/steamapps/compatdata/1042550/pfx/drive_c/users/steamuser/Local Settings/Application Data/BANDAI NAMCO Entertainment".
Road-Drum commented 3 years ago

Solution to symptom 2 https://www.protondb.com/app/1042550#rKuBSa1ZdH

Thanks for the workaround. I couldn't properly link it so this is what I did to make it work for future reference

  1. get a copy of steam_autocloud.vdf in $STEAMUSER/Local Settings/Application Data/BANDAI NAMCO Entertainment/Digimon Story Cyber Sleuth Complete Edition/Saved/SaveGames/$STEAMID

    $STEAMUSER is directory of steamuser folder, on debian system typically seen as ~/.steam/debian-installation/steamapps/compatdata/1042550/pfx/drive_c/users/steamuser

  2. Paste that steam_autocloud.vdf in $STEAMUSER/AppData/Local/BANDAI NAMCO Entertainment/Digimon Story Cyber Sleuth Complete Edition/Saved/SaveGames/$STEAMID

  3. rm -rf "$STEAMUSER/Local Settings/Application Data/BANDAI NAMCO Entertainment/"

    This directory only contains steam_autocloud.vdf anyway. Without removing this, it'll create a symlink that looks like this STEAMUSER/Local Settings/Application Data/BANDAI NAMCO Entertainment/BANDAI NAMCO Entertainment.

  4. ln -s "$STEAMUSER/AppData/Local/BANDAI NAMCO Entertainment" "$STEAMUSER/Local Settings/Application Data/BANDAI NAMCO Entertainment"

    This should make a proper symlink that mirrors AppData/Local/BANDAI NAMCO Entertainment but with steam_autocloud.vdf included for cloud sync

Here's my confirmation that Steam Cloud finally works and uploaded my save data. Might try installing the game on Windows to see if my save game is properly carried over though

image

@kisak-valve is it possible for steam to include this workaround as post-install script? I'm not sure how steam handles stuff like post-install (running VC Redist, dx install etc, Vulkan shader caching for proton etc) but I'm certain it's there but not visible to user

Road-Drum commented 3 years ago

Just confirmed that symptom 2 can be resolved with above workarounds. Save data sync successfully across different OS

TauAkiou commented 3 years ago

I think I've been able to surmise why Symptom 2 happens.

On Windows, the savedata is saved in '%USERPROFILE%/AppData/Local'. This is also explicitly where Steam Cloud saves the data on Windows. The linking is correct and the game loads cloud data properly. On windows, this save directory can be directly accessed with the path variable %LOCALAPPDATA%.

On Proton, savedata is read from the same place: '%USERPROFILE%/AppData/Local/'. However, Steam Cloud saves the data in '%USERPROFILE%/Local Settings/Application Data'. This is Proton's %LOCALAPPDATA% folder, and thus if Steam Cloud is set up to save directly in %LOCALAPPDATA%, this is where the save data will end up.

This should be transparently picked up by the game, and is, in fact, most games, picked up correctly. However, I theorize that NAMCO BANDAI is using a hardcoded path to '%USERPROFILE%/AppData/Local' in the game itself.

This would make sense and would explain why it works under Windows but not under WINE. If the game was reading from %LOCALAPPDATA%, it would correctly pick up the saves from Steam Cloud regardless of platform. This could also cause compatibility problems with future releases of Windows, should Microsoft ever change the %LOCALAPPDATA% variable.

Potential solutions:

  1. NAMCO BANDAI fixes their game by removing the hardcoded path and use the %LOCALAPPDATA% variable.
  2. Proton updates the %LOCALAPPDATA% variable to place app data in the more 'windows-esque' AppData\Local path.
  3. Introduce a small patch that either changes %LOCALAPPDATA% for Game ID 1042550 to AppData\Local or automatically symlinks the NAMCO BANDAI Entertainment folder.
Road-Drum commented 3 years ago

Solution 3 seems to be the best option. Shouldn't conflict with other games that may have its own hardcoded quirks

Road-Drum commented 2 years ago

An update with latest Proton Experimental and Client Beta.

Seems like the new $GAME_PFX/steamuser/Local Settings/Application Data is symlinked to ../AppData/Local and I found an issue with it when the pfx is wiped for whatever purposes, the game recreates Bandai Namco directory but Steam Cloud failed to populate it back in time, resulting the game starting with fresh data when you launches the game. What's worse is when you close the game, the fresh data got synced and naturally your previously backed up saves are cleared on both local and cloud.

Steps to reproduce:

1) On primary machine, back up all of your save data 2) On secondary machine, do clean install (if the game isn't installed) or delete $STEAMAPP_DIR/compatdata/1042550 which is enough to delete game settings and save files to simulate fresh install (game don't save anything in its Program Files directory) 3) Observe $GAME_PFX/steamuser/Local Settings/Application Data with file manager, Bandai Namco shouldn't appear yet as the game hasn't been initialized 4) Start the game and see Bandai Namco populates $GAME_PFX/steamuser/Local Settings/Application Data 5) Game starts in a very fresh state 6) Close game and check Steam Cloud usage which should have been reduced to bytes 7) Go back to primary machine, start game and see your saves getting destroyed $GAME_PFX/steamuser/Local Settings/Application Data/BANDAI NAMCO Entertainment/Digimon Story Cyber Sleuth Complete Edition/Saved/SaveGames as Steam Cloud sync the fresh state into primary machine instead of using already-present save data

Recovery steps (assuming save files are backed up somewhere else)

I'm not sure if there's a way to rollback Steam Cloud to previous saves. In case this is happening and you have your save data ready, you have to load every slot and save them in each respective slot or this happens if you only did only for one save file

Screenshot from 2021-10-29 17-03-17

Luckily I managed to restore my Steam data using my primary machine with every slots loaded and saved for Steam Cloud to sync

Screenshot from 2021-10-29 17-47-09

Steam Cloud now indicates everything is synced successfully and reflects my Steam Cloud prior this 'wipe' happened

Screenshot from 2021-10-29 17-47-37

This is extremely frustrating if this happens to anyone. On another note, my own workaround seems fine when applied on secondary machine, although to be clear, this was done before Proton symlinked Local Settings to AppData/Local by default for this game and my workaround was applied before starting the freshly installed game on secondary machine.

Maybe do the symlink post-install rather than starting the game? Could be just odd quirk with my machine so hopefully someone can test this and confirm whether I'm having a bad luck or this is actually reproducible

aeikum commented 2 years ago

@Road-Drum Thanks for the thorough reproduction steps. We'll take a look and let you know what we find.

aeikum commented 2 years ago

Testing with current Proton Experimental (experimental-6.3-20211027), I'm not able to reproduce a problem here. I started the game, played far enough to create a save file, quit the game which uploaded my save to the Steam cloud. Then I deleted the compatdata/1042550 folder. When I started the game again, the Steam cloud correctly synced my save file before starting the game, and I was able to resume the save I had created.

Road-Drum commented 2 years ago

I'll try it again tomorrow. Not sure if this helpful but I'm running beta client as well as proton experimental. If there's nothing wrong, I guess it's just a rare glitch

also do you happen to know what sdkencryptedappticket64 actually does? it's the only dll not loaded in Proton log. Not sure if it is loaded on Windows as Windows doesn't have similar style of Proton logging to compare. I assume it's probably the reason why overlay won't appear in this game

On Sat, 30 Oct 2021, 02:52 Andrew Eikum, @.***> wrote:

Testing with current Proton Experimental (experimental-6.3-20211027), I'm not able to reproduce a problem here. I started the game, played far enough to create a save file, quit the game which uploaded my save to the Steam cloud. Then I deleted the compatdata/1042550 folder. When I started the game again, the Steam cloud correctly synced my save file before starting the game, and I was able to resume the save I had created.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/4967#issuecomment-954973691, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADNSKCAMJJUEM2XHAQ6BM7DUJLUPPANCNFSM5AJZX6EQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

rudi4463 commented 2 years ago

I cannot confirm point 1. Playstation controllers do not work with this game. I tested a DualShock 4 and the DualSense with newest Firmware. Both controllers do not work with or without Steam Input Enabled. I also tested this with Proton 6.3-8 and Proton 7.0-4.

Has anyone any suggestions to get it working? Both controller work fine both in Proton games of any version or even linux native games.