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/HOS | |
| 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/HOS')
| -rw-r--r-- | Ryujinx.HLE/HOS/ApplicationLoader.cs | 8 | ||||
| -rw-r--r-- | Ryujinx.HLE/HOS/ModLoader.cs | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/Ryujinx.HLE/HOS/ApplicationLoader.cs b/Ryujinx.HLE/HOS/ApplicationLoader.cs index b6e17b7b..b52678de 100644 --- a/Ryujinx.HLE/HOS/ApplicationLoader.cs +++ b/Ryujinx.HLE/HOS/ApplicationLoader.cs @@ -69,7 +69,7 @@ namespace Ryujinx.HLE.HOS Npdm metaData = ReadNpdm(codeFs); - _fileSystem.ModLoader.CollectMods(TitleId, _fileSystem.GetBaseModsPath()); + _fileSystem.ModLoader.CollectMods(TitleId, _fileSystem.ModLoader.GetModsBasePath()); if (TitleId != 0) { @@ -224,7 +224,7 @@ namespace Ryujinx.HLE.HOS IFileSystem codeFs = null; // Load Update - string titleUpdateMetadataPath = Path.Combine(_fileSystem.GetBasePath(), "games", mainNca.Header.TitleId.ToString("x16"), "updates.json"); + string titleUpdateMetadataPath = Path.Combine(AppDataManager.GamesDirPath, mainNca.Header.TitleId.ToString("x16"), "updates.json"); if (File.Exists(titleUpdateMetadataPath)) { @@ -261,7 +261,7 @@ namespace Ryujinx.HLE.HOS } // Load Aoc - string titleAocMetadataPath = Path.Combine(_fileSystem.GetBasePath(), "games", mainNca.Header.TitleId.ToString("x16"), "dlc.json"); + string titleAocMetadataPath = Path.Combine(AppDataManager.GamesDirPath, mainNca.Header.TitleId.ToString("x16"), "dlc.json"); if (File.Exists(titleAocMetadataPath)) { @@ -310,7 +310,7 @@ namespace Ryujinx.HLE.HOS Npdm metaData = ReadNpdm(codeFs); - _fileSystem.ModLoader.CollectMods(TitleId, _fileSystem.GetBaseModsPath()); + _fileSystem.ModLoader.CollectMods(TitleId, _fileSystem.ModLoader.GetModsBasePath()); if (controlNca != null) { diff --git a/Ryujinx.HLE/HOS/ModLoader.cs b/Ryujinx.HLE/HOS/ModLoader.cs index 867d120f..786484ae 100644 --- a/Ryujinx.HLE/HOS/ModLoader.cs +++ b/Ryujinx.HLE/HOS/ModLoader.cs @@ -2,6 +2,7 @@ using LibHac.Common; using LibHac.Fs; using LibHac.FsSystem; using LibHac.FsSystem.RomFs; +using Ryujinx.Common.Configuration; using Ryujinx.Common.Logging; using Ryujinx.HLE.Loaders.Mods; using Ryujinx.HLE.Loaders.Executables; @@ -105,15 +106,18 @@ namespace Ryujinx.HLE.HOS private static bool StrEquals(string s1, string s2) => string.Equals(s1, s2, StringComparison.OrdinalIgnoreCase); - public void EnsureBaseDirStructure(string modsBasePath) + public string GetModsBasePath() => EnsureBaseDirStructure(AppDataManager.GetModsPath()); + + private string EnsureBaseDirStructure(string modsBasePath) { var modsDir = new DirectoryInfo(modsBasePath); - modsDir.Create(); modsDir.CreateSubdirectory(AmsContentsDir); modsDir.CreateSubdirectory(AmsNsoPatchDir); modsDir.CreateSubdirectory(AmsNroPatchDir); // modsDir.CreateSubdirectory(AmsKipPatchDir); // uncomment when KIPs are supported + + return modsDir.FullName; } private static DirectoryInfo FindTitleDir(DirectoryInfo contentsDir, string titleId) |
