diff options
author | Ac_K <Acoustik666@gmail.com> | 2023-03-31 21:16:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-31 21:16:46 +0200 |
commit | 4c2d9ff3ff9d7afb1fd0bd764bee5931fa5f053c (patch) | |
tree | 1245f5ec356551bd20a9594d114d06a53c41d036 /Ryujinx.HLE/HOS/ModLoader.cs | |
parent | 8198b99935f562ffb2fb9a75175a8df24d235152 (diff) |
HLE: Refactoring of ApplicationLoader (#4480)1.1.689
* HLE: Refactoring of ApplicationLoader
* Fix SDL2 Headless
* Addresses gdkchan feedback
* Fixes LoadUnpackedNca RomFS loading
* remove useless casting
* Cleanup and fixe empty application name
* Remove ProcessInfo
* Fixes typo
* ActiveProcess to ActiveApplication
* Update check
* Clean using.
* Use the correct filepath when loading Homebrew.npdm
* Fix NRE in ProcessResult if MetaLoader is null
* Add more checks for valid processId & return success
* Add missing logging statement for npdm error
* Return result for LoadKip()
* Move error logging out of PFS load extension method
This avoids logging "Could not find Main NCA"
followed by "Loading main..." when trying to start hbl.
* Fix GUIs not checking load results
* Fix style and formatting issues
* Fix formatting and wording
* gtk: Refactor LoadApplication()
---------
Co-authored-by: TSR Berry <20988865+TSRBerry@users.noreply.github.com>
Diffstat (limited to 'Ryujinx.HLE/HOS/ModLoader.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/ModLoader.cs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Ryujinx.HLE/HOS/ModLoader.cs b/Ryujinx.HLE/HOS/ModLoader.cs index a6dc90135..165125414 100644 --- a/Ryujinx.HLE/HOS/ModLoader.cs +++ b/Ryujinx.HLE/HOS/ModLoader.cs | |||
@@ -10,6 +10,7 @@ using Ryujinx.Common.Logging; | |||
10 | using Ryujinx.HLE.HOS.Kernel.Process; | 10 | using Ryujinx.HLE.HOS.Kernel.Process; |
11 | using Ryujinx.HLE.Loaders.Executables; | 11 | using Ryujinx.HLE.Loaders.Executables; |
12 | using Ryujinx.HLE.Loaders.Mods; | 12 | using Ryujinx.HLE.Loaders.Mods; |
13 | using Ryujinx.HLE.Loaders.Processes; | ||
13 | using System; | 14 | using System; |
14 | using System.Collections.Generic; | 15 | using System.Collections.Generic; |
15 | using System.Collections.Specialized; | 16 | using System.Collections.Specialized; |
@@ -547,7 +548,7 @@ namespace Ryujinx.HLE.HOS | |||
547 | return modLoadResult; | 548 | return modLoadResult; |
548 | } | 549 | } |
549 | 550 | ||
550 | if (nsos.Length != ApplicationLoader.ExeFsPrefixes.Length) | 551 | if (nsos.Length != ProcessConst.ExeFsPrefixes.Length) |
551 | { | 552 | { |
552 | throw new ArgumentOutOfRangeException("NSO Count is incorrect"); | 553 | throw new ArgumentOutOfRangeException("NSO Count is incorrect"); |
553 | } | 554 | } |
@@ -556,9 +557,9 @@ namespace Ryujinx.HLE.HOS | |||
556 | 557 | ||
557 | foreach (var mod in exeMods) | 558 | foreach (var mod in exeMods) |
558 | { | 559 | { |
559 | for (int i = 0; i < ApplicationLoader.ExeFsPrefixes.Length; ++i) | 560 | for (int i = 0; i < ProcessConst.ExeFsPrefixes.Length; ++i) |
560 | { | 561 | { |
561 | var nsoName = ApplicationLoader.ExeFsPrefixes[i]; | 562 | var nsoName = ProcessConst.ExeFsPrefixes[i]; |
562 | 563 | ||
563 | FileInfo nsoFile = new FileInfo(Path.Combine(mod.Path.FullName, nsoName)); | 564 | FileInfo nsoFile = new FileInfo(Path.Combine(mod.Path.FullName, nsoName)); |
564 | if (nsoFile.Exists) | 565 | if (nsoFile.Exists) |
@@ -596,7 +597,7 @@ namespace Ryujinx.HLE.HOS | |||
596 | } | 597 | } |
597 | } | 598 | } |
598 | 599 | ||
599 | for (int i = ApplicationLoader.ExeFsPrefixes.Length - 1; i >= 0; --i) | 600 | for (int i = ProcessConst.ExeFsPrefixes.Length - 1; i >= 0; --i) |
600 | { | 601 | { |
601 | if (modLoadResult.Stubs[1 << i] && !modLoadResult.Replaces[1 << i]) // Prioritizes replacements over stubs | 602 | if (modLoadResult.Stubs[1 << i] && !modLoadResult.Replaces[1 << i]) // Prioritizes replacements over stubs |
602 | { | 603 | { |