SaveHelper.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using Ryujinx.HLE.HOS;
  2. using System.IO;
  3. using static Ryujinx.HLE.FileSystem.VirtualFileSystem;
  4. namespace Ryujinx.HLE.FileSystem
  5. {
  6. static class SaveHelper
  7. {
  8. public static string GetSavePath(SaveInfo SaveMetaData, ServiceCtx Context)
  9. {
  10. string BaseSavePath = NandPath;
  11. long CurrentTitleId = SaveMetaData.TitleId;
  12. switch (SaveMetaData.SaveSpaceId)
  13. {
  14. case SaveSpaceId.NandUser:
  15. BaseSavePath = UserNandPath;
  16. break;
  17. case SaveSpaceId.NandSystem:
  18. BaseSavePath = SystemNandPath;
  19. break;
  20. case SaveSpaceId.SdCard:
  21. BaseSavePath = Path.Combine(SdCardPath, "Nintendo");
  22. break;
  23. }
  24. BaseSavePath = Path.Combine(BaseSavePath, "save");
  25. if (SaveMetaData.TitleId == 0 && SaveMetaData.SaveDataType == SaveDataType.SaveData)
  26. {
  27. CurrentTitleId = Context.Process.TitleId;
  28. }
  29. string SaveAccount = SaveMetaData.UserId.IsZero() ? "savecommon" : SaveMetaData.UserId.ToString();
  30. string SavePath = Path.Combine(BaseSavePath,
  31. SaveMetaData.SaveId.ToString("x16"),
  32. SaveAccount,
  33. SaveMetaData.SaveDataType == SaveDataType.SaveData ? CurrentTitleId.ToString("x16") : string.Empty);
  34. return SavePath;
  35. }
  36. }
  37. }