From a03ab0c4a0bef3c168874dc2105c43c9051e0807 Mon Sep 17 00:00:00 2001
From: Somebody Whoisbored <13044396+shadowninja108@users.noreply.github.com>
Date: Sun, 3 Jan 2021 04:30:31 -0700
Subject: [PATCH] Fix exefs mod loading with unpacked games (#1857)

* Add the ability to layeredfs individual exefs with mod loader

* Address code style issues

* Further adjustments to the mod loading

* Update Ryujinx.HLE/HOS/ModLoader.cs

Co-authored-by: Ac_K <Acoustik666@gmail.com>

* Apply suggestions from code review

Co-authored-by: Ac_K <Acoustik666@gmail.com>

* Address issue with checking for NSO existence (and code style fixes)

Co-authored-by: Ac_K <Acoustik666@gmail.com>
---
 Ryujinx.HLE/HOS/ApplicationLoader.cs | 4 ++--
 Ryujinx.HLE/HOS/ModLoader.cs         | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/Ryujinx.HLE/HOS/ApplicationLoader.cs b/Ryujinx.HLE/HOS/ApplicationLoader.cs
index 2c4708d7..cc9b25fb 100644
--- a/Ryujinx.HLE/HOS/ApplicationLoader.cs
+++ b/Ryujinx.HLE/HOS/ApplicationLoader.cs
@@ -481,11 +481,11 @@ namespace Ryujinx.HLE.HOS
 
             NsoExecutable[] nsos = new NsoExecutable[ExeFsPrefixes.Length];
 
-            for(int i = 0; i < nsos.Length; i++)
+            for (int i = 0; i < nsos.Length; i++)
             {
                 string name = ExeFsPrefixes[i];
 
-                if (!codeFs.FileExists(name))
+                if (!codeFs.FileExists($"/{name}"))
                 {
                     continue; // file doesn't exist, skip
                 }
diff --git a/Ryujinx.HLE/HOS/ModLoader.cs b/Ryujinx.HLE/HOS/ModLoader.cs
index d2f80ebd..7aba0fc7 100644
--- a/Ryujinx.HLE/HOS/ModLoader.cs
+++ b/Ryujinx.HLE/HOS/ModLoader.cs
@@ -438,9 +438,9 @@ namespace Ryujinx.HLE.HOS
                 }
 
                 FileInfo npdmFile = new FileInfo(Path.Combine(mod.Path.FullName, "main.npdm"));
-                if(npdmFile.Exists)
+                if (npdmFile.Exists)
                 {
-                    if(modLoadResult.Npdm != null)
+                    if (modLoadResult.Npdm != null)
                     {
                         Logger.Warning?.Print(LogClass.ModLoader, "Multiple replacements to 'main.npdm'");