diff options
author | mageven <62494521+mageven@users.noreply.github.com> | 2020-08-30 22:21:53 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-30 18:51:53 +0200 |
commit | b9398f1f3a13612a0bc3e64205cdb7eca3f48d4d (patch) | |
tree | dc4180e4d2f28d061776cf3fd00741f3fc8ee2fc /Ryujinx.HLE/FileSystem/VirtualFileSystem.cs | |
parent | f3e12d5b02ac77f0b4d8a0caf185c7afb578d0a4 (diff) |
Allow launching with custom data directories (#1505)
* Allow launching with custom data directories
Don't load alternate keys when using custom directory
* Address gdkchan's comments
* Misc fixes to log levels
Added more enabled log levels by default
Moved successful config updation to Notice as
1. It's not a warning
2. Warnings could've been disabled by the config load and hence message
would be lost
Diffstat (limited to 'Ryujinx.HLE/FileSystem/VirtualFileSystem.cs')
-rw-r--r-- | Ryujinx.HLE/FileSystem/VirtualFileSystem.cs | 37 |
1 files changed, 10 insertions, 27 deletions
diff --git a/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs b/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs index 58890995..a95c9c0f 100644 --- a/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs +++ b/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs @@ -4,6 +4,7 @@ using LibHac.Fs; using LibHac.FsService; using LibHac.FsSystem; using LibHac.Spl; +using Ryujinx.Common.Configuration; using Ryujinx.HLE.FileSystem.Content; using Ryujinx.HLE.HOS; using System; @@ -13,11 +14,8 @@ namespace Ryujinx.HLE.FileSystem { public class VirtualFileSystem : IDisposable { - public const string BasePath = "Ryujinx"; - public const string NandPath = "bis"; - public const string SdCardPath = "sdcard"; - public const string SystemPath = "system"; - public const string ModsPath = "mods"; + public const string NandPath = AppDataManager.DefaultNandDir; + public const string SdCardPath = AppDataManager.DefaultSdcardDir; public static string SafeNandPath = Path.Combine(NandPath, "safe"); public static string SystemNandPath = Path.Combine(NandPath, "system"); @@ -77,20 +75,10 @@ namespace Ryujinx.HLE.FileSystem return fullPath; } - public string GetBaseModsPath() - { - var baseModsDir = Path.Combine(GetBasePath(), "mods"); - ModLoader.EnsureBaseDirStructure(baseModsDir); - - return baseModsDir; - } - - public string GetSdCardPath() => MakeFullPath(SdCardPath); - + internal string GetBasePath() => AppDataManager.BaseDirPath; + internal string GetSdCardPath() => MakeFullPath(SdCardPath); public string GetNandPath() => MakeFullPath(NandPath); - public string GetSystemPath() => MakeFullPath(SystemPath); - internal string GetSavePath(ServiceCtx context, SaveInfo saveInfo, bool isDirectory = true) { string saveUserPath = ""; @@ -207,13 +195,6 @@ namespace Ryujinx.HLE.FileSystem return new DriveInfo(Path.GetPathRoot(GetBasePath())); } - public string GetBasePath() - { - string appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - - return Path.Combine(appDataPath, BasePath); - } - public void Reload() { ReloadKeySet(); @@ -245,10 +226,12 @@ namespace Ryujinx.HLE.FileSystem string titleKeyFile = null; string consoleKeyFile = null; - string home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); + if (!AppDataManager.IsCustomBasePath) + { + LoadSetAtPath(AppDataManager.KeysDirPathAlt); + } - LoadSetAtPath(Path.Combine(home, ".switch")); - LoadSetAtPath(GetSystemPath()); + LoadSetAtPath(AppDataManager.KeysDirPath); void LoadSetAtPath(string basePath) { |