Просмотр исходного кода

Include Hack for XC2 JP Edition (#481)

XC2 has 2 editions, one JP and one global. I own the JP version and
suffered from the soft-lock, meanwhile the current hack only works for
global edition, so PR is simply include JP edition from the hack.
WilliamWsyHK 1 год назад
Родитель
Сommit
f43442f774
1 измененных файлов с 5 добавлено и 3 удалено
  1. 5 3
      src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IStorage.cs

+ 5 - 3
src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IStorage.cs

@@ -15,8 +15,10 @@ namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy
         {
             _baseStorage = SharedRef<LibHac.FsSrv.Sf.IStorage>.CreateMove(ref baseStorage);
         }
-
-        private const string Xc2TitleId = "0100e95004038000";
+        
+        private const string Xc2JpTitleId = "0100f3400332c000";
+        private const string Xc2GlobalTitleId = "0100e95004038000";
+        private static bool IsXc2 => TitleIDs.CurrentApplication.Value.OrDefault() is Xc2GlobalTitleId or Xc2JpTitleId;
 
         [CommandCmif(0)]
         // Read(u64 offset, u64 length) -> buffer<u8, 0x46, 0> buffer
@@ -39,7 +41,7 @@ namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy
                 using var region = context.Memory.GetWritableRegion(bufferAddress, (int)bufferLen, true);
                 Result result = _baseStorage.Get.Read((long)offset, new OutBuffer(region.Memory.Span), (long)size);
                 
-                if (context.Device.DirtyHacks.IsEnabled(DirtyHack.Xc2MenuSoftlockFix) && TitleIDs.CurrentApplication.Value == Xc2TitleId)
+                if (context.Device.DirtyHacks.IsEnabled(DirtyHack.Xc2MenuSoftlockFix) && IsXc2)
                 {
                     // Add a load-bearing sleep to avoid XC2 softlock
                     // https://web.archive.org/web/20240728045136/https://github.com/Ryujinx/Ryujinx/issues/2357