From b9398f1f3a13612a0bc3e64205cdb7eca3f48d4d Mon Sep 17 00:00:00 2001 From: mageven <62494521+mageven@users.noreply.github.com> Date: Sun, 30 Aug 2020 22:21:53 +0530 Subject: 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 --- Ryujinx.HLE/FileSystem/VirtualFileSystem.cs | 37 ++++++++--------------------- 1 file changed, 10 insertions(+), 27 deletions(-) (limited to 'Ryujinx.HLE/FileSystem/VirtualFileSystem.cs') 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) { -- cgit v1.2.3-70-g09d2