SaveHelper.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. if (Context.Process.MetaData != null)
  28. {
  29. CurrentTitleId = Context.Process.MetaData.ACI0.TitleId;
  30. }
  31. }
  32. string SavePath = Path.Combine(BaseSavePath,
  33. SaveMetaData.SaveId.ToString("x16"),
  34. SaveMetaData.UserId.ToString(),
  35. SaveMetaData.SaveDataType == SaveDataType.SaveData ? CurrentTitleId.ToString("x16") : string.Empty);
  36. return SavePath;
  37. }
  38. }
  39. }